Built motion from commit ac950a0.|0.0.66
authorAndrea Bianco <andrea.bianco@xcally.com>
Wed, 16 Mar 2016 15:12:59 +0000 (16:12 +0100)
committerAndrea Bianco <andrea.bianco@xcally.com>
Wed, 16 Mar 2016 15:12:59 +0000 (16:12 +0100)
650 files changed:
public/app/41989707.vendor.js [moved from public/app/47e08aab.vendor.js with 50% similarity]
public/app/75872991.vendor.css [moved from public/app/fc48ba87.vendor.css with 94% similarity]
public/app/be15a8f1.app.js [moved from public/app/a62711dc.app.js with 74% similarity]
public/assets/css/pricing-tables.css
public/assets/languages/locale-en_EN.json
public/assets/languages/locale-it.json
public/assets/plugins/jscripty/js/Actions.js
public/assets/plugins/jscripty/js/Dialogs.js
public/assets/plugins/jscripty/js/Editor.js
public/assets/plugins/jscripty/js/EditorUi.js
public/assets/plugins/jscripty/js/Graph.js
public/assets/plugins/jscripty/js/Menus.js
public/assets/plugins/jscripty/js/Shapes.js
public/assets/plugins/jscripty/js/Sidebar.js
public/assets/plugins/jscripty/js/Toolbar.js
public/assets/plugins/jscripty/js/custom.js
public/assets/plugins/mxgraph/js/mxClient.js
public/assets/plugins/square/js/Actions.js
public/assets/plugins/square/js/Dialogs.js
public/assets/plugins/square/js/Editor.js
public/assets/plugins/square/js/EditorUi.js
public/assets/plugins/square/js/Graph.js
public/assets/plugins/square/js/Menus.js
public/assets/plugins/square/js/Shapes.js
public/assets/plugins/square/js/Sidebar.js
public/assets/plugins/square/js/Toolbar.js
public/assets/plugins/square/js/custom.js
public/bower_components/adf-structures-base/adf-structures-base.js
public/bower_components/angucomplete-alt/angucomplete-alt.css [deleted file]
public/bower_components/angucomplete-alt/angucomplete-alt.js [deleted file]
public/bower_components/angular-animate/angular-animate.js
public/bower_components/angular-bootstrap-colorpicker/bootstrap-colorpicker-module.js
public/bower_components/angular-bootstrap-contextmenu/contextMenu.js
public/bower_components/angular-cookies/angular-cookies.js
public/bower_components/angular-file-saver/angular-file-saver.bundle.js
public/bower_components/angular-local-storage/angular-local-storage.js
public/bower_components/angular-object-diff/angular-object-diff.css [deleted file]
public/bower_components/angular-object-diff/angular-object-diff.js [deleted file]
public/bower_components/angular-permission/angular-permission.js
public/bower_components/angular-resource/angular-resource.js
public/bower_components/angular-sanitize/angular-sanitize.js
public/bower_components/angular-scenario/angular-scenario.js
public/bower_components/angular-smart-table/smart-table.js
public/bower_components/angular-spinner/angular-spinner.js
public/bower_components/angular-touch/angular-touch.js
public/bower_components/angular-ui-grid/pagination/less/pagination.less
public/bower_components/angular-ui-grid/ui-grid.css
public/bower_components/angular-ui-grid/ui-grid.eot
public/bower_components/angular-ui-grid/ui-grid.js
public/bower_components/angular-ui-grid/ui-grid.svg
public/bower_components/angular-ui-grid/ui-grid.ttf
public/bower_components/angular-ui-grid/ui-grid.woff
public/bower_components/angular-ui-router/angular-ui-router.js
public/bower_components/angular-xeditable/xeditable.css
public/bower_components/angular-xeditable/xeditable.js
public/bower_components/angular/angular.js
public/bower_components/es5-shim/es5-shim.js
public/bower_components/jquery.actual/jquery.actual.js
public/bower_components/lodash/.bower.json
public/bower_components/lodash/.github/CONTRIBUTING.md
public/bower_components/lodash/.travis.yml
public/bower_components/lodash/CODE_OF_CONDUCT.md
public/bower_components/lodash/README.md
public/bower_components/lodash/dist/lodash.core.js
public/bower_components/lodash/dist/lodash.core.min.js
public/bower_components/lodash/dist/lodash.fp.js
public/bower_components/lodash/dist/lodash.fp.min.js
public/bower_components/lodash/dist/lodash.js
public/bower_components/lodash/dist/lodash.min.js
public/bower_components/lodash/dist/mapping.fp.js
public/bower_components/lodash/doc/README.md
public/bower_components/lodash/fp/_baseConvert.js
public/bower_components/lodash/fp/_mapping.js
public/bower_components/lodash/lib/fp/build-doc.js
public/bower_components/lodash/lib/fp/build-modules.js
public/bower_components/lodash/lib/fp/template/doc/wiki.jst
public/bower_components/lodash/lodash.js
public/bower_components/lodash/package.json
public/bower_components/lodash/test/test-fp.js
public/bower_components/lodash/test/test.js
public/bower_components/lodash/test/underscore.html
public/bower_components/ng-js-tree/ngJsTree.js
public/bower_components/ng-scrollbars/scrollbars.min.js
public/bower_components/select2/select2.js
public/bower_components/simple-line-icons/simple-line-icons.css
public/bower_components/simple-line-icons/simple-line-icons.less
public/bower_components/simple-line-icons/simple-line-icons.scss
public/bower_components/webcomponentsjs/webcomponents.js
public/index.html
release-notes/changelog_0.0.66.txt
server/api/action/action.controller.js
server/api/action/action.socket.js
server/api/action/index.js
server/api/agent/agent.controller.js
server/api/agent/agent.socket.js
server/api/agent/index.js
server/api/ami/ami.ami.js
server/api/ami/ami.controller.js
server/api/ami/ami.socket.js
server/api/ami/ami.spec.js
server/api/ami/index.js
server/api/automation/automation.controller.js
server/api/automation/automation.socket.js
server/api/automation/automation.spec.js
server/api/automation/index.js
server/api/canned_answer/canned_answer.controller.js
server/api/canned_answer/canned_answer.socket.js
server/api/canned_answer/index.js
server/api/chanspy/chanspy.controller.js
server/api/chanspy/chanspy.socket.js
server/api/chanspy/index.js
server/api/chat_application/chat_application.controller.js
server/api/chat_application/chat_application.socket.js
server/api/chat_application/chat_application.spec.js
server/api/chat_application/index.js
server/api/chat_enquiry/enquiry.controller.js
server/api/chat_enquiry/enquiry.socket.js
server/api/chat_enquiry/index.js
server/api/chat_message/chat_message.controller.js
server/api/chat_message/chat_message.socket.js
server/api/chat_message/chat_message.spec.js
server/api/chat_message/index.js
server/api/chat_proactive_action/chat_proactive_action.controller.js
server/api/chat_proactive_action/chat_proactive_action.socket.js
server/api/chat_proactive_action/index.js
server/api/chat_proactive_action/index.spec.js
server/api/chat_queue/chat_queue.controller.js
server/api/chat_queue/chat_queue.socket.js
server/api/chat_queue/index.js
server/api/chat_room/chat_room.controller.js
server/api/chat_room/chat_room.socket.js
server/api/chat_room/index.js
server/api/chat_visitor/chat_visitor.controller.js
server/api/chat_visitor/chat_visitor.socket.js
server/api/chat_visitor/index.js
server/api/chat_website/chat_website.controller.js
server/api/chat_website/chat_website.socket.js
server/api/chat_website/index.js
server/api/chat_websites_field/chat_websites_field.controller.js
server/api/chat_websites_field/chat_websites_field.socket.js
server/api/chat_websites_field/index.js
server/api/chat_websites_field/index.spec.js
server/api/company/company.controller.js
server/api/company/company.socket.js
server/api/company/company.spec.js
server/api/company/index.js
server/api/contact_manager/contact_manager.controller.js
server/api/contact_manager/contact_manager.socket.js
server/api/contact_manager/contact_manager.spec.js
server/api/contact_manager/index.js
server/api/custom_report/custom_report.controller.js
server/api/custom_report/custom_report.socket.js
server/api/custom_report/custom_report.spec.js
server/api/custom_report/index.js
server/api/dashboard/dashboard.controller.js
server/api/dashboard/dashboard.socket.js
server/api/dashboard/dashboard.spec.js
server/api/dashboard/index.js
server/api/default_report/default_report.controller.js
server/api/default_report/default_report.socket.js
server/api/default_report/default_report.spec.js
server/api/default_report/index.js
server/api/desk_account/desk_account.controller.js
server/api/desk_account/desk_account.socket.js
server/api/desk_account/desk_account.spec.js
server/api/desk_account/index.js
server/api/desk_configuration/desk_configuration.controller.js
server/api/desk_configuration/desk_configuration.socket.js
server/api/desk_configuration/index.js
server/api/desk_configuration/index.spec.js
server/api/desk_field/desk_field.controller.js
server/api/desk_field/desk_field.socket.js
server/api/desk_field/index.js
server/api/desk_field/index.spec.js
server/api/extracted_report/extracted_report.controller.js
server/api/extracted_report/extracted_report.socket.js
server/api/extracted_report/extracted_report.spec.js
server/api/extracted_report/index.js
server/api/fax_account/fax_account.controller.js
server/api/fax_account/fax_account.socket.js
server/api/fax_account/fax_account.spec.js
server/api/fax_account/index.js
server/api/fax_application/fax_application.controller.js
server/api/fax_application/fax_application.socket.js
server/api/fax_application/fax_application.spec.js
server/api/fax_application/index.js
server/api/fax_message/fax_message.ami.js
server/api/fax_message/fax_message.controller.js
server/api/fax_message/fax_message.socket.js
server/api/fax_message/fax_message.spec.js
server/api/fax_message/index.js
server/api/fax_queue/fax_queue.controller.js
server/api/fax_queue/fax_queue.socket.js
server/api/fax_queue/fax_queue.spec.js
server/api/fax_queue/index.js
server/api/fax_room/fax_room.controller.js
server/api/fax_room/fax_room.kue.js
server/api/fax_room/fax_room.socket.js
server/api/fax_room/fax_room.spec.js
server/api/fax_room/index.js
server/api/freshdesk_account/freshdesk_account.controller.js
server/api/freshdesk_account/freshdesk_account.socket.js
server/api/freshdesk_account/index.js
server/api/freshdesk_account/index.spec.js
server/api/freshdesk_configuration/freshdesk_configuration.controller.js
server/api/freshdesk_configuration/freshdesk_configuration.socket.js
server/api/freshdesk_configuration/index.js
server/api/freshdesk_configuration/index.spec.js
server/api/freshdesk_field/freshdesk_field.controller.js
server/api/freshdesk_field/freshdesk_field.socket.js
server/api/freshdesk_field/index.js
server/api/freshdesk_field/index.spec.js
server/api/integration/index.js
server/api/integration/integration.controller.js
server/api/integration/integration.socket.js
server/api/integration/integration.spec.js
server/api/interval/index.js
server/api/interval/interval.controller.js
server/api/interval/interval.socket.js
server/api/interval/interval.spec.js
server/api/jscripty_project/index.js
server/api/jscripty_project/index.spec.js
server/api/jscripty_project/jscripty_project.controller.js
server/api/jscripty_project/jscripty_project.socket.js
server/api/license/index.js
server/api/license/license.controller.js
server/api/license/license.socket.js
server/api/mail_account/index.js
server/api/mail_account/mail_account.controller.js
server/api/mail_account/mail_account.socket.js
server/api/mail_application/index.js
server/api/mail_application/mail_application.controller.js
server/api/mail_application/mail_application.socket.js
server/api/mail_application/mail_application.spec.js
server/api/mail_attachment/index.js
server/api/mail_attachment/mail_attachment.controller.js
server/api/mail_attachment/mail_attachment.socket.js
server/api/mail_message/index.js
server/api/mail_message/mail_message.controller.js
server/api/mail_message/mail_message.socket.js
server/api/mail_queue/index.js
server/api/mail_queue/mail_queue.controller.js
server/api/mail_queue/mail_queue.socket.js
server/api/mail_room/index.js
server/api/mail_room/mail_room.controller.js
server/api/mail_room/mail_room.socket.js
server/api/mail_server_in/index.js
server/api/mail_server_in/mail_server_in.controller.js
server/api/mail_server_in/mail_server_in.socket.js
server/api/mail_server_out/index.js
server/api/mail_server_out/mail_server_out.controller.js
server/api/mail_server_out/mail_server_out.socket.js
server/api/mail_template/index.js
server/api/mail_template/mail_template.controller.js
server/api/mail_template/mail_template.socket.js
server/api/metric/index.js
server/api/metric/metric.controller.js
server/api/metric/metric.socket.js
server/api/metric/metric.spec.js
server/api/module/index.js
server/api/module/module.controller.js
server/api/module/module.socket.js
server/api/module/module.spec.js
server/api/module/setting/index.js
server/api/module/setting/setting.controller.js
server/api/module/setting/setting.socket.js
server/api/module/setting/setting.spec.js
server/api/motionbar/index.js
server/api/motionbar/motionbar.controller.js
server/api/motionbar/motionbar.socket.js
server/api/motionbar/motionbar.spec.js
server/api/pause/index.js
server/api/pause/pause.controller.js
server/api/pause/pause.socket.js
server/api/report_agent/index.js
server/api/report_agent/report_agent.controller.js
server/api/report_agent/report_agent.socket.js
server/api/report_chat/index.js
server/api/report_chat/report_chat.controller.js
server/api/report_chat/report_chat.socket.js
server/api/report_chat_session/index.js
server/api/report_chat_session/report_chat_session.controller.js
server/api/report_chat_session/report_chat_session.socket.js
server/api/report_integration/index.js
server/api/report_integration/report_integration.controller.js
server/api/report_integration/report_integration.socket.js
server/api/report_mail/index.js
server/api/report_mail/report_mail.controller.js
server/api/report_mail/report_mail.socket.js
server/api/report_mail_session/index.js
server/api/report_mail_session/report_mail_session.controller.js
server/api/report_mail_session/report_mail_session.socket.js
server/api/report_queue/index.js
server/api/report_queue/report_queue.controller.js
server/api/report_queue/report_queue.socket.js
server/api/report_tree/index.js
server/api/report_tree/report_tree.controller.js
server/api/report_tree/report_tree.socket.js
server/api/report_tree/report_tree.spec.js
server/api/salesforce_account/index.js
server/api/salesforce_account/index.spec.js
server/api/salesforce_account/salesforce_account.controller.js
server/api/salesforce_account/salesforce_account.socket.js
server/api/salesforce_configuration/index.js
server/api/salesforce_configuration/index.spec.js
server/api/salesforce_configuration/salesforce_configuration.controller.js
server/api/salesforce_configuration/salesforce_configuration.socket.js
server/api/salesforce_field/index.js
server/api/salesforce_field/index.spec.js
server/api/salesforce_field/salesforce_field.controller.js
server/api/salesforce_field/salesforce_field.socket.js
server/api/service/index.js
server/api/service/service.controller.js
server/api/service/service.socket.js
server/api/service/service.spec.js
server/api/setting/index.js
server/api/setting/setting.controller.js
server/api/setting/setting.socket.js
server/api/sound/index.js
server/api/sound/sound.controller.js
server/api/sound/sound.socket.js
server/api/sound/sound.spec.js
server/api/square_odbc/index.js
server/api/square_odbc/square_odbc.controller.js
server/api/square_odbc/square_odbc.socket.js
server/api/square_odbc/square_odbc.spec.js
server/api/square_project/index.js
server/api/square_project/square_project.controller.js
server/api/square_project/square_project.socket.js
server/api/sugarcrm_account/index.js
server/api/sugarcrm_account/index.spec.js
server/api/sugarcrm_account/sugarcrm_account.controller.js
server/api/sugarcrm_account/sugarcrm_account.socket.js
server/api/sugarcrm_configuration/index.js
server/api/sugarcrm_configuration/index.spec.js
server/api/sugarcrm_configuration/sugarcrm_configuration.controller.js
server/api/sugarcrm_configuration/sugarcrm_configuration.socket.js
server/api/sugarcrm_field/index.js
server/api/sugarcrm_field/index.spec.js
server/api/sugarcrm_field/sugarcrm_field.controller.js
server/api/sugarcrm_field/sugarcrm_field.socket.js
server/api/tag/index.js
server/api/tag/tag.controller.js
server/api/tag/tag.socket.js
server/api/tag/tag.spec.js
server/api/team/index.js
server/api/team/team.controller.js
server/api/team/team.socket.js
server/api/team/team.spec.js
server/api/telephone/index.js
server/api/telephone/telephone.controller.js
server/api/telephone/telephone.socket.js
server/api/trigger/index.js
server/api/trigger/trigger.controller.js
server/api/trigger/trigger.socket.js
server/api/trigger/trigger.spec.js
server/api/trunk/index.js
server/api/trunk/trunk.controller.js
server/api/trunk/trunk.socket.js
server/api/update/index.js
server/api/update/update.controller.js
server/api/user/index.js
server/api/user/user.controller.js
server/api/user/user.socket.js
server/api/user_has_chat_queue/index.js
server/api/user_has_chat_queue/user_has_chat_queue.controller.js
server/api/user_has_chat_queue/user_has_chat_queue.socket.js
server/api/user_has_chat_queue/user_has_chat_queue.spec.js
server/api/user_has_chat_room/index.js
server/api/user_has_chat_room/user_has_chat_room.controller.js
server/api/user_has_chat_room/user_has_chat_room.socket.js
server/api/user_has_chat_room/user_has_chat_room.spec.js
server/api/user_has_fax_queue/index.js
server/api/user_has_fax_queue/user_has_fax_queue.controller.js
server/api/user_has_fax_queue/user_has_fax_queue.socket.js
server/api/user_has_fax_queue/user_has_fax_queue.spec.js
server/api/user_has_mail_queue/index.js
server/api/user_has_mail_queue/user_has_mail_queue.controller.js
server/api/user_has_mail_queue/user_has_mail_queue.socket.js
server/api/user_has_service/index.js
server/api/user_has_service/user_has_service.controller.js
server/api/user_has_service/user_has_service.socket.js
server/api/user_has_service/user_has_service.spec.js
server/api/user_has_team/index.js
server/api/user_has_team/user_has_team.controller.js
server/api/user_has_team/user_has_team.model.js
server/api/user_has_team/user_has_team.socket.js
server/api/user_has_team/user_has_team.spec.js
server/api/user_has_voice_queue/index.js
server/api/user_has_voice_queue/user_has_voice_queue.controller.js
server/api/user_has_voice_queue/user_has_voice_queue.socket.js
server/api/user_has_voice_queue/user_has_voice_queue.spec.js
server/api/variable/index.js
server/api/variable/variable.controller.js
server/api/variable/variable.socket.js
server/api/voice_context/index.js
server/api/voice_context/voice_context.controller.js
server/api/voice_context/voice_context.socket.js
server/api/voice_context/voice_context.spec.js
server/api/voice_extension/index.js
server/api/voice_extension/voice_extension.controller.js
server/api/voice_extension/voice_extension.socket.js
server/api/voice_extension/voice_extension.spec.js
server/api/voice_musiconhold/index.js
server/api/voice_musiconhold/voice_musiconhold.controller.js
server/api/voice_musiconhold/voice_musiconhold.socket.js
server/api/voice_musiconhold/voice_musiconhold.spec.js
server/api/voice_queue/index.js
server/api/voice_queue/voice_queue.controller.js
server/api/voice_queue/voice_queue.socket.js
server/api/voice_recording/index.js
server/api/voice_recording/voice_recording.controller.js
server/api/voice_recording/voice_recording.socket.js
server/api/voice_voicemail/index.js
server/api/voice_voicemail/voice_voicemail.controller.js
server/api/voice_voicemail/voice_voicemail.socket.js
server/api/voice_voicemail/voice_voicemail.spec.js
server/api/voice_voicemail_messages/index.js
server/api/voice_voicemail_messages/voice_voicemail_messages.controller.js
server/api/voice_voicemail_messages/voice_voicemail_messages.socket.js
server/api/widget/index.js
server/api/widget/widget.controller.js
server/api/widget/widget.spec.js
server/api/xchatty/index.js
server/api/xchatty/xchatty.controller.js
server/api/xchatty/xchatty.socket.js
server/api/zendesk_account/index.js
server/api/zendesk_account/zendesk_account.controller.js
server/api/zendesk_account/zendesk_account.socket.js
server/api/zendesk_account/zendesk_account.spec.js
server/api/zendesk_configuration/index.js
server/api/zendesk_configuration/zendesk_configuration.controller.js
server/api/zendesk_configuration/zendesk_configuration.socket.js
server/api/zendesk_configuration/zendesk_configuration.spec.js
server/api/zendesk_field/index.js
server/api/zendesk_field/zendesk_field.controller.js
server/api/zendesk_field/zendesk_field.socket.js
server/api/zendesk_field/zendesk_field.spec.js
server/app.js
server/app.json
server/auth/auth.service.js
server/auth/facebook/index.js
server/auth/facebook/passport.js
server/auth/google/index.js
server/auth/google/passport.js
server/auth/index.js
server/auth/local/index.js
server/auth/local/local.ami.js
server/auth/local/passport.js
server/auth/twitter/index.js
server/auth/twitter/passport.js
server/config/agi.js
server/config/ami/action.js
server/config/ami/acw.js
server/config/ami/agent.js
server/config/ami/call.js
server/config/ami/index.js
server/config/ami/member.js
server/config/ami/queue_caller.js
server/config/ami/queue_member.js
server/config/ami/recording.js
server/config/ami/socket.js
server/config/ami/transfer.js
server/config/ami/trunk.js
server/config/ami/user.js
server/config/ami/voice_context.js
server/config/analytics.js
server/config/autodialer/index.js
server/config/autodialer/process.js
server/config/automations/fax.js
server/config/automations/mail.js
server/config/express.js
server/config/fax.js
server/config/history/history.js
server/config/history/reportAgent.js [deleted file]
server/config/history/reportCall.js [deleted file]
server/config/history/reportChat.js [deleted file]
server/config/history/reportChatSession.js [deleted file]
server/config/history/reportIntegration.js [deleted file]
server/config/history/reportMail.js [deleted file]
server/config/history/reportMailSession.js [deleted file]
server/config/history/reportMember.js [deleted file]
server/config/history/reportMove.js [new file with mode: 0644]
server/config/history/reportQueue.js [deleted file]
server/config/history/reportSquare.js [deleted file]
server/config/history/reportSquareDetail.js [deleted file]
server/config/history/reportTransfer.js [deleted file]
server/config/imap/imap.js
server/config/imap/index.js
server/config/integration.js
server/config/integrations/index.js
server/config/integrations/zendesk.js
server/config/license/index.js
server/config/license/license.service.js
server/config/local.env.sample.js
server/config/logger.js
server/config/routing/chat/index.js
server/config/routing/chat/session.js
server/config/routing/mail/index.js
server/config/routing/mail/session.js
server/config/seed.js
server/config/seedp.js
server/config/smtp/index.js
server/config/smtp/smtp.js
server/config/socketio.js
server/config/tools/chanspy.js
server/config/tools/chatRoom.js
server/config/tools/index.js
server/config/tools/interval.js
server/config/tools/user.js
server/config/triggers/chat.js
server/config/triggers/cm.js
server/config/triggers/index.js
server/config/triggers/mail.js
server/config/triggers/util.js
server/config/triggers/voice.js
server/config/util/error.js
server/config/util/index.js
server/files/asterisk/sip_xcally_contexts.conf [deleted file]
server/migrations/20160315183016-motion.js
server/models/action.js
server/models/asterisk_manager.js
server/models/asterisk_manager_interface.js
server/models/autodialer_contact.js
server/models/autodialer_process.js
server/models/automation.js
server/models/canned_answer.js
server/models/channel.js
server/models/chanspy.js
server/models/chat_application.js
server/models/chat_enquiry.js
server/models/chat_message.js
server/models/chat_proactive_action.js
server/models/chat_queue.js
server/models/chat_room.js
server/models/chat_visitor.js
server/models/chat_website.js
server/models/chat_websites_field.js
server/models/company.js
server/models/contact.js
server/models/contact_email.js
server/models/contact_has_custom_field.js
server/models/contact_phone.js
server/models/custom_field.js
server/models/custom_report.js
server/models/dashboard.js
server/models/default_report.js
server/models/desk_account.js
server/models/desk_configuration.js
server/models/desk_field.js
server/models/event.js
server/models/extracted_report.js
server/models/fax_account.js
server/models/fax_application.js
server/models/fax_message.js
server/models/fax_queue.js
server/models/fax_room.js
server/models/freshdesk_account.js
server/models/freshdesk_configuration.js
server/models/freshdesk_field.js
server/models/history/report_agent_history.js
server/models/history/report_call_history.js
server/models/history/report_chat_history.js
server/models/history/report_chat_session_history.js
server/models/history/report_integration_history.js
server/models/history/report_mail_history.js
server/models/history/report_mail_session_history.js
server/models/history/report_member_history.js
server/models/history/report_queue_history.js
server/models/history/report_square_detail_history.js
server/models/history/report_square_history.js
server/models/history/report_tranfer_history.js
server/models/index.js
server/models/integration.js
server/models/interval.js
server/models/jscripty_project.js
server/models/mail_account.js
server/models/mail_application.js
server/models/mail_attachment.js
server/models/mail_automation.js
server/models/mail_message.js
server/models/mail_queue.js
server/models/mail_room.js
server/models/mail_room_status.js
server/models/mail_server_in.js
server/models/mail_server_out.js
server/models/mail_template.js
server/models/mail_trigger.js
server/models/metric.js
server/models/module.js
server/models/motionbar.js
server/models/pause.js
server/models/report_agent.js
server/models/report_call.js
server/models/report_chat.js
server/models/report_chat_session.js
server/models/report_field.js
server/models/report_integration.js
server/models/report_jscripty_input.js
server/models/report_jscripty_question.js
server/models/report_jscripty_session.js
server/models/report_mail.js
server/models/report_mail_session.js
server/models/report_member.js
server/models/report_queue.js
server/models/report_square.js
server/models/report_square_detail.js
server/models/report_tranfer.js
server/models/report_tree.js
server/models/salesforce_account.js
server/models/salesforce_configuration.js
server/models/salesforce_field.js
server/models/service.js
server/models/settings.js
server/models/sound.js
server/models/square_odbc.js
server/models/square_project.js
server/models/sugarcrm_account.js
server/models/sugarcrm_configuration.js
server/models/sugarcrm_field.js
server/models/tag.js
server/models/team.js
server/models/telephone.js
server/models/tools_action.js
server/models/tools_condition.js
server/models/trigger.js
server/models/trunk.js
server/models/user.js
server/models/user_has_chat_queue.js
server/models/user_has_chat_room.js
server/models/user_has_fax_queue.js
server/models/user_has_mail_queue.js
server/models/user_has_service.js
server/models/user_has_team.js
server/models/user_has_voice_queue.js
server/models/variable.js
server/models/voice_context.js
server/models/voice_extension.js
server/models/voice_musiconhold.js
server/models/voice_queue.js
server/models/voice_recording.js
server/models/voice_voicemail.js
server/models/voice_voicemail_messages.js
server/models/zendesk_account.js
server/models/zendesk_configuration.js
server/models/zendesk_field.js
server/routes.js
server/utils/report_build.js
server/utils/report_extraction.js
server/utils/voice_extension.js

similarity index 50%
rename from public/app/47e08aab.vendor.js
rename to public/app/41989707.vendor.js
index 0428f5c..3e04a8e 100644 (file)
@@ -1,70 +1,70 @@
-function $notificationProvider(){function a(a,c,d){function e(c,d){function f(){d=angular.extend({focusWindowOnClick:!0},b.options||{},d);try{g.baseNotification=new a.Notification(c,d)}catch(e){return}d.delay&&setTimeout(angular.bind(g,g.close),d.delay),d.focusWindowOnClick&&g.$on("click",function(){a.focus()}),g._events.forEach(function(a){g.$on.apply(g,a)}),g._events=[]}if(!a.Notification)return!1;d=d||{};var g=this;return this._events=[],"granted"===a.Notification.permission?f():void("denied"!==a.Notification.permission&&e.requestPermission().then(f))}function f(a,b){return new e(a,b)}return e.prototype.$on=function(a,b){function d(){var a=arguments;c.$apply(function(){b.apply(e,a)})}var e=this;return this.baseNotification?(this.baseNotification.addEventListener(a,d),function(){this.baseNotification.removeListener(event,d)}):this._events.push([a,b])},e.prototype.close=function(){this.baseNotification&&this.baseNotification.close()},e.requestPermission=function(){return d(function(b,c){return a.Notification?void a.Notification.requestPermission(function(c){a.Notification.permission=a.Notification.permission||c,b(a.Notification.permission)}):c()})},f.requestPermission=e.requestPermission,f}var b=this;this.$get=["$window","$rootScope","$q",a],this.setOptions=function(a){this.options=a}}function wizardButtonDirective(a){angular.module("mgo-angular-wizard").directive(a,function(){return{restrict:"A",replace:!1,require:"^wizard",link:function(b,c,d,e){c.on("click",function(c){c.preventDefault(),b.$apply(function(){b.$eval(d[a]),e[a.replace("wz","").toLowerCase()]()})})}}})}function validElementString(a){try{return 0!==angular.element(a).length}catch(b){return!1}}function registerTextAngularTool(a,b){if(!a||""===a||taTools.hasOwnProperty(a))throw"textAngular Error: A unique name is required for a Tool Definition";if(b.display&&(""===b.display||!validElementString(b.display))||!b.display&&!b.buttontext&&!b.iconclass)throw'textAngular Error: Tool Definition for "'+a+'" does not have a valid display/iconclass/buttontext value';taTools[a]=b}if(function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b="length"in a&&a.length,c=_.type(a);return"function"===c||_.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(_.isFunction(b))return _.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return _.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(ha.test(b))return _.filter(b,a,c);b=_.filter(b,a)}return _.grep(a,function(a){return U.call(b,a)>=0!==c})}function e(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function f(a){var b=oa[a]={};return _.each(a.match(na)||[],function(a,c){b[c]=!0}),b}function g(){Z.removeEventListener("DOMContentLoaded",g,!1),a.removeEventListener("load",g,!1),_.ready()}function h(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=_.expando+h.uid++}function i(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(ua,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:ta.test(c)?_.parseJSON(c):c}catch(e){}sa.set(a,b,c)}else c=void 0;return c}function j(){return!0}function k(){return!1}function l(){try{return Z.activeElement}catch(a){}}function m(a,b){return _.nodeName(a,"table")&&_.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function n(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function o(a){var b=Ka.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function p(a,b){for(var c=0,d=a.length;d>c;c++)ra.set(a[c],"globalEval",!b||ra.get(b[c],"globalEval"))}function q(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(ra.hasData(a)&&(f=ra.access(a),g=ra.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)_.event.add(b,e,j[e][c])}sa.hasData(a)&&(h=sa.access(a),i=_.extend({},h),sa.set(b,i))}}function r(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&_.nodeName(a,b)?_.merge([a],c):c}function s(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ya.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function t(b,c){var d,e=_(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:_.css(e[0],"display");return e.detach(),f}function u(a){var b=Z,c=Oa[a];return c||(c=t(a,b),"none"!==c&&c||(Na=(Na||_("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=Na[0].contentDocument,b.write(),b.close(),c=t(a,b),Na.detach()),Oa[a]=c),c}function v(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||_.contains(a.ownerDocument,a)||(g=_.style(a,b)),Qa.test(g)&&Pa.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function w(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}function x(a,b){if(b in a)return b;for(var c=b[0].toUpperCase()+b.slice(1),d=b,e=Xa.length;e--;)if(b=Xa[e]+c,b in a)return b;return d}function y(a,b,c){var d=Ta.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function z(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=_.css(a,c+wa[f],!0,e)),d?("content"===c&&(g-=_.css(a,"padding"+wa[f],!0,e)),"margin"!==c&&(g-=_.css(a,"border"+wa[f]+"Width",!0,e))):(g+=_.css(a,"padding"+wa[f],!0,e),"padding"!==c&&(g+=_.css(a,"border"+wa[f]+"Width",!0,e)));return g}function A(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ra(a),g="border-box"===_.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=v(a,b,f),(0>e||null==e)&&(e=a.style[b]),Qa.test(e))return e;d=g&&(Y.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+z(a,b,c||(g?"border":"content"),d,f)+"px"}function B(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=ra.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&xa(d)&&(f[g]=ra.access(d,"olddisplay",u(d.nodeName)))):(e=xa(d),"none"===c&&e||ra.set(d,"olddisplay",e?c:_.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function C(a,b,c,d,e){return new C.prototype.init(a,b,c,d,e)}function D(){return setTimeout(function(){Ya=void 0}),Ya=_.now()}function E(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=wa[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function F(a,b,c){for(var d,e=(cb[b]||[]).concat(cb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function G(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},n=a.style,o=a.nodeType&&xa(a),p=ra.get(a,"fxshow");c.queue||(h=_._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,_.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[n.overflow,n.overflowX,n.overflowY],j=_.css(a,"display"),k="none"===j?ra.get(a,"olddisplay")||u(a.nodeName):j,"inline"===k&&"none"===_.css(a,"float")&&(n.display="inline-block")),c.overflow&&(n.overflow="hidden",l.always(function(){n.overflow=c.overflow[0],n.overflowX=c.overflow[1],n.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],$a.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(o?"hide":"show")){if("show"!==e||!p||void 0===p[d])continue;o=!0}m[d]=p&&p[d]||_.style(a,d)}else j=void 0;if(_.isEmptyObject(m))"inline"===("none"===j?u(a.nodeName):j)&&(n.display=j);else{p?"hidden"in p&&(o=p.hidden):p=ra.access(a,"fxshow",{}),f&&(p.hidden=!o),o?_(a).show():l.done(function(){_(a).hide()}),l.done(function(){var b;ra.remove(a,"fxshow");for(b in m)_.style(a,b,m[b])});for(d in m)g=F(o?p[d]:0,d,l),d in p||(p[d]=g.start,o&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function H(a,b){var c,d,e,f,g;for(c in a)if(d=_.camelCase(c),e=b[d],f=a[c],_.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=_.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function I(a,b,c){var d,e,f=0,g=bb.length,h=_.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Ya||D(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:_.extend({},b),opts:_.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Ya||D(),duration:c.duration,tweens:[],createTween:function(b,c){var d=_.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(H(k,j.opts.specialEasing);g>f;f++)if(d=bb[f].call(j,a,k,j.opts))return d;return _.map(k,F,j),_.isFunction(j.opts.start)&&j.opts.start.call(a,j),_.fx.timer(_.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function J(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(na)||[];if(_.isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function K(a,b,c,d){function e(h){var i;return f[h]=!0,_.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||g||f[j]?g?!(i=j):void 0:(b.dataTypes.unshift(j),e(j),!1)}),i}var f={},g=a===tb;return e(b.dataTypes[0])||!f["*"]&&e("*")}function L(a,b){var c,d,e=_.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&_.extend(!0,a,d),a}function M(a,b,c){for(var d,e,f,g,h=a.contents,i=a.dataTypes;"*"===i[0];)i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function N(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}function O(a,b,c,d){var e;if(_.isArray(b))_.each(b,function(b,e){c||yb.test(a)?d(a,e):O(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==_.type(b))d(a,b);else for(e in b)O(a+"["+e+"]",b[e],c,d)}function P(a){return _.isWindow(a)?a:9===a.nodeType&&a.defaultView}var Q=[],R=Q.slice,S=Q.concat,T=Q.push,U=Q.indexOf,V={},W=V.toString,X=V.hasOwnProperty,Y={},Z=a.document,$="2.1.4",_=function(a,b){return new _.fn.init(a,b)},aa=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ba=/^-ms-/,ca=/-([\da-z])/gi,da=function(a,b){return b.toUpperCase()};_.fn=_.prototype={jquery:$,constructor:_,selector:"",length:0,toArray:function(){return R.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:R.call(this)},pushStack:function(a){var b=_.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return _.each(this,a,b)},map:function(a){return this.pushStack(_.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(R.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:T,sort:Q.sort,splice:Q.splice},_.extend=_.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||_.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(_.isPlainObject(d)||(e=_.isArray(d)))?(e?(e=!1,f=c&&_.isArray(c)?c:[]):f=c&&_.isPlainObject(c)?c:{},g[b]=_.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},_.extend({expando:"jQuery"+($+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===_.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!_.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==_.type(a)||a.nodeType||_.isWindow(a)?!1:a.constructor&&!X.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?V[W.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=_.trim(a),a&&(1===a.indexOf("use strict")?(b=Z.createElement("script"),b.text=a,Z.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(ba,"ms-").replace(ca,da)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,d){var e,f=0,g=a.length,h=c(a);if(d){if(h)for(;g>f&&(e=b.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=b.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=b.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=b.call(a[f],f,a[f]),e===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(aa,"")},makeArray:function(a,b){var d=b||[];return null!=a&&(c(Object(a))?_.merge(d,"string"==typeof a?[a]:a):T.call(d,a)),d},inArray:function(a,b,c){return null==b?-1:U.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,d){var e,f=0,g=a.length,h=c(a),i=[];if(h)for(;g>f;f++)e=b(a[f],f,d),null!=e&&i.push(e);else for(f in a)e=b(a[f],f,d),null!=e&&i.push(e);return S.apply([],i)},guid:1,proxy:function(a,b){var c,d,e;return"string"==typeof b&&(c=a[b],b=a,a=c),_.isFunction(a)?(d=R.call(arguments,2),e=function(){return a.apply(b||this,d.concat(R.call(arguments)))},e.guid=a.guid=a.guid||_.guid++,e):void 0},now:Date.now,support:Y}),_.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){V["[object "+b+"]"]=b.toLowerCase()});var ea=function(a){function b(a,b,c,d){var e,f,g,h,i,j,l,n,o,p;if((b?b.ownerDocument||b:O)!==G&&F(b),b=b||G,c=c||[],h=b.nodeType,"string"!=typeof a||!a||1!==h&&9!==h&&11!==h)return c;if(!d&&I){if(11!==h&&(e=sa.exec(a)))if(g=e[1]){if(9===h){if(f=b.getElementById(g),!f||!f.parentNode)return c;if(f.id===g)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(g))&&M(b,f)&&f.id===g)return c.push(f),c}else{if(e[2])return $.apply(c,b.getElementsByTagName(a)),c;if((g=e[3])&&v.getElementsByClassName)return $.apply(c,b.getElementsByClassName(g)),c}if(v.qsa&&(!J||!J.test(a))){if(n=l=N,o=b,p=1!==h&&a,1===h&&"object"!==b.nodeName.toLowerCase()){for(j=z(a),(l=b.getAttribute("id"))?n=l.replace(ua,"\\$&"):b.setAttribute("id",n),n="[id='"+n+"'] ",i=j.length;i--;)j[i]=n+m(j[i]);o=ta.test(a)&&k(b.parentNode)||b,p=j.join(",")}if(p)try{return $.apply(c,o.querySelectorAll(p)),c}catch(q){}finally{l||b.removeAttribute("id")}}}return B(a.replace(ia,"$1"),b,c,d)}function c(){function a(c,d){return b.push(c+" ")>w.cacheLength&&delete a[b.shift()],a[c+" "]=d}var b=[];return a}function d(a){return a[N]=!0,a}function e(a){var b=G.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function f(a,b){for(var c=a.split("|"),d=a.length;d--;)w.attrHandle[c[d]]=b}function g(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||V)-(~a.sourceIndex||V);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function h(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function i(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function j(a){return d(function(b){return b=+b,d(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function k(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}function l(){}function m(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function n(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=Q++;return b.first?function(b,c,f){for(;b=b[d];)if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[P,f];if(g){for(;b=b[d];)if((1===b.nodeType||e)&&a(b,c,g))return!0}else for(;b=b[d];)if(1===b.nodeType||e){if(i=b[N]||(b[N]={}),(h=i[d])&&h[0]===P&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function o(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function p(a,c,d){for(var e=0,f=c.length;f>e;e++)b(a,c[e],d);return d}function q(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function r(a,b,c,e,f,g){return e&&!e[N]&&(e=r(e)),f&&!f[N]&&(f=r(f,g)),d(function(d,g,h,i){var j,k,l,m=[],n=[],o=g.length,r=d||p(b||"*",h.nodeType?[h]:h,[]),s=!a||!d&&b?r:q(r,m,a,h,i),t=c?f||(d?a:o||e)?[]:g:s;if(c&&c(s,t,h,i),e)for(j=q(t,n),e(j,[],h,i),k=j.length;k--;)(l=j[k])&&(t[n[k]]=!(s[n[k]]=l));if(d){if(f||a){if(f){for(j=[],k=t.length;k--;)(l=t[k])&&j.push(s[k]=l);f(null,t=[],j,i)}for(k=t.length;k--;)(l=t[k])&&(j=f?aa(d,l):m[k])>-1&&(d[j]=!(g[j]=l))}}else t=q(t===g?t.splice(o,t.length):t),f?f(null,g,t,i):$.apply(g,t)})}function s(a){for(var b,c,d,e=a.length,f=w.relative[a[0].type],g=f||w.relative[" "],h=f?1:0,i=n(function(a){return a===b},g,!0),j=n(function(a){return aa(b,a)>-1},g,!0),k=[function(a,c,d){var e=!f&&(d||c!==C)||((b=c).nodeType?i(a,c,d):j(a,c,d));return b=null,e}];e>h;h++)if(c=w.relative[a[h].type])k=[n(o(k),c)];else{if(c=w.filter[a[h].type].apply(null,a[h].matches),c[N]){for(d=++h;e>d&&!w.relative[a[d].type];d++);return r(h>1&&o(k),h>1&&m(a.slice(0,h-1).concat({value:" "===a[h-2].type?"*":""})).replace(ia,"$1"),c,d>h&&s(a.slice(h,d)),e>d&&s(a=a.slice(d)),e>d&&m(a))}k.push(c)}return o(k)}function t(a,c){var e=c.length>0,f=a.length>0,g=function(d,g,h,i,j){var k,l,m,n=0,o="0",p=d&&[],r=[],s=C,t=d||f&&w.find.TAG("*",j),u=P+=null==s?1:Math.random()||.1,v=t.length;for(j&&(C=g!==G&&g);o!==v&&null!=(k=t[o]);o++){if(f&&k){for(l=0;m=a[l++];)if(m(k,g,h)){i.push(k);break}j&&(P=u)}e&&((k=!m&&k)&&n--,d&&p.push(k))}if(n+=o,e&&o!==n){for(l=0;m=c[l++];)m(p,r,g,h);if(d){if(n>0)for(;o--;)p[o]||r[o]||(r[o]=Y.call(i));r=q(r)}$.apply(i,r),j&&!d&&r.length>0&&n+c.length>1&&b.uniqueSort(i)}return j&&(P=u,C=s),p};return e?d(g):g}var u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N="sizzle"+1*new Date,O=a.document,P=0,Q=0,R=c(),S=c(),T=c(),U=function(a,b){return a===b&&(E=!0),0},V=1<<31,W={}.hasOwnProperty,X=[],Y=X.pop,Z=X.push,$=X.push,_=X.slice,aa=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},ba="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ca="[\\x20\\t\\r\\n\\f]",da="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ea=da.replace("w","w#"),fa="\\["+ca+"*("+da+")(?:"+ca+"*([*^$|!~]?=)"+ca+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ea+"))|)"+ca+"*\\]",ga=":("+da+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+fa+")*)|.*)\\)|)",ha=new RegExp(ca+"+","g"),ia=new RegExp("^"+ca+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ca+"+$","g"),ja=new RegExp("^"+ca+"*,"+ca+"*"),ka=new RegExp("^"+ca+"*([>+~]|"+ca+")"+ca+"*"),la=new RegExp("="+ca+"*([^\\]'\"]*?)"+ca+"*\\]","g"),ma=new RegExp(ga),na=new RegExp("^"+ea+"$"),oa={ID:new RegExp("^#("+da+")"),CLASS:new RegExp("^\\.("+da+")"),TAG:new RegExp("^("+da.replace("w","w*")+")"),ATTR:new RegExp("^"+fa),PSEUDO:new RegExp("^"+ga),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ca+"*(even|odd|(([+-]|)(\\d*)n|)"+ca+"*(?:([+-]|)"+ca+"*(\\d+)|))"+ca+"*\\)|)","i"),bool:new RegExp("^(?:"+ba+")$","i"),needsContext:new RegExp("^"+ca+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ca+"*((?:-\\d)?\\d*)"+ca+"*\\)|)(?=[^-]|$)","i")},pa=/^(?:input|select|textarea|button)$/i,qa=/^h\d$/i,ra=/^[^{]+\{\s*\[native \w/,sa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ta=/[+~]/,ua=/'|\\/g,va=new RegExp("\\\\([\\da-f]{1,6}"+ca+"?|("+ca+")|.)","ig"),wa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},xa=function(){F()};try{$.apply(X=_.call(O.childNodes),O.childNodes),X[O.childNodes.length].nodeType}catch(ya){$={apply:X.length?function(a,b){Z.apply(a,_.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}v=b.support={},y=b.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},F=b.setDocument=function(a){var b,c,d=a?a.ownerDocument||a:O;return d!==G&&9===d.nodeType&&d.documentElement?(G=d,H=d.documentElement,c=d.defaultView,c&&c!==c.top&&(c.addEventListener?c.addEventListener("unload",xa,!1):c.attachEvent&&c.attachEvent("onunload",xa)),I=!y(d),v.attributes=e(function(a){return a.className="i",!a.getAttribute("className")}),v.getElementsByTagName=e(function(a){return a.appendChild(d.createComment("")),!a.getElementsByTagName("*").length}),v.getElementsByClassName=ra.test(d.getElementsByClassName),v.getById=e(function(a){return H.appendChild(a).id=N,!d.getElementsByName||!d.getElementsByName(N).length}),v.getById?(w.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&I){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},w.filter.ID=function(a){var b=a.replace(va,wa);return function(a){return a.getAttribute("id")===b}}):(delete w.find.ID,w.filter.ID=function(a){var b=a.replace(va,wa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),w.find.TAG=v.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):v.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},w.find.CLASS=v.getElementsByClassName&&function(a,b){return I?b.getElementsByClassName(a):void 0},K=[],J=[],(v.qsa=ra.test(d.querySelectorAll))&&(e(function(a){H.appendChild(a).innerHTML="<a id='"+N+"'></a><select id='"+N+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&J.push("[*^$]="+ca+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||J.push("\\["+ca+"*(?:value|"+ba+")"),a.querySelectorAll("[id~="+N+"-]").length||J.push("~="),a.querySelectorAll(":checked").length||J.push(":checked"),a.querySelectorAll("a#"+N+"+*").length||J.push(".#.+[+~]")}),e(function(a){var b=d.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&J.push("name"+ca+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||J.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),J.push(",.*:")})),(v.matchesSelector=ra.test(L=H.matches||H.webkitMatchesSelector||H.mozMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&e(function(a){v.disconnectedMatch=L.call(a,"div"),L.call(a,"[s!='']:x"),K.push("!=",ga)}),J=J.length&&new RegExp(J.join("|")),K=K.length&&new RegExp(K.join("|")),b=ra.test(H.compareDocumentPosition),M=b||ra.test(H.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},U=b?function(a,b){if(a===b)return E=!0,0;var c=!a.compareDocumentPosition-!b.compareDocumentPosition;return c?c:(c=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&c||!v.sortDetached&&b.compareDocumentPosition(a)===c?a===d||a.ownerDocument===O&&M(O,a)?-1:b===d||b.ownerDocument===O&&M(O,b)?1:D?aa(D,a)-aa(D,b):0:4&c?-1:1)}:function(a,b){if(a===b)return E=!0,0;var c,e=0,f=a.parentNode,h=b.parentNode,i=[a],j=[b];if(!f||!h)return a===d?-1:b===d?1:f?-1:h?1:D?aa(D,a)-aa(D,b):0;if(f===h)return g(a,b);for(c=a;c=c.parentNode;)i.unshift(c);for(c=b;c=c.parentNode;)j.unshift(c);for(;i[e]===j[e];)e++;return e?g(i[e],j[e]):i[e]===O?-1:j[e]===O?1:0},d):G},b.matches=function(a,c){return b(a,null,null,c)},b.matchesSelector=function(a,c){if((a.ownerDocument||a)!==G&&F(a),c=c.replace(la,"='$1']"),v.matchesSelector&&I&&(!K||!K.test(c))&&(!J||!J.test(c)))try{var d=L.call(a,c);if(d||v.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return b(c,G,null,[a]).length>0},b.contains=function(a,b){return(a.ownerDocument||a)!==G&&F(a),M(a,b)},b.attr=function(a,b){(a.ownerDocument||a)!==G&&F(a);var c=w.attrHandle[b.toLowerCase()],d=c&&W.call(w.attrHandle,b.toLowerCase())?c(a,b,!I):void 0;return void 0!==d?d:v.attributes||!I?a.getAttribute(b):(d=a.getAttributeNode(b))&&d.specified?d.value:null},b.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},b.uniqueSort=function(a){var b,c=[],d=0,e=0;if(E=!v.detectDuplicates,D=!v.sortStable&&a.slice(0),a.sort(U),E){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return D=null,a},x=b.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=x(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d++];)c+=x(b);return c},w=b.selectors={cacheLength:50,createPseudo:d,match:oa,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(va,wa),a[3]=(a[3]||a[4]||a[5]||"").replace(va,wa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||b.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&b.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return oa.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&ma.test(c)&&(b=z(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(va,wa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=R[a+" "];return b||(b=new RegExp("(^|"+ca+")"+a+"("+ca+"|$)"))&&R(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,c,d){return function(e){var f=b.attr(e,a);return null==f?"!="===c:c?(f+="","="===c?f===d:"!="===c?f!==d:"^="===c?d&&0===f.indexOf(d):"*="===c?d&&f.indexOf(d)>-1:"$="===c?d&&f.slice(-d.length)===d:"~="===c?(" "+f.replace(ha," ")+" ").indexOf(d)>-1:"|="===c?f===d||f.slice(0,d.length+1)===d+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){for(;p;){for(l=b;l=l[p];)if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(k=q[N]||(q[N]={}),j=k[a]||[],n=j[0]===P&&j[1],m=j[0]===P&&j[2],l=n&&q.childNodes[n];l=++n&&l&&l[p]||(m=n=0)||o.pop();)if(1===l.nodeType&&++m&&l===b){k[a]=[P,n,m];break}}else if(s&&(j=(b[N]||(b[N]={}))[a])&&j[0]===P)m=j[1];else for(;(l=++n&&l&&l[p]||(m=n=0)||o.pop())&&((h?l.nodeName.toLowerCase()!==r:1!==l.nodeType)||!++m||(s&&((l[N]||(l[N]={}))[a]=[P,m]),l!==b)););return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,c){var e,f=w.pseudos[a]||w.setFilters[a.toLowerCase()]||b.error("unsupported pseudo: "+a);return f[N]?f(c):f.length>1?(e=[a,a,"",c],w.setFilters.hasOwnProperty(a.toLowerCase())?d(function(a,b){for(var d,e=f(a,c),g=e.length;g--;)d=aa(a,e[g]),a[d]=!(b[d]=e[g])}):function(a){return f(a,0,e)}):f}},pseudos:{not:d(function(a){var b=[],c=[],e=A(a.replace(ia,"$1"));return e[N]?d(function(a,b,c,d){for(var f,g=e(a,null,d,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,d,f){return b[0]=a,e(b,null,f,c),b[0]=null,!c.pop()}}),has:d(function(a){return function(c){return b(a,c).length>0}}),contains:d(function(a){return a=a.replace(va,wa),function(b){return(b.textContent||b.innerText||x(b)).indexOf(a)>-1}}),lang:d(function(a){return na.test(a||"")||b.error("unsupported lang: "+a),a=a.replace(va,wa).toLowerCase(),function(b){var c;do if(c=I?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===H},focus:function(a){return a===G.activeElement&&(!G.hasFocus||G.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!w.pseudos.empty(a)},header:function(a){return qa.test(a.nodeName)},input:function(a){return pa.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:j(function(){return[0]}),last:j(function(a,b){return[b-1]}),eq:j(function(a,b,c){return[0>c?c+b:c]}),even:j(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:j(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:j(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:j(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},w.pseudos.nth=w.pseudos.eq;for(u in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[u]=h(u);for(u in{submit:!0,reset:!0})w.pseudos[u]=i(u);return l.prototype=w.filters=w.pseudos,w.setFilters=new l,z=b.tokenize=function(a,c){var d,e,f,g,h,i,j,k=S[a+" "];if(k)return c?0:k.slice(0);for(h=a,i=[],j=w.preFilter;h;){(!d||(e=ja.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=ka.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(ia," ")}),h=h.slice(d.length));for(g in w.filter)!(e=oa[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return c?h.length:h?b.error(a):S(a,i).slice(0)},A=b.compile=function(a,b){
-var c,d=[],e=[],f=T[a+" "];if(!f){for(b||(b=z(a)),c=b.length;c--;)f=s(b[c]),f[N]?d.push(f):e.push(f);f=T(a,t(e,d)),f.selector=a}return f},B=b.select=function(a,b,c,d){var e,f,g,h,i,j="function"==typeof a&&a,l=!d&&z(a=j.selector||a);if(c=c||[],1===l.length){if(f=l[0]=l[0].slice(0),f.length>2&&"ID"===(g=f[0]).type&&v.getById&&9===b.nodeType&&I&&w.relative[f[1].type]){if(b=(w.find.ID(g.matches[0].replace(va,wa),b)||[])[0],!b)return c;j&&(b=b.parentNode),a=a.slice(f.shift().value.length)}for(e=oa.needsContext.test(a)?0:f.length;e--&&(g=f[e],!w.relative[h=g.type]);)if((i=w.find[h])&&(d=i(g.matches[0].replace(va,wa),ta.test(f[0].type)&&k(b.parentNode)||b))){if(f.splice(e,1),a=d.length&&m(f),!a)return $.apply(c,d),c;break}}return(j||A(a,l))(d,b,!I,c,ta.test(a)&&k(b.parentNode)||b),c},v.sortStable=N.split("").sort(U).join("")===N,v.detectDuplicates=!!E,F(),v.sortDetached=e(function(a){return 1&a.compareDocumentPosition(G.createElement("div"))}),e(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||f("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),v.attributes&&e(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||f("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),e(function(a){return null==a.getAttribute("disabled")})||f(ba,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),b}(a);_.find=ea,_.expr=ea.selectors,_.expr[":"]=_.expr.pseudos,_.unique=ea.uniqueSort,_.text=ea.getText,_.isXMLDoc=ea.isXML,_.contains=ea.contains;var fa=_.expr.match.needsContext,ga=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ha=/^.[^:#\[\.,]*$/;_.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?_.find.matchesSelector(d,a)?[d]:[]:_.find.matches(a,_.grep(b,function(a){return 1===a.nodeType}))},_.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(_(a).filter(function(){for(b=0;c>b;b++)if(_.contains(e[b],this))return!0}));for(b=0;c>b;b++)_.find(a,e[b],d);return d=this.pushStack(c>1?_.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(d(this,a||[],!1))},not:function(a){return this.pushStack(d(this,a||[],!0))},is:function(a){return!!d(this,"string"==typeof a&&fa.test(a)?_(a):a||[],!1).length}});var ia,ja=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ka=_.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:ja.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||ia).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof _?b[0]:b,_.merge(this,_.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:Z,!0)),ga.test(c[1])&&_.isPlainObject(b))for(c in b)_.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=Z.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=Z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):_.isFunction(a)?"undefined"!=typeof ia.ready?ia.ready(a):a(_):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),_.makeArray(a,this))};ka.prototype=_.fn,ia=_(Z);var la=/^(?:parents|prev(?:Until|All))/,ma={children:!0,contents:!0,next:!0,prev:!0};_.extend({dir:function(a,b,c){for(var d=[],e=void 0!==c;(a=a[b])&&9!==a.nodeType;)if(1===a.nodeType){if(e&&_(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),_.fn.extend({has:function(a){var b=_(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(_.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=fa.test(a)||"string"!=typeof a?_(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&_.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?_.unique(f):f)},index:function(a){return a?"string"==typeof a?U.call(_(a),this[0]):U.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(_.unique(_.merge(this.get(),_(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),_.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return _.dir(a,"parentNode")},parentsUntil:function(a,b,c){return _.dir(a,"parentNode",c)},next:function(a){return e(a,"nextSibling")},prev:function(a){return e(a,"previousSibling")},nextAll:function(a){return _.dir(a,"nextSibling")},prevAll:function(a){return _.dir(a,"previousSibling")},nextUntil:function(a,b,c){return _.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return _.dir(a,"previousSibling",c)},siblings:function(a){return _.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return _.sibling(a.firstChild)},contents:function(a){return a.contentDocument||_.merge([],a.childNodes)}},function(a,b){_.fn[a]=function(c,d){var e=_.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=_.filter(d,e)),this.length>1&&(ma[a]||_.unique(e),la.test(a)&&e.reverse()),this.pushStack(e)}});var na=/\S+/g,oa={};_.Callbacks=function(a){a="string"==typeof a?oa[a]||f(a):_.extend({},a);var b,c,d,e,g,h,i=[],j=!a.once&&[],k=function(f){for(b=a.memory&&f,c=!0,h=e||0,e=0,g=i.length,d=!0;i&&g>h;h++)if(i[h].apply(f[0],f[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,i&&(j?j.length&&k(j.shift()):b?i=[]:l.disable())},l={add:function(){if(i){var c=i.length;!function f(b){_.each(b,function(b,c){var d=_.type(c);"function"===d?a.unique&&l.has(c)||i.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),d?g=i.length:b&&(e=c,k(b))}return this},remove:function(){return i&&_.each(arguments,function(a,b){for(var c;(c=_.inArray(b,i,c))>-1;)i.splice(c,1),d&&(g>=c&&g--,h>=c&&h--)}),this},has:function(a){return a?_.inArray(a,i)>-1:!(!i||!i.length)},empty:function(){return i=[],g=0,this},disable:function(){return i=j=b=void 0,this},disabled:function(){return!i},lock:function(){return j=void 0,b||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return!i||c&&!j||(b=b||[],b=[a,b.slice?b.slice():b],d?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!c}};return l},_.extend({Deferred:function(a){var b=[["resolve","done",_.Callbacks("once memory"),"resolved"],["reject","fail",_.Callbacks("once memory"),"rejected"],["notify","progress",_.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return _.Deferred(function(c){_.each(b,function(b,f){var g=_.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&_.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?_.extend(a,d):d}},e={};return d.pipe=d.then,_.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b,c,d,e=0,f=R.call(arguments),g=f.length,h=1!==g||a&&_.isFunction(a.promise)?g:0,i=1===h?a:_.Deferred(),j=function(a,c,d){return function(e){c[a]=this,d[a]=arguments.length>1?R.call(arguments):e,d===b?i.notifyWith(c,d):--h||i.resolveWith(c,d)}};if(g>1)for(b=new Array(g),c=new Array(g),d=new Array(g);g>e;e++)f[e]&&_.isFunction(f[e].promise)?f[e].promise().done(j(e,d,f)).fail(i.reject).progress(j(e,c,b)):--h;return h||i.resolveWith(d,f),i.promise()}});var pa;_.fn.ready=function(a){return _.ready.promise().done(a),this},_.extend({isReady:!1,readyWait:1,holdReady:function(a){a?_.readyWait++:_.ready(!0)},ready:function(a){(a===!0?--_.readyWait:_.isReady)||(_.isReady=!0,a!==!0&&--_.readyWait>0||(pa.resolveWith(Z,[_]),_.fn.triggerHandler&&(_(Z).triggerHandler("ready"),_(Z).off("ready"))))}}),_.ready.promise=function(b){return pa||(pa=_.Deferred(),"complete"===Z.readyState?setTimeout(_.ready):(Z.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1))),pa.promise(b)},_.ready.promise();var qa=_.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===_.type(c)){e=!0;for(h in c)_.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,_.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(_(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};_.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType},h.uid=1,h.accepts=_.acceptData,h.prototype={key:function(a){if(!h.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=h.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,_.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(_.isEmptyObject(f))_.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,_.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{_.isArray(b)?d=b.concat(b.map(_.camelCase)):(e=_.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(na)||[])),c=d.length;for(;c--;)delete g[d[c]]}},hasData:function(a){return!_.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var ra=new h,sa=new h,ta=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ua=/([A-Z])/g;_.extend({hasData:function(a){return sa.hasData(a)||ra.hasData(a)},data:function(a,b,c){return sa.access(a,b,c)},removeData:function(a,b){sa.remove(a,b)},_data:function(a,b,c){return ra.access(a,b,c)},_removeData:function(a,b){ra.remove(a,b)}}),_.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=sa.get(f),1===f.nodeType&&!ra.get(f,"hasDataAttrs"))){for(c=g.length;c--;)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=_.camelCase(d.slice(5)),i(f,d,e[d])));ra.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){sa.set(this,a)}):qa(this,function(b){var c,d=_.camelCase(a);if(f&&void 0===b){if(c=sa.get(f,a),void 0!==c)return c;if(c=sa.get(f,d),void 0!==c)return c;if(c=i(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=sa.get(this,d);sa.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&sa.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){sa.remove(this,a)})}}),_.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=ra.get(a,b),c&&(!d||_.isArray(c)?d=ra.access(a,b,_.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=_.queue(a,b),d=c.length,e=c.shift(),f=_._queueHooks(a,b),g=function(){_.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return ra.get(a,c)||ra.access(a,c,{empty:_.Callbacks("once memory").add(function(){ra.remove(a,[b+"queue",c])})})}}),_.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?_.queue(this[0],a):void 0===b?this:this.each(function(){var c=_.queue(this,a,b);_._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&_.dequeue(this,a)})},dequeue:function(a){return this.each(function(){_.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=_.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};for("string"!=typeof a&&(b=a,a=void 0),a=a||"fx";g--;)c=ra.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var va=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,wa=["Top","Right","Bottom","Left"],xa=function(a,b){return a=b||a,"none"===_.css(a,"display")||!_.contains(a.ownerDocument,a)},ya=/^(?:checkbox|radio)$/i;!function(){var a=Z.createDocumentFragment(),b=a.appendChild(Z.createElement("div")),c=Z.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),Y.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",Y.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var za="undefined";Y.focusinBubbles="onfocusin"in a;var Aa=/^key/,Ba=/^(?:mouse|pointer|contextmenu)|click/,Ca=/^(?:focusinfocus|focusoutblur)$/,Da=/^([^.]*)(?:\.(.+)|)$/;_.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=ra.get(a);if(q)for(c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=_.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return typeof _!==za&&_.event.triggered!==b.type?_.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(na)||[""],j=b.length;j--;)h=Da.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=_.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=_.event.special[n]||{},k=_.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&_.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),_.event.global[n]=!0)},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=ra.hasData(a)&&ra.get(a);if(q&&(i=q.events)){for(b=(b||"").match(na)||[""],j=b.length;j--;)if(h=Da.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=_.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||_.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)_.event.remove(a,n+b[j],c,d,!0);_.isEmptyObject(i)&&(delete q.handle,ra.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,j,k,l,m=[d||Z],n=X.call(b,"type")?b.type:b,o=X.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||Z,3!==d.nodeType&&8!==d.nodeType&&!Ca.test(n+_.event.triggered)&&(n.indexOf(".")>=0&&(o=n.split("."),n=o.shift(),o.sort()),j=n.indexOf(":")<0&&"on"+n,b=b[_.expando]?b:new _.Event(n,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=o.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:_.makeArray(c,[b]),l=_.event.special[n]||{},e||!l.trigger||l.trigger.apply(d,c)!==!1)){if(!e&&!l.noBubble&&!_.isWindow(d)){for(i=l.delegateType||n,Ca.test(i+n)||(g=g.parentNode);g;g=g.parentNode)m.push(g),h=g;h===(d.ownerDocument||Z)&&m.push(h.defaultView||h.parentWindow||a)}for(f=0;(g=m[f++])&&!b.isPropagationStopped();)b.type=f>1?i:l.bindType||n,k=(ra.get(g,"events")||{})[b.type]&&ra.get(g,"handle"),k&&k.apply(g,c),k=j&&g[j],k&&k.apply&&_.acceptData(g)&&(b.result=k.apply(g,c),b.result===!1&&b.preventDefault());return b.type=n,e||b.isDefaultPrevented()||l._default&&l._default.apply(m.pop(),c)!==!1||!_.acceptData(d)||j&&_.isFunction(d[n])&&!_.isWindow(d)&&(h=d[j],h&&(d[j]=null),_.event.triggered=n,d[n](),_.event.triggered=void 0,h&&(d[j]=h)),b.result}},dispatch:function(a){a=_.event.fix(a);var b,c,d,e,f,g=[],h=R.call(arguments),i=(ra.get(this,"events")||{})[a.type]||[],j=_.event.special[a.type]||{};if(h[0]=a,a.delegateTarget=this,!j.preDispatch||j.preDispatch.call(this,a)!==!1){for(g=_.event.handlers.call(this,a,i),b=0;(e=g[b++])&&!a.isPropagationStopped();)for(a.currentTarget=e.elem,c=0;(f=e.handlers[c++])&&!a.isImmediatePropagationStopped();)(!a.namespace_re||a.namespace_re.test(f.namespace))&&(a.handleObj=f,a.data=f.data,d=((_.event.special[f.origType]||{}).handle||f.handler).apply(e.elem,h),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()));return j.postDispatch&&j.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?_(e,this).index(i)>=0:_.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||Z,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[_.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];for(g||(this.fixHooks[e]=g=Ba.test(e)?this.mouseHooks:Aa.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new _.Event(f),b=d.length;b--;)c=d[b],a[c]=f[c];return a.target||(a.target=Z),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==l()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===l()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&_.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return _.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=_.extend(new _.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?_.event.trigger(e,null,b):_.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},_.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},_.Event=function(a,b){return this instanceof _.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?j:k):this.type=a,b&&_.extend(this,b),this.timeStamp=a&&a.timeStamp||_.now(),void(this[_.expando]=!0)):new _.Event(a,b)},_.Event.prototype={isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=j,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=j,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=j,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},_.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){_.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!_.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),Y.focusinBubbles||_.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){_.event.simulate(b,a.target,_.event.fix(a),!0)};_.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=ra.access(d,b);e||d.addEventListener(a,c,!0),ra.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=ra.access(d,b)-1;e?ra.access(d,b,e):(d.removeEventListener(a,c,!0),ra.remove(d,b))}}}),_.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=k;else if(!d)return this;return 1===e&&(f=d,d=function(a){return _().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=_.guid++)),this.each(function(){_.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,_(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=k),this.each(function(){_.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){_.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?_.event.trigger(a,b,c,!0):void 0}});var Ea=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Fa=/<([\w:]+)/,Ga=/<|&#?\w+;/,Ha=/<(?:script|style|link)/i,Ia=/checked\s*(?:[^=]|=\s*.checked.)/i,Ja=/^$|\/(?:java|ecma)script/i,Ka=/^true\/(.*)/,La=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ma.optgroup=Ma.option,Ma.tbody=Ma.tfoot=Ma.colgroup=Ma.caption=Ma.thead,Ma.th=Ma.td,_.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=_.contains(a.ownerDocument,a);if(!(Y.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||_.isXMLDoc(a)))for(g=r(h),f=r(a),d=0,e=f.length;e>d;d++)s(f[d],g[d]);if(b)if(c)for(f=f||r(a),g=g||r(h),d=0,e=f.length;e>d;d++)q(f[d],g[d]);else q(a,h);return g=r(h,"script"),g.length>0&&p(g,!i&&r(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,n=a.length;n>m;m++)if(e=a[m],e||0===e)if("object"===_.type(e))_.merge(l,e.nodeType?[e]:e);else if(Ga.test(e)){for(f=f||k.appendChild(b.createElement("div")),g=(Fa.exec(e)||["",""])[1].toLowerCase(),h=Ma[g]||Ma._default,f.innerHTML=h[1]+e.replace(Ea,"<$1></$2>")+h[2],j=h[0];j--;)f=f.lastChild;_.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));for(k.textContent="",m=0;e=l[m++];)if((!d||-1===_.inArray(e,d))&&(i=_.contains(e.ownerDocument,e),f=r(k.appendChild(e),"script"),i&&p(f),c))for(j=0;e=f[j++];)Ja.test(e.type||"")&&c.push(e);return k},cleanData:function(a){for(var b,c,d,e,f=_.event.special,g=0;void 0!==(c=a[g]);g++){if(_.acceptData(c)&&(e=c[ra.expando],e&&(b=ra.cache[e]))){if(b.events)for(d in b.events)f[d]?_.event.remove(c,d):_.removeEvent(c,d,b.handle);ra.cache[e]&&delete ra.cache[e]}delete sa.cache[c[sa.expando]]}}}),_.fn.extend({text:function(a){return qa(this,function(a){return void 0===a?_.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?_.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||_.cleanData(r(c)),c.parentNode&&(b&&_.contains(c.ownerDocument,c)&&p(r(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(_.cleanData(r(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return _.clone(this,a,b)})},html:function(a){return qa(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Ha.test(a)&&!Ma[(Fa.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ea,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(_.cleanData(r(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,_.cleanData(r(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=S.apply([],a);var c,d,e,f,g,h,i=0,j=this.length,k=this,l=j-1,m=a[0],p=_.isFunction(m);if(p||j>1&&"string"==typeof m&&!Y.checkClone&&Ia.test(m))return this.each(function(c){var d=k.eq(c);p&&(a[0]=m.call(this,c,d.html())),d.domManip(a,b)});if(j&&(c=_.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(e=_.map(r(c,"script"),n),f=e.length;j>i;i++)g=c,i!==l&&(g=_.clone(g,!0,!0),f&&_.merge(e,r(g,"script"))),b.call(this[i],g,i);if(f)for(h=e[e.length-1].ownerDocument,_.map(e,o),i=0;f>i;i++)g=e[i],Ja.test(g.type||"")&&!ra.access(g,"globalEval")&&_.contains(h,g)&&(g.src?_._evalUrl&&_._evalUrl(g.src):_.globalEval(g.textContent.replace(La,"")))}return this}}),_.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){_.fn[a]=function(a){for(var c,d=[],e=_(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),_(e[g])[b](c),T.apply(d,c.get());return this.pushStack(d)}});var Na,Oa={},Pa=/^margin/,Qa=new RegExp("^("+va+")(?!px)[a-z%]+$","i"),Ra=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};!function(){function b(){g.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",g.innerHTML="",e.appendChild(f);var b=a.getComputedStyle(g,null);c="1%"!==b.top,d="4px"===b.width,e.removeChild(f)}var c,d,e=Z.documentElement,f=Z.createElement("div"),g=Z.createElement("div");g.style&&(g.style.backgroundClip="content-box",g.cloneNode(!0).style.backgroundClip="",Y.clearCloneStyle="content-box"===g.style.backgroundClip,f.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",f.appendChild(g),a.getComputedStyle&&_.extend(Y,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return null==d&&b(),d},reliableMarginRight:function(){var b,c=g.appendChild(Z.createElement("div"));return c.style.cssText=g.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",g.style.width="1px",e.appendChild(f),b=!parseFloat(a.getComputedStyle(c,null).marginRight),e.removeChild(f),g.removeChild(c),b}}))}(),_.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Sa=/^(none|table(?!-c[ea]).+)/,Ta=new RegExp("^("+va+")(.*)$","i"),Ua=new RegExp("^([+-])=("+va+")","i"),Va={position:"absolute",visibility:"hidden",display:"block"},Wa={letterSpacing:"0",fontWeight:"400"},Xa=["Webkit","O","Moz","ms"];_.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=v(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=_.camelCase(b),i=a.style;return b=_.cssProps[h]||(_.cssProps[h]=x(i,h)),g=_.cssHooks[b]||_.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ua.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(_.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||_.cssNumber[h]||(c+="px"),Y.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=_.camelCase(b);return b=_.cssProps[h]||(_.cssProps[h]=x(a.style,h)),g=_.cssHooks[b]||_.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=v(a,b,d)),"normal"===e&&b in Wa&&(e=Wa[b]),""===c||c?(f=parseFloat(e),c===!0||_.isNumeric(f)?f||0:e):e}}),_.each(["height","width"],function(a,b){_.cssHooks[b]={get:function(a,c,d){return c?Sa.test(_.css(a,"display"))&&0===a.offsetWidth?_.swap(a,Va,function(){return A(a,b,d)}):A(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return y(a,c,d?z(a,b,d,"border-box"===_.css(a,"boxSizing",!1,e),e):0)}}}),_.cssHooks.marginRight=w(Y.reliableMarginRight,function(a,b){return b?_.swap(a,{display:"inline-block"},v,[a,"marginRight"]):void 0}),_.each({margin:"",padding:"",border:"Width"},function(a,b){_.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+wa[d]+b]=f[d]||f[d-2]||f[0];return e}},Pa.test(a)||(_.cssHooks[a+b].set=y)}),_.fn.extend({css:function(a,b){return qa(this,function(a,b,c){var d,e,f={},g=0;if(_.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=_.css(a,b[g],!1,d);return f}return void 0!==c?_.style(a,b,c):_.css(a,b)},a,b,arguments.length>1)},show:function(){return B(this,!0)},hide:function(){return B(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){xa(this)?_(this).show():_(this).hide()})}}),_.Tween=C,C.prototype={constructor:C,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(_.cssNumber[c]?"":"px")},cur:function(){var a=C.propHooks[this.prop];return a&&a.get?a.get(this):C.propHooks._default.get(this)},run:function(a){var b,c=C.propHooks[this.prop];return this.options.duration?this.pos=b=_.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):C.propHooks._default.set(this),this}},C.prototype.init.prototype=C.prototype,C.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=_.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){_.fx.step[a.prop]?_.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[_.cssProps[a.prop]]||_.cssHooks[a.prop])?_.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},C.propHooks.scrollTop=C.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},_.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},_.fx=C.prototype.init,_.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=new RegExp("^(?:([+-])=|)("+va+")([a-z%]*)$","i"),ab=/queueHooks$/,bb=[G],cb={
-"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=_a.exec(b),f=e&&e[3]||(_.cssNumber[a]?"":"px"),g=(_.cssNumber[a]||"px"!==f&&+d)&&_a.exec(_.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,_.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};_.Animation=_.extend(I,{tweener:function(a,b){_.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],cb[c]=cb[c]||[],cb[c].unshift(b)},prefilter:function(a,b){b?bb.unshift(a):bb.push(a)}}),_.speed=function(a,b,c){var d=a&&"object"==typeof a?_.extend({},a):{complete:c||!c&&b||_.isFunction(a)&&a,duration:a,easing:c&&b||b&&!_.isFunction(b)&&b};return d.duration=_.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in _.fx.speeds?_.fx.speeds[d.duration]:_.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){_.isFunction(d.old)&&d.old.call(this),d.queue&&_.dequeue(this,d.queue)},d},_.fn.extend({fadeTo:function(a,b,c,d){return this.filter(xa).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=_.isEmptyObject(a),f=_.speed(b,c,d),g=function(){var b=I(this,_.extend({},a),f);(e||ra.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=_.timers,g=ra.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ab.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&_.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=ra.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=_.timers,g=d?d.length:0;for(c.finish=!0,_.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),_.each(["toggle","show","hide"],function(a,b){var c=_.fn[b];_.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(E(b,!0),a,d,e)}}),_.each({slideDown:E("show"),slideUp:E("hide"),slideToggle:E("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){_.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),_.timers=[],_.fx.tick=function(){var a,b=0,c=_.timers;for(Ya=_.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||_.fx.stop(),Ya=void 0},_.fx.timer=function(a){_.timers.push(a),a()?_.fx.start():_.timers.pop()},_.fx.interval=13,_.fx.start=function(){Za||(Za=setInterval(_.fx.tick,_.fx.interval))},_.fx.stop=function(){clearInterval(Za),Za=null},_.fx.speeds={slow:600,fast:200,_default:400},_.fn.delay=function(a,b){return a=_.fx?_.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=Z.createElement("input"),b=Z.createElement("select"),c=b.appendChild(Z.createElement("option"));a.type="checkbox",Y.checkOn=""!==a.value,Y.optSelected=c.selected,b.disabled=!0,Y.optDisabled=!c.disabled,a=Z.createElement("input"),a.value="t",a.type="radio",Y.radioValue="t"===a.value}();var db,eb,fb=_.expr.attrHandle;_.fn.extend({attr:function(a,b){return qa(this,_.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){_.removeAttr(this,a)})}}),_.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===za?_.prop(a,b,c):(1===f&&_.isXMLDoc(a)||(b=b.toLowerCase(),d=_.attrHooks[b]||(_.expr.match.bool.test(b)?eb:db)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=_.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void _.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(na);if(f&&1===a.nodeType)for(;c=f[e++];)d=_.propFix[c]||c,_.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!Y.radioValue&&"radio"===b&&_.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),eb={set:function(a,b,c){return b===!1?_.removeAttr(a,c):a.setAttribute(c,c),c}},_.each(_.expr.match.bool.source.match(/\w+/g),function(a,b){var c=fb[b]||_.find.attr;fb[b]=function(a,b,d){var e,f;return d||(f=fb[b],fb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,fb[b]=f),e}});var gb=/^(?:input|select|textarea|button)$/i;_.fn.extend({prop:function(a,b){return qa(this,_.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[_.propFix[a]||a]})}}),_.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!_.isXMLDoc(a),f&&(b=_.propFix[b]||b,e=_.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||gb.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),Y.optSelected||(_.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),_.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){_.propFix[this.toLowerCase()]=this});var hb=/[\t\r\n\f]/g;_.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(na)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(hb," "):" ")){for(f=0;e=b[f++];)d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=_.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(na)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(hb," "):"")){for(f=0;e=b[f++];)for(;d.indexOf(" "+e+" ")>=0;)d=d.replace(" "+e+" "," ");g=a?_.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):_.isFunction(a)?this.each(function(c){_(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if("string"===c)for(var b,d=0,e=_(this),f=a.match(na)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else(c===za||"boolean"===c)&&(this.className&&ra.set(this,"__className__",this.className),this.className=this.className||a===!1?"":ra.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(hb," ").indexOf(b)>=0)return!0;return!1}});var ib=/\r/g;_.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=_.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,_(this).val()):a,null==e?e="":"number"==typeof e?e+="":_.isArray(e)&&(e=_.map(e,function(a){return null==a?"":a+""})),b=_.valHooks[this.type]||_.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=_.valHooks[e.type]||_.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ib,""):null==c?"":c)}}}),_.extend({valHooks:{option:{get:function(a){var b=_.find.attr(a,"value");return null!=b?b:_.trim(_.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(Y.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!_.nodeName(c.parentNode,"optgroup"))){if(b=_(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=_.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=_.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),_.each(["radio","checkbox"],function(){_.valHooks[this]={set:function(a,b){return _.isArray(b)?a.checked=_.inArray(_(a).val(),b)>=0:void 0}},Y.checkOn||(_.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),_.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){_.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),_.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var jb=_.now(),kb=/\?/;_.parseJSON=function(a){return JSON.parse(a+"")},_.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&_.error("Invalid XML: "+a),b};var lb=/#.*$/,mb=/([?&])_=[^&]*/,nb=/^(.*?):[ \t]*([^\r\n]*)$/gm,ob=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,pb=/^(?:GET|HEAD)$/,qb=/^\/\//,rb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,sb={},tb={},ub="*/".concat("*"),vb=a.location.href,wb=rb.exec(vb.toLowerCase())||[];_.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:vb,type:"GET",isLocal:ob.test(wb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":ub,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":_.parseJSON,"text xml":_.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?L(L(a,_.ajaxSettings),b):L(_.ajaxSettings,a)},ajaxPrefilter:J(sb),ajaxTransport:J(tb),ajax:function(a,b){function c(a,b,c,g){var i,k,r,s,u,w=b;2!==t&&(t=2,h&&clearTimeout(h),d=void 0,f=g||"",v.readyState=a>0?4:0,i=a>=200&&300>a||304===a,c&&(s=M(l,v,c)),s=N(l,s,v,i),i?(l.ifModified&&(u=v.getResponseHeader("Last-Modified"),u&&(_.lastModified[e]=u),u=v.getResponseHeader("etag"),u&&(_.etag[e]=u)),204===a||"HEAD"===l.type?w="nocontent":304===a?w="notmodified":(w=s.state,k=s.data,r=s.error,i=!r)):(r=w,(a||!w)&&(w="error",0>a&&(a=0))),v.status=a,v.statusText=(b||w)+"",i?o.resolveWith(m,[k,w,v]):o.rejectWith(m,[v,w,r]),v.statusCode(q),q=void 0,j&&n.trigger(i?"ajaxSuccess":"ajaxError",[v,l,i?k:r]),p.fireWith(m,[v,w]),j&&(n.trigger("ajaxComplete",[v,l]),--_.active||_.event.trigger("ajaxStop")))}"object"==typeof a&&(b=a,a=void 0),b=b||{};var d,e,f,g,h,i,j,k,l=_.ajaxSetup({},b),m=l.context||l,n=l.context&&(m.nodeType||m.jquery)?_(m):_.event,o=_.Deferred(),p=_.Callbacks("once memory"),q=l.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!g)for(g={};b=nb.exec(f);)g[b[1].toLowerCase()]=b[2];b=g[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return d&&d.abort(b),c(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,l.url=((a||l.url||vb)+"").replace(lb,"").replace(qb,wb[1]+"//"),l.type=b.method||b.type||l.method||l.type,l.dataTypes=_.trim(l.dataType||"*").toLowerCase().match(na)||[""],null==l.crossDomain&&(i=rb.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]===wb[1]&&i[2]===wb[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(wb[3]||("http:"===wb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=_.param(l.data,l.traditional)),K(sb,l,b,v),2===t)return v;j=_.event&&l.global,j&&0===_.active++&&_.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!pb.test(l.type),e=l.url,l.hasContent||(l.data&&(e=l.url+=(kb.test(e)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=mb.test(e)?e.replace(mb,"$1_="+jb++):e+(kb.test(e)?"&":"?")+"_="+jb++)),l.ifModified&&(_.lastModified[e]&&v.setRequestHeader("If-Modified-Since",_.lastModified[e]),_.etag[e]&&v.setRequestHeader("If-None-Match",_.etag[e])),(l.data&&l.hasContent&&l.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",l.contentType),v.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+ub+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)v.setRequestHeader(k,l.headers[k]);if(l.beforeSend&&(l.beforeSend.call(m,v,l)===!1||2===t))return v.abort();u="abort";for(k in{success:1,error:1,complete:1})v[k](l[k]);if(d=K(tb,l,b,v)){v.readyState=1,j&&n.trigger("ajaxSend",[v,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){v.abort("timeout")},l.timeout));try{t=1,d.send(r,c)}catch(w){if(!(2>t))throw w;c(-1,w)}}else c(-1,"No Transport");return v},getJSON:function(a,b,c){return _.get(a,b,c,"json")},getScript:function(a,b){return _.get(a,void 0,b,"script")}}),_.each(["get","post"],function(a,b){_[b]=function(a,c,d,e){return _.isFunction(c)&&(e=e||d,d=c,c=void 0),_.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),_._evalUrl=function(a){return _.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},_.fn.extend({wrapAll:function(a){var b;return _.isFunction(a)?this.each(function(b){_(this).wrapAll(a.call(this,b))}):(this[0]&&(b=_(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return _.isFunction(a)?this.each(function(b){_(this).wrapInner(a.call(this,b))}):this.each(function(){var b=_(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=_.isFunction(a);return this.each(function(c){_(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){_.nodeName(this,"body")||_(this).replaceWith(this.childNodes)}).end()}}),_.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},_.expr.filters.visible=function(a){return!_.expr.filters.hidden(a)};var xb=/%20/g,yb=/\[\]$/,zb=/\r?\n/g,Ab=/^(?:submit|button|image|reset|file)$/i,Bb=/^(?:input|select|textarea|keygen)/i;_.param=function(a,b){var c,d=[],e=function(a,b){b=_.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=_.ajaxSettings&&_.ajaxSettings.traditional),_.isArray(a)||a.jquery&&!_.isPlainObject(a))_.each(a,function(){e(this.name,this.value)});else for(c in a)O(c,a[c],b,e);return d.join("&").replace(xb,"+")},_.fn.extend({serialize:function(){return _.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=_.prop(this,"elements");return a?_.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!_(this).is(":disabled")&&Bb.test(this.nodeName)&&!Ab.test(a)&&(this.checked||!ya.test(a))}).map(function(a,b){var c=_(this).val();return null==c?null:_.isArray(c)?_.map(c,function(a){return{name:b.name,value:a.replace(zb,"\r\n")}}):{name:b.name,value:c.replace(zb,"\r\n")}}).get()}}),_.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cb=0,Db={},Eb={0:200,1223:204},Fb=_.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Db)Db[a]()}),Y.cors=!!Fb&&"withCredentials"in Fb,Y.ajax=Fb=!!Fb,_.ajaxTransport(function(a){var b;return Y.cors||Fb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Db[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Eb[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Db[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),_.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return _.globalEval(a),a}}}),_.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),_.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=_("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),Z.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gb=[],Hb=/(=)\?(?=&|$)|\?\?/;_.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Gb.pop()||_.expando+"_"+jb++;return this[a]=!0,a}}),_.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Hb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=_.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hb,"$1"+e):b.jsonp!==!1&&(b.url+=(kb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||_.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gb.push(e)),g&&_.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),_.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||Z;var d=ga.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=_.buildFragment([a],b,e),e&&e.length&&_(e).remove(),_.merge([],d.childNodes))};var Ib=_.fn.load;_.fn.load=function(a,b,c){if("string"!=typeof a&&Ib)return Ib.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=_.trim(a.slice(h)),a=a.slice(0,h)),_.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&_.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?_("<div>").append(_.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},_.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){_.fn[b]=function(a){return this.on(b,a)}}),_.expr.filters.animated=function(a){return _.grep(_.timers,function(b){return a===b.elem}).length};var Jb=a.document.documentElement;_.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=_.css(a,"position"),l=_(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=_.css(a,"top"),i=_.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),_.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},_.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){_.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,_.contains(b,d)?(typeof d.getBoundingClientRect!==za&&(e=d.getBoundingClientRect()),c=P(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===_.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),_.nodeName(a[0],"html")||(d=a.offset()),d.top+=_.css(a[0],"borderTopWidth",!0),d.left+=_.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-_.css(c,"marginTop",!0),left:b.left-d.left-_.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||Jb;a&&!_.nodeName(a,"html")&&"static"===_.css(a,"position");)a=a.offsetParent;return a||Jb})}}),_.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;_.fn[b]=function(e){return qa(this,function(b,e,f){var g=P(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),_.each(["top","left"],function(a,b){_.cssHooks[b]=w(Y.pixelPosition,function(a,c){return c?(c=v(a,b),Qa.test(c)?_(a).position()[b]+"px":c):void 0})}),_.each({Height:"height",Width:"width"},function(a,b){_.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){_.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return qa(this,function(b,c,d){var e;return _.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?_.css(b,c,g):_.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),_.fn.size=function(){return this.length},_.fn.andSelf=_.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return _});var Kb=a.jQuery,Lb=a.$;return _.noConflict=function(b){return a.$===_&&(a.$=Lb),b&&a.jQuery===_&&(a.jQuery=Kb),_},typeof b===za&&(a.jQuery=a.$=_),_}),function(a,b,c){"use strict";function d(a,b){return b=b||Error,function(){var c,d,e=2,f=arguments,g=f[0],h="["+(a?a+":":"")+g+"] ",i=f[1];for(h+=i.replace(/\{\d+\}/g,function(a){var b=+a.slice(1,-1),c=b+e;return c<f.length?ta(f[c]):a}),h+="\nhttp://errors.angularjs.org/1.4.8/"+(a?a+"/":"")+g,d=e,c="?";d<f.length;d++,c="&")h+=c+"p"+(d-e)+"="+encodeURIComponent(ta(f[d]));return new b(h)}}function e(a){if(null==a||C(a))return!1;if(Od(a)||x(a)||Cd&&a instanceof Cd)return!0;var b="length"in Object(a)&&a.length;return y(b)&&(b>=0&&b-1 in a||"function"==typeof a.item)}function f(a,b,c){var d,g;if(a)if(A(a))for(d in a)"prototype"==d||"length"==d||"name"==d||a.hasOwnProperty&&!a.hasOwnProperty(d)||b.call(c,a[d],d,a);else if(Od(a)||e(a)){var h="object"!=typeof a;for(d=0,g=a.length;g>d;d++)(h||d in a)&&b.call(c,a[d],d,a)}else if(a.forEach&&a.forEach!==f)a.forEach(b,c,a);else if(w(a))for(d in a)b.call(c,a[d],d,a);else if("function"==typeof a.hasOwnProperty)for(d in a)a.hasOwnProperty(d)&&b.call(c,a[d],d,a);else for(d in a)xd.call(a,d)&&b.call(c,a[d],d,a);return a}function g(a,b,c){for(var d=Object.keys(a).sort(),e=0;e<d.length;e++)b.call(c,a[d[e]],d[e]);return d}function h(a){return function(b,c){a(c,b)}}function i(){return++Md}function j(a,b){b?a.$$hashKey=b:delete a.$$hashKey}function k(a,b,c){for(var d=a.$$hashKey,e=0,f=b.length;f>e;++e){var g=b[e];if(v(g)||A(g))for(var h=Object.keys(g),i=0,l=h.length;l>i;i++){var m=h[i],n=g[m];c&&v(n)?z(n)?a[m]=new Date(n.valueOf()):B(n)?a[m]=new RegExp(n):n.nodeName?a[m]=n.cloneNode(!0):K(n)?a[m]=n.clone():(v(a[m])||(a[m]=Od(n)?[]:{}),k(a[m],[n],!0)):a[m]=n}}return j(a,d),a}function l(a){return k(a,Fd.call(arguments,1),!1)}function m(a){return k(a,Fd.call(arguments,1),!0)}function n(a){return parseInt(a,10)}function o(a,b){return l(Object.create(a),b)}function p(){}function q(a){return a}function r(a){return function(){return a}}function s(a){return A(a.toString)&&a.toString!==Id}function t(a){return"undefined"==typeof a}function u(a){return"undefined"!=typeof a}function v(a){return null!==a&&"object"==typeof a}function w(a){return null!==a&&"object"==typeof a&&!Jd(a)}function x(a){return"string"==typeof a}function y(a){return"number"==typeof a}function z(a){return"[object Date]"===Id.call(a)}function A(a){return"function"==typeof a}function B(a){return"[object RegExp]"===Id.call(a)}function C(a){return a&&a.window===a}function D(a){return a&&a.$evalAsync&&a.$watch}function E(a){return"[object File]"===Id.call(a)}function F(a){return"[object FormData]"===Id.call(a)}function G(a){return"[object Blob]"===Id.call(a)}function H(a){return"boolean"==typeof a}function I(a){return a&&A(a.then)}function J(a){return a&&y(a.length)&&Pd.test(Id.call(a))}function K(a){return!(!a||!(a.nodeName||a.prop&&a.attr&&a.find))}function L(a){var b,c={},d=a.split(",");for(b=0;b<d.length;b++)c[d[b]]=!0;return c}function M(a){return wd(a.nodeName||a[0]&&a[0].nodeName)}function N(a,b){var c=a.indexOf(b);return c>=0&&a.splice(c,1),c}function O(a,b){function c(a,b){var c,e=b.$$hashKey;if(Od(a))for(var f=0,g=a.length;g>f;f++)b.push(d(a[f]));else if(w(a))for(c in a)b[c]=d(a[c]);else if(a&&"function"==typeof a.hasOwnProperty)for(c in a)a.hasOwnProperty(c)&&(b[c]=d(a[c]));else for(c in a)xd.call(a,c)&&(b[c]=d(a[c]));return j(b,e),b}function d(a){if(!v(a))return a;var b=e.indexOf(a);if(-1!==b)return g[b];if(C(a)||D(a))throw Kd("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var d,f=!1;return Od(a)?(d=[],f=!0):J(a)?d=new a.constructor(a):z(a)?d=new Date(a.getTime()):B(a)?(d=new RegExp(a.source,a.toString().match(/[^\/]*$/)[0]),d.lastIndex=a.lastIndex):A(a.cloneNode)?d=a.cloneNode(!0):(d=Object.create(Jd(a)),f=!0),e.push(a),g.push(d),f?c(a,d):d}var e=[],g=[];if(b){if(J(b))throw Kd("cpta","Can't copy! TypedArray destination cannot be mutated.");if(a===b)throw Kd("cpi","Can't copy! Source and destination are identical.");return Od(b)?b.length=0:f(b,function(a,c){"$$hashKey"!==c&&delete b[c]}),e.push(a),g.push(b),c(a,b)}return d(a)}function P(a,b){if(Od(a)){b=b||[];for(var c=0,d=a.length;d>c;c++)b[c]=a[c]}else if(v(a)){b=b||{};for(var e in a)("$"!==e.charAt(0)||"$"!==e.charAt(1))&&(b[e]=a[e])}return b||a}function Q(a,b){if(a===b)return!0;if(null===a||null===b)return!1;if(a!==a&&b!==b)return!0;var c,d,e,f=typeof a,g=typeof b;if(f==g&&"object"==f){if(!Od(a)){if(z(a))return z(b)?Q(a.getTime(),b.getTime()):!1;if(B(a))return B(b)?a.toString()==b.toString():!1;if(D(a)||D(b)||C(a)||C(b)||Od(b)||z(b)||B(b))return!1;e=qa();for(d in a)if("$"!==d.charAt(0)&&!A(a[d])){if(!Q(a[d],b[d]))return!1;e[d]=!0}for(d in b)if(!(d in e)&&"$"!==d.charAt(0)&&u(b[d])&&!A(b[d]))return!1;return!0}if(!Od(b))return!1;if((c=a.length)==b.length){for(d=0;c>d;d++)if(!Q(a[d],b[d]))return!1;return!0}}return!1}function R(a,b,c){return a.concat(Fd.call(b,c))}function S(a,b){return Fd.call(a,b||0)}function T(a,b){var c=arguments.length>2?S(arguments,2):[];return!A(b)||b instanceof RegExp?b:c.length?function(){return arguments.length?b.apply(a,R(c,arguments,0)):b.apply(a,c)}:function(){return arguments.length?b.apply(a,arguments):b.call(a)}}function U(a,d){var e=d;return"string"==typeof a&&"$"===a.charAt(0)&&"$"===a.charAt(1)?e=c:C(d)?e="$WINDOW":d&&b===d?e="$DOCUMENT":D(d)&&(e="$SCOPE"),e}function V(a,b){return"undefined"==typeof a?c:(y(b)||(b=b?2:null),JSON.stringify(a,U,b))}function W(a){return x(a)?JSON.parse(a):a}function X(a,b){var c=Date.parse("Jan 01, 1970 00:00:00 "+a)/6e4;return isNaN(c)?b:c}function Y(a,b){return a=new Date(a.getTime()),a.setMinutes(a.getMinutes()+b),a}function Z(a,b,c){c=c?-1:1;var d=X(b,a.getTimezoneOffset());return Y(a,c*(d-a.getTimezoneOffset()))}function $(a){a=Cd(a).clone();try{a.empty()}catch(b){}var c=Cd("<div>").append(a).html();try{return a[0].nodeType===Zd?wd(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+wd(b)})}catch(b){return wd(c)}}function _(a){try{return decodeURIComponent(a)}catch(b){}}function aa(a){var b={};return f((a||"").split("&"),function(a){var c,d,e;a&&(d=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(d=a.substring(0,c),e=a.substring(c+1)),d=_(d),u(d)&&(e=u(e)?_(e):!0,xd.call(b,d)?Od(b[d])?b[d].push(e):b[d]=[b[d],e]:b[d]=e))}),b}function ba(a){var b=[];return f(a,function(a,c){Od(a)?f(a,function(a){b.push(da(c,!0)+(a===!0?"":"="+da(a,!0)))}):b.push(da(c,!0)+(a===!0?"":"="+da(a,!0)))}),b.length?b.join("&"):""}function ca(a){return da(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function da(a,b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function ea(a,b){var c,d,e=Ud.length;for(d=0;e>d;++d)if(c=Ud[d]+b,x(c=a.getAttribute(c)))return c;return null}function fa(a,b){var c,d,e={};f(Ud,function(b){var e=b+"app";!c&&a.hasAttribute&&a.hasAttribute(e)&&(c=a,d=a.getAttribute(e))}),f(Ud,function(b){var e,f=b+"app";!c&&(e=a.querySelector("["+f.replace(":","\\:")+"]"))&&(c=e,d=e.getAttribute(f))}),c&&(e.strictDi=null!==ea(c,"strict-di"),b(c,d?[d]:[],e))}function ga(c,d,e){v(e)||(e={});var g={strictDi:!1};e=l(g,e);var h=function(){if(c=Cd(c),c.injector()){var a=c[0]===b?"document":$(c);throw Kd("btstrpd","App Already Bootstrapped with this Element '{0}'",a.replace(/</,"&lt;").replace(/>/,"&gt;"))}d=d||[],d.unshift(["$provide",function(a){a.value("$rootElement",c)}]),e.debugInfoEnabled&&d.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]),d.unshift("ng");var f=ab(d,e.strictDi);return f.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d),c(b)(a)})}]),f},i=/^NG_ENABLE_DEBUG_INFO!/,j=/^NG_DEFER_BOOTSTRAP!/;return a&&i.test(a.name)&&(e.debugInfoEnabled=!0,a.name=a.name.replace(i,"")),a&&!j.test(a.name)?h():(a.name=a.name.replace(j,""),Ld.resumeBootstrap=function(a){return f(a,function(a){d.push(a)}),h()},void(A(Ld.resumeDeferredBootstrap)&&Ld.resumeDeferredBootstrap()))}function ha(){a.name="NG_ENABLE_DEBUG_INFO!"+a.name,a.location.reload()}function ia(a){var b=Ld.element(a).injector();if(!b)throw Kd("test","no injector found for element argument to getTestability");return b.get("$$testability")}function ja(a,b){return b=b||"_",a.replace(Vd,function(a,c){return(c?b:"")+a.toLowerCase()})}function ka(){var b;if(!Wd){var d=Td();Dd=t(d)?a.jQuery:d?a[d]:c,Dd&&Dd.fn.on?(Cd=Dd,l(Dd.fn,{scope:qe.scope,isolateScope:qe.isolateScope,controller:qe.controller,injector:qe.injector,inheritedData:qe.inheritedData}),b=Dd.cleanData,Dd.cleanData=function(a){var c;if(Nd)Nd=!1;else for(var d,e=0;null!=(d=a[e]);e++)c=Dd._data(d,"events"),c&&c.$destroy&&Dd(d).triggerHandler("$destroy");b(a)}):Cd=Ca,Ld.element=Cd,Wd=!0}}function la(a,b,c){if(!a)throw Kd("areq","Argument '{0}' is {1}",b||"?",c||"required");return a}function ma(a,b,c){return c&&Od(a)&&(a=a[a.length-1]),la(A(a),b,"not a function, got "+(a&&"object"==typeof a?a.constructor.name||"Object":typeof a)),a}function na(a,b){if("hasOwnProperty"===a)throw Kd("badname","hasOwnProperty is not a valid {0} name",b)}function oa(a,b,c){if(!b)return a;for(var d,e=b.split("."),f=a,g=e.length,h=0;g>h;h++)d=e[h],a&&(a=(f=a)[d]);return!c&&A(a)?T(f,a):a}function pa(a){for(var b,c=a[0],d=a[a.length-1],e=1;c!==d&&(c=c.nextSibling);e++)(b||a[e]!==c)&&(b||(b=Cd(Fd.call(a,0,e))),b.push(c));return b||a}function qa(){return Object.create(null)}function ra(a){function b(a,b,c){return a[b]||(a[b]=c())}var c=d("$injector"),e=d("ng"),f=b(a,"angular",Object);return f.$$minErr=f.$$minErr||d,b(f,"module",function(){var a={};return function(d,f,g){var h=function(a,b){if("hasOwnProperty"===a)throw e("badname","hasOwnProperty is not a valid {0} name",b)};return h(d,"module"),f&&a.hasOwnProperty(d)&&(a[d]=null),
-b(a,d,function(){function a(a,b,c,d){return d||(d=e),function(){return d[c||"push"]([a,b,arguments]),k}}function b(a,b){return function(c,f){return f&&A(f)&&(f.$$moduleName=d),e.push([a,b,arguments]),k}}if(!f)throw c("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",d);var e=[],h=[],i=[],j=a("$injector","invoke","push",h),k={_invokeQueue:e,_configBlocks:h,_runBlocks:i,requires:f,name:d,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),decorator:b("$provide","decorator"),animation:b("$animateProvider","register"),filter:b("$filterProvider","register"),controller:b("$controllerProvider","register"),directive:b("$compileProvider","directive"),config:j,run:function(a){return i.push(a),this}};return g&&j(g),k})}})}function sa(a){var b=[];return JSON.stringify(a,function(a,c){if(c=U(a,c),v(c)){if(b.indexOf(c)>=0)return"...";b.push(c)}return c})}function ta(a){return"function"==typeof a?a.toString().replace(/ \{[\s\S]*$/,""):t(a)?"undefined":"string"!=typeof a?sa(a):a}function ua(b){l(b,{bootstrap:ga,copy:O,extend:l,merge:m,equals:Q,element:Cd,forEach:f,injector:ab,noop:p,bind:T,toJson:V,fromJson:W,identity:q,isUndefined:t,isDefined:u,isString:x,isFunction:A,isObject:v,isNumber:y,isElement:K,isArray:Od,version:be,isDate:z,lowercase:wd,uppercase:yd,callbacks:{counter:0},getTestability:ia,$$minErr:d,$$csp:Sd,reloadWithDebugInfo:ha}),(Ed=ra(a))("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:sc}),a.provider("$compile",kb).directive({a:rf,input:If,textarea:If,form:wf,script:Ag,select:Dg,style:Fg,option:Eg,ngBind:Lf,ngBindHtml:Nf,ngBindTemplate:Mf,ngClass:Pf,ngClassEven:Rf,ngClassOdd:Qf,ngCloak:Sf,ngController:Tf,ngForm:xf,ngHide:ug,ngIf:Wf,ngInclude:Xf,ngInit:Zf,ngNonBindable:lg,ngPluralize:pg,ngRepeat:qg,ngShow:tg,ngStyle:vg,ngSwitch:wg,ngSwitchWhen:xg,ngSwitchDefault:yg,ngOptions:og,ngTransclude:zg,ngModel:ig,ngList:$f,ngChange:Of,pattern:Hg,ngPattern:Hg,required:Gg,ngRequired:Gg,minlength:Jg,ngMinlength:Jg,maxlength:Ig,ngMaxlength:Ig,ngValue:Kf,ngModelOptions:kg}).directive({ngInclude:Yf}).directive(sf).directive(Uf),a.provider({$anchorScroll:bb,$animate:Fe,$animateCss:Ge,$$animateQueue:Ee,$$AnimateRunner:De,$browser:hb,$cacheFactory:ib,$controller:pb,$document:qb,$exceptionHandler:rb,$filter:Gc,$$forceReflow:Le,$interpolate:Fb,$interval:Gb,$http:Bb,$httpParamSerializer:tb,$httpParamSerializerJQLike:ub,$httpBackend:Db,$xhrFactory:Cb,$location:Ub,$log:Vb,$parse:mc,$rootScope:rc,$q:nc,$$q:oc,$sce:wc,$sceDelegate:vc,$sniffer:xc,$templateCache:jb,$templateRequest:yc,$$testability:zc,$timeout:Ac,$window:Dc,$$rAF:qc,$$jqLite:Xa,$$HashMap:ue,$$cookieReader:Fc})}])}function va(){return++de}function wa(a){return a.replace(ge,function(a,b,c,d){return d?c.toUpperCase():c}).replace(he,"Moz$1")}function xa(a){return!le.test(a)}function ya(a){var b=a.nodeType;return b===Xd||!b||b===_d}function za(a){for(var b in ce[a.ng339])return!0;return!1}function Aa(a,b){var c,d,e,g,h=b.createDocumentFragment(),i=[];if(xa(a))i.push(b.createTextNode(a));else{for(c=c||h.appendChild(b.createElement("div")),d=(me.exec(a)||["",""])[1].toLowerCase(),e=oe[d]||oe._default,c.innerHTML=e[1]+a.replace(ne,"<$1></$2>")+e[2],g=e[0];g--;)c=c.lastChild;i=R(i,c.childNodes),c=h.firstChild,c.textContent=""}return h.textContent="",h.innerHTML="",f(i,function(a){h.appendChild(a)}),h}function Ba(a,c){c=c||b;var d;return(d=ke.exec(a))?[c.createElement(d[1])]:(d=Aa(a,c))?d.childNodes:[]}function Ca(a){if(a instanceof Ca)return a;var b;if(x(a)&&(a=Qd(a),b=!0),!(this instanceof Ca)){if(b&&"<"!=a.charAt(0))throw je("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new Ca(a)}b?Ma(this,Ba(a)):Ma(this,a)}function Da(a){return a.cloneNode(!0)}function Ea(a,b){if(b||Ga(a),a.querySelectorAll)for(var c=a.querySelectorAll("*"),d=0,e=c.length;e>d;d++)Ga(c[d])}function Fa(a,b,c,d){if(u(d))throw je("offargs","jqLite#off() does not support the `selector` argument");var e=Ha(a),g=e&&e.events,h=e&&e.handle;if(h)if(b){var i=function(b){var d=g[b];u(c)&&N(d||[],c),u(c)&&d&&d.length>0||(fe(a,b,h),delete g[b])};f(b.split(" "),function(a){i(a),ie[a]&&i(ie[a])})}else for(b in g)"$destroy"!==b&&fe(a,b,h),delete g[b]}function Ga(a,b){var d=a.ng339,e=d&&ce[d];if(e){if(b)return void delete e.data[b];e.handle&&(e.events.$destroy&&e.handle({},"$destroy"),Fa(a)),delete ce[d],a.ng339=c}}function Ha(a,b){var d=a.ng339,e=d&&ce[d];return b&&!e&&(a.ng339=d=va(),e=ce[d]={events:{},data:{},handle:c}),e}function Ia(a,b,c){if(ya(a)){var d=u(c),e=!d&&b&&!v(b),f=!b,g=Ha(a,!e),h=g&&g.data;if(d)h[b]=c;else{if(f)return h;if(e)return h&&h[b];l(h,b)}}}function Ja(a,b){return a.getAttribute?(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+b+" ")>-1:!1}function Ka(a,b){b&&a.setAttribute&&f(b.split(" "),function(b){a.setAttribute("class",Qd((" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+Qd(b)+" "," ")))})}function La(a,b){if(b&&a.setAttribute){var c=(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");f(b.split(" "),function(a){a=Qd(a),-1===c.indexOf(" "+a+" ")&&(c+=a+" ")}),a.setAttribute("class",Qd(c))}}function Ma(a,b){if(b)if(b.nodeType)a[a.length++]=b;else{var c=b.length;if("number"==typeof c&&b.window!==b){if(c)for(var d=0;c>d;d++)a[a.length++]=b[d]}else a[a.length++]=b}}function Na(a,b){return Oa(a,"$"+(b||"ngController")+"Controller")}function Oa(a,b,c){a.nodeType==_d&&(a=a.documentElement);for(var d=Od(b)?b:[b];a;){for(var e=0,f=d.length;f>e;e++)if(u(c=Cd.data(a,d[e])))return c;a=a.parentNode||a.nodeType===ae&&a.host}}function Pa(a){for(Ea(a,!0);a.firstChild;)a.removeChild(a.firstChild)}function Qa(a,b){b||Ea(a);var c=a.parentNode;c&&c.removeChild(a)}function Ra(b,c){c=c||a,"complete"===c.document.readyState?c.setTimeout(b):Cd(c).on("load",b)}function Sa(a,b){var c=re[b.toLowerCase()];return c&&se[M(a)]&&c}function Ta(a){return te[a]}function Ua(a,b){var c=function(c,d){c.isDefaultPrevented=function(){return c.defaultPrevented};var e=b[d||c.type],f=e?e.length:0;if(f){if(t(c.immediatePropagationStopped)){var g=c.stopImmediatePropagation;c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0,c.stopPropagation&&c.stopPropagation(),g&&g.call(c)}}c.isImmediatePropagationStopped=function(){return c.immediatePropagationStopped===!0};var h=e.specialHandlerWrapper||Va;f>1&&(e=P(e));for(var i=0;f>i;i++)c.isImmediatePropagationStopped()||h(a,c,e[i])}};return c.elem=a,c}function Va(a,b,c){c.call(a,b)}function Wa(a,b,c){var d=b.relatedTarget;(!d||d!==a&&!pe.call(a,d))&&c.call(a,b)}function Xa(){this.$get=function(){return l(Ca,{hasClass:function(a,b){return a.attr&&(a=a[0]),Ja(a,b)},addClass:function(a,b){return a.attr&&(a=a[0]),La(a,b)},removeClass:function(a,b){return a.attr&&(a=a[0]),Ka(a,b)}})}}function Ya(a,b){var c=a&&a.$$hashKey;if(c)return"function"==typeof c&&(c=a.$$hashKey()),c;var d=typeof a;return c="function"==d||"object"==d&&null!==a?a.$$hashKey=d+":"+(b||i)():d+":"+a}function Za(a,b){if(b){var c=0;this.nextUid=function(){return++c}}f(a,this.put,this)}function $a(a){var b=a.toString().replace(ye,""),c=b.match(ve);return c?"function("+(c[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function _a(a,b,c){var d,e,g,h;if("function"==typeof a){if(!(d=a.$inject)){if(d=[],a.length){if(b)throw x(c)&&c||(c=a.name||$a(a)),ze("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",c);e=a.toString().replace(ye,""),g=e.match(ve),f(g[1].split(we),function(a){a.replace(xe,function(a,b,c){d.push(c)})})}a.$inject=d}}else Od(a)?(h=a.length-1,ma(a[h],"fn"),d=a.slice(0,h)):ma(a,"fn",!0);return d}function ab(a,b){function d(a){return function(b,c){return v(b)?void f(b,h(a)):a(b,c)}}function e(a,b){if(na(a,"service"),(A(b)||Od(b))&&(b=y.instantiate(b)),!b.$get)throw ze("pget","Provider '{0}' must define $get factory method.",a);return w[a+q]=b}function g(a,b){return function(){var c=B.invoke(b,this);if(t(c))throw ze("undef","Provider '{0}' must return a value from $get factory method.",a);return c}}function i(a,b,c){return e(a,{$get:c!==!1?g(a,b):b})}function j(a,b){return i(a,["$injector",function(a){return a.instantiate(b)}])}function k(a,b){return i(a,r(b),!1)}function l(a,b){na(a,"constant"),w[a]=b,z[a]=b}function m(a,b){var c=y.get(a+q),d=c.$get;c.$get=function(){var a=B.invoke(d,c);return B.invoke(b,null,{$delegate:a})}}function n(a){la(t(a)||Od(a),"modulesToLoad","not an array");var b,c=[];return f(a,function(a){function d(a){var b,c;for(b=0,c=a.length;c>b;b++){var d=a[b],e=y.get(d[0]);e[d[1]].apply(e,d[2])}}if(!u.get(a)){u.put(a,!0);try{x(a)?(b=Ed(a),c=c.concat(n(b.requires)).concat(b._runBlocks),d(b._invokeQueue),d(b._configBlocks)):A(a)?c.push(y.invoke(a)):Od(a)?c.push(y.invoke(a)):ma(a,"module")}catch(e){throw Od(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1==e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),ze("modulerr","Failed to instantiate module {0} due to:\n{1}",a,e.stack||e.message||e)}}}),c}function o(a,c){function d(b,d){if(a.hasOwnProperty(b)){if(a[b]===p)throw ze("cdep","Circular dependency found: {0}",b+" <- "+s.join(" <- "));return a[b]}try{return s.unshift(b),a[b]=p,a[b]=c(b,d)}catch(e){throw a[b]===p&&delete a[b],e}finally{s.shift()}}function e(a,c,e,f){"string"==typeof e&&(f=e,e=null);var g,h,i,j=[],k=ab.$$annotate(a,b,f);for(h=0,g=k.length;g>h;h++){if(i=k[h],"string"!=typeof i)throw ze("itkn","Incorrect injection token! Expected service name as string, got {0}",i);j.push(e&&e.hasOwnProperty(i)?e[i]:d(i,f))}return Od(a)&&(a=a[g]),a.apply(c,j)}function f(a,b,c){var d=Object.create((Od(a)?a[a.length-1]:a).prototype||null),f=e(a,d,b,c);return v(f)||A(f)?f:d}return{invoke:e,instantiate:f,get:d,annotate:ab.$$annotate,has:function(b){return w.hasOwnProperty(b+q)||a.hasOwnProperty(b)}}}b=b===!0;var p={},q="Provider",s=[],u=new Za([],!0),w={$provide:{provider:d(e),factory:d(i),service:d(j),value:d(k),constant:d(l),decorator:m}},y=w.$injector=o(w,function(a,b){throw Ld.isString(b)&&s.push(b),ze("unpr","Unknown provider: {0}",s.join(" <- "))}),z={},B=z.$injector=o(z,function(a,b){var d=y.get(a+q,b);return B.invoke(d.$get,d,c,a)});return f(n(a),function(a){a&&B.invoke(a)}),B}function bb(){var a=!0;this.disableAutoScrolling=function(){a=!1},this.$get=["$window","$location","$rootScope",function(b,c,d){function e(a){var b=null;return Array.prototype.some.call(a,function(a){return"a"===M(a)?(b=a,!0):void 0}),b}function f(){var a=h.yOffset;if(A(a))a=a();else if(K(a)){var c=a[0],d=b.getComputedStyle(c);a="fixed"!==d.position?0:c.getBoundingClientRect().bottom}else y(a)||(a=0);return a}function g(a){if(a){a.scrollIntoView();var c=f();if(c){var d=a.getBoundingClientRect().top;b.scrollBy(0,d-c)}}else b.scrollTo(0,0)}function h(a){a=x(a)?a:c.hash();var b;a?(b=i.getElementById(a))?g(b):(b=e(i.getElementsByName(a)))?g(b):"top"===a&&g(null):g(null)}var i=b.document;return a&&d.$watch(function(){return c.hash()},function(a,b){(a!==b||""!==a)&&Ra(function(){d.$evalAsync(h)})}),h}]}function cb(a,b){return a||b?a?b?(Od(a)&&(a=a.join(" ")),Od(b)&&(b=b.join(" ")),a+" "+b):a:b:""}function db(a){for(var b=0;b<a.length;b++){var c=a[b];if(c.nodeType===Be)return c}}function eb(a){x(a)&&(a=a.split(" "));var b=qa();return f(a,function(a){a.length&&(b[a]=!0)}),b}function fb(a){return v(a)?a:{}}function gb(a,b,c,d){function e(a){try{a.apply(null,S(arguments,1))}finally{if(s--,0===s)for(;u.length;)try{u.pop()()}catch(b){c.error(b)}}}function g(a){var b=a.indexOf("#");return-1===b?"":a.substr(b)}function h(){z=null,j(),k()}function i(){try{return n.state}catch(a){}}function j(){v=i(),v=t(v)?null:v,Q(v,C)&&(v=C),C=v}function k(){(x!==l.url()||w!==v)&&(x=l.url(),w=v,f(A,function(a){a(l.url(),v)}))}var l=this,m=(b[0],a.location),n=a.history,o=a.setTimeout,q=a.clearTimeout,r={};l.isMock=!1;var s=0,u=[];l.$$completeOutstandingRequest=e,l.$$incOutstandingRequestCount=function(){s++},l.notifyWhenNoOutstandingRequests=function(a){0===s?a():u.push(a)};var v,w,x=m.href,y=b.find("base"),z=null;j(),w=v,l.url=function(b,c,e){if(t(e)&&(e=null),m!==a.location&&(m=a.location),n!==a.history&&(n=a.history),b){var f=w===e;if(x===b&&(!d.history||f))return l;var h=x&&Lb(x)===Lb(b);return x=b,w=e,!d.history||h&&f?((!h||z)&&(z=b),c?m.replace(b):h?m.hash=g(b):m.href=b,m.href!==b&&(z=b)):(n[c?"replaceState":"pushState"](e,"",b),j(),w=v),l}return z||m.href.replace(/%27/g,"'")},l.state=function(){return v};var A=[],B=!1,C=null;l.onUrlChange=function(b){return B||(d.history&&Cd(a).on("popstate",h),Cd(a).on("hashchange",h),B=!0),A.push(b),b},l.$$applicationDestroyed=function(){Cd(a).off("hashchange popstate",h)},l.$$checkUrlChange=k,l.baseHref=function(){var a=y.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""},l.defer=function(a,b){var c;return s++,c=o(function(){delete r[c],e(a)},b||0),r[c]=!0,c},l.defer.cancel=function(a){return r[a]?(delete r[a],q(a),e(p),!0):!1}}function hb(){this.$get=["$window","$log","$sniffer","$document",function(a,b,c,d){return new gb(a,d,b,c)}]}function ib(){this.$get=function(){function a(a,c){function e(a){a!=m&&(n?n==a&&(n=a.n):n=a,f(a.n,a.p),f(a,m),m=a,m.n=null)}function f(a,b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(a in b)throw d("$cacheFactory")("iid","CacheId '{0}' is already taken!",a);var g=0,h=l({},c,{id:a}),i=qa(),j=c&&c.capacity||Number.MAX_VALUE,k=qa(),m=null,n=null;return b[a]={put:function(a,b){if(!t(b)){if(j<Number.MAX_VALUE){var c=k[a]||(k[a]={key:a});e(c)}return a in i||g++,i[a]=b,g>j&&this.remove(n.key),b}},get:function(a){if(j<Number.MAX_VALUE){var b=k[a];if(!b)return;e(b)}return i[a]},remove:function(a){if(j<Number.MAX_VALUE){var b=k[a];if(!b)return;b==m&&(m=b.p),b==n&&(n=b.n),f(b.n,b.p),delete k[a]}a in i&&(delete i[a],g--)},removeAll:function(){i=qa(),g=0,k=qa(),m=n=null},destroy:function(){i=null,h=null,k=null,delete b[a]},info:function(){return l({},h,{size:g})}}}var b={};return a.info=function(){var a={};return f(b,function(b,c){a[c]=b.info()}),a},a.get=function(a){return b[a]},a}}function jb(){this.$get=["$cacheFactory",function(a){return a("templates")}]}function kb(a,d){function e(a,b,c){var d=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,e={};return f(a,function(a,f){var g=a.match(d);if(!g)throw He("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",b,f,a,c?"controller bindings definition":"isolate scope definition");e[f]={mode:g[1][0],collection:"*"===g[2],optional:"?"===g[3],attrName:g[4]||f}}),e}function g(a,b){var c={isolateScope:null,bindToController:null};if(v(a.scope)&&(a.bindToController===!0?(c.bindToController=e(a.scope,b,!0),c.isolateScope={}):c.isolateScope=e(a.scope,b,!1)),v(a.bindToController)&&(c.bindToController=e(a.bindToController,b,!0)),v(c.bindToController)){var d=a.controller,f=a.controllerAs;if(!d)throw He("noctrl","Cannot bind to controller without directive '{0}'s controller.",b);if(!ob(d,f))throw He("noident","Cannot bind to controller without identifier for directive '{0}'.",b)}return c}function i(a){var b=a.charAt(0);if(!b||b!==wd(b))throw He("baddir","Directive name '{0}' is invalid. The first character must be a lowercase letter",a);if(a!==a.trim())throw He("baddir","Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces",a)}var j={},k="Directive",m=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,n=/(([\w\-]+)(?:\:([^;]+))?;?)/,s=L("ngSrc,ngSrcset,src,srcset"),w=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,y=/^(on[a-z]+|formaction)$/;this.directive=function B(b,c){return na(b,"directive"),x(b)?(i(b),la(c,"directiveFactory"),j.hasOwnProperty(b)||(j[b]=[],a.factory(b+k,["$injector","$exceptionHandler",function(a,c){var d=[];return f(j[b],function(e,f){try{var h=a.invoke(e);A(h)?h={compile:r(h)}:!h.compile&&h.link&&(h.compile=r(h.link)),h.priority=h.priority||0,h.index=f,h.name=h.name||b,h.require=h.require||h.controller&&h.name,h.restrict=h.restrict||"EA";var i=h.$$bindings=g(h,h.name);v(i.isolateScope)&&(h.$$isolateBindings=i.isolateScope),h.$$moduleName=e.$$moduleName,d.push(h)}catch(j){c(j)}}),d}])),j[b].push(c)):f(b,h(B)),this},this.aHrefSanitizationWhitelist=function(a){return u(a)?(d.aHrefSanitizationWhitelist(a),this):d.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(a){return u(a)?(d.imgSrcSanitizationWhitelist(a),this):d.imgSrcSanitizationWhitelist()};var z=!0;this.debugInfoEnabled=function(a){return u(a)?(z=a,this):z},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(a,d,e,g,h,i,r,u,B,C,E){function F(a,b){try{a.addClass(b)}catch(c){}}function G(a,b,c,d,e){a instanceof Cd||(a=Cd(a)),f(a,function(b,c){b.nodeType==Zd&&b.nodeValue.match(/\S+/)&&(a[c]=Cd(b).wrap("<span></span>").parent()[0])});var g=I(a,b,a,c,d,e);G.$$addScopeClass(a);var h=null;return function(b,c,d){la(b,"scope"),e&&e.needsNewScope&&(b=b.$parent.$new()),d=d||{};var f=d.parentBoundTranscludeFn,i=d.transcludeControllers,j=d.futureParentElement;f&&f.$$boundTransclude&&(f=f.$$boundTransclude),h||(h=H(j));var k;if(k="html"!==h?Cd(_(h,Cd("<div>").append(a).html())):c?qe.clone.call(a):a,i)for(var l in i)k.data("$"+l+"Controller",i[l].instance);return G.$$addScopeInfo(k,b),c&&c(k,b),g&&g(b,k,k,f),k}}function H(a){var b=a&&a[0];return b&&"foreignobject"!==M(b)&&b.toString().match(/SVG/)?"svg":"html"}function I(a,b,d,e,f,g){function h(a,d,e,f){var g,h,i,j,k,l,m,n,q;if(o){var r=d.length;for(q=new Array(r),k=0;k<p.length;k+=3)m=p[k],q[m]=d[m]}else q=d;for(k=0,l=p.length;l>k;)i=q[p[k++]],g=p[k++],h=p[k++],g?(g.scope?(j=a.$new(),G.$$addScopeInfo(Cd(i),j)):j=a,n=g.transcludeOnThisElement?J(a,g.transclude,f):!g.templateOnThisElement&&f?f:!f&&b?J(a,b):null,g(h,j,i,e,n)):h&&h(a,i.childNodes,c,f)}for(var i,j,k,l,m,n,o,p=[],q=0;q<a.length;q++)i=new ga,j=K(a[q],[],i,0===q?e:c,f),k=j.length?P(j,a[q],i,b,d,null,[],[],g):null,k&&k.scope&&G.$$addScopeClass(i.$$element),m=k&&k.terminal||!(l=a[q].childNodes)||!l.length?null:I(l,k?(k.transcludeOnThisElement||!k.templateOnThisElement)&&k.transclude:b),(k||m)&&(p.push(q,k,m),n=!0,o=o||k),g=null;return n?h:null}function J(a,b,c){var d=function(d,e,f,g,h){return d||(d=a.$new(!1,h),d.$$transcluded=!0),b(d,e,{parentBoundTranscludeFn:c,transcludeControllers:f,futureParentElement:g})};return d}function K(a,b,c,d,e){var f,g,h=a.nodeType,i=c.$attr;switch(h){case Xd:T(b,lb(M(a)),"E",d,e);for(var j,k,l,o,p,q,r=a.attributes,s=0,t=r&&r.length;t>s;s++){var u=!1,w=!1;j=r[s],k=j.name,p=Qd(j.value),o=lb(k),(q=ma.test(o))&&(k=k.replace(Ie,"").substr(8).replace(/_(.)/g,function(a,b){return b.toUpperCase()}));var y=o.match(na);y&&U(y[1])&&(u=k,w=k.substr(0,k.length-5)+"end",k=k.substr(0,k.length-6)),l=lb(k.toLowerCase()),i[l]=k,(q||!c.hasOwnProperty(l))&&(c[l]=p,Sa(a,l)&&(c[l]=!0)),ba(a,b,p,l,q),T(b,l,"A",d,e,u,w)}if(g=a.className,v(g)&&(g=g.animVal),x(g)&&""!==g)for(;f=n.exec(g);)l=lb(f[2]),T(b,l,"C",d,e)&&(c[l]=Qd(f[3])),g=g.substr(f.index+f[0].length);break;case Zd:if(11===Bd)for(;a.parentNode&&a.nextSibling&&a.nextSibling.nodeType===Zd;)a.nodeValue=a.nodeValue+a.nextSibling.nodeValue,a.parentNode.removeChild(a.nextSibling);Z(b,a.nodeValue);break;case $d:try{f=m.exec(a.nodeValue),f&&(l=lb(f[1]),T(b,l,"M",d,e)&&(c[l]=Qd(f[2])))}catch(z){}}return b.sort(X),b}function L(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw He("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",b,c);a.nodeType==Xd&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--),d.push(a),a=a.nextSibling}while(e>0)}else d.push(a);return Cd(d)}function O(a,b,c){return function(d,e,f,g,h){return e=L(e[0],b,c),a(d,e,f,g,h)}}function P(a,d,f,g,h,j,k,l,m){function n(a,b,c,d){a&&(c&&(a=O(a,c,d)),a.require=r.require,a.directiveName=s,(E===r||r.$$isolateScope)&&(a=da(a,{isolateScope:!0})),k.push(a)),b&&(c&&(b=O(b,c,d)),b.require=r.require,b.directiveName=s,(E===r||r.$$isolateScope)&&(b=da(b,{isolateScope:!0})),l.push(b))}function o(a,b,c,d){var e;if(x(b)){var f=b.match(w),g=b.substring(f[0].length),h=f[1]||f[3],i="?"===f[2];if("^^"===h?c=c.parent():(e=d&&d[g],e=e&&e.instance),!e){var j="$"+g+"Controller";e=h?c.inheritedData(j):c.data(j)}if(!e&&!i)throw He("ctreq","Controller '{0}', required by directive '{1}', can't be found!",g,a)}else if(Od(b)){e=[];for(var k=0,l=b.length;l>k;k++)e[k]=o(a,b[k],c,d)}return e||null}function p(a,b,c,d,e,f){var g=qa();for(var h in d){var j=d[h],k={$scope:j===E||j.$$isolateScope?e:f,$element:a,$attrs:b,$transclude:c},l=j.controller;"@"==l&&(l=b[j.name]);var m=i(l,k,!0,j.controllerAs);g[j.name]=m,M||a.data("$"+j.name+"Controller",m.instance)}return g}function q(a,b,e,g,h){function i(a,b,d){var e;return D(a)||(d=b,b=a,a=c),M&&(e=q),d||(d=M?s.parent():s),h(a,b,e,d,H)}var j,m,n,q,r,s,t,u,v;d===e?(t=f,s=f.$$element):(s=Cd(e),t=new ga(s,f)),n=b,E?m=b.$new(!0):B&&(n=b.$parent),h&&(r=i,r.$$boundTransclude=h),C&&(q=p(s,t,r,C,m,b)),E&&(G.$$addScopeInfo(s,m,!0,!(F&&(F===E||F===E.$$originalDirective))),G.$$addScopeClass(s,!0),m.$$isolateBindings=E.$$isolateBindings,u=fa(b,t,m,m.$$isolateBindings,E),u&&m.$on("$destroy",u));for(var w in q){var x=C[w],y=q[w],z=x.$$bindings.bindToController;y.identifier&&z&&(v=fa(n,t,y.instance,z,x));var A=y();A!==y.instance&&(y.instance=A,s.data("$"+x.name+"Controller",A),v&&v(),v=fa(n,t,y.instance,z,x))}for(T=0,U=k.length;U>T;T++)j=k[T],ea(j,j.isolateScope?m:b,s,t,j.require&&o(j.directiveName,j.require,s,q),r);var H=b;for(E&&(E.template||null===E.templateUrl)&&(H=m),a&&a(H,e.childNodes,c,h),T=l.length-1;T>=0;T--)j=l[T],ea(j,j.isolateScope?m:b,s,t,j.require&&o(j.directiveName,j.require,s,q),r)}m=m||{};for(var r,s,t,u,y,z=-Number.MAX_VALUE,B=m.newScopeDirective,C=m.controllerDirectives,E=m.newIsolateScopeDirective,F=m.templateDirective,H=m.nonTlbTranscludeDirective,I=!1,J=!1,M=m.hasElementTranscludeDirective,N=f.$$element=Cd(d),P=j,Q=g,T=0,U=a.length;U>T;T++){r=a[T];var X=r.$$start,Z=r.$$end;if(X&&(N=L(d,X,Z)),t=c,z>r.priority)break;if((y=r.scope)&&(r.templateUrl||(v(y)?(Y("new/isolated scope",E||B,r,N),E=r):Y("new/isolated scope",E,r,N)),B=B||r),s=r.name,!r.templateUrl&&r.controller&&(y=r.controller,C=C||qa(),Y("'"+s+"' controller",C[s],r,N),C[s]=r),(y=r.transclude)&&(I=!0,r.$$tlb||(Y("transclusion",H,r,N),H=r),"element"==y?(M=!0,z=r.priority,t=N,N=f.$$element=Cd(b.createComment(" "+s+": "+f[s]+" ")),d=N[0],ca(h,S(t),d),Q=G(t,g,z,P&&P.name,{nonTlbTranscludeDirective:H})):(t=Cd(Da(d)).contents(),N.empty(),Q=G(t,g,c,c,{needsNewScope:r.$$isolateScope||r.$$newScope}))),r.template)if(J=!0,Y("template",F,r,N),F=r,y=A(r.template)?r.template(N,f):r.template,y=ka(y),r.replace){if(P=r,t=xa(y)?[]:nb(_(r.templateNamespace,Qd(y))),d=t[0],1!=t.length||d.nodeType!==Xd)throw He("tplrt","Template for directive '{0}' must have exactly one root element. {1}",s,"");ca(h,N,d);var aa={$attr:{}},ba=K(d,[],aa),ha=a.splice(T+1,a.length-(T+1));(E||B)&&R(ba,E,B),a=a.concat(ba).concat(ha),V(f,aa),U=a.length}else N.html(y);if(r.templateUrl)J=!0,Y("template",F,r,N),F=r,r.replace&&(P=r),q=W(a.splice(T,a.length-T),N,f,h,I&&Q,k,l,{controllerDirectives:C,newScopeDirective:B!==r&&B,newIsolateScopeDirective:E,templateDirective:F,nonTlbTranscludeDirective:H}),U=a.length;else if(r.compile)try{u=r.compile(N,f,Q),A(u)?n(null,u,X,Z):u&&n(u.pre,u.post,X,Z)}catch(ia){e(ia,$(N))}r.terminal&&(q.terminal=!0,z=Math.max(z,r.priority))}return q.scope=B&&B.scope===!0,q.transcludeOnThisElement=I,q.templateOnThisElement=J,q.transclude=Q,m.hasElementTranscludeDirective=M,q}function R(a,b,c){for(var d=0,e=a.length;e>d;d++)a[d]=o(a[d],{$$isolateScope:b,$$newScope:c})}function T(b,c,d,f,g,h,i){if(c===g)return null;var l=null;if(j.hasOwnProperty(c))for(var m,n=a.get(c+k),p=0,q=n.length;q>p;p++)try{m=n[p],(t(f)||f>m.priority)&&-1!=m.restrict.indexOf(d)&&(h&&(m=o(m,{$$start:h,$$end:i})),b.push(m),l=m)}catch(r){e(r)}return l}function U(b){if(j.hasOwnProperty(b))for(var c,d=a.get(b+k),e=0,f=d.length;f>e;e++)if(c=d[e],c.multiElement)return!0;return!1}function V(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;f(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))}),f(b,function(b,f){"class"==f?(F(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function W(a,b,c,d,e,h,i,j){var k,l,m=[],n=b[0],p=a.shift(),q=o(p,{templateUrl:null,transclude:null,replace:null,$$originalDirective:p}),r=A(p.templateUrl)?p.templateUrl(b,c):p.templateUrl,s=p.templateNamespace;return b.empty(),g(r).then(function(g){var o,t,u,w;if(g=ka(g),p.replace){if(u=xa(g)?[]:nb(_(s,Qd(g))),o=u[0],1!=u.length||o.nodeType!==Xd)throw He("tplrt","Template for directive '{0}' must have exactly one root element. {1}",p.name,r);t={$attr:{}},ca(d,b,o);var x=K(o,[],t);v(p.scope)&&R(x,!0),a=x.concat(a),V(c,t)}else o=n,b.html(g);for(a.unshift(q),k=P(a,o,c,e,b,p,h,i,j),f(d,function(a,c){a==o&&(d[c]=b[0])}),l=I(b[0].childNodes,e);m.length;){var y=m.shift(),z=m.shift(),A=m.shift(),B=m.shift(),C=b[0];if(!y.$$destroyed){if(z!==n){var D=z.className;j.hasElementTranscludeDirective&&p.replace||(C=Da(o)),ca(A,Cd(z),C),F(Cd(C),D)}w=k.transcludeOnThisElement?J(y,k.transclude,B):B,k(l,y,C,d,w)}}m=null}),function(a,b,c,d,e){var f=e;b.$$destroyed||(m?m.push(b,c,d,f):(k.transcludeOnThisElement&&(f=J(b,k.transclude,e)),k(l,b,c,d,f)))}}function X(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function Y(a,b,c,d){function e(a){return a?" (module: "+a+")":""}if(b)throw He("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",b.name,e(b.$$moduleName),c.name,e(c.$$moduleName),a,$(d))}function Z(a,b){var c=d(b,!0);c&&a.push({priority:0,compile:function(a){var b=a.parent(),d=!!b.length;return d&&G.$$addBindingClass(b),function(a,b){var e=b.parent();d||G.$$addBindingClass(e),G.$$addBindingInfo(e,c.expressions),a.$watch(c,function(a){b[0].nodeValue=a})}}})}function _(a,c){switch(a=wd(a||"html")){case"svg":case"math":var d=b.createElement("div");return d.innerHTML="<"+a+">"+c+"</"+a+">",d.childNodes[0].childNodes;default:return c}}function aa(a,b){if("srcdoc"==b)return B.HTML;var c=M(a);return"xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b)?B.RESOURCE_URL:void 0}function ba(a,b,c,e,f){var g=aa(a,e);f=s[e]||f;var h=d(c,!0,g,f);if(h){if("multiple"===e&&"select"===M(a))throw He("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",$(a));b.push({priority:100,compile:function(){return{pre:function(a,b,i){var j=i.$$observers||(i.$$observers=qa());if(y.test(e))throw He("nodomevents","Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");var k=i[e];k!==c&&(h=k&&d(k,!0,g,f),c=k),h&&(i[e]=h(a),(j[e]||(j[e]=[])).$$inter=!0,(i.$$observers&&i.$$observers[e].$$scope||a).$watch(h,function(a,b){"class"===e&&a!=b?i.$updateClass(a,b):i.$set(e,a)}))}}}})}}function ca(a,c,d){var e,f,g=c[0],h=c.length,i=g.parentNode;if(a)for(e=0,f=a.length;f>e;e++)if(a[e]==g){a[e++]=d;for(var j=e,k=j+h-1,l=a.length;l>j;j++,k++)l>k?a[j]=a[k]:delete a[j];a.length-=h-1,a.context===g&&(a.context=d);break}i&&i.replaceChild(d,g);var m=b.createDocumentFragment();m.appendChild(g),Cd.hasData(g)&&(Cd.data(d,Cd.data(g)),Dd?(Nd=!0,Dd.cleanData([g])):delete Cd.cache[g[Cd.expando]]);for(var n=1,o=c.length;o>n;n++){var p=c[n];Cd(p).remove(),m.appendChild(p),delete c[n]}c[0]=d,c.length=1}function da(a,b){return l(function(){return a.apply(null,arguments)},a,b)}function ea(a,b,c,d,f,g){try{a(b,c,d,f,g)}catch(h){e(h,$(c))}}function fa(a,b,c,e,g){var i=[];return f(e,function(e,f){var j,k,l,m,n=e.attrName,o=e.optional,q=e.mode;switch(q){case"@":o||xd.call(b,n)||(c[f]=b[n]=void 0),b.$observe(n,function(a){x(a)&&(c[f]=a)}),b.$$observers[n].$$scope=a,x(b[n])&&(c[f]=d(b[n])(a));break;case"=":if(!xd.call(b,n)){if(o)break;b[n]=void 0}if(o&&!b[n])break;k=h(b[n]),m=k.literal?Q:function(a,b){return a===b||a!==a&&b!==b},l=k.assign||function(){throw j=c[f]=k(a),He("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",b[n],g.name)},j=c[f]=k(a);var r=function(b){return m(b,c[f])||(m(b,j)?l(a,b=c[f]):c[f]=b),j=b};r.$stateful=!0;var s;s=e.collection?a.$watchCollection(b[n],r):a.$watch(h(b[n],r),null,k.literal),i.push(s);break;case"&":if(k=b.hasOwnProperty(n)?h(b[n]):p,k===p&&o)break;c[f]=function(b){return k(a,b)}}}),i.length&&function(){for(var a=0,b=i.length;b>a;++a)i[a]()}}var ga=function(a,b){if(b){var c,d,e,f=Object.keys(b);for(c=0,d=f.length;d>c;c++)e=f[c],this[e]=b[e]}else this.$attr={};this.$$element=a};ga.prototype={$normalize:lb,$addClass:function(a){a&&a.length>0&&C.addClass(this.$$element,a)},$removeClass:function(a){a&&a.length>0&&C.removeClass(this.$$element,a)},$updateClass:function(a,b){var c=mb(a,b);c&&c.length&&C.addClass(this.$$element,c);var d=mb(b,a);d&&d.length&&C.removeClass(this.$$element,d)},$set:function(a,b,c,d){var g,h=this.$$element[0],i=Sa(h,a),j=Ta(a),k=a;if(i?(this.$$element.prop(a,b),d=i):j&&(this[j]=b,k=j),this[a]=b,d?this.$attr[a]=d:(d=this.$attr[a],d||(this.$attr[a]=d=ja(a,"-"))),g=M(this.$$element),"a"===g&&"href"===a||"img"===g&&"src"===a)this[a]=b=E(b,"src"===a);else if("img"===g&&"srcset"===a){for(var l="",m=Qd(b),n=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,o=/\s/.test(m)?n:/(,)/,p=m.split(o),q=Math.floor(p.length/2),r=0;q>r;r++){var s=2*r;l+=E(Qd(p[s]),!0),l+=" "+Qd(p[s+1])}var u=Qd(p[2*r]).split(/\s/);l+=E(Qd(u[0]),!0),2===u.length&&(l+=" "+Qd(u[1])),this[a]=b=l}c!==!1&&(null===b||t(b)?this.$$element.removeAttr(d):this.$$element.attr(d,b));var v=this.$$observers;v&&f(v[k],function(a){try{a(b)}catch(c){e(c)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers=qa()),e=d[a]||(d[a]=[]);return e.push(b),r.$evalAsync(function(){e.$$inter||!c.hasOwnProperty(a)||t(c[a])||b(c[a])}),function(){N(e,b)}}};var ha=d.startSymbol(),ia=d.endSymbol(),ka="{{"==ha||"}}"==ia?q:function(a){return a.replace(/\{\{/g,ha).replace(/}}/g,ia)},ma=/^ngAttr[A-Z]/,na=/^(.+)Start$/;return G.$$addBindingInfo=z?function(a,b){var c=a.data("$binding")||[];Od(b)?c=c.concat(b):c.push(b),a.data("$binding",c)}:p,G.$$addBindingClass=z?function(a){F(a,"ng-binding")}:p,G.$$addScopeInfo=z?function(a,b,c,d){var e=c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope";a.data(e,b)}:p,G.$$addScopeClass=z?function(a,b){F(a,b?"ng-isolate-scope":"ng-scope")}:p,G}]}function lb(a){return wa(a.replace(Ie,""))}function mb(a,b){var c="",d=a.split(/\s+/),e=b.split(/\s+/);a:for(var f=0;f<d.length;f++){for(var g=d[f],h=0;h<e.length;h++)if(g==e[h])continue a;c+=(c.length>0?" ":"")+g}return c}function nb(a){a=Cd(a);var b=a.length;if(1>=b)return a;for(;b--;){var c=a[b];c.nodeType===$d&&Gd.call(a,b,1)}return a}function ob(a,b){if(b&&x(b))return b;if(x(a)){var c=Ke.exec(a);if(c)return c[3]}}function pb(){var a={},b=!1;this.register=function(b,c){na(b,"controller"),v(b)?l(a,b):a[b]=c},this.allowGlobals=function(){b=!0},this.$get=["$injector","$window",function(e,f){function g(a,b,c,e){if(!a||!v(a.$scope))throw d("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",e,b);a.$scope[b]=c}return function(d,h,i,j){var k,m,n,o;if(i=i===!0,j&&x(j)&&(o=j),x(d)){if(m=d.match(Ke),!m)throw Je("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",d);n=m[1],o=o||m[3],d=a.hasOwnProperty(n)?a[n]:oa(h.$scope,n,!0)||(b?oa(f,n,!0):c),ma(d,n,!0)}if(i){var p=(Od(d)?d[d.length-1]:d).prototype;k=Object.create(p||null),o&&g(h,o,k,n||d.name);var q;return q=l(function(){var a=e.invoke(d,k,h,n);return a!==k&&(v(a)||A(a))&&(k=a,o&&g(h,o,k,n||d.name)),k},{instance:k,identifier:o})}return k=e.instantiate(d,h,n),o&&g(h,o,k,n||d.name),
-k}}]}function qb(){this.$get=["$window",function(a){return Cd(a.document)}]}function rb(){this.$get=["$log",function(a){return function(b,c){a.error.apply(a,arguments)}}]}function sb(a){return v(a)?z(a)?a.toISOString():V(a):a}function tb(){this.$get=function(){return function(a){if(!a)return"";var b=[];return g(a,function(a,c){null===a||t(a)||(Od(a)?f(a,function(a,d){b.push(da(c)+"="+da(sb(a)))}):b.push(da(c)+"="+da(sb(a))))}),b.join("&")}}}function ub(){this.$get=function(){return function(a){function b(a,d,e){null===a||t(a)||(Od(a)?f(a,function(a,c){b(a,d+"["+(v(a)?c:"")+"]")}):v(a)&&!z(a)?g(a,function(a,c){b(a,d+(e?"":"[")+c+(e?"":"]"))}):c.push(da(d)+"="+da(sb(a))))}if(!a)return"";var c=[];return b(a,"",!0),c.join("&")}}}function vb(a,b){if(x(a)){var c=a.replace(Qe,"").trim();if(c){var d=b("Content-Type");(d&&0===d.indexOf(Me)||wb(c))&&(a=W(c))}}return a}function wb(a){var b=a.match(Oe);return b&&Pe[b[0]].test(a)}function xb(a){function b(a,b){a&&(d[a]=d[a]?d[a]+", "+b:b)}var c,d=qa();return x(a)?f(a.split("\n"),function(a){c=a.indexOf(":"),b(wd(Qd(a.substr(0,c))),Qd(a.substr(c+1)))}):v(a)&&f(a,function(a,c){b(wd(c),Qd(a))}),d}function yb(a){var b;return function(c){if(b||(b=xb(a)),c){var d=b[wd(c)];return void 0===d&&(d=null),d}return b}}function zb(a,b,c,d){return A(d)?d(a,b,c):(f(d,function(d){a=d(a,b,c)}),a)}function Ab(a){return a>=200&&300>a}function Bb(){var a=this.defaults={transformResponse:[vb],transformRequest:[function(a){return!v(a)||E(a)||G(a)||F(a)?a:V(a)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:P(Ne),put:P(Ne),patch:P(Ne)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},b=!1;this.useApplyAsync=function(a){return u(a)?(b=!!a,this):b};var e=!0;this.useLegacyPromiseExtensions=function(a){return u(a)?(e=!!a,this):e};var g=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(h,i,j,k,m,n){function o(b){function g(a){var b=l({},a);return b.data=zb(a.data,a.headers,a.status,j.transformResponse),Ab(a.status)?b:m.reject(b)}function h(a,b){var c,d={};return f(a,function(a,e){A(a)?(c=a(b),null!=c&&(d[e]=c)):d[e]=a}),d}function i(b){var c,d,e,f=a.headers,g=l({},b.headers);f=l({},f.common,f[wd(b.method)]);a:for(c in f){d=wd(c);for(e in g)if(wd(e)===d)continue a;g[c]=f[c]}return h(g,P(b))}if(!Ld.isObject(b))throw d("$http")("badreq","Http request configuration must be an object.  Received: {0}",b);var j=l({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer},b);j.headers=i(b),j.method=yd(j.method),j.paramSerializer=x(j.paramSerializer)?n.get(j.paramSerializer):j.paramSerializer;var k=function(b){var d=b.headers,e=zb(b.data,yb(d),c,b.transformRequest);return t(e)&&f(d,function(a,b){"content-type"===wd(b)&&delete d[b]}),t(b.withCredentials)&&!t(a.withCredentials)&&(b.withCredentials=a.withCredentials),r(b,e).then(g,g)},o=[k,c],p=m.when(j);for(f(y,function(a){(a.request||a.requestError)&&o.unshift(a.request,a.requestError),(a.response||a.responseError)&&o.push(a.response,a.responseError)});o.length;){var q=o.shift(),s=o.shift();p=p.then(q,s)}return e?(p.success=function(a){return ma(a,"fn"),p.then(function(b){a(b.data,b.status,b.headers,j)}),p},p.error=function(a){return ma(a,"fn"),p.then(null,function(b){a(b.data,b.status,b.headers,j)}),p}):(p.success=Se("success"),p.error=Se("error")),p}function p(a){f(arguments,function(a){o[a]=function(b,c){return o(l({},c||{},{method:a,url:b}))}})}function q(a){f(arguments,function(a){o[a]=function(b,c,d){return o(l({},d||{},{method:a,url:b,data:c}))}})}function r(d,e){function f(a,c,d,e){function f(){g(c,a,d,e)}n&&(Ab(a)?n.put(y,[a,c,xb(d),e]):n.remove(y)),b?k.$applyAsync(f):(f(),k.$$phase||k.$apply())}function g(a,b,c,e){b=b>=-1?b:0,(Ab(b)?q.resolve:q.reject)({data:a,status:b,headers:yb(c),config:d,statusText:e})}function j(a){g(a.data,a.status,P(a.headers()),a.statusText)}function l(){var a=o.pendingRequests.indexOf(d);-1!==a&&o.pendingRequests.splice(a,1)}var n,p,q=m.defer(),r=q.promise,x=d.headers,y=s(d.url,d.paramSerializer(d.params));if(o.pendingRequests.push(d),r.then(l,l),!d.cache&&!a.cache||d.cache===!1||"GET"!==d.method&&"JSONP"!==d.method||(n=v(d.cache)?d.cache:v(a.cache)?a.cache:w),n&&(p=n.get(y),u(p)?I(p)?p.then(j,j):Od(p)?g(p[1],p[0],P(p[2]),p[3]):g(p,200,{},"OK"):n.put(y,r)),t(p)){var z=Cc(d.url)?i()[d.xsrfCookieName||a.xsrfCookieName]:c;z&&(x[d.xsrfHeaderName||a.xsrfHeaderName]=z),h(d.method,y,e,f,x,d.timeout,d.withCredentials,d.responseType)}return r}function s(a,b){return b.length>0&&(a+=(-1==a.indexOf("?")?"?":"&")+b),a}var w=j("$http");a.paramSerializer=x(a.paramSerializer)?n.get(a.paramSerializer):a.paramSerializer;var y=[];return f(g,function(a){y.unshift(x(a)?n.get(a):n.invoke(a))}),o.pendingRequests=[],p("get","delete","head","jsonp"),q("post","put","patch"),o.defaults=a,o}]}function Cb(){this.$get=function(){return function(){return new a.XMLHttpRequest}}}function Db(){this.$get=["$browser","$window","$document","$xhrFactory",function(a,b,c,d){return Eb(a,d,a.defer,b.angular.callbacks,c[0])}]}function Eb(a,b,c,d,e){function g(a,b,c){var f=e.createElement("script"),g=null;return f.type="text/javascript",f.src=a,f.async=!0,g=function(a){fe(f,"load",g),fe(f,"error",g),e.body.removeChild(f),f=null;var h=-1,i="unknown";a&&("load"!==a.type||d[b].called||(a={type:"error"}),i=a.type,h="error"===a.type?404:200),c&&c(h,i)},ee(f,"load",g),ee(f,"error",g),e.body.appendChild(f),g}return function(e,h,i,j,k,l,m,n){function o(){s&&s(),v&&v.abort()}function q(b,d,e,f,g){u(y)&&c.cancel(y),s=v=null,b(d,e,f,g),a.$$completeOutstandingRequest(p)}if(a.$$incOutstandingRequestCount(),h=h||a.url(),"jsonp"==wd(e)){var r="_"+(d.counter++).toString(36);d[r]=function(a){d[r].data=a,d[r].called=!0};var s=g(h.replace("JSON_CALLBACK","angular.callbacks."+r),r,function(a,b){q(j,a,d[r].data,"",b),d[r]=p})}else{var v=b(e,h);v.open(e,h,!0),f(k,function(a,b){u(a)&&v.setRequestHeader(b,a)}),v.onload=function(){var a=v.statusText||"",b="response"in v?v.response:v.responseText,c=1223===v.status?204:v.status;0===c&&(c=b?200:"file"==Bc(h).protocol?404:0),q(j,c,b,v.getAllResponseHeaders(),a)};var w=function(){q(j,-1,null,null,"")};if(v.onerror=w,v.onabort=w,m&&(v.withCredentials=!0),n)try{v.responseType=n}catch(x){if("json"!==n)throw x}v.send(t(i)?null:i)}if(l>0)var y=c(o,l);else I(l)&&l.then(o)}}function Fb(){var a="{{",b="}}";this.startSymbol=function(b){return b?(a=b,this):a},this.endSymbol=function(a){return a?(b=a,this):b},this.$get=["$parse","$exceptionHandler","$sce",function(c,d,e){function f(a){return"\\\\\\"+a}function g(c){return c.replace(m,a).replace(n,b)}function h(a){if(null==a)return"";switch(typeof a){case"string":break;case"number":a=""+a;break;default:a=V(a)}return a}function i(f,i,m,n){function o(a){try{return a=C(a),n&&!u(a)?a:h(a)}catch(b){d(Te.interr(f,b))}}n=!!n;for(var p,q,r,s=0,v=[],w=[],x=f.length,y=[],z=[];x>s;){if(-1==(p=f.indexOf(a,s))||-1==(q=f.indexOf(b,p+j))){s!==x&&y.push(g(f.substring(s)));break}s!==p&&y.push(g(f.substring(s,p))),r=f.substring(p+j,q),v.push(r),w.push(c(r,o)),s=q+k,z.push(y.length),y.push("")}if(m&&y.length>1&&Te.throwNoconcat(f),!i||v.length){var B=function(a){for(var b=0,c=v.length;c>b;b++){if(n&&t(a[b]))return;y[z[b]]=a[b]}return y.join("")},C=function(a){return m?e.getTrusted(m,a):e.valueOf(a)};return l(function(a){var b=0,c=v.length,e=new Array(c);try{for(;c>b;b++)e[b]=w[b](a);return B(e)}catch(g){d(Te.interr(f,g))}},{exp:f,expressions:v,$$watchDelegate:function(a,b){var c;return a.$watchGroup(w,function(d,e){var f=B(d);A(b)&&b.call(this,f,d!==e?c:f,a),c=f})}})}}var j=a.length,k=b.length,m=new RegExp(a.replace(/./g,f),"g"),n=new RegExp(b.replace(/./g,f),"g");return i.startSymbol=function(){return a},i.endSymbol=function(){return b},i}]}function Gb(){this.$get=["$rootScope","$window","$q","$$q",function(a,b,c,d){function e(e,g,h,i){var j=arguments.length>4,k=j?S(arguments,4):[],l=b.setInterval,m=b.clearInterval,n=0,o=u(i)&&!i,p=(o?d:c).defer(),q=p.promise;return h=u(h)?h:0,q.then(null,null,j?function(){e.apply(null,k)}:e),q.$$intervalId=l(function(){p.notify(n++),h>0&&n>=h&&(p.resolve(n),m(q.$$intervalId),delete f[q.$$intervalId]),o||a.$apply()},g),f[q.$$intervalId]=p,q}var f={};return e.cancel=function(a){return a&&a.$$intervalId in f?(f[a.$$intervalId].reject("canceled"),b.clearInterval(a.$$intervalId),delete f[a.$$intervalId],!0):!1},e}]}function Hb(a){for(var b=a.split("/"),c=b.length;c--;)b[c]=ca(b[c]);return b.join("/")}function Ib(a,b){var c=Bc(a);b.$$protocol=c.protocol,b.$$host=c.hostname,b.$$port=n(c.port)||Ve[c.protocol]||null}function Jb(a,b){var c="/"!==a.charAt(0);c&&(a="/"+a);var d=Bc(a);b.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname),b.$$search=aa(d.search),b.$$hash=decodeURIComponent(d.hash),b.$$path&&"/"!=b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function Kb(a,b){return 0===b.indexOf(a)?b.substr(a.length):void 0}function Lb(a){var b=a.indexOf("#");return-1==b?a:a.substr(0,b)}function Mb(a){return a.replace(/(#.+)|#$/,"$1")}function Nb(a){return a.substr(0,Lb(a).lastIndexOf("/")+1)}function Ob(a){return a.substring(0,a.indexOf("/",a.indexOf("//")+2))}function Pb(a,b,c){this.$$html5=!0,c=c||"",Ib(a,this),this.$$parse=function(a){var c=Kb(b,a);if(!x(c))throw We("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',a,b);Jb(c,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var a=ba(this.$$search),c=this.$$hash?"#"+ca(this.$$hash):"";this.$$url=Hb(this.$$path)+(a?"?"+a:"")+c,this.$$absUrl=b+this.$$url.substr(1)},this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g,h;return u(f=Kb(a,d))?(g=f,h=u(f=Kb(c,f))?b+(Kb("/",f)||f):a+g):u(f=Kb(b,d))?h=b+f:b==d+"/"&&(h=b),h&&this.$$parse(h),!!h}}function Qb(a,b,c){Ib(a,this),this.$$parse=function(d){function e(a,b,c){var d,e=/^\/[A-Z]:(\/.*)/;return 0===b.indexOf(c)&&(b=b.replace(c,"")),e.exec(b)?a:(d=e.exec(a),d?d[1]:a)}var f,g=Kb(a,d)||Kb(b,d);t(g)||"#"!==g.charAt(0)?this.$$html5?f=g:(f="",t(g)&&(a=d,this.replace())):(f=Kb(c,g),t(f)&&(f=g)),Jb(f,this),this.$$path=e(this.$$path,f,a),this.$$compose()},this.$$compose=function(){var b=ba(this.$$search),d=this.$$hash?"#"+ca(this.$$hash):"";this.$$url=Hb(this.$$path)+(b?"?"+b:"")+d,this.$$absUrl=a+(this.$$url?c+this.$$url:"")},this.$$parseLinkUrl=function(b,c){return Lb(a)==Lb(b)?(this.$$parse(b),!0):!1}}function Rb(a,b,c){this.$$html5=!0,Qb.apply(this,arguments),this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;return a==Lb(d)?f=d:(g=Kb(b,d))?f=a+c+g:b===d+"/"&&(f=b),f&&this.$$parse(f),!!f},this.$$compose=function(){var b=ba(this.$$search),d=this.$$hash?"#"+ca(this.$$hash):"";this.$$url=Hb(this.$$path)+(b?"?"+b:"")+d,this.$$absUrl=a+c+this.$$url}}function Sb(a){return function(){return this[a]}}function Tb(a,b){return function(c){return t(c)?this[a]:(this[a]=b(c),this.$$compose(),this)}}function Ub(){var a="",b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return u(b)?(a=b,this):a},this.html5Mode=function(a){return H(a)?(b.enabled=a,this):v(a)?(H(a.enabled)&&(b.enabled=a.enabled),H(a.requireBase)&&(b.requireBase=a.requireBase),H(a.rewriteLinks)&&(b.rewriteLinks=a.rewriteLinks),this):b},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c,d,e,f,g){function h(a,b,c){var e=j.url(),f=j.$$state;try{d.url(a,b,c),j.$$state=d.state()}catch(g){throw j.url(e),j.$$state=f,g}}function i(a,b){c.$broadcast("$locationChangeSuccess",j.absUrl(),a,j.$$state,b)}var j,k,l,m=d.baseHref(),n=d.url();if(b.enabled){if(!m&&b.requireBase)throw We("nobase","$location in HTML5 mode requires a <base> tag to be present!");l=Ob(n)+(m||"/"),k=e.history?Pb:Rb}else l=Lb(n),k=Qb;var o=Nb(l);j=new k(l,o,"#"+a),j.$$parseLinkUrl(n,n),j.$$state=d.state();var p=/^\s*(javascript|mailto):/i;f.on("click",function(a){if(b.rewriteLinks&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!=a.which&&2!=a.button){for(var e=Cd(a.target);"a"!==M(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"),i=e.attr("href")||e.attr("xlink:href");v(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=Bc(h.animVal).href),p.test(h)||!h||e.attr("target")||a.isDefaultPrevented()||j.$$parseLinkUrl(h,i)&&(a.preventDefault(),j.absUrl()!=d.url()&&(c.$apply(),g.angular["ff-684208-preventDefault"]=!0))}}),Mb(j.absUrl())!=Mb(n)&&d.url(j.absUrl(),!0);var q=!0;return d.onUrlChange(function(a,b){return t(Kb(o,a))?void(g.location.href=a):(c.$evalAsync(function(){var d,e=j.absUrl(),f=j.$$state;a=Mb(a),j.$$parse(a),j.$$state=b,d=c.$broadcast("$locationChangeStart",a,e,b,f).defaultPrevented,j.absUrl()===a&&(d?(j.$$parse(e),j.$$state=f,h(e,!1,f)):(q=!1,i(e,f)))}),void(c.$$phase||c.$digest()))}),c.$watch(function(){var a=Mb(d.url()),b=Mb(j.absUrl()),f=d.state(),g=j.$$replace,k=a!==b||j.$$html5&&e.history&&f!==j.$$state;(q||k)&&(q=!1,c.$evalAsync(function(){var b=j.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,j.$$state,f).defaultPrevented;j.absUrl()===b&&(d?(j.$$parse(a),j.$$state=f):(k&&h(b,g,f===j.$$state?null:j.$$state),i(a,f)))})),j.$$replace=!1}),j}]}function Vb(){var a=!0,b=this;this.debugEnabled=function(b){return u(b)?(a=b,this):a},this.$get=["$window",function(c){function d(a){return a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line)),a}function e(a){var b=c.console||{},e=b[a]||b.log||p,g=!1;try{g=!!e.apply}catch(h){}return g?function(){var a=[];return f(arguments,function(b){a.push(d(b))}),e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,arguments)}}()}}]}function Wb(a,b){if("__defineGetter__"===a||"__defineSetter__"===a||"__lookupGetter__"===a||"__lookupSetter__"===a||"__proto__"===a)throw Ye("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",b);return a}function Xb(a,b){if(a+="",!x(a))throw Ye("iseccst","Cannot convert object to primitive value! Expression: {0}",b);return a}function Yb(a,b){if(a){if(a.constructor===a)throw Ye("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",b);if(a.window===a)throw Ye("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",b);if(a.children&&(a.nodeName||a.prop&&a.attr&&a.find))throw Ye("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",b);if(a===Object)throw Ye("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",b)}return a}function Zb(a,b){if(a){if(a.constructor===a)throw Ye("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",b);if(a===Ze||a===$e||a===_e)throw Ye("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",b)}}function $b(a,b){if(a&&(a===0..constructor||a===(!1).constructor||a==="".constructor||a==={}.constructor||a===[].constructor||a===Function.constructor))throw Ye("isecaf","Assigning to a constructor is disallowed! Expression: {0}",b)}function _b(a,b){return"undefined"!=typeof a?a:b}function ac(a,b){return"undefined"==typeof a?b:"undefined"==typeof b?a:a+b}function bc(a,b){var c=a(b);return!c.$stateful}function cc(a,b){var c,d;switch(a.type){case df.Program:c=!0,f(a.body,function(a){cc(a.expression,b),c=c&&a.expression.constant}),a.constant=c;break;case df.Literal:a.constant=!0,a.toWatch=[];break;case df.UnaryExpression:cc(a.argument,b),a.constant=a.argument.constant,a.toWatch=a.argument.toWatch;break;case df.BinaryExpression:cc(a.left,b),cc(a.right,b),a.constant=a.left.constant&&a.right.constant,a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case df.LogicalExpression:cc(a.left,b),cc(a.right,b),a.constant=a.left.constant&&a.right.constant,a.toWatch=a.constant?[]:[a];break;case df.ConditionalExpression:cc(a.test,b),cc(a.alternate,b),cc(a.consequent,b),a.constant=a.test.constant&&a.alternate.constant&&a.consequent.constant,a.toWatch=a.constant?[]:[a];break;case df.Identifier:a.constant=!1,a.toWatch=[a];break;case df.MemberExpression:cc(a.object,b),a.computed&&cc(a.property,b),a.constant=a.object.constant&&(!a.computed||a.property.constant),a.toWatch=[a];break;case df.CallExpression:c=a.filter?bc(b,a.callee.name):!1,d=[],f(a.arguments,function(a){cc(a,b),c=c&&a.constant,a.constant||d.push.apply(d,a.toWatch)}),a.constant=c,a.toWatch=a.filter&&bc(b,a.callee.name)?d:[a];break;case df.AssignmentExpression:cc(a.left,b),cc(a.right,b),a.constant=a.left.constant&&a.right.constant,a.toWatch=[a];break;case df.ArrayExpression:c=!0,d=[],f(a.elements,function(a){cc(a,b),c=c&&a.constant,a.constant||d.push.apply(d,a.toWatch)}),a.constant=c,a.toWatch=d;break;case df.ObjectExpression:c=!0,d=[],f(a.properties,function(a){cc(a.value,b),c=c&&a.value.constant,a.value.constant||d.push.apply(d,a.value.toWatch)}),a.constant=c,a.toWatch=d;break;case df.ThisExpression:a.constant=!1,a.toWatch=[]}}function dc(a){if(1==a.length){var b=a[0].expression,d=b.toWatch;return 1!==d.length?d:d[0]!==b?d:c}}function ec(a){return a.type===df.Identifier||a.type===df.MemberExpression}function fc(a){return 1===a.body.length&&ec(a.body[0].expression)?{type:df.AssignmentExpression,left:a.body[0].expression,right:{type:df.NGValueParameter},operator:"="}:void 0}function gc(a){return 0===a.body.length||1===a.body.length&&(a.body[0].expression.type===df.Literal||a.body[0].expression.type===df.ArrayExpression||a.body[0].expression.type===df.ObjectExpression)}function hc(a){return a.constant}function ic(a,b){this.astBuilder=a,this.$filter=b}function jc(a,b){this.astBuilder=a,this.$filter=b}function kc(a){return"constructor"==a}function lc(a){return A(a.valueOf)?a.valueOf():ff.call(a)}function mc(){var a=qa(),b=qa();this.$get=["$filter",function(d){function e(a,b){return null==a||null==b?a===b:"object"==typeof a&&(a=lc(a),"object"==typeof a)?!1:a===b||a!==a&&b!==b}function g(a,b,d,f,g){var h,i=f.inputs;if(1===i.length){var j=e;return i=i[0],a.$watch(function(a){var b=i(a);return e(b,j)||(h=f(a,c,c,[b]),j=b&&lc(b)),h},b,d,g)}for(var k=[],l=[],m=0,n=i.length;n>m;m++)k[m]=e,l[m]=null;return a.$watch(function(a){for(var b=!1,d=0,g=i.length;g>d;d++){var j=i[d](a);(b||(b=!e(j,k[d])))&&(l[d]=j,k[d]=j&&lc(j))}return b&&(h=f(a,c,c,l)),h},b,d,g)}function h(a,b,c,d){var e,f;return e=a.$watch(function(a){return d(a)},function(a,c,d){f=a,A(b)&&b.apply(this,arguments),u(a)&&d.$$postDigest(function(){u(f)&&e()})},c)}function i(a,b,c,d){function e(a){var b=!0;return f(a,function(a){u(a)||(b=!1)}),b}var g,h;return g=a.$watch(function(a){return d(a)},function(a,c,d){h=a,A(b)&&b.call(this,a,c,d),e(a)&&d.$$postDigest(function(){e(h)&&g()})},c)}function j(a,b,c,d){var e;return e=a.$watch(function(a){return d(a)},function(a,c,d){A(b)&&b.apply(this,arguments),e()},c)}function k(a,b){if(!b)return a;var c=a.$$watchDelegate,d=!1,e=c!==i&&c!==h,f=e?function(c,e,f,g){var h=d&&g?g[0]:a(c,e,f,g);return b(h,c,e)}:function(c,d,e,f){var g=a(c,d,e,f),h=b(g,c,d);return u(g)?h:g};return a.$$watchDelegate&&a.$$watchDelegate!==g?f.$$watchDelegate=a.$$watchDelegate:b.$stateful||(f.$$watchDelegate=g,d=!a.inputs,f.inputs=a.inputs?a.inputs:[a]),f}var l=Sd().noUnsafeEval,m={csp:l,expensiveChecks:!1},n={csp:l,expensiveChecks:!0};return function(c,e,f){var l,o,q;switch(typeof c){case"string":c=c.trim(),q=c;var r=f?b:a;if(l=r[q],!l){":"===c.charAt(0)&&":"===c.charAt(1)&&(o=!0,c=c.substring(2));var s=f?n:m,t=new cf(s),u=new ef(t,d,s);l=u.parse(c),l.constant?l.$$watchDelegate=j:o?l.$$watchDelegate=l.literal?i:h:l.inputs&&(l.$$watchDelegate=g),r[q]=l}return k(l,e);case"function":return k(c,e);default:return p}}}]}function nc(){this.$get=["$rootScope","$exceptionHandler",function(a,b){return pc(function(b){a.$evalAsync(b)},b)}]}function oc(){this.$get=["$browser","$exceptionHandler",function(a,b){return pc(function(b){a.defer(b)},b)}]}function pc(a,b){function e(a,b,c){function d(b){return function(c){e||(e=!0,b.call(a,c))}}var e=!1;return[d(b),d(c)]}function g(){this.$$state={status:0}}function h(a,b){return function(c){b.call(a,c)}}function i(a){var d,e,f;f=a.pending,a.processScheduled=!1,a.pending=c;for(var g=0,h=f.length;h>g;++g){e=f[g][0],d=f[g][a.status];try{A(d)?e.resolve(d(a.value)):1===a.status?e.resolve(a.value):e.reject(a.value)}catch(i){e.reject(i),b(i)}}}function j(b){!b.processScheduled&&b.pending&&(b.processScheduled=!0,a(function(){i(b)}))}function k(){this.promise=new g,this.resolve=h(this,this.resolve),this.reject=h(this,this.reject),this.notify=h(this,this.notify)}function m(a){var b=new k,c=0,d=Od(a)?[]:{};return f(a,function(a,e){c++,s(a).then(function(a){d.hasOwnProperty(e)||(d[e]=a,--c||b.resolve(d))},function(a){d.hasOwnProperty(e)||b.reject(a)})}),0===c&&b.resolve(d),b.promise}var n=d("$q",TypeError),o=function(){return new k};l(g.prototype,{then:function(a,b,c){if(t(a)&&t(b)&&t(c))return this;var d=new k;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([d,a,b,c]),this.$$state.status>0&&j(this.$$state),d.promise},"catch":function(a){return this.then(null,a)},"finally":function(a,b){return this.then(function(b){return r(b,!0,a)},function(b){return r(b,!1,a)},b)}}),l(k.prototype,{resolve:function(a){this.promise.$$state.status||(a===this.promise?this.$$reject(n("qcycle","Expected promise to be resolved with value other than itself '{0}'",a)):this.$$resolve(a))},$$resolve:function(a){var c,d;d=e(this,this.$$resolve,this.$$reject);try{(v(a)||A(a))&&(c=a&&a.then),A(c)?(this.promise.$$state.status=-1,c.call(a,d[0],d[1],this.notify)):(this.promise.$$state.value=a,this.promise.$$state.status=1,j(this.promise.$$state))}catch(f){d[1](f),b(f)}},reject:function(a){this.promise.$$state.status||this.$$reject(a)},$$reject:function(a){this.promise.$$state.value=a,this.promise.$$state.status=2,j(this.promise.$$state)},notify:function(c){var d=this.promise.$$state.pending;this.promise.$$state.status<=0&&d&&d.length&&a(function(){for(var a,e,f=0,g=d.length;g>f;f++){e=d[f][0],a=d[f][3];try{e.notify(A(a)?a(c):c)}catch(h){b(h)}}})}});var p=function(a){var b=new k;return b.reject(a),b.promise},q=function(a,b){var c=new k;return b?c.resolve(a):c.reject(a),c.promise},r=function(a,b,c){var d=null;try{A(c)&&(d=c())}catch(e){return q(e,!1)}return I(d)?d.then(function(){return q(a,b)},function(a){return q(a,!1)}):q(a,b)},s=function(a,b,c,d){var e=new k;return e.resolve(a),e.promise.then(b,c,d)},u=s,w=function x(a){function b(a){d.resolve(a)}function c(a){d.reject(a)}if(!A(a))throw n("norslvr","Expected resolverFn, got '{0}'",a);if(!(this instanceof x))return new x(a);var d=new k;return a(b,c),d.promise};return w.defer=o,w.reject=p,w.when=s,w.resolve=u,w.all=m,w}function qc(){this.$get=["$window","$timeout",function(a,b){var c=a.requestAnimationFrame||a.webkitRequestAnimationFrame,d=a.cancelAnimationFrame||a.webkitCancelAnimationFrame||a.webkitCancelRequestAnimationFrame,e=!!c,f=e?function(a){var b=c(a);return function(){d(b)}}:function(a){var c=b(a,16.66,!1);return function(){b.cancel(c)}};return f.supported=e,f}]}function rc(){function a(a){function b(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=i(),this.$$ChildScope=null}return b.prototype=a,b}var b=10,c=d("$rootScope"),g=null,h=null;this.digestTtl=function(a){return arguments.length&&(b=a),b},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(d,j,k,l){function m(a){a.currentScope.$$destroyed=!0}function n(a){9===Bd&&(a.$$childHead&&n(a.$$childHead),a.$$nextSibling&&n(a.$$nextSibling)),a.$parent=a.$$nextSibling=a.$$prevSibling=a.$$childHead=a.$$childTail=a.$root=a.$$watchers=null}function o(){this.$id=i(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function q(a){if(z.$$phase)throw c("inprog","{0} already in progress",z.$$phase);z.$$phase=a}function r(){z.$$phase=null}function s(a,b){do a.$$watchersCount+=b;while(a=a.$parent)}function u(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function w(){}function x(){for(;D.length;)try{D.shift()()}catch(a){j(a)}h=null}function y(){null===h&&(h=l.defer(function(){z.$apply(x)}))}o.prototype={constructor:o,$new:function(b,c){var d;return c=c||this,b?(d=new o,d.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=a(this)),d=new this.$$ChildScope),d.$parent=c,d.$$prevSibling=c.$$childTail,c.$$childHead?(c.$$childTail.$$nextSibling=d,c.$$childTail=d):c.$$childHead=c.$$childTail=d,(b||c!=this)&&d.$on("$destroy",m),d},$watch:function(a,b,c,d){var e=k(a);if(e.$$watchDelegate)return e.$$watchDelegate(this,b,c,e,a);var f=this,h=f.$$watchers,i={fn:b,last:w,get:e,exp:d||a,eq:!!c};return g=null,A(b)||(i.fn=p),h||(h=f.$$watchers=[]),h.unshift(i),s(this,1),function(){N(h,i)>=0&&s(f,-1),g=null}},$watchGroup:function(a,b){function c(){i=!1,j?(j=!1,b(e,e,h)):b(e,d,h)}var d=new Array(a.length),e=new Array(a.length),g=[],h=this,i=!1,j=!0;if(!a.length){var k=!0;return h.$evalAsync(function(){k&&b(e,e,h)}),function(){k=!1}}return 1===a.length?this.$watch(a[0],function(a,c,f){e[0]=a,d[0]=c,b(e,a===c?e:d,f)}):(f(a,function(a,b){var f=h.$watch(a,function(a,f){e[b]=a,d[b]=f,i||(i=!0,h.$evalAsync(c))});g.push(f)}),function(){for(;g.length;)g.shift()()})},$watchCollection:function(a,b){function c(a){f=a;var b,c,d,h,i;if(!t(f)){if(v(f))if(e(f)){g!==n&&(g=n,q=g.length=0,l++),b=f.length,q!==b&&(l++,g.length=q=b);for(var j=0;b>j;j++)i=g[j],h=f[j],d=i!==i&&h!==h,d||i===h||(l++,g[j]=h)}else{g!==o&&(g=o={},q=0,l++),b=0;for(c in f)xd.call(f,c)&&(b++,h=f[c],i=g[c],c in g?(d=i!==i&&h!==h,d||i===h||(l++,g[c]=h)):(q++,g[c]=h,l++));if(q>b){l++;for(c in g)xd.call(f,c)||(q--,delete g[c])}}else g!==f&&(g=f,l++);return l}}function d(){if(p?(p=!1,b(f,f,i)):b(f,h,i),j)if(v(f))if(e(f)){h=new Array(f.length);for(var a=0;a<f.length;a++)h[a]=f[a]}else{h={};for(var c in f)xd.call(f,c)&&(h[c]=f[c])}else h=f}c.$stateful=!0;var f,g,h,i=this,j=b.length>1,l=0,m=k(a,c),n=[],o={},p=!0,q=0;return this.$watch(m,d)},$digest:function(){var a,d,e,f,i,k,m,n,o,p,s=b,t=this,u=[];q("$digest"),l.$$checkUrlChange(),this===z&&null!==h&&(l.defer.cancel(h),x()),g=null;do{for(k=!1,n=t;B.length;){try{p=B.shift(),p.scope.$eval(p.expression,p.locals)}catch(v){j(v)}g=null}a:do{if(f=n.$$watchers)for(i=f.length;i--;)try{if(a=f[i])if((d=a.get(n))===(e=a.last)||(a.eq?Q(d,e):"number"==typeof d&&"number"==typeof e&&isNaN(d)&&isNaN(e))){if(a===g){k=!1;break a}}else k=!0,g=a,a.last=a.eq?O(d,null):d,a.fn(d,e===w?d:e,n),5>s&&(o=4-s,u[o]||(u[o]=[]),u[o].push({msg:A(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:d,oldVal:e}))}catch(v){j(v)}if(!(m=n.$$watchersCount&&n.$$childHead||n!==t&&n.$$nextSibling))for(;n!==t&&!(m=n.$$nextSibling);)n=n.$parent}while(n=m);if((k||B.length)&&!s--)throw r(),c("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",b,u)}while(k||B.length);for(r();C.length;)try{C.shift()()}catch(v){j(v)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===z&&l.$$applicationDestroyed(),s(this,-this.$$watchersCount);for(var b in this.$$listenerCount)u(this,this.$$listenerCount[b],b);a&&a.$$childHead==this&&(a.$$childHead=this.$$nextSibling),a&&a.$$childTail==this&&(a.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=p,this.$on=this.$watch=this.$watchGroup=function(){return p},this.$$listeners={},this.$$nextSibling=null,n(this)}},$eval:function(a,b){return k(a)(this,b)},$evalAsync:function(a,b){z.$$phase||B.length||l.defer(function(){B.length&&z.$digest()}),B.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){C.push(a)},$apply:function(a){try{q("$apply");try{return this.$eval(a)}finally{r()}}catch(b){j(b)}finally{try{z.$digest()}catch(b){throw j(b),b}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&D.push(b),y()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]),c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,u(e,1,a))}},$emit:function(a,b){var c,d,e,f=[],g=this,h=!1,i={name:a,targetScope:g,stopPropagation:function(){h=!0},preventDefault:function(){i.defaultPrevented=!0},defaultPrevented:!1},k=R([i],arguments,1);do{for(c=g.$$listeners[a]||f,i.currentScope=g,d=0,e=c.length;e>d;d++)if(c[d])try{c[d].apply(null,k)}catch(l){j(l)}else c.splice(d,1),d--,e--;if(h)return i.currentScope=null,i;g=g.$parent}while(g);return i.currentScope=null,i},$broadcast:function(a,b){var c=this,d=c,e=c,f={name:a,targetScope:c,preventDefault:function(){f.defaultPrevented=!0},defaultPrevented:!1};if(!c.$$listenerCount[a])return f;for(var g,h,i,k=R([f],arguments,1);d=e;){for(f.currentScope=d,g=d.$$listeners[a]||[],h=0,i=g.length;i>h;h++)if(g[h])try{g[h].apply(null,k)}catch(l){j(l)}else g.splice(h,1),h--,i--;if(!(e=d.$$listenerCount[a]&&d.$$childHead||d!==c&&d.$$nextSibling))for(;d!==c&&!(e=d.$$nextSibling);)d=d.$parent}return f.currentScope=null,f}};var z=new o,B=z.$$asyncQueue=[],C=z.$$postDigestQueue=[],D=z.$$applyAsyncQueue=[];return z}]}function sc(){var a=/^\s*(https?|ftp|mailto|tel|file):/,b=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(b){return u(b)?(a=b,this):a},this.imgSrcSanitizationWhitelist=function(a){return u(a)?(b=a,this):b},this.$get=function(){return function(c,d){var e,f=d?b:a;return e=Bc(c).href,""===e||e.match(f)?c:"unsafe:"+e}}}function tc(a){if("self"===a)return a;if(x(a)){if(a.indexOf("***")>-1)throw gf("iwcard","Illegal sequence *** in string matcher.  String: {0}",a);return a=Rd(a).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+a+"$")}if(B(a))return new RegExp("^"+a.source+"$");throw gf("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function uc(a){var b=[];return u(a)&&f(a,function(a){b.push(tc(a))}),b}function vc(){this.SCE_CONTEXTS=hf;var a=["self"],b=[];this.resourceUrlWhitelist=function(b){return arguments.length&&(a=uc(b)),a},this.resourceUrlBlacklist=function(a){return arguments.length&&(b=uc(a)),b},this.$get=["$injector",function(c){function d(a,b){return"self"===a?Cc(b):!!a.exec(b.href)}function e(c){var e,f,g=Bc(c.toString()),h=!1;for(e=0,f=a.length;f>e;e++)if(d(a[e],g)){h=!0;break}if(h)for(e=0,f=b.length;f>e;e++)if(d(b[e],g)){h=!1;break}return h}function f(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};return a&&(b.prototype=new a),b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},b}function g(a,b){var c=l.hasOwnProperty(a)?l[a]:null;if(!c)throw gf("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",a,b);if(null===b||t(b)||""===b)return b;if("string"!=typeof b)throw gf("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",a);return new c(b)}function h(a){return a instanceof k?a.$$unwrapTrustedValue():a}function i(a,b){if(null===b||t(b)||""===b)return b;var c=l.hasOwnProperty(a)?l[a]:null;if(c&&b instanceof c)return b.$$unwrapTrustedValue();if(a===hf.RESOURCE_URL){if(e(b))return b;throw gf("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}",b.toString());
-}if(a===hf.HTML)return j(b);throw gf("unsafe","Attempting to use an unsafe value in a safe context.")}var j=function(a){throw gf("unsafe","Attempting to use an unsafe value in a safe context.")};c.has("$sanitize")&&(j=c.get("$sanitize"));var k=f(),l={};return l[hf.HTML]=f(k),l[hf.CSS]=f(k),l[hf.URL]=f(k),l[hf.JS]=f(k),l[hf.RESOURCE_URL]=f(l[hf.URL]),{trustAs:g,getTrusted:i,valueOf:h}}]}function wc(){var a=!0;this.enabled=function(b){return arguments.length&&(a=!!b),a},this.$get=["$parse","$sceDelegate",function(b,c){if(a&&8>Bd)throw gf("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode.  You can fix this by adding the text <!doctype html> to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.");var d=P(hf);d.isEnabled=function(){return a},d.trustAs=c.trustAs,d.getTrusted=c.getTrusted,d.valueOf=c.valueOf,a||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=q),d.parseAs=function(a,c){var e=b(c);return e.literal&&e.constant?e:b(c,function(b){return d.getTrusted(a,b)})};var e=d.parseAs,g=d.getTrusted,h=d.trustAs;return f(hf,function(a,b){var c=wd(b);d[wa("parse_as_"+c)]=function(b){return e(a,b)},d[wa("get_trusted_"+c)]=function(b){return g(a,b)},d[wa("trust_as_"+c)]=function(b){return h(a,b)}}),d}]}function xc(){this.$get=["$window","$document",function(a,b){var c,d,e={},f=n((/android (\d+)/.exec(wd((a.navigator||{}).userAgent))||[])[1]),g=/Boxee/i.test((a.navigator||{}).userAgent),h=b[0]||{},i=/^(Moz|webkit|ms)(?=[A-Z])/,j=h.body&&h.body.style,k=!1,l=!1;if(j){for(var m in j)if(d=i.exec(m)){c=d[0],c=c.substr(0,1).toUpperCase()+c.substr(1);break}c||(c="WebkitOpacity"in j&&"webkit"),k=!!("transition"in j||c+"Transition"in j),l=!!("animation"in j||c+"Animation"in j),!f||k&&l||(k=x(j.webkitTransition),l=x(j.webkitAnimation))}return{history:!(!a.history||!a.history.pushState||4>f||g),hasEvent:function(a){if("input"===a&&11>=Bd)return!1;if(t(e[a])){var b=h.createElement("div");e[a]="on"+a in b}return e[a]},csp:Sd(),vendorPrefix:c,transitions:k,animations:l,android:f}}]}function yc(){this.$get=["$templateCache","$http","$q","$sce",function(a,b,c,d){function e(f,g){function h(a){if(!g)throw He("tpload","Failed to load template: {0} (HTTP status: {1} {2})",f,a.status,a.statusText);return c.reject(a)}e.totalPendingRequests++,x(f)&&a.get(f)||(f=d.getTrustedResourceUrl(f));var i=b.defaults&&b.defaults.transformResponse;Od(i)?i=i.filter(function(a){return a!==vb}):i===vb&&(i=null);var j={cache:a,transformResponse:i};return b.get(f,j)["finally"](function(){e.totalPendingRequests--}).then(function(b){return a.put(f,b.data),b.data},h)}return e.totalPendingRequests=0,e}]}function zc(){this.$get=["$rootScope","$browser","$location",function(a,b,c){var d={};return d.findBindings=function(a,b,c){var d=a.getElementsByClassName("ng-binding"),e=[];return f(d,function(a){var d=Ld.element(a).data("$binding");d&&f(d,function(d){if(c){var f=new RegExp("(^|\\s)"+Rd(b)+"(\\s|\\||$)");f.test(d)&&e.push(a)}else-1!=d.indexOf(b)&&e.push(a)})}),e},d.findModels=function(a,b,c){for(var d=["ng-","data-ng-","ng\\:"],e=0;e<d.length;++e){var f=c?"=":"*=",g="["+d[e]+"model"+f+'"'+b+'"]',h=a.querySelectorAll(g);if(h.length)return h}},d.getLocation=function(){return c.url()},d.setLocation=function(b){b!==c.url()&&(c.url(b),a.$digest())},d.whenStable=function(a){b.notifyWhenNoOutstandingRequests(a)},d}]}function Ac(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(a,b,c,d,e){function f(f,h,i){A(f)||(i=h,h=f,f=p);var j,k=S(arguments,3),l=u(i)&&!i,m=(l?d:c).defer(),n=m.promise;return j=b.defer(function(){try{m.resolve(f.apply(null,k))}catch(b){m.reject(b),e(b)}finally{delete g[n.$$timeoutId]}l||a.$apply()},h),n.$$timeoutId=j,g[j]=m,n}var g={};return f.cancel=function(a){return a&&a.$$timeoutId in g?(g[a.$$timeoutId].reject("canceled"),delete g[a.$$timeoutId],b.defer.cancel(a.$$timeoutId)):!1},f}]}function Bc(a){var b=a;return Bd&&(jf.setAttribute("href",b),b=jf.href),jf.setAttribute("href",b),{href:jf.href,protocol:jf.protocol?jf.protocol.replace(/:$/,""):"",host:jf.host,search:jf.search?jf.search.replace(/^\?/,""):"",hash:jf.hash?jf.hash.replace(/^#/,""):"",hostname:jf.hostname,port:jf.port,pathname:"/"===jf.pathname.charAt(0)?jf.pathname:"/"+jf.pathname}}function Cc(a){var b=x(a)?Bc(a):a;return b.protocol===kf.protocol&&b.host===kf.host}function Dc(){this.$get=r(a)}function Ec(a){function b(a){try{return decodeURIComponent(a)}catch(b){return a}}var c=a[0]||{},d={},e="";return function(){var a,f,g,h,i,j=c.cookie||"";if(j!==e)for(e=j,a=e.split("; "),d={},g=0;g<a.length;g++)f=a[g],h=f.indexOf("="),h>0&&(i=b(f.substring(0,h)),t(d[i])&&(d[i]=b(f.substring(h+1))));return d}}function Fc(){this.$get=Ec}function Gc(a){function b(d,e){if(v(d)){var g={};return f(d,function(a,c){g[c]=b(c,a)}),g}return a.factory(d+c,e)}var c="Filter";this.register=b,this.$get=["$injector",function(a){return function(b){return a.get(b+c)}}],b("currency",Lc),b("date",Yc),b("filter",Hc),b("json",Zc),b("limitTo",$c),b("lowercase",pf),b("number",Mc),b("orderBy",_c),b("uppercase",qf)}function Hc(){return function(a,b,c){if(!e(a)){if(null==a)return a;throw d("filter")("notarray","Expected array but received: {0}",a)}var f,g,h=Kc(b);switch(h){case"function":f=b;break;case"boolean":case"null":case"number":case"string":g=!0;case"object":f=Ic(b,c,g);break;default:return a}return Array.prototype.filter.call(a,f)}}function Ic(a,b,c){var d,e=v(a)&&"$"in a;return b===!0?b=Q:A(b)||(b=function(a,b){return t(a)?!1:null===a||null===b?a===b:v(b)||v(a)&&!s(a)?!1:(a=wd(""+a),b=wd(""+b),-1!==a.indexOf(b))}),d=function(d){return e&&!v(d)?Jc(d,a.$,b,!1):Jc(d,a,b,c)}}function Jc(a,b,c,d,e){var f=Kc(a),g=Kc(b);if("string"===g&&"!"===b.charAt(0))return!Jc(a,b.substring(1),c,d);if(Od(a))return a.some(function(a){return Jc(a,b,c,d)});switch(f){case"object":var h;if(d){for(h in a)if("$"!==h.charAt(0)&&Jc(a[h],b,c,!0))return!0;return e?!1:Jc(a,b,c,!1)}if("object"===g){for(h in b){var i=b[h];if(!A(i)&&!t(i)){var j="$"===h,k=j?a:a[h];if(!Jc(k,i,c,j,j))return!1}}return!0}return c(a,b);case"function":return!1;default:return c(a,b)}}function Kc(a){return null===a?"null":typeof a}function Lc(a){var b=a.NUMBER_FORMATS;return function(a,c,d){return t(c)&&(c=b.CURRENCY_SYM),t(d)&&(d=b.PATTERNS[1].maxFrac),null==a?a:Nc(a,b.PATTERNS[1],b.GROUP_SEP,b.DECIMAL_SEP,d).replace(/\u00A4/g,c)}}function Mc(a){var b=a.NUMBER_FORMATS;return function(a,c){return null==a?a:Nc(a,b.PATTERNS[0],b.GROUP_SEP,b.DECIMAL_SEP,c)}}function Nc(a,b,c,d,e){if(v(a))return"";var f=0>a;a=Math.abs(a);var g=a===1/0;if(!g&&!isFinite(a))return"";var h=a+"",i="",j=!1,k=[];if(g&&(i="∞"),!g&&-1!==h.indexOf("e")){var l=h.match(/([\d\.]+)e(-?)(\d+)/);l&&"-"==l[2]&&l[3]>e+1?a=0:(i=h,j=!0)}if(g||j)e>0&&1>a&&(i=a.toFixed(e),a=parseFloat(i),i=i.replace(lf,d));else{var m=(h.split(lf)[1]||"").length;t(e)&&(e=Math.min(Math.max(b.minFrac,m),b.maxFrac)),a=+(Math.round(+(a.toString()+"e"+e)).toString()+"e"+-e);var n=(""+a).split(lf),o=n[0];n=n[1]||"";var p,q=0,r=b.lgSize,s=b.gSize;if(o.length>=r+s)for(q=o.length-r,p=0;q>p;p++)(q-p)%s===0&&0!==p&&(i+=c),i+=o.charAt(p);for(p=q;p<o.length;p++)(o.length-p)%r===0&&0!==p&&(i+=c),i+=o.charAt(p);for(;n.length<e;)n+="0";e&&"0"!==e&&(i+=d+n.substr(0,e))}return 0===a&&(f=!1),k.push(f?b.negPre:b.posPre,i,f?b.negSuf:b.posSuf),k.join("")}function Oc(a,b,c){var d="";for(0>a&&(d="-",a=-a),a=""+a;a.length<b;)a="0"+a;return c&&(a=a.substr(a.length-b)),d+a}function Pc(a,b,c,d){return c=c||0,function(e){var f=e["get"+a]();return(c>0||f>-c)&&(f+=c),0===f&&-12==c&&(f=12),Oc(f,b,d)}}function Qc(a,b){return function(c,d){var e=c["get"+a](),f=yd(b?"SHORT"+a:a);return d[f][e]}}function Rc(a,b,c){var d=-1*c,e=d>=0?"+":"";return e+=Oc(Math[d>0?"floor":"ceil"](d/60),2)+Oc(Math.abs(d%60),2)}function Sc(a){var b=new Date(a,0,1).getDay();return new Date(a,0,(4>=b?5:12)-b)}function Tc(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))}function Uc(a){return function(b){var c=Sc(b.getFullYear()),d=Tc(b),e=+d-+c,f=1+Math.round(e/6048e5);return Oc(f,a)}}function Vc(a,b){return a.getHours()<12?b.AMPMS[0]:b.AMPMS[1]}function Wc(a,b){return a.getFullYear()<=0?b.ERAS[0]:b.ERAS[1]}function Xc(a,b){return a.getFullYear()<=0?b.ERANAMES[0]:b.ERANAMES[1]}function Yc(a){function b(a){var b;if(b=a.match(c)){var d=new Date(0),e=0,f=0,g=b[8]?d.setUTCFullYear:d.setFullYear,h=b[8]?d.setUTCHours:d.setHours;b[9]&&(e=n(b[9]+b[10]),f=n(b[9]+b[11])),g.call(d,n(b[1]),n(b[2])-1,n(b[3]));var i=n(b[4]||0)-e,j=n(b[5]||0)-f,k=n(b[6]||0),l=Math.round(1e3*parseFloat("0."+(b[7]||0)));return h.call(d,i,j,k,l),d}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,d,e){var g,h,i="",j=[];if(d=d||"mediumDate",d=a.DATETIME_FORMATS[d]||d,x(c)&&(c=of.test(c)?n(c):b(c)),y(c)&&(c=new Date(c)),!z(c)||!isFinite(c.getTime()))return c;for(;d;)h=nf.exec(d),h?(j=R(j,h,1),d=j.pop()):(j.push(d),d=null);var k=c.getTimezoneOffset();return e&&(k=X(e,c.getTimezoneOffset()),c=Z(c,e,!0)),f(j,function(b){g=mf[b],i+=g?g(c,a.DATETIME_FORMATS,k):b.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),i}}function Zc(){return function(a,b){return t(b)&&(b=2),V(a,b)}}function $c(){return function(a,b,c){return b=Math.abs(Number(b))===1/0?Number(b):n(b),isNaN(b)?a:(y(a)&&(a=a.toString()),Od(a)||x(a)?(c=!c||isNaN(c)?0:n(c),c=0>c?Math.max(0,a.length+c):c,b>=0?a.slice(c,c+b):0===c?a.slice(b,a.length):a.slice(Math.max(0,c+b),c)):a)}}function _c(a){function b(b,c){return c=c?-1:1,b.map(function(b){var d=1,e=q;if(A(b))e=b;else if(x(b)&&(("+"==b.charAt(0)||"-"==b.charAt(0))&&(d="-"==b.charAt(0)?-1:1,b=b.substring(1)),""!==b&&(e=a(b),e.constant))){var f=e();e=function(a){return a[f]}}return{get:e,descending:d*c}})}function c(a){switch(typeof a){case"number":case"boolean":case"string":return!0;default:return!1}}function d(a,b){return"function"==typeof a.valueOf&&(a=a.valueOf(),c(a))?a:s(a)&&(a=a.toString(),c(a))?a:b}function f(a,b){var c=typeof a;return null===a?(c="string",a="null"):"string"===c?a=a.toLowerCase():"object"===c&&(a=d(a,b)),{value:a,type:c}}function g(a,b){var c=0;return a.type===b.type?a.value!==b.value&&(c=a.value<b.value?-1:1):c=a.type<b.type?-1:1,c}return function(a,c,d){function h(a,b){return{value:a,predicateValues:j.map(function(c){return f(c.get(a),b)})}}function i(a,b){for(var c=0,d=0,e=j.length;e>d&&!(c=g(a.predicateValues[d],b.predicateValues[d])*j[d].descending);++d);return c}if(!e(a))return a;Od(c)||(c=[c]),0===c.length&&(c=["+"]);var j=b(c,d);j.push({get:function(){return{}},descending:d?-1:1});var k=Array.prototype.map.call(a,h);return k.sort(i),a=k.map(function(a){return a.value})}}function ad(a){return A(a)&&(a={link:a}),a.restrict=a.restrict||"AC",r(a)}function bd(a,b){a.$name=b}function cd(a,b,d,e,g){var h=this,i=[];h.$error={},h.$$success={},h.$pending=c,h.$name=g(b.name||b.ngForm||"")(d),h.$dirty=!1,h.$pristine=!0,h.$valid=!0,h.$invalid=!1,h.$submitted=!1,h.$$parentForm=tf,h.$rollbackViewValue=function(){f(i,function(a){a.$rollbackViewValue()})},h.$commitViewValue=function(){f(i,function(a){a.$commitViewValue()})},h.$addControl=function(a){na(a.$name,"input"),i.push(a),a.$name&&(h[a.$name]=a),a.$$parentForm=h},h.$$renameControl=function(a,b){var c=a.$name;h[c]===a&&delete h[c],h[b]=a,a.$name=b},h.$removeControl=function(a){a.$name&&h[a.$name]===a&&delete h[a.$name],f(h.$pending,function(b,c){h.$setValidity(c,null,a)}),f(h.$error,function(b,c){h.$setValidity(c,null,a)}),f(h.$$success,function(b,c){h.$setValidity(c,null,a)}),N(i,a),a.$$parentForm=tf},rd({ctrl:this,$element:a,set:function(a,b,c){var d=a[b];if(d){var e=d.indexOf(c);-1===e&&d.push(c)}else a[b]=[c]},unset:function(a,b,c){var d=a[b];d&&(N(d,c),0===d.length&&delete a[b])},$animate:e}),h.$setDirty=function(){e.removeClass(a,bg),e.addClass(a,cg),h.$dirty=!0,h.$pristine=!1,h.$$parentForm.$setDirty()},h.$setPristine=function(){e.setClass(a,bg,cg+" "+uf),h.$dirty=!1,h.$pristine=!0,h.$submitted=!1,f(i,function(a){a.$setPristine()})},h.$setUntouched=function(){f(i,function(a){a.$setUntouched()})},h.$setSubmitted=function(){e.addClass(a,uf),h.$submitted=!0,h.$$parentForm.$setSubmitted()}}function dd(a){a.$formatters.push(function(b){return a.$isEmpty(b)?b:b.toString()})}function ed(a,b,c,d,e,f){fd(a,b,c,d,e,f),dd(d)}function fd(a,b,c,d,e,f){var g=wd(b[0].type);if(!e.android){var h=!1;b.on("compositionstart",function(a){h=!0}),b.on("compositionend",function(){h=!1,i()})}var i=function(a){if(j&&(f.defer.cancel(j),j=null),!h){var e=b.val(),i=a&&a.type;"password"===g||c.ngTrim&&"false"===c.ngTrim||(e=Qd(e)),(d.$viewValue!==e||""===e&&d.$$hasNativeValidators)&&d.$setViewValue(e,i)}};if(e.hasEvent("input"))b.on("input",i);else{var j,k=function(a,b,c){j||(j=f.defer(function(){j=null,b&&b.value===c||i(a)}))};b.on("keydown",function(a){var b=a.keyCode;91===b||b>15&&19>b||b>=37&&40>=b||k(a,this,this.value)}),e.hasEvent("paste")&&b.on("paste cut",k)}b.on("change",i),d.$render=function(){var a=d.$isEmpty(d.$viewValue)?"":d.$viewValue;b.val()!==a&&b.val(a)}}function gd(a,b){if(z(a))return a;if(x(a)){Ef.lastIndex=0;var c=Ef.exec(a);if(c){var d=+c[1],e=+c[2],f=0,g=0,h=0,i=0,j=Sc(d),k=7*(e-1);return b&&(f=b.getHours(),g=b.getMinutes(),h=b.getSeconds(),i=b.getMilliseconds()),new Date(d,0,j.getDate()+k,f,g,h,i)}}return NaN}function hd(a,b){return function(c,d){var e,g;if(z(c))return c;if(x(c)){if('"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1)),yf.test(c))return new Date(c);if(a.lastIndex=0,e=a.exec(c))return e.shift(),g=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},f(e,function(a,c){c<b.length&&(g[b[c]]=+a)}),new Date(g.yyyy,g.MM-1,g.dd,g.HH,g.mm,g.ss||0,1e3*g.sss||0)}return NaN}}function id(a,b,d,e){return function(f,g,h,i,j,k,l){function m(a){return a&&!(a.getTime&&a.getTime()!==a.getTime())}function n(a){return u(a)&&!z(a)?d(a)||c:a}jd(f,g,h,i),fd(f,g,h,i,j,k);var o,p=i&&i.$options&&i.$options.timezone;if(i.$$parserName=a,i.$parsers.push(function(a){if(i.$isEmpty(a))return null;if(b.test(a)){var e=d(a,o);return p&&(e=Z(e,p)),e}return c}),i.$formatters.push(function(a){if(a&&!z(a))throw gg("datefmt","Expected `{0}` to be a date",a);return m(a)?(o=a,o&&p&&(o=Z(o,p,!0)),l("date")(a,e,p)):(o=null,"")}),u(h.min)||h.ngMin){var q;i.$validators.min=function(a){return!m(a)||t(q)||d(a)>=q},h.$observe("min",function(a){q=n(a),i.$validate()})}if(u(h.max)||h.ngMax){var r;i.$validators.max=function(a){return!m(a)||t(r)||d(a)<=r},h.$observe("max",function(a){r=n(a),i.$validate()})}}}function jd(a,b,d,e){var f=b[0],g=e.$$hasNativeValidators=v(f.validity);g&&e.$parsers.push(function(a){var d=b.prop(vd)||{};return d.badInput&&!d.typeMismatch?c:a})}function kd(a,b,d,e,f,g){if(jd(a,b,d,e),fd(a,b,d,e,f,g),e.$$parserName="number",e.$parsers.push(function(a){return e.$isEmpty(a)?null:Bf.test(a)?parseFloat(a):c}),e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!y(a))throw gg("numfmt","Expected `{0}` to be a number",a);a=a.toString()}return a}),u(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)||t(h)||a>=h},d.$observe("min",function(a){u(a)&&!y(a)&&(a=parseFloat(a,10)),h=y(a)&&!isNaN(a)?a:c,e.$validate()})}if(u(d.max)||d.ngMax){var i;e.$validators.max=function(a){return e.$isEmpty(a)||t(i)||i>=a},d.$observe("max",function(a){u(a)&&!y(a)&&(a=parseFloat(a,10)),i=y(a)&&!isNaN(a)?a:c,e.$validate()})}}function ld(a,b,c,d,e,f){fd(a,b,c,d,e,f),dd(d),d.$$parserName="url",d.$validators.url=function(a,b){var c=a||b;return d.$isEmpty(c)||zf.test(c)}}function md(a,b,c,d,e,f){fd(a,b,c,d,e,f),dd(d),d.$$parserName="email",d.$validators.email=function(a,b){var c=a||b;return d.$isEmpty(c)||Af.test(c)}}function nd(a,b,c,d){t(c.name)&&b.attr("name",i());var e=function(a){b[0].checked&&d.$setViewValue(c.value,a&&a.type)};b.on("click",e),d.$render=function(){var a=c.value;b[0].checked=a==d.$viewValue},c.$observe("value",d.$render)}function od(a,b,c,d,e){var f;if(u(d)){if(f=a(d),!f.constant)throw gg("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",c,d);return f(b)}return e}function pd(a,b,c,d,e,f,g,h){var i=od(h,a,"ngTrueValue",c.ngTrueValue,!0),j=od(h,a,"ngFalseValue",c.ngFalseValue,!1),k=function(a){d.$setViewValue(b[0].checked,a&&a.type)};b.on("click",k),d.$render=function(){b[0].checked=d.$viewValue},d.$isEmpty=function(a){return a===!1},d.$formatters.push(function(a){return Q(a,i)}),d.$parsers.push(function(a){return a?i:j})}function qd(a,b){return a="ngClass"+a,["$animate",function(c){function d(a,b){var c=[];a:for(var d=0;d<a.length;d++){for(var e=a[d],f=0;f<b.length;f++)if(e==b[f])continue a;c.push(e)}return c}function e(a){var b=[];return Od(a)?(f(a,function(a){b=b.concat(e(a))}),b):x(a)?a.split(" "):v(a)?(f(a,function(a,c){a&&(b=b.concat(c.split(" ")))}),b):a}return{restrict:"AC",link:function(g,h,i){function j(a){var b=l(a,1);i.$addClass(b)}function k(a){var b=l(a,-1);i.$removeClass(b)}function l(a,b){var c=h.data("$classCounts")||qa(),d=[];return f(a,function(a){(b>0||c[a])&&(c[a]=(c[a]||0)+b,c[a]===+(b>0)&&d.push(a))}),h.data("$classCounts",c),d.join(" ")}function m(a,b){var e=d(b,a),f=d(a,b);e=l(e,1),f=l(f,-1),e&&e.length&&c.addClass(h,e),f&&f.length&&c.removeClass(h,f)}function n(a){if(b===!0||g.$index%2===b){var c=e(a||[]);if(o){if(!Q(a,o)){var d=e(o);m(d,c)}}else j(c)}o=P(a)}var o;g.$watch(i[a],n,!0),i.$observe("class",function(b){n(g.$eval(i[a]))}),"ngClass"!==a&&g.$watch("$index",function(c,d){var f=1&c;if(f!==(1&d)){var h=e(g.$eval(i[a]));f===b?j(h):k(h)}})}}}]}function rd(a){function b(a,b,i){t(b)?d("$pending",a,i):e("$pending",a,i),H(b)?b?(l(h.$error,a,i),k(h.$$success,a,i)):(k(h.$error,a,i),l(h.$$success,a,i)):(l(h.$error,a,i),l(h.$$success,a,i)),h.$pending?(f(fg,!0),h.$valid=h.$invalid=c,g("",null)):(f(fg,!1),h.$valid=sd(h.$error),h.$invalid=!h.$valid,g("",h.$valid));var j;j=h.$pending&&h.$pending[a]?c:h.$error[a]?!1:h.$$success[a]?!0:null,g(a,j),h.$$parentForm.$setValidity(a,j,h)}function d(a,b,c){h[a]||(h[a]={}),k(h[a],b,c)}function e(a,b,d){h[a]&&l(h[a],b,d),sd(h[a])&&(h[a]=c)}function f(a,b){b&&!j[a]?(m.addClass(i,a),j[a]=!0):!b&&j[a]&&(m.removeClass(i,a),j[a]=!1)}function g(a,b){a=a?"-"+ja(a,"-"):"",f(_f+a,b===!0),f(ag+a,b===!1)}var h=a.ctrl,i=a.$element,j={},k=a.set,l=a.unset,m=a.$animate;j[ag]=!(j[_f]=i.hasClass(_f)),h.$setValidity=b}function sd(a){if(a)for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}function td(a){a[0].hasAttribute("selected")&&(a[0].selected=!0)}var ud=/^\/(.+)\/([a-z]*)$/,vd="validity",wd=function(a){return x(a)?a.toLowerCase():a},xd=Object.prototype.hasOwnProperty,yd=function(a){return x(a)?a.toUpperCase():a},zd=function(a){return x(a)?a.replace(/[A-Z]/g,function(a){return String.fromCharCode(32|a.charCodeAt(0))}):a},Ad=function(a){return x(a)?a.replace(/[a-z]/g,function(a){return String.fromCharCode(-33&a.charCodeAt(0))}):a};"i"!=="I".toLowerCase()&&(wd=zd,yd=Ad);var Bd,Cd,Dd,Ed,Fd=[].slice,Gd=[].splice,Hd=[].push,Id=Object.prototype.toString,Jd=Object.getPrototypeOf,Kd=d("ng"),Ld=a.angular||(a.angular={}),Md=0;Bd=b.documentMode,p.$inject=[],q.$inject=[];var Nd,Od=Array.isArray,Pd=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/,Qd=function(a){return x(a)?a.trim():a},Rd=function(a){return a.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Sd=function(){function a(){try{return new Function(""),!1}catch(a){return!0}}if(!u(Sd.rules)){var c=b.querySelector("[ng-csp]")||b.querySelector("[data-ng-csp]");if(c){var d=c.getAttribute("ng-csp")||c.getAttribute("data-ng-csp");Sd.rules={noUnsafeEval:!d||-1!==d.indexOf("no-unsafe-eval"),noInlineStyle:!d||-1!==d.indexOf("no-inline-style")}}else Sd.rules={noUnsafeEval:a(),noInlineStyle:!1}}return Sd.rules},Td=function(){if(u(Td.name_))return Td.name_;var a,c,d,e,f=Ud.length;for(c=0;f>c;++c)if(d=Ud[c],a=b.querySelector("["+d.replace(":","\\:")+"jq]")){e=a.getAttribute(d+"jq");break}return Td.name_=e},Ud=["ng-","data-ng-","ng:","x-ng-"],Vd=/[A-Z]/g,Wd=!1,Xd=1,Yd=2,Zd=3,$d=8,_d=9,ae=11,be={full:"1.4.8",major:1,minor:4,dot:8,codeName:"ice-manipulation"};Ca.expando="ng339";var ce=Ca.cache={},de=1,ee=function(a,b,c){a.addEventListener(b,c,!1)},fe=function(a,b,c){a.removeEventListener(b,c,!1)};Ca._data=function(a){return this.cache[a[this.expando]]||{}};var ge=/([\:\-\_]+(.))/g,he=/^moz([A-Z])/,ie={mouseleave:"mouseout",mouseenter:"mouseover"},je=d("jqLite"),ke=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,le=/<|&#?\w+;/,me=/<([\w:-]+)/,ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,oe={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};oe.optgroup=oe.option,oe.tbody=oe.tfoot=oe.colgroup=oe.caption=oe.thead,oe.th=oe.td;var pe=Node.prototype.contains||function(a){return!!(16&this.compareDocumentPosition(a))},qe=Ca.prototype={ready:function(c){function d(){e||(e=!0,c())}var e=!1;"complete"===b.readyState?setTimeout(d):(this.on("DOMContentLoaded",d),Ca(a).on("load",d))},toString:function(){var a=[];return f(this,function(b){a.push(""+b)}),"["+a.join(", ")+"]"},eq:function(a){return Cd(a>=0?this[a]:this[this.length+a])},length:0,push:Hd,sort:[].sort,splice:[].splice},re={};f("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(a){re[wd(a)]=a});var se={};f("input,select,option,textarea,button,form,details".split(","),function(a){se[a]=!0});var te={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};f({data:Ia,removeData:Ga,hasData:za},function(a,b){Ca[b]=a}),f({data:Ia,inheritedData:Oa,scope:function(a){return Cd.data(a,"$scope")||Oa(a.parentNode||a,["$isolateScope","$scope"])},isolateScope:function(a){return Cd.data(a,"$isolateScope")||Cd.data(a,"$isolateScopeNoTemplate")},controller:Na,injector:function(a){return Oa(a,"$injector")},removeAttr:function(a,b){a.removeAttribute(b)},hasClass:Ja,css:function(a,b,c){return b=wa(b),u(c)?void(a.style[b]=c):a.style[b]},attr:function(a,b,d){var e=a.nodeType;if(e!==Zd&&e!==Yd&&e!==$d){var f=wd(b);if(re[f]){if(!u(d))return a[b]||(a.attributes.getNamedItem(b)||p).specified?f:c;d?(a[b]=!0,a.setAttribute(b,f)):(a[b]=!1,a.removeAttribute(f))}else if(u(d))a.setAttribute(b,d);else if(a.getAttribute){var g=a.getAttribute(b,2);return null===g?c:g}}},prop:function(a,b,c){return u(c)?void(a[b]=c):a[b]},text:function(){function a(a,b){if(t(b)){var c=a.nodeType;return c===Xd||c===Zd?a.textContent:""}a.textContent=b}return a.$dv="",a}(),val:function(a,b){if(t(b)){if(a.multiple&&"select"===M(a)){var c=[];return f(a.options,function(a){a.selected&&c.push(a.value||a.text)}),0===c.length?null:c}return a.value}a.value=b},html:function(a,b){return t(b)?a.innerHTML:(Ea(a,!0),void(a.innerHTML=b))},empty:Pa},function(a,b){Ca.prototype[b]=function(b,c){var d,e,f=this.length;if(a!==Pa&&t(2==a.length&&a!==Ja&&a!==Na?b:c)){if(v(b)){for(d=0;f>d;d++)if(a===Ia)a(this[d],b);else for(e in b)a(this[d],e,b[e]);return this}for(var g=a.$dv,h=t(g)?Math.min(f,1):f,i=0;h>i;i++){var j=a(this[i],b,c);g=g?g+j:j}return g}for(d=0;f>d;d++)a(this[d],b,c);return this}}),f({removeData:Ga,on:function(a,b,d,e){if(u(e))throw je("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(ya(a)){var f=Ha(a,!0),g=f.events,h=f.handle;h||(h=f.handle=Ua(a,g));for(var i=b.indexOf(" ")>=0?b.split(" "):[b],j=i.length,k=function(b,c,e){var f=g[b];f||(f=g[b]=[],f.specialHandlerWrapper=c,"$destroy"===b||e||ee(a,b,h)),f.push(d)};j--;)b=i[j],ie[b]?(k(ie[b],Wa),k(b,c,!0)):k(b)}},off:Fa,one:function(a,b,c){a=Cd(a),a.on(b,function d(){a.off(b,c),a.off(b,d)}),a.on(b,c)},replaceWith:function(a,b){var c,d=a.parentNode;Ea(a),f(new Ca(b),function(b){c?d.insertBefore(b,c.nextSibling):d.replaceChild(b,a),c=b})},children:function(a){var b=[];return f(a.childNodes,function(a){a.nodeType===Xd&&b.push(a)}),b},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,b){var c=a.nodeType;if(c===Xd||c===ae){b=new Ca(b);for(var d=0,e=b.length;e>d;d++){var f=b[d];a.appendChild(f)}}},prepend:function(a,b){if(a.nodeType===Xd){var c=a.firstChild;f(new Ca(b),function(b){a.insertBefore(b,c)})}},wrap:function(a,b){b=Cd(b).eq(0).clone()[0];var c=a.parentNode;c&&c.replaceChild(b,a),b.appendChild(a)},remove:Qa,detach:function(a){Qa(a,!0)},after:function(a,b){var c=a,d=a.parentNode;b=new Ca(b);for(var e=0,f=b.length;f>e;e++){var g=b[e];d.insertBefore(g,c.nextSibling),c=g}},addClass:La,removeClass:Ka,toggleClass:function(a,b,c){b&&f(b.split(" "),function(b){var d=c;t(d)&&(d=!Ja(a,b)),(d?La:Ka)(a,b)})},parent:function(a){var b=a.parentNode;return b&&b.nodeType!==ae?b:null},next:function(a){return a.nextElementSibling},find:function(a,b){return a.getElementsByTagName?a.getElementsByTagName(b):[]},clone:Da,triggerHandler:function(a,b,c){var d,e,g,h=b.type||b,i=Ha(a),j=i&&i.events,k=j&&j[h];k&&(d={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:p,type:h,target:a},b.type&&(d=l(d,b)),e=P(k),g=c?[d].concat(c):[d],f(e,function(b){d.isImmediatePropagationStopped()||b.apply(a,g)}))}},function(a,b){Ca.prototype[b]=function(b,c,d){for(var e,f=0,g=this.length;g>f;f++)t(e)?(e=a(this[f],b,c,d),u(e)&&(e=Cd(e))):Ma(e,a(this[f],b,c,d));return u(e)?e:this},Ca.prototype.bind=Ca.prototype.on,Ca.prototype.unbind=Ca.prototype.off}),Za.prototype={put:function(a,b){this[Ya(a,this.nextUid)]=b},get:function(a){return this[Ya(a,this.nextUid)]},remove:function(a){var b=this[a=Ya(a,this.nextUid)];return delete this[a],b}};var ue=[function(){this.$get=[function(){return Za}]}],ve=/^[^\(]*\(\s*([^\)]*)\)/m,we=/,/,xe=/^\s*(_?)(\S+?)\1\s*$/,ye=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,ze=d("$injector");ab.$$annotate=_a;var Ae=d("$animate"),Be=1,Ce="ng-animate",De=function(){this.$get=["$q","$$rAF",function(a,b){function c(){}return c.all=p,c.chain=p,c.prototype={end:p,cancel:p,resume:p,pause:p,complete:p,then:function(c,d){return a(function(a){b(function(){a()})}).then(c,d)}},c}]},Ee=function(){var a=new Za,b=[];this.$get=["$$AnimateRunner","$rootScope",function(c,d){function e(a,b,c){var d=!1;return b&&(b=x(b)?b.split(" "):Od(b)?b:[],f(b,function(b){b&&(d=!0,a[b]=c)})),d}function g(){f(b,function(b){var c=a.get(b);if(c){var d=eb(b.attr("class")),e="",g="";f(c,function(a,b){var c=!!d[b];a!==c&&(a?e+=(e.length?" ":"")+b:g+=(g.length?" ":"")+b)}),f(b,function(a){e&&La(a,e),g&&Ka(a,g)}),a.remove(b)}}),b.length=0}function h(c,f,h){var i=a.get(c)||{},j=e(i,f,!0),k=e(i,h,!1);(j||k)&&(a.put(c,i),b.push(c),1===b.length&&d.$$postDigest(g))}return{enabled:p,on:p,off:p,pin:p,push:function(a,b,d,e){return e&&e(),d=d||{},d.from&&a.css(d.from),d.to&&a.css(d.to),(d.addClass||d.removeClass)&&h(a,d.addClass,d.removeClass),new c}}}]},Fe=["$provide",function(a){var b=this;this.$$registeredAnimations=Object.create(null),this.register=function(c,d){if(c&&"."!==c.charAt(0))throw Ae("notcsel","Expecting class selector starting with '.' got '{0}'.",c);var e=c+"-animation";b.$$registeredAnimations[c.substr(1)]=e,a.factory(e,d)},this.classNameFilter=function(a){if(1===arguments.length&&(this.$$classNameFilter=a instanceof RegExp?a:null,this.$$classNameFilter)){var b=new RegExp("(\\s+|\\/)"+Ce+"(\\s+|\\/)");if(b.test(this.$$classNameFilter.toString()))throw Ae("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',Ce)}return this.$$classNameFilter},this.$get=["$$animateQueue",function(a){function b(a,b,c){if(c){var d=db(c);!d||d.parentNode||d.previousElementSibling||(c=null)}c?c.after(a):b.prepend(a)}return{on:a.on,off:a.off,pin:a.pin,enabled:a.enabled,cancel:function(a){a.end&&a.end()},enter:function(c,d,e,f){return d=d&&Cd(d),e=e&&Cd(e),d=d||e.parent(),b(c,d,e),a.push(c,"enter",fb(f))},move:function(c,d,e,f){return d=d&&Cd(d),e=e&&Cd(e),d=d||e.parent(),b(c,d,e),a.push(c,"move",fb(f))},leave:function(b,c){return a.push(b,"leave",fb(c),function(){b.remove()})},addClass:function(b,c,d){return d=fb(d),d.addClass=cb(d.addclass,c),a.push(b,"addClass",d)},removeClass:function(b,c,d){return d=fb(d),d.removeClass=cb(d.removeClass,c),a.push(b,"removeClass",d)},setClass:function(b,c,d,e){return e=fb(e),e.addClass=cb(e.addClass,c),e.removeClass=cb(e.removeClass,d),a.push(b,"setClass",e)},animate:function(b,c,d,e,f){return f=fb(f),f.from=f.from?l(f.from,c):c,f.to=f.to?l(f.to,d):d,e=e||"ng-inline-animate",f.tempClasses=cb(f.tempClasses,e),a.push(b,"animate",f)}}}]}],Ge=function(){this.$get=["$$rAF","$q",function(a,b){var c=function(){};return c.prototype={done:function(a){this.defer&&this.defer[a===!0?"reject":"resolve"]()},end:function(){this.done()},cancel:function(){this.done(!0)},getPromise:function(){return this.defer||(this.defer=b.defer()),this.defer.promise},then:function(a,b){return this.getPromise().then(a,b)},"catch":function(a){return this.getPromise()["catch"](a)},"finally":function(a){return this.getPromise()["finally"](a)}},function(b,d){function e(){return a(function(){f(),g||h.done(),g=!0}),h}function f(){d.addClass&&(b.addClass(d.addClass),d.addClass=null),d.removeClass&&(b.removeClass(d.removeClass),d.removeClass=null),d.to&&(b.css(d.to),d.to=null)}d.cleanupStyles&&(d.from=d.to=null),d.from&&(b.css(d.from),d.from=null);var g,h=new c;return{start:e,end:e}}}]},He=d("$compile");kb.$inject=["$provide","$$sanitizeUriProvider"];var Ie=/^((?:x|data)[\:\-_])/i,Je=d("$controller"),Ke=/^(\S+)(\s+as\s+(\w+))?$/,Le=function(){this.$get=["$document",function(a){return function(b){return b?!b.nodeType&&b instanceof Cd&&(b=b[0]):b=a[0].body,b.offsetWidth+1}}]},Me="application/json",Ne={"Content-Type":Me+";charset=utf-8"},Oe=/^\[|^\{(?!\{)/,Pe={"[":/]$/,"{":/}$/},Qe=/^\)\]\}',?\n/,Re=d("$http"),Se=function(a){return function(){throw Re("legacy","The method `{0}` on the promise returned from `$http` has been disabled.",a)}},Te=Ld.$interpolateMinErr=d("$interpolate");Te.throwNoconcat=function(a){throw Te("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce",a)},Te.interr=function(a,b){return Te("interr","Can't interpolate: {0}\n{1}",a,b.toString())};var Ue=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,Ve={http:80,https:443,ftp:21},We=d("$location"),Xe={$$html5:!1,$$replace:!1,absUrl:Sb("$$absUrl"),url:function(a){if(t(a))return this.$$url;var b=Ue.exec(a);return(b[1]||""===a)&&this.path(decodeURIComponent(b[1])),(b[2]||b[1]||""===a)&&this.search(b[3]||""),this.hash(b[5]||""),this},protocol:Sb("$$protocol"),host:Sb("$$host"),port:Sb("$$port"),path:Tb("$$path",function(a){return a=null!==a?a.toString():"","/"==a.charAt(0)?a:"/"+a}),search:function(a,b){switch(arguments.length){case 0:return this.$$search;case 1:if(x(a)||y(a))a=a.toString(),this.$$search=aa(a);else{if(!v(a))throw We("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");a=O(a,{}),f(a,function(b,c){null==b&&delete a[c]}),this.$$search=a}break;default:t(b)||null===b?delete this.$$search[a]:this.$$search[a]=b}return this.$$compose(),this},hash:Tb("$$hash",function(a){return null!==a?a.toString():""}),replace:function(){return this.$$replace=!0,this}};f([Rb,Qb,Pb],function(a){a.prototype=Object.create(Xe),a.prototype.state=function(b){if(!arguments.length)return this.$$state;if(a!==Pb||!this.$$html5)throw We("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=t(b)?null:b,
-this}});var Ye=d("$parse"),Ze=Function.prototype.call,$e=Function.prototype.apply,_e=Function.prototype.bind,af=qa();f("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(a){af[a]=!0});var bf={n:"\n",f:"\f",r:"\r",t:"      ",v:"\x0B","'":"'",'"':'"'},cf=function(a){this.options=a};cf.prototype={constructor:cf,lex:function(a){for(this.text=a,this.index=0,this.tokens=[];this.index<this.text.length;){var b=this.text.charAt(this.index);if('"'===b||"'"===b)this.readString(b);else if(this.isNumber(b)||"."===b&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(b))this.readIdent();else if(this.is(b,"(){}[].,;:?"))this.tokens.push({index:this.index,text:b}),this.index++;else if(this.isWhitespace(b))this.index++;else{var c=b+this.peek(),d=c+this.peek(2),e=af[b],f=af[c],g=af[d];if(e||f||g){var h=g?d:f?c:b;this.tokens.push({index:this.index,text:h,operator:!0}),this.index+=h.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(a,b){return-1!==b.indexOf(a)},peek:function(a){var b=a||1;return this.index+b<this.text.length?this.text.charAt(this.index+b):!1},isNumber:function(a){return a>="0"&&"9">=a&&"string"==typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"   "===a||"\n"===a||"\x0B"===a||" "===a},isIdent:function(a){return a>="a"&&"z">=a||a>="A"&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,c){c=c||this.index;var d=u(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,c)+"]":" "+c;throw Ye("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",a,d,this.text)},readNumber:function(){for(var a="",b=this.index;this.index<this.text.length;){var c=wd(this.text.charAt(this.index));if("."==c||this.isNumber(c))a+=c;else{var d=this.peek();if("e"==c&&this.isExpOperator(d))a+=c;else if(this.isExpOperator(c)&&d&&this.isNumber(d)&&"e"==a.charAt(a.length-1))a+=c;else{if(!this.isExpOperator(c)||d&&this.isNumber(d)||"e"!=a.charAt(a.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:b,text:a,constant:!0,value:Number(a)})},readIdent:function(){for(var a=this.index;this.index<this.text.length;){var b=this.text.charAt(this.index);if(!this.isIdent(b)&&!this.isNumber(b))break;this.index++}this.tokens.push({index:a,text:this.text.slice(a,this.index),identifier:!0})},readString:function(a){var b=this.index;this.index++;for(var c="",d=a,e=!1;this.index<this.text.length;){var f=this.text.charAt(this.index);if(d+=f,e){if("u"===f){var g=this.text.substring(this.index+1,this.index+5);g.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+g+"]"),this.index+=4,c+=String.fromCharCode(parseInt(g,16))}else{var h=bf[f];c+=h||f}e=!1}else if("\\"===f)e=!0;else{if(f===a)return this.index++,void this.tokens.push({index:b,text:d,constant:!0,value:c});c+=f}this.index++}this.throwError("Unterminated quote",b)}};var df=function(a,b){this.lexer=a,this.options=b};df.Program="Program",df.ExpressionStatement="ExpressionStatement",df.AssignmentExpression="AssignmentExpression",df.ConditionalExpression="ConditionalExpression",df.LogicalExpression="LogicalExpression",df.BinaryExpression="BinaryExpression",df.UnaryExpression="UnaryExpression",df.CallExpression="CallExpression",df.MemberExpression="MemberExpression",df.Identifier="Identifier",df.Literal="Literal",df.ArrayExpression="ArrayExpression",df.Property="Property",df.ObjectExpression="ObjectExpression",df.ThisExpression="ThisExpression",df.NGValueParameter="NGValueParameter",df.prototype={ast:function(a){this.text=a,this.tokens=this.lexer.lex(a);var b=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),b},program:function(){for(var a=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&a.push(this.expressionStatement()),!this.expect(";"))return{type:df.Program,body:a}},expressionStatement:function(){return{type:df.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var a,b=this.expression();a=this.expect("|");)b=this.filter(b);return b},expression:function(){return this.assignment()},assignment:function(){var a=this.ternary();return this.expect("=")&&(a={type:df.AssignmentExpression,left:a,right:this.assignment(),operator:"="}),a},ternary:function(){var a,b,c=this.logicalOR();return this.expect("?")&&(a=this.expression(),this.consume(":"))?(b=this.expression(),{type:df.ConditionalExpression,test:c,alternate:a,consequent:b}):c},logicalOR:function(){for(var a=this.logicalAND();this.expect("||");)a={type:df.LogicalExpression,operator:"||",left:a,right:this.logicalAND()};return a},logicalAND:function(){for(var a=this.equality();this.expect("&&");)a={type:df.LogicalExpression,operator:"&&",left:a,right:this.equality()};return a},equality:function(){for(var a,b=this.relational();a=this.expect("==","!=","===","!==");)b={type:df.BinaryExpression,operator:a.text,left:b,right:this.relational()};return b},relational:function(){for(var a,b=this.additive();a=this.expect("<",">","<=",">=");)b={type:df.BinaryExpression,operator:a.text,left:b,right:this.additive()};return b},additive:function(){for(var a,b=this.multiplicative();a=this.expect("+","-");)b={type:df.BinaryExpression,operator:a.text,left:b,right:this.multiplicative()};return b},multiplicative:function(){for(var a,b=this.unary();a=this.expect("*","/","%");)b={type:df.BinaryExpression,operator:a.text,left:b,right:this.unary()};return b},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:df.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.constants.hasOwnProperty(this.peek().text)?a=O(this.constants[this.consume().text]):this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var b;b=this.expect("(","[",".");)"("===b.text?(a={type:df.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):"["===b.text?(a={type:df.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:df.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){for(var b=[a],c={type:df.CallExpression,callee:this.identifier(),arguments:b,filter:!0};this.expect(":");)b.push(this.expression());return c},parseArguments:function(){var a=[];if(")"!==this.peekToken().text)do a.push(this.expression());while(this.expect(","));return a},identifier:function(){var a=this.consume();return a.identifier||this.throwError("is not a valid identifier",a),{type:df.Identifier,name:a.text}},constant:function(){return{type:df.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:df.ArrayExpression,elements:a}},object:function(){var a,b=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;a={type:df.Property,kind:"init"},this.peek().constant?a.key=this.constant():this.peek().identifier?a.key=this.identifier():this.throwError("invalid key",this.peek()),this.consume(":"),a.value=this.expression(),b.push(a)}while(this.expect(","));return this.consume("}"),{type:df.ObjectExpression,properties:b}},throwError:function(a,b){throw Ye("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",b.text,a,b.index+1,this.text,this.text.substring(b.index))},consume:function(a){if(0===this.tokens.length)throw Ye("ueoe","Unexpected end of expression: {0}",this.text);var b=this.expect(a);return b||this.throwError("is unexpected, expecting ["+a+"]",this.peek()),b},peekToken:function(){if(0===this.tokens.length)throw Ye("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(a,b,c,d){return this.peekAhead(0,a,b,c,d)},peekAhead:function(a,b,c,d,e){if(this.tokens.length>a){var f=this.tokens[a],g=f.text;if(g===b||g===c||g===d||g===e||!b&&!c&&!d&&!e)return f}return!1},expect:function(a,b,c,d){var e=this.peek(a,b,c,d);return e?(this.tokens.shift(),e):!1},constants:{"true":{type:df.Literal,value:!0},"false":{type:df.Literal,value:!1},"null":{type:df.Literal,value:null},undefined:{type:df.Literal,value:c},"this":{type:df.ThisExpression}}},ic.prototype={compile:function(a,b){var d=this,e=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:b,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},cc(e,d.$filter);var g,h="";if(this.stage="assign",g=fc(e)){this.state.computing="assign";var i=this.nextId();this.recurse(g,i),this.return_(i),h="fn.assign="+this.generateFunction("assign","s,v,l")}var j=dc(e.body);d.stage="inputs",f(j,function(a,b){var c="fn"+b;d.state[c]={vars:[],body:[],own:{}},d.state.computing=c;var e=d.nextId();d.recurse(a,e),d.return_(e),d.state.inputs.push(c),a.watchId=b}),this.state.computing="fn",this.stage="main",this.recurse(e);var k='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+h+this.watchFns()+"return fn;",l=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",k)(this.$filter,Wb,Yb,Zb,Xb,$b,_b,ac,a);return this.state=this.stage=c,l.literal=gc(e),l.constant=hc(e),l},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,c=this;return f(b,function(b){a.push("var "+b+"="+c.generateFunction(b,"s"))}),b.length&&a.push("fn.inputs=["+b.join(",")+"];"),a.join("")},generateFunction:function(a,b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;return f(this.state.filters,function(c,d){a.push(c+"=$filter("+b.escape(d)+")")}),a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,b,d,e,g,h){var i,j,k,l,m=this;if(e=e||p,!h&&u(a.watchId))return b=b||this.nextId(),void this.if_("i",this.lazyAssign(b,this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,e,g,!0));switch(a.type){case df.Program:f(a.body,function(b,d){m.recurse(b.expression,c,c,function(a){j=a}),d!==a.body.length-1?m.current().body.push(j,";"):m.return_(j)});break;case df.Literal:l=this.escape(a.value),this.assign(b,l),e(l);break;case df.UnaryExpression:this.recurse(a.argument,c,c,function(a){j=a}),l=a.operator+"("+this.ifDefined(j,0)+")",this.assign(b,l),e(l);break;case df.BinaryExpression:this.recurse(a.left,c,c,function(a){i=a}),this.recurse(a.right,c,c,function(a){j=a}),l="+"===a.operator?this.plus(i,j):"-"===a.operator?this.ifDefined(i,0)+a.operator+this.ifDefined(j,0):"("+i+")"+a.operator+"("+j+")",this.assign(b,l),e(l);break;case df.LogicalExpression:b=b||this.nextId(),m.recurse(a.left,b),m.if_("&&"===a.operator?b:m.not(b),m.lazyRecurse(a.right,b)),e(b);break;case df.ConditionalExpression:b=b||this.nextId(),m.recurse(a.test,b),m.if_(b,m.lazyRecurse(a.alternate,b),m.lazyRecurse(a.consequent,b)),e(b);break;case df.Identifier:b=b||this.nextId(),d&&(d.context="inputs"===m.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name),Wb(a.name),m.if_("inputs"===m.stage||m.not(m.getHasOwnProperty("l",a.name)),function(){m.if_("inputs"===m.stage||"s",function(){g&&1!==g&&m.if_(m.not(m.nonComputedMember("s",a.name)),m.lazyAssign(m.nonComputedMember("s",a.name),"{}")),m.assign(b,m.nonComputedMember("s",a.name))})},b&&m.lazyAssign(b,m.nonComputedMember("l",a.name))),(m.state.expensiveChecks||kc(a.name))&&m.addEnsureSafeObject(b),e(b);break;case df.MemberExpression:i=d&&(d.context=this.nextId())||this.nextId(),b=b||this.nextId(),m.recurse(a.object,i,c,function(){m.if_(m.notNull(i),function(){a.computed?(j=m.nextId(),m.recurse(a.property,j),m.getStringValue(j),m.addEnsureSafeMemberName(j),g&&1!==g&&m.if_(m.not(m.computedMember(i,j)),m.lazyAssign(m.computedMember(i,j),"{}")),l=m.ensureSafeObject(m.computedMember(i,j)),m.assign(b,l),d&&(d.computed=!0,d.name=j)):(Wb(a.property.name),g&&1!==g&&m.if_(m.not(m.nonComputedMember(i,a.property.name)),m.lazyAssign(m.nonComputedMember(i,a.property.name),"{}")),l=m.nonComputedMember(i,a.property.name),(m.state.expensiveChecks||kc(a.property.name))&&(l=m.ensureSafeObject(l)),m.assign(b,l),d&&(d.computed=!1,d.name=a.property.name))},function(){m.assign(b,"undefined")}),e(b)},!!g);break;case df.CallExpression:b=b||this.nextId(),a.filter?(j=m.filter(a.callee.name),k=[],f(a.arguments,function(a){var b=m.nextId();m.recurse(a,b),k.push(b)}),l=j+"("+k.join(",")+")",m.assign(b,l),e(b)):(j=m.nextId(),i={},k=[],m.recurse(a.callee,j,i,function(){m.if_(m.notNull(j),function(){m.addEnsureSafeFunction(j),f(a.arguments,function(a){m.recurse(a,m.nextId(),c,function(a){k.push(m.ensureSafeObject(a))})}),i.name?(m.state.expensiveChecks||m.addEnsureSafeObject(i.context),l=m.member(i.context,i.name,i.computed)+"("+k.join(",")+")"):l=j+"("+k.join(",")+")",l=m.ensureSafeObject(l),m.assign(b,l)},function(){m.assign(b,"undefined")}),e(b)}));break;case df.AssignmentExpression:if(j=this.nextId(),i={},!ec(a.left))throw Ye("lval","Trying to assing a value to a non l-value");this.recurse(a.left,c,i,function(){m.if_(m.notNull(i.context),function(){m.recurse(a.right,j),m.addEnsureSafeObject(m.member(i.context,i.name,i.computed)),m.addEnsureSafeAssignContext(i.context),l=m.member(i.context,i.name,i.computed)+a.operator+j,m.assign(b,l),e(b||l)})},1);break;case df.ArrayExpression:k=[],f(a.elements,function(a){m.recurse(a,m.nextId(),c,function(a){k.push(a)})}),l="["+k.join(",")+"]",this.assign(b,l),e(l);break;case df.ObjectExpression:k=[],f(a.properties,function(a){m.recurse(a.value,m.nextId(),c,function(b){k.push(m.escape(a.key.type===df.Identifier?a.key.name:""+a.key.value)+":"+b)})}),l="{"+k.join(",")+"}",this.assign(b,l),e(l);break;case df.ThisExpression:this.assign(b,"s"),e("s");break;case df.NGValueParameter:this.assign(b,"v"),e("v")}},getHasOwnProperty:function(a,b){var c=a+"."+b,d=this.current().own;return d.hasOwnProperty(c)||(d[c]=this.nextId(!1,a+"&&("+this.escape(b)+" in "+a+")")),d[c]},assign:function(a,b){return a?(this.current().body.push(a,"=",b,";"),a):void 0},filter:function(a){return this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0)),this.state.filters[a]},ifDefined:function(a,b){return"ifDefined("+a+","+this.escape(b)+")"},plus:function(a,b){return"plus("+a+","+b+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,b,c){if(a===!0)b();else{var d=this.current().body;d.push("if(",a,"){"),b(),d.push("}"),c&&(d.push("else{"),c(),d.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,b){return a+"."+b},computedMember:function(a,b){return a+"["+b+"]"},member:function(a,b,c){return c?this.computedMember(a,b):this.nonComputedMember(a,b)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a),";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a),";")},addEnsureSafeAssignContext:function(a){this.current().body.push(this.ensureSafeAssignContext(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},getStringValue:function(a){this.assign(a,"getStringValue("+a+",text)")},ensureSafeAssignContext:function(a){return"ensureSafeAssignContext("+a+",text)"},lazyRecurse:function(a,b,c,d,e,f){var g=this;return function(){g.recurse(a,b,c,d,e,f)}},lazyAssign:function(a,b){var c=this;return function(){c.assign(a,b)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(x(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(y(a))return a.toString();if(a===!0)return"true";if(a===!1)return"false";if(null===a)return"null";if("undefined"==typeof a)return"undefined";throw Ye("esc","IMPOSSIBLE")},nextId:function(a,b){var c="v"+this.state.nextId++;return a||this.current().vars.push(c+(b?"="+b:"")),c},current:function(){return this.state[this.state.computing]}},jc.prototype={compile:function(a,b){var c=this,d=this.astBuilder.ast(a);this.expression=a,this.expensiveChecks=b,cc(d,c.$filter);var e,g;(e=fc(d))&&(g=this.recurse(e));var h,i=dc(d.body);i&&(h=[],f(i,function(a,b){var d=c.recurse(a);a.input=d,h.push(d),a.watchId=b}));var j=[];f(d.body,function(a){j.push(c.recurse(a.expression))});var k=0===d.body.length?function(){}:1===d.body.length?j[0]:function(a,b){var c;return f(j,function(d){c=d(a,b)}),c};return g&&(k.assign=function(a,b,c){return g(a,c,b)}),h&&(k.inputs=h),k.literal=gc(d),k.constant=hc(d),k},recurse:function(a,b,d){var e,g,h,i=this;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case df.Literal:return this.value(a.value,b);case df.UnaryExpression:return g=this.recurse(a.argument),this["unary"+a.operator](g,b);case df.BinaryExpression:return e=this.recurse(a.left),g=this.recurse(a.right),this["binary"+a.operator](e,g,b);case df.LogicalExpression:return e=this.recurse(a.left),g=this.recurse(a.right),this["binary"+a.operator](e,g,b);case df.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case df.Identifier:return Wb(a.name,i.expression),i.identifier(a.name,i.expensiveChecks||kc(a.name),b,d,i.expression);case df.MemberExpression:return e=this.recurse(a.object,!1,!!d),a.computed||(Wb(a.property.name,i.expression),g=a.property.name),a.computed&&(g=this.recurse(a.property)),a.computed?this.computedMember(e,g,b,d,i.expression):this.nonComputedMember(e,g,i.expensiveChecks,b,d,i.expression);case df.CallExpression:return h=[],f(a.arguments,function(a){h.push(i.recurse(a))}),a.filter&&(g=this.$filter(a.callee.name)),a.filter||(g=this.recurse(a.callee,!0)),a.filter?function(a,d,e,f){for(var i=[],j=0;j<h.length;++j)i.push(h[j](a,d,e,f));var k=g.apply(c,i,f);return b?{context:c,name:c,value:k}:k}:function(a,c,d,e){var f,j=g(a,c,d,e);if(null!=j.value){Yb(j.context,i.expression),Zb(j.value,i.expression);for(var k=[],l=0;l<h.length;++l)k.push(Yb(h[l](a,c,d,e),i.expression));f=Yb(j.value.apply(j.context,k),i.expression)}return b?{value:f}:f};case df.AssignmentExpression:return e=this.recurse(a.left,!0,1),g=this.recurse(a.right),function(a,c,d,f){var h=e(a,c,d,f),j=g(a,c,d,f);return Yb(h.value,i.expression),$b(h.context),h.context[h.name]=j,b?{value:j}:j};case df.ArrayExpression:return h=[],f(a.elements,function(a){h.push(i.recurse(a))}),function(a,c,d,e){for(var f=[],g=0;g<h.length;++g)f.push(h[g](a,c,d,e));return b?{value:f}:f};case df.ObjectExpression:return h=[],f(a.properties,function(a){h.push({key:a.key.type===df.Identifier?a.key.name:""+a.key.value,value:i.recurse(a.value)})}),function(a,c,d,e){for(var f={},g=0;g<h.length;++g)f[h[g].key]=h[g].value(a,c,d,e);return b?{value:f}:f};case df.ThisExpression:return function(a){return b?{value:a}:a};case df.NGValueParameter:return function(a,c,d,e){return b?{value:d}:d}}},"unary+":function(a,b){return function(c,d,e,f){var g=a(c,d,e,f);return g=u(g)?+g:0,b?{value:g}:g}},"unary-":function(a,b){return function(c,d,e,f){var g=a(c,d,e,f);return g=u(g)?-g:0,b?{value:g}:g}},"unary!":function(a,b){return function(c,d,e,f){var g=!a(c,d,e,f);return b?{value:g}:g}},"binary+":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g),i=b(d,e,f,g),j=ac(h,i);return c?{value:j}:j}},"binary-":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g),i=b(d,e,f,g),j=(u(h)?h:0)-(u(i)?i:0);return c?{value:j}:j}},"binary*":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)*b(d,e,f,g);return c?{value:h}:h}},"binary/":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)/b(d,e,f,g);return c?{value:h}:h}},"binary%":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)%b(d,e,f,g);return c?{value:h}:h}},"binary===":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)===b(d,e,f,g);return c?{value:h}:h}},"binary!==":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)!==b(d,e,f,g);return c?{value:h}:h}},"binary==":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)==b(d,e,f,g);return c?{value:h}:h}},"binary!=":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)!=b(d,e,f,g);return c?{value:h}:h}},"binary<":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)<b(d,e,f,g);return c?{value:h}:h}},"binary>":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)>b(d,e,f,g);return c?{value:h}:h}},"binary<=":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)<=b(d,e,f,g);return c?{value:h}:h}},"binary>=":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)>=b(d,e,f,g);return c?{value:h}:h}},"binary&&":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)&&b(d,e,f,g);return c?{value:h}:h}},"binary||":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)||b(d,e,f,g);return c?{value:h}:h}},"ternary?:":function(a,b,c,d){return function(e,f,g,h){var i=a(e,f,g,h)?b(e,f,g,h):c(e,f,g,h);return d?{value:i}:i}},value:function(a,b){return function(){return b?{context:c,name:c,value:a}:a}},identifier:function(a,b,d,e,f){return function(g,h,i,j){var k=h&&a in h?h:g;e&&1!==e&&k&&!k[a]&&(k[a]={});var l=k?k[a]:c;return b&&Yb(l,f),d?{context:k,name:a,value:l}:l}},computedMember:function(a,b,c,d,e){return function(f,g,h,i){var j,k,l=a(f,g,h,i);return null!=l&&(j=b(f,g,h,i),j=Xb(j),Wb(j,e),d&&1!==d&&l&&!l[j]&&(l[j]={}),k=l[j],Yb(k,e)),c?{context:l,name:j,value:k}:k}},nonComputedMember:function(a,b,d,e,f,g){return function(h,i,j,k){var l=a(h,i,j,k);f&&1!==f&&l&&!l[b]&&(l[b]={});var m=null!=l?l[b]:c;return(d||kc(b))&&Yb(m,g),e?{context:l,name:b,value:m}:m}},inputs:function(a,b){return function(c,d,e,f){return f?f[b]:a(c,d,e)}}};var ef=function(a,b,c){this.lexer=a,this.$filter=b,this.options=c,this.ast=new df(this.lexer),this.astCompiler=c.csp?new jc(this.ast,b):new ic(this.ast,b)};ef.prototype={constructor:ef,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};var ff=(qa(),qa(),Object.prototype.valueOf),gf=d("$sce"),hf={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},He=d("$compile"),jf=b.createElement("a"),kf=Bc(a.location.href);Ec.$inject=["$document"],Gc.$inject=["$provide"],Lc.$inject=["$locale"],Mc.$inject=["$locale"];var lf=".",mf={yyyy:Pc("FullYear",4),yy:Pc("FullYear",2,0,!0),y:Pc("FullYear",1),MMMM:Qc("Month"),MMM:Qc("Month",!0),MM:Pc("Month",2,1),M:Pc("Month",1,1),dd:Pc("Date",2),d:Pc("Date",1),HH:Pc("Hours",2),H:Pc("Hours",1),hh:Pc("Hours",2,-12),h:Pc("Hours",1,-12),mm:Pc("Minutes",2),m:Pc("Minutes",1),ss:Pc("Seconds",2),s:Pc("Seconds",1),sss:Pc("Milliseconds",3),EEEE:Qc("Day"),EEE:Qc("Day",!0),a:Vc,Z:Rc,ww:Uc(2),w:Uc(1),G:Wc,GG:Wc,GGG:Wc,GGGG:Xc},nf=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,of=/^\-?\d+$/;Yc.$inject=["$locale"];var pf=r(wd),qf=r(yd);_c.$inject=["$parse"];var rf=r({restrict:"E",compile:function(a,b){return b.href||b.xlinkHref?void 0:function(a,b){if("a"===b[0].nodeName.toLowerCase()){var c="[object SVGAnimatedString]"===Id.call(b.prop("href"))?"xlink:href":"href";b.on("click",function(a){b.attr(c)||a.preventDefault()})}}}}),sf={};f(re,function(a,b){function c(a,c,e){a.$watch(e[d],function(a){e.$set(b,!!a)})}if("multiple"!=a){var d=lb("ng-"+b),e=c;"checked"===a&&(e=function(a,b,e){e.ngModel!==e[d]&&c(a,b,e)}),sf[d]=function(){return{restrict:"A",priority:100,link:e}}}}),f(te,function(a,b){sf[b]=function(){return{priority:100,link:function(a,c,d){if("ngPattern"===b&&"/"==d.ngPattern.charAt(0)){var e=d.ngPattern.match(ud);if(e)return void d.$set("ngPattern",new RegExp(e[1],e[2]))}a.$watch(d[b],function(a){d.$set(b,a)})}}}}),f(["src","srcset","href"],function(a){var b=lb("ng-"+a);sf[b]=function(){return{priority:99,link:function(c,d,e){var f=a,g=a;"href"===a&&"[object SVGAnimatedString]"===Id.call(d.prop("href"))&&(g="xlinkHref",e.$attr[g]="xlink:href",f=null),e.$observe(b,function(b){return b?(e.$set(g,b),void(Bd&&f&&d.prop(f,e[g]))):void("href"===a&&e.$set(g,null))})}}}});var tf={$addControl:p,$$renameControl:bd,$removeControl:p,$setValidity:p,$setDirty:p,$setPristine:p,$setSubmitted:p},uf="ng-submitted";cd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var vf=function(a){return["$timeout","$parse",function(b,d){function e(a){return""===a?d('this[""]').assign:d(a).assign||p}var f={name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:cd,compile:function(d,f){d.addClass(bg).addClass(_f);var g=f.name?"name":a&&f.ngForm?"ngForm":!1;return{pre:function(a,d,f,h){var i=h[0];if(!("action"in f)){var j=function(b){a.$apply(function(){i.$commitViewValue(),i.$setSubmitted()}),b.preventDefault()};ee(d[0],"submit",j),d.on("$destroy",function(){b(function(){fe(d[0],"submit",j)},0,!1)})}var k=h[1]||i.$$parentForm;k.$addControl(i);var m=g?e(i.$name):p;g&&(m(a,i),f.$observe(g,function(b){i.$name!==b&&(m(a,c),i.$$parentForm.$$renameControl(i,b),(m=e(i.$name))(a,i))})),d.on("$destroy",function(){i.$$parentForm.$removeControl(i),m(a,c),l(i,tf)})}}}};return f}]},wf=vf(),xf=vf(!0),yf=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,zf=/^[A-Za-z][A-Za-z\d.+-]*:\/*(?:\w+(?::\w+)?@)?[^\s\/]+(?::\d+)?(?:\/[\w#!:.?+=&%@\-\/]*)?$/,Af=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Bf=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Cf=/^(\d{4})-(\d{2})-(\d{2})$/,Df=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Ef=/^(\d{4})-W(\d\d)$/,Ff=/^(\d{4})-(\d\d)$/,Gf=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Hf={text:ed,date:id("date",Cf,hd(Cf,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":id("datetimelocal",Df,hd(Df,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:id("time",Gf,hd(Gf,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:id("week",Ef,gd,"yyyy-Www"),month:id("month",Ff,hd(Ff,["yyyy","MM"]),"yyyy-MM"),number:kd,url:ld,email:md,radio:nd,checkbox:pd,hidden:p,button:p,submit:p,reset:p,file:p},If=["$browser","$sniffer","$filter","$parse",function(a,b,c,d){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,h){h[0]&&(Hf[wd(g.type)]||Hf.text)(e,f,g,h[0],b,a,c,d)}}}}],Jf=/^(true|false|\d+)$/,Kf=function(){return{restrict:"A",priority:100,compile:function(a,b){return Jf.test(b.ngValue)?function(a,b,c){c.$set("value",a.$eval(c.ngValue))}:function(a,b,c){a.$watch(c.ngValue,function(a){c.$set("value",a)})}}}},Lf=["$compile",function(a){return{restrict:"AC",compile:function(b){return a.$$addBindingClass(b),function(b,c,d){a.$$addBindingInfo(c,d.ngBind),c=c[0],b.$watch(d.ngBind,function(a){c.textContent=t(a)?"":a})}}}}],Mf=["$interpolate","$compile",function(a,b){return{compile:function(c){return b.$$addBindingClass(c),function(c,d,e){var f=a(d.attr(e.$attr.ngBindTemplate));b.$$addBindingInfo(d,f.expressions),d=d[0],e.$observe("ngBindTemplate",function(a){d.textContent=t(a)?"":a})}}}}],Nf=["$sce","$parse","$compile",function(a,b,c){return{restrict:"A",compile:function(d,e){var f=b(e.ngBindHtml),g=b(e.ngBindHtml,function(a){return(a||"").toString()});return c.$$addBindingClass(d),function(b,d,e){c.$$addBindingInfo(d,e.ngBindHtml),b.$watch(g,function(){d.html(a.getTrustedHtml(f(b))||"")})}}}}],Of=r({restrict:"A",require:"ngModel",link:function(a,b,c,d){d.$viewChangeListeners.push(function(){a.$eval(c.ngChange)})}}),Pf=qd("",!0),Qf=qd("Odd",0),Rf=qd("Even",1),Sf=ad({compile:function(a,b){b.$set("ngCloak",c),a.removeClass("ng-cloak")}}),Tf=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Uf={},Vf={blur:!0,focus:!0};f("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var b=lb("ng-"+a);Uf[b]=["$parse","$rootScope",function(c,d){return{restrict:"A",compile:function(e,f){var g=c(f[b],null,!0);return function(b,c){c.on(a,function(c){var e=function(){g(b,{$event:c})};Vf[a]&&d.$$phase?b.$evalAsync(e):b.$apply(e)})}}}}]});var Wf=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,i,j;c.$watch(e.ngIf,function(c){c?i||g(function(c,f){i=f,c[c.length++]=b.createComment(" end ngIf: "+e.ngIf+" "),h={clone:c},a.enter(c,d.parent(),d)}):(j&&(j.remove(),j=null),i&&(i.$destroy(),i=null),h&&(j=pa(h.clone),a.leave(j).then(function(){j=null}),h=null))})}}}],Xf=["$templateRequest","$anchorScroll","$animate",function(a,b,c){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Ld.noop,compile:function(d,e){var f=e.ngInclude||e.src,g=e.onload||"",h=e.autoscroll;return function(d,e,i,j,k){var l,m,n,o=0,p=function(){m&&(m.remove(),m=null),l&&(l.$destroy(),l=null),n&&(c.leave(n).then(function(){m=null}),m=n,n=null)};d.$watch(f,function(f){var i=function(){!u(h)||h&&!d.$eval(h)||b()},m=++o;f?(a(f,!0).then(function(a){if(m===o){var b=d.$new();j.template=a;var h=k(b,function(a){p(),c.enter(a,null,e).then(i)});l=b,n=h,l.$emit("$includeContentLoaded",f),d.$eval(g)}},function(){m===o&&(p(),d.$emit("$includeContentError",f))}),d.$emit("$includeContentRequested",f)):(p(),j.template=null)})}}}}],Yf=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){return/SVG/.test(d[0].toString())?(d.empty(),void a(Aa(f.template,b).childNodes)(c,function(a){d.append(a)},{futureParentElement:d})):(d.html(f.template),void a(d.contents())(c))}}}],Zf=ad({priority:450,compile:function(){return{pre:function(a,b,c){a.$eval(c.ngInit)}}}}),$f=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,e){var g=b.attr(d.$attr.ngList)||", ",h="false"!==d.ngTrim,i=h?Qd(g):g,j=function(a){if(!t(a)){var b=[];return a&&f(a.split(i),function(a){a&&b.push(h?Qd(a):a)}),b}};e.$parsers.push(j),e.$formatters.push(function(a){return Od(a)?a.join(g):c}),e.$isEmpty=function(a){return!a||!a.length}}}},_f="ng-valid",ag="ng-invalid",bg="ng-pristine",cg="ng-dirty",dg="ng-untouched",eg="ng-touched",fg="ng-pending",gg=d("ngModel"),hg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,b,d,e,g,h,i,j,k,l){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=c,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=c,this.$name=l(d.name||"",!1)(a),this.$$parentForm=tf;var m,n=g(d.ngModel),o=n.assign,q=n,r=o,s=null,v=this;this.$$setOptions=function(a){if(v.$options=a,a&&a.getterSetter){var b=g(d.ngModel+"()"),c=g(d.ngModel+"($$$p)");q=function(a){var c=n(a);return A(c)&&(c=b(a)),c},r=function(a,b){A(n(a))?c(a,{$$$p:v.$modelValue}):o(a,v.$modelValue)}}else if(!n.assign)throw gg("nonassign","Expression '{0}' is non-assignable. Element: {1}",d.ngModel,$(e))},this.$render=p,this.$isEmpty=function(a){return t(a)||""===a||null===a||a!==a};var w=0;rd({ctrl:this,$element:e,set:function(a,b){a[b]=!0},unset:function(a,b){delete a[b]},$animate:h}),this.$setPristine=function(){v.$dirty=!1,v.$pristine=!0,h.removeClass(e,cg),h.addClass(e,bg)},this.$setDirty=function(){v.$dirty=!0,v.$pristine=!1,h.removeClass(e,bg),h.addClass(e,cg),v.$$parentForm.$setDirty()},this.$setUntouched=function(){v.$touched=!1,
-v.$untouched=!0,h.setClass(e,dg,eg)},this.$setTouched=function(){v.$touched=!0,v.$untouched=!1,h.setClass(e,eg,dg)},this.$rollbackViewValue=function(){i.cancel(s),v.$viewValue=v.$$lastCommittedViewValue,v.$render()},this.$validate=function(){if(!y(v.$modelValue)||!isNaN(v.$modelValue)){var a=v.$$lastCommittedViewValue,b=v.$$rawModelValue,d=v.$valid,e=v.$modelValue,f=v.$options&&v.$options.allowInvalid;v.$$runValidators(b,a,function(a){f||d===a||(v.$modelValue=a?b:c,v.$modelValue!==e&&v.$$writeModelToScope())})}},this.$$runValidators=function(a,b,d){function e(){var a=v.$$parserName||"parse";return t(m)?(i(a,null),!0):(m||(f(v.$validators,function(a,b){i(b,null)}),f(v.$asyncValidators,function(a,b){i(b,null)})),i(a,m),m)}function g(){var c=!0;return f(v.$validators,function(d,e){var f=d(a,b);c=c&&f,i(e,f)}),c?!0:(f(v.$asyncValidators,function(a,b){i(b,null)}),!1)}function h(){var d=[],e=!0;f(v.$asyncValidators,function(f,g){var h=f(a,b);if(!I(h))throw gg("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",h);i(g,c),d.push(h.then(function(){i(g,!0)},function(a){e=!1,i(g,!1)}))}),d.length?k.all(d).then(function(){j(e)},p):j(!0)}function i(a,b){l===w&&v.$setValidity(a,b)}function j(a){l===w&&d(a)}w++;var l=w;return e()&&g()?void h():void j(!1)},this.$commitViewValue=function(){var a=v.$viewValue;i.cancel(s),(v.$$lastCommittedViewValue!==a||""===a&&v.$$hasNativeValidators)&&(v.$$lastCommittedViewValue=a,v.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function b(){v.$modelValue!==g&&v.$$writeModelToScope()}var d=v.$$lastCommittedViewValue,e=d;if(m=t(e)?c:!0)for(var f=0;f<v.$parsers.length;f++)if(e=v.$parsers[f](e),t(e)){m=!1;break}y(v.$modelValue)&&isNaN(v.$modelValue)&&(v.$modelValue=q(a));var g=v.$modelValue,h=v.$options&&v.$options.allowInvalid;v.$$rawModelValue=e,h&&(v.$modelValue=e,b()),v.$$runValidators(e,v.$$lastCommittedViewValue,function(a){h||(v.$modelValue=a?e:c,b())})},this.$$writeModelToScope=function(){r(a,v.$modelValue),f(v.$viewChangeListeners,function(a){try{a()}catch(c){b(c)}})},this.$setViewValue=function(a,b){v.$viewValue=a,(!v.$options||v.$options.updateOnDefault)&&v.$$debounceViewValueCommit(b)},this.$$debounceViewValueCommit=function(b){var c,d=0,e=v.$options;e&&u(e.debounce)&&(c=e.debounce,y(c)?d=c:y(c[b])?d=c[b]:y(c["default"])&&(d=c["default"])),i.cancel(s),d?s=i(function(){v.$commitViewValue()},d):j.$$phase?v.$commitViewValue():a.$apply(function(){v.$commitViewValue()})},a.$watch(function(){var b=q(a);if(b!==v.$modelValue&&(v.$modelValue===v.$modelValue||b===b)){v.$modelValue=v.$$rawModelValue=b,m=c;for(var d=v.$formatters,e=d.length,f=b;e--;)f=d[e](f);v.$viewValue!==f&&(v.$viewValue=v.$$lastCommittedViewValue=f,v.$render(),v.$$runValidators(b,f,p))}return b})}],ig=["$rootScope",function(a){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:hg,priority:1,compile:function(b){return b.addClass(bg).addClass(dg).addClass(_f),{pre:function(a,b,c,d){var e=d[0],f=d[1]||e.$$parentForm;e.$$setOptions(d[2]&&d[2].$options),f.$addControl(e),c.$observe("name",function(a){e.$name!==a&&e.$$parentForm.$$renameControl(e,a)}),a.$on("$destroy",function(){e.$$parentForm.$removeControl(e)})},post:function(b,c,d,e){var f=e[0];f.$options&&f.$options.updateOn&&c.on(f.$options.updateOn,function(a){f.$$debounceViewValueCommit(a&&a.type)}),c.on("blur",function(c){f.$touched||(a.$$phase?b.$evalAsync(f.$setTouched):b.$apply(f.$setTouched))})}}}}}],jg=/(\s+|^)default(\s+|$)/,kg=function(){return{restrict:"A",controller:["$scope","$attrs",function(a,b){var c=this;this.$options=O(a.$eval(b.ngModelOptions)),u(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=Qd(this.$options.updateOn.replace(jg,function(){return c.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},lg=ad({terminal:!0,priority:1e3}),mg=d("ngOptions"),ng=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,og=["$compile","$parse",function(a,c){function d(a,b,d){function f(a,b,c,d,e){this.selectValue=a,this.viewValue=b,this.label=c,this.group=d,this.disabled=e}function g(a){var b;if(!j&&e(a))b=a;else{b=[];for(var c in a)a.hasOwnProperty(c)&&"$"!==c.charAt(0)&&b.push(c)}return b}var h=a.match(ng);if(!h)throw mg("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",a,$(b));var i=h[5]||h[7],j=h[6],k=/ as /.test(h[0])&&h[1],l=h[9],m=c(h[2]?h[1]:i),n=k&&c(k),o=n||m,p=l&&c(l),q=l?function(a,b){return p(d,b)}:function(a){return Ya(a)},r=function(a,b){return q(a,x(a,b))},s=c(h[2]||h[1]),t=c(h[3]||""),u=c(h[4]||""),v=c(h[8]),w={},x=j?function(a,b){return w[j]=b,w[i]=a,w}:function(a){return w[i]=a,w};return{trackBy:l,getTrackByValue:r,getWatchables:c(v,function(a){var b=[];a=a||[];for(var c=g(a),e=c.length,f=0;e>f;f++){var i=a===c?f:c[f],j=(a[i],x(a[i],i)),k=q(a[i],j);if(b.push(k),h[2]||h[1]){var l=s(d,j);b.push(l)}if(h[4]){var m=u(d,j);b.push(m)}}return b}),getOptions:function(){for(var a=[],b={},c=v(d)||[],e=g(c),h=e.length,i=0;h>i;i++){var j=c===e?i:e[i],k=c[j],m=x(k,j),n=o(d,m),p=q(n,m),w=s(d,m),y=t(d,m),z=u(d,m),A=new f(p,n,w,y,z);a.push(A),b[p]=A}return{items:a,selectValueMap:b,getOptionFromViewValue:function(a){return b[r(a)]},getViewValueFromOption:function(a){return l?Ld.copy(a.viewValue):a.viewValue}}}}}function g(b,c,e,g){function j(a,b){a.element=b,b.disabled=a.disabled,a.label!==b.label&&(b.label=a.label,b.textContent=a.label),a.value!==b.value&&(b.value=a.selectValue)}function k(a,b,c,d){var e;return b&&wd(b.nodeName)===c?e=b:(e=d.cloneNode(!1),b?a.insertBefore(e,b):a.appendChild(e)),e}function l(a){for(var b;a;)b=a.nextSibling,Qa(a),a=b}function m(a){var b=p&&p[0],c=w&&w[0];if(b||c)for(;a&&(a===b||a===c||a.nodeType===$d||""===a.value);)a=a.nextSibling;return a}function n(){var a=x&&q.readValue();x=y.getOptions();var b={},d=c[0].firstChild;if(v&&c.prepend(p),d=m(d),x.items.forEach(function(a){var e,f,g;a.group?(e=b[a.group],e||(f=k(c[0],d,"optgroup",i),d=f.nextSibling,f.label=a.group,e=b[a.group]={groupElement:f,currentOptionElement:f.firstChild}),g=k(e.groupElement,e.currentOptionElement,"option",h),j(a,g),e.currentOptionElement=g.nextSibling):(g=k(c[0],d,"option",h),j(a,g),d=g.nextSibling)}),Object.keys(b).forEach(function(a){l(b[a].currentOptionElement)}),l(d),o.$render(),!o.$isEmpty(a)){var e=q.readValue();(y.trackBy?Q(a,e):a===e)||(o.$setViewValue(e),o.$render())}}var o=g[1];if(o){for(var p,q=g[0],r=e.multiple,s=0,t=c.children(),u=t.length;u>s;s++)if(""===t[s].value){p=t.eq(s);break}var v=!!p,w=Cd(h.cloneNode(!1));w.val("?");var x,y=d(e.ngOptions,c,b),z=function(){v||c.prepend(p),c.val(""),p.prop("selected",!0),p.attr("selected",!0)},A=function(){v||p.remove()},B=function(){c.prepend(w),c.val("?"),w.prop("selected",!0),w.attr("selected",!0)},C=function(){w.remove()};r?(o.$isEmpty=function(a){return!a||0===a.length},q.writeValue=function(a){x.items.forEach(function(a){a.element.selected=!1}),a&&a.forEach(function(a){var b=x.getOptionFromViewValue(a);b&&!b.disabled&&(b.element.selected=!0)})},q.readValue=function(){var a=c.val()||[],b=[];return f(a,function(a){var c=x.selectValueMap[a];c&&!c.disabled&&b.push(x.getViewValueFromOption(c))}),b},y.trackBy&&b.$watchCollection(function(){return Od(o.$viewValue)?o.$viewValue.map(function(a){return y.getTrackByValue(a)}):void 0},function(){o.$render()})):(q.writeValue=function(a){var b=x.getOptionFromViewValue(a);b&&!b.disabled?c[0].value!==b.selectValue&&(C(),A(),c[0].value=b.selectValue,b.element.selected=!0,b.element.setAttribute("selected","selected")):null===a||v?(C(),z()):(A(),B())},q.readValue=function(){var a=x.selectValueMap[c.val()];return a&&!a.disabled?(A(),C(),x.getViewValueFromOption(a)):null},y.trackBy&&b.$watch(function(){return y.getTrackByValue(o.$viewValue)},function(){o.$render()})),v?(p.remove(),a(p)(b),p.removeClass("ng-scope")):p=Cd(h.cloneNode(!1)),n(),b.$watchCollection(y.getWatchables,n)}}var h=b.createElement("option"),i=b.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","?ngModel"],link:{pre:function(a,b,c,d){d[0].registerOption=p},post:g}}}],pg=["$locale","$interpolate","$log",function(a,b,c){var d=/{}/g,e=/^when(Minus)?(.+)$/;return{link:function(g,h,i){function j(a){h.text(a||"")}var k,l=i.count,m=i.$attr.when&&h.attr(i.$attr.when),n=i.offset||0,o=g.$eval(m)||{},q={},r=b.startSymbol(),s=b.endSymbol(),u=r+l+"-"+n+s,v=Ld.noop;f(i,function(a,b){var c=e.exec(b);if(c){var d=(c[1]?"-":"")+wd(c[2]);o[d]=h.attr(i.$attr[b])}}),f(o,function(a,c){q[c]=b(a.replace(d,u))}),g.$watch(l,function(b){var d=parseFloat(b),e=isNaN(d);if(e||d in o||(d=a.pluralCat(d-n)),d!==k&&!(e&&y(k)&&isNaN(k))){v();var f=q[d];t(f)?(null!=b&&c.debug("ngPluralize: no rule defined for '"+d+"' in "+m),v=p,j()):v=g.$watch(f,j),k=d}})}}}],qg=["$parse","$animate",function(a,g){var h="$$NG_REMOVED",i=d("ngRepeat"),j=function(a,b,c,d,e,f,g){a[c]=d,e&&(a[e]=f),a.$index=b,a.$first=0===b,a.$last=b===g-1,a.$middle=!(a.$first||a.$last),a.$odd=!(a.$even=0===(1&b))},k=function(a){return a.clone[0]},l=function(a){return a.clone[a.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(d,m){var n=m.ngRepeat,o=b.createComment(" end ngRepeat: "+n+" "),p=n.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!p)throw i("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",n);var q=p[1],r=p[2],s=p[3],t=p[4];if(p=q.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!p)throw i("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",q);var u=p[3]||p[1],v=p[2];if(s&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(s)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(s)))throw i("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",s);var w,x,y,z,A={$id:Ya};return t?w=a(t):(y=function(a,b){return Ya(b)},z=function(a){return a}),function(a,b,d,m,p){w&&(x=function(b,c,d){return v&&(A[v]=b),A[u]=c,A.$index=d,w(a,A)});var q=qa();a.$watchCollection(r,function(d){var m,r,t,w,A,B,C,D,E,F,G,H,I=b[0],J=qa();if(s&&(a[s]=d),e(d))E=d,D=x||y;else{D=x||z,E=[];for(var K in d)xd.call(d,K)&&"$"!==K.charAt(0)&&E.push(K)}for(w=E.length,G=new Array(w),m=0;w>m;m++)if(A=d===E?m:E[m],B=d[A],C=D(A,B,m),q[C])F=q[C],delete q[C],J[C]=F,G[m]=F;else{if(J[C])throw f(G,function(a){a&&a.scope&&(q[a.id]=a)}),i("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",n,C,B);G[m]={id:C,scope:c,clone:c},J[C]=!0}for(var L in q){if(F=q[L],H=pa(F.clone),g.leave(H),H[0].parentNode)for(m=0,r=H.length;r>m;m++)H[m][h]=!0;F.scope.$destroy()}for(m=0;w>m;m++)if(A=d===E?m:E[m],B=d[A],F=G[m],F.scope){t=I;do t=t.nextSibling;while(t&&t[h]);k(F)!=t&&g.move(pa(F.clone),null,Cd(I)),I=l(F),j(F.scope,m,u,B,v,A,w)}else p(function(a,b){F.scope=b;var c=o.cloneNode(!1);a[a.length++]=c,g.enter(a,null,Cd(I)),I=c,F.clone=a,J[F.id]=F,j(F.scope,m,u,B,v,A,w)});q=J})}}}}],rg="ng-hide",sg="ng-hide-animate",tg=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,c,d){b.$watch(d.ngShow,function(b){a[b?"removeClass":"addClass"](c,rg,{tempClasses:sg})})}}}],ug=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,c,d){b.$watch(d.ngHide,function(b){a[b?"addClass":"removeClass"](c,rg,{tempClasses:sg})})}}}],vg=ad(function(a,b,c){a.$watch(c.ngStyle,function(a,c){c&&a!==c&&f(c,function(a,c){b.css(c,"")}),a&&b.css(a)},!0)}),wg=["$animate",function(a){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(c,d,e,g){var h=e.ngSwitch||e.on,i=[],j=[],k=[],l=[],m=function(a,b){return function(){a.splice(b,1)}};c.$watch(h,function(c){var d,e;for(d=0,e=k.length;e>d;++d)a.cancel(k[d]);for(k.length=0,d=0,e=l.length;e>d;++d){var h=pa(j[d].clone);l[d].$destroy();var n=k[d]=a.leave(h);n.then(m(k,d))}j.length=0,l.length=0,(i=g.cases["!"+c]||g.cases["?"])&&f(i,function(c){c.transclude(function(d,e){l.push(e);var f=c.element;d[d.length++]=b.createComment(" end ngSwitchWhen: ");var g={clone:d};j.push(g),a.enter(d,f.parent(),f)})})})}}}],xg=ad({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,c,d,e){d.cases["!"+c.ngSwitchWhen]=d.cases["!"+c.ngSwitchWhen]||[],d.cases["!"+c.ngSwitchWhen].push({transclude:e,element:b})}}),yg=ad({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,c,d,e){d.cases["?"]=d.cases["?"]||[],d.cases["?"].push({transclude:e,element:b})}}),zg=ad({restrict:"EAC",link:function(a,b,c,e,f){if(!f)throw d("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",$(b));f(function(a){b.empty(),b.append(a)})}}),Ag=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(b,c){if("text/ng-template"==c.type){var d=c.id,e=b[0].text;a.put(d,e)}}}}],Bg={$setViewValue:p,$render:p},Cg=["$element","$scope","$attrs",function(a,d,e){var f=this,g=new Za;f.ngModelCtrl=Bg,f.unknownOption=Cd(b.createElement("option")),f.renderUnknownOption=function(b){var c="? "+Ya(b)+" ?";f.unknownOption.val(c),a.prepend(f.unknownOption),a.val(c)},d.$on("$destroy",function(){f.renderUnknownOption=p}),f.removeUnknownOption=function(){f.unknownOption.parent()&&f.unknownOption.remove()},f.readValue=function(){return f.removeUnknownOption(),a.val()},f.writeValue=function(b){f.hasOption(b)?(f.removeUnknownOption(),a.val(b),""===b&&f.emptyOption.prop("selected",!0)):null==b&&f.emptyOption?(f.removeUnknownOption(),a.val("")):f.renderUnknownOption(b)},f.addOption=function(a,b){na(a,'"option value"'),""===a&&(f.emptyOption=b);var c=g.get(a)||0;g.put(a,c+1),f.ngModelCtrl.$render(),td(b)},f.removeOption=function(a){var b=g.get(a);b&&(1===b?(g.remove(a),""===a&&(f.emptyOption=c)):g.put(a,b-1))},f.hasOption=function(a){return!!g.get(a)},f.registerOption=function(a,b,c,d,e){if(d){var g;c.$observe("value",function(a){u(g)&&f.removeOption(g),g=a,f.addOption(a,b)})}else e?a.$watch(e,function(a,d){c.$set("value",a),d!==a&&f.removeOption(d),f.addOption(a,b)}):f.addOption(c.value,b);b.on("$destroy",function(){f.removeOption(c.value),f.ngModelCtrl.$render()})}}],Dg=function(){function a(a,b,c,d){var e=d[1];if(e){var g=d[0];if(g.ngModelCtrl=e,e.$render=function(){g.writeValue(e.$viewValue)},b.on("change",function(){a.$apply(function(){e.$setViewValue(g.readValue())})}),c.multiple){g.readValue=function(){var a=[];return f(b.find("option"),function(b){b.selected&&a.push(b.value)}),a},g.writeValue=function(a){var c=new Za(a);f(b.find("option"),function(a){a.selected=u(c.get(a.value))})};var h,i=NaN;a.$watch(function(){i!==e.$viewValue||Q(h,e.$viewValue)||(h=P(e.$viewValue),e.$render()),i=e.$viewValue}),e.$isEmpty=function(a){return!a||0===a.length}}}}return{restrict:"E",require:["select","?ngModel"],controller:Cg,priority:1,link:{pre:a}}},Eg=["$interpolate",function(a){return{restrict:"E",priority:100,compile:function(b,c){if(u(c.value))var d=a(c.value,!0);else{var e=a(b.text(),!0);e||c.$set("value",b.text())}return function(a,b,c){var f="$selectController",g=b.parent(),h=g.data(f)||g.parent().data(f);h&&h.registerOption(a,b,c,d,e)}}}}],Fg=r({restrict:"E",terminal:!1}),Gg=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,c,d){d&&(c.required=!0,d.$validators.required=function(a,b){return!c.required||!d.$isEmpty(b)},c.$observe("required",function(){d.$validate()}))}}},Hg=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,e,f){if(f){var g,h=e.ngPattern||e.pattern;e.$observe("pattern",function(a){if(x(a)&&a.length>0&&(a=new RegExp("^"+a+"$")),a&&!a.test)throw d("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",h,a,$(b));g=a||c,f.$validate()}),f.$validators.pattern=function(a,b){return f.$isEmpty(b)||t(g)||g.test(b)}}}}},Ig=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,c,d){if(d){var e=-1;c.$observe("maxlength",function(a){var b=n(a);e=isNaN(b)?-1:b,d.$validate()}),d.$validators.maxlength=function(a,b){return 0>e||d.$isEmpty(b)||b.length<=e}}}}},Jg=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,c,d){if(d){var e=0;c.$observe("minlength",function(a){e=n(a)||0,d.$validate()}),d.$validators.minlength=function(a,b){return d.$isEmpty(b)||b.length>=e}}}}};return a.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(ka(),ua(Ld),Ld.module("ngLocale",[],["$provide",function(a){function b(a){a+="";var b=a.indexOf(".");return-1==b?0:a.length-b-1}function d(a,d){var e=d;c===e&&(e=Math.min(b(a),3));var f=Math.pow(10,e),g=(a*f|0)%f;return{v:e,f:g}}var e={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",pluralCat:function(a,b){var c=0|a,f=d(a,b);return 1==c&&0==f.v?e.ONE:e.OTHER}})}]),void Cd(b).ready(function(){fa(b,ga)}))}(window,document),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'),function(a,b,c){"use strict";function d(a,b,c){if(!a)throw ngMinErr("areq","Argument '{0}' is {1}",b||"?",c||"required");return a}function e(a,b){return a||b?a?b?(Q(a)&&(a=a.join(" ")),Q(b)&&(b=b.join(" ")),a+" "+b):a:b:""}function f(a){var b={};return a&&(a.to||a.from)&&(b.to=a.to,b.from=a.from),b}function g(a,b,c){var d="";return a=Q(a)?a:a&&R(a)&&a.length?a.split(/\s+/):[],P(a,function(a,e){a&&a.length>0&&(d+=e>0?" ":"",d+=c?b+a:a+b)}),d}function h(a,b){var c=a.indexOf(b);b>=0&&a.splice(c,1)}function i(a){if(a instanceof O)switch(a.length){case 0:return[];case 1:if(a[0].nodeType===X)return a;break;default:return O(j(a))}return a.nodeType===X?O(a):void 0}function j(a){if(!a[0])return a;for(var b=0;b<a.length;b++){var c=a[b];if(c.nodeType==X)return c}}function k(a,b,c){P(b,function(b){a.addClass(b,c)})}function l(a,b,c){P(b,function(b){a.removeClass(b,c)})}function m(a){return function(b,c){c.addClass&&(k(a,b,c.addClass),c.addClass=null),c.removeClass&&(l(a,b,c.removeClass),c.removeClass=null)}}function n(a){if(a=a||{},!a.$$prepared){var b=a.domOperation||M;a.domOperation=function(){a.$$domOperationFired=!0,b(),b=M},a.$$prepared=!0}return a}function o(a,b){p(a,b),q(a,b)}function p(a,b){b.from&&(a.css(b.from),b.from=null)}function q(a,b){b.to&&(a.css(b.to),b.to=null)}function r(a,b,c){var d=(b.addClass||"")+" "+(c.addClass||""),e=(b.removeClass||"")+" "+(c.removeClass||""),f=s(a.attr("class"),d,e);c.preparationClasses&&(b.preparationClasses=z(c.preparationClasses,b.preparationClasses),delete c.preparationClasses);var g=b.domOperation!==M?b.domOperation:null;return N(b,c),g&&(b.domOperation=g),f.addClass?b.addClass=f.addClass:b.addClass=null,f.removeClass?b.removeClass=f.removeClass:b.removeClass=null,b}function s(a,b,c){function d(a){R(a)&&(a=a.split(" "));var b={};return P(a,function(a){a.length&&(b[a]=!0)}),b}var e=1,f=-1,g={};a=d(a),b=d(b),P(b,function(a,b){g[b]=e}),c=d(c),P(c,function(a,b){g[b]=g[b]===e?null:f});var h={addClass:"",removeClass:""};return P(g,function(b,c){var d,g;b===e?(d="addClass",g=!a[c]):b===f&&(d="removeClass",g=a[c]),g&&(h[d].length&&(h[d]+=" "),h[d]+=c)}),h}function t(a){return a instanceof b.element?a[0]:a}function u(a,b,c){var d="";b&&(d=g(b,$,!0)),c.addClass&&(d=z(d,g(c.addClass,Y))),c.removeClass&&(d=z(d,g(c.removeClass,Z))),d.length&&(c.preparationClasses=d,a.addClass(d))}function v(a,b){b.preparationClasses&&(a.removeClass(b.preparationClasses),b.preparationClasses=null),b.activeClasses&&(a.removeClass(b.activeClasses),b.activeClasses=null)}function w(a,b){var c=b?"-"+b+"s":"";return y(a,[ma,c]),[ma,c]}function x(a,b){var c=b?"paused":"",d=K+ia;return y(a,[d,c]),[d,c]}function y(a,b){var c=b[0],d=b[1];a.style[c]=d}function z(a,b){return a?b?a+" "+b:a:b}function A(a){return[la,a+"s"]}function B(a,b){var c=b?ka:ma;return[c,a+"s"]}function C(a,b,c){var d=Object.create(null),e=a.getComputedStyle(b)||{};return P(c,function(a,b){var c=e[a];if(c){var f=c.charAt(0);("-"===f||"+"===f||f>=0)&&(c=D(c)),0===c&&(c=null),d[b]=c}}),d}function D(a){var b=0,c=a.split(/\s*,\s*/);return P(c,function(a){"s"==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)),a=parseFloat(a)||0,b=b?Math.max(a,b):a}),b}function E(a){return 0===a||null!=a}function F(a,b){var c=I,d=a+"s";return b?c+=da:d+=" linear all",[c,d]}function G(){var a=Object.create(null);return{flush:function(){a=Object.create(null)},count:function(b){var c=a[b];return c?c.total:0},get:function(b){var c=a[b];return c&&c.value},put:function(b,c){a[b]?a[b].total++:a[b]={total:1,value:c}}}}function H(a,b,c){P(c,function(c){a[c]=U(a[c])?a[c]:b.style.getPropertyValue(c)})}var I,J,K,L,M=b.noop,N=b.extend,O=b.element,P=b.forEach,Q=b.isArray,R=b.isString,S=b.isObject,T=b.isUndefined,U=b.isDefined,V=b.isFunction,W=b.isElement,X=1,Y="-add",Z="-remove",$="ng-",_="-active",aa="ng-animate",ba="$$ngAnimateChildren",ca="";T(a.ontransitionend)&&U(a.onwebkittransitionend)?(ca="-webkit-",I="WebkitTransition",J="webkitTransitionEnd transitionend"):(I="transition",J="transitionend"),T(a.onanimationend)&&U(a.onwebkitanimationend)?(ca="-webkit-",K="WebkitAnimation",L="webkitAnimationEnd animationend"):(K="animation",L="animationend");var da="Duration",ea="Property",fa="Delay",ga="TimingFunction",ha="IterationCount",ia="PlayState",ja=9999,ka=K+fa,la=K+da,ma=I+fa,na=I+da,oa=["$$rAF",function(a){function b(a){d=d.concat(a),c()}function c(){if(d.length){for(var b=d.shift(),f=0;f<b.length;f++)b[f]();e||a(function(){e||c()})}}var d,e;return d=b.queue=[],b.waitUntilQuiet=function(b){e&&e(),e=a(function(){e=null,b(),c()})},b}],pa=[function(){return function(a,c,d){var e=d.ngAnimateChildren;b.isString(e)&&0===e.length?c.data(ba,!0):d.$observe("ngAnimateChildren",function(a){a="on"===a||"true"===a,c.data(ba,a)})}}],qa="$$animateCss",ra=1e3,sa=3,ta=1.5,ua={transitionDuration:na,transitionDelay:ma,transitionProperty:I+ea,animationDuration:la,animationDelay:ka,animationIterationCount:K+ha},va={transitionDuration:na,transitionDelay:ma,animationDuration:la,animationDelay:ka},wa=["$animateProvider",function(a){var b=G(),c=G();this.$get=["$window","$$jqLite","$$AnimateRunner","$timeout","$$forceReflow","$sniffer","$$rAFScheduler","$animate",function(a,d,e,i,j,k,l,r){function s(a,b){var c="$$ngAnimateParentKey",d=a.parentNode,e=d[c]||(d[c]=++N);return e+"-"+a.getAttribute("class")+"-"+b}function u(c,d,e,f){var g=b.get(e);return g||(g=C(a,c,f),"infinite"===g.animationIterationCount&&(g.animationIterationCount=1)),b.put(e,g),g}function v(e,f,h,i){var j;if(b.count(h)>0&&(j=c.get(h),!j)){var k=g(f,"-stagger");d.addClass(e,k),j=C(a,e,i),j.animationDuration=Math.max(j.animationDuration,0),j.transitionDuration=Math.max(j.transitionDuration,0),d.removeClass(e,k),c.put(h,j)}return j||{}}function z(a){O.push(a),l.waitUntilQuiet(function(){b.flush(),c.flush();for(var a=j(),d=0;d<O.length;d++)O[d](a);O.length=0})}function D(a,b,c){var d=u(a,b,c,ua),e=d.animationDelay,f=d.transitionDelay;return d.maxDelay=e&&f?Math.max(e,f):e||f,d.maxDuration=Math.max(d.animationDuration*d.animationIterationCount,d.transitionDuration),d}var G=m(d),N=0,O=[];return function(a,c){function j(){m()}function l(){m(!0)}function m(b){S||U&&T||(S=!0,T=!1,c.$$skipPreparationClasses||d.removeClass(a,na),d.removeClass(a,pa),x(R,!1),w(R,!1),P(da,function(a){R.style[a[0]]=""}),G(a,c),o(a,c),Object.keys(O).length&&P(O,function(a,b){a?R.style.setProperty(b,a):R.style.removeProperty(b)}),c.onDone&&c.onDone(),V&&V.complete(!b))}function u(a){Ia.blockTransition&&w(R,a),Ia.blockKeyframeAnimation&&x(R,!!a)}function C(){return V=new e({end:j,cancel:l}),z(M),m(),{$$willAnimate:!1,start:function(){return V},end:j}}function N(){function b(){if(!S){if(u(!1),P(da,function(a){var b=a[0],c=a[1];R.style[b]=c}),G(a,c),d.addClass(a,pa),Ia.recalculateTimingStyles){if(oa=R.className+" "+na,xa=s(R,oa),Ga=D(R,oa,xa),Ha=Ga.maxDelay,X=Math.max(Ha,0),ba=Ga.maxDuration,0===ba)return void m();Ia.hasTransitions=Ga.transitionDuration>0,Ia.hasAnimations=Ga.animationDuration>0}if(Ia.applyAnimationDelay&&(Ha="boolean"!=typeof c.delay&&E(c.delay)?parseFloat(c.delay):Ha,X=Math.max(Ha,0),Ga.animationDelay=Ha,Ja=B(Ha,!0),da.push(Ja),R.style[Ja[0]]=Ja[1]),aa=X*ra,ca=ba*ra,c.easing){var b,h=c.easing;Ia.hasTransitions&&(b=I+ga,da.push([b,h]),R.style[b]=h),Ia.hasAnimations&&(b=K+ga,da.push([b,h]),R.style[b]=h)}Ga.transitionDuration&&j.push(J),Ga.animationDuration&&j.push(L),g=Date.now();var k=aa+ta*ca,l=g+k,n=a.data(qa)||[],o=!0;if(n.length){var p=n[0];o=l>p.expectedEndTime,o?i.cancel(p.timer):n.push(m)}if(o){var r=i(e,k,!1);n[0]={timer:r,expectedEndTime:l},n.push(m),a.data(qa,n)}a.on(j.join(" "),f),c.to&&(c.cleanupStyles&&H(O,R,Object.keys(c.to)),q(a,c))}}function e(){var b=a.data(qa);if(b){for(var c=1;c<b.length;c++)b[c]();a.removeData(qa)}}function f(a){a.stopPropagation();var b=a.originalEvent||a,c=b.$manualTimeStamp||b.timeStamp||Date.now(),d=parseFloat(b.elapsedTime.toFixed(sa));Math.max(c-g,0)>=aa&&d>=ba&&(U=!0,m())}if(!S){if(!R.parentNode)return void m();var g,j=[],k=function(a){if(U)T&&a&&(T=!1,m());else if(T=!a,Ga.animationDuration){var b=x(R,T);T?da.push(b):h(da,b)}},l=Ea>0&&(Ga.transitionDuration&&0===ya.transitionDuration||Ga.animationDuration&&0===ya.animationDuration)&&Math.max(ya.animationDelay,ya.transitionDelay);l?i(b,Math.floor(l*Ea*ra),!1):b(),W.resume=function(){k(!0)},W.pause=function(){k(!1)}}}var O={},R=t(a);if(!R||!R.parentNode||!r.enabled())return C();c=n(c);var S,T,U,V,W,X,aa,ba,ca,da=[],fa=a.attr("class"),ha=f(c);if(0===c.duration||!k.animations&&!k.transitions)return C();var ia=c.event&&Q(c.event)?c.event.join(" "):c.event,ka=ia&&c.structural,la="",ma="";ka?la=g(ia,$,!0):ia&&(la=ia),c.addClass&&(ma+=g(c.addClass,Y)),c.removeClass&&(ma.length&&(ma+=" "),ma+=g(c.removeClass,Z)),c.applyClassesEarly&&ma.length&&G(a,c);var na=[la,ma].join(" ").trim(),oa=fa+" "+na,pa=g(na,_),ua=ha.to&&Object.keys(ha.to).length>0,wa=(c.keyframeStyle||"").length>0;if(!wa&&!ua&&!na)return C();var xa,ya;if(c.stagger>0){var za=parseFloat(c.stagger);ya={transitionDelay:za,animationDelay:za,transitionDuration:0,animationDuration:0}}else xa=s(R,oa),ya=v(R,na,xa,va);c.$$skipPreparationClasses||d.addClass(a,na);var Aa;if(c.transitionStyle){var Ba=[I,c.transitionStyle];y(R,Ba),da.push(Ba)}if(c.duration>=0){Aa=R.style[I].length>0;var Ca=F(c.duration,Aa);y(R,Ca),da.push(Ca)}if(c.keyframeStyle){var Da=[K,c.keyframeStyle];y(R,Da),da.push(Da)}var Ea=ya?c.staggerIndex>=0?c.staggerIndex:b.count(xa):0,Fa=0===Ea;Fa&&!c.skipBlocking&&w(R,ja);var Ga=D(R,oa,xa),Ha=Ga.maxDelay;X=Math.max(Ha,0),ba=Ga.maxDuration;var Ia={};if(Ia.hasTransitions=Ga.transitionDuration>0,Ia.hasAnimations=Ga.animationDuration>0,Ia.hasTransitionAll=Ia.hasTransitions&&"all"==Ga.transitionProperty,Ia.applyTransitionDuration=ua&&(Ia.hasTransitions&&!Ia.hasTransitionAll||Ia.hasAnimations&&!Ia.hasTransitions),Ia.applyAnimationDuration=c.duration&&Ia.hasAnimations,Ia.applyTransitionDelay=E(c.delay)&&(Ia.applyTransitionDuration||Ia.hasTransitions),Ia.applyAnimationDelay=E(c.delay)&&Ia.hasAnimations,Ia.recalculateTimingStyles=ma.length>0,(Ia.applyTransitionDuration||Ia.applyAnimationDuration)&&(ba=c.duration?parseFloat(c.duration):ba,Ia.applyTransitionDuration&&(Ia.hasTransitions=!0,Ga.transitionDuration=ba,Aa=R.style[I+ea].length>0,da.push(F(ba,Aa))),Ia.applyAnimationDuration&&(Ia.hasAnimations=!0,Ga.animationDuration=ba,da.push(A(ba)))),0===ba&&!Ia.recalculateTimingStyles)return C();if(null!=c.delay){var Ja=parseFloat(c.delay);Ia.applyTransitionDelay&&da.push(B(Ja)),Ia.applyAnimationDelay&&da.push(B(Ja,!0))}return null==c.duration&&Ga.transitionDuration>0&&(Ia.recalculateTimingStyles=Ia.recalculateTimingStyles||Fa),aa=X*ra,ca=ba*ra,c.skipBlocking||(Ia.blockTransition=Ga.transitionDuration>0,Ia.blockKeyframeAnimation=Ga.animationDuration>0&&ya.animationDelay>0&&0===ya.animationDuration),c.from&&(c.cleanupStyles&&H(O,R,Object.keys(c.from)),p(a,c)),Ia.blockTransition||Ia.blockKeyframeAnimation?u(ba):c.skipBlocking||w(R,!1),{$$willAnimate:!0,end:j,start:function(){return S?void 0:(W={end:j,cancel:l,resume:null,pause:null},V=new e(W),z(N),V)}}}}]}],xa=["$$animationProvider",function(a){function b(a){return a.parentNode&&11===a.parentNode.nodeType}a.drivers.push("$$animateCssDriver");var c="ng-animate-shim",d="ng-anchor",e="ng-anchor-out",f="ng-anchor-in";this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(a,g,h,i,j,k,l){function n(a){return a.replace(/\bng-\S+\b/g,"")}function o(a,b){return R(a)&&(a=a.split(" ")),R(b)&&(b=b.split(" ")),a.filter(function(a){return-1===b.indexOf(a)}).join(" ")}function p(b,g,i){function j(a){var b={},c=t(a).getBoundingClientRect();return P(["width","height","top","left"],function(a){var d=c[a];switch(a){case"top":d+=s.scrollTop;break;case"left":d+=s.scrollLeft}b[a]=Math.floor(d)+"px"}),b}function k(){var b=a(q,{addClass:e,delay:!0,from:j(g)});return b.$$willAnimate?b:null}function l(a){return a.attr("class")||""}function m(){var b=n(l(i)),c=o(b,r),d=o(r,b),g=a(q,{to:j(i),addClass:f+" "+c,removeClass:e+" "+d,delay:!0});return g.$$willAnimate?g:null}function p(){q.remove(),g.removeClass(c),i.removeClass(c)}var q=O(t(g).cloneNode(!0)),r=n(l(q));g.addClass(c),i.addClass(c),q.addClass(d),v.append(q);var u,w=k();if(!w&&(u=m(),!u))return p();var x=w||u;return{start:function(){function a(){c&&c.end()}var b,c=x.start();return c.done(function(){return c=null,!u&&(u=m())?(c=u.start(),c.done(function(){c=null,p(),b.complete()}),c):(p(),void b.complete())}),b=new h({end:a,cancel:a})}}}function q(a,b,c,d){var e=r(a,M),f=r(b,M),g=[];return P(d,function(a){var b=a.out,d=a["in"],e=p(c,b,d);e&&g.push(e)}),e||f||0!==g.length?{start:function(){function a(){P(b,function(a){a.end()})}var b=[];e&&b.push(e.start()),f&&b.push(f.start()),P(g,function(a){b.push(a.start())});var c=new h({end:a,cancel:a});return h.all(b,function(a){c.complete(a)}),c}}:void 0}function r(b){var c=b.element,d=b.options||{};b.structural&&(d.event=b.event,d.structural=!0,d.applyClassesEarly=!0,"leave"===b.event&&(d.onDone=d.domOperation)),d.preparationClasses&&(d.event=z(d.event,d.preparationClasses));var e=a(c,d);return e.$$willAnimate?e:null}if(!j.animations&&!j.transitions)return M;var s=l[0].body,u=t(i),v=O(b(u)||s.contains(u)?u:s);m(k);return function(a){return a.from&&a.to?q(a.from,a.to,a.classes,a.anchors):r(a)}}]}],ya=["$animateProvider",function(a){
-this.$get=["$injector","$$AnimateRunner","$$jqLite",function(b,c,d){function e(c){c=Q(c)?c:c.split(" ");for(var d=[],e={},f=0;f<c.length;f++){var g=c[f],h=a.$$registeredAnimations[g];h&&!e[g]&&(d.push(b.get(h)),e[g]=!0)}return d}var f=m(d);return function(a,b,d,g){function h(){g.domOperation(),f(a,g)}function i(a,b,d,e,f){var g;switch(d){case"animate":g=[b,e.from,e.to,f];break;case"setClass":g=[b,p,q,f];break;case"addClass":g=[b,p,f];break;case"removeClass":g=[b,q,f];break;default:g=[b,f]}g.push(e);var h=a.apply(a,g);if(h)if(V(h.start)&&(h=h.start()),h instanceof c)h.done(f);else if(V(h))return h;return M}function j(a,b,d,e,f){var g=[];return P(e,function(e){var h=e[f];h&&g.push(function(){var e,f,g=!1,j=function(a){g||(g=!0,(f||M)(a),e.complete(!a))};return e=new c({end:function(){j()},cancel:function(){j(!0)}}),f=i(h,a,b,d,function(a){var b=a===!1;j(b)}),e})}),g}function k(a,b,d,e,f){var g=j(a,b,d,e,f);if(0===g.length){var h,i;"beforeSetClass"===f?(h=j(a,"removeClass",d,e,"beforeRemoveClass"),i=j(a,"addClass",d,e,"beforeAddClass")):"setClass"===f&&(h=j(a,"removeClass",d,e,"removeClass"),i=j(a,"addClass",d,e,"addClass")),h&&(g=g.concat(h)),i&&(g=g.concat(i))}if(0!==g.length)return function(a){var b=[];return g.length&&P(g,function(a){b.push(a())}),b.length?c.all(b,a):a(),function(a){P(b,function(b){a?b.cancel():b.end()})}}}3===arguments.length&&S(d)&&(g=d,d=null),g=n(g),d||(d=a.attr("class")||"",g.addClass&&(d+=" "+g.addClass),g.removeClass&&(d+=" "+g.removeClass));var l,m,p=g.addClass,q=g.removeClass,r=e(d);if(r.length){var s,t;"leave"==b?(t="leave",s="afterLeave"):(t="before"+b.charAt(0).toUpperCase()+b.substr(1),s=b),"enter"!==b&&"move"!==b&&(l=k(a,b,g,r,t)),m=k(a,b,g,r,s)}return l||m?{start:function(){function b(b){i=!0,h(),o(a,g),j.complete(b)}function d(a){i||((e||M)(a),b(a))}var e,f=[];l&&f.push(function(a){e=l(a)}),f.length?f.push(function(a){h(),a(!0)}):h(),m&&f.push(function(a){e=m(a)});var i=!1,j=new c({end:function(){d()},cancel:function(){d(!0)}});return c.chain(f,b),j}}:void 0}}]}],za=["$$animationProvider",function(a){a.drivers.push("$$animateJsDriver"),this.$get=["$$animateJs","$$AnimateRunner",function(a,b){function c(b){var c=b.element,d=b.event,e=b.options,f=b.classes;return a(c,d,f,e)}return function(a){if(a.from&&a.to){var d=c(a.from),e=c(a.to);if(!d&&!e)return;return{start:function(){function a(){return function(){P(f,function(a){a.end()})}}function c(a){g.complete(a)}var f=[];d&&f.push(d.start()),e&&f.push(e.start()),b.all(f,c);var g=new b({end:a(),cancel:a()});return g}}}return c(a)}}]}],Aa="data-ng-animate",Ba="$ngAnimatePin",Ca=["$animateProvider",function(a){function b(a,b,c,d){return g[a].some(function(a){return a(b,c,d)})}function c(a,b){a=a||{};var c=(a.addClass||"").length>0,d=(a.removeClass||"").length>0;return b?c&&d:c||d}var e=1,f=2,g=this.rules={skip:[],cancel:[],join:[]};g.join.push(function(a,b,d){return!b.structural&&c(b.options)}),g.skip.push(function(a,b,d){return!b.structural&&!c(b.options)}),g.skip.push(function(a,b,c){return"leave"==c.event&&b.structural}),g.skip.push(function(a,b,c){return c.structural&&c.state===f&&!b.structural}),g.cancel.push(function(a,b,c){return c.structural&&b.structural}),g.cancel.push(function(a,b,c){return c.state===f&&b.structural}),g.cancel.push(function(a,b,c){var d=b.options,e=c.options;return d.addClass&&d.addClass===e.removeClass||d.removeClass&&d.removeClass===e.addClass}),this.$get=["$$rAF","$rootScope","$rootElement","$document","$$HashMap","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow",function(g,h,k,l,p,q,s,w,x,y){function z(){var a=!1;return function(b){a?b():h.$$postDigest(function(){a=!0,b()})}}function A(a,b){return r(a,b,{})}function B(a,b,c){var d=t(b),e=t(a),f=[],g=M[c];return g&&P(g,function(a){a.node.contains(d)?f.push(a.callback):"leave"===c&&a.node.contains(e)&&f.push(a.callback)}),f}function C(a,d,j){function k(b,c,d,e){x(function(){var b=B(p,a,c);b.length&&g(function(){P(b,function(b){b(a,d,e)})})}),b.progress(c,d,e)}function l(b){v(a,j),Z(a,j),o(a,j),j.domOperation(),w.complete(!b)}var m,p;a=i(a),a&&(m=t(a),p=a.parent()),j=n(j);var w=new s,x=z();if(Q(j.addClass)&&(j.addClass=j.addClass.join(" ")),j.addClass&&!R(j.addClass)&&(j.addClass=null),Q(j.removeClass)&&(j.removeClass=j.removeClass.join(" ")),j.removeClass&&!R(j.removeClass)&&(j.removeClass=null),j.from&&!S(j.from)&&(j.from=null),j.to&&!S(j.to)&&(j.to=null),!m)return l(),w;var y=[m.className,j.addClass,j.removeClass].join(" ");if(!Y(y))return l(),w;var C=["enter","move","leave"].indexOf(d)>=0,F=!K||J.get(m),L=!F&&I.get(m)||{},M=!!L.state;if(F||M&&L.state==e||(F=!G(a,p,d)),F)return l(),w;C&&D(a);var N={structural:C,element:a,event:d,close:l,options:j,runner:w};if(M){var O=b("skip",a,N,L);if(O)return L.state===f?(l(),w):(r(a,L.options,j),L.runner);var T=b("cancel",a,N,L);if(T)if(L.state===f)L.runner.end();else{if(!L.structural)return r(a,L.options,N.options),L.runner;L.close()}else{var U=b("join",a,N,L);if(U){if(L.state!==f)return u(a,C?d:null,j),d=N.event=L.event,j=r(a,L.options,N.options),L.runner;A(a,j)}}}else A(a,j);var V=N.structural;if(V||(V="animate"===N.event&&Object.keys(N.options.to||{}).length>0||c(N.options)),!V)return l(),E(a),w;var W=(L.counter||0)+1;return N.counter=W,H(a,e,N),h.$$postDigest(function(){var b=I.get(m),e=!b;b=b||{};var g=a.parent()||[],h=g.length>0&&("animate"===b.event||b.structural||c(b.options));if(e||b.counter!==W||!h)return e&&(Z(a,j),o(a,j)),(e||C&&b.event!==d)&&(j.domOperation(),w.end()),void(h||E(a));d=!b.structural&&c(b.options,!0)?"setClass":b.event,H(a,f);var i=q(a,d,b.options);i.done(function(b){l(!b);var c=I.get(m);c&&c.counter===W&&E(t(a)),k(w,d,"close",{})}),w.setHost(i),k(w,d,"start",{})}),w}function D(a){var b=t(a),c=b.querySelectorAll("["+Aa+"]");P(c,function(a){var b=parseInt(a.getAttribute(Aa)),c=I.get(a);switch(b){case f:c.runner.end();case e:c&&I.remove(a)}})}function E(a){var b=t(a);b.removeAttribute(Aa),I.remove(b)}function F(a,b){return t(a)===t(b)}function G(a,b,c){var d,e=O(l[0].body),f=F(a,e)||"HTML"===a[0].nodeName,g=F(a,k),h=!1,i=a.data(Ba);for(i&&(b=i);b&&b.length;){g||(g=F(b,k));var j=b[0];if(j.nodeType!==X)break;var m=I.get(j)||{};if(h||(h=m.structural||J.get(j)),T(d)||d===!0){var n=b.data(ba);U(n)&&(d=n)}if(h&&d===!1)break;g||(g=F(b,k),g||(i=b.data(Ba),i&&(b=i))),f||(f=F(b,e)),b=b.parent()}var o=!h||d;return o&&g&&f}function H(a,b,c){c=c||{},c.state=b;var d=t(a);d.setAttribute(Aa,b);var e=I.get(d),f=e?N(e,c):c;I.put(d,f)}var I=new p,J=new p,K=null,L=h.$watch(function(){return 0===w.totalPendingRequests},function(a){a&&(L(),h.$$postDigest(function(){h.$$postDigest(function(){null===K&&(K=!0)})}))}),M={},V=a.classNameFilter(),Y=V?function(a){return V.test(a)}:function(){return!0},Z=m(x);return{on:function(a,b,c){var d=j(b);M[a]=M[a]||[],M[a].push({node:d,callback:c})},off:function(a,b,c){function d(a,b,c){var d=j(b);return a.filter(function(a){var b=a.node===d&&(!c||a.callback===c);return!b})}var e=M[a];e&&(M[a]=1===arguments.length?null:d(e,b,c))},pin:function(a,b){d(W(a),"element","not an element"),d(W(b),"parentElement","not an element"),a.data(Ba,b)},push:function(a,b,c,d){return c=c||{},c.domOperation=d,C(a,b,c)},enabled:function(a,b){var c=arguments.length;if(0===c)b=!!K;else{var d=W(a);if(d){var e=t(a),f=J.get(e);1===c?b=!f:(b=!!b,b?f&&J.remove(e):J.put(e,!0))}else b=K=!!a}return b}}}]}],Da=["$$rAF",function(a){function b(b){c.push(b),c.length>1||a(function(){for(var a=0;a<c.length;a++)c[a]();c=[]})}var c=[];return function(){var a=!1;return b(function(){a=!0}),function(c){a?c():b(c)}}}],Ea=["$q","$sniffer","$$animateAsyncRun",function(a,b,c){function d(a){this.setHost(a),this._doneCallbacks=[],this._runInAnimationFrame=c(),this._state=0}var e=0,f=1,g=2;return d.chain=function(a,b){function c(){return d===a.length?void b(!0):void a[d](function(a){return a===!1?void b(!1):(d++,void c())})}var d=0;c()},d.all=function(a,b){function c(c){e=e&&c,++d===a.length&&b(e)}var d=0,e=!0;P(a,function(a){a.done(c)})},d.prototype={setHost:function(a){this.host=a||{}},done:function(a){this._state===g?a():this._doneCallbacks.push(a)},progress:M,getPromise:function(){if(!this.promise){var b=this;this.promise=a(function(a,c){b.done(function(b){b===!1?c():a()})})}return this.promise},then:function(a,b){return this.getPromise().then(a,b)},"catch":function(a){return this.getPromise()["catch"](a)},"finally":function(a){return this.getPromise()["finally"](a)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(a){var b=this;b._state===e&&(b._state=f,b._runInAnimationFrame(function(){b._resolve(a)}))},_resolve:function(a){this._state!==g&&(P(this._doneCallbacks,function(b){b(a)}),this._doneCallbacks.length=0,this._state=g)}},d}],Fa=["$animateProvider",function(a){function b(a,b){a.data(h,b)}function c(a){a.removeData(h)}function d(a){return a.data(h)}var f="ng-animate-ref",g=this.drivers=[],h="$$animationRunner";this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$HashMap","$$rAFScheduler",function(a,h,i,j,k,l){function p(a){function b(a){if(a.processed)return a;a.processed=!0;var c=a.domNode,d=c.parentNode;f.put(c,a);for(var g;d;){if(g=f.get(d)){g.processed||(g=b(g));break}d=d.parentNode}return(g||e).children.push(a),a}function c(a){var b,c=[],d=[];for(b=0;b<a.children.length;b++)d.push(a.children[b]);var e=d.length,f=0,g=[];for(b=0;b<d.length;b++){var h=d[b];0>=e&&(e=f,f=0,c.push(g),g=[]),g.push(h.fn),h.children.forEach(function(a){f++,d.push(a)}),e--}return g.length&&c.push(g),c}var d,e={children:[]},f=new k;for(d=0;d<a.length;d++){var g=a[d];f.put(g.domNode,a[d]={domNode:g.domNode,fn:g.fn,children:[]})}for(d=0;d<a.length;d++)b(a[d]);return c(e)}var q=[],r=m(a);return function(k,m,s){function u(a){var b="["+f+"]",c=a.hasAttribute(f)?[a]:a.querySelectorAll(b),d=[];return P(c,function(a){var b=a.getAttribute(f);b&&b.length&&d.push(a)}),d}function v(a){var b=[],c={};P(a,function(a,d){var e=a.element,g=t(e),h=a.event,i=["enter","move"].indexOf(h)>=0,j=a.structural?u(g):[];if(j.length){var k=i?"to":"from";P(j,function(a){var b=a.getAttribute(f);c[b]=c[b]||{},c[b][k]={animationID:d,element:O(a)}})}else b.push(a)});var d={},e={};return P(c,function(c,f){var g=c.from,h=c.to;if(!g||!h){var i=g?g.animationID:h.animationID,j=i.toString();return void(d[j]||(d[j]=!0,b.push(a[i])))}var k=a[g.animationID],l=a[h.animationID],m=g.animationID.toString();if(!e[m]){var n=e[m]={structural:!0,beforeStart:function(){k.beforeStart(),l.beforeStart()},close:function(){k.close(),l.close()},classes:w(k.classes,l.classes),from:k,to:l,anchors:[]};n.classes.length?b.push(n):(b.push(k),b.push(l))}e[m].anchors.push({out:g.element,"in":h.element})}),b}function w(a,b){a=a.split(" "),b=b.split(" ");for(var c=[],d=0;d<a.length;d++){var e=a[d];if("ng-"!==e.substring(0,3))for(var f=0;f<b.length;f++)if(e===b[f]){c.push(e);break}}return c.join(" ")}function x(a){for(var b=g.length-1;b>=0;b--){var c=g[b];if(i.has(c)){var d=i.get(c),e=d(a);if(e)return e}}}function y(){k.addClass(aa),F&&a.addClass(k,F)}function z(a,b){function c(a){d(a).setHost(b)}a.from&&a.to?(c(a.from.element),c(a.to.element)):c(a.element)}function A(){var a=d(k);!a||"leave"===m&&s.$$domOperationFired||a.end()}function B(b){k.off("$destroy",A),c(k),r(k,s),o(k,s),s.domOperation(),F&&a.removeClass(k,F),k.removeClass(aa),D.complete(!b)}s=n(s);var C=["enter","move","leave"].indexOf(m)>=0,D=new j({end:function(){B()},cancel:function(){B(!0)}});if(!g.length)return B(),D;b(k,D);var E=e(k.attr("class"),e(s.addClass,s.removeClass)),F=s.tempClasses;return F&&(E+=" "+F,s.tempClasses=null),q.push({element:k,classes:E,event:m,structural:C,options:s,beforeStart:y,close:B}),k.on("$destroy",A),q.length>1?D:(h.$$postDigest(function(){var a=[];P(q,function(b){d(b.element)?a.push(b):b.close()}),q.length=0;var b=v(a),c=[];P(b,function(a){c.push({domNode:t(a.from?a.from.element:a.element),fn:function(){a.beforeStart();var b,c=a.close,e=a.anchors?a.from.element||a.to.element:a.element;if(d(e)){var f=x(a);f&&(b=f.start)}if(b){var g=b();g.done(function(a){c(!a)}),z(a,g)}else c()}})}),l(p(c))}),D)}}]}];b.module("ngAnimate",[]).directive("ngAnimateChildren",pa).factory("$$rAFScheduler",oa).factory("$$AnimateRunner",Ea).factory("$$animateAsyncRun",Da).provider("$$animateQueue",Ca).provider("$$animation",Fa).provider("$animateCss",wa).provider("$$animateCssDriver",xa).provider("$$animateJs",ya).provider("$$animateJsDriver",za)}(window,window.angular),angular.module("colorpicker.module",[]).factory("Helper",function(){"use strict";return{closestSlider:function(a){var b=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.msMatchesSelector;return b.bind(a)("I")?a.parentNode:a},getOffset:function(a,b){for(var c=0,d=0,e=a.getBoundingClientRect();a&&!isNaN(a.offsetLeft)&&!isNaN(a.offsetTop);)b||"BODY"!==a.tagName?(c+=a.scrollLeft,d+=a.scrollTop):(c+=document.documentElement.scrollLeft||a.scrollLeft,d+=document.documentElement.scrollTop||a.scrollTop),a=a.offsetParent;return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset,scrollX:c,scrollY:d}},stringParsers:[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(a){return[a[1],a[2],a[3],a[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(a){return[2.55*a[1],2.55*a[2],2.55*a[3],a[4]]}},{re:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,parse:function(a){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]}},{re:/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/,parse:function(a){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)]}}]}}).factory("Color",["Helper",function(a){"use strict";return{value:{h:1,s:1,b:1,a:1},rgb:function(){var a=this.toRGB();return"rgb("+a.r+","+a.g+","+a.b+")"},rgba:function(){var a=this.toRGB();return"rgba("+a.r+","+a.g+","+a.b+","+a.a+")"},hex:function(){return this.toHex()},RGBtoHSB:function(a,b,c,d){a/=255,b/=255,c/=255;var e,f,g,h;return g=Math.max(a,b,c),h=g-Math.min(a,b,c),e=0===h?null:g===a?(b-c)/h:g===b?(c-a)/h+2:(a-b)/h+4,e=(e+360)%6*60/360,f=0===h?0:h/g,{h:e||1,s:f,b:g,a:d||1}},setColor:function(b){b=b.toLowerCase();for(var c in a.stringParsers)if(a.stringParsers.hasOwnProperty(c)){var d=a.stringParsers[c],e=d.re.exec(b),f=e&&d.parse(e);if(f)return this.value=this.RGBtoHSB.apply(null,f),!1}},setHue:function(a){this.value.h=1-a},setSaturation:function(a){this.value.s=a},setLightness:function(a){this.value.b=1-a},setAlpha:function(a){this.value.a=parseInt(100*(1-a),10)/100},toRGB:function(a,b,c,d){a||(a=this.value.h,b=this.value.s,c=this.value.b),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-Math.abs(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],{r:Math.round(255*e),g:Math.round(255*f),b:Math.round(255*g),a:d||this.value.a}},toHex:function(a,b,c,d){var e=this.toRGB(a,b,c,d);return"#"+(1<<24|parseInt(e.r,10)<<16|parseInt(e.g,10)<<8|parseInt(e.b,10)).toString(16).substr(1)}}}]).factory("Slider",["Helper",function(a){"use strict";var b={maxLeft:0,maxTop:0,callLeft:null,callTop:null,knob:{top:0,left:0}},c={};return{getSlider:function(){return b},getLeftPosition:function(a){return Math.max(0,Math.min(b.maxLeft,b.left+((a.pageX||c.left)-c.left)))},getTopPosition:function(a){return Math.max(0,Math.min(b.maxTop,b.top+((a.pageY||c.top)-c.top)))},setSlider:function(d,e){var f=a.closestSlider(d.target),g=a.getOffset(f,e),h=f.getBoundingClientRect(),i=d.clientX-h.left,j=d.clientY-h.top;b.knob=f.children[0].style,b.left=d.pageX-g.left-window.pageXOffset+g.scrollX,b.top=d.pageY-g.top-window.pageYOffset+g.scrollY,c={left:d.pageX-(i-b.left),top:d.pageY-(j-b.top)}},setSaturation:function(a,c){b={maxLeft:100,maxTop:100,callLeft:"setSaturation",callTop:"setLightness"},this.setSlider(a,c)},setHue:function(a,c){b={maxLeft:0,maxTop:100,callLeft:!1,callTop:"setHue"},this.setSlider(a,c)},setAlpha:function(a,c){b={maxLeft:0,maxTop:100,callLeft:!1,callTop:"setAlpha"},this.setSlider(a,c)},setKnob:function(a,c){b.knob.top=a+"px",b.knob.left=c+"px"}}}]).directive("colorpicker",["$document","$compile","Color","Slider","Helper",function(a,b,c,d,e){"use strict";return{require:"?ngModel",restrict:"A",link:function(f,g,h,i){var j,k=h.colorpicker?h.colorpicker:"hex",l=angular.isDefined(h.colorpickerPosition)?h.colorpickerPosition:"bottom",m=angular.isDefined(h.colorpickerInline)?h.colorpickerInline:!1,n=angular.isDefined(h.colorpickerFixedPosition)?h.colorpickerFixedPosition:!1,o=angular.isDefined(h.colorpickerParent)?g.parent():angular.element(document.body),p=angular.isDefined(h.colorpickerWithInput)?h.colorpickerWithInput:!1,q=p?'<input type="text" name="colorpicker-input" spellcheck="false">':"",r=m?"":'<button type="button" class="close close-colorpicker">&times;</button>',s='<div class="colorpicker dropdown"><div class="dropdown-menu"><colorpicker-saturation><i></i></colorpicker-saturation><colorpicker-hue><i></i></colorpicker-hue><colorpicker-alpha><i></i></colorpicker-alpha><colorpicker-preview></colorpicker-preview>'+q+r+"</div></div>",t=angular.element(s),u=c,v=t.find("colorpicker-hue"),w=t.find("colorpicker-saturation"),x=t.find("colorpicker-preview"),y=t.find("i");if(b(t)(f),p){var z=t.find("input");z.on("mousedown",function(a){a.stopPropagation()}).on("keyup",function(){var a=this.value;g.val(a),i&&i.$modelValue!==a&&(f.$apply(i.$setViewValue(a)),E(!0))})}var A=function(){a.on("mousemove",C),a.on("mouseup",D)};"rgba"===k&&(t.addClass("alpha"),j=t.find("colorpicker-alpha"),j.on("click",function(a){d.setAlpha(a,n),C(a)}).on("mousedown",function(a){d.setAlpha(a,n),A()}).on("mouseup",function(a){I("colorpicker-selected-alpha")})),v.on("click",function(a){d.setHue(a,n),C(a)}).on("mousedown",function(a){d.setHue(a,n),A()}).on("mouseup",function(a){I("colorpicker-selected-hue")}),w.on("click",function(a){d.setSaturation(a,n),C(a),angular.isDefined(h.colorpickerCloseOnSelect)&&J()}).on("mousedown",function(a){d.setSaturation(a,n),A()}).on("mouseup",function(a){I("colorpicker-selected-saturation")}),n&&t.addClass("colorpicker-fixed-position"),t.addClass("colorpicker-position-"+l),"true"===m&&t.addClass("colorpicker-inline"),o.append(t),i&&(i.$render=function(){g.val(i.$viewValue)}),g.on("blur keyup change",function(){E()}),g.on("$destroy",function(){t.remove()});var B=function(){try{x.css("backgroundColor",u[k]())}catch(a){x.css("backgroundColor",u.toHex())}w.css("backgroundColor",u.toHex(u.value.h,1,1,1)),"rgba"===k&&(j.css.backgroundColor=u.toHex())},C=function(a){var b=d.getLeftPosition(a),c=d.getTopPosition(a),e=d.getSlider();d.setKnob(c,b),e.callLeft&&u[e.callLeft].call(u,b/100),e.callTop&&u[e.callTop].call(u,c/100),B();var h=u[k]();return g.val(h),i&&f.$apply(i.$setViewValue(h)),p&&z.val(h),!1},D=function(){I("colorpicker-selected"),a.off("mousemove",C),a.off("mouseup",D)},E=function(a){u.setColor(g.val()),p&&!a&&z.val(g.val()),y.eq(0).css({left:100*u.value.s+"px",top:100-100*u.value.b+"px"}),y.eq(1).css("top",100*(1-u.value.h)+"px"),y.eq(2).css("top",100*(1-u.value.a)+"px"),B()},F=function(){var a,b=e.getOffset(g[0]);return angular.isDefined(h.colorpickerParent)&&(b.left=0,b.top=0),"top"===l?a={top:b.top-147,left:b.left}:"right"===l?a={top:b.top,left:b.left+126}:"bottom"===l?a={top:b.top+g[0].offsetHeight+2,left:b.left}:"left"===l&&(a={top:b.top,left:b.left-150}),{top:a.top+"px",left:a.left+"px"}},G=function(){J()},H=function(){t.hasClass("colorpicker-visible")||(E(),t.addClass("colorpicker-visible").css(F()),I("colorpicker-shown"),m===!1&&a.on("mousedown",G),h.colorpickerIsOpen&&(f[h.colorpickerIsOpen]=!0,f.$$phase||f.$digest()))};m===!1?g.on("click",H):H(),t.on("mousedown",function(a){a.stopPropagation(),a.preventDefault()});var I=function(a){i&&f.$emit(a,{name:h.ngModel,value:i.$modelValue})},J=function(){t.hasClass("colorpicker-visible")&&(t.removeClass("colorpicker-visible"),I("colorpicker-closed"),a.off("mousedown",G),h.colorpickerIsOpen&&(f[h.colorpickerIsOpen]=!1,f.$$phase||f.$digest()))};t.find("button").on("click",function(){J()}),h.colorpickerIsOpen&&f.$watch(h.colorpickerIsOpen,function(a){a===!0?H():a===!1&&J()})}}}]),angular.module("ui.bootstrap.contextMenu",[]).directive("contextMenu",["$parse",function(a){var b=function(a,b,c,d){if(!e)var e=angular.element;e(b.currentTarget).addClass("context");var f=e("<div>");f.addClass("dropdown clearfix");var g=e("<ul>");g.addClass("dropdown-menu"),g.attr({role:"menu"}),g.css({display:"block",position:"absolute",left:b.pageX+"px",top:b.pageY+"px"}),angular.forEach(c,function(c,h){var i=e("<li>");if(null===c)i.addClass("divider");else{var j=e("<a>");j.attr({tabindex:"-1",href:"#"});var k="string"==typeof c[0]?c[0]:c[0].call(a,a,b,d);j.text(k),i.append(j);var l=angular.isDefined(c[2])?c[2].call(a,a,b,k,d):!0;l?i.on("click",function(g){g.preventDefault(),a.$apply(function(){e(b.currentTarget).removeClass("context"),f.remove(),c[1].call(a,a,b,d)})}):(i.on("click",function(a){a.preventDefault()}),i.addClass("disabled"))}g.append(i)}),f.append(g);var h=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight);f.css({width:"100%",height:h+"px",position:"absolute",top:0,left:0,zIndex:9999}),e(document).find("body").append(f),f.on("mousedown",function(a){e(a.target).hasClass("dropdown")&&(e(b.currentTarget).removeClass("context"),f.remove())}).on("contextmenu",function(a){e(a.currentTarget).removeClass("context"),a.preventDefault(),f.remove()})};return function(a,c,d){c.on("contextmenu",function(c){c.stopPropagation(),a.$apply(function(){c.preventDefault();var e=a.$eval(d.contextMenu),f=a.$eval(d.model);if(!(e instanceof Array))throw'"'+d.contextMenu+'" not an array';0!==e.length&&b(a,c,e,f)})})}}]),"undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();
-this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery),function(){var a=[].slice;!function(b,c){"use strict";var d;return d=function(){function a(a,c){null==c&&(c={}),this.$element=b(a),this.options=b.extend({},b.fn.bootstrapSwitch.defaults,{state:this.$element.is(":checked"),size:this.$element.data("size"),animate:this.$element.data("animate"),disabled:this.$element.is(":disabled"),readonly:this.$element.is("[readonly]"),indeterminate:this.$element.data("indeterminate"),inverse:this.$element.data("inverse"),radioAllOff:this.$element.data("radio-all-off"),onColor:this.$element.data("on-color"),offColor:this.$element.data("off-color"),onText:this.$element.data("on-text"),offText:this.$element.data("off-text"),labelText:this.$element.data("label-text"),handleWidth:this.$element.data("handle-width"),labelWidth:this.$element.data("label-width"),baseClass:this.$element.data("base-class"),wrapperClass:this.$element.data("wrapper-class")},c),this.$wrapper=b("<div>",{"class":function(a){return function(){var b;return b=[""+a.options.baseClass].concat(a._getClasses(a.options.wrapperClass)),b.push(a.options.state?""+a.options.baseClass+"-on":""+a.options.baseClass+"-off"),null!=a.options.size&&b.push(""+a.options.baseClass+"-"+a.options.size),a.options.disabled&&b.push(""+a.options.baseClass+"-disabled"),a.options.readonly&&b.push(""+a.options.baseClass+"-readonly"),a.options.indeterminate&&b.push(""+a.options.baseClass+"-indeterminate"),a.options.inverse&&b.push(""+a.options.baseClass+"-inverse"),a.$element.attr("id")&&b.push(""+a.options.baseClass+"-id-"+a.$element.attr("id")),b.join(" ")}}(this)()}),this.$container=b("<div>",{"class":""+this.options.baseClass+"-container"}),this.$on=b("<span>",{html:this.options.onText,"class":""+this.options.baseClass+"-handle-on "+this.options.baseClass+"-"+this.options.onColor}),this.$off=b("<span>",{html:this.options.offText,"class":""+this.options.baseClass+"-handle-off "+this.options.baseClass+"-"+this.options.offColor}),this.$label=b("<span>",{html:this.options.labelText,"class":""+this.options.baseClass+"-label"}),this.$element.on("init.bootstrapSwitch",function(b){return function(){return b.options.onInit.apply(a,arguments)}}(this)),this.$element.on("switchChange.bootstrapSwitch",function(b){return function(){return b.options.onSwitchChange.apply(a,arguments)}}(this)),this.$container=this.$element.wrap(this.$container).parent(),this.$wrapper=this.$container.wrap(this.$wrapper).parent(),this.$element.before(this.options.inverse?this.$off:this.$on).before(this.$label).before(this.options.inverse?this.$on:this.$off),this.options.indeterminate&&this.$element.prop("indeterminate",!0),this._init(),this._elementHandlers(),this._handleHandlers(),this._labelHandlers(),this._formHandler(),this._externalLabelHandler(),this.$element.trigger("init.bootstrapSwitch")}return a.prototype._constructor=a,a.prototype.state=function(a,b){return"undefined"==typeof a?this.options.state:this.options.disabled||this.options.readonly?this.$element:this.options.state&&!this.options.radioAllOff&&this.$element.is(":radio")?this.$element:(this.options.indeterminate&&this.indeterminate(!1),a=!!a,this.$element.prop("checked",a).trigger("change.bootstrapSwitch",b),this.$element)},a.prototype.toggleState=function(a){return this.options.disabled||this.options.readonly?this.$element:this.options.indeterminate?(this.indeterminate(!1),this.state(!0)):this.$element.prop("checked",!this.options.state).trigger("change.bootstrapSwitch",a)},a.prototype.size=function(a){return"undefined"==typeof a?this.options.size:(null!=this.options.size&&this.$wrapper.removeClass(""+this.options.baseClass+"-"+this.options.size),a&&this.$wrapper.addClass(""+this.options.baseClass+"-"+a),this._width(),this._containerPosition(),this.options.size=a,this.$element)},a.prototype.animate=function(a){return"undefined"==typeof a?this.options.animate:(a=!!a,a===this.options.animate?this.$element:this.toggleAnimate())},a.prototype.toggleAnimate=function(){return this.options.animate=!this.options.animate,this.$wrapper.toggleClass(""+this.options.baseClass+"-animate"),this.$element},a.prototype.disabled=function(a){return"undefined"==typeof a?this.options.disabled:(a=!!a,a===this.options.disabled?this.$element:this.toggleDisabled())},a.prototype.toggleDisabled=function(){return this.options.disabled=!this.options.disabled,this.$element.prop("disabled",this.options.disabled),this.$wrapper.toggleClass(""+this.options.baseClass+"-disabled"),this.$element},a.prototype.readonly=function(a){return"undefined"==typeof a?this.options.readonly:(a=!!a,a===this.options.readonly?this.$element:this.toggleReadonly())},a.prototype.toggleReadonly=function(){return this.options.readonly=!this.options.readonly,this.$element.prop("readonly",this.options.readonly),this.$wrapper.toggleClass(""+this.options.baseClass+"-readonly"),this.$element},a.prototype.indeterminate=function(a){return"undefined"==typeof a?this.options.indeterminate:(a=!!a,a===this.options.indeterminate?this.$element:this.toggleIndeterminate())},a.prototype.toggleIndeterminate=function(){return this.options.indeterminate=!this.options.indeterminate,this.$element.prop("indeterminate",this.options.indeterminate),this.$wrapper.toggleClass(""+this.options.baseClass+"-indeterminate"),
-this._containerPosition(),this.$element},a.prototype.inverse=function(a){return"undefined"==typeof a?this.options.inverse:(a=!!a,a===this.options.inverse?this.$element:this.toggleInverse())},a.prototype.toggleInverse=function(){var a,b;return this.$wrapper.toggleClass(""+this.options.baseClass+"-inverse"),b=this.$on.clone(!0),a=this.$off.clone(!0),this.$on.replaceWith(a),this.$off.replaceWith(b),this.$on=a,this.$off=b,this.options.inverse=!this.options.inverse,this.$element},a.prototype.onColor=function(a){var b;return b=this.options.onColor,"undefined"==typeof a?b:(null!=b&&this.$on.removeClass(""+this.options.baseClass+"-"+b),this.$on.addClass(""+this.options.baseClass+"-"+a),this.options.onColor=a,this.$element)},a.prototype.offColor=function(a){var b;return b=this.options.offColor,"undefined"==typeof a?b:(null!=b&&this.$off.removeClass(""+this.options.baseClass+"-"+b),this.$off.addClass(""+this.options.baseClass+"-"+a),this.options.offColor=a,this.$element)},a.prototype.onText=function(a){return"undefined"==typeof a?this.options.onText:(this.$on.html(a),this._width(),this._containerPosition(),this.options.onText=a,this.$element)},a.prototype.offText=function(a){return"undefined"==typeof a?this.options.offText:(this.$off.html(a),this._width(),this._containerPosition(),this.options.offText=a,this.$element)},a.prototype.labelText=function(a){return"undefined"==typeof a?this.options.labelText:(this.$label.html(a),this._width(),this.options.labelText=a,this.$element)},a.prototype.handleWidth=function(a){return"undefined"==typeof a?this.options.handleWidth:(this.options.handleWidth=a,this._width(),this._containerPosition(),this.$element)},a.prototype.labelWidth=function(a){return"undefined"==typeof a?this.options.labelWidth:(this.options.labelWidth=a,this._width(),this._containerPosition(),this.$element)},a.prototype.baseClass=function(a){return this.options.baseClass},a.prototype.wrapperClass=function(a){return"undefined"==typeof a?this.options.wrapperClass:(a||(a=b.fn.bootstrapSwitch.defaults.wrapperClass),this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(" ")),this.$wrapper.addClass(this._getClasses(a).join(" ")),this.options.wrapperClass=a,this.$element)},a.prototype.radioAllOff=function(a){return"undefined"==typeof a?this.options.radioAllOff:(a=!!a,a===this.options.radioAllOff?this.$element:(this.options.radioAllOff=a,this.$element))},a.prototype.onInit=function(a){return"undefined"==typeof a?this.options.onInit:(a||(a=b.fn.bootstrapSwitch.defaults.onInit),this.options.onInit=a,this.$element)},a.prototype.onSwitchChange=function(a){return"undefined"==typeof a?this.options.onSwitchChange:(a||(a=b.fn.bootstrapSwitch.defaults.onSwitchChange),this.options.onSwitchChange=a,this.$element)},a.prototype.destroy=function(){var a;return a=this.$element.closest("form"),a.length&&a.off("reset.bootstrapSwitch").removeData("bootstrap-switch"),this.$container.children().not(this.$element).remove(),this.$element.unwrap().unwrap().off(".bootstrapSwitch").removeData("bootstrap-switch"),this.$element},a.prototype._width=function(){var a,b;return a=this.$on.add(this.$off),a.add(this.$label).css("width",""),b="auto"===this.options.handleWidth?Math.max(this.$on.width(),this.$off.width()):this.options.handleWidth,a.width(b),this.$label.width(function(a){return function(c,d){return"auto"!==a.options.labelWidth?a.options.labelWidth:b>d?b:d}}(this)),this._handleWidth=this.$on.outerWidth(),this._labelWidth=this.$label.outerWidth(),this.$container.width(2*this._handleWidth+this._labelWidth),this.$wrapper.width(this._handleWidth+this._labelWidth)},a.prototype._containerPosition=function(a,b){return null==a&&(a=this.options.state),this.$container.css("margin-left",function(b){return function(){var c;return c=[0,"-"+b._handleWidth+"px"],b.options.indeterminate?"-"+b._handleWidth/2+"px":a?b.options.inverse?c[1]:c[0]:b.options.inverse?c[0]:c[1]}}(this)),b?setTimeout(function(){return b()},50):void 0},a.prototype._init=function(){var a,b;return a=function(a){return function(){return a._width(),a._containerPosition(null,function(){return a.options.animate?a.$wrapper.addClass(""+a.options.baseClass+"-animate"):void 0})}}(this),this.$wrapper.is(":visible")?a():b=c.setInterval(function(d){return function(){return d.$wrapper.is(":visible")?(a(),c.clearInterval(b)):void 0}}(this),50)},a.prototype._elementHandlers=function(){return this.$element.on({"change.bootstrapSwitch":function(a){return function(c,d){var e;return c.preventDefault(),c.stopImmediatePropagation(),e=a.$element.is(":checked"),a._containerPosition(e),e!==a.options.state?(a.options.state=e,a.$wrapper.toggleClass(""+a.options.baseClass+"-off").toggleClass(""+a.options.baseClass+"-on"),d?void 0:(a.$element.is(":radio")&&b("[name='"+a.$element.attr("name")+"']").not(a.$element).prop("checked",!1).trigger("change.bootstrapSwitch",!0),a.$element.trigger("switchChange.bootstrapSwitch",[e]))):void 0}}(this),"focus.bootstrapSwitch":function(a){return function(b){return b.preventDefault(),a.$wrapper.addClass(""+a.options.baseClass+"-focused")}}(this),"blur.bootstrapSwitch":function(a){return function(b){return b.preventDefault(),a.$wrapper.removeClass(""+a.options.baseClass+"-focused")}}(this),"keydown.bootstrapSwitch":function(a){return function(b){if(b.which&&!a.options.disabled&&!a.options.readonly)switch(b.which){case 37:return b.preventDefault(),b.stopImmediatePropagation(),a.state(!1);case 39:return b.preventDefault(),b.stopImmediatePropagation(),a.state(!0)}}}(this)})},a.prototype._handleHandlers=function(){return this.$on.on("click.bootstrapSwitch",function(a){return function(b){return b.preventDefault(),b.stopPropagation(),a.state(!1),a.$element.trigger("focus.bootstrapSwitch")}}(this)),this.$off.on("click.bootstrapSwitch",function(a){return function(b){return b.preventDefault(),b.stopPropagation(),a.state(!0),a.$element.trigger("focus.bootstrapSwitch")}}(this))},a.prototype._labelHandlers=function(){return this.$label.on({"mousedown.bootstrapSwitch touchstart.bootstrapSwitch":function(a){return function(b){return a._dragStart||a.options.disabled||a.options.readonly?void 0:(b.preventDefault(),b.stopPropagation(),a._dragStart=(b.pageX||b.originalEvent.touches[0].pageX)-parseInt(a.$container.css("margin-left"),10),a.options.animate&&a.$wrapper.removeClass(""+a.options.baseClass+"-animate"),a.$element.trigger("focus.bootstrapSwitch"))}}(this),"mousemove.bootstrapSwitch touchmove.bootstrapSwitch":function(a){return function(b){var c;if(null!=a._dragStart&&(b.preventDefault(),c=(b.pageX||b.originalEvent.touches[0].pageX)-a._dragStart,!(c<-a._handleWidth||c>0)))return a._dragEnd=c,a.$container.css("margin-left",""+a._dragEnd+"px")}}(this),"mouseup.bootstrapSwitch touchend.bootstrapSwitch":function(a){return function(b){var c;if(a._dragStart)return b.preventDefault(),a.options.animate&&a.$wrapper.addClass(""+a.options.baseClass+"-animate"),a._dragEnd?(c=a._dragEnd>-(a._handleWidth/2),a._dragEnd=!1,a.state(a.options.inverse?!c:c)):a.state(!a.options.state),a._dragStart=!1}}(this),"mouseleave.bootstrapSwitch":function(a){return function(b){return a.$label.trigger("mouseup.bootstrapSwitch")}}(this)})},a.prototype._externalLabelHandler=function(){var a;return a=this.$element.closest("label"),a.on("click",function(b){return function(c){return c.preventDefault(),c.stopImmediatePropagation(),c.target===a[0]?b.toggleState():void 0}}(this))},a.prototype._formHandler=function(){var a;return a=this.$element.closest("form"),a.data("bootstrap-switch")?void 0:a.on("reset.bootstrapSwitch",function(){return c.setTimeout(function(){return a.find("input").filter(function(){return b(this).data("bootstrap-switch")}).each(function(){return b(this).bootstrapSwitch("state",this.checked)})},1)}).data("bootstrap-switch",!0)},a.prototype._getClasses=function(a){var c,d,e,f;if(!b.isArray(a))return[""+this.options.baseClass+"-"+a];for(d=[],e=0,f=a.length;f>e;e++)c=a[e],d.push(""+this.options.baseClass+"-"+c);return d},a}(),b.fn.bootstrapSwitch=function(){var c,e,f;return e=arguments[0],c=2<=arguments.length?a.call(arguments,1):[],f=this,this.each(function(){var a,g;return a=b(this),g=a.data("bootstrap-switch"),g||a.data("bootstrap-switch",g=new d(this,e)),"string"==typeof e?f=g[e].apply(g,c):void 0}),f},b.fn.bootstrapSwitch.Constructor=d,b.fn.bootstrapSwitch.defaults={state:!0,size:null,animate:!0,disabled:!1,readonly:!1,indeterminate:!1,inverse:!1,radioAllOff:!1,onColor:"primary",offColor:"default",onText:"ON",offText:"OFF",labelText:"&nbsp;",handleWidth:"auto",labelWidth:"auto",baseClass:"bootstrap-switch",wrapperClass:"wrapper",onInit:function(){},onSwitchChange:function(){}}}(window.jQuery,window)}.call(this),function(){"use strict";angular.module("frapontillo.bootstrap-switch",[]),angular.module("frapontillo.bootstrap-switch").directive("bsSwitch",["$parse","$timeout",function(a,b){return{restrict:"A",require:"ngModel",link:function(c,d,e,f){var g=!1,h=function(){if("radio"===e.type)return e.value||a(e.ngValue)(c)||!0;var b=a(e.ngTrueValue)(c);return angular.isUndefined(b)&&(b=!0),b},i=function(a){return c.$eval(a)===!0},j=function(a){return a===!0||"true"===a||!a},k=function(a){return a?a:void 0},l=function(a){var b={switchRadioOff:j,switchActive:function(a){return!j(a)},switchAnimate:j,switchLabel:function(a){return a?a:"&nbsp;"},switchIcon:function(a){return a?"<span class='"+a+"'></span>":void 0},switchWrapper:function(a){return a||"wrapper"},switchInverse:i,switchReadonly:i},c=b[a]||k;return c(e[a])},m=function(a,b,c){if(g){var d=l(c);a.bootstrapSwitch(b,d)}},n=function(){m(d,"disabled","switchActive")},o=function(){if(!g){var a=f.$modelValue===h();g=!g,d.bootstrapSwitch({radioAllOff:l("switchRadioOff"),disabled:l("switchActive"),state:a,onText:l("switchOnText"),offText:l("switchOffText"),onColor:l("switchOnColor"),offColor:l("switchOffColor"),animate:l("switchAnimate"),size:l("switchSize"),labelText:l(e.switchLabel?"switchLabel":"switchIcon"),wrapperClass:l("switchWrapper"),handleWidth:l("switchHandleWidth"),labelWidth:l("switchLabelWidth"),inverse:l("switchInverse"),readonly:l("switchReadonly")}),"radio"===e.type?f.$setViewValue(f.$modelValue):f.$setViewValue(a)}},p=function(){function a(){return f.$modelValue}e.$observe("switchActive",function(a){var c=j(a);c?n(c):b(function(){n(c)})}),c.$watch(a,function(a){o(),void 0!==a?d.bootstrapSwitch("state",a===h(),!1):d.bootstrapSwitch("toggleIndeterminate",!0,!1)},!0);var g={switchRadioOff:"radioAllOff",switchOnText:"onText",switchOffText:"offText",switchOnColor:"onColor",switchOffColor:"offColor",switchAnimate:"animate",switchSize:"size",switchLabel:"labelText",switchIcon:"labelText",switchWrapper:"wrapperClass",switchHandleWidth:"handleWidth",switchLabelWidth:"labelWidth",switchInverse:"inverse",switchReadonly:"readonly"},i=function(a,b){return function(){e.$observe(a,function(){m(d,b[a],a)})}};for(var k in g)e.$observe(k,i(k,g))},q=function(){"radio"===e.type?d.on("change.bootstrapSwitch",function(a){f.$modelValue===f.$viewValue&&a.target.checked!==$(a.target).bootstrapSwitch("state")&&(a.target.checked?f.$setViewValue(h()):h()===f.$viewValue&&f.$setViewValue(void 0))}):d.on("switchChange.bootstrapSwitch",function(a){f.$setViewValue(a.target.checked)})};q(),p(),c.$on("$destroy",function(){d.bootstrapSwitch("destroy")})}}}]).directive("bsSwitch",function(){return{restrict:"E",require:"ngModel",template:"<input bs-switch>",replace:!0}})}(),function(){"use strict";var a=this,b=a.Chart,c=function(a){this.canvas=a.canvas,this.ctx=a;var b=function(a,b){return a["offset"+b]?a["offset"+b]:document.defaultView.getComputedStyle(a).getPropertyValue(b)},c=this.width=b(a.canvas,"Width"),e=this.height=b(a.canvas,"Height");a.canvas.width=c,a.canvas.height=e;var c=this.width=a.canvas.width,e=this.height=a.canvas.height;return this.aspectRatio=this.width/this.height,d.retinaScale(this),this};c.defaults={global:{animation:!0,animationSteps:60,animationEasing:"easeOutQuart",showScale:!0,scaleOverride:!1,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:!0,scaleLabel:"<%=value%>",scaleIntegersOnly:!0,scaleBeginAtZero:!1,scaleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",responsive:!1,maintainAspectRatio:!0,showTooltips:!0,customTooltips:!1,tooltipEvents:["mousemove","touchstart","touchmove","mouseout"],tooltipFillColor:"rgba(0,0,0,0.8)",tooltipFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipFontSize:14,tooltipFontStyle:"normal",tooltipFontColor:"#fff",tooltipTitleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipTitleFontSize:14,tooltipTitleFontStyle:"bold",tooltipTitleFontColor:"#fff",tooltipYPadding:6,tooltipXPadding:6,tooltipCaretSize:8,tooltipCornerRadius:6,tooltipXOffset:10,tooltipTemplate:"<%if (label){%><%=label%>: <%}%><%= value %>",multiTooltipTemplate:"<%= value %>",multiTooltipKeyBackground:"#fff",onAnimationProgress:function(){},onAnimationComplete:function(){}}},c.types={};var d=c.helpers={},e=d.each=function(a,b,c){var d=Array.prototype.slice.call(arguments,3);if(a)if(a.length===+a.length){var e;for(e=0;e<a.length;e++)b.apply(c,[a[e],e].concat(d))}else for(var f in a)b.apply(c,[a[f],f].concat(d))},f=d.clone=function(a){var b={};return e(a,function(c,d){a.hasOwnProperty(d)&&(b[d]=c)}),b},g=d.extend=function(a){return e(Array.prototype.slice.call(arguments,1),function(b){e(b,function(c,d){b.hasOwnProperty(d)&&(a[d]=c)})}),a},h=d.merge=function(a,b){var c=Array.prototype.slice.call(arguments,0);return c.unshift({}),g.apply(null,c)},i=d.indexOf=function(a,b){if(Array.prototype.indexOf)return a.indexOf(b);for(var c=0;c<a.length;c++)if(a[c]===b)return c;return-1},j=(d.where=function(a,b){var c=[];return d.each(a,function(a){b(a)&&c.push(a)}),c},d.findNextWhere=function(a,b,c){c||(c=-1);for(var d=c+1;d<a.length;d++){var e=a[d];if(b(e))return e}},d.findPreviousWhere=function(a,b,c){c||(c=a.length);for(var d=c-1;d>=0;d--){var e=a[d];if(b(e))return e}},d.inherits=function(a){var b=this,c=a&&a.hasOwnProperty("constructor")?a.constructor:function(){return b.apply(this,arguments)},d=function(){this.constructor=c};return d.prototype=b.prototype,c.prototype=new d,c.extend=j,a&&g(c.prototype,a),c.__super__=b.prototype,c}),k=d.noop=function(){},l=d.uid=function(){var a=0;return function(){return"chart-"+a++}}(),m=d.warn=function(a){window.console&&"function"==typeof window.console.warn&&console.warn(a)},n=d.amd="function"==typeof define&&define.amd,o=d.isNumber=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},p=d.max=function(a){return Math.max.apply(Math,a)},q=d.min=function(a){return Math.min.apply(Math,a)},r=(d.cap=function(a,b,c){if(o(b)){if(a>b)return b}else if(o(c)&&c>a)return c;return a},d.getDecimalPlaces=function(a){return a%1!==0&&o(a)?a.toString().split(".")[1].length:0}),s=d.radians=function(a){return a*(Math.PI/180)},t=(d.getAngleFromPoint=function(a,b){var c=b.x-a.x,d=b.y-a.y,e=Math.sqrt(c*c+d*d),f=2*Math.PI+Math.atan2(d,c);return 0>c&&0>d&&(f+=2*Math.PI),{angle:f,distance:e}},d.aliasPixel=function(a){return a%2===0?0:.5}),u=(d.splineCurve=function(a,b,c,d){var e=Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-a.y,2)),f=Math.sqrt(Math.pow(c.x-b.x,2)+Math.pow(c.y-b.y,2)),g=d*e/(e+f),h=d*f/(e+f);return{inner:{x:b.x-g*(c.x-a.x),y:b.y-g*(c.y-a.y)},outer:{x:b.x+h*(c.x-a.x),y:b.y+h*(c.y-a.y)}}},d.calculateOrderOfMagnitude=function(a){return Math.floor(Math.log(a)/Math.LN10)}),v=(d.calculateScaleRange=function(a,b,c,d,e){var f=2,g=Math.floor(b/(1.5*c)),h=f>=g,i=p(a),j=q(a);i===j&&(i+=.5,j>=.5&&!d?j-=.5:i+=.5);for(var k=Math.abs(i-j),l=u(k),m=Math.ceil(i/(1*Math.pow(10,l)))*Math.pow(10,l),n=d?0:Math.floor(j/(1*Math.pow(10,l)))*Math.pow(10,l),o=m-n,r=Math.pow(10,l),s=Math.round(o/r);(s>g||g>2*s)&&!h;)if(s>g)r*=2,s=Math.round(o/r),s%1!==0&&(h=!0);else if(e&&l>=0){if(r/2%1!==0)break;r/=2,s=Math.round(o/r)}else r/=2,s=Math.round(o/r);return h&&(s=f,r=o/s),{steps:s,stepValue:r,min:n,max:n+s*r}},d.template=function(a,b){function c(a,b){var c=/\W/.test(a)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+a.replace(/[\r\t\n]/g," ").split("<%").join("  ").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("   ").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):d[a]=d[a];return b?c(b):c}if(a instanceof Function)return a(b);var d={};return c(a,b)}),w=(d.generateLabels=function(a,b,c,d){var f=new Array(b);return labelTemplateString&&e(f,function(b,e){f[e]=v(a,{value:c+d*(e+1)})}),f},d.easingEffects={linear:function(a){return a},easeInQuad:function(a){return a*a},easeOutQuad:function(a){return-1*a*(a-2)},easeInOutQuad:function(a){return(a/=.5)<1?.5*a*a:-0.5*(--a*(a-2)-1)},easeInCubic:function(a){return a*a*a},easeOutCubic:function(a){return 1*((a=a/1-1)*a*a+1)},easeInOutCubic:function(a){return(a/=.5)<1?.5*a*a*a:.5*((a-=2)*a*a+2)},easeInQuart:function(a){return a*a*a*a},easeOutQuart:function(a){return-1*((a=a/1-1)*a*a*a-1)},easeInOutQuart:function(a){return(a/=.5)<1?.5*a*a*a*a:-0.5*((a-=2)*a*a*a-2)},easeInQuint:function(a){return 1*(a/=1)*a*a*a*a},easeOutQuint:function(a){return 1*((a=a/1-1)*a*a*a*a+1)},easeInOutQuint:function(a){return(a/=.5)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)},easeInSine:function(a){return-1*Math.cos(a/1*(Math.PI/2))+1},easeOutSine:function(a){return 1*Math.sin(a/1*(Math.PI/2))},easeInOutSine:function(a){return-0.5*(Math.cos(Math.PI*a/1)-1)},easeInExpo:function(a){return 0===a?1:1*Math.pow(2,10*(a/1-1))},easeOutExpo:function(a){return 1===a?1:1*(-Math.pow(2,-10*a/1)+1)},easeInOutExpo:function(a){return 0===a?0:1===a?1:(a/=.5)<1?.5*Math.pow(2,10*(a-1)):.5*(-Math.pow(2,-10*--a)+2)},easeInCirc:function(a){return a>=1?a:-1*(Math.sqrt(1-(a/=1)*a)-1)},easeOutCirc:function(a){return 1*Math.sqrt(1-(a=a/1-1)*a)},easeInOutCirc:function(a){return(a/=.5)<1?-0.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)},easeInElastic:function(a){var b=1.70158,c=0,d=1;return 0===a?0:1==(a/=1)?1:(c||(c=.3),d<Math.abs(1)?(d=1,b=c/4):b=c/(2*Math.PI)*Math.asin(1/d),-(d*Math.pow(2,10*(a-=1))*Math.sin((1*a-b)*(2*Math.PI)/c)))},easeOutElastic:function(a){var b=1.70158,c=0,d=1;return 0===a?0:1==(a/=1)?1:(c||(c=.3),d<Math.abs(1)?(d=1,b=c/4):b=c/(2*Math.PI)*Math.asin(1/d),d*Math.pow(2,-10*a)*Math.sin((1*a-b)*(2*Math.PI)/c)+1)},easeInOutElastic:function(a){var b=1.70158,c=0,d=1;return 0===a?0:2==(a/=.5)?1:(c||(c=1*(.3*1.5)),d<Math.abs(1)?(d=1,b=c/4):b=c/(2*Math.PI)*Math.asin(1/d),1>a?-.5*(d*Math.pow(2,10*(a-=1))*Math.sin((1*a-b)*(2*Math.PI)/c)):d*Math.pow(2,-10*(a-=1))*Math.sin((1*a-b)*(2*Math.PI)/c)*.5+1)},easeInBack:function(a){var b=1.70158;return 1*(a/=1)*a*((b+1)*a-b)},easeOutBack:function(a){var b=1.70158;return 1*((a=a/1-1)*a*((b+1)*a+b)+1)},easeInOutBack:function(a){var b=1.70158;return(a/=.5)<1?.5*(a*a*(((b*=1.525)+1)*a-b)):.5*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)},easeInBounce:function(a){return 1-w.easeOutBounce(1-a)},easeOutBounce:function(a){return(a/=1)<1/2.75?1*(7.5625*a*a):2/2.75>a?1*(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>a?1*(7.5625*(a-=2.25/2.75)*a+.9375):1*(7.5625*(a-=2.625/2.75)*a+.984375)},easeInOutBounce:function(a){return.5>a?.5*w.easeInBounce(2*a):.5*w.easeOutBounce(2*a-1)+.5}}),x=d.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){return window.setTimeout(a,1e3/60)}}(),y=d.cancelAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(a){return window.clearTimeout(a,1e3/60)}}(),z=(d.animationLoop=function(a,b,c,d,e,f){var g=0,h=w[c]||w.linear,i=function(){g++;var c=g/b,j=h(c);a.call(f,j,c,g),d.call(f,j,c),b>g?f.animationFrame=x(i):e.apply(f)};x(i)},d.getRelativePosition=function(a){var b,c,d=a.originalEvent||a,e=a.currentTarget||a.srcElement,f=e.getBoundingClientRect();return d.touches?(b=d.touches[0].clientX-f.left,c=d.touches[0].clientY-f.top):(b=d.clientX-f.left,c=d.clientY-f.top),{x:b,y:c}},d.addEvent=function(a,b,c){a.addEventListener?a.addEventListener(b,c):a.attachEvent?a.attachEvent("on"+b,c):a["on"+b]=c}),A=d.removeEvent=function(a,b,c){a.removeEventListener?a.removeEventListener(b,c,!1):a.detachEvent?a.detachEvent("on"+b,c):a["on"+b]=k},B=(d.bindEvents=function(a,b,c){a.events||(a.events={}),e(b,function(b){a.events[b]=function(){c.apply(a,arguments)},z(a.chart.canvas,b,a.events[b])})},d.unbindEvents=function(a,b){e(b,function(b,c){A(a.chart.canvas,c,b)})}),C=d.getMaximumWidth=function(a){var b=a.parentNode;return b.clientWidth},D=d.getMaximumHeight=function(a){var b=a.parentNode;return b.clientHeight},E=(d.getMaximumSize=d.getMaximumWidth,d.retinaScale=function(a){var b=a.ctx,c=a.canvas.width,d=a.canvas.height;window.devicePixelRatio&&(b.canvas.style.width=c+"px",b.canvas.style.height=d+"px",b.canvas.height=d*window.devicePixelRatio,b.canvas.width=c*window.devicePixelRatio,b.scale(window.devicePixelRatio,window.devicePixelRatio))}),F=d.clear=function(a){a.ctx.clearRect(0,0,a.width,a.height)},G=d.fontString=function(a,b,c){return b+" "+a+"px "+c},H=d.longestText=function(a,b,c){a.font=b;var d=0;return e(c,function(b){var c=a.measureText(b).width;d=c>d?c:d}),d},I=d.drawRoundedRectangle=function(a,b,c,d,e,f){a.beginPath(),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadraticCurveTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadraticCurveTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadraticCurveTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadraticCurveTo(b,c,b+f,c),a.closePath()};c.instances={},c.Type=function(a,b,d){this.options=b,this.chart=d,this.id=l(),c.instances[this.id]=this,b.responsive&&this.resize(),this.initialize.call(this,a)},g(c.Type.prototype,{initialize:function(){return this},clear:function(){return F(this.chart),this},stop:function(){return y(this.animationFrame),this},resize:function(a){this.stop();var b=this.chart.canvas,c=C(this.chart.canvas),d=this.options.maintainAspectRatio?c/this.chart.aspectRatio:D(this.chart.canvas);return b.width=this.chart.width=c,b.height=this.chart.height=d,E(this.chart),"function"==typeof a&&a.apply(this,Array.prototype.slice.call(arguments,1)),this},reflow:k,render:function(a){return a&&this.reflow(),this.options.animation&&!a?d.animationLoop(this.draw,this.options.animationSteps,this.options.animationEasing,this.options.onAnimationProgress,this.options.onAnimationComplete,this):(this.draw(),this.options.onAnimationComplete.call(this)),this},generateLegend:function(){return v(this.options.legendTemplate,this)},destroy:function(){this.clear(),B(this,this.events);var a=this.chart.canvas;a.width=this.chart.width,a.height=this.chart.height,a.style.removeProperty?(a.style.removeProperty("width"),a.style.removeProperty("height")):(a.style.removeAttribute("width"),a.style.removeAttribute("height")),delete c.instances[this.id]},showTooltip:function(a,b){"undefined"==typeof this.activeElements&&(this.activeElements=[]);var f=function(a){var b=!1;return a.length!==this.activeElements.length?b=!0:(e(a,function(a,c){a!==this.activeElements[c]&&(b=!0)},this),b)}.call(this,a);if(f||b){if(this.activeElements=a,this.draw(),this.options.customTooltips&&this.options.customTooltips(!1),a.length>0)if(this.datasets&&this.datasets.length>1){for(var g,h,j=this.datasets.length-1;j>=0&&(g=this.datasets[j].points||this.datasets[j].bars||this.datasets[j].segments,h=i(g,a[0]),-1===h);j--);var k=[],l=[],m=function(a){var b,c,e,f,g,i=[],j=[],m=[];return d.each(this.datasets,function(a){b=a.points||a.bars||a.segments,b[h]&&b[h].hasValue()&&i.push(b[h])}),d.each(i,function(a){j.push(a.x),m.push(a.y),k.push(d.template(this.options.multiTooltipTemplate,a)),l.push({fill:a._saved.fillColor||a.fillColor,stroke:a._saved.strokeColor||a.strokeColor})},this),g=q(m),e=p(m),f=q(j),c=p(j),{x:f>this.chart.width/2?f:c,y:(g+e)/2}}.call(this,h);new c.MultiTooltip({x:m.x,y:m.y,xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,xOffset:this.options.tooltipXOffset,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,titleTextColor:this.options.tooltipTitleFontColor,titleFontFamily:this.options.tooltipTitleFontFamily,titleFontStyle:this.options.tooltipTitleFontStyle,titleFontSize:this.options.tooltipTitleFontSize,cornerRadius:this.options.tooltipCornerRadius,labels:k,legendColors:l,legendColorBackground:this.options.multiTooltipKeyBackground,title:a[0].label,chart:this.chart,ctx:this.chart.ctx,custom:this.options.customTooltips}).draw()}else e(a,function(a){var b=a.tooltipPosition();new c.Tooltip({x:Math.round(b.x),y:Math.round(b.y),xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,caretHeight:this.options.tooltipCaretSize,cornerRadius:this.options.tooltipCornerRadius,text:v(this.options.tooltipTemplate,a),chart:this.chart,custom:this.options.customTooltips}).draw()},this);return this}},toBase64Image:function(){return this.chart.canvas.toDataURL.apply(this.chart.canvas,arguments)}}),c.Type.extend=function(a){var b=this,d=function(){return b.apply(this,arguments)};if(d.prototype=f(b.prototype),g(d.prototype,a),d.extend=c.Type.extend,a.name||b.prototype.name){var e=a.name||b.prototype.name,i=c.defaults[b.prototype.name]?f(c.defaults[b.prototype.name]):{};c.defaults[e]=g(i,a.defaults),c.types[e]=d,c.prototype[e]=function(a,b){var f=h(c.defaults.global,c.defaults[e],b||{});return new d(a,f,this)}}else m("Name not provided for this chart, so it hasn't been registered");return b},c.Element=function(a){g(this,a),this.initialize.apply(this,arguments),this.save()},g(c.Element.prototype,{initialize:function(){},restore:function(a){return a?e(a,function(a){this[a]=this._saved[a]},this):g(this,this._saved),this},save:function(){return this._saved=f(this),delete this._saved._saved,this},update:function(a){return e(a,function(a,b){this._saved[b]=this[b],this[b]=a},this),this},transition:function(a,b){return e(a,function(a,c){this[c]=(a-this._saved[c])*b+this._saved[c]},this),this},tooltipPosition:function(){return{x:this.x,y:this.y}},hasValue:function(){return o(this.value)}}),c.Element.extend=j,c.Point=c.Element.extend({display:!0,inRange:function(a,b){var c=this.hitDetectionRadius+this.radius;return Math.pow(a-this.x,2)+Math.pow(b-this.y,2)<Math.pow(c,2)},draw:function(){if(this.display){var a=this.ctx;a.beginPath(),a.arc(this.x,this.y,this.radius,0,2*Math.PI),a.closePath(),a.strokeStyle=this.strokeColor,a.lineWidth=this.strokeWidth,a.fillStyle=this.fillColor,a.fill(),a.stroke()}}}),c.Arc=c.Element.extend({inRange:function(a,b){var c=d.getAngleFromPoint(this,{x:a,y:b}),e=c.angle>=this.startAngle&&c.angle<=this.endAngle,f=c.distance>=this.innerRadius&&c.distance<=this.outerRadius;return e&&f},tooltipPosition:function(){var a=this.startAngle+(this.endAngle-this.startAngle)/2,b=(this.outerRadius-this.innerRadius)/2+this.innerRadius;return{x:this.x+Math.cos(a)*b,y:this.y+Math.sin(a)*b}},draw:function(a){var b=this.ctx;b.beginPath(),b.arc(this.x,this.y,this.outerRadius,this.startAngle,this.endAngle),b.arc(this.x,this.y,this.innerRadius,this.endAngle,this.startAngle,!0),b.closePath(),b.strokeStyle=this.strokeColor,b.lineWidth=this.strokeWidth,b.fillStyle=this.fillColor,b.fill(),b.lineJoin="bevel",this.showStroke&&b.stroke()}}),c.Rectangle=c.Element.extend({draw:function(){var a=this.ctx,b=this.width/2,c=this.x-b,d=this.x+b,e=this.base-(this.base-this.y),f=this.strokeWidth/2;this.showStroke&&(c+=f,d-=f,e+=f),a.beginPath(),a.fillStyle=this.fillColor,a.strokeStyle=this.strokeColor,a.lineWidth=this.strokeWidth,a.moveTo(c,this.base),a.lineTo(c,e),a.lineTo(d,e),a.lineTo(d,this.base),a.fill(),this.showStroke&&a.stroke()},height:function(){return this.base-this.y},inRange:function(a,b){return a>=this.x-this.width/2&&a<=this.x+this.width/2&&b>=this.y&&b<=this.base}}),c.Tooltip=c.Element.extend({draw:function(){var a=this.chart.ctx;a.font=G(this.fontSize,this.fontStyle,this.fontFamily),this.xAlign="center",this.yAlign="above";var b=this.caretPadding=2,c=a.measureText(this.text).width+2*this.xPadding,d=this.fontSize+2*this.yPadding,e=d+this.caretHeight+b;this.x+c/2>this.chart.width?this.xAlign="left":this.x-c/2<0&&(this.xAlign="right"),this.y-e<0&&(this.yAlign="below");var f=this.x-c/2,g=this.y-e;if(a.fillStyle=this.fillColor,this.custom)this.custom(this);else{switch(this.yAlign){case"above":a.beginPath(),a.moveTo(this.x,this.y-b),a.lineTo(this.x+this.caretHeight,this.y-(b+this.caretHeight)),a.lineTo(this.x-this.caretHeight,this.y-(b+this.caretHeight)),a.closePath(),a.fill();break;case"below":g=this.y+b+this.caretHeight,a.beginPath(),a.moveTo(this.x,this.y+b),a.lineTo(this.x+this.caretHeight,this.y+b+this.caretHeight),a.lineTo(this.x-this.caretHeight,this.y+b+this.caretHeight),a.closePath(),a.fill()}switch(this.xAlign){case"left":f=this.x-c+(this.cornerRadius+this.caretHeight);break;case"right":f=this.x-(this.cornerRadius+this.caretHeight)}I(a,f,g,c,d,this.cornerRadius),a.fill(),a.fillStyle=this.textColor,a.textAlign="center",a.textBaseline="middle",a.fillText(this.text,f+c/2,g+d/2)}}}),c.MultiTooltip=c.Element.extend({initialize:function(){this.font=G(this.fontSize,this.fontStyle,this.fontFamily),this.titleFont=G(this.titleFontSize,this.titleFontStyle,this.titleFontFamily),this.height=this.labels.length*this.fontSize+(this.labels.length-1)*(this.fontSize/2)+2*this.yPadding+1.5*this.titleFontSize,this.ctx.font=this.titleFont;var a=this.ctx.measureText(this.title).width,b=H(this.ctx,this.font,this.labels)+this.fontSize+3,c=p([b,a]);this.width=c+2*this.xPadding;var d=this.height/2;this.y-d<0?this.y=d:this.y+d>this.chart.height&&(this.y=this.chart.height-d),this.x>this.chart.width/2?this.x-=this.xOffset+this.width:this.x+=this.xOffset},getLineHeight:function(a){var b=this.y-this.height/2+this.yPadding,c=a-1;return 0===a?b+this.titleFontSize/2:b+(1.5*this.fontSize*c+this.fontSize/2)+1.5*this.titleFontSize},draw:function(){if(this.custom)this.custom(this);else{I(this.ctx,this.x,this.y-this.height/2,this.width,this.height,this.cornerRadius);var a=this.ctx;a.fillStyle=this.fillColor,a.fill(),a.closePath(),a.textAlign="left",a.textBaseline="middle",a.fillStyle=this.titleTextColor,a.font=this.titleFont,a.fillText(this.title,this.x+this.xPadding,this.getLineHeight(0)),a.font=this.font,d.each(this.labels,function(b,c){a.fillStyle=this.textColor,a.fillText(b,this.x+this.xPadding+this.fontSize+3,this.getLineHeight(c+1)),a.fillStyle=this.legendColorBackground,a.fillRect(this.x+this.xPadding,this.getLineHeight(c+1)-this.fontSize/2,this.fontSize,this.fontSize),a.fillStyle=this.legendColors[c].fill,a.fillRect(this.x+this.xPadding,this.getLineHeight(c+1)-this.fontSize/2,this.fontSize,this.fontSize)},this)}}}),c.Scale=c.Element.extend({initialize:function(){this.fit()},buildYLabels:function(){this.yLabels=[];for(var a=r(this.stepValue),b=0;b<=this.steps;b++)this.yLabels.push(v(this.templateString,{value:(this.min+b*this.stepValue).toFixed(a)}));this.yLabelWidth=this.display&&this.showLabels?H(this.ctx,this.font,this.yLabels):0},addXLabel:function(a){this.xLabels.push(a),this.valuesCount++,this.fit()},removeXLabel:function(){this.xLabels.shift(),this.valuesCount--,this.fit()},fit:function(){this.startPoint=this.display?this.fontSize:0,this.endPoint=this.display?this.height-1.5*this.fontSize-5:this.height,this.startPoint+=this.padding,this.endPoint-=this.padding;var a,b=this.endPoint-this.startPoint;for(this.calculateYRange(b),this.buildYLabels(),this.calculateXLabelRotation();b>this.endPoint-this.startPoint;)b=this.endPoint-this.startPoint,
-a=this.yLabelWidth,this.calculateYRange(b),this.buildYLabels(),a<this.yLabelWidth&&this.calculateXLabelRotation()},calculateXLabelRotation:function(){this.ctx.font=this.font;var a,b,c=this.ctx.measureText(this.xLabels[0]).width,d=this.ctx.measureText(this.xLabels[this.xLabels.length-1]).width;if(this.xScalePaddingRight=d/2+3,this.xScalePaddingLeft=c/2>this.yLabelWidth+10?c/2:this.yLabelWidth+10,this.xLabelRotation=0,this.display){var e,f=H(this.ctx,this.font,this.xLabels);this.xLabelWidth=f;for(var g=Math.floor(this.calculateX(1)-this.calculateX(0))-6;this.xLabelWidth>g&&0===this.xLabelRotation||this.xLabelWidth>g&&this.xLabelRotation<=90&&this.xLabelRotation>0;)e=Math.cos(s(this.xLabelRotation)),a=e*c,b=e*d,a+this.fontSize/2>this.yLabelWidth+8&&(this.xScalePaddingLeft=a+this.fontSize/2),this.xScalePaddingRight=this.fontSize/2,this.xLabelRotation++,this.xLabelWidth=e*f;this.xLabelRotation>0&&(this.endPoint-=Math.sin(s(this.xLabelRotation))*f+3)}else this.xLabelWidth=0,this.xScalePaddingRight=this.padding,this.xScalePaddingLeft=this.padding},calculateYRange:k,drawingArea:function(){return this.startPoint-this.endPoint},calculateY:function(a){var b=this.drawingArea()/(this.min-this.max);return this.endPoint-b*(a-this.min)},calculateX:function(a){var b=(this.xLabelRotation>0,this.width-(this.xScalePaddingLeft+this.xScalePaddingRight)),c=b/Math.max(this.valuesCount-(this.offsetGridLines?0:1),1),d=c*a+this.xScalePaddingLeft;return this.offsetGridLines&&(d+=c/2),Math.round(d)},update:function(a){d.extend(this,a),this.fit()},draw:function(){var a=this.ctx,b=(this.endPoint-this.startPoint)/this.steps,c=Math.round(this.xScalePaddingLeft);this.display&&(a.fillStyle=this.textColor,a.font=this.font,e(this.yLabels,function(e,f){var g=this.endPoint-b*f,h=Math.round(g),i=this.showHorizontalLines;a.textAlign="right",a.textBaseline="middle",this.showLabels&&a.fillText(e,c-10,g),0!==f||i||(i=!0),i&&a.beginPath(),f>0?(a.lineWidth=this.gridLineWidth,a.strokeStyle=this.gridLineColor):(a.lineWidth=this.lineWidth,a.strokeStyle=this.lineColor),h+=d.aliasPixel(a.lineWidth),i&&(a.moveTo(c,h),a.lineTo(this.width,h),a.stroke(),a.closePath()),a.lineWidth=this.lineWidth,a.strokeStyle=this.lineColor,a.beginPath(),a.moveTo(c-5,h),a.lineTo(c,h),a.stroke(),a.closePath()},this),e(this.xLabels,function(b,c){var d=this.calculateX(c)+t(this.lineWidth),e=this.calculateX(c-(this.offsetGridLines?.5:0))+t(this.lineWidth),f=this.xLabelRotation>0,g=this.showVerticalLines;0!==c||g||(g=!0),g&&a.beginPath(),c>0?(a.lineWidth=this.gridLineWidth,a.strokeStyle=this.gridLineColor):(a.lineWidth=this.lineWidth,a.strokeStyle=this.lineColor),g&&(a.moveTo(e,this.endPoint),a.lineTo(e,this.startPoint-3),a.stroke(),a.closePath()),a.lineWidth=this.lineWidth,a.strokeStyle=this.lineColor,a.beginPath(),a.moveTo(e,this.endPoint),a.lineTo(e,this.endPoint+5),a.stroke(),a.closePath(),a.save(),a.translate(d,f?this.endPoint+12:this.endPoint+8),a.rotate(-1*s(this.xLabelRotation)),a.font=this.font,a.textAlign=f?"right":"center",a.textBaseline=f?"middle":"top",a.fillText(b,0,0),a.restore()},this))}}),c.RadialScale=c.Element.extend({initialize:function(){this.size=q([this.height,this.width]),this.drawingArea=this.display?this.size/2-(this.fontSize/2+this.backdropPaddingY):this.size/2},calculateCenterOffset:function(a){var b=this.drawingArea/(this.max-this.min);return(a-this.min)*b},update:function(){this.lineArc?this.drawingArea=this.display?this.size/2-(this.fontSize/2+this.backdropPaddingY):this.size/2:this.setScaleSize(),this.buildYLabels()},buildYLabels:function(){this.yLabels=[];for(var a=r(this.stepValue),b=0;b<=this.steps;b++)this.yLabels.push(v(this.templateString,{value:(this.min+b*this.stepValue).toFixed(a)}))},getCircumference:function(){return 2*Math.PI/this.valuesCount},setScaleSize:function(){var a,b,c,d,e,f,g,h,i,j,k,l,m=q([this.height/2-this.pointLabelFontSize-5,this.width/2]),n=this.width,p=0;for(this.ctx.font=G(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily),b=0;b<this.valuesCount;b++)a=this.getPointPosition(b,m),c=this.ctx.measureText(v(this.templateString,{value:this.labels[b]})).width+5,0===b||b===this.valuesCount/2?(d=c/2,a.x+d>n&&(n=a.x+d,e=b),a.x-d<p&&(p=a.x-d,g=b)):b<this.valuesCount/2?a.x+c>n&&(n=a.x+c,e=b):b>this.valuesCount/2&&a.x-c<p&&(p=a.x-c,g=b);i=p,j=Math.ceil(n-this.width),f=this.getIndexAngle(e),h=this.getIndexAngle(g),k=j/Math.sin(f+Math.PI/2),l=i/Math.sin(h+Math.PI/2),k=o(k)?k:0,l=o(l)?l:0,this.drawingArea=m-(l+k)/2,this.setCenterPoint(l,k)},setCenterPoint:function(a,b){var c=this.width-b-this.drawingArea,d=a+this.drawingArea;this.xCenter=(d+c)/2,this.yCenter=this.height/2},getIndexAngle:function(a){var b=2*Math.PI/this.valuesCount;return a*b-Math.PI/2},getPointPosition:function(a,b){var c=this.getIndexAngle(a);return{x:Math.cos(c)*b+this.xCenter,y:Math.sin(c)*b+this.yCenter}},draw:function(){if(this.display){var a=this.ctx;if(e(this.yLabels,function(b,c){if(c>0){var d,e=c*(this.drawingArea/this.steps),f=this.yCenter-e;if(this.lineWidth>0)if(a.strokeStyle=this.lineColor,a.lineWidth=this.lineWidth,this.lineArc)a.beginPath(),a.arc(this.xCenter,this.yCenter,e,0,2*Math.PI),a.closePath(),a.stroke();else{a.beginPath();for(var g=0;g<this.valuesCount;g++)d=this.getPointPosition(g,this.calculateCenterOffset(this.min+c*this.stepValue)),0===g?a.moveTo(d.x,d.y):a.lineTo(d.x,d.y);a.closePath(),a.stroke()}if(this.showLabels){if(a.font=G(this.fontSize,this.fontStyle,this.fontFamily),this.showLabelBackdrop){var h=a.measureText(b).width;a.fillStyle=this.backdropColor,a.fillRect(this.xCenter-h/2-this.backdropPaddingX,f-this.fontSize/2-this.backdropPaddingY,h+2*this.backdropPaddingX,this.fontSize+2*this.backdropPaddingY)}a.textAlign="center",a.textBaseline="middle",a.fillStyle=this.fontColor,a.fillText(b,this.xCenter,f)}}},this),!this.lineArc){a.lineWidth=this.angleLineWidth,a.strokeStyle=this.angleLineColor;for(var b=this.valuesCount-1;b>=0;b--){if(this.angleLineWidth>0){var c=this.getPointPosition(b,this.calculateCenterOffset(this.max));a.beginPath(),a.moveTo(this.xCenter,this.yCenter),a.lineTo(c.x,c.y),a.stroke(),a.closePath()}var d=this.getPointPosition(b,this.calculateCenterOffset(this.max)+5);a.font=G(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily),a.fillStyle=this.pointLabelFontColor;var f=this.labels.length,g=this.labels.length/2,h=g/2,i=h>b||b>f-h,j=b===h||b===f-h;0===b?a.textAlign="center":b===g?a.textAlign="center":g>b?a.textAlign="left":a.textAlign="right",j?a.textBaseline="middle":i?a.textBaseline="bottom":a.textBaseline="top",a.fillText(this.labels[b],d.x,d.y)}}}}}),d.addEvent(window,"resize",function(){var a;return function(){clearTimeout(a),a=setTimeout(function(){e(c.instances,function(a){a.options.responsive&&a.resize(a.render,!0)})},50)}}()),n?define(function(){return c}):"object"==typeof module&&module.exports&&(module.exports=c),a.Chart=c,c.noConflict=function(){return a.Chart=b,c}}.call(this),function(){"use strict";var a=this,b=a.Chart,c=b.helpers,d={scaleBeginAtZero:!0,scaleShowGridLines:!0,scaleGridLineColor:"rgba(0,0,0,.05)",scaleGridLineWidth:1,scaleShowHorizontalLines:!0,scaleShowVerticalLines:!0,barShowStroke:!0,barStrokeWidth:2,barValueSpacing:5,barDatasetSpacing:1,legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<datasets.length; i++){%><li><span style="background-color:<%=datasets[i].fillColor%>"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>'};b.Type.extend({name:"Bar",defaults:d,initialize:function(a){var d=this.options;this.ScaleClass=b.Scale.extend({offsetGridLines:!0,calculateBarX:function(a,b,c){var e=this.calculateBaseWidth(),f=this.calculateX(c)-e/2,g=this.calculateBarWidth(a);return f+g*b+b*d.barDatasetSpacing+g/2},calculateBaseWidth:function(){return this.calculateX(1)-this.calculateX(0)-2*d.barValueSpacing},calculateBarWidth:function(a){var b=this.calculateBaseWidth()-(a-1)*d.barDatasetSpacing;return b/a}}),this.datasets=[],this.options.showTooltips&&c.bindEvents(this,this.options.tooltipEvents,function(a){var b="mouseout"!==a.type?this.getBarsAtEvent(a):[];this.eachBars(function(a){a.restore(["fillColor","strokeColor"])}),c.each(b,function(a){a.fillColor=a.highlightFill,a.strokeColor=a.highlightStroke}),this.showTooltip(b)}),this.BarClass=b.Rectangle.extend({strokeWidth:this.options.barStrokeWidth,showStroke:this.options.barShowStroke,ctx:this.chart.ctx}),c.each(a.datasets,function(b,d){var e={label:b.label||null,fillColor:b.fillColor,strokeColor:b.strokeColor,bars:[]};this.datasets.push(e),c.each(b.data,function(c,d){e.bars.push(new this.BarClass({value:c,label:a.labels[d],datasetLabel:b.label,strokeColor:b.strokeColor,fillColor:b.fillColor,highlightFill:b.highlightFill||b.fillColor,highlightStroke:b.highlightStroke||b.strokeColor}))},this)},this),this.buildScale(a.labels),this.BarClass.prototype.base=this.scale.endPoint,this.eachBars(function(a,b,d){c.extend(a,{width:this.scale.calculateBarWidth(this.datasets.length),x:this.scale.calculateBarX(this.datasets.length,d,b),y:this.scale.endPoint}),a.save()},this),this.render()},update:function(){this.scale.update(),c.each(this.activeElements,function(a){a.restore(["fillColor","strokeColor"])}),this.eachBars(function(a){a.save()}),this.render()},eachBars:function(a){c.each(this.datasets,function(b,d){c.each(b.bars,a,this,d)},this)},getBarsAtEvent:function(a){for(var b,d=[],e=c.getRelativePosition(a),f=function(a){d.push(a.bars[b])},g=0;g<this.datasets.length;g++)for(b=0;b<this.datasets[g].bars.length;b++)if(this.datasets[g].bars[b].inRange(e.x,e.y))return c.each(this.datasets,f),d;return d},buildScale:function(a){var b=this,d=function(){var a=[];return b.eachBars(function(b){a.push(b.value)}),a},e={templateString:this.options.scaleLabel,height:this.chart.height,width:this.chart.width,ctx:this.chart.ctx,textColor:this.options.scaleFontColor,fontSize:this.options.scaleFontSize,fontStyle:this.options.scaleFontStyle,fontFamily:this.options.scaleFontFamily,valuesCount:a.length,beginAtZero:this.options.scaleBeginAtZero,integersOnly:this.options.scaleIntegersOnly,calculateYRange:function(a){var b=c.calculateScaleRange(d(),a,this.fontSize,this.beginAtZero,this.integersOnly);c.extend(this,b)},xLabels:a,font:c.fontString(this.options.scaleFontSize,this.options.scaleFontStyle,this.options.scaleFontFamily),lineWidth:this.options.scaleLineWidth,lineColor:this.options.scaleLineColor,showHorizontalLines:this.options.scaleShowHorizontalLines,showVerticalLines:this.options.scaleShowVerticalLines,gridLineWidth:this.options.scaleShowGridLines?this.options.scaleGridLineWidth:0,gridLineColor:this.options.scaleShowGridLines?this.options.scaleGridLineColor:"rgba(0,0,0,0)",padding:this.options.showScale?0:this.options.barShowStroke?this.options.barStrokeWidth:0,showLabels:this.options.scaleShowLabels,display:this.options.showScale};this.options.scaleOverride&&c.extend(e,{calculateYRange:c.noop,steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}),this.scale=new this.ScaleClass(e)},addData:function(a,b){c.each(a,function(a,c){this.datasets[c].bars.push(new this.BarClass({value:a,label:b,x:this.scale.calculateBarX(this.datasets.length,c,this.scale.valuesCount+1),y:this.scale.endPoint,width:this.scale.calculateBarWidth(this.datasets.length),base:this.scale.endPoint,strokeColor:this.datasets[c].strokeColor,fillColor:this.datasets[c].fillColor}))},this),this.scale.addXLabel(b),this.update()},removeData:function(){this.scale.removeXLabel(),c.each(this.datasets,function(a){a.bars.shift()},this),this.update()},reflow:function(){c.extend(this.BarClass.prototype,{y:this.scale.endPoint,base:this.scale.endPoint});var a=c.extend({height:this.chart.height,width:this.chart.width});this.scale.update(a)},draw:function(a){var b=a||1;this.clear();this.chart.ctx;this.scale.draw(b),c.each(this.datasets,function(a,d){c.each(a.bars,function(a,c){a.hasValue()&&(a.base=this.scale.endPoint,a.transition({x:this.scale.calculateBarX(this.datasets.length,d,c),y:this.scale.calculateY(a.value),width:this.scale.calculateBarWidth(this.datasets.length)},b).draw())},this)},this)}})}.call(this),function(){"use strict";var a=this,b=a.Chart,c=b.helpers,d={segmentShowStroke:!0,segmentStrokeColor:"#fff",segmentStrokeWidth:2,percentageInnerCutout:50,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:!0,animateScale:!1,legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<segments.length; i++){%><li><span style="background-color:<%=segments[i].fillColor%>"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>'};b.Type.extend({name:"Doughnut",defaults:d,initialize:function(a){this.segments=[],this.outerRadius=(c.min([this.chart.width,this.chart.height])-this.options.segmentStrokeWidth/2)/2,this.SegmentArc=b.Arc.extend({ctx:this.chart.ctx,x:this.chart.width/2,y:this.chart.height/2}),this.options.showTooltips&&c.bindEvents(this,this.options.tooltipEvents,function(a){var b="mouseout"!==a.type?this.getSegmentsAtEvent(a):[];c.each(this.segments,function(a){a.restore(["fillColor"])}),c.each(b,function(a){a.fillColor=a.highlightColor}),this.showTooltip(b)}),this.calculateTotal(a),c.each(a,function(a,b){this.addData(a,b,!0)},this),this.render()},getSegmentsAtEvent:function(a){var b=[],d=c.getRelativePosition(a);return c.each(this.segments,function(a){a.inRange(d.x,d.y)&&b.push(a)},this),b},addData:function(a,b,c){var d=b||this.segments.length;this.segments.splice(d,0,new this.SegmentArc({value:a.value,outerRadius:this.options.animateScale?0:this.outerRadius,innerRadius:this.options.animateScale?0:this.outerRadius/100*this.options.percentageInnerCutout,fillColor:a.color,highlightColor:a.highlight||a.color,showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,startAngle:1.5*Math.PI,circumference:this.options.animateRotate?0:this.calculateCircumference(a.value),label:a.label})),c||(this.reflow(),this.update())},calculateCircumference:function(a){return 2*Math.PI*(Math.abs(a)/this.total)},calculateTotal:function(a){this.total=0,c.each(a,function(a){this.total+=Math.abs(a.value)},this)},update:function(){this.calculateTotal(this.segments),c.each(this.activeElements,function(a){a.restore(["fillColor"])}),c.each(this.segments,function(a){a.save()}),this.render()},removeData:function(a){var b=c.isNumber(a)?a:this.segments.length-1;this.segments.splice(b,1),this.reflow(),this.update()},reflow:function(){c.extend(this.SegmentArc.prototype,{x:this.chart.width/2,y:this.chart.height/2}),this.outerRadius=(c.min([this.chart.width,this.chart.height])-this.options.segmentStrokeWidth/2)/2,c.each(this.segments,function(a){a.update({outerRadius:this.outerRadius,innerRadius:this.outerRadius/100*this.options.percentageInnerCutout})},this)},draw:function(a){var b=a?a:1;this.clear(),c.each(this.segments,function(a,c){a.transition({circumference:this.calculateCircumference(a.value),outerRadius:this.outerRadius,innerRadius:this.outerRadius/100*this.options.percentageInnerCutout},b),a.endAngle=a.startAngle+a.circumference,a.draw(),0===c&&(a.startAngle=1.5*Math.PI),c<this.segments.length-1&&(this.segments[c+1].startAngle=a.endAngle)},this)}}),b.types.Doughnut.extend({name:"Pie",defaults:c.merge(d,{percentageInnerCutout:0})})}.call(this),function(){"use strict";var a=this,b=a.Chart,c=b.helpers,d={scaleShowGridLines:!0,scaleGridLineColor:"rgba(0,0,0,.05)",scaleGridLineWidth:1,scaleShowHorizontalLines:!0,scaleShowVerticalLines:!0,bezierCurve:!0,bezierCurveTension:.4,pointDot:!0,pointDotRadius:4,pointDotStrokeWidth:1,pointHitDetectionRadius:20,datasetStroke:!0,datasetStrokeWidth:2,datasetFill:!0,legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<datasets.length; i++){%><li><span style="background-color:<%=datasets[i].strokeColor%>"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>'};b.Type.extend({name:"Line",defaults:d,initialize:function(a){this.PointClass=b.Point.extend({strokeWidth:this.options.pointDotStrokeWidth,radius:this.options.pointDotRadius,display:this.options.pointDot,hitDetectionRadius:this.options.pointHitDetectionRadius,ctx:this.chart.ctx,inRange:function(a){return Math.pow(a-this.x,2)<Math.pow(this.radius+this.hitDetectionRadius,2)}}),this.datasets=[],this.options.showTooltips&&c.bindEvents(this,this.options.tooltipEvents,function(a){var b="mouseout"!==a.type?this.getPointsAtEvent(a):[];this.eachPoints(function(a){a.restore(["fillColor","strokeColor"])}),c.each(b,function(a){a.fillColor=a.highlightFill,a.strokeColor=a.highlightStroke}),this.showTooltip(b)}),c.each(a.datasets,function(b){var d={label:b.label||null,fillColor:b.fillColor,strokeColor:b.strokeColor,pointColor:b.pointColor,pointStrokeColor:b.pointStrokeColor,points:[]};this.datasets.push(d),c.each(b.data,function(c,e){d.points.push(new this.PointClass({value:c,label:a.labels[e],datasetLabel:b.label,strokeColor:b.pointStrokeColor,fillColor:b.pointColor,highlightFill:b.pointHighlightFill||b.pointColor,highlightStroke:b.pointHighlightStroke||b.pointStrokeColor}))},this),this.buildScale(a.labels),this.eachPoints(function(a,b){c.extend(a,{x:this.scale.calculateX(b),y:this.scale.endPoint}),a.save()},this)},this),this.render()},update:function(){this.scale.update(),c.each(this.activeElements,function(a){a.restore(["fillColor","strokeColor"])}),this.eachPoints(function(a){a.save()}),this.render()},eachPoints:function(a){c.each(this.datasets,function(b){c.each(b.points,a,this)},this)},getPointsAtEvent:function(a){var b=[],d=c.getRelativePosition(a);return c.each(this.datasets,function(a){c.each(a.points,function(a){a.inRange(d.x,d.y)&&b.push(a)})},this),b},buildScale:function(a){var d=this,e=function(){var a=[];return d.eachPoints(function(b){a.push(b.value)}),a},f={templateString:this.options.scaleLabel,height:this.chart.height,width:this.chart.width,ctx:this.chart.ctx,textColor:this.options.scaleFontColor,fontSize:this.options.scaleFontSize,fontStyle:this.options.scaleFontStyle,fontFamily:this.options.scaleFontFamily,valuesCount:a.length,beginAtZero:this.options.scaleBeginAtZero,integersOnly:this.options.scaleIntegersOnly,calculateYRange:function(a){var b=c.calculateScaleRange(e(),a,this.fontSize,this.beginAtZero,this.integersOnly);c.extend(this,b)},xLabels:a,font:c.fontString(this.options.scaleFontSize,this.options.scaleFontStyle,this.options.scaleFontFamily),lineWidth:this.options.scaleLineWidth,lineColor:this.options.scaleLineColor,showHorizontalLines:this.options.scaleShowHorizontalLines,showVerticalLines:this.options.scaleShowVerticalLines,gridLineWidth:this.options.scaleShowGridLines?this.options.scaleGridLineWidth:0,gridLineColor:this.options.scaleShowGridLines?this.options.scaleGridLineColor:"rgba(0,0,0,0)",padding:this.options.showScale?0:this.options.pointDotRadius+this.options.pointDotStrokeWidth,showLabels:this.options.scaleShowLabels,display:this.options.showScale};this.options.scaleOverride&&c.extend(f,{calculateYRange:c.noop,steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}),this.scale=new b.Scale(f)},addData:function(a,b){c.each(a,function(a,c){this.datasets[c].points.push(new this.PointClass({value:a,label:b,x:this.scale.calculateX(this.scale.valuesCount+1),y:this.scale.endPoint,strokeColor:this.datasets[c].pointStrokeColor,fillColor:this.datasets[c].pointColor}))},this),this.scale.addXLabel(b),this.update()},removeData:function(){this.scale.removeXLabel(),c.each(this.datasets,function(a){a.points.shift()},this),this.update()},reflow:function(){var a=c.extend({height:this.chart.height,width:this.chart.width});this.scale.update(a)},draw:function(a){var b=a||1;this.clear();var d=this.chart.ctx,e=function(a){return null!==a.value},f=function(a,b,d){return c.findNextWhere(b,e,d)||a},g=function(a,b,d){return c.findPreviousWhere(b,e,d)||a};this.scale.draw(b),c.each(this.datasets,function(a){var h=c.where(a.points,e);c.each(a.points,function(a,c){a.hasValue()&&a.transition({y:this.scale.calculateY(a.value),x:this.scale.calculateX(c)},b)},this),this.options.bezierCurve&&c.each(h,function(a,b){var d=b>0&&b<h.length-1?this.options.bezierCurveTension:0;a.controlPoints=c.splineCurve(g(a,h,b),a,f(a,h,b),d),a.controlPoints.outer.y>this.scale.endPoint?a.controlPoints.outer.y=this.scale.endPoint:a.controlPoints.outer.y<this.scale.startPoint&&(a.controlPoints.outer.y=this.scale.startPoint),a.controlPoints.inner.y>this.scale.endPoint?a.controlPoints.inner.y=this.scale.endPoint:a.controlPoints.inner.y<this.scale.startPoint&&(a.controlPoints.inner.y=this.scale.startPoint)},this),d.lineWidth=this.options.datasetStrokeWidth,d.strokeStyle=a.strokeColor,d.beginPath(),c.each(h,function(a,b){if(0===b)d.moveTo(a.x,a.y);else if(this.options.bezierCurve){var c=g(a,h,b);d.bezierCurveTo(c.controlPoints.outer.x,c.controlPoints.outer.y,a.controlPoints.inner.x,a.controlPoints.inner.y,a.x,a.y)}else d.lineTo(a.x,a.y)},this),d.stroke(),this.options.datasetFill&&h.length>0&&(d.lineTo(h[h.length-1].x,this.scale.endPoint),d.lineTo(h[0].x,this.scale.endPoint),d.fillStyle=a.fillColor,d.closePath(),d.fill()),c.each(h,function(a){a.draw()})},this)}})}.call(this),function(){"use strict";var a=this,b=a.Chart,c=b.helpers,d={scaleShowLabelBackdrop:!0,scaleBackdropColor:"rgba(255,255,255,0.75)",scaleBeginAtZero:!0,scaleBackdropPaddingY:2,scaleBackdropPaddingX:2,scaleShowLine:!0,segmentShowStroke:!0,segmentStrokeColor:"#fff",segmentStrokeWidth:2,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:!0,animateScale:!1,legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<segments.length; i++){%><li><span style="background-color:<%=segments[i].fillColor%>"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>'};b.Type.extend({name:"PolarArea",defaults:d,initialize:function(a){this.segments=[],this.SegmentArc=b.Arc.extend({showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,ctx:this.chart.ctx,innerRadius:0,x:this.chart.width/2,y:this.chart.height/2}),this.scale=new b.RadialScale({display:this.options.showScale,fontStyle:this.options.scaleFontStyle,fontSize:this.options.scaleFontSize,fontFamily:this.options.scaleFontFamily,fontColor:this.options.scaleFontColor,showLabels:this.options.scaleShowLabels,showLabelBackdrop:this.options.scaleShowLabelBackdrop,backdropColor:this.options.scaleBackdropColor,backdropPaddingY:this.options.scaleBackdropPaddingY,backdropPaddingX:this.options.scaleBackdropPaddingX,lineWidth:this.options.scaleShowLine?this.options.scaleLineWidth:0,lineColor:this.options.scaleLineColor,lineArc:!0,width:this.chart.width,height:this.chart.height,xCenter:this.chart.width/2,yCenter:this.chart.height/2,ctx:this.chart.ctx,templateString:this.options.scaleLabel,valuesCount:a.length}),this.updateScaleRange(a),this.scale.update(),c.each(a,function(a,b){this.addData(a,b,!0)},this),this.options.showTooltips&&c.bindEvents(this,this.options.tooltipEvents,function(a){var b="mouseout"!==a.type?this.getSegmentsAtEvent(a):[];c.each(this.segments,function(a){a.restore(["fillColor"])}),c.each(b,function(a){a.fillColor=a.highlightColor}),this.showTooltip(b)}),this.render()},getSegmentsAtEvent:function(a){var b=[],d=c.getRelativePosition(a);return c.each(this.segments,function(a){a.inRange(d.x,d.y)&&b.push(a)},this),b},addData:function(a,b,c){var d=b||this.segments.length;this.segments.splice(d,0,new this.SegmentArc({fillColor:a.color,highlightColor:a.highlight||a.color,label:a.label,value:a.value,outerRadius:this.options.animateScale?0:this.scale.calculateCenterOffset(a.value),circumference:this.options.animateRotate?0:this.scale.getCircumference(),startAngle:1.5*Math.PI})),c||(this.reflow(),this.update())},removeData:function(a){var b=c.isNumber(a)?a:this.segments.length-1;this.segments.splice(b,1),this.reflow(),this.update()},calculateTotal:function(a){this.total=0,c.each(a,function(a){this.total+=a.value},this),this.scale.valuesCount=this.segments.length},updateScaleRange:function(a){var b=[];c.each(a,function(a){b.push(a.value)});var d=this.options.scaleOverride?{steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}:c.calculateScaleRange(b,c.min([this.chart.width,this.chart.height])/2,this.options.scaleFontSize,this.options.scaleBeginAtZero,this.options.scaleIntegersOnly);c.extend(this.scale,d,{size:c.min([this.chart.width,this.chart.height]),xCenter:this.chart.width/2,yCenter:this.chart.height/2})},update:function(){this.calculateTotal(this.segments),c.each(this.segments,function(a){a.save()}),this.reflow(),this.render()},reflow:function(){c.extend(this.SegmentArc.prototype,{x:this.chart.width/2,y:this.chart.height/2}),this.updateScaleRange(this.segments),this.scale.update(),c.extend(this.scale,{xCenter:this.chart.width/2,yCenter:this.chart.height/2}),c.each(this.segments,function(a){a.update({outerRadius:this.scale.calculateCenterOffset(a.value)})},this)},draw:function(a){var b=a||1;this.clear(),c.each(this.segments,function(a,c){a.transition({circumference:this.scale.getCircumference(),outerRadius:this.scale.calculateCenterOffset(a.value)},b),a.endAngle=a.startAngle+a.circumference,0===c&&(a.startAngle=1.5*Math.PI),c<this.segments.length-1&&(this.segments[c+1].startAngle=a.endAngle),a.draw()},this),this.scale.draw()}})}.call(this),function(){"use strict";var a=this,b=a.Chart,c=b.helpers;b.Type.extend({name:"Radar",defaults:{scaleShowLine:!0,angleShowLineOut:!0,scaleShowLabels:!1,scaleBeginAtZero:!0,angleLineColor:"rgba(0,0,0,.1)",angleLineWidth:1,pointLabelFontFamily:"'Arial'",pointLabelFontStyle:"normal",pointLabelFontSize:10,pointLabelFontColor:"#666",pointDot:!0,pointDotRadius:3,pointDotStrokeWidth:1,pointHitDetectionRadius:20,datasetStroke:!0,datasetStrokeWidth:2,datasetFill:!0,legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<datasets.length; i++){%><li><span style="background-color:<%=datasets[i].strokeColor%>"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>'},initialize:function(a){this.PointClass=b.Point.extend({strokeWidth:this.options.pointDotStrokeWidth,radius:this.options.pointDotRadius,display:this.options.pointDot,hitDetectionRadius:this.options.pointHitDetectionRadius,ctx:this.chart.ctx}),this.datasets=[],this.buildScale(a),this.options.showTooltips&&c.bindEvents(this,this.options.tooltipEvents,function(a){var b="mouseout"!==a.type?this.getPointsAtEvent(a):[];this.eachPoints(function(a){a.restore(["fillColor","strokeColor"])}),c.each(b,function(a){a.fillColor=a.highlightFill,a.strokeColor=a.highlightStroke}),this.showTooltip(b)}),c.each(a.datasets,function(b){var d={label:b.label||null,fillColor:b.fillColor,strokeColor:b.strokeColor,pointColor:b.pointColor,pointStrokeColor:b.pointStrokeColor,points:[]};this.datasets.push(d),c.each(b.data,function(c,e){var f;this.scale.animation||(f=this.scale.getPointPosition(e,this.scale.calculateCenterOffset(c))),d.points.push(new this.PointClass({value:c,label:a.labels[e],datasetLabel:b.label,x:this.options.animation?this.scale.xCenter:f.x,y:this.options.animation?this.scale.yCenter:f.y,strokeColor:b.pointStrokeColor,fillColor:b.pointColor,highlightFill:b.pointHighlightFill||b.pointColor,highlightStroke:b.pointHighlightStroke||b.pointStrokeColor}))},this)},this),this.render()},eachPoints:function(a){c.each(this.datasets,function(b){c.each(b.points,a,this)},this)},getPointsAtEvent:function(a){var b=c.getRelativePosition(a),d=c.getAngleFromPoint({x:this.scale.xCenter,y:this.scale.yCenter},b),e=2*Math.PI/this.scale.valuesCount,f=Math.round((d.angle-1.5*Math.PI)/e),g=[];return(f>=this.scale.valuesCount||0>f)&&(f=0),d.distance<=this.scale.drawingArea&&c.each(this.datasets,function(a){g.push(a.points[f])}),g},buildScale:function(a){this.scale=new b.RadialScale({display:this.options.showScale,fontStyle:this.options.scaleFontStyle,fontSize:this.options.scaleFontSize,fontFamily:this.options.scaleFontFamily,fontColor:this.options.scaleFontColor,showLabels:this.options.scaleShowLabels,showLabelBackdrop:this.options.scaleShowLabelBackdrop,backdropColor:this.options.scaleBackdropColor,backdropPaddingY:this.options.scaleBackdropPaddingY,backdropPaddingX:this.options.scaleBackdropPaddingX,lineWidth:this.options.scaleShowLine?this.options.scaleLineWidth:0,lineColor:this.options.scaleLineColor,angleLineColor:this.options.angleLineColor,angleLineWidth:this.options.angleShowLineOut?this.options.angleLineWidth:0,pointLabelFontColor:this.options.pointLabelFontColor,pointLabelFontSize:this.options.pointLabelFontSize,pointLabelFontFamily:this.options.pointLabelFontFamily,pointLabelFontStyle:this.options.pointLabelFontStyle,height:this.chart.height,width:this.chart.width,xCenter:this.chart.width/2,yCenter:this.chart.height/2,ctx:this.chart.ctx,templateString:this.options.scaleLabel,labels:a.labels,valuesCount:a.datasets[0].data.length}),this.scale.setScaleSize(),this.updateScaleRange(a.datasets),this.scale.buildYLabels()},updateScaleRange:function(a){var b=function(){var b=[];return c.each(a,function(a){a.data?b=b.concat(a.data):c.each(a.points,function(a){b.push(a.value)})}),b}(),d=this.options.scaleOverride?{steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}:c.calculateScaleRange(b,c.min([this.chart.width,this.chart.height])/2,this.options.scaleFontSize,this.options.scaleBeginAtZero,this.options.scaleIntegersOnly);c.extend(this.scale,d)},addData:function(a,b){this.scale.valuesCount++,c.each(a,function(a,c){var d=this.scale.getPointPosition(this.scale.valuesCount,this.scale.calculateCenterOffset(a));this.datasets[c].points.push(new this.PointClass({value:a,label:b,x:d.x,y:d.y,strokeColor:this.datasets[c].pointStrokeColor,fillColor:this.datasets[c].pointColor}))},this),this.scale.labels.push(b),this.reflow(),this.update()},removeData:function(){this.scale.valuesCount--,this.scale.labels.shift(),c.each(this.datasets,function(a){a.points.shift()},this),this.reflow(),this.update()},update:function(){this.eachPoints(function(a){a.save()}),this.reflow(),this.render()},reflow:function(){c.extend(this.scale,{width:this.chart.width,height:this.chart.height,size:c.min([this.chart.width,this.chart.height]),xCenter:this.chart.width/2,yCenter:this.chart.height/2}),this.updateScaleRange(this.datasets),this.scale.setScaleSize(),this.scale.buildYLabels()},draw:function(a){var b=a||1,d=this.chart.ctx;this.clear(),this.scale.draw(),c.each(this.datasets,function(a){c.each(a.points,function(a,c){a.hasValue()&&a.transition(this.scale.getPointPosition(c,this.scale.calculateCenterOffset(a.value)),b)},this),d.lineWidth=this.options.datasetStrokeWidth,d.strokeStyle=a.strokeColor,d.beginPath(),c.each(a.points,function(a,b){0===b?d.moveTo(a.x,a.y):d.lineTo(a.x,a.y)},this),d.closePath(),d.stroke(),d.fillStyle=a.fillColor,d.fill(),c.each(a.points,function(a){a.hasValue()&&a.draw()})},this)}})}.call(this),function(a){"use strict";"object"==typeof exports?module.exports=a("undefined"!=typeof angular?angular:require("angular"),"undefined"!=typeof Chart?Chart:require("chart.js")):"function"==typeof define&&define.amd?define(["angular","chart"],a):a(angular,Chart)}(function(a,b){"use strict";function c(){var c={},d={Chart:b,getOptions:function(b){var d=b&&c[b]||{};return a.extend({},c,d)}};this.setOptions=function(b,d){return d?void(c[b]=a.extend(c[b]||{},d)):(d=b,void(c=a.extend(c,d)))},this.$get=function(){return d}}function d(c,d){function f(a,b){return a&&b&&a.length&&b.length?Array.isArray(a[0])?a.length===b.length&&a.every(function(a,c){
-return a.length===b[c].length}):b.reduce(g,0)>0?a.length===b.length:!1:!1}function g(a,b){return a+b}function h(b,c,d,e){var f=null;return function(g){var h=c.getPointsAtEvent||c.getBarsAtEvent||c.getSegmentsAtEvent;if(h){var i=h.call(c,g);(e===!1||a.equals(f,i)===!1)&&(f=i,b[d](i,g),b.$apply())}}}function i(d,e){for(var f=a.copy(e.colours||c.getOptions(d).colours||b.defaults.global.colours);f.length<e.data.length;)f.push(e.getColour());return f.map(j)}function j(a){return"object"==typeof a&&null!==a?a:"string"==typeof a&&"#"===a[0]?l(o(a.substr(1))):k()}function k(){var a=[m(0,255),m(0,255),m(0,255)];return l(a)}function l(a){return{fillColor:n(a,.2),strokeColor:n(a,1),pointColor:n(a,1),pointStrokeColor:"#fff",pointHighlightFill:"#fff",pointHighlightStroke:n(a,.8)}}function m(a,b){return Math.floor(Math.random()*(b-a+1))+a}function n(a,b){return e?"rgb("+a.join(",")+")":"rgba("+a.concat(b).join(",")+")"}function o(a){var b=parseInt(a,16),c=b>>16&255,d=b>>8&255,e=255&b;return[c,d,e]}function p(b,c,d,e){return{labels:b,datasets:c.map(function(b,c){return a.extend({},e[c],{label:d[c],data:b})})}}function q(b,c,d){return b.map(function(b,e){return a.extend({},d[e],{label:b,value:c[e],color:d[e].strokeColor,highlight:d[e].pointHighlightStroke})})}function r(a,b){var c=a.parent(),d=c.find("chart-legend"),e="<chart-legend>"+b.generateLegend()+"</chart-legend>";d.length?d.replaceWith(e):c.append(e)}function s(a,b,c,d){Array.isArray(c.data[0])?a.datasets.forEach(function(a,c){(a.points||a.bars).forEach(function(a,d){a.value=b[c][d]})}):a.segments.forEach(function(a,c){a.value=b[c]}),a.update(),c.$emit("update",a),c.legend&&"false"!==c.legend&&r(d,a)}function t(a){return!a||Array.isArray(a)&&!a.length||"object"==typeof a&&!Object.keys(a).length}function u(d,e){var f=a.extend({},b.defaults.global,c.getOptions(d),e.options);return f.responsive}return function(b){return{restrict:"CA",scope:{data:"=?",labels:"=?",options:"=?",series:"=?",colours:"=?",getColour:"=?",chartType:"=",legend:"@",click:"=?",hover:"=?",chartData:"=?",chartLabels:"=?",chartOptions:"=?",chartSeries:"=?",chartColours:"=?",chartLegend:"@",chartClick:"=?",chartHover:"=?"},link:function(g,j){function l(a,b){g.$watch(a,function(a){"undefined"!=typeof a&&(g[b]=a)})}function m(c,d){if(!t(c)&&!a.equals(c,d)){var e=b||g.chartType;e&&(v&&v.destroy(),n(e))}}function n(b){if(u(b,g)&&0===j[0].clientHeight&&0===w.clientHeight)return d(function(){n(b)},50,!1);if(g.data&&g.data.length){g.getColour="function"==typeof g.getColour?g.getColour:k,g.colours=i(b,g);var e=j[0],f=e.getContext("2d"),l=Array.isArray(g.data[0])?p(g.labels,g.data,g.series||[],g.colours):q(g.labels,g.data,g.colours),m=a.extend({},c.getOptions(b),g.options);v=new c.Chart(f)[b](l,m),g.$emit("create",v),e.onclick=g.click?h(g,v,"click",!1):a.noop,e.onmousemove=g.hover?h(g,v,"hover",!0):a.noop,g.legend&&"false"!==g.legend&&r(j,v)}}function o(a){if("undefined"!=typeof console&&"test"!==c.getOptions().env){var b="function"==typeof console.warn?console.warn:console.log;g[a]&&b.call(console,'"%s" is deprecated and will be removed in a future version. Please use "chart-%s" instead.',a,a)}}var v,w=document.createElement("div");w.className="chart-container",j.replaceWith(w),w.appendChild(j[0]),e&&window.G_vmlCanvasManager.initElement(j[0]),["data","labels","options","series","colours","legend","click","hover"].forEach(o),l("chartData","data"),l("chartLabels","labels"),l("chartOptions","options"),l("chartSeries","series"),l("chartColours","colours"),l("chartLegend","legend"),l("chartClick","click"),l("chartHover","hover"),g.$watch("data",function(a,c){if(a&&a.length&&(!Array.isArray(a[0])||a[0].length)){var d=b||g.chartType;if(d){if(v){if(f(a,c))return s(v,a,g,j);v.destroy()}n(d)}}},!0),g.$watch("series",m,!0),g.$watch("labels",m,!0),g.$watch("options",m,!0),g.$watch("colours",m,!0),g.$watch("chartType",function(b,c){t(b)||a.equals(b,c)||(v&&v.destroy(),n(b))}),g.$on("$destroy",function(){v&&v.destroy()})}}}}b.defaults.global.responsive=!0,b.defaults.global.multiTooltipTemplate="<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>",b.defaults.global.colours=["#97BBCD","#DCDCDC","#F7464A","#46BFBD","#FDB45C","#949FB1","#4D5360"];var e="object"==typeof window.G_vmlCanvasManager&&null!==window.G_vmlCanvasManager&&"function"==typeof window.G_vmlCanvasManager.initElement;return e&&(b.defaults.global.animation=!1),a.module("chart.js",[]).provider("ChartJs",c).factory("ChartJsFactory",["ChartJs","$timeout",d]).directive("chartBase",["ChartJsFactory",function(a){return new a}]).directive("chartLine",["ChartJsFactory",function(a){return new a("Line")}]).directive("chartBar",["ChartJsFactory",function(a){return new a("Bar")}]).directive("chartRadar",["ChartJsFactory",function(a){return new a("Radar")}]).directive("chartDoughnut",["ChartJsFactory",function(a){return new a("Doughnut")}]).directive("chartPie",["ChartJsFactory",function(a){return new a("Pie")}]).directive("chartPolarArea",["ChartJsFactory",function(a){return new a("PolarArea")}])}),function(a,b,c){"use strict";function d(a,c,d){function e(a,d,e){var g,h;e=e||{},h=e.expires,g=b.isDefined(e.path)?e.path:f,b.isUndefined(d)&&(h="Thu, 01 Jan 1970 00:00:00 GMT",d=""),b.isString(h)&&(h=new Date(h));var i=encodeURIComponent(a)+"="+encodeURIComponent(d);i+=g?";path="+g:"",i+=e.domain?";domain="+e.domain:"",i+=h?";expires="+h.toUTCString():"",i+=e.secure?";secure":"";var j=i.length+1;return j>4096&&c.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+j+" > 4096 bytes)!"),i}var f=d.baseHref(),g=a[0];return function(a,b,c){g.cookie=e(a,b,c)}}b.module("ngCookies",["ng"]).provider("$cookies",[function(){function a(a){return a?b.extend({},d,a):d}var d=this.defaults={};this.$get=["$$cookieReader","$$cookieWriter",function(d,e){return{get:function(a){return d()[a]},getObject:function(a){var c=this.get(a);return c?b.fromJson(c):c},getAll:function(){return d()},put:function(b,c,d){e(b,c,a(d))},putObject:function(a,c,d){this.put(a,b.toJson(c),d)},remove:function(b,d){e(b,c,a(d))}}}]}]),b.module("ngCookies").factory("$cookieStore",["$cookies",function(a){return{get:function(b){return a.getObject(b)},put:function(b,c){a.putObject(b,c)},remove:function(b){a.remove(b)}}}]),d.$inject=["$document","$log","$browser"],b.module("ngCookies").provider("$$cookieWriter",function(){this.$get=d})}(window,window.angular),!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):"object"==typeof exports?exports["angular-file-upload"]=b():a["angular-file-upload"]=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=d(c(2)),f=d(c(3)),g=d(c(4)),h=d(c(5)),i=d(c(6)),j=d(c(7)),k=d(c(1)),l=d(c(8)),m=d(c(9)),n=d(c(10)),o=d(c(11)),p=d(c(12));angular.module(e.name,[]).value("fileUploaderOptions",f).factory("FileUploader",g).factory("FileLikeObject",h).factory("FileItem",i).factory("FileDirective",j).factory("FileSelect",k).factory("FileDrop",l).factory("FileOver",m).directive("nvFileSelect",n).directive("nvFileDrop",o).directive("nvFileOver",p).run(["FileUploader","FileLikeObject","FileItem","FileDirective","FileSelect","FileDrop","FileOver",function(a,b,c,d,e,f,g){a.FileLikeObject=b,a.FileItem=c,a.FileDirective=d,a.FileSelect=e,a.FileDrop=f,a.FileOver=g}])},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function j(a,b,c){var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){var e=Object.getPrototypeOf(a);return null===e?void 0:j(e,b,c)}if("value"in d&&d.writable)return d.value;var f=d.get;return void 0===f?void 0:f.call(c)},g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)},h=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},i=(d(c(2)),angular.extend);a.exports=function(a){var b=function(a){function b(a){h(this,b);var c=i(a,{events:{$destroy:"destroy",change:"onChange"},prop:"select"});f(Object.getPrototypeOf(b.prototype),"constructor",this).call(this,c),this.uploader.isHTML5||this.element.removeAttr("multiple"),this.element.prop("value",null)}return g(b,a),e(b,{getOptions:{value:function(){}},getFilters:{value:function(){}},isEmptyAfterSelection:{value:function(){return!!this.element.attr("multiple")}},onChange:{value:function(){var a=this.uploader.isHTML5?this.element[0].files:this.element[0],b=this.getOptions(),c=this.getFilters();this.uploader.isHTML5||this.destroy(),this.uploader.addToQueue(a,b,c),this.isEmptyAfterSelection()&&(this.element.prop("value",null),this.element.replaceWith(this.element=this.element.clone(!0)))}}}),b}(a);return b},a.exports.$inject=["FileDirective"]},function(a,b){a.exports={name:"angularFileUpload"}},function(a,b){"use strict";a.exports={url:"/",alias:"file",headers:{},queue:[],progress:0,autoUpload:!1,removeAfterUpload:!1,method:"POST",filters:[],formData:[],queueLimit:Number.MAX_VALUE,withCredentials:!1}},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},g=(d(c(2)),angular.copy),h=angular.extend,i=angular.forEach,j=angular.isObject,k=angular.isNumber,l=angular.isDefined,m=angular.isArray,n=angular.element;a.exports=function(a,b,c,d,o,p){var q=d.File,r=d.FormData,s=function(){function d(b){f(this,d);var c=g(a);h(this,c,b,{isUploading:!1,_nextIndex:0,_failFilterIndex:-1,_directives:{select:[],drop:[],over:[]}}),this.filters.unshift({name:"queueLimit",fn:this._queueLimitFilter}),this.filters.unshift({name:"folder",fn:this._folderFilter})}return e(d,{addToQueue:{value:function(a,b,c){var d=this,e=this.isArrayLikeObject(a)?a:[a],f=this._getFilters(c),g=this.queue.length,h=[];i(e,function(a){var c=new o(a);if(d._isValidFile(c,f,b)){var e=new p(d,a,b);h.push(e),d.queue.push(e),d._onAfterAddingFile(e)}else{var g=f[d._failFilterIndex];d._onWhenAddingFileFailed(c,g,b)}}),this.queue.length!==g&&(this._onAfterAddingAll(h),this.progress=this._getTotalProgress()),this._render(),this.autoUpload&&this.uploadAll()}},removeFromQueue:{value:function(a){var b=this.getIndexOfItem(a),c=this.queue[b];c.isUploading&&c.cancel(),this.queue.splice(b,1),c._destroy(),this.progress=this._getTotalProgress()}},clearQueue:{value:function(){for(;this.queue.length;)this.queue[0].remove();this.progress=0}},uploadItem:{value:function(a){var b=this.getIndexOfItem(a),c=this.queue[b],d=this.isHTML5?"_xhrTransport":"_iframeTransport";c._prepareToUploading(),this.isUploading||(this.isUploading=!0,this[d](c))}},cancelItem:{value:function(a){var b=this.getIndexOfItem(a),c=this.queue[b],d=this.isHTML5?"_xhr":"_form";c&&c.isUploading&&c[d].abort()}},uploadAll:{value:function(){var a=this.getNotUploadedItems().filter(function(a){return!a.isUploading});a.length&&(i(a,function(a){return a._prepareToUploading()}),a[0].upload())}},cancelAll:{value:function(){var a=this.getNotUploadedItems();i(a,function(a){return a.cancel()})}},isFile:{value:function(a){return this.constructor.isFile(a)}},isFileLikeObject:{value:function(a){return this.constructor.isFileLikeObject(a)}},isArrayLikeObject:{value:function(a){return this.constructor.isArrayLikeObject(a)}},getIndexOfItem:{value:function(a){return k(a)?a:this.queue.indexOf(a)}},getNotUploadedItems:{value:function(){return this.queue.filter(function(a){return!a.isUploaded})}},getReadyItems:{value:function(){return this.queue.filter(function(a){return a.isReady&&!a.isUploading}).sort(function(a,b){return a.index-b.index})}},destroy:{value:function(){var a=this;i(this._directives,function(b){i(a._directives[b],function(a){a.destroy()})})}},onAfterAddingAll:{value:function(a){}},onAfterAddingFile:{value:function(a){}},onWhenAddingFileFailed:{value:function(a,b,c){}},onBeforeUploadItem:{value:function(a){}},onProgressItem:{value:function(a,b){}},onProgressAll:{value:function(a){}},onSuccessItem:{value:function(a,b,c,d){}},onErrorItem:{value:function(a,b,c,d){}},onCancelItem:{value:function(a,b,c,d){}},onCompleteItem:{value:function(a,b,c,d){}},onCompleteAll:{value:function(){}},_getTotalProgress:{value:function(a){if(this.removeAfterUpload)return a||0;var b=this.getNotUploadedItems().length,c=b?this.queue.length-b:this.queue.length,d=100/this.queue.length,e=(a||0)*d/100;return Math.round(c*d+e)}},_getFilters:{value:function(a){if(!a)return this.filters;if(m(a))return a;var b=a.match(/[^\s,]+/g);return this.filters.filter(function(a){return-1!==b.indexOf(a.name)})}},_render:{value:function(){b.$$phase||b.$apply()}},_folderFilter:{value:function(a){return!(!a.size&&!a.type)}},_queueLimitFilter:{value:function(){return this.queue.length<this.queueLimit}},_isValidFile:{value:function(a,b,c){var d=this;return this._failFilterIndex=-1,b.length?b.every(function(b){return d._failFilterIndex++,b.fn.call(d,a,c)}):!0}},_isSuccessCode:{value:function(a){return a>=200&&300>a||304===a}},_transformResponse:{value:function(a,b){var d=this._headersGetter(b);return i(c.defaults.transformResponse,function(b){a=b(a,d)}),a}},_parseHeaders:{value:function(a){var b,c,d,e={};return a?(i(a.split("\n"),function(a){d=a.indexOf(":"),b=a.slice(0,d).trim().toLowerCase(),c=a.slice(d+1).trim(),b&&(e[b]=e[b]?e[b]+", "+c:c)}),e):e}},_headersGetter:{value:function(a){return function(b){return b?a[b.toLowerCase()]||null:a}}},_xhrTransport:{value:function(a){var b=this,c=a._xhr=new XMLHttpRequest,d=new r;if(this._onBeforeUploadItem(a),i(a.formData,function(a){i(a,function(a,b){d.append(b,a)})}),"number"!=typeof a._file.size)throw new TypeError("The file specified is no longer valid");d.append(a.alias,a._file,a.file.name),c.upload.onprogress=function(c){var d=Math.round(c.lengthComputable?100*c.loaded/c.total:0);b._onProgressItem(a,d)},c.onload=function(){var d=b._parseHeaders(c.getAllResponseHeaders()),e=b._transformResponse(c.response,d),f=b._isSuccessCode(c.status)?"Success":"Error",g="_on"+f+"Item";b[g](a,e,c.status,d),b._onCompleteItem(a,e,c.status,d)},c.onerror=function(){var d=b._parseHeaders(c.getAllResponseHeaders()),e=b._transformResponse(c.response,d);b._onErrorItem(a,e,c.status,d),b._onCompleteItem(a,e,c.status,d)},c.onabort=function(){var d=b._parseHeaders(c.getAllResponseHeaders()),e=b._transformResponse(c.response,d);b._onCancelItem(a,e,c.status,d),b._onCompleteItem(a,e,c.status,d)},c.open(a.method,a.url,!0),c.withCredentials=a.withCredentials,i(a.headers,function(a,b){c.setRequestHeader(b,a)}),c.send(d),this._render()}},_iframeTransport:{value:function(a){var b=this,c=n('<form style="display: none;" />'),d=n('<iframe name="iframeTransport'+Date.now()+'">'),e=a._input;a._form&&a._form.replaceWith(e),a._form=c,this._onBeforeUploadItem(a),e.prop("name",a.alias),i(a.formData,function(a){i(a,function(a,b){var d=n('<input type="hidden" name="'+b+'" />');d.val(a),c.append(d)})}),c.prop({action:a.url,method:"POST",target:d.prop("name"),enctype:"multipart/form-data",encoding:"multipart/form-data"}),d.bind("load",function(){var c="",e=200;try{c=d[0].contentDocument.body.innerHTML}catch(f){e=500}var g={response:c,status:e,dummy:!0},h={},i=b._transformResponse(g.response,h);b._onSuccessItem(a,i,g.status,h),b._onCompleteItem(a,i,g.status,h)}),c.abort=function(){var f,g={status:0,dummy:!0},h={};d.unbind("load").prop("src","javascript:false;"),c.replaceWith(e),b._onCancelItem(a,f,g.status,h),b._onCompleteItem(a,f,g.status,h)},e.after(c),c.append(e).append(d),c[0].submit(),this._render()}},_onWhenAddingFileFailed:{value:function(a,b,c){this.onWhenAddingFileFailed(a,b,c)}},_onAfterAddingFile:{value:function(a){this.onAfterAddingFile(a)}},_onAfterAddingAll:{value:function(a){this.onAfterAddingAll(a)}},_onBeforeUploadItem:{value:function(a){a._onBeforeUpload(),this.onBeforeUploadItem(a)}},_onProgressItem:{value:function(a,b){var c=this._getTotalProgress(b);this.progress=c,a._onProgress(b),this.onProgressItem(a,b),this.onProgressAll(c),this._render()}},_onSuccessItem:{value:function(a,b,c,d){a._onSuccess(b,c,d),this.onSuccessItem(a,b,c,d)}},_onErrorItem:{value:function(a,b,c,d){a._onError(b,c,d),this.onErrorItem(a,b,c,d)}},_onCancelItem:{value:function(a,b,c,d){a._onCancel(b,c,d),this.onCancelItem(a,b,c,d)}},_onCompleteItem:{value:function(a,b,c,d){a._onComplete(b,c,d),this.onCompleteItem(a,b,c,d);var e=this.getReadyItems()[0];return this.isUploading=!1,l(e)?void e.upload():(this.onCompleteAll(),this.progress=this._getTotalProgress(),void this._render())}}},{isFile:{value:function(a){return q&&a instanceof q}},isFileLikeObject:{value:function(a){return a instanceof o}},isArrayLikeObject:{value:function(a){return j(a)&&"length"in a}},inherit:{value:function(a,b){a.prototype=Object.create(b.prototype),a.prototype.constructor=a,a.super_=b}}}),d}();return s.prototype.isHTML5=!(!q||!r),s.isHTML5=s.prototype.isHTML5,s},a.exports.$inject=["fileUploaderOptions","$rootScope","$http","$window","FileLikeObject","FileItem"]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},g=(d(c(2)),angular.copy),h=angular.isElement,i=angular.isString;a.exports=function(){var a=function(){function a(b){f(this,a);var c=h(b),d=c?b.value:b,e=i(d)?"FakePath":"Object",g="_createFrom"+e;this[g](d)}return e(a,{_createFromFakePath:{value:function(a){this.lastModifiedDate=null,this.size=null,this.type="like/"+a.slice(a.lastIndexOf(".")+1).toLowerCase(),this.name=a.slice(a.lastIndexOf("/")+a.lastIndexOf("\\")+2)}},_createFromObject:{value:function(a){this.lastModifiedDate=g(a.lastModifiedDate),this.size=a.size,this.type=a.type,this.name=a.name}}}),a}();return a},a.exports.$inject=[]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},g=(d(c(2)),angular.copy),h=angular.extend,i=angular.element,j=angular.isElement;a.exports=function(a,b){var c=function(){function c(a,d,e){f(this,c);var k=j(d),l=k?i(d):null,m=k?null:d;h(this,{url:a.url,alias:a.alias,headers:g(a.headers),formData:g(a.formData),removeAfterUpload:a.removeAfterUpload,withCredentials:a.withCredentials,method:a.method},e,{uploader:a,file:new b(d),isReady:!1,isUploading:!1,isUploaded:!1,isSuccess:!1,isCancel:!1,isError:!1,progress:0,index:null,_file:m,_input:l}),l&&this._replaceNode(l)}return e(c,{upload:{value:function(){try{this.uploader.uploadItem(this)}catch(a){this.uploader._onCompleteItem(this,"",0,[]),this.uploader._onErrorItem(this,"",0,[])}}},cancel:{value:function(){this.uploader.cancelItem(this)}},remove:{value:function(){this.uploader.removeFromQueue(this)}},onBeforeUpload:{value:function(){}},onProgress:{value:function(a){}},onSuccess:{value:function(a,b,c){}},onError:{value:function(a,b,c){}},onCancel:{value:function(a,b,c){}},onComplete:{value:function(a,b,c){}},_onBeforeUpload:{value:function(){this.isReady=!0,this.isUploading=!0,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!1,this.isError=!1,this.progress=0,this.onBeforeUpload()}},_onProgress:{value:function(a){this.progress=a,this.onProgress(a)}},_onSuccess:{value:function(a,b,c){this.isReady=!1,this.isUploading=!1,this.isUploaded=!0,this.isSuccess=!0,this.isCancel=!1,this.isError=!1,this.progress=100,this.index=null,this.onSuccess(a,b,c)}},_onError:{value:function(a,b,c){this.isReady=!1,this.isUploading=!1,this.isUploaded=!0,this.isSuccess=!1,this.isCancel=!1,this.isError=!0,this.progress=0,this.index=null,this.onError(a,b,c)}},_onCancel:{value:function(a,b,c){this.isReady=!1,this.isUploading=!1,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!0,this.isError=!1,this.progress=0,this.index=null,this.onCancel(a,b,c)}},_onComplete:{value:function(a,b,c){this.onComplete(a,b,c),this.removeAfterUpload&&this.remove()}},_destroy:{value:function(){this._input&&this._input.remove(),this._form&&this._form.remove(),delete this._form,delete this._input}},_prepareToUploading:{value:function(){this.index=this.index||++this.uploader._nextIndex,this.isReady=!0}},_replaceNode:{value:function(b){var c=a(b.clone())(b.scope());c.prop("value",null),b.css("display","none"),b.after(c)}}}),c}();return c},a.exports.$inject=["$compile","FileLikeObject"]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},g=(d(c(2)),angular.extend);a.exports=function(){var a=function(){function a(b){f(this,a),g(this,b),this.uploader._directives[this.prop].push(this),this._saveLinks(),this.bind()}return e(a,{bind:{value:function(){for(var a in this.events){var b=this.events[a];this.element.bind(a,this[b])}}},unbind:{value:function(){for(var a in this.events)this.element.unbind(a,this.events[a])}},destroy:{value:function(){var a=this.uploader._directives[this.prop].indexOf(this);this.uploader._directives[this.prop].splice(a,1),this.unbind()}},_saveLinks:{value:function(){for(var a in this.events){var b=this.events[a];this[b]=this[b].bind(this)}}}}),a}();return a.prototype.events={},a},a.exports.$inject=[]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function k(a,b,c){var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){var e=Object.getPrototypeOf(a);return null===e?void 0:k(e,b,c)}if("value"in d&&d.writable)return d.value;var f=d.get;return void 0===f?void 0:f.call(c)},g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)},h=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},i=(d(c(2)),angular.extend),j=angular.forEach;a.exports=function(a){var b=function(a){function b(a){h(this,b);var c=i(a,{events:{$destroy:"destroy",drop:"onDrop",dragover:"onDragOver",dragleave:"onDragLeave"},prop:"drop"});f(Object.getPrototypeOf(b.prototype),"constructor",this).call(this,c)}return g(b,a),e(b,{getOptions:{value:function(){}},getFilters:{value:function(){}},onDrop:{value:function(a){var b=this._getTransfer(a);if(b){var c=this.getOptions(),d=this.getFilters();this._preventAndStop(a),j(this.uploader._directives.over,this._removeOverClass,this),this.uploader.addToQueue(b.files,c,d)}}},onDragOver:{value:function(a){var b=this._getTransfer(a);this._haveFiles(b.types)&&(b.dropEffect="copy",this._preventAndStop(a),j(this.uploader._directives.over,this._addOverClass,this))}},onDragLeave:{value:function(a){a.currentTarget!==this.element[0]&&(this._preventAndStop(a),j(this.uploader._directives.over,this._removeOverClass,this))}},_getTransfer:{value:function(a){return a.dataTransfer?a.dataTransfer:a.originalEvent.dataTransfer}},_preventAndStop:{value:function(a){a.preventDefault(),a.stopPropagation()}},_haveFiles:{value:function(a){return a?a.indexOf?-1!==a.indexOf("Files"):a.contains?a.contains("Files"):!1:!1}},_addOverClass:{value:function(a){a.addOverClass()}},_removeOverClass:{value:function(a){a.removeOverClass()}}}),b}(a);return b},a.exports.$inject=["FileDirective"]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function j(a,b,c){var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){var e=Object.getPrototypeOf(a);return null===e?void 0:j(e,b,c)}if("value"in d&&d.writable)return d.value;var f=d.get;return void 0===f?void 0:f.call(c)},g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)},h=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},i=(d(c(2)),angular.extend);a.exports=function(a){var b=function(a){function b(a){h(this,b);var c=i(a,{events:{$destroy:"destroy"},prop:"over",overClass:"nv-file-over"});f(Object.getPrototypeOf(b.prototype),"constructor",this).call(this,c)}return g(b,a),e(b,{addOverClass:{value:function(){this.element.addClass(this.getOverClass())}},removeOverClass:{value:function(){this.element.removeClass(this.getOverClass())}},getOverClass:{value:function(){return this.overClass}}}),b}(a);return b},a.exports.$inject=["FileDirective"]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a};d(c(2)),a.exports=function(a,b,c){return{link:function(d,e,f){var g=d.$eval(f.uploader);if(!(g instanceof b))throw new TypeError('"Uploader" must be an instance of FileUploader');var h=new c({uploader:g,element:e});h.getOptions=a(f.options).bind(h,d),h.getFilters=function(){return f.filters}}}},a.exports.$inject=["$parse","FileUploader","FileSelect"]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a};d(c(2)),a.exports=function(a,b,c){return{link:function(d,e,f){var g=d.$eval(f.uploader);if(!(g instanceof b))throw new TypeError('"Uploader" must be an instance of FileUploader');if(g.isHTML5){var h=new c({uploader:g,element:e});h.getOptions=a(f.options).bind(h,d),h.getFilters=function(){return f.filters}}}}},a.exports.$inject=["$parse","FileUploader","FileDrop"]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a};d(c(2)),a.exports=function(a,b){return{link:function(c,d,e){var f=c.$eval(e.uploader);if(!(f instanceof a))throw new TypeError('"Uploader" must be an instance of FileUploader');var g=new b({uploader:f,element:d});g.getOverClass=function(){return e.overClass||g.overClass}}}},a.exports.$inject=["FileUploader","FileOver"]}])}),!function(a,b,c){"use strict";function d(a){return D(a)?a:Object.keys(a).map(function(b){return a[b]})}function e(a){return null===a}function f(a,b){var d=Object.keys(a);return-1==d.map(function(d){return b[d]!==c&&b[d]==a[d]}).indexOf(!1)}function g(a,b){if(""===b)return a;var c=a.indexOf(b.charAt(0));return-1===c?!1:g(a.substr(c+1),b.substr(1))}function h(a,b,c){var d=0;return a.filter(function(a){var e=x(c)?b>d&&c(a):b>d;return d=e?d+1:d,e})}function i(a,b,c){return c.round(a*c.pow(10,b))/c.pow(10,b)}function j(a,b,c){b=b||[];var d=Object.keys(a);return d.forEach(function(d){if(C(a[d])&&!D(a[d])){var e=c?c+"."+d:c;j(a[d],b,e||d)}else{var f=c?c+"."+d:d;b.push(f)}}),b}function k(a){return a&&a.$evalAsync&&a.$watch}function l(){return function(a,b){return a>b}}function m(){return function(a,b){return a>=b}}function n(){return function(a,b){return b>a}}function o(){return function(a,b){return b>=a}}function p(){return function(a,b){return a==b}}function q(){return function(a,b){return a!=b}}function r(){return function(a,b){return a===b}}function s(){return function(a,b){return a!==b}}function t(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?!1:b.some(function(b){return C(b)||z(c)?a(c)(b):b===c})}}function u(a,b){return b=b||0,b>=a.length?a:D(a[b])?u(a.slice(0,b).concat(a[b],a.slice(b+1)),b):u(a,b+1)}function v(a){return function(b,c){function e(a,b){return y(b)?!1:a.some(function(a){return H(a,b)})}if(b=C(b)?d(b):b,!D(b))return b;var f=[],g=a(c);return y(c)?b.filter(function(a,b,c){return c.indexOf(a)===b}):b.filter(function(a){var b=g(a);return e(f,b)?!1:(f.push(b),!0)})}}function w(a,b,c){return b?a+c+w(a,--b,c):a}var x=b.isDefined,y=b.isUndefined,z=b.isFunction,A=b.isString,B=b.isNumber,C=b.isObject,D=b.isArray,E=b.forEach,F=b.extend,G=b.copy,H=b.equals;String.prototype.contains||(String.prototype.contains=function(){return-1!==String.prototype.indexOf.apply(this,arguments)}),b.module("a8m.angular",[]).filter("isUndefined",function(){return function(a){return b.isUndefined(a)}}).filter("isDefined",function(){return function(a){return b.isDefined(a)}}).filter("isFunction",function(){return function(a){return b.isFunction(a)}}).filter("isString",function(){return function(a){return b.isString(a)}}).filter("isNumber",function(){return function(a){return b.isNumber(a)}}).filter("isArray",function(){return function(a){return b.isArray(a)}}).filter("isObject",function(){return function(a){return b.isObject(a)}}).filter("isEqual",function(){return function(a,c){return b.equals(a,c)}}),b.module("a8m.conditions",[]).filter({isGreaterThan:l,">":l,isGreaterThanOrEqualTo:m,">=":m,isLessThan:n,"<":n,isLessThanOrEqualTo:o,"<=":o,isEqualTo:p,"==":p,isNotEqualTo:q,"!=":q,isIdenticalTo:r,"===":r,isNotIdenticalTo:s,"!==":s}),b.module("a8m.is-null",[]).filter("isNull",function(){return function(a){return e(a)}}),b.module("a8m.after-where",[]).filter("afterWhere",function(){return function(a,b){if(a=C(a)?d(a):a,!D(a)||y(b))return a;var c=a.map(function(a){return f(b,a)}).indexOf(!0);return a.slice(-1===c?0:c)}}),b.module("a8m.after",[]).filter("after",function(){return function(a,b){return a=C(a)?d(a):a,D(a)?a.slice(b):a}}),b.module("a8m.before-where",[]).filter("beforeWhere",function(){return function(a,b){if(a=C(a)?d(a):a,!D(a)||y(b))return a;var c=a.map(function(a){return f(b,a)}).indexOf(!0);return a.slice(0,-1===c?a.length:++c)}}),b.module("a8m.before",[]).filter("before",function(){return function(a,b){return a=C(a)?d(a):a,D(a)?a.slice(0,b?--b:b):a}}),b.module("a8m.chunk-by",["a8m.filter-watcher"]).filter("chunkBy",["filterWatcher",function(a){return function(b,c,d){function e(a,b){for(var c=[];a--;)c[a]=b;return c}function f(a,b,c){return D(a)?a.map(function(a,d,f){return d*=b,a=f.slice(d,d+b),!y(c)&&a.length<b?a.concat(e(b-a.length,c)):a}).slice(0,Math.ceil(a.length/b)):a}return a.isMemoized("chunkBy",arguments)||a.memoize("chunkBy",arguments,this,f(b,c,d))}}]),b.module("a8m.concat",[]).filter("concat",[function(){return function(a,b){if(y(b))return a;if(D(a))return C(b)?a.concat(d(b)):a.concat(b);if(C(a)){var c=d(a);return C(b)?c.concat(d(b)):c.concat(b)}return a}}]),b.module("a8m.contains",[]).filter({contains:["$parse",t],some:["$parse",t]}),b.module("a8m.count-by",[]).filter("countBy",["$parse",function(a){return function(b,c){var e,f={},g=a(c);return b=C(b)?d(b):b,!D(b)||y(c)?b:(b.forEach(function(a){e=g(a),f[e]||(f[e]=0),f[e]++}),f)}}]),b.module("a8m.defaults",[]).filter("defaults",["$parse",function(a){return function(b,c){
-if(b=C(b)?d(b):b,!D(b)||!C(c))return b;var e=j(c);return b.forEach(function(b){e.forEach(function(d){var e=a(d),f=e.assign;y(e(b))&&f(b,e(c))})}),b}}]),b.module("a8m.every",[]).filter("every",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?!0:b.every(function(b){return C(b)||z(c)?a(c)(b):b===c})}}]),b.module("a8m.filter-by",[]).filter("filterBy",["$parse",function(a){return function(b,e,f){var g;return f=A(f)||B(f)?String(f).toLowerCase():c,b=C(b)?d(b):b,!D(b)||y(f)?b:b.filter(function(b){return e.some(function(c){if(~c.indexOf("+")){var d=c.replace(new RegExp("\\s","g"),"").split("+");g=d.reduce(function(c,d,e){return 1===e?a(c)(b)+" "+a(d)(b):c+" "+a(d)(b)})}else g=a(c)(b);return A(g)||B(g)?String(g).toLowerCase().contains(f):!1})})}}]),b.module("a8m.first",[]).filter("first",["$parse",function(a){return function(b){var e,f,g;return b=C(b)?d(b):b,D(b)?(g=Array.prototype.slice.call(arguments,1),e=B(g[0])?g[0]:1,f=B(g[0])?B(g[1])?c:g[1]:g[0],g.length?h(b,e,f?a(f):f):b[0]):b}}]),b.module("a8m.flatten",[]).filter("flatten",function(){return function(a,b){return b=b||!1,a=C(a)?d(a):a,D(a)?b?[].concat.apply([],a):u(a,0):a}}),b.module("a8m.fuzzy-by",[]).filter("fuzzyBy",["$parse",function(a){return function(b,c,e,f){var h,i,j=f||!1;return b=C(b)?d(b):b,!D(b)||y(c)||y(e)?b:(i=a(c),b.filter(function(a){return h=i(a),A(h)?(h=j?h:h.toLowerCase(),e=j?e:e.toLowerCase(),g(h,e)!==!1):!1}))}}]),b.module("a8m.fuzzy",[]).filter("fuzzy",function(){return function(a,b,c){function e(a,b){var c,d,e=Object.keys(a);return 0<e.filter(function(e){return c=a[e],d?!0:A(c)?(c=f?c:c.toLowerCase(),d=g(c,b)!==!1):!1}).length}var f=c||!1;return a=C(a)?d(a):a,!D(a)||y(b)?a:(b=f?b:b.toLowerCase(),a.filter(function(a){return A(a)?(a=f?a:a.toLowerCase(),g(a,b)!==!1):C(a)?e(a,b):!1}))}}),b.module("a8m.group-by",["a8m.filter-watcher"]).filter("groupBy",["$parse","filterWatcher",function(a,b){return function(c,d){function e(a,b){var c,d={};return E(a,function(a){c=b(a),d[c]||(d[c]=[]),d[c].push(a)}),d}return!C(c)||y(d)?c:b.isMemoized("groupBy",arguments)||b.memoize("groupBy",arguments,this,e(c,a(d)))}}]),b.module("a8m.is-empty",[]).filter("isEmpty",function(){return function(a){return C(a)?!d(a).length:!a.length}}),b.module("a8m.join",[]).filter("join",function(){return function(a,b){return y(a)||!D(a)?a:(y(b)&&(b=" "),a.join(b))}}),b.module("a8m.last",[]).filter("last",["$parse",function(a){return function(b){var e,f,g,i=G(b);return i=C(i)?d(i):i,D(i)?(g=Array.prototype.slice.call(arguments,1),e=B(g[0])?g[0]:1,f=B(g[0])?B(g[1])?c:g[1]:g[0],g.length?h(i.reverse(),e,f?a(f):f).reverse():i[i.length-1]):i}}]),b.module("a8m.map",[]).filter("map",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?b:b.map(function(b){return a(c)(b)})}}]),b.module("a8m.omit",[]).filter("omit",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?b:b.filter(function(b){return!a(c)(b)})}}]),b.module("a8m.pick",[]).filter("pick",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?b:b.filter(function(b){return a(c)(b)})}}]),b.module("a8m.range",[]).filter("range",function(){return function(a,b){for(var c=0;c<parseInt(b);c++)a.push(c);return a}}),b.module("a8m.remove-with",[]).filter("removeWith",function(){return function(a,b){return y(b)?a:(a=C(a)?d(a):a,a.filter(function(a){return!f(b,a)}))}}),b.module("a8m.remove",[]).filter("remove",function(){return function(a){a=C(a)?d(a):a;var b=Array.prototype.slice.call(arguments,1);return D(a)?a.filter(function(a){return!b.some(function(b){return H(b,a)})}):a}}),b.module("a8m.reverse",[]).filter("reverse",[function(){return function(a){return a=C(a)?d(a):a,A(a)?a.split("").reverse().join(""):D(a)?a.slice().reverse():a}}]),b.module("a8m.search-field",[]).filter("searchField",["$parse",function(a){return function(b){var c,e;b=C(b)?d(b):b;var f=Array.prototype.slice.call(arguments,1);return D(b)&&f.length?b.map(function(b){return e=f.map(function(d){return(c=a(d))(b)}).join(" "),F(b,{searchField:e})}):b}}]),b.module("a8m.to-array",[]).filter("toArray",function(){return function(a,b){return C(a)?b?Object.keys(a).map(function(b){return F(a[b],{$key:b})}):d(a):a}}),b.module("a8m.unique",[]).filter({unique:["$parse",v],uniq:["$parse",v]}),b.module("a8m.where",[]).filter("where",function(){return function(a,b){return y(b)?a:(a=C(a)?d(a):a,a.filter(function(a){return f(b,a)}))}}),b.module("a8m.xor",[]).filter("xor",["$parse",function(a){return function(b,c,e){function f(b,c){var d=a(e);return c.some(function(a){return e?H(d(a),d(b)):H(a,b)})}return e=e||!1,b=C(b)?d(b):b,c=C(c)?d(c):c,D(b)&&D(c)?b.concat(c).filter(function(a){return!(f(a,b)&&f(a,c))}):b}}]),b.module("a8m.math.byteFmt",["a8m.math"]).filter("byteFmt",["$math",function(a){return function(b,c){return B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)?1024>b?i(b,c,a)+" B":1048576>b?i(b/1024,c,a)+" KB":1073741824>b?i(b/1048576,c,a)+" MB":i(b/1073741824,c,a)+" GB":"NaN"}}]),b.module("a8m.math.degrees",["a8m.math"]).filter("degrees",["$math",function(a){return function(b,c){if(B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)){var d=180*b/a.PI;return a.round(d*a.pow(10,c))/a.pow(10,c)}return"NaN"}}]),b.module("a8m.math.kbFmt",["a8m.math"]).filter("kbFmt",["$math",function(a){return function(b,c){return B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)?1024>b?i(b,c,a)+" KB":1048576>b?i(b/1024,c,a)+" MB":i(b/1048576,c,a)+" GB":"NaN"}}]),b.module("a8m.math",[]).factory("$math",["$window",function(a){return a.Math}]),b.module("a8m.math.max",["a8m.math"]).filter("max",["$math","$parse",function(a,b){function c(c,d){var e=c.map(function(a){return b(d)(a)});return e.indexOf(a.max.apply(a,e))}return function(b,d){return D(b)?y(d)?a.max.apply(a,b):b[c(b,d)]:b}}]),b.module("a8m.math.min",["a8m.math"]).filter("min",["$math","$parse",function(a,b){function c(c,d){var e=c.map(function(a){return b(d)(a)});return e.indexOf(a.min.apply(a,e))}return function(b,d){return D(b)?y(d)?a.min.apply(a,b):b[c(b,d)]:b}}]),b.module("a8m.math.percent",["a8m.math"]).filter("percent",["$math","$window",function(a,b){return function(c,d,e){var f=A(c)?b.Number(c):c;return d=d||100,e=e||!1,!B(f)||b.isNaN(f)?c:e?a.round(f/d*100):f/d*100}}]),b.module("a8m.math.radians",["a8m.math"]).filter("radians",["$math",function(a){return function(b,c){if(B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)){var d=3.14159265359*b/180;return a.round(d*a.pow(10,c))/a.pow(10,c)}return"NaN"}}]),b.module("a8m.math.radix",[]).filter("radix",function(){return function(a,b){var c=/^[2-9]$|^[1-2]\d$|^3[0-6]$/;return B(a)&&c.test(b)?a.toString(b).toUpperCase():a}}),b.module("a8m.math.shortFmt",["a8m.math"]).filter("shortFmt",["$math",function(a){return function(b,c){return B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)?1e3>b?b:1e6>b?i(b/1e3,c,a)+" K":1e9>b?i(b/1e6,c,a)+" M":i(b/1e9,c,a)+" B":"NaN"}}]),b.module("a8m.math.sum",[]).filter("sum",function(){return function(a,b){return D(a)?a.reduce(function(a,b){return a+b},b||0):a}}),b.module("a8m.ends-with",[]).filter("endsWith",function(){return function(a,b,c){var d,e=c||!1;return!A(a)||y(b)?a:(a=e?a:a.toLowerCase(),d=a.length-b.length,-1!==a.indexOf(e?b:b.toLowerCase(),d))}}),b.module("a8m.latinize",[]).filter("latinize",[function(){function a(a){return a.replace(/[^\u0000-\u007E]/g,function(a){return c[a]||a})}for(var b=[{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"OE",letters:"\8cŒ"},{base:"oe",letters:"\9cœ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],c={},d=0;d<b.length;d++)for(var e=b[d].letters.split(""),f=0;f<e.length;f++)c[e[f]]=b[d].base;return function(b){return A(b)?a(b):b}}]),b.module("a8m.ltrim",[]).filter("ltrim",function(){return function(a,b){var c=b||"\\s";return A(a)?a.replace(new RegExp("^"+c+"+"),""):a}}),b.module("a8m.match",[]).filter("match",function(){return function(a,b,c){var d=new RegExp(b,c);return A(a)?a.match(d):null}}),b.module("a8m.repeat",[]).filter("repeat",[function(){return function(a,b,c){var d=~~b;return A(a)&&d?w(a,--b,c||""):a}}]),b.module("a8m.rtrim",[]).filter("rtrim",function(){return function(a,b){var c=b||"\\s";return A(a)?a.replace(new RegExp(c+"+$"),""):a}}),b.module("a8m.slugify",[]).filter("slugify",[function(){return function(a,b){var c=y(b)?"-":b;return A(a)?a.toLowerCase().replace(/\s+/g,c):a}}]),b.module("a8m.starts-with",[]).filter("startsWith",function(){return function(a,b,c){var d=c||!1;return!A(a)||y(b)?a:(a=d?a:a.toLowerCase(),!a.indexOf(d?b:b.toLowerCase()))}}),b.module("a8m.stringular",[]).filter("stringular",function(){return function(a){var b=Array.prototype.slice.call(arguments,1);return a.replace(/{(\d+)}/g,function(a,c){return y(b[c])?a:b[c]})}}),b.module("a8m.strip-tags",[]).filter("stripTags",function(){return function(a){return A(a)?a.replace(/<\S[^><]*>/g,""):a}}),b.module("a8m.test",[]).filter("test",function(){return function(a,b,c){var d=new RegExp(b,c);return A(a)?d.test(a):a}}),b.module("a8m.trim",[]).filter("trim",function(){return function(a,b){var c=b||"\\s";return A(a)?a.replace(new RegExp("^"+c+"+|"+c+"+$","g"),""):a}}),b.module("a8m.truncate",[]).filter("truncate",function(){return function(a,b,c,d){return b=y(b)?a.length:b,d=d||!1,c=c||"",!A(a)||a.length<=b?a:a.substring(0,d?-1===a.indexOf(" ",b)?a.length:a.indexOf(" ",b):b)+c}}),b.module("a8m.ucfirst",[]).filter("ucfirst",[function(){return function(a){return A(a)?a.split(" ").map(function(a){return a.charAt(0).toUpperCase()+a.substring(1)}).join(" "):a}}]),b.module("a8m.uri-component-encode",[]).filter("uriComponentEncode",["$window",function(a){return function(b){return A(b)?a.encodeURIComponent(b):b}}]),b.module("a8m.uri-encode",[]).filter("uriEncode",["$window",function(a){return function(b){return A(b)?a.encodeURI(b):b}}]),b.module("a8m.wrap",[]).filter("wrap",function(){return function(a,b,c){return A(a)&&x(b)?[b,a,c||b].join(""):a}}),b.module("a8m.filter-watcher",[]).provider("filterWatcher",function(){this.$get=["$window","$rootScope",function(a,b){function c(b,c){function d(){var b=[];return function(c,d){if(C(d)&&!e(d)){if(~b.indexOf(d))return"[Circular]";b.push(d)}return a==d?"$WINDOW":a.document==d?"$DOCUMENT":k(d)?"$SCOPE":d}}return[b,JSON.stringify(c,d())].join("#").replace(/"/g,"")}function d(a){var b=a.targetScope.$id;E(l[b],function(a){delete j[a]}),delete l[b]}function f(){m(function(){b.$$phase||(j={})},2e3)}function g(a,b){var c=a.$id;return y(l[c])&&(a.$on("$destroy",d),l[c]=[]),l[c].push(b)}function h(a,b){var d=c(a,b);return j[d]}function i(a,b,d,e){var h=c(a,b);return j[h]=e,k(d)?g(d,h):f(),e}var j={},l={},m=a.setTimeout;return{isMemoized:h,memoize:i}}]}),b.module("angular.filter",["a8m.ucfirst","a8m.uri-encode","a8m.uri-component-encode","a8m.slugify","a8m.latinize","a8m.strip-tags","a8m.stringular","a8m.truncate","a8m.starts-with","a8m.ends-with","a8m.wrap","a8m.trim","a8m.ltrim","a8m.rtrim","a8m.repeat","a8m.test","a8m.match","a8m.to-array","a8m.concat","a8m.contains","a8m.unique","a8m.is-empty","a8m.after","a8m.after-where","a8m.before","a8m.before-where","a8m.defaults","a8m.where","a8m.reverse","a8m.remove","a8m.remove-with","a8m.group-by","a8m.count-by","a8m.chunk-by","a8m.search-field","a8m.fuzzy-by","a8m.fuzzy","a8m.omit","a8m.pick","a8m.every","a8m.filter-by","a8m.xor","a8m.map","a8m.first","a8m.last","a8m.flatten","a8m.join","a8m.range","a8m.math","a8m.math.max","a8m.math.min","a8m.math.percent","a8m.math.radix","a8m.math.sum","a8m.math.degrees","a8m.math.radians","a8m.math.byteFmt","a8m.math.kbFmt","a8m.math.shortFmt","a8m.angular","a8m.conditions","a8m.is-null","a8m.filter-watcher"])}(window,window.angular),function(a,b,c){"use strict";var d=b.isDefined,e=b.isUndefined,f=b.isNumber,g=b.isObject,h=b.isArray,i=b.extend,j=b.toJson,k=b.module("LocalStorageModule",[]);k.provider("localStorageService",function(){this.prefix="ls",this.storageType="localStorage",this.cookie={expiry:30,path:"/"},this.notify={setItem:!0,removeItem:!1},this.setPrefix=function(a){return this.prefix=a,this},this.setStorageType=function(a){return this.storageType=a,this},this.setStorageCookie=function(a,b){return this.cookie.expiry=a,this.cookie.path=b,this},this.setStorageCookieDomain=function(a){return this.cookie.domain=a,this},this.setNotify=function(a,b){return this.notify={setItem:a,removeItem:b},this},this.$get=["$rootScope","$window","$document","$parse",function(a,b,c,k){var l,m=this,n=m.prefix,o=m.cookie,p=m.notify,q=m.storageType;c?c[0]&&(c=c[0]):c=document,"."!==n.substr(-1)&&(n=n?n+".":"");var r=function(a){return n+a},s=function(){try{var c=q in b&&null!==b[q],d=r("__"+Math.round(1e7*Math.random()));return c&&(l=b[q],l.setItem(d,""),l.removeItem(d)),c}catch(e){return q="cookie",a.$broadcast("LocalStorageModule.notification.error",e.message),!1}}(),t=function(b,c){if(c=e(c)?null:j(c),!s||"cookie"===m.storageType)return s||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),p.setItem&&a.$broadcast("LocalStorageModule.notification.setitem",{key:b,newvalue:c,storageType:"cookie"}),z(b,c);try{l&&l.setItem(r(b),c),p.setItem&&a.$broadcast("LocalStorageModule.notification.setitem",{key:b,newvalue:c,storageType:m.storageType})}catch(d){return a.$broadcast("LocalStorageModule.notification.error",d.message),z(b,c)}return!0},u=function(b){if(!s||"cookie"===m.storageType)return s||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),A(b);var c=l?l.getItem(r(b)):null;if(!c||"null"===c)return null;try{return JSON.parse(c)}catch(d){return c}},v=function(){var b,c;for(b=0;b<arguments.length;b++)if(c=arguments[b],s&&"cookie"!==m.storageType)try{l.removeItem(r(c)),p.removeItem&&a.$broadcast("LocalStorageModule.notification.removeitem",{key:c,storageType:m.storageType})}catch(d){a.$broadcast("LocalStorageModule.notification.error",d.message),B(c)}else s||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),p.removeItem&&a.$broadcast("LocalStorageModule.notification.removeitem",{key:c,storageType:"cookie"}),B(c)},w=function(){if(!s)return a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),!1;var b=n.length,c=[];for(var d in l)if(d.substr(0,b)===n)try{c.push(d.substr(b))}catch(e){return a.$broadcast("LocalStorageModule.notification.error",e.Description),[]}return c},x=function(b){var c=n?new RegExp("^"+n):new RegExp,d=b?new RegExp(b):new RegExp;if(!s||"cookie"===m.storageType)return s||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),C();var e=n.length;for(var f in l)if(c.test(f)&&d.test(f.substr(e)))try{v(f.substr(e))}catch(g){return a.$broadcast("LocalStorageModule.notification.error",g.message),C()}return!0},y=function(){try{return b.navigator.cookieEnabled||"cookie"in c&&(c.cookie.length>0||(c.cookie="test").indexOf.call(c.cookie,"test")>-1)}catch(d){return a.$broadcast("LocalStorageModule.notification.error",d.message),!1}}(),z=function(b,d,i){if(e(d))return!1;if((h(d)||g(d))&&(d=j(d)),!y)return a.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;try{var k="",l=new Date,m="";if(null===d?(l.setTime(l.getTime()+-864e5),k="; expires="+l.toGMTString(),d=""):f(i)&&0!==i?(l.setTime(l.getTime()+24*i*60*60*1e3),k="; expires="+l.toGMTString()):0!==o.expiry&&(l.setTime(l.getTime()+24*o.expiry*60*60*1e3),k="; expires="+l.toGMTString()),b){var n="; path="+o.path;o.domain&&(m="; domain="+o.domain),c.cookie=r(b)+"="+encodeURIComponent(d)+k+n+m}}catch(p){return a.$broadcast("LocalStorageModule.notification.error",p.message),!1}return!0},A=function(b){if(!y)return a.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;for(var d=c.cookie&&c.cookie.split(";")||[],e=0;e<d.length;e++){for(var f=d[e];" "===f.charAt(0);)f=f.substring(1,f.length);if(0===f.indexOf(r(b)+"=")){var g=decodeURIComponent(f.substring(n.length+b.length+1,f.length));try{return JSON.parse(g)}catch(h){return g}}}return null},B=function(a){z(a,null)},C=function(){for(var a=null,b=n.length,d=c.cookie.split(";"),e=0;e<d.length;e++){for(a=d[e];" "===a.charAt(0);)a=a.substring(1,a.length);var f=a.substring(b,a.indexOf("="));B(f)}},D=function(){return q},E=function(a,b,c,e){e=e||b;var f=u(e);return null===f&&d(c)?f=c:g(f)&&g(c)&&(f=i(c,f)),k(b).assign(a,f),a.$watch(b,function(a){t(e,a)},g(a[b]))},F=function(){for(var a=0,c=b[q],d=0;d<c.length;d++)0===c.key(d).indexOf(n)&&a++;return a};return{isSupported:s,getStorageType:D,set:t,add:t,get:u,keys:w,remove:v,clearAll:x,bind:E,deriveKey:r,length:F,cookie:{isSupported:y,set:z,add:z,get:A,remove:B,clearAll:C}}}]})}(window,window.angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="angular-md5"),function(a){a.module("angular-md5",["gdi2290.md5"]),a.module("ngMd5",["gdi2290.md5"]),a.module("gdi2290.md5",["gdi2290.gravatar-filter","gdi2290.md5-service","gdi2290.md5-filter"]),a.module("gdi2290.gravatar-filter",[]).filter("gravatar",["md5",function(a){var b={};return function(c,d){return b[c]||(d=d?a.createHash(d.toString().toLowerCase()):"",b[c]=c?a.createHash(c.toString().toLowerCase()):d),b[c]}}]),a.module("gdi2290.md5-filter",[]).filter("md5",["md5",function(a){return function(b){return b?a.createHash(b.toString().toLowerCase()):b}}]),a.module("gdi2290.md5-service",[]).factory("md5",[function(){var a={createHash:function(a){if(null===a)return null;var b,c,d,e,f,g,h,i,j,k,l=function(a,b){return a<<b|a>>>32-b},m=function(a,b){var c,d,e,f,g;return e=2147483648&a,f=2147483648&b,c=1073741824&a,d=1073741824&b,g=(1073741823&a)+(1073741823&b),c&d?2147483648^g^e^f:c|d?1073741824&g?3221225472^g^e^f:1073741824^g^e^f:g^e^f},n=function(a,b,c){return a&b|~a&c},o=function(a,b,c){return a&c|b&~c},p=function(a,b,c){return a^b^c},q=function(a,b,c){return b^(a|~c)},r=function(a,b,c,d,e,f,g){return a=m(a,m(m(n(b,c,d),e),g)),m(l(a,f),b)},s=function(a,b,c,d,e,f,g){return a=m(a,m(m(o(b,c,d),e),g)),m(l(a,f),b)},t=function(a,b,c,d,e,f,g){return a=m(a,m(m(p(b,c,d),e),g)),m(l(a,f),b)},u=function(a,b,c,d,e,f,g){return a=m(a,m(m(q(b,c,d),e),g)),m(l(a,f),b)},v=function(a){for(var b,c=a.length,d=c+8,e=(d-d%64)/64,f=16*(e+1),g=new Array(f-1),h=0,i=0;c>i;)b=(i-i%4)/4,h=i%4*8,g[b]=g[b]|a.charCodeAt(i)<<h,i++;return b=(i-i%4)/4,h=i%4*8,g[b]=g[b]|128<<h,g[f-2]=c<<3,g[f-1]=c>>>29,g},w=function(a){var b,c,d="",e="";for(c=0;3>=c;c++)b=a>>>8*c&255,e="0"+b.toString(16),d+=e.substr(e.length-2,2);return d},x=[],y=7,z=12,A=17,B=22,C=5,D=9,E=14,F=20,G=4,H=11,I=16,J=23,K=6,L=10,M=15,N=21;for(x=v(a),h=1732584193,i=4023233417,j=2562383102,k=271733878,b=x.length,c=0;b>c;c+=16)d=h,e=i,f=j,g=k,h=r(h,i,j,k,x[c+0],y,3614090360),k=r(k,h,i,j,x[c+1],z,3905402710),j=r(j,k,h,i,x[c+2],A,606105819),i=r(i,j,k,h,x[c+3],B,3250441966),h=r(h,i,j,k,x[c+4],y,4118548399),k=r(k,h,i,j,x[c+5],z,1200080426),j=r(j,k,h,i,x[c+6],A,2821735955),i=r(i,j,k,h,x[c+7],B,4249261313),h=r(h,i,j,k,x[c+8],y,1770035416),k=r(k,h,i,j,x[c+9],z,2336552879),j=r(j,k,h,i,x[c+10],A,4294925233),i=r(i,j,k,h,x[c+11],B,2304563134),h=r(h,i,j,k,x[c+12],y,1804603682),k=r(k,h,i,j,x[c+13],z,4254626195),j=r(j,k,h,i,x[c+14],A,2792965006),i=r(i,j,k,h,x[c+15],B,1236535329),h=s(h,i,j,k,x[c+1],C,4129170786),k=s(k,h,i,j,x[c+6],D,3225465664),j=s(j,k,h,i,x[c+11],E,643717713),i=s(i,j,k,h,x[c+0],F,3921069994),h=s(h,i,j,k,x[c+5],C,3593408605),k=s(k,h,i,j,x[c+10],D,38016083),j=s(j,k,h,i,x[c+15],E,3634488961),i=s(i,j,k,h,x[c+4],F,3889429448),h=s(h,i,j,k,x[c+9],C,568446438),k=s(k,h,i,j,x[c+14],D,3275163606),j=s(j,k,h,i,x[c+3],E,4107603335),i=s(i,j,k,h,x[c+8],F,1163531501),h=s(h,i,j,k,x[c+13],C,2850285829),k=s(k,h,i,j,x[c+2],D,4243563512),j=s(j,k,h,i,x[c+7],E,1735328473),i=s(i,j,k,h,x[c+12],F,2368359562),h=t(h,i,j,k,x[c+5],G,4294588738),k=t(k,h,i,j,x[c+8],H,2272392833),j=t(j,k,h,i,x[c+11],I,1839030562),i=t(i,j,k,h,x[c+14],J,4259657740),h=t(h,i,j,k,x[c+1],G,2763975236),k=t(k,h,i,j,x[c+4],H,1272893353),j=t(j,k,h,i,x[c+7],I,4139469664),i=t(i,j,k,h,x[c+10],J,3200236656),h=t(h,i,j,k,x[c+13],G,681279174),k=t(k,h,i,j,x[c+0],H,3936430074),j=t(j,k,h,i,x[c+3],I,3572445317),i=t(i,j,k,h,x[c+6],J,76029189),h=t(h,i,j,k,x[c+9],G,3654602809),k=t(k,h,i,j,x[c+12],H,3873151461),j=t(j,k,h,i,x[c+15],I,530742520),i=t(i,j,k,h,x[c+2],J,3299628645),h=u(h,i,j,k,x[c+0],K,4096336452),k=u(k,h,i,j,x[c+7],L,1126891415),j=u(j,k,h,i,x[c+14],M,2878612391),i=u(i,j,k,h,x[c+5],N,4237533241),h=u(h,i,j,k,x[c+12],K,1700485571),k=u(k,h,i,j,x[c+3],L,2399980690),j=u(j,k,h,i,x[c+10],M,4293915773),i=u(i,j,k,h,x[c+1],N,2240044497),h=u(h,i,j,k,x[c+8],K,1873313359),k=u(k,h,i,j,x[c+15],L,4264355552),j=u(j,k,h,i,x[c+6],M,2734768916),i=u(i,j,k,h,x[c+13],N,1309151649),h=u(h,i,j,k,x[c+4],K,4149444226),k=u(k,h,i,j,x[c+11],L,3174756917),j=u(j,k,h,i,x[c+2],M,718787259),i=u(i,j,k,h,x[c+9],N,3951481745),h=m(h,d),i=m(i,e),j=m(j,f),k=m(k,g);var O=w(h)+w(i)+w(j)+w(k);return O.toLowerCase()}};return a}])}(angular),angular.module("notification",[]).provider("$notification",$notificationProvider),function(a,b,c){"use strict";function d(a){return null!=a&&""!==a&&"hasOwnProperty"!==a&&h.test("."+a)}function e(a,e){if(!d(e))throw g("badmember",'Dotted member path "@{0}" is invalid.',e);for(var f=e.split("."),h=0,i=f.length;i>h&&b.isDefined(a);h++){var j=f[h];a=null!==a?a[j]:c}return a}function f(a,c){c=c||{},b.forEach(c,function(a,b){delete c[b]});for(var d in a)!a.hasOwnProperty(d)||"$"===d.charAt(0)&&"$"===d.charAt(1)||(c[d]=a[d]);return c}var g=b.$$minErr("$resource"),h=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;b.module("ngResource",["ng"]).provider("$resource",function(){var a=/^https?:\/\/[^\/]*/,d=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}},this.$get=["$http","$q",function(h,i){function j(a){return k(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function k(a,b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,b?"%20":"+")}function l(a,b){this.template=a,this.defaults=p({},d.defaults,b),this.urlParams={}}function m(a,j,k,s){function t(a,b){var c={};return b=p({},j,b),o(b,function(b,d){r(b)&&(b=b()),c[d]=b&&b.charAt&&"@"==b.charAt(0)?e(a,b.substr(1)):b}),c}function u(a){return a.resource}function v(a){f(a||{},this)}var w=new l(a,s);return k=p({},d.defaults.actions,k),v.prototype.toJSON=function(){var a=p({},this);return delete a.$promise,delete a.$resolved,a},o(k,function(a,d){var e=/^(POST|PUT|PATCH)$/i.test(a.method);v[d]=function(j,k,l,m){var s,x,y,z={};switch(arguments.length){case 4:y=m,x=l;case 3:case 2:if(!r(k)){z=j,s=k,x=l;break}if(r(j)){x=j,y=k;break}x=k,y=l;case 1:r(j)?x=j:e?s=j:z=j;break;case 0:break;default:throw g("badargs","Expected up to 4 arguments [params, data, success, error], got {0} arguments",arguments.length)}var A=this instanceof v,B=A?s:a.isArray?[]:new v(s),C={},D=a.interceptor&&a.interceptor.response||u,E=a.interceptor&&a.interceptor.responseError||c;o(a,function(a,b){switch(b){default:C[b]=q(a);break;case"params":case"isArray":case"interceptor":break;case"timeout":C[b]=a}}),e&&(C.data=s),w.setUrlParams(C,p({},t(s,a.params||{}),z),a.url);var F=h(C).then(function(c){var e=c.data,h=B.$promise;if(e){if(b.isArray(e)!==!!a.isArray)throw g("badcfg","Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})",d,a.isArray?"array":"object",b.isArray(e)?"array":"object",C.method,C.url);a.isArray?(B.length=0,o(e,function(a){"object"==typeof a?B.push(new v(a)):B.push(a)})):(f(e,B),B.$promise=h)}return B.$resolved=!0,c.resource=B,c},function(a){return B.$resolved=!0,(y||n)(a),i.reject(a)});return F=F.then(function(a){var b=D(a);return(x||n)(b,a.headers),b},E),A?F:(B.$promise=F,B.$resolved=!1,B)},v.prototype["$"+d]=function(a,b,c){r(a)&&(c=b,b=a,a={});var e=v[d].call(this,a,this,b,c);return e.$promise||e}}),v.bind=function(b){return m(a,p({},j,b),k)},v}var n=b.noop,o=b.forEach,p=b.extend,q=b.copy,r=b.isFunction;return l.prototype={setUrlParams:function(c,d,e){var f,h,i=this,k=e||i.template,l="",m=i.urlParams={};o(k.split(/\W/),function(a){if("hasOwnProperty"===a)throw g("badname","hasOwnProperty is not a valid parameter name.");!new RegExp("^\\d+$").test(a)&&a&&new RegExp("(^|[^\\\\]):"+a+"(\\W|$)").test(k)&&(m[a]=!0)}),k=k.replace(/\\:/g,":"),k=k.replace(a,function(a){return l=a,""}),d=d||{},o(i.urlParams,function(a,c){f=d.hasOwnProperty(c)?d[c]:i.defaults[c],b.isDefined(f)&&null!==f?(h=j(f),k=k.replace(new RegExp(":"+c+"(\\W|$)","g"),function(a,b){return h+b})):k=k.replace(new RegExp("(/?):"+c+"(\\W|$)","g"),function(a,b,c){return"/"==c.charAt(0)?c:b+c})}),i.defaults.stripTrailingSlashes&&(k=k.replace(/\/+$/,"")||"/"),k=k.replace(/\/\.(?=\w+($|\?))/,"."),c.url=l+k.replace(/\/\\\./,"/."),o(d,function(a,b){i.urlParams[b]||(c.params=c.params||{},c.params[b]=a)})}},m}]})}(window,window.angular),function(a,b,c){"use strict";function d(){this.$get=["$$sanitizeUri",function(a){return function(b){var c=[];return g(b,j(c,function(b,c){return!/^unsafe/.test(a(b,c))})),c.join("")}}]}function e(a){var c=[],d=j(c,b.noop);return d.chars(a),c.join("")}function f(a,c){var d,e={},f=a.split(",");for(d=0;d<f.length;d++)e[c?b.lowercase(f[d]):f[d]]=!0;return e}function g(a,c){function d(a,d,f,g){if(d=b.lowercase(d),z[d])for(;t.last()&&A[t.last()];)e("",t.last());y[d]&&t.last()==d&&e("",d),g=v[d]||!!g,g||t.push(d);var i={};f.replace(n,function(a,b,c,d,e){var f=c||d||e||"";i[b]=h(f)}),c.start&&c.start(d,i,g)}function e(a,d){var e,f=0;if(d=b.lowercase(d))for(f=t.length-1;f>=0&&t[f]!=d;f--);if(f>=0){for(e=t.length-1;e>=f;e--)c.end&&c.end(t[e]);t.length=f}}"string"!=typeof a&&(a=null===a||"undefined"==typeof a?"":""+a);var f,g,i,j,t=[],u=a;for(t.last=function(){return t[t.length-1]};a;){if(j="",g=!0,t.last()&&C[t.last()]?(a=a.replace(new RegExp("([\\W\\w]*)<\\s*\\/\\s*"+t.last()+"[^>]*>","i"),function(a,b){return b=b.replace(q,"$1").replace(s,"$1"),c.chars&&c.chars(h(b)),""}),e("",t.last())):(0===a.indexOf("<!--")?(f=a.indexOf("--",4),f>=0&&a.lastIndexOf("-->",f)===f&&(c.comment&&c.comment(a.substring(4,f)),a=a.substring(f+3),g=!1)):r.test(a)?(i=a.match(r),i&&(a=a.replace(i[0],""),g=!1)):p.test(a)?(i=a.match(m),i&&(a=a.substring(i[0].length),i[0].replace(m,e),g=!1)):o.test(a)&&(i=a.match(l),i?(i[4]&&(a=a.substring(i[0].length),i[0].replace(l,d)),g=!1):(j+="<",a=a.substring(1))),g&&(f=a.indexOf("<"),j+=0>f?a:a.substring(0,f),a=0>f?"":a.substring(f),c.chars&&c.chars(h(j)))),a==u)throw k("badparse","The sanitizer was unable to parse the following block of html: {0}",a);u=a}e()}function h(a){return a?(I.innerHTML=a.replace(/</g,"&lt;"),I.textContent):""}function i(a){return a.replace(/&/g,"&amp;").replace(t,function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1);return"&#"+(1024*(b-55296)+(c-56320)+65536)+";"}).replace(u,function(a){return"&#"+a.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function j(a,c){var d=!1,e=b.bind(a,a.push);return{start:function(a,f,g){a=b.lowercase(a),!d&&C[a]&&(d=a),d||D[a]!==!0||(e("<"),e(a),b.forEach(f,function(d,f){var g=b.lowercase(f),h="img"===a&&"src"===g||"background"===g;H[g]!==!0||E[g]===!0&&!c(d,h)||(e(" "),e(f),e('="'),e(i(d)),e('"'))}),e(g?"/>":">"))},end:function(a){a=b.lowercase(a),d||D[a]!==!0||(e("</"),e(a),e(">")),a==d&&(d=!1)},chars:function(a){d||e(i(a))}}}var k=b.$$minErr("$sanitize"),l=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,m=/^<\/\s*([\w:-]+)[^>]*>/,n=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,o=/^</,p=/^<\//,q=/<!--(.*?)-->/g,r=/<!DOCTYPE([^>]*?)>/i,s=/<!\[CDATA\[(.*?)]]>/g,t=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=/([^\#-~| |!])/g,v=f("area,br,col,hr,img,wbr"),w=f("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),x=f("rp,rt"),y=b.extend({},x,w),z=b.extend({},w,f("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),A=b.extend({},x,f("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),B=f("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan,use"),C=f("script,style"),D=b.extend({},v,z,A,y,B),E=f("background,cite,href,longdesc,src,usemap,xlink:href"),F=f("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"),G=f("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan",!0),H=b.extend({},E,G,F),I=document.createElement("pre");
-b.module("ngSanitize",[]).provider("$sanitize",d),b.module("ngSanitize").filter("linky",["$sanitize",function(a){var c=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,d=/^mailto:/i;return function(f,g){function h(a){a&&n.push(e(a))}function i(a,c){n.push("<a "),b.isDefined(g)&&n.push('target="',g,'" '),n.push('href="',a.replace(/"/g,"&quot;"),'">'),h(c),n.push("</a>")}if(!f)return f;for(var j,k,l,m=f,n=[];j=m.match(c);)k=j[0],j[2]||j[4]||(k=(j[3]?"http://":"mailto:")+k),l=j.index,h(m.substr(0,l)),i(k,j[0].replace(d,"")),m=m.substring(l+j[0].length);return h(m),a(n.join(""))}}])}(window,window.angular),function(a,b){"use strict";a.module("smart-table",[]).run(["$templateCache",function(a){a.put("template/smart-table/pagination.html",'<nav ng-if="numPages && pages.length >= 2"><ul class="pagination"><li ng-repeat="page in pages" ng-class="{active: page==currentPage}"><a ng-click="selectPage(page)">{{page}}</a></li></ul></nav>')}]),a.module("smart-table").constant("stConfig",{pagination:{template:"template/smart-table/pagination.html",itemsByPage:10,displayedPages:5},search:{delay:400,inputEvent:"input"},select:{mode:"single",selectedClass:"st-selected"},sort:{ascentClass:"st-sort-ascent",descentClass:"st-sort-descent",skipNatural:!1,delay:300},pipe:{delay:100}}),a.module("smart-table").controller("stTableController",["$scope","$parse","$filter","$attrs",function(c,d,e,f){function g(a){return a?[].concat(a):[]}function h(){r=g(j(c)),t===!0&&u.pipe()}function i(a,b){if(-1!=b.indexOf(".")){var c=b.split("."),e=c.pop(),f=c.join("."),g=d(f)(a);delete g[e],0==Object.keys(g).length&&i(a,f)}else delete a[b]}var j,k,l,m=f.stTable,n=d(m),o=n.assign,p=e("orderBy"),q=e("filter"),r=g(n(c)),s={sort:{},search:{},pagination:{start:0,totalItemCount:0}},t=!0,u=this;f.stSafeSrc&&(j=d(f.stSafeSrc),c.$watch(function(){var a=j(c);return a&&a.length?a[0]:b},function(a,b){a!==b&&h()}),c.$watch(function(){var a=j(c);return a?a.length:0},function(a,b){a!==r.length&&h()}),c.$watch(function(){return j(c)},function(a,b){a!==b&&(s.pagination.start=0,h())})),this.sortBy=function(b,c){return s.sort.predicate=b,s.sort.reverse=c===!0,a.isFunction(b)?s.sort.functionName=b.name:delete s.sort.functionName,s.pagination.start=0,this.pipe()},this.search=function(b,c){var e=s.search.predicateObject||{},f=c?c:"$";return b=a.isString(b)?b.trim():b,d(f).assign(e,b),b||i(e,f),s.search.predicateObject=e,s.pagination.start=0,this.pipe()},this.pipe=function(){var a,d=s.pagination;k=s.search.predicateObject?q(r,s.search.predicateObject):r,s.sort.predicate&&(k=p(k,s.sort.predicate,s.sort.reverse)),d.totalItemCount=k.length,d.number!==b&&(d.numberOfPages=k.length>0?Math.ceil(k.length/d.number):1,d.start=d.start>=k.length?(d.numberOfPages-1)*d.number:d.start,a=k.slice(d.start,d.start+parseInt(d.number))),o(c,a||k)},this.select=function(a,d){var e=g(n(c)),f=e.indexOf(a);-1!==f&&("single"===d?(a.isSelected=a.isSelected!==!0,l&&(l.isSelected=!1),l=a.isSelected===!0?a:b):e[f].isSelected=!e[f].isSelected)},this.slice=function(a,b){return s.pagination.start=a,s.pagination.number=b,this.pipe()},this.tableState=function(){return s},this.getFilteredCollection=function(){return k||r},this.setFilterFunction=function(a){q=e(a)},this.setSortFunction=function(a){p=e(a)},this.preventPipeOnWatch=function(){t=!1}}]).directive("stTable",function(){return{restrict:"A",controller:"stTableController",link:function(a,b,c,d){c.stSetFilter&&d.setFilterFunction(c.stSetFilter),c.stSetSort&&d.setSortFunction(c.stSetSort)}}}),a.module("smart-table").directive("stSearch",["stConfig","$timeout","$parse",function(a,b,c){return{require:"^stTable",link:function(d,e,f,g){var h=g,i=null,j=f.stDelay||a.search.delay,k=f.stInputEvent||a.search.inputEvent;f.$observe("stSearch",function(a,b){var c=e[0].value;a!==b&&c&&(g.tableState().search={},h.search(c,a))}),d.$watch(function(){return g.tableState().search},function(a,b){var d=f.stSearch||"$";a.predicateObject&&c(d)(a.predicateObject)!==e[0].value&&(e[0].value=c(d)(a.predicateObject)||"")},!0),e.bind(k,function(a){a=a.originalEvent||a,null!==i&&b.cancel(i),i=b(function(){h.search(a.target.value,f.stSearch||""),i=null},j)})}}}]),a.module("smart-table").directive("stSelectRow",["stConfig",function(a){return{restrict:"A",require:"^stTable",scope:{row:"=stSelectRow"},link:function(b,c,d,e){var f=d.stSelectMode||a.select.mode;c.bind("click",function(){b.$apply(function(){e.select(b.row,f)})}),b.$watch("row.isSelected",function(b){b===!0?c.addClass(a.select.selectedClass):c.removeClass(a.select.selectedClass)})}}}]),a.module("smart-table").directive("stSort",["stConfig","$parse","$timeout",function(c,d,e){return{restrict:"A",require:"^stTable",link:function(f,g,h,i){function j(){n++;var b;l=a.isFunction(m(f))||a.isArray(m(f))?m(f):h.stSort,n%3===0&&!!r!=!0?(n=0,i.tableState().sort={},i.tableState().pagination.start=0,b=i.pipe.bind(i)):b=i.sortBy.bind(i,l,n%2===0),null!==s&&e.cancel(s),0>t?f.$apply(b):s=e(b,t)}var k,l=h.stSort,m=d(l),n=0,o=h.stClassAscent||c.sort.ascentClass,p=h.stClassDescent||c.sort.descentClass,q=[o,p],r=h.stSkipNatural!==b?h.stSkipNatural:c.sort.skipNatural,s=null,t=h.stDelay||c.sort.delay;h.stSortDefault&&(k=f.$eval(h.stSortDefault)!==b?f.$eval(h.stSortDefault):h.stSortDefault),g.bind("click",function(){l&&j()}),k&&(n="reverse"===k?1:0,j()),f.$watch(function(){return i.tableState().sort},function(a){a.predicate!==l?(n=0,g.removeClass(o).removeClass(p)):(n=a.reverse===!0?2:1,g.removeClass(q[n%2]).addClass(q[n-1]))},!0)}}}]),a.module("smart-table").directive("stPagination",["stConfig",function(a){return{restrict:"EA",require:"^stTable",scope:{stItemsByPage:"=?",stDisplayedPages:"=?",stPageChange:"&"},templateUrl:function(b,c){return c.stTemplate?c.stTemplate:a.pagination.template},link:function(b,c,d,e){function f(){var a,c,d=e.tableState().pagination,f=1,g=b.currentPage;for(b.totalItemCount=d.totalItemCount,b.currentPage=Math.floor(d.start/d.number)+1,f=Math.max(f,b.currentPage-Math.abs(Math.floor(b.stDisplayedPages/2))),a=f+b.stDisplayedPages,a>d.numberOfPages&&(a=d.numberOfPages+1,f=Math.max(1,a-b.stDisplayedPages)),b.pages=[],b.numPages=d.numberOfPages,c=f;a>c;c++)b.pages.push(c);g!==b.currentPage&&b.stPageChange({newPage:b.currentPage})}b.stItemsByPage=b.stItemsByPage?+b.stItemsByPage:a.pagination.itemsByPage,b.stDisplayedPages=b.stDisplayedPages?+b.stDisplayedPages:a.pagination.displayedPages,b.currentPage=1,b.pages=[],b.$watch(function(){return e.tableState().pagination},f,!0),b.$watch("stItemsByPage",function(a,c){a!==c&&b.selectPage(1)}),b.$watch("stDisplayedPages",f),b.selectPage=function(a){a>0&&a<=b.numPages&&e.slice((a-1)*b.stItemsByPage,b.stItemsByPage)},e.tableState().pagination.number||e.slice(0,b.stItemsByPage)}}}]),a.module("smart-table").directive("stPipe",["stConfig","$timeout",function(b,c){return{require:"stTable",scope:{stPipe:"="},link:{pre:function(d,e,f,g){var h=null;a.isFunction(d.stPipe)&&(g.preventPipeOnWatch(),g.pipe=function(){return null!==h&&c.cancel(h),h=c(function(){d.stPipe(g.tableState(),g)},b.pipe.delay)})},post:function(a,b,c,d){d.pipe()}}}}])}(angular),angular.module("btford.socket-io",[]).provider("socketFactory",function(){"use strict";var a="socket:";this.$get=["$rootScope","$timeout",function(b,c){var d=function(a,b){return b?function(){var d=arguments;c(function(){b.apply(a,d)},0)}:angular.noop};return function(c){c=c||{};var e=c.ioSocket||io.connect(),f=void 0===c.prefix?a:c.prefix,g=c.scope||b,h=function(a,b){e.on(a,b.__ng=d(e,b))},i=function(a,b){e.once(a,b.__ng=d(e,b))},j={on:h,addListener:h,once:i,emit:function(a,b,c){var f=arguments.length-1,c=arguments[f];return"function"==typeof c&&(c=d(e,c),arguments[f]=c),e.emit.apply(e,arguments)},removeListener:function(a,b){return b&&b.__ng&&(arguments[1]=b.__ng),e.removeListener.apply(e,arguments)},removeAllListeners:function(){return e.removeAllListeners.apply(e,arguments)},disconnect:function(a){return e.disconnect(a)},connect:function(){return e.connect()},forward:function(a,b){a instanceof Array==!1&&(a=[a]),b||(b=g),a.forEach(function(a){var c=f+a,g=d(e,function(){Array.prototype.unshift.call(arguments,c),b.$broadcast.apply(b,arguments)});b.$on("$destroy",function(){e.removeListener(a,g)}),e.on(a,g)})}};return j}}]}),function(){"use strict";function a(a,b,c,d,e,f,g){function h(a){if(1!==arguments.length||a)if(a)m(a.toastId);else for(var b=0;b<t.length;b++)m(t[b].toastId)}function i(a,b,c){var d=o().iconClasses.error;return n(d,a,b,c)}function j(a,b,c){var d=o().iconClasses.info;return n(d,a,b,c)}function k(a,b,c){var d=o().iconClasses.success;return n(d,a,b,c)}function l(a,b,c){var d=o().iconClasses.warning;return n(d,a,b,c)}function m(b,c){function d(a){for(var b=0;b<t.length;b++)if(t[b].toastId===a)return t[b]}function e(){return!t.length}var h=d(b);h&&!h.deleting&&(h.deleting=!0,h.isOpened=!1,a.leave(h.el).then(function(){h.scope.options.onHidden&&h.scope.options.onHidden(c),h.scope.$destroy();var a=t.indexOf(h);delete v[h.scope.message],t.splice(a,1);var b=f.maxOpened;b&&t.length>=b&&t[b-1].open.resolve(),e()&&(r.remove(),r=null,w=g.defer())}))}function n(a,b,c,d){return angular.isObject(c)&&(d=c,c=null),q({iconClass:a,message:b,optionsOverride:d,title:c})}function o(){return angular.extend({},f)}function p(b){if(r)return w.promise;r=angular.element("<div></div>"),r.attr("id",b.containerId),r.addClass(b.positionClass),r.css({"pointer-events":"auto"});var c=angular.element(document.querySelector(b.target));if(!c||!c.length)throw"Target for toasts doesn't exist";return a.enter(r,c).then(function(){w.resolve()}),w.promise}function q(c){function f(){return n.autoDismiss&&n.maxOpened&&t.length>n.maxOpened}function h(a,b,c){c.allowHtml?(a.scope.allowHtml=!0,a.scope.title=e.trustAsHtml(b.title),a.scope.message=e.trustAsHtml(b.message)):(a.scope.title=b.title,a.scope.message=b.message),a.scope.toastType=a.iconClass,a.scope.toastId=a.toastId,a.scope.extraData=c.extraData,a.scope.options={extendedTimeOut:c.extendedTimeOut,messageClass:c.messageClass,onHidden:c.onHidden,onShown:c.onShown,onTap:c.onTap,progressBar:c.progressBar,tapToDismiss:c.tapToDismiss,timeOut:c.timeOut,titleClass:c.titleClass,toastClass:c.toastClass},c.closeButton&&(a.scope.options.closeHtml=c.closeHtml)}function i(){function a(a){for(var b=["containerId","iconClasses","maxOpened","newestOnTop","positionClass","preventDuplicates","preventOpenDuplicates","templates"],c=0,d=b.length;d>c;c++)delete a[b[c]];return a}var b={toastId:s++,isOpened:!1,scope:d.$new(),open:g.defer()};return b.iconClass=c.iconClass,c.optionsOverride&&(angular.extend(n,a(c.optionsOverride)),b.iconClass=c.optionsOverride.iconClass||b.iconClass),h(b,c,n),b.el=j(b.scope),b}function j(a){var c=angular.element("<div toast></div>"),d=b.get("$compile");return d(c)(a)}function k(){return n.maxOpened&&t.length<=n.maxOpened||!n.maxOpened}function l(){var a=n.preventDuplicates&&c.message===u,b=n.preventOpenDuplicates&&v[c.message];return a||b?!0:(u=c.message,v[c.message]=!0,!1)}var n=o();if(!l()){var q=i();if(t.push(q),f())for(var w=t.slice(0,t.length-n.maxOpened),x=0,y=w.length;y>x;x++)m(w[x].toastId);return k()&&q.open.resolve(),q.open.promise.then(function(){p(n).then(function(){if(q.isOpened=!0,n.newestOnTop)a.enter(q.el,r).then(function(){q.scope.init()});else{var b=r[0].lastChild?angular.element(r[0].lastChild):null;a.enter(q.el,r,b).then(function(){q.scope.init()})}})}),q}}var r,s=0,t=[],u="",v={},w=g.defer(),x={clear:h,error:i,info:j,remove:m,success:k,warning:l};return x}angular.module("toastr",[]).factory("toastr",a),a.$inject=["$animate","$injector","$document","$rootScope","$sce","toastrConfig","$q"]}(),function(){"use strict";angular.module("toastr").constant("toastrConfig",{allowHtml:!1,autoDismiss:!1,closeButton:!1,closeHtml:"<button>&times;</button>",containerId:"toast-container",extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},maxOpened:0,messageClass:"toast-message",newestOnTop:!0,onHidden:null,onShown:null,onTap:null,positionClass:"toast-top-right",preventDuplicates:!1,preventOpenDuplicates:!1,progressBar:!1,tapToDismiss:!0,target:"body",templates:{toast:"directives/toast/toast.html",progressbar:"directives/progressbar/progressbar.html"},timeOut:5e3,titleClass:"toast-title",toastClass:"toast"})}(),function(){"use strict";function a(a){function b(a,b,c,d){function e(){var a=(h-(new Date).getTime())/g*100;b.css("width",a+"%")}var f,g,h;d.progressBar=a,a.start=function(a){f&&clearInterval(f),g=parseFloat(a),h=(new Date).getTime()+g,f=setInterval(e,10)},a.stop=function(){f&&clearInterval(f)},a.$on("$destroy",function(){clearInterval(f)})}return{replace:!0,require:"^toast",templateUrl:function(){return a.templates.progressbar},link:b}}angular.module("toastr").directive("progressBar",a),a.$inject=["toastrConfig"]}(),function(){"use strict";function a(){this.progressBar=null,this.startProgressBar=function(a){this.progressBar&&this.progressBar.start(a)},this.stopProgressBar=function(){this.progressBar&&this.progressBar.stop()}}angular.module("toastr").controller("ToastController",a)}(),function(){"use strict";function a(a,b,c,d){function e(c,e,f,g){function h(a){return g.startProgressBar(a),b(function(){g.stopProgressBar(),d.remove(c.toastId)},a,1)}function i(){c.progressBar=!1,g.stopProgressBar()}function j(){return c.options.closeHtml}var k;if(c.toastClass=c.options.toastClass,c.titleClass=c.options.titleClass,c.messageClass=c.options.messageClass,c.progressBar=c.options.progressBar,j()){var l=angular.element(c.options.closeHtml),m=a.get("$compile");l.addClass("toast-close-button"),l.attr("ng-click","close(true, $event)"),m(l)(c),e.prepend(l)}c.init=function(){c.options.timeOut&&(k=h(c.options.timeOut)),c.options.onShown&&c.options.onShown()},e.on("mouseenter",function(){i(),k&&b.cancel(k)}),c.tapToast=function(){angular.isFunction(c.options.onTap)&&c.options.onTap(),c.options.tapToDismiss&&c.close(!0)},c.close=function(a,b){b&&angular.isFunction(b.stopPropagation)&&b.stopPropagation(),d.remove(c.toastId,a)},e.on("mouseleave",function(){(0!==c.options.timeOut||0!==c.options.extendedTimeOut)&&(c.$apply(function(){c.progressBar=c.options.progressBar}),k=h(c.options.extendedTimeOut))})}return{replace:!0,templateUrl:function(){return c.templates.toast},controller:"ToastController",link:e}}angular.module("toastr").directive("toast",a),a.$inject=["$injector","$interval","toastrConfig","toastr"]}(),angular.module("toastr").run(["$templateCache",function(a){a.put("directives/progressbar/progressbar.html",'<div class="toast-progress"></div>\n'),a.put("directives/toast/toast.html",'<div class="{{toastClass}} {{toastType}}" ng-click="tapToast()">\n  <div ng-switch on="allowHtml">\n    <div ng-switch-default ng-if="title" class="{{titleClass}}" aria-label="{{title}}">{{title}}</div>\n    <div ng-switch-default class="{{messageClass}}" aria-label="{{message}}">{{message}}</div>\n    <div ng-switch-when="true" ng-if="title" class="{{titleClass}}" ng-bind-html="title"></div>\n    <div ng-switch-when="true" class="{{messageClass}}" ng-bind-html="message"></div>\n  </div>\n  <progress-bar ng-if="progressBar"></progress-bar>\n</div>\n')}]),function(a,b,c){"use strict";function d(a){return b.lowercase(a.nodeName||a[0]&&a[0].nodeName)}function e(a,c,d){f.directive(a,["$parse","$swipe",function(e,f){var g=75,h=.3,i=30;return function(j,k,l){function m(a){if(!n)return!1;var b=Math.abs(a.y-n.y),d=(a.x-n.x)*c;return o&&g>b&&d>0&&d>i&&h>b/d}var n,o,p=e(l[a]),q=["touch"];b.isDefined(l.ngSwipeDisableMouse)||q.push("mouse"),f.bind(k,{start:function(a,b){n=a,o=!0},cancel:function(a){o=!1},end:function(a,b){m(a)&&j.$apply(function(){k.triggerHandler(d),p(j,{$event:b})})}},q)}}])}var f=b.module("ngTouch",[]);f.factory("$swipe",[function(){function a(a){var b=a.originalEvent||a,c=b.touches&&b.touches.length?b.touches:[b],d=b.changedTouches&&b.changedTouches[0]||c[0];return{x:d.clientX,y:d.clientY}}function c(a,c){var d=[];return b.forEach(a,function(a){var b=e[a][c];b&&d.push(b)}),d.join(" ")}var d=10,e={mouse:{start:"mousedown",move:"mousemove",end:"mouseup"},touch:{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel"}};return{bind:function(b,e,f){var g,h,i,j,k=!1;f=f||["mouse","touch"],b.on(c(f,"start"),function(b){i=a(b),k=!0,g=0,h=0,j=i,e.start&&e.start(i,b)});var l=c(f,"cancel");l&&b.on(l,function(a){k=!1,e.cancel&&e.cancel(a)}),b.on(c(f,"move"),function(b){if(k&&i){var c=a(b);if(g+=Math.abs(c.x-j.x),h+=Math.abs(c.y-j.y),j=c,!(d>g&&d>h))return h>g?(k=!1,void(e.cancel&&e.cancel(b))):(b.preventDefault(),void(e.move&&e.move(c,b)))}}),b.on(c(f,"end"),function(b){k&&(k=!1,e.end&&e.end(a(b),b))})}}}]),f.config(["$provide",function(a){a.decorator("ngClickDirective",["$delegate",function(a){return a.shift(),a}])}]),f.directive("ngClick",["$parse","$timeout","$rootElement",function(a,c,e){function f(a,b,c,d){return Math.abs(a-c)<q&&Math.abs(b-d)<q}function g(a,b,c){for(var d=0;d<a.length;d+=2)if(f(a[d],a[d+1],b,c))return a.splice(d,d+2),!0;return!1}function h(a){if(!(Date.now()-k>p)){var b=a.touches&&a.touches.length?a.touches:[a],c=b[0].clientX,e=b[0].clientY;1>c&&1>e||m&&m[0]===c&&m[1]===e||(m&&(m=null),"label"===d(a.target)&&(m=[c,e]),g(l,c,e)||(a.stopPropagation(),a.preventDefault(),a.target&&a.target.blur&&a.target.blur()))}}function i(a){var b=a.touches&&a.touches.length?a.touches:[a],d=b[0].clientX,e=b[0].clientY;l.push(d,e),c(function(){for(var a=0;a<l.length;a+=2)if(l[a]==d&&l[a+1]==e)return void l.splice(a,a+2)},p,!1)}function j(a,b){l||(e[0].addEventListener("click",h,!0),e[0].addEventListener("touchstart",i,!0),l=[]),k=Date.now(),g(l,a,b)}var k,l,m,n=750,o=12,p=2500,q=25,r="ng-click-active";return function(c,d,e){function f(){m=!1,d.removeClass(r)}var g,h,i,k,l=a(e.ngClick),m=!1;d.on("touchstart",function(a){m=!0,g=a.target?a.target:a.srcElement,3==g.nodeType&&(g=g.parentNode),d.addClass(r),h=Date.now();var b=a.originalEvent||a,c=b.touches&&b.touches.length?b.touches:[b],e=c[0];i=e.clientX,k=e.clientY}),d.on("touchcancel",function(a){f()}),d.on("touchend",function(a){var c=Date.now()-h,l=a.originalEvent||a,p=l.changedTouches&&l.changedTouches.length?l.changedTouches:l.touches&&l.touches.length?l.touches:[l],q=p[0],r=q.clientX,s=q.clientY,t=Math.sqrt(Math.pow(r-i,2)+Math.pow(s-k,2));m&&n>c&&o>t&&(j(r,s),g&&g.blur(),b.isDefined(e.disabled)&&e.disabled!==!1||d.triggerHandler("click",[a])),f()}),d.onclick=function(a){},d.on("click",function(a,b){c.$apply(function(){l(c,{$event:b||a})})}),d.on("mousedown",function(a){d.addClass(r)}),d.on("mousemove mouseup",function(a){d.removeClass(r)})}}]),e("ngSwipeLeft",-1,"swipeleft"),e("ngSwipeRight",1,"swiperight")}(window,window.angular),function(a,b){"function"==typeof define&&define.amd?define([],function(){return b()}):"object"==typeof exports?module.exports=b():b()}(this,function(){function a(a){"use strict";var b=a.storageKey(),c=a.storage(),d=function(){var d=a.preferredLanguage();angular.isString(d)?a.use(d):c.put(b,a.use())};d.displayName="fallbackFromIncorrectStorageValue",c?c.get(b)?a.use(c.get(b))["catch"](d):d():angular.isString(a.preferredLanguage())&&a.use(a.preferredLanguage())}function b(){"use strict";var a,b,c=null,d=!1,e=!1;b={sanitize:function(a,b){return"text"===b&&(a=g(a)),a},escape:function(a,b){return"text"===b&&(a=f(a)),a},sanitizeParameters:function(a,b){return"params"===b&&(a=h(a,g)),a},escapeParameters:function(a,b){return"params"===b&&(a=h(a,f)),a}},b.escaped=b.escapeParameters,this.addStrategy=function(a,c){return b[a]=c,this},this.removeStrategy=function(a){return delete b[a],this},this.useStrategy=function(a){return d=!0,c=a,this},this.$get=["$injector","$log",function(f,g){var h=function(a,c,d){return angular.forEach(d,function(d){if(angular.isFunction(d))a=d(a,c);else{if(!angular.isFunction(b[d]))throw new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '"+d+"'");a=b[d](a,c)}}),a},i=function(){d||e||(g.warn("pascalprecht.translate.$translateSanitization: No sanitization strategy has been configured. This can have serious security implications. See http://angular-translate.github.io/docs/#/guide/19_security for details."),e=!0)};return f.has("$sanitize")&&(a=f.get("$sanitize")),{useStrategy:function(a){return function(b){a.useStrategy(b)}}(this),sanitize:function(a,b,d){if(c||i(),arguments.length<3&&(d=c),!d)return a;var e=angular.isArray(d)?d:[d];return h(a,b,e)}}}];var f=function(a){var b=angular.element("<div></div>");return b.text(a),b.html()},g=function(b){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return a(b)},h=function(a,b){if(angular.isObject(a)){var c=angular.isArray(a)?[]:{};return angular.forEach(a,function(a,d){c[d]=h(a,b)}),c}return angular.isNumber(a)?a:b(a)}}function c(a,b,c,d){"use strict";var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t={},u=[],v=a,w=[],x="translate-cloak",y=!1,z=!1,A=".",B=0,C=!0,D="default",E={"default":function(a){return(a||"").split("-").join("_")},java:function(a){var b=(a||"").split("-").join("_"),c=b.split("_");return c.length>1?c[0].toLowerCase()+"_"+c[1].toUpperCase():b},bcp47:function(a){var b=(a||"").split("_").join("-"),c=b.split("-");return c.length>1?c[0].toLowerCase()+"-"+c[1].toUpperCase():b}},F="2.7.2",G=function(){if(angular.isFunction(d.getLocale))return d.getLocale();var a,c,e=b.$get().navigator,f=["language","browserLanguage","systemLanguage","userLanguage"];if(angular.isArray(e.languages))for(a=0;a<e.languages.length;a++)if(c=e.languages[a],c&&c.length)return c;for(a=0;a<f.length;a++)if(c=e[f[a]],c&&c.length)return c;return null};G.displayName="angular-translate/service: getFirstBrowserLanguage";var H=function(){var a=G()||"";return E[D]&&(a=E[D](a)),a};H.displayName="angular-translate/service: getLocale";var I=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},J=function(){return this.toString().replace(/^\s+|\s+$/g,"")},K=function(a){for(var b=[],c=angular.lowercase(a),d=0,e=u.length;e>d;d++)b.push(angular.lowercase(u[d]));if(I(b,c)>-1)return a;if(f){var g;for(var h in f){var i=!1,j=Object.prototype.hasOwnProperty.call(f,h)&&angular.lowercase(h)===angular.lowercase(a);if("*"===h.slice(-1)&&(i=h.slice(0,-1)===a.slice(0,h.length-1)),(j||i)&&(g=f[h],I(b,angular.lowercase(g))>-1))return g}}if(a){var k=a.split("_");if(k.length>1&&I(b,angular.lowercase(k[0]))>-1)return k[0]}return a},L=function(a,b){if(!a&&!b)return t;if(a&&!b){if(angular.isString(a))return t[a]}else angular.isObject(t[a])||(t[a]={}),angular.extend(t[a],M(b));return this};this.translations=L,this.cloakClassName=function(a){return a?(x=a,this):x};var M=function(a,b,c,d){var e,f,g,h;b||(b=[]),c||(c={});for(e in a)Object.prototype.hasOwnProperty.call(a,e)&&(h=a[e],angular.isObject(h)?M(h,b.concat(e),c,e):(f=b.length?""+b.join(A)+A+e:e,b.length&&e===d&&(g=""+b.join(A),c[g]="@:"+f),c[f]=h));return c};M.displayName="flatObject",this.addInterpolation=function(a){return w.push(a),this},this.useMessageFormatInterpolation=function(){return this.useInterpolation("$translateMessageFormatInterpolation")},this.useInterpolation=function(a){return n=a,this},this.useSanitizeValueStrategy=function(a){return c.useStrategy(a),this},this.preferredLanguage=function(a){return N(a),this};var N=function(a){return a&&(e=a),e};this.translationNotFoundIndicator=function(a){return this.translationNotFoundIndicatorLeft(a),this.translationNotFoundIndicatorRight(a),this},this.translationNotFoundIndicatorLeft=function(a){return a?(q=a,this):q},this.translationNotFoundIndicatorRight=function(a){return a?(r=a,this):r},this.fallbackLanguage=function(a){return O(a),this};var O=function(a){return a?(angular.isString(a)?(h=!0,g=[a]):angular.isArray(a)&&(h=!1,g=a),angular.isString(e)&&I(g,e)<0&&g.push(e),this):h?g[0]:g};this.use=function(a){if(a){if(!t[a]&&!o)throw new Error("$translateProvider couldn't find translationTable for langKey: '"+a+"'");return i=a,this}return i};var P=function(a){return a?(v=a,this):l?l+v:v};this.storageKey=P,this.useUrlLoader=function(a,b){return this.useLoader("$translateUrlLoader",angular.extend({url:a},b))},this.useStaticFilesLoader=function(a){return this.useLoader("$translateStaticFilesLoader",a)},this.useLoader=function(a,b){return o=a,p=b||{},this},this.useLocalStorage=function(){return this.useStorage("$translateLocalStorage")},this.useCookieStorage=function(){return this.useStorage("$translateCookieStorage")},this.useStorage=function(a){return k=a,this},this.storagePrefix=function(a){return a?(l=a,this):a},this.useMissingTranslationHandlerLog=function(){return this.useMissingTranslationHandler("$translateMissingTranslationHandlerLog")},this.useMissingTranslationHandler=function(a){return m=a,this},this.usePostCompiling=function(a){return y=!!a,this},this.forceAsyncReload=function(a){return z=!!a,this},this.uniformLanguageTag=function(a){return a?angular.isString(a)&&(a={standard:a}):a={},D=a.standard,this},this.determinePreferredLanguage=function(a){var b=a&&angular.isFunction(a)?a():H();return e=u.length?K(b):b,this},this.registerAvailableLanguageKeys=function(a,b){return a?(u=a,b&&(f=b),this):u},this.useLoaderCache=function(a){return a===!1?s=void 0:a===!0?s=!0:"undefined"==typeof a?s="$translationCache":a&&(s=a),this},this.directivePriority=function(a){return void 0===a?B:(B=a,this)},this.statefulFilter=function(a){return void 0===a?C:(C=a,this)},this.$get=["$log","$injector","$rootScope","$q",function(a,b,c,d){var f,l,u,A=b.get(n||"$translateDefaultInterpolation"),D=!1,E={},G={},H=function(a,b,c,h){if(angular.isArray(a)){var j=function(a){for(var e={},f=[],g=function(a){var f=d.defer(),g=function(b){e[a]=b,f.resolve([a,b])};return H(a,b,c,h).then(g,g),f.promise},i=0,j=a.length;j>i;i++)f.push(g(a[i]));return d.all(f).then(function(){return e})};return j(a)}var m=d.defer();a&&(a=J.apply(a));var n=function(){var a=e?G[e]:G[i];if(l=0,k&&!a){var b=f.get(v);if(a=G[b],g&&g.length){var c=I(g,b);l=0===c?1:0,I(g,e)<0&&g.push(e)}}return a}();if(n){var o=function(){aa(a,b,c,h).then(m.resolve,m.reject)};o.displayName="promiseResolved",n["finally"](o,m.reject)}else aa(a,b,c,h).then(m.resolve,m.reject);return m.promise},Q=function(a){return q&&(a=[q,a].join(" ")),r&&(a=[a,r].join(" ")),a},R=function(a){i=a,c.$emit("$translateChangeSuccess",{language:a}),k&&f.put(H.storageKey(),i),A.setLocale(i);var b=function(a,b){E[b].setLocale(i)};b.displayName="eachInterpolatorLocaleSetter",angular.forEach(E,b),c.$emit("$translateChangeEnd",{language:a})},S=function(a){if(!a)throw"No language key specified for loading.";var e=d.defer();c.$emit("$translateLoadingStart",{language:a}),D=!0;var f=s;"string"==typeof f&&(f=b.get(f));var g=angular.extend({},p,{key:a,$http:angular.extend({},{cache:f},p.$http)}),h=function(b){var d={};c.$emit("$translateLoadingSuccess",{language:a}),angular.isArray(b)?angular.forEach(b,function(a){angular.extend(d,M(a))}):angular.extend(d,M(b)),D=!1,e.resolve({key:a,table:d}),c.$emit("$translateLoadingEnd",{language:a})};h.displayName="onLoaderSuccess";var i=function(a){c.$emit("$translateLoadingError",{language:a}),e.reject(a),c.$emit("$translateLoadingEnd",{language:a})};return i.displayName="onLoaderError",b.get(o)(g).then(h,i),e.promise};if(k&&(f=b.get(k),!f.get||!f.put))throw new Error("Couldn't use storage '"+k+"', missing get() or put() method!");if(w.length){var T=function(a){var c=b.get(a);c.setLocale(e||i),E[c.getInterpolationIdentifier()]=c};T.displayName="interpolationFactoryAdder",angular.forEach(w,T)}var U=function(a){var b=d.defer();if(Object.prototype.hasOwnProperty.call(t,a))b.resolve(t[a]);else if(G[a]){var c=function(a){L(a.key,a.table),b.resolve(a.table)};c.displayName="translationTableResolver",G[a].then(c,b.reject)}else b.reject();return b.promise},V=function(a,b,c,e){var f=d.defer(),g=function(d){if(Object.prototype.hasOwnProperty.call(d,b)){e.setLocale(a);var g=d[b];"@:"===g.substr(0,2)?V(a,g.substr(2),c,e).then(f.resolve,f.reject):f.resolve(e.interpolate(d[b],c)),e.setLocale(i)}else f.reject()};return g.displayName="fallbackTranslationResolver",U(a).then(g,f.reject),f.promise},W=function(a,b,c,d){var e,f=t[a];if(f&&Object.prototype.hasOwnProperty.call(f,b)){if(d.setLocale(a),e=d.interpolate(f[b],c),"@:"===e.substr(0,2))return W(a,e.substr(2),c,d);d.setLocale(i)}return e},X=function(a,c){if(m){var d=b.get(m)(a,i,c);return void 0!==d?d:a}return a},Y=function(a,b,c,e,f){var h=d.defer();if(a<g.length){var i=g[a];V(i,b,c,e).then(h.resolve,function(){Y(a+1,b,c,e,f).then(h.resolve)})}else f?h.resolve(f):h.resolve(X(b,c));return h.promise},Z=function(a,b,c,d){var e;if(a<g.length){var f=g[a];e=W(f,b,c,d),e||(e=Z(a+1,b,c,d))}return e},$=function(a,b,c,d){return Y(u>0?u:l,a,b,c,d)},_=function(a,b,c){return Z(u>0?u:l,a,b,c)},aa=function(a,b,c,e){var f=d.defer(),h=i?t[i]:t,j=c?E[c]:A;if(h&&Object.prototype.hasOwnProperty.call(h,a)){var k=h[a];"@:"===k.substr(0,2)?H(k.substr(2),b,c,e).then(f.resolve,f.reject):f.resolve(j.interpolate(k,b))}else{var l;m&&!D&&(l=X(a,b)),i&&g&&g.length?$(a,b,j,e).then(function(a){f.resolve(a)},function(a){f.reject(Q(a))}):m&&!D&&l?e?f.resolve(e):f.resolve(l):e?f.resolve(e):f.reject(Q(a))}return f.promise},ba=function(a,b,c){var d,e=i?t[i]:t,f=A;if(E&&Object.prototype.hasOwnProperty.call(E,c)&&(f=E[c]),e&&Object.prototype.hasOwnProperty.call(e,a)){var h=e[a];d="@:"===h.substr(0,2)?ba(h.substr(2),b,c):f.interpolate(h,b)}else{var j;m&&!D&&(j=X(a,b)),i&&g&&g.length?(l=0,d=_(a,b,f)):d=m&&!D&&j?j:Q(a)}return d},ca=function(a){j===a&&(j=void 0),G[a]=void 0};if(H.preferredLanguage=function(a){return a&&N(a),e},H.cloakClassName=function(){return x},H.fallbackLanguage=function(a){if(void 0!==a&&null!==a){if(O(a),o&&g&&g.length)for(var b=0,c=g.length;c>b;b++)G[g[b]]||(G[g[b]]=S(g[b]));H.use(H.use())}return h?g[0]:g},H.useFallbackLanguage=function(a){if(void 0!==a&&null!==a)if(a){var b=I(g,a);b>-1&&(u=b)}else u=0},H.proposedLanguage=function(){return j},H.storage=function(){return f},H.use=function(a){if(!a)return i;var b=d.defer();c.$emit("$translateChangeStart",{language:a});var e=K(a);return e&&(a=e),!z&&t[a]||!o||G[a]?j===a&&G[a]?G[a].then(function(a){return b.resolve(a.key),a},function(a){return b.reject(a),d.reject(a)}):(b.resolve(a),R(a)):(j=a,G[a]=S(a).then(function(a){return L(a.key,a.table),b.resolve(a.key),R(a.key),a},function(a){return c.$emit("$translateChangeError",{language:a}),b.reject(a),c.$emit("$translateChangeEnd",{language:a}),d.reject(a)}),G[a]["finally"](function(){ca(a)})),b.promise},H.storageKey=function(){return P()},H.isPostCompilingEnabled=function(){return y},H.isForceAsyncReloadEnabled=function(){return z},H.refresh=function(a){function b(){f.resolve(),c.$emit("$translateRefreshEnd",{language:a})}function e(){f.reject(),c.$emit("$translateRefreshEnd",{language:a})}if(!o)throw new Error("Couldn't refresh translation table, no loader registered!");var f=d.defer();if(c.$emit("$translateRefreshStart",{language:a}),a)if(t[a]){var h=function(c){L(c.key,c.table),a===i&&R(i),b()};h.displayName="refreshPostProcessor",S(a).then(h,e)}else e();else{var j=[],k={};if(g&&g.length)for(var l=0,m=g.length;m>l;l++)j.push(S(g[l])),k[g[l]]=!0;i&&!k[i]&&j.push(S(i));var n=function(a){t={},angular.forEach(a,function(a){L(a.key,a.table)}),i&&R(i),b()};n.displayName="refreshPostProcessor",d.all(j).then(n,e)}return f.promise},H.instant=function(a,b,c){if(null===a||angular.isUndefined(a))return a;if(angular.isArray(a)){for(var d={},f=0,h=a.length;h>f;f++)d[a[f]]=H.instant(a[f],b,c);return d}if(angular.isString(a)&&a.length<1)return a;a&&(a=J.apply(a));var j,k=[];e&&k.push(e),i&&k.push(i),g&&g.length&&(k=k.concat(g));for(var l=0,n=k.length;n>l;l++){var o=k[l];if(t[o]&&("undefined"!=typeof t[o][a]?j=ba(a,b,c):(q||r)&&(j=Q(a))),"undefined"!=typeof j)break}return j||""===j||(j=A.interpolate(a,b),
-m&&!D&&(j=X(a,b))),j},H.versionInfo=function(){return F},H.loaderCache=function(){return s},H.directivePriority=function(){return B},H.statefulFilter=function(){return C},o&&(angular.equals(t,{})&&H.use(H.use()),g&&g.length))for(var da=function(a){return L(a.key,a.table),c.$emit("$translateChangeEnd",{language:a.key}),a},ea=0,fa=g.length;fa>ea;ea++){var ga=g[ea];(z||!t[ga])&&(G[ga]=S(ga).then(da))}return H}]}function d(a,b){"use strict";var c,d={},e="default";return d.setLocale=function(a){c=a},d.getInterpolationIdentifier=function(){return e},d.useSanitizeValueStrategy=function(a){return b.useStrategy(a),this},d.interpolate=function(c,d){d=d||{},d=b.sanitize(d,"params");var e=a(c)(d);return e=b.sanitize(e,"text")},d}function e(a,b,c,d,e,f){"use strict";var g=function(){return this.toString().replace(/^\s+|\s+$/g,"")};return{restrict:"AE",scope:!0,priority:a.directivePriority(),compile:function(b,h){var i=h.translateValues?h.translateValues:void 0,j=h.translateInterpolation?h.translateInterpolation:void 0,k=b[0].outerHTML.match(/translate-value-+/i),l="^(.*)("+c.startSymbol()+".*"+c.endSymbol()+")(.*)",m="^(.*)"+c.startSymbol()+"(.*)"+c.endSymbol()+"(.*)";return function(b,n,o){b.interpolateParams={},b.preText="",b.postText="";var p={},q=function(a,c,d){if(c.translateValues&&angular.extend(a,e(c.translateValues)(b.$parent)),k)for(var f in d)if(Object.prototype.hasOwnProperty.call(c,f)&&"translateValue"===f.substr(0,14)&&"translateValues"!==f){var g=angular.lowercase(f.substr(14,1))+f.substr(15);a[g]=d[f]}},r=function(a){if(angular.isFunction(r._unwatchOld)&&(r._unwatchOld(),r._unwatchOld=void 0),angular.equals(a,"")||!angular.isDefined(a)){var d=g.apply(n.text()).match(l);if(angular.isArray(d)){b.preText=d[1],b.postText=d[3],p.translate=c(d[2])(b.$parent);var e=n.text().match(m);angular.isArray(e)&&e[2]&&e[2].length&&(r._unwatchOld=b.$watch(e[2],function(a){p.translate=a,x()}))}else p.translate=n.text().replace(/^\s+|\s+$/g,"")}else p.translate=a;x()},s=function(a){o.$observe(a,function(b){p[a]=b,x()})};q(b.interpolateParams,o,h);var t=!0;o.$observe("translate",function(a){"undefined"==typeof a?r(""):""===a&&t||(p.translate=a,x()),t=!1});for(var u in o)o.hasOwnProperty(u)&&"translateAttr"===u.substr(0,13)&&s(u);if(o.$observe("translateDefault",function(a){b.defaultText=a}),i&&o.$observe("translateValues",function(a){a&&b.$parent.$watch(function(){angular.extend(b.interpolateParams,e(a)(b.$parent))})}),k){var v=function(a){o.$observe(a,function(c){var d=angular.lowercase(a.substr(14,1))+a.substr(15);b.interpolateParams[d]=c})};for(var w in o)Object.prototype.hasOwnProperty.call(o,w)&&"translateValue"===w.substr(0,14)&&"translateValues"!==w&&v(w)}var x=function(){for(var a in p)p.hasOwnProperty(a)&&void 0!==p[a]&&y(a,p[a],b,b.interpolateParams,b.defaultText)},y=function(b,c,d,e,f){c?a(c,e,j,f).then(function(a){z(a,d,!0,b)},function(a){z(a,d,!1,b)}):z(c,d,!1,b)},z=function(b,c,e,f){if("translate"===f){e||"undefined"==typeof c.defaultText||(b=c.defaultText),n.html(c.preText+b+c.postText);var g=a.isPostCompilingEnabled(),i="undefined"!=typeof h.translateCompile,j=i&&"false"!==h.translateCompile;(g&&!i||j)&&d(n.contents())(c)}else{e||"undefined"==typeof c.defaultText||(b=c.defaultText);var k=o.$attr[f];"data-"===k.substr(0,5)&&(k=k.substr(5)),k=k.substr(15),n.attr(k,b)}};(i||k||o.translateDefault)&&b.$watch("interpolateParams",x,!0);var A=f.$on("$translateChangeSuccess",x);n.text().length?r(o.translate?o.translate:""):o.translate&&r(o.translate),x(),b.$on("$destroy",A)}}}}function f(a,b){"use strict";return{compile:function(c){var d=function(){c.addClass(b.cloakClassName())},e=function(){c.removeClass(b.cloakClassName())},f=a.$on("$translateChangeEnd",function(){e(),f(),f=null});return d(),function(a,c,f){f.translateCloak&&f.translateCloak.length&&f.$observe("translateCloak",function(a){b(a).then(e,d)})}}}}function g(a,b){"use strict";var c=function(c,d,e){return angular.isObject(d)||(d=a(d)(this)),b.instant(c,d,e)};return b.statefulFilter()&&(c.$stateful=!0),c}function h(a){"use strict";return a("translations")}return angular.module("pascalprecht.translate",["ng"]).run(a),a.$inject=["$translate"],a.displayName="runTranslate",angular.module("pascalprecht.translate").provider("$translateSanitization",b),angular.module("pascalprecht.translate").constant("pascalprechtTranslateOverrider",{}).provider("$translate",c),c.$inject=["$STORAGE_KEY","$windowProvider","$translateSanitizationProvider","pascalprechtTranslateOverrider"],c.displayName="displayName",angular.module("pascalprecht.translate").factory("$translateDefaultInterpolation",d),d.$inject=["$interpolate","$translateSanitization"],d.displayName="$translateDefaultInterpolation",angular.module("pascalprecht.translate").constant("$STORAGE_KEY","NG_TRANSLATE_LANG_KEY"),angular.module("pascalprecht.translate").directive("translate",e),e.$inject=["$translate","$q","$interpolate","$compile","$parse","$rootScope"],e.displayName="translateDirective",angular.module("pascalprecht.translate").directive("translateCloak",f),f.$inject=["$rootScope","$translate"],f.displayName="translateCloakDirective",angular.module("pascalprecht.translate").filter("translate",g),g.$inject=["$parse","$translate"],g.displayName="translateFilterFactory",angular.module("pascalprecht.translate").factory("$translationCache",h),h.$inject=["$cacheFactory"],h.displayName="$translationCache","pascalprecht.translate"}),function(a,b){"function"==typeof define&&define.amd?define([],function(){return b()}):"object"==typeof exports?module.exports=b():b()}(this,function(){function a(a,b){"use strict";return function(c){if(!(c&&(angular.isArray(c.files)||angular.isString(c.prefix)&&angular.isString(c.suffix))))throw new Error("Couldn't load static files, no files and prefix or suffix specified!");c.files||(c.files=[{prefix:c.prefix,suffix:c.suffix}]);for(var d=function(d){if(!d||!angular.isString(d.prefix)||!angular.isString(d.suffix))throw new Error("Couldn't load static file, no prefix or suffix specified!");var e=a.defer();return b(angular.extend({url:[d.prefix,c.key,d.suffix].join(""),method:"GET",params:""},c.$http)).success(function(a){e.resolve(a)}).error(function(){e.reject(c.key)}),e.promise},e=a.defer(),f=[],g=c.files.length,h=0;g>h;h++)f.push(d({prefix:c.files[h].prefix,key:c.key,suffix:c.files[h].suffix}));return a.all(f).then(function(a){for(var b=a.length,c={},d=0;b>d;d++)for(var f in a[d])c[f]=a[d][f];e.resolve(c)},function(a){e.reject(a)}),e.promise}}return angular.module("pascalprecht.translate").factory("$translateStaticFilesLoader",a),a.$inject=["$q","$http"],a.displayName="$translateStaticFilesLoader","pascalprecht.translate"}),function(a,b){"function"==typeof define&&define.amd?define([],function(){return b()}):"object"==typeof exports?module.exports=b():b()}(this,function(){function a(a){"use strict";var b={get:function(b){return a.get(b)},set:function(b,c){a.put(b,c)},put:function(b,c){a.put(b,c)}};return b}return angular.module("pascalprecht.translate").factory("$translateCookieStorage",a),a.$inject=["$cookieStore"],a.displayName="$translateCookieStorage","pascalprecht.translate"}),function(a,b){"function"==typeof define&&define.amd?define([],function(){return b()}):"object"==typeof exports?module.exports=b():b()}(this,function(){function a(a,b){"use strict";var c=function(){var b;return{get:function(c){return b||(b=a.localStorage.getItem(c)),b},set:function(c,d){b=d,a.localStorage.setItem(c,d)},put:function(c,d){b=d,a.localStorage.setItem(c,d)}}}(),d="localStorage"in a;if(d){var e="pascalprecht.translate.storageTest";try{null!==a.localStorage?(a.localStorage.setItem(e,"foo"),a.localStorage.removeItem(e),d=!0):d=!1}catch(f){d=!1}}var g=d?c:b;return g}return angular.module("pascalprecht.translate").factory("$translateLocalStorage",a),a.$inject=["$window","$translateCookieStorage"],a.displayName="$translateLocalStorageFactory","pascalprecht.translate"}),angular.module("truncate",[]).filter("characters",function(){return function(a,b,c){if(isNaN(b))return a;if(0>=b)return"";if(a&&a.length>b){if(a=a.substring(0,b),c)for(;" "===a.charAt(a.length-1);)a=a.substr(0,a.length-1);else{var d=a.lastIndexOf(" ");-1!==d&&(a=a.substr(0,d))}return a+"…"}return a}}).filter("splitcharacters",function(){return function(a,b){if(isNaN(b))return a;if(0>=b)return"";if(a&&a.length>b){var c=a.substring(0,b/2),d=a.substring(a.length-b/2,a.length);return c+"..."+d}return a}}).filter("words",function(){return function(a,b){if(isNaN(b))return a;if(0>=b)return"";if(a){var c=a.split(/\s+/);c.length>b&&(a=c.slice(0,b).join(" ")+"…")}return a}}),angular.module("ui-notification",[]),angular.module("ui-notification").provider("Notification",function(){this.options={delay:5e3,startTop:10,startRight:10,verticalSpacing:10,horizontalSpacing:10,positionX:"right",positionY:"top",replaceMessage:!1,templateUrl:"angular-ui-notification.html"},this.setOptions=function(a){if(!angular.isObject(a))throw new Error("Options should be an object!");this.options=angular.extend({},this.options,a)},this.$get=["$timeout","$http","$compile","$templateCache","$rootScope","$injector","$sce","$q","$window",function(a,b,c,d,e,f,g,h,i){var j=this.options,k=j.startTop,l=j.startRight,m=j.verticalSpacing,n=j.horizontalSpacing,o=j.delay,p=[],q=!1,r=function(f,r){var s=h.defer();return"object"!=typeof f&&(f={message:f}),f.scope=f.scope?f.scope:e,f.template=f.templateUrl?f.templateUrl:j.templateUrl,f.delay=angular.isUndefined(f.delay)?o:f.delay,f.type=r?r:"",f.positionY=f.positionY?f.positionY:j.positionY,f.positionX=f.positionX?f.positionX:j.positionX,f.replaceMessage=f.replaceMessage?f.replaceMessage:j.replaceMessage,b.get(f.template,{cache:d}).success(function(b){var d=f.scope.$new();d.message=g.trustAsHtml(f.message),d.title=g.trustAsHtml(f.title),d.t=f.type.substr(0,1),d.delay=f.delay;var e=function(){for(var a=0,b=0,c=k,d=l,e=[],g=p.length-1;g>=0;g--){var h=p[g];if(f.replaceMessage&&g<p.length-1)h.addClass("killed");else{var i=parseInt(h[0].offsetHeight),j=parseInt(h[0].offsetWidth),o=e[h._positionY+h._positionX];q+i>window.innerHeight&&(o=k,b++,a=0);var q=c=o?0===a?o:o+m:k,r=d+b*(n+j);h.css(h._positionY,q+"px"),"center"==h._positionX?h.css("left",parseInt(window.innerWidth/2-j/2)+"px"):h.css(h._positionX,r+"px"),e[h._positionY+h._positionX]=q+i,a++}}},h=c(b)(d);h._positionY=f.positionY,h._positionX=f.positionX,h.addClass(f.type),h.bind("webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd click",function(a){a=a.originalEvent||a,("click"===a.type||"opacity"===a.propertyName&&a.elapsedTime>=1)&&(h.remove(),p.splice(p.indexOf(h),1),e())}),angular.isNumber(f.delay)&&a(function(){h.addClass("killed")},f.delay),angular.element(document.getElementsByTagName("body")).append(h);var j=-(parseInt(h[0].offsetHeight)+50);h.css(h._positionY,j+"px"),p.push(h),d._templateElement=h,d.kill=function(b){b?(p.splice(p.indexOf(d._templateElement),1),d._templateElement.remove(),a(e)):d._templateElement.addClass("killed")},a(e),q||(angular.element(i).bind("resize",function(){a(e)}),q=!0),s.resolve(d)}).error(function(a){throw new Error("Template ("+f.template+") could not be loaded. "+a)}),s.promise};return r.primary=function(a){return this(a,"primary")},r.error=function(a){return this(a,"error")},r.success=function(a){return this(a,"success")},r.info=function(a){return this(a,"info")},r.warning=function(a){return this(a,"warning")},r.clearAll=function(){angular.forEach(p,function(a){a.addClass("killed")})},r}]}),angular.module("ui-notification").run(["$templateCache",function(a){a.put("angular-ui-notification.html",'<div class="ui-notification"><h3 ng-show="title" ng-bind-html="title"></h3><div class="message" ng-bind-html="message"></div></div>')}]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(a,b,c){"use strict";function d(a,b){return N(new(N(function(){},{prototype:a})),b)}function e(a){return M(arguments,function(b){b!==a&&M(b,function(b,c){a.hasOwnProperty(c)||(a[c]=b)})}),a}function f(a,b){var c=[];for(var d in a.path){if(a.path[d]!==b.path[d])break;c.push(a.path[d])}return c}function g(a){if(Object.keys)return Object.keys(a);var b=[];return M(a,function(a,c){b.push(c)}),b}function h(a,b){if(Array.prototype.indexOf)return a.indexOf(b,Number(arguments[2])||0);var c=a.length>>>0,d=Number(arguments[2])||0;for(d=0>d?Math.ceil(d):Math.floor(d),0>d&&(d+=c);c>d;d++)if(d in a&&a[d]===b)return d;return-1}function i(a,b,c,d){var e,i=f(c,d),j={},k=[];for(var l in i)if(i[l].params&&(e=g(i[l].params),e.length))for(var m in e)h(k,e[m])>=0||(k.push(e[m]),j[e[m]]=a[e[m]]);return N({},j,b)}function j(a,b,c){if(!c){c=[];for(var d in a)c.push(d)}for(var e=0;e<c.length;e++){var f=c[e];if(a[f]!=b[f])return!1}return!0}function k(a,b){var c={};return M(a,function(a){c[a]=b[a]}),c}function l(a){var b={},c=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));return M(c,function(c){c in a&&(b[c]=a[c])}),b}function m(a){var b={},c=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));for(var d in a)-1==h(c,d)&&(b[d]=a[d]);return b}function n(a,b){var c=L(a),d=c?[]:{};return M(a,function(a,e){b(a,e)&&(d[c?d.length:e]=a)}),d}function o(a,b){var c=L(a)?[]:{};return M(a,function(a,d){c[d]=b(a,d)}),c}function p(a,b){var d=1,f=2,i={},j=[],k=i,l=N(a.when(i),{$$promises:i,$$values:i});this.study=function(i){function n(a,c){if(s[c]!==f){if(r.push(c),s[c]===d)throw r.splice(0,h(r,c)),new Error("Cyclic dependency: "+r.join(" -> "));if(s[c]=d,J(a))q.push(c,[function(){return b.get(a)}],j);else{var e=b.annotate(a);M(e,function(a){a!==c&&i.hasOwnProperty(a)&&n(i[a],a)}),q.push(c,a,e)}r.pop(),s[c]=f}}function o(a){return K(a)&&a.then&&a.$$promises}if(!K(i))throw new Error("'invocables' must be an object");var p=g(i||{}),q=[],r=[],s={};return M(i,n),i=r=s=null,function(d,f,g){function h(){--u||(v||e(t,f.$$values),r.$$values=t,r.$$promises=r.$$promises||!0,delete r.$$inheritedValues,n.resolve(t))}function i(a){r.$$failure=a,n.reject(a)}function j(c,e,f){function j(a){l.reject(a),i(a)}function k(){if(!H(r.$$failure))try{l.resolve(b.invoke(e,g,t)),l.promise.then(function(a){t[c]=a,h()},j)}catch(a){j(a)}}var l=a.defer(),m=0;M(f,function(a){s.hasOwnProperty(a)&&!d.hasOwnProperty(a)&&(m++,s[a].then(function(b){t[a]=b,--m||k()},j))}),m||k(),s[c]=l.promise}if(o(d)&&g===c&&(g=f,f=d,d=null),d){if(!K(d))throw new Error("'locals' must be an object")}else d=k;if(f){if(!o(f))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else f=l;var n=a.defer(),r=n.promise,s=r.$$promises={},t=N({},d),u=1+q.length/3,v=!1;if(H(f.$$failure))return i(f.$$failure),r;f.$$inheritedValues&&e(t,m(f.$$inheritedValues,p)),N(s,f.$$promises),f.$$values?(v=e(t,m(f.$$values,p)),r.$$inheritedValues=m(f.$$values,p),h()):(f.$$inheritedValues&&(r.$$inheritedValues=m(f.$$inheritedValues,p)),f.then(h,i));for(var w=0,x=q.length;x>w;w+=3)d.hasOwnProperty(q[w])?h():j(q[w],q[w+1],q[w+2]);return r}},this.resolve=function(a,b,c,d){return this.study(a)(b,c,d)}}function q(a,b,c){this.fromConfig=function(a,b,c){return H(a.template)?this.fromString(a.template,b):H(a.templateUrl)?this.fromUrl(a.templateUrl,b):H(a.templateProvider)?this.fromProvider(a.templateProvider,b,c):null},this.fromString=function(a,b){return I(a)?a(b):a},this.fromUrl=function(c,d){return I(c)&&(c=c(d)),null==c?null:a.get(c,{cache:b,headers:{Accept:"text/html"}}).then(function(a){return a.data})},this.fromProvider=function(a,b,d){return c.invoke(a,null,d||{params:b})}}function r(a,b,e){function f(b,c,d,e){if(q.push(b),o[b])return o[b];if(!/^\w+(-+\w+)*(?:\[\])?$/.test(b))throw new Error("Invalid parameter name '"+b+"' in pattern '"+a+"'");if(p[b])throw new Error("Duplicate parameter name '"+b+"' in pattern '"+a+"'");return p[b]=new P.Param(b,c,d,e),p[b]}function g(a,b,c,d){var e=["",""],f=a.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!b)return f;switch(c){case!1:e=["(",")"+(d?"?":"")];break;case!0:e=["?(",")?"];break;default:e=["("+c+"|",")?"]}return f+e[0]+b+e[1]}function h(e,f){var g,h,i,j,k;return g=e[2]||e[3],k=b.params[g],i=a.substring(m,e.index),h=f?e[4]:e[4]||("*"==e[1]?".*":null),j=P.type(h||"string")||d(P.type("string"),{pattern:new RegExp(h,b.caseInsensitive?"i":c)}),{id:g,regexp:h,segment:i,type:j,cfg:k}}b=N({params:{}},K(b)?b:{});var i,j=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,k=/([:]?)([\w\[\]-]+)|\{([\w\[\]-]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,l="^",m=0,n=this.segments=[],o=e?e.params:{},p=this.params=e?e.params.$$new():new P.ParamSet,q=[];this.source=a;for(var r,s,t;(i=j.exec(a))&&(r=h(i,!1),!(r.segment.indexOf("?")>=0));)s=f(r.id,r.type,r.cfg,"path"),l+=g(r.segment,s.type.pattern.source,s.squash,s.isOptional),n.push(r.segment),m=j.lastIndex;t=a.substring(m);var u=t.indexOf("?");if(u>=0){var v=this.sourceSearch=t.substring(u);if(t=t.substring(0,u),this.sourcePath=a.substring(0,m+u),v.length>0)for(m=0;i=k.exec(v);)r=h(i,!0),s=f(r.id,r.type,r.cfg,"search"),m=j.lastIndex}else this.sourcePath=a,this.sourceSearch="";l+=g(t)+(b.strict===!1?"/?":"")+"$",n.push(t),this.regexp=new RegExp(l,b.caseInsensitive?"i":c),this.prefix=n[0],this.$$paramNames=q}function s(a){N(this,a)}function t(){function a(a){return null!=a?a.toString().replace(/\//g,"%2F"):a}function e(a){return null!=a?a.toString().replace(/%2F/g,"/"):a}function f(){return{strict:p,caseInsensitive:m}}function i(a){return I(a)||L(a)&&I(a[a.length-1])}function j(){for(;w.length;){var a=w.shift();if(a.pattern)throw new Error("You cannot override a type's .pattern at runtime.");b.extend(u[a.name],l.invoke(a.def))}}function k(a){N(this,a||{})}P=this;var l,m=!1,p=!0,q=!1,u={},v=!0,w=[],x={string:{encode:a,decode:e,is:function(a){return null==a||!H(a)||"string"==typeof a},pattern:/[^\/]*/},"int":{encode:a,decode:function(a){return parseInt(a,10)},is:function(a){return H(a)&&this.decode(a.toString())===a},pattern:/\d+/},bool:{encode:function(a){return a?1:0},decode:function(a){return 0!==parseInt(a,10)},is:function(a){return a===!0||a===!1},pattern:/0|1/},date:{encode:function(a){return this.is(a)?[a.getFullYear(),("0"+(a.getMonth()+1)).slice(-2),("0"+a.getDate()).slice(-2)].join("-"):c},decode:function(a){if(this.is(a))return a;var b=this.capture.exec(a);return b?new Date(b[1],b[2]-1,b[3]):c},is:function(a){return a instanceof Date&&!isNaN(a.valueOf())},equals:function(a,b){return this.is(a)&&this.is(b)&&a.toISOString()===b.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:b.toJson,decode:b.fromJson,is:b.isObject,equals:b.equals,pattern:/[^\/]*/},any:{encode:b.identity,decode:b.identity,equals:b.equals,pattern:/.*/}};t.$$getDefaultValue=function(a){if(!i(a.value))return a.value;if(!l)throw new Error("Injectable functions cannot be called at configuration time");return l.invoke(a.value)},this.caseInsensitive=function(a){return H(a)&&(m=a),m},this.strictMode=function(a){return H(a)&&(p=a),p},this.defaultSquashPolicy=function(a){if(!H(a))return q;if(a!==!0&&a!==!1&&!J(a))throw new Error("Invalid squash policy: "+a+". Valid policies: false, true, arbitrary-string");return q=a,a},this.compile=function(a,b){return new r(a,N(f(),b))},this.isMatcher=function(a){if(!K(a))return!1;var b=!0;return M(r.prototype,function(c,d){I(c)&&(b=b&&H(a[d])&&I(a[d]))}),b},this.type=function(a,b,c){if(!H(b))return u[a];if(u.hasOwnProperty(a))throw new Error("A type named '"+a+"' has already been defined.");return u[a]=new s(N({name:a},b)),c&&(w.push({name:a,def:c}),v||j()),this},M(x,function(a,b){u[b]=new s(N({name:b},a))}),u=d(u,{}),this.$get=["$injector",function(a){return l=a,v=!1,j(),M(x,function(a,b){u[b]||(u[b]=new s(a))}),this}],this.Param=function(a,b,d,e){function f(a){var b=K(a)?g(a):[],c=-1===h(b,"value")&&-1===h(b,"type")&&-1===h(b,"squash")&&-1===h(b,"array");return c&&(a={value:a}),a.$$fn=i(a.value)?a.value:function(){return a.value},a}function j(b,c,d){if(b.type&&c)throw new Error("Param '"+a+"' has two type configurations.");return c?c:b.type?b.type instanceof s?b.type:new s(b.type):"config"===d?u.any:u.string}function k(){var b={array:"search"===e?"auto":!1},c=a.match(/\[\]$/)?{array:!0}:{};return N(b,c,d).array}function m(a,b){var c=a.squash;if(!b||c===!1)return!1;if(!H(c)||null==c)return q;if(c===!0||J(c))return c;throw new Error("Invalid squash policy: '"+c+"'. Valid policies: false, true, or arbitrary string")}function p(a,b,d,e){var f,g,i=[{from:"",to:d||b?c:""},{from:null,to:d||b?c:""}];return f=L(a.replace)?a.replace:[],J(e)&&f.push({from:e,to:c}),g=o(f,function(a){return a.from}),n(i,function(a){return-1===h(g,a.from)}).concat(f)}function r(){if(!l)throw new Error("Injectable functions cannot be called at configuration time");var a=l.invoke(d.$$fn);if(null!==a&&a!==c&&!w.type.is(a))throw new Error("Default value ("+a+") for parameter '"+w.id+"' is not an instance of Type ("+w.type.name+")");return a}function t(a){function b(a){return function(b){return b.from===a}}function c(a){var c=o(n(w.replace,b(a)),function(a){return a.to});return c.length?c[0]:a}return a=c(a),H(a)?w.type.$normalize(a):r()}function v(){return"{Param:"+a+" "+b+" squash: '"+z+"' optional: "+y+"}"}var w=this;d=f(d),b=j(d,b,e);var x=k();b=x?b.$asArray(x,"search"===e):b,"string"!==b.name||x||"path"!==e||d.value!==c||(d.value="");var y=d.value!==c,z=m(d,y),A=p(d,x,y,z);N(this,{id:a,type:b,location:e,array:x,squash:z,replace:A,isOptional:y,value:t,dynamic:c,config:d,toString:v})},k.prototype={$$new:function(){return d(this,N(new k,{$$parent:this}))},$$keys:function(){for(var a=[],b=[],c=this,d=g(k.prototype);c;)b.push(c),c=c.$$parent;return b.reverse(),M(b,function(b){M(g(b),function(b){-1===h(a,b)&&-1===h(d,b)&&a.push(b)})}),a},$$values:function(a){var b={},c=this;return M(c.$$keys(),function(d){b[d]=c[d].value(a&&a[d])}),b},$$equals:function(a,b){var c=!0,d=this;return M(d.$$keys(),function(e){var f=a&&a[e],g=b&&b[e];d[e].type.equals(f,g)||(c=!1)}),c},$$validates:function(a){var d,e,f,g,h,i=this.$$keys();for(d=0;d<i.length&&(e=this[i[d]],f=a[i[d]],f!==c&&null!==f||!e.isOptional);d++){if(g=e.type.$normalize(f),!e.type.is(g))return!1;if(h=e.type.encode(g),b.isString(h)&&!e.type.pattern.exec(h))return!1}return!0},$$parent:c},this.ParamSet=k}function u(a,d){function e(a){var b=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(a.source);return null!=b?b[1].replace(/\\(.)/g,"$1"):""}function f(a,b){return a.replace(/\$(\$|\d{1,2})/,function(a,c){return b["$"===c?0:Number(c)]})}function g(a,b,c){if(!c)return!1;var d=a.invoke(b,b,{$match:c});return H(d)?d:!0}function h(d,e,f,g){function h(a,b,c){return"/"===p?a:b?p.slice(0,-1)+a:c?p.slice(1)+a:a}function m(a){function b(a){var b=a(f,d);return b?(J(b)&&d.replace().url(b),!0):!1}if(!a||!a.defaultPrevented){o&&d.url()===o;o=c;var e,g=j.length;for(e=0;g>e;e++)if(b(j[e]))return;k&&b(k)}}function n(){return i=i||e.$on("$locationChangeSuccess",m)}var o,p=g.baseHref(),q=d.url();return l||n(),{sync:function(){m()},listen:function(){return n()},update:function(a){return a?void(q=d.url()):void(d.url()!==q&&(d.url(q),d.replace()))},push:function(a,b,e){var f=a.format(b||{});null!==f&&b&&b["#"]&&(f+="#"+b["#"]),d.url(f),o=e&&e.$$avoidResync?d.url():c,e&&e.replace&&d.replace()},href:function(c,e,f){if(!c.validates(e))return null;var g=a.html5Mode();b.isObject(g)&&(g=g.enabled);var i=c.format(e);if(f=f||{},g||null===i||(i="#"+a.hashPrefix()+i),null!==i&&e&&e["#"]&&(i+="#"+e["#"]),i=h(i,g,f.absolute),!f.absolute||!i)return i;var j=!g&&i?"/":"",k=d.port();return k=80===k||443===k?"":":"+k,[d.protocol(),"://",d.host(),k,j,i].join("")}}}var i,j=[],k=null,l=!1;this.rule=function(a){if(!I(a))throw new Error("'rule' must be a function");return j.push(a),this},this.otherwise=function(a){if(J(a)){var b=a;a=function(){return b}}else if(!I(a))throw new Error("'rule' must be a function");return k=a,this},this.when=function(a,b){var c,h=J(b);if(J(a)&&(a=d.compile(a)),!h&&!I(b)&&!L(b))throw new Error("invalid 'handler' in when()");var i={matcher:function(a,b){return h&&(c=d.compile(b),b=["$match",function(a){return c.format(a)}]),N(function(c,d){return g(c,b,a.exec(d.path(),d.search()))},{prefix:J(a.prefix)?a.prefix:""})},regex:function(a,b){if(a.global||a.sticky)throw new Error("when() RegExp must not be global or sticky");return h&&(c=b,b=["$match",function(a){return f(c,a)}]),N(function(c,d){return g(c,b,a.exec(d.path()))},{prefix:e(a)})}},j={matcher:d.isMatcher(a),regex:a instanceof RegExp};for(var k in j)if(j[k])return this.rule(i[k](a,b));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(a){a===c&&(a=!0),l=a},this.$get=h,h.$inject=["$location","$rootScope","$injector","$browser"]}function v(a,e){function f(a){return 0===a.indexOf(".")||0===a.indexOf("^")}function m(a,b){if(!a)return c;var d=J(a),e=d?a:a.name,g=f(e);if(g){if(!b)throw new Error("No reference point given for path '"+e+"'");b=m(b);for(var h=e.split("."),i=0,j=h.length,k=b;j>i;i++)if(""!==h[i]||0!==i){if("^"!==h[i])break;if(!k.parent)throw new Error("Path '"+e+"' not valid for state '"+b.name+"'");k=k.parent}else k=b;h=h.slice(i).join("."),e=k.name+(k.name&&h?".":"")+h}var l=z[e];return!l||!d&&(d||l!==a&&l.self!==a)?c:l}function n(a,b){A[a]||(A[a]=[]),A[a].push(b)}function p(a){for(var b=A[a]||[];b.length;)q(b.shift())}function q(b){b=d(b,{self:b,resolve:b.resolve||{},toString:function(){return this.name}});var c=b.name;if(!J(c)||c.indexOf("@")>=0)throw new Error("State must have a valid name");if(z.hasOwnProperty(c))throw new Error("State '"+c+"'' is already defined");var e=-1!==c.indexOf(".")?c.substring(0,c.lastIndexOf(".")):J(b.parent)?b.parent:K(b.parent)&&J(b.parent.name)?b.parent.name:"";if(e&&!z[e])return n(e,b.self);for(var f in C)I(C[f])&&(b[f]=C[f](b,C.$delegates[f]));return z[c]=b,!b[B]&&b.url&&a.when(b.url,["$match","$stateParams",function(a,c){y.$current.navigable==b&&j(a,c)||y.transitionTo(b,a,{inherit:!0,location:!1})}]),p(c),b}function r(a){return a.indexOf("*")>-1}function s(a){for(var b=a.split("."),c=y.$current.name.split("."),d=0,e=b.length;e>d;d++)"*"===b[d]&&(c[d]="*");return"**"===b[0]&&(c=c.slice(h(c,b[1])),c.unshift("**")),"**"===b[b.length-1]&&(c.splice(h(c,b[b.length-2])+1,Number.MAX_VALUE),c.push("**")),b.length!=c.length?!1:c.join("")===b.join("")}function t(a,b){return J(a)&&!H(b)?C[a]:I(b)&&J(a)?(C[a]&&!C.$delegates[a]&&(C.$delegates[a]=C[a]),C[a]=b,this):this}function u(a,b){return K(a)?b=a:b.name=a,q(b),this}function v(a,e,f,h,l,n,p,q,t){function u(b,c,d,f){var g=a.$broadcast("$stateNotFound",b,c,d);if(g.defaultPrevented)return p.update(),D;if(!g.retry)return null;if(f.$retry)return p.update(),E;var h=y.transition=e.when(g.retry);return h.then(function(){return h!==y.transition?A:(b.options.$retry=!0,y.transitionTo(b.to,b.toParams,b.options))},function(){return D}),p.update(),h}function v(a,c,d,g,i,j){function m(){var c=[];return M(a.views,function(d,e){var g=d.resolve&&d.resolve!==a.resolve?d.resolve:{};g.$template=[function(){return f.load(e,{view:d,locals:i.globals,params:n,notify:j.notify})||""}],c.push(l.resolve(g,i.globals,i.resolve,a).then(function(c){if(I(d.controllerProvider)||L(d.controllerProvider)){var f=b.extend({},g,i.globals);c.$$controller=h.invoke(d.controllerProvider,null,f)}else c.$$controller=d.controller;c.$$state=a,c.$$controllerAs=d.controllerAs,i[e]=c}))}),e.all(c).then(function(){return i.globals})}var n=d?c:k(a.params.$$keys(),c),o={$stateParams:n};i.resolve=l.resolve(a.resolve,o,i.resolve,a);var p=[i.resolve.then(function(a){i.globals=a})];return g&&p.push(g),e.all(p).then(m).then(function(a){return i})}var A=e.reject(new Error("transition superseded")),C=e.reject(new Error("transition prevented")),D=e.reject(new Error("transition aborted")),E=e.reject(new Error("transition failed"));return x.locals={resolve:null,globals:{$stateParams:{}}},y={params:{},current:x.self,$current:x,transition:null},y.reload=function(a){return y.transitionTo(y.current,n,{reload:a||!0,inherit:!1,notify:!0})},y.go=function(a,b,c){return y.transitionTo(a,b,N({inherit:!0,relative:y.$current},c))},y.transitionTo=function(b,c,f){c=c||{},f=N({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},f||{});var g,j=y.$current,l=y.params,o=j.path,q=m(b,f.relative),r=c["#"];if(!H(q)){var s={to:b,toParams:c,options:f},t=u(s,j.self,l,f);if(t)return t;if(b=s.to,c=s.toParams,f=s.options,q=m(b,f.relative),!H(q)){if(!f.relative)throw new Error("No such state '"+b+"'");throw new Error("Could not resolve '"+b+"' from state '"+f.relative+"'")}}if(q[B])throw new Error("Cannot transition to abstract state '"+b+"'");if(f.inherit&&(c=i(n,c||{},y.$current,q)),!q.params.$$validates(c))return E;c=q.params.$$values(c),b=q;var z=b.path,D=0,F=z[D],G=x.locals,I=[];if(f.reload){if(J(f.reload)||K(f.reload)){if(K(f.reload)&&!f.reload.name)throw new Error("Invalid reload state object");var L=f.reload===!0?o[0]:m(f.reload);if(f.reload&&!L)throw new Error("No such reload state '"+(J(f.reload)?f.reload:f.reload.name)+"'");for(;F&&F===o[D]&&F!==L;)G=I[D]=F.locals,D++,F=z[D]}}else for(;F&&F===o[D]&&F.ownParams.$$equals(c,l);)G=I[D]=F.locals,D++,F=z[D];if(w(b,c,j,l,G,f))return r&&(c["#"]=r),y.params=c,O(y.params,n),f.location&&b.navigable&&b.navigable.url&&(p.push(b.navigable.url,c,{$$avoidResync:!0,replace:"replace"===f.location}),p.update(!0)),y.transition=null,e.when(y.current);if(c=k(b.params.$$keys(),c||{}),f.notify&&a.$broadcast("$stateChangeStart",b.self,c,j.self,l).defaultPrevented)return a.$broadcast("$stateChangeCancel",b.self,c,j.self,l),p.update(),C;for(var M=e.when(G),P=D;P<z.length;P++,F=z[P])G=I[P]=d(G),M=v(F,c,F===b,M,G,f);var Q=y.transition=M.then(function(){var d,e,g;if(y.transition!==Q)return A;for(d=o.length-1;d>=D;d--)g=o[d],g.self.onExit&&h.invoke(g.self.onExit,g.self,g.locals.globals),g.locals=null;for(d=D;d<z.length;d++)e=z[d],e.locals=I[d],e.self.onEnter&&h.invoke(e.self.onEnter,e.self,e.locals.globals);return r&&(c["#"]=r),y.transition!==Q?A:(y.$current=b,y.current=b.self,y.params=c,O(y.params,n),y.transition=null,f.location&&b.navigable&&p.push(b.navigable.url,b.navigable.locals.globals.$stateParams,{$$avoidResync:!0,replace:"replace"===f.location}),f.notify&&a.$broadcast("$stateChangeSuccess",b.self,c,j.self,l),p.update(!0),y.current)},function(d){return y.transition!==Q?A:(y.transition=null,g=a.$broadcast("$stateChangeError",b.self,c,j.self,l,d),g.defaultPrevented||p.update(),e.reject(d))});return Q},y.is=function(a,b,d){d=N({relative:y.$current},d||{});var e=m(a,d.relative);return H(e)?y.$current!==e?!1:b?j(e.params.$$values(b),n):!0:c},y.includes=function(a,b,d){if(d=N({relative:y.$current},d||{}),J(a)&&r(a)){if(!s(a))return!1;a=y.$current.name}var e=m(a,d.relative);return H(e)?H(y.$current.includes[e.name])?b?j(e.params.$$values(b),n,g(b)):!0:!1:c},y.href=function(a,b,d){d=N({lossy:!0,inherit:!0,absolute:!1,relative:y.$current},d||{});var e=m(a,d.relative);if(!H(e))return null;d.inherit&&(b=i(n,b||{},y.$current,e));var f=e&&d.lossy?e.navigable:e;return f&&f.url!==c&&null!==f.url?p.href(f.url,k(e.params.$$keys().concat("#"),b||{}),{absolute:d.absolute}):null},y.get=function(a,b){if(0===arguments.length)return o(g(z),function(a){return z[a].self});var c=m(a,b||y.$current);return c&&c.self?c.self:null},y}function w(a,b,c,d,e,f){function g(a,b,c){function d(b){return"search"!=a.params[b].location}var e=a.params.$$keys().filter(d),f=l.apply({},[a.params].concat(e)),g=new P.ParamSet(f);return g.$$equals(b,c)}return!f.reload&&a===c&&(e===c.locals||a.self.reloadOnSearch===!1&&g(c,d,b))?!0:void 0}var x,y,z={},A={},B="abstract",C={parent:function(a){if(H(a.parent)&&a.parent)return m(a.parent);var b=/^(.+)\.[^.]+$/.exec(a.name);return b?m(b[1]):x},data:function(a){return a.parent&&a.parent.data&&(a.data=a.self.data=N({},a.parent.data,a.data)),a.data},url:function(a){var b=a.url,c={params:a.params||{}};if(J(b))return"^"==b.charAt(0)?e.compile(b.substring(1),c):(a.parent.navigable||x).url.concat(b,c);
-if(!b||e.isMatcher(b))return b;throw new Error("Invalid url '"+b+"' in state '"+a+"'")},navigable:function(a){return a.url?a:a.parent?a.parent.navigable:null},ownParams:function(a){var b=a.url&&a.url.params||new P.ParamSet;return M(a.params||{},function(a,c){b[c]||(b[c]=new P.Param(c,null,a,"config"))}),b},params:function(a){return a.parent&&a.parent.params?N(a.parent.params.$$new(),a.ownParams):new P.ParamSet},views:function(a){var b={};return M(H(a.views)?a.views:{"":a},function(c,d){d.indexOf("@")<0&&(d+="@"+a.parent.name),b[d]=c}),b},path:function(a){return a.parent?a.parent.path.concat(a):[]},includes:function(a){var b=a.parent?N({},a.parent.includes):{};return b[a.name]=!0,b},$delegates:{}};x=q({name:"",url:"^",views:null,"abstract":!0}),x.navigable=null,this.decorator=t,this.state=u,this.$get=v,v.$inject=["$rootScope","$q","$view","$injector","$resolve","$stateParams","$urlRouter","$location","$urlMatcherFactory"]}function w(){function a(a,b){return{load:function(c,d){var e,f={template:null,controller:null,view:null,locals:null,notify:!0,async:!0,params:{}};return d=N(f,d),d.view&&(e=b.fromConfig(d.view,d.params,d.locals)),e&&d.notify&&a.$broadcast("$viewContentLoading",d),e}}}this.$get=a,a.$inject=["$rootScope","$templateFactory"]}function x(){var a=!1;this.useAnchorScroll=function(){a=!0},this.$get=["$anchorScroll","$timeout",function(b,c){return a?b:function(a){return c(function(){a[0].scrollIntoView()},0,!1)}}]}function y(a,c,d,e){function f(){return c.has?function(a){return c.has(a)?c.get(a):null}:function(a){try{return c.get(a)}catch(b){return null}}}function g(a,b){var c=function(){return{enter:function(a,b,c){b.after(a),c()},leave:function(a,b){a.remove(),b()}}};if(j)return{enter:function(a,b,c){var d=j.enter(a,null,b,c);d&&d.then&&d.then(c)},leave:function(a,b){var c=j.leave(a,b);c&&c.then&&c.then(b)}};if(i){var d=i&&i(b,a);return{enter:function(a,b,c){d.enter(a,null,b),c()},leave:function(a,b){d.leave(a),b()}}}return c()}var h=f(),i=h("$animator"),j=h("$animate"),k={restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(c,f,h){return function(c,f,i){function j(){l&&(l.remove(),l=null),n&&(n.$destroy(),n=null),m&&(r.leave(m,function(){l=null}),l=m,m=null)}function k(g){var k,l=A(c,i,f,e),s=l&&a.$current&&a.$current.locals[l];if(g||s!==o){k=c.$new(),o=a.$current.locals[l];var t=h(k,function(a){r.enter(a,f,function(){n&&n.$emit("$viewContentAnimationEnded"),(b.isDefined(q)&&!q||c.$eval(q))&&d(a)}),j()});m=t,n=k,n.$emit("$viewContentLoaded"),n.$eval(p)}}var l,m,n,o,p=i.onload||"",q=i.autoscroll,r=g(i,c);c.$on("$stateChangeSuccess",function(){k(!1)}),c.$on("$viewContentLoading",function(){k(!1)}),k(!0)}}};return k}function z(a,b,c,d){return{restrict:"ECA",priority:-400,compile:function(e){var f=e.html();return function(e,g,h){var i=c.$current,j=A(e,h,g,d),k=i&&i.locals[j];if(k){g.data("$uiView",{name:j,state:k.$$state}),g.html(k.$template?k.$template:f);var l=a(g.contents());if(k.$$controller){k.$scope=e,k.$element=g;var m=b(k.$$controller,k);k.$$controllerAs&&(e[k.$$controllerAs]=m),g.data("$ngControllerController",m),g.children().data("$ngControllerController",m)}l(e)}}}}}function A(a,b,c,d){var e=d(b.uiView||b.name||"")(a),f=c.inheritedData("$uiView");return e.indexOf("@")>=0?e:e+"@"+(f?f.state.name:"")}function B(a,b){var c,d=a.match(/^\s*({[^}]*})\s*$/);if(d&&(a=b+"("+d[1]+")"),c=a.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/),!c||4!==c.length)throw new Error("Invalid state ref '"+a+"'");return{state:c[1],paramExpr:c[3]||null}}function C(a){var b=a.parent().inheritedData("$uiView");return b&&b.state&&b.state.name?b.state:void 0}function D(a,c){var d=["location","inherit","reload","absolute"];return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(e,f,g,h){var i=B(g.uiSref,a.current.name),j=null,k=C(f)||a.$current,l="[object SVGAnimatedString]"===Object.prototype.toString.call(f.prop("href"))?"xlink:href":"href",m=null,n="A"===f.prop("tagName").toUpperCase(),o="FORM"===f[0].nodeName,p=o?"action":l,q=!0,r={relative:k,inherit:!0},s=e.$eval(g.uiSrefOpts)||{};b.forEach(d,function(a){a in s&&(r[a]=s[a])});var t=function(c){if(c&&(j=b.copy(c)),q){m=a.href(i.state,j,r);var d=h[1]||h[0];return d&&d.$$addStateInfo(i.state,j),null===m?(q=!1,!1):void g.$set(p,m)}};i.paramExpr&&(e.$watch(i.paramExpr,function(a,b){a!==j&&t(a)},!0),j=b.copy(e.$eval(i.paramExpr))),t(),o||f.bind("click",function(b){var d=b.which||b.button;if(!(d>1||b.ctrlKey||b.metaKey||b.shiftKey||f.attr("target"))){var e=c(function(){a.go(i.state,j,r)});b.preventDefault();var g=n&&!m?1:0;b.preventDefault=function(){g--<=0&&c.cancel(e)}}})}}}function E(a,b,c){return{restrict:"A",controller:["$scope","$element","$attrs",function(b,d,e){function f(){g()?d.addClass(i):d.removeClass(i)}function g(){for(var a=0;a<j.length;a++)if(h(j[a].state,j[a].params))return!0;return!1}function h(b,c){return"undefined"!=typeof e.uiSrefActiveEq?a.is(b.name,c):a.includes(b.name,c)}var i,j=[];i=c(e.uiSrefActiveEq||e.uiSrefActive||"",!1)(b),this.$$addStateInfo=function(b,c){var e=a.get(b,C(d));j.push({state:e||{name:b},params:c}),f()},b.$on("$stateChangeSuccess",f)}]}}function F(a){var b=function(b){return a.is(b)};return b.$stateful=!0,b}function G(a){var b=function(b){return a.includes(b)};return b.$stateful=!0,b}var H=b.isDefined,I=b.isFunction,J=b.isString,K=b.isObject,L=b.isArray,M=b.forEach,N=b.extend,O=b.copy;b.module("ui.router.util",["ng"]),b.module("ui.router.router",["ui.router.util"]),b.module("ui.router.state",["ui.router.router","ui.router.util"]),b.module("ui.router",["ui.router.state"]),b.module("ui.router.compat",["ui.router"]),p.$inject=["$q","$injector"],b.module("ui.router.util").service("$resolve",p),q.$inject=["$http","$templateCache","$injector"],b.module("ui.router.util").service("$templateFactory",q);var P;r.prototype.concat=function(a,b){var c={caseInsensitive:P.caseInsensitive(),strict:P.strictMode(),squash:P.defaultSquashPolicy()};return new r(this.sourcePath+a+this.sourceSearch,N(c,b),this)},r.prototype.toString=function(){return this.source},r.prototype.exec=function(a,b){function c(a){function b(a){return a.split("").reverse().join("")}function c(a){return a.replace(/\\-/g,"-")}var d=b(a).split(/-(?!\\)/),e=o(d,b);return o(e,c).reverse()}var d=this.regexp.exec(a);if(!d)return null;b=b||{};var e,f,g,h=this.parameters(),i=h.length,j=this.segments.length-1,k={};if(j!==d.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");for(e=0;j>e;e++){g=h[e];var l=this.params[g],m=d[e+1];for(f=0;f<l.replace;f++)l.replace[f].from===m&&(m=l.replace[f].to);m&&l.array===!0&&(m=c(m)),k[g]=l.value(m)}for(;i>e;e++)g=h[e],k[g]=this.params[g].value(b[g]);return k},r.prototype.parameters=function(a){return H(a)?this.params[a]||null:this.$$paramNames},r.prototype.validates=function(a){return this.params.$$validates(a)},r.prototype.format=function(a){function b(a){return encodeURIComponent(a).replace(/-/g,function(a){return"%5C%"+a.charCodeAt(0).toString(16).toUpperCase()})}a=a||{};var c=this.segments,d=this.parameters(),e=this.params;if(!this.validates(a))return null;var f,g=!1,h=c.length-1,i=d.length,j=c[0];for(f=0;i>f;f++){var k=h>f,l=d[f],m=e[l],n=m.value(a[l]),p=m.isOptional&&m.type.equals(m.value(),n),q=p?m.squash:!1,r=m.type.encode(n);if(k){var s=c[f+1];if(q===!1)null!=r&&(j+=L(r)?o(r,b).join("-"):encodeURIComponent(r)),j+=s;else if(q===!0){var t=j.match(/\/$/)?/\/?(.*)/:/(.*)/;j+=s.match(t)[1]}else J(q)&&(j+=q+s)}else{if(null==r||p&&q!==!1)continue;L(r)||(r=[r]),r=o(r,encodeURIComponent).join("&"+l+"="),j+=(g?"&":"?")+(l+"="+r),g=!0}}return j},s.prototype.is=function(a,b){return!0},s.prototype.encode=function(a,b){return a},s.prototype.decode=function(a,b){return a},s.prototype.equals=function(a,b){return a==b},s.prototype.$subPattern=function(){var a=this.pattern.toString();return a.substr(1,a.length-2)},s.prototype.pattern=/.*/,s.prototype.toString=function(){return"{Type:"+this.name+"}"},s.prototype.$normalize=function(a){return this.is(a)?a:this.decode(a)},s.prototype.$asArray=function(a,b){function d(a,b){function d(a,b){return function(){return a[b].apply(a,arguments)}}function e(a){return L(a)?a:H(a)?[a]:[]}function f(a){switch(a.length){case 0:return c;case 1:return"auto"===b?a[0]:a;default:return a}}function g(a){return!a}function h(a,b){return function(c){c=e(c);var d=o(c,a);return b===!0?0===n(d,g).length:f(d)}}function i(a){return function(b,c){var d=e(b),f=e(c);if(d.length!==f.length)return!1;for(var g=0;g<d.length;g++)if(!a(d[g],f[g]))return!1;return!0}}this.encode=h(d(a,"encode")),this.decode=h(d(a,"decode")),this.is=h(d(a,"is"),!0),this.equals=i(d(a,"equals")),this.pattern=a.pattern,this.$normalize=h(d(a,"$normalize")),this.name=a.name,this.$arrayMode=b}if(!a)return this;if("auto"===a&&!b)throw new Error("'auto' array mode is for query parameters only");return new d(this,a)},b.module("ui.router.util").provider("$urlMatcherFactory",t),b.module("ui.router.util").run(["$urlMatcherFactory",function(a){}]),u.$inject=["$locationProvider","$urlMatcherFactoryProvider"],b.module("ui.router.router").provider("$urlRouter",u),v.$inject=["$urlRouterProvider","$urlMatcherFactoryProvider"],b.module("ui.router.state").value("$stateParams",{}).provider("$state",v),w.$inject=[],b.module("ui.router.state").provider("$view",w),b.module("ui.router.state").provider("$uiViewScroll",x),y.$inject=["$state","$injector","$uiViewScroll","$interpolate"],z.$inject=["$compile","$controller","$state","$interpolate"],b.module("ui.router.state").directive("uiView",y),b.module("ui.router.state").directive("uiView",z),D.$inject=["$state","$timeout"],E.$inject=["$state","$stateParams","$interpolate"],b.module("ui.router.state").directive("uiSref",D).directive("uiSrefActive",E).directive("uiSrefActiveEq",E),F.$inject=["$state"],G.$inject=["$state"],b.module("ui.router.state").filter("isState",F).filter("includedByState",G)}(window,window.angular),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){function b(b,d){var e,f,g,h=b.nodeName.toLowerCase();return"area"===h?(e=b.parentNode,f=e.name,b.href&&f&&"map"===e.nodeName.toLowerCase()?(g=a("img[usemap='#"+f+"']")[0],!!g&&c(g)):!1):(/^(input|select|textarea|button|object)$/.test(h)?!b.disabled:"a"===h?b.href||d:d)&&c(b)}function c(b){return a.expr.filters.visible(b)&&!a(b).parents().addBack().filter(function(){return"hidden"===a.css(this,"visibility")}).length}function d(a){for(var b,c;a.length&&a[0]!==document;){if(b=a.css("position"),("absolute"===b||"relative"===b||"fixed"===b)&&(c=parseInt(a.css("zIndex"),10),!isNaN(c)&&0!==c))return c;a=a.parent()}return 0}function e(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},a.extend(this._defaults,this.regional[""]),this.regional.en=a.extend(!0,{},this.regional[""]),this.regional["en-US"]=a.extend(!0,{},this.regional.en),this.dpDiv=f(a("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function f(b){var c="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return b.delegate(c,"mouseout",function(){a(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&a(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&a(this).removeClass("ui-datepicker-next-hover")}).delegate(c,"mouseover",g)}function g(){a.datepicker._isDisabledDatepicker(r.inline?r.dpDiv.parent()[0]:r.input[0])||(a(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),a(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&a(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&a(this).addClass("ui-datepicker-next-hover"))}function h(b,c){a.extend(b,c);for(var d in c)null==c[d]&&(b[d]=c[d]);return b}function i(a){return function(){var b=this.element.val();a.apply(this,arguments),this._refresh(),b!==this.element.val()&&this._trigger("change")}}a.ui=a.ui||{},a.extend(a.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),a.fn.extend({scrollParent:function(b){var c=this.css("position"),d="absolute"===c,e=b?/(auto|scroll|hidden)/:/(auto|scroll)/,f=this.parents().filter(function(){var b=a(this);return d&&"static"===b.css("position")?!1:e.test(b.css("overflow")+b.css("overflow-y")+b.css("overflow-x"))}).eq(0);return"fixed"!==c&&f.length?f:a(this[0].ownerDocument||document)},uniqueId:function(){var a=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++a)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&a(this).removeAttr("id")})}}),a.extend(a.expr[":"],{data:a.expr.createPseudo?a.expr.createPseudo(function(b){return function(c){return!!a.data(c,b)}}):function(b,c,d){return!!a.data(b,d[3])},focusable:function(c){return b(c,!isNaN(a.attr(c,"tabindex")))},tabbable:function(c){var d=a.attr(c,"tabindex"),e=isNaN(d);return(e||d>=0)&&b(c,!e)}}),a("<a>").outerWidth(1).jquery||a.each(["Width","Height"],function(b,c){function d(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.css(b,"padding"+this))||0,d&&(c-=parseFloat(a.css(b,"border"+this+"Width"))||0),f&&(c-=parseFloat(a.css(b,"margin"+this))||0)}),c}var e="Width"===c?["Left","Right"]:["Top","Bottom"],f=c.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+c]=function(b){return void 0===b?g["inner"+c].call(this):this.each(function(){a(this).css(f,d(this,b)+"px")})},a.fn["outer"+c]=function(b,e){return"number"!=typeof b?g["outer"+c].call(this,b):this.each(function(){a(this).css(f,d(this,b,!0,e)+"px")})}}),a.fn.addBack||(a.fn.addBack=function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}),a("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(a.fn.removeData=function(b){return function(c){return arguments.length?b.call(this,a.camelCase(c)):b.call(this)}}(a.fn.removeData)),a.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),a.fn.extend({focus:function(b){return function(c,d){return"number"==typeof c?this.each(function(){var b=this;setTimeout(function(){a(b).focus(),d&&d.call(b)},c)}):b.apply(this,arguments)}}(a.fn.focus),disableSelection:function(){var a="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(a+".ui-disableSelection",function(a){a.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(b){if(void 0!==b)return this.css("zIndex",b);if(this.length)for(var c,d,e=a(this[0]);e.length&&e[0]!==document;){if(c=e.css("position"),("absolute"===c||"relative"===c||"fixed"===c)&&(d=parseInt(e.css("zIndex"),10),!isNaN(d)&&0!==d))return d;e=e.parent()}return 0}}),a.ui.plugin={add:function(b,c,d){var e,f=a.ui[b].prototype;for(e in d)f.plugins[e]=f.plugins[e]||[],f.plugins[e].push([c,d[e]])},call:function(a,b,c,d){var e,f=a.plugins[b];if(f&&(d||a.element[0].parentNode&&11!==a.element[0].parentNode.nodeType))for(e=0;e<f.length;e++)a.options[f[e][0]]&&f[e][1].apply(a.element,c)}};var j=0,k=Array.prototype.slice;a.cleanData=function(b){return function(c){var d,e,f;for(f=0;null!=(e=c[f]);f++)try{d=a._data(e,"events"),d&&d.remove&&a(e).triggerHandler("remove")}catch(g){}b(c)}}(a.cleanData),a.widget=function(b,c,d){var e,f,g,h,i={},j=b.split(".")[0];return b=b.split(".")[1],e=j+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][e.toLowerCase()]=function(b){return!!a.data(b,e)},a[j]=a[j]||{},f=a[j][b],g=a[j][b]=function(a,b){return this._createWidget?void(arguments.length&&this._createWidget(a,b)):new g(a,b)},a.extend(g,f,{version:d.version,_proto:a.extend({},d),_childConstructors:[]}),h=new c,h.options=a.widget.extend({},h.options),a.each(d,function(b,d){return a.isFunction(d)?void(i[b]=function(){var a=function(){return c.prototype[b].apply(this,arguments)},e=function(a){return c.prototype[b].apply(this,a)};return function(){var b,c=this._super,f=this._superApply;return this._super=a,this._superApply=e,b=d.apply(this,arguments),this._super=c,this._superApply=f,b}}()):void(i[b]=d)}),g.prototype=a.widget.extend(h,{widgetEventPrefix:f?h.widgetEventPrefix||b:b},i,{constructor:g,namespace:j,widgetName:b,widgetFullName:e}),f?(a.each(f._childConstructors,function(b,c){var d=c.prototype;a.widget(d.namespace+"."+d.widgetName,g,c._proto)}),delete f._childConstructors):c._childConstructors.push(g),a.widget.bridge(b,g),g},a.widget.extend=function(b){for(var c,d,e=k.call(arguments,1),f=0,g=e.length;g>f;f++)for(c in e[f])d=e[f][c],e[f].hasOwnProperty(c)&&void 0!==d&&(a.isPlainObject(d)?b[c]=a.isPlainObject(b[c])?a.widget.extend({},b[c],d):a.widget.extend({},d):b[c]=d);return b},a.widget.bridge=function(b,c){var d=c.prototype.widgetFullName||b;a.fn[b]=function(e){var f="string"==typeof e,g=k.call(arguments,1),h=this;return f?this.each(function(){var c,f=a.data(this,d);return"instance"===e?(h=f,!1):f?a.isFunction(f[e])&&"_"!==e.charAt(0)?(c=f[e].apply(f,g),c!==f&&void 0!==c?(h=c&&c.jquery?h.pushStack(c.get()):c,!1):void 0):a.error("no such method '"+e+"' for "+b+" widget instance"):a.error("cannot call methods on "+b+" prior to initialization; attempted to call method '"+e+"'")}):(g.length&&(e=a.widget.extend.apply(null,[e].concat(g))),this.each(function(){var b=a.data(this,d);b?(b.option(e||{}),b._init&&b._init()):a.data(this,d,new c(e,this))})),h}},a.Widget=function(){},a.Widget._childConstructors=[],a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(b,c){c=a(c||this.defaultElement||this)[0],this.element=a(c),this.uuid=j++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=a(),this.hoverable=a(),this.focusable=a(),c!==this&&(a.data(c,this.widgetFullName,this),this._on(!0,this.element,{remove:function(a){a.target===c&&this.destroy()}}),this.document=a(c.style?c.ownerDocument:c.document||c),this.window=a(this.document[0].defaultView||this.document[0].parentWindow)),this.options=a.widget.extend({},this.options,this._getCreateOptions(),b),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:a.noop,_getCreateEventData:a.noop,_create:a.noop,_init:a.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(a.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:a.noop,widget:function(){return this.element},option:function(b,c){var d,e,f,g=b;if(0===arguments.length)return a.widget.extend({},this.options);if("string"==typeof b)if(g={},d=b.split("."),b=d.shift(),d.length){for(e=g[b]=a.widget.extend({},this.options[b]),f=0;f<d.length-1;f++)e[d[f]]=e[d[f]]||{},e=e[d[f]];if(b=d.pop(),1===arguments.length)return void 0===e[b]?null:e[b];e[b]=c}else{if(1===arguments.length)return void 0===this.options[b]?null:this.options[b];g[b]=c}return this._setOptions(g),this},_setOptions:function(a){var b;for(b in a)this._setOption(b,a[b]);return this},_setOption:function(a,b){return this.options[a]=b,"disabled"===a&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!b),b&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(b,c,d){var e,f=this;"boolean"!=typeof b&&(d=c,c=b,b=!1),d?(c=e=a(c),this.bindings=this.bindings.add(c)):(d=c,c=this.element,e=this.widget()),a.each(d,function(d,g){function h(){return b||f.options.disabled!==!0&&!a(this).hasClass("ui-state-disabled")?("string"==typeof g?f[g]:g).apply(f,arguments):void 0}"string"!=typeof g&&(h.guid=g.guid=g.guid||h.guid||a.guid++);var i=d.match(/^([\w:-]*)\s*(.*)$/),j=i[1]+f.eventNamespace,k=i[2];k?e.delegate(k,j,h):c.bind(j,h)})},_off:function(b,c){c=(c||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,b.unbind(c).undelegate(c),this.bindings=a(this.bindings.not(b).get()),this.focusable=a(this.focusable.not(b).get()),this.hoverable=a(this.hoverable.not(b).get())},_delay:function(a,b){function c(){return("string"==typeof a?d[a]:a).apply(d,arguments)}var d=this;return setTimeout(c,b||0)},_hoverable:function(b){this.hoverable=this.hoverable.add(b),this._on(b,{mouseenter:function(b){a(b.currentTarget).addClass("ui-state-hover")},mouseleave:function(b){a(b.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(b){this.focusable=this.focusable.add(b),this._on(b,{focusin:function(b){a(b.currentTarget).addClass("ui-state-focus")},focusout:function(b){a(b.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(b,c,d){var e,f,g=this.options[b];if(d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent)for(e in f)e in c||(c[e]=f[e]);return this.element.trigger(c,d),!(a.isFunction(g)&&g.apply(this.element[0],[c].concat(d))===!1||c.isDefaultPrevented())}},a.each({show:"fadeIn",hide:"fadeOut"},function(b,c){a.Widget.prototype["_"+b]=function(d,e,f){"string"==typeof e&&(e={effect:e});var g,h=e?e===!0||"number"==typeof e?c:e.effect||c:b;e=e||{},"number"==typeof e&&(e={duration:e}),g=!a.isEmptyObject(e),e.complete=f,e.delay&&d.delay(e.delay),g&&a.effects&&a.effects.effect[h]?d[b](e):h!==b&&d[h]?d[h](e.duration,e.easing,f):d.queue(function(c){a(this)[b](),f&&f.call(d[0]),c()})}});var l=(a.widget,!1);a(document).mouseup(function(){l=!1});a.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){return!0===a.data(c.target,b.widgetName+".preventClickEvent")?(a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(b){if(!l){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var c=this,d=1===b.which,e="string"==typeof this.options.cancel&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;return d&&!e&&this._mouseCapture(b)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(b)!==!1,!this._mouseStarted)?(b.preventDefault(),!0):(!0===a.data(b.target,this.widgetName+".preventClickEvent")&&a.removeData(b.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return c._mouseMove(a)},this._mouseUpDelegate=function(a){return c._mouseUp(a)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),b.preventDefault(),l=!0,!0)):!0}},_mouseMove:function(b){if(this._mouseMoved){if(a.ui.ie&&(!document.documentMode||document.documentMode<9)&&!b.button)return this._mouseUp(b);if(!b.which)return this._mouseUp(b)}return(b.which||b.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted)},_mouseUp:function(b){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target===this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),l=!1,!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}});!function(){function b(a,b,c){return[parseFloat(a[0])*(n.test(a[0])?b/100:1),parseFloat(a[1])*(n.test(a[1])?c/100:1)]}function c(b,c){return parseInt(a.css(b,c),10)||0}function d(b){var c=b[0];return 9===c.nodeType?{width:b.width(),height:b.height(),offset:{top:0,left:0}}:a.isWindow(c)?{width:b.width(),height:b.height(),offset:{top:b.scrollTop(),left:b.scrollLeft()}}:c.preventDefault?{width:0,height:0,offset:{top:c.pageY,left:c.pageX}}:{width:b.outerWidth(),height:b.outerHeight(),offset:b.offset()}}a.ui=a.ui||{};var e,f,g=Math.max,h=Math.abs,i=Math.round,j=/left|center|right/,k=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,m=/^\w+/,n=/%$/,o=a.fn.position;a.position={scrollbarWidth:function(){if(void 0!==e)return e;var b,c,d=a("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),f=d.children()[0];return a("body").append(d),b=f.offsetWidth,d.css("overflow","scroll"),c=f.offsetWidth,b===c&&(c=d[0].clientWidth),d.remove(),e=b-c},getScrollInfo:function(b){var c=b.isWindow||b.isDocument?"":b.element.css("overflow-x"),d=b.isWindow||b.isDocument?"":b.element.css("overflow-y"),e="scroll"===c||"auto"===c&&b.width<b.element[0].scrollWidth,f="scroll"===d||"auto"===d&&b.height<b.element[0].scrollHeight;return{width:f?a.position.scrollbarWidth():0,height:e?a.position.scrollbarWidth():0}},getWithinInfo:function(b){var c=a(b||window),d=a.isWindow(c[0]),e=!!c[0]&&9===c[0].nodeType;return{element:c,isWindow:d,isDocument:e,offset:c.offset()||{left:0,top:0},scrollLeft:c.scrollLeft(),scrollTop:c.scrollTop(),width:d||e?c.width():c.outerWidth(),height:d||e?c.height():c.outerHeight()}}},a.fn.position=function(e){if(!e||!e.of)return o.apply(this,arguments);e=a.extend({},e);var n,p,q,r,s,t,u=a(e.of),v=a.position.getWithinInfo(e.within),w=a.position.getScrollInfo(v),x=(e.collision||"flip").split(" "),y={};return t=d(u),u[0].preventDefault&&(e.at="left top"),p=t.width,q=t.height,r=t.offset,s=a.extend({},r),a.each(["my","at"],function(){var a,b,c=(e[this]||"").split(" ");1===c.length&&(c=j.test(c[0])?c.concat(["center"]):k.test(c[0])?["center"].concat(c):["center","center"]),c[0]=j.test(c[0])?c[0]:"center",c[1]=k.test(c[1])?c[1]:"center",a=l.exec(c[0]),b=l.exec(c[1]),y[this]=[a?a[0]:0,b?b[0]:0],e[this]=[m.exec(c[0])[0],m.exec(c[1])[0]]}),1===x.length&&(x[1]=x[0]),"right"===e.at[0]?s.left+=p:"center"===e.at[0]&&(s.left+=p/2),"bottom"===e.at[1]?s.top+=q:"center"===e.at[1]&&(s.top+=q/2),n=b(y.at,p,q),s.left+=n[0],s.top+=n[1],this.each(function(){var d,j,k=a(this),l=k.outerWidth(),m=k.outerHeight(),o=c(this,"marginLeft"),t=c(this,"marginTop"),z=l+o+c(this,"marginRight")+w.width,A=m+t+c(this,"marginBottom")+w.height,B=a.extend({},s),C=b(y.my,k.outerWidth(),k.outerHeight());"right"===e.my[0]?B.left-=l:"center"===e.my[0]&&(B.left-=l/2),"bottom"===e.my[1]?B.top-=m:"center"===e.my[1]&&(B.top-=m/2),B.left+=C[0],B.top+=C[1],f||(B.left=i(B.left),B.top=i(B.top)),d={marginLeft:o,marginTop:t},a.each(["left","top"],function(b,c){a.ui.position[x[b]]&&a.ui.position[x[b]][c](B,{targetWidth:p,targetHeight:q,elemWidth:l,elemHeight:m,collisionPosition:d,collisionWidth:z,collisionHeight:A,offset:[n[0]+C[0],n[1]+C[1]],my:e.my,at:e.at,within:v,elem:k})}),e.using&&(j=function(a){var b=r.left-B.left,c=b+p-l,d=r.top-B.top,f=d+q-m,i={target:{element:u,left:r.left,top:r.top,width:p,height:q},element:{element:k,left:B.left,top:B.top,width:l,height:m},horizontal:0>c?"left":b>0?"right":"center",vertical:0>f?"top":d>0?"bottom":"middle"};l>p&&h(b+c)<p&&(i.horizontal="center"),m>q&&h(d+f)<q&&(i.vertical="middle"),g(h(b),h(c))>g(h(d),h(f))?i.important="horizontal":i.important="vertical",e.using.call(this,a,i)}),k.offset(a.extend(B,{using:j}))})},a.ui.position={fit:{left:function(a,b){var c,d=b.within,e=d.isWindow?d.scrollLeft:d.offset.left,f=d.width,h=a.left-b.collisionPosition.marginLeft,i=e-h,j=h+b.collisionWidth-f-e;b.collisionWidth>f?i>0&&0>=j?(c=a.left+i+b.collisionWidth-f-e,a.left+=i-c):j>0&&0>=i?a.left=e:i>j?a.left=e+f-b.collisionWidth:a.left=e:i>0?a.left+=i:j>0?a.left-=j:a.left=g(a.left-h,a.left)},top:function(a,b){var c,d=b.within,e=d.isWindow?d.scrollTop:d.offset.top,f=b.within.height,h=a.top-b.collisionPosition.marginTop,i=e-h,j=h+b.collisionHeight-f-e;b.collisionHeight>f?i>0&&0>=j?(c=a.top+i+b.collisionHeight-f-e,a.top+=i-c):j>0&&0>=i?a.top=e:i>j?a.top=e+f-b.collisionHeight:a.top=e:i>0?a.top+=i:j>0?a.top-=j:a.top=g(a.top-h,a.top)}},flip:{left:function(a,b){var c,d,e=b.within,f=e.offset.left+e.scrollLeft,g=e.width,i=e.isWindow?e.scrollLeft:e.offset.left,j=a.left-b.collisionPosition.marginLeft,k=j-i,l=j+b.collisionWidth-g-i,m="left"===b.my[0]?-b.elemWidth:"right"===b.my[0]?b.elemWidth:0,n="left"===b.at[0]?b.targetWidth:"right"===b.at[0]?-b.targetWidth:0,o=-2*b.offset[0];0>k?(c=a.left+m+n+o+b.collisionWidth-g-f,(0>c||c<h(k))&&(a.left+=m+n+o)):l>0&&(d=a.left-b.collisionPosition.marginLeft+m+n+o-i,(d>0||h(d)<l)&&(a.left+=m+n+o))},top:function(a,b){var c,d,e=b.within,f=e.offset.top+e.scrollTop,g=e.height,i=e.isWindow?e.scrollTop:e.offset.top,j=a.top-b.collisionPosition.marginTop,k=j-i,l=j+b.collisionHeight-g-i,m="top"===b.my[1],n=m?-b.elemHeight:"bottom"===b.my[1]?b.elemHeight:0,o="top"===b.at[1]?b.targetHeight:"bottom"===b.at[1]?-b.targetHeight:0,p=-2*b.offset[1];0>k?(d=a.top+n+o+p+b.collisionHeight-g-f,(0>d||d<h(k))&&(a.top+=n+o+p)):l>0&&(c=a.top-b.collisionPosition.marginTop+n+o+p-i,(c>0||h(c)<l)&&(a.top+=n+o+p))}},flipfit:{left:function(){a.ui.position.flip.left.apply(this,arguments),a.ui.position.fit.left.apply(this,arguments)},top:function(){a.ui.position.flip.top.apply(this,arguments),
-a.ui.position.fit.top.apply(this,arguments)}}},function(){var b,c,d,e,g,h=document.getElementsByTagName("body")[0],i=document.createElement("div");b=document.createElement(h?"div":"body"),d={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},h&&a.extend(d,{position:"absolute",left:"-1000px",top:"-1000px"});for(g in d)b.style[g]=d[g];b.appendChild(i),c=h||document.documentElement,c.insertBefore(b,c.firstChild),i.style.cssText="position: absolute; left: 10.7432222px;",e=a(i).offset().left,f=e>10&&11>e,b.innerHTML="",c.removeChild(b)}()}();a.ui.position,a.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var b=this.options;this.prevShow=this.prevHide=a(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),b.collapsible||b.active!==!1&&null!=b.active||(b.active=0),this._processPanels(),b.active<0&&(b.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():a()}},_createIcons:function(){var b=this.options.icons;b&&(a("<span>").addClass("ui-accordion-header-icon ui-icon "+b.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(b.header).addClass(b.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var a;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),a=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&a.css("height","")},_setOption:function(a,b){return"active"===a?void this._activate(b):("event"===a&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(b)),this._super(a,b),"collapsible"!==a||b||this.options.active!==!1||this._activate(0),"icons"===a&&(this._destroyIcons(),b&&this._createIcons()),void("disabled"===a&&(this.element.toggleClass("ui-state-disabled",!!b).attr("aria-disabled",b),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!b))))},_keydown:function(b){if(!b.altKey&&!b.ctrlKey){var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._eventHandler(b);break;case c.HOME:f=this.headers[0];break;case c.END:f=this.headers[d-1]}f&&(a(b.target).attr("tabIndex",-1),a(f).attr("tabIndex",0),f.focus(),b.preventDefault())}},_panelKeyDown:function(b){b.keyCode===a.ui.keyCode.UP&&b.ctrlKey&&a(b.currentTarget).prev().focus()},refresh:function(){var b=this.options;this._processPanels(),b.active===!1&&b.collapsible===!0||!this.headers.length?(b.active=!1,this.active=a()):b.active===!1?this._activate(0):this.active.length&&!a.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(b.active=!1,this.active=a()):this._activate(Math.max(0,b.active-1)):b.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var a=this.headers,b=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),b&&(this._off(a.not(this.headers)),this._off(b.not(this.panels)))},_refresh:function(){var b,c=this.options,d=c.heightStyle,e=this.element.parent();this.active=this._findActive(c.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var b=a(this),c=b.uniqueId().attr("id"),d=b.next(),e=d.uniqueId().attr("id");b.attr("aria-controls",e),d.attr("aria-labelledby",c)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(c.event),"fill"===d?(b=e.height(),this.element.siblings(":visible").each(function(){var c=a(this),d=c.css("position");"absolute"!==d&&"fixed"!==d&&(b-=c.outerHeight(!0))}),this.headers.each(function(){b-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,b-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")):"auto"===d&&(b=0,this.headers.next().each(function(){b=Math.max(b,a(this).css("height","").height())}).height(b))},_activate:function(b){var c=this._findActive(b)[0];c!==this.active[0]&&(c=c||this.active[0],this._eventHandler({target:c,currentTarget:c,preventDefault:a.noop}))},_findActive:function(b){return"number"==typeof b?this.headers.eq(b):a()},_setupEvents:function(b){var c={keydown:"_keydown"};b&&a.each(b.split(" "),function(a,b){c[b]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,c),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(b){var c=this.options,d=this.active,e=a(b.currentTarget),f=e[0]===d[0],g=f&&c.collapsible,h=g?a():e.next(),i=d.next(),j={oldHeader:d,oldPanel:i,newHeader:g?a():e,newPanel:h};b.preventDefault(),f&&!c.collapsible||this._trigger("beforeActivate",b,j)===!1||(c.active=g?!1:this.headers.index(e),this.active=f?a():e,this._toggle(j),d.removeClass("ui-accordion-header-active ui-state-active"),c.icons&&d.children(".ui-accordion-header-icon").removeClass(c.icons.activeHeader).addClass(c.icons.header),f||(e.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),c.icons&&e.children(".ui-accordion-header-icon").removeClass(c.icons.header).addClass(c.icons.activeHeader),e.next().addClass("ui-accordion-content-active")))},_toggle:function(b){var c=b.newPanel,d=this.prevShow.length?this.prevShow:b.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=c,this.prevHide=d,this.options.animate?this._animate(c,d,b):(d.hide(),c.show(),this._toggleComplete(b)),d.attr({"aria-hidden":"true"}),d.prev().attr({"aria-selected":"false","aria-expanded":"false"}),c.length&&d.length?d.prev().attr({tabIndex:-1,"aria-expanded":"false"}):c.length&&this.headers.filter(function(){return 0===parseInt(a(this).attr("tabIndex"),10)}).attr("tabIndex",-1),c.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(a,b,c){var d,e,f,g=this,h=0,i=a.css("box-sizing"),j=a.length&&(!b.length||a.index()<b.index()),k=this.options.animate||{},l=j&&k.down||k,m=function(){g._toggleComplete(c)};return"number"==typeof l&&(f=l),"string"==typeof l&&(e=l),e=e||l.easing||k.easing,f=f||l.duration||k.duration,b.length?a.length?(d=a.show().outerHeight(),b.animate(this.hideProps,{duration:f,easing:e,step:function(a,b){b.now=Math.round(a)}}),void a.hide().animate(this.showProps,{duration:f,easing:e,complete:m,step:function(a,c){c.now=Math.round(a),"height"!==c.prop?"content-box"===i&&(h+=c.now):"content"!==g.options.heightStyle&&(c.now=Math.round(d-b.outerHeight()-h),h=0)}})):b.animate(this.hideProps,f,e,m):a.animate(this.showProps,f,e,m)},_toggleComplete:function(a){var b=a.oldPanel;b.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),b.length&&(b.parent()[0].className=b.parent()[0].className),this._trigger("activate",null,a)}}),a.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(a){a.preventDefault()},"click .ui-menu-item":function(b){var c=a(b.target);!this.mouseHandled&&c.not(".ui-state-disabled").length&&(this.select(b),b.isPropagationStopped()||(this.mouseHandled=!0),c.has(".ui-menu").length?this.expand(b):!this.element.is(":focus")&&a(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(b){if(!this.previousFilter){var c=a(b.currentTarget);c.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(b,c)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(a,b){var c=this.active||this.element.find(this.options.items).eq(0);b||this.focus(a,c)},blur:function(b){this._delay(function(){a.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(b)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(a){this._closeOnDocumentClick(a)&&this.collapseAll(a),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var b=a(this);b.data("ui-menu-submenu-carat")&&b.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(b){var c,d,e,f,g=!0;switch(b.keyCode){case a.ui.keyCode.PAGE_UP:this.previousPage(b);break;case a.ui.keyCode.PAGE_DOWN:this.nextPage(b);break;case a.ui.keyCode.HOME:this._move("first","first",b);break;case a.ui.keyCode.END:this._move("last","last",b);break;case a.ui.keyCode.UP:this.previous(b);break;case a.ui.keyCode.DOWN:this.next(b);break;case a.ui.keyCode.LEFT:this.collapse(b);break;case a.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(b);break;case a.ui.keyCode.ENTER:case a.ui.keyCode.SPACE:this._activate(b);break;case a.ui.keyCode.ESCAPE:this.collapse(b);break;default:g=!1,d=this.previousFilter||"",e=String.fromCharCode(b.keyCode),f=!1,clearTimeout(this.filterTimer),e===d?f=!0:e=d+e,c=this._filterMenuItems(e),c=f&&-1!==c.index(this.active.next())?this.active.nextAll(".ui-menu-item"):c,c.length||(e=String.fromCharCode(b.keyCode),c=this._filterMenuItems(e)),c.length?(this.focus(b,c),this.previousFilter=e,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}g&&b.preventDefault()},_activate:function(a){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(a):this.select(a))},refresh:function(){var b,c,d=this,e=this.options.icons.submenu,f=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),f.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var b=a(this),c=b.parent(),d=a("<span>").addClass("ui-menu-icon ui-icon "+e).data("ui-menu-submenu-carat",!0);c.attr("aria-haspopup","true").prepend(d),b.attr("aria-labelledby",c.attr("id"))}),b=f.add(this.element),c=b.find(this.options.items),c.not(".ui-menu-item").each(function(){var b=a(this);d._isDivider(b)&&b.addClass("ui-widget-content ui-menu-divider")}),c.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),c.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!a.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(a,b){"icons"===a&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(b.submenu),"disabled"===a&&this.element.toggleClass("ui-state-disabled",!!b).attr("aria-disabled",b),this._super(a,b)},focus:function(a,b){var c,d;this.blur(a,a&&"focus"===a.type),this._scrollIntoView(b),this.active=b.first(),d=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",d.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),a&&"keydown"===a.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),c=b.children(".ui-menu"),c.length&&a&&/^mouse/.test(a.type)&&this._startOpening(c),this.activeMenu=b.parent(),this._trigger("focus",a,{item:b})},_scrollIntoView:function(b){var c,d,e,f,g,h;this._hasScroll()&&(c=parseFloat(a.css(this.activeMenu[0],"borderTopWidth"))||0,d=parseFloat(a.css(this.activeMenu[0],"paddingTop"))||0,e=b.offset().top-this.activeMenu.offset().top-c-d,f=this.activeMenu.scrollTop(),g=this.activeMenu.height(),h=b.outerHeight(),0>e?this.activeMenu.scrollTop(f+e):e+h>g&&this.activeMenu.scrollTop(f+e-g+h))},blur:function(a,b){b||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",a,{item:this.active}))},_startOpening:function(a){clearTimeout(this.timer),"true"===a.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(a)},this.delay))},_open:function(b){var c=a.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(b.parents(".ui-menu")).hide().attr("aria-hidden","true"),b.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(c)},collapseAll:function(b,c){clearTimeout(this.timer),this.timer=this._delay(function(){var d=c?this.element:a(b&&b.target).closest(this.element.find(".ui-menu"));d.length||(d=this.element),this._close(d),this.blur(b),this.activeMenu=d},this.delay)},_close:function(a){a||(a=this.active?this.active.parent():this.element),a.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(b){return!a(b.target).closest(".ui-menu").length},_isDivider:function(a){return!/[^\-\u2014\u2013\s]/.test(a.text())},collapse:function(a){var b=this.active&&this.active.parent().closest(".ui-menu-item",this.element);b&&b.length&&(this._close(),this.focus(a,b))},expand:function(a){var b=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();b&&b.length&&(this._open(b.parent()),this._delay(function(){this.focus(a,b)}))},next:function(a){this._move("next","first",a)},previous:function(a){this._move("prev","last",a)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(a,b,c){var d;this.active&&(d="first"===a||"last"===a?this.active["first"===a?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[a+"All"](".ui-menu-item").eq(0)),d&&d.length&&this.active||(d=this.activeMenu.find(this.options.items)[b]()),this.focus(c,d)},nextPage:function(b){var c,d,e;return this.active?void(this.isLastItem()||(this._hasScroll()?(d=this.active.offset().top,e=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return c=a(this),c.offset().top-d-e<0}),this.focus(b,c)):this.focus(b,this.activeMenu.find(this.options.items)[this.active?"last":"first"]()))):void this.next(b)},previousPage:function(b){var c,d,e;return this.active?void(this.isFirstItem()||(this._hasScroll()?(d=this.active.offset().top,e=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return c=a(this),c.offset().top-d+e>0}),this.focus(b,c)):this.focus(b,this.activeMenu.find(this.options.items).first()))):void this.next(b)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(b){this.active=this.active||a(b.target).closest(".ui-menu-item");var c={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(b,!0),this._trigger("select",b,c)},_filterMenuItems:function(b){var c=b.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),d=new RegExp("^"+c,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return d.test(a.trim(a(this).text()))})}});a.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var b,c,d,e=this.element[0].nodeName.toLowerCase(),f="textarea"===e,g="input"===e;this.isMultiLine=f?!0:g?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[f||g?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(e){if(this.element.prop("readOnly"))return b=!0,d=!0,void(c=!0);b=!1,d=!1,c=!1;var f=a.ui.keyCode;switch(e.keyCode){case f.PAGE_UP:b=!0,this._move("previousPage",e);break;case f.PAGE_DOWN:b=!0,this._move("nextPage",e);break;case f.UP:b=!0,this._keyEvent("previous",e);break;case f.DOWN:b=!0,this._keyEvent("next",e);break;case f.ENTER:this.menu.active&&(b=!0,e.preventDefault(),this.menu.select(e));break;case f.TAB:this.menu.active&&this.menu.select(e);break;case f.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(e),e.preventDefault());break;default:c=!0,this._searchTimeout(e)}},keypress:function(d){if(b)return b=!1,void((!this.isMultiLine||this.menu.element.is(":visible"))&&d.preventDefault());if(!c){var e=a.ui.keyCode;switch(d.keyCode){case e.PAGE_UP:this._move("previousPage",d);break;case e.PAGE_DOWN:this._move("nextPage",d);break;case e.UP:this._keyEvent("previous",d);break;case e.DOWN:this._keyEvent("next",d)}}},input:function(a){return d?(d=!1,void a.preventDefault()):void this._searchTimeout(a)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(a){return this.cancelBlur?void delete this.cancelBlur:(clearTimeout(this.searching),this.close(a),void this._change(a))}}),this._initSource(),this.menu=a("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(b){b.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var c=this.menu.element[0];a(b.target).closest(".ui-menu-item").length||this._delay(function(){var b=this;this.document.one("mousedown",function(d){d.target===b.element[0]||d.target===c||a.contains(c,d.target)||b.close()})})},menufocus:function(b,c){var d,e;return this.isNewMenu&&(this.isNewMenu=!1,b.originalEvent&&/^mouse/.test(b.originalEvent.type))?(this.menu.blur(),void this.document.one("mousemove",function(){a(b.target).trigger(b.originalEvent)})):(e=c.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",b,{item:e})&&b.originalEvent&&/^key/.test(b.originalEvent.type)&&this._value(e.value),d=c.item.attr("aria-label")||e.value,void(d&&a.trim(d).length&&(this.liveRegion.children().hide(),a("<div>").text(d).appendTo(this.liveRegion))))},menuselect:function(a,b){var c=b.item.data("ui-autocomplete-item"),d=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=d,this._delay(function(){this.previous=d,this.selectedItem=c})),!1!==this._trigger("select",a,{item:c})&&this._value(c.value),this.term=this._value(),this.close(a),this.selectedItem=c}}),this.liveRegion=a("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(a,b){this._super(a,b),"source"===a&&this._initSource(),"appendTo"===a&&this.menu.element.appendTo(this._appendTo()),"disabled"===a&&b&&this.xhr&&this.xhr.abort()},_appendTo:function(){var b=this.options.appendTo;return b&&(b=b.jquery||b.nodeType?a(b):this.document.find(b).eq(0)),b&&b[0]||(b=this.element.closest(".ui-front")),b.length||(b=this.document[0].body),b},_initSource:function(){var b,c,d=this;a.isArray(this.options.source)?(b=this.options.source,this.source=function(c,d){d(a.ui.autocomplete.filter(b,c.term))}):"string"==typeof this.options.source?(c=this.options.source,this.source=function(b,e){d.xhr&&d.xhr.abort(),d.xhr=a.ajax({url:c,data:b,dataType:"json",success:function(a){e(a)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(a){clearTimeout(this.searching),this.searching=this._delay(function(){var b=this.term===this._value(),c=this.menu.element.is(":visible"),d=a.altKey||a.ctrlKey||a.metaKey||a.shiftKey;(!b||b&&!c&&!d)&&(this.selectedItem=null,this.search(null,a))},this.options.delay)},search:function(a,b){return a=null!=a?a:this._value(),this.term=this._value(),a.length<this.options.minLength?this.close(b):this._trigger("search",b)!==!1?this._search(a):void 0},_search:function(a){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:a},this._response())},_response:function(){var b=++this.requestIndex;return a.proxy(function(a){b===this.requestIndex&&this.__response(a),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(a){a&&(a=this._normalize(a)),this._trigger("response",null,{content:a}),!this.options.disabled&&a&&a.length&&!this.cancelSearch?(this._suggest(a),this._trigger("open")):this._close()},close:function(a){this.cancelSearch=!0,this._close(a)},_close:function(a){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",a))},_change:function(a){this.previous!==this._value()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(b){return b.length&&b[0].label&&b[0].value?b:a.map(b,function(b){return"string"==typeof b?{label:b,value:b}:a.extend({},b,{label:b.label||b.value,value:b.value||b.label})})},_suggest:function(b){var c=this.menu.element.empty();this._renderMenu(c,b),this.isNewMenu=!0,this.menu.refresh(),c.show(),this._resizeMenu(),c.position(a.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(b,c){var d=this;a.each(c,function(a,c){d._renderItemData(b,c)})},_renderItemData:function(a,b){return this._renderItem(a,b).data("ui-autocomplete-item",b)},_renderItem:function(b,c){return a("<li>").text(c.label).appendTo(b)},_move:function(a,b){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(a)||this.menu.isLastItem()&&/^next/.test(a)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[a](b):void this.search(null,b)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(a,b){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(a,b),b.preventDefault())}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}}),a.widget("ui.autocomplete",a.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(a){return a+(a>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(b){var c;this._superApply(arguments),this.options.disabled||this.cancelSearch||(c=b&&b.length?this.options.messages.results(b.length):this.options.messages.noResults,this.liveRegion.children().hide(),a("<div>").text(c).appendTo(this.liveRegion))}});var m,n=(a.ui.autocomplete,"ui-button ui-widget ui-state-default ui-corner-all"),o="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",p=function(){var b=a(this);setTimeout(function(){b.find(":ui-button").button("refresh")},1)},q=function(b){var c=b.name,d=b.form,e=a([]);return c&&(c=c.replace(/'/g,"\\'"),e=d?a(d).find("[name='"+c+"'][type=radio]"):a("[name='"+c+"'][type=radio]",b.ownerDocument).filter(function(){return!this.form})),e};a.widget("ui.button",{version:"1.11.4",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,p),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d="checkbox"===this.type||"radio"===this.type,e=d?"":"ui-state-active";null===c.label&&(c.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(n).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){c.disabled||this===m&&a(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){c.disabled||a(this).removeClass(e)}).bind("click"+this.eventNamespace,function(a){c.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),d&&this.element.bind("change"+this.eventNamespace,function(){b.refresh()}),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return c.disabled?!1:void 0}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(c.disabled)return!1;a(this).addClass("ui-state-active"),b.buttonElement.attr("aria-pressed","true");var d=b.element[0];q(d).not(d).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return c.disabled?!1:(a(this).addClass("ui-state-active"),m=this,void b.document.one("mouseup",function(){m=null}))}).bind("mouseup"+this.eventNamespace,function(){return c.disabled?!1:void a(this).removeClass("ui-state-active")}).bind("keydown"+this.eventNamespace,function(b){return c.disabled?!1:void((b.keyCode===a.ui.keyCode.SPACE||b.keyCode===a.ui.keyCode.ENTER)&&a(this).addClass("ui-state-active"))}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){a(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(b){b.keyCode===a.ui.keyCode.SPACE&&a(this).click()})),this._setOption("disabled",c.disabled),this._resetButton()},_determineButtonType:function(){var a,b,c;this.element.is("[type=checkbox]")?this.type="checkbox":this.element.is("[type=radio]")?this.type="radio":this.element.is("input")?this.type="input":this.type="button","checkbox"===this.type||"radio"===this.type?(a=this.element.parents().last(),b="label[for='"+this.element.attr("id")+"']",this.buttonElement=a.find(b),this.buttonElement.length||(a=a.length?a.siblings():this.element.siblings(),this.buttonElement=a.filter(b),this.buttonElement.length||(this.buttonElement=a.find(b))),this.element.addClass("ui-helper-hidden-accessible"),c=this.element.is(":checked"),c&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",c)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(n+" ui-state-active "+o).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(a,b){return this._super(a,b),"disabled"===a?(this.widget().toggleClass("ui-state-disabled",!!b),this.element.prop("disabled",!!b),void(b&&("checkbox"===this.type||"radio"===this.type?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active")))):void this._resetButton()},refresh:function(){var b=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");b!==this.options.disabled&&this._setOption("disabled",b),"radio"===this.type?q(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)return void(this.options.label&&this.element.val(this.options.label));var b=this.buttonElement.removeClass(o),c=a("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>"),d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>"),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",a.trim(c)))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}),a.widget("ui.buttonset",{version:"1.11.4",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"
-},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,b){"disabled"===a&&this.buttons.button("option",a,b),this._super(a,b)},refresh:function(){var b="rtl"===this.element.css("direction"),c=this.element.find(this.options.items),d=c.filter(":ui-button");c.not(":ui-button").button(),d.button("refresh"),this.buttons=c.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}});a.ui.button;a.extend(a.ui,{datepicker:{version:"1.11.4"}});var r;a.extend(e.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return h(this._defaults,a||{}),this},_attachDatepicker:function(b,c){var d,e,f;d=b.nodeName.toLowerCase(),e="div"===d||"span"===d,b.id||(this.uuid+=1,b.id="dp"+this.uuid),f=this._newInst(a(b),e),f.settings=a.extend({},c||{}),"input"===d?this._connectDatepicker(b,f):e&&this._inlineDatepicker(b,f)},_newInst:function(b,c){var d=b[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:d,input:b,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:c,dpDiv:c?f(a("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(b,c){var d=a(b);c.append=a([]),c.trigger=a([]),d.hasClass(this.markerClassName)||(this._attachments(d,c),d.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(c),a.data(b,"datepicker",c),c.settings.disabled&&this._disableDatepicker(b))},_attachments:function(b,c){var d,e,f,g=this._get(c,"appendText"),h=this._get(c,"isRTL");c.append&&c.append.remove(),g&&(c.append=a("<span class='"+this._appendClass+"'>"+g+"</span>"),b[h?"before":"after"](c.append)),b.unbind("focus",this._showDatepicker),c.trigger&&c.trigger.remove(),d=this._get(c,"showOn"),("focus"===d||"both"===d)&&b.focus(this._showDatepicker),("button"===d||"both"===d)&&(e=this._get(c,"buttonText"),f=this._get(c,"buttonImage"),c.trigger=a(this._get(c,"buttonImageOnly")?a("<img/>").addClass(this._triggerClass).attr({src:f,alt:e,title:e}):a("<button type='button'></button>").addClass(this._triggerClass).html(f?a("<img/>").attr({src:f,alt:e,title:e}):e)),b[h?"before":"after"](c.trigger),c.trigger.click(function(){return a.datepicker._datepickerShowing&&a.datepicker._lastInput===b[0]?a.datepicker._hideDatepicker():a.datepicker._datepickerShowing&&a.datepicker._lastInput!==b[0]?(a.datepicker._hideDatepicker(),a.datepicker._showDatepicker(b[0])):a.datepicker._showDatepicker(b[0]),!1}))},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b,c,d,e,f=new Date(2009,11,20),g=this._get(a,"dateFormat");g.match(/[DM]/)&&(b=function(a){for(c=0,d=0,e=0;e<a.length;e++)a[e].length>c&&(c=a[e].length,d=e);return d},f.setMonth(b(this._get(a,g.match(/MM/)?"monthNames":"monthNamesShort"))),f.setDate(b(this._get(a,g.match(/DD/)?"dayNames":"dayNamesShort"))+20-f.getDay())),a.input.attr("size",this._formatDate(a,f).length)}},_inlineDatepicker:function(b,c){var d=a(b);d.hasClass(this.markerClassName)||(d.addClass(this.markerClassName).append(c.dpDiv),a.data(b,"datepicker",c),this._setDate(c,this._getDefaultDate(c),!0),this._updateDatepicker(c),this._updateAlternate(c),c.settings.disabled&&this._disableDatepicker(b),c.dpDiv.css("display","block"))},_dialogDatepicker:function(b,c,d,e,f){var g,i,j,k,l,m=this._dialogInst;return m||(this.uuid+=1,g="dp"+this.uuid,this._dialogInput=a("<input type='text' id='"+g+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),a("body").append(this._dialogInput),m=this._dialogInst=this._newInst(this._dialogInput,!1),m.settings={},a.data(this._dialogInput[0],"datepicker",m)),h(m.settings,e||{}),c=c&&c.constructor===Date?this._formatDate(m,c):c,this._dialogInput.val(c),this._pos=f?f.length?f:[f.pageX,f.pageY]:null,this._pos||(i=document.documentElement.clientWidth,j=document.documentElement.clientHeight,k=document.documentElement.scrollLeft||document.body.scrollLeft,l=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[i/2-100+k,j/2-150+l]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),m.settings.onSelect=d,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),a.blockUI&&a.blockUI(this.dpDiv),a.data(this._dialogInput[0],"datepicker",m),this},_destroyDatepicker:function(b){var c,d=a(b),e=a.data(b,"datepicker");d.hasClass(this.markerClassName)&&(c=b.nodeName.toLowerCase(),a.removeData(b,"datepicker"),"input"===c?(e.append.remove(),e.trigger.remove(),d.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===c||"span"===c)&&d.removeClass(this.markerClassName).empty(),r===e&&(r=null))},_enableDatepicker:function(b){var c,d,e=a(b),f=a.data(b,"datepicker");e.hasClass(this.markerClassName)&&(c=b.nodeName.toLowerCase(),"input"===c?(b.disabled=!1,f.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===c||"span"===c)&&(d=e.children("."+this._inlineClass),d.children().removeClass("ui-state-disabled"),d.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=a.map(this._disabledInputs,function(a){return a===b?null:a}))},_disableDatepicker:function(b){var c,d,e=a(b),f=a.data(b,"datepicker");e.hasClass(this.markerClassName)&&(c=b.nodeName.toLowerCase(),"input"===c?(b.disabled=!0,f.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===c||"span"===c)&&(d=e.children("."+this._inlineClass),d.children().addClass("ui-state-disabled"),d.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=a.map(this._disabledInputs,function(a){return a===b?null:a}),this._disabledInputs[this._disabledInputs.length]=b)},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]===a)return!0;return!1},_getInst:function(b){try{return a.data(b,"datepicker")}catch(c){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(b,c,d){var e,f,g,i,j=this._getInst(b);return 2===arguments.length&&"string"==typeof c?"defaults"===c?a.extend({},a.datepicker._defaults):j?"all"===c?a.extend({},j.settings):this._get(j,c):null:(e=c||{},"string"==typeof c&&(e={},e[c]=d),void(j&&(this._curInst===j&&this._hideDatepicker(),f=this._getDateDatepicker(b,!0),g=this._getMinMaxDate(j,"min"),i=this._getMinMaxDate(j,"max"),h(j.settings,e),null!==g&&void 0!==e.dateFormat&&void 0===e.minDate&&(j.settings.minDate=this._formatDate(j,g)),null!==i&&void 0!==e.dateFormat&&void 0===e.maxDate&&(j.settings.maxDate=this._formatDate(j,i)),"disabled"in e&&(e.disabled?this._disableDatepicker(b):this._enableDatepicker(b)),this._attachments(a(b),j),this._autoSize(j),this._setDate(j,f),this._updateAlternate(j),this._updateDatepicker(j))))},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){var b=this._getInst(a);b&&this._updateDatepicker(b)},_setDateDatepicker:function(a,b){var c=this._getInst(a);c&&(this._setDate(c,b),this._updateDatepicker(c),this._updateAlternate(c))},_getDateDatepicker:function(a,b){var c=this._getInst(a);return c&&!c.inline&&this._setDateFromField(c,b),c?this._getDate(c):null},_doKeyDown:function(b){var c,d,e,f=a.datepicker._getInst(b.target),g=!0,h=f.dpDiv.is(".ui-datepicker-rtl");if(f._keyEvent=!0,a.datepicker._datepickerShowing)switch(b.keyCode){case 9:a.datepicker._hideDatepicker(),g=!1;break;case 13:return e=a("td."+a.datepicker._dayOverClass+":not(."+a.datepicker._currentClass+")",f.dpDiv),e[0]&&a.datepicker._selectDay(b.target,f.selectedMonth,f.selectedYear,e[0]),c=a.datepicker._get(f,"onSelect"),c?(d=a.datepicker._formatDate(f),c.apply(f.input?f.input[0]:null,[d,f])):a.datepicker._hideDatepicker(),!1;case 27:a.datepicker._hideDatepicker();break;case 33:a.datepicker._adjustDate(b.target,b.ctrlKey?-a.datepicker._get(f,"stepBigMonths"):-a.datepicker._get(f,"stepMonths"),"M");break;case 34:a.datepicker._adjustDate(b.target,b.ctrlKey?+a.datepicker._get(f,"stepBigMonths"):+a.datepicker._get(f,"stepMonths"),"M");break;case 35:(b.ctrlKey||b.metaKey)&&a.datepicker._clearDate(b.target),g=b.ctrlKey||b.metaKey;break;case 36:(b.ctrlKey||b.metaKey)&&a.datepicker._gotoToday(b.target),g=b.ctrlKey||b.metaKey;break;case 37:(b.ctrlKey||b.metaKey)&&a.datepicker._adjustDate(b.target,h?1:-1,"D"),g=b.ctrlKey||b.metaKey,b.originalEvent.altKey&&a.datepicker._adjustDate(b.target,b.ctrlKey?-a.datepicker._get(f,"stepBigMonths"):-a.datepicker._get(f,"stepMonths"),"M");break;case 38:(b.ctrlKey||b.metaKey)&&a.datepicker._adjustDate(b.target,-7,"D"),g=b.ctrlKey||b.metaKey;break;case 39:(b.ctrlKey||b.metaKey)&&a.datepicker._adjustDate(b.target,h?-1:1,"D"),g=b.ctrlKey||b.metaKey,b.originalEvent.altKey&&a.datepicker._adjustDate(b.target,b.ctrlKey?+a.datepicker._get(f,"stepBigMonths"):+a.datepicker._get(f,"stepMonths"),"M");break;case 40:(b.ctrlKey||b.metaKey)&&a.datepicker._adjustDate(b.target,7,"D"),g=b.ctrlKey||b.metaKey;break;default:g=!1}else 36===b.keyCode&&b.ctrlKey?a.datepicker._showDatepicker(this):g=!1;g&&(b.preventDefault(),b.stopPropagation())},_doKeyPress:function(b){var c,d,e=a.datepicker._getInst(b.target);return a.datepicker._get(e,"constrainInput")?(c=a.datepicker._possibleChars(a.datepicker._get(e,"dateFormat")),d=String.fromCharCode(null==b.charCode?b.keyCode:b.charCode),b.ctrlKey||b.metaKey||" ">d||!c||c.indexOf(d)>-1):void 0},_doKeyUp:function(b){var c,d=a.datepicker._getInst(b.target);if(d.input.val()!==d.lastVal)try{c=a.datepicker.parseDate(a.datepicker._get(d,"dateFormat"),d.input?d.input.val():null,a.datepicker._getFormatConfig(d)),c&&(a.datepicker._setDateFromField(d),a.datepicker._updateAlternate(d),a.datepicker._updateDatepicker(d))}catch(e){}return!0},_showDatepicker:function(b){if(b=b.target||b,"input"!==b.nodeName.toLowerCase()&&(b=a("input",b.parentNode)[0]),!a.datepicker._isDisabledDatepicker(b)&&a.datepicker._lastInput!==b){var c,e,f,g,i,j,k;c=a.datepicker._getInst(b),a.datepicker._curInst&&a.datepicker._curInst!==c&&(a.datepicker._curInst.dpDiv.stop(!0,!0),c&&a.datepicker._datepickerShowing&&a.datepicker._hideDatepicker(a.datepicker._curInst.input[0])),e=a.datepicker._get(c,"beforeShow"),f=e?e.apply(b,[b,c]):{},f!==!1&&(h(c.settings,f),c.lastVal=null,a.datepicker._lastInput=b,a.datepicker._setDateFromField(c),a.datepicker._inDialog&&(b.value=""),a.datepicker._pos||(a.datepicker._pos=a.datepicker._findPos(b),a.datepicker._pos[1]+=b.offsetHeight),g=!1,a(b).parents().each(function(){return g|="fixed"===a(this).css("position"),!g}),i={left:a.datepicker._pos[0],top:a.datepicker._pos[1]},a.datepicker._pos=null,c.dpDiv.empty(),c.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),a.datepicker._updateDatepicker(c),i=a.datepicker._checkOffset(c,i,g),c.dpDiv.css({position:a.datepicker._inDialog&&a.blockUI?"static":g?"fixed":"absolute",display:"none",left:i.left+"px",top:i.top+"px"}),c.inline||(j=a.datepicker._get(c,"showAnim"),k=a.datepicker._get(c,"duration"),c.dpDiv.css("z-index",d(a(b))+1),a.datepicker._datepickerShowing=!0,a.effects&&a.effects.effect[j]?c.dpDiv.show(j,a.datepicker._get(c,"showOptions"),k):c.dpDiv[j||"show"](j?k:null),a.datepicker._shouldFocusInput(c)&&c.input.focus(),a.datepicker._curInst=c))}},_updateDatepicker:function(b){this.maxRows=4,r=b,b.dpDiv.empty().append(this._generateHTML(b)),this._attachHandlers(b);var c,d=this._getNumberOfMonths(b),e=d[1],f=17,h=b.dpDiv.find("."+this._dayOverClass+" a");h.length>0&&g.apply(h.get(0)),b.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),e>1&&b.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",f*e+"em"),b.dpDiv[(1!==d[0]||1!==d[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),b.dpDiv[(this._get(b,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),b===a.datepicker._curInst&&a.datepicker._datepickerShowing&&a.datepicker._shouldFocusInput(b)&&b.input.focus(),b.yearshtml&&(c=b.yearshtml,setTimeout(function(){c===b.yearshtml&&b.yearshtml&&b.dpDiv.find("select.ui-datepicker-year:first").replaceWith(b.yearshtml),c=b.yearshtml=null},0))},_shouldFocusInput:function(a){return a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&!a.input.is(":focus")},_checkOffset:function(b,c,d){var e=b.dpDiv.outerWidth(),f=b.dpDiv.outerHeight(),g=b.input?b.input.outerWidth():0,h=b.input?b.input.outerHeight():0,i=document.documentElement.clientWidth+(d?0:a(document).scrollLeft()),j=document.documentElement.clientHeight+(d?0:a(document).scrollTop());return c.left-=this._get(b,"isRTL")?e-g:0,c.left-=d&&c.left===b.input.offset().left?a(document).scrollLeft():0,c.top-=d&&c.top===b.input.offset().top+h?a(document).scrollTop():0,c.left-=Math.min(c.left,c.left+e>i&&i>e?Math.abs(c.left+e-i):0),c.top-=Math.min(c.top,c.top+f>j&&j>f?Math.abs(f+h):0),c},_findPos:function(b){for(var c,d=this._getInst(b),e=this._get(d,"isRTL");b&&("hidden"===b.type||1!==b.nodeType||a.expr.filters.hidden(b));)b=b[e?"previousSibling":"nextSibling"];return c=a(b).offset(),[c.left,c.top]},_hideDatepicker:function(b){var c,d,e,f,g=this._curInst;!g||b&&g!==a.data(b,"datepicker")||this._datepickerShowing&&(c=this._get(g,"showAnim"),d=this._get(g,"duration"),e=function(){a.datepicker._tidyDialog(g)},a.effects&&(a.effects.effect[c]||a.effects[c])?g.dpDiv.hide(c,a.datepicker._get(g,"showOptions"),d,e):g.dpDiv["slideDown"===c?"slideUp":"fadeIn"===c?"fadeOut":"hide"](c?d:null,e),c||e(),this._datepickerShowing=!1,f=this._get(g,"onClose"),f&&f.apply(g.input?g.input[0]:null,[g.input?g.input.val():"",g]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),a.blockUI&&(a.unblockUI(),a("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(b){if(a.datepicker._curInst){var c=a(b.target),d=a.datepicker._getInst(c[0]);(c[0].id!==a.datepicker._mainDivId&&0===c.parents("#"+a.datepicker._mainDivId).length&&!c.hasClass(a.datepicker.markerClassName)&&!c.closest("."+a.datepicker._triggerClass).length&&a.datepicker._datepickerShowing&&(!a.datepicker._inDialog||!a.blockUI)||c.hasClass(a.datepicker.markerClassName)&&a.datepicker._curInst!==d)&&a.datepicker._hideDatepicker()}},_adjustDate:function(b,c,d){var e=a(b),f=this._getInst(e[0]);this._isDisabledDatepicker(e[0])||(this._adjustInstDate(f,c+("M"===d?this._get(f,"showCurrentAtPos"):0),d),this._updateDatepicker(f))},_gotoToday:function(b){var c,d=a(b),e=this._getInst(d[0]);this._get(e,"gotoCurrent")&&e.currentDay?(e.selectedDay=e.currentDay,e.drawMonth=e.selectedMonth=e.currentMonth,e.drawYear=e.selectedYear=e.currentYear):(c=new Date,e.selectedDay=c.getDate(),e.drawMonth=e.selectedMonth=c.getMonth(),e.drawYear=e.selectedYear=c.getFullYear()),this._notifyChange(e),this._adjustDate(d)},_selectMonthYear:function(b,c,d){var e=a(b),f=this._getInst(e[0]);f["selected"+("M"===d?"Month":"Year")]=f["draw"+("M"===d?"Month":"Year")]=parseInt(c.options[c.selectedIndex].value,10),this._notifyChange(f),this._adjustDate(e)},_selectDay:function(b,c,d,e){var f,g=a(b);a(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(g[0])||(f=this._getInst(g[0]),f.selectedDay=f.currentDay=a("a",e).html(),f.selectedMonth=f.currentMonth=c,f.selectedYear=f.currentYear=d,this._selectDate(b,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear)))},_clearDate:function(b){var c=a(b);this._selectDate(c,"")},_selectDate:function(b,c){var d,e=a(b),f=this._getInst(e[0]);c=null!=c?c:this._formatDate(f),f.input&&f.input.val(c),this._updateAlternate(f),d=this._get(f,"onSelect"),d?d.apply(f.input?f.input[0]:null,[c,f]):f.input&&f.input.trigger("change"),f.inline?this._updateDatepicker(f):(this._hideDatepicker(),this._lastInput=f.input[0],"object"!=typeof f.input[0]&&f.input.focus(),this._lastInput=null)},_updateAlternate:function(b){var c,d,e,f=this._get(b,"altField");f&&(c=this._get(b,"altFormat")||this._get(b,"dateFormat"),d=this._getDate(b),e=this.formatDate(c,d,this._getFormatConfig(b)),a(f).each(function(){a(this).val(e)}))},noWeekends:function(a){var b=a.getDay();return[b>0&&6>b,""]},iso8601Week:function(a){var b,c=new Date(a.getTime());return c.setDate(c.getDate()+4-(c.getDay()||7)),b=c.getTime(),c.setMonth(0),c.setDate(1),Math.floor(Math.round((b-c)/864e5)/7)+1},parseDate:function(b,c,d){if(null==b||null==c)throw"Invalid arguments";if(c="object"==typeof c?c.toString():c+"",""===c)return null;var e,f,g,h,i=0,j=(d?d.shortYearCutoff:null)||this._defaults.shortYearCutoff,k="string"!=typeof j?j:(new Date).getFullYear()%100+parseInt(j,10),l=(d?d.dayNamesShort:null)||this._defaults.dayNamesShort,m=(d?d.dayNames:null)||this._defaults.dayNames,n=(d?d.monthNamesShort:null)||this._defaults.monthNamesShort,o=(d?d.monthNames:null)||this._defaults.monthNames,p=-1,q=-1,r=-1,s=-1,t=!1,u=function(a){var c=e+1<b.length&&b.charAt(e+1)===a;return c&&e++,c},v=function(a){var b=u(a),d="@"===a?14:"!"===a?20:"y"===a&&b?4:"o"===a?3:2,e="y"===a?d:1,f=new RegExp("^\\d{"+e+","+d+"}"),g=c.substring(i).match(f);if(!g)throw"Missing number at position "+i;return i+=g[0].length,parseInt(g[0],10)},w=function(b,d,e){var f=-1,g=a.map(u(b)?e:d,function(a,b){return[[b,a]]}).sort(function(a,b){return-(a[1].length-b[1].length)});if(a.each(g,function(a,b){var d=b[1];return c.substr(i,d.length).toLowerCase()===d.toLowerCase()?(f=b[0],i+=d.length,!1):void 0}),-1!==f)return f+1;throw"Unknown name at position "+i},x=function(){if(c.charAt(i)!==b.charAt(e))throw"Unexpected literal at position "+i;i++};for(e=0;e<b.length;e++)if(t)"'"!==b.charAt(e)||u("'")?x():t=!1;else switch(b.charAt(e)){case"d":r=v("d");break;case"D":w("D",l,m);break;case"o":s=v("o");break;case"m":q=v("m");break;case"M":q=w("M",n,o);break;case"y":p=v("y");break;case"@":h=new Date(v("@")),p=h.getFullYear(),q=h.getMonth()+1,r=h.getDate();break;case"!":h=new Date((v("!")-this._ticksTo1970)/1e4),p=h.getFullYear(),q=h.getMonth()+1,r=h.getDate();break;case"'":u("'")?x():t=!0;break;default:x()}if(i<c.length&&(g=c.substr(i),!/^\s+/.test(g)))throw"Extra/unparsed characters found in date: "+g;if(-1===p?p=(new Date).getFullYear():100>p&&(p+=(new Date).getFullYear()-(new Date).getFullYear()%100+(k>=p?0:-100)),s>-1)for(q=1,r=s;;){if(f=this._getDaysInMonth(p,q-1),f>=r)break;q++,r-=f}if(h=this._daylightSavingAdjust(new Date(p,q-1,r)),h.getFullYear()!==p||h.getMonth()+1!==q||h.getDate()!==r)throw"Invalid date";return h},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d,e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=function(b){var c=d+1<a.length&&a.charAt(d+1)===b;return c&&d++,c},j=function(a,b,c){var d=""+b;if(i(a))for(;d.length<c;)d="0"+d;return d},k=function(a,b,c,d){return i(a)?d[b]:c[b]},l="",m=!1;if(b)for(d=0;d<a.length;d++)if(m)"'"!==a.charAt(d)||i("'")?l+=a.charAt(d):m=!1;else switch(a.charAt(d)){case"d":l+=j("d",b.getDate(),2);break;case"D":l+=k("D",b.getDay(),e,f);break;case"o":l+=j("o",Math.round((new Date(b.getFullYear(),b.getMonth(),b.getDate()).getTime()-new Date(b.getFullYear(),0,0).getTime())/864e5),3);break;case"m":l+=j("m",b.getMonth()+1,2);break;case"M":l+=k("M",b.getMonth(),g,h);break;case"y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case"@":l+=b.getTime();break;case"!":l+=1e4*b.getTime()+this._ticksTo1970;break;case"'":i("'")?l+="'":m=!0;break;default:l+=a.charAt(d)}return l},_possibleChars:function(a){var b,c="",d=!1,e=function(c){var d=b+1<a.length&&a.charAt(b+1)===c;return d&&b++,d};for(b=0;b<a.length;b++)if(d)"'"!==a.charAt(b)||e("'")?c+=a.charAt(b):d=!1;else switch(a.charAt(b)){case"d":case"m":case"y":case"@":c+="0123456789";break;case"D":case"M":return null;case"'":e("'")?c+="'":d=!0;break;default:c+=a.charAt(b)}return c},_get:function(a,b){return void 0!==a.settings[b]?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!==a.lastVal){var c=this._get(a,"dateFormat"),d=a.lastVal=a.input?a.input.val():null,e=this._getDefaultDate(a),f=e,g=this._getFormatConfig(a);try{f=this.parseDate(c,d,g)||e}catch(h){d=b?"":d}a.selectedDay=f.getDate(),a.drawMonth=a.selectedMonth=f.getMonth(),a.drawYear=a.selectedYear=f.getFullYear(),a.currentDay=d?f.getDate():0,a.currentMonth=d?f.getMonth():0,a.currentYear=d?f.getFullYear():0,this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(b,c,d){var e=function(a){var b=new Date;return b.setDate(b.getDate()+a),b},f=function(c){try{return a.datepicker.parseDate(a.datepicker._get(b,"dateFormat"),c,a.datepicker._getFormatConfig(b))}catch(d){}for(var e=(c.toLowerCase().match(/^c/)?a.datepicker._getDate(b):null)||new Date,f=e.getFullYear(),g=e.getMonth(),h=e.getDate(),i=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,j=i.exec(c);j;){switch(j[2]||"d"){case"d":case"D":h+=parseInt(j[1],10);break;case"w":case"W":h+=7*parseInt(j[1],10);break;case"m":case"M":g+=parseInt(j[1],10),h=Math.min(h,a.datepicker._getDaysInMonth(f,g));break;case"y":case"Y":f+=parseInt(j[1],10),h=Math.min(h,a.datepicker._getDaysInMonth(f,g))}j=i.exec(c)}return new Date(f,g,h)},g=null==c||""===c?d:"string"==typeof c?f(c):"number"==typeof c?isNaN(c)?d:e(c):new Date(c.getTime());return g=g&&"Invalid Date"===g.toString()?d:g,g&&(g.setHours(0),g.setMinutes(0),g.setSeconds(0),g.setMilliseconds(0)),this._daylightSavingAdjust(g)},_daylightSavingAdjust:function(a){return a?(a.setHours(a.getHours()>12?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),e===a.selectedMonth&&f===a.selectedYear||c||this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&""===a.input.val()?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_attachHandlers:function(b){var c=this._get(b,"stepMonths"),d="#"+b.id.replace(/\\\\/g,"\\");b.dpDiv.find("[data-handler]").map(function(){var b={prev:function(){a.datepicker._adjustDate(d,-c,"M")},next:function(){a.datepicker._adjustDate(d,+c,"M")},hide:function(){a.datepicker._hideDatepicker()},today:function(){a.datepicker._gotoToday(d)},selectDay:function(){return a.datepicker._selectDay(d,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return a.datepicker._selectMonthYear(d,this,"M"),!1},selectYear:function(){return a.datepicker._selectMonthYear(d,this,"Y"),!1}};a(this).bind(this.getAttribute("data-event"),b[this.getAttribute("data-handler")])})},_generateHTML:function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O=new Date,P=this._daylightSavingAdjust(new Date(O.getFullYear(),O.getMonth(),O.getDate())),Q=this._get(a,"isRTL"),R=this._get(a,"showButtonPanel"),S=this._get(a,"hideIfNoPrevNext"),T=this._get(a,"navigationAsDateFormat"),U=this._getNumberOfMonths(a),V=this._get(a,"showCurrentAtPos"),W=this._get(a,"stepMonths"),X=1!==U[0]||1!==U[1],Y=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),Z=this._getMinMaxDate(a,"min"),$=this._getMinMaxDate(a,"max"),_=a.drawMonth-V,aa=a.drawYear;if(0>_&&(_+=12,aa--),$)for(b=this._daylightSavingAdjust(new Date($.getFullYear(),$.getMonth()-U[0]*U[1]+1,$.getDate())),b=Z&&Z>b?Z:b;this._daylightSavingAdjust(new Date(aa,_,1))>b;)_--,0>_&&(_=11,aa--);for(a.drawMonth=_,a.drawYear=aa,c=this._get(a,"prevText"),c=T?this.formatDate(c,this._daylightSavingAdjust(new Date(aa,_-W,1)),this._getFormatConfig(a)):c,d=this._canAdjustMonth(a,-1,aa,_)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+c+"'><span class='ui-icon ui-icon-circle-triangle-"+(Q?"e":"w")+"'>"+c+"</span></a>":S?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+c+"'><span class='ui-icon ui-icon-circle-triangle-"+(Q?"e":"w")+"'>"+c+"</span></a>",e=this._get(a,"nextText"),e=T?this.formatDate(e,this._daylightSavingAdjust(new Date(aa,_+W,1)),this._getFormatConfig(a)):e,f=this._canAdjustMonth(a,1,aa,_)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+e+"'><span class='ui-icon ui-icon-circle-triangle-"+(Q?"w":"e")+"'>"+e+"</span></a>":S?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+e+"'><span class='ui-icon ui-icon-circle-triangle-"+(Q?"w":"e")+"'>"+e+"</span></a>",g=this._get(a,"currentText"),h=this._get(a,"gotoCurrent")&&a.currentDay?Y:P,g=T?this.formatDate(g,h,this._getFormatConfig(a)):g,i=a.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(a,"closeText")+"</button>",j=R?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Q?i:"")+(this._isInRange(a,h)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+g+"</button>":"")+(Q?"":i)+"</div>":"",k=parseInt(this._get(a,"firstDay"),10),k=isNaN(k)?0:k,l=this._get(a,"showWeek"),m=this._get(a,"dayNames"),n=this._get(a,"dayNamesMin"),o=this._get(a,"monthNames"),p=this._get(a,"monthNamesShort"),q=this._get(a,"beforeShowDay"),r=this._get(a,"showOtherMonths"),s=this._get(a,"selectOtherMonths"),t=this._getDefaultDate(a),u="",w=0;w<U[0];w++){for(x="",this.maxRows=4,y=0;y<U[1];y++){if(z=this._daylightSavingAdjust(new Date(aa,_,a.selectedDay)),A=" ui-corner-all",B="",X){if(B+="<div class='ui-datepicker-group",U[1]>1)switch(y){case 0:B+=" ui-datepicker-group-first",A=" ui-corner-"+(Q?"right":"left");break;case U[1]-1:B+=" ui-datepicker-group-last",A=" ui-corner-"+(Q?"left":"right");break;default:B+=" ui-datepicker-group-middle",A=""}B+="'>"}for(B+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+A+"'>"+(/all|left/.test(A)&&0===w?Q?f:d:"")+(/all|right/.test(A)&&0===w?Q?d:f:"")+this._generateMonthYearHeader(a,_,aa,Z,$,w>0||y>0,o,p)+"</div><table class='ui-datepicker-calendar'><thead><tr>",C=l?"<th class='ui-datepicker-week-col'>"+this._get(a,"weekHeader")+"</th>":"",v=0;7>v;v++)D=(v+k)%7,C+="<th scope='col'"+((v+k+6)%7>=5?" class='ui-datepicker-week-end'":"")+"><span title='"+m[D]+"'>"+n[D]+"</span></th>";for(B+=C+"</tr></thead><tbody>",E=this._getDaysInMonth(aa,_),aa===a.selectedYear&&_===a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,E)),F=(this._getFirstDayOfMonth(aa,_)-k+7)%7,G=Math.ceil((F+E)/7),H=X&&this.maxRows>G?this.maxRows:G,this.maxRows=H,I=this._daylightSavingAdjust(new Date(aa,_,1-F)),J=0;H>J;J++){for(B+="<tr>",K=l?"<td class='ui-datepicker-week-col'>"+this._get(a,"calculateWeek")(I)+"</td>":"",v=0;7>v;v++)L=q?q.apply(a.input?a.input[0]:null,[I]):[!0,""],M=I.getMonth()!==_,N=M&&!s||!L[0]||Z&&Z>I||$&&I>$,K+="<td class='"+((v+k+6)%7>=5?" ui-datepicker-week-end":"")+(M?" ui-datepicker-other-month":"")+(I.getTime()===z.getTime()&&_===a.selectedMonth&&a._keyEvent||t.getTime()===I.getTime()&&t.getTime()===z.getTime()?" "+this._dayOverClass:"")+(N?" "+this._unselectableClass+" ui-state-disabled":"")+(M&&!r?"":" "+L[1]+(I.getTime()===Y.getTime()?" "+this._currentClass:"")+(I.getTime()===P.getTime()?" ui-datepicker-today":""))+"'"+(M&&!r||!L[2]?"":" title='"+L[2].replace(/'/g,"&#39;")+"'")+(N?"":" data-handler='selectDay' data-event='click' data-month='"+I.getMonth()+"' data-year='"+I.getFullYear()+"'")+">"+(M&&!r?"&#xa0;":N?"<span class='ui-state-default'>"+I.getDate()+"</span>":"<a class='ui-state-default"+(I.getTime()===P.getTime()?" ui-state-highlight":"")+(I.getTime()===Y.getTime()?" ui-state-active":"")+(M?" ui-priority-secondary":"")+"' href='#'>"+I.getDate()+"</a>")+"</td>",I.setDate(I.getDate()+1),I=this._daylightSavingAdjust(I);B+=K+"</tr>"}_++,_>11&&(_=0,aa++),B+="</tbody></table>"+(X?"</div>"+(U[0]>0&&y===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),x+=B}u+=x}return u+=j,a._keyEvent=!1,u},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q=this._get(a,"changeMonth"),r=this._get(a,"changeYear"),s=this._get(a,"showMonthAfterYear"),t="<div class='ui-datepicker-title'>",u="";if(f||!q)u+="<span class='ui-datepicker-month'>"+g[b]+"</span>";else{for(i=d&&d.getFullYear()===c,j=e&&e.getFullYear()===c,u+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",k=0;12>k;k++)(!i||k>=d.getMonth())&&(!j||k<=e.getMonth())&&(u+="<option value='"+k+"'"+(k===b?" selected='selected'":"")+">"+h[k]+"</option>");u+="</select>"}if(s||(t+=u+(!f&&q&&r?"":"&#xa0;")),!a.yearshtml)if(a.yearshtml="",f||!r)t+="<span class='ui-datepicker-year'>"+c+"</span>";else{for(l=this._get(a,"yearRange").split(":"),m=(new Date).getFullYear(),n=function(a){var b=a.match(/c[+\-].*/)?c+parseInt(a.substring(1),10):a.match(/[+\-].*/)?m+parseInt(a,10):parseInt(a,10);return isNaN(b)?m:b},o=n(l[0]),p=Math.max(o,n(l[1]||"")),o=d?Math.max(o,d.getFullYear()):o,p=e?Math.min(p,e.getFullYear()):p,a.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";p>=o;o++)a.yearshtml+="<option value='"+o+"'"+(o===c?" selected='selected'":"")+">"+o+"</option>";a.yearshtml+="</select>",t+=a.yearshtml,a.yearshtml=null}return t+=this._get(a,"yearSuffix"),s&&(t+=(!f&&q&&r?"":"&#xa0;")+u),t+="</div>"},_adjustInstDate:function(a,b,c){var d=a.drawYear+("Y"===c?b:0),e=a.drawMonth+("M"===c?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+("D"===c?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),("M"===c||"Y"===c)&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&c>b?c:b;return d&&e>d?d:e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return null==b?[1,1]:"number"==typeof b?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return new Date(a,b,1).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(0>b?b:e[0]*e[1]),1));return 0>b&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c,d,e=this._getMinMaxDate(a,"min"),f=this._getMinMaxDate(a,"max"),g=null,h=null,i=this._get(a,"yearRange");
-return i&&(c=i.split(":"),d=(new Date).getFullYear(),g=parseInt(c[0],10),h=parseInt(c[1],10),c[0].match(/[+\-].*/)&&(g+=d),c[1].match(/[+\-].*/)&&(h+=d)),(!e||b.getTime()>=e.getTime())&&(!f||b.getTime()<=f.getTime())&&(!g||b.getFullYear()>=g)&&(!h||b.getFullYear()<=h)},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b="string"!=typeof b?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?"object"==typeof b?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),a.fn.datepicker=function(b){if(!this.length)return this;a.datepicker.initialized||(a(document).mousedown(a.datepicker._checkExternalClick),a.datepicker.initialized=!0),0===a("#"+a.datepicker._mainDivId).length&&a("body").append(a.datepicker.dpDiv);var c=Array.prototype.slice.call(arguments,1);return"string"!=typeof b||"isDisabled"!==b&&"getDate"!==b&&"widget"!==b?"option"===b&&2===arguments.length&&"string"==typeof arguments[1]?a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(c)):this.each(function(){"string"==typeof b?a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this].concat(c)):a.datepicker._attachDatepicker(this,b)}):a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(c))},a.datepicker=new e,a.datepicker.initialized=!1,a.datepicker.uuid=(new Date).getTime(),a.datepicker.version="1.11.4";a.datepicker;a.widget("ui.draggable",a.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(a,b){this._super(a,b),"handle"===a&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?void(this.destroyOnClear=!0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),void this._mouseDestroy())},_mouseCapture:function(b){var c=this.options;return this._blurActiveElement(b),this.helper||c.disabled||a(b.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(b),this.handle?(this._blockFrames(c.iframeFix===!0?"iframe":c.iframeFix),!0):!1)},_blockFrames:function(b){this.iframeBlocks=this.document.find(b).map(function(){var b=a(this);return a("<div>").css("position","absolute").appendTo(b.parent()).outerWidth(b.outerWidth()).outerHeight(b.outerHeight()).offset(b.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(b){var c=this.document[0];if(this.handleElement.is(b.target))try{c.activeElement&&"body"!==c.activeElement.nodeName.toLowerCase()&&a(c.activeElement).blur()}catch(d){}},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===a(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(b),this.originalPosition=this.position=this._generatePosition(b,!1),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this._normalizeRightBottom(),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_refreshOffsets:function(a){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:a.pageX-this.offset.left,top:a.pageY-this.offset.top}},_mouseDrag:function(b,c){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(b,!0),this.positionAbs=this._convertPositionTo("absolute"),!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=this,d=!1;return a.ui.ddmanager&&!this.options.dropBehaviour&&(d=a.ui.ddmanager.drop(this,b)),this.dropped&&(d=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!d||"valid"===this.options.revert&&d||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d)?a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",b)!==!1&&c._clear()}):this._trigger("stop",b)!==!1&&this._clear(),!1},_mouseUp:function(b){return this._unblockFrames(),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),this.handleElement.is(b.target)&&this.element.focus(),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){return this.options.handle?!!a(b.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper),e=d?a(c.helper.apply(this.element[0],[b])):"clone"===c.helper?this.element.clone().removeAttr("id"):this.element;return e.parents("body").length||e.appendTo("parent"===c.appendTo?this.element[0].parentNode:c.appendTo),d&&e[0]===this.element[0]&&this._setPositionRelative(),e[0]===this.element[0]||/(fixed|absolute)/.test(e.css("position"))||e.css("position","absolute"),e},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(b){"string"==typeof b&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_isRootNode:function(a){return/(html|body)/i.test(a.tagName)||a===this.document[0]},_getParentOffset:function(){var b=this.offsetParent.offset(),c=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==c&&a.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(b={top:0,left:0}),{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var a=this.element.position(),b=this._isRootNode(this.scrollParent[0]);return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+(b?0:this.scrollParent.scrollTop()),left:a.left-(parseInt(this.helper.css("left"),10)||0)+(b?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b,c,d,e=this.options,f=this.document[0];return this.relativeContainer=null,e.containment?"window"===e.containment?void(this.containment=[a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,a(window).scrollLeft()+a(window).width()-this.helperProportions.width-this.margins.left,a(window).scrollTop()+(a(window).height()||f.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):"document"===e.containment?void(this.containment=[0,0,a(f).width()-this.helperProportions.width-this.margins.left,(a(f).height()||f.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):e.containment.constructor===Array?void(this.containment=e.containment):("parent"===e.containment&&(e.containment=this.helper[0].parentNode),c=a(e.containment),d=c[0],void(d&&(b=/(scroll|auto)/.test(c.css("overflow")),this.containment=[(parseInt(c.css("borderLeftWidth"),10)||0)+(parseInt(c.css("paddingLeft"),10)||0),(parseInt(c.css("borderTopWidth"),10)||0)+(parseInt(c.css("paddingTop"),10)||0),(b?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(c.css("borderRightWidth"),10)||0)-(parseInt(c.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(b?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(c.css("borderBottomWidth"),10)||0)-(parseInt(c.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=c))):void(this.containment=null)},_convertPositionTo:function(a,b){b||(b=this.position);var c="absolute"===a?1:-1,d=this._isRootNode(this.scrollParent[0]);return{top:b.top+this.offset.relative.top*c+this.offset.parent.top*c-("fixed"===this.cssPosition?-this.offset.scroll.top:d?0:this.offset.scroll.top)*c,left:b.left+this.offset.relative.left*c+this.offset.parent.left*c-("fixed"===this.cssPosition?-this.offset.scroll.left:d?0:this.offset.scroll.left)*c}},_generatePosition:function(a,b){var c,d,e,f,g=this.options,h=this._isRootNode(this.scrollParent[0]),i=a.pageX,j=a.pageY;return h&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),b&&(this.containment&&(this.relativeContainer?(d=this.relativeContainer.offset(),c=[this.containment[0]+d.left,this.containment[1]+d.top,this.containment[2]+d.left,this.containment[3]+d.top]):c=this.containment,a.pageX-this.offset.click.left<c[0]&&(i=c[0]+this.offset.click.left),a.pageY-this.offset.click.top<c[1]&&(j=c[1]+this.offset.click.top),a.pageX-this.offset.click.left>c[2]&&(i=c[2]+this.offset.click.left),a.pageY-this.offset.click.top>c[3]&&(j=c[3]+this.offset.click.top)),g.grid&&(e=g.grid[1]?this.originalPageY+Math.round((j-this.originalPageY)/g.grid[1])*g.grid[1]:this.originalPageY,j=c?e-this.offset.click.top>=c[1]||e-this.offset.click.top>c[3]?e:e-this.offset.click.top>=c[1]?e-g.grid[1]:e+g.grid[1]:e,f=g.grid[0]?this.originalPageX+Math.round((i-this.originalPageX)/g.grid[0])*g.grid[0]:this.originalPageX,i=c?f-this.offset.click.left>=c[0]||f-this.offset.click.left>c[2]?f:f-this.offset.click.left>=c[0]?f-g.grid[0]:f+g.grid[0]:f),"y"===g.axis&&(i=this.originalPageX),"x"===g.axis&&(j=this.originalPageY)),{top:j-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:h?0:this.offset.scroll.top),left:i-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:h?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(b,c,d){return d=d||this._uiHash(),a.ui.plugin.call(this,b,[c,d,this],!0),/^(drag|start|stop)/.test(b)&&(this.positionAbs=this._convertPositionTo("absolute"),d.offset=this.positionAbs),a.Widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),a.ui.plugin.add("draggable","connectToSortable",{start:function(b,c,d){var e=a.extend({},c,{item:d.element});d.sortables=[],a(d.options.connectToSortable).each(function(){var c=a(this).sortable("instance");c&&!c.options.disabled&&(d.sortables.push(c),c.refreshPositions(),c._trigger("activate",b,e))})},stop:function(b,c,d){var e=a.extend({},c,{item:d.element});d.cancelHelperRemoval=!1,a.each(d.sortables,function(){var a=this;a.isOver?(a.isOver=0,d.cancelHelperRemoval=!0,a.cancelHelperRemoval=!1,a._storedCSS={position:a.placeholder.css("position"),top:a.placeholder.css("top"),left:a.placeholder.css("left")},a._mouseStop(b),a.options.helper=a.options._helper):(a.cancelHelperRemoval=!0,a._trigger("deactivate",b,e))})},drag:function(b,c,d){a.each(d.sortables,function(){var e=!1,f=this;f.positionAbs=d.positionAbs,f.helperProportions=d.helperProportions,f.offset.click=d.offset.click,f._intersectsWith(f.containerCache)&&(e=!0,a.each(d.sortables,function(){return this.positionAbs=d.positionAbs,this.helperProportions=d.helperProportions,this.offset.click=d.offset.click,this!==f&&this._intersectsWith(this.containerCache)&&a.contains(f.element[0],this.element[0])&&(e=!1),e})),e?(f.isOver||(f.isOver=1,d._parent=c.helper.parent(),f.currentItem=c.helper.appendTo(f.element).data("ui-sortable-item",!0),f.options._helper=f.options.helper,f.options.helper=function(){return c.helper[0]},b.target=f.currentItem[0],f._mouseCapture(b,!0),f._mouseStart(b,!0,!0),f.offset.click.top=d.offset.click.top,f.offset.click.left=d.offset.click.left,f.offset.parent.left-=d.offset.parent.left-f.offset.parent.left,f.offset.parent.top-=d.offset.parent.top-f.offset.parent.top,d._trigger("toSortable",b),d.dropped=f.element,a.each(d.sortables,function(){this.refreshPositions()}),d.currentItem=d.element,f.fromOutside=d),f.currentItem&&(f._mouseDrag(b),c.position=f.position)):f.isOver&&(f.isOver=0,f.cancelHelperRemoval=!0,f.options._revert=f.options.revert,f.options.revert=!1,f._trigger("out",b,f._uiHash(f)),f._mouseStop(b,!0),f.options.revert=f.options._revert,f.options.helper=f.options._helper,f.placeholder&&f.placeholder.remove(),c.helper.appendTo(d._parent),d._refreshOffsets(b),c.position=d._generatePosition(b,!0),d._trigger("fromSortable",b),d.dropped=!1,a.each(d.sortables,function(){this.refreshPositions()}))})}}),a.ui.plugin.add("draggable","cursor",{start:function(b,c,d){var e=a("body"),f=d.options;e.css("cursor")&&(f._cursor=e.css("cursor")),e.css("cursor",f.cursor)},stop:function(b,c,d){var e=d.options;e._cursor&&a("body").css("cursor",e._cursor)}}),a.ui.plugin.add("draggable","opacity",{start:function(b,c,d){var e=a(c.helper),f=d.options;e.css("opacity")&&(f._opacity=e.css("opacity")),e.css("opacity",f.opacity)},stop:function(b,c,d){var e=d.options;e._opacity&&a(c.helper).css("opacity",e._opacity)}}),a.ui.plugin.add("draggable","scroll",{start:function(a,b,c){c.scrollParentNotHidden||(c.scrollParentNotHidden=c.helper.scrollParent(!1)),c.scrollParentNotHidden[0]!==c.document[0]&&"HTML"!==c.scrollParentNotHidden[0].tagName&&(c.overflowOffset=c.scrollParentNotHidden.offset())},drag:function(b,c,d){var e=d.options,f=!1,g=d.scrollParentNotHidden[0],h=d.document[0];g!==h&&"HTML"!==g.tagName?(e.axis&&"x"===e.axis||(d.overflowOffset.top+g.offsetHeight-b.pageY<e.scrollSensitivity?g.scrollTop=f=g.scrollTop+e.scrollSpeed:b.pageY-d.overflowOffset.top<e.scrollSensitivity&&(g.scrollTop=f=g.scrollTop-e.scrollSpeed)),e.axis&&"y"===e.axis||(d.overflowOffset.left+g.offsetWidth-b.pageX<e.scrollSensitivity?g.scrollLeft=f=g.scrollLeft+e.scrollSpeed:b.pageX-d.overflowOffset.left<e.scrollSensitivity&&(g.scrollLeft=f=g.scrollLeft-e.scrollSpeed))):(e.axis&&"x"===e.axis||(b.pageY-a(h).scrollTop()<e.scrollSensitivity?f=a(h).scrollTop(a(h).scrollTop()-e.scrollSpeed):a(window).height()-(b.pageY-a(h).scrollTop())<e.scrollSensitivity&&(f=a(h).scrollTop(a(h).scrollTop()+e.scrollSpeed))),e.axis&&"y"===e.axis||(b.pageX-a(h).scrollLeft()<e.scrollSensitivity?f=a(h).scrollLeft(a(h).scrollLeft()-e.scrollSpeed):a(window).width()-(b.pageX-a(h).scrollLeft())<e.scrollSensitivity&&(f=a(h).scrollLeft(a(h).scrollLeft()+e.scrollSpeed)))),f!==!1&&a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(d,b)}}),a.ui.plugin.add("draggable","snap",{start:function(b,c,d){var e=d.options;d.snapElements=[],a(e.snap.constructor!==String?e.snap.items||":data(ui-draggable)":e.snap).each(function(){var b=a(this),c=b.offset();this!==d.element[0]&&d.snapElements.push({item:this,width:b.outerWidth(),height:b.outerHeight(),top:c.top,left:c.left})})},drag:function(b,c,d){var e,f,g,h,i,j,k,l,m,n,o=d.options,p=o.snapTolerance,q=c.offset.left,r=q+d.helperProportions.width,s=c.offset.top,t=s+d.helperProportions.height;for(m=d.snapElements.length-1;m>=0;m--)i=d.snapElements[m].left-d.margins.left,j=i+d.snapElements[m].width,k=d.snapElements[m].top-d.margins.top,l=k+d.snapElements[m].height,i-p>r||q>j+p||k-p>t||s>l+p||!a.contains(d.snapElements[m].item.ownerDocument,d.snapElements[m].item)?(d.snapElements[m].snapping&&d.options.snap.release&&d.options.snap.release.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[m].item})),d.snapElements[m].snapping=!1):("inner"!==o.snapMode&&(e=Math.abs(k-t)<=p,f=Math.abs(l-s)<=p,g=Math.abs(i-r)<=p,h=Math.abs(j-q)<=p,e&&(c.position.top=d._convertPositionTo("relative",{top:k-d.helperProportions.height,left:0}).top),f&&(c.position.top=d._convertPositionTo("relative",{top:l,left:0}).top),g&&(c.position.left=d._convertPositionTo("relative",{top:0,left:i-d.helperProportions.width}).left),h&&(c.position.left=d._convertPositionTo("relative",{top:0,left:j}).left)),n=e||f||g||h,"outer"!==o.snapMode&&(e=Math.abs(k-s)<=p,f=Math.abs(l-t)<=p,g=Math.abs(i-q)<=p,h=Math.abs(j-r)<=p,e&&(c.position.top=d._convertPositionTo("relative",{top:k,left:0}).top),f&&(c.position.top=d._convertPositionTo("relative",{top:l-d.helperProportions.height,left:0}).top),g&&(c.position.left=d._convertPositionTo("relative",{top:0,left:i}).left),h&&(c.position.left=d._convertPositionTo("relative",{top:0,left:j-d.helperProportions.width}).left)),!d.snapElements[m].snapping&&(e||f||g||h||n)&&d.options.snap.snap&&d.options.snap.snap.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[m].item})),d.snapElements[m].snapping=e||f||g||h||n)}}),a.ui.plugin.add("draggable","stack",{start:function(b,c,d){var e,f=d.options,g=a.makeArray(a(f.stack)).sort(function(b,c){return(parseInt(a(b).css("zIndex"),10)||0)-(parseInt(a(c).css("zIndex"),10)||0)});g.length&&(e=parseInt(a(g[0]).css("zIndex"),10)||0,a(g).each(function(b){a(this).css("zIndex",e+b)}),this.css("zIndex",e+g.length))}}),a.ui.plugin.add("draggable","zIndex",{start:function(b,c,d){var e=a(c.helper),f=d.options;e.css("zIndex")&&(f._zIndex=e.css("zIndex")),e.css("zIndex",f.zIndex)},stop:function(b,c,d){var e=d.options;e._zIndex&&a(c.helper).css("zIndex",e._zIndex)}});a.ui.draggable;a.widget("ui.resizable",a.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(a){return parseInt(a,10)||0},_isNumber:function(a){return!isNaN(parseInt(a,10))},_hasScroll:function(b,c){if("hidden"===a(b).css("overflow"))return!1;var d=c&&"left"===c?"scrollLeft":"scrollTop",e=!1;return b[d]>0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},_create:function(){var b,c,d,e,f,g=this,h=this.options;if(this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!h.aspectRatio,aspectRatio:h.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:h.helper||h.ghost||h.animate?h.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(a("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=h.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=a(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),b=this.handles.split(","),this.handles={},c=0;c<b.length;c++)d=a.trim(b[c]),f="ui-resizable-"+d,e=a("<div class='ui-resizable-handle "+f+"'></div>"),e.css({zIndex:h.zIndex}),"se"===d&&e.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[d]=".ui-resizable-"+d,this.element.append(e);this._renderAxis=function(b){var c,d,e,f;b=b||this.element;for(c in this.handles)this.handles[c].constructor===String?this.handles[c]=this.element.children(this.handles[c]).first().show():(this.handles[c].jquery||this.handles[c].nodeType)&&(this.handles[c]=a(this.handles[c]),this._on(this.handles[c],{mousedown:g._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(d=a(this.handles[c],this.element),f=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth(),e=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join(""),b.css(e,f),this._proportionallyResize()),this._handles=this._handles.add(this.handles[c])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){g.resizing||(this.className&&(e=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),g.axis=e&&e[1]?e[1]:"se")}),h.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").mouseenter(function(){h.disabled||(a(this).removeClass("ui-resizable-autohide"),g._handles.show())}).mouseleave(function(){h.disabled||g.resizing||(a(this).addClass("ui-resizable-autohide"),g._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var b,c=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(c(this.element),b=this.element,this.originalElement.css({position:b.css("position"),width:b.outerWidth(),height:b.outerHeight(),top:b.css("top"),left:b.css("left")}).insertAfter(b),b.remove()),this.originalElement.css("resize",this.originalResizeStyle),c(this.originalElement),this},_mouseCapture:function(b){var c,d,e=!1;for(c in this.handles)d=a(this.handles[c])[0],(d===b.target||a.contains(d,b.target))&&(e=!0);return!this.options.disabled&&e},_mouseStart:function(b){var c,d,e,f=this.options,g=this.element;return this.resizing=!0,this._renderProxy(),c=this._num(this.helper.css("left")),d=this._num(this.helper.css("top")),f.containment&&(c+=a(f.containment).scrollLeft()||0,d+=a(f.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:c,top:d},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:g.width(),height:g.height()},this.originalSize=this._helper?{width:g.outerWidth(),height:g.outerHeight()}:{width:g.width(),height:g.height()},this.sizeDiff={width:g.outerWidth()-g.width(),height:g.outerHeight()-g.height()},this.originalPosition={left:c,top:d},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio="number"==typeof f.aspectRatio?f.aspectRatio:this.originalSize.width/this.originalSize.height||1,e=a(".ui-resizable-"+this.axis).css("cursor"),a("body").css("cursor","auto"===e?this.axis+"-resize":e),g.addClass("ui-resizable-resizing"),this._propagate("start",b),!0},_mouseDrag:function(b){var c,d,e=this.originalMousePosition,f=this.axis,g=b.pageX-e.left||0,h=b.pageY-e.top||0,i=this._change[f];return this._updatePrevProperties(),i?(c=i.apply(this,[b,g,h]),this._updateVirtualBoundaries(b.shiftKey),(this._aspectRatio||b.shiftKey)&&(c=this._updateRatio(c,b)),c=this._respectSize(c,b),this._updateCache(c),this._propagate("resize",b),d=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),a.isEmptyObject(d)||(this._updatePrevProperties(),this._trigger("resize",b,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(b){this.resizing=!1;var c,d,e,f,g,h,i,j=this.options,k=this;return this._helper&&(c=this._proportionallyResizeElements,d=c.length&&/textarea/i.test(c[0].nodeName),e=d&&this._hasScroll(c[0],"left")?0:k.sizeDiff.height,f=d?0:k.sizeDiff.width,g={width:k.helper.width()-f,height:k.helper.height()-e},h=parseInt(k.element.css("left"),10)+(k.position.left-k.originalPosition.left)||null,i=parseInt(k.element.css("top"),10)+(k.position.top-k.originalPosition.top)||null,j.animate||this.element.css(a.extend(g,{top:i,left:h})),k.helper.height(k.size.height),k.helper.width(k.size.width),this._helper&&!j.animate&&this._proportionallyResize()),a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var a={};return this.position.top!==this.prevPosition.top&&(a.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(a.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(a.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(a.height=this.size.height+"px"),this.helper.css(a),a},_updateVirtualBoundaries:function(a){var b,c,d,e,f,g=this.options;f={minWidth:this._isNumber(g.minWidth)?g.minWidth:0,maxWidth:this._isNumber(g.maxWidth)?g.maxWidth:1/0,minHeight:this._isNumber(g.minHeight)?g.minHeight:0,maxHeight:this._isNumber(g.maxHeight)?g.maxHeight:1/0},(this._aspectRatio||a)&&(b=f.minHeight*this.aspectRatio,d=f.minWidth/this.aspectRatio,c=f.maxHeight*this.aspectRatio,e=f.maxWidth/this.aspectRatio,b>f.minWidth&&(f.minWidth=b),d>f.minHeight&&(f.minHeight=d),c<f.maxWidth&&(f.maxWidth=c),e<f.maxHeight&&(f.maxHeight=e)),this._vBoundaries=f},_updateCache:function(a){this.offset=this.helper.offset(),this._isNumber(a.left)&&(this.position.left=a.left),this._isNumber(a.top)&&(this.position.top=a.top),this._isNumber(a.height)&&(this.size.height=a.height),this._isNumber(a.width)&&(this.size.width=a.width)},_updateRatio:function(a){var b=this.position,c=this.size,d=this.axis;return this._isNumber(a.height)?a.width=a.height*this.aspectRatio:this._isNumber(a.width)&&(a.height=a.width/this.aspectRatio),"sw"===d&&(a.left=b.left+(c.width-a.width),a.top=null),"nw"===d&&(a.top=b.top+(c.height-a.height),a.left=b.left+(c.width-a.width)),a},_respectSize:function(a){var b=this._vBoundaries,c=this.axis,d=this._isNumber(a.width)&&b.maxWidth&&b.maxWidth<a.width,e=this._isNumber(a.height)&&b.maxHeight&&b.maxHeight<a.height,f=this._isNumber(a.width)&&b.minWidth&&b.minWidth>a.width,g=this._isNumber(a.height)&&b.minHeight&&b.minHeight>a.height,h=this.originalPosition.left+this.originalSize.width,i=this.position.top+this.size.height,j=/sw|nw|w/.test(c),k=/nw|ne|n/.test(c);return f&&(a.width=b.minWidth),g&&(a.height=b.minHeight),d&&(a.width=b.maxWidth),e&&(a.height=b.maxHeight),f&&j&&(a.left=h-b.minWidth),d&&j&&(a.left=h-b.maxWidth),g&&k&&(a.top=i-b.minHeight),e&&k&&(a.top=i-b.maxHeight),a.width||a.height||a.left||!a.top?a.width||a.height||a.top||!a.left||(a.left=null):a.top=null,a},_getPaddingPlusBorderDimensions:function(a){for(var b=0,c=[],d=[a.css("borderTopWidth"),a.css("borderRightWidth"),a.css("borderBottomWidth"),a.css("borderLeftWidth")],e=[a.css("paddingTop"),a.css("paddingRight"),a.css("paddingBottom"),a.css("paddingLeft")];4>b;b++)c[b]=parseInt(d[b],10)||0,c[b]+=parseInt(e[b],10)||0;return{height:c[0]+c[2],width:c[1]+c[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var a,b=0,c=this.helper||this.element;b<this._proportionallyResizeElements.length;b++)a=this._proportionallyResizeElements[b],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(a)),a.css({height:c.height()-this.outerDimensions.height||0,width:c.width()-this.outerDimensions.width||0})},_renderProxy:function(){var b=this.element,c=this.options;this.elementOffset=b.offset(),this._helper?(this.helper=this.helper||a("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(a,b){return{width:this.originalSize.width+b}},w:function(a,b){var c=this.originalSize,d=this.originalPosition;return{left:d.left+b,width:c.width-b}},n:function(a,b,c){var d=this.originalSize,e=this.originalPosition;return{top:e.top+c,height:d.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),"resize"!==b&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{
-originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.ui.plugin.add("resizable","animate",{stop:function(b){var c=a(this).resizable("instance"),d=c.options,e=c._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&c._hasScroll(e[0],"left")?0:c.sizeDiff.height,h=f?0:c.sizeDiff.width,i={width:c.size.width-h,height:c.size.height-g},j=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null,k=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;c.element.animate(a.extend(i,k&&j?{top:k,left:j}:{}),{duration:d.animateDuration,easing:d.animateEasing,step:function(){var d={width:parseInt(c.element.css("width"),10),height:parseInt(c.element.css("height"),10),top:parseInt(c.element.css("top"),10),left:parseInt(c.element.css("left"),10)};e&&e.length&&a(e[0]).css({width:d.width,height:d.height}),c._updateCache(d),c._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(){var b,c,d,e,f,g,h,i=a(this).resizable("instance"),j=i.options,k=i.element,l=j.containment,m=l instanceof a?l.get(0):/parent/.test(l)?k.parent().get(0):l;m&&(i.containerElement=a(m),/document/.test(l)||l===document?(i.containerOffset={left:0,top:0},i.containerPosition={left:0,top:0},i.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight}):(b=a(m),c=[],a(["Top","Right","Left","Bottom"]).each(function(a,d){c[a]=i._num(b.css("padding"+d))}),i.containerOffset=b.offset(),i.containerPosition=b.position(),i.containerSize={height:b.innerHeight()-c[3],width:b.innerWidth()-c[1]},d=i.containerOffset,e=i.containerSize.height,f=i.containerSize.width,g=i._hasScroll(m,"left")?m.scrollWidth:f,h=i._hasScroll(m)?m.scrollHeight:e,i.parentData={element:m,left:d.left,top:d.top,width:g,height:h}))},resize:function(b){var c,d,e,f,g=a(this).resizable("instance"),h=g.options,i=g.containerOffset,j=g.position,k=g._aspectRatio||b.shiftKey,l={top:0,left:0},m=g.containerElement,n=!0;m[0]!==document&&/static/.test(m.css("position"))&&(l=i),j.left<(g._helper?i.left:0)&&(g.size.width=g.size.width+(g._helper?g.position.left-i.left:g.position.left-l.left),k&&(g.size.height=g.size.width/g.aspectRatio,n=!1),g.position.left=h.helper?i.left:0),j.top<(g._helper?i.top:0)&&(g.size.height=g.size.height+(g._helper?g.position.top-i.top:g.position.top),k&&(g.size.width=g.size.height*g.aspectRatio,n=!1),g.position.top=g._helper?i.top:0),e=g.containerElement.get(0)===g.element.parent().get(0),f=/relative|absolute/.test(g.containerElement.css("position")),e&&f?(g.offset.left=g.parentData.left+g.position.left,g.offset.top=g.parentData.top+g.position.top):(g.offset.left=g.element.offset().left,g.offset.top=g.element.offset().top),c=Math.abs(g.sizeDiff.width+(g._helper?g.offset.left-l.left:g.offset.left-i.left)),d=Math.abs(g.sizeDiff.height+(g._helper?g.offset.top-l.top:g.offset.top-i.top)),c+g.size.width>=g.parentData.width&&(g.size.width=g.parentData.width-c,k&&(g.size.height=g.size.width/g.aspectRatio,n=!1)),d+g.size.height>=g.parentData.height&&(g.size.height=g.parentData.height-d,k&&(g.size.width=g.size.height*g.aspectRatio,n=!1)),n||(g.position.left=g.prevPosition.left,g.position.top=g.prevPosition.top,g.size.width=g.prevSize.width,g.size.height=g.prevSize.height)},stop:function(){var b=a(this).resizable("instance"),c=b.options,d=b.containerOffset,e=b.containerPosition,f=b.containerElement,g=a(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width,j=g.outerHeight()-b.sizeDiff.height;b._helper&&!c.animate&&/relative/.test(f.css("position"))&&a(this).css({left:h.left-e.left-d.left,width:i,height:j}),b._helper&&!c.animate&&/static/.test(f.css("position"))&&a(this).css({left:h.left-e.left-d.left,width:i,height:j})}}),a.ui.plugin.add("resizable","alsoResize",{start:function(){var b=a(this).resizable("instance"),c=b.options;a(c.alsoResize).each(function(){var b=a(this);b.data("ui-resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})},resize:function(b,c){var d=a(this).resizable("instance"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0};a(e.alsoResize).each(function(){var b=a(this),d=a(this).data("ui-resizable-alsoresize"),e={},f=b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(f,function(a,b){var c=(d[b]||0)+(h[b]||0);c&&c>=0&&(e[b]=c||null)}),b.css(e)})},stop:function(){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","ghost",{start:function(){var b=a(this).resizable("instance"),c=b.options,d=b.size;b.ghost=b.originalElement.clone(),b.ghost.css({opacity:.25,display:"block",position:"relative",height:d.height,width:d.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof c.ghost?c.ghost:""),b.ghost.appendTo(b.helper)},resize:function(){var b=a(this).resizable("instance");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=a(this).resizable("instance");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(){var b,c=a(this).resizable("instance"),d=c.options,e=c.size,f=c.originalSize,g=c.originalPosition,h=c.axis,i="number"==typeof d.grid?[d.grid,d.grid]:d.grid,j=i[0]||1,k=i[1]||1,l=Math.round((e.width-f.width)/j)*j,m=Math.round((e.height-f.height)/k)*k,n=f.width+l,o=f.height+m,p=d.maxWidth&&d.maxWidth<n,q=d.maxHeight&&d.maxHeight<o,r=d.minWidth&&d.minWidth>n,s=d.minHeight&&d.minHeight>o;d.grid=i,r&&(n+=j),s&&(o+=k),p&&(n-=j),q&&(o-=k),/^(se|s|e)$/.test(h)?(c.size.width=n,c.size.height=o):/^(ne)$/.test(h)?(c.size.width=n,c.size.height=o,c.position.top=g.top-m):/^(sw)$/.test(h)?(c.size.width=n,c.size.height=o,c.position.left=g.left-l):((0>=o-k||0>=n-j)&&(b=c._getPaddingPlusBorderDimensions(this)),o-k>0?(c.size.height=o,c.position.top=g.top-m):(o=k-b.height,c.size.height=o,c.position.top=g.top+f.height-o),n-j>0?(c.size.width=n,c.position.left=g.left-l):(n=j-b.width,c.size.width=n,c.position.left=g.left+f.width-n))}});a.ui.resizable,a.widget("ui.dialog",{version:"1.11.4",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(b){var c=a(this).css(b).offset().top;0>c&&a(this).css("top",b.top-c)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&a.fn.draggable&&this._makeDraggable(),this.options.resizable&&a.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var b=this.options.appendTo;return b&&(b.jquery||b.nodeType)?a(b):this.document.find(b||"body").eq(0)},_destroy:function(){var a,b=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),a=b.parent.children().eq(b.index),a.length&&a[0]!==this.element[0]?a.before(this.element):b.parent.append(this.element)},widget:function(){return this.uiDialog},disable:a.noop,enable:a.noop,close:function(b){var c,d=this;if(this._isOpen&&this._trigger("beforeClose",b)!==!1){if(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),!this.opener.filter(":focusable").focus().length)try{c=this.document[0].activeElement,c&&"body"!==c.nodeName.toLowerCase()&&a(c).blur()}catch(e){}this._hide(this.uiDialog,this.options.hide,function(){d._trigger("close",b)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(b,c){var d=!1,e=this.uiDialog.siblings(".ui-front:visible").map(function(){return+a(this).css("z-index")}).get(),f=Math.max.apply(null,e);return f>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",f+1),d=!0),d&&!c&&this._trigger("focus",b),d},open:function(){var b=this;return this._isOpen?void(this._moveToTop()&&this._focusTabbable()):(this._isOpen=!0,this.opener=a(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){b._focusTabbable(),b._trigger("focus")}),this._makeFocusTarget(),void this._trigger("open"))},_focusTabbable:function(){var a=this._focusedElement;a||(a=this.element.find("[autofocus]")),a.length||(a=this.element.find(":tabbable")),a.length||(a=this.uiDialogButtonPane.find(":tabbable")),a.length||(a=this.uiDialogTitlebarClose.filter(":tabbable")),a.length||(a=this.uiDialog),a.eq(0).focus()},_keepFocus:function(b){function c(){var b=this.document[0].activeElement,c=this.uiDialog[0]===b||a.contains(this.uiDialog[0],b);c||this._focusTabbable()}b.preventDefault(),c.call(this),this._delay(c)},_createWrapper:function(){this.uiDialog=a("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(b){if(this.options.closeOnEscape&&!b.isDefaultPrevented()&&b.keyCode&&b.keyCode===a.ui.keyCode.ESCAPE)return b.preventDefault(),void this.close(b);if(b.keyCode===a.ui.keyCode.TAB&&!b.isDefaultPrevented()){var c=this.uiDialog.find(":tabbable"),d=c.filter(":first"),e=c.filter(":last");b.target!==e[0]&&b.target!==this.uiDialog[0]||b.shiftKey?b.target!==d[0]&&b.target!==this.uiDialog[0]||!b.shiftKey||(this._delay(function(){e.focus()}),b.preventDefault()):(this._delay(function(){d.focus()}),b.preventDefault())}},mousedown:function(a){this._moveToTop(a)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var b;this.uiDialogTitlebar=a("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(b){a(b.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=a("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(a){a.preventDefault(),this.close(a)}}),b=a("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(b),this.uiDialog.attr({"aria-labelledby":b.attr("id")})},_title:function(a){this.options.title||a.html("&#160;"),a.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=a("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=a("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var b=this,c=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),a.isEmptyObject(c)||a.isArray(c)&&!c.length?void this.uiDialog.removeClass("ui-dialog-buttons"):(a.each(c,function(c,d){var e,f;d=a.isFunction(d)?{click:d,text:c}:d,d=a.extend({type:"button"},d),e=d.click,d.click=function(){e.apply(b.element[0],arguments)},f={icons:d.icons,text:d.showText},delete d.icons,delete d.showText,a("<button></button>",d).button(f).appendTo(b.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),void this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){function b(a){return{position:a.position,offset:a.offset}}var c=this,d=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,e){a(this).addClass("ui-dialog-dragging"),c._blockFrames(),c._trigger("dragStart",d,b(e))},drag:function(a,d){c._trigger("drag",a,b(d))},stop:function(e,f){var g=f.offset.left-c.document.scrollLeft(),h=f.offset.top-c.document.scrollTop();d.position={my:"left top",at:"left"+(g>=0?"+":"")+g+" top"+(h>=0?"+":"")+h,of:c.window},a(this).removeClass("ui-dialog-dragging"),c._unblockFrames(),c._trigger("dragStop",e,b(f))}})},_makeResizable:function(){function b(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.position,size:a.size}}var c=this,d=this.options,e=d.resizable,f=this.uiDialog.css("position"),g="string"==typeof e?e:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:d.maxWidth,maxHeight:d.maxHeight,minWidth:d.minWidth,minHeight:this._minHeight(),handles:g,start:function(d,e){a(this).addClass("ui-dialog-resizing"),c._blockFrames(),c._trigger("resizeStart",d,b(e))},resize:function(a,d){c._trigger("resize",a,b(d))},stop:function(e,f){var g=c.uiDialog.offset(),h=g.left-c.document.scrollLeft(),i=g.top-c.document.scrollTop();d.height=c.uiDialog.height(),d.width=c.uiDialog.width(),d.position={my:"left top",at:"left"+(h>=0?"+":"")+h+" top"+(i>=0?"+":"")+i,of:c.window},a(this).removeClass("ui-dialog-resizing"),c._unblockFrames(),c._trigger("resizeStop",e,b(f))}}).css("position",f)},_trackFocus:function(){this._on(this.widget(),{focusin:function(b){this._makeFocusTarget(),this._focusedElement=a(b.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var b=this._trackingInstances(),c=a.inArray(this,b);-1!==c&&b.splice(c,1)},_trackingInstances:function(){var a=this.document.data("ui-dialog-instances");return a||(a=[],this.document.data("ui-dialog-instances",a)),a},_minHeight:function(){var a=this.options;return"auto"===a.height?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(){var a=this.uiDialog.is(":visible");a||this.uiDialog.show(),this.uiDialog.position(this.options.position),a||this.uiDialog.hide()},_setOptions:function(b){var c=this,d=!1,e={};a.each(b,function(a,b){c._setOption(a,b),a in c.sizeRelatedOptions&&(d=!0),a in c.resizableRelatedOptions&&(e[a]=b)}),d&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",e)},_setOption:function(a,b){var c,d,e=this.uiDialog;"dialogClass"===a&&e.removeClass(this.options.dialogClass).addClass(b),"disabled"!==a&&(this._super(a,b),"appendTo"===a&&this.uiDialog.appendTo(this._appendTo()),"buttons"===a&&this._createButtons(),"closeText"===a&&this.uiDialogTitlebarClose.button({label:""+b}),"draggable"===a&&(c=e.is(":data(ui-draggable)"),c&&!b&&e.draggable("destroy"),!c&&b&&this._makeDraggable()),"position"===a&&this._position(),"resizable"===a&&(d=e.is(":data(ui-resizable)"),d&&!b&&e.resizable("destroy"),d&&"string"==typeof b&&e.resizable("option","handles",b),d||b===!1||this._makeResizable()),"title"===a&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var a,b,c,d=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),d.minWidth>d.width&&(d.width=d.minWidth),a=this.uiDialog.css({height:"auto",width:d.width}).outerHeight(),b=Math.max(0,d.minHeight-a),c="number"==typeof d.maxHeight?Math.max(0,d.maxHeight-a):"none","auto"===d.height?this.element.css({minHeight:b,maxHeight:c,height:"auto"}):this.element.height(Math.max(0,d.height-a)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var b=a(this);return a("<div>").css({position:"absolute",width:b.outerWidth(),height:b.outerHeight()}).appendTo(b.parent()).offset(b.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(b){return a(b.target).closest(".ui-dialog").length?!0:!!a(b.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var b=!0;this._delay(function(){b=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(a){b||this._allowInteraction(a)||(a.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=a("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var a=this.document.data("ui-dialog-overlays")-1;a?this.document.data("ui-dialog-overlays",a):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}});a.widget("ui.droppable",{version:"1.11.4",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var b,c=this.options,d=c.accept;this.isover=!1,this.isout=!0,this.accept=a.isFunction(d)?d:function(a){return a.is(d)},this.proportions=function(){return arguments.length?void(b=arguments[0]):b?b:b={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(c.scope),c.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(b){a.ui.ddmanager.droppables[b]=a.ui.ddmanager.droppables[b]||[],a.ui.ddmanager.droppables[b].push(this)},_splice:function(a){for(var b=0;b<a.length;b++)a[b]===this&&a.splice(b,1)},_destroy:function(){var b=a.ui.ddmanager.droppables[this.options.scope];this._splice(b),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(b,c){if("accept"===b)this.accept=a.isFunction(c)?c:function(a){return a.is(c)};else if("scope"===b){var d=a.ui.ddmanager.droppables[this.options.scope];this._splice(d),this._addToManager(c)}this._super(b,c)},_activate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),c&&this._trigger("activate",b,this.ui(c))},_deactivate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),c&&this._trigger("deactivate",b,this.ui(c))},_over:function(b){var c=a.ui.ddmanager.current;c&&(c.currentItem||c.element)[0]!==this.element[0]&&this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",b,this.ui(c)))},_out:function(b){var c=a.ui.ddmanager.current;c&&(c.currentItem||c.element)[0]!==this.element[0]&&this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",b,this.ui(c)))},_drop:function(b,c){var d=c||a.ui.ddmanager.current,e=!1;return d&&(d.currentItem||d.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var c=a(this).droppable("instance");return c.options.greedy&&!c.options.disabled&&c.options.scope===d.options.scope&&c.accept.call(c.element[0],d.currentItem||d.element)&&a.ui.intersect(d,a.extend(c,{offset:c.element.offset()}),c.options.tolerance,b)?(e=!0,!1):void 0}),e?!1:this.accept.call(this.element[0],d.currentItem||d.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",b,this.ui(d)),this.element):!1):!1},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}}),a.ui.intersect=function(){function a(a,b,c){return a>=b&&b+c>a}return function(b,c,d,e){if(!c.offset)return!1;var f=(b.positionAbs||b.position.absolute).left+b.margins.left,g=(b.positionAbs||b.position.absolute).top+b.margins.top,h=f+b.helperProportions.width,i=g+b.helperProportions.height,j=c.offset.left,k=c.offset.top,l=j+c.proportions().width,m=k+c.proportions().height;switch(d){case"fit":return f>=j&&l>=h&&g>=k&&m>=i;case"intersect":return j<f+b.helperProportions.width/2&&h-b.helperProportions.width/2<l&&k<g+b.helperProportions.height/2&&i-b.helperProportions.height/2<m;case"pointer":return a(e.pageY,k,c.proportions().height)&&a(e.pageX,j,c.proportions().width);case"touch":return(g>=k&&m>=g||i>=k&&m>=i||k>g&&i>m)&&(f>=j&&l>=f||h>=j&&l>=h||j>f&&h>l);default:return!1}}}(),a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d,e,f=a.ui.ddmanager.droppables[b.options.scope]||[],g=c?c.type:null,h=(b.currentItem||b.element).find(":data(ui-droppable)").addBack();a:for(d=0;d<f.length;d++)if(!(f[d].options.disabled||b&&!f[d].accept.call(f[d].element[0],b.currentItem||b.element))){for(e=0;e<h.length;e++)if(h[e]===f[d].element[0]){f[d].proportions().height=0;continue a}f[d].visible="none"!==f[d].element.css("display"),f[d].visible&&("mousedown"===g&&f[d]._activate.call(f[d],c),f[d].offset=f[d].element.offset(),f[d].proportions({width:f[d].element[0].offsetWidth,height:f[d].element[0].offsetHeight}))}},drop:function(b,c){var d=!1;return a.each((a.ui.ddmanager.droppables[b.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&a.ui.intersect(b,this,this.options.tolerance,c)&&(d=this._drop.call(this,c)||d),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],b.currentItem||b.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,c)))}),d},dragStart:function(b,c){b.element.parentsUntil("body").bind("scroll.droppable",function(){b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)})},drag:function(b,c){b.options.refreshPositions&&a.ui.ddmanager.prepareOffsets(b,c),a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var d,e,f,g=a.ui.intersect(b,this,this.options.tolerance,c),h=!g&&this.isover?"isout":g&&!this.isover?"isover":null;h&&(this.options.greedy&&(e=this.options.scope,f=this.element.parents(":data(ui-droppable)").filter(function(){return a(this).droppable("instance").options.scope===e}),f.length&&(d=a(f[0]).droppable("instance"),d.greedyChild="isover"===h)),d&&"isover"===h&&(d.isover=!1,d.isout=!0,d._out.call(d,c)),this[h]=!0,this["isout"===h?"isover":"isout"]=!1,this["isover"===h?"_over":"_out"].call(this,c),d&&"isout"===h&&(d.isout=!1,d.isover=!0,d._over.call(d,c)))}})},dragStop:function(b,c){b.element.parentsUntil("body").unbind("scroll.droppable"),b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)}};var s=(a.ui.droppable,"ui-effects-"),t=a;a.effects={effect:{}},function(a,b){function c(a,b,c){var d=l[b.type]||{};return null==a?c||!b.def?null:b.def:(a=d.floor?~~a:parseFloat(a),isNaN(a)?b.def:d.mod?(a+d.mod)%d.mod:0>a?0:d.max<a?d.max:a)}function d(b){var c=j(),d=c._rgba=[];return b=b.toLowerCase(),o(i,function(a,e){var f,g=e.re.exec(b),h=g&&e.parse(g),i=e.space||"rgba";return h?(f=c[i](h),c[k[i].cache]=f[k[i].cache],d=c._rgba=f._rgba,!1):void 0}),d.length?("0,0,0,0"===d.join()&&a.extend(d,f.transparent),c):f[b]}function e(a,b,c){return c=(c+1)%1,1>6*c?a+(b-a)*c*6:1>2*c?b:2>3*c?a+(b-a)*(2/3-c)*6:a}var f,g="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",h=/^([\-+])=\s*(\d+\.?\d*)/,i=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(a){return[a[1],a[2],a[3],a[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(a){return[2.55*a[1],2.55*a[2],2.55*a[3],a[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(a){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(a){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(a){return[a[1],a[2]/100,a[3]/100,a[4]]}}],j=a.Color=function(b,c,d,e){return new a.Color.fn.parse(b,c,d,e)},k={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},l={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},m=j.support={},n=a("<p>")[0],o=a.each;n.style.cssText="background-color:rgba(1,1,1,.5)",m.rgba=n.style.backgroundColor.indexOf("rgba")>-1,o(k,function(a,b){b.cache="_"+a,b.props.alpha={idx:3,type:"percent",def:1}}),j.fn=a.extend(j.prototype,{parse:function(e,g,h,i){if(e===b)return this._rgba=[null,null,null,null],this;(e.jquery||e.nodeType)&&(e=a(e).css(g),g=b);var l=this,m=a.type(e),n=this._rgba=[];return g!==b&&(e=[e,g,h,i],m="array"),"string"===m?this.parse(d(e)||f._default):"array"===m?(o(k.rgba.props,function(a,b){n[b.idx]=c(e[b.idx],b)}),this):"object"===m?(e instanceof j?o(k,function(a,b){e[b.cache]&&(l[b.cache]=e[b.cache].slice())}):o(k,function(b,d){var f=d.cache;o(d.props,function(a,b){if(!l[f]&&d.to){if("alpha"===a||null==e[a])return;l[f]=d.to(l._rgba)}l[f][b.idx]=c(e[a],b,!0)}),l[f]&&a.inArray(null,l[f].slice(0,3))<0&&(l[f][3]=1,d.from&&(l._rgba=d.from(l[f])))}),this):void 0},is:function(a){var b=j(a),c=!0,d=this;return o(k,function(a,e){var f,g=b[e.cache];return g&&(f=d[e.cache]||e.to&&e.to(d._rgba)||[],o(e.props,function(a,b){return null!=g[b.idx]?c=g[b.idx]===f[b.idx]:void 0})),c}),c},_space:function(){var a=[],b=this;return o(k,function(c,d){b[d.cache]&&a.push(c)}),a.pop()},transition:function(a,b){var d=j(a),e=d._space(),f=k[e],g=0===this.alpha()?j("transparent"):this,h=g[f.cache]||f.to(g._rgba),i=h.slice();return d=d[f.cache],o(f.props,function(a,e){var f=e.idx,g=h[f],j=d[f],k=l[e.type]||{};null!==j&&(null===g?i[f]=j:(k.mod&&(j-g>k.mod/2?g+=k.mod:g-j>k.mod/2&&(g-=k.mod)),i[f]=c((j-g)*b+g,e)))}),this[e](i)},blend:function(b){if(1===this._rgba[3])return this;var c=this._rgba.slice(),d=c.pop(),e=j(b)._rgba;return j(a.map(c,function(a,b){return(1-d)*e[b]+d*a}))},toRgbaString:function(){var b="rgba(",c=a.map(this._rgba,function(a,b){return null==a?b>2?1:0:a});return 1===c[3]&&(c.pop(),b="rgb("),b+c.join()+")"},toHslaString:function(){var b="hsla(",c=a.map(this.hsla(),function(a,b){return null==a&&(a=b>2?1:0),b&&3>b&&(a=Math.round(100*a)+"%"),a});return 1===c[3]&&(c.pop(),b="hsl("),b+c.join()+")"},toHexString:function(b){var c=this._rgba.slice(),d=c.pop();return b&&c.push(~~(255*d)),"#"+a.map(c,function(a){return a=(a||0).toString(16),1===a.length?"0"+a:a}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),j.fn.parse.prototype=j.fn,k.hsla.to=function(a){if(null==a[0]||null==a[1]||null==a[2])return[null,null,null,a[3]];var b,c,d=a[0]/255,e=a[1]/255,f=a[2]/255,g=a[3],h=Math.max(d,e,f),i=Math.min(d,e,f),j=h-i,k=h+i,l=.5*k;return b=i===h?0:d===h?60*(e-f)/j+360:e===h?60*(f-d)/j+120:60*(d-e)/j+240,c=0===j?0:.5>=l?j/k:j/(2-k),[Math.round(b)%360,c,l,null==g?1:g]},k.hsla.from=function(a){if(null==a[0]||null==a[1]||null==a[2])return[null,null,null,a[3]];var b=a[0]/360,c=a[1],d=a[2],f=a[3],g=.5>=d?d*(1+c):d+c-d*c,h=2*d-g;return[Math.round(255*e(h,g,b+1/3)),Math.round(255*e(h,g,b)),Math.round(255*e(h,g,b-1/3)),f]},o(k,function(d,e){var f=e.props,g=e.cache,i=e.to,k=e.from;j.fn[d]=function(d){if(i&&!this[g]&&(this[g]=i(this._rgba)),d===b)return this[g].slice();var e,h=a.type(d),l="array"===h||"object"===h?d:arguments,m=this[g].slice();return o(f,function(a,b){var d=l["object"===h?a:b.idx];null==d&&(d=m[b.idx]),m[b.idx]=c(d,b)}),k?(e=j(k(m)),e[g]=m,e):j(m)},o(f,function(b,c){j.fn[b]||(j.fn[b]=function(e){var f,g=a.type(e),i="alpha"===b?this._hsla?"hsla":"rgba":d,j=this[i](),k=j[c.idx];return"undefined"===g?k:("function"===g&&(e=e.call(this,k),g=a.type(e)),null==e&&c.empty?this:("string"===g&&(f=h.exec(e),f&&(e=k+parseFloat(f[2])*("+"===f[1]?1:-1))),j[c.idx]=e,this[i](j)))})})}),j.hook=function(b){var c=b.split(" ");o(c,function(b,c){a.cssHooks[c]={set:function(b,e){var f,g,h="";if("transparent"!==e&&("string"!==a.type(e)||(f=d(e)))){if(e=j(f||e),!m.rgba&&1!==e._rgba[3]){for(g="backgroundColor"===c?b.parentNode:b;(""===h||"transparent"===h)&&g&&g.style;)try{h=a.css(g,"backgroundColor"),g=g.parentNode}catch(i){}e=e.blend(h&&"transparent"!==h?h:"_default")}e=e.toRgbaString()}try{b.style[c]=e}catch(i){}}},a.fx.step[c]=function(b){b.colorInit||(b.start=j(b.elem,c),b.end=j(b.end),b.colorInit=!0),a.cssHooks[c].set(b.elem,b.start.transition(b.end,b.pos))}})},j.hook(g),a.cssHooks.borderColor={expand:function(a){var b={};return o(["Top","Right","Bottom","Left"],function(c,d){b["border"+d+"Color"]=a}),b}},f=a.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(t),function(){function b(b){var c,d,e=b.ownerDocument.defaultView?b.ownerDocument.defaultView.getComputedStyle(b,null):b.currentStyle,f={};if(e&&e.length&&e[0]&&e[e[0]])for(d=e.length;d--;)c=e[d],"string"==typeof e[c]&&(f[a.camelCase(c)]=e[c]);else for(c in e)"string"==typeof e[c]&&(f[c]=e[c]);return f}function c(b,c){var d,f,g={};for(d in c)f=c[d],b[d]!==f&&(e[d]||(a.fx.step[d]||!isNaN(parseFloat(f)))&&(g[d]=f));return g}var d=["add","remove","toggle"],e={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(b,c){a.fx.step[c]=function(a){("none"!==a.end&&!a.setAttr||1===a.pos&&!a.setAttr)&&(t.style(a.elem,c,a.end),a.setAttr=!0)}}),a.fn.addBack||(a.fn.addBack=function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}),a.effects.animateClass=function(e,f,g,h){var i=a.speed(f,g,h);return this.queue(function(){var f,g=a(this),h=g.attr("class")||"",j=i.children?g.find("*").addBack():g;j=j.map(function(){var c=a(this);return{el:c,start:b(this)}}),f=function(){a.each(d,function(a,b){e[b]&&g[b+"Class"](e[b])})},f(),j=j.map(function(){return this.end=b(this.el[0]),this.diff=c(this.start,this.end),this}),g.attr("class",h),j=j.map(function(){var b=this,c=a.Deferred(),d=a.extend({},i,{queue:!1,complete:function(){c.resolve(b)}});return this.el.animate(this.diff,d),
-c.promise()}),a.when.apply(a,j.get()).done(function(){f(),a.each(arguments,function(){var b=this.el;a.each(this.diff,function(a){b.css(a,"")})}),i.complete.call(g[0])})})},a.fn.extend({addClass:function(b){return function(c,d,e,f){return d?a.effects.animateClass.call(this,{add:c},d,e,f):b.apply(this,arguments)}}(a.fn.addClass),removeClass:function(b){return function(c,d,e,f){return arguments.length>1?a.effects.animateClass.call(this,{remove:c},d,e,f):b.apply(this,arguments)}}(a.fn.removeClass),toggleClass:function(b){return function(c,d,e,f,g){return"boolean"==typeof d||void 0===d?e?a.effects.animateClass.call(this,d?{add:c}:{remove:c},e,f,g):b.apply(this,arguments):a.effects.animateClass.call(this,{toggle:c},d,e,f)}}(a.fn.toggleClass),switchClass:function(b,c,d,e,f){return a.effects.animateClass.call(this,{add:c,remove:b},d,e,f)}})}(),function(){function b(b,c,d,e){return a.isPlainObject(b)&&(c=b,b=b.effect),b={effect:b},null==c&&(c={}),a.isFunction(c)&&(e=c,d=null,c={}),("number"==typeof c||a.fx.speeds[c])&&(e=d,d=c,c={}),a.isFunction(d)&&(e=d,d=null),c&&a.extend(b,c),d=d||c.duration,b.duration=a.fx.off?0:"number"==typeof d?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,b.complete=e||c.complete,b}function c(b){return!b||"number"==typeof b||a.fx.speeds[b]?!0:"string"!=typeof b||a.effects.effect[b]?a.isFunction(b)?!0:"object"!=typeof b||b.effect?!1:!0:!0}a.extend(a.effects,{version:"1.11.4",save:function(a,b){for(var c=0;c<b.length;c++)null!==b[c]&&a.data(s+b[c],a[0].style[b[c]])},restore:function(a,b){var c,d;for(d=0;d<b.length;d++)null!==b[d]&&(c=a.data(s+b[d]),void 0===c&&(c=""),a.css(b[d],c))},setMode:function(a,b){return"toggle"===b&&(b=a.is(":hidden")?"show":"hide"),b},getBaseline:function(a,b){var c,d;switch(a[0]){case"top":c=0;break;case"middle":c=.5;break;case"bottom":c=1;break;default:c=a[0]/b.height}switch(a[1]){case"left":d=0;break;case"center":d=.5;break;case"right":d=1;break;default:d=a[1]/b.width}return{x:d,y:c}},createWrapper:function(b){if(b.parent().is(".ui-effects-wrapper"))return b.parent();var c={width:b.outerWidth(!0),height:b.outerHeight(!0),"float":b.css("float")},d=a("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:b.width(),height:b.height()},f=document.activeElement;try{f.id}catch(g){f=document.body}return b.wrap(d),(b[0]===f||a.contains(b[0],f))&&a(f).focus(),d=b.parent(),"static"===b.css("position")?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),b.css(e),d.css(c).show()},removeWrapper:function(b){var c=document.activeElement;return b.parent().is(".ui-effects-wrapper")&&(b.parent().replaceWith(b),(b[0]===c||a.contains(b[0],c))&&a(c).focus()),b},setTransition:function(b,c,d,e){return e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])}),e}}),a.fn.extend({effect:function(){function c(b){function c(){a.isFunction(f)&&f.call(e[0]),a.isFunction(b)&&b()}var e=a(this),f=d.complete,h=d.mode;(e.is(":hidden")?"hide"===h:"show"===h)?(e[h](),c()):g.call(e[0],d,c)}var d=b.apply(this,arguments),e=d.mode,f=d.queue,g=a.effects.effect[d.effect];return a.fx.off||!g?e?this[e](d.duration,d.complete):this.each(function(){d.complete&&d.complete.call(this)}):f===!1?this.each(c):this.queue(f||"fx",c)},show:function(a){return function(d){if(c(d))return a.apply(this,arguments);var e=b.apply(this,arguments);return e.mode="show",this.effect.call(this,e)}}(a.fn.show),hide:function(a){return function(d){if(c(d))return a.apply(this,arguments);var e=b.apply(this,arguments);return e.mode="hide",this.effect.call(this,e)}}(a.fn.hide),toggle:function(a){return function(d){if(c(d)||"boolean"==typeof d)return a.apply(this,arguments);var e=b.apply(this,arguments);return e.mode="toggle",this.effect.call(this,e)}}(a.fn.toggle),cssUnit:function(b){var c=this.css(b),d=[];return a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])}),d}})}(),function(){var b={};a.each(["Quad","Cubic","Quart","Quint","Expo"],function(a,c){b[c]=function(b){return Math.pow(b,a+2)}}),a.extend(b,{Sine:function(a){return 1-Math.cos(a*Math.PI/2)},Circ:function(a){return 1-Math.sqrt(1-a*a)},Elastic:function(a){return 0===a||1===a?a:-Math.pow(2,8*(a-1))*Math.sin((80*(a-1)-7.5)*Math.PI/15)},Back:function(a){return a*a*(3*a-2)},Bounce:function(a){for(var b,c=4;a<((b=Math.pow(2,--c))-1)/11;);return 1/Math.pow(4,3-c)-7.5625*Math.pow((3*b-2)/22-a,2)}}),a.each(b,function(b,c){a.easing["easeIn"+b]=c,a.easing["easeOut"+b]=function(a){return 1-c(1-a)},a.easing["easeInOut"+b]=function(a){return.5>a?c(2*a)/2:1-c(-2*a+2)/2}})}();a.effects,a.effects.effect.blind=function(b,c){var d,e,f,g=a(this),h=/up|down|vertical/,i=/up|left|vertical|horizontal/,j=["position","top","bottom","left","right","height","width"],k=a.effects.setMode(g,b.mode||"hide"),l=b.direction||"up",m=h.test(l),n=m?"height":"width",o=m?"top":"left",p=i.test(l),q={},r="show"===k;g.parent().is(".ui-effects-wrapper")?a.effects.save(g.parent(),j):a.effects.save(g,j),g.show(),d=a.effects.createWrapper(g).css({overflow:"hidden"}),e=d[n](),f=parseFloat(d.css(o))||0,q[n]=r?e:0,p||(g.css(m?"bottom":"right",0).css(m?"top":"left","auto").css({position:"absolute"}),q[o]=r?f:e+f),r&&(d.css(n,0),p||d.css(o,f+e)),d.animate(q,{duration:b.duration,easing:b.easing,queue:!1,complete:function(){"hide"===k&&g.hide(),a.effects.restore(g,j),a.effects.removeWrapper(g),c()}})},a.effects.effect.bounce=function(b,c){var d,e,f,g=a(this),h=["position","top","bottom","left","right","height","width"],i=a.effects.setMode(g,b.mode||"effect"),j="hide"===i,k="show"===i,l=b.direction||"up",m=b.distance,n=b.times||5,o=2*n+(k||j?1:0),p=b.duration/o,q=b.easing,r="up"===l||"down"===l?"top":"left",s="up"===l||"left"===l,t=g.queue(),u=t.length;for((k||j)&&h.push("opacity"),a.effects.save(g,h),g.show(),a.effects.createWrapper(g),m||(m=g["top"===r?"outerHeight":"outerWidth"]()/3),k&&(f={opacity:1},f[r]=0,g.css("opacity",0).css(r,s?2*-m:2*m).animate(f,p,q)),j&&(m/=Math.pow(2,n-1)),f={},f[r]=0,d=0;n>d;d++)e={},e[r]=(s?"-=":"+=")+m,g.animate(e,p,q).animate(f,p,q),m=j?2*m:m/2;j&&(e={opacity:0},e[r]=(s?"-=":"+=")+m,g.animate(e,p,q)),g.queue(function(){j&&g.hide(),a.effects.restore(g,h),a.effects.removeWrapper(g),c()}),u>1&&t.splice.apply(t,[1,0].concat(t.splice(u,o+1))),g.dequeue()},a.effects.effect.clip=function(b,c){var d,e,f,g=a(this),h=["position","top","bottom","left","right","height","width"],i=a.effects.setMode(g,b.mode||"hide"),j="show"===i,k=b.direction||"vertical",l="vertical"===k,m=l?"height":"width",n=l?"top":"left",o={};a.effects.save(g,h),g.show(),d=a.effects.createWrapper(g).css({overflow:"hidden"}),e="IMG"===g[0].tagName?d:g,f=e[m](),j&&(e.css(m,0),e.css(n,f/2)),o[m]=j?f:0,o[n]=j?0:f/2,e.animate(o,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){j||g.hide(),a.effects.restore(g,h),a.effects.removeWrapper(g),c()}})},a.effects.effect.drop=function(b,c){var d,e=a(this),f=["position","top","bottom","left","right","opacity","height","width"],g=a.effects.setMode(e,b.mode||"hide"),h="show"===g,i=b.direction||"left",j="up"===i||"down"===i?"top":"left",k="up"===i||"left"===i?"pos":"neg",l={opacity:h?1:0};a.effects.save(e,f),e.show(),a.effects.createWrapper(e),d=b.distance||e["top"===j?"outerHeight":"outerWidth"](!0)/2,h&&e.css("opacity",0).css(j,"pos"===k?-d:d),l[j]=(h?"pos"===k?"+=":"-=":"pos"===k?"-=":"+=")+d,e.animate(l,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){"hide"===g&&e.hide(),a.effects.restore(e,f),a.effects.removeWrapper(e),c()}})},a.effects.effect.explode=function(b,c){function d(){t.push(this),t.length===l*m&&e()}function e(){n.css({visibility:"visible"}),a(t).remove(),p||n.hide(),c()}var f,g,h,i,j,k,l=b.pieces?Math.round(Math.sqrt(b.pieces)):3,m=l,n=a(this),o=a.effects.setMode(n,b.mode||"hide"),p="show"===o,q=n.show().css("visibility","hidden").offset(),r=Math.ceil(n.outerWidth()/m),s=Math.ceil(n.outerHeight()/l),t=[];for(f=0;l>f;f++)for(i=q.top+f*s,k=f-(l-1)/2,g=0;m>g;g++)h=q.left+g*r,j=g-(m-1)/2,n.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-g*r,top:-f*s}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:r,height:s,left:h+(p?j*r:0),top:i+(p?k*s:0),opacity:p?0:1}).animate({left:h+(p?0:j*r),top:i+(p?0:k*s),opacity:p?1:0},b.duration||500,b.easing,d)},a.effects.effect.fade=function(b,c){var d=a(this),e=a.effects.setMode(d,b.mode||"toggle");d.animate({opacity:e},{queue:!1,duration:b.duration,easing:b.easing,complete:c})},a.effects.effect.fold=function(b,c){var d,e,f=a(this),g=["position","top","bottom","left","right","height","width"],h=a.effects.setMode(f,b.mode||"hide"),i="show"===h,j="hide"===h,k=b.size||15,l=/([0-9]+)%/.exec(k),m=!!b.horizFirst,n=i!==m,o=n?["width","height"]:["height","width"],p=b.duration/2,q={},r={};a.effects.save(f,g),f.show(),d=a.effects.createWrapper(f).css({overflow:"hidden"}),e=n?[d.width(),d.height()]:[d.height(),d.width()],l&&(k=parseInt(l[1],10)/100*e[j?0:1]),i&&d.css(m?{height:0,width:k}:{height:k,width:0}),q[o[0]]=i?e[0]:k,r[o[1]]=i?e[1]:0,d.animate(q,p,b.easing).animate(r,p,b.easing,function(){j&&f.hide(),a.effects.restore(f,g),a.effects.removeWrapper(f),c()})},a.effects.effect.highlight=function(b,c){var d=a(this),e=["backgroundImage","backgroundColor","opacity"],f=a.effects.setMode(d,b.mode||"show"),g={backgroundColor:d.css("backgroundColor")};"hide"===f&&(g.opacity=0),a.effects.save(d,e),d.show().css({backgroundImage:"none",backgroundColor:b.color||"#ffff99"}).animate(g,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){"hide"===f&&d.hide(),a.effects.restore(d,e),c()}})},a.effects.effect.size=function(b,c){var d,e,f,g=a(this),h=["position","top","bottom","left","right","width","height","overflow","opacity"],i=["position","top","bottom","left","right","overflow","opacity"],j=["width","height","overflow"],k=["fontSize"],l=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],m=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],n=a.effects.setMode(g,b.mode||"effect"),o=b.restore||"effect"!==n,p=b.scale||"both",q=b.origin||["middle","center"],r=g.css("position"),s=o?h:i,t={height:0,width:0,outerHeight:0,outerWidth:0};"show"===n&&g.show(),d={height:g.height(),width:g.width(),outerHeight:g.outerHeight(),outerWidth:g.outerWidth()},"toggle"===b.mode&&"show"===n?(g.from=b.to||t,g.to=b.from||d):(g.from=b.from||("show"===n?t:d),g.to=b.to||("hide"===n?t:d)),f={from:{y:g.from.height/d.height,x:g.from.width/d.width},to:{y:g.to.height/d.height,x:g.to.width/d.width}},("box"===p||"both"===p)&&(f.from.y!==f.to.y&&(s=s.concat(l),g.from=a.effects.setTransition(g,l,f.from.y,g.from),g.to=a.effects.setTransition(g,l,f.to.y,g.to)),f.from.x!==f.to.x&&(s=s.concat(m),g.from=a.effects.setTransition(g,m,f.from.x,g.from),g.to=a.effects.setTransition(g,m,f.to.x,g.to))),("content"===p||"both"===p)&&f.from.y!==f.to.y&&(s=s.concat(k).concat(j),g.from=a.effects.setTransition(g,k,f.from.y,g.from),g.to=a.effects.setTransition(g,k,f.to.y,g.to)),a.effects.save(g,s),g.show(),a.effects.createWrapper(g),g.css("overflow","hidden").css(g.from),q&&(e=a.effects.getBaseline(q,d),g.from.top=(d.outerHeight-g.outerHeight())*e.y,g.from.left=(d.outerWidth-g.outerWidth())*e.x,g.to.top=(d.outerHeight-g.to.outerHeight)*e.y,g.to.left=(d.outerWidth-g.to.outerWidth)*e.x),g.css(g.from),("content"===p||"both"===p)&&(l=l.concat(["marginTop","marginBottom"]).concat(k),m=m.concat(["marginLeft","marginRight"]),j=h.concat(l).concat(m),g.find("*[width]").each(function(){var c=a(this),d={height:c.height(),width:c.width(),outerHeight:c.outerHeight(),outerWidth:c.outerWidth()};o&&a.effects.save(c,j),c.from={height:d.height*f.from.y,width:d.width*f.from.x,outerHeight:d.outerHeight*f.from.y,outerWidth:d.outerWidth*f.from.x},c.to={height:d.height*f.to.y,width:d.width*f.to.x,outerHeight:d.height*f.to.y,outerWidth:d.width*f.to.x},f.from.y!==f.to.y&&(c.from=a.effects.setTransition(c,l,f.from.y,c.from),c.to=a.effects.setTransition(c,l,f.to.y,c.to)),f.from.x!==f.to.x&&(c.from=a.effects.setTransition(c,m,f.from.x,c.from),c.to=a.effects.setTransition(c,m,f.to.x,c.to)),c.css(c.from),c.animate(c.to,b.duration,b.easing,function(){o&&a.effects.restore(c,j)})})),g.animate(g.to,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){0===g.to.opacity&&g.css("opacity",g.from.opacity),"hide"===n&&g.hide(),a.effects.restore(g,s),o||("static"===r?g.css({position:"relative",top:g.to.top,left:g.to.left}):a.each(["top","left"],function(a,b){g.css(b,function(b,c){var d=parseInt(c,10),e=a?g.to.left:g.to.top;return"auto"===c?e+"px":d+e+"px"})})),a.effects.removeWrapper(g),c()}})},a.effects.effect.scale=function(b,c){var d=a(this),e=a.extend(!0,{},b),f=a.effects.setMode(d,b.mode||"effect"),g=parseInt(b.percent,10)||(0===parseInt(b.percent,10)?0:"hide"===f?0:100),h=b.direction||"both",i=b.origin,j={height:d.height(),width:d.width(),outerHeight:d.outerHeight(),outerWidth:d.outerWidth()},k={y:"horizontal"!==h?g/100:1,x:"vertical"!==h?g/100:1};e.effect="size",e.queue=!1,e.complete=c,"effect"!==f&&(e.origin=i||["middle","center"],e.restore=!0),e.from=b.from||("show"===f?{height:0,width:0,outerHeight:0,outerWidth:0}:j),e.to={height:j.height*k.y,width:j.width*k.x,outerHeight:j.outerHeight*k.y,outerWidth:j.outerWidth*k.x},e.fade&&("show"===f&&(e.from.opacity=0,e.to.opacity=1),"hide"===f&&(e.from.opacity=1,e.to.opacity=0)),d.effect(e)},a.effects.effect.puff=function(b,c){var d=a(this),e=a.effects.setMode(d,b.mode||"hide"),f="hide"===e,g=parseInt(b.percent,10)||150,h=g/100,i={height:d.height(),width:d.width(),outerHeight:d.outerHeight(),outerWidth:d.outerWidth()};a.extend(b,{effect:"scale",queue:!1,fade:!0,mode:e,complete:c,percent:f?g:100,from:f?i:{height:i.height*h,width:i.width*h,outerHeight:i.outerHeight*h,outerWidth:i.outerWidth*h}}),d.effect(b)},a.effects.effect.pulsate=function(b,c){var d,e=a(this),f=a.effects.setMode(e,b.mode||"show"),g="show"===f,h="hide"===f,i=g||"hide"===f,j=2*(b.times||5)+(i?1:0),k=b.duration/j,l=0,m=e.queue(),n=m.length;for((g||!e.is(":visible"))&&(e.css("opacity",0).show(),l=1),d=1;j>d;d++)e.animate({opacity:l},k,b.easing),l=1-l;e.animate({opacity:l},k,b.easing),e.queue(function(){h&&e.hide(),c()}),n>1&&m.splice.apply(m,[1,0].concat(m.splice(n,j+1))),e.dequeue()},a.effects.effect.shake=function(b,c){var d,e=a(this),f=["position","top","bottom","left","right","height","width"],g=a.effects.setMode(e,b.mode||"effect"),h=b.direction||"left",i=b.distance||20,j=b.times||3,k=2*j+1,l=Math.round(b.duration/k),m="up"===h||"down"===h?"top":"left",n="up"===h||"left"===h,o={},p={},q={},r=e.queue(),s=r.length;for(a.effects.save(e,f),e.show(),a.effects.createWrapper(e),o[m]=(n?"-=":"+=")+i,p[m]=(n?"+=":"-=")+2*i,q[m]=(n?"-=":"+=")+2*i,e.animate(o,l,b.easing),d=1;j>d;d++)e.animate(p,l,b.easing).animate(q,l,b.easing);e.animate(p,l,b.easing).animate(o,l/2,b.easing).queue(function(){"hide"===g&&e.hide(),a.effects.restore(e,f),a.effects.removeWrapper(e),c()}),s>1&&r.splice.apply(r,[1,0].concat(r.splice(s,k+1))),e.dequeue()},a.effects.effect.slide=function(b,c){var d,e=a(this),f=["position","top","bottom","left","right","width","height"],g=a.effects.setMode(e,b.mode||"show"),h="show"===g,i=b.direction||"left",j="up"===i||"down"===i?"top":"left",k="up"===i||"left"===i,l={};a.effects.save(e,f),e.show(),d=b.distance||e["top"===j?"outerHeight":"outerWidth"](!0),a.effects.createWrapper(e).css({overflow:"hidden"}),h&&e.css(j,k?isNaN(d)?"-"+d:-d:d),l[j]=(h?k?"+=":"-=":k?"-=":"+=")+d,e.animate(l,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){"hide"===g&&e.hide(),a.effects.restore(e,f),a.effects.removeWrapper(e),c()}})},a.effects.effect.transfer=function(b,c){var d=a(this),e=a(b.to),f="fixed"===e.css("position"),g=a("body"),h=f?g.scrollTop():0,i=f?g.scrollLeft():0,j=e.offset(),k={top:j.top-h,left:j.left-i,height:e.innerHeight(),width:e.innerWidth()},l=d.offset(),m=a("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(b.className).css({top:l.top-h,left:l.left-i,height:d.innerHeight(),width:d.innerWidth(),position:f?"fixed":"absolute"}).animate(k,b.duration,b.easing,function(){m.remove(),c()})},a.widget("ui.progressbar",{version:"1.11.4",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(a){return void 0===a?this.options.value:(this.options.value=this._constrainedValue(a),void this._refreshValue())},_constrainedValue:function(a){return void 0===a&&(a=this.options.value),this.indeterminate=a===!1,"number"!=typeof a&&(a=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,a))},_setOptions:function(a){var b=a.value;delete a.value,this._super(a),this.options.value=this._constrainedValue(b),this._refreshValue()},_setOption:function(a,b){"max"===a&&(b=Math.max(this.min,b)),"disabled"===a&&this.element.toggleClass("ui-state-disabled",!!b).attr("aria-disabled",b),this._super(a,b)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var b=this.options.value,c=this._percentage();this.valueDiv.toggle(this.indeterminate||b>this.min).toggleClass("ui-corner-right",b===this.options.max).width(c.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=a("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":b}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==b&&(this.oldValue=b,this._trigger("change")),b===this.options.max&&this._trigger("complete")}}),a.widget("ui.selectable",a.ui.mouse,{version:"1.11.4",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var b,c=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){b=a(c.options.filter,c.element[0]),b.addClass("ui-selectee"),b.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=b.addClass("ui-selectee"),this._mouseInit(),this.helper=a("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(b){var c=this,d=this.options;this.opos=[b.pageX,b.pageY],this.options.disabled||(this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.pageX,top:b.pageY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,b.metaKey||b.ctrlKey||(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().addBack().each(function(){var d,e=a.data(this,"selectable-item");return e?(d=!b.metaKey&&!b.ctrlKey||!e.$element.hasClass("ui-selected"),e.$element.removeClass(d?"ui-unselecting":"ui-selected").addClass(d?"ui-selecting":"ui-unselecting"),e.unselecting=!d,e.selecting=d,e.selected=d,d?c._trigger("selecting",b,{selecting:e.element}):c._trigger("unselecting",b,{unselecting:e.element}),!1):void 0}))},_mouseDrag:function(b){if(this.dragged=!0,!this.options.disabled){var c,d=this,e=this.options,f=this.opos[0],g=this.opos[1],h=b.pageX,i=b.pageY;return f>h&&(c=h,h=f,f=c),g>i&&(c=i,i=g,g=c),this.helper.css({left:f,top:g,width:h-f,height:i-g}),this.selectees.each(function(){var c=a.data(this,"selectable-item"),j=!1;c&&c.element!==d.element[0]&&("touch"===e.tolerance?j=!(c.left>h||c.right<f||c.top>i||c.bottom<g):"fit"===e.tolerance&&(j=c.left>f&&c.right<h&&c.top>g&&c.bottom<i),j?(c.selected&&(c.$element.removeClass("ui-selected"),c.selected=!1),c.unselecting&&(c.$element.removeClass("ui-unselecting"),c.unselecting=!1),c.selecting||(c.$element.addClass("ui-selecting"),c.selecting=!0,d._trigger("selecting",b,{selecting:c.element}))):(c.selecting&&((b.metaKey||b.ctrlKey)&&c.startselected?(c.$element.removeClass("ui-selecting"),c.selecting=!1,c.$element.addClass("ui-selected"),c.selected=!0):(c.$element.removeClass("ui-selecting"),c.selecting=!1,c.startselected&&(c.$element.addClass("ui-unselecting"),c.unselecting=!0),d._trigger("unselecting",b,{unselecting:c.element}))),c.selected&&(b.metaKey||b.ctrlKey||c.startselected||(c.$element.removeClass("ui-selected"),c.selected=!1,c.$element.addClass("ui-unselecting"),c.unselecting=!0,d._trigger("unselecting",b,{unselecting:c.element})))))}),!1}},_mouseStop:function(b){var c=this;return this.dragged=!1,a(".ui-unselecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");d.$element.removeClass("ui-unselecting"),d.unselecting=!1,d.startselected=!1,c._trigger("unselected",b,{unselected:d.element})}),a(".ui-selecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected"),d.selecting=!1,d.selected=!0,d.startselected=!0,c._trigger("selected",b,{selected:d.element})}),this._trigger("stop",b),this.helper.remove(),!1}}),a.widget("ui.selectmenu",{version:"1.11.4",defaultElement:"<select>",options:{appendTo:null,disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:null,change:null,close:null,focus:null,open:null,select:null},_create:function(){var a=this.element.uniqueId().attr("id");this.ids={element:a,button:a+"-button",menu:a+"-menu"},this._drawButton(),this._drawMenu(),this.options.disabled&&this.disable()},_drawButton:function(){var b=this;this.label=a("label[for='"+this.ids.element+"']").attr("for",this.ids.button),this._on(this.label,{click:function(a){this.button.focus(),a.preventDefault()}}),this.element.hide(),this.button=a("<span>",{"class":"ui-selectmenu-button ui-widget ui-state-default ui-corner-all",tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true"}).insertAfter(this.element),a("<span>",{"class":"ui-icon "+this.options.icons.button}).prependTo(this.button),this.buttonText=a("<span>",{"class":"ui-selectmenu-text"}).appendTo(this.button),this._setText(this.buttonText,this.element.find("option:selected").text()),this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){b.menuItems||b._refreshMenu()}),this._hoverable(this.button),this._focusable(this.button)},_drawMenu:function(){var b=this;this.menu=a("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=a("<div>",{"class":"ui-selectmenu-menu ui-front"}).append(this.menu).appendTo(this._appendTo()),this.menuInstance=this.menu.menu({role:"listbox",select:function(a,c){a.preventDefault(),b._setSelection(),b._select(c.item.data("ui-selectmenu-item"),a)},focus:function(a,c){var d=c.item.data("ui-selectmenu-item");null!=b.focusIndex&&d.index!==b.focusIndex&&(b._trigger("focus",a,{item:d}),b.isOpen||b._select(d,a)),b.focusIndex=d.index,b.button.attr("aria-activedescendant",b.menuItems.eq(d.index).attr("id"))}}).menu("instance"),this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this._setText(this.buttonText,this._getSelectedItem().text()),this.options.width||this._resizeButton()},_refreshMenu:function(){this.menu.empty();var a,b=this.element.find("option");b.length&&(this._parseOptions(b),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup"),a=this._getSelectedItem(),this.menuInstance.focus(null,a),this._setAria(a.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(a){this.options.disabled||(this.menuItems?(this.menu.find(".ui-state-focus").removeClass("ui-state-focus"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",a))},_position:function(){this.menuWrap.position(a.extend({of:this.button},this.options.position))},close:function(a){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",a))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderMenu:function(b,c){var d=this,e="";a.each(c,function(c,f){f.optgroup!==e&&(a("<li>",{"class":"ui-selectmenu-optgroup ui-menu-divider"+(f.element.parent("optgroup").prop("disabled")?" ui-state-disabled":""),text:f.optgroup}).appendTo(b),e=f.optgroup),d._renderItemData(b,f)})},_renderItemData:function(a,b){return this._renderItem(a,b).data("ui-selectmenu-item",b)},_renderItem:function(b,c){var d=a("<li>");return c.disabled&&d.addClass("ui-state-disabled"),this._setText(d,c.label),d.appendTo(b)},_setText:function(a,b){b?a.text(b):a.html("&#160;")},_move:function(a,b){var c,d,e=".ui-menu-item";this.isOpen?c=this.menuItems.eq(this.focusIndex):(c=this.menuItems.eq(this.element[0].selectedIndex),e+=":not(.ui-state-disabled)"),d="first"===a||"last"===a?c["first"===a?"prevAll":"nextAll"](e).eq(-1):c[a+"All"](e).eq(0),d.length&&this.menuInstance.focus(b,d)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex)},_toggle:function(a){this[this.isOpen?"close":"open"](a)},_setSelection:function(){var a;this.range&&(window.getSelection?(a=window.getSelection(),a.removeAllRanges(),a.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(b){this.isOpen&&(a(b.target).closest(".ui-selectmenu-menu, #"+this.ids.button).length||this.close(b))}},_buttonEvents:{mousedown:function(){var a;window.getSelection?(a=window.getSelection(),a.rangeCount&&(this.range=a.getRangeAt(0))):this.range=document.selection.createRange()},click:function(a){this._setSelection(),this._toggle(a)},keydown:function(b){var c=!0;switch(b.keyCode){case a.ui.keyCode.TAB:case a.ui.keyCode.ESCAPE:this.close(b),c=!1;break;case a.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(b);break;case a.ui.keyCode.UP:b.altKey?this._toggle(b):this._move("prev",b);break;case a.ui.keyCode.DOWN:b.altKey?this._toggle(b):this._move("next",b);break;case a.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(b):this._toggle(b);break;case a.ui.keyCode.LEFT:this._move("prev",b);break;case a.ui.keyCode.RIGHT:this._move("next",b);break;case a.ui.keyCode.HOME:case a.ui.keyCode.PAGE_UP:this._move("first",b);break;case a.ui.keyCode.END:case a.ui.keyCode.PAGE_DOWN:this._move("last",b);break;default:this.menu.trigger(b),c=!1}c&&b.preventDefault()}},_selectFocusedItem:function(a){var b=this.menuItems.eq(this.focusIndex);b.hasClass("ui-state-disabled")||this._select(b.data("ui-selectmenu-item"),a)},_select:function(a,b){var c=this.element[0].selectedIndex;this.element[0].selectedIndex=a.index,this._setText(this.buttonText,a.label),this._setAria(a),this._trigger("select",b,{item:a}),a.index!==c&&this._trigger("change",b,{item:a}),this.close(b)},_setAria:function(a){var b=this.menuItems.eq(a.index).attr("id");this.button.attr({"aria-labelledby":b,"aria-activedescendant":b}),this.menu.attr("aria-activedescendant",b)},_setOption:function(a,b){"icons"===a&&this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(b.button),this._super(a,b),"appendTo"===a&&this.menuWrap.appendTo(this._appendTo()),"disabled"===a&&(this.menuInstance.option("disabled",b),this.button.toggleClass("ui-state-disabled",b).attr("aria-disabled",b),this.element.prop("disabled",b),b?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)),"width"===a&&this._resizeButton()},_appendTo:function(){var b=this.options.appendTo;return b&&(b=b.jquery||b.nodeType?a(b):this.document.find(b).eq(0)),b&&b[0]||(b=this.element.closest(".ui-front")),b.length||(b=this.document[0].body),b},_toggleAttr:function(){this.button.toggleClass("ui-corner-top",this.isOpen).toggleClass("ui-corner-all",!this.isOpen).attr("aria-expanded",this.isOpen),this.menuWrap.toggleClass("ui-selectmenu-open",this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var a=this.options.width;a||(a=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(a)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){return{disabled:this.element.prop("disabled")}},_parseOptions:function(b){var c=[];b.each(function(b,d){var e=a(d),f=e.parent("optgroup");c.push({element:e,index:b,value:e.val(),label:e.text(),optgroup:f.attr("label")||"",disabled:f.prop("disabled")||e.prop("disabled")})}),this.items=c},_destroy:function(){this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.label.attr("for",this.ids.element)}}),a.widget("ui.slider",a.ui.mouse,{version:"1.11.4",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var b,c,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",g=[];for(c=d.values&&d.values.length||1,e.length>c&&(e.slice(c).remove(),e=e.slice(0,c)),b=e.length;c>b;b++)g.push(f);this.handles=e.add(a(g.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(b){a(this).data("ui-slider-handle-index",b)})},_createRange:function(){var b=this.options,c="";b.range?(b.range===!0&&(b.values?b.values.length&&2!==b.values.length?b.values=[b.values[0],b.values[0]]:a.isArray(b.values)&&(b.values=b.values.slice(0)):b.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({
-left:"",bottom:""}):(this.range=a("<div></div>").appendTo(this.element),c="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(c+("min"===b.range||"max"===b.range?" ui-slider-range-"+b.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(b){var c,d,e,f,g,h,i,j,k=this,l=this.options;return l.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),c={x:b.pageX,y:b.pageY},d=this._normValueFromMouse(c),e=this._valueMax()-this._valueMin()+1,this.handles.each(function(b){var c=Math.abs(d-k.values(b));(e>c||e===c&&(b===k._lastChangedValue||k.values(b)===l.min))&&(e=c,f=a(this),g=b)}),h=this._start(b,g),h===!1?!1:(this._mouseSliding=!0,this._handleIndex=g,f.addClass("ui-state-active").focus(),i=f.offset(),j=!a(b.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=j?{left:0,top:0}:{left:b.pageX-i.left-f.width()/2,top:b.pageY-i.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,g,d),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return"horizontal"===this.orientation?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),0>d&&(d=0),"vertical"===this.orientation&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),2===this.options.values.length&&this.options.range===!0&&(0===b&&c>d||1===b&&d>c)&&(c=d),c!==this.values(b)&&(e=this.values(),e[b]=c,f=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e}),d=this.values(b?0:1),f!==!1&&this.values(b,c))):c!==this.value()&&(f=this._trigger("slide",a,{handle:this.handles[b],value:c}),f!==!1&&this.value(c))},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._lastChangedValue=b,this._trigger("change",a,c)}},value:function(a){return arguments.length?(this.options.value=this._trimAlignValue(a),this._refreshValue(),void this._change(null,0)):this._value()},values:function(b,c){var d,e,f;if(arguments.length>1)return this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),void this._change(null,b);if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();for(d=this.options.values,e=arguments[0],f=0;f<d.length;f+=1)d[f]=this._trimAlignValue(e[f]),this._change(null,f);this._refreshValue()},_setOption:function(b,c){var d,e=0;switch("range"===b&&this.options.range===!0&&("min"===c?(this.options.value=this._values(0),this.options.values=null):"max"===c&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),a.isArray(this.options.values)&&(e=this.options.values.length),"disabled"===b&&this.element.toggleClass("ui-state-disabled",!!c),this._super(b,c),b){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue(),this.handles.css("horizontal"===c?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),d=0;e>d;d+=1)this._change(null,d);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c,d;if(arguments.length)return b=this.options.values[a],b=this._trimAlignValue(b);if(this.options.values&&this.options.values.length){for(c=this.options.values.slice(),d=0;d<c.length;d+=1)c[d]=this._trimAlignValue(c[d]);return c}return[]},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return 2*Math.abs(c)>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_calculateNewMax:function(){var a=this.options.max,b=this._valueMin(),c=this.options.step,d=Math.floor(+(a-b).toFixed(this._precision())/c)*c;a=d+b,this.max=parseFloat(a.toFixed(this._precision()))},_precision:function(){var a=this._precisionOf(this.options.step);return null!==this.options.min&&(a=Math.max(a,this._precisionOf(this.options.min))),a},_precisionOf:function(a){var b=a.toString(),c=b.indexOf(".");return-1===c?0:b.length-c-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshValue:function(){var b,c,d,e,f,g=this.options.range,h=this.options,i=this,j=this._animateOff?!1:h.animate,k={};this.options.values&&this.options.values.length?this.handles.each(function(d){c=(i.values(d)-i._valueMin())/(i._valueMax()-i._valueMin())*100,k["horizontal"===i.orientation?"left":"bottom"]=c+"%",a(this).stop(1,1)[j?"animate":"css"](k,h.animate),i.options.range===!0&&("horizontal"===i.orientation?(0===d&&i.range.stop(1,1)[j?"animate":"css"]({left:c+"%"},h.animate),1===d&&i.range[j?"animate":"css"]({width:c-b+"%"},{queue:!1,duration:h.animate})):(0===d&&i.range.stop(1,1)[j?"animate":"css"]({bottom:c+"%"},h.animate),1===d&&i.range[j?"animate":"css"]({height:c-b+"%"},{queue:!1,duration:h.animate}))),b=c}):(d=this.value(),e=this._valueMin(),f=this._valueMax(),c=f!==e?(d-e)/(f-e)*100:0,k["horizontal"===this.orientation?"left":"bottom"]=c+"%",this.handle.stop(1,1)[j?"animate":"css"](k,h.animate),"min"===g&&"horizontal"===this.orientation&&this.range.stop(1,1)[j?"animate":"css"]({width:c+"%"},h.animate),"max"===g&&"horizontal"===this.orientation&&this.range[j?"animate":"css"]({width:100-c+"%"},{queue:!1,duration:h.animate}),"min"===g&&"vertical"===this.orientation&&this.range.stop(1,1)[j?"animate":"css"]({height:c+"%"},h.animate),"max"===g&&"vertical"===this.orientation&&this.range[j?"animate":"css"]({height:100-c+"%"},{queue:!1,duration:h.animate}))},_handleEvents:{keydown:function(b){var c,d,e,f,g=a(b.target).data("ui-slider-handle-index");switch(b.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(b.preventDefault(),!this._keySliding&&(this._keySliding=!0,a(b.target).addClass("ui-state-active"),c=this._start(b,g),c===!1))return}switch(f=this.options.step,d=e=this.options.values&&this.options.values.length?this.values(g):this.value(),b.keyCode){case a.ui.keyCode.HOME:e=this._valueMin();break;case a.ui.keyCode.END:e=this._valueMax();break;case a.ui.keyCode.PAGE_UP:e=this._trimAlignValue(d+(this._valueMax()-this._valueMin())/this.numPages);break;case a.ui.keyCode.PAGE_DOWN:e=this._trimAlignValue(d-(this._valueMax()-this._valueMin())/this.numPages);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(d===this._valueMax())return;e=this._trimAlignValue(d+f);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(d===this._valueMin())return;e=this._trimAlignValue(d-f)}this._slide(b,g,e)},keyup:function(b){var c=a(b.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(b,c),this._change(b,c),a(b.target).removeClass("ui-state-active"))}}}),a.widget("ui.sortable",a.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(a,b,c){return a>=b&&b+c>a},_isFloating:function(a){return/left|right/.test(a.css("float"))||/inline|table-cell/.test(a.css("display"))},_create:function(){this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(a,b){this._super(a,b),"handle"===a&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),a.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(b,c){var d=null,e=!1,f=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(b),a(b.target).parents().each(function(){return a.data(this,f.widgetName+"-item")===f?(d=a(this),!1):void 0}),a.data(b.target,f.widgetName+"-item")===f&&(d=a(b.target)),d&&(!this.options.handle||c||(a(this.options.handle,d).find("*").addBack().each(function(){this===b.target&&(e=!0)}),e))?(this.currentItem=d,this._removeCurrentsFromItems(),!0):!1)},_mouseStart:function(b,c,d){var e,f,g=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,g.cursorAt&&this._adjustOffsetFromHelper(g.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),g.containment&&this._setContainment(),g.cursor&&"auto"!==g.cursor&&(f=this.document.find("body"),this.storedCursor=f.css("cursor"),f.css("cursor",g.cursor),this.storedStylesheet=a("<style>*{ cursor: "+g.cursor+" !important; }</style>").appendTo(f)),g.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",g.opacity)),g.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",g.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!d)for(e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("activate",b,this._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!g.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){var c,d,e,f,g=this.options,h=!1;for(this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY<g.scrollSensitivity?this.scrollParent[0].scrollTop=h=this.scrollParent[0].scrollTop+g.scrollSpeed:b.pageY-this.overflowOffset.top<g.scrollSensitivity&&(this.scrollParent[0].scrollTop=h=this.scrollParent[0].scrollTop-g.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-b.pageX<g.scrollSensitivity?this.scrollParent[0].scrollLeft=h=this.scrollParent[0].scrollLeft+g.scrollSpeed:b.pageX-this.overflowOffset.left<g.scrollSensitivity&&(this.scrollParent[0].scrollLeft=h=this.scrollParent[0].scrollLeft-g.scrollSpeed)):(b.pageY-this.document.scrollTop()<g.scrollSensitivity?h=this.document.scrollTop(this.document.scrollTop()-g.scrollSpeed):this.window.height()-(b.pageY-this.document.scrollTop())<g.scrollSensitivity&&(h=this.document.scrollTop(this.document.scrollTop()+g.scrollSpeed)),b.pageX-this.document.scrollLeft()<g.scrollSensitivity?h=this.document.scrollLeft(this.document.scrollLeft()-g.scrollSpeed):this.window.width()-(b.pageX-this.document.scrollLeft())<g.scrollSensitivity&&(h=this.document.scrollLeft(this.document.scrollLeft()+g.scrollSpeed))),h!==!1&&a.ui.ddmanager&&!g.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),c=this.items.length-1;c>=0;c--)if(d=this.items[c],e=d.item[0],f=this._intersectsWithPointer(d),f&&d.instance===this.currentContainer&&e!==this.currentItem[0]&&this.placeholder[1===f?"next":"prev"]()[0]!==e&&!a.contains(this.placeholder[0],e)&&("semi-dynamic"===this.options.type?!a.contains(this.element[0],e):!0)){if(this.direction=1===f?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(d))break;this._rearrange(b,d),this._trigger("change",b,this._uiHash());break}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(b){if(a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b),this.options.revert){var d=this,e=this.placeholder.offset(),f=this.options.axis,g={};f&&"x"!==f||(g.left=e.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),f&&"y"!==f||(g.top=e.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,a(this.helper).animate(g,parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--)this.containers[b]._trigger("deactivate",null,this._uiHash(this)),this.containers[b].containerCache.over&&(this.containers[b]._trigger("out",null,this._uiHash(this)),this.containers[b].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[\-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l="x"===this.options.axis||d+j>h&&i>d+j,m="y"===this.options.axis||b+k>f&&g>b+k,n=l&&m;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?n:f<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<g&&h<d+this.helperProportions.height/2&&e-this.helperProportions.height/2<i},_intersectsWithPointer:function(a){var b="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height),c="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width),d=b&&c,e=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();return d?this.floating?f&&"right"===f||"down"===e?2:1:e&&("down"===e?2:1):!1},_intersectsWithSides:function(a){var b=this._isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height),c=this._isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width),d=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?"right"===e&&c||"left"===e&&!c:d&&("down"===d&&b||"up"===d&&!b)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return 0!==a&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return 0!==a&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor===String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){function c(){h.push(this)}var d,e,f,g,h=[],i=[],j=this._connectWith();if(j&&b)for(d=j.length-1;d>=0;d--)for(f=a(j[d],this.document[0]),e=f.length-1;e>=0;e--)g=a.data(f[e],this.widgetFullName),g&&g!==this&&!g.options.disabled&&i.push([a.isFunction(g.options.items)?g.options.items.call(g.element):a(g.options.items,g.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),g]);for(i.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),d=i.length-1;d>=0;d--)i[d][0].each(c);return a(h)},_removeCurrentsFromItems:function(){var b=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=a.grep(this.items,function(a){for(var c=0;c<b.length;c++)if(b[c]===a.item[0])return!1;return!0})},_refreshItems:function(b){this.items=[],this.containers=[this];var c,d,e,f,g,h,i,j,k=this.items,l=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],b,{item:this.currentItem}):a(this.options.items,this.element),this]],m=this._connectWith();if(m&&this.ready)for(c=m.length-1;c>=0;c--)for(e=a(m[c],this.document[0]),d=e.length-1;d>=0;d--)f=a.data(e[d],this.widgetFullName),f&&f!==this&&!f.options.disabled&&(l.push([a.isFunction(f.options.items)?f.options.items.call(f.element[0],b,{item:this.currentItem}):a(f.options.items,f.element),f]),this.containers.push(f));for(c=l.length-1;c>=0;c--)for(g=l[c][1],h=l[c][0],d=0,j=h.length;j>d;d++)i=a(h[d]),i.data(this.widgetName+"-item",g),k.push({item:i,instance:g,width:0,height:0,left:0,top:0})},refreshPositions:function(b){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var c,d,e,f;for(c=this.items.length-1;c>=0;c--)d=this.items[c],d.instance!==this.currentContainer&&this.currentContainer&&d.item[0]!==this.currentItem[0]||(e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item,b||(d.width=e.outerWidth(),d.height=e.outerHeight()),f=e.offset(),d.left=f.left,d.top=f.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(c=this.containers.length-1;c>=0;c--)f=this.containers[c].element.offset(),this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight();return this},_createPlaceholder:function(b){b=b||this;var c,d=b.options;d.placeholder&&d.placeholder.constructor!==String||(c=d.placeholder,d.placeholder={element:function(){var d=b.currentItem[0].nodeName.toLowerCase(),e=a("<"+d+">",b.document[0]).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tbody"===d?b._createTrPlaceholder(b.currentItem.find("tr").eq(0),a("<tr>",b.document[0]).appendTo(e)):"tr"===d?b._createTrPlaceholder(b.currentItem,e):"img"===d&&e.attr("src",b.currentItem.attr("src")),c||e.css("visibility","hidden"),e},update:function(a,e){(!c||d.forcePlaceholderSize)&&(e.height()||e.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10)),e.width()||e.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10)))}}),b.placeholder=a(d.placeholder.element.call(b.element,b.currentItem)),b.currentItem.after(b.placeholder),d.placeholder.update(b,b.placeholder)},_createTrPlaceholder:function(b,c){var d=this;b.children().each(function(){a("<td>&#160;</td>",d.document[0]).attr("colspan",a(this).attr("colspan")||1).appendTo(c)})},_contactContainers:function(b){var c,d,e,f,g,h,i,j,k,l,m=null,n=null;for(c=this.containers.length-1;c>=0;c--)if(!a.contains(this.currentItem[0],this.containers[c].element[0]))if(this._intersectsWith(this.containers[c].containerCache)){if(m&&a.contains(this.containers[c].element[0],m.element[0]))continue;m=this.containers[c],n=c}else this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",b,this._uiHash(this)),this.containers[c].containerCache.over=0);if(m)if(1===this.containers.length)this.containers[n].containerCache.over||(this.containers[n]._trigger("over",b,this._uiHash(this)),this.containers[n].containerCache.over=1);else{for(e=1e4,f=null,k=m.floating||this._isFloating(this.currentItem),g=k?"left":"top",h=k?"width":"height",l=k?"clientX":"clientY",d=this.items.length-1;d>=0;d--)a.contains(this.containers[n].element[0],this.items[d].item[0])&&this.items[d].item[0]!==this.currentItem[0]&&(i=this.items[d].item.offset()[g],j=!1,b[l]-i>this.items[d][h]/2&&(j=!0),Math.abs(b[l]-i)<e&&(e=Math.abs(b[l]-i),f=this.items[d],this.direction=j?"up":"down"));if(!f&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[n])return void(this.currentContainer.containerCache.over||(this.containers[n]._trigger("over",b,this._uiHash()),this.currentContainer.containerCache.over=1));f?this._rearrange(b,f,null,!0):this._rearrange(b,null,this.containers[n].element,!0),this._trigger("change",b,this._uiHash()),this.containers[n]._trigger("change",b,this._uiHash(this)),this.currentContainer=this.containers[n],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[n]._trigger("over",b,this._uiHash(this)),this.containers[n].containerCache.over=1}},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b,this.currentItem])):"clone"===c.helper?this.currentItem.clone():this.currentItem;return d.parents("body").length||a("parent"!==c.appendTo?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]),d[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!d[0].style.width||c.forceHelperSize)&&d.width(this.currentItem.width()),(!d[0].style.height||c.forceHelperSize)&&d.height(this.currentItem.height()),d},_adjustOffsetFromHelper:function(b){"string"==typeof b&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&a.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&a.ui.ie)&&(b={top:0,left:0}),{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b,c,d,e=this.options;"parent"===e.containment&&(e.containment=this.helper[0].parentNode),("document"===e.containment||"window"===e.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===e.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===e.containment?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(e.containment)||(b=a(e.containment)[0],c=a(e.containment).offset(),d="hidden"!==a(b).css("overflow"),this.containment=[c.left+(parseInt(a(b).css("borderLeftWidth"),10)||0)+(parseInt(a(b).css("paddingLeft"),10)||0)-this.margins.left,c.top+(parseInt(a(b).css("borderTopWidth"),10)||0)+(parseInt(a(b).css("paddingTop"),10)||0)-this.margins.top,c.left+(d?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(a(b).css("borderLeftWidth"),10)||0)-(parseInt(a(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,c.top+(d?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(a(b).css("borderTopWidth"),10)||0)-(parseInt(a(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(b,c){c||(c=this.position);var d="absolute"===b?1:-1,e="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&a.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,f=/(html|body)/i.test(e[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():f?0:e.scrollTop())*d,left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():f?0:e.scrollLeft())*d}},_generatePosition:function(b){var c,d,e=this.options,f=b.pageX,g=b.pageY,h="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&a.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(h[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(b.pageX-this.offset.click.left<this.containment[0]&&(f=this.containment[0]+this.offset.click.left),b.pageY-this.offset.click.top<this.containment[1]&&(g=this.containment[1]+this.offset.click.top),b.pageX-this.offset.click.left>this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top)),e.grid&&(c=this.originalPageY+Math.round((g-this.originalPageY)/e.grid[1])*e.grid[1],g=this.containment?c-this.offset.click.top>=this.containment[1]&&c-this.offset.click.top<=this.containment[3]?c:c-this.offset.click.top>=this.containment[1]?c-e.grid[1]:c+e.grid[1]:c,d=this.originalPageX+Math.round((f-this.originalPageX)/e.grid[0])*e.grid[0],f=this.containment?d-this.offset.click.left>=this.containment[0]&&d-this.offset.click.left<=this.containment[2]?d:d-this.offset.click.left>=this.containment[0]?d-e.grid[0]:d+e.grid[0]:d)),{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():i?0:h.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():i?0:h.scrollLeft())}},_rearrange:function(a,b,c,d){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?b.item[0]:b.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var e=this.counter;this._delay(function(){e===this.counter&&this.refreshPositions(!d)})},_clear:function(a,b){function c(a,b,c){return function(d){c._trigger(a,d,b._uiHash(b))}}this.reverting=!1;var d,e=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(d in this._storedCSS)("auto"===this._storedCSS[d]||"static"===this._storedCSS[d])&&(this._storedCSS[d]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!b&&e.push(function(a){this._trigger("receive",a,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||b||e.push(function(a){
-this._trigger("update",a,this._uiHash())}),this!==this.currentContainer&&(b||(e.push(function(a){this._trigger("remove",a,this._uiHash())}),e.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.currentContainer)),e.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.currentContainer)))),d=this.containers.length-1;d>=0;d--)b||e.push(c("deactivate",this,this.containers[d])),this.containers[d].containerCache.over&&(e.push(c("out",this,this.containers[d])),this.containers[d].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,b||this._trigger("beforeStop",a,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!b){for(d=0;d<e.length;d++)e[d].call(this,a);this._trigger("stop",a,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){a.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(b){var c=b||this;return{helper:c.helper,placeholder:c.placeholder||a([]),position:c.position,originalPosition:c.originalPosition,offset:c.positionAbs,item:c.currentItem,sender:b?b.element:null}}}),a.widget("ui.spinner",{version:"1.11.4",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var b={},c=this.element;return a.each(["min","max","step"],function(a,d){var e=c.attr(d);void 0!==e&&e.length&&(b[d]=e)}),b},_events:{keydown:function(a){this._start(a)&&this._keydown(a)&&a.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(a){return this.cancelBlur?void delete this.cancelBlur:(this._stop(),this._refresh(),void(this.previous!==this.element.val()&&this._trigger("change",a)))},mousewheel:function(a,b){if(b){if(!this.spinning&&!this._start(a))return!1;this._spin((b>0?1:-1)*this.options.step,a),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(a)},100),a.preventDefault()}},"mousedown .ui-spinner-button":function(b){function c(){var a=this.element[0]===this.document[0].activeElement;a||(this.element.focus(),this.previous=d,this._delay(function(){this.previous=d}))}var d;d=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),b.preventDefault(),c.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,c.call(this)}),this._start(b)!==!1&&this._repeat(null,a(b.currentTarget).hasClass("ui-spinner-up")?1:-1,b)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(b){return a(b.currentTarget).hasClass("ui-state-active")?this._start(b)===!1?!1:void this._repeat(null,a(b.currentTarget).hasClass("ui-spinner-up")?1:-1,b):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var a=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=a.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*a.height())&&a.height()>0&&a.height(a.height()),this.options.disabled&&this.disable()},_keydown:function(b){var c=this.options,d=a.ui.keyCode;switch(b.keyCode){case d.UP:return this._repeat(null,1,b),!0;case d.DOWN:return this._repeat(null,-1,b),!0;case d.PAGE_UP:return this._repeat(null,c.page,b),!0;case d.PAGE_DOWN:return this._repeat(null,-c.page,b),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>&#9650;</span></a><a class='ui-spinner-button ui-spinner-down ui-corner-br'><span class='ui-icon "+this.options.icons.down+"'>&#9660;</span></a>"},_start:function(a){return this.spinning||this._trigger("start",a)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(a,b,c){a=a||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,b,c)},a),this._spin(b*this.options.step,c)},_spin:function(a,b){var c=this.value()||0;this.counter||(this.counter=1),c=this._adjustValue(c+a*this._increment(this.counter)),this.spinning&&this._trigger("spin",b,{value:c})===!1||(this._value(c),this.counter++)},_increment:function(b){var c=this.options.incremental;return c?a.isFunction(c)?c(b):Math.floor(b*b*b/5e4-b*b/500+17*b/200+1):1},_precision:function(){var a=this._precisionOf(this.options.step);return null!==this.options.min&&(a=Math.max(a,this._precisionOf(this.options.min))),a},_precisionOf:function(a){var b=a.toString(),c=b.indexOf(".");return-1===c?0:b.length-c-1},_adjustValue:function(a){var b,c,d=this.options;return b=null!==d.min?d.min:0,c=a-b,c=Math.round(c/d.step)*d.step,a=b+c,a=parseFloat(a.toFixed(this._precision())),null!==d.max&&a>d.max?d.max:null!==d.min&&a<d.min?d.min:a},_stop:function(a){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",a))},_setOption:function(a,b){if("culture"===a||"numberFormat"===a){var c=this._parse(this.element.val());return this.options[a]=b,void this.element.val(this._format(c))}("max"===a||"min"===a||"step"===a)&&"string"==typeof b&&(b=this._parse(b)),"icons"===a&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(b.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(b.down)),this._super(a,b),"disabled"===a&&(this.widget().toggleClass("ui-state-disabled",!!b),this.element.prop("disabled",!!b),this.buttons.button(b?"disable":"enable"))},_setOptions:i(function(a){this._super(a)}),_parse:function(a){return"string"==typeof a&&""!==a&&(a=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(a,10,this.options.culture):+a),""===a||isNaN(a)?null:a},_format:function(a){return""===a?"":window.Globalize&&this.options.numberFormat?Globalize.format(a,this.options.numberFormat,this.options.culture):a},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var a=this.value();return null===a?!1:a===this._adjustValue(a)},_value:function(a,b){var c;""!==a&&(c=this._parse(a),null!==c&&(b||(c=this._adjustValue(c)),a=this._format(c))),this.element.val(a),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:i(function(a){this._stepUp(a)}),_stepUp:function(a){this._start()&&(this._spin((a||1)*this.options.step),this._stop())},stepDown:i(function(a){this._stepDown(a)}),_stepDown:function(a){this._start()&&(this._spin((a||1)*-this.options.step),this._stop())},pageUp:i(function(a){this._stepUp((a||1)*this.options.page)}),pageDown:i(function(a){this._stepDown((a||1)*this.options.page)}),value:function(a){return arguments.length?void i(this._value).call(this,a):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),a.widget("ui.tabs",{version:"1.11.4",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var a=/#.*$/;return function(b){var c,d;b=b.cloneNode(!1),c=b.href.replace(a,""),d=location.href.replace(a,"");try{c=decodeURIComponent(c)}catch(e){}try{d=decodeURIComponent(d)}catch(e){}return b.hash.length>1&&c===d}}(),_create:function(){var b=this,c=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",c.collapsible),this._processTabs(),c.active=this._initialActive(),a.isArray(c.disabled)&&(c.disabled=a.unique(c.disabled.concat(a.map(this.tabs.filter(".ui-state-disabled"),function(a){return b.tabs.index(a)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(c.active):this.active=a(),this._refresh(),this.active.length&&this.load(c.active)},_initialActive:function(){var b=this.options.active,c=this.options.collapsible,d=location.hash.substring(1);return null===b&&(d&&this.tabs.each(function(c,e){return a(e).attr("aria-controls")===d?(b=c,!1):void 0}),null===b&&(b=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===b||-1===b)&&(b=this.tabs.length?0:!1)),b!==!1&&(b=this.tabs.index(this.tabs.eq(b)),-1===b&&(b=c?!1:0)),!c&&b===!1&&this.anchors.length&&(b=0),b},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):a()}},_tabKeydown:function(b){var c=a(this.document[0].activeElement).closest("li"),d=this.tabs.index(c),e=!0;if(!this._handlePageNav(b)){switch(b.keyCode){case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:d++;break;case a.ui.keyCode.UP:case a.ui.keyCode.LEFT:e=!1,d--;break;case a.ui.keyCode.END:d=this.anchors.length-1;break;case a.ui.keyCode.HOME:d=0;break;case a.ui.keyCode.SPACE:return b.preventDefault(),clearTimeout(this.activating),void this._activate(d);case a.ui.keyCode.ENTER:return b.preventDefault(),clearTimeout(this.activating),void this._activate(d===this.options.active?!1:d);default:return}b.preventDefault(),clearTimeout(this.activating),d=this._focusNextTab(d,e),b.ctrlKey||b.metaKey||(c.attr("aria-selected","false"),this.tabs.eq(d).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",d)},this.delay))}},_panelKeydown:function(b){this._handlePageNav(b)||b.ctrlKey&&b.keyCode===a.ui.keyCode.UP&&(b.preventDefault(),this.active.focus())},_handlePageNav:function(b){return b.altKey&&b.keyCode===a.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):b.altKey&&b.keyCode===a.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(b,c){function d(){return b>e&&(b=0),0>b&&(b=e),b}for(var e=this.tabs.length-1;-1!==a.inArray(d(),this.options.disabled);)b=c?b+1:b-1;return b},_focusNextTab:function(a,b){return a=this._findNextTab(a,b),this.tabs.eq(a).focus(),a},_setOption:function(a,b){return"active"===a?void this._activate(b):"disabled"===a?void this._setupDisabled(b):(this._super(a,b),"collapsible"===a&&(this.element.toggleClass("ui-tabs-collapsible",b),b||this.options.active!==!1||this._activate(0)),"event"===a&&this._setupEvents(b),void("heightStyle"===a&&this._setupHeightStyle(b)))},_sanitizeSelector:function(a){return a?a.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var b=this.options,c=this.tablist.children(":has(a[href])");b.disabled=a.map(c.filter(".ui-state-disabled"),function(a){return c.index(a)}),this._processTabs(),b.active!==!1&&this.anchors.length?this.active.length&&!a.contains(this.tablist[0],this.active[0])?this.tabs.length===b.disabled.length?(b.active=!1,this.active=a()):this._activate(this._findNextTab(Math.max(0,b.active-1),!1)):b.active=this.tabs.index(this.active):(b.active=!1,this.active=a()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var b=this,c=this.tabs,d=this.anchors,e=this.panels;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(b){a(this).is(".ui-state-disabled")&&b.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){a(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return a("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=a(),this.anchors.each(function(c,d){var e,f,g,h=a(d).uniqueId().attr("id"),i=a(d).closest("li"),j=i.attr("aria-controls");b._isLocal(d)?(e=d.hash,g=e.substring(1),f=b.element.find(b._sanitizeSelector(e))):(g=i.attr("aria-controls")||a({}).uniqueId()[0].id,e="#"+g,f=b.element.find(e),f.length||(f=b._createPanel(g),f.insertAfter(b.panels[c-1]||b.tablist)),f.attr("aria-live","polite")),f.length&&(b.panels=b.panels.add(f)),j&&i.data("ui-tabs-aria-controls",j),i.attr({"aria-controls":g,"aria-labelledby":h}),f.attr("aria-labelledby",h)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel"),c&&(this._off(c.not(this.tabs)),this._off(d.not(this.anchors)),this._off(e.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(b){return a("<div>").attr("id",b).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(b){a.isArray(b)&&(b.length?b.length===this.anchors.length&&(b=!0):b=!1);for(var c,d=0;c=this.tabs[d];d++)b===!0||-1!==a.inArray(d,b)?a(c).addClass("ui-state-disabled").attr("aria-disabled","true"):a(c).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=b},_setupEvents:function(b){var c={};b&&a.each(b.split(" "),function(a,b){c[b]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(a){a.preventDefault()}}),this._on(this.anchors,c),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(b){var c,d=this.element.parent();"fill"===b?(c=d.height(),c-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var b=a(this),d=b.css("position");"absolute"!==d&&"fixed"!==d&&(c-=b.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){c-=a(this).outerHeight(!0)}),this.panels.each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")):"auto"===b&&(c=0,this.panels.each(function(){c=Math.max(c,a(this).height("").height())}).height(c))},_eventHandler:function(b){var c=this.options,d=this.active,e=a(b.currentTarget),f=e.closest("li"),g=f[0]===d[0],h=g&&c.collapsible,i=h?a():this._getPanelForTab(f),j=d.length?this._getPanelForTab(d):a(),k={oldTab:d,oldPanel:j,newTab:h?a():f,newPanel:i};b.preventDefault(),f.hasClass("ui-state-disabled")||f.hasClass("ui-tabs-loading")||this.running||g&&!c.collapsible||this._trigger("beforeActivate",b,k)===!1||(c.active=h?!1:this.tabs.index(f),this.active=g?a():f,this.xhr&&this.xhr.abort(),j.length||i.length||a.error("jQuery UI Tabs: Mismatching fragment identifier."),i.length&&this.load(this.tabs.index(f),b),this._toggle(b,k))},_toggle:function(b,c){function d(){f.running=!1,f._trigger("activate",b,c)}function e(){c.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),g.length&&f.options.show?f._show(g,f.options.show,d):(g.show(),d())}var f=this,g=c.newPanel,h=c.oldPanel;this.running=!0,h.length&&this.options.hide?this._hide(h,this.options.hide,function(){c.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),e()}):(c.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),h.hide(),e()),h.attr("aria-hidden","true"),c.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),g.length&&h.length?c.oldTab.attr("tabIndex",-1):g.length&&this.tabs.filter(function(){return 0===a(this).attr("tabIndex")}).attr("tabIndex",-1),g.attr("aria-hidden","false"),c.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(b){var c,d=this._findActive(b);d[0]!==this.active[0]&&(d.length||(d=this.active),c=d.find(".ui-tabs-anchor")[0],this._eventHandler({target:c,currentTarget:c,preventDefault:a.noop}))},_findActive:function(b){return b===!1?a():this.tabs.eq(b)},_getIndex:function(a){return"string"==typeof a&&(a=this.anchors.index(this.anchors.filter("[href$='"+a+"']"))),a},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tablist.unbind(this.eventNamespace),this.tabs.add(this.panels).each(function(){a.data(this,"ui-tabs-destroy")?a(this).remove():a(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var b=a(this),c=b.data("ui-tabs-aria-controls");c?b.attr("aria-controls",c).removeData("ui-tabs-aria-controls"):b.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(b){var c=this.options.disabled;c!==!1&&(void 0===b?c=!1:(b=this._getIndex(b),c=a.isArray(c)?a.map(c,function(a){return a!==b?a:null}):a.map(this.tabs,function(a,c){return c!==b?c:null})),this._setupDisabled(c))},disable:function(b){var c=this.options.disabled;if(c!==!0){if(void 0===b)c=!0;else{if(b=this._getIndex(b),-1!==a.inArray(b,c))return;c=a.isArray(c)?a.merge([b],c).sort():[b]}this._setupDisabled(c)}},load:function(b,c){b=this._getIndex(b);var d=this,e=this.tabs.eq(b),f=e.find(".ui-tabs-anchor"),g=this._getPanelForTab(e),h={tab:e,panel:g},i=function(a,b){"abort"===b&&d.panels.stop(!1,!0),e.removeClass("ui-tabs-loading"),g.removeAttr("aria-busy"),a===d.xhr&&delete d.xhr};this._isLocal(f[0])||(this.xhr=a.ajax(this._ajaxSettings(f,c,h)),this.xhr&&"canceled"!==this.xhr.statusText&&(e.addClass("ui-tabs-loading"),g.attr("aria-busy","true"),this.xhr.done(function(a,b,e){setTimeout(function(){g.html(a),d._trigger("load",c,h),i(e,b)},1)}).fail(function(a,b){setTimeout(function(){i(a,b)},1)})))},_ajaxSettings:function(b,c,d){var e=this;return{url:b.attr("href"),beforeSend:function(b,f){return e._trigger("beforeLoad",c,a.extend({jqXHR:b,ajaxSettings:f},d))}}},_getPanelForTab:function(b){var c=a(b).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+c))}}),a.widget("ui.tooltip",{version:"1.11.4",options:{content:function(){var b=a(this).attr("title")||"";return a("<a>").text(b).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_addDescribedBy:function(b,c){var d=(b.attr("aria-describedby")||"").split(/\s+/);d.push(c),b.data("ui-tooltip-id",c).attr("aria-describedby",a.trim(d.join(" ")))},_removeDescribedBy:function(b){var c=b.data("ui-tooltip-id"),d=(b.attr("aria-describedby")||"").split(/\s+/),e=a.inArray(c,d);-1!==e&&d.splice(e,1),b.removeData("ui-tooltip-id"),d=a.trim(d.join(" ")),d?b.attr("aria-describedby",d):b.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable(),this.liveRegion=a("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(b,c){var d=this;return"disabled"===b?(this[c?"_disable":"_enable"](),void(this.options[b]=c)):(this._super(b,c),void("content"===b&&a.each(this.tooltips,function(a,b){d._updateContent(b.element)})))},_disable:function(){var b=this;a.each(this.tooltips,function(c,d){var e=a.Event("blur");e.target=e.currentTarget=d.element[0],b.close(e,!0)}),this.element.find(this.options.items).addBack().each(function(){var b=a(this);b.is("[title]")&&b.data("ui-tooltip-title",b.attr("title")).removeAttr("title")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var b=a(this);b.data("ui-tooltip-title")&&b.attr("title",b.data("ui-tooltip-title"))})},open:function(b){var c=this,d=a(b?b.target:this.element).closest(this.options.items);d.length&&!d.data("ui-tooltip-id")&&(d.attr("title")&&d.data("ui-tooltip-title",d.attr("title")),d.data("ui-tooltip-open",!0),b&&"mouseover"===b.type&&d.parents().each(function(){var b,d=a(this);d.data("ui-tooltip-open")&&(b=a.Event("blur"),b.target=b.currentTarget=this,c.close(b,!0)),d.attr("title")&&(d.uniqueId(),c.parents[this.id]={element:this,title:d.attr("title")},d.attr("title",""))}),this._registerCloseHandlers(b,d),this._updateContent(d,b))},_updateContent:function(a,b){var c,d=this.options.content,e=this,f=b?b.type:null;return"string"==typeof d?this._open(b,a,d):(c=d.call(a[0],function(c){e._delay(function(){a.data("ui-tooltip-open")&&(b&&(b.type=f),this._open(b,a,c))})}),void(c&&this._open(b,a,c)))},_open:function(b,c,d){function e(a){j.of=a,g.is(":hidden")||g.position(j)}var f,g,h,i,j=a.extend({},this.options.position);if(d){if(f=this._find(c))return void f.tooltip.find(".ui-tooltip-content").html(d);c.is("[title]")&&(b&&"mouseover"===b.type?c.attr("title",""):c.removeAttr("title")),f=this._tooltip(c),g=f.tooltip,this._addDescribedBy(c,g.attr("id")),g.find(".ui-tooltip-content").html(d),this.liveRegion.children().hide(),d.clone?(i=d.clone(),i.removeAttr("id").find("[id]").removeAttr("id")):i=d,a("<div>").html(i).appendTo(this.liveRegion),this.options.track&&b&&/^mouse/.test(b.type)?(this._on(this.document,{mousemove:e}),e(b)):g.position(a.extend({of:c},this.options.position)),g.hide(),this._show(g,this.options.show),this.options.show&&this.options.show.delay&&(h=this.delayedShow=setInterval(function(){g.is(":visible")&&(e(j.of),clearInterval(h))},a.fx.interval)),this._trigger("open",b,{tooltip:g})}},_registerCloseHandlers:function(b,c){var d={keyup:function(b){if(b.keyCode===a.ui.keyCode.ESCAPE){var d=a.Event(b);d.currentTarget=c[0],this.close(d,!0)}}};c[0]!==this.element[0]&&(d.remove=function(){this._removeTooltip(this._find(c).tooltip)}),b&&"mouseover"!==b.type||(d.mouseleave="close"),b&&"focusin"!==b.type||(d.focusout="close"),this._on(!0,c,d)},close:function(b){var c,d=this,e=a(b?b.currentTarget:this.element),f=this._find(e);return f?(c=f.tooltip,void(f.closing||(clearInterval(this.delayedShow),e.data("ui-tooltip-title")&&!e.attr("title")&&e.attr("title",e.data("ui-tooltip-title")),this._removeDescribedBy(e),f.hiding=!0,c.stop(!0),this._hide(c,this.options.hide,function(){d._removeTooltip(a(this))}),e.removeData("ui-tooltip-open"),this._off(e,"mouseleave focusout keyup"),e[0]!==this.element[0]&&this._off(e,"remove"),this._off(this.document,"mousemove"),b&&"mouseleave"===b.type&&a.each(this.parents,function(b,c){a(c.element).attr("title",c.title),delete d.parents[b]}),f.closing=!0,this._trigger("close",b,{tooltip:c}),f.hiding||(f.closing=!1)))):void e.removeData("ui-tooltip-open")},_tooltip:function(b){var c=a("<div>").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),d=c.uniqueId().attr("id");return a("<div>").addClass("ui-tooltip-content").appendTo(c),c.appendTo(this.document[0].body),this.tooltips[d]={element:b,tooltip:c}},_find:function(a){var b=a.data("ui-tooltip-id");return b?this.tooltips[b]:null},_removeTooltip:function(a){a.remove(),delete this.tooltips[a.attr("id")]},_destroy:function(){var b=this;a.each(this.tooltips,function(c,d){var e=a.Event("blur"),f=d.element;e.target=e.currentTarget=f[0],b.close(e,!0),a("#"+c).remove(),f.data("ui-tooltip-title")&&(f.attr("title")||f.attr("title",f.data("ui-tooltip-title")),f.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}})}),function(a,b,c){"use strict";b.module("ui.sortable",[]).value("uiSortableConfig",{}).directive("uiSortable",["uiSortableConfig","$timeout","$log",function(a,d,e){return{require:"?ngModel",scope:{ngModel:"=",uiSortable:"="},link:function(f,g,h,i){function j(a,b){return b&&"function"==typeof b?function(){a.apply(this,arguments),b.apply(this,arguments)}:a}function k(a){var b=a.data("ui-sortable");return b&&"object"==typeof b&&"ui-sortable"===b.widgetFullName?b:null}function l(a,b){var c=a.sortable("option","helper");return"clone"===c||"function"==typeof c&&b.item.sortable.isCustomHelperUsed()}function m(a){return/left|right/.test(a.css("float"))||/inline|table-cell/.test(a.css("display"))}function n(a,b){for(var c=null,d=0;d<a.length;d++){var e=a[d];if(e.element[0]===b[0]){c=e.scope;break}}return c}function o(a,b){b.item.sortable._destroy()}var p,q={},r={"ui-floating":c},s={receive:null,remove:null,start:null,stop:null,update:null},t={helper:null};return b.extend(q,r,a,f.uiSortable),b.element.fn&&b.element.fn.jquery?(i?(f.$watch("ngModel.length",function(){d(function(){k(g)&&g.sortable("refresh")},0,!1)}),s.start=function(a,d){if("auto"===q["ui-floating"]){var e=d.item.siblings(),f=k(b.element(a.target));f.floating=m(e)}d.item.sortable={model:i.$modelValue[d.item.index()],index:d.item.index(),source:d.item.parent(),sourceModel:i.$modelValue,cancel:function(){d.item.sortable._isCanceled=!0},isCanceled:function(){return d.item.sortable._isCanceled},isCustomHelperUsed:function(){return!!d.item.sortable._isCustomHelperUsed},_isCanceled:!1,_isCustomHelperUsed:d.item.sortable._isCustomHelperUsed,_destroy:function(){b.forEach(d.item.sortable,function(a,b){d.item.sortable[b]=c})}}},s.activate=function(a,c){p=g.contents();var d=g.sortable("option","placeholder");if(d&&d.element&&"function"==typeof d.element){var e=d.element();e=b.element(e);var h=g.find('[class="'+e.attr("class")+'"]:not([ng-repeat], [data-ng-repeat])');p=p.not(h)}var i=c.item.sortable._connectedSortables||[];i.push({element:g,scope:f}),c.item.sortable._connectedSortables=i},s.update=function(a,b){if(!b.item.sortable.received){b.item.sortable.dropindex=b.item.index();var c=b.item.parent();b.item.sortable.droptarget=c;var d=n(b.item.sortable._connectedSortables,c);b.item.sortable.droptargetModel=d.ngModel,g.sortable("cancel")}l(g,b)&&!b.item.sortable.received&&"parent"===g.sortable("option","appendTo")&&(p=p.not(p.last())),p.appendTo(g),b.item.sortable.received&&(p=null),b.item.sortable.received&&!b.item.sortable.isCanceled()&&f.$apply(function(){i.$modelValue.splice(b.item.sortable.dropindex,0,b.item.sortable.moved)})},s.stop=function(a,b){!b.item.sortable.received&&"dropindex"in b.item.sortable&&!b.item.sortable.isCanceled()?f.$apply(function(){i.$modelValue.splice(b.item.sortable.dropindex,0,i.$modelValue.splice(b.item.sortable.index,1)[0])}):"dropindex"in b.item.sortable&&!b.item.sortable.isCanceled()||l(g,b)||p.appendTo(g),p=null},s.receive=function(a,b){b.item.sortable.received=!0},s.remove=function(a,b){"dropindex"in b.item.sortable||(g.sortable("cancel"),b.item.sortable.cancel()),b.item.sortable.isCanceled()||f.$apply(function(){b.item.sortable.moved=i.$modelValue.splice(b.item.sortable.index,1)[0]})},t.helper=function(a){return a&&"function"==typeof a?function(b,c){var d=a.apply(this,arguments);return c.sortable._isCustomHelperUsed=c!==d,d}:a},f.$watch("uiSortable",function(a){var c=k(g);c&&b.forEach(a,function(a,b){return b in r?("ui-floating"!==b||a!==!1&&a!==!0||(c.floating=a),void(q[b]=a)):(s[b]?("stop"===b&&(a=j(a,function(){f.$apply()}),a=j(a,o)),a=j(s[b],a)):t[b]&&(a=t[b](a)),q[b]=a,void g.sortable("option",b,a))})},!0),b.forEach(s,function(a,b){q[b]=j(a,q[b]),"stop"===b&&(q[b]=j(q[b],o))})):e.info("ui.sortable: ngModel not provided!",g),void g.sortable(q)):void e.error("ui.sortable: jQuery should be included before AngularJS!")}}}])}(window,window.angular),function(){function a(a,b){return a.set(b[0],b[1]),a}function b(a,b){return a.add(b),a}function c(a,b,c){var d=c.length;switch(d){case 0:return a.call(b);case 1:return a.call(b,c[0]);case 2:return a.call(b,c[0],c[1]);case 3:return a.call(b,c[0],c[1],c[2])}return a.apply(b,c)}function d(a,b,c,d){for(var e=-1,f=a.length;++e<f;){var g=a[e];b(d,g,c(g),a)}return d}function e(a,b){for(var c=-1,d=a.length,e=-1,f=b.length,g=Array(d+f);++c<d;)g[c]=a[c];for(;++e<f;)g[c++]=b[e];return g}function f(a,b){for(var c=-1,d=a.length;++c<d&&b(a[c],c,a)!==!1;);return a}function g(a,b){for(var c=a.length;c--&&b(a[c],c,a)!==!1;);return a}function h(a,b){for(var c=-1,d=a.length;++c<d;)if(!b(a[c],c,a))return!1;return!0}function i(a,b){for(var c=-1,d=a.length,e=-1,f=[];++c<d;){var g=a[c];b(g,c,a)&&(f[++e]=g)}return f}function j(a,b){return!!a.length&&t(a,b,0)>-1}function k(a,b,c){for(var d=-1,e=a.length;++d<e;)if(c(b,a[d]))return!0;return!1}function l(a,b){for(var c=-1,d=a.length,e=Array(d);++c<d;)e[c]=b(a[c],c,a);return e}function m(a,b){for(var c=-1,d=b.length,e=a.length;++c<d;)a[e+c]=b[c];return a}function n(a,b,c,d){var e=-1,f=a.length;for(d&&f&&(c=a[++e]);++e<f;)c=b(c,a[e],e,a);return c}function o(a,b,c,d){var e=a.length;for(d&&e&&(c=a[--e]);e--;)c=b(c,a[e],e,a);return c}function p(a,b){for(var c=-1,d=a.length;++c<d;)if(b(a[c],c,a))return!0;return!1}function q(a,b,c){for(var d=-1,e=a.length;++d<e;){var f=a[d],g=b(f);if(null!=g&&(h===V?g===g:c(g,h)))var h=g,i=f}return i}function r(a,b,c,d){var e;return c(a,function(a,c,f){return b(a,c,f)?(e=d?c:a,!1):void 0}),e}function s(a,b,c){for(var d=a.length,e=c?d:-1;c?e--:++e<d;)if(b(a[e],e,a))return e;return-1}function t(a,b,c){if(b!==b)return K(a,c);for(var d=c-1,e=a.length;++d<e;)if(a[d]===b)return d;return-1}function u(a,b,c,d,e){return e(a,function(a,e,f){c=d?(d=!1,a):b(c,a,e,f)}),c}function v(a,b){var c=a.length;for(a.sort(b);c--;)a[c]=a[c].value;return a}function w(a,b){for(var c,d=-1,e=a.length;++d<e;){var f=b(a[d]);f!==V&&(c=c===V?f:c+f)}return c}function x(a,b){for(var c=-1,d=Array(a);++c<a;)d[c]=b(c);return d}function y(a,b){return l(b,function(b){return[b,a[b]]})}function z(a){return function(b){return a(b)}}function A(a,b){return l(b,function(b){return a[b]})}function B(a,b){for(var c=-1,d=a.length;++c<d&&t(b,a[c],0)>-1;);return c}function C(a,b){for(var c=a.length;c--&&t(b,a[c],0)>-1;);return c}function D(a){return a&&a.Object===Object?a:null}function E(a,b){if(a!==b){var c=null===a,d=a===V,e=a===a,f=null===b,g=b===V,h=b===b;if(a>b&&!f||!e||c&&!g&&h||d&&h)return 1;if(b>a&&!c||!h||f&&!d&&e||g&&e)return-1}return 0}function F(a,b,c){for(var d=-1,e=a.criteria,f=b.criteria,g=e.length,h=c.length;++d<g;){var i=E(e[d],f[d]);if(i){if(d>=h)return i;var j=c[d];return i*("desc"==j?-1:1)}}return a.index-b.index}function G(a,b){for(var c=a.length,d=0;c--;)a[c]===b&&d++;
-return d}function H(a){return rc[a]}function I(a){return sc[a]}function J(a){return"\\"+vc[a]}function K(a,b,c){for(var d=a.length,e=b+(c?0:-1);c?e--:++e<d;){var f=a[e];if(f!==f)return e}return-1}function L(a){var b=!1;if(null!=a&&"function"!=typeof a.toString)try{b=!!(a+"")}catch(c){}return b}function M(a,b){return a="number"==typeof a||xb.test(a)?+a:-1,b=null==b?sa:b,a>-1&&a%1==0&&b>a}function N(a){for(var b,c=[];!(b=a.next()).done;)c.push(b.value);return c}function O(a){var b=-1,c=Array(a.size);return a.forEach(function(a,d){c[++b]=[d,a]}),c}function P(a,b){for(var c=-1,d=a.length,e=-1,f=[];++c<d;){var g=a[c];(g===b||g===ya)&&(a[c]=ya,f[++e]=c)}return f}function Q(a){var b=-1,c=Array(a.size);return a.forEach(function(a){c[++b]=a}),c}function R(a){if(!a||!jc.test(a))return a.length;for(var b=ic.lastIndex=0;ic.test(a);)b++;return b}function S(a){return a.match(ic)}function T(a){return tc[a]}function U(D){function xb(a){if(Mg(a)&&!uk(a)&&!(a instanceof Db)){if(a instanceof Cb)return a;if(Ri.call(a,"__wrapped__"))return Ge(a)}return new Cb(a)}function Bb(){}function Cb(a,b){this.__wrapped__=a,this.__actions__=[],this.__chain__=!!b,this.__index__=0,this.__values__=V}function Db(a){this.__wrapped__=a,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=va,this.__views__=[]}function Eb(){var a=new Db(this.__wrapped__);return a.__actions__=Ld(this.__actions__),a.__dir__=this.__dir__,a.__filtered__=this.__filtered__,a.__iteratees__=Ld(this.__iteratees__),a.__takeCount__=this.__takeCount__,a.__views__=Ld(this.__views__),a}function Fb(){if(this.__filtered__){var a=new Db(this);a.__dir__=-1,a.__filtered__=!0}else a=this.clone(),a.__dir__*=-1;return a}function Gb(){var a=this.__wrapped__.value(),b=this.__dir__,c=uk(a),d=0>b,e=c?a.length:0,f=pe(0,e,this.__views__),g=f.start,h=f.end,i=h-g,j=d?h:g-1,k=this.__iteratees__,l=k.length,m=0,n=oj(i,this.__takeCount__);if(!c||la>e||e==i&&n==i)return zd(a,this.__actions__);var o=[];a:for(;i--&&n>m;){j+=b;for(var p=-1,q=a[j];++p<l;){var r=k[p],s=r.iteratee,t=r.type,u=s(q);if(t==na)q=u;else if(!u){if(t==ma)continue a;break a}}o[m++]=q}return o}function Hb(){}function Ib(a,b){return Kb(a,b)&&delete a[b]}function Jb(a,b){if(vj){var c=a[b];return c===qa?V:c}return Ri.call(a,b)?a[b]:V}function Kb(a,b){return vj?a[b]!==V:Ri.call(a,b)}function Lb(a,b,c){a[b]=vj&&c===V?qa:c}function Mb(a){var b=-1,c=a?a.length:0;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}function Nb(){this.__data__={hash:new Hb,map:sj?new sj:[],string:new Hb}}function Ob(a){var b=this.__data__;return xe(a)?Ib("string"==typeof a?b.string:b.hash,a):sj?b.map["delete"](a):_b(b.map,a)}function Pb(a){var b=this.__data__;return xe(a)?Jb("string"==typeof a?b.string:b.hash,a):sj?b.map.get(a):ac(b.map,a)}function Qb(a){var b=this.__data__;return xe(a)?Kb("string"==typeof a?b.string:b.hash,a):sj?b.map.has(a):bc(b.map,a)}function Rb(a,b){var c=this.__data__;return xe(a)?Lb("string"==typeof a?c.string:c.hash,a,b):sj?c.map.set(a,b):dc(c.map,a,b),this}function Sb(a){var b=-1,c=a?a.length:0;for(this.__data__=new Mb;++b<c;)this.push(a[b])}function Tb(a,b){var c=a.__data__;if(xe(b)){var d=c.__data__,e="string"==typeof b?d.string:d.hash;return e[b]===qa}return c.has(b)}function Ub(a){var b=this.__data__;if(xe(a)){var c=b.__data__,d="string"==typeof a?c.string:c.hash;d[a]=qa}else b.set(a,qa)}function Vb(a){var b=-1,c=a?a.length:0;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}function Wb(){this.__data__={array:[],map:null}}function Xb(a){var b=this.__data__,c=b.array;return c?_b(c,a):b.map["delete"](a)}function Yb(a){var b=this.__data__,c=b.array;return c?ac(c,a):b.map.get(a)}function Zb(a){var b=this.__data__,c=b.array;return c?bc(c,a):b.map.has(a)}function $b(a,b){var c=this.__data__,d=c.array;d&&(d.length<la-1?dc(d,a,b):(c.array=null,c.map=new Mb(d)));var e=c.map;return e&&e.set(a,b),this}function _b(a,b){var c=cc(a,b);if(0>c)return!1;var d=a.length-1;return c==d?a.pop():hj.call(a,c,1),!0}function ac(a,b){var c=cc(a,b);return 0>c?V:a[c][1]}function bc(a,b){return cc(a,b)>-1}function cc(a,b){for(var c=a.length;c--;)if(tg(a[c][0],b))return c;return-1}function dc(a,b,c){var d=cc(a,b);0>d?a.push([b,c]):a[d][1]=c}function ec(a,b,c,d){return a===V||tg(a,Pi[c])&&!Ri.call(d,c)?b:a}function fc(a,b,c){(c!==V&&!tg(a[b],c)||"number"==typeof b&&c===V&&!(b in a))&&(a[b]=c)}function gc(a,b,c){var d=a[b];Ri.call(a,b)&&tg(d,c)&&(c!==V||b in a)||(a[b]=c)}function ic(a,b,c,d){return Ej(a,function(a,e,f){b(d,a,c(a),f)}),d}function rc(a,b){return a&&Md(b,yh(b),a)}function sc(a,b){for(var c=-1,d=null==a,e=b.length,f=Array(e);++c<e;)f[c]=d?V:vh(a,b[c]);return f}function tc(a){return zg(a)?a:[]}function uc(a){return"function"==typeof a?a:ni}function vc(a){return uk(a)?a:Fe(a)}function yc(a,b,c){return a===a&&(c!==V&&(a=c>=a?a:c),b!==V&&(a=a>=b?a:b)),a}function zc(a,b,c,d,e,g){var h;if(c&&(h=e?c(a,d,e,g):c(a)),h!==V)return h;if(!Lg(a))return a;var i=uk(a);if(i){if(h=re(a),!b)return Ld(a,h)}else{var j=oe(a),k=j==Ea||j==Fa;if(vk(a))return Cd(a,b);if(j==Ia||j==za||k&&!e){if(L(a))return e?a:{};if(h=se(k?{}:a),!b)return Od(a,rc(h,a))}else{if(!qc[j])return e?a:{};h=te(a,j,b)}}g||(g=new Vb);var l=g.get(a);return l?l:(g.set(a,h),(i?f:Mc)(a,function(d,e){gc(h,e,zc(d,b,c,e,a,g))}),i?h:Od(a,h))}function Bc(a){var b=yh(a),c=b.length;return function(d){if(null==d)return!c;for(var e=c;e--;){var f=b[e],g=a[f],h=d[f];if(h===V&&!(f in Object(d))||!g(h))return!1}return!0}}function Cc(a){return Lg(a)?ej(a):{}}function Dc(a,b,c){if("function"!=typeof a)throw new Ni(pa);return gj(function(){a.apply(V,c)},b)}function Ec(a,b,c,d){var e=-1,f=j,g=!0,h=a.length,i=[],m=b.length;if(!h)return i;c&&(b=l(b,z(c))),d?(f=k,g=!1):b.length>=la&&(f=Tb,g=!1,b=new Sb(b));a:for(;++e<h;){var n=a[e],o=c?c(n):n;if(g&&o===o){for(var p=m;p--;)if(b[p]===o)continue a;i.push(n)}else f(b,o,d)||i.push(n)}return i}function Hc(a,b){var c=!0;return Ej(a,function(a,d,e){return c=!!b(a,d,e)}),c}function Ic(a,b,c,d){var e=a.length;for(c=gh(c),0>c&&(c=-c>e?0:e+c),d=d===V||d>e?e:gh(d),0>d&&(d+=e),d=c>d?0:hh(d);d>c;)a[c++]=b;return a}function Jc(a,b){var c=[];return Ej(a,function(a,d,e){b(a,d,e)&&c.push(a)}),c}function Kc(a,b,c,d){d||(d=[]);for(var e=-1,f=a.length;++e<f;){var g=a[e];b>0&&zg(g)&&(c||uk(g)||wg(g))?b>1?Kc(g,b-1,c,d):m(d,g):c||(d[d.length]=g)}return d}function Lc(a,b){return null==a?a:Gj(a,b,zh)}function Mc(a,b){return a&&Gj(a,b,yh)}function Nc(a,b){return a&&Hj(a,b,yh)}function Oc(a,b){return i(b,function(b){return Ig(a[b])})}function Pc(a,b){b=we(b,a)?[b+""]:vc(b);for(var c=0,d=b.length;null!=a&&d>c;)a=a[b[c++]];return c&&c==d?a:V}function Qc(a,b){return Ri.call(a,b)||"object"==typeof a&&b in a&&null===bj(a)}function Rc(a,b){return b in Object(a)}function Sc(a,b,c){return a>=oj(b,c)&&a<nj(b,c)}function Tc(a,b,c){for(var d=c?k:j,e=a.length,f=e,g=Array(e),h=[];f--;){var i=a[f];f&&b&&(i=l(i,z(b))),g[f]=!c&&(b||i.length>=120)?new Sb(f&&i):V}i=a[0];var m=-1,n=i.length,o=g[0];a:for(;++m<n;){var p=i[m],q=b?b(p):p;if(!(o?Tb(o,q):d(h,q,c))){for(var f=e;--f;){var r=g[f];if(!(r?Tb(r,q):d(a[f],q,c)))continue a}o&&o.push(q),h.push(p)}}return h}function Uc(a,b,c,d){return Mc(a,function(a,e,f){b(d,c(a),e,f)}),d}function Vc(a,b,d){we(b,a)||(b=vc(b),a=De(a,b),b=Ye(b));var e=null==a?a:a[b];return null==e?V:c(e,a,d)}function Wc(a,b,c,d,e){return a===b?!0:null==a||null==b||!Lg(a)&&!Mg(b)?a!==a&&b!==b:Xc(a,b,Wc,c,d,e)}function Xc(a,b,c,d,e,f){var g=uk(a),h=uk(b),i=Aa,j=Aa;g||(i=oe(a),i==za?i=Ia:i!=Ia&&(g=_g(a))),h||(j=oe(b),j==za?j=Ia:j!=Ia&&(h=_g(b)));var k=i==Ia&&!L(a),l=j==Ia&&!L(b),m=i==j;if(m&&!g&&!k)return he(a,b,i,c,d,e);var n=e&ga;if(!n){var o=k&&Ri.call(a,"__wrapped__"),p=l&&Ri.call(b,"__wrapped__");if(o||p)return c(o?a.value():a,p?b.value():b,d,e,f)}return m?(f||(f=new Vb),(g?ge:ie)(a,b,c,d,e,f)):!1}function Yc(a,b,c,d){var e=c.length,f=e,g=!d;if(null==a)return!f;for(a=Object(a);e--;){var h=c[e];if(g&&h[2]?h[1]!==a[h[0]]:!(h[0]in a))return!1}for(;++e<f;){h=c[e];var i=h[0],j=a[i],k=h[1];if(g&&h[2]){if(j===V&&!(i in a))return!1}else{var l=new Vb,m=d?d(j,k,i,a,b,l):V;if(!(m===V?Wc(k,j,d,fa|ga,l):m))return!1}}return!0}function Zc(a){var b=typeof a;return"function"==b?a:null==a?ni:"object"==b?uk(a)?cd(a[0],a[1]):bd(a):vi(a)}function $c(a){return mj(Object(a))}function _c(a){a=null==a?a:Object(a);var b=[];for(var c in a)b.push(c);return b}function ad(a,b){var c=-1,d=yg(a)?Array(a.length):[];return Ej(a,function(a,e,f){d[++c]=b(a,e,f)}),d}function bd(a){var b=le(a);if(1==b.length&&b[0][2]){var c=b[0][0],d=b[0][1];return function(a){return null==a?!1:a[c]===d&&(d!==V||c in Object(a))}}return function(c){return c===a||Yc(c,a,b)}}function cd(a,b){return function(c){var d=vh(c,a);return d===V&&d===b?xh(c,a):Wc(b,d,V,fa|ga)}}function dd(a,b,c,d,e){if(a!==b){var g=uk(b)||_g(b)?V:zh(b);f(g||b,function(f,h){if(g&&(h=f,f=b[h]),Lg(f))e||(e=new Vb),ed(a,b,h,c,dd,d,e);else{var i=d?d(a[h],f,h+"",a,b,e):V;i===V&&(i=f),fc(a,h,i)}})}}function ed(a,b,c,d,e,f,g){var h=a[c],i=b[c],j=g.get(i);if(j)return void fc(a,c,j);var k=f?f(h,i,c+"",a,b,g):V,l=k===V;l&&(k=i,uk(i)||_g(i)?uk(h)?k=h:zg(h)?k=Ld(h):(l=!1,k=zc(i,!0)):Vg(i)||wg(i)?wg(h)?k=jh(h):!Lg(h)||d&&Ig(h)?(l=!1,k=zc(i,!0)):k=h:l=!1),g.set(i,k),l&&e(k,i,d,f,g),fc(a,c,k)}function fd(a,b,c){var d=-1,e=ke();b=l(b.length?b:Array(1),function(a){return e(a)});var f=ad(a,function(a,c,e){var f=l(b,function(b){return b(a)});return{criteria:f,index:++d,value:a}});return v(f,function(a,b){return F(a,b,c)})}function gd(a,b){return a=Object(a),n(b,function(b,c){return c in a&&(b[c]=a[c]),b},{})}function hd(a,b){var c={};return Lc(a,function(a,d){b(a,d)&&(c[d]=a)}),c}function id(a){return function(b){return null==b?V:b[a]}}function jd(a){return function(b){return Pc(b,a)}}function kd(a,b){return ld(a,b)}function ld(a,b,c){var d=-1,e=b.length,f=a;for(c&&(f=l(a,function(a){return c(a)}));++d<e;)for(var g=0,h=b[d],i=c?c(h):h;(g=t(f,i,g))>-1;)f!==a&&hj.call(f,g,1),hj.call(a,g,1);return a}function md(a,b){for(var c=a?b.length:0,d=c-1;c--;){var e=b[c];if(d==c||e!=f){var f=e;if(M(e))hj.call(a,e,1);else if(we(e,a))delete a[e];else{var g=vc(e),h=De(a,g);null!=h&&delete h[Ye(g)]}}}return a}function nd(a,b){return a+jj(qj()*(b-a+1))}function od(a,b,c,d){for(var e=-1,f=nj(ij((b-a)/(c||1)),0),g=Array(f);f--;)g[d?f:++e]=a,a+=c;return g}function pd(a,b,c,d){b=we(b,a)?[b+""]:vc(b);for(var e=-1,f=b.length,g=f-1,h=a;null!=h&&++e<f;){var i=b[e];if(Lg(h)){var j=c;if(e!=g){var k=h[i];j=d?d(k,i,h):V,j===V&&(j=null==k?M(b[e+1])?[]:{}:k)}gc(h,i,j)}h=h[i]}return a}function qd(a,b,c){var d=-1,e=a.length;0>b&&(b=-b>e?0:e+b),c=c>e?e:c,0>c&&(c+=e),e=b>c?0:c-b>>>0,b>>>=0;for(var f=Array(e);++d<e;)f[d]=a[d+b];return f}function rd(a,b){var c;return Ej(a,function(a,d,e){return c=b(a,d,e),!c}),!!c}function sd(a,b,c){var d=0,e=a?a.length:d;if("number"==typeof b&&b===b&&xa>=e){for(;e>d;){var f=d+e>>>1,g=a[f];(c?b>=g:b>g)&&null!==g?d=f+1:e=f}return e}return td(a,b,ni,c)}function td(a,b,c,d){b=c(b);for(var e=0,f=a?a.length:0,g=b!==b,h=null===b,i=b===V;f>e;){var j=jj((e+f)/2),k=c(a[j]),l=k!==V,m=k===k;if(g)var n=m||d;else n=h?m&&l&&(d||null!=k):i?m&&(d||l):null==k?!1:d?b>=k:b>k;n?e=j+1:f=j}return oj(f,wa)}function ud(a){return vd(a)}function vd(a,b){for(var c=0,d=a.length,e=a[0],f=b?b(e):e,g=f,h=0,i=[e];++c<d;)e=a[c],f=b?b(e):e,tg(f,g)||(g=f,i[++h]=e);return i}function wd(a,b,c){var d=-1,e=j,f=a.length,g=!0,h=[],i=h;if(c)g=!1,e=k;else if(f>=la){var l=b?null:Jj(a);if(l)return Q(l);g=!1,e=Tb,i=new Sb}else i=b?[]:h;a:for(;++d<f;){var m=a[d],n=b?b(m):m;if(g&&n===n){for(var o=i.length;o--;)if(i[o]===n)continue a;b&&i.push(n),h.push(m)}else e(i,n,c)||(i!==h&&i.push(n),h.push(m))}return h}function xd(a,b){b=we(b,a)?[b+""]:vc(b),a=De(a,b);var c=Ye(b);return null!=a&&wh(a,c)?delete a[c]:!0}function yd(a,b,c,d){for(var e=a.length,f=d?e:-1;(d?f--:++f<e)&&b(a[f],f,a););return c?qd(a,d?0:f,d?f+1:e):qd(a,d?f+1:0,d?e:f)}function zd(a,b){var c=a;return c instanceof Db&&(c=c.value()),n(b,function(a,b){return b.func.apply(b.thisArg,m([a],b.args))},c)}function Ad(a,b,c){for(var d=-1,e=a.length;++d<e;)var f=f?m(Ec(f,a[d],b,c),Ec(a[d],f,b,c)):a[d];return f&&f.length?wd(f,b,c):[]}function Bd(a,b,c){for(var d=-1,e=a.length,f=b.length,g={};++d<e;)c(g,a[d],f>d?b[d]:V);return g}function Cd(a,b){if(b)return a.slice();var c=a.constructor,d=new c(a.length);return a.copy(d),d}function Dd(a){var b=a.constructor,c=new b(a.byteLength),d=new $i(c);return d.set(new $i(a)),c}function Ed(b){var c=b.constructor;return n(O(b),a,new c)}function Fd(a){var b=a.constructor,c=new b(a.source,rb.exec(a));return c.lastIndex=a.lastIndex,c}function Gd(a){var c=a.constructor;return n(Q(a),b,new c)}function Hd(a){return Zi?Object(Bj.call(a)):{}}function Id(a,b){var c=a.buffer,d=b?Dd(c):c,e=a.constructor;return new e(d,a.byteOffset,a.length)}function Jd(a,b,c,d){for(var e=-1,f=a.length,g=c.length,h=-1,i=b.length,j=nj(f-g,0),k=Array(i+j),l=!d;++h<i;)k[h]=b[h];for(;++e<g;)(l||f>e)&&(k[c[e]]=a[e]);for(;j--;)k[h++]=a[e++];return k}function Kd(a,b,c,d){for(var e=-1,f=a.length,g=-1,h=c.length,i=-1,j=b.length,k=nj(f-h,0),l=Array(k+j),m=!d;++e<k;)l[e]=a[e];for(var n=e;++i<j;)l[n+i]=b[i];for(;++g<h;)(m||f>e)&&(l[n+c[g]]=a[e++]);return l}function Ld(a,b){var c=-1,d=a.length;for(b||(b=Array(d));++c<d;)b[c]=a[c];return b}function Md(a,b,c){return Nd(a,b,c)}function Nd(a,b,c,d){c||(c={});for(var e=-1,f=b.length;++e<f;){var g=b[e],h=d?d(c[g],a[g],g,c,a):a[g];gc(c,g,h)}return c}function Od(a,b){return Md(a,Mj(a),b)}function Pd(a,b){return function(c,e){var f=uk(c)?d:ic,g=b?b():{};return f(c,a,ke(e),g)}}function Qd(a){return jg(function(b,c){var d=-1,e=c.length,f=e>1?c[e-1]:V,g=e>2?c[2]:V;for(f="function"==typeof f?(e--,f):V,g&&ve(c[0],c[1],g)&&(f=3>e?V:f,e=1),b=Object(b);++d<e;){var h=c[d];h&&a(b,h,d,f)}return b})}function Rd(a,b){return function(c,d){if(null==c)return c;if(!yg(c))return a(c,d);for(var e=c.length,f=b?e:-1,g=Object(c);(b?f--:++f<e)&&d(g[f],f,g)!==!1;);return c}}function Sd(a){return function(b,c,d){for(var e=-1,f=Object(b),g=d(b),h=g.length;h--;){var i=g[a?h:++e];if(c(f[i],i,f)===!1)break}return b}}function Td(a,b,c){function d(){var b=this&&this!==Fc&&this instanceof d?f:a;return b.apply(e?c:this,arguments)}var e=b&X,f=Wd(a);return d}function Ud(a){return function(b){b=lh(b);var c=jc.test(b)?S(b):V,d=c?c[0]:b.charAt(0),e=c?c.slice(1).join(""):b.slice(1);return d[a]()+e}}function Vd(a){return function(b){return n(ji(Rh(b)),a,"")}}function Wd(a){return function(){var b=arguments;switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3]);case 5:return new a(b[0],b[1],b[2],b[3],b[4]);case 6:return new a(b[0],b[1],b[2],b[3],b[4],b[5]);case 7:return new a(b[0],b[1],b[2],b[3],b[4],b[5],b[6])}var c=Cc(a.prototype),d=a.apply(c,b);return Lg(d)?d:c}}function Xd(a,b,d){function e(){for(var g=arguments.length,h=Array(g),i=g,j=ne(e);i--;)h[i]=arguments[i];var k=3>g&&h[0]!==j&&h[g-1]!==j?[]:P(h,j);if(g-=k.length,d>g)return de(a,b,Zd,e.placeholder,V,h,k,V,V,d-g);var l=this&&this!==Fc&&this instanceof e?f:a;return c(l,this,h)}var f=Wd(a);return e}function Yd(a){return jg(function(b){b=Kc(b,1);var c=b.length,d=c,e=Cb.prototype.thru;for(a&&b.reverse();d--;){var f=b[d];if("function"!=typeof f)throw new Ni(pa);if(e&&!g&&"wrapper"==je(f))var g=new Cb([],!0)}for(d=g?d:c;++d<c;){f=b[d];var h=je(f),i="wrapper"==h?Kj(f):V;g=i&&ye(i[0])&&i[1]==(ca|$|aa|da)&&!i[4].length&&1==i[9]?g[je(i[0])].apply(g,i[3]):1==f.length&&ye(f)?g[h]():g.thru(f)}return function(){var a=arguments,d=a[0];if(g&&1==a.length&&uk(d)&&d.length>=la)return g.plant(d).value();for(var e=0,f=c?b[e].apply(this,a):d;++e<c;)f=b[e].call(this,f);return f}})}function Zd(a,b,c,d,e,f,g,h,i,j){function k(){for(var r=arguments.length,s=r,t=Array(r);s--;)t[s]=arguments[s];if(o)var u=ne(k),v=G(t,u);if(d&&(t=Jd(t,d,e,o)),f&&(t=Kd(t,f,g,o)),r-=v,o&&j>r){var w=P(t,u);return de(a,b,Zd,k.placeholder,c,t,w,h,i,j-r)}var x=m?c:this,y=n?x[a]:a;return r=t.length,h?t=Ee(t,h):p&&r>1&&t.reverse(),l&&r>i&&(t.length=i),this&&this!==Fc&&this instanceof k&&(y=q||Wd(y)),y.apply(x,t)}var l=b&ca,m=b&X,n=b&Y,o=b&($|_),p=b&ea,q=n?V:Wd(a);return k}function $d(a,b){return function(c,d){return Uc(c,a,b(d),{})}}function _d(a){return jg(function(b){return b=l(Kc(b,1),ke()),jg(function(d){var e=this;return a(b,function(a){return c(a,e,d)})})})}function ae(a,b,c){b=gh(b);var d=R(a);if(!b||d>=b)return"";var e=b-d;c=c===V?" ":c+"";var f=Zh(c,ij(e/R(c)));return jc.test(c)?S(f).slice(0,e).join(""):f.slice(0,e)}function be(a,b,d,e){function f(){for(var b=-1,i=arguments.length,j=-1,k=e.length,l=Array(k+i),m=this&&this!==Fc&&this instanceof f?h:a;++j<k;)l[j]=e[j];for(;i--;)l[j++]=arguments[++b];return c(m,g?d:this,l)}var g=b&X,h=Wd(a);return f}function ce(a){return function(b,c,d){return d&&"number"!=typeof d&&ve(b,c,d)&&(c=d=V),b=ih(b),b=b===b?b:0,c===V?(c=b,b=0):c=ih(c)||0,d=d===V?c>b?1:-1:ih(d)||0,od(b,c,d,a)}}function de(a,b,c,d,e,f,g,h,i,j){var k=b&$,l=h?Ld(h):V,m=k?g:V,n=k?V:g,o=k?f:V,p=k?V:f;b|=k?aa:ba,b&=~(k?ba:aa),b&Z||(b&=~(X|Y));var q=[a,b,e,o,m,p,n,l,i,j],r=c.apply(V,q);return ye(a)&&Nj(r,q),r.placeholder=d,r}function ee(a){var b=Li[a];return function(a,c){if(a=ih(a),c=gh(c)){var d=(lh(a)+"e").split("e"),e=b(d[0]+"e"+(+d[1]+c));return d=(lh(e)+"e").split("e"),+(d[0]+"e"+(+d[1]-c))}return b(a)}}function fe(a,b,c,d,e,f,g,h){var i=b&Y;if(!i&&"function"!=typeof a)throw new Ni(pa);var j=d?d.length:0;if(j||(b&=~(aa|ba),d=e=V),g=g===V?g:nj(gh(g),0),h=h===V?h:gh(h),j-=e?e.length:0,b&ba){var k=d,l=e;d=e=V}var m=i?V:Kj(a),n=[a,b,c,d,e,k,l,f,g,h];if(m&&Be(n,m),a=n[0],b=n[1],c=n[2],d=n[3],e=n[4],h=n[9]=null==n[9]?i?0:a.length:nj(n[9]-j,0),!h&&b&($|_)&&(b&=~($|_)),b&&b!=X)o=b==$||b==_?Xd(a,b,h):b!=aa&&b!=(X|aa)||e.length?Zd.apply(V,n):be(a,b,c,d);else var o=Td(a,b,c);var p=m?Ij:Nj;return p(o,n)}function ge(a,b,c,d,e,f){var g=-1,h=e&ga,i=e&fa,j=a.length,k=b.length;if(j!=k&&!(h&&k>j))return!1;var l=f.get(a);if(l)return l==b;var m=!0;for(f.set(a,b);++g<j;){var n=a[g],o=b[g];if(d)var q=h?d(o,n,g,b,a,f):d(n,o,g,a,b,f);if(q!==V){if(q)continue;m=!1;break}if(i){if(!p(b,function(a){return n===a||c(n,a,d,e,f)})){m=!1;break}}else if(n!==o&&!c(n,o,d,e,f)){m=!1;break}}return f["delete"](a),m}function he(a,b,c,d,e,f){switch(c){case Pa:return a.byteLength==b.byteLength&&d(new $i(a),new $i(b))?!0:!1;case Ba:case Ca:return+a==+b;case Da:return a.name==b.name&&a.message==b.message;case Ha:return a!=+a?b!=+b:a==+b;case Ja:case La:return a==b+"";case Ga:var g=O;case Ka:var h=f&ga;return g||(g=Q),(h||a.size==b.size)&&d(g(a),g(b),e,f|fa);case Ma:return!!Zi&&Bj.call(a)==Bj.call(b)}return!1}function ie(a,b,c,d,e,f){var g=e&ga,h=yh(a),i=h.length,j=yh(b),k=j.length;if(i!=k&&!g)return!1;for(var l=i;l--;){var m=h[l];if(!(g?m in b:Qc(b,m)))return!1}var n=f.get(a);if(n)return n==b;var o=!0;f.set(a,b);for(var p=g;++l<i;){m=h[l];var q=a[m],r=b[m];if(d)var s=g?d(r,q,m,b,a,f):d(q,r,m,a,b,f);if(!(s===V?q===r||c(q,r,d,e,f):s)){o=!1;break}p||(p="constructor"==m)}if(o&&!p){var t=a.constructor,u=b.constructor;t!=u&&"constructor"in a&&"constructor"in b&&!("function"==typeof t&&t instanceof t&&"function"==typeof u&&u instanceof u)&&(o=!1)}return f["delete"](a),o}function je(a){for(var b=a.name+"",c=Dj[b],d=Ri.call(Dj,b)?c.length:0;d--;){var e=c[d],f=e.func;if(null==f||f==a)return e.name}return b}function ke(){var a=xb.iteratee||oi;return a=a===oi?Zc:a,arguments.length?a(arguments[0],arguments[1]):a}function le(a){for(var b=Hh(a),c=b.length;c--;)b[c][2]=Ae(b[c][1]);return b}function me(a,b){var c=null==a?V:a[b];return Rg(c)?c:V}function ne(a){var b=Ri.call(xb,"placeholder")?xb:a;return b.placeholder}function oe(a){return Ui.call(a)}function pe(a,b,c){for(var d=-1,e=c.length;++d<e;){var f=c[d],g=f.size;switch(f.type){case"drop":a+=g;break;case"dropRight":b-=g;break;case"take":b=oj(b,a+g);break;case"takeRight":a=nj(a,b-g)}}return{start:a,end:b}}function qe(a,b,c){if(null==a)return!1;var d=c(a,b);d||we(b)||(b=vc(b),a=De(a,b),null!=a&&(b=Ye(b),d=c(a,b)));var e=a?a.length:V;return d||!!e&&Kg(e)&&M(b,e)&&(uk(a)||Zg(a)||wg(a))}function re(a){var b=a.length,c=a.constructor(b);return b&&"string"==typeof a[0]&&Ri.call(a,"index")&&(c.index=a.index,c.input=a.input),c}function se(a){return Ig(a.constructor)&&!ze(a)?Cc(bj(a)):{}}function te(a,b,c){var d=a.constructor;switch(b){case Pa:return Dd(a);case Ba:case Ca:return new d(+a);case Qa:case Ra:case Sa:case Ta:case Ua:case Va:case Wa:case Xa:case Ya:return Id(a,c);case Ga:return Ed(a);case Ha:case La:return new d(a);case Ja:return Fd(a);case Ka:return Gd(a);case Ma:return Hd(a)}}function ue(a){var b=a?a.length:V;return Kg(b)&&(uk(a)||Zg(a)||wg(a))?x(b,String):null}function ve(a,b,c){if(!Lg(c))return!1;var d=typeof b;return("number"==d?yg(c)&&M(b,c.length):"string"==d&&b in c)?tg(c[b],a):!1}function we(a,b){return"number"==typeof a?!0:!uk(a)&&(ib.test(a)||!hb.test(a)||null!=b&&a in Object(b))}function xe(a){var b=typeof a;return"number"==b||"boolean"==b||"string"==b&&"__proto__"!=a||null==a}function ye(a){var b=je(a),c=xb[b];if("function"!=typeof c||!(b in Db.prototype))return!1;if(a===c)return!0;var d=Kj(c);return!!d&&a===d[0]}function ze(a){var b=a&&a.constructor,c=Ig(b)&&b.prototype||Pi;return a===c}function Ae(a){return a===a&&!Lg(a)}function Be(a,b){var c=a[1],d=b[1],e=c|d,f=(X|Y|ca)>e,g=d==ca&&c==$||d==ca&&c==da&&a[7].length<=b[8]||d==(ca|da)&&b[7].length<=b[8]&&c==$;if(!f&&!g)return a;d&X&&(a[2]=b[2],e|=c&X?0:Z);var h=b[3];if(h){var i=a[3];a[3]=i?Jd(i,h,b[4]):Ld(h),a[4]=i?P(a[3],ya):Ld(b[4])}return h=b[5],h&&(i=a[5],a[5]=i?Kd(i,h,b[6]):Ld(h),a[6]=i?P(a[5],ya):Ld(b[6])),h=b[7],h&&(a[7]=Ld(h)),d&ca&&(a[8]=null==a[8]?b[8]:oj(a[8],b[8])),null==a[9]&&(a[9]=b[9]),a[0]=b[0],a[1]=e,a}function Ce(a,b,c,d,e,f){return Lg(a)&&Lg(b)&&(f.set(b,a),dd(a,b,V,Ce,f)),a}function De(a,b){return 1==b.length?a:vh(a,qd(b,0,-1))}function Ee(a,b){for(var c=a.length,d=oj(b.length,c),e=Ld(a);d--;){var f=b[d];a[d]=M(f,c)?e[f]:V}return a}function Fe(a){var b=[];return lh(a).replace(jb,function(a,c,d,e){b.push(d?e.replace(pb,"$1"):c||a)}),b}function Ge(a){if(a instanceof Db)return a.clone();var b=new Cb(a.__wrapped__,a.__chain__);return b.__actions__=Ld(a.__actions__),b.__index__=a.__index__,b.__values__=a.__values__,b}function He(a,b){b=nj(gh(b),0);var c=a?a.length:0;if(!c||1>b)return[];for(var d=0,e=-1,f=Array(ij(c/b));c>d;)f[++e]=qd(a,d,d+=b);return f}function Ie(a){for(var b=-1,c=a?a.length:0,d=-1,e=[];++b<c;){var f=a[b];f&&(e[++d]=f)}return e}function Je(a,b,c){var d=a?a.length:0;return d?(b=c||b===V?1:gh(b),qd(a,0>b?0:b,d)):[]}function Ke(a,b,c){var d=a?a.length:0;return d?(b=c||b===V?1:gh(b),b=d-b,qd(a,0,0>b?0:b)):[]}function Le(a,b){return a&&a.length?yd(a,ke(b,3),!0,!0):[]}function Me(a,b){return a&&a.length?yd(a,ke(b,3),!0):[]}function Ne(a,b,c,d){var e=a?a.length:0;return e?(c&&"number"!=typeof c&&ve(a,b,c)&&(c=0,d=e),Ic(a,b,c,d)):[]}function Oe(a,b){return a&&a.length?s(a,ke(b,3)):-1}function Pe(a,b){return a&&a.length?s(a,ke(b,3),!0):-1}function Qe(a){var b=a?a.length:0;return b?Kc(a,1):[]}function Re(a){var b=a?a.length:0;return b?Kc(a,ra):[]}function Se(a,b){var c=a?a.length:0;return c?(b=b===V?1:gh(b),Kc(a,b)):[]}function Te(a){for(var b=-1,c=a?a.length:0,d={};++b<c;){var e=a[b];d[e[0]]=e[1]}return d}function Ue(a){return a?a[0]:V}function Ve(a,b,c){var d=a?a.length:0;return d?(c=gh(c),0>c&&(c=nj(d+c,0)),t(a,b,c)):-1}function We(a){return Ke(a,1)}function Xe(a,b){return a?lj.call(a,b):""}function Ye(a){var b=a?a.length:0;return b?a[b-1]:V}function Ze(a,b,c){var d=a?a.length:0;if(!d)return-1;var e=d;if(c!==V&&(e=gh(c),e=(0>e?nj(d+e,0):oj(e,d-1))+1),b!==b)return K(a,e,!0);for(;e--;)if(a[e]===b)return e;return-1}function $e(a,b){return a&&a.length&&b&&b.length?kd(a,b):a}function _e(a,b,c){return a&&a.length&&b&&b.length?ld(a,b,ke(c)):a}function af(a,b){var c=[];if(!a||!a.length)return c;var d=-1,e=[],f=a.length;for(b=ke(b,3);++d<f;){var g=a[d];b(g,d,a)&&(c.push(g),e.push(d))}return md(a,e),c}function bf(a){return a?rj.call(a):a}function cf(a,b,c){var d=a?a.length:0;return d?(c&&"number"!=typeof c&&ve(a,b,c)?(b=0,c=d):(b=null==b?0:gh(b),c=c===V?d:gh(c)),qd(a,b,c)):[]}function df(a,b){return sd(a,b)}function ef(a,b,c){return td(a,b,ke(c))}function ff(a,b){var c=a?a.length:0;if(c){var d=sd(a,b);if(c>d&&tg(a[d],b))return d}return-1}function gf(a,b){return sd(a,b,!0)}function hf(a,b,c){return td(a,b,ke(c),!0)}function jf(a,b){var c=a?a.length:0;if(c){var d=sd(a,b,!0)-1;if(tg(a[d],b))return d}return-1}function kf(a){return a&&a.length?ud(a):[]}function lf(a,b){return a&&a.length?vd(a,ke(b)):[]}function mf(a){return Je(a,1)}function nf(a,b,c){return a&&a.length?(b=c||b===V?1:gh(b),qd(a,0,0>b?0:b)):[]}function of(a,b,c){var d=a?a.length:0;return d?(b=c||b===V?1:gh(b),b=d-b,qd(a,0>b?0:b,d)):[]}function pf(a,b){return a&&a.length?yd(a,ke(b,3),!1,!0):[]}function qf(a,b){return a&&a.length?yd(a,ke(b,3)):[]}function rf(a){return a&&a.length?wd(a):[]}function sf(a,b){return a&&a.length?wd(a,ke(b)):[]}function tf(a,b){return a&&a.length?wd(a,V,b):[]}function uf(a){if(!a||!a.length)return[];var b=0;return a=i(a,function(a){return zg(a)?(b=nj(a.length,b),!0):void 0}),x(b,function(b){return l(a,id(b))})}function vf(a,b){if(!a||!a.length)return[];var d=uf(a);return null==b?d:l(d,function(a){return c(b,V,a)})}function wf(a,b){return Bd(a||[],b||[],gc)}function xf(a,b){return Bd(a||[],b||[],pd)}function yf(a){var b=xb(a);return b.__chain__=!0,b}function zf(a,b){return b(a),a}function Af(a,b){return b(a)}function Bf(){return yf(this)}function Cf(){return new Cb(this.value(),this.__chain__)}function Df(a){return this.map(a).flatten()}function Ef(){this.__values__===V&&(this.__values__=fh(this.value()));var a=this.__index__>=this.__values__.length,b=a?V:this.__values__[this.__index__++];return{done:a,value:b}}function Ff(){return this}function Gf(a){for(var b,c=this;c instanceof Bb;){var d=Ge(c);d.__index__=0,d.__values__=V,b?e.__wrapped__=d:b=d;var e=d;c=c.__wrapped__}return e.__wrapped__=a,b}function Hf(){var a=this.__wrapped__;if(a instanceof Db){var b=a;return this.__actions__.length&&(b=new Db(this)),b=b.reverse(),b.__actions__.push({func:Af,args:[bf],thisArg:V}),new Cb(b,this.__chain__)}return this.thru(bf)}function If(){return zd(this.__wrapped__,this.__actions__)}function Jf(a,b,c){var d=uk(a)?h:Hc;return c&&ve(a,b,c)&&(b=V),d(a,ke(b,3))}function Kf(a,b){var c=uk(a)?i:Jc;return c(a,ke(b,3))}function Lf(a,b){if(b=ke(b,3),uk(a)){var c=s(a,b);return c>-1?a[c]:V}return r(a,b,Ej)}function Mf(a,b){if(b=ke(b,3),uk(a)){var c=s(a,b,!0);return c>-1?a[c]:V}return r(a,b,Fj)}function Nf(a,b){return Kc(Rf(a,b),1)}function Of(a,b){return"function"==typeof b&&uk(a)?f(a,b):Ej(a,uc(b))}function Pf(a,b){return"function"==typeof b&&uk(a)?g(a,b):Fj(a,uc(b))}function Qf(a,b,c,d){a=yg(a)?a:Lh(a),c=c&&!d?gh(c):0;var e=a.length;return 0>c&&(c=nj(e+c,0)),Zg(a)?e>=c&&a.indexOf(b,c)>-1:!!e&&t(a,b,c)>-1}function Rf(a,b){var c=uk(a)?l:ad;return c(a,ke(b,3))}function Sf(a,b,c,d){return null==a?[]:(uk(b)||(b=null==b?[]:[b]),c=d?V:c,uk(c)||(c=null==c?[]:[c]),fd(a,b,c))}function Tf(a,b,c){var d=uk(a)?n:u,e=arguments.length<3;return d(a,ke(b,4),c,e,Ej)}function Uf(a,b,c){var d=uk(a)?o:u,e=arguments.length<3;return d(a,ke(b,4),c,e,Fj)}function Vf(a,b){var c=uk(a)?i:Jc;return b=ke(b,3),c(a,function(a,c,d){return!b(a,c,d)})}function Wf(a){var b=yg(a)?a:Lh(a),c=b.length;return c>0?b[nd(0,c-1)]:V}function Xf(a,b){var c=-1,d=fh(a),e=d.length,f=e-1;for(b=yc(gh(b),0,e);++c<b;){var g=nd(c,f),h=d[g];d[g]=d[c],d[c]=h}return d.length=b,d}function Yf(a){return Xf(a,va)}function Zf(a){if(null==a)return 0;if(yg(a)){var b=a.length;return b&&Zg(a)?R(a):b}return yh(a).length}function $f(a,b,c){var d=uk(a)?p:rd;return c&&ve(a,b,c)&&(b=V),d(a,ke(b,3))}function _f(a,b){if("function"!=typeof b)throw new Ni(pa);return a=gh(a),function(){return--a<1?b.apply(this,arguments):void 0}}function ag(a,b,c){return b=c?V:b,b=a&&null==b?a.length:b,fe(a,ca,V,V,V,V,b)}function bg(a,b){var c;if("function"!=typeof b)throw new Ni(pa);return a=gh(a),function(){return--a>0&&(c=b.apply(this,arguments)),1>=a&&(b=V),c}}function cg(a,b,c){b=c?V:b;var d=fe(a,$,V,V,V,V,V,b);return d.placeholder=cg.placeholder,d}function dg(a,b,c){b=c?V:b;var d=fe(a,_,V,V,V,V,V,b);return d.placeholder=dg.placeholder,d}function eg(a,b,c){function d(){o&&_i(o),k&&_i(k),q=0,j=k=n=o=p=V}function e(b,c){c&&_i(c),k=o=p=V,b&&(q=lk(),l=a.apply(n,j),o||k||(j=n=V))}function f(){var a=b-(lk()-m);0>=a||a>b?e(p,k):o=gj(f,a)}function g(){return(o&&p||k&&t)&&(l=a.apply(n,j)),d(),l}function h(){e(t,o)}function i(){if(j=arguments,m=lk(),n=this,p=t&&(o||!r),s===!1)var c=r&&!o;else{q||k||r||(q=m);var d=s-(m-q),e=(0>=d||d>s)&&(r||k);e?(k&&(k=_i(k)),q=m,l=a.apply(n,j)):k||(k=gj(h,d))}return e&&o?o=_i(o):o||b===s||(o=gj(f,b)),c&&(e=!0,l=a.apply(n,j)),!e||o||k||(j=n=V),l}var j,k,l,m,n,o,p,q=0,r=!1,s=!1,t=!0;if("function"!=typeof a)throw new Ni(pa);return b=ih(b)||0,Lg(c)&&(r=!!c.leading,s="maxWait"in c&&nj(ih(c.maxWait)||0,b),t="trailing"in c?!!c.trailing:t),i.cancel=d,i.flush=g,i}function fg(a){return fe(a,ea)}function gg(a,b){if("function"!=typeof a||b&&"function"!=typeof b)throw new Ni(pa);var c=function(){var d=arguments,e=b?b.apply(this,d):d[0],f=c.cache;if(f.has(e))return f.get(e);var g=a.apply(this,d);return c.cache=f.set(e,g),g};return c.cache=new gg.Cache,c}function hg(a){if("function"!=typeof a)throw new Ni(pa);return function(){return!a.apply(this,arguments)}}function ig(a){return bg(2,a)}function jg(a,b){if("function"!=typeof a)throw new Ni(pa);return b=nj(b===V?a.length-1:gh(b),0),function(){for(var d=arguments,e=-1,f=nj(d.length-b,0),g=Array(f);++e<f;)g[e]=d[b+e];switch(b){case 0:return a.call(this,g);case 1:return a.call(this,d[0],g);case 2:return a.call(this,d[0],d[1],g)}var h=Array(b+1);for(e=-1;++e<b;)h[e]=d[e];return h[b]=g,c(a,this,h)}}function kg(a,b){if("function"!=typeof a)throw new Ni(pa);return b=b===V?0:nj(gh(b),0),jg(function(d){var e=d[b],f=d.slice(0,b);return e&&m(f,e),c(a,this,f)})}function lg(a,b,c){var d=!0,e=!0;if("function"!=typeof a)throw new Ni(pa);return Lg(c)&&(d="leading"in c?!!c.leading:d,e="trailing"in c?!!c.trailing:e),eg(a,b,{leading:d,maxWait:b,trailing:e})}function mg(a){return ag(a,1)}function ng(a,b){return b=null==b?ni:b,rk(b,a)}function og(){if(!arguments.length)return[];var a=arguments[0];return uk(a)?a:[a]}function pg(a){return zc(a)}function qg(a,b){return zc(a,!1,b)}function rg(a){return zc(a,!0)}function sg(a,b){return zc(a,!0,b)}function tg(a,b){return a===b||a!==a&&b!==b}function ug(a,b){return a>b}function vg(a,b){return a>=b}function wg(a){return zg(a)&&Ri.call(a,"callee")&&(!fj.call(a,"callee")||Ui.call(a)==za)}function xg(a){return Mg(a)&&Ui.call(a)==Pa}function yg(a){return null!=a&&!("function"==typeof a&&Ig(a))&&Kg(Lj(a))}function zg(a){return Mg(a)&&yg(a)}function Ag(a){return a===!0||a===!1||Mg(a)&&Ui.call(a)==Ba}function Bg(a){return Mg(a)&&Ui.call(a)==Ca}function Cg(a){return!!a&&1===a.nodeType&&Mg(a)&&!Vg(a)}function Dg(a){if(yg(a)&&(uk(a)||Zg(a)||Ig(a.splice)||wg(a)))return!a.length;for(var b in a)if(Ri.call(a,b))return!1;return!0}function Eg(a,b){return Wc(a,b)}function Fg(a,b,c){c="function"==typeof c?c:V;var d=c?c(a,b):V;return d===V?Wc(a,b,c):!!d}function Gg(a){return Mg(a)?Ui.call(a)==Da||"string"==typeof a.message&&"string"==typeof a.name:!1}function Hg(a){return"number"==typeof a&&kj(a)}function Ig(a){var b=Lg(a)?Ui.call(a):"";return b==Ea||b==Fa}function Jg(a){return"number"==typeof a&&a==gh(a)}function Kg(a){return"number"==typeof a&&a>-1&&a%1==0&&sa>=a}function Lg(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}function Mg(a){return!!a&&"object"==typeof a}function Ng(a){return Mg(a)&&oe(a)==Ga}function Og(a,b){return a===b||Yc(a,b,le(b))}function Pg(a,b,c){return c="function"==typeof c?c:V,Yc(a,b,le(b),c)}function Qg(a){return Ug(a)&&a!=+a}function Rg(a){return null==a?!1:Ig(a)?Wi.test(Qi.call(a)):Mg(a)&&(L(a)?Wi:vb).test(a)}function Sg(a){return null===a}function Tg(a){return null==a}function Ug(a){return"number"==typeof a||Mg(a)&&Ui.call(a)==Ha}function Vg(a){
-if(!Mg(a)||Ui.call(a)!=Ia||L(a))return!1;var b=bj(a);if(null===b)return!0;var c=b.constructor;return"function"==typeof c&&c instanceof c&&Qi.call(c)==Ti}function Wg(a){return Lg(a)&&Ui.call(a)==Ja}function Xg(a){return Jg(a)&&a>=-sa&&sa>=a}function Yg(a){return Mg(a)&&oe(a)==Ka}function Zg(a){return"string"==typeof a||!uk(a)&&Mg(a)&&Ui.call(a)==La}function $g(a){return"symbol"==typeof a||Mg(a)&&Ui.call(a)==Ma}function _g(a){return Mg(a)&&Kg(a.length)&&!!pc[Ui.call(a)]}function ah(a){return a===V}function bh(a){return Mg(a)&&oe(a)==Na}function ch(a){return Mg(a)&&Ui.call(a)==Oa}function dh(a,b){return b>a}function eh(a,b){return b>=a}function fh(a){if(!a)return[];if(yg(a))return Zg(a)?S(a):Ld(a);if(dj&&a[dj])return N(a[dj]());var b=oe(a),c=b==Ga?O:b==Ka?Q:Lh;return c(a)}function gh(a){if(!a)return 0===a?a:0;if(a=ih(a),a===ra||a===-ra){var b=0>a?-1:1;return b*ta}var c=a%1;return a===a?c?a-c:a:0}function hh(a){return a?yc(gh(a),0,va):0}function ih(a){if(Lg(a)){var b=Ig(a.valueOf)?a.valueOf():a;a=Lg(b)?b+"":b}if("string"!=typeof a)return 0===a?a:+a;a=a.replace(mb,"");var c=ub.test(a);return c||wb.test(a)?xc(a.slice(2),c?2:8):tb.test(a)?ua:+a}function jh(a){return Md(a,zh(a))}function kh(a){return yc(gh(a),-sa,sa)}function lh(a){if("string"==typeof a)return a;if(null==a)return"";if($g(a))return Zi?Cj.call(a):"";var b=a+"";return"0"==b&&1/a==-ra?"-0":b}function mh(a,b){var c=Cc(a);return b?rc(c,b):c}function nh(a,b){return r(a,ke(b,3),Mc,!0)}function oh(a,b){return r(a,ke(b,3),Nc,!0)}function ph(a,b){return null==a?a:Gj(a,uc(b),zh)}function qh(a,b){return null==a?a:Hj(a,uc(b),zh)}function rh(a,b){return a&&Mc(a,uc(b))}function sh(a,b){return a&&Nc(a,uc(b))}function th(a){return null==a?[]:Oc(a,yh(a))}function uh(a){return null==a?[]:Oc(a,zh(a))}function vh(a,b,c){var d=null==a?V:Pc(a,b);return d===V?c:d}function wh(a,b){return qe(a,b,Qc)}function xh(a,b){return qe(a,b,Rc)}function yh(a){var b=ze(a);if(!b&&!yg(a))return $c(a);var c=ue(a),d=!!c,e=c||[],f=e.length;for(var g in a)!Qc(a,g)||d&&("length"==g||M(g,f))||b&&"constructor"==g||e.push(g);return e}function zh(a){for(var b=-1,c=ze(a),d=_c(a),e=d.length,f=ue(a),g=!!f,h=f||[],i=h.length;++b<e;){var j=d[b];g&&("length"==j||M(j,i))||"constructor"==j&&(c||!Ri.call(a,j))||h.push(j)}return h}function Ah(a,b){var c={};return b=ke(b,3),Mc(a,function(a,d,e){c[b(a,d,e)]=a}),c}function Bh(a,b){var c={};return b=ke(b,3),Mc(a,function(a,d,e){c[d]=b(a,d,e)}),c}function Ch(a,b){return b=ke(b),hd(a,function(a,c){return!b(a,c)})}function Dh(a,b){return null==a?{}:hd(a,ke(b))}function Eh(a,b,c){if(we(b,a))d=null==a?V:a[b];else{b=vc(b);var d=vh(a,b);a=De(a,b)}return d===V&&(d=c),Ig(d)?d.call(a):d}function Fh(a,b,c){return null==a?a:pd(a,b,c)}function Gh(a,b,c,d){return d="function"==typeof d?d:V,null==a?a:pd(a,b,c,d)}function Hh(a){return y(a,yh(a))}function Ih(a){return y(a,zh(a))}function Jh(a,b,c){var d=uk(a)||_g(a);if(b=ke(b,4),null==c)if(d||Lg(a)){var e=a.constructor;c=d?uk(a)?new e:[]:Ig(e)?Cc(bj(a)):{}}else c={};return(d?f:Mc)(a,function(a,d,e){return b(c,a,d,e)}),c}function Kh(a,b){return null==a?!0:xd(a,b)}function Lh(a){return a?A(a,yh(a)):[]}function Mh(a){return null==a?[]:A(a,zh(a))}function Nh(a,b,c){return c===V&&(c=b,b=V),c!==V&&(c=ih(c),c=c===c?c:0),b!==V&&(b=ih(b),b=b===b?b:0),yc(ih(a),b,c)}function Oh(a,b,c){return b=ih(b)||0,c===V?(c=b,b=0):c=ih(c)||0,a=ih(a),Sc(a,b,c)}function Ph(a,b,c){if(c&&"boolean"!=typeof c&&ve(a,b,c)&&(b=c=V),c===V&&("boolean"==typeof b?(c=b,b=V):"boolean"==typeof a&&(c=a,a=V)),a===V&&b===V?(a=0,b=1):(a=ih(a)||0,b===V?(b=a,a=0):b=ih(b)||0),a>b){var d=a;a=b,b=d}if(c||a%1||b%1){var e=qj();return oj(a+e*(b-a+wc("1e-"+((e+"").length-1))),b)}return nd(a,b)}function Qh(a){return Ok(lh(a).toLowerCase())}function Rh(a){return a=lh(a),a&&a.replace(yb,H).replace(hc,"")}function Sh(a,b,c){a=lh(a),b="string"==typeof b?b:b+"";var d=a.length;return c=c===V?d:yc(gh(c),0,d),c-=b.length,c>=0&&a.indexOf(b,c)==c}function Th(a){return a=lh(a),a&&db.test(a)?a.replace(bb,I):a}function Uh(a){return a=lh(a),a&&lb.test(a)?a.replace(kb,"\\$&"):a}function Vh(a,b,c){a=lh(a),b=gh(b);var d=R(a);if(!b||d>=b)return a;var e=(b-d)/2,f=jj(e),g=ij(e);return ae("",f,c)+a+ae("",g,c)}function Wh(a,b,c){return a=lh(a),a+ae(a,b,c)}function Xh(a,b,c){return a=lh(a),ae(a,b,c)+a}function Yh(a,b,c){return c||null==b?b=0:b&&(b=+b),a=lh(a).replace(mb,""),pj(a,b||(sb.test(a)?16:10))}function Zh(a,b){a=lh(a),b=gh(b);var c="";if(!a||1>b||b>sa)return c;do b%2&&(c+=a),b=jj(b/2),a+=a;while(b);return c}function $h(){var a=arguments,b=lh(a[0]);return a.length<3?b:b.replace(a[1],a[2])}function _h(a,b,c){return lh(a).split(b,c)}function ai(a,b,c){return a=lh(a),c=yc(gh(c),0,a.length),a.lastIndexOf(b,c)==c}function bi(a,b,c){var d=xb.templateSettings;c&&ve(a,b,c)&&(b=V),a=lh(a),b=yk({},b,d,ec);var e,f,g=yk({},b.imports,d.imports,ec),h=yh(g),i=A(g,h),j=0,k=b.interpolate||zb,l="__p += '",m=Mi((b.escape||zb).source+"|"+k.source+"|"+(k===gb?qb:zb).source+"|"+(b.evaluate||zb).source+"|$","g"),n="//# sourceURL="+("sourceURL"in b?b.sourceURL:"lodash.templateSources["+ ++oc+"]")+"\n";a.replace(m,function(b,c,d,g,h,i){return d||(d=g),l+=a.slice(j,i).replace(Ab,J),c&&(e=!0,l+="' +\n__e("+c+") +\n'"),h&&(f=!0,l+="';\n"+h+";\n__p += '"),d&&(l+="' +\n((__t = ("+d+")) == null ? '' : __t) +\n'"),j=i+b.length,b}),l+="';\n";var o=b.variable;o||(l="with (obj) {\n"+l+"\n}\n"),l=(f?l.replace(Za,""):l).replace($a,"$1").replace(_a,"$1;"),l="function("+(o||"obj")+") {\n"+(o?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(e?", __e = _.escape":"")+(f?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+l+"return __p\n}";var p=Sk(function(){return Function(h,n+"return "+l).apply(V,i)});if(p.source=l,Gg(p))throw p;return p}function ci(a){return lh(a).toLowerCase()}function di(a){return lh(a).toUpperCase()}function ei(a,b,c){if(a=lh(a),!a)return a;if(c||b===V)return a.replace(mb,"");if(b+="",!b)return a;var d=S(a),e=S(b);return d.slice(B(d,e),C(d,e)+1).join("")}function fi(a,b,c){if(a=lh(a),!a)return a;if(c||b===V)return a.replace(ob,"");if(b+="",!b)return a;var d=S(a);return d.slice(0,C(d,S(b))+1).join("")}function gi(a,b,c){if(a=lh(a),!a)return a;if(c||b===V)return a.replace(nb,"");if(b+="",!b)return a;var d=S(a);return d.slice(B(d,S(b))).join("")}function hi(a,b){var c=ha,d=ia;if(Lg(b)){var e="separator"in b?b.separator:e;c="length"in b?gh(b.length):c,d="omission"in b?lh(b.omission):d}a=lh(a);var f=a.length;if(jc.test(a)){var g=S(a);f=g.length}if(c>=f)return a;var h=c-R(d);if(1>h)return d;var i=g?g.slice(0,h).join(""):a.slice(0,h);if(e===V)return i+d;if(g&&(h+=i.length-h),Wg(e)){if(a.slice(h).search(e)){var j,k=i;for(e.global||(e=Mi(e.source,lh(rb.exec(e))+"g")),e.lastIndex=0;j=e.exec(k);)var l=j.index;i=i.slice(0,l===V?h:l)}}else if(a.indexOf(e,h)!=h){var m=i.lastIndexOf(e);m>-1&&(i=i.slice(0,m))}return i+d}function ii(a){return a=lh(a),a&&cb.test(a)?a.replace(ab,T):a}function ji(a,b,c){return a=lh(a),b=c?V:b,b===V&&(b=mc.test(a)?lc:kc),a.match(b)||[]}function ki(a){var b=a?a.length:0,d=ke();return a=b?l(a,function(a){if("function"!=typeof a[1])throw new Ni(pa);return[d(a[0]),a[1]]}):[],jg(function(d){for(var e=-1;++e<b;){var f=a[e];if(c(f[0],this,d))return c(f[1],this,d)}})}function li(a){return Bc(zc(a,!0))}function mi(a){return function(){return a}}function ni(a){return a}function oi(a){return Zc("function"==typeof a?a:zc(a,!0))}function pi(a){return bd(zc(a,!0))}function qi(a,b){return cd(a,zc(b,!0))}function ri(a,b,c){var d=yh(b),e=Oc(b,d);null!=c||Lg(b)&&(e.length||!d.length)||(c=b,b=a,a=this,e=Oc(b,yh(b)));var g=Lg(c)&&"chain"in c?c.chain:!0,h=Ig(a);return f(e,function(c){var d=b[c];a[c]=d,h&&(a.prototype[c]=function(){var b=this.__chain__;if(g||b){var c=a(this.__wrapped__),e=c.__actions__=Ld(this.__actions__);return e.push({func:d,args:arguments,thisArg:a}),c.__chain__=b,c}return d.apply(a,m([this.value()],arguments))})}),a}function si(){return Fc._===this&&(Fc._=Vi),this}function ti(){}function ui(a){return a=gh(a),function(){return arguments[a]}}function vi(a){return we(a)?id(a):jd(a)}function wi(a){return function(b){return null==a?V:Pc(a,b)}}function xi(a,b){if(a=gh(a),1>a||a>sa)return[];var c=va,d=oj(a,va);b=uc(b),a-=va;for(var e=x(d,b);++c<a;)b(c);return e}function yi(a){return uk(a)?l(a,String):Fe(a)}function zi(a){var b=++Si;return lh(a)+b}function Ai(a,b){var c;return a===V&&b===V?0:(a!==V&&(c=a),b!==V&&(c=c===V?b:c+b),c)}function Bi(a){return a&&a.length?q(a,ni,ug):V}function Ci(a,b){return a&&a.length?q(a,ke(b),ug):V}function Di(a){return Hi(a)/(a?a.length:0)}function Ei(a){return a&&a.length?q(a,ni,dh):V}function Fi(a,b){return a&&a.length?q(a,ke(b),dh):V}function Gi(a,b){var c;return a===V&&b===V?0:(a!==V&&(c=a),b!==V&&(c=c===V?b:c-b),c)}function Hi(a){return a&&a.length?w(a,ni):0}function Ii(a,b){return a&&a.length?w(a,ke(b)):0}D=D?Gc.defaults({},D,Gc.pick(Fc,nc)):Fc;var Ji=D.Date,Ki=D.Error,Li=D.Math,Mi=D.RegExp,Ni=D.TypeError,Oi=D.Array.prototype,Pi=D.Object.prototype,Qi=D.Function.prototype.toString,Ri=Pi.hasOwnProperty,Si=0,Ti=Qi.call(Object),Ui=Pi.toString,Vi=Fc._,Wi=Mi("^"+Qi.call(Ri).replace(kb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Xi=Ac?D.Buffer:V,Yi=D.Reflect,Zi=D.Symbol,$i=D.Uint8Array,_i=D.clearTimeout,aj=Yi?Yi.enumerate:V,bj=Object.getPrototypeOf,cj=Object.getOwnPropertySymbols,dj="symbol"==typeof(dj=Zi&&Zi.iterator)?dj:V,ej=Object.create,fj=Pi.propertyIsEnumerable,gj=D.setTimeout,hj=Oi.splice,ij=Li.ceil,jj=Li.floor,kj=D.isFinite,lj=Oi.join,mj=Object.keys,nj=Li.max,oj=Li.min,pj=D.parseInt,qj=Li.random,rj=Oi.reverse,sj=me(D,"Map"),tj=me(D,"Set"),uj=me(D,"WeakMap"),vj=me(Object,"create"),wj=uj&&new uj,xj=sj?Qi.call(sj):"",yj=tj?Qi.call(tj):"",zj=uj?Qi.call(uj):"",Aj=Zi?Zi.prototype:V,Bj=Zi?Aj.valueOf:V,Cj=Zi?Aj.toString:V,Dj={};xb.templateSettings={escape:eb,evaluate:fb,interpolate:gb,variable:"",imports:{_:xb}};var Ej=Rd(Mc),Fj=Rd(Nc,!0),Gj=Sd(),Hj=Sd(!0);aj&&!fj.call({valueOf:1},"valueOf")&&(_c=function(a){return N(aj(a))});var Ij=wj?function(a,b){return wj.set(a,b),a}:ni,Jj=tj&&2===new tj([1,2]).size?function(a){return new tj(a)}:ti,Kj=wj?function(a){return wj.get(a)}:ti,Lj=id("length"),Mj=cj||function(){return[]};(sj&&oe(new sj)!=Ga||tj&&oe(new tj)!=Ka||uj&&oe(new uj)!=Na)&&(oe=function(a){var b=Ui.call(a),c=b==Ia?a.constructor:null,d="function"==typeof c?Qi.call(c):"";if(d)switch(d){case xj:return Ga;case yj:return Ka;case zj:return Na}return b});var Nj=function(){var a=0,b=0;return function(c,d){var e=lk(),f=ka-(e-b);if(b=e,f>0){if(++a>=ja)return c}else a=0;return Ij(c,d)}}(),Oj=jg(function(a,b){return uk(a)||(a=null==a?[]:[Object(a)]),b=Kc(b,1),e(a,b)}),Pj=jg(function(a,b){return zg(a)?Ec(a,Kc(b,1,!0)):[]}),Qj=jg(function(a,b){var c=Ye(b);return zg(c)&&(c=V),zg(a)?Ec(a,Kc(b,1,!0),ke(c)):[]}),Rj=jg(function(a,b){var c=Ye(b);return zg(c)&&(c=V),zg(a)?Ec(a,Kc(b,1,!0),V,c):[]}),Sj=jg(function(a){var b=l(a,tc);return b.length&&b[0]===a[0]?Tc(b):[]}),Tj=jg(function(a){var b=Ye(a),c=l(a,tc);return b===Ye(c)?b=V:c.pop(),c.length&&c[0]===a[0]?Tc(c,ke(b)):[]}),Uj=jg(function(a){var b=Ye(a),c=l(a,tc);return b===Ye(c)?b=V:c.pop(),c.length&&c[0]===a[0]?Tc(c,V,b):[]}),Vj=jg($e),Wj=jg(function(a,b){b=l(Kc(b,1),String);var c=sc(a,b);return md(a,b.sort(E)),c}),Xj=jg(function(a){return wd(Kc(a,1,!0))}),Yj=jg(function(a){var b=Ye(a);return zg(b)&&(b=V),wd(Kc(a,1,!0),ke(b))}),Zj=jg(function(a){var b=Ye(a);return zg(b)&&(b=V),wd(Kc(a,1,!0),V,b)}),$j=jg(function(a,b){return zg(a)?Ec(a,b):[]}),_j=jg(function(a){return Ad(i(a,zg))}),ak=jg(function(a){var b=Ye(a);return zg(b)&&(b=V),Ad(i(a,zg),ke(b))}),bk=jg(function(a){var b=Ye(a);return zg(b)&&(b=V),Ad(i(a,zg),V,b)}),ck=jg(uf),dk=jg(function(a){var b=a.length,c=b>1?a[b-1]:V;return c="function"==typeof c?(a.pop(),c):V,vf(a,c)}),ek=jg(function(a){a=Kc(a,1);var b=a.length,c=b?a[0]:0,d=this.__wrapped__,e=function(b){return sc(b,a)};return!(b>1||this.__actions__.length)&&d instanceof Db&&M(c)?(d=d.slice(c,+c+(b?1:0)),d.__actions__.push({func:Af,args:[e],thisArg:V}),new Cb(d,this.__chain__).thru(function(a){return b&&!a.length&&a.push(V),a})):this.thru(e)}),fk=Pd(function(a,b,c){Ri.call(a,c)?++a[c]:a[c]=1}),gk=Pd(function(a,b,c){Ri.call(a,c)?a[c].push(b):a[c]=[b]}),hk=jg(function(a,b,d){var e=-1,f="function"==typeof b,g=we(b),h=yg(a)?Array(a.length):[];return Ej(a,function(a){var i=f?b:g&&null!=a?a[b]:V;h[++e]=i?c(i,a,d):Vc(a,b,d)}),h}),ik=Pd(function(a,b,c){a[c]=b}),jk=Pd(function(a,b,c){a[c?0:1].push(b)},function(){return[[],[]]}),kk=jg(function(a,b){if(null==a)return[];var c=b.length;return c>1&&ve(a,b[0],b[1])?b=[]:c>2&&ve(b[0],b[1],b[2])&&(b.length=1),fd(a,Kc(b,1),[])}),lk=Ji.now,mk=jg(function(a,b,c){var d=X;if(c.length){var e=P(c,ne(mk));d|=aa}return fe(a,d,b,c,e)}),nk=jg(function(a,b,c){var d=X|Y;if(c.length){var e=P(c,ne(nk));d|=aa}return fe(b,d,a,c,e)}),ok=jg(function(a,b){return Dc(a,1,b)}),pk=jg(function(a,b,c){return Dc(a,ih(b)||0,c)}),qk=jg(function(a,b){b=l(Kc(b,1),ke());var d=b.length;return jg(function(e){for(var f=-1,g=oj(e.length,d);++f<g;)e[f]=b[f].call(this,e[f]);return c(a,this,e)})}),rk=jg(function(a,b){var c=P(b,ne(rk));return fe(a,aa,V,b,c)}),sk=jg(function(a,b){var c=P(b,ne(sk));return fe(a,ba,V,b,c)}),tk=jg(function(a,b){return fe(a,da,V,V,V,Kc(b,1))}),uk=Array.isArray,vk=Xi?function(a){return a instanceof Xi}:mi(!1),wk=Qd(function(a,b){Md(b,yh(b),a)}),xk=Qd(function(a,b){Md(b,zh(b),a)}),yk=Qd(function(a,b,c,d){Nd(b,zh(b),a,d)}),zk=Qd(function(a,b,c,d){Nd(b,yh(b),a,d)}),Ak=jg(function(a,b){return sc(a,Kc(b,1))}),Bk=jg(function(a){return a.push(V,ec),c(yk,V,a)}),Ck=jg(function(a){return a.push(V,Ce),c(Hk,V,a)}),Dk=$d(function(a,b,c){a[b]=c},mi(ni)),Ek=$d(function(a,b,c){Ri.call(a,b)?a[b].push(c):a[b]=[c]},ke),Fk=jg(Vc),Gk=Qd(function(a,b,c){dd(a,b,c)}),Hk=Qd(function(a,b,c,d){dd(a,b,c,d)}),Ik=jg(function(a,b){return null==a?{}:(b=l(Kc(b,1),String),gd(a,Ec(zh(a),b)))}),Jk=jg(function(a,b){return null==a?{}:gd(a,Kc(b,1))}),Kk=Vd(function(a,b,c){return b=b.toLowerCase(),a+(c?Qh(b):b)}),Lk=Vd(function(a,b,c){return a+(c?"-":"")+b.toLowerCase()}),Mk=Vd(function(a,b,c){return a+(c?" ":"")+b.toLowerCase()}),Nk=Ud("toLowerCase"),Ok=Ud("toUpperCase"),Pk=Vd(function(a,b,c){return a+(c?"_":"")+b.toLowerCase()}),Qk=Vd(function(a,b,c){return a+(c?" ":"")+Qh(b)}),Rk=Vd(function(a,b,c){return a+(c?" ":"")+b.toUpperCase()}),Sk=jg(function(a,b){try{return c(a,V,b)}catch(d){return Gg(d)?d:new Ki(d)}}),Tk=jg(function(a,b){return f(Kc(b,1),function(b){a[b]=mk(a[b],a)}),a}),Uk=Yd(),Vk=Yd(!0),Wk=jg(function(a,b){return function(c){return Vc(c,a,b)}}),Xk=jg(function(a,b){return function(c){return Vc(a,c,b)}}),Yk=_d(l),Zk=_d(h),$k=_d(p),_k=ce(),al=ce(!0),bl=ee("ceil"),cl=ee("floor"),dl=ee("round");return xb.prototype=Bb.prototype,Cb.prototype=Cc(Bb.prototype),Cb.prototype.constructor=Cb,Db.prototype=Cc(Bb.prototype),Db.prototype.constructor=Db,Hb.prototype=vj?vj(null):Pi,Mb.prototype.clear=Nb,Mb.prototype["delete"]=Ob,Mb.prototype.get=Pb,Mb.prototype.has=Qb,Mb.prototype.set=Rb,Sb.prototype.push=Ub,Vb.prototype.clear=Wb,Vb.prototype["delete"]=Xb,Vb.prototype.get=Yb,Vb.prototype.has=Zb,Vb.prototype.set=$b,gg.Cache=Mb,xb.after=_f,xb.ary=ag,xb.assign=wk,xb.assignIn=xk,xb.assignInWith=yk,xb.assignWith=zk,xb.at=Ak,xb.before=bg,xb.bind=mk,xb.bindAll=Tk,xb.bindKey=nk,xb.castArray=og,xb.chain=yf,xb.chunk=He,xb.compact=Ie,xb.concat=Oj,xb.cond=ki,xb.conforms=li,xb.constant=mi,xb.countBy=fk,xb.create=mh,xb.curry=cg,xb.curryRight=dg,xb.debounce=eg,xb.defaults=Bk,xb.defaultsDeep=Ck,xb.defer=ok,xb.delay=pk,xb.difference=Pj,xb.differenceBy=Qj,xb.differenceWith=Rj,xb.drop=Je,xb.dropRight=Ke,xb.dropRightWhile=Le,xb.dropWhile=Me,xb.fill=Ne,xb.filter=Kf,xb.flatMap=Nf,xb.flatten=Qe,xb.flattenDeep=Re,xb.flattenDepth=Se,xb.flip=fg,xb.flow=Uk,xb.flowRight=Vk,xb.fromPairs=Te,xb.functions=th,xb.functionsIn=uh,xb.groupBy=gk,xb.initial=We,xb.intersection=Sj,xb.intersectionBy=Tj,xb.intersectionWith=Uj,xb.invert=Dk,xb.invertBy=Ek,xb.invokeMap=hk,xb.iteratee=oi,xb.keyBy=ik,xb.keys=yh,xb.keysIn=zh,xb.map=Rf,xb.mapKeys=Ah,xb.mapValues=Bh,xb.matches=pi,xb.matchesProperty=qi,xb.memoize=gg,xb.merge=Gk,xb.mergeWith=Hk,xb.method=Wk,xb.methodOf=Xk,xb.mixin=ri,xb.negate=hg,xb.nthArg=ui,xb.omit=Ik,xb.omitBy=Ch,xb.once=ig,xb.orderBy=Sf,xb.over=Yk,xb.overArgs=qk,xb.overEvery=Zk,xb.overSome=$k,xb.partial=rk,xb.partialRight=sk,xb.partition=jk,xb.pick=Jk,xb.pickBy=Dh,xb.property=vi,xb.propertyOf=wi,xb.pull=Vj,xb.pullAll=$e,xb.pullAllBy=_e,xb.pullAt=Wj,xb.range=_k,xb.rangeRight=al,xb.rearg=tk,xb.reject=Vf,xb.remove=af,xb.rest=jg,xb.reverse=bf,xb.sampleSize=Xf,xb.set=Fh,xb.setWith=Gh,xb.shuffle=Yf,xb.slice=cf,xb.sortBy=kk,xb.sortedUniq=kf,xb.sortedUniqBy=lf,xb.split=_h,xb.spread=kg,xb.tail=mf,xb.take=nf,xb.takeRight=of,xb.takeRightWhile=pf,xb.takeWhile=qf,xb.tap=zf,xb.throttle=lg,xb.thru=Af,xb.toArray=fh,xb.toPairs=Hh,xb.toPairsIn=Ih,xb.toPath=yi,xb.toPlainObject=jh,xb.transform=Jh,xb.unary=mg,xb.union=Xj,xb.unionBy=Yj,xb.unionWith=Zj,xb.uniq=rf,xb.uniqBy=sf,xb.uniqWith=tf,xb.unset=Kh,xb.unzip=uf,xb.unzipWith=vf,xb.values=Lh,xb.valuesIn=Mh,xb.without=$j,xb.words=ji,xb.wrap=ng,xb.xor=_j,xb.xorBy=ak,xb.xorWith=bk,xb.zip=ck,xb.zipObject=wf,xb.zipObjectDeep=xf,xb.zipWith=dk,xb.extend=xk,xb.extendWith=yk,ri(xb,xb),xb.add=Ai,xb.attempt=Sk,xb.camelCase=Kk,xb.capitalize=Qh,xb.ceil=bl,xb.clamp=Nh,xb.clone=pg,xb.cloneDeep=rg,xb.cloneDeepWith=sg,xb.cloneWith=qg,xb.deburr=Rh,xb.endsWith=Sh,xb.eq=tg,xb.escape=Th,xb.escapeRegExp=Uh,xb.every=Jf,xb.find=Lf,xb.findIndex=Oe,xb.findKey=nh,xb.findLast=Mf,xb.findLastIndex=Pe,xb.findLastKey=oh,xb.floor=cl,xb.forEach=Of,xb.forEachRight=Pf,xb.forIn=ph,xb.forInRight=qh,xb.forOwn=rh,xb.forOwnRight=sh,xb.get=vh,xb.gt=ug,xb.gte=vg,xb.has=wh,xb.hasIn=xh,xb.head=Ue,xb.identity=ni,xb.includes=Qf,xb.indexOf=Ve,xb.inRange=Oh,xb.invoke=Fk,xb.isArguments=wg,xb.isArray=uk,xb.isArrayBuffer=xg,xb.isArrayLike=yg,xb.isArrayLikeObject=zg,xb.isBoolean=Ag,xb.isBuffer=vk,xb.isDate=Bg,xb.isElement=Cg,xb.isEmpty=Dg,xb.isEqual=Eg,xb.isEqualWith=Fg,xb.isError=Gg,xb.isFinite=Hg,xb.isFunction=Ig,xb.isInteger=Jg,xb.isLength=Kg,xb.isMap=Ng,xb.isMatch=Og,xb.isMatchWith=Pg,xb.isNaN=Qg,xb.isNative=Rg,xb.isNil=Tg,xb.isNull=Sg,xb.isNumber=Ug,xb.isObject=Lg,xb.isObjectLike=Mg,xb.isPlainObject=Vg,xb.isRegExp=Wg,xb.isSafeInteger=Xg,xb.isSet=Yg,xb.isString=Zg,xb.isSymbol=$g,xb.isTypedArray=_g,xb.isUndefined=ah,xb.isWeakMap=bh,xb.isWeakSet=ch,xb.join=Xe,xb.kebabCase=Lk,xb.last=Ye,xb.lastIndexOf=Ze,xb.lowerCase=Mk,xb.lowerFirst=Nk,xb.lt=dh,xb.lte=eh,xb.max=Bi,xb.maxBy=Ci,xb.mean=Di,xb.min=Ei,xb.minBy=Fi,xb.noConflict=si,xb.noop=ti,xb.now=lk,xb.pad=Vh,xb.padEnd=Wh,xb.padStart=Xh,xb.parseInt=Yh,xb.random=Ph,xb.reduce=Tf,xb.reduceRight=Uf,xb.repeat=Zh,xb.replace=$h,xb.result=Eh,xb.round=dl,xb.runInContext=U,xb.sample=Wf,xb.size=Zf,xb.snakeCase=Pk,xb.some=$f,xb.sortedIndex=df,xb.sortedIndexBy=ef,xb.sortedIndexOf=ff,xb.sortedLastIndex=gf,xb.sortedLastIndexBy=hf,xb.sortedLastIndexOf=jf,xb.startCase=Qk,xb.startsWith=ai,xb.subtract=Gi,xb.sum=Hi,xb.sumBy=Ii,xb.template=bi,xb.times=xi,xb.toInteger=gh,xb.toLength=hh,xb.toLower=ci,xb.toNumber=ih,xb.toSafeInteger=kh,xb.toString=lh,xb.toUpper=di,xb.trim=ei,xb.trimEnd=fi,xb.trimStart=gi,xb.truncate=hi,xb.unescape=ii,xb.uniqueId=zi,xb.upperCase=Rk,xb.upperFirst=Ok,xb.each=Of,xb.eachRight=Pf,xb.first=Ue,ri(xb,function(){var a={};return Mc(xb,function(b,c){Ri.call(xb.prototype,c)||(a[c]=b)}),a}(),{chain:!1}),xb.VERSION=W,f(["bind","bindKey","curry","curryRight","partial","partialRight"],function(a){xb[a].placeholder=xb}),f(["drop","take"],function(a,b){Db.prototype[a]=function(c){var d=this.__filtered__;if(d&&!b)return new Db(this);c=c===V?1:nj(gh(c),0);var e=this.clone();return d?e.__takeCount__=oj(c,e.__takeCount__):e.__views__.push({size:oj(c,va),type:a+(e.__dir__<0?"Right":"")}),e},Db.prototype[a+"Right"]=function(b){return this.reverse()[a](b).reverse()}}),f(["filter","map","takeWhile"],function(a,b){var c=b+1,d=c==ma||c==oa;Db.prototype[a]=function(a){var b=this.clone();return b.__iteratees__.push({iteratee:ke(a,3),type:c}),b.__filtered__=b.__filtered__||d,b}}),f(["head","last"],function(a,b){var c="take"+(b?"Right":"");Db.prototype[a]=function(){return this[c](1).value()[0]}}),f(["initial","tail"],function(a,b){var c="drop"+(b?"":"Right");Db.prototype[a]=function(){return this.__filtered__?new Db(this):this[c](1)}}),Db.prototype.compact=function(){return this.filter(ni)},Db.prototype.find=function(a){return this.filter(a).head()},Db.prototype.findLast=function(a){return this.reverse().find(a)},Db.prototype.invokeMap=jg(function(a,b){return"function"==typeof a?new Db(this):this.map(function(c){return Vc(c,a,b)})}),Db.prototype.reject=function(a){return a=ke(a,3),this.filter(function(b){return!a(b)})},Db.prototype.slice=function(a,b){a=gh(a);var c=this;return c.__filtered__&&(a>0||0>b)?new Db(c):(0>a?c=c.takeRight(-a):a&&(c=c.drop(a)),b!==V&&(b=gh(b),c=0>b?c.dropRight(-b):c.take(b-a)),c)},Db.prototype.takeRightWhile=function(a){return this.reverse().takeWhile(a).reverse()},Db.prototype.toArray=function(){return this.take(va)},Mc(Db.prototype,function(a,b){var c=/^(?:filter|find|map|reject)|While$/.test(b),d=/^(?:head|last)$/.test(b),e=xb[d?"take"+("last"==b?"Right":""):b],f=d||/^find/.test(b);e&&(xb.prototype[b]=function(){var b=this.__wrapped__,g=d?[1]:arguments,h=b instanceof Db,i=g[0],j=h||uk(b),k=function(a){var b=e.apply(xb,m([a],g));return d&&l?b[0]:b};j&&c&&"function"==typeof i&&1!=i.length&&(h=j=!1);var l=this.__chain__,n=!!this.__actions__.length,o=f&&!l,p=h&&!n;if(!f&&j){b=p?b:new Db(this);var q=a.apply(b,g);return q.__actions__.push({func:Af,args:[k],thisArg:V}),new Cb(q,l)}return o&&p?a.apply(this,g):(q=this.thru(k),o?d?q.value()[0]:q.value():q)})}),f(["pop","push","shift","sort","splice","unshift"],function(a){var b=Oi[a],c=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",d=/^(?:pop|shift)$/.test(a);xb.prototype[a]=function(){var a=arguments;return d&&!this.__chain__?b.apply(this.value(),a):this[c](function(c){return b.apply(c,a)})}}),Mc(Db.prototype,function(a,b){var c=xb[b];if(c){var d=c.name+"",e=Dj[d]||(Dj[d]=[]);e.push({name:b,func:c})}}),Dj[Zd(V,Y).name]=[{name:"wrapper",func:V}],Db.prototype.clone=Eb,Db.prototype.reverse=Fb,Db.prototype.value=Gb,xb.prototype.at=ek,xb.prototype.chain=Bf,xb.prototype.commit=Cf,xb.prototype.flatMap=Df,xb.prototype.next=Ef,xb.prototype.plant=Gf,xb.prototype.reverse=Hf,xb.prototype.toJSON=xb.prototype.valueOf=xb.prototype.value=If,dj&&(xb.prototype[dj]=Ff),xb}var V,W="4.5.1",X=1,Y=2,Z=4,$=8,_=16,aa=32,ba=64,ca=128,da=256,ea=512,fa=1,ga=2,ha=30,ia="...",ja=150,ka=16,la=200,ma=1,na=2,oa=3,pa="Expected a function",qa="__lodash_hash_undefined__",ra=1/0,sa=9007199254740991,ta=1.7976931348623157e308,ua=NaN,va=4294967295,wa=va-1,xa=va>>>1,ya="__lodash_placeholder__",za="[object Arguments]",Aa="[object Array]",Ba="[object Boolean]",Ca="[object Date]",Da="[object Error]",Ea="[object Function]",Fa="[object GeneratorFunction]",Ga="[object Map]",Ha="[object Number]",Ia="[object Object]",Ja="[object RegExp]",Ka="[object Set]",La="[object String]",Ma="[object Symbol]",Na="[object WeakMap]",Oa="[object WeakSet]",Pa="[object ArrayBuffer]",Qa="[object Float32Array]",Ra="[object Float64Array]",Sa="[object Int8Array]",Ta="[object Int16Array]",Ua="[object Int32Array]",Va="[object Uint8Array]",Wa="[object Uint8ClampedArray]",Xa="[object Uint16Array]",Ya="[object Uint32Array]",Za=/\b__p \+= '';/g,$a=/\b(__p \+=) '' \+/g,_a=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ab=/&(?:amp|lt|gt|quot|#39|#96);/g,bb=/[&<>"'`]/g,cb=RegExp(ab.source),db=RegExp(bb.source),eb=/<%-([\s\S]+?)%>/g,fb=/<%([\s\S]+?)%>/g,gb=/<%=([\s\S]+?)%>/g,hb=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ib=/^\w*$/,jb=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g,kb=/[\\^$.*+?()[\]{}|]/g,lb=RegExp(kb.source),mb=/^\s+|\s+$/g,nb=/^\s+/,ob=/\s+$/,pb=/\\(\\)?/g,qb=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,rb=/\w*$/,sb=/^0x/i,tb=/^[-+]0x[0-9a-f]+$/i,ub=/^0b[01]+$/i,vb=/^\[object .+?Constructor\]$/,wb=/^0o[0-7]+$/i,xb=/^(?:0|[1-9]\d*)$/,yb=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,zb=/($^)/,Ab=/['\n\r\u2028\u2029\\]/g,Bb="\\ud800-\\udfff",Cb="\\u0300-\\u036f\\ufe20-\\ufe23",Db="\\u20d0-\\u20f0",Eb="\\u2700-\\u27bf",Fb="a-z\\xdf-\\xf6\\xf8-\\xff",Gb="\\xac\\xb1\\xd7\\xf7",Hb="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Ib="\\u2018\\u2019\\u201c\\u201d",Jb=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Kb="A-Z\\xc0-\\xd6\\xd8-\\xde",Lb="\\ufe0e\\ufe0f",Mb=Gb+Hb+Ib+Jb,Nb="["+Bb+"]",Ob="["+Mb+"]",Pb="["+Cb+Db+"]",Qb="\\d+",Rb="["+Eb+"]",Sb="["+Fb+"]",Tb="[^"+Bb+Mb+Qb+Eb+Fb+Kb+"]",Ub="\\ud83c[\\udffb-\\udfff]",Vb="(?:"+Pb+"|"+Ub+")",Wb="[^"+Bb+"]",Xb="(?:\\ud83c[\\udde6-\\uddff]){2}",Yb="[\\ud800-\\udbff][\\udc00-\\udfff]",Zb="["+Kb+"]",$b="\\u200d",_b="(?:"+Sb+"|"+Tb+")",ac="(?:"+Zb+"|"+Tb+")",bc=Vb+"?",cc="["+Lb+"]?",dc="(?:"+$b+"(?:"+[Wb,Xb,Yb].join("|")+")"+cc+bc+")*",ec=cc+bc+dc,fc="(?:"+[Rb,Xb,Yb].join("|")+")"+ec,gc="(?:"+[Wb+Pb+"?",Pb,Xb,Yb,Nb].join("|")+")",hc=RegExp(Pb,"g"),ic=RegExp(Ub+"(?="+Ub+")|"+gc+ec,"g"),jc=RegExp("["+$b+Bb+Cb+Db+Lb+"]"),kc=/[a-zA-Z0-9]+/g,lc=RegExp([Zb+"?"+Sb+"+(?="+[Ob,Zb,"$"].join("|")+")",ac+"+(?="+[Ob,Zb+_b,"$"].join("|")+")",Zb+"?"+_b+"+",Zb+"+",Qb,fc].join("|"),"g"),mc=/[a-z][A-Z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,nc=["Array","Buffer","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Reflect","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],oc=-1,pc={};pc[Qa]=pc[Ra]=pc[Sa]=pc[Ta]=pc[Ua]=pc[Va]=pc[Wa]=pc[Xa]=pc[Ya]=!0,pc[za]=pc[Aa]=pc[Pa]=pc[Ba]=pc[Ca]=pc[Da]=pc[Ea]=pc[Ga]=pc[Ha]=pc[Ia]=pc[Ja]=pc[Ka]=pc[La]=pc[Na]=!1;var qc={};qc[za]=qc[Aa]=qc[Pa]=qc[Ba]=qc[Ca]=qc[Qa]=qc[Ra]=qc[Sa]=qc[Ta]=qc[Ua]=qc[Ga]=qc[Ha]=qc[Ia]=qc[Ja]=qc[Ka]=qc[La]=qc[Ma]=qc[Va]=qc[Wa]=qc[Xa]=qc[Ya]=!0,qc[Da]=qc[Ea]=qc[Na]=!1;var rc={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},sc={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},tc={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&#96;":"`"},uc={"function":!0,object:!0},vc={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},wc=parseFloat,xc=parseInt,yc=uc[typeof exports]&&exports&&!exports.nodeType?exports:V,zc=uc[typeof module]&&module&&!module.nodeType?module:V,Ac=zc&&zc.exports===yc?yc:V,Bc=D(yc&&zc&&"object"==typeof global&&global),Cc=D(uc[typeof self]&&self),Dc=D(uc[typeof window]&&window),Ec=D(uc[typeof this]&&this),Fc=Bc||Dc!==(Ec&&Ec.window)&&Dc||Cc||Ec||Function("return this")(),Gc=U();(Dc||Cc||{})._=Gc,"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return Gc}):yc&&zc?(Ac&&((zc.exports=Gc)._=Gc),yc._=Gc):Fc._=Gc}.call(this),angular.module("templates-angularwizard",["step.html","wizard.html"]),angular.module("step.html",[]).run(["$templateCache",function(a){a.put("step.html",'<section ng-show="selected" ng-class="{current: selected, done: completed}" class="step" ng-transclude>\n</section>')}]),angular.module("wizard.html",[]).run(["$templateCache",function(a){a.put("wizard.html",'<div>\n    <div class="steps" ng-transclude></div>\n    <ul class="steps-indicator steps-{{getEnabledSteps().length}}" ng-if="!hideIndicators">\n      <li ng-class="{default: !step.completed && !step.selected, current: step.selected && !step.completed, done: step.completed && !step.selected, editing: step.selected && step.completed}" ng-repeat="step in getEnabledSteps()">\n        <a ng-click="goTo(step)">{{step.title || step.wzTitle}}</a>\n      </li>\n    </ul>\n</div>\n')}]),angular.module("mgo-angular-wizard",["templates-angularwizard"]),angular.module("mgo-angular-wizard").directive("wzStep",function(){return{restrict:"EA",replace:!0,transclude:!0,scope:{wzTitle:"@",title:"@",canenter:"=",canexit:"=",disabled:"@?wzDisabled"},require:"^wizard",templateUrl:function(a,b){return b.template||"step.html"},link:function(a,b,c,d){a.title=a.title||a.wzTitle,d.addStep(a)}}}),angular.module("mgo-angular-wizard").directive("wizard",function(){return{restrict:"EA",replace:!0,transclude:!0,scope:{currentStep:"=",onFinish:"&",hideIndicators:"=",editMode:"=",name:"@"},templateUrl:function(a,b){return b.template||"wizard.html"},controller:["$scope","$element","$log","WizardHandler","$q",function(a,b,c,d,e){function f(b){var c,d;return void 0===b.canenter?!0:"boolean"==typeof b.canenter?b.canenter:(d=b.canenter(a.context),angular.isFunction(d.then)?(c=e.defer(),d.then(function(a){c.resolve(a)}),c.promise):b.canenter(a.context)===!0)}function g(b,c){var d,f;return"undefined"==typeof b.canexit||a.getStepNumber(c)<a.currentStepNumber()?!0:"boolean"==typeof b.canexit?b.canexit:(f=b.canexit(a.context),angular.isFunction(f.then)?(d=e.defer(),f.then(function(a){d.resolve(a)}),d.promise):b.canexit(a.context)===!0)}function h(){_.each(a.getEnabledSteps(),function(a){a.selected=!1}),a.selectedStep=null}var i=!0;d.addWizard(a.name||d.defaultName,this),a.$on("$destroy",function(){d.removeWizard(a.name||d.defaultName)}),a.steps=[],a.context={},a.$watch("currentStep",function(b){if(b){var c=a.selectedStep.title||a.selectedStep.wzTitle;a.selectedStep&&c!==a.currentStep&&a.goTo(_.findWhere(a.getEnabledSteps(),{title:a.currentStep}))}}),a.$watch("[editMode, steps.length]",function(){var b=a.editMode;_.isUndefined(b)||_.isNull(b)||b&&_.each(a.getEnabledSteps(),function(a){a.completed=!0})},!0),this.addStep=function(b){a.steps.push(b),1===a.getEnabledSteps().length&&a.goTo(a.getEnabledSteps()[0])},this.context=a.context,a.getStepNumber=function(b){return _.indexOf(a.getEnabledSteps(),b)+1},a.goTo=function(b){if(i)h(),a.selectedStep=b,_.isUndefined(a.currentStep)||(a.currentStep=b.title||b.wzTitle),b.selected=!0,a.$emit("wizard:stepChanged",{step:b,index:_.indexOf(a.getEnabledSteps(),b)}),i=!1;else{var c;a.currentStepNumber()>0?c=a.currentStepNumber()-1:0===a.currentStepNumber()&&(c=0),e.all([g(a.getEnabledSteps()[c],b),f(b)]).then(function(c){c[0]&&c[1]&&(h(),a.selectedStep=b,_.isUndefined(a.currentStep)||(a.currentStep=b.title||b.wzTitle),b.selected=!0,a.$emit("wizard:stepChanged",{step:b,index:_.indexOf(a.getEnabledSteps(),b)}))})}},a.currentStepNumber=function(){return _.indexOf(a.getEnabledSteps(),a.selectedStep)+1},a.getEnabledSteps=function(){return _.filter(a.steps,function(a){return"true"!==a.disabled})},this.currentStepTitle=function(){return a.selectedStep.title},this.currentStepNumber=function(){return a.currentStepNumber()},this.next=function(b){var c=a.getEnabledSteps(),d=_.indexOf(c,a.selectedStep);if(angular.isFunction(b)){if(!b())return;d===c.length-1?this.finish():a.goTo(c[d+1])}b||(a.selectedStep.completed=!0),d===c.length-1?this.finish():a.goTo(c[d+1])},this.goTo=function(b){var c,d=a.getEnabledSteps();c=_.isNumber(b)?d[b]:_.findWhere(d,{title:b}),a.goTo(c)},this.finish=function(){a.onFinish&&a.onFinish()},this.previous=function(){var b=_.indexOf(a.getEnabledSteps(),a.selectedStep);if(0===b)throw new Error("Can't go back. It's already in step 0");a.goTo(a.getEnabledSteps()[b-1])},this.cancel=function(){var b=_.indexOf(a.getEnabledSteps(),a.selectedStep);if(0===b)throw new Error("Can't go back. It's already in step 0");a.goTo(a.getEnabledSteps()[0])}}]}}),wizardButtonDirective("wzNext"),wizardButtonDirective("wzPrevious"),wizardButtonDirective("wzFinish"),wizardButtonDirective("wzCancel"),angular.module("mgo-angular-wizard").factory("WizardHandler",function(){
-var a={},b={};return a.defaultName="defaultWizard",a.addWizard=function(a,c){b[a]=c},a.removeWizard=function(a){delete b[a]},a.wizard=function(c){var d=c;return c||(d=a.defaultName),b[d]},a}),angular.module("xeditable",[]).value("editableOptions",{theme:"default",icon_set:"default",buttons:"right",blurElem:"cancel",blurForm:"ignore",activate:"focus",isDisabled:!1,activationEvent:"click"}),angular.module("xeditable").directive("editableBsdate",["editableDirectiveFactory",function(a){return a({directiveName:"editableBsdate",inputTpl:"<div></div>",render:function(){this.parent.render.call(this);var a=angular.element('<input type="text" class="form-control" ng-model="$data"/>'),b=angular.element('<button type="button" class="btn btn-default"><i class="glyphicon glyphicon-calendar"></i></button>'),c=angular.element('<span class="input-group-btn"></span>');a.attr("datepicker-popup",this.attrs.eDatepickerPopupXEditable||"yyyy/MM/dd"),a.attr("is-open",this.attrs.eIsOpen),a.attr("date-disabled",this.attrs.eDateDisabled),a.attr("datepicker-popup",this.attrs.eDatepickerPopup),a.attr("datepicker-mode",this.attrs.eDatepickerMode||"day"),a.attr("min-date",this.attrs.eMinDate),a.attr("max-date",this.attrs.eMaxDate),a.attr("show-weeks",this.attrs.eShowWeeks||!0),a.attr("starting-day",this.attrs.eStartingDay||0),a.attr("init-date",this.attrs.eInitDate||new Date),a.attr("min-mode",this.attrs.eMinMode||"day"),a.attr("max-mode",this.attrs.eMaxMode||"year"),a.attr("format-day",this.attrs.eFormatDay||"dd"),a.attr("format-month",this.attrs.eFormatMonth||"MMMM"),a.attr("format-year",this.attrs.eFormatYear||"yyyy"),a.attr("format-day-header",this.attrs.eFormatDayHeader||"EEE"),a.attr("format-day-title",this.attrs.eFormatDayTitle||"MMMM yyyy"),a.attr("format-month-title",this.attrs.eFormatMonthTitle||"yyyy"),a.attr("year-range",this.attrs.eYearRange||20),a.attr("show-button-bar",this.attrs.eShowButtonBar||!0),a.attr("current-text",this.attrs.eCurrentText||"Today"),a.attr("clear-text",this.attrs.eClearText||"Clear"),a.attr("close-text",this.attrs.eCloseText||"Done"),a.attr("close-on-date-selection",this.attrs.eCloseOnDateSelection||!0),a.attr("date-picker-append-to-body",this.attrs.eDatePickerAppendToBody||!1),a.attr("date-disabled",this.attrs.eDateDisabled),b.attr("ng-click",this.attrs.eNgClick),c.append(b),this.inputEl.prepend(a),this.inputEl.append(c),this.inputEl.removeAttr("class"),this.inputEl.attr("class","input-group")}})}]),angular.module("xeditable").directive("editableBstime",["editableDirectiveFactory",function(a){return a({directiveName:"editableBstime",inputTpl:"<timepicker></timepicker>",render:function(){this.parent.render.call(this);var a=angular.element('<div class="well well-small" style="display:inline-block;"></div>');a.attr("ng-model",this.inputEl.attr("ng-model")),this.inputEl.removeAttr("ng-model"),this.attrs.eNgChange&&(a.attr("ng-change",this.inputEl.attr("ng-change")),this.inputEl.removeAttr("ng-change")),this.inputEl.wrap(a)}})}]),angular.module("xeditable").directive("editableCheckbox",["editableDirectiveFactory",function(a){return a({directiveName:"editableCheckbox",inputTpl:'<input type="checkbox">',render:function(){this.parent.render.call(this),this.attrs.eTitle&&(this.inputEl.wrap("<label></label>"),this.inputEl.parent().append(this.attrs.eTitle))},autosubmit:function(){var a=this;a.inputEl.bind("change",function(){setTimeout(function(){a.scope.$apply(function(){a.scope.$form.$submit()})},500)})}})}]),angular.module("xeditable").directive("editableChecklist",["editableDirectiveFactory","editableNgOptionsParser",function(a,b){return a({directiveName:"editableChecklist",inputTpl:"<span></span>",useCopy:!0,render:function(){this.parent.render.call(this);var a=b(this.attrs.eNgOptions),c='<label ng-repeat="'+a.ngRepeat+'"><input type="checkbox" checklist-model="$parent.$data" checklist-value="'+a.locals.valueFn+'"><span ng-bind="'+a.locals.displayFn+'"></span></label>';this.inputEl.removeAttr("ng-model"),this.inputEl.removeAttr("ng-options"),this.inputEl.html(c)}})}]),angular.module("xeditable").directive("editableCombodate",["editableDirectiveFactory","editableCombodate",function(a,b){return a({directiveName:"editableCombodate",inputTpl:'<input type="text">',render:function(){this.parent.render.call(this);var a=b.getInstance(this.inputEl,{value:new Date(this.scope.$data)}),c=this;a.$widget.find("select").bind("change",function(b){c.scope.$data=new Date(a.getValue()).toISOString()})}})}]),function(){var a="text|password|email|tel|number|url|search|color|date|datetime|time|month|week|file".split("|");angular.forEach(a,function(a){var b="editable"+a.charAt(0).toUpperCase()+a.slice(1);angular.module("xeditable").directive(b,["editableDirectiveFactory",function(c){return c({directiveName:b,inputTpl:'<input type="'+a+'">'})}])}),angular.module("xeditable").directive("editableRange",["editableDirectiveFactory",function(a){return a({directiveName:"editableRange",inputTpl:'<input type="range" id="range" name="range">',render:function(){this.parent.render.call(this),this.inputEl.after("<output>{{$data}}</output>")}})}])}(),angular.module("xeditable").directive("editableRadiolist",["editableDirectiveFactory","editableNgOptionsParser",function(a,b){return a({directiveName:"editableRadiolist",inputTpl:"<span></span>",render:function(){this.parent.render.call(this);var a=b(this.attrs.eNgOptions),c='<label ng-repeat="'+a.ngRepeat+'"><input type="radio" ng-disabled="'+this.attrs.eNgDisabled+'" ng-model="$parent.$data" value="{{'+a.locals.valueFn+'}}"><span ng-bind="'+a.locals.displayFn+'"></span></label>';this.inputEl.removeAttr("ng-model"),this.inputEl.removeAttr("ng-options"),this.inputEl.html(c)},autosubmit:function(){var a=this;a.inputEl.bind("change",function(){setTimeout(function(){a.scope.$apply(function(){a.scope.$form.$submit()})},500)})}})}]),angular.module("xeditable").directive("editableSelect",["editableDirectiveFactory",function(a){return a({directiveName:"editableSelect",inputTpl:"<select></select>",autosubmit:function(){var a=this;a.inputEl.bind("change",function(){a.scope.$apply(function(){a.scope.$form.$submit()})})}})}]),angular.module("xeditable").directive("editableTextarea",["editableDirectiveFactory",function(a){return a({directiveName:"editableTextarea",inputTpl:"<textarea></textarea>",addListeners:function(){var a=this;a.parent.addListeners.call(a),a.single&&"no"!==a.buttons&&a.autosubmit()},autosubmit:function(){var a=this;a.inputEl.bind("keydown",function(b){(b.ctrlKey||b.metaKey)&&13===b.keyCode&&a.scope.$apply(function(){a.scope.$form.$submit()})})}})}]),angular.module("xeditable").factory("editableController",["$q","editableUtils",function(a,b){function c(a,c,d,e,f,g,h,i,j,k){var l,m,n=this;n.scope=a,n.elem=d,n.attrs=c,n.inputEl=null,n.editorEl=null,n.single=!0,n.error="",n.theme=f[h.theme]||f["default"],n.parent={},n.icon_set="default"===h.icon_set?g["default"][h.theme]:g.external[h.icon_set],n.inputTpl="",n.directiveName="",n.useCopy=!1,n.single=null,n.buttons="right",n.init=function(b){if(n.single=b,n.name=c.eName||c[n.directiveName],!c[n.directiveName])throw"You should provide value for `"+n.directiveName+"` in editable element!";l=e(c[n.directiveName]),n.single?n.buttons=n.attrs.buttons||h.buttons:n.buttons="no",c.eName&&n.scope.$watch("$data",function(a){n.scope.$form.$data[c.eName]=a}),c.onshow&&(n.onshow=function(){return n.catchError(e(c.onshow)(a))}),c.onhide&&(n.onhide=function(){return e(c.onhide)(a)}),c.oncancel&&(n.oncancel=function(){return e(c.oncancel)(a)}),c.onbeforesave&&(n.onbeforesave=function(){return n.catchError(e(c.onbeforesave)(a))}),c.onaftersave&&(n.onaftersave=function(){return n.catchError(e(c.onaftersave)(a))}),a.$parent.$watch(c[n.directiveName],function(a,b){n.setLocalValue(),n.handleEmpty()})},n.render=function(){var a=n.theme;n.inputEl=angular.element(n.inputTpl),n.controlsEl=angular.element(a.controlsTpl),n.controlsEl.append(n.inputEl),"no"!==n.buttons&&(n.buttonsEl=angular.element(a.buttonsTpl),n.submitEl=angular.element(a.submitTpl),n.cancelEl=angular.element(a.cancelTpl),n.icon_set&&(n.submitEl.find("span").addClass(n.icon_set.ok),n.cancelEl.find("span").addClass(n.icon_set.cancel)),n.buttonsEl.append(n.submitEl).append(n.cancelEl),n.controlsEl.append(n.buttonsEl),n.inputEl.addClass("editable-has-buttons")),n.errorEl=angular.element(a.errorTpl),n.controlsEl.append(n.errorEl),n.editorEl=angular.element(n.single?a.formTpl:a.noformTpl),n.editorEl.append(n.controlsEl);for(var d in c.$attr)if(!(d.length<=1)){var e=!1,f=d.substring(1,2);if("e"===d.substring(0,1)&&f===f.toUpperCase()&&(e=d.substring(1),"Form"!==e&&"NgSubmit"!==e)){e=e.substring(0,1).toLowerCase()+b.camelToDash(e.substring(1));var g="value"!==e&&""===c[d]?e:c[d];n.inputEl.attr(e,g)}}n.inputEl.addClass("editable-input"),n.inputEl.attr("ng-model","$data"),n.editorEl.addClass(b.camelToDash(n.directiveName)),n.single&&(n.editorEl.attr("editable-form","$form"),n.editorEl.attr("blur",n.attrs.blur||("no"===n.buttons?"cancel":h.blurElem))),angular.isFunction(a.postrender)&&a.postrender.call(n)},n.setLocalValue=function(){n.scope.$data=n.useCopy?angular.copy(l(a.$parent)):l(a.$parent)},n.show=function(){return n.setLocalValue(),n.render(),d.after(n.editorEl),j(n.editorEl)(a),n.addListeners(),d.addClass("editable-hide"),n.onshow()},n.hide=function(){return n.editorEl.remove(),d.removeClass("editable-hide"),n.onhide()},n.cancel=function(){n.oncancel()},n.addListeners=function(){n.inputEl.bind("keyup",function(a){if(n.single)switch(a.keyCode){case 27:n.scope.$apply(function(){n.scope.$form.$cancel()})}}),n.single&&"no"===n.buttons&&n.autosubmit(),n.editorEl.bind("click",function(a){a.which&&1!==a.which||n.scope.$form.$visible&&(n.scope.$form._clicked=!0)})},n.setWaiting=function(a){a?(m=!n.inputEl.attr("disabled")&&!n.inputEl.attr("ng-disabled")&&!n.inputEl.attr("ng-enabled"),m&&(n.inputEl.attr("disabled","disabled"),n.buttonsEl&&n.buttonsEl.find("button").attr("disabled","disabled"))):m&&(n.inputEl.removeAttr("disabled"),n.buttonsEl&&n.buttonsEl.find("button").removeAttr("disabled"))},n.activate=function(a,b){setTimeout(function(){var c=n.inputEl[0];"focus"===h.activate&&c.focus&&(a&&(b=b||a,c.onfocus=function(){var c=this;setTimeout(function(){c.setSelectionRange(a,b)})}),c.focus()),"select"===h.activate&&c.select&&c.select()},0)},n.setError=function(b){angular.isObject(b)||(a.$error=b,n.error=b)},n.catchError=function(a,b){return angular.isObject(a)&&b!==!0?k.when(a).then(angular.bind(this,function(a){this.catchError(a,!0)}),angular.bind(this,function(a){this.catchError(a,!0)})):b&&angular.isObject(a)&&a.status&&200!==a.status&&a.data&&angular.isString(a.data)?(this.setError(a.data),a=a.data):angular.isString(a)&&this.setError(a),a},n.save=function(){l.assign(a.$parent,n.useCopy?angular.copy(n.scope.$data):n.scope.$data)},n.handleEmpty=function(){var b=l(a.$parent),c=null===b||void 0===b||""===b||angular.isArray(b)&&0===b.length;d.toggleClass("editable-empty",c)},n.autosubmit=angular.noop,n.onshow=angular.noop,n.onhide=angular.noop,n.oncancel=angular.noop,n.onbeforesave=angular.noop,n.onaftersave=angular.noop}return c.$inject=["$scope","$attrs","$element","$parse","editableThemes","editableIcons","editableOptions","$rootScope","$compile","$q"],c}]),angular.module("xeditable").factory("editableDirectiveFactory",["$parse","$compile","editableThemes","$rootScope","$document","editableController","editableFormController","editableOptions",function(a,b,c,d,e,f,g,h){return function(b){return{restrict:"A",scope:!0,require:[b.directiveName,"?^form"],controller:f,link:function(c,f,i,j){var k,l=j[0],m=!1;if(j[1])k=j[1],m=!0;else if(i.eForm){var n=a(i.eForm)(c);if(n)k=n,m=!0;else for(var o=0;o<e[0].forms.length;o++)if(e[0].forms[o].name===i.eForm){k=null,m=!0;break}}angular.forEach(b,function(a,b){void 0!==l[b]&&(l.parent[b]=l[b])}),angular.extend(l,b);var p=angular.isDefined(i.editDisabled)?c.$eval(i.editDisabled):h.isDisabled;if(!p)if(l.init(!m),c.$editable=l,f.addClass("editable"),m)if(k){if(c.$form=k,!c.$form.$addEditable)throw"Form with editable elements should have `editable-form` attribute.";c.$form.$addEditable(l)}else d.$$editableBuffer=d.$$editableBuffer||{},d.$$editableBuffer[i.eForm]=d.$$editableBuffer[i.eForm]||[],d.$$editableBuffer[i.eForm].push(l),c.$form=null;else c.$form=g(),c.$form.$addEditable(l),i.eForm&&(c.$parent[i.eForm]=c.$form),(!i.eForm||i.eClickable)&&(f.addClass("editable-click"),f.bind(h.activationEvent,function(a){a.preventDefault(),a.editable=l,c.$apply(function(){c.$form.$show()})}))}}}}]),angular.module("xeditable").factory("editableFormController",["$parse","$document","$rootScope","editablePromiseCollection","editableUtils",function(a,b,c,d,e){var f=[],g=function(a,b){if(b==a)return!0;for(var c=b.parentNode;null!==c;){if(c==a)return!0;c=c.parentNode}return!1},h=function(a,b){var c=!0,d=a.$editables;return angular.forEach(d,function(a){var d=a.editorEl[0];g(d,b.target)&&(c=!1)}),c};b.bind("click",function(a){if(!(a.which&&1!==a.which||a.isDefaultPrevented())){for(var b=[],d=[],e=0;e<f.length;e++)f[e]._clicked?f[e]._clicked=!1:f[e].$waiting||("cancel"===f[e]._blur&&h(f[e],a)&&b.push(f[e]),"submit"===f[e]._blur&&h(f[e],a)&&d.push(f[e]));(b.length||d.length)&&c.$apply(function(){angular.forEach(b,function(a){a.$cancel()}),angular.forEach(d,function(a){a.$submit()})})}});var i={$addEditable:function(a){this.$editables.push(a),a.elem.bind("$destroy",angular.bind(this,this.$removeEditable,a)),a.scope.$form||(a.scope.$form=this),this.$visible&&a.catchError(a.show())},$removeEditable:function(a){for(var b=0;b<this.$editables.length;b++)if(this.$editables[b]===a)return void this.$editables.splice(b,1)},$show:function(){if(!this.$visible){this.$visible=!0;var a=d();a.when(this.$onshow()),this.$setError(null,""),angular.forEach(this.$editables,function(b){a.when(b.show())}),a.then({onWait:angular.bind(this,this.$setWaiting),onTrue:angular.bind(this,this.$activate),onFalse:angular.bind(this,this.$activate),onString:angular.bind(this,this.$activate)}),setTimeout(angular.bind(this,function(){this._clicked=!1,-1===e.indexOf(f,this)&&f.push(this)}),0)}},$activate:function(a){var b;if(this.$editables.length){if(angular.isString(a))for(b=0;b<this.$editables.length;b++)if(this.$editables[b].name===a)return void this.$editables[b].activate();for(b=0;b<this.$editables.length;b++)if(this.$editables[b].error)return void this.$editables[b].activate();this.$editables[0].activate(this.$editables[0].elem[0].selectionStart,this.$editables[0].elem[0].selectionEnd)}},$hide:function(){this.$visible&&(this.$visible=!1,this.$onhide(),angular.forEach(this.$editables,function(a){a.hide()}),e.arrayRemove(f,this))},$cancel:function(){this.$visible&&(this.$oncancel(),angular.forEach(this.$editables,function(a){a.cancel()}),this.$hide())},$setWaiting:function(a){this.$waiting=!!a,angular.forEach(this.$editables,function(b){b.setWaiting(!!a)})},$setError:function(a,b){angular.forEach(this.$editables,function(c){a&&c.name!==a||c.setError(b)})},$submit:function(){function a(a){var b=d();b.when(this.$onbeforesave()),b.then({onWait:angular.bind(this,this.$setWaiting),onTrue:a?angular.bind(this,this.$save):angular.bind(this,this.$hide),onFalse:angular.bind(this,this.$hide),onString:angular.bind(this,this.$activate)})}if(!this.$waiting){this.$setError(null,"");var b=d();angular.forEach(this.$editables,function(a){b.when(a.onbeforesave())}),b.then({onWait:angular.bind(this,this.$setWaiting),onTrue:angular.bind(this,a,!0),onFalse:angular.bind(this,a,!1),onString:angular.bind(this,this.$activate)})}},$save:function(){angular.forEach(this.$editables,function(a){a.save()});var a=d();a.when(this.$onaftersave()),angular.forEach(this.$editables,function(b){a.when(b.onaftersave())}),a.then({onWait:angular.bind(this,this.$setWaiting),onTrue:angular.bind(this,this.$hide),onFalse:angular.bind(this,this.$hide),onString:angular.bind(this,this.$activate)})},$onshow:angular.noop,$oncancel:angular.noop,$onhide:angular.noop,$onbeforesave:angular.noop,$onaftersave:angular.noop};return function(){return angular.extend({$editables:[],$visible:!1,$waiting:!1,$data:{},_clicked:!1,_blur:null},i)}}]),angular.module("xeditable").directive("editableForm",["$rootScope","$parse","editableFormController","editableOptions",function(a,b,c,d){return{restrict:"A",require:["form"],compile:function(){return{pre:function(b,d,e,f){var g,h=f[0];e.editableForm?b[e.editableForm]&&b[e.editableForm].$show?(g=b[e.editableForm],angular.extend(h,g)):(g=c(),b[e.editableForm]=g,angular.extend(g,h)):(g=c(),angular.extend(h,g));var i=a.$$editableBuffer,j=h.$name;j&&i&&i[j]&&(angular.forEach(i[j],function(a){g.$addEditable(a)}),delete i[j])},post:function(a,c,e,f){var g;g=e.editableForm&&a[e.editableForm]&&a[e.editableForm].$show?a[e.editableForm]:f[0],e.onshow&&(g.$onshow=angular.bind(g,b(e.onshow),a)),e.onhide&&(g.$onhide=angular.bind(g,b(e.onhide),a)),e.oncancel&&(g.$oncancel=angular.bind(g,b(e.oncancel),a)),e.shown&&b(e.shown)(a)&&g.$show(),g._blur=e.blur||d.blurForm,e.ngSubmit||e.submit||(e.onbeforesave&&(g.$onbeforesave=function(){return b(e.onbeforesave)(a,{$data:g.$data})}),e.onaftersave&&(g.$onaftersave=function(){return b(e.onaftersave)(a,{$data:g.$data})}),c.bind("submit",function(b){b.preventDefault(),a.$apply(function(){g.$submit()})})),c.bind("click",function(a){a.which&&1!==a.which||g.$visible&&(g._clicked=!0)})}}}}}]),angular.module("xeditable").factory("editablePromiseCollection",["$q",function(a){function b(){return{promises:[],hasFalse:!1,hasString:!1,when:function(b,c){if(b===!1)this.hasFalse=!0;else if(!c&&angular.isObject(b))this.promises.push(a.when(b));else{if(!angular.isString(b))return;this.hasString=!0}},then:function(b){function c(){h.hasString||h.hasFalse?!h.hasString&&h.hasFalse?e():f():d()}b=b||{};var d=b.onTrue||angular.noop,e=b.onFalse||angular.noop,f=b.onString||angular.noop,g=b.onWait||angular.noop,h=this;this.promises.length?(g(!0),a.all(this.promises).then(function(a){g(!1),angular.forEach(a,function(a){h.when(a,!0)}),c()},function(a){g(!1),f()})):c()}}}return b}]),angular.module("xeditable").factory("editableUtils",[function(){return{indexOf:function(a,b){if(a.indexOf)return a.indexOf(b);for(var c=0;c<a.length;c++)if(b===a[c])return c;return-1},arrayRemove:function(a,b){var c=this.indexOf(a,b);return c>=0&&a.splice(c,1),b},camelToDash:function(a){var b=/[A-Z]/g;return a.replace(b,function(a,b){return(b?"-":"")+a.toLowerCase()})},dashToCamel:function(a){var b=/([\:\-\_]+(.))/g,c=/^moz([A-Z])/;return a.replace(b,function(a,b,c,d){return d?c.toUpperCase():c}).replace(c,"Moz$1")}}}]),angular.module("xeditable").factory("editableNgOptionsParser",[function(){function a(a){var c;if(!(c=a.match(b)))throw"ng-options parse error";var d,e=c[2]||c[1],f=c[4]||c[6],g=c[5],h=(c[3]||"",c[2]?c[1]:f),i=c[7],j=c[8],k=j?c[8]:null;return void 0===g?(d=f+" in "+i,void 0!==j&&(d+=" track by "+k)):d="("+g+", "+f+") in "+i,{ngRepeat:d,locals:{valueName:f,keyName:g,valueFn:h,displayFn:e}}}var b=/^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(.*?)(?:\s+track\s+by\s+(.*?))?$/;return a}]),angular.module("xeditable").factory("editableCombodate",[function(){function a(a,b){if(this.$element=angular.element(a),"INPUT"!=this.$element[0].nodeName)throw"Combodate should be applied to INPUT element";this.defaults={format:"YYYY-MM-DD HH:mm",template:"D / MMM / YYYY   H : mm",value:null,minYear:1970,maxYear:2015,yearDescending:!0,minuteStep:5,secondStep:1,firstItem:"empty",errorClass:null,customClass:"",roundTime:!0,smartDays:!0},this.options=angular.extend({},this.defaults,b),this.init()}return a.prototype={constructor:a,init:function(){if(this.map={day:["D","date"],month:["M","month"],year:["Y","year"],hour:["[Hh]","hours"],minute:["m","minutes"],second:["s","seconds"],ampm:["[Aa]",""]},this.$widget=angular.element('<span class="combodate"></span>').html(this.getTemplate()),this.initCombos(),this.options.smartDays){var a=this;this.$widget.find("select").bind("change",function(b){(angular.element(b.target).hasClass("month")||angular.element(b.target).hasClass("year"))&&a.fillCombo("day")})}this.$widget.find("select").css("width","auto"),this.$element.css("display","none").after(this.$widget),this.setValue(this.$element.val()||this.options.value)},getTemplate:function(){var a=this.options.template,b=this.options.customClass;return angular.forEach(this.map,function(b,c){b=b[0];var d=new RegExp(b+"+"),e=b.length>1?b.substring(1,2):b;a=a.replace(d,"{"+e+"}")}),a=a.replace(/ /g,"&nbsp;"),angular.forEach(this.map,function(c,d){c=c[0];var e=c.length>1?c.substring(1,2):c;a=a.replace("{"+e+"}",'<select class="'+d+" "+b+'"></select>')}),a},initCombos:function(){for(var a in this.map){var b=this.$widget[0].querySelectorAll("."+a);this["$"+a]=b.length?angular.element(b):null,this.fillCombo(a)}},fillCombo:function(a){var b=this["$"+a];if(b){var c="fill"+a.charAt(0).toUpperCase()+a.slice(1),d=this[c](),e=b.val();b.html("");for(var f=0;f<d.length;f++)b.append('<option value="'+d[f][0]+'">'+d[f][1]+"</option>");b.val(e)}},fillCommon:function(a){var b,c=[];if("name"===this.options.firstItem){b=moment.relativeTime||moment.langData()._relativeTime;var d="function"==typeof b[a]?b[a](1,!0,a,!1):b[a];d=d.split(" ").reverse()[0],c.push(["",d])}else"empty"===this.options.firstItem&&c.push(["",""]);return c},fillDay:function(){var a,b,c=this.fillCommon("d"),d=-1!==this.options.template.indexOf("DD"),e=31;if(this.options.smartDays&&this.$month&&this.$year){var f=parseInt(this.$month.val(),10),g=parseInt(this.$year.val(),10);isNaN(f)||isNaN(g)||(e=moment([g,f]).daysInMonth())}for(b=1;e>=b;b++)a=d?this.leadZero(b):b,c.push([b,a]);return c},fillMonth:function(){var a,b,c=this.fillCommon("M"),d=-1!==this.options.template.indexOf("MMMM"),e=-1!==this.options.template.indexOf("MMM"),f=-1!==this.options.template.indexOf("MM");for(b=0;11>=b;b++)a=d?moment().date(1).month(b).format("MMMM"):e?moment().date(1).month(b).format("MMM"):f?this.leadZero(b+1):b+1,c.push([b,a]);return c},fillYear:function(){var a,b,c=[],d=-1!==this.options.template.indexOf("YYYY");for(b=this.options.maxYear;b>=this.options.minYear;b--)a=d?b:(b+"").substring(2),c[this.options.yearDescending?"push":"unshift"]([b,a]);return c=this.fillCommon("y").concat(c)},fillHour:function(){var a,b,c=this.fillCommon("h"),d=-1!==this.options.template.indexOf("h"),e=(-1!==this.options.template.indexOf("H"),-1!==this.options.template.toLowerCase().indexOf("hh")),f=d?1:0,g=d?12:23;for(b=f;g>=b;b++)a=e?this.leadZero(b):b,c.push([b,a]);return c},fillMinute:function(){var a,b,c=this.fillCommon("m"),d=-1!==this.options.template.indexOf("mm");for(b=0;59>=b;b+=this.options.minuteStep)a=d?this.leadZero(b):b,c.push([b,a]);return c},fillSecond:function(){var a,b,c=this.fillCommon("s"),d=-1!==this.options.template.indexOf("ss");for(b=0;59>=b;b+=this.options.secondStep)a=d?this.leadZero(b):b,c.push([b,a]);return c},fillAmpm:function(){var a=-1!==this.options.template.indexOf("a"),b=(-1!==this.options.template.indexOf("A"),[["am",a?"am":"AM"],["pm",a?"pm":"PM"]]);return b},getValue:function(a){var b,c={},d=this,e=!1;return angular.forEach(this.map,function(a,b){if("ampm"!==b){var f="day"===b?1:0;return c[b]=d["$"+b]?parseInt(d["$"+b].val(),10):f,isNaN(c[b])?(e=!0,!1):void 0}}),e?"":(this.$ampm&&(12===c.hour?c.hour="am"===this.$ampm.val()?0:12:c.hour="am"===this.$ampm.val()?c.hour:c.hour+12),b=moment([c.year,c.month,c.day,c.hour,c.minute,c.second]),this.highlight(b),a=void 0===a?this.options.format:a,null===a?b.isValid()?b:null:b.isValid()?b.format(a):"")},setValue:function(a){function b(a,b){var c={};return angular.forEach(a.children("option"),function(a,d){var e=angular.element(a).attr("value");if(""!==e){var f=Math.abs(e-b);("undefined"==typeof c.distance||f<c.distance)&&(c={value:e,distance:f})}}),c.value}if(a){var c="string"==typeof a?moment(a,this.options.format,!0):moment(a),d=this,e={};c.isValid()&&(angular.forEach(this.map,function(a,b){"ampm"!==b&&(e[b]=c[a[1]]())}),this.$ampm&&(e.hour>=12?(e.ampm="pm",e.hour>12&&(e.hour-=12)):(e.ampm="am",0===e.hour&&(e.hour=12))),angular.forEach(e,function(a,c){d["$"+c]&&("minute"===c&&d.options.minuteStep>1&&d.options.roundTime&&(a=b(d["$"+c],a)),"second"===c&&d.options.secondStep>1&&d.options.roundTime&&(a=b(d["$"+c],a)),d["$"+c].val(a))}),this.options.smartDays&&this.fillCombo("day"),this.$element.val(c.format(this.options.format)).triggerHandler("change"))}},highlight:function(a){a.isValid()?this.options.errorClass?this.$widget.removeClass(this.options.errorClass):this.$widget.find("select").css("border-color",this.borderColor):this.options.errorClass?this.$widget.addClass(this.options.errorClass):(this.borderColor||(this.borderColor=this.$widget.find("select").css("border-color")),this.$widget.find("select").css("border-color","red"))},leadZero:function(a){return 9>=a?"0"+a:a},destroy:function(){this.$widget.remove(),this.$element.removeData("combodate").show()}},{getInstance:function(b,c){return new a(b,c)}}}]),angular.module("xeditable").factory("editableIcons",function(){var a={"default":{bs2:{ok:"icon-ok icon-white",cancel:"icon-remove"},bs3:{ok:"glyphicon glyphicon-ok",cancel:"glyphicon glyphicon-remove"}},external:{"font-awesome":{ok:"fa fa-check",cancel:"fa fa-times"}}};return a}),angular.module("xeditable").factory("editableThemes",function(){var a={"default":{formTpl:'<form class="editable-wrap"></form>',noformTpl:'<span class="editable-wrap"></span>',controlsTpl:'<span class="editable-controls"></span>',inputTpl:"",errorTpl:'<div class="editable-error" ng-show="$error" ng-bind="$error"></div>',buttonsTpl:'<span class="editable-buttons"></span>',submitTpl:'<button type="submit">save</button>',cancelTpl:'<button type="button" ng-click="$form.$cancel()">cancel</button>'},bs2:{formTpl:'<form class="form-inline editable-wrap" role="form"></form>',noformTpl:'<span class="editable-wrap"></span>',controlsTpl:'<div class="editable-controls controls control-group" ng-class="{\'error\': $error}"></div>',inputTpl:"",errorTpl:'<div class="editable-error help-block" ng-show="$error" ng-bind="$error"></div>',buttonsTpl:'<span class="editable-buttons"></span>',submitTpl:'<button type="submit" class="btn btn-primary"><span></span></button>',cancelTpl:'<button type="button" class="btn" ng-click="$form.$cancel()"><span></span></button>'},bs3:{formTpl:'<form class="form-inline editable-wrap" role="form"></form>',noformTpl:'<span class="editable-wrap"></span>',controlsTpl:'<div class="editable-controls form-group" ng-class="{\'has-error\': $error}"></div>',inputTpl:"",errorTpl:'<div class="editable-error help-block" ng-show="$error" ng-bind="$error"></div>',buttonsTpl:'<span class="editable-buttons"></span>',submitTpl:'<button type="submit" class="btn btn-primary"><span></span></button>',cancelTpl:'<button type="button" class="btn btn-default" ng-click="$form.$cancel()"><span></span></button>',buttonsClass:"",inputClass:"",postrender:function(){switch(this.directiveName){case"editableText":case"editableSelect":case"editableTextarea":case"editableEmail":case"editableTel":case"editableNumber":case"editableUrl":case"editableSearch":case"editableDate":case"editableDatetime":case"editableBsdate":case"editableTime":case"editableMonth":case"editableWeek":if(this.inputEl.addClass("form-control"),this.theme.inputClass){if(this.inputEl.attr("multiple")&&("input-sm"===this.theme.inputClass||"input-lg"===this.theme.inputClass))break;this.inputEl.addClass(this.theme.inputClass)}break;case"editableCheckbox":this.editorEl.addClass("checkbox")}this.buttonsEl&&this.theme.buttonsClass&&this.buttonsEl.find("button").addClass(this.theme.buttonsClass)}}};return a}),function(){"use strict";function a(a){function b(b,d){var f,p,q=b==window,r=d&&void 0!==d.message?d.message:void 0;if(d=a.extend({},a.blockUI.defaults,d||{}),!d.ignoreIfBlocked||!a(b).data("blockUI.isBlocked")){if(d.overlayCSS=a.extend({},a.blockUI.defaults.overlayCSS,d.overlayCSS||{}),f=a.extend({},a.blockUI.defaults.css,d.css||{}),d.onOverlayClick&&(d.overlayCSS.cursor="pointer"),p=a.extend({},a.blockUI.defaults.themedCSS,d.themedCSS||{}),r=void 0===r?d.message:r,q&&n&&c(window,{fadeOut:0}),r&&"string"!=typeof r&&(r.parentNode||r.jquery)){var s=r.jquery?r[0]:r,t={};a(b).data("blockUI.history",t),t.el=s,t.parent=s.parentNode,t.display=s.style.display,t.position=s.style.position,t.parent&&t.parent.removeChild(s)}a(b).data("blockUI.onUnblock",d.onUnblock);var u,v,w,x,y=d.baseZ;u=a(k||d.forceIframe?'<iframe class="blockUI" style="z-index:'+y++ +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+d.iframeSrc+'"></iframe>':'<div class="blockUI" style="display:none"></div>'),v=a(d.theme?'<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+y++ +';display:none"></div>':'<div class="blockUI blockOverlay" style="z-index:'+y++ +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>'),d.theme&&q?(x='<div class="blockUI '+d.blockMsgClass+' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(y+10)+';display:none;position:fixed">',d.title&&(x+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(d.title||"&nbsp;")+"</div>"),x+='<div class="ui-widget-content ui-dialog-content"></div>',x+="</div>"):d.theme?(x='<div class="blockUI '+d.blockMsgClass+' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(y+10)+';display:none;position:absolute">',d.title&&(x+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(d.title||"&nbsp;")+"</div>"),x+='<div class="ui-widget-content ui-dialog-content"></div>',x+="</div>"):x=q?'<div class="blockUI '+d.blockMsgClass+' blockPage" style="z-index:'+(y+10)+';display:none;position:fixed"></div>':'<div class="blockUI '+d.blockMsgClass+' blockElement" style="z-index:'+(y+10)+';display:none;position:absolute"></div>',w=a(x),r&&(d.theme?(w.css(p),w.addClass("ui-widget-content")):w.css(f)),d.theme||v.css(d.overlayCSS),v.css("position",q?"fixed":"absolute"),(k||d.forceIframe)&&u.css("opacity",0);var z=[u,v,w],A=a(q?"body":b);a.each(z,function(){this.appendTo(A)}),d.theme&&d.draggable&&a.fn.draggable&&w.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var B=m&&(!a.support.boxModel||a("object,embed",q?null:b).length>0);if(l||B){if(q&&d.allowBodyStretch&&a.support.boxModel&&a("html,body").css("height","100%"),(l||!a.support.boxModel)&&!q)var C=i(b,"borderTopWidth"),D=i(b,"borderLeftWidth"),E=C?"(0 - "+C+")":0,F=D?"(0 - "+D+")":0;a.each(z,function(a,b){var c=b[0].style;if(c.position="absolute",2>a)q?c.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+d.quirksmodeOffsetHack+') + "px"'):c.setExpression("height",'this.parentNode.offsetHeight + "px"'),q?c.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):c.setExpression("width",'this.parentNode.offsetWidth + "px"'),F&&c.setExpression("left",F),E&&c.setExpression("top",E);else if(d.centerY)q&&c.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'),c.marginTop=0;else if(!d.centerY&&q){var e=d.css&&d.css.top?parseInt(d.css.top,10):0,f="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+e+') + "px"';c.setExpression("top",f)}})}if(r&&(d.theme?w.find(".ui-widget-content").append(r):w.append(r),(r.jquery||r.nodeType)&&a(r).show()),(k||d.forceIframe)&&d.showOverlay&&u.show(),d.fadeIn){var G=d.onBlock?d.onBlock:j,H=d.showOverlay&&!r?G:j,I=r?G:j;d.showOverlay&&v._fadeIn(d.fadeIn,H),r&&w._fadeIn(d.fadeIn,I)}else d.showOverlay&&v.show(),r&&w.show(),d.onBlock&&d.onBlock.bind(w)();
-if(e(1,b,d),q?(n=w[0],o=a(d.focusableElements,n),d.focusInput&&setTimeout(g,20)):h(w[0],d.centerX,d.centerY),d.timeout){var J=setTimeout(function(){q?a.unblockUI(d):a(b).unblock(d)},d.timeout);a(b).data("blockUI.timeout",J)}}}function c(b,c){var f,g=b==window,h=a(b),i=h.data("blockUI.history"),j=h.data("blockUI.timeout");j&&(clearTimeout(j),h.removeData("blockUI.timeout")),c=a.extend({},a.blockUI.defaults,c||{}),e(0,b,c),null===c.onUnblock&&(c.onUnblock=h.data("blockUI.onUnblock"),h.removeData("blockUI.onUnblock"));var k;k=g?a("body").children().filter(".blockUI").add("body > .blockUI"):h.find(">.blockUI"),c.cursorReset&&(k.length>1&&(k[1].style.cursor=c.cursorReset),k.length>2&&(k[2].style.cursor=c.cursorReset)),g&&(n=o=null),c.fadeOut?(f=k.length,k.stop().fadeOut(c.fadeOut,function(){0===--f&&d(k,i,c,b)})):d(k,i,c,b)}function d(b,c,d,e){var f=a(e);if(!f.data("blockUI.isBlocked")){b.each(function(a,b){this.parentNode&&this.parentNode.removeChild(this)}),c&&c.el&&(c.el.style.display=c.display,c.el.style.position=c.position,c.el.style.cursor="default",c.parent&&c.parent.appendChild(c.el),f.removeData("blockUI.history")),f.data("blockUI.static")&&f.css("position","static"),"function"==typeof d.onUnblock&&d.onUnblock(e,d);var g=a(document.body),h=g.width(),i=g[0].style.width;g.width(h-1).width(h),g[0].style.width=i}}function e(b,c,d){var e=c==window,g=a(c);if((b||(!e||n)&&(e||g.data("blockUI.isBlocked")))&&(g.data("blockUI.isBlocked",b),e&&d.bindEvents&&(!b||d.showOverlay))){var h="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";b?a(document).bind(h,d,f):a(document).unbind(h,f)}}function f(b){if("keydown"===b.type&&b.keyCode&&9==b.keyCode&&n&&b.data.constrainTabKey){var c=o,d=!b.shiftKey&&b.target===c[c.length-1],e=b.shiftKey&&b.target===c[0];if(d||e)return setTimeout(function(){g(e)},10),!1}var f=b.data,h=a(b.target);return h.hasClass("blockOverlay")&&f.onOverlayClick&&f.onOverlayClick(b),h.parents("div."+f.blockMsgClass).length>0?!0:0===h.parents().children().filter("div.blockUI").length}function g(a){if(o){var b=o[a===!0?o.length-1:0];b&&b.focus()}}function h(a,b,c){var d=a.parentNode,e=a.style,f=(d.offsetWidth-a.offsetWidth)/2-i(d,"borderLeftWidth"),g=(d.offsetHeight-a.offsetHeight)/2-i(d,"borderTopWidth");b&&(e.left=f>0?f+"px":"0"),c&&(e.top=g>0?g+"px":"0")}function i(b,c){return parseInt(a.css(b,c),10)||0}a.fn._fadeIn=a.fn.fadeIn;var j=a.noop||function(){},k=/MSIE/.test(navigator.userAgent),l=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),m=(document.documentMode||0,a.isFunction(document.createElement("div").style.setExpression));a.blockUI=function(a){b(window,a)},a.unblockUI=function(a){c(window,a)},a.growlUI=function(b,c,d,e){var f=a('<div class="growlUI"></div>');b&&f.append("<h1>"+b+"</h1>"),c&&f.append("<h2>"+c+"</h2>"),void 0===d&&(d=3e3);var g=function(b){b=b||{},a.blockUI({message:f,fadeIn:"undefined"!=typeof b.fadeIn?b.fadeIn:700,fadeOut:"undefined"!=typeof b.fadeOut?b.fadeOut:1e3,timeout:"undefined"!=typeof b.timeout?b.timeout:d,centerY:!1,showOverlay:!1,onUnblock:e,css:a.blockUI.defaults.growlCSS})};g();f.css("opacity");f.mouseover(function(){g({fadeIn:0,timeout:3e4});var b=a(".blockMsg");b.stop(),b.fadeTo(300,1)}).mouseout(function(){a(".blockMsg").fadeOut(1e3)})},a.fn.block=function(c){if(this[0]===window)return a.blockUI(c),this;var d=a.extend({},a.blockUI.defaults,c||{});return this.each(function(){var b=a(this);d.ignoreIfBlocked&&b.data("blockUI.isBlocked")||b.unblock({fadeOut:0})}),this.each(function(){"static"==a.css(this,"position")&&(this.style.position="relative",a(this).data("blockUI.static",!0)),this.style.zoom=1,b(this,c)})},a.fn.unblock=function(b){return this[0]===window?(a.unblockUI(b),this):this.each(function(){c(this,b)})},a.blockUI.version=2.7,a.blockUI.defaults={message:"<h1>Please wait...</h1>",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:!1};var n=null,o=[]}"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],a):a(jQuery)}(),function(a,b,c){var d=a();a.fn.dropdownHover=function(c){return"ontouchstart"in document?this:(d=d.add(this.parent()),this.each(function(){function e(a){b.clearTimeout(f),b.clearTimeout(g),g=b.setTimeout(function(){d.find(":focus").blur(),n.instantlyCloseOthers===!0&&d.removeClass("open"),b.clearTimeout(g),h.attr("aria-expanded","true"),i.addClass("open"),h.trigger(l)},n.hoverDelay)}var f,g,h=a(this),i=h.parent(),j={delay:500,hoverDelay:0,instantlyCloseOthers:!0},k={delay:a(this).data("delay"),hoverDelay:a(this).data("hover-delay"),instantlyCloseOthers:a(this).data("close-others")},l="show.bs.dropdown",m="hide.bs.dropdown",n=a.extend(!0,{},j,c,k);i.hover(function(a){return i.hasClass("open")||h.is(a.target)?void e(a):!0},function(){b.clearTimeout(g),f=b.setTimeout(function(){h.attr("aria-expanded","false"),i.removeClass("open"),h.trigger(m)},n.delay)}),h.hover(function(a){return i.hasClass("open")||i.is(a.target)?void e(a):!0}),i.find(".dropdown-submenu").each(function(){var c,d=a(this);d.hover(function(){b.clearTimeout(c),d.children(".dropdown-menu").show(),d.siblings().children(".dropdown-menu").hide()},function(){var a=d.children(".dropdown-menu");c=b.setTimeout(function(){a.hide()},n.delay)})})}))},a(document).ready(function(){a('[data-hover="dropdown"]').dropdownHover()})}(jQuery,window),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){"use strict";function b(b){var c=[{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}];return a.each(c,function(){b=b.replace(this.re,this.ch)}),b}function c(a){var b={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},c="(?:"+Object.keys(b).join("|")+")",d=new RegExp(c),e=new RegExp(c,"g"),f=null==a?"":""+a;return d.test(f)?f.replace(e,function(a){return b[a]}):f}function d(b,c){var d=arguments,f=b,g=c;[].shift.apply(d);var h,i=this.each(function(){var b=a(this);if(b.is("select")){var c=b.data("selectpicker"),i="object"==typeof f&&f;if(c){if(i)for(var j in i)i.hasOwnProperty(j)&&(c.options[j]=i[j])}else{var k=a.extend({},e.DEFAULTS,a.fn.selectpicker.defaults||{},b.data(),i);k.template=a.extend({},e.DEFAULTS.template,a.fn.selectpicker.defaults?a.fn.selectpicker.defaults.template:{},b.data().template,i.template),b.data("selectpicker",c=new e(this,k,g))}"string"==typeof f&&(h=c[f]instanceof Function?c[f].apply(c,d):c.options[f])}});return"undefined"!=typeof h?h:i}String.prototype.includes||!function(){var a={}.toString,b=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),c="".indexOf,d=function(b){if(null==this)throw new TypeError;var d=String(this);if(b&&"[object RegExp]"==a.call(b))throw new TypeError;var e=d.length,f=String(b),g=f.length,h=arguments.length>1?arguments[1]:void 0,i=h?Number(h):0;i!=i&&(i=0);var j=Math.min(Math.max(i,0),e);return g+j>e?!1:-1!=c.call(d,f,i)};b?b(String.prototype,"includes",{value:d,configurable:!0,writable:!0}):String.prototype.includes=d}(),String.prototype.startsWith||!function(){var a=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),b={}.toString,c=function(a){if(null==this)throw new TypeError;var c=String(this);if(a&&"[object RegExp]"==b.call(a))throw new TypeError;var d=c.length,e=String(a),f=e.length,g=arguments.length>1?arguments[1]:void 0,h=g?Number(g):0;h!=h&&(h=0);var i=Math.min(Math.max(h,0),d);if(f+i>d)return!1;for(var j=-1;++j<f;)if(c.charCodeAt(i+j)!=e.charCodeAt(j))return!1;return!0};a?a(String.prototype,"startsWith",{value:c,configurable:!0,writable:!0}):String.prototype.startsWith=c}(),Object.keys||(Object.keys=function(a,b,c){c=[];for(b in a)c.hasOwnProperty.call(a,b)&&c.push(b);return c}),a.fn.triggerNative=function(a){var b,c=this[0];c.dispatchEvent?("function"==typeof Event?b=new Event(a,{bubbles:!0}):(b=document.createEvent("Event"),b.initEvent(a,!0,!1)),c.dispatchEvent(b)):(c.fireEvent&&(b=document.createEventObject(),b.eventType=a,c.fireEvent("on"+a,b)),this.trigger(a))},a.expr[":"].icontains=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.text()).toUpperCase();return f.includes(d[3].toUpperCase())},a.expr[":"].ibegins=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.text()).toUpperCase();return f.startsWith(d[3].toUpperCase())},a.expr[":"].aicontains=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.data("normalizedText")||e.text()).toUpperCase();return f.includes(d[3].toUpperCase())},a.expr[":"].aibegins=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.data("normalizedText")||e.text()).toUpperCase();return f.startsWith(d[3].toUpperCase())};var e=function(b,c,d){d&&(d.stopPropagation(),d.preventDefault()),this.$element=a(b),this.$newElement=null,this.$button=null,this.$menu=null,this.$lis=null,this.options=c,null===this.options.title&&(this.options.title=this.$element.attr("title")),this.val=e.prototype.val,this.render=e.prototype.render,this.refresh=e.prototype.refresh,this.setStyle=e.prototype.setStyle,this.selectAll=e.prototype.selectAll,this.deselectAll=e.prototype.deselectAll,this.destroy=e.prototype.destroy,this.remove=e.prototype.remove,this.show=e.prototype.show,this.hide=e.prototype.hide,this.init()};e.VERSION="1.7.7",e.DEFAULTS={noneSelectedText:"Nothing selected",noneResultsText:"No results matched {0}",countSelectedText:function(a,b){return 1==a?"{0} item selected":"{0} items selected"},maxOptionsText:function(a,b){return[1==a?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==b?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",doneButton:!1,doneButtonText:"Close",multipleSeparator:", ",styleBase:"btn",style:"btn-default",size:"auto",title:null,selectedTextFormat:"values",width:!1,container:!1,hideDisabled:!1,showSubtext:!1,showIcon:!0,showContent:!0,dropupAuto:!0,header:!1,liveSearch:!1,liveSearchPlaceholder:null,liveSearchNormalize:!1,liveSearchStyle:"contains",actionsBox:!1,iconBase:"glyphicon",tickIcon:"glyphicon-ok",template:{caret:'<span class="caret"></span>'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1},e.prototype={constructor:e,init:function(){var b=this,c=this.$element.attr("id");this.$element.addClass("bs-select-hidden"),this.liObj={},this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createView(),this.$element.after(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(".dropdown-menu"),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.options.dropdownAlignRight&&this.$menu.addClass("dropdown-menu-right"),"undefined"!=typeof c&&(this.$button.attr("data-id",c),a('label[for="'+c+'"]').click(function(a){a.preventDefault(),b.$button.focus()})),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.setStyle(),this.setWidth(),this.options.container&&this.selectPosition(),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(a){b.$element.trigger("hide.bs.select",a)},"hidden.bs.dropdown":function(a){b.$element.trigger("hidden.bs.select",a)},"show.bs.dropdown":function(a){b.$element.trigger("show.bs.select",a)},"shown.bs.dropdown":function(a){b.$element.trigger("shown.bs.select",a)}}),setTimeout(function(){b.$element.trigger("loaded.bs.select")})},createDropdown:function(){var b=this.multiple?" show-tick":"",d=this.$element.parent().hasClass("input-group")?" input-group-btn":"",e=this.autofocus?" autofocus":"",f=this.options.header?'<div class="popover-title"><button type="button" class="close" aria-hidden="true">&times;</button>'+this.options.header+"</div>":"",g=this.options.liveSearch?'<div class="bs-searchbox"><input type="text" class="form-control" autocomplete="off"'+(null===this.options.liveSearchPlaceholder?"":' placeholder="'+c(this.options.liveSearchPlaceholder)+'"')+"></div>":"",h=this.multiple&&this.options.actionsBox?'<div class="bs-actionsbox"><div class="btn-group btn-group-sm btn-block"><button type="button" class="actions-btn bs-select-all btn btn-default">'+this.options.selectAllText+'</button><button type="button" class="actions-btn bs-deselect-all btn btn-default">'+this.options.deselectAllText+"</button></div></div>":"",i=this.multiple&&this.options.doneButton?'<div class="bs-donebutton"><div class="btn-group btn-block"><button type="button" class="btn btn-sm btn-default">'+this.options.doneButtonText+"</button></div></div>":"",j='<div class="btn-group bootstrap-select'+b+d+'"><button type="button" class="'+this.options.styleBase+' dropdown-toggle" data-toggle="dropdown"'+e+'><span class="filter-option pull-left"></span>&nbsp;<span class="bs-caret">'+this.options.template.caret+'</span></button><div class="dropdown-menu open">'+f+g+h+'<ul class="dropdown-menu inner" role="menu"></ul>'+i+"</div></div>";return a(j)},createView:function(){var a=this.createDropdown(),b=this.createLi();return a.find("ul")[0].innerHTML=b,a},reloadLi:function(){this.destroyLi();var a=this.createLi();this.$menuInner[0].innerHTML=a},destroyLi:function(){this.$menu.find("li").remove()},createLi:function(){var d=this,e=[],f=0,g=document.createElement("option"),h=-1,i=function(a,b,c,d){return"<li"+("undefined"!=typeof c&""!==c?' class="'+c+'"':"")+("undefined"!=typeof b&null!==b?' data-original-index="'+b+'"':"")+("undefined"!=typeof d&null!==d?'data-optgroup="'+d+'"':"")+">"+a+"</li>"},j=function(a,e,f,g){return'<a tabindex="0"'+("undefined"!=typeof e?' class="'+e+'"':"")+("undefined"!=typeof f?' style="'+f+'"':"")+(d.options.liveSearchNormalize?' data-normalized-text="'+b(c(a))+'"':"")+("undefined"!=typeof g||null!==g?' data-tokens="'+g+'"':"")+">"+a+'<span class="'+d.options.iconBase+" "+d.options.tickIcon+' check-mark"></span></a>'};if(this.options.title&&!this.multiple&&(h--,!this.$element.find(".bs-title-option").length)){var k=this.$element[0];g.className="bs-title-option",g.appendChild(document.createTextNode(this.options.title)),g.value="",k.insertBefore(g,k.firstChild),void 0===a(k.options[k.selectedIndex]).attr("selected")&&(g.selected=!0)}return this.$element.find("option").each(function(b){var c=a(this);if(h++,!c.hasClass("bs-title-option")){var g=this.className||"",k=this.style.cssText,l=c.data("content")?c.data("content"):c.html(),m=c.data("tokens")?c.data("tokens"):null,n="undefined"!=typeof c.data("subtext")?'<small class="text-muted">'+c.data("subtext")+"</small>":"",o="undefined"!=typeof c.data("icon")?'<span class="'+d.options.iconBase+" "+c.data("icon")+'"></span> ':"",p=this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled;if(""!==o&&p&&(o="<span>"+o+"</span>"),d.options.hideDisabled&&p)return void h--;if(c.data("content")||(l=o+'<span class="text">'+l+n+"</span>"),"OPTGROUP"===this.parentNode.tagName&&c.data("divider")!==!0){var q=" "+this.parentNode.className||"";if(0===c.index()){f+=1;var r=this.parentNode.label,s="undefined"!=typeof c.parent().data("subtext")?'<small class="text-muted">'+c.parent().data("subtext")+"</small>":"",t=c.parent().data("icon")?'<span class="'+d.options.iconBase+" "+c.parent().data("icon")+'"></span> ':"";r=t+'<span class="text">'+r+s+"</span>",0!==b&&e.length>0&&(h++,e.push(i("",null,"divider",f+"div"))),h++,e.push(i(r,null,"dropdown-header"+q,f))}e.push(i(j(l,"opt "+g+q,k,m),b,"",f))}else c.data("divider")===!0?e.push(i("",b,"divider")):c.data("hidden")===!0?e.push(i(j(l,g,k,m),b,"hidden is-hidden")):(this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName&&(h++,e.push(i("",null,"divider",f+"div"))),e.push(i(j(l,g,k,m),b)));d.liObj[b]=h}}),this.multiple||0!==this.$element.find("option:selected").length||this.options.title||this.$element.find("option").eq(0).prop("selected",!0).attr("selected","selected"),e.join("")},findLis:function(){return null==this.$lis&&(this.$lis=this.$menu.find("li")),this.$lis},render:function(b){var c,d=this;b!==!1&&this.$element.find("option").each(function(a){var b=d.findLis().eq(d.liObj[a]);d.setDisabled(a,this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled,b),d.setSelected(a,this.selected,b)}),this.tabIndex();var e=this.$element.find("option").map(function(){if(this.selected){if(d.options.hideDisabled&&(this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled))return;var b,c=a(this),e=c.data("icon")&&d.options.showIcon?'<i class="'+d.options.iconBase+" "+c.data("icon")+'"></i> ':"";return b=d.options.showSubtext&&c.data("subtext")&&!d.multiple?' <small class="text-muted">'+c.data("subtext")+"</small>":"","undefined"!=typeof c.attr("title")?c.attr("title"):c.data("content")&&d.options.showContent?c.data("content"):e+c.html()+b}}).toArray(),f=this.multiple?e.join(this.options.multipleSeparator):e[0];if(this.multiple&&this.options.selectedTextFormat.indexOf("count")>-1){var g=this.options.selectedTextFormat.split(">");if(g.length>1&&e.length>g[1]||1==g.length&&e.length>=2){c=this.options.hideDisabled?", [disabled]":"";var h=this.$element.find("option").not('[data-divider="true"], [data-hidden="true"]'+c).length,i="function"==typeof this.options.countSelectedText?this.options.countSelectedText(e.length,h):this.options.countSelectedText;f=i.replace("{0}",e.length.toString()).replace("{1}",h.toString())}}void 0==this.options.title&&(this.options.title=this.$element.attr("title")),"static"==this.options.selectedTextFormat&&(f=this.options.title),f||(f="undefined"!=typeof this.options.title?this.options.title:this.options.noneSelectedText),this.$button.attr("title",a.trim(f.replace(/<[^>]*>?/g,""))),this.$button.children(".filter-option").html(f),this.$element.trigger("rendered.bs.select")},setStyle:function(a,b){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,""));var c=a?a:this.options.style;"add"==b?this.$button.addClass(c):"remove"==b?this.$button.removeClass(c):(this.$button.removeClass(this.options.style),this.$button.addClass(c))},liHeight:function(b){if(b||this.options.size!==!1&&!this.sizeInfo){var c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("ul"),f=document.createElement("li"),g=document.createElement("li"),h=document.createElement("a"),i=document.createElement("span"),j=this.options.header&&this.$menu.find(".popover-title").length>0?this.$menu.find(".popover-title")[0].cloneNode(!0):null,k=this.options.liveSearch?document.createElement("div"):null,l=this.options.actionsBox&&this.multiple&&this.$menu.find(".bs-actionsbox").length>0?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,m=this.options.doneButton&&this.multiple&&this.$menu.find(".bs-donebutton").length>0?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null;if(i.className="text",c.className=this.$menu[0].parentNode.className+" open",d.className="dropdown-menu open",e.className="dropdown-menu inner",f.className="divider",i.appendChild(document.createTextNode("Inner text")),h.appendChild(i),g.appendChild(h),e.appendChild(g),e.appendChild(f),j&&d.appendChild(j),k){var n=document.createElement("span");k.className="bs-searchbox",n.className="form-control",k.appendChild(n),d.appendChild(k)}l&&d.appendChild(l),d.appendChild(e),m&&d.appendChild(m),c.appendChild(d),document.body.appendChild(c);var o=h.offsetHeight,p=j?j.offsetHeight:0,q=k?k.offsetHeight:0,r=l?l.offsetHeight:0,s=m?m.offsetHeight:0,t=a(f).outerHeight(!0),u="function"==typeof getComputedStyle?getComputedStyle(d):!1,v=u?null:a(d),w=parseInt(u?u.paddingTop:v.css("paddingTop"))+parseInt(u?u.paddingBottom:v.css("paddingBottom"))+parseInt(u?u.borderTopWidth:v.css("borderTopWidth"))+parseInt(u?u.borderBottomWidth:v.css("borderBottomWidth")),x=w+parseInt(u?u.marginTop:v.css("marginTop"))+parseInt(u?u.marginBottom:v.css("marginBottom"))+2;document.body.removeChild(c),this.sizeInfo={liHeight:o,headerHeight:p,searchHeight:q,actionsHeight:r,doneButtonHeight:s,dividerHeight:t,menuPadding:w,menuExtras:x}}},setSize:function(){if(this.findLis(),this.liHeight(),this.options.header&&this.$menu.css("padding-top",0),this.options.size!==!1){var b,c,d,e,f=this,g=this.$menu,h=this.$menuInner,i=a(window),j=this.$newElement[0].offsetHeight,k=this.sizeInfo.liHeight,l=this.sizeInfo.headerHeight,m=this.sizeInfo.searchHeight,n=this.sizeInfo.actionsHeight,o=this.sizeInfo.doneButtonHeight,p=this.sizeInfo.dividerHeight,q=this.sizeInfo.menuPadding,r=this.sizeInfo.menuExtras,s=this.options.hideDisabled?".disabled":"",t=function(){d=f.$newElement.offset().top-i.scrollTop(),e=i.height()-d-j};if(t(),"auto"===this.options.size){var u=function(){var i,j=function(b,c){return function(d){return c?d.classList?d.classList.contains(b):a(d).hasClass(b):!(d.classList?d.classList.contains(b):a(d).hasClass(b))}},p=f.$menuInner[0].getElementsByTagName("li"),s=Array.prototype.filter?Array.prototype.filter.call(p,j("hidden",!1)):f.$lis.not(".hidden"),u=Array.prototype.filter?Array.prototype.filter.call(s,j("dropdown-header",!0)):s.filter(".dropdown-header");t(),b=e-r,f.options.container?(g.data("height")||g.data("height",g.height()),c=g.data("height")):c=g.height(),f.options.dropupAuto&&f.$newElement.toggleClass("dropup",d>e&&c>b-r),f.$newElement.hasClass("dropup")&&(b=d-r),i=s.length+u.length>3?3*k+r-2:0,g.css({"max-height":b+"px",overflow:"hidden","min-height":i+l+m+n+o+"px"}),h.css({"max-height":b-l-m-n-o-q+"px","overflow-y":"auto","min-height":Math.max(i-q,0)+"px"})};u(),this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize",u),i.off("resize.getSize scroll.getSize").on("resize.getSize scroll.getSize",u)}else if(this.options.size&&"auto"!=this.options.size&&this.$lis.not(s).length>this.options.size){var v=this.$lis.not(".divider").not(s).children().slice(0,this.options.size).last().parent().index(),w=this.$lis.slice(0,v+1).filter(".divider").length;b=k*this.options.size+w*p+q,f.options.container?(g.data("height")||g.data("height",g.height()),c=g.data("height")):c=g.height(),f.options.dropupAuto&&this.$newElement.toggleClass("dropup",d>e&&c>b-r),g.css({"max-height":b+l+m+n+o+"px",overflow:"hidden","min-height":""}),h.css({"max-height":b-q+"px","overflow-y":"auto","min-height":""})}}},setWidth:function(){if("auto"===this.options.width){this.$menu.css("min-width","0");var a=this.$menu.parent().clone().appendTo("body"),b=this.options.container?this.$newElement.clone().appendTo("body"):a,c=a.children(".dropdown-menu").outerWidth(),d=b.css("width","auto").children("button").outerWidth();a.remove(),b.remove(),this.$newElement.css("width",Math.max(c,d)+"px")}else"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width",""));this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement.removeClass("fit-width")},selectPosition:function(){this.$bsContainer=a('<div class="bs-container" />');var b,c,d=this,e=function(a){d.$bsContainer.addClass(a.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass("dropup",a.hasClass("dropup")),b=a.offset(),c=a.hasClass("dropup")?0:a[0].offsetHeight,d.$bsContainer.css({top:b.top+c,left:b.left,width:a[0].offsetWidth})};this.$newElement.on("click",function(){var b=a(this);d.isDisabled()||(e(b),d.$bsContainer.appendTo(d.options.container).toggleClass("open",!b.hasClass("open")).append(d.$menu))}),a(window).on("resize scroll",function(){e(d.$newElement)}),this.$element.on("hide.bs.select",function(){d.$menu.data("height",d.$menu.height()),d.$bsContainer.detach()})},setSelected:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),c.toggleClass("selected",b)},setDisabled:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),b?c.addClass("disabled").children("a").attr("href","#").attr("tabindex",-1):c.removeClass("disabled").children("a").removeAttr("href").attr("tabindex",0)},isDisabled:function(){return this.$element[0].disabled},checkDisabled:function(){var a=this;this.isDisabled()?(this.$newElement.addClass("disabled"),this.$button.addClass("disabled").attr("tabindex",-1)):(this.$button.hasClass("disabled")&&(this.$newElement.removeClass("disabled"),this.$button.removeClass("disabled")),-1!=this.$button.attr("tabindex")||this.$element.data("tabindex")||this.$button.removeAttr("tabindex")),this.$button.click(function(){return!a.isDisabled()})},tabIndex:function(){this.$element.is("[tabindex]")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex")))},clickListener:function(){var b=this,c=a(document);this.$newElement.on("touchstart.dropdown",".dropdown-menu",function(a){a.stopPropagation()}),c.data("spaceSelect",!1),this.$button.on("keyup",function(a){/(32)/.test(a.keyCode.toString(10))&&c.data("spaceSelect")&&(a.preventDefault(),c.data("spaceSelect",!1))}),this.$newElement.on("click",function(){b.setSize(),b.$element.on("shown.bs.select",function(){if(b.options.liveSearch||b.multiple){if(!b.multiple){var a=b.liObj[b.$element[0].selectedIndex];if("number"!=typeof a||b.options.size===!1)return;var c=b.$lis.eq(a)[0].offsetTop-b.$menuInner[0].offsetTop;c=c-b.$menuInner[0].offsetHeight/2+b.sizeInfo.liHeight/2,b.$menuInner[0].scrollTop=c}}else b.$menuInner.find(".selected a").focus()})}),this.$menuInner.on("click","li a",function(c){var d=a(this),e=d.parent().data("originalIndex"),f=b.$element.val(),g=b.$element.prop("selectedIndex");if(b.multiple&&c.stopPropagation(),c.preventDefault(),!b.isDisabled()&&!d.parent().hasClass("disabled")){var h=b.$element.find("option"),i=h.eq(e),j=i.prop("selected"),k=i.parent("optgroup"),l=b.options.maxOptions,m=k.data("maxOptions")||!1;if(b.multiple){if(i.prop("selected",!j),b.setSelected(e,!j),d.blur(),l!==!1||m!==!1){var n=l<h.filter(":selected").length,o=m<k.find("option:selected").length;if(l&&n||m&&o)if(l&&1==l)h.prop("selected",!1),i.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected"),b.setSelected(e,!0);else if(m&&1==m){k.find("option:selected").prop("selected",!1),i.prop("selected",!0);var p=d.parent().data("optgroup");b.$menuInner.find('[data-optgroup="'+p+'"]').removeClass("selected"),b.setSelected(e,!0)}else{var q="function"==typeof b.options.maxOptionsText?b.options.maxOptionsText(l,m):b.options.maxOptionsText,r=q[0].replace("{n}",l),s=q[1].replace("{n}",m),t=a('<div class="notify"></div>');q[2]&&(r=r.replace("{var}",q[2][l>1?0:1]),s=s.replace("{var}",q[2][m>1?0:1])),i.prop("selected",!1),b.$menu.append(t),l&&n&&(t.append(a("<div>"+r+"</div>")),b.$element.trigger("maxReached.bs.select")),m&&o&&(t.append(a("<div>"+s+"</div>")),b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(e,!1)},10),t.delay(750).fadeOut(300,function(){a(this).remove()})}}}else h.prop("selected",!1),i.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected"),b.setSelected(e,!0);b.multiple?b.options.liveSearch&&b.$searchbox.focus():b.$button.focus(),(f!=b.$element.val()&&b.multiple||g!=b.$element.prop("selectedIndex")&&!b.multiple)&&(b.$element.triggerNative("change"),b.$element.trigger("changed.bs.select",[e,i.prop("selected"),j]))}}),this.$menu.on("click","li.disabled a, .popover-title, .popover-title :not(.close)",function(c){c.currentTarget==this&&(c.preventDefault(),c.stopPropagation(),b.options.liveSearch&&!a(c.target).hasClass("close")?b.$searchbox.focus():b.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(a){a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click",".popover-title .close",function(){b.$button.click()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).hasClass("bs-select-all")?b.selectAll():b.deselectAll(),b.$element.triggerNative("change")}),this.$element.change(function(){b.render(!1)})},liveSearchListener:function(){var d=this,e=a('<li class="no-results"></li>');this.$newElement.on("click.dropdown.data-api touchstart.dropdown.data-api",function(){d.$menuInner.find(".active").removeClass("active"),d.$searchbox.val()&&(d.$searchbox.val(""),d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove()),d.multiple||d.$menuInner.find(".selected").addClass("active"),setTimeout(function(){d.$searchbox.focus()},10)}),this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){if(d.$searchbox.val()){var f=d.$lis.not(".is-hidden").removeClass("hidden").children("a");f=d.options.liveSearchNormalize?f.not(":a"+d._searchStyle()+'("'+b(d.$searchbox.val())+'")'):f.not(":"+d._searchStyle()+'("'+d.$searchbox.val()+'")'),f.parent().addClass("hidden"),d.$lis.filter(".dropdown-header").each(function(){var b=a(this),c=b.data("optgroup");0===d.$lis.filter("[data-optgroup="+c+"]").not(b).not(".hidden").length&&(b.addClass("hidden"),d.$lis.filter("[data-optgroup="+c+"div]").addClass("hidden"))});var g=d.$lis.not(".hidden");g.each(function(b){var c=a(this);c.hasClass("divider")&&(c.index()===g.first().index()||c.index()===g.last().index()||g.eq(b+1).hasClass("divider"))&&c.addClass("hidden")}),d.$lis.not(".hidden, .no-results").length?e.parent().length&&e.remove():(e.parent().length&&e.remove(),e.html(d.options.noneResultsText.replace("{0}",'"'+c(d.$searchbox.val())+'"')).show(),d.$menuInner.append(e))}else d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove();d.$lis.filter(".active").removeClass("active"),d.$searchbox.val()&&d.$lis.not(".hidden, .divider, .dropdown-header").eq(0).addClass("active").children("a").focus(),a(this).focus()})},_searchStyle:function(){var a={begins:"ibegins",startsWith:"ibegins"};return a[this.options.liveSearchStyle]||"icontains"},val:function(a){return"undefined"!=typeof a?(this.$element.val(a),this.render(),this.$element):this.$element.val()},changeAll:function(b){"undefined"==typeof b&&(b=!0),this.findLis();for(var c=this.$element.find("option"),d=this.$lis.not(".divider, .dropdown-header, .disabled, .hidden").toggleClass("selected",b),e=d.length,f=[],g=0;e>g;g++){var h=d[g].getAttribute("data-original-index");f[f.length]=c.eq(h)[0]}a(f).prop("selected",b),this.render(!1)},selectAll:function(){return this.changeAll(!0);
-},deselectAll:function(){return this.changeAll(!1)},keydown:function(c){var d,e,f,g,h,i,j,k,l,m=a(this),n=m.is("input")?m.parent().parent():m.parent(),o=n.data("this"),p=":not(.disabled, .hidden, .dropdown-header, .divider)",q={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"};if(o.options.liveSearch&&(n=m.parent().parent()),o.options.container&&(n=o.$menu),d=a("[role=menu] li",n),l=o.$menu.parent().hasClass("open"),!l&&(c.keyCode>=48&&c.keyCode<=57||c.keyCode>=96&&c.keyCode<=105||c.keyCode>=65&&c.keyCode<=90)&&(o.options.container?o.$newElement.trigger("click"):(o.setSize(),o.$menu.parent().addClass("open"),l=!0),o.$searchbox.focus()),o.options.liveSearch&&(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&0===o.$menu.find(".active").length&&(c.preventDefault(),o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus()),d=a("[role=menu] li"+p,n),m.val()||/(38|40)/.test(c.keyCode.toString(10))||0===d.filter(".active").length&&(d=o.$menuInner.find("li"),d=o.options.liveSearchNormalize?d.filter(":a"+o._searchStyle()+"("+b(q[c.keyCode])+")"):d.filter(":"+o._searchStyle()+"("+q[c.keyCode]+")"))),d.length){if(/(38|40)/.test(c.keyCode.toString(10)))e=d.index(d.find("a").filter(":focus").parent()),g=d.filter(p).first().index(),h=d.filter(p).last().index(),f=d.eq(e).nextAll(p).eq(0).index(),i=d.eq(e).prevAll(p).eq(0).index(),j=d.eq(f).prevAll(p).eq(0).index(),o.options.liveSearch&&(d.each(function(b){a(this).hasClass("disabled")||a(this).data("index",b)}),e=d.index(d.filter(".active")),g=d.first().data("index"),h=d.last().data("index"),f=d.eq(e).nextAll().eq(0).data("index"),i=d.eq(e).prevAll().eq(0).data("index"),j=d.eq(f).prevAll().eq(0).data("index")),k=m.data("prevIndex"),38==c.keyCode?(o.options.liveSearch&&e--,e!=j&&e>i&&(e=i),g>e&&(e=g),e==k&&(e=h)):40==c.keyCode&&(o.options.liveSearch&&e++,-1==e&&(e=0),e!=j&&f>e&&(e=f),e>h&&(e=h),e==k&&(e=g)),m.data("prevIndex",e),o.options.liveSearch?(c.preventDefault(),m.hasClass("dropdown-toggle")||(d.removeClass("active").eq(e).addClass("active").children("a").focus(),m.focus())):d.eq(e).children("a").focus();else if(!m.is("input")){var r,s,t=[];d.each(function(){a(this).hasClass("disabled")||a.trim(a(this).children("a").text().toLowerCase()).substring(0,1)==q[c.keyCode]&&t.push(a(this).index())}),r=a(document).data("keycount"),r++,a(document).data("keycount",r),s=a.trim(a(":focus").text().toLowerCase()).substring(0,1),s!=q[c.keyCode]?(r=1,a(document).data("keycount",r)):r>=t.length&&(a(document).data("keycount",0),r>t.length&&(r=1)),d.eq(t[r-1]).children("a").focus()}if((/(13|32)/.test(c.keyCode.toString(10))||/(^9$)/.test(c.keyCode.toString(10))&&o.options.selectOnTab)&&l){if(/(32)/.test(c.keyCode.toString(10))||c.preventDefault(),o.options.liveSearch)/(32)/.test(c.keyCode.toString(10))||(o.$menuInner.find(".active a").click(),m.focus());else{var u=a(":focus");u.click(),u.focus(),c.preventDefault(),a(document).data("spaceSelect",!0)}a(document).data("keycount",0)}(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(o.multiple||o.options.liveSearch)||/(27)/.test(c.keyCode.toString(10))&&!l)&&(o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus())}},mobile:function(){this.$element.addClass("mobile-device").appendTo(this.$newElement),this.options.container&&this.$menu.hide()},refresh:function(){this.$lis=null,this.liObj={},this.reloadLi(),this.render(),this.checkDisabled(),this.liHeight(!0),this.setStyle(),this.setWidth(),this.$lis&&this.$searchbox.trigger("propertychange"),this.$element.trigger("refreshed.bs.select")},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")}};var f=a.fn.selectpicker;a.fn.selectpicker=d,a.fn.selectpicker.Constructor=e,a.fn.selectpicker.noConflict=function(){return a.fn.selectpicker=f,this},a(document).data("keycount",0).on("keydown.bs.select",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input',e.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input',function(a){a.stopPropagation()}),a(window).on("load.bs.select.data-api",function(){a(".selectpicker").each(function(){var b=a(this);d.call(b,b.data())})})}(a)}),angular.module("checklist-model",[]).directive("checklistModel",["$parse","$compile",function(a,b){function c(a,b,c){if(angular.isArray(a))for(var d=a.length;d--;)if(c(a[d],b))return!0;return!1}function d(a,b,d){return a=angular.isArray(a)?a:[],c(a,b,d)||a.push(b),a}function e(a,b,c){if(angular.isArray(a))for(var d=a.length;d--;)if(c(a[d],b)){a.splice(d,1);break}return a}function f(f,g,h){function i(a,b){f[h.ngModel]=c(a,n,o)}var j=h.checklistModel;h.$set("checklistModel",null),b(g)(f),h.$set("checklistModel",j);var k=a(j),l=k.assign,m=a(h.checklistChange),n=h.checklistValue?a(h.checklistValue)(f.$parent):h.value,o=angular.equals;if(h.hasOwnProperty("checklistComparator"))if("."==h.checklistComparator[0]){var p=h.checklistComparator.substring(1);o=function(a,b){return a[p]===b[p]}}else o=a(h.checklistComparator)(f.$parent);f.$watch(h.ngModel,function(a,b){if(a!==b){var c=k(f.$parent);angular.isFunction(l)&&(a===!0?l(f.$parent,d(c,n,o)):l(f.$parent,e(c,n,o))),m&&m(f)}}),angular.isFunction(f.$parent.$watchCollection)?f.$parent.$watchCollection(j,i):f.$parent.$watch(j,i,!0)}return{restrict:"A",priority:1e3,terminal:!0,scope:!0,compile:function(a,b){if(("INPUT"!==a[0].tagName||"checkbox"!==b.type)&&"MD-CHECKBOX"!==a[0].tagName&&!b.btnCheckbox)throw'checklist-model should be applied to `input[type="checkbox"]` or `md-checkbox`.';if(!b.checklistValue&&!b.value)throw"You should provide `value` or `checklist-value`.";return b.ngModel||b.$set("ngModel","checked"),f}}}]),function(a,b,c){"use strict";a.fn.backstretch=function(d,f){return(d===c||0===d.length)&&a.error("No images were supplied for Backstretch"),0===a(b).scrollTop()&&b.scrollTo(0,0),this.each(function(){var b=a(this),c=b.data("backstretch");if(c){if("string"==typeof d&&"function"==typeof c[d])return void c[d](f);f=a.extend(c.options,f),c.destroy(!0)}c=new e(this,d,f),b.data("backstretch",c)})},a.backstretch=function(b,c){return a("body").backstretch(b,c).data("backstretch")},a.expr[":"].backstretch=function(b){return a(b).data("backstretch")!==c},a.fn.backstretch.defaults={centeredX:!0,centeredY:!0,duration:5e3,fade:0};var d={wrap:{left:0,top:0,overflow:"hidden",margin:0,padding:0,height:"100%",width:"100%",zIndex:-999999},img:{position:"absolute",display:"none",margin:0,padding:0,border:"none",width:"auto",height:"auto",maxHeight:"none",maxWidth:"none",zIndex:-999999}},e=function(c,e,g){this.options=a.extend({},a.fn.backstretch.defaults,g||{}),this.images=a.isArray(e)?e:[e],a.each(this.images,function(){a("<img />")[0].src=this}),this.isBody=c===document.body,this.$container=a(c),this.$root=this.isBody?a(f?b:document):this.$container;var h=this.$container.children(".backstretch").first();if(this.$wrap=h.length?h:a('<div class="backstretch"></div>').css(d.wrap).appendTo(this.$container),!this.isBody){var i=this.$container.css("position"),j=this.$container.css("zIndex");this.$container.css({position:"static"===i?"relative":i,zIndex:"auto"===j?0:j,background:"none"}),this.$wrap.css({zIndex:-999998})}this.$wrap.css({position:this.isBody&&f?"fixed":"absolute"}),this.index=0,this.show(this.index),a(b).on("resize.backstretch",a.proxy(this.resize,this)).on("orientationchange.backstretch",a.proxy(function(){this.isBody&&0===b.pageYOffset&&(b.scrollTo(0,1),this.resize())},this))};e.prototype={resize:function(){try{var a,c={left:0,top:0},d=this.isBody?this.$root.width():this.$root.innerWidth(),e=d,f=this.isBody?b.innerHeight?b.innerHeight:this.$root.height():this.$root.innerHeight(),g=e/this.$img.data("ratio");g>=f?(a=(g-f)/2,this.options.centeredY&&(c.top="-"+a+"px")):(g=f,e=g*this.$img.data("ratio"),a=(e-d)/2,this.options.centeredX&&(c.left="-"+a+"px")),this.$wrap.css({width:d,height:f}).find("img:not(.deleteable)").css({width:e,height:g}).css(c)}catch(h){}return this},show:function(b){if(!(Math.abs(b)>this.images.length-1)){var c=this,e=c.$wrap.find("img").addClass("deleteable"),f={relatedTarget:c.$container[0]};return c.$container.trigger(a.Event("backstretch.before",f),[c,b]),this.index=b,clearInterval(c.interval),c.$img=a("<img />").css(d.img).bind("load",function(d){var g=this.width||a(d.target).width(),h=this.height||a(d.target).height();a(this).data("ratio",g/h),a(this).fadeIn(c.options.speed||c.options.fade,function(){e.remove(),c.paused||c.cycle(),a(["after","show"]).each(function(){c.$container.trigger(a.Event("backstretch."+this,f),[c,b])})}),c.resize()}).appendTo(c.$wrap),c.$img.attr("src",c.images[b]),c}},next:function(){return this.show(this.index<this.images.length-1?this.index+1:0)},prev:function(){return this.show(0===this.index?this.images.length-1:this.index-1)},pause:function(){return this.paused=!0,this},resume:function(){return this.paused=!1,this.next(),this},cycle:function(){return this.images.length>1&&(clearInterval(this.interval),this.interval=setInterval(a.proxy(function(){this.paused||this.next()},this),this.options.duration)),this},destroy:function(c){a(b).off("resize.backstretch orientationchange.backstretch"),clearInterval(this.interval),c||this.$wrap.remove(),this.$container.removeData("backstretch")}};var f=function(){var a=navigator.userAgent,c=navigator.platform,d=a.match(/AppleWebKit\/([0-9]+)/),e=!!d&&d[1],f=a.match(/Fennec\/([0-9]+)/),g=!!f&&f[1],h=a.match(/Opera Mobi\/([0-9]+)/),i=!!h&&h[1],j=a.match(/MSIE ([0-9]+)/),k=!!j&&j[1];return!((c.indexOf("iPhone")>-1||c.indexOf("iPad")>-1||c.indexOf("iPod")>-1)&&e&&534>e||b.operamini&&"[object OperaMini]"==={}.toString.call(b.operamini)||h&&7458>i||a.indexOf("Android")>-1&&e&&533>e||g&&6>g||"palmGetResource"in b&&e&&534>e||a.indexOf("MeeGo")>-1&&a.indexOf("NokiaBrowser/8.5.0")>-1||k&&6>=k)}()}(jQuery,window),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}),function(a,b,c){function d(c){var d=b.console;f[c]||(f[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function e(b,c,e,f){if(Object.defineProperty)try{return void Object.defineProperty(b,c,{configurable:!0,enumerable:!0,get:function(){return d(f),e},set:function(a){d(f),e=a}})}catch(g){}a._definePropertyBroken=!0,b[c]=e}var f={};a.migrateWarnings=[],!a.migrateMute&&b.console&&b.console.log&&b.console.log("JQMIGRATE: Logging is active"),a.migrateTrace===c&&(a.migrateTrace=!0),a.migrateReset=function(){f={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&d("jQuery is not compatible with Quirks Mode");var g=a("<input/>",{size:1}).attr("size")&&a.attrFn,h=a.attr,i=a.attrHooks.value&&a.attrHooks.value.get||function(){return null},j=a.attrHooks.value&&a.attrHooks.value.set||function(){return c},k=/^(?:input|button)$/i,l=/^[238]$/,m=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,n=/^(?:checked|selected)$/i;e(a,"attrFn",g||{},"jQuery.attrFn is deprecated"),a.attr=function(b,e,f,i){var j=e.toLowerCase(),o=b&&b.nodeType;return i&&(h.length<4&&d("jQuery.fn.attr( props, pass ) is deprecated"),b&&!l.test(o)&&(g?e in g:a.isFunction(a.fn[e])))?a(b)[e](f):("type"===e&&f!==c&&k.test(b.nodeName)&&b.parentNode&&d("Can't change the 'type' of an input or button in IE 6/7/8"),!a.attrHooks[j]&&m.test(j)&&(a.attrHooks[j]={get:function(b,d){var e,f=a.prop(b,d);return f===!0||"boolean"!=typeof f&&(e=b.getAttributeNode(d))&&e.nodeValue!==!1?d.toLowerCase():c},set:function(b,c,d){var e;return c===!1?a.removeAttr(b,d):(e=a.propFix[d]||d,e in b&&(b[e]=!0),b.setAttribute(d,d.toLowerCase())),d}},n.test(j)&&d("jQuery.fn.attr('"+j+"') may use property instead of attribute")),h.call(a,b,e,f))},a.attrHooks.value={get:function(a,b){var c=(a.nodeName||"").toLowerCase();return"button"===c?i.apply(this,arguments):("input"!==c&&"option"!==c&&d("jQuery.fn.attr('value') no longer gets properties"),b in a?a.value:null)},set:function(a,b){var c=(a.nodeName||"").toLowerCase();return"button"===c?j.apply(this,arguments):("input"!==c&&"option"!==c&&d("jQuery.fn.attr('value', val) no longer sets properties"),void(a.value=b))}};var o,p,q=a.fn.init,r=a.parseJSON,s=/^([^<]*)(<[\w\W]+>)([^>]*)$/;a.fn.init=function(b,c,e){var f;return b&&"string"==typeof b&&!a.isPlainObject(c)&&(f=s.exec(a.trim(b)))&&f[0]&&("<"!==b.charAt(0)&&d("$(html) HTML strings must start with '<' character"),f[3]&&d("$(html) HTML text after last tag is ignored"),"#"===f[0].charAt(0)&&(d("HTML string cannot start with a '#' character"),a.error("JQMIGRATE: Invalid selector string (XSS)")),c&&c.context&&(c=c.context),a.parseHTML)?q.call(this,a.parseHTML(f[2],c,!0),c,e):q.apply(this,arguments)},a.fn.init.prototype=a.fn,a.parseJSON=function(a){return a||null===a?r.apply(this,arguments):(d("jQuery.parseJSON requires a valid JSON string"),null)},a.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a.browser||(o=a.uaMatch(navigator.userAgent),p={},o.browser&&(p[o.browser]=!0,p.version=o.version),p.chrome?p.webkit=!0:p.webkit&&(p.safari=!0),a.browser=p),e(a,"browser",a.browser,"jQuery.browser is deprecated"),a.sub=function(){function b(a,c){return new b.fn.init(a,c)}a.extend(!0,b,this),b.superclass=this,b.fn=b.prototype=this(),b.fn.constructor=b,b.sub=this.sub,b.fn.init=function(d,e){return e&&e instanceof a&&!(e instanceof b)&&(e=b(e)),a.fn.init.call(this,d,e,c)},b.fn.init.prototype=b.fn;var c=b(document);return d("jQuery.sub() is deprecated"),b},a.ajaxSetup({converters:{"text json":a.parseJSON}});var t=a.fn.data;a.fn.data=function(b){var e,f,g=this[0];return!g||"events"!==b||1!==arguments.length||(e=a.data(g,b),f=a._data(g,b),e!==c&&e!==f||f===c)?t.apply(this,arguments):(d("Use of jQuery.fn.data('events') is deprecated"),f)};var u=/\/(java|ecma)script/i,v=a.fn.andSelf||a.fn.addBack;a.fn.andSelf=function(){return d("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),v.apply(this,arguments)},a.clean||(a.clean=function(b,c,e,f){c=c||document,c=!c.nodeType&&c[0]||c,c=c.ownerDocument||c,d("jQuery.clean() is deprecated");var g,h,i,j,k=[];if(a.merge(k,a.buildFragment(b,c).childNodes),e)for(i=function(a){return!a.type||u.test(a.type)?f?f.push(a.parentNode?a.parentNode.removeChild(a):a):e.appendChild(a):void 0},g=0;null!=(h=k[g]);g++)a.nodeName(h,"script")&&i(h)||(e.appendChild(h),"undefined"!=typeof h.getElementsByTagName&&(j=a.grep(a.merge([],h.getElementsByTagName("script")),i),k.splice.apply(k,[g+1,0].concat(j)),g+=j.length));return k});var w=a.event.add,x=a.event.remove,y=a.event.trigger,z=a.fn.toggle,A=a.fn.live,B=a.fn.die,C="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",D=new RegExp("\\b(?:"+C+")\\b"),E=/(?:^|\s)hover(\.\S+|)\b/,F=function(b){return"string"!=typeof b||a.event.special.hover?b:(E.test(b)&&d("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),b&&b.replace(E,"mouseenter$1 mouseleave$1"))};a.event.props&&"attrChange"!==a.event.props[0]&&a.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),a.event.dispatch&&e(a.event,"handle",a.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),a.event.add=function(a,b,c,e,f){a!==document&&D.test(b)&&d("AJAX events should be attached to document: "+b),w.call(this,a,F(b||""),c,e,f)},a.event.remove=function(a,b,c,d,e){x.call(this,a,F(b)||"",c,d,e)},a.fn.error=function(){var a=Array.prototype.slice.call(arguments,0);return d("jQuery.fn.error() is deprecated"),a.splice(0,0,"error"),arguments.length?this.bind.apply(this,a):(this.triggerHandler.apply(this,a),this)},a.fn.toggle=function(b,c){if(!a.isFunction(b)||!a.isFunction(c))return z.apply(this,arguments);d("jQuery.fn.toggle(handler, handler...) is deprecated");var e=arguments,f=b.guid||a.guid++,g=0,h=function(c){var d=(a._data(this,"lastToggle"+b.guid)||0)%g;return a._data(this,"lastToggle"+b.guid,d+1),c.preventDefault(),e[d].apply(this,arguments)||!1};for(h.guid=f;g<e.length;)e[g++].guid=f;return this.click(h)},a.fn.live=function(b,c,e){return d("jQuery.fn.live() is deprecated"),A?A.apply(this,arguments):(a(this.context).on(b,this.selector,c,e),this)},a.fn.die=function(b,c){return d("jQuery.fn.die() is deprecated"),B?B.apply(this,arguments):(a(this.context).off(b,this.selector||"**",c),this)},a.event.trigger=function(a,b,c,e){return c||D.test(a)||d("Global events are undocumented and deprecated"),y.call(this,a,b,c||document,e)},a.each(C.split("|"),function(b,c){a.event.special[c]={setup:function(){var b=this;return b!==document&&(a.event.add(document,c+"."+a.guid,function(){a.event.trigger(c,null,b,!0)}),a._data(this,c,a.guid++)),!1},teardown:function(){return this!==document&&a.event.remove(document,c+"."+a._data(this,c)),!1}}})}(jQuery,window),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.settings.submitHandler?(c.submitButton&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,d=d.concat(c.errorList)}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){return!!a.trim(""+a(b).val())},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||-1!==a.inArray(c.keyCode,d)||(b.name in this.submitted||b===this.lastElement)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c=this.clean(b),d=this.validationTargetFor(c),e=!0;return this.lastElement=d,void 0===d?delete this.invalid[c.name]:(this.prepareElement(d),this.currentElements=a(d),e=this.check(d)!==!1,e?delete this.invalid[d.name]:this.invalid[d.name]=!0),a(b).attr("aria-invalid",!e),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e},showErrors:function(b){if(b){a.extend(this.errorMap,b),this.errorList=[];for(var c in b)this.errorList.push({message:b[c],element:this.findByName(c)[0]});this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors();var b,c=this.elements().removeData("previousValue").removeAttr("aria-invalid");if(this.settings.unhighlight)for(b=0;c[b];b++)this.settings.unhighlight.call(this,c[b],this.settings.errorClass,"");else c.removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){return!this.name&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in c||!b.objectLength(a(this).rules())?!1:(c[this.name]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([]),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d=a(b),e=b.type;return"radio"===e||"checkbox"===e?this.findByName(b.name).filter(":checked").val():"number"===e&&"undefined"!=typeof b.validity?b.validity.badInput?!1:d.val():(c=d.val(),"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof TypeError&&(j.message+=".  Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]},defaultMessage:function(b,c){return this.findDefined(this.customMessage(b.name,c),this.customDataMessage(b,c),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c],"<strong>Warning: No message defined for "+b.name+"</strong>")},formatAndAdd:function(b,c){var d=this.defaultMessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorList.push({message:d,element:b,method:c.method}),this.errorMap[b.name]=d,this.submitted[b.name]=d},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g=this.errorsFor(b),h=this.idOrName(b),i=a(b).attr("aria-describedby");g.length?(g.removeClass(this.settings.validClass).addClass(this.settings.errorClass),g.html(c)):(g=a("<"+this.settings.errorElement+">").attr("id",h+"-error").addClass(this.settings.errorClass).html(c||""),d=g,this.settings.wrapper&&(d=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),g.is("label")?g.attr("for",h):0===g.parents("label[for='"+h+"']").length&&(f=g.attr("id").replace(/(:|\.|\[|\]|\$)/g,"\\$1"),i?i.match(new RegExp("\\b"+f+"\\b"))||(i+=" "+f):i=f,a(b).attr("aria-describedby",i),e=this.groups[b.name],e&&a.each(this.groups,function(b,c){c===e&&a("[name='"+b+"']",this.currentForm).attr("aria-describedby",g.attr("id"))}))),!c&&this.settings.success&&(g.text(""),"string"==typeof this.settings.success?g.addClass(this.settings.success):this.settings.success(g,b)),this.toShow=this.toShow.add(g);
-},errorsFor:function(b){var c=this.idOrName(b),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+d.replace(/\s+/g,", #")),this.errors().filter(e)},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+b+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(a){this.pending[a.name]||(this.pendingRequest++,this.pending[a.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,"remote")})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isFunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.off(".validate-equalTo").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousValue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalMessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startRequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:f,context:e.currentForm,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalMessage,j?(i=e.formSubmitted,e.prepareElement(c),e.formSubmitted=i,e.successList.push(c),delete e.invalid[c.name],e.showErrors()):(f={},h=d||e.defaultMessage(c,"remote"),f[c.name]=g.message=a.isFunction(h)?h(b):h,e.invalid[c.name]=!0,e.showErrors(f)),g.valid=j,e.stopRequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})}),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.fn.addBack=a.fn.addBack||a.fn.andSelf,a.fn.extend({actual:function(b,c){if(!this[b])throw'$.actual => The jQuery method "'+b+'" you called does not exist';var d,e,f={absolute:!1,clone:!1,includeMargin:!1,display:"block"},g=a.extend(f,c),h=this.eq(0);if(g.clone===!0)d=function(){var a="position: absolute !important; top: -1000 !important; ";h=h.clone().attr("style",a).appendTo("body")},e=function(){h.remove()};else{var i,j=[],k="";d=function(){i=h.parents().addBack().filter(":hidden"),k+="visibility: hidden !important; display: "+g.display+" !important; ",g.absolute===!0&&(k+="position: absolute !important; "),i.each(function(){var b=a(this),c=b.attr("style");j.push(c),b.attr("style",c?c+";"+k:k)})},e=function(){i.each(function(b){var c=a(this),d=j[b];void 0===d?c.removeAttr("style"):c.attr("style",d)})}}d();var l=/(outer)/.test(b)?h[b](g.includeMargin):h[b]();return e(),l}})}),function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return Hc.apply(null,arguments)}function b(a){Hc=a}function c(a){return"[object Array]"===Object.prototype.toString.call(a)}function d(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function e(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function f(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function g(a,b){for(var c in b)f(b,c)&&(a[c]=b[c]);return f(b,"toString")&&(a.toString=b.toString),f(b,"valueOf")&&(a.valueOf=b.valueOf),a}function h(a,b,c,d){return Ca(a,b,c,d,!0).utc()}function i(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function j(a){return null==a._pf&&(a._pf=i()),a._pf}function k(a){if(null==a._isValid){var b=j(a);a._isValid=!(isNaN(a._d.getTime())||!(b.overflow<0)||b.empty||b.invalidMonth||b.invalidWeekday||b.nullInput||b.invalidFormat||b.userInvalidated),a._strict&&(a._isValid=a._isValid&&0===b.charsLeftOver&&0===b.unusedTokens.length&&void 0===b.bigHour)}return a._isValid}function l(a){var b=h(NaN);return null!=a?g(j(b),a):j(b).userInvalidated=!0,b}function m(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=j(b)),"undefined"!=typeof b._locale&&(a._locale=b._locale),Jc.length>0)for(c in Jc)d=Jc[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function n(b){m(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),Kc===!1&&(Kc=!0,a.updateOffset(this),Kc=!1)}function o(a){return a instanceof n||null!=a&&null!=a._isAMomentObject}function p(a){return 0>a?Math.ceil(a):Math.floor(a)}function q(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=p(b)),c}function r(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&q(a[d])!==q(b[d]))&&g++;return g+f}function s(){}function t(a){return a?a.toLowerCase().replace("_","-"):a}function u(a){for(var b,c,d,e,f=0;f<a.length;){for(e=t(a[f]).split("-"),b=e.length,c=t(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=v(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&r(e,c,!0)>=b-1)break;b--}f++}return null}function v(a){var b=null;if(!Lc[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=Ic._abbr,require("./locale/"+a),w(b)}catch(c){}return Lc[a]}function w(a,b){var c;return a&&(c="undefined"==typeof b?y(a):x(a,b),c&&(Ic=c)),Ic._abbr}function x(a,b){return null!==b?(b.abbr=a,Lc[a]=Lc[a]||new s,Lc[a].set(b),w(a),Lc[a]):(delete Lc[a],null)}function y(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Ic;if(!c(a)){if(b=v(a))return b;a=[a]}return u(a)}function z(a,b){var c=a.toLowerCase();Mc[c]=Mc[c+"s"]=Mc[b]=a}function A(a){return"string"==typeof a?Mc[a]||Mc[a.toLowerCase()]:void 0}function B(a){var b,c,d={};for(c in a)f(a,c)&&(b=A(c),b&&(d[b]=a[c]));return d}function C(b,c){return function(d){return null!=d?(E(this,b,d),a.updateOffset(this,c),this):D(this,b)}}function D(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function E(a,b,c){return a._d["set"+(a._isUTC?"UTC":"")+b](c)}function F(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else if(a=A(a),"function"==typeof this[a])return this[a](b);return this}function G(a,b,c){var d=""+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function H(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&(Qc[a]=e),b&&(Qc[b[0]]=function(){return G(e.apply(this,arguments),b[1],b[2])}),c&&(Qc[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function I(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function J(a){var b,c,d=a.match(Nc);for(b=0,c=d.length;c>b;b++)Qc[d[b]]?d[b]=Qc[d[b]]:d[b]=I(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function K(a,b){return a.isValid()?(b=L(b,a.localeData()),Pc[b]=Pc[b]||J(b),Pc[b](a)):a.localeData().invalidDate()}function L(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Oc.lastIndex=0;d>=0&&Oc.test(a);)a=a.replace(Oc,c),Oc.lastIndex=0,d-=1;return a}function M(a){return"function"==typeof a&&"[object Function]"===Object.prototype.toString.call(a)}function N(a,b,c){dd[a]=M(b)?b:function(a){return a&&c?c:b}}function O(a,b){return f(dd,a)?dd[a](b._strict,b._locale):new RegExp(P(a))}function P(a){return a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Q(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),"number"==typeof b&&(d=function(a,c){c[b]=q(a)}),c=0;c<a.length;c++)ed[a[c]]=d}function R(a,b){Q(a,function(a,c,d,e){d._w=d._w||{},b(a,d._w,d,e)})}function S(a,b,c){null!=b&&f(ed,a)&&ed[a](b,c._a,c,a)}function T(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function U(a){return this._months[a.month()]}function V(a){return this._monthsShort[a.month()]}function W(a,b,c){var d,e,f;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;d++){if(e=h([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function X(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),T(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function Y(b){return null!=b?(X(this,b),a.updateOffset(this,!0),this):D(this,"Month")}function Z(){return T(this.year(),this.month())}function $(a){var b,c=a._a;return c&&-2===j(a).overflow&&(b=c[gd]<0||c[gd]>11?gd:c[hd]<1||c[hd]>T(c[fd],c[gd])?hd:c[id]<0||c[id]>24||24===c[id]&&(0!==c[jd]||0!==c[kd]||0!==c[ld])?id:c[jd]<0||c[jd]>59?jd:c[kd]<0||c[kd]>59?kd:c[ld]<0||c[ld]>999?ld:-1,j(a)._overflowDayOfYear&&(fd>b||b>hd)&&(b=hd),j(a).overflow=b),a}function _(b){a.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+b)}function aa(a,b){var c=!0;return g(function(){return c&&(_(a+"\n"+(new Error).stack),c=!1),b.apply(this,arguments)},b)}function ba(a,b){od[a]||(_(b),od[a]=!0)}function ca(a){var b,c,d=a._i,e=pd.exec(d);if(e){for(j(a).iso=!0,b=0,c=qd.length;c>b;b++)if(qd[b][1].exec(d)){a._f=qd[b][0];break}for(b=0,c=rd.length;c>b;b++)if(rd[b][1].exec(d)){a._f+=(e[6]||" ")+rd[b][0];break}d.match(ad)&&(a._f+="Z"),va(a)}else a._isValid=!1}function da(b){var c=sd.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(ca(b),void(b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b))))}function ea(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function fa(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function ga(a){return ha(a)?366:365}function ha(a){return a%4===0&&a%100!==0||a%400===0}function ia(){return ha(this.year())}function ja(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=Da(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ka(a){return ja(a,this._week.dow,this._week.doy).week}function la(){return this._week.dow}function ma(){return this._week.doy}function na(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function oa(a){var b=ja(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")}function pa(a,b,c,d,e){var f,g=6+e-d,h=fa(a,0,1+g),i=h.getUTCDay();return e>i&&(i+=7),c=null!=c?1*c:e,f=1+g+7*(b-1)-i+c,{year:f>0?a:a-1,dayOfYear:f>0?f:ga(a-1)+f}}function qa(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function ra(a,b,c){return null!=a?a:null!=b?b:c}function sa(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function ta(a){var b,c,d,e,f=[];if(!a._d){for(d=sa(a),a._w&&null==a._a[hd]&&null==a._a[gd]&&ua(a),a._dayOfYear&&(e=ra(a._a[fd],d[fd]),a._dayOfYear>ga(e)&&(j(a)._overflowDayOfYear=!0),c=fa(e,0,a._dayOfYear),a._a[gd]=c.getUTCMonth(),a._a[hd]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;7>b;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[id]&&0===a._a[jd]&&0===a._a[kd]&&0===a._a[ld]&&(a._nextDay=!0,a._a[id]=0),a._d=(a._useUTC?fa:ea).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[id]=24)}}function ua(a){var b,c,d,e,f,g,h;b=a._w,null!=b.GG||null!=b.W||null!=b.E?(f=1,g=4,c=ra(b.GG,a._a[fd],ja(Da(),1,4).year),d=ra(b.W,1),e=ra(b.E,1)):(f=a._locale._week.dow,g=a._locale._week.doy,c=ra(b.gg,a._a[fd],ja(Da(),f,g).year),d=ra(b.w,1),null!=b.d?(e=b.d,f>e&&++d):e=null!=b.e?b.e+f:f),h=pa(c,d,e,g,f),a._a[fd]=h.year,a._dayOfYear=h.dayOfYear}function va(b){if(b._f===a.ISO_8601)return void ca(b);b._a=[],j(b).empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,k=0;for(e=L(b._f,b._locale).match(Nc)||[],c=0;c<e.length;c++)f=e[c],d=(h.match(O(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length>0&&j(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),k+=d.length),Qc[f]?(d?j(b).empty=!1:j(b).unusedTokens.push(f),S(f,d,b)):b._strict&&!d&&j(b).unusedTokens.push(f);j(b).charsLeftOver=i-k,h.length>0&&j(b).unusedInput.push(h),j(b).bigHour===!0&&b._a[id]<=12&&b._a[id]>0&&(j(b).bigHour=void 0),b._a[id]=wa(b._locale,b._a[id],b._meridiem),ta(b),$(b)}function wa(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function xa(a){var b,c,d,e,f;if(0===a._f.length)return j(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;e<a._f.length;e++)f=0,b=m({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._f=a._f[e],va(b),k(b)&&(f+=j(b).charsLeftOver,f+=10*j(b).unusedTokens.length,j(b).score=f,(null==d||d>f)&&(d=f,c=b));g(a,c||b)}function ya(a){if(!a._d){var b=B(a._i);a._a=[b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],ta(a)}}function za(a){var b=new n($(Aa(a)));return b._nextDay&&(b.add(1,"d"),b._nextDay=void 0),b}function Aa(a){var b=a._i,e=a._f;return a._locale=a._locale||y(a._l),null===b||void 0===e&&""===b?l({nullInput:!0}):("string"==typeof b&&(a._i=b=a._locale.preparse(b)),o(b)?new n($(b)):(c(e)?xa(a):e?va(a):d(b)?a._d=b:Ba(a),a))}function Ba(b){var f=b._i;void 0===f?b._d=new Date:d(f)?b._d=new Date(+f):"string"==typeof f?da(b):c(f)?(b._a=e(f.slice(0),function(a){return parseInt(a,10)}),ta(b)):"object"==typeof f?ya(b):"number"==typeof f?b._d=new Date(f):a.createFromInputFallback(b)}function Ca(a,b,c,d,e){var f={};return"boolean"==typeof c&&(d=c,c=void 0),f._isAMomentObject=!0,f._useUTC=f._isUTC=e,f._l=c,f._i=a,f._f=b,f._strict=d,za(f)}function Da(a,b,c,d){return Ca(a,b,c,d,!1)}function Ea(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return Da();for(d=b[0],e=1;e<b.length;++e)(!b[e].isValid()||b[e][a](d))&&(d=b[e]);return d}function Fa(){var a=[].slice.call(arguments,0);return Ea("isBefore",a)}function Ga(){var a=[].slice.call(arguments,0);return Ea("isAfter",a)}function Ha(a){var b=B(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=y(),this._bubble()}function Ia(a){return a instanceof Ha}function Ja(a,b){H(a,0,0,function(){var a=this.utcOffset(),c="+";return 0>a&&(a=-a,c="-"),c+G(~~(a/60),2)+b+G(~~a%60,2)})}function Ka(a){var b=(a||"").match(ad)||[],c=b[b.length-1]||[],d=(c+"").match(xd)||["-",0,0],e=+(60*d[1])+q(d[2]);return"+"===d[0]?e:-e}function La(b,c){var e,f;return c._isUTC?(e=c.clone(),f=(o(b)||d(b)?+b:+Da(b))-+e,e._d.setTime(+e._d+f),a.updateOffset(e,!1),e):Da(b).local()}function Ma(a){return 15*-Math.round(a._d.getTimezoneOffset()/15)}function Na(b,c){var d,e=this._offset||0;return null!=b?("string"==typeof b&&(b=Ka(b)),Math.abs(b)<16&&(b=60*b),!this._isUTC&&c&&(d=Ma(this)),this._offset=b,this._isUTC=!0,null!=d&&this.add(d,"m"),e!==b&&(!c||this._changeInProgress?bb(this,Ya(b-e,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?e:Ma(this)}function Oa(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Pa(a){return this.utcOffset(0,a)}function Qa(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Ma(this),"m")),this}function Ra(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ka(this._i)),this}function Sa(a){return a=a?Da(a).utcOffset():0,(this.utcOffset()-a)%60===0}function Ta(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ua(){if("undefined"!=typeof this._isDSTShifted)return this._isDSTShifted;var a={};if(m(a,this),a=Aa(a),a._a){var b=a._isUTC?h(a._a):Da(a._a);this._isDSTShifted=this.isValid()&&r(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Va(){return!this._isUTC}function Wa(){return this._isUTC}function Xa(){return this._isUTC&&0===this._offset}function Ya(a,b){var c,d,e,g=a,h=null;return Ia(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(g={},b?g[b]=a:g.milliseconds=a):(h=yd.exec(a))?(c="-"===h[1]?-1:1,g={y:0,d:q(h[hd])*c,h:q(h[id])*c,m:q(h[jd])*c,s:q(h[kd])*c,ms:q(h[ld])*c}):(h=zd.exec(a))?(c="-"===h[1]?-1:1,g={y:Za(h[2],c),M:Za(h[3],c),d:Za(h[4],c),h:Za(h[5],c),m:Za(h[6],c),s:Za(h[7],c),w:Za(h[8],c)}):null==g?g={}:"object"==typeof g&&("from"in g||"to"in g)&&(e=_a(Da(g.from),Da(g.to)),g={},g.ms=e.milliseconds,g.M=e.months),d=new Ha(g),Ia(a)&&f(a,"_locale")&&(d._locale=a._locale),d}function Za(a,b){var c=a&&parseFloat(a.replace(",","."));return(isNaN(c)?0:c)*b}function $a(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function _a(a,b){var c;return b=La(b,a),a.isBefore(b)?c=$a(a,b):(c=$a(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function ab(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(ba(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=Ya(c,d),bb(this,e,a),this}}function bb(b,c,d,e){var f=c._milliseconds,g=c._days,h=c._months;e=null==e?!0:e,f&&b._d.setTime(+b._d+f*d),g&&E(b,"Date",D(b,"Date")+g*d),h&&X(b,D(b,"Month")+h*d),e&&a.updateOffset(b,g||h)}function cb(a,b){var c=a||Da(),d=La(c,this).startOf("day"),e=this.diff(d,"days",!0),f=-6>e?"sameElse":-1>e?"lastWeek":0>e?"lastDay":1>e?"sameDay":2>e?"nextDay":7>e?"nextWeek":"sameElse";return this.format(b&&b[f]||this.localeData().calendar(f,this,Da(c)))}function db(){return new n(this)}function eb(a,b){var c;return b=A("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+this>+a):(c=o(a)?+a:+Da(a),c<+this.clone().startOf(b))}function fb(a,b){var c;return b=A("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+a>+this):(c=o(a)?+a:+Da(a),+this.clone().endOf(b)<c)}function gb(a,b,c){return this.isAfter(a,c)&&this.isBefore(b,c)}function hb(a,b){var c;return b=A(b||"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+this===+a):(c=+Da(a),+this.clone().startOf(b)<=c&&c<=+this.clone().endOf(b))}function ib(a,b,c){var d,e,f=La(a,this),g=6e4*(f.utcOffset()-this.utcOffset());return b=A(b),"year"===b||"month"===b||"quarter"===b?(e=jb(this,f),"quarter"===b?e/=3:"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:p(e)}function jb(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,"months");return 0>b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)}function kb(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function lb(){var a=this.clone().utc();return 0<a.year()&&a.year()<=9999?"function"==typeof Date.prototype.toISOString?this.toDate().toISOString():K(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):K(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function mb(b){var c=K(this,b||a.defaultFormat);return this.localeData().postformat(c)}function nb(a,b){return this.isValid()?Ya({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function ob(a){return this.from(Da(),a)}function pb(a,b){return this.isValid()?Ya({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function qb(a){return this.to(Da(),a)}function rb(a){var b;return void 0===a?this._locale._abbr:(b=y(a),null!=b&&(this._locale=b),this)}function sb(){return this._locale}function tb(a){switch(a=A(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a&&this.weekday(0),"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this}function ub(a){return a=A(a),void 0===a||"millisecond"===a?this:this.startOf(a).add(1,"isoWeek"===a?"week":a).subtract(1,"ms")}function vb(){return+this._d-6e4*(this._offset||0)}function wb(){return Math.floor(+this/1e3)}function xb(){return this._offset?new Date(+this):this._d}function yb(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function zb(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function Ab(){return k(this)}function Bb(){return g({},j(this))}function Cb(){return j(this).overflow}function Db(a,b){H(0,[a,a.length],0,b)}function Eb(a,b,c){return ja(Da([a,11,31+b-c]),b,c).week}function Fb(a){var b=ja(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")}function Gb(a){var b=ja(this,1,4).year;return null==a?b:this.add(a-b,"y")}function Hb(){return Eb(this.year(),1,4)}function Ib(){var a=this.localeData()._week;return Eb(this.year(),a.dow,a.doy)}function Jb(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Kb(a,b){return"string"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),"number"==typeof a?a:null):parseInt(a,10)}function Lb(a){return this._weekdays[a.day()]}function Mb(a){return this._weekdaysShort[a.day()]}function Nb(a){return this._weekdaysMin[a.day()]}function Ob(a){var b,c,d;for(this._weekdaysParse=this._weekdaysParse||[],b=0;7>b;b++)if(this._weekdaysParse[b]||(c=Da([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b}function Pb(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Kb(a,this.localeData()),this.add(a-b,"d")):b}function Qb(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function Rb(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)}function Sb(a,b){H(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Tb(a,b){return b._meridiemParse}function Ub(a){return"p"===(a+"").toLowerCase().charAt(0)}function Vb(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function Wb(a,b){b[ld]=q(1e3*("0."+a))}function Xb(){return this._isUTC?"UTC":""}function Yb(){return this._isUTC?"Coordinated Universal Time":""}function Zb(a){return Da(1e3*a)}function $b(){return Da.apply(null,arguments).parseZone()}function _b(a,b,c){var d=this._calendar[a];return"function"==typeof d?d.call(b,c):d}function ac(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a])}function bc(){return this._invalidDate}function cc(a){return this._ordinal.replace("%d",a)}function dc(a){return a}function ec(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)}function fc(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)}function gc(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function hc(a,b,c,d){var e=y(),f=h().set(d,b);return e[c](f,a)}function ic(a,b,c,d,e){if("number"==typeof a&&(b=a,a=void 0),a=a||"",null!=b)return hc(a,b,c,e);var f,g=[];for(f=0;d>f;f++)g[f]=hc(a,f,c,e);return g}function jc(a,b){return ic(a,b,"months",12,"month")}function kc(a,b){return ic(a,b,"monthsShort",12,"month")}function lc(a,b){return ic(a,b,"weekdays",7,"day")}function mc(a,b){return ic(a,b,"weekdaysShort",7,"day")}function nc(a,b){return ic(a,b,"weekdaysMin",7,"day")}function oc(){var a=this._data;return this._milliseconds=Wd(this._milliseconds),this._days=Wd(this._days),this._months=Wd(this._months),a.milliseconds=Wd(a.milliseconds),a.seconds=Wd(a.seconds),a.minutes=Wd(a.minutes),a.hours=Wd(a.hours),a.months=Wd(a.months),a.years=Wd(a.years),this}function pc(a,b,c,d){var e=Ya(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function qc(a,b){return pc(this,a,b,1)}function rc(a,b){return pc(this,a,b,-1)}function sc(a){return 0>a?Math.floor(a):Math.ceil(a)}function tc(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||0>=f&&0>=g&&0>=h||(f+=864e5*sc(vc(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=p(f/1e3),i.seconds=a%60,b=p(a/60),i.minutes=b%60,c=p(b/60),i.hours=c%24,g+=p(c/24),e=p(uc(g)),h+=e,g-=sc(vc(e)),d=p(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function uc(a){return 4800*a/146097}function vc(a){return 146097*a/4800}function wc(a){var b,c,d=this._milliseconds;if(a=A(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+uc(b),"month"===a?c:c/12;switch(b=this._days+Math.round(vc(this._months)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3;case"millisecond":return Math.floor(864e5*b)+d;
-default:throw new Error("Unknown unit "+a)}}function xc(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*q(this._months/12)}function yc(a){return function(){return this.as(a)}}function zc(a){return a=A(a),this[a+"s"]()}function Ac(a){return function(){return this._data[a]}}function Bc(){return p(this.days()/7)}function Cc(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function Dc(a,b,c){var d=Ya(a).abs(),e=ke(d.as("s")),f=ke(d.as("m")),g=ke(d.as("h")),h=ke(d.as("d")),i=ke(d.as("M")),j=ke(d.as("y")),k=e<le.s&&["s",e]||1===f&&["m"]||f<le.m&&["mm",f]||1===g&&["h"]||g<le.h&&["hh",g]||1===h&&["d"]||h<le.d&&["dd",h]||1===i&&["M"]||i<le.M&&["MM",i]||1===j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,Cc.apply(null,k)}function Ec(a,b){return void 0===le[a]?!1:void 0===b?le[a]:(le[a]=b,!0)}function Fc(a){var b=this.localeData(),c=Dc(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function Gc(){var a,b,c,d=me(this._milliseconds)/1e3,e=me(this._days),f=me(this._months);a=p(d/60),b=p(a/60),d%=60,a%=60,c=p(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(0>m?"-":"")+"P"+(g?g+"Y":"")+(h?h+"M":"")+(i?i+"D":"")+(j||k||l?"T":"")+(j?j+"H":"")+(k?k+"M":"")+(l?l+"S":""):"P0D"}var Hc,Ic,Jc=a.momentProperties=[],Kc=!1,Lc={},Mc={},Nc=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Oc=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Pc={},Qc={},Rc=/\d/,Sc=/\d\d/,Tc=/\d{3}/,Uc=/\d{4}/,Vc=/[+-]?\d{6}/,Wc=/\d\d?/,Xc=/\d{1,3}/,Yc=/\d{1,4}/,Zc=/[+-]?\d{1,6}/,$c=/\d+/,_c=/[+-]?\d+/,ad=/Z|[+-]\d\d:?\d\d/gi,bd=/[+-]?\d+(\.\d{1,3})?/,cd=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,dd={},ed={},fd=0,gd=1,hd=2,id=3,jd=4,kd=5,ld=6;H("M",["MM",2],"Mo",function(){return this.month()+1}),H("MMM",0,0,function(a){return this.localeData().monthsShort(this,a)}),H("MMMM",0,0,function(a){return this.localeData().months(this,a)}),z("month","M"),N("M",Wc),N("MM",Wc,Sc),N("MMM",cd),N("MMMM",cd),Q(["M","MM"],function(a,b){b[gd]=q(a)-1}),Q(["MMM","MMMM"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[gd]=e:j(c).invalidMonth=a});var md="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),nd="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),od={};a.suppressDeprecationWarnings=!1;var pd=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,qd=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],rd=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],sd=/^\/?Date\((\-?\d+)/i;a.createFromInputFallback=aa("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),H(0,["YY",2],0,function(){return this.year()%100}),H(0,["YYYY",4],0,"year"),H(0,["YYYYY",5],0,"year"),H(0,["YYYYYY",6,!0],0,"year"),z("year","y"),N("Y",_c),N("YY",Wc,Sc),N("YYYY",Yc,Uc),N("YYYYY",Zc,Vc),N("YYYYYY",Zc,Vc),Q(["YYYYY","YYYYYY"],fd),Q("YYYY",function(b,c){c[fd]=2===b.length?a.parseTwoDigitYear(b):q(b)}),Q("YY",function(b,c){c[fd]=a.parseTwoDigitYear(b)}),a.parseTwoDigitYear=function(a){return q(a)+(q(a)>68?1900:2e3)};var td=C("FullYear",!1);H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),z("week","w"),z("isoWeek","W"),N("w",Wc),N("ww",Wc,Sc),N("W",Wc),N("WW",Wc,Sc),R(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=q(a)});var ud={dow:0,doy:6};H("DDD",["DDDD",3],"DDDo","dayOfYear"),z("dayOfYear","DDD"),N("DDD",Xc),N("DDDD",Tc),Q(["DDD","DDDD"],function(a,b,c){c._dayOfYear=q(a)}),a.ISO_8601=function(){};var vd=aa("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var a=Da.apply(null,arguments);return this>a?this:a}),wd=aa("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var a=Da.apply(null,arguments);return a>this?this:a});Ja("Z",":"),Ja("ZZ",""),N("Z",ad),N("ZZ",ad),Q(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=Ka(a)});var xd=/([\+\-]|\d\d)/gi;a.updateOffset=function(){};var yd=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,zd=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Ya.fn=Ha.prototype;var Ad=ab(1,"add"),Bd=ab(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var Cd=aa("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)});H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Db("gggg","weekYear"),Db("ggggg","weekYear"),Db("GGGG","isoWeekYear"),Db("GGGGG","isoWeekYear"),z("weekYear","gg"),z("isoWeekYear","GG"),N("G",_c),N("g",_c),N("GG",Wc,Sc),N("gg",Wc,Sc),N("GGGG",Yc,Uc),N("gggg",Yc,Uc),N("GGGGG",Zc,Vc),N("ggggg",Zc,Vc),R(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=q(a)}),R(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),H("Q",0,0,"quarter"),z("quarter","Q"),N("Q",Rc),Q("Q",function(a,b){b[gd]=3*(q(a)-1)}),H("D",["DD",2],"Do","date"),z("date","D"),N("D",Wc),N("DD",Wc,Sc),N("Do",function(a,b){return a?b._ordinalParse:b._ordinalParseLenient}),Q(["D","DD"],hd),Q("Do",function(a,b){b[hd]=q(a.match(Wc)[0],10)});var Dd=C("Date",!0);H("d",0,"do","day"),H("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),H("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),H("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),H("e",0,0,"weekday"),H("E",0,0,"isoWeekday"),z("day","d"),z("weekday","e"),z("isoWeekday","E"),N("d",Wc),N("e",Wc),N("E",Wc),N("dd",cd),N("ddd",cd),N("dddd",cd),R(["dd","ddd","dddd"],function(a,b,c){var d=c._locale.weekdaysParse(a);null!=d?b.d=d:j(c).invalidWeekday=a}),R(["d","e","E"],function(a,b,c,d){b[d]=q(a)});var Ed="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Fd="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Gd="Su_Mo_Tu_We_Th_Fr_Sa".split("_");H("H",["HH",2],0,"hour"),H("h",["hh",2],0,function(){return this.hours()%12||12}),Sb("a",!0),Sb("A",!1),z("hour","h"),N("a",Tb),N("A",Tb),N("H",Wc),N("h",Wc),N("HH",Wc,Sc),N("hh",Wc,Sc),Q(["H","HH"],id),Q(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),Q(["h","hh"],function(a,b,c){b[id]=q(a),j(c).bigHour=!0});var Hd=/[ap]\.?m?\.?/i,Id=C("Hours",!0);H("m",["mm",2],0,"minute"),z("minute","m"),N("m",Wc),N("mm",Wc,Sc),Q(["m","mm"],jd);var Jd=C("Minutes",!1);H("s",["ss",2],0,"second"),z("second","s"),N("s",Wc),N("ss",Wc,Sc),Q(["s","ss"],kd);var Kd=C("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),z("millisecond","ms"),N("S",Xc,Rc),N("SS",Xc,Sc),N("SSS",Xc,Tc);var Ld;for(Ld="SSSS";Ld.length<=9;Ld+="S")N(Ld,$c);for(Ld="S";Ld.length<=9;Ld+="S")Q(Ld,Wb);var Md=C("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var Nd=n.prototype;Nd.add=Ad,Nd.calendar=cb,Nd.clone=db,Nd.diff=ib,Nd.endOf=ub,Nd.format=mb,Nd.from=nb,Nd.fromNow=ob,Nd.to=pb,Nd.toNow=qb,Nd.get=F,Nd.invalidAt=Cb,Nd.isAfter=eb,Nd.isBefore=fb,Nd.isBetween=gb,Nd.isSame=hb,Nd.isValid=Ab,Nd.lang=Cd,Nd.locale=rb,Nd.localeData=sb,Nd.max=wd,Nd.min=vd,Nd.parsingFlags=Bb,Nd.set=F,Nd.startOf=tb,Nd.subtract=Bd,Nd.toArray=yb,Nd.toObject=zb,Nd.toDate=xb,Nd.toISOString=lb,Nd.toJSON=lb,Nd.toString=kb,Nd.unix=wb,Nd.valueOf=vb,Nd.year=td,Nd.isLeapYear=ia,Nd.weekYear=Fb,Nd.isoWeekYear=Gb,Nd.quarter=Nd.quarters=Jb,Nd.month=Y,Nd.daysInMonth=Z,Nd.week=Nd.weeks=na,Nd.isoWeek=Nd.isoWeeks=oa,Nd.weeksInYear=Ib,Nd.isoWeeksInYear=Hb,Nd.date=Dd,Nd.day=Nd.days=Pb,Nd.weekday=Qb,Nd.isoWeekday=Rb,Nd.dayOfYear=qa,Nd.hour=Nd.hours=Id,Nd.minute=Nd.minutes=Jd,Nd.second=Nd.seconds=Kd,Nd.millisecond=Nd.milliseconds=Md,Nd.utcOffset=Na,Nd.utc=Pa,Nd.local=Qa,Nd.parseZone=Ra,Nd.hasAlignedHourOffset=Sa,Nd.isDST=Ta,Nd.isDSTShifted=Ua,Nd.isLocal=Va,Nd.isUtcOffset=Wa,Nd.isUtc=Xa,Nd.isUTC=Xa,Nd.zoneAbbr=Xb,Nd.zoneName=Yb,Nd.dates=aa("dates accessor is deprecated. Use date instead.",Dd),Nd.months=aa("months accessor is deprecated. Use month instead",Y),Nd.years=aa("years accessor is deprecated. Use year instead",td),Nd.zone=aa("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Oa);var Od=Nd,Pd={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Qd={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Rd="Invalid date",Sd="%d",Td=/\d{1,2}/,Ud={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Vd=s.prototype;Vd._calendar=Pd,Vd.calendar=_b,Vd._longDateFormat=Qd,Vd.longDateFormat=ac,Vd._invalidDate=Rd,Vd.invalidDate=bc,Vd._ordinal=Sd,Vd.ordinal=cc,Vd._ordinalParse=Td,Vd.preparse=dc,Vd.postformat=dc,Vd._relativeTime=Ud,Vd.relativeTime=ec,Vd.pastFuture=fc,Vd.set=gc,Vd.months=U,Vd._months=md,Vd.monthsShort=V,Vd._monthsShort=nd,Vd.monthsParse=W,Vd.week=ka,Vd._week=ud,Vd.firstDayOfYear=ma,Vd.firstDayOfWeek=la,Vd.weekdays=Lb,Vd._weekdays=Ed,Vd.weekdaysMin=Nb,Vd._weekdaysMin=Gd,Vd.weekdaysShort=Mb,Vd._weekdaysShort=Fd,Vd.weekdaysParse=Ob,Vd.isPM=Ub,Vd._meridiemParse=Hd,Vd.meridiem=Vb,w("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===q(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.lang=aa("moment.lang is deprecated. Use moment.locale instead.",w),a.langData=aa("moment.langData is deprecated. Use moment.localeData instead.",y);var Wd=Math.abs,Xd=yc("ms"),Yd=yc("s"),Zd=yc("m"),$d=yc("h"),_d=yc("d"),ae=yc("w"),be=yc("M"),ce=yc("y"),de=Ac("milliseconds"),ee=Ac("seconds"),fe=Ac("minutes"),ge=Ac("hours"),he=Ac("days"),ie=Ac("months"),je=Ac("years"),ke=Math.round,le={s:45,m:45,h:22,d:26,M:11},me=Math.abs,ne=Ha.prototype;ne.abs=oc,ne.add=qc,ne.subtract=rc,ne.as=wc,ne.asMilliseconds=Xd,ne.asSeconds=Yd,ne.asMinutes=Zd,ne.asHours=$d,ne.asDays=_d,ne.asWeeks=ae,ne.asMonths=be,ne.asYears=ce,ne.valueOf=xc,ne._bubble=tc,ne.get=zc,ne.milliseconds=de,ne.seconds=ee,ne.minutes=fe,ne.hours=ge,ne.days=he,ne.weeks=Bc,ne.months=ie,ne.years=je,ne.humanize=Fc,ne.toISOString=Gc,ne.toString=Gc,ne.toJSON=Gc,ne.locale=rb,ne.localeData=sb,ne.toIsoString=aa("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Gc),ne.lang=Cd,H("X",0,0,"unix"),H("x",0,0,"valueOf"),N("x",_c),N("X",bd),Q("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),Q("x",function(a,b,c){c._d=new Date(q(a))}),a.version="2.10.6",b(Da),a.fn=Od,a.min=Fa,a.max=Ga,a.utc=h,a.unix=Zb,a.months=jc,a.isDate=d,a.locale=w,a.invalid=l,a.duration=Ya,a.isMoment=o,a.weekdays=lc,a.parseZone=$b,a.localeData=y,a.isDuration=Ia,a.monthsShort=kc,a.weekdaysMin=nc,a.defineLocale=x,a.weekdaysShort=mc,a.normalizeUnits=A,a.relativeTimeThreshold=Ec;var oe=a;return oe}),!function(a){angular.module("ngCsv.config",[]).value("ngCsv.config",{debug:!0}).config(["$compileProvider",function(a){angular.isDefined(a.urlSanitizationWhitelist)?a.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/):a.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/)}]),angular.module("ngCsv.directives",["ngCsv.services"]),angular.module("ngCsv.services",[]),angular.module("ngCsv",["ngCsv.config","ngCsv.services","ngCsv.directives","ngSanitize"]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ngCsv"),angular.module("ngCsv.services").service("CSV",["$q",function(a){var b="\r\n",c="\ufeff",d={"\\t":" ","\\b":"\b","\\v":"\x0B","\\f":"\f","\\r":"\r"};this.stringifyField=function(a,b){return"locale"===b.decimalSep&&this.isFloat(a)?a.toLocaleString():"."!==b.decimalSep&&this.isFloat(a)?a.toString().replace(".",b.decimalSep):"string"==typeof a?(a=a.replace(/"/g,'""'),(b.quoteStrings||a.indexOf(",")>-1||a.indexOf("\n")>-1||a.indexOf("\r")>-1)&&(a=b.txtDelim+a+b.txtDelim),a):"boolean"==typeof a?a?"TRUE":"FALSE":a},this.isFloat=function(a){return+a===a&&(!isFinite(a)||Boolean(a%1))},this.stringify=function(d,e){var f=a.defer(),g=this,h="",i="",j=a.when(d).then(function(a){if(angular.isDefined(e.header)&&e.header){var d,j;d=[],angular.forEach(e.header,function(a){this.push(g.stringifyField(a,e))},d),j=d.join(e.fieldSep?e.fieldSep:","),i+=j+b}var k=[];if(angular.isArray(a)?k=a:angular.isFunction(a)&&(k=a()),angular.isDefined(e.label)&&e.label&&"boolean"==typeof e.label){var l,m;l=[],angular.forEach(k[0],function(a,b){this.push(g.stringifyField(b,e))},l),m=l.join(e.fieldSep?e.fieldSep:","),i+=m+b}angular.forEach(k,function(a,c){var d,f,h=angular.copy(k[c]);f=[];var j=e.columnOrder?e.columnOrder:h;angular.forEach(j,function(a){var b=e.columnOrder?h[a]:a;this.push(g.stringifyField(b,e))},f),d=f.join(e.fieldSep?e.fieldSep:","),i+=c<k.length?d+b:d}),e.addByteOrderMarker&&(h+=c),h+=i,f.resolve(h)});return"function"==typeof j["catch"]&&j["catch"](function(a){f.reject(a)}),f.promise},this.isSpecialChar=function(a){return void 0!==d[a]},this.getSpecialChar=function(a){return d[a]}}]),angular.module("ngCsv.directives").directive("ngCsv",["$parse","$q","CSV","$document","$timeout",function(b,c,d,e,f){return{restrict:"AC",scope:{data:"&ngCsv",filename:"@filename",header:"&csvHeader",columnOrder:"&csvColumnOrder",txtDelim:"@textDelimiter",decimalSep:"@decimalSeparator",quoteStrings:"@quoteStrings",fieldSep:"@fieldSeparator",lazyLoad:"@lazyLoad",addByteOrderMarker:"@addBom",ngClick:"&",charset:"@charset",label:"&csvLabel"},controller:["$scope","$element","$attrs","$transclude",function(a,b,e){function f(){var b={txtDelim:a.txtDelim?a.txtDelim:'"',decimalSep:a.decimalSep?a.decimalSep:".",quoteStrings:a.quoteStrings,addByteOrderMarker:a.addByteOrderMarker};return angular.isDefined(e.csvHeader)&&(b.header=a.$eval(a.header)),angular.isDefined(e.csvColumnOrder)&&(b.columnOrder=a.$eval(a.columnOrder)),angular.isDefined(e.csvLabel)&&(b.label=a.$eval(a.label)),b.fieldSep=a.fieldSep?a.fieldSep:",",b.fieldSep=d.isSpecialChar(b.fieldSep)?d.getSpecialChar(b.fieldSep):b.fieldSep,b}a.csv="",angular.isDefined(a.lazyLoad)&&"true"==a.lazyLoad||angular.isArray(a.data)&&a.$watch("data",function(){a.buildCSV()},!0),a.getFilename=function(){return a.filename||"download.csv"},a.buildCSV=function(){var g=c.defer();return b.addClass(e.ngCsvLoadingClass||"ng-csv-loading"),d.stringify(a.data(),f()).then(function(c){a.csv=c,b.removeClass(e.ngCsvLoadingClass||"ng-csv-loading"),g.resolve(c)}),a.$apply(),g.promise}}],link:function(b,c){function d(){var c=b.charset||"utf-8",d=new Blob([b.csv],{type:"text/csv;charset="+c+";"});if(a.navigator.msSaveOrOpenBlob)navigator.msSaveBlob(d,b.getFilename());else{var g=angular.element('<div data-tap-disabled="true"><a></a></div>'),h=angular.element(g.children()[0]);h.attr("href",a.URL.createObjectURL(d)),h.attr("download",b.getFilename()),h.attr("target","_blank"),e.find("body").append(g),f(function(){h[0].click(),h.remove()},null)}}c.bind("click",function(){b.buildCSV().then(function(){d()}),b.$apply()})}}}])}(window,document),function(angular){"use strict";if(!angular)throw"Missing something? Please add angular.js to your project or move this script below the angular.js reference";var directiveId="ngRemoteValidate",remoteValidate=function($http,$timeout,$q){return{restrict:"A",require:["^form","ngModel"],scope:{ngRemoteInterceptors:"=?"},link:function(scope,el,attrs,ctrls){var cache={},handleChange,setValidation,addToCache,request,shouldProcess,ngForm=ctrls[0],ngModel=ctrls[1],options={ngRemoteThrottle:400,ngRemoteMethod:"POST"};angular.extend(options,attrs),"["===options.ngRemoteValidate.charAt(0)?options.urls=eval(options.ngRemoteValidate):"{"===options.ngRemoteValidate.charAt(0)?(options.keys=eval("("+options.ngRemoteValidate+")"),options.urls=Object.keys(options.keys)):options.urls=[options.ngRemoteValidate],addToCache=function(a){var b=a[0].data.value;return cache[b]?cache[b]:void(cache[b]=a)},shouldProcess=function(a){var b=!1;for(var c in ngModel.$error){var d=!options.hasOwnProperty("keys")||!Object.keys(options.keys).filter(function(a){return options.keys[a]===c})[0];if(ngModel.$error[c]&&c!=directiveId&&d){b=!0;break}}return!(ngModel.$pristine||b)},setValidation=function(a,b){for(var c=0,d=a.length,e=options.hasOwnProperty("keys"),f=!0;d>c&&(scope.ngRemoteInterceptors&&scope.ngRemoteInterceptors.response&&(a[c]=scope.ngRemoteInterceptors.response(a[c])),a[c].data.isValid||(f=!1,e));c++){var g=e&&a[c].hasOwnProperty("config")&&options.keys[a[c].config.url];if(g){var h=options.keys[a[c].config.url];ngModel.$setValidity(h,a[c].data.isValid)}}b||addToCache(a),ngModel.$setValidity(directiveId,f),ngModel.$processing=ngModel.$pending=ngForm.$pending=!1},handleChange=function(a){return"undefined"==typeof a||""===a?void ngModel.$setPristine():shouldProcess(a)?cache[a]?setValidation(cache[a],!0):(ngModel.$pending||(ngModel.$processing=ngModel.$pending=ngForm.$pending=!0),request&&$timeout.cancel(request),request=$timeout(function(){var b=[],c=0,d=options.urls.length,e={value:a},f={method:options.ngRemoteMethod};for(scope[el[0].name+"SetArgs"]&&(e=scope[el[0].name+"SetArgs"](a,el,attrs,ngModel)),"POST"==options.ngRemoteMethod?f.data=e:f.params=e;d>c;c++)f.url=options.urls[c],scope.ngRemoteInterceptors&&scope.ngRemoteInterceptors.request&&(f=scope.ngRemoteInterceptors.request(f)),b.push($http(f));$q.all(b).then(setValidation)},options.ngRemoteThrottle),!0):setValidation([{data:{isValid:!0,value:a}}],!0)},scope.$watch(function(){return ngModel.$viewValue},handleChange)}}};angular.module("remoteValidation",[]).constant("MODULE_VERSION","0.6.1").directive(directiveId,["$http","$timeout","$q",remoteValidate])}(this.angular),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}),function(a){"undefined"!=typeof module&&module.exports?module.exports=a:a(jQuery,window,document)}(function(a){!function(b){var c="function"==typeof define&&define.amd,d="undefined"!=typeof module&&module.exports,e="https:"==document.location.protocol?"https:":"http:",f="cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js";c||(d?require("jquery-mousewheel")(a):a.event.special.mousewheel||a("head").append(decodeURI("%3Cscript src="+e+"//"+f+"%3E%3C/script%3E"))),b()}(function(){var b,c="mCustomScrollbar",d="mCS",e=".mCustomScrollbar",f={setTop:0,setLeft:0,axis:"y",scrollbarPosition:"inside",scrollInertia:950,autoDraggerLength:!0,alwaysShowScrollbar:0,snapOffset:0,mouseWheel:{enable:!0,scrollAmount:"auto",axis:"y",deltaFactor:"auto",disableOver:["select","option","keygen","datalist","textarea"]},scrollButtons:{scrollType:"stepless",scrollAmount:"auto"},keyboard:{enable:!0,scrollType:"stepless",scrollAmount:"auto"},contentTouchScroll:25,documentTouchScroll:!0,advanced:{autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",updateOnContentResize:!0,updateOnImageLoad:"auto",autoUpdateTimeout:60},theme:"light",callbacks:{onTotalScrollOffset:0,onTotalScrollBackOffset:0,alwaysTriggerOffsets:!0}},g=0,h={},i=window.attachEvent&&!window.addEventListener?1:0,j=!1,k=["mCSB_dragger_onDrag","mCSB_scrollTools_onDrag","mCS_img_loaded","mCS_disabled","mCS_destroyed","mCS_no_scrollbar","mCS-autoHide","mCS-dir-rtl","mCS_no_scrollbar_y","mCS_no_scrollbar_x","mCS_y_hidden","mCS_x_hidden","mCSB_draggerContainer","mCSB_buttonUp","mCSB_buttonDown","mCSB_buttonLeft","mCSB_buttonRight"],l={init:function(b){var b=a.extend(!0,{},f,b),c=m.call(this);if(b.live){var i=b.liveSelector||this.selector||e,j=a(i);if("off"===b.live)return void o(i);h[i]=setTimeout(function(){j.mCustomScrollbar(b),"once"===b.live&&j.length&&o(i)},500)}else o(i);return b.setWidth=b.set_width?b.set_width:b.setWidth,b.setHeight=b.set_height?b.set_height:b.setHeight,b.axis=b.horizontalScroll?"x":p(b.axis),b.scrollInertia=b.scrollInertia>0&&b.scrollInertia<17?17:b.scrollInertia,"object"!=typeof b.mouseWheel&&1==b.mouseWheel&&(b.mouseWheel={enable:!0,scrollAmount:"auto",axis:"y",preventDefault:!1,deltaFactor:"auto",normalizeDelta:!1,invert:!1}),b.mouseWheel.scrollAmount=b.mouseWheelPixels?b.mouseWheelPixels:b.mouseWheel.scrollAmount,b.mouseWheel.normalizeDelta=b.advanced.normalizeMouseWheelDelta?b.advanced.normalizeMouseWheelDelta:b.mouseWheel.normalizeDelta,b.scrollButtons.scrollType=q(b.scrollButtons.scrollType),n(b),a(c).each(function(){var c=a(this);if(!c.data(d)){c.data(d,{idx:++g,opt:b,scrollRatio:{y:null,x:null},overflowed:null,contentReset:{y:null,x:null},bindEvents:!1,tweenRunning:!1,sequential:{},langDir:c.css("direction"),cbOffsets:null,trigger:null,poll:{size:{o:0,n:0},img:{o:0,n:0},change:{o:0,n:0}}});var e=c.data(d),f=e.opt,h=c.data("mcs-axis"),i=c.data("mcs-scrollbar-position"),j=c.data("mcs-theme");h&&(f.axis=h),i&&(f.scrollbarPosition=i),j&&(f.theme=j,n(f)),r.call(this),e&&f.callbacks.onCreate&&"function"==typeof f.callbacks.onCreate&&f.callbacks.onCreate.call(this),a("#mCSB_"+e.idx+"_container img:not(."+k[2]+")").addClass(k[2]),l.update.call(null,c)}})},update:function(b,c){var e=b||m.call(this);return a(e).each(function(){var b=a(this);if(b.data(d)){var e=b.data(d),f=e.opt,g=a("#mCSB_"+e.idx+"_container"),h=a("#mCSB_"+e.idx),i=[a("#mCSB_"+e.idx+"_dragger_vertical"),a("#mCSB_"+e.idx+"_dragger_horizontal")];if(!g.length)return;e.tweenRunning&&U(b),c&&e&&f.callbacks.onBeforeUpdate&&"function"==typeof f.callbacks.onBeforeUpdate&&f.callbacks.onBeforeUpdate.call(this),b.hasClass(k[3])&&b.removeClass(k[3]),b.hasClass(k[4])&&b.removeClass(k[4]),h.css("max-height","none"),h.height()!==b.height()&&h.css("max-height",b.height()),t.call(this),"y"===f.axis||f.advanced.autoExpandHorizontalScroll||g.css("width",s(g)),e.overflowed=y.call(this),C.call(this),f.autoDraggerLength&&v.call(this),w.call(this),A.call(this);var j=[Math.abs(g[0].offsetTop),Math.abs(g[0].offsetLeft)];"x"!==f.axis&&(e.overflowed[0]?i[0].height()>i[0].parent().height()?z.call(this):(V(b,j[0].toString(),{dir:"y",dur:0,overwrite:"none"}),e.contentReset.y=null):(z.call(this),"y"===f.axis?B.call(this):"yx"===f.axis&&e.overflowed[1]&&V(b,j[1].toString(),{dir:"x",dur:0,overwrite:"none"}))),"y"!==f.axis&&(e.overflowed[1]?i[1].width()>i[1].parent().width()?z.call(this):(V(b,j[1].toString(),{dir:"x",dur:0,overwrite:"none"}),e.contentReset.x=null):(z.call(this),"x"===f.axis?B.call(this):"yx"===f.axis&&e.overflowed[0]&&V(b,j[0].toString(),{dir:"y",dur:0,overwrite:"none"}))),c&&e&&(2===c&&f.callbacks.onImageLoad&&"function"==typeof f.callbacks.onImageLoad?f.callbacks.onImageLoad.call(this):3===c&&f.callbacks.onSelectorChange&&"function"==typeof f.callbacks.onSelectorChange?f.callbacks.onSelectorChange.call(this):f.callbacks.onUpdate&&"function"==typeof f.callbacks.onUpdate&&f.callbacks.onUpdate.call(this)),S.call(this)}})},scrollTo:function(b,c){if("undefined"!=typeof b&&null!=b){var e=m.call(this);return a(e).each(function(){var e=a(this);if(e.data(d)){var f=e.data(d),g=f.opt,h={trigger:"external",scrollInertia:g.scrollInertia,scrollEasing:"mcsEaseInOut",moveDragger:!1,timeout:60,callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},i=a.extend(!0,{},h,c),j=Q.call(this,b),k=i.scrollInertia>0&&i.scrollInertia<17?17:i.scrollInertia;j[0]=R.call(this,j[0],"y"),j[1]=R.call(this,j[1],"x"),i.moveDragger&&(j[0]*=f.scrollRatio.y,j[1]*=f.scrollRatio.x),i.dur=ca()?0:k,setTimeout(function(){null!==j[0]&&"undefined"!=typeof j[0]&&"x"!==g.axis&&f.overflowed[0]&&(i.dir="y",i.overwrite="all",V(e,j[0].toString(),i)),null!==j[1]&&"undefined"!=typeof j[1]&&"y"!==g.axis&&f.overflowed[1]&&(i.dir="x",i.overwrite="none",V(e,j[1].toString(),i))},i.timeout)}})}},stop:function(){var b=m.call(this);return a(b).each(function(){var b=a(this);b.data(d)&&U(b)})},disable:function(b){var c=m.call(this);return a(c).each(function(){var c=a(this);if(c.data(d)){c.data(d);S.call(this,"remove"),B.call(this),b&&z.call(this),C.call(this,!0),c.addClass(k[3])}})},destroy:function(){var b=m.call(this);return a(b).each(function(){var e=a(this);if(e.data(d)){var f=e.data(d),g=f.opt,h=a("#mCSB_"+f.idx),i=a("#mCSB_"+f.idx+"_container"),j=a(".mCSB_"+f.idx+"_scrollbar");g.live&&o(g.liveSelector||a(b).selector),S.call(this,"remove"),B.call(this),z.call(this),e.removeData(d),Z(this,"mcs"),j.remove(),i.find("img."+k[2]).removeClass(k[2]),h.replaceWith(i.contents()),e.removeClass(c+" _"+d+"_"+f.idx+" "+k[6]+" "+k[7]+" "+k[5]+" "+k[3]).addClass(k[4])}})}},m=function(){return"object"!=typeof a(this)||a(this).length<1?e:this},n=function(b){var c=["rounded","rounded-dark","rounded-dots","rounded-dots-dark"],d=["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"],e=["minimal","minimal-dark"],f=["minimal","minimal-dark"],g=["minimal","minimal-dark"];b.autoDraggerLength=a.inArray(b.theme,c)>-1?!1:b.autoDraggerLength,b.autoExpandScrollbar=a.inArray(b.theme,d)>-1?!1:b.autoExpandScrollbar,b.scrollButtons.enable=a.inArray(b.theme,e)>-1?!1:b.scrollButtons.enable,b.autoHideScrollbar=a.inArray(b.theme,f)>-1?!0:b.autoHideScrollbar,b.scrollbarPosition=a.inArray(b.theme,g)>-1?"outside":b.scrollbarPosition},o=function(a){h[a]&&(clearTimeout(h[a]),Z(h,a))},p=function(a){return"yx"===a||"xy"===a||"auto"===a?"yx":"x"===a||"horizontal"===a?"x":"y"},q=function(a){return"stepped"===a||"pixels"===a||"step"===a||"click"===a?"stepped":"stepless"},r=function(){var b=a(this),e=b.data(d),f=e.opt,g=f.autoExpandScrollbar?" "+k[1]+"_expand":"",h=["<div id='mCSB_"+e.idx+"_scrollbar_vertical' class='mCSB_scrollTools mCSB_"+e.idx+"_scrollbar mCS-"+f.theme+" mCSB_scrollTools_vertical"+g+"'><div class='"+k[12]+"'><div id='mCSB_"+e.idx+"_dragger_vertical' class='mCSB_dragger' style='position:absolute;' oncontextmenu='return false;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>","<div id='mCSB_"+e.idx+"_scrollbar_horizontal' class='mCSB_scrollTools mCSB_"+e.idx+"_scrollbar mCS-"+f.theme+" mCSB_scrollTools_horizontal"+g+"'><div class='"+k[12]+"'><div id='mCSB_"+e.idx+"_dragger_horizontal' class='mCSB_dragger' style='position:absolute;' oncontextmenu='return false;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>"],i="yx"===f.axis?"mCSB_vertical_horizontal":"x"===f.axis?"mCSB_horizontal":"mCSB_vertical",j="yx"===f.axis?h[0]+h[1]:"x"===f.axis?h[1]:h[0],l="yx"===f.axis?"<div id='mCSB_"+e.idx+"_container_wrapper' class='mCSB_container_wrapper' />":"",m=f.autoHideScrollbar?" "+k[6]:"",n="x"!==f.axis&&"rtl"===e.langDir?" "+k[7]:"";f.setWidth&&b.css("width",f.setWidth),f.setHeight&&b.css("height",f.setHeight),f.setLeft="y"!==f.axis&&"rtl"===e.langDir?"989999px":f.setLeft,b.addClass(c+" _"+d+"_"+e.idx+m+n).wrapInner("<div id='mCSB_"+e.idx+"' class='mCustomScrollBox mCS-"+f.theme+" "+i+"'><div id='mCSB_"+e.idx+"_container' class='mCSB_container' style='position:relative; top:"+f.setTop+"; left:"+f.setLeft+";' dir="+e.langDir+" /></div>");var o=a("#mCSB_"+e.idx),p=a("#mCSB_"+e.idx+"_container");"y"===f.axis||f.advanced.autoExpandHorizontalScroll||p.css("width",s(p)),"outside"===f.scrollbarPosition?("static"===b.css("position")&&b.css("position","relative"),b.css("overflow","visible"),o.addClass("mCSB_outside").after(j)):(o.addClass("mCSB_inside").append(j),p.wrap(l)),u.call(this);var q=[a("#mCSB_"+e.idx+"_dragger_vertical"),a("#mCSB_"+e.idx+"_dragger_horizontal")];q[0].css("min-height",q[0].height()),q[1].css("min-width",q[1].width())},s=function(b){var c=[b[0].scrollWidth,Math.max.apply(Math,b.children().map(function(){return a(this).outerWidth(!0)}).get())],d=b.parent().width();return c[0]>d?c[0]:c[1]>d?c[1]:"100%"},t=function(){var b=a(this),c=b.data(d),e=c.opt,f=a("#mCSB_"+c.idx+"_container");if(e.advanced.autoExpandHorizontalScroll&&"y"!==e.axis){f.css({width:"auto","min-width":0,"overflow-x":"scroll"});var g=Math.ceil(f[0].scrollWidth);3===e.advanced.autoExpandHorizontalScroll||2!==e.advanced.autoExpandHorizontalScroll&&g>f.parent().width()?f.css({width:g,"min-width":"100%","overflow-x":"inherit"}):f.css({"overflow-x":"inherit",position:"absolute"}).wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />").css({width:Math.ceil(f[0].getBoundingClientRect().right+.4)-Math.floor(f[0].getBoundingClientRect().left),"min-width":"100%",position:"relative"}).unwrap()}},u=function(){
-var b=a(this),c=b.data(d),e=c.opt,f=a(".mCSB_"+c.idx+"_scrollbar:first"),g=aa(e.scrollButtons.tabindex)?"tabindex='"+e.scrollButtons.tabindex+"'":"",h=["<a href='#' class='"+k[13]+"' oncontextmenu='return false;' "+g+" />","<a href='#' class='"+k[14]+"' oncontextmenu='return false;' "+g+" />","<a href='#' class='"+k[15]+"' oncontextmenu='return false;' "+g+" />","<a href='#' class='"+k[16]+"' oncontextmenu='return false;' "+g+" />"],i=["x"===e.axis?h[2]:h[0],"x"===e.axis?h[3]:h[1],h[2],h[3]];e.scrollButtons.enable&&f.prepend(i[0]).append(i[1]).next(".mCSB_scrollTools").prepend(i[2]).append(i[3])},v=function(){var b=a(this),c=b.data(d),e=a("#mCSB_"+c.idx),f=a("#mCSB_"+c.idx+"_container"),g=[a("#mCSB_"+c.idx+"_dragger_vertical"),a("#mCSB_"+c.idx+"_dragger_horizontal")],h=[e.height()/f.outerHeight(!1),e.width()/f.outerWidth(!1)],j=[parseInt(g[0].css("min-height")),Math.round(h[0]*g[0].parent().height()),parseInt(g[1].css("min-width")),Math.round(h[1]*g[1].parent().width())],k=i&&j[1]<j[0]?j[0]:j[1],l=i&&j[3]<j[2]?j[2]:j[3];g[0].css({height:k,"max-height":g[0].parent().height()-10}).find(".mCSB_dragger_bar").css({"line-height":j[0]+"px"}),g[1].css({width:l,"max-width":g[1].parent().width()-10})},w=function(){var b=a(this),c=b.data(d),e=a("#mCSB_"+c.idx),f=a("#mCSB_"+c.idx+"_container"),g=[a("#mCSB_"+c.idx+"_dragger_vertical"),a("#mCSB_"+c.idx+"_dragger_horizontal")],h=[f.outerHeight(!1)-e.height(),f.outerWidth(!1)-e.width()],i=[h[0]/(g[0].parent().height()-g[0].height()),h[1]/(g[1].parent().width()-g[1].width())];c.scrollRatio={y:i[0],x:i[1]}},x=function(a,b,c){var d=c?k[0]+"_expanded":"",e=a.closest(".mCSB_scrollTools");"active"===b?(a.toggleClass(k[0]+" "+d),e.toggleClass(k[1]),a[0]._draggable=a[0]._draggable?0:1):a[0]._draggable||("hide"===b?(a.removeClass(k[0]),e.removeClass(k[1])):(a.addClass(k[0]),e.addClass(k[1])))},y=function(){var b=a(this),c=b.data(d),e=a("#mCSB_"+c.idx),f=a("#mCSB_"+c.idx+"_container"),g=null==c.overflowed?f.height():f.outerHeight(!1),h=null==c.overflowed?f.width():f.outerWidth(!1),i=f[0].scrollHeight,j=f[0].scrollWidth;return i>g&&(g=i),j>h&&(h=j),[g>e.height(),h>e.width()]},z=function(){var b=a(this),c=b.data(d),e=c.opt,f=a("#mCSB_"+c.idx),g=a("#mCSB_"+c.idx+"_container"),h=[a("#mCSB_"+c.idx+"_dragger_vertical"),a("#mCSB_"+c.idx+"_dragger_horizontal")];if(U(b),("x"!==e.axis&&!c.overflowed[0]||"y"===e.axis&&c.overflowed[0])&&(h[0].add(g).css("top",0),V(b,"_resetY")),"y"!==e.axis&&!c.overflowed[1]||"x"===e.axis&&c.overflowed[1]){var i=dx=0;"rtl"===c.langDir&&(i=f.width()-g.outerWidth(!1),dx=Math.abs(i/c.scrollRatio.x)),g.css("left",i),h[1].css("left",dx),V(b,"_resetX")}},A=function(){function b(){g=setTimeout(function(){a.event.special.mousewheel?(clearTimeout(g),H.call(c[0])):b()},100)}var c=a(this),e=c.data(d),f=e.opt;if(!e.bindEvents){if(E.call(this),f.contentTouchScroll&&F.call(this),G.call(this),f.mouseWheel.enable){var g;b()}K.call(this),M.call(this),f.advanced.autoScrollOnFocus&&L.call(this),f.scrollButtons.enable&&N.call(this),f.keyboard.enable&&O.call(this),e.bindEvents=!0}},B=function(){var b=a(this),c=b.data(d),e=c.opt,f=d+"_"+c.idx,g=".mCSB_"+c.idx+"_scrollbar",h=a("#mCSB_"+c.idx+",#mCSB_"+c.idx+"_container,#mCSB_"+c.idx+"_container_wrapper,"+g+" ."+k[12]+",#mCSB_"+c.idx+"_dragger_vertical,#mCSB_"+c.idx+"_dragger_horizontal,"+g+">a"),i=a("#mCSB_"+c.idx+"_container");e.advanced.releaseDraggableSelectors&&h.add(a(e.advanced.releaseDraggableSelectors)),e.advanced.extraDraggableSelectors&&h.add(a(e.advanced.extraDraggableSelectors)),c.bindEvents&&(a(document).add(a(!I()||top.document)).unbind("."+f),h.each(function(){a(this).unbind("."+f)}),clearTimeout(b[0]._focusTimeout),Z(b[0],"_focusTimeout"),clearTimeout(c.sequential.step),Z(c.sequential,"step"),clearTimeout(i[0].onCompleteTimeout),Z(i[0],"onCompleteTimeout"),c.bindEvents=!1)},C=function(b){var c=a(this),e=c.data(d),f=e.opt,g=a("#mCSB_"+e.idx+"_container_wrapper"),h=g.length?g:a("#mCSB_"+e.idx+"_container"),i=[a("#mCSB_"+e.idx+"_scrollbar_vertical"),a("#mCSB_"+e.idx+"_scrollbar_horizontal")],j=[i[0].find(".mCSB_dragger"),i[1].find(".mCSB_dragger")];"x"!==f.axis&&(e.overflowed[0]&&!b?(i[0].add(j[0]).add(i[0].children("a")).css("display","block"),h.removeClass(k[8]+" "+k[10])):(f.alwaysShowScrollbar?(2!==f.alwaysShowScrollbar&&j[0].css("display","none"),h.removeClass(k[10])):(i[0].css("display","none"),h.addClass(k[10])),h.addClass(k[8]))),"y"!==f.axis&&(e.overflowed[1]&&!b?(i[1].add(j[1]).add(i[1].children("a")).css("display","block"),h.removeClass(k[9]+" "+k[11])):(f.alwaysShowScrollbar?(2!==f.alwaysShowScrollbar&&j[1].css("display","none"),h.removeClass(k[11])):(i[1].css("display","none"),h.addClass(k[11])),h.addClass(k[9]))),e.overflowed[0]||e.overflowed[1]?c.removeClass(k[5]):c.addClass(k[5])},D=function(b){var c=b.type,d=b.target.ownerDocument!==document?[a(frameElement).offset().top,a(frameElement).offset().left]:null,e=I()&&b.target.ownerDocument!==top.document?[a(b.view.frameElement).offset().top,a(b.view.frameElement).offset().left]:[0,0];switch(c){case"pointerdown":case"MSPointerDown":case"pointermove":case"MSPointerMove":case"pointerup":case"MSPointerUp":return d?[b.originalEvent.pageY-d[0]+e[0],b.originalEvent.pageX-d[1]+e[1],!1]:[b.originalEvent.pageY,b.originalEvent.pageX,!1];case"touchstart":case"touchmove":case"touchend":var f=b.originalEvent.touches[0]||b.originalEvent.changedTouches[0],g=b.originalEvent.touches.length||b.originalEvent.changedTouches.length;return b.target.ownerDocument!==document?[f.screenY,f.screenX,g>1]:[f.pageY,f.pageX,g>1];default:return d?[b.pageY-d[0]+e[0],b.pageX-d[1]+e[1],!1]:[b.pageY,b.pageX,!1]}},E=function(){function b(a){var b=o.find("iframe");if(b.length){var c=a?"auto":"none";b.css("pointer-events",c)}}function c(a,b,c,d){if(o[0].idleTimer=l.scrollInertia<233?250:0,e.attr("id")===n[1])var f="x",g=(e[0].offsetLeft-b+d)*k.scrollRatio.x;else var f="y",g=(e[0].offsetTop-a+c)*k.scrollRatio.y;V(h,g.toString(),{dir:f,drag:!0})}var e,f,g,h=a(this),k=h.data(d),l=k.opt,m=d+"_"+k.idx,n=["mCSB_"+k.idx+"_dragger_vertical","mCSB_"+k.idx+"_dragger_horizontal"],o=a("#mCSB_"+k.idx+"_container"),p=a("#"+n[0]+",#"+n[1]),q=l.advanced.releaseDraggableSelectors?p.add(a(l.advanced.releaseDraggableSelectors)):p,r=l.advanced.extraDraggableSelectors?a(!I()||top.document).add(a(l.advanced.extraDraggableSelectors)):a(!I()||top.document);p.bind("mousedown."+m+" touchstart."+m+" pointerdown."+m+" MSPointerDown."+m,function(c){if(c.stopImmediatePropagation(),c.preventDefault(),$(c)){j=!0,i&&(document.onselectstart=function(){return!1}),b(!1),U(h),e=a(this);var d=e.offset(),k=D(c)[0]-d.top,m=D(c)[1]-d.left,n=e.height()+d.top,o=e.width()+d.left;n>k&&k>0&&o>m&&m>0&&(f=k,g=m),x(e,"active",l.autoExpandScrollbar)}}).bind("touchmove."+m,function(a){a.stopImmediatePropagation(),a.preventDefault();var b=e.offset(),d=D(a)[0]-b.top,h=D(a)[1]-b.left;c(f,g,d,h)}),a(document).add(r).bind("mousemove."+m+" pointermove."+m+" MSPointerMove."+m,function(a){if(e){var b=e.offset(),d=D(a)[0]-b.top,h=D(a)[1]-b.left;if(f===d&&g===h)return;c(f,g,d,h)}}).add(q).bind("mouseup."+m+" touchend."+m+" pointerup."+m+" MSPointerUp."+m,function(a){e&&(x(e,"active",l.autoExpandScrollbar),e=null),j=!1,i&&(document.onselectstart=null),b(!0)})},F=function(){function c(a){if(!_(a)||j||D(a)[2])return void(b=0);b=1,w=0,x=0,k=1,y.removeClass("mCS_touch_action");var c=E.offset();l=D(a)[0]-c.top,m=D(a)[1]-c.left,L=[D(a)[0],D(a)[1]]}function e(a){if(_(a)&&!j&&!D(a)[2]&&(A.documentTouchScroll||a.preventDefault(),a.stopImmediatePropagation(),(!x||w)&&k)){q=X();var b=C.offset(),c=D(a)[0]-b.top,d=D(a)[1]-b.left,e="mcsLinearOut";if(G.push(c),H.push(d),L[2]=Math.abs(D(a)[0]-L[0]),L[3]=Math.abs(D(a)[1]-L[1]),z.overflowed[0])var f=F[0].parent().height()-F[0].height(),g=l-c>0&&c-l>-(f*z.scrollRatio.y)&&(2*L[3]<L[2]||"yx"===A.axis);if(z.overflowed[1])var h=F[1].parent().width()-F[1].width(),n=m-d>0&&d-m>-(h*z.scrollRatio.x)&&(2*L[2]<L[3]||"yx"===A.axis);g||n?(O||a.preventDefault(),w=1):(x=1,y.addClass("mCS_touch_action")),O&&a.preventDefault(),u="yx"===A.axis?[l-c,m-d]:"x"===A.axis?[null,m-d]:[l-c,null],E[0].idleTimer=250,z.overflowed[0]&&i(u[0],J,e,"y","all",!0),z.overflowed[1]&&i(u[1],J,e,"x",K,!0)}}function f(a){if(!_(a)||j||D(a)[2])return void(b=0);b=1,a.stopImmediatePropagation(),U(y),p=X();var c=C.offset();n=D(a)[0]-c.top,o=D(a)[1]-c.left,G=[],H=[]}function g(a){if(_(a)&&!j&&!D(a)[2]){k=0,a.stopImmediatePropagation(),w=0,x=0,r=X();var b=C.offset(),c=D(a)[0]-b.top,d=D(a)[1]-b.left;if(!(r-q>30)){t=1e3/(r-p);var e="mcsEaseOut",f=2.5>t,g=f?[G[G.length-2],H[H.length-2]]:[0,0];s=f?[c-g[0],d-g[1]]:[c-n,d-o];var l=[Math.abs(s[0]),Math.abs(s[1])];t=f?[Math.abs(s[0]/4),Math.abs(s[1]/4)]:[t,t];var m=[Math.abs(E[0].offsetTop)-s[0]*h(l[0]/t[0],t[0]),Math.abs(E[0].offsetLeft)-s[1]*h(l[1]/t[1],t[1])];u="yx"===A.axis?[m[0],m[1]]:"x"===A.axis?[null,m[1]]:[m[0],null],v=[4*l[0]+A.scrollInertia,4*l[1]+A.scrollInertia];var y=parseInt(A.contentTouchScroll)||0;u[0]=l[0]>y?u[0]:0,u[1]=l[1]>y?u[1]:0,z.overflowed[0]&&i(u[0],v[0],e,"y",K,!1),z.overflowed[1]&&i(u[1],v[1],e,"x",K,!1)}}}function h(a,b){var c=[1.5*b,2*b,b/1.5,b/2];return a>90?b>4?c[0]:c[3]:a>60?b>3?c[3]:c[2]:a>30?b>8?c[1]:b>6?c[0]:b>4?b:c[2]:b>8?b:c[3]}function i(a,b,c,d,e,f){a&&V(y,a.toString(),{dur:b,scrollEasing:c,dir:d,overwrite:e,drag:f})}var k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=a(this),z=y.data(d),A=z.opt,B=d+"_"+z.idx,C=a("#mCSB_"+z.idx),E=a("#mCSB_"+z.idx+"_container"),F=[a("#mCSB_"+z.idx+"_dragger_vertical"),a("#mCSB_"+z.idx+"_dragger_horizontal")],G=[],H=[],J=0,K="yx"===A.axis?"none":"all",L=[],M=E.find("iframe"),N=["touchstart."+B+" pointerdown."+B+" MSPointerDown."+B,"touchmove."+B+" pointermove."+B+" MSPointerMove."+B,"touchend."+B+" pointerup."+B+" MSPointerUp."+B],O=void 0!==document.body.style.touchAction;E.bind(N[0],function(a){c(a)}).bind(N[1],function(a){e(a)}),C.bind(N[0],function(a){f(a)}).bind(N[2],function(a){g(a)}),M.length&&M.each(function(){a(this).load(function(){I(this)&&a(this.contentDocument||this.contentWindow.document).bind(N[0],function(a){c(a),f(a)}).bind(N[1],function(a){e(a)}).bind(N[2],function(a){g(a)})})})},G=function(){function c(){return window.getSelection?window.getSelection().toString():document.selection&&"Control"!=document.selection.type?document.selection.createRange().text:0}function e(a,b,c){k.type=c&&f?"stepped":"stepless",k.scrollAmount=10,P(g,a,b,"mcsLinearOut",c?60:null)}var f,g=a(this),h=g.data(d),i=h.opt,k=h.sequential,l=d+"_"+h.idx,m=a("#mCSB_"+h.idx+"_container"),n=m.parent();m.bind("mousedown."+l,function(a){b||f||(f=1,j=!0)}).add(document).bind("mousemove."+l,function(a){if(!b&&f&&c()){var d=m.offset(),g=D(a)[0]-d.top+m[0].offsetTop,j=D(a)[1]-d.left+m[0].offsetLeft;g>0&&g<n.height()&&j>0&&j<n.width()?k.step&&e("off",null,"stepped"):("x"!==i.axis&&h.overflowed[0]&&(0>g?e("on",38):g>n.height()&&e("on",40)),"y"!==i.axis&&h.overflowed[1]&&(0>j?e("on",37):j>n.width()&&e("on",39)))}}).bind("mouseup."+l+" dragend."+l,function(a){b||(f&&(f=0,e("off",null)),j=!1)})},H=function(){function b(b,d){if(U(c),!J(c,b.target)){var g="auto"!==f.mouseWheel.deltaFactor?parseInt(f.mouseWheel.deltaFactor):i&&b.deltaFactor<100?100:b.deltaFactor||100,k=f.scrollInertia;if("x"===f.axis||"x"===f.mouseWheel.axis)var l="x",m=[Math.round(g*e.scrollRatio.x),parseInt(f.mouseWheel.scrollAmount)],n="auto"!==f.mouseWheel.scrollAmount?m[1]:m[0]>=h.width()?.9*h.width():m[0],o=Math.abs(a("#mCSB_"+e.idx+"_container")[0].offsetLeft),p=j[1][0].offsetLeft,q=j[1].parent().width()-j[1].width(),r=b.deltaX||b.deltaY||d;else var l="y",m=[Math.round(g*e.scrollRatio.y),parseInt(f.mouseWheel.scrollAmount)],n="auto"!==f.mouseWheel.scrollAmount?m[1]:m[0]>=h.height()?.9*h.height():m[0],o=Math.abs(a("#mCSB_"+e.idx+"_container")[0].offsetTop),p=j[0][0].offsetTop,q=j[0].parent().height()-j[0].height(),r=b.deltaY||d;"y"===l&&!e.overflowed[0]||"x"===l&&!e.overflowed[1]||((f.mouseWheel.invert||b.webkitDirectionInvertedFromDevice)&&(r=-r),f.mouseWheel.normalizeDelta&&(r=0>r?-1:1),(r>0&&0!==p||0>r&&p!==q||f.mouseWheel.preventDefault)&&(b.stopImmediatePropagation(),b.preventDefault()),b.deltaFactor<2&&!f.mouseWheel.normalizeDelta&&(n=b.deltaFactor,k=17),V(c,(o-r*n).toString(),{dir:l,dur:k}))}}if(a(this).data(d)){var c=a(this),e=c.data(d),f=e.opt,g=d+"_"+e.idx,h=a("#mCSB_"+e.idx),j=[a("#mCSB_"+e.idx+"_dragger_vertical"),a("#mCSB_"+e.idx+"_dragger_horizontal")],k=a("#mCSB_"+e.idx+"_container").find("iframe");k.length&&k.each(function(){a(this).load(function(){I(this)&&a(this.contentDocument||this.contentWindow.document).bind("mousewheel."+g,function(a,c){b(a,c)})})}),h.bind("mousewheel."+g,function(a,c){b(a,c)})}},I=function(a){var b=null;if(a){try{var c=a.contentDocument||a.contentWindow.document;b=c.body.innerHTML}catch(d){}return null!==b}try{var c=top.document;b=c.body.innerHTML}catch(d){}return null!==b},J=function(b,c){var e=c.nodeName.toLowerCase(),f=b.data(d).opt.mouseWheel.disableOver,g=["select","textarea"];return a.inArray(e,f)>-1&&!(a.inArray(e,g)>-1&&!a(c).is(":focus"))},K=function(){var b,c=a(this),e=c.data(d),f=d+"_"+e.idx,g=a("#mCSB_"+e.idx+"_container"),h=g.parent(),i=a(".mCSB_"+e.idx+"_scrollbar ."+k[12]);i.bind("mousedown."+f+" touchstart."+f+" pointerdown."+f+" MSPointerDown."+f,function(c){j=!0,a(c.target).hasClass("mCSB_dragger")||(b=1)}).bind("touchend."+f+" pointerup."+f+" MSPointerUp."+f,function(a){j=!1}).bind("click."+f,function(d){if(b&&(b=0,a(d.target).hasClass(k[12])||a(d.target).hasClass("mCSB_draggerRail"))){U(c);var f=a(this),i=f.find(".mCSB_dragger");if(f.parent(".mCSB_scrollTools_horizontal").length>0){if(!e.overflowed[1])return;var j="x",l=d.pageX>i.offset().left?-1:1,m=Math.abs(g[0].offsetLeft)-l*(.9*h.width())}else{if(!e.overflowed[0])return;var j="y",l=d.pageY>i.offset().top?-1:1,m=Math.abs(g[0].offsetTop)-l*(.9*h.height())}V(c,m.toString(),{dir:j,scrollEasing:"mcsEaseInOut"})}})},L=function(){var b=a(this),c=b.data(d),e=c.opt,f=d+"_"+c.idx,g=a("#mCSB_"+c.idx+"_container"),h=g.parent();g.bind("focusin."+f,function(c){var d=a(document.activeElement),f=g.find(".mCustomScrollBox").length,i=0;d.is(e.advanced.autoScrollOnFocus)&&(U(b),clearTimeout(b[0]._focusTimeout),b[0]._focusTimer=f?(i+17)*f:0,b[0]._focusTimeout=setTimeout(function(){var a=[ba(d)[0],ba(d)[1]],c=[g[0].offsetTop,g[0].offsetLeft],f=[c[0]+a[0]>=0&&c[0]+a[0]<h.height()-d.outerHeight(!1),c[1]+a[1]>=0&&c[0]+a[1]<h.width()-d.outerWidth(!1)],j="yx"!==e.axis||f[0]||f[1]?"all":"none";"x"===e.axis||f[0]||V(b,a[0].toString(),{dir:"y",scrollEasing:"mcsEaseInOut",overwrite:j,dur:i}),"y"===e.axis||f[1]||V(b,a[1].toString(),{dir:"x",scrollEasing:"mcsEaseInOut",overwrite:j,dur:i})},b[0]._focusTimer))})},M=function(){var b=a(this),c=b.data(d),e=d+"_"+c.idx,f=a("#mCSB_"+c.idx+"_container").parent();f.bind("scroll."+e,function(b){(0!==f.scrollTop()||0!==f.scrollLeft())&&a(".mCSB_"+c.idx+"_scrollbar").css("visibility","hidden")})},N=function(){var b=a(this),c=b.data(d),e=c.opt,f=c.sequential,g=d+"_"+c.idx,h=".mCSB_"+c.idx+"_scrollbar",i=a(h+">a");i.bind("mousedown."+g+" touchstart."+g+" pointerdown."+g+" MSPointerDown."+g+" mouseup."+g+" touchend."+g+" pointerup."+g+" MSPointerUp."+g+" mouseout."+g+" pointerout."+g+" MSPointerOut."+g+" click."+g,function(d){function g(a,c){f.scrollAmount=e.scrollButtons.scrollAmount,P(b,a,c)}if(d.preventDefault(),$(d)){var h=a(this).attr("class");switch(f.type=e.scrollButtons.scrollType,d.type){case"mousedown":case"touchstart":case"pointerdown":case"MSPointerDown":if("stepped"===f.type)return;j=!0,c.tweenRunning=!1,g("on",h);break;case"mouseup":case"touchend":case"pointerup":case"MSPointerUp":case"mouseout":case"pointerout":case"MSPointerOut":if("stepped"===f.type)return;j=!1,f.dir&&g("off",h);break;case"click":if("stepped"!==f.type||c.tweenRunning)return;g("on",h)}}})},O=function(){function b(b){function d(a,b){g.type=f.keyboard.scrollType,g.scrollAmount=f.keyboard.scrollAmount,"stepped"===g.type&&e.tweenRunning||P(c,a,b)}switch(b.type){case"blur":e.tweenRunning&&g.dir&&d("off",null);break;case"keydown":case"keyup":var h=b.keyCode?b.keyCode:b.which,i="on";if("x"!==f.axis&&(38===h||40===h)||"y"!==f.axis&&(37===h||39===h)){if((38===h||40===h)&&!e.overflowed[0]||(37===h||39===h)&&!e.overflowed[1])return;"keyup"===b.type&&(i="off"),a(document.activeElement).is(l)||(b.preventDefault(),b.stopImmediatePropagation(),d(i,h))}else if(33===h||34===h){if((e.overflowed[0]||e.overflowed[1])&&(b.preventDefault(),b.stopImmediatePropagation()),"keyup"===b.type){U(c);var m=34===h?-1:1;if("x"===f.axis||"yx"===f.axis&&e.overflowed[1]&&!e.overflowed[0])var n="x",o=Math.abs(j[0].offsetLeft)-m*(.9*k.width());else var n="y",o=Math.abs(j[0].offsetTop)-m*(.9*k.height());V(c,o.toString(),{dir:n,scrollEasing:"mcsEaseInOut"})}}else if((35===h||36===h)&&!a(document.activeElement).is(l)&&((e.overflowed[0]||e.overflowed[1])&&(b.preventDefault(),b.stopImmediatePropagation()),"keyup"===b.type)){if("x"===f.axis||"yx"===f.axis&&e.overflowed[1]&&!e.overflowed[0])var n="x",o=35===h?Math.abs(k.width()-j.outerWidth(!1)):0;else var n="y",o=35===h?Math.abs(k.height()-j.outerHeight(!1)):0;V(c,o.toString(),{dir:n,scrollEasing:"mcsEaseInOut"})}}}var c=a(this),e=c.data(d),f=e.opt,g=e.sequential,h=d+"_"+e.idx,i=a("#mCSB_"+e.idx),j=a("#mCSB_"+e.idx+"_container"),k=j.parent(),l="input,textarea,select,datalist,keygen,[contenteditable='true']",m=j.find("iframe"),n=["blur."+h+" keydown."+h+" keyup."+h];m.length&&m.each(function(){a(this).load(function(){I(this)&&a(this.contentDocument||this.contentWindow.document).bind(n[0],function(a){b(a)})})}),i.attr("tabindex","0").bind(n[0],function(a){b(a)})},P=function(b,c,e,f,g){function h(a){l.snapAmount&&(m.scrollAmount=l.snapAmount instanceof Array?"x"===m.dir[0]?l.snapAmount[1]:l.snapAmount[0]:l.snapAmount);var c="stepped"!==m.type,d=g?g:a?c?p/1.5:q:1e3/60,e=a?c?7.5:40:2.5,i=[Math.abs(n[0].offsetTop),Math.abs(n[0].offsetLeft)],k=[j.scrollRatio.y>10?10:j.scrollRatio.y,j.scrollRatio.x>10?10:j.scrollRatio.x],o="x"===m.dir[0]?i[1]+m.dir[1]*(k[1]*e):i[0]+m.dir[1]*(k[0]*e),r="x"===m.dir[0]?i[1]+m.dir[1]*parseInt(m.scrollAmount):i[0]+m.dir[1]*parseInt(m.scrollAmount),s="auto"!==m.scrollAmount?r:o,t=f?f:a?c?"mcsLinearOut":"mcsEaseInOut":"mcsLinear",u=a?!0:!1;return a&&17>d&&(s="x"===m.dir[0]?i[1]:i[0]),V(b,s.toString(),{dir:m.dir[0],scrollEasing:t,dur:d,onComplete:u}),a?void(m.dir=!1):(clearTimeout(m.step),void(m.step=setTimeout(function(){h()},d)))}function i(){clearTimeout(m.step),Z(m,"step"),U(b)}var j=b.data(d),l=j.opt,m=j.sequential,n=a("#mCSB_"+j.idx+"_container"),o="stepped"===m.type?!0:!1,p=l.scrollInertia<26?26:l.scrollInertia,q=l.scrollInertia<1?17:l.scrollInertia;switch(c){case"on":if(m.dir=[e===k[16]||e===k[15]||39===e||37===e?"x":"y",e===k[13]||e===k[15]||38===e||37===e?-1:1],U(b),aa(e)&&"stepped"===m.type)return;h(o);break;case"off":i(),(o||j.tweenRunning&&m.dir)&&h(!0)}},Q=function(b){var c=a(this).data(d).opt,e=[];return"function"==typeof b&&(b=b()),b instanceof Array?e=b.length>1?[b[0],b[1]]:"x"===c.axis?[null,b[0]]:[b[0],null]:(e[0]=b.y?b.y:b.x||"x"===c.axis?null:b,e[1]=b.x?b.x:b.y||"y"===c.axis?null:b),"function"==typeof e[0]&&(e[0]=e[0]()),"function"==typeof e[1]&&(e[1]=e[1]()),e},R=function(b,c){if(null!=b&&"undefined"!=typeof b){var e=a(this),f=e.data(d),g=f.opt,h=a("#mCSB_"+f.idx+"_container"),i=h.parent(),j=typeof b;c||(c="x"===g.axis?"x":"y");var k="x"===c?h.outerWidth(!1):h.outerHeight(!1),m="x"===c?h[0].offsetLeft:h[0].offsetTop,n="x"===c?"left":"top";switch(j){case"function":return b();case"object":var o=b.jquery?b:a(b);if(!o.length)return;return"x"===c?ba(o)[1]:ba(o)[0];case"string":case"number":if(aa(b))return Math.abs(b);if(-1!==b.indexOf("%"))return Math.abs(k*parseInt(b)/100);if(-1!==b.indexOf("-="))return Math.abs(m-parseInt(b.split("-=")[1]));if(-1!==b.indexOf("+=")){var p=m+parseInt(b.split("+=")[1]);return p>=0?0:Math.abs(p)}if(-1!==b.indexOf("px")&&aa(b.split("px")[0]))return Math.abs(b.split("px")[0]);if("top"===b||"left"===b)return 0;if("bottom"===b)return Math.abs(i.height()-h.outerHeight(!1));if("right"===b)return Math.abs(i.width()-h.outerWidth(!1));if("first"===b||"last"===b){var o=h.find(":"+b);return"x"===c?ba(o)[1]:ba(o)[0]}return a(b).length?"x"===c?ba(a(b))[1]:ba(a(b))[0]:(h.css(n,b),void l.update.call(null,e[0]))}}},S=function(b){function c(){return clearTimeout(m[0].autoUpdate),0===h.parents("html").length?void(h=null):void(m[0].autoUpdate=setTimeout(function(){return j.advanced.updateOnSelectorChange&&(i.poll.change.n=f(),i.poll.change.n!==i.poll.change.o)?(i.poll.change.o=i.poll.change.n,void g(3)):j.advanced.updateOnContentResize&&(i.poll.size.n=h[0].scrollHeight+h[0].scrollWidth+m[0].offsetHeight+h[0].offsetHeight+h[0].offsetWidth,i.poll.size.n!==i.poll.size.o)?(i.poll.size.o=i.poll.size.n,void g(1)):!j.advanced.updateOnImageLoad||"auto"===j.advanced.updateOnImageLoad&&"y"===j.axis||(i.poll.img.n=m.find("img").length,i.poll.img.n===i.poll.img.o)?void((j.advanced.updateOnSelectorChange||j.advanced.updateOnContentResize||j.advanced.updateOnImageLoad)&&c()):(i.poll.img.o=i.poll.img.n,void m.find("img").each(function(){e(this)}))},j.advanced.autoUpdateTimeout))}function e(b){function c(a,b){return function(){return b.apply(a,arguments)}}function d(){this.onload=null,a(b).addClass(k[2]),g(2)}if(a(b).hasClass(k[2]))return void g();var e=new Image;e.onload=c(e,d),e.src=b.src}function f(){j.advanced.updateOnSelectorChange===!0&&(j.advanced.updateOnSelectorChange="*");var a=0,b=m.find(j.advanced.updateOnSelectorChange);return j.advanced.updateOnSelectorChange&&b.length>0&&b.each(function(){a+=this.offsetHeight+this.offsetWidth}),a}function g(a){clearTimeout(m[0].autoUpdate),l.update.call(null,h[0],a)}var h=a(this),i=h.data(d),j=i.opt,m=a("#mCSB_"+i.idx+"_container");return b?(clearTimeout(m[0].autoUpdate),void Z(m[0],"autoUpdate")):void c()},T=function(a,b,c){return Math.round(a/b)*b-c},U=function(b){var c=b.data(d),e=a("#mCSB_"+c.idx+"_container,#mCSB_"+c.idx+"_container_wrapper,#mCSB_"+c.idx+"_dragger_vertical,#mCSB_"+c.idx+"_dragger_horizontal");e.each(function(){Y.call(this)})},V=function(b,c,e){function f(a){return i&&j.callbacks[a]&&"function"==typeof j.callbacks[a]}function g(){return[j.callbacks.alwaysTriggerOffsets||u>=v[0]+y,j.callbacks.alwaysTriggerOffsets||-z>=u]}function h(){var a=[n[0].offsetTop,n[0].offsetLeft],c=[s[0].offsetTop,s[0].offsetLeft],d=[n.outerHeight(!1),n.outerWidth(!1)],f=[m.height(),m.width()];b[0].mcs={content:n,top:a[0],left:a[1],draggerTop:c[0],draggerLeft:c[1],topPct:Math.round(100*Math.abs(a[0])/(Math.abs(d[0])-f[0])),leftPct:Math.round(100*Math.abs(a[1])/(Math.abs(d[1])-f[1])),direction:e.dir}}var i=b.data(d),j=i.opt,k={trigger:"internal",dir:"y",scrollEasing:"mcsEaseOut",drag:!1,dur:j.scrollInertia,overwrite:"all",callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},e=a.extend(k,e),l=[e.dur,e.drag?0:e.dur],m=a("#mCSB_"+i.idx),n=a("#mCSB_"+i.idx+"_container"),o=n.parent(),p=j.callbacks.onTotalScrollOffset?Q.call(b,j.callbacks.onTotalScrollOffset):[0,0],q=j.callbacks.onTotalScrollBackOffset?Q.call(b,j.callbacks.onTotalScrollBackOffset):[0,0];if(i.trigger=e.trigger,(0!==o.scrollTop()||0!==o.scrollLeft())&&(a(".mCSB_"+i.idx+"_scrollbar").css("visibility","visible"),o.scrollTop(0).scrollLeft(0)),"_resetY"!==c||i.contentReset.y||(f("onOverflowYNone")&&j.callbacks.onOverflowYNone.call(b[0]),i.contentReset.y=1),"_resetX"!==c||i.contentReset.x||(f("onOverflowXNone")&&j.callbacks.onOverflowXNone.call(b[0]),i.contentReset.x=1),"_resetY"!==c&&"_resetX"!==c){if(!i.contentReset.y&&b[0].mcs||!i.overflowed[0]||(f("onOverflowY")&&j.callbacks.onOverflowY.call(b[0]),i.contentReset.x=null),!i.contentReset.x&&b[0].mcs||!i.overflowed[1]||(f("onOverflowX")&&j.callbacks.onOverflowX.call(b[0]),i.contentReset.x=null),j.snapAmount){var r=j.snapAmount instanceof Array?"x"===e.dir?j.snapAmount[1]:j.snapAmount[0]:j.snapAmount;c=T(c,r,j.snapOffset)}switch(e.dir){case"x":var s=a("#mCSB_"+i.idx+"_dragger_horizontal"),t="left",u=n[0].offsetLeft,v=[m.width()-n.outerWidth(!1),s.parent().width()-s.width()],w=[c,0===c?0:c/i.scrollRatio.x],y=p[1],z=q[1],A=y>0?y/i.scrollRatio.x:0,B=z>0?z/i.scrollRatio.x:0;break;case"y":var s=a("#mCSB_"+i.idx+"_dragger_vertical"),t="top",u=n[0].offsetTop,v=[m.height()-n.outerHeight(!1),s.parent().height()-s.height()],w=[c,0===c?0:c/i.scrollRatio.y],y=p[0],z=q[0],A=y>0?y/i.scrollRatio.y:0,B=z>0?z/i.scrollRatio.y:0}w[1]<0||0===w[0]&&0===w[1]?w=[0,0]:w[1]>=v[1]?w=[v[0],v[1]]:w[0]=-w[0],b[0].mcs||(h(),f("onInit")&&j.callbacks.onInit.call(b[0])),clearTimeout(n[0].onCompleteTimeout),W(s[0],t,Math.round(w[1]),l[1],e.scrollEasing),(i.tweenRunning||!(0===u&&w[0]>=0||u===v[0]&&w[0]<=v[0]))&&W(n[0],t,Math.round(w[0]),l[0],e.scrollEasing,e.overwrite,{onStart:function(){e.callbacks&&e.onStart&&!i.tweenRunning&&(f("onScrollStart")&&(h(),j.callbacks.onScrollStart.call(b[0])),i.tweenRunning=!0,x(s),i.cbOffsets=g())},onUpdate:function(){e.callbacks&&e.onUpdate&&f("whileScrolling")&&(h(),j.callbacks.whileScrolling.call(b[0]))},onComplete:function(){if(e.callbacks&&e.onComplete){"yx"===j.axis&&clearTimeout(n[0].onCompleteTimeout);var a=n[0].idleTimer||0;n[0].onCompleteTimeout=setTimeout(function(){f("onScroll")&&(h(),j.callbacks.onScroll.call(b[0])),f("onTotalScroll")&&w[1]>=v[1]-A&&i.cbOffsets[0]&&(h(),j.callbacks.onTotalScroll.call(b[0])),f("onTotalScrollBack")&&w[1]<=B&&i.cbOffsets[1]&&(h(),j.callbacks.onTotalScrollBack.call(b[0])),i.tweenRunning=!1,n[0].idleTimer=0,x(s,"hide")},a)}}})}},W=function(a,b,c,d,e,f,g){function h(){v.stop||(s||o.call(),s=X()-r,i(),s>=v.time&&(v.time=s>v.time?s+m-(s-v.time):s+m-1,v.time<s+1&&(v.time=s+1)),v.time<d?v.id=n(h):q.call())}function i(){d>0?(v.currVal=l(v.time,t,w,d,e),u[b]=Math.round(v.currVal)+"px"):u[b]=c+"px",p.call()}function j(){m=1e3/60,v.time=s+m,n=window.requestAnimationFrame?window.requestAnimationFrame:function(a){return i(),setTimeout(a,.01)},v.id=n(h)}function k(){null!=v.id&&(window.requestAnimationFrame?window.cancelAnimationFrame(v.id):clearTimeout(v.id),v.id=null)}function l(a,b,c,d,e){switch(e){case"linear":case"mcsLinear":return c*a/d+b;case"mcsLinearOut":return a/=d,a--,c*Math.sqrt(1-a*a)+b;case"easeInOutSmooth":return a/=d/2,1>a?c/2*a*a+b:(a--,-c/2*(a*(a-2)-1)+b);case"easeInOutStrong":return a/=d/2,1>a?c/2*Math.pow(2,10*(a-1))+b:(a--,c/2*(-Math.pow(2,-10*a)+2)+b);case"easeInOut":case"mcsEaseInOut":return a/=d/2,1>a?c/2*a*a*a+b:(a-=2,c/2*(a*a*a+2)+b);case"easeOutSmooth":return a/=d,a--,-c*(a*a*a*a-1)+b;case"easeOutStrong":return c*(-Math.pow(2,-10*a/d)+1)+b;case"easeOut":case"mcsEaseOut":default:var f=(a/=d)*a,g=f*a;return b+c*(.499999999999997*g*f+-2.5*f*f+5.5*g+-6.5*f+4*a)}}a._mTween||(a._mTween={top:{},left:{}});var m,n,g=g||{},o=g.onStart||function(){},p=g.onUpdate||function(){},q=g.onComplete||function(){},r=X(),s=0,t=a.offsetTop,u=a.style,v=a._mTween[b];"left"===b&&(t=a.offsetLeft);var w=c-t;v.stop=0,"none"!==f&&k(),j()},X=function(){return window.performance&&window.performance.now?window.performance.now():window.performance&&window.performance.webkitNow?window.performance.webkitNow():Date.now?Date.now():(new Date).getTime()},Y=function(){var a=this;a._mTween||(a._mTween={top:{},left:{}});for(var b=["top","left"],c=0;c<b.length;c++){var d=b[c];a._mTween[d].id&&(window.requestAnimationFrame?window.cancelAnimationFrame(a._mTween[d].id):clearTimeout(a._mTween[d].id),a._mTween[d].id=null,a._mTween[d].stop=1)}},Z=function(a,b){try{delete a[b]}catch(c){a[b]=null}},$=function(a){return!(a.which&&1!==a.which)},_=function(a){var b=a.originalEvent.pointerType;return!(b&&"touch"!==b&&2!==b)},aa=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},ba=function(a){var b=a.parents(".mCSB_container");return[a.offset().top-b.offset().top,a.offset().left-b.offset().left]},ca=function(){function a(){var a=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var b=0;b<a.length;b++)if(a[b]+"Hidden"in document)return a[b]+"Hidden";return null}var b=a();return b?document[b]:!1};a.fn[c]=function(b){return l[b]?l[b].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof b&&b?void a.error("Method "+b+" does not exist"):l.init.apply(this,arguments)},a[c]=function(b){return l[b]?l[b].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof b&&b?void a.error("Method "+b+" does not exist"):l.init.apply(this,arguments)},a[c].defaults=f,window[c]=!0,a(window).load(function(){a(e)[c](),a.extend(a.expr[":"],{mcsInView:a.expr[":"].mcsInView||function(b){var c,d,e=a(b),f=e.parents(".mCSB_container");if(f.length)return c=f.parent(),d=[f[0].offsetTop,f[0].offsetLeft],d[0]+ba(e)[0]>=0&&d[0]+ba(e)[0]<c.height()-e.outerHeight(!1)&&d[1]+ba(e)[1]>=0&&d[1]+ba(e)[1]<c.width()-e.outerWidth(!1)},mcsOverflow:a.expr[":"].mcsOverflow||function(b){var c=a(b).data(d);if(c)return c.overflowed[0]||c.overflowed[1]}})})})}),!function(){"use strict";function a(){this.defaults={scrollButtons:{enable:!1},axis:"yx"},$.mCustomScrollbar.defaults.scrollButtons=this.defaults.scrollButtons,$.mCustomScrollbar.defaults.axis=this.defaults.axis,this.$get=function(){return{defaults:this.defaults}}}function b(a){return{scope:{ngScrollbarsConfig:"&"},link:function(b,c){var d=a.defaults,e=$.mCustomScrollbar.defaults,f=b.ngScrollbarsConfig();f||(f={});for(var g in d)if(d.hasOwnProperty(g))switch(g){case"scrollButtons":f.hasOwnProperty(g)||(e.scrollButtons=d[g]);break;case"axis":f.hasOwnProperty(g)||(e.axis=d[g]);break;default:f.hasOwnProperty(g)||(f[g]=d[g])}c.mCustomScrollbar(f)}}}b.$inject=["a"],angular.module("ngScrollbars",[]).provider("ScrollBars",a).directive("ngScrollbars",b),a.$inject=[],b.$inject=["ScrollBars"]}(),function(){"use strict";angular.module("ng-slide-down",[]).directive("ngSlideDown",["$timeout",function(a){var b,c;return b=function(a,b){return void 0!==b.lazyRender?"<div ng-if='lazyRender' ng-transclude></div>":"<div ng-transclude></div>"},c=function(b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q;return h=d.duration||1,q=d.timingFunction||"ease-in-out",i=c.scope(),j=d.emitOnClose,n=d.onClose,m=void 0!==d.lazyRender,g=null,o=null,k=function(a){var b,d,e,f,g;for(e=0,d=c.children(),f=0,g=d.length;g>f;f++)b=d[f],e+=b.clientHeight;return""+e+"px"},p=function(){return g&&a.cancel(g),m&&(b.lazyRender=!0),a(function(){return o&&a.cancel(o),c.css({overflow:"hidden",transitionProperty:"height",transitionDuration:""+h+"s",transitionTimingFunction:q,height:k()}),o=a(function(){return c.css({overflow:"visible",transition:"none",height:"auto"})},1e3*h)})},l=function(){return o&&a.cancel(o),c.css({overflow:"hidden",transitionProperty:"height",transitionDuration:""+h+"s",transitionTimingFunction:q,height:"0px"}),j||n||m?g=a(function(){return j&&b.$emit(j,{}),n&&i.$eval(n),m?b.lazyRender=!1:void 0},1e3*h):void 0},b.$watch("expanded",function(b,d){return b?a(p):(null!=b&&(c.css({height:k()}),c[0].clientHeight),a(l))})},{restrict:"A",scope:{expanded:"=ngSlideDown"},transclude:!0,link:c,template:function(a,c){return b(a,c)}}}])}.call(this);var mod;mod=angular.module("infinite-scroll",[]),mod.directive("infiniteScroll",["$rootScope","$window","$timeout",function(a,b,c){return{link:function(d,e,f){var g,h,i,j;return b=angular.element(b),i=0,null!=f.infiniteScrollDistance&&d.$watch(f.infiniteScrollDistance,function(a){return i=parseInt(a,10)}),j=!0,g=!1,null!=f.infiniteScrollDisabled&&d.$watch(f.infiniteScrollDisabled,function(a){return j=!a,j&&g?(g=!1,h()):void 0}),h=function(){var c,h,k,l;return l=b.height()+b.scrollTop(),c=e.offset().top+e.height(),h=c-l,k=h<=b.height()*i,k&&j?a.$$phase?d.$eval(f.infiniteScroll):d.$apply(f.infiniteScroll):k?g=!0:void 0},b.on("scroll",h),d.$on("$destroy",function(){return b.off("scroll",h)}),c(function(){return f.infiniteScrollImmediateCheck?d.$eval(f.infiniteScrollImmediateCheck)?h():void 0:h()},0)}}}]),angular.module("ngMap",[]),function(){"use strict";function camelCase(a){return a.replace(SPECIAL_CHARS_REGEXP,function(a,b,c,d){return d?c.toUpperCase():c}).replace(MOZ_HACK_REGEXP,"Moz$1")}function JSONize(a){try{return JSON.parse(a),a}catch(b){return a.replace(/([\$\w]+)\s*:/g,function(a,b){
-return'"'+b+'":'}).replace(/'([^']+)'/g,function(a,b){return'"'+b+'"'})}}var SPECIAL_CHARS_REGEXP=/([\:\-\_]+(.))/g,MOZ_HACK_REGEXP=/^moz([A-Z])/,Attr2Options=function($parse,$timeout,$log,NavigatorGeolocation,GeoCoder){var orgAttributes=function(a){a.length>0&&(a=a[0]);for(var b={},c=0;c<a.attributes.length;c++){var d=a.attributes[c];b[d.name]=d.value}return b},toOptionValue=function(input,options){var output,key=options.key,scope=options.scope;try{var num=Number(input);if(isNaN(num))throw"Not a number";output=num}catch(err){try{if(input.match(/^[\+\-]?[0-9\.]+,[ ]*\ ?[\+\-]?[0-9\.]+$/)&&(input="["+input+"]"),output=JSON.parse(JSONize(input)),output instanceof Array){var t1stEl=output[0];if(t1stEl.constructor==Object);else if(t1stEl.constructor==Array)output=output.map(function(a){return new google.maps.LatLng(a[0],a[1])});else if(!isNaN(parseFloat(t1stEl))&&isFinite(t1stEl))return new google.maps.LatLng(output[0],output[1])}else output===Object(output)&&(output=getOptions(output,options,!0))}catch(err2){if(input.match(/^[A-Z][a-zA-Z0-9]+\(.*\)$/))try{var exp="new google.maps."+input;output=eval(exp)}catch(e){output=input}else if(input.match(/^([A-Z][a-zA-Z0-9]+)\.([A-Z]+)$/))try{var matches=input.match(/^([A-Z][a-zA-Z0-9]+)\.([A-Z]+)$/);output=google.maps[matches[1]][matches[2]]}catch(e){output=input}else if(input.match(/^[A-Z]+$/))try{var capitalizedKey=key.charAt(0).toUpperCase()+key.slice(1);key.match(/temperatureUnit|windSpeedUnit|labelColor/)?(capitalizedKey=capitalizedKey.replace(/s$/,""),output=google.maps.weather[capitalizedKey][input]):output=google.maps[capitalizedKey][input]}catch(e){output=input}else if(input.match(/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/))try{output=new Date(input)}catch(e){output=input}else output=input}}if("bounds"==options.key&&output instanceof Array&&(output=new google.maps.LatLngBounds(output[0],output[1])),"icons"==options.key&&output instanceof Array)for(var i=0;i<output.length;i++){var el=output[i];el.icon.path.match(/^[A-Z_]+$/)&&(el.icon.path=google.maps.SymbolPath[el.icon.path])}if("icon"==options.key&&output instanceof Object){(""+output.path).match(/^[A-Z_]+$/)&&(output.path=google.maps.SymbolPath[output.path]);for(var key in output){var arr=output[key];"anchor"==key||"origin"==key?output[key]=new google.maps.Point(arr[0],arr[1]):("size"==key||"scaledSize"==key)&&(output[key]=new google.maps.Size(arr[0],arr[1]))}}return output},getAttrsToObserve=function(a){var b=[];a["ng-repeat"]||a.ngRepeat;for(var c in a){var d=a[c];d&&d.match(/\{\{.*\}\}/)&&b.push(camelCase(c))}return b},filter=function(a){var b={};for(var c in a)c.match(/^\$/)||c.match(/^ng[A-Z]/)||(b[c]=a[c]);return b},getOptions=function(a,b,c){var d={};for(var e in a)if(a[e]){if(e.match(/^on[A-Z]/))continue;if(e.match(/ControlOptions$/))continue;"string"!=typeof a[e]?d[e]=a[e]:c&&a[e].match(/^[0-9]+$/)?d[e]=a[e]:d[e]=toOptionValue(a[e],{scope:b,key:e})}return d},getEvents=function(a,b){var c={},d=function(a){return"_"+a.toLowerCase()},e=function(b){var c=b.match(/([^\(]+)\(([^\)]*)\)/),d=c[1],e=c[2].replace(/event[ ,]*/,""),f=$parse("["+e+"]");return function(b){function c(a,b){return a[b]}var e=f(a),g=d.split(".").reduce(c,a);g&&g.apply(this,[b].concat(e)),$timeout(function(){a.$apply()})}};for(var f in b)if(b[f]){if(!f.match(/^on[A-Z]/))continue;var g=f.replace(/^on/,"");g=g.charAt(0).toLowerCase()+g.slice(1),g=g.replace(/([A-Z])/g,d);var h=b[f];c[g]=new e(h)}return c},getControlOptions=function(a){var b={};if("object"!=typeof a)return!1;for(var c in a)if(a[c]){if(!c.match(/(.*)ControlOptions$/))continue;var d=a[c],e=d.replace(/'/g,'"');e=e.replace(/([^"]+)|("[^"]+")/g,function(a,b,c){return b?b.replace(/([a-zA-Z0-9]+?):/g,'"$1":'):c});try{var f=JSON.parse(e);for(var g in f)if(f[g]){var h=f[g];if("string"==typeof h?h=h.toUpperCase():"mapTypeIds"===g&&(h=h.map(function(a){return a.match(/^[A-Z]+$/)?google.maps.MapTypeId[a.toUpperCase()]:a})),"style"===g){var i=c.charAt(0).toUpperCase()+c.slice(1),j=i.replace(/Options$/,"")+"Style";f[g]=google.maps[j][h]}else"position"===g?f[g]=google.maps.ControlPosition[h]:f[g]=h}b[c]=f}catch(k){}}return b};return{camelCase:camelCase,filter:filter,getOptions:getOptions,getEvents:getEvents,getControlOptions:getControlOptions,toOptionValue:toOptionValue,getAttrsToObserve:getAttrsToObserve,orgAttributes:orgAttributes}};Attr2Options.$inject=["$parse","$timeout","$log","NavigatorGeolocation","GeoCoder"],angular.module("ngMap").service("Attr2Options",Attr2Options)}(),function(){"use strict";var a=function(a){return{geocode:function(b){var c=a.defer(),d=new google.maps.Geocoder;return d.geocode(b,function(a,b){b==google.maps.GeocoderStatus.OK?c.resolve(a):c.reject(b)}),c.promise}}};a.$inject=["$q"],angular.module("ngMap").service("GeoCoder",a)}(),function(){"use strict";var a=function(a){return{getCurrentPosition:function(b){var c=a.defer();return navigator.geolocation?(void 0===b?b={timeout:5e3}:void 0===b.timeout&&(b.timeout=5e3),navigator.geolocation.getCurrentPosition(function(a){c.resolve(a)},function(a){c.reject(a)},b)):c.reject("Browser Geolocation service failed."),c.promise},watchPosition:function(){return"TODO"},clearWatch:function(){return"TODO"}}};a.$inject=["$q"],angular.module("ngMap").service("NavigatorGeolocation",a)}(),function(){"use strict";var a=function(a){var b=function(b,c){c=c||b.getCenter();var d=a.defer(),e=new google.maps.StreetViewService;return e.getPanoramaByLocation(c||b.getCenter,100,function(a,b){b===google.maps.StreetViewStatus.OK?d.resolve(a.location.pano):d.resolve(!1)}),d.promise},c=function(a,b){var c=new google.maps.StreetViewPanorama(a.getDiv(),{enableCloseButton:!0});c.setPano(b)};return{getPanorama:b,setPanorama:c}};a.$inject=["$q"],angular.module("ngMap").service("StreetView",a)}(),function(){"use strict";angular.module("ngMap").directive("bicyclingLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.BicyclingLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("bicyclingLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("bicyclingLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("cloudLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.weather.CloudLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("cloudLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("cloudLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("customControl",["Attr2Options","$compile",function(a,b){var c=a;return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=(c.orgAttributes(d),c.filter(e)),h=c.getOptions(g,a),i=c.getEvents(a,g),j=d[0].parentElement.removeChild(d[0]);b(j.innerHTML.trim())(a);for(var k in i)google.maps.event.addDomListener(j,k,i[k]);f.addObject("customControls",j),a.$on("mapInitialized",function(a,b){var c=h.position;b.controls[google.maps.ControlPosition[c]].push(j)})}}}])}(),function(){"use strict";var a,b,c,d=function(a){a=a||{},this.el=document.createElement("div"),this.el.style.display="inline-block",this.visible=!0;for(var b in a)this[b]=a[b]},e=function(){d.prototype=new google.maps.OverlayView,d.prototype.setContent=function(a,b){this.el.innerHTML=a,this.el.style.position="absolute",b&&c(angular.element(this.el).contents())(b)},d.prototype.setPosition=function(a){if(a&&(this.position=a),this.getProjection()&&"function"==typeof this.position.lng){var b=this.getProjection().fromLatLngToDivPixel(this.position),c=Math.round(b.x-this.el.offsetWidth/2),d=Math.round(b.y-this.el.offsetHeight-10);this.el.style.left=c+"px",this.el.style.top=d+"px"}},d.prototype.setZIndex=function(a){a&&(this.zIndex=a),this.el.style.zIndex=this.zIndex},d.prototype.setVisible=function(a){this.el.style.display=a?"inline-block":"none",this.visible=a},d.prototype.addClass=function(a){var b=this.el.className.trim().split(" ");-1==b.indexOf(a)&&b.push(a),this.el.className=b.join(" ")},d.prototype.removeClass=function(a){var b=this.el.className.split(" "),c=b.indexOf(a);c>-1&&b.splice(c,1),this.el.className=b.join(" ")},d.prototype.onAdd=function(){this.getPanes().overlayMouseTarget.appendChild(this.el)},d.prototype.draw=function(){this.setPosition(),this.setZIndex(this.zIndex),this.setVisible(this.visible)},d.prototype.onRemove=function(){this.el.parentNode.removeChild(this.el),this.el=null}},f=function(c,e){return function(f,g,h,i){var j=(a.orgAttributes(g),a.filter(h)),k=a.getOptions(j,f),l=a.getEvents(f,j),m=g[0].parentElement.removeChild(g[0]),n=new d(k);b(function(){f.$watch("["+e.join(",")+"]",function(a){n.setContent(c,f)}),n.setContent(m.innerHTML,f);var a=m.firstElementChild.className;n.addClass("custom-marker"),n.addClass(a),k.position instanceof google.maps.LatLng||i.getGeoLocation(k.position).then(function(a){n.setPosition(a)})});for(var o in l)google.maps.event.addDomListener(n.el,o,l[o]);i.addObject("customMarkers",n),g.bind("$destroy",function(){i.deleteObject("customMarkers",n)})}},g=function(d,g,h){return a=d,b=g,c=h,e(),{restrict:"E",require:"^map",compile:function(a){var b=a.html(),c=b.match(/{{([^}]+)}}/g),d=[];return(c||[]).forEach(function(a){var b=a.replace("{{","").replace("}}","");-1==a.indexOf("::")&&-1==a.indexOf("this.")&&-1==d.indexOf(b)&&d.push(a.replace("{{","").replace("}}",""))}),f(b,d)}}};g.$inject=["Attr2Options","$timeout","$compile"],angular.module("ngMap").directive("customMarker",g)}(),function(){"use strict";var a=function(a,b){a.panel&&(a.panel=document.getElementById(a.panel)||document.querySelector(a.panel));var c=new google.maps.DirectionsRenderer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c},b=function(b,c,d){var e=b,f=new google.maps.DirectionsService,g=function(a,b){var e=b;e.travelMode=e.travelMode||"DRIVING";var g=["origin","destination","travelMode","transitOptions","unitSystem","durationInTraffic","waypoints","optimizeWaypoints","provideRouteAlternatives","avoidHighways","avoidTolls","region"];for(var h in e)-1===g.indexOf(h)&&delete e[h];e.waypoints&&("[]"==e.waypoints||""==e.waypoints)&&delete e.waypoints;var i=function(b){f.route(b,function(b,d){d==google.maps.DirectionsStatus.OK&&c(function(){a.setDirections(b)})})};e.origin&&e.destination&&("current-location"==e.origin?d.getCurrentPosition().then(function(a){e.origin=new google.maps.LatLng(a.coords.latitude,a.coords.longitude),i(e)}):"current-location"==e.destination?d.getCurrentPosition().then(function(a){e.destination=new google.maps.LatLng(a.coords.latitude,a.coords.longitude),i(e)}):i(e))},h=function(b,d,f,h){var i=e.orgAttributes(d),j=e.filter(f),k=e.getOptions(j),l=e.getEvents(b,j),m=e.getAttrsToObserve(i),n=a(k,l);h.addObject("directionsRenderers",n),m.forEach(function(a){!function(a){f.$observe(a,function(b){if("panel"==a)c(function(){var a=document.getElementById(b)||document.querySelector(b);a&&n.setPanel(a)});else if(k[a]!==b){var d=e.toOptionValue(b,{key:a});k[a]=d,g(n,k)}})}(a)}),b.$on("mapInitialized",function(a,b){g(n,k)}),b.$on("$destroy",function(a,b){h.deleteObject("directionsRenderers",n)})};return{restrict:"E",require:"^map",link:h}};b.$inject=["Attr2Options","$timeout","NavigatorGeolocation"],angular.module("ngMap").directive("directions",b)}(),function(){"use strict";angular.module("ngMap").directive("drawingManager",["Attr2Options",function(a){var b=a;return{restrict:"E",require:"^map",link:function(a,c,d,e){var f=(b.orgAttributes(c),b.filter(d)),g=b.getOptions(f),h=b.getControlOptions(f),i=b.getEvents(a,f),j=new google.maps.drawing.DrawingManager({drawingMode:g.drawingmode,drawingControl:g.drawingcontrol,drawingControlOptions:h.drawingControlOptions,circleOptions:g.circleoptions,markerOptions:g.markeroptions,polygonOptions:g.polygonoptions,polylineOptions:g.polylineoptions,rectangleOptions:g.rectangleoptions}),i=b.getEvents(a,f);for(var k in i)google.maps.event.addListener(j,k,i[k]);e.addObject("mapDrawingManager",j)}}}])}(),function(){"use strict";angular.module("ngMap").directive("dynamicMapsEngineLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.visualization.DynamicMapsEngineLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.filter(e),h=b.getOptions(g),i=b.getEvents(a,g,i),j=c(h,i);f.addObject("mapsEngineLayers",j)}}}])}(),function(){"use strict";angular.module("ngMap").directive("fusionTablesLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.FusionTablesLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.filter(e),h=b.getOptions(g),i=b.getEvents(a,g,i),j=c(h,i);f.addObject("fusionTablesLayers",j)}}}])}(),function(){"use strict";angular.module("ngMap").directive("heatmapLayer",["Attr2Options","$window",function(a,b){var c=a;return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=c.filter(e),h=c.getOptions(g);if(h.data=b[e.data]||a[e.data],!(h.data instanceof Array))throw"invalid heatmap data";h.data=new google.maps.MVCArray(h.data);var i=new google.maps.visualization.HeatmapLayer(h);c.getEvents(a,g);f.addObject("heatmapLayers",i)}}}])}(),function(){"use strict";var a=function(a,b,c,d){var e=a,f=function(a,d,e){var f;!a.position||a.position instanceof google.maps.LatLng||delete a.position,f=new google.maps.InfoWindow(a),Object.keys(d).length>0;for(var g in d)g&&google.maps.event.addListener(f,g,d[g]);var h=e.html().trim();if(1!=angular.element(h).length)throw"info-window working as a template must have a container";return f.__template=h.replace(/\s?ng-non-bindable[='"]+/,""),f.__compile=function(a,c){c&&(a["this"]=c);var d=b(f.__template)(a);f.setContent(d[0]),a.$apply()},f.__open=function(a,b,d){c(function(){f.__compile(b,d),d&&d.getPosition?f.open(a,d):d&&d instanceof google.maps.LatLng?(f.open(a),f.setPosition(d)):f.open(a)})},f},g=function(a,b,c,g){b.css("display","none");var h,i=e.orgAttributes(b),j=e.filter(c),k=e.getOptions(j,a),l=e.getEvents(a,j);!k.position||k.position instanceof google.maps.LatLng||(h=k.position);var m=f(k,l,b);h&&g.getGeoLocation(h).then(function(b){m.setPosition(b),m.__open(g.map,a,b);var e=c.geoCallback;e&&d(e)(a)}),g.addObject("infoWindows",m),g.observeAttrSetObj(i,c,m),a.$on("mapInitialized",function(b,c){if(m.visible&&m.__open(c,a),m.visibleOnMarker){var d=m.visibleOnMarker;m.__open(c,a,c.markers[d])}}),a.showInfoWindow=function(b,c,d){var e=g.map.infoWindows[c],f=d?d:this.getPosition?this:null;e.__open(g.map,a,f),g.singleInfoWindow&&(g.lastInfoWindow&&a.hideInfoWindow(b,g.lastInfoWindow),g.lastInfoWindow=c)},a.hideInfoWindow=a.hideInfoWindow||function(a,b){var c=g.map.infoWindows[b];c.close()}};return{restrict:"E",require:"^map",link:g}};a.$inject=["Attr2Options","$compile","$timeout","$parse"],angular.module("ngMap").directive("infoWindow",a)}(),function(){"use strict";angular.module("ngMap").directive("kmlLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.KmlLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("kmlLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("kmlLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("mapData",["Attr2Options",function(a){var b=a;return{restrict:"E",require:"^map",link:function(a,c,d,e){var f=b.filter(d),g=b.getOptions(f),h=b.getEvents(a,f,h);a.$on("mapInitialized",function(b,c){for(var d in g)if(d){var e=g[d];"function"==typeof a[e]?c.data[d](a[e]):c.data[d](e)}for(var f in h)h[f]&&c.data.addListener(f,h[f])})}}}])}(),function(){"use strict";var a,b,c,d,e=function(c,e,f){var g=f.mapLazyLoadParams||f.mapLazyLoad;if(window.lazyLoadCallback=function(){a(function(){e.html(d),b(e.contents())(c)},100)},void 0===window.google||void 0===window.google.maps){var h=document.createElement("script");h.src=g+(g.indexOf("?")>-1?"&":"?")+"callback=lazyLoadCallback",document.body.appendChild(h)}else e.html(d),b(e.contents())(c)},f=function(a,b){return!b.mapLazyLoad&&void 0,d=a.html(),c=b.mapLazyLoad,document.querySelector('script[src="'+c+(c.indexOf("?")>-1?"&":"?")+'callback=lazyLoadCallback"]')?!1:(a.html(""),{pre:e})},g=function(c,d){return b=c,a=d,{compile:f}};g.$inject=["$compile","$timeout"],angular.module("ngMap").directive("mapLazyLoad",g)}(),function(){"use strict";angular.module("ngMap").directive("mapType",["Attr2Options","$window",function(a,b){return{restrict:"E",require:"^map",link:function(a,c,d,e){var f,g=d.name;if(!g)throw"invalid map-type name";if(d.object){var h=a[d.object]?a:b;f=h[d.object],"function"==typeof f&&(f=new f)}if(!f)throw"invalid map-type object";a.$on("mapInitialized",function(a,b){b.mapTypes.set(g,f)}),e.addObject("mapTypes",f)}}}])}(),function(){"use strict";function a(a,b){var c;return a.currentStyle?c=a.currentStyle[b]:window.getComputedStyle&&(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b)),c}var b=function(b,c,d){var e=b,f=function(b,f,g,h){var i=e.orgAttributes(f);b.google=google;var j=document.createElement("div");j.style.width="100%",j.style.height="100%",f.prepend(j),"false"!==g.defaultStyle&&("block"!=a(f[0],"display")&&f.css("display","block"),a(f[0],"height").match(/^(0|auto)/)&&f.css("height","300px")),f[0].addEventListener("dragstart",function(a){return a.preventDefault(),!1});var k=function(a,e){var f=new google.maps.Map(j,{});f.markers={},f.shapes={},c(function(){google.maps.event.trigger(f,"resize")}),a.zoom=a.zoom||15;var k=a.center;k?k instanceof google.maps.LatLng||(delete a.center,h.getGeoLocation(k,m.geoLocationOptions).then(function(a){f.setCenter(a);var c=g.geoCallback;c&&d(c)(b)},function(a){f.setCenter(m.geoFallbackCenter)})):a.center=new google.maps.LatLng(0,0),f.setOptions(a),h.singleInfoWindow=a.singleInfoWindow;for(var l in e)l&&google.maps.event.addListener(f,l,e[l]);h.observeAttrSetObj(i,g,f),h.map=f,h.addObjects(h._objects),b.map=f,b.map.scope=b,google.maps.event.addListenerOnce(f,"idle",function(){b.$emit("mapInitialized",f),g.zoomToIncludeMarkers&&(h.zoomToIncludeMarkers(),"auto"==g.zoomToIncludeMarkers&&b.$on("objectChanged",function(a,b){"markers"==b[0]&&h.zoomToIncludeMarkers()}))})},l=e.filter(g),m=e.getOptions(l,b),n=e.getControlOptions(l),o=angular.extend(m,n),p=e.getEvents(b,l);g.initEvent?b.$on(g.initEvent,function(){!h.map&&k(o,p)}):k(o,p)};return{restrict:"AE",controller:"MapController",link:f}};angular.module("ngMap").directive("map",["Attr2Options","$timeout","$parse",b])}(),function(){"use strict";var a=function(a,b,c,d,e){var f=e,g=this,h=function(a,b,c){a.$observe(b,function(a){if(a){var d=f.camelCase("set-"+b),e=f.toOptionValue(a,{key:b});c[d]&&(b.match(/center|position/)&&"string"==typeof e?g.getGeoLocation(e).then(function(a){c[d](a)}):c[d](e))}})};this.map=null,this._objects=[],this.addObject=function(b,c){if(this.map){this.map[b]=this.map[b]||{};var d=Object.keys(this.map[b]).length;this.map[b][c.id||d]=c,"infoWindows"!=b&&c.setMap&&c.setMap&&c.setMap(this.map),c.centered&&c.position&&this.map.setCenter(c.position),a.$emit("objectChanged",[b,this.map[b]])}else c.groupName=b,this._objects.push(c)},this.deleteObject=function(b,c){if(c.map){var d=c.map[b];for(var e in d)d[e]===c&&delete d[e];c.map&&c.setMap&&c.setMap(null),a.$emit("objectChanged",[b,this.map[b]])}},this.addObjects=function(a){for(var b=0;b<a.length;b++){var c=a[b];c instanceof google.maps.Marker?this.addObject("markers",c):c instanceof google.maps.Circle||c instanceof google.maps.Polygon||c instanceof google.maps.Polyline||c instanceof google.maps.Rectangle||c instanceof google.maps.GroundOverlay?this.addObject("shapes",c):this.addObject(c.groupName,c)}},this.getGeoLocation=function(a,e){var f=b.defer();return!a||a.match(/^current/i)?c.getCurrentPosition(e).then(function(a){var b=a.coords.latitude,c=a.coords.longitude,d=new google.maps.LatLng(b,c);f.resolve(d)},function(a){f.reject(a)}):d.geocode({address:a}).then(function(a){f.resolve(a[0].geometry.location)},function(a){f.reject(a)}),f.promise},this.observeAttrSetObj=function(a,b,c){var d=f.getAttrsToObserve(a);Object.keys(d).length;for(var e=0;e<d.length;e++)h(b,d[e],c)},this.zoomToIncludeMarkers=function(){var a=new google.maps.LatLngBounds;for(var b in this.map.markers)a.extend(this.map.markers[b].getPosition());this.map.fitBounds(a)}};a.$inject=["$scope","$q","NavigatorGeolocation","GeoCoder","Attr2Options"],angular.module("ngMap").controller("MapController",a)}(),function(){"use strict";angular.module("ngMap").directive("mapsEngineLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.visualization.MapsEngineLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.filter(e),h=b.getOptions(g),i=b.getEvents(a,g,i),j=c(h,i);f.addObject("mapsEngineLayers",j)}}}])}(),function(){"use strict";var a=function(a,b){var c;a.position instanceof google.maps.LatLng||(a.position=new google.maps.LatLng(0,0)),c=new google.maps.Marker(a),Object.keys(b).length>0;for(var d in b)d&&google.maps.event.addListener(c,d,b[d]);return c},b=function(b,c){var d=b,e=function(b,e,f,g){var h,i=d.orgAttributes(e),j=d.filter(f),k=d.getOptions(j,b),l=d.getEvents(b,j);k.position instanceof google.maps.LatLng||(h=k.position);var m=a(k,l);g.addObject("markers",m),h&&g.getGeoLocation(h).then(function(a){m.setPosition(a),k.centered&&m.map.setCenter(a);var d=f.geoCallback;d&&c(d)(b)}),k.noWatcher||g.observeAttrSetObj(i,f,m),e.bind("$destroy",function(){g.deleteObject("markers",m)})};return{restrict:"E",require:"^map",link:e}};b.$inject=["Attr2Options","$parse"],angular.module("ngMap").directive("marker",b)}(),function(){"use strict";angular.module("ngMap").directive("overlayMapType",["Attr2Options","$window",function(a,b){return{restrict:"E",require:"^map",link:function(a,c,d,e){var f,g=d.initMethod||"insertAt";if(d.object){var h=a[d.object]?a:b;f=h[d.object],"function"==typeof f&&(f=new f)}if(!f)throw"invalid map-type object";a.$on("mapInitialized",function(a,b){if("insertAt"==g){var c=parseInt(d.index,10);b.overlayMapTypes.insertAt(c,f)}else"push"==g&&b.overlayMapTypes.push(f)}),e.addObject("overlayMapTypes",f)}}}])}(),function(){"use strict";var a=function(a,b){var c=a,d=function(a,d,e,f){if("false"===e.placesAutoComplete)return!1;var g=c.filter(e),h=c.getOptions(g),i=c.getEvents(a,g),j=new google.maps.places.Autocomplete(d[0],h);for(var k in i)google.maps.event.addListener(j,k,i[k]);var l=function(){b(function(){f&&f.$setViewValue(d.val())},100)};google.maps.event.addListener(j,"place_changed",l),d[0].addEventListener("change",l),e.$observe("types",function(a){if(a){var b=c.toOptionValue(a,{key:"types"});j.setTypes(b)}})};return{restrict:"A",require:"?ngModel",link:d}};a.$inject=["Attr2Options","$timeout"],angular.module("ngMap").directive("placesAutoComplete",a)}(),function(){"use strict";var a=function(a,b){var c,d=a.name;switch(delete a.name,d){case"circle":a.center instanceof google.maps.LatLng||(a.center=new google.maps.LatLng(0,0)),c=new google.maps.Circle(a);break;case"polygon":c=new google.maps.Polygon(a);break;case"polyline":c=new google.maps.Polyline(a);break;case"rectangle":c=new google.maps.Rectangle(a);break;case"groundOverlay":case"image":var e=a.url,f={opacity:a.opacity,clickable:a.clickable,id:a.id};c=new google.maps.GroundOverlay(e,a.bounds,f)}for(var g in b)b[g]&&google.maps.event.addListener(c,g,b[g]);return c},b=function(b,c){var d=b,e=function(b,e,f,g){var h,i,j=d.orgAttributes(e),k=d.filter(f),l=d.getOptions(k),m=d.getEvents(b,k);i=l.name,l.center instanceof google.maps.LatLng||(h=l.center);var n=a(l,m);g.addObject("shapes",n),h&&"circle"==i&&g.getGeoLocation(h).then(function(a){n.setCenter(a),n.centered&&n.map.setCenter(a);var d=f.geoCallback;d&&c(d)(b)}),g.observeAttrSetObj(j,f,n),e.bind("$destroy",function(){g.deleteObject("shapes",n)})};return{restrict:"E",require:"^map",link:e}};b.$inject=["Attr2Options","$parse"],angular.module("ngMap").directive("shape",b)}(),function(){"use strict";var a=function(a){var b=a,c=function(a,b,c){var d,e;b.container&&(e=document.getElementById(b.container),e=e||document.querySelector(b.container)),e?d=new google.maps.StreetViewPanorama(e,b):(d=a.getStreetView(),d.setOptions(b));for(var f in c)f&&google.maps.event.addListener(d,f,c[f]);return d},d=function(a,d,e,f){var g=(b.orgAttributes(d),b.filter(e)),h=b.getOptions(g),i=b.getControlOptions(g),j=angular.extend(h,i),k=b.getEvents(a,g);a.$on("mapInitialized",function(a,b){var d=c(b,j,k);b.setStreetView(d),!d.getPosition()&&d.setPosition(b.getCenter()),google.maps.event.addListener(d,"position_changed",function(){d.getPosition()!==b.getCenter()&&b.setCenter(d.getPosition())});var e=google.maps.event.addListener(b,"center_changed",function(){d.setPosition(b.getCenter()),google.maps.event.removeListener(e)})})};return{restrict:"E",require:"^map",link:d}};a.$inject=["Attr2Options"],angular.module("ngMap").directive("streetViewPanorama",a)}(),function(){"use strict";angular.module("ngMap").directive("trafficLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.TrafficLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("trafficLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("trafficLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("transitLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.TransitLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("transitLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("transitLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("weatherLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.weather.WeatherLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("weatherLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("weatherLayers",k)})}}}])}(),function(a,b){"use strict";var c=["ng","oc.lazyLoad"],d={},e=[],f=[],g=[],h=[],i=a.noop,j={},k=[],l=a.module("oc.lazyLoad",["ng"]);l.provider("$ocLazyLoad",["$controllerProvider","$provide","$compileProvider","$filterProvider","$injector","$animateProvider",function(l,m,p,q,r,s){function t(b,d,e){if(d){var f,h,l,m=[];for(f=d.length-1;f>=0;f--)if(h=d[f],a.isString(h)||(h=w(h)),h&&-1===k.indexOf(h)&&(!y[h]||-1!==g.indexOf(h))){var n=-1===c.indexOf(h);if(l=o(h),n&&(c.push(h),t(b,l.requires,e)),l._runBlocks.length>0)for(j[h]=[];l._runBlocks.length>0;)j[h].push(l._runBlocks.shift());a.isDefined(j[h])&&(n||e.rerun)&&(m=m.concat(j[h])),v(b,l._invokeQueue,h,e.reconfig),v(b,l._configBlocks,h,e.reconfig),i(n?"ocLazyLoad.moduleLoaded":"ocLazyLoad.moduleReloaded",h),d.pop(),k.push(h)}var p=b.getInstanceInjector();a.forEach(m,function(a){p.invoke(a)})}}function u(b,c){function e(b,c){var d,e=!0;return c.length&&(d=f(b),a.forEach(c,function(a){e=e&&f(a)!==d})),e}function f(b){return a.isArray(b)?F(b.toString()):a.isObject(b)?F(E(b)):a.isDefined(b)&&null!==b?F(b.toString()):b}var g=b[2][0],h=b[1],j=!1;a.isUndefined(d[c])&&(d[c]={}),a.isUndefined(d[c][h])&&(d[c][h]={});var k=function(a,b){d[c][h].hasOwnProperty(a)||(d[c][h][a]=[]),e(b,d[c][h][a])&&(j=!0,d[c][h][a].push(b),i("ocLazyLoad.componentLoaded",[c,h,a]))};if(a.isString(g))k(g,b[2][1]);else{if(!a.isObject(g))return!1;a.forEach(g,function(b,c){a.isString(b)?k(b,g[1]):k(c,b)})}return j}function v(b,c,d,f){if(c){var g,h,i,j;for(g=0,h=c.length;h>g;g++)if(i=c[g],a.isArray(i)){if(null!==b){if(!b.hasOwnProperty(i[0]))throw new Error("unsupported provider "+i[0]);j=b[i[0]]}var k=u(i,d);if("invoke"!==i[1])k&&a.isDefined(j)&&j[i[1]].apply(j,i[2]);else{var l=function(b){var c=e.indexOf(d+"-"+b);(-1===c||f)&&(-1===c&&e.push(d+"-"+b),a.isDefined(j)&&j[i[1]].apply(j,i[2]))};if(a.isFunction(i[2][0]))l(i[2][0]);else if(a.isArray(i[2][0]))for(var m=0,n=i[2][0].length;n>m;m++)a.isFunction(i[2][0][m])&&l(i[2][0][m])}}}}function w(b){var c=null;return a.isString(b)?c=b:a.isObject(b)&&b.hasOwnProperty("name")&&a.isString(b.name)&&(c=b.name),c}function x(b){if(!a.isString(b))return!1;try{return o(b)}catch(c){if(/No module/.test(c)||c.message.indexOf("$injector:nomod")>-1)return!1}}var y={},z={$controllerProvider:l,$compileProvider:p,$filterProvider:q,$provide:m,$injector:r,$animateProvider:s},A=!1,B=!1,C=[],D={};C.push=function(a){-1===this.indexOf(a)&&Array.prototype.push.apply(this,arguments)},this.config=function(b){a.isDefined(b.modules)&&(a.isArray(b.modules)?a.forEach(b.modules,function(a){y[a.name]=a}):y[b.modules.name]=b.modules),a.isDefined(b.debug)&&(A=b.debug),a.isDefined(b.events)&&(B=b.events)},this._init=function(d){if(0===f.length){var e=[d],g=["ng:app","ng-app","x-ng-app","data-ng-app"],i=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/,j=function(a){return a&&e.push(a)};a.forEach(g,function(b){g[b]=!0,j(document.getElementById(b)),b=b.replace(":","\\:"),"undefined"!=typeof d[0]&&d[0].querySelectorAll&&(a.forEach(d[0].querySelectorAll("."+b),j),a.forEach(d[0].querySelectorAll("."+b+"\\:"),j),a.forEach(d[0].querySelectorAll("["+b+"]"),j))}),a.forEach(e,function(b){if(0===f.length){var c=" "+d.className+" ",e=i.exec(c);e?f.push((e[2]||"").replace(/\s+/g,",")):a.forEach(b.attributes,function(a){0===f.length&&g[a.name]&&f.push(a.value)})}})}0!==f.length||(b.jasmine||b.mocha)&&a.isDefined(a.mock)||console.error("No module found during bootstrap, unable to init ocLazyLoad. You should always use the ng-app directive or angular.boostrap when you use ocLazyLoad.");var k=function l(b){if(-1===c.indexOf(b)){c.push(b);var d=a.module(b);v(null,d._invokeQueue,b),v(null,d._configBlocks,b),a.forEach(d.requires,l)}};a.forEach(f,function(a){k(a)}),f=[],h.pop()};var E=function(b){try{return JSON.stringify(b)}catch(c){var d=[];return JSON.stringify(b,function(b,c){if(a.isObject(c)&&null!==c){if(-1!==d.indexOf(c))return;d.push(c)}return c})}},F=function(a){var b,c,d,e=0;if(0==a.length)return e;for(b=0,d=a.length;d>b;b++)c=a.charCodeAt(b),e=(e<<5)-e+c,e|=0;return e};this.$get=["$log","$rootElement","$rootScope","$cacheFactory","$q",function(b,e,g,j,l){function m(a){var c=l.defer();return b.error(a.message),c.reject(a),c.promise}var p,q=j("ocLazyLoad");return A||(b={},b.error=a.noop,b.warn=a.noop,b.info=a.noop),z.getInstanceInjector=function(){return p?p:p=e.data("$injector")||a.injector()},i=function(a,c){B&&g.$broadcast(a,c),A&&b.info(a,c)},{_broadcast:i,_$log:b,_getFilesCache:function(){return q},toggleWatch:function(a){a?h.push(!0):h.pop()},getModuleConfig:function(b){if(!a.isString(b))throw new Error("You need to give the name of the module to get");return y[b]?a.copy(y[b]):null},setModuleConfig:function(b){if(!a.isObject(b))throw new Error("You need to give the module config object to set");return y[b.name]=b,b},getModules:function(){return c},isLoaded:function(b){var d=function(a){var b=c.indexOf(a)>-1;return b||(b=!!x(a)),b};if(a.isString(b)&&(b=[b]),
-a.isArray(b)){var e,f;for(e=0,f=b.length;f>e;e++)if(!d(b[e]))return!1;return!0}throw new Error("You need to define the module(s) name(s)")},_getModuleName:w,_getModule:function(a){try{return o(a)}catch(b){throw(/No module/.test(b)||b.message.indexOf("$injector:nomod")>-1)&&(b.message='The module "'+E(a)+'" that you are trying to load does not exist. '+b.message),b}},moduleExists:x,_loadDependencies:function(b,c){var d,e,f,g=[],h=this;if(b=h._getModuleName(b),null===b)return l.when();try{d=h._getModule(b)}catch(i){return m(i)}return e=h.getRequires(d),a.forEach(e,function(d){if(a.isString(d)){var e=h.getModuleConfig(d);if(null===e)return void C.push(d);d=e,e.name=void 0}if(h.moduleExists(d.name))return f=d.files.filter(function(a){return h.getModuleConfig(d.name).files.indexOf(a)<0}),0!==f.length&&h._$log.warn('Module "',b,'" attempted to redefine configuration for dependency. "',d.name,'"\n Additional Files Loaded:',f),a.isDefined(h.filesLoader)?void g.push(h.filesLoader(d,c).then(function(){return h._loadDependencies(d)})):m(new Error("Error: New dependencies need to be loaded from external files ("+d.files+"), but no loader has been defined."));if(a.isArray(d)){var i=[];a.forEach(d,function(a){var b=h.getModuleConfig(a);null===b?i.push(a):b.files&&(i=i.concat(b.files))}),i.length>0&&(d={files:i})}else a.isObject(d)&&d.hasOwnProperty("name")&&d.name&&(h.setModuleConfig(d),C.push(d.name));if(a.isDefined(d.files)&&0!==d.files.length){if(!a.isDefined(h.filesLoader))return m(new Error('Error: the module "'+d.name+'" is defined in external files ('+d.files+"), but no loader has been defined."));g.push(h.filesLoader(d,c).then(function(){return h._loadDependencies(d)}))}}),l.all(g)},inject:function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],e=this,g=l.defer();if(a.isDefined(b)&&null!==b){if(a.isArray(b)){var h=[];return a.forEach(b,function(a){h.push(e.inject(a,c,d))}),l.all(h)}e._addToLoadList(e._getModuleName(b),!0,d)}if(f.length>0){var i=f.slice(),j=function m(a){C.push(a),D[a]=g.promise,e._loadDependencies(a,c).then(function(){try{k=[],t(z,C,c)}catch(a){return e._$log.error(a.message),void g.reject(a)}f.length>0?m(f.shift()):g.resolve(i)},function(a){g.reject(a)})};j(f.shift())}else{if(c&&c.name&&D[c.name])return D[c.name];g.resolve()}return g.promise},getRequires:function(b){var d=[];return a.forEach(b.requires,function(a){-1===c.indexOf(a)&&d.push(a)}),d},_invokeQueue:v,_registerInvokeList:u,_register:t,_addToLoadList:n,_unregister:function(b){a.isDefined(b)&&a.isArray(b)&&a.forEach(b,function(a){d[a]=void 0})}}}],this._init(a.element(b.document))}]);var m=a.bootstrap;a.bootstrap=function(b,c,d){return a.forEach(c.slice(),function(a){n(a,!0,!0)}),m(b,c,d)};var n=function(b,c,d){(h.length>0||c)&&a.isString(b)&&-1===f.indexOf(b)&&(f.push(b),d&&g.push(b))},o=a.module;a.module=function(a,b,c){return n(a,!1,!0),o(a,b,c)},"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="oc.lazyLoad")}(angular,window),function(a){"use strict";a.module("oc.lazyLoad").directive("ocLazyLoad",["$ocLazyLoad","$compile","$animate","$parse","$timeout",function(b,c,d,e,f){return{restrict:"A",terminal:!0,priority:1e3,compile:function(f,g){var h=f[0].innerHTML;return f.html(""),function(f,g,i){var j=e(i.ocLazyLoad);f.$watch(function(){return j(f)||i.ocLazyLoad},function(e){a.isDefined(e)&&b.load(e).then(function(){d.enter(h,g),c(g.contents())(f)})},!0)}}}}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$q","$window","$interval",function(b,c,d,e){var f=!1,g=!1,h=d.document.getElementsByTagName("head")[0]||d.document.getElementsByTagName("body")[0];return b.buildElement=function(i,j,k){var l,m,n=c.defer(),o=b._getFilesCache(),p=function(a){var b=(new Date).getTime();return a.indexOf("?")>=0?"&"===a.substring(0,a.length-1)?a+"_dc="+b:a+"&_dc="+b:a+"?_dc="+b};switch(a.isUndefined(o.get(j))&&o.put(j,n.promise),i){case"css":l=d.document.createElement("link"),l.type="text/css",l.rel="stylesheet",l.href=k.cache===!1?p(j):j;break;case"js":l=d.document.createElement("script"),l.src=k.cache===!1?p(j):j;break;default:o.remove(j),n.reject(new Error('Requested type "'+i+'" is not known. Could not inject "'+j+'"'))}l.onload=l.onreadystatechange=function(a){l.readyState&&!/^c|loade/.test(l.readyState)||m||(l.onload=l.onreadystatechange=null,m=1,b._broadcast("ocLazyLoad.fileLoaded",j),n.resolve())},l.onerror=function(){o.remove(j),n.reject(new Error("Unable to load "+j))},l.async=k.serie?0:1;var q=h.lastChild;if(k.insertBefore){var r=a.element(a.isDefined(window.jQuery)?k.insertBefore:document.querySelector(k.insertBefore));r&&r.length>0&&(q=r[0])}if(q.parentNode.insertBefore(l,q),"css"==i){if(!f){var s=d.navigator.userAgent.toLowerCase();if(/iP(hone|od|ad)/.test(d.navigator.platform)){var t=d.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),u=parseFloat([parseInt(t[1],10),parseInt(t[2],10),parseInt(t[3]||0,10)].join("."));g=6>u}else if(s.indexOf("android")>-1){var v=parseFloat(s.slice(s.indexOf("android")+8));g=4.4>v}else if(s.indexOf("safari")>-1){var w=s.match(/version\/([\.\d]+)/i);g=w&&w[1]&&parseFloat(w[1])<6}}if(g)var x=1e3,y=e(function(){try{l.sheet.cssRules,e.cancel(y),l.onload()}catch(a){--x<=0&&l.onerror()}},20)}return n.promise},b}])}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$q",function(b,c){return b.filesLoader=function(d){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],f=[],g=[],h=[],i=[],j=null,k=b._getFilesCache();b.toggleWatch(!0),a.extend(e,d);var l=function(c){var d,l=null;if(a.isObject(c)&&(l=c.type,c=c.path),j=k.get(c),a.isUndefined(j)||e.cache===!1){if(null!==(d=/^(css|less|html|htm|js)?(?=!)/.exec(c))&&(l=d[1],c=c.substr(d[1].length+1,c.length)),!l)if(null!==(d=/[.](css|less|html|htm|js)?((\?|#).*)?$/.exec(c)))l=d[1];else{if(b.jsLoader.hasOwnProperty("ocLazyLoadLoader")||!b.jsLoader.hasOwnProperty("requirejs"))return void b._$log.error("File type could not be determined. "+c);l="js"}"css"!==l&&"less"!==l||-1!==f.indexOf(c)?"html"!==l&&"htm"!==l||-1!==g.indexOf(c)?"js"===l||-1===h.indexOf(c)?h.push(c):b._$log.error("File type is not valid. "+c):g.push(c):f.push(c)}else j&&i.push(j)};if(e.serie?l(e.files.shift()):a.forEach(e.files,function(a){l(a)}),f.length>0){var m=c.defer();b.cssLoader(f,function(c){a.isDefined(c)&&b.cssLoader.hasOwnProperty("ocLazyLoadLoader")?(b._$log.error(c),m.reject(c)):m.resolve()},e),i.push(m.promise)}if(g.length>0){var n=c.defer();b.templatesLoader(g,function(c){a.isDefined(c)&&b.templatesLoader.hasOwnProperty("ocLazyLoadLoader")?(b._$log.error(c),n.reject(c)):n.resolve()},e),i.push(n.promise)}if(h.length>0){var o=c.defer();b.jsLoader(h,function(c){a.isDefined(c)&&(b.jsLoader.hasOwnProperty("ocLazyLoadLoader")||b.jsLoader.hasOwnProperty("requirejs"))?(b._$log.error(c),o.reject(c)):o.resolve()},e),i.push(o.promise)}if(0===i.length){var p=c.defer(),q="Error: no file to load has been found, if you're trying to load an existing module you should use the 'inject' method instead of 'load'.";return b._$log.error(q),p.reject(q),p.promise}return e.serie&&e.files.length>0?c.all(i).then(function(){return b.filesLoader(d,e)}):c.all(i)["finally"](function(a){return b.toggleWatch(!1),a})},b.load=function(d){var e,f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=this,h=null,i=[],j=c.defer(),k=a.copy(d),l=a.copy(f);if(a.isArray(k))return a.forEach(k,function(a){i.push(g.load(a,l))}),c.all(i).then(function(a){j.resolve(a)},function(a){j.reject(a)}),j.promise;if(a.isString(k)?(h=g.getModuleConfig(k),h||(h={files:[k]})):a.isObject(k)&&(h=a.isDefined(k.path)&&a.isDefined(k.type)?{files:[k]}:g.setModuleConfig(k)),null===h){var m=g._getModuleName(k);return e='Module "'+(m||"unknown")+'" is not configured, cannot load.',b._$log.error(e),j.reject(new Error(e)),j.promise}a.isDefined(h.template)&&(a.isUndefined(h.files)&&(h.files=[]),a.isString(h.template)?h.files.push(h.template):a.isArray(h.template)&&h.files.concat(h.template));var n=a.extend({},l,h);return a.isUndefined(h.files)&&a.isDefined(h.name)&&b.moduleExists(h.name)?b.inject(h.name,n,!0):(b.filesLoader(h,n).then(function(){b.inject(null,n).then(function(a){j.resolve(a)},function(a){j.reject(a)})},function(a){j.reject(a)}),j.promise)},b}])}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$q",function(b,c){return b.cssLoader=function(d,e,f){var g=[];a.forEach(d,function(a){g.push(b.buildElement("css",a,f))}),c.all(g).then(function(){e()},function(a){e(a)})},b.cssLoader.ocLazyLoadLoader=!0,b}])}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$q",function(b,c){return b.jsLoader=function(d,e,f){var g=[];a.forEach(d,function(a){g.push(b.buildElement("js",a,f))}),c.all(g).then(function(){e()},function(a){e(a)})},b.jsLoader.ocLazyLoadLoader=!0,b}])}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$templateCache","$q","$http",function(b,c,d,e){return b.templatesLoader=function(f,g,h){var i=[],j=b._getFilesCache();return a.forEach(f,function(b){var f=d.defer();i.push(f.promise),e.get(b,h).success(function(d){a.isString(d)&&d.length>0&&a.forEach(a.element(d),function(a){"SCRIPT"===a.nodeName&&"text/ng-template"===a.type&&c.put(a.id,a.innerHTML)}),a.isUndefined(j.get(b))&&j.put(b,!0),f.resolve()}).error(function(a){f.reject(new Error('Unable to load template file "'+b+'": '+a))})}),d.all(i).then(function(){g()},function(a){g(a)})},b.templatesLoader.ocLazyLoadLoader=!0,b}])}])}(angular),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){var c;if(null==this)throw new TypeError('"this" is null or not defined');var d=Object(this),e=d.length>>>0;if(0===e)return-1;var f=+b||0;if(Math.abs(f)===1/0&&(f=0),f>=e)return-1;for(c=Math.max(f>=0?f:e-Math.abs(f),0);e>c;){if(c in d&&d[c]===a)return c;c++}return-1}),"undefined"==typeof PDFJS&&(("undefined"!=typeof window?window:this).PDFJS={}),PDFJS.version="1.1.551",PDFJS.build="2a5616c",function(){"use strict";function a(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.infos&&console.log("Info: "+a)}function b(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.warnings&&console.log("Warning: "+a)}function c(a){b("Deprecated API usage: "+a)}function d(a){throw PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.errors&&(console.log("Error: "+a),console.log(e())),I.notify(H.unknown),new Error(a)}function e(){try{throw new Error}catch(a){return a.stack?a.stack.split("\n").slice(2).join("\n"):""}}function f(a,b){a||d(b)}function g(a,b){if(!b)return a;if(/^[a-z][a-z0-9+\-.]*:/i.test(b))return b;var c;if("/"===b.charAt(0))return c=a.indexOf("://"),"/"===b.charAt(1)?++c:c=a.indexOf("/",c+3),a.substring(0,c)+b;var d=a.length;c=a.lastIndexOf("#"),d=c>=0?c:d,c=a.lastIndexOf("?",d),d=c>=0?c:d;var e=a.lastIndexOf("/",d);return a.substring(0,e+1)+b}function h(a,b){if(!a)return!1;var c=/^[a-z][a-z0-9+\-.]*(?=:)/i.exec(a);if(!c)return b;switch(c=c[0].toLowerCase()){case"http":case"https":case"ftp":case"mailto":case"tel":return!0;default:return!1}}function i(a,b,c){return Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!1}),c}function j(){switch(PDFJS.openExternalLinksInNewWindow&&(b("PDFJS.openExternalLinksInNewWindow is deprecated, use PDFJS.externalLinkTarget instead."),PDFJS.externalLinkTarget===J.NONE&&(PDFJS.externalLinkTarget=J.BLANK),PDFJS.openExternalLinksInNewWindow=!1),PDFJS.externalLinkTarget){case J.NONE:return!1;case J.SELF:case J.BLANK:case J.PARENT:case J.TOP:return!0}return b("PDFJS.externalLinkTarget is invalid: "+PDFJS.externalLinkTarget),PDFJS.externalLinkTarget=J.NONE,!1}function k(a){f(null!==a&&"object"==typeof a&&void 0!==a.length,"Invalid argument for bytesToString");var b=a.length,c=8192;if(c>b)return String.fromCharCode.apply(null,a);for(var d=[],e=0;b>e;e+=c){var g=Math.min(e+c,b),h=a.subarray(e,g);d.push(String.fromCharCode.apply(null,h))}return d.join("")}function l(a){f("string"==typeof a,"Invalid argument for stringToBytes");for(var b=a.length,c=new Uint8Array(b),d=0;b>d;++d)c[d]=255&a.charCodeAt(d);return c}function m(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,255&a)}function n(){var a=new Uint8Array(2);a[0]=1;var b=new Uint16Array(a.buffer);return 1===b[0]}function o(){var a=document.createElement("canvas");a.width=a.height=1;var b=a.getContext("2d"),c=b.createImageData(1,1);return"undefined"!=typeof c.data.buffer}function p(a){return"number"==typeof a}function q(a){return a instanceof Array}function r(a){return"object"==typeof a&&null!==a&&void 0!==a.byteLength}function s(){var a={};return a.promise=new Promise(function(b,c){a.resolve=b,a.reject=c}),a}function t(a,b){this.name=a,this.comObj=b,this.callbackIndex=1,this.postMessageTransfers=!0;var c=this.callbacksCapabilities={},e=this.actionHandler={};e.console_log=[function(a){console.log.apply(console,a)}],e.console_error=[function(a){console.error.apply(console,a)}],e._unsupported_feature=[function(a){I.notify(a)}],b.onmessage=function(a){var f=a.data;if(f.isReply){var g=f.callbackId;if(f.callbackId in c){var h=c[g];delete c[g],"error"in f?h.reject(f.error):h.resolve(f.data)}else d("Cannot resolve callback "+g)}else if(f.action in e){var i=e[f.action];f.callbackId?Promise.resolve().then(function(){return i[0].call(i[1],f.data)}).then(function(a){b.postMessage({isReply:!0,callbackId:f.callbackId,data:a})},function(a){a instanceof Error&&(a+=""),b.postMessage({isReply:!0,callbackId:f.callbackId,error:a})}):i[0].call(i[1],f.data)}else d("Unknown action from worker: "+f.action)}}function u(a,c,d){var e=new Image;e.onload=function(){d.resolve(a,e)},e.onerror=function(){d.resolve(a,null),b("Error during JPEG image loading")},e.src=c}function v(a,b){var c=document.createElement("canvas");return c.width=a,c.height=b,c}function w(a){a.mozCurrentTransform||(a._originalSave=a.save,a._originalRestore=a.restore,a._originalRotate=a.rotate,a._originalScale=a.scale,a._originalTranslate=a.translate,a._originalTransform=a.transform,a._originalSetTransform=a.setTransform,a._transformMatrix=a._transformMatrix||[1,0,0,1,0,0],a._transformStack=[],Object.defineProperty(a,"mozCurrentTransform",{get:function(){return this._transformMatrix}}),Object.defineProperty(a,"mozCurrentTransformInverse",{get:function(){var a=this._transformMatrix,b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=b*e-c*d,i=c*d-b*e;return[e/h,c/i,d/i,b/h,(e*f-d*g)/i,(c*f-b*g)/h]}}),a.save=function(){var a=this._transformMatrix;this._transformStack.push(a),this._transformMatrix=a.slice(0,6),this._originalSave()},a.restore=function(){var a=this._transformStack.pop();a&&(this._transformMatrix=a,this._originalRestore())},a.translate=function(a,b){var c=this._transformMatrix;c[4]=c[0]*a+c[2]*b+c[4],c[5]=c[1]*a+c[3]*b+c[5],this._originalTranslate(a,b)},a.scale=function(a,b){var c=this._transformMatrix;c[0]=c[0]*a,c[1]=c[1]*a,c[2]=c[2]*b,c[3]=c[3]*b,this._originalScale(a,b)},a.transform=function(b,c,d,e,f,g){var h=this._transformMatrix;this._transformMatrix=[h[0]*b+h[2]*c,h[1]*b+h[3]*c,h[0]*d+h[2]*e,h[1]*d+h[3]*e,h[0]*f+h[2]*g+h[4],h[1]*f+h[3]*g+h[5]],a._originalTransform(b,c,d,e,f,g)},a.setTransform=function(b,c,d,e,f,g){this._transformMatrix=[b,c,d,e,f,g],a._originalSetTransform(b,c,d,e,f,g)},a.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),d=this._transformMatrix;this._transformMatrix=[d[0]*b+d[2]*c,d[1]*b+d[3]*c,d[0]*-c+d[2]*b,d[1]*-c+d[3]*b,d[4],d[5]],this._originalRotate(a)})}function x(a){var b,c,d,e,f=1e3,g=a.width,h=a.height,i=g+1,j=new Uint8Array(i*(h+1)),k=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),l=g+7&-8,m=a.data,n=new Uint8Array(l*h),o=0;for(b=0,e=m.length;e>b;b++)for(var p=128,q=m[b];p>0;)n[o++]=q&p?0:255,p>>=1;var r=0;for(o=0,0!==n[o]&&(j[0]=1,++r),c=1;g>c;c++)n[o]!==n[o+1]&&(j[c]=n[o]?2:1,++r),o++;for(0!==n[o]&&(j[c]=2,++r),b=1;h>b;b++){o=b*l,d=b*i,n[o-l]!==n[o]&&(j[d]=n[o]?1:8,++r);var s=(n[o]?4:0)+(n[o-l]?8:0);for(c=1;g>c;c++)s=(s>>2)+(n[o+1]?4:0)+(n[o-l+1]?8:0),k[s]&&(j[d+c]=k[s],++r),o++;if(n[o-l]!==n[o]&&(j[d+c]=n[o]?2:4,++r),r>f)return null}for(o=l*(h-1),d=b*i,0!==n[o]&&(j[d]=8,++r),c=1;g>c;c++)n[o]!==n[o+1]&&(j[d+c]=n[o]?4:8,++r),o++;if(0!==n[o]&&(j[d+c]=4,++r),r>f)return null;var t=new Int32Array([0,i,-1,0,-i,0,0,0,1]),u=[];for(b=0;r&&h>=b;b++){for(var v=b*i,w=v+g;w>v&&!j[v];)v++;if(v!==w){var x,y=[v%i,b],z=j[v],A=v;do{var B=t[z];do v+=B;while(!j[v]);x=j[v],5!==x&&10!==x?(z=x,j[v]=0):(z=x&51*z>>4,j[v]&=z>>2|z<<2),y.push(v%i),y.push(v/i|0),--r}while(A!==v);u.push(y),--b}}var C=function(a){a.save(),a.scale(1/g,-1/h),a.translate(0,-h),a.beginPath();for(var b=0,c=u.length;c>b;b++){var d=u[b];a.moveTo(d[0],d[1]);for(var e=2,f=d.length;f>e;e+=2)a.lineTo(d[e],d[e+1])}a.fill(),a.beginPath(),a.restore()};return C}function y(a){var b=ma[a[0]];return b||d("Unknown IR type: "+a[0]),b.fromIR(a)}var z="undefined"==typeof window?this:window,A="undefined"==typeof window,B=[.001,0,0,.001,0,0],C={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},D={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},E={WIDGET:1,TEXT:2,LINK:3},F={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5};z.PDFJS||(z.PDFJS={}),z.PDFJS.pdfBug=!1,PDFJS.VERBOSITY_LEVELS={errors:0,warnings:1,infos:5};var G=PDFJS.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91},H=PDFJS.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",smask:"smask",shadingPattern:"shadingPattern",font:"font"},I=PDFJS.UnsupportedManager=function(){var a=[];return{listen:function(b){a.push(b)},notify:function(c){b('Unsupported feature "'+c+'"');for(var d=0,e=a.length;e>d;d++)a[d](c)}}}();PDFJS.isValidUrl=h,PDFJS.shadow=i;var J=PDFJS.LinkTarget={NONE:0,SELF:1,BLANK:2,PARENT:3,TOP:4},K=["","_self","_blank","_parent","_top"];PDFJS.isExternalLinkTargetSet=j;var L=PDFJS.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2},M=function(){function a(a,b){this.name="PasswordException",this.message=a,this.code=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.PasswordException=M;var N=function(){function a(a,b){this.name="UnknownErrorException",this.message=a,this.details=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.UnknownErrorException=N;var O=function(){function a(a){this.name="InvalidPDFException",this.message=a}return a.prototype=new Error,a.constructor=a,a}();PDFJS.InvalidPDFException=O;var P=function(){function a(a){this.name="MissingPDFException",this.message=a}return a.prototype=new Error,a.constructor=a,a}();PDFJS.MissingPDFException=P;var Q=function(){function a(a,b){this.name="UnexpectedResponseException",this.message=a,this.status=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.UnexpectedResponseException=Q;(function(){function a(a){this.message=a}return a.prototype=new Error,a.prototype.name="NotImplementedException",a.constructor=a,a})(),function(){function a(a,b){this.begin=a,this.end=b,this.message="Missing data ["+a+", "+b+")"}return a.prototype=new Error,a.prototype.name="MissingDataException",a.constructor=a,a}(),function(){function a(a){this.message=a}return a.prototype=new Error,a.prototype.name="XRefParseException",a.constructor=a,a}();Object.defineProperty(PDFJS,"isLittleEndian",{configurable:!0,get:function(){return i(PDFJS,"isLittleEndian",n())}}),Object.defineProperty(PDFJS,"hasCanvasTypedArrays",{configurable:!0,get:function(){return i(PDFJS,"hasCanvasTypedArrays",o())}});var R=function(){function a(a,b){this.buffer=a,this.byteLength=a.length,this.length=void 0===b?this.byteLength>>2:b,c(this.length)}function b(a){return{get:function(){var b=this.buffer,c=a<<2;return(b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24)>>>0},set:function(b){var c=this.buffer,d=a<<2;c[d]=255&b,c[d+1]=b>>8&255,c[d+2]=b>>16&255,c[d+3]=b>>>24&255}}}function c(c){for(;c>d;)Object.defineProperty(a.prototype,d,b(d)),d++}a.prototype=Object.create(null);var d=0;return a}(),S=[1,0,0,1,0,0],T=PDFJS.Util=function(){function a(){}var b=["rgb(",0,",",0,",",0,")"];return a.makeCssRgb=function(a,c,d){return b[1]=a,b[3]=c,b[5]=d,b.join("")},a.transform=function(a,b){return[a[0]*b[0]+a[2]*b[1],a[1]*b[0]+a[3]*b[1],a[0]*b[2]+a[2]*b[3],a[1]*b[2]+a[3]*b[3],a[0]*b[4]+a[2]*b[5]+a[4],a[1]*b[4]+a[3]*b[5]+a[5]]},a.applyTransform=function(a,b){var c=a[0]*b[0]+a[1]*b[2]+b[4],d=a[0]*b[1]+a[1]*b[3]+b[5];return[c,d]},a.applyInverseTransform=function(a,b){var c=b[0]*b[3]-b[1]*b[2],d=(a[0]*b[3]-a[1]*b[2]+b[2]*b[5]-b[4]*b[3])/c,e=(-a[0]*b[1]+a[1]*b[0]+b[4]*b[1]-b[5]*b[0])/c;return[d,e]},a.getAxialAlignedBoundingBox=function(b,c){var d=a.applyTransform(b,c),e=a.applyTransform(b.slice(2,4),c),f=a.applyTransform([b[0],b[3]],c),g=a.applyTransform([b[2],b[1]],c);return[Math.min(d[0],e[0],f[0],g[0]),Math.min(d[1],e[1],f[1],g[1]),Math.max(d[0],e[0],f[0],g[0]),Math.max(d[1],e[1],f[1],g[1])]},a.inverseTransform=function(a){var b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[4]*a[3])/b,(a[4]*a[1]-a[5]*a[0])/b]},a.apply3dTransform=function(a,b){return[a[0]*b[0]+a[1]*b[1]+a[2]*b[2],a[3]*b[0]+a[4]*b[1]+a[5]*b[2],a[6]*b[0]+a[7]*b[1]+a[8]*b[2]]},a.singularValueDecompose2dScale=function(a){var b=[a[0],a[2],a[1],a[3]],c=a[0]*b[0]+a[1]*b[2],d=a[0]*b[1]+a[1]*b[3],e=a[2]*b[0]+a[3]*b[2],f=a[2]*b[1]+a[3]*b[3],g=(c+f)/2,h=Math.sqrt((c+f)*(c+f)-4*(c*f-e*d))/2,i=g+h||1,j=g-h||1;return[Math.sqrt(i),Math.sqrt(j)]},a.normalizeRect=function(a){var b=a.slice(0);return a[0]>a[2]&&(b[0]=a[2],b[2]=a[0]),a[1]>a[3]&&(b[1]=a[3],b[3]=a[1]),b},a.intersect=function(b,c){function d(a,b){return a-b}var e=[b[0],b[2],c[0],c[2]].sort(d),f=[b[1],b[3],c[1],c[3]].sort(d),g=[];return b=a.normalizeRect(b),c=a.normalizeRect(c),e[0]===b[0]&&e[1]===c[0]||e[0]===c[0]&&e[1]===b[0]?(g[0]=e[1],g[2]=e[2],f[0]===b[1]&&f[1]===c[1]||f[0]===c[1]&&f[1]===b[1]?(g[1]=f[1],g[3]=f[2],g):!1):!1},a.sign=function(a){return 0>a?-1:1},a.appendToArray=function(a,b){Array.prototype.push.apply(a,b)},a.prependToArray=function(a,b){Array.prototype.unshift.apply(a,b)},a.extendObj=function(a,b){for(var c in b)a[c]=b[c]},a.getInheritableProperty=function(a,b){for(;a&&!a.has(b);)a=a.get("Parent");return a?a.get(b):null},a.inherit=function(a,b,c){a.prototype=Object.create(b.prototype),a.prototype.constructor=a;for(var d in c)a.prototype[d]=c[d]},a.loadScript=function(a,b){var c=document.createElement("script"),d=!1;c.setAttribute("src",a),b&&(c.onload=function(){d||b(),d=!0}),document.getElementsByTagName("head")[0].appendChild(c)},a}();PDFJS.PageViewport=function(){function a(a,b,c,d,e,f){this.viewBox=a,this.scale=b,this.rotation=c,this.offsetX=d,this.offsetY=e;var g,h,i,j,k=(a[2]+a[0])/2,l=(a[3]+a[1])/2;switch(c%=360,c=0>c?c+360:c){case 180:g=-1,h=0,i=0,j=1;break;case 90:g=0,h=1,i=1,j=0;break;case 270:g=0,h=-1,i=-1,j=0;break;default:g=1,h=0,i=0,j=-1}f&&(i=-i,j=-j);var m,n,o,p;0===g?(m=Math.abs(l-a[1])*b+d,n=Math.abs(k-a[0])*b+e,o=Math.abs(a[3]-a[1])*b,p=Math.abs(a[2]-a[0])*b):(m=Math.abs(k-a[0])*b+d,n=Math.abs(l-a[1])*b+e,o=Math.abs(a[2]-a[0])*b,p=Math.abs(a[3]-a[1])*b),this.transform=[g*b,h*b,i*b,j*b,m-g*b*k-i*b*l,n-h*b*k-j*b*l],this.width=o,this.height=p,this.fontScale=b}return a.prototype={clone:function(b){b=b||{};var c="scale"in b?b.scale:this.scale,d="rotation"in b?b.rotation:this.rotation;return new a(this.viewBox.slice(),c,d,this.offsetX,this.offsetY,b.dontFlip)},convertToViewportPoint:function(a,b){return T.applyTransform([a,b],this.transform)},convertToViewportRectangle:function(a){var b=T.applyTransform([a[0],a[1]],this.transform),c=T.applyTransform([a[2],a[3]],this.transform);return[b[0],b[1],c[0],c[1]]},convertToPdfPoint:function(a,b){return T.applyInverseTransform([a,b],this.transform)}},a}();PDFJS.createPromiseCapability=s,function(){function a(a){this._status=c,this._handlers=[];try{a.call(this,this._resolve.bind(this),this._reject.bind(this))}catch(b){this._reject(b)}}if(z.Promise)return"function"!=typeof z.Promise.all&&(z.Promise.all=function(a){var b,c,d=0,e=[],f=new z.Promise(function(a,d){b=a,c=d});return a.forEach(function(a,f){d++,a.then(function(a){e[f]=a,d--,0===d&&b(e)},c)}),0===d&&b(e),f}),"function"!=typeof z.Promise.resolve&&(z.Promise.resolve=function(a){return new z.Promise(function(b){b(a)})}),"function"!=typeof z.Promise.reject&&(z.Promise.reject=function(a){return new z.Promise(function(b,c){c(a)})}),void("function"!=typeof z.Promise.prototype["catch"]&&(z.Promise.prototype["catch"]=function(a){return z.Promise.prototype.then(void 0,a)}));var c=0,d=1,e=2,f=500,g={handlers:[],running:!1,unhandledRejections:[],pendingRejectionCheck:!1,scheduleHandlers:function(a){a._status!==c&&(this.handlers=this.handlers.concat(a._handlers),a._handlers=[],this.running||(this.running=!0,setTimeout(this.runHandlers.bind(this),0)))},runHandlers:function(){for(var a=1,b=Date.now()+a;this.handlers.length>0;){var c=this.handlers.shift(),f=c.thisPromise._status,g=c.thisPromise._value;try{f===d?"function"==typeof c.onResolve&&(g=c.onResolve(g)):"function"==typeof c.onReject&&(g=c.onReject(g),f=d,c.thisPromise._unhandledRejection&&this.removeUnhandeledRejection(c.thisPromise))}catch(h){f=e,g=h}if(c.nextPromise._updateStatus(f,g),Date.now()>=b)break}return this.handlers.length>0?void setTimeout(this.runHandlers.bind(this),0):void(this.running=!1)},addUnhandledRejection:function(a){this.unhandledRejections.push({promise:a,time:Date.now()}),this.scheduleRejectionCheck()},removeUnhandeledRejection:function(a){a._unhandledRejection=!1;for(var b=0;b<this.unhandledRejections.length;b++)this.unhandledRejections[b].promise===a&&(this.unhandledRejections.splice(b),b--)},scheduleRejectionCheck:function(){this.pendingRejectionCheck||(this.pendingRejectionCheck=!0,setTimeout(function(){this.pendingRejectionCheck=!1;for(var a=Date.now(),c=0;c<this.unhandledRejections.length;c++)if(a-this.unhandledRejections[c].time>f){var d=this.unhandledRejections[c].promise._value,e="Unhandled rejection: "+d;d.stack&&(e+="\n"+d.stack),b(e),this.unhandledRejections.splice(c),c--}this.unhandledRejections.length&&this.scheduleRejectionCheck()}.bind(this),f))}};a.all=function(b){function c(a){g._status!==e&&(i=[],f(a))}var d,f,g=new a(function(a,b){d=a,f=b}),h=b.length,i=[];if(0===h)return d(i),g;for(var j=0,k=b.length;k>j;++j){var l=b[j],m=function(a){return function(b){g._status!==e&&(i[a]=b,h--,0===h&&d(i))}}(j);a.isPromise(l)?l.then(m,c):m(l)}return g},a.isPromise=function(a){return a&&"function"==typeof a.then},a.resolve=function(b){return new a(function(a){a(b)})},a.reject=function(b){return new a(function(a,c){c(b)})},a.prototype={_status:null,_value:null,_handlers:null,_unhandledRejection:null,_updateStatus:function(b,c){if(this._status!==d&&this._status!==e){if(b===d&&a.isPromise(c))return void c.then(this._updateStatus.bind(this,d),this._updateStatus.bind(this,e));this._status=b,this._value=c,b===e&&0===this._handlers.length&&(this._unhandledRejection=!0,g.addUnhandledRejection(this)),g.scheduleHandlers(this)}},_resolve:function(a){this._updateStatus(d,a)},_reject:function(a){this._updateStatus(e,a)},then:function(b,c){var d=new a(function(a,b){this.resolve=a,this.reject=b});return this._handlers.push({thisPromise:this,onResolve:b,onReject:c,nextPromise:d}),g.scheduleHandlers(this),d},"catch":function(a){return this.then(void 0,a)}},z.Promise=a}();var U=function(){function a(a,b,c){for(;a.length<c;)a+=b;return a}function c(){this.started={},this.times=[],this.enabled=!0}return c.prototype={time:function(a){this.enabled&&(a in this.started&&b("Timer is already running for "+a),this.started[a]=Date.now())},timeEnd:function(a){this.enabled&&(a in this.started||b("Timer has not been started for "+a),this.times.push({name:a,start:this.started[a],end:Date.now()}),delete this.started[a])},toString:function(){var b,c,d=this.times,e="",f=0;for(b=0,c=d.length;c>b;++b){var g=d[b].name;g.length>f&&(f=g.length)}for(b=0,c=d.length;c>b;++b){var h=d[b],i=h.end-h.start;e+=a(h.name," ",f)+" "+i+"ms\n"}return e}},c}();PDFJS.createBlob=function(a,b){if("undefined"!=typeof Blob)return new Blob([a],{type:b});var c=new MozBlobBuilder;return c.append(a),c.getBlob(b)},PDFJS.createObjectURL=function(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return function(b,c){if(!PDFJS.disableCreateObjectURL&&"undefined"!=typeof URL&&URL.createObjectURL){var d=PDFJS.createBlob(b,c);return URL.createObjectURL(d)}for(var e="data:"+c+";base64,",f=0,g=b.length;g>f;f+=3){var h=255&b[f],i=255&b[f+1],j=255&b[f+2],k=h>>2,l=(3&h)<<4|i>>4,m=g>f+1?(15&i)<<2|j>>6:64,n=g>f+2?63&j:64;e+=a[k]+a[l]+a[m]+a[n]}return e}}(),t.prototype={on:function(a,b,c){var e=this.actionHandler;e[a]&&d('There is already an actionName called "'+a+'"'),e[a]=[b,c]},send:function(a,b,c){var d={action:a,data:b};this.postMessage(d,c)},sendWithPromise:function(a,b,c){var d=this.callbackIndex++,e={action:a,data:b,callbackId:d},f=s();this.callbacksCapabilities[d]=f;try{this.postMessage(e,c)}catch(g){f.reject(g)}return f.promise},postMessage:function(a,b){b&&this.postMessageTransfers?this.comObj.postMessage(a,b):this.comObj.postMessage(a)}},PDFJS.maxImageSize=void 0===PDFJS.maxImageSize?-1:PDFJS.maxImageSize,PDFJS.cMapUrl=void 0===PDFJS.cMapUrl?null:PDFJS.cMapUrl,PDFJS.cMapPacked=void 0===PDFJS.cMapPacked?!1:PDFJS.cMapPacked,PDFJS.disableFontFace=void 0===PDFJS.disableFontFace?!1:PDFJS.disableFontFace,PDFJS.imageResourcesPath=void 0===PDFJS.imageResourcesPath?"":PDFJS.imageResourcesPath,PDFJS.disableWorker=void 0===PDFJS.disableWorker?!1:PDFJS.disableWorker,PDFJS.workerSrc=void 0===PDFJS.workerSrc?null:PDFJS.workerSrc,PDFJS.disableRange=void 0===PDFJS.disableRange?!1:PDFJS.disableRange,PDFJS.disableStream=void 0===PDFJS.disableStream?!1:PDFJS.disableStream,PDFJS.disableAutoFetch=void 0===PDFJS.disableAutoFetch?!1:PDFJS.disableAutoFetch,PDFJS.pdfBug=void 0===PDFJS.pdfBug?!1:PDFJS.pdfBug,PDFJS.postMessageTransfers=void 0===PDFJS.postMessageTransfers?!0:PDFJS.postMessageTransfers,PDFJS.disableCreateObjectURL=void 0===PDFJS.disableCreateObjectURL?!1:PDFJS.disableCreateObjectURL,PDFJS.disableWebGL=void 0===PDFJS.disableWebGL?!0:PDFJS.disableWebGL,PDFJS.disableFullscreen=void 0===PDFJS.disableFullscreen?!1:PDFJS.disableFullscreen,PDFJS.useOnlyCssZoom=void 0===PDFJS.useOnlyCssZoom?!1:PDFJS.useOnlyCssZoom,
-PDFJS.verbosity=void 0===PDFJS.verbosity?PDFJS.VERBOSITY_LEVELS.warnings:PDFJS.verbosity,PDFJS.maxCanvasPixels=void 0===PDFJS.maxCanvasPixels?16777216:PDFJS.maxCanvasPixels,PDFJS.openExternalLinksInNewWindow=void 0===PDFJS.openExternalLinksInNewWindow?!1:PDFJS.openExternalLinksInNewWindow,PDFJS.externalLinkTarget=void 0===PDFJS.externalLinkTarget?PDFJS.LinkTarget.NONE:PDFJS.externalLinkTarget,PDFJS.isEvalSupported=void 0===PDFJS.isEvalSupported?!0:PDFJS.isEvalSupported,PDFJS.getDocument=function(a,b,e,f){var h=new V;arguments.length>1&&c("getDocument is called with pdfDataRangeTransport, passwordCallback or progressCallback argument"),b&&(b instanceof W||(b=Object.create(b),b.length=a.length,b.initialData=a.initialData,b.abort||(b.abort=function(){})),a=Object.create(a),a.range=b),h.onPassword=e||null,h.onProgress=f||null;var i,j,k;"string"==typeof a?k={url:a}:r(a)?k={data:a}:a instanceof W?k={range:a}:("object"!=typeof a&&d("Invalid parameter in getDocument, need either Uint8Array, string or a parameter object"),a.url||a.data||a.range||d("Invalid parameter object: need either .data, .range or .url"),k=a);var m={};for(var n in k)if("url"!==n||"undefined"==typeof window){if("range"!==n)if("data"!==n||k[n]instanceof Uint8Array)m[n]=k[n];else{var o=k[n];"string"==typeof o?m[n]=l(o):"object"!=typeof o||null===o||isNaN(o.length)?r(o)?m[n]=new Uint8Array(o):d("Invalid PDF binary data: either typed array, string or array-like object is expected in the data property."):m[n]=new Uint8Array(o)}}else m[n]=g(window.location.href,k[n]);return i=s(),j=new Z(i,k.range),i.promise.then(function(){j.fetchDocument(h,m)}),h._transport=j,h};var V=function(){function a(){this._capability=s(),this._transport=null,this.onPassword=null,this.onProgress=null}return a.prototype={get promise(){return this._capability.promise},destroy:function(){return this._transport.destroy()},then:function(a,b){return this.promise.then.apply(this.promise,arguments)}},a}(),W=function(){function a(a,b){this.length=a,this.initialData=b,this._rangeListeners=[],this._progressListeners=[],this._progressiveReadListeners=[],this._readyCapability=s()}return a.prototype={addRangeListener:function(a){this._rangeListeners.push(a)},addProgressListener:function(a){this._progressListeners.push(a)},addProgressiveReadListener:function(a){this._progressiveReadListeners.push(a)},onDataRange:function(a,b){for(var c=this._rangeListeners,d=0,e=c.length;e>d;++d)c[d](a,b)},onDataProgress:function(a){this._readyCapability.promise.then(function(){for(var b=this._progressListeners,c=0,d=b.length;d>c;++c)b[c](a)}.bind(this))},onDataProgressiveRead:function(a){this._readyCapability.promise.then(function(){for(var b=this._progressiveReadListeners,c=0,d=b.length;d>c;++c)b[c](a)}.bind(this))},transportReady:function(){this._readyCapability.resolve()},requestDataRange:function(a,b){throw new Error("Abstract method PDFDataRangeTransport.requestDataRange")},abort:function(){}},a}();PDFJS.PDFDataRangeTransport=W;var X=function(){function a(a,b,c){this.pdfInfo=a,this.transport=b,this.loadingTask=c}return a.prototype={get numPages(){return this.pdfInfo.numPages},get fingerprint(){return this.pdfInfo.fingerprint},getPage:function(a){return this.transport.getPage(a)},getPageIndex:function(a){return this.transport.getPageIndex(a)},getDestinations:function(){return this.transport.getDestinations()},getDestination:function(a){return this.transport.getDestination(a)},getAttachments:function(){return this.transport.getAttachments()},getJavaScript:function(){return this.transport.getJavaScript()},getOutline:function(){return this.transport.getOutline()},getMetadata:function(){return this.transport.getMetadata()},getData:function(){return this.transport.getData()},getDownloadInfo:function(){return this.transport.downloadInfoCapability.promise},getStats:function(){return this.transport.getStats()},cleanup:function(){this.transport.startCleanup()},destroy:function(){return this.transport.destroy()}},a}(),Y=function(){function a(a,b,c){this.pageIndex=a,this.pageInfo=b,this.transport=c,this.stats=new U,this.stats.enabled=!!z.PDFJS.enableStats,this.commonObjs=c.commonObjs,this.objs=new $,this.cleanupAfterRender=!1,this.pendingCleanup=!1,this.intentStates={},this.destroyed=!1}return a.prototype={get pageNumber(){return this.pageIndex+1},get rotate(){return this.pageInfo.rotate},get ref(){return this.pageInfo.ref},get view(){return this.pageInfo.view},getViewport:function(a,b){return arguments.length<2&&(b=this.rotate),new PDFJS.PageViewport(this.view,a,b,0,0)},getAnnotations:function(){return this.annotationsPromise||(this.annotationsPromise=this.transport.getAnnotations(this.pageIndex)),this.annotationsPromise},render:function(a){function b(a){var b=f.renderTasks.indexOf(g);b>=0&&f.renderTasks.splice(b,1),i.cleanupAfterRender&&(i.pendingCleanup=!0),i._tryCleanup(),a?g.capability.reject(a):g.capability.resolve(),d.timeEnd("Rendering"),d.timeEnd("Overall")}var d=this.stats;d.time("Overall"),this.pendingCleanup=!1;var e="print"===a.intent?"print":"display";this.intentStates[e]||(this.intentStates[e]={});var f=this.intentStates[e];f.displayReadyCapability||(f.receivingOperatorList=!0,f.displayReadyCapability=s(),f.operatorList={fnArray:[],argsArray:[],lastChunk:!1},this.stats.time("Page Request"),this.transport.messageHandler.send("RenderPageRequest",{pageIndex:this.pageNumber-1,intent:e}));var g=new aa(b,a,this.objs,this.commonObjs,f.operatorList,this.pageNumber);g.useRequestAnimationFrame="print"!==e,f.renderTasks||(f.renderTasks=[]),f.renderTasks.push(g);var h=g.task;a.continueCallback&&(c("render is used with continueCallback parameter"),h.onContinue=a.continueCallback);var i=this;return f.displayReadyCapability.promise.then(function(a){return i.pendingCleanup?void b():(d.time("Rendering"),g.initalizeGraphics(a),void g.operatorListChanged())},function(a){b(a)}),h},getOperatorList:function(){function a(){c.operatorList.lastChunk&&c.opListReadCapability.resolve(c.operatorList)}var b="oplist";this.intentStates[b]||(this.intentStates[b]={});var c=this.intentStates[b];if(!c.opListReadCapability){var d={};d.operatorListChanged=a,c.receivingOperatorList=!0,c.opListReadCapability=s(),c.renderTasks=[],c.renderTasks.push(d),c.operatorList={fnArray:[],argsArray:[],lastChunk:!1},this.transport.messageHandler.send("RenderPageRequest",{pageIndex:this.pageIndex,intent:b})}return c.opListReadCapability.promise},getTextContent:function(){return this.transport.messageHandler.sendWithPromise("GetTextContent",{pageIndex:this.pageNumber-1})},_destroy:function(){this.destroyed=!0,this.transport.pageCache[this.pageIndex]=null;var a=[];return Object.keys(this.intentStates).forEach(function(b){var c=this.intentStates[b];c.renderTasks.forEach(function(b){var c=b.capability.promise["catch"](function(){});a.push(c),b.cancel()})},this),this.objs.clear(),this.annotationsPromise=null,this.pendingCleanup=!1,Promise.all(a)},destroy:function(){c("page destroy method, use cleanup() instead"),this.cleanup()},cleanup:function(){this.pendingCleanup=!0,this._tryCleanup()},_tryCleanup:function(){this.pendingCleanup&&!Object.keys(this.intentStates).some(function(a){var b=this.intentStates[a];return 0!==b.renderTasks.length||b.receivingOperatorList},this)&&(Object.keys(this.intentStates).forEach(function(a){delete this.intentStates[a]},this),this.objs.clear(),this.annotationsPromise=null,this.pendingCleanup=!1)},_startRenderPage:function(a,b){var c=this.intentStates[b];c.displayReadyCapability&&c.displayReadyCapability.resolve(a)},_renderPageChunk:function(a,b){var c,d,e=this.intentStates[b];for(c=0,d=a.length;d>c;c++)e.operatorList.fnArray.push(a.fnArray[c]),e.operatorList.argsArray.push(a.argsArray[c]);for(e.operatorList.lastChunk=a.lastChunk,c=0;c<e.renderTasks.length;c++)e.renderTasks[c].operatorListChanged();a.lastChunk&&(e.receivingOperatorList=!1,this._tryCleanup())}},a}(),Z=function(){function c(b,c){if(this.pdfDataRangeTransport=c,this.workerInitializedCapability=b,this.commonObjs=new $,this.loadingTask=null,this.destroyed=!1,this.destroyCapability=null,this.pageCache=[],this.pagePromises=[],this.downloadInfoCapability=s(),!z.PDFJS.disableWorker&&"undefined"!=typeof Worker){var e=PDFJS.workerSrc;e||d("No PDFJS.workerSrc specified");try{var f=new Worker(e),g=new t("main",f);this.messageHandler=g,g.on("test",function(a){var c=a&&a.supportTypedArray;c?(this.worker=f,a.supportTransfers||(PDFJS.postMessageTransfers=!1),this.setupMessageHandler(g),b.resolve()):this.setupFakeWorker()}.bind(this));var h=new Uint8Array([PDFJS.postMessageTransfers?255:0]);try{g.send("test",h,[h.buffer])}catch(i){a("Cannot use postMessage transfers"),h[0]=0,g.send("test",h)}return}catch(j){a("The worker has been disabled.")}}this.setupFakeWorker()}return c.prototype={destroy:function(){if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=s();var a=[];this.pageCache.forEach(function(b){b&&a.push(b._destroy())}),this.pageCache=[],this.pagePromises=[];var b=this,c=this.messageHandler.sendWithPromise("Terminate",null);return a.push(c),Promise.all(a).then(function(){pa.clear(),b.worker&&b.worker.terminate(),b.pdfDataRangeTransport&&(b.pdfDataRangeTransport.abort(),b.pdfDataRangeTransport=null),b.messageHandler=null,b.destroyCapability.resolve()},this.destroyCapability.reject),this.destroyCapability.promise},setupFakeWorker:function(){z.PDFJS.disableWorker=!0,PDFJS.fakeWorkerFilesLoadedCapability||(PDFJS.fakeWorkerFilesLoadedCapability=s(),T.loadScript(PDFJS.workerSrc,function(){PDFJS.fakeWorkerFilesLoadedCapability.resolve()})),PDFJS.fakeWorkerFilesLoadedCapability.promise.then(function(){b("Setting up fake worker.");var a={postMessage:function(b){a.onmessage({data:b})},terminate:function(){}},c=new t("main",a);this.setupMessageHandler(c),PDFJS.WorkerMessageHandler.setup(c),this.workerInitializedCapability.resolve()}.bind(this))},setupMessageHandler:function(a){function c(b){a.send("UpdatePassword",b)}this.messageHandler=a;var e=this.pdfDataRangeTransport;e&&(e.addRangeListener(function(b,c){a.send("OnDataRange",{begin:b,chunk:c})}),e.addProgressListener(function(b){a.send("OnDataProgress",{loaded:b})}),e.addProgressiveReadListener(function(b){a.send("OnDataRange",{chunk:b})}),a.on("RequestDataRange",function(a){e.requestDataRange(a.begin,a.end)},this)),a.on("GetDoc",function(a){var b=a.pdfInfo;this.numPages=a.pdfInfo.numPages;var c=this.loadingTask,d=new X(b,this,c);this.pdfDocument=d,c._capability.resolve(d)},this),a.on("NeedPassword",function(a){var b=this.loadingTask;return b.onPassword?b.onPassword(c,L.NEED_PASSWORD):void b._capability.reject(new M(a.message,a.code))},this),a.on("IncorrectPassword",function(a){var b=this.loadingTask;return b.onPassword?b.onPassword(c,L.INCORRECT_PASSWORD):void b._capability.reject(new M(a.message,a.code))},this),a.on("InvalidPDF",function(a){this.loadingTask._capability.reject(new O(a.message))},this),a.on("MissingPDF",function(a){this.loadingTask._capability.reject(new P(a.message))},this),a.on("UnexpectedResponse",function(a){this.loadingTask._capability.reject(new Q(a.message,a.status))},this),a.on("UnknownError",function(a){this.loadingTask._capability.reject(new N(a.message,a.details))},this),a.on("DataLoaded",function(a){this.downloadInfoCapability.resolve(a)},this),a.on("PDFManagerReady",function(a){this.pdfDataRangeTransport&&this.pdfDataRangeTransport.transportReady()},this),a.on("StartRenderPage",function(a){var b=this.pageCache[a.pageIndex];b.stats.timeEnd("Page Request"),b._startRenderPage(a.transparency,a.intent)},this),a.on("RenderPageChunk",function(a){var b=this.pageCache[a.pageIndex];b._renderPageChunk(a.operatorList,a.intent)},this),a.on("commonobj",function(a){var c=a[0],d=a[1];if(!this.commonObjs.hasData(c))switch(d){case"Font":var e,f=a[2];if("error"in f){var g=f.error;b("Error during font loading: "+g),this.commonObjs.resolve(c,g);break}e=new qa(f),pa.bind([e],function(a){this.commonObjs.resolve(c,e)}.bind(this));break;case"FontPath":this.commonObjs.resolve(c,a[2]);break;default:g("Got unknown common object type "+d)}},this),a.on("obj",function(a){var b,c=a[0],e=a[1],f=a[2],g=this.pageCache[e];if(!g.objs.hasData(c))switch(f){case"JpegStream":b=a[3],u(c,b,g.objs);break;case"Image":b=a[3],g.objs.resolve(c,b);var h=8e6;b&&"data"in b&&b.data.length>h&&(g.cleanupAfterRender=!0);break;default:d("Got unknown object type "+f)}},this),a.on("DocProgress",function(a){var b=this.loadingTask;b.onProgress&&b.onProgress({loaded:a.loaded,total:a.total})},this),a.on("PageError",function(a){var b=this.pageCache[a.pageNum-1],c=b.intentStates[a.intent];c.displayReadyCapability?c.displayReadyCapability.reject(a.error):d(a.error)},this),a.on("JpegDecode",function(a){var b=a[0],c=a[1];return 3!==c&&1!==c?Promise.reject(new Error("Only 3 components or 1 component can be returned")):new Promise(function(a,d){var e=new Image;e.onload=function(){var b=e.width,d=e.height,f=b*d,g=4*f,h=new Uint8Array(f*c),i=v(b,d),j=i.getContext("2d");j.drawImage(e,0,0);var k,l,m=j.getImageData(0,0,b,d).data;if(3===c)for(k=0,l=0;g>k;k+=4,l+=3)h[l]=m[k],h[l+1]=m[k+1],h[l+2]=m[k+2];else if(1===c)for(k=0,l=0;g>k;k+=4,l++)h[l]=m[k];a({data:h,width:b,height:d})},e.onerror=function(){d(new Error("JpegDecode failed to load image"))},e.src=b})})},fetchDocument:function(a,b){return this.destroyed?(a._capability.reject(new Error("Loading aborted")),void this.destroyCapability.resolve()):(this.loadingTask=a,b.disableAutoFetch=PDFJS.disableAutoFetch,b.disableStream=PDFJS.disableStream,b.chunkedViewerLoading=!!this.pdfDataRangeTransport,this.pdfDataRangeTransport&&(b.length=this.pdfDataRangeTransport.length,b.initialData=this.pdfDataRangeTransport.initialData),void this.messageHandler.send("GetDocRequest",{source:b,disableRange:PDFJS.disableRange,maxImageSize:PDFJS.maxImageSize,cMapUrl:PDFJS.cMapUrl,cMapPacked:PDFJS.cMapPacked,disableFontFace:PDFJS.disableFontFace,disableCreateObjectURL:PDFJS.disableCreateObjectURL,verbosity:PDFJS.verbosity}))},getData:function(){return this.messageHandler.sendWithPromise("GetData",null)},getPage:function(a,b){if(0>=a||a>this.numPages||(0|a)!==a)return Promise.reject(new Error("Invalid page request"));var c=a-1;if(c in this.pagePromises)return this.pagePromises[c];var d=this.messageHandler.sendWithPromise("GetPage",{pageIndex:c}).then(function(a){if(this.destroyed)throw new Error("Transport destroyed");var b=new Y(c,a,this);return this.pageCache[c]=b,b}.bind(this));return this.pagePromises[c]=d,d},getPageIndex:function(a){return this.messageHandler.sendWithPromise("GetPageIndex",{ref:a})},getAnnotations:function(a){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:a})},getDestinations:function(){return this.messageHandler.sendWithPromise("GetDestinations",null)},getDestination:function(a){return this.messageHandler.sendWithPromise("GetDestination",{id:a})},getAttachments:function(){return this.messageHandler.sendWithPromise("GetAttachments",null)},getJavaScript:function(){return this.messageHandler.sendWithPromise("GetJavaScript",null)},getOutline:function(){return this.messageHandler.sendWithPromise("GetOutline",null)},getMetadata:function(){return this.messageHandler.sendWithPromise("GetMetadata",null).then(function(a){return{info:a[0],metadata:a[1]?new PDFJS.Metadata(a[1]):null}})},getStats:function(){return this.messageHandler.sendWithPromise("GetStats",null)},startCleanup:function(){this.messageHandler.sendWithPromise("Cleanup",null).then(function(){for(var a=0,b=this.pageCache.length;b>a;a++){var c=this.pageCache[a];c&&c.cleanup()}this.commonObjs.clear(),pa.clear()}.bind(this))}},c}(),$=function(){function a(){this.objs={}}return a.prototype={ensureObj:function(a){if(this.objs[a])return this.objs[a];var b={capability:s(),data:null,resolved:!1};return this.objs[a]=b,b},get:function(a,b){if(b)return this.ensureObj(a).capability.promise.then(b),null;var c=this.objs[a];return c&&c.resolved||d("Requesting object that isn't resolved yet "+a),c.data},resolve:function(a,b){var c=this.ensureObj(a);c.resolved=!0,c.data=b,c.capability.resolve(b)},isResolved:function(a){var b=this.objs;return b[a]?b[a].resolved:!1},hasData:function(a){return this.isResolved(a)},getData:function(a){var b=this.objs;return b[a]&&b[a].resolved?b[a].data:null},clear:function(){this.objs={}}},a}(),_=function(){function a(a){this._internalRenderTask=a,this.onContinue=null}return a.prototype={get promise(){return this._internalRenderTask.capability.promise},cancel:function(){this._internalRenderTask.cancel()},then:function(a,b){return this.promise.then.apply(this.promise,arguments)}},a}(),aa=function(){function a(a,b,c,d,e,f){this.callback=a,this.params=b,this.objs=c,this.commonObjs=d,this.operatorListIdx=null,this.operatorList=e,this.pageNumber=f,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this.useRequestAnimationFrame=!1,this.cancelled=!1,this.capability=s(),this.task=new _(this),this._continueBound=this._continue.bind(this),this._scheduleNextBound=this._scheduleNext.bind(this),this._nextBound=this._next.bind(this)}return a.prototype={initalizeGraphics:function(a){if(!this.cancelled){PDFJS.pdfBug&&"StepperManager"in z&&z.StepperManager.enabled&&(this.stepper=z.StepperManager.create(this.pageNumber-1),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());var b=this.params;this.gfx=new ka(b.canvasContext,this.commonObjs,this.objs,b.imageLayer),this.gfx.beginDrawing(b.viewport,a),this.operatorListIdx=0,this.graphicsReady=!0,this.graphicsReadyCallback&&this.graphicsReadyCallback()}},cancel:function(){this.running=!1,this.cancelled=!0,this.callback("cancelled")},operatorListChanged:function(){return this.graphicsReady?(this.stepper&&this.stepper.updateOperatorList(this.operatorList),void(this.running||this._continue())):void(this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound))},_continue:function(){this.running=!0,this.cancelled||(this.task.onContinue?this.task.onContinue.call(this.task,this._scheduleNextBound):this._scheduleNext())},_scheduleNext:function(){this.useRequestAnimationFrame?window.requestAnimationFrame(this._nextBound):Promise.resolve(void 0).then(this._nextBound)},_next:function(){this.cancelled||(this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(),this.callback())))}},a}(),ba=(PDFJS.Metadata=function(){function a(a){return a.replace(/>\\376\\377([^<]+)/g,function(a,b){for(var c=b.replace(/\\([0-3])([0-7])([0-7])/g,function(a,b,c,d){return String.fromCharCode(64*b+8*c+1*d)}),d="",e=0;e<c.length;e+=2){var f=256*c.charCodeAt(e)+c.charCodeAt(e+1);d+="&#x"+(65536+f).toString(16).substring(1)+";"}return">"+d})}function b(b){if("string"==typeof b){b=a(b);var c=new DOMParser;b=c.parseFromString(b,"application/xml")}else b instanceof Document||d("Metadata: Invalid metadata object");this.metaDocument=b,this.metadata={},this.parse()}return b.prototype={parse:function(){var a=this.metaDocument,b=a.documentElement;if("rdf:rdf"!==b.nodeName.toLowerCase())for(b=b.firstChild;b&&"rdf:rdf"!==b.nodeName.toLowerCase();)b=b.nextSibling;var c=b?b.nodeName.toLowerCase():null;if(b&&"rdf:rdf"===c&&b.hasChildNodes()){var d,e,f,g,h,i,j,k=b.childNodes;for(g=0,i=k.length;i>g;g++)if(d=k[g],"rdf:description"===d.nodeName.toLowerCase())for(h=0,j=d.childNodes.length;j>h;h++)"#text"!==d.childNodes[h].nodeName.toLowerCase()&&(e=d.childNodes[h],f=e.nodeName.toLowerCase(),this.metadata[f]=e.textContent.trim())}},get:function(a){return this.metadata[a]||null},has:function(a){return"undefined"!=typeof this.metadata[a]}},b}(),16),ca=100,da=4096,ea=.65,fa=!0,ga=1e3,ha=16,ia=function(){var a={};return{getCanvas:function(b,c,d,e){var f;if(void 0!==a[b])f=a[b],f.canvas.width=c,f.canvas.height=d,f.context.setTransform(1,0,0,1,0,0);else{var g=v(c,d),h=g.getContext("2d");e&&w(h),a[b]=f={canvas:g,context:h}}return f},clear:function(){for(var b in a){var c=a[b];c.canvas.width=0,c.canvas.height=0,delete a[b]}}}}(),ja=function(){function a(a){this.alphaIsShape=!1,this.fontSize=0,this.fontSizeScale=1,this.textMatrix=S,this.textMatrixScale=1,this.fontMatrix=B,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRenderingMode=C.FILL,this.textRise=0,this.fillColor="#000000",this.strokeColor="#000000",this.patternFill=!1,this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.activeSMask=null,this.old=a}return a.prototype={clone:function(){return Object.create(this)},setCurrentPoint:function(a,b){this.x=a,this.y=b}},a}(),ka=function(){function c(a,b,c,d){this.ctx=a,this.current=new ja,this.stateStack=[],this.pendingClip=null,this.pendingEOFill=!1,this.res=null,this.xobjs=null,this.commonObjs=b,this.objs=c,this.imageLayer=d,this.groupStack=[],this.processingType3=null,this.baseTransform=null,this.baseTransformStack=[],this.groupLevel=0,this.smaskStack=[],this.smaskCounter=0,this.tempSMask=null,a&&w(a),this.cachedGetSinglePixelWidth=null}function e(a,b){if("undefined"!=typeof ImageData&&b instanceof ImageData)return void a.putImageData(b,0,0);var c,e,f,g,h,i=b.height,j=b.width,k=i%ha,l=(i-k)/ha,m=0===k?l:l+1,n=a.createImageData(j,ha),o=0,p=b.data,q=n.data;if(b.kind===D.GRAYSCALE_1BPP){var r=p.byteLength,s=PDFJS.hasCanvasTypedArrays?new Uint32Array(q.buffer):new R(q),t=s.length,u=j+7>>3,v=4294967295,w=PDFJS.isLittleEndian||!PDFJS.hasCanvasTypedArrays?4278190080:255;for(e=0;m>e;e++){for(g=l>e?ha:k,c=0,f=0;g>f;f++){for(var x=r-o,y=0,z=x>u?j:8*x-7,A=-8&z,B=0,C=0;A>y;y+=8)C=p[o++],s[c++]=128&C?v:w,s[c++]=64&C?v:w,s[c++]=32&C?v:w,s[c++]=16&C?v:w,s[c++]=8&C?v:w,s[c++]=4&C?v:w,s[c++]=2&C?v:w,s[c++]=1&C?v:w;for(;z>y;y++)0===B&&(C=p[o++],B=128),s[c++]=C&B?v:w,B>>=1}for(;t>c;)s[c++]=0;a.putImageData(n,0,e*ha)}}else if(b.kind===D.RGBA_32BPP){for(f=0,h=j*ha*4,e=0;l>e;e++)q.set(p.subarray(o,o+h)),o+=h,a.putImageData(n,0,f),f+=ha;m>e&&(h=j*k*4,q.set(p.subarray(o,o+h)),a.putImageData(n,0,f))}else if(b.kind===D.RGB_24BPP)for(g=ha,h=j*g,e=0;m>e;e++){for(e>=l&&(g=k,h=j*g),c=0,f=h;f--;)q[c++]=p[o++],q[c++]=p[o++],q[c++]=p[o++],q[c++]=255;a.putImageData(n,0,e*ha)}else d("bad image kind: "+b.kind)}function g(a,b){for(var c=b.height,d=b.width,e=c%ha,f=(c-e)/ha,g=0===e?f:f+1,h=a.createImageData(d,ha),i=0,j=b.data,k=h.data,l=0;g>l;l++){for(var m=f>l?ha:e,n=3,o=0;m>o;o++)for(var p=0,q=0;d>q;q++){if(!p){var r=j[i++];p=128}k[n]=r&p?0:255,n+=4,p>>=1}a.putImageData(h,0,l*ha)}}function h(a,b){for(var c=["strokeStyle","fillStyle","fillRule","globalAlpha","lineWidth","lineCap","lineJoin","miterLimit","globalCompositeOperation","font"],d=0,e=c.length;e>d;d++){var f=c[d];void 0!==a[f]&&(b[f]=a[f])}void 0!==a.setLineDash?(b.setLineDash(a.getLineDash()),b.lineDashOffset=a.lineDashOffset):void 0!==a.mozDashOffset&&(b.mozDash=a.mozDash,b.mozDashOffset=a.mozDashOffset)}function j(a,b,c,d){for(var e=a.length,f=3;e>f;f+=4){var g=a[f];if(0===g)a[f-3]=b,a[f-2]=c,a[f-1]=d;else if(255>g){var h=255-g;a[f-3]=a[f-3]*g+b*h>>8,a[f-2]=a[f-2]*g+c*h>>8,a[f-1]=a[f-1]*g+d*h>>8}}}function k(a,b){for(var c=a.length,d=1/255,e=3;c>e;e+=4){var f=a[e];b[e]=b[e]*f*d|0}}function l(a,b){for(var c=a.length,d=3;c>d;d+=4){var e=77*a[d-3]+152*a[d-2]+28*a[d-1];b[d]=b[d]*e>>16}}function m(a,b,c,d,e,f){var g,h=!!f,i=h?f[0]:0,m=h?f[1]:0,n=h?f[2]:0;g="Luminosity"===e?l:k;for(var o=1048576,p=Math.min(d,Math.ceil(o/c)),q=0;d>q;q+=p){var r=Math.min(p,d-q),s=a.getImageData(0,q,c,r),t=b.getImageData(0,q,c,r);h&&j(s.data,i,m,n),g(s.data,t.data),a.putImageData(t,0,q)}}function n(a,b,c){var d=b.canvas,e=b.context;a.setTransform(b.scaleX,0,0,b.scaleY,b.offsetX,b.offsetY);var f=b.backdrop||null;if(la.isEnabled){var g=la.composeSMask(c.canvas,d,{subtype:b.subtype,backdrop:f});return a.setTransform(1,0,0,1,0,0),void a.drawImage(g,b.offsetX,b.offsetY)}m(e,c,d.width,d.height,b.subtype,f),a.drawImage(d,0,0)}var o=15,r=10,s=["butt","round","square"],t=["miter","round","bevel"],u={},v={};c.prototype={beginDrawing:function(a,b){var c=this.ctx.canvas.width,d=this.ctx.canvas.height;b?this.ctx.clearRect(0,0,c,d):(this.ctx.mozOpaque=!0,this.ctx.save(),this.ctx.fillStyle="rgb(255, 255, 255)",this.ctx.fillRect(0,0,c,d),this.ctx.restore());var e=a.transform;this.ctx.save(),this.ctx.transform.apply(this.ctx,e),this.baseTransform=this.ctx.mozCurrentTransform.slice(),this.imageLayer&&this.imageLayer.beginLayout()},executeOperatorList:function(a,b,c,d){var e=a.argsArray,f=a.fnArray,g=b||0,h=e.length;if(h===g)return g;for(var i,j=h-g>r&&"function"==typeof c,k=j?Date.now()+o:0,l=0,m=this.commonObjs,n=this.objs;;){if(void 0!==d&&g===d.nextBreakPoint)return d.breakIt(g,c),g;if(i=f[g],i!==G.dependency)this[i].apply(this,e[g]);else for(var p=e[g],q=0,s=p.length;s>q;q++){var t=p[q],u="g"===t[0]&&"_"===t[1],v=u?m:n;if(!v.isResolved(t))return v.get(t,c),g}if(g++,g===h)return g;if(j&&++l>r){if(Date.now()>k)return c(),g;l=0}}},endDrawing:function(){this.ctx.restore(),ia.clear(),la.clear(),this.imageLayer&&this.imageLayer.endLayout()},setLineWidth:function(a){this.current.lineWidth=a,this.ctx.lineWidth=a},setLineCap:function(a){this.ctx.lineCap=s[a]},setLineJoin:function(a){this.ctx.lineJoin=t[a]},setMiterLimit:function(a){this.ctx.miterLimit=a},setDash:function(a,b){var c=this.ctx;void 0!==c.setLineDash?(c.setLineDash(a),c.lineDashOffset=b):(c.mozDash=a,c.mozDashOffset=b)},setRenderingIntent:function(a){},setFlatness:function(a){},setGState:function(a){for(var c=0,d=a.length;d>c;c++){var e=a[c],f=e[0],g=e[1];switch(f){case"LW":this.setLineWidth(g);break;case"LC":this.setLineCap(g);break;case"LJ":this.setLineJoin(g);break;case"ML":this.setMiterLimit(g);break;case"D":this.setDash(g[0],g[1]);break;case"RI":this.setRenderingIntent(g);break;case"FL":this.setFlatness(g);break;case"Font":this.setFont(g[0],g[1]);break;case"CA":this.current.strokeAlpha=e[1];break;case"ca":this.current.fillAlpha=e[1],this.ctx.globalAlpha=e[1];break;case"BM":if(g&&g.name&&"Normal"!==g.name){var h=g.name.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()}).substring(1);this.ctx.globalCompositeOperation=h,this.ctx.globalCompositeOperation!==h&&b('globalCompositeOperation "'+h+'" is not supported')}else this.ctx.globalCompositeOperation="source-over";break;case"SMask":this.current.activeSMask&&this.endSMaskGroup(),this.current.activeSMask=g?this.tempSMask:null,this.current.activeSMask&&this.beginSMaskGroup(),this.tempSMask=null}}},beginSMaskGroup:function(){var a=this.current.activeSMask,b=a.canvas.width,c=a.canvas.height,d="smaskGroupAt"+this.groupLevel,e=ia.getCanvas(d,b,c,!0),f=this.ctx,g=f.mozCurrentTransform;this.ctx.save();var i=e.context;i.scale(1/a.scaleX,1/a.scaleY),i.translate(-a.offsetX,-a.offsetY),i.transform.apply(i,g),h(f,i),this.ctx=i,this.setGState([["BM","Normal"],["ca",1],["CA",1]]),this.groupStack.push(f),this.groupLevel++},endSMaskGroup:function(){var a=this.ctx;this.groupLevel--,this.ctx=this.groupStack.pop(),n(this.ctx,this.current.activeSMask,a),this.ctx.restore()},save:function(){this.ctx.save();var a=this.current;this.stateStack.push(a),this.current=a.clone(),this.current.activeSMask=null},restore:function(){0!==this.stateStack.length&&(null!==this.current.activeSMask&&this.endSMaskGroup(),this.current=this.stateStack.pop(),this.ctx.restore(),this.pendingClip=null,this.cachedGetSinglePixelWidth=null)},transform:function(a,b,c,d,e,f){this.ctx.transform(a,b,c,d,e,f),this.cachedGetSinglePixelWidth=null},constructPath:function(a,b){for(var c=this.ctx,d=this.current,e=d.x,f=d.y,g=0,h=0,i=a.length;i>g;g++)switch(0|a[g]){case G.rectangle:e=b[h++],f=b[h++];var j=b[h++],k=b[h++];0===j&&(j=this.getSinglePixelWidth()),0===k&&(k=this.getSinglePixelWidth());var l=e+j,m=f+k;this.ctx.moveTo(e,f),this.ctx.lineTo(l,f),this.ctx.lineTo(l,m),this.ctx.lineTo(e,m),this.ctx.lineTo(e,f),this.ctx.closePath();break;case G.moveTo:e=b[h++],f=b[h++],c.moveTo(e,f);break;case G.lineTo:e=b[h++],f=b[h++],c.lineTo(e,f);break;case G.curveTo:e=b[h+4],f=b[h+5],c.bezierCurveTo(b[h],b[h+1],b[h+2],b[h+3],e,f),h+=6;break;case G.curveTo2:c.bezierCurveTo(e,f,b[h],b[h+1],b[h+2],b[h+3]),e=b[h+2],f=b[h+3],h+=4;break;case G.curveTo3:e=b[h+2],f=b[h+3],c.bezierCurveTo(b[h],b[h+1],e,f,e,f),h+=4;break;case G.closePath:c.closePath()}d.setCurrentPoint(e,f)},closePath:function(){this.ctx.closePath()},stroke:function(a){a="undefined"!=typeof a?a:!0;var b=this.ctx,c=this.current.strokeColor;b.lineWidth=Math.max(this.getSinglePixelWidth()*ea,this.current.lineWidth),b.globalAlpha=this.current.strokeAlpha,c&&c.hasOwnProperty("type")&&"Pattern"===c.type?(b.save(),b.strokeStyle=c.getPattern(b,this),b.stroke(),b.restore()):b.stroke(),a&&this.consumePath(),b.globalAlpha=this.current.fillAlpha},closeStroke:function(){this.closePath(),this.stroke()},fill:function(a){a="undefined"!=typeof a?a:!0;var b=this.ctx,c=this.current.fillColor,d=this.current.patternFill,e=!1;d&&(b.save(),b.fillStyle=c.getPattern(b,this),e=!0),this.pendingEOFill?(void 0!==b.mozFillRule?(b.mozFillRule="evenodd",b.fill(),b.mozFillRule="nonzero"):b.fill("evenodd"),this.pendingEOFill=!1):b.fill(),e&&b.restore(),a&&this.consumePath()},eoFill:function(){this.pendingEOFill=!0,this.fill()},fillStroke:function(){this.fill(!1),this.stroke(!1),this.consumePath()},eoFillStroke:function(){this.pendingEOFill=!0,this.fillStroke()},closeFillStroke:function(){this.closePath(),this.fillStroke()},closeEOFillStroke:function(){this.pendingEOFill=!0,this.closePath(),this.fillStroke()},endPath:function(){this.consumePath()},clip:function(){this.pendingClip=u},eoClip:function(){this.pendingClip=v},beginText:function(){this.current.textMatrix=S,this.current.textMatrixScale=1,this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0},endText:function(){var a=this.pendingTextPaths,b=this.ctx;if(void 0===a)return void b.beginPath();b.save(),b.beginPath();for(var c=0;c<a.length;c++){var d=a[c];b.setTransform.apply(b,d.transform),b.translate(d.x,d.y),d.addToPath(b,d.fontSize)}b.restore(),b.clip(),b.beginPath(),delete this.pendingTextPaths},setCharSpacing:function(a){this.current.charSpacing=a},setWordSpacing:function(a){this.current.wordSpacing=a},setHScale:function(a){this.current.textHScale=a/100},setLeading:function(a){this.current.leading=-a},setFont:function(a,c){var e=this.commonObjs.get(a),f=this.current;if(e||d("Can't find font for "+a),f.fontMatrix=e.fontMatrix?e.fontMatrix:B,(0===f.fontMatrix[0]||0===f.fontMatrix[3])&&b("Invalid font matrix for font "+a),0>c?(c=-c,f.fontDirection=-1):f.fontDirection=1,this.current.font=e,this.current.fontSize=c,!e.isType3Font){var g=e.loadedName||"sans-serif",h=e.black?e.bold?"900":"bold":e.bold?"bold":"normal",i=e.italic?"italic":"normal",j='"'+g+'", '+e.fallbackName,k=ba>c?ba:c>ca?ca:c;this.current.fontSizeScale=c/k;var l=i+" "+h+" "+k+"px "+j;this.ctx.font=l}},setTextRenderingMode:function(a){this.current.textRenderingMode=a},setTextRise:function(a){this.current.textRise=a},moveText:function(a,b){this.current.x=this.current.lineX+=a,this.current.y=this.current.lineY+=b},setLeadingMoveText:function(a,b){this.setLeading(-b),this.moveText(a,b)},setTextMatrix:function(a,b,c,d,e,f){this.current.textMatrix=[a,b,c,d,e,f],this.current.textMatrixScale=Math.sqrt(a*a+b*b),this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0},nextLine:function(){this.moveText(0,this.current.leading)},paintChar:function(a,b,c){var d,e=this.ctx,f=this.current,g=f.font,h=f.textRenderingMode,i=f.fontSize/f.fontSizeScale,j=h&C.FILL_STROKE_MASK,k=!!(h&C.ADD_TO_PATH_FLAG);if((g.disableFontFace||k)&&(d=g.getPathGenerator(this.commonObjs,a)),g.disableFontFace?(e.save(),e.translate(b,c),e.beginPath(),d(e,i),(j===C.FILL||j===C.FILL_STROKE)&&e.fill(),(j===C.STROKE||j===C.FILL_STROKE)&&e.stroke(),e.restore()):((j===C.FILL||j===C.FILL_STROKE)&&e.fillText(a,b,c),(j===C.STROKE||j===C.FILL_STROKE)&&e.strokeText(a,b,c)),k){var l=this.pendingTextPaths||(this.pendingTextPaths=[]);
-l.push({transform:e.mozCurrentTransform,x:b,y:c,fontSize:i,addToPath:d})}},get isFontSubpixelAAEnabled(){var a=document.createElement("canvas").getContext("2d");a.scale(1.5,1),a.fillText("I",0,10);for(var b=a.getImageData(0,0,10,10).data,c=!1,d=3;d<b.length;d+=4)if(b[d]>0&&b[d]<255){c=!0;break}return i(this,"isFontSubpixelAAEnabled",c)},showText:function(a){var b=this.current,c=b.font;if(c.isType3Font)return this.showType3Text(a);var d=b.fontSize;if(0!==d){var e=this.ctx,f=b.fontSizeScale,g=b.charSpacing,h=b.wordSpacing,i=b.fontDirection,j=b.textHScale*i,k=a.length,l=c.vertical,m=l?1:-1,n=c.defaultVMetrics,o=d*b.fontMatrix[0],q=b.textRenderingMode===C.FILL&&!c.disableFontFace;e.save(),e.transform.apply(e,b.textMatrix),e.translate(b.x,b.y+b.textRise),i>0?e.scale(j,-1):e.scale(j,1);var r=b.lineWidth,s=b.textMatrixScale;if(0===s||0===r){var t=b.textRenderingMode&C.FILL_STROKE_MASK;(t===C.STROKE||t===C.FILL_STROKE)&&(this.cachedGetSinglePixelWidth=null,r=this.getSinglePixelWidth()*ea)}else r/=s;1!==f&&(e.scale(f,f),r/=f),e.lineWidth=r;var u,v=0;for(u=0;k>u;++u){var w=a[u];if(null!==w)if(p(w))v+=m*w*d/1e3;else{var x,y,z,A,B=!1,D=w.fontChar,E=w.accent,F=w.width;if(l){var G,H,I;G=w.vmetric||n,H=w.vmetric?G[1]:.5*F,H=-H*o,I=G[2]*o,F=G?-G[0]:F,x=H/f,y=(v+I)/f}else x=v/f,y=0;if(c.remeasure&&F>0&&this.isFontSubpixelAAEnabled){var J=1e3*e.measureText(D).width/d*f,K=F/J;B=!0,e.save(),e.scale(K,1),x/=K}q&&!E?e.fillText(D,x,y):(this.paintChar(D,x,y),E&&(z=x+E.offset.x/f,A=y-E.offset.y/f,this.paintChar(E.fontChar,z,A)));var L=F*o+g*i;v+=L,B&&e.restore()}else v+=i*h}l?b.y-=v*j:b.x+=v*j,e.restore()}},showType3Text:function(a){var c,d,e,f,g=this.ctx,h=this.current,i=h.font,j=h.fontSize,k=h.fontDirection,l=i.vertical?1:-1,m=h.charSpacing,n=h.wordSpacing,o=h.textHScale*k,q=h.fontMatrix||B,r=a.length,s=h.textRenderingMode===C.INVISIBLE;if(!s&&0!==j){for(this.cachedGetSinglePixelWidth=null,g.save(),g.transform.apply(g,h.textMatrix),g.translate(h.x,h.y),g.scale(o,k),c=0;r>c;++c)if(d=a[c],null!==d)if(p(d))f=l*d*j/1e3,this.ctx.translate(f,0),h.x+=f*o;else{var t=i.charProcOperatorList[d.operatorListId];if(t){this.processingType3=d,this.save(),g.scale(j,j),g.transform.apply(g,q),this.executeOperatorList(t),this.restore();var u=T.applyTransform([d.width,0],q);e=u[0]*j+m,g.translate(e,0),h.x+=e*o}else b('Type3 character "'+d.operatorListId+'" is not available')}else this.ctx.translate(n,0),h.x+=n*o;g.restore(),this.processingType3=null}},setCharWidth:function(a,b){},setCharWidthAndBounds:function(a,b,c,d,e,f){this.ctx.rect(c,d,e-c,f-d),this.clip(),this.endPath()},getColorN_Pattern:function(a){var b;if("TilingPattern"===a[0]){var c=a[1],d=this.baseTransform||this.ctx.mozCurrentTransform.slice();b=new oa(a,c,this.ctx,this.objs,this.commonObjs,d)}else b=y(a);return b},setStrokeColorN:function(){this.current.strokeColor=this.getColorN_Pattern(arguments)},setFillColorN:function(){this.current.fillColor=this.getColorN_Pattern(arguments),this.current.patternFill=!0},setStrokeRGBColor:function(a,b,c){var d=T.makeCssRgb(a,b,c);this.ctx.strokeStyle=d,this.current.strokeColor=d},setFillRGBColor:function(a,b,c){var d=T.makeCssRgb(a,b,c);this.ctx.fillStyle=d,this.current.fillColor=d,this.current.patternFill=!1},shadingFill:function(a){var b=this.ctx;this.save();var c=y(a);b.fillStyle=c.getPattern(b,this,!0);var d=b.mozCurrentTransformInverse;if(d){var e=b.canvas,f=e.width,g=e.height,h=T.applyTransform([0,0],d),i=T.applyTransform([0,g],d),j=T.applyTransform([f,0],d),k=T.applyTransform([f,g],d),l=Math.min(h[0],i[0],j[0],k[0]),m=Math.min(h[1],i[1],j[1],k[1]),n=Math.max(h[0],i[0],j[0],k[0]),o=Math.max(h[1],i[1],j[1],k[1]);this.ctx.fillRect(l,m,n-l,o-m)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.restore()},beginInlineImage:function(){d("Should not call beginInlineImage")},beginImageData:function(){d("Should not call beginImageData")},paintFormXObjectBegin:function(a,b){if(this.save(),this.baseTransformStack.push(this.baseTransform),q(a)&&6===a.length&&this.transform.apply(this,a),this.baseTransform=this.ctx.mozCurrentTransform,q(b)&&4===b.length){var c=b[2]-b[0],d=b[3]-b[1];this.ctx.rect(b[0],b[1],c,d),this.clip(),this.endPath()}},paintFormXObjectEnd:function(){this.restore(),this.baseTransform=this.baseTransformStack.pop()},beginGroup:function(c){this.save();var d=this.ctx;c.isolated||a("TODO: Support non-isolated groups."),c.knockout&&b("Knockout groups not supported.");var e=d.mozCurrentTransform;c.matrix&&d.transform.apply(d,c.matrix),f(c.bbox,"Bounding box is required.");var g=T.getAxialAlignedBoundingBox(c.bbox,d.mozCurrentTransform),i=[0,0,d.canvas.width,d.canvas.height];g=T.intersect(g,i)||[0,0,0,0];var j=Math.floor(g[0]),k=Math.floor(g[1]),l=Math.max(Math.ceil(g[2])-j,1),m=Math.max(Math.ceil(g[3])-k,1),n=1,o=1;l>da&&(n=l/da,l=da),m>da&&(o=m/da,m=da);var p="groupAt"+this.groupLevel;c.smask&&(p+="_smask_"+this.smaskCounter++%2);var q=ia.getCanvas(p,l,m,!0),r=q.context;r.scale(1/n,1/o),r.translate(-j,-k),r.transform.apply(r,e),c.smask?this.smaskStack.push({canvas:q.canvas,context:r,offsetX:j,offsetY:k,scaleX:n,scaleY:o,subtype:c.smask.subtype,backdrop:c.smask.backdrop}):(d.setTransform(1,0,0,1,0,0),d.translate(j,k),d.scale(n,o)),h(d,r),this.ctx=r,this.setGState([["BM","Normal"],["ca",1],["CA",1]]),this.groupStack.push(d),this.groupLevel++},endGroup:function(a){this.groupLevel--;var b=this.ctx;this.ctx=this.groupStack.pop(),void 0!==this.ctx.imageSmoothingEnabled?this.ctx.imageSmoothingEnabled=!1:this.ctx.mozImageSmoothingEnabled=!1,a.smask?this.tempSMask=this.smaskStack.pop():this.ctx.drawImage(b.canvas,0,0),this.restore()},beginAnnotations:function(){this.save(),this.current=new ja},endAnnotations:function(){this.restore()},beginAnnotation:function(a,b,c){if(this.save(),q(a)&&4===a.length){var d=a[2]-a[0],e=a[3]-a[1];this.ctx.rect(a[0],a[1],d,e),this.clip(),this.endPath()}this.transform.apply(this,b),this.transform.apply(this,c)},endAnnotation:function(){this.restore()},paintJpegXObject:function(a,c,d){var e=this.objs.get(a);if(!e)return void b("Dependent image isn't ready yet");this.save();var f=this.ctx;if(f.scale(1/c,-1/d),f.drawImage(e,0,0,e.width,e.height,0,-d,c,d),this.imageLayer){var g=f.mozCurrentTransformInverse,h=this.getCanvasPosition(0,0);this.imageLayer.appendImage({objId:a,left:h[0],top:h[1],width:c/g[0],height:d/g[3]})}this.restore()},paintImageMaskXObject:function(a){var b=this.ctx,c=a.width,d=a.height,e=this.current.fillColor,f=this.current.patternFill,h=this.processingType3;if(fa&&h&&void 0===h.compiled&&(ga>=c&&ga>=d?h.compiled=x({data:a.data,width:c,height:d}):h.compiled=null),h&&h.compiled)return void h.compiled(b);var i=ia.getCanvas("maskCanvas",c,d),j=i.context;j.save(),g(j,a),j.globalCompositeOperation="source-in",j.fillStyle=f?e.getPattern(j,this):e,j.fillRect(0,0,c,d),j.restore(),this.paintInlineImageXObject(i.canvas)},paintImageMaskXObjectRepeat:function(a,b,c,d){var e=a.width,f=a.height,h=this.current.fillColor,i=this.current.patternFill,j=ia.getCanvas("maskCanvas",e,f),k=j.context;k.save(),g(k,a),k.globalCompositeOperation="source-in",k.fillStyle=i?h.getPattern(k,this):h,k.fillRect(0,0,e,f),k.restore();for(var l=this.ctx,m=0,n=d.length;n>m;m+=2)l.save(),l.transform(b,0,0,c,d[m],d[m+1]),l.scale(1,-1),l.drawImage(j.canvas,0,0,e,f,0,-1,1,1),l.restore()},paintImageMaskXObjectGroup:function(a){for(var b=this.ctx,c=this.current.fillColor,d=this.current.patternFill,e=0,f=a.length;f>e;e++){var h=a[e],i=h.width,j=h.height,k=ia.getCanvas("maskCanvas",i,j),l=k.context;l.save(),g(l,h),l.globalCompositeOperation="source-in",l.fillStyle=d?c.getPattern(l,this):c,l.fillRect(0,0,i,j),l.restore(),b.save(),b.transform.apply(b,h.transform),b.scale(1,-1),b.drawImage(k.canvas,0,0,i,j,0,-1,1,1),b.restore()}},paintImageXObject:function(a){var c=this.objs.get(a);return c?void this.paintInlineImageXObject(c):void b("Dependent image isn't ready yet")},paintImageXObjectRepeat:function(a,c,d,e){var f=this.objs.get(a);if(!f)return void b("Dependent image isn't ready yet");for(var g=f.width,h=f.height,i=[],j=0,k=e.length;k>j;j+=2)i.push({transform:[c,0,0,d,e[j],e[j+1]],x:0,y:0,w:g,h:h});this.paintInlineImageXObjectGroup(f,i)},paintInlineImageXObject:function(a){var b=a.width,c=a.height,d=this.ctx;this.save(),d.scale(1/b,-1/c);var f,g,h=d.mozCurrentTransformInverse,i=h[0],j=h[1],k=Math.max(Math.sqrt(i*i+j*j),1),l=h[2],m=h[3],n=Math.max(Math.sqrt(l*l+m*m),1);if(a instanceof HTMLElement||!a.data)f=a;else{g=ia.getCanvas("inlineImage",b,c);var o=g.context;e(o,a),f=g.canvas}for(var p=b,q=c,r="prescale1";k>2&&p>1||n>2&&q>1;){var s=p,t=q;k>2&&p>1&&(s=Math.ceil(p/2),k/=p/s),n>2&&q>1&&(t=Math.ceil(q/2),n/=q/t),g=ia.getCanvas(r,s,t),o=g.context,o.clearRect(0,0,s,t),o.drawImage(f,0,0,p,q,0,0,s,t),f=g.canvas,p=s,q=t,r="prescale1"===r?"prescale2":"prescale1"}if(d.drawImage(f,0,0,p,q,0,-c,b,c),this.imageLayer){var u=this.getCanvasPosition(0,-c);this.imageLayer.appendImage({imgData:a,left:u[0],top:u[1],width:b/h[0],height:c/h[3]})}this.restore()},paintInlineImageXObjectGroup:function(a,b){var c=this.ctx,d=a.width,f=a.height,g=ia.getCanvas("inlineImage",d,f),h=g.context;e(h,a);for(var i=0,j=b.length;j>i;i++){var k=b[i];if(c.save(),c.transform.apply(c,k.transform),c.scale(1,-1),c.drawImage(g.canvas,k.x,k.y,k.w,k.h,0,-1,1,1),this.imageLayer){var l=this.getCanvasPosition(k.x,k.y);this.imageLayer.appendImage({imgData:a,left:l[0],top:l[1],width:d,height:f})}c.restore()}},paintSolidColorImageMask:function(){this.ctx.fillRect(0,0,1,1)},paintXObject:function(){I.notify(H.unknown),b("Unsupported 'paintXObject' command.")},markPoint:function(a){},markPointProps:function(a,b){},beginMarkedContent:function(a){},beginMarkedContentProps:function(a,b){},endMarkedContent:function(){},beginCompat:function(){},endCompat:function(){},consumePath:function(){var a=this.ctx;this.pendingClip&&(this.pendingClip===v?void 0!==a.mozFillRule?(a.mozFillRule="evenodd",a.clip(),a.mozFillRule="nonzero"):a.clip("evenodd"):a.clip(),this.pendingClip=null),a.beginPath()},getSinglePixelWidth:function(a){if(null===this.cachedGetSinglePixelWidth){var b=this.ctx.mozCurrentTransformInverse;this.cachedGetSinglePixelWidth=Math.sqrt(Math.max(b[0]*b[0]+b[1]*b[1],b[2]*b[2]+b[3]*b[3]))}return this.cachedGetSinglePixelWidth},getCanvasPosition:function(a,b){var c=this.ctx.mozCurrentTransform;return[c[0]*a+c[2]*b+c[4],c[1]*a+c[3]*b+c[5]]}};for(var z in G)c.prototype[G[z]]=c.prototype[z];return c}(),la=function(){function a(a,b,c){var d=a.createShader(c);a.shaderSource(d,b),a.compileShader(d);var e=a.getShaderParameter(d,a.COMPILE_STATUS);if(!e){var f=a.getShaderInfoLog(d);throw new Error("Error during shader compilation: "+f)}return d}function b(b,c){return a(b,c,b.VERTEX_SHADER)}function c(b,c){return a(b,c,b.FRAGMENT_SHADER)}function d(a,b){for(var c=a.createProgram(),d=0,e=b.length;e>d;++d)a.attachShader(c,b[d]);a.linkProgram(c);var f=a.getProgramParameter(c,a.LINK_STATUS);if(!f){var g=a.getProgramInfoLog(c);throw new Error("Error during program linking: "+g)}return c}function e(a,b,c){a.activeTexture(c);var d=a.createTexture();return a.bindTexture(a.TEXTURE_2D,d),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,b),d}function f(){m||(n=document.createElement("canvas"),m=n.getContext("webgl",{premultipliedalpha:!1}))}function g(){var a,e;f(),a=n,n=null,e=m,m=null;var g=b(e,o),h=c(e,p),i=d(e,[g,h]);e.useProgram(i);var j={};j.gl=e,j.canvas=a,j.resolutionLocation=e.getUniformLocation(i,"u_resolution"),j.positionLocation=e.getAttribLocation(i,"a_position"),j.backdropLocation=e.getUniformLocation(i,"u_backdrop"),j.subtypeLocation=e.getUniformLocation(i,"u_subtype");var k=e.getAttribLocation(i,"a_texCoord"),l=e.getUniformLocation(i,"u_image"),r=e.getUniformLocation(i,"u_mask"),s=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),e.STATIC_DRAW),e.enableVertexAttribArray(k),e.vertexAttribPointer(k,2,e.FLOAT,!1,0,0),e.uniform1i(l,0),e.uniform1i(r,1),q=j}function h(a,b,c){var d=a.width,f=a.height;q||g();var h=q,i=h.canvas,j=h.gl;i.width=d,i.height=f,j.viewport(0,0,j.drawingBufferWidth,j.drawingBufferHeight),j.uniform2f(h.resolutionLocation,d,f),c.backdrop?j.uniform4f(h.resolutionLocation,c.backdrop[0],c.backdrop[1],c.backdrop[2],1):j.uniform4f(h.resolutionLocation,0,0,0,0),j.uniform1i(h.subtypeLocation,"Luminosity"===c.subtype?1:0);var k=e(j,a,j.TEXTURE0),l=e(j,b,j.TEXTURE1),m=j.createBuffer();return j.bindBuffer(j.ARRAY_BUFFER,m),j.bufferData(j.ARRAY_BUFFER,new Float32Array([0,0,d,0,0,f,0,f,d,0,d,f]),j.STATIC_DRAW),j.enableVertexAttribArray(h.positionLocation),j.vertexAttribPointer(h.positionLocation,2,j.FLOAT,!1,0,0),j.clearColor(0,0,0,0),j.enable(j.BLEND),j.blendFunc(j.ONE,j.ONE_MINUS_SRC_ALPHA),j.clear(j.COLOR_BUFFER_BIT),j.drawArrays(j.TRIANGLES,0,6),j.flush(),j.deleteTexture(k),j.deleteTexture(l),j.deleteBuffer(m),i}function j(){var a,e;f(),a=n,n=null,e=m,m=null;var g=b(e,r),h=c(e,s),i=d(e,[g,h]);e.useProgram(i);var j={};j.gl=e,j.canvas=a,j.resolutionLocation=e.getUniformLocation(i,"u_resolution"),j.scaleLocation=e.getUniformLocation(i,"u_scale"),j.offsetLocation=e.getUniformLocation(i,"u_offset"),j.positionLocation=e.getAttribLocation(i,"a_position"),j.colorLocation=e.getAttribLocation(i,"a_color"),t=j}function k(a,b,c,d,e){t||j();var f=t,g=f.canvas,h=f.gl;g.width=a,g.height=b,h.viewport(0,0,h.drawingBufferWidth,h.drawingBufferHeight),h.uniform2f(f.resolutionLocation,a,b);var i,k,l,m=0;for(i=0,k=d.length;k>i;i++)switch(d[i].type){case"lattice":l=d[i].coords.length/d[i].verticesPerRow|0,m+=(l-1)*(d[i].verticesPerRow-1)*6;break;case"triangles":m+=d[i].coords.length}var n=new Float32Array(2*m),o=new Uint8Array(3*m),p=e.coords,q=e.colors,r=0,s=0;for(i=0,k=d.length;k>i;i++){var u=d[i],v=u.coords,w=u.colors;switch(u.type){case"lattice":var x=u.verticesPerRow;l=v.length/x|0;for(var y=1;l>y;y++)for(var z=y*x+1,A=1;x>A;A++,z++)n[r]=p[v[z-x-1]],n[r+1]=p[v[z-x-1]+1],n[r+2]=p[v[z-x]],n[r+3]=p[v[z-x]+1],n[r+4]=p[v[z-1]],n[r+5]=p[v[z-1]+1],o[s]=q[w[z-x-1]],o[s+1]=q[w[z-x-1]+1],o[s+2]=q[w[z-x-1]+2],o[s+3]=q[w[z-x]],o[s+4]=q[w[z-x]+1],o[s+5]=q[w[z-x]+2],o[s+6]=q[w[z-1]],o[s+7]=q[w[z-1]+1],o[s+8]=q[w[z-1]+2],n[r+6]=n[r+2],n[r+7]=n[r+3],n[r+8]=n[r+4],n[r+9]=n[r+5],n[r+10]=p[v[z]],n[r+11]=p[v[z]+1],o[s+9]=o[s+3],o[s+10]=o[s+4],o[s+11]=o[s+5],o[s+12]=o[s+6],o[s+13]=o[s+7],o[s+14]=o[s+8],o[s+15]=q[w[z]],o[s+16]=q[w[z]+1],o[s+17]=q[w[z]+2],r+=12,s+=18;break;case"triangles":for(var B=0,C=v.length;C>B;B++)n[r]=p[v[B]],n[r+1]=p[v[B]+1],o[s]=q[w[B]],o[s+1]=q[w[B]+1],o[s+2]=q[w[B]+2],r+=2,s+=3}}c?h.clearColor(c[0]/255,c[1]/255,c[2]/255,1):h.clearColor(0,0,0,0),h.clear(h.COLOR_BUFFER_BIT);var D=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,D),h.bufferData(h.ARRAY_BUFFER,n,h.STATIC_DRAW),h.enableVertexAttribArray(f.positionLocation),h.vertexAttribPointer(f.positionLocation,2,h.FLOAT,!1,0,0);var E=h.createBuffer();return h.bindBuffer(h.ARRAY_BUFFER,E),h.bufferData(h.ARRAY_BUFFER,o,h.STATIC_DRAW),h.enableVertexAttribArray(f.colorLocation),h.vertexAttribPointer(f.colorLocation,3,h.UNSIGNED_BYTE,!1,0,0),h.uniform2f(f.scaleLocation,e.scaleX,e.scaleY),h.uniform2f(f.offsetLocation,e.offsetX,e.offsetY),h.drawArrays(h.TRIANGLES,0,m),h.flush(),h.deleteBuffer(D),h.deleteBuffer(E),g}function l(){q&&q.canvas&&(q.canvas.width=0,q.canvas.height=0),t&&t.canvas&&(t.canvas.width=0,t.canvas.height=0),q=null,t=null}var m,n,o="  attribute vec2 a_position;                                      attribute vec2 a_texCoord;                                                                                                      uniform vec2 u_resolution;                                                                                                      varying vec2 v_texCoord;                                                                                                        void main() {                                                     vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0;       gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);                                                                              v_texCoord = a_texCoord;                                      }                                                             ",p="  precision mediump float;                                                                                                        uniform vec4 u_backdrop;                                        uniform int u_subtype;                                          uniform sampler2D u_image;                                      uniform sampler2D u_mask;                                                                                                       varying vec2 v_texCoord;                                                                                                        void main() {                                                     vec4 imageColor = texture2D(u_image, v_texCoord);               vec4 maskColor = texture2D(u_mask, v_texCoord);                 if (u_backdrop.a > 0.0) {                                         maskColor.rgb = maskColor.rgb * maskColor.a +                                   u_backdrop.rgb * (1.0 - maskColor.a);         }                                                               float lum;                                                      if (u_subtype == 0) {                                             lum = maskColor.a;                                            } else {                                                          lum = maskColor.r * 0.3 + maskColor.g * 0.59 +                        maskColor.b * 0.11;                                     }                                                               imageColor.a *= lum;                                            imageColor.rgb *= imageColor.a;                                 gl_FragColor = imageColor;                                    }                                                             ",q=null,r="  attribute vec2 a_position;                                      attribute vec3 a_color;                                                                                                         uniform vec2 u_resolution;                                      uniform vec2 u_scale;                                           uniform vec2 u_offset;                                                                                                          varying vec4 v_color;                                                                                                           void main() {                                                     vec2 position = (a_position + u_offset) * u_scale;              vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0;         gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);                                                                              v_color = vec4(a_color / 255.0, 1.0);                         }                                                             ",s="  precision mediump float;                                                                                                        varying vec4 v_color;                                                                                                           void main() {                                                     gl_FragColor = v_color;                                       }                                                             ",t=null;return{get isEnabled(){if(PDFJS.disableWebGL)return!1;var a=!1;try{f(),a=!!m}catch(b){}return i(this,"isEnabled",a)},composeSMask:h,drawFigures:k,clear:l}}(),ma={};ma.RadialAxial={fromIR:function(a){var b=a[1],c=a[2],d=a[3],e=a[4],f=a[5],g=a[6];return{type:"Pattern",getPattern:function(a){var h;"axial"===b?h=a.createLinearGradient(d[0],d[1],e[0],e[1]):"radial"===b&&(h=a.createRadialGradient(d[0],d[1],f,e[0],e[1],g));for(var i=0,j=c.length;j>i;++i){var k=c[i];h.addColorStop(k[0],k[1])}return h}}}};var na=function(){function a(a,b,c,d,e,f,g,h){var i,j=b.coords,k=b.colors,l=a.data,m=4*a.width;j[c+1]>j[d+1]&&(i=c,c=d,d=i,i=f,f=g,g=i),j[d+1]>j[e+1]&&(i=d,d=e,e=i,i=g,g=h,h=i),j[c+1]>j[d+1]&&(i=c,c=d,d=i,i=f,f=g,g=i);var n=(j[c]+b.offsetX)*b.scaleX,o=(j[c+1]+b.offsetY)*b.scaleY,p=(j[d]+b.offsetX)*b.scaleX,q=(j[d+1]+b.offsetY)*b.scaleY,r=(j[e]+b.offsetX)*b.scaleX,s=(j[e+1]+b.offsetY)*b.scaleY;if(!(o>=s))for(var t,u,v,w,x,y,z,A,B,C=k[f],D=k[f+1],E=k[f+2],F=k[g],G=k[g+1],H=k[g+2],I=k[h],J=k[h+1],K=k[h+2],L=Math.round(o),M=Math.round(s),N=L;M>=N;N++){q>N?(B=o>N?0:o===q?1:(o-N)/(o-q),t=n-(n-p)*B,u=C-(C-F)*B,v=D-(D-G)*B,w=E-(E-H)*B):(B=N>s?1:q===s?0:(q-N)/(q-s),t=p-(p-r)*B,u=F-(F-I)*B,v=G-(G-J)*B,w=H-(H-K)*B),B=o>N?0:N>s?1:(o-N)/(o-s),x=n-(n-r)*B,y=C-(C-I)*B,z=D-(D-J)*B,A=E-(E-K)*B;for(var O=Math.round(Math.min(t,x)),P=Math.round(Math.max(t,x)),Q=m*N+4*O,R=O;P>=R;R++)B=(t-R)/(t-x),B=0>B?0:B>1?1:B,l[Q++]=u-(u-y)*B|0,l[Q++]=v-(v-z)*B|0,l[Q++]=w-(w-A)*B|0,l[Q++]=255}}function b(b,c,e){var f,g,h=c.coords,i=c.colors;switch(c.type){case"lattice":var j=c.verticesPerRow,k=Math.floor(h.length/j)-1,l=j-1;for(f=0;k>f;f++)for(var m=f*j,n=0;l>n;n++,m++)a(b,e,h[m],h[m+1],h[m+j],i[m],i[m+1],i[m+j]),a(b,e,h[m+j+1],h[m+1],h[m+j],i[m+j+1],i[m+1],i[m+j]);break;case"triangles":for(f=0,g=h.length;g>f;f+=3)a(b,e,h[f],h[f+1],h[f+2],i[f],i[f+1],i[f+2]);break;default:d("illigal figure")}}function c(a,c,d,e,f,g){var h,i,j,k,l=1.1,m=3e3,n=Math.floor(a[0]),o=Math.floor(a[1]),p=Math.ceil(a[2])-n,q=Math.ceil(a[3])-o,r=Math.min(Math.ceil(Math.abs(p*c[0]*l)),m),s=Math.min(Math.ceil(Math.abs(q*c[1]*l)),m),t=p/r,u=q/s,v={coords:d,colors:e,offsetX:-n,offsetY:-o,scaleX:1/t,scaleY:1/u};if(la.isEnabled)h=la.drawFigures(r,s,g,f,v),i=ia.getCanvas("mesh",r,s,!1),i.context.drawImage(h,0,0),h=i.canvas;else{i=ia.getCanvas("mesh",r,s,!1);var w=i.context,x=w.createImageData(r,s);if(g){var y=x.data;for(j=0,k=y.length;k>j;j+=4)y[j]=g[0],y[j+1]=g[1],y[j+2]=g[2],y[j+3]=255}for(j=0;j<f.length;j++)b(x,f[j],v);w.putImageData(x,0,0),h=i.canvas}return{canvas:h,offsetX:n,offsetY:o,scaleX:t,scaleY:u}}return c}();ma.Mesh={fromIR:function(a){var b=a[2],c=a[3],d=a[4],e=a[5],f=a[6],g=a[8];return{type:"Pattern",getPattern:function(a,h,i){var j;if(i)j=T.singularValueDecompose2dScale(a.mozCurrentTransform);else if(j=T.singularValueDecompose2dScale(h.baseTransform),f){var k=T.singularValueDecompose2dScale(f);j=[j[0]*k[0],j[1]*k[1]]}var l=na(e,j,b,c,d,i?null:g);return i||(a.setTransform.apply(a,h.baseTransform),f&&a.transform.apply(a,f)),a.translate(l.offsetX,l.offsetY),a.scale(l.scaleX,l.scaleY),a.createPattern(l.canvas,"no-repeat")}}}},ma.Dummy={fromIR:function(){return{type:"Pattern",getPattern:function(){return"hotpink"}}}};var oa=function(){function b(a,b,c,d,e,f){this.operatorList=a[2],this.matrix=a[3]||[1,0,0,1,0,0],this.bbox=a[4],this.xstep=a[5],this.ystep=a[6],this.paintType=a[7],this.tilingType=a[8],this.color=b,this.objs=d,this.commonObjs=e,this.baseTransform=f,this.type="Pattern",this.ctx=c}var c={COLORED:1,UNCOLORED:2},e=3e3;return b.prototype={createPatternCanvas:function(b){var c=this.operatorList,d=this.bbox,f=this.xstep,g=this.ystep,h=this.paintType,i=this.tilingType,j=this.color,k=this.objs,l=this.commonObjs;a("TilingType: "+i);var m=d[0],n=d[1],o=d[2],p=d[3],q=[m,n],r=[m+f,n+g],s=r[0]-q[0],t=r[1]-q[1],u=T.singularValueDecompose2dScale(this.matrix),v=T.singularValueDecompose2dScale(this.baseTransform),w=[u[0]*v[0],u[1]*v[1]];s=Math.min(Math.ceil(Math.abs(s*w[0])),e),t=Math.min(Math.ceil(Math.abs(t*w[1])),e);var x=ia.getCanvas("pattern",s,t,!0),y=x.context,z=new ka(y,l,k);z.groupLevel=b.groupLevel,this.setFillAndStrokeStyleToContext(y,h,j),this.setScale(s,t,f,g),this.transformToScale(z);var A=[1,0,0,1,-q[0],-q[1]];return z.transform.apply(z,A),this.clipBbox(z,d,m,n,o,p),z.executeOperatorList(c),x.canvas},setScale:function(a,b,c,d){this.scale=[a/c,b/d]},transformToScale:function(a){var b=this.scale,c=[b[0],0,0,b[1],0,0];a.transform.apply(a,c)},scaleToContext:function(){var a=this.scale;this.ctx.scale(1/a[0],1/a[1])},clipBbox:function(a,b,c,d,e,f){if(b&&q(b)&&4===b.length){var g=e-c,h=f-d;a.ctx.rect(c,d,g,h),a.clip(),a.endPath()}},setFillAndStrokeStyleToContext:function(a,b,e){switch(b){case c.COLORED:var f=this.ctx;a.fillStyle=f.fillStyle,a.strokeStyle=f.strokeStyle;break;case c.UNCOLORED:var g=T.makeCssRgb(e[0],e[1],e[2]);a.fillStyle=g,a.strokeStyle=g;break;default:d("Unsupported paint type: "+b)}},getPattern:function(a,b){var c=this.createPatternCanvas(b);return a=this.ctx,a.setTransform.apply(a,this.baseTransform),a.transform.apply(a,this.matrix),this.scaleToContext(),a.createPattern(c,"repeat")}},b}();PDFJS.disableFontFace=!1;var pa={insertRule:function(a){var b=document.getElementById("PDFJS_FONT_STYLE_TAG");b||(b=document.createElement("style"),b.id="PDFJS_FONT_STYLE_TAG",document.documentElement.getElementsByTagName("head")[0].appendChild(b));var c=b.sheet;c.insertRule(a,c.cssRules.length)},clear:function(){var a=document.getElementById("PDFJS_FONT_STYLE_TAG");a&&a.parentNode.removeChild(a),this.nativeFontFaces.forEach(function(a){document.fonts["delete"](a)}),this.nativeFontFaces.length=0},get loadTestFont(){return i(this,"loadTestFont",atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="))},get isEvalSupported(){var a=!1;if(PDFJS.isEvalSupported)try{new Function(""),a=!0}catch(b){}return i(this,"isEvalSupported",a)},loadTestFontId:0,loadingContext:{requests:[],nextRequestId:0},isSyncFontLoadingSupported:function(){if(A)return!1;var a=window.navigator.userAgent,b=/Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(a);return b&&b[1]>=14?!0:"node"===a?!0:!1}(),nativeFontFaces:[],isFontLoadingAPISupported:!A&&"undefined"!=typeof document&&!!document.fonts,addNativeFontFace:function(a){this.nativeFontFaces.push(a),document.fonts.add(a)},bind:function(a,c){f(!A,"bind() shall be called from main thread");for(var d=[],e=[],g=[],h=function(a){return a.loaded["catch"](function(c){b('Failed to load font "'+a.family+'": '+c)})},i=0,j=a.length;j>i;i++){var k=a[i];if(!k.attached&&k.loading!==!1)if(k.attached=!0,this.isFontLoadingAPISupported){var l=k.createNativeFontFace();l&&g.push(h(l))}else{var m=k.bindDOM();m&&(d.push(m),e.push(k))}}var n=pa.queueLoadingCallback(c);this.isFontLoadingAPISupported?Promise.all(g).then(function(){n.complete()}):d.length>0&&!this.isSyncFontLoadingSupported?pa.prepareFontLoadEvent(d,e,n):n.complete()},queueLoadingCallback:function(a){function b(){for(f(!e.end,"completeRequest() cannot be called twice"),e.end=Date.now();c.requests.length>0&&c.requests[0].end;){var a=c.requests.shift();setTimeout(a.callback,0)}}var c=pa.loadingContext,d="pdfjs-font-loading-"+c.nextRequestId++,e={id:d,complete:b,callback:a,started:Date.now()};return c.requests.push(e),e},prepareFontLoadEvent:function(a,c,d){function e(a,b){return a.charCodeAt(b)<<24|a.charCodeAt(b+1)<<16|a.charCodeAt(b+2)<<8|255&a.charCodeAt(b+3)}function f(a,b,c,d){var e=a.substr(0,b),f=a.substr(b+c);return e+d+f}function g(a,c){if(l++,l>30)return b("Load test font never loaded."),void c();k.font="30px "+a,k.fillText(".",0,20);var d=k.getImageData(0,0,1,1);return d.data[3]>0?void c():void setTimeout(g.bind(null,a,c))}var h,i,j=document.createElement("canvas");j.width=1,j.height=1;var k=j.getContext("2d"),l=0,n="lt"+Date.now()+this.loadTestFontId++,o=this.loadTestFont,p=976;o=f(o,p,n.length,n);var q=16,r=1482184792,s=e(o,q);for(h=0,i=n.length-3;i>h;h+=4)s=s-r+e(n,h)|0;h<n.length&&(s=s-r+e(n+"XXX",h)|0),o=f(o,q,4,m(s));var t="url(data:font/opentype;base64,"+btoa(o)+");",u='@font-face { font-family:"'+n+'";src:'+t+"}";pa.insertRule(u);var v=[];for(h=0,i=c.length;i>h;h++)v.push(c[h].loadedName);v.push(n);var w=document.createElement("div");for(w.setAttribute("style","visibility: hidden;width: 10px; height: 10px;position: absolute; top: 0px; left: 0px;"),h=0,i=v.length;i>h;++h){var x=document.createElement("span");x.textContent="Hi",x.style.fontFamily=v[h],w.appendChild(x)}document.body.appendChild(w),g(n,function(){document.body.removeChild(w),d.complete()})}},qa=function(){function a(a,b,c){if(this.compiledGlyphs={},1!==arguments.length);else{var d=arguments[0];for(var e in d)this[e]=d[e]}}return a.prototype={createNativeFontFace:function(){if(!this.data)return null;if(PDFJS.disableFontFace)return this.disableFontFace=!0,null;var a=new FontFace(this.loadedName,this.data,{});return pa.addNativeFontFace(a),PDFJS.pdfBug&&"FontInspector"in z&&z.FontInspector.enabled&&z.FontInspector.fontAdded(this),a},bindDOM:function(){if(!this.data)return null;if(PDFJS.disableFontFace)return this.disableFontFace=!0,null;var a=k(new Uint8Array(this.data)),b=this.loadedName,c="url(data:"+this.mimetype+";base64,"+window.btoa(a)+");",d='@font-face { font-family:"'+b+'";src:'+c+"}";return pa.insertRule(d),PDFJS.pdfBug&&"FontInspector"in z&&z.FontInspector.enabled&&z.FontInspector.fontAdded(this,c),d},getPathGenerator:function(a,b){if(!(b in this.compiledGlyphs)){var c,d,e,f=a.get(this.loadedName+"_path_"+b);if(pa.isEvalSupported){var g,h="";for(d=0,e=f.length;e>d;d++)c=f[d],g=void 0!==c.args?c.args.join(","):"",h+="c."+c.cmd+"("+g+");\n";this.compiledGlyphs[b]=new Function("c","size",h)}else this.compiledGlyphs[b]=function(a,b){for(d=0,e=f.length;e>d;d++)c=f[d],"scale"===c.cmd&&(c.args=[b,-b]),a[c.cmd].apply(a,c.args)}}return this.compiledGlyphs[b]}},a}(),ra=10,sa=function(){function a(a,b,c){var d=a.style;if(d.fontSize=b.fontSize+"px",d.direction=b.fontDirection<0?"rtl":"ltr",c){d.fontWeight=c.black?c.bold?"bolder":"bold":c.bold?"bold":"normal",d.fontStyle=c.italic?"italic":"normal";var e=c.loadedName,f=e?'"'+e+'", ':"",g=c.fallbackName||"Helvetica, sans-serif";d.fontFamily=f+g}}function c(a){var c=document.createElement("section"),d=c.style,e=a.rect[2]-a.rect[0],f=a.rect[3]-a.rect[1];if(a.borderStyle.width>0){c.style.borderWidth=a.borderStyle.width+"px",a.borderStyle.style!==F.UNDERLINE&&(e-=2*a.borderStyle.width,f-=2*a.borderStyle.width);var g=a.borderStyle.horizontalCornerRadius,h=a.borderStyle.verticalCornerRadius;if(g>0||h>0){var i=g+"px / "+h+"px";CustomStyle.setProp("borderRadius",c,i)}switch(a.borderStyle.style){case F.SOLID:c.style.borderStyle="solid";break;case F.DASHED:c.style.borderStyle="dashed";break;case F.BEVELED:b("Unimplemented border style: beveled");break;case F.INSET:b("Unimplemented border style: inset");break;case F.UNDERLINE:c.style.borderBottomStyle="solid"}a.color?c.style.borderColor=T.makeCssRgb(0|a.color[0],0|a.color[1],0|a.color[2]):c.style.borderWidth=0;
-}return d.width=e+"px",d.height=f+"px",c}function d(b,c){var d=document.createElement("div"),e=b.rect[2]-b.rect[0],f=b.rect[3]-b.rect[1];d.style.width=e+"px",d.style.height=f+"px",d.style.display="table";var g=document.createElement("div");g.textContent=b.fieldValue;var h=b.textAlignment;g.style.textAlign=["left","center","right"][h],g.style.verticalAlign="middle",g.style.display="table-cell";var i=b.fontRefName?c.getData(b.fontRefName):null;return a(g,b,i),d.appendChild(g),d}function e(a){var b=a.rect;b[3]-b[1]<ra&&(b[3]=b[1]+ra),b[2]-b[0]<ra&&(b[2]=b[0]+(b[3]-b[1]));var d=c(a);d.className="annotText";var e=document.createElement("img");e.style.height=d.style.height,e.style.width=d.style.width;var f=a.name;e.src=PDFJS.imageResourcesPath+"annotation-"+f.toLowerCase()+".svg",e.alt="[{{type}} Annotation]",e.dataset.l10nId="text_annotation_type",e.dataset.l10nArgs=JSON.stringify({type:f});var g=document.createElement("div");g.className="annotTextContentWrapper",g.style.left=Math.floor(b[2]-b[0]+5)+"px",g.style.top="-10px";var h=document.createElement("div");h.className="annotTextContent",h.setAttribute("hidden",!0);var i,j;if(a.hasBgColor&&a.color){var k=a.color,l=.7,m=l*(255-k[0])+k[0],n=l*(255-k[1])+k[1],o=l*(255-k[2])+k[2];h.style.backgroundColor=T.makeCssRgb(0|m,0|n,0|o)}var p=document.createElement("h1"),q=document.createElement("p");if(p.textContent=a.title,a.content||a.title){var r=document.createElement("span"),s=a.content.split(/(?:\r\n?|\n)/);for(i=0,j=s.length;j>i;++i){var t=s[i];r.appendChild(document.createTextNode(t)),j-1>i&&r.appendChild(document.createElement("br"))}q.appendChild(r);var u=!1,v=function(a){a&&(u=!0),h.hasAttribute("hidden")&&(d.style.zIndex+=1,h.removeAttribute("hidden"))},w=function(a){a&&(u=!1),h.hasAttribute("hidden")||u||(d.style.zIndex-=1,h.setAttribute("hidden",!0))},x=function(){u?w(!0):v(!0)};e.addEventListener("click",function(){x()},!1),e.addEventListener("mouseover",function(){v()},!1),e.addEventListener("mouseout",function(){w()},!1),h.addEventListener("click",function(){w(!0)},!1)}else h.setAttribute("hidden",!0);return h.appendChild(p),h.appendChild(q),g.appendChild(h),d.appendChild(e),d.appendChild(g),d}function f(a){var b=c(a);b.className="annotLink";var d=document.createElement("a");return d.href=d.title=a.url||"",a.url&&j()&&(d.target=K[PDFJS.externalLinkTarget]),b.appendChild(d),b}function g(a,b){switch(a.annotationType){case E.WIDGET:return d(a,b);case E.TEXT:return e(a);case E.LINK:return f(a);default:throw new Error("Unsupported annotationType: "+a.annotationType)}}return{getHtmlElement:g}}();PDFJS.AnnotationUtils=sa;var ta={fontStyle:"normal",fontWeight:"normal",fillColor:"#000000"},ua=function(){function a(a,b,c){for(var d=-1,e=b;c>e;e++){var f=255&(d^a[e]),h=g[f];d=d>>>8^h}return-1^d}function b(b,c,d,e){var f=e,g=c.length;d[f]=g>>24&255,d[f+1]=g>>16&255,d[f+2]=g>>8&255,d[f+3]=255&g,f+=4,d[f]=255&b.charCodeAt(0),d[f+1]=255&b.charCodeAt(1),d[f+2]=255&b.charCodeAt(2),d[f+3]=255&b.charCodeAt(3),f+=4,d.set(c,f),f+=c.length;var h=a(d,e+4,f);d[f]=h>>24&255,d[f+1]=h>>16&255,d[f+2]=h>>8&255,d[f+3]=255&h}function c(a,b,c){for(var d=1,e=0,f=b;c>f;++f)d=(d+(255&a[f]))%65521,e=(e+d)%65521;return e<<16|d}function d(a,d){var g,h,i,j=a.width,k=a.height,l=a.data;switch(d){case D.GRAYSCALE_1BPP:h=0,g=1,i=j+7>>3;break;case D.RGB_24BPP:h=2,g=8,i=3*j;break;case D.RGBA_32BPP:h=6,g=8,i=4*j;break;default:throw new Error("invalid format")}var m,n,o=new Uint8Array((1+i)*k),p=0,q=0;for(m=0;k>m;++m)o[p++]=0,o.set(l.subarray(q,q+i),p),q+=i,p+=i;if(d===D.GRAYSCALE_1BPP)for(p=0,m=0;k>m;m++)for(p++,n=0;i>n;n++)o[p++]^=255;var r=new Uint8Array([j>>24&255,j>>16&255,j>>8&255,255&j,k>>24&255,k>>16&255,k>>8&255,255&k,g,h,0,0,0]),s=o.length,t=65535,u=Math.ceil(s/t),v=new Uint8Array(2+s+5*u+4),w=0;v[w++]=120,v[w++]=156;for(var x=0;s>t;)v[w++]=0,v[w++]=255,v[w++]=255,v[w++]=0,v[w++]=0,v.set(o.subarray(x,x+t),w),w+=t,x+=t,s-=t;v[w++]=1,v[w++]=255&s,v[w++]=s>>8&255,v[w++]=65535&~s&255,v[w++]=(65535&~s)>>8&255,v.set(o.subarray(x),w),w+=o.length-x;var y=c(o,0,o.length);v[w++]=y>>24&255,v[w++]=y>>16&255,v[w++]=y>>8&255,v[w++]=255&y;var z=e.length+3*f+r.length+v.length,A=new Uint8Array(z),B=0;return A.set(e,B),B+=e.length,b("IHDR",r,A,B),B+=f+r.length,b("IDATA",v,A,B),B+=f+v.length,b("IEND",new Uint8Array(0),A,B),PDFJS.createObjectURL(A,"image/png")}for(var e=new Uint8Array([137,80,78,71,13,10,26,10]),f=12,g=new Int32Array(256),h=0;256>h;h++){for(var i=h,j=0;8>j;j++)i=1&i?3988292384^i>>1&2147483647:i>>1&2147483647;g[h]=i}return function(a){var b=void 0===a.kind?D.GRAYSCALE_1BPP:a.kind;return d(a,b)}}(),va=function(){function a(){this.fontSizeScale=1,this.fontWeight=ta.fontWeight,this.fontSize=0,this.textMatrix=S,this.fontMatrix=B,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRise=0,this.fillColor=ta.fillColor,this.strokeColor="#000000",this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.lineJoin="",this.lineCap="",this.miterLimit=0,this.dashArray=[],this.dashPhase=0,this.dependencies=[],this.clipId="",this.pendingClip=!1,this.maskId=""}return a.prototype={clone:function(){return Object.create(this)},setCurrentPoint:function(a,b){this.x=a,this.y=b}},a}(),wa=function(){function a(a,b){var c="http://www.w3.org/2000/svg",d=document.createElementNS(c,"svg:svg");return d.setAttributeNS(null,"version","1.1"),d.setAttributeNS(null,"width",a+"px"),d.setAttributeNS(null,"height",b+"px"),d.setAttributeNS(null,"viewBox","0 0 "+a+" "+b),d}function c(a){for(var b=[],c=[],d=a.length,e=0;d>e;e++)"save"!==a[e].fn?"restore"===a[e].fn?b=c.pop():b.push(a[e]):(b.push({fnId:92,fn:"group",items:[]}),c.push(b),b=b[b.length-1].items);return b}function d(a){if(a===(0|a))return a.toString();var b=a.toFixed(10),c=b.length-1;if("0"!==b[c])return b;do c--;while("0"===b[c]);return b.substr(0,"."===b[c]?c:c+1)}function e(a){if(0===a[4]&&0===a[5]){if(0===a[1]&&0===a[2])return 1===a[0]&&1===a[3]?"":"scale("+d(a[0])+" "+d(a[3])+")";if(a[0]===a[3]&&a[1]===-a[2]){var b=180*Math.acos(a[0])/Math.PI;return"rotate("+d(b)+")"}}else if(1===a[0]&&0===a[1]&&0===a[2]&&1===a[3])return"translate("+d(a[4])+" "+d(a[5])+")";return"matrix("+d(a[0])+" "+d(a[1])+" "+d(a[2])+" "+d(a[3])+" "+d(a[4])+" "+d(a[5])+")"}function f(a,b){this.current=new va,this.transformMatrix=S,this.transformStack=[],this.extraStack=[],this.commonObjs=a,this.objs=b,this.pendingEOFill=!1,this.embedFonts=!1,this.embeddedFonts={},this.cssStyle=null}var g="http://www.w3.org/2000/svg",h="http://www.w3.org/XML/1998/namespace",i="http://www.w3.org/1999/xlink",j=["butt","round","square"],k=["miter","round","bevel"],l=0,m=0;return f.prototype={save:function(){this.transformStack.push(this.transformMatrix);var a=this.current;this.extraStack.push(a),this.current=a.clone()},restore:function(){this.transformMatrix=this.transformStack.pop(),this.current=this.extraStack.pop(),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix)),this.pgrp.appendChild(this.tgrp)},group:function(a){this.save(),this.executeOpTree(a),this.restore()},loadDependencies:function(a){for(var b=a.fnArray,c=b.length,d=a.argsArray,e=this,f=0;c>f;f++)if(G.dependency===b[f])for(var g=d[f],h=0,i=g.length;i>h;h++){var j,k=g[h],l="g_"===k.substring(0,2);j=l?new Promise(function(a){e.commonObjs.get(k,a)}):new Promise(function(a){e.objs.get(k,a)}),this.current.dependencies.push(j)}return Promise.all(this.current.dependencies)},transform:function(a,b,c,d,f,h){var i=[a,b,c,d,f,h];this.transformMatrix=PDFJS.Util.transform(this.transformMatrix,i),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix))},getSVG:function(b,c){return this.svg=a(c.width,c.height),this.viewport=c,this.loadDependencies(b).then(function(){this.transformMatrix=S,this.pgrp=document.createElementNS(g,"svg:g"),this.pgrp.setAttributeNS(null,"transform",e(c.transform)),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix)),this.defs=document.createElementNS(g,"svg:defs"),this.pgrp.appendChild(this.defs),this.pgrp.appendChild(this.tgrp),this.svg.appendChild(this.pgrp);var a=this.convertOpList(b);return this.executeOpTree(a),this.svg}.bind(this))},convertOpList:function(a){var b=a.argsArray,d=a.fnArray,e=d.length,f=[],g=[];for(var h in G)f[G[h]]=h;for(var i=0;e>i;i++){var j=d[i];g.push({fnId:j,fn:f[j],args:b[i]})}return c(g)},executeOpTree:function(a){for(var c=a.length,d=0;c>d;d++){var e=a[d].fn,f=a[d].fnId,g=a[d].args;switch(0|f){case G.beginText:this.beginText();break;case G.setLeading:this.setLeading(g);break;case G.setLeadingMoveText:this.setLeadingMoveText(g[0],g[1]);break;case G.setFont:this.setFont(g);break;case G.showText:this.showText(g[0]);break;case G.showSpacedText:this.showText(g[0]);break;case G.endText:this.endText();break;case G.moveText:this.moveText(g[0],g[1]);break;case G.setCharSpacing:this.setCharSpacing(g[0]);break;case G.setWordSpacing:this.setWordSpacing(g[0]);break;case G.setHScale:this.setHScale(g[0]);break;case G.setTextMatrix:this.setTextMatrix(g[0],g[1],g[2],g[3],g[4],g[5]);break;case G.setLineWidth:this.setLineWidth(g[0]);break;case G.setLineJoin:this.setLineJoin(g[0]);break;case G.setLineCap:this.setLineCap(g[0]);break;case G.setMiterLimit:this.setMiterLimit(g[0]);break;case G.setFillRGBColor:this.setFillRGBColor(g[0],g[1],g[2]);break;case G.setStrokeRGBColor:this.setStrokeRGBColor(g[0],g[1],g[2]);break;case G.setDash:this.setDash(g[0],g[1]);break;case G.setGState:this.setGState(g[0]);break;case G.fill:this.fill();break;case G.eoFill:this.eoFill();break;case G.stroke:this.stroke();break;case G.fillStroke:this.fillStroke();break;case G.eoFillStroke:this.eoFillStroke();break;case G.clip:this.clip("nonzero");break;case G.eoClip:this.clip("evenodd");break;case G.paintSolidColorImageMask:this.paintSolidColorImageMask();break;case G.paintJpegXObject:this.paintJpegXObject(g[0],g[1],g[2]);break;case G.paintImageXObject:this.paintImageXObject(g[0]);break;case G.paintInlineImageXObject:this.paintInlineImageXObject(g[0]);break;case G.paintImageMaskXObject:this.paintImageMaskXObject(g[0]);break;case G.paintFormXObjectBegin:this.paintFormXObjectBegin(g[0],g[1]);break;case G.paintFormXObjectEnd:this.paintFormXObjectEnd();break;case G.closePath:this.closePath();break;case G.closeStroke:this.closeStroke();break;case G.closeFillStroke:this.closeFillStroke();break;case G.nextLine:this.nextLine();break;case G.transform:this.transform(g[0],g[1],g[2],g[3],g[4],g[5]);break;case G.constructPath:this.constructPath(g[0],g[1]);break;case G.endPath:this.endPath();break;case 92:this.group(a[d].items);break;default:b("Unimplemented method "+e)}}},setWordSpacing:function(a){this.current.wordSpacing=a},setCharSpacing:function(a){this.current.charSpacing=a},nextLine:function(){this.moveText(0,this.current.leading)},setTextMatrix:function(a,b,c,e,f,h){var i=this.current;this.current.textMatrix=this.current.lineMatrix=[a,b,c,e,f,h],this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0,i.xcoords=[],i.tspan=document.createElementNS(g,"svg:tspan"),i.tspan.setAttributeNS(null,"font-family",i.fontFamily),i.tspan.setAttributeNS(null,"font-size",d(i.fontSize)+"px"),i.tspan.setAttributeNS(null,"y",d(-i.y)),i.txtElement=document.createElementNS(g,"svg:text"),i.txtElement.appendChild(i.tspan)},beginText:function(){this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0,this.current.textMatrix=S,this.current.lineMatrix=S,this.current.tspan=document.createElementNS(g,"svg:tspan"),this.current.txtElement=document.createElementNS(g,"svg:text"),this.current.txtgrp=document.createElementNS(g,"svg:g"),this.current.xcoords=[]},moveText:function(a,b){var c=this.current;this.current.x=this.current.lineX+=a,this.current.y=this.current.lineY+=b,c.xcoords=[],c.tspan=document.createElementNS(g,"svg:tspan"),c.tspan.setAttributeNS(null,"font-family",c.fontFamily),c.tspan.setAttributeNS(null,"font-size",d(c.fontSize)+"px"),c.tspan.setAttributeNS(null,"y",d(-c.y))},showText:function(a){var b=this.current,c=b.font,f=b.fontSize;if(0!==f){var g,i=b.charSpacing,j=b.wordSpacing,k=b.fontDirection,l=b.textHScale*k,m=a.length,n=c.vertical,o=f*b.fontMatrix[0],q=0;for(g=0;m>g;++g){var r=a[g];if(null!==r)if(p(r))q+=-r*f*.001;else{b.xcoords.push(b.x+q*l);var s=r.width,t=r.fontChar,u=s*o+i*k;q+=u,b.tspan.textContent+=t}else q+=k*j}n?b.y-=q*l:b.x+=q*l,b.tspan.setAttributeNS(null,"x",b.xcoords.map(d).join(" ")),b.tspan.setAttributeNS(null,"y",d(-b.y)),b.tspan.setAttributeNS(null,"font-family",b.fontFamily),b.tspan.setAttributeNS(null,"font-size",d(b.fontSize)+"px"),b.fontStyle!==ta.fontStyle&&b.tspan.setAttributeNS(null,"font-style",b.fontStyle),b.fontWeight!==ta.fontWeight&&b.tspan.setAttributeNS(null,"font-weight",b.fontWeight),b.fillColor!==ta.fillColor&&b.tspan.setAttributeNS(null,"fill",b.fillColor),b.txtElement.setAttributeNS(null,"transform",e(b.textMatrix)+" scale(1, -1)"),b.txtElement.setAttributeNS(h,"xml:space","preserve"),b.txtElement.appendChild(b.tspan),b.txtgrp.appendChild(b.txtElement),this.tgrp.appendChild(b.txtElement)}},setLeadingMoveText:function(a,b){this.setLeading(-b),this.moveText(a,b)},addFontStyle:function(a){this.cssStyle||(this.cssStyle=document.createElementNS(g,"svg:style"),this.cssStyle.setAttributeNS(null,"type","text/css"),this.defs.appendChild(this.cssStyle));var b=PDFJS.createObjectURL(a.data,a.mimetype);this.cssStyle.textContent+='@font-face { font-family: "'+a.loadedName+'"; src: url('+b+"); }\n"},setFont:function(a){var b=this.current,c=this.commonObjs.get(a[0]),e=a[1];this.current.font=c,this.embedFonts&&c.data&&!this.embeddedFonts[c.loadedName]&&(this.addFontStyle(c),this.embeddedFonts[c.loadedName]=c),b.fontMatrix=c.fontMatrix?c.fontMatrix:B;var f=c.black?c.bold?"bolder":"bold":c.bold?"bold":"normal",h=c.italic?"italic":"normal";0>e?(e=-e,b.fontDirection=-1):b.fontDirection=1,b.fontSize=e,b.fontFamily=c.loadedName,b.fontWeight=f,b.fontStyle=h,b.tspan=document.createElementNS(g,"svg:tspan"),b.tspan.setAttributeNS(null,"y",d(-b.y)),b.xcoords=[]},endText:function(){this.current.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix))},setLineWidth:function(a){this.current.lineWidth=a},setLineCap:function(a){this.current.lineCap=j[a]},setLineJoin:function(a){this.current.lineJoin=k[a]},setMiterLimit:function(a){this.current.miterLimit=a},setStrokeRGBColor:function(a,b,c){var d=T.makeCssRgb(a,b,c);this.current.strokeColor=d},setFillRGBColor:function(a,b,c){var d=T.makeCssRgb(a,b,c);this.current.fillColor=d,this.current.tspan=document.createElementNS(g,"svg:tspan"),this.current.xcoords=[]},setDash:function(a,b){this.current.dashArray=a,this.current.dashPhase=b},constructPath:function(a,b){var c=this.current,e=c.x,f=c.y;c.path=document.createElementNS(g,"svg:path");for(var h=[],i=a.length,j=0,k=0;i>j;j++)switch(0|a[j]){case G.rectangle:e=b[k++],f=b[k++];var l=b[k++],m=b[k++],n=e+l,o=f+m;h.push("M",d(e),d(f),"L",d(n),d(f),"L",d(n),d(o),"L",d(e),d(o),"Z");break;case G.moveTo:e=b[k++],f=b[k++],h.push("M",d(e),d(f));break;case G.lineTo:e=b[k++],f=b[k++],h.push("L",d(e),d(f));break;case G.curveTo:e=b[k+4],f=b[k+5],h.push("C",d(b[k]),d(b[k+1]),d(b[k+2]),d(b[k+3]),d(e),d(f)),k+=6;break;case G.curveTo2:e=b[k+2],f=b[k+3],h.push("C",d(e),d(f),d(b[k]),d(b[k+1]),d(b[k+2]),d(b[k+3])),k+=4;break;case G.curveTo3:e=b[k+2],f=b[k+3],h.push("C",d(b[k]),d(b[k+1]),d(e),d(f),d(e),d(f)),k+=4;break;case G.closePath:h.push("Z")}c.path.setAttributeNS(null,"d",h.join(" ")),c.path.setAttributeNS(null,"stroke-miterlimit",d(c.miterLimit)),c.path.setAttributeNS(null,"stroke-linecap",c.lineCap),c.path.setAttributeNS(null,"stroke-linejoin",c.lineJoin),c.path.setAttributeNS(null,"stroke-width",d(c.lineWidth)+"px"),c.path.setAttributeNS(null,"stroke-dasharray",c.dashArray.map(d).join(" ")),c.path.setAttributeNS(null,"stroke-dashoffset",d(c.dashPhase)+"px"),c.path.setAttributeNS(null,"fill","none"),this.tgrp.appendChild(c.path),c.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp),c.element=c.path,c.setCurrentPoint(e,f)},endPath:function(){var a=this.current;a.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix))},clip:function(a){var b=this.current;b.clipId="clippath"+l,l++,this.clippath=document.createElementNS(g,"svg:clipPath"),this.clippath.setAttributeNS(null,"id",b.clipId);var c=b.element.cloneNode();"evenodd"===a?c.setAttributeNS(null,"clip-rule","evenodd"):c.setAttributeNS(null,"clip-rule","nonzero"),this.clippath.setAttributeNS(null,"transform",e(this.transformMatrix)),this.clippath.appendChild(c),this.defs.appendChild(this.clippath),b.pendingClip=!0,this.cgrp=document.createElementNS(g,"svg:g"),this.cgrp.setAttributeNS(null,"clip-path","url(#"+b.clipId+")"),this.pgrp.appendChild(this.cgrp)},closePath:function(){var a=this.current,b=a.path.getAttributeNS(null,"d");b+="Z",a.path.setAttributeNS(null,"d",b)},setLeading:function(a){this.current.leading=-a},setTextRise:function(a){this.current.textRise=a},setHScale:function(a){this.current.textHScale=a/100},setGState:function(a){for(var b=0,c=a.length;c>b;b++){var d=a[b],e=d[0],f=d[1];switch(e){case"LW":this.setLineWidth(f);break;case"LC":this.setLineCap(f);break;case"LJ":this.setLineJoin(f);break;case"ML":this.setMiterLimit(f);break;case"D":this.setDash(f[0],f[1]);break;case"RI":break;case"FL":break;case"Font":this.setFont(f);break;case"CA":break;case"ca":break;case"BM":break;case"SMask":}}},fill:function(){var a=this.current;a.element.setAttributeNS(null,"fill",a.fillColor)},stroke:function(){var a=this.current;a.element.setAttributeNS(null,"stroke",a.strokeColor),a.element.setAttributeNS(null,"fill","none")},eoFill:function(){var a=this.current;a.element.setAttributeNS(null,"fill",a.fillColor),a.element.setAttributeNS(null,"fill-rule","evenodd")},fillStroke:function(){this.stroke(),this.fill()},eoFillStroke:function(){this.current.element.setAttributeNS(null,"fill-rule","evenodd"),this.fillStroke()},closeStroke:function(){this.closePath(),this.stroke()},closeFillStroke:function(){this.closePath(),this.fillStroke()},paintSolidColorImageMask:function(){var a=this.current,b=document.createElementNS(g,"svg:rect");b.setAttributeNS(null,"x","0"),b.setAttributeNS(null,"y","0"),b.setAttributeNS(null,"width","1px"),b.setAttributeNS(null,"height","1px"),b.setAttributeNS(null,"fill",a.fillColor),this.tgrp.appendChild(b)},paintJpegXObject:function(a,b,c){var e=this.current,f=this.objs.get(a),h=document.createElementNS(g,"svg:image");h.setAttributeNS(i,"xlink:href",f.src),h.setAttributeNS(null,"width",f.width+"px"),h.setAttributeNS(null,"height",f.height+"px"),h.setAttributeNS(null,"x","0"),h.setAttributeNS(null,"y",d(-c)),h.setAttributeNS(null,"transform","scale("+d(1/b)+" "+d(-1/c)+")"),this.tgrp.appendChild(h),e.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp)},paintImageXObject:function(a){var c=this.objs.get(a);return c?void this.paintInlineImageXObject(c):void b("Dependent image isn't ready yet")},paintInlineImageXObject:function(a,b){var c=this.current,e=a.width,f=a.height,h=ua(a),j=document.createElementNS(g,"svg:rect");j.setAttributeNS(null,"x","0"),j.setAttributeNS(null,"y","0"),j.setAttributeNS(null,"width",d(e)),j.setAttributeNS(null,"height",d(f)),c.element=j,this.clip("nonzero");var k=document.createElementNS(g,"svg:image");k.setAttributeNS(i,"xlink:href",h),k.setAttributeNS(null,"x","0"),k.setAttributeNS(null,"y",d(-f)),k.setAttributeNS(null,"width",d(e)+"px"),k.setAttributeNS(null,"height",d(f)+"px"),k.setAttributeNS(null,"transform","scale("+d(1/e)+" "+d(-1/f)+")"),b?b.appendChild(k):this.tgrp.appendChild(k),c.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp)},paintImageMaskXObject:function(a){var b=this.current,c=a.width,e=a.height,f=b.fillColor;b.maskId="mask"+m++;var h=document.createElementNS(g,"svg:mask");h.setAttributeNS(null,"id",b.maskId);var i=document.createElementNS(g,"svg:rect");i.setAttributeNS(null,"x","0"),i.setAttributeNS(null,"y","0"),i.setAttributeNS(null,"width",d(c)),i.setAttributeNS(null,"height",d(e)),i.setAttributeNS(null,"fill",f),i.setAttributeNS(null,"mask","url(#"+b.maskId+")"),this.defs.appendChild(h),this.tgrp.appendChild(i),this.paintInlineImageXObject(a,h)},paintFormXObjectBegin:function(a,b){if(this.save(),q(a)&&6===a.length&&this.transform(a[0],a[1],a[2],a[3],a[4],a[5]),q(b)&&4===b.length){var c=b[2]-b[0],e=b[3]-b[1],f=document.createElementNS(g,"svg:rect");f.setAttributeNS(null,"x",b[0]),f.setAttributeNS(null,"y",b[1]),f.setAttributeNS(null,"width",d(c)),f.setAttributeNS(null,"height",d(e)),this.current.element=f,this.clip("nonzero"),this.endPath()}},paintFormXObjectEnd:function(){this.restore()}},f}();PDFJS.SVGGraphics=wa}.call("undefined"==typeof window?this:window),PDFJS.workerSrc||"undefined"==typeof document||(PDFJS.workerSrc=function(){"use strict";var a=document.body||document.getElementsByTagName("head")[0],b=a.lastChild.src;return b&&b.replace(/\.js$/i,".worker.js")}()),"undefined"==typeof PDFJS&&(("undefined"!=typeof window?window:this).PDFJS={}),PDFJS.version="1.1.551",PDFJS.build="2a5616c",function(){"use strict";function a(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.infos&&console.log("Info: "+a)}function b(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.warnings&&console.log("Warning: "+a)}function c(a){throw PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.errors&&(console.log("Error: "+a),console.log(d())),aa.notify(_.unknown),new Error(a)}function d(){try{throw new Error}catch(a){return a.stack?a.stack.split("\n").slice(2).join("\n"):""}}function e(a,b){a||c(b)}function f(a,b){if(!a)return!1;var c=/^[a-z][a-z0-9+\-.]*(?=:)/i.exec(a);if(!c)return b;switch(c=c[0].toLowerCase()){case"http":case"https":case"ftp":case"mailto":case"tel":return!0;default:return!1}}function g(a,b,c){return Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!1}),c}function h(){switch(PDFJS.openExternalLinksInNewWindow&&(b("PDFJS.openExternalLinksInNewWindow is deprecated, use PDFJS.externalLinkTarget instead."),PDFJS.externalLinkTarget===ba.NONE&&(PDFJS.externalLinkTarget=ba.BLANK),PDFJS.openExternalLinksInNewWindow=!1),PDFJS.externalLinkTarget){case ba.NONE:return!1;case ba.SELF:case ba.BLANK:case ba.PARENT:case ba.TOP:return!0}return b("PDFJS.externalLinkTarget is invalid: "+PDFJS.externalLinkTarget),PDFJS.externalLinkTarget=ba.NONE,!1}function i(a){e(null!==a&&"object"==typeof a&&void 0!==a.length,"Invalid argument for bytesToString");var b=a.length,c=8192;if(c>b)return String.fromCharCode.apply(null,a);for(var d=[],f=0;b>f;f+=c){var g=Math.min(f+c,b),h=a.subarray(f,g);d.push(String.fromCharCode.apply(null,h))}return d.join("")}function j(a){e("string"==typeof a,"Invalid argument for stringToBytes");for(var b=a.length,c=new Uint8Array(b),d=0;b>d;++d)c[d]=255&a.charCodeAt(d);return c}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,255&a)}function l(a){for(var b=1,c=0;a>b;)b<<=1,c++;return c}function m(a,b){return a[b]<<24>>24}function n(a,b){return a[b]<<8|a[b+1]}function o(a,b){return(a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3])>>>0}function p(){var a=new Uint8Array(2);a[0]=1;var b=new Uint16Array(a.buffer);return 1===b[0]}function q(){var a=document.createElement("canvas");a.width=a.height=1;var b=a.getContext("2d"),c=b.createImageData(1,1);return"undefined"!=typeof c.data.buffer}function r(a){var b,c=a.length,d=[];if("þ"===a[0]&&"ÿ"===a[1])for(b=2;c>b;b+=2)d.push(String.fromCharCode(a.charCodeAt(b)<<8|a.charCodeAt(b+1)));else for(b=0;c>b;++b){var e=oa[a.charCodeAt(b)];d.push(e?String.fromCharCode(e):a.charAt(b))}return d.join("")}function s(a){return decodeURIComponent(escape(a))}function t(a){return unescape(encodeURIComponent(a))}function u(a){for(var b in a)return!1;return!0}function v(a){return"boolean"==typeof a}function w(a){return"number"==typeof a&&(0|a)===a}function x(a){return"number"==typeof a}function y(a){return"string"==typeof a}function z(a){return a instanceof ya}function A(a,b){return a instanceof za&&(void 0===b||a.cmd===b)}function B(a,b){if(!(a instanceof Aa))return!1;if(!b)return!0;var c=a.get("Type");return z(c)&&c.name===b}function C(a){return a instanceof Array}function D(a){return"object"==typeof a&&null!==a&&void 0!==a.getBytes}function E(a){return"object"==typeof a&&null!==a&&void 0!==a.byteLength}function F(a){return a instanceof Ba}function G(){var a={};return a.promise=new Promise(function(b,c){a.resolve=b,a.reject=c}),a}function H(a,b){this.name=a,this.comObj=b,this.callbackIndex=1,this.postMessageTransfers=!0;var d=this.callbacksCapabilities={},e=this.actionHandler={};e.console_log=[function(a){console.log.apply(console,a)}],e.console_error=[function(a){console.error.apply(console,a)}],e._unsupported_feature=[function(a){aa.notify(a)}],b.onmessage=function(a){var f=a.data;if(f.isReply){var g=f.callbackId;if(f.callbackId in d){var h=d[g];delete d[g],"error"in f?h.reject(f.error):h.resolve(f.data)}else c("Cannot resolve callback "+g)}else if(f.action in e){var i=e[f.action];f.callbackId?Promise.resolve().then(function(){return i[0].call(i[1],f.data)}).then(function(a){b.postMessage({isReply:!0,callbackId:f.callbackId,data:a})},function(a){a instanceof Error&&(a+=""),b.postMessage({isReply:!0,callbackId:f.callbackId,error:a})}):i[0].call(i[1],f.data)}else c("Unknown action from worker: "+f.action)}}function I(){}function J(a,b,c){var d=b.get("Matrix"),e=b.get("BBox"),f=b.get("XStep"),g=b.get("YStep"),h=b.get("PaintType"),i=b.get("TilingType");return["TilingPattern",c,a,d,e,f,g,h,i]}function K(a){return a>=65520&&65535>=a?0:a>=62976&&63743>=a?Wb[a]||a:a}function L(a){for(var b=0,c=Xb.length;c>b;b++){var d=Xb[b];if(a>=d.begin&&a<d.end)return b}return-1}function M(a){var b=Xb[13];return a>=b.begin&&a<b.end?!0:(b=Xb[11],a>=b.begin&&a<b.end?!0:!1)}function N(a){var b=a.length;if(1>=b||!M(a.charCodeAt(0)))return a;for(var c="",d=b-1;d>=0;d--)c+=a[d];return c}function O(a){if(a.fontMatrix[0]!==T[0]){var b=.001/a.fontMatrix[0],c=a.widths;for(var d in c)c[d]*=b;a.defaultWidth*=b}}function P(a,b){switch(a){case"Type1":return"Type1C"===b?Z.TYPE1C:Z.TYPE1;case"CIDFontType0":return"CIDFontType0C"===b?Z.CIDFONTTYPE0C:Z.CIDFONTTYPE0;case"OpenType":return Z.OPENTYPE;case"TrueType":return Z.TRUETYPE;case"CIDFontType2":return Z.CIDFONTTYPE2;case"MMType1":return Z.MMTYPE1;case"Type0":return Z.TYPE0;default:return Z.UNKNOWN}}function Q(a,b,c){var d,e,f,g=Object.create(null);if(a.baseEncodingName)for(f=Pb[a.baseEncodingName],e=0;e<f.length;e++)d=c.indexOf(f[e]),d>=0?g[e]=d:g[e]=0;else if(a.flags&Ob.Symbolic)for(e in b)g[e]=b[e];else for(f=Pb.StandardEncoding,e=0;e<f.length;e++)d=c.indexOf(f[e]),d>=0?g[e]=d:g[e]=0;var h=a.differences;if(h)for(e in h){var i=h[e];d=c.indexOf(i),d>=0?g[e]=d:g[e]=0}return g}function R(a){return a===Dc}var S="undefined"==typeof window?this:window,T=("undefined"==typeof window,[.001,0,0,.001,0,0]),U={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},V={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},W={WIDGET:1,TEXT:2,LINK:3},X={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},Y={UNKNOWN:0,FLATE:1,LZW:2,DCT:3,JPX:4,JBIG:5,A85:6,AHX:7,CCF:8,RL:9},Z={UNKNOWN:0,TYPE1:1,TYPE1C:2,CIDFONTTYPE0:3,CIDFONTTYPE0C:4,TRUETYPE:5,CIDFONTTYPE2:6,TYPE3:7,OPENTYPE:8,TYPE0:9,MMTYPE1:10};S.PDFJS||(S.PDFJS={}),S.PDFJS.pdfBug=!1,PDFJS.VERBOSITY_LEVELS={errors:0,warnings:1,infos:5};var $=PDFJS.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91},_=PDFJS.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",smask:"smask",shadingPattern:"shadingPattern",font:"font"},aa=PDFJS.UnsupportedManager=function(){var a=[];return{listen:function(b){a.push(b)},notify:function(c){b('Unsupported feature "'+c+'"');for(var d=0,e=a.length;e>d;d++)a[d](c)}}}();PDFJS.isValidUrl=f,PDFJS.shadow=g;var ba=PDFJS.LinkTarget={NONE:0,SELF:1,BLANK:2,PARENT:3,TOP:4};PDFJS.isExternalLinkTargetSet=h;var ca=PDFJS.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2},da=function(){function a(a,b){this.name="PasswordException",this.message=a,this.code=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.PasswordException=da;var ea=function(){function a(a,b){this.name="UnknownErrorException",this.message=a,this.details=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.UnknownErrorException=ea;var fa=function(){function a(a){this.name="InvalidPDFException",this.message=a}return a.prototype=new Error,a.constructor=a,a}();PDFJS.InvalidPDFException=fa;var ga=function(){function a(a){this.name="MissingPDFException",this.message=a}return a.prototype=new Error,a.constructor=a,a}();PDFJS.MissingPDFException=ga;var ha=function(){function a(a,b){this.name="UnexpectedResponseException",this.message=a,this.status=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.UnexpectedResponseException=ha;var ia=function(){function a(a){this.message=a}return a.prototype=new Error,a.prototype.name="NotImplementedException",a.constructor=a,a}(),ja=function(){function a(a,b){this.begin=a,this.end=b,this.message="Missing data ["+a+", "+b+")"}return a.prototype=new Error,a.prototype.name="MissingDataException",a.constructor=a,a}(),ka=function(){function a(a){this.message=a}return a.prototype=new Error,a.prototype.name="XRefParseException",a.constructor=a,a}();Object.defineProperty(PDFJS,"isLittleEndian",{configurable:!0,get:function(){return g(PDFJS,"isLittleEndian",p())}}),Object.defineProperty(PDFJS,"hasCanvasTypedArrays",{configurable:!0,get:function(){return g(PDFJS,"hasCanvasTypedArrays",q())}});var la=function(){function a(a,b){this.buffer=a,this.byteLength=a.length,this.length=void 0===b?this.byteLength>>2:b,c(this.length)}function b(a){return{get:function(){var b=this.buffer,c=a<<2;return(b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24)>>>0},set:function(b){var c=this.buffer,d=a<<2;c[d]=255&b,c[d+1]=b>>8&255,c[d+2]=b>>16&255,c[d+3]=b>>>24&255}}}function c(c){for(;c>d;)Object.defineProperty(a.prototype,d,b(d)),
-d++}a.prototype=Object.create(null);var d=0;return a}(),ma=[1,0,0,1,0,0],na=PDFJS.Util=function(){function a(){}var b=["rgb(",0,",",0,",",0,")"];return a.makeCssRgb=function(a,c,d){return b[1]=a,b[3]=c,b[5]=d,b.join("")},a.transform=function(a,b){return[a[0]*b[0]+a[2]*b[1],a[1]*b[0]+a[3]*b[1],a[0]*b[2]+a[2]*b[3],a[1]*b[2]+a[3]*b[3],a[0]*b[4]+a[2]*b[5]+a[4],a[1]*b[4]+a[3]*b[5]+a[5]]},a.applyTransform=function(a,b){var c=a[0]*b[0]+a[1]*b[2]+b[4],d=a[0]*b[1]+a[1]*b[3]+b[5];return[c,d]},a.applyInverseTransform=function(a,b){var c=b[0]*b[3]-b[1]*b[2],d=(a[0]*b[3]-a[1]*b[2]+b[2]*b[5]-b[4]*b[3])/c,e=(-a[0]*b[1]+a[1]*b[0]+b[4]*b[1]-b[5]*b[0])/c;return[d,e]},a.getAxialAlignedBoundingBox=function(b,c){var d=a.applyTransform(b,c),e=a.applyTransform(b.slice(2,4),c),f=a.applyTransform([b[0],b[3]],c),g=a.applyTransform([b[2],b[1]],c);return[Math.min(d[0],e[0],f[0],g[0]),Math.min(d[1],e[1],f[1],g[1]),Math.max(d[0],e[0],f[0],g[0]),Math.max(d[1],e[1],f[1],g[1])]},a.inverseTransform=function(a){var b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[4]*a[3])/b,(a[4]*a[1]-a[5]*a[0])/b]},a.apply3dTransform=function(a,b){return[a[0]*b[0]+a[1]*b[1]+a[2]*b[2],a[3]*b[0]+a[4]*b[1]+a[5]*b[2],a[6]*b[0]+a[7]*b[1]+a[8]*b[2]]},a.singularValueDecompose2dScale=function(a){var b=[a[0],a[2],a[1],a[3]],c=a[0]*b[0]+a[1]*b[2],d=a[0]*b[1]+a[1]*b[3],e=a[2]*b[0]+a[3]*b[2],f=a[2]*b[1]+a[3]*b[3],g=(c+f)/2,h=Math.sqrt((c+f)*(c+f)-4*(c*f-e*d))/2,i=g+h||1,j=g-h||1;return[Math.sqrt(i),Math.sqrt(j)]},a.normalizeRect=function(a){var b=a.slice(0);return a[0]>a[2]&&(b[0]=a[2],b[2]=a[0]),a[1]>a[3]&&(b[1]=a[3],b[3]=a[1]),b},a.intersect=function(b,c){function d(a,b){return a-b}var e=[b[0],b[2],c[0],c[2]].sort(d),f=[b[1],b[3],c[1],c[3]].sort(d),g=[];return b=a.normalizeRect(b),c=a.normalizeRect(c),e[0]===b[0]&&e[1]===c[0]||e[0]===c[0]&&e[1]===b[0]?(g[0]=e[1],g[2]=e[2],f[0]===b[1]&&f[1]===c[1]||f[0]===c[1]&&f[1]===b[1]?(g[1]=f[1],g[3]=f[2],g):!1):!1},a.sign=function(a){return 0>a?-1:1},a.appendToArray=function(a,b){Array.prototype.push.apply(a,b)},a.prependToArray=function(a,b){Array.prototype.unshift.apply(a,b)},a.extendObj=function(a,b){for(var c in b)a[c]=b[c]},a.getInheritableProperty=function(a,b){for(;a&&!a.has(b);)a=a.get("Parent");return a?a.get(b):null},a.inherit=function(a,b,c){a.prototype=Object.create(b.prototype),a.prototype.constructor=a;for(var d in c)a.prototype[d]=c[d]},a.loadScript=function(a,b){var c=document.createElement("script"),d=!1;c.setAttribute("src",a),b&&(c.onload=function(){d||b(),d=!0}),document.getElementsByTagName("head")[0].appendChild(c)},a}(),oa=(PDFJS.PageViewport=function(){function a(a,b,c,d,e,f){this.viewBox=a,this.scale=b,this.rotation=c,this.offsetX=d,this.offsetY=e;var g,h,i,j,k=(a[2]+a[0])/2,l=(a[3]+a[1])/2;switch(c%=360,c=0>c?c+360:c){case 180:g=-1,h=0,i=0,j=1;break;case 90:g=0,h=1,i=1,j=0;break;case 270:g=0,h=-1,i=-1,j=0;break;default:g=1,h=0,i=0,j=-1}f&&(i=-i,j=-j);var m,n,o,p;0===g?(m=Math.abs(l-a[1])*b+d,n=Math.abs(k-a[0])*b+e,o=Math.abs(a[3]-a[1])*b,p=Math.abs(a[2]-a[0])*b):(m=Math.abs(k-a[0])*b+d,n=Math.abs(l-a[1])*b+e,o=Math.abs(a[2]-a[0])*b,p=Math.abs(a[3]-a[1])*b),this.transform=[g*b,h*b,i*b,j*b,m-g*b*k-i*b*l,n-h*b*k-j*b*l],this.width=o,this.height=p,this.fontScale=b}return a.prototype={clone:function(b){b=b||{};var c="scale"in b?b.scale:this.scale,d="rotation"in b?b.rotation:this.rotation;return new a(this.viewBox.slice(),c,d,this.offsetX,this.offsetY,b.dontFlip)},convertToViewportPoint:function(a,b){return na.applyTransform([a,b],this.transform)},convertToViewportRectangle:function(a){var b=na.applyTransform([a[0],a[1]],this.transform),c=na.applyTransform([a[2],a[3]],this.transform);return[b[0],b[1],c[0],c[1]]},convertToPdfPoint:function(a,b){return na.applyInverseTransform([a,b],this.transform)}},a}(),[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364]);PDFJS.createPromiseCapability=G,function(){function a(a){this._status=c,this._handlers=[];try{a.call(this,this._resolve.bind(this),this._reject.bind(this))}catch(b){this._reject(b)}}if(S.Promise)return"function"!=typeof S.Promise.all&&(S.Promise.all=function(a){var b,c,d=0,e=[],f=new S.Promise(function(a,d){b=a,c=d});return a.forEach(function(a,f){d++,a.then(function(a){e[f]=a,d--,0===d&&b(e)},c)}),0===d&&b(e),f}),"function"!=typeof S.Promise.resolve&&(S.Promise.resolve=function(a){return new S.Promise(function(b){b(a)})}),"function"!=typeof S.Promise.reject&&(S.Promise.reject=function(a){return new S.Promise(function(b,c){c(a)})}),void("function"!=typeof S.Promise.prototype["catch"]&&(S.Promise.prototype["catch"]=function(a){return S.Promise.prototype.then(void 0,a)}));var c=0,d=1,e=2,f=500,g={handlers:[],running:!1,unhandledRejections:[],pendingRejectionCheck:!1,scheduleHandlers:function(a){a._status!==c&&(this.handlers=this.handlers.concat(a._handlers),a._handlers=[],this.running||(this.running=!0,setTimeout(this.runHandlers.bind(this),0)))},runHandlers:function(){for(var a=1,b=Date.now()+a;this.handlers.length>0;){var c=this.handlers.shift(),f=c.thisPromise._status,g=c.thisPromise._value;try{f===d?"function"==typeof c.onResolve&&(g=c.onResolve(g)):"function"==typeof c.onReject&&(g=c.onReject(g),f=d,c.thisPromise._unhandledRejection&&this.removeUnhandeledRejection(c.thisPromise))}catch(h){f=e,g=h}if(c.nextPromise._updateStatus(f,g),Date.now()>=b)break}return this.handlers.length>0?void setTimeout(this.runHandlers.bind(this),0):void(this.running=!1)},addUnhandledRejection:function(a){this.unhandledRejections.push({promise:a,time:Date.now()}),this.scheduleRejectionCheck()},removeUnhandeledRejection:function(a){a._unhandledRejection=!1;for(var b=0;b<this.unhandledRejections.length;b++)this.unhandledRejections[b].promise===a&&(this.unhandledRejections.splice(b),b--)},scheduleRejectionCheck:function(){this.pendingRejectionCheck||(this.pendingRejectionCheck=!0,setTimeout(function(){this.pendingRejectionCheck=!1;for(var a=Date.now(),c=0;c<this.unhandledRejections.length;c++)if(a-this.unhandledRejections[c].time>f){var d=this.unhandledRejections[c].promise._value,e="Unhandled rejection: "+d;d.stack&&(e+="\n"+d.stack),b(e),this.unhandledRejections.splice(c),c--}this.unhandledRejections.length&&this.scheduleRejectionCheck()}.bind(this),f))}};a.all=function(b){function c(a){g._status!==e&&(i=[],f(a))}var d,f,g=new a(function(a,b){d=a,f=b}),h=b.length,i=[];if(0===h)return d(i),g;for(var j=0,k=b.length;k>j;++j){var l=b[j],m=function(a){return function(b){g._status!==e&&(i[a]=b,h--,0===h&&d(i))}}(j);a.isPromise(l)?l.then(m,c):m(l)}return g},a.isPromise=function(a){return a&&"function"==typeof a.then},a.resolve=function(b){return new a(function(a){a(b)})},a.reject=function(b){return new a(function(a,c){c(b)})},a.prototype={_status:null,_value:null,_handlers:null,_unhandledRejection:null,_updateStatus:function(b,c){if(this._status!==d&&this._status!==e){if(b===d&&a.isPromise(c))return void c.then(this._updateStatus.bind(this,d),this._updateStatus.bind(this,e));this._status=b,this._value=c,b===e&&0===this._handlers.length&&(this._unhandledRejection=!0,g.addUnhandledRejection(this)),g.scheduleHandlers(this)}},_resolve:function(a){this._updateStatus(d,a)},_reject:function(a){this._updateStatus(e,a)},then:function(b,c){var d=new a(function(a,b){this.resolve=a,this.reject=b});return this._handlers.push({thisPromise:this,onResolve:b,onReject:c,nextPromise:d}),g.scheduleHandlers(this),d},"catch":function(a){return this.then(void 0,a)}},S.Promise=a}();(function(){function a(a,b,c){for(;a.length<c;)a+=b;return a}function c(){this.started={},this.times=[],this.enabled=!0}return c.prototype={time:function(a){this.enabled&&(a in this.started&&b("Timer is already running for "+a),this.started[a]=Date.now())},timeEnd:function(a){this.enabled&&(a in this.started||b("Timer has not been started for "+a),this.times.push({name:a,start:this.started[a],end:Date.now()}),delete this.started[a])},toString:function(){var b,c,d=this.times,e="",f=0;for(b=0,c=d.length;c>b;++b){var g=d[b].name;g.length>f&&(f=g.length)}for(b=0,c=d.length;c>b;++b){var h=d[b],i=h.end-h.start;e+=a(h.name," ",f)+" "+i+"ms\n"}return e}},c})();PDFJS.createBlob=function(a,b){if("undefined"!=typeof Blob)return new Blob([a],{type:b});var c=new MozBlobBuilder;return c.append(a),c.getBlob(b)},PDFJS.createObjectURL=function(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return function(b,c){if(!PDFJS.disableCreateObjectURL&&"undefined"!=typeof URL&&URL.createObjectURL){var d=PDFJS.createBlob(b,c);return URL.createObjectURL(d)}for(var e="data:"+c+";base64,",f=0,g=b.length;g>f;f+=3){var h=255&b[f],i=255&b[f+1],j=255&b[f+2],k=h>>2,l=(3&h)<<4|i>>4,m=g>f+1?(15&i)<<2|j>>6:64,n=g>f+2?63&j:64;e+=a[k]+a[l]+a[m]+a[n]}return e}}(),H.prototype={on:function(a,b,d){var e=this.actionHandler;e[a]&&c('There is already an actionName called "'+a+'"'),e[a]=[b,d]},send:function(a,b,c){var d={action:a,data:b};this.postMessage(d,c)},sendWithPromise:function(a,b,c){var d=this.callbackIndex++,e={action:a,data:b,callbackId:d},f=G();this.callbacksCapabilities[d]=f;try{this.postMessage(e,c)}catch(g){f.reject(g)}return f.promise},postMessage:function(a,b){b&&this.postMessageTransfers?this.comObj.postMessage(a,b):this.comObj.postMessage(a)}};var pa=function(){function a(a,b){this.url=a,b=b||{},this.isHttp=/^https?:/i.test(a),this.httpHeaders=this.isHttp&&b.httpHeaders||{},this.withCredentials=b.withCredentials||!1,this.getXhr=b.getXhr||function(){return new XMLHttpRequest},this.currXhrId=0,this.pendingRequests={},this.loadedRequests={}}function b(a){var b=a.response;if("string"!=typeof b)return b;for(var c=b.length,d=new Uint8Array(c),e=0;c>e;e++)d[e]=255&b.charCodeAt(e);return d.buffer}var c=200,d=206,e=function(){try{var a=new XMLHttpRequest;return a.open("GET","https://example.com"),a.responseType="moz-chunked-arraybuffer","moz-chunked-arraybuffer"===a.responseType}catch(b){return!1}}();return a.prototype={requestRange:function(a,b,c){var d={begin:a,end:b};for(var e in c)d[e]=c[e];return this.request(d)},requestFull:function(a){return this.request(a)},request:function(a){var b=this.getXhr(),c=this.currXhrId++,d=this.pendingRequests[c]={xhr:b};b.open("GET",this.url),b.withCredentials=this.withCredentials;for(var f in this.httpHeaders){var g=this.httpHeaders[f];"undefined"!=typeof g&&b.setRequestHeader(f,g)}if(this.isHttp&&"begin"in a&&"end"in a){var h=a.begin+"-"+(a.end-1);b.setRequestHeader("Range","bytes="+h),d.expectedStatus=206}else d.expectedStatus=200;var i=e&&!!a.onProgressiveData;return i?(b.responseType="moz-chunked-arraybuffer",d.onProgressiveData=a.onProgressiveData,d.mozChunked=!0):b.responseType="arraybuffer",a.onError&&(b.onerror=function(c){a.onError(b.status)}),b.onreadystatechange=this.onStateChange.bind(this,c),b.onprogress=this.onProgress.bind(this,c),d.onHeadersReceived=a.onHeadersReceived,d.onDone=a.onDone,d.onError=a.onError,d.onProgress=a.onProgress,b.send(null),c},onProgress:function(a,c){var d=this.pendingRequests[a];if(d){if(d.mozChunked){var e=b(d.xhr);d.onProgressiveData(e)}var f=d.onProgress;f&&f(c)}},onStateChange:function(a,e){var f=this.pendingRequests[a];if(f){var g=f.xhr;if(g.readyState>=2&&f.onHeadersReceived&&(f.onHeadersReceived(),delete f.onHeadersReceived),4===g.readyState&&a in this.pendingRequests){if(delete this.pendingRequests[a],0===g.status&&this.isHttp)return void(f.onError&&f.onError(g.status));var h=g.status||c,i=h===c&&f.expectedStatus===d;if(!i&&h!==f.expectedStatus)return void(f.onError&&f.onError(g.status));this.loadedRequests[a]=!0;var j=b(g);if(h===d){var k=g.getResponseHeader("Content-Range"),l=/bytes (\d+)-(\d+)\/(\d+)/.exec(k),m=parseInt(l[1],10);f.onDone({begin:m,chunk:j})}else f.onProgressiveData?f.onDone(null):f.onDone({begin:0,chunk:j})}}},hasPendingRequests:function(){for(var a in this.pendingRequests)return!0;return!1},getRequestXhr:function(a){return this.pendingRequests[a].xhr},isStreamingRequest:function(a){return!!this.pendingRequests[a].onProgressiveData},isPendingRequest:function(a){return a in this.pendingRequests},isLoadedRequest:function(a){return a in this.loadedRequests},abortAllRequests:function(){for(var a in this.pendingRequests)this.abortRequest(0|a)},abortRequest:function(a){var b=this.pendingRequests[a].xhr;delete this.pendingRequests[a],b.abort()}},a}(),qa=function(){function a(a,b,c){this.bytes=new Uint8Array(a),this.start=0,this.pos=0,this.end=a,this.chunkSize=b,this.loadedChunks=[],this.numChunksLoaded=0,this.numChunks=Math.ceil(a/b),this.manager=c,this.progressiveDataLength=0,this.lastSuccessfulEnsureByteChunk=-1}return a.prototype={getMissingChunks:function(){for(var a=[],b=0,c=this.numChunks;c>b;++b)this.loadedChunks[b]||a.push(b);return a},getBaseStreams:function(){return[this]},allChunksLoaded:function(){return this.numChunksLoaded===this.numChunks},onReceiveData:function(a,b){var c=a+b.byteLength;e(a%this.chunkSize===0,"Bad begin offset: "+a);var d=this.bytes.length;e(c%this.chunkSize===0||c===d,"Bad end offset: "+c),this.bytes.set(new Uint8Array(b),a);var f,g=this.chunkSize,h=Math.floor(a/g),i=Math.floor((c-1)/g)+1;for(f=h;i>f;++f)this.loadedChunks[f]||(this.loadedChunks[f]=!0,++this.numChunksLoaded)},onReceiveProgressiveData:function(a){var b=this.progressiveDataLength,c=Math.floor(b/this.chunkSize);this.bytes.set(new Uint8Array(a),b),b+=a.byteLength,this.progressiveDataLength=b;var d,e=b>=this.end?this.numChunks:Math.floor(b/this.chunkSize);for(d=c;e>d;++d)this.loadedChunks[d]||(this.loadedChunks[d]=!0,++this.numChunksLoaded)},ensureByte:function(a){var b=Math.floor(a/this.chunkSize);if(b!==this.lastSuccessfulEnsureByteChunk){if(!this.loadedChunks[b])throw new ja(a,a+1);this.lastSuccessfulEnsureByteChunk=b}},ensureRange:function(a,b){if(!(a>=b||b<=this.progressiveDataLength))for(var c=this.chunkSize,d=Math.floor(a/c),e=Math.floor((b-1)/c)+1,f=d;e>f;++f)if(!this.loadedChunks[f])throw new ja(a,b)},nextEmptyChunk:function(a){for(var b,c=this.numChunks,d=0;c>d;++d)if(b=(a+d)%c,!this.loadedChunks[b])return b;return null},hasChunk:function(a){return!!this.loadedChunks[a]},get length(){return this.end-this.start},get isEmpty(){return 0===this.length},getByte:function(){var a=this.pos;return a>=this.end?-1:(this.ensureByte(a),this.bytes[this.pos++])},getUint16:function(){var a=this.getByte(),b=this.getByte();return-1===a||-1===b?-1:(a<<8)+b},getInt32:function(){var a=this.getByte(),b=this.getByte(),c=this.getByte(),d=this.getByte();return(a<<24)+(b<<16)+(c<<8)+d},getBytes:function(a){var b=this.bytes,c=this.pos,d=this.end;if(!a)return this.ensureRange(c,d),b.subarray(c,d);var e=c+a;return e>d&&(e=d),this.ensureRange(c,e),this.pos=e,b.subarray(c,e)},peekByte:function(){var a=this.getByte();return this.pos--,a},peekBytes:function(a){var b=this.getBytes(a);return this.pos-=b.length,b},getByteRange:function(a,b){return this.ensureRange(a,b),this.bytes.subarray(a,b)},skip:function(a){a||(a=1),this.pos+=a},reset:function(){this.pos=this.start},moveStart:function(){this.start=this.pos},makeSubStream:function(a,b,c){function d(){}this.ensureRange(a,a+b),d.prototype=Object.create(this),d.prototype.getMissingChunks=function(){for(var a=this.chunkSize,b=Math.floor(this.start/a),c=Math.floor((this.end-1)/a)+1,d=[],e=b;c>e;++e)this.loadedChunks[e]||d.push(e);return d};var e=new d;return e.pos=e.start=a,e.end=a+b||this.end,e.dict=c,e},isStream:!0},a}(),ra=function(){function a(a,b,c,d){this.stream=new qa(a,b,this),this.length=a,this.chunkSize=b,this.url=c,this.disableAutoFetch=d.disableAutoFetch;var e=this.msgHandler=d.msgHandler;if(d.chunkedViewerLoading)e.on("OnDataRange",this.onReceiveData.bind(this)),e.on("OnDataProgress",this.onProgress.bind(this)),this.sendRequest=function(a,b){e.send("RequestDataRange",{begin:a,end:b})};else{var f=function(){return new XMLHttpRequest};this.networkManager=new pa(this.url,{getXhr:f,httpHeaders:d.httpHeaders,withCredentials:d.withCredentials}),this.sendRequest=function(a,b){this.networkManager.requestRange(a,b,{onDone:this.onReceiveData.bind(this),onProgress:this.onProgress.bind(this)})}}this.currRequestId=0,this.chunksNeededByRequest={},this.requestsByChunk={},this.promisesByRequest={},this.progressiveDataLength=0,this._loadedStreamCapability=G(),d.initialData&&this.onReceiveData({chunk:d.initialData})}return a.prototype={onLoadedStream:function(){return this._loadedStreamCapability.promise},requestAllChunks:function(){var a=this.stream.getMissingChunks();return this._requestChunks(a),this._loadedStreamCapability.promise},_requestChunks:function(a){var b,c,d,e=this.currRequestId++;for(this.chunksNeededByRequest[e]=b={},c=0,d=a.length;d>c;c++)this.stream.hasChunk(a[c])||(b[a[c]]=!0);if(u(b))return Promise.resolve();var f=G();this.promisesByRequest[e]=f;var g=[];for(var h in b)h=0|h,h in this.requestsByChunk||(this.requestsByChunk[h]=[],g.push(h)),this.requestsByChunk[h].push(e);if(!g.length)return f.promise;var i=this.groupChunks(g);for(c=0;c<i.length;++c){var j=i[c],k=j.beginChunk*this.chunkSize,l=Math.min(j.endChunk*this.chunkSize,this.length);this.sendRequest(k,l)}return f.promise},getStream:function(){return this.stream},requestRange:function(a,b){b=Math.min(b,this.length);for(var c=this.getBeginChunk(a),d=this.getEndChunk(b),e=[],f=c;d>f;++f)e.push(f);return this._requestChunks(e)},requestRanges:function(a){a=a||[];for(var b=[],c=0;c<a.length;c++)for(var d=this.getBeginChunk(a[c].begin),e=this.getEndChunk(a[c].end),f=d;e>f;++f)b.indexOf(f)<0&&b.push(f);return b.sort(function(a,b){return a-b}),this._requestChunks(b)},groupChunks:function(a){for(var b=[],c=-1,d=-1,e=0;e<a.length;++e){var f=a[e];0>c&&(c=f),d>=0&&d+1!==f&&(b.push({beginChunk:c,endChunk:d+1}),c=f),e+1===a.length&&b.push({beginChunk:c,endChunk:f+1}),d=f}return b},onProgress:function(a){var b=this.stream.numChunksLoaded*this.chunkSize+a.loaded;this.msgHandler.send("DocProgress",{loaded:b,total:this.length})},onReceiveData:function(a){var b=a.chunk,c=void 0===a.begin,d=c?this.progressiveDataLength:a.begin,e=d+b.byteLength,f=Math.floor(d/this.chunkSize),g=e<this.length?Math.floor(e/this.chunkSize):Math.ceil(e/this.chunkSize);c?(this.stream.onReceiveProgressiveData(b),this.progressiveDataLength=e):this.stream.onReceiveData(d,b),this.stream.allChunksLoaded()&&this._loadedStreamCapability.resolve(this.stream);var h,i,j=[];for(b=f;g>b;++b){var k=this.requestsByChunk[b]||[];for(delete this.requestsByChunk[b],h=0;h<k.length;++h){i=k[h];var l=this.chunksNeededByRequest[i];b in l&&delete l[b],u(l)&&j.push(i)}}if(!this.disableAutoFetch&&u(this.requestsByChunk)){var m;if(1===this.stream.numChunksLoaded){var n=this.stream.numChunks-1;this.stream.hasChunk(n)||(m=n)}else m=this.stream.nextEmptyChunk(g);w(m)&&this._requestChunks([m])}for(h=0;h<j.length;++h){i=j[h];var o=this.promisesByRequest[i];delete this.promisesByRequest[i],o.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})},onError:function(a){this._loadedStreamCapability.reject(a)},getBeginChunk:function(a){var b=Math.floor(a/this.chunkSize);return b},getEndChunk:function(a){var b=Math.floor((a-1)/this.chunkSize)+1;return b},abort:function(){this.networkManager&&this.networkManager.abortAllRequests();for(var a in this.promisesByRequest){var b=this.promisesByRequest[a];b.reject(new Error("Request was aborted"))}}},a}(),sa=65536,ta=function(){function a(){throw new Error("Cannot initialize BaseManagerManager")}return a.prototype={onLoadedStream:function(){throw new ia},ensureDoc:function(a,b){return this.ensure(this.pdfDocument,a,b)},ensureXRef:function(a,b){return this.ensure(this.pdfDocument.xref,a,b)},ensureCatalog:function(a,b){return this.ensure(this.pdfDocument.catalog,a,b)},getPage:function(a){return this.pdfDocument.getPage(a)},cleanup:function(){return this.pdfDocument.cleanup()},ensure:function(a,b,c){return new ia},requestRange:function(a,b){return new ia},requestLoadedStream:function(){return new ia},sendProgressiveData:function(a){return new ia},updatePassword:function(a){this.pdfDocument.xref.password=this.password=a,this._passwordChangedCapability&&this._passwordChangedCapability.resolve()},passwordChanged:function(){return this._passwordChangedCapability=G(),this._passwordChangedCapability.promise},terminate:function(){return new ia}},a}(),ua=function(){function a(a,b){var c=new Mc(a);this.pdfDocument=new xa(this,c,b),this._loadedStreamCapability=G(),this._loadedStreamCapability.resolve(c)}return a.prototype=Object.create(ta.prototype),a.prototype.constructor=a,a.prototype.ensure=function(a,b,c){return new Promise(function(d,e){try{var f,g=a[b];f="function"==typeof g?g.apply(a,c):g,d(f)}catch(h){e(h)}})},a.prototype.requestRange=function(a,b){return Promise.resolve()},a.prototype.requestLoadedStream=function(){},a.prototype.onLoadedStream=function(){return this._loadedStreamCapability.promise},a.prototype.terminate=function(){},a}(),va=function(){function a(a,b){this.msgHandler=b;var c={msgHandler:b,httpHeaders:a.httpHeaders,withCredentials:a.withCredentials,chunkedViewerLoading:a.chunkedViewerLoading,disableAutoFetch:a.disableAutoFetch,initialData:a.initialData};this.streamManager=new ra(a.length,sa,a.url,c),this.pdfDocument=new xa(this,this.streamManager.getStream(),a.password)}return a.prototype=Object.create(ta.prototype),a.prototype.constructor=a,a.prototype.ensure=function(a,b,c){var d=this;return new Promise(function(e,f){function g(){try{var h,i=a[b];h="function"==typeof i?i.apply(a,c):i,e(h)}catch(j){if(!(j instanceof ja))return void f(j);d.streamManager.requestRange(j.begin,j.end).then(g,f)}}g()})},a.prototype.requestRange=function(a,b){return this.streamManager.requestRange(a,b)},a.prototype.requestLoadedStream=function(){this.streamManager.requestAllChunks()},a.prototype.sendProgressiveData=function(a){this.streamManager.onReceiveData({chunk:a})},a.prototype.onLoadedStream=function(){return this.streamManager.onLoadedStream()},a.prototype.terminate=function(){this.streamManager.abort()},a}(),wa=function(){function a(a,b,c,d,e,f){this.pdfManager=a,this.pageIndex=c,this.pageDict=d,this.xref=b,this.ref=e,this.fontCache=f,this.idCounters={obj:0},this.resourcesPromise=null}var c=[0,0,612,792];return a.prototype={getPageProp:function(a){return this.pageDict.get(a)},getInheritedPageProp:function(a){for(var c=this.pageDict,d=null,e=0,f=100;c;){var g=c.get(a);if(g&&(d||(d=[]),d.push(g)),++e>f){b("Page_getInheritedPageProp: maximum loop count exceeded.");break}c=c.get("Parent")}return d?1===d.length||!B(d[0])||e>f?d[0]:Aa.merge(this.xref,d):Aa.empty},get content(){return this.getPageProp("Contents")},get resources(){return g(this,"resources",this.getInheritedPageProp("Resources"))},get mediaBox(){var a=this.getInheritedPageProp("MediaBox");return C(a)&&4===a.length||(a=c),g(this,"mediaBox",a)},get view(){var a=this.mediaBox,b=this.getInheritedPageProp("CropBox");return C(b)&&4===b.length?(b=na.intersect(b,a),b?g(this,"view",b):g(this,"view",a)):g(this,"view",a)},get rotate(){var a=this.getInheritedPageProp("Rotate")||0;return a%90!==0?a=0:a>=360?a%=360:0>a&&(a=(a%360+360)%360),g(this,"rotate",a)},getContentStream:function(){var a,b=this.content;if(C(b)){var c,d=this.xref,e=b.length,f=[];for(c=0;e>c;++c)f.push(d.fetchIfRef(b[c]));a=new Pc(f)}else a=D(b)?b:new _c;return a},loadResources:function(a){return this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources")),this.resourcesPromise.then(function(){var b=new Ia(this.resources.map,a,this.xref);return b.load()}.bind(this))},getOperatorList:function(a,b,c){var d=this,e=this.pdfManager,f=e.ensure(this,"getContentStream",[]),g=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),h=new vb(e,this.xref,a,this.pageIndex,"p"+this.pageIndex+"_",this.idCounters,this.fontCache),i=Promise.all([f,g]),j=i.then(function(e){var f=e[0],g=new xb(c,a,d.pageIndex);return a.send("StartRenderPage",{transparency:h.hasBlendModes(d.resources),pageIndex:d.pageIndex,intent:c}),h.getOperatorList(f,b,d.resources,g).then(function(){return g})}),k=e.ensure(this,"annotations");return Promise.all([j,k]).then(function(a){var d=a[0],f=a[1];if(0===f.length)return d.flush(!0),d;var g=Na.appendToOperatorList(f,d,e,h,b,c);return g.then(function(){return d.flush(!0),d})})},extractTextContent:function(a){var b={on:function(){},send:function(){}},c=this,d=this.pdfManager,e=d.ensure(this,"getContentStream",[]),f=this.loadResources(["ExtGState","XObject","Font"]),g=Promise.all([e,f]);return g.then(function(e){var f=e[0],g=new vb(d,c.xref,b,c.pageIndex,"p"+c.pageIndex+"_",c.idCounters,c.fontCache);return g.getTextContent(f,a,c.resources)})},getAnnotationsData:function(){for(var a=this.annotations,b=[],c=0,d=a.length;d>c;++c)b.push(a[c].data);return b},get annotations(){for(var a=[],b=this.getInheritedPageProp("Annots")||[],c=new I,d=0,e=b.length;e>d;++d){var f=b[d],h=c.create(this.xref,f);h&&(h.isViewable()||h.isPrintable())&&a.push(h)}return g(this,"annotations",a)}},a}(),xa=function(){function b(a,b,e){D(b)?d.call(this,a,b,e):E(b)?d.call(this,a,new Mc(b),e):c("PDFDocument: Unknown argument type")}function d(a,b,c){e(b.length>0,"stream must have data"),this.pdfManager=a,this.stream=b;var d=new Fa(this.stream,c,a);this.xref=d}function f(a,b,c,d){var e=a.pos,f=a.end,g=[];e+c>f&&(c=f-e);for(var h=0;c>h;++h)g.push(String.fromCharCode(a.getByte()));var i=g.join("");a.pos=e;var j=d?i.lastIndexOf(b):i.indexOf(b);return-1===j?!1:(a.pos+=j,!0)}var h=1024,i="\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",k={get entries(){return g(this,"entries",{Title:y,Author:y,Subject:y,Keywords:y,Creator:y,Producer:y,CreationDate:y,ModDate:y,Trapped:z})}};return b.prototype={parse:function(b){this.setup(b);var c=this.catalog.catDict.get("Version");z(c)&&(this.pdfFormatVersion=c.name);try{if(this.acroForm=this.catalog.catDict.get("AcroForm"),this.acroForm){this.xfa=this.acroForm.get("XFA");var d=this.acroForm.get("Fields");d&&C(d)&&0!==d.length||this.xfa||(this.acroForm=null)}}catch(e){a("Something wrong with AcroForm entry"),this.acroForm=null}},get linearization(){var b=null;if(this.stream.length)try{b=Hc.create(this.stream)}catch(c){if(c instanceof ja)throw c;a(c)}return g(this,"linearization",b)},get startXRef(){var a=this.stream,b=0,c=this.linearization;if(c)a.reset(),f(a,"endobj",1024)&&(b=a.pos+6);else{for(var d=1024,e=!1,h=a.end;!e&&h>0;)h-=d-"startxref".length,0>h&&(h=0),a.pos=h,e=f(a,"startxref",d,!0);if(e){a.skip(9);var i;do i=a.getByte();while(Gc.isSpace(i));for(var j="";i>=32&&57>=i;)j+=String.fromCharCode(i),i=a.getByte();b=parseInt(j,10),isNaN(b)&&(b=0)}}return g(this,"startXRef",b)},get mainXRefEntriesOffset(){var a=0,b=this.linearization;return b&&(a=b.mainXRefEntriesOffset),g(this,"mainXRefEntriesOffset",a)},checkHeader:function(){var a=this.stream;if(a.reset(),f(a,"%PDF-",1024)){a.moveStart();for(var b,c=12,d="";(b=a.getByte())>32&&!(d.length>=c);)d+=String.fromCharCode(b);return void(this.pdfFormatVersion||(this.pdfFormatVersion=d.substring(5)))}},parseStartXRef:function(){var a=this.startXRef;this.xref.setStartXRef(a)},setup:function(a){this.xref.parse(a),this.catalog=new Ea(this.pdfManager,this.xref)},get numPages(){var a=this.linearization,b=a?a.numPages:this.catalog.numPages;return g(this,"numPages",b)},get documentInfo(){var b,c={PDFFormatVersion:this.pdfFormatVersion,IsAcroFormPresent:!!this.acroForm,IsXFAPresent:!!this.xfa};try{b=this.xref.trailer.get("Info")}catch(d){a("The document information dictionary is invalid.")}if(b){var e=k.entries;for(var f in e)if(b.has(f)){var h=b.get(f);e[f](h)?c[f]="string"!=typeof h?h:r(h):a('Bad value in document info for "'+f+'"')}}return g(this,"documentInfo",c)},get fingerprint(){var a,b=this.xref,c="",d=b.trailer.get("ID");d&&C(d)&&d[0]&&y(d[0])&&d[0]!==i?a=j(d[0]):(this.stream.ensureRange&&this.stream.ensureRange(0,Math.min(h,this.stream.end)),a=gb(this.stream.bytes.subarray(0,h),0,h));for(var e=0,f=a.length;f>e;e++){var k=a[e].toString(16);c+=1===k.length?"0"+k:k}return g(this,"fingerprint",c)},getPage:function(a){return this.catalog.getPage(a)},cleanup:function(){return this.catalog.cleanup()}},b}(),ya=function(){function a(a){this.name=a}a.prototype={};var b={};return a.get=function(c){var d=b[c];return d?d:b[c]=new a(c)},a}(),za=function(){function a(a){this.cmd=a}a.prototype={};var b={};return a.get=function(c){var d=b[c];return d?d:b[c]=new a(c)},a}(),Aa=function(){function a(a){if(!z(a.Type))return!0;var b=a.Type.name;return d[b]===!0}function b(a){this.map=Object.create(null),this.xref=a,this.objId=null,this.__nonSerializable__=c}var c=function(){return c},d={Background:!0,ExtGState:!0,Halftone:!0,Layout:!0,Mask:!0,Pagination:!0,Printing:!0};return b.prototype={assignXref:function(a){this.xref=a},get:function(a,b,c){var d,e=this.xref;return"undefined"!=typeof(d=this.map[a])||a in this.map||"undefined"==typeof b?e?e.fetchIfRef(d):d:"undefined"!=typeof(d=this.map[b])||b in this.map||"undefined"==typeof c?e?e.fetchIfRef(d):d:(d=this.map[c]||null,e?e.fetchIfRef(d):d)},getAsync:function(a,b,c){var d,e=this.xref;return"undefined"!=typeof(d=this.map[a])||a in this.map||"undefined"==typeof b?e?e.fetchIfRefAsync(d):Promise.resolve(d):"undefined"!=typeof(d=this.map[b])||b in this.map||"undefined"==typeof c?e?e.fetchIfRefAsync(d):Promise.resolve(d):(d=this.map[c]||null,e?e.fetchIfRefAsync(d):Promise.resolve(d))},getArray:function(a,b,c){var d=this.get(a,b,c),e=this.xref;if(!C(d)||!e)return d;d=d.slice();for(var f=0,g=d.length;g>f;f++)F(d[f])&&(d[f]=e.fetch(d[f]));return d},getRaw:function(a){return this.map[a]},getAll:function(){var c,d,e=Object.create(null),f=null;for(c in this.map)d=this.get(c),d instanceof b?a(d)?(f||(f=[])).push({target:e,key:c,obj:d}):e[c]=this.getRaw(c):e[c]=d;if(!f)return e;for(var g=Object.create(null);f.length>0;){var h=f.shift(),i=h.obj,j=i.objId;if(j&&j in g)h.target[h.key]=g[j];else{var k=Object.create(null);for(c in i.map)d=i.get(c),d instanceof b?a(d)?f.push({target:k,key:c,obj:d}):k[c]=i.getRaw(c):k[c]=d;j&&(g[j]=k),h.target[h.key]=k}}return e},getKeys:function(){return Object.keys(this.map)},set:function(a,b){this.map[a]=b},has:function(a){return a in this.map},forEach:function(a){for(var b in this.map)a(b,this.get(b))}},b.empty=new b(null),b.merge=function(a,c){for(var d=new b(a),e=0,f=c.length;f>e;e++){var g=c[e];if(B(g))for(var h in g.map)d.map[h]||(d.map[h]=g.map[h])}return d},b}(),Ba=function(){function a(a,b){this.num=a,this.gen=b}return a.prototype={toString:function(){var a=this.num+"R";return 0!==this.gen&&(a+=this.gen),a}},a}(),Ca=function(){function a(){this.dict={}}return a.prototype={has:function(a){return a.toString()in this.dict},put:function(a){this.dict[a.toString()]=!0},remove:function(a){delete this.dict[a.toString()]}},a}(),Da=function(){function a(){this.dict=Object.create(null)}return a.prototype={get:function(a){return this.dict[a.toString()]},has:function(a){return a.toString()in this.dict},put:function(a,b){this.dict[a.toString()]=b},putAlias:function(a,b){this.dict[a.toString()]=this.get(b)},forEach:function(a,b){for(var c in this.dict)a.call(b,this.dict[c])},clear:function(){this.dict=Object.create(null)}},a}(),Ea=function(){function d(a,b){this.pdfManager=a,this.xref=b,this.catDict=b.getCatalogObj(),this.fontCache=new Da,e(B(this.catDict),"catalog object is not a dictionary"),this.pagePromises=[]}return d.prototype={get metadata(){var b=this.catDict.getRaw("Metadata");if(!F(b))return g(this,"metadata",null);var c,d=this.xref.encrypt?this.xref.encrypt.encryptMetadata:!1,e=this.xref.fetch(b,!d);if(e&&B(e.dict)){var f=e.dict.get("Type"),h=e.dict.get("Subtype");if(z(f)&&z(h)&&"Metadata"===f.name&&"XML"===h.name)try{c=s(i(e.getBytes()))}catch(j){
-a("Skipping invalid metadata.")}}return g(this,"metadata",c)},get toplevelPagesDict(){var a=this.catDict.get("Pages");return e(B(a),"invalid top-level pages dictionary"),g(this,"toplevelPagesDict",a)},get documentOutline(){var a=null;try{a=this.readDocumentOutline()}catch(c){if(c instanceof ja)throw c;b("Unable to read document outline")}return g(this,"documentOutline",a)},readDocumentOutline:function(){var a=this.xref,b=this.catDict.get("Outlines"),d={items:[]};if(B(b)){b=b.getRaw("First");var e=new Ca;if(F(b)){var f=[{obj:b,parent:d}];for(e.put(b);f.length>0;){var g=f.shift(),h=a.fetchIfRef(g.obj);if(null!==h){h.has("Title")||c("Invalid outline item");var i=h.get("A");i?i=i.get("D"):h.has("Dest")&&(i=h.getRaw("Dest"),z(i)&&(i=i.name));var j=h.get("Title"),k={dest:i,title:r(j),color:h.get("C")||[0,0,0],count:h.get("Count"),bold:!!(2&h.get("F")),italic:!!(1&h.get("F")),items:[]};g.parent.items.push(k),b=h.getRaw("First"),F(b)&&!e.has(b)&&(f.push({obj:b,parent:k}),e.put(b)),b=h.getRaw("Next"),F(b)&&!e.has(b)&&(f.push({obj:b,parent:g.parent}),e.put(b))}}}}return d.items.length>0?d.items:null},get numPages(){var a=this.toplevelPagesDict.get("Count");return e(w(a),"page count in top level pages object is not an integer"),g(this,"num",a)},get destinations(){function a(a){return B(a)?a.get("D"):a}var b,c,d=this.xref,e={},f=this.catDict.get("Names");if(f&&f.has("Dests")?b=f.getRaw("Dests"):this.catDict.has("Dests")&&(c=this.catDict.get("Dests")),c&&(f=c,f.forEach(function(b,c){c&&(e[b]=a(c))})),b){var h=new Ga(b,d),i=h.getAll();for(var j in i)i.hasOwnProperty(j)&&(e[j]=a(i[j]))}return g(this,"destinations",e)},getDestination:function(a){function b(a){return B(a)?a.get("D"):a}var c,d,e=this.xref,f=null,g=this.catDict.get("Names");if(g&&g.has("Dests")?c=g.getRaw("Dests"):this.catDict.has("Dests")&&(d=this.catDict.get("Dests")),d){var h=d.get(a);h&&(f=b(h))}if(c){var i=new Ga(c,e);f=b(i.get(a))}return f},get attachments(){var a,b=this.xref,c=null,d=this.catDict.get("Names");if(d&&(a=d.getRaw("EmbeddedFiles")),a){var e=new Ga(a,b),f=e.getAll();for(var h in f)if(f.hasOwnProperty(h)){var i=new Ha(f[h],b);c||(c={}),c[r(h)]=i.serializable}}return g(this,"attachments",c)},get javaScript(){function a(a){var b=a.get("S");if(z(b)&&"JavaScript"===b.name){var c=a.get("JS");if(D(c))c=i(c.getBytes());else if(!y(c))return;d.push(r(c))}}var b=this.xref,c=this.catDict.get("Names"),d=[];if(c&&c.has("JavaScript")){var e=new Ga(c.getRaw("JavaScript"),b),f=e.getAll();for(var h in f)if(f.hasOwnProperty(h)){var j=f[h];B(j)&&a(j)}}var k=this.catDict.get("OpenAction");if(B(k,"Action")){var l=k.get("S");if(z(l)&&"Named"===l.name){var m=k.get("N");z(m)&&"Print"===m.name&&d.push("print({});")}else a(k)}return g(this,"javaScript",d)},cleanup:function(){var a=[];return this.fontCache.forEach(function(b){a.push(b)}),Promise.all(a).then(function(a){for(var b=0,c=a.length;c>b;b++){var d=a[b].dict;delete d.translated}this.fontCache.clear()}.bind(this))},getPage:function(a){return a in this.pagePromises||(this.pagePromises[a]=this.getPageDict(a).then(function(b){var c=b[0],d=b[1];return new wa(this.pdfManager,this.xref,a,c,d,this.fontCache)}.bind(this))),this.pagePromises[a]},getPageDict:function(a){function b(){for(;d.length;){var i=d.pop();if(F(i))return void g.fetchAsync(i).then(function(e){return B(e,"Page")||B(e)&&!e.has("Kids")?void(a===f?c.resolve([e,i]):(f++,b())):(d.push(e),void b())},c.reject);e(B(i),"page dictionary kid reference points to wrong type of object");var j=i.get("Count");if(0===j&&(h=!0),a>=f+j)f+=j;else{var k=i.get("Kids");if(e(C(k),"page dictionary kids object is not an array"),h||j!==k.length)for(var l=k.length-1;l>=0;l--)d.push(k[l]);else d=[k[a-f]],f=a}}c.reject("Page index "+a+" not found.")}var c=G(),d=[this.catDict.getRaw("Pages")],f=0,g=this.xref,h=!1;return b(),c.promise},getPageIndex:function(a){function b(a){var b,d=0;return f.fetchAsync(a).then(function(a){return a?(b=a.getRaw("Parent"),a.getAsync("Parent")):null}).then(function(a){return a?a.getAsync("Kids"):null}).then(function(g){if(!g)return null;for(var h=[],i=!1,j=0;j<g.length;j++){var k=g[j];if(e(F(k),"kids must be a ref"),k.num===a.num){i=!0;break}h.push(f.fetchAsync(k).then(function(a){if(a.has("Count")){var b=a.get("Count");d+=b}else d++}))}return i||c("kid ref not found in parents kids"),Promise.all(h).then(function(){return[d,b]})})}function d(a){return b(a).then(function(a){if(!a)return g;var b=a[0],c=a[1];return g+=b,d(c)})}var f=this.xref,g=0;return d(a)}},d}(),Fa=function(){function d(a,b){this.stream=a,this.entries=[],this.xrefstms={},this.cache=[],this.password=b,this.stats={streamTypes:[],fontTypes:[]}}return d.prototype={setStartXRef:function(a){this.startXRefQueue=[a]},parse:function(a){var d;a?(b("Indexing all PDF objects"),d=this.indexObjects()):d=this.readXRef(),d.assignXref(this),this.trailer=d;var e=d.get("Encrypt");if(e){var f=d.get("ID"),g=f&&f.length?f[0]:"";this.encrypt=new rb(e,g,this.password)}(this.root=d.get("Root"))||c("Invalid root reference")},processXRefTable:function(a){"tableState"in this||(this.tableState={entryNum:0,streamPos:a.lexer.stream.pos,parserBuf1:a.buf1,parserBuf2:a.buf2});var b=this.readXRefTable(a);A(b,"trailer")||c("Invalid XRef table: could not find trailer dictionary");var d=a.getObj();return!B(d)&&d.dict&&(d=d.dict),B(d)||c("Invalid XRef table: could not parse trailer dictionary"),delete this.tableState,d},readXRefTable:function(a){var b=a.lexer.stream,d=this.tableState;b.pos=d.streamPos,a.buf1=d.parserBuf1,a.buf2=d.parserBuf2;for(var e;;){if(!("firstEntryNum"in d&&"entryCount"in d)){if(A(e=a.getObj(),"trailer"))break;d.firstEntryNum=e,d.entryCount=a.getObj()}var f=d.firstEntryNum,g=d.entryCount;w(f)&&w(g)||c("Invalid XRef table: wrong types in subsection header");for(var h=d.entryNum;g>h;h++){d.streamPos=b.pos,d.entryNum=h,d.parserBuf1=a.buf1,d.parserBuf2=a.buf2;var i={};i.offset=a.getObj(),i.gen=a.getObj();var j=a.getObj();A(j,"f")?i.free=!0:A(j,"n")&&(i.uncompressed=!0),w(i.offset)&&w(i.gen)&&(i.free||i.uncompressed)||c("Invalid entry in XRef subsection: "+f+", "+g),this.entries[h+f]||(this.entries[h+f]=i)}d.entryNum=0,d.streamPos=b.pos,d.parserBuf1=a.buf1,d.parserBuf2=a.buf2,delete d.firstEntryNum,delete d.entryCount}return 1===f&&this.entries[1]&&this.entries[1].free&&this.entries.shift(),this.entries[0]&&!this.entries[0].free&&c("Invalid XRef table: unexpected first object"),e},processXRefStream:function(a){if(!("streamState"in this)){var b=a.dict,c=b.get("W"),d=b.get("Index");d||(d=[0,b.get("Size")]),this.streamState={entryRanges:d,byteWidths:c,entryNum:0,streamPos:a.pos}}return this.readXRefStream(a),delete this.streamState,a.dict},readXRefStream:function(a){var b,d,e=this.streamState;a.pos=e.streamPos;for(var f=e.byteWidths,g=f[0],h=f[1],i=f[2],j=e.entryRanges;j.length>0;){var k=j[0],l=j[1];for(w(k)&&w(l)||c("Invalid XRef range fields: "+k+", "+l),w(g)&&w(h)&&w(i)||c("Invalid XRef entry fields length: "+k+", "+l),b=e.entryNum;l>b;++b){e.entryNum=b,e.streamPos=a.pos;var m=0,n=0,o=0;for(d=0;g>d;++d)m=m<<8|a.getByte();for(0===g&&(m=1),d=0;h>d;++d)n=n<<8|a.getByte();for(d=0;i>d;++d)o=o<<8|a.getByte();var p={};switch(p.offset=n,p.gen=o,m){case 0:p.free=!0;break;case 1:p.uncompressed=!0;break;case 2:break;default:c("Invalid XRef entry type: "+m)}this.entries[k+b]||(this.entries[k+b]=p)}e.entryNum=0,e.streamPos=a.pos,j.splice(0,2)}},indexObjects:function(){function a(a,b){for(var c="",f=a[b];f!==d&&f!==e&&f!==h&&!(++b>=a.length);)c+=String.fromCharCode(f),f=a[b];return c}function b(a,b,c){for(var d=c.length,e=a.length,f=0;e>b;){for(var g=0;d>g&&a[b+g]===c[g];)++g;if(g>=d)break;b++,f++}return f}var c=9,d=10,e=13,f=32,g=37,h=60,i=/^(\d+)\s+(\d+)\s+obj\b/,j=new Uint8Array([116,114,97,105,108,101,114]),k=new Uint8Array([115,116,97,114,116,120,114,101,102]),l=new Uint8Array([101,110,100,111,98,106]),m=new Uint8Array([47,88,82,101,102]);this.entries.length=0;var n=this.stream;n.pos=0;for(var o=n.getBytes(),p=n.start,q=o.length,r=[],s=[];q>p;){var t=o[p];if(t!==c&&t!==d&&t!==e&&t!==f)if(t!==g){var u,v=a(o,p);if(0!==v.indexOf("xref")||4!==v.length&&!/\s/.test(v[4]))if(u=i.exec(v)){"undefined"==typeof this.entries[u[1]]&&(this.entries[u[1]]={offset:p-n.start,gen:0|u[2],uncompressed:!0});var w=b(o,p,l)+7,x=o.subarray(p,p+w),y=b(x,0,m);w>y&&x[y+5]<64&&(s.push(p-n.start),this.xrefstms[p-n.start]=1),p+=w}else 0!==v.indexOf("trailer")||7!==v.length&&!/\s/.test(v[7])?p+=v.length+1:(r.push(p),p+=b(o,p,k));else p+=b(o,p,j),r.push(p),p+=b(o,p,k)}else do{if(++p,p>=q)break;t=o[p]}while(t!==d&&t!==e);else++p}var z,C;for(z=0,C=s.length;C>z;++z)this.startXRefQueue.push(s[z]),this.readXRef(!0);var D;for(z=0,C=r.length;C>z;++z){n.pos=r[z];var E=new Fc(new Gc(n),!0,this),F=E.getObj();if(A(F,"trailer")&&B(D=E.getObj())&&D.has("ID"))return D}if(D)return D;throw new fa("Invalid PDF structure")},readXRef:function(b){var d=this.stream;try{for(;this.startXRefQueue.length;){var e=this.startXRefQueue[0];d.pos=e+d.start;var f,g=new Fc(new Gc(d),!0,this),h=g.getObj();if(A(h,"xref")){if(f=this.processXRefTable(g),this.topDict||(this.topDict=f),h=f.get("XRefStm"),w(h)){var i=h;i in this.xrefstms||(this.xrefstms[i]=1,this.startXRefQueue.push(i))}}else w(h)?(w(g.getObj())&&A(g.getObj(),"obj")&&D(h=g.getObj())||c("Invalid XRef stream"),f=this.processXRefStream(h),this.topDict||(this.topDict=f),f||c("Failed to read XRef stream")):c("Invalid XRef stream header");h=f.get("Prev"),w(h)?this.startXRefQueue.push(h):F(h)&&this.startXRefQueue.push(h.num),this.startXRefQueue.shift()}return this.topDict}catch(j){if(j instanceof ja)throw j;a("(while reading XRef): "+j)}if(!b)throw new ka},getEntry:function(a){var b=this.entries[a];return b&&!b.free&&b.offset?b:null},fetchIfRef:function(a){return F(a)?this.fetch(a):a},fetch:function(a,b){e(F(a),"ref object is not a reference");var c=a.num;if(c in this.cache){var d=this.cache[c];return d}var f=this.getEntry(c);return null===f?this.cache[c]=null:(f=f.uncompressed?this.fetchUncompressed(a,f,b):this.fetchCompressed(f,b),B(f)?f.objId=a.toString():D(f)&&(f.dict.objId=a.toString()),f)},fetchUncompressed:function(a,b,d){var e=a.gen,f=a.num;b.gen!==e&&c("inconsistent generation in XRef");var g=this.stream.makeSubStream(b.offset+this.stream.start),h=new Fc(new Gc(g),!0,this),i=h.getObj(),j=h.getObj(),k=h.getObj();if(w(i)&&parseInt(i,10)===f&&w(j)&&parseInt(j,10)===e&&A(k)||c("bad XRef entry"),!A(k,"obj")){if(0===k.cmd.indexOf("obj")&&(f=parseInt(k.cmd.substring(3),10),!isNaN(f)))return f;c("bad XRef entry")}return b=this.encrypt&&!d?h.getObj(this.encrypt.createCipherTransform(f,e)):h.getObj(),D(b)||(this.cache[f]=b),b},fetchCompressed:function(a,b){var d=a.offset,e=this.fetch(new Ba(d,0));D(e)||c("bad ObjStm stream");var f=e.dict.get("First"),g=e.dict.get("N");w(f)&&w(g)||c("invalid first and n parameters for ObjStm stream");var h=new Fc(new Gc(e),!1,this);h.allowStreams=!0;var i,j,k=[],l=[];for(i=0;g>i;++i){j=h.getObj(),w(j)||c("invalid object number in the ObjStm stream: "+j),l.push(j);var m=h.getObj();w(m)||c("invalid object offset in the ObjStm stream: "+m)}for(i=0;g>i;++i){k.push(h.getObj()),j=l[i];var n=this.entries[j];n&&n.offset===d&&n.gen===i&&(this.cache[j]=k[i])}return a=k[a.gen],void 0===a&&c("bad XRef entry for compressed object"),a},fetchIfRefAsync:function(a){return F(a)?this.fetchAsync(a):Promise.resolve(a)},fetchAsync:function(a,b){var c=this.stream.manager,d=this;return new Promise(function e(f,g){try{f(d.fetch(a,b))}catch(h){if(h instanceof ja)return void c.requestRange(h.begin,h.end).then(function(){e(f,g)},g);g(h)}})},getCatalogObj:function(){return this.root}},d}(),Ga=function(){function a(a,b){this.root=a,this.xref=b}return a.prototype={getAll:function(){var a={};if(!this.root)return a;var b=this.xref,d=new Ca;d.put(this.root);for(var e=[this.root];e.length>0;){var f,g,h=b.fetchIfRef(e.shift());if(B(h))if(h.has("Kids")){var i=h.get("Kids");for(f=0,g=i.length;g>f;f++){var j=i[f];d.has(j)&&c("invalid destinations"),e.push(j),d.put(j)}}else{var k=h.get("Names");if(k)for(f=0,g=k.length;g>f;f+=2)a[b.fetchIfRef(k[f])]=b.fetchIfRef(k[f+1])}}return a},get:function(a){if(!this.root)return null;for(var c,d,e,f=this.xref,g=f.fetchIfRef(this.root),h=0,i=10;g.has("Kids");){if(h++,h>i)return b("Search depth limit for named destionations has been reached."),null;var j=g.get("Kids");if(!C(j))return null;for(c=0,d=j.length-1;d>=c;){e=c+d>>1;var k=f.fetchIfRef(j[e]),l=k.get("Limits");if(a<f.fetchIfRef(l[0]))d=e-1;else{if(!(a>f.fetchIfRef(l[1]))){g=f.fetchIfRef(j[e]);break}c=e+1}}if(c>d)return null}var m=g.get("Names");if(C(m))for(c=0,d=m.length-2;d>=c;)if(e=c+d&-2,a<f.fetchIfRef(m[e]))d=e-2;else{if(!(a>f.fetchIfRef(m[e])))return f.fetchIfRef(m[e+1]);c=e+2}return null}},a}(),Ha=function(){function a(a,c){a&&B(a)&&(this.xref=c,this.root=a,a.has("FS")&&(this.fs=a.get("FS")),this.description=a.has("Desc")?r(a.get("Desc")):"",a.has("RF")&&b("Related file specifications are not supported"),this.contentAvailable=!0,a.has("EF")||(this.contentAvailable=!1,b("Non-embedded file specifications are not supported")))}function c(a){return a.has("UF")?a.get("UF"):a.has("F")?a.get("F"):a.has("Unix")?a.get("Unix"):a.has("Mac")?a.get("Mac"):a.has("DOS")?a.get("DOS"):null}return a.prototype={get filename(){if(!this._filename&&this.root){var a=c(this.root)||"unnamed";this._filename=r(a).replace(/\\\\/g,"\\").replace(/\\\//g,"/").replace(/\\/g,"/")}return this._filename},get content(){if(!this.contentAvailable)return null;!this.contentRef&&this.root&&(this.contentRef=c(this.root.get("EF")));var a=null;if(this.contentRef){var d=this.xref,e=d.fetchIfRef(this.contentRef);e&&D(e)?a=e.getBytes():b("Embedded file specification points to non-existing/invalid content")}else b("Embedded file specification does not have a content");return a},get serializable(){return{filename:this.filename,content:this.content}}},a}(),Ia=function(){function a(a){return F(a)||B(a)||C(a)||D(a)}function b(b,c){var d;if(B(b)||D(b)){var e;e=B(b)?b.map:b.dict.map;for(var f in e)d=e[f],a(d)&&c.push(d)}else if(C(b))for(var g=0,h=b.length;h>g;g++)d=b[g],a(d)&&c.push(d)}function c(a,b,c){this.obj=a,this.keys=b,this.xref=c,this.refSet=null,this.capability=null}return c.prototype={load:function(){var a=this.keys;if(this.capability=G(),!(this.xref.stream instanceof qa)||0===this.xref.stream.getMissingChunks().length)return this.capability.resolve(),this.capability.promise;this.refSet=new Ca;for(var b=[],c=0;c<a.length;c++)b.push(this.obj[a[c]]);return this._walk(b),this.capability.promise},_walk:function(a){for(var c=[],d=[];a.length;){var e=a.pop();if(F(e)){if(this.refSet.has(e))continue;try{var f=e;this.refSet.put(f),e=this.xref.fetch(e)}catch(g){if(!(g instanceof ja))throw g;c.push(e),d.push({begin:g.begin,end:g.end})}}if(e&&e.getBaseStreams){for(var h=e.getBaseStreams(),i=!1,j=0;j<h.length;j++){var k=h[j];k.getMissingChunks&&k.getMissingChunks().length&&(i=!0,d.push({begin:k.start,end:k.end}))}i&&c.push(e)}b(e,a)}return d.length?void this.xref.stream.manager.requestRanges(d).then(function(){a=c;for(var b=0;b<c.length;b++){var d=c[b];F(d)&&this.refSet.remove(d)}this._walk(a)}.bind(this),this.capability.reject):(this.refSet=null,void this.capability.resolve())}},c}(),Ja=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],Ka=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],La=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"],Ma=22;I.prototype={create:function(a,c){var d=a.fetchIfRef(c);if(B(d)){var e=d.get("Subtype");e=z(e)?e.name:"";var f={dict:d,ref:c};switch(e){case"Link":return new Sa(f);case"Text":return new Ra(f);case"Widget":var g=na.getInheritableProperty(d,"FT");return z(g)&&"Tx"===g.name?new Qa(f):new Pa(f);default:return b('Unimplemented annotation type "'+e+'", falling back to base annotation'),new Na(f)}}}};var Na=function(){function a(a,b,c){var d=na.getAxialAlignedBoundingBox(b,c),e=d[0],f=d[1],g=d[2],h=d[3];if(e===g||f===h)return[1,0,0,1,a[0],a[1]];var i=(a[2]-a[0])/(g-e),j=(a[3]-a[1])/(h-f);return[i,0,0,j,a[0]-e*i,a[1]-f*j]}function b(a){var b=a.get("AP");if(B(b)){var c,d=b.get("N");if(B(d)){var e=a.get("AS");e&&d.has(e.name)&&(c=d.get(e.name))}else c=d;return c}}function c(a){var c=a.dict,d=this.data={};d.subtype=c.get("Subtype").name,d.annotationFlags=c.get("F"),this.setRectangle(c.get("Rect")),d.rect=this.rectangle,this.setColor(c.get("C")),d.color=this.color,this.borderStyle=d.borderStyle=new Oa,this.setBorderStyle(c),this.appearance=b(c),d.hasAppearance=!!this.appearance,d.id=a.ref.num}return c.prototype={setRectangle:function(a){C(a)&&4===a.length?this.rectangle=na.normalizeRect(a):this.rectangle=[0,0,0,0]},setColor:function(a){var b=new Uint8Array(3);if(!C(a))return void(this.color=b);switch(a.length){case 0:this.color=null;break;case 1:Xa.singletons.gray.getRgbItem(a,0,b,0),this.color=b;break;case 3:Xa.singletons.rgb.getRgbItem(a,0,b,0),this.color=b;break;case 4:Xa.singletons.cmyk.getRgbItem(a,0,b,0),this.color=b;break;default:this.color=b}},setBorderStyle:function(a){if(B(a))if(a.has("BS")){var b,c=a.get("BS");(!c.has("Type")||z(b=c.get("Type"))&&"Border"===b.name)&&(this.borderStyle.setWidth(c.get("W")),this.borderStyle.setStyle(c.get("S")),this.borderStyle.setDashArray(c.get("D")))}else if(a.has("Border")){var d=a.get("Border");C(d)&&d.length>=3&&(this.borderStyle.setHorizontalCornerRadius(d[0]),this.borderStyle.setVerticalCornerRadius(d[1]),this.borderStyle.setWidth(d[2]),4===d.length&&this.borderStyle.setDashArray(d[3]))}else this.borderStyle.setWidth(0)},isInvisible:function(){var a=this.data;return!!(a&&a.annotationFlags&&1&a.annotationFlags)},isViewable:function(){var a=this.data;return!(this.isInvisible()||!a||a.annotationFlags&&34&a.annotationFlags||!a.rect)},isPrintable:function(){var a=this.data;return!(!(!this.isInvisible()&&a&&a.annotationFlags&&4&a.annotationFlags)||2&a.annotationFlags||!a.rect)},loadResources:function(a){return new Promise(function(b,c){this.appearance.dict.getAsync("Resources").then(function(d){if(!d)return void b();var e=new Ia(d.map,a,d.xref);e.load().then(function(){b(d)},c)},c)}.bind(this))},getOperatorList:function(b,c){if(!this.appearance)return Promise.resolve(new xb);var d=this.data,e=this.appearance.dict,f=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),g=e.get("BBox")||[0,0,1,1],h=e.get("Matrix")||[1,0,0,1,0,0],i=a(d.rect,g,h),j=this;return f.then(function(a){var e=new xb;return e.addOp($.beginAnnotation,[d.rect,i,h]),b.getOperatorList(j.appearance,c,a,e).then(function(){return e.addOp($.endAnnotation,[]),j.appearance.reset(),e})})}},c.appendToOperatorList=function(a,b,c,d,e,f){function g(a){h.reject(a)}for(var h=G(),i=[],j=0,k=a.length;k>j;++j)("display"===f&&a[j].isViewable()||"print"===f&&a[j].isPrintable())&&i.push(a[j].getOperatorList(d,e));return Promise.all(i).then(function(a){b.addOp($.beginAnnotations,[]);for(var c=0,d=a.length;d>c;++c){var e=a[c];b.addOpList(e)}b.addOp($.endAnnotations,[]),h.resolve()},g),h.promise},c}(),Oa=function(){function a(){this.width=1,this.style=X.SOLID,this.dashArray=[3],this.horizontalCornerRadius=0,this.verticalCornerRadius=0}return a.prototype={setWidth:function(a){a===(0|a)&&(this.width=a)},setStyle:function(a){if(a)switch(a.name){case"S":this.style=X.SOLID;break;case"D":this.style=X.DASHED;break;case"B":this.style=X.BEVELED;break;case"I":this.style=X.INSET;break;case"U":this.style=X.UNDERLINE}},setDashArray:function(a){if(C(a)&&a.length>0){for(var b=!0,c=!0,d=0,e=a.length;e>d;d++){var f=a[d],g=+f>=0;if(!g){b=!1;break}f>0&&(c=!1)}b&&!c?this.dashArray=a:this.width=0}else a&&(this.width=0)},setHorizontalCornerRadius:function(a){a===(0|a)&&(this.horizontalCornerRadius=a)},setVerticalCornerRadius:function(a){a===(0|a)&&(this.verticalCornerRadius=a)}},a}(),Pa=function(){function a(a){Na.call(this,a);var b=a.dict,c=this.data;c.fieldValue=r(na.getInheritableProperty(b,"V")||""),c.alternativeText=r(b.get("TU")||""),c.defaultAppearance=na.getInheritableProperty(b,"DA")||"";var d=na.getInheritableProperty(b,"FT");c.fieldType=z(d)?d.name:"",c.fieldFlags=na.getInheritableProperty(b,"Ff")||0,this.fieldResources=na.getInheritableProperty(b,"DR")||Aa.empty;for(var e=[],f=b,g=a.ref;f;){var h=f.get("Parent"),i=f.getRaw("Parent"),j=f.get("T");if(j)e.unshift(r(j));else if(h&&g){var k,l,m=h.get("Kids");for(k=0,l=m.length;l>k;k++){var n=m[k];if(n.num===g.num&&n.gen===g.gen)break}e.unshift("`"+k)}f=h,g=i}c.fullName=e.join(".")}var c=Na.prototype;return na.inherit(a,Na,{isViewable:function(){return"Sig"===this.data.fieldType?(b("unimplemented annotation type: Widget signature"),!1):c.isViewable.call(this)}}),a}(),Qa=function(){function a(a){Pa.call(this,a),this.data.textAlignment=na.getInheritableProperty(a.dict,"Q"),this.data.annotationType=W.WIDGET,this.data.hasHtml=!this.data.hasAppearance&&!!this.data.fieldValue}return na.inherit(a,Pa,{getOperatorList:function(a,b){if(this.appearance)return Na.prototype.getOperatorList.call(this,a,b);var c=new xb,d=this.data;if(!d.defaultAppearance)return Promise.resolve(c);var e=new Mc(j(d.defaultAppearance));return a.getOperatorList(e,b,this.fieldResources,c).then(function(){return c})}}),a}(),Ra=function(){function a(a){Na.call(this,a);var b=a.dict,c=this.data,d=b.get("Contents"),e=b.get("T");c.annotationType=W.TEXT,c.content=r(d||""),c.title=r(e||""),c.hasHtml=!0,c.hasAppearance?c.name="NoIcon":(c.rect[1]=c.rect[3]-Ma,c.rect[2]=c.rect[0]+Ma,c.name=b.has("Name")?b.get("Name").name:"Note"),b.has("C")&&(c.hasBgColor=!0)}return na.inherit(a,Na,{}),a}(),Sa=function(){function a(a){Na.call(this,a);var d=a.dict,e=this.data;e.annotationType=W.LINK,e.hasHtml=!0;var g=d.get("A");if(g&&B(g)){var h=g.get("S").name;if("URI"===h){var i=g.get("URI");z(i)?i="/"+i.name:i&&(i=c(i)),f(i,!1)||(i="");try{e.url=s(i)}catch(j){e.url=i}}else if("GoTo"===h)e.dest=g.get("D");else if("GoToR"===h){var k=g.get("F");B(k)&&(i=k.get("F")||""),f(i,!1)||(i=""),e.url=i,e.dest=g.get("D")}else"Named"===h?e.action=g.get("N").name:b("unrecognized link type: "+h)}else if(d.has("Dest")){var l=d.get("Dest");e.dest=z(l)?l.name:l}}function c(a){return a&&0===a.indexOf("www.")?"http://"+a:a}return na.inherit(a,Na,{}),a}(),Ta=function(){var b=0,d=2,e=3,f=4;return{getSampleArray:function(a,b,c,d){var e,f,g=1;for(e=0,f=a.length;f>e;e++)g*=a[e];g*=b;var h=new Array(g),i=0,j=0,k=1/(Math.pow(2,c)-1),l=d.getBytes((g*c+7)/8),m=0;for(e=0;g>e;e++){for(;c>i;)j<<=8,j|=l[m++],i+=8;i-=c,h[e]=(j>>i)*k,j&=(1<<i)-1}return h},getIR:function(a,b){var d=b.dict;d||(d=b);var e=[this.constructSampled,null,this.constructInterpolated,this.constructStiched,this.constructPostScript],f=d.get("FunctionType"),g=e[f];return g||c("Unknown type of function"),g.call(this,b,d,a)},fromIR:function(a){var c=a[0];switch(c){case b:return this.constructSampledFromIR(a);case d:return this.constructInterpolatedFromIR(a);case e:return this.constructStichedFromIR(a);default:return this.constructPostScriptFromIR(a)}},parse:function(a,b){var c=this.getIR(a,b);return this.fromIR(c)},parseArray:function(a,b){if(!C(b))return this.parse(a,b);for(var c=[],d=0,e=b.length;e>d;d++){var f=a.fetchIfRef(b[d]);c.push(Ta.parse(a,f))}return function(a,b,d,e){for(var f=0,g=c.length;g>f;f++)c[f](a,b,d,e+f)}},constructSampled:function(d,e){function f(a){for(var b=a.length,c=[],d=0,e=0;b>e;e+=2)c[d]=[a[e],a[e+1]],++d;return c}var g=e.get("Domain"),h=e.get("Range");g&&h||c("No domain or range");var i=g.length/2,j=h.length/2;g=f(g),h=f(h);var k=e.get("Size"),l=e.get("BitsPerSample"),m=e.get("Order")||1;1!==m&&a("No support for cubic spline interpolation: "+m);var n=e.get("Encode");if(!n){n=[];for(var o=0;i>o;++o)n.push(0),n.push(k[o]-1)}n=f(n);var p=e.get("Decode");p=p?f(p):h;var q=this.getSampleArray(k,j,l,d);return[b,i,g,n,p,q,k,j,Math.pow(2,l)-1,h]},constructSampledFromIR:function(a){function b(a,b,c,d,e){return d+(a-b)*((e-d)/(c-b))}return function(c,d,e,f){var g,h,i=a[1],j=a[2],k=a[3],l=a[4],m=a[5],n=a[6],o=a[7],p=a[9],q=1<<i,r=new Float64Array(q),s=new Uint32Array(q);for(h=0;q>h;h++)r[h]=1;var t=o,u=1;for(g=0;i>g;++g){var v=j[g][0],w=j[g][1],x=Math.min(Math.max(c[d+g],v),w),y=b(x,v,w,k[g][0],k[g][1]),z=n[g];y=Math.min(Math.max(y,0),z-1);var A=z-1>y?Math.floor(y):y-1,B=A+1-y,C=y-A,D=A*t,E=D+t;for(h=0;q>h;h++)h&u?(r[h]*=C,s[h]+=E):(r[h]*=B,s[h]+=D);t*=z,u<<=1}for(h=0;o>h;++h){var F=0;for(g=0;q>g;g++)F+=m[s[g]+h]*r[g];F=b(F,0,1,l[h][0],l[h][1]),e[f+h]=Math.min(Math.max(F,p[h][0]),p[h][1])}}},constructInterpolated:function(a,b){var e=b.get("C0")||[0],f=b.get("C1")||[1],g=b.get("N");C(e)&&C(f)||c("Illegal dictionary for interpolated function");for(var h=e.length,i=[],j=0;h>j;++j)i.push(f[j]-e[j]);return[d,e,i,g]},constructInterpolatedFromIR:function(a){var b=a[1],c=a[2],d=a[3],e=c.length;return function(a,f,g,h){for(var i=1===d?a[f]:Math.pow(a[f],d),j=0;e>j;++j)g[h+j]=b[j]+i*c[j]}},constructStiched:function(a,b,d){var f=b.get("Domain");f||c("No domain");var g=f.length/2;1!==g&&c("Bad domain for stiched function");for(var h=b.get("Functions"),i=[],j=0,k=h.length;k>j;++j)i.push(Ta.getIR(d,d.fetchIfRef(h[j])));var l=b.get("Bounds"),m=b.get("Encode");return[e,f,l,m,i]},constructStichedFromIR:function(a){for(var b=a[1],c=a[2],d=a[3],e=a[4],f=[],g=new Float32Array(1),h=0,i=e.length;i>h;h++)f.push(Ta.fromIR(e[h]));return function(a,e,h,i){for(var j=function(a,b,c){return a>c?a=c:b>a&&(a=b),a},k=j(a[e],b[0],b[1]),l=0,m=c.length;m>l&&!(k<c[l]);++l);var n=b[0];l>0&&(n=c[l-1]);var o=b[1];l<c.length&&(o=c[l]);var p=d[2*l],q=d[2*l+1];g[0]=n===o?p:p+(k-n)*(q-p)/(o-n),f[l](g,0,h,i)}},constructPostScript:function(a,b,d){var e=b.get("Domain"),g=b.get("Range");e||c("No domain."),g||c("No range.");var h=new Lc(a),i=new Ic(h),j=i.parse();return[f,e,g,j]},constructPostScriptFromIR:function(b){var c=b[1],d=b[2],e=b[3],f=(new Wa).compile(e,c,d);if(f)return new Function("src","srcOffset","dest","destOffset",f);a("Unable to compile PS function");var g=d.length>>1,h=c.length>>1,i=new Va(e),j={},k=8192,l=k,m=new Float32Array(h);return function(a,b,c,e){var f,k,n="",o=m;for(f=0;h>f;f++)k=a[b+f],o[f]=k,n+=k+"_";var p=j[n];if(void 0!==p)return void c.set(p,e);var q=new Float32Array(g),r=i.execute(o),s=r.length-g;for(f=0;g>f;f++){k=r[s+f];var t=d[2*f];t>k?k=t:(t=d[2*f+1],k>t&&(k=t)),q[f]=k}l>0&&(l--,j[n]=q),c.set(q,e)}}}}(),Ua=function(){function a(a){this.stack=a?Array.prototype.slice.call(a,0):[]}var b=100;return a.prototype={push:function(a){this.stack.length>=b&&c("PostScript function stack overflow."),this.stack.push(a)},pop:function(){return this.stack.length<=0&&c("PostScript function stack underflow."),this.stack.pop()},copy:function(a){this.stack.length+a>=b&&c("PostScript function stack overflow.");for(var d=this.stack,e=d.length-a,f=a-1;f>=0;f--,e++)d.push(d[e])},index:function(a){
-this.push(this.stack[this.stack.length-a-1])},roll:function(a,b){var c,d,e,f=this.stack,g=f.length-a,h=f.length-1,i=g+(b-Math.floor(b/a)*a);for(c=g,d=h;d>c;c++,d--)e=f[c],f[c]=f[d],f[d]=e;for(c=g,d=i-1;d>c;c++,d--)e=f[c],f[c]=f[d],f[d]=e;for(c=i,d=h;d>c;c++,d--)e=f[c],f[c]=f[d],f[d]=e}},a}(),Va=function(){function a(a){this.operators=a}return a.prototype={execute:function(a){for(var b,d,e,f=new Ua(a),g=0,h=this.operators,i=h.length;i>g;)if(b=h[g++],"number"!=typeof b)switch(b){case"jz":e=f.pop(),d=f.pop(),d||(g=e);break;case"j":d=f.pop(),g=d;break;case"abs":d=f.pop(),f.push(Math.abs(d));break;case"add":e=f.pop(),d=f.pop(),f.push(d+e);break;case"and":e=f.pop(),d=f.pop(),v(d)&&v(e)?f.push(d&&e):f.push(d&e);break;case"atan":d=f.pop(),f.push(Math.atan(d));break;case"bitshift":e=f.pop(),d=f.pop(),d>0?f.push(d<<e):f.push(d>>e);break;case"ceiling":d=f.pop(),f.push(Math.ceil(d));break;case"copy":d=f.pop(),f.copy(d);break;case"cos":d=f.pop(),f.push(Math.cos(d));break;case"cvi":d=0|f.pop(),f.push(d);break;case"cvr":break;case"div":e=f.pop(),d=f.pop(),f.push(d/e);break;case"dup":f.copy(1);break;case"eq":e=f.pop(),d=f.pop(),f.push(d===e);break;case"exch":f.roll(2,1);break;case"exp":e=f.pop(),d=f.pop(),f.push(Math.pow(d,e));break;case"false":f.push(!1);break;case"floor":d=f.pop(),f.push(Math.floor(d));break;case"ge":e=f.pop(),d=f.pop(),f.push(d>=e);break;case"gt":e=f.pop(),d=f.pop(),f.push(d>e);break;case"idiv":e=f.pop(),d=f.pop(),f.push(d/e|0);break;case"index":d=f.pop(),f.index(d);break;case"le":e=f.pop(),d=f.pop(),f.push(e>=d);break;case"ln":d=f.pop(),f.push(Math.log(d));break;case"log":d=f.pop(),f.push(Math.log(d)/Math.LN10);break;case"lt":e=f.pop(),d=f.pop(),f.push(e>d);break;case"mod":e=f.pop(),d=f.pop(),f.push(d%e);break;case"mul":e=f.pop(),d=f.pop(),f.push(d*e);break;case"ne":e=f.pop(),d=f.pop(),f.push(d!==e);break;case"neg":d=f.pop(),f.push(-d);break;case"not":d=f.pop(),v(d)?f.push(!d):f.push(~d);break;case"or":e=f.pop(),d=f.pop(),v(d)&&v(e)?f.push(d||e):f.push(d|e);break;case"pop":f.pop();break;case"roll":e=f.pop(),d=f.pop(),f.roll(d,e);break;case"round":d=f.pop(),f.push(Math.round(d));break;case"sin":d=f.pop(),f.push(Math.sin(d));break;case"sqrt":d=f.pop(),f.push(Math.sqrt(d));break;case"sub":e=f.pop(),d=f.pop(),f.push(d-e);break;case"true":f.push(!0);break;case"truncate":d=f.pop(),d=0>d?Math.ceil(d):Math.floor(d),f.push(d);break;case"xor":e=f.pop(),d=f.pop(),v(d)&&v(e)?f.push(d!==e):f.push(d^e);break;default:c("Unknown operator "+b)}else f.push(b);return f.stack}},a}(),Wa=function(){function a(a){this.type=a}function b(b,c,d){a.call(this,"args"),this.index=b,this.min=c,this.max=d}function c(b){a.call(this,"literal"),this.number=b,this.min=b,this.max=b}function d(b,c,d,e,f){a.call(this,"binary"),this.op=b,this.arg1=c,this.arg2=d,this.min=e,this.max=f}function e(b,c){a.call(this,"max"),this.arg=b,this.min=b.min,this.max=c}function f(b,c,d){a.call(this,"var"),this.index=b,this.min=c,this.max=d}function g(b,c){a.call(this,"definition"),this.variable=b,this.arg=c}function h(){this.parts=[]}function i(a,b){return"literal"===b.type&&0===b.number?a:"literal"===a.type&&0===a.number?b:"literal"===b.type&&"literal"===a.type?new c(a.number+b.number):new d("+",a,b,a.min+b.min,a.max+b.max)}function j(a,b){if("literal"===b.type){if(0===b.number)return new c(0);if(1===b.number)return a;if("literal"===a.type)return new c(a.number*b.number)}if("literal"===a.type){if(0===a.number)return new c(0);if(1===a.number)return b}var e=Math.min(a.min*b.min,a.min*b.max,a.max*b.min,a.max*b.max),f=Math.max(a.min*b.min,a.min*b.max,a.max*b.min,a.max*b.max);return new d("*",a,b,e,f)}function k(a,b){if("literal"===b.type){if(0===b.number)return a;if("literal"===a.type)return new c(a.number-b.number)}return"binary"===b.type&&"-"===b.op&&"literal"===a.type&&1===a.number&&"literal"===b.arg1.type&&1===b.arg1.number?b.arg2:new d("-",a,b,a.min-b.max,a.max-b.min)}function l(a,b){return a.min>=b?new c(b):a.max<=b?a:new e(a,b)}function m(){}return a.prototype.visit=function(a){throw new Error("abstract method")},b.prototype=Object.create(a.prototype),b.prototype.visit=function(a){a.visitArgument(this)},c.prototype=Object.create(a.prototype),c.prototype.visit=function(a){a.visitLiteral(this)},d.prototype=Object.create(a.prototype),d.prototype.visit=function(a){a.visitBinaryOperation(this)},e.prototype=Object.create(a.prototype),e.prototype.visit=function(a){a.visitMin(this)},f.prototype=Object.create(a.prototype),f.prototype.visit=function(a){a.visitVariable(this)},g.prototype=Object.create(a.prototype),g.prototype.visit=function(a){a.visitVariableDefinition(this)},h.prototype={visitArgument:function(a){this.parts.push("Math.max(",a.min,", Math.min(",a.max,", src[srcOffset + ",a.index,"]))")},visitVariable:function(a){this.parts.push("v",a.index)},visitLiteral:function(a){this.parts.push(a.number)},visitBinaryOperation:function(a){this.parts.push("("),a.arg1.visit(this),this.parts.push(" ",a.op," "),a.arg2.visit(this),this.parts.push(")")},visitVariableDefinition:function(a){this.parts.push("var "),a.variable.visit(this),this.parts.push(" = "),a.arg.visit(this),this.parts.push(";")},visitMin:function(a){this.parts.push("Math.min("),a.arg.visit(this),this.parts.push(", ",a.max,")")},toString:function(){return this.parts.join("")}},m.prototype={compile:function(a,d,e){var m,n,o,p,q,r,s,t,u,v,w=[],x=[],y=d.length>>1,z=e.length>>1,A=0;for(m=0;y>m;m++)w.push(new b(m,d[2*m],d[2*m+1]));for(m=0,n=a.length;n>m;m++)if(v=a[m],"number"!=typeof v)switch(v){case"add":if(w.length<2)return null;r=w.pop(),q=w.pop(),w.push(i(q,r));break;case"cvr":if(w.length<1)return null;break;case"mul":if(w.length<2)return null;r=w.pop(),q=w.pop(),w.push(j(q,r));break;case"sub":if(w.length<2)return null;r=w.pop(),q=w.pop(),w.push(k(q,r));break;case"exch":if(w.length<2)return null;s=w.pop(),t=w.pop(),w.push(s,t);break;case"pop":if(w.length<1)return null;w.pop();break;case"index":if(w.length<1)return null;if(q=w.pop(),"literal"!==q.type)return null;if(o=q.number,0>o||(0|o)!==o||w.length<o)return null;if(s=w[w.length-o-1],"literal"===s.type||"var"===s.type){w.push(s);break}u=new f(A++,s.min,s.max),w[w.length-o-1]=u,w.push(u),x.push(new g(u,s));break;case"dup":if(w.length<1)return null;if("number"==typeof a[m+1]&&"gt"===a[m+2]&&a[m+3]===m+7&&"jz"===a[m+4]&&"pop"===a[m+5]&&a[m+6]===a[m+1]){q=w.pop(),w.push(l(q,a[m+1])),m+=6;break}if(s=w[w.length-1],"literal"===s.type||"var"===s.type){w.push(s);break}u=new f(A++,s.min,s.max),w[w.length-1]=u,w.push(u),x.push(new g(u,s));break;case"roll":if(w.length<2)return null;if(r=w.pop(),q=w.pop(),"literal"!==r.type||"literal"!==q.type)return null;if(p=r.number,o=q.number,0>=o||(0|o)!==o||(0|p)!==p||w.length<o)return null;if(p=(p%o+o)%o,0===p)break;Array.prototype.push.apply(w,w.splice(w.length-o,o-p));break;default:return null}else w.push(new c(v));if(w.length!==z)return null;var B=[];return x.forEach(function(a){var b=new h;a.visit(b),B.push(b.toString())}),w.forEach(function(a,b){var c=new h;a.visit(c);var d=e[2*b],f=e[2*b+1],g=[c.toString()];d>a.min&&(g.unshift("Math.max(",d,", "),g.push(")")),f<a.max&&(g.unshift("Math.min(",f,", "),g.push(")")),g.unshift("dest[destOffset + ",b,"] = "),g.push(";"),B.push(g.join(""))}),B.join("\n")}},m}(),Xa=function(){function a(){c("should not call ColorSpace constructor")}return a.prototype={getRgb:function(a,b){var c=new Uint8Array(3);return this.getRgbItem(a,b,c,0),c},getRgbItem:function(a,b,d,e){c("Should not call ColorSpace.getRgbItem")},getRgbBuffer:function(a,b,d,e,f,g,h){c("Should not call ColorSpace.getRgbBuffer")},getOutputLength:function(a,b){c("Should not call ColorSpace.getOutputLength")},isPassthrough:function(a){return!1},fillRgb:function(a,b,c,d,e,f,g,h,i){var j,k,l=b*c,m=null,n=1<<g,o=c!==e||b!==d;if(this.isPassthrough(g))m=h;else if(1===this.numComps&&l>n&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){var p,q=8>=g?new Uint8Array(n):new Uint16Array(n);for(j=0;n>j;j++)q[j]=j;var r=new Uint8Array(3*n);this.getRgbBuffer(q,0,n,r,0,g,0);var s,t;if(o)for(m=new Uint8Array(3*l),t=0,j=0;l>j;++j)p=3*h[j],m[t++]=r[p],m[t++]=r[p+1],m[t++]=r[p+2];else for(s=0,j=0;l>j;++j)p=3*h[j],a[s++]=r[p],a[s++]=r[p+1],a[s++]=r[p+2],s+=i}else o?(m=new Uint8Array(3*l),this.getRgbBuffer(h,0,l,m,0,g,0)):this.getRgbBuffer(h,0,d*f,a,0,g,i);if(m)if(o)Bc.resize(m,g,3,b,c,d,e,a,i);else for(t=0,s=0,j=0,k=d*f;k>j;j++)a[s++]=m[t++],a[s++]=m[t++],a[s++]=m[t++],s+=i},usesZeroToOneRange:!0},a.parse=function(b,c,d){var e=a.parseToIR(b,c,d);return e instanceof Ya?e:a.fromIR(e)},a.fromIR=function(b){var d,e,f,g=C(b)?b[0]:b;switch(g){case"DeviceGrayCS":return this.singletons.gray;case"DeviceRgbCS":return this.singletons.rgb;case"DeviceCmykCS":return this.singletons.cmyk;case"CalGrayCS":return d=b[1].WhitePoint,e=b[1].BlackPoint,f=b[1].Gamma,new cb(d,e,f);case"CalRGBCS":d=b[1].WhitePoint,e=b[1].BlackPoint,f=b[1].Gamma;var h=b[1].Matrix;return new db(d,e,f,h);case"PatternCS":var i=b[1];return i&&(i=a.fromIR(i)),new Za(i);case"IndexedCS":var j=b[1],k=b[2],l=b[3];return new $a(a.fromIR(j),k,l);case"AlternateCS":var m=b[1],n=b[2],o=b[3];return new Ya(m,a.fromIR(n),Ta.fromIR(o));case"LabCS":d=b[1].WhitePoint,e=b[1].BlackPoint;var p=b[1].Range;return new eb(d,e,p);default:c("Unknown name "+g)}return null},a.parseToIR=function(d,e,f){if(z(d)){var g=f.get("ColorSpace");if(B(g)){var h=g.get(d.name);h&&(d=h)}}d=e.fetchIfRef(d);var i;if(z(d))switch(i=d.name,this.mode=i,i){case"DeviceGray":case"G":return"DeviceGrayCS";case"DeviceRGB":case"RGB":return"DeviceRgbCS";case"DeviceCMYK":case"CMYK":return"DeviceCmykCS";case"Pattern":return["PatternCS",null];default:c("unrecognized colorspace "+i)}else if(C(d)){i=e.fetchIfRef(d[0]).name,this.mode=i;var j,k,l;switch(i){case"DeviceGray":case"G":return"DeviceGrayCS";case"DeviceRGB":case"RGB":return"DeviceRgbCS";case"DeviceCMYK":case"CMYK":return"DeviceCmykCS";case"CalGray":return k=e.fetchIfRef(d[1]).getAll(),["CalGrayCS",k];case"CalRGB":return k=e.fetchIfRef(d[1]).getAll(),["CalRGBCS",k];case"ICCBased":var m=e.fetchIfRef(d[1]),n=m.dict;if(j=n.get("N"),l=n.get("Alternate")){var o=a.parseToIR(l,e,f),p=a.fromIR(o);if(p.numComps===j)return o;b("ICCBased color space: Ignoring incorrect /Alternate entry.")}if(1===j)return"DeviceGrayCS";if(3===j)return"DeviceRgbCS";if(4===j)return"DeviceCmykCS";break;case"Pattern":var q=d[1]||null;return q&&(q=a.parseToIR(q,e,f)),["PatternCS",q];case"Indexed":case"I":var r=a.parseToIR(d[1],e,f),s=e.fetchIfRef(d[2])+1,t=e.fetchIfRef(d[3]);return D(t)&&(t=t.getBytes()),["IndexedCS",r,s,t];case"Separation":case"DeviceN":var u=e.fetchIfRef(d[1]);j=1,z(u)?j=1:C(u)&&(j=u.length),l=a.parseToIR(d[2],e,f);var v=Ta.getIR(e,e.fetchIfRef(d[3]));return["AlternateCS",j,l,v];case"Lab":return k=e.fetchIfRef(d[1]).getAll(),["LabCS",k];default:c('unimplemented color space object "'+i+'"')}}else c('unrecognized color space object: "'+d+'"');return null},a.isDefaultDecode=function(a,c){if(!C(a))return!0;if(2*c!==a.length)return b("The decode map is not the correct length"),!0;for(var d=0,e=a.length;e>d;d+=2)if(0!==a[d]||1!==a[d+1])return!1;return!0},a.singletons={get gray(){return g(this,"gray",new _a)},get rgb(){return g(this,"rgb",new ab)},get cmyk(){return g(this,"cmyk",new bb)}},a}(),Ya=function(){function a(a,b,c){this.name="Alternate",this.numComps=a,this.defaultColor=new Float32Array(a);for(var d=0;a>d;++d)this.defaultColor[d]=1;this.base=b,this.tintFn=c,this.tmpBuf=new Float32Array(b.numComps)}return a.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=this.tmpBuf;this.tintFn(a,b,e,0),this.base.getRgbItem(e,0,c,d)},getRgbBuffer:function(a,b,c,d,e,f,g){var h,i,j=this.tintFn,k=this.base,l=1/((1<<f)-1),m=k.numComps,n=k.usesZeroToOneRange,o=(k.isPassthrough(8)||!n)&&0===g,p=o?e:0,q=o?d:new Uint8Array(m*c),r=this.numComps,s=new Float32Array(r),t=new Float32Array(m);if(n)for(h=0;c>h;h++){for(i=0;r>i;i++)s[i]=a[b++]*l;for(j(s,0,t,0),i=0;m>i;i++)q[p++]=255*t[i]}else for(h=0;c>h;h++){for(i=0;r>i;i++)s[i]=a[b++]*l;j(s,0,t,0),k.getRgbItem(t,0,q,p),p+=m}o||k.getRgbBuffer(q,0,c,d,e,8,g)},getOutputLength:function(a,b){return this.base.getOutputLength(a*this.base.numComps/this.numComps,b)},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},a}(),Za=function(){function a(a){this.name="Pattern",this.base=a}return a.prototype={},a}(),$a=function(){function a(a,b,d){this.name="Indexed",this.numComps=1,this.defaultColor=new Uint8Array([0]),this.base=a,this.highVal=b;var e,f=a.numComps,g=f*b;if(D(d)){e=new Uint8Array(g);var h=d.getBytes(g);e.set(h)}else if(y(d)){e=new Uint8Array(g);for(var i=0;g>i;++i)e[i]=d.charCodeAt(i)}else d instanceof Uint8Array||d instanceof Array?e=d:c("Unrecognized lookup table: "+d);this.lookup=e}return a.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=this.base.numComps,f=a[b]*e;this.base.getRgbItem(this.lookup,f,c,d)},getRgbBuffer:function(a,b,c,d,e,f,g){for(var h=this.base,i=h.numComps,j=h.getOutputLength(i,g),k=this.lookup,l=0;c>l;++l){var m=a[b++]*i;h.getRgbBuffer(k,m,1,d,e,8,g),e+=j}},getOutputLength:function(a,b){return this.base.getOutputLength(a*this.base.numComps,b)},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return!0},usesZeroToOneRange:!0},a}(),_a=function(){function a(){this.name="DeviceGray",this.numComps=1,this.defaultColor=new Float32Array([0])}return a.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=255*a[b]|0;e=0>e?0:e>255?255:e,c[d]=c[d+1]=c[d+2]=e},getRgbBuffer:function(a,b,c,d,e,f,g){for(var h=255/((1<<f)-1),i=b,j=e,k=0;c>k;++k){var l=h*a[i++]|0;d[j++]=l,d[j++]=l,d[j++]=l,j+=g}},getOutputLength:function(a,b){return a*(3+b)},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},a}(),ab=function(){function a(){this.name="DeviceRGB",this.numComps=3,this.defaultColor=new Float32Array([0,0,0])}return a.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=255*a[b]|0,f=255*a[b+1]|0,g=255*a[b+2]|0;c[d]=0>e?0:e>255?255:e,c[d+1]=0>f?0:f>255?255:f,c[d+2]=0>g?0:g>255?255:g},getRgbBuffer:function(a,b,c,d,e,f,g){if(8===f&&0===g)return void d.set(a.subarray(b,b+3*c),e);for(var h=255/((1<<f)-1),i=b,j=e,k=0;c>k;++k)d[j++]=h*a[i++]|0,d[j++]=h*a[i++]|0,d[j++]=h*a[i++]|0,j+=g},getOutputLength:function(a,b){return a*(3+b)/3|0},isPassthrough:function(a){return 8===a},fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},a}(),bb=function(){function a(a,b,c,d,e){var f=a[b+0]*c,g=a[b+1]*c,h=a[b+2]*c,i=a[b+3]*c,j=f*(-4.387332384609988*f+54.48615194189176*g+18.82290502165302*h+212.25662451639585*i+-285.2331026137004)+g*(1.7149763477362134*g-5.6096736904047315*h+-17.873870861415444*i-5.497006427196366)+h*(-2.5217340131683033*h-21.248923337353073*i+17.5119270841813)+i*(-21.86122147463605*i-189.48180835922747)+255|0,k=f*(8.841041422036149*f+60.118027045597366*g+6.871425592049007*h+31.159100130055922*i+-79.2970844816548)+g*(-15.310361306967817*g+17.575251261109482*h+131.35250912493976*i-190.9453302588951)+h*(4.444339102852739*h+9.8632861493405*i-24.86741582555878)+i*(-20.737325471181034*i-187.80453709719578)+255|0,l=f*(.8842522430003296*f+8.078677503112928*g+30.89978309703729*h-.23883238689178934*i+-14.183576799673286)+g*(10.49593273432072*g+63.02378494754052*h+50.606957656360734*i-112.23884253719248)+h*(.03296041114873217*h+115.60384449646641*i+-193.58209356861505)+i*(-22.33816807309886*i-180.12613974708367)+255|0;d[e]=j>255?255:0>j?0:j,d[e+1]=k>255?255:0>k?0:k,d[e+2]=l>255?255:0>l?0:l}function b(){this.name="DeviceCMYK",this.numComps=4,this.defaultColor=new Float32Array([0,0,0,1])}return b.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(b,c,d,e){a(b,c,1,d,e)},getRgbBuffer:function(b,c,d,e,f,g,h){for(var i=1/((1<<g)-1),j=0;d>j;j++)a(b,c,i,e,f),c+=4,f+=3+h},getOutputLength:function(a,b){return a/4*(3+b)|0},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},b}(),cb=function(){function d(d,e,f){this.name="CalGray",this.numComps=1,this.defaultColor=new Float32Array([0]),d||c("WhitePoint missing - required for color space CalGray"),e=e||[0,0,0],f=f||1,this.XW=d[0],this.YW=d[1],this.ZW=d[2],this.XB=e[0],this.YB=e[1],this.ZB=e[2],this.G=f,(this.XW<0||this.ZW<0||1!==this.YW)&&c("Invalid WhitePoint components for "+this.name+", no fallback available"),(this.XB<0||this.YB<0||this.ZB<0)&&(a("Invalid BlackPoint for "+this.name+", falling back to default"),this.XB=this.YB=this.ZB=0),(0!==this.XB||0!==this.YB||0!==this.ZB)&&b(this.name+", BlackPoint: XB: "+this.XB+", YB: "+this.YB+", ZB: "+this.ZB+", only default values are supported."),this.G<1&&(a("Invalid Gamma: "+this.G+" for "+this.name+", falling back to default"),this.G=1)}function e(a,b,c,d,e,f){var g=b[c]*f,h=Math.pow(g,a.G),i=a.YW*h,j=0|Math.max(295.8*Math.pow(i,.3333333333333333)-40.8,0);d[e]=j,d[e+1]=j,d[e+2]=j}return d.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){e(this,a,b,c,d,1)},getRgbBuffer:function(a,b,c,d,f,g,h){for(var i=1/((1<<g)-1),j=0;c>j;++j)e(this,a,b,d,f,i),b+=1,f+=3+h},getOutputLength:function(a,b){return a*(3+b)},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},d}(),db=function(){function b(b,d,e,f){this.name="CalRGB",this.numComps=3,this.defaultColor=new Float32Array(3),b||c("WhitePoint missing - required for color space CalRGB"),d=d||new Float32Array(3),e=e||new Float32Array([1,1,1]),f=f||new Float32Array([1,0,0,0,1,0,0,0,1]);var g=b[0],h=b[1],i=b[2];this.whitePoint=b;var j=d[0],k=d[1],l=d[2];this.blackPoint=d,this.GR=e[0],this.GG=e[1],this.GB=e[2],this.MXA=f[0],this.MYA=f[1],this.MZA=f[2],this.MXB=f[3],this.MYB=f[4],this.MZB=f[5],this.MXC=f[6],this.MYC=f[7],this.MZC=f[8],(0>g||0>i||1!==h)&&c("Invalid WhitePoint components for "+this.name+", no fallback available"),(0>j||0>k||0>l)&&(a("Invalid BlackPoint for "+this.name+" ["+j+", "+k+", "+l+"], falling back to default"),this.blackPoint=new Float32Array(3)),(this.GR<0||this.GG<0||this.GB<0)&&(a("Invalid Gamma ["+this.GR+", "+this.GG+", "+this.GB+"] for "+this.name+", falling back to default"),this.GR=this.GG=this.GB=1),(this.MXA<0||this.MYA<0||this.MZA<0||this.MXB<0||this.MYB<0||this.MZB<0||this.MXC<0||this.MYC<0||this.MZC<0)&&(a("Invalid Matrix for "+this.name+" ["+this.MXA+", "+this.MYA+", "+this.MZA+this.MXB+", "+this.MYB+", "+this.MZB+this.MXC+", "+this.MYC+", "+this.MZC+"], falling back to default"),this.MXA=this.MYB=this.MZC=1,this.MXB=this.MYA=this.MZA=this.MXC=this.MYC=this.MZB=0)}function d(a,b,c){c[0]=a[0]*b[0]+a[1]*b[1]+a[2]*b[2],c[1]=a[3]*b[0]+a[4]*b[1]+a[5]*b[2],c[2]=a[6]*b[0]+a[7]*b[1]+a[8]*b[2]}function e(a,b,c){c[0]=1*b[0]/a[0],c[1]=1*b[1]/a[1],c[2]=1*b[2]/a[2]}function f(a,b,c){var d=.95047,e=1,f=1.08883;c[0]=b[0]*d/a[0],c[1]=b[1]*e/a[1],c[2]=b[2]*f/a[2]}function g(a){return.0031308>=a?h(0,1,12.92*a):h(0,1,1.055*Math.pow(a,1/2.4)-.055)}function h(a,b,c){return Math.max(a,Math.min(b,c))}function i(a){return 0>a?-i(-a):a>8?Math.pow((a+16)/116,3):a*u}function j(a,b,c){if(0===a[0]&&0===a[1]&&0===a[2])return c[0]=b[0],c[1]=b[1],void(c[2]=b[2]);var d=i(0),e=d,f=i(a[0]),g=d,h=i(a[1]),j=d,k=i(a[2]),l=(1-e)/(1-f),m=1-l,n=(1-g)/(1-h),o=1-n,p=(1-j)/(1-k),q=1-p;c[0]=b[0]*l+m,c[1]=b[1]*n+o,c[2]=b[2]*p+q}function k(a,b,c){if(1===a[0]&&1===a[2])return c[0]=b[0],c[1]=b[1],void(c[2]=b[2]);var f=c;d(n,b,f);var g=r;e(a,f,g),d(o,g,c)}function l(a,b,c){var e=c;d(n,b,e);var g=r;f(a,e,g),d(o,g,c)}function m(a,b,c,e,f,i){var m=h(0,1,b[c]*i),n=h(0,1,b[c+1]*i),o=h(0,1,b[c+2]*i),r=Math.pow(m,a.GR),u=Math.pow(n,a.GG),v=Math.pow(o,a.GB),w=a.MXA*r+a.MXB*u+a.MXC*v,x=a.MYA*r+a.MYB*u+a.MYC*v,y=a.MZA*r+a.MZB*u+a.MZC*v,z=s;z[0]=w,z[1]=x,z[2]=y;var A=t;k(a.whitePoint,z,A);var B=s;j(a.blackPoint,A,B);var C=t;l(q,B,C);var D=s;d(p,C,D);var E=g(D[0]),F=g(D[1]),G=g(D[2]);e[f]=Math.round(255*E),e[f+1]=Math.round(255*F),e[f+2]=Math.round(255*G)}var n=new Float32Array([.8951,.2664,-.1614,-.7502,1.7135,.0367,.0389,-.0685,1.0296]),o=new Float32Array([.9869929,-.1470543,.1599627,.4323053,.5183603,.0492912,-.0085287,.0400428,.9684867]),p=new Float32Array([3.2404542,-1.5371385,-.4985314,-.969266,1.8760108,.041556,.0556434,-.2040259,1.0572252]),q=new Float32Array([1,1,1]),r=new Float32Array(3),s=new Float32Array(3),t=new Float32Array(3),u=Math.pow(24/116,3)/8;return b.prototype={getRgb:function(a,b){var c=new Uint8Array(3);return this.getRgbItem(a,b,c,0),c},getRgbItem:function(a,b,c,d){m(this,a,b,c,d,1)},getRgbBuffer:function(a,b,c,d,e,f,g){for(var h=1/((1<<f)-1),i=0;c>i;++i)m(this,a,b,d,e,h),b+=3,e+=3+g},getOutputLength:function(a,b){return a*(3+b)/3|0},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},b}(),eb=function(){function b(b,d,e){this.name="Lab",this.numComps=3,this.defaultColor=new Float32Array([0,0,0]),b||c("WhitePoint missing - required for color space Lab"),d=d||[0,0,0],e=e||[-100,100,-100,100],this.XW=b[0],this.YW=b[1],this.ZW=b[2],this.amin=e[0],this.amax=e[1],this.bmin=e[2],this.bmax=e[3],this.XB=d[0],this.YB=d[1],this.ZB=d[2],(this.XW<0||this.ZW<0||1!==this.YW)&&c("Invalid WhitePoint components, no fallback available"),(this.XB<0||this.YB<0||this.ZB<0)&&(a("Invalid BlackPoint, falling back to default"),this.XB=this.YB=this.ZB=0),(this.amin>this.amax||this.bmin>this.bmax)&&(a("Invalid Range, falling back to defaults"),this.amin=-100,this.amax=100,this.bmin=-100,this.bmax=100)}function d(a){return a>=6/29?a*a*a:108/841*(a-4/29)}function e(a,b,c,d){return c+a*(d-c)/b}function f(a,b,c,f,g,h){var i=b[c],j=b[c+1],k=b[c+2];f!==!1&&(i=e(i,f,0,100),j=e(j,f,a.amin,a.amax),k=e(k,f,a.bmin,a.bmax)),j=j>a.amax?a.amax:j<a.amin?a.amin:j,k=k>a.bmax?a.bmax:k<a.bmin?a.bmin:k;var l,m,n,o=(i+16)/116,p=o+j/500,q=o-k/200,r=a.XW*d(p),s=a.YW*d(o),t=a.ZW*d(q);a.ZW<1?(l=3.1339*r+-1.617*s+t*-.4906,m=r*-.9785+1.916*s+.0333*t,n=.072*r+s*-.229+1.4057*t):(l=3.2406*r+-1.5372*s+t*-.4986,m=r*-.9689+1.8758*s+.0415*t,n=.0557*r+s*-.204+1.057*t),g[h]=0>=l?0:l>=1?255:255*Math.sqrt(l)|0,g[h+1]=0>=m?0:m>=1?255:255*Math.sqrt(m)|0,g[h+2]=0>=n?0:n>=1?255:255*Math.sqrt(n)|0}return b.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){f(this,a,b,!1,c,d)},getRgbBuffer:function(a,b,c,d,e,g,h){for(var i=(1<<g)-1,j=0;c>j;j++)f(this,a,b,i,d,e),b+=3,e+=3+h},getOutputLength:function(a,b){return a*(3+b)/3|0},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return!0},usesZeroToOneRange:!1},b}(),fb=function(){function a(a){this.a=0,this.b=0;var b,c,d=new Uint8Array(256),e=0,f=a.length;for(b=0;256>b;++b)d[b]=b;for(b=0;256>b;++b)c=d[b],e=e+c+a[b%f]&255,d[b]=d[e],d[e]=c;this.s=d}return a.prototype={encryptBlock:function(a){var b,c,d,e=a.length,f=this.a,g=this.b,h=this.s,i=new Uint8Array(e);for(b=0;e>b;++b)f=f+1&255,c=h[f],g=g+c&255,d=h[g],h[f]=d,h[g]=c,i[b]=a[b]^h[c+d&255];return this.a=f,this.b=g,i}},a.prototype.decryptBlock=a.prototype.encryptBlock,a}(),gb=function(){function a(a,d,e){var f,g,h,i=1732584193,j=-271733879,k=-1732584194,l=271733878,m=e+72&-64,n=new Uint8Array(m);for(f=0;e>f;++f)n[f]=a[d++];for(n[f++]=128,h=m-8;h>f;)n[f++]=0;n[f++]=e<<3&255,n[f++]=e>>5&255,n[f++]=e>>13&255,n[f++]=e>>21&255,n[f++]=e>>>29&255,n[f++]=0,n[f++]=0,n[f++]=0;var o=new Int32Array(16);for(f=0;m>f;){for(g=0;16>g;++g,f+=4)o[g]=n[f]|n[f+1]<<8|n[f+2]<<16|n[f+3]<<24;var p,q,r=i,s=j,t=k,u=l;for(g=0;64>g;++g){16>g?(p=s&t|~s&u,q=g):32>g?(p=u&s|~u&t,q=5*g+1&15):48>g?(p=s^t^u,q=3*g+5&15):(p=t^(s|~u),q=7*g&15);var v=u,w=r+p+c[g]+o[q]|0,x=b[g];u=t,t=s,s=s+(w<<x|w>>>32-x)|0,r=v}i=i+r|0,j=j+s|0,k=k+t|0,l=l+u|0}return new Uint8Array([255&i,i>>8&255,i>>16&255,i>>>24&255,255&j,j>>8&255,j>>16&255,j>>>24&255,255&k,k>>8&255,k>>16&255,k>>>24&255,255&l,l>>8&255,l>>16&255,l>>>24&255])}var b=new Uint8Array([7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21]),c=new Int32Array([-680876936,-389564586,606105819,-1044525330,-176418897,1200080426,-1473231341,-45705983,1770035416,-1958414417,-42063,-1990404162,1804603682,-40341101,-1502002290,1236535329,-165796510,-1069501632,643717713,-373897302,-701558691,38016083,-660478335,-405537848,568446438,-1019803690,-187363961,1163531501,-1444681467,-51403784,1735328473,-1926607734,-378558,-2022574463,1839030562,-35309556,-1530992060,1272893353,-155497632,-1094730640,681279174,-358537222,-722521979,76029189,-640364487,-421815835,530742520,-995338651,-198630844,1126891415,-1416354905,-57434055,1700485571,-1894986606,-1051523,-2054922799,1873313359,-30611744,-1560198380,1309151649,-145523070,-1120210379,718787259,-343485551]);return a}(),hb=function(){function a(a,b){this.high=0|a,this.low=0|b}return a.prototype={and:function(a){this.high&=a.high,this.low&=a.low},xor:function(a){this.high^=a.high,this.low^=a.low},or:function(a){this.high|=a.high,this.low|=a.low},shiftRight:function(a){a>=32?(this.low=this.high>>>a-32|0,this.high=0):(this.low=this.low>>>a|this.high<<32-a,this.high=this.high>>>a|0)},shiftLeft:function(a){a>=32?(this.high=this.low<<a-32,this.low=0):(this.high=this.high<<a|this.low>>>32-a,this.low=this.low<<a)},rotateRight:function(a){var b,c;32&a?(c=this.low,b=this.high):(b=this.low,c=this.high),a&=31,this.low=b>>>a|c<<32-a,this.high=c>>>a|b<<32-a},not:function(){this.high=~this.high,this.low=~this.low},add:function(a){var b=(this.low>>>0)+(a.low>>>0),c=(this.high>>>0)+(a.high>>>0);b>4294967295&&(c+=1),this.low=0|b,this.high=0|c},copyTo:function(a,b){a[b]=this.high>>>24&255,a[b+1]=this.high>>16&255,a[b+2]=this.high>>8&255,a[b+3]=255&this.high,a[b+4]=this.low>>>24&255,a[b+5]=this.low>>16&255,a[b+6]=this.low>>8&255,a[b+7]=255&this.low},assign:function(a){this.high=a.high,this.low=a.low}},a}(),ib=function(){function a(a,b){return a>>>b|a<<32-b}function b(a,b,c){return a&b^~a&c}function c(a,b,c){return a&b^a&c^b&c}function d(b){return a(b,2)^a(b,13)^a(b,22)}function e(b){return a(b,6)^a(b,11)^a(b,25)}function f(b){return a(b,7)^a(b,18)^b>>>3}function g(b){return a(b,17)^a(b,19)^b>>>10}function h(a,h,j){var k,l,m,n=1779033703,o=3144134277,p=1013904242,q=2773480762,r=1359893119,s=2600822924,t=528734635,u=1541459225,v=64*Math.ceil((j+9)/64),w=new Uint8Array(v);for(k=0;j>k;++k)w[k]=a[h++];for(w[k++]=128,m=v-8;m>k;)w[k++]=0;w[k++]=0,w[k++]=0,w[k++]=0,w[k++]=j>>>29&255,w[k++]=j>>21&255,w[k++]=j>>13&255,w[k++]=j>>5&255,w[k++]=j<<3&255;var x=new Uint32Array(64);for(k=0;v>k;){for(l=0;16>l;++l)x[l]=w[k]<<24|w[k+1]<<16|w[k+2]<<8|w[k+3],k+=4;for(l=16;64>l;++l)x[l]=g(x[l-2])+x[l-7]+f(x[l-15])+x[l-16]|0;var y,z,A=n,B=o,C=p,D=q,E=r,F=s,G=t,H=u;for(l=0;64>l;++l)y=H+e(E)+b(E,F,G)+i[l]+x[l],z=d(A)+c(A,B,C),H=G,G=F,F=E,E=D+y|0,D=C,C=B,B=A,A=y+z|0;n=n+A|0,o=o+B|0,p=p+C|0,q=q+D|0,r=r+E|0,s=s+F|0,t=t+G|0,u=u+H|0}return new Uint8Array([n>>24&255,n>>16&255,n>>8&255,255&n,o>>24&255,o>>16&255,o>>8&255,255&o,p>>24&255,p>>16&255,p>>8&255,255&p,q>>24&255,q>>16&255,q>>8&255,255&q,r>>24&255,r>>16&255,r>>8&255,255&r,s>>24&255,s>>16&255,s>>8&255,255&s,t>>24&255,t>>16&255,t>>8&255,255&t,u>>24&255,u>>16&255,u>>8&255,255&u])}var i=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return h}(),jb=function(){function a(a,b,c,d,e){a.assign(b),a.and(c),e.assign(b),e.not(),e.and(d),a.xor(e)}function b(a,b,c,d,e){a.assign(b),a.and(c),e.assign(b),e.and(d),a.xor(e),e.assign(c),e.and(d),a.xor(e)}function c(a,b,c){a.assign(b),a.rotateRight(28),c.assign(b),c.rotateRight(34),a.xor(c),c.assign(b),c.rotateRight(39),a.xor(c)}function d(a,b,c){a.assign(b),a.rotateRight(14),c.assign(b),c.rotateRight(18),a.xor(c),c.assign(b),c.rotateRight(41),a.xor(c)}function e(a,b,c){a.assign(b),a.rotateRight(1),c.assign(b),c.rotateRight(8),a.xor(c),c.assign(b),c.shiftRight(7),a.xor(c)}function f(a,b,c){a.assign(b),a.rotateRight(19),c.assign(b),c.rotateRight(61),a.xor(c),c.assign(b),c.shiftRight(6),a.xor(c)}function g(g,i,j,k){k=!!k;var l,m,n,o,p,q,r,s;k?(l=new hb(3418070365,3238371032),m=new hb(1654270250,914150663),n=new hb(2438529370,812702999),o=new hb(355462360,4144912697),p=new hb(1731405415,4290775857),q=new hb(2394180231,1750603025),r=new hb(3675008525,1694076839),s=new hb(1203062813,3204075428)):(l=new hb(1779033703,4089235720),m=new hb(3144134277,2227873595),n=new hb(1013904242,4271175723),o=new hb(2773480762,1595750129),p=new hb(1359893119,2917565137),q=new hb(2600822924,725511199),r=new hb(528734635,4215389547),s=new hb(1541459225,327033209));var t,u,v,w=128*Math.ceil((j+17)/128),x=new Uint8Array(w);for(t=0;j>t;++t)x[t]=g[i++];for(x[t++]=128,v=w-16;v>t;)x[t++]=0;x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=j>>>29&255,x[t++]=j>>21&255,x[t++]=j>>13&255,x[t++]=j>>5&255,x[t++]=j<<3&255;var y=new Array(80);for(t=0;80>t;t++)y[t]=new hb(0,0);var z,A=new hb(0,0),B=new hb(0,0),C=new hb(0,0),D=new hb(0,0),E=new hb(0,0),F=new hb(0,0),G=new hb(0,0),H=new hb(0,0),I=new hb(0,0),J=new hb(0,0),K=new hb(0,0),L=new hb(0,0);for(t=0;w>t;){for(u=0;16>u;++u)y[u].high=x[t]<<24|x[t+1]<<16|x[t+2]<<8|x[t+3],y[u].low=x[t+4]<<24|x[t+5]<<16|x[t+6]<<8|x[t+7],t+=8;for(u=16;80>u;++u)z=y[u],f(z,y[u-2],L),z.add(y[u-7]),e(K,y[u-15],L),z.add(K),z.add(y[u-16]);for(A.assign(l),B.assign(m),C.assign(n),D.assign(o),E.assign(p),F.assign(q),G.assign(r),H.assign(s),u=0;80>u;++u)I.assign(H),d(K,E,L),I.add(K),a(K,E,F,G,L),I.add(K),I.add(h[u]),I.add(y[u]),c(J,A,L),b(K,A,B,C,L),J.add(K),z=H,H=G,G=F,F=E,D.add(I),E=D,D=C,C=B,B=A,z.assign(I),z.add(J),A=z;l.add(A),m.add(B),n.add(C),o.add(D),p.add(E),q.add(F),r.add(G),s.add(H)}var M;return k?(M=new Uint8Array(48),l.copyTo(M,0),m.copyTo(M,8),n.copyTo(M,16),o.copyTo(M,24),p.copyTo(M,32),q.copyTo(M,40)):(M=new Uint8Array(64),l.copyTo(M,0),m.copyTo(M,8),n.copyTo(M,16),o.copyTo(M,24),p.copyTo(M,32),q.copyTo(M,40),r.copyTo(M,48),s.copyTo(M,56)),M}var h=[new hb(1116352408,3609767458),new hb(1899447441,602891725),new hb(3049323471,3964484399),new hb(3921009573,2173295548),new hb(961987163,4081628472),new hb(1508970993,3053834265),new hb(2453635748,2937671579),new hb(2870763221,3664609560),new hb(3624381080,2734883394),new hb(310598401,1164996542),new hb(607225278,1323610764),new hb(1426881987,3590304994),new hb(1925078388,4068182383),new hb(2162078206,991336113),new hb(2614888103,633803317),new hb(3248222580,3479774868),new hb(3835390401,2666613458),new hb(4022224774,944711139),new hb(264347078,2341262773),new hb(604807628,2007800933),new hb(770255983,1495990901),new hb(1249150122,1856431235),new hb(1555081692,3175218132),new hb(1996064986,2198950837),new hb(2554220882,3999719339),new hb(2821834349,766784016),new hb(2952996808,2566594879),new hb(3210313671,3203337956),new hb(3336571891,1034457026),new hb(3584528711,2466948901),new hb(113926993,3758326383),new hb(338241895,168717936),new hb(666307205,1188179964),new hb(773529912,1546045734),new hb(1294757372,1522805485),new hb(1396182291,2643833823),new hb(1695183700,2343527390),new hb(1986661051,1014477480),new hb(2177026350,1206759142),new hb(2456956037,344077627),new hb(2730485921,1290863460),new hb(2820302411,3158454273),new hb(3259730800,3505952657),new hb(3345764771,106217008),new hb(3516065817,3606008344),new hb(3600352804,1432725776),new hb(4094571909,1467031594),new hb(275423344,851169720),new hb(430227734,3100823752),new hb(506948616,1363258195),new hb(659060556,3750685593),new hb(883997877,3785050280),new hb(958139571,3318307427),new hb(1322822218,3812723403),new hb(1537002063,2003034995),new hb(1747873779,3602036899),new hb(1955562222,1575990012),new hb(2024104815,1125592928),new hb(2227730452,2716904306),new hb(2361852424,442776044),new hb(2428436474,593698344),new hb(2756734187,3733110249),new hb(3204031479,2999351573),new hb(3329325298,3815920427),new hb(3391569614,3928383900),new hb(3515267271,566280711),new hb(3940187606,3454069534),new hb(4118630271,4000239992),new hb(116418474,1914138554),new hb(174292421,2731055270),new hb(289380356,3203993006),new hb(460393269,320620315),new hb(685471733,587496836),new hb(852142971,1086792851),new hb(1017036298,365543100),new hb(1126000580,2618297676),new hb(1288033470,3409855158),new hb(1501505948,4234509866),new hb(1607167915,987167468),new hb(1816402316,1246189591)];
-return g}(),kb=function(){function a(a,b,c){return jb(a,b,c,!0)}return a}(),lb=function(){function a(){}return a.prototype={decryptBlock:function(a){return a}},a}(),mb=function(){function a(a){var b=176,c=new Uint8Array(b);c.set(a);for(var d=16,e=1;b>d;++e){var h=c[d-3],i=c[d-2],j=c[d-1],k=c[d-4];h=g[h],i=g[i],j=g[j],k=g[k],h^=f[e];for(var l=0;4>l;++l)c[d]=h^=c[d-16],d++,c[d]=i^=c[d-16],d++,c[d]=j^=c[d-16],d++,c[d]=k^=c[d-16],d++}return c}function b(a,b){var c=new Uint8Array(16);c.set(a);var d,e,f,g,i,j;for(e=0,f=160;16>e;++e,++f)c[e]^=b[f];for(d=9;d>=1;--d){for(g=c[13],c[13]=c[9],c[9]=c[5],c[5]=c[1],c[1]=g,g=c[14],i=c[10],c[14]=c[6],c[10]=c[2],c[6]=g,c[2]=i,g=c[15],i=c[11],j=c[7],c[15]=c[3],c[11]=g,c[7]=i,c[3]=j,e=0;16>e;++e)c[e]=h[c[e]];for(e=0,f=16*d;16>e;++e,++f)c[e]^=b[f];for(e=0;16>e;e+=4){var l=k[c[e]],m=k[c[e+1]],n=k[c[e+2]],o=k[c[e+3]];g=l^m>>>8^m<<24^n>>>16^n<<16^o>>>24^o<<8,c[e]=g>>>24&255,c[e+1]=g>>16&255,c[e+2]=g>>8&255,c[e+3]=255&g}}for(g=c[13],c[13]=c[9],c[9]=c[5],c[5]=c[1],c[1]=g,g=c[14],i=c[10],c[14]=c[6],c[10]=c[2],c[6]=g,c[2]=i,g=c[15],i=c[11],j=c[7],c[15]=c[3],c[11]=g,c[7]=i,c[3]=j,e=0;16>e;++e)c[e]=h[c[e]],c[e]^=b[e];return c}function c(a,b){var c,d,e,f,h=new Uint8Array(16);for(h.set(a),k=0;16>k;++k)h[k]^=b[k];for(j=1;10>j;j++){for(k=0;16>k;++k)h[k]=g[h[k]];e=h[1],h[1]=h[5],h[5]=h[9],h[9]=h[13],h[13]=e,e=h[2],d=h[6],h[2]=h[10],h[6]=h[14],h[10]=e,h[14]=d,e=h[3],d=h[7],c=h[11],h[3]=h[15],h[7]=e,h[11]=d,h[15]=c;for(var k=0;16>k;k+=4){var l=h[k+0],m=h[k+1],n=h[k+2],o=h[k+3];c=l^m^n^o,h[k+0]^=c^i[l^m],h[k+1]^=c^i[m^n],h[k+2]^=c^i[n^o],h[k+3]^=c^i[o^l]}for(k=0,f=16*j;16>k;++k,++f)h[k]^=b[f]}for(k=0;16>k;++k)h[k]=g[h[k]];for(e=h[1],h[1]=h[5],h[5]=h[9],h[9]=h[13],h[13]=e,e=h[2],d=h[6],h[2]=h[10],h[6]=h[14],h[10]=e,h[14]=d,e=h[3],d=h[7],c=h[11],h[3]=h[15],h[7]=e,h[11]=d,h[15]=c,k=0,f=160;16>k;++k,++f)h[k]^=b[f];return h}function d(b){this.key=a(b),this.buffer=new Uint8Array(16),this.bufferPosition=0}function e(a,c){var d,e,f,g=a.length,h=this.buffer,i=this.bufferPosition,j=[],k=this.iv;for(d=0;g>d;++d)if(h[i]=a[d],++i,!(16>i)){var l=b(h,this.key);for(e=0;16>e;++e)l[e]^=k[e];k=h,j.push(l),h=new Uint8Array(16),i=0}if(this.buffer=h,this.bufferLength=i,this.iv=k,0===j.length)return new Uint8Array([]);var m=16*j.length;if(c){var n=j[j.length-1],o=n[15];if(16>=o){for(d=15,f=16-o;d>=f;--d)if(n[d]!==o){o=0;break}m-=o,j[j.length-1]=n.subarray(0,16-o)}}var p=new Uint8Array(m);for(d=0,e=0,f=j.length;f>d;++d,e+=16)p.set(j[d],e);return p}for(var f=new Uint8Array([141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141]),g=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),h=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]),i=new Uint8Array(256),j=0;256>j;j++)128>j?i[j]=j<<1:i[j]=j<<1^27;var k=new Uint32Array([0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795]);return d.prototype={decryptBlock:function(a,b){var c,d=a.length,f=this.buffer,g=this.bufferPosition;for(c=0;16>g&&d>c;++c,++g)f[g]=a[c];return 16>g?(this.bufferLength=g,new Uint8Array([])):(this.iv=f,this.buffer=new Uint8Array(16),this.bufferLength=0,this.decryptBlock=e,this.decryptBlock(a.subarray(16),b))},encrypt:function(a,b){var d,e,f,g=a.length,h=this.buffer,i=this.bufferPosition,j=[];for(b||(b=new Uint8Array(16)),d=0;g>d;++d)if(h[i]=a[d],++i,!(16>i)){for(e=0;16>e;++e)h[e]^=b[e];var k=c(h,this.key);b=k,j.push(k),h=new Uint8Array(16),i=0}if(this.buffer=h,this.bufferLength=i,this.iv=b,0===j.length)return new Uint8Array([]);var l=16*j.length,m=new Uint8Array(l);for(d=0,e=0,f=j.length;f>d;++d,e+=16)m.set(j[d],e);return m}},d}(),nb=function(){function a(a){var b=240,c=new Uint8Array(b),d=1;c.set(a);for(var e=32,g=1;b>e;++g){if(e%32===16)h=f[h],i=f[i],j=f[j],k=f[k];else if(e%32===0){var h=c[e-3],i=c[e-2],j=c[e-1],k=c[e-4];h=f[h],i=f[i],j=f[j],k=f[k],h^=d,(d<<=1)>=256&&(d=255&(27^d))}for(var l=0;4>l;++l)c[e]=h^=c[e-32],e++,c[e]=i^=c[e-32],e++,c[e]=j^=c[e-32],e++,c[e]=k^=c[e-32],e++}return c}function b(a,b){var c=new Uint8Array(16);c.set(a);var d,e,f,h,i,k;for(e=0,f=224;16>e;++e,++f)c[e]^=b[f];for(d=13;d>=1;--d){for(h=c[13],c[13]=c[9],c[9]=c[5],c[5]=c[1],c[1]=h,h=c[14],i=c[10],c[14]=c[6],c[10]=c[2],c[6]=h,c[2]=i,h=c[15],i=c[11],k=c[7],c[15]=c[3],c[11]=h,c[7]=i,c[3]=k,e=0;16>e;++e)c[e]=g[c[e]];for(e=0,f=16*d;16>e;++e,++f)c[e]^=b[f];for(e=0;16>e;e+=4){var l=j[c[e]],m=j[c[e+1]],n=j[c[e+2]],o=j[c[e+3]];h=l^m>>>8^m<<24^n>>>16^n<<16^o>>>24^o<<8,c[e]=h>>>24&255,c[e+1]=h>>16&255,c[e+2]=h>>8&255,c[e+3]=255&h}}for(h=c[13],c[13]=c[9],c[9]=c[5],c[5]=c[1],c[1]=h,h=c[14],i=c[10],c[14]=c[6],c[10]=c[2],c[6]=h,c[2]=i,h=c[15],i=c[11],k=c[7],c[15]=c[3],c[11]=h,c[7]=i,c[3]=k,e=0;16>e;++e)c[e]=g[c[e]],c[e]^=b[e];return c}function c(a,b){var c,d,e,g,j=new Uint8Array(16);for(j.set(a),k=0;16>k;++k)j[k]^=b[k];for(i=1;14>i;i++){for(k=0;16>k;++k)j[k]=f[j[k]];e=j[1],j[1]=j[5],j[5]=j[9],j[9]=j[13],j[13]=e,e=j[2],d=j[6],j[2]=j[10],j[6]=j[14],j[10]=e,j[14]=d,e=j[3],d=j[7],c=j[11],j[3]=j[15],j[7]=e,j[11]=d,j[15]=c;for(var k=0;16>k;k+=4){var l=j[k+0],m=j[k+1],n=j[k+2],o=j[k+3];c=l^m^n^o,j[k+0]^=c^h[l^m],j[k+1]^=c^h[m^n],j[k+2]^=c^h[n^o],j[k+3]^=c^h[o^l]}for(k=0,g=16*i;16>k;++k,++g)j[k]^=b[g]}for(k=0;16>k;++k)j[k]=f[j[k]];for(e=j[1],j[1]=j[5],j[5]=j[9],j[9]=j[13],j[13]=e,e=j[2],d=j[6],j[2]=j[10],j[6]=j[14],j[10]=e,j[14]=d,e=j[3],d=j[7],c=j[11],j[3]=j[15],j[7]=e,j[11]=d,j[15]=c,k=0,g=224;16>k;++k,++g)j[k]^=b[g];return j}function d(b){this.key=a(b),this.buffer=new Uint8Array(16),this.bufferPosition=0}function e(a,c){var d,e,f,g=a.length,h=this.buffer,i=this.bufferPosition,j=[],k=this.iv;for(d=0;g>d;++d)if(h[i]=a[d],++i,!(16>i)){var l=b(h,this.key);for(e=0;16>e;++e)l[e]^=k[e];k=h,j.push(l),h=new Uint8Array(16),i=0}if(this.buffer=h,this.bufferLength=i,this.iv=k,0===j.length)return new Uint8Array([]);var m=16*j.length;if(c){var n=j[j.length-1],o=n[15];if(16>=o){for(d=15,f=16-o;d>=f;--d)if(n[d]!==o){o=0;break}m-=o,j[j.length-1]=n.subarray(0,16-o)}}var p=new Uint8Array(m);for(d=0,e=0,f=j.length;f>d;++d,e+=16)p.set(j[d],e);return p}for(var f=(new Uint8Array([141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141]),new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22])),g=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]),h=new Uint8Array(256),i=0;256>i;i++)128>i?h[i]=i<<1:h[i]=i<<1^27;var j=new Uint32Array([0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795]);return d.prototype={decryptBlock:function(a,b,c){var d,f=a.length,g=this.buffer,h=this.bufferPosition;if(c)this.iv=c;else{for(d=0;16>h&&f>d;++d,++h)g[h]=a[d];if(16>h)return this.bufferLength=h,new Uint8Array([]);this.iv=g,a=a.subarray(16)}return this.buffer=new Uint8Array(16),this.bufferLength=0,this.decryptBlock=e,this.decryptBlock(a,b)},encrypt:function(a,b){var d,e,f,g=a.length,h=this.buffer,i=this.bufferPosition,j=[];for(b||(b=new Uint8Array(16)),d=0;g>d;++d)if(h[i]=a[d],++i,!(16>i)){for(e=0;16>e;++e)h[e]^=b[e];var k=c(h,this.key);this.iv=k,j.push(k),h=new Uint8Array(16),i=0}if(this.buffer=h,this.bufferLength=i,this.iv=b,0===j.length)return new Uint8Array([]);var l=16*j.length,m=new Uint8Array(l);for(d=0,e=0,f=j.length;f>d;++d,e+=16)m.set(j[d],e);return m}},d}(),ob=function(){function a(a,b){if(a.length!==b.length)return!1;for(var c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}function b(){}return b.prototype={checkOwnerPassword:function(b,c,d,e){var f=new Uint8Array(b.length+56);f.set(b,0),f.set(c,b.length),f.set(d,b.length+c.length);var g=ib(f,0,f.length);return a(g,e)},checkUserPassword:function(b,c,d){var e=new Uint8Array(b.length+8);e.set(b,0),e.set(c,b.length);var f=ib(e,0,e.length);return a(f,d)},getOwnerKey:function(a,b,c,d){var e=new Uint8Array(a.length+56);e.set(a,0),e.set(b,a.length),e.set(c,a.length+b.length);var f=ib(e,0,e.length),g=new nb(f);return g.decryptBlock(d,!1,new Uint8Array(16))},getUserKey:function(a,b,c){var d=new Uint8Array(a.length+8);d.set(a,0),d.set(b,a.length);var e=ib(d,0,d.length),f=new nb(e);return f.decryptBlock(c,!1,new Uint8Array(16))}},b}(),pb=function(){function a(a,b){var c=new Uint8Array(a.length+b.length);return c.set(a,0),c.set(b,a.length),c}function b(b,c,d){for(var e=ib(c,0,c.length).subarray(0,32),f=[0],g=0;64>g||f[f.length-1]>g-32;){var h=b.length+e.length+d.length,i=new Uint8Array(64*h),j=a(b,e);j=a(j,d);for(var k=0,l=0;64>k;k++,l+=h)i.set(j,l);var m=new mb(e.subarray(0,16));f=m.encrypt(i,e.subarray(16,32));for(var n=0,o=0;16>o;o++)n*=1,n%=3,n+=(f[o]>>>0)%3,n%=3;0===n?e=ib(f,0,f.length):1===n?e=kb(f,0,f.length):2===n&&(e=jb(f,0,f.length)),g++}return e.subarray(0,32)}function c(){}function d(a,b){if(a.length!==b.length)return!1;for(var c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}return c.prototype={hash:function(a,c,d){return b(a,c,d)},checkOwnerPassword:function(a,c,e,f){var g=new Uint8Array(a.length+56);g.set(a,0),g.set(c,a.length),g.set(e,a.length+c.length);var h=b(a,g,e);return d(h,f)},checkUserPassword:function(a,c,e){var f=new Uint8Array(a.length+8);f.set(a,0),f.set(c,a.length);var g=b(a,f,[]);return d(g,e)},getOwnerKey:function(a,c,d,e){var f=new Uint8Array(a.length+56);f.set(a,0),f.set(c,a.length),f.set(d,a.length+c.length);var g=b(a,f,d),h=new nb(g);return h.decryptBlock(e,!1,new Uint8Array(16))},getUserKey:function(a,c,d){var e=new Uint8Array(a.length+8);e.set(a,0),e.set(c,a.length);var f=b(a,e,[]),g=new nb(f);return g.decryptBlock(d,!1,new Uint8Array(16))}},c}(),qb=function(){function a(a,b){this.stringCipherConstructor=a,this.streamCipherConstructor=b}return a.prototype={createStream:function(a,b){var c=new this.streamCipherConstructor;return new Vc(a,b,function(a,b){return c.decryptBlock(a,b)})},decryptString:function(a){var b=new this.stringCipherConstructor,c=j(a);return c=b.decryptBlock(c,!0),i(c)}},a}(),rb=function(){function a(a,b,c,d,e,f,g,h,i,j,k,l){if(b){var m=Math.min(127,b.length);b=b.subarray(0,m)}else b=[];var n;if(n=6===a?new pb:new ob){if(n.checkUserPassword(b,h,g))return n.getUserKey(b,i,k);if(b.length&&n.checkOwnerPassword(b,d,f,c))return n.getOwnerKey(b,e,f,j)}return null}function d(a,b,c,d,e,f,g,h){var j,k,l=40+c.length+a.length,m=new Uint8Array(l),n=0;if(b)for(k=Math.min(32,b.length);k>n;++n)m[n]=b[n];for(j=0;32>n;)m[n++]=i[j++];for(j=0,k=c.length;k>j;++j)m[n++]=c[j];for(m[n++]=255&e,m[n++]=e>>8&255,m[n++]=e>>16&255,m[n++]=e>>>24&255,j=0,k=a.length;k>j;++j)m[n++]=a[j];f>=4&&!h&&(m[n++]=255,m[n++]=255,m[n++]=255,m[n++]=255);var o=gb(m,0,n),p=g>>3;if(f>=3)for(j=0;50>j;++j)o=gb(o,0,p);var q,r,s=o.subarray(0,p);if(f>=3){for(n=0;32>n;++n)m[n]=i[n];for(j=0,k=a.length;k>j;++j)m[n++]=a[j];q=new fb(s),r=q.encryptBlock(gb(m,0,n)),k=s.length;var t,u=new Uint8Array(k);for(j=1;19>=j;++j){for(t=0;k>t;++t)u[t]=s[t]^j;q=new fb(u),r=q.encryptBlock(r)}for(j=0,k=r.length;k>j;++j)if(d[j]!==r[j])return null}else for(q=new fb(s),r=q.encryptBlock(i),j=0,k=r.length;k>j;++j)if(d[j]!==r[j])return null;return s}function e(a,b,c,d){var e,f,g=new Uint8Array(32),h=0;for(f=Math.min(32,a.length);f>h;++h)g[h]=a[h];for(e=0;32>h;)g[h++]=i[e++];var j=gb(g,0,h),k=d>>3;if(c>=3)for(e=0;50>e;++e)j=gb(j,0,j.length);var l,m;if(c>=3){m=b;var n,o=new Uint8Array(k);for(e=19;e>=0;e--){for(n=0;k>n;++n)o[n]=j[n]^e;l=new fb(o),m=l.encryptBlock(m)}}else l=new fb(j.subarray(0,k)),m=l.encryptBlock(b);return m}function f(f,g,h){var i=f.get("Filter");z(i)&&"Standard"===i.name||c("unknown encryption method"),this.dict=f;var l=f.get("V");(!w(l)||1!==l&&2!==l&&4!==l&&5!==l)&&c("unsupported encryption algorithm"),this.algorithm=l;var m=f.get("Length")||40;(!w(m)||40>m||m%8!==0)&&c("invalid key length");var n=j(f.get("O")).subarray(0,32),o=j(f.get("U")).subarray(0,32),p=f.get("P"),q=f.get("R"),r=(4===l||5===l)&&f.get("EncryptMetadata")!==!1;this.encryptMetadata=r;var s,u=j(g);if(h){if(6===q)try{h=t(h)}catch(v){b("CipherTransformFactory: Unable to convert UTF8 encoded password.")}s=j(h)}var x;if(5!==l)x=d(u,s,n,o,p,q,m,r);else{var y=j(f.get("O")).subarray(32,40),A=j(f.get("O")).subarray(40,48),B=j(f.get("U")).subarray(0,48),C=j(f.get("U")).subarray(32,40),D=j(f.get("U")).subarray(40,48),E=j(f.get("OE")),F=j(f.get("UE")),G=j(f.get("Perms"));x=a(q,s,n,y,A,B,o,C,D,E,F,G)}if(!x&&!h)throw new da("No password given",ca.NEED_PASSWORD);if(!x&&h){var H=e(s,n,q,m);x=d(u,H,n,o,p,q,m,r)}if(!x)throw new da("Incorrect Password",ca.INCORRECT_PASSWORD);this.encryptionKey=x,l>=4&&(this.cf=f.get("CF"),this.stmf=f.get("StmF")||k,this.strf=f.get("StrF")||k,this.eff=f.get("EFF")||this.stmf)}function g(a,b,c,d){var e,f,g=new Uint8Array(c.length+9);for(e=0,f=c.length;f>e;++e)g[e]=c[e];g[e++]=255&a,g[e++]=a>>8&255,g[e++]=a>>16&255,g[e++]=255&b,g[e++]=b>>8&255,d&&(g[e++]=115,g[e++]=65,g[e++]=108,g[e++]=84);var h=gb(g,0,e);return h.subarray(0,Math.min(c.length+5,16))}function h(a,b,d,e,f){var h,i=a.get(b.name);return null!==i&&void 0!==i&&(h=i.get("CFM")),h&&"None"!==h.name?"V2"===h.name?function(){return new fb(g(d,e,f,!1))}:"AESV2"===h.name?function(){return new mb(g(d,e,f,!0))}:"AESV3"===h.name?function(){return new nb(f)}:void c("Unknown crypto method"):function(){return new lb}}var i=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]),k=ya.get("Identity");return f.prototype={createCipherTransform:function(a,b){if(4===this.algorithm||5===this.algorithm)return new qb(h(this.cf,this.stmf,a,b,this.encryptionKey),h(this.cf,this.strf,a,b,this.encryptionKey));var c=g(a,b,this.encryptionKey,!1),d=function(){return new fb(c)};return new qb(d,d)}},f}(),sb={FUNCTION_BASED:1,AXIAL:2,RADIAL:3,FREE_FORM_MESH:4,LATTICE_FORM_MESH:5,COONS_PATCH_MESH:6,TENSOR_PATCH_MESH:7},tb=function(){function a(){c("should not call Pattern constructor")}return a.prototype={getPattern:function(a){c("Should not call Pattern.getStyle: "+a)}},a.parseShading=function(a,c,d,e){var f=D(a)?a.dict:a,g=f.get("ShadingType");try{switch(g){case sb.AXIAL:case sb.RADIAL:return new ub.RadialAxial(f,c,d,e);case sb.FREE_FORM_MESH:case sb.LATTICE_FORM_MESH:case sb.COONS_PATCH_MESH:case sb.TENSOR_PATCH_MESH:return new ub.Mesh(a,c,d,e);default:throw new Error("Unsupported ShadingType: "+g)}}catch(h){if(h instanceof ja)throw h;return aa.notify(_.shadingPattern),b(h),new ub.Dummy}},a}(),ub={};ub.SMALL_NUMBER=.01,ub.RadialAxial=function(){function d(c,d,e,f){this.matrix=d,this.coordsArr=c.get("Coords"),this.shadingType=c.get("ShadingType"),this.type="Pattern";var g=c.get("ColorSpace","CS");g=Xa.parse(g,e,f),this.cs=g;var h=0,i=1;if(c.has("Domain")){var j=c.get("Domain");h=j[0],i=j[1]}var k=!1,l=!1;if(c.has("Extend")){var m=c.get("Extend");k=m[0],l=m[1]}if(!(this.shadingType!==sb.RADIAL||k&&l)){var n=this.coordsArr[0],o=this.coordsArr[1],p=this.coordsArr[2],q=this.coordsArr[3],r=this.coordsArr[4],s=this.coordsArr[5],t=Math.sqrt((n-q)*(n-q)+(o-r)*(o-r));s+t>=p&&p+t>=s&&b("Unsupported radial gradient.")}this.extendStart=k,this.extendEnd=l;var u=c.get("Function"),v=Ta.parseArray(e,u),w=i-h,x=w/10,y=this.colorStops=[];if(h>=i||0>=x)return void a("Bad shading domain.");for(var z,A=new Float32Array(g.numComps),B=new Float32Array(1),C=h;i>=C;C+=x){B[0]=C,v(B,0,A,0),z=g.getRgb(A,0);var D=na.makeCssRgb(z[0],z[1],z[2]);y.push([(C-h)/w,D])}var E="transparent";c.has("Background")&&(z=g.getRgb(c.get("Background"),0),E=na.makeCssRgb(z[0],z[1],z[2])),k||(y.unshift([0,E]),y[1][0]+=ub.SMALL_NUMBER),l||(y[y.length-1][0]-=ub.SMALL_NUMBER,y.push([1,E])),this.colorStops=y}return d.prototype={getIR:function(){var a,b,d,e,f,g=this.coordsArr,h=this.shadingType;h===sb.AXIAL?(b=[g[0],g[1]],d=[g[2],g[3]],e=null,f=null,a="axial"):h===sb.RADIAL?(b=[g[0],g[1]],d=[g[3],g[4]],e=g[2],f=g[5],a="radial"):c("getPattern type unknown: "+h);var i=this.matrix;return i&&(b=na.applyTransform(b,i),d=na.applyTransform(d,i)),["RadialAxial",a,this.colorStops,b,d,e,f]}},d}(),ub.Mesh=function(){function a(a,b){this.stream=a,this.context=b,this.buffer=0,this.bufferLength=0;var c=b.numComps;this.tmpCompsBuf=new Float32Array(c);var d=b.colorSpace.numComps;this.tmpCsCompsBuf=b.colorFn?new Float32Array(d):this.tmpCompsBuf}function b(a,b){for(var c=a.coords,d=a.colors,f=[],g=[],h=0;b.hasData;){var i=b.readFlag(),j=b.readCoordinate(),k=b.readComponents();if(0===h){switch(e(i>=0&&2>=i,"Unknown type4 flag"),i){case 0:h=3;break;case 1:g.push(g[g.length-2],g[g.length-1]),h=1;break;case 2:g.push(g[g.length-3],g[g.length-1]),h=1}f.push(i)}g.push(c.length),c.push(j),d.push(k),h--,b.align()}a.figures.push({type:"triangles",coords:new Int32Array(g),colors:new Int32Array(g)})}function d(a,b,c){for(var d=a.coords,e=a.colors,f=[];b.hasData;){var g=b.readCoordinate(),h=b.readComponents();f.push(d.length),d.push(g),e.push(h)}a.figures.push({type:"lattice",coords:new Int32Array(f),colors:new Int32Array(f),verticesPerRow:c})}function f(a,b){var c=a.figures[b];e("patch"===c.type,"Unexpected patch mesh figure");var d=a.coords,f=a.colors,g=c.coords,h=c.colors,i=Math.min(d[g[0]][0],d[g[3]][0],d[g[12]][0],d[g[15]][0]),j=Math.min(d[g[0]][1],d[g[3]][1],d[g[12]][1],d[g[15]][1]),k=Math.max(d[g[0]][0],d[g[3]][0],d[g[12]][0],d[g[15]][0]),p=Math.max(d[g[0]][1],d[g[3]][1],d[g[12]][1],d[g[15]][1]),q=Math.ceil((k-i)*n/(a.bounds[2]-a.bounds[0]));q=Math.max(l,Math.min(m,q));var r=Math.ceil((p-j)*n/(a.bounds[3]-a.bounds[1]));r=Math.max(l,Math.min(m,r));for(var s=q+1,t=new Int32Array((r+1)*s),u=new Int32Array((r+1)*s),v=0,w=new Uint8Array(3),x=new Uint8Array(3),y=f[h[0]],z=f[h[1]],A=f[h[2]],B=f[h[3]],C=o(r),D=o(q),E=0;r>=E;E++){w[0]=(y[0]*(r-E)+A[0]*E)/r|0,w[1]=(y[1]*(r-E)+A[1]*E)/r|0,w[2]=(y[2]*(r-E)+A[2]*E)/r|0,x[0]=(z[0]*(r-E)+B[0]*E)/r|0,x[1]=(z[1]*(r-E)+B[1]*E)/r|0,x[2]=(z[2]*(r-E)+B[2]*E)/r|0;for(var F=0;q>=F;F++,v++)if(0!==E&&E!==r||0!==F&&F!==q){for(var G=0,H=0,I=0,J=0;3>=J;J++)for(var K=0;3>=K;K++,I++){var L=C[E][J]*D[F][K];G+=d[g[I]][0]*L,H+=d[g[I]][1]*L}t[v]=d.length,d.push([G,H]),u[v]=f.length;var M=new Uint8Array(3);M[0]=(w[0]*(q-F)+x[0]*F)/q|0,M[1]=(w[1]*(q-F)+x[1]*F)/q|0,M[2]=(w[2]*(q-F)+x[2]*F)/q|0,f.push(M)}}t[0]=g[0],u[0]=h[0],t[q]=g[3],u[q]=h[1],t[s*r]=g[12],u[s*r]=h[2],t[s*r+q]=g[15],u[s*r+q]=h[3],a.figures[b]={type:"lattice",coords:t,colors:u,verticesPerRow:s}}function g(a,b){for(var c=a.coords,d=a.colors,f=new Int32Array(16),g=new Int32Array(4);b.hasData;){var h=b.readFlag();e(h>=0&&3>=h,"Unknown type6 flag");var i,j,k=c.length;for(i=0,j=0!==h?8:12;j>i;i++)c.push(b.readCoordinate());var l=d.length;for(i=0,j=0!==h?2:4;j>i;i++)d.push(b.readComponents());var m,n,o,p;switch(h){case 0:f[12]=k+3,f[13]=k+4,f[14]=k+5,f[15]=k+6,f[8]=k+2,f[11]=k+7,f[4]=k+1,f[7]=k+8,f[0]=k,f[1]=k+11,f[2]=k+10,f[3]=k+9,g[2]=l+1,g[3]=l+2,g[0]=l,g[1]=l+3;break;case 1:m=f[12],n=f[13],o=f[14],p=f[15],f[12]=p,f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=o,f[11]=k+3,f[4]=n,f[7]=k+4,f[0]=m,f[1]=k+7,f[2]=k+6,f[3]=k+5,m=g[2],n=g[3],g[2]=n,g[3]=l,g[0]=m,g[1]=l+1;break;case 2:m=f[15],n=f[11],f[12]=f[3],f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=f[7],f[11]=k+3,f[4]=n,f[7]=k+4,f[0]=m,f[1]=k+7,f[2]=k+6,f[3]=k+5,m=g[3],g[2]=g[1],g[3]=l,g[0]=m,g[1]=l+1;break;case 3:f[12]=f[0],f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=f[1],f[11]=k+3,f[4]=f[2],f[7]=k+4,f[0]=f[3],f[1]=k+7,f[2]=k+6,f[3]=k+5,g[2]=g[0],g[3]=l,g[0]=g[1],g[1]=l+1}f[5]=c.length,c.push([(-4*c[f[0]][0]-c[f[15]][0]+6*(c[f[4]][0]+c[f[1]][0])-2*(c[f[12]][0]+c[f[3]][0])+3*(c[f[13]][0]+c[f[7]][0]))/9,(-4*c[f[0]][1]-c[f[15]][1]+6*(c[f[4]][1]+c[f[1]][1])-2*(c[f[12]][1]+c[f[3]][1])+3*(c[f[13]][1]+c[f[7]][1]))/9]),f[6]=c.length,c.push([(-4*c[f[3]][0]-c[f[12]][0]+6*(c[f[2]][0]+c[f[7]][0])-2*(c[f[0]][0]+c[f[15]][0])+3*(c[f[4]][0]+c[f[14]][0]))/9,(-4*c[f[3]][1]-c[f[12]][1]+6*(c[f[2]][1]+c[f[7]][1])-2*(c[f[0]][1]+c[f[15]][1])+3*(c[f[4]][1]+c[f[14]][1]))/9]),f[9]=c.length,c.push([(-4*c[f[12]][0]-c[f[3]][0]+6*(c[f[8]][0]+c[f[13]][0])-2*(c[f[0]][0]+c[f[15]][0])+3*(c[f[11]][0]+c[f[1]][0]))/9,(-4*c[f[12]][1]-c[f[3]][1]+6*(c[f[8]][1]+c[f[13]][1])-2*(c[f[0]][1]+c[f[15]][1])+3*(c[f[11]][1]+c[f[1]][1]))/9]),f[10]=c.length,c.push([(-4*c[f[15]][0]-c[f[0]][0]+6*(c[f[11]][0]+c[f[14]][0])-2*(c[f[12]][0]+c[f[3]][0])+3*(c[f[2]][0]+c[f[8]][0]))/9,(-4*c[f[15]][1]-c[f[0]][1]+6*(c[f[11]][1]+c[f[14]][1])-2*(c[f[12]][1]+c[f[3]][1])+3*(c[f[2]][1]+c[f[8]][1]))/9]),a.figures.push({type:"patch",coords:new Int32Array(f),colors:new Int32Array(g)})}}function h(a,b){for(var c=a.coords,d=a.colors,f=new Int32Array(16),g=new Int32Array(4);b.hasData;){var h=b.readFlag();e(h>=0&&3>=h,"Unknown type7 flag");var i,j,k=c.length;for(i=0,j=0!==h?12:16;j>i;i++)c.push(b.readCoordinate());var l=d.length;for(i=0,j=0!==h?2:4;j>i;i++)d.push(b.readComponents());var m,n,o,p;switch(h){case 0:f[12]=k+3,f[13]=k+4,f[14]=k+5,f[15]=k+6,f[8]=k+2,f[9]=k+13,f[10]=k+14,f[11]=k+7,f[4]=k+1,f[5]=k+12,f[6]=k+15,f[7]=k+8,f[0]=k,f[1]=k+11,f[2]=k+10,f[3]=k+9,g[2]=l+1,g[3]=l+2,g[0]=l,g[1]=l+3;break;case 1:m=f[12],n=f[13],o=f[14],p=f[15],f[12]=p,f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=o,f[9]=k+9,f[10]=k+10,f[11]=k+3,f[4]=n,f[5]=k+8,f[6]=k+11,f[7]=k+4,f[0]=m,f[1]=k+7,f[2]=k+6,f[3]=k+5,m=g[2],n=g[3],g[2]=n,g[3]=l,g[0]=m,g[1]=l+1;break;case 2:m=f[15],n=f[11],f[12]=f[3],f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=f[7],f[9]=k+9,f[10]=k+10,f[11]=k+3,f[4]=n,f[5]=k+8,f[6]=k+11,f[7]=k+4,f[0]=m,f[1]=k+7,f[2]=k+6,f[3]=k+5,m=g[3],g[2]=g[1],g[3]=l,g[0]=m,g[1]=l+1;break;case 3:f[12]=f[0],f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=f[1],f[9]=k+9,f[10]=k+10,f[11]=k+3,f[4]=f[2],f[5]=k+8,f[6]=k+11,f[7]=k+4,f[0]=f[3],f[1]=k+7,f[2]=k+6,f[3]=k+5,g[2]=g[0],g[3]=l,g[0]=g[1],g[1]=l+1}a.figures.push({type:"patch",coords:new Int32Array(f),colors:new Int32Array(g)})}}function i(a){for(var b=a.coords[0][0],c=a.coords[0][1],d=b,e=c,f=1,g=a.coords.length;g>f;f++){var h=a.coords[f][0],i=a.coords[f][1];b=b>h?h:b,
-c=c>i?i:c,d=h>d?h:d,e=i>e?i:e}a.bounds=[b,c,d,e]}function j(a){var b,c,d,e,f=a.coords,g=new Float32Array(2*f.length);for(b=0,d=0,c=f.length;c>b;b++){var h=f[b];g[d++]=h[0],g[d++]=h[1]}a.coords=g;var i=a.colors,j=new Uint8Array(3*i.length);for(b=0,d=0,c=i.length;c>b;b++){var k=i[b];j[d++]=k[0],j[d++]=k[1],j[d++]=k[2]}a.colors=j;var l=a.figures;for(b=0,c=l.length;c>b;b++){var m=l[b],n=m.coords,o=m.colors;for(d=0,e=n.length;e>d;d++)n[d]*=2,o[d]*=3}}function k(k,l,m,n){e(D(k),"Mesh data is not a stream");var o=k.dict;this.matrix=l,this.shadingType=o.get("ShadingType"),this.type="Pattern",this.bbox=o.get("BBox");var p=o.get("ColorSpace","CS");p=Xa.parse(p,m,n),this.cs=p,this.background=o.has("Background")?p.getRgb(o.get("Background"),0):null;var q=o.get("Function"),r=q?Ta.parseArray(m,q):null;this.coords=[],this.colors=[],this.figures=[];var s={bitsPerCoordinate:o.get("BitsPerCoordinate"),bitsPerComponent:o.get("BitsPerComponent"),bitsPerFlag:o.get("BitsPerFlag"),decode:o.get("Decode"),colorFn:r,colorSpace:p,numComps:r?1:p.numComps},t=new a(k,s),u=!1;switch(this.shadingType){case sb.FREE_FORM_MESH:b(this,t);break;case sb.LATTICE_FORM_MESH:var v=0|o.get("VerticesPerRow");e(v>=2,"Invalid VerticesPerRow"),d(this,t,v);break;case sb.COONS_PATCH_MESH:g(this,t),u=!0;break;case sb.TENSOR_PATCH_MESH:h(this,t),u=!0;break;default:c("Unsupported mesh type.")}if(u){i(this);for(var w=0,x=this.figures.length;x>w;w++)f(this,w)}i(this),j(this)}a.prototype={get hasData(){if(this.stream.end)return this.stream.pos<this.stream.end;if(this.bufferLength>0)return!0;var a=this.stream.getByte();return 0>a?!1:(this.buffer=a,this.bufferLength=8,!0)},readBits:function(a){var b=this.buffer,c=this.bufferLength;if(32===a){if(0===c)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;b=b<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();var d=this.stream.getByte();return this.buffer=d&(1<<c)-1,(b<<8-c|(255&d)>>c)>>>0}if(8===a&&0===c)return this.stream.getByte();for(;a>c;)b=b<<8|this.stream.getByte(),c+=8;return c-=a,this.bufferLength=c,this.buffer=b&(1<<c)-1,b>>c},align:function(){this.buffer=0,this.bufferLength=0},readFlag:function(){return this.readBits(this.context.bitsPerFlag)},readCoordinate:function(){var a=this.context.bitsPerCoordinate,b=this.readBits(a),c=this.readBits(a),d=this.context.decode,e=32>a?1/((1<<a)-1):2.3283064365386963e-10;return[b*e*(d[1]-d[0])+d[0],c*e*(d[3]-d[2])+d[2]]},readComponents:function(){for(var a=this.context.numComps,b=this.context.bitsPerComponent,c=32>b?1/((1<<b)-1):2.3283064365386963e-10,d=this.context.decode,e=this.tmpCompsBuf,f=0,g=4;a>f;f++,g+=2){var h=this.readBits(b);e[f]=h*c*(d[g+1]-d[g])+d[g]}var i=this.tmpCsCompsBuf;return this.context.colorFn&&this.context.colorFn(e,0,i,0),this.context.colorSpace.getRgb(i,0)}};var l=3,m=20,n=20,o=function(){function a(a){for(var b=[],c=0;a>=c;c++){var d=c/a,e=1-d;b.push(new Float32Array([e*e*e,3*d*e*e,3*d*d*e,d*d*d]))}return b}var b=[];return function(c){return b[c]||(b[c]=a(c)),b[c]}}();return k.prototype={getIR:function(){return["Mesh",this.shadingType,this.coords,this.colors,this.figures,this.bounds,this.matrix,this.bbox,this.background]}},k}(),ub.Dummy=function(){function a(){this.type="Pattern"}return a.prototype={getIR:function(){return["Dummy"]}},a}();var vb=function(){function d(a,b,c,d,e,f,g){this.pdfManager=a,this.xref=b,this.handler=c,this.pageIndex=d,this.uniquePrefix=e,this.idCounters=f,this.fontCache=g}function f(){this.reset()}var g=20,h=100;f.prototype={check:function(){return++this.checked<h?!1:(this.checked=0,this.endTime<=Date.now())},reset:function(){this.endTime=Date.now()+g,this.checked=0}};var i=Promise.resolve(),j=1,k=2;return d.prototype={hasBlendModes:function(a){if(!B(a))return!1;var b=Object.create(null);a.objId&&(b[a.objId]=!0);for(var c=[a];c.length;){var d,e=c.shift(),f=e.get("ExtGState");if(B(f)){f=f.getAll();for(d in f){var g=f[d],h=g.BM;if(z(h)&&"Normal"!==h.name)return!0}}var i=e.get("XObject");if(B(i)){i=i.getAll();for(d in i){var j=i[d];if(D(j)){if(j.dict.objId){if(b[j.dict.objId])continue;b[j.dict.objId]=!0}var k=j.dict.get("Resources");!B(k)||k.objId&&b[k.objId]||(c.push(k),k.objId&&(b[k.objId]=!0))}}}}return!1},buildFormXObject:function(a,b,c,d,e,f){var g=b.dict.getArray("Matrix"),h=b.dict.getArray("BBox"),i=b.dict.get("Group");if(i){var j,k={matrix:g,bbox:h,smask:c,isolated:!1,knockout:!1},l=i.get("S");z(l)&&"Transparency"===l.name&&(k.isolated=i.get("I")||!1,k.knockout=i.get("K")||!1,j=i.has("CS")?Xa.parse(i.get("CS"),this.xref,a):null),c&&c.backdrop&&(j=j||Xa.singletons.rgb,c.backdrop=j.getRgb(c.backdrop,0)),d.addOp($.beginGroup,[k])}return d.addOp($.paintFormXObjectBegin,[g,h]),this.getOperatorList(b,e,b.dict.get("Resources")||a,d,f).then(function(){d.addOp($.paintFormXObjectEnd,[]),i&&d.addOp($.endGroup,[k])})},buildPaintImageXObject:function(a,c,d,e,f,g){var h=this,i=c.dict,j=i.get("Width","W"),k=i.get("Height","H");if(!(j&&x(j)&&k&&x(k)))return void b("Image dimensions are missing, or not numbers.");if(-1!==PDFJS.maxImageSize&&j*k>PDFJS.maxImageSize)return void b("Image exceeded maximum allowed size and was removed.");var l,m,n=i.get("ImageMask","IM")||!1;if(n){var o=i.get("Width","W"),p=i.get("Height","H"),q=o+7>>3,r=c.getBytes(q*p),s=i.get("Decode","D"),t=!!s&&s[0]>0;return l=Bc.createMask(r,o,p,c instanceof Oc,t),l.cached=!0,m=[l],e.addOp($.paintImageMaskXObject,m),void(f&&(g[f]={fn:$.paintImageMaskXObject,args:m}))}var u=i.get("SMask","SM")||!1,v=i.get("Mask")||!1,w=200;if(d&&!u&&!v&&!(c instanceof Sc)&&w>j+k){var y=new Bc(this.xref,a,c,d,null,null);return l=y.createImageData(!0),void e.addOp($.paintInlineImageXObject,[l])}var z=this.uniquePrefix||"",A="img_"+z+ ++this.idCounters.obj;return e.addDependency(A),m=[A,j,k],!u&&!v&&c instanceof Sc&&c.isNativelySupported(this.xref,a)?(e.addOp($.paintJpegXObject,m),void this.handler.send("obj",[A,this.pageIndex,"JpegStream",c.getIR()])):(Bc.buildImage(h.handler,h.xref,a,c,d).then(function(a){var b=a.createImageData(!1);h.handler.send("obj",[A,h.pageIndex,"Image",b],[b.data.buffer])}).then(void 0,function(a){b("Unable to decode image: "+a),h.handler.send("obj",[A,h.pageIndex,"Image",null])}),e.addOp($.paintImageXObject,m),void(f&&(g[f]={fn:$.paintImageXObject,args:m})))},handleSMask:function(a,b,c,d,e){var f=a.get("G"),g={subtype:a.get("S").name,backdrop:a.get("BC")};return this.buildFormXObject(b,f,g,c,d,e.state.clone())},handleTilingType:function(a,b,c,d,e,f,g){var h=new xb,i=[e.get("Resources"),c],j=Aa.merge(this.xref,i);return this.getOperatorList(d,g,j,h).then(function(){f.addDependencies(h.dependencies),f.addOp(a,J({fnArray:h.fnArray,argsArray:h.argsArray},e,b))})},handleSetFont:function(a,b,c,d,e,f){var g;b&&(b=b.slice(),g=b[0].name);var h=this;return this.loadFont(g,c,this.xref,a).then(function(b){return b.font.isType3Font?b.loadType3Data(h,a,d,e).then(function(){return b}):b}).then(function(a){return f.font=a.font,a.send(h.handler),a.loadedName})},handleText:function(a,b){var c=b.font,d=c.charsToGlyphs(a),e=!!(b.textRenderingMode&U.ADD_TO_PATH_FLAG);if(c.data&&(e||PDFJS.disableFontFace))for(var f=function(a){if(!c.renderer.hasBuiltPath(a)){var b=c.renderer.getPathJs(a);this.handler.send("commonobj",[c.loadedName+"_path_"+a,"FontPath",b])}}.bind(this),g=0,h=d.length;h>g;g++){var i=d[g];if(null!==i){f(i.fontChar);var j=i.accent;j&&j.fontChar&&f(j.fontChar)}}return d},setGState:function(c,d,e,f,g,h){var i=[],j=d.map,k=this,l=Promise.resolve();for(var m in j){var n=j[m];switch(m){case"Type":break;case"LW":case"LC":case"LJ":case"ML":case"D":case"RI":case"FL":case"CA":case"ca":i.push([m,n]);break;case"Font":l=l.then(function(){return k.handleSetFont(c,null,n[0],e,f,h.state).then(function(a){e.addDependency(a),i.push([m,[a,n[1]]])})});break;case"BM":i.push([m,n]);break;case"SMask":if(z(n)&&"None"===n.name){i.push([m,!1]);break}var o=g.fetchIfRef(n);B(o)?(l=l.then(function(){return k.handleSMask(o,c,e,f,h)}),i.push([m,!0])):b("Unsupported SMask type");break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":a("graphic state operator "+m);break;default:a("Unknown graphic state operator "+m)}}return l.then(function(){i.length>=0&&e.addOp($.setGState,[i])})},loadFont:function(a,c,d,f){function g(){return Promise.resolve(new wb("g_font_error",new ec("Font "+a+" is not available"),c))}var h;if(c)e(F(c)),h=c;else{var i=f.get("Font");if(!i)return b("fontRes not available"),g();h=i.getRaw(a)}if(!h)return b("fontRef not available"),g();if(this.fontCache.has(h))return this.fontCache.get(h);if(c=d.fetchIfRef(h),!B(c))return g();if(c.translated)return c.translated;var j=G(),k=this.preEvaluateFont(c,d),l=k.descriptor,m=h.num+"_"+h.gen;if(B(l)){l.fontAliases||(l.fontAliases=Object.create(null));var n=l.fontAliases,o=k.hash;if(n[o]){var p=n[o].aliasRef;if(p&&this.fontCache.has(p))return this.fontCache.putAlias(h,p),this.fontCache.get(h)}n[o]||(n[o]={fontID:dc.getFontID()}),n[o].aliasRef=h,m=n[o].fontID}var q=B(h);q||this.fontCache.put(h,j.promise),c.loadedName="g_font_"+(q?a.replace(/\W/g,""):m),c.translated=j.promise;var r;try{r=Promise.resolve(this.translateFont(k,d))}catch(s){r=Promise.reject(s)}return r.then(function(a){if(void 0!==a.fontType){var b=d.stats.fontTypes;b[a.fontType]=!0}j.resolve(new wb(c.loadedName,a,c))},function(a){aa.notify(_.font);try{var b=k.descriptor,e=b&&b.get("FontFile3"),f=e&&e.get("Subtype"),g=P(k.type,f&&f.name),h=d.stats.fontTypes;h[g]=!0}catch(i){}j.resolve(new wb(c.loadedName,new ec(a instanceof Error?a.message:a),c))}),j.promise},buildPath:function(a,b,c){var d=a.length-1;if(c||(c=[]),0>d||a.fnArray[d]!==$.constructPath)a.addOp($.constructPath,[[b],c]);else{var e=a.argsArray[d];e[0].push(b),Array.prototype.push.apply(e[1],c)}},handleColorN:function(a,b,c,d,e,f,g,h){var i,l=c[c.length-1];if(z(l)&&(i=e.get(l.name))){var m=D(i)?i.dict:i,n=m.get("PatternType");if(n===j){var o=d.base?d.base.getRgb(c,0):null;return this.handleTilingType(b,o,f,i,m,a,g)}if(n===k){var p=m.get("Shading"),q=m.get("Matrix");return i=tb.parseShading(p,q,h,f),a.addOp(b,i.getIR()),Promise.resolve()}return Promise.reject("Unknown PatternType: "+n)}return a.addOp(b,c),Promise.resolve()},getOperatorList:function(d,g,h,j,k){var l=this,m=this.xref,n={};e(j),h=h||Aa.empty;var o=h.get("XObject")||Aa.empty,p=h.get("Pattern")||Aa.empty,q=new yb(k||new Ab),r=new Bb(d,m,q),s=new f;return new Promise(function t(d,f){g.ensureNotTerminated(),s.reset();for(var k,u,v,w,A={};!(k=s.check())&&(A.args=null,r.read(A));){var C=A.args,E=A.fn;switch(0|E){case $.paintXObject:if(C[0].code)break;var F=C[0].name;if(!F){b("XObject must be referred to by name.");continue}if(void 0!==n[F]){j.addOp(n[F].fn,n[F].args),C=null;continue}var G=o.get(F);if(G){e(D(G),"XObject should be a stream");var H=G.dict.get("Subtype");if(e(z(H),"XObject should have a Name subtype"),"Form"===H.name)return q.save(),l.buildFormXObject(h,G,null,j,g,q.state.clone()).then(function(){q.restore(),t(d,f)},f);if("Image"===H.name){l.buildPaintImageXObject(h,G,!1,j,F,n),C=null;continue}if("PS"===H.name){a("Ignored XObject subtype PS");continue}c("Unhandled XObject subtype "+H.name)}break;case $.setFont:var I=C[1];return l.handleSetFont(h,C,null,j,g,q.state).then(function(a){j.addDependency(a),j.addOp($.setFont,[a,I]),t(d,f)},f);case $.endInlineImage:var J=C[0].cacheKey;if(J){var K=n[J];if(void 0!==K){j.addOp(K.fn,K.args),C=null;continue}}l.buildPaintImageXObject(h,C[0],!0,j,J,n),C=null;continue;case $.showText:C[0]=l.handleText(C[0],q.state);break;case $.showSpacedText:var L=C[0],M=[],N=L.length,O=q.state;for(u=0;N>u;++u){var P=L[u];y(P)?Array.prototype.push.apply(M,l.handleText(P,O)):x(P)&&M.push(P)}C[0]=M,E=$.showText;break;case $.nextLineShowText:j.addOp($.nextLine),C[0]=l.handleText(C[0],q.state),E=$.showText;break;case $.nextLineSetSpacingShowText:j.addOp($.nextLine),j.addOp($.setWordSpacing,[C.shift()]),j.addOp($.setCharSpacing,[C.shift()]),C[0]=l.handleText(C[0],q.state),E=$.showText;break;case $.setTextRenderingMode:q.state.textRenderingMode=C[0];break;case $.setFillColorSpace:q.state.fillColorSpace=Xa.parse(C[0],m,h);continue;case $.setStrokeColorSpace:q.state.strokeColorSpace=Xa.parse(C[0],m,h);continue;case $.setFillColor:w=q.state.fillColorSpace,C=w.getRgb(C,0),E=$.setFillRGBColor;break;case $.setStrokeColor:w=q.state.strokeColorSpace,C=w.getRgb(C,0),E=$.setStrokeRGBColor;break;case $.setFillGray:q.state.fillColorSpace=Xa.singletons.gray,C=Xa.singletons.gray.getRgb(C,0),E=$.setFillRGBColor;break;case $.setStrokeGray:q.state.strokeColorSpace=Xa.singletons.gray,C=Xa.singletons.gray.getRgb(C,0),E=$.setStrokeRGBColor;break;case $.setFillCMYKColor:q.state.fillColorSpace=Xa.singletons.cmyk,C=Xa.singletons.cmyk.getRgb(C,0),E=$.setFillRGBColor;break;case $.setStrokeCMYKColor:q.state.strokeColorSpace=Xa.singletons.cmyk,C=Xa.singletons.cmyk.getRgb(C,0),E=$.setStrokeRGBColor;break;case $.setFillRGBColor:q.state.fillColorSpace=Xa.singletons.rgb,C=Xa.singletons.rgb.getRgb(C,0);break;case $.setStrokeRGBColor:q.state.strokeColorSpace=Xa.singletons.rgb,C=Xa.singletons.rgb.getRgb(C,0);break;case $.setFillColorN:if(w=q.state.fillColorSpace,"Pattern"===w.name)return l.handleColorN(j,$.setFillColorN,C,w,p,h,g,m).then(function(){t(d,f)},f);C=w.getRgb(C,0),E=$.setFillRGBColor;break;case $.setStrokeColorN:if(w=q.state.strokeColorSpace,"Pattern"===w.name)return l.handleColorN(j,$.setStrokeColorN,C,w,p,h,g,m).then(function(){t(d,f)},f);C=w.getRgb(C,0),E=$.setStrokeRGBColor;break;case $.shadingFill:var Q=h.get("Shading");Q||c("No shading resource found");var R=Q.get(C[0].name);R||c("No shading object found");var S=tb.parseShading(R,null,m,h),T=S.getIR();C=[T],E=$.shadingFill;break;case $.setGState:var U=C[0],V=h.get("ExtGState");if(!B(V)||!V.has(U.name))break;var W=V.get(U.name);return l.setGState(h,W,j,g,m,q).then(function(){t(d,f)},f);case $.moveTo:case $.lineTo:case $.curveTo:case $.curveTo2:case $.curveTo3:case $.closePath:l.buildPath(j,E,C);continue;case $.rectangle:l.buildPath(j,E,C);continue;case $.markPoint:case $.markPointProps:case $.beginMarkedContent:case $.beginMarkedContentProps:case $.endMarkedContent:case $.beginCompat:case $.endCompat:continue}j.addOp(E,C)}if(k)return void i.then(function(){t(d,f)},f);for(u=0,v=r.savedStatesDepth;v>u;u++)j.addOp($.restore,[]);d()})},getTextContent:function(a,b,c,d){function g(){var a=r.font;return a.loadedName in l.styles||(l.styles[a.loadedName]={fontFamily:a.fallbackName,ascent:a.ascent,descent:a.descent,vertical:a.vertical}),{str:[],dir:null,width:0,height:0,transform:null,fontName:a.loadedName}}function h(a){var b=a.str.join(""),c=PDFJS.bidi(b,-1,r.font.vertical);return a.str=c.str,a.dir=c.dir,a}function j(a,b){return p.loadFont(a,b,q,c).then(function(a){r.font=a.font,r.fontMatrix=a.font.fontMatrix||T})}function k(a,b){var c=r.font;if(b=b||g(),!b.transform){var d=[r.fontSize*r.textHScale,0,0,r.fontSize,0,r.textRise];if(c.isType3Font&&r.fontMatrix!==T&&1===r.fontSize){var e=c.bbox[3]-c.bbox[1];e>0&&(e*=r.fontMatrix[3],d[3]*=e)}var f=b.transform=na.transform(r.ctm,na.transform(r.textMatrix,d));c.vertical?b.width=Math.sqrt(f[0]*f[0]+f[1]*f[1]):b.height=Math.sqrt(f[2]*f[2]+f[3]*f[3])}for(var h=0,i=0,j=c.charsToGlyphs(a),k=c.defaultVMetrics,l=0;l<j.length;l++){var m=j[l];if(m){var n=null,o=null,p=null;c.vertical?m.vmetric?(p=m.vmetric[0],n=m.vmetric[1],o=m.vmetric[2]):(p=m.width,n=.5*m.width,o=k[2]):p=m.width;var q=m.unicode;void 0!==Zb[q]&&(q=Zb[q]),q=N(q);var s=0;b.str.length>0&&(s=r.charSpacing);var t=0,u=0;if(c.vertical){var v=p*r.fontMatrix[0];u=v*r.fontSize+s,i+=u}else{var w=p*r.fontMatrix[0];t=(w*r.fontSize+s)*r.textHScale,h+=t}r.translateTextMatrix(t,u),b.str.push(q)}else h+=r.wordSpacing*r.textHScale}var x=r.textLineMatrix[0],y=r.textLineMatrix[1],z=Math.sqrt(x*x+y*y);x=r.ctm[0],y=r.ctm[1];var A=Math.sqrt(x*x+y*y);return c.vertical?b.height+=Math.abs(i*A*z):b.width+=h*A*z,b}d=d||new yb(new zb);var l={items:[],styles:Object.create(null)},m=l.items,n=.3,o=1.5,p=this,q=this.xref;c=q.fetchIfRef(c)||Aa.empty;var r,s=null,t={},u=new Bb(a,q,d),v=new f;return new Promise(function w(a,f){b.ensureNotTerminated(),v.reset();for(var q,x={},y=[];!(q=v.check())&&(y.length=0,x.args=y,u.read(x));){r=d.state;var A=x.fn;switch(y=x.args,0|A){case $.setFont:return r.fontSize=y[1],j(y[0].name).then(function(){w(a,f)},f);case $.setTextRise:r.textRise=y[0];break;case $.setHScale:r.textHScale=y[0]/100;break;case $.setLeading:r.leading=y[0];break;case $.moveText:r.translateTextLineMatrix(y[0],y[1]),r.textMatrix=r.textLineMatrix.slice();break;case $.setLeadingMoveText:r.leading=-y[1],r.translateTextLineMatrix(y[0],y[1]),r.textMatrix=r.textLineMatrix.slice();break;case $.nextLine:r.carriageReturn();break;case $.setTextMatrix:r.setTextMatrix(y[0],y[1],y[2],y[3],y[4],y[5]),r.setTextLineMatrix(y[0],y[1],y[2],y[3],y[4],y[5]);break;case $.setCharSpacing:r.charSpacing=y[0];break;case $.setWordSpacing:r.wordSpacing=y[0];break;case $.beginText:r.textMatrix=ma.slice(),r.textLineMatrix=ma.slice();break;case $.showSpacedText:for(var E,F=y[0],G=g(),H=0,I=F.length;I>H;H++)if("string"==typeof F[H])k(F[H],G);else{var J=F[H]*r.fontSize/1e3;if(r.font.vertical?(E=J*r.textMatrix[3],r.translateTextMatrix(0,E),G.height+=E):(E=J*r.textHScale*r.textMatrix[0],r.translateTextMatrix(E,0),G.width-=E),F[H]<0&&r.font.spaceWidth>0){var K=-F[H]/r.font.spaceWidth;if(K>o)for(K=Math.round(K);K--;)G.str.push(" ");else K>n&&G.str.push(" ")}}m.push(h(G));break;case $.showText:m.push(h(k(y[0])));break;case $.nextLineShowText:r.carriageReturn(),m.push(h(k(y[0])));break;case $.nextLineSetSpacingShowText:r.wordSpacing=y[0],r.charSpacing=y[1],r.carriageReturn(),m.push(h(k(y[2])));break;case $.paintXObject:if(y[0].code)break;s||(s=c.get("XObject")||Aa.empty);var L=y[0].name;if(t.key===L){t.texts&&(na.appendToArray(m,t.texts.items),na.extendObj(l.styles,t.texts.styles));break}var M=s.get(L);if(!M)break;e(D(M),"XObject should be a stream");var N=M.dict.get("Subtype");if(e(z(N),"XObject should have a Name subtype"),"Form"!==N.name){t.key=L,t.texts=null;break}d.save();var O=M.dict.get("Matrix");return C(O)&&6===O.length&&d.transform(O),p.getTextContent(M,b,M.dict.get("Resources")||c,d).then(function(b){na.appendToArray(m,b.items),na.extendObj(l.styles,b.styles),d.restore(),t.key=L,t.texts=b,w(a,f)},f);case $.setGState:var P=y[0],Q=c.get("ExtGState");if(!B(Q)||!Q.has(P.name))break;var R=Q.get(P.name),S=null;for(var T in R)"Font"===T&&(e(!S),S=R[T]);if(S)return r.fontSize=S[1],j(S[0]).then(function(){w(a,f)},f)}}return q?void i.then(function(){w(a,f)},f):void a(l)})},extractDataStructures:function(a,b,d,e){var f=a.get("ToUnicode")||b.get("ToUnicode");if(f&&(e.toUnicode=this.readToUnicode(f)),e.composite){var g=a.get("CIDSystemInfo");B(g)&&(e.cidSystemInfo={registry:g.get("Registry"),ordering:g.get("Ordering"),supplement:g.get("Supplement")});var h=a.get("CIDToGIDMap");D(h)&&(e.cidToGidMap=this.readCidToGidMap(h))}var i,j=[],k=null;if(a.has("Encoding")){if(i=a.get("Encoding"),B(i)){if(k=i.get("BaseEncoding"),k=z(k)?k.name:null,i.has("Differences"))for(var l=i.get("Differences"),m=0,n=0,o=l.length;o>n;n++){var p=l[n];if(x(p))m=p;else if(z(p))j[m++]=p.name;else{if(F(p)){l[n--]=d.fetch(p);continue}c("Invalid entry in 'Differences' array: "+p)}}}else z(i)?k=i.name:c("Encoding is not a Name nor a Dict");"MacRomanEncoding"!==k&&"MacExpertEncoding"!==k&&"WinAnsiEncoding"!==k&&(k=null)}k?e.defaultEncoding=Pb[k].slice():(i="TrueType"===e.type?Pb.WinAnsiEncoding:Pb.StandardEncoding,e.flags&Ob.Symbolic&&(i=Pb.MacRomanEncoding,e.file||(/Symbol/i.test(e.name)?i=Pb.SymbolSetEncoding:/Dingbats/i.test(e.name)&&(i=Pb.ZapfDingbatsEncoding))),e.defaultEncoding=i),e.differences=j,e.baseEncodingName=k,e.dict=a},readToUnicode:function(a){var b,c=a;if(z(c))return b=Hb.create(c,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null),b instanceof Fb?new ac(0,65535):new _b(b.getMap());if(D(c)){if(b=Hb.create(c,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null),b instanceof Fb)return new ac(0,65535);var d=new Array(b.length);return b.forEach(function(a,b){for(var c=[],e=0;e<b.length;e+=2){var f=b.charCodeAt(e)<<8|b.charCodeAt(e+1);if(55296===(63488&f)){e+=2;var g=b.charCodeAt(e)<<8|b.charCodeAt(e+1);c.push(((1023&f)<<10)+(1023&g)+65536)}else c.push(f)}d[a]=String.fromCharCode.apply(String,c)}),new _b(d)}return null},readCidToGidMap:function(a){for(var b=a.getBytes(),c=[],d=0,e=b.length;e>d;d++){var f=b[d++]<<8|b[d];if(0!==f){var g=d>>1;c[g]=f}}return c},extractWidths:function(a,b,c,d){var e,f,g,h,i,j,k,l,m=[],n=0,o=[];if(d.composite){if(n=a.get("DW")||1e3,l=a.get("W"))for(f=0,g=l.length;g>f;f++)if(j=l[f++],k=b.fetchIfRef(l[f]),C(k))for(h=0,i=k.length;i>h;h++)m[j++]=k[h];else{var p=l[++f];for(h=j;k>=h;h++)m[h]=p}if(d.vertical){var q=a.get("DW2")||[880,-1e3];if(e=[q[1],.5*n,q[0]],q=a.get("W2"))for(f=0,g=q.length;g>f;f++)if(j=q[f++],k=b.fetchIfRef(q[f]),C(k))for(h=0,i=k.length;i>h;h++)o[j++]=[k[h++],k[h++],k[h]];else{var r=[q[++f],q[++f],q[++f]];for(h=j;k>=h;h++)o[h]=r}}}else{var s=d.firstChar;if(l=a.get("Widths")){for(h=s,f=0,g=l.length;g>f;f++)m[h++]=l[f];n=parseFloat(c.get("MissingWidth"))||0}else{var t=a.get("BaseFont");if(z(t)){var u=this.getBaseFontMetrics(t.name);m=this.buildCharCodeToWidth(u.widths,d),n=u.defaultWidth}}}var v=!0,w=n;for(var x in m){var y=m[x];if(y)if(w){if(w!==y){v=!1;break}}else w=y}v&&(d.flags|=Ob.FixedPitch),d.defaultWidth=n,d.widths=m,d.defaultVMetrics=e,d.vmetrics=o},isSerifFont:function(a){var b=a.split("-")[0];return b in Sb||-1!==b.search(/serif/gi)},getBaseFontMetrics:function(a){var b=0,c=[],d=!1,e=Qb[a]||a;e in Cc||(e=this.isSerifFont(a)?"Times-Roman":"Helvetica");var f=Cc[e];return x(f)?(b=f,d=!0):c=f,{defaultWidth:b,monospace:d,widths:c}},buildCharCodeToWidth:function(a,b){for(var c=Object.create(null),d=b.differences,e=b.defaultEncoding,f=0;256>f;f++)f in d&&a[d[f]]?c[f]=a[d[f]]:f in e&&a[e[f]]&&(c[f]=a[e[f]]);return c},preEvaluateFont:function(a,b){var d=a,f=a.get("Subtype");e(z(f),"invalid font Subtype");var g,h=!1;if("Type0"===f.name){var i=a.get("DescendantFonts");i||c("Descendant fonts are not specified"),a=C(i)?b.fetchIfRef(i[0]):i,f=a.get("Subtype"),e(z(f),"invalid font Subtype"),h=!0}var j=a.get("FontDescriptor");if(j){var k=new jd,l=d.getRaw("Encoding");if(z(l))k.update(l.name);else if(F(l))k.update(l.num+"_"+l.gen);else if(B(l))for(var m=l.getKeys(),n=0,o=m.length;o>n;n++){var p=l.getRaw(m[n]);z(p)?k.update(p.name):F(p)?k.update(p.num+"_"+p.gen):C(p)&&k.update(p.length.toString())}var q=a.get("ToUnicode")||d.get("ToUnicode");if(D(q)){var r=q.str||q;g=r.buffer?new Uint8Array(r.buffer.buffer,0,r.bufferLength):new Uint8Array(r.bytes.buffer,r.start,r.end-r.start),k.update(g)}else z(q)&&k.update(q.name);var s=a.get("Widths")||d.get("Widths");s&&(g=new Uint8Array(new Uint32Array(s).buffer),k.update(g))}return{descriptor:j,dict:a,baseDict:d,composite:h,type:f.name,hash:k?k.hexdigest():""}},translateFont:function(b,d){var f,g=b.baseDict,h=b.dict,i=b.composite,j=b.descriptor,k=b.type,l=i?65535:255;if(!j){if("Type3"!==k){var m=h.get("BaseFont");z(m)||c("Base font is not specified"),m=m.name.replace(/[,_]/g,"-");var n=this.getBaseFontMetrics(m),o=m.split("-")[0],p=(this.isSerifFont(o)?Ob.Serif:0)|(n.monospace?Ob.FixedPitch:0)|(Tb[o]?Ob.Symbolic:Ob.Nonsymbolic);return f={type:k,name:m,widths:n.widths,defaultWidth:n.defaultWidth,flags:p,firstChar:0,lastChar:l},this.extractDataStructures(h,h,d,f),f.widths=this.buildCharCodeToWidth(n.widths,f),new dc(m,null,f)}j=new Aa(null),j.set("FontName",ya.get(k)),j.set("FontBBox",h.get("FontBBox"))}var q=h.get("FirstChar")||0,r=h.get("LastChar")||l,s=j.get("FontName"),t=h.get("BaseFont");if(y(s)&&(s=ya.get(s)),y(t)&&(t=ya.get(t)),"Type3"!==k){var u=s&&s.name,v=t&&t.name;u!==v&&(a("The FontDescriptor's FontName is \""+u+'" but should be the same as the Font\'s BaseFont "'+v+'"'),u&&v&&0===v.indexOf(u)&&(s=t))}s=s||t,e(z(s),"invalid font name");var w=j.get("FontFile","FontFile2","FontFile3");if(w&&w.dict){var x=w.dict.get("Subtype");x&&(x=x.name);var A=w.dict.get("Length1"),B=w.dict.get("Length2")}if(f={type:k,name:s.name,subtype:x,file:w,length1:A,length2:B,loadedName:g.loadedName,composite:i,wideChars:i,fixedPitch:!1,fontMatrix:h.get("FontMatrix")||T,firstChar:q||0,lastChar:r||l,bbox:j.get("FontBBox"),ascent:j.get("Ascent"),descent:j.get("Descent"),xHeight:j.get("XHeight"),capHeight:j.get("CapHeight"),flags:j.get("Flags"),italicAngle:j.get("ItalicAngle"),coded:!1},i){var C=g.get("Encoding");z(C)&&(f.cidEncoding=C.name),f.cMap=Hb.create(C,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null),f.vertical=f.cMap.vertical}return this.extractDataStructures(h,g,d,f),this.extractWidths(h,d,j,f),"Type3"===k&&(f.isType3Font=!0),new dc(s.name,w,f)}},d}(),wb=function(){function a(a,b,c){this.loadedName=a,this.font=b,this.dict=c,this.type3Loaded=null,this.sent=!1}return a.prototype={send:function(a){if(!this.sent){var b=this.font.exportData();a.send("commonobj",[this.loadedName,"Font",b]),this.sent=!0}},loadType3Data:function(a,c,d,f){if(e(this.font.isType3Font),this.type3Loaded)return this.type3Loaded;for(var g=this.font,h=Promise.resolve(),i=this.dict.get("CharProcs").getAll(),j=this.dict.get("Resources")||c,k=Object.keys(i),l={},m=0,n=k.length;n>m;++m)h=h.then(function(c){var e=i[c],g=new xb;return a.getOperatorList(e,f,j,g).then(function(){l[c]=g.getIR(),d.addDependencies(g.dependencies)},function(a){b('Type3 font resource "'+c+'" is not available');var d=new xb;l[c]=d.getIR()})}.bind(this,k[m]));return this.type3Loaded=h.then(function(){g.charProcOperatorList=l}),this.type3Loaded}},a}(),xb=function(){function a(a){for(var b=[],c=a.fnArray,d=a.argsArray,e=0,f=a.length;f>e;e++)switch(c[e]){case $.paintInlineImageXObject:case $.paintInlineImageXObjectGroup:case $.paintImageMaskXObject:var g=d[e][0];g.cached||b.push(g.data.buffer)}return b}function b(a,b,c){this.messageHandler=b,this.fnArray=[],this.argsArray=[],this.dependencies={},this.pageIndex=c,this.intent=a}var c=1e3,d=c-5;return b.prototype={get length(){return this.argsArray.length},addOp:function(a,b){this.fnArray.push(a),this.argsArray.push(b),this.messageHandler&&(this.fnArray.length>=c?this.flush():this.fnArray.length>=d&&(a===$.restore||a===$.endText)&&this.flush())},addDependency:function(a){a in this.dependencies||(this.dependencies[a]=!0,this.addOp($.dependency,[a]))},addDependencies:function(a){for(var b in a)this.addDependency(b)},addOpList:function(a){na.extendObj(this.dependencies,a.dependencies);for(var b=0,c=a.length;c>b;b++)this.addOp(a.fnArray[b],a.argsArray[b])},getIR:function(){return{fnArray:this.fnArray,argsArray:this.argsArray,length:this.length}},flush:function(b){"oplist"!==this.intent&&(new Cb).optimize(this);var c=a(this);this.messageHandler.send("RenderPageChunk",{operatorList:{fnArray:this.fnArray,argsArray:this.argsArray,lastChunk:b,length:this.length},pageIndex:this.pageIndex,intent:this.intent},c),this.dependencies={},this.fnArray.length=0,this.argsArray.length=0}},b}(),yb=function(){function a(a){this.state=a,this.stateStack=[]}return a.prototype={save:function(){var a=this.state;this.stateStack.push(this.state),this.state=a.clone()},restore:function(){var a=this.stateStack.pop();a&&(this.state=a)},transform:function(a){this.state.ctm=na.transform(this.state.ctm,a)}},a}(),zb=function(){function a(){this.ctm=new Float32Array(ma),this.fontSize=0,this.font=null,this.fontMatrix=T,this.textMatrix=ma.slice(),this.textLineMatrix=ma.slice(),this.charSpacing=0,this.wordSpacing=0,this.leading=0,this.textHScale=1,this.textRise=0}return a.prototype={setTextMatrix:function(a,b,c,d,e,f){var g=this.textMatrix;g[0]=a,g[1]=b,g[2]=c,g[3]=d,g[4]=e,g[5]=f},setTextLineMatrix:function(a,b,c,d,e,f){var g=this.textLineMatrix;g[0]=a,g[1]=b,g[2]=c,g[3]=d,g[4]=e,g[5]=f},translateTextMatrix:function(a,b){var c=this.textMatrix;c[4]=c[0]*a+c[2]*b+c[4],c[5]=c[1]*a+c[3]*b+c[5]},translateTextLineMatrix:function(a,b){var c=this.textLineMatrix;c[4]=c[0]*a+c[2]*b+c[4],c[5]=c[1]*a+c[3]*b+c[5]},calcRenderMatrix:function(a){var b=[this.fontSize*this.textHScale,0,0,this.fontSize,0,this.textRise];return na.transform(a,na.transform(this.textMatrix,b))},carriageReturn:function(){this.translateTextLineMatrix(0,-this.leading),this.textMatrix=this.textLineMatrix.slice()},clone:function(){var a=Object.create(this);return a.textMatrix=this.textMatrix.slice(),a.textLineMatrix=this.textLineMatrix.slice(),a.fontMatrix=this.fontMatrix.slice(),a}},a}(),Ab=function(){function a(){this.ctm=new Float32Array(ma),this.font=null,this.textRenderingMode=U.FILL,this.fillColorSpace=Xa.singletons.gray,this.strokeColorSpace=Xa.singletons.gray}return a.prototype={clone:function(){return Object.create(this)}},a}(),Bb=function(){function c(a,b,c){this.parser=new Fc(new Gc(a,d),!1,b),this.stateManager=c,this.nonProcessedArgs=[]}var d={w:{id:$.setLineWidth,numArgs:1,variableArgs:!1},J:{id:$.setLineCap,numArgs:1,variableArgs:!1},j:{id:$.setLineJoin,numArgs:1,variableArgs:!1},M:{id:$.setMiterLimit,numArgs:1,variableArgs:!1},d:{id:$.setDash,numArgs:2,variableArgs:!1},ri:{id:$.setRenderingIntent,numArgs:1,variableArgs:!1},i:{id:$.setFlatness,numArgs:1,variableArgs:!1},gs:{id:$.setGState,numArgs:1,variableArgs:!1},q:{id:$.save,numArgs:0,variableArgs:!1},Q:{id:$.restore,numArgs:0,variableArgs:!1},cm:{id:$.transform,numArgs:6,variableArgs:!1},m:{id:$.moveTo,numArgs:2,variableArgs:!1},l:{id:$.lineTo,numArgs:2,variableArgs:!1},c:{id:$.curveTo,numArgs:6,variableArgs:!1},v:{id:$.curveTo2,numArgs:4,variableArgs:!1},y:{id:$.curveTo3,numArgs:4,variableArgs:!1},h:{id:$.closePath,numArgs:0,variableArgs:!1},re:{id:$.rectangle,numArgs:4,variableArgs:!1},S:{id:$.stroke,numArgs:0,variableArgs:!1},s:{id:$.closeStroke,numArgs:0,variableArgs:!1},f:{id:$.fill,numArgs:0,variableArgs:!1},F:{id:$.fill,numArgs:0,variableArgs:!1},"f*":{id:$.eoFill,numArgs:0,variableArgs:!1},B:{id:$.fillStroke,numArgs:0,variableArgs:!1},"B*":{id:$.eoFillStroke,numArgs:0,variableArgs:!1},b:{id:$.closeFillStroke,numArgs:0,variableArgs:!1},"b*":{id:$.closeEOFillStroke,numArgs:0,variableArgs:!1},n:{id:$.endPath,numArgs:0,variableArgs:!1},W:{id:$.clip,numArgs:0,variableArgs:!1},"W*":{id:$.eoClip,numArgs:0,variableArgs:!1},BT:{id:$.beginText,numArgs:0,variableArgs:!1},ET:{id:$.endText,numArgs:0,variableArgs:!1},Tc:{id:$.setCharSpacing,numArgs:1,variableArgs:!1},Tw:{id:$.setWordSpacing,numArgs:1,variableArgs:!1},Tz:{id:$.setHScale,numArgs:1,variableArgs:!1},TL:{id:$.setLeading,numArgs:1,variableArgs:!1},Tf:{id:$.setFont,numArgs:2,variableArgs:!1},Tr:{id:$.setTextRenderingMode,numArgs:1,variableArgs:!1},Ts:{id:$.setTextRise,numArgs:1,variableArgs:!1},Td:{id:$.moveText,numArgs:2,variableArgs:!1},TD:{id:$.setLeadingMoveText,numArgs:2,variableArgs:!1},Tm:{id:$.setTextMatrix,numArgs:6,variableArgs:!1},"T*":{id:$.nextLine,numArgs:0,variableArgs:!1},Tj:{id:$.showText,numArgs:1,variableArgs:!1},TJ:{id:$.showSpacedText,numArgs:1,variableArgs:!1},"'":{id:$.nextLineShowText,numArgs:1,variableArgs:!1},'"':{id:$.nextLineSetSpacingShowText,numArgs:3,variableArgs:!1},d0:{id:$.setCharWidth,numArgs:2,variableArgs:!1},d1:{id:$.setCharWidthAndBounds,numArgs:6,variableArgs:!1},CS:{id:$.setStrokeColorSpace,numArgs:1,variableArgs:!1},cs:{id:$.setFillColorSpace,numArgs:1,variableArgs:!1},SC:{id:$.setStrokeColor,numArgs:4,variableArgs:!0},SCN:{id:$.setStrokeColorN,numArgs:33,variableArgs:!0},sc:{id:$.setFillColor,numArgs:4,variableArgs:!0},scn:{id:$.setFillColorN,numArgs:33,variableArgs:!0},G:{id:$.setStrokeGray,numArgs:1,variableArgs:!1},g:{id:$.setFillGray,numArgs:1,variableArgs:!1},RG:{id:$.setStrokeRGBColor,numArgs:3,variableArgs:!1},rg:{id:$.setFillRGBColor,numArgs:3,variableArgs:!1},K:{id:$.setStrokeCMYKColor,numArgs:4,variableArgs:!1},k:{id:$.setFillCMYKColor,numArgs:4,variableArgs:!1},sh:{id:$.shadingFill,numArgs:1,variableArgs:!1},BI:{id:$.beginInlineImage,numArgs:0,variableArgs:!1},ID:{id:$.beginImageData,numArgs:0,variableArgs:!1},EI:{id:$.endInlineImage,numArgs:1,variableArgs:!1},Do:{id:$.paintXObject,numArgs:1,
-variableArgs:!1},MP:{id:$.markPoint,numArgs:1,variableArgs:!1},DP:{id:$.markPointProps,numArgs:2,variableArgs:!1},BMC:{id:$.beginMarkedContent,numArgs:1,variableArgs:!1},BDC:{id:$.beginMarkedContentProps,numArgs:2,variableArgs:!1},EMC:{id:$.endMarkedContent,numArgs:0,variableArgs:!1},BX:{id:$.beginCompat,numArgs:0,variableArgs:!1},EX:{id:$.endCompat,numArgs:0,variableArgs:!1},BM:null,BD:null,"true":null,fa:null,fal:null,fals:null,"false":null,nu:null,nul:null,"null":null};return c.prototype={get savedStatesDepth(){return this.stateManager.stateStack.length},read:function(c){for(var f=c.args;;){var g=this.parser.getObj();if(A(g)){var h=g.cmd,i=d[h];if(!i){b('Unknown command "'+h+'"');continue}var j=i.id,k=i.numArgs,l=null!==f?f.length:0;if(i.variableArgs)l>k&&a("Command "+j+": expected [0,"+k+"] args, but received "+l+" args");else{if(l!==k){for(var m=this.nonProcessedArgs;l>k;)m.push(f.shift()),l--;for(;k>l&&0!==m.length;)f||(f=[]),f.unshift(m.pop()),l++}if(k>l){a("Command "+j+": because expected "+k+" args, but received "+l+" args; skipping"),f=null;continue}}return this.preprocessCommand(j,f),c.fn=j,c.args=f,!0}if(R(g))return!1;null!==g&&(f||(f=[]),f.push(g instanceof Aa?g.getAll():g),e(f.length<=33,"Too many arguments"))}},preprocessCommand:function(a,b){switch(0|a){case $.save:this.stateManager.save();break;case $.restore:this.stateManager.restore();break;case $.transform:this.stateManager.transform(b)}}},c}(),Cb=function(){function a(a,b,c){for(var d=a,e=0,f=b.length-1;f>e;e++){var g=b[e];d=d[g]||(d[g]=[])}d[b[b.length-1]]=c}function b(a,b,c,d){for(var e=a+2,f=0;b>f;f++){var g=d[e+4*f],h=1===g.length&&g[0];if(!h||1!==h.width||1!==h.height||h.data.length&&(1!==h.data.length||0!==h.data[0]))break;c[e+4*f]=$.paintSolidColorImageMask}return b-f}function c(){}var d=[];return a(d,[$.save,$.transform,$.paintInlineImageXObject,$.restore],function(a){for(var b=10,c=200,d=1e3,e=1,f=a.fnArray,g=a.argsArray,h=a.iCurr,i=h-3,j=h-2,k=h-1,l=i+4,m=f.length;m>l+3&&f[l]===$.save&&f[l+1]===$.transform&&f[l+2]===$.paintInlineImageXObject&&f[l+3]===$.restore;)l+=4;var n=Math.min((l-i)/4,c);if(b>n)return l;var o,p=0,q=[],r=0,s=e,t=e;for(o=0;n>o;o++){var u=g[j+(o<<2)],v=g[k+(o<<2)][0];s+v.width>d&&(p=Math.max(p,s),t+=r+2*e,s=0,r=0),q.push({transform:u,x:s,y:t,w:v.width,h:v.height}),s+=v.width+2*e,r=Math.max(r,v.height)}var w=Math.max(p,s)+e,x=t+r+e,y=new Uint8Array(w*x*4),z=w<<2;for(o=0;n>o;o++){var A=g[k+(o<<2)][0].data,B=q[o].w<<2,C=0,D=q[o].x+q[o].y*w<<2;y.set(A.subarray(0,B),D-z);for(var E=0,F=q[o].h;F>E;E++)y.set(A.subarray(C,C+B),D),C+=B,D+=z;for(y.set(A.subarray(C-B,C),D);D>=0;)A[D-4]=A[D],A[D-3]=A[D+1],A[D-2]=A[D+2],A[D-1]=A[D+3],A[D+B]=A[D+B-4],A[D+B+1]=A[D+B-3],A[D+B+2]=A[D+B-2],A[D+B+3]=A[D+B-1],D-=z}return f.splice(i,4*n,$.paintInlineImageXObjectGroup),g.splice(i,4*n,[{width:w,height:x,kind:V.RGBA_32BPP,data:y},q]),i+1}),a(d,[$.save,$.transform,$.paintImageMaskXObject,$.restore],function(a){for(var c=10,d=100,e=1e3,f=a.fnArray,g=a.argsArray,h=a.iCurr,i=h-3,j=h-2,k=h-1,l=i+4,m=f.length;m>l+3&&f[l]===$.save&&f[l+1]===$.transform&&f[l+2]===$.paintImageMaskXObject&&f[l+3]===$.restore;)l+=4;var n=(l-i)/4;if(n=b(i,n,f,g),c>n)return l;var o,p,q,r=!1,s=g[k][0];if(0===g[j][1]&&0===g[j][2]){r=!0;var t=g[j][0],u=g[j][3];p=j+4;var v=k+4;for(o=1;n>o;o++,p+=4,v+=4)if(q=g[p],g[v][0]!==s||q[0]!==t||0!==q[1]||0!==q[2]||q[3]!==u){c>o?r=!1:n=o;break}}if(r){n=Math.min(n,e);var w=new Float32Array(2*n);for(p=j,o=0;n>o;o++,p+=4)q=g[p],w[o<<1]=q[4],w[(o<<1)+1]=q[5];f.splice(i,4*n,$.paintImageMaskXObjectRepeat),g.splice(i,4*n,[s,t,u,w])}else{n=Math.min(n,d);var x=[];for(o=0;n>o;o++){q=g[j+(o<<2)];var y=g[k+(o<<2)][0];x.push({data:y.data,width:y.width,height:y.height,transform:q})}f.splice(i,4*n,$.paintImageMaskXObjectGroup),g.splice(i,4*n,[x])}return i+1}),a(d,[$.save,$.transform,$.paintImageXObject,$.restore],function(a){var b=3,c=1e3,d=a.fnArray,e=a.argsArray,f=a.iCurr,g=f-3,h=f-2,i=f-1,j=f;if(0!==e[h][1]||0!==e[h][2])return j+1;for(var k=e[i][0],l=e[h][0],m=e[h][3],n=g+4,o=d.length;o>n+3&&d[n]===$.save&&d[n+1]===$.transform&&d[n+2]===$.paintImageXObject&&d[n+3]===$.restore&&e[n+1][0]===l&&0===e[n+1][1]&&0===e[n+1][2]&&e[n+1][3]===m&&e[n+2][0]===k;)n+=4;var p=Math.min((n-g)/4,c);if(b>p)return n;for(var q=new Float32Array(2*p),r=h,s=0;p>s;s++,r+=4){var t=e[r];q[s<<1]=t[4],q[(s<<1)+1]=t[5]}var u=[k,l,m,q];return d.splice(g,4*p,$.paintImageXObjectRepeat),e.splice(g,4*p,u),g+1}),a(d,[$.beginText,$.setFont,$.setTextMatrix,$.showText,$.endText],function(a){for(var b=3,c=1e3,d=a.fnArray,e=a.argsArray,f=a.iCurr,g=f-4,h=f-3,i=f-2,j=f-1,k=f,l=e[h][0],m=e[h][1],n=g+5,o=d.length;o>n+4&&d[n]===$.beginText&&d[n+1]===$.setFont&&d[n+2]===$.setTextMatrix&&d[n+3]===$.showText&&d[n+4]===$.endText&&e[n+1][0]===l&&e[n+1][1]===m;)n+=5;var p=Math.min((n-g)/5,c);if(b>p)return n;var q=g;g>=4&&d[g-4]===d[h]&&d[g-3]===d[i]&&d[g-2]===d[j]&&d[g-1]===d[k]&&e[g-4][0]===l&&e[g-4][1]===m&&(p++,q-=5);for(var r=q+4,s=1;p>s;s++)d.splice(r,3),e.splice(r,3),r+=2;return r+1}),c.prototype={optimize:function(a){for(var b,c=a.fnArray,e=a.argsArray,f={iCurr:0,fnArray:c,argsArray:e},g=0,h=c.length;h>g;)b=(b||d)[c[g]],"function"==typeof b?(f.iCurr=g,g=b(f),b=void 0,h=f.fnArray.length):g++}},c}(),Db=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"],Eb=function(){function a(a){this.codespaceRanges=[[],[],[],[]],this.numCodespaceRanges=0,this._map=[],this.name="",this.vertical=!1,this.useCMap=null,this.builtInCMap=a}return a.prototype={addCodespaceRange:function(a,b,c){this.codespaceRanges[a-1].push(b,c),this.numCodespaceRanges++},mapCidRange:function(a,b,c){for(;b>=a;)this._map[a++]=c++},mapBfRange:function(a,b,c){for(var d=c.length-1;b>=a;)this._map[a++]=c,c=c.substr(0,d)+String.fromCharCode(c.charCodeAt(d)+1)},mapBfRangeToArray:function(a,b,c){for(var d=0,e=c.length;b>=a&&e>d;)this._map[a]=c[d++],++a},mapOne:function(a,b){this._map[a]=b},lookup:function(a){return this._map[a]},contains:function(a){return void 0!==this._map[a]},forEach:function(a){var b,c=this._map,d=c.length;if(65536>=d)for(b=0;d>b;b++)void 0!==c[b]&&a(b,c[b]);else for(b in this._map)a(b,c[b])},charCodeOf:function(a){return this._map.indexOf(a)},getMap:function(){return this._map},readCharCode:function(a,b,c){for(var d=0,e=this.codespaceRanges,f=this.codespaceRanges.length,g=0;f>g;g++){d=(d<<8|a.charCodeAt(b+g))>>>0;for(var h=e[g],i=0,j=h.length;j>i;){var k=h[i++],l=h[i++];if(d>=k&&l>=d)return c.charcode=d,void(c.length=g+1)}}c.charcode=0,c.length=1},get length(){return this._map.length},get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(var a=0;65536>a;a++)if(this._map[a]!==a)return!1;return!0}},a}(),Fb=function(){function a(a,b){Eb.call(this),this.vertical=a,this.addCodespaceRange(b,0,65535)}return na.inherit(a,Eb,{}),a.prototype={addCodespaceRange:Eb.prototype.addCodespaceRange,mapCidRange:function(a,b,d){c("should not call mapCidRange")},mapBfRange:function(a,b,d){c("should not call mapBfRange")},mapBfRangeToArray:function(a,b,d){c("should not call mapBfRangeToArray")},mapOne:function(a,b){c("should not call mapCidOne")},lookup:function(a){return w(a)&&65535>=a?a:void 0},contains:function(a){return w(a)&&65535>=a},forEach:function(a){for(var b=0;65535>=b;b++)a(b,b)},charCodeOf:function(a){return w(a)&&65535>=a?a:-1},getMap:function(){for(var a=new Array(65536),b=0;65535>=b;b++)a[b]=b;return a},readCharCode:Eb.prototype.readCharCode,get length(){return 65536},get isIdentityCMap(){c("should not access .isIdentityCMap")}},a}(),Gb=function(){function a(a){var b=PDFJS.disableWorker,d=new XMLHttpRequest;if(d.open("GET",a,!1),!b)try{d.responseType="arraybuffer",b="arraybuffer"!==d.responseType}catch(e){b=!0}if(b&&d.overrideMimeType&&d.overrideMimeType("text/plain; charset=x-user-defined"),d.send(null),(b?d.responseText:d.response)||c("Unable to get binary cMap at: "+a),b){var f=Array.prototype.map.call(d.responseText,function(a){return 255&a.charCodeAt(0)});return new Uint8Array(f)}return new Uint8Array(d.response)}function b(a,b){for(var c=0,d=0;b>=d;d++)c=c<<8|a[d];return c>>>0}function d(a,b){return 1===b?String.fromCharCode(a[0],a[1]):3===b?String.fromCharCode(a[0],a[1],a[2],a[3]):String.fromCharCode.apply(null,a.subarray(0,b+1))}function f(a,b,c){for(var d=0,e=c;e>=0;e--)d+=a[e]+b[e],a[e]=255&d,d>>=8}function g(a,b){for(var c=1,d=b;d>=0&&c>0;d--)c+=a[d],a[d]=255&c,c>>=8}function h(a){this.buffer=a,this.pos=0,this.end=a.length,this.tmpBuf=new Uint8Array(l)}function i(i,j,l){var m=a(i),n=new h(m),o=n.readByte();j.vertical=!!(1&o);for(var p,q,r=null,s=new Uint8Array(k),t=new Uint8Array(k),u=new Uint8Array(k),v=new Uint8Array(k),w=new Uint8Array(k);(q=n.readByte())>=0;){var x=q>>5;if(7!==x){var y=!!(16&q),z=15&q;e(k>=z+1);var A,B=1,C=n.readNumber();switch(x){case 0:for(n.readHex(s,z),n.readHexNumber(t,z),f(t,s,z),j.addCodespaceRange(z+1,b(s,z),b(t,z)),A=1;C>A;A++)g(t,z),n.readHexNumber(s,z),f(s,t,z),n.readHexNumber(t,z),f(t,s,z),j.addCodespaceRange(z+1,b(s,z),b(t,z));break;case 1:for(n.readHex(s,z),n.readHexNumber(t,z),f(t,s,z),p=n.readNumber(),A=1;C>A;A++)g(t,z),n.readHexNumber(s,z),f(s,t,z),n.readHexNumber(t,z),f(t,s,z),p=n.readNumber();break;case 2:for(n.readHex(u,z),p=n.readNumber(),j.mapOne(b(u,z),p),A=1;C>A;A++)g(u,z),y||(n.readHexNumber(w,z),f(u,w,z)),p=n.readSigned()+(p+1),j.mapOne(b(u,z),p);break;case 3:for(n.readHex(s,z),n.readHexNumber(t,z),f(t,s,z),p=n.readNumber(),j.mapCidRange(b(s,z),b(t,z),p),A=1;C>A;A++)g(t,z),y?s.set(t):(n.readHexNumber(s,z),f(s,t,z)),n.readHexNumber(t,z),f(t,s,z),p=n.readNumber(),j.mapCidRange(b(s,z),b(t,z),p);break;case 4:for(n.readHex(u,B),n.readHex(v,z),j.mapOne(b(u,B),d(v,z)),A=1;C>A;A++)g(u,B),y||(n.readHexNumber(w,B),f(u,w,B)),g(v,z),n.readHexSigned(w,z),f(v,w,z),j.mapOne(b(u,B),d(v,z));break;case 5:for(n.readHex(s,B),n.readHexNumber(t,B),f(t,s,B),n.readHex(v,z),j.mapBfRange(b(s,B),b(t,B),d(v,z)),A=1;C>A;A++)g(t,B),y?s.set(t):(n.readHexNumber(s,B),f(s,t,B)),n.readHexNumber(t,B),f(t,s,B),n.readHex(v,z),j.mapBfRange(b(s,B),b(t,B),d(v,z));break;default:c("Unknown type: "+x)}}else switch(31&q){case 0:n.readString();break;case 1:r=n.readString()}}return r&&l(r),j}function j(){}var k=16,l=19;return h.prototype={readByte:function(){return this.pos>=this.end?-1:this.buffer[this.pos++]},readNumber:function(){var a,b=0;do{var d=this.readByte();0>d&&c("unexpected EOF in bcmap"),a=!(128&d),b=b<<7|127&d}while(!a);return b},readSigned:function(){var a=this.readNumber();return 1&a?~(a>>>1):a>>>1},readHex:function(a,b){a.set(this.buffer.subarray(this.pos,this.pos+b+1)),this.pos+=b+1},readHexNumber:function(a,b){var d,e=this.tmpBuf,f=0;do{var g=this.readByte();0>g&&c("unexpected EOF in bcmap"),d=!(128&g),e[f++]=127&g}while(!d);for(var h=b,i=0,j=0;h>=0;){for(;8>j&&e.length>0;)i=e[--f]<<j|i,j+=7;a[h]=255&i,h--,i>>=8,j-=8}},readHexSigned:function(a,b){this.readHexNumber(a,b);for(var c=1&a[b]?255:0,d=0,e=0;b>=e;e++)d=(1&d)<<8|a[e],a[e]=d>>1^c},readString:function(){for(var a=this.readNumber(),b="",c=0;a>c;c++)b+=String.fromCharCode(this.readNumber());return b}},j.prototype={read:i},j}(),Hb=function(){function a(a){for(var b=0,c=0;c<a.length;c++)b=b<<8|a.charCodeAt(c);return b>>>0}function d(a){y(a)||c("Malformed CMap: expected string.")}function f(a){w(a)||c("Malformed CMap: expected int.")}function g(b,c){for(;;){var e=c.getObj();if(R(e))break;if(A(e,"endbfchar"))return;d(e);var f=a(e);e=c.getObj(),d(e);var g=e;b.mapOne(f,g)}}function h(b,e){for(;;){var f=e.getObj();if(R(f))break;if(A(f,"endbfrange"))return;d(f);var g=a(f);f=e.getObj(),d(f);var h=a(f);if(f=e.getObj(),w(f)||y(f)){var i=w(f)?String.fromCharCode(f):f;b.mapBfRange(g,h,i)}else{if(!A(f,"["))break;f=e.getObj();for(var j=[];!A(f,"]")&&!R(f);)j.push(f),f=e.getObj();b.mapBfRangeToArray(g,h,j)}}c("Invalid bf range.")}function i(b,c){for(;;){var e=c.getObj();if(R(e))break;if(A(e,"endcidchar"))return;d(e);var g=a(e);e=c.getObj(),f(e);var h=e;b.mapOne(g,h)}}function j(b,c){for(;;){var e=c.getObj();if(R(e))break;if(A(e,"endcidrange"))return;d(e);var g=a(e);e=c.getObj(),d(e);var h=a(e);e=c.getObj(),f(e);var i=e;b.mapCidRange(g,h,i)}}function k(b,d){for(;;){var e=d.getObj();if(R(e))break;if(A(e,"endcodespacerange"))return;if(!y(e))break;var f=a(e);if(e=d.getObj(),!y(e))break;var g=a(e);b.addCodespaceRange(e.length,f,g)}c("Invalid codespace range.")}function l(a,b){var c=b.getObj();w(c)&&(a.vertical=!!c)}function m(a,b){var c=b.getObj();z(c)&&y(c.name)&&(a.name=c.name)}function n(a,b,c,d){var e,f;a:for(;;){var n=b.getObj();if(R(n))break;if(z(n))"WMode"===n.name?l(a,b):"CMapName"===n.name&&m(a,b),e=n;else if(A(n))switch(n.cmd){case"endcmap":break a;case"usecmap":z(e)&&(f=e.name);break;case"begincodespacerange":k(a,b);break;case"beginbfchar":g(a,b);break;case"begincidchar":i(a,b);break;case"beginbfrange":h(a,b);break;case"begincidrange":j(a,b)}}!d&&f&&(d=f),d&&o(a,c,d)}function o(a,b,c){if(a.useCMap=q(c,b),0===a.numCodespaceRanges){for(var d=a.useCMap.codespaceRanges,e=0;e<d.length;e++)a.codespaceRanges[e]=d[e].slice();a.numCodespaceRanges=a.useCMap.numCodespaceRanges}a.useCMap.forEach(function(b,c){a.contains(b)||a.mapOne(b,a.useCMap.lookup(b))})}function p(a,b){var c=b.url+a+".bcmap",d=new Eb(!0);return(new Gb).read(c,d,function(a){o(d,b,a)}),d}function q(a,b){if("Identity-H"===a)return new Fb(!1,2);if("Identity-V"===a)return new Fb(!0,2);if(-1===Db.indexOf(a)&&c("Unknown cMap name: "+a),e(b,"built-in cMap parameters are not provided"),b.packed)return p(a,b);var d=new XMLHttpRequest,f=b.url+a;d.open("GET",f,!1),d.send(null),d.responseText||c("Unable to get cMap at: "+f);var g=new Eb(!0),h=new Gc(new Nc(d.responseText));return n(g,h,b,null),g}return{create:function(a,d,e){if(z(a))return q(a.name,d);if(D(a)){var f=new Eb,g=new Gc(a);try{n(f,g,d,e)}catch(h){b("Invalid CMap data. "+h)}return f.isIdentityCMap?q(f.name,d):f}c("Encoding required.")}}}(),Ib=57344,Jb=63743,Kb=!1,Lb=1e3,Mb=!1,Nb=!1,Ob={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144},Pb={ExpertEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],MacExpertEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall"],MacRomanEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"],StandardEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],WinAnsiEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"],SymbolSetEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt"],ZapfDingbatsEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191"]},Qb={ArialNarrow:"Helvetica","ArialNarrow-Bold":"Helvetica-Bold","ArialNarrow-BoldItalic":"Helvetica-BoldOblique","ArialNarrow-Italic":"Helvetica-Oblique",ArialBlack:"Helvetica","ArialBlack-Bold":"Helvetica-Bold","ArialBlack-BoldItalic":"Helvetica-BoldOblique","ArialBlack-Italic":"Helvetica-Oblique",Arial:"Helvetica","Arial-Bold":"Helvetica-Bold","Arial-BoldItalic":"Helvetica-BoldOblique","Arial-Italic":"Helvetica-Oblique","Arial-BoldItalicMT":"Helvetica-BoldOblique","Arial-BoldMT":"Helvetica-Bold","Arial-ItalicMT":"Helvetica-Oblique",ArialMT:"Helvetica","Courier-Bold":"Courier-Bold","Courier-BoldItalic":"Courier-BoldOblique","Courier-Italic":"Courier-Oblique",CourierNew:"Courier","CourierNew-Bold":"Courier-Bold","CourierNew-BoldItalic":"Courier-BoldOblique","CourierNew-Italic":"Courier-Oblique","CourierNewPS-BoldItalicMT":"Courier-BoldOblique","CourierNewPS-BoldMT":"Courier-Bold","CourierNewPS-ItalicMT":"Courier-Oblique",CourierNewPSMT:"Courier",Helvetica:"Helvetica","Helvetica-Bold":"Helvetica-Bold","Helvetica-BoldItalic":"Helvetica-BoldOblique","Helvetica-BoldOblique":"Helvetica-BoldOblique","Helvetica-Italic":"Helvetica-Oblique","Helvetica-Oblique":"Helvetica-Oblique","Symbol-Bold":"Symbol",
-"Symbol-BoldItalic":"Symbol","Symbol-Italic":"Symbol",TimesNewRoman:"Times-Roman","TimesNewRoman-Bold":"Times-Bold","TimesNewRoman-BoldItalic":"Times-BoldItalic","TimesNewRoman-Italic":"Times-Italic",TimesNewRomanPS:"Times-Roman","TimesNewRomanPS-Bold":"Times-Bold","TimesNewRomanPS-BoldItalic":"Times-BoldItalic","TimesNewRomanPS-BoldItalicMT":"Times-BoldItalic","TimesNewRomanPS-BoldMT":"Times-Bold","TimesNewRomanPS-Italic":"Times-Italic","TimesNewRomanPS-ItalicMT":"Times-Italic",TimesNewRomanPSMT:"Times-Roman","TimesNewRomanPSMT-Bold":"Times-Bold","TimesNewRomanPSMT-BoldItalic":"Times-BoldItalic","TimesNewRomanPSMT-Italic":"Times-Italic"},Rb={CenturyGothic:"Helvetica","CenturyGothic-Bold":"Helvetica-Bold","CenturyGothic-BoldItalic":"Helvetica-BoldOblique","CenturyGothic-Italic":"Helvetica-Oblique",ComicSansMS:"Comic Sans MS","ComicSansMS-Bold":"Comic Sans MS-Bold","ComicSansMS-BoldItalic":"Comic Sans MS-BoldItalic","ComicSansMS-Italic":"Comic Sans MS-Italic",LucidaConsole:"Courier","LucidaConsole-Bold":"Courier-Bold","LucidaConsole-BoldItalic":"Courier-BoldOblique","LucidaConsole-Italic":"Courier-Oblique","MS-Gothic":"MS Gothic","MS-Gothic-Bold":"MS Gothic-Bold","MS-Gothic-BoldItalic":"MS Gothic-BoldItalic","MS-Gothic-Italic":"MS Gothic-Italic","MS-Mincho":"MS Mincho","MS-Mincho-Bold":"MS Mincho-Bold","MS-Mincho-BoldItalic":"MS Mincho-BoldItalic","MS-Mincho-Italic":"MS Mincho-Italic","MS-PGothic":"MS PGothic","MS-PGothic-Bold":"MS PGothic-Bold","MS-PGothic-BoldItalic":"MS PGothic-BoldItalic","MS-PGothic-Italic":"MS PGothic-Italic","MS-PMincho":"MS PMincho","MS-PMincho-Bold":"MS PMincho-Bold","MS-PMincho-BoldItalic":"MS PMincho-BoldItalic","MS-PMincho-Italic":"MS PMincho-Italic",Wingdings:"ZapfDingbats"},Sb={"Adobe Jenson":!0,"Adobe Text":!0,Albertus:!0,Aldus:!0,Alexandria:!0,Algerian:!0,"American Typewriter":!0,Antiqua:!0,Apex:!0,Arno:!0,Aster:!0,Aurora:!0,Baskerville:!0,Bell:!0,Bembo:!0,"Bembo Schoolbook":!0,Benguiat:!0,"Berkeley Old Style":!0,"Bernhard Modern":!0,"Berthold City":!0,Bodoni:!0,"Bauer Bodoni":!0,"Book Antiqua":!0,Bookman:!0,"Bordeaux Roman":!0,"Californian FB":!0,Calisto:!0,Calvert:!0,Capitals:!0,Cambria:!0,Cartier:!0,Caslon:!0,Catull:!0,Centaur:!0,"Century Old Style":!0,"Century Schoolbook":!0,Chaparral:!0,"Charis SIL":!0,Cheltenham:!0,"Cholla Slab":!0,Clarendon:!0,Clearface:!0,Cochin:!0,Colonna:!0,"Computer Modern":!0,"Concrete Roman":!0,Constantia:!0,"Cooper Black":!0,Corona:!0,Ecotype:!0,Egyptienne:!0,Elephant:!0,Excelsior:!0,Fairfield:!0,"FF Scala":!0,Folkard:!0,Footlight:!0,FreeSerif:!0,"Friz Quadrata":!0,Garamond:!0,Gentium:!0,Georgia:!0,Gloucester:!0,"Goudy Old Style":!0,"Goudy Schoolbook":!0,"Goudy Pro Font":!0,Granjon:!0,"Guardian Egyptian":!0,Heather:!0,Hercules:!0,"High Tower Text":!0,Hiroshige:!0,"Hoefler Text":!0,"Humana Serif":!0,Imprint:!0,"Ionic No. 5":!0,Janson:!0,Joanna:!0,Korinna:!0,Lexicon:!0,"Liberation Serif":!0,"Linux Libertine":!0,Literaturnaya:!0,Lucida:!0,"Lucida Bright":!0,Melior:!0,Memphis:!0,Miller:!0,Minion:!0,Modern:!0,"Mona Lisa":!0,"Mrs Eaves":!0,"MS Serif":!0,"Museo Slab":!0,"New York":!0,"Nimbus Roman":!0,"NPS Rawlinson Roadway":!0,Palatino:!0,Perpetua:!0,Plantin:!0,"Plantin Schoolbook":!0,Playbill:!0,"Poor Richard":!0,"Rawlinson Roadway":!0,Renault:!0,Requiem:!0,Rockwell:!0,Roman:!0,"Rotis Serif":!0,Sabon:!0,Scala:!0,Seagull:!0,Sistina:!0,Souvenir:!0,STIX:!0,"Stone Informal":!0,"Stone Serif":!0,Sylfaen:!0,Times:!0,Trajan:!0,"Trinité":!0,"Trump Mediaeval":!0,Utopia:!0,"Vale Type":!0,"Bitstream Vera":!0,"Vera Serif":!0,Versailles:!0,Wanted:!0,Weiss:!0,"Wide Latin":!0,Windsor:!0,XITS:!0},Tb={Dingbats:!0,Symbol:!0,ZapfDingbats:!0},Ub={2:10,3:32,4:33,5:34,6:35,7:36,8:37,9:38,10:39,11:40,12:41,13:42,14:43,15:44,16:45,17:46,18:47,19:48,20:49,21:50,22:51,23:52,24:53,25:54,26:55,27:56,28:57,29:58,30:894,31:60,32:61,33:62,34:63,35:64,36:65,37:66,38:67,39:68,40:69,41:70,42:71,43:72,44:73,45:74,46:75,47:76,48:77,49:78,50:79,51:80,52:81,53:82,54:83,55:84,56:85,57:86,58:87,59:88,60:89,61:90,62:91,63:92,64:93,65:94,66:95,67:96,68:97,69:98,70:99,71:100,72:101,73:102,74:103,75:104,76:105,77:106,78:107,79:108,80:109,81:110,82:111,83:112,84:113,85:114,86:115,87:116,88:117,89:118,90:119,91:120,92:121,93:122,94:123,95:124,96:125,97:126,98:196,99:197,100:199,101:201,102:209,103:214,104:220,105:225,106:224,107:226,108:228,109:227,110:229,111:231,112:233,113:232,114:234,115:235,116:237,117:236,118:238,119:239,120:241,121:243,122:242,123:244,124:246,125:245,126:250,127:249,128:251,129:252,130:8224,131:176,132:162,133:163,134:167,135:8226,136:182,137:223,138:174,139:169,140:8482,141:180,142:168,143:8800,144:198,145:216,146:8734,147:177,148:8804,149:8805,150:165,151:181,152:8706,153:8721,154:8719,156:8747,157:170,158:186,159:8486,160:230,161:248,162:191,163:161,164:172,165:8730,166:402,167:8776,168:8710,169:171,170:187,171:8230,210:218,223:711,224:321,225:322,227:353,229:382,234:253,252:263,253:268,254:269,258:258,260:260,261:261,265:280,266:281,268:283,269:313,275:323,276:324,278:328,284:345,285:346,286:347,292:367,295:377,296:378,298:380,305:963,306:964,307:966,308:8215,309:8252,310:8319,311:8359,312:8592,313:8593,337:9552,493:1039,494:1040,705:1524,706:8362,710:64288,711:64298,759:1617,761:1776,763:1778,775:1652,777:1764,778:1780,779:1781,780:1782,782:771,783:64726,786:8363,788:8532,790:768,791:769,792:768,795:803,797:64336,798:64337,799:64342,800:64343,801:64344,802:64345,803:64362,804:64363,805:64364,2424:7821,2425:7822,2426:7823,2427:7824,2428:7825,2429:7826,2430:7827,2433:7682,2678:8045,2679:8046,2830:1552,2838:686,2840:751,2842:753,2843:754,2844:755,2846:757,2856:767,2857:848,2858:849,2862:853,2863:854,2864:855,2865:861,2866:862,2906:7460,2908:7462,2909:7463,2910:7464,2912:7466,2913:7467,2914:7468,2916:7470,2917:7471,2918:7472,2920:7474,2921:7475,2922:7476,2924:7478,2925:7479,2926:7480,2928:7482,2929:7483,2930:7484,2932:7486,2933:7487,2934:7488,2936:7490,2937:7491,2938:7492,2940:7494,2941:7495,2942:7496,2944:7498,2946:7500,2948:7502,2950:7504,2951:7505,2952:7506,2954:7508,2955:7509,2956:7510,2958:7512,2959:7513,2960:7514,2962:7516,2963:7517,2964:7518,2966:7520,2967:7521,2968:7522,2970:7524,2971:7525,2972:7526,2974:7528,2975:7529,2976:7530,2978:1537,2979:1538,2980:1539,2982:1549,2983:1551,2984:1552,2986:1554,2987:1555,2988:1556,2990:1623,2991:1624,2995:1775,2999:1791,3002:64290,3003:64291,3004:64292,3006:64294,3007:64295,3008:64296,3011:1900,3014:8223,3015:8244,3017:7532,3018:7533,3019:7534,3075:7590,3076:7591,3079:7594,3080:7595,3083:7598,3084:7599,3087:7602,3088:7603,3091:7606,3092:7607,3095:7610,3096:7611,3099:7614,3100:7615,3103:7618,3104:7619,3107:8337,3108:8338,3116:1884,3119:1885,3120:1885,3123:1886,3124:1886,3127:1887,3128:1887,3131:1888,3132:1888,3135:1889,3136:1889,3139:1890,3140:1890,3143:1891,3144:1891,3147:1892,3148:1892,3153:580,3154:581,3157:584,3158:585,3161:588,3162:589,3165:891,3166:892,3169:1274,3170:1275,3173:1278,3174:1279,3181:7622,3182:7623,3282:11799,3316:578,3379:42785,3393:1159,3416:8377},Vb={227:322,264:261,291:346},Wb={63721:169,63193:169,63720:174,63194:174,63722:8482,63195:8482,63729:9127,63730:9128,63731:9129,63740:9131,63741:9132,63742:9133,63726:9121,63727:9122,63728:9123,63737:9124,63738:9125,63739:9126,63723:9115,63724:9116,63725:9117,63734:9118,63735:9119,63736:9120},Xb=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}],Yb=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"],Zb={"¨":" ̈","¯":" ̄","´":" ́","µ":"μ","¸":" ̧","IJ":"IJ","ij":"ij","Ŀ":"L·","ŀ":"l·","ʼn":"ʼn","ſ":"s","DŽ":"DŽ","Dž":"Dž","dž":"dž","LJ":"LJ","Lj":"Lj","lj":"lj","NJ":"NJ","Nj":"Nj","nj":"nj","DZ":"DZ","Dz":"Dz","dz":"dz","˘":" ̆","˙":" ̇","˚":" ̊","˛":" ̨","˜":" ̃","˝":" ̋","ͺ":" ͅ","΄":" ́","ϐ":"β","ϑ":"θ","ϒ":"Υ","ϕ":"φ","ϖ":"π","ϰ":"κ","ϱ":"ρ","ϲ":"ς","ϴ":"Θ","ϵ":"ε","Ϲ":"Σ","և":"եւ","ٵ":"اٴ","ٶ":"وٴ","ٷ":"ۇٴ","ٸ":"يٴ","ำ":"ํา","ຳ":"ໍາ","ໜ":"ຫນ","ໝ":"ຫມ","ཷ":"ྲཱྀ","ཹ":"ླཱྀ","ẚ":"aʾ","᾽":" ̓","᾿":" ̓","῀":" ͂","῾":" ̔"," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" ","‗":" ̳","․":".","‥":"..","…":"...","″":"′′","‴":"′′′","‶":"‵‵","‷":"‵‵‵","‼":"!!","‾":" ̅","⁇":"??","⁈":"?!","⁉":"!?","⁗":"′′′′"," ":" ","₨":"Rs","℀":"a/c","℁":"a/s","℃":"°C","℅":"c/o","℆":"c/u","ℇ":"Ɛ","℉":"°F","№":"No","℡":"TEL","ℵ":"א","ℶ":"ב","ℷ":"ג","ℸ":"ד","℻":"FAX","Ⅰ":"I","Ⅱ":"II","Ⅲ":"III","Ⅳ":"IV","Ⅴ":"V","Ⅵ":"VI","Ⅶ":"VII","Ⅷ":"VIII","Ⅸ":"IX","Ⅹ":"X","Ⅺ":"XI","Ⅻ":"XII","Ⅼ":"L","Ⅽ":"C","Ⅾ":"D","Ⅿ":"M","ⅰ":"i","ⅱ":"ii","ⅲ":"iii","ⅳ":"iv","ⅴ":"v","ⅵ":"vi","ⅶ":"vii","ⅷ":"viii","ⅸ":"ix","ⅹ":"x","ⅺ":"xi","ⅻ":"xii","ⅼ":"l","ⅽ":"c","ⅾ":"d","ⅿ":"m","∬":"∫∫","∭":"∫∫∫","∯":"∮∮","∰":"∮∮∮","⑴":"(1)","⑵":"(2)","⑶":"(3)","⑷":"(4)","⑸":"(5)","⑹":"(6)","⑺":"(7)","⑻":"(8)","⑼":"(9)","⑽":"(10)","⑾":"(11)","⑿":"(12)","⒀":"(13)","⒁":"(14)","⒂":"(15)","⒃":"(16)","⒄":"(17)","⒅":"(18)","⒆":"(19)","⒇":"(20)","⒈":"1.","⒉":"2.","⒊":"3.","⒋":"4.","⒌":"5.","⒍":"6.","⒎":"7.","⒏":"8.","⒐":"9.","⒑":"10.","⒒":"11.","⒓":"12.","⒔":"13.","⒕":"14.","⒖":"15.","⒗":"16.","⒘":"17.","⒙":"18.","⒚":"19.","⒛":"20.","⒜":"(a)","⒝":"(b)","⒞":"(c)","⒟":"(d)","⒠":"(e)","⒡":"(f)","⒢":"(g)","⒣":"(h)","⒤":"(i)","⒥":"(j)","⒦":"(k)","⒧":"(l)","⒨":"(m)","⒩":"(n)","⒪":"(o)","⒫":"(p)","⒬":"(q)","⒭":"(r)","⒮":"(s)","⒯":"(t)","⒰":"(u)","⒱":"(v)","⒲":"(w)","⒳":"(x)","⒴":"(y)","⒵":"(z)","⨌":"∫∫∫∫","⩴":"::=","⩵":"==","⩶":"===","⺟":"母","⻳":"龟","⼀":"一","⼁":"丨","⼂":"丶","⼃":"丿","⼄":"乙","⼅":"亅","⼆":"二","⼇":"亠","⼈":"人","⼉":"儿","⼊":"入","⼋":"八","⼌":"冂","⼍":"冖","⼎":"冫","⼏":"几","⼐":"凵","⼑":"刀","⼒":"力","⼓":"勹","⼔":"匕","⼕":"匚","⼖":"匸","⼗":"十","⼘":"卜","⼙":"卩","⼚":"厂","⼛":"厶","⼜":"又","⼝":"口","⼞":"囗","⼟":"土","⼠":"士","⼡":"夂","⼢":"夊","⼣":"夕","⼤":"大","⼥":"女","⼦":"子","⼧":"宀","⼨":"寸","⼩":"小","⼪":"尢","⼫":"尸","⼬":"屮","⼭":"山","⼮":"巛","⼯":"工","⼰":"己","⼱":"巾","⼲":"干","⼳":"幺","⼴":"广","⼵":"廴","⼶":"廾","⼷":"弋","⼸":"弓","⼹":"彐","⼺":"彡","⼻":"彳","⼼":"心","⼽":"戈","⼾":"戶","⼿":"手","⽀":"支","⽁":"攴","⽂":"文","⽃":"斗","⽄":"斤","⽅":"方","⽆":"无","⽇":"日","⽈":"曰","⽉":"月","⽊":"木","⽋":"欠","⽌":"止","⽍":"歹","⽎":"殳","⽏":"毋","⽐":"比","⽑":"毛","⽒":"氏","⽓":"气","⽔":"水","⽕":"火","⽖":"爪","⽗":"父","⽘":"爻","⽙":"爿","⽚":"片","⽛":"牙","⽜":"牛","⽝":"犬","⽞":"玄","⽟":"玉","⽠":"瓜","⽡":"瓦","⽢":"甘","⽣":"生","⽤":"用","⽥":"田","⽦":"疋","⽧":"疒","⽨":"癶","⽩":"白","⽪":"皮","⽫":"皿","⽬":"目","⽭":"矛","⽮":"矢","⽯":"石","⽰":"示","⽱":"禸","⽲":"禾","⽳":"穴","⽴":"立","⽵":"竹","⽶":"米","⽷":"糸","⽸":"缶","⽹":"网","⽺":"羊","⽻":"羽","⽼":"老","⽽":"而","⽾":"耒","⽿":"耳","⾀":"聿","⾁":"肉","⾂":"臣","⾃":"自","⾄":"至","⾅":"臼","⾆":"舌","⾇":"舛","⾈":"舟","⾉":"艮","⾊":"色","⾋":"艸","⾌":"虍","⾍":"虫","⾎":"血","⾏":"行","⾐":"衣","⾑":"襾","⾒":"見","⾓":"角","⾔":"言","⾕":"谷","⾖":"豆","⾗":"豕","⾘":"豸","⾙":"貝","⾚":"赤","⾛":"走","⾜":"足","⾝":"身","⾞":"車","⾟":"辛","⾠":"辰","⾡":"辵","⾢":"邑","⾣":"酉","⾤":"釆","⾥":"里","⾦":"金","⾧":"長","⾨":"門","⾩":"阜","⾪":"隶","⾫":"隹","⾬":"雨","⾭":"靑","⾮":"非","⾯":"面","⾰":"革","⾱":"韋","⾲":"韭","⾳":"音","⾴":"頁","⾵":"風","⾶":"飛","⾷":"食","⾸":"首","⾹":"香","⾺":"馬","⾻":"骨","⾼":"高","⾽":"髟","⾾":"鬥","⾿":"鬯","⿀":"鬲","⿁":"鬼","⿂":"魚","⿃":"鳥","⿄":"鹵","⿅":"鹿","⿆":"麥","⿇":"麻","⿈":"黃","⿉":"黍","⿊":"黑","⿋":"黹","⿌":"黽","⿍":"鼎","⿎":"鼓","⿏":"鼠","⿐":"鼻","⿑":"齊","⿒":"齒","⿓":"龍","⿔":"龜","⿕":"龠","〶":"〒","〸":"十","〹":"卄","〺":"卅","゛":" ゙","゜":" ゚","ㄱ":"ᄀ","ㄲ":"ᄁ","ㄳ":"ᆪ","ㄴ":"ᄂ","ㄵ":"ᆬ","ㄶ":"ᆭ","ㄷ":"ᄃ","ㄸ":"ᄄ","ㄹ":"ᄅ","ㄺ":"ᆰ","ㄻ":"ᆱ","ㄼ":"ᆲ","ㄽ":"ᆳ","ㄾ":"ᆴ","ㄿ":"ᆵ","ㅀ":"ᄚ","ㅁ":"ᄆ","ㅂ":"ᄇ","ㅃ":"ᄈ","ㅄ":"ᄡ","ㅅ":"ᄉ","ㅆ":"ᄊ","ㅇ":"ᄋ","ㅈ":"ᄌ","ㅉ":"ᄍ","ㅊ":"ᄎ","ㅋ":"ᄏ","ㅌ":"ᄐ","ㅍ":"ᄑ","ㅎ":"ᄒ","ㅏ":"ᅡ","ㅐ":"ᅢ","ㅑ":"ᅣ","ㅒ":"ᅤ","ㅓ":"ᅥ","ㅔ":"ᅦ","ㅕ":"ᅧ","ㅖ":"ᅨ","ㅗ":"ᅩ","ㅘ":"ᅪ","ㅙ":"ᅫ","ㅚ":"ᅬ","ㅛ":"ᅭ","ㅜ":"ᅮ","ㅝ":"ᅯ","ㅞ":"ᅰ","ㅟ":"ᅱ","ㅠ":"ᅲ","ㅡ":"ᅳ","ㅢ":"ᅴ","ㅣ":"ᅵ","ㅤ":"ᅠ","ㅥ":"ᄔ","ㅦ":"ᄕ","ㅧ":"ᇇ","ㅨ":"ᇈ","ㅩ":"ᇌ","ㅪ":"ᇎ","ㅫ":"ᇓ","ㅬ":"ᇗ","ㅭ":"ᇙ","ㅮ":"ᄜ","ㅯ":"ᇝ","ㅰ":"ᇟ","ㅱ":"ᄝ","ㅲ":"ᄞ","ㅳ":"ᄠ","ㅴ":"ᄢ","ㅵ":"ᄣ","ㅶ":"ᄧ","ㅷ":"ᄩ","ㅸ":"ᄫ","ㅹ":"ᄬ","ㅺ":"ᄭ","ㅻ":"ᄮ","ㅼ":"ᄯ","ㅽ":"ᄲ","ㅾ":"ᄶ","ㅿ":"ᅀ","ㆀ":"ᅇ","ㆁ":"ᅌ","ㆂ":"ᇱ","ㆃ":"ᇲ","ㆄ":"ᅗ","ㆅ":"ᅘ","ㆆ":"ᅙ","ㆇ":"ᆄ","ㆈ":"ᆅ","ㆉ":"ᆈ","ㆊ":"ᆑ","ㆋ":"ᆒ","ㆌ":"ᆔ","ㆍ":"ᆞ","ㆎ":"ᆡ","㈀":"(ᄀ)","㈁":"(ᄂ)","㈂":"(ᄃ)","㈃":"(ᄅ)","㈄":"(ᄆ)","㈅":"(ᄇ)","㈆":"(ᄉ)","㈇":"(ᄋ)","㈈":"(ᄌ)","㈉":"(ᄎ)","㈊":"(ᄏ)","㈋":"(ᄐ)","㈌":"(ᄑ)","㈍":"(ᄒ)","㈎":"(가)","㈏":"(나)","㈐":"(다)","㈑":"(라)","㈒":"(마)","㈓":"(바)","㈔":"(사)","㈕":"(아)","㈖":"(자)","㈗":"(차)","㈘":"(카)","㈙":"(타)","㈚":"(파)","㈛":"(하)","㈜":"(주)","㈝":"(오전)","㈞":"(오후)","㈠":"(一)","㈡":"(二)","㈢":"(三)","㈣":"(四)","㈤":"(五)","㈥":"(六)","㈦":"(七)","㈧":"(八)","㈨":"(九)","㈩":"(十)","㈪":"(月)","㈫":"(火)","㈬":"(水)","㈭":"(木)","㈮":"(金)","㈯":"(土)","㈰":"(日)","㈱":"(株)","㈲":"(有)","㈳":"(社)","㈴":"(名)","㈵":"(特)","㈶":"(財)","㈷":"(祝)","㈸":"(労)","㈹":"(代)","㈺":"(呼)","㈻":"(学)","㈼":"(監)","㈽":"(企)","㈾":"(資)","㈿":"(協)","㉀":"(祭)","㉁":"(休)","㉂":"(自)","㉃":"(至)","㋀":"1月","㋁":"2月","㋂":"3月","㋃":"4月","㋄":"5月","㋅":"6月","㋆":"7月","㋇":"8月","㋈":"9月","㋉":"10月","㋊":"11月","㋋":"12月","㍘":"0点","㍙":"1点","㍚":"2点","㍛":"3点","㍜":"4点","㍝":"5点","㍞":"6点","㍟":"7点","㍠":"8点","㍡":"9点","㍢":"10点","㍣":"11点","㍤":"12点","㍥":"13点","㍦":"14点","㍧":"15点","㍨":"16点","㍩":"17点","㍪":"18点","㍫":"19点","㍬":"20点","㍭":"21点","㍮":"22点","㍯":"23点","㍰":"24点","㏠":"1日","㏡":"2日","㏢":"3日","㏣":"4日","㏤":"5日","㏥":"6日","㏦":"7日","㏧":"8日","㏨":"9日","㏩":"10日","㏪":"11日","㏫":"12日","㏬":"13日","㏭":"14日","㏮":"15日","㏯":"16日","㏰":"17日","㏱":"18日","㏲":"19日","㏳":"20日","㏴":"21日","㏵":"22日","㏶":"23日","㏷":"24日","㏸":"25日","㏹":"26日","㏺":"27日","㏻":"28日","㏼":"29日","㏽":"30日","㏾":"31日","ff":"ff","fi":"fi","fl":"fl","ffi":"ffi","ffl":"ffl","ſt":"ſt","st":"st","ﬓ":"մն","ﬔ":"մե","ﬕ":"մի","ﬖ":"վն","ﬗ":"մխ","ﭏ":"אל","ﭐ":"ٱ","ﭑ":"ٱ","ﭒ":"ٻ","ﭓ":"ٻ","ﭔ":"ٻ","ﭕ":"ٻ","ﭖ":"پ","ﭗ":"پ","ﭘ":"پ","ﭙ":"پ","ﭚ":"ڀ","ﭛ":"ڀ","ﭜ":"ڀ","ﭝ":"ڀ","ﭞ":"ٺ","ﭟ":"ٺ","ﭠ":"ٺ","ﭡ":"ٺ","ﭢ":"ٿ","ﭣ":"ٿ","ﭤ":"ٿ","ﭥ":"ٿ","ﭦ":"ٹ","ﭧ":"ٹ","ﭨ":"ٹ","ﭩ":"ٹ","ﭪ":"ڤ","ﭫ":"ڤ","ﭬ":"ڤ","ﭭ":"ڤ","ﭮ":"ڦ","ﭯ":"ڦ","ﭰ":"ڦ","ﭱ":"ڦ","ﭲ":"ڄ","ﭳ":"ڄ","ﭴ":"ڄ","ﭵ":"ڄ","ﭶ":"ڃ","ﭷ":"ڃ","ﭸ":"ڃ","ﭹ":"ڃ","ﭺ":"چ","ﭻ":"چ","ﭼ":"چ","ﭽ":"چ","ﭾ":"ڇ","ﭿ":"ڇ","ﮀ":"ڇ","ﮁ":"ڇ","ﮂ":"ڍ","ﮃ":"ڍ","ﮄ":"ڌ","ﮅ":"ڌ","ﮆ":"ڎ","ﮇ":"ڎ","ﮈ":"ڈ","ﮉ":"ڈ","ﮊ":"ژ","ﮋ":"ژ","ﮌ":"ڑ","ﮍ":"ڑ","ﮎ":"ک","ﮏ":"ک","ﮐ":"ک","ﮑ":"ک","ﮒ":"گ","ﮓ":"گ","ﮔ":"گ","ﮕ":"گ","ﮖ":"ڳ","ﮗ":"ڳ","ﮘ":"ڳ","ﮙ":"ڳ","ﮚ":"ڱ","ﮛ":"ڱ","ﮜ":"ڱ","ﮝ":"ڱ","ﮞ":"ں","ﮟ":"ں","ﮠ":"ڻ","ﮡ":"ڻ","ﮢ":"ڻ","ﮣ":"ڻ","ﮤ":"ۀ","ﮥ":"ۀ","ﮦ":"ہ","ﮧ":"ہ","ﮨ":"ہ","ﮩ":"ہ","ﮪ":"ھ","ﮫ":"ھ","ﮬ":"ھ","ﮭ":"ھ","ﮮ":"ے","ﮯ":"ے","ﮰ":"ۓ","ﮱ":"ۓ","ﯓ":"ڭ","ﯔ":"ڭ","ﯕ":"ڭ","ﯖ":"ڭ","ﯗ":"ۇ","ﯘ":"ۇ","ﯙ":"ۆ","ﯚ":"ۆ","ﯛ":"ۈ","ﯜ":"ۈ","ﯝ":"ٷ","ﯞ":"ۋ","ﯟ":"ۋ","ﯠ":"ۅ","ﯡ":"ۅ","ﯢ":"ۉ","ﯣ":"ۉ","ﯤ":"ې","ﯥ":"ې","ﯦ":"ې","ﯧ":"ې","ﯨ":"ى","ﯩ":"ى","ﯪ":"ئا","ﯫ":"ئا","ﯬ":"ئە","ﯭ":"ئە","ﯮ":"ئو","ﯯ":"ئو","ﯰ":"ئۇ","ﯱ":"ئۇ","ﯲ":"ئۆ","ﯳ":"ئۆ","ﯴ":"ئۈ","ﯵ":"ئۈ","ﯶ":"ئې","ﯷ":"ئې","ﯸ":"ئې","ﯹ":"ئى","ﯺ":"ئى","ﯻ":"ئى","ﯼ":"ی","ﯽ":"ی","ﯾ":"ی","ﯿ":"ی","ﰀ":"ئج","ﰁ":"ئح","ﰂ":"ئم","ﰃ":"ئى","ﰄ":"ئي","ﰅ":"بج","ﰆ":"بح","ﰇ":"بخ","ﰈ":"بم","ﰉ":"بى","ﰊ":"بي","ﰋ":"تج","ﰌ":"تح","ﰍ":"تخ","ﰎ":"تم","ﰏ":"تى","ﰐ":"تي","ﰑ":"ثج","ﰒ":"ثم","ﰓ":"ثى","ﰔ":"ثي","ﰕ":"جح","ﰖ":"جم","ﰗ":"حج","ﰘ":"حم","ﰙ":"خج","ﰚ":"خح","ﰛ":"خم","ﰜ":"سج","ﰝ":"سح","ﰞ":"سخ","ﰟ":"سم","ﰠ":"صح","ﰡ":"صم","ﰢ":"ضج","ﰣ":"ضح","ﰤ":"ضخ","ﰥ":"ضم","ﰦ":"طح","ﰧ":"طم","ﰨ":"ظم","ﰩ":"عج","ﰪ":"عم","ﰫ":"غج","ﰬ":"غم","ﰭ":"فج","ﰮ":"فح","ﰯ":"فخ","ﰰ":"فم","ﰱ":"فى","ﰲ":"في","ﰳ":"قح","ﰴ":"قم","ﰵ":"قى","ﰶ":"قي","ﰷ":"كا","ﰸ":"كج","ﰹ":"كح","ﰺ":"كخ","ﰻ":"كل","ﰼ":"كم","ﰽ":"كى","ﰾ":"كي","ﰿ":"لج","ﱀ":"لح","ﱁ":"لخ","ﱂ":"لم","ﱃ":"لى","ﱄ":"لي","ﱅ":"مج","ﱆ":"مح","ﱇ":"مخ","ﱈ":"مم","ﱉ":"مى","ﱊ":"مي","ﱋ":"نج","ﱌ":"نح","ﱍ":"نخ","ﱎ":"نم","ﱏ":"نى","ﱐ":"ني","ﱑ":"هج","ﱒ":"هم","ﱓ":"هى","ﱔ":"هي","ﱕ":"يج","ﱖ":"يح","ﱗ":"يخ","ﱘ":"يم","ﱙ":"يى","ﱚ":"يي","ﱛ":"ذٰ","ﱜ":"رٰ","ﱝ":"ىٰ","ﱞ":" ٌّ","ﱟ":" ٍّ","ﱠ":" َّ","ﱡ":" ُّ","ﱢ":" ِّ","ﱣ":" ّٰ","ﱤ":"ئر","ﱥ":"ئز","ﱦ":"ئم","ﱧ":"ئن","ﱨ":"ئى","ﱩ":"ئي","ﱪ":"بر","ﱫ":"بز","ﱬ":"بم","ﱭ":"بن","ﱮ":"بى","ﱯ":"بي","ﱰ":"تر","ﱱ":"تز","ﱲ":"تم","ﱳ":"تن","ﱴ":"تى","ﱵ":"تي","ﱶ":"ثر","ﱷ":"ثز","ﱸ":"ثم","ﱹ":"ثن","ﱺ":"ثى","ﱻ":"ثي","ﱼ":"فى","ﱽ":"في","ﱾ":"قى","ﱿ":"قي","ﲀ":"كا","ﲁ":"كل","ﲂ":"كم","ﲃ":"كى","ﲄ":"كي","ﲅ":"لم","ﲆ":"لى","ﲇ":"لي","ﲈ":"ما","ﲉ":"مم","ﲊ":"نر","ﲋ":"نز","ﲌ":"نم","ﲍ":"نن","ﲎ":"نى","ﲏ":"ني","ﲐ":"ىٰ","ﲑ":"ير","ﲒ":"يز","ﲓ":"يم","ﲔ":"ين","ﲕ":"يى","ﲖ":"يي","ﲗ":"ئج","ﲘ":"ئح","ﲙ":"ئخ","ﲚ":"ئم","ﲛ":"ئه","ﲜ":"بج","ﲝ":"بح","ﲞ":"بخ","ﲟ":"بم","ﲠ":"به","ﲡ":"تج","ﲢ":"تح","ﲣ":"تخ","ﲤ":"تم","ﲥ":"ته","ﲦ":"ثم","ﲧ":"جح","ﲨ":"جم","ﲩ":"حج","ﲪ":"حم","ﲫ":"خج","ﲬ":"خم","ﲭ":"سج","ﲮ":"سح","ﲯ":"سخ","ﲰ":"سم","ﲱ":"صح","ﲲ":"صخ","ﲳ":"صم","ﲴ":"ضج","ﲵ":"ضح","ﲶ":"ضخ","ﲷ":"ضم","ﲸ":"طح","ﲹ":"ظم","ﲺ":"عج","ﲻ":"عم","ﲼ":"غج","ﲽ":"غم","ﲾ":"فج","ﲿ":"فح","ﳀ":"فخ","ﳁ":"فم","ﳂ":"قح","ﳃ":"قم","ﳄ":"كج","ﳅ":"كح","ﳆ":"كخ","ﳇ":"كل","ﳈ":"كم","ﳉ":"لج","ﳊ":"لح","ﳋ":"لخ","ﳌ":"لم","ﳍ":"له","ﳎ":"مج","ﳏ":"مح","ﳐ":"مخ","ﳑ":"مم","ﳒ":"نج","ﳓ":"نح","ﳔ":"نخ","ﳕ":"نم","ﳖ":"نه","ﳗ":"هج","ﳘ":"هم","ﳙ":"هٰ","ﳚ":"يج","ﳛ":"يح","ﳜ":"يخ","ﳝ":"يم","ﳞ":"يه","ﳟ":"ئم","ﳠ":"ئه","ﳡ":"بم","ﳢ":"به","ﳣ":"تم","ﳤ":"ته","ﳥ":"ثم","ﳦ":"ثه","ﳧ":"سم","ﳨ":"سه","ﳩ":"شم","ﳪ":"شه","ﳫ":"كل","ﳬ":"كم","ﳭ":"لم","ﳮ":"نم","ﳯ":"نه","ﳰ":"يم","ﳱ":"يه","ﳲ":"ـَّ","ﳳ":"ـُّ","ﳴ":"ـِّ","ﳵ":"طى","ﳶ":"طي","ﳷ":"عى","ﳸ":"عي","ﳹ":"غى","ﳺ":"غي","ﳻ":"سى","ﳼ":"سي","ﳽ":"شى","ﳾ":"شي","ﳿ":"حى","ﴀ":"حي","ﴁ":"جى","ﴂ":"جي","ﴃ":"خى","ﴄ":"خي","ﴅ":"صى","ﴆ":"صي","ﴇ":"ضى","ﴈ":"ضي","ﴉ":"شج","ﴊ":"شح","ﴋ":"شخ","ﴌ":"شم","ﴍ":"شر","ﴎ":"سر","ﴏ":"صر","ﴐ":"ضر","ﴑ":"طى","ﴒ":"طي","ﴓ":"عى","ﴔ":"عي","ﴕ":"غى","ﴖ":"غي","ﴗ":"سى","ﴘ":"سي","ﴙ":"شى","ﴚ":"شي","ﴛ":"حى","ﴜ":"حي","ﴝ":"جى","ﴞ":"جي","ﴟ":"خى","ﴠ":"خي","ﴡ":"صى","ﴢ":"صي","ﴣ":"ضى","ﴤ":"ضي","ﴥ":"شج","ﴦ":"شح","ﴧ":"شخ","ﴨ":"شم","ﴩ":"شر","ﴪ":"سر","ﴫ":"صر","ﴬ":"ضر","ﴭ":"شج","ﴮ":"شح","ﴯ":"شخ","ﴰ":"شم","ﴱ":"سه","ﴲ":"شه","ﴳ":"طم","ﴴ":"سج","ﴵ":"سح","ﴶ":"سخ","ﴷ":"شج","ﴸ":"شح","ﴹ":"شخ","ﴺ":"طم","ﴻ":"ظم","ﴼ":"اً","ﴽ":"اً","ﵐ":"تجم","ﵑ":"تحج","ﵒ":"تحج","ﵓ":"تحم","ﵔ":"تخم","ﵕ":"تمج","ﵖ":"تمح","ﵗ":"تمخ","ﵘ":"جمح","ﵙ":"جمح","ﵚ":"حمي","ﵛ":"حمى","ﵜ":"سحج","ﵝ":"سجح","ﵞ":"سجى","ﵟ":"سمح","ﵠ":"سمح","ﵡ":"سمج","ﵢ":"سمم","ﵣ":"سمم","ﵤ":"صحح","ﵥ":"صحح","ﵦ":"صمم","ﵧ":"شحم","ﵨ":"شحم","ﵩ":"شجي","ﵪ":"شمخ","ﵫ":"شمخ","ﵬ":"شمم","ﵭ":"شمم","ﵮ":"ضحى","ﵯ":"ضخم","ﵰ":"ضخم","ﵱ":"طمح","ﵲ":"طمح","ﵳ":"طمم","ﵴ":"طمي","ﵵ":"عجم","ﵶ":"عمم","ﵷ":"عمم","ﵸ":"عمى","ﵹ":"غمم","ﵺ":"غمي","ﵻ":"غمى","ﵼ":"فخم","ﵽ":"فخم","ﵾ":"قمح","ﵿ":"قمم","ﶀ":"لحم","ﶁ":"لحي","ﶂ":"لحى","ﶃ":"لجج","ﶄ":"لجج","ﶅ":"لخم","ﶆ":"لخم","ﶇ":"لمح","ﶈ":"لمح","ﶉ":"محج","ﶊ":"محم","ﶋ":"محي","ﶌ":"مجح","ﶍ":"مجم","ﶎ":"مخج","ﶏ":"مخم","ﶒ":"مجخ","ﶓ":"همج","ﶔ":"همم","ﶕ":"نحم","ﶖ":"نحى","ﶗ":"نجم","ﶘ":"نجم","ﶙ":"نجى","ﶚ":"نمي","ﶛ":"نمى","ﶜ":"يمم","ﶝ":"يمم","ﶞ":"بخي","ﶟ":"تجي","ﶠ":"تجى","ﶡ":"تخي","ﶢ":"تخى","ﶣ":"تمي","ﶤ":"تمى","ﶥ":"جمي","ﶦ":"جحى","ﶧ":"جمى","ﶨ":"سخى","ﶩ":"صحي","ﶪ":"شحي","ﶫ":"ضحي","ﶬ":"لجي","ﶭ":"لمي","ﶮ":"يحي","ﶯ":"يجي","ﶰ":"يمي","ﶱ":"ممي","ﶲ":"قمي","ﶳ":"نحي","ﶴ":"قمح","ﶵ":"لحم","ﶶ":"عمي","ﶷ":"كمي","ﶸ":"نجح","ﶹ":"مخي","ﶺ":"لجم","ﶻ":"كمم","ﶼ":"لجم","ﶽ":"نجح","ﶾ":"جحي","ﶿ":"حجي","ﷀ":"مجي","ﷁ":"فمي","ﷂ":"بحي","ﷃ":"كمم","ﷄ":"عجم","ﷅ":"صمم","ﷆ":"سخي","ﷇ":"نجي","﹉":"‾","﹊":"‾","﹋":"‾","﹌":"‾","﹍":"_","﹎":"_","﹏":"_","ﺀ":"ء","ﺁ":"آ","ﺂ":"آ","ﺃ":"أ","ﺄ":"أ","ﺅ":"ؤ","ﺆ":"ؤ","ﺇ":"إ","ﺈ":"إ","ﺉ":"ئ","ﺊ":"ئ","ﺋ":"ئ","ﺌ":"ئ","ﺍ":"ا","ﺎ":"ا","ﺏ":"ب","ﺐ":"ب","ﺑ":"ب","ﺒ":"ب","ﺓ":"ة","ﺔ":"ة","ﺕ":"ت","ﺖ":"ت","ﺗ":"ت","ﺘ":"ت","ﺙ":"ث","ﺚ":"ث","ﺛ":"ث","ﺜ":"ث","ﺝ":"ج","ﺞ":"ج","ﺟ":"ج","ﺠ":"ج","ﺡ":"ح","ﺢ":"ح","ﺣ":"ح","ﺤ":"ح","ﺥ":"خ","ﺦ":"خ","ﺧ":"خ","ﺨ":"خ","ﺩ":"د","ﺪ":"د","ﺫ":"ذ","ﺬ":"ذ","ﺭ":"ر","ﺮ":"ر","ﺯ":"ز","ﺰ":"ز","ﺱ":"س","ﺲ":"س","ﺳ":"س","ﺴ":"س","ﺵ":"ش","ﺶ":"ش","ﺷ":"ش","ﺸ":"ش","ﺹ":"ص","ﺺ":"ص","ﺻ":"ص","ﺼ":"ص","ﺽ":"ض","ﺾ":"ض","ﺿ":"ض","ﻀ":"ض","ﻁ":"ط","ﻂ":"ط","ﻃ":"ط","ﻄ":"ط","ﻅ":"ظ","ﻆ":"ظ","ﻇ":"ظ","ﻈ":"ظ","ﻉ":"ع","ﻊ":"ع","ﻋ":"ع","ﻌ":"ع","ﻍ":"غ","ﻎ":"غ","ﻏ":"غ","ﻐ":"غ","ﻑ":"ف","ﻒ":"ف","ﻓ":"ف","ﻔ":"ف","ﻕ":"ق","ﻖ":"ق","ﻗ":"ق","ﻘ":"ق","ﻙ":"ك","ﻚ":"ك","ﻛ":"ك","ﻜ":"ك","ﻝ":"ل","ﻞ":"ل","ﻟ":"ل","ﻠ":"ل","ﻡ":"م","ﻢ":"م","ﻣ":"م","ﻤ":"م","ﻥ":"ن","ﻦ":"ن","ﻧ":"ن","ﻨ":"ن","ﻩ":"ه","ﻪ":"ه","ﻫ":"ه","ﻬ":"ه","ﻭ":"و","ﻮ":"و","ﻯ":"ى","ﻰ":"ى","ﻱ":"ي","ﻲ":"ي","ﻳ":"ي","ﻴ":"ي","ﻵ":"لآ","ﻶ":"لآ","ﻷ":"لأ","ﻸ":"لأ","ﻹ":"لإ","ﻺ":"لإ","ﻻ":"لا","ﻼ":"لا"},$b=function(){function a(a,b,c,d,e,f){this.fontChar=a,this.unicode=b,this.accent=c,this.width=d,this.vmetric=e,this.operatorListId=f}return a.prototype.matchesForCache=function(a,b,c,d,e,f){return this.fontChar===a&&this.unicode===b&&this.accent===c&&this.width===d&&this.vmetric===e&&this.operatorListId===f},a}(),_b=function(){function a(a){this._map=a}return a.prototype={get length(){return this._map.length},forEach:function(a){for(var b in this._map)a(b,this._map[b].charCodeAt(0))},has:function(a){return void 0!==this._map[a]},get:function(a){return this._map[a]},charCodeOf:function(a){return this._map.indexOf(a)}},a}(),ac=function(){function a(a,b){this.firstChar=a,this.lastChar=b}return a.prototype={get length(){return this.lastChar+1-this.firstChar},forEach:function(a){for(var b=this.firstChar,c=this.lastChar;c>=b;b++)a(b,b)},has:function(a){return this.firstChar<=a&&a<=this.lastChar},get:function(a){return this.firstChar<=a&&a<=this.lastChar?String.fromCharCode(a):void 0},charCodeOf:function(a){c("should not call .charCodeOf")}},a}(),bc=function(){function a(a,b,c){a[b]=c>>8&255,a[b+1]=255&c}function b(a,b,c){a[b]=c>>24&255,a[b+1]=c>>16&255,a[b+2]=c>>8&255,a[b+3]=255&c}function c(a,b,c){var d,e;if(c instanceof Uint8Array)a.set(c,b);else if("string"==typeof c)for(d=0,e=c.length;e>d;d++)a[b++]=255&c.charCodeAt(d);else for(d=0,e=c.length;e>d;d++)a[b++]=255&c[d]}function d(a){this.sfnt=a,this.tables=Object.create(null)}d.getSearchParams=function(a,b){for(var c=1,d=0;(c^a)>c;)c<<=1,d++;var e=c*b;return{range:e,entry:d,rangeShift:b*a-e}};var e=12,f=16;return d.prototype={toArray:function(){var g=this.sfnt,h=this.tables,i=Object.keys(h);i.sort();var j,l,m,n,o,p=i.length,q=e+p*f,r=[q];for(j=0;p>j;j++){n=h[i[j]];var s=(n.length+3&-4)>>>0;q+=s,r.push(q)}var t=new Uint8Array(q);for(j=0;p>j;j++)n=h[i[j]],c(t,r[j],n);"true"===g&&(g=k(65536)),t[0]=255&g.charCodeAt(0),t[1]=255&g.charCodeAt(1),t[2]=255&g.charCodeAt(2),t[3]=255&g.charCodeAt(3),a(t,4,p);var u=d.getSearchParams(p,16);for(a(t,6,u.range),a(t,8,u.entry),a(t,10,u.rangeShift),q=e,j=0;p>j;j++){o=i[j],t[q]=255&o.charCodeAt(0),t[q+1]=255&o.charCodeAt(1),t[q+2]=255&o.charCodeAt(2),t[q+3]=255&o.charCodeAt(3);var v=0;for(l=r[j],m=r[j+1];m>l;l+=4){var w=(t[l]<<24)+(t[l+1]<<16)+(t[l+2]<<8)+t[l+3];v=v+w|0}b(t,q+4,v),b(t,q+8,r[j]),b(t,q+12,h[o].length),q+=f}return t},addTable:function(a,b){if(a in this.tables)throw new Error("Table "+a+" already exists");this.tables[a]=b}},d}(),cc=new Int32Array([0,32,127,161,173,174,1536,1920,2208,4256,6016,6144,8192,8208,8209,8210,8232,8240,8287,8304,9676,9677,43616,43648,65520,65536]),dc=function(){function d(d,e,f){var g,h,i;this.name=d,this.loadedName=f.loadedName,this.isType3Font=f.isType3Font,this.sizes=[],this.glyphCache={};var j=d.split("+");j=j.length>1?j[1]:j[0],j=j.split(/[-,_]/g)[0],this.isSerifFont=!!(f.flags&Ob.Serif),this.isSymbolicFont=!!(f.flags&Ob.Symbolic),this.isMonospace=!!(f.flags&Ob.FixedPitch);var k=f.type,l=f.subtype;if(this.type=k,this.fallbackName=this.isMonospace?"monospace":this.isSerifFont?"serif":"sans-serif",this.differences=f.differences,this.widths=f.widths,this.defaultWidth=f.defaultWidth,this.composite=f.composite,this.wideChars=f.wideChars,this.cMap=f.cMap,this.ascent=f.ascent/Lb,this.descent=f.descent/Lb,this.fontMatrix=f.fontMatrix,this.bbox=f.bbox,this.toUnicode=f.toUnicode=this.buildToUnicode(f),this.toFontChar=[],"Type3"===f.type){for(g=0;256>g;g++)this.toFontChar[g]=this.differences[g]||f.defaultEncoding[g];return void(this.fontType=Z.TYPE3)}if(this.cidEncoding=f.cidEncoding,this.vertical=f.vertical,this.vertical&&(this.vmetrics=f.vmetrics,this.defaultVMetrics=f.defaultVMetrics),!e||e.isEmpty){e&&b('Font file is empty in "'+d+'" ('+this.loadedName+")"),this.missingFile=!0;var o=d.replace(/[,_]/g,"-"),p=!!Qb[o]||!(!Rb[o]||!Qb[Rb[o]]);if(o=Qb[o]||Rb[o]||o,this.bold=-1!==o.search(/bold/gi),this.italic=-1!==o.search(/oblique/gi)||-1!==o.search(/italic/gi),this.black=-1!==d.search(/Black/g),this.remeasure=Object.keys(this.widths).length>0,p&&"CIDFontType2"===k&&0===f.cidEncoding.indexOf("Identity-")){var q=[];for(g in Ub)q[+g]=Ub[g];if(/ArialBlack/i.test(d))for(g in Vb)q[+g]=Vb[g];var r=this.toUnicode instanceof ac;r||this.toUnicode.forEach(function(a,b){q[+a]=b}),this.toFontChar=q,this.toUnicode=new _b(q)}else if(/Symbol/i.test(o)){var s=Pb.SymbolSetEncoding;for(g in s)i=zc[s[g]],i&&(this.toFontChar[g]=i);for(g in f.differences)i=zc[f.differences[g]],i&&(this.toFontChar[g]=i)}else if(/Dingbats/i.test(o)){/Wingdings/i.test(d)&&b("Wingdings font without embedded font file, falling back to the ZapfDingbats encoding.");var t=Pb.ZapfDingbatsEncoding;for(g in t)i=Ac[t[g]],i&&(this.toFontChar[g]=i);for(g in f.differences)i=Ac[f.differences[g]],i&&(this.toFontChar[g]=i)}else if(p){this.toFontChar=[];for(g in f.defaultEncoding)h=f.differences[g]||f.defaultEncoding[g],this.toFontChar[g]=zc[h]}else{var u=-1===k.indexOf("CIDFontType");this.toUnicode.forEach(function(a,b){u&&(h=f.differences[a]||f.defaultEncoding[a],b=zc[h]||b),this.toFontChar[a]=b}.bind(this))}return this.loadedName=o.split("-")[0],this.loading=!1,void(this.fontType=P(k,l))}"Type1C"===l&&"Type1"!==k&&"MMType1"!==k&&(m(e)?l="TrueType":k="Type1"),"CIDFontType0C"===l&&"CIDFontType0"!==k&&(k="CIDFontType0"),"OpenType"===l&&(k="OpenType"),"CIDFontType0"===k&&(l=n(e)?"CIDFontType0":"CIDFontType0C");var v;switch(k){case"MMType1":a("MMType1 font ("+d+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";var w="Type1C"===l||"CIDFontType0C"===l?new jc(e,f):new ic(d,e,f);O(f),v=this.convert(d,w,f);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype",v=this.checkAndRepair(d,e,f),this.isOpenType&&(k="OpenType");break;default:c("Font "+k+" is not supported")}this.data=v,this.fontType=P(k,l),this.fontMatrix=f.fontMatrix,this.widths=f.widths,this.defaultWidth=f.defaultWidth,this.encoding=f.baseEncoding,this.seacMap=f.seacMap,this.loading=!0}function f(a,b){return(a<<8)+b}function h(a,b,c,d){return(a<<24)+(b<<16)+(c<<8)+d}function j(a){return String.fromCharCode(a>>8&255,255&a)}function l(a){return a=a>32767?32767:-32768>a?-32768:a,String.fromCharCode(a>>8&255,255&a)}function m(a){var b=a.peekBytes(4);return 65536===o(b,0)}function n(a){var b=a.peekBytes(2);return 37===b[0]&&33===b[1]?!0:128===b[0]&&1===b[1]?!0:!1}function p(a){for(var b=0,c=cc.length-1;c>b;){var d=b+c+1>>1;a<cc[d]?c=d-1:b=d}return!(1&b)}function q(a,b){var c=b.toUnicode,d=!!(b.flags&Ob.Symbolic),e=b.toUnicode instanceof ac,f=Object.create(null),g=[],h=[],i=Ib;for(var j in a){j|=0;var k=a[j],l=j;if(!e&&c.has(j)){var m=c.get(l);1===m.length&&(l=m.charCodeAt(0))}if((void 0!==h[l]||p(l)||d&&e)&&Jb>=i)do l=i++,Kb&&61440===l&&(l=61472,i=l+1);while(void 0!==h[l]&&Jb>=i);f[l]=k,g[j]=l,h[l]=!0}return{toFontChar:g,charCodeToGlyphId:f,nextAvailableFontCharCode:i}}function r(a){var b=[];for(var c in a)b.push({fontCharCode:0|c,glyphId:a[c]});b.sort(function(a,b){return a.fontCharCode-b.fontCharCode});for(var d=[],e=b.length,f=0;e>f;){var g=b[f].fontCharCode,h=[b[f].glyphId];++f;for(var i=g;e>f&&i+1===b[f].fontCharCode&&(h.push(b[f].glyphId),++i,++f,65535!==i););d.push([g,i,h])}return d}function s(a){var b,c,d,e,f=r(a),g=f[f.length-1][1]>65535?2:1,h="\x00\x00"+j(g)+"\x00\ 3\x00\ 1"+k(4+8*g);for(b=f.length-1;b>=0&&!(f[b][0]<=65535);--b);var i=b+1;f[b][0]<65535&&65535===f[b][1]&&(f[b][1]=65534);
-var l,m,n,o,p=f[b][1]<65535?1:0,q=i+p,s=bc.getSearchParams(q,2),t="",u="",v="",w="",x="",y=0;for(b=0,c=i;c>b;b++){l=f[b],m=l[0],n=l[1],t+=j(m),u+=j(n),o=l[2];var z=!0;for(d=1,e=o.length;e>d;++d)if(o[d]!==o[d-1]+1){z=!1;break}if(z){var A=o[0];v+=j(A-m&65535),w+=j(0)}else{var B=2*(q-b)+2*y;for(y+=n-m+1,v+=j(0),w+=j(B),d=0,e=o.length;e>d;++d)x+=j(o[d])}}p>0&&(u+="ÿÿ",t+="ÿÿ",v+="\x00\ 1",w+="\x00\x00");var C="\x00\x00"+j(2*q)+j(s.range)+j(s.entry)+j(s.rangeShift)+u+"\x00\x00"+t+v+w+x,D="",E="";if(g>1){for(h+="\x00\ 3\x00\n"+k(4+8*g+4+C.length),D="",b=0,c=f.length;c>b;b++){l=f[b],m=l[0],o=l[2];var F=o[0];for(d=1,e=o.length;e>d;++d)o[d]!==o[d-1]+1&&(n=l[0]+d-1,D+=k(m)+k(n)+k(F),m=n+1,F=o[d]);D+=k(m)+k(l[1])+k(F)}E="\x00\f\x00\x00"+k(D.length+16)+"\x00\x00\x00\x00"+k(D.length/12)}return h+"\x00\ 4"+j(C.length+4)+C+E+D}function t(a){var b=new Mc(a.data),c=b.getUint16();b.getBytes(60);var d=b.getUint16();if(4>c&&768&d)return!1;var e=b.getUint16(),f=b.getUint16();if(e>f)return!1;b.getBytes(6);var g=b.getUint16();return 0===g?!1:(a.data[8]=a.data[9]=0,!0)}function u(a,b,d){d=d||{unitsPerEm:0,yMax:0,yMin:0,ascent:0,descent:0};var e=0,f=0,g=0,h=0,i=null,l=0;if(b)for(var m in b){m|=0,(i>m||!i)&&(i=m),m>l&&(l=m);var n=L(m);32>n?e|=1<<n:64>n?f|=1<<n-32:96>n?g|=1<<n-64:123>n?h|=1<<n-96:c("Unicode ranges Bits > 123 are reserved for internal usage")}else i=0,l=255;var o=a.bbox||[0,0,0,0],p=d.unitsPerEm||1/(a.fontMatrix||T)[0],q=a.ascentScaled?1:p/Lb,r=d.ascent||Math.round(q*(a.ascent||o[3])),s=d.descent||Math.round(q*(a.descent||o[1]));s>0&&a.descent>0&&o[1]<0&&(s=-s);var t=d.yMax||r,u=-d.yMin||-s;return"\x00\ 3\ 2$\ 1ô\x00\ 5\x00\x00\ 2\8a\ 2»\x00\x00\x00\8c\ 2\8a\ 2»\x00\x00\ 1ß\x001\ 1\ 2\x00\x00\x00\x00\ 6"+String.fromCharCode(a.fixedPitch?9:0)+"\x00\x00\x00\x00\x00\x00"+k(e)+k(f)+k(g)+k(h)+"*21*"+j(a.italicAngle?1:0)+j(i||a.firstChar)+j(l||a.lastChar)+j(r)+j(s)+"\x00d"+j(t)+j(u)+"\x00\x00\x00\x00\x00\x00\x00\x00"+j(a.xHeight)+j(a.capHeight)+j(0)+j(i||a.firstChar)+"\x00\ 3"}function v(a){var b=Math.floor(a.italicAngle*Math.pow(2,16));return"\x00\ 3\x00\x00"+k(b)+"\x00\x00\x00\x00"+k(a.fixedPitch)+"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}function w(a,b){b||(b=[[],[]]);var c,d,e,f,g,h=[b[0][0]||"Original licence",b[0][1]||a,b[0][2]||"Unknown",b[0][3]||"uniqueID",b[0][4]||a,b[0][5]||"Version 0.11",b[0][6]||"",b[0][7]||"Unknown",b[0][8]||"Unknown",b[0][9]||"Unknown"],i=[];for(c=0,d=h.length;d>c;c++){g=b[1][c]||h[c];var k=[];for(e=0,f=g.length;f>e;e++)k.push(j(g.charCodeAt(e)));i.push(k.join(""))}var l=[h,i],m=["\x00\ 1","\x00\ 3"],n=["\x00\x00","\x00\ 1"],o=["\x00\x00","\ 4        "],p=h.length*m.length,q="\x00\x00"+j(p)+j(12*p+6),r=0;for(c=0,d=m.length;d>c;c++){var s=l[c];for(e=0,f=s.length;f>e;e++){g=s[e];var t=m[c]+n[c]+o[c]+j(e)+j(g.length)+j(r);q+=t,r+=g.length}}return q+=h.join("")+i.join("")}return d.getFontID=function(){var a=1;return function(){return String(a++)}}(),d.prototype={name:null,font:null,mimetype:null,encoding:null,get renderer(){var a=yc.create(this);return g(this,"renderer",a)},exportData:function(){var a={};for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},checkAndRepair:function(d,g,j){function k(a){var b=i(a.getBytes(4)),c=a.getInt32(),d=a.getInt32()>>>0,e=a.getInt32()>>>0,f=a.pos;a.pos=a.start?a.start:0,a.skip(d);var g=a.getBytes(e);return a.pos=f,"head"===b&&(g[8]=g[9]=g[10]=g[11]=0,g[17]|=32),{tag:b,checksum:c,length:e,offset:d,data:g}}function l(a){return{version:i(a.getBytes(4)),numTables:a.getUint16(),searchRange:a.getUint16(),entrySelector:a.getUint16(),rangeShift:a.getUint16()}}function m(a,c,d,e){var f,g=(c.start?c.start:0)+a.offset;c.pos=g;for(var h,i=(c.getUint16(),c.getUint16()),j=!1,k=0;i>k;k++){var l=c.getUint16(),m=c.getUint16(),n=c.getInt32()>>>0,o=!1;if(0===l&&0===m?o=!0:1===l&&0===m?o=!0:3!==l||1!==m||(d||!e)&&h?d&&3===l&&0===m&&(o=!0,j=!0):(o=!0,d||(j=!0)),o&&(h={platformId:l,encodingId:m,offset:n}),j)break}if(h&&(c.pos=g+h.offset),!h||-1===c.peekByte())return b("Could not find a preferred cmap table."),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};var p,q,r=c.getUint16(),s=(c.getUint16(),c.getUint16(),!1),t=[];if(0===r){for(p=0;256>p;p++){var u=c.getByte();u&&t.push({charCode:p,glyphId:u})}s=!0}else if(4===r){var v=c.getUint16()>>1;c.getBytes(6);var w,x=[];for(w=0;v>w;w++)x.push({end:c.getUint16()});for(c.getUint16(),w=0;v>w;w++)x[w].start=c.getUint16();for(w=0;v>w;w++)x[w].delta=c.getUint16();var y=0;for(w=0;v>w;w++){f=x[w];var z=c.getUint16();if(z){var A=(z>>1)-(v-w);f.offsetIndex=A,y=Math.max(y,A+f.end-f.start+1)}else f.offsetIndex=-1}var B=[];for(p=0;y>p;p++)B.push(c.getUint16());for(w=0;v>w;w++){f=x[w],g=f.start;var C=f.end,D=f.delta;for(A=f.offsetIndex,p=g;C>=p;p++)65535!==p&&(q=0>A?p:B[A+p-g],q=q+D&65535,0!==q&&t.push({charCode:p,glyphId:q}))}}else{if(6!==r)return b("cmap table has unsupported format: "+r),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};var E=c.getUint16(),F=c.getUint16();for(p=0;F>p;p++){q=c.getUint16();var G=E+p;t.push({charCode:G,glyphId:q})}}for(t.sort(function(a,b){return a.charCode-b.charCode}),k=1;k<t.length;k++)t[k-1].charCode===t[k].charCode&&(t.splice(k,1),k--);return{platformId:h.platformId,encodingId:h.encodingId,mappings:t,hasShortCmap:s}}function n(b,c,d,e){if(!c)return void(d&&(d.data=null));b.pos=(b.start?b.start:0)+c.offset,b.pos+=c.length-2;var f=b.getUint16();f>e&&(a("The numOfMetrics ("+f+") should not be greater than the numGlyphs ("+e+")"),f=e,c.data[34]=(65280&f)>>8,c.data[35]=255&f);var g=e-f,h=g-(d.length-4*f>>1);if(h>0){var i=new Uint8Array(d.length+2*h);i.set(d.data),d.data=i}}function o(a,b,c,d,e,f){if(12>=c-b)return 0;var g=a.subarray(b,c),h=g[0]<<8|g[1];if(32768&h)return d.set(g,e),g.length;var i,j=10,k=0;for(i=0;h>i;i++){var l=g[j]<<8|g[j+1];k=l+1,j+=2}var m=j,n=g[j]<<8|g[j+1];j+=2+n;var o=j,p=0;for(i=0;k>i;i++){var q=g[j++];192&q&&(g[j-1]=63&q);var r=(2&q?1:16&q?0:2)+(4&q?1:32&q?0:2);if(p+=r,8&q){var s=g[j++];i+=s,p+=s*r}}if(0===p)return 0;var t=j+p;return t>g.length?0:!f&&n>0?(d.set(g.subarray(0,m),e),d.set([0,0],e+m),d.set(g.subarray(o,t),e+m+2),t-=n,g.length-t>3&&(t=t+3&-4),t):g.length-t>3?(t=t+3&-4,d.set(g.subarray(0,t),e),t):(d.set(g,e),g.length)}function p(c,d,e){var g=c.data,i=h(g[0],g[1],g[2],g[3]);i>>16!==1&&(a("Attempting to fix invalid version in head table: "+i),g[0]=0,g[1]=1,g[2]=0,g[3]=0);var j=f(g[50],g[51]);if(0>j||j>1){a("Attempting to fix invalid indexToLocFormat in head table: "+j);var k=d+1;e===k<<1?(g[50]=0,g[51]=0):e===k<<2?(g[50]=0,g[51]=1):b("Could not fix indexToLocFormat: "+j)}}function r(a,b,c,d,e,f){var g,h,i;d?(g=4,h=function(a,b){return a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3]},i=function(a,b,c){a[b]=c>>>24&255,a[b+1]=c>>16&255,a[b+2]=c>>8&255,a[b+3]=255&c}):(g=2,h=function(a,b){return a[b]<<9|a[b+1]<<1},i=function(a,b,c){a[b]=c>>9&255,a[b+1]=c>>1&255});var j=a.data,k=g*(1+c);j.length!==k&&(j=new Uint8Array(k),j.set(a.data.subarray(0,k)),a.data=j);var l=b.data,m=l.length,n=new Uint8Array(m),p=h(j,0),q=0,r={};i(j,0,q);var s,t;for(s=0,t=g;c>s;s++,t+=g){var u=h(j,t);if(u>m&&(m+3&-4)===u&&(u=m),u>m)i(j,t,q),p=u;else{p===u&&(r[s]=!0);var v=o(l,p,u,n,q,e);q+=v,i(j,t,q),p=u}}if(0===q){var w=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(s=0,t=g;c>s;s++,t+=g)i(j,t,w.length);return b.data=w,r}if(f){var x=h(j,g);n.length>x+q?b.data=n.subarray(0,x+q):(b.data=new Uint8Array(x+q),b.data.set(n.subarray(0,q))),b.data.set(n.subarray(0,x),q),i(a.data,j.length-g,q+x)}else b.data=n.subarray(0,q);return r}function y(a,c,d){var e=(g.start?g.start:0)+a.offset;g.pos=e;var f=a.length,h=e+f,i=g.getInt32();g.getBytes(28);var j,k,l=!0;switch(i){case 65536:j=Yb;break;case 131072:var m=g.getUint16();if(m!==d){l=!1;break}var n=[];for(k=0;m>k;++k){var o=g.getUint16();if(o>=32768){l=!1;break}n.push(o)}if(!l)break;for(var p=[],q=[];g.pos<h;){var r=g.getByte();for(q.length=r,k=0;r>k;++k)q[k]=String.fromCharCode(g.getByte());p.push(q.join(""))}for(j=[],k=0;m>k;++k){var s=n[k];258>s?j.push(Yb[s]):j.push(p[s-258])}break;case 196608:break;default:b("Unknown/unsupported post table version "+i),l=!1,c.defaultEncoding&&(j=c.defaultEncoding)}return c.glyphNames=j,l}function z(a){var b=(g.start?g.start:0)+a.offset;g.pos=b;var c=[[],[]],d=a.length,e=b+d,f=g.getUint16(),h=6;if(0!==f||h>d)return c;var j,k,l=g.getUint16(),m=g.getUint16(),n=[],o=12;for(j=0;l>j&&g.pos+o<=e;j++){var p={platform:g.getUint16(),encoding:g.getUint16(),language:g.getUint16(),name:g.getUint16(),length:g.getUint16(),offset:g.getUint16()};(1===p.platform&&0===p.encoding&&0===p.language||3===p.platform&&1===p.encoding&&1033===p.language)&&n.push(p)}for(j=0,k=n.length;k>j;j++){var q=n[j],r=b+m+q.offset;if(!(r+q.length>e)){g.pos=r;var s=q.name;if(q.encoding){for(var t="",u=0,v=q.length;v>u;u+=2)t+=String.fromCharCode(g.getUint16());c[1][s]=t}else c[0][s]=i(g.getBytes(q.length))}}return c}function A(a,c){for(var d,e,f,g,h,i=a.data,j=0,k=0,l=0,m=[],n=[],o=[],p=c.tooComplexToFollowFunctions,q=!1,r=0,s=0,t=i.length;t>j;){var u=i[j++];if(64===u)if(e=i[j++],q||s)j+=e;else for(d=0;e>d;d++)m.push(i[j++]);else if(65===u)if(e=i[j++],q||s)j+=2*e;else for(d=0;e>d;d++)f=i[j++],m.push(f<<8|i[j++]);else if(176===(248&u))if(e=u-176+1,q||s)j+=e;else for(d=0;e>d;d++)m.push(i[j++]);else if(184===(248&u))if(e=u-184+1,q||s)j+=2*e;else for(d=0;e>d;d++)f=i[j++],m.push(f<<8|i[j++]);else if(43!==u||p)if(44!==u||p){if(45===u)if(q)q=!1,k=j;else{if(h=n.pop(),!h)return b("TT: ENDF bad stack"),void(c.hintsValid=!1);g=o.pop(),i=h.data,j=h.i,c.functionsStackDeltas[g]=m.length-h.stackTop}else if(137===u)(q||s)&&(b("TT: nested IDEFs not allowed"),p=!0),q=!0,l=j;else if(88===u)++r;else if(27===u)s=r;else if(89===u)s===r&&(s=0),--r;else if(28===u&&!q&&!s){var v=m[m.length-1];v>0&&(j+=v-1)}}else(q||s)&&(b("TT: nested FDEFs not allowed"),p=!0),q=!0,l=j,g=m.pop(),c.functionsDefined[g]={data:i,i:j};else if(!q&&!s)if(g=m[m.length-1],c.functionsUsed[g]=!0,g in c.functionsStackDeltas)m.length+=c.functionsStackDeltas[g];else if(g in c.functionsDefined&&o.indexOf(g)<0){if(n.push({data:i,i:j,stackTop:m.length-1}),o.push(g),h=c.functionsDefined[g],!h)return b("TT: CALL non-existent function"),void(c.hintsValid=!1);i=h.data,j=h.i}if(!q&&!s){var w=142>=u?F[u]:u>=192&&223>=u?-1:u>=224?-2:0;for(u>=113&&117>=u&&(e=m.pop(),e===e&&(w=2*-e));0>w&&m.length>0;)m.pop(),w++;for(;w>0;)m.push(NaN),w--}}c.tooComplexToFollowFunctions=p;var x=[i];j>i.length&&x.push(new Uint8Array(j-i.length)),l>k&&(b("TT: complementing a missing function tail"),x.push(new Uint8Array([34,45]))),C(a,x)}function B(a,c){if(!a.tooComplexToFollowFunctions){if(a.functionsDefined.length>c)return b("TT: more functions defined than expected"),void(a.hintsValid=!1);for(var d=0,e=a.functionsUsed.length;e>d;d++){if(d>c)return b("TT: invalid function id: "+d),void(a.hintsValid=!1);if(a.functionsUsed[d]&&!a.functionsDefined[d])return b("TT: undefined function: "+d),void(a.hintsValid=!1)}}}function C(a,b){if(b.length>1){var c,d,e=0;for(c=0,d=b.length;d>c;c++)e+=b[c].length;e=e+3&-4;var f=new Uint8Array(e),g=0;for(c=0,d=b.length;d>c;c++)f.set(b[c],g),g+=b[c].length;a.data=f,a.length=e}}function D(a,b,c){var d={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};if(a&&A(a,d),b&&A(b,d),a&&B(d,R),c&&1&c.length){var e=new Uint8Array(c.length+1);e.set(c.data),c.data=e}return d.hintsValid}function E(a,b,c){return V[a]?!aa&&b>=0&&$.has(b)?!0:_&&c>=0&&x(_[c])?!0:!1:!0}var F=[0,0,0,0,0,0,0,0,-2,-2,-2,-2,0,0,-2,-5,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,-1,-1,1,-1,-999,0,1,0,-1,-2,0,-1,-2,-1,-1,0,-1,-1,0,0,-999,-999,-1,-1,-1,-1,-2,-999,-2,-2,-999,0,-2,-2,0,0,-2,0,-2,0,0,0,-2,-1,-1,1,1,0,0,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,0,-999,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,-2,-999,-999,-999,-999,-999,-1,-1,-2,-2,0,0,0,0,-1,-1,-999,-2,-2,0,0,-1,-2,-2,0,0,0,-1,-1,-1,-2];g=new Mc(new Uint8Array(g.getBytes()));for(var G,H,I,J=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "],K=l(g),L=K.numTables,M={"OS/2":null,cmap:null,head:null,hhea:null,hmtx:null,maxp:null,name:null,post:null},N=0;L>N;N++)I=k(g),J.indexOf(I.tag)<0||0!==I.length&&(M[I.tag]=I);var O=!M["CFF "];if(O)M.glyf&&M.loca||c('Required "glyf" or "loca" tables are not found'),this.isOpenType=!1;else{if("OTTO"===K.version&&"CIDFontType2"!==j.type||!M.head||!M.hhea||!M.maxp||!M.post)return H=new Mc(M["CFF "].data),G=new jc(H,j),this.convert(d,G,j);delete M.glyf,delete M.loca,delete M.fpgm,delete M.prep,delete M["cvt "],this.isOpenType=!0}M.maxp||c('Required "maxp" table is not found'),g.pos=(g.start||0)+M.maxp.offset;var P=g.getInt32(),Q=g.getUint16(),R=0;if(P>=65536&&M.maxp.length>=22){g.pos+=8;var S=g.getUint16();S>2&&(M.maxp.data[14]=0,M.maxp.data[15]=2),g.pos+=4,R=g.getUint16()}var T=!1;"CIDFontType2"===j.type&&j.toUnicode&&j.toUnicode.get(0)>"\x00"&&(T=!0,Q++,M.maxp.data[4]=Q>>8,M.maxp.data[5]=255&Q);var U=D(M.fpgm,M.prep,M["cvt "],R);U||(delete M.fpgm,delete M.prep,delete M["cvt "]),n(g,M.hhea,M.hmtx,Q),M.head||c('Required "head" table is not found'),p(M.head,Q,O?M.loca.length:0);var V={};if(O){var W=f(M.head.data[50],M.head.data[51]);V=r(M.loca,M.glyf,Q,W,U,T)}if(M.hhea||c('Required "hhea" table is not found'),0===M.hhea.data[10]&&0===M.hhea.data[11]&&(M.hhea.data[10]=255,M.hhea.data[11]=255),M.post){var X=y(M.post,j,Q);X||(M.post=null)}var Y,Z=[],$=j.toUnicode,_=j.widths,aa=$ instanceof ac||65536===$.length;if("CIDFontType2"===j.type){var ba=j.cidToGidMap||[],ca=0===ba.length;j.cMap.forEach(function(a,b){e(65535>=b,"Max size of CID is 65,535");var c=-1;ca?c=a:void 0!==ba[b]&&(c=ba[b]),c>=0&&Q>c&&E(c,a,b)&&(Z[a]=c)}),T&&(Z[0]=Q-1)}else{var da=j.differences.length>0||!!j.baseEncodingName,ea=m(M.cmap,g,this.isSymbolicFont,da),fa=ea.platformId,ga=ea.encodingId,ha=ea.mappings,ia=ha.length;if(da&&(3===fa&&1===ga||1===fa&&0===ga)||-1===fa&&-1===ga&&Pb[j.baseEncodingName]){var ja=[];for(("MacRomanEncoding"===j.baseEncodingName||"WinAnsiEncoding"===j.baseEncodingName)&&(ja=Pb[j.baseEncodingName]),Y=0;256>Y;Y++){var ka;if(ka=this.differences&&Y in this.differences?this.differences[Y]:Y in ja&&""!==ja[Y]?ja[Y]:Pb.StandardEncoding[Y]){var la,ma=!1;3===fa&&1===ga?(la=zc[ka],ma=!0):1===fa&&0===ga&&(la=Pb.MacRomanEncoding.indexOf(ka));var na=!1;for(N=0;ia>N;++N)if(ha[N].charCode===la){var oa=ma?Y:la;if(E(ha[N].glyphId,oa,-1)){Z[Y]=ha[N].glyphId,na=!0;break}}if(!na&&j.glyphNames){var pa=j.glyphNames.indexOf(ka);pa>0&&E(pa,-1,-1)?Z[Y]=pa:Z[Y]=0}}}}else if(0===fa&&0===ga)for(N=0;ia>N;++N)Z[ha[N].charCode]=ha[N].glyphId;else for(N=0;ia>N;++N)Y=255&ha[N].charCode,Z[Y]=ha[N].glyphId}0===Z.length&&(Z[0]=0);var qa=q(Z,j);if(this.toFontChar=qa.toFontChar,M.cmap={tag:"cmap",data:s(qa.charCodeToGlyphId)},!M["OS/2"]||!t(M["OS/2"])){var ra={unitsPerEm:f(M.head.data[18],M.head.data[19]),yMax:f(M.head.data[42],M.head.data[43]),yMin:f(M.head.data[38],M.head.data[39])-65536,ascent:f(M.hhea.data[4],M.hhea.data[5]),descent:f(M.hhea.data[6],M.hhea.data[7])-65536};M["OS/2"]={tag:"OS/2",data:u(j,qa.charCodeToGlyphId,ra)}}if(M.post||(M.post={tag:"post",data:v(j)}),!O)try{H=new Mc(M["CFF "].data);var sa=new kc(H,j);G=sa.parse();var ta=new xc(G);M["CFF "].data=ta.compile()}catch(ua){b("Failed to compile font "+j.loadedName)}if(M.name){var va=z(M.name);M.name.data=w(d,va)}else M.name={tag:"name",data:w(this.name)};var wa=new bc(K.version);for(var xa in M)wa.addTable(xa,M[xa].data);return wa.toArray()},convert:function(a,b,c){function d(a,b){var c=null;for(var d in a)b===a[d]&&(c||(c=[]),c.push(0|d));return c}function e(a,b){for(var c in a)if(b===a[c])return 0|c;return g.charCodeToGlyphId[g.nextAvailableFontCharCode]=b,g.nextAvailableFontCharCode++}c.fixedPitch=!1;var f=b.getGlyphMapping(c),g=q(f,c);this.toFontChar=g.toFontChar;var h=b.numGlyphs,i=b.seacs;if(Nb&&i&&i.length){var k=c.fontMatrix||T,m=b.getCharset(),n=Object.create(null);for(var o in i){o|=0;var p=i[o],r=Pb.StandardEncoding[p[2]],t=Pb.StandardEncoding[p[3]],x=m.indexOf(r),y=m.indexOf(t);if(!(0>x||0>y)){var z={x:p[0]*k[0]+p[1]*k[2]+k[4],y:p[0]*k[1]+p[1]*k[3]+k[5]},A=d(f,o);if(A)for(var B=0,C=A.length;C>B;B++){var D=A[B],E=g.charCodeToGlyphId,F=e(E,x),G=e(E,y);n[D]={baseFontCharCode:F,accentFontCharCode:G,accentOffset:z}}}}c.seacMap=n}var H=1/(c.fontMatrix||T)[0],I=new bc("OTTO");return I.addTable("CFF ",b.data),I.addTable("OS/2",u(c,g.charCodeToGlyphId)),I.addTable("cmap",s(g.charCodeToGlyphId)),I.addTable("head","\x00\ 1\x00\x00\x00\x00\10\x00\x00\x00\x00\x00_\ f<õ\x00\x00"+l(H)+"\x00\x00\x00\x00\9e\x0B~'\x00\x00\x00\x00\9e\x0B~'\x00\x00"+l(c.descent)+"\ fÿ"+l(c.ascent)+j(c.italicAngle?2:0)+"\x00\11\x00\x00\x00\x00\x00\x00"),I.addTable("hhea","\x00\ 1\x00\x00"+l(c.ascent)+l(c.descent)+"\x00\x00ÿÿ\x00\x00\x00\x00\x00\x00"+l(c.capHeight)+l(Math.tan(c.italicAngle)*c.xHeight)+"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"+j(h)),I.addTable("hmtx",function(){for(var a=b.charstrings,c=b.cff?b.cff.widths:null,d="\x00\x00\x00\x00",e=1,f=h;f>e;e++){var g=0;if(a){var i=a[e-1];g="width"in i?i.width:0}else c&&(g=Math.ceil(c[e]||0));d+=j(g)+j(0)}return d}()),I.addTable("maxp","\x00\x00P\x00"+j(h)),I.addTable("name",w(a)),I.addTable("post",v(c)),I.toArray()},buildToUnicode:function(a){if(a.toUnicode&&0!==a.toUnicode.length)return a.toUnicode;var b,c;if(!a.composite){b=[];var d=a.defaultEncoding.slice(),f=a.baseEncodingName,g=a.differences;for(c in g)d[c]=g[c];for(c in d){var h=d[c];if(""!==h)if(void 0!==zc[h])b[c]=String.fromCharCode(zc[h]);else{var i=0;switch(h[0]){case"G":3===h.length&&(i=parseInt(h.substr(1),16));break;case"g":5===h.length&&(i=parseInt(h.substr(1),16));break;case"C":case"c":h.length>=3&&(i=+h.substr(1))}if(i){if(f&&i===+c){var j=Pb[f];if(j&&(h=j[c])){b[c]=String.fromCharCode(zc[h]);continue}}b[c]=String.fromCharCode(i)}}}return new _b(b)}if(a.composite&&(a.cMap.builtInCMap&&!(a.cMap instanceof Fb)||"Adobe"===a.cidSystemInfo.registry&&("GB1"===a.cidSystemInfo.ordering||"CNS1"===a.cidSystemInfo.ordering||"Japan1"===a.cidSystemInfo.ordering||"Korea1"===a.cidSystemInfo.ordering))){var k=a.cidSystemInfo.registry,l=a.cidSystemInfo.ordering,m=new ya(k+"-"+l+"-UCS2"),n=Hb.create(m,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null),o=a.cMap;return b=[],o.forEach(function(a,c){e(65535>=c,"Max size of CID is 65,535");var d=n.lookup(c);d&&(b[a]=String.fromCharCode((d.charCodeAt(0)<<8)+d.charCodeAt(1)))}),new _b(b)}return new ac(a.firstChar,a.lastChar)},get spaceWidth(){if("_shadowWidth"in this)return this._shadowWidth;for(var a,b=["space","minus","one","i"],c=0,d=b.length;d>c;c++){var e=b[c];if(e in this.widths){a=this.widths[e];break}var f=zc[e],g=0;if(this.composite&&this.cMap.contains(f)&&(g=this.cMap.lookup(f)),!g&&"toUnicode"in this&&(g=this.toUnicode.charCodeOf(f)),0>=g&&(g=f),a=this.widths[g])break}return a=a||this.defaultWidth,this._shadowWidth=a,a},charToGlyph:function(a){var b,c,d,e=a;this.cMap&&this.cMap.contains(a)&&(e=this.cMap.lookup(a)),c=this.widths[e],c=x(c)?c:this.defaultWidth;var f=this.vmetrics&&this.vmetrics[e],g=this.toUnicode.get(a)||a;"number"==typeof g&&(g=String.fromCharCode(g)),b=this.toFontChar[a]||a,this.missingFile&&(b=K(b)),this.isType3Font&&(d=b);var h=null;if(this.seacMap&&this.seacMap[a]){var i=this.seacMap[a];b=i.baseFontCharCode,h={fontChar:String.fromCharCode(i.accentFontCharCode),offset:i.accentOffset}}var j=String.fromCharCode(b),k=this.glyphCache[a];return k&&k.matchesForCache(j,g,h,c,f,d)||(k=new $b(j,g,h,c,f,d),this.glyphCache[a]=k),k},charsToGlyphs:function(a){var b,c,d,e=this.charsCache;if(e&&(b=e[a]))return b;e||(e=this.charsCache=Object.create(null)),b=[];var f,g=a,h=0;if(this.cMap)for(var i={};h<a.length;){this.cMap.readCharCode(a,h,i),d=i.charcode;var j=i.length;h+=j,c=this.charToGlyph(d),b.push(c),1===j&&32===a.charCodeAt(h-1)&&b.push(null)}else for(h=0,f=a.length;f>h;++h)d=a.charCodeAt(h),c=this.charToGlyph(d),b.push(c),32===d&&b.push(null);return e[g]=b}},d}(),ec=function(){function a(a){this.error=a,this.loadedName="g_font_error",this.loading=!1}return a.prototype={charsToGlyphs:function(){return[]},exportData:function(){return{error:this.error}}},a}(),fc=function(){function a(){this.width=0,this.lsb=0,this.flexing=!1,this.output=[],this.stack=[]}var c={hstem:[1],vstem:[3],vmoveto:[4],rlineto:[5],hlineto:[6],vlineto:[7],rrcurveto:[8],callsubr:[10],flex:[12,35],drop:[12,18],endchar:[14],rmoveto:[21],hmoveto:[22],vhcurveto:[30],hvcurveto:[31]};return a.prototype={convert:function(a,d){for(var e,f,g,h=a.length,i=!1,j=0;h>j;j++){var k=a[j];if(32>k){switch(12===k&&(k=(k<<8)+a[++j]),k){case 1:if(!Mb){this.stack=[];break}i=this.executeCommand(2,c.hstem);break;case 3:if(!Mb){this.stack=[];break}i=this.executeCommand(2,c.vstem);break;case 4:if(this.flexing){if(this.stack.length<1){i=!0;break}var l=this.stack.pop();this.stack.push(0,l);break}i=this.executeCommand(1,c.vmoveto);break;case 5:i=this.executeCommand(2,c.rlineto);break;case 6:i=this.executeCommand(1,c.hlineto);break;case 7:i=this.executeCommand(1,c.vlineto);break;case 8:i=this.executeCommand(6,c.rrcurveto);break;case 9:this.stack=[];break;case 10:if(this.stack.length<1){i=!0;break}g=this.stack.pop(),i=this.convert(d[g],d);break;case 11:return i;case 13:if(this.stack.length<2){i=!0;break}e=this.stack.pop(),f=this.stack.pop(),this.lsb=f,this.width=e,this.stack.push(e,f),i=this.executeCommand(2,c.hmoveto);break;case 14:this.output.push(c.endchar[0]);break;case 21:if(this.flexing)break;i=this.executeCommand(2,c.rmoveto);break;case 22:if(this.flexing){this.stack.push(0);break}i=this.executeCommand(1,c.hmoveto);break;case 30:i=this.executeCommand(4,c.vhcurveto);break;case 31:i=this.executeCommand(4,c.hvcurveto);break;case 3072:this.stack=[];break;case 3073:if(!Mb){this.stack=[];break}i=this.executeCommand(2,c.vstem);break;case 3074:if(!Mb){this.stack=[];break}i=this.executeCommand(2,c.hstem);break;case 3078:Nb?(this.seac=this.stack.splice(-4,4),i=this.executeCommand(0,c.endchar)):i=this.executeCommand(4,c.endchar);break;case 3079:if(this.stack.length<4){i=!0;break}this.stack.pop();e=this.stack.pop();var m=this.stack.pop();f=this.stack.pop(),this.lsb=f,this.width=e,this.stack.push(e,f,m),i=this.executeCommand(3,c.rmoveto);break;case 3084:if(this.stack.length<2){i=!0;break}var n=this.stack.pop(),o=this.stack.pop();this.stack.push(o/n);break;case 3088:if(this.stack.length<2){i=!0;break}g=this.stack.pop();var p=this.stack.pop();if(0===g&&3===p){var q=this.stack.splice(this.stack.length-17,17);this.stack.push(q[2]+q[0],q[3]+q[1],q[4],q[5],q[6],q[7],q[8],q[9],q[10],q[11],q[12],q[13],q[14]),i=this.executeCommand(13,c.flex,!0),this.flexing=!1,this.stack.push(q[15],q[16])}else 1===g&&0===p&&(this.flexing=!0);break;case 3089:break;case 3105:this.stack=[];break;default:b('Unknown type 1 charstring command of "'+k+'"')}if(i)break}else 246>=k?k-=139:k=250>=k?256*(k-247)+a[++j]+108:254>=k?-(256*(k-251))-a[++j]-108:(255&a[++j])<<24|(255&a[++j])<<16|(255&a[++j])<<8|(255&a[++j])<<0,this.stack.push(k)}return i},executeCommand:function(a,b,c){var d=this.stack.length;if(a>d)return!0;for(var e=d-a,f=e;d>f;f++){var g=this.stack[f];g===(0|g)?this.output.push(28,g>>8&255,255&g):(g=65536*g|0,this.output.push(255,g>>24&255,g>>16&255,g>>8&255,255&g))}return this.output.push.apply(this.output,b),c?this.stack.splice(e,a):this.stack.length=0,!1}},a}(),gc=function(){function a(a){return a>=48&&57>=a||a>=65&&70>=a||a>=97&&102>=a}function b(a,b,c){for(var d=0|b,e=52845,f=22719,g=a.length,h=new Uint8Array(g),i=0;g>i;i++){var j=a[i];h[i]=j^d>>8,d=(j+d)*e+f&65535}return Array.prototype.slice.call(h,c)}function c(b,c,d){var e,f,g=0|c,h=52845,i=22719,j=b.length,k=j>>>1,l=new Uint8Array(k);for(e=0,f=0;j>e;e++){var m=b[e];if(a(m)){e++;for(var n;j>e&&!a(n=b[e]);)e++;if(j>e){var o=parseInt(String.fromCharCode(m,n),16);l[f++]=o^g>>8,g=(o+g)*h+i&65535}}}return Array.prototype.slice.call(l,d,f)}function d(a){return 47===a||91===a||93===a||123===a||125===a||40===a||41===a}function e(d,e){if(e){var g=d.getBytes(),h=!(a(g[0])&&a(g[1])&&a(g[2])&&a(g[3]));d=new Mc(h?b(g,f,4):c(g,f,4))}this.stream=d,this.nextChar()}var f=55665,g=4330;return e.prototype={readNumberArray:function(){this.getToken();for(var a=[];;){var b=this.getToken();if(null===b||"]"===b||"}"===b)break;a.push(parseFloat(b||0))}return a},readNumber:function(){var a=this.getToken();return parseFloat(a||0)},readInt:function(){var a=this.getToken();return 0|parseInt(a||0,10)},readBoolean:function(){var a=this.getToken();return"true"===a?1:0},nextChar:function(){return this.currentChar=this.stream.getByte()},getToken:function(){for(var a=!1,b=this.currentChar;;){if(-1===b)return null;if(a)(10===b||13===b)&&(a=!1);else if(37===b)a=!0;else if(!Gc.isSpace(b))break;b=this.nextChar()}if(d(b))return this.nextChar(),String.fromCharCode(b);var c="";do c+=String.fromCharCode(b),b=this.nextChar();while(b>=0&&!Gc.isSpace(b)&&!d(b));return c},extractFontProgram:function(){for(var a,c,d,e,f,h=this.stream,i=[],j=[],k={subrs:[],charstrings:[],properties:{privateData:{lenIV:4}}};null!==(a=this.getToken());)if("/"===a)switch(a=this.getToken()){case"CharStrings":for(this.getToken(),this.getToken(),this.getToken(),this.getToken();;){if(a=this.getToken(),null===a||"end"===a)break;if("/"===a){var l=this.getToken();c=this.readInt(),this.getToken(),d=h.makeSubStream(h.pos,c),e=k.properties.privateData.lenIV,f=b(d.getBytes(),g,e),h.skip(c),this.nextChar(),a=this.getToken(),"noaccess"===a&&this.getToken(),j.push({glyph:l,encoded:f})}}break;case"Subrs":this.readInt();for(this.getToken();"dup"===(a=this.getToken());){var m=this.readInt();c=this.readInt(),this.getToken(),d=h.makeSubStream(h.pos,c),e=k.properties.privateData.lenIV,f=b(d.getBytes(),g,e),h.skip(c),this.nextChar(),a=this.getToken(),"noaccess"===a&&this.getToken(),i[m]=f}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":var n=this.readNumberArray();n.length>0&&n.length%2===0&&Mb&&(k.properties.privateData[a]=n);break;case"StemSnapH":case"StemSnapV":k.properties.privateData[a]=this.readNumberArray();break;case"StdHW":case"StdVW":k.properties.privateData[a]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":case"ExpansionFactor":k.properties.privateData[a]=this.readNumber();break;case"ForceBold":k.properties.privateData[a]=this.readBoolean()}for(var o=0;o<j.length;o++){l=j[o].glyph,f=j[o].encoded;var p=new fc,q=p.convert(f,i),r=p.output;q&&(r=[14]),k.charstrings.push({glyphName:l,charstring:r,width:p.width,lsb:p.lsb,seac:p.seac})}return k},extractFontHeader:function(a){for(var b;null!==(b=this.getToken());)if("/"===b)switch(b=this.getToken()){case"FontMatrix":var c=this.readNumberArray();a.fontMatrix=c;break;case"Encoding":var d,e=this.getToken();if(/^\d+$/.test(e)){d=[];var f=0|parseInt(e,10);this.getToken();for(var g=0;f>g;g++){for(b=this.getToken();"dup"!==b&&"def"!==b;)if(b=this.getToken(),null===b)return;if("def"===b)break;var h=this.readInt();this.getToken();var i=this.getToken();d[h]=i,this.getToken()}}else d=Pb[e];a.builtInEncoding=d;break;case"FontBBox":var j=this.readNumberArray();a.ascent=j[3],a.descent=j[1],a.ascentScaled=!0}}},e}(),hc=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],ic=function(a,b,c){var d=6,e=c.length1,f=c.length2,g=b.peekBytes(d),h=128===g[0]&&1===g[1];h&&(b.skip(d),e=g[5]<<24|g[4]<<16|g[3]<<8|g[2]);var i=new Mc(b.getBytes(e)),j=new gc(i);j.extractFontHeader(c),h&&(g=b.getBytes(d),f=g[5]<<24|g[4]<<16|g[3]<<8|g[2]);var k=new Mc(b.getBytes(f)),l=new gc(k,!0),m=l.extractFontProgram();for(var n in m.properties)c[n]=m.properties[n];var o=m.charstrings,p=this.getType2Charstrings(o),q=this.getType2Subrs(m.subrs);this.charstrings=o,this.data=this.wrap(a,p,this.charstrings,q,c),this.seacs=this.getSeacs(m.charstrings)};ic.prototype={get numGlyphs(){return this.charstrings.length+1},getCharset:function(){for(var a=[".notdef"],b=this.charstrings,c=0;c<b.length;c++)a.push(b[c].glyphName);return a},getGlyphMapping:function(a){var b,c=this.charstrings,d=[".notdef"];
-for(b=0;b<c.length;b++)d.push(c[b].glyphName);var e=a.builtInEncoding;if(e){var f={};for(var g in e)b=d.indexOf(e[g]),b>=0&&(f[g]=b)}return Q(a,f,d)},getSeacs:function(a){var b,c,d=[];for(b=0,c=a.length;c>b;b++){var e=a[b];e.seac&&(d[b+1]=e.seac)}return d},getType2Charstrings:function(a){for(var b=[],c=0,d=a.length;d>c;c++)b.push(a[c].charstring);return b},getType2Subrs:function(a){var b=0,c=a.length;b=1133>c?107:33769>c?1131:32768;var d,e=[];for(d=0;b>d;d++)e.push([11]);for(d=0;c>d;d++)e.push(a[d]);return e},wrap:function(a,b,c,d,e){var f=new lc;f.header=new mc(1,0,4,4),f.names=[a];var g=new qc;g.setByName("version",391),g.setByName("Notice",392),g.setByName("FullName",393),g.setByName("FamilyName",394),g.setByName("Weight",395),g.setByName("Encoding",null),g.setByName("FontMatrix",e.fontMatrix),g.setByName("FontBBox",e.bbox),g.setByName("charset",null),g.setByName("CharStrings",null),g.setByName("Private",null),f.topDict=g;var h=new nc;h.add("Version 0.11"),h.add("See original notice"),h.add(a),h.add(a),h.add("Medium"),f.strings=h,f.globalSubrIndex=new oc;var i,j,k=b.length,l=[0];for(i=0;k>i;i++){var m=hc.indexOf(c[i].glyphName);-1===m&&(m=0),l.push(m>>8&255,255&m)}f.charset=new tc(!1,0,[],l);var n=new oc;for(n.add([139,14]),i=0;k>i;i++)n.add(b[i]);f.charStrings=n;var o=new rc;o.setByName("Subrs",null);var p=["BlueValues","OtherBlues","FamilyBlues","FamilyOtherBlues","StemSnapH","StemSnapV","BlueShift","BlueFuzz","BlueScale","LanguageGroup","ExpansionFactor","ForceBold","StdHW","StdVW"];for(i=0,j=p.length;j>i;i++){var q=p[i];if(e.privateData.hasOwnProperty(q)){var r=e.privateData[q];if(C(r))for(var s=r.length-1;s>0;s--)r[s]-=r[s-1];o.setByName(q,r)}}f.topDict.privateDict=o;var t=new oc;for(i=0,j=d.length;j>i;i++)t.add(d[i]);o.subrsIndex=t;var u=new xc(f);return u.compile()}};var jc=function(){function a(a,c){this.properties=c;var d=new kc(a,c);this.cff=d.parse();var e=new xc(this.cff);this.seacs=this.cff.seacs;try{this.data=e.compile()}catch(f){b("Failed to compile font "+c.loadedName),this.data=a}}return a.prototype={get numGlyphs(){return this.cff.charStrings.count},getCharset:function(){return this.cff.charset.charset},getGlyphMapping:function(){var a,b,c=this.cff,d=this.properties,e=c.charset.charset;if(d.composite){if(a=Object.create(null),c.isCIDFont)for(b=0;b<e.length;b++){var f=e[b],g=d.cMap.charCodeOf(f);a[g]=b}else for(b=0;b<c.charStrings.count;b++)a[b]=b;return a}var h=c.encoding?c.encoding.encoding:null;return a=Q(d,h,e)}},a}(),kc=function(){function d(a,b){this.bytes=a.getBytes(),this.properties=b}var e=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],f=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn:function(a,b){a[b-2]=a[b-2]+a[b-1]}},{id:"sub",min:2,stackDelta:-1,stackFn:function(a,b){a[b-2]=a[b-2]-a[b-1]}},{id:"div",min:2,stackDelta:-1,stackFn:function(a,b){a[b-2]=a[b-2]/a[b-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn:function(a,b){a[b-1]=-a[b-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn:function(a,b){a[b-2]=a[b-2]*a[b-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];return d.prototype={parse:function(){var a=this.properties,b=new lc;this.cff=b;var c=this.parseHeader(),d=this.parseIndex(c.endPos),e=this.parseIndex(d.endPos),f=this.parseIndex(e.endPos),g=this.parseIndex(f.endPos),h=this.parseDict(e.obj.get(0)),i=this.createDict(qc,h,b.strings);b.header=c.obj,b.names=this.parseNameIndex(d.obj),b.strings=this.parseStringIndex(f.obj),b.topDict=i,b.globalSubrIndex=g.obj,this.parsePrivateDict(b.topDict),b.isCIDFont=i.hasName("ROS");var j=i.getByName("CharStrings"),k=this.parseCharStrings(j);b.charStrings=k.charStrings,b.seacs=k.seacs,b.widths=k.widths;var l=i.getByName("FontMatrix");l&&(a.fontMatrix=l);var m=i.getByName("FontBBox");m&&(a.ascent=m[3],a.descent=m[1],a.ascentScaled=!0);var n,o;if(b.isCIDFont){for(var p=this.parseIndex(i.getByName("FDArray")).obj,q=0,r=p.count;r>q;++q){var s=p.get(q),t=this.createDict(qc,this.parseDict(s),b.strings);this.parsePrivateDict(t),b.fdArray.push(t)}o=null,n=this.parseCharsets(i.getByName("charset"),b.charStrings.count,b.strings,!0),b.fdSelect=this.parseFDSelect(i.getByName("FDSelect"),b.charStrings.count)}else n=this.parseCharsets(i.getByName("charset"),b.charStrings.count,b.strings,!1),o=this.parseEncoding(i.getByName("Encoding"),a,b.strings,n.charset);return b.charset=n,b.encoding=o,b},parseHeader:function(){for(var b=this.bytes,d=b.length,e=0;d>e&&1!==b[e];)++e;e>=d?c("Invalid CFF header"):0!==e&&(a("cff data is shifted"),b=b.subarray(e),this.bytes=b);var f=b[0],g=b[1],h=b[2],i=b[3],j=new mc(f,g,h,i);return{obj:j,endPos:h}},parseDict:function(a){function b(){var b=a[e++];return 30===b?d(e):28===b?(b=a[e++],b=(b<<24|a[e++]<<16)>>16):29===b?(b=a[e++],b=b<<8|a[e++],b=b<<8|a[e++],b=b<<8|a[e++]):b>=32&&246>=b?b-139:b>=247&&250>=b?256*(b-247)+a[e++]+108:b>=251&&254>=b?-(256*(b-251))-a[e++]-108:(c("255 is not a valid DICT command"),-1)}function d(){for(var b="",c=15,d=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],f=a.length;f>e;){var g=a[e++],h=g>>4,i=15&g;if(h===c)break;if(b+=d[h],i===c)break;b+=d[i]}return parseFloat(b)}var e=0,f=[],g=[];e=0;for(var h=a.length;h>e;){var i=a[e];21>=i?(12===i&&(i=i<<8|a[++e]),g.push([i,f]),f=[],++e):f.push(b())}return g},parseIndex:function(a){var b,c,d=new oc,e=this.bytes,f=e[a++]<<8|e[a++],g=[],h=a;if(0!==f){var i=e[a++],j=a+(f+1)*i-1;for(b=0,c=f+1;c>b;++b){for(var k=0,l=0;i>l;++l)k<<=8,k+=e[a++];g.push(j+k)}h=g[f]}for(b=0,c=g.length-1;c>b;++b){var m=g[b],n=g[b+1];d.add(e.subarray(m,n))}return{obj:d,endPos:h}},parseNameIndex:function(a){for(var b=[],c=0,d=a.count;d>c;++c){for(var e=a.get(c),f=Math.min(e.length,127),g=[],h=0;f>h;++h){var j=e[h];(0!==h||0!==j)&&(33>j||j>126||91===j||93===j||40===j||41===j||123===j||125===j||60===j||62===j||47===j||37===j||35===j)?g[h]=95:g[h]=j}b.push(i(g))}return b},parseStringIndex:function(a){for(var b=new nc,c=0,d=a.count;d>c;++c){var e=a.get(c);b.add(i(e))}return b},createDict:function(a,b,c){for(var d=new a(c),e=0,f=b.length;f>e;++e){var g=b[e],h=g[0],i=g[1];d.setByKey(h,i)}return d},parseCharStrings:function(a){for(var c=this.parseIndex(a).obj,d=[],g=[],h=c.count,i=0;h>i;i++){for(var j=c.get(i),k=0,l=[],m=!0,n=0,o=!0,p=j,q=p.length,r=!0,s=0;q>s;){var t=p[s++],u=null;if(12===t){var v=p[s++];0===v?(p[s-2]=139,p[s-1]=22,k=0):u=f[v]}else 28===t?(l[k]=(p[s]<<24|p[s+1]<<16)>>16,s+=2,k++):14===t?(k>=4&&(k-=4,Nb&&(d[i]=l.slice(k,k+4),o=!1)),u=e[t]):t>=32&&246>=t?(l[k]=t-139,k++):t>=247&&254>=t?(l[k]=251>t?(t-247<<8)+p[s]+108:-(t-251<<8)-p[s]-108,s++,k++):255===t?(l[k]=(p[s]<<24|p[s+1]<<16|p[s+2]<<8|p[s+3])/65536,s+=4,k++):19===t||20===t?(n+=k>>1,s+=n+7>>3,k%=2,u=e[t]):u=e[t];if(u){if(u.stem&&(n+=k>>1),"min"in u&&!m&&k<u.min){b("Not enough parameters for "+u.id+"; actual: "+k+", expected: "+u.min),o=!1;break}r&&u.stackClearing&&(r=!1,k-=u.min,k>=2&&u.stem?k%=2:k>1&&b("Found too many parameters for stack-clearing command"),k>0&&l[k-1]>=0&&(g[i]=l[k-1])),"stackDelta"in u?("stackFn"in u&&u.stackFn(l,k),k+=u.stackDelta):u.stackClearing?k=0:u.resetStack?(k=0,m=!1):u.undefStack&&(k=0,m=!0,r=!1)}}o||c.set(i,new Uint8Array([14]))}return{charStrings:c,seacs:d,widths:g}},emptyPrivateDictionary:function(a){var b=this.createDict(rc,[],a.strings);a.setByKey(18,[0,0]),a.privateDict=b},parsePrivateDict:function(a){if(!a.hasName("Private"))return void this.emptyPrivateDictionary(a);var b=a.getByName("Private");if(!C(b)||2!==b.length)return void a.removeByName("Private");var c=b[0],d=b[1];if(0===c||d>=this.bytes.length)return void this.emptyPrivateDictionary(a);var e=d+c,f=this.bytes.subarray(d,e),g=this.parseDict(f),h=this.createDict(rc,g,a.strings);if(a.privateDict=h,h.getByName("Subrs")){var i=h.getByName("Subrs"),j=d+i;if(0===i||j>=this.bytes.length)return void this.emptyPrivateDictionary(a);var k=this.parseIndex(j);h.subrsIndex=k.obj}},parseCharsets:function(a,b,d,e){if(0===a)return new tc(!0,sc.ISO_ADOBE,Ja);if(1===a)return new tc(!0,sc.EXPERT,Ka);if(2===a)return new tc(!0,sc.EXPERT_SUBSET,La);var f,g,h,i=this.bytes,j=a,k=i[a++],l=[".notdef"];switch(b-=1,k){case 0:for(h=0;b>h;h++)f=i[a++]<<8|i[a++],l.push(e?f:d.get(f));break;case 1:for(;l.length<=b;)for(f=i[a++]<<8|i[a++],g=i[a++],h=0;g>=h;h++)l.push(e?f++:d.get(f++));break;case 2:for(;l.length<=b;)for(f=i[a++]<<8|i[a++],g=i[a++]<<8|i[a++],h=0;g>=h;h++)l.push(e?f++:d.get(f++));break;default:c("Unknown charset format")}var m=a,n=i.subarray(j,m);return new tc(!1,k,l,n)},parseEncoding:function(a,b,d,e){function f(){var b=k[a++];for(h=0;b>h;h++){var c=k[a++],f=(k[a++]<<8)+(255&k[a++]);j[c]=e.indexOf(d.get(f))}}var g,h,i,j={},k=this.bytes,l=!1,m=!1,n=null;if(0===a||1===a){l=!0,g=a;var o=a?Pb.ExpertEncoding:Pb.StandardEncoding;for(h=0,i=e.length;i>h;h++){var p=o.indexOf(e[h]);-1!==p&&(j[p]=h)}}else{var q=a;switch(g=k[a++],127&g){case 0:var r=k[a++];for(h=1;r>=h;h++)j[k[a++]]=h;break;case 1:var s=k[a++],t=1;for(h=0;s>h;h++)for(var u=k[a++],v=k[a++],w=u;u+v>=w;w++)j[w]=t++;break;default:c("Unknow encoding format: "+g+" in CFF")}var x=a;128&g&&(k[q]&=127,f(),m=!0),n=k.subarray(q,x)}return g=127&g,new uc(l,g,j,n)},parseFDSelect:function(a,b){var d,e=a,f=this.bytes,g=f[a++],h=[];switch(g){case 0:for(d=0;b>d;++d){var i=f[a++];h.push(i)}break;case 3:var j=f[a++]<<8|f[a++];for(d=0;j>d;++d)for(var k=f[a++]<<8|f[a++],l=f[a++],m=f[a]<<8|f[a+1],n=k;m>n;++n)h.push(l);a+=2;break;default:c("Unknown fdselect format "+g)}var o=a;return new vc(h,f.subarray(e,o))}},d}(),lc=function(){function a(){this.header=null,this.names=[],this.topDict=null,this.strings=new nc,this.globalSubrIndex=null,this.encoding=null,this.charset=null,this.charStrings=null,this.fdArray=[],this.fdSelect=null,this.isCIDFont=!1}return a}(),mc=function(){function a(a,b,c,d){this.major=a,this.minor=b,this.hdrSize=c,this.offSize=d}return a}(),nc=function(){function a(){this.strings=[]}return a.prototype={get:function(a){return a>=0&&390>=a?hc[a]:a-391<=this.strings.length?this.strings[a-391]:hc[0]},add:function(a){this.strings.push(a)},get count(){return this.strings.length}},a}(),oc=function(){function a(){this.objects=[],this.length=0}return a.prototype={add:function(a){this.length+=a.length,this.objects.push(a)},set:function(a,b){this.length+=b.length-this.objects[a].length,this.objects[a]=b},get:function(a){return this.objects[a]},get count(){return this.objects.length}},a}(),pc=function(){function a(a,b){this.keyToNameMap=a.keyToNameMap,this.nameToKeyMap=a.nameToKeyMap,this.defaults=a.defaults,this.types=a.types,this.opcodes=a.opcodes,this.order=a.order,this.strings=b,this.values={}}return a.prototype={setByKey:function(a,b){if(!(a in this.keyToNameMap))return!1;if(0===b.length)return!0;var c=this.types[a];return("num"===c||"sid"===c||"offset"===c)&&(b=b[0]),this.values[a]=b,!0},setByName:function(a,b){a in this.nameToKeyMap||c('Invalid dictionary name "'+a+'"'),this.values[this.nameToKeyMap[a]]=b},hasName:function(a){return this.nameToKeyMap[a]in this.values},getByName:function(a){a in this.nameToKeyMap||c('Invalid dictionary name "'+a+'"');var b=this.nameToKeyMap[a];return b in this.values?this.values[b]:this.defaults[b]},removeByName:function(a){delete this.values[this.nameToKeyMap[a]]}},a.createTables=function(a){for(var b={keyToNameMap:{},nameToKeyMap:{},defaults:{},types:{},opcodes:{},order:[]},c=0,d=a.length;d>c;++c){var e=a[c],f=C(e[0])?(e[0][0]<<8)+e[0][1]:e[0];b.keyToNameMap[f]=e[1],b.nameToKeyMap[e[1]]=f,b.types[f]=e[2],b.defaults[f]=e[3],b.opcodes[f]=C(e[0])?e[0]:[e[0]],b.order.push(f)}return b},a}(),qc=function(){function a(a){null===c&&(c=pc.createTables(b)),pc.call(this,c,a),this.privateDict=null}var b=[[[12,30],"ROS",["sid","sid","num"],null],[[12,20],"SyntheticBase","num",null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","num",0],[[12,2],"ItalicAngle","num",0],[[12,3],"UnderlinePosition","num",-100],[[12,4],"UnderlineThickness","num",50],[[12,5],"PaintType","num",0],[[12,6],"CharstringType","num",2],[[12,7],"FontMatrix",["num","num","num","num","num","num"],[.001,0,0,.001,0,0]],[13,"UniqueID","num",null],[5,"FontBBox",["num","num","num","num"],[0,0,0,0]],[[12,8],"StrokeWidth","num",0],[14,"XUID","array",null],[15,"charset","offset",0],[16,"Encoding","offset",0],[17,"CharStrings","offset",0],[18,"Private",["offset","offset"],null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","num",0],[[12,32],"CIDFontRevision","num",0],[[12,33],"CIDFontType","num",0],[[12,34],"CIDCount","num",8720],[[12,35],"UIDBase","num",null],[[12,37],"FDSelect","offset",null],[[12,36],"FDArray","offset",null],[[12,38],"FontName","sid",null]],c=null;return a.prototype=Object.create(pc.prototype),a}(),rc=function(){function a(a){null===c&&(c=pc.createTables(b)),pc.call(this,c,a),this.subrsIndex=null}var b=[[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",.039625],[[12,10],"BlueShift","num",7],[[12,11],"BlueFuzz","num",1],[10,"StdHW","num",null],[11,"StdVW","num",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","num",0],[[12,17],"LanguageGroup","num",0],[[12,18],"ExpansionFactor","num",.06],[[12,19],"initialRandomSeed","num",0],[20,"defaultWidthX","num",0],[21,"nominalWidthX","num",0],[19,"Subrs","offset",null]],c=null;return a.prototype=Object.create(pc.prototype),a}(),sc={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2},tc=function(){function a(a,b,c,d){this.predefined=a,this.format=b,this.charset=c,this.raw=d}return a}(),uc=function(){function a(a,b,c,d){this.predefined=a,this.format=b,this.encoding=c,this.raw=d}return a}(),vc=function(){function a(a,b){this.fdSelect=a,this.raw=b}return a}(),wc=function(){function a(){this.offsets={}}return a.prototype={isTracking:function(a){return a in this.offsets},track:function(a,b){a in this.offsets&&c("Already tracking location of "+a),this.offsets[a]=b},offset:function(a){for(var b in this.offsets)this.offsets[b]+=a},setEntryLocation:function(a,b,d){a in this.offsets||c("Not tracking location of "+a);for(var e=d.data,f=this.offsets[a],g=5,h=0,i=b.length;i>h;++h){var j=h*g+f,k=j+1,l=j+2,m=j+3,n=j+4;(29!==e[j]||0!==e[k]||0!==e[l]||0!==e[m]||0!==e[n])&&c("writing to an offset that is not empty");var o=b[h];e[j]=29,e[k]=o>>24&255,e[l]=o>>16&255,e[m]=o>>8&255,e[n]=255&o}}},a}(),xc=function(){function a(a){this.cff=a}return a.prototype={compile:function(){var a=this.cff,b={data:[],length:0,add:function(a){this.data=this.data.concat(a),this.length=this.data.length}},c=this.compileHeader(a.header);b.add(c);var d=this.compileNameIndex(a.names);if(b.add(d),a.isCIDFont&&a.topDict.hasName("FontMatrix")){var e=a.topDict.getByName("FontMatrix");a.topDict.removeByName("FontMatrix");for(var f=0,g=a.fdArray.length;g>f;f++){var h=a.fdArray[f],i=e.slice(0);h.hasName("FontMatrix")&&(i=na.transform(i,h.getByName("FontMatrix"))),h.setByName("FontMatrix",i)}}var j=this.compileTopDicts([a.topDict],b.length,a.isCIDFont);b.add(j.output);var k=j.trackers[0],l=this.compileStringIndex(a.strings.strings);b.add(l);var m=this.compileIndex(a.globalSubrIndex);if(b.add(m),a.encoding&&a.topDict.hasName("Encoding"))if(a.encoding.predefined)k.setEntryLocation("Encoding",[a.encoding.format],b);else{var n=this.compileEncoding(a.encoding);k.setEntryLocation("Encoding",[b.length],b),b.add(n)}if(a.charset&&a.topDict.hasName("charset"))if(a.charset.predefined)k.setEntryLocation("charset",[a.charset.format],b);else{var o=this.compileCharset(a.charset);k.setEntryLocation("charset",[b.length],b),b.add(o)}var p=this.compileCharStrings(a.charStrings);if(k.setEntryLocation("CharStrings",[b.length],b),b.add(p),a.isCIDFont){k.setEntryLocation("FDSelect",[b.length],b);var q=this.compileFDSelect(a.fdSelect.raw);b.add(q),j=this.compileTopDicts(a.fdArray,b.length,!0),k.setEntryLocation("FDArray",[b.length],b),b.add(j.output);var r=j.trackers;this.compilePrivateDicts(a.fdArray,r,b)}return this.compilePrivateDicts([a.topDict],[k],b),b.add([0]),b.data},encodeNumber:function(a){return parseFloat(a)!==parseInt(a,10)||isNaN(a)?this.encodeFloat(a):this.encodeInteger(a)},encodeFloat:function(a){var b=a.toString(),c=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(b);if(c){var d=parseFloat("1e"+((c[2]?+c[2]:0)+c[1].length));b=(Math.round(a*d)/d).toString()}var e,f,g="";for(e=0,f=b.length;f>e;++e){var h=b[e];g+="e"===h?"-"===b[++e]?"c":"b":"."===h?"a":"-"===h?"e":h}g+=1&g.length?"f":"ff";var i=[30];for(e=0,f=g.length;f>e;e+=2)i.push(parseInt(g.substr(e,2),16));return i},encodeInteger:function(a){var b;return a>=-107&&107>=a?b=[a+139]:a>=108&&1131>=a?(a=[a-108],b=[(a>>8)+247,255&a]):a>=-1131&&-108>=a?(a=-a-108,b=[(a>>8)+251,255&a]):b=a>=-32768&&32767>=a?[28,a>>8&255,255&a]:[29,a>>24&255,a>>16&255,a>>8&255,255&a],b},compileHeader:function(a){return[a.major,a.minor,a.hdrSize,a.offSize]},compileNameIndex:function(a){for(var b=new oc,c=0,d=a.length;d>c;++c)b.add(j(a[c]));return this.compileIndex(b)},compileTopDicts:function(a,b,c){for(var d=[],e=new oc,f=0,g=a.length;g>f;++f){var h=a[f];c&&(h.removeByName("CIDFontVersion"),h.removeByName("CIDFontRevision"),h.removeByName("CIDFontType"),h.removeByName("CIDCount"),h.removeByName("UIDBase"));var i=new wc,j=this.compileDict(h,i);d.push(i),e.add(j),i.offset(b)}return e=this.compileIndex(e,d),{trackers:d,output:e}},compilePrivateDicts:function(a,b,c){for(var d=0,f=a.length;f>d;++d){var g=a[d];e(g.privateDict&&g.hasName("Private"),"There must be an private dictionary.");var h=g.privateDict,i=new wc,j=this.compileDict(h,i),k=c.length;if(i.offset(k),j.length||(k=0),b[d].setEntryLocation("Private",[j.length,k],c),c.add(j),h.subrsIndex&&h.hasName("Subrs")){var l=this.compileIndex(h.subrsIndex);i.setEntryLocation("Subrs",[j.length],c),c.add(l)}}},compileDict:function(a,b){for(var d=[],e=a.order,f=0;f<e.length;++f){var g=e[f];if(g in a.values){var h=a.values[g],i=a.types[g];if(C(i)||(i=[i]),C(h)||(h=[h]),0!==h.length){for(var j=0,k=i.length;k>j;++j){var l=i[j],m=h[j];switch(l){case"num":case"sid":d=d.concat(this.encodeNumber(m));break;case"offset":var n=a.keyToNameMap[g];b.isTracking(n)||b.track(n,d.length),d=d.concat([29,0,0,0,0]);break;case"array":case"delta":d=d.concat(this.encodeNumber(m));for(var o=1,p=h.length;p>o;++o)d=d.concat(this.encodeNumber(h[o]));break;default:c("Unknown data type of "+l)}}d=d.concat(a.opcodes[g])}}}return d},compileStringIndex:function(a){for(var b=new oc,c=0,d=a.length;d>c;++c)b.add(j(a[c]));return this.compileIndex(b)},compileGlobalSubrIndex:function(){var a=this.cff.globalSubrIndex;this.out.writeByteArray(this.compileIndex(a))},compileCharStrings:function(a){return this.compileIndex(a)},compileCharset:function(a){return this.compileTypedArray(a.raw)},compileEncoding:function(a){return this.compileTypedArray(a.raw)},compileFDSelect:function(a){return this.compileTypedArray(a)},compileTypedArray:function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b},compileIndex:function(a,b){b=b||[];var c=a.objects,d=c.length;if(0===d)return[0,0,0];var e,f=[d>>8&255,255&d],g=1;for(e=0;d>e;++e)g+=c[e].length;var h;h=256>g?1:65536>g?2:16777216>g?3:4,f.push(h);var i=1;for(e=0;d+1>e;e++)1===h?f.push(255&i):2===h?f.push(i>>8&255,255&i):3===h?f.push(i>>16&255,i>>8&255,255&i):f.push(i>>>24&255,i>>16&255,i>>8&255,255&i),c[e]&&(i+=c[e].length);for(e=0;d>e;e++){b[e]&&b[e].offset(f.length);for(var j=0,k=c[e].length;k>j;j++)f.push(c[e][j])}return f}},a}();!function(){/Windows/.test(navigator.userAgent)&&(Nb=!0)}(),function(){/Windows.*Chrome/.test(navigator.userAgent)&&(Kb=!0)}();var yc=function(){function a(a,b){return a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3]}function b(a,b){return a[b]<<8|a[b+1]}function d(d,e,f){var g,h,i,j,k=1===b(d,e+2)?a(d,e+8):a(d,e+16),l=b(d,e+k);if(4===l){g=b(d,e+k+2);var m=b(d,e+k+6)>>1;for(i=e+k+14,h=[],j=0;m>j;j++,i+=2)h[j]={end:b(d,i)};for(i+=2,j=0;m>j;j++,i+=2)h[j].start=b(d,i);for(j=0;m>j;j++,i+=2)h[j].idDelta=b(d,i);for(j=0;m>j;j++,i+=2){var n=b(d,i);if(0!==n){h[j].ids=[];for(var o=0,p=h[j].end-h[j].start+1;p>o;o++)h[j].ids[o]=b(d,i+n),n+=2}}return h}if(12===l){g=a(d,e+k+4);var q=a(d,e+k+12);for(i=e+k+16,h=[],j=0;q>j;j++)h.push({start:a(d,i),end:a(d,i+4),idDelta:a(d,i+8)-a(d,i)}),i+=12;return h}c("not supported cmap: "+l)}function e(a,b,c){var d={},e=new kc(new Mc(a,b,c-b),d),f=e.parse();return{glyphs:f.charStrings.objects,subrs:f.topDict.privateDict&&f.topDict.privateDict.subrsIndex&&f.topDict.privateDict.subrsIndex.objects,gsubrs:f.globalSubrIndex&&f.globalSubrIndex.objects}}function f(a,b,c){var d,e;c?(d=4,e=function(a,b){return a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3]}):(d=2,e=function(a,b){return a[b]<<9|a[b+1]<<1});for(var f=[],g=e(b,0),h=d;h<b.length;h+=d){var i=e(b,h);f.push(a.subarray(g,i)),g=i}return f}function g(a,b){for(var c=b.charCodeAt(0),d=0,e=a.length-1;e>d;){var f=d+e+1>>1;c<a[f].start?e=f-1:d=f}return a[d].start<=c&&c<=a[d].end?a[d].idDelta+(a[d].ids?a[d].ids[c-a[d].start]:c)&65535:0}function h(a,b,c){function d(a,c){b.push({cmd:"moveTo",args:[a,c]})}function e(a,c){b.push({cmd:"lineTo",args:[a,c]})}function f(a,c,d,e){b.push({cmd:"quadraticCurveTo",args:[a,c,d,e]})}var g,i=0,j=(a[i]<<24|a[i+1]<<16)>>16,k=0,l=0;if(i+=10,0>j){do{g=a[i]<<8|a[i+1];var m=a[i+2]<<8|a[i+3];i+=4;var n,o;1&g?(n=(a[i]<<24|a[i+1]<<16)>>16,o=(a[i+2]<<24|a[i+3]<<16)>>16,i+=4):(n=a[i++],o=a[i++]),2&g?(k=n,l=o):(k=0,l=0);var p=1,q=1,r=0,s=0;8&g?(p=q=(a[i]<<24|a[i+1]<<16)/1073741824,i+=2):64&g?(p=(a[i]<<24|a[i+1]<<16)/1073741824,q=(a[i+2]<<24|a[i+3]<<16)/1073741824,i+=4):128&g&&(p=(a[i]<<24|a[i+1]<<16)/1073741824,r=(a[i+2]<<24|a[i+3]<<16)/1073741824,s=(a[i+4]<<24|a[i+5]<<16)/1073741824,q=(a[i+6]<<24|a[i+7]<<16)/1073741824,i+=8);var t=c.glyphs[m];t&&(b.push({cmd:"save"}),b.push({cmd:"transform",args:[p,r,s,q,k,l]}),h(t,b,c),b.push({cmd:"restore"}))}while(32&g)}else{var u,v,w=[];for(u=0;j>u;u++)w.push(a[i]<<8|a[i+1]),i+=2;var x=a[i]<<8|a[i+1];i+=2+x;for(var y=w[w.length-1]+1,z=[];z.length<y;){g=a[i++];var A=1;for(8&g&&(A+=a[i++]);A-- >0;)z.push({flags:g})}for(u=0;y>u;u++){switch(18&z[u].flags){case 0:k+=(a[i]<<24|a[i+1]<<16)>>16,i+=2;break;case 2:k-=a[i++];break;case 18:k+=a[i++]}z[u].x=k}for(u=0;y>u;u++){switch(36&z[u].flags){case 0:l+=(a[i]<<24|a[i+1]<<16)>>16,i+=2;break;case 4:l-=a[i++];break;case 36:l+=a[i++]}z[u].y=l}var B=0;for(i=0;j>i;i++){var C=w[i],D=z.slice(B,C+1);if(1&D[0].flags)D.push(D[0]);else if(1&D[D.length-1].flags)D.unshift(D[D.length-1]);else{var E={flags:1,x:(D[0].x+D[D.length-1].x)/2,y:(D[0].y+D[D.length-1].y)/2};D.unshift(E),D.push(E)}for(d(D[0].x,D[0].y),u=1,v=D.length;v>u;u++)1&D[u].flags?e(D[u].x,D[u].y):1&D[u+1].flags?(f(D[u].x,D[u].y,D[u+1].x,D[u+1].y),u++):f(D[u].x,D[u].y,(D[u].x+D[u+1].x)/2,(D[u].y+D[u+1].y)/2);B=C+1}}}function j(a,b,d){function e(a,c){b.push({cmd:"moveTo",args:[a,c]})}function f(a,c){b.push({cmd:"lineTo",args:[a,c]})}function h(a,c,d,e,f,g){b.push({cmd:"bezierCurveTo",args:[a,c,d,e,f,g]})}function i(a){for(var o=0;o<a.length;){var p,q,r,s,t,u,v,w,x,y=!1,z=a[o++];switch(z){case 1:n+=k.length>>1,y=!0;break;case 3:n+=k.length>>1,y=!0;break;case 4:m+=k.pop(),e(l,m),y=!0;break;case 5:for(;k.length>0;)l+=k.shift(),m+=k.shift(),f(l,m);break;case 6:for(;k.length>0&&(l+=k.shift(),f(l,m),0!==k.length);)m+=k.shift(),f(l,m);break;case 7:for(;k.length>0&&(m+=k.shift(),f(l,m),0!==k.length);)l+=k.shift(),f(l,m);break;case 8:for(;k.length>0;)p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m);break;case 10:w=k.pop()+d.subrsBias,x=d.subrs[w],x&&i(x);break;case 11:return;case 12:switch(z=a[o++]){case 34:p=l+k.shift(),q=p+k.shift(),t=m+k.shift(),l=q+k.shift(),h(p,m,q,t,l,t),p=l+k.shift(),q=p+k.shift(),l=q+k.shift(),h(p,t,q,m,l,m);break;case 35:p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m),p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m),k.pop();break;case 36:p=l+k.shift(),t=m+k.shift(),q=p+k.shift(),u=t+k.shift(),l=q+k.shift(),h(p,t,q,u,l,u),p=l+k.shift(),q=p+k.shift(),v=u+k.shift(),l=q+k.shift(),h(p,u,q,v,l,m);break;case 37:var A=l,B=m;p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m),p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q,m=s,Math.abs(l-A)>Math.abs(m-B)?l+=k.shift():m+=k.shift(),h(p,r,q,s,l,m);break;default:c("unknown operator: 12 "+z)}break;case 14:if(k.length>=4){var C=k.pop(),D=k.pop();m=k.pop(),l=k.pop(),b.push({cmd:"save"}),b.push({cmd:"translate",args:[l,m]});var E=g(d.cmap,String.fromCharCode(d.glyphNameMap[Pb.StandardEncoding[C]]));j(d.glyphs[E],b,d),b.push({cmd:"restore"}),E=g(d.cmap,String.fromCharCode(d.glyphNameMap[Pb.StandardEncoding[D]])),j(d.glyphs[E],b,d)}return;case 18:n+=k.length>>1,y=!0;break;case 19:n+=k.length>>1,o+=n+7>>3,y=!0;break;case 20:n+=k.length>>1,o+=n+7>>3,y=!0;break;case 21:m+=k.pop(),l+=k.pop(),e(l,m),y=!0;break;case 22:l+=k.pop(),e(l,m),y=!0;break;case 23:n+=k.length>>1,y=!0;break;case 24:for(;k.length>2;)p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m);l+=k.shift(),m+=k.shift(),f(l,m);break;case 25:for(;k.length>6;)l+=k.shift(),m+=k.shift(),f(l,m);p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m);break;case 26:for(k.length%2&&(l+=k.shift());k.length>0;)p=l,r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q,m=s+k.shift(),h(p,r,q,s,l,m);break;case 27:for(k.length%2&&(m+=k.shift());k.length>0;)p=l+k.shift(),r=m,q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s,h(p,r,q,s,l,m);break;case 28:k.push((a[o]<<24|a[o+1]<<16)>>16),o+=2;break;case 29:w=k.pop()+d.gsubrsBias,x=d.gsubrs[w],x&&i(x);break;case 30:for(;k.length>0&&(p=l,r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+(1===k.length?k.shift():0),h(p,r,q,s,l,m),0!==k.length);)p=l+k.shift(),r=m,q=p+k.shift(),s=r+k.shift(),m=s+k.shift(),l=q+(1===k.length?k.shift():0),h(p,r,q,s,l,m);break;case 31:for(;k.length>0&&(p=l+k.shift(),r=m,q=p+k.shift(),s=r+k.shift(),m=s+k.shift(),l=q+(1===k.length?k.shift():0),h(p,r,q,s,l,m),0!==k.length);)p=l,r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+(1===k.length?k.shift():0),h(p,r,q,s,l,m);break;default:32>z&&c("unknown operator: "+z),247>z?k.push(z-139):251>z?k.push(256*(z-247)+a[o++]+108):255>z?k.push(256*-(z-251)-a[o++]-108):(k.push((a[o]<<24|a[o+1]<<16|a[o+2]<<8|a[o+3])/65536),o+=4)}y&&(k.length=0)}}var k=[],l=0,m=0,n=0;i(a)}function k(a){this.compiledGlyphs={},this.fontMatrix=a}function l(a,b,c){c=c||[488e-6,0,0,488e-6,0,0],k.call(this,c),this.glyphs=a,this.cmap=b,this.compiledGlyphs=[]}function m(a,b,c,d){c=c||[.001,0,0,.001,0,0],k.call(this,c),this.glyphs=a.glyphs,this.gsubrs=a.gsubrs||[],this.subrs=a.subrs||[],this.cmap=b,this.glyphNameMap=d||zc,this.compiledGlyphs=[],this.gsubrsBias=this.gsubrs.length<1240?107:this.gsubrs.length<33900?1131:32768,this.subrsBias=this.subrs.length<1240?107:this.subrs.length<33900?1131:32768}var n="";return k.prototype={getPathJs:function(a){var b=g(this.cmap,a),c=this.compiledGlyphs[b];return c||(this.compiledGlyphs[b]=c=this.compileGlyph(this.glyphs[b])),c},compileGlyph:function(a){if(!a||0===a.length||14===a[0])return n;var b=[];return b.push({cmd:"save"}),b.push({cmd:"transform",args:this.fontMatrix.slice()}),b.push({cmd:"scale",args:["size","-size"]}),this.compileGlyphImpl(a,b),b.push({cmd:"restore"}),b},compileGlyphImpl:function(){c("Children classes should implement this.")},hasBuiltPath:function(a){var b=g(this.cmap,a);return b in this.compiledGlyphs}},na.inherit(l,k,{compileGlyphImpl:function(a,b){h(a,b,this)}}),na.inherit(m,k,{compileGlyphImpl:function(a,b){j(a,b,this)}}),{create:function(c){for(var g,h,j,k,n,o,p=new Uint8Array(c.data),q=b(p,4),r=0,s=12;q>r;r++,s+=16){var t=i(p.subarray(s,s+4)),u=a(p,s+8),v=a(p,s+12);switch(t){case"cmap":g=d(p,u,u+v);break;case"glyf":h=p.subarray(u,u+v);break;case"loca":j=p.subarray(u,u+v);break;case"head":o=b(p,u+18),n=b(p,u+50);break;case"CFF ":k=e(p,u,u+v)}}if(h){var w=o?[1/o,0,0,1/o,0,0]:c.fontMatrix;return new l(f(h,j,n),g,w)}return new m(k,g,c.fontMatrix,c.glyphNameMap)}}}(),zc={A:65,AE:198,AEacute:508,AEmacron:482,AEsmall:63462,Aacute:193,Aacutesmall:63457,Abreve:258,Abreveacute:7854,Abrevecyrillic:1232,Abrevedotbelow:7862,Abrevegrave:7856,Abrevehookabove:7858,Abrevetilde:7860,Acaron:461,Acircle:9398,Acircumflex:194,Acircumflexacute:7844,Acircumflexdotbelow:7852,Acircumflexgrave:7846,Acircumflexhookabove:7848,Acircumflexsmall:63458,Acircumflextilde:7850,Acute:63177,Acutesmall:63412,Acyrillic:1040,Adblgrave:512,Adieresis:196,Adieresiscyrillic:1234,Adieresismacron:478,Adieresissmall:63460,Adotbelow:7840,Adotmacron:480,Agrave:192,Agravesmall:63456,Ahookabove:7842,Aiecyrillic:1236,Ainvertedbreve:514,Alpha:913,Alphatonos:902,Amacron:256,Amonospace:65313,Aogonek:260,Aring:197,Aringacute:506,Aringbelow:7680,Aringsmall:63461,Asmall:63329,Atilde:195,Atildesmall:63459,Aybarmenian:1329,B:66,Bcircle:9399,Bdotaccent:7682,Bdotbelow:7684,Becyrillic:1041,Benarmenian:1330,Beta:914,Bhook:385,Blinebelow:7686,Bmonospace:65314,Brevesmall:63220,Bsmall:63330,Btopbar:386,C:67,Caarmenian:1342,Cacute:262,Caron:63178,Caronsmall:63221,Ccaron:268,Ccedilla:199,Ccedillaacute:7688,Ccedillasmall:63463,Ccircle:9400,Ccircumflex:264,Cdot:266,Cdotaccent:266,Cedillasmall:63416,Chaarmenian:1353,Cheabkhasiancyrillic:1212,Checyrillic:1063,Chedescenderabkhasiancyrillic:1214,Chedescendercyrillic:1206,Chedieresiscyrillic:1268,Cheharmenian:1347,Chekhakassiancyrillic:1227,Cheverticalstrokecyrillic:1208,Chi:935,Chook:391,Circumflexsmall:63222,Cmonospace:65315,Coarmenian:1361,Csmall:63331,D:68,DZ:497,DZcaron:452,Daarmenian:1332,Dafrican:393,Dcaron:270,Dcedilla:7696,Dcircle:9401,Dcircumflexbelow:7698,Dcroat:272,Ddotaccent:7690,Ddotbelow:7692,Decyrillic:1044,Deicoptic:1006,Delta:8710,Deltagreek:916,Dhook:394,Dieresis:63179,DieresisAcute:63180,DieresisGrave:63181,Dieresissmall:63400,Digammagreek:988,Djecyrillic:1026,Dlinebelow:7694,Dmonospace:65316,Dotaccentsmall:63223,Dslash:272,Dsmall:63332,Dtopbar:395,Dz:498,Dzcaron:453,Dzeabkhasiancyrillic:1248,Dzecyrillic:1029,Dzhecyrillic:1039,E:69,Eacute:201,Eacutesmall:63465,Ebreve:276,Ecaron:282,Ecedillabreve:7708,Echarmenian:1333,Ecircle:9402,Ecircumflex:202,Ecircumflexacute:7870,Ecircumflexbelow:7704,Ecircumflexdotbelow:7878,Ecircumflexgrave:7872,Ecircumflexhookabove:7874,Ecircumflexsmall:63466,Ecircumflextilde:7876,Ecyrillic:1028,Edblgrave:516,Edieresis:203,
-Edieresissmall:63467,Edot:278,Edotaccent:278,Edotbelow:7864,Efcyrillic:1060,Egrave:200,Egravesmall:63464,Eharmenian:1335,Ehookabove:7866,Eightroman:8551,Einvertedbreve:518,Eiotifiedcyrillic:1124,Elcyrillic:1051,Elevenroman:8554,Emacron:274,Emacronacute:7702,Emacrongrave:7700,Emcyrillic:1052,Emonospace:65317,Encyrillic:1053,Endescendercyrillic:1186,Eng:330,Enghecyrillic:1188,Enhookcyrillic:1223,Eogonek:280,Eopen:400,Epsilon:917,Epsilontonos:904,Ercyrillic:1056,Ereversed:398,Ereversedcyrillic:1069,Escyrillic:1057,Esdescendercyrillic:1194,Esh:425,Esmall:63333,Eta:919,Etarmenian:1336,Etatonos:905,Eth:208,Ethsmall:63472,Etilde:7868,Etildebelow:7706,Euro:8364,Ezh:439,Ezhcaron:494,Ezhreversed:440,F:70,Fcircle:9403,Fdotaccent:7710,Feharmenian:1366,Feicoptic:996,Fhook:401,Fitacyrillic:1138,Fiveroman:8548,Fmonospace:65318,Fourroman:8547,Fsmall:63334,G:71,GBsquare:13191,Gacute:500,Gamma:915,Gammaafrican:404,Gangiacoptic:1002,Gbreve:286,Gcaron:486,Gcedilla:290,Gcircle:9404,Gcircumflex:284,Gcommaaccent:290,Gdot:288,Gdotaccent:288,Gecyrillic:1043,Ghadarmenian:1346,Ghemiddlehookcyrillic:1172,Ghestrokecyrillic:1170,Gheupturncyrillic:1168,Ghook:403,Gimarmenian:1331,Gjecyrillic:1027,Gmacron:7712,Gmonospace:65319,Grave:63182,Gravesmall:63328,Gsmall:63335,Gsmallhook:667,Gstroke:484,H:72,H18533:9679,H18543:9642,H18551:9643,H22073:9633,HPsquare:13259,Haabkhasiancyrillic:1192,Hadescendercyrillic:1202,Hardsigncyrillic:1066,Hbar:294,Hbrevebelow:7722,Hcedilla:7720,Hcircle:9405,Hcircumflex:292,Hdieresis:7718,Hdotaccent:7714,Hdotbelow:7716,Hmonospace:65320,Hoarmenian:1344,Horicoptic:1e3,Hsmall:63336,Hungarumlaut:63183,Hungarumlautsmall:63224,Hzsquare:13200,I:73,IAcyrillic:1071,IJ:306,IUcyrillic:1070,Iacute:205,Iacutesmall:63469,Ibreve:300,Icaron:463,Icircle:9406,Icircumflex:206,Icircumflexsmall:63470,Icyrillic:1030,Idblgrave:520,Idieresis:207,Idieresisacute:7726,Idieresiscyrillic:1252,Idieresissmall:63471,Idot:304,Idotaccent:304,Idotbelow:7882,Iebrevecyrillic:1238,Iecyrillic:1045,Ifraktur:8465,Igrave:204,Igravesmall:63468,Ihookabove:7880,Iicyrillic:1048,Iinvertedbreve:522,Iishortcyrillic:1049,Imacron:298,Imacroncyrillic:1250,Imonospace:65321,Iniarmenian:1339,Iocyrillic:1025,Iogonek:302,Iota:921,Iotaafrican:406,Iotadieresis:938,Iotatonos:906,Ismall:63337,Istroke:407,Itilde:296,Itildebelow:7724,Izhitsacyrillic:1140,Izhitsadblgravecyrillic:1142,J:74,Jaarmenian:1345,Jcircle:9407,Jcircumflex:308,Jecyrillic:1032,Jheharmenian:1355,Jmonospace:65322,Jsmall:63338,K:75,KBsquare:13189,KKsquare:13261,Kabashkircyrillic:1184,Kacute:7728,Kacyrillic:1050,Kadescendercyrillic:1178,Kahookcyrillic:1219,Kappa:922,Kastrokecyrillic:1182,Kaverticalstrokecyrillic:1180,Kcaron:488,Kcedilla:310,Kcircle:9408,Kcommaaccent:310,Kdotbelow:7730,Keharmenian:1364,Kenarmenian:1343,Khacyrillic:1061,Kheicoptic:998,Khook:408,Kjecyrillic:1036,Klinebelow:7732,Kmonospace:65323,Koppacyrillic:1152,Koppagreek:990,Ksicyrillic:1134,Ksmall:63339,L:76,LJ:455,LL:63167,Lacute:313,Lambda:923,Lcaron:317,Lcedilla:315,Lcircle:9409,Lcircumflexbelow:7740,Lcommaaccent:315,Ldot:319,Ldotaccent:319,Ldotbelow:7734,Ldotbelowmacron:7736,Liwnarmenian:1340,Lj:456,Ljecyrillic:1033,Llinebelow:7738,Lmonospace:65324,Lslash:321,Lslashsmall:63225,Lsmall:63340,M:77,MBsquare:13190,Macron:63184,Macronsmall:63407,Macute:7742,Mcircle:9410,Mdotaccent:7744,Mdotbelow:7746,Menarmenian:1348,Mmonospace:65325,Msmall:63341,Mturned:412,Mu:924,N:78,NJ:458,Nacute:323,Ncaron:327,Ncedilla:325,Ncircle:9411,Ncircumflexbelow:7754,Ncommaaccent:325,Ndotaccent:7748,Ndotbelow:7750,Nhookleft:413,Nineroman:8552,Nj:459,Njecyrillic:1034,Nlinebelow:7752,Nmonospace:65326,Nowarmenian:1350,Nsmall:63342,Ntilde:209,Ntildesmall:63473,Nu:925,O:79,OE:338,OEsmall:63226,Oacute:211,Oacutesmall:63475,Obarredcyrillic:1256,Obarreddieresiscyrillic:1258,Obreve:334,Ocaron:465,Ocenteredtilde:415,Ocircle:9412,Ocircumflex:212,Ocircumflexacute:7888,Ocircumflexdotbelow:7896,Ocircumflexgrave:7890,Ocircumflexhookabove:7892,Ocircumflexsmall:63476,Ocircumflextilde:7894,Ocyrillic:1054,Odblacute:336,Odblgrave:524,Odieresis:214,Odieresiscyrillic:1254,Odieresissmall:63478,Odotbelow:7884,Ogoneksmall:63227,Ograve:210,Ogravesmall:63474,Oharmenian:1365,Ohm:8486,Ohookabove:7886,Ohorn:416,Ohornacute:7898,Ohorndotbelow:7906,Ohorngrave:7900,Ohornhookabove:7902,Ohorntilde:7904,Ohungarumlaut:336,Oi:418,Oinvertedbreve:526,Omacron:332,Omacronacute:7762,Omacrongrave:7760,Omega:8486,Omegacyrillic:1120,Omegagreek:937,Omegaroundcyrillic:1146,Omegatitlocyrillic:1148,Omegatonos:911,Omicron:927,Omicrontonos:908,Omonospace:65327,Oneroman:8544,Oogonek:490,Oogonekmacron:492,Oopen:390,Oslash:216,Oslashacute:510,Oslashsmall:63480,Osmall:63343,Ostrokeacute:510,Otcyrillic:1150,Otilde:213,Otildeacute:7756,Otildedieresis:7758,Otildesmall:63477,P:80,Pacute:7764,Pcircle:9413,Pdotaccent:7766,Pecyrillic:1055,Peharmenian:1354,Pemiddlehookcyrillic:1190,Phi:934,Phook:420,Pi:928,Piwrarmenian:1363,Pmonospace:65328,Psi:936,Psicyrillic:1136,Psmall:63344,Q:81,Qcircle:9414,Qmonospace:65329,Qsmall:63345,R:82,Raarmenian:1356,Racute:340,Rcaron:344,Rcedilla:342,Rcircle:9415,Rcommaaccent:342,Rdblgrave:528,Rdotaccent:7768,Rdotbelow:7770,Rdotbelowmacron:7772,Reharmenian:1360,Rfraktur:8476,Rho:929,Ringsmall:63228,Rinvertedbreve:530,Rlinebelow:7774,Rmonospace:65330,Rsmall:63346,Rsmallinverted:641,Rsmallinvertedsuperior:694,S:83,SF010000:9484,SF020000:9492,SF030000:9488,SF040000:9496,SF050000:9532,SF060000:9516,SF070000:9524,SF080000:9500,SF090000:9508,SF100000:9472,SF110000:9474,SF190000:9569,SF200000:9570,SF210000:9558,SF220000:9557,SF230000:9571,SF240000:9553,SF250000:9559,SF260000:9565,SF270000:9564,SF280000:9563,SF360000:9566,SF370000:9567,SF380000:9562,SF390000:9556,SF400000:9577,SF410000:9574,SF420000:9568,SF430000:9552,SF440000:9580,SF450000:9575,SF460000:9576,SF470000:9572,SF480000:9573,SF490000:9561,SF500000:9560,SF510000:9554,SF520000:9555,SF530000:9579,SF540000:9578,Sacute:346,Sacutedotaccent:7780,Sampigreek:992,Scaron:352,Scarondotaccent:7782,Scaronsmall:63229,Scedilla:350,Schwa:399,Schwacyrillic:1240,Schwadieresiscyrillic:1242,Scircle:9416,Scircumflex:348,Scommaaccent:536,Sdotaccent:7776,Sdotbelow:7778,Sdotbelowdotaccent:7784,Seharmenian:1357,Sevenroman:8550,Shaarmenian:1351,Shacyrillic:1064,Shchacyrillic:1065,Sheicoptic:994,Shhacyrillic:1210,Shimacoptic:1004,Sigma:931,Sixroman:8549,Smonospace:65331,Softsigncyrillic:1068,Ssmall:63347,Stigmagreek:986,T:84,Tau:932,Tbar:358,Tcaron:356,Tcedilla:354,Tcircle:9417,Tcircumflexbelow:7792,Tcommaaccent:354,Tdotaccent:7786,Tdotbelow:7788,Tecyrillic:1058,Tedescendercyrillic:1196,Tenroman:8553,Tetsecyrillic:1204,Theta:920,Thook:428,Thorn:222,Thornsmall:63486,Threeroman:8546,Tildesmall:63230,Tiwnarmenian:1359,Tlinebelow:7790,Tmonospace:65332,Toarmenian:1337,Tonefive:444,Tonesix:388,Tonetwo:423,Tretroflexhook:430,Tsecyrillic:1062,Tshecyrillic:1035,Tsmall:63348,Twelveroman:8555,Tworoman:8545,U:85,Uacute:218,Uacutesmall:63482,Ubreve:364,Ucaron:467,Ucircle:9418,Ucircumflex:219,Ucircumflexbelow:7798,Ucircumflexsmall:63483,Ucyrillic:1059,Udblacute:368,Udblgrave:532,Udieresis:220,Udieresisacute:471,Udieresisbelow:7794,Udieresiscaron:473,Udieresiscyrillic:1264,Udieresisgrave:475,Udieresismacron:469,Udieresissmall:63484,Udotbelow:7908,Ugrave:217,Ugravesmall:63481,Uhookabove:7910,Uhorn:431,Uhornacute:7912,Uhorndotbelow:7920,Uhorngrave:7914,Uhornhookabove:7916,Uhorntilde:7918,Uhungarumlaut:368,Uhungarumlautcyrillic:1266,Uinvertedbreve:534,Ukcyrillic:1144,Umacron:362,Umacroncyrillic:1262,Umacrondieresis:7802,Umonospace:65333,Uogonek:370,Upsilon:933,Upsilon1:978,Upsilonacutehooksymbolgreek:979,Upsilonafrican:433,Upsilondieresis:939,Upsilondieresishooksymbolgreek:980,Upsilonhooksymbol:978,Upsilontonos:910,Uring:366,Ushortcyrillic:1038,Usmall:63349,Ustraightcyrillic:1198,Ustraightstrokecyrillic:1200,Utilde:360,Utildeacute:7800,Utildebelow:7796,V:86,Vcircle:9419,Vdotbelow:7806,Vecyrillic:1042,Vewarmenian:1358,Vhook:434,Vmonospace:65334,Voarmenian:1352,Vsmall:63350,Vtilde:7804,W:87,Wacute:7810,Wcircle:9420,Wcircumflex:372,Wdieresis:7812,Wdotaccent:7814,Wdotbelow:7816,Wgrave:7808,Wmonospace:65335,Wsmall:63351,X:88,Xcircle:9421,Xdieresis:7820,Xdotaccent:7818,Xeharmenian:1341,Xi:926,Xmonospace:65336,Xsmall:63352,Y:89,Yacute:221,Yacutesmall:63485,Yatcyrillic:1122,Ycircle:9422,Ycircumflex:374,Ydieresis:376,Ydieresissmall:63487,Ydotaccent:7822,Ydotbelow:7924,Yericyrillic:1067,Yerudieresiscyrillic:1272,Ygrave:7922,Yhook:435,Yhookabove:7926,Yiarmenian:1349,Yicyrillic:1031,Yiwnarmenian:1362,Ymonospace:65337,Ysmall:63353,Ytilde:7928,Yusbigcyrillic:1130,Yusbigiotifiedcyrillic:1132,Yuslittlecyrillic:1126,Yuslittleiotifiedcyrillic:1128,Z:90,Zaarmenian:1334,Zacute:377,Zcaron:381,Zcaronsmall:63231,Zcircle:9423,Zcircumflex:7824,Zdot:379,Zdotaccent:379,Zdotbelow:7826,Zecyrillic:1047,Zedescendercyrillic:1176,Zedieresiscyrillic:1246,Zeta:918,Zhearmenian:1338,Zhebrevecyrillic:1217,Zhecyrillic:1046,Zhedescendercyrillic:1174,Zhedieresiscyrillic:1244,Zlinebelow:7828,Zmonospace:65338,Zsmall:63354,Zstroke:437,a:97,aabengali:2438,aacute:225,aadeva:2310,aagujarati:2694,aagurmukhi:2566,aamatragurmukhi:2622,aarusquare:13059,aavowelsignbengali:2494,aavowelsigndeva:2366,aavowelsigngujarati:2750,abbreviationmarkarmenian:1375,abbreviationsigndeva:2416,abengali:2437,abopomofo:12570,abreve:259,abreveacute:7855,abrevecyrillic:1233,abrevedotbelow:7863,abrevegrave:7857,abrevehookabove:7859,abrevetilde:7861,acaron:462,acircle:9424,acircumflex:226,acircumflexacute:7845,acircumflexdotbelow:7853,acircumflexgrave:7847,acircumflexhookabove:7849,acircumflextilde:7851,acute:180,acutebelowcmb:791,acutecmb:769,acutecomb:769,acutedeva:2388,acutelowmod:719,acutetonecmb:833,acyrillic:1072,adblgrave:513,addakgurmukhi:2673,adeva:2309,adieresis:228,adieresiscyrillic:1235,adieresismacron:479,adotbelow:7841,adotmacron:481,ae:230,aeacute:509,aekorean:12624,aemacron:483,afii00208:8213,afii08941:8356,afii10017:1040,afii10018:1041,afii10019:1042,afii10020:1043,afii10021:1044,afii10022:1045,afii10023:1025,afii10024:1046,afii10025:1047,afii10026:1048,afii10027:1049,afii10028:1050,afii10029:1051,afii10030:1052,afii10031:1053,afii10032:1054,afii10033:1055,afii10034:1056,afii10035:1057,afii10036:1058,afii10037:1059,afii10038:1060,afii10039:1061,afii10040:1062,afii10041:1063,afii10042:1064,afii10043:1065,afii10044:1066,afii10045:1067,afii10046:1068,afii10047:1069,afii10048:1070,afii10049:1071,afii10050:1168,afii10051:1026,afii10052:1027,afii10053:1028,afii10054:1029,afii10055:1030,afii10056:1031,afii10057:1032,afii10058:1033,afii10059:1034,afii10060:1035,afii10061:1036,afii10062:1038,afii10063:63172,afii10064:63173,afii10065:1072,afii10066:1073,afii10067:1074,afii10068:1075,afii10069:1076,afii10070:1077,afii10071:1105,afii10072:1078,afii10073:1079,afii10074:1080,afii10075:1081,afii10076:1082,afii10077:1083,afii10078:1084,afii10079:1085,afii10080:1086,afii10081:1087,afii10082:1088,afii10083:1089,afii10084:1090,afii10085:1091,afii10086:1092,afii10087:1093,afii10088:1094,afii10089:1095,afii10090:1096,afii10091:1097,afii10092:1098,afii10093:1099,afii10094:1100,afii10095:1101,afii10096:1102,afii10097:1103,afii10098:1169,afii10099:1106,afii10100:1107,afii10101:1108,afii10102:1109,afii10103:1110,afii10104:1111,afii10105:1112,afii10106:1113,afii10107:1114,afii10108:1115,afii10109:1116,afii10110:1118,afii10145:1039,afii10146:1122,afii10147:1138,afii10148:1140,afii10192:63174,afii10193:1119,afii10194:1123,afii10195:1139,afii10196:1141,afii10831:63175,afii10832:63176,afii10846:1241,afii299:8206,afii300:8207,afii301:8205,afii57381:1642,afii57388:1548,afii57392:1632,afii57393:1633,afii57394:1634,afii57395:1635,afii57396:1636,afii57397:1637,afii57398:1638,afii57399:1639,afii57400:1640,afii57401:1641,afii57403:1563,afii57407:1567,afii57409:1569,afii57410:1570,afii57411:1571,afii57412:1572,afii57413:1573,afii57414:1574,afii57415:1575,afii57416:1576,afii57417:1577,afii57418:1578,afii57419:1579,afii57420:1580,afii57421:1581,afii57422:1582,afii57423:1583,afii57424:1584,afii57425:1585,afii57426:1586,afii57427:1587,afii57428:1588,afii57429:1589,afii57430:1590,afii57431:1591,afii57432:1592,afii57433:1593,afii57434:1594,afii57440:1600,afii57441:1601,afii57442:1602,afii57443:1603,afii57444:1604,afii57445:1605,afii57446:1606,afii57448:1608,afii57449:1609,afii57450:1610,afii57451:1611,afii57452:1612,afii57453:1613,afii57454:1614,afii57455:1615,afii57456:1616,afii57457:1617,afii57458:1618,afii57470:1607,afii57505:1700,afii57506:1662,afii57507:1670,afii57508:1688,afii57509:1711,afii57511:1657,afii57512:1672,afii57513:1681,afii57514:1722,afii57519:1746,afii57534:1749,afii57636:8362,afii57645:1470,afii57658:1475,afii57664:1488,afii57665:1489,afii57666:1490,afii57667:1491,afii57668:1492,afii57669:1493,afii57670:1494,afii57671:1495,afii57672:1496,afii57673:1497,afii57674:1498,afii57675:1499,afii57676:1500,afii57677:1501,afii57678:1502,afii57679:1503,afii57680:1504,afii57681:1505,afii57682:1506,afii57683:1507,afii57684:1508,afii57685:1509,afii57686:1510,afii57687:1511,afii57688:1512,afii57689:1513,afii57690:1514,afii57694:64298,afii57695:64299,afii57700:64331,afii57705:64287,afii57716:1520,afii57717:1521,afii57718:1522,afii57723:64309,afii57793:1460,afii57794:1461,afii57795:1462,afii57796:1467,afii57797:1464,afii57798:1463,afii57799:1456,afii57800:1458,afii57801:1457,afii57802:1459,afii57803:1474,afii57804:1473,afii57806:1465,afii57807:1468,afii57839:1469,afii57841:1471,afii57842:1472,afii57929:700,afii61248:8453,afii61289:8467,afii61352:8470,afii61573:8236,afii61574:8237,afii61575:8238,afii61664:8204,afii63167:1645,afii64937:701,agrave:224,agujarati:2693,agurmukhi:2565,ahiragana:12354,ahookabove:7843,aibengali:2448,aibopomofo:12574,aideva:2320,aiecyrillic:1237,aigujarati:2704,aigurmukhi:2576,aimatragurmukhi:2632,ainarabic:1593,ainfinalarabic:65226,aininitialarabic:65227,ainmedialarabic:65228,ainvertedbreve:515,aivowelsignbengali:2504,aivowelsigndeva:2376,aivowelsigngujarati:2760,akatakana:12450,akatakanahalfwidth:65393,akorean:12623,alef:1488,alefarabic:1575,alefdageshhebrew:64304,aleffinalarabic:65166,alefhamzaabovearabic:1571,alefhamzaabovefinalarabic:65156,alefhamzabelowarabic:1573,alefhamzabelowfinalarabic:65160,alefhebrew:1488,aleflamedhebrew:64335,alefmaddaabovearabic:1570,alefmaddaabovefinalarabic:65154,alefmaksuraarabic:1609,alefmaksurafinalarabic:65264,alefmaksurainitialarabic:65267,alefmaksuramedialarabic:65268,alefpatahhebrew:64302,alefqamatshebrew:64303,aleph:8501,allequal:8780,alpha:945,alphatonos:940,amacron:257,amonospace:65345,ampersand:38,ampersandmonospace:65286,ampersandsmall:63270,amsquare:13250,anbopomofo:12578,angbopomofo:12580,angbracketleft:12296,angbracketright:12297,angkhankhuthai:3674,angle:8736,anglebracketleft:12296,anglebracketleftvertical:65087,anglebracketright:12297,anglebracketrightvertical:65088,angleleft:9001,angleright:9002,angstrom:8491,anoteleia:903,anudattadeva:2386,anusvarabengali:2434,anusvaradeva:2306,anusvaragujarati:2690,aogonek:261,apaatosquare:13056,aparen:9372,apostrophearmenian:1370,apostrophemod:700,apple:63743,approaches:8784,approxequal:8776,approxequalorimage:8786,approximatelyequal:8773,araeaekorean:12686,araeakorean:12685,arc:8978,arighthalfring:7834,aring:229,aringacute:507,aringbelow:7681,arrowboth:8596,arrowdashdown:8675,arrowdashleft:8672,arrowdashright:8674,arrowdashup:8673,arrowdblboth:8660,arrowdbldown:8659,arrowdblleft:8656,arrowdblright:8658,arrowdblup:8657,arrowdown:8595,arrowdownleft:8601,arrowdownright:8600,arrowdownwhite:8681,arrowheaddownmod:709,arrowheadleftmod:706,arrowheadrightmod:707,arrowheadupmod:708,arrowhorizex:63719,arrowleft:8592,arrowleftdbl:8656,arrowleftdblstroke:8653,arrowleftoverright:8646,arrowleftwhite:8678,arrowright:8594,arrowrightdblstroke:8655,arrowrightheavy:10142,arrowrightoverleft:8644,arrowrightwhite:8680,arrowtableft:8676,arrowtabright:8677,arrowup:8593,arrowupdn:8597,arrowupdnbse:8616,arrowupdownbase:8616,arrowupleft:8598,arrowupleftofdown:8645,arrowupright:8599,arrowupwhite:8679,arrowvertex:63718,asciicircum:94,asciicircummonospace:65342,asciitilde:126,asciitildemonospace:65374,ascript:593,ascriptturned:594,asmallhiragana:12353,asmallkatakana:12449,asmallkatakanahalfwidth:65383,asterisk:42,asteriskaltonearabic:1645,asteriskarabic:1645,asteriskmath:8727,asteriskmonospace:65290,asterisksmall:65121,asterism:8258,asuperior:63209,asymptoticallyequal:8771,at:64,atilde:227,atmonospace:65312,atsmall:65131,aturned:592,aubengali:2452,aubopomofo:12576,audeva:2324,augujarati:2708,augurmukhi:2580,aulengthmarkbengali:2519,aumatragurmukhi:2636,auvowelsignbengali:2508,auvowelsigndeva:2380,auvowelsigngujarati:2764,avagrahadeva:2365,aybarmenian:1377,ayin:1506,ayinaltonehebrew:64288,ayinhebrew:1506,b:98,babengali:2476,backslash:92,backslashmonospace:65340,badeva:2348,bagujarati:2732,bagurmukhi:2604,bahiragana:12400,bahtthai:3647,bakatakana:12496,bar:124,barmonospace:65372,bbopomofo:12549,bcircle:9425,bdotaccent:7683,bdotbelow:7685,beamedsixteenthnotes:9836,because:8757,becyrillic:1073,beharabic:1576,behfinalarabic:65168,behinitialarabic:65169,behiragana:12409,behmedialarabic:65170,behmeeminitialarabic:64671,behmeemisolatedarabic:64520,behnoonfinalarabic:64621,bekatakana:12505,benarmenian:1378,bet:1489,beta:946,betasymbolgreek:976,betdagesh:64305,betdageshhebrew:64305,bethebrew:1489,betrafehebrew:64332,bhabengali:2477,bhadeva:2349,bhagujarati:2733,bhagurmukhi:2605,bhook:595,bihiragana:12403,bikatakana:12499,bilabialclick:664,bindigurmukhi:2562,birusquare:13105,blackcircle:9679,blackdiamond:9670,blackdownpointingtriangle:9660,blackleftpointingpointer:9668,blackleftpointingtriangle:9664,blacklenticularbracketleft:12304,blacklenticularbracketleftvertical:65083,blacklenticularbracketright:12305,blacklenticularbracketrightvertical:65084,blacklowerlefttriangle:9699,blacklowerrighttriangle:9698,blackrectangle:9644,blackrightpointingpointer:9658,blackrightpointingtriangle:9654,blacksmallsquare:9642,blacksmilingface:9787,blacksquare:9632,blackstar:9733,blackupperlefttriangle:9700,blackupperrighttriangle:9701,blackuppointingsmalltriangle:9652,blackuppointingtriangle:9650,blank:9251,blinebelow:7687,block:9608,bmonospace:65346,bobaimaithai:3610,bohiragana:12412,bokatakana:12508,bparen:9373,bqsquare:13251,braceex:63732,braceleft:123,braceleftbt:63731,braceleftmid:63730,braceleftmonospace:65371,braceleftsmall:65115,bracelefttp:63729,braceleftvertical:65079,braceright:125,bracerightbt:63742,bracerightmid:63741,bracerightmonospace:65373,bracerightsmall:65116,bracerighttp:63740,bracerightvertical:65080,bracketleft:91,bracketleftbt:63728,bracketleftex:63727,bracketleftmonospace:65339,bracketlefttp:63726,bracketright:93,bracketrightbt:63739,bracketrightex:63738,bracketrightmonospace:65341,bracketrighttp:63737,breve:728,brevebelowcmb:814,brevecmb:774,breveinvertedbelowcmb:815,breveinvertedcmb:785,breveinverteddoublecmb:865,bridgebelowcmb:810,bridgeinvertedbelowcmb:826,brokenbar:166,bstroke:384,bsuperior:63210,btopbar:387,buhiragana:12406,bukatakana:12502,bullet:8226,bulletinverse:9688,bulletoperator:8729,bullseye:9678,c:99,caarmenian:1390,cabengali:2458,cacute:263,cadeva:2330,cagujarati:2714,cagurmukhi:2586,calsquare:13192,candrabindubengali:2433,candrabinducmb:784,candrabindudeva:2305,candrabindugujarati:2689,capslock:8682,careof:8453,caron:711,caronbelowcmb:812,caroncmb:780,carriagereturn:8629,cbopomofo:12568,ccaron:269,ccedilla:231,ccedillaacute:7689,ccircle:9426,ccircumflex:265,ccurl:597,cdot:267,cdotaccent:267,cdsquare:13253,cedilla:184,cedillacmb:807,cent:162,centigrade:8451,centinferior:63199,centmonospace:65504,centoldstyle:63394,centsuperior:63200,chaarmenian:1401,chabengali:2459,chadeva:2331,chagujarati:2715,chagurmukhi:2587,chbopomofo:12564,cheabkhasiancyrillic:1213,checkmark:10003,checyrillic:1095,chedescenderabkhasiancyrillic:1215,chedescendercyrillic:1207,chedieresiscyrillic:1269,cheharmenian:1395,chekhakassiancyrillic:1228,cheverticalstrokecyrillic:1209,chi:967,chieuchacirclekorean:12919,chieuchaparenkorean:12823,chieuchcirclekorean:12905,chieuchkorean:12618,chieuchparenkorean:12809,chochangthai:3594,chochanthai:3592,chochingthai:3593,chochoethai:3596,chook:392,cieucacirclekorean:12918,cieucaparenkorean:12822,cieuccirclekorean:12904,cieuckorean:12616,cieucparenkorean:12808,cieucuparenkorean:12828,circle:9675,circlecopyrt:169,circlemultiply:8855,circleot:8857,circleplus:8853,circlepostalmark:12342,circlewithlefthalfblack:9680,circlewithrighthalfblack:9681,circumflex:710,circumflexbelowcmb:813,circumflexcmb:770,clear:8999,clickalveolar:450,clickdental:448,clicklateral:449,clickretroflex:451,club:9827,clubsuitblack:9827,clubsuitwhite:9831,cmcubedsquare:13220,cmonospace:65347,cmsquaredsquare:13216,coarmenian:1409,colon:58,colonmonetary:8353,colonmonospace:65306,colonsign:8353,colonsmall:65109,colontriangularhalfmod:721,colontriangularmod:720,comma:44,commaabovecmb:787,commaaboverightcmb:789,commaaccent:63171,commaarabic:1548,commaarmenian:1373,commainferior:63201,commamonospace:65292,commareversedabovecmb:788,commareversedmod:701,commasmall:65104,commasuperior:63202,commaturnedabovecmb:786,commaturnedmod:699,compass:9788,congruent:8773,contourintegral:8750,control:8963,controlACK:6,controlBEL:7,controlBS:8,controlCAN:24,controlCR:13,controlDC1:17,controlDC2:18,controlDC3:19,controlDC4:20,controlDEL:127,controlDLE:16,controlEM:25,controlENQ:5,controlEOT:4,controlESC:27,controlETB:23,controlETX:3,controlFF:12,controlFS:28,controlGS:29,controlHT:9,controlLF:10,controlNAK:21,controlRS:30,controlSI:15,controlSO:14,controlSOT:2,controlSTX:1,controlSUB:26,controlSYN:22,controlUS:31,controlVT:11,copyright:169,copyrightsans:63721,copyrightserif:63193,cornerbracketleft:12300,cornerbracketlefthalfwidth:65378,cornerbracketleftvertical:65089,cornerbracketright:12301,cornerbracketrighthalfwidth:65379,cornerbracketrightvertical:65090,corporationsquare:13183,cosquare:13255,coverkgsquare:13254,cparen:9374,cruzeiro:8354,cstretched:663,curlyand:8911,curlyor:8910,currency:164,cyrBreve:63185,cyrFlex:63186,cyrbreve:63188,cyrflex:63189,d:100,daarmenian:1380,dabengali:2470,dadarabic:1590,dadeva:2342,dadfinalarabic:65214,dadinitialarabic:65215,dadmedialarabic:65216,dagesh:1468,dageshhebrew:1468,dagger:8224,daggerdbl:8225,dagujarati:2726,dagurmukhi:2598,dahiragana:12384,dakatakana:12480,dalarabic:1583,dalet:1491,daletdagesh:64307,daletdageshhebrew:64307,dalethebrew:1491,dalfinalarabic:65194,dammaarabic:1615,dammalowarabic:1615,dammatanaltonearabic:1612,dammatanarabic:1612,danda:2404,dargahebrew:1447,dargalefthebrew:1447,dasiapneumatacyrilliccmb:1157,dblGrave:63187,dblanglebracketleft:12298,dblanglebracketleftvertical:65085,dblanglebracketright:12299,dblanglebracketrightvertical:65086,dblarchinvertedbelowcmb:811,dblarrowleft:8660,dblarrowright:8658,dbldanda:2405,dblgrave:63190,dblgravecmb:783,dblintegral:8748,dbllowline:8215,dbllowlinecmb:819,dbloverlinecmb:831,dblprimemod:698,dblverticalbar:8214,dblverticallineabovecmb:782,dbopomofo:12553,dbsquare:13256,dcaron:271,dcedilla:7697,dcircle:9427,dcircumflexbelow:7699,dcroat:273,ddabengali:2465,ddadeva:2337,ddagujarati:2721,ddagurmukhi:2593,ddalarabic:1672,ddalfinalarabic:64393,dddhadeva:2396,ddhabengali:2466,ddhadeva:2338,ddhagujarati:2722,ddhagurmukhi:2594,ddotaccent:7691,ddotbelow:7693,decimalseparatorarabic:1643,decimalseparatorpersian:1643,decyrillic:1076,degree:176,dehihebrew:1453,dehiragana:12391,deicoptic:1007,dekatakana:12487,deleteleft:9003,deleteright:8998,delta:948,deltaturned:397,denominatorminusonenumeratorbengali:2552,dezh:676,dhabengali:2471,dhadeva:2343,dhagujarati:2727,dhagurmukhi:2599,dhook:599,dialytikatonos:901,dialytikatonoscmb:836,diamond:9830,diamondsuitwhite:9826,dieresis:168,dieresisacute:63191,dieresisbelowcmb:804,dieresiscmb:776,dieresisgrave:63192,dieresistonos:901,dihiragana:12386,dikatakana:12482,dittomark:12291,divide:247,divides:8739,divisionslash:8725,djecyrillic:1106,dkshade:9619,dlinebelow:7695,dlsquare:13207,dmacron:273,dmonospace:65348,dnblock:9604,dochadathai:3598,dodekthai:3604,dohiragana:12393,dokatakana:12489,dollar:36,dollarinferior:63203,dollarmonospace:65284,dollaroldstyle:63268,dollarsmall:65129,dollarsuperior:63204,dong:8363,dorusquare:13094,dotaccent:729,dotaccentcmb:775,dotbelowcmb:803,dotbelowcomb:803,dotkatakana:12539,dotlessi:305,dotlessj:63166,dotlessjstrokehook:644,dotmath:8901,dottedcircle:9676,doubleyodpatah:64287,doubleyodpatahhebrew:64287,downtackbelowcmb:798,downtackmod:725,dparen:9375,dsuperior:63211,dtail:598,dtopbar:396,duhiragana:12389,dukatakana:12485,dz:499,dzaltone:675,dzcaron:454,dzcurl:677,dzeabkhasiancyrillic:1249,dzecyrillic:1109,dzhecyrillic:1119,e:101,eacute:233,earth:9793,ebengali:2447,ebopomofo:12572,ebreve:277,ecandradeva:2317,ecandragujarati:2701,ecandravowelsigndeva:2373,ecandravowelsigngujarati:2757,ecaron:283,ecedillabreve:7709,echarmenian:1381,echyiwnarmenian:1415,ecircle:9428,ecircumflex:234,ecircumflexacute:7871,ecircumflexbelow:7705,ecircumflexdotbelow:7879,ecircumflexgrave:7873,ecircumflexhookabove:7875,ecircumflextilde:7877,ecyrillic:1108,edblgrave:517,edeva:2319,edieresis:235,edot:279,edotaccent:279,edotbelow:7865,eegurmukhi:2575,eematragurmukhi:2631,efcyrillic:1092,egrave:232,egujarati:2703,eharmenian:1383,ehbopomofo:12573,ehiragana:12360,ehookabove:7867,eibopomofo:12575,eight:56,eightarabic:1640,eightbengali:2542,eightcircle:9319,eightcircleinversesansserif:10129,eightdeva:2414,eighteencircle:9329,eighteenparen:9349,eighteenperiod:9369,eightgujarati:2798,eightgurmukhi:2670,eighthackarabic:1640,eighthangzhou:12328,eighthnotebeamed:9835,eightideographicparen:12839,eightinferior:8328,eightmonospace:65304,eightoldstyle:63288,eightparen:9339,eightperiod:9359,eightpersian:1784,eightroman:8567,eightsuperior:8312,eightthai:3672,einvertedbreve:519,eiotifiedcyrillic:1125,ekatakana:12456,ekatakanahalfwidth:65396,ekonkargurmukhi:2676,ekorean:12628,elcyrillic:1083,element:8712,elevencircle:9322,elevenparen:9342,elevenperiod:9362,elevenroman:8570,ellipsis:8230,ellipsisvertical:8942,emacron:275,emacronacute:7703,emacrongrave:7701,emcyrillic:1084,emdash:8212,emdashvertical:65073,emonospace:65349,emphasismarkarmenian:1371,emptyset:8709,enbopomofo:12579,encyrillic:1085,endash:8211,endashvertical:65074,endescendercyrillic:1187,eng:331,engbopomofo:12581,enghecyrillic:1189,enhookcyrillic:1224,enspace:8194,eogonek:281,eokorean:12627,eopen:603,eopenclosed:666,eopenreversed:604,eopenreversedclosed:606,eopenreversedhook:605,eparen:9376,epsilon:949,epsilontonos:941,equal:61,equalmonospace:65309,equalsmall:65126,equalsuperior:8316,equivalence:8801,erbopomofo:12582,ercyrillic:1088,ereversed:600,ereversedcyrillic:1101,escyrillic:1089,esdescendercyrillic:1195,esh:643,eshcurl:646,eshortdeva:2318,eshortvowelsigndeva:2374,eshreversedloop:426,eshsquatreversed:645,esmallhiragana:12359,esmallkatakana:12455,esmallkatakanahalfwidth:65386,estimated:8494,esuperior:63212,eta:951,etarmenian:1384,etatonos:942,eth:240,etilde:7869,etildebelow:7707,etnahtafoukhhebrew:1425,etnahtafoukhlefthebrew:1425,etnahtahebrew:1425,etnahtalefthebrew:1425,eturned:477,eukorean:12641,euro:8364,evowelsignbengali:2503,evowelsigndeva:2375,evowelsigngujarati:2759,exclam:33,exclamarmenian:1372,exclamdbl:8252,exclamdown:161,exclamdownsmall:63393,exclammonospace:65281,exclamsmall:63265,existential:8707,ezh:658,ezhcaron:495,ezhcurl:659,ezhreversed:441,ezhtail:442,f:102,fadeva:2398,fagurmukhi:2654,fahrenheit:8457,fathaarabic:1614,fathalowarabic:1614,fathatanarabic:1611,fbopomofo:12552,fcircle:9429,fdotaccent:7711,feharabic:1601,feharmenian:1414,fehfinalarabic:65234,fehinitialarabic:65235,fehmedialarabic:65236,feicoptic:997,female:9792,ff:64256,ffi:64259,ffl:64260,fi:64257,fifteencircle:9326,fifteenparen:9346,fifteenperiod:9366,figuredash:8210,filledbox:9632,filledrect:9644,finalkaf:1498,finalkafdagesh:64314,finalkafdageshhebrew:64314,finalkafhebrew:1498,finalmem:1501,finalmemhebrew:1501,finalnun:1503,finalnunhebrew:1503,finalpe:1507,finalpehebrew:1507,finaltsadi:1509,finaltsadihebrew:1509,firsttonechinese:713,fisheye:9673,fitacyrillic:1139,five:53,fivearabic:1637,fivebengali:2539,fivecircle:9316,fivecircleinversesansserif:10126,fivedeva:2411,fiveeighths:8541,fivegujarati:2795,fivegurmukhi:2667,fivehackarabic:1637,fivehangzhou:12325,fiveideographicparen:12836,fiveinferior:8325,fivemonospace:65301,fiveoldstyle:63285,fiveparen:9336,fiveperiod:9356,fivepersian:1781,fiveroman:8564,fivesuperior:8309,fivethai:3669,fl:64258,florin:402,fmonospace:65350,fmsquare:13209,fofanthai:3615,fofathai:3613,fongmanthai:3663,forall:8704,four:52,fourarabic:1636,fourbengali:2538,fourcircle:9315,fourcircleinversesansserif:10125,fourdeva:2410,fourgujarati:2794,fourgurmukhi:2666,fourhackarabic:1636,fourhangzhou:12324,fourideographicparen:12835,fourinferior:8324,fourmonospace:65300,fournumeratorbengali:2551,fouroldstyle:63284,fourparen:9335,fourperiod:9355,fourpersian:1780,fourroman:8563,foursuperior:8308,fourteencircle:9325,fourteenparen:9345,fourteenperiod:9365,fourthai:3668,fourthtonechinese:715,fparen:9377,fraction:8260,franc:8355,g:103,gabengali:2455,gacute:501,gadeva:2327,gafarabic:1711,gaffinalarabic:64403,gafinitialarabic:64404,gafmedialarabic:64405,gagujarati:2711,gagurmukhi:2583,gahiragana:12364,gakatakana:12460,gamma:947,gammalatinsmall:611,gammasuperior:736,gangiacoptic:1003,gbopomofo:12557,gbreve:287,gcaron:487,gcedilla:291,gcircle:9430,gcircumflex:285,gcommaaccent:291,gdot:289,gdotaccent:289,gecyrillic:1075,gehiragana:12370,gekatakana:12466,geometricallyequal:8785,gereshaccenthebrew:1436,gereshhebrew:1523,gereshmuqdamhebrew:1437,germandbls:223,gershayimaccenthebrew:1438,gershayimhebrew:1524,getamark:12307,ghabengali:2456,ghadarmenian:1394,ghadeva:2328,ghagujarati:2712,ghagurmukhi:2584,ghainarabic:1594,ghainfinalarabic:65230,ghaininitialarabic:65231,ghainmedialarabic:65232,ghemiddlehookcyrillic:1173,ghestrokecyrillic:1171,gheupturncyrillic:1169,ghhadeva:2394,ghhagurmukhi:2650,ghook:608,ghzsquare:13203,gihiragana:12366,gikatakana:12462,gimarmenian:1379,gimel:1490,gimeldagesh:64306,gimeldageshhebrew:64306,gimelhebrew:1490,gjecyrillic:1107,glottalinvertedstroke:446,glottalstop:660,glottalstopinverted:662,glottalstopmod:704,glottalstopreversed:661,glottalstopreversedmod:705,glottalstopreversedsuperior:740,glottalstopstroke:673,glottalstopstrokereversed:674,gmacron:7713,gmonospace:65351,gohiragana:12372,gokatakana:12468,gparen:9378,gpasquare:13228,gradient:8711,grave:96,gravebelowcmb:790,gravecmb:768,gravecomb:768,gravedeva:2387,gravelowmod:718,gravemonospace:65344,gravetonecmb:832,greater:62,greaterequal:8805,greaterequalorless:8923,greatermonospace:65310,greaterorequivalent:8819,greaterorless:8823,greateroverequal:8807,greatersmall:65125,gscript:609,gstroke:485,guhiragana:12368,guillemotleft:171,guillemotright:187,guilsinglleft:8249,guilsinglright:8250,gukatakana:12464,guramusquare:13080,gysquare:13257,h:104,haabkhasiancyrillic:1193,haaltonearabic:1729,habengali:2489,hadescendercyrillic:1203,hadeva:2361,hagujarati:2745,hagurmukhi:2617,haharabic:1581,hahfinalarabic:65186,hahinitialarabic:65187,hahiragana:12399,hahmedialarabic:65188,haitusquare:13098,hakatakana:12495,hakatakanahalfwidth:65418,halantgurmukhi:2637,hamzaarabic:1569,hamzalowarabic:1569,hangulfiller:12644,hardsigncyrillic:1098,harpoonleftbarbup:8636,harpoonrightbarbup:8640,hasquare:13258,hatafpatah:1458,hatafpatah16:1458,hatafpatah23:1458,hatafpatah2f:1458,hatafpatahhebrew:1458,hatafpatahnarrowhebrew:1458,hatafpatahquarterhebrew:1458,hatafpatahwidehebrew:1458,hatafqamats:1459,hatafqamats1b:1459,hatafqamats28:1459,hatafqamats34:1459,hatafqamatshebrew:1459,hatafqamatsnarrowhebrew:1459,hatafqamatsquarterhebrew:1459,hatafqamatswidehebrew:1459,hatafsegol:1457,hatafsegol17:1457,hatafsegol24:1457,hatafsegol30:1457,hatafsegolhebrew:1457,hatafsegolnarrowhebrew:1457,hatafsegolquarterhebrew:1457,hatafsegolwidehebrew:1457,hbar:295,hbopomofo:12559,hbrevebelow:7723,hcedilla:7721,hcircle:9431,hcircumflex:293,hdieresis:7719,hdotaccent:7715,hdotbelow:7717,he:1492,heart:9829,heartsuitblack:9829,heartsuitwhite:9825,hedagesh:64308,hedageshhebrew:64308,hehaltonearabic:1729,heharabic:1607,hehebrew:1492,hehfinalaltonearabic:64423,
-hehfinalalttwoarabic:65258,hehfinalarabic:65258,hehhamzaabovefinalarabic:64421,hehhamzaaboveisolatedarabic:64420,hehinitialaltonearabic:64424,hehinitialarabic:65259,hehiragana:12408,hehmedialaltonearabic:64425,hehmedialarabic:65260,heiseierasquare:13179,hekatakana:12504,hekatakanahalfwidth:65421,hekutaarusquare:13110,henghook:615,herutusquare:13113,het:1495,hethebrew:1495,hhook:614,hhooksuperior:689,hieuhacirclekorean:12923,hieuhaparenkorean:12827,hieuhcirclekorean:12909,hieuhkorean:12622,hieuhparenkorean:12813,hihiragana:12402,hikatakana:12498,hikatakanahalfwidth:65419,hiriq:1460,hiriq14:1460,hiriq21:1460,hiriq2d:1460,hiriqhebrew:1460,hiriqnarrowhebrew:1460,hiriqquarterhebrew:1460,hiriqwidehebrew:1460,hlinebelow:7830,hmonospace:65352,hoarmenian:1392,hohipthai:3627,hohiragana:12411,hokatakana:12507,hokatakanahalfwidth:65422,holam:1465,holam19:1465,holam26:1465,holam32:1465,holamhebrew:1465,holamnarrowhebrew:1465,holamquarterhebrew:1465,holamwidehebrew:1465,honokhukthai:3630,hookabovecomb:777,hookcmb:777,hookpalatalizedbelowcmb:801,hookretroflexbelowcmb:802,hoonsquare:13122,horicoptic:1001,horizontalbar:8213,horncmb:795,hotsprings:9832,house:8962,hparen:9379,hsuperior:688,hturned:613,huhiragana:12405,huiitosquare:13107,hukatakana:12501,hukatakanahalfwidth:65420,hungarumlaut:733,hungarumlautcmb:779,hv:405,hyphen:45,hypheninferior:63205,hyphenmonospace:65293,hyphensmall:65123,hyphensuperior:63206,hyphentwo:8208,i:105,iacute:237,iacyrillic:1103,ibengali:2439,ibopomofo:12583,ibreve:301,icaron:464,icircle:9432,icircumflex:238,icyrillic:1110,idblgrave:521,ideographearthcircle:12943,ideographfirecircle:12939,ideographicallianceparen:12863,ideographiccallparen:12858,ideographiccentrecircle:12965,ideographicclose:12294,ideographiccomma:12289,ideographiccommaleft:65380,ideographiccongratulationparen:12855,ideographiccorrectcircle:12963,ideographicearthparen:12847,ideographicenterpriseparen:12861,ideographicexcellentcircle:12957,ideographicfestivalparen:12864,ideographicfinancialcircle:12950,ideographicfinancialparen:12854,ideographicfireparen:12843,ideographichaveparen:12850,ideographichighcircle:12964,ideographiciterationmark:12293,ideographiclaborcircle:12952,ideographiclaborparen:12856,ideographicleftcircle:12967,ideographiclowcircle:12966,ideographicmedicinecircle:12969,ideographicmetalparen:12846,ideographicmoonparen:12842,ideographicnameparen:12852,ideographicperiod:12290,ideographicprintcircle:12958,ideographicreachparen:12867,ideographicrepresentparen:12857,ideographicresourceparen:12862,ideographicrightcircle:12968,ideographicsecretcircle:12953,ideographicselfparen:12866,ideographicsocietyparen:12851,ideographicspace:12288,ideographicspecialparen:12853,ideographicstockparen:12849,ideographicstudyparen:12859,ideographicsunparen:12848,ideographicsuperviseparen:12860,ideographicwaterparen:12844,ideographicwoodparen:12845,ideographiczero:12295,ideographmetalcircle:12942,ideographmooncircle:12938,ideographnamecircle:12948,ideographsuncircle:12944,ideographwatercircle:12940,ideographwoodcircle:12941,ideva:2311,idieresis:239,idieresisacute:7727,idieresiscyrillic:1253,idotbelow:7883,iebrevecyrillic:1239,iecyrillic:1077,ieungacirclekorean:12917,ieungaparenkorean:12821,ieungcirclekorean:12903,ieungkorean:12615,ieungparenkorean:12807,igrave:236,igujarati:2695,igurmukhi:2567,ihiragana:12356,ihookabove:7881,iibengali:2440,iicyrillic:1080,iideva:2312,iigujarati:2696,iigurmukhi:2568,iimatragurmukhi:2624,iinvertedbreve:523,iishortcyrillic:1081,iivowelsignbengali:2496,iivowelsigndeva:2368,iivowelsigngujarati:2752,ij:307,ikatakana:12452,ikatakanahalfwidth:65394,ikorean:12643,ilde:732,iluyhebrew:1452,imacron:299,imacroncyrillic:1251,imageorapproximatelyequal:8787,imatragurmukhi:2623,imonospace:65353,increment:8710,infinity:8734,iniarmenian:1387,integral:8747,integralbottom:8993,integralbt:8993,integralex:63733,integraltop:8992,integraltp:8992,intersection:8745,intisquare:13061,invbullet:9688,invcircle:9689,invsmileface:9787,iocyrillic:1105,iogonek:303,iota:953,iotadieresis:970,iotadieresistonos:912,iotalatin:617,iotatonos:943,iparen:9380,irigurmukhi:2674,ismallhiragana:12355,ismallkatakana:12451,ismallkatakanahalfwidth:65384,issharbengali:2554,istroke:616,isuperior:63213,iterationhiragana:12445,iterationkatakana:12541,itilde:297,itildebelow:7725,iubopomofo:12585,iucyrillic:1102,ivowelsignbengali:2495,ivowelsigndeva:2367,ivowelsigngujarati:2751,izhitsacyrillic:1141,izhitsadblgravecyrillic:1143,j:106,jaarmenian:1393,jabengali:2460,jadeva:2332,jagujarati:2716,jagurmukhi:2588,jbopomofo:12560,jcaron:496,jcircle:9433,jcircumflex:309,jcrossedtail:669,jdotlessstroke:607,jecyrillic:1112,jeemarabic:1580,jeemfinalarabic:65182,jeeminitialarabic:65183,jeemmedialarabic:65184,jeharabic:1688,jehfinalarabic:64395,jhabengali:2461,jhadeva:2333,jhagujarati:2717,jhagurmukhi:2589,jheharmenian:1403,jis:12292,jmonospace:65354,jparen:9381,jsuperior:690,k:107,kabashkircyrillic:1185,kabengali:2453,kacute:7729,kacyrillic:1082,kadescendercyrillic:1179,kadeva:2325,kaf:1499,kafarabic:1603,kafdagesh:64315,kafdageshhebrew:64315,kaffinalarabic:65242,kafhebrew:1499,kafinitialarabic:65243,kafmedialarabic:65244,kafrafehebrew:64333,kagujarati:2709,kagurmukhi:2581,kahiragana:12363,kahookcyrillic:1220,kakatakana:12459,kakatakanahalfwidth:65398,kappa:954,kappasymbolgreek:1008,kapyeounmieumkorean:12657,kapyeounphieuphkorean:12676,kapyeounpieupkorean:12664,kapyeounssangpieupkorean:12665,karoriisquare:13069,kashidaautoarabic:1600,kashidaautonosidebearingarabic:1600,kasmallkatakana:12533,kasquare:13188,kasraarabic:1616,kasratanarabic:1613,kastrokecyrillic:1183,katahiraprolongmarkhalfwidth:65392,kaverticalstrokecyrillic:1181,kbopomofo:12558,kcalsquare:13193,kcaron:489,kcedilla:311,kcircle:9434,kcommaaccent:311,kdotbelow:7731,keharmenian:1412,kehiragana:12369,kekatakana:12465,kekatakanahalfwidth:65401,kenarmenian:1391,kesmallkatakana:12534,kgreenlandic:312,khabengali:2454,khacyrillic:1093,khadeva:2326,khagujarati:2710,khagurmukhi:2582,khaharabic:1582,khahfinalarabic:65190,khahinitialarabic:65191,khahmedialarabic:65192,kheicoptic:999,khhadeva:2393,khhagurmukhi:2649,khieukhacirclekorean:12920,khieukhaparenkorean:12824,khieukhcirclekorean:12906,khieukhkorean:12619,khieukhparenkorean:12810,khokhaithai:3586,khokhonthai:3589,khokhuatthai:3587,khokhwaithai:3588,khomutthai:3675,khook:409,khorakhangthai:3590,khzsquare:13201,kihiragana:12365,kikatakana:12461,kikatakanahalfwidth:65399,kiroguramusquare:13077,kiromeetorusquare:13078,kirosquare:13076,kiyeokacirclekorean:12910,kiyeokaparenkorean:12814,kiyeokcirclekorean:12896,kiyeokkorean:12593,kiyeokparenkorean:12800,kiyeoksioskorean:12595,kjecyrillic:1116,klinebelow:7733,klsquare:13208,kmcubedsquare:13222,kmonospace:65355,kmsquaredsquare:13218,kohiragana:12371,kohmsquare:13248,kokaithai:3585,kokatakana:12467,kokatakanahalfwidth:65402,kooposquare:13086,koppacyrillic:1153,koreanstandardsymbol:12927,koroniscmb:835,kparen:9382,kpasquare:13226,ksicyrillic:1135,ktsquare:13263,kturned:670,kuhiragana:12367,kukatakana:12463,kukatakanahalfwidth:65400,kvsquare:13240,kwsquare:13246,l:108,labengali:2482,lacute:314,ladeva:2354,lagujarati:2738,lagurmukhi:2610,lakkhangyaothai:3653,lamaleffinalarabic:65276,lamalefhamzaabovefinalarabic:65272,lamalefhamzaaboveisolatedarabic:65271,lamalefhamzabelowfinalarabic:65274,lamalefhamzabelowisolatedarabic:65273,lamalefisolatedarabic:65275,lamalefmaddaabovefinalarabic:65270,lamalefmaddaaboveisolatedarabic:65269,lamarabic:1604,lambda:955,lambdastroke:411,lamed:1500,lameddagesh:64316,lameddageshhebrew:64316,lamedhebrew:1500,lamfinalarabic:65246,lamhahinitialarabic:64714,laminitialarabic:65247,lamjeeminitialarabic:64713,lamkhahinitialarabic:64715,lamlamhehisolatedarabic:65010,lammedialarabic:65248,lammeemhahinitialarabic:64904,lammeeminitialarabic:64716,largecircle:9711,lbar:410,lbelt:620,lbopomofo:12556,lcaron:318,lcedilla:316,lcircle:9435,lcircumflexbelow:7741,lcommaaccent:316,ldot:320,ldotaccent:320,ldotbelow:7735,ldotbelowmacron:7737,leftangleabovecmb:794,lefttackbelowcmb:792,less:60,lessequal:8804,lessequalorgreater:8922,lessmonospace:65308,lessorequivalent:8818,lessorgreater:8822,lessoverequal:8806,lesssmall:65124,lezh:622,lfblock:9612,lhookretroflex:621,lira:8356,liwnarmenian:1388,lj:457,ljecyrillic:1113,ll:63168,lladeva:2355,llagujarati:2739,llinebelow:7739,llladeva:2356,llvocalicbengali:2529,llvocalicdeva:2401,llvocalicvowelsignbengali:2531,llvocalicvowelsigndeva:2403,lmiddletilde:619,lmonospace:65356,lmsquare:13264,lochulathai:3628,logicaland:8743,logicalnot:172,logicalnotreversed:8976,logicalor:8744,lolingthai:3621,longs:383,lowlinecenterline:65102,lowlinecmb:818,lowlinedashed:65101,lozenge:9674,lparen:9383,lslash:322,lsquare:8467,lsuperior:63214,ltshade:9617,luthai:3622,lvocalicbengali:2444,lvocalicdeva:2316,lvocalicvowelsignbengali:2530,lvocalicvowelsigndeva:2402,lxsquare:13267,m:109,mabengali:2478,macron:175,macronbelowcmb:817,macroncmb:772,macronlowmod:717,macronmonospace:65507,macute:7743,madeva:2350,magujarati:2734,magurmukhi:2606,mahapakhhebrew:1444,mahapakhlefthebrew:1444,mahiragana:12414,maichattawalowleftthai:63637,maichattawalowrightthai:63636,maichattawathai:3659,maichattawaupperleftthai:63635,maieklowleftthai:63628,maieklowrightthai:63627,maiekthai:3656,maiekupperleftthai:63626,maihanakatleftthai:63620,maihanakatthai:3633,maitaikhuleftthai:63625,maitaikhuthai:3655,maitholowleftthai:63631,maitholowrightthai:63630,maithothai:3657,maithoupperleftthai:63629,maitrilowleftthai:63634,maitrilowrightthai:63633,maitrithai:3658,maitriupperleftthai:63632,maiyamokthai:3654,makatakana:12510,makatakanahalfwidth:65423,male:9794,mansyonsquare:13127,maqafhebrew:1470,mars:9794,masoracirclehebrew:1455,masquare:13187,mbopomofo:12551,mbsquare:13268,mcircle:9436,mcubedsquare:13221,mdotaccent:7745,mdotbelow:7747,meemarabic:1605,meemfinalarabic:65250,meeminitialarabic:65251,meemmedialarabic:65252,meemmeeminitialarabic:64721,meemmeemisolatedarabic:64584,meetorusquare:13133,mehiragana:12417,meizierasquare:13182,mekatakana:12513,mekatakanahalfwidth:65426,mem:1502,memdagesh:64318,memdageshhebrew:64318,memhebrew:1502,menarmenian:1396,merkhahebrew:1445,merkhakefulahebrew:1446,merkhakefulalefthebrew:1446,merkhalefthebrew:1445,mhook:625,mhzsquare:13202,middledotkatakanahalfwidth:65381,middot:183,mieumacirclekorean:12914,mieumaparenkorean:12818,mieumcirclekorean:12900,mieumkorean:12609,mieumpansioskorean:12656,mieumparenkorean:12804,mieumpieupkorean:12654,mieumsioskorean:12655,mihiragana:12415,mikatakana:12511,mikatakanahalfwidth:65424,minus:8722,minusbelowcmb:800,minuscircle:8854,minusmod:727,minusplus:8723,minute:8242,miribaarusquare:13130,mirisquare:13129,mlonglegturned:624,mlsquare:13206,mmcubedsquare:13219,mmonospace:65357,mmsquaredsquare:13215,mohiragana:12418,mohmsquare:13249,mokatakana:12514,mokatakanahalfwidth:65427,molsquare:13270,momathai:3617,moverssquare:13223,moverssquaredsquare:13224,mparen:9384,mpasquare:13227,mssquare:13235,msuperior:63215,mturned:623,mu:181,mu1:181,muasquare:13186,muchgreater:8811,muchless:8810,mufsquare:13196,mugreek:956,mugsquare:13197,muhiragana:12416,mukatakana:12512,mukatakanahalfwidth:65425,mulsquare:13205,multiply:215,mumsquare:13211,munahhebrew:1443,munahlefthebrew:1443,musicalnote:9834,musicalnotedbl:9835,musicflatsign:9837,musicsharpsign:9839,mussquare:13234,muvsquare:13238,muwsquare:13244,mvmegasquare:13241,mvsquare:13239,mwmegasquare:13247,mwsquare:13245,n:110,nabengali:2472,nabla:8711,nacute:324,nadeva:2344,nagujarati:2728,nagurmukhi:2600,nahiragana:12394,nakatakana:12490,nakatakanahalfwidth:65413,napostrophe:329,nasquare:13185,nbopomofo:12555,nbspace:160,ncaron:328,ncedilla:326,ncircle:9437,ncircumflexbelow:7755,ncommaaccent:326,ndotaccent:7749,ndotbelow:7751,nehiragana:12397,nekatakana:12493,nekatakanahalfwidth:65416,newsheqelsign:8362,nfsquare:13195,ngabengali:2457,ngadeva:2329,ngagujarati:2713,ngagurmukhi:2585,ngonguthai:3591,nhiragana:12435,nhookleft:626,nhookretroflex:627,nieunacirclekorean:12911,nieunaparenkorean:12815,nieuncieuckorean:12597,nieuncirclekorean:12897,nieunhieuhkorean:12598,nieunkorean:12596,nieunpansioskorean:12648,nieunparenkorean:12801,nieunsioskorean:12647,nieuntikeutkorean:12646,nihiragana:12395,nikatakana:12491,nikatakanahalfwidth:65414,nikhahitleftthai:63641,nikhahitthai:3661,nine:57,ninearabic:1641,ninebengali:2543,ninecircle:9320,ninecircleinversesansserif:10130,ninedeva:2415,ninegujarati:2799,ninegurmukhi:2671,ninehackarabic:1641,ninehangzhou:12329,nineideographicparen:12840,nineinferior:8329,ninemonospace:65305,nineoldstyle:63289,nineparen:9340,nineperiod:9360,ninepersian:1785,nineroman:8568,ninesuperior:8313,nineteencircle:9330,nineteenparen:9350,nineteenperiod:9370,ninethai:3673,nj:460,njecyrillic:1114,nkatakana:12531,nkatakanahalfwidth:65437,nlegrightlong:414,nlinebelow:7753,nmonospace:65358,nmsquare:13210,nnabengali:2467,nnadeva:2339,nnagujarati:2723,nnagurmukhi:2595,nnnadeva:2345,nohiragana:12398,nokatakana:12494,nokatakanahalfwidth:65417,nonbreakingspace:160,nonenthai:3603,nonuthai:3609,noonarabic:1606,noonfinalarabic:65254,noonghunnaarabic:1722,noonghunnafinalarabic:64415,nooninitialarabic:65255,noonjeeminitialarabic:64722,noonjeemisolatedarabic:64587,noonmedialarabic:65256,noonmeeminitialarabic:64725,noonmeemisolatedarabic:64590,noonnoonfinalarabic:64653,notcontains:8716,notelement:8713,notelementof:8713,notequal:8800,notgreater:8815,notgreaternorequal:8817,notgreaternorless:8825,notidentical:8802,notless:8814,notlessnorequal:8816,notparallel:8742,notprecedes:8832,notsubset:8836,notsucceeds:8833,notsuperset:8837,nowarmenian:1398,nparen:9385,nssquare:13233,nsuperior:8319,ntilde:241,nu:957,nuhiragana:12396,nukatakana:12492,nukatakanahalfwidth:65415,nuktabengali:2492,nuktadeva:2364,nuktagujarati:2748,nuktagurmukhi:2620,numbersign:35,numbersignmonospace:65283,numbersignsmall:65119,numeralsigngreek:884,numeralsignlowergreek:885,numero:8470,nun:1504,nundagesh:64320,nundageshhebrew:64320,nunhebrew:1504,nvsquare:13237,nwsquare:13243,nyabengali:2462,nyadeva:2334,nyagujarati:2718,nyagurmukhi:2590,o:111,oacute:243,oangthai:3629,obarred:629,obarredcyrillic:1257,obarreddieresiscyrillic:1259,obengali:2451,obopomofo:12571,obreve:335,ocandradeva:2321,ocandragujarati:2705,ocandravowelsigndeva:2377,ocandravowelsigngujarati:2761,ocaron:466,ocircle:9438,ocircumflex:244,ocircumflexacute:7889,ocircumflexdotbelow:7897,ocircumflexgrave:7891,ocircumflexhookabove:7893,ocircumflextilde:7895,ocyrillic:1086,odblacute:337,odblgrave:525,odeva:2323,odieresis:246,odieresiscyrillic:1255,odotbelow:7885,oe:339,oekorean:12634,ogonek:731,ogonekcmb:808,ograve:242,ogujarati:2707,oharmenian:1413,ohiragana:12362,ohookabove:7887,ohorn:417,ohornacute:7899,ohorndotbelow:7907,ohorngrave:7901,ohornhookabove:7903,ohorntilde:7905,ohungarumlaut:337,oi:419,oinvertedbreve:527,okatakana:12458,okatakanahalfwidth:65397,okorean:12631,olehebrew:1451,omacron:333,omacronacute:7763,omacrongrave:7761,omdeva:2384,omega:969,omega1:982,omegacyrillic:1121,omegalatinclosed:631,omegaroundcyrillic:1147,omegatitlocyrillic:1149,omegatonos:974,omgujarati:2768,omicron:959,omicrontonos:972,omonospace:65359,one:49,onearabic:1633,onebengali:2535,onecircle:9312,onecircleinversesansserif:10122,onedeva:2407,onedotenleader:8228,oneeighth:8539,onefitted:63196,onegujarati:2791,onegurmukhi:2663,onehackarabic:1633,onehalf:189,onehangzhou:12321,oneideographicparen:12832,oneinferior:8321,onemonospace:65297,onenumeratorbengali:2548,oneoldstyle:63281,oneparen:9332,oneperiod:9352,onepersian:1777,onequarter:188,oneroman:8560,onesuperior:185,onethai:3665,onethird:8531,oogonek:491,oogonekmacron:493,oogurmukhi:2579,oomatragurmukhi:2635,oopen:596,oparen:9386,openbullet:9702,option:8997,ordfeminine:170,ordmasculine:186,orthogonal:8735,oshortdeva:2322,oshortvowelsigndeva:2378,oslash:248,oslashacute:511,osmallhiragana:12361,osmallkatakana:12457,osmallkatakanahalfwidth:65387,ostrokeacute:511,osuperior:63216,otcyrillic:1151,otilde:245,otildeacute:7757,otildedieresis:7759,oubopomofo:12577,overline:8254,overlinecenterline:65098,overlinecmb:773,overlinedashed:65097,overlinedblwavy:65100,overlinewavy:65099,overscore:175,ovowelsignbengali:2507,ovowelsigndeva:2379,ovowelsigngujarati:2763,p:112,paampssquare:13184,paasentosquare:13099,pabengali:2474,pacute:7765,padeva:2346,pagedown:8671,pageup:8670,pagujarati:2730,pagurmukhi:2602,pahiragana:12401,paiyannoithai:3631,pakatakana:12497,palatalizationcyrilliccmb:1156,palochkacyrillic:1216,pansioskorean:12671,paragraph:182,parallel:8741,parenleft:40,parenleftaltonearabic:64830,parenleftbt:63725,parenleftex:63724,parenleftinferior:8333,parenleftmonospace:65288,parenleftsmall:65113,parenleftsuperior:8317,parenlefttp:63723,parenleftvertical:65077,parenright:41,parenrightaltonearabic:64831,parenrightbt:63736,parenrightex:63735,parenrightinferior:8334,parenrightmonospace:65289,parenrightsmall:65114,parenrightsuperior:8318,parenrighttp:63734,parenrightvertical:65078,partialdiff:8706,paseqhebrew:1472,pashtahebrew:1433,pasquare:13225,patah:1463,patah11:1463,patah1d:1463,patah2a:1463,patahhebrew:1463,patahnarrowhebrew:1463,patahquarterhebrew:1463,patahwidehebrew:1463,pazerhebrew:1441,pbopomofo:12550,pcircle:9439,pdotaccent:7767,pe:1508,pecyrillic:1087,pedagesh:64324,pedageshhebrew:64324,peezisquare:13115,pefinaldageshhebrew:64323,peharabic:1662,peharmenian:1402,pehebrew:1508,pehfinalarabic:64343,pehinitialarabic:64344,pehiragana:12410,pehmedialarabic:64345,pekatakana:12506,pemiddlehookcyrillic:1191,perafehebrew:64334,percent:37,percentarabic:1642,percentmonospace:65285,percentsmall:65130,period:46,periodarmenian:1417,periodcentered:183,periodhalfwidth:65377,periodinferior:63207,periodmonospace:65294,periodsmall:65106,periodsuperior:63208,perispomenigreekcmb:834,perpendicular:8869,perthousand:8240,peseta:8359,pfsquare:13194,phabengali:2475,phadeva:2347,phagujarati:2731,phagurmukhi:2603,phi:966,phi1:981,phieuphacirclekorean:12922,phieuphaparenkorean:12826,phieuphcirclekorean:12908,phieuphkorean:12621,phieuphparenkorean:12812,philatin:632,phinthuthai:3642,phisymbolgreek:981,phook:421,phophanthai:3614,phophungthai:3612,phosamphaothai:3616,pi:960,pieupacirclekorean:12915,pieupaparenkorean:12819,pieupcieuckorean:12662,pieupcirclekorean:12901,pieupkiyeokkorean:12658,pieupkorean:12610,pieupparenkorean:12805,pieupsioskiyeokkorean:12660,pieupsioskorean:12612,pieupsiostikeutkorean:12661,pieupthieuthkorean:12663,pieuptikeutkorean:12659,pihiragana:12404,pikatakana:12500,pisymbolgreek:982,piwrarmenian:1411,plus:43,plusbelowcmb:799,pluscircle:8853,plusminus:177,plusmod:726,plusmonospace:65291,plussmall:65122,plussuperior:8314,pmonospace:65360,pmsquare:13272,pohiragana:12413,pointingindexdownwhite:9759,pointingindexleftwhite:9756,pointingindexrightwhite:9758,pointingindexupwhite:9757,pokatakana:12509,poplathai:3611,postalmark:12306,postalmarkface:12320,pparen:9387,precedes:8826,prescription:8478,primemod:697,primereversed:8245,product:8719,projective:8965,prolongedkana:12540,propellor:8984,propersubset:8834,propersuperset:8835,proportion:8759,proportional:8733,psi:968,psicyrillic:1137,psilipneumatacyrilliccmb:1158,pssquare:13232,puhiragana:12407,pukatakana:12503,pvsquare:13236,pwsquare:13242,q:113,qadeva:2392,qadmahebrew:1448,qafarabic:1602,qaffinalarabic:65238,qafinitialarabic:65239,qafmedialarabic:65240,qamats:1464,qamats10:1464,qamats1a:1464,qamats1c:1464,qamats27:1464,qamats29:1464,qamats33:1464,qamatsde:1464,qamatshebrew:1464,qamatsnarrowhebrew:1464,qamatsqatanhebrew:1464,qamatsqatannarrowhebrew:1464,qamatsqatanquarterhebrew:1464,qamatsqatanwidehebrew:1464,qamatsquarterhebrew:1464,qamatswidehebrew:1464,qarneyparahebrew:1439,qbopomofo:12561,qcircle:9440,qhook:672,qmonospace:65361,qof:1511,qofdagesh:64327,qofdageshhebrew:64327,qofhebrew:1511,qparen:9388,quarternote:9833,qubuts:1467,qubuts18:1467,qubuts25:1467,qubuts31:1467,qubutshebrew:1467,qubutsnarrowhebrew:1467,qubutsquarterhebrew:1467,qubutswidehebrew:1467,question:63,questionarabic:1567,questionarmenian:1374,questiondown:191,questiondownsmall:63423,questiongreek:894,questionmonospace:65311,questionsmall:63295,quotedbl:34,quotedblbase:8222,quotedblleft:8220,quotedblmonospace:65282,quotedblprime:12318,quotedblprimereversed:12317,quotedblright:8221,quoteleft:8216,quoteleftreversed:8219,quotereversed:8219,quoteright:8217,quoterightn:329,quotesinglbase:8218,quotesingle:39,quotesinglemonospace:65287,r:114,raarmenian:1404,rabengali:2480,racute:341,radeva:2352,radical:8730,radicalex:63717,radoverssquare:13230,radoverssquaredsquare:13231,radsquare:13229,rafe:1471,rafehebrew:1471,ragujarati:2736,ragurmukhi:2608,rahiragana:12425,rakatakana:12521,rakatakanahalfwidth:65431,ralowerdiagonalbengali:2545,ramiddlediagonalbengali:2544,ramshorn:612,ratio:8758,rbopomofo:12566,rcaron:345,rcedilla:343,rcircle:9441,rcommaaccent:343,rdblgrave:529,rdotaccent:7769,rdotbelow:7771,rdotbelowmacron:7773,referencemark:8251,reflexsubset:8838,reflexsuperset:8839,registered:174,registersans:63720,registerserif:63194,reharabic:1585,reharmenian:1408,rehfinalarabic:65198,rehiragana:12428,rekatakana:12524,rekatakanahalfwidth:65434,resh:1512,reshdageshhebrew:64328,reshhebrew:1512,reversedtilde:8765,reviahebrew:1431,reviamugrashhebrew:1431,revlogicalnot:8976,rfishhook:638,rfishhookreversed:639,rhabengali:2525,rhadeva:2397,rho:961,rhook:637,rhookturned:635,rhookturnedsuperior:693,rhosymbolgreek:1009,rhotichookmod:734,rieulacirclekorean:12913,rieulaparenkorean:12817,rieulcirclekorean:12899,rieulhieuhkorean:12608,rieulkiyeokkorean:12602,rieulkiyeoksioskorean:12649,rieulkorean:12601,rieulmieumkorean:12603,rieulpansioskorean:12652,rieulparenkorean:12803,rieulphieuphkorean:12607,rieulpieupkorean:12604,rieulpieupsioskorean:12651,rieulsioskorean:12605,rieulthieuthkorean:12606,rieultikeutkorean:12650,rieulyeorinhieuhkorean:12653,rightangle:8735,righttackbelowcmb:793,righttriangle:8895,rihiragana:12426,rikatakana:12522,rikatakanahalfwidth:65432,ring:730,ringbelowcmb:805,ringcmb:778,ringhalfleft:703,ringhalfleftarmenian:1369,ringhalfleftbelowcmb:796,ringhalfleftcentered:723,ringhalfright:702,ringhalfrightbelowcmb:825,ringhalfrightcentered:722,rinvertedbreve:531,rittorusquare:13137,rlinebelow:7775,rlongleg:636,rlonglegturned:634,rmonospace:65362,rohiragana:12429,rokatakana:12525,rokatakanahalfwidth:65435,roruathai:3619,rparen:9389,rrabengali:2524,rradeva:2353,rragurmukhi:2652,rreharabic:1681,rrehfinalarabic:64397,rrvocalicbengali:2528,rrvocalicdeva:2400,rrvocalicgujarati:2784,rrvocalicvowelsignbengali:2500,rrvocalicvowelsigndeva:2372,rrvocalicvowelsigngujarati:2756,rsuperior:63217,rtblock:9616,rturned:633,rturnedsuperior:692,ruhiragana:12427,rukatakana:12523,rukatakanahalfwidth:65433,rupeemarkbengali:2546,rupeesignbengali:2547,rupiah:63197,ruthai:3620,rvocalicbengali:2443,rvocalicdeva:2315,rvocalicgujarati:2699,rvocalicvowelsignbengali:2499,rvocalicvowelsigndeva:2371,rvocalicvowelsigngujarati:2755,s:115,sabengali:2488,sacute:347,sacutedotaccent:7781,sadarabic:1589,sadeva:2360,sadfinalarabic:65210,sadinitialarabic:65211,sadmedialarabic:65212,sagujarati:2744,sagurmukhi:2616,sahiragana:12373,sakatakana:12469,sakatakanahalfwidth:65403,sallallahoualayhewasallamarabic:65018,samekh:1505,samekhdagesh:64321,samekhdageshhebrew:64321,samekhhebrew:1505,saraaathai:3634,saraaethai:3649,saraaimaimalaithai:3652,saraaimaimuanthai:3651,saraamthai:3635,saraathai:3632,saraethai:3648,saraiileftthai:63622,saraiithai:3637,saraileftthai:63621,saraithai:3636,saraothai:3650,saraueeleftthai:63624,saraueethai:3639,saraueleftthai:63623,sarauethai:3638,sarauthai:3640,sarauuthai:3641,sbopomofo:12569,scaron:353,scarondotaccent:7783,scedilla:351,schwa:601,schwacyrillic:1241,schwadieresiscyrillic:1243,schwahook:602,scircle:9442,scircumflex:349,scommaaccent:537,sdotaccent:7777,sdotbelow:7779,sdotbelowdotaccent:7785,seagullbelowcmb:828,second:8243,secondtonechinese:714,section:167,seenarabic:1587,seenfinalarabic:65202,seeninitialarabic:65203,seenmedialarabic:65204,segol:1462,segol13:1462,segol1f:1462,segol2c:1462,segolhebrew:1462,segolnarrowhebrew:1462,segolquarterhebrew:1462,segoltahebrew:1426,segolwidehebrew:1462,seharmenian:1405,sehiragana:12379,sekatakana:12475,sekatakanahalfwidth:65406,semicolon:59,semicolonarabic:1563,semicolonmonospace:65307,semicolonsmall:65108,semivoicedmarkkana:12444,semivoicedmarkkanahalfwidth:65439,sentisquare:13090,sentosquare:13091,seven:55,sevenarabic:1639,sevenbengali:2541,sevencircle:9318,sevencircleinversesansserif:10128,sevendeva:2413,seveneighths:8542,sevengujarati:2797,sevengurmukhi:2669,sevenhackarabic:1639,sevenhangzhou:12327,sevenideographicparen:12838,seveninferior:8327,sevenmonospace:65303,sevenoldstyle:63287,sevenparen:9338,sevenperiod:9358,sevenpersian:1783,sevenroman:8566,sevensuperior:8311,seventeencircle:9328,seventeenparen:9348,seventeenperiod:9368,seventhai:3671,sfthyphen:173,shaarmenian:1399,shabengali:2486,shacyrillic:1096,shaddaarabic:1617,shaddadammaarabic:64609,shaddadammatanarabic:64606,shaddafathaarabic:64608,shaddakasraarabic:64610,shaddakasratanarabic:64607,shade:9618,shadedark:9619,shadelight:9617,shademedium:9618,shadeva:2358,shagujarati:2742,shagurmukhi:2614,shalshelethebrew:1427,shbopomofo:12565,shchacyrillic:1097,sheenarabic:1588,sheenfinalarabic:65206,sheeninitialarabic:65207,sheenmedialarabic:65208,sheicoptic:995,sheqel:8362,sheqelhebrew:8362,sheva:1456,sheva115:1456,sheva15:1456,sheva22:1456,sheva2e:1456,shevahebrew:1456,shevanarrowhebrew:1456,shevaquarterhebrew:1456,shevawidehebrew:1456,shhacyrillic:1211,shimacoptic:1005,shin:1513,shindagesh:64329,shindageshhebrew:64329,shindageshshindot:64300,shindageshshindothebrew:64300,shindageshsindot:64301,shindageshsindothebrew:64301,shindothebrew:1473,shinhebrew:1513,shinshindot:64298,shinshindothebrew:64298,shinsindot:64299,shinsindothebrew:64299,shook:642,sigma:963,sigma1:962,sigmafinal:962,sigmalunatesymbolgreek:1010,sihiragana:12375,sikatakana:12471,sikatakanahalfwidth:65404,siluqhebrew:1469,siluqlefthebrew:1469,similar:8764,sindothebrew:1474,siosacirclekorean:12916,siosaparenkorean:12820,sioscieuckorean:12670,sioscirclekorean:12902,sioskiyeokkorean:12666,sioskorean:12613,siosnieunkorean:12667,siosparenkorean:12806,siospieupkorean:12669,siostikeutkorean:12668,six:54,sixarabic:1638,sixbengali:2540,sixcircle:9317,sixcircleinversesansserif:10127,sixdeva:2412,sixgujarati:2796,sixgurmukhi:2668,sixhackarabic:1638,sixhangzhou:12326,sixideographicparen:12837,sixinferior:8326,sixmonospace:65302,sixoldstyle:63286,sixparen:9337,sixperiod:9357,sixpersian:1782,sixroman:8565,sixsuperior:8310,sixteencircle:9327,sixteencurrencydenominatorbengali:2553,sixteenparen:9347,sixteenperiod:9367,sixthai:3670,slash:47,slashmonospace:65295,slong:383,slongdotaccent:7835,smileface:9786,smonospace:65363,sofpasuqhebrew:1475,softhyphen:173,softsigncyrillic:1100,sohiragana:12381,sokatakana:12477,sokatakanahalfwidth:65407,soliduslongoverlaycmb:824,solidusshortoverlaycmb:823,sorusithai:3625,sosalathai:3624,sosothai:3595,sosuathai:3626,space:32,spacehackarabic:32,spade:9824,spadesuitblack:9824,spadesuitwhite:9828,sparen:9390,squarebelowcmb:827,squarecc:13252,squarecm:13213,squarediagonalcrosshatchfill:9641,squarehorizontalfill:9636,squarekg:13199,squarekm:13214,squarekmcapital:13262,squareln:13265,squarelog:13266,squaremg:13198,squaremil:13269,squaremm:13212,squaremsquared:13217,squareorthogonalcrosshatchfill:9638,squareupperlefttolowerrightfill:9639,squareupperrighttolowerleftfill:9640,squareverticalfill:9637,squarewhitewithsmallblack:9635,srsquare:13275,ssabengali:2487,ssadeva:2359,ssagujarati:2743,ssangcieuckorean:12617,ssanghieuhkorean:12677,ssangieungkorean:12672,ssangkiyeokkorean:12594,ssangnieunkorean:12645,ssangpieupkorean:12611,ssangsioskorean:12614,ssangtikeutkorean:12600,ssuperior:63218,sterling:163,sterlingmonospace:65505,strokelongoverlaycmb:822,strokeshortoverlaycmb:821,subset:8834,subsetnotequal:8842,subsetorequal:8838,succeeds:8827,suchthat:8715,suhiragana:12377,sukatakana:12473,sukatakanahalfwidth:65405,sukunarabic:1618,summation:8721,sun:9788,superset:8835,supersetnotequal:8843,supersetorequal:8839,svsquare:13276,syouwaerasquare:13180,t:116,tabengali:2468,tackdown:8868,tackleft:8867,tadeva:2340,tagujarati:2724,tagurmukhi:2596,taharabic:1591,tahfinalarabic:65218,tahinitialarabic:65219,tahiragana:12383,tahmedialarabic:65220,taisyouerasquare:13181,takatakana:12479,takatakanahalfwidth:65408,tatweelarabic:1600,tau:964,tav:1514,tavdages:64330,tavdagesh:64330,tavdageshhebrew:64330,tavhebrew:1514,tbar:359,tbopomofo:12554,tcaron:357,tccurl:680,tcedilla:355,tcheharabic:1670,tchehfinalarabic:64379,tchehinitialarabic:64380,tchehmedialarabic:64381,tcircle:9443,tcircumflexbelow:7793,tcommaaccent:355,tdieresis:7831,tdotaccent:7787,tdotbelow:7789,tecyrillic:1090,tedescendercyrillic:1197,teharabic:1578,tehfinalarabic:65174,tehhahinitialarabic:64674,tehhahisolatedarabic:64524,tehinitialarabic:65175,tehiragana:12390,tehjeeminitialarabic:64673,tehjeemisolatedarabic:64523,tehmarbutaarabic:1577,tehmarbutafinalarabic:65172,tehmedialarabic:65176,tehmeeminitialarabic:64676,tehmeemisolatedarabic:64526,tehnoonfinalarabic:64627,tekatakana:12486,tekatakanahalfwidth:65411,telephone:8481,telephoneblack:9742,telishagedolahebrew:1440,telishaqetanahebrew:1449,tencircle:9321,tenideographicparen:12841,tenparen:9341,tenperiod:9361,tenroman:8569,tesh:679,tet:1496,tetdagesh:64312,tetdageshhebrew:64312,tethebrew:1496,tetsecyrillic:1205,tevirhebrew:1435,tevirlefthebrew:1435,thabengali:2469,thadeva:2341,thagujarati:2725,thagurmukhi:2597,thalarabic:1584,thalfinalarabic:65196,thanthakhatlowleftthai:63640,thanthakhatlowrightthai:63639,thanthakhatthai:3660,thanthakhatupperleftthai:63638,theharabic:1579,thehfinalarabic:65178,thehinitialarabic:65179,thehmedialarabic:65180,thereexists:8707,therefore:8756,theta:952,theta1:977,thetasymbolgreek:977,thieuthacirclekorean:12921,thieuthaparenkorean:12825,thieuthcirclekorean:12907,thieuthkorean:12620,thieuthparenkorean:12811,thirteencircle:9324,thirteenparen:9344,thirteenperiod:9364,thonangmonthothai:3601,thook:429,thophuthaothai:3602,thorn:254,thothahanthai:3607,thothanthai:3600,thothongthai:3608,thothungthai:3606,thousandcyrillic:1154,thousandsseparatorarabic:1644,thousandsseparatorpersian:1644,three:51,threearabic:1635,threebengali:2537,threecircle:9314,threecircleinversesansserif:10124,threedeva:2409,threeeighths:8540,threegujarati:2793,threegurmukhi:2665,threehackarabic:1635,threehangzhou:12323,threeideographicparen:12834,threeinferior:8323,threemonospace:65299,threenumeratorbengali:2550,threeoldstyle:63283,threeparen:9334,threeperiod:9354,threepersian:1779,threequarters:190,threequartersemdash:63198,threeroman:8562,threesuperior:179,threethai:3667,thzsquare:13204,tihiragana:12385,tikatakana:12481,tikatakanahalfwidth:65409,tikeutacirclekorean:12912,tikeutaparenkorean:12816,tikeutcirclekorean:12898,tikeutkorean:12599,tikeutparenkorean:12802,tilde:732,tildebelowcmb:816,tildecmb:771,tildecomb:771,tildedoublecmb:864,tildeoperator:8764,tildeoverlaycmb:820,tildeverticalcmb:830,timescircle:8855,tipehahebrew:1430,tipehalefthebrew:1430,tippigurmukhi:2672,titlocyrilliccmb:1155,tiwnarmenian:1407,tlinebelow:7791,tmonospace:65364,toarmenian:1385,tohiragana:12392,tokatakana:12488,tokatakanahalfwidth:65412,tonebarextrahighmod:741,tonebarextralowmod:745,tonebarhighmod:742,tonebarlowmod:744,tonebarmidmod:743,tonefive:445,tonesix:389,tonetwo:424,tonos:900,tonsquare:13095,topatakthai:3599,tortoiseshellbracketleft:12308,tortoiseshellbracketleftsmall:65117,tortoiseshellbracketleftvertical:65081,tortoiseshellbracketright:12309,tortoiseshellbracketrightsmall:65118,tortoiseshellbracketrightvertical:65082,totaothai:3605,tpalatalhook:427,tparen:9391,trademark:8482,trademarksans:63722,trademarkserif:63195,tretroflexhook:648,triagdn:9660,triaglf:9668,triagrt:9658,triagup:9650,ts:678,tsadi:1510,tsadidagesh:64326,tsadidageshhebrew:64326,tsadihebrew:1510,tsecyrillic:1094,tsere:1461,tsere12:1461,tsere1e:1461,tsere2b:1461,tserehebrew:1461,tserenarrowhebrew:1461,tserequarterhebrew:1461,tserewidehebrew:1461,tshecyrillic:1115,tsuperior:63219,ttabengali:2463,ttadeva:2335,
-ttagujarati:2719,ttagurmukhi:2591,tteharabic:1657,ttehfinalarabic:64359,ttehinitialarabic:64360,ttehmedialarabic:64361,tthabengali:2464,tthadeva:2336,tthagujarati:2720,tthagurmukhi:2592,tturned:647,tuhiragana:12388,tukatakana:12484,tukatakanahalfwidth:65410,tusmallhiragana:12387,tusmallkatakana:12483,tusmallkatakanahalfwidth:65391,twelvecircle:9323,twelveparen:9343,twelveperiod:9363,twelveroman:8571,twentycircle:9331,twentyhangzhou:21316,twentyparen:9351,twentyperiod:9371,two:50,twoarabic:1634,twobengali:2536,twocircle:9313,twocircleinversesansserif:10123,twodeva:2408,twodotenleader:8229,twodotleader:8229,twodotleadervertical:65072,twogujarati:2792,twogurmukhi:2664,twohackarabic:1634,twohangzhou:12322,twoideographicparen:12833,twoinferior:8322,twomonospace:65298,twonumeratorbengali:2549,twooldstyle:63282,twoparen:9333,twoperiod:9353,twopersian:1778,tworoman:8561,twostroke:443,twosuperior:178,twothai:3666,twothirds:8532,u:117,uacute:250,ubar:649,ubengali:2441,ubopomofo:12584,ubreve:365,ucaron:468,ucircle:9444,ucircumflex:251,ucircumflexbelow:7799,ucyrillic:1091,udattadeva:2385,udblacute:369,udblgrave:533,udeva:2313,udieresis:252,udieresisacute:472,udieresisbelow:7795,udieresiscaron:474,udieresiscyrillic:1265,udieresisgrave:476,udieresismacron:470,udotbelow:7909,ugrave:249,ugujarati:2697,ugurmukhi:2569,uhiragana:12358,uhookabove:7911,uhorn:432,uhornacute:7913,uhorndotbelow:7921,uhorngrave:7915,uhornhookabove:7917,uhorntilde:7919,uhungarumlaut:369,uhungarumlautcyrillic:1267,uinvertedbreve:535,ukatakana:12454,ukatakanahalfwidth:65395,ukcyrillic:1145,ukorean:12636,umacron:363,umacroncyrillic:1263,umacrondieresis:7803,umatragurmukhi:2625,umonospace:65365,underscore:95,underscoredbl:8215,underscoremonospace:65343,underscorevertical:65075,underscorewavy:65103,union:8746,universal:8704,uogonek:371,uparen:9392,upblock:9600,upperdothebrew:1476,upsilon:965,upsilondieresis:971,upsilondieresistonos:944,upsilonlatin:650,upsilontonos:973,uptackbelowcmb:797,uptackmod:724,uragurmukhi:2675,uring:367,ushortcyrillic:1118,usmallhiragana:12357,usmallkatakana:12453,usmallkatakanahalfwidth:65385,ustraightcyrillic:1199,ustraightstrokecyrillic:1201,utilde:361,utildeacute:7801,utildebelow:7797,uubengali:2442,uudeva:2314,uugujarati:2698,uugurmukhi:2570,uumatragurmukhi:2626,uuvowelsignbengali:2498,uuvowelsigndeva:2370,uuvowelsigngujarati:2754,uvowelsignbengali:2497,uvowelsigndeva:2369,uvowelsigngujarati:2753,v:118,vadeva:2357,vagujarati:2741,vagurmukhi:2613,vakatakana:12535,vav:1493,vavdagesh:64309,vavdagesh65:64309,vavdageshhebrew:64309,vavhebrew:1493,vavholam:64331,vavholamhebrew:64331,vavvavhebrew:1520,vavyodhebrew:1521,vcircle:9445,vdotbelow:7807,vecyrillic:1074,veharabic:1700,vehfinalarabic:64363,vehinitialarabic:64364,vehmedialarabic:64365,vekatakana:12537,venus:9792,verticalbar:124,verticallineabovecmb:781,verticallinebelowcmb:809,verticallinelowmod:716,verticallinemod:712,vewarmenian:1406,vhook:651,vikatakana:12536,viramabengali:2509,viramadeva:2381,viramagujarati:2765,visargabengali:2435,visargadeva:2307,visargagujarati:2691,vmonospace:65366,voarmenian:1400,voicediterationhiragana:12446,voicediterationkatakana:12542,voicedmarkkana:12443,voicedmarkkanahalfwidth:65438,vokatakana:12538,vparen:9393,vtilde:7805,vturned:652,vuhiragana:12436,vukatakana:12532,w:119,wacute:7811,waekorean:12633,wahiragana:12431,wakatakana:12527,wakatakanahalfwidth:65436,wakorean:12632,wasmallhiragana:12430,wasmallkatakana:12526,wattosquare:13143,wavedash:12316,wavyunderscorevertical:65076,wawarabic:1608,wawfinalarabic:65262,wawhamzaabovearabic:1572,wawhamzaabovefinalarabic:65158,wbsquare:13277,wcircle:9446,wcircumflex:373,wdieresis:7813,wdotaccent:7815,wdotbelow:7817,wehiragana:12433,weierstrass:8472,wekatakana:12529,wekorean:12638,weokorean:12637,wgrave:7809,whitebullet:9702,whitecircle:9675,whitecircleinverse:9689,whitecornerbracketleft:12302,whitecornerbracketleftvertical:65091,whitecornerbracketright:12303,whitecornerbracketrightvertical:65092,whitediamond:9671,whitediamondcontainingblacksmalldiamond:9672,whitedownpointingsmalltriangle:9663,whitedownpointingtriangle:9661,whiteleftpointingsmalltriangle:9667,whiteleftpointingtriangle:9665,whitelenticularbracketleft:12310,whitelenticularbracketright:12311,whiterightpointingsmalltriangle:9657,whiterightpointingtriangle:9655,whitesmallsquare:9643,whitesmilingface:9786,whitesquare:9633,whitestar:9734,whitetelephone:9743,whitetortoiseshellbracketleft:12312,whitetortoiseshellbracketright:12313,whiteuppointingsmalltriangle:9653,whiteuppointingtriangle:9651,wihiragana:12432,wikatakana:12528,wikorean:12639,wmonospace:65367,wohiragana:12434,wokatakana:12530,wokatakanahalfwidth:65382,won:8361,wonmonospace:65510,wowaenthai:3623,wparen:9394,wring:7832,wsuperior:695,wturned:653,wynn:447,x:120,xabovecmb:829,xbopomofo:12562,xcircle:9447,xdieresis:7821,xdotaccent:7819,xeharmenian:1389,xi:958,xmonospace:65368,xparen:9395,xsuperior:739,y:121,yaadosquare:13134,yabengali:2479,yacute:253,yadeva:2351,yaekorean:12626,yagujarati:2735,yagurmukhi:2607,yahiragana:12420,yakatakana:12516,yakatakanahalfwidth:65428,yakorean:12625,yamakkanthai:3662,yasmallhiragana:12419,yasmallkatakana:12515,yasmallkatakanahalfwidth:65388,yatcyrillic:1123,ycircle:9448,ycircumflex:375,ydieresis:255,ydotaccent:7823,ydotbelow:7925,yeharabic:1610,yehbarreearabic:1746,yehbarreefinalarabic:64431,yehfinalarabic:65266,yehhamzaabovearabic:1574,yehhamzaabovefinalarabic:65162,yehhamzaaboveinitialarabic:65163,yehhamzaabovemedialarabic:65164,yehinitialarabic:65267,yehmedialarabic:65268,yehmeeminitialarabic:64733,yehmeemisolatedarabic:64600,yehnoonfinalarabic:64660,yehthreedotsbelowarabic:1745,yekorean:12630,yen:165,yenmonospace:65509,yeokorean:12629,yeorinhieuhkorean:12678,yerahbenyomohebrew:1450,yerahbenyomolefthebrew:1450,yericyrillic:1099,yerudieresiscyrillic:1273,yesieungkorean:12673,yesieungpansioskorean:12675,yesieungsioskorean:12674,yetivhebrew:1434,ygrave:7923,yhook:436,yhookabove:7927,yiarmenian:1397,yicyrillic:1111,yikorean:12642,yinyang:9775,yiwnarmenian:1410,ymonospace:65369,yod:1497,yoddagesh:64313,yoddageshhebrew:64313,yodhebrew:1497,yodyodhebrew:1522,yodyodpatahhebrew:64287,yohiragana:12424,yoikorean:12681,yokatakana:12520,yokatakanahalfwidth:65430,yokorean:12635,yosmallhiragana:12423,yosmallkatakana:12519,yosmallkatakanahalfwidth:65390,yotgreek:1011,yoyaekorean:12680,yoyakorean:12679,yoyakthai:3618,yoyingthai:3597,yparen:9396,ypogegrammeni:890,ypogegrammenigreekcmb:837,yr:422,yring:7833,ysuperior:696,ytilde:7929,yturned:654,yuhiragana:12422,yuikorean:12684,yukatakana:12518,yukatakanahalfwidth:65429,yukorean:12640,yusbigcyrillic:1131,yusbigiotifiedcyrillic:1133,yuslittlecyrillic:1127,yuslittleiotifiedcyrillic:1129,yusmallhiragana:12421,yusmallkatakana:12517,yusmallkatakanahalfwidth:65389,yuyekorean:12683,yuyeokorean:12682,yyabengali:2527,yyadeva:2399,z:122,zaarmenian:1382,zacute:378,zadeva:2395,zagurmukhi:2651,zaharabic:1592,zahfinalarabic:65222,zahinitialarabic:65223,zahiragana:12374,zahmedialarabic:65224,zainarabic:1586,zainfinalarabic:65200,zakatakana:12470,zaqefgadolhebrew:1429,zaqefqatanhebrew:1428,zarqahebrew:1432,zayin:1494,zayindagesh:64310,zayindageshhebrew:64310,zayinhebrew:1494,zbopomofo:12567,zcaron:382,zcircle:9449,zcircumflex:7825,zcurl:657,zdot:380,zdotaccent:380,zdotbelow:7827,zecyrillic:1079,zedescendercyrillic:1177,zedieresiscyrillic:1247,zehiragana:12380,zekatakana:12476,zero:48,zeroarabic:1632,zerobengali:2534,zerodeva:2406,zerogujarati:2790,zerogurmukhi:2662,zerohackarabic:1632,zeroinferior:8320,zeromonospace:65296,zerooldstyle:63280,zeropersian:1776,zerosuperior:8304,zerothai:3664,zerowidthjoiner:65279,zerowidthnonjoiner:8204,zerowidthspace:8203,zeta:950,zhbopomofo:12563,zhearmenian:1386,zhebrevecyrillic:1218,zhecyrillic:1078,zhedescendercyrillic:1175,zhedieresiscyrillic:1245,zihiragana:12376,zikatakana:12472,zinorhebrew:1454,zlinebelow:7829,zmonospace:65370,zohiragana:12382,zokatakana:12478,zparen:9397,zretroflexhook:656,zstroke:438,zuhiragana:12378,zukatakana:12474,".notdef":0},Ac={space:32,a1:9985,a2:9986,a202:9987,a3:9988,a4:9742,a5:9990,a119:9991,a118:9992,a117:9993,a11:9755,a12:9758,a13:9996,a14:9997,a15:9998,a16:9999,a105:1e4,a17:10001,a18:10002,a19:10003,a20:10004,a21:10005,a22:10006,a23:10007,a24:10008,a25:10009,a26:10010,a27:10011,a28:10012,a6:10013,a7:10014,a8:10015,a9:10016,a10:10017,a29:10018,a30:10019,a31:10020,a32:10021,a33:10022,a34:10023,a35:9733,a36:10025,a37:10026,a38:10027,a39:10028,a40:10029,a41:10030,a42:10031,a43:10032,a44:10033,a45:10034,a46:10035,a47:10036,a48:10037,a49:10038,a50:10039,a51:10040,a52:10041,a53:10042,a54:10043,a55:10044,a56:10045,a57:10046,a58:10047,a59:10048,a60:10049,a61:10050,a62:10051,a63:10052,a64:10053,a65:10054,a66:10055,a67:10056,a68:10057,a69:10058,a70:10059,a71:9679,a72:10061,a73:9632,a74:10063,a203:10064,a75:10065,a204:10066,a76:9650,a77:9660,a78:9670,a79:10070,a81:9687,a82:10072,a83:10073,a84:10074,a97:10075,a98:10076,a99:10077,a100:10078,a101:10081,a102:10082,a103:10083,a104:10084,a106:10085,a107:10086,a108:10087,a112:9827,a111:9830,a110:9829,a109:9824,a120:9312,a121:9313,a122:9314,a123:9315,a124:9316,a125:9317,a126:9318,a127:9319,a128:9320,a129:9321,a130:10102,a131:10103,a132:10104,a133:10105,a134:10106,a135:10107,a136:10108,a137:10109,a138:10110,a139:10111,a140:10112,a141:10113,a142:10114,a143:10115,a144:10116,a145:10117,a146:10118,a147:10119,a148:10120,a149:10121,a150:10122,a151:10123,a152:10124,a153:10125,a154:10126,a155:10127,a156:10128,a157:10129,a158:10130,a159:10131,a160:10132,a161:8594,a163:8596,a164:8597,a196:10136,a165:10137,a192:10138,a166:10139,a167:10140,a168:10141,a169:10142,a170:10143,a171:10144,a172:10145,a173:10146,a162:10147,a174:10148,a175:10149,a176:10150,a177:10151,a178:10152,a179:10153,a193:10154,a180:10155,a199:10156,a181:10157,a200:10158,a182:10159,a201:10161,a183:10162,a184:10163,a197:10164,a185:10165,a194:10166,a198:10167,a186:10168,a195:10169,a187:10170,a188:10171,a189:10172,a190:10173,a191:10174,a89:10088,a90:10089,a93:10090,a94:10091,a91:10092,a92:10093,a205:10094,a85:10095,a206:10096,a86:10097,a87:10098,a88:10099,a95:10100,a96:10101,".notdef":0},Bc=function(){function d(a,b,c,d){if(d instanceof Sc&&d.isNativelyDecodable(b,c)){var e=d.dict,f=e.get("ColorSpace","CS");f=Xa.parse(f,b,c);var g=f.numComps,h=a.sendWithPromise("JpegDecode",[d.getIR(),g]);return h.then(function(a){var b=a.data;return new Mc(b,0,b.length,d.dict)})}return Promise.resolve(d)}function f(a,b,c,d){return a=b+a*c,0>a?0:a>d?d:a}function g(b,d,e,f,h,i,j){this.image=e;var k=e.dict;if(k.has("Filter")){var l=k.get("Filter").name;if("JPXDecode"===l){var m=new hd;m.parseImageProperties(e.stream),e.stream.reset(),e.bitsPerComponent=m.bitsPerComponent,e.numComps=m.componentsCount}else"JBIG2Decode"===l&&(e.bitsPerComponent=1,e.numComps=1)}this.width=k.get("Width","W"),this.height=k.get("Height","H"),(this.width<1||this.height<1)&&c("Invalid image width: "+this.width+" or height: "+this.height),this.interpolate=k.get("Interpolate","I")||!1,this.imageMask=k.get("ImageMask","IM")||!1,this.matte=k.get("Matte")||!1;var n=e.bitsPerComponent;if(n||(n=k.get("BitsPerComponent","BPC"),n||(this.imageMask?n=1:c("Bits per component missing in image: "+this.imageMask))),this.bpc=n,!this.imageMask){var o=k.get("ColorSpace","CS");if(!o)switch(a("JPX images (which do not require color spaces)"),e.numComps){case 1:o=ya.get("DeviceGray");break;case 3:o=ya.get("DeviceRGB");break;case 4:o=ya.get("DeviceCMYK");break;default:c("JPX images with "+this.numComps+" color components not supported.")}this.colorSpace=Xa.parse(o,b,d),this.numComps=this.colorSpace.numComps}if(this.decode=k.get("Decode","D"),this.needsDecode=!1,this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode)||j&&!Xa.isDefaultDecode(this.decode,1))){this.needsDecode=!0;var p=(1<<n)-1;this.decodeCoefficients=[],this.decodeAddends=[];for(var q=0,r=0;q<this.decode.length;q+=2,++r){var s=this.decode[q],t=this.decode[q+1];this.decodeCoefficients[r]=t-s,this.decodeAddends[r]=p*s}}h?this.smask=new g(b,d,h,!1):i&&(D(i)?this.mask=new g(b,d,i,!1,null,null,!0):this.mask=i)}return g.buildImage=function(a,c,e,f,h){var i,j,k=d(a,c,e,f),l=f.dict.get("SMask"),m=f.dict.get("Mask");return l?(i=d(a,c,e,l),j=Promise.resolve(null)):(i=Promise.resolve(null),m?D(m)?j=d(a,c,e,m):C(m)?j=Promise.resolve(m):(b("Unsupported mask format."),j=Promise.resolve(null)):j=Promise.resolve(null)),Promise.all([k,i,j]).then(function(a){var b=a[0],d=a[1],f=a[2];return new g(c,e,b,h,d,f)})},g.resize=function(a,b,d,e,f,g,h,i,j){1!==d&&3!==d&&c("Unsupported component count for resizing.");var k,l,m,n,o=g*h*d,p=i?i:8>=b?new Uint8Array(o):16>=b?new Uint16Array(o):new Uint32Array(o),q=e/g,r=f/h,s=0,t=new Uint16Array(g),u=e*d;for(1!==j&&(j=0),l=0;g>l;l++)t[l]=Math.floor(l*q)*d;if(1===d)for(k=0;h>k;k++)for(m=Math.floor(k*r)*u,l=0;g>l;l++)n=m+t[l],p[s++]=a[n];else if(3===d)for(k=0;h>k;k++)for(m=Math.floor(k*r)*u,l=0;g>l;l++)n=m+t[l],p[s++]=a[n++],p[s++]=a[n++],p[s++]=a[n++],s+=j;return p},g.createMask=function(a,b,c,d,e){var f,g,h=(b+7>>3)*c,i=a.byteLength,j=h===i;if(!d||e&&!j)if(e)for(f=new Uint8Array(h),f.set(a),g=i;h>g;g++)f[g]=255;else f=new Uint8Array(i),f.set(a);else f=a;if(e)for(g=0;i>g;g++)f[g]=~f[g];return{data:f,width:b,height:c}},g.prototype={get drawWidth(){return Math.max(this.width,this.smask&&this.smask.width||0,this.mask&&this.mask.width||0)},get drawHeight(){return Math.max(this.height,this.smask&&this.smask.height||0,this.mask&&this.mask.height||0)},decodeBuffer:function(a){var b,c,d=this.bpc,e=this.numComps,g=this.decodeAddends,h=this.decodeCoefficients,i=(1<<d)-1;if(1!==d){var j=0;for(b=0,c=this.width*this.height;c>b;b++)for(var k=0;e>k;k++)a[j]=f(a[j],g[k],h[k],i),j++}else for(b=0,c=a.length;c>b;b++)a[b]=+!a[b]},getComponents:function(a){var b=this.bpc;if(8===b)return a;var c,d,e=this.width,f=this.height,g=this.numComps,h=e*f*g,i=0,j=8>=b?new Uint8Array(h):16>=b?new Uint16Array(h):new Uint32Array(h),k=e*g,l=(1<<b)-1,m=0;if(1===b)for(var n,o,p,q=0;f>q;q++){for(o=m+(-8&k),p=m+k;o>m;)d=a[i++],j[m]=d>>7&1,j[m+1]=d>>6&1,j[m+2]=d>>5&1,j[m+3]=d>>4&1,j[m+4]=d>>3&1,j[m+5]=d>>2&1,j[m+6]=d>>1&1,j[m+7]=1&d,m+=8;if(p>m)for(d=a[i++],n=128;p>m;)j[m++]=+!!(d&n),n>>=1}else{var r=0;for(d=0,m=0,c=h;c>m;++m){for(m%k===0&&(d=0,r=0);b>r;)d=d<<8|a[i++],r+=8;var s=r-b,t=d>>s;j[m]=0>t?0:t>l?l:t,d&=(1<<s)-1,r=s}}return j},fillOpacity:function(a,b,d,e,f){var h,i,j,k,l,m,n=this.smask,o=this.mask;if(n)i=n.width,j=n.height,h=new Uint8Array(i*j),n.fillGrayBuffer(h),(i!==b||j!==d)&&(h=g.resize(h,n.bpc,1,i,j,b,d));else if(o)if(o instanceof g){for(i=o.width,j=o.height,h=new Uint8Array(i*j),o.numComps=1,o.fillGrayBuffer(h),k=0,l=i*j;l>k;++k)h[k]=255-h[k];(i!==b||j!==d)&&(h=g.resize(h,o.bpc,1,i,j,b,d))}else if(C(o)){h=new Uint8Array(b*d);var p=this.numComps;for(k=0,l=b*d;l>k;++k){var q=0,r=k*p;for(m=0;p>m;++m){var s=f[r+m],t=2*m;if(s<o[t]||s>o[t+1]){q=255;break}}h[k]=q}}else c("Unknown mask format.");if(h)for(k=0,m=3,l=b*e;l>k;++k,m+=4)a[m]=h[k];else for(k=0,m=3,l=b*e;l>k;++k,m+=4)a[m]=255},undoPreblend:function(a,b,c){var d=this.smask&&this.smask.matte;if(d)for(var e,f,g,h=this.colorSpace.getRgb(d,0),i=h[0],j=h[1],k=h[2],l=b*c*4,m=0;l>m;m+=4){var n=a[m+3];if(0!==n){var o=255/n;e=(a[m]-i)*o+i,f=(a[m+1]-j)*o+j,g=(a[m+2]-k)*o+k,a[m]=0>=e?0:e>=255?255:0|e,a[m+1]=0>=f?0:f>=255?255:0|f,a[m+2]=0>=g?0:g>=255?255:0|g}else a[m]=255,a[m+1]=255,a[m+2]=255}},createImageData:function(a){var b,c=this.drawWidth,d=this.drawHeight,f={width:c,height:d},g=this.numComps,h=this.width,i=this.height,j=this.bpc,k=h*g*j+7>>3;if(!a){var l;if("DeviceGray"===this.colorSpace.name&&1===j?l=V.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==j||this.needsDecode||(l=V.RGB_24BPP),l&&!this.smask&&!this.mask&&c===h&&d===i){if(f.kind=l,b=this.getImageBytes(i*k),this.image instanceof Oc)f.data=b;else{var m=new Uint8Array(b.length);m.set(b),f.data=m}if(this.needsDecode){e(l===V.GRAYSCALE_1BPP);for(var n=f.data,o=0,p=n.length;p>o;o++)n[o]^=255}return f}if(this.image instanceof Sc&&!this.smask&&!this.mask&&("DeviceGray"===this.colorSpace.name||"DeviceRGB"===this.colorSpace.name||"DeviceCMYK"===this.colorSpace.name))return f.kind=V.RGB_24BPP,f.data=this.getImageBytes(i*k,c,d,!0),f}b=this.getImageBytes(i*k);var q,r,s=0|b.length/k*d/i,t=this.getComponents(b);return a||this.smask||this.mask?(f.kind=V.RGBA_32BPP,f.data=new Uint8Array(c*d*4),q=1,r=!0,this.fillOpacity(f.data,c,d,s,t)):(f.kind=V.RGB_24BPP,f.data=new Uint8Array(c*d*3),q=0,r=!1),this.needsDecode&&this.decodeBuffer(t),this.colorSpace.fillRgb(f.data,h,i,c,d,s,j,t,q),r&&this.undoPreblend(f.data,c,s),f},fillGrayBuffer:function(a){var b=this.numComps;1!==b&&c("Reading gray scale from a color image: "+b);var d,e,f=this.width,g=this.height,h=this.bpc,i=f*b*h+7>>3,j=this.getImageBytes(g*i),k=this.getComponents(j);if(1!==h){this.needsDecode&&this.decodeBuffer(k),e=f*g;var l=255/((1<<h)-1);for(d=0;e>d;++d)a[d]=l*k[d]|0}else if(e=f*g,this.needsDecode)for(d=0;e>d;++d)a[d]=k[d]-1&255;else for(d=0;e>d;++d)a[d]=255&-k[d]},getImageBytes:function(a,b,c,d){return this.image.reset(),this.image.drawWidth=b||this.width,this.image.drawHeight=c||this.height,this.image.forceRGB=!!d,this.image.getBytes(a)}},g}(),Cc={Courier:600,"Courier-Bold":600,"Courier-BoldOblique":600,"Courier-Oblique":600,Helvetica:{space:278,exclam:278,quotedbl:355,numbersign:556,dollar:556,percent:889,ampersand:667,quoteright:222,parenleft:333,parenright:333,asterisk:389,plus:584,comma:278,hyphen:333,period:278,slash:278,zero:556,one:556,two:556,three:556,four:556,five:556,six:556,seven:556,eight:556,nine:556,colon:278,semicolon:278,less:584,equal:584,greater:584,question:556,at:1015,A:667,B:667,C:722,D:722,E:667,F:611,G:778,H:722,I:278,J:500,K:667,L:556,M:833,N:722,O:778,P:667,Q:778,R:722,S:667,T:611,U:722,V:667,W:944,X:667,Y:667,Z:611,bracketleft:278,backslash:278,bracketright:278,asciicircum:469,underscore:556,quoteleft:222,a:556,b:556,c:500,d:556,e:556,f:278,g:556,h:556,i:222,j:222,k:500,l:222,m:833,n:556,o:556,p:556,q:556,r:333,s:500,t:278,u:556,v:500,w:722,x:500,y:500,z:500,braceleft:334,bar:260,braceright:334,asciitilde:584,exclamdown:333,cent:556,sterling:556,fraction:167,yen:556,florin:556,section:556,currency:556,quotesingle:191,quotedblleft:333,guillemotleft:556,guilsinglleft:333,guilsinglright:333,fi:500,fl:500,endash:556,dagger:556,daggerdbl:556,periodcentered:278,paragraph:537,bullet:350,quotesinglbase:222,quotedblbase:333,quotedblright:333,guillemotright:556,ellipsis:1e3,perthousand:1e3,questiondown:611,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:370,Lslash:556,Oslash:778,OE:1e3,ordmasculine:365,ae:889,dotlessi:278,lslash:222,oslash:611,oe:944,germandbls:611,Idieresis:278,eacute:556,abreve:556,uhungarumlaut:556,ecaron:556,Ydieresis:667,divide:584,Yacute:667,Acircumflex:667,aacute:556,Ucircumflex:722,yacute:500,scommaaccent:500,ecircumflex:556,Uring:722,Udieresis:722,aogonek:556,Uacute:722,uogonek:556,Edieresis:667,Dcroat:722,commaaccent:250,copyright:737,Emacron:667,ccaron:500,aring:556,Ncommaaccent:722,lacute:222,agrave:556,Tcommaaccent:611,Cacute:722,atilde:556,Edotaccent:667,scaron:500,scedilla:500,iacute:278,lozenge:471,Rcaron:722,Gcommaaccent:778,ucircumflex:556,acircumflex:556,Amacron:667,rcaron:333,ccedilla:500,Zdotaccent:611,Thorn:667,Omacron:778,Racute:722,Sacute:667,dcaron:643,Umacron:722,uring:556,threesuperior:333,Ograve:778,Agrave:667,Abreve:667,multiply:584,uacute:556,Tcaron:611,partialdiff:476,ydieresis:500,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:556,edieresis:556,cacute:500,nacute:556,umacron:556,Ncaron:722,Iacute:278,plusminus:584,brokenbar:260,registered:737,Gbreve:778,Idotaccent:278,summation:600,Egrave:667,racute:333,omacron:556,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:222,tcaron:317,eogonek:556,Uogonek:722,Aacute:667,Adieresis:667,egrave:556,zacute:500,iogonek:222,Oacute:778,oacute:556,amacron:556,sacute:500,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:556,twosuperior:333,Odieresis:778,mu:556,igrave:278,ohungarumlaut:556,Eogonek:667,dcroat:556,threequarters:834,Scedilla:667,lcaron:299,Kcommaaccent:667,Lacute:556,trademark:1e3,edotaccent:556,Igrave:278,Imacron:278,Lcaron:556,onehalf:834,lessequal:549,ocircumflex:556,ntilde:556,Uhungarumlaut:722,Eacute:667,emacron:556,gbreve:556,onequarter:834,Scaron:667,Scommaaccent:667,Ohungarumlaut:778,degree:400,ograve:556,Ccaron:722,ugrave:556,radical:453,Dcaron:722,rcommaaccent:333,Ntilde:722,otilde:556,Rcommaaccent:722,Lcommaaccent:556,Atilde:667,Aogonek:667,Aring:667,Otilde:778,zdotaccent:500,Ecaron:667,Iogonek:278,kcommaaccent:500,minus:584,Icircumflex:278,ncaron:556,tcommaaccent:278,logicalnot:584,odieresis:556,udieresis:556,notequal:549,gcommaaccent:556,eth:556,zcaron:500,ncommaaccent:556,onesuperior:333,imacron:278,Euro:556},"Helvetica-Bold":{space:278,exclam:333,quotedbl:474,numbersign:556,dollar:556,percent:889,ampersand:722,quoteright:278,parenleft:333,parenright:333,asterisk:389,plus:584,comma:278,hyphen:333,period:278,slash:278,zero:556,one:556,two:556,three:556,four:556,five:556,six:556,seven:556,eight:556,nine:556,colon:333,semicolon:333,less:584,equal:584,greater:584,question:611,at:975,A:722,B:722,C:722,D:722,E:667,F:611,G:778,H:722,I:278,J:556,K:722,L:611,M:833,N:722,O:778,P:667,Q:778,R:722,S:667,T:611,U:722,V:667,W:944,X:667,Y:667,Z:611,bracketleft:333,backslash:278,bracketright:333,asciicircum:584,underscore:556,quoteleft:278,a:556,b:611,c:556,d:611,e:556,f:333,g:611,h:611,i:278,j:278,k:556,l:278,m:889,n:611,o:611,p:611,q:611,r:389,s:556,t:333,u:611,v:556,w:778,x:556,y:556,z:500,braceleft:389,bar:280,braceright:389,asciitilde:584,exclamdown:333,cent:556,sterling:556,fraction:167,yen:556,florin:556,section:556,currency:556,quotesingle:238,quotedblleft:500,guillemotleft:556,guilsinglleft:333,guilsinglright:333,fi:611,fl:611,endash:556,dagger:556,daggerdbl:556,periodcentered:278,paragraph:556,bullet:350,quotesinglbase:278,quotedblbase:500,quotedblright:500,guillemotright:556,ellipsis:1e3,perthousand:1e3,questiondown:611,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:370,Lslash:611,Oslash:778,OE:1e3,ordmasculine:365,ae:889,dotlessi:278,lslash:278,oslash:611,oe:944,germandbls:611,Idieresis:278,eacute:556,abreve:556,uhungarumlaut:611,ecaron:556,Ydieresis:667,divide:584,Yacute:667,Acircumflex:722,aacute:556,Ucircumflex:722,yacute:556,scommaaccent:556,ecircumflex:556,Uring:722,Udieresis:722,aogonek:556,Uacute:722,uogonek:611,Edieresis:667,Dcroat:722,commaaccent:250,copyright:737,Emacron:667,ccaron:556,aring:556,Ncommaaccent:722,lacute:278,agrave:556,Tcommaaccent:611,Cacute:722,atilde:556,Edotaccent:667,scaron:556,scedilla:556,iacute:278,lozenge:494,Rcaron:722,Gcommaaccent:778,ucircumflex:611,acircumflex:556,Amacron:722,rcaron:389,ccedilla:556,Zdotaccent:611,Thorn:667,Omacron:778,Racute:722,Sacute:667,dcaron:743,Umacron:722,uring:611,threesuperior:333,Ograve:778,Agrave:722,Abreve:722,multiply:584,uacute:611,Tcaron:611,partialdiff:494,ydieresis:556,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:556,edieresis:556,cacute:556,nacute:611,umacron:611,Ncaron:722,Iacute:278,plusminus:584,brokenbar:280,registered:737,Gbreve:778,Idotaccent:278,summation:600,Egrave:667,racute:389,omacron:611,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:278,tcaron:389,eogonek:556,Uogonek:722,Aacute:722,Adieresis:722,egrave:556,zacute:500,iogonek:278,Oacute:778,oacute:611,amacron:556,sacute:556,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:611,twosuperior:333,Odieresis:778,mu:611,igrave:278,ohungarumlaut:611,Eogonek:667,dcroat:611,threequarters:834,Scedilla:667,lcaron:400,Kcommaaccent:722,Lacute:611,trademark:1e3,edotaccent:556,Igrave:278,Imacron:278,Lcaron:611,onehalf:834,lessequal:549,ocircumflex:611,ntilde:611,Uhungarumlaut:722,Eacute:667,emacron:556,gbreve:611,onequarter:834,Scaron:667,Scommaaccent:667,Ohungarumlaut:778,degree:400,ograve:611,Ccaron:722,ugrave:611,radical:549,Dcaron:722,rcommaaccent:389,Ntilde:722,otilde:611,Rcommaaccent:722,Lcommaaccent:611,Atilde:722,Aogonek:722,Aring:722,Otilde:778,zdotaccent:500,Ecaron:667,Iogonek:278,kcommaaccent:556,minus:584,Icircumflex:278,ncaron:611,tcommaaccent:333,logicalnot:584,odieresis:611,udieresis:611,notequal:549,gcommaaccent:611,eth:611,zcaron:500,ncommaaccent:611,onesuperior:333,imacron:278,Euro:556},"Helvetica-BoldOblique":{space:278,exclam:333,quotedbl:474,numbersign:556,dollar:556,percent:889,ampersand:722,quoteright:278,parenleft:333,parenright:333,asterisk:389,plus:584,comma:278,hyphen:333,period:278,slash:278,zero:556,one:556,two:556,three:556,four:556,five:556,six:556,seven:556,eight:556,nine:556,colon:333,semicolon:333,less:584,equal:584,greater:584,question:611,at:975,A:722,B:722,C:722,D:722,E:667,F:611,G:778,H:722,I:278,J:556,K:722,L:611,M:833,N:722,O:778,P:667,Q:778,R:722,S:667,T:611,U:722,V:667,W:944,X:667,Y:667,Z:611,bracketleft:333,backslash:278,bracketright:333,asciicircum:584,underscore:556,quoteleft:278,a:556,b:611,c:556,d:611,e:556,f:333,g:611,h:611,i:278,j:278,k:556,l:278,m:889,n:611,o:611,p:611,q:611,r:389,s:556,t:333,u:611,v:556,w:778,x:556,y:556,z:500,braceleft:389,bar:280,braceright:389,asciitilde:584,exclamdown:333,cent:556,sterling:556,fraction:167,yen:556,florin:556,section:556,currency:556,quotesingle:238,quotedblleft:500,guillemotleft:556,guilsinglleft:333,guilsinglright:333,fi:611,fl:611,endash:556,dagger:556,daggerdbl:556,periodcentered:278,paragraph:556,bullet:350,quotesinglbase:278,quotedblbase:500,quotedblright:500,guillemotright:556,ellipsis:1e3,perthousand:1e3,questiondown:611,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:370,Lslash:611,Oslash:778,OE:1e3,ordmasculine:365,ae:889,dotlessi:278,lslash:278,oslash:611,oe:944,germandbls:611,Idieresis:278,eacute:556,abreve:556,uhungarumlaut:611,ecaron:556,Ydieresis:667,divide:584,Yacute:667,Acircumflex:722,aacute:556,Ucircumflex:722,yacute:556,scommaaccent:556,ecircumflex:556,Uring:722,Udieresis:722,aogonek:556,Uacute:722,uogonek:611,Edieresis:667,Dcroat:722,commaaccent:250,copyright:737,Emacron:667,ccaron:556,aring:556,Ncommaaccent:722,lacute:278,agrave:556,Tcommaaccent:611,Cacute:722,atilde:556,Edotaccent:667,scaron:556,scedilla:556,iacute:278,lozenge:494,Rcaron:722,Gcommaaccent:778,ucircumflex:611,acircumflex:556,Amacron:722,rcaron:389,ccedilla:556,Zdotaccent:611,Thorn:667,Omacron:778,Racute:722,Sacute:667,dcaron:743,Umacron:722,uring:611,threesuperior:333,Ograve:778,Agrave:722,Abreve:722,multiply:584,uacute:611,Tcaron:611,partialdiff:494,ydieresis:556,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:556,edieresis:556,cacute:556,nacute:611,umacron:611,Ncaron:722,Iacute:278,plusminus:584,brokenbar:280,registered:737,Gbreve:778,Idotaccent:278,summation:600,Egrave:667,racute:389,omacron:611,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:278,tcaron:389,eogonek:556,Uogonek:722,Aacute:722,Adieresis:722,egrave:556,zacute:500,iogonek:278,Oacute:778,oacute:611,amacron:556,sacute:556,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:611,twosuperior:333,Odieresis:778,mu:611,igrave:278,ohungarumlaut:611,Eogonek:667,dcroat:611,threequarters:834,Scedilla:667,lcaron:400,Kcommaaccent:722,Lacute:611,trademark:1e3,edotaccent:556,Igrave:278,Imacron:278,Lcaron:611,onehalf:834,lessequal:549,ocircumflex:611,ntilde:611,Uhungarumlaut:722,Eacute:667,emacron:556,gbreve:611,onequarter:834,Scaron:667,Scommaaccent:667,Ohungarumlaut:778,degree:400,ograve:611,Ccaron:722,ugrave:611,radical:549,Dcaron:722,rcommaaccent:389,Ntilde:722,otilde:611,Rcommaaccent:722,Lcommaaccent:611,Atilde:722,Aogonek:722,Aring:722,Otilde:778,zdotaccent:500,Ecaron:667,Iogonek:278,kcommaaccent:556,minus:584,Icircumflex:278,ncaron:611,tcommaaccent:333,logicalnot:584,odieresis:611,udieresis:611,notequal:549,gcommaaccent:611,eth:611,zcaron:500,ncommaaccent:611,onesuperior:333,imacron:278,Euro:556},"Helvetica-Oblique":{space:278,exclam:278,quotedbl:355,numbersign:556,dollar:556,percent:889,ampersand:667,quoteright:222,parenleft:333,parenright:333,asterisk:389,plus:584,comma:278,hyphen:333,period:278,slash:278,zero:556,one:556,two:556,three:556,four:556,five:556,six:556,seven:556,eight:556,nine:556,colon:278,semicolon:278,less:584,equal:584,greater:584,question:556,at:1015,A:667,B:667,C:722,D:722,E:667,F:611,G:778,H:722,I:278,J:500,K:667,L:556,M:833,N:722,O:778,P:667,Q:778,R:722,S:667,T:611,U:722,V:667,W:944,X:667,Y:667,Z:611,bracketleft:278,backslash:278,bracketright:278,asciicircum:469,underscore:556,quoteleft:222,a:556,b:556,c:500,d:556,e:556,f:278,g:556,h:556,i:222,j:222,k:500,l:222,m:833,n:556,o:556,p:556,q:556,r:333,s:500,t:278,u:556,v:500,w:722,x:500,y:500,z:500,braceleft:334,bar:260,braceright:334,asciitilde:584,exclamdown:333,cent:556,sterling:556,fraction:167,yen:556,florin:556,section:556,currency:556,quotesingle:191,quotedblleft:333,guillemotleft:556,guilsinglleft:333,guilsinglright:333,fi:500,fl:500,endash:556,dagger:556,daggerdbl:556,periodcentered:278,paragraph:537,bullet:350,quotesinglbase:222,quotedblbase:333,quotedblright:333,guillemotright:556,ellipsis:1e3,perthousand:1e3,questiondown:611,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:370,Lslash:556,Oslash:778,OE:1e3,ordmasculine:365,ae:889,dotlessi:278,lslash:222,oslash:611,oe:944,germandbls:611,Idieresis:278,eacute:556,abreve:556,uhungarumlaut:556,ecaron:556,Ydieresis:667,divide:584,Yacute:667,Acircumflex:667,aacute:556,Ucircumflex:722,yacute:500,scommaaccent:500,ecircumflex:556,Uring:722,Udieresis:722,aogonek:556,Uacute:722,uogonek:556,Edieresis:667,Dcroat:722,commaaccent:250,copyright:737,Emacron:667,ccaron:500,aring:556,Ncommaaccent:722,lacute:222,agrave:556,Tcommaaccent:611,Cacute:722,atilde:556,Edotaccent:667,scaron:500,scedilla:500,iacute:278,lozenge:471,Rcaron:722,Gcommaaccent:778,ucircumflex:556,acircumflex:556,Amacron:667,rcaron:333,ccedilla:500,Zdotaccent:611,Thorn:667,Omacron:778,Racute:722,Sacute:667,dcaron:643,Umacron:722,uring:556,threesuperior:333,Ograve:778,Agrave:667,Abreve:667,multiply:584,uacute:556,Tcaron:611,partialdiff:476,ydieresis:500,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:556,edieresis:556,cacute:500,nacute:556,umacron:556,Ncaron:722,Iacute:278,plusminus:584,brokenbar:260,registered:737,Gbreve:778,Idotaccent:278,summation:600,Egrave:667,racute:333,omacron:556,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:222,tcaron:317,eogonek:556,Uogonek:722,Aacute:667,Adieresis:667,egrave:556,zacute:500,iogonek:222,Oacute:778,oacute:556,amacron:556,sacute:500,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:556,twosuperior:333,Odieresis:778,mu:556,igrave:278,ohungarumlaut:556,Eogonek:667,dcroat:556,threequarters:834,Scedilla:667,lcaron:299,Kcommaaccent:667,Lacute:556,trademark:1e3,edotaccent:556,Igrave:278,Imacron:278,Lcaron:556,onehalf:834,lessequal:549,ocircumflex:556,ntilde:556,Uhungarumlaut:722,Eacute:667,emacron:556,gbreve:556,onequarter:834,Scaron:667,Scommaaccent:667,Ohungarumlaut:778,degree:400,ograve:556,Ccaron:722,ugrave:556,radical:453,Dcaron:722,rcommaaccent:333,Ntilde:722,otilde:556,Rcommaaccent:722,Lcommaaccent:556,Atilde:667,Aogonek:667,Aring:667,Otilde:778,zdotaccent:500,Ecaron:667,Iogonek:278,kcommaaccent:500,minus:584,Icircumflex:278,ncaron:556,tcommaaccent:278,logicalnot:584,odieresis:556,udieresis:556,notequal:549,gcommaaccent:556,eth:556,zcaron:500,ncommaaccent:556,onesuperior:333,imacron:278,Euro:556},Symbol:{space:250,exclam:333,universal:713,numbersign:500,existential:549,percent:833,ampersand:778,suchthat:439,parenleft:333,parenright:333,asteriskmath:500,
-plus:549,comma:250,minus:549,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:278,semicolon:278,less:549,equal:549,greater:549,question:444,congruent:549,Alpha:722,Beta:667,Chi:722,Delta:612,Epsilon:611,Phi:763,Gamma:603,Eta:722,Iota:333,theta1:631,Kappa:722,Lambda:686,Mu:889,Nu:722,Omicron:722,Pi:768,Theta:741,Rho:556,Sigma:592,Tau:611,Upsilon:690,sigma1:439,Omega:768,Xi:645,Psi:795,Zeta:611,bracketleft:333,therefore:863,bracketright:333,perpendicular:658,underscore:500,radicalex:500,alpha:631,beta:549,chi:549,delta:494,epsilon:439,phi:521,gamma:411,eta:603,iota:329,phi1:603,kappa:549,lambda:549,mu:576,nu:521,omicron:549,pi:549,theta:521,rho:549,sigma:603,tau:439,upsilon:576,omega1:713,omega:686,xi:493,psi:686,zeta:494,braceleft:480,bar:200,braceright:480,similar:549,Euro:750,Upsilon1:620,minute:247,lessequal:549,fraction:167,infinity:713,florin:500,club:753,diamond:753,heart:753,spade:753,arrowboth:1042,arrowleft:987,arrowup:603,arrowright:987,arrowdown:603,degree:400,plusminus:549,second:411,greaterequal:549,multiply:549,proportional:713,partialdiff:494,bullet:460,divide:549,notequal:549,equivalence:549,approxequal:549,ellipsis:1e3,arrowvertex:603,arrowhorizex:1e3,carriagereturn:658,aleph:823,Ifraktur:686,Rfraktur:795,weierstrass:987,circlemultiply:768,circleplus:768,emptyset:823,intersection:768,union:768,propersuperset:713,reflexsuperset:713,notsubset:713,propersubset:713,reflexsubset:713,element:713,notelement:713,angle:768,gradient:713,registerserif:790,copyrightserif:790,trademarkserif:890,product:823,radical:549,dotmath:250,logicalnot:713,logicaland:603,logicalor:603,arrowdblboth:1042,arrowdblleft:987,arrowdblup:603,arrowdblright:987,arrowdbldown:603,lozenge:494,angleleft:329,registersans:790,copyrightsans:790,trademarksans:786,summation:713,parenlefttp:384,parenleftex:384,parenleftbt:384,bracketlefttp:384,bracketleftex:384,bracketleftbt:384,bracelefttp:494,braceleftmid:494,braceleftbt:494,braceex:494,angleright:329,integral:274,integraltp:686,integralex:686,integralbt:686,parenrighttp:384,parenrightex:384,parenrightbt:384,bracketrighttp:384,bracketrightex:384,bracketrightbt:384,bracerighttp:494,bracerightmid:494,bracerightbt:494,apple:790},"Times-Roman":{space:250,exclam:333,quotedbl:408,numbersign:500,dollar:500,percent:833,ampersand:778,quoteright:333,parenleft:333,parenright:333,asterisk:500,plus:564,comma:250,hyphen:333,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:278,semicolon:278,less:564,equal:564,greater:564,question:444,at:921,A:722,B:667,C:667,D:722,E:611,F:556,G:722,H:722,I:333,J:389,K:722,L:611,M:889,N:722,O:722,P:556,Q:722,R:667,S:556,T:611,U:722,V:722,W:944,X:722,Y:722,Z:611,bracketleft:333,backslash:278,bracketright:333,asciicircum:469,underscore:500,quoteleft:333,a:444,b:500,c:444,d:500,e:444,f:333,g:500,h:500,i:278,j:278,k:500,l:278,m:778,n:500,o:500,p:500,q:500,r:333,s:389,t:278,u:500,v:500,w:722,x:500,y:500,z:444,braceleft:480,bar:200,braceright:480,asciitilde:541,exclamdown:333,cent:500,sterling:500,fraction:167,yen:500,florin:500,section:500,currency:500,quotesingle:180,quotedblleft:444,guillemotleft:500,guilsinglleft:333,guilsinglright:333,fi:556,fl:556,endash:500,dagger:500,daggerdbl:500,periodcentered:250,paragraph:453,bullet:350,quotesinglbase:333,quotedblbase:444,quotedblright:444,guillemotright:500,ellipsis:1e3,perthousand:1e3,questiondown:444,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:889,ordfeminine:276,Lslash:611,Oslash:722,OE:889,ordmasculine:310,ae:667,dotlessi:278,lslash:278,oslash:500,oe:722,germandbls:500,Idieresis:333,eacute:444,abreve:444,uhungarumlaut:500,ecaron:444,Ydieresis:722,divide:564,Yacute:722,Acircumflex:722,aacute:444,Ucircumflex:722,yacute:500,scommaaccent:389,ecircumflex:444,Uring:722,Udieresis:722,aogonek:444,Uacute:722,uogonek:500,Edieresis:611,Dcroat:722,commaaccent:250,copyright:760,Emacron:611,ccaron:444,aring:444,Ncommaaccent:722,lacute:278,agrave:444,Tcommaaccent:611,Cacute:667,atilde:444,Edotaccent:611,scaron:389,scedilla:389,iacute:278,lozenge:471,Rcaron:667,Gcommaaccent:722,ucircumflex:500,acircumflex:444,Amacron:722,rcaron:333,ccedilla:444,Zdotaccent:611,Thorn:556,Omacron:722,Racute:667,Sacute:556,dcaron:588,Umacron:722,uring:500,threesuperior:300,Ograve:722,Agrave:722,Abreve:722,multiply:564,uacute:500,Tcaron:611,partialdiff:476,ydieresis:500,Nacute:722,icircumflex:278,Ecircumflex:611,adieresis:444,edieresis:444,cacute:444,nacute:500,umacron:500,Ncaron:722,Iacute:333,plusminus:564,brokenbar:200,registered:760,Gbreve:722,Idotaccent:333,summation:600,Egrave:611,racute:333,omacron:500,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:667,lcommaaccent:278,tcaron:326,eogonek:444,Uogonek:722,Aacute:722,Adieresis:722,egrave:444,zacute:444,iogonek:278,Oacute:722,oacute:500,amacron:444,sacute:389,idieresis:278,Ocircumflex:722,Ugrave:722,Delta:612,thorn:500,twosuperior:300,Odieresis:722,mu:500,igrave:278,ohungarumlaut:500,Eogonek:611,dcroat:500,threequarters:750,Scedilla:556,lcaron:344,Kcommaaccent:722,Lacute:611,trademark:980,edotaccent:444,Igrave:333,Imacron:333,Lcaron:611,onehalf:750,lessequal:549,ocircumflex:500,ntilde:500,Uhungarumlaut:722,Eacute:611,emacron:444,gbreve:500,onequarter:750,Scaron:556,Scommaaccent:556,Ohungarumlaut:722,degree:400,ograve:500,Ccaron:667,ugrave:500,radical:453,Dcaron:722,rcommaaccent:333,Ntilde:722,otilde:500,Rcommaaccent:667,Lcommaaccent:611,Atilde:722,Aogonek:722,Aring:722,Otilde:722,zdotaccent:444,Ecaron:611,Iogonek:333,kcommaaccent:500,minus:564,Icircumflex:333,ncaron:500,tcommaaccent:278,logicalnot:564,odieresis:500,udieresis:500,notequal:549,gcommaaccent:500,eth:500,zcaron:444,ncommaaccent:500,onesuperior:300,imacron:278,Euro:500},"Times-Bold":{space:250,exclam:333,quotedbl:555,numbersign:500,dollar:500,percent:1e3,ampersand:833,quoteright:333,parenleft:333,parenright:333,asterisk:500,plus:570,comma:250,hyphen:333,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:333,semicolon:333,less:570,equal:570,greater:570,question:500,at:930,A:722,B:667,C:722,D:722,E:667,F:611,G:778,H:778,I:389,J:500,K:778,L:667,M:944,N:722,O:778,P:611,Q:778,R:722,S:556,T:667,U:722,V:722,W:1e3,X:722,Y:722,Z:667,bracketleft:333,backslash:278,bracketright:333,asciicircum:581,underscore:500,quoteleft:333,a:500,b:556,c:444,d:556,e:444,f:333,g:500,h:556,i:278,j:333,k:556,l:278,m:833,n:556,o:500,p:556,q:556,r:444,s:389,t:333,u:556,v:500,w:722,x:500,y:500,z:444,braceleft:394,bar:220,braceright:394,asciitilde:520,exclamdown:333,cent:500,sterling:500,fraction:167,yen:500,florin:500,section:500,currency:500,quotesingle:278,quotedblleft:500,guillemotleft:500,guilsinglleft:333,guilsinglright:333,fi:556,fl:556,endash:500,dagger:500,daggerdbl:500,periodcentered:250,paragraph:540,bullet:350,quotesinglbase:333,quotedblbase:500,quotedblright:500,guillemotright:500,ellipsis:1e3,perthousand:1e3,questiondown:500,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:300,Lslash:667,Oslash:778,OE:1e3,ordmasculine:330,ae:722,dotlessi:278,lslash:278,oslash:500,oe:722,germandbls:556,Idieresis:389,eacute:444,abreve:500,uhungarumlaut:556,ecaron:444,Ydieresis:722,divide:570,Yacute:722,Acircumflex:722,aacute:500,Ucircumflex:722,yacute:500,scommaaccent:389,ecircumflex:444,Uring:722,Udieresis:722,aogonek:500,Uacute:722,uogonek:556,Edieresis:667,Dcroat:722,commaaccent:250,copyright:747,Emacron:667,ccaron:444,aring:500,Ncommaaccent:722,lacute:278,agrave:500,Tcommaaccent:667,Cacute:722,atilde:500,Edotaccent:667,scaron:389,scedilla:389,iacute:278,lozenge:494,Rcaron:722,Gcommaaccent:778,ucircumflex:556,acircumflex:500,Amacron:722,rcaron:444,ccedilla:444,Zdotaccent:667,Thorn:611,Omacron:778,Racute:722,Sacute:556,dcaron:672,Umacron:722,uring:556,threesuperior:300,Ograve:778,Agrave:722,Abreve:722,multiply:570,uacute:556,Tcaron:667,partialdiff:494,ydieresis:500,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:500,edieresis:444,cacute:444,nacute:556,umacron:556,Ncaron:722,Iacute:389,plusminus:570,brokenbar:220,registered:747,Gbreve:778,Idotaccent:389,summation:600,Egrave:667,racute:444,omacron:500,Zacute:667,Zcaron:667,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:278,tcaron:416,eogonek:444,Uogonek:722,Aacute:722,Adieresis:722,egrave:444,zacute:444,iogonek:278,Oacute:778,oacute:500,amacron:500,sacute:389,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:556,twosuperior:300,Odieresis:778,mu:556,igrave:278,ohungarumlaut:500,Eogonek:667,dcroat:556,threequarters:750,Scedilla:556,lcaron:394,Kcommaaccent:778,Lacute:667,trademark:1e3,edotaccent:444,Igrave:389,Imacron:389,Lcaron:667,onehalf:750,lessequal:549,ocircumflex:500,ntilde:556,Uhungarumlaut:722,Eacute:667,emacron:444,gbreve:500,onequarter:750,Scaron:556,Scommaaccent:556,Ohungarumlaut:778,degree:400,ograve:500,Ccaron:722,ugrave:556,radical:549,Dcaron:722,rcommaaccent:444,Ntilde:722,otilde:500,Rcommaaccent:722,Lcommaaccent:667,Atilde:722,Aogonek:722,Aring:722,Otilde:778,zdotaccent:444,Ecaron:667,Iogonek:389,kcommaaccent:556,minus:570,Icircumflex:389,ncaron:556,tcommaaccent:333,logicalnot:570,odieresis:500,udieresis:556,notequal:549,gcommaaccent:500,eth:500,zcaron:444,ncommaaccent:556,onesuperior:300,imacron:278,Euro:500},"Times-BoldItalic":{space:250,exclam:389,quotedbl:555,numbersign:500,dollar:500,percent:833,ampersand:778,quoteright:333,parenleft:333,parenright:333,asterisk:500,plus:570,comma:250,hyphen:333,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:333,semicolon:333,less:570,equal:570,greater:570,question:500,at:832,A:667,B:667,C:667,D:722,E:667,F:667,G:722,H:778,I:389,J:500,K:667,L:611,M:889,N:722,O:722,P:611,Q:722,R:667,S:556,T:611,U:722,V:667,W:889,X:667,Y:611,Z:611,bracketleft:333,backslash:278,bracketright:333,asciicircum:570,underscore:500,quoteleft:333,a:500,b:500,c:444,d:500,e:444,f:333,g:500,h:556,i:278,j:278,k:500,l:278,m:778,n:556,o:500,p:500,q:500,r:389,s:389,t:278,u:556,v:444,w:667,x:500,y:444,z:389,braceleft:348,bar:220,braceright:348,asciitilde:570,exclamdown:389,cent:500,sterling:500,fraction:167,yen:500,florin:500,section:500,currency:500,quotesingle:278,quotedblleft:500,guillemotleft:500,guilsinglleft:333,guilsinglright:333,fi:556,fl:556,endash:500,dagger:500,daggerdbl:500,periodcentered:250,paragraph:500,bullet:350,quotesinglbase:333,quotedblbase:500,quotedblright:500,guillemotright:500,ellipsis:1e3,perthousand:1e3,questiondown:500,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:944,ordfeminine:266,Lslash:611,Oslash:722,OE:944,ordmasculine:300,ae:722,dotlessi:278,lslash:278,oslash:500,oe:722,germandbls:500,Idieresis:389,eacute:444,abreve:500,uhungarumlaut:556,ecaron:444,Ydieresis:611,divide:570,Yacute:611,Acircumflex:667,aacute:500,Ucircumflex:722,yacute:444,scommaaccent:389,ecircumflex:444,Uring:722,Udieresis:722,aogonek:500,Uacute:722,uogonek:556,Edieresis:667,Dcroat:722,commaaccent:250,copyright:747,Emacron:667,ccaron:444,aring:500,Ncommaaccent:722,lacute:278,agrave:500,Tcommaaccent:611,Cacute:667,atilde:500,Edotaccent:667,scaron:389,scedilla:389,iacute:278,lozenge:494,Rcaron:667,Gcommaaccent:722,ucircumflex:556,acircumflex:500,Amacron:667,rcaron:389,ccedilla:444,Zdotaccent:611,Thorn:611,Omacron:722,Racute:667,Sacute:556,dcaron:608,Umacron:722,uring:556,threesuperior:300,Ograve:722,Agrave:667,Abreve:667,multiply:570,uacute:556,Tcaron:611,partialdiff:494,ydieresis:444,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:500,edieresis:444,cacute:444,nacute:556,umacron:556,Ncaron:722,Iacute:389,plusminus:570,brokenbar:220,registered:747,Gbreve:722,Idotaccent:389,summation:600,Egrave:667,racute:389,omacron:500,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:667,lcommaaccent:278,tcaron:366,eogonek:444,Uogonek:722,Aacute:667,Adieresis:667,egrave:444,zacute:389,iogonek:278,Oacute:722,oacute:500,amacron:500,sacute:389,idieresis:278,Ocircumflex:722,Ugrave:722,Delta:612,thorn:500,twosuperior:300,Odieresis:722,mu:576,igrave:278,ohungarumlaut:500,Eogonek:667,dcroat:500,threequarters:750,Scedilla:556,lcaron:382,Kcommaaccent:667,Lacute:611,trademark:1e3,edotaccent:444,Igrave:389,Imacron:389,Lcaron:611,onehalf:750,lessequal:549,ocircumflex:500,ntilde:556,Uhungarumlaut:722,Eacute:667,emacron:444,gbreve:500,onequarter:750,Scaron:556,Scommaaccent:556,Ohungarumlaut:722,degree:400,ograve:500,Ccaron:667,ugrave:556,radical:549,Dcaron:722,rcommaaccent:389,Ntilde:722,otilde:500,Rcommaaccent:667,Lcommaaccent:611,Atilde:667,Aogonek:667,Aring:667,Otilde:722,zdotaccent:389,Ecaron:667,Iogonek:389,kcommaaccent:500,minus:606,Icircumflex:389,ncaron:556,tcommaaccent:278,logicalnot:606,odieresis:500,udieresis:556,notequal:549,gcommaaccent:500,eth:500,zcaron:389,ncommaaccent:556,onesuperior:300,imacron:278,Euro:500},"Times-Italic":{space:250,exclam:333,quotedbl:420,numbersign:500,dollar:500,percent:833,ampersand:778,quoteright:333,parenleft:333,parenright:333,asterisk:500,plus:675,comma:250,hyphen:333,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:333,semicolon:333,less:675,equal:675,greater:675,question:500,at:920,A:611,B:611,C:667,D:722,E:611,F:611,G:722,H:722,I:333,J:444,K:667,L:556,M:833,N:667,O:722,P:611,Q:722,R:611,S:500,T:556,U:722,V:611,W:833,X:611,Y:556,Z:556,bracketleft:389,backslash:278,bracketright:389,asciicircum:422,underscore:500,quoteleft:333,a:500,b:500,c:444,d:500,e:444,f:278,g:500,h:500,i:278,j:278,k:444,l:278,m:722,n:500,o:500,p:500,q:500,r:389,s:389,t:278,u:500,v:444,w:667,x:444,y:444,z:389,braceleft:400,bar:275,braceright:400,asciitilde:541,exclamdown:389,cent:500,sterling:500,fraction:167,yen:500,florin:500,section:500,currency:500,quotesingle:214,quotedblleft:556,guillemotleft:500,guilsinglleft:333,guilsinglright:333,fi:500,fl:500,endash:500,dagger:500,daggerdbl:500,periodcentered:250,paragraph:523,bullet:350,quotesinglbase:333,quotedblbase:556,quotedblright:556,guillemotright:500,ellipsis:889,perthousand:1e3,questiondown:500,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:889,AE:889,ordfeminine:276,Lslash:556,Oslash:722,OE:944,ordmasculine:310,ae:667,dotlessi:278,lslash:278,oslash:500,oe:667,germandbls:500,Idieresis:333,eacute:444,abreve:500,uhungarumlaut:500,ecaron:444,Ydieresis:556,divide:675,Yacute:556,Acircumflex:611,aacute:500,Ucircumflex:722,yacute:444,scommaaccent:389,ecircumflex:444,Uring:722,Udieresis:722,aogonek:500,Uacute:722,uogonek:500,Edieresis:611,Dcroat:722,commaaccent:250,copyright:760,Emacron:611,ccaron:444,aring:500,Ncommaaccent:667,lacute:278,agrave:500,Tcommaaccent:556,Cacute:667,atilde:500,Edotaccent:611,scaron:389,scedilla:389,iacute:278,lozenge:471,Rcaron:611,Gcommaaccent:722,ucircumflex:500,acircumflex:500,Amacron:611,rcaron:389,ccedilla:444,Zdotaccent:556,Thorn:611,Omacron:722,Racute:611,Sacute:500,dcaron:544,Umacron:722,uring:500,threesuperior:300,Ograve:722,Agrave:611,Abreve:611,multiply:675,uacute:500,Tcaron:556,partialdiff:476,ydieresis:444,Nacute:667,icircumflex:278,Ecircumflex:611,adieresis:500,edieresis:444,cacute:444,nacute:500,umacron:500,Ncaron:667,Iacute:333,plusminus:675,brokenbar:275,registered:760,Gbreve:722,Idotaccent:333,summation:600,Egrave:611,racute:389,omacron:500,Zacute:556,Zcaron:556,greaterequal:549,Eth:722,Ccedilla:667,lcommaaccent:278,tcaron:300,eogonek:444,Uogonek:722,Aacute:611,Adieresis:611,egrave:444,zacute:389,iogonek:278,Oacute:722,oacute:500,amacron:500,sacute:389,idieresis:278,Ocircumflex:722,Ugrave:722,Delta:612,thorn:500,twosuperior:300,Odieresis:722,mu:500,igrave:278,ohungarumlaut:500,Eogonek:611,dcroat:500,threequarters:750,Scedilla:500,lcaron:300,Kcommaaccent:667,Lacute:556,trademark:980,edotaccent:444,Igrave:333,Imacron:333,Lcaron:611,onehalf:750,lessequal:549,ocircumflex:500,ntilde:500,Uhungarumlaut:722,Eacute:611,emacron:444,gbreve:500,onequarter:750,Scaron:500,Scommaaccent:500,Ohungarumlaut:722,degree:400,ograve:500,Ccaron:667,ugrave:500,radical:453,Dcaron:722,rcommaaccent:389,Ntilde:667,otilde:500,Rcommaaccent:611,Lcommaaccent:556,Atilde:611,Aogonek:611,Aring:611,Otilde:722,zdotaccent:389,Ecaron:611,Iogonek:333,kcommaaccent:444,minus:675,Icircumflex:333,ncaron:500,tcommaaccent:278,logicalnot:675,odieresis:500,udieresis:500,notequal:549,gcommaaccent:500,eth:500,zcaron:389,ncommaaccent:500,onesuperior:300,imacron:278,Euro:500},ZapfDingbats:{space:278,a1:974,a2:961,a202:974,a3:980,a4:719,a5:789,a119:790,a118:791,a117:690,a11:960,a12:939,a13:549,a14:855,a15:911,a16:933,a105:911,a17:945,a18:974,a19:755,a20:846,a21:762,a22:761,a23:571,a24:677,a25:763,a26:760,a27:759,a28:754,a6:494,a7:552,a8:537,a9:577,a10:692,a29:786,a30:788,a31:788,a32:790,a33:793,a34:794,a35:816,a36:823,a37:789,a38:841,a39:823,a40:833,a41:816,a42:831,a43:923,a44:744,a45:723,a46:749,a47:790,a48:792,a49:695,a50:776,a51:768,a52:792,a53:759,a54:707,a55:708,a56:682,a57:701,a58:826,a59:815,a60:789,a61:789,a62:707,a63:687,a64:696,a65:689,a66:786,a67:787,a68:713,a69:791,a70:785,a71:791,a72:873,a73:761,a74:762,a203:762,a75:759,a204:759,a76:892,a77:892,a78:788,a79:784,a81:438,a82:138,a83:277,a84:415,a97:392,a98:392,a99:668,a100:668,a89:390,a90:390,a93:317,a94:317,a91:276,a92:276,a205:509,a85:509,a206:410,a86:410,a87:234,a88:234,a95:334,a96:334,a101:732,a102:544,a103:544,a104:910,a106:667,a107:760,a108:760,a112:776,a111:595,a110:694,a109:626,a120:788,a121:788,a122:788,a123:788,a124:788,a125:788,a126:788,a127:788,a128:788,a129:788,a130:788,a131:788,a132:788,a133:788,a134:788,a135:788,a136:788,a137:788,a138:788,a139:788,a140:788,a141:788,a142:788,a143:788,a144:788,a145:788,a146:788,a147:788,a148:788,a149:788,a150:788,a151:788,a152:788,a153:788,a154:788,a155:788,a156:788,a157:788,a158:788,a159:788,a160:894,a161:838,a163:1016,a164:458,a196:748,a165:924,a192:748,a166:918,a167:927,a168:928,a169:928,a170:834,a171:873,a172:828,a173:924,a162:924,a174:917,a175:930,a176:931,a177:463,a178:883,a179:836,a193:836,a180:867,a199:867,a181:696,a200:696,a182:874,a201:874,a183:760,a184:946,a197:771,a185:865,a194:771,a198:888,a186:967,a195:888,a187:831,a188:873,a189:927,a190:970,a191:918}},Dc={},Ec=1e3,Fc=function(){function d(a,b,c){this.lexer=a,this.allowStreams=b,this.xref=c,this.imageCache={},this.refill()}return d.prototype={refill:function(){this.buf1=this.lexer.getObj(),this.buf2=this.lexer.getObj()},shift:function(){A(this.buf2,"ID")?(this.buf1=this.buf2,this.buf2=null):(this.buf1=this.buf2,this.buf2=this.lexer.getObj())},tryShift:function(){try{return this.shift(),!0}catch(a){if(a instanceof ja)throw a;return!1}},getObj:function(b){var d=this.buf1;if(this.shift(),d instanceof za)switch(d.cmd){case"BI":return this.makeInlineImage(b);case"[":for(var e=[];!A(this.buf1,"]")&&!R(this.buf1);)e.push(this.getObj(b));return R(this.buf1)&&c("End of file inside array"),this.shift(),e;case"<<":for(var f=new Aa(this.xref);!A(this.buf1,">>")&&!R(this.buf1);)if(z(this.buf1)){var g=this.buf1.name;if(this.shift(),R(this.buf1))break;f.set(g,this.getObj(b))}else a("Malformed dictionary: key must be a name object"),this.shift();return R(this.buf1)&&c("End of file inside dictionary"),A(this.buf2,"stream")?this.allowStreams?this.makeStream(f,b):f:(this.shift(),f);default:return d}if(w(d)){var h=d;if(w(this.buf1)&&A(this.buf2,"R")){var i=new Ba(h,this.buf1);return this.shift(),this.shift(),i}return h}if(y(d)){var j=d;return b&&(j=b.decryptString(j)),j}return d},findDefaultInlineStreamEnd:function(a){for(var b,c,d,f,g=69,h=73,i=32,j=10,k=13,l=a.pos,m=0;-1!==(b=a.getByte());)if(0===m)m=b===g?1:0;else if(1===m)m=b===h?2:0;else if(e(2===m),b===i||b===j||b===k){for(d=5,f=a.peekBytes(d),c=0;d>c;c++)if(b=f[c],b!==j&&b!==k&&(i>b||b>127)){m=0;break}if(2===m)break}else m=0;return a.pos-4-l},findDCTDecodeInlineStreamEnd:function(a){for(var c,d,e,f=a.pos,g=!1;-1!==(c=a.getByte());)if(255===c){switch(a.getByte()){case 0:break;case 255:a.skip(-1);break;case 217:g=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:d=a.getUint16(),d>2?a.skip(d-2):a.skip(-2)}if(g)break}return e=a.pos-f,-1===c?(b("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead."),a.skip(-e),this.findDefaultInlineStreamEnd(a)):(this.inlineStreamSkipEI(a),e)},findASCII85DecodeInlineStreamEnd:function(a){for(var c,d,e=126,f=62,g=a.pos;-1!==(c=a.getByte());)if(c===e&&a.peekByte()===f){a.skip();break}return d=a.pos-g,-1===c?(b("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead."),a.skip(-d),this.findDefaultInlineStreamEnd(a)):(this.inlineStreamSkipEI(a),d)},findASCIIHexDecodeInlineStreamEnd:function(a){for(var c,d,e=62,f=a.pos;-1!==(c=a.getByte())&&c!==e;);return d=a.pos-f,-1===c?(b("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead."),a.skip(-d),this.findDefaultInlineStreamEnd(a)):(this.inlineStreamSkipEI(a),d)},inlineStreamSkipEI:function(a){for(var b,c=69,d=73,e=0;-1!==(b=a.getByte());)if(0===e)e=b===c?1:0;else if(1===e)e=b===d?2:0;else if(2===e)break},makeInlineImage:function(a){for(var b=this.lexer,d=b.stream,e=new Aa(this.xref);!A(this.buf1,"ID")&&!R(this.buf1);){z(this.buf1)||c("Dictionary key must be a name object");var f=this.buf1.name;if(this.shift(),R(this.buf1))break;e.set(f,this.getObj(a))}var g,h=e.get("Filter","F");z(h)?g=h.name:C(h)&&z(h[0])&&(g=h[0].name);var i,j,k,l=d.pos;i="DCTDecode"===g||"DCT"===g?this.findDCTDecodeInlineStreamEnd(d):"ASCII85Decide"===g||"A85"===g?this.findASCII85DecodeInlineStreamEnd(d):"ASCIIHexDecode"===g||"AHx"===g?this.findASCIIHexDecodeInlineStreamEnd(d):this.findDefaultInlineStreamEnd(d);var m,n=d.makeSubStream(l,i,e);if(Ec>i){var o=n.getBytes();n.reset();var p=1,q=0;for(j=0,k=o.length;k>j;++j)p+=255&o[j],q+=p;if(m=q%65521<<16|p%65521,this.imageCache.adler32===m)return this.buf2=za.get("EI"),this.shift(),this.imageCache[m].reset(),this.imageCache[m]}return a&&(n=a.createStream(n,i)),n=this.filter(n,e,i),n.dict=e,void 0!==m&&(n.cacheKey="inline_"+i+"_"+m,this.imageCache[m]=n),this.buf2=za.get("EI"),this.shift(),n},makeStream:function(b,d){var e=this.lexer,f=e.stream;e.skipToNextLine();var g=f.pos-1,h=b.get("Length");if(w(h)||(a("Bad "+h+" attribute in stream"),h=0),f.pos=g+h,e.nextChar(),this.tryShift()&&A(this.buf2,"endstream"))this.shift();else{f.pos=g;for(var i,j,k=2048,l=9,m=[101,110,100,115,116,114,101,97,109],n=0,o=!1;f.pos<f.end;){var p=f.peekBytes(k),q=p.length-l;if(0>=q)break;for(o=!1,i=0,j=0;q>i;i++){var r=p[i];if(r!==m[j])i-=j,j=0;else if(j++,j>=l){i++,o=!0;break}}if(o){n+=i-l,f.pos+=i-l;break}n+=q,f.pos+=q}o||c("Missing endstream"),h=n,e.nextChar(),this.shift(),this.shift()}return this.shift(),f=f.makeSubStream(g,h,b),d&&(f=d.createStream(f,h)),f=this.filter(f,b,h),f.dict=b,f},filter:function(a,b,d){var e=b.get("Filter","F"),f=b.get("DecodeParms","DP");if(z(e))return this.makeFilter(a,e.name,d,f);var g=d;if(C(e))for(var h=e,i=f,j=0,k=h.length;k>j;++j)e=h[j],z(e)||c("Bad filter name: "+e),f=null,C(i)&&j in i&&(f=i[j]),a=this.makeFilter(a,e.name,g,f),g=null;return a},makeFilter:function(a,c,d,e){if(0===a.dict.get("Length")&&!d)return b('Empty "'+c+'" stream.'),new _c(a);try{e&&this.xref&&(e=this.xref.fetchIfRef(e));var f=this.xref.stats.streamTypes;if("FlateDecode"===c||"Fl"===c)return f[Y.FLATE]=!0,e?new Rc(new Qc(a,d),d,e):new Qc(a,d);if("LZWDecode"===c||"LZW"===c){f[Y.LZW]=!0;var g=1;return e?(e.has("EarlyChange")&&(g=e.get("EarlyChange")),new Rc(new $c(a,d,g),d,e)):new $c(a,d,g)}return"DCTDecode"===c||"DCT"===c?(f[Y.DCT]=!0,new Sc(a,d,a.dict,this.xref)):"JPXDecode"===c||"JPX"===c?(f[Y.JPX]=!0,new Tc(a,d,a.dict)):"ASCII85Decode"===c||"A85"===c?(f[Y.A85]=!0,new Wc(a,d)):"ASCIIHexDecode"===c||"AHx"===c?(f[Y.AHX]=!0,new Xc(a,d)):"CCITTFaxDecode"===c||"CCF"===c?(f[Y.CCF]=!0,new Zc(a,d,e)):"RunLengthDecode"===c||"RL"===c?(f[Y.RL]=!0,new Yc(a,d)):"JBIG2Decode"===c?(f[Y.JBIG]=!0,new Uc(a,d,a.dict)):(b('filter "'+c+'" not supported yet'),a)}catch(h){if(h instanceof ja)throw h;return b('Invalid stream: "'+h+'"'),new _c(a)}}},d}(),Gc=function(){function a(a,b){this.stream=a,this.nextChar(),this.strBuf=[],this.knownCommands=b}function d(a){return a>=48&&57>=a?15&a:a>=65&&70>=a||a>=97&&102>=a?(15&a)+9:-1}a.isSpace=function(a){return 32===a||9===a||13===a||10===a};var e=[1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];return a.prototype={nextChar:function(){return this.currentChar=this.stream.getByte()},peekChar:function(){return this.stream.peekByte()},getNumber:function(){var a=this.currentChar,d=!1,e=0,f=1;if(45===a?(f=-1,a=this.nextChar(),45===a&&(a=this.nextChar())):43===a&&(a=this.nextChar()),46===a&&(e=10,a=this.nextChar()),48>a||a>57)return c("Invalid number: "+String.fromCharCode(a)),0;for(var g=a-48,h=0,i=1;(a=this.nextChar())>=0;)if(a>=48&&57>=a){var j=a-48;d?h=10*h+j:(0!==e&&(e*=10),g=10*g+j)}else if(46===a){if(0!==e)break;e=1}else if(45===a)b("Badly formated number");else{if(69!==a&&101!==a)break;if(a=this.peekChar(),43===a||45===a)i=45===a?-1:1,this.nextChar();else if(48>a||a>57)break;d=!0}return 0!==e&&(g/=e),d&&(g*=Math.pow(10,i*h)),f*g},getString:function(){var a=1,c=!1,d=this.strBuf;d.length=0;for(var e=this.nextChar();;){var f=!1;switch(0|e){case-1:b("Unterminated string"),c=!0;break;case 40:++a,d.push("(");break;case 41:0===--a?(this.nextChar(),c=!0):d.push(")");break;case 92:switch(e=this.nextChar()){case-1:b("Unterminated string"),c=!0;break;case 110:d.push("\n");break;case 114:d.push("\r");break;case 116:d.push("   ");break;case 98:d.push("\b");break;case 102:d.push("\f");break;case 92:case 40:case 41:d.push(String.fromCharCode(e));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:var g=15&e;e=this.nextChar(),f=!0,e>=48&&55>=e&&(g=(g<<3)+(15&e),e=this.nextChar(),e>=48&&55>=e&&(f=!1,g=(g<<3)+(15&e))),d.push(String.fromCharCode(g));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:d.push(String.fromCharCode(e))}break;default:d.push(String.fromCharCode(e))}if(c)break;f||(e=this.nextChar())}return d.join("")},getName:function(){var a,f=this.strBuf;for(f.length=0;(a=this.nextChar())>=0&&!e[a];)if(35===a){a=this.nextChar();var g=d(a);if(-1!==g){var h=d(this.nextChar());-1===h&&c("Illegal digit in hex char in name: "+h),f.push(String.fromCharCode(g<<4|h))}else f.push("#",String.fromCharCode(a))}else f.push(String.fromCharCode(a));return f.length>127&&b("name token is longer than allowed by the spec: "+f.length),ya.get(f.join(""))},getHexString:function(){var a=this.strBuf;a.length=0;for(var c,f,g=this.currentChar,h=!0;;){if(0>g){b("Unterminated hex string");break}if(62===g){this.nextChar();break}if(1!==e[g]){if(h){if(c=d(g),-1===c){b('Ignoring invalid character "'+g+'" in hex string'),g=this.nextChar();continue}}else{if(f=d(g),-1===f){b('Ignoring invalid character "'+g+'" in hex string'),g=this.nextChar();continue}a.push(String.fromCharCode(c<<4|f))}h=!h,g=this.nextChar()}else g=this.nextChar()}return a.join("")},getObj:function(){for(var a=!1,b=this.currentChar;;){if(0>b)return Dc;if(a)(10===b||13===b)&&(a=!1);else if(37===b)a=!0;else if(1!==e[b])break;b=this.nextChar()}switch(0|b){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:return this.nextChar(),za.get("[");case 93:return this.nextChar(),za.get("]");case 60:return b=this.nextChar(),60===b?(this.nextChar(),za.get("<<")):this.getHexString();case 62:return b=this.nextChar(),62===b?(this.nextChar(),za.get(">>")):za.get(">");case 123:return this.nextChar(),za.get("{");case 125:return this.nextChar(),za.get("}");case 41:c("Illegal character: "+b)}for(var d=String.fromCharCode(b),f=this.knownCommands,g=f&&void 0!==f[d];(b=this.nextChar())>=0&&!e[b];){var h=d+String.fromCharCode(b);if(g&&void 0===f[h])break;128===d.length&&c("Command token too long: "+d.length),d=h,g=f&&void 0!==f[d]}return"true"===d?!0:"false"===d?!1:"null"===d?null:za.get(d)},skipToNextLine:function(){for(var a=this.currentChar;a>=0;){if(13===a){a=this.nextChar(),10===a&&this.nextChar();break}if(10===a){this.nextChar();break}a=this.nextChar()}}},a}(),Hc={create:function(a){function b(a,b){var c=j.get(a);if(w(c)&&(b?c>=0:c>0))return c;throw new Error('The "'+a+'" parameter in the linearization dictionary is invalid.')}function c(){var a,b,c=j.get("H");if(C(c)&&(2===(a=c.length)||4===a)){for(var d=0;a>d;d++)if(!(w(b=c[d])&&b>0))throw new Error("Hint ("+d+") in the linearization dictionary is invalid.");return c}throw new Error("Hint array in the linearization dictionary is invalid.")}var d,e,f=new Fc(new Gc(a),!1,null),g=f.getObj(),h=f.getObj(),i=f.getObj(),j=f.getObj();if(!(w(g)&&w(h)&&A(i,"obj")&&B(j)&&x(d=j.get("Linearized"))&&d>0))return null;if((e=b("L"))!==a.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:e,hints:c(),objectNumberFirst:b("O"),endFirst:b("E"),numPages:b("N"),mainXRefEntriesOffset:b("T"),pageFirst:j.has("P")?b("P",!0):0}}},Ic=function(){function a(a){this.lexer=a,this.operators=[],this.token=null,this.prev=null}return a.prototype={nextToken:function(){this.prev=this.token,this.token=this.lexer.getToken()},accept:function(a){return this.token.type===a?(this.nextToken(),!0):!1},expect:function(a){return this.accept(a)?!0:void c("Unexpected symbol: found "+this.token.type+" expected "+a+".")},parse:function(){return this.nextToken(),this.expect(Jc.LBRACE),this.parseBlock(),this.expect(Jc.RBRACE),this.operators},parseBlock:function(){for(;;)if(this.accept(Jc.NUMBER))this.operators.push(this.prev.value);else if(this.accept(Jc.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(Jc.LBRACE))return;this.parseCondition()}},parseCondition:function(){var a=this.operators.length;if(this.operators.push(null,null),this.parseBlock(),this.expect(Jc.RBRACE),this.accept(Jc.IF))this.operators[a]=this.operators.length,this.operators[a+1]="jz";else if(this.accept(Jc.LBRACE)){var b=this.operators.length;this.operators.push(null,null);var d=this.operators.length;this.parseBlock(),this.expect(Jc.RBRACE),this.expect(Jc.IFELSE),this.operators[b]=this.operators.length,this.operators[b+1]="j",this.operators[a]=d,this.operators[a+1]="jz"}else c("PS Function: error parsing conditional.")}},a}(),Jc={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5},Kc=function(){function a(a,b){this.type=a,this.value=b}var b={};return a.getOperator=function(c){var d=b[c];return d?d:b[c]=new a(Jc.OPERATOR,c)},a.LBRACE=new a(Jc.LBRACE,"{"),a.RBRACE=new a(Jc.RBRACE,"}"),a.IF=new a(Jc.IF,"IF"),a.IFELSE=new a(Jc.IFELSE,"IFELSE"),a}(),Lc=function(){function a(a){this.stream=a,this.nextChar(),this.strBuf=[]}return a.prototype={nextChar:function(){return this.currentChar=this.stream.getByte()},getToken:function(){for(var a=!1,b=this.currentChar;;){
-if(0>b)return Dc;if(a)(10===b||13===b)&&(a=!1);else if(37===b)a=!0;else if(!Gc.isSpace(b))break;b=this.nextChar()}switch(0|b){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new Kc(Jc.NUMBER,this.getNumber());case 123:return this.nextChar(),Kc.LBRACE;case 125:return this.nextChar(),Kc.RBRACE}var c=this.strBuf;for(c.length=0,c[0]=String.fromCharCode(b);(b=this.nextChar())>=0&&(b>=65&&90>=b||b>=97&&122>=b);)c.push(String.fromCharCode(b));var d=c.join("");switch(d.toLowerCase()){case"if":return Kc.IF;case"ifelse":return Kc.IFELSE;default:return Kc.getOperator(d)}},getNumber:function(){var a=this.currentChar,b=this.strBuf;for(b.length=0,b[0]=String.fromCharCode(a);(a=this.nextChar())>=0&&(a>=48&&57>=a||45===a||46===a);)b.push(String.fromCharCode(a));var d=parseFloat(b.join(""));return isNaN(d)&&c("Invalid floating point number: "+d),d}},a}(),Mc=function(){function a(a,b,c,d){this.bytes=a instanceof Uint8Array?a:new Uint8Array(a),this.start=b||0,this.pos=this.start,this.end=b+c||this.bytes.length,this.dict=d}return a.prototype={get length(){return this.end-this.start},get isEmpty(){return 0===this.length},getByte:function(){return this.pos>=this.end?-1:this.bytes[this.pos++]},getUint16:function(){var a=this.getByte(),b=this.getByte();return-1===a||-1===b?-1:(a<<8)+b},getInt32:function(){var a=this.getByte(),b=this.getByte(),c=this.getByte(),d=this.getByte();return(a<<24)+(b<<16)+(c<<8)+d},getBytes:function(a){var b=this.bytes,c=this.pos,d=this.end;if(!a)return b.subarray(c,d);var e=c+a;return e>d&&(e=d),this.pos=e,b.subarray(c,e)},peekByte:function(){var a=this.getByte();return this.pos--,a},peekBytes:function(a){var b=this.getBytes(a);return this.pos-=b.length,b},skip:function(a){a||(a=1),this.pos+=a},reset:function(){this.pos=this.start},moveStart:function(){this.start=this.pos},makeSubStream:function(b,c,d){return new a(this.bytes.buffer,b,c,d)},isStream:!0},a}(),Nc=function(){function a(a){for(var b=a.length,c=new Uint8Array(b),d=0;b>d;++d)c[d]=a.charCodeAt(d);Mc.call(this,c)}return a.prototype=Mc.prototype,a}(),Oc=function(){function a(a){if(this.pos=0,this.bufferLength=0,this.eof=!1,this.buffer=b,this.minBufferLength=512,a)for(;this.minBufferLength<a;)this.minBufferLength*=2}var b=new Uint8Array(0);return a.prototype={get isEmpty(){for(;!this.eof&&0===this.bufferLength;)this.readBlock();return 0===this.bufferLength},ensureBuffer:function(a){var b=this.buffer;if(a<=b.byteLength)return b;for(var c=this.minBufferLength;a>c;)c*=2;var d=new Uint8Array(c);return d.set(b),this.buffer=d},getByte:function(){for(var a=this.pos;this.bufferLength<=a;){if(this.eof)return-1;this.readBlock()}return this.buffer[this.pos++]},getUint16:function(){var a=this.getByte(),b=this.getByte();return-1===a||-1===b?-1:(a<<8)+b},getInt32:function(){var a=this.getByte(),b=this.getByte(),c=this.getByte(),d=this.getByte();return(a<<24)+(b<<16)+(c<<8)+d},getBytes:function(a){var b,c=this.pos;if(a){for(this.ensureBuffer(c+a),b=c+a;!this.eof&&this.bufferLength<b;)this.readBlock();var d=this.bufferLength;b>d&&(b=d)}else{for(;!this.eof;)this.readBlock();b=this.bufferLength}return this.pos=b,this.buffer.subarray(c,b)},peekByte:function(){var a=this.getByte();return this.pos--,a},peekBytes:function(a){var b=this.getBytes(a);return this.pos-=b.length,b},makeSubStream:function(a,b,c){for(var d=a+b;this.bufferLength<=d&&!this.eof;)this.readBlock();return new Mc(this.buffer,a,b,c)},skip:function(a){a||(a=1),this.pos+=a},reset:function(){this.pos=0},getBaseStreams:function(){return this.str&&this.str.getBaseStreams?this.str.getBaseStreams():[]}},a}(),Pc=function(){function a(a){this.streams=a,Oc.call(this,null)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){var a=this.streams;if(0===a.length)return void(this.eof=!0);var b=a.shift(),c=b.getBytes(),d=this.bufferLength,e=d+c.length,f=this.ensureBuffer(e);f.set(c,d),this.bufferLength=e},a.prototype.getBaseStreams=function(){for(var a=[],b=0,c=this.streams.length;c>b;b++){var d=this.streams[b];d.getBaseStreams&&na.appendToArray(a,d.getBaseStreams())}return a},a}(),Qc=function(){function a(a,b){this.str=a,this.dict=a.dict;var d=a.getByte(),e=a.getByte();(-1===d||-1===e)&&c("Invalid header in flate stream: "+d+", "+e),8!==(15&d)&&c("Unknown compression method in flate stream: "+d+", "+e),((d<<8)+e)%31!==0&&c("Bad FCHECK in flate stream: "+d+", "+e),32&e&&c("FDICT bit set in flate stream: "+d+", "+e),this.codeSize=0,this.codeBuf=0,Oc.call(this,b)}var b=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),e=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),f=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],g=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];return a.prototype=Object.create(Oc.prototype),a.prototype.getBits=function(a){for(var b,d=this.str,e=this.codeSize,f=this.codeBuf;a>e;)-1===(b=d.getByte())&&c("Bad encoding in flate stream"),f|=b<<e,e+=8;return b=f&(1<<a)-1,this.codeBuf=f>>a,this.codeSize=e-=a,b},a.prototype.getCode=function(a){for(var b,d=this.str,e=a[0],f=a[1],g=this.codeSize,h=this.codeBuf;f>g&&-1!==(b=d.getByte());)h|=b<<g,g+=8;var i=e[h&(1<<f)-1],j=i>>16,k=65535&i;return(1>j||j>g)&&c("Bad encoding in flate stream"),this.codeBuf=h>>j,this.codeSize=g-j,k},a.prototype.generateHuffmanTable=function(a){var b,c=a.length,d=0;for(b=0;c>b;++b)a[b]>d&&(d=a[b]);for(var e=1<<d,f=new Int32Array(e),g=1,h=0,i=2;d>=g;++g,h<<=1,i<<=1)for(var j=0;c>j;++j)if(a[j]===g){var k=0,l=h;for(b=0;g>b;++b)k=k<<1|1&l,l>>=1;for(b=k;e>b;b+=i)f[b]=g<<16|j;++h}return[f,d]},a.prototype.readBlock=function(){var a,h,i=this.str,j=this.getBits(3);if(1&j&&(this.eof=!0),j>>=1,0!==j){var k,l;if(1===j)k=f,l=g;else if(2===j){var m,n=this.getBits(5)+257,o=this.getBits(5)+1,p=this.getBits(4)+4,q=new Uint8Array(b.length);for(m=0;p>m;++m)q[b[m]]=this.getBits(3);var r=this.generateHuffmanTable(q);h=0,m=0;for(var s,t,u,v=n+o,w=new Uint8Array(v);v>m;){var x=this.getCode(r);if(16===x)s=2,t=3,u=h;else if(17===x)s=3,t=3,u=h=0;else{if(18!==x){w[m++]=h=x;continue}s=7,t=11,u=h=0}for(var y=this.getBits(s)+t;y-- >0;)w[m++]=u}k=this.generateHuffmanTable(w.subarray(0,n)),l=this.generateHuffmanTable(w.subarray(n,v))}else c("Unknown block type in flate stream");a=this.buffer;for(var z=a?a.length:0,A=this.bufferLength;;){var B=this.getCode(k);if(256>B)A+1>=z&&(a=this.ensureBuffer(A+1),z=a.length),a[A++]=B;else{if(256===B)return void(this.bufferLength=A);B-=257,B=d[B];var C=B>>16;C>0&&(C=this.getBits(C)),h=(65535&B)+C,B=this.getCode(l),B=e[B],C=B>>16,C>0&&(C=this.getBits(C));var D=(65535&B)+C;A+h>=z&&(a=this.ensureBuffer(A+h),z=a.length);for(var E=0;h>E;++E,++A)a[A]=a[A-D]}}}else{var F;-1===(F=i.getByte())&&c("Bad block header in flate stream");var G=F;-1===(F=i.getByte())&&c("Bad block header in flate stream"),G|=F<<8,-1===(F=i.getByte())&&c("Bad block header in flate stream");var H=F;-1===(F=i.getByte())&&c("Bad block header in flate stream"),H|=F<<8,H===(65535&~G)||0===G&&0===H||c("Bad uncompressed block length in flate stream"),this.codeBuf=0,this.codeSize=0;var I=this.bufferLength;a=this.ensureBuffer(I+G);var J=I+G;if(this.bufferLength=J,0===G)-1===i.peekByte()&&(this.eof=!0);else for(var K=I;J>K;++K){if(-1===(F=i.getByte())){this.eof=!0;break}a[K]=F}}},a}(),Rc=function(){function a(a,b,d){var e=this.predictor=d.get("Predictor")||1;if(1>=e)return a;2!==e&&(10>e||e>15)&&c("Unsupported predictor: "+e),2===e?this.readBlock=this.readBlockTiff:this.readBlock=this.readBlockPng,this.str=a,this.dict=a.dict;var f=this.colors=d.get("Colors")||1,g=this.bits=d.get("BitsPerComponent")||8,h=this.columns=d.get("Columns")||1;return this.pixBytes=f*g+7>>3,this.rowBytes=h*f*g+7>>3,Oc.call(this,b),this}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlockTiff=function(){var a=this.rowBytes,b=this.bufferLength,c=this.ensureBuffer(b+a),d=this.bits,e=this.colors,f=this.str.getBytes(a);if(this.eof=!f.length,!this.eof){var g,h=0,i=0,j=0,k=0,l=b;if(1===d)for(g=0;a>g;++g){var m=f[g];h=h<<8|m,c[l++]=255&(m^h>>e),h&=65535}else if(8===d){for(g=0;e>g;++g)c[l++]=f[g];for(;a>g;++g)c[l]=c[l-e]+f[g],l++}else{var n=new Uint8Array(e+1),o=(1<<d)-1,p=0,q=b,r=this.columns;for(g=0;r>g;++g)for(var s=0;e>s;++s)d>j&&(h=h<<8|255&f[p++],j+=8),n[s]=n[s]+(h>>j-d)&o,j-=d,i=i<<d|n[s],k+=d,k>=8&&(c[q++]=i>>k-8&255,k-=8);k>0&&(c[q++]=(i<<8-k)+(h&(1<<8-k)-1))}this.bufferLength+=a}},a.prototype.readBlockPng=function(){var a=this.rowBytes,b=this.pixBytes,d=this.str.getByte(),e=this.str.getBytes(a);if(this.eof=!e.length,!this.eof){var f=this.bufferLength,g=this.ensureBuffer(f+a),h=g.subarray(f-a,f);0===h.length&&(h=new Uint8Array(a));var i,j,k,l=f;switch(d){case 0:for(i=0;a>i;++i)g[l++]=e[i];break;case 1:for(i=0;b>i;++i)g[l++]=e[i];for(;a>i;++i)g[l]=g[l-b]+e[i]&255,l++;break;case 2:for(i=0;a>i;++i)g[l++]=h[i]+e[i]&255;break;case 3:for(i=0;b>i;++i)g[l++]=(h[i]>>1)+e[i];for(;a>i;++i)g[l]=(h[i]+g[l-b]>>1)+e[i]&255,l++;break;case 4:for(i=0;b>i;++i)j=h[i],k=e[i],g[l++]=j+k;for(;a>i;++i){j=h[i];var m=h[i-b],n=g[l-b],o=n+j-m,p=o-n;0>p&&(p=-p);var q=o-j;0>q&&(q=-q);var r=o-m;0>r&&(r=-r),k=e[i],q>=p&&r>=p?g[l++]=n+k:r>=q?g[l++]=j+k:g[l++]=m+k}break;default:c("Unsupported predictor: "+d)}this.bufferLength+=a}},a}(),Sc=function(){function a(a,b,c,d){for(var e;-1!==(e=a.getByte());)if(255===e){a.skip(-1);break}this.stream=a,this.maybeLength=b,this.dict=c,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),Object.defineProperty(a.prototype,"bytes",{get:function(){return g(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0}),a.prototype.ensureBuffer=function(a){if(!this.bufferLength)try{var b=new gd;if(this.forceRGB&&this.dict&&C(this.dict.get("Decode"))){for(var d=this.dict.get("Decode"),e=this.dict.get("BitsPerComponent")||8,f=d.length,g=new Int32Array(f),h=!1,i=(1<<e)-1,j=0;f>j;j+=2)g[j]=256*(d[j+1]-d[j])|0,g[j+1]=d[j]*i|0,(256!==g[j]||0!==g[j+1])&&(h=!0);h&&(b.decodeTransform=g)}b.parse(this.bytes);var k=b.getData(this.drawWidth,this.drawHeight,this.forceRGB);this.buffer=k,this.bufferLength=k.length,this.eof=!0}catch(l){c("JPEG error: "+l)}},a.prototype.getBytes=function(a){return this.ensureBuffer(),this.buffer},a.prototype.getIR=function(){return PDFJS.createObjectURL(this.bytes,"image/jpeg")},a.prototype.isNativelySupported=function(a,b){var c=Xa.parse(this.dict.get("ColorSpace","CS"),a,b);return("DeviceGray"===c.name||"DeviceRGB"===c.name)&&c.isDefaultDecode(this.dict.get("Decode","D"))},a.prototype.isNativelyDecodable=function(a,b){var c=Xa.parse(this.dict.get("ColorSpace","CS"),a,b);return(1===c.numComps||3===c.numComps)&&c.isDefaultDecode(this.dict.get("Decode","D"))},a}(),Tc=function(){function a(a,b,c){this.stream=a,this.maybeLength=b,this.dict=c,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),Object.defineProperty(a.prototype,"bytes",{get:function(){return g(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0}),a.prototype.ensureBuffer=function(a){if(!this.bufferLength){var b=new hd;b.parse(this.bytes);var c=b.width,d=b.height,e=b.componentsCount,f=b.tiles.length;if(1===f)this.buffer=b.tiles[0].items;else{for(var g=new Uint8Array(c*d*e),h=0;f>h;h++)for(var i=b.tiles[h],j=i.width,k=i.height,l=i.left,m=i.top,n=i.items,o=0,p=(c*m+l)*e,q=c*e,r=j*e,s=0;k>s;s++){var t=n.subarray(o,o+r);g.set(t,p),o+=r,p+=q}this.buffer=g}this.bufferLength=this.buffer.length,this.eof=!0}},a}(),Uc=function(){function a(a,b,c){this.stream=a,this.maybeLength=b,this.dict=c,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),Object.defineProperty(a.prototype,"bytes",{get:function(){return g(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0}),a.prototype.ensureBuffer=function(a){if(!this.bufferLength){var c=new id,d=[],e=this.dict.xref,f=e.fetchIfRef(this.dict.get("DecodeParms"));if(C(f)&&(f.length>1&&b("JBIG2 - 'DecodeParms' array with multiple elements not supported."),f=e.fetchIfRef(f[0])),f&&f.has("JBIG2Globals")){var g=f.get("JBIG2Globals"),h=g.getBytes();d.push({data:h,start:0,end:h.length})}d.push({data:this.bytes,start:0,end:this.bytes.length});for(var i=c.parseChunks(d),j=i.length,k=0;j>k;k++)i[k]^=255;this.buffer=i,this.bufferLength=j,this.eof=!0}},a}(),Vc=function(){function a(a,b,c){this.str=a,this.dict=a.dict,this.decrypt=c,this.nextChunk=null,this.initialized=!1,Oc.call(this,b)}var b=512;return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){var a;if(this.initialized?a=this.nextChunk:(a=this.str.getBytes(b),this.initialized=!0),!a||0===a.length)return void(this.eof=!0);this.nextChunk=this.str.getBytes(b);var c=this.nextChunk&&this.nextChunk.length>0,d=this.decrypt;a=d(a,!c);var e,f=this.bufferLength,g=a.length,h=this.ensureBuffer(f+g);for(e=0;g>e;e++)h[f++]=a[e];this.bufferLength=f},a}(),Wc=function(){function a(a,b){this.str=a,this.dict=a.dict,this.input=new Uint8Array(5),b&&(b=.8*b),Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){for(var a=126,b=122,c=-1,d=this.str,e=d.getByte();Gc.isSpace(e);)e=d.getByte();if(e===c||e===a)return void(this.eof=!0);var f,g,h=this.bufferLength;if(e===b){for(f=this.ensureBuffer(h+4),g=0;4>g;++g)f[h+g]=0;this.bufferLength+=4}else{var i=this.input;for(i[0]=e,g=1;5>g;++g){for(e=d.getByte();Gc.isSpace(e);)e=d.getByte();if(i[g]=e,e===c||e===a)break}if(f=this.ensureBuffer(h+g-1),this.bufferLength+=g-1,5>g){for(;5>g;++g)i[g]=117;this.eof=!0}var j=0;for(g=0;5>g;++g)j=85*j+(i[g]-33);for(g=3;g>=0;--g)f[h+g]=255&j,j>>=8}},a}(),Xc=function(){function a(a,b){this.str=a,this.dict=a.dict,this.firstDigit=-1,b&&(b=.5*b),Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){var a=8e3,b=this.str.getBytes(a);if(!b.length)return void(this.eof=!0);for(var c=b.length+1>>1,d=this.ensureBuffer(this.bufferLength+c),e=this.bufferLength,f=this.firstDigit,g=0,h=b.length;h>g;g++){var i,j=b[g];if(j>=48&&57>=j)i=15&j;else{if(!(j>=65&&70>=j||j>=97&&102>=j)){if(62===j){this.eof=!0;break}continue}i=(15&j)+9}0>f?f=i:(d[e++]=f<<4|i,f=-1)}f>=0&&this.eof&&(d[e++]=f<<4,f=-1),this.firstDigit=f,this.bufferLength=e},a}(),Yc=function(){function a(a,b){this.str=a,this.dict=a.dict,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){var a=this.str.getBytes(2);if(!a||a.length<2||128===a[0])return void(this.eof=!0);var b,c=this.bufferLength,d=a[0];if(128>d){if(b=this.ensureBuffer(c+d+1),b[c++]=a[1],d>0){var e=this.str.getBytes(d);b.set(e,c),c+=d}}else{d=257-d;var f=a[1];b=this.ensureBuffer(c+d+1);for(var g=0;d>g;g++)b[c++]=f}this.bufferLength=c},a}(),Zc=function(){function b(a,b,c){this.str=a,this.dict=a.dict,c=c||Aa.empty,this.encoding=c.get("K")||0,this.eoline=c.get("EndOfLine")||!1,this.byteAlign=c.get("EncodedByteAlign")||!1,this.columns=c.get("Columns")||1728,this.rows=c.get("Rows")||0;var d=c.get("EndOfBlock");(null===d||void 0===d)&&(d=!0),this.eoblock=d,this.black=c.get("BlackIs1")||!1,this.codingLine=new Uint32Array(this.columns+1),this.refLine=new Uint32Array(this.columns+2),this.codingLine[0]=this.columns,this.codingPos=0,this.row=0,this.nextLine2D=this.encoding<0,this.inputBits=0,this.inputBuf=0,this.outputBits=0;for(var e;0===(e=this.lookBits(12));)this.eatBits(1);1===e&&this.eatBits(12),this.encoding>0&&(this.nextLine2D=!this.lookBits(1),this.eatBits(1)),Oc.call(this,b)}var c=-2,d=0,e=1,f=2,g=3,h=4,i=5,j=6,k=7,l=8,m=[[-1,-1],[-1,-1],[7,l],[7,k],[6,j],[6,j],[6,i],[6,i],[4,d],[4,d],[4,d],[4,d],[4,d],[4,d],[4,d],[4,d],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f]],n=[[-1,-1],[12,c],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],o=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],p=[[-1,-1],[-1,-1],[12,c],[12,c],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],q=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],r=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];return b.prototype=Object.create(Oc.prototype),b.prototype.readBlock=function(){for(;!this.eof;){var a=this.lookChar();this.ensureBuffer(this.bufferLength+1),this.buffer[this.bufferLength++]=a}},b.prototype.addPixels=function(b,c){var d=this.codingLine,e=this.codingPos;b>d[e]&&(b>this.columns&&(a("row is wrong length"),this.err=!0,b=this.columns),1&e^c&&++e,d[e]=b),this.codingPos=e},b.prototype.addPixelsNeg=function(b,c){var d=this.codingLine,e=this.codingPos;if(b>d[e])b>this.columns&&(a("row is wrong length"),this.err=!0,b=this.columns),1&e^c&&++e,d[e]=b;else if(b<d[e]){for(0>b&&(a("invalid code"),this.err=!0,b=0);e>0&&b<d[e-1];)--e;d[e]=b}this.codingPos=e},b.prototype.lookChar=function(){var b,c,m,n,o=this.refLine,p=this.codingLine,q=this.columns;if(0===this.outputBits){if(this.eof)return null;this.err=!1;var r,s,t;if(this.nextLine2D){for(n=0;p[n]<q;++n)o[n]=p[n];for(o[n++]=q,o[n]=q,p[0]=0,this.codingPos=0,b=0,c=0;p[this.codingPos]<q;)switch(r=this.getTwoDimCode()){case d:this.addPixels(o[b+1],c),o[b+1]<q&&(b+=2);break;case e:if(r=s=0,c){do r+=t=this.getBlackCode();while(t>=64);do s+=t=this.getWhiteCode();while(t>=64)}else{do r+=t=this.getWhiteCode();while(t>=64);do s+=t=this.getBlackCode();while(t>=64)}for(this.addPixels(p[this.codingPos]+r,c),p[this.codingPos]<q&&this.addPixels(p[this.codingPos]+s,1^c);o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case k:if(this.addPixels(o[b]+3,c),c^=1,p[this.codingPos]<q)for(++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case i:if(this.addPixels(o[b]+2,c),c^=1,p[this.codingPos]<q)for(++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case g:if(this.addPixels(o[b]+1,c),c^=1,p[this.codingPos]<q)for(++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case f:if(this.addPixels(o[b],c),c^=1,p[this.codingPos]<q)for(++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case l:if(this.addPixelsNeg(o[b]-3,c),c^=1,p[this.codingPos]<q)for(b>0?--b:++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case j:if(this.addPixelsNeg(o[b]-2,c),c^=1,p[this.codingPos]<q)for(b>0?--b:++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case h:if(this.addPixelsNeg(o[b]-1,c),c^=1,p[this.codingPos]<q)for(b>0?--b:++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case Dc:this.addPixels(q,0),this.eof=!0;break;default:a("bad 2d code"),this.addPixels(q,0),this.err=!0}}else for(p[0]=0,this.codingPos=0,c=0;p[this.codingPos]<q;){if(r=0,c){do r+=t=this.getBlackCode();while(t>=64)}else do r+=t=this.getWhiteCode();while(t>=64);this.addPixels(p[this.codingPos]+r,c),c^=1}var u=!1;if(this.byteAlign&&(this.inputBits&=-8),this.eoblock||this.row!==this.rows-1){if(r=this.lookBits(12),this.eoline)for(;r!==Dc&&1!==r;)this.eatBits(1),r=this.lookBits(12);else for(;0===r;)this.eatBits(1),r=this.lookBits(12);1===r?(this.eatBits(12),u=!0):r===Dc&&(this.eof=!0)}else this.eof=!0;if(!this.eof&&this.encoding>0&&(this.nextLine2D=!this.lookBits(1),this.eatBits(1)),this.eoblock&&u&&this.byteAlign){if(r=this.lookBits(12),1===r){if(this.eatBits(12),this.encoding>0&&(this.lookBits(1),this.eatBits(1)),this.encoding>=0)for(n=0;4>n;++n)r=this.lookBits(12),1!==r&&a("bad rtc code: "+r),this.eatBits(12),this.encoding>0&&(this.lookBits(1),this.eatBits(1));this.eof=!0}}else if(this.err&&this.eoline){for(;;){if(r=this.lookBits(13),r===Dc)return this.eof=!0,null;if(r>>1===1)break;this.eatBits(1)}this.eatBits(12),this.encoding>0&&(this.eatBits(1),this.nextLine2D=!(1&r))}p[0]>0?this.outputBits=p[this.codingPos=0]:this.outputBits=p[this.codingPos=1],this.row++}var v;if(this.outputBits>=8)v=1&this.codingPos?0:255,this.outputBits-=8,0===this.outputBits&&p[this.codingPos]<q&&(this.codingPos++,this.outputBits=p[this.codingPos]-p[this.codingPos-1]);else{m=8,v=0;do this.outputBits>m?(v<<=m,1&this.codingPos||(v|=255>>8-m),this.outputBits-=m,m=0):(v<<=this.outputBits,1&this.codingPos||(v|=255>>8-this.outputBits),m-=this.outputBits,this.outputBits=0,p[this.codingPos]<q?(this.codingPos++,this.outputBits=p[this.codingPos]-p[this.codingPos-1]):m>0&&(v<<=m,m=0));while(m)}return this.black&&(v^=255),v},b.prototype.findTableCode=function(a,b,c,d){for(var e=d||0,f=a;b>=f;++f){var g=this.lookBits(f);if(g===Dc)return[!0,1,!1];if(b>f&&(g<<=b-f),!e||g>=e){var h=c[g-e];if(h[0]===f)return this.eatBits(f),[!0,h[1],!0]}}return[!1,0,!1]},b.prototype.getTwoDimCode=function(){var b,c=0;if(this.eoblock){if(c=this.lookBits(7),b=m[c],b&&b[0]>0)return this.eatBits(b[0]),b[1]}else{var d=this.findTableCode(1,7,m);if(d[0]&&d[2])return d[1]}return a("Bad two dim code"),Dc},b.prototype.getWhiteCode=function(){var b,c=0;if(this.eoblock){if(c=this.lookBits(12),c===Dc)return 1;if(b=c>>5===0?n[c]:o[c>>3],b[0]>0)return this.eatBits(b[0]),b[1]}else{var d=this.findTableCode(1,9,o);if(d[0])return d[1];if(d=this.findTableCode(11,12,n),d[0])return d[1]}return a("bad white code"),this.eatBits(1),1},b.prototype.getBlackCode=function(){var b,c;if(this.eoblock){if(b=this.lookBits(13),b===Dc)return 1;if(c=b>>7===0?p[b]:b>>9===0&&b>>7!==0?q[(b>>1)-64]:r[b>>7],c[0]>0)return this.eatBits(c[0]),c[1]}else{var d=this.findTableCode(2,6,r);if(d[0])return d[1];if(d=this.findTableCode(7,12,q,64),d[0])return d[1];if(d=this.findTableCode(10,13,p),
-d[0])return d[1]}return a("bad black code"),this.eatBits(1),1},b.prototype.lookBits=function(a){for(var b;this.inputBits<a;){if(-1===(b=this.str.getByte()))return 0===this.inputBits?Dc:this.inputBuf<<a-this.inputBits&65535>>16-a;this.inputBuf=(this.inputBuf<<8)+b,this.inputBits+=8}return this.inputBuf>>this.inputBits-a&65535>>16-a},b.prototype.eatBits=function(a){(this.inputBits-=a)<0&&(this.inputBits=0)},b}(),$c=function(){function a(a,b,c){this.str=a,this.dict=a.dict,this.cachedData=0,this.bitsCached=0;for(var d=4096,e={earlyChange:c,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(d),dictionaryLengths:new Uint16Array(d),dictionaryPrevCodes:new Uint16Array(d),currentSequence:new Uint8Array(d),currentSequenceLength:0},f=0;256>f;++f)e.dictionaryValues[f]=f,e.dictionaryLengths[f]=1;this.lzwState=e,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBits=function(a){for(var b=this.bitsCached,c=this.cachedData;a>b;){var d=this.str.getByte();if(-1===d)return this.eof=!0,null;c=c<<8|d,b+=8}return this.bitsCached=b-=a,this.cachedData=c,this.lastCode=null,c>>>b&(1<<a)-1},a.prototype.readBlock=function(){var a,b,c,d=512,e=2*d,f=d,g=this.lzwState;if(g){var h=g.earlyChange,i=g.nextCode,j=g.dictionaryValues,k=g.dictionaryLengths,l=g.dictionaryPrevCodes,m=g.codeLength,n=g.prevCode,o=g.currentSequence,p=g.currentSequenceLength,q=0,r=this.bufferLength,s=this.ensureBuffer(this.bufferLength+e);for(a=0;d>a;a++){var t=this.readBits(m),u=p>0;if(256>t)o[0]=t,p=1;else{if(!(t>=258)){if(256===t){m=9,i=258,p=0;continue}this.eof=!0,delete this.lzwState;break}if(i>t)for(p=k[t],b=p-1,c=t;b>=0;b--)o[b]=j[c],c=l[c];else o[p++]=o[0]}if(u&&(l[i]=n,k[i]=k[n]+1,j[i]=o[0],i++,m=i+h&i+h-1?m:0|Math.min(Math.log(i+h)/.6931471805599453+1,12)),n=t,q+=p,q>e){do e+=f;while(q>e);s=this.ensureBuffer(this.bufferLength+e)}for(b=0;p>b;b++)s[r++]=o[b]}g.nextCode=i,g.codeLength=m,g.prevCode=n,g.currentSequenceLength=p,this.bufferLength=r}},a}(),_c=function(){function a(){Mc.call(this,new Uint8Array(0))}return a.prototype=Mc.prototype,a}(),ad=function(){function a(a){this.name=a,this.terminated=!1,this._capability=G()}return a.prototype={get finished(){return this._capability.promise},finish:function(){this._capability.resolve()},terminate:function(){this.terminated=!0},ensureNotTerminated:function(){if(this.terminated)throw new Error("Worker task was terminated")}},a}(),bd=PDFJS.WorkerMessageHandler={setup:function(c){function d(){if(j)throw new Error("Worker was terminated")}function e(a){l.push(a)}function f(a){a.finish();var b=l.indexOf(a);l.splice(b,1)}function g(a){var b=G(),c=function(){var a=i.ensureDoc("numPages"),c=i.ensureDoc("fingerprint"),e=i.ensureXRef("encrypt");Promise.all([a,c,e]).then(function(a){var c={numPages:a[0],fingerprint:a[1],encrypted:!!a[2]};b.resolve(c)},d)},d=function(a){b.reject(a)};return i.ensureDoc("checkHeader",[]).then(function(){i.ensureDoc("parseStartXRef",[]).then(function(){i.ensureDoc("parse",[a]).then(c,d)},d)},d),b.promise}function h(a){var d,e=G(),f=a.source,g=a.disableRange;if(f.data){try{d=new ua(f.data,f.password),e.resolve(d)}catch(h){e.reject(h)}return e.promise}if(f.chunkedViewerLoading){try{d=new va(f,c),e.resolve(d)}catch(h){e.reject(h)}return e.promise}var i=new pa(f.url,{httpHeaders:f.httpHeaders,withCredentials:f.withCredentials}),j=[],l=i.requestFull({onHeadersReceived:function(){if(!g){var a=i.getRequestXhr(l);if("bytes"===a.getResponseHeader("Accept-Ranges")){var b=a.getResponseHeader("Content-Encoding")||"identity";if("identity"===b){var h=a.getResponseHeader("Content-Length");if(h=parseInt(h,10),w(h)&&(f.length=h,!(2*sa>=h))){i.isStreamingRequest(l)?f.disableAutoFetch=!0:i.abortRequest(l);try{d=new va(f,c),e.resolve(d)}catch(j){e.reject(j)}k=null}}}}},onProgressiveData:f.disableStream?null:function(a){return d?void d.sendProgressiveData(a):void j.push(a)},onDone:function(a){if(!d){var c;if(null===a){var g=0,h=0;j.forEach(function(a){g+=a.byteLength}),f.length&&g!==f.length&&b("reported HTTP length is different from actual");var i=new Uint8Array(g);j.forEach(function(a){i.set(new Uint8Array(a),h),h+=a.byteLength}),c=i.buffer}else c=a.chunk;try{d=new ua(c,f.password),e.resolve(d)}catch(l){e.reject(l)}k=null}},onError:function(a){var b;404===a?(b=new ga('Missing PDF "'+f.url+'".'),c.send("MissingPDF",b)):(b=new ha("Unexpected server response ("+a+') while retrieving PDF "'+f.url+'".',a),c.send("UnexpectedResponse",b)),k=null},onProgress:function(a){c.send("DocProgress",{loaded:a.loaded,total:a.lengthComputable?a.total:f.length})}});return k=function(){i.abortRequest(l)},e.promise}var i,j=!1,k=null,l=[];c.on("test",function(a){if(!(a instanceof Uint8Array))return void c.send("test",!1);var b=255===a[0];c.postMessageTransfers=b;var d=new XMLHttpRequest,e="response"in d;try{d.responseType}catch(f){e=!1}return e?void c.send("test",{supportTypedArray:!0,supportTransfers:b}):void c.send("test",!1)}),c.on("GetDocRequest",function(a){var b=function(a){d(),c.send("GetDoc",{pdfInfo:a})},e=function(a){a instanceof da?a.code===ca.NEED_PASSWORD?c.send("NeedPassword",a):a.code===ca.INCORRECT_PASSWORD&&c.send("IncorrectPassword",a):a instanceof fa?c.send("InvalidPDF",a):a instanceof ga?c.send("MissingPDF",a):a instanceof ha?c.send("UnexpectedResponse",a):c.send("UnknownError",new ea(a.message,a.toString()))};d(),PDFJS.maxImageSize=void 0===a.maxImageSize?-1:a.maxImageSize,PDFJS.disableFontFace=a.disableFontFace,PDFJS.disableCreateObjectURL=a.disableCreateObjectURL,PDFJS.verbosity=a.verbosity,PDFJS.cMapUrl=void 0===a.cMapUrl?null:a.cMapUrl,PDFJS.cMapPacked=a.cMapPacked===!0,h(a).then(function(a){if(j)throw a.terminate(),new Error("Worker was terminated");i=a,c.send("PDFManagerReady",null),i.onLoadedStream().then(function(a){c.send("DataLoaded",{length:a.bytes.byteLength})})}).then(function f(){d(),g(!1).then(b,function(a){return d(),a instanceof ka?(i.requestLoadedStream(),void i.onLoadedStream().then(function(){d(),g(!0).then(b,e)})):(a instanceof da&&i.passwordChanged().then(f),void e(a))},e)},e)}),c.on("GetPage",function(a){return i.getPage(a.pageIndex).then(function(a){var b=i.ensure(a,"rotate"),c=i.ensure(a,"ref"),d=i.ensure(a,"view");return Promise.all([b,c,d]).then(function(a){return{rotate:a[0],ref:a[1],view:a[2]}})})}),c.on("GetPageIndex",function(a){var b=new Ba(a.ref.num,a.ref.gen),c=i.pdfDocument.catalog;return c.getPageIndex(b)}),c.on("GetDestinations",function(a){return i.ensureCatalog("destinations")}),c.on("GetDestination",function(a){return i.ensureCatalog("getDestination",[a.id])}),c.on("GetAttachments",function(a){return i.ensureCatalog("attachments")}),c.on("GetJavaScript",function(a){return i.ensureCatalog("javaScript")}),c.on("GetOutline",function(a){return i.ensureCatalog("documentOutline")}),c.on("GetMetadata",function(a){return Promise.all([i.ensureDoc("documentInfo"),i.ensureCatalog("metadata")])}),c.on("GetData",function(a){return i.requestLoadedStream(),i.onLoadedStream().then(function(a){return a.bytes})}),c.on("GetStats",function(a){return i.pdfDocument.xref.stats}),c.on("UpdatePassword",function(a){i.updatePassword(a)}),c.on("GetAnnotations",function(a){return i.getPage(a.pageIndex).then(function(a){return i.ensure(a,"getAnnotationsData",[])})}),c.on("RenderPageRequest",function(b){var d=b.pageIndex;i.getPage(d).then(function(g){var h=new ad("RenderPageRequest: page "+d);e(h);var i=d+1,j=Date.now();g.getOperatorList(c,h,b.intent).then(function(b){f(h),a("page="+i+" - getOperatorList: time="+(Date.now()-j)+"ms, len="+b.fnArray.length)},function(a){if(f(h),!h.terminated){var d,e="worker.js: while trying to getPage() and getOperatorList()";d="string"==typeof a?{message:a,stack:e}:"object"==typeof a?{message:a.message||a.toString(),stack:a.stack||e}:{message:"Unknown exception type: "+typeof a,stack:e},c.send("PageError",{pageNum:i,error:d,intent:b.intent})}})})},this),c.on("GetTextContent",function(b){var c=b.pageIndex;return i.getPage(c).then(function(b){var d=new ad("GetTextContent: page "+c);e(d);var g=c+1,h=Date.now();return b.extractTextContent(d).then(function(b){return f(d),a("text indexing: page="+g+" - time="+(Date.now()-h)+"ms"),b},function(a){if(f(d),!d.terminated)throw a})})}),c.on("Cleanup",function(a){return i.cleanup()}),c.on("Terminate",function(a){j=!0,i&&(i.terminate(),i=null),k&&k();var b=[];return l.forEach(function(a){b.push(a.finished),a.terminate()}),Promise.all(b).then(function(){})})}},cd={},dd={log:function(){var a=Array.prototype.slice.call(arguments);S.postMessage({action:"console_log",data:a})},error:function(){var a=Array.prototype.slice.call(arguments);throw S.postMessage({action:"console_error",data:a}),"pdf.js execution error"},time:function(a){cd[a]=Date.now()},timeEnd:function(a){var b=cd[a];b||c("Unknown timer name "+a),this.log("Timer:",a,Date.now()-b)}};if("undefined"==typeof window){"console"in S||(S.console=dd),PDFJS.UnsupportedManager.listen(function(a){S.postMessage({action:"_unsupported_feature",data:a})});var ed=new H("worker_processor",this);bd.setup(ed)}var fd=function(){function a(a,b,c){this.data=a,this.bp=b,this.dataEnd=c,this.chigh=a[b],this.clow=0,this.byteIn(),this.chigh=this.chigh<<7&65535|this.clow>>9&127,this.clow=this.clow<<7&65535,this.ct-=7,this.a=32768}var b=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];return a.prototype={byteIn:function(){var a=this.data,b=this.bp;if(255===a[b]){var c=a[b+1];c>143?(this.clow+=65280,this.ct=8):(b++,this.clow+=a[b]<<9,this.ct=7,this.bp=b)}else b++,this.clow+=b<this.dataEnd?a[b]<<8:65280,this.ct=8,this.bp=b;this.clow>65535&&(this.chigh+=this.clow>>16,this.clow&=65535)},readBit:function(a,c){var d,e=a[c]>>1,f=1&a[c],g=b[e],h=g.qe,i=this.a-h;if(this.chigh<h)h>i?(i=h,d=f,e=g.nmps):(i=h,d=1^f,1===g.switchFlag&&(f=d),e=g.nlps);else{if(this.chigh-=h,0!==(32768&i))return this.a=i,f;h>i?(d=1^f,1===g.switchFlag&&(f=d),e=g.nlps):(d=f,e=g.nmps)}do 0===this.ct&&this.byteIn(),i<<=1,this.chigh=this.chigh<<1&65535|this.clow>>15&1,this.clow=this.clow<<1&65535,this.ct--;while(0===(32768&i));return this.a=i,a[c]=e<<1|f,d}},a}(),gd=function(){function a(){}function b(a,b){for(var c,d,e=0,f=[],g=16;g>0&&!a[g-1];)g--;f.push({children:[],index:0});var h,i=f[0];for(c=0;g>c;c++){for(d=0;d<a[c];d++){for(i=f.pop(),i.children[i.index]=b[e];i.index>0;)i=f.pop();for(i.index++,f.push(i);f.length<=c;)f.push(h={children:[],index:0}),i.children[i.index]=h.children,i=h;e++}g>c+1&&(f.push(h={children:[],index:0}),i.children[i.index]=h.children,i=h)}return f[0].children}function c(a,b,c){return 64*((a.blocksPerLine+1)*b+c)}function d(a,b,d,e,f,g,i,j,k){function l(){if(H>0)return H--,G>>H&1;if(G=a[b++],255===G){var c=a[b++];if(c)throw"unexpected marker: "+(G<<8|c).toString(16)}return H=7,G>>>7}function m(a){for(var b=a;;){if(b=b[l()],"number"==typeof b)return b;if("object"!=typeof b)throw"invalid huffman sequence"}}function n(a){for(var b=0;a>0;)b=b<<1|l(),a--;return b}function o(a){if(1===a)return 1===l()?1:-1;var b=n(a);return b>=1<<a-1?b:b+(-1<<a)+1}function p(a,b){var c=m(a.huffmanTableDC),d=0===c?0:o(c);a.blockData[b]=a.pred+=d;for(var e=1;64>e;){var f=m(a.huffmanTableAC),g=15&f,i=f>>4;if(0!==g){e+=i;var j=h[e];a.blockData[b+j]=o(g),e++}else{if(15>i)break;e+=16}}}function q(a,b){var c=m(a.huffmanTableDC),d=0===c?0:o(c)<<k;a.blockData[b]=a.pred+=d}function r(a,b){a.blockData[b]|=l()<<k}function s(a,b){if(I>0)return void I--;for(var c=g,d=i;d>=c;){var e=m(a.huffmanTableAC),f=15&e,j=e>>4;if(0!==f){c+=j;var l=h[c];a.blockData[b+l]=o(f)*(1<<k),c++}else{if(15>j){I=n(j)+(1<<j)-1;break}c+=16}}}function t(a,b){for(var c,d,e=g,f=i,j=0;f>=e;){var p=h[e];switch(J){case 0:if(d=m(a.huffmanTableAC),c=15&d,j=d>>4,0===c)15>j?(I=n(j)+(1<<j),J=4):(j=16,J=1);else{if(1!==c)throw"invalid ACn encoding";w=o(c),J=j?2:3}continue;case 1:case 2:a.blockData[b+p]?a.blockData[b+p]+=l()<<k:(j--,0===j&&(J=2===J?3:0));break;case 3:a.blockData[b+p]?a.blockData[b+p]+=l()<<k:(a.blockData[b+p]=w<<k,J=0);break;case 4:a.blockData[b+p]&&(a.blockData[b+p]+=l()<<k)}e++}4===J&&(I--,0===I&&(J=0))}function u(a,b,d,e,f){var g=d/D|0,h=d%D,i=g*a.v+e,j=h*a.h+f,k=c(a,i,j);b(a,k)}function v(a,b,d){var e=d/a.blocksPerLine|0,f=d%a.blocksPerLine,g=c(a,e,f);b(a,g)}var w,x,y,z,A,B,C,D=(d.precision,d.samplesPerLine,d.scanLines,d.mcusPerLine),E=d.progressive,F=(d.maxH,d.maxV,b),G=0,H=0,I=0,J=0,K=e.length;C=E?0===g?0===j?q:r:0===j?s:t:p;var L,M,N=0;M=1===K?e[0].blocksPerLine*e[0].blocksPerColumn:D*d.mcusPerColumn,f||(f=M);for(var O,P;M>N;){for(y=0;K>y;y++)e[y].pred=0;if(I=0,1===K)for(x=e[0],B=0;f>B;B++)v(x,C,N),N++;else for(B=0;f>B;B++){for(y=0;K>y;y++)for(x=e[y],O=x.h,P=x.v,z=0;P>z;z++)for(A=0;O>A;A++)u(x,C,N,z,A);N++}if(H=0,L=a[b]<<8|a[b+1],65280>=L)throw"marker was not found";if(!(L>=65488&&65495>=L))break;b+=2}return b-F}function e(a,b,c){for(var d,e,f,g,h,q,r,s,t,u,v,w,x,y,z,A,B,C=a.quantizationTable,D=a.blockData,E=0;64>E;E+=8)t=D[b+E],u=D[b+E+1],v=D[b+E+2],w=D[b+E+3],x=D[b+E+4],y=D[b+E+5],z=D[b+E+6],A=D[b+E+7],t*=C[E],0!==(u|v|w|x|y|z|A)?(u*=C[E+1],v*=C[E+2],w*=C[E+3],x*=C[E+4],y*=C[E+5],z*=C[E+6],A*=C[E+7],d=o*t+128>>8,e=o*x+128>>8,f=v,g=z,h=p*(u-A)+128>>8,s=p*(u+A)+128>>8,q=w<<4,r=y<<4,d=d+e+1>>1,e=d-e,B=f*n+g*m+128>>8,f=f*m-g*n+128>>8,g=B,h=h+r+1>>1,r=h-r,s=s+q+1>>1,q=s-q,d=d+g+1>>1,g=d-g,e=e+f+1>>1,f=e-f,B=h*l+s*k+2048>>12,h=h*k-s*l+2048>>12,s=B,B=q*j+r*i+2048>>12,q=q*i-r*j+2048>>12,r=B,c[E]=d+s,c[E+7]=d-s,c[E+1]=e+r,c[E+6]=e-r,c[E+2]=f+q,c[E+5]=f-q,c[E+3]=g+h,c[E+4]=g-h):(B=o*t+512>>10,c[E]=B,c[E+1]=B,c[E+2]=B,c[E+3]=B,c[E+4]=B,c[E+5]=B,c[E+6]=B,c[E+7]=B);for(var F=0;8>F;++F)t=c[F],u=c[F+8],v=c[F+16],w=c[F+24],x=c[F+32],y=c[F+40],z=c[F+48],A=c[F+56],0!==(u|v|w|x|y|z|A)?(d=o*t+2048>>12,e=o*x+2048>>12,f=v,g=z,h=p*(u-A)+2048>>12,s=p*(u+A)+2048>>12,q=w,r=y,d=(d+e+1>>1)+4112,e=d-e,B=f*n+g*m+2048>>12,f=f*m-g*n+2048>>12,g=B,h=h+r+1>>1,r=h-r,s=s+q+1>>1,q=s-q,d=d+g+1>>1,g=d-g,e=e+f+1>>1,f=e-f,B=h*l+s*k+2048>>12,h=h*k-s*l+2048>>12,s=B,B=q*j+r*i+2048>>12,q=q*i-r*j+2048>>12,r=B,t=d+s,A=d-s,u=e+r,z=e-r,v=f+q,y=f-q,w=g+h,x=g-h,t=16>t?0:t>=4080?255:t>>4,u=16>u?0:u>=4080?255:u>>4,v=16>v?0:v>=4080?255:v>>4,w=16>w?0:w>=4080?255:w>>4,x=16>x?0:x>=4080?255:x>>4,y=16>y?0:y>=4080?255:y>>4,z=16>z?0:z>=4080?255:z>>4,A=16>A?0:A>=4080?255:A>>4,D[b+F]=t,D[b+F+8]=u,D[b+F+16]=v,D[b+F+24]=w,D[b+F+32]=x,D[b+F+40]=y,D[b+F+48]=z,D[b+F+56]=A):(B=o*t+8192>>14,B=-2040>B?0:B>=2024?255:B+2056>>4,D[b+F]=B,D[b+F+8]=B,D[b+F+16]=B,D[b+F+24]=B,D[b+F+32]=B,D[b+F+40]=B,D[b+F+48]=B,D[b+F+56]=B)}function f(a,b){for(var d=b.blocksPerLine,f=b.blocksPerColumn,g=new Int16Array(64),h=0;f>h;h++)for(var i=0;d>i;i++){var j=c(b,h,i);e(b,j,g)}return b.blockData}function g(a){return 0>=a?0:a>=255?255:a}var h=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),i=4017,j=799,k=3406,l=2276,m=1567,n=3784,o=5793,p=2896;return a.prototype={parse:function(a){function c(){var b=a[k]<<8|a[k+1];return k+=2,b}function e(){var b=c(),d=a.subarray(k,k+b-2);return k+=d.length,d}function g(a){for(var b=Math.ceil(a.samplesPerLine/8/a.maxH),c=Math.ceil(a.scanLines/8/a.maxV),d=0;d<a.components.length;d++){M=a.components[d];var e=Math.ceil(Math.ceil(a.samplesPerLine/8)*M.h/a.maxH),f=Math.ceil(Math.ceil(a.scanLines/8)*M.v/a.maxV),g=b*M.h,h=c*M.v,i=64*h*(g+1);M.blockData=new Int16Array(i),M.blocksPerLine=e,M.blocksPerColumn=f}a.mcusPerLine=b,a.mcusPerColumn=c}var i,j,k=0,l=(a.length,null),m=null,n=[],o=[],p=[],q=c();if(65496!==q)throw"SOI not found";for(q=c();65497!==q;){var r,s,t;switch(q){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var u=e();65504===q&&74===u[0]&&70===u[1]&&73===u[2]&&70===u[3]&&0===u[4]&&(l={version:{major:u[5],minor:u[6]},densityUnits:u[7],xDensity:u[8]<<8|u[9],yDensity:u[10]<<8|u[11],thumbWidth:u[12],thumbHeight:u[13],thumbData:u.subarray(14,14+3*u[12]*u[13])}),65518===q&&65===u[0]&&100===u[1]&&111===u[2]&&98===u[3]&&101===u[4]&&(m={version:u[5]<<8|u[6],flags0:u[7]<<8|u[8],flags1:u[9]<<8|u[10],transformCode:u[11]});break;case 65499:for(var v,w=c(),x=w+k-2;x>k;){var y=a[k++],z=new Uint16Array(64);if(y>>4===0)for(s=0;64>s;s++)v=h[s],z[v]=a[k++];else{if(y>>4!==1)throw"DQT: invalid table spec";for(s=0;64>s;s++)v=h[s],z[v]=c()}n[15&y]=z}break;case 65472:case 65473:case 65474:if(i)throw"Only single frame JPEGs supported";c(),i={},i.extended=65473===q,i.progressive=65474===q,i.precision=a[k++],i.scanLines=c(),i.samplesPerLine=c(),i.components=[],i.componentIds={};var A,B=a[k++],C=0,D=0;for(r=0;B>r;r++){A=a[k];var E=a[k+1]>>4,F=15&a[k+1];E>C&&(C=E),F>D&&(D=F);var G=a[k+2];t=i.components.push({h:E,v:F,quantizationTable:n[G]}),i.componentIds[A]=t-1,k+=3}i.maxH=C,i.maxV=D,g(i);break;case 65476:var H=c();for(r=2;H>r;){var I=a[k++],J=new Uint8Array(16),K=0;for(s=0;16>s;s++,k++)K+=J[s]=a[k];var L=new Uint8Array(K);for(s=0;K>s;s++,k++)L[s]=a[k];r+=17+K,(I>>4===0?p:o)[15&I]=b(J,L)}break;case 65501:c(),j=c();break;case 65498:var M,N=(c(),a[k++]),O=[];for(r=0;N>r;r++){var P=i.componentIds[a[k++]];M=i.components[P];var Q=a[k++];M.huffmanTableDC=p[Q>>4],M.huffmanTableAC=o[15&Q],O.push(M)}var R=a[k++],S=a[k++],T=a[k++],U=d(a,k,i,O,j,R,S,T>>4,15&T);k+=U;break;case 65535:255!==a[k]&&k--;break;default:if(255===a[k-3]&&a[k-2]>=192&&a[k-2]<=254){k-=3;break}throw"unknown JPEG marker "+q.toString(16)}q=c()}for(this.width=i.samplesPerLine,this.height=i.scanLines,this.jfif=l,this.adobe=m,this.components=[],r=0;r<i.components.length;r++)M=i.components[r],this.components.push({output:f(i,M),scaleX:M.h/i.maxH,scaleY:M.v/i.maxV,blocksPerLine:M.blocksPerLine,blocksPerColumn:M.blocksPerColumn});this.numComponents=this.components.length},_getLinearizedBlockData:function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=this.width/a,o=this.height/b,p=0,q=this.components.length,r=a*b*q,s=new Uint8Array(r),t=new Uint32Array(a),u=4294967288;for(i=0;q>i;i++){for(c=this.components[i],d=c.scaleX*n,e=c.scaleY*o,p=i,m=c.output,f=c.blocksPerLine+1<<3,g=0;a>g;g++)j=0|g*d,t[g]=(j&u)<<3|7&j;for(h=0;b>h;h++)for(j=0|h*e,l=f*(j&u)|(7&j)<<3,g=0;a>g;g++)s[p]=m[l+t[g]],p+=q}var v=this.decodeTransform;if(v)for(i=0;r>i;)for(j=0,k=0;q>j;j++,i++,k+=2)s[i]=(s[i]*v[k]>>8)+v[k+1];return s},_isColorConversionNeeded:function(){return this.adobe&&this.adobe.transformCode?!0:3===this.numComponents?!0:!1},_convertYccToRgb:function(a){for(var b,c,d,e=0,f=a.length;f>e;e+=3)b=a[e],c=a[e+1],d=a[e+2],a[e]=g(b-179.456+1.402*d),a[e+1]=g(b+135.459-.344*c-.714*d),a[e+2]=g(b-226.816+1.772*c);return a},_convertYcckToRgb:function(a){for(var b,c,d,e,f=0,h=0,i=a.length;i>h;h+=4){b=a[h],c=a[h+1],d=a[h+2],e=a[h+3];var j=-122.67195406894+c*(-660635669420364e-19*c+.000437130475926232*d-54080610064599e-18*b+.00048449797120281*e-.154362151871126)+d*(-.000957964378445773*d+.000817076911346625*b-.00477271405408747*e+1.53380253221734)+b*(.000961250184130688*b-.00266257332283933*e+.48357088451265)+e*(-.000336197177618394*e+.484791561490776),k=107.268039397724+c*(219927104525741e-19*c-.000640992018297945*d+.000659397001245577*b+.000426105652938837*e-.176491792462875)+d*(-.000778269941513683*d+.00130872261408275*b+.000770482631801132*e-.151051492775562)+b*(.00126935368114843*b-.00265090189010898*e+.25802910206845)+e*(-.000318913117588328*e-.213742400323665),l=-20.810012546947+c*(-.000570115196973677*c-263409051004589e-19*d+.0020741088115012*b-.00288260236853442*e+.814272968359295)+d*(-153496057440975e-19*d-.000132689043961446*b+.000560833691242812*e-.195152027534049)+b*(.00174418132927582*b-.00255243321439347*e+.116935020465145)+e*(-.000343531996510555*e+.24165260232407);a[f++]=g(j),a[f++]=g(k),a[f++]=g(l)}return a},_convertYcckToCmyk:function(a){for(var b,c,d,e=0,f=a.length;f>e;e+=4)b=a[e],c=a[e+1],d=a[e+2],a[e]=g(434.456-b-1.402*d),a[e+1]=g(119.541-b+.344*c+.714*d),a[e+2]=g(481.816-b-1.772*c);return a},_convertCmykToRgb:function(a){for(var b,c,d,e,f=0,g=-16581375,h=1/255/255,i=0,j=a.length;j>i;i+=4){b=a[i],c=a[i+1],d=a[i+2],e=a[i+3];var k=b*(-4.387332384609988*b+54.48615194189176*c+18.82290502165302*d+212.25662451639585*e-72734.4411664936)+c*(1.7149763477362134*c-5.6096736904047315*d-17.873870861415444*e-1401.7366389350734)+d*(-2.5217340131683033*d-21.248923337353073*e+4465.541406466231)-e*(21.86122147463605*e+48317.86113160301),l=b*(8.841041422036149*b+60.118027045597366*c+6.871425592049007*d+31.159100130055922*e-20220.756542821975)+c*(-15.310361306967817*c+17.575251261109482*d+131.35250912493976*e-48691.05921601825)+d*(4.444339102852739*d+9.8632861493405*e-6341.191035517494)-e*(20.737325471181034*e+47890.15695978492),m=b*(.8842522430003296*b+8.078677503112928*c+30.89978309703729*d-.23883238689178934*e-3616.812083916688)+c*(10.49593273432072*c+63.02378494754052*d+50.606957656360734*e-28620.90484698408)+d*(.03296041114873217*d+115.60384449646641*e-49363.43385999684)-e*(22.33816807309886*e+45932.16563550634);a[f++]=k>=0?255:g>=k?0:255+k*h|0,a[f++]=l>=0?255:g>=l?0:255+l*h|0,a[f++]=m>=0?255:g>=m?0:255+m*h|0}return a},getData:function(a,b,c){if(this.numComponents>4)throw"Unsupported color mode";var d=this._getLinearizedBlockData(a,b);if(3===this.numComponents)return this._convertYccToRgb(d);if(4===this.numComponents){if(this._isColorConversionNeeded())return c?this._convertYcckToRgb(d):this._convertYcckToCmyk(d);if(c)return this._convertCmykToRgb(d)}return d}},a}(),hd=function(){function c(){this.failOnCorruptedImage=!1}function d(a,b){a.x0=Math.ceil(b.XOsiz/a.XRsiz),a.x1=Math.ceil(b.Xsiz/a.XRsiz),a.y0=Math.ceil(b.YOsiz/a.YRsiz),a.y1=Math.ceil(b.Ysiz/a.YRsiz),a.width=a.x1-a.x0,a.height=a.y1-a.y0}function e(a,b){for(var c,d=a.SIZ,e=[],f=Math.ceil((d.Xsiz-d.XTOsiz)/d.XTsiz),g=Math.ceil((d.Ysiz-d.YTOsiz)/d.YTsiz),h=0;g>h;h++)for(var i=0;f>i;i++)c={},c.tx0=Math.max(d.XTOsiz+i*d.XTsiz,d.XOsiz),c.ty0=Math.max(d.YTOsiz+h*d.YTsiz,d.YOsiz),c.tx1=Math.min(d.XTOsiz+(i+1)*d.XTsiz,d.Xsiz),c.ty1=Math.min(d.YTOsiz+(h+1)*d.YTsiz,d.Ysiz),c.width=c.tx1-c.tx0,c.height=c.ty1-c.ty0,c.components=[],e.push(c);a.tiles=e;for(var j=d.Csiz,k=0,l=j;l>k;k++)for(var m=b[k],n=0,o=e.length;o>n;n++){var p={};c=e[n],p.tcx0=Math.ceil(c.tx0/m.XRsiz),p.tcy0=Math.ceil(c.ty0/m.YRsiz),p.tcx1=Math.ceil(c.tx1/m.XRsiz),p.tcy1=Math.ceil(c.ty1/m.YRsiz),p.width=p.tcx1-p.tcx0,p.height=p.tcy1-p.tcy0,c.components[k]=p}}function f(a,b,c){var d=b.codingStyleParameters,e={};return d.entropyCoderWithCustomPrecincts?(e.PPx=d.precinctsSizes[c].PPx,e.PPy=d.precinctsSizes[c].PPy):(e.PPx=15,e.PPy=15),e.xcb_=c>0?Math.min(d.xcb,e.PPx-1):Math.min(d.xcb,e.PPx),e.ycb_=c>0?Math.min(d.ycb,e.PPy-1):Math.min(d.ycb,e.PPy),e}function g(a,b,c){var d=1<<c.PPx,e=1<<c.PPy,f=0===b.resLevel,g=1<<c.PPx+(f?0:-1),h=1<<c.PPy+(f?0:-1),i=b.trx1>b.trx0?Math.ceil(b.trx1/d)-Math.floor(b.trx0/d):0,j=b.try1>b.try0?Math.ceil(b.try1/e)-Math.floor(b.try0/e):0,k=i*j;b.precinctParameters={precinctWidth:d,precinctHeight:e,numprecinctswide:i,numprecinctshigh:j,numprecincts:k,precinctWidthInSubband:g,precinctHeightInSubband:h}}function h(a,b,c){var d,e,f,g,h=c.xcb_,i=c.ycb_,j=1<<h,k=1<<i,l=b.tbx0>>h,m=b.tby0>>i,n=b.tbx1+j-1>>h,o=b.tby1+k-1>>i,p=b.resolution.precinctParameters,q=[],r=[];for(e=m;o>e;e++)for(d=l;n>d;d++){f={cbx:d,cby:e,tbx0:j*d,tby0:k*e,tbx1:j*(d+1),tby1:k*(e+1)},f.tbx0_=Math.max(b.tbx0,f.tbx0),f.tby0_=Math.max(b.tby0,f.tby0),f.tbx1_=Math.min(b.tbx1,f.tbx1),f.tby1_=Math.min(b.tby1,f.tby1);var s=Math.floor((f.tbx0_-b.tbx0)/p.precinctWidthInSubband),t=Math.floor((f.tby0_-b.tby0)/p.precinctHeightInSubband);if(g=s+t*p.numprecinctswide,f.precinctNumber=g,f.subbandType=b.type,f.Lblock=3,!(f.tbx1_<=f.tbx0_||f.tby1_<=f.tby0_)){q.push(f);var u=r[g];void 0!==u?(d<u.cbxMin?u.cbxMin=d:d>u.cbxMax&&(u.cbxMax=d),e<u.cbyMin?u.cbxMin=e:e>u.cbyMax&&(u.cbyMax=e)):r[g]=u={cbxMin:d,cbyMin:e,cbxMax:d,cbyMax:e},f.precinct=u}}b.codeblockParameters={codeblockWidth:h,codeblockHeight:i,numcodeblockwide:n-l+1,numcodeblockhigh:o-m+1},b.codeblocks=q,b.precincts=r}function i(a,b,c){for(var d=[],e=a.subbands,f=0,g=e.length;g>f;f++)for(var h=e[f],i=h.codeblocks,j=0,k=i.length;k>j;j++){var l=i[j];l.precinctNumber===b&&d.push(l)}return{layerNumber:c,codeblocks:d}}function j(a){for(var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=d.codingStyleDefaultParameters.layersCount,f=b.Csiz,g=0,h=0;f>h;h++)g=Math.max(g,d.components[h].codingStyleParameters.decompositionLevelsCount);var j=0,k=0,l=0,m=0;this.nextPacket=function(){for(;e>j;j++){for(;g>=k;k++){for(;f>l;l++){var a=d.components[l];if(!(k>a.codingStyleParameters.decompositionLevelsCount)){for(var b=a.resolutions[k],c=b.precinctParameters.numprecincts;c>m;){var h=i(b,m,j);return m++,h}m=0}}l=0}k=0}throw new Error("JPX Error: Out of packets")}}function k(a){for(var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=d.codingStyleDefaultParameters.layersCount,f=b.Csiz,g=0,h=0;f>h;h++)g=Math.max(g,d.components[h].codingStyleParameters.decompositionLevelsCount);var j=0,k=0,l=0,m=0;this.nextPacket=function(){for(;g>=j;j++){for(;e>k;k++){for(;f>l;l++){var a=d.components[l];if(!(j>a.codingStyleParameters.decompositionLevelsCount)){for(var b=a.resolutions[j],c=b.precinctParameters.numprecincts;c>m;){var h=i(b,m,k);return m++,h}m=0}}l=0}k=0}throw new Error("JPX Error: Out of packets")}}function m(a){var b,c,d,e,f=a.SIZ,g=a.currentTile.index,h=a.tiles[g],j=h.codingStyleDefaultParameters.layersCount,k=f.Csiz,l=0;for(d=0;k>d;d++){var m=h.components[d];l=Math.max(l,m.codingStyleParameters.decompositionLevelsCount)}var n=new Int32Array(l+1);for(c=0;l>=c;++c){var o=0;for(d=0;k>d;++d){var p=h.components[d].resolutions;c<p.length&&(o=Math.max(o,p[c].precinctParameters.numprecincts))}n[c]=o}b=0,c=0,d=0,e=0,this.nextPacket=function(){for(;l>=c;c++){for(;e<n[c];e++){for(;k>d;d++){var a=h.components[d];if(!(c>a.codingStyleParameters.decompositionLevelsCount)){var f=a.resolutions[c],g=f.precinctParameters.numprecincts;if(!(e>=g)){for(;j>b;){var m=i(f,e,b);return b++,m}b=0}}}d=0}e=0}throw new Error("JPX Error: Out of packets")}}function p(a){var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=d.codingStyleDefaultParameters.layersCount,f=b.Csiz,g=s(d),h=g,j=0,k=0,l=0,m=0,n=0;this.nextPacket=function(){for(;n<h.maxNumHigh;n++){for(;m<h.maxNumWide;m++){for(;f>l;l++){for(var a=d.components[l],b=a.codingStyleParameters.decompositionLevelsCount;b>=k;k++){var c=a.resolutions[k],o=g.components[l].resolutions[k],p=r(m,n,o,h,c);if(null!==p){for(;e>j;){var q=i(c,p,j);return j++,q}j=0}}k=0}l=0}m=0}throw new Error("JPX Error: Out of packets")}}function q(a){var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=d.codingStyleDefaultParameters.layersCount,f=b.Csiz,g=s(d),h=0,j=0,k=0,l=0,m=0;this.nextPacket=function(){for(;f>k;++k){for(var a=d.components[k],b=g.components[k],c=a.codingStyleParameters.decompositionLevelsCount;m<b.maxNumHigh;m++){for(;l<b.maxNumWide;l++){for(;c>=j;j++){var n=a.resolutions[j],o=b.resolutions[j],p=r(l,m,o,b,n);if(null!==p){for(;e>h;){var q=i(n,p,h);return h++,q}h=0}}j=0}l=0}m=0}throw new Error("JPX Error: Out of packets")}}function r(a,b,c,d,e){var f=a*d.minWidth,g=b*d.minHeight;if(f%c.width!==0||g%c.height!==0)return null;var h=g/c.width*e.precinctParameters.numprecinctswide;return f/c.height+h}function s(a){for(var b=a.components.length,c=Number.MAX_VALUE,d=Number.MAX_VALUE,e=0,f=0,g=new Array(b),h=0;b>h;h++){for(var i=a.components[h],j=i.codingStyleParameters.decompositionLevelsCount,k=new Array(j+1),l=Number.MAX_VALUE,m=Number.MAX_VALUE,n=0,o=0,p=1,q=j;q>=0;--q){var r=i.resolutions[q],s=p*r.precinctParameters.precinctWidth,t=p*r.precinctParameters.precinctHeight;l=Math.min(l,s),m=Math.min(m,t),n=Math.max(n,r.precinctParameters.numprecinctswide),o=Math.max(o,r.precinctParameters.numprecinctshigh),k[q]={width:s,height:t},p<<=1}c=Math.min(c,l),d=Math.min(d,m),e=Math.max(e,n),f=Math.max(f,o),g[h]={resolutions:k,minWidth:l,minHeight:m,maxNumWide:n,maxNumHigh:o}}return{components:g,minWidth:c,minHeight:d,maxNumWide:e,maxNumHigh:f}}function t(a){for(var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=b.Csiz,i=0;e>i;i++){for(var l=d.components[i],n=l.codingStyleParameters.decompositionLevelsCount,o=[],r=[],s=0;n>=s;s++){var t=f(a,l,s),u={},v=1<<n-s;u.trx0=Math.ceil(l.tcx0/v),u.try0=Math.ceil(l.tcy0/v),u.trx1=Math.ceil(l.tcx1/v),u.try1=Math.ceil(l.tcy1/v),u.resLevel=s,g(a,u,t),o.push(u);var w;if(0===s)w={},w.type="LL",w.tbx0=Math.ceil(l.tcx0/v),w.tby0=Math.ceil(l.tcy0/v),w.tbx1=Math.ceil(l.tcx1/v),w.tby1=Math.ceil(l.tcy1/v),w.resolution=u,h(a,w,t),r.push(w),u.subbands=[w];else{var x=1<<n-s+1,y=[];w={},w.type="HL",w.tbx0=Math.ceil(l.tcx0/x-.5),w.tby0=Math.ceil(l.tcy0/x),w.tbx1=Math.ceil(l.tcx1/x-.5),w.tby1=Math.ceil(l.tcy1/x),w.resolution=u,h(a,w,t),r.push(w),y.push(w),w={},w.type="LH",w.tbx0=Math.ceil(l.tcx0/x),w.tby0=Math.ceil(l.tcy0/x-.5),w.tbx1=Math.ceil(l.tcx1/x),w.tby1=Math.ceil(l.tcy1/x-.5),w.resolution=u,h(a,w,t),r.push(w),y.push(w),w={},w.type="HH",w.tbx0=Math.ceil(l.tcx0/x-.5),w.tby0=Math.ceil(l.tcy0/x-.5),w.tbx1=Math.ceil(l.tcx1/x-.5),w.tby1=Math.ceil(l.tcy1/x-.5),w.resolution=u,h(a,w,t),r.push(w),y.push(w),u.subbands=y}}l.resolutions=o,l.subbands=r}var z=d.codingStyleDefaultParameters.progressionOrder;switch(z){case 0:d.packetsIterator=new j(a);break;case 1:d.packetsIterator=new k(a);break;case 2:d.packetsIterator=new m(a);break;case 3:d.packetsIterator=new p(a);break;case 4:d.packetsIterator=new q(a);break;default:throw new Error("JPX Error: Unsupported progression order "+z)}}function u(a,b,c,d){function e(a){for(;a>m;){var d=b[c+k];k++,n?(j=j<<7|d,m+=7,n=!1):(j=j<<8|d,m+=8),255===d&&(n=!0)}return m-=a,j>>>m&(1<<a)-1}function f(a){return 255===b[c+k-1]&&b[c+k]===a?(g(1),!0):255===b[c+k]&&b[c+k+1]===a?(g(2),!0):!1}function g(a){k+=a}function h(){m=0,n&&(k++,n=!1)}function i(){if(0===e(1))return 1;if(0===e(1))return 2;var a=e(2);return 3>a?a+3:(a=e(5),31>a?a+6:(a=e(7),a+37))}for(var j,k=0,m=0,n=!1,o=a.currentTile.index,p=a.tiles[o],q=a.COD.sopMarkerUsed,r=a.COD.ephMarkerUsed,s=p.packetsIterator;d>k;){h(),q&&f(145)&&g(4);var t=s.nextPacket();if(e(1)){for(var u,v=t.layerNumber,w=[],x=0,y=t.codeblocks.length;y>x;x++){u=t.codeblocks[x];var z,C=u.precinct,D=u.cbx-C.cbxMin,E=u.cby-C.cbyMin,F=!1,G=!1;if(void 0!==u.included)F=!!e(1);else{C=u.precinct;var H,I;if(void 0!==C.inclusionTree)H=C.inclusionTree;else{var J=C.cbxMax-C.cbxMin+1,K=C.cbyMax-C.cbyMin+1;
-H=new B(J,K,v),I=new A(J,K),C.inclusionTree=H,C.zeroBitPlanesTree=I}if(H.reset(D,E,v))for(;;){if(!e(1)){H.incrementValue(v);break}if(z=!H.nextLevel()){u.included=!0,F=G=!0;break}}}if(F){if(G){for(I=C.zeroBitPlanesTree,I.reset(D,E);;)if(e(1)){if(z=!I.nextLevel())break}else I.incrementValue();u.zeroBitPlanes=I.value}for(var L=i();e(1);)u.Lblock++;var M=l(L),N=(1<<M>L?M-1:M)+u.Lblock,O=e(N);w.push({codeblock:u,codingpasses:L,dataLength:O})}}for(h(),r&&f(146);w.length>0;){var P=w.shift();u=P.codeblock,void 0===u.data&&(u.data=[]),u.data.push({data:b,start:c+k,end:c+k+P.dataLength,codingpasses:P.codingpasses}),k+=P.dataLength}}}return k}function v(a,b,c,d,e,f,g,h){for(var i=d.tbx0,j=d.tby0,k=d.tbx1-d.tbx0,l=d.codeblocks,m="H"===d.type.charAt(0)?1:0,n="H"===d.type.charAt(1)?b:0,o=0,p=l.length;p>o;++o){var q=l[o],r=q.tbx1_-q.tbx0_,s=q.tby1_-q.tby0_;if(0!==r&&0!==s&&void 0!==q.data){var t,u;t=new C(r,s,q.subbandType,q.zeroBitPlanes,f),u=2;var v,w,x,y=q.data,z=0,A=0;for(v=0,w=y.length;w>v;v++)x=y[v],z+=x.end-x.start,A+=x.codingpasses;var B=new Uint8Array(z),D=0;for(v=0,w=y.length;w>v;v++){x=y[v];var E=x.data.subarray(x.start,x.end);B.set(E,D),D+=E.length}var F=new fd(B,0,z);for(t.setDecoder(F),v=0;A>v;v++){switch(u){case 0:t.runSignificancePropogationPass();break;case 1:t.runMagnitudeRefinementPass();break;case 2:t.runCleanupPass(),h&&t.checkSegmentationSymbol()}u=(u+1)%3}var G,H,I,J=q.tbx0_-i+(q.tby0_-j)*k,K=t.coefficentsSign,L=t.coefficentsMagnitude,M=t.bitsDecoded,N=g?0:.5;D=0;var O="LL"!==d.type;for(v=0;s>v;v++){var P=J/k|0,Q=2*P*(b-k)+m+n;for(G=0;r>G;G++){if(H=L[D],0!==H){H=(H+N)*e,0!==K[D]&&(H=-H),I=M[D];var R=O?Q+(J<<1):J;g&&I>=f?a[R]=H:a[R]=H*(1<<f-I)}J++,D++}J+=k-r}}}}function w(a,b,c){for(var d=b.components[c],e=d.codingStyleParameters,f=d.quantizationParameters,g=e.decompositionLevelsCount,h=f.SPqcds,i=f.scalarExpounded,j=f.guardBits,k=e.segmentationSymbolUsed,l=a.components[c].precision,m=e.reversibleTransformation,n=m?new F:new E,o=[],p=0,q=0;g>=q;q++){for(var r=d.resolutions[q],s=r.trx1-r.trx0,t=r.try1-r.try0,u=new Float32Array(s*t),w=0,x=r.subbands.length;x>w;w++){var y,A;i?(y=h[p].mu,A=h[p].epsilon,p++):(y=h[0].mu,A=h[0].epsilon+(q>0?1-q:0));var B=r.subbands[w],C=z[B.type],D=m?1:Math.pow(2,l+C-A)*(1+y/2048),G=j+A-1;v(u,s,t,B,D,G,m,k)}o.push({width:s,height:t,items:u})}var H=n.calculate(o,d.tcx0,d.tcy0);return{left:d.tcx0,top:d.tcy0,width:H.width,height:H.height,items:H.items}}function x(a){for(var b=a.SIZ,c=a.components,d=b.Csiz,e=[],f=0,g=a.tiles.length;g>f;f++){var h,i=a.tiles[f],j=[];for(h=0;d>h;h++)j[h]=w(a,i,h);var k,l,m,n,o,p,q,r,s,t,u,v,x,y,z,A=j[0],B=new Uint8Array(A.items.length*d),C={left:A.left,top:A.top,width:A.width,height:A.height,items:B},D=0;if(i.codingStyleDefaultParameters.multipleComponentTransform){var E=4===d,F=j[0].items,G=j[1].items,H=j[2].items,I=E?j[3].items:null;k=c[0].precision-8,l=(128<<k)+.5,m=255*(1<<k),o=.5*m,n=-o;var J=i.components[0],K=d-3;if(q=F.length,J.codingStyleParameters.reversibleTransformation)for(p=0;q>p;p++,D+=K)r=F[p]+l,s=G[p],t=H[p],v=r-(t+s>>2),u=v+t,x=v+s,B[D++]=0>=u?0:u>=m?255:u>>k,B[D++]=0>=v?0:v>=m?255:v>>k,B[D++]=0>=x?0:x>=m?255:x>>k;else for(p=0;q>p;p++,D+=K)r=F[p]+l,s=G[p],t=H[p],u=r+1.402*t,v=r-.34413*s-.71414*t,x=r+1.772*s,B[D++]=0>=u?0:u>=m?255:u>>k,B[D++]=0>=v?0:v>=m?255:v>>k,B[D++]=0>=x?0:x>=m?255:x>>k;if(E)for(p=0,D=3;q>p;p++,D+=4)y=I[p],B[D]=n>=y?0:y>=o?255:y+l>>k}else for(h=0;d>h;h++){var L=j[h].items;for(k=c[h].precision-8,l=(128<<k)+.5,m=127.5*(1<<k),n=-m,D=h,p=0,q=L.length;q>p;p++)z=L[p],B[D]=n>=z?0:z>=m?255:z+l>>k,D+=d}e.push(C)}return e}function y(a,b){for(var c=a.SIZ,d=c.Csiz,e=a.tiles[b],f=0;d>f;f++){var g=e.components[f],h=void 0!==a.currentTile.QCC[f]?a.currentTile.QCC[f]:a.currentTile.QCD;g.quantizationParameters=h;var i=void 0!==a.currentTile.COC[f]?a.currentTile.COC[f]:a.currentTile.COD;g.codingStyleParameters=i}e.codingStyleDefaultParameters=a.currentTile.COD}var z={LL:0,LH:1,HL:1,HH:2};c.prototype={parse:function(c){var d=n(c,0);if(65359===d)return void this.parseCodestream(c,0,c.length);for(var e=0,f=c.length;f>e;){var g=8,h=o(c,e),i=o(c,e+4);if(e+=g,1===h&&(h=4294967296*o(c,e)+o(c,e+4),e+=8,g+=8),0===h&&(h=f-e+g),g>h)throw new Error("JPX Error: Invalid box field size");var j=h-g,k=!0;switch(i){case 1785737832:k=!1;break;case 1668246642:var l=c[e];c[e+1],c[e+2];if(1===l){var m=o(c,e+3);switch(m){case 16:case 17:case 18:break;default:b("Unknown colorspace "+m)}}else 2===l&&a("ICC profile not supported");break;case 1785737827:this.parseCodestream(c,e,e+j);break;case 1783636e3:218793738!==o(c,e)&&b("Invalid JP2 signature");break;case 1783634458:case 1718909296:case 1920099697:case 1919251232:case 1768449138:break;default:var p=String.fromCharCode(i>>24&255,i>>16&255,i>>8&255,255&i);b("Unsupported header type "+i+" ("+p+")")}k&&(e+=j)}},parseImageProperties:function(a){for(var b=a.getByte();b>=0;){var c=b;b=a.getByte();var d=c<<8|b;if(65361===d){a.skip(4);var e=a.getInt32()>>>0,f=a.getInt32()>>>0,g=a.getInt32()>>>0,h=a.getInt32()>>>0;a.skip(16);var i=a.getUint16();return this.width=e-g,this.height=f-h,this.componentsCount=i,void(this.bitsPerComponent=8)}}throw new Error("JPX Error: No size marker found in JPX stream")},parseCodestream:function(a,c,f){var g={};try{for(var h=!1,i=c;f>i+1;){var j=n(a,i);i+=2;var k,l,m,p,q,r,s=0;switch(j){case 65359:g.mainHeader=!0;break;case 65497:break;case 65361:s=n(a,i);var v={};v.Xsiz=o(a,i+4),v.Ysiz=o(a,i+8),v.XOsiz=o(a,i+12),v.YOsiz=o(a,i+16),v.XTsiz=o(a,i+20),v.YTsiz=o(a,i+24),v.XTOsiz=o(a,i+28),v.YTOsiz=o(a,i+32);var w=n(a,i+36);v.Csiz=w;var z=[];k=i+38;for(var A=0;w>A;A++){var B={precision:(127&a[k])+1,isSigned:!!(128&a[k]),XRsiz:a[k+1],YRsiz:a[k+1]};d(B,v),z.push(B)}g.SIZ=v,g.components=z,e(g,z),g.QCC=[],g.COC=[];break;case 65372:s=n(a,i);var C={};switch(k=i+2,l=a[k++],31&l){case 0:p=8,q=!0;break;case 1:p=16,q=!1;break;case 2:p=16,q=!0;break;default:throw new Error("JPX Error: Invalid SQcd value "+l)}for(C.noQuantization=8===p,C.scalarExpounded=q,C.guardBits=l>>5,m=[];s+i>k;){var D={};8===p?(D.epsilon=a[k++]>>3,D.mu=0):(D.epsilon=a[k]>>3,D.mu=(7&a[k])<<8|a[k+1],k+=2),m.push(D)}C.SPqcds=m,g.mainHeader?g.QCD=C:(g.currentTile.QCD=C,g.currentTile.QCC=[]);break;case 65373:s=n(a,i);var E={};k=i+2;var F;switch(g.SIZ.Csiz<257?F=a[k++]:(F=n(a,k),k+=2),l=a[k++],31&l){case 0:p=8,q=!0;break;case 1:p=16,q=!1;break;case 2:p=16,q=!0;break;default:throw new Error("JPX Error: Invalid SQcd value "+l)}for(E.noQuantization=8===p,E.scalarExpounded=q,E.guardBits=l>>5,m=[];s+i>k;)D={},8===p?(D.epsilon=a[k++]>>3,D.mu=0):(D.epsilon=a[k]>>3,D.mu=(7&a[k])<<8|a[k+1],k+=2),m.push(D);E.SPqcds=m,g.mainHeader?g.QCC[F]=E:g.currentTile.QCC[F]=E;break;case 65362:s=n(a,i);var G={};k=i+2;var H=a[k++];G.entropyCoderWithCustomPrecincts=!!(1&H),G.sopMarkerUsed=!!(2&H),G.ephMarkerUsed=!!(4&H),G.progressionOrder=a[k++],G.layersCount=n(a,k),k+=2,G.multipleComponentTransform=a[k++],G.decompositionLevelsCount=a[k++],G.xcb=(15&a[k++])+2,G.ycb=(15&a[k++])+2;var I=a[k++];if(G.selectiveArithmeticCodingBypass=!!(1&I),G.resetContextProbabilities=!!(2&I),G.terminationOnEachCodingPass=!!(4&I),G.verticalyStripe=!!(8&I),G.predictableTermination=!!(16&I),G.segmentationSymbolUsed=!!(32&I),G.reversibleTransformation=a[k++],G.entropyCoderWithCustomPrecincts){for(var J=[];s+i>k;){var K=a[k++];J.push({PPx:15&K,PPy:K>>4})}G.precinctsSizes=J}var L=[];if(G.selectiveArithmeticCodingBypass&&L.push("selectiveArithmeticCodingBypass"),G.resetContextProbabilities&&L.push("resetContextProbabilities"),G.terminationOnEachCodingPass&&L.push("terminationOnEachCodingPass"),G.verticalyStripe&&L.push("verticalyStripe"),G.predictableTermination&&L.push("predictableTermination"),L.length>0)throw h=!0,new Error("JPX Error: Unsupported COD options ("+L.join(", ")+")");g.mainHeader?g.COD=G:(g.currentTile.COD=G,g.currentTile.COC=[]);break;case 65424:s=n(a,i),r={},r.index=n(a,i+2),r.length=o(a,i+4),r.dataEnd=r.length+i-2,r.partIndex=a[i+8],r.partsCount=a[i+9],g.mainHeader=!1,0===r.partIndex&&(r.COD=g.COD,r.COC=g.COC.slice(0),r.QCD=g.QCD,r.QCC=g.QCC.slice(0)),g.currentTile=r;break;case 65427:r=g.currentTile,0===r.partIndex&&(y(g,r.index),t(g)),s=r.dataEnd-i,u(g,a,i,s);break;case 65365:case 65367:case 65368:case 65380:s=n(a,i);break;case 65363:throw new Error("JPX Error: Codestream code 0xFF53 (COC) is not implemented");default:throw new Error("JPX Error: Unknown codestream code: "+j.toString(16))}i+=s}}catch(M){if(h||this.failOnCorruptedImage)throw M;b("Trying to recover from "+M.message)}this.tiles=x(g),this.width=g.SIZ.Xsiz-g.SIZ.XOsiz,this.height=g.SIZ.Ysiz-g.SIZ.YOsiz,this.componentsCount=g.SIZ.Csiz}};var A=function(){function a(a,b){var c=l(Math.max(a,b))+1;this.levels=[];for(var d=0;c>d;d++){var e={width:a,height:b,items:[]};this.levels.push(e),a=Math.ceil(a/2),b=Math.ceil(b/2)}}return a.prototype={reset:function(a,b){for(var c,d=0,e=0;d<this.levels.length;){c=this.levels[d];var f=a+b*c.width;if(void 0!==c.items[f]){e=c.items[f];break}c.index=f,a>>=1,b>>=1,d++}d--,c=this.levels[d],c.items[c.index]=e,this.currentLevel=d,delete this.value},incrementValue:function(){var a=this.levels[this.currentLevel];a.items[a.index]++},nextLevel:function(){var a=this.currentLevel,b=this.levels[a],c=b.items[b.index];return a--,0>a?(this.value=c,!1):(this.currentLevel=a,b=this.levels[a],b.items[b.index]=c,!0)}},a}(),B=function(){function a(a,b,c){var d=l(Math.max(a,b))+1;this.levels=[];for(var e=0;d>e;e++){for(var f=new Uint8Array(a*b),g=0,h=f.length;h>g;g++)f[g]=c;var i={width:a,height:b,items:f};this.levels.push(i),a=Math.ceil(a/2),b=Math.ceil(b/2)}}return a.prototype={reset:function(a,b,c){for(var d=0;d<this.levels.length;){var e=this.levels[d],f=a+b*e.width;e.index=f;var g=e.items[f];if(255===g)break;if(g>c)return this.currentLevel=d,this.propagateValues(),!1;a>>=1,b>>=1,d++}return this.currentLevel=d-1,!0},incrementValue:function(a){var b=this.levels[this.currentLevel];b.items[b.index]=a+1,this.propagateValues()},propagateValues:function(){for(var a=this.currentLevel,b=this.levels[a],c=b.items[b.index];--a>=0;)b=this.levels[a],b.items[b.index]=c},nextLevel:function(){var a=this.currentLevel,b=this.levels[a],c=b.items[b.index];return b.items[b.index]=255,a--,0>a?!1:(this.currentLevel=a,b=this.levels[a],b.items[b.index]=c,!0)}},a}(),C=function(){function a(a,b,c,g,h){this.width=a,this.height=b,this.contextLabelTable="HH"===c?f:"HL"===c?e:d;var i=a*b;this.neighborsSignificance=new Uint8Array(i),this.coefficentsSign=new Uint8Array(i),this.coefficentsMagnitude=h>14?new Uint32Array(i):h>6?new Uint16Array(i):new Uint8Array(i),this.processingFlags=new Uint8Array(i);var j=new Uint8Array(i);if(0!==g)for(var k=0;i>k;k++)j[k]=g;this.bitsDecoded=j,this.reset()}var b=17,c=18,d=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),e=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),f=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);return a.prototype={setDecoder:function(a){this.decoder=a},reset:function(){this.contexts=new Int8Array(19),this.contexts[0]=8,this.contexts[b]=92,this.contexts[c]=6},setNeighborsSignificance:function(a,b,c){var d,e=this.neighborsSignificance,f=this.width,g=this.height,h=b>0,i=f>b+1;a>0&&(d=c-f,h&&(e[d-1]+=16),i&&(e[d+1]+=16),e[d]+=4),g>a+1&&(d=c+f,h&&(e[d-1]+=16),i&&(e[d+1]+=16),e[d]+=4),h&&(e[c-1]+=1),i&&(e[c+1]+=1),e[c]|=128},runSignificancePropogationPass:function(){for(var a=this.decoder,b=this.width,c=this.height,d=this.coefficentsMagnitude,e=this.coefficentsSign,f=this.neighborsSignificance,g=this.processingFlags,h=this.contexts,i=this.contextLabelTable,j=this.bitsDecoded,k=-2,l=1,m=2,n=0;c>n;n+=4)for(var o=0;b>o;o++)for(var p=n*b+o,q=0;4>q;q++,p+=b){var r=n+q;if(r>=c)break;if(g[p]&=k,!d[p]&&f[p]){var s=i[f[p]],t=a.readBit(h,s);if(t){var u=this.decodeSignBit(r,o,p);e[p]=u,d[p]=1,this.setNeighborsSignificance(r,o,p),g[p]|=m}j[p]++,g[p]|=l}}},decodeSignBit:function(a,b,c){var d,e,f,g,h,i,j=this.width,k=this.height,l=this.coefficentsMagnitude,m=this.coefficentsSign;g=b>0&&0!==l[c-1],j>b+1&&0!==l[c+1]?(f=m[c+1],g?(e=m[c-1],d=1-f-e):d=1-f-f):g?(e=m[c-1],d=1-e-e):d=0;var n=3*d;return g=a>0&&0!==l[c-j],k>a+1&&0!==l[c+j]?(f=m[c+j],g?(e=m[c-j],d=1-f-e+n):d=1-f-f+n):g?(e=m[c-j],d=1-e-e+n):d=n,d>=0?(h=9+d,i=this.decoder.readBit(this.contexts,h)):(h=9-d,i=1^this.decoder.readBit(this.contexts,h)),i},runMagnitudeRefinementPass:function(){for(var a,b=this.decoder,c=this.width,d=this.height,e=this.coefficentsMagnitude,f=this.neighborsSignificance,g=this.contexts,h=this.bitsDecoded,i=this.processingFlags,j=1,k=2,l=c*d,m=4*c,n=0;l>n;n=a){a=Math.min(l,n+m);for(var o=0;c>o;o++)for(var p=n+o;a>p;p+=c)if(e[p]&&0===(i[p]&j)){var q=16;if(0!==(i[p]&k)){i[p]^=k;var r=127&f[p];q=0===r?15:14}var s=b.readBit(g,q);e[p]=e[p]<<1|s,h[p]++,i[p]|=j}}},runCleanupPass:function(){for(var a,d=this.decoder,e=this.width,f=this.height,g=this.neighborsSignificance,h=this.coefficentsMagnitude,i=this.coefficentsSign,j=this.contexts,k=this.contextLabelTable,l=this.bitsDecoded,m=this.processingFlags,n=1,o=2,p=e,q=2*e,r=3*e,s=0;f>s;s=a){a=Math.min(s+4,f);for(var t=s*e,u=f>s+3,v=0;e>v;v++){var w,x=t+v,y=u&&0===m[x]&&0===m[x+p]&&0===m[x+q]&&0===m[x+r]&&0===g[x]&&0===g[x+p]&&0===g[x+q]&&0===g[x+r],z=0,A=x,B=s;if(y){var C=d.readBit(j,c);if(!C){l[x]++,l[x+p]++,l[x+q]++,l[x+r]++;continue}z=d.readBit(j,b)<<1|d.readBit(j,b),0!==z&&(B=s+z,A+=z*e),w=this.decodeSignBit(B,v,A),i[A]=w,h[A]=1,this.setNeighborsSignificance(B,v,A),m[A]|=o,A=x;for(var D=s;B>=D;D++,A+=e)l[A]++;z++}for(B=s+z;a>B;B++,A+=e)if(!h[A]&&0===(m[A]&n)){var E=k[g[A]],F=d.readBit(j,E);1===F&&(w=this.decodeSignBit(B,v,A),i[A]=w,h[A]=1,this.setNeighborsSignificance(B,v,A),m[A]|=o),l[A]++}}}},checkSegmentationSymbol:function(){var a=this.decoder,c=this.contexts,d=a.readBit(c,b)<<3|a.readBit(c,b)<<2|a.readBit(c,b)<<1|a.readBit(c,b);if(10!==d)throw new Error("JPX Error: Invalid segmentation symbol")}},a}(),D=function(){function a(){}return a.prototype.calculate=function(a,b,c){for(var d=a[0],e=1,f=a.length;f>e;e++)d=this.iterate(d,a[e],b,c);return d},a.prototype.extend=function(a,b,c){var d=b-1,e=b+1,f=b+c-2,g=b+c;a[d--]=a[e++],a[g++]=a[f--],a[d--]=a[e++],a[g++]=a[f--],a[d--]=a[e++],a[g++]=a[f--],a[d]=a[e],a[g]=a[f]},a.prototype.iterate=function(a,b,c,d){var e,f,g,h,i,j,k=a.width,l=a.height,m=a.items,n=b.width,o=b.height,p=b.items;for(g=0,e=0;l>e;e++)for(h=2*e*n,f=0;k>f;f++,g++,h+=2)p[h]=m[g];m=a.items=null;var q=4,r=new Float32Array(n+2*q);if(1===n){if(0!==(1&c))for(j=0,g=0;o>j;j++,g+=n)p[g]*=.5}else for(j=0,g=0;o>j;j++,g+=n)r.set(p.subarray(g,g+n),q),this.extend(r,q,n),this.filter(r,q,n),p.set(r.subarray(q,q+n),g);var s=16,t=[];for(e=0;s>e;e++)t.push(new Float32Array(o+2*q));var u,v=0;if(a=q+o,1===o){if(0!==(1&d))for(i=0;n>i;i++)p[i]*=.5}else for(i=0;n>i;i++){if(0===v){for(s=Math.min(n-i,s),g=i,h=q;a>h;g+=n,h++)for(u=0;s>u;u++)t[u][h]=p[g+u];v=s}v--;var w=t[v];if(this.extend(w,q,o),this.filter(w,q,o),0===v)for(g=i-s+1,h=q;a>h;g+=n,h++)for(u=0;s>u;u++)p[g+u]=t[u][h]}return{width:n,height:o,items:p}},a}(),E=function(){function a(){D.call(this)}return a.prototype=Object.create(D.prototype),a.prototype.filter=function(a,b,c){var d=c>>1;b=0|b;var e,f,g,h,i=-1.586134342059924,j=-.052980118572961,k=.882911075530934,l=.443506852043971,m=1.230174104914001,n=1/m;for(e=b-3,f=d+4;f--;e+=2)a[e]*=n;for(e=b-2,g=l*a[e-1],f=d+3;f--&&(h=l*a[e+1],a[e]=m*a[e]-g-h,f--);e+=2)e+=2,g=l*a[e+1],a[e]=m*a[e]-g-h;for(e=b-1,g=k*a[e-1],f=d+2;f--&&(h=k*a[e+1],a[e]-=g+h,f--);e+=2)e+=2,g=k*a[e+1],a[e]-=g+h;for(e=b,g=j*a[e-1],f=d+1;f--&&(h=j*a[e+1],a[e]-=g+h,f--);e+=2)e+=2,g=j*a[e+1],a[e]-=g+h;if(0!==d)for(e=b+1,g=i*a[e-1],f=d;f--&&(h=i*a[e+1],a[e]-=g+h,f--);e+=2)e+=2,g=i*a[e+1],a[e]-=g+h},a}(),F=function(){function a(){D.call(this)}return a.prototype=Object.create(D.prototype),a.prototype.filter=function(a,b,c){var d=c>>1;b=0|b;var e,f;for(e=b,f=d+1;f--;e+=2)a[e]-=a[e-1]+a[e+1]+2>>2;for(e=b+1,f=d;f--;e+=2)a[e]+=a[e-1]+a[e+1]>>1},a}();return c}(),id=function(){function a(){}function b(a,b,c){this.data=a,this.start=b,this.end=c}function d(a,b,c){function d(a){for(var b=0,d=0;a>d;d++){var g=c.readBit(e,f);f=256>f?f<<1|g:511&(f<<1|g)|256,b=b<<1|g}return b>>>0}var e=a.getContexts(b),f=1,g=d(1),h=d(1)?d(1)?d(1)?d(1)?d(1)?d(32)+4436:d(12)+340:d(8)+84:d(6)+20:d(4)+4:d(2);return 0===g?h:h>0?-h:null}function e(a,b,c){for(var d=a.getContexts("IAID"),e=1,f=0;c>f;f++){var g=b.readBit(d,e);e=e<<1|g}return 31>c?e&(1<<c)-1:2147483647&e}function f(a,b,c){var d,e,f,g,h,i,j,k=c.decoder,l=c.contextCache.getContexts("GB"),m=[],n=31735;for(e=0;b>e;e++)for(h=m[e]=new Uint8Array(a),i=1>e?h:m[e-1],j=2>e?h:m[e-2],d=j[0]<<13|j[1]<<12|j[2]<<11|i[0]<<7|i[1]<<6|i[2]<<5|i[3]<<4,f=0;a>f;f++)h[f]=g=k.readBit(l,d),d=(d&n)<<1|(a>f+3?j[f+3]<<11:0)|(a>f+4?i[f+4]<<4:0)|g;return m}function h(a,b,d,e,g,h,i,j){if(a&&c("JBIG2 error: MMR encoding is not supported"),0===e&&!h&&!g&&4===i.length&&3===i[0].x&&-1===i[0].y&&-3===i[1].x&&-1===i[1].y&&2===i[2].x&&-2===i[2].y&&-2===i[3].x&&-2===i[3].y)return f(b,d,j);var k=!!h,l=y[e].concat(i);l.sort(function(a,b){return a.y-b.y||a.x-b.x});var m,n,o=l.length,p=new Int8Array(o),q=new Int8Array(o),r=[],s=0,t=0,u=0,v=0;for(n=0;o>n;n++)p[n]=l[n].x,q[n]=l[n].y,t=Math.min(t,l[n].x),u=Math.max(u,l[n].x),v=Math.min(v,l[n].y),o-1>n&&l[n].y===l[n+1].y&&l[n].x===l[n+1].x-1?s|=1<<o-1-n:r.push(n);var w=r.length,x=new Int8Array(w),z=new Int8Array(w),B=new Uint16Array(w);for(m=0;w>m;m++)n=r[m],x[m]=l[n].x,z[m]=l[n].y,B[m]=1<<o-1-n;for(var C,D,E,F,G,H=-t,I=-v,J=b-u,K=A[e],L=new Uint8Array(b),M=[],N=j.decoder,O=j.contextCache.getContexts("GB"),P=0,Q=0,R=0;d>R;R++){if(g){var S=N.readBit(O,K);if(P^=S){M.push(L);continue}}for(L=new Uint8Array(L),M.push(L),C=0;b>C;C++)if(k&&h[R][C])L[C]=0;else{if(C>=H&&J>C&&R>=I)for(Q=Q<<1&s,n=0;w>n;n++)D=R+z[n],E=C+x[n],F=M[D][E],F&&(F=B[n],Q|=F);else for(Q=0,G=o-1,n=0;o>n;n++,G--)E=C+p[n],E>=0&&b>E&&(D=R+q[n],D>=0&&(F=M[D][E],F&&(Q|=F<<G)));var T=N.readBit(O,Q);L[C]=T}}return M}function i(a,b,d,e,f,g,h,i,j){var k=z[d].coding;0===d&&(k=k.concat([i[0]]));var l,m=k.length,n=new Int32Array(m),o=new Int32Array(m);for(l=0;m>l;l++)n[l]=k[l].x,o[l]=k[l].y;var p=z[d].reference;0===d&&(p=p.concat([i[1]]));var q=p.length,r=new Int32Array(q),s=new Int32Array(q);for(l=0;q>l;l++)r[l]=p[l].x,s[l]=p[l].y;for(var t=e[0].length,u=e.length,v=B[d],w=[],x=j.decoder,y=j.contextCache.getContexts("GR"),A=0,C=0;b>C;C++){if(h){var D=x.readBit(y,v);A^=D,A&&c("JBIG2 error: prediction is not supported")}var E=new Uint8Array(a);w.push(E);for(var F=0;a>F;F++){var G,H,I=0;for(l=0;m>l;l++)G=C+o[l],H=F+n[l],0>G||0>H||H>=a?I<<=1:I=I<<1|w[G][H];for(l=0;q>l;l++)G=C+s[l]+g,H=F+r[l]+f,0>G||G>=u||0>H||H>=t?I<<=1:I=I<<1|e[G][H];var J=x.readBit(y,I);E[F]=J}}return w}function j(a,b,f,g,j,m,n,o,p,q,r){a&&c("JBIG2 error: huffman is not supported");for(var s=[],t=0,u=l(f.length+g),v=r.decoder,w=r.contextCache;s.length<g;){var x=d(w,"IADH",v);t+=x;for(var y=0,z=0;;){var A=d(w,"IADW",v);if(null===A)break;y+=A,z+=y;var B;if(b){var C=d(w,"IAAI",v);if(C>1)B=k(a,b,y,t,0,C,1,f.concat(s),u,0,0,1,0,m,p,q,r);else{var D=e(w,v,u),E=d(w,"IARDX",v),F=d(w,"IARDY",v),G=D<f.length?f[D]:s[D-f.length];B=i(y,t,p,G,E,F,!1,q,r)}}else B=h(!1,y,t,n,!1,null,o,r);s.push(B)}}for(var H=[],I=[],J=!1,K=f.length+g;I.length<K;){for(var L=d(w,"IAEX",v);L--;)I.push(J);J=!J}for(var M=0,N=f.length;N>M;M++)I[M]&&H.push(f[M]);for(var O=0;g>O;M++,O++)I[M]&&H.push(s[O]);return H}function k(a,b,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u){a&&c("JBIG2 error: huffman is not supported");var v,w,x=[];for(v=0;g>v;v++){if(w=new Uint8Array(f),h)for(var y=0;f>y;y++)w[y]=h;x.push(w)}var z=u.decoder,A=u.contextCache,B=-d(A,"IADT",z),C=0;for(v=0;j>v;){var D=d(A,"IADT",z);B+=D;var E=d(A,"IAFS",z);C+=E;for(var F=C;;){var G=1===k?0:d(A,"IAIT",z),H=k*B+G,I=e(A,z,m),J=b&&d(A,"IARI",z),K=l[I],L=K[0].length,M=K.length;if(J){var N=d(A,"IARDW",z),O=d(A,"IARDH",z),P=d(A,"IARDX",z),Q=d(A,"IARDY",z);L+=N,M+=O,K=i(L,M,s,K,(N>>1)+P,(O>>1)+Q,!1,t,u)}var R,S,T,U=H-(1&p?0:M),V=F-(2&p?L:0);if(n){for(R=0;M>R;R++)if(w=x[V+R]){T=K[R];var W=Math.min(f-U,L);switch(q){case 0:for(S=0;W>S;S++)w[U+S]|=T[S];break;case 2:for(S=0;W>S;S++)w[U+S]^=T[S];break;default:c("JBIG2 error: operator "+q+" is not supported")}}F+=M-1}else{for(S=0;M>S;S++)if(w=x[U+S])switch(T=K[S],q){case 0:for(R=0;L>R;R++)w[V+R]|=T[R];break;case 2:for(R=0;L>R;R++)w[V+R]^=T[R];break;default:c("JBIG2 error: operator "+q+" is not supported")}F+=L-1}v++;var X=d(A,"IADS",z);if(null===X)break;F+=X+o}}return x}function p(a,b){var d={};d.number=o(a,b);var e=a[b+4],f=63&e;x[f]||c("JBIG2 error: invalid segment type: "+f),d.type=f,d.typeName=x[f],d.deferredNonRetain=!!(128&e);var g=!!(64&e),h=a[b+5],i=h>>5&7,j=[31&h],k=b+6;if(7===h){i=536870911&o(a,k-1),k+=3;var l=i+7>>3;for(j[0]=a[k++];--l>0;)j.push(a[k++])}else(5===h||6===h)&&c("JBIG2 error: invalid referred-to flags");d.retainBits=j;var m,p,q=d.number<=256?1:d.number<=65536?2:4,s=[];for(m=0;i>m;m++){var t=1===q?a[k]:2===q?n(a,k):o(a,k);s.push(t),k+=q}if(d.referredTo=s,g?(d.pageAssociation=o(a,k),k+=4):d.pageAssociation=a[k++],d.length=o(a,k),k+=4,4294967295===d.length)if(38===f){var u=r(a,k),v=a[k+C],w=!!(1&v),y=6,z=new Uint8Array(y);for(w||(z[0]=255,z[1]=172),z[2]=u.height>>>24&255,z[3]=u.height>>16&255,z[4]=u.height>>8&255,z[5]=255&u.height,m=k,p=a.length;p>m;m++){for(var A=0;y>A&&z[A]===a[m+A];)A++;if(A===y){d.length=m+y;break}}4294967295===d.length&&c("JBIG2 error: segment end was not found")}else c("JBIG2 error: invalid unknown segment length");return d.headerEnd=k,d}function q(a,b,c,d){for(var e=[],f=c;d>f;){var g=p(b,f);f=g.headerEnd;var h={header:g,data:b};if(a.randomAccess||(h.start=f,f+=g.length,h.end=f),e.push(h),51===g.type)break}if(a.randomAccess)for(var i=0,j=e.length;j>i;i++)e[i].start=f,f+=e[i].header.length,e[i].end=f;return e}function r(a,b){return{width:o(a,b),height:o(a,b+4),x:o(a,b+8),y:o(a,b+12),combinationOperator:7&a[b+16]}}function s(a,b){var d,e,f,g,h=a.header,i=a.data,j=a.start,k=a.end;switch(h.type){case 0:var l={},p=n(i,j);if(l.huffman=!!(1&p),l.refinement=!!(2&p),l.huffmanDHSelector=p>>2&3,l.huffmanDWSelector=p>>4&3,l.bitmapSizeSelector=p>>6&1,l.aggregationInstancesSelector=p>>7&1,l.bitmapCodingContextUsed=!!(256&p),l.bitmapCodingContextRetained=!!(512&p),l.template=p>>10&3,l.refinementTemplate=p>>12&1,j+=2,!l.huffman){for(g=0===l.template?4:1,e=[],f=0;g>f;f++)e.push({x:m(i,j),y:m(i,j+1)}),j+=2;l.at=e}if(l.refinement&&!l.refinementTemplate){for(e=[],f=0;2>f;f++)e.push({x:m(i,j),y:m(i,j+1)}),j+=2;l.refinementAt=e}l.numberOfExportedSymbols=o(i,j),j+=4,l.numberOfNewSymbols=o(i,j),j+=4,d=[l,h.number,h.referredTo,i,j,k];break;case 6:case 7:var q={};q.info=r(i,j),j+=C;var s=n(i,j);if(j+=2,q.huffman=!!(1&s),q.refinement=!!(2&s),q.stripSize=1<<(s>>2&3),q.referenceCorner=s>>4&3,q.transposed=!!(64&s),q.combinationOperator=s>>7&3,q.defaultPixelValue=s>>9&1,q.dsOffset=s<<17>>27,q.refinementTemplate=s>>15&1,q.huffman){var t=n(i,j);j+=2,q.huffmanFS=3&t,q.huffmanDS=t>>2&3,q.huffmanDT=t>>4&3,q.huffmanRefinementDW=t>>6&3,q.huffmanRefinementDH=t>>8&3,q.huffmanRefinementDX=t>>10&3,q.huffmanRefinementDY=t>>12&3,q.huffmanRefinementSizeSelector=!!(14&t)}if(q.refinement&&!q.refinementTemplate){for(e=[],f=0;2>f;f++)e.push({x:m(i,j),y:m(i,j+1)}),j+=2;q.refinementAt=e}q.numberOfSymbolInstances=o(i,j),j+=4,q.huffman&&c("JBIG2 error: huffman is not supported"),d=[q,h.referredTo,i,j,k];break;case 38:case 39:var u={};u.info=r(i,j),j+=C;var v=i[j++];if(u.mmr=!!(1&v),u.template=v>>1&3,u.prediction=!!(8&v),!u.mmr){for(g=0===u.template?4:1,e=[],f=0;g>f;f++)e.push({x:m(i,j),y:m(i,j+1)}),j+=2;u.at=e}d=[u,i,j,k];break;case 48:var w={width:o(i,j),height:o(i,j+4),resolutionX:o(i,j+8),resolutionY:o(i,j+12)};4294967295===w.height&&delete w.height;var x=i[j+16];n(i,j+17);w.lossless=!!(1&x),w.refinement=!!(2&x),w.defaultPixelValue=x>>2&1,w.combinationOperator=x>>3&3,w.requiresBuffer=!!(32&x),w.combinationOperatorOverride=!!(64&x),d=[w];break;case 49:break;case 50:break;case 51:break;case 62:break;default:c("JBIG2 error: segment type "+h.typeName+"("+h.type+") is not implemented")}var y="on"+h.typeName;y in b&&b[y].apply(b,d)}function t(a,b){for(var c=0,d=a.length;d>c;c++)s(a[c],b)}function u(a){for(var b=new v,c=0,d=a.length;d>c;c++){var e=a[c],f=q({},e.data,e.start,e.end);t(f,b)}return b.buffer}function v(){}function w(){}a.prototype={getContexts:function(a){return a in this?this[a]:this[a]=new Int8Array(65536)}},b.prototype={get decoder(){var a=new fd(this.data,this.start,this.end);return g(this,"decoder",a)},get contextCache(){var b=new a;return g(this,"contextCache",b)}};var x=["SymbolDictionary",null,null,null,"IntermediateTextRegion",null,"ImmediateTextRegion","ImmediateLosslessTextRegion",null,null,null,null,null,null,null,null,"patternDictionary",null,null,null,"IntermediateHalftoneRegion",null,"ImmediateHalftoneRegion","ImmediateLosslessHalftoneRegion",null,null,null,null,null,null,null,null,null,null,null,null,"IntermediateGenericRegion",null,"ImmediateGenericRegion","ImmediateLosslessGenericRegion","IntermediateGenericRefinementRegion",null,"ImmediateGenericRefinementRegion","ImmediateLosslessGenericRefinementRegion",null,null,null,null,"PageInformation","EndOfPage","EndOfStripe","EndOfFile","Profiles","Tables",null,null,null,null,null,null,null,null,"Extension"],y=[[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:2,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-2,y:0},{x:-1,y:0}],[{x:-3,y:-1},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}]],z=[{coding:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:-1,y:1},{x:0,y:1},{x:1,y:1}]},{coding:[{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}]}],A=[39717,1941,229,405],B=[32,8],C=17;return v.prototype={onPageInformation:function(a){this.currentPageInfo=a;var b=a.width+7>>3,c=new Uint8Array(b*a.height);if(a.defaultPixelValue)for(var d=0,e=c.length;e>d;d++)c[d]=255;this.buffer=c},drawBitmap:function(a,b){var d,e,f,g,h=this.currentPageInfo,i=a.width,j=a.height,k=h.width+7>>3,l=h.combinationOperatorOverride?a.combinationOperator:h.combinationOperator,m=this.buffer,n=128>>(7&a.x),o=a.y*k+(a.x>>3);switch(l){case 0:for(d=0;j>d;d++){for(f=n,g=o,e=0;i>e;e++)b[d][e]&&(m[g]|=f),f>>=1,f||(f=128,g++);o+=k}break;case 2:for(d=0;j>d;d++){for(f=n,g=o,e=0;i>e;e++)b[d][e]&&(m[g]^=f),f>>=1,f||(f=128,g++);o+=k}break;default:c("JBIG2 error: operator "+l+" is not supported")}},onImmediateGenericRegion:function(a,c,d,e){var f=a.info,g=new b(c,d,e),i=h(a.mmr,f.width,f.height,a.template,a.prediction,null,a.at,g);this.drawBitmap(f,i)},onImmediateLosslessGenericRegion:function(){this.onImmediateGenericRegion.apply(this,arguments)},onSymbolDictionary:function(a,d,e,f,g,h){var i;a.huffman&&c("JBIG2 error: huffman is not supported");var k=this.symbols;k||(this.symbols=k={});for(var l=[],m=0,n=e.length;n>m;m++)l=l.concat(k[e[m]]);var o=new b(f,g,h);k[d]=j(a.huffman,a.refinement,l,a.numberOfNewSymbols,a.numberOfExportedSymbols,i,a.template,a.at,a.refinementTemplate,a.refinementAt,o)},onImmediateTextRegion:function(a,c,d,e,f){for(var g,h=a.info,i=this.symbols,j=[],m=0,n=c.length;n>m;m++)j=j.concat(i[c[m]]);var o=l(j.length),p=new b(d,e,f),q=k(a.huffman,a.refinement,h.width,h.height,a.defaultPixelValue,a.numberOfSymbolInstances,a.stripSize,j,o,a.transposed,a.dsOffset,a.referenceCorner,a.combinationOperator,g,a.refinementTemplate,a.refinementAt,p);this.drawBitmap(h,q)},onImmediateLosslessTextRegion:function(){this.onImmediateTextRegion.apply(this,arguments)}},w.prototype={parseChunks:function(a){return u(a)}},w}(),jd=(PDFJS.bidi=function(){function a(a){return 0!==(1&a)}function b(a){return 0===(1&a)}function c(a,b,c){for(var d=b,e=a.length;e>d;++d)if(a[d]!==c)return d;return d}function d(a,b,c,d){for(var e=b;c>e;++e)a[e]=d}function e(a,b,c){for(var d=b,e=c-1;e>d;++d,--e){var f=a[d];a[d]=a[e],a[e]=f}}function f(a,b,c){return{str:a,dir:c?"ttb":b?"ltr":"rtl"}}function g(g,l,m){var n=!0,o=g.length;if(0===o||m)return f(g,n,m);j.length=o,k.length=o;var p,q,r=0;for(p=0;o>p;++p){j[p]=g.charAt(p);var s=g.charCodeAt(p),t="L";255>=s?t=h[s]:s>=1424&&1524>=s?t="R":s>=1536&&1791>=s?t=i[255&s]:s>=1792&&2220>=s&&(t="AL"),("R"===t||"AL"===t||"AN"===t)&&r++,k[p]=t}if(0===r)return n=!0,f(g,n);-1===l&&(.3>o/r?(n=!0,l=0):(n=!1,l=1));var u=[];for(p=0;o>p;++p)u[p]=l;var v=a(l)?"R":"L",w=v,x=w,y=w;for(p=0;o>p;++p)"NSM"===k[p]?k[p]=y:y=k[p];y=w;var z;for(p=0;o>p;++p)z=k[p],"EN"===z?k[p]="AL"===y?"AN":"EN":("R"===z||"L"===z||"AL"===z)&&(y=z);for(p=0;o>p;++p)z=k[p],"AL"===z&&(k[p]="R");for(p=1;o-1>p;++p)"ES"===k[p]&&"EN"===k[p-1]&&"EN"===k[p+1]&&(k[p]="EN"),"CS"!==k[p]||"EN"!==k[p-1]&&"AN"!==k[p-1]||k[p+1]!==k[p-1]||(k[p]=k[p-1]);for(p=0;o>p;++p)if("EN"===k[p]){var A;for(A=p-1;A>=0&&"ET"===k[A];--A)k[A]="EN";for(A=p+1;o>A&&"ET"===k[A];--A)k[A]="EN"}for(p=0;o>p;++p)z=k[p],("WS"===z||"ES"===z||"ET"===z||"CS"===z)&&(k[p]="ON");for(y=w,p=0;o>p;++p)z=k[p],"EN"===z?k[p]="L"===y?"L":"EN":("R"===z||"L"===z)&&(y=z);for(p=0;o>p;++p)if("ON"===k[p]){var B=c(k,p+1,"ON"),C=w;p>0&&(C=k[p-1]);var D=x;o>B+1&&(D=k[B+1]),"L"!==C&&(C="R"),"L"!==D&&(D="R"),C===D&&d(k,p,B,C),p=B-1}for(p=0;o>p;++p)"ON"===k[p]&&(k[p]=v);for(p=0;o>p;++p)z=k[p],b(u[p])?"R"===z?u[p]+=1:("AN"===z||"EN"===z)&&(u[p]+=2):("L"===z||"AN"===z||"EN"===z)&&(u[p]+=1);var E,F=-1,G=99;for(p=0,q=u.length;q>p;++p)E=u[p],E>F&&(F=E),G>E&&a(E)&&(G=E);for(E=F;E>=G;--E){var H=-1;for(p=0,q=u.length;q>p;++p)u[p]<E?H>=0&&(e(j,H,p),H=-1):0>H&&(H=p);H>=0&&e(j,H,u.length)}for(p=0,q=j.length;q>p;++p){var I=j[p];("<"===I||">"===I)&&(j[p]="")}return f(j.join(""),n)}var h=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ON","CS","ON","CS","ON","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","ON","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","ON","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],i=["AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","AL","AL","AL","AL","AL","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL"],j=[],k=[];
-return g}(),function(a){function b(a){var b=3285377520;this.h1=a?4294967295&a:b,this.h2=a?4294967295&a:b}var c=4294901760,d=65535,e=!1;try{new Uint32Array(new Uint8Array(5).buffer,0,1)}catch(f){e=!0}return b.prototype={update:function(a){var b,f=e;if("string"==typeof a){var g=new Uint8Array(2*a.length),h=0;for(b=0;b<a.length;b++){var i=a.charCodeAt(b);255>=i?g[h++]=i:(g[h++]=i>>>8,g[h++]=255&i)}}else if(a instanceof Uint8Array)g=a,h=g.length;else{if(!("object"==typeof a&&"length"in a))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");g=a,h=g.length,f=!0}var j=h>>2,k=h-4*j,l=f?new la(g,j):new Uint32Array(g.buffer,0,j),m=0,n=0,o=this.h1,p=this.h2,q=3432918353,r=461845907,s=q&d,t=r&d;for(b=0;j>b;b++)1&b?(m=l[b],m=m*q&c|m*s&d,m=m<<15|m>>>17,m=m*r&c|m*t&d,o^=m,o=o<<13|o>>>19,o=5*o+3864292196):(n=l[b],n=n*q&c|n*s&d,n=n<<15|n>>>17,n=n*r&c|n*t&d,p^=n,p=p<<13|p>>>19,p=5*p+3864292196);switch(m=0,k){case 3:m^=g[4*j+2]<<16;case 2:m^=g[4*j+1]<<8;case 1:m^=g[4*j],m=m*q&c|m*s&d,m=m<<15|m>>>17,m=m*r&c|m*t&d,1&j?o^=m:p^=m}return this.h1=o,this.h2=p,this},hexdigest:function(){var a=this.h1,b=this.h2;a^=b>>>1,a=3981806797*a&c|36045*a&d,b=4283543511*b&c|(2950163797*(b<<16|a>>>16)&c)>>>16,a^=b>>>1,a=444984403*a&c|60499*a&d,b=3301882366*b&c|(3120437893*(b<<16|a>>>16)&c)>>>16,a^=b>>>1;for(var e=0,f=[a,b],g="";e<f.length;e++){for(var h=(f[e]>>>0).toString(16);h.length<8;)h="0"+h;g+=h}return g}},b}())}.call("undefined"==typeof window?this:window),PDFJS.workerSrc||"undefined"==typeof document||(PDFJS.workerSrc=function(){"use strict";var a=document.body||document.getElementsByTagName("head")[0],b=a.lastChild.src;return b&&b.replace(/\.js$/i,".worker.js")}()),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split("/"),o=s.map,p=o&&o["*"]||{};if(a&&"."===a.charAt(0))if(b){for(a=a.split("/"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,"")),a=n.slice(0,n.length-1).concat(a),k=0;k<a.length;k+=1)if(m=a[k],"."===m)a.splice(k,1),k-=1;else if(".."===m){if(1===k&&(".."===a[2]||".."===a[0]))break;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=v.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),n.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var c=r[a];delete r[a],t[a]=!0,m.apply(b,c)}if(!e(q,a)&&!e(t,a))throw new Error("No "+a);return q[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return"undefined"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:"",exports:q[a],config:l(a)}}},m=function(a,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||a,"undefined"===v||"function"===v){for(c=!c.length&&d.length?["require","exports","module"]:c,n=0;n<c.length;n+=1)if(m=o(c[n],f),k=m.f,"require"===k)u[n]=p.require(a);else if("exports"===k)u[n]=p.exports(a),s=!0;else if("module"===k)h=u[n]=p.module(a);else if(e(q,k)||e(r,k)||e(t,k))u[n]=j(k);else{if(!m.p)throw new Error(a+" missing "+k);m.p.load(m.n,g(f,!0),i(k),{}),u[n]=q[k]}l=d?d.apply(q[a],u):void 0,a&&(h&&h.exports!==b&&h.exports!==q[a]?q[a]=h.exports:l===b&&s||(q[a]=l))}else a&&(q[a]=d)},a=c=n=function(a,c,d,e,f){if("string"==typeof a)return p[a]?p[a](c):j(o(a,c).f);if(!a.splice){if(s=a,s.deps&&n(s.deps,s.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?m(b,a,c,d):setTimeout(function(){m(b,a,c,d)},4),n},n.config=function(a){return n(a)},a._defined=q,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(q,a)||e(r,a)||(r[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){var e=b[d];"function"==typeof e&&"constructor"!==d&&c.push(d)}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){var a=Array.prototype.unshift;return a.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};return d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice;this.listeners=this.listeners||{},a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;d>c;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;a>c;c++){var d=Math.floor(36*Math.random());b+=d.toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return e!==f||"hidden"!==f&&"visible"!==f?"scroll"===e||"scroll"===f?!0:d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth:!1},c.escapeMarkup=function(a){var b={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){var c=b.find(".select2-results");c.append(a)},c.prototype.sort=function(a){var b=this.options.get("sorter");return b(a)},c.prototype.setClasses=function(){var b=this;this.data.current(function(c){var d=a.map(c,function(a){return a.id.toString()}),e=b.$results.find(".select2-results__option[aria-selected]");e.each(function(){var b=a(this),c=a.data(this,"data"),e=""+c.id;null!=c.element&&c.element.selected||null==c.element&&a.inArray(e,d)>-1?b.attr("aria-selected","true"):b.attr("aria-selected","false")});var f=e.filter("[aria-selected=true]");f.length>0?f.first().trigger("mouseenter"):e.first().trigger("mouseenter")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"treeitem","aria-selected":"false"};b.disabled&&(delete d["aria-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["aria-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role="group",d["aria-label"]=b.text,delete d["aria-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";a(h);this.template(b,h);for(var i=[],j=0;j<b.children.length;j++){var k=b.children[j],l=this.option(k);i.push(l)}var m=a("<ul></ul>",{"class":"select2-results__options select2-results__options--nested"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b,c){var d=this,e=b.id+"-results";this.$results.attr("id",e),b.on("results:all",function(a){d.clear(),d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("results:append",function(a){d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("query",function(a){d.hideMessages(),d.showLoading(a)}),b.on("select",function(){b.isOpen()&&d.setClasses()}),b.on("unselect",function(){b.isOpen()&&d.setClasses()}),b.on("open",function(){d.$results.attr("aria-expanded","true"),d.$results.attr("aria-hidden","false"),d.setClasses(),d.ensureHighlightVisible()}),b.on("close",function(){d.$results.attr("aria-expanded","false"),d.$results.attr("aria-hidden","true"),d.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=d.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=d.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("aria-selected")?d.trigger("close",{}):d.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a);if(0!==c){var e=c-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top,h=f.offset().top,i=d.$results.scrollTop()+(h-g);0===e?d.$results.scrollTop(0):0>h-g&&d.$results.scrollTop(i)}}),b.on("results:next",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a),e=c+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top+d.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=d.$results.scrollTop()+h-g;0===e?d.$results.scrollTop(0):h>g&&d.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),b.on("results:message",function(a){d.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=d.$results.scrollTop(),c=d.$results.get(0).scrollHeight-d.$results.scrollTop()+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=d.$results.height();e?(d.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(d.$results.scrollTop(d.$results.get(0).scrollHeight-d.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(b){var c=a(this),e=c.data("data");return"true"===c.attr("aria-selected")?void(d.options.get("multiple")?d.trigger("unselect",{originalEvent:b,data:e}):d.trigger("close",{})):void d.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(b){var c=a(this).data("data");d.getHighlightedResults().removeClass("select2-results__option--highlighted"),d.trigger("results:focus",{data:c,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(".select2-results__option--highlighted");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a,b){var d=this,e=(a.id+"-container",a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2"),e=a(".select2.select2-container--open");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data("element");c.select2("close")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){var c=b.find(".selection");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("selection:update",function(a){c.update(a.data)})},e.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},e.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.prop("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,c){var e=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){e.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!e.options.get("disabled")){var c=a(this),d=c.parent(),f=d.data("data");e.trigger("unselect",{originalEvent:b,data:f})}})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},d.prototype.selectionContainer=function(){var b=a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.prop("title",e.title||e.text),f.data("data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id,d=b.length>1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(e)},b}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e<d.length;e++){var f={data:d[e]};if(this.trigger("unselect",f),f.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},c.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||(c.which==b.DELETE||c.which==b.BACKSPACE)&&this._handleClear(c)},c.prototype.update=function(b,c){if(b.call(this,c),!(this.$selection.find(".select2-selection__placeholder").length>0||0===c.length)){var d=a('<span class="select2-selection__clear">&times;</span>');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("open",function(){e.$search.trigger("focus")}),b.on("close",function(){e.$search.val(""),e.$search.removeAttr("aria-activedescendant"),e.$search.trigger("focus")}),b.on("enable",function(){e.$search.prop("disabled",!1),e._transferTabIndex()}),b.on("disable",function(){e.$search.prop("disabled",!0)}),b.on("focus",function(a){e.$search.trigger("focus")}),b.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&""===e.$search.val()){var d=e.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var f=d.data("data");e.searchRemoveChoice(f),a.preventDefault()}}});var f=document.documentMode,g=f&&11>=f;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){return g?void e.$selection.off("input.search input.searchcheck"):void e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(g&&"input"===a.type)return void e.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&e.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c&&this.$search.focus()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){var a={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y",
-"ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};return a}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),d+=null!=c.id?"-"+c.id.toString():"-"+a.generateChars(4)},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple"))return a.selected=!1,c(a.element).is("option")?(a.element.selected=!1,void this.$element.trigger("change")):void this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){c.removeData(this,"data")})},d.prototype.query=function(a,b){var d=[],e=this,f=this.$element.children();f.each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var b;a.children?(b=document.createElement("optgroup"),b.label=a.text):(b=document.createElement("option"),void 0!==b.textContent?b.textContent=a.text:b.innerText=a.text),a.id&&(b.value=a.id),a.disabled&&(b.disabled=!0),a.selected&&(b.selected=!0),a.title&&(b.title=a.title);var d=c(b),e=this._normalizeItem(a);return e.element=b,c.data(b,"data",e),d},d.prototype.item=function(a){var b={};if(b=c.data(a[0],"data"),null!=b)return b;if(a.is("option"))b={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){b={text:a.prop("label"),children:[],title:a.prop("title")};for(var d=a.children("option"),e=[],f=0;f<d.length;f++){var g=c(d[f]),h=this.item(g);e.push(h)}b.children=e}return b=this._normalizeItem(b),b.element=a[0],c.data(a[0],"data",b),b},d.prototype._normalizeItem=function(a){c.isPlainObject(a)||(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){var c=this.options.get("matcher");return c(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},l,j),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&""!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");if(void 0!==f&&(this.createTag=f),b.call(this,c,d),a.isArray(e))for(var g=0;g<e.length;g++){var h=e[g],i=this._normalizeItem(h),j=this.option(i);this.$element.append(j)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0),k=i.text===b.term;if(k||j)return f?!1:(a.data=g,void c(a))}if(f)return!0;var l=e.createTag(b);if(null!=l){var m=e.option(l);m.attr("data-select2-tag",!0),e.addOptions([m]),e.insertTag(g,l)}a.results=g,c(a)}var e=this;return this._removeOldTags(),null==b.term||null!=b.page?void a.call(this,b,c):void a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){var c=(this._lastTag,this.$element.find("option[data-select2-tag]"));c.each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(a,b,c){function d(a){e.trigger("select",{data:a})}var e=this;b.term=b.term||"";var f=this.tokenizer(b,this.options,d);f.term!==b.term&&(this.$search.length&&(this.$search.val(f.term),this.$search.focus()),b.term=f.term),a.call(this,b,c)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",b.term.length<this.minimumInputLength?void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength?void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val("")}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(b){var c=a(this).data("select2-scroll-position");a(this).scrollTop(c.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id,h=this.$container.parents().filter(b.hasScroll);h.off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=(this.$container.position(),this.$container.offset());f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom};if("static"!==this.$dropdownParent[0].style.position){var m=this.$dropdownParent.offset();l.top-=m.top,l.left-=m.left}c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return a(c.data.results)<this.minimumResultsForSearch?!1:b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(){d._handleSelectOnClose()})},a.prototype._handleSelectOnClose=function(){var a=this.getHighlightedResults();if(!(a.length<1)){var b=a.data("data");null!=b.element&&b.element.selected||null==b.element&&b.selected||this.trigger("select",{data:b})}},a}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){var b=a.minimum-a.input.length,c="Please enter "+b+" or more characters";return c},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}D.prototype.apply=function(l){if(l=a.extend({},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(O){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(P){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var Q=k.loadPath(this.defaults.amdLanguageBase+"en"),R=new k(l.language);R.extend(Q),l.translations=R}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return 0>=e?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener("DOMAttrModified",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener("DOMAttrModified",this._sync,!1),this._sync=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');
-return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("jquery-mousewheel",["jquery"],function(a){return a}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(a,b,c,d){if(null==a.fn.select2){var e=["open","close","destroy"];a.fn.select2=function(b){if(b=b||{},"object"==typeof b)return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d;return this.each(function(){var c=a(this).data("select2");null==c&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2.");var e=Array.prototype.slice.call(arguments,1);d=c[b].apply(c,e)}),a.inArray(b,e)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c}),angular.module("sprintf",[]).filter("sprintf",function(){return function(){return sprintf.apply(null,arguments)}}).filter("fmt",["$filter",function(a){return a("sprintf")}]).filter("vsprintf",function(){return function(a,b){return vsprintf(a,b)}}).filter("vfmt",["$filter",function(a){return a("vsprintf")}]),function(a,b){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a():b.rangy=a()}(function(){function a(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function b(a,b){return!(typeof a[b]!=t||!a[b])}function c(a,b){return typeof a[b]!=v}function d(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function e(a){return a&&A(a,z)&&C(a,y)}function f(a){return b(a,"body")?a.body:a.getElementsByTagName("body")[0]}function g(b){typeof console!=v&&a(console,"log")&&console.log(b)}function h(a,b){F&&b?alert(a):g(a)}function i(a){H.initialized=!0,H.supported=!1,h("Rangy is not supported in this environment. Reason: "+a,H.config.alertOnFail)}function j(a){h("Rangy warning: "+a,H.config.alertOnWarn)}function k(a){return a.message||a.description||String(a)}function l(){if(F&&!H.initialized){var b,c=!1,d=!1;a(document,"createRange")&&(b=document.createRange(),A(b,x)&&C(b,w)&&(c=!0));var h=f(document);if(!h||"body"!=h.nodeName.toLowerCase())return void i("No body element found");if(h&&a(h,"createTextRange")&&(b=h.createTextRange(),e(b)&&(d=!0)),!c&&!d)return void i("Neither Range nor TextRange are available");H.initialized=!0,H.features={implementsDomRange:c,implementsTextRange:d};var j,l;for(var m in E)(j=E[m])instanceof p&&j.init(j,H);for(var n=0,o=K.length;o>n;++n)try{K[n](H)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a,b,c){c&&(a+=" in module "+c.name),H.warn("DEPRECATED: "+a+" is deprecated. Please use "+b+" instead.")}function n(a,b,c,d){a[b]=function(){return m(b,c,d),a[c].apply(a,G.toArray(arguments))}}function o(a){a=a||window,l();for(var b=0,c=L.length;c>b;++b)L[b](a)}function p(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function q(a,b,c){var d=new p(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(H,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return E[a]=d,d}function r(){}function s(){}var t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=d(a),B=d(b),C=d(c),D=[].forEach?function(a,b){a.forEach(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)b(a[c],c)},E={},F=typeof window!=v&&typeof document!=v,G={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:e,getBody:f,forEach:D},H={version:"1.3.0",initialized:!1,isBrowser:F,supported:!0,util:G,features:{},modules:E,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==v?!0:rangyAutoInitialize}};H.fail=i,H.warn=j;var I;({}).hasOwnProperty?(G.extend=I=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&I(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},G.createOptions=function(a,b){var c={};return I(c,b),a&&I(c,a),c}):i("hasOwnProperty not supported"),F||i("Rangy can only run in a browser"),function(){var a;if(F){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),G.toArray=a}();var J;F&&(a(document,"addEventListener")?J=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?J=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),G.addListener=J);var K=[];G.deprecationNotice=m,G.createAliasForDeprecatedMethod=n,H.init=l,H.addInitListener=function(a){H.initialized?a(H):K.push(a)};var L=[];H.addShimListener=function(a){L.push(a)},F&&(H.shim=H.createMissingNativeApi=o,n(H,"createMissingNativeApi","shim")),p.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=E[b],!(a&&a instanceof p))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error(a)},warn:function(a){H.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){H.warn("DEPRECATED: "+a+" in module "+this.name+" is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},H.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=q(a,c,b);H.initialized&&H.supported&&d.init()},H.createCoreModule=function(a,b,c){q(a,b,c)},H.RangePrototype=r,H.rangePrototype=new r,H.selectionPrototype=new s,H.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==F||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(K(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=F)return a.ownerDocument;if(typeof a.document!=F)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=F)return c.defaultView;if(typeof c.parentWindow!=F)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=F)return a.contentDocument;if(typeof a.contentWindow!=F)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=F)return a.contentWindow;if(typeof a.contentDocument!=F)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&G.isHostMethod(a,"setTimeout")&&G.isHostObject(a,"document")}function t(a,b,c){var d;if(a?G.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)<f?-1:1;if(i=g(a,d),!i)throw new Error("comparePoints error: nodes have no common ancestor");if(k=a===i?i:j(a,i,!0),l=d===i?i:j(d,i,!0),k===l)throw b.createError("comparePoints got to case 4 and childA and childB are the same!");for(m=i.firstChild;m;){if(m===k)return-1;if(m===l)return 1;m=m.nextSibling}}function w(a){var b;try{return b=a.parentNode,!1}catch(c){return!0}}function x(a){if(!a)return"[No node]";if(L&&w(a))return"[Broken node]";if(k(a))return'"'+a.data+'"';if(1==a.nodeType){var b=a.id?' id="'+a.id+'"':"";return"<"+a.nodeName+b+">[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a,b,c){var d=H(a),e=a.createElement("div");e.contentEditable=""+!!c,b&&(e.innerHTML=b);var f=d.firstChild;return f?d.insertBefore(e,f):d.appendChild(e),e}function A(a){return a.parentNode.removeChild(a)}function B(a){this.root=a,this._next=a}function C(a){return new B(a)}function D(a,b){this.node=a,this.offset=b}function E(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var F="undefined",G=a.util,H=G.getBody;G.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),G.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var I=document.createElement("div");G.areHostMethods(I,["insertBefore","appendChild","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),G.isHostProperty(I,"innerHTML")||b.fail("Element is missing innerHTML property");var J=document.createTextNode("test");G.areHostMethods(J,["splitText","deleteData","insertData","appendData","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"])||!G.areHostProperties(J,["data"]))||b.fail("Incomplete Text Node implementation");var K=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},L=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="<br />",L=w(c),a.features.crashyTextNodes=L}();var M;typeof window.getComputedStyle!=F?M=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=F?M=function(a,b){return a.currentStyle?a.currentStyle[b]:""}:b.fail("No means of obtaining computed style properties found"),B.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},D.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},E.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},E.prototype.toString=function(){return this.message},a.dom={arrayContains:K,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:H,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:M,createTestElement:z,removeNode:A,fragmentFromNodeChildren:y,createIterator:C,DomPosition:D},a.DOMException=E}),H.createCoreModule("DomRange",["DomUtil"],function(a,b){function c(a,b){return 3!=a.nodeType&&(P(a,b.startContainer)||P(a,b.endContainer))}function d(a){return a.document||Q(a.startContainer)}function e(a){return W(a.startContainer)}function f(a){return new L(a.parentNode,O(a))}function g(a){return new L(a.parentNode,O(a)+1)}function h(a,b,c){var d=11==a.nodeType?a.firstChild:a;return N(b)?c==b.length?J.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:S(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function i(a,b,c){if(z(a),z(b),d(b)!=d(a))throw new M("WRONG_DOCUMENT_ERR");var e=R(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=R(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return c?0>=e&&f>=0:0>e&&f>0}function j(a){for(var b,c,e,f=d(a.range).createDocumentFragment();c=a.next();){if(b=a.isPartiallySelectedSubtree(),c=c.cloneNode(!b),b&&(e=a.getSubtreeIterator(),c.appendChild(j(e)),e.detach()),10==c.nodeType)throw new M("HIERARCHY_REQUEST_ERR");f.appendChild(c)}return f}function k(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),k(g,b,c),g.detach(),c.stop)return}else for(d=J.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function l(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),l(b),b.detach()):a.remove()}function m(a){for(var b,c,e=d(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),c=a.getSubtreeIterator(),b.appendChild(m(c)),c.detach()):a.remove(),10==b.nodeType)throw new M("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function n(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return k(new p(a,!1),function(b){if((!e||d.test(b.nodeType))&&(!f||c(b))){var h=a.startContainer;if(b!=h||!N(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&N(i)&&0==a.endOffset||g.push(b)}}}),g}function o(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+J.inspectNode(a.startContainer)+":"+a.startOffset+", "+J.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function p(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&N(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||N(this.sc)?T(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||N(this.ec)?T(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function q(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,V(a,d))return e;e=e.parentNode}return null}}function r(a,b){if(ea(a,b))throw new M("INVALID_NODE_TYPE_ERR")}function s(a,b){if(!V(b,a.nodeType))throw new M("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(N(a)?a.length:a.childNodes.length))throw new M("INDEX_SIZE_ERR")}function u(a,b){if(ca(a,!0)!==ca(b,!0))throw new M("WRONG_DOCUMENT_ERR")}function v(a){if(da(a,!0))throw new M("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new M(b)}function x(a,b){return b<=(N(a)?a.length:a.childNodes.length)}function y(a){return!!a.startContainer&&!!a.endContainer&&!(X&&(J.isBrokenNode(a.startContainer)||J.isBrokenNode(a.endContainer)))&&W(a.startContainer)==W(a.endContainer)&&x(a.startContainer,a.startOffset)&&x(a.endContainer,a.endOffset)}function z(a){if(!y(a))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+a.inspect()+")")}function A(a,b){z(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;N(e)&&f>0&&f<e.length&&S(e,f,b),N(c)&&d>0&&d<c.length&&(c=S(c,d,b),g?(f-=d,e=c):e==c.parentNode&&f>=O(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function B(a){z(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function C(a){a.START_TO_START=ka,a.START_TO_END=la,a.END_TO_END=ma,a.END_TO_START=na,a.NODE_BEFORE=oa,a.NODE_AFTER=pa,a.NODE_BEFORE_AND_AFTER=qa,a.NODE_INSIDE=ra}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){z(this);var c,d,e=this.startContainer,f=this.startOffset,h=this.commonAncestorContainer,i=new p(this,!0);e!==h&&(c=T(e,h,!0),d=g(c),e=d.node,f=d.offset),k(i,v),i.reset();var j=a(i);return i.detach(),b(this,e,f,e,f),j}}function F(b,d){function e(a,b){return function(c){s(c,Z),s(W(c),$);var d=(a?f:g)(c);(b?h:i)(this,d.node,d.offset)}}function h(a,b,c){var e=a.endContainer,f=a.endOffset;(b!==a.startContainer||c!==a.startOffset)&&((W(b)!=W(e)||1==R(b,c,e,f))&&(e=b,f=c),d(a,b,c,e,f))}function i(a,b,c){var e=a.startContainer,f=a.startOffset;(b!==a.endContainer||c!==a.endOffset)&&((W(b)!=W(e)||-1==R(b,c,e,f))&&(e=b,f=c),d(a,e,f,b,c))}var j=function(){};j.prototype=a.rangePrototype,b.prototype=new j,K.extend(b.prototype,{setStart:function(a,b){r(a,!0),t(a,b),h(this,a,b)},setEnd:function(a,b){r(a,!0),t(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],e=b,f=c;switch(a.length){case 3:f=a[2];break;case 4:e=a[2],f=a[3]}d(this,b,c,e,f)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:e(!0,!0),setStartAfter:e(!1,!0),setEndBefore:e(!0,!1),setEndAfter:e(!1,!1),collapse:function(a){z(this),a?d(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):d(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(a,!0),d(this,a,0,a,U(a))},selectNode:function(a){r(a,!1),s(a,Z);var b=f(a),c=g(a);d(this,b.node,b.offset,c.node,c.offset)},extractContents:E(m,d),deleteContents:E(l,d),canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},splitBoundaries:function(){A(this)},splitBoundariesPreservingPositions:function(a){A(this,a)},normalizeBoundaries:function(){z(this);var a,b=this.startContainer,c=this.startOffset,e=this.endContainer,f=this.endOffset,g=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(e=a,f=a.length,a.appendData(b.data),Y(b))},h=function(a){var d=a.previousSibling;if(d&&d.nodeType==a.nodeType){b=a;var g=a.length;if(c=d.length,a.insertData(0,d.data),Y(d),b==e)f+=c,e=b;else if(e==a.parentNode){var h=O(a);f==h?(e=a,f=g):f>h&&f--}}},i=!0;if(N(e))f==e.length?g(e):0==f&&(a=e.previousSibling,a&&a.nodeType==e.nodeType&&(f=a.length,b==e&&(i=!1),a.appendData(e.data),Y(e),e=a));else{if(f>0){var j=e.childNodes[f-1];j&&N(j)&&g(j)}i=!this.collapsed}if(i){if(N(b))0==c?h(b):c==b.length&&(a=b.nextSibling,a&&a.nodeType==b.nodeType&&(e==a&&(e=b,f+=b.length),b.appendData(a.data),Y(a)));else if(c<b.childNodes.length){var k=b.childNodes[c];k&&N(k)&&h(k)}}else b=e,c=f;d(this,b,c,e,f)},collapseToPoint:function(a,b){r(a,!0),t(a,b),this.setStartAndEnd(a,b)}}),D(b)}function G(a){a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset,a.commonAncestorContainer=a.collapsed?a.startContainer:J.getCommonAncestor(a.startContainer,a.endContainer)}function H(a,b,c,d,e){a.startContainer=b,a.startOffset=c,a.endContainer=d,a.endOffset=e,a.document=J.getDocument(b),G(a)}function I(a){this.startContainer=a,this.startOffset=0,this.endContainer=a,this.endOffset=0,this.document=a,G(this)}var J=a.dom,K=a.util,L=J.DomPosition,M=a.DOMException,N=J.isCharacterDataNode,O=J.getNodeIndex,P=J.isOrIsAncestorOf,Q=J.getDocument,R=J.comparePoints,S=J.splitDataNode,T=J.getClosestAncestorIn,U=J.getNodeLength,V=J.arrayContains,W=J.getRootContainer,X=a.features.crashyTextNodes,Y=J.removeNode;p.prototype={_current:null,_next:null,_first:null,_last:null,isSingleCharacterDataNode:!1,reset:function(){this._current=null,this._next=this._first},hasNext:function(){return!!this._next},next:function(){var a=this._current=this._next;return a&&(this._next=a!==this._last?a.nextSibling:null,N(a)&&this.clonePartiallySelectedTextNodes&&(a===this.ec&&(a=a.cloneNode(!0)).deleteData(this.eo,a.length-this.eo),this._current===this.sc&&(a=a.cloneNode(!0)).deleteData(0,this.so))),a},remove:function(){var a,b,c=this._current;!N(c)||c!==this.sc&&c!==this.ec?c.parentNode&&Y(c):(a=c===this.sc?this.so:0,b=c===this.ec?this.eo:c.length,a!=b&&c.deleteData(a,b-a))},isPartiallySelectedSubtree:function(){var a=this._current;return c(a,this.range)},getSubtreeIterator:function(){var a;if(this.isSingleCharacterDataNode)a=this.range.cloneRange(),a.collapse(!1);else{a=new I(d(this.range));var b=this._current,c=b,e=0,f=b,g=U(b);P(b,this.sc)&&(c=this.sc,e=this.so),P(b,this.ec)&&(f=this.ec,g=this.eo),H(a,c,e,f,g)}return new p(a,this.clonePartiallySelectedTextNodes)},detach:function(){this.range=this._current=this._next=this._first=this._last=this.sc=this.so=this.ec=this.eo=null}};var Z=[1,3,4,5,7,8,10],$=[2,9,11],_=[5,6,10,12],aa=[1,3,4,5,7,8,10,11],ba=[1,3,4,5,7,8],ca=q([9,11]),da=q(_),ea=q([6,10,12]),fa=document.createElement("style"),ga=!1;try{fa.innerHTML="<b>x</b>",ga=3==fa.firstChild.nodeType}catch(ha){}a.features.htmlParsingConforms=ga;var ia=ga?function(a){var b=this.startContainer,c=Q(b);if(!b)throw new M("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:N(b)&&(d=J.parentElement(b)),d=null===d||"HTML"==d.nodeName&&J.isHtmlNamespace(Q(d).documentElement)&&J.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,J.fragmentFromNodeChildren(d)}:function(a){var b=d(this),c=b.createElement("body");return c.innerHTML=a,J.fragmentFromNodeChildren(c)},ja=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ka=0,la=1,ma=2,na=3,oa=0,pa=1,qa=2,ra=3;K.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){z(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==na||a==ka?"start":"end",h=a==la||a==ka?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],R(c,d,e,f)},insertNode:function(a){if(z(this),s(a,aa),v(this.startContainer),P(a,this.startContainer))throw new M("HIERARCHY_REQUEST_ERR");var b=h(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){z(this);var a,b;if(this.collapsed)return d(this).createDocumentFragment();if(this.startContainer===this.endContainer&&N(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=d(this).createDocumentFragment(),b.appendChild(a),b;var c=new p(this,!0);return a=j(c),c.detach(),a},canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},surroundContents:function(a){if(s(a,ba),!this.canSurroundContents())throw new M("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);h(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){z(this);for(var a,b=new I(d(this)),c=ja.length;c--;)a=ja[c],b[a]=this[a];return b},toString:function(){z(this);var a=this.startContainer;if(a===this.endContainer&&N(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new p(this,!0);return k(c,function(a){(3==a.nodeType||4==a.nodeType)&&b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){z(this);var b=a.parentNode,c=O(a);if(!b)throw new M("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qa:oa:e>0?pa:ra},comparePoint:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)<0?-1:R(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ia,toHtml:function(){return B(this)},intersectsNode:function(a,b){if(z(this),W(a)!=e(this))return!1;var c=a.parentNode,d=O(a);if(!c)return!0;var f=R(c,d,this.endContainer,this.endOffset),g=R(c,d+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)>=0&&R(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return i(this,a,!1)},intersectsOrTouchesRange:function(a){return i(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=R(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=R(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==R(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==R(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new M("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==ra},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,U(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return z(this),n(this,a,b)},getDocument:function(){return d(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var c=d(this),e=a.createRange(c);b=b||J.getBody(c),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return I.rangesEqual(this,a)},isValid:function(){return y(this)},inspect:function(){return o(this)},detach:function(){}}),F(I,H),K.extend(I,{rangeProperties:ja,RangeIterator:p,copyComparisonConstants:D,createPrototypeRange:F,inspect:o,toHtml:B,getRangeDocument:d,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=I}),H.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=m.length;c--;)b=m[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}var k,l,m=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g),k=c.prototype,k.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},k.cloneContents=function(){return this.nativeRange.cloneContents()},k.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)},k.collapse=function(a){this.nativeRange.collapse(a),d(this)},k.cloneRange=function(){return new c(this.nativeRange.cloneRange())},k.refresh=function(){d(this)},k.toString=function(){return this.nativeRange.toString()};var n=document.createTextNode("test");i(document).appendChild(n);var o=document.createRange();o.setStart(n,0),o.setEnd(n,0);try{o.setStart(n,1),k.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},k.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},l=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(p){k.setStart=function(a,b){try{this.nativeRange.setStart(a,b)}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},k.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},l=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}k.setStartBefore=l("setStartBefore","setEndBefore"),k.setStartAfter=l("setStartAfter","setEndAfter"),k.setEndBefore=l("setEndBefore","setStartBefore"),k.setEndAfter=l("setEndAfter","setStartAfter"),k.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},o.selectNodeContents(n),o.setEnd(n,3);var q=document.createRange();q.selectNodeContents(n),q.setEnd(n,4),q.setStart(n,2),-1==o.compareBoundaryPoints(o.START_TO_END,q)&&1==o.compareBoundaryPoints(o.END_TO_START,q)?k.compareBoundaryPoints=function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:k.compareBoundaryPoints=function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var r=document.createElement("div");r.innerHTML="123";var s=r.firstChild,t=i(document);t.appendChild(r),o.setStart(s,1),o.setEnd(s,2),o.deleteContents(),"13"==s.data&&(k.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},k.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),t.removeChild(r),t=null,f.isHostMethod(o,"createContextualFragment")&&(k.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(n),k.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");
-l.parentNode&&e.removeNode(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return e.removeNode(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}},o=function(a,b){var c,d,f,g,h=a.offset,j=e.getDocument(a.node),l=i(j).createTextRange(),m=k(a.node);return m?(c=a.node,d=c.parentNode):(g=a.node.childNodes,c=h<g.length?g[h]:null,d=a.node),f=j.createElement("span"),f.innerHTML="&#feff;",c?d.insertBefore(f,c):d.appendChild(f),l.moveToElementText(f),l.collapse(!b),d.removeChild(f),m&&l[b?"moveStart":"moveEnd"]("character",h),l};d=function(a){this.textRange=a,this.refresh()},d.prototype=new h(document),d.prototype.refresh=function(){var a,b,c,d=l(this.textRange);m(this.textRange)?b=a=n(this.textRange,d,!0,!0).boundaryPosition:(c=n(this.textRange,d,!0,!1),a=c.boundaryPosition,b=n(this.textRange,d,!1,!1,c.nodeInfo).boundaryPosition),this.setStart(a.node,a.offset),this.setEnd(b.node,b.offset)},d.prototype.getName=function(){return"WrappedTextRange"},h.copyComparisonConstants(d);var p=function(a){if(a.collapsed)return o(new g(a.startContainer,a.startOffset),!0);var b=o(new g(a.startContainer,a.startOffset),!0),c=o(new g(a.endContainer,a.endOffset),!1),d=i(h.getRangeDocument(a)).createTextRange();return d.setEndPoint("StartToStart",b),d.setEndPoint("EndToEnd",c),d};if(d.rangeToTextRange=p,d.prototype.toTextRange=function(){return p(this)},a.WrappedTextRange=d,!a.features.implementsDomRange||a.config.preferTextRange){var q=function(a){return a("return this;")()}(Function);"undefined"==typeof q.Range&&(q.Range=d),a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),i(a).createTextRange()},a.WrappedRange=d}}a.createRange=function(c){return c=j(c,b,"createRange"),new a.WrappedRange(a.createNativeRange(c))},a.createRangyRange=function(a){return a=j(a,b,"createRangyRange"),new h(a)},f.createAliasForDeprecatedMethod(a,"createIframeRange","createRange"),f.createAliasForDeprecatedMethod(a,"createIframeRangyRange","createRangyRange"),a.addShimListener(function(b){var c=b.document;"undefined"==typeof c.createRange&&(c.createRange=function(){return a.createRange(c)}),c=b=null})}),H.createCoreModule("WrappedSelection",["DomRange","WrappedRange"],function(a,b){function c(a){return"string"==typeof a?/^backward(s)?$/i.test(a):!!a}function d(a,c){if(a){if(C.isWindow(a))return a;if(a instanceof r)return a.win;var d=C.getContentDocument(a,b,c);return C.getWindow(d)}return window}function e(a){return d(a,"getWinSelection").getSelection()}function f(a){return d(a,"getDocSelection").document.selection}function g(a){var b=!1;return a.anchorNode&&(b=1==C.comparePoints(a.anchorNode,a.anchorOffset,a.focusNode,a.focusOffset)),b}function h(a,b,c){var d=c?"end":"start",e=c?"start":"end";a.anchorNode=b[d+"Container"],a.anchorOffset=b[d+"Offset"],a.focusNode=b[e+"Container"],a.focusOffset=b[e+"Offset"]}function i(a){var b=a.nativeSelection;a.anchorNode=b.anchorNode,a.anchorOffset=b.anchorOffset,a.focusNode=b.focusNode,a.focusOffset=b.focusOffset}function j(a){a.anchorNode=a.focusNode=null,a.anchorOffset=a.focusOffset=0,a.rangeCount=0,a.isCollapsed=!0,a._ranges.length=0}function k(b){var c;return b instanceof F?(c=a.createNativeRange(b.getDocument()),c.setEnd(b.endContainer,b.endOffset),c.setStart(b.startContainer,b.startOffset)):b instanceof G?c=b.nativeRange:J.implementsDomRange&&b instanceof C.getWindow(b.startContainer).Range&&(c=b),c}function l(a){if(!a.length||1!=a[0].nodeType)return!1;for(var b=1,c=a.length;c>b;++b)if(!C.isAncestorOf(a[0],a[b]))return!1;return!0}function m(a){var c=a.getNodes();if(!l(c))throw b.createError("getSingleElementFromRange: range "+a.inspect()+" did not consist of a single element");return c[0]}function n(a){return!!a&&"undefined"!=typeof a.text}function o(a,b){var c=new G(b);a._ranges=[c],h(a,c,!1),a.rangeCount=1,a.isCollapsed=c.collapsed}function p(b){if(b._ranges.length=0,"None"==b.docSelection.type)j(b);else{var c=b.docSelection.createRange();if(n(c))o(b,c);else{b.rangeCount=c.length;for(var d,e=L(c.item(0)),f=0;f<b.rangeCount;++f)d=a.createRange(e),d.selectNode(c.item(f)),b._ranges.push(d);b.isCollapsed=1==b.rangeCount&&b._ranges[0].collapsed,h(b,b._ranges[b.rangeCount-1],!1)}}}function q(a,c){for(var d=a.docSelection.createRange(),e=m(c),f=L(d.item(0)),g=M(f).createControlRange(),h=0,i=d.length;i>h;++h)g.add(d.item(h));try{g.add(e)}catch(j){throw b.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}g.select(),p(a)}function r(a,b,c){this.nativeSelection=a,this.docSelection=b,this._ranges=[],this.win=c,this.refresh()}function s(a){a.win=a.anchorNode=a.focusNode=a._ranges=null,a.rangeCount=a.anchorOffset=a.focusOffset=0,a.detached=!0}function t(a,b){for(var c,d,e=ba.length;e--;)if(c=ba[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(ba.splice(e,1),!0):d;return"deleteAll"==b&&(ba.length=0),null}function u(a,c){for(var d,e=L(c[0].startContainer),f=M(e).createControlRange(),g=0,h=c.length;h>g;++g){d=m(c[g]);try{f.add(d)}catch(i){throw b.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}f.select(),p(a)}function v(a,b){if(a.win.document!=L(b))throw new H("WRONG_DOCUMENT_ERR")}function w(b){return function(c,d){var e;this.rangeCount?(e=this.getRangeAt(0),e["set"+(b?"Start":"End")](c,d)):(e=a.createRange(this.win.document),e.setStartAndEnd(c,d)),this.setSingleRange(e,this.isBackward())}}function x(a){var b=[],c=new I(a.anchorNode,a.anchorOffset),d=new I(a.focusNode,a.focusOffset),e="function"==typeof a.getName?a.getName():"Selection";if("undefined"!=typeof a.rangeCount)for(var f=0,g=a.rangeCount;g>f;++f)b[f]=F.inspect(a.getRangeAt(f));return"["+e+"(Ranges: "+b.join(", ")+")(anchor: "+c.inspect()+", focus: "+d.inspect()+"]"}a.config.checkSelectionRanges=!0;var y,z,A="boolean",B="number",C=a.dom,D=a.util,E=D.isHostMethod,F=a.DomRange,G=a.WrappedRange,H=a.DOMException,I=C.DomPosition,J=a.features,K="Control",L=C.getDocument,M=C.getBody,N=F.rangesEqual,O=E(window,"getSelection"),P=D.isHostObject(document,"selection");J.implementsWinGetSelection=O,J.implementsDocSelection=P;var Q=P&&(!O||a.config.preferTextRange);if(Q)y=f,a.isSelectionValid=function(a){var b=d(a,"isSelectionValid").document,c=b.selection;return"None"!=c.type||L(c.createRange().parentElement())==b};else{if(!O)return b.fail("Neither document.selection or window.getSelection() detected."),!1;y=e,a.isSelectionValid=function(){return!0}}a.getNativeSelection=y;var R=y();if(!R)return b.fail("Native selection was null (possibly issue 138?)"),!1;var S=a.createNativeRange(document),T=M(document),U=D.areHostProperties(R,["anchorNode","focusNode","anchorOffset","focusOffset"]);J.selectionHasAnchorAndFocus=U;var V=E(R,"extend");J.selectionHasExtend=V;var W=typeof R.rangeCount==B;J.selectionHasRangeCount=W;var X=!1,Y=!0,Z=V?function(b,c){var d=F.getRangeDocument(c),e=a.createRange(d);e.collapseToPoint(c.endContainer,c.endOffset),b.addRange(k(e)),b.extend(c.startContainer,c.startOffset)}:null;D.areHostMethods(R,["addRange","getRangeAt","removeAllRanges"])&&typeof R.rangeCount==B&&J.implementsDomRange&&!function(){var b=window.getSelection();if(b){for(var c=b.rangeCount,d=c>1,e=[],f=g(b),h=0;c>h;++h)e[h]=b.getRangeAt(h);var i=C.createTestElement(document,"",!1),j=i.appendChild(document.createTextNode("   ")),k=document.createRange();if(k.setStart(j,1),k.collapse(!0),b.removeAllRanges(),b.addRange(k),Y=1==b.rangeCount,b.removeAllRanges(),!d){var l=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(l&&parseInt(l[1])>=36)X=!1;else{var m=k.cloneRange();k.setStart(j,0),m.setEnd(j,3),m.setStart(j,2),b.addRange(k),b.addRange(m),X=2==b.rangeCount}}for(C.removeNode(i),b.removeAllRanges(),h=0;c>h;++h)0==h&&f?Z?Z(b,e[h]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),b.addRange(e[h])):b.addRange(e[h])}}(),J.selectionSupportsMultipleRanges=X,J.collapsedNonEditableSelectionsSupported=Y;var $,_=!1;T&&E(T,"createControlRange")&&($=T.createControlRange(),D.areHostProperties($,["item","add"])&&(_=!0)),J.implementsControlRange=_,z=U?function(a){return a.anchorNode===a.focusNode&&a.anchorOffset===a.focusOffset}:function(a){return a.rangeCount?a.getRangeAt(a.rangeCount-1).collapsed:!1};var aa;E(R,"getRangeAt")?aa=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(aa=function(b){var c=L(b.anchorNode),d=a.createRange(c);return d.setStartAndEnd(b.anchorNode,b.anchorOffset,b.focusNode,b.focusOffset),d.collapsed!==this.isCollapsed&&d.setStartAndEnd(b.focusNode,b.focusOffset,b.anchorNode,b.anchorOffset),d}),r.prototype=a.selectionPrototype;var ba=[],ca=function(a){if(a&&a instanceof r)return a.refresh(),a;a=d(a,"getNativeSelection");var b=t(a),c=y(a),e=P?f(a):null;return b?(b.nativeSelection=c,b.docSelection=e,b.refresh()):(b=new r(c,e,a),ba.push({win:a,selection:b})),b};a.getSelection=ca,D.createAliasForDeprecatedMethod(a,"getIframeSelection","getSelection");var da=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){da.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var ea=function(a,b){Z(a.nativeSelection,b),a.refresh()};W?da.addRange=function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)ea(this,b);else{var e;X?e=this.rangeCount:(this.removeAllRanges(),e=0);var f=k(b).cloneRange();try{this.nativeSelection.addRange(f)}catch(g){}if(this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==e+1){if(a.config.checkSelectionRanges){var i=aa(this.nativeSelection,this.rangeCount-1);i&&!N(i,b)&&(b=new G(i))}this._ranges[this.rangeCount-1]=b,h(this,b,ha(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:da.addRange=function(a,b){c(b)&&V?ea(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},da.setRanges=function(a){if(_&&P&&a.length>1)u(this,a);else{this.removeAllRanges();for(var b=0,c=a.length;c>b;++b)this.addRange(a[b])}}}else{if(!(E(R,"empty")&&E(S,"select")&&_&&Q))return b.fail("No means of selecting a Range or TextRange was found"),!1;da.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var a;if(this.anchorNode)a=L(this.anchorNode);else if(this.docSelection.type==K){var b=this.docSelection.createRange();b.length&&(a=L(b.item(0)))}if(a){var c=M(a).createTextRange();c.select(),this.docSelection.empty()}}}catch(d){}j(this)},da.addRange=function(b){this.docSelection.type==K?q(this,b):(a.WrappedTextRange.rangeToTextRange(b).select(),this._ranges[0]=b,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,h(this,b,!1))},da.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}da.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fa;if(Q)fa=function(b){var c;a.isSelectionValid(b.win)?c=b.docSelection.createRange():(c=M(b.win.document).createTextRange(),c.collapse(!0)),b.docSelection.type==K?p(b):n(c)?o(b,c):j(b)};else if(E(R,"getRangeAt")&&typeof R.rangeCount==B)fa=function(b){if(_&&P&&b.docSelection.type==K)p(b);else if(b._ranges.length=b.rangeCount=b.nativeSelection.rangeCount,b.rangeCount){for(var c=0,d=b.rangeCount;d>c;++c)b._ranges[c]=new a.WrappedRange(b.nativeSelection.getRangeAt(c));h(b,b._ranges[b.rangeCount-1],ha(b.nativeSelection)),b.isCollapsed=z(b)}else j(b)};else{if(!U||typeof R.isCollapsed!=A||typeof S.collapsed!=A||!J.implementsDomRange)return b.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;fa=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=aa(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}da.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fa(this),a){var e=b.length;if(e!=this._ranges.length)return!0;if(this.anchorNode!=c||this.anchorOffset!=d)return!0;for(;e--;)if(!N(b[e],this._ranges[e]))return!0;return!1}};var ga=function(a,b){var c=a.getAllRanges();a.removeAllRanges();for(var d=0,e=c.length;e>d;++d)N(b,c[d])||a.addRange(c[d]);a.rangeCount||j(a)};_&&P?da.removeRange=function(a){if(this.docSelection.type==K){for(var b,c=this.docSelection.createRange(),d=m(a),e=L(c.item(0)),f=M(e).createControlRange(),g=!1,h=0,i=c.length;i>h;++h)b=c.item(h),b!==d||g?f.add(c.item(h)):g=!0;f.select(),p(this)}else ga(this,a)}:da.removeRange=function(a){ga(this,a)};var ha;!Q&&U&&J.implementsDomRange?(ha=g,da.isBackward=function(){return ha(this)}):ha=da.isBackward=function(){return!1},da.isBackwards=da.isBackward,da.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},da.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},da.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},da.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},da.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},da.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),C.removeNode(a);this.refresh()}else if(this.rangeCount){var c=this.getAllRanges();if(c.length){this.removeAllRanges();for(var d=0,e=c.length;e>d;++d)c[d].deleteContents();this.addRange(c[e-1])}}},da.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},da.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},da.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},da.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b||[]))}),c},da.setStart=w(!0),da.setEnd=w(!1),a.rangePrototype.select=function(a){ca(this.getDocument()).setSingleRange(this,a)},da.changeEachRange=function(a){var b=[],c=this.isBackward();this.eachRange(function(c){a(c),b.push(c)}),this.removeAllRanges(),c&&1==b.length?this.addRange(b[0],"backward"):this.setRanges(b)},da.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)||!1},da.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},da.moveToBookmark=function(b){for(var c,d,e=[],f=0;c=b.rangeBookmarks[f++];)d=a.createRange(this.win),d.moveToBookmark(c),e.push(d);b.backward?this.setSingleRange(e[0],"backward"):this.setRanges(e)},da.saveRanges=function(){return{backward:this.isBackward(),ranges:this.callMethodOnEachRange("cloneRange")}},da.restoreRanges=function(a){this.removeAllRanges();for(var b,c=0;b=a.ranges[c];++c)this.addRange(b,a.backward&&0==c)},da.toHtml=function(){var a=[];return this.eachRange(function(b){a.push(F.toHtml(b))}),a.join("")},J.implementsTextRange&&(da.getNativeTextRange=function(){var c;if(c=this.docSelection){var d=c.createRange();if(n(d))return d;throw b.createError("getNativeTextRange: selection is a control selection")}if(this.rangeCount>0)return a.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw b.createError("getNativeTextRange: selection contains no range")}),da.getName=function(){return"WrappedSelection"},da.inspect=function(){return x(this)},da.detach=function(){t(this.win,"delete"),s(this)},r.detachAll=function(){t(null,"deleteAll")},r.inspect=x,r.isDirectionBackward=c,a.Selection=r,a.selectionPrototype=da,a.addShimListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return ca(a)}),a=null})});var M=!1,N=function(a){M||(M=!0,!H.initialized&&H.config.autoInitialize&&l())};return F&&("complete"==document.readyState?N():(a(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",N,!1),J(window,"load",N))),H},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){return a.createModule("ClassApplier",["WrappedSelection"],function(a,b){function c(a,b){for(var c in a)if(a.hasOwnProperty(c)&&b(c,a[c])===!1)return!1;return!0}function d(a){return a.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function e(a,b){return!!a&&new RegExp("(?:^|\\s)"+b+"(?:\\s|$)").test(a)}function f(a,b){if("object"==typeof a.classList)return a.classList.contains(b);var c="string"==typeof a.className,d=c?a.className:a.getAttribute("class");return e(d,b)}function g(a,b){if("object"==typeof a.classList)a.classList.add(b);else{var c="string"==typeof a.className,d=c?a.className:a.getAttribute("class");d?e(d,b)||(d+=" "+b):d=b,c?a.className=d:a.setAttribute("class",d)}}function h(a){var b="string"==typeof a.className;return b?a.className:a.getAttribute("class")}function j(a){return a&&a.split(/\s+/).sort().join(" ")}function k(a){return j(h(a))}function l(a,b){return k(a)==k(b)}function m(a,b){for(var c=b.split(/\s+/),e=0,g=c.length;g>e;++e)if(!f(a,d(c[e])))return!1;return!0}function n(a){var b=a.parentNode;return b&&1==b.nodeType&&!/^(textarea|style|script|select|iframe)$/i.test(b.nodeName)}function o(a,b,c,d,e){var f=a.node,g=a.offset,h=f,i=g;f==d&&g>e&&++i,f!=b||g!=c&&g!=c+1||(h=d,i+=e-c),f==b&&g>c+1&&--i,a.node=h,a.offset=i}function p(a,b,c){a.node==b&&a.offset>c&&--a.offset}function q(a,b,c,d){-1==c&&(c=b.childNodes.length);var e=a.parentNode,f=L.getNodeIndex(a);P(d,function(a){o(a,e,f,b,c)}),b.childNodes.length==c?b.appendChild(a):b.insertBefore(a,b.childNodes[c])}function r(a,b){var c=a.parentNode,d=L.getNodeIndex(a);P(b,function(a){p(a,c,d)}),L.removeNode(a)}function s(a,b,c,d,e){for(var f,g=[];f=a.firstChild;)q(f,b,c++,e),g.push(f);return d&&r(a,e),g}function t(a,b){return s(a,a.parentNode,L.getNodeIndex(a),!0,b)}function u(a,b){var c=a.cloneRange();c.selectNodeContents(b);var d=c.intersection(a),e=d?d.toString():"";return""!=e}function v(a){for(var b,c=a.getNodes([3]),d=0;(b=c[d])&&!u(a,b);)++d;for(var e=c.length-1;(b=c[e])&&!u(a,b);)--e;return c.slice(d,e+1)}function w(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),null===c!=(null===d))return!1;if(c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function x(a,b){for(var c,d=0,e=a.attributes.length;e>d;++d)if(c=a.attributes[d].name,(!b||!N(b,c))&&a.attributes[d].specified&&"class"!=c)return!0;return!1}function y(a){var b;return a&&1==a.nodeType&&((b=a.parentNode)&&9==b.nodeType&&"on"==b.designMode||U(a)&&!U(a.parentNode))}function z(a){return(U(a)||1!=a.nodeType&&U(a.parentNode))&&!y(a)}function A(a){return a&&1==a.nodeType&&!V.test(T(a,"display"))}function B(a){if(0==a.data.length)return!0;if(W.test(a.data))return!1;var b=T(a.parentNode,"whiteSpace");switch(b){case"pre":case"pre-wrap":case"-moz-pre-wrap":return!1;case"pre-line":if(/[\r\n]/.test(a.data))return!1}return A(a.previousSibling)||A(a.nextSibling)}function C(a){var b,c,d=[];for(b=0;c=a[b++];)d.push(new M(c.startContainer,c.startOffset),new M(c.endContainer,c.endOffset));return d}function D(a,b){for(var c,d,e,f=0,g=a.length;g>f;++f)c=a[f],d=b[2*f],e=b[2*f+1],c.setStartAndEnd(d.node,d.offset,e.node,e.offset)}function E(a,b){return L.isCharacterDataNode(a)?0==b?!!a.previousSibling:b==a.length?!!a.nextSibling:!0:b>0&&b<a.childNodes.length}function F(a,c,d,e){var f,g,h=0==d;if(L.isAncestorOf(c,a))return a;if(L.isCharacterDataNode(c)){var i=L.getNodeIndex(c);if(0==d)d=i;else{if(d!=c.length)throw b.createError("splitNodeAt() should not be called with offset in the middle of a data node ("+d+" in "+c.data);d=i+1}c=c.parentNode}if(E(c,d)){f=c.cloneNode(!1),g=c.parentNode,f.id&&f.removeAttribute("id");for(var j,k=0;j=c.childNodes[d];)q(j,f,k++,e);return q(f,g,L.getNodeIndex(c)+1,e),c==a?f:F(a,g,L.getNodeIndex(f),e)}if(a!=c){f=c.parentNode;var l=L.getNodeIndex(c);return h||l++,F(a,f,l,e)}return a}function G(a,b){return a.namespaceURI==b.namespaceURI&&a.tagName.toLowerCase()==b.tagName.toLowerCase()&&l(a,b)&&w(a,b)&&"inline"==T(a,"display")&&"inline"==T(b,"display")}function H(a){var b=a?"nextSibling":"previousSibling";return function(c,d){var e=c.parentNode,f=c[b];if(f){if(f&&3==f.nodeType)return f}else if(d&&(f=e[b],f&&1==f.nodeType&&G(e,f))){var g=f[a?"firstChild":"lastChild"];if(g&&3==g.nodeType)return g}return null}}function I(a){this.isElementMerge=1==a.nodeType,this.textNodes=[];var b=this.isElementMerge?a.lastChild:a;b&&(this.textNodes[0]=b)}function J(a,b,e){var f,g,h,i,k=this;k.cssClass=k.className=a;var l=null,m={};if("object"==typeof b&&null!==b){for("undefined"!=typeof b.elementTagName&&(b.elementTagName=b.elementTagName.toLowerCase()),e=b.tagNames,l=b.elementProperties,m=b.elementAttributes,g=0;i=Z[g++];)b.hasOwnProperty(i)&&(k[i]=b[i]);f=b.normalize}else f=b;k.normalize="undefined"==typeof f?!0:f,k.attrExceptions=[];var n=document.createElement(k.elementTagName);k.elementProperties=k.copyPropertiesToElement(l,n,!0),c(m,function(a,b){k.attrExceptions.push(a),m[a]=""+b}),k.elementAttributes=m,k.elementSortedClassName=k.elementProperties.hasOwnProperty("className")?j(k.elementProperties.className+" "+a):a,k.applyToAnyTagName=!1;var o=typeof e;if("string"==o)"*"==e?k.applyToAnyTagName=!0:k.tagNames=d(e.toLowerCase()).split(/\s*,\s*/);else if("object"==o&&"number"==typeof e.length)for(k.tagNames=[],g=0,h=e.length;h>g;++g)"*"==e[g]?k.applyToAnyTagName=!0:k.tagNames.push(e[g].toLowerCase());else k.tagNames=[k.elementTagName]}function K(a,b,c){return new J(a,b,c)}var L=a.dom,M=L.DomPosition,N=L.arrayContains,O=a.util,P=O.forEach,Q="span",R=O.isHostMethod(document,"createElementNS"),S=function(){function a(a,b,c){return b&&c?" ":""}return function(b,c){if("object"==typeof b.classList)b.classList.remove(c);else{var d="string"==typeof b.className,e=d?b.className:b.getAttribute("class");e=e.replace(new RegExp("(^|\\s)"+c+"(\\s|$)"),a),d?b.className=e:b.setAttribute("class",e)}}}(),T=L.getComputedStyleProperty,U=function(){var a=document.createElement("div");return"boolean"==typeof a.isContentEditable?function(a){return a&&1==a.nodeType&&a.isContentEditable}:function(a){return a&&1==a.nodeType&&"false"!=a.contentEditable?"true"==a.contentEditable||U(a.parentNode):!1}}(),V=/^inline(-block|-table)?$/i,W=/[^\r\n\t\f \u200B]/,X=H(!1),Y=H(!0);I.prototype={doMerge:function(a){var b=this.textNodes,c=b[0];if(b.length>1){var d,e=L.getNodeIndex(c),f=[],g=0;P(b,function(b,h){d=b.parentNode,h>0&&(d.removeChild(b),d.hasChildNodes()||L.removeNode(d),a&&P(a,function(a){a.node==b&&(a.node=c,a.offset+=g),a.node==d&&a.offset>e&&(--a.offset,a.offset==e+1&&h<len-1&&(a.node=c,a.offset=g))})),f[h]=b.data,g+=b.data.length}),c.data=f.join("")}return c.data},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){var a=[];return P(this.textNodes,function(b,c){a[c]="'"+b.data+"'"}),"[Merge("+a.join(",")+")]"}};var Z=["elementTagName","ignoreWhiteSpace","applyToEditableOnly","useExistingElements","removeEmptyElements","onElementCreate"],$={};J.prototype={elementTagName:Q,elementProperties:{},elementAttributes:{},ignoreWhiteSpace:!0,applyToEditableOnly:!1,useExistingElements:!0,removeEmptyElements:!0,onElementCreate:null,copyPropertiesToElement:function(a,b,c){var d,e,f,h,i,k,l={};for(var m in a)if(a.hasOwnProperty(m))if(h=a[m],i=b[m],"className"==m)g(b,h),g(b,this.className),b[m]=j(b[m]),c&&(l[m]=h);else if("style"==m){e=i,c&&(l[m]=f={});for(d in a[m])a[m].hasOwnProperty(d)&&(e[d]=h[d],c&&(f[d]=e[d]));this.attrExceptions.push(m)}else b[m]=h,c&&(l[m]=b[m],k=$.hasOwnProperty(m)?$[m]:m,this.attrExceptions.push(k));return c?l:""},copyAttributesToElement:function(a,b){for(var c in a)a.hasOwnProperty(c)&&!/^class(?:Name)?$/i.test(c)&&b.setAttribute(c,a[c])},appliesToElement:function(a){return N(this.tagNames,a.tagName.toLowerCase())},getEmptyElements:function(a){var b=this;return a.getNodes([1],function(a){return b.appliesToElement(a)&&!a.hasChildNodes()})},hasClass:function(a){return 1==a.nodeType&&(this.applyToAnyTagName||this.appliesToElement(a))&&f(a,this.className)},getSelfOrAncestorWithClass:function(a){for(;a;){if(this.hasClass(a))return a;a=a.parentNode}return null},isModifiable:function(a){return!this.applyToEditableOnly||z(a)},isIgnorableWhiteSpaceNode:function(a){return this.ignoreWhiteSpace&&a&&3==a.nodeType&&B(a)},postApply:function(a,b,c,d){var e,f,g=a[0],h=a[a.length-1],j=[],k=g,l=h,m=0,n=h.length;P(a,function(a){f=X(a,!d),f?(e||(e=new I(f),j.push(e)),e.textNodes.push(a),a===g&&(k=e.textNodes[0],m=k.length),a===h&&(l=e.textNodes[0],n=e.getLength())):e=null});var o=Y(h,!d);if(o&&(e||(e=new I(h),j.push(e)),e.textNodes.push(o)),j.length){for(i=0,len=j.length;i<len;++i)j[i].doMerge(c);b.setStartAndEnd(k,m,l,n)}},createContainer:function(a){var b,c=L.getDocument(a),d=R&&!L.isHtmlNamespace(a)&&(b=a.namespaceURI)?c.createElementNS(a.namespaceURI,this.elementTagName):c.createElement(this.elementTagName);return this.copyPropertiesToElement(this.elementProperties,d,!1),this.copyAttributesToElement(this.elementAttributes,d),g(d,this.className),this.onElementCreate&&this.onElementCreate(d,this),d},elementHasProperties:function(a,b){var d=this;return c(b,function(b,c){if("className"==b)return m(a,c);if("object"==typeof c){if(!d.elementHasProperties(a[b],c))return!1}else if(a[b]!==c)return!1})},elementHasAttributes:function(a,b){return c(b,function(b,c){return a.getAttribute(b)!==c?!1:void 0})},applyToTextNode:function(a,b){if(n(a)){var c=a.parentNode;if(1==c.childNodes.length&&this.useExistingElements&&this.appliesToElement(c)&&this.elementHasProperties(c,this.elementProperties)&&this.elementHasAttributes(c,this.elementAttributes))g(c,this.className);else{var d=a.parentNode,e=this.createContainer(d);d.insertBefore(e,a),e.appendChild(a)}}},isRemovable:function(a){return a.tagName.toLowerCase()==this.elementTagName&&k(a)==this.elementSortedClassName&&this.elementHasProperties(a,this.elementProperties)&&!x(a,this.attrExceptions)&&this.elementHasAttributes(a,this.elementAttributes)&&this.isModifiable(a)},isEmptyContainer:function(a){var b=a.childNodes.length;return 1==a.nodeType&&this.isRemovable(a)&&(0==b||1==b&&this.isEmptyContainer(a.firstChild))},removeEmptyContainers:function(a){var b=this,c=a.getNodes([1],function(a){return b.isEmptyContainer(a)}),d=[a],e=C(d);P(c,function(a){r(a,e)}),D(d,e)},undoToTextNode:function(a,b,c,d){if(!b.containsNode(c)){var e=b.cloneRange();e.selectNode(c),e.isPointInRange(b.endContainer,b.endOffset)&&(F(c,b.endContainer,b.endOffset,d),b.setEndAfter(c)),e.isPointInRange(b.startContainer,b.startOffset)&&(c=F(c,b.startContainer,b.startOffset,d))}this.isRemovable(c)?t(c,d):S(c,this.className)},splitAncestorWithClass:function(a,b,c){var d=this.getSelfOrAncestorWithClass(a);d&&F(d,a,b,c)},undoToAncestor:function(a,b){this.isRemovable(a)?t(a,b):S(a,this.className)},applyToRange:function(a,b){var c=this;b=b||[];var d=C(b||[]);a.splitBoundariesPreservingPositions(d),c.removeEmptyElements&&c.removeEmptyContainers(a);var e=v(a);if(e.length){P(e,function(a){c.isIgnorableWhiteSpaceNode(a)||c.getSelfOrAncestorWithClass(a)||!c.isModifiable(a)||c.applyToTextNode(a,d)});var f=e[e.length-1];a.setStartAndEnd(e[0],0,f,f.length),c.normalize&&c.postApply(e,a,d,!1),D(b,d)}var h=c.getEmptyElements(a);P(h,function(a){g(a,c.className)})},applyToRanges:function(a){for(var b=a.length;b--;)this.applyToRange(a[b],a);return a},applyToSelection:function(b){var c=a.getSelection(b);c.setRanges(this.applyToRanges(c.getAllRanges()))},undoToRange:function(a,b){var c=this;b=b||[];var d=C(b);a.splitBoundariesPreservingPositions(d),c.removeEmptyElements&&c.removeEmptyContainers(a,d);var e,f,g=v(a),h=g[g.length-1];if(g.length){c.splitAncestorWithClass(a.endContainer,a.endOffset,d),c.splitAncestorWithClass(a.startContainer,a.startOffset,d);for(var i=0,j=g.length;j>i;++i)e=g[i],f=c.getSelfOrAncestorWithClass(e),f&&c.isModifiable(e)&&c.undoToAncestor(f,d);a.setStartAndEnd(g[0],0,h,h.length),c.normalize&&c.postApply(g,a,d,!0),D(b,d)}var k=c.getEmptyElements(a);P(k,function(a){S(a,c.className)})},undoToRanges:function(a){for(var b=a.length;b--;)this.undoToRange(a[b],a);return a},undoToSelection:function(b){var c=a.getSelection(b),d=a.getSelection(b).getAllRanges();this.undoToRanges(d),c.setRanges(d)},isAppliedToRange:function(a){if(a.collapsed||""==a.toString())return!!this.getSelfOrAncestorWithClass(a.commonAncestorContainer);var b=a.getNodes([3]);if(b.length)for(var c,d=0;c=b[d++];)if(!this.isIgnorableWhiteSpaceNode(c)&&u(a,c)&&this.isModifiable(c)&&!this.getSelfOrAncestorWithClass(c))return!1;return!0},isAppliedToRanges:function(a){var b=a.length;if(0==b)return!1;for(;b--;)if(!this.isAppliedToRange(a[b]))return!1;return!0},isAppliedToSelection:function(b){var c=a.getSelection(b);return this.isAppliedToRanges(c.getAllRanges())},toggleRange:function(a){this.isAppliedToRange(a)?this.undoToRange(a):this.applyToRange(a)},toggleSelection:function(a){this.isAppliedToSelection(a)?this.undoToSelection(a):this.applyToSelection(a)},getElementsWithClassIntersectingRange:function(a){var b=[],c=this;return a.getNodes([3],function(a){var d=c.getSelfOrAncestorWithClass(a);d&&!N(b,d)&&b.push(d)}),b},detach:function(){}},J.util={hasClass:f,addClass:g,removeClass:S,getClass:h,hasSameClasses:l,hasAllClasses:m,replaceWithOwnChildren:t,elementsHaveSameNonClassAttributes:w,elementHasNonClassAttributes:x,splitNodeAt:F,isEditableElement:U,isEditingHost:y,isEditable:z},a.CssClassApplier=a.ClassApplier=J,a.createClassApplier=K,O.createAliasForDeprecatedMethod(a,"createCssClassApplier","createClassApplier",b)}),a},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){return a.createModule("Highlighter",["ClassApplier"],function(a,b){function c(a,b){return a.characterRange.start-b.characterRange.start}function d(a,b){return b?a.getElementById(b):m(a)}function e(a,b){this.type=a,this.converterCreator=b}function f(a,b){q[a]=new e(a,b)}function g(a){var b=q[a];if(b instanceof e)return b.create();throw new Error("Highlighter type '"+a+"' is not valid")}function h(a,b){this.start=a,this.end=b}function i(a,b,c,d,e,f){e?(this.id=e,p=Math.max(p,e+1)):this.id=p++,this.characterRange=b,this.doc=a,this.classApplier=c,this.converter=d,this.containerElementId=f||null,this.applied=!1}function j(a,b){b=b||"textContent",this.doc=a||document,this.classAppliers={},this.highlights=[],this.converter=g(b)}var k=a.dom,l=k.arrayContains,m=k.getBody,n=a.util.createOptions,o=a.util.forEach,p=1,q={};e.prototype.create=function(){var a=this.converterCreator();return a.type=this.type,a},a.registerHighlighterType=f,h.prototype={intersects:function(a){return this.start<a.end&&this.end>a.start},isContiguousWith:function(a){return this.start==a.end||this.end==a.start},union:function(a){return new h(Math.min(this.start,a.start),Math.max(this.end,a.end));
-},intersection:function(a){return new h(Math.max(this.start,a.start),Math.min(this.end,a.end))},getComplements:function(a){var b=[];if(this.start>=a.start){if(this.end<=a.end)return[];b.push(new h(a.end,this.end))}else b.push(new h(this.start,Math.min(this.end,a.start))),this.end>a.end&&b.push(new h(a.end,this.end));return b},toString:function(){return"[CharacterRange("+this.start+", "+this.end+")]"}},h.fromCharacterRange=function(a){return new h(a.start,a.end)};var r={rangeToCharacterRange:function(a,b){var c=a.getBookmark(b);return new h(c.start,c.end)},characterRangeToRange:function(b,c,d){var e=a.createRange(b);return e.moveToBookmark({start:c.start,end:c.end,containerNode:d}),e},serializeSelection:function(a,b){for(var c=a.getAllRanges(),d=c.length,e=[],f=1==d&&a.isBackward(),g=0,h=c.length;h>g;++g)e[g]={characterRange:this.rangeToCharacterRange(c[g],b),backward:f};return e},restoreSelection:function(a,b,c){a.removeAllRanges();for(var d,e,f,g=a.win.document,h=0,i=b.length;i>h;++h)e=b[h],f=e.characterRange,d=this.characterRangeToRange(g,e.characterRange,c),a.addRange(d,e.backward)}};f("textContent",function(){return r}),f("TextRange",function(){var b;return function(){if(!b){var c=a.modules.TextRange;if(!c)throw new Error("TextRange module is missing.");if(!c.supported)throw new Error("TextRange module is present but not supported.");b={rangeToCharacterRange:function(a,b){return h.fromCharacterRange(a.toCharacterRange(b))},characterRangeToRange:function(b,c,d){var e=a.createRange(b);return e.selectCharacters(d,c.start,c.end),e},serializeSelection:function(a,b){return a.saveCharacterRanges(b)},restoreSelection:function(a,b,c){a.restoreCharacterRanges(c,b)}}}return b}}()),i.prototype={getContainerElement:function(){return d(this.doc,this.containerElementId)},getRange:function(){return this.converter.characterRangeToRange(this.doc,this.characterRange,this.getContainerElement())},fromRange:function(a){this.characterRange=this.converter.rangeToCharacterRange(a,this.getContainerElement())},getText:function(){return this.getRange().toString()},containsElement:function(a){return this.getRange().containsNodeContents(a.firstChild)},unapply:function(){this.classApplier.undoToRange(this.getRange()),this.applied=!1},apply:function(){this.classApplier.applyToRange(this.getRange()),this.applied=!0},getHighlightElements:function(){return this.classApplier.getElementsWithClassIntersectingRange(this.getRange())},toString:function(){return"[Highlight(ID: "+this.id+", class: "+this.classApplier.className+", character range: "+this.characterRange.start+" - "+this.characterRange.end+")]"}},j.prototype={addClassApplier:function(a){this.classAppliers[a.className]=a},getHighlightForElement:function(a){for(var b=this.highlights,c=0,d=b.length;d>c;++c)if(b[c].containsElement(a))return b[c];return null},removeHighlights:function(a){for(var b,c=0,d=this.highlights.length;d>c;++c)b=this.highlights[c],l(a,b)&&(b.unapply(),this.highlights.splice(c--,1))},removeAllHighlights:function(){this.removeHighlights(this.highlights)},getIntersectingHighlights:function(a){var b=[],c=this.highlights;return o(a,function(a){o(c,function(c){a.intersectsRange(c.getRange())&&!l(b,c)&&b.push(c)})}),b},highlightCharacterRanges:function(b,c,d){var e,f,g,j=this.highlights,k=this.converter,l=this.doc,m=[],p=b?this.classAppliers[b]:null;d=n(d,{containerElementId:null,exclusive:!0});var q,r,s,t=d.containerElementId,u=d.exclusive;t&&(q=this.doc.getElementById(t),q&&(r=a.createRange(this.doc),r.selectNodeContents(q),s=new h(0,r.toString().length)));var v,w,x,y,z,A;for(e=0,f=c.length;f>e;++e)if(v=c[e],z=[],s&&(v=v.intersection(s)),v.start!=v.end){for(g=0;g<j.length;++g)x=!1,t==j[g].containerElementId&&(w=j[g].characterRange,y=p==j[g].classApplier,A=!y&&u,(w.intersects(v)||w.isContiguousWith(v))&&(y||A)&&(A&&o(w.getComplements(v),function(a){z.push(new i(l,a,j[g].classApplier,k,null,t))}),x=!0,y&&(v=w.union(v)))),x?(m.push(j[g]),j[g]=new i(l,w.union(v),p,k,null,t)):z.push(j[g]);p&&z.push(new i(l,v,p,k,null,t)),this.highlights=j=z}o(m,function(a){a.unapply()});var B=[];return o(j,function(a){a.applied||(a.apply(),B.push(a))}),B},highlightRanges:function(b,c,d){var e=[],f=this.converter;d=n(d,{containerElement:null,exclusive:!0});var g,h=d.containerElement,i=h?h.id:null;return h&&(g=a.createRange(h),g.selectNodeContents(h)),o(c,function(a){var b=h?g.intersection(a):a;e.push(f.rangeToCharacterRange(b,h||m(a.getDocument())))}),this.highlightCharacterRanges(b,e,{containerElementId:i,exclusive:d.exclusive})},highlightSelection:function(b,c){var e=this.converter,f=b?this.classAppliers[b]:!1;c=n(c,{containerElementId:null,selection:a.getSelection(this.doc),exclusive:!0});var g=c.containerElementId,i=c.exclusive,j=c.selection,k=j.win.document,l=d(k,g);if(!f&&b!==!1)throw new Error("No class applier found for class '"+b+"'");var m=e.serializeSelection(j,l),p=[];o(m,function(a){p.push(h.fromCharacterRange(a.characterRange))});var q=this.highlightCharacterRanges(b,p,{containerElementId:g,exclusive:i});return e.restoreSelection(j,m,l),q},unhighlightSelection:function(b){b=b||a.getSelection(this.doc);var c=this.getIntersectingHighlights(b.getAllRanges());return this.removeHighlights(c),b.removeAllRanges(),c},getHighlightsInSelection:function(b){return b=b||a.getSelection(this.doc),this.getIntersectingHighlights(b.getAllRanges())},selectionOverlapsHighlight:function(a){return this.getHighlightsInSelection(a).length>0},serialize:function(a){var b,d,e,f,h=this,i=h.highlights;return i.sort(c),a=n(a,{serializeHighlightText:!1,type:h.converter.type}),b=a.type,e=b!=h.converter.type,e&&(f=g(b)),d=["type:"+b],o(i,function(b){var c,g=b.characterRange;e&&(c=b.getContainerElement(),g=f.rangeToCharacterRange(h.converter.characterRangeToRange(h.doc,g,c),c));var i=[g.start,g.end,b.id,b.classApplier.className,b.containerElementId];a.serializeHighlightText&&i.push(b.getText()),d.push(i.join("$"))}),d.join("|")},deserialize:function(a){var b,c,e,f=a.split("|"),j=[],k=f[0],l=!1;if(!k||!(b=/^type:(\w+)$/.exec(k)))throw new Error("Serialized highlights are invalid.");c=b[1],c!=this.converter.type&&(e=g(c),l=!0),f.shift();for(var m,n,o,p,q,r,s=f.length;s-- >0;){if(r=f[s].split("$"),o=new h(+r[0],+r[1]),p=r[4]||null,l&&(q=d(this.doc,p),o=this.converter.rangeToCharacterRange(e.characterRangeToRange(this.doc,o,q),q)),m=this.classAppliers[r[3]],!m)throw new Error("No class applier found for class '"+r[3]+"'");n=new i(this.doc,o,m,this.converter,parseInt(r[2]),p),n.apply(),j.push(n)}this.highlights=j}},a.Highlighter=j,a.createHighlighter=function(a,b){return new j(a,b)}}),a},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){return a.createModule("SaveRestore",["WrappedRange"],function(a,b){function c(a,b){return(b||document).getElementById(a)}function d(a,b){var c,d="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),e=o.getDocument(a.startContainer),f=a.cloneRange();return f.collapse(b),c=e.createElement("span"),c.id=d,c.style.lineHeight="0",c.style.display="none",c.className="rangySelectionBoundary",c.appendChild(e.createTextNode(r)),f.insertNode(c),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),p(g)):b.warn("Marker element has been removed. Cannot restore selection.")}function f(a,b){return b.compareBoundaryPoints(a.START_TO_START,a)}function g(b,c){var e,f,g=a.DomRange.getRangeDocument(b),h=b.toString(),i=q(c);return b.collapsed?(f=d(b,!1),{document:g,markerId:f.id,collapsed:!0}):(f=d(b,!1),e=d(b,!0),{document:g,startMarkerId:e.id,endMarkerId:f.id,collapsed:!1,backward:i,toString:function(){return"original text: '"+h+"', new text: '"+b.toString()+"'"}})}function h(d,f){var g=d.document;"undefined"==typeof f&&(f=!0);var h=a.createRange(g);if(d.collapsed){var i=c(d.markerId,g);if(i){i.style.display="inline";var j=i.previousSibling;j&&3==j.nodeType?(p(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),p(i))}else b.warn("Marker element has been removed. Cannot restore selection.")}else e(g,h,d.startMarkerId,!0),e(g,h,d.endMarkerId,!1);return f&&h.normalizeBoundaries(),h}function i(b,d){var e,h,i=[],j=q(d);b=b.slice(0),b.sort(f);for(var k=0,l=b.length;l>k;++k)i[k]=g(b[k],j);for(k=l-1;k>=0;--k)e=b[k],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[k].markerId,h)):(e.setEndBefore(c(i[k].endMarkerId,h)),e.setStartAfter(c(i[k].startMarkerId,h)));return i}function j(c){if(!a.isSelectionValid(c))return b.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var d=a.getSelection(c),e=d.getAllRanges(),f=1==e.length&&d.isBackward(),g=i(e,f);return f?d.setSingleRange(e[0],f):d.setRanges(e),{win:c,rangeInfos:g,restored:!1}}function k(a){for(var b=[],c=a.length,d=c-1;d>=0;d--)b[d]=h(a[d],!0);return b}function l(b,c){if(!b.restored){var d=b.rangeInfos,e=a.getSelection(b.win),f=k(d),g=d.length;1==g&&c&&a.features.selectionHasExtend&&d[0].backward?(e.removeAllRanges(),e.addRange(f[0],!0)):e.setRanges(f),b.restored=!0}}function m(a,b){var d=c(b,a);d&&p(d)}function n(a){for(var b,c=a.rangeInfos,d=0,e=c.length;e>d;++d)b=c[d],b.collapsed?m(a.doc,b.markerId):(m(a.doc,b.startMarkerId),m(a.doc,b.endMarkerId))}var o=a.dom,p=o.removeNode,q=a.Selection.isDirectionBackward,r="\ufeff";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})}),a},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){return a.createModule("Serializer",["WrappedSelection"],function(a,b){function c(a){return a.replace(/</g,"&lt;").replace(/>/g,"&gt;")}function d(a,b){b=b||[];var e=a.nodeType,f=a.childNodes,g=f.length,h=[e,a.nodeName,g].join(":"),i="",j="";switch(e){case 3:i=c(a.nodeValue);break;case 8:i="<!--"+c(a.nodeValue)+"-->";break;default:i="<"+h+">",j="</>"}i&&b.push(i);for(var k=0;g>k;++k)d(f[k],b);return j&&b.push(j),b}function e(a){var b=d(a).join("");return s(b).toString(16)}function f(a,b,c){var d=[],e=a;for(c=c||t.getDocument(a).documentElement;e&&e!=c;)d.push(t.getNodeIndex(e,!0)),e=e.parentNode;return d.join("/")+":"+b}function g(a,c,d){c||(c=(d||document).documentElement);for(var e,f=a.split(":"),g=c,h=f[0]?f[0].split("/"):[],i=h.length;i--;){if(e=parseInt(h[i],10),!(e<g.childNodes.length))throw b.createError("deserializePosition() failed: node "+t.inspectNode(g)+" has no child with index "+e+", "+i);g=g.childNodes[e]}return new t.DomPosition(g,parseInt(f[1],10))}function h(c,d,g){if(g=g||a.DomRange.getRangeDocument(c).documentElement,!t.isOrIsAncestorOf(g,c.commonAncestorContainer))throw b.createError("serializeRange(): range "+c.inspect()+" is not wholly contained within specified root node "+t.inspectNode(g));var h=f(c.startContainer,c.startOffset,g)+","+f(c.endContainer,c.endOffset,g);return d||(h+="{"+e(g)+"}"),h}function i(c,d,f){d?f=f||t.getDocument(d):(f=f||document,d=f.documentElement);var h=u.exec(c),i=h[4];if(i){var j=e(d);if(i!==j)throw b.createError("deserializeRange(): checksums of serialized range root node ("+i+") and target root node ("+j+") do not match")}var k=g(h[1],d,f),l=g(h[2],d,f),m=a.createRange(f);return m.setStartAndEnd(k.node,k.offset,l.node,l.offset),m}function j(a,b,c){b||(b=(c||document).documentElement);var d=u.exec(a),f=d[3];return!f||f===e(b)}function k(b,c,d){b=a.getSelection(b);for(var e=b.getAllRanges(),f=[],g=0,i=e.length;i>g;++g)f[g]=h(e[g],c,d);return f.join("|")}function l(b,c,d){c?d=d||t.getWindow(c):(d=d||window,c=d.document.documentElement);for(var e=b.split("|"),f=a.getSelection(d),g=[],h=0,j=e.length;j>h;++h)g[h]=i(e[h],c,d.document);return f.setRanges(g),f}function m(a,b,c){var d;b?d=c?c.document:t.getDocument(b):(c=c||window,b=c.document.documentElement);for(var e=a.split("|"),f=0,g=e.length;g>f;++f)if(!j(e[f],b,d))return!1;return!0}function n(a){for(var b,c,d=a.split(/[;,]/),e=0,f=d.length;f>e;++e)if(b=d[e].split("="),b[0].replace(/^\s+/,"")==v&&(c=b[1]))return decodeURIComponent(c.replace(/\s+$/,""));return null}function o(a){a=a||window;var b=n(a.document.cookie);b&&l(b,a.doc)}function p(b,c){b=b||window,c="object"==typeof c?c:{};var d=c.expires?";expires="+c.expires.toUTCString():"",e=c.path?";path="+c.path:"",f=c.domain?";domain="+c.domain:"",g=c.secure?";secure":"",h=k(a.getSelection(b));b.document.cookie=encodeURIComponent(v)+"="+encodeURIComponent(h)+d+e+f+g}var q="undefined",r=a.util;(typeof encodeURIComponent==q||typeof decodeURIComponent==q)&&b.fail("encodeURIComponent and/or decodeURIComponent method is missing");var s=function(){function a(a){for(var b,c=[],d=0,e=a.length;e>d;++d)b=a.charCodeAt(d),128>b?c.push(b):2048>b?c.push(b>>6|192,63&b|128):c.push(b>>12|224,b>>6&63|128,63&b|128);return c}function b(){for(var a,b,c=[],d=0;256>d;++d){for(b=d,a=8;a--;)1==(1&b)?b=b>>>1^3988292384:b>>>=1;c[d]=b>>>0}return c}function c(){return d||(d=b()),d}var d=null;return function(b){for(var d,e=a(b),f=-1,g=c(),h=0,i=e.length;i>h;++h)d=255&(f^e[h]),f=f>>>8^g[d];return(-1^f)>>>0}}(),t=a.dom,u=/^([^,]+),([^,\{]+)(\{([^}]+)\})?$/,v="rangySerializedSelection";r.extend(a,{serializePosition:f,deserializePosition:g,serializeRange:h,deserializeRange:i,canDeserializeRange:j,serializeSelection:k,deserializeSelection:l,canDeserializeSelection:m,restoreSelectionFromCookie:o,saveSelectionCookie:p,getElementChecksum:e,nodeToInfoString:d}),r.crc32=s}),a},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){return a.createModule("TextRange",["WrappedSelection"],function(a,b){function c(a,b){function c(a,b,c){h.push({start:a,end:b,isWord:c})}for(var d,e,f,g=a.join(""),h=[],i=0;d=b.wordRegex.exec(g);){if(e=d.index,f=e+d[0].length,e>i&&c(i,e,!1),b.includeTrailingSpace)for(;$.test(a[f]);)++f;c(e,f,!0),i=f}return i<a.length&&c(i,a.length,!1),h}function d(a,b){for(var c=a.slice(b.start,b.end),d={isWord:b.isWord,chars:c,toString:function(){return c.join("")}},e=0,f=c.length;f>e;++e)c[e].token=d;return d}function e(a,b,c){for(var e,f=c(a,b),g=[],h=0;e=f[h++];)g.push(d(a,e));return g}function f(a){var b=a||"",c="string"==typeof b?b.split(""):b;return c.sort(function(a,b){return a.charCodeAt(0)-b.charCodeAt(0)}),c.join("").replace(/(.)\1+/g,"$1")}function g(a){var b,c;return a?(b=a.language||_,c={},U(c,ia[b]||ia[_]),U(c,a),c):ia[_]}function h(a,b){var c=V(a,b);return b.hasOwnProperty("wordOptions")&&(c.wordOptions=g(c.wordOptions)),b.hasOwnProperty("characterOptions")&&(c.characterOptions=V(c.characterOptions,ga)),c}function i(a,b){var c=na(a,"display",b),d=a.tagName.toLowerCase();return"block"==c&&fa&&oa.hasOwnProperty(d)?oa[d]:c}function j(a){for(var b=o(a),c=0,d=b.length;d>c;++c)if(1==b[c].nodeType&&"none"==i(b[c]))return!0;return!1}function k(a){var b;return 3==a.nodeType&&(b=a.parentNode)&&"hidden"==na(b,"visibility")}function l(a){return a&&(1==a.nodeType&&!/^(inline(-block|-table)?|none)$/.test(i(a))||9==a.nodeType||11==a.nodeType)}function m(a){return S.isCharacterDataNode(a)||!/^(area|base|basefont|br|col|frame|hr|img|input|isindex|link|meta|param)$/i.test(a.nodeName)}function n(a){for(var b=[];a.parentNode;)b.unshift(a.parentNode),a=a.parentNode;return b}function o(a){return n(a).concat([a])}function p(a){for(;a&&!a.nextSibling;)a=a.parentNode;return a?a.nextSibling:null}function q(a,b){return!b&&a.hasChildNodes()?a.firstChild:p(a)}function r(a){var b=a.previousSibling;if(b){for(a=b;a.hasChildNodes();)a=a.lastChild;return a}var c=a.parentNode;return c&&1==c.nodeType?c:null}function s(a){if(!a||3!=a.nodeType)return!1;var b=a.data;if(""===b)return!0;var c=a.parentNode;if(!c||1!=c.nodeType)return!1;var d=na(a.parentNode,"whiteSpace");return/^[\t\n\r ]+$/.test(b)&&/^(normal|nowrap)$/.test(d)||/^[\t\r ]+$/.test(b)&&"pre-line"==d}function t(a){if(""===a.data)return!0;if(!s(a))return!1;var b=a.parentNode;return b?j(a)?!0:!1:!0}function u(a){var b=a.nodeType;return 7==b||8==b||j(a)||/^(script|style)$/i.test(a.nodeName)||k(a)||t(a)}function v(a,b){var c=a.nodeType;return 7==c||8==c||1==c&&"none"==i(a,b)}function w(){this.store={}}function x(a,b,c){return function(d){var e=this.cache;if(e.hasOwnProperty(a))return pa++,e[a];qa++;var f=b.call(this,c?this[c]:this,d);return e[a]=f,f}}function y(a,b){this.node=a,this.session=b,this.cache=new w,this.positions=new w}function z(a,b){this.offset=b,this.nodeWrapper=a,this.node=a.node,this.session=a.session,this.cache=new w}function A(){return"[Position("+S.inspectNode(this.node)+":"+this.offset+")]"}function B(){return D(),Da=new Ea}function C(){return Da||B()}function D(){Da&&Da.detach(),Da=null}function E(a,c,d,e){function f(){var a=null;return c?(a=h,i||(h=h.previousVisible(),i=!h||d&&h.equals(d))):i||(a=h=h.nextVisible(),i=!h||d&&h.equals(d)),i&&(h=null),a}d&&(c?u(d.node)&&(d=a.previousVisible()):u(d.node)&&(d=d.nextVisible()));var g,h=a,i=!1,j=!1;return{next:function(){if(j)return j=!1,g;for(var a,b;a=f();)if(b=a.getCharacter(e))return g=a,a;return null},rewind:function(){if(!g)throw b.createError("createCharacterIterator: cannot rewind. Only one position can be rewound.");j=!0},dispose:function(){a=d=null}}}function F(a,b,c){function d(a){for(var b,c,d=[],e=a?f:g,h=!1,i=!1;b=e.next();){if(c=b.character,Z.test(c))i&&(i=!1,h=!0);else{if(h){e.rewind();break}i=!0}d.push(b)}return d}var f=E(a,!1,null,b),g=E(a,!0,null,b),h=c.tokenizer,i=d(!0),j=d(!1).reverse(),k=e(j.concat(i),c,h),l=i.length?k.slice(Fa(k,i[0].token)):[],m=j.length?k.slice(0,Fa(k,j.pop().token)+1):[];return{nextEndToken:function(){for(var a,b;1==l.length&&!(a=l[0]).isWord&&(b=d(!0)).length>0;)l=e(a.chars.concat(b),c,h);return l.shift()},previousStartToken:function(){for(var a,b;1==m.length&&!(a=m[0]).isWord&&(b=d(!1)).length>0;)m=e(b.reverse().concat(a.chars),c,h);return m.pop()},dispose:function(){f.dispose(),g.dispose(),l=m=null}}}function G(a,b,c,d,e){var f,g,h,i,j=0,k=a,l=Math.abs(c);if(0!==c){var m=0>c;switch(b){case Q:for(g=E(a,m,null,d);(f=g.next())&&l>j;)++j,k=f;h=f,g.dispose();break;case R:for(var n=F(a,d,e),o=m?n.previousStartToken:n.nextEndToken;(i=o())&&l>j;)i.isWord&&(++j,k=m?i.chars[0]:i.chars[i.chars.length-1]);break;default:throw new Error("movePositionBy: unit '"+b+"' not implemented")}m?(k=k.previousVisible(),j=-j):k&&k.isLeadingSpace&&!k.isTrailingSpace&&(b==R&&(g=E(a,!1,null,d),h=g.next(),g.dispose()),h&&(k=h.previousVisible()))}return{position:k,unitsMoved:j}}function H(a,b,c,d){var e=a.getRangeBoundaryPosition(b,!0),f=a.getRangeBoundaryPosition(b,!1),g=d?f:e,h=d?e:f;return E(g,!!d,h,c)}function I(a,b,c){for(var d,e=[],f=H(a,b,c);d=f.next();)e.push(d);return f.dispose(),e}function J(b,c,d){var e=a.createRange(b.node);return e.setStartAndEnd(b.node,b.offset,c.node,c.offset),!e.expand("word",{wordOptions:d})}function K(a,b,c,d,e){function f(a,b){var c=p[a].previousVisible(),d=p[b-1],f=!e.wholeWordsOnly||J(c,d,e.wordOptions);return{startPos:c,endPos:d,valid:f}}for(var g,h,i,j,k,l,m=aa(e.direction),n=E(a,m,a.session.getRangeBoundaryPosition(d,m),e.characterOptions),o="",p=[],q=null;g=n.next();)if(h=g.character,c||e.caseSensitive||(h=h.toLowerCase()),m?(p.unshift(g),o=h+o):(p.push(g),o+=h),c){if(k=b.exec(o))if(i=k.index,j=i+k[0].length,l){if(!m&&j<o.length||m&&i>0){q=f(i,j);break}}else l=!0}else if(-1!=(i=o.indexOf(b))){q=f(i,i+b.length);break}return l&&(q=f(i,j)),n.dispose(),q}function L(a){return function(){var b=!!Da,c=C(),d=[c].concat(T.toArray(arguments)),e=a.apply(this,d);return b||D(),e}}function M(a,b){return L(function(c,d,e,f){typeof e==P&&(e=d,d=Q),f=h(f,ka);var g=a;b&&(g=e>=0,this.collapse(!g));var i=G(c.getRangeBoundaryPosition(this,g),d,e,f.characterOptions,f.wordOptions),j=i.position;return this[g?"setStart":"setEnd"](j.node,j.offset),i.unitsMoved})}function N(a){return L(function(b,c){c=V(c,ga);for(var d,e=H(b,this,c,!a),f=0;(d=e.next())&&Z.test(d.character);)++f;e.dispose();var g=f>0;return g&&this[a?"moveStart":"moveEnd"]("character",a?f:-f,{characterOptions:c}),g})}function O(a){return L(function(b,c){var d=!1;return this.changeEachRange(function(b){d=b[a](c)||d}),d})}var P="undefined",Q="character",R="word",S=a.dom,T=a.util,U=T.extend,V=T.createOptions,W=S.getBody,X=/^[ \t\f\r\n]+$/,Y=/^[ \t\f\r]+$/,Z=/^[\t-\r \u0085\u00A0\u1680\u180E\u2000-\u200B\u2028\u2029\u202F\u205F\u3000]+$/,$=/^[\t \u00A0\u1680\u180E\u2000-\u200B\u202F\u205F\u3000]+$/,_="en",aa=a.Selection.isDirectionBackward,ba=!1,ca=!1,da=!1,ea=!0;!function(){var b=S.createTestElement(document,"<p>1 </p><p></p>",!0),c=b.firstChild,d=a.getSelection();d.collapse(c.lastChild,2),d.setStart(c.firstChild,0),ba=1==(""+d).length,b.innerHTML="1 <br />",d.collapse(b,2),d.setStart(b.firstChild,0),ca=1==(""+d).length,b.innerHTML="1 <p>1</p>",d.collapse(b,2),d.setStart(b.firstChild,0),da=1==(""+d).length,S.removeNode(b),d.removeAllRanges()}();var fa,ga={includeBlockContentTrailingSpace:!0,includeSpaceBeforeBr:!0,includeSpaceBeforeBlock:!0,includePreLineTrailingSpace:!0,ignoreCharacters:""},ha={includeBlockContentTrailingSpace:!ea,includeSpaceBeforeBr:!ca,includeSpaceBeforeBlock:!da,includePreLineTrailingSpace:!0},ia={en:{wordRegex:/[a-z0-9]+('[a-z0-9]+)*/gi,includeTrailingSpace:!1,tokenizer:c}},ja={caseSensitive:!1,withinRange:null,wholeWordsOnly:!1,wrap:!1,direction:"forward",wordOptions:null,characterOptions:null},ka={wordOptions:null,characterOptions:null},la={wordOptions:null,characterOptions:null,trim:!1,trimStart:!0,trimEnd:!0},ma={wordOptions:null,characterOptions:null,direction:"forward"},na=S.getComputedStyleProperty;!function(){var a=document.createElement("table"),b=W(document);b.appendChild(a),fa="block"==na(a,"display"),b.removeChild(a)}();var oa={table:"table",caption:"table-caption",colgroup:"table-column-group",col:"table-column",thead:"table-header-group",tbody:"table-row-group",tfoot:"table-footer-group",tr:"table-row",td:"table-cell",th:"table-cell"};w.prototype={get:function(a){return this.store.hasOwnProperty(a)?this.store[a]:null},set:function(a,b){return this.store[a]=b}};var pa=0,qa=0,ra={getPosition:function(a){var b=this.positions;return b.get(a)||b.set(a,new z(this,a))},toString:function(){return"[NodeWrapper("+S.inspectNode(this.node)+")]"}};y.prototype=ra;var sa="EMPTY",ta="NON_SPACE",ua="UNCOLLAPSIBLE_SPACE",va="COLLAPSIBLE_SPACE",wa="TRAILING_SPACE_BEFORE_BLOCK",xa="TRAILING_SPACE_IN_BLOCK",ya="TRAILING_SPACE_BEFORE_BR",za="PRE_LINE_TRAILING_SPACE_BEFORE_LINE_BREAK",Aa="TRAILING_LINE_BREAK_AFTER_BR",Ba="INCLUDED_TRAILING_LINE_BREAK_AFTER_BR";U(ra,{isCharacterDataNode:x("isCharacterDataNode",S.isCharacterDataNode,"node"),getNodeIndex:x("nodeIndex",S.getNodeIndex,"node"),getLength:x("nodeLength",S.getNodeLength,"node"),containsPositions:x("containsPositions",m,"node"),isWhitespace:x("isWhitespace",s,"node"),isCollapsedWhitespace:x("isCollapsedWhitespace",t,"node"),getComputedDisplay:x("computedDisplay",i,"node"),isCollapsed:x("collapsed",u,"node"),isIgnored:x("ignored",v,"node"),next:x("nextPos",q,"node"),previous:x("previous",r,"node"),getTextNodeInfo:x("textNodeInfo",function(a){var b=null,c=!1,d=na(a.parentNode,"whiteSpace"),e="pre-line"==d;return e?(b=Y,c=!0):("normal"==d||"nowrap"==d)&&(b=X,c=!0),{node:a,text:a.data,spaceRegex:b,collapseSpaces:c,preLine:e}},"node"),hasInnerText:x("hasInnerText",function(a,b){for(var c=this.session,d=c.getPosition(a.parentNode,this.getNodeIndex()+1),e=c.getPosition(a,0),f=b?d:e,g=b?e:d;f!==g;){if(f.prepopulateChar(),f.isDefinitelyNonEmpty())return!0;f=b?f.previousVisible():f.nextVisible()}return!1},"node"),isRenderedBlock:x("isRenderedBlock",function(a){for(var b=a.getElementsByTagName("br"),c=0,d=b.length;d>c;++c)if(!u(b[c]))return!0;return this.hasInnerText()},"node"),getTrailingSpace:x("trailingSpace",function(a){if("br"==a.tagName.toLowerCase())return"";switch(this.getComputedDisplay()){case"inline":for(var b=a.lastChild;b;){if(!v(b))return 1==b.nodeType?this.session.getNodeWrapper(b).getTrailingSpace():"";b=b.previousSibling}break;case"inline-block":case"inline-table":case"none":case"table-column":case"table-column-group":break;case"table-cell":return"       ";default:return this.isRenderedBlock(!0)?"\n":""}return""},"node"),getLeadingSpace:x("leadingSpace",function(a){switch(this.getComputedDisplay()){case"inline":case"inline-block":case"inline-table":case"none":case"table-column":case"table-column-group":case"table-cell":break;default:return this.isRenderedBlock(!1)?"\n":""}return""},"node")});var Ca={character:"",characterType:sa,isBr:!1,prepopulateChar:function(){var a=this;if(!a.prepopulatedChar){var b=a.node,c=a.offset,d="",e=sa,f=!1;if(c>0)if(3==b.nodeType){var g=b.data,h=g.charAt(c-1),i=a.nodeWrapper.getTextNodeInfo(),j=i.spaceRegex;i.collapseSpaces?j.test(h)?c>1&&j.test(g.charAt(c-2))||(i.preLine&&"\n"===g.charAt(c)?(d=" ",e=za):(d=" ",e=va)):(d=h,e=ta,f=!0):(d=h,e=ua,f=!0)}else{var k=b.childNodes[c-1];if(k&&1==k.nodeType&&!u(k)&&("br"==k.tagName.toLowerCase()?(d="\n",a.isBr=!0,e=va,f=!1):a.checkForTrailingSpace=!0),!d){var l=b.childNodes[c];l&&1==l.nodeType&&!u(l)&&(a.checkForLeadingSpace=!0)}}a.prepopulatedChar=!0,a.character=d,a.characterType=e,a.isCharInvariant=f}},isDefinitelyNonEmpty:function(){var a=this.characterType;return a==ta||a==ua},resolveLeadingAndTrailingSpaces:function(){if(this.prepopulatedChar||this.prepopulateChar(),this.checkForTrailingSpace){var a=this.session.getNodeWrapper(this.node.childNodes[this.offset-1]).getTrailingSpace();a&&(this.isTrailingSpace=!0,this.character=a,this.characterType=va),this.checkForTrailingSpace=!1}if(this.checkForLeadingSpace){var b=this.session.getNodeWrapper(this.node.childNodes[this.offset]).getLeadingSpace();b&&(this.isLeadingSpace=!0,this.character=b,this.characterType=va),this.checkForLeadingSpace=!1}},getPrecedingUncollapsedPosition:function(a){for(var b,c=this;c=c.previousVisible();)if(b=c.getCharacter(a),""!==b)return c;return null},getCharacter:function(a){function b(){return n||(k=o.getPrecedingUncollapsedPosition(a),n=!0),k}this.resolveLeadingAndTrailingSpaces();var c,d=this.character,e=f(a.ignoreCharacters),g=""!==d&&e.indexOf(d)>-1;if(this.isCharInvariant)return c=g?"":d;var h=["character",a.includeSpaceBeforeBr,a.includeBlockContentTrailingSpace,a.includePreLineTrailingSpace,e].join("_"),i=this.cache.get(h);if(null!==i)return i;var j,k,l="",m=this.characterType==va,n=!1,o=this;return m&&(this.type==Ba?l="\n":" "==d&&(!b()||k.isTrailingSpace||"\n"==k.character||" "==k.character&&k.characterType==va)||("\n"==d&&this.isLeadingSpace?b()&&"\n"!=k.character&&(l="\n"):(j=this.nextUncollapsed(),j&&(j.isBr?this.type=ya:j.isTrailingSpace&&"\n"==j.character?this.type=xa:j.isLeadingSpace&&"\n"==j.character&&(this.type=wa),"\n"==j.character?(this.type!=ya||a.includeSpaceBeforeBr)&&(this.type!=wa||a.includeSpaceBeforeBlock)&&(this.type==xa&&j.isTrailingSpace&&!a.includeBlockContentTrailingSpace||(this.type!=za||j.type!=ta||a.includePreLineTrailingSpace)&&("\n"==d?j.isTrailingSpace?this.isTrailingSpace||this.isBr&&(j.type=Aa,b()&&k.isLeadingSpace&&!k.isTrailingSpace&&"\n"==k.character?j.character="":j.type=Ba):l="\n":" "==d&&(l=" "))):l=d)))),e.indexOf(l)>-1&&(l=""),this.cache.set(h,l),l},equals:function(a){return!!a&&this.node===a.node&&this.offset===a.offset},inspect:A,toString:function(){return this.character}};z.prototype=Ca,U(Ca,{next:x("nextPos",function(a){var b=a.nodeWrapper,c=a.node,d=a.offset,e=b.session;if(!c)return null;var f,g,h;return d==b.getLength()?(f=c.parentNode,g=f?b.getNodeIndex()+1:0):b.isCharacterDataNode()?(f=c,g=d+1):(h=c.childNodes[d],e.getNodeWrapper(h).containsPositions()?(f=h,g=0):(f=c,g=d+1)),f?e.getPosition(f,g):null}),previous:x("previous",function(a){var b,c,d,e=a.nodeWrapper,f=a.node,g=a.offset,h=e.session;return 0==g?(b=f.parentNode,c=b?e.getNodeIndex():0):e.isCharacterDataNode()?(b=f,c=g-1):(d=f.childNodes[g-1],h.getNodeWrapper(d).containsPositions()?(b=d,c=S.getNodeLength(d)):(b=f,c=g-1)),b?h.getPosition(b,c):null}),nextVisible:x("nextVisible",function(a){var b=a.next();if(!b)return null;var c=b.nodeWrapper,d=b.node,e=b;return c.isCollapsed()&&(e=c.session.getPosition(d.parentNode,c.getNodeIndex()+1)),e}),nextUncollapsed:x("nextUncollapsed",function(a){for(var b=a;b=b.nextVisible();)if(b.resolveLeadingAndTrailingSpaces(),""!==b.character)return b;return null}),previousVisible:x("previousVisible",function(a){var b=a.previous();if(!b)return null;var c=b.nodeWrapper,d=b.node,e=b;return c.isCollapsed()&&(e=c.session.getPosition(d.parentNode,c.getNodeIndex())),e})});var Da=null,Ea=function(){function a(a){var b=new w;return{get:function(c){var d=b.get(c[a]);if(d)for(var e,f=0;e=d[f++];)if(e.node===c)return e;return null},set:function(c){var d=c.node[a],e=b.get(d)||b.set(d,[]);e.push(c)}}}function b(){this.initCaches()}var c=T.isHostProperty(document.documentElement,"uniqueID");return b.prototype={initCaches:function(){this.elementCache=c?function(){var a=new w;return{get:function(b){return a.get(b.uniqueID)},set:function(b){a.set(b.node.uniqueID,b)}}}():a("tagName"),this.textNodeCache=a("data"),this.otherNodeCache=a("nodeName")},getNodeWrapper:function(a){var b;switch(a.nodeType){case 1:b=this.elementCache;break;case 3:b=this.textNodeCache;break;default:b=this.otherNodeCache}var c=b.get(a);return c||(c=new y(a,this),b.set(c)),c},getPosition:function(a,b){return this.getNodeWrapper(a).getPosition(b)},getRangeBoundaryPosition:function(a,b){var c=b?"start":"end";return this.getPosition(a[c+"Container"],a[c+"Offset"])},detach:function(){this.elementCache=this.textNodeCache=this.otherNodeCache=null}},b}();U(S,{nextNode:q,previousNode:r});var Fa=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)if(a[c]===b)return c;return-1};U(a.rangePrototype,{moveStart:M(!0,!1),moveEnd:M(!1,!1),move:M(!0,!0),trimStart:N(!0),trimEnd:N(!1),trim:L(function(a,b){var c=this.trimStart(b),d=this.trimEnd(b);return c||d}),expand:L(function(a,b,c){var d=!1;c=h(c,la);var e=c.characterOptions;if(b||(b=Q),b==R){var f,g,i=c.wordOptions,j=a.getRangeBoundaryPosition(this,!0),k=a.getRangeBoundaryPosition(this,!1),l=F(j,e,i),m=l.nextEndToken(),n=m.chars[0].previousVisible();if(this.collapsed)f=m;else{var o=F(k,e,i);f=o.previousStartToken()}return g=f.chars[f.chars.length-1],n.equals(j)||(this.setStart(n.node,n.offset),d=!0),g&&!g.equals(k)&&(this.setEnd(g.node,g.offset),d=!0),c.trim&&(c.trimStart&&(d=this.trimStart(e)||d),c.trimEnd&&(d=this.trimEnd(e)||d)),d}return this.moveEnd(Q,1,c)}),text:L(function(a,b){return this.collapsed?"":I(a,this,V(b,ga)).join("")}),selectCharacters:L(function(a,b,c,d,e){var f={characterOptions:e};b||(b=W(this.getDocument())),this.selectNodeContents(b),this.collapse(!0),this.moveStart("character",c,f),this.collapse(!0),this.moveEnd("character",d-c,f)}),toCharacterRange:L(function(a,b,c){b||(b=W(this.getDocument()));var d,e,f=b.parentNode,g=S.getNodeIndex(b),h=-1==S.comparePoints(this.startContainer,this.endContainer,f,g),i=this.cloneRange();return h?(i.setStartAndEnd(this.startContainer,this.startOffset,f,g),d=-i.text(c).length):(i.setStartAndEnd(f,g,this.startContainer,this.startOffset),d=i.text(c).length),e=d+this.text(c).length,{start:d,end:e}}),findText:L(function(b,c,d){d=h(d,ja),d.wholeWordsOnly&&(d.wordOptions.includeTrailingSpace=!1);var e=aa(d.direction),f=d.withinRange;f||(f=a.createRange(),f.selectNodeContents(this.getDocument()));var g=c,i=!1;"string"==typeof g?d.caseSensitive||(g=g.toLowerCase()):i=!0;var j=b.getRangeBoundaryPosition(this,!e),k=f.comparePoint(j.node,j.offset);-1===k?j=b.getRangeBoundaryPosition(f,!0):1===k&&(j=b.getRangeBoundaryPosition(f,!1));for(var l,m=j,n=!1;;)if(l=K(m,g,i,f,d)){if(l.valid)return this.setStartAndEnd(l.startPos.node,l.startPos.offset,l.endPos.node,l.endPos.offset),!0;m=e?l.startPos:l.endPos}else{if(!d.wrap||n)return!1;
-f=f.cloneRange(),m=b.getRangeBoundaryPosition(f,!e),f.setBoundary(j.node,j.offset,e),n=!0}}),pasteHtml:function(a){if(this.deleteContents(),a){var b=this.createContextualFragment(a),c=b.lastChild;this.insertNode(b),this.collapseAfter(c)}}}),U(a.selectionPrototype,{expand:L(function(a,b,c){this.changeEachRange(function(a){a.expand(b,c)})}),move:L(function(a,b,c,d){var e=0;if(this.focusNode){this.collapse(this.focusNode,this.focusOffset);var f=this.getRangeAt(0);d||(d={}),d.characterOptions=V(d.characterOptions,ha),e=f.move(b,c,d),this.setSingleRange(f)}return e}),trimStart:O("trimStart"),trimEnd:O("trimEnd"),trim:O("trim"),selectCharacters:L(function(b,c,d,e,f,g){var h=a.createRange(c);h.selectCharacters(c,d,e,g),this.setSingleRange(h,f)}),saveCharacterRanges:L(function(a,b,c){for(var d=this.getAllRanges(),e=d.length,f=[],g=1==e&&this.isBackward(),h=0,i=d.length;i>h;++h)f[h]={characterRange:d[h].toCharacterRange(b,c),backward:g,characterOptions:c};return f}),restoreCharacterRanges:L(function(b,c,d){this.removeAllRanges();for(var e,f,g,h=0,i=d.length;i>h;++h)f=d[h],g=f.characterRange,e=a.createRange(c),e.selectCharacters(c,g.start,g.end,f.characterOptions),this.addRange(e,f.backward)}),text:L(function(a,b){for(var c=[],d=0,e=this.rangeCount;e>d;++d)c[d]=this.getRangeAt(d).text(b);return c.join("")})}),a.innerText=function(b,c){var d=a.createRange(b);d.selectNodeContents(b);var e=d.text(c);return e},a.createWordIterator=function(a,b,c){var d=C();c=h(c,ma);var e=d.getPosition(a,b),f=F(e,c.characterOptions,c.wordOptions),g=aa(c.direction);return{next:function(){return g?f.previousStartToken():f.nextEndToken()},dispose:function(){f.dispose(),this.next=function(){}}}},a.noMutation=function(a){var b=C();a(b),D()},a.noMutation.createEntryPointFunction=L,a.textRange={isBlockNode:l,isCollapsedWhitespaceNode:t,createPosition:L(function(a,b,c){return a.getPosition(b,c)})}}),a},this),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="textAngular"),function(){"use strict";var a={ie:function(){for(var a,b=3,c=document.createElement("div"),d=c.getElementsByTagName("i");c.innerHTML="<!--[if gt IE "+ ++b+"]><i></i><![endif]-->",d[0];);return b>4?b:a}(),webkit:/AppleWebKit\/([\d.]+)/i.test(navigator.userAgent)},b=!1;a.webkit&&(document.addEventListener("mousedown",function(a){var c=a||window.event,d=c.target;if(b&&null!==d){for(var e=!1,f=d;null!==f&&"html"!==f.tagName.toLowerCase()&&!e;)e="true"===f.contentEditable,f=f.parentNode;e||(document.getElementById("textAngular-editableFix-010203040506070809").setSelectionRange(0,0),d.focus(),d.select&&d.select())}b=!1},!1),angular.element(document).ready(function(){angular.element(document.body).append(angular.element('<input id="textAngular-editableFix-010203040506070809" class="ta-hidden-input" aria-hidden="true" unselectable="on" tabIndex="-1">'))}));var c=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video)$/i,d=/^(ul|li|ol)$/i,e=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video|li)$/i;String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")});var f,g,h,i,j,k;if(a.ie>8||void 0===a.ie){for(var l=document.styleSheets,m=0;m<l.length;m++)if((0===l[m].media.length||l[m].media.mediaText.match(/(all|screen)/gi))&&l[m].href&&l[m].href.match(/textangular\.(min\.|)css/gi)){f=l[m];break}f||(f=function(){var b=document.createElement("style");return a.webkit&&b.appendChild(document.createTextNode("")),document.getElementsByTagName("head")[0].appendChild(b),b.sheet}()),g=function(a,b){return i(f,a,b)},i=function(a,b,c){var d,e;return a.cssRules?d=Math.max(a.cssRules.length-1,0):a.rules&&(d=Math.max(a.rules.length-1,0)),a.insertRule?a.insertRule(b+"{"+c+"}",d):a.addRule(b,c,d),f.rules?e=f.rules[d]:f.cssRules&&(e=f.cssRules[d]),e},k=function(a,b){var c,d;for(c=0;c<b.length;c++)if(b[c].cssText===a.cssText){d=c;break}return d},h=function(a){j(f,a)},j=function(a,b){var c=a.cssRules||a.rules;if(c&&0!==c.length){var d=k(b,c);a.removeRule?a.removeRule(d):a.deleteRule(d)}}}angular.module("textAngular.factories",[]).factory("taBrowserTag",[function(){return function(b){return b?""===b?void 0===a.ie?"div":a.ie<=8?"P":"p":a.ie<=8?b.toUpperCase():b:a.ie<=8?"P":"p"}}]).factory("taApplyCustomRenderers",["taCustomRenderers","taDOM",function(a,b){return function(c){var d=angular.element("<div></div>");return d[0].innerHTML=c,angular.forEach(a,function(a){var c=[];a.selector&&""!==a.selector?c=d.find(a.selector):a.customAttribute&&""!==a.customAttribute&&(c=b.getByAttribute(d,a.customAttribute)),angular.forEach(c,function(b){b=angular.element(b),a.selector&&""!==a.selector&&a.customAttribute&&""!==a.customAttribute?void 0!==b.attr(a.customAttribute)&&a.renderLogic(b):a.renderLogic(b)})}),d[0].innerHTML}}]).factory("taFixChrome",function(){var a=function(a){if(!a||!angular.isString(a)||a.length<=0)return a;for(var b,c,d,e=/<([^>\/]+?)style=("([^"]+)"|'([^']+)')([^>]*)>/gi,f="",g=0;b=e.exec(a);)c=b[3]||b[4],c&&c.match(/line-height: 1.[0-9]{3,12};|color: inherit; line-height: 1.1;/i)&&(c=c.replace(/( |)font-family: inherit;|( |)line-height: 1.[0-9]{3,12};|( |)color: inherit;/gi,""),d="<"+b[1].trim(),c.trim().length>0&&(d+=" style="+b[2].substring(0,1)+c+b[2].substring(0,1)),d+=b[5].trim()+">",f+=a.substring(g,b.index)+d,g=b.index+b[0].length);return f+=a.substring(g),g>0?f.replace(/<span\s?>(.*?)<\/span>(<br(\/|)>|)/gi,"$1"):a};return a}).factory("taSanitize",["$sanitize",function(a){function b(a,b){for(var c,d=0,e=0,f=/<[^>]*>/gi;c=f.exec(a);)if(e=c.index,"/"===c[0].substr(1,1)){if(0===d)break;d--}else d++;return b+a.substring(0,e)+angular.element(b)[0].outerHTML.substring(b.length)+a.substring(e)}function c(a){if(!a||!angular.isString(a)||a.length<=0)return a;for(var d,f,g,h,i,k,l=/<([^>\/]+?)style=("([^"]+)"|'([^']+)')([^>]*)>/gi,m="",n="",o=0;f=l.exec(a);){h=f[3]||f[4];var p=new RegExp(j,"i");if(angular.isString(h)&&p.test(h)){i="";for(var q=new RegExp(j,"ig");g=q.exec(h);)for(d=0;d<e.length;d++)g[2*d+2]&&(i+="<"+e[d].tag+">");k=c(a.substring(o,f.index)),n+=m.length>0?b(k,m):k,h=h.replace(new RegExp(j,"ig"),""),n+="<"+f[1].trim(),h.length>0&&(n+=' style="'+h+'"'),n+=f[5]+">",o=f.index+f[0].length,m=i}}return n+=m.length>0?b(a.substring(o),m):a.substring(o)}function d(a){if(!a||!angular.isString(a)||a.length<=0)return a;for(var b,c=/<([^>\/]+?)align=("([^"]+)"|'([^']+)')([^>]*)>/gi,d="",e=0;b=c.exec(a);){d+=a.substring(e,b.index),e=b.index+b[0].length;var f="<"+b[1]+b[5];/style=("([^"]+)"|'([^']+)')/gi.test(f)?f=f.replace(/style=("([^"]+)"|'([^']+)')/i,'style="$2$3 text-align:'+(b[3]||b[4])+';"'):f+=' style="text-align:'+(b[3]||b[4])+';"',f+=">",d+=f}return d+a.substring(e)}for(var e=[{property:"font-weight",values:["bold"],tag:"b"},{property:"font-style",values:["italic"],tag:"i"}],f=[],g=0;g<e.length;g++){for(var h="("+e[g].property+":\\s*(",i=0;i<e[g].values.length;i++)i>0&&(h+="|"),h+=e[g].values[i];h+=");)",f.push(h)}var j="("+f.join("|")+")";return function(b,e,f){if(!f)try{b=c(b)}catch(g){}b=d(b);var h;try{h=a(b),f&&(h=b)}catch(g){h=e||""}var i,j=h.match(/(<pre[^>]*>.*?<\/pre[^>]*>)/gi),k=h.replace(/(&#(9|10);)*/gi,""),l=/<pre[^>]*>.*?<\/pre[^>]*>/gi,m=0,n=0;for(h="";null!==(i=l.exec(k))&&m<j.length;)h+=k.substring(n,i.index)+j[m],n=i.index+i[0].length,m++;return h+k.substring(n)}}]).factory("taToolExecuteAction",["$q","$log",function(a,b){return function(c){void 0!==c&&(this.$editor=function(){return c});var d,e=a.defer(),f=e.promise,g=this.$editor();try{d=this.action(e,g.startAction()),f["finally"](function(){g.endAction.call(g)})}catch(h){b.error(h)}(d||void 0===d)&&e.resolve()}}]),angular.module("textAngular.DOM",["textAngular.factories"]).factory("taExecCommand",["taSelection","taBrowserTag","$document",function(a,b,e){var f=function(b,c){var d,e,f=b.find("li");for(e=f.length-1;e>=0;e--)d=angular.element("<"+c+">"+f[e].innerHTML+"</"+c+">"),b.after(d);b.remove(),a.setSelectionToElementEnd(d[0])},g=function(b){/(<br(|\/)>)$/i.test(b.innerHTML.trim())?a.setSelectionBeforeElement(angular.element(b).find("br")[0]):a.setSelectionToElementEnd(b)},h=function(a,b){var c=angular.element("<"+b+">"+a[0].innerHTML+"</"+b+">");a.after(c),a.remove(),g(c.find("li")[0])},i=function(a,c,d){for(var e="",f=0;f<a.length;f++)e+="<"+b("li")+">"+a[f].innerHTML+"</"+b("li")+">";var h=angular.element("<"+d+">"+e+"</"+d+">");c.after(h),c.remove(),g(h.find("li")[0])};return function(g,j){return g=b(g),function(k,l,m,n){var o,p,q,r,s,t,u,v=angular.element("<"+g+">");try{u=a.getSelectionElement()}catch(w){}var x=angular.element(u);if(void 0!==u){var y=u.tagName.toLowerCase();if("insertorderedlist"===k.toLowerCase()||"insertunorderedlist"===k.toLowerCase()){var z=b("insertorderedlist"===k.toLowerCase()?"ol":"ul");if(y===z)return f(x,g);if("li"===y&&x.parent()[0].tagName.toLowerCase()===z&&1===x.parent().children().length)return f(x.parent(),g);if("li"===y&&x.parent()[0].tagName.toLowerCase()!==z&&1===x.parent().children().length)return h(x.parent(),z);if(y.match(c)&&!x.hasClass("ta-bind")){if("ol"===y||"ul"===y)return h(x,z);var A=!1;return angular.forEach(x.children(),function(a){a.tagName.match(c)&&(A=!0)}),A?i(x.children(),x,z):i([angular.element("<div>"+u.innerHTML+"</div>")[0]],x,z)}if(y.match(c)){if(r=a.getOnlySelectedElements(),0===r.length)p=angular.element("<"+z+"><li>"+u.innerHTML+"</li></"+z+">"),x.html(""),x.append(p);else{if(1===r.length&&("ol"===r[0].tagName.toLowerCase()||"ul"===r[0].tagName.toLowerCase()))return r[0].tagName.toLowerCase()===z?f(angular.element(r[0]),g):h(angular.element(r[0]),z);q="";var B=[];for(o=0;o<r.length;o++)if(3!==r[o].nodeType){var C=angular.element(r[o]);if("li"===r[o].tagName.toLowerCase())continue;q+="ol"===r[o].tagName.toLowerCase()||"ul"===r[o].tagName.toLowerCase()?C[0].innerHTML:"span"!==r[o].tagName.toLowerCase()||"ol"!==r[o].childNodes[0].tagName.toLowerCase()&&"ul"!==r[o].childNodes[0].tagName.toLowerCase()?"<"+b("li")+">"+C[0].innerHTML+"</"+b("li")+">":C[0].childNodes[0].innerHTML,B.unshift(C)}p=angular.element("<"+z+">"+q+"</"+z+">"),B.pop().replaceWith(p),angular.forEach(B,function(a){a.remove()})}return void a.setSelectionToElementEnd(p[0])}}else{if("formatblock"===k.toLowerCase()){for(t=m.toLowerCase().replace(/[<>]/gi,""),"default"===t.trim()&&(t=g,m="<"+g+">"),p="li"===y?x.parent():x;!p[0].tagName||!p[0].tagName.match(c)&&!p.parent().attr("contenteditable");)p=p.parent(),y=(p[0].tagName||"").toLowerCase();if(y===t){r=p.children();var D=!1;for(o=0;o<r.length;o++)D=D||r[o].tagName.match(c);D?(p.after(r),s=p.next(),p.remove(),p=s):(v.append(p[0].childNodes),p.after(v),p.remove(),p=v)}else if(p.parent()[0].tagName.toLowerCase()!==t||p.parent().hasClass("ta-bind"))if(y.match(d))p.wrap(m);else{for(r=a.getOnlySelectedElements(),0===r.length&&(r=[p[0]]),o=0;o<r.length;o++)if(3===r[o].nodeType||!r[o].tagName.match(c))for(;3===r[o].nodeType||!r[o].tagName||!r[o].tagName.match(c);)r[o]=r[o].parentNode;if(angular.element(r[0]).hasClass("ta-bind"))p=angular.element(m),p[0].innerHTML=r[0].innerHTML,r[0].innerHTML=p[0].outerHTML;else if("blockquote"===t){for(q="",o=0;o<r.length;o++)q+=r[o].outerHTML;for(p=angular.element(m),p[0].innerHTML=q,r[0].parentNode.insertBefore(p[0],r[0]),o=r.length-1;o>=0;o--)r[o].parentNode&&r[o].parentNode.removeChild(r[o])}else for(o=0;o<r.length;o++)p=angular.element(m),p[0].innerHTML=r[o].innerHTML,r[o].parentNode.insertBefore(p[0],r[o]),r[o].parentNode.removeChild(r[o])}else{var E=p.parent(),F=E.contents();for(o=0;o<F.length;o++)E.parent().hasClass("ta-bind")&&3===F[o].nodeType&&(v=angular.element("<"+g+">"),v[0].innerHTML=F[o].outerHTML,F[o]=v[0]),E.parent()[0].insertBefore(F[o],E[0]);E.remove()}return void a.setSelectionToElementEnd(p[0])}if("createlink"===k.toLowerCase()){var G='<a href="'+m+'" target="'+(n.a.target?n.a.target:"")+'">',H="</a>",I=a.getSelection();if(I.collapsed)a.insertHtml(G+m+H,j);else if(rangy.getSelection().getRangeAt(0).canSurroundContents()){var J=angular.element(G+H)[0];rangy.getSelection().getRangeAt(0).surroundContents(J)}return}if("inserthtml"===k.toLowerCase())return void a.insertHtml(m,j)}}try{e[0].execCommand(k,l,m)}catch(w){}}}}]).service("taSelection",["$window","$document","taDOM",function(a,b,d){var f=b[0],g=a.rangy,h=function(a,b){return a.tagName&&a.tagName.match(/^br$/i)&&0===b&&!a.previousSibling?{element:a.parentNode,offset:0}:{element:a,offset:b}},i={getSelection:function(){var a=g.getSelection().getRangeAt(0),b=a.commonAncestorContainer,c={start:h(a.startContainer,a.startOffset),end:h(a.endContainer,a.endOffset),collapsed:a.collapsed};return b=3===b.nodeType?b.parentNode:b,b.parentNode===c.start.element||b.parentNode===c.end.element?c.container=b.parentNode:c.container=b,c},getOnlySelectedElements:function(){var a=g.getSelection().getRangeAt(0),b=a.commonAncestorContainer;return b=3===b.nodeType?b.parentNode:b,a.getNodes([1],function(a){return a.parentNode===b})},getSelectionElement:function(){return i.getSelection().container},setSelection:function(a,b,c){var d=g.createRange();d.setStart(a,b),d.setEnd(a,c),g.getSelection().setSingleRange(d)},setSelectionBeforeElement:function(a){var b=g.createRange();b.selectNode(a),b.collapse(!0),g.getSelection().setSingleRange(b)},setSelectionAfterElement:function(a){var b=g.createRange();b.selectNode(a),b.collapse(!1),g.getSelection().setSingleRange(b)},setSelectionToElementStart:function(a){var b=g.createRange();b.selectNodeContents(a),b.collapse(!0),g.getSelection().setSingleRange(b)},setSelectionToElementEnd:function(a){var b=g.createRange();b.selectNodeContents(a),b.collapse(!1),a.childNodes&&a.childNodes[a.childNodes.length-1]&&"br"===a.childNodes[a.childNodes.length-1].nodeName&&(b.startOffset=b.endOffset=b.startOffset-1),g.getSelection().setSingleRange(b)},insertHtml:function(a,b){var h,j,k,l,m,n,o,p=angular.element("<div>"+a+"</div>"),q=g.getSelection().getRangeAt(0),r=f.createDocumentFragment(),s=p[0].childNodes,t=!0;if(s.length>0){for(l=[],k=0;k<s.length;k++)"p"===s[k].nodeName.toLowerCase()&&""===s[k].innerHTML.trim()||3===s[k].nodeType&&""===s[k].nodeValue.trim()||(t=t&&!c.test(s[k].nodeName),l.push(s[k]));for(var u=0;u<l.length;u++)n=r.appendChild(l[u]);!t&&q.collapsed&&/^(|<br(|\/)>)$/i.test(q.startContainer.innerHTML)&&q.selectNode(q.startContainer)}else t=!0,n=r=f.createTextNode(a);if(t)q.deleteContents();else if(q.collapsed&&q.startContainer!==b)if(q.startContainer.innerHTML&&q.startContainer.innerHTML.match(/^<[^>]*>$/i))h=q.startContainer,1===q.startOffset?(q.setStartAfter(h),q.setEndAfter(h)):(q.setStartBefore(h),q.setEndBefore(h));else{if(3===q.startContainer.nodeType&&q.startContainer.parentNode!==b)for(h=q.startContainer.parentNode,j=h.cloneNode(),d.splitNodes(h.childNodes,h,j,q.startContainer,q.startOffset);!e.test(h.nodeName);){angular.element(h).after(j),h=h.parentNode;var v=j;j=h.cloneNode(),d.splitNodes(h.childNodes,h,j,v)}else h=q.startContainer,j=h.cloneNode(),d.splitNodes(h.childNodes,h,j,void 0,void 0,q.startOffset);if(angular.element(h).after(j),q.setStartAfter(h),q.setEndAfter(h),/^(|<br(|\/)>)$/i.test(h.innerHTML.trim())&&(q.setStartBefore(h),q.setEndBefore(h),angular.element(h).remove()),/^(|<br(|\/)>)$/i.test(j.innerHTML.trim())&&angular.element(j).remove(),"li"===h.nodeName.toLowerCase()){for(o=f.createDocumentFragment(),m=0;m<r.childNodes.length;m++)p=angular.element("<li>"),d.transferChildNodes(r.childNodes[m],p[0]),d.transferNodeAttributes(r.childNodes[m],p[0]),o.appendChild(p[0]);r=o,n&&(n=r.childNodes[r.childNodes.length-1],n=n.childNodes[n.childNodes.length-1])}}else q.deleteContents();q.insertNode(r),n&&i.setSelectionToElementEnd(n)}};return i}]).service("taDOM",function(){var a={getByAttribute:function(b,c){var d=[],e=b.children();return e.length&&angular.forEach(e,function(b){d=d.concat(a.getByAttribute(angular.element(b),c))}),void 0!==b.attr(c)&&d.push(b),d},transferChildNodes:function(a,b){for(b.innerHTML="";a.childNodes.length>0;)b.appendChild(a.childNodes[0]);return b},splitNodes:function(b,c,d,e,f,g){if(!e&&isNaN(g))throw new Error("taDOM.splitNodes requires a splitNode or splitIndex");for(var h=document.createDocumentFragment(),i=document.createDocumentFragment(),j=0;b.length>0&&(isNaN(g)||g!==j)&&b[0]!==e;)h.appendChild(b[0]),j++;for(!isNaN(f)&&f>=0&&b[0]&&(h.appendChild(document.createTextNode(b[0].nodeValue.substring(0,f))),b[0].nodeValue=b[0].nodeValue.substring(f));b.length>0;)i.appendChild(b[0]);a.transferChildNodes(h,c),a.transferChildNodes(i,d)},transferNodeAttributes:function(a,b){for(var c=0;c<a.attributes.length;c++)b.setAttribute(a.attributes[c].name,a.attributes[c].value);return b}};return a}),angular.module("textAngular.validators",[]).directive("taMaxText",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){var e=parseInt(a.$eval(c.taMaxText));if(isNaN(e))throw"Max text must be an integer";c.$observe("taMaxText",function(a){if(e=parseInt(a),isNaN(e))throw"Max text must be an integer";d.$dirty&&d.$validate()}),d.$validators.taMaxText=function(a){var b=angular.element("<div/>");return b.html(a),b.text().length<=e}}}}).directive("taMinText",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){var e=parseInt(a.$eval(c.taMinText));if(isNaN(e))throw"Min text must be an integer";c.$observe("taMinText",function(a){if(e=parseInt(a),isNaN(e))throw"Min text must be an integer";d.$dirty&&d.$validate()}),d.$validators.taMinText=function(a){var b=angular.element("<div/>");return b.html(a),!b.text().length||b.text().length>=e}}}}),angular.module("textAngular.taBind",["textAngular.factories","textAngular.DOM"]).service("_taBlankTest",[function(){var a=/<(a|abbr|acronym|bdi|bdo|big|cite|code|del|dfn|img|ins|kbd|label|map|mark|q|ruby|rp|rt|s|samp|time|tt|var)[^>]*(>|$)/i;return function(b){return function(c){if(!c)return!0;var d,e=/(^[^<]|>)[^<]/i.exec(c);return e?d=e.index:(c=c.toString().replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,""),d=c.indexOf(">")),c=c.trim().substring(d,d+100),/^[^<>]+$/i.test(c)?!1:0===c.length||c===b||/^>(\s|&nbsp;)*<\/[^>]+>$/gi.test(c)?!0:/>\s*[^\s<]/i.test(c)||a.test(c)?!1:!0}}}]).directive("taButton",[function(){return{link:function(a,b,c){b.attr("unselectable","on"),b.on("mousedown",function(a,b){return b&&angular.extend(a,b),a.preventDefault(),!1})}}}]).directive("taBind",["taSanitize","$timeout","$window","$document","taFixChrome","taBrowserTag","taSelection","taSelectableElements","taApplyCustomRenderers","taOptions","_taBlankTest","$parse","taDOM","textAngularManager",function(d,f,i,j,k,l,m,o,p,q,r,s,t,u){return{priority:2,require:["ngModel","?ngModelOptions"],link:function(l,v,w,x){function y(a){var b;return R.forEach(function(c){if(c.keyCode===a.keyCode){var d=(a.metaKey?O:0)+(a.ctrlKey?N:0)+(a.shiftKey?Q:0)+(a.altKey?P:0);if(c.forbiddenModifiers&d)return;c.mustHaveModifiers.every(function(a){return d&a})&&(b=c.specialKey)}}),b}var z,A,B,C,D=x[0],E=x[1]||{},F=void 0!==v.attr("contenteditable")&&v.attr("contenteditable"),G=F||"textarea"===v[0].tagName.toLowerCase()||"input"===v[0].tagName.toLowerCase(),H=!1,I=!1,J=!1,K=w.taUnsafeSanitizer||q.disableSanitizer,L=/^(9|19|20|27|33|34|35|36|37|38|39|40|45|112|113|114|115|116|117|118|119|120|121|122|123|144|145)$/i,M=/^(8|13|32|46|59|61|107|109|173|186|187|188|189|190|191|192|219|220|221|222)$/i,N=1,O=2,P=4,Q=8,R=[{specialKey:"UndoKey",forbiddenModifiers:P+Q,mustHaveModifiers:[O+N],keyCode:90},{specialKey:"RedoKey",forbiddenModifiers:P,mustHaveModifiers:[O+N,Q],keyCode:90},{specialKey:"RedoKey",forbiddenModifiers:P+Q,mustHaveModifiers:[O+N],keyCode:89},{specialKey:"TabKey",forbiddenModifiers:O+Q+P+N,mustHaveModifiers:[],keyCode:9},{specialKey:"ShiftTabKey",forbiddenModifiers:O+P+N,mustHaveModifiers:[Q],keyCode:9}];void 0===w.taDefaultWrap&&(w.taDefaultWrap="p"),""===w.taDefaultWrap?(B="",C=void 0===a.ie?"<div><br></div>":a.ie>=11?"<p><br></p>":a.ie<=8?"<P>&nbsp;</P>":"<p>&nbsp;</p>"):(B=void 0===a.ie||a.ie>=11?"<"+w.taDefaultWrap+"><br></"+w.taDefaultWrap+">":a.ie<=8?"<"+w.taDefaultWrap.toUpperCase()+"></"+w.taDefaultWrap.toUpperCase()+">":"<"+w.taDefaultWrap+"></"+w.taDefaultWrap+">",C=void 0===a.ie||a.ie>=11?"<"+w.taDefaultWrap+"><br></"+w.taDefaultWrap+">":a.ie<=8?"<"+w.taDefaultWrap.toUpperCase()+">&nbsp;</"+w.taDefaultWrap.toUpperCase()+">":"<"+w.taDefaultWrap+">&nbsp;</"+w.taDefaultWrap+">"),E.$options||(E.$options={});var S=r(C),T=function(a){if(S(a))return a;var b=angular.element("<div>"+a+"</div>");if(0===b.children().length)a="<"+w.taDefaultWrap+">"+a+"</"+w.taDefaultWrap+">";else{var d,e=b[0].childNodes,f=!1;for(d=0;d<e.length&&!(f=e[d].nodeName.toLowerCase().match(c));d++);if(f)for(a="",d=0;d<e.length;d++){var g=e[d],h=g.nodeName.toLowerCase();if("#comment"===h)a+="<!--"+g.nodeValue+"-->";else if("#text"===h){var i=g.textContent;a+=i.trim()?"<"+w.taDefaultWrap+">"+i+"</"+w.taDefaultWrap+">":i}else if(h.match(c))a+=g.outerHTML;else{var j=g.outerHTML||g.nodeValue;a+=""!==j.trim()?"<"+w.taDefaultWrap+">"+j+"</"+w.taDefaultWrap+">":j}}else a="<"+w.taDefaultWrap+">"+a+"</"+w.taDefaultWrap+">"}return a};w.taPaste&&(A=s(w.taPaste)),v.addClass("ta-bind");var U;l["$undoManager"+(w.id||"")]=D.$undoManager={_stack:[],_index:0,_max:1e3,push:function(a){return"undefined"==typeof a||null===a||"undefined"!=typeof this.current()&&null!==this.current()&&a===this.current()?a:(this._index<this._stack.length-1&&(this._stack=this._stack.slice(0,this._index+1)),this._stack.push(a),U&&f.cancel(U),this._stack.length>this._max&&this._stack.shift(),this._index=this._stack.length-1,a)},undo:function(){return this.setToIndex(this._index-1)},redo:function(){return this.setToIndex(this._index+1)},setToIndex:function(a){return 0>a||a>this._stack.length-1?void 0:(this._index=a,this.current())},current:function(){return this._stack[this._index]}};var V,W=l["$undoTaBind"+(w.id||"")]=function(){if(!H&&F){var a=D.$undoManager.undo();"undefined"!=typeof a&&null!==a&&(ka(a),Z(a,!1),V&&f.cancel(V),V=f(function(){v[0].focus(),m.setSelectionToElementEnd(v[0])},1))}},X=l["$redoTaBind"+(w.id||"")]=function(){if(!H&&F){var a=D.$undoManager.redo();"undefined"!=typeof a&&null!==a&&(ka(a),Z(a,!1),V&&f.cancel(V),V=f(function(){v[0].focus(),m.setSelectionToElementEnd(v[0])},1))}},Y=function(){if(F)return v[0].innerHTML;if(G)return v.val();throw"textAngular Error: attempting to update non-editable taBind"},Z=function(a,b,c){J=c||!1,("undefined"==typeof b||null===b)&&(b=F),("undefined"==typeof a||null===a)&&(a=Y()),S(a)?(""!==D.$viewValue&&D.$setViewValue(""),b&&""!==D.$undoManager.current()&&D.$undoManager.push("")):(ja(),D.$viewValue!==a&&(D.$setViewValue(a),b&&D.$undoManager.push(a))),D.$render()};l["updateTaBind"+(w.id||"")]=function(){H||Z(void 0,void 0,!0)};var $=function(a){return D.$oldViewValue=d(k(a),D.$oldViewValue,K)};if(v.attr("required")&&(D.$validators.required=function(a,b){return!S(a||b)}),D.$parsers.push($),D.$parsers.unshift(T),D.$formatters.push($),D.$formatters.unshift(T),D.$formatters.unshift(function(a){return D.$undoManager.push(a||"")}),G)if(l.events={},F){var _=!1,aa=function(a){if(a&&a.trim().length){if(a.match(/class=["']*Mso(Normal|List)/i)){var b=a.match(/<!--StartFragment-->([\s\S]*?)<!--EndFragment-->/i);b=b?b[1]:a,b=b.replace(/<o:p>[\s\S]*?<\/o:p>/gi,"").replace(/class=(["']|)MsoNormal(["']|)/gi,"");var c=angular.element("<div>"+b+"</div>"),e=angular.element("<div></div>"),g={element:null,lastIndent:[],lastLi:null,isUl:!1};g.lastIndent.peek=function(){var a=this.length;return a>0?this[a-1]:void 0};for(var h=function(a){g.isUl=a,g.element=angular.element(a?"<ul>":"<ol>"),g.lastIndent=[],g.lastIndent.peek=function(){var a=this.length;return a>0?this[a-1]:void 0},g.lastLevelMatch=null},i=0;i<=c[0].childNodes.length;i++)if(c[0].childNodes[i]&&"#text"!==c[0].childNodes[i].nodeName&&"p"===c[0].childNodes[i].tagName.toLowerCase()){var j=angular.element(c[0].childNodes[i]),k=(j.attr("class")||"").match(/MsoList(Bullet|Number|Paragraph)(CxSp(First|Middle|Last)|)/i);if(k){if(j[0].childNodes.length<2||j[0].childNodes[1].childNodes.length<1)continue;var n="bullet"===k[1].toLowerCase()||"number"!==k[1].toLowerCase()&&!(/^[^0-9a-z<]*[0-9a-z]+[^0-9a-z<>]</i.test(j[0].childNodes[1].innerHTML)||/^[^0-9a-z<]*[0-9a-z]+[^0-9a-z<>]</i.test(j[0].childNodes[1].childNodes[0].innerHTML)),o=(j.attr("style")||"").match(/margin-left:([\-\.0-9]*)/i),p=parseFloat(o?o[1]:0),q=(j.attr("style")||"").match(/mso-list:l([0-9]+) level([0-9]+) lfo[0-9+]($|;)/i);if(q&&q[2]&&(p=parseInt(q[2])),q&&(!g.lastLevelMatch||q[1]!==g.lastLevelMatch[1])||!k[3]||"first"===k[3].toLowerCase()||null===g.lastIndent.peek()||g.isUl!==n&&g.lastIndent.peek()===p)h(n),e.append(g.element);else if(null!=g.lastIndent.peek()&&g.lastIndent.peek()<p)g.element=angular.element(n?"<ul>":"<ol>"),g.lastLi.append(g.element);else if(null!=g.lastIndent.peek()&&g.lastIndent.peek()>p){for(;null!=g.lastIndent.peek()&&g.lastIndent.peek()>p;)if("li"!==g.element.parent()[0].tagName.toLowerCase()){if(!/[uo]l/i.test(g.element.parent()[0].tagName.toLowerCase()))break;g.element=g.element.parent(),g.lastIndent.pop()}else g.element=g.element.parent();g.isUl="ul"===g.element[0].tagName.toLowerCase(),n!==g.isUl&&(h(n),e.append(g.element))}g.lastLevelMatch=q,p!==g.lastIndent.peek()&&g.lastIndent.push(p),g.lastLi=angular.element("<li>"),g.element.append(g.lastLi),g.lastLi.html(j.html().replace(/<!(--|)\[if !supportLists\](--|)>[\s\S]*?<!(--|)\[endif\](--|)>/gi,"")),j.remove()}else h(!1),e.append(j)}var r=function(a){a=angular.element(a);for(var b=a[0].childNodes.length-1;b>=0;b--)a.after(a[0].childNodes[b]);a.remove()};angular.forEach(e.find("span"),function(a){a.removeAttribute("lang"),a.attributes.length<=0&&r(a)}),angular.forEach(e.find("font"),r),a=e.html()}else{if(a=a.replace(/<(|\/)meta[^>]*?>/gi,""),a.match(/<[^>]*?(ta-bind)[^>]*?>/)){if(a.match(/<[^>]*?(text-angular)[^>]*?>/)){var s=angular.element("<div>"+a+"</div>");s.find("textarea").remove();for(var u=t.getByAttribute(s,"ta-bind"),w=0;w<u.length;w++){for(var x=u[w][0].parentNode.parentNode,y=0;y<u[w][0].childNodes.length;y++)x.parentNode.insertBefore(u[w][0].childNodes[y],x);x.parentNode.removeChild(x)}a=s.html().replace('<br class="Apple-interchange-newline">',"")}}else a.match(/^<span/)&&(a.match(/<span class=(\"Apple-converted-space\"|\'Apple-converted-space\')>.<\/span>/gi)||(a=a.replace(/<(|\/)span[^>]*?>/gi,"")));a=a.replace(/<br class="Apple-interchange-newline"[^>]*?>/gi,"").replace(/<span class="Apple-converted-space">( |&nbsp;)<\/span>/gi,"&nbsp;")}/<li(\s.*)?>/i.test(a)&&/(<ul(\s.*)?>|<ol(\s.*)?>).*<li(\s.*)?>/i.test(a)===!1&&(a=a.replace(/<li(\s.*)?>.*<\/li(\s.*)?>/i,"<ul>$&</ul>")),a=a.replace(/^[ |\u00A0]+/gm,function(a){for(var b="",c=0;c<a.length;c++)b+="&nbsp;";return b}).replace(/\n|\r\n|\r/g,"<br />").replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;"),A&&(a=A(l,{$html:a})||a),a=d(a,"",K),m.insertHtml(a,v[0]),f(function(){D.$setViewValue(Y()),_=!1,v.removeClass("processing-paste")},0)}else _=!1,v.removeClass("processing-paste")};v.on("paste",l.events.paste=function(a,b){if(b&&angular.extend(a,b),H||_)return a.stopPropagation(),a.preventDefault(),!1;_=!0,v.addClass("processing-paste");var c,d=(a.originalEvent||a).clipboardData;if(d&&d.getData&&d.types.length>0){for(var e="",g=0;g<d.types.length;g++)e+=" "+d.types[g];return/text\/html/i.test(e)?c=d.getData("text/html"):/text\/plain/i.test(e)&&(c=d.getData("text/plain")),aa(c),a.stopPropagation(),a.preventDefault(),!1}var h=i.rangy.saveSelection(),k=angular.element('<div class="ta-hidden-input" contenteditable="true"></div>');j.find("body").append(k),k[0].focus(),f(function(){i.rangy.restoreSelection(h),aa(k[0].innerHTML),v[0].focus(),k.remove()},0)}),v.on("cut",l.events.cut=function(a){H?a.preventDefault():f(function(){D.$setViewValue(Y())},0)}),v.on("keydown",l.events.keydown=function(a,b){b&&angular.extend(a,b),a.specialKey=y(a);var c;if(q.keyMappings.forEach(function(b){a.specialKey===b.commandKeyCode&&(a.specialKey=void 0),b.testForKey(a)&&(c=b.commandKeyCode),("UndoKey"===b.commandKeyCode||"RedoKey"===b.commandKeyCode)&&(b.enablePropagation||a.preventDefault())}),"undefined"!=typeof c&&(a.specialKey=c),"undefined"==typeof a.specialKey||"UndoKey"===a.specialKey&&"RedoKey"===a.specialKey||(a.preventDefault(),u.sendKeyCommand(l,a)),!H&&("UndoKey"===a.specialKey&&(W(),a.preventDefault()),"RedoKey"===a.specialKey&&(X(),a.preventDefault()),13===a.keyCode&&!a.shiftKey)){var d,f=m.getSelectionElement();if(!f.tagName.match(e))return;var g=angular.element(B);if(/^<br(|\/)>$/i.test(f.innerHTML.trim())&&"blockquote"===f.parentNode.tagName.toLowerCase()&&!f.nextSibling){d=angular.element(f);var h=d.parent();h.after(g),d.remove(),0===h.children().length&&h.remove(),m.setSelectionToElementStart(g[0]),a.preventDefault()}else/^<[^>]+><br(|\/)><\/[^>]+>$/i.test(f.innerHTML.trim())&&"blockquote"===f.tagName.toLowerCase()&&(d=angular.element(f),d.after(g),d.remove(),m.setSelectionToElementStart(g[0]),a.preventDefault())}});var ba;if(v.on("keyup",l.events.keyup=function(a,b){if(b&&angular.extend(a,b),9===a.keyCode){var c=m.getSelection();return void(c.start.element===v[0]&&v.children().length&&m.setSelectionToElementStart(v.children()[0]))}if(U&&f.cancel(U),!H&&!L.test(a.keyCode)){if(""!==B&&13===a.keyCode&&!a.shiftKey){for(var d=m.getSelectionElement();!d.tagName.match(e)&&d!==v[0];)d=d.parentNode;if(d.tagName.toLowerCase()!==w.taDefaultWrap&&"li"!==d.tagName.toLowerCase()&&(""===d.innerHTML.trim()||"<br>"===d.innerHTML.trim())){var g=angular.element(B);angular.element(d).replaceWith(g),m.setSelectionToElementStart(g[0])}}var h=Y();""!==B&&""===h.trim()?(ka(B),m.setSelectionToElementStart(v.children()[0])):"<"!==h.substring(0,1)&&""!==w.taDefaultWrap;var i=z!==a.keyCode&&M.test(a.keyCode);ba&&f.cancel(ba),ba=f(function(){Z(h,i,!0)},E.$options.debounce||400),i||(U=f(function(){D.$undoManager.push(h)},250)),z=a.keyCode}}),v.on("blur",l.events.blur=function(){I=!1,H?(J=!0,D.$render()):Z(void 0,void 0,!0)}),w.placeholder&&(a.ie>8||void 0===a.ie)){var ca;if(!w.id)throw"textAngular Error: An unique ID is required for placeholders to work";ca=g("#"+w.id+".placeholder-text:before",'content: "'+w.placeholder+'"'),l.$on("$destroy",function(){h(ca)})}v.on("focus",l.events.focus=function(){I=!0,v.removeClass("placeholder-text"),ja()}),v.on("mouseup",l.events.mouseup=function(){var a=m.getSelection();a.start.element===v[0]&&v.children().length&&m.setSelectionToElementStart(v.children()[0])}),v.on("mousedown",l.events.mousedown=function(a,b){b&&angular.extend(a,b),a.stopPropagation()})}else{v.on("change blur",l.events.change=l.events.blur=function(){H||D.$setViewValue(Y())}),v.on("keydown",l.events.keydown=function(a,b){if(b&&angular.extend(a,b),9===a.keyCode){var c=this.selectionStart,d=this.selectionEnd,e=v.val();if(a.shiftKey){var f=e.lastIndexOf("\n",c),g=e.lastIndexOf("   ",c);-1!==g&&g>=f&&(v.val(e.substring(0,g)+e.substring(g+1)),this.selectionStart=this.selectionEnd=c-1)}else v.val(e.substring(0,c)+"   "+e.substring(d)),this.selectionStart=this.selectionEnd=c+1;a.preventDefault()}});var da=function(a,b){for(var c="",d=0;b>d;d++)c+=a;return c},ea=function(a,b,c){for(var d=0;d<a.length;d++)b.call(c,d,a[d])},fa=function(a,b){var c="",d=a.childNodes;return b++,c+=da("      ",b-1)+a.outerHTML.substring(0,4),ea(d,function(a,d){var e=d.nodeName.toLowerCase();return"#comment"===e?void(c+="<!--"+d.nodeValue+"-->"):"#text"===e?void(c+=d.textContent):void(d.outerHTML&&(c+="ul"===e||"ol"===e?"\n"+fa(d,b):"\n"+da("   ",b)+d.outerHTML))}),c+="\n"+da("       ",b-1)+a.outerHTML.substring(a.outerHTML.lastIndexOf("<"))};D.$formatters.unshift(function(a){var b=angular.element("<div>"+a+"</div>")[0].childNodes;return b.length>0&&(a="",ea(b,function(b,c){var d=c.nodeName.toLowerCase();return"#comment"===d?void(a+="<!--"+c.nodeValue+"-->"):"#text"===d?void(a+=c.textContent):void(c.outerHTML&&(a.length>0&&(a+="\n"),
-a+="ul"===d||"ol"===d?""+fa(c,0):""+c.outerHTML))})),a})}var ga,ha=function(a){return l.$emit("ta-element-select",this),a.preventDefault(),!1},ia=function(a,b){if(b&&angular.extend(a,b),!n&&!H){n=!0;var c;c=a.originalEvent?a.originalEvent.dataTransfer:a.dataTransfer,l.$emit("ta-drop-event",this,a,c),f(function(){n=!1,Z(void 0,void 0,!0)},100)}},ja=l["reApplyOnSelectorHandlers"+(w.id||"")]=function(){H||angular.forEach(o,function(a){v.find(a).off("click",ha).on("click",ha)})},ka=function(a){v[0].innerHTML=a},la=!1;D.$render=function(){if(!la){la=!0;var a=D.$viewValue||"";J||(F&&I&&(v.removeClass("placeholder-text"),ga&&f.cancel(ga),ga=f(function(){I||(v[0].focus(),m.setSelectionToElementEnd(v.children()[v.children().length-1])),ga=void 0},1)),F?(ka(w.placeholder?""===a?B:a:""===a?B:a),H?v.off("drop",ia):(ja(),v.on("drop",ia))):"textarea"!==v[0].tagName.toLowerCase()&&"input"!==v[0].tagName.toLowerCase()?ka(p(a)):v.val(a)),F&&w.placeholder&&(""===a?I?v.removeClass("placeholder-text"):v.addClass("placeholder-text"):v.removeClass("placeholder-text")),la=J=!1}},w.taReadonly&&(H=l.$eval(w.taReadonly),H?(v.addClass("ta-readonly"),("textarea"===v[0].tagName.toLowerCase()||"input"===v[0].tagName.toLowerCase())&&v.attr("disabled","disabled"),void 0!==v.attr("contenteditable")&&v.attr("contenteditable")&&v.removeAttr("contenteditable")):(v.removeClass("ta-readonly"),"textarea"===v[0].tagName.toLowerCase()||"input"===v[0].tagName.toLowerCase()?v.removeAttr("disabled"):F&&v.attr("contenteditable","true")),l.$watch(w.taReadonly,function(a,b){b!==a&&(a?(v.addClass("ta-readonly"),("textarea"===v[0].tagName.toLowerCase()||"input"===v[0].tagName.toLowerCase())&&v.attr("disabled","disabled"),void 0!==v.attr("contenteditable")&&v.attr("contenteditable")&&v.removeAttr("contenteditable"),angular.forEach(o,function(a){v.find(a).on("click",ha)}),v.off("drop",ia)):(v.removeClass("ta-readonly"),"textarea"===v[0].tagName.toLowerCase()||"input"===v[0].tagName.toLowerCase()?v.removeAttr("disabled"):F&&v.attr("contenteditable","true"),angular.forEach(o,function(a){v.find(a).off("click",ha)}),v.on("drop",ia)),H=a)})),F&&!H&&(angular.forEach(o,function(a){v.find(a).on("click",ha)}),v.on("drop",ia),v.on("blur",function(){a.webkit&&(b=!0)}))}}}]);var n=!1,o=angular.module("textAngular",["ngSanitize","textAngularSetup","textAngular.factories","textAngular.DOM","textAngular.validators","textAngular.taBind"]);o.config([function(){angular.forEach(taTools,function(a,b){delete taTools[b]})}]),o.run([function(){if("function"==typeof define&&define.amd)define(function(a){window.rangy=a("rangy"),window.rangy.saveSelection=a("rangy/lib/rangy-selectionsaverestore")});else if("function"==typeof require&&"undefined"!=typeof module&&"object"==typeof exports)window.rangy=require("rangy"),window.rangy.saveSelection=require("rangy/lib/rangy-selectionsaverestore");else{if(!window.rangy)throw"rangy-core.js and rangy-selectionsaverestore.js are required for textAngular to work correctly, rangy-core is not yet loaded.";if(window.rangy.init(),!window.rangy.saveSelection)throw"rangy-selectionsaverestore.js is required for textAngular to work correctly."}}]),o.directive("textAngular",["$compile","$timeout","taOptions","taSelection","taExecCommand","textAngularManager","$window","$document","$animate","$log","$q","$parse",function(a,b,c,d,e,f,g,h,i,j,k,l){return{require:"?ngModel",scope:{},restrict:"EA",priority:2,link:function(m,n,o,p){var q,r,s,t,u,v,w,x,y,z,A,B=o.serial?o.serial:Math.floor(1e16*Math.random());m._name=o.name?o.name:"textAngularEditor"+B;var C=function(a,c,d){b(function(){var b=function(){a.off(c,b),d.apply(this,arguments)};a.on(c,b)},100)};if(y=e(o.taDefaultWrap),angular.extend(m,angular.copy(c),{wrapSelection:function(a,b,c){"undo"===a.toLowerCase()?m["$undoTaBindtaTextElement"+B]():"redo"===a.toLowerCase()?m["$redoTaBindtaTextElement"+B]():(y(a,!1,b,m.defaultTagAttributes),c&&m["reApplyOnSelectorHandlerstaTextElement"+B](),m.displayElements.text[0].focus())},showHtml:m.$eval(o.taShowHtml)||!1}),o.taFocussedClass&&(m.classes.focussed=o.taFocussedClass),o.taTextEditorClass&&(m.classes.textEditor=o.taTextEditorClass),o.taHtmlEditorClass&&(m.classes.htmlEditor=o.taHtmlEditorClass),o.taDefaultTagAttributes)try{angular.extend(m.defaultTagAttributes,angular.fromJson(o.taDefaultTagAttributes))}catch(D){j.error(D)}o.taTextEditorSetup&&(m.setup.textEditorSetup=m.$parent.$eval(o.taTextEditorSetup)),o.taHtmlEditorSetup&&(m.setup.htmlEditorSetup=m.$parent.$eval(o.taHtmlEditorSetup)),o.taFileDrop?m.fileDropHandler=m.$parent.$eval(o.taFileDrop):m.fileDropHandler=m.defaultFileDropHandler,w=n[0].innerHTML,n[0].innerHTML="",m.displayElements={forminput:angular.element("<input type='hidden' tabindex='-1' style='display: none;'>"),html:angular.element("<textarea></textarea>"),text:angular.element("<div></div>"),scrollWindow:angular.element("<div class='ta-scroll-window'></div>"),popover:angular.element('<div class="popover fade bottom" style="max-width: none; width: 305px;"></div>'),popoverArrow:angular.element('<div class="arrow"></div>'),popoverContainer:angular.element('<div class="popover-content"></div>'),resize:{overlay:angular.element('<div class="ta-resizer-handle-overlay"></div>'),background:angular.element('<div class="ta-resizer-handle-background"></div>'),anchors:[angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-tl"></div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-tr"></div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-bl"></div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-br"></div>')],info:angular.element('<div class="ta-resizer-handle-info"></div>')}},m.displayElements.popover.append(m.displayElements.popoverArrow),m.displayElements.popover.append(m.displayElements.popoverContainer),m.displayElements.scrollWindow.append(m.displayElements.popover),m.displayElements.popover.on("mousedown",function(a,b){return b&&angular.extend(a,b),a.preventDefault(),!1}),m.showPopover=function(a){m.displayElements.popover.css("display","block"),m.reflowPopover(a),i.addClass(m.displayElements.popover,"in"),C(h.find("body"),"click keyup",function(){m.hidePopover()})},m.reflowPopover=function(a){m.displayElements.text[0].offsetHeight-51>a[0].offsetTop?(m.displayElements.popover.css("top",a[0].offsetTop+a[0].offsetHeight+m.displayElements.scrollWindow[0].scrollTop+"px"),m.displayElements.popover.removeClass("top").addClass("bottom")):(m.displayElements.popover.css("top",a[0].offsetTop-54+m.displayElements.scrollWindow[0].scrollTop+"px"),m.displayElements.popover.removeClass("bottom").addClass("top"));var b=m.displayElements.text[0].offsetWidth-m.displayElements.popover[0].offsetWidth,c=a[0].offsetLeft+a[0].offsetWidth/2-m.displayElements.popover[0].offsetWidth/2;m.displayElements.popover.css("left",Math.max(0,Math.min(b,c))+"px"),m.displayElements.popoverArrow.css("margin-left",Math.min(c,Math.max(0,c-b))-11+"px")},m.hidePopover=function(){m.displayElements.popover.css("display",""),m.displayElements.popoverContainer.attr("style",""),m.displayElements.popoverContainer.attr("class","popover-content"),m.displayElements.popover.removeClass("in")},m.displayElements.resize.overlay.append(m.displayElements.resize.background),angular.forEach(m.displayElements.resize.anchors,function(a){m.displayElements.resize.overlay.append(a)}),m.displayElements.resize.overlay.append(m.displayElements.resize.info),m.displayElements.scrollWindow.append(m.displayElements.resize.overlay),m.reflowResizeOverlay=function(a){a=angular.element(a)[0],m.displayElements.resize.overlay.css({display:"block",left:a.offsetLeft-5+"px",top:a.offsetTop-5+"px",width:a.offsetWidth+10+"px",height:a.offsetHeight+10+"px"}),m.displayElements.resize.info.text(a.offsetWidth+" x "+a.offsetHeight)},m.showResizeOverlay=function(a){var b=h.find("body");z=function(c){var d={width:parseInt(a.attr("width")),height:parseInt(a.attr("height")),x:c.clientX,y:c.clientY};(void 0===d.width||isNaN(d.width))&&(d.width=a[0].offsetWidth),(void 0===d.height||isNaN(d.height))&&(d.height=a[0].offsetHeight),m.hidePopover();var e=d.height/d.width,f=function(b){function c(a){return Math.round(Math.max(0,a))}var f={x:Math.max(0,d.width+(b.clientX-d.x)),y:Math.max(0,d.height+(b.clientY-d.y))},g=void 0!==o.taResizeForceAspectRatio,h=o.taResizeMaintainAspectRatio,i=g||h&&!b.shiftKey;if(i){var j=f.y/f.x;f.x=e>j?f.x:f.y/e,f.y=e>j?f.x*e:f.y}var k=angular.element(a);k.css("height",c(f.y)+"px"),k.css("width",c(f.x)+"px"),m.reflowResizeOverlay(a)};b.on("mousemove",f),C(b,"mouseup",function(c){c.preventDefault(),c.stopPropagation(),b.off("mousemove",f),m.showPopover(a)}),c.stopPropagation(),c.preventDefault()},m.displayElements.resize.anchors[3].off("mousedown"),m.displayElements.resize.anchors[3].on("mousedown",z),m.reflowResizeOverlay(a),C(b,"click",function(){m.hideResizeOverlay()})},m.hideResizeOverlay=function(){m.displayElements.resize.anchors[3].off("mousedown",z),m.displayElements.resize.overlay.css("display","")},m.setup.htmlEditorSetup(m.displayElements.html),m.setup.textEditorSetup(m.displayElements.text),m.displayElements.html.attr({id:"taHtmlElement"+B,"ng-show":"showHtml","ta-bind":"ta-bind","ng-model":"html","ng-model-options":n.attr("ng-model-options")}),m.displayElements.text.attr({id:"taTextElement"+B,contentEditable:"true","ta-bind":"ta-bind","ng-model":"html","ng-model-options":n.attr("ng-model-options")}),m.displayElements.scrollWindow.attr({"ng-hide":"showHtml"}),o.taDefaultWrap&&m.displayElements.text.attr("ta-default-wrap",o.taDefaultWrap),o.taUnsafeSanitizer&&(m.displayElements.text.attr("ta-unsafe-sanitizer",o.taUnsafeSanitizer),m.displayElements.html.attr("ta-unsafe-sanitizer",o.taUnsafeSanitizer)),m.displayElements.scrollWindow.append(m.displayElements.text),n.append(m.displayElements.scrollWindow),n.append(m.displayElements.html),m.displayElements.forminput.attr("name",m._name),n.append(m.displayElements.forminput),o.tabindex&&(n.removeAttr("tabindex"),m.displayElements.text.attr("tabindex",o.tabindex),m.displayElements.html.attr("tabindex",o.tabindex)),o.placeholder&&(m.displayElements.text.attr("placeholder",o.placeholder),m.displayElements.html.attr("placeholder",o.placeholder)),o.taDisabled&&(m.displayElements.text.attr("ta-readonly","disabled"),m.displayElements.html.attr("ta-readonly","disabled"),m.disabled=m.$parent.$eval(o.taDisabled),m.$parent.$watch(o.taDisabled,function(a){m.disabled=a,m.disabled?n.addClass(m.classes.disabled):n.removeClass(m.classes.disabled)})),o.taPaste&&(m._pasteHandler=function(a){return l(o.taPaste)(m.$parent,{$html:a})},m.displayElements.text.attr("ta-paste","_pasteHandler($html)")),a(m.displayElements.scrollWindow)(m),a(m.displayElements.html)(m),m.updateTaBindtaTextElement=m["updateTaBindtaTextElement"+B],m.updateTaBindtaHtmlElement=m["updateTaBindtaHtmlElement"+B],n.addClass("ta-root"),m.displayElements.scrollWindow.addClass("ta-text ta-editor "+m.classes.textEditor),m.displayElements.html.addClass("ta-html ta-editor "+m.classes.htmlEditor),m._actionRunning=!1;var E=!1;if(m.startAction=function(){return m._actionRunning=!0,E=g.rangy.saveSelection(),function(){E&&g.rangy.restoreSelection(E)}},m.endAction=function(){m._actionRunning=!1,E&&(m.showHtml?m.displayElements.html[0].focus():m.displayElements.text[0].focus(),g.rangy.removeMarkers(E)),E=!1,m.updateSelectedStyles(),m.showHtml||m["updateTaBindtaTextElement"+B]()},u=function(){m.focussed=!0,n.addClass(m.classes.focussed),x.focus(),n.triggerHandler("focus")},m.displayElements.html.on("focus",u),m.displayElements.text.on("focus",u),v=function(a){return m._actionRunning||h[0].activeElement===m.displayElements.html[0]||h[0].activeElement===m.displayElements.text[0]||(n.removeClass(m.classes.focussed),x.unfocus(),b(function(){m._bUpdateSelectedStyles=!1,n.triggerHandler("blur"),m.focussed=!1},0)),a.preventDefault(),!1},m.displayElements.html.on("blur",v),m.displayElements.text.on("blur",v),m.displayElements.text.on("paste",function(a){n.triggerHandler("paste",a)}),m.queryFormatBlockState=function(a){return!m.showHtml&&a.toLowerCase()===h[0].queryCommandValue("formatBlock").toLowerCase()},m.queryCommandState=function(a){return m.showHtml?"":h[0].queryCommandState(a)},m.switchView=function(){m.showHtml=!m.showHtml,i.enabled(!1,m.displayElements.html),i.enabled(!1,m.displayElements.text),m.showHtml?b(function(){return i.enabled(!0,m.displayElements.html),i.enabled(!0,m.displayElements.text),m.displayElements.html[0].focus()},100):b(function(){return i.enabled(!0,m.displayElements.html),i.enabled(!0,m.displayElements.text),m.displayElements.text[0].focus()},100)},o.ngModel){var F=!0;p.$render=function(){if(F){F=!1;var a=m.$parent.$eval(o.ngModel);void 0!==a&&null!==a||!w||""===w||p.$setViewValue(w)}m.displayElements.forminput.val(p.$viewValue),m.html=p.$viewValue||""},n.attr("required")&&(p.$validators.required=function(a,b){var c=a||b;return!(!c||""===c.trim())})}else m.displayElements.forminput.val(w),m.html=w;if(m.$watch("html",function(a,b){a!==b&&(o.ngModel&&p.$viewValue!==a&&p.$setViewValue(a),m.displayElements.forminput.val(a))}),o.taTargetToolbars)x=f.registerEditor(m._name,m,o.taTargetToolbars.split(","));else{var G=angular.element('<div text-angular-toolbar name="textAngularToolbar'+B+'">');o.taToolbar&&G.attr("ta-toolbar",o.taToolbar),o.taToolbarClass&&G.attr("ta-toolbar-class",o.taToolbarClass),o.taToolbarGroupClass&&G.attr("ta-toolbar-group-class",o.taToolbarGroupClass),o.taToolbarButtonClass&&G.attr("ta-toolbar-button-class",o.taToolbarButtonClass),o.taToolbarActiveButtonClass&&G.attr("ta-toolbar-active-button-class",o.taToolbarActiveButtonClass),o.taFocussedClass&&G.attr("ta-focussed-class",o.taFocussedClass),n.prepend(G),a(G)(m.$parent),x=f.registerEditor(m._name,m,["textAngularToolbar"+B])}m.$on("$destroy",function(){f.unregisterEditor(m._name),angular.element(window).off("blur")}),m.$on("ta-element-select",function(a,b){x.triggerElementSelect(a,b)&&m["reApplyOnSelectorHandlerstaTextElement"+B]()}),m.$on("ta-drop-event",function(a,c,d,e){m.displayElements.text[0].focus(),e&&e.files&&e.files.length>0?(angular.forEach(e.files,function(a){try{k.when(m.fileDropHandler(a,m.wrapSelection)||m.fileDropHandler!==m.defaultFileDropHandler&&k.when(m.defaultFileDropHandler(a,m.wrapSelection))).then(function(){m["updateTaBindtaTextElement"+B]()})}catch(b){j.error(b)}}),d.preventDefault(),d.stopPropagation()):b(function(){m["updateTaBindtaTextElement"+B]()},0)}),m._bUpdateSelectedStyles=!1,angular.element(window).on("blur",function(){m._bUpdateSelectedStyles=!1,m.focussed=!1}),m.updateSelectedStyles=function(){var a;A&&b.cancel(A),void 0!==(a=d.getSelectionElement())&&a.parentNode!==m.displayElements.text[0]?x.updateSelectedStyles(angular.element(a)):x.updateSelectedStyles(),m._bUpdateSelectedStyles&&(A=b(m.updateSelectedStyles,200))},q=function(){return m.focussed?void(m._bUpdateSelectedStyles||(m._bUpdateSelectedStyles=!0,m.$apply(function(){m.updateSelectedStyles()}))):void(m._bUpdateSelectedStyles=!1)},m.displayElements.html.on("keydown",q),m.displayElements.text.on("keydown",q),r=function(){m._bUpdateSelectedStyles=!1},m.displayElements.html.on("keyup",r),m.displayElements.text.on("keyup",r),s=function(a,b){b&&angular.extend(a,b),m.$apply(function(){return x.sendKeyCommand(a)?(m._bUpdateSelectedStyles||m.updateSelectedStyles(),a.preventDefault(),!1):void 0})},m.displayElements.html.on("keypress",s),m.displayElements.text.on("keypress",s),t=function(){m._bUpdateSelectedStyles=!1,m.$apply(function(){m.updateSelectedStyles()})},m.displayElements.html.on("mouseup",t),m.displayElements.text.on("mouseup",t)}}}]),o.service("textAngularManager",["taToolExecuteAction","taTools","taRegisterTool",function(a,b,c){var d={},e={};return{registerEditor:function(c,f,g){if(!c||""===c)throw"textAngular Error: An editor requires a name";if(!f)throw"textAngular Error: An editor requires a scope";if(e[c])throw'textAngular Error: An Editor with name "'+c+'" already exists';var h=[];return angular.forEach(g,function(a){d[a]&&h.push(d[a])}),e[c]={scope:f,toolbars:g,_registerToolbar:function(a){this.toolbars.indexOf(a.name)>=0&&h.push(a)},editorFunctions:{disable:function(){angular.forEach(h,function(a){a.disabled=!0})},enable:function(){angular.forEach(h,function(a){a.disabled=!1})},focus:function(){angular.forEach(h,function(a){a._parent=f,a.disabled=!1,a.focussed=!0,f.focussed=!0})},unfocus:function(){angular.forEach(h,function(a){a.disabled=!0,a.focussed=!1}),f.focussed=!1},updateSelectedStyles:function(a){angular.forEach(h,function(b){angular.forEach(b.tools,function(c){c.activeState&&(b._parent=f,c.active=c.activeState(a))})})},sendKeyCommand:function(c){var d=!1;return(c.ctrlKey||c.metaKey||c.specialKey)&&angular.forEach(b,function(b,e){if(b.commandKeyCode&&(b.commandKeyCode===c.which||b.commandKeyCode===c.specialKey))for(var g=0;g<h.length;g++)if(void 0!==h[g].tools[e]){a.call(h[g].tools[e],f),d=!0;break}}),d},triggerElementSelect:function(a,c){var d=function(a,b){for(var c=!0,d=0;d<b.length;d++)c=c&&a.attr(b[d]);return c},e=[],g={},i=!1;c=angular.element(c);var j=!1;if(angular.forEach(b,function(a,b){a.onElementSelect&&a.onElementSelect.element&&a.onElementSelect.element.toLowerCase()===c[0].tagName.toLowerCase()&&(!a.onElementSelect.filter||a.onElementSelect.filter(c))&&(j=j||angular.isArray(a.onElementSelect.onlyWithAttrs)&&d(c,a.onElementSelect.onlyWithAttrs),(!a.onElementSelect.onlyWithAttrs||d(c,a.onElementSelect.onlyWithAttrs))&&(g[b]=a))}),j?(angular.forEach(g,function(a,b){a.onElementSelect.onlyWithAttrs&&d(c,a.onElementSelect.onlyWithAttrs)&&e.push({name:b,tool:a})}),e.sort(function(a,b){return b.tool.onElementSelect.onlyWithAttrs.length-a.tool.onElementSelect.onlyWithAttrs.length})):angular.forEach(g,function(a,b){e.push({name:b,tool:a})}),e.length>0)for(var k=0;k<e.length;k++){for(var l=e[k].tool,m=e[k].name,n=0;n<h.length;n++)if(void 0!==h[n].tools[m]){l.onElementSelect.action.call(h[n].tools[m],a,c,f),i=!0;break}if(i)break}return i}}},e[c].editorFunctions},retrieveEditor:function(a){return e[a]},unregisterEditor:function(a){delete e[a]},registerToolbar:function(a){if(!a)throw"textAngular Error: A toolbar requires a scope";if(!a.name||""===a.name)throw"textAngular Error: A toolbar requires a name";if(d[a.name])throw'textAngular Error: A toolbar with name "'+a.name+'" already exists';d[a.name]=a,angular.forEach(e,function(b){b._registerToolbar(a)})},retrieveToolbar:function(a){return d[a]},retrieveToolbarsViaEditor:function(a){var b=[],c=this;return angular.forEach(this.retrieveEditor(a).toolbars,function(a){b.push(c.retrieveToolbar(a))}),b},unregisterToolbar:function(a){delete d[a]},updateToolsDisplay:function(a){var b=this;angular.forEach(a,function(a,c){b.updateToolDisplay(c,a)})},resetToolsDisplay:function(){var a=this;angular.forEach(b,function(b,c){a.resetToolDisplay(c)})},updateToolDisplay:function(a,b){var c=this;angular.forEach(d,function(d,e){c.updateToolbarToolDisplay(e,a,b)})},resetToolDisplay:function(a){var b=this;angular.forEach(d,function(c,d){b.resetToolbarToolDisplay(d,a)})},updateToolbarToolDisplay:function(a,b,c){if(!d[a])throw'textAngular Error: No Toolbar with name "'+a+'" exists';d[a].updateToolDisplay(b,c)},resetToolbarToolDisplay:function(a,c){if(!d[a])throw'textAngular Error: No Toolbar with name "'+a+'" exists';d[a].updateToolDisplay(c,b[c],!0)},removeTool:function(a){delete b[a],angular.forEach(d,function(b){delete b.tools[a];for(var c=0;c<b.toolbar.length;c++){for(var d,e=0;e<b.toolbar[c].length;e++){if(b.toolbar[c][e]===a){d={group:c,index:e};break}if(void 0!==d)break}void 0!==d&&(b.toolbar[d.group].slice(d.index,1),b._$element.children().eq(d.group).children().eq(d.index).remove())}})},addTool:function(a,b,e,f){c(a,b),angular.forEach(d,function(c){c.addTool(a,b,e,f)})},addToolToToolbar:function(a,b,e,f,g){c(a,b),d[e].addTool(a,b,f,g)},refreshEditor:function(a){if(!e[a])throw'textAngular Error: No Editor with name "'+a+'" exists';e[a].scope.updateTaBindtaTextElement(),e[a].scope.$$phase||e[a].scope.$digest()},sendKeyCommand:function(a,b){angular.forEach(e,function(c){return c.editorFunctions.sendKeyCommand(b)?(a._bUpdateSelectedStyles||a.updateSelectedStyles(),b.preventDefault(),!1):void 0})}}}]),o.directive("textAngularToolbar",["$compile","textAngularManager","taOptions","taTools","taToolExecuteAction","$window",function(a,b,c,d,e,f){return{scope:{name:"@"},restrict:"EA",link:function(g,h,i){if(!g.name||""===g.name)throw"textAngular Error: A toolbar requires a name";angular.extend(g,angular.copy(c)),i.taToolbar&&(g.toolbar=g.$parent.$eval(i.taToolbar)),i.taToolbarClass&&(g.classes.toolbar=i.taToolbarClass),i.taToolbarGroupClass&&(g.classes.toolbarGroup=i.taToolbarGroupClass),i.taToolbarButtonClass&&(g.classes.toolbarButton=i.taToolbarButtonClass),i.taToolbarActiveButtonClass&&(g.classes.toolbarButtonActive=i.taToolbarActiveButtonClass),i.taFocussedClass&&(g.classes.focussed=i.taFocussedClass),g.disabled=!0,g.focussed=!1,g._$element=h,h[0].innerHTML="",h.addClass("ta-toolbar "+g.classes.toolbar),g.$watch("focussed",function(){g.focussed?h.addClass(g.classes.focussed):h.removeClass(g.classes.focussed)});var j=function(b,c){var d;if(d=b&&b.display?angular.element(b.display):angular.element("<button type='button'>"),b&&b["class"]?d.addClass(b["class"]):d.addClass(g.classes.toolbarButton),d.attr("name",c.name),d.attr("ta-button","ta-button"),d.attr("ng-disabled","isDisabled()"),d.attr("tabindex","-1"),d.attr("ng-click","executeAction()"),d.attr("ng-class","displayActiveToolClass(active)"),b&&b.tooltiptext&&d.attr("title",b.tooltiptext),b&&!b.display&&!c._display&&(d[0].innerHTML="",b.buttontext&&(d[0].innerHTML=b.buttontext),b.iconclass)){var e=angular.element("<i>"),f=d[0].innerHTML;e.addClass(b.iconclass),d[0].innerHTML="",d.append(e),f&&""!==f&&d.append("&nbsp;"+f)}return c._lastToolDefinition=angular.copy(b),a(d)(c)};g.tools={},g._parent={disabled:!0,showHtml:!1,queryFormatBlockState:function(){return!1},queryCommandState:function(){return!1}};var k={$window:f,$editor:function(){return g._parent},isDisabled:function(){return"function"!=typeof this.$eval("disabled")&&this.$eval("disabled")||this.$eval("disabled()")||"html"!==this.name&&this.$editor().showHtml||this.$parent.disabled||this.$editor().disabled},displayActiveToolClass:function(a){return a?g.classes.toolbarButtonActive:""},executeAction:e};angular.forEach(g.toolbar,function(a){var b=angular.element("<div>");b.addClass(g.classes.toolbarGroup),angular.forEach(a,function(a){g.tools[a]=angular.extend(g.$new(!0),d[a],k,{name:a}),g.tools[a].$element=j(d[a],g.tools[a]),b.append(g.tools[a].$element)}),h.append(b)}),g.updateToolDisplay=function(a,b,c){var d=g.tools[a];if(d){if(d._lastToolDefinition&&!c&&(b=angular.extend({},d._lastToolDefinition,b)),null===b.buttontext&&null===b.iconclass&&null===b.display)throw'textAngular Error: Tool Definition for updating "'+a+'" does not have a valid display/iconclass/buttontext value';null===b.buttontext&&delete b.buttontext,null===b.iconclass&&delete b.iconclass,null===b.display&&delete b.display;var e=j(b,d);d.$element.replaceWith(e),d.$element=e}},g.addTool=function(a,b,c,e){g.tools[a]=angular.extend(g.$new(!0),d[a],k,{name:a}),g.tools[a].$element=j(d[a],g.tools[a]);var f;void 0===c&&(c=g.toolbar.length-1),f=angular.element(h.children()[c]),void 0===e?(f.append(g.tools[a].$element),g.toolbar[c][g.toolbar[c].length-1]=a):(f.children().eq(e).after(g.tools[a].$element),g.toolbar[c][e]=a)},b.registerToolbar(g),g.$on("$destroy",function(){b.unregisterToolbar(g.name)})}}}])}(),function(a,b,c){"use strict";function d(){this.$get=["$$sanitizeUri",function(a){return function(b){"undefined"!=typeof arguments[1]&&(arguments[1].version="taSanitize");var c=[];return g(b,l(c,function(b,c){return!/^unsafe/.test(a(b,c))})),c.join("")}}]}function e(a){var c=[],d=l(c,b.noop);return d.chars(a),c.join("")}function f(a){var b,c={},d=a.split(",");for(b=0;b<d.length;b++)c[d[b]]=!0;return c}function g(a,c){function d(a,d,f,g){if(d=b.lowercase(d),D[d])for(;k.last()&&E[k.last()];)e("",k.last());C[d]&&k.last()==d&&e("",d),g=z[d]||!!g,g||k.push(d);var i={};f.replace(p,function(a,b,c,d,e){var f=c||d||e||"";i[b]=h(f)}),c.start&&c.start(d,i,g)}function e(a,d){var e,f=0;if(d=b.lowercase(d))for(f=k.length-1;f>=0&&k[f]!=d;f--);if(f>=0){for(e=k.length-1;e>=f;e--)c.end&&c.end(k[e]);k.length=f}}"string"!=typeof a&&(a=null===a||"undefined"==typeof a?"":""+a);var f,g,i,j,k=[],l=a;for(k.last=function(){return k[k.length-1]};a;){if(j="",g=!0,k.last()&&G[k.last()])a=a.replace(new RegExp("([^]*)<\\s*\\/\\s*"+k.last()+"[^>]*>","i"),function(a,b){return b=b.replace(s,"$1").replace(v,"$1"),c.chars&&c.chars(h(b)),""}),e("",k.last());else{if(y.test(a)){if(i=a.match(y)){i[0];c.whitespace&&c.whitespace(i[0]),a=a.replace(i[0],""),g=!1}}else t.test(a)?(i=a.match(t),i&&(c.comment&&c.comment(i[1]),a=a.replace(i[0],""),g=!1)):u.test(a)?(i=a.match(u),i&&(a=a.replace(i[0],""),g=!1)):r.test(a)?(i=a.match(o),i&&(a=a.substring(i[0].length),i[0].replace(o,e),g=!1)):q.test(a)&&(i=a.match(n),i?(i[4]&&(a=a.substring(i[0].length),i[0].replace(n,d)),g=!1):(j+="<",a=a.substring(1)));g&&(f=a.indexOf("<"),j+=0>f?a:a.substring(0,f),a=0>f?"":a.substring(f),c.chars&&c.chars(h(j)))}if(a==l)throw m("badparse","The sanitizer was unable to parse the following block of html: {0}",a);l=a}e()}function h(a){if(!a)return"";var b=N.exec(a),c=b[1],d=b[3],e=b[2];return e&&(M.innerHTML=e.replace(/</g,"&lt;"),e="textContent"in M?M.textContent:M.innerText),c+e+d}function i(a){return a.replace(/&/g,"&amp;").replace(w,function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1);return"&#"+(1024*(b-55296)+(c-56320)+65536)+";"}).replace(x,function(a){var b=a.charCodeAt(0);return 159>=b||173==b||b>=1536&&1540>=b||1807==b||6068==b||6069==b||b>=8204&&8207>=b||b>=8232&&8239>=b||b>=8288&&8303>=b||65279==b||b>=65520&&65535>=b?"&#"+b+";":a}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function j(a){var c="",d=a.split(";");return b.forEach(d,function(a){var d=a.split(":");if(2==d.length){var e=O(b.lowercase(d[0])),a=O(b.lowercase(d[1]));(("color"===e||"background-color"===e)&&(a.match(/^rgb\([0-9%,\. ]*\)$/i)||a.match(/^rgba\([0-9%,\. ]*\)$/i)||a.match(/^hsl\([0-9%,\. ]*\)$/i)||a.match(/^hsla\([0-9%,\. ]*\)$/i)||a.match(/^#[0-9a-f]{3,6}$/i)||a.match(/^[a-z]*$/i))||"text-align"===e&&("left"===a||"right"===a||"center"===a||"justify"===a)||"float"===e&&("left"===a||"right"===a||"none"===a)||("width"===e||"height"===e)&&a.match(/[0-9\.]*(px|em|rem|%)/)||"direction"===e&&a.match(/^ltr|rtl|initial|inherit$/))&&(c+=e+": "+a+";")}}),c}function k(a,b,c,d){return"img"===a&&b["ta-insert-video"]&&("ta-insert-video"===c||"allowfullscreen"===c||"frameborder"===c||"contenteditable"===c&&"false"===d)?!0:!1}function l(a,c){var d=!1,e=b.bind(a,a.push);return{start:function(a,f,g){a=b.lowercase(a),!d&&G[a]&&(d=a),d||H[a]!==!0||(e("<"),e(a),b.forEach(f,function(d,g){var h=b.lowercase(g),l="img"===a&&"src"===h||"background"===h;("style"===h&&""!==(d=j(d))||k(a,f,h,d)||L[h]===!0&&(I[h]!==!0||c(d,l)))&&(e(" "),e(g),e('="'),e(i(d)),e('"'))}),e(g?"/>":">"))},comment:function(a){e(a)},whitespace:function(a){e(i(a))},end:function(a){a=b.lowercase(a),d||H[a]!==!0||(e("</"),e(a),e(">")),a==d&&(d=!1)},chars:function(a){d||e(i(a))}}}var m=b.$$minErr("$sanitize"),n=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,o=/^<\/\s*([\w:-]+)[^>]*>/,p=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,q=/^</,r=/^<\//,s=/<!--(.*?)-->/g,t=/(^<!--.*?-->)/,u=/<!DOCTYPE([^>]*?)>/i,v=/<!\[CDATA\[(.*?)]]>/g,w=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,x=/([^\#-~| |!])/g,y=/^(\s+)/,z=f("area,br,col,hr,img,wbr,input"),A=f("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),B=f("rp,rt"),C=b.extend({},B,A),D=b.extend({},A,f("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),E=b.extend({},B,f("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),F=f("animate,animateColor,animateMotion,animateTransform,circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,set,stop,svg,switch,text,title,tspan,use"),G=f("script,style"),H=b.extend({},z,D,E,C,F),I=f("background,cite,href,longdesc,src,usemap,xlink:href"),J=f("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,id,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,target,title,type,valign,value,vspace,width"),K=f("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,attributeName,attributeType,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan"),L=b.extend({},I,K,J),M=document.createElement("pre"),N=/^(\s*)([\s\S]*?)(\s*)$/,O=function(){return String.prototype.trim?function(a){return b.isString(a)?a.trim():a}:function(a){return b.isString(a)?a.replace(/^\s\s*/,"").replace(/\s\s*$/,""):a}}();b.module("ngSanitize",[]).provider("$sanitize",d),b.module("ngSanitize").filter("linky",["$sanitize",function(a){var c=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"”’]/,d=/^mailto:/;return function(f,g){function h(a){a&&n.push(e(a))}function i(a,c){n.push("<a "),b.isDefined(g)&&n.push('target="',g,'" '),n.push('href="',a.replace(/"/g,"&quot;"),'">'),h(c),n.push("</a>")}if(!f)return f;for(var j,k,l,m=f,n=[];j=m.match(c);)k=j[0],j[2]||j[4]||(k=(j[3]?"http://":"mailto:")+k),l=j.index,h(m.substr(0,l)),i(k,j[0].replace(d,"")),m=m.substring(l+j[0].length);return h(m),a(n.join(""))}}])}(window,window.angular);var taTools={};angular.module("textAngularSetup",[]).constant("taRegisterTool",registerTextAngularTool).value("taTools",taTools).value("taOptions",{forceTextAngularSanitize:!0,keyMappings:[],toolbar:[["h1","h2","h3","h4","h5","h6","p","pre","quote"],["bold","italics","underline","strikeThrough","ul","ol","redo","undo","clear"],["justifyLeft","justifyCenter","justifyRight","justifyFull","indent","outdent"],["html","insertImage","insertLink","insertVideo","wordcount","charcount"]],classes:{focussed:"focussed",toolbar:"btn-toolbar",toolbarGroup:"btn-group",toolbarButton:"btn btn-default",toolbarButtonActive:"active",disabled:"disabled",textEditor:"form-control",htmlEditor:"form-control"},defaultTagAttributes:{a:{target:""}},setup:{textEditorSetup:function(a){},htmlEditorSetup:function(a){}},defaultFileDropHandler:function(a,b){var c=new FileReader;return"image"===a.type.substring(0,5)?(c.onload=function(){
-""!==c.result&&b("insertImage",c.result,!0)},c.readAsDataURL(a),!0):!1}}).value("taSelectableElements",["a","img"]).value("taCustomRenderers",[{selector:"img",customAttribute:"ta-insert-video",renderLogic:function(a){var b=angular.element("<iframe></iframe>"),c=a.prop("attributes");angular.forEach(c,function(a){b.attr(a.name,a.value)}),b.attr("src",b.attr("ta-insert-video")),a.replaceWith(b)}}]).value("taTranslations",{html:{tooltip:"Toggle html / Rich Text"},heading:{tooltip:"Heading "},p:{tooltip:"Paragraph"},pre:{tooltip:"Preformatted text"},ul:{tooltip:"Unordered List"},ol:{tooltip:"Ordered List"},quote:{tooltip:"Quote/unquote selection or paragraph"},undo:{tooltip:"Undo"},redo:{tooltip:"Redo"},bold:{tooltip:"Bold"},italic:{tooltip:"Italic"},underline:{tooltip:"Underline"},strikeThrough:{tooltip:"Strikethrough"},justifyLeft:{tooltip:"Align text left"},justifyRight:{tooltip:"Align text right"},justifyFull:{tooltip:"Justify text"},justifyCenter:{tooltip:"Center"},indent:{tooltip:"Increase indent"},outdent:{tooltip:"Decrease indent"},clear:{tooltip:"Clear formatting"},insertImage:{dialogPrompt:"Please enter an image URL to insert",tooltip:"Insert image",hotkey:"the - possibly language dependent hotkey ... for some future implementation"},insertVideo:{tooltip:"Insert video",dialogPrompt:"Please enter a youtube URL to embed"},insertLink:{tooltip:"Insert / edit link",dialogPrompt:"Please enter a URL to insert"},editLink:{reLinkButton:{tooltip:"Relink"},unLinkButton:{tooltip:"Unlink"},targetToggle:{buttontext:"Open in New Window"}},wordcount:{tooltip:"Display words Count"},charcount:{tooltip:"Display characters Count"}}).factory("taToolFunctions",["$window","taTranslations",function(a,b){return{imgOnSelectAction:function(a,b,c){var d=function(){c.updateTaBindtaTextElement(),c.hidePopover()};a.preventDefault(),c.displayElements.popover.css("width","375px");var e=c.displayElements.popoverContainer;e.empty();var f=angular.element('<div class="btn-group" style="padding-right: 6px;">'),g=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">100% </button>');g.on("click",function(a){a.preventDefault(),b.css({width:"100%",height:""}),d()});var h=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">50% </button>');h.on("click",function(a){a.preventDefault(),b.css({width:"50%",height:""}),d()});var i=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">25% </button>');i.on("click",function(a){a.preventDefault(),b.css({width:"25%",height:""}),d()});var j=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">Reset</button>');j.on("click",function(a){a.preventDefault(),b.css({width:"",height:""}),d()}),f.append(g),f.append(h),f.append(i),f.append(j),e.append(f),f=angular.element('<div class="btn-group" style="padding-right: 6px;">');var k=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-left"></i></button>');k.on("click",function(a){a.preventDefault(),b.css("float","left"),b.css("cssFloat","left"),b.css("styleFloat","left"),d()});var l=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-right"></i></button>');l.on("click",function(a){a.preventDefault(),b.css("float","right"),b.css("cssFloat","right"),b.css("styleFloat","right"),d()});var m=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-justify"></i></button>');m.on("click",function(a){a.preventDefault(),b.css("float",""),b.css("cssFloat",""),b.css("styleFloat",""),d()}),f.append(k),f.append(m),f.append(l),e.append(f),f=angular.element('<div class="btn-group">');var n=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-trash-o"></i></button>');n.on("click",function(a){a.preventDefault(),b.remove(),d()}),f.append(n),e.append(f),c.showPopover(b),c.showResizeOverlay(b)},aOnSelectAction:function(c,d,e){c.preventDefault(),e.displayElements.popover.css("width","436px");var f=e.displayElements.popoverContainer;f.empty(),f.css("line-height","28px");var g=angular.element('<a href="'+d.attr("href")+'" target="_blank">'+d.attr("href")+"</a>");g.css({display:"inline-block","max-width":"200px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap","vertical-align":"middle"}),f.append(g);var h=angular.element('<div class="btn-group pull-right">'),i=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on" title="'+b.editLink.reLinkButton.tooltip+'"><i class="fa fa-edit icon-edit"></i></button>');i.on("click",function(c){c.preventDefault();var f=a.prompt(b.insertLink.dialogPrompt,d.attr("href"));f&&""!==f&&"http://"!==f&&(d.attr("href",f),e.updateTaBindtaTextElement()),e.hidePopover()}),h.append(i);var j=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on" title="'+b.editLink.unLinkButton.tooltip+'"><i class="fa fa-unlink icon-unlink"></i></button>');j.on("click",function(a){a.preventDefault(),d.replaceWith(d.contents()),e.updateTaBindtaTextElement(),e.hidePopover()}),h.append(j);var k=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on">'+b.editLink.targetToggle.buttontext+"</button>");"_blank"===d.attr("target")&&k.addClass("active"),k.on("click",function(a){a.preventDefault(),d.attr("target","_blank"===d.attr("target")?"":"_blank"),k.toggleClass("active"),e.updateTaBindtaTextElement()}),h.append(k),f.append(h),e.showPopover(d)},extractYoutubeVideoId:function(a){var b=/(?:youtube(?:-nocookie)?\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/i,c=a.match(b);return c&&c[1]||null}}}]).run(["taRegisterTool","$window","taTranslations","taSelection","taToolFunctions","$sanitize","taOptions",function(a,b,c,d,e,f,g){var h={};if(f("",h),g.forceTextAngularSanitize===!0&&"taSanitize"!==h.version)throw angular.$$minErr("textAngular")("textAngularSetup","The textAngular-sanitize provider has been replaced by another -- have you included angular-sanitize by mistake?");a("html",{iconclass:"fa fa-code",tooltiptext:c.html.tooltip,action:function(){this.$editor().switchView()},activeState:function(){return this.$editor().showHtml}});var i=function(a){return function(){return this.$editor().queryFormatBlockState(a)}},j=function(){return this.$editor().wrapSelection("formatBlock","<"+this.name.toUpperCase()+">")};angular.forEach(["h1","h2","h3","h4","h5","h6"],function(b){a(b.toLowerCase(),{buttontext:b.toUpperCase(),tooltiptext:c.heading.tooltip+b.charAt(1),action:j,activeState:i(b.toLowerCase())})}),a("p",{buttontext:"P",tooltiptext:c.p.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<P>")},activeState:function(){return this.$editor().queryFormatBlockState("p")}}),a("pre",{buttontext:"pre",tooltiptext:c.pre.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<PRE>")},activeState:function(){return this.$editor().queryFormatBlockState("pre")}}),a("ul",{iconclass:"fa fa-list-ul",tooltiptext:c.ul.tooltip,action:function(){return this.$editor().wrapSelection("insertUnorderedList",null)},activeState:function(){return this.$editor().queryCommandState("insertUnorderedList")}}),a("ol",{iconclass:"fa fa-list-ol",tooltiptext:c.ol.tooltip,action:function(){return this.$editor().wrapSelection("insertOrderedList",null)},activeState:function(){return this.$editor().queryCommandState("insertOrderedList")}}),a("quote",{iconclass:"fa fa-quote-right",tooltiptext:c.quote.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<BLOCKQUOTE>")},activeState:function(){return this.$editor().queryFormatBlockState("blockquote")}}),a("undo",{iconclass:"fa fa-undo",tooltiptext:c.undo.tooltip,action:function(){return this.$editor().wrapSelection("undo",null)}}),a("redo",{iconclass:"fa fa-repeat",tooltiptext:c.redo.tooltip,action:function(){return this.$editor().wrapSelection("redo",null)}}),a("bold",{iconclass:"fa fa-bold",tooltiptext:c.bold.tooltip,action:function(){return this.$editor().wrapSelection("bold",null)},activeState:function(){return this.$editor().queryCommandState("bold")},commandKeyCode:98}),a("justifyLeft",{iconclass:"fa fa-align-left",tooltiptext:c.justifyLeft.tooltip,action:function(){return this.$editor().wrapSelection("justifyLeft",null)},activeState:function(a){if(a&&"#document"===a.nodeName)return!1;var b=!1;return a&&(b="left"===a.css("text-align")||"left"===a.attr("align")||"right"!==a.css("text-align")&&"center"!==a.css("text-align")&&"justify"!==a.css("text-align")&&!this.$editor().queryCommandState("justifyRight")&&!this.$editor().queryCommandState("justifyCenter")&&!this.$editor().queryCommandState("justifyFull")),b=b||this.$editor().queryCommandState("justifyLeft")}}),a("justifyRight",{iconclass:"fa fa-align-right",tooltiptext:c.justifyRight.tooltip,action:function(){return this.$editor().wrapSelection("justifyRight",null)},activeState:function(a){if(a&&"#document"===a.nodeName)return!1;var b=!1;return a&&(b="right"===a.css("text-align")),b=b||this.$editor().queryCommandState("justifyRight")}}),a("justifyFull",{iconclass:"fa fa-align-justify",tooltiptext:c.justifyFull.tooltip,action:function(){return this.$editor().wrapSelection("justifyFull",null)},activeState:function(a){var b=!1;return a&&(b="justify"===a.css("text-align")),b=b||this.$editor().queryCommandState("justifyFull")}}),a("justifyCenter",{iconclass:"fa fa-align-center",tooltiptext:c.justifyCenter.tooltip,action:function(){return this.$editor().wrapSelection("justifyCenter",null)},activeState:function(a){if(a&&"#document"===a.nodeName)return!1;var b=!1;return a&&(b="center"===a.css("text-align")),b=b||this.$editor().queryCommandState("justifyCenter")}}),a("indent",{iconclass:"fa fa-indent",tooltiptext:c.indent.tooltip,action:function(){return this.$editor().wrapSelection("indent",null)},activeState:function(){return this.$editor().queryFormatBlockState("blockquote")},commandKeyCode:"TabKey"}),a("outdent",{iconclass:"fa fa-outdent",tooltiptext:c.outdent.tooltip,action:function(){return this.$editor().wrapSelection("outdent",null)},activeState:function(){return!1},commandKeyCode:"ShiftTabKey"}),a("italics",{iconclass:"fa fa-italic",tooltiptext:c.italic.tooltip,action:function(){return this.$editor().wrapSelection("italic",null)},activeState:function(){return this.$editor().queryCommandState("italic")},commandKeyCode:105}),a("underline",{iconclass:"fa fa-underline",tooltiptext:c.underline.tooltip,action:function(){return this.$editor().wrapSelection("underline",null)},activeState:function(){return this.$editor().queryCommandState("underline")},commandKeyCode:117}),a("strikeThrough",{iconclass:"fa fa-strikethrough",tooltiptext:c.strikeThrough.tooltip,action:function(){return this.$editor().wrapSelection("strikeThrough",null)},activeState:function(){return document.queryCommandState("strikeThrough")}}),a("clear",{iconclass:"fa fa-ban",tooltiptext:c.clear.tooltip,action:function(a,b){var c;this.$editor().wrapSelection("removeFormat",null);var e=angular.element(d.getSelectionElement()),f=function(a){a=angular.element(a);var b=a;angular.forEach(a.children(),function(a){var c=angular.element("<p></p>");c.html(angular.element(a).html()),b.after(c),b=c}),a.remove()};if(angular.forEach(e.find("ul"),f),angular.forEach(e.find("ol"),f),"li"===e[0].tagName.toLowerCase()){var g=e[0].parentNode.childNodes,h=[],i=[],j=!1;for(c=0;c<g.length;c++)g[c]===e[0]?j=!0:j?i.push(g[c]):h.push(g[c]);var k=angular.element(e[0].parentNode),l=angular.element("<p></p>");if(l.html(angular.element(e[0]).html()),0===h.length||0===i.length)0===i.length?k.after(l):k[0].parentNode.insertBefore(l[0],k[0]),0===h.length&&0===i.length?k.remove():angular.element(e[0]).remove();else{var m=angular.element("<"+k[0].tagName+"></"+k[0].tagName+">"),n=angular.element("<"+k[0].tagName+"></"+k[0].tagName+">");for(c=0;c<h.length;c++)m.append(angular.element(h[c]));for(c=0;c<i.length;c++)n.append(angular.element(i[c]));k.after(n),k.after(l),k.after(m),k.remove()}d.setSelectionToElementEnd(l[0])}var o=this.$editor(),p=function(a){a=angular.element(a),a[0]!==o.displayElements.text[0]&&a.removeAttr("class"),angular.forEach(a.children(),p)};angular.forEach(e,p),"li"!==e[0].tagName.toLowerCase()&&"ol"!==e[0].tagName.toLowerCase()&&"ul"!==e[0].tagName.toLowerCase()&&this.$editor().wrapSelection("formatBlock","default"),b()}}),a("insertImage",{iconclass:"fa fa-picture-o",tooltiptext:c.insertImage.tooltip,action:function(){var a;return a=b.prompt(c.insertImage.dialogPrompt,"http://"),a&&""!==a&&"http://"!==a?this.$editor().wrapSelection("insertImage",a,!0):void 0},onElementSelect:{element:"img",action:e.imgOnSelectAction}}),a("insertVideo",{iconclass:"fa fa-youtube-play",tooltiptext:c.insertVideo.tooltip,action:function(){var a;if(a=b.prompt(c.insertVideo.dialogPrompt,"https://"),a&&""!==a&&"https://"!==a&&(videoId=e.extractYoutubeVideoId(a),videoId)){var d="https://www.youtube.com/embed/"+videoId,f='<img class="ta-insert-video" src="https://img.youtube.com/vi/'+videoId+'/hqdefault.jpg" ta-insert-video="'+d+'" contenteditable="false" allowfullscreen="true" frameborder="0" />';return this.$editor().wrapSelection("insertHTML",f,!0)}},onElementSelect:{element:"img",onlyWithAttrs:["ta-insert-video"],action:e.imgOnSelectAction}}),a("insertLink",{tooltiptext:c.insertLink.tooltip,iconclass:"fa fa-link",action:function(){var a;return a=b.prompt(c.insertLink.dialogPrompt,"http://"),a&&""!==a&&"http://"!==a?this.$editor().wrapSelection("createLink",a,!0):void 0},activeState:function(a){return a?"A"===a[0].tagName:!1},onElementSelect:{element:"a",action:e.aOnSelectAction}}),a("wordcount",{display:'<div id="toolbarWC" style="display:block; min-width:100px;">Words: <span ng-bind="wordcount"></span></div>',disabled:!0,wordcount:0,activeState:function(){var a=this.$editor().displayElements.text,b=a[0].innerHTML||"",c=0;return""!==b.replace(/\s*<[^>]*?>\s*/g,"")&&(c=b.replace(/<\/?(b|i|em|strong|span|u|strikethrough|a|img|small|sub|sup|label)( [^>*?])?>/gi,"").replace(/(<[^>]*?>\s*<[^>]*?>)/gi," ").replace(/(<[^>]*?>)/gi,"").replace(/\s+/gi," ").match(/\S+/g).length),this.wordcount=c,this.$editor().wordcount=c,!1}}),a("charcount",{display:'<div id="toolbarCC" style="display:block; min-width:120px;">Characters: <span ng-bind="charcount"></span></div>',disabled:!0,charcount:0,activeState:function(){var a=this.$editor().displayElements.text,b=a[0].innerText||a[0].textContent,c=b.replace(/(\r\n|\n|\r)/gm,"").replace(/^\s+/g," ").replace(/\s+$/g," ").length;return this.charcount=c,this.$editor().charcount=c,!1}})}]),angular.module("ui.navbar",["ui.bootstrap","template/navbar-ul.html","template/navbar-li.html"]).directive("tree",function(){return{restrict:"E",replace:!0,scope:{tree:"="},templateUrl:"template/navbar-ul.html"}}).directive("leaf",["$compile",function(a){return{restrict:"E",replace:!0,scope:{leaf:"="},templateUrl:"template/navbar-li.html",link:function(b,c,d){if(angular.isArray(b.leaf.subtree)){c.append('<tree tree="leaf.subtree"></tree>');for(var e=c.parent(),f=!1;e.length>0&&!f;)e.hasClass("navbar-right")&&(f=!0),e=e.parent();f?c.addClass("dropdown-submenu-right"):c.addClass("dropdown-submenu"),a(c.contents())(b)}}}}]),angular.module("template/navbar-li.html",[]).run(["$templateCache",function(a){a.put("template/navbar-li.html",'<li ng-class="{divider: leaf.name == \'divider\'}">\n    <a ui-sref="{{leaf.link}}" ng-if="leaf.name !== \'divider\'">{{leaf.name}}</a>\n</li>')}]),angular.module("template/navbar-ul.html",[]).run(["$templateCache",function(a){a.put("template/navbar-ul.html","<ul class='dropdown-menu'>\n    <leaf ng-repeat='leaf in tree' leaf='leaf'></leaf>\n</ul>")}]),function(){"use strict";var a={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,COMMAND:91,MAP:{91:"COMMAND",8:"BACKSPACE",9:"TAB",13:"ENTER",16:"SHIFT",17:"CTRL",18:"ALT",19:"PAUSEBREAK",20:"CAPSLOCK",27:"ESC",32:"SPACE",33:"PAGE_UP",34:"PAGE_DOWN",35:"END",36:"HOME",37:"LEFT",38:"UP",39:"RIGHT",40:"DOWN",43:"+",44:"PRINTSCREEN",45:"INSERT",46:"DELETE",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NUMLOCK",145:"SCROLLLOCK",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},isControl:function(b){var c=b.which;switch(c){case a.COMMAND:case a.SHIFT:case a.CTRL:case a.ALT:return!0}return b.metaKey?!0:!1},isFunctionKey:function(a){return a=a.which?a.which:a,a>=112&&123>=a},isVerticalMovement:function(b){return~[a.UP,a.DOWN].indexOf(b)},isHorizontalMovement:function(b){return~[a.LEFT,a.RIGHT,a.BACKSPACE,a.DELETE].indexOf(b)}};void 0===angular.element.prototype.querySelectorAll&&(angular.element.prototype.querySelectorAll=function(a){return angular.element(this[0].querySelectorAll(a))}),void 0===angular.element.prototype.closest&&(angular.element.prototype.closest=function(a){for(var b=this[0],c=b.matches||b.webkitMatchesSelector||b.mozMatchesSelector||b.msMatchesSelector;b;){if(c.bind(b)(a))return b;b=b.parentElement}return!1});var b=0,c=angular.module("ui.select",[]).constant("uiSelectConfig",{theme:"bootstrap",searchEnabled:!0,sortable:!1,placeholder:"",refreshDelay:1e3,closeOnSelect:!0,dropdownPosition:"auto",generateId:function(){return b++},appendToBody:!1}).service("uiSelectMinErr",function(){var a=angular.$$minErr("ui.select");return function(){var b=a.apply(this,arguments),c=b.message.replace(new RegExp("\nhttp://errors.angularjs.org/.*"),"");return new Error(c)}}).directive("uisTranscludeAppend",function(){return{link:function(a,b,c,d,e){e(a,function(a){b.append(a)})}}}).filter("highlight",function(){function a(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(b,c){return c&&b?b.replace(new RegExp(a(c),"gi"),'<span class="ui-select-highlight">$&</span>'):b}}).factory("uisOffset",["$document","$window",function(a,b){return function(c){var d=c[0].getBoundingClientRect();return{width:d.width||c.prop("offsetWidth"),height:d.height||c.prop("offsetHeight"),top:d.top+(b.pageYOffset||a[0].documentElement.scrollTop),left:d.left+(b.pageXOffset||a[0].documentElement.scrollLeft)}}}]);c.directive("uiSelectChoices",["uiSelectConfig","uisRepeatParser","uiSelectMinErr","$compile",function(a,b,c,d){return{restrict:"EA",require:"^uiSelect",replace:!0,transclude:!0,templateUrl:function(b){var c=b.parent().attr("theme")||a.theme;return c+"/choices.tpl.html"},compile:function(e,f){if(!f.repeat)throw c("repeat","Expected 'repeat' expression.");return function(e,f,g,h,i){var j=g.groupBy,k=g.groupFilter;if(h.parseRepeatAttr(g.repeat,j,k),h.disableChoiceExpression=g.uiDisableChoice,h.onHighlightCallback=g.onHighlight,h.dropdownPosition=g.position?g.position.toLowerCase():a.dropdownPosition,j){var l=f.querySelectorAll(".ui-select-choices-group");if(1!==l.length)throw c("rows","Expected 1 .ui-select-choices-group but got '{0}'.",l.length);l.attr("ng-repeat",b.getGroupNgRepeatExpression())}var m=f.querySelectorAll(".ui-select-choices-row");if(1!==m.length)throw c("rows","Expected 1 .ui-select-choices-row but got '{0}'.",m.length);m.attr("ng-repeat",h.parserResult.repeatExpression(j)).attr("ng-if","$select.open").attr("ng-click","$select.select("+h.parserResult.itemName+",false,$event)");var n=f.querySelectorAll(".ui-select-choices-row-inner");if(1!==n.length)throw c("rows","Expected 1 .ui-select-choices-row-inner but got '{0}'.",n.length);n.attr("uis-transclude-append",""),d(f,i)(e),e.$watch("$select.search",function(a){a&&!h.open&&h.multiple&&h.activate(!1,!0),h.activeIndex=h.tagging.isActivated?-1:0,h.refresh(g.refresh)}),g.$observe("refreshDelay",function(){var b=e.$eval(g.refreshDelay);h.refreshDelay=void 0!==b?b:a.refreshDelay})}}}}]),c.controller("uiSelectCtrl",["$scope","$element","$timeout","$filter","uisRepeatParser","uiSelectMinErr","uiSelectConfig","$parse",function(b,c,d,e,f,g,h,i){function j(){(n.resetSearchInput||void 0===n.resetSearchInput&&h.resetSearchInput)&&(n.search=o,n.selected&&n.items.length&&!n.multiple&&(n.activeIndex=n.items.indexOf(n.selected)))}function k(a,b){var c,d,e=[];for(c=0;c<b.length;c++)for(d=0;d<a.length;d++)a[d].name==[b[c]]&&e.push(a[d]);return e}function l(b){var c=!0;switch(b){case a.DOWN:!n.open&&n.multiple?n.activate(!1,!0):n.activeIndex<n.items.length-1&&n.activeIndex++;break;case a.UP:!n.open&&n.multiple?n.activate(!1,!0):(n.activeIndex>0||0===n.search.length&&n.tagging.isActivated&&n.activeIndex>-1)&&n.activeIndex--;break;case a.TAB:(!n.multiple||n.open)&&n.select(n.items[n.activeIndex],!0);break;case a.ENTER:n.open&&(n.tagging.isActivated||n.activeIndex>=0)?n.select(n.items[n.activeIndex]):n.activate(!1,!0);break;case a.ESC:n.close();break;default:c=!1}return c}function m(){var a=c.querySelectorAll(".ui-select-choices-content"),b=a.querySelectorAll(".ui-select-choices-row");if(b.length<1)throw g("choices","Expected multiple .ui-select-choices-row but got '{0}'.",b.length);if(!(n.activeIndex<0)){var d=b[n.activeIndex],e=d.offsetTop+d.clientHeight-a[0].scrollTop,f=a[0].offsetHeight;e>f?a[0].scrollTop+=e-f:e<d.clientHeight&&(n.isGrouped&&0===n.activeIndex?a[0].scrollTop=0:a[0].scrollTop-=d.clientHeight-e)}}var n=this,o="";if(n.placeholder=h.placeholder,n.searchEnabled=h.searchEnabled,n.sortable=h.sortable,n.refreshDelay=h.refreshDelay,n.removeSelected=!1,n.closeOnSelect=!0,n.search=o,n.activeIndex=0,n.items=[],n.open=!1,n.focus=!1,n.disabled=!1,n.selected=void 0,n.dropdownPosition="auto",n.focusser=void 0,n.resetSearchInput=!0,n.multiple=void 0,n.disableChoiceExpression=void 0,n.tagging={isActivated:!1,fct:void 0},n.taggingTokens={isActivated:!1,tokens:void 0},n.lockChoiceExpression=void 0,n.clickTriggeredSelect=!1,n.$filter=e,n.searchInput=c.querySelectorAll("input.ui-select-search"),1!==n.searchInput.length)throw g("searchInput","Expected 1 input.ui-select-search but got '{0}'.",n.searchInput.length);n.isEmpty=function(){return angular.isUndefined(n.selected)||null===n.selected||""===n.selected},n.activate=function(a,c){n.disabled||n.open||(c||j(),b.$broadcast("uis:activate"),n.open=!0,n.activeIndex=n.activeIndex>=n.items.length?0:n.activeIndex,-1===n.activeIndex&&n.taggingLabel!==!1&&(n.activeIndex=0),d(function(){n.search=a||n.search,n.searchInput[0].focus(),!n.tagging.isActivated&&n.items.length>1&&m()}))},n.findGroupByName=function(a){return n.groups&&n.groups.filter(function(b){return b.name===a})[0]},n.parseRepeatAttr=function(a,c,d){function e(a){var e=b.$eval(c);if(n.groups=[],angular.forEach(a,function(a){var b=angular.isFunction(e)?e(a):a[e],c=n.findGroupByName(b);c?c.items.push(a):n.groups.push({name:b,items:[a]})}),d){var f=b.$eval(d);angular.isFunction(f)?n.groups=f(n.groups):angular.isArray(f)&&(n.groups=k(n.groups,f))}n.items=[],n.groups.forEach(function(a){n.items=n.items.concat(a.items)})}function h(a){n.items=a}n.setItemsFn=c?e:h,n.parserResult=f.parse(a),n.isGrouped=!!c,n.itemProperty=n.parserResult.itemName;var j=n.parserResult.source,l=function(){var a=j(b);b.$uisSource=Object.keys(a).map(function(b){var c={};return c[n.parserResult.keyName]=b,c.value=a[b],c})};n.parserResult.keyName&&(l(),n.parserResult.source=i("$uisSource"+n.parserResult.filters),b.$watch(j,function(a,b){a!==b&&l()},!0)),n.refreshItems=function(a){a=a||n.parserResult.source(b);var c=n.selected;if(n.isEmpty()||angular.isArray(c)&&!c.length||!n.removeSelected)n.setItemsFn(a);else if(void 0!==a){var d=a.filter(function(a){return c&&c.indexOf(a)<0});n.setItemsFn(d)}("auto"===n.dropdownPosition||"up"===n.dropdownPosition)&&b.calculateDropdownPos()},b.$watchCollection(n.parserResult.source,function(a){if(void 0===a||null===a)n.items=[];else{if(!angular.isArray(a))throw g("items","Expected an array but got '{0}'.",a);n.refreshItems(a),n.ngModel.$modelValue=null}})};var p;n.refresh=function(a){void 0!==a&&(p&&d.cancel(p),p=d(function(){b.$eval(a)},n.refreshDelay))},n.isActive=function(a){if(!n.open)return!1;var b=n.items.indexOf(a[n.itemProperty]),c=b===n.activeIndex;return!c||0>b&&n.taggingLabel!==!1||0>b&&n.taggingLabel===!1?!1:(c&&!angular.isUndefined(n.onHighlightCallback)&&a.$eval(n.onHighlightCallback),c)},n.isDisabled=function(a){if(n.open){var b,c=n.items.indexOf(a[n.itemProperty]),d=!1;return c>=0&&!angular.isUndefined(n.disableChoiceExpression)&&(b=n.items[c],d=!!a.$eval(n.disableChoiceExpression),b._uiSelectChoiceDisabled=d),d}},n.select=function(a,c,e){if(void 0===a||!a._uiSelectChoiceDisabled){if(!n.items&&!n.search)return;if(!a||!a._uiSelectChoiceDisabled){if(n.tagging.isActivated){if(n.taggingLabel===!1)if(n.activeIndex<0){if(a=void 0!==n.tagging.fct?n.tagging.fct(n.search):n.search,!a||angular.equals(n.items[0],a))return}else a=n.items[n.activeIndex];else if(0===n.activeIndex){if(void 0===a)return;if(void 0!==n.tagging.fct&&"string"==typeof a){if(a=n.tagging.fct(n.search),!a)return}else"string"==typeof a&&(a=a.replace(n.taggingLabel,"").trim())}if(n.selected&&angular.isArray(n.selected)&&n.selected.filter(function(b){return angular.equals(b,a)}).length>0)return void n.close(c)}b.$broadcast("uis:select",a);var f={};f[n.parserResult.itemName]=a,d(function(){n.onSelectCallback(b,{$item:a,$model:n.parserResult.modelMapper(b,f)})}),n.closeOnSelect&&n.close(c),e&&"click"===e.type&&(n.clickTriggeredSelect=!0)}}},n.close=function(a){n.open&&(n.ngModel&&n.ngModel.$setTouched&&n.ngModel.$setTouched(),j(),n.open=!1,b.$broadcast("uis:close",a))},n.setFocus=function(){n.focus||n.focusInput[0].focus()},n.clear=function(a){n.select(void 0),a.stopPropagation(),d(function(){n.focusser[0].focus()},0,!1)},n.toggle=function(a){n.open?(n.close(),a.preventDefault(),a.stopPropagation()):n.activate()},n.isLocked=function(a,b){var c,d=n.selected[b];return d&&!angular.isUndefined(n.lockChoiceExpression)&&(c=!!a.$eval(n.lockChoiceExpression),d._uiSelectChoiceLocked=c),c};var q=null;n.sizeSearchInput=function(){var a=n.searchInput[0],c=n.searchInput.parent().parent()[0],e=function(){return c.clientWidth*!!a.offsetParent},f=function(b){if(0===b)return!1;var c=b-a.offsetLeft-10;return 50>c&&(c=b),n.searchInput.css("width",c+"px"),!0};n.searchInput.css("width","10px"),d(function(){null!==q||f(e())||(q=b.$watch(e,function(a){f(a)&&(q(),q=null)}))})},n.searchInput.on("keydown",function(c){var e=c.which;b.$apply(function(){var b=!1;if((n.items.length>0||n.tagging.isActivated)&&(l(e),n.taggingTokens.isActivated)){for(var f=0;f<n.taggingTokens.tokens.length;f++)n.taggingTokens.tokens[f]===a.MAP[c.keyCode]&&n.search.length>0&&(b=!0);b&&d(function(){n.searchInput.triggerHandler("tagged");var b=n.search.replace(a.MAP[c.keyCode],"").trim();n.tagging.fct&&(b=n.tagging.fct(b)),b&&n.select(b,!0)})}}),a.isVerticalMovement(e)&&n.items.length>0&&m(),(e===a.ENTER||e===a.ESC)&&(c.preventDefault(),c.stopPropagation())}),n.searchInput.on("paste",function(a){var b=a.originalEvent.clipboardData.getData("text/plain");if(b&&b.length>0&&n.taggingTokens.isActivated&&n.tagging.fct){var c=b.split(n.taggingTokens.tokens[0]);c&&c.length>0&&(angular.forEach(c,function(a){var b=n.tagging.fct(a);b&&n.select(b,!0)}),a.preventDefault(),a.stopPropagation())}}),n.searchInput.on("tagged",function(){d(function(){j()})}),b.$on("$destroy",function(){n.searchInput.off("keyup keydown tagged blur paste")})}]),c.directive("uiSelect",["$document","uiSelectConfig","uiSelectMinErr","uisOffset","$compile","$parse","$timeout",function(a,b,c,d,e,f,g){return{restrict:"EA",templateUrl:function(a,c){var d=c.theme||b.theme;return d+(angular.isDefined(c.multiple)?"/select-multiple.tpl.html":"/select.tpl.html")},replace:!0,transclude:!0,require:["uiSelect","^ngModel"],scope:!0,controller:"uiSelectCtrl",controllerAs:"$select",compile:function(e,h){return angular.isDefined(h.multiple)?e.append("<ui-select-multiple/>").removeAttr("multiple"):e.append("<ui-select-single/>"),h.inputId&&(e.querySelectorAll("input.ui-select-search")[0].id=h.inputId),function(e,h,i,j,k){function l(a){if(o.open){var b=!1;if(b=window.jQuery?window.jQuery.contains(h[0],a.target):h[0].contains(a.target),!b&&!o.clickTriggeredSelect){var c=["input","button","textarea"],d=angular.element(a.target).controller("uiSelect"),f=d&&d!==o;f||(f=~c.indexOf(a.target.tagName.toLowerCase())),o.close(f),e.$digest()}o.clickTriggeredSelect=!1}}function m(){var b=d(h);r=angular.element('<div class="ui-select-placeholder"></div>'),r[0].style.width=b.width+"px",r[0].style.height=b.height+"px",h.after(r),s=h[0].style.width,a.find("body").append(h),h[0].style.position="absolute",h[0].style.left=b.left+"px",h[0].style.top=b.top+"px",h[0].style.width=b.width+"px"}function n(){null!==r&&(r.replaceWith(h),r=null,h[0].style.position="",h[0].style.left="",h[0].style.top="",h[0].style.width=s)}var o=j[0],p=j[1];o.generatedId=b.generateId(),o.baseTitle=i.title||"Select box",o.focusserTitle=o.baseTitle+" focus",o.focusserId="focusser-"+o.generatedId,o.closeOnSelect=function(){return angular.isDefined(i.closeOnSelect)?f(i.closeOnSelect)():b.closeOnSelect}(),o.onSelectCallback=f(i.onSelect),o.onRemoveCallback=f(i.onRemove),o.limit=angular.isDefined(i.limit)?parseInt(i.limit,10):void 0,o.ngModel=p,o.choiceGrouped=function(a){return o.isGrouped&&a&&a.name},i.tabindex&&i.$observe("tabindex",function(a){o.focusInput.attr("tabindex",a),h.removeAttr("tabindex")}),e.$watch("searchEnabled",function(){var a=e.$eval(i.searchEnabled);o.searchEnabled=void 0!==a?a:b.searchEnabled}),e.$watch("sortable",function(){var a=e.$eval(i.sortable);o.sortable=void 0!==a?a:b.sortable}),i.$observe("disabled",function(){o.disabled=void 0!==i.disabled?i.disabled:!1}),i.$observe("resetSearchInput",function(){var a=e.$eval(i.resetSearchInput);o.resetSearchInput=void 0!==a?a:!0}),i.$observe("tagging",function(){if(void 0!==i.tagging){var a=e.$eval(i.tagging);o.tagging={isActivated:!0,fct:a!==!0?a:void 0}}else o.tagging={isActivated:!1,fct:void 0}}),i.$observe("taggingLabel",function(){void 0!==i.tagging&&("false"===i.taggingLabel?o.taggingLabel=!1:o.taggingLabel=void 0!==i.taggingLabel?i.taggingLabel:"(new)")}),i.$observe("taggingTokens",function(){if(void 0!==i.tagging){var a=void 0!==i.taggingTokens?i.taggingTokens.split("|"):[",","ENTER"];o.taggingTokens={isActivated:!0,tokens:a}}}),angular.isDefined(i.autofocus)&&g(function(){o.setFocus()}),angular.isDefined(i.focusOn)&&e.$on(i.focusOn,function(){g(function(){o.setFocus()})}),a.on("click",l),e.$on("$destroy",function(){a.off("click",l)}),k(e,function(a){var b=angular.element("<div>").append(a),d=b.querySelectorAll(".ui-select-match");if(d.removeAttr("ui-select-match"),d.removeAttr("data-ui-select-match"),1!==d.length)throw c("transcluded","Expected 1 .ui-select-match but got '{0}'.",d.length);h.querySelectorAll(".ui-select-match").replaceWith(d);var e=b.querySelectorAll(".ui-select-choices");if(e.removeAttr("ui-select-choices"),e.removeAttr("data-ui-select-choices"),1!==e.length)throw c("transcluded","Expected 1 .ui-select-choices but got '{0}'.",e.length);h.querySelectorAll(".ui-select-choices").replaceWith(e)});var q=e.$eval(i.appendToBody);(void 0!==q?q:b.appendToBody)&&(e.$watch("$select.open",function(a){a?m():n()}),e.$on("$destroy",function(){n()}));var r=null,s="",t=null,u="direction-up";
-e.$watch("$select.open",function(){("auto"===o.dropdownPosition||"up"===o.dropdownPosition)&&e.calculateDropdownPos()});var v=function(a,b){a=a||d(h),b=b||d(t),t[0].style.position="absolute",t[0].style.top=-1*b.height+"px",h.addClass(u)},w=function(a,b){h.removeClass(u),a=a||d(h),b=b||d(t),t[0].style.position="",t[0].style.top=""};e.calculateDropdownPos=function(){if(o.open){if(t=angular.element(h).querySelectorAll(".ui-select-dropdown"),0===t.length)return;t[0].style.opacity=0,g(function(){if("up"===o.dropdownPosition)v(b,c);else{h.removeClass(u);var b=d(h),c=d(t),e=a[0].documentElement.scrollTop||a[0].body.scrollTop;b.top+b.height+c.height>e+a[0].documentElement.clientHeight?v(b,c):w(b,c)}t[0].style.opacity=1})}else{if(null===t||0===t.length)return;t[0].style.position="",t[0].style.top="",h.removeClass(u)}}}}}}]),c.directive("uiSelectMatch",["uiSelectConfig",function(a){return{restrict:"EA",require:"^uiSelect",replace:!0,transclude:!0,templateUrl:function(b){var c=b.parent().attr("theme")||a.theme,d=b.parent().attr("multiple");return c+(d?"/match-multiple.tpl.html":"/match.tpl.html")},link:function(b,c,d,e){function f(a){e.allowClear=angular.isDefined(a)?""===a?!0:"true"===a.toLowerCase():!1}e.lockChoiceExpression=d.uiLockChoice,d.$observe("placeholder",function(b){e.placeholder=void 0!==b?b:a.placeholder}),d.$observe("allowClear",f),f(d.allowClear),e.multiple&&e.sizeSearchInput()}}}]),c.directive("uiSelectMultiple",["uiSelectMinErr","$timeout",function(b,c){return{restrict:"EA",require:["^uiSelect","^ngModel"],controller:["$scope","$timeout",function(a,b){var c,d=this,e=a.$select;a.$evalAsync(function(){c=a.ngModel}),d.activeMatchIndex=-1,d.updateModel=function(){c.$setViewValue(Date.now()),d.refreshComponent()},d.refreshComponent=function(){e.refreshItems(),e.sizeSearchInput()},d.removeChoice=function(c){var f=e.selected[c];if(!f._uiSelectChoiceLocked){var g={};g[e.parserResult.itemName]=f,e.selected.splice(c,1),d.activeMatchIndex=-1,e.sizeSearchInput(),b(function(){e.onRemoveCallback(a,{$item:f,$model:e.parserResult.modelMapper(a,g)})}),d.updateModel()}},d.getPlaceholder=function(){return e.selected&&e.selected.length?void 0:e.placeholder}}],controllerAs:"$selectMultiple",link:function(d,e,f,g){function h(a){return angular.isNumber(a.selectionStart)?a.selectionStart:a.value.length}function i(b){function c(){switch(b){case a.LEFT:return~n.activeMatchIndex?k:g;case a.RIGHT:return~n.activeMatchIndex&&i!==g?j:(l.activate(),!1);case a.BACKSPACE:return~n.activeMatchIndex?(n.removeChoice(i),k):g;case a.DELETE:return~n.activeMatchIndex?(n.removeChoice(n.activeMatchIndex),i):!1}}var d=h(l.searchInput[0]),e=l.selected.length,f=0,g=e-1,i=n.activeMatchIndex,j=n.activeMatchIndex+1,k=n.activeMatchIndex-1,m=i;return d>0||l.search.length&&b==a.RIGHT?!1:(l.close(),m=c(),l.selected.length&&m!==!1?n.activeMatchIndex=Math.min(g,Math.max(f,m)):n.activeMatchIndex=-1,!0)}function j(a){if(void 0===a||void 0===l.search)return!1;var b=a.filter(function(a){return void 0===l.search.toUpperCase()||void 0===a?!1:a.toUpperCase()===l.search.toUpperCase()}).length>0;return b}function k(a,b){var c=-1;if(angular.isArray(a))for(var d=angular.copy(a),e=0;e<d.length;e++)if(void 0===l.tagging.fct)d[e]+" "+l.taggingLabel===b&&(c=e);else{var f=d[e];f.isTag=!0,angular.equals(f,b)&&(c=e)}return c}var l=g[0],m=d.ngModel=g[1],n=d.$selectMultiple;l.multiple=!0,l.removeSelected=!0,l.focusInput=l.searchInput,m.$parsers.unshift(function(){for(var a,b={},c=[],e=l.selected.length-1;e>=0;e--)b={},b[l.parserResult.itemName]=l.selected[e],a=l.parserResult.modelMapper(d,b),c.unshift(a);return c}),m.$formatters.unshift(function(a){var b,c=l.parserResult.source(d,{$select:{search:""}}),e={};if(!c)return a;var f=[],g=function(a,c){if(a&&a.length){for(var g=a.length-1;g>=0;g--){if(e[l.parserResult.itemName]=a[g],b=l.parserResult.modelMapper(d,e),l.parserResult.trackByExp){var h=/\.(.+)/.exec(l.parserResult.trackByExp);if(h.length>0&&b[h[1]]==c[h[1]])return f.unshift(a[g]),!0}if(angular.equals(b,c))return f.unshift(a[g]),!0}return!1}};if(!a)return f;for(var h=a.length-1;h>=0;h--)g(l.selected,a[h])||g(c,a[h])||f.unshift(a[h]);return f}),d.$watchCollection(function(){return m.$modelValue},function(a,b){b!=a&&(m.$modelValue=null,n.refreshComponent())}),m.$render=function(){if(!angular.isArray(m.$viewValue)){if(!angular.isUndefined(m.$viewValue)&&null!==m.$viewValue)throw b("multiarr","Expected model value to be array but got '{0}'",m.$viewValue);l.selected=[]}l.selected=m.$viewValue,d.$evalAsync()},d.$on("uis:select",function(a,b){l.selected.length>=l.limit||(l.selected.push(b),n.updateModel())}),d.$on("uis:activate",function(){n.activeMatchIndex=-1}),d.$watch("$select.disabled",function(a,b){b&&!a&&l.sizeSearchInput()}),l.searchInput.on("keydown",function(b){var c=b.which;d.$apply(function(){var d=!1;a.isHorizontalMovement(c)&&(d=i(c)),d&&c!=a.TAB&&(b.preventDefault(),b.stopPropagation())})}),l.searchInput.on("keyup",function(b){if(a.isVerticalMovement(b.which)||d.$evalAsync(function(){l.activeIndex=l.taggingLabel===!1?-1:0}),l.tagging.isActivated&&l.search.length>0){if(b.which===a.TAB||a.isControl(b)||a.isFunctionKey(b)||b.which===a.ESC||a.isVerticalMovement(b.which))return;if(l.activeIndex=l.taggingLabel===!1?-1:0,l.taggingLabel===!1)return;var c,e,f,g,h=angular.copy(l.items),i=angular.copy(l.items),m=!1,n=-1;if(void 0!==l.tagging.fct){if(f=l.$filter("filter")(h,{isTag:!0}),f.length>0&&(g=f[0]),h.length>0&&g&&(m=!0,h=h.slice(1,h.length),i=i.slice(1,i.length)),c=l.tagging.fct(l.search),c.isTag=!0,i.filter(function(a){return angular.equals(a,l.tagging.fct(l.search))}).length>0)return;c.isTag=!0}else{if(f=l.$filter("filter")(h,function(a){return a.match(l.taggingLabel)}),f.length>0&&(g=f[0]),e=h[0],void 0!==e&&h.length>0&&g&&(m=!0,h=h.slice(1,h.length),i=i.slice(1,i.length)),c=l.search+" "+l.taggingLabel,k(l.selected,l.search)>-1)return;if(j(i.concat(l.selected)))return void(m&&(h=i,d.$evalAsync(function(){l.activeIndex=0,l.items=h})));if(j(i))return void(m&&(l.items=i.slice(1,i.length)))}m&&(n=k(l.selected,c)),n>-1?h=h.slice(n+1,h.length-1):(h=[],h.push(c),h=h.concat(i)),d.$evalAsync(function(){l.activeIndex=0,l.items=h})}}),l.searchInput.on("blur",function(){c(function(){n.activeMatchIndex=-1})})}}}]),c.directive("uiSelectSingle",["$timeout","$compile",function(b,c){return{restrict:"EA",require:["^uiSelect","^ngModel"],link:function(d,e,f,g){var h=g[0],i=g[1];i.$parsers.unshift(function(a){var b,c={};return c[h.parserResult.itemName]=a,b=h.parserResult.modelMapper(d,c)}),i.$formatters.unshift(function(a){var b,c=h.parserResult.source(d,{$select:{search:""}}),e={};if(c){var f=function(c){return e[h.parserResult.itemName]=c,b=h.parserResult.modelMapper(d,e),b==a};if(h.selected&&f(h.selected))return h.selected;for(var g=c.length-1;g>=0;g--)if(f(c[g]))return c[g]}return a}),d.$watch("$select.selected",function(a){i.$viewValue!==a&&i.$setViewValue(a)}),i.$render=function(){h.selected=i.$viewValue},d.$on("uis:select",function(a,b){h.selected=b}),d.$on("uis:close",function(a,c){b(function(){h.focusser.prop("disabled",!1),c||h.focusser[0].focus()},0,!1)}),d.$on("uis:activate",function(){j.prop("disabled",!0)});var j=angular.element("<input ng-disabled='$select.disabled' class='ui-select-focusser ui-select-offscreen' type='text' id='{{ $select.focusserId }}' aria-label='{{ $select.focusserTitle }}' aria-haspopup='true' role='button' />");c(j)(d),h.focusser=j,h.focusInput=j,e.parent().append(j),j.bind("focus",function(){d.$evalAsync(function(){h.focus=!0})}),j.bind("blur",function(){d.$evalAsync(function(){h.focus=!1})}),j.bind("keydown",function(b){return b.which===a.BACKSPACE?(b.preventDefault(),b.stopPropagation(),h.select(void 0),void d.$apply()):void(b.which===a.TAB||a.isControl(b)||a.isFunctionKey(b)||b.which===a.ESC||((b.which==a.DOWN||b.which==a.UP||b.which==a.ENTER||b.which==a.SPACE)&&(b.preventDefault(),b.stopPropagation(),h.activate()),d.$digest()))}),j.bind("keyup input",function(b){b.which===a.TAB||a.isControl(b)||a.isFunctionKey(b)||b.which===a.ESC||b.which==a.ENTER||b.which===a.BACKSPACE||(h.activate(j.val()),j.val(""),d.$digest())})}}}]),c.directive("uiSelectSort",["$timeout","uiSelectConfig","uiSelectMinErr",function(a,b,c){return{require:"^uiSelect",link:function(b,d,e,f){if(null===b[e.uiSelectSort])throw c("sort","Expected a list to sort");var g=angular.extend({axis:"horizontal"},b.$eval(e.uiSelectSortOptions)),h=g.axis,i="dragging",j="dropping",k="dropping-before",l="dropping-after";b.$watch(function(){return f.sortable},function(a){a?d.attr("draggable",!0):d.removeAttr("draggable")}),d.on("dragstart",function(a){d.addClass(i),(a.dataTransfer||a.originalEvent.dataTransfer).setData("text/plain",b.$index)}),d.on("dragend",function(){d.removeClass(i)});var m,n=function(a,b){this.splice(b,0,this.splice(a,1)[0])},o=function(a){a.preventDefault();var b="vertical"===h?a.offsetY||a.layerY||(a.originalEvent?a.originalEvent.offsetY:0):a.offsetX||a.layerX||(a.originalEvent?a.originalEvent.offsetX:0);b<this["vertical"===h?"offsetHeight":"offsetWidth"]/2?(d.removeClass(l),d.addClass(k)):(d.removeClass(k),d.addClass(l))},p=function(b){b.preventDefault();var c=parseInt((b.dataTransfer||b.originalEvent.dataTransfer).getData("text/plain"),10);a.cancel(m),m=a(function(){q(c)},20)},q=function(a){var c=b.$eval(e.uiSelectSort),f=c[a],g=null;g=d.hasClass(k)?a<b.$index?b.$index-1:b.$index:a<b.$index?b.$index:b.$index+1,n.apply(c,[a,g]),b.$apply(function(){b.$emit("uiSelectSort:change",{array:c,item:f,from:a,to:g})}),d.removeClass(j),d.removeClass(k),d.removeClass(l),d.off("drop",p)};d.on("dragenter",function(){d.hasClass(i)||(d.addClass(j),d.on("dragover",o),d.on("drop",p))}),d.on("dragleave",function(a){a.target==d&&(d.removeClass(j),d.removeClass(k),d.removeClass(l),d.off("dragover",o),d.off("drop",p))})}}}]),c.service("uisRepeatParser",["uiSelectMinErr","$parse",function(a,b){var c=this;c.parse=function(c){var d,e=/\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)/.test(c);if(d=c.match(/^\s*(?:([\s\S]+?)\s+as\s+)?(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(([\w\.]+)?\s*(|\s*[\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/),!d)throw a("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",c);if(!d[6]&&e)throw a("iexp","Expected expression in form of '_item_ as (_key_, _item_) in _ObjCollection_ [ track by _id_]' but got '{0}'.",c);return{itemName:d[4]||d[2],keyName:d[3],source:b(d[3]?d[6]:d[5]),sourceName:d[6],filters:d[7],trackByExp:d[8],modelMapper:b(d[1]||d[4]||d[2]),repeatExpression:function(a){var b=this.itemName+" in "+(a?"$group.items":"$select.items");return this.trackByExp&&(b+=" track by "+this.trackByExp),b}}},c.getGroupNgRepeatExpression=function(){return"$group in $select.groups"}}])}(),angular.module("ui.select").run(["$templateCache",function(a){a.put("bootstrap/choices.tpl.html",'<ul class="ui-select-choices ui-select-choices-content ui-select-dropdown dropdown-menu" role="listbox" ng-show="$select.items.length > 0"><li class="ui-select-choices-group" id="ui-select-choices-{{ $select.generatedId }}"><div class="divider" ng-show="$select.isGrouped && $index > 0"></div><div ng-show="$select.isGrouped" class="ui-select-choices-group-label dropdown-header" ng-bind="$group.name"></div><div id="ui-select-choices-row-{{ $select.generatedId }}-{{$index}}" class="ui-select-choices-row" ng-class="{active: $select.isActive(this), disabled: $select.isDisabled(this)}" role="option"><a href="javascript:void(0)" class="ui-select-choices-row-inner"></a></div></li></ul>'),a.put("bootstrap/match-multiple.tpl.html",'<span class="ui-select-match"><span ng-repeat="$item in $select.selected"><span class="ui-select-match-item btn btn-default btn-xs" tabindex="-1" type="button" ng-disabled="$select.disabled" ng-click="$selectMultiple.activeMatchIndex = $index;" ng-class="{\'btn-primary\':$selectMultiple.activeMatchIndex === $index, \'select-locked\':$select.isLocked(this, $index)}" ui-select-sort="$select.selected"><span class="close ui-select-match-close" ng-hide="$select.disabled" ng-click="$selectMultiple.removeChoice($index)">&nbsp;&times;</span> <span uis-transclude-append=""></span></span></span></span>'),a.put("bootstrap/match.tpl.html",'<div class="ui-select-match" ng-hide="$select.open" ng-disabled="$select.disabled" ng-class="{\'btn-default-focus\':$select.focus}"><span tabindex="-1" class="btn btn-default form-control ui-select-toggle" aria-label="{{ $select.baseTitle }} activate" ng-disabled="$select.disabled" ng-click="$select.activate()" style="outline: 0;"><span ng-show="$select.isEmpty()" class="ui-select-placeholder text-muted">{{$select.placeholder}}</span> <span ng-hide="$select.isEmpty()" class="ui-select-match-text pull-left" ng-class="{\'ui-select-allow-clear\': $select.allowClear && !$select.isEmpty()}" ng-transclude=""></span> <i class="caret pull-right" ng-click="$select.toggle($event)"></i> <a ng-show="$select.allowClear && !$select.isEmpty()" aria-label="{{ $select.baseTitle }} clear" style="margin-right: 10px" ng-click="$select.clear($event)" class="btn btn-xs btn-link pull-right"><i class="glyphicon glyphicon-remove" aria-hidden="true"></i></a></span></div>'),a.put("bootstrap/select-multiple.tpl.html",'<div class="ui-select-container ui-select-multiple ui-select-bootstrap dropdown form-control" ng-class="{open: $select.open}"><div><div class="ui-select-match"></div><input type="text" autocomplete="false" autocorrect="off" autocapitalize="off" spellcheck="false" class="ui-select-search input-xs" placeholder="{{$selectMultiple.getPlaceholder()}}" ng-disabled="$select.disabled" ng-hide="$select.disabled" ng-click="$select.activate()" ng-model="$select.search" role="combobox" aria-label="{{ $select.baseTitle }}" ondrop="return false;"></div><div class="ui-select-choices"></div></div>'),a.put("bootstrap/select.tpl.html",'<div class="ui-select-container ui-select-bootstrap dropdown" ng-class="{open: $select.open}"><div class="ui-select-match"></div><input type="text" autocomplete="false" tabindex="-1" aria-expanded="true" aria-label="{{ $select.baseTitle }}" aria-owns="ui-select-choices-{{ $select.generatedId }}" aria-activedescendant="ui-select-choices-row-{{ $select.generatedId }}-{{ $select.activeIndex }}" class="form-control ui-select-search" placeholder="{{$select.placeholder}}" ng-model="$select.search" ng-show="$select.searchEnabled && $select.open"><div class="ui-select-choices"></div></div>'),a.put("selectize/choices.tpl.html",'<div ng-show="$select.open" class="ui-select-choices ui-select-dropdown selectize-dropdown single"><div class="ui-select-choices-content selectize-dropdown-content"><div class="ui-select-choices-group optgroup" role="listbox"><div ng-show="$select.isGrouped" class="ui-select-choices-group-label optgroup-header" ng-bind="$group.name"></div><div role="option" class="ui-select-choices-row" ng-class="{active: $select.isActive(this), disabled: $select.isDisabled(this)}"><div class="option ui-select-choices-row-inner" data-selectable=""></div></div></div></div></div>'),a.put("selectize/match.tpl.html",'<div ng-hide="($select.open || $select.isEmpty())" class="ui-select-match" ng-transclude=""></div>'),a.put("selectize/select.tpl.html",'<div class="ui-select-container selectize-control single" ng-class="{\'open\': $select.open}"><div class="selectize-input" ng-class="{\'focus\': $select.open, \'disabled\': $select.disabled, \'selectize-focus\' : $select.focus}" ng-click="$select.activate()"><div class="ui-select-match"></div><input type="text" autocomplete="false" tabindex="-1" class="ui-select-search ui-select-toggle" ng-click="$select.toggle($event)" placeholder="{{$select.placeholder}}" ng-model="$select.search" ng-hide="!$select.searchEnabled || ($select.selected && !$select.open)" ng-disabled="$select.disabled" aria-label="{{ $select.baseTitle }}"></div><div class="ui-select-choices"></div></div>'),a.put("select2/choices.tpl.html",'<ul class="ui-select-choices ui-select-choices-content select2-results"><li class="ui-select-choices-group" ng-class="{\'select2-result-with-children\': $select.choiceGrouped($group) }"><div ng-show="$select.choiceGrouped($group)" class="ui-select-choices-group-label select2-result-label" ng-bind="$group.name"></div><ul role="listbox" id="ui-select-choices-{{ $select.generatedId }}" ng-class="{\'select2-result-sub\': $select.choiceGrouped($group), \'select2-result-single\': !$select.choiceGrouped($group) }"><li role="option" id="ui-select-choices-row-{{ $select.generatedId }}-{{$index}}" class="ui-select-choices-row" ng-class="{\'select2-highlighted\': $select.isActive(this), \'select2-disabled\': $select.isDisabled(this)}"><div class="select2-result-label ui-select-choices-row-inner"></div></li></ul></li></ul>'),a.put("select2/match-multiple.tpl.html",'<span class="ui-select-match"><li class="ui-select-match-item select2-search-choice" ng-repeat="$item in $select.selected" ng-class="{\'select2-search-choice-focus\':$selectMultiple.activeMatchIndex === $index, \'select2-locked\':$select.isLocked(this, $index)}" ui-select-sort="$select.selected"><span uis-transclude-append=""></span> <a href="javascript:;" class="ui-select-match-close select2-search-choice-close" ng-click="$selectMultiple.removeChoice($index)" tabindex="-1"></a></li></span>'),a.put("select2/match.tpl.html",'<a class="select2-choice ui-select-match" ng-class="{\'select2-default\': $select.isEmpty()}" ng-click="$select.toggle($event)" aria-label="{{ $select.baseTitle }} select"><span ng-show="$select.isEmpty()" class="select2-chosen">{{$select.placeholder}}</span> <span ng-hide="$select.isEmpty()" class="select2-chosen" ng-transclude=""></span> <abbr ng-if="$select.allowClear && !$select.isEmpty()" class="select2-search-choice-close" ng-click="$select.clear($event)"></abbr> <span class="select2-arrow ui-select-toggle"><b></b></span></a>'),a.put("select2/select-multiple.tpl.html",'<div class="ui-select-container ui-select-multiple select2 select2-container select2-container-multi" ng-class="{\'select2-container-active select2-dropdown-open open\': $select.open, \'select2-container-disabled\': $select.disabled}"><ul class="select2-choices"><span class="ui-select-match"></span><li class="select2-search-field"><input type="text" autocomplete="false" autocorrect="off" autocapitalize="off" spellcheck="false" role="combobox" aria-expanded="true" aria-owns="ui-select-choices-{{ $select.generatedId }}" aria-label="{{ $select.baseTitle }}" aria-activedescendant="ui-select-choices-row-{{ $select.generatedId }}-{{ $select.activeIndex }}" class="select2-input ui-select-search" placeholder="{{$selectMultiple.getPlaceholder()}}" ng-disabled="$select.disabled" ng-hide="$select.disabled" ng-model="$select.search" ng-click="$select.activate()" style="width: 34px;" ondrop="return false;"></li></ul><div class="ui-select-dropdown select2-drop select2-with-searchbox select2-drop-active" ng-class="{\'select2-display-none\': !$select.open}"><div class="ui-select-choices"></div></div></div>'),a.put("select2/select.tpl.html",'<div class="ui-select-container select2 select2-container" ng-class="{\'select2-container-active select2-dropdown-open open\': $select.open, \'select2-container-disabled\': $select.disabled, \'select2-container-active\': $select.focus, \'select2-allowclear\': $select.allowClear && !$select.isEmpty()}"><div class="ui-select-match"></div><div class="ui-select-dropdown select2-drop select2-with-searchbox select2-drop-active" ng-class="{\'select2-display-none\': !$select.open}"><div class="select2-search" ng-show="$select.searchEnabled"><input type="text" autocomplete="false" autocorrect="false" autocapitalize="off" spellcheck="false" role="combobox" aria-expanded="true" aria-owns="ui-select-choices-{{ $select.generatedId }}" aria-label="{{ $select.baseTitle }}" aria-activedescendant="ui-select-choices-row-{{ $select.generatedId }}-{{ $select.activeIndex }}" class="ui-select-search select2-input" ng-model="$select.search"></div><div class="ui-select-choices"></div></div></div>')}]),function(){window.WebComponents=window.WebComponents||{flags:{}};var a="webcomponents.js",b=document.querySelector('script[src*="'+a+'"]'),c={};if(!c.noOpts){if(location.search.slice(1).split("&").forEach(function(a){var b,d=a.split("=");d[0]&&(b=d[0].match(/wc-(.+)/))&&(c[b[1]]=d[1]||!0)}),b)for(var d,e=0;d=b.attributes[e];e++)"src"!==d.name&&(c[d.name]=d.value||!0);if(c.log&&c.log.split){var f=c.log.split(",");c.log={},f.forEach(function(a){c.log[a]=!0})}else c.log={}}c.shadow=c.shadow||c.shadowdom||c.polyfill,"native"===c.shadow?c.shadow=!1:c.shadow=c.shadow||!HTMLElement.prototype.createShadowRoot,c.register&&(window.CustomElements=window.CustomElements||{flags:{}},window.CustomElements.flags.register=c.register),WebComponents.flags=c}(),WebComponents.flags.shadow&&("undefined"==typeof WeakMap&&!function(){var a=Object.defineProperty,b=Date.now()%1e9,c=function(){this.name="__st"+(1e9*Math.random()>>>0)+(b++ +"__")};c.prototype={set:function(b,c){var d=b[this.name];return d&&d[0]===b?d[1]=c:a(b,this.name,{value:[b,c],writable:!0}),this},get:function(a){var b;return(b=a[this.name])&&b[0]===a?b[1]:void 0},"delete":function(a){var b=a[this.name];return b&&b[0]===a?(b[0]=b[1]=void 0,!0):!1},has:function(a){var b=a[this.name];return b?b[0]===a:!1}},window.WeakMap=c}(),window.ShadowDOMPolyfill={},function(a){"use strict";function b(){if("undefined"!=typeof chrome&&chrome.app&&chrome.app.runtime)return!1;if(navigator.getDeviceStorage)return!1;try{var a=new Function("return true;");return a()}catch(b){return!1}}function c(a){if(!a)throw new Error("Assertion failed")}function d(a,b){for(var c=N(b),d=0;d<c.length;d++){var e=c[d];M(a,e,O(b,e))}return a}function e(a,b){for(var c=N(b),d=0;d<c.length;d++){var e=c[d];switch(e){case"arguments":case"caller":case"length":case"name":case"prototype":case"toString":continue}M(a,e,O(b,e))}return a}function f(a,b){for(var c=0;c<b.length;c++)if(b[c]in a)return b[c]}function g(a,b,c){P.value=c,M(a,b,P)}function h(a,b){var c=a.__proto__||Object.getPrototypeOf(a);if(Q)try{N(c)}catch(d){c=c.__proto__}var e=I.get(c);if(e)return e;var f=h(c),g=v(f);return s(c,g,b),g}function i(a,b){q(a,b,!0)}function j(a,b){q(b,a,!1)}function k(a){return/^on[a-z]+$/.test(a)}function l(a){return/^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test(a)}function m(a){return L&&l(a)?new Function("return this.__impl4cf1e782hg__."+a):function(){return this.__impl4cf1e782hg__[a]}}function n(a){return L&&l(a)?new Function("v","this.__impl4cf1e782hg__."+a+" = v"):function(b){this.__impl4cf1e782hg__[a]=b}}function o(a){return L&&l(a)?new Function("return this.__impl4cf1e782hg__."+a+".apply(this.__impl4cf1e782hg__, arguments)"):function(){return this.__impl4cf1e782hg__[a].apply(this.__impl4cf1e782hg__,arguments)}}function p(a,b){try{return Object.getOwnPropertyDescriptor(a,b)}catch(c){return R}}function q(b,c,d,e){for(var f=N(b),g=0;g<f.length;g++){var h=f[g];if("polymerBlackList_"!==h&&!(h in c||b.polymerBlackList_&&b.polymerBlackList_[h])){Q&&b.__lookupGetter__(h);var i,j,l=p(b,h);if("function"!=typeof l.value){var q=k(h);i=q?a.getEventHandlerGetter(h):m(h),(l.writable||l.set||S)&&(j=q?a.getEventHandlerSetter(h):n(h));var r=S||l.configurable;M(c,h,{get:i,set:j,configurable:r,enumerable:l.enumerable})}else d&&(c[h]=o(h))}}}function r(a,b,c){if(null!=a){var d=a.prototype;s(d,b,c),e(b,a)}}function s(a,b,d){var e=b.prototype;c(void 0===I.get(a)),I.set(a,b),J.set(e,a),i(a,e),d&&j(e,d),g(e,"constructor",b),b.prototype=e}function t(a,b){return I.get(b.prototype)===a}function u(a){var b=Object.getPrototypeOf(a),c=h(b),d=v(c);return s(b,d,a),d}function v(a){function b(b){a.call(this,b)}var c=Object.create(a.prototype);return c.constructor=b,b.prototype=c,b}function w(a){return a&&a.__impl4cf1e782hg__}function x(a){return!w(a)}function y(a){if(null===a)return null;c(x(a));var b=a.__wrapper8e3dd93a60__;return null!=b?b:a.__wrapper8e3dd93a60__=new(h(a,a))(a)}function z(a){return null===a?null:(c(w(a)),a.__impl4cf1e782hg__)}function A(a){return a.__impl4cf1e782hg__}function B(a,b){b.__impl4cf1e782hg__=a,a.__wrapper8e3dd93a60__=b}function C(a){return a&&w(a)?z(a):a}function D(a){return a&&!w(a)?y(a):a}function E(a,b){null!==b&&(c(x(a)),c(void 0===b||w(b)),a.__wrapper8e3dd93a60__=b)}function F(a,b,c){T.get=c,M(a.prototype,b,T)}function G(a,b){F(a,b,function(){return y(this.__impl4cf1e782hg__[b])})}function H(a,b){a.forEach(function(a){b.forEach(function(b){a.prototype[b]=function(){var a=D(this);return a[b].apply(a,arguments)}})})}var I=new WeakMap,J=new WeakMap,K=Object.create(null),L=b(),M=Object.defineProperty,N=Object.getOwnPropertyNames,O=Object.getOwnPropertyDescriptor,P={value:void 0,configurable:!0,enumerable:!1,writable:!0};N(window);var Q=/Firefox/.test(navigator.userAgent),R={get:function(){},set:function(a){},configurable:!0,enumerable:!0},S=function(){var a=Object.getOwnPropertyDescriptor(Node.prototype,"nodeType");return a&&!a.get&&!a.set}(),T={get:void 0,configurable:!0,enumerable:!0};a.addForwardingProperties=i,a.assert=c,a.constructorTable=I,a.defineGetter=F,a.defineWrapGetter=G,a.forwardMethodsToWrapper=H,a.isIdentifierName=l,a.isWrapper=w,a.isWrapperFor=t,a.mixin=d,a.nativePrototypeTable=J,a.oneOf=f,a.registerObject=u,a.registerWrapper=r,a.rewrap=E,a.setWrapper=B,a.unsafeUnwrap=A,a.unwrap=z,a.unwrapIfNeeded=C,a.wrap=y,a.wrapIfNeeded=D,a.wrappers=K}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a,b,c){return{index:a,removed:b,addedCount:c}}function c(){}var d=0,e=1,f=2,g=3;c.prototype={calcEditDistances:function(a,b,c,d,e,f){for(var g=f-e+1,h=c-b+1,i=new Array(g),j=0;g>j;j++)i[j]=new Array(h),i[j][0]=j;for(var k=0;h>k;k++)i[0][k]=k;for(var j=1;g>j;j++)for(var k=1;h>k;k++)if(this.equals(a[b+k-1],d[e+j-1]))i[j][k]=i[j-1][k-1];else{var l=i[j-1][k]+1,m=i[j][k-1]+1;i[j][k]=m>l?l:m}return i},spliceOperationsFromEditDistances:function(a){for(var b=a.length-1,c=a[0].length-1,h=a[b][c],i=[];b>0||c>0;)if(0!=b)if(0!=c){var j,k=a[b-1][c-1],l=a[b-1][c],m=a[b][c-1];j=m>l?k>l?l:k:k>m?m:k,j==k?(k==h?i.push(d):(i.push(e),h=k),b--,c--):j==l?(i.push(g),b--,h=l):(i.push(f),c--,h=m)}else i.push(g),b--;else i.push(f),c--;return i.reverse(),i},calcSplices:function(a,c,h,i,j,k){var l=0,m=0,n=Math.min(h-c,k-j);if(0==c&&0==j&&(l=this.sharedPrefix(a,i,n)),h==a.length&&k==i.length&&(m=this.sharedSuffix(a,i,n-l)),c+=l,j+=l,h-=m,k-=m,h-c==0&&k-j==0)return[];if(c==h){for(var o=b(c,[],0);k>j;)o.removed.push(i[j++]);return[o]}if(j==k)return[b(c,[],h-c)];for(var p=this.spliceOperationsFromEditDistances(this.calcEditDistances(a,c,h,i,j,k)),o=void 0,q=[],r=c,s=j,t=0;t<p.length;t++)switch(p[t]){case d:o&&(q.push(o),o=void 0),r++,s++;break;case e:o||(o=b(r,[],0)),o.addedCount++,r++,o.removed.push(i[s]),s++;break;case f:o||(o=b(r,[],0)),o.addedCount++,r++;break;case g:o||(o=b(r,[],0)),o.removed.push(i[s]),s++}return o&&q.push(o),q},sharedPrefix:function(a,b,c){for(var d=0;c>d;d++)if(!this.equals(a[d],b[d]))return d;return c},sharedSuffix:function(a,b,c){for(var d=a.length,e=b.length,f=0;c>f&&this.equals(a[--d],b[--e]);)f++;return f},calculateSplices:function(a,b){return this.calcSplices(a,0,a.length,b,0,b.length)},equals:function(a,b){return a===b}},a.ArraySplice=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(){g=!1;var a=f.slice(0);f=[];for(var b=0;b<a.length;b++)(0,a[b])()}function c(a){f.push(a),g||(g=!0,d(b,0))}var d,e=window.MutationObserver,f=[],g=!1;if(e){var h=1,i=new e(b),j=document.createTextNode(h);i.observe(j,{characterData:!0}),d=function(){h=(h+1)%2,j.data=h}}else d=window.setTimeout;a.setEndOfMicrotask=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){a.scheduled_||(a.scheduled_=!0,o.push(a),p||(k(c),p=!0))}function c(){for(p=!1;o.length;){var a=o;o=[],a.sort(function(a,b){return a.uid_-b.uid_});for(var b=0;b<a.length;b++){var c=a[b];c.scheduled_=!1;var d=c.takeRecords();f(c),d.length&&c.callback_(d,c)}}}function d(a,b){this.type=a,this.target=b,this.addedNodes=new m.NodeList,this.removedNodes=new m.NodeList,this.previousSibling=null,this.nextSibling=null,this.attributeName=null,this.attributeNamespace=null,this.oldValue=null}function e(a,b){for(;a;a=a.parentNode){var c=n.get(a);if(c)for(var d=0;d<c.length;d++){var e=c[d];e.options.subtree&&e.addTransientObserver(b)}}}function f(a){for(var b=0;b<a.nodes_.length;b++){var c=a.nodes_[b],d=n.get(c);if(!d)return;for(var e=0;e<d.length;e++){var f=d[e];f.observer===a&&f.removeTransientObservers()}}}function g(a,c,e){for(var f=Object.create(null),g=Object.create(null),h=a;h;h=h.parentNode){var i=n.get(h);if(i)for(var j=0;j<i.length;j++){var k=i[j],l=k.options;if((h===a||l.subtree)&&("attributes"!==c||l.attributes)&&("attributes"!==c||!l.attributeFilter||null===e.namespace&&-1!==l.attributeFilter.indexOf(e.name))&&("characterData"!==c||l.characterData)&&("childList"!==c||l.childList)){var m=k.observer;f[m.uid_]=m,("attributes"===c&&l.attributeOldValue||"characterData"===c&&l.characterDataOldValue)&&(g[m.uid_]=e.oldValue)}}}for(var o in f){var m=f[o],p=new d(c,a);"name"in e&&"namespace"in e&&(p.attributeName=e.name,p.attributeNamespace=e.namespace),e.addedNodes&&(p.addedNodes=e.addedNodes),e.removedNodes&&(p.removedNodes=e.removedNodes),e.previousSibling&&(p.previousSibling=e.previousSibling),e.nextSibling&&(p.nextSibling=e.nextSibling),void 0!==g[o]&&(p.oldValue=g[o]),b(m),m.records_.push(p)}}function h(a){if(this.childList=!!a.childList,this.subtree=!!a.subtree,"attributes"in a||!("attributeOldValue"in a||"attributeFilter"in a)?this.attributes=!!a.attributes:this.attributes=!0,"characterDataOldValue"in a&&!("characterData"in a)?this.characterData=!0:this.characterData=!!a.characterData,!this.attributes&&(a.attributeOldValue||"attributeFilter"in a)||!this.characterData&&a.characterDataOldValue)throw new TypeError;if(this.characterData=!!a.characterData,this.attributeOldValue=!!a.attributeOldValue,this.characterDataOldValue=!!a.characterDataOldValue,"attributeFilter"in a){if(null==a.attributeFilter||"object"!=typeof a.attributeFilter)throw new TypeError;this.attributeFilter=q.call(a.attributeFilter)}else this.attributeFilter=null}function i(a){this.callback_=a,this.nodes_=[],this.records_=[],this.uid_=++r,this.scheduled_=!1}function j(a,b,c){this.observer=a,this.target=b,this.options=c,this.transientObservedNodes=[]}var k=a.setEndOfMicrotask,l=a.wrapIfNeeded,m=a.wrappers,n=new WeakMap,o=[],p=!1,q=Array.prototype.slice,r=0;i.prototype={constructor:i,observe:function(a,b){a=l(a);var c,d=new h(b),e=n.get(a);e||n.set(a,e=[]);for(var f=0;f<e.length;f++)e[f].observer===this&&(c=e[f],c.removeTransientObservers(),c.options=d);c||(c=new j(this,a,d),e.push(c),this.nodes_.push(a))},disconnect:function(){this.nodes_.forEach(function(a){for(var b=n.get(a),c=0;c<b.length;c++){var d=b[c];if(d.observer===this){b.splice(c,1);break}}},this),this.records_=[]},takeRecords:function(){var a=this.records_;return this.records_=[],a}},j.prototype={addTransientObserver:function(a){if(a!==this.target){b(this.observer),this.transientObservedNodes.push(a);var c=n.get(a);c||n.set(a,c=[]),c.push(this)}},removeTransientObservers:function(){var a=this.transientObservedNodes;this.transientObservedNodes=[];for(var b=0;b<a.length;b++)for(var c=a[b],d=n.get(c),e=0;e<d.length;e++)if(d[e]===this){d.splice(e,1);break}}},a.enqueueMutation=g,a.registerTransientObservers=e,a.wrappers.MutationObserver=i,a.wrappers.MutationRecord=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a,b){this.root=a,this.parent=b}function c(a,b){if(a.treeScope_!==b){a.treeScope_=b;for(var d=a.shadowRoot;d;d=d.olderShadowRoot)d.treeScope_.parent=b;for(var e=a.firstChild;e;e=e.nextSibling)c(e,b)}}function d(c){if(c instanceof a.wrappers.Window,c.treeScope_)return c.treeScope_;var e,f=c.parentNode;return e=f?d(f):new b(c,null),c.treeScope_=e}b.prototype={get renderer(){return this.root instanceof a.wrappers.ShadowRoot?a.getRendererForHost(this.root.host):null},contains:function(a){
-for(;a;a=a.parent)if(a===this)return!0;return!1}},a.TreeScope=b,a.getTreeScope=d,a.setTreeScope=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){return a instanceof T.ShadowRoot}function c(a){return M(a).root}function d(a,d){var h=[],i=a;for(h.push(i);i;){var j=g(i);if(j&&j.length>0){for(var k=0;k<j.length;k++){var m=j[k];if(f(m)){var n=c(m),o=n.olderShadowRoot;o&&h.push(o)}h.push(m)}i=j[j.length-1]}else if(b(i)){if(l(a,i)&&e(d))break;i=i.host,h.push(i)}else i=i.parentNode,i&&h.push(i)}return h}function e(a){if(!a)return!1;switch(a.type){case"abort":case"error":case"select":case"change":case"load":case"reset":case"resize":case"scroll":case"selectstart":return!0}return!1}function f(a){return a instanceof HTMLShadowElement}function g(b){return a.getDestinationInsertionPoints(b)}function h(a,b){if(0===a.length)return b;b instanceof T.Window&&(b=b.document);for(var c=M(b),d=a[0],e=M(d),f=j(c,e),g=0;g<a.length;g++){var h=a[g];if(M(h)===f)return h}return a[a.length-1]}function i(a){for(var b=[];a;a=a.parent)b.push(a);return b}function j(a,b){for(var c=i(a),d=i(b),e=null;c.length>0&&d.length>0;){var f=c.pop(),g=d.pop();if(f!==g)break;e=f}return e}function k(a,b,c){b instanceof T.Window&&(b=b.document);var e,f=M(b),g=M(c),h=d(c,a),e=j(f,g);e||(e=g.root);for(var i=e;i;i=i.parent)for(var k=0;k<h.length;k++){var l=h[k];if(M(l)===i)return l}return null}function l(a,b){return M(a)===M(b)}function m(a){if(!V.get(a)&&(V.set(a,!0),o(S(a),S(a.target)),K)){var b=K;throw K=null,b}}function n(a){switch(a.type){case"load":case"beforeunload":case"unload":return!0}return!1}function o(b,c){if(W.get(b))throw new Error("InvalidStateError");W.set(b,!0),a.renderAllPending();var e,f,g;if(n(b)&&!b.bubbles){var h=c;h instanceof T.Document&&(g=h.defaultView)&&(f=h,e=[])}if(!e)if(c instanceof T.Window)g=c,e=[];else if(e=d(c,b),!n(b)){var h=e[e.length-1];h instanceof T.Document&&(g=h.defaultView)}return ca.set(b,e),p(b,e,g,f)&&q(b,e,g,f)&&r(b,e,g,f),$.set(b,da),Y["delete"](b,null),W["delete"](b),b.defaultPrevented}function p(a,b,c,d){var e=ea;if(c&&!s(c,a,e,b,d))return!1;for(var f=b.length-1;f>0;f--)if(!s(b[f],a,e,b,d))return!1;return!0}function q(a,b,c,d){var e=fa,f=b[0]||c;return s(f,a,e,b,d)}function r(a,b,c,d){for(var e=ga,f=1;f<b.length;f++)if(!s(b[f],a,e,b,d))return;c&&b.length>0&&s(c,a,e,b,d)}function s(a,b,c,d,e){var f=U.get(a);if(!f)return!0;var g=e||h(d,a);if(g===a){if(c===ea)return!0;c===ga&&(c=fa)}else if(c===ga&&!b.bubbles)return!0;if("relatedTarget"in b){var i=R(b),j=i.relatedTarget;if(j){if(j instanceof Object&&j.addEventListener){var l=S(j),m=k(b,a,l);if(m===g)return!0}else m=null;Z.set(b,m)}}$.set(b,c);var n=b.type,o=!1;X.set(b,g),Y.set(b,a),f.depth++;for(var p=0,q=f.length;q>p;p++){var r=f[p];if(r.removed)o=!0;else if(!(r.type!==n||!r.capture&&c===ea||r.capture&&c===ga))try{if("function"==typeof r.handler?r.handler.call(a,b):r.handler.handleEvent(b),aa.get(b))return!1}catch(s){K||(K=s)}}if(f.depth--,o&&0===f.depth){var t=f.slice();f.length=0;for(var p=0;p<t.length;p++)t[p].removed||f.push(t[p])}return!_.get(b)}function t(a,b,c){this.type=a,this.handler=b,this.capture=Boolean(c)}function u(a,b){if(!(a instanceof ha))return S(y(ha,"Event",a,b));var c=a;return ta||"beforeunload"!==c.type||this instanceof z?void P(c,this):new z(c)}function v(a){return a&&a.relatedTarget?Object.create(a,{relatedTarget:{value:R(a.relatedTarget)}}):a}function w(a,b,c){var d=window[a],e=function(b,c){return b instanceof d?void P(b,this):S(y(d,a,b,c))};if(e.prototype=Object.create(b.prototype),c&&N(e.prototype,c),d)try{O(d,e,new d("temp"))}catch(f){O(d,e,document.createEvent(a))}return e}function x(a,b){return function(){arguments[b]=R(arguments[b]);var c=R(this);c[a].apply(c,arguments)}}function y(a,b,c,d){if(ra)return new a(c,v(d));var e=R(document.createEvent(b)),f=qa[b],g=[c];return Object.keys(f).forEach(function(a){var b=null!=d&&a in d?d[a]:f[a];"relatedTarget"===a&&(b=R(b)),g.push(b)}),e["init"+b].apply(e,g),e}function z(a){u.call(this,a)}function A(a){return"function"==typeof a?!0:a&&a.handleEvent}function B(a){switch(a){case"DOMAttrModified":case"DOMAttributeNameChanged":case"DOMCharacterDataModified":case"DOMElementNameChanged":case"DOMNodeInserted":case"DOMNodeInsertedIntoDocument":case"DOMNodeRemoved":case"DOMNodeRemovedFromDocument":case"DOMSubtreeModified":return!0}return!1}function C(a){P(a,this)}function D(a){return a instanceof T.ShadowRoot&&(a=a.host),R(a)}function E(a,b){var c=U.get(a);if(c)for(var d=0;d<c.length;d++)if(!c[d].removed&&c[d].type===b)return!0;return!1}function F(a,b){for(var c=R(a);c;c=c.parentNode)if(E(S(c),b))return!0;return!1}function G(a){L(a,va)}function H(b,c,e,f){a.renderAllPending();var g=S(wa.call(Q(c),e,f));if(!g)return null;var i=d(g,null),j=i.lastIndexOf(b);return-1==j?null:(i=i.slice(0,j),h(i,b))}function I(a){return function(){var b=ba.get(this);return b&&b[a]&&b[a].value||null}}function J(a){var b=a.slice(2);return function(c){var d=ba.get(this);d||(d=Object.create(null),ba.set(this,d));var e=d[a];if(e&&this.removeEventListener(b,e.wrapped,!1),"function"==typeof c){var f=function(b){var d=c.call(this,b);d===!1?b.preventDefault():"onbeforeunload"===a&&"string"==typeof d&&(b.returnValue=d)};this.addEventListener(b,f,!1),d[a]={value:c,wrapped:f}}}}var K,L=a.forwardMethodsToWrapper,M=a.getTreeScope,N=a.mixin,O=a.registerWrapper,P=a.setWrapper,Q=a.unsafeUnwrap,R=a.unwrap,S=a.wrap,T=a.wrappers,U=(new WeakMap,new WeakMap),V=new WeakMap,W=new WeakMap,X=new WeakMap,Y=new WeakMap,Z=new WeakMap,$=new WeakMap,_=new WeakMap,aa=new WeakMap,ba=new WeakMap,ca=new WeakMap,da=0,ea=1,fa=2,ga=3;t.prototype={equals:function(a){return this.handler===a.handler&&this.type===a.type&&this.capture===a.capture},get removed(){return null===this.handler},remove:function(){this.handler=null}};var ha=window.Event;ha.prototype.polymerBlackList_={returnValue:!0,keyLocation:!0},u.prototype={get target(){return X.get(this)},get currentTarget(){return Y.get(this)},get eventPhase(){return $.get(this)},get path(){var a=ca.get(this);return a?a.slice():[]},stopPropagation:function(){_.set(this,!0)},stopImmediatePropagation:function(){_.set(this,!0),aa.set(this,!0)}};var ia=function(){var a=document.createEvent("Event");return a.initEvent("test",!0,!0),a.preventDefault(),a.defaultPrevented}();ia||(u.prototype.preventDefault=function(){this.cancelable&&(Q(this).preventDefault(),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}),O(ha,u,document.createEvent("Event"));var ja=w("UIEvent",u),ka=w("CustomEvent",u),la={get relatedTarget(){var a=Z.get(this);return void 0!==a?a:S(R(this).relatedTarget)}},ma=N({initMouseEvent:x("initMouseEvent",14)},la),na=N({initFocusEvent:x("initFocusEvent",5)},la),oa=w("MouseEvent",ja,ma),pa=w("FocusEvent",ja,na),qa=Object.create(null),ra=function(){try{new window.FocusEvent("focus")}catch(a){return!1}return!0}();if(!ra){var sa=function(a,b,c){if(c){var d=qa[c];b=N(N({},d),b)}qa[a]=b};sa("Event",{bubbles:!1,cancelable:!1}),sa("CustomEvent",{detail:null},"Event"),sa("UIEvent",{view:null,detail:0},"Event"),sa("MouseEvent",{screenX:0,screenY:0,clientX:0,clientY:0,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null},"UIEvent"),sa("FocusEvent",{relatedTarget:null},"UIEvent")}var ta=window.BeforeUnloadEvent;z.prototype=Object.create(u.prototype),N(z.prototype,{get returnValue(){return Q(this).returnValue},set returnValue(a){Q(this).returnValue=a}}),ta&&O(ta,z);var ua=window.EventTarget,va=["addEventListener","removeEventListener","dispatchEvent"];[Node,Window].forEach(function(a){var b=a.prototype;va.forEach(function(a){Object.defineProperty(b,a+"_",{value:b[a]})})}),C.prototype={addEventListener:function(a,b,c){if(A(b)&&!B(a)){var d=new t(a,b,c),e=U.get(this);if(e){for(var f=0;f<e.length;f++)if(d.equals(e[f]))return}else e=[],e.depth=0,U.set(this,e);e.push(d);var g=D(this);g.addEventListener_(a,m,!0)}},removeEventListener:function(a,b,c){c=Boolean(c);var d=U.get(this);if(d){for(var e=0,f=!1,g=0;g<d.length;g++)d[g].type===a&&d[g].capture===c&&(e++,d[g].handler===b&&(f=!0,d[g].remove()));if(f&&1===e){var h=D(this);h.removeEventListener_(a,m,!0)}}},dispatchEvent:function(b){var c=R(b),d=c.type;V.set(c,!1),a.renderAllPending();var e;F(this,d)||(e=function(){},this.addEventListener(d,e,!0));try{return R(this).dispatchEvent_(c)}finally{e&&this.removeEventListener(d,e,!0)}}},ua&&O(ua,C);var wa=document.elementFromPoint;a.elementFromPoint=H,a.getEventHandlerGetter=I,a.getEventHandlerSetter=J,a.wrapEventTargetMethods=G,a.wrappers.BeforeUnloadEvent=z,a.wrappers.CustomEvent=ka,a.wrappers.Event=u,a.wrappers.EventTarget=C,a.wrappers.FocusEvent=pa,a.wrappers.MouseEvent=oa,a.wrappers.UIEvent=ja}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a,b){Object.defineProperty(a,b,p)}function c(a){j(a,this)}function d(){this.length=0,b(this,"length")}function e(a){for(var b=new d,e=0;e<a.length;e++)b[e]=new c(a[e]);return b.length=e,b}function f(a){g.call(this,a)}var g=a.wrappers.UIEvent,h=a.mixin,i=a.registerWrapper,j=a.setWrapper,k=a.unsafeUnwrap,l=a.wrap,m=window.TouchEvent;if(m){var n;try{n=document.createEvent("TouchEvent")}catch(o){return}var p={enumerable:!1};c.prototype={get target(){return l(k(this).target)}};var q={configurable:!0,enumerable:!0,get:null};["clientX","clientY","screenX","screenY","pageX","pageY","identifier","webkitRadiusX","webkitRadiusY","webkitRotationAngle","webkitForce"].forEach(function(a){q.get=function(){return k(this)[a]},Object.defineProperty(c.prototype,a,q)}),d.prototype={item:function(a){return this[a]}},f.prototype=Object.create(g.prototype),h(f.prototype,{get touches(){return e(k(this).touches)},get targetTouches(){return e(k(this).targetTouches)},get changedTouches(){return e(k(this).changedTouches)},initTouchEvent:function(){throw new Error("Not implemented")}}),i(m,f,n),a.wrappers.Touch=c,a.wrappers.TouchEvent=f,a.wrappers.TouchList=d}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a,b){Object.defineProperty(a,b,h)}function c(){this.length=0,b(this,"length")}function d(a){if(null==a)return a;for(var b=new c,d=0,e=a.length;e>d;d++)b[d]=g(a[d]);return b.length=e,b}function e(a,b){a.prototype[b]=function(){return d(f(this)[b].apply(f(this),arguments))}}var f=a.unsafeUnwrap,g=a.wrap,h={enumerable:!1};c.prototype={item:function(a){return this[a]}},b(c.prototype,"item"),a.wrappers.NodeList=c,a.addWrapNodeListMethod=e,a.wrapNodeList=d}(window.ShadowDOMPolyfill),function(a){"use strict";a.wrapHTMLCollection=a.wrapNodeList,a.wrappers.HTMLCollection=a.wrappers.NodeList}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){A(a instanceof w)}function c(a){var b=new y;return b[0]=a,b.length=1,b}function d(a,b,c){C(b,"childList",{removedNodes:c,previousSibling:a.previousSibling,nextSibling:a.nextSibling})}function e(a,b){C(a,"childList",{removedNodes:b})}function f(a,b,d,e){if(a instanceof DocumentFragment){var f=h(a);P=!0;for(var g=f.length-1;g>=0;g--)a.removeChild(f[g]),f[g].parentNode_=b;P=!1;for(var g=0;g<f.length;g++)f[g].previousSibling_=f[g-1]||d,f[g].nextSibling_=f[g+1]||e;return d&&(d.nextSibling_=f[0]),e&&(e.previousSibling_=f[f.length-1]),f}var f=c(a),i=a.parentNode;return i&&i.removeChild(a),a.parentNode_=b,a.previousSibling_=d,a.nextSibling_=e,d&&(d.nextSibling_=a),e&&(e.previousSibling_=a),f}function g(a){if(a instanceof DocumentFragment)return h(a);var b=c(a),e=a.parentNode;return e&&d(a,e,b),b}function h(a){for(var b=new y,c=0,d=a.firstChild;d;d=d.nextSibling)b[c++]=d;return b.length=c,e(a,b),b}function i(a){return a}function j(a,b){I(a,b),a.nodeIsInserted_()}function k(a,b){for(var c=D(b),d=0;d<a.length;d++)j(a[d],c)}function l(a){I(a,new z(a,null))}function m(a){for(var b=0;b<a.length;b++)l(a[b])}function n(a,b){var c=a.nodeType===w.DOCUMENT_NODE?a:a.ownerDocument;c!==b.ownerDocument&&c.adoptNode(b)}function o(b,c){if(c.length){var d=b.ownerDocument;if(d!==c[0].ownerDocument)for(var e=0;e<c.length;e++)a.adoptNodeNoRemove(c[e],d)}}function p(a,b){o(a,b);var c=b.length;if(1===c)return K(b[0]);for(var d=K(a.ownerDocument.createDocumentFragment()),e=0;c>e;e++)d.appendChild(K(b[e]));return d}function q(a){if(void 0!==a.firstChild_)for(var b=a.firstChild_;b;){var c=b;b=b.nextSibling_,c.parentNode_=c.previousSibling_=c.nextSibling_=void 0}a.firstChild_=a.lastChild_=void 0}function r(a){if(a.invalidateShadowRenderer()){for(var b=a.firstChild;b;){A(b.parentNode===a);var c=b.nextSibling,d=K(b),e=d.parentNode;e&&X.call(e,d),b.previousSibling_=b.nextSibling_=b.parentNode_=null,b=c}a.firstChild_=a.lastChild_=null}else for(var c,f=K(a),g=f.firstChild;g;)c=g.nextSibling,X.call(f,g),g=c}function s(a){var b=a.parentNode;return b&&b.invalidateShadowRenderer()}function t(a){for(var b,c=0;c<a.length;c++)b=a[c],b.parentNode.removeChild(b)}function u(a,b,c){var d;if(d=M(c?Q.call(c,J(a),!1):R.call(J(a),!1)),b){for(var e=a.firstChild;e;e=e.nextSibling)d.appendChild(u(e,!0,c));if(a instanceof O.HTMLTemplateElement)for(var f=d.content,e=a.content.firstChild;e;e=e.nextSibling)f.appendChild(u(e,!0,c))}return d}function v(a,b){if(!b||D(a)!==D(b))return!1;for(var c=b;c;c=c.parentNode)if(c===a)return!0;return!1}function w(a){A(a instanceof S),x.call(this,a),this.parentNode_=void 0,this.firstChild_=void 0,this.lastChild_=void 0,this.nextSibling_=void 0,this.previousSibling_=void 0,this.treeScope_=void 0}var x=a.wrappers.EventTarget,y=a.wrappers.NodeList,z=a.TreeScope,A=a.assert,B=a.defineWrapGetter,C=a.enqueueMutation,D=a.getTreeScope,E=a.isWrapper,F=a.mixin,G=a.registerTransientObservers,H=a.registerWrapper,I=a.setTreeScope,J=a.unsafeUnwrap,K=a.unwrap,L=a.unwrapIfNeeded,M=a.wrap,N=a.wrapIfNeeded,O=a.wrappers,P=!1,Q=document.importNode,R=window.Node.prototype.cloneNode,S=window.Node,T=window.DocumentFragment,U=(S.prototype.appendChild,S.prototype.compareDocumentPosition),V=S.prototype.isEqualNode,W=S.prototype.insertBefore,X=S.prototype.removeChild,Y=S.prototype.replaceChild,Z=/Trident|Edge/.test(navigator.userAgent),$=Z?function(a,b){try{X.call(a,b)}catch(c){if(!(a instanceof T))throw c}}:function(a,b){X.call(a,b)};w.prototype=Object.create(x.prototype),F(w.prototype,{appendChild:function(a){return this.insertBefore(a,null)},insertBefore:function(a,c){b(a);var d;c?E(c)?d=K(c):(d=c,c=M(d)):(c=null,d=null),c&&A(c.parentNode===this);var e,h=c?c.previousSibling:this.lastChild,i=!this.invalidateShadowRenderer()&&!s(a);if(e=i?g(a):f(a,this,h,c),i)n(this,a),q(this),W.call(J(this),K(a),d);else{h||(this.firstChild_=e[0]),c||(this.lastChild_=e[e.length-1],void 0===this.firstChild_&&(this.firstChild_=this.firstChild));var j=d?d.parentNode:J(this);j?W.call(j,p(this,e),d):o(this,e)}return C(this,"childList",{addedNodes:e,nextSibling:c,previousSibling:h}),k(e,this),a},removeChild:function(a){if(b(a),a.parentNode!==this){for(var d=!1,e=(this.childNodes,this.firstChild);e;e=e.nextSibling)if(e===a){d=!0;break}if(!d)throw new Error("NotFoundError")}var f=K(a),g=a.nextSibling,h=a.previousSibling;if(this.invalidateShadowRenderer()){var i=this.firstChild,j=this.lastChild,k=f.parentNode;k&&$(k,f),i===a&&(this.firstChild_=g),j===a&&(this.lastChild_=h),h&&(h.nextSibling_=g),g&&(g.previousSibling_=h),a.previousSibling_=a.nextSibling_=a.parentNode_=void 0}else q(this),$(J(this),f);return P||C(this,"childList",{removedNodes:c(a),nextSibling:g,previousSibling:h}),G(this,a),a},replaceChild:function(a,d){b(a);var e;if(E(d)?e=K(d):(e=d,d=M(e)),d.parentNode!==this)throw new Error("NotFoundError");var h,i=d.nextSibling,j=d.previousSibling,m=!this.invalidateShadowRenderer()&&!s(a);return m?h=g(a):(i===a&&(i=a.nextSibling),h=f(a,this,j,i)),m?(n(this,a),q(this),Y.call(J(this),K(a),e)):(this.firstChild===d&&(this.firstChild_=h[0]),this.lastChild===d&&(this.lastChild_=h[h.length-1]),d.previousSibling_=d.nextSibling_=d.parentNode_=void 0,e.parentNode&&Y.call(e.parentNode,p(this,h),e)),C(this,"childList",{addedNodes:h,removedNodes:c(d),nextSibling:i,previousSibling:j}),l(d),k(h,this),d},nodeIsInserted_:function(){for(var a=this.firstChild;a;a=a.nextSibling)a.nodeIsInserted_()},hasChildNodes:function(){return null!==this.firstChild},get parentNode(){return void 0!==this.parentNode_?this.parentNode_:M(J(this).parentNode)},get firstChild(){return void 0!==this.firstChild_?this.firstChild_:M(J(this).firstChild)},get lastChild(){return void 0!==this.lastChild_?this.lastChild_:M(J(this).lastChild)},get nextSibling(){return void 0!==this.nextSibling_?this.nextSibling_:M(J(this).nextSibling)},get previousSibling(){return void 0!==this.previousSibling_?this.previousSibling_:M(J(this).previousSibling)},get parentElement(){for(var a=this.parentNode;a&&a.nodeType!==w.ELEMENT_NODE;)a=a.parentNode;return a},get textContent(){for(var a="",b=this.firstChild;b;b=b.nextSibling)b.nodeType!=w.COMMENT_NODE&&(a+=b.textContent);return a},set textContent(a){null==a&&(a="");var b=i(this.childNodes);if(this.invalidateShadowRenderer()){if(r(this),""!==a){var c=J(this).ownerDocument.createTextNode(a);this.appendChild(c)}}else q(this),J(this).textContent=a;var d=i(this.childNodes);C(this,"childList",{addedNodes:d,removedNodes:b}),m(b),k(d,this)},get childNodes(){for(var a=new y,b=0,c=this.firstChild;c;c=c.nextSibling)a[b++]=c;return a.length=b,a},cloneNode:function(a){return u(this,a)},contains:function(a){return v(this,N(a))},compareDocumentPosition:function(a){return U.call(J(this),L(a))},isEqualNode:function(a){return V.call(J(this),L(a))},normalize:function(){for(var a,b,c=i(this.childNodes),d=[],e="",f=0;f<c.length;f++)b=c[f],b.nodeType===w.TEXT_NODE?a||b.data.length?a?(e+=b.data,d.push(b)):a=b:this.removeChild(b):(a&&d.length&&(a.data+=e,t(d)),d=[],e="",a=null,b.childNodes.length&&b.normalize());a&&d.length&&(a.data+=e,t(d))}}),B(w,"ownerDocument"),H(S,w,document.createDocumentFragment()),delete w.prototype.querySelector,delete w.prototype.querySelectorAll,w.prototype=F(Object.create(x.prototype),w.prototype),a.cloneNode=u,a.nodeWasAdded=j,a.nodeWasRemoved=l,a.nodesWereAdded=k,a.nodesWereRemoved=m,a.originalInsertBefore=W,a.originalRemoveChild=X,a.snapshotNodeList=i,a.wrappers.Node=w}(window.ShadowDOMPolyfill),function(a){"use strict";function b(b,c,d,e){for(var f=null,g=null,h=0,i=b.length;i>h;h++)f=t(b[h]),!e&&(g=r(f).root)&&g instanceof a.wrappers.ShadowRoot||(d[c++]=f);return c}function c(a){return String(a).replace(/\/deep\/|::shadow|>>>/g," ")}function d(a){return String(a).replace(/:host\(([^\s]+)\)/g,"$1").replace(/([^\s]):host/g,"$1").replace(":host","*").replace(/\^|\/shadow\/|\/shadow-deep\/|::shadow|\/deep\/|::content|>>>/g," ")}function e(a,b){for(var c,d=a.firstElementChild;d;){if(d.matches(b))return d;if(c=e(d,b))return c;d=d.nextElementSibling}return null}function f(a,b){return a.matches(b)}function g(a,b,c){var d=a.localName;return d===b||d===c&&a.namespaceURI===E}function h(){return!0}function i(a,b,c){return a.localName===c}function j(a,b){return a.namespaceURI===b}function k(a,b,c){return a.namespaceURI===b&&a.localName===c}function l(a,b,c,d,e,f){for(var g=a.firstElementChild;g;)d(g,e,f)&&(c[b++]=g),b=l(g,b,c,d,e,f),g=g.nextElementSibling;return b}function m(c,d,e,f,g){var h,i=s(this),j=r(this).root;if(j instanceof a.wrappers.ShadowRoot)return l(this,d,e,c,f,null);if(i instanceof C)h=x.call(i,f);else{if(!(i instanceof D))return l(this,d,e,c,f,null);h=w.call(i,f)}return b(h,d,e,g)}function n(c,d,e,f,g){var h,i=s(this),j=r(this).root;if(j instanceof a.wrappers.ShadowRoot)return l(this,d,e,c,f,g);if(i instanceof C)h=z.call(i,f,g);else{if(!(i instanceof D))return l(this,d,e,c,f,g);h=y.call(i,f,g)}return b(h,d,e,!1)}function o(c,d,e,f,g){var h,i=s(this),j=r(this).root;if(j instanceof a.wrappers.ShadowRoot)return l(this,d,e,c,f,g);if(i instanceof C)h=B.call(i,f,g);else{if(!(i instanceof D))return l(this,d,e,c,f,g);h=A.call(i,f,g)}return b(h,d,e,!1)}var p=a.wrappers.HTMLCollection,q=a.wrappers.NodeList,r=a.getTreeScope,s=a.unsafeUnwrap,t=a.wrap,u=document.querySelector,v=document.documentElement.querySelector,w=document.querySelectorAll,x=document.documentElement.querySelectorAll,y=document.getElementsByTagName,z=document.documentElement.getElementsByTagName,A=document.getElementsByTagNameNS,B=document.documentElement.getElementsByTagNameNS,C=window.Element,D=window.HTMLDocument||window.Document,E="http://www.w3.org/1999/xhtml",F={querySelector:function(b){var d=c(b),f=d!==b;b=d;var g,h=s(this),i=r(this).root;if(i instanceof a.wrappers.ShadowRoot)return e(this,b);if(h instanceof C)g=t(v.call(h,b));else{if(!(h instanceof D))return e(this,b);g=t(u.call(h,b))}return g&&!f&&(i=r(g).root)&&i instanceof a.wrappers.ShadowRoot?e(this,b):g},querySelectorAll:function(a){var b=c(a),d=b!==a;a=b;var e=new q;return e.length=m.call(this,f,0,e,a,d),e}},G={matches:function(b){return b=d(b),a.originalMatches.call(s(this),b)}},H={getElementsByTagName:function(a){var b=new p,c="*"===a?h:g;return b.length=n.call(this,c,0,b,a,a.toLowerCase()),b},getElementsByClassName:function(a){return this.querySelectorAll("."+a)},getElementsByTagNameNS:function(a,b){var c=new p,d=null;return d="*"===a?"*"===b?h:i:"*"===b?j:k,c.length=o.call(this,d,0,c,a||null,b),c}};a.GetElementsByInterface=H,a.SelectorsInterface=F,a.MatchesInterface=G}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){for(;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.nextSibling;return a}function c(a){for(;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.previousSibling;return a}var d=a.wrappers.NodeList,e={get firstElementChild(){return b(this.firstChild)},get lastElementChild(){return c(this.lastChild)},get childElementCount(){for(var a=0,b=this.firstElementChild;b;b=b.nextElementSibling)a++;return a},get children(){for(var a=new d,b=0,c=this.firstElementChild;c;c=c.nextElementSibling)a[b++]=c;return a.length=b,a},remove:function(){var a=this.parentNode;a&&a.removeChild(this)}},f={get nextElementSibling(){return b(this.nextSibling)},get previousElementSibling(){return c(this.previousSibling)}},g={getElementById:function(a){return/[ \t\n\r\f]/.test(a)?null:this.querySelector('[id="'+a+'"]')}};a.ChildNodeInterface=f,a.NonElementParentNodeInterface=g,a.ParentNodeInterface=e}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d.call(this,a)}var c=a.ChildNodeInterface,d=a.wrappers.Node,e=a.enqueueMutation,f=a.mixin,g=a.registerWrapper,h=a.unsafeUnwrap,i=window.CharacterData;b.prototype=Object.create(d.prototype),f(b.prototype,{get nodeValue(){return this.data},set nodeValue(a){this.data=a},get textContent(){return this.data},set textContent(a){this.data=a},get data(){return h(this).data},set data(a){var b=h(this).data;e(this,"characterData",{oldValue:b}),h(this).data=a}}),f(b.prototype,c),g(i,b,document.createTextNode("")),a.wrappers.CharacterData=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){return a>>>0}function c(a){d.call(this,a)}var d=a.wrappers.CharacterData,e=(a.enqueueMutation,a.mixin),f=a.registerWrapper,g=window.Text;c.prototype=Object.create(d.prototype),e(c.prototype,{splitText:function(a){a=b(a);var c=this.data;if(a>c.length)throw new Error("IndexSizeError");var d=c.slice(0,a),e=c.slice(a);this.data=d;var f=this.ownerDocument.createTextNode(e);return this.parentNode&&this.parentNode.insertBefore(f,this.nextSibling),f}}),f(g,c,document.createTextNode("")),a.wrappers.Text=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){return f(a).getAttribute("class")}function c(a,b){g(a,"attributes",{name:"class",namespace:null,oldValue:b})}function d(b){a.invalidateRendererBasedOnAttribute(b,"class")}function e(a,e,f){var g=a.ownerElement_;if(null==g)return e.apply(a,f);var h=b(g),i=e.apply(a,f);return b(g)!==h&&(c(g,h),d(g)),i}if(!window.DOMTokenList)return void console.warn("Missing DOMTokenList prototype, please include a compatible classList polyfill such as http://goo.gl/uTcepH.");var f=a.unsafeUnwrap,g=a.enqueueMutation,h=DOMTokenList.prototype.add;DOMTokenList.prototype.add=function(){e(this,h,arguments)};var i=DOMTokenList.prototype.remove;DOMTokenList.prototype.remove=function(){e(this,i,arguments)};var j=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(){return e(this,j,arguments)}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(b,c){var d=b.parentNode;if(d&&d.shadowRoot){var e=a.getRendererForHost(d);e.dependsOnAttribute(c)&&e.invalidate()}}function c(a,b,c){k(a,"attributes",{name:b,namespace:null,oldValue:c})}function d(a){g.call(this,a)}var e=a.ChildNodeInterface,f=a.GetElementsByInterface,g=a.wrappers.Node,h=a.ParentNodeInterface,i=a.SelectorsInterface,j=a.MatchesInterface,k=(a.addWrapNodeListMethod,a.enqueueMutation),l=a.mixin,m=(a.oneOf,a.registerWrapper),n=a.unsafeUnwrap,o=a.wrappers,p=window.Element,q=["matches","mozMatchesSelector","msMatchesSelector","webkitMatchesSelector"].filter(function(a){return p.prototype[a]}),r=q[0],s=p.prototype[r],t=new WeakMap;d.prototype=Object.create(g.prototype),l(d.prototype,{createShadowRoot:function(){var b=new o.ShadowRoot(this);n(this).polymerShadowRoot_=b;var c=a.getRendererForHost(this);return c.invalidate(),b},get shadowRoot(){return n(this).polymerShadowRoot_||null},setAttribute:function(a,d){var e=n(this).getAttribute(a);n(this).setAttribute(a,d),c(this,a,e),b(this,a)},removeAttribute:function(a){var d=n(this).getAttribute(a);n(this).removeAttribute(a),c(this,a,d),b(this,a)},get classList(){var a=t.get(this);if(!a){if(a=n(this).classList,!a)return;a.ownerElement_=this,t.set(this,a)}return a},get className(){return n(this).className},set className(a){this.setAttribute("class",a)},get id(){return n(this).id},set id(a){this.setAttribute("id",a)}}),q.forEach(function(a){"matches"!==a&&(d.prototype[a]=function(a){return this.matches(a)})}),p.prototype.webkitCreateShadowRoot&&(d.prototype.webkitCreateShadowRoot=d.prototype.createShadowRoot),l(d.prototype,e),l(d.prototype,f),l(d.prototype,h),l(d.prototype,i),l(d.prototype,j),m(p,d,document.createElementNS(null,"x")),a.invalidateRendererBasedOnAttribute=b,a.matchesNames=q,a.originalMatches=s,a.wrappers.Element=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){switch(a){case"&":return"&amp;";case"<":return"&lt;";case">":return"&gt;";case'"':return"&quot;";case" ":return"&nbsp;"}}function c(a){return a.replace(B,b)}function d(a){return a.replace(C,b)}function e(a){for(var b={},c=0;c<a.length;c++)b[a[c]]=!0;return b}function f(a){if(a.namespaceURI!==F)return!0;var b=a.ownerDocument.doctype;return b&&b.publicId&&b.systemId}function g(a,b){switch(a.nodeType){case Node.ELEMENT_NODE:for(var e,g=a.tagName.toLowerCase(),i="<"+g,j=a.attributes,k=0;e=j[k];k++)i+=" "+e.name+'="'+c(e.value)+'"';return D[g]?(f(a)&&(i+="/"),i+">"):i+">"+h(a)+"</"+g+">";case Node.TEXT_NODE:var l=a.data;return b&&E[b.localName]?l:d(l);case Node.COMMENT_NODE:return"<!--"+a.data+"-->";default:throw console.error(a),new Error("not implemented")}}function h(a){a instanceof A.HTMLTemplateElement&&(a=a.content);for(var b="",c=a.firstChild;c;c=c.nextSibling)b+=g(c,a);return b}function i(a,b,c){var d=c||"div";a.textContent="";var e=y(a.ownerDocument.createElement(d));e.innerHTML=b;for(var f;f=e.firstChild;)a.appendChild(z(f))}function j(a){p.call(this,a)}function k(a,b){var c=y(a.cloneNode(!1));c.innerHTML=b;for(var d,e=y(document.createDocumentFragment());d=c.firstChild;)e.appendChild(d);return z(e)}function l(b){return function(){return a.renderAllPending(),x(this)[b]}}function m(a){q(j,a,l(a))}function n(b){Object.defineProperty(j.prototype,b,{get:l(b),set:function(c){a.renderAllPending(),x(this)[b]=c},configurable:!0,enumerable:!0})}function o(b){Object.defineProperty(j.prototype,b,{value:function(){return a.renderAllPending(),x(this)[b].apply(x(this),arguments)},configurable:!0,enumerable:!0})}var p=a.wrappers.Element,q=a.defineGetter,r=a.enqueueMutation,s=a.mixin,t=a.nodesWereAdded,u=a.nodesWereRemoved,v=a.registerWrapper,w=a.snapshotNodeList,x=a.unsafeUnwrap,y=a.unwrap,z=a.wrap,A=a.wrappers,B=/[&\u00A0"]/g,C=/[&\u00A0<>]/g,D=e(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),E=e(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]),F="http://www.w3.org/1999/xhtml",G=/MSIE/.test(navigator.userAgent),H=window.HTMLElement,I=window.HTMLTemplateElement;j.prototype=Object.create(p.prototype),s(j.prototype,{get innerHTML(){return h(this)},set innerHTML(a){if(G&&E[this.localName])return void(this.textContent=a);var b=w(this.childNodes);this.invalidateShadowRenderer()?this instanceof A.HTMLTemplateElement?i(this.content,a):i(this,a,this.tagName):!I&&this instanceof A.HTMLTemplateElement?i(this.content,a):x(this).innerHTML=a;var c=w(this.childNodes);r(this,"childList",{addedNodes:c,removedNodes:b}),u(b),t(c,this)},get outerHTML(){return g(this,this.parentNode)},set outerHTML(a){var b=this.parentNode;if(b){b.invalidateShadowRenderer();var c=k(b,a);b.replaceChild(c,this)}},insertAdjacentHTML:function(a,b){var c,d;switch(String(a).toLowerCase()){case"beforebegin":c=this.parentNode,d=this;break;case"afterend":c=this.parentNode,d=this.nextSibling;break;case"afterbegin":c=this,d=this.firstChild;break;case"beforeend":c=this,d=null;break;default:return}var e=k(c,b);c.insertBefore(e,d)},get hidden(){return this.hasAttribute("hidden")},set hidden(a){a?this.setAttribute("hidden",""):this.removeAttribute("hidden")}}),["clientHeight","clientLeft","clientTop","clientWidth","offsetHeight","offsetLeft","offsetTop","offsetWidth","scrollHeight","scrollWidth"].forEach(m),["scrollLeft","scrollTop"].forEach(n),["focus","getBoundingClientRect","getClientRects","scrollIntoView"].forEach(o),v(H,j,document.createElement("b")),a.wrappers.HTMLElement=j,a.getInnerHTML=h,a.setInnerHTML=i}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.unsafeUnwrap,g=a.wrap,h=window.HTMLCanvasElement;b.prototype=Object.create(c.prototype),d(b.prototype,{getContext:function(){var a=f(this).getContext.apply(f(this),arguments);return a&&g(a)}}),e(h,b,document.createElement("canvas")),a.wrappers.HTMLCanvasElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=window.HTMLContentElement;b.prototype=Object.create(c.prototype),d(b.prototype,{constructor:b,get select(){return this.getAttribute("select")},set select(a){this.setAttribute("select",a)},setAttribute:function(a,b){c.prototype.setAttribute.call(this,a,b),"select"===String(a).toLowerCase()&&this.invalidateShadowRenderer(!0)}}),f&&e(f,b),a.wrappers.HTMLContentElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.wrapHTMLCollection,g=a.unwrap,h=window.HTMLFormElement;b.prototype=Object.create(c.prototype),d(b.prototype,{get elements(){return f(g(this).elements)}}),e(h,b,document.createElement("form")),a.wrappers.HTMLFormElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d.call(this,a)}function c(a,b){if(!(this instanceof c))throw new TypeError("DOM object constructor cannot be called as a function.");var e=f(document.createElement("img"));d.call(this,e),g(e,this),void 0!==a&&(e.width=a),void 0!==b&&(e.height=b)}var d=a.wrappers.HTMLElement,e=a.registerWrapper,f=a.unwrap,g=a.rewrap,h=window.HTMLImageElement;b.prototype=Object.create(d.prototype),e(h,b,document.createElement("img")),c.prototype=b.prototype,a.wrappers.HTMLImageElement=b,a.wrappers.Image=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=(a.mixin,a.wrappers.NodeList,a.registerWrapper),e=window.HTMLShadowElement;b.prototype=Object.create(c.prototype),b.prototype.constructor=b,e&&d(e,b),a.wrappers.HTMLShadowElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){if(!a.defaultView)return a;var b=l.get(a);if(!b){for(b=a.implementation.createHTMLDocument("");b.lastChild;)b.removeChild(b.lastChild);
-l.set(a,b)}return b}function c(a){for(var c,d=b(a.ownerDocument),e=i(d.createDocumentFragment());c=a.firstChild;)e.appendChild(c);return e}function d(a){if(e.call(this,a),!m){var b=c(a);k.set(this,j(b))}}var e=a.wrappers.HTMLElement,f=a.mixin,g=a.registerWrapper,h=a.unsafeUnwrap,i=a.unwrap,j=a.wrap,k=new WeakMap,l=new WeakMap,m=window.HTMLTemplateElement;d.prototype=Object.create(e.prototype),f(d.prototype,{constructor:d,get content(){return m?j(h(this).content):k.get(this)}}),m&&g(m,d),a.wrappers.HTMLTemplateElement=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.registerWrapper,e=window.HTMLMediaElement;e&&(b.prototype=Object.create(c.prototype),d(e,b,document.createElement("audio")),a.wrappers.HTMLMediaElement=b)}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d.call(this,a)}function c(a){if(!(this instanceof c))throw new TypeError("DOM object constructor cannot be called as a function.");var b=f(document.createElement("audio"));d.call(this,b),g(b,this),b.setAttribute("preload","auto"),void 0!==a&&b.setAttribute("src",a)}var d=a.wrappers.HTMLMediaElement,e=a.registerWrapper,f=a.unwrap,g=a.rewrap,h=window.HTMLAudioElement;h&&(b.prototype=Object.create(d.prototype),e(h,b,document.createElement("audio")),c.prototype=b.prototype,a.wrappers.HTMLAudioElement=b,a.wrappers.Audio=c)}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){return a.replace(/\s+/g," ").trim()}function c(a){e.call(this,a)}function d(a,b,c,f){if(!(this instanceof d))throw new TypeError("DOM object constructor cannot be called as a function.");var g=i(document.createElement("option"));e.call(this,g),h(g,this),void 0!==a&&(g.text=a),void 0!==b&&g.setAttribute("value",b),c===!0&&g.setAttribute("selected",""),g.selected=f===!0}var e=a.wrappers.HTMLElement,f=a.mixin,g=a.registerWrapper,h=a.rewrap,i=a.unwrap,j=a.wrap,k=window.HTMLOptionElement;c.prototype=Object.create(e.prototype),f(c.prototype,{get text(){return b(this.textContent)},set text(a){this.textContent=b(String(a))},get form(){return j(i(this).form)}}),g(k,c,document.createElement("option")),d.prototype=c.prototype,a.wrappers.HTMLOptionElement=c,a.wrappers.Option=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.unwrap,g=a.wrap,h=window.HTMLSelectElement;b.prototype=Object.create(c.prototype),d(b.prototype,{add:function(a,b){"object"==typeof b&&(b=f(b)),f(this).add(f(a),b)},remove:function(a){return void 0===a?void c.prototype.remove.call(this):("object"==typeof a&&(a=f(a)),void f(this).remove(a))},get form(){return g(f(this).form)}}),e(h,b,document.createElement("select")),a.wrappers.HTMLSelectElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.unwrap,g=a.wrap,h=a.wrapHTMLCollection,i=window.HTMLTableElement;b.prototype=Object.create(c.prototype),d(b.prototype,{get caption(){return g(f(this).caption)},createCaption:function(){return g(f(this).createCaption())},get tHead(){return g(f(this).tHead)},createTHead:function(){return g(f(this).createTHead())},createTFoot:function(){return g(f(this).createTFoot())},get tFoot(){return g(f(this).tFoot)},get tBodies(){return h(f(this).tBodies)},createTBody:function(){return g(f(this).createTBody())},get rows(){return h(f(this).rows)},insertRow:function(a){return g(f(this).insertRow(a))}}),e(i,b,document.createElement("table")),a.wrappers.HTMLTableElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.wrapHTMLCollection,g=a.unwrap,h=a.wrap,i=window.HTMLTableSectionElement;b.prototype=Object.create(c.prototype),d(b.prototype,{constructor:b,get rows(){return f(g(this).rows)},insertRow:function(a){return h(g(this).insertRow(a))}}),e(i,b,document.createElement("thead")),a.wrappers.HTMLTableSectionElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.wrapHTMLCollection,g=a.unwrap,h=a.wrap,i=window.HTMLTableRowElement;b.prototype=Object.create(c.prototype),d(b.prototype,{get cells(){return f(g(this).cells)},insertCell:function(a){return h(g(this).insertCell(a))}}),e(i,b,document.createElement("tr")),a.wrappers.HTMLTableRowElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){switch(a.localName){case"content":return new c(a);case"shadow":return new e(a);case"template":return new f(a)}d.call(this,a)}var c=a.wrappers.HTMLContentElement,d=a.wrappers.HTMLElement,e=a.wrappers.HTMLShadowElement,f=a.wrappers.HTMLTemplateElement,g=(a.mixin,a.registerWrapper),h=window.HTMLUnknownElement;b.prototype=Object.create(d.prototype),g(h,b),a.wrappers.HTMLUnknownElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.Element,d=a.wrappers.HTMLElement,e=a.registerWrapper,f=(a.defineWrapGetter,a.unsafeUnwrap),g=a.wrap,h=a.mixin,i="http://www.w3.org/2000/svg",j=window.SVGElement,k=document.createElementNS(i,"title");if(!("classList"in k)){var l=Object.getOwnPropertyDescriptor(c.prototype,"classList");Object.defineProperty(d.prototype,"classList",l),delete c.prototype.classList}b.prototype=Object.create(c.prototype),h(b.prototype,{get ownerSVGElement(){return g(f(this).ownerSVGElement)}}),e(j,b,document.createElementNS(i,"title")),a.wrappers.SVGElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){m.call(this,a)}var c=a.mixin,d=a.registerWrapper,e=a.unwrap,f=a.wrap,g=window.SVGUseElement,h="http://www.w3.org/2000/svg",i=f(document.createElementNS(h,"g")),j=document.createElementNS(h,"use"),k=i.constructor,l=Object.getPrototypeOf(k.prototype),m=l.constructor;b.prototype=Object.create(l),"instanceRoot"in j&&c(b.prototype,{get instanceRoot(){return f(e(this).instanceRoot)},get animatedInstanceRoot(){return f(e(this).animatedInstanceRoot)}}),d(g,b,j),a.wrappers.SVGUseElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.EventTarget,d=a.mixin,e=a.registerWrapper,f=a.unsafeUnwrap,g=a.wrap,h=window.SVGElementInstance;h&&(b.prototype=Object.create(c.prototype),d(b.prototype,{get correspondingElement(){return g(f(this).correspondingElement)},get correspondingUseElement(){return g(f(this).correspondingUseElement)},get parentNode(){return g(f(this).parentNode)},get childNodes(){throw new Error("Not implemented")},get firstChild(){return g(f(this).firstChild)},get lastChild(){return g(f(this).lastChild)},get previousSibling(){return g(f(this).previousSibling)},get nextSibling(){return g(f(this).nextSibling)}}),e(h,b),a.wrappers.SVGElementInstance=b)}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){e(a,this)}var c=a.mixin,d=a.registerWrapper,e=a.setWrapper,f=a.unsafeUnwrap,g=a.unwrap,h=a.unwrapIfNeeded,i=a.wrap,j=window.CanvasRenderingContext2D;c(b.prototype,{get canvas(){return i(f(this).canvas)},drawImage:function(){arguments[0]=h(arguments[0]),f(this).drawImage.apply(f(this),arguments)},createPattern:function(){return arguments[0]=g(arguments[0]),f(this).createPattern.apply(f(this),arguments)}}),d(j,b,document.createElement("canvas").getContext("2d")),a.wrappers.CanvasRenderingContext2D=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){f(a,this)}var c=a.addForwardingProperties,d=a.mixin,e=a.registerWrapper,f=a.setWrapper,g=a.unsafeUnwrap,h=a.unwrapIfNeeded,i=a.wrap,j=window.WebGLRenderingContext;if(j){d(b.prototype,{get canvas(){return i(g(this).canvas)},texImage2D:function(){arguments[5]=h(arguments[5]),g(this).texImage2D.apply(g(this),arguments)},texSubImage2D:function(){arguments[6]=h(arguments[6]),g(this).texSubImage2D.apply(g(this),arguments)}});var k=Object.getPrototypeOf(j.prototype);k!==Object.prototype&&c(k,b.prototype);var l=/WebKit/.test(navigator.userAgent)?{drawingBufferHeight:null,drawingBufferWidth:null}:{};e(j,b,l),a.wrappers.WebGLRenderingContext=b}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.Node,d=a.GetElementsByInterface,e=a.NonElementParentNodeInterface,f=a.ParentNodeInterface,g=a.SelectorsInterface,h=a.mixin,i=a.registerObject,j=a.registerWrapper,k=window.DocumentFragment;b.prototype=Object.create(c.prototype),h(b.prototype,f),h(b.prototype,g),h(b.prototype,d),h(b.prototype,e),j(k,b,document.createDocumentFragment()),a.wrappers.DocumentFragment=b;var l=i(document.createComment(""));a.wrappers.Comment=l}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){var b=l(k(a).ownerDocument.createDocumentFragment());c.call(this,b),i(b,this);var e=a.shadowRoot;o.set(this,e),this.treeScope_=new d(this,g(e||a)),n.set(this,a)}var c=a.wrappers.DocumentFragment,d=a.TreeScope,e=a.elementFromPoint,f=a.getInnerHTML,g=a.getTreeScope,h=a.mixin,i=a.rewrap,j=a.setInnerHTML,k=a.unsafeUnwrap,l=a.unwrap,m=a.wrap,n=new WeakMap,o=new WeakMap;b.prototype=Object.create(c.prototype),h(b.prototype,{constructor:b,get innerHTML(){return f(this)},set innerHTML(a){j(this,a),this.invalidateShadowRenderer()},get olderShadowRoot(){return o.get(this)||null},get host(){return n.get(this)||null},invalidateShadowRenderer:function(){return n.get(this).invalidateShadowRenderer()},elementFromPoint:function(a,b){return e(this,this.ownerDocument,a,b)},getSelection:function(){return document.getSelection()},get activeElement(){var a=l(this).ownerDocument.activeElement;if(!a||!a.nodeType)return null;var b=m(a);if(b===this.host)return null;for(;!this.contains(b)&&!this.host.contains(b);){for(;b.parentNode;)b=b.parentNode;if(!b.host)return null;b=b.host}return b}}),a.wrappers.ShadowRoot=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){var b=l(a).root;return b instanceof n?b.host:null}function c(b,c){if(b.shadowRoot){c=Math.min(b.childNodes.length-1,c);var d=b.childNodes[c];if(d){var e=a.getDestinationInsertionPoints(d);if(e.length>0){var f=e[0].parentNode;f.nodeType==Node.ELEMENT_NODE&&(b=f)}}}return b}function d(a){return a=k(a),b(a)||a}function e(a){g(a,this)}var f=a.registerWrapper,g=a.setWrapper,h=a.unsafeUnwrap,i=a.unwrap,j=a.unwrapIfNeeded,k=a.wrap,l=a.getTreeScope,m=window.Range,n=a.wrappers.ShadowRoot;e.prototype={get startContainer(){return d(h(this).startContainer)},get endContainer(){return d(h(this).endContainer)},get commonAncestorContainer(){return d(h(this).commonAncestorContainer)},setStart:function(a,b){a=c(a,b),h(this).setStart(j(a),b)},setEnd:function(a,b){a=c(a,b),h(this).setEnd(j(a),b)},setStartBefore:function(a){h(this).setStartBefore(j(a))},setStartAfter:function(a){h(this).setStartAfter(j(a))},setEndBefore:function(a){h(this).setEndBefore(j(a))},setEndAfter:function(a){h(this).setEndAfter(j(a))},selectNode:function(a){h(this).selectNode(j(a))},selectNodeContents:function(a){h(this).selectNodeContents(j(a))},compareBoundaryPoints:function(a,b){return h(this).compareBoundaryPoints(a,i(b))},extractContents:function(){return k(h(this).extractContents())},cloneContents:function(){return k(h(this).cloneContents())},insertNode:function(a){h(this).insertNode(j(a))},surroundContents:function(a){h(this).surroundContents(j(a))},cloneRange:function(){return k(h(this).cloneRange())},isPointInRange:function(a,b){return h(this).isPointInRange(j(a),b)},comparePoint:function(a,b){return h(this).comparePoint(j(a),b)},intersectsNode:function(a){return h(this).intersectsNode(j(a))},toString:function(){return h(this).toString()}},m.prototype.createContextualFragment&&(e.prototype.createContextualFragment=function(a){return k(h(this).createContextualFragment(a))}),f(window.Range,e,document.createRange()),a.wrappers.Range=e}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){a.previousSibling_=a.previousSibling,a.nextSibling_=a.nextSibling,a.parentNode_=a.parentNode}function c(c,e,f){var g=H(c),h=H(e),i=f?H(f):null;if(d(e),b(e),f)c.firstChild===f&&(c.firstChild_=f),f.previousSibling_=f.previousSibling;else{c.lastChild_=c.lastChild,c.lastChild===c.firstChild&&(c.firstChild_=c.firstChild);var j=I(g.lastChild);j&&(j.nextSibling_=j.nextSibling)}a.originalInsertBefore.call(g,h,i)}function d(c){var d=H(c),e=d.parentNode;if(e){var f=I(e);b(c),c.previousSibling&&(c.previousSibling.nextSibling_=c),c.nextSibling&&(c.nextSibling.previousSibling_=c),f.lastChild===c&&(f.lastChild_=c),f.firstChild===c&&(f.firstChild_=c),a.originalRemoveChild.call(e,d)}}function e(a){K.set(a,[])}function f(a){var b=K.get(a);return b||K.set(a,b=[]),b}function g(a){for(var b=[],c=0,d=a.firstChild;d;d=d.nextSibling)b[c++]=d;return b}function h(){for(var a=0;a<O.length;a++){var b=O[a],c=b.parentRenderer;c&&c.dirty||b.render()}O=[]}function i(){y=null,h()}function j(a){var b=M.get(a);return b||(b=new n(a),M.set(a,b)),b}function k(a){var b=E(a).root;return b instanceof D?b:null}function l(a){return j(a.host)}function m(a){this.skip=!1,this.node=a,this.childNodes=[]}function n(a){this.host=a,this.dirty=!1,this.invalidateAttributes(),this.associateNode(a)}function o(a){for(var b=[],c=a.firstChild;c;c=c.nextSibling)v(c)?b.push.apply(b,f(c)):b.push(c);return b}function p(a){if(a instanceof B)return a;if(a instanceof A)return null;for(var b=a.firstChild;b;b=b.nextSibling){var c=p(b);if(c)return c}return null}function q(a,b){f(b).push(a);var c=L.get(a);c?c.push(b):L.set(a,[b])}function r(a){return L.get(a)}function s(a){L.set(a,void 0)}function t(a,b){var c=b.getAttribute("select");if(!c)return!0;if(c=c.trim(),!c)return!0;if(!(a instanceof z))return!1;if(!Q.test(c))return!1;try{return a.matches(c)}catch(d){return!1}}function u(a,b){var c=r(b);return c&&c[c.length-1]===a}function v(a){return a instanceof A||a instanceof B}function w(a){return a.shadowRoot}function x(a){for(var b=[],c=a.shadowRoot;c;c=c.olderShadowRoot)b.push(c);return b}var y,z=a.wrappers.Element,A=a.wrappers.HTMLContentElement,B=a.wrappers.HTMLShadowElement,C=a.wrappers.Node,D=a.wrappers.ShadowRoot,E=(a.assert,a.getTreeScope),F=(a.mixin,a.oneOf),G=a.unsafeUnwrap,H=a.unwrap,I=a.wrap,J=a.ArraySplice,K=new WeakMap,L=new WeakMap,M=new WeakMap,N=F(window,["requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout"]),O=[],P=new J;P.equals=function(a,b){return H(a.node)===b},m.prototype={append:function(a){var b=new m(a);return this.childNodes.push(b),b},sync:function(a){if(!this.skip){for(var b=this.node,e=this.childNodes,f=g(H(b)),h=a||new WeakMap,i=P.calculateSplices(e,f),j=0,k=0,l=0,m=0;m<i.length;m++){for(var n=i[m];l<n.index;l++)k++,e[j++].sync(h);for(var o=n.removed.length,p=0;o>p;p++){var q=I(f[k++]);h.get(q)||d(q)}for(var r=n.addedCount,s=f[k]&&I(f[k]),p=0;r>p;p++){var t=e[j++],u=t.node;c(b,u,s),h.set(u,!0),t.sync(h)}l+=r}for(var m=l;m<e.length;m++)e[m].sync(h)}}},n.prototype={render:function(a){if(this.dirty){this.invalidateAttributes();var b=this.host;this.distribution(b);var c=a||new m(b);this.buildRenderTree(c,b);var d=!a;d&&c.sync(),this.dirty=!1}},get parentRenderer(){return E(this.host).renderer},invalidate:function(){if(!this.dirty){this.dirty=!0;var a=this.parentRenderer;if(a&&a.invalidate(),O.push(this),y)return;y=window[N](i,0)}},distribution:function(a){this.resetAllSubtrees(a),this.distributionResolution(a)},resetAll:function(a){v(a)?e(a):s(a),this.resetAllSubtrees(a)},resetAllSubtrees:function(a){for(var b=a.firstChild;b;b=b.nextSibling)this.resetAll(b);a.shadowRoot&&this.resetAll(a.shadowRoot),a.olderShadowRoot&&this.resetAll(a.olderShadowRoot)},distributionResolution:function(a){if(w(a)){for(var b=a,c=o(b),d=x(b),e=0;e<d.length;e++)this.poolDistribution(d[e],c);for(var e=d.length-1;e>=0;e--){var f=d[e],g=p(f);if(g){var h=f.olderShadowRoot;h&&(c=o(h));for(var i=0;i<c.length;i++)q(c[i],g)}this.distributionResolution(f)}}for(var j=a.firstChild;j;j=j.nextSibling)this.distributionResolution(j)},poolDistribution:function(a,b){if(!(a instanceof B))if(a instanceof A){var c=a;this.updateDependentAttributes(c.getAttribute("select"));for(var d=!1,e=0;e<b.length;e++){var a=b[e];a&&t(a,c)&&(q(a,c),b[e]=void 0,d=!0)}if(!d)for(var f=c.firstChild;f;f=f.nextSibling)q(f,c)}else for(var f=a.firstChild;f;f=f.nextSibling)this.poolDistribution(f,b)},buildRenderTree:function(a,b){for(var c=this.compose(b),d=0;d<c.length;d++){var e=c[d],f=a.append(e);this.buildRenderTree(f,e)}if(w(b)){var g=j(b);g.dirty=!1}},compose:function(a){for(var b=[],c=a.shadowRoot||a,d=c.firstChild;d;d=d.nextSibling)if(v(d)){this.associateNode(c);for(var e=f(d),g=0;g<e.length;g++){var h=e[g];u(d,h)&&b.push(h)}}else b.push(d);return b},invalidateAttributes:function(){this.attributes=Object.create(null)},updateDependentAttributes:function(a){if(a){var b=this.attributes;/\.\w+/.test(a)&&(b["class"]=!0),/#\w+/.test(a)&&(b.id=!0),a.replace(/\[\s*([^\s=\|~\]]+)/g,function(a,c){b[c]=!0})}},dependsOnAttribute:function(a){return this.attributes[a]},associateNode:function(a){G(a).polymerShadowRenderer_=this}};var Q=/^(:not\()?[*.#[a-zA-Z_|]/;C.prototype.invalidateShadowRenderer=function(a){var b=G(this).polymerShadowRenderer_;return b?(b.invalidate(),!0):!1},A.prototype.getDistributedNodes=B.prototype.getDistributedNodes=function(){return h(),f(this)},z.prototype.getDestinationInsertionPoints=function(){return h(),r(this)||[]},A.prototype.nodeIsInserted_=B.prototype.nodeIsInserted_=function(){this.invalidateShadowRenderer();var a,b=k(this);b&&(a=l(b)),G(this).polymerShadowRenderer_=a,a&&a.invalidate()},a.getRendererForHost=j,a.getShadowTrees=x,a.renderAllPending=h,a.getDestinationInsertionPoints=r,a.visual={insertBefore:c,remove:d}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(b){if(window[b]){d(!a.wrappers[b]);var i=function(a){c.call(this,a)};i.prototype=Object.create(c.prototype),e(i.prototype,{get form(){return h(g(this).form)}}),f(window[b],i,document.createElement(b.slice(4,-7))),a.wrappers[b]=i}}var c=a.wrappers.HTMLElement,d=a.assert,e=a.mixin,f=a.registerWrapper,g=a.unwrap,h=a.wrap,i=["HTMLButtonElement","HTMLFieldSetElement","HTMLInputElement","HTMLKeygenElement","HTMLLabelElement","HTMLLegendElement","HTMLObjectElement","HTMLOutputElement","HTMLTextAreaElement"];i.forEach(b)}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d(a,this)}var c=a.registerWrapper,d=a.setWrapper,e=a.unsafeUnwrap,f=a.unwrap,g=a.unwrapIfNeeded,h=a.wrap,i=window.Selection;b.prototype={get anchorNode(){return h(e(this).anchorNode)},get focusNode(){return h(e(this).focusNode)},addRange:function(a){e(this).addRange(g(a))},collapse:function(a,b){e(this).collapse(g(a),b)},containsNode:function(a,b){return e(this).containsNode(g(a),b)},getRangeAt:function(a){return h(e(this).getRangeAt(a))},removeRange:function(a){e(this).removeRange(f(a))},selectAllChildren:function(a){e(this).selectAllChildren(a instanceof ShadowRoot?e(a.host):g(a))},toString:function(){return e(this).toString()}},i.prototype.extend&&(b.prototype.extend=function(a,b){e(this).extend(g(a),b)}),c(window.Selection,b,window.getSelection()),a.wrappers.Selection=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d(a,this)}var c=a.registerWrapper,d=a.setWrapper,e=a.unsafeUnwrap,f=a.unwrapIfNeeded,g=a.wrap,h=window.TreeWalker;b.prototype={get root(){return g(e(this).root)},get currentNode(){return g(e(this).currentNode)},set currentNode(a){e(this).currentNode=f(a)},get filter(){return e(this).filter},parentNode:function(){return g(e(this).parentNode())},firstChild:function(){return g(e(this).firstChild())},lastChild:function(){return g(e(this).lastChild())},previousSibling:function(){return g(e(this).previousSibling())},previousNode:function(){return g(e(this).previousNode())},nextNode:function(){return g(e(this).nextNode())}},c(h,b),a.wrappers.TreeWalker=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){k.call(this,a),this.treeScope_=new q(this,null)}function c(a){var c=document[a];b.prototype[a]=function(){return E(c.apply(C(this),arguments))}}function d(a,b){H.call(C(b),D(a)),e(a,b)}function e(a,b){a.shadowRoot&&b.adoptNode(a.shadowRoot),a instanceof p&&f(a,b);for(var c=a.firstChild;c;c=c.nextSibling)e(c,b)}function f(a,b){var c=a.olderShadowRoot;c&&b.adoptNode(c)}function g(a){B(a,this)}function h(a,b){var c=document.implementation[b];a.prototype[b]=function(){return E(c.apply(C(this),arguments))}}function i(a,b){var c=document.implementation[b];a.prototype[b]=function(){return c.apply(C(this),arguments)}}var j=a.GetElementsByInterface,k=a.wrappers.Node,l=a.ParentNodeInterface,m=a.NonElementParentNodeInterface,n=a.wrappers.Selection,o=a.SelectorsInterface,p=a.wrappers.ShadowRoot,q=a.TreeScope,r=a.cloneNode,s=a.defineGetter,t=a.defineWrapGetter,u=a.elementFromPoint,v=a.forwardMethodsToWrapper,w=a.matchesNames,x=a.mixin,y=a.registerWrapper,z=a.renderAllPending,A=a.rewrap,B=a.setWrapper,C=a.unsafeUnwrap,D=a.unwrap,E=a.wrap,F=a.wrapEventTargetMethods,G=(a.wrapNodeList,new WeakMap);b.prototype=Object.create(k.prototype),t(b,"documentElement"),t(b,"body"),t(b,"head"),s(b,"activeElement",function(){var a=D(this).activeElement;if(!a||!a.nodeType)return null;for(var b=E(a);!this.contains(b);){for(;b.parentNode;)b=b.parentNode;if(!b.host)return null;b=b.host}return b}),["createComment","createDocumentFragment","createElement","createElementNS","createEvent","createEventNS","createRange","createTextNode"].forEach(c);var H=document.adoptNode,I=document.getSelection;x(b.prototype,{adoptNode:function(a){return a.parentNode&&a.parentNode.removeChild(a),d(a,this),a},elementFromPoint:function(a,b){return u(this,this,a,b)},importNode:function(a,b){return r(a,b,C(this))},getSelection:function(){return z(),new n(I.call(D(this)))},getElementsByName:function(a){return o.querySelectorAll.call(this,"[name="+JSON.stringify(String(a))+"]")}});var J=document.createTreeWalker,K=a.wrappers.TreeWalker;if(b.prototype.createTreeWalker=function(a,b,c,d){var e=null;return c&&(c.acceptNode&&"function"==typeof c.acceptNode?e={acceptNode:function(a){return c.acceptNode(E(a))}}:"function"==typeof c&&(e=function(a){return c(E(a))})),new K(J.call(D(this),D(a),b,e,d))},document.registerElement){var L=document.registerElement;b.prototype.registerElement=function(b,c){function d(a){return a?void B(a,this):f?document.createElement(f,b):document.createElement(b)}var e,f;if(void 0!==c&&(e=c.prototype,f=c["extends"]),e||(e=Object.create(HTMLElement.prototype)),a.nativePrototypeTable.get(e))throw new Error("NotSupportedError");for(var g,h=Object.getPrototypeOf(e),i=[];h&&!(g=a.nativePrototypeTable.get(h));)i.push(h),h=Object.getPrototypeOf(h);if(!g)throw new Error("NotSupportedError");for(var j=Object.create(g),k=i.length-1;k>=0;k--)j=Object.create(j);["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"].forEach(function(a){var b=e[a];b&&(j[a]=function(){E(this)instanceof d||A(this),b.apply(E(this),arguments)})});var l={prototype:j};f&&(l["extends"]=f),d.prototype=e,d.prototype.constructor=d,a.constructorTable.set(j,d),a.nativePrototypeTable.set(e,j);L.call(D(this),b,l);return d},v([window.HTMLDocument||window.Document],["registerElement"])}v([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement,window.HTMLHtmlElement],["appendChild","compareDocumentPosition","contains","getElementsByClassName","getElementsByTagName","getElementsByTagNameNS","insertBefore","querySelector","querySelectorAll","removeChild","replaceChild"]),v([window.HTMLBodyElement,window.HTMLHeadElement,window.HTMLHtmlElement],w),v([window.HTMLDocument||window.Document],["adoptNode","importNode","contains","createComment","createDocumentFragment","createElement","createElementNS","createEvent","createEventNS","createRange","createTextNode","createTreeWalker","elementFromPoint","getElementById","getElementsByName","getSelection"]),x(b.prototype,j),x(b.prototype,l),x(b.prototype,o),x(b.prototype,m),x(b.prototype,{get implementation(){var a=G.get(this);return a?a:(a=new g(D(this).implementation),G.set(this,a),a)},get defaultView(){return E(D(this).defaultView)}}),y(window.Document,b,document.implementation.createHTMLDocument("")),window.HTMLDocument&&y(window.HTMLDocument,b),F([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement]);var M=document.implementation.createDocument;g.prototype.createDocument=function(){return arguments[2]=D(arguments[2]),E(M.apply(C(this),arguments))},h(g,"createDocumentType"),h(g,"createHTMLDocument"),i(g,"hasFeature"),y(window.DOMImplementation,g),v([window.DOMImplementation],["createDocument","createDocumentType","createHTMLDocument","hasFeature"]),a.adoptNodeNoRemove=d,a.wrappers.DOMImplementation=g,a.wrappers.Document=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.EventTarget,d=a.wrappers.Selection,e=a.mixin,f=a.registerWrapper,g=a.renderAllPending,h=a.unwrap,i=a.unwrapIfNeeded,j=a.wrap,k=window.Window,l=window.getComputedStyle,m=window.getDefaultComputedStyle,n=window.getSelection;b.prototype=Object.create(c.prototype),k.prototype.getComputedStyle=function(a,b){return j(this||window).getComputedStyle(i(a),b)},m&&(k.prototype.getDefaultComputedStyle=function(a,b){return j(this||window).getDefaultComputedStyle(i(a),b)}),k.prototype.getSelection=function(){return j(this||window).getSelection()},delete window.getComputedStyle,delete window.getDefaultComputedStyle,delete window.getSelection,["addEventListener","removeEventListener","dispatchEvent"].forEach(function(a){k.prototype[a]=function(){var b=j(this||window);return b[a].apply(b,arguments)},delete window[a]}),e(b.prototype,{getComputedStyle:function(a,b){return g(),l.call(h(this),i(a),b)},getSelection:function(){return g(),new d(n.call(h(this)))},get document(){return j(h(this).document)}}),m&&(b.prototype.getDefaultComputedStyle=function(a,b){return g(),m.call(h(this),i(a),b)}),f(k,b,window),a.wrappers.Window=b}(window.ShadowDOMPolyfill),function(a){"use strict";var b=a.unwrap,c=window.DataTransfer||window.Clipboard,d=c.prototype.setDragImage;d&&(c.prototype.setDragImage=function(a,c,e){d.call(this,b(a),c,e)})}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){var b;b=a instanceof f?a:new f(a&&e(a)),d(b,this)}var c=a.registerWrapper,d=a.setWrapper,e=a.unwrap,f=window.FormData;f&&(c(f,b,new f),a.wrappers.FormData=b)}(window.ShadowDOMPolyfill),function(a){"use strict";var b=a.unwrapIfNeeded,c=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(a){return c.call(this,b(a))}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){var b=c[a],d=window[b];if(d){var e=document.createElement(a),f=e.constructor;window[b]=f}}var c=(a.isWrapperFor,{a:"HTMLAnchorElement",area:"HTMLAreaElement",audio:"HTMLAudioElement",base:"HTMLBaseElement",body:"HTMLBodyElement",br:"HTMLBRElement",button:"HTMLButtonElement",canvas:"HTMLCanvasElement",caption:"HTMLTableCaptionElement",col:"HTMLTableColElement",content:"HTMLContentElement",data:"HTMLDataElement",datalist:"HTMLDataListElement",del:"HTMLModElement",dir:"HTMLDirectoryElement",div:"HTMLDivElement",dl:"HTMLDListElement",embed:"HTMLEmbedElement",fieldset:"HTMLFieldSetElement",font:"HTMLFontElement",form:"HTMLFormElement",frame:"HTMLFrameElement",frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",head:"HTMLHeadElement",hr:"HTMLHRElement",html:"HTMLHtmlElement",iframe:"HTMLIFrameElement",img:"HTMLImageElement",input:"HTMLInputElement",keygen:"HTMLKeygenElement",label:"HTMLLabelElement",legend:"HTMLLegendElement",li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",marquee:"HTMLMarqueeElement",menu:"HTMLMenuElement",menuitem:"HTMLMenuItemElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",progress:"HTMLProgressElement",q:"HTMLQuoteElement",script:"HTMLScriptElement",select:"HTMLSelectElement",shadow:"HTMLShadowElement",source:"HTMLSourceElement",span:"HTMLSpanElement",style:"HTMLStyleElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",template:"HTMLTemplateElement",textarea:"HTMLTextAreaElement",thead:"HTMLTableSectionElement",time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",ul:"HTMLUListElement",video:"HTMLVideoElement"});Object.keys(c).forEach(b),Object.getOwnPropertyNames(a.wrappers).forEach(function(b){window[b]=a.wrappers[b]})}(window.ShadowDOMPolyfill),function(a){function b(a,b){var c="";return Array.prototype.forEach.call(a,function(a){c+=a.textContent+"\n\n"}),b||(c=c.replace(l,"")),c}function c(a){var b=document.createElement("style");return b.textContent=a,b}function d(a){var b=c(a);document.head.appendChild(b);var d=[];if(b.sheet)try{d=b.sheet.cssRules}catch(e){}else console.warn("sheet not found",b);return b.parentNode.removeChild(b),d}function e(){D.initialized=!0,document.body.appendChild(D);var a=D.contentDocument,b=a.createElement("base");b.href=document.baseURI,a.head.appendChild(b)}function f(a){D.initialized||e(),document.body.appendChild(D),a(D.contentDocument),document.body.removeChild(D)}function g(a,b){if(b){var e;if(a.match("@import")&&F){var g=c(a);f(function(a){a.head.appendChild(g.impl),e=Array.prototype.slice.call(g.sheet.cssRules,0),b(e)})}else e=d(a),b(e)}}function h(a){a&&j().appendChild(document.createTextNode(a))}function i(a,b){var d=c(a);d.setAttribute(b,""),d.setAttribute(H,""),document.head.appendChild(d)}function j(){return E||(E=document.createElement("style"),E.setAttribute(H,""),E[H]=!0),E}var k={strictStyling:!1,registry:{},shimStyling:function(a,c,d){var e=this.prepareRoot(a,c,d),f=this.isTypeExtension(d),g=this.makeScopeSelector(c,f),h=b(e,!0);h=this.scopeCssText(h,g),a&&(a.shimmedStyle=h),this.addCssToDocument(h,c)},shimStyle:function(a,b){return this.shimCssText(a.textContent,b)},shimCssText:function(a,b){return a=this.insertDirectives(a),this.scopeCssText(a,b)},makeScopeSelector:function(a,b){return a?b?"[is="+a+"]":a:""},isTypeExtension:function(a){return a&&a.indexOf("-")<0},prepareRoot:function(a,b,c){var d=this.registerRoot(a,b,c);return this.replaceTextInStyles(d.rootStyles,this.insertDirectives),this.removeStyles(a,d.rootStyles),this.strictStyling&&this.applyScopeToContent(a,b),d.scopeStyles},removeStyles:function(a,b){for(var c,d=0,e=b.length;e>d&&(c=b[d]);d++)c.parentNode.removeChild(c)},registerRoot:function(a,b,c){var d=this.registry[b]={root:a,name:b,extendsName:c},e=this.findStyles(a);d.rootStyles=e,d.scopeStyles=d.rootStyles;var f=this.registry[d.extendsName];return f&&(d.scopeStyles=f.scopeStyles.concat(d.scopeStyles)),d},findStyles:function(a){if(!a)return[];var b=a.querySelectorAll("style");return Array.prototype.filter.call(b,function(a){return!a.hasAttribute(I)})},applyScopeToContent:function(a,b){a&&(Array.prototype.forEach.call(a.querySelectorAll("*"),function(a){a.setAttribute(b,"")}),Array.prototype.forEach.call(a.querySelectorAll("template"),function(a){this.applyScopeToContent(a.content,b)},this))},insertDirectives:function(a){return a=this.insertPolyfillDirectivesInCssText(a),this.insertPolyfillRulesInCssText(a)},insertPolyfillDirectivesInCssText:function(a){return a=a.replace(m,function(a,b){return b.slice(0,-2)+"{"}),a.replace(n,function(a,b){return b+" {"})},insertPolyfillRulesInCssText:function(a){return a=a.replace(o,function(a,b){return b.slice(0,-1)}),a.replace(p,function(a,b,c,d){var e=a.replace(b,"").replace(c,"");return d+e})},scopeCssText:function(a,b){var c=this.extractUnscopedRulesFromCssText(a);if(a=this.insertPolyfillHostInCssText(a),a=this.convertColonHost(a),a=this.convertColonHostContext(a),a=this.convertShadowDOMSelectors(a),b){var a,d=this;g(a,function(c){a=d.scopeRules(c,b)})}return a=a+"\n"+c,a.trim()},extractUnscopedRulesFromCssText:function(a){for(var b,c="";b=q.exec(a);)c+=b[1].slice(0,-1)+"\n\n";for(;b=r.exec(a);)c+=b[0].replace(b[2],"").replace(b[1],b[3])+"\n\n";
-return c},convertColonHost:function(a){return this.convertColonRule(a,v,this.colonHostPartReplacer)},convertColonHostContext:function(a){return this.convertColonRule(a,w,this.colonHostContextPartReplacer)},convertColonRule:function(a,b,c){return a.replace(b,function(a,b,d,e){if(b=A,d){for(var f,g=d.split(","),h=[],i=0,j=g.length;j>i&&(f=g[i]);i++)f=f.trim(),h.push(c(b,f,e));return h.join(",")}return b+e})},colonHostContextPartReplacer:function(a,b,c){return b.match(s)?this.colonHostPartReplacer(a,b,c):a+b+c+", "+b+" "+a+c},colonHostPartReplacer:function(a,b,c){return a+b.replace(s,"")+c},convertShadowDOMSelectors:function(a){for(var b=0;b<C.length;b++)a=a.replace(C[b]," ");return a},scopeRules:function(a,b){var c="";return a&&Array.prototype.forEach.call(a,function(a){if(a.selectorText&&a.style&&void 0!==a.style.cssText)c+=this.scopeSelector(a.selectorText,b,this.strictStyling)+" {\n       ",c+=this.propertiesFromRule(a)+"\n}\n\n";else if(a.type===CSSRule.MEDIA_RULE)c+="@media "+a.media.mediaText+" {\n",c+=this.scopeRules(a.cssRules,b),c+="\n}\n\n";else try{a.cssText&&(c+=a.cssText+"\n\n")}catch(d){a.type===CSSRule.KEYFRAMES_RULE&&a.cssRules&&(c+=this.ieSafeCssTextFromKeyFrameRule(a))}},this),c},ieSafeCssTextFromKeyFrameRule:function(a){var b="@keyframes "+a.name+" {";return Array.prototype.forEach.call(a.cssRules,function(a){b+=" "+a.keyText+" {"+a.style.cssText+"}"}),b+=" }"},scopeSelector:function(a,b,c){var d=[],e=a.split(",");return e.forEach(function(a){a=a.trim(),this.selectorNeedsScoping(a,b)&&(a=c&&!a.match(A)?this.applyStrictSelectorScope(a,b):this.applySelectorScope(a,b)),d.push(a)},this),d.join(", ")},selectorNeedsScoping:function(a,b){if(Array.isArray(b))return!0;var c=this.makeScopeMatcher(b);return!a.match(c)},makeScopeMatcher:function(a){return a=a.replace(/\[/g,"\\[").replace(/\]/g,"\\]"),new RegExp("^("+a+")"+x,"m")},applySelectorScope:function(a,b){return Array.isArray(b)?this.applySelectorScopeList(a,b):this.applySimpleSelectorScope(a,b)},applySelectorScopeList:function(a,b){for(var c,d=[],e=0;c=b[e];e++)d.push(this.applySimpleSelectorScope(a,c));return d.join(", ")},applySimpleSelectorScope:function(a,b){return a.match(B)?(a=a.replace(A,b),a.replace(B,b+" ")):b+" "+a},applyStrictSelectorScope:function(a,b){b=b.replace(/\[is=([^\]]*)\]/g,"$1");var c=[" ",">","+","~"],d=a,e="["+b+"]";return c.forEach(function(a){var b=d.split(a);d=b.map(function(a){var b=a.trim().replace(B,"");return b&&c.indexOf(b)<0&&b.indexOf(e)<0&&(a=b.replace(/([^:]*)(:*)(.*)/,"$1"+e+"$2$3")),a}).join(a)}),d},insertPolyfillHostInCssText:function(a){return a.replace(z,t).replace(y,s)},propertiesFromRule:function(a){var b=a.style.cssText;a.style.content&&!a.style.content.match(/['"]+|attr/)&&(b=b.replace(/content:[^;]*;/g,"content: '"+a.style.content+"';"));var c=a.style;for(var d in c)"initial"===c[d]&&(b+=d+": initial; ");return b},replaceTextInStyles:function(a,b){a&&b&&(a instanceof Array||(a=[a]),Array.prototype.forEach.call(a,function(a){a.textContent=b.call(this,a.textContent)},this))},addCssToDocument:function(a,b){a.match("@import")?i(a,b):h(a)}},l=/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,m=/\/\*\s*@polyfill ([^*]*\*+([^\/*][^*]*\*+)*\/)([^{]*?){/gim,n=/polyfill-next-selector[^}]*content\:[\s]*?['"](.*?)['"][;\s]*}([^{]*?){/gim,o=/\/\*\s@polyfill-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim,p=/(polyfill-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,q=/\/\*\s@polyfill-unscoped-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim,r=/(polyfill-unscoped-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,s="-shadowcsshost",t="-shadowcsscontext",u=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",v=new RegExp("("+s+u,"gim"),w=new RegExp("("+t+u,"gim"),x="([>\\s~+[.,{:][\\s\\S]*)?$",y=/\:host/gim,z=/\:host-context/gim,A=s+"-no-combinator",B=new RegExp(s,"gim"),C=(new RegExp(t,"gim"),[/>>>/g,/::shadow/g,/::content/g,/\/deep\//g,/\/shadow\//g,/\/shadow-deep\//g,/\^\^/g,/\^/g]),D=document.createElement("iframe");D.style.display="none";var E,F=navigator.userAgent.match("Chrome"),G="shim-shadowdom",H="shim-shadowdom-css",I="no-shim";if(window.ShadowDOMPolyfill){h("style { display: none !important; }\n");var J=ShadowDOMPolyfill.wrap(document),K=J.querySelector("head");K.insertBefore(j(),K.childNodes[0]),document.addEventListener("DOMContentLoaded",function(){a.urlResolver;if(window.HTMLImports&&!HTMLImports.useNative){var b="link[rel=stylesheet]["+G+"]",c="style["+G+"]";HTMLImports.importer.documentPreloadSelectors+=","+b,HTMLImports.importer.importsPreloadSelectors+=","+b,HTMLImports.parser.documentSelectors=[HTMLImports.parser.documentSelectors,b,c].join(",");var d=HTMLImports.parser.parseGeneric;HTMLImports.parser.parseGeneric=function(a){if(!a[H]){var b=a.__importElement||a;if(!b.hasAttribute(G))return void d.call(this,a);a.__resource&&(b=a.ownerDocument.createElement("style"),b.textContent=a.__resource),HTMLImports.path.resolveUrlsInStyle(b,a.href),b.textContent=k.shimStyle(b),b.removeAttribute(G,""),b.setAttribute(H,""),b[H]=!0,b.parentNode!==K&&(a.parentNode===K?K.replaceChild(b,a):this.addElementToDocument(b)),b.__importParsed=!0,this.markParsingComplete(a),this.parseNext()}};var e=HTMLImports.parser.hasResource;HTMLImports.parser.hasResource=function(a){return"link"===a.localName&&"stylesheet"===a.rel&&a.hasAttribute(G)?a.__resource:e.call(this,a)}}})}a.ShadowCSS=k}(window.WebComponents)),function(a){window.ShadowDOMPolyfill?(window.wrap=ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(a){return a}}(window.WebComponents),function(a){"use strict";function b(a){return void 0!==m[a]}function c(){h.call(this),this._isInvalid=!0}function d(a){return""==a&&c.call(this),a.toLowerCase()}function e(a){var b=a.charCodeAt(0);return b>32&&127>b&&-1==[34,35,60,62,63,96].indexOf(b)?a:encodeURIComponent(a)}function f(a){var b=a.charCodeAt(0);return b>32&&127>b&&-1==[34,35,60,62,96].indexOf(b)?a:encodeURIComponent(a)}function g(a,g,h){function i(a){t.push(a)}var j=g||"scheme start",k=0,l="",r=!1,s=!1,t=[];a:for(;(a[k-1]!=o||0==k)&&!this._isInvalid;){var u=a[k];switch(j){case"scheme start":if(!u||!p.test(u)){if(g){i("Invalid scheme.");break a}l="",j="no scheme";continue}l+=u.toLowerCase(),j="scheme";break;case"scheme":if(u&&q.test(u))l+=u.toLowerCase();else{if(":"!=u){if(g){if(o==u)break a;i("Code point not allowed in scheme: "+u);break a}l="",k=0,j="no scheme";continue}if(this._scheme=l,l="",g)break a;b(this._scheme)&&(this._isRelative=!0),j="file"==this._scheme?"relative":this._isRelative&&h&&h._scheme==this._scheme?"relative or authority":this._isRelative?"authority first slash":"scheme data"}break;case"scheme data":"?"==u?(this._query="?",j="query"):"#"==u?(this._fragment="#",j="fragment"):o!=u&&" "!=u&&"\n"!=u&&"\r"!=u&&(this._schemeData+=e(u));break;case"no scheme":if(h&&b(h._scheme)){j="relative";continue}i("Missing scheme."),c.call(this);break;case"relative or authority":if("/"!=u||"/"!=a[k+1]){i("Expected /, got: "+u),j="relative";continue}j="authority ignore slashes";break;case"relative":if(this._isRelative=!0,"file"!=this._scheme&&(this._scheme=h._scheme),o==u){this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query=h._query,this._username=h._username,this._password=h._password;break a}if("/"==u||"\\"==u)"\\"==u&&i("\\ is an invalid code point."),j="relative slash";else if("?"==u)this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query="?",this._username=h._username,this._password=h._password,j="query";else{if("#"!=u){var v=a[k+1],w=a[k+2];("file"!=this._scheme||!p.test(u)||":"!=v&&"|"!=v||o!=w&&"/"!=w&&"\\"!=w&&"?"!=w&&"#"!=w)&&(this._host=h._host,this._port=h._port,this._username=h._username,this._password=h._password,this._path=h._path.slice(),this._path.pop()),j="relative path";continue}this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query=h._query,this._fragment="#",this._username=h._username,this._password=h._password,j="fragment"}break;case"relative slash":if("/"!=u&&"\\"!=u){"file"!=this._scheme&&(this._host=h._host,this._port=h._port,this._username=h._username,this._password=h._password),j="relative path";continue}"\\"==u&&i("\\ is an invalid code point."),j="file"==this._scheme?"file host":"authority ignore slashes";break;case"authority first slash":if("/"!=u){i("Expected '/', got: "+u),j="authority ignore slashes";continue}j="authority second slash";break;case"authority second slash":if(j="authority ignore slashes","/"!=u){i("Expected '/', got: "+u);continue}break;case"authority ignore slashes":if("/"!=u&&"\\"!=u){j="authority";continue}i("Expected authority, got: "+u);break;case"authority":if("@"==u){r&&(i("@ already seen."),l+="%40"),r=!0;for(var x=0;x<l.length;x++){var y=l[x];if("   "!=y&&"\n"!=y&&"\r"!=y)if(":"!=y||null!==this._password){var z=e(y);null!==this._password?this._password+=z:this._username+=z}else this._password="";else i("Invalid whitespace in authority.")}l=""}else{if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u){k-=l.length,l="",j="host";continue}l+=u}break;case"file host":if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u){2!=l.length||!p.test(l[0])||":"!=l[1]&&"|"!=l[1]?0==l.length?j="relative path start":(this._host=d.call(this,l),l="",j="relative path start"):j="relative path";continue}"  "==u||"\n"==u||"\r"==u?i("Invalid whitespace in file host."):l+=u;break;case"host":case"hostname":if(":"!=u||s){if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u){if(this._host=d.call(this,l),l="",j="relative path start",g)break a;continue}"        "!=u&&"\n"!=u&&"\r"!=u?("["==u?s=!0:"]"==u&&(s=!1),l+=u):i("Invalid code point in host/hostname: "+u)}else if(this._host=d.call(this,l),l="",j="port","hostname"==g)break a;break;case"port":if(/[0-9]/.test(u))l+=u;else{if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u||g){if(""!=l){var A=parseInt(l,10);A!=m[this._scheme]&&(this._port=A+""),l=""}if(g)break a;j="relative path start";continue}"        "==u||"\n"==u||"\r"==u?i("Invalid code point in port: "+u):c.call(this)}break;case"relative path start":if("\\"==u&&i("'\\' not allowed in path."),j="relative path","/"!=u&&"\\"!=u)continue;break;case"relative path":if(o!=u&&"/"!=u&&"\\"!=u&&(g||"?"!=u&&"#"!=u))" "!=u&&"\n"!=u&&"\r"!=u&&(l+=e(u));else{"\\"==u&&i("\\ not allowed in relative path.");var B;(B=n[l.toLowerCase()])&&(l=B),".."==l?(this._path.pop(),"/"!=u&&"\\"!=u&&this._path.push("")):"."==l&&"/"!=u&&"\\"!=u?this._path.push(""):"."!=l&&("file"==this._scheme&&0==this._path.length&&2==l.length&&p.test(l[0])&&"|"==l[1]&&(l=l[0]+":"),this._path.push(l)),l="","?"==u?(this._query="?",j="query"):"#"==u&&(this._fragment="#",j="fragment")}break;case"query":g||"#"!=u?o!=u&&" "!=u&&"\n"!=u&&"\r"!=u&&(this._query+=f(u)):(this._fragment="#",j="fragment");break;case"fragment":o!=u&&"      "!=u&&"\n"!=u&&"\r"!=u&&(this._fragment+=u)}k++}}function h(){this._scheme="",this._schemeData="",this._username="",this._password=null,this._host="",this._port="",this._path=[],this._query="",this._fragment="",this._isInvalid=!1,this._isRelative=!1}function i(a,b){void 0===b||b instanceof i||(b=new i(String(b))),this._url=a,h.call(this);var c=a.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g,"");g.call(this,c,null,b)}var j=!1;if(!a.forceJURL)try{var k=new URL("b","http://a");k.pathname="c%20d",j="http://a/c%20d"===k.href}catch(l){}if(!j){var m=Object.create(null);m.ftp=21,m.file=0,m.gopher=70,m.http=80,m.https=443,m.ws=80,m.wss=443;var n=Object.create(null);n["%2e"]=".",n[".%2e"]="..",n["%2e."]="..",n["%2e%2e"]="..";var o=void 0,p=/[a-zA-Z]/,q=/[a-zA-Z0-9\+\-\.]/;i.prototype={toString:function(){return this.href},get href(){if(this._isInvalid)return this._url;var a="";return(""!=this._username||null!=this._password)&&(a=this._username+(null!=this._password?":"+this._password:"")+"@"),this.protocol+(this._isRelative?"//"+a+this.host:"")+this.pathname+this._query+this._fragment},set href(a){h.call(this),g.call(this,a)},get protocol(){return this._scheme+":"},set protocol(a){this._isInvalid||g.call(this,a+":","scheme start")},get host(){return this._isInvalid?"":this._port?this._host+":"+this._port:this._host},set host(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"host")},get hostname(){return this._host},set hostname(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"hostname")},get port(){return this._port},set port(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"port")},get pathname(){return this._isInvalid?"":this._isRelative?"/"+this._path.join("/"):this._schemeData},set pathname(a){!this._isInvalid&&this._isRelative&&(this._path=[],g.call(this,a,"relative path start"))},get search(){return this._isInvalid||!this._query||"?"==this._query?"":this._query},set search(a){!this._isInvalid&&this._isRelative&&(this._query="?","?"==a[0]&&(a=a.slice(1)),g.call(this,a,"query"))},get hash(){return this._isInvalid||!this._fragment||"#"==this._fragment?"":this._fragment},set hash(a){this._isInvalid||(this._fragment="#","#"==a[0]&&(a=a.slice(1)),g.call(this,a,"fragment"))},get origin(){var a;if(this._isInvalid||!this._scheme)return"";switch(this._scheme){case"data":case"file":case"javascript":case"mailto":return"null"}return a=this.host,a?this._scheme+"://"+a:""}};var r=a.URL;r&&(i.createObjectURL=function(a){return r.createObjectURL.apply(r,arguments)},i.revokeObjectURL=function(a){r.revokeObjectURL(a)}),a.URL=i}}(self),function(a){function b(a){u.push(a),t||(t=!0,p(d))}function c(a){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(a)||a}function d(){t=!1;var a=u;u=[],a.sort(function(a,b){return a.uid_-b.uid_});var b=!1;a.forEach(function(a){var c=a.takeRecords();e(a),c.length&&(a.callback_(c,a),b=!0)}),b&&d()}function e(a){a.nodes_.forEach(function(b){var c=q.get(b);c&&c.forEach(function(b){b.observer===a&&b.removeTransientObservers()})})}function f(a,b){for(var c=a;c;c=c.parentNode){var d=q.get(c);if(d)for(var e=0;e<d.length;e++){var f=d[e],g=f.options;if(c===a||g.subtree){var h=b(g);h&&f.enqueue(h)}}}}function g(a){this.callback_=a,this.nodes_=[],this.records_=[],this.uid_=++v}function h(a,b){this.type=a,this.target=b,this.addedNodes=[],this.removedNodes=[],this.previousSibling=null,this.nextSibling=null,this.attributeName=null,this.attributeNamespace=null,this.oldValue=null}function i(a){var b=new h(a.type,a.target);return b.addedNodes=a.addedNodes.slice(),b.removedNodes=a.removedNodes.slice(),b.previousSibling=a.previousSibling,b.nextSibling=a.nextSibling,b.attributeName=a.attributeName,b.attributeNamespace=a.attributeNamespace,b.oldValue=a.oldValue,b}function j(a,b){return w=new h(a,b)}function k(a){return x?x:(x=i(w),x.oldValue=a,x)}function l(){w=x=void 0}function m(a){return a===x||a===w}function n(a,b){return a===b?a:x&&m(a)?x:null}function o(a,b,c){this.observer=a,this.target=b,this.options=c,this.transientObservedNodes=[]}if(!a.JsMutationObserver){var p,q=new WeakMap;if(/Trident|Edge/.test(navigator.userAgent))p=setTimeout;else if(window.setImmediate)p=window.setImmediate;else{var r=[],s=String(Math.random());window.addEventListener("message",function(a){if(a.data===s){var b=r;r=[],b.forEach(function(a){a()})}}),p=function(a){r.push(a),window.postMessage(s,"*")}}var t=!1,u=[],v=0;g.prototype={observe:function(a,b){if(a=c(a),!b.childList&&!b.attributes&&!b.characterData||b.attributeOldValue&&!b.attributes||b.attributeFilter&&b.attributeFilter.length&&!b.attributes||b.characterDataOldValue&&!b.characterData)throw new SyntaxError;var d=q.get(a);d||q.set(a,d=[]);for(var e,f=0;f<d.length;f++)if(d[f].observer===this){e=d[f],e.removeListeners(),e.options=b;break}e||(e=new o(this,a,b),d.push(e),this.nodes_.push(a)),e.addListeners()},disconnect:function(){this.nodes_.forEach(function(a){for(var b=q.get(a),c=0;c<b.length;c++){var d=b[c];if(d.observer===this){d.removeListeners(),b.splice(c,1);break}}},this),this.records_=[]},takeRecords:function(){var a=this.records_;return this.records_=[],a}};var w,x;o.prototype={enqueue:function(a){var c=this.observer.records_,d=c.length;if(c.length>0){var e=c[d-1],f=n(e,a);if(f)return void(c[d-1]=f)}else b(this.observer);c[d]=a},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(a){var b=this.options;b.attributes&&a.addEventListener("DOMAttrModified",this,!0),b.characterData&&a.addEventListener("DOMCharacterDataModified",this,!0),b.childList&&a.addEventListener("DOMNodeInserted",this,!0),(b.childList||b.subtree)&&a.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(a){var b=this.options;b.attributes&&a.removeEventListener("DOMAttrModified",this,!0),b.characterData&&a.removeEventListener("DOMCharacterDataModified",this,!0),b.childList&&a.removeEventListener("DOMNodeInserted",this,!0),(b.childList||b.subtree)&&a.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(a){if(a!==this.target){this.addListeners_(a),this.transientObservedNodes.push(a);var b=q.get(a);b||q.set(a,b=[]),b.push(this)}},removeTransientObservers:function(){var a=this.transientObservedNodes;this.transientObservedNodes=[],a.forEach(function(a){this.removeListeners_(a);for(var b=q.get(a),c=0;c<b.length;c++)if(b[c]===this){b.splice(c,1);break}},this)},handleEvent:function(a){switch(a.stopImmediatePropagation(),a.type){case"DOMAttrModified":var b=a.attrName,c=a.relatedNode.namespaceURI,d=a.target,e=new j("attributes",d);e.attributeName=b,e.attributeNamespace=c;var g=a.attrChange===MutationEvent.ADDITION?null:a.prevValue;f(d,function(a){return!a.attributes||a.attributeFilter&&a.attributeFilter.length&&-1===a.attributeFilter.indexOf(b)&&-1===a.attributeFilter.indexOf(c)?void 0:a.attributeOldValue?k(g):e});break;case"DOMCharacterDataModified":var d=a.target,e=j("characterData",d),g=a.prevValue;f(d,function(a){return a.characterData?a.characterDataOldValue?k(g):e:void 0});break;case"DOMNodeRemoved":this.addTransientObserver(a.target);case"DOMNodeInserted":var h,i,m=a.target;"DOMNodeInserted"===a.type?(h=[m],i=[]):(h=[],i=[m]);var n=m.previousSibling,o=m.nextSibling,e=j("childList",a.target.parentNode);e.addedNodes=h,e.removedNodes=i,e.previousSibling=n,e.nextSibling=o,f(a.relatedNode,function(a){return a.childList?e:void 0})}l()}},a.JsMutationObserver=g,a.MutationObserver||(a.MutationObserver=g,g._isPolyfilled=!0)}}(self),function(a){"use strict";if(!window.performance){var b=Date.now();window.performance={now:function(){return Date.now()-b}}}window.requestAnimationFrame||(window.requestAnimationFrame=function(){var a=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame;return a?function(b){return a(function(){b(performance.now())})}:function(a){return window.setTimeout(a,1e3/60)}}()),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(){return window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(a){clearTimeout(a)}}());var c=function(){var a=document.createEvent("Event");return a.initEvent("foo",!0,!0),a.preventDefault(),a.defaultPrevented}();if(!c){var d=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(d.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var e=/Trident/.test(navigator.userAgent);if((!window.CustomEvent||e&&"function"!=typeof window.CustomEvent)&&(window.CustomEvent=function(a,b){b=b||{};var c=document.createEvent("CustomEvent");return c.initCustomEvent(a,Boolean(b.bubbles),Boolean(b.cancelable),b.detail),c},window.CustomEvent.prototype=window.Event.prototype),!window.Event||e&&"function"!=typeof window.Event){var f=window.Event;window.Event=function(a,b){b=b||{};var c=document.createEvent("Event");return c.initEvent(a,Boolean(b.bubbles),Boolean(b.cancelable)),c},window.Event.prototype=f.prototype}}(window.WebComponents),window.HTMLImports=window.HTMLImports||{flags:{}},function(a){function b(a,b){b=b||o,d(function(){f(a,b)},b)}function c(a){return"complete"===a.readyState||a.readyState===r}function d(a,b){if(c(b))a&&a();else{var e=function(){("complete"===b.readyState||b.readyState===r)&&(b.removeEventListener(s,e),d(a,b))};b.addEventListener(s,e)}}function e(a){a.target.__loaded=!0}function f(a,b){function c(){i==j&&a&&a({allImports:h,loadedImports:k,errorImports:l})}function d(a){e(a),k.push(this),i++,c()}function f(a){l.push(this),i++,c()}var h=b.querySelectorAll("link[rel=import]"),i=0,j=h.length,k=[],l=[];if(j)for(var m,n=0;j>n&&(m=h[n]);n++)g(m)?(k.push(this),i++,c()):(m.addEventListener("load",d),m.addEventListener("error",f));else c()}function g(a){return l?a.__loaded||a["import"]&&"loading"!==a["import"].readyState:a.__importParsed}function h(a){for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)i(b)&&j(b)}function i(a){return"link"===a.localName&&"import"===a.rel}function j(a){var b=a["import"];b?e({target:a}):(a.addEventListener("load",e),a.addEventListener("error",e))}var k="import",l=Boolean(k in document.createElement("link")),m=Boolean(window.ShadowDOMPolyfill),n=function(a){return m?window.ShadowDOMPolyfill.wrapIfNeeded(a):a},o=n(document),p={get:function(){var a=window.HTMLImports.currentScript||document.currentScript||("complete"!==document.readyState?document.scripts[document.scripts.length-1]:null);return n(a)},configurable:!0};Object.defineProperty(document,"_currentScript",p),Object.defineProperty(o,"_currentScript",p);var q=/Trident/.test(navigator.userAgent),r=q?"complete":"interactive",s="readystatechange";l&&(new MutationObserver(function(a){for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)b.addedNodes&&h(b.addedNodes)}).observe(document.head,{childList:!0}),function(){if("loading"===document.readyState)for(var a,b=document.querySelectorAll("link[rel=import]"),c=0,d=b.length;d>c&&(a=b[c]);c++)j(a)}()),b(function(a){window.HTMLImports.ready=!0,window.HTMLImports.readyTime=(new Date).getTime();var b=o.createEvent("CustomEvent");b.initCustomEvent("HTMLImportsLoaded",!0,!0,a),o.dispatchEvent(b)}),a.IMPORT_LINK_TYPE=k,a.useNative=l,a.rootDocument=o,a.whenReady=b,a.isIE=q}(window.HTMLImports),function(a){var b=[],c=function(a){b.push(a)},d=function(){b.forEach(function(b){b(a)})};a.addModule=c,a.initializeModules=d}(window.HTMLImports),window.HTMLImports.addModule(function(a){var b=/(url\()([^)]*)(\))/g,c=/(@import[\s]+(?!url\())([^;]*)(;)/g,d={resolveUrlsInStyle:function(a,b){var c=a.ownerDocument,d=c.createElement("a");return a.textContent=this.resolveUrlsInCssText(a.textContent,b,d),a},resolveUrlsInCssText:function(a,d,e){var f=this.replaceUrls(a,e,d,b);return f=this.replaceUrls(f,e,d,c)},replaceUrls:function(a,b,c,d){return a.replace(d,function(a,d,e,f){var g=e.replace(/["']/g,"");return c&&(g=new URL(g,c).href),b.href=g,g=b.href,d+"'"+g+"'"+f})}};a.path=d}),window.HTMLImports.addModule(function(a){var b={async:!0,ok:function(a){return a.status>=200&&a.status<300||304===a.status||0===a.status},load:function(c,d,e){var f=new XMLHttpRequest;return(a.flags.debug||a.flags.bust)&&(c+="?"+Math.random()),f.open("GET",c,b.async),f.addEventListener("readystatechange",function(a){if(4===f.readyState){var c=null;try{var g=f.getResponseHeader("Location");g&&(c="/"===g.substr(0,1)?location.origin+g:g)}catch(a){console.error(a.message)}d.call(e,!b.ok(f)&&f,f.response||f.responseText,c)}}),f.send(),f},loadDocument:function(a,b,c){this.load(a,b,c).responseType="document"}};a.xhr=b}),window.HTMLImports.addModule(function(a){var b=a.xhr,c=a.flags,d=function(a,b){this.cache={},this.onload=a,this.oncomplete=b,this.inflight=0,this.pending={}};d.prototype={addNodes:function(a){this.inflight+=a.length;for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)this.require(b);this.checkDone()},addNode:function(a){this.inflight++,this.require(a),this.checkDone()},require:function(a){var b=a.src||a.href;a.__nodeUrl=b,this.dedupe(b,a)||this.fetch(b,a)},dedupe:function(a,b){if(this.pending[a])return this.pending[a].push(b),!0;return this.cache[a]?(this.onload(a,b,this.cache[a]),this.tail(),!0):(this.pending[a]=[b],!1)},fetch:function(a,d){if(c.load&&console.log("fetch",a,d),a)if(a.match(/^data:/)){var e=a.split(","),f=e[0],g=e[1];g=f.indexOf(";base64")>-1?atob(g):decodeURIComponent(g),setTimeout(function(){this.receive(a,d,null,g)}.bind(this),0)}else{var h=function(b,c,e){this.receive(a,d,b,c,e)}.bind(this);b.load(a,h)}else setTimeout(function(){this.receive(a,d,{error:"href must be specified"},null)}.bind(this),0)},receive:function(a,b,c,d,e){this.cache[a]=d;for(var f,g=this.pending[a],h=0,i=g.length;i>h&&(f=g[h]);h++)this.onload(a,f,d,c,e),this.tail();this.pending[a]=null},tail:function(){--this.inflight,this.checkDone()},checkDone:function(){this.inflight||this.oncomplete()}},a.Loader=d}),window.HTMLImports.addModule(function(a){var b=function(a){this.addCallback=a,this.mo=new MutationObserver(this.handler.bind(this))};b.prototype={handler:function(a){for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)"childList"===b.type&&b.addedNodes.length&&this.addedNodes(b.addedNodes)},addedNodes:function(a){this.addCallback&&this.addCallback(a);for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)b.children&&b.children.length&&this.addedNodes(b.children)},observe:function(a){this.mo.observe(a,{childList:!0,subtree:!0})}},a.Observer=b}),window.HTMLImports.addModule(function(a){function b(a){return"link"===a.localName&&a.rel===k}function c(a){var b=d(a);return"data:text/javascript;charset=utf-8,"+encodeURIComponent(b)}function d(a){return a.textContent+e(a)}function e(a){var b=a.ownerDocument;b.__importedScripts=b.__importedScripts||0;var c=a.ownerDocument.baseURI,d=b.__importedScripts?"-"+b.__importedScripts:"";return b.__importedScripts++,"\n//# sourceURL="+c+d+".js\n"}function f(a){var b=a.ownerDocument.createElement("style");return b.textContent=a.textContent,g.resolveUrlsInStyle(b),b}var g=a.path,h=a.rootDocument,i=a.flags,j=a.isIE,k=a.IMPORT_LINK_TYPE,l="link[rel="+k+"]",m={documentSelectors:l,importsSelectors:[l,"link[rel=stylesheet]:not([type])","style:not([type])","script:not([type])",'script[type="application/javascript"]','script[type="text/javascript"]'].join(","),map:{link:"parseLink",script:"parseScript",style:"parseStyle"},dynamicElements:[],parseNext:function(){var a=this.nextToParse();a&&this.parse(a)},parse:function(a){if(this.isParsed(a))return void(i.parse&&console.log("[%s] is already parsed",a.localName));var b=this[this.map[a.localName]];b&&(this.markParsing(a),b.call(this,a))},parseDynamic:function(a,b){this.dynamicElements.push(a),b||this.parseNext()},markParsing:function(a){i.parse&&console.log("parsing",a),this.parsingElement=a},markParsingComplete:function(a){a.__importParsed=!0,this.markDynamicParsingComplete(a),a.__importElement&&(a.__importElement.__importParsed=!0,this.markDynamicParsingComplete(a.__importElement)),this.parsingElement=null,i.parse&&console.log("completed",a)},markDynamicParsingComplete:function(a){var b=this.dynamicElements.indexOf(a);b>=0&&this.dynamicElements.splice(b,1)},parseImport:function(a){if(a["import"]=a.__doc,window.HTMLImports.__importsParsingHook&&window.HTMLImports.__importsParsingHook(a),a["import"]&&(a["import"].__importParsed=!0),this.markParsingComplete(a),a.__resource&&!a.__error?a.dispatchEvent(new CustomEvent("load",{bubbles:!1})):a.dispatchEvent(new CustomEvent("error",{bubbles:!1})),a.__pending)for(var b;a.__pending.length;)b=a.__pending.shift(),b&&b({target:a});this.parseNext()},parseLink:function(a){b(a)?this.parseImport(a):(a.href=a.href,this.parseGeneric(a))},parseStyle:function(a){var b=a;a=f(a),b.__appliedElement=a,a.__importElement=b,this.parseGeneric(a)},parseGeneric:function(a){this.trackElement(a),this.addElementToDocument(a)},rootImportForElement:function(a){for(var b=a;b.ownerDocument.__importLink;)b=b.ownerDocument.__importLink;return b},addElementToDocument:function(a){var b=this.rootImportForElement(a.__importElement||a);b.parentNode.insertBefore(a,b)},trackElement:function(a,b){var c=this,d=function(e){a.removeEventListener("load",d),a.removeEventListener("error",d),b&&b(e),c.markParsingComplete(a),c.parseNext()};if(a.addEventListener("load",d),a.addEventListener("error",d),j&&"style"===a.localName){var e=!1;if(-1==a.textContent.indexOf("@import"))e=!0;else if(a.sheet){e=!0;for(var f,g=a.sheet.cssRules,h=g?g.length:0,i=0;h>i&&(f=g[i]);i++)f.type===CSSRule.IMPORT_RULE&&(e=e&&Boolean(f.styleSheet))}e&&setTimeout(function(){a.dispatchEvent(new CustomEvent("load",{bubbles:!1}))})}},parseScript:function(b){var d=document.createElement("script");d.__importElement=b,d.src=b.src?b.src:c(b),a.currentScript=b,this.trackElement(d,function(b){d.parentNode&&d.parentNode.removeChild(d),a.currentScript=null}),this.addElementToDocument(d)},nextToParse:function(){return this._mayParse=[],!this.parsingElement&&(this.nextToParseInDoc(h)||this.nextToParseDynamic())},nextToParseInDoc:function(a,c){if(a&&this._mayParse.indexOf(a)<0){this._mayParse.push(a);for(var d,e=a.querySelectorAll(this.parseSelectorsForNode(a)),f=0,g=e.length;g>f&&(d=e[f]);f++)if(!this.isParsed(d))return this.hasResource(d)?b(d)?this.nextToParseInDoc(d.__doc,d):d:void 0}return c},nextToParseDynamic:function(){return this.dynamicElements[0]},parseSelectorsForNode:function(a){var b=a.ownerDocument||a;return b===h?this.documentSelectors:this.importsSelectors},isParsed:function(a){return a.__importParsed},needsDynamicParsing:function(a){return this.dynamicElements.indexOf(a)>=0},hasResource:function(a){return b(a)&&void 0===a.__doc?!1:!0}};a.parser=m,a.IMPORT_SELECTOR=l}),window.HTMLImports.addModule(function(a){function b(a){return c(a,g)}function c(a,b){return"link"===a.localName&&a.getAttribute("rel")===b}function d(a){return!!Object.getOwnPropertyDescriptor(a,"baseURI")}function e(a,b){var c=document.implementation.createHTMLDocument(g);c._URL=b;var e=c.createElement("base");e.setAttribute("href",b),c.baseURI||d(c)||Object.defineProperty(c,"baseURI",{value:b});var f=c.createElement("meta");return f.setAttribute("charset","utf-8"),c.head.appendChild(f),c.head.appendChild(e),c.body.innerHTML=a,window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(c),c}var f=a.flags,g=a.IMPORT_LINK_TYPE,h=a.IMPORT_SELECTOR,i=a.rootDocument,j=a.Loader,k=a.Observer,l=a.parser,m={documents:{},documentPreloadSelectors:h,importsPreloadSelectors:[h].join(","),loadNode:function(a){n.addNode(a)},loadSubtree:function(a){var b=this.marshalNodes(a);n.addNodes(b)},marshalNodes:function(a){return a.querySelectorAll(this.loadSelectorsForNode(a))},loadSelectorsForNode:function(a){var b=a.ownerDocument||a;return b===i?this.documentPreloadSelectors:this.importsPreloadSelectors},loaded:function(a,c,d,g,h){if(f.load&&console.log("loaded",a,c),c.__resource=d,c.__error=g,b(c)){var i=this.documents[a];void 0===i&&(i=g?null:e(d,h||a),i&&(i.__importLink=c,this.bootDocument(i)),this.documents[a]=i),c.__doc=i}l.parseNext()},bootDocument:function(a){this.loadSubtree(a),this.observer.observe(a),l.parseNext()},loadedAll:function(){l.parseNext()}},n=new j(m.loaded.bind(m),m.loadedAll.bind(m));if(m.observer=new k,!document.baseURI){var o={get:function(){var a=document.querySelector("base");return a?a.href:window.location.href},configurable:!0};Object.defineProperty(document,"baseURI",o),Object.defineProperty(i,"baseURI",o)}a.importer=m,a.importLoader=n}),window.HTMLImports.addModule(function(a){var b=a.parser,c=a.importer,d={added:function(a){for(var d,e,f,g,h=0,i=a.length;i>h&&(g=a[h]);h++)d||(d=g.ownerDocument,e=b.isParsed(d)),f=this.shouldLoadNode(g),f&&c.loadNode(g),this.shouldParseNode(g)&&e&&b.parseDynamic(g,f)},shouldLoadNode:function(a){return 1===a.nodeType&&e.call(a,c.loadSelectorsForNode(a))},shouldParseNode:function(a){return 1===a.nodeType&&e.call(a,b.parseSelectorsForNode(a))}};c.observer.addCallback=d.added.bind(d);var e=HTMLElement.prototype.matches||HTMLElement.prototype.matchesSelector||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector}),function(a){function b(){window.HTMLImports.importer.bootDocument(d)}var c=a.initializeModules;a.isIE;if(!a.useNative){c();var d=a.rootDocument;"complete"===document.readyState||"interactive"===document.readyState&&!window.attachEvent?b():document.addEventListener("DOMContentLoaded",b);
-}}(window.HTMLImports),window.CustomElements=window.CustomElements||{flags:{}},function(a){var b=a.flags,c=[],d=function(a){c.push(a)},e=function(){c.forEach(function(b){b(a)})};a.addModule=d,a.initializeModules=e,a.hasNative=Boolean(document.registerElement),a.isIE=/Trident/.test(navigator.userAgent),a.useNative=!b.register&&a.hasNative&&!window.ShadowDOMPolyfill&&(!window.HTMLImports||window.HTMLImports.useNative)}(window.CustomElements),window.CustomElements.addModule(function(a){function b(a,b){c(a,function(a){return b(a)?!0:void d(a,b)}),d(a,b)}function c(a,b,d){var e=a.firstElementChild;if(!e)for(e=a.firstChild;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.nextSibling;for(;e;)b(e,d)!==!0&&c(e,b,d),e=e.nextElementSibling;return null}function d(a,c){for(var d=a.shadowRoot;d;)b(d,c),d=d.olderShadowRoot}function e(a,b){f(a,b,[])}function f(a,b,c){if(a=window.wrap(a),!(c.indexOf(a)>=0)){c.push(a);for(var d,e=a.querySelectorAll("link[rel="+g+"]"),h=0,i=e.length;i>h&&(d=e[h]);h++)d["import"]&&f(d["import"],b,c);b(a)}}var g=window.HTMLImports?window.HTMLImports.IMPORT_LINK_TYPE:"none";a.forDocumentTree=e,a.forSubtree=b}),window.CustomElements.addModule(function(a){function b(a,b){return c(a,b)||d(a,b)}function c(b,c){return a.upgrade(b,c)?!0:void(c&&g(b))}function d(a,b){t(a,function(a){return c(a,b)?!0:void 0})}function e(a){x.push(a),w||(w=!0,setTimeout(f))}function f(){w=!1;for(var a,b=x,c=0,d=b.length;d>c&&(a=b[c]);c++)a();x=[]}function g(a){v?e(function(){h(a)}):h(a)}function h(a){a.__upgraded__&&!a.__attached&&(a.__attached=!0,a.attachedCallback&&a.attachedCallback())}function i(a){j(a),t(a,function(a){j(a)})}function j(a){v?e(function(){k(a)}):k(a)}function k(a){a.__upgraded__&&a.__attached&&(a.__attached=!1,a.detachedCallback&&a.detachedCallback())}function l(a){for(var b=a,c=window.wrap(document);b;){if(b==c)return!0;b=b.parentNode||b.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&b.host}}function m(a){if(a.shadowRoot&&!a.shadowRoot.__watched){s.dom&&console.log("watching shadow-root for: ",a.localName);for(var b=a.shadowRoot;b;)p(b),b=b.olderShadowRoot}}function n(a,c){if(s.dom){var d=c[0];if(d&&"childList"===d.type&&d.addedNodes&&d.addedNodes){for(var e=d.addedNodes[0];e&&e!==document&&!e.host;)e=e.parentNode;var f=e&&(e.URL||e._URL||e.host&&e.host.localName)||"";f=f.split("/?").shift().split("/").pop()}console.group("mutations (%d) [%s]",c.length,f||"")}var g=l(a);c.forEach(function(a){"childList"===a.type&&(y(a.addedNodes,function(a){a.localName&&b(a,g)}),y(a.removedNodes,function(a){a.localName&&i(a)}))}),s.dom&&console.groupEnd()}function o(a){for(a=window.wrap(a),a||(a=window.wrap(document));a.parentNode;)a=a.parentNode;var b=a.__observer;b&&(n(a,b.takeRecords()),f())}function p(a){if(!a.__observer){var b=new MutationObserver(n.bind(this,a));b.observe(a,{childList:!0,subtree:!0}),a.__observer=b}}function q(a){a=window.wrap(a),s.dom&&console.group("upgradeDocument: ",a.baseURI.split("/").pop());var c=a===window.wrap(document);b(a,c),p(a),s.dom&&console.groupEnd()}function r(a){u(a,q)}var s=a.flags,t=a.forSubtree,u=a.forDocumentTree,v=window.MutationObserver._isPolyfilled&&s["throttle-attached"];a.hasPolyfillMutations=v,a.hasThrottledAttached=v;var w=!1,x=[],y=Array.prototype.forEach.call.bind(Array.prototype.forEach),z=Element.prototype.createShadowRoot;z&&(Element.prototype.createShadowRoot=function(){var a=z.call(this);return window.CustomElements.watchShadow(this),a}),a.watchShadow=m,a.upgradeDocumentTree=r,a.upgradeDocument=q,a.upgradeSubtree=d,a.upgradeAll=b,a.attached=g,a.takeRecords=o}),window.CustomElements.addModule(function(a){function b(b,d){if("template"===b.localName&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate&&HTMLTemplateElement.decorate(b),!b.__upgraded__&&b.nodeType===Node.ELEMENT_NODE){var e=b.getAttribute("is"),f=a.getRegisteredDefinition(b.localName)||a.getRegisteredDefinition(e);if(f&&(e&&f.tag==b.localName||!e&&!f["extends"]))return c(b,f,d)}}function c(b,c,e){return g.upgrade&&console.group("upgrade:",b.localName),c.is&&b.setAttribute("is",c.is),d(b,c),b.__upgraded__=!0,f(b),e&&a.attached(b),a.upgradeSubtree(b,e),g.upgrade&&console.groupEnd(),b}function d(a,b){Object.__proto__?a.__proto__=b.prototype:(e(a,b.prototype,b["native"]),a.__proto__=b.prototype)}function e(a,b,c){for(var d={},e=b;e!==c&&e!==HTMLElement.prototype;){for(var f,g=Object.getOwnPropertyNames(e),h=0;f=g[h];h++)d[f]||(Object.defineProperty(a,f,Object.getOwnPropertyDescriptor(e,f)),d[f]=1);e=Object.getPrototypeOf(e)}}function f(a){a.createdCallback&&a.createdCallback()}var g=a.flags;a.upgrade=b,a.upgradeWithDefinition=c,a.implementPrototype=d}),window.CustomElements.addModule(function(a){function b(b,d){var i=d||{};if(!b)throw new Error("document.registerElement: first argument `name` must not be empty");if(b.indexOf("-")<0)throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '"+String(b)+"'.");if(e(b))throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '"+String(b)+"'. The type name is invalid.");if(j(b))throw new Error("DuplicateDefinitionError: a type with name '"+String(b)+"' is already registered");return i.prototype||(i.prototype=Object.create(HTMLElement.prototype)),i.__name=b.toLowerCase(),i.lifecycle=i.lifecycle||{},i.ancestry=f(i["extends"]),g(i),h(i),c(i.prototype),k(i.__name,i),i.ctor=l(i),i.ctor.prototype=i.prototype,i.prototype.constructor=i.ctor,a.ready&&r(document),i.ctor}function c(a){if(!a.setAttribute._polyfilled){var b=a.setAttribute;a.setAttribute=function(a,c){d.call(this,a,c,b)};var c=a.removeAttribute;a.removeAttribute=function(a){d.call(this,a,null,c)},a.setAttribute._polyfilled=!0}}function d(a,b,c){a=a.toLowerCase();var d=this.getAttribute(a);c.apply(this,arguments);var e=this.getAttribute(a);this.attributeChangedCallback&&e!==d&&this.attributeChangedCallback(a,d,e)}function e(a){for(var b=0;b<w.length;b++)if(a===w[b])return!0}function f(a){var b=j(a);return b?f(b["extends"]).concat([b]):[]}function g(a){for(var b,c=a["extends"],d=0;b=a.ancestry[d];d++)c=b.is&&b.tag;a.tag=c||a.__name,c&&(a.is=a.__name)}function h(a){if(!Object.__proto__){var b=HTMLElement.prototype;if(a.is){var c=document.createElement(a.tag);b=Object.getPrototypeOf(c)}for(var d,e=a.prototype,f=!1;e;)e==b&&(f=!0),d=Object.getPrototypeOf(e),d&&(e.__proto__=d),e=d;f||console.warn(a.tag+" prototype not found in prototype chain for "+a.is),a["native"]=b}}function i(a){return t(z(a.tag),a)}function j(a){return a?x[a.toLowerCase()]:void 0}function k(a,b){x[a]=b}function l(a){return function(){return i(a)}}function m(a,b,c){return a===y?n(b,c):A(a,b)}function n(a,b){a&&(a=a.toLowerCase()),b&&(b=b.toLowerCase());var c=j(b||a);if(c){if(a==c.tag&&b==c.is)return new c.ctor;if(!b&&!c.is)return new c.ctor}var d;return b?(d=n(a),d.setAttribute("is",b),d):(d=z(a),a.indexOf("-")>=0&&u(d,HTMLElement),d)}function o(a,b){var c=a[b];a[b]=function(){var a=c.apply(this,arguments);return s(a),a}}var p,q=a.isIE,r=a.upgradeDocumentTree,s=a.upgradeAll,t=a.upgradeWithDefinition,u=a.implementPrototype,v=a.useNative,w=["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"],x={},y="http://www.w3.org/1999/xhtml",z=document.createElement.bind(document),A=document.createElementNS.bind(document);p=Object.__proto__||v?function(a,b){return a instanceof b}:function(a,b){if(a instanceof b)return!0;for(var c=a;c;){if(c===b.prototype)return!0;c=c.__proto__}return!1},o(Node.prototype,"cloneNode"),o(document,"importNode"),q&&!function(){var a=document.importNode;document.importNode=function(){var b=a.apply(document,arguments);if(b.nodeType==b.DOCUMENT_FRAGMENT_NODE){var c=document.createDocumentFragment();return c.appendChild(b),c}return b}}(),document.registerElement=b,document.createElement=n,document.createElementNS=m,a.registry=x,a["instanceof"]=p,a.reservedTagList=w,a.getRegisteredDefinition=j,document.register=document.registerElement}),function(a){function b(){f(window.wrap(document)),window.CustomElements.ready=!0;var a=window.requestAnimationFrame||function(a){setTimeout(a,16)};a(function(){setTimeout(function(){window.CustomElements.readyTime=Date.now(),window.HTMLImports&&(window.CustomElements.elapsed=window.CustomElements.readyTime-window.HTMLImports.readyTime),document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))})})}var c=a.useNative,d=a.initializeModules;a.isIE;if(c){var e=function(){};a.watchShadow=e,a.upgrade=e,a.upgradeAll=e,a.upgradeDocumentTree=e,a.upgradeSubtree=e,a.takeRecords=e,a["instanceof"]=function(a,b){return a instanceof b}}else d();var f=a.upgradeDocumentTree,g=a.upgradeDocument;if(window.wrap||(window.ShadowDOMPolyfill?(window.wrap=window.ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=window.ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(a){return a}),window.HTMLImports&&(window.HTMLImports.__importsParsingHook=function(a){a["import"]&&g(wrap(a["import"]))}),"complete"===document.readyState||a.flags.eager)b();else if("interactive"!==document.readyState||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var h=window.HTMLImports&&!window.HTMLImports.ready?"HTMLImportsLoaded":"DOMContentLoaded";window.addEventListener(h,b)}else b()}(window.CustomElements),function(a){Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();return d.push.apply(d,arguments),b.apply(a,d)}})}(window.WebComponents),function(a){var b=document.createElement("style");b.textContent="body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; position: relative; } \n";var c=document.querySelector("head");c.insertBefore(b,c.firstChild)}(window.WebComponents),function(a){window.Platform=a}(window.WebComponents),angular.module("ngAudio",[]).directive("ngAudio",["$compile","$q","ngAudio",function(a,b,c){return{restrict:"AEC",scope:{volume:"=",start:"=",currentTime:"=",loop:"=",clickPlay:"=",disablePreload:"="},controller:["$scope","$attrs","$element","$timeout",function(a,b,d,e){function f(){g=c.load(b.ngAudio,a),a.$audio=g,g.unbind()}var g;a.disablePreload||f(),d.on("click",function(){a.clickPlay!==!1&&(a.disablePreload&&f(),g.audio.play(),g.volume=a.volume||g.volume,g.loop=a.loop,g.currentTime=a.start||0,e(function(){g.play()},5))}),d.on("$destroy",function(){g.destroy()})}]}}]).directive("ngAudioHover",["$compile","$q","ngAudio",function(a,b,c){return{restrict:"AEC",controller:["$scope","$attrs","$element","$timeout",function(a,b,d,e){var f=c.load(b.ngAudioHover,a);d.on("mouseover rollover hover",function(){f.audio.play(),f.volume=b.volumeHover||f.volume,f.loop=b.loop,f.currentTime=b.startHover||0}),d.on("$destroy",function(){f.destroy()})}]}}]).service("localAudioFindingService",["$q",function(a){this.find=function(b){var c=a.defer(),d=document.getElementById(b);return d?c.resolve(d):c.reject(b),c.promise}}]).service("remoteAudioFindingService",["$q",function(a){this.find=function(b){var c=a.defer(),d=new Audio;return d.addEventListener("error",function(){c.reject()}),d.addEventListener("loadstart",function(){c.resolve(d)}),setTimeout(function(){d.src=b},1),c.promise}}]).service("cleverAudioFindingService",["$q","localAudioFindingService","remoteAudioFindingService",function(a,b,c){this.find=function(d){var e=a.defer();return d=d.replace("|","/"),b.find(d).then(e.resolve,function(){return c.find(d)}).then(e.resolve,e.reject),e.promise}}]).value("ngAudioGlobals",{muting:!1,songmuting:!1,performance:25,unlock:!0}).factory("NgAudioObject",["cleverAudioFindingService","$rootScope","$interval","$timeout","ngAudioGlobals",function(a,b,c,d,e){return function(d,f){function g(){o.play(),o.pause(),window.removeEventListener("click",g)}function h(){w||(A&&c.cancel(A),l&&l(),k&&k(),w=!0)}function i(){w||(k=x.$watch(function(){return{volume:y.volume,currentTime:y.currentTime,progress:y.progress,muting:y.muting,loop:y.loop,playbackRate:y.playbackRate}},function(a,b){a.currentTime!==b.currentTime&&y.setCurrentTime(a.currentTime),a.progress!==b.progress&&y.setProgress(a.progress),a.volume!==b.volume&&y.setVolume(a.volume),a.playbackRate!==b.playbackRate&&y.setPlaybackRate(a.playbackRate),n=a.loop,a.muting!==b.muting&&y.setMuting(a.muting)},!0))}function j(){k&&k(),o&&(u||e.isMuting?o.volume=0:o.volume=void 0!==y.volume?y.volume:1,p&&(o.play(),p=!1),r&&(o.pause(),o.currentTime=0,r=!1),q&&(o.pause(),q=!1),s&&(o.playbackRate=t,s=!1),m&&(o.volume=m,m=void 0),v&&(y.currentTime=o.currentTime,y.duration=o.duration,y.remaining=o.duration-o.currentTime,y.progress=o.currentTime/o.duration,y.paused=o.paused,y.src=o.src,y.currentTime>=y.duration&&z.forEach(function(a){a(y)}),n&&y.currentTime>=y.duration&&(n!==!0&&(n--,y.loop--),y.setCurrentTime(0),y.play())),u||e.isMuting||(y.volume=o.volume),y.audio=o),i()}var k,l,m,n,o,p=!1,q=!1,r=!1,s=!1,t=!1,u=!1,v=!0,w=!1,x=f||b,y=this;this.id=d,this.safeId=d.replace("/","|"),this.loop=0,this.unbind=function(){v=!1},this.play=function(){return p=!0,this};var z=[];this.complete=function(a){z.push(a)},this.pause=function(){q=!0},this.restart=function(){r=!0},this.stop=function(){this.restart()},this.setVolume=function(a){m=a},this.setPlaybackRate=function(a){t=a,s=!0},this.setMuting=function(a){u=a},this.setProgress=function(a){o&&o.duration&&isFinite(a)&&(o.currentTime=o.duration*a)},this.setCurrentTime=function(a){o&&o.duration&&(o.currentTime=a)},this.destroy=h,x.$on("$destroy",function(){h()}),a.find(d).then(function(a){o=a,e.unlock&&(window.addEventListener("click",g),o.addEventListener("playing",function(){window.removeEventListener("click",g)})),o.addEventListener("canplay",function(){y.canPlay=!0})},function(a){y.error=!0,console.warn(a)});var A=c(j,e.performance);l=x.$watch(function(){return e.performance},function(){c.cancel(A),A=c(j,e.performance)})}}]).service("ngAudio",["NgAudioObject","ngAudioGlobals",function(a,b){this.play=function(b,c){var d=new a(b,c);return d.play(),d},this.load=function(b,c){return new a(b,c)},this.mute=function(){b.muting=!0},this.unmute=function(){b.muting=!1},this.toggleMute=function(){b.muting=!b.muting},this.setUnlock=function(a){b.unlock=a}}]).filter("trackTime",function(){return function(a){var b=Math.floor(0|a),c="",d=0,e=0,f=0;return b>3599?(d=Math.floor(b/3600),e=Math.floor((b-3600*d)/60),f=b-(60*e+3600*d),1==d.toString().length&&(d="0"+Math.floor(b/3600).toString()),1==e.toString().length&&(e="0"+Math.floor((b-3600*d)/60).toString()),1==f.toString().length&&(f="0"+(b-(60*e+3600*d)).toString()),c=d+":"+e+":"+f):b>59?(e=Math.floor(b/60),f=b-60*e,1==e.toString().length&&(e="0"+Math.floor(b/60).toString()),1==f.toString().length&&(f="0"+(b-60*e).toString()),c=e+":"+f):(f=b,1==f.toString().length&&(f="0"+b.toString()),c=b+"s"),"function"==typeof Number.isNaN&&Number.isNaN(c),c}}),function(){"use strict";angular.module("ngEmoticons",["ngSanitize"]).filter("emoticons",["$sce",function(a){var b=[{text:":)","class":"smiley",code:"e60a"},{text:":D","class":"happy",code:"e608"},{text:":d","class":"happy",code:"e608"},{text:":(","class":"sad",code:"e60e"},{text:":/","class":"wondering",code:"e620"},{text:":P","class":"tongue",code:"e60c"},{text:":p","class":"tongue",code:"e60c"},{text:"3:)","class":"evil",code:"e618"},{text:"(^)","class":"thumbsup2",code:"e607"},{text:";)","class":"wink",code:"e610"},{text:":o","class":"shocked",code:"e61a"},{text:"-_-","class":"neutral",code:"e61e"},{text:"(y)","class":"thumbs-up",code:"e606"},{text:":*","class":"heart",code:"e604"},{text:"&lt;3","class":"heart",code:"e604"},{text:"<3","class":"heart",code:"e604"},{text:"&lt;/3","class":"heart-broken",code:"e605"},{text:"</3","class":"heart-broken",code:"e605"},{text:"^_^","class":"grin",code:"e612"},{text:"8-)","class":"cool",code:"e614"},{text:"8|","class":"cool",code:"e614"},{text:":S","class":"confused",code:"e61c"},{text:":s","class":"confused",code:"e61c"}],c=["bowtie","smile","laughing","blush","smiley","relaxed","smirk","heart_eyes","kissing_heart","kissing_closed_eyes","flushed","relieved","satisfied","grin","wink","stuck_out_tongue_winking_eye","stuck_out_tongue_closed_eyes","grinning","kissing","winky_face","kissing_smiling_eyes","stuck_out_tongue","sleeping","worried","frowning","anguished","open_mouth","grimacing","confused","hushed","expressionless","unamused","sweat_smile","sweat","wow","disappointed_relieved","weary","pensive","disappointed","confounded","fearful","cold_sweat","persevere","cry","sob","joy","astonished","scream","neckbeard","tired_face","angry","rage","triumph","sleepy","yum","mask","sunglasses","dizzy_face","imp","smiling_imp","neutral_face","no_mouth","innocent","alien","yellow_heart","blue_heart","purple_heart","heart","green_heart","broken_heart","heartbeat","heartpulse","two_hearts","revolving_hearts","cupid","sparkling_heart","sparkles","star","star2","dizzy","boom","collision","anger","exclamation","question","grey_exclamation","grey_question","zzz","dash","sweat_drops","notes","musical_note","fire","hankey","poop","shit","\\+1","thumbsup","-1","thumbsdown","ok_hand","punch","facepunch","fist","v","wave","hand","raised_hand","open_hands","point_up","point_down","point_left","point_right","raised_hands","pray","point_up_2","clap","muscle","metal","fu","walking","runner","running","couple","family","two_men_holding_hands","two_women_holding_hands","dancer","dancers","ok_woman","no_good","information_desk_person","raising_hand","bride_with_veil","person_with_pouting_face","person_frowning","bow","couplekiss","couple_with_heart","massage","haircut","nail_care","boy","girl","woman","man","baby","older_woman","older_man","person_with_blond_hair","man_with_gua_pi_mao","man_with_turban","construction_worker","cop","angel","princess","smiley_cat","smile_cat","heart_eyes_cat","kissing_cat","smirk_cat","scream_cat","crying_cat_face","joy_cat","pouting_cat","japanese_ogre","japanese_goblin","see_no_evil","hear_no_evil","speak_no_evil","guardsman","skull","feet","lips","kiss","droplet","ear","eyes","nose","tongue","love_letter","bust_in_silhouette","busts_in_silhouette","speech_balloon","thought_balloon","feelsgood","finnadie","goberserk","godmode","hurtrealbad","rage1","rage2","rage3","rage4","suspect","trollface","sunny","umbrella","cloud","snowflake","snowman","zap","cyclone","foggy","ocean","cat","dog","mouse","hamster","rabbit","wolf","frog","tiger","koala","bear","pig","pig_nose","cow","boar","monkey_face","monkey","horse","racehorse","camel","sheep","elephant","panda_face","snake","bird","baby_chick","hatched_chick","hatching_chick","chicken","penguin","turtle","bug","honeybee","ant","beetle","snail","octopus","tropical_fish","fish","whale","whale2","dolphin","cow2","ram","rat","water_buffalo","tiger2","rabbit2","dragon","goat","rooster","dog2","pig2","mouse2","ox","dragon_face","blowfish","crocodile","dromedary_camel","leopard","cat2","poodle","paw_prints","bouquet","cherry_blossom","tulip","four_leaf_clover","rose","sunflower","hibiscus","maple_leaf","leaves","fallen_leaf","herb","mushroom","cactus","palm_tree","evergreen_tree","deciduous_tree","chestnut","seedling","blossom","ear_of_rice","shell","globe_with_meridians","sun_with_face","full_moon_with_face","new_moon_with_face","new_moon","waxing_crescent_moon","first_quarter_moon","waxing_gibbous_moon","full_moon","waning_gibbous_moon","last_quarter_moon","waning_crescent_moon","last_quarter_moon_with_face","first_quarter_moon_with_face","moon","earth_africa","earth_americas","earth_asia","volcano","milky_way","partly_sunny","octocat","squirrel","bamboo","gift_heart","dolls","school_satchel","mortar_board","flags","fireworks","sparkler","wind_chime","rice_scene","jack_o_lantern","ghost","santa","christmas_tree","gift","bell","no_bell","tanabata_tree","tada","confetti_ball","balloon","crystal_ball","cd","dvd","floppy_disk","camera","video_camera","movie_camera","computer","tv","iphone","phone","telephone","telephone_receiver","pager","fax","minidisc","vhs","sound","speaker","mute","loudspeaker","mega","hourglass","hourglass_flowing_sand","alarm_clock","watch","radio","satellite","loop","mag","mag_right","unlock","lock","lock_with_ink_pen","closed_lock_with_key","key","bulb","flashlight","high_brightness","low_brightness","electric_plug","battery","calling","email","mailbox","postbox","bath","bathtub","shower","toilet","wrench","nut_and_bolt","hammer","seat","moneybag","yen","dollar","pound","euro","credit_card","money_with_wings","e-mail","inbox_tray","outbox_tray","envelope","incoming_envelope","postal_horn","mailbox_closed","mailbox_with_mail","mailbox_with_no_mail","door","smoking","bomb","gun","hocho","pill","syringe","page_facing_up","page_with_curl","bookmark_tabs","bar_chart","chart_with_upwards_trend","chart_with_downwards_trend","scroll","clipboard","calendar","date","card_index","file_folder","open_file_folder","scissors","pushpin","paperclip","black_nib","pencil2","straight_ruler","triangular_ruler","closed_book","green_book","blue_book","orange_book","notebook","notebook_with_decorative_cover","ledger","books","bookmark","name_badge","microscope","telescope","newspaper","football","basketball","soccer","baseball","tennis","8ball","rugby_football","bowling","golf","mountain_bicyclist","bicyclist","horse_racing","snowboarder","swimmer","surfer","ski","spades","hearts","clubs","diamonds","gem","ring","trophy","musical_score","musical_keyboard","violin","space_invader","video_game","black_joker","flower_playing_cards","game_die","dart","mahjong","clapper","memo","pencil","book","art","microphone","headphones","trumpet","saxophone","guitar","shoe","sandal","high_heel","lipstick","boot","shirt","tshirt","necktie","womans_clothes","dress","running_shirt_with_sash","jeans","kimono","bikini","ribbon","tophat","crown","womans_hat","mans_shoe","closed_umbrella","briefcase","handbag","pouch","purse","eyeglasses","fishing_pole_and_fish","coffee","tea","sake","baby_bottle","beer","beers","cocktail","tropical_drink","wine_glass","fork_and_knife","pizza","hamburger","fries","poultry_leg","meat_on_bone","spaghetti","curry","fried_shrimp","bento","sushi","fish_cake","rice_ball","rice_cracker","rice","ramen","stew","oden","dango","egg","bread","doughnut","custard","icecream","ice_cream","shaved_ice","birthday","cake","cookie","chocolate_bar","candy","lollipop","honey_pot","apple","green_apple","tangerine","lemon","cherries","grapes","watermelon","strawberry","peach","melon","banana","pear","pineapple","sweet_potato","eggplant","tomato","corn","house","house_with_garden","school","office","post_office","hospital","bank","convenience_store","love_hotel","hotel","wedding","church","department_store","european_post_office","city_sunrise","city_sunset","japanese_castle","european_castle","tent","factory","tokyo_tower","japan","mount_fuji","sunrise_over_mountains","sunrise","stars","themoreyouknow","tmyk","statue_of_liberty","bridge_at_night","carousel_horse","rainbow","ferris_wheel","fountain","roller_coaster","ship","speedboat","boat","sailboat","rowboat","anchor","rocket","airplane","helicopter","steam_locomotive","tram","mountain_railway","bike","aerial_tramway","suspension_railway","mountain_cableway","tractor","blue_car","oncoming_automobile","car","red_car","taxi","oncoming_taxi","articulated_lorry","bus","oncoming_bus","rotating_light","police_car","oncoming_police_car","fire_engine","ambulance","minibus","truck","train","station","train2","bullettrain_front","bullettrain_side","light_rail","monorail","railway_car","trolleybus","ticket","fuelpump","vertical_traffic_light","traffic_light","warning","construction","beginner","atm","slot_machine","busstop","barber","hotsprings","checkered_flag","crossed_flags","izakaya_lantern","moyai","circus_tent","performing_arts","round_pushpin","triangular_flag_on_post","jp","kr","cn","us","fr","es","it","ru","gb","uk","de","one","two","three","four","five","six","seven","eight","nine","keycap_ten","1234","zero","hash","symbols","arrow_backward","arrow_down","arrow_forward","arrow_left","capital_abcd","abcd","abc","arrow_lower_left","arrow_lower_right","arrow_right","arrow_up","arrow_upper_left","arrow_upper_right","arrow_double_down","arrow_double_up","arrow_down_small","arrow_heading_down","arrow_heading_up","leftwards_arrow_with_hook","arrow_right_hook","left_right_arrow","arrow_up_down","arrow_up_small","arrows_clockwise","arrows_counterclockwise","rewind","fast_forward","information_source","ok","twisted_rightwards_arrows","repeat","repeat_one","new","top","up","cool","free","ng","cinema","koko","signal_strength","u5272","u5408","u55b6","u6307","u6708","u6709","u6e80","u7121","u7533","u7a7a","u7981","sa","restroom","mens","womens","baby_symbol","no_smoking","parking","wheelchair","metro","baggage_claim","accept","wc","potable_water","put_litter_in_its_place","secret","congratulations","m","passport_control","left_luggage","customs","ideograph_advantage","cl","sos","id","no_entry_sign","underage","no_mobile_phones","do_not_litter","non-potable_water","no_bicycles","no_pedestrians","children_crossing","no_entry","eight_spoked_asterisk","eight_pointed_black_star","heart_decoration","vs","vibration_mode","mobile_phone_off","chart","currency_exchange","aries","taurus","gemini","cancer","leo","virgo","libra","scorpius","sagittarius","capricorn","aquarius","pisces","ophiuchus","six_pointed_star","negative_squared_cross_mark","a","b","ab","o2","diamond_shape_with_a_dot_inside","recycle","end","on","soon","clock1","clock130","clock10","clock1030","clock11","clock1130","clock12","clock1230","clock2","clock230","clock3","clock330","clock4","clock430","clock5","clock530","clock6","clock630","clock7","clock730","clock8","clock830","clock9","clock930","heavy_dollar_sign","copyright","registered","tm","x","heavy_exclamation_mark","bangbang","interrobang","o","heavy_multiplication_x","heavy_plus_sign","heavy_minus_sign","heavy_division_sign","white_flower","100","heavy_check_mark","ballot_box_with_check","radio_button","link","curly_loop","wavy_dash","part_alternation_mark","trident","black_square","white_square","white_check_mark","black_square_button","white_square_button","black_circle","white_circle","red_circle","large_blue_circle","large_blue_diamond","large_orange_diamond","small_blue_diamond","small_orange_diamond","small_red_triangle","small_red_triangle_down","shipit"];return function(d,e){function f(a){return angular.forEach(arguments,function(b){b!==a&&angular.forEach(b,function(b,c){a[c]&&a[c].constructor&&a[c].constructor===Object?f(a[c],b):a[c]=b})}),a}function g(a){var c=a.split(" ");return angular.forEach(b,function(a){for(var b=0;b<c.length;b++)c[b]===a.text&&(c[b]='<i class="icon-emoticon" title="'+a.text+'">&#x'+a.code+"</i>")}),c.join(" ")}function h(a){var b=/((href|src)=["']|)(\b(https?|ftp|file):\/\/[-A-Z0-9+()&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi,c=a.replace(b,function(a){return'<a href="'+a+'" target="'+j.linkTarget+'">'+a+"</a>"});return c}function i(a){var b=new RegExp(":("+c.join("|")+"):","g");return a.replace(b,function(a,b){return"<i class='emoticon emoticon-"+b+"' title=':"+b+":'></i>"})}var j={link:!0,linkTarget:"_self"};return f(j,e),void 0!==d&&null!==d?"object"==typeof d?d:(d=g(d),d=i(d),j.link&&(d=h(d)),a.trustAsHtml(d)):void 0}}]).directive("ngEmoticons",["$filter","$sce","$http","$timeout","$templateCache",function(a,b,c,d,e){var f="",g='<div ng-bind-html="neText" ne-hljs></div><div class="ne-video" ng-if="video.host" class="fade">    <div class="ne-video-preview" ng-hide="nePlayVideo || !(options.video.details)">        <div class="ne-video-thumb" ng-click="nePlayVideo=!nePlayVideo">            <img ng-src="{{video.thumbnail}}" alt=""/>            <i class="fa fa-play-circle-o"></i>        </div>        <div class="ne-video-detail">            <div class="ne-video-title">                <a ng-href="{{video.url}}">{{video.title}}</a>            </div>            <div class="ne-video-desc">                {{video.description}}            </div>            <div class="ne-video-stats">                <span><i class="fa fa-eye"></i> {{video.views}}</span>                <span><i class="fa fa-heart"></i> {{video.likes}}</span>            </div>        </div>    </div>    <div class="ne-video-player" ng-if="nePlayVideo || !(options.video.details)">        <iframe ng-src="{{video.embedSrc}}" frameBorder="0" width="{{video.width}}" height="{{video.height}}" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>    </div></div><div class="ne-video" ng-if="video.basic">    <div class="ne-video-player">        <div class="player">            <video ng-src="{{video.basic}}" controls></video>        </div>    </div></div><div ng-init="neImageLong=false" ng-class="{false:\'ne-image\', true:\'ne-image ne-image-long\'}[neImageLong]"     ng-if="image.url">    <div class="ne-image-wrapper">        <img ng-src="{{image.url}}" ng-click="neImageLong=!neImageLong" alt=""/>    </div></div><div class="ne-pdf" ng-if="pdf.url">    <div class="ne-pdf-preview" ng-hide="neShowPdf">        <div class="ne-pdf-icon">            <i class="fa fa-file-pdf-o"></i>        </div>        <div class="ne-pdf-detail" >            <div class="ne-pdf-title">                <a href="">{{pdf.url}}</a>            </div>            <div class="ne-pdf-view">                <button><i class="fa fa-download"></i> <a ng-href="{{pdf.url}}" target="_blank">Download</a></button>                <button ng-click="neShowPdf=!neShowPdf"><i class="fa fa-eye"></i> View PDF</button>            </div>        </div>    </div>    <div class="ne-pdf-viewer" ng-if="neShowPdf" ng-show="neShowPdf">        <iframe ng-src="{{pdf.url}}" frameBorder="0"></iframe>    </div></div><div class="ne-audio" ng-if="audio.url">    <audio ng-src="{{audio.url}}" controls></audio></div>';return e.put(f,g),{restrict:"AE",scope:!0,templateUrl:function(a,b){return b.emoticonsTemplateUrl||f},link:function(e,f,g){function h(a){return angular.forEach(arguments,function(b){b!==a&&angular.forEach(b,function(b,c){a[c]&&a[c].constructor&&a[c].constructor===Object?h(a[c],b):a[c]=b})}),a}var i=e.$eval(g.emoticonsData),j=e.$eval(g.emoticonsOptions);e.video={},e.image={},e.pdf={},e.audio={};var k={link:!0,linkTarget:"_self",pdf:{embed:!0},image:{embed:!1},audio:{embed:!0},code:{highlight:!0,lineNumbers:!1},basicVideo:!1,video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,thumbnailQuality:"medium",ytAuthKey:null}};h(k,j),String.prototype.trunc=function(a,b){var c=this.length>a,d=c?this.substr(0,a-1):this;return d=b&&c?d.substr(0,d.lastIndexOf(" ")):d,c?d+"...":d};var l={calcDimensions:function(a){var b={width:null,height:null};return b.width=a.video.width,b.height=a.video.height,a.video.height&&a.video.width?b:a.video.height?(b.width=a.video.height/390*640,b):a.video.width?(b.height=b.width/640*390,b):(b.width=640,b.height=390,b)},embed:function(a,d){var f=/https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/ytscreeningroom\?v=|\/feeds\/api\/videos\/|\/user\S*[^\w\-\s]|\S*[^\w\-\s]))([\w\-]{11})[?=&+%\w-]*/gi;if(a.match(f)){var g=this.calcDimensions(d);return e.video.id=RegExp.$1,d.video.details?c.get("https://www.googleapis.com/youtube/v3/videos?id="+RegExp.$1+"&key="+d.video.ytAuthKey+"&part=snippet,statistics").success(function(a){var c=a.items[0];e.video.host="youtube",e.video.title=c.snippet.title,e.video.thumbnail=c.snippet.thumbnails.medium.url,e.video.description=c.snippet.description.trunc(250,!0).replace(/\n/g," ").replace(/&#10;/g," "),e.video.rawDescription=c.snippet.description,e.video.views=c.statistics.viewCount,e.video.likes=c.statistics.likeCount,e.video.uploader=c.snippet.channelTitle,e.video.uploaderPage="https://www.youtube.com/channel/"+c.snippet.channelId,e.video.uploadDate=c.snippet.publishedAt,e.video.url=b.trustAsResourceUrl("https://www.youtube.com/watch?v="+c.id),e.video.embedSrc=b.trustAsResourceUrl("https://www.youtube.com/embed/"+e.video.id+"?autoplay=1"),
-e.video.width=g.width,e.video.height=g.height}):(e.video.width=g.width,e.video.height=g.height,e.video.host="youtube",e.video.embedSrc=b.trustAsResourceUrl("https://www.youtube.com/embed/"+RegExp.$1+"?autoplay=0")),a}var h=/https?:\/\/(?:www\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|)(\d+)(?:$|\/|\?)*/gi;if(a.match(h)){var i=this.calcDimensions(d);e.video.id=RegExp.$3,d.video.details?c.get("https://vimeo.com/api/v2/video/"+RegExp.$3+".json").success(function(a){e.video.host="vimeo",e.video.title=a[0].title,e.video.rawDescription=a[0].description.replace(/\n/g,"<br/>").replace(/&#10;/g,"<br/>"),e.video.description=a[0].description.replace(/((<|&lt;)br\s*\/*(>|&gt;)\r\n)/g," ").trunc(250,!0),e.video.thumbnail=a[0].thumbnail_medium,e.video.views=a[0].stats_number_of_plays,e.video.likes=a[0].stats_number_of_likes,e.video.uploader=a[0].user_name,e.video.uploaderPage=a[0].user_url,e.video.uploadDate=a[0].uploadDate,e.video.url=a[0].url,e.video.embedSrc=b.trustAsResourceUrl("//player.vimeo.com/video/"+a[0].id+"?title=0&byline=0&portrait=0&autoplay=1"),e.video.width=i.width,e.video.height=i.height}):(e.video.width=i.width,e.video.height=i.height,e.video.host="vimeo",e.video.embedSrc=b.trustAsResourceUrl("//player.vimeo.com/video/"+RegExp.$3+"?title=0&byline=0&portrait=0&autoplay=0"))}return a},embedBasic:function(a){var c=/((?:https?):\/\/\S*\.(?:ogv|webm|mp4))/gi;return a.match(c)&&(e.video.basic=b.trustAsResourceUrl(RegExp.$1)),a}},m={embed:function(a){var c=/((?:https?):\/\/\S*\.(?:wav|mp3|ogg))/gi;return a.match(c)&&(e.audio.url=b.trustAsResourceUrl(RegExp.$1)),a}},n={embed:function(a){var b=/((?:https?):\/\/\S*\.(?:gif|jpg|jpeg|tiff|png|svg|webp))/gi;return a.match(b)&&(e.image.url=RegExp.$1),a}},o={encodeCode:function(a){return a=a.replace(/\&/gm,"&amp;"),a=a.replace(/</gm,"&lt;"),a=a.replace(/>/gm,"&gt;")},getCode:function(a){var b=this;return a=a.replace(/(`+)(\s|[a-z]+)\s*([\s\S]*?[^`])\s*\1(?!`)/gm,function(a,c,d,e){var f=e;return f=f.replace(/^([ \t]*)/g,""),f=f.replace(/[ \t]*$/g,""),f=b.encodeCode(f),f=f.replace(/:\/\//g,"~P"),'<pre><code class="ne-code '+d+'">'+f+"</code></pre>"})}},p={embed:function(a){var c=/((?:https?):\/\/\S*\.(?:pdf|PDF))/gi;return a.match(c)&&(e.pdf.url=b.trustAsResourceUrl(RegExp.$1)),a}};if(k.code.highlight){if(!window.hljs)throw"hlsj (Highlight JS is not defined.";i=o.getCode(i),d(function(){hljs.initHighlighting(),k.code.lineNumbers&&angular.element(".ne-code").each(function(){var a=1,b=$(this).text().split("\n").length,c=$("<ul/>").addClass("pre-numbering");for(angular.element(this).addClass("has-numbering").parent().append(c),a;b>=a;a++)c.append(angular.element("<li/>").text(a))})},0)}var q=a("emoticons")(i,k).$$unwrapTrustedValue();if(k.video.embed){if(!k.video.ytAuthKey)throw"Youtube authentication key is required to get data from youtube.";q=l.embed(q,k)}k.basicVideo&&(q=l.embedBasic(q)),k.audio.embed&&(q=m.embed(q)),k.image.embed&&(q=n.embed(q)),k.pdf.embed&&(q=p.embed(q)),e.neText=b.trustAsHtml(q)}}}]).directive("neHljs",["$timeout",function(a){return{restrict:"AE",link:function(b,c){a(function(){c.find(".ne-code").each(function(){hljs.highlightBlock(this)})},0)}}}])}(),function(a){"undefined"!=typeof exports?a(exports):(window.hljs=a({}),"function"==typeof define&&define.amd&&define("hljs",[],function(){return window.hljs}))}(function(a){function b(a){return a.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function c(a){return a.nodeName.toLowerCase()}function d(a,b){var c=a&&a.exec(b);return c&&0==c.index}function e(a){return/^(no-?highlight|plain|text)$/i.test(a)}function f(a){var b,c,d,f=a.className+" ";if(f+=a.parentNode?a.parentNode.className:"",c=/\blang(?:uage)?-([\w-]+)\b/i.exec(f))return u(c[1])?c[1]:"no-highlight";for(f=f.split(/\s+/),b=0,d=f.length;d>b;b++)if(u(f[b])||e(f[b]))return f[b]}function g(a,b){var c,d={};for(c in a)d[c]=a[c];if(b)for(c in b)d[c]=b[c];return d}function h(a){var b=[];return function d(a,e){for(var f=a.firstChild;f;f=f.nextSibling)3==f.nodeType?e+=f.nodeValue.length:1==f.nodeType&&(b.push({event:"start",offset:e,node:f}),e=d(f,e),c(f).match(/br|hr|img|input/)||b.push({event:"stop",offset:e,node:f}));return e}(a,0),b}function i(a,d,e){function f(){return a.length&&d.length?a[0].offset!=d[0].offset?a[0].offset<d[0].offset?a:d:"start"==d[0].event?a:d:a.length?a:d}function g(a){function d(a){return" "+a.nodeName+'="'+b(a.value)+'"'}k+="<"+c(a)+Array.prototype.map.call(a.attributes,d).join("")+">"}function h(a){k+="</"+c(a)+">"}function i(a){("start"==a.event?g:h)(a.node)}for(var j=0,k="",l=[];a.length||d.length;){var m=f();if(k+=b(e.substr(j,m[0].offset-j)),j=m[0].offset,m==a){l.reverse().forEach(h);do i(m.splice(0,1)[0]),m=f();while(m==a&&m.length&&m[0].offset==j);l.reverse().forEach(g)}else"start"==m[0].event?l.push(m[0].node):l.pop(),i(m.splice(0,1)[0])}return k+b(e.substr(j))}function j(a){function b(a){return a&&a.source||a}function c(c,d){return new RegExp(b(c),"m"+(a.case_insensitive?"i":"")+(d?"g":""))}function d(e,f){if(!e.compiled){if(e.compiled=!0,e.keywords=e.keywords||e.beginKeywords,e.keywords){var h={},i=function(b,c){a.case_insensitive&&(c=c.toLowerCase()),c.split(" ").forEach(function(a){var c=a.split("|");h[c[0]]=[b,c[1]?Number(c[1]):1]})};"string"==typeof e.keywords?i("keyword",e.keywords):Object.keys(e.keywords).forEach(function(a){i(a,e.keywords[a])}),e.keywords=h}e.lexemesRe=c(e.lexemes||/\b\w+\b/,!0),f&&(e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")\\b"),e.begin||(e.begin=/\B|\b/),e.beginRe=c(e.begin),e.end||e.endsWithParent||(e.end=/\B|\b/),e.end&&(e.endRe=c(e.end)),e.terminator_end=b(e.end)||"",e.endsWithParent&&f.terminator_end&&(e.terminator_end+=(e.end?"|":"")+f.terminator_end)),e.illegal&&(e.illegalRe=c(e.illegal)),void 0===e.relevance&&(e.relevance=1),e.contains||(e.contains=[]);var j=[];e.contains.forEach(function(a){a.variants?a.variants.forEach(function(b){j.push(g(a,b))}):j.push("self"==a?e:a)}),e.contains=j,e.contains.forEach(function(a){d(a,e)}),e.starts&&d(e.starts,f);var k=e.contains.map(function(a){return a.beginKeywords?"\\.?("+a.begin+")\\.?":a.begin}).concat([e.terminator_end,e.illegal]).map(b).filter(Boolean);e.terminators=k.length?c(k.join("|"),!0):{exec:function(){return null}}}}d(a)}function k(a,c,e,f){function g(a,b){for(var c=0;c<b.contains.length;c++)if(d(b.contains[c].beginRe,a))return b.contains[c]}function h(a,b){if(d(a.endRe,b)){for(;a.endsParent&&a.parent;)a=a.parent;return a}return a.endsWithParent?h(a.parent,b):void 0}function i(a,b){return!e&&d(b.illegalRe,a)}function m(a,b){var c=t.case_insensitive?b[0].toLowerCase():b[0];return a.keywords.hasOwnProperty(c)&&a.keywords[c]}function n(a,b,c,d){var e=d?"":v.classPrefix,f='<span class="'+e,g=c?"":"</span>";return f+=a+'">',f+b+g}function o(){if(!y.keywords)return b(B);var a="",c=0;y.lexemesRe.lastIndex=0;for(var d=y.lexemesRe.exec(B);d;){a+=b(B.substr(c,d.index-c));var e=m(y,d);e?(C+=e[1],a+=n(e[0],b(d[0]))):a+=b(d[0]),c=y.lexemesRe.lastIndex,d=y.lexemesRe.exec(B)}return a+b(B.substr(c))}function p(){var a="string"==typeof y.subLanguage;if(a&&!w[y.subLanguage])return b(B);var c=a?k(y.subLanguage,B,!0,z[y.subLanguage]):l(B,y.subLanguage.length?y.subLanguage:void 0);return y.relevance>0&&(C+=c.relevance),a&&(z[y.subLanguage]=c.top),n(c.language,c.value,!1,!0)}function q(){return void 0!==y.subLanguage?p():o()}function r(a,c){var d=a.className?n(a.className,"",!0):"";a.returnBegin?(A+=d,B=""):a.excludeBegin?(A+=b(c)+d,B=""):(A+=d,B=c),y=Object.create(a,{parent:{value:y}})}function s(a,c){if(B+=a,void 0===c)return A+=q(),0;var d=g(c,y);if(d)return A+=q(),r(d,c),d.returnBegin?0:c.length;var e=h(y,c);if(e){var f=y;f.returnEnd||f.excludeEnd||(B+=c),A+=q();do y.className&&(A+="</span>"),C+=y.relevance,y=y.parent;while(y!=e.parent);return f.excludeEnd&&(A+=b(c)),B="",e.starts&&r(e.starts,""),f.returnEnd?0:c.length}if(i(c,y))throw new Error('Illegal lexeme "'+c+'" for mode "'+(y.className||"<unnamed>")+'"');return B+=c,c.length||1}var t=u(a);if(!t)throw new Error('Unknown language: "'+a+'"');j(t);var x,y=f||t,z={},A="";for(x=y;x!=t;x=x.parent)x.className&&(A=n(x.className,"",!0)+A);var B="",C=0;try{for(var D,E,F=0;;){if(y.terminators.lastIndex=F,D=y.terminators.exec(c),!D)break;E=s(c.substr(F,D.index-F),D[0]),F=D.index+E}for(s(c.substr(F)),x=y;x.parent;x=x.parent)x.className&&(A+="</span>");return{relevance:C,value:A,language:a,top:y}}catch(G){if(-1!=G.message.indexOf("Illegal"))return{relevance:0,value:b(c)};throw G}}function l(a,c){c=c||v.languages||Object.keys(w);var d={relevance:0,value:b(a)},e=d;return c.forEach(function(b){if(u(b)){var c=k(b,a,!1);c.language=b,c.relevance>e.relevance&&(e=c),c.relevance>d.relevance&&(e=d,d=c)}}),e.language&&(d.second_best=e),d}function m(a){return v.tabReplace&&(a=a.replace(/^((<[^>]+>|\t)+)/gm,function(a,b){return b.replace(/\t/g,v.tabReplace)})),v.useBR&&(a=a.replace(/\n/g,"<br>")),a}function n(a,b,c){var d=b?x[b]:c,e=[a.trim()];return a.match(/\bhljs\b/)||e.push("hljs"),-1===a.indexOf(d)&&e.push(d),e.join(" ").trim()}function o(a){var b=f(a);if(!e(b)){var c;v.useBR?(c=document.createElementNS("http://www.w3.org/1999/xhtml","div"),c.innerHTML=a.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):c=a;var d=c.textContent,g=b?k(b,d,!0):l(d),j=h(c);if(j.length){var o=document.createElementNS("http://www.w3.org/1999/xhtml","div");o.innerHTML=g.value,g.value=i(j,h(o),d)}g.value=m(g.value),a.innerHTML=g.value,a.className=n(a.className,b,g.language),a.result={language:g.language,re:g.relevance},g.second_best&&(a.second_best={language:g.second_best.language,re:g.second_best.relevance})}}function p(a){v=g(v,a)}function q(){if(!q.called){q.called=!0;var a=document.querySelectorAll("pre code");Array.prototype.forEach.call(a,o)}}function r(){addEventListener("DOMContentLoaded",q,!1),addEventListener("load",q,!1)}function s(b,c){var d=w[b]=c(a);d.aliases&&d.aliases.forEach(function(a){x[a]=b})}function t(){return Object.keys(w)}function u(a){return a=(a||"").toLowerCase(),w[a]||w[x[a]]}var v={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},w={},x={};return a.highlight=k,a.highlightAuto=l,a.fixMarkup=m,a.highlightBlock=o,a.configure=p,a.initHighlighting=q,a.initHighlightingOnLoad=r,a.registerLanguage=s,a.listLanguages=t,a.getLanguage=u,a.inherit=g,a.IDENT_RE="[a-zA-Z]\\w*",a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.C_NUMBER_RE="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},a.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[a.BACKSLASH_ESCAPE]},a.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[a.BACKSLASH_ESCAPE]},a.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},a.COMMENT=function(b,c,d){var e=a.inherit({className:"comment",begin:b,end:c,contains:[]},d||{});return e.contains.push(a.PHRASAL_WORDS_MODE),e.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),e},a.C_LINE_COMMENT_MODE=a.COMMENT("//","$"),a.C_BLOCK_COMMENT_MODE=a.COMMENT("/\\*","\\*/"),a.HASH_COMMENT_MODE=a.COMMENT("#","$"),a.NUMBER_MODE={className:"number",begin:a.NUMBER_RE,relevance:0},a.C_NUMBER_MODE={className:"number",begin:a.C_NUMBER_RE,relevance:0},a.BINARY_NUMBER_MODE={className:"number",begin:a.BINARY_NUMBER_RE,relevance:0},a.CSS_NUMBER_MODE={className:"number",begin:a.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},a.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[a.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[a.BACKSLASH_ESCAPE]}]},a.TITLE_MODE={className:"title",begin:a.IDENT_RE,relevance:0},a.UNDERSCORE_TITLE_MODE={className:"title",begin:a.UNDERSCORE_IDENT_RE,relevance:0},a.registerLanguage("1c",function(a){var b="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*",c="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт",d="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку  стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон",e={className:"dquote",begin:'""'},f={className:"string",begin:'"',end:'"|$',contains:[e]},g={className:"string",begin:"\\|",end:'"|$',contains:[e]};return{case_insensitive:!0,lexemes:b,keywords:{keyword:c,built_in:d},contains:[a.C_LINE_COMMENT_MODE,a.NUMBER_MODE,f,g,{className:"function",begin:"(процедура|функция)",end:"$",lexemes:b,keywords:"процедура функция",contains:[a.inherit(a.TITLE_MODE,{begin:b}),{className:"tail",endsWithParent:!0,contains:[{className:"params",begin:"\\(",end:"\\)",lexemes:b,keywords:"знач",contains:[f,g]},{className:"export",begin:"экспорт",endsWithParent:!0,lexemes:b,keywords:"экспорт",contains:[a.C_LINE_COMMENT_MODE]}]},a.C_LINE_COMMENT_MODE]},{className:"preprocessor",begin:"#",end:"$"},{className:"date",begin:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}),a.registerLanguage("accesslog",function(a){return{contains:[{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+\\b",relevance:0},{className:"string",begin:'"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)',end:'"',keywords:"GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE",illegal:"\\n",relevance:10},{className:"string",begin:/\[/,end:/\]/,illegal:"\\n"},{className:"string",begin:'"',end:'"',illegal:"\\n"}]}}),a.registerLanguage("actionscript",function(a){var b="[a-zA-Z_$][a-zA-Z0-9_$]*",c="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)",d={className:"rest_arg",begin:"[.]{3}",end:b,relevance:10};return{aliases:["as"],keywords:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.C_NUMBER_MODE,{className:"package",beginKeywords:"package",end:"{",contains:[a.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},a.TITLE_MODE]},{className:"preprocessor",beginKeywords:"import include",end:";"},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,d]},{className:"type",begin:":",end:c,relevance:10}]}],illegal:/#/}}),a.registerLanguage("apache",function(a){var b={className:"number",begin:"[\\$%]\\d+"};return{aliases:["apacheconf"],case_insensitive:!0,contains:[a.HASH_COMMENT_MODE,{className:"tag",begin:"</?",end:">"},{className:"keyword",begin:/\w+/,relevance:0,keywords:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all"},contains:[{className:"sqbracket",begin:"\\s\\[",end:"\\]$"},{className:"cbracket",begin:"[\\$%]\\{",end:"\\}",contains:["self",b]},b,a.QUOTE_STRING_MODE]}}],illegal:/\S/}}),a.registerLanguage("applescript",function(a){var b=a.inherit(a.QUOTE_STRING_MODE,{illegal:""}),c={className:"params",begin:"\\(",end:"\\)",contains:["self",a.C_NUMBER_MODE,b]},d=a.COMMENT("--","$"),e=a.COMMENT("\\(\\*","\\*\\)",{contains:["self",d]}),f=[d,e,a.HASH_COMMENT_MODE];return{aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},contains:[b,a.C_NUMBER_MODE,{className:"type",begin:"\\bPOSIX file\\b"},{className:"command",begin:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{className:"constant",begin:"\\b(text item delimiters|current application|missing value)\\b"},{className:"keyword",begin:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{className:"property",begin:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{className:"function_start",beginKeywords:"on",illegal:"[${=;\\n]",contains:[a.UNDERSCORE_TITLE_MODE,c]}].concat(f),illegal:"//|->|=>|\\[\\["}}),a.registerLanguage("armasm",function(a){return{case_insensitive:!0,aliases:["arm"],lexemes:"\\.?"+a.IDENT_RE,keywords:{literal:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ",preprocessor:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @ "},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?",end:"\\s"},a.COMMENT("[;@]","$",{relevance:0}),a.C_BLOCK_COMMENT_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"label",variants:[{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"[=#]\\w+"}],relevance:0}]}}),a.registerLanguage("xml",function(a){var b="[A-Za-z0-9\\._:-]+",c={begin:/<\?(php)?(?!\w)/,end:/\?>/,subLanguage:"php"},d={endsWithParent:!0,illegal:/</,relevance:0,contains:[c,{className:"attribute",begin:b,relevance:0},{begin:"=",relevance:0,contains:[{className:"value",contains:[c],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/[^\s\/>]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],case_insensitive:!0,contains:[{className:"doctype",begin:"<!DOCTYPE",end:">",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},a.COMMENT("<!--","-->",{relevance:10}),{className:"cdata",begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{className:"tag",begin:"<style(?=\\s|>|$)",end:">",keywords:{title:"style"},contains:[d],starts:{end:"</style>",returnEnd:!0,subLanguage:"css"}},{className:"tag",begin:"<script(?=\\s|>|$)",end:">",keywords:{title:"script"},contains:[d],starts:{end:"</script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars"]}},c,{className:"pi",begin:/<\?\w+/,end:/\?>/,relevance:10},{className:"tag",begin:"</?",end:"/?>",contains:[{className:"title",begin:/[^ \/><\n\t]+/,relevance:0},d]}]}}),a.registerLanguage("asciidoc",function(a){return{aliases:["adoc"],contains:[a.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),a.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"header",begin:"^(={1,5}) .+?( \\1)?$",relevance:10},{className:"header",begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",relevance:10},{className:"attribute",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"attribute",begin:"^\\[.+?\\]$",relevance:0},{className:"blockquote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{className:"bullet",begin:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{className:"label",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{className:"strong",begin:"\\B\\*(?![\\*\\s])",end:"(\\n{2}|\\*)",contains:[{begin:"\\\\*\\w",relevance:0}]},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0},{className:"emphasis",begin:"_(?![_\\s])",end:"(\\n{2}|_)",relevance:0},{className:"smartquote",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},{className:"horizontal_rule",begin:"^'{3,}[ \\t]*$",relevance:10},{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link_url",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"link_label",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}),a.registerLanguage("aspectj",function(a){var b="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else extends implements break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws privileged aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization staticinitialization withincode target within execution getWithinTypeName handler thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents warning error soft precedence thisAspectInstance",c="get set args call";return{keywords:b,illegal:/<\/|#/,contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"aspect",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},a.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:b+" "+c,excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[a.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:b,illegal:/["\[\]]/,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",keywords:b+" "+c},a.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:b,excludeEnd:!0,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:b,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"}]}}),a.registerLanguage("autohotkey",function(a){var b={className:"escape",begin:"`[\\s\\S]"},c=a.COMMENT(";","$",{relevance:0}),d=[{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{className:"built_in",beginKeywords:"ComSpec Clipboard ClipboardAll ErrorLevel"}];return{case_insensitive:!0,keywords:{keyword:"Break Continue Else Gosub If Loop Return While",literal:"A true false NOT AND OR"},contains:d.concat([b,a.inherit(a.QUOTE_STRING_MODE,{contains:[b]}),c,{className:"number",begin:a.NUMBER_RE,relevance:0},{className:"var_expand",begin:"%",end:"%",illegal:"\\n",contains:[b]},{className:"label",contains:[b],variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{begin:",\\s*,",relevance:10}])}}),a.registerLanguage("autoit",function(a){var b="ByRef Case Const ContinueCase ContinueLoop Default Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",c="True False And Null Not Or",d="Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Opt Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown TCPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend UDPShutdown UDPStartup VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive Array1DToHistogram ArrayAdd ArrayBinarySearch ArrayColDelete ArrayColInsert ArrayCombinations ArrayConcatenate ArrayDelete ArrayDisplay ArrayExtract ArrayFindAll ArrayInsert ArrayMax ArrayMaxIndex ArrayMin ArrayMinIndex ArrayPermute ArrayPop ArrayPush ArrayReverse ArraySearch ArrayShuffle ArraySort ArraySwap ArrayToClip ArrayToString ArrayTranspose ArrayTrim ArrayUnique Assert ChooseColor ChooseFont ClipBoard_ChangeChain ClipBoard_Close ClipBoard_CountFormats ClipBoard_Empty ClipBoard_EnumFormats ClipBoard_FormatStr ClipBoard_GetData ClipBoard_GetDataEx ClipBoard_GetFormatName ClipBoard_GetOpenWindow ClipBoard_GetOwner ClipBoard_GetPriorityFormat ClipBoard_GetSequenceNumber ClipBoard_GetViewer ClipBoard_IsFormatAvailable ClipBoard_Open ClipBoard_RegisterFormat ClipBoard_SetData ClipBoard_SetDataEx ClipBoard_SetViewer ClipPutFile ColorConvertHSLtoRGB ColorConvertRGBtoHSL ColorGetBlue ColorGetCOLORREF ColorGetGreen ColorGetRed ColorGetRGB ColorSetCOLORREF ColorSetRGB Crypt_DecryptData Crypt_DecryptFile Crypt_DeriveKey Crypt_DestroyKey Crypt_EncryptData Crypt_EncryptFile Crypt_GenRandom Crypt_HashData Crypt_HashFile Crypt_Shutdown Crypt_Startup DateAdd DateDayOfWeek DateDaysInMonth DateDiff DateIsLeapYear DateIsValid DateTimeFormat DateTimeSplit DateToDayOfWeek DateToDayOfWeekISO DateToDayValue DateToMonth Date_Time_CompareFileTime Date_Time_DOSDateTimeToArray Date_Time_DOSDateTimeToFileTime Date_Time_DOSDateTimeToStr Date_Time_DOSDateToArray Date_Time_DOSDateToStr Date_Time_DOSTimeToArray Date_Time_DOSTimeToStr Date_Time_EncodeFileTime Date_Time_EncodeSystemTime Date_Time_FileTimeToArray Date_Time_FileTimeToDOSDateTime Date_Time_FileTimeToLocalFileTime Date_Time_FileTimeToStr Date_Time_FileTimeToSystemTime Date_Time_GetFileTime Date_Time_GetLocalTime Date_Time_GetSystemTime Date_Time_GetSystemTimeAdjustment Date_Time_GetSystemTimeAsFileTime Date_Time_GetSystemTimes Date_Time_GetTickCount Date_Time_GetTimeZoneInformation Date_Time_LocalFileTimeToFileTime Date_Time_SetFileTime Date_Time_SetLocalTime Date_Time_SetSystemTime Date_Time_SetSystemTimeAdjustment Date_Time_SetTimeZoneInformation Date_Time_SystemTimeToArray Date_Time_SystemTimeToDateStr Date_Time_SystemTimeToDateTimeStr Date_Time_SystemTimeToFileTime Date_Time_SystemTimeToTimeStr Date_Time_SystemTimeToTzSpecificLocalTime Date_Time_TzSpecificLocalTimeToSystemTime DayValueToDate DebugBugReportEnv DebugCOMError DebugOut DebugReport DebugReportEx DebugReportVar DebugSetup Degree EventLog__Backup EventLog__Clear EventLog__Close EventLog__Count EventLog__DeregisterSource EventLog__Full EventLog__Notify EventLog__Oldest EventLog__Open EventLog__OpenBackup EventLog__Read EventLog__RegisterSource EventLog__Report Excel_BookAttach Excel_BookClose Excel_BookList Excel_BookNew Excel_BookOpen Excel_BookOpenText Excel_BookSave Excel_BookSaveAs Excel_Close Excel_ColumnToLetter Excel_ColumnToNumber Excel_ConvertFormula Excel_Export Excel_FilterGet Excel_FilterSet Excel_Open Excel_PictureAdd Excel_Print Excel_RangeCopyPaste Excel_RangeDelete Excel_RangeFind Excel_RangeInsert Excel_RangeLinkAddRemove Excel_RangeRead Excel_RangeReplace Excel_RangeSort Excel_RangeValidate Excel_RangeWrite Excel_SheetAdd Excel_SheetCopyMove Excel_SheetDelete Excel_SheetList FileCountLines FileCreate FileListToArray FileListToArrayRec FilePrint FileReadToArray FileWriteFromArray FileWriteLog FileWriteToLine FTP_Close FTP_Command FTP_Connect FTP_DecodeInternetStatus FTP_DirCreate FTP_DirDelete FTP_DirGetCurrent FTP_DirPutContents FTP_DirSetCurrent FTP_FileClose FTP_FileDelete FTP_FileGet FTP_FileGetSize FTP_FileOpen FTP_FilePut FTP_FileRead FTP_FileRename FTP_FileTimeLoHiToStr FTP_FindFileClose FTP_FindFileFirst FTP_FindFileNext FTP_GetLastResponseInfo FTP_ListToArray FTP_ListToArray2D FTP_ListToArrayEx FTP_Open FTP_ProgressDownload FTP_ProgressUpload FTP_SetStatusCallback GDIPlus_ArrowCapCreate GDIPlus_ArrowCapDispose GDIPlus_ArrowCapGetFillState GDIPlus_ArrowCapGetHeight GDIPlus_ArrowCapGetMiddleInset GDIPlus_ArrowCapGetWidth GDIPlus_ArrowCapSetFillState GDIPlus_ArrowCapSetHeight GDIPlus_ArrowCapSetMiddleInset GDIPlus_ArrowCapSetWidth GDIPlus_BitmapApplyEffect GDIPlus_BitmapApplyEffectEx GDIPlus_BitmapCloneArea GDIPlus_BitmapConvertFormat GDIPlus_BitmapCreateApplyEffect GDIPlus_BitmapCreateApplyEffectEx GDIPlus_BitmapCreateDIBFromBitmap GDIPlus_BitmapCreateFromFile GDIPlus_BitmapCreateFromGraphics GDIPlus_BitmapCreateFromHBITMAP GDIPlus_BitmapCreateFromHICON GDIPlus_BitmapCreateFromHICON32 GDIPlus_BitmapCreateFromMemory GDIPlus_BitmapCreateFromResource GDIPlus_BitmapCreateFromScan0 GDIPlus_BitmapCreateFromStream GDIPlus_BitmapCreateHBITMAPFromBitmap GDIPlus_BitmapDispose GDIPlus_BitmapGetHistogram GDIPlus_BitmapGetHistogramEx GDIPlus_BitmapGetHistogramSize GDIPlus_BitmapGetPixel GDIPlus_BitmapLockBits GDIPlus_BitmapSetPixel GDIPlus_BitmapUnlockBits GDIPlus_BrushClone GDIPlus_BrushCreateSolid GDIPlus_BrushDispose GDIPlus_BrushGetSolidColor GDIPlus_BrushGetType GDIPlus_BrushSetSolidColor GDIPlus_ColorMatrixCreate GDIPlus_ColorMatrixCreateGrayScale GDIPlus_ColorMatrixCreateNegative GDIPlus_ColorMatrixCreateSaturation GDIPlus_ColorMatrixCreateScale GDIPlus_ColorMatrixCreateTranslate GDIPlus_CustomLineCapClone GDIPlus_CustomLineCapCreate GDIPlus_CustomLineCapDispose GDIPlus_CustomLineCapGetStrokeCaps GDIPlus_CustomLineCapSetStrokeCaps GDIPlus_Decoders GDIPlus_DecodersGetCount GDIPlus_DecodersGetSize GDIPlus_DrawImageFX GDIPlus_DrawImageFXEx GDIPlus_DrawImagePoints GDIPlus_EffectCreate GDIPlus_EffectCreateBlur GDIPlus_EffectCreateBrightnessContrast GDIPlus_EffectCreateColorBalance GDIPlus_EffectCreateColorCurve GDIPlus_EffectCreateColorLUT GDIPlus_EffectCreateColorMatrix GDIPlus_EffectCreateHueSaturationLightness GDIPlus_EffectCreateLevels GDIPlus_EffectCreateRedEyeCorrection GDIPlus_EffectCreateSharpen GDIPlus_EffectCreateTint GDIPlus_EffectDispose GDIPlus_EffectGetParameters GDIPlus_EffectSetParameters GDIPlus_Encoders GDIPlus_EncodersGetCLSID GDIPlus_EncodersGetCount GDIPlus_EncodersGetParamList GDIPlus_EncodersGetParamListSize GDIPlus_EncodersGetSize GDIPlus_FontCreate GDIPlus_FontDispose GDIPlus_FontFamilyCreate GDIPlus_FontFamilyCreateFromCollection GDIPlus_FontFamilyDispose GDIPlus_FontFamilyGetCellAscent GDIPlus_FontFamilyGetCellDescent GDIPlus_FontFamilyGetEmHeight GDIPlus_FontFamilyGetLineSpacing GDIPlus_FontGetHeight GDIPlus_FontPrivateAddFont GDIPlus_FontPrivateAddMemoryFont GDIPlus_FontPrivateCollectionDispose GDIPlus_FontPrivateCreateCollection GDIPlus_GraphicsClear GDIPlus_GraphicsCreateFromHDC GDIPlus_GraphicsCreateFromHWND GDIPlus_GraphicsDispose GDIPlus_GraphicsDrawArc GDIPlus_GraphicsDrawBezier GDIPlus_GraphicsDrawClosedCurve GDIPlus_GraphicsDrawClosedCurve2 GDIPlus_GraphicsDrawCurve GDIPlus_GraphicsDrawCurve2 GDIPlus_GraphicsDrawEllipse GDIPlus_GraphicsDrawImage GDIPlus_GraphicsDrawImagePointsRect GDIPlus_GraphicsDrawImageRect GDIPlus_GraphicsDrawImageRectRect GDIPlus_GraphicsDrawLine GDIPlus_GraphicsDrawPath GDIPlus_GraphicsDrawPie GDIPlus_GraphicsDrawPolygon GDIPlus_GraphicsDrawRect GDIPlus_GraphicsDrawString GDIPlus_GraphicsDrawStringEx GDIPlus_GraphicsFillClosedCurve GDIPlus_GraphicsFillClosedCurve2 GDIPlus_GraphicsFillEllipse GDIPlus_GraphicsFillPath GDIPlus_GraphicsFillPie GDIPlus_GraphicsFillPolygon GDIPlus_GraphicsFillRect GDIPlus_GraphicsFillRegion GDIPlus_GraphicsGetCompositingMode GDIPlus_GraphicsGetCompositingQuality GDIPlus_GraphicsGetDC GDIPlus_GraphicsGetInterpolationMode GDIPlus_GraphicsGetSmoothingMode GDIPlus_GraphicsGetTransform GDIPlus_GraphicsMeasureCharacterRanges GDIPlus_GraphicsMeasureString GDIPlus_GraphicsReleaseDC GDIPlus_GraphicsResetClip GDIPlus_GraphicsResetTransform GDIPlus_GraphicsRestore GDIPlus_GraphicsRotateTransform GDIPlus_GraphicsSave GDIPlus_GraphicsScaleTransform GDIPlus_GraphicsSetClipPath GDIPlus_GraphicsSetClipRect GDIPlus_GraphicsSetClipRegion GDIPlus_GraphicsSetCompositingMode GDIPlus_GraphicsSetCompositingQuality GDIPlus_GraphicsSetInterpolationMode GDIPlus_GraphicsSetPixelOffsetMode GDIPlus_GraphicsSetSmoothingMode GDIPlus_GraphicsSetTextRenderingHint GDIPlus_GraphicsSetTransform GDIPlus_GraphicsTransformPoints GDIPlus_GraphicsTranslateTransform GDIPlus_HatchBrushCreate GDIPlus_HICONCreateFromBitmap GDIPlus_ImageAttributesCreate GDIPlus_ImageAttributesDispose GDIPlus_ImageAttributesSetColorKeys GDIPlus_ImageAttributesSetColorMatrix GDIPlus_ImageDispose GDIPlus_ImageGetDimension GDIPlus_ImageGetFlags GDIPlus_ImageGetGraphicsContext GDIPlus_ImageGetHeight GDIPlus_ImageGetHorizontalResolution GDIPlus_ImageGetPixelFormat GDIPlus_ImageGetRawFormat GDIPlus_ImageGetThumbnail GDIPlus_ImageGetType GDIPlus_ImageGetVerticalResolution GDIPlus_ImageGetWidth GDIPlus_ImageLoadFromFile GDIPlus_ImageLoadFromStream GDIPlus_ImageResize GDIPlus_ImageRotateFlip GDIPlus_ImageSaveToFile GDIPlus_ImageSaveToFileEx GDIPlus_ImageSaveToStream GDIPlus_ImageScale GDIPlus_LineBrushCreate GDIPlus_LineBrushCreateFromRect GDIPlus_LineBrushCreateFromRectWithAngle GDIPlus_LineBrushGetColors GDIPlus_LineBrushGetRect GDIPlus_LineBrushMultiplyTransform GDIPlus_LineBrushResetTransform GDIPlus_LineBrushSetBlend GDIPlus_LineBrushSetColors GDIPlus_LineBrushSetGammaCorrection GDIPlus_LineBrushSetLinearBlend GDIPlus_LineBrushSetPresetBlend GDIPlus_LineBrushSetSigmaBlend GDIPlus_LineBrushSetTransform GDIPlus_MatrixClone GDIPlus_MatrixCreate GDIPlus_MatrixDispose GDIPlus_MatrixGetElements GDIPlus_MatrixInvert GDIPlus_MatrixMultiply GDIPlus_MatrixRotate GDIPlus_MatrixScale GDIPlus_MatrixSetElements GDIPlus_MatrixShear GDIPlus_MatrixTransformPoints GDIPlus_MatrixTranslate GDIPlus_PaletteInitialize GDIPlus_ParamAdd GDIPlus_ParamInit GDIPlus_ParamSize GDIPlus_PathAddArc GDIPlus_PathAddBezier GDIPlus_PathAddClosedCurve GDIPlus_PathAddClosedCurve2 GDIPlus_PathAddCurve GDIPlus_PathAddCurve2 GDIPlus_PathAddCurve3 GDIPlus_PathAddEllipse GDIPlus_PathAddLine GDIPlus_PathAddLine2 GDIPlus_PathAddPath GDIPlus_PathAddPie GDIPlus_PathAddPolygon GDIPlus_PathAddRectangle GDIPlus_PathAddString GDIPlus_PathBrushCreate GDIPlus_PathBrushCreateFromPath GDIPlus_PathBrushGetCenterPoint GDIPlus_PathBrushGetFocusScales GDIPlus_PathBrushGetPointCount GDIPlus_PathBrushGetRect GDIPlus_PathBrushGetWrapMode GDIPlus_PathBrushMultiplyTransform GDIPlus_PathBrushResetTransform GDIPlus_PathBrushSetBlend GDIPlus_PathBrushSetCenterColor GDIPlus_PathBrushSetCenterPoint GDIPlus_PathBrushSetFocusScales GDIPlus_PathBrushSetGammaCorrection GDIPlus_PathBrushSetLinearBlend GDIPlus_PathBrushSetPresetBlend GDIPlus_PathBrushSetSigmaBlend GDIPlus_PathBrushSetSurroundColor GDIPlus_PathBrushSetSurroundColorsWithCount GDIPlus_PathBrushSetTransform GDIPlus_PathBrushSetWrapMode GDIPlus_PathClone GDIPlus_PathCloseFigure GDIPlus_PathCreate GDIPlus_PathCreate2 GDIPlus_PathDispose GDIPlus_PathFlatten GDIPlus_PathGetData GDIPlus_PathGetFillMode GDIPlus_PathGetLastPoint GDIPlus_PathGetPointCount GDIPlus_PathGetPoints GDIPlus_PathGetWorldBounds GDIPlus_PathIsOutlineVisiblePoint GDIPlus_PathIsVisiblePoint GDIPlus_PathIterCreate GDIPlus_PathIterDispose GDIPlus_PathIterGetSubpathCount GDIPlus_PathIterNextMarkerPath GDIPlus_PathIterNextSubpathPath GDIPlus_PathIterRewind GDIPlus_PathReset GDIPlus_PathReverse GDIPlus_PathSetFillMode GDIPlus_PathSetMarker GDIPlus_PathStartFigure GDIPlus_PathTransform GDIPlus_PathWarp GDIPlus_PathWiden GDIPlus_PathWindingModeOutline GDIPlus_PenCreate GDIPlus_PenCreate2 GDIPlus_PenDispose GDIPlus_PenGetAlignment GDIPlus_PenGetColor GDIPlus_PenGetCustomEndCap GDIPlus_PenGetDashCap GDIPlus_PenGetDashStyle GDIPlus_PenGetEndCap GDIPlus_PenGetMiterLimit GDIPlus_PenGetWidth GDIPlus_PenSetAlignment GDIPlus_PenSetColor GDIPlus_PenSetCustomEndCap GDIPlus_PenSetDashCap GDIPlus_PenSetDashStyle GDIPlus_PenSetEndCap GDIPlus_PenSetLineCap GDIPlus_PenSetLineJoin GDIPlus_PenSetMiterLimit GDIPlus_PenSetStartCap GDIPlus_PenSetWidth GDIPlus_RectFCreate GDIPlus_RegionClone GDIPlus_RegionCombinePath GDIPlus_RegionCombineRect GDIPlus_RegionCombineRegion GDIPlus_RegionCreate GDIPlus_RegionCreateFromPath GDIPlus_RegionCreateFromRect GDIPlus_RegionDispose GDIPlus_RegionGetBounds GDIPlus_RegionGetHRgn GDIPlus_RegionTransform GDIPlus_RegionTranslate GDIPlus_Shutdown GDIPlus_Startup GDIPlus_StringFormatCreate GDIPlus_StringFormatDispose GDIPlus_StringFormatGetMeasurableCharacterRangeCount GDIPlus_StringFormatSetAlign GDIPlus_StringFormatSetLineAlign GDIPlus_StringFormatSetMeasurableCharacterRanges GDIPlus_TextureCreate GDIPlus_TextureCreate2 GDIPlus_TextureCreateIA GetIP GUICtrlAVI_Close GUICtrlAVI_Create GUICtrlAVI_Destroy GUICtrlAVI_IsPlaying GUICtrlAVI_Open GUICtrlAVI_OpenEx GUICtrlAVI_Play GUICtrlAVI_Seek GUICtrlAVI_Show GUICtrlAVI_Stop GUICtrlButton_Click GUICtrlButton_Create GUICtrlButton_Destroy GUICtrlButton_Enable GUICtrlButton_GetCheck GUICtrlButton_GetFocus GUICtrlButton_GetIdealSize GUICtrlButton_GetImage GUICtrlButton_GetImageList GUICtrlButton_GetNote GUICtrlButton_GetNoteLength GUICtrlButton_GetSplitInfo GUICtrlButton_GetState GUICtrlButton_GetText GUICtrlButton_GetTextMargin GUICtrlButton_SetCheck GUICtrlButton_SetDontClick GUICtrlButton_SetFocus GUICtrlButton_SetImage GUICtrlButton_SetImageList GUICtrlButton_SetNote GUICtrlButton_SetShield GUICtrlButton_SetSize GUICtrlButton_SetSplitInfo GUICtrlButton_SetState GUICtrlButton_SetStyle GUICtrlButton_SetText GUICtrlButton_SetTextMargin GUICtrlButton_Show GUICtrlComboBoxEx_AddDir GUICtrlComboBoxEx_AddString GUICtrlComboBoxEx_BeginUpdate GUICtrlComboBoxEx_Create GUICtrlComboBoxEx_CreateSolidBitMap GUICtrlComboBoxEx_DeleteString GUICtrlComboBoxEx_Destroy GUICtrlComboBoxEx_EndUpdate GUICtrlComboBoxEx_FindStringExact GUICtrlComboBoxEx_GetComboBoxInfo GUICtrlComboBoxEx_GetComboControl GUICtrlComboBoxEx_GetCount GUICtrlComboBoxEx_GetCurSel GUICtrlComboBoxEx_GetDroppedControlRect GUICtrlComboBoxEx_GetDroppedControlRectEx GUICtrlComboBoxEx_GetDroppedState GUICtrlComboBoxEx_GetDroppedWidth GUICtrlComboBoxEx_GetEditControl GUICtrlComboBoxEx_GetEditSel GUICtrlComboBoxEx_GetEditText GUICtrlComboBoxEx_GetExtendedStyle GUICtrlComboBoxEx_GetExtendedUI GUICtrlComboBoxEx_GetImageList GUICtrlComboBoxEx_GetItem GUICtrlComboBoxEx_GetItemEx GUICtrlComboBoxEx_GetItemHeight GUICtrlComboBoxEx_GetItemImage GUICtrlComboBoxEx_GetItemIndent GUICtrlComboBoxEx_GetItemOverlayImage GUICtrlComboBoxEx_GetItemParam GUICtrlComboBoxEx_GetItemSelectedImage GUICtrlComboBoxEx_GetItemText GUICtrlComboBoxEx_GetItemTextLen GUICtrlComboBoxEx_GetList GUICtrlComboBoxEx_GetListArray GUICtrlComboBoxEx_GetLocale GUICtrlComboBoxEx_GetLocaleCountry GUICtrlComboBoxEx_GetLocaleLang GUICtrlComboBoxEx_GetLocalePrimLang GUICtrlComboBoxEx_GetLocaleSubLang GUICtrlComboBoxEx_GetMinVisible GUICtrlComboBoxEx_GetTopIndex GUICtrlComboBoxEx_GetUnicode GUICtrlComboBoxEx_InitStorage GUICtrlComboBoxEx_InsertString GUICtrlComboBoxEx_LimitText GUICtrlComboBoxEx_ReplaceEditSel GUICtrlComboBoxEx_ResetContent GUICtrlComboBoxEx_SetCurSel GUICtrlComboBoxEx_SetDroppedWidth GUICtrlComboBoxEx_SetEditSel GUICtrlComboBoxEx_SetEditText GUICtrlComboBoxEx_SetExtendedStyle GUICtrlComboBoxEx_SetExtendedUI GUICtrlComboBoxEx_SetImageList GUICtrlComboBoxEx_SetItem GUICtrlComboBoxEx_SetItemEx GUICtrlComboBoxEx_SetItemHeight GUICtrlComboBoxEx_SetItemImage GUICtrlComboBoxEx_SetItemIndent GUICtrlComboBoxEx_SetItemOverlayImage GUICtrlComboBoxEx_SetItemParam GUICtrlComboBoxEx_SetItemSelectedImage GUICtrlComboBoxEx_SetMinVisible GUICtrlComboBoxEx_SetTopIndex GUICtrlComboBoxEx_SetUnicode GUICtrlComboBoxEx_ShowDropDown GUICtrlComboBox_AddDir GUICtrlComboBox_AddString GUICtrlComboBox_AutoComplete GUICtrlComboBox_BeginUpdate GUICtrlComboBox_Create GUICtrlComboBox_DeleteString GUICtrlComboBox_Destroy GUICtrlComboBox_EndUpdate GUICtrlComboBox_FindString GUICtrlComboBox_FindStringExact GUICtrlComboBox_GetComboBoxInfo GUICtrlComboBox_GetCount GUICtrlComboBox_GetCueBanner GUICtrlComboBox_GetCurSel GUICtrlComboBox_GetDroppedControlRect GUICtrlComboBox_GetDroppedControlRectEx GUICtrlComboBox_GetDroppedState GUICtrlComboBox_GetDroppedWidth GUICtrlComboBox_GetEditSel GUICtrlComboBox_GetEditText GUICtrlComboBox_GetExtendedUI GUICtrlComboBox_GetHorizontalExtent GUICtrlComboBox_GetItemHeight GUICtrlComboBox_GetLBText GUICtrlComboBox_GetLBTextLen GUICtrlComboBox_GetList GUICtrlComboBox_GetListArray GUICtrlComboBox_GetLocale GUICtrlComboBox_GetLocaleCountry GUICtrlComboBox_GetLocaleLang GUICtrlComboBox_GetLocalePrimLang GUICtrlComboBox_GetLocaleSubLang GUICtrlComboBox_GetMinVisible GUICtrlComboBox_GetTopIndex GUICtrlComboBox_InitStorage GUICtrlComboBox_InsertString GUICtrlComboBox_LimitText GUICtrlComboBox_ReplaceEditSel GUICtrlComboBox_ResetContent GUICtrlComboBox_SelectString GUICtrlComboBox_SetCueBanner GUICtrlComboBox_SetCurSel GUICtrlComboBox_SetDroppedWidth GUICtrlComboBox_SetEditSel GUICtrlComboBox_SetEditText GUICtrlComboBox_SetExtendedUI GUICtrlComboBox_SetHorizontalExtent GUICtrlComboBox_SetItemHeight GUICtrlComboBox_SetMinVisible GUICtrlComboBox_SetTopIndex GUICtrlComboBox_ShowDropDown GUICtrlDTP_Create GUICtrlDTP_Destroy GUICtrlDTP_GetMCColor GUICtrlDTP_GetMCFont GUICtrlDTP_GetMonthCal GUICtrlDTP_GetRange GUICtrlDTP_GetRangeEx GUICtrlDTP_GetSystemTime GUICtrlDTP_GetSystemTimeEx GUICtrlDTP_SetFormat GUICtrlDTP_SetMCColor GUICtrlDTP_SetMCFont GUICtrlDTP_SetRange GUICtrlDTP_SetRangeEx GUICtrlDTP_SetSystemTime GUICtrlDTP_SetSystemTimeEx GUICtrlEdit_AppendText GUICtrlEdit_BeginUpdate GUICtrlEdit_CanUndo GUICtrlEdit_CharFromPos GUICtrlEdit_Create GUICtrlEdit_Destroy GUICtrlEdit_EmptyUndoBuffer GUICtrlEdit_EndUpdate GUICtrlEdit_Find GUICtrlEdit_FmtLines GUICtrlEdit_GetCueBanner GUICtrlEdit_GetFirstVisibleLine GUICtrlEdit_GetLimitText GUICtrlEdit_GetLine GUICtrlEdit_GetLineCount GUICtrlEdit_GetMargins GUICtrlEdit_GetModify GUICtrlEdit_GetPasswordChar GUICtrlEdit_GetRECT GUICtrlEdit_GetRECTEx GUICtrlEdit_GetSel GUICtrlEdit_GetText GUICtrlEdit_GetTextLen GUICtrlEdit_HideBalloonTip GUICtrlEdit_InsertText GUICtrlEdit_LineFromChar GUICtrlEdit_LineIndex GUICtrlEdit_LineLength GUICtrlEdit_LineScroll GUICtrlEdit_PosFromChar GUICtrlEdit_ReplaceSel GUICtrlEdit_Scroll GUICtrlEdit_SetCueBanner GUICtrlEdit_SetLimitText GUICtrlEdit_SetMargins GUICtrlEdit_SetModify GUICtrlEdit_SetPasswordChar GUICtrlEdit_SetReadOnly GUICtrlEdit_SetRECT GUICtrlEdit_SetRECTEx GUICtrlEdit_SetRECTNP GUICtrlEdit_SetRectNPEx GUICtrlEdit_SetSel GUICtrlEdit_SetTabStops GUICtrlEdit_SetText GUICtrlEdit_ShowBalloonTip GUICtrlEdit_Undo GUICtrlHeader_AddItem GUICtrlHeader_ClearFilter GUICtrlHeader_ClearFilterAll GUICtrlHeader_Create GUICtrlHeader_CreateDragImage GUICtrlHeader_DeleteItem GUICtrlHeader_Destroy GUICtrlHeader_EditFilter GUICtrlHeader_GetBitmapMargin GUICtrlHeader_GetImageList GUICtrlHeader_GetItem GUICtrlHeader_GetItemAlign GUICtrlHeader_GetItemBitmap GUICtrlHeader_GetItemCount GUICtrlHeader_GetItemDisplay GUICtrlHeader_GetItemFlags GUICtrlHeader_GetItemFormat GUICtrlHeader_GetItemImage GUICtrlHeader_GetItemOrder GUICtrlHeader_GetItemParam GUICtrlHeader_GetItemRect GUICtrlHeader_GetItemRectEx GUICtrlHeader_GetItemText GUICtrlHeader_GetItemWidth GUICtrlHeader_GetOrderArray GUICtrlHeader_GetUnicodeFormat GUICtrlHeader_HitTest GUICtrlHeader_InsertItem GUICtrlHeader_Layout GUICtrlHeader_OrderToIndex GUICtrlHeader_SetBitmapMargin GUICtrlHeader_SetFilterChangeTimeout GUICtrlHeader_SetHotDivider GUICtrlHeader_SetImageList GUICtrlHeader_SetItem GUICtrlHeader_SetItemAlign GUICtrlHeader_SetItemBitmap GUICtrlHeader_SetItemDisplay GUICtrlHeader_SetItemFlags GUICtrlHeader_SetItemFormat GUICtrlHeader_SetItemImage GUICtrlHeader_SetItemOrder GUICtrlHeader_SetItemParam GUICtrlHeader_SetItemText GUICtrlHeader_SetItemWidth GUICtrlHeader_SetOrderArray GUICtrlHeader_SetUnicodeFormat GUICtrlIpAddress_ClearAddress GUICtrlIpAddress_Create GUICtrlIpAddress_Destroy GUICtrlIpAddress_Get GUICtrlIpAddress_GetArray GUICtrlIpAddress_GetEx GUICtrlIpAddress_IsBlank GUICtrlIpAddress_Set GUICtrlIpAddress_SetArray GUICtrlIpAddress_SetEx GUICtrlIpAddress_SetFocus GUICtrlIpAddress_SetFont GUICtrlIpAddress_SetRange GUICtrlIpAddress_ShowHide GUICtrlListBox_AddFile GUICtrlListBox_AddString GUICtrlListBox_BeginUpdate GUICtrlListBox_ClickItem GUICtrlListBox_Create GUICtrlListBox_DeleteString GUICtrlListBox_Destroy GUICtrlListBox_Dir GUICtrlListBox_EndUpdate GUICtrlListBox_FindInText GUICtrlListBox_FindString GUICtrlListBox_GetAnchorIndex GUICtrlListBox_GetCaretIndex GUICtrlListBox_GetCount GUICtrlListBox_GetCurSel GUICtrlListBox_GetHorizontalExtent GUICtrlListBox_GetItemData GUICtrlListBox_GetItemHeight GUICtrlListBox_GetItemRect GUICtrlListBox_GetItemRectEx GUICtrlListBox_GetListBoxInfo GUICtrlListBox_GetLocale GUICtrlListBox_GetLocaleCountry GUICtrlListBox_GetLocaleLang GUICtrlListBox_GetLocalePrimLang GUICtrlListBox_GetLocaleSubLang GUICtrlListBox_GetSel GUICtrlListBox_GetSelCount GUICtrlListBox_GetSelItems GUICtrlListBox_GetSelItemsText GUICtrlListBox_GetText GUICtrlListBox_GetTextLen GUICtrlListBox_GetTopIndex GUICtrlListBox_InitStorage GUICtrlListBox_InsertString GUICtrlListBox_ItemFromPoint GUICtrlListBox_ReplaceString GUICtrlListBox_ResetContent GUICtrlListBox_SelectString GUICtrlListBox_SelItemRange GUICtrlListBox_SelItemRangeEx GUICtrlListBox_SetAnchorIndex GUICtrlListBox_SetCaretIndex GUICtrlListBox_SetColumnWidth GUICtrlListBox_SetCurSel GUICtrlListBox_SetHorizontalExtent GUICtrlListBox_SetItemData GUICtrlListBox_SetItemHeight GUICtrlListBox_SetLocale GUICtrlListBox_SetSel GUICtrlListBox_SetTabStops GUICtrlListBox_SetTopIndex GUICtrlListBox_Sort GUICtrlListBox_SwapString GUICtrlListBox_UpdateHScroll GUICtrlListView_AddArray GUICtrlListView_AddColumn GUICtrlListView_AddItem GUICtrlListView_AddSubItem GUICtrlListView_ApproximateViewHeight GUICtrlListView_ApproximateViewRect GUICtrlListView_ApproximateViewWidth GUICtrlListView_Arrange GUICtrlListView_BeginUpdate GUICtrlListView_CancelEditLabel GUICtrlListView_ClickItem GUICtrlListView_CopyItems GUICtrlListView_Create GUICtrlListView_CreateDragImage GUICtrlListView_CreateSolidBitMap GUICtrlListView_DeleteAllItems GUICtrlListView_DeleteColumn GUICtrlListView_DeleteItem GUICtrlListView_DeleteItemsSelected GUICtrlListView_Destroy GUICtrlListView_DrawDragImage GUICtrlListView_EditLabel GUICtrlListView_EnableGroupView GUICtrlListView_EndUpdate GUICtrlListView_EnsureVisible GUICtrlListView_FindInText GUICtrlListView_FindItem GUICtrlListView_FindNearest GUICtrlListView_FindParam GUICtrlListView_FindText GUICtrlListView_GetBkColor GUICtrlListView_GetBkImage GUICtrlListView_GetCallbackMask GUICtrlListView_GetColumn GUICtrlListView_GetColumnCount GUICtrlListView_GetColumnOrder GUICtrlListView_GetColumnOrderArray GUICtrlListView_GetColumnWidth GUICtrlListView_GetCounterPage GUICtrlListView_GetEditControl GUICtrlListView_GetExtendedListViewStyle GUICtrlListView_GetFocusedGroup GUICtrlListView_GetGroupCount GUICtrlListView_GetGroupInfo GUICtrlListView_GetGroupInfoByIndex GUICtrlListView_GetGroupRect GUICtrlListView_GetGroupViewEnabled GUICtrlListView_GetHeader GUICtrlListView_GetHotCursor GUICtrlListView_GetHotItem GUICtrlListView_GetHoverTime GUICtrlListView_GetImageList GUICtrlListView_GetISearchString GUICtrlListView_GetItem GUICtrlListView_GetItemChecked GUICtrlListView_GetItemCount GUICtrlListView_GetItemCut GUICtrlListView_GetItemDropHilited GUICtrlListView_GetItemEx GUICtrlListView_GetItemFocused GUICtrlListView_GetItemGroupID GUICtrlListView_GetItemImage GUICtrlListView_GetItemIndent GUICtrlListView_GetItemParam GUICtrlListView_GetItemPosition GUICtrlListView_GetItemPositionX GUICtrlListView_GetItemPositionY GUICtrlListView_GetItemRect GUICtrlListView_GetItemRectEx GUICtrlListView_GetItemSelected GUICtrlListView_GetItemSpacing GUICtrlListView_GetItemSpacingX GUICtrlListView_GetItemSpacingY GUICtrlListView_GetItemState GUICtrlListView_GetItemStateImage GUICtrlListView_GetItemText GUICtrlListView_GetItemTextArray GUICtrlListView_GetItemTextString GUICtrlListView_GetNextItem GUICtrlListView_GetNumberOfWorkAreas GUICtrlListView_GetOrigin GUICtrlListView_GetOriginX GUICtrlListView_GetOriginY GUICtrlListView_GetOutlineColor GUICtrlListView_GetSelectedColumn GUICtrlListView_GetSelectedCount GUICtrlListView_GetSelectedIndices GUICtrlListView_GetSelectionMark GUICtrlListView_GetStringWidth GUICtrlListView_GetSubItemRect GUICtrlListView_GetTextBkColor GUICtrlListView_GetTextColor GUICtrlListView_GetToolTips GUICtrlListView_GetTopIndex GUICtrlListView_GetUnicodeFormat GUICtrlListView_GetView GUICtrlListView_GetViewDetails GUICtrlListView_GetViewLarge GUICtrlListView_GetViewList GUICtrlListView_GetViewRect GUICtrlListView_GetViewSmall GUICtrlListView_GetViewTile GUICtrlListView_HideColumn GUICtrlListView_HitTest GUICtrlListView_InsertColumn GUICtrlListView_InsertGroup GUICtrlListView_InsertItem GUICtrlListView_JustifyColumn GUICtrlListView_MapIDToIndex GUICtrlListView_MapIndexToID GUICtrlListView_RedrawItems GUICtrlListView_RegisterSortCallBack GUICtrlListView_RemoveAllGroups GUICtrlListView_RemoveGroup GUICtrlListView_Scroll GUICtrlListView_SetBkColor GUICtrlListView_SetBkImage GUICtrlListView_SetCallBackMask GUICtrlListView_SetColumn GUICtrlListView_SetColumnOrder GUICtrlListView_SetColumnOrderArray GUICtrlListView_SetColumnWidth GUICtrlListView_SetExtendedListViewStyle GUICtrlListView_SetGroupInfo GUICtrlListView_SetHotItem GUICtrlListView_SetHoverTime GUICtrlListView_SetIconSpacing GUICtrlListView_SetImageList GUICtrlListView_SetItem GUICtrlListView_SetItemChecked GUICtrlListView_SetItemCount GUICtrlListView_SetItemCut GUICtrlListView_SetItemDropHilited GUICtrlListView_SetItemEx GUICtrlListView_SetItemFocused GUICtrlListView_SetItemGroupID GUICtrlListView_SetItemImage GUICtrlListView_SetItemIndent GUICtrlListView_SetItemParam GUICtrlListView_SetItemPosition GUICtrlListView_SetItemPosition32 GUICtrlListView_SetItemSelected GUICtrlListView_SetItemState GUICtrlListView_SetItemStateImage GUICtrlListView_SetItemText GUICtrlListView_SetOutlineColor GUICtrlListView_SetSelectedColumn GUICtrlListView_SetSelectionMark GUICtrlListView_SetTextBkColor GUICtrlListView_SetTextColor GUICtrlListView_SetToolTips GUICtrlListView_SetUnicodeFormat GUICtrlListView_SetView GUICtrlListView_SetWorkAreas GUICtrlListView_SimpleSort GUICtrlListView_SortItems GUICtrlListView_SubItemHitTest GUICtrlListView_UnRegisterSortCallBack GUICtrlMenu_AddMenuItem GUICtrlMenu_AppendMenu GUICtrlMenu_CalculatePopupWindowPosition GUICtrlMenu_CheckMenuItem GUICtrlMenu_CheckRadioItem GUICtrlMenu_CreateMenu GUICtrlMenu_CreatePopup GUICtrlMenu_DeleteMenu GUICtrlMenu_DestroyMenu GUICtrlMenu_DrawMenuBar GUICtrlMenu_EnableMenuItem GUICtrlMenu_FindItem GUICtrlMenu_FindParent GUICtrlMenu_GetItemBmp GUICtrlMenu_GetItemBmpChecked GUICtrlMenu_GetItemBmpUnchecked GUICtrlMenu_GetItemChecked GUICtrlMenu_GetItemCount GUICtrlMenu_GetItemData GUICtrlMenu_GetItemDefault GUICtrlMenu_GetItemDisabled GUICtrlMenu_GetItemEnabled GUICtrlMenu_GetItemGrayed GUICtrlMenu_GetItemHighlighted GUICtrlMenu_GetItemID GUICtrlMenu_GetItemInfo GUICtrlMenu_GetItemRect GUICtrlMenu_GetItemRectEx GUICtrlMenu_GetItemState GUICtrlMenu_GetItemStateEx GUICtrlMenu_GetItemSubMenu GUICtrlMenu_GetItemText GUICtrlMenu_GetItemType GUICtrlMenu_GetMenu GUICtrlMenu_GetMenuBackground GUICtrlMenu_GetMenuBarInfo GUICtrlMenu_GetMenuContextHelpID GUICtrlMenu_GetMenuData GUICtrlMenu_GetMenuDefaultItem GUICtrlMenu_GetMenuHeight GUICtrlMenu_GetMenuInfo GUICtrlMenu_GetMenuStyle GUICtrlMenu_GetSystemMenu GUICtrlMenu_InsertMenuItem GUICtrlMenu_InsertMenuItemEx GUICtrlMenu_IsMenu GUICtrlMenu_LoadMenu GUICtrlMenu_MapAccelerator GUICtrlMenu_MenuItemFromPoint GUICtrlMenu_RemoveMenu GUICtrlMenu_SetItemBitmaps GUICtrlMenu_SetItemBmp GUICtrlMenu_SetItemBmpChecked GUICtrlMenu_SetItemBmpUnchecked GUICtrlMenu_SetItemChecked GUICtrlMenu_SetItemData GUICtrlMenu_SetItemDefault GUICtrlMenu_SetItemDisabled GUICtrlMenu_SetItemEnabled GUICtrlMenu_SetItemGrayed GUICtrlMenu_SetItemHighlighted GUICtrlMenu_SetItemID GUICtrlMenu_SetItemInfo GUICtrlMenu_SetItemState GUICtrlMenu_SetItemSubMenu GUICtrlMenu_SetItemText GUICtrlMenu_SetItemType GUICtrlMenu_SetMenu GUICtrlMenu_SetMenuBackground GUICtrlMenu_SetMenuContextHelpID GUICtrlMenu_SetMenuData GUICtrlMenu_SetMenuDefaultItem GUICtrlMenu_SetMenuHeight GUICtrlMenu_SetMenuInfo GUICtrlMenu_SetMenuStyle GUICtrlMenu_TrackPopupMenu GUICtrlMonthCal_Create GUICtrlMonthCal_Destroy GUICtrlMonthCal_GetCalendarBorder GUICtrlMonthCal_GetCalendarCount GUICtrlMonthCal_GetColor GUICtrlMonthCal_GetColorArray GUICtrlMonthCal_GetCurSel GUICtrlMonthCal_GetCurSelStr GUICtrlMonthCal_GetFirstDOW GUICtrlMonthCal_GetFirstDOWStr GUICtrlMonthCal_GetMaxSelCount GUICtrlMonthCal_GetMaxTodayWidth GUICtrlMonthCal_GetMinReqHeight GUICtrlMonthCal_GetMinReqRect GUICtrlMonthCal_GetMinReqRectArray GUICtrlMonthCal_GetMinReqWidth GUICtrlMonthCal_GetMonthDelta GUICtrlMonthCal_GetMonthRange GUICtrlMonthCal_GetMonthRangeMax GUICtrlMonthCal_GetMonthRangeMaxStr GUICtrlMonthCal_GetMonthRangeMin GUICtrlMonthCal_GetMonthRangeMinStr GUICtrlMonthCal_GetMonthRangeSpan GUICtrlMonthCal_GetRange GUICtrlMonthCal_GetRangeMax GUICtrlMonthCal_GetRangeMaxStr GUICtrlMonthCal_GetRangeMin GUICtrlMonthCal_GetRangeMinStr GUICtrlMonthCal_GetSelRange GUICtrlMonthCal_GetSelRangeMax GUICtrlMonthCal_GetSelRangeMaxStr GUICtrlMonthCal_GetSelRangeMin GUICtrlMonthCal_GetSelRangeMinStr GUICtrlMonthCal_GetToday GUICtrlMonthCal_GetTodayStr GUICtrlMonthCal_GetUnicodeFormat GUICtrlMonthCal_HitTest GUICtrlMonthCal_SetCalendarBorder GUICtrlMonthCal_SetColor GUICtrlMonthCal_SetCurSel GUICtrlMonthCal_SetDayState GUICtrlMonthCal_SetFirstDOW GUICtrlMonthCal_SetMaxSelCount GUICtrlMonthCal_SetMonthDelta GUICtrlMonthCal_SetRange GUICtrlMonthCal_SetSelRange GUICtrlMonthCal_SetToday GUICtrlMonthCal_SetUnicodeFormat GUICtrlRebar_AddBand GUICtrlRebar_AddToolBarBand GUICtrlRebar_BeginDrag GUICtrlRebar_Create GUICtrlRebar_DeleteBand GUICtrlRebar_Destroy GUICtrlRebar_DragMove GUICtrlRebar_EndDrag GUICtrlRebar_GetBandBackColor GUICtrlRebar_GetBandBorders GUICtrlRebar_GetBandBordersEx GUICtrlRebar_GetBandChildHandle GUICtrlRebar_GetBandChildSize GUICtrlRebar_GetBandCount GUICtrlRebar_GetBandForeColor GUICtrlRebar_GetBandHeaderSize GUICtrlRebar_GetBandID GUICtrlRebar_GetBandIdealSize GUICtrlRebar_GetBandLength GUICtrlRebar_GetBandLParam GUICtrlRebar_GetBandMargins GUICtrlRebar_GetBandMarginsEx GUICtrlRebar_GetBandRect GUICtrlRebar_GetBandRectEx GUICtrlRebar_GetBandStyle GUICtrlRebar_GetBandStyleBreak GUICtrlRebar_GetBandStyleChildEdge GUICtrlRebar_GetBandStyleFixedBMP GUICtrlRebar_GetBandStyleFixedSize GUICtrlRebar_GetBandStyleGripperAlways GUICtrlRebar_GetBandStyleHidden GUICtrlRebar_GetBandStyleHideTitle GUICtrlRebar_GetBandStyleNoGripper GUICtrlRebar_GetBandStyleTopAlign GUICtrlRebar_GetBandStyleUseChevron GUICtrlRebar_GetBandStyleVariableHeight GUICtrlRebar_GetBandText GUICtrlRebar_GetBarHeight GUICtrlRebar_GetBarInfo GUICtrlRebar_GetBKColor GUICtrlRebar_GetColorScheme GUICtrlRebar_GetRowCount GUICtrlRebar_GetRowHeight GUICtrlRebar_GetTextColor GUICtrlRebar_GetToolTips GUICtrlRebar_GetUnicodeFormat GUICtrlRebar_HitTest GUICtrlRebar_IDToIndex GUICtrlRebar_MaximizeBand GUICtrlRebar_MinimizeBand GUICtrlRebar_MoveBand GUICtrlRebar_SetBandBackColor GUICtrlRebar_SetBandForeColor GUICtrlRebar_SetBandHeaderSize GUICtrlRebar_SetBandID GUICtrlRebar_SetBandIdealSize GUICtrlRebar_SetBandLength GUICtrlRebar_SetBandLParam GUICtrlRebar_SetBandStyle GUICtrlRebar_SetBandStyleBreak GUICtrlRebar_SetBandStyleChildEdge GUICtrlRebar_SetBandStyleFixedBMP GUICtrlRebar_SetBandStyleFixedSize GUICtrlRebar_SetBandStyleGripperAlways GUICtrlRebar_SetBandStyleHidden GUICtrlRebar_SetBandStyleHideTitle GUICtrlRebar_SetBandStyleNoGripper GUICtrlRebar_SetBandStyleTopAlign GUICtrlRebar_SetBandStyleUseChevron GUICtrlRebar_SetBandStyleVariableHeight GUICtrlRebar_SetBandText GUICtrlRebar_SetBarInfo GUICtrlRebar_SetBKColor GUICtrlRebar_SetColorScheme GUICtrlRebar_SetTextColor GUICtrlRebar_SetToolTips GUICtrlRebar_SetUnicodeFormat GUICtrlRebar_ShowBand GUICtrlRichEdit_AppendText GUICtrlRichEdit_AutoDetectURL GUICtrlRichEdit_CanPaste GUICtrlRichEdit_CanPasteSpecial GUICtrlRichEdit_CanRedo GUICtrlRichEdit_CanUndo GUICtrlRichEdit_ChangeFontSize GUICtrlRichEdit_Copy GUICtrlRichEdit_Create GUICtrlRichEdit_Cut GUICtrlRichEdit_Deselect GUICtrlRichEdit_Destroy GUICtrlRichEdit_EmptyUndoBuffer GUICtrlRichEdit_FindText GUICtrlRichEdit_FindTextInRange GUICtrlRichEdit_GetBkColor GUICtrlRichEdit_GetCharAttributes GUICtrlRichEdit_GetCharBkColor GUICtrlRichEdit_GetCharColor GUICtrlRichEdit_GetCharPosFromXY GUICtrlRichEdit_GetCharPosOfNextWord GUICtrlRichEdit_GetCharPosOfPreviousWord GUICtrlRichEdit_GetCharWordBreakInfo GUICtrlRichEdit_GetFirstCharPosOnLine GUICtrlRichEdit_GetFont GUICtrlRichEdit_GetLineCount GUICtrlRichEdit_GetLineLength GUICtrlRichEdit_GetLineNumberFromCharPos GUICtrlRichEdit_GetNextRedo GUICtrlRichEdit_GetNextUndo GUICtrlRichEdit_GetNumberOfFirstVisibleLine GUICtrlRichEdit_GetParaAlignment GUICtrlRichEdit_GetParaAttributes GUICtrlRichEdit_GetParaBorder GUICtrlRichEdit_GetParaIndents GUICtrlRichEdit_GetParaNumbering GUICtrlRichEdit_GetParaShading GUICtrlRichEdit_GetParaSpacing GUICtrlRichEdit_GetParaTabStops GUICtrlRichEdit_GetPasswordChar GUICtrlRichEdit_GetRECT GUICtrlRichEdit_GetScrollPos GUICtrlRichEdit_GetSel GUICtrlRichEdit_GetSelAA GUICtrlRichEdit_GetSelText GUICtrlRichEdit_GetSpaceUnit GUICtrlRichEdit_GetText GUICtrlRichEdit_GetTextInLine GUICtrlRichEdit_GetTextInRange GUICtrlRichEdit_GetTextLength GUICtrlRichEdit_GetVersion GUICtrlRichEdit_GetXYFromCharPos GUICtrlRichEdit_GetZoom GUICtrlRichEdit_GotoCharPos GUICtrlRichEdit_HideSelection GUICtrlRichEdit_InsertText GUICtrlRichEdit_IsModified GUICtrlRichEdit_IsTextSelected GUICtrlRichEdit_Paste GUICtrlRichEdit_PasteSpecial GUICtrlRichEdit_PauseRedraw GUICtrlRichEdit_Redo GUICtrlRichEdit_ReplaceText GUICtrlRichEdit_ResumeRedraw GUICtrlRichEdit_ScrollLineOrPage GUICtrlRichEdit_ScrollLines GUICtrlRichEdit_ScrollToCaret GUICtrlRichEdit_SetBkColor GUICtrlRichEdit_SetCharAttributes GUICtrlRichEdit_SetCharBkColor GUICtrlRichEdit_SetCharColor GUICtrlRichEdit_SetEventMask GUICtrlRichEdit_SetFont GUICtrlRichEdit_SetLimitOnText GUICtrlRichEdit_SetModified GUICtrlRichEdit_SetParaAlignment GUICtrlRichEdit_SetParaAttributes GUICtrlRichEdit_SetParaBorder GUICtrlRichEdit_SetParaIndents GUICtrlRichEdit_SetParaNumbering GUICtrlRichEdit_SetParaShading GUICtrlRichEdit_SetParaSpacing GUICtrlRichEdit_SetParaTabStops GUICtrlRichEdit_SetPasswordChar GUICtrlRichEdit_SetReadOnly GUICtrlRichEdit_SetRECT GUICtrlRichEdit_SetScrollPos GUICtrlRichEdit_SetSel GUICtrlRichEdit_SetSpaceUnit GUICtrlRichEdit_SetTabStops GUICtrlRichEdit_SetText GUICtrlRichEdit_SetUndoLimit GUICtrlRichEdit_SetZoom GUICtrlRichEdit_StreamFromFile GUICtrlRichEdit_StreamFromVar GUICtrlRichEdit_StreamToFile GUICtrlRichEdit_StreamToVar GUICtrlRichEdit_Undo GUICtrlSlider_ClearSel GUICtrlSlider_ClearTics GUICtrlSlider_Create GUICtrlSlider_Destroy GUICtrlSlider_GetBuddy GUICtrlSlider_GetChannelRect GUICtrlSlider_GetChannelRectEx GUICtrlSlider_GetLineSize GUICtrlSlider_GetLogicalTics GUICtrlSlider_GetNumTics GUICtrlSlider_GetPageSize GUICtrlSlider_GetPos GUICtrlSlider_GetRange GUICtrlSlider_GetRangeMax GUICtrlSlider_GetRangeMin GUICtrlSlider_GetSel GUICtrlSlider_GetSelEnd GUICtrlSlider_GetSelStart GUICtrlSlider_GetThumbLength GUICtrlSlider_GetThumbRect GUICtrlSlider_GetThumbRectEx GUICtrlSlider_GetTic GUICtrlSlider_GetTicPos GUICtrlSlider_GetToolTips GUICtrlSlider_GetUnicodeFormat GUICtrlSlider_SetBuddy GUICtrlSlider_SetLineSize GUICtrlSlider_SetPageSize GUICtrlSlider_SetPos GUICtrlSlider_SetRange GUICtrlSlider_SetRangeMax GUICtrlSlider_SetRangeMin GUICtrlSlider_SetSel GUICtrlSlider_SetSelEnd GUICtrlSlider_SetSelStart GUICtrlSlider_SetThumbLength GUICtrlSlider_SetTic GUICtrlSlider_SetTicFreq GUICtrlSlider_SetTipSide GUICtrlSlider_SetToolTips GUICtrlSlider_SetUnicodeFormat GUICtrlStatusBar_Create GUICtrlStatusBar_Destroy GUICtrlStatusBar_EmbedControl GUICtrlStatusBar_GetBorders GUICtrlStatusBar_GetBordersHorz GUICtrlStatusBar_GetBordersRect GUICtrlStatusBar_GetBordersVert GUICtrlStatusBar_GetCount GUICtrlStatusBar_GetHeight GUICtrlStatusBar_GetIcon GUICtrlStatusBar_GetParts GUICtrlStatusBar_GetRect GUICtrlStatusBar_GetRectEx GUICtrlStatusBar_GetText GUICtrlStatusBar_GetTextFlags GUICtrlStatusBar_GetTextLength GUICtrlStatusBar_GetTextLengthEx GUICtrlStatusBar_GetTipText GUICtrlStatusBar_GetUnicodeFormat GUICtrlStatusBar_GetWidth GUICtrlStatusBar_IsSimple GUICtrlStatusBar_Resize GUICtrlStatusBar_SetBkColor GUICtrlStatusBar_SetIcon GUICtrlStatusBar_SetMinHeight GUICtrlStatusBar_SetParts GUICtrlStatusBar_SetSimple GUICtrlStatusBar_SetText GUICtrlStatusBar_SetTipText GUICtrlStatusBar_SetUnicodeFormat GUICtrlStatusBar_ShowHide GUICtrlTab_ActivateTab GUICtrlTab_ClickTab GUICtrlTab_Create GUICtrlTab_DeleteAllItems GUICtrlTab_DeleteItem GUICtrlTab_DeselectAll GUICtrlTab_Destroy GUICtrlTab_FindTab GUICtrlTab_GetCurFocus GUICtrlTab_GetCurSel GUICtrlTab_GetDisplayRect GUICtrlTab_GetDisplayRectEx GUICtrlTab_GetExtendedStyle GUICtrlTab_GetImageList GUICtrlTab_GetItem GUICtrlTab_GetItemCount GUICtrlTab_GetItemImage GUICtrlTab_GetItemParam GUICtrlTab_GetItemRect GUICtrlTab_GetItemRectEx GUICtrlTab_GetItemState GUICtrlTab_GetItemText GUICtrlTab_GetRowCount GUICtrlTab_GetToolTips GUICtrlTab_GetUnicodeFormat GUICtrlTab_HighlightItem GUICtrlTab_HitTest GUICtrlTab_InsertItem GUICtrlTab_RemoveImage GUICtrlTab_SetCurFocus GUICtrlTab_SetCurSel GUICtrlTab_SetExtendedStyle GUICtrlTab_SetImageList GUICtrlTab_SetItem GUICtrlTab_SetItemImage GUICtrlTab_SetItemParam GUICtrlTab_SetItemSize GUICtrlTab_SetItemState GUICtrlTab_SetItemText GUICtrlTab_SetMinTabWidth GUICtrlTab_SetPadding GUICtrlTab_SetToolTips GUICtrlTab_SetUnicodeFormat GUICtrlToolbar_AddBitmap GUICtrlToolbar_AddButton GUICtrlToolbar_AddButtonSep GUICtrlToolbar_AddString GUICtrlToolbar_ButtonCount GUICtrlToolbar_CheckButton GUICtrlToolbar_ClickAccel GUICtrlToolbar_ClickButton GUICtrlToolbar_ClickIndex GUICtrlToolbar_CommandToIndex GUICtrlToolbar_Create GUICtrlToolbar_Customize GUICtrlToolbar_DeleteButton GUICtrlToolbar_Destroy GUICtrlToolbar_EnableButton GUICtrlToolbar_FindToolbar GUICtrlToolbar_GetAnchorHighlight GUICtrlToolbar_GetBitmapFlags GUICtrlToolbar_GetButtonBitmap GUICtrlToolbar_GetButtonInfo GUICtrlToolbar_GetButtonInfoEx GUICtrlToolbar_GetButtonParam GUICtrlToolbar_GetButtonRect GUICtrlToolbar_GetButtonRectEx GUICtrlToolbar_GetButtonSize GUICtrlToolbar_GetButtonState GUICtrlToolbar_GetButtonStyle GUICtrlToolbar_GetButtonText GUICtrlToolbar_GetColorScheme GUICtrlToolbar_GetDisabledImageList GUICtrlToolbar_GetExtendedStyle GUICtrlToolbar_GetHotImageList GUICtrlToolbar_GetHotItem GUICtrlToolbar_GetImageList GUICtrlToolbar_GetInsertMark GUICtrlToolbar_GetInsertMarkColor GUICtrlToolbar_GetMaxSize GUICtrlToolbar_GetMetrics GUICtrlToolbar_GetPadding GUICtrlToolbar_GetRows GUICtrlToolbar_GetString GUICtrlToolbar_GetStyle GUICtrlToolbar_GetStyleAltDrag GUICtrlToolbar_GetStyleCustomErase GUICtrlToolbar_GetStyleFlat GUICtrlToolbar_GetStyleList GUICtrlToolbar_GetStyleRegisterDrop GUICtrlToolbar_GetStyleToolTips GUICtrlToolbar_GetStyleTransparent GUICtrlToolbar_GetStyleWrapable GUICtrlToolbar_GetTextRows GUICtrlToolbar_GetToolTips GUICtrlToolbar_GetUnicodeFormat GUICtrlToolbar_HideButton GUICtrlToolbar_HighlightButton GUICtrlToolbar_HitTest GUICtrlToolbar_IndexToCommand GUICtrlToolbar_InsertButton GUICtrlToolbar_InsertMarkHitTest GUICtrlToolbar_IsButtonChecked GUICtrlToolbar_IsButtonEnabled GUICtrlToolbar_IsButtonHidden GUICtrlToolbar_IsButtonHighlighted GUICtrlToolbar_IsButtonIndeterminate GUICtrlToolbar_IsButtonPressed GUICtrlToolbar_LoadBitmap GUICtrlToolbar_LoadImages GUICtrlToolbar_MapAccelerator GUICtrlToolbar_MoveButton GUICtrlToolbar_PressButton GUICtrlToolbar_SetAnchorHighlight GUICtrlToolbar_SetBitmapSize GUICtrlToolbar_SetButtonBitMap GUICtrlToolbar_SetButtonInfo GUICtrlToolbar_SetButtonInfoEx GUICtrlToolbar_SetButtonParam GUICtrlToolbar_SetButtonSize GUICtrlToolbar_SetButtonState GUICtrlToolbar_SetButtonStyle GUICtrlToolbar_SetButtonText GUICtrlToolbar_SetButtonWidth GUICtrlToolbar_SetCmdID GUICtrlToolbar_SetColorScheme GUICtrlToolbar_SetDisabledImageList GUICtrlToolbar_SetDrawTextFlags GUICtrlToolbar_SetExtendedStyle GUICtrlToolbar_SetHotImageList GUICtrlToolbar_SetHotItem GUICtrlToolbar_SetImageList GUICtrlToolbar_SetIndent GUICtrlToolbar_SetIndeterminate GUICtrlToolbar_SetInsertMark GUICtrlToolbar_SetInsertMarkColor GUICtrlToolbar_SetMaxTextRows GUICtrlToolbar_SetMetrics GUICtrlToolbar_SetPadding GUICtrlToolbar_SetParent GUICtrlToolbar_SetRows GUICtrlToolbar_SetStyle GUICtrlToolbar_SetStyleAltDrag GUICtrlToolbar_SetStyleCustomErase GUICtrlToolbar_SetStyleFlat GUICtrlToolbar_SetStyleList GUICtrlToolbar_SetStyleRegisterDrop GUICtrlToolbar_SetStyleToolTips GUICtrlToolbar_SetStyleTransparent GUICtrlToolbar_SetStyleWrapable GUICtrlToolbar_SetToolTips GUICtrlToolbar_SetUnicodeFormat GUICtrlToolbar_SetWindowTheme GUICtrlTreeView_Add GUICtrlTreeView_AddChild GUICtrlTreeView_AddChildFirst GUICtrlTreeView_AddFirst GUICtrlTreeView_BeginUpdate GUICtrlTreeView_ClickItem GUICtrlTreeView_Create GUICtrlTreeView_CreateDragImage GUICtrlTreeView_CreateSolidBitMap GUICtrlTreeView_Delete GUICtrlTreeView_DeleteAll GUICtrlTreeView_DeleteChildren GUICtrlTreeView_Destroy GUICtrlTreeView_DisplayRect GUICtrlTreeView_DisplayRectEx GUICtrlTreeView_EditText GUICtrlTreeView_EndEdit GUICtrlTreeView_EndUpdate GUICtrlTreeView_EnsureVisible GUICtrlTreeView_Expand GUICtrlTreeView_ExpandedOnce GUICtrlTreeView_FindItem GUICtrlTreeView_FindItemEx GUICtrlTreeView_GetBkColor GUICtrlTreeView_GetBold GUICtrlTreeView_GetChecked GUICtrlTreeView_GetChildCount GUICtrlTreeView_GetChildren GUICtrlTreeView_GetCount GUICtrlTreeView_GetCut GUICtrlTreeView_GetDropTarget GUICtrlTreeView_GetEditControl GUICtrlTreeView_GetExpanded GUICtrlTreeView_GetFirstChild GUICtrlTreeView_GetFirstItem GUICtrlTreeView_GetFirstVisible GUICtrlTreeView_GetFocused GUICtrlTreeView_GetHeight GUICtrlTreeView_GetImageIndex GUICtrlTreeView_GetImageListIconHandle GUICtrlTreeView_GetIndent GUICtrlTreeView_GetInsertMarkColor GUICtrlTreeView_GetISearchString GUICtrlTreeView_GetItemByIndex GUICtrlTreeView_GetItemHandle GUICtrlTreeView_GetItemParam GUICtrlTreeView_GetLastChild GUICtrlTreeView_GetLineColor GUICtrlTreeView_GetNext GUICtrlTreeView_GetNextChild GUICtrlTreeView_GetNextSibling GUICtrlTreeView_GetNextVisible GUICtrlTreeView_GetNormalImageList GUICtrlTreeView_GetParentHandle GUICtrlTreeView_GetParentParam GUICtrlTreeView_GetPrev GUICtrlTreeView_GetPrevChild GUICtrlTreeView_GetPrevSibling GUICtrlTreeView_GetPrevVisible GUICtrlTreeView_GetScrollTime GUICtrlTreeView_GetSelected GUICtrlTreeView_GetSelectedImageIndex GUICtrlTreeView_GetSelection GUICtrlTreeView_GetSiblingCount GUICtrlTreeView_GetState GUICtrlTreeView_GetStateImageIndex GUICtrlTreeView_GetStateImageList GUICtrlTreeView_GetText GUICtrlTreeView_GetTextColor GUICtrlTreeView_GetToolTips GUICtrlTreeView_GetTree GUICtrlTreeView_GetUnicodeFormat GUICtrlTreeView_GetVisible GUICtrlTreeView_GetVisibleCount GUICtrlTreeView_HitTest GUICtrlTreeView_HitTestEx GUICtrlTreeView_HitTestItem GUICtrlTreeView_Index GUICtrlTreeView_InsertItem GUICtrlTreeView_IsFirstItem GUICtrlTreeView_IsParent GUICtrlTreeView_Level GUICtrlTreeView_SelectItem GUICtrlTreeView_SelectItemByIndex GUICtrlTreeView_SetBkColor GUICtrlTreeView_SetBold GUICtrlTreeView_SetChecked GUICtrlTreeView_SetCheckedByIndex GUICtrlTreeView_SetChildren GUICtrlTreeView_SetCut GUICtrlTreeView_SetDropTarget GUICtrlTreeView_SetFocused GUICtrlTreeView_SetHeight GUICtrlTreeView_SetIcon GUICtrlTreeView_SetImageIndex GUICtrlTreeView_SetIndent GUICtrlTreeView_SetInsertMark GUICtrlTreeView_SetInsertMarkColor GUICtrlTreeView_SetItemHeight GUICtrlTreeView_SetItemParam GUICtrlTreeView_SetLineColor GUICtrlTreeView_SetNormalImageList GUICtrlTreeView_SetScrollTime GUICtrlTreeView_SetSelected GUICtrlTreeView_SetSelectedImageIndex GUICtrlTreeView_SetState GUICtrlTreeView_SetStateImageIndex GUICtrlTreeView_SetStateImageList GUICtrlTreeView_SetText GUICtrlTreeView_SetTextColor GUICtrlTreeView_SetToolTips GUICtrlTreeView_SetUnicodeFormat GUICtrlTreeView_Sort GUIImageList_Add GUIImageList_AddBitmap GUIImageList_AddIcon GUIImageList_AddMasked GUIImageList_BeginDrag GUIImageList_Copy GUIImageList_Create GUIImageList_Destroy GUIImageList_DestroyIcon GUIImageList_DragEnter GUIImageList_DragLeave GUIImageList_DragMove GUIImageList_Draw GUIImageList_DrawEx GUIImageList_Duplicate GUIImageList_EndDrag GUIImageList_GetBkColor GUIImageList_GetIcon GUIImageList_GetIconHeight GUIImageList_GetIconSize GUIImageList_GetIconSizeEx GUIImageList_GetIconWidth GUIImageList_GetImageCount GUIImageList_GetImageInfoEx GUIImageList_Remove GUIImageList_ReplaceIcon GUIImageList_SetBkColor GUIImageList_SetIconSize GUIImageList_SetImageCount GUIImageList_Swap GUIScrollBars_EnableScrollBar GUIScrollBars_GetScrollBarInfoEx GUIScrollBars_GetScrollBarRect GUIScrollBars_GetScrollBarRGState GUIScrollBars_GetScrollBarXYLineButton GUIScrollBars_GetScrollBarXYThumbBottom GUIScrollBars_GetScrollBarXYThumbTop GUIScrollBars_GetScrollInfo GUIScrollBars_GetScrollInfoEx GUIScrollBars_GetScrollInfoMax GUIScrollBars_GetScrollInfoMin GUIScrollBars_GetScrollInfoPage GUIScrollBars_GetScrollInfoPos GUIScrollBars_GetScrollInfoTrackPos GUIScrollBars_GetScrollPos GUIScrollBars_GetScrollRange GUIScrollBars_Init GUIScrollBars_ScrollWindow GUIScrollBars_SetScrollInfo GUIScrollBars_SetScrollInfoMax GUIScrollBars_SetScrollInfoMin GUIScrollBars_SetScrollInfoPage GUIScrollBars_SetScrollInfoPos GUIScrollBars_SetScrollRange GUIScrollBars_ShowScrollBar GUIToolTip_Activate GUIToolTip_AddTool GUIToolTip_AdjustRect GUIToolTip_BitsToTTF GUIToolTip_Create GUIToolTip_Deactivate GUIToolTip_DelTool GUIToolTip_Destroy GUIToolTip_EnumTools GUIToolTip_GetBubbleHeight GUIToolTip_GetBubbleSize GUIToolTip_GetBubbleWidth GUIToolTip_GetCurrentTool GUIToolTip_GetDelayTime GUIToolTip_GetMargin GUIToolTip_GetMarginEx GUIToolTip_GetMaxTipWidth GUIToolTip_GetText GUIToolTip_GetTipBkColor GUIToolTip_GetTipTextColor GUIToolTip_GetTitleBitMap GUIToolTip_GetTitleText GUIToolTip_GetToolCount GUIToolTip_GetToolInfo GUIToolTip_HitTest GUIToolTip_NewToolRect GUIToolTip_Pop GUIToolTip_PopUp GUIToolTip_SetDelayTime GUIToolTip_SetMargin GUIToolTip_SetMaxTipWidth GUIToolTip_SetTipBkColor GUIToolTip_SetTipTextColor GUIToolTip_SetTitle GUIToolTip_SetToolInfo GUIToolTip_SetWindowTheme GUIToolTip_ToolExists GUIToolTip_ToolToArray GUIToolTip_TrackActivate GUIToolTip_TrackPosition GUIToolTip_Update GUIToolTip_UpdateTipText HexToString IEAction IEAttach IEBodyReadHTML IEBodyReadText IEBodyWriteHTML IECreate IECreateEmbedded IEDocGetObj IEDocInsertHTML IEDocInsertText IEDocReadHTML IEDocWriteHTML IEErrorNotify IEFormElementCheckBoxSelect IEFormElementGetCollection IEFormElementGetObjByName IEFormElementGetValue IEFormElementOptionSelect IEFormElementRadioSelect IEFormElementSetValue IEFormGetCollection IEFormGetObjByName IEFormImageClick IEFormReset IEFormSubmit IEFrameGetCollection IEFrameGetObjByName IEGetObjById IEGetObjByName IEHeadInsertEventScript IEImgClick IEImgGetCollection IEIsFrameSet IELinkClickByIndex IELinkClickByText IELinkGetCollection IELoadWait IELoadWaitTimeout IENavigate IEPropertyGet IEPropertySet IEQuit IETableGetCollection IETableWriteToArray IETagNameAllGetCollection IETagNameGetCollection IE_Example IE_Introduction IE_VersionInfo INetExplorerCapable INetGetSource INetMail INetSmtpMail IsPressed MathCheckDiv Max MemGlobalAlloc MemGlobalFree MemGlobalLock MemGlobalSize MemGlobalUnlock MemMoveMemory MemVirtualAlloc MemVirtualAllocEx MemVirtualFree MemVirtualFreeEx Min MouseTrap NamedPipes_CallNamedPipe NamedPipes_ConnectNamedPipe NamedPipes_CreateNamedPipe NamedPipes_CreatePipe NamedPipes_DisconnectNamedPipe NamedPipes_GetNamedPipeHandleState NamedPipes_GetNamedPipeInfo NamedPipes_PeekNamedPipe NamedPipes_SetNamedPipeHandleState NamedPipes_TransactNamedPipe NamedPipes_WaitNamedPipe Net_Share_ConnectionEnum Net_Share_FileClose Net_Share_FileEnum Net_Share_FileGetInfo Net_Share_PermStr Net_Share_ResourceStr Net_Share_SessionDel Net_Share_SessionEnum Net_Share_SessionGetInfo Net_Share_ShareAdd Net_Share_ShareCheck Net_Share_ShareDel Net_Share_ShareEnum Net_Share_ShareGetInfo Net_Share_ShareSetInfo Net_Share_StatisticsGetSvr Net_Share_StatisticsGetWrk Now NowCalc NowCalcDate NowDate NowTime PathFull PathGetRelative PathMake PathSplit ProcessGetName ProcessGetPriority Radian ReplaceStringInFile RunDos ScreenCapture_Capture ScreenCapture_CaptureWnd ScreenCapture_SaveImage ScreenCapture_SetBMPFormat ScreenCapture_SetJPGQuality ScreenCapture_SetTIFColorDepth ScreenCapture_SetTIFCompression Security__AdjustTokenPrivileges Security__CreateProcessWithToken Security__DuplicateTokenEx Security__GetAccountSid Security__GetLengthSid Security__GetTokenInformation Security__ImpersonateSelf Security__IsValidSid Security__LookupAccountName Security__LookupAccountSid Security__LookupPrivilegeValue Security__OpenProcessToken Security__OpenThreadToken Security__OpenThreadTokenEx Security__SetPrivilege Security__SetTokenInformation Security__SidToStringSid Security__SidTypeStr Security__StringSidToSid SendMessage SendMessageA SetDate SetTime Singleton SoundClose SoundLength SoundOpen SoundPause SoundPlay SoundPos SoundResume SoundSeek SoundStatus SoundStop SQLite_Changes SQLite_Close SQLite_Display2DResult SQLite_Encode SQLite_ErrCode SQLite_ErrMsg SQLite_Escape SQLite_Exec SQLite_FastEncode SQLite_FastEscape SQLite_FetchData SQLite_FetchNames SQLite_GetTable SQLite_GetTable2d SQLite_LastInsertRowID SQLite_LibVersion SQLite_Open SQLite_Query SQLite_QueryFinalize SQLite_QueryReset SQLite_QuerySingleRow SQLite_SafeMode SQLite_SetTimeout SQLite_Shutdown SQLite_SQLiteExe SQLite_Startup SQLite_TotalChanges StringBetween StringExplode StringInsert StringProper StringRepeat StringTitleCase StringToHex TCPIpToName TempFile TicksToTime Timer_Diff Timer_GetIdleTime Timer_GetTimerID Timer_Init Timer_KillAllTimers Timer_KillTimer Timer_SetTimer TimeToTicks VersionCompare viClose viExecCommand viFindGpib viGpibBusReset viGTL viInteractiveControl viOpen viSetAttribute viSetTimeout WeekNumberISO WinAPI_AbortPath WinAPI_ActivateKeyboardLayout WinAPI_AddClipboardFormatListener WinAPI_AddFontMemResourceEx WinAPI_AddFontResourceEx WinAPI_AddIconOverlay WinAPI_AddIconTransparency WinAPI_AddMRUString WinAPI_AdjustBitmap WinAPI_AdjustTokenPrivileges WinAPI_AdjustWindowRectEx WinAPI_AlphaBlend WinAPI_AngleArc WinAPI_AnimateWindow WinAPI_Arc WinAPI_ArcTo WinAPI_ArrayToStruct WinAPI_AssignProcessToJobObject WinAPI_AssocGetPerceivedType WinAPI_AssocQueryString WinAPI_AttachConsole WinAPI_AttachThreadInput WinAPI_BackupRead WinAPI_BackupReadAbort WinAPI_BackupSeek WinAPI_BackupWrite WinAPI_BackupWriteAbort WinAPI_Beep WinAPI_BeginBufferedPaint WinAPI_BeginDeferWindowPos WinAPI_BeginPaint WinAPI_BeginPath WinAPI_BeginUpdateResource WinAPI_BitBlt WinAPI_BringWindowToTop WinAPI_BroadcastSystemMessage WinAPI_BrowseForFolderDlg WinAPI_BufferedPaintClear WinAPI_BufferedPaintInit WinAPI_BufferedPaintSetAlpha WinAPI_BufferedPaintUnInit WinAPI_CallNextHookEx WinAPI_CallWindowProc WinAPI_CallWindowProcW WinAPI_CascadeWindows WinAPI_ChangeWindowMessageFilterEx WinAPI_CharToOem WinAPI_ChildWindowFromPointEx WinAPI_ClientToScreen WinAPI_ClipCursor WinAPI_CloseDesktop WinAPI_CloseEnhMetaFile WinAPI_CloseFigure WinAPI_CloseHandle WinAPI_CloseThemeData WinAPI_CloseWindow WinAPI_CloseWindowStation WinAPI_CLSIDFromProgID WinAPI_CoInitialize WinAPI_ColorAdjustLuma WinAPI_ColorHLSToRGB WinAPI_ColorRGBToHLS WinAPI_CombineRgn WinAPI_CombineTransform WinAPI_CommandLineToArgv WinAPI_CommDlgExtendedError WinAPI_CommDlgExtendedErrorEx WinAPI_CompareString WinAPI_CompressBitmapBits WinAPI_CompressBuffer WinAPI_ComputeCrc32 WinAPI_ConfirmCredentials WinAPI_CopyBitmap WinAPI_CopyCursor WinAPI_CopyEnhMetaFile WinAPI_CopyFileEx WinAPI_CopyIcon WinAPI_CopyImage WinAPI_CopyRect WinAPI_CopyStruct WinAPI_CoTaskMemAlloc WinAPI_CoTaskMemFree WinAPI_CoTaskMemRealloc WinAPI_CoUninitialize WinAPI_Create32BitHBITMAP WinAPI_Create32BitHICON WinAPI_CreateANDBitmap WinAPI_CreateBitmap WinAPI_CreateBitmapIndirect WinAPI_CreateBrushIndirect WinAPI_CreateBuffer WinAPI_CreateBufferFromStruct WinAPI_CreateCaret WinAPI_CreateColorAdjustment WinAPI_CreateCompatibleBitmap WinAPI_CreateCompatibleBitmapEx WinAPI_CreateCompatibleDC WinAPI_CreateDesktop WinAPI_CreateDIB WinAPI_CreateDIBColorTable WinAPI_CreateDIBitmap WinAPI_CreateDIBSection WinAPI_CreateDirectory WinAPI_CreateDirectoryEx WinAPI_CreateEllipticRgn WinAPI_CreateEmptyIcon WinAPI_CreateEnhMetaFile WinAPI_CreateEvent WinAPI_CreateFile WinAPI_CreateFileEx WinAPI_CreateFileMapping WinAPI_CreateFont WinAPI_CreateFontEx WinAPI_CreateFontIndirect WinAPI_CreateGUID WinAPI_CreateHardLink WinAPI_CreateIcon WinAPI_CreateIconFromResourceEx WinAPI_CreateIconIndirect WinAPI_CreateJobObject WinAPI_CreateMargins WinAPI_CreateMRUList WinAPI_CreateMutex WinAPI_CreateNullRgn WinAPI_CreateNumberFormatInfo WinAPI_CreateObjectID WinAPI_CreatePen WinAPI_CreatePoint WinAPI_CreatePolygonRgn WinAPI_CreateProcess WinAPI_CreateProcessWithToken WinAPI_CreateRect WinAPI_CreateRectEx WinAPI_CreateRectRgn WinAPI_CreateRectRgnIndirect WinAPI_CreateRoundRectRgn WinAPI_CreateSemaphore WinAPI_CreateSize WinAPI_CreateSolidBitmap WinAPI_CreateSolidBrush WinAPI_CreateStreamOnHGlobal WinAPI_CreateString WinAPI_CreateSymbolicLink WinAPI_CreateTransform WinAPI_CreateWindowEx WinAPI_CreateWindowStation WinAPI_DecompressBuffer WinAPI_DecryptFile WinAPI_DeferWindowPos WinAPI_DefineDosDevice WinAPI_DefRawInputProc WinAPI_DefSubclassProc WinAPI_DefWindowProc WinAPI_DefWindowProcW WinAPI_DeleteDC WinAPI_DeleteEnhMetaFile WinAPI_DeleteFile WinAPI_DeleteObject WinAPI_DeleteObjectID WinAPI_DeleteVolumeMountPoint WinAPI_DeregisterShellHookWindow WinAPI_DestroyCaret WinAPI_DestroyCursor WinAPI_DestroyIcon WinAPI_DestroyWindow WinAPI_DeviceIoControl WinAPI_DisplayStruct WinAPI_DllGetVersion WinAPI_DllInstall WinAPI_DllUninstall WinAPI_DPtoLP WinAPI_DragAcceptFiles WinAPI_DragFinish WinAPI_DragQueryFileEx WinAPI_DragQueryPoint WinAPI_DrawAnimatedRects WinAPI_DrawBitmap WinAPI_DrawEdge WinAPI_DrawFocusRect WinAPI_DrawFrameControl WinAPI_DrawIcon WinAPI_DrawIconEx WinAPI_DrawLine WinAPI_DrawShadowText WinAPI_DrawText WinAPI_DrawThemeBackground WinAPI_DrawThemeEdge WinAPI_DrawThemeIcon WinAPI_DrawThemeParentBackground WinAPI_DrawThemeText WinAPI_DrawThemeTextEx WinAPI_DuplicateEncryptionInfoFile WinAPI_DuplicateHandle WinAPI_DuplicateTokenEx WinAPI_DwmDefWindowProc WinAPI_DwmEnableBlurBehindWindow WinAPI_DwmEnableComposition WinAPI_DwmExtendFrameIntoClientArea WinAPI_DwmGetColorizationColor WinAPI_DwmGetColorizationParameters WinAPI_DwmGetWindowAttribute WinAPI_DwmInvalidateIconicBitmaps WinAPI_DwmIsCompositionEnabled WinAPI_DwmQueryThumbnailSourceSize WinAPI_DwmRegisterThumbnail WinAPI_DwmSetColorizationParameters WinAPI_DwmSetIconicLivePreviewBitmap WinAPI_DwmSetIconicThumbnail WinAPI_DwmSetWindowAttribute WinAPI_DwmUnregisterThumbnail WinAPI_DwmUpdateThumbnailProperties WinAPI_DWordToFloat WinAPI_DWordToInt WinAPI_EjectMedia WinAPI_Ellipse WinAPI_EmptyWorkingSet WinAPI_EnableWindow WinAPI_EncryptFile WinAPI_EncryptionDisable WinAPI_EndBufferedPaint WinAPI_EndDeferWindowPos WinAPI_EndPaint WinAPI_EndPath WinAPI_EndUpdateResource WinAPI_EnumChildProcess WinAPI_EnumChildWindows WinAPI_EnumDesktops WinAPI_EnumDesktopWindows WinAPI_EnumDeviceDrivers WinAPI_EnumDisplayDevices WinAPI_EnumDisplayMonitors WinAPI_EnumDisplaySettings WinAPI_EnumDllProc WinAPI_EnumFiles WinAPI_EnumFileStreams WinAPI_EnumFontFamilies WinAPI_EnumHardLinks WinAPI_EnumMRUList WinAPI_EnumPageFiles WinAPI_EnumProcessHandles WinAPI_EnumProcessModules WinAPI_EnumProcessThreads WinAPI_EnumProcessWindows WinAPI_EnumRawInputDevices WinAPI_EnumResourceLanguages WinAPI_EnumResourceNames WinAPI_EnumResourceTypes WinAPI_EnumSystemGeoID WinAPI_EnumSystemLocales WinAPI_EnumUILanguages WinAPI_EnumWindows WinAPI_EnumWindowsPopup WinAPI_EnumWindowStations WinAPI_EnumWindowsTop WinAPI_EqualMemory WinAPI_EqualRect WinAPI_EqualRgn WinAPI_ExcludeClipRect WinAPI_ExpandEnvironmentStrings WinAPI_ExtCreatePen WinAPI_ExtCreateRegion WinAPI_ExtFloodFill WinAPI_ExtractIcon WinAPI_ExtractIconEx WinAPI_ExtSelectClipRgn WinAPI_FatalAppExit WinAPI_FatalExit WinAPI_FileEncryptionStatus WinAPI_FileExists WinAPI_FileIconInit WinAPI_FileInUse WinAPI_FillMemory WinAPI_FillPath WinAPI_FillRect WinAPI_FillRgn WinAPI_FindClose WinAPI_FindCloseChangeNotification WinAPI_FindExecutable WinAPI_FindFirstChangeNotification WinAPI_FindFirstFile WinAPI_FindFirstFileName WinAPI_FindFirstStream WinAPI_FindNextChangeNotification WinAPI_FindNextFile WinAPI_FindNextFileName WinAPI_FindNextStream WinAPI_FindResource WinAPI_FindResourceEx WinAPI_FindTextDlg WinAPI_FindWindow WinAPI_FlashWindow WinAPI_FlashWindowEx WinAPI_FlattenPath WinAPI_FloatToDWord WinAPI_FloatToInt WinAPI_FlushFileBuffers WinAPI_FlushFRBuffer WinAPI_FlushViewOfFile WinAPI_FormatDriveDlg WinAPI_FormatMessage WinAPI_FrameRect WinAPI_FrameRgn WinAPI_FreeLibrary WinAPI_FreeMemory WinAPI_FreeMRUList WinAPI_FreeResource WinAPI_GdiComment WinAPI_GetActiveWindow WinAPI_GetAllUsersProfileDirectory WinAPI_GetAncestor WinAPI_GetApplicationRestartSettings WinAPI_GetArcDirection WinAPI_GetAsyncKeyState WinAPI_GetBinaryType WinAPI_GetBitmapBits WinAPI_GetBitmapDimension WinAPI_GetBitmapDimensionEx WinAPI_GetBkColor WinAPI_GetBkMode WinAPI_GetBoundsRect WinAPI_GetBrushOrg WinAPI_GetBufferedPaintBits WinAPI_GetBufferedPaintDC WinAPI_GetBufferedPaintTargetDC WinAPI_GetBufferedPaintTargetRect WinAPI_GetBValue WinAPI_GetCaretBlinkTime WinAPI_GetCaretPos WinAPI_GetCDType WinAPI_GetClassInfoEx WinAPI_GetClassLongEx WinAPI_GetClassName WinAPI_GetClientHeight WinAPI_GetClientRect WinAPI_GetClientWidth WinAPI_GetClipboardSequenceNumber WinAPI_GetClipBox WinAPI_GetClipCursor WinAPI_GetClipRgn WinAPI_GetColorAdjustment WinAPI_GetCompressedFileSize WinAPI_GetCompression WinAPI_GetConnectedDlg WinAPI_GetCurrentDirectory WinAPI_GetCurrentHwProfile WinAPI_GetCurrentObject WinAPI_GetCurrentPosition WinAPI_GetCurrentProcess WinAPI_GetCurrentProcessExplicitAppUserModelID WinAPI_GetCurrentProcessID WinAPI_GetCurrentThemeName WinAPI_GetCurrentThread WinAPI_GetCurrentThreadId WinAPI_GetCursor WinAPI_GetCursorInfo WinAPI_GetDateFormat WinAPI_GetDC WinAPI_GetDCEx WinAPI_GetDefaultPrinter WinAPI_GetDefaultUserProfileDirectory WinAPI_GetDesktopWindow WinAPI_GetDeviceCaps WinAPI_GetDeviceDriverBaseName WinAPI_GetDeviceDriverFileName WinAPI_GetDeviceGammaRamp WinAPI_GetDIBColorTable WinAPI_GetDIBits WinAPI_GetDiskFreeSpaceEx WinAPI_GetDlgCtrlID WinAPI_GetDlgItem WinAPI_GetDllDirectory WinAPI_GetDriveBusType WinAPI_GetDriveGeometryEx WinAPI_GetDriveNumber WinAPI_GetDriveType WinAPI_GetDurationFormat WinAPI_GetEffectiveClientRect WinAPI_GetEnhMetaFile WinAPI_GetEnhMetaFileBits WinAPI_GetEnhMetaFileDescription WinAPI_GetEnhMetaFileDimension WinAPI_GetEnhMetaFileHeader WinAPI_GetErrorMessage WinAPI_GetErrorMode WinAPI_GetExitCodeProcess WinAPI_GetExtended WinAPI_GetFileAttributes WinAPI_GetFileID WinAPI_GetFileInformationByHandle WinAPI_GetFileInformationByHandleEx WinAPI_GetFilePointerEx WinAPI_GetFileSizeEx WinAPI_GetFileSizeOnDisk WinAPI_GetFileTitle WinAPI_GetFileType WinAPI_GetFileVersionInfo WinAPI_GetFinalPathNameByHandle WinAPI_GetFinalPathNameByHandleEx WinAPI_GetFocus WinAPI_GetFontMemoryResourceInfo WinAPI_GetFontName WinAPI_GetFontResourceInfo WinAPI_GetForegroundWindow WinAPI_GetFRBuffer WinAPI_GetFullPathName WinAPI_GetGeoInfo WinAPI_GetGlyphOutline WinAPI_GetGraphicsMode WinAPI_GetGuiResources WinAPI_GetGUIThreadInfo WinAPI_GetGValue WinAPI_GetHandleInformation WinAPI_GetHGlobalFromStream WinAPI_GetIconDimension WinAPI_GetIconInfo WinAPI_GetIconInfoEx WinAPI_GetIdleTime WinAPI_GetKeyboardLayout WinAPI_GetKeyboardLayoutList WinAPI_GetKeyboardState WinAPI_GetKeyboardType WinAPI_GetKeyNameText WinAPI_GetKeyState WinAPI_GetLastActivePopup WinAPI_GetLastError WinAPI_GetLastErrorMessage WinAPI_GetLayeredWindowAttributes WinAPI_GetLocaleInfo WinAPI_GetLogicalDrives WinAPI_GetMapMode WinAPI_GetMemorySize WinAPI_GetMessageExtraInfo WinAPI_GetModuleFileNameEx WinAPI_GetModuleHandle WinAPI_GetModuleHandleEx WinAPI_GetModuleInformation WinAPI_GetMonitorInfo WinAPI_GetMousePos WinAPI_GetMousePosX WinAPI_GetMousePosY WinAPI_GetMUILanguage WinAPI_GetNumberFormat WinAPI_GetObject WinAPI_GetObjectID WinAPI_GetObjectInfoByHandle WinAPI_GetObjectNameByHandle WinAPI_GetObjectType WinAPI_GetOpenFileName WinAPI_GetOutlineTextMetrics WinAPI_GetOverlappedResult WinAPI_GetParent WinAPI_GetParentProcess WinAPI_GetPerformanceInfo WinAPI_GetPEType WinAPI_GetPhysicallyInstalledSystemMemory WinAPI_GetPixel WinAPI_GetPolyFillMode WinAPI_GetPosFromRect WinAPI_GetPriorityClass WinAPI_GetProcAddress WinAPI_GetProcessAffinityMask WinAPI_GetProcessCommandLine WinAPI_GetProcessFileName WinAPI_GetProcessHandleCount WinAPI_GetProcessID WinAPI_GetProcessIoCounters WinAPI_GetProcessMemoryInfo WinAPI_GetProcessName WinAPI_GetProcessShutdownParameters WinAPI_GetProcessTimes WinAPI_GetProcessUser WinAPI_GetProcessWindowStation WinAPI_GetProcessWorkingDirectory WinAPI_GetProfilesDirectory WinAPI_GetPwrCapabilities WinAPI_GetRawInputBuffer WinAPI_GetRawInputBufferLength WinAPI_GetRawInputData WinAPI_GetRawInputDeviceInfo WinAPI_GetRegionData WinAPI_GetRegisteredRawInputDevices WinAPI_GetRegKeyNameByHandle WinAPI_GetRgnBox WinAPI_GetROP2 WinAPI_GetRValue WinAPI_GetSaveFileName WinAPI_GetShellWindow WinAPI_GetStartupInfo WinAPI_GetStdHandle WinAPI_GetStockObject WinAPI_GetStretchBltMode WinAPI_GetString WinAPI_GetSysColor WinAPI_GetSysColorBrush WinAPI_GetSystemDefaultLangID WinAPI_GetSystemDefaultLCID WinAPI_GetSystemDefaultUILanguage WinAPI_GetSystemDEPPolicy WinAPI_GetSystemInfo WinAPI_GetSystemMetrics WinAPI_GetSystemPowerStatus WinAPI_GetSystemTimes WinAPI_GetSystemWow64Directory WinAPI_GetTabbedTextExtent WinAPI_GetTempFileName WinAPI_GetTextAlign WinAPI_GetTextCharacterExtra WinAPI_GetTextColor WinAPI_GetTextExtentPoint32 WinAPI_GetTextFace WinAPI_GetTextMetrics WinAPI_GetThemeAppProperties WinAPI_GetThemeBackgroundContentRect WinAPI_GetThemeBackgroundExtent WinAPI_GetThemeBackgroundRegion WinAPI_GetThemeBitmap WinAPI_GetThemeBool WinAPI_GetThemeColor WinAPI_GetThemeDocumentationProperty WinAPI_GetThemeEnumValue WinAPI_GetThemeFilename WinAPI_GetThemeFont WinAPI_GetThemeInt WinAPI_GetThemeMargins WinAPI_GetThemeMetric WinAPI_GetThemePartSize WinAPI_GetThemePosition WinAPI_GetThemePropertyOrigin WinAPI_GetThemeRect WinAPI_GetThemeString WinAPI_GetThemeSysBool WinAPI_GetThemeSysColor WinAPI_GetThemeSysColorBrush WinAPI_GetThemeSysFont WinAPI_GetThemeSysInt WinAPI_GetThemeSysSize WinAPI_GetThemeSysString WinAPI_GetThemeTextExtent WinAPI_GetThemeTextMetrics WinAPI_GetThemeTransitionDuration WinAPI_GetThreadDesktop WinAPI_GetThreadErrorMode WinAPI_GetThreadLocale WinAPI_GetThreadUILanguage WinAPI_GetTickCount WinAPI_GetTickCount64 WinAPI_GetTimeFormat WinAPI_GetTopWindow WinAPI_GetUDFColorMode WinAPI_GetUpdateRect WinAPI_GetUpdateRgn WinAPI_GetUserDefaultLangID WinAPI_GetUserDefaultLCID WinAPI_GetUserDefaultUILanguage WinAPI_GetUserGeoID WinAPI_GetUserObjectInformation WinAPI_GetVersion WinAPI_GetVersionEx WinAPI_GetVolumeInformation WinAPI_GetVolumeInformationByHandle WinAPI_GetVolumeNameForVolumeMountPoint WinAPI_GetWindow WinAPI_GetWindowDC WinAPI_GetWindowDisplayAffinity WinAPI_GetWindowExt WinAPI_GetWindowFileName WinAPI_GetWindowHeight WinAPI_GetWindowInfo WinAPI_GetWindowLong WinAPI_GetWindowOrg WinAPI_GetWindowPlacement WinAPI_GetWindowRect WinAPI_GetWindowRgn WinAPI_GetWindowRgnBox WinAPI_GetWindowSubclass WinAPI_GetWindowText WinAPI_GetWindowTheme WinAPI_GetWindowThreadProcessId WinAPI_GetWindowWidth WinAPI_GetWorkArea WinAPI_GetWorldTransform WinAPI_GetXYFromPoint WinAPI_GlobalMemoryStatus WinAPI_GradientFill WinAPI_GUIDFromString WinAPI_GUIDFromStringEx WinAPI_HashData WinAPI_HashString WinAPI_HiByte WinAPI_HideCaret WinAPI_HiDWord WinAPI_HiWord WinAPI_InflateRect WinAPI_InitMUILanguage WinAPI_InProcess WinAPI_IntersectClipRect WinAPI_IntersectRect WinAPI_IntToDWord WinAPI_IntToFloat WinAPI_InvalidateRect WinAPI_InvalidateRgn WinAPI_InvertANDBitmap WinAPI_InvertColor WinAPI_InvertRect WinAPI_InvertRgn WinAPI_IOCTL WinAPI_IsAlphaBitmap WinAPI_IsBadCodePtr WinAPI_IsBadReadPtr WinAPI_IsBadStringPtr WinAPI_IsBadWritePtr WinAPI_IsChild WinAPI_IsClassName WinAPI_IsDoorOpen WinAPI_IsElevated WinAPI_IsHungAppWindow WinAPI_IsIconic WinAPI_IsInternetConnected WinAPI_IsLoadKBLayout WinAPI_IsMemory WinAPI_IsNameInExpression WinAPI_IsNetworkAlive WinAPI_IsPathShared WinAPI_IsProcessInJob WinAPI_IsProcessorFeaturePresent WinAPI_IsRectEmpty WinAPI_IsThemeActive WinAPI_IsThemeBackgroundPartiallyTransparent WinAPI_IsThemePartDefined WinAPI_IsValidLocale WinAPI_IsWindow WinAPI_IsWindowEnabled WinAPI_IsWindowUnicode WinAPI_IsWindowVisible WinAPI_IsWow64Process WinAPI_IsWritable WinAPI_IsZoomed WinAPI_Keybd_Event WinAPI_KillTimer WinAPI_LineDDA WinAPI_LineTo WinAPI_LoadBitmap WinAPI_LoadCursor WinAPI_LoadCursorFromFile WinAPI_LoadIcon WinAPI_LoadIconMetric WinAPI_LoadIconWithScaleDown WinAPI_LoadImage WinAPI_LoadIndirectString WinAPI_LoadKeyboardLayout WinAPI_LoadLibrary WinAPI_LoadLibraryEx WinAPI_LoadMedia WinAPI_LoadResource WinAPI_LoadShell32Icon WinAPI_LoadString WinAPI_LoadStringEx WinAPI_LoByte WinAPI_LocalFree WinAPI_LockDevice WinAPI_LockFile WinAPI_LockResource WinAPI_LockWindowUpdate WinAPI_LockWorkStation WinAPI_LoDWord WinAPI_LongMid WinAPI_LookupIconIdFromDirectoryEx WinAPI_LoWord WinAPI_LPtoDP WinAPI_MAKELANGID WinAPI_MAKELCID WinAPI_MakeLong WinAPI_MakeQWord WinAPI_MakeWord WinAPI_MapViewOfFile WinAPI_MapVirtualKey WinAPI_MaskBlt WinAPI_MessageBeep WinAPI_MessageBoxCheck WinAPI_MessageBoxIndirect WinAPI_MirrorIcon WinAPI_ModifyWorldTransform WinAPI_MonitorFromPoint WinAPI_MonitorFromRect WinAPI_MonitorFromWindow WinAPI_Mouse_Event WinAPI_MoveFileEx WinAPI_MoveMemory WinAPI_MoveTo WinAPI_MoveToEx WinAPI_MoveWindow WinAPI_MsgBox WinAPI_MulDiv WinAPI_MultiByteToWideChar WinAPI_MultiByteToWideCharEx WinAPI_NtStatusToDosError WinAPI_OemToChar WinAPI_OffsetClipRgn WinAPI_OffsetPoints WinAPI_OffsetRect WinAPI_OffsetRgn WinAPI_OffsetWindowOrg WinAPI_OpenDesktop WinAPI_OpenFileById WinAPI_OpenFileDlg WinAPI_OpenFileMapping WinAPI_OpenIcon WinAPI_OpenInputDesktop WinAPI_OpenJobObject WinAPI_OpenMutex WinAPI_OpenProcess WinAPI_OpenProcessToken WinAPI_OpenSemaphore WinAPI_OpenThemeData WinAPI_OpenWindowStation WinAPI_PageSetupDlg WinAPI_PaintDesktop WinAPI_PaintRgn WinAPI_ParseURL WinAPI_ParseUserName WinAPI_PatBlt WinAPI_PathAddBackslash WinAPI_PathAddExtension WinAPI_PathAppend WinAPI_PathBuildRoot WinAPI_PathCanonicalize WinAPI_PathCommonPrefix WinAPI_PathCompactPath WinAPI_PathCompactPathEx WinAPI_PathCreateFromUrl WinAPI_PathFindExtension WinAPI_PathFindFileName WinAPI_PathFindNextComponent WinAPI_PathFindOnPath WinAPI_PathGetArgs WinAPI_PathGetCharType WinAPI_PathGetDriveNumber WinAPI_PathIsContentType WinAPI_PathIsDirectory WinAPI_PathIsDirectoryEmpty WinAPI_PathIsExe WinAPI_PathIsFileSpec WinAPI_PathIsLFNFileSpec WinAPI_PathIsRelative WinAPI_PathIsRoot WinAPI_PathIsSameRoot WinAPI_PathIsSystemFolder WinAPI_PathIsUNC WinAPI_PathIsUNCServer WinAPI_PathIsUNCServerShare WinAPI_PathMakeSystemFolder WinAPI_PathMatchSpec WinAPI_PathParseIconLocation WinAPI_PathRelativePathTo WinAPI_PathRemoveArgs WinAPI_PathRemoveBackslash WinAPI_PathRemoveExtension WinAPI_PathRemoveFileSpec WinAPI_PathRenameExtension WinAPI_PathSearchAndQualify WinAPI_PathSkipRoot WinAPI_PathStripPath WinAPI_PathStripToRoot WinAPI_PathToRegion WinAPI_PathUndecorate WinAPI_PathUnExpandEnvStrings WinAPI_PathUnmakeSystemFolder WinAPI_PathUnquoteSpaces WinAPI_PathYetAnotherMakeUniqueName WinAPI_PickIconDlg WinAPI_PlayEnhMetaFile WinAPI_PlaySound WinAPI_PlgBlt WinAPI_PointFromRect WinAPI_PolyBezier WinAPI_PolyBezierTo WinAPI_PolyDraw WinAPI_Polygon WinAPI_PostMessage WinAPI_PrimaryLangId WinAPI_PrintDlg WinAPI_PrintDlgEx WinAPI_PrintWindow WinAPI_ProgIDFromCLSID WinAPI_PtInRect WinAPI_PtInRectEx WinAPI_PtInRegion WinAPI_PtVisible WinAPI_QueryDosDevice WinAPI_QueryInformationJobObject WinAPI_QueryPerformanceCounter WinAPI_QueryPerformanceFrequency WinAPI_RadialGradientFill WinAPI_ReadDirectoryChanges WinAPI_ReadFile WinAPI_ReadProcessMemory WinAPI_Rectangle WinAPI_RectInRegion WinAPI_RectIsEmpty WinAPI_RectVisible WinAPI_RedrawWindow WinAPI_RegCloseKey WinAPI_RegConnectRegistry WinAPI_RegCopyTree WinAPI_RegCopyTreeEx WinAPI_RegCreateKey WinAPI_RegDeleteEmptyKey WinAPI_RegDeleteKey WinAPI_RegDeleteKeyValue WinAPI_RegDeleteTree WinAPI_RegDeleteTreeEx WinAPI_RegDeleteValue WinAPI_RegDisableReflectionKey WinAPI_RegDuplicateHKey WinAPI_RegEnableReflectionKey WinAPI_RegEnumKey WinAPI_RegEnumValue WinAPI_RegFlushKey WinAPI_RegisterApplicationRestart WinAPI_RegisterClass WinAPI_RegisterClassEx WinAPI_RegisterHotKey WinAPI_RegisterPowerSettingNotification WinAPI_RegisterRawInputDevices WinAPI_RegisterShellHookWindow WinAPI_RegisterWindowMessage WinAPI_RegLoadMUIString WinAPI_RegNotifyChangeKeyValue WinAPI_RegOpenKey WinAPI_RegQueryInfoKey WinAPI_RegQueryLastWriteTime WinAPI_RegQueryMultipleValues WinAPI_RegQueryReflectionKey WinAPI_RegQueryValue WinAPI_RegRestoreKey WinAPI_RegSaveKey WinAPI_RegSetValue WinAPI_ReleaseCapture WinAPI_ReleaseDC WinAPI_ReleaseMutex WinAPI_ReleaseSemaphore WinAPI_ReleaseStream WinAPI_RemoveClipboardFormatListener WinAPI_RemoveDirectory WinAPI_RemoveFontMemResourceEx WinAPI_RemoveFontResourceEx WinAPI_RemoveWindowSubclass WinAPI_ReOpenFile WinAPI_ReplaceFile WinAPI_ReplaceTextDlg WinAPI_ResetEvent WinAPI_RestartDlg WinAPI_RestoreDC WinAPI_RGB WinAPI_RotatePoints WinAPI_RoundRect WinAPI_SaveDC WinAPI_SaveFileDlg WinAPI_SaveHBITMAPToFile WinAPI_SaveHICONToFile WinAPI_ScaleWindowExt WinAPI_ScreenToClient WinAPI_SearchPath WinAPI_SelectClipPath WinAPI_SelectClipRgn WinAPI_SelectObject WinAPI_SendMessageTimeout WinAPI_SetActiveWindow WinAPI_SetArcDirection WinAPI_SetBitmapBits WinAPI_SetBitmapDimensionEx WinAPI_SetBkColor WinAPI_SetBkMode WinAPI_SetBoundsRect WinAPI_SetBrushOrg WinAPI_SetCapture WinAPI_SetCaretBlinkTime WinAPI_SetCaretPos WinAPI_SetClassLongEx WinAPI_SetColorAdjustment WinAPI_SetCompression WinAPI_SetCurrentDirectory WinAPI_SetCurrentProcessExplicitAppUserModelID WinAPI_SetCursor WinAPI_SetDCBrushColor WinAPI_SetDCPenColor WinAPI_SetDefaultPrinter WinAPI_SetDeviceGammaRamp WinAPI_SetDIBColorTable WinAPI_SetDIBits WinAPI_SetDIBitsToDevice WinAPI_SetDllDirectory WinAPI_SetEndOfFile WinAPI_SetEnhMetaFileBits WinAPI_SetErrorMode WinAPI_SetEvent WinAPI_SetFileAttributes WinAPI_SetFileInformationByHandleEx WinAPI_SetFilePointer WinAPI_SetFilePointerEx WinAPI_SetFileShortName WinAPI_SetFileValidData WinAPI_SetFocus WinAPI_SetFont WinAPI_SetForegroundWindow WinAPI_SetFRBuffer WinAPI_SetGraphicsMode WinAPI_SetHandleInformation WinAPI_SetInformationJobObject WinAPI_SetKeyboardLayout WinAPI_SetKeyboardState WinAPI_SetLastError WinAPI_SetLayeredWindowAttributes WinAPI_SetLocaleInfo WinAPI_SetMapMode WinAPI_SetMessageExtraInfo WinAPI_SetParent WinAPI_SetPixel WinAPI_SetPolyFillMode WinAPI_SetPriorityClass WinAPI_SetProcessAffinityMask WinAPI_SetProcessShutdownParameters WinAPI_SetProcessWindowStation WinAPI_SetRectRgn WinAPI_SetROP2 WinAPI_SetSearchPathMode WinAPI_SetStretchBltMode WinAPI_SetSysColors WinAPI_SetSystemCursor WinAPI_SetTextAlign WinAPI_SetTextCharacterExtra WinAPI_SetTextColor WinAPI_SetTextJustification WinAPI_SetThemeAppProperties WinAPI_SetThreadDesktop WinAPI_SetThreadErrorMode WinAPI_SetThreadExecutionState WinAPI_SetThreadLocale WinAPI_SetThreadUILanguage WinAPI_SetTimer WinAPI_SetUDFColorMode WinAPI_SetUserGeoID WinAPI_SetUserObjectInformation WinAPI_SetVolumeMountPoint WinAPI_SetWindowDisplayAffinity WinAPI_SetWindowExt WinAPI_SetWindowLong WinAPI_SetWindowOrg WinAPI_SetWindowPlacement WinAPI_SetWindowPos WinAPI_SetWindowRgn WinAPI_SetWindowsHookEx WinAPI_SetWindowSubclass WinAPI_SetWindowText WinAPI_SetWindowTheme WinAPI_SetWinEventHook WinAPI_SetWorldTransform WinAPI_SfcIsFileProtected WinAPI_SfcIsKeyProtected WinAPI_ShellAboutDlg WinAPI_ShellAddToRecentDocs WinAPI_ShellChangeNotify WinAPI_ShellChangeNotifyDeregister WinAPI_ShellChangeNotifyRegister WinAPI_ShellCreateDirectory WinAPI_ShellEmptyRecycleBin WinAPI_ShellExecute WinAPI_ShellExecuteEx WinAPI_ShellExtractAssociatedIcon WinAPI_ShellExtractIcon WinAPI_ShellFileOperation WinAPI_ShellFlushSFCache WinAPI_ShellGetFileInfo WinAPI_ShellGetIconOverlayIndex WinAPI_ShellGetImageList WinAPI_ShellGetKnownFolderIDList WinAPI_ShellGetKnownFolderPath WinAPI_ShellGetLocalizedName WinAPI_ShellGetPathFromIDList WinAPI_ShellGetSetFolderCustomSettings WinAPI_ShellGetSettings WinAPI_ShellGetSpecialFolderLocation WinAPI_ShellGetSpecialFolderPath WinAPI_ShellGetStockIconInfo WinAPI_ShellILCreateFromPath WinAPI_ShellNotifyIcon WinAPI_ShellNotifyIconGetRect WinAPI_ShellObjectProperties WinAPI_ShellOpenFolderAndSelectItems WinAPI_ShellOpenWithDlg WinAPI_ShellQueryRecycleBin WinAPI_ShellQueryUserNotificationState WinAPI_ShellRemoveLocalizedName WinAPI_ShellRestricted WinAPI_ShellSetKnownFolderPath WinAPI_ShellSetLocalizedName WinAPI_ShellSetSettings WinAPI_ShellStartNetConnectionDlg WinAPI_ShellUpdateImage WinAPI_ShellUserAuthenticationDlg WinAPI_ShellUserAuthenticationDlgEx WinAPI_ShortToWord WinAPI_ShowCaret WinAPI_ShowCursor WinAPI_ShowError WinAPI_ShowLastError WinAPI_ShowMsg WinAPI_ShowOwnedPopups WinAPI_ShowWindow WinAPI_ShutdownBlockReasonCreate WinAPI_ShutdownBlockReasonDestroy WinAPI_ShutdownBlockReasonQuery WinAPI_SizeOfResource WinAPI_StretchBlt WinAPI_StretchDIBits WinAPI_StrFormatByteSize WinAPI_StrFormatByteSizeEx WinAPI_StrFormatKBSize WinAPI_StrFromTimeInterval WinAPI_StringFromGUID WinAPI_StringLenA WinAPI_StringLenW WinAPI_StrLen WinAPI_StrokeAndFillPath WinAPI_StrokePath WinAPI_StructToArray WinAPI_SubLangId WinAPI_SubtractRect WinAPI_SwapDWord WinAPI_SwapQWord WinAPI_SwapWord WinAPI_SwitchColor WinAPI_SwitchDesktop WinAPI_SwitchToThisWindow WinAPI_SystemParametersInfo WinAPI_TabbedTextOut WinAPI_TerminateJobObject WinAPI_TerminateProcess WinAPI_TextOut WinAPI_TileWindows WinAPI_TrackMouseEvent WinAPI_TransparentBlt WinAPI_TwipsPerPixelX WinAPI_TwipsPerPixelY WinAPI_UnhookWindowsHookEx WinAPI_UnhookWinEvent WinAPI_UnionRect WinAPI_UnionStruct WinAPI_UniqueHardwareID WinAPI_UnloadKeyboardLayout WinAPI_UnlockFile WinAPI_UnmapViewOfFile WinAPI_UnregisterApplicationRestart WinAPI_UnregisterClass WinAPI_UnregisterHotKey WinAPI_UnregisterPowerSettingNotification WinAPI_UpdateLayeredWindow WinAPI_UpdateLayeredWindowEx WinAPI_UpdateLayeredWindowIndirect WinAPI_UpdateResource WinAPI_UpdateWindow WinAPI_UrlApplyScheme WinAPI_UrlCanonicalize WinAPI_UrlCombine WinAPI_UrlCompare WinAPI_UrlCreateFromPath WinAPI_UrlFixup WinAPI_UrlGetPart WinAPI_UrlHash WinAPI_UrlIs WinAPI_UserHandleGrantAccess WinAPI_ValidateRect WinAPI_ValidateRgn WinAPI_VerQueryRoot WinAPI_VerQueryValue WinAPI_VerQueryValueEx WinAPI_WaitForInputIdle WinAPI_WaitForMultipleObjects WinAPI_WaitForSingleObject WinAPI_WideCharToMultiByte WinAPI_WidenPath WinAPI_WindowFromDC WinAPI_WindowFromPoint WinAPI_WordToShort WinAPI_Wow64EnableWow64FsRedirection WinAPI_WriteConsole WinAPI_WriteFile WinAPI_WriteProcessMemory WinAPI_ZeroMemory WinNet_AddConnection WinNet_AddConnection2 WinNet_AddConnection3 WinNet_CancelConnection WinNet_CancelConnection2 WinNet_CloseEnum WinNet_ConnectionDialog WinNet_ConnectionDialog1 WinNet_DisconnectDialog WinNet_DisconnectDialog1 WinNet_EnumResource WinNet_GetConnection WinNet_GetConnectionPerformance WinNet_GetLastError WinNet_GetNetworkInformation WinNet_GetProviderName WinNet_GetResourceInformation WinNet_GetResourceParent WinNet_GetUniversalName WinNet_GetUser WinNet_OpenEnum WinNet_RestoreConnection WinNet_UseConnection Word_Create Word_DocAdd Word_DocAttach Word_DocClose Word_DocExport Word_DocFind Word_DocFindReplace Word_DocGet Word_DocLinkAdd Word_DocLinkGet Word_DocOpen Word_DocPictureAdd Word_DocPrint Word_DocRangeSet Word_DocSave Word_DocSaveAs Word_DocTableRead Word_DocTableWrite Word_Quit",e={
+function $notificationProvider(){function a(a,c,d){function e(c,d){function f(){d=angular.extend({focusWindowOnClick:!0},b.options||{},d);try{g.baseNotification=new a.Notification(c,d)}catch(e){return}d.delay&&setTimeout(angular.bind(g,g.close),d.delay),d.focusWindowOnClick&&g.$on("click",function(){a.focus()}),g._events.forEach(function(a){g.$on.apply(g,a)}),g._events=[]}if(!a.Notification)return!1;d=d||{};var g=this;return this._events=[],"granted"===a.Notification.permission?f():void("denied"!==a.Notification.permission&&e.requestPermission().then(f))}function f(a,b){return new e(a,b)}return e.prototype.$on=function(a,b){function d(){var a=arguments;c.$apply(function(){b.apply(e,a)})}var e=this;return this.baseNotification?(this.baseNotification.addEventListener(a,d),function(){this.baseNotification.removeListener(event,d)}):this._events.push([a,b])},e.prototype.close=function(){this.baseNotification&&this.baseNotification.close()},e.requestPermission=function(){return d(function(b,c){return a.Notification?void a.Notification.requestPermission(function(c){a.Notification.permission=a.Notification.permission||c,b(a.Notification.permission)}):c()})},f.requestPermission=e.requestPermission,f}var b=this;this.$get=["$window","$rootScope","$q",a],this.setOptions=function(a){this.options=a}}function wizardButtonDirective(a){angular.module("mgo-angular-wizard").directive(a,function(){return{restrict:"A",replace:!1,require:"^wizard",link:function(b,c,d,e){c.on("click",function(c){c.preventDefault(),b.$apply(function(){b.$eval(d[a]),e[a.replace("wz","").toLowerCase()]()})})}}})}function validElementString(a){try{return 0!==angular.element(a).length}catch(b){return!1}}function registerTextAngularTool(a,b){if(!a||""===a||taTools.hasOwnProperty(a))throw"textAngular Error: A unique name is required for a Tool Definition";if(b.display&&(""===b.display||!validElementString(b.display))||!b.display&&!b.buttontext&&!b.iconclass)throw'textAngular Error: Tool Definition for "'+a+'" does not have a valid display/iconclass/buttontext value';taTools[a]=b}if(function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b="length"in a&&a.length,c=_.type(a);return"function"===c||_.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(_.isFunction(b))return _.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return _.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(ha.test(b))return _.filter(b,a,c);b=_.filter(b,a)}return _.grep(a,function(a){return U.call(b,a)>=0!==c})}function e(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function f(a){var b=oa[a]={};return _.each(a.match(na)||[],function(a,c){b[c]=!0}),b}function g(){Z.removeEventListener("DOMContentLoaded",g,!1),a.removeEventListener("load",g,!1),_.ready()}function h(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=_.expando+h.uid++}function i(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(ua,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:ta.test(c)?_.parseJSON(c):c}catch(e){}sa.set(a,b,c)}else c=void 0;return c}function j(){return!0}function k(){return!1}function l(){try{return Z.activeElement}catch(a){}}function m(a,b){return _.nodeName(a,"table")&&_.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function n(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function o(a){var b=Ka.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function p(a,b){for(var c=0,d=a.length;d>c;c++)ra.set(a[c],"globalEval",!b||ra.get(b[c],"globalEval"))}function q(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(ra.hasData(a)&&(f=ra.access(a),g=ra.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)_.event.add(b,e,j[e][c])}sa.hasData(a)&&(h=sa.access(a),i=_.extend({},h),sa.set(b,i))}}function r(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&_.nodeName(a,b)?_.merge([a],c):c}function s(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ya.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function t(b,c){var d,e=_(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:_.css(e[0],"display");return e.detach(),f}function u(a){var b=Z,c=Oa[a];return c||(c=t(a,b),"none"!==c&&c||(Na=(Na||_("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=Na[0].contentDocument,b.write(),b.close(),c=t(a,b),Na.detach()),Oa[a]=c),c}function v(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||_.contains(a.ownerDocument,a)||(g=_.style(a,b)),Qa.test(g)&&Pa.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function w(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}function x(a,b){if(b in a)return b;for(var c=b[0].toUpperCase()+b.slice(1),d=b,e=Xa.length;e--;)if(b=Xa[e]+c,b in a)return b;return d}function y(a,b,c){var d=Ta.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function z(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=_.css(a,c+wa[f],!0,e)),d?("content"===c&&(g-=_.css(a,"padding"+wa[f],!0,e)),"margin"!==c&&(g-=_.css(a,"border"+wa[f]+"Width",!0,e))):(g+=_.css(a,"padding"+wa[f],!0,e),"padding"!==c&&(g+=_.css(a,"border"+wa[f]+"Width",!0,e)));return g}function A(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ra(a),g="border-box"===_.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=v(a,b,f),(0>e||null==e)&&(e=a.style[b]),Qa.test(e))return e;d=g&&(Y.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+z(a,b,c||(g?"border":"content"),d,f)+"px"}function B(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=ra.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&xa(d)&&(f[g]=ra.access(d,"olddisplay",u(d.nodeName)))):(e=xa(d),"none"===c&&e||ra.set(d,"olddisplay",e?c:_.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function C(a,b,c,d,e){return new C.prototype.init(a,b,c,d,e)}function D(){return setTimeout(function(){Ya=void 0}),Ya=_.now()}function E(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=wa[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function F(a,b,c){for(var d,e=(cb[b]||[]).concat(cb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function G(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},n=a.style,o=a.nodeType&&xa(a),p=ra.get(a,"fxshow");c.queue||(h=_._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,_.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[n.overflow,n.overflowX,n.overflowY],j=_.css(a,"display"),k="none"===j?ra.get(a,"olddisplay")||u(a.nodeName):j,"inline"===k&&"none"===_.css(a,"float")&&(n.display="inline-block")),c.overflow&&(n.overflow="hidden",l.always(function(){n.overflow=c.overflow[0],n.overflowX=c.overflow[1],n.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],$a.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(o?"hide":"show")){if("show"!==e||!p||void 0===p[d])continue;o=!0}m[d]=p&&p[d]||_.style(a,d)}else j=void 0;if(_.isEmptyObject(m))"inline"===("none"===j?u(a.nodeName):j)&&(n.display=j);else{p?"hidden"in p&&(o=p.hidden):p=ra.access(a,"fxshow",{}),f&&(p.hidden=!o),o?_(a).show():l.done(function(){_(a).hide()}),l.done(function(){var b;ra.remove(a,"fxshow");for(b in m)_.style(a,b,m[b])});for(d in m)g=F(o?p[d]:0,d,l),d in p||(p[d]=g.start,o&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function H(a,b){var c,d,e,f,g;for(c in a)if(d=_.camelCase(c),e=b[d],f=a[c],_.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=_.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function I(a,b,c){var d,e,f=0,g=bb.length,h=_.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Ya||D(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:_.extend({},b),opts:_.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Ya||D(),duration:c.duration,tweens:[],createTween:function(b,c){var d=_.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(H(k,j.opts.specialEasing);g>f;f++)if(d=bb[f].call(j,a,k,j.opts))return d;return _.map(k,F,j),_.isFunction(j.opts.start)&&j.opts.start.call(a,j),_.fx.timer(_.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function J(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(na)||[];if(_.isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function K(a,b,c,d){function e(h){var i;return f[h]=!0,_.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||g||f[j]?g?!(i=j):void 0:(b.dataTypes.unshift(j),e(j),!1)}),i}var f={},g=a===tb;return e(b.dataTypes[0])||!f["*"]&&e("*")}function L(a,b){var c,d,e=_.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&_.extend(!0,a,d),a}function M(a,b,c){for(var d,e,f,g,h=a.contents,i=a.dataTypes;"*"===i[0];)i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function N(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}function O(a,b,c,d){var e;if(_.isArray(b))_.each(b,function(b,e){c||yb.test(a)?d(a,e):O(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==_.type(b))d(a,b);else for(e in b)O(a+"["+e+"]",b[e],c,d)}function P(a){return _.isWindow(a)?a:9===a.nodeType&&a.defaultView}var Q=[],R=Q.slice,S=Q.concat,T=Q.push,U=Q.indexOf,V={},W=V.toString,X=V.hasOwnProperty,Y={},Z=a.document,$="2.1.4",_=function(a,b){return new _.fn.init(a,b)},aa=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ba=/^-ms-/,ca=/-([\da-z])/gi,da=function(a,b){return b.toUpperCase()};_.fn=_.prototype={jquery:$,constructor:_,selector:"",length:0,toArray:function(){return R.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:R.call(this)},pushStack:function(a){var b=_.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return _.each(this,a,b)},map:function(a){return this.pushStack(_.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(R.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:T,sort:Q.sort,splice:Q.splice},_.extend=_.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||_.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(_.isPlainObject(d)||(e=_.isArray(d)))?(e?(e=!1,f=c&&_.isArray(c)?c:[]):f=c&&_.isPlainObject(c)?c:{},g[b]=_.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},_.extend({expando:"jQuery"+($+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===_.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!_.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==_.type(a)||a.nodeType||_.isWindow(a)?!1:!a.constructor||X.call(a.constructor.prototype,"isPrototypeOf")},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?V[W.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=_.trim(a),a&&(1===a.indexOf("use strict")?(b=Z.createElement("script"),b.text=a,Z.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(ba,"ms-").replace(ca,da)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,d){var e,f=0,g=a.length,h=c(a);if(d){if(h)for(;g>f&&(e=b.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=b.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=b.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=b.call(a[f],f,a[f]),e===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(aa,"")},makeArray:function(a,b){var d=b||[];return null!=a&&(c(Object(a))?_.merge(d,"string"==typeof a?[a]:a):T.call(d,a)),d},inArray:function(a,b,c){return null==b?-1:U.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,d){var e,f=0,g=a.length,h=c(a),i=[];if(h)for(;g>f;f++)e=b(a[f],f,d),null!=e&&i.push(e);else for(f in a)e=b(a[f],f,d),null!=e&&i.push(e);return S.apply([],i)},guid:1,proxy:function(a,b){var c,d,e;return"string"==typeof b&&(c=a[b],b=a,a=c),_.isFunction(a)?(d=R.call(arguments,2),e=function(){return a.apply(b||this,d.concat(R.call(arguments)))},e.guid=a.guid=a.guid||_.guid++,e):void 0},now:Date.now,support:Y}),_.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){V["[object "+b+"]"]=b.toLowerCase()});var ea=function(a){function b(a,b,c,d){var e,f,g,h,i,j,l,n,o,p;if((b?b.ownerDocument||b:O)!==G&&F(b),b=b||G,c=c||[],h=b.nodeType,"string"!=typeof a||!a||1!==h&&9!==h&&11!==h)return c;if(!d&&I){if(11!==h&&(e=sa.exec(a)))if(g=e[1]){if(9===h){if(f=b.getElementById(g),!f||!f.parentNode)return c;if(f.id===g)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(g))&&M(b,f)&&f.id===g)return c.push(f),c}else{if(e[2])return $.apply(c,b.getElementsByTagName(a)),c;if((g=e[3])&&v.getElementsByClassName)return $.apply(c,b.getElementsByClassName(g)),c}if(v.qsa&&(!J||!J.test(a))){if(n=l=N,o=b,p=1!==h&&a,1===h&&"object"!==b.nodeName.toLowerCase()){for(j=z(a),(l=b.getAttribute("id"))?n=l.replace(ua,"\\$&"):b.setAttribute("id",n),n="[id='"+n+"'] ",i=j.length;i--;)j[i]=n+m(j[i]);o=ta.test(a)&&k(b.parentNode)||b,p=j.join(",")}if(p)try{return $.apply(c,o.querySelectorAll(p)),c}catch(q){}finally{l||b.removeAttribute("id")}}}return B(a.replace(ia,"$1"),b,c,d)}function c(){function a(c,d){return b.push(c+" ")>w.cacheLength&&delete a[b.shift()],a[c+" "]=d}var b=[];return a}function d(a){return a[N]=!0,a}function e(a){var b=G.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function f(a,b){for(var c=a.split("|"),d=a.length;d--;)w.attrHandle[c[d]]=b}function g(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||V)-(~a.sourceIndex||V);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function h(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function i(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function j(a){return d(function(b){return b=+b,d(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function k(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}function l(){}function m(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function n(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=Q++;return b.first?function(b,c,f){for(;b=b[d];)if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[P,f];if(g){for(;b=b[d];)if((1===b.nodeType||e)&&a(b,c,g))return!0}else for(;b=b[d];)if(1===b.nodeType||e){if(i=b[N]||(b[N]={}),(h=i[d])&&h[0]===P&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function o(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function p(a,c,d){for(var e=0,f=c.length;f>e;e++)b(a,c[e],d);return d}function q(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function r(a,b,c,e,f,g){return e&&!e[N]&&(e=r(e)),f&&!f[N]&&(f=r(f,g)),d(function(d,g,h,i){var j,k,l,m=[],n=[],o=g.length,r=d||p(b||"*",h.nodeType?[h]:h,[]),s=!a||!d&&b?r:q(r,m,a,h,i),t=c?f||(d?a:o||e)?[]:g:s;if(c&&c(s,t,h,i),e)for(j=q(t,n),e(j,[],h,i),k=j.length;k--;)(l=j[k])&&(t[n[k]]=!(s[n[k]]=l));if(d){if(f||a){if(f){for(j=[],k=t.length;k--;)(l=t[k])&&j.push(s[k]=l);f(null,t=[],j,i)}for(k=t.length;k--;)(l=t[k])&&(j=f?aa(d,l):m[k])>-1&&(d[j]=!(g[j]=l))}}else t=q(t===g?t.splice(o,t.length):t),f?f(null,g,t,i):$.apply(g,t)})}function s(a){for(var b,c,d,e=a.length,f=w.relative[a[0].type],g=f||w.relative[" "],h=f?1:0,i=n(function(a){return a===b},g,!0),j=n(function(a){return aa(b,a)>-1},g,!0),k=[function(a,c,d){var e=!f&&(d||c!==C)||((b=c).nodeType?i(a,c,d):j(a,c,d));return b=null,e}];e>h;h++)if(c=w.relative[a[h].type])k=[n(o(k),c)];else{if(c=w.filter[a[h].type].apply(null,a[h].matches),c[N]){for(d=++h;e>d&&!w.relative[a[d].type];d++);return r(h>1&&o(k),h>1&&m(a.slice(0,h-1).concat({value:" "===a[h-2].type?"*":""})).replace(ia,"$1"),c,d>h&&s(a.slice(h,d)),e>d&&s(a=a.slice(d)),e>d&&m(a))}k.push(c)}return o(k)}function t(a,c){var e=c.length>0,f=a.length>0,g=function(d,g,h,i,j){var k,l,m,n=0,o="0",p=d&&[],r=[],s=C,t=d||f&&w.find.TAG("*",j),u=P+=null==s?1:Math.random()||.1,v=t.length;for(j&&(C=g!==G&&g);o!==v&&null!=(k=t[o]);o++){if(f&&k){for(l=0;m=a[l++];)if(m(k,g,h)){i.push(k);break}j&&(P=u)}e&&((k=!m&&k)&&n--,d&&p.push(k))}if(n+=o,e&&o!==n){for(l=0;m=c[l++];)m(p,r,g,h);if(d){if(n>0)for(;o--;)p[o]||r[o]||(r[o]=Y.call(i));r=q(r)}$.apply(i,r),j&&!d&&r.length>0&&n+c.length>1&&b.uniqueSort(i)}return j&&(P=u,C=s),p};return e?d(g):g}var u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N="sizzle"+1*new Date,O=a.document,P=0,Q=0,R=c(),S=c(),T=c(),U=function(a,b){return a===b&&(E=!0),0},V=1<<31,W={}.hasOwnProperty,X=[],Y=X.pop,Z=X.push,$=X.push,_=X.slice,aa=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},ba="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ca="[\\x20\\t\\r\\n\\f]",da="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ea=da.replace("w","w#"),fa="\\["+ca+"*("+da+")(?:"+ca+"*([*^$|!~]?=)"+ca+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ea+"))|)"+ca+"*\\]",ga=":("+da+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+fa+")*)|.*)\\)|)",ha=new RegExp(ca+"+","g"),ia=new RegExp("^"+ca+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ca+"+$","g"),ja=new RegExp("^"+ca+"*,"+ca+"*"),ka=new RegExp("^"+ca+"*([>+~]|"+ca+")"+ca+"*"),la=new RegExp("="+ca+"*([^\\]'\"]*?)"+ca+"*\\]","g"),ma=new RegExp(ga),na=new RegExp("^"+ea+"$"),oa={ID:new RegExp("^#("+da+")"),CLASS:new RegExp("^\\.("+da+")"),TAG:new RegExp("^("+da.replace("w","w*")+")"),ATTR:new RegExp("^"+fa),PSEUDO:new RegExp("^"+ga),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ca+"*(even|odd|(([+-]|)(\\d*)n|)"+ca+"*(?:([+-]|)"+ca+"*(\\d+)|))"+ca+"*\\)|)","i"),bool:new RegExp("^(?:"+ba+")$","i"),needsContext:new RegExp("^"+ca+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ca+"*((?:-\\d)?\\d*)"+ca+"*\\)|)(?=[^-]|$)","i")},pa=/^(?:input|select|textarea|button)$/i,qa=/^h\d$/i,ra=/^[^{]+\{\s*\[native \w/,sa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ta=/[+~]/,ua=/'|\\/g,va=new RegExp("\\\\([\\da-f]{1,6}"+ca+"?|("+ca+")|.)","ig"),wa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},xa=function(){F()};try{$.apply(X=_.call(O.childNodes),O.childNodes),X[O.childNodes.length].nodeType}catch(ya){$={apply:X.length?function(a,b){Z.apply(a,_.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}v=b.support={},y=b.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},F=b.setDocument=function(a){var b,c,d=a?a.ownerDocument||a:O;return d!==G&&9===d.nodeType&&d.documentElement?(G=d,H=d.documentElement,c=d.defaultView,c&&c!==c.top&&(c.addEventListener?c.addEventListener("unload",xa,!1):c.attachEvent&&c.attachEvent("onunload",xa)),I=!y(d),v.attributes=e(function(a){return a.className="i",!a.getAttribute("className")}),v.getElementsByTagName=e(function(a){return a.appendChild(d.createComment("")),!a.getElementsByTagName("*").length}),v.getElementsByClassName=ra.test(d.getElementsByClassName),v.getById=e(function(a){return H.appendChild(a).id=N,!d.getElementsByName||!d.getElementsByName(N).length}),v.getById?(w.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&I){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},w.filter.ID=function(a){var b=a.replace(va,wa);return function(a){return a.getAttribute("id")===b}}):(delete w.find.ID,w.filter.ID=function(a){var b=a.replace(va,wa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),w.find.TAG=v.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):v.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},w.find.CLASS=v.getElementsByClassName&&function(a,b){return I?b.getElementsByClassName(a):void 0},K=[],J=[],(v.qsa=ra.test(d.querySelectorAll))&&(e(function(a){H.appendChild(a).innerHTML="<a id='"+N+"'></a><select id='"+N+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&J.push("[*^$]="+ca+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||J.push("\\["+ca+"*(?:value|"+ba+")"),a.querySelectorAll("[id~="+N+"-]").length||J.push("~="),a.querySelectorAll(":checked").length||J.push(":checked"),a.querySelectorAll("a#"+N+"+*").length||J.push(".#.+[+~]")}),e(function(a){var b=d.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&J.push("name"+ca+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||J.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),J.push(",.*:")})),(v.matchesSelector=ra.test(L=H.matches||H.webkitMatchesSelector||H.mozMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&e(function(a){v.disconnectedMatch=L.call(a,"div"),L.call(a,"[s!='']:x"),K.push("!=",ga)}),J=J.length&&new RegExp(J.join("|")),K=K.length&&new RegExp(K.join("|")),b=ra.test(H.compareDocumentPosition),M=b||ra.test(H.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},U=b?function(a,b){if(a===b)return E=!0,0;var c=!a.compareDocumentPosition-!b.compareDocumentPosition;return c?c:(c=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&c||!v.sortDetached&&b.compareDocumentPosition(a)===c?a===d||a.ownerDocument===O&&M(O,a)?-1:b===d||b.ownerDocument===O&&M(O,b)?1:D?aa(D,a)-aa(D,b):0:4&c?-1:1)}:function(a,b){if(a===b)return E=!0,0;var c,e=0,f=a.parentNode,h=b.parentNode,i=[a],j=[b];if(!f||!h)return a===d?-1:b===d?1:f?-1:h?1:D?aa(D,a)-aa(D,b):0;if(f===h)return g(a,b);for(c=a;c=c.parentNode;)i.unshift(c);for(c=b;c=c.parentNode;)j.unshift(c);for(;i[e]===j[e];)e++;return e?g(i[e],j[e]):i[e]===O?-1:j[e]===O?1:0},d):G},b.matches=function(a,c){return b(a,null,null,c)},b.matchesSelector=function(a,c){if((a.ownerDocument||a)!==G&&F(a),c=c.replace(la,"='$1']"),v.matchesSelector&&I&&(!K||!K.test(c))&&(!J||!J.test(c)))try{var d=L.call(a,c);if(d||v.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return b(c,G,null,[a]).length>0},b.contains=function(a,b){return(a.ownerDocument||a)!==G&&F(a),M(a,b)},b.attr=function(a,b){(a.ownerDocument||a)!==G&&F(a);var c=w.attrHandle[b.toLowerCase()],d=c&&W.call(w.attrHandle,b.toLowerCase())?c(a,b,!I):void 0;return void 0!==d?d:v.attributes||!I?a.getAttribute(b):(d=a.getAttributeNode(b))&&d.specified?d.value:null},b.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},b.uniqueSort=function(a){var b,c=[],d=0,e=0;if(E=!v.detectDuplicates,D=!v.sortStable&&a.slice(0),a.sort(U),E){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return D=null,a},x=b.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=x(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d++];)c+=x(b);return c},w=b.selectors={cacheLength:50,createPseudo:d,match:oa,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(va,wa),a[3]=(a[3]||a[4]||a[5]||"").replace(va,wa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||b.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&b.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return oa.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&ma.test(c)&&(b=z(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(va,wa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=R[a+" "];return b||(b=new RegExp("(^|"+ca+")"+a+"("+ca+"|$)"))&&R(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,c,d){return function(e){var f=b.attr(e,a);return null==f?"!="===c:c?(f+="","="===c?f===d:"!="===c?f!==d:"^="===c?d&&0===f.indexOf(d):"*="===c?d&&f.indexOf(d)>-1:"$="===c?d&&f.slice(-d.length)===d:"~="===c?(" "+f.replace(ha," ")+" ").indexOf(d)>-1:"|="===c?f===d||f.slice(0,d.length+1)===d+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){for(;p;){for(l=b;l=l[p];)if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(k=q[N]||(q[N]={}),j=k[a]||[],n=j[0]===P&&j[1],m=j[0]===P&&j[2],l=n&&q.childNodes[n];l=++n&&l&&l[p]||(m=n=0)||o.pop();)if(1===l.nodeType&&++m&&l===b){k[a]=[P,n,m];break}}else if(s&&(j=(b[N]||(b[N]={}))[a])&&j[0]===P)m=j[1];else for(;(l=++n&&l&&l[p]||(m=n=0)||o.pop())&&((h?l.nodeName.toLowerCase()!==r:1!==l.nodeType)||!++m||(s&&((l[N]||(l[N]={}))[a]=[P,m]),l!==b)););return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,c){var e,f=w.pseudos[a]||w.setFilters[a.toLowerCase()]||b.error("unsupported pseudo: "+a);return f[N]?f(c):f.length>1?(e=[a,a,"",c],w.setFilters.hasOwnProperty(a.toLowerCase())?d(function(a,b){for(var d,e=f(a,c),g=e.length;g--;)d=aa(a,e[g]),a[d]=!(b[d]=e[g])}):function(a){return f(a,0,e)}):f}},pseudos:{not:d(function(a){var b=[],c=[],e=A(a.replace(ia,"$1"));return e[N]?d(function(a,b,c,d){for(var f,g=e(a,null,d,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,d,f){return b[0]=a,e(b,null,f,c),b[0]=null,!c.pop()}}),has:d(function(a){return function(c){return b(a,c).length>0}}),contains:d(function(a){return a=a.replace(va,wa),function(b){return(b.textContent||b.innerText||x(b)).indexOf(a)>-1}}),lang:d(function(a){return na.test(a||"")||b.error("unsupported lang: "+a),a=a.replace(va,wa).toLowerCase(),function(b){var c;do if(c=I?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===H},focus:function(a){return a===G.activeElement&&(!G.hasFocus||G.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!w.pseudos.empty(a)},header:function(a){return qa.test(a.nodeName)},input:function(a){return pa.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:j(function(){return[0]}),last:j(function(a,b){return[b-1]}),eq:j(function(a,b,c){return[0>c?c+b:c]}),even:j(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:j(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:j(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:j(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},w.pseudos.nth=w.pseudos.eq;for(u in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[u]=h(u);for(u in{submit:!0,reset:!0})w.pseudos[u]=i(u);return l.prototype=w.filters=w.pseudos,w.setFilters=new l,z=b.tokenize=function(a,c){var d,e,f,g,h,i,j,k=S[a+" "];if(k)return c?0:k.slice(0);for(h=a,i=[],j=w.preFilter;h;){d&&!(e=ja.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=ka.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(ia," ")}),h=h.slice(d.length));for(g in w.filter)!(e=oa[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return c?h.length:h?b.error(a):S(a,i).slice(0)},A=b.compile=function(a,b){
+var c,d=[],e=[],f=T[a+" "];if(!f){for(b||(b=z(a)),c=b.length;c--;)f=s(b[c]),f[N]?d.push(f):e.push(f);f=T(a,t(e,d)),f.selector=a}return f},B=b.select=function(a,b,c,d){var e,f,g,h,i,j="function"==typeof a&&a,l=!d&&z(a=j.selector||a);if(c=c||[],1===l.length){if(f=l[0]=l[0].slice(0),f.length>2&&"ID"===(g=f[0]).type&&v.getById&&9===b.nodeType&&I&&w.relative[f[1].type]){if(b=(w.find.ID(g.matches[0].replace(va,wa),b)||[])[0],!b)return c;j&&(b=b.parentNode),a=a.slice(f.shift().value.length)}for(e=oa.needsContext.test(a)?0:f.length;e--&&(g=f[e],!w.relative[h=g.type]);)if((i=w.find[h])&&(d=i(g.matches[0].replace(va,wa),ta.test(f[0].type)&&k(b.parentNode)||b))){if(f.splice(e,1),a=d.length&&m(f),!a)return $.apply(c,d),c;break}}return(j||A(a,l))(d,b,!I,c,ta.test(a)&&k(b.parentNode)||b),c},v.sortStable=N.split("").sort(U).join("")===N,v.detectDuplicates=!!E,F(),v.sortDetached=e(function(a){return 1&a.compareDocumentPosition(G.createElement("div"))}),e(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||f("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),v.attributes&&e(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||f("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),e(function(a){return null==a.getAttribute("disabled")})||f(ba,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),b}(a);_.find=ea,_.expr=ea.selectors,_.expr[":"]=_.expr.pseudos,_.unique=ea.uniqueSort,_.text=ea.getText,_.isXMLDoc=ea.isXML,_.contains=ea.contains;var fa=_.expr.match.needsContext,ga=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ha=/^.[^:#\[\.,]*$/;_.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?_.find.matchesSelector(d,a)?[d]:[]:_.find.matches(a,_.grep(b,function(a){return 1===a.nodeType}))},_.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(_(a).filter(function(){for(b=0;c>b;b++)if(_.contains(e[b],this))return!0}));for(b=0;c>b;b++)_.find(a,e[b],d);return d=this.pushStack(c>1?_.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(d(this,a||[],!1))},not:function(a){return this.pushStack(d(this,a||[],!0))},is:function(a){return!!d(this,"string"==typeof a&&fa.test(a)?_(a):a||[],!1).length}});var ia,ja=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ka=_.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:ja.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||ia).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof _?b[0]:b,_.merge(this,_.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:Z,!0)),ga.test(c[1])&&_.isPlainObject(b))for(c in b)_.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=Z.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=Z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):_.isFunction(a)?"undefined"!=typeof ia.ready?ia.ready(a):a(_):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),_.makeArray(a,this))};ka.prototype=_.fn,ia=_(Z);var la=/^(?:parents|prev(?:Until|All))/,ma={children:!0,contents:!0,next:!0,prev:!0};_.extend({dir:function(a,b,c){for(var d=[],e=void 0!==c;(a=a[b])&&9!==a.nodeType;)if(1===a.nodeType){if(e&&_(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),_.fn.extend({has:function(a){var b=_(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(_.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=fa.test(a)||"string"!=typeof a?_(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&_.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?_.unique(f):f)},index:function(a){return a?"string"==typeof a?U.call(_(a),this[0]):U.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(_.unique(_.merge(this.get(),_(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),_.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return _.dir(a,"parentNode")},parentsUntil:function(a,b,c){return _.dir(a,"parentNode",c)},next:function(a){return e(a,"nextSibling")},prev:function(a){return e(a,"previousSibling")},nextAll:function(a){return _.dir(a,"nextSibling")},prevAll:function(a){return _.dir(a,"previousSibling")},nextUntil:function(a,b,c){return _.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return _.dir(a,"previousSibling",c)},siblings:function(a){return _.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return _.sibling(a.firstChild)},contents:function(a){return a.contentDocument||_.merge([],a.childNodes)}},function(a,b){_.fn[a]=function(c,d){var e=_.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=_.filter(d,e)),this.length>1&&(ma[a]||_.unique(e),la.test(a)&&e.reverse()),this.pushStack(e)}});var na=/\S+/g,oa={};_.Callbacks=function(a){a="string"==typeof a?oa[a]||f(a):_.extend({},a);var b,c,d,e,g,h,i=[],j=!a.once&&[],k=function(f){for(b=a.memory&&f,c=!0,h=e||0,e=0,g=i.length,d=!0;i&&g>h;h++)if(i[h].apply(f[0],f[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,i&&(j?j.length&&k(j.shift()):b?i=[]:l.disable())},l={add:function(){if(i){var c=i.length;!function f(b){_.each(b,function(b,c){var d=_.type(c);"function"===d?a.unique&&l.has(c)||i.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),d?g=i.length:b&&(e=c,k(b))}return this},remove:function(){return i&&_.each(arguments,function(a,b){for(var c;(c=_.inArray(b,i,c))>-1;)i.splice(c,1),d&&(g>=c&&g--,h>=c&&h--)}),this},has:function(a){return a?_.inArray(a,i)>-1:!(!i||!i.length)},empty:function(){return i=[],g=0,this},disable:function(){return i=j=b=void 0,this},disabled:function(){return!i},lock:function(){return j=void 0,b||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return!i||c&&!j||(b=b||[],b=[a,b.slice?b.slice():b],d?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!c}};return l},_.extend({Deferred:function(a){var b=[["resolve","done",_.Callbacks("once memory"),"resolved"],["reject","fail",_.Callbacks("once memory"),"rejected"],["notify","progress",_.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return _.Deferred(function(c){_.each(b,function(b,f){var g=_.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&_.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?_.extend(a,d):d}},e={};return d.pipe=d.then,_.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b,c,d,e=0,f=R.call(arguments),g=f.length,h=1!==g||a&&_.isFunction(a.promise)?g:0,i=1===h?a:_.Deferred(),j=function(a,c,d){return function(e){c[a]=this,d[a]=arguments.length>1?R.call(arguments):e,d===b?i.notifyWith(c,d):--h||i.resolveWith(c,d)}};if(g>1)for(b=new Array(g),c=new Array(g),d=new Array(g);g>e;e++)f[e]&&_.isFunction(f[e].promise)?f[e].promise().done(j(e,d,f)).fail(i.reject).progress(j(e,c,b)):--h;return h||i.resolveWith(d,f),i.promise()}});var pa;_.fn.ready=function(a){return _.ready.promise().done(a),this},_.extend({isReady:!1,readyWait:1,holdReady:function(a){a?_.readyWait++:_.ready(!0)},ready:function(a){(a===!0?--_.readyWait:_.isReady)||(_.isReady=!0,a!==!0&&--_.readyWait>0||(pa.resolveWith(Z,[_]),_.fn.triggerHandler&&(_(Z).triggerHandler("ready"),_(Z).off("ready"))))}}),_.ready.promise=function(b){return pa||(pa=_.Deferred(),"complete"===Z.readyState?setTimeout(_.ready):(Z.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1))),pa.promise(b)},_.ready.promise();var qa=_.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===_.type(c)){e=!0;for(h in c)_.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,_.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(_(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};_.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType},h.uid=1,h.accepts=_.acceptData,h.prototype={key:function(a){if(!h.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=h.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,_.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(_.isEmptyObject(f))_.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,_.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{_.isArray(b)?d=b.concat(b.map(_.camelCase)):(e=_.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(na)||[])),c=d.length;for(;c--;)delete g[d[c]]}},hasData:function(a){return!_.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var ra=new h,sa=new h,ta=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ua=/([A-Z])/g;_.extend({hasData:function(a){return sa.hasData(a)||ra.hasData(a)},data:function(a,b,c){return sa.access(a,b,c)},removeData:function(a,b){sa.remove(a,b)},_data:function(a,b,c){return ra.access(a,b,c)},_removeData:function(a,b){ra.remove(a,b)}}),_.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=sa.get(f),1===f.nodeType&&!ra.get(f,"hasDataAttrs"))){for(c=g.length;c--;)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=_.camelCase(d.slice(5)),i(f,d,e[d])));ra.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){sa.set(this,a)}):qa(this,function(b){var c,d=_.camelCase(a);if(f&&void 0===b){if(c=sa.get(f,a),void 0!==c)return c;if(c=sa.get(f,d),void 0!==c)return c;if(c=i(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=sa.get(this,d);sa.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&sa.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){sa.remove(this,a)})}}),_.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=ra.get(a,b),c&&(!d||_.isArray(c)?d=ra.access(a,b,_.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=_.queue(a,b),d=c.length,e=c.shift(),f=_._queueHooks(a,b),g=function(){_.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return ra.get(a,c)||ra.access(a,c,{empty:_.Callbacks("once memory").add(function(){ra.remove(a,[b+"queue",c])})})}}),_.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?_.queue(this[0],a):void 0===b?this:this.each(function(){var c=_.queue(this,a,b);_._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&_.dequeue(this,a)})},dequeue:function(a){return this.each(function(){_.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=_.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};for("string"!=typeof a&&(b=a,a=void 0),a=a||"fx";g--;)c=ra.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var va=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,wa=["Top","Right","Bottom","Left"],xa=function(a,b){return a=b||a,"none"===_.css(a,"display")||!_.contains(a.ownerDocument,a)},ya=/^(?:checkbox|radio)$/i;!function(){var a=Z.createDocumentFragment(),b=a.appendChild(Z.createElement("div")),c=Z.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),Y.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",Y.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var za="undefined";Y.focusinBubbles="onfocusin"in a;var Aa=/^key/,Ba=/^(?:mouse|pointer|contextmenu)|click/,Ca=/^(?:focusinfocus|focusoutblur)$/,Da=/^([^.]*)(?:\.(.+)|)$/;_.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=ra.get(a);if(q)for(c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=_.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return typeof _!==za&&_.event.triggered!==b.type?_.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(na)||[""],j=b.length;j--;)h=Da.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=_.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=_.event.special[n]||{},k=_.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&_.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),_.event.global[n]=!0)},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=ra.hasData(a)&&ra.get(a);if(q&&(i=q.events)){for(b=(b||"").match(na)||[""],j=b.length;j--;)if(h=Da.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=_.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||_.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)_.event.remove(a,n+b[j],c,d,!0);_.isEmptyObject(i)&&(delete q.handle,ra.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,j,k,l,m=[d||Z],n=X.call(b,"type")?b.type:b,o=X.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||Z,3!==d.nodeType&&8!==d.nodeType&&!Ca.test(n+_.event.triggered)&&(n.indexOf(".")>=0&&(o=n.split("."),n=o.shift(),o.sort()),j=n.indexOf(":")<0&&"on"+n,b=b[_.expando]?b:new _.Event(n,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=o.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:_.makeArray(c,[b]),l=_.event.special[n]||{},e||!l.trigger||l.trigger.apply(d,c)!==!1)){if(!e&&!l.noBubble&&!_.isWindow(d)){for(i=l.delegateType||n,Ca.test(i+n)||(g=g.parentNode);g;g=g.parentNode)m.push(g),h=g;h===(d.ownerDocument||Z)&&m.push(h.defaultView||h.parentWindow||a)}for(f=0;(g=m[f++])&&!b.isPropagationStopped();)b.type=f>1?i:l.bindType||n,k=(ra.get(g,"events")||{})[b.type]&&ra.get(g,"handle"),k&&k.apply(g,c),k=j&&g[j],k&&k.apply&&_.acceptData(g)&&(b.result=k.apply(g,c),b.result===!1&&b.preventDefault());return b.type=n,e||b.isDefaultPrevented()||l._default&&l._default.apply(m.pop(),c)!==!1||!_.acceptData(d)||j&&_.isFunction(d[n])&&!_.isWindow(d)&&(h=d[j],h&&(d[j]=null),_.event.triggered=n,d[n](),_.event.triggered=void 0,h&&(d[j]=h)),b.result}},dispatch:function(a){a=_.event.fix(a);var b,c,d,e,f,g=[],h=R.call(arguments),i=(ra.get(this,"events")||{})[a.type]||[],j=_.event.special[a.type]||{};if(h[0]=a,a.delegateTarget=this,!j.preDispatch||j.preDispatch.call(this,a)!==!1){for(g=_.event.handlers.call(this,a,i),b=0;(e=g[b++])&&!a.isPropagationStopped();)for(a.currentTarget=e.elem,c=0;(f=e.handlers[c++])&&!a.isImmediatePropagationStopped();)a.namespace_re&&!a.namespace_re.test(f.namespace)||(a.handleObj=f,a.data=f.data,d=((_.event.special[f.origType]||{}).handle||f.handler).apply(e.elem,h),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()));return j.postDispatch&&j.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?_(e,this).index(i)>=0:_.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||Z,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[_.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];for(g||(this.fixHooks[e]=g=Ba.test(e)?this.mouseHooks:Aa.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new _.Event(f),b=d.length;b--;)c=d[b],a[c]=f[c];return a.target||(a.target=Z),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==l()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===l()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&_.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return _.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=_.extend(new _.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?_.event.trigger(e,null,b):_.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},_.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},_.Event=function(a,b){return this instanceof _.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?j:k):this.type=a,b&&_.extend(this,b),this.timeStamp=a&&a.timeStamp||_.now(),void(this[_.expando]=!0)):new _.Event(a,b)},_.Event.prototype={isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=j,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=j,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=j,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},_.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){_.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||_.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),Y.focusinBubbles||_.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){_.event.simulate(b,a.target,_.event.fix(a),!0)};_.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=ra.access(d,b);e||d.addEventListener(a,c,!0),ra.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=ra.access(d,b)-1;e?ra.access(d,b,e):(d.removeEventListener(a,c,!0),ra.remove(d,b))}}}),_.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=k;else if(!d)return this;return 1===e&&(f=d,d=function(a){return _().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=_.guid++)),this.each(function(){_.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,_(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=k),this.each(function(){_.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){_.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?_.event.trigger(a,b,c,!0):void 0}});var Ea=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Fa=/<([\w:]+)/,Ga=/<|&#?\w+;/,Ha=/<(?:script|style|link)/i,Ia=/checked\s*(?:[^=]|=\s*.checked.)/i,Ja=/^$|\/(?:java|ecma)script/i,Ka=/^true\/(.*)/,La=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ma.optgroup=Ma.option,Ma.tbody=Ma.tfoot=Ma.colgroup=Ma.caption=Ma.thead,Ma.th=Ma.td,_.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=_.contains(a.ownerDocument,a);if(!(Y.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||_.isXMLDoc(a)))for(g=r(h),f=r(a),d=0,e=f.length;e>d;d++)s(f[d],g[d]);if(b)if(c)for(f=f||r(a),g=g||r(h),d=0,e=f.length;e>d;d++)q(f[d],g[d]);else q(a,h);return g=r(h,"script"),g.length>0&&p(g,!i&&r(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,n=a.length;n>m;m++)if(e=a[m],e||0===e)if("object"===_.type(e))_.merge(l,e.nodeType?[e]:e);else if(Ga.test(e)){for(f=f||k.appendChild(b.createElement("div")),g=(Fa.exec(e)||["",""])[1].toLowerCase(),h=Ma[g]||Ma._default,f.innerHTML=h[1]+e.replace(Ea,"<$1></$2>")+h[2],j=h[0];j--;)f=f.lastChild;_.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));for(k.textContent="",m=0;e=l[m++];)if((!d||-1===_.inArray(e,d))&&(i=_.contains(e.ownerDocument,e),f=r(k.appendChild(e),"script"),i&&p(f),c))for(j=0;e=f[j++];)Ja.test(e.type||"")&&c.push(e);return k},cleanData:function(a){for(var b,c,d,e,f=_.event.special,g=0;void 0!==(c=a[g]);g++){if(_.acceptData(c)&&(e=c[ra.expando],e&&(b=ra.cache[e]))){if(b.events)for(d in b.events)f[d]?_.event.remove(c,d):_.removeEvent(c,d,b.handle);ra.cache[e]&&delete ra.cache[e]}delete sa.cache[c[sa.expando]]}}}),_.fn.extend({text:function(a){return qa(this,function(a){return void 0===a?_.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?_.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||_.cleanData(r(c)),c.parentNode&&(b&&_.contains(c.ownerDocument,c)&&p(r(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(_.cleanData(r(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return _.clone(this,a,b)})},html:function(a){return qa(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Ha.test(a)&&!Ma[(Fa.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ea,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(_.cleanData(r(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,_.cleanData(r(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=S.apply([],a);var c,d,e,f,g,h,i=0,j=this.length,k=this,l=j-1,m=a[0],p=_.isFunction(m);if(p||j>1&&"string"==typeof m&&!Y.checkClone&&Ia.test(m))return this.each(function(c){var d=k.eq(c);p&&(a[0]=m.call(this,c,d.html())),d.domManip(a,b)});if(j&&(c=_.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(e=_.map(r(c,"script"),n),f=e.length;j>i;i++)g=c,i!==l&&(g=_.clone(g,!0,!0),f&&_.merge(e,r(g,"script"))),b.call(this[i],g,i);if(f)for(h=e[e.length-1].ownerDocument,_.map(e,o),i=0;f>i;i++)g=e[i],Ja.test(g.type||"")&&!ra.access(g,"globalEval")&&_.contains(h,g)&&(g.src?_._evalUrl&&_._evalUrl(g.src):_.globalEval(g.textContent.replace(La,"")))}return this}}),_.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){_.fn[a]=function(a){for(var c,d=[],e=_(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),_(e[g])[b](c),T.apply(d,c.get());return this.pushStack(d)}});var Na,Oa={},Pa=/^margin/,Qa=new RegExp("^("+va+")(?!px)[a-z%]+$","i"),Ra=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};!function(){function b(){g.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",g.innerHTML="",e.appendChild(f);var b=a.getComputedStyle(g,null);c="1%"!==b.top,d="4px"===b.width,e.removeChild(f)}var c,d,e=Z.documentElement,f=Z.createElement("div"),g=Z.createElement("div");g.style&&(g.style.backgroundClip="content-box",g.cloneNode(!0).style.backgroundClip="",Y.clearCloneStyle="content-box"===g.style.backgroundClip,f.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",f.appendChild(g),a.getComputedStyle&&_.extend(Y,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return null==d&&b(),d},reliableMarginRight:function(){var b,c=g.appendChild(Z.createElement("div"));return c.style.cssText=g.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",g.style.width="1px",e.appendChild(f),b=!parseFloat(a.getComputedStyle(c,null).marginRight),e.removeChild(f),g.removeChild(c),b}}))}(),_.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Sa=/^(none|table(?!-c[ea]).+)/,Ta=new RegExp("^("+va+")(.*)$","i"),Ua=new RegExp("^([+-])=("+va+")","i"),Va={position:"absolute",visibility:"hidden",display:"block"},Wa={letterSpacing:"0",fontWeight:"400"},Xa=["Webkit","O","Moz","ms"];_.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=v(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=_.camelCase(b),i=a.style;return b=_.cssProps[h]||(_.cssProps[h]=x(i,h)),g=_.cssHooks[b]||_.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ua.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(_.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||_.cssNumber[h]||(c+="px"),Y.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=_.camelCase(b);return b=_.cssProps[h]||(_.cssProps[h]=x(a.style,h)),g=_.cssHooks[b]||_.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=v(a,b,d)),"normal"===e&&b in Wa&&(e=Wa[b]),""===c||c?(f=parseFloat(e),c===!0||_.isNumeric(f)?f||0:e):e}}),_.each(["height","width"],function(a,b){_.cssHooks[b]={get:function(a,c,d){return c?Sa.test(_.css(a,"display"))&&0===a.offsetWidth?_.swap(a,Va,function(){return A(a,b,d)}):A(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return y(a,c,d?z(a,b,d,"border-box"===_.css(a,"boxSizing",!1,e),e):0)}}}),_.cssHooks.marginRight=w(Y.reliableMarginRight,function(a,b){return b?_.swap(a,{display:"inline-block"},v,[a,"marginRight"]):void 0}),_.each({margin:"",padding:"",border:"Width"},function(a,b){_.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+wa[d]+b]=f[d]||f[d-2]||f[0];return e}},Pa.test(a)||(_.cssHooks[a+b].set=y)}),_.fn.extend({css:function(a,b){return qa(this,function(a,b,c){var d,e,f={},g=0;if(_.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=_.css(a,b[g],!1,d);return f}return void 0!==c?_.style(a,b,c):_.css(a,b)},a,b,arguments.length>1)},show:function(){return B(this,!0)},hide:function(){return B(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){xa(this)?_(this).show():_(this).hide()})}}),_.Tween=C,C.prototype={constructor:C,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(_.cssNumber[c]?"":"px")},cur:function(){var a=C.propHooks[this.prop];return a&&a.get?a.get(this):C.propHooks._default.get(this)},run:function(a){var b,c=C.propHooks[this.prop];return this.options.duration?this.pos=b=_.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):C.propHooks._default.set(this),this}},C.prototype.init.prototype=C.prototype,C.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=_.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){_.fx.step[a.prop]?_.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[_.cssProps[a.prop]]||_.cssHooks[a.prop])?_.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},C.propHooks.scrollTop=C.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},_.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},_.fx=C.prototype.init,_.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=new RegExp("^(?:([+-])=|)("+va+")([a-z%]*)$","i"),ab=/queueHooks$/,bb=[G],cb={
+"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=_a.exec(b),f=e&&e[3]||(_.cssNumber[a]?"":"px"),g=(_.cssNumber[a]||"px"!==f&&+d)&&_a.exec(_.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,_.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};_.Animation=_.extend(I,{tweener:function(a,b){_.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],cb[c]=cb[c]||[],cb[c].unshift(b)},prefilter:function(a,b){b?bb.unshift(a):bb.push(a)}}),_.speed=function(a,b,c){var d=a&&"object"==typeof a?_.extend({},a):{complete:c||!c&&b||_.isFunction(a)&&a,duration:a,easing:c&&b||b&&!_.isFunction(b)&&b};return d.duration=_.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in _.fx.speeds?_.fx.speeds[d.duration]:_.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){_.isFunction(d.old)&&d.old.call(this),d.queue&&_.dequeue(this,d.queue)},d},_.fn.extend({fadeTo:function(a,b,c,d){return this.filter(xa).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=_.isEmptyObject(a),f=_.speed(b,c,d),g=function(){var b=I(this,_.extend({},a),f);(e||ra.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=_.timers,g=ra.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ab.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||_.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=ra.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=_.timers,g=d?d.length:0;for(c.finish=!0,_.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),_.each(["toggle","show","hide"],function(a,b){var c=_.fn[b];_.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(E(b,!0),a,d,e)}}),_.each({slideDown:E("show"),slideUp:E("hide"),slideToggle:E("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){_.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),_.timers=[],_.fx.tick=function(){var a,b=0,c=_.timers;for(Ya=_.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||_.fx.stop(),Ya=void 0},_.fx.timer=function(a){_.timers.push(a),a()?_.fx.start():_.timers.pop()},_.fx.interval=13,_.fx.start=function(){Za||(Za=setInterval(_.fx.tick,_.fx.interval))},_.fx.stop=function(){clearInterval(Za),Za=null},_.fx.speeds={slow:600,fast:200,_default:400},_.fn.delay=function(a,b){return a=_.fx?_.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=Z.createElement("input"),b=Z.createElement("select"),c=b.appendChild(Z.createElement("option"));a.type="checkbox",Y.checkOn=""!==a.value,Y.optSelected=c.selected,b.disabled=!0,Y.optDisabled=!c.disabled,a=Z.createElement("input"),a.value="t",a.type="radio",Y.radioValue="t"===a.value}();var db,eb,fb=_.expr.attrHandle;_.fn.extend({attr:function(a,b){return qa(this,_.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){_.removeAttr(this,a)})}}),_.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===za?_.prop(a,b,c):(1===f&&_.isXMLDoc(a)||(b=b.toLowerCase(),d=_.attrHooks[b]||(_.expr.match.bool.test(b)?eb:db)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=_.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void _.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(na);if(f&&1===a.nodeType)for(;c=f[e++];)d=_.propFix[c]||c,_.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!Y.radioValue&&"radio"===b&&_.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),eb={set:function(a,b,c){return b===!1?_.removeAttr(a,c):a.setAttribute(c,c),c}},_.each(_.expr.match.bool.source.match(/\w+/g),function(a,b){var c=fb[b]||_.find.attr;fb[b]=function(a,b,d){var e,f;return d||(f=fb[b],fb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,fb[b]=f),e}});var gb=/^(?:input|select|textarea|button)$/i;_.fn.extend({prop:function(a,b){return qa(this,_.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[_.propFix[a]||a]})}}),_.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!_.isXMLDoc(a),f&&(b=_.propFix[b]||b,e=_.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||gb.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),Y.optSelected||(_.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),_.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){_.propFix[this.toLowerCase()]=this});var hb=/[\t\r\n\f]/g;_.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(na)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(hb," "):" ")){for(f=0;e=b[f++];)d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=_.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(na)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(hb," "):"")){for(f=0;e=b[f++];)for(;d.indexOf(" "+e+" ")>=0;)d=d.replace(" "+e+" "," ");g=a?_.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):_.isFunction(a)?this.each(function(c){_(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if("string"===c)for(var b,d=0,e=_(this),f=a.match(na)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else c!==za&&"boolean"!==c||(this.className&&ra.set(this,"__className__",this.className),this.className=this.className||a===!1?"":ra.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(hb," ").indexOf(b)>=0)return!0;return!1}});var ib=/\r/g;_.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=_.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,_(this).val()):a,null==e?e="":"number"==typeof e?e+="":_.isArray(e)&&(e=_.map(e,function(a){return null==a?"":a+""})),b=_.valHooks[this.type]||_.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=_.valHooks[e.type]||_.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ib,""):null==c?"":c)}}}),_.extend({valHooks:{option:{get:function(a){var b=_.find.attr(a,"value");return null!=b?b:_.trim(_.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(Y.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!_.nodeName(c.parentNode,"optgroup"))){if(b=_(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=_.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=_.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),_.each(["radio","checkbox"],function(){_.valHooks[this]={set:function(a,b){return _.isArray(b)?a.checked=_.inArray(_(a).val(),b)>=0:void 0}},Y.checkOn||(_.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),_.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){_.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),_.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var jb=_.now(),kb=/\?/;_.parseJSON=function(a){return JSON.parse(a+"")},_.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return b&&!b.getElementsByTagName("parsererror").length||_.error("Invalid XML: "+a),b};var lb=/#.*$/,mb=/([?&])_=[^&]*/,nb=/^(.*?):[ \t]*([^\r\n]*)$/gm,ob=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,pb=/^(?:GET|HEAD)$/,qb=/^\/\//,rb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,sb={},tb={},ub="*/".concat("*"),vb=a.location.href,wb=rb.exec(vb.toLowerCase())||[];_.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:vb,type:"GET",isLocal:ob.test(wb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":ub,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":_.parseJSON,"text xml":_.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?L(L(a,_.ajaxSettings),b):L(_.ajaxSettings,a)},ajaxPrefilter:J(sb),ajaxTransport:J(tb),ajax:function(a,b){function c(a,b,c,g){var i,k,r,s,u,w=b;2!==t&&(t=2,h&&clearTimeout(h),d=void 0,f=g||"",v.readyState=a>0?4:0,i=a>=200&&300>a||304===a,c&&(s=M(l,v,c)),s=N(l,s,v,i),i?(l.ifModified&&(u=v.getResponseHeader("Last-Modified"),u&&(_.lastModified[e]=u),u=v.getResponseHeader("etag"),u&&(_.etag[e]=u)),204===a||"HEAD"===l.type?w="nocontent":304===a?w="notmodified":(w=s.state,k=s.data,r=s.error,i=!r)):(r=w,!a&&w||(w="error",0>a&&(a=0))),v.status=a,v.statusText=(b||w)+"",i?o.resolveWith(m,[k,w,v]):o.rejectWith(m,[v,w,r]),v.statusCode(q),q=void 0,j&&n.trigger(i?"ajaxSuccess":"ajaxError",[v,l,i?k:r]),p.fireWith(m,[v,w]),j&&(n.trigger("ajaxComplete",[v,l]),--_.active||_.event.trigger("ajaxStop")))}"object"==typeof a&&(b=a,a=void 0),b=b||{};var d,e,f,g,h,i,j,k,l=_.ajaxSetup({},b),m=l.context||l,n=l.context&&(m.nodeType||m.jquery)?_(m):_.event,o=_.Deferred(),p=_.Callbacks("once memory"),q=l.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!g)for(g={};b=nb.exec(f);)g[b[1].toLowerCase()]=b[2];b=g[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return d&&d.abort(b),c(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,l.url=((a||l.url||vb)+"").replace(lb,"").replace(qb,wb[1]+"//"),l.type=b.method||b.type||l.method||l.type,l.dataTypes=_.trim(l.dataType||"*").toLowerCase().match(na)||[""],null==l.crossDomain&&(i=rb.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]===wb[1]&&i[2]===wb[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(wb[3]||("http:"===wb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=_.param(l.data,l.traditional)),K(sb,l,b,v),2===t)return v;j=_.event&&l.global,j&&0===_.active++&&_.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!pb.test(l.type),e=l.url,l.hasContent||(l.data&&(e=l.url+=(kb.test(e)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=mb.test(e)?e.replace(mb,"$1_="+jb++):e+(kb.test(e)?"&":"?")+"_="+jb++)),l.ifModified&&(_.lastModified[e]&&v.setRequestHeader("If-Modified-Since",_.lastModified[e]),_.etag[e]&&v.setRequestHeader("If-None-Match",_.etag[e])),(l.data&&l.hasContent&&l.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",l.contentType),v.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+ub+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)v.setRequestHeader(k,l.headers[k]);if(l.beforeSend&&(l.beforeSend.call(m,v,l)===!1||2===t))return v.abort();u="abort";for(k in{success:1,error:1,complete:1})v[k](l[k]);if(d=K(tb,l,b,v)){v.readyState=1,j&&n.trigger("ajaxSend",[v,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){v.abort("timeout")},l.timeout));try{t=1,d.send(r,c)}catch(w){if(!(2>t))throw w;c(-1,w)}}else c(-1,"No Transport");return v},getJSON:function(a,b,c){return _.get(a,b,c,"json")},getScript:function(a,b){return _.get(a,void 0,b,"script")}}),_.each(["get","post"],function(a,b){_[b]=function(a,c,d,e){return _.isFunction(c)&&(e=e||d,d=c,c=void 0),_.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),_._evalUrl=function(a){return _.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},_.fn.extend({wrapAll:function(a){var b;return _.isFunction(a)?this.each(function(b){_(this).wrapAll(a.call(this,b))}):(this[0]&&(b=_(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return _.isFunction(a)?this.each(function(b){_(this).wrapInner(a.call(this,b))}):this.each(function(){var b=_(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=_.isFunction(a);return this.each(function(c){_(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){_.nodeName(this,"body")||_(this).replaceWith(this.childNodes)}).end()}}),_.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},_.expr.filters.visible=function(a){return!_.expr.filters.hidden(a)};var xb=/%20/g,yb=/\[\]$/,zb=/\r?\n/g,Ab=/^(?:submit|button|image|reset|file)$/i,Bb=/^(?:input|select|textarea|keygen)/i;_.param=function(a,b){var c,d=[],e=function(a,b){b=_.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=_.ajaxSettings&&_.ajaxSettings.traditional),_.isArray(a)||a.jquery&&!_.isPlainObject(a))_.each(a,function(){e(this.name,this.value)});else for(c in a)O(c,a[c],b,e);return d.join("&").replace(xb,"+")},_.fn.extend({serialize:function(){return _.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=_.prop(this,"elements");return a?_.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!_(this).is(":disabled")&&Bb.test(this.nodeName)&&!Ab.test(a)&&(this.checked||!ya.test(a))}).map(function(a,b){var c=_(this).val();return null==c?null:_.isArray(c)?_.map(c,function(a){return{name:b.name,value:a.replace(zb,"\r\n")}}):{name:b.name,value:c.replace(zb,"\r\n")}}).get()}}),_.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cb=0,Db={},Eb={0:200,1223:204},Fb=_.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Db)Db[a]()}),Y.cors=!!Fb&&"withCredentials"in Fb,Y.ajax=Fb=!!Fb,_.ajaxTransport(function(a){var b;return Y.cors||Fb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Db[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Eb[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Db[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),_.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return _.globalEval(a),a}}}),_.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),_.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=_("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),Z.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gb=[],Hb=/(=)\?(?=&|$)|\?\?/;_.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Gb.pop()||_.expando+"_"+jb++;return this[a]=!0,a}}),_.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Hb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=_.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hb,"$1"+e):b.jsonp!==!1&&(b.url+=(kb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||_.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gb.push(e)),g&&_.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),_.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||Z;var d=ga.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=_.buildFragment([a],b,e),e&&e.length&&_(e).remove(),_.merge([],d.childNodes))};var Ib=_.fn.load;_.fn.load=function(a,b,c){if("string"!=typeof a&&Ib)return Ib.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=_.trim(a.slice(h)),a=a.slice(0,h)),_.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&_.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?_("<div>").append(_.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},_.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){_.fn[b]=function(a){return this.on(b,a)}}),_.expr.filters.animated=function(a){return _.grep(_.timers,function(b){return a===b.elem}).length};var Jb=a.document.documentElement;_.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=_.css(a,"position"),l=_(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=_.css(a,"top"),i=_.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),_.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},_.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){_.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,_.contains(b,d)?(typeof d.getBoundingClientRect!==za&&(e=d.getBoundingClientRect()),c=P(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===_.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),_.nodeName(a[0],"html")||(d=a.offset()),d.top+=_.css(a[0],"borderTopWidth",!0),d.left+=_.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-_.css(c,"marginTop",!0),left:b.left-d.left-_.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||Jb;a&&!_.nodeName(a,"html")&&"static"===_.css(a,"position");)a=a.offsetParent;return a||Jb})}}),_.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;_.fn[b]=function(e){return qa(this,function(b,e,f){var g=P(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),_.each(["top","left"],function(a,b){_.cssHooks[b]=w(Y.pixelPosition,function(a,c){return c?(c=v(a,b),Qa.test(c)?_(a).position()[b]+"px":c):void 0})}),_.each({Height:"height",Width:"width"},function(a,b){_.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){_.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return qa(this,function(b,c,d){var e;return _.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?_.css(b,c,g):_.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),_.fn.size=function(){return this.length},_.fn.andSelf=_.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return _});var Kb=a.jQuery,Lb=a.$;return _.noConflict=function(b){return a.$===_&&(a.$=Lb),b&&a.jQuery===_&&(a.jQuery=Kb),_},typeof b===za&&(a.jQuery=a.$=_),_}),function(a,b,c){"use strict";function d(a,b){return b=b||Error,function(){var c,d,e=2,f=arguments,g=f[0],h="["+(a?a+":":"")+g+"] ",i=f[1];for(h+=i.replace(/\{\d+\}/g,function(a){var b=+a.slice(1,-1),c=b+e;return c<f.length?ta(f[c]):a}),h+="\nhttp://errors.angularjs.org/1.4.9/"+(a?a+"/":"")+g,d=e,c="?";d<f.length;d++,c="&")h+=c+"p"+(d-e)+"="+encodeURIComponent(ta(f[d]));return new b(h)}}function e(a){if(null==a||C(a))return!1;if(Qd(a)||x(a)||Ed&&a instanceof Ed)return!0;var b="length"in Object(a)&&a.length;return y(b)&&(b>=0&&(b-1 in a||a instanceof Array)||"function"==typeof a.item)}function f(a,b,c){var d,g;if(a)if(A(a))for(d in a)"prototype"==d||"length"==d||"name"==d||a.hasOwnProperty&&!a.hasOwnProperty(d)||b.call(c,a[d],d,a);else if(Qd(a)||e(a)){var h="object"!=typeof a;for(d=0,g=a.length;g>d;d++)(h||d in a)&&b.call(c,a[d],d,a)}else if(a.forEach&&a.forEach!==f)a.forEach(b,c,a);else if(w(a))for(d in a)b.call(c,a[d],d,a);else if("function"==typeof a.hasOwnProperty)for(d in a)a.hasOwnProperty(d)&&b.call(c,a[d],d,a);else for(d in a)zd.call(a,d)&&b.call(c,a[d],d,a);return a}function g(a,b,c){for(var d=Object.keys(a).sort(),e=0;e<d.length;e++)b.call(c,a[d[e]],d[e]);return d}function h(a){return function(b,c){a(c,b)}}function i(){return++Od}function j(a,b){b?a.$$hashKey=b:delete a.$$hashKey}function k(a,b,c){for(var d=a.$$hashKey,e=0,f=b.length;f>e;++e){var g=b[e];if(v(g)||A(g))for(var h=Object.keys(g),i=0,l=h.length;l>i;i++){var m=h[i],n=g[m];c&&v(n)?z(n)?a[m]=new Date(n.valueOf()):B(n)?a[m]=new RegExp(n):n.nodeName?a[m]=n.cloneNode(!0):K(n)?a[m]=n.clone():(v(a[m])||(a[m]=Qd(n)?[]:{}),k(a[m],[n],!0)):a[m]=n}}return j(a,d),a}function l(a){return k(a,Hd.call(arguments,1),!1)}function m(a){return k(a,Hd.call(arguments,1),!0)}function n(a){return parseInt(a,10)}function o(a,b){return l(Object.create(a),b)}function p(){}function q(a){return a}function r(a){return function(){return a}}function s(a){return A(a.toString)&&a.toString!==Kd}function t(a){return"undefined"==typeof a}function u(a){return"undefined"!=typeof a}function v(a){return null!==a&&"object"==typeof a}function w(a){return null!==a&&"object"==typeof a&&!Ld(a)}function x(a){return"string"==typeof a}function y(a){return"number"==typeof a}function z(a){return"[object Date]"===Kd.call(a)}function A(a){return"function"==typeof a}function B(a){return"[object RegExp]"===Kd.call(a)}function C(a){return a&&a.window===a}function D(a){return a&&a.$evalAsync&&a.$watch}function E(a){return"[object File]"===Kd.call(a)}function F(a){return"[object FormData]"===Kd.call(a)}function G(a){return"[object Blob]"===Kd.call(a)}function H(a){return"boolean"==typeof a}function I(a){return a&&A(a.then)}function J(a){return a&&y(a.length)&&Rd.test(Kd.call(a))}function K(a){return!(!a||!(a.nodeName||a.prop&&a.attr&&a.find))}function L(a){var b,c={},d=a.split(",");for(b=0;b<d.length;b++)c[d[b]]=!0;return c}function M(a){return yd(a.nodeName||a[0]&&a[0].nodeName)}function N(a,b){var c=a.indexOf(b);return c>=0&&a.splice(c,1),c}function O(a,b){function c(a,b){var c,e=b.$$hashKey;if(Qd(a))for(var f=0,g=a.length;g>f;f++)b.push(d(a[f]));else if(w(a))for(c in a)b[c]=d(a[c]);else if(a&&"function"==typeof a.hasOwnProperty)for(c in a)a.hasOwnProperty(c)&&(b[c]=d(a[c]));else for(c in a)zd.call(a,c)&&(b[c]=d(a[c]));return j(b,e),b}function d(a){if(!v(a))return a;var b=e.indexOf(a);if(-1!==b)return g[b];if(C(a)||D(a))throw Md("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var d,f=!1;return Qd(a)?(d=[],f=!0):J(a)?d=new a.constructor(a):z(a)?d=new Date(a.getTime()):B(a)?(d=new RegExp(a.source,a.toString().match(/[^\/]*$/)[0]),d.lastIndex=a.lastIndex):A(a.cloneNode)?d=a.cloneNode(!0):(d=Object.create(Ld(a)),f=!0),e.push(a),g.push(d),f?c(a,d):d}var e=[],g=[];if(b){if(J(b))throw Md("cpta","Can't copy! TypedArray destination cannot be mutated.");if(a===b)throw Md("cpi","Can't copy! Source and destination are identical.");return Qd(b)?b.length=0:f(b,function(a,c){"$$hashKey"!==c&&delete b[c]}),e.push(a),g.push(b),c(a,b)}return d(a)}function P(a,b){if(Qd(a)){b=b||[];for(var c=0,d=a.length;d>c;c++)b[c]=a[c]}else if(v(a)){b=b||{};for(var e in a)"$"===e.charAt(0)&&"$"===e.charAt(1)||(b[e]=a[e])}return b||a}function Q(a,b){if(a===b)return!0;if(null===a||null===b)return!1;if(a!==a&&b!==b)return!0;var c,d,e,f=typeof a,g=typeof b;if(f==g&&"object"==f){if(!Qd(a)){if(z(a))return z(b)?Q(a.getTime(),b.getTime()):!1;if(B(a))return B(b)?a.toString()==b.toString():!1;if(D(a)||D(b)||C(a)||C(b)||Qd(b)||z(b)||B(b))return!1;e=qa();for(d in a)if("$"!==d.charAt(0)&&!A(a[d])){if(!Q(a[d],b[d]))return!1;e[d]=!0}for(d in b)if(!(d in e)&&"$"!==d.charAt(0)&&u(b[d])&&!A(b[d]))return!1;return!0}if(!Qd(b))return!1;if((c=a.length)==b.length){for(d=0;c>d;d++)if(!Q(a[d],b[d]))return!1;return!0}}return!1}function R(a,b,c){return a.concat(Hd.call(b,c))}function S(a,b){return Hd.call(a,b||0)}function T(a,b){var c=arguments.length>2?S(arguments,2):[];return!A(b)||b instanceof RegExp?b:c.length?function(){return arguments.length?b.apply(a,R(c,arguments,0)):b.apply(a,c)}:function(){return arguments.length?b.apply(a,arguments):b.call(a)}}function U(a,d){var e=d;return"string"==typeof a&&"$"===a.charAt(0)&&"$"===a.charAt(1)?e=c:C(d)?e="$WINDOW":d&&b===d?e="$DOCUMENT":D(d)&&(e="$SCOPE"),e}function V(a,b){return"undefined"==typeof a?c:(y(b)||(b=b?2:null),JSON.stringify(a,U,b))}function W(a){return x(a)?JSON.parse(a):a}function X(a,b){var c=Date.parse("Jan 01, 1970 00:00:00 "+a)/6e4;return isNaN(c)?b:c}function Y(a,b){return a=new Date(a.getTime()),a.setMinutes(a.getMinutes()+b),a}function Z(a,b,c){c=c?-1:1;var d=X(b,a.getTimezoneOffset());return Y(a,c*(d-a.getTimezoneOffset()))}function $(a){a=Ed(a).clone();try{a.empty()}catch(b){}var c=Ed("<div>").append(a).html();try{return a[0].nodeType===_d?yd(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+yd(b)})}catch(b){return yd(c)}}function _(a){try{return decodeURIComponent(a)}catch(b){}}function aa(a){var b={};return f((a||"").split("&"),function(a){var c,d,e;a&&(d=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(d=a.substring(0,c),e=a.substring(c+1)),d=_(d),u(d)&&(e=u(e)?_(e):!0,zd.call(b,d)?Qd(b[d])?b[d].push(e):b[d]=[b[d],e]:b[d]=e))}),b}function ba(a){var b=[];return f(a,function(a,c){Qd(a)?f(a,function(a){b.push(da(c,!0)+(a===!0?"":"="+da(a,!0)))}):b.push(da(c,!0)+(a===!0?"":"="+da(a,!0)))}),b.length?b.join("&"):""}function ca(a){return da(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function da(a,b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function ea(a,b){var c,d,e=Wd.length;for(d=0;e>d;++d)if(c=Wd[d]+b,x(c=a.getAttribute(c)))return c;return null}function fa(a,b){var c,d,e={};f(Wd,function(b){var e=b+"app";!c&&a.hasAttribute&&a.hasAttribute(e)&&(c=a,d=a.getAttribute(e))}),f(Wd,function(b){var e,f=b+"app";!c&&(e=a.querySelector("["+f.replace(":","\\:")+"]"))&&(c=e,d=e.getAttribute(f))}),c&&(e.strictDi=null!==ea(c,"strict-di"),b(c,d?[d]:[],e))}function ga(c,d,e){v(e)||(e={});var g={strictDi:!1};e=l(g,e);var h=function(){if(c=Ed(c),c.injector()){var a=c[0]===b?"document":$(c);throw Md("btstrpd","App Already Bootstrapped with this Element '{0}'",a.replace(/</,"&lt;").replace(/>/,"&gt;"))}d=d||[],d.unshift(["$provide",function(a){a.value("$rootElement",c)}]),e.debugInfoEnabled&&d.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]),d.unshift("ng");var f=ab(d,e.strictDi);return f.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d),c(b)(a)})}]),f},i=/^NG_ENABLE_DEBUG_INFO!/,j=/^NG_DEFER_BOOTSTRAP!/;return a&&i.test(a.name)&&(e.debugInfoEnabled=!0,a.name=a.name.replace(i,"")),a&&!j.test(a.name)?h():(a.name=a.name.replace(j,""),Nd.resumeBootstrap=function(a){return f(a,function(a){d.push(a)}),h()},void(A(Nd.resumeDeferredBootstrap)&&Nd.resumeDeferredBootstrap()))}function ha(){a.name="NG_ENABLE_DEBUG_INFO!"+a.name,a.location.reload()}function ia(a){var b=Nd.element(a).injector();if(!b)throw Md("test","no injector found for element argument to getTestability");return b.get("$$testability")}function ja(a,b){return b=b||"_",a.replace(Xd,function(a,c){return(c?b:"")+a.toLowerCase()})}function ka(){var b;if(!Yd){var d=Vd();Fd=t(d)?a.jQuery:d?a[d]:c,Fd&&Fd.fn.on?(Ed=Fd,l(Fd.fn,{scope:se.scope,isolateScope:se.isolateScope,controller:se.controller,injector:se.injector,inheritedData:se.inheritedData}),b=Fd.cleanData,Fd.cleanData=function(a){var c;if(Pd)Pd=!1;else for(var d,e=0;null!=(d=a[e]);e++)c=Fd._data(d,"events"),c&&c.$destroy&&Fd(d).triggerHandler("$destroy");b(a)}):Ed=Ca,Nd.element=Ed,Yd=!0}}function la(a,b,c){if(!a)throw Md("areq","Argument '{0}' is {1}",b||"?",c||"required");return a}function ma(a,b,c){return c&&Qd(a)&&(a=a[a.length-1]),la(A(a),b,"not a function, got "+(a&&"object"==typeof a?a.constructor.name||"Object":typeof a)),a}function na(a,b){if("hasOwnProperty"===a)throw Md("badname","hasOwnProperty is not a valid {0} name",b)}function oa(a,b,c){if(!b)return a;for(var d,e=b.split("."),f=a,g=e.length,h=0;g>h;h++)d=e[h],a&&(a=(f=a)[d]);return!c&&A(a)?T(f,a):a}function pa(a){for(var b,c=a[0],d=a[a.length-1],e=1;c!==d&&(c=c.nextSibling);e++)(b||a[e]!==c)&&(b||(b=Ed(Hd.call(a,0,e))),b.push(c));return b||a}function qa(){return Object.create(null)}function ra(a){function b(a,b,c){return a[b]||(a[b]=c())}var c=d("$injector"),e=d("ng"),f=b(a,"angular",Object);return f.$$minErr=f.$$minErr||d,b(f,"module",function(){var a={};return function(d,f,g){var h=function(a,b){if("hasOwnProperty"===a)throw e("badname","hasOwnProperty is not a valid {0} name",b)};return h(d,"module"),f&&a.hasOwnProperty(d)&&(a[d]=null),
+b(a,d,function(){function a(a,b,c,d){return d||(d=e),function(){return d[c||"push"]([a,b,arguments]),k}}function b(a,b){return function(c,f){return f&&A(f)&&(f.$$moduleName=d),e.push([a,b,arguments]),k}}if(!f)throw c("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",d);var e=[],h=[],i=[],j=a("$injector","invoke","push",h),k={_invokeQueue:e,_configBlocks:h,_runBlocks:i,requires:f,name:d,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),decorator:b("$provide","decorator"),animation:b("$animateProvider","register"),filter:b("$filterProvider","register"),controller:b("$controllerProvider","register"),directive:b("$compileProvider","directive"),config:j,run:function(a){return i.push(a),this}};return g&&j(g),k})}})}function sa(a){var b=[];return JSON.stringify(a,function(a,c){if(c=U(a,c),v(c)){if(b.indexOf(c)>=0)return"...";b.push(c)}return c})}function ta(a){return"function"==typeof a?a.toString().replace(/ \{[\s\S]*$/,""):t(a)?"undefined":"string"!=typeof a?sa(a):a}function ua(b){l(b,{bootstrap:ga,copy:O,extend:l,merge:m,equals:Q,element:Ed,forEach:f,injector:ab,noop:p,bind:T,toJson:V,fromJson:W,identity:q,isUndefined:t,isDefined:u,isString:x,isFunction:A,isObject:v,isNumber:y,isElement:K,isArray:Qd,version:de,isDate:z,lowercase:yd,uppercase:Ad,callbacks:{counter:0},getTestability:ia,$$minErr:d,$$csp:Ud,reloadWithDebugInfo:ha}),(Gd=ra(a))("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:sc}),a.provider("$compile",kb).directive({a:xf,input:Of,textarea:Of,form:Cf,script:Gg,select:Jg,style:Lg,option:Kg,ngBind:Rf,ngBindHtml:Tf,ngBindTemplate:Sf,ngClass:Vf,ngClassEven:Xf,ngClassOdd:Wf,ngCloak:Yf,ngController:Zf,ngForm:Df,ngHide:Ag,ngIf:ag,ngInclude:bg,ngInit:dg,ngNonBindable:rg,ngPluralize:vg,ngRepeat:wg,ngShow:zg,ngStyle:Bg,ngSwitch:Cg,ngSwitchWhen:Dg,ngSwitchDefault:Eg,ngOptions:ug,ngTransclude:Fg,ngModel:og,ngList:eg,ngChange:Uf,pattern:Ng,ngPattern:Ng,required:Mg,ngRequired:Mg,minlength:Pg,ngMinlength:Pg,maxlength:Og,ngMaxlength:Og,ngValue:Qf,ngModelOptions:qg}).directive({ngInclude:cg}).directive(yf).directive($f),a.provider({$anchorScroll:bb,$animate:He,$animateCss:Ke,$$animateJs:Fe,$$animateQueue:Ge,$$AnimateRunner:Je,$$animateAsyncRun:Ie,$browser:hb,$cacheFactory:ib,$controller:pb,$document:qb,$exceptionHandler:rb,$filter:Gc,$$forceReflow:Pe,$interpolate:Fb,$interval:Gb,$http:Bb,$httpParamSerializer:tb,$httpParamSerializerJQLike:ub,$httpBackend:Db,$xhrFactory:Cb,$location:Ub,$log:Vb,$parse:mc,$rootScope:rc,$q:nc,$$q:oc,$sce:wc,$sceDelegate:vc,$sniffer:xc,$templateCache:jb,$templateRequest:yc,$$testability:zc,$timeout:Ac,$window:Dc,$$rAF:qc,$$jqLite:Xa,$$HashMap:we,$$cookieReader:Fc})}])}function va(){return++fe}function wa(a){return a.replace(ie,function(a,b,c,d){return d?c.toUpperCase():c}).replace(je,"Moz$1")}function xa(a){return!ne.test(a)}function ya(a){var b=a.nodeType;return b===Zd||!b||b===be}function za(a){for(var b in ee[a.ng339])return!0;return!1}function Aa(a,b){var c,d,e,g,h=b.createDocumentFragment(),i=[];if(xa(a))i.push(b.createTextNode(a));else{for(c=c||h.appendChild(b.createElement("div")),d=(oe.exec(a)||["",""])[1].toLowerCase(),e=qe[d]||qe._default,c.innerHTML=e[1]+a.replace(pe,"<$1></$2>")+e[2],g=e[0];g--;)c=c.lastChild;i=R(i,c.childNodes),c=h.firstChild,c.textContent=""}return h.textContent="",h.innerHTML="",f(i,function(a){h.appendChild(a)}),h}function Ba(a,c){c=c||b;var d;return(d=me.exec(a))?[c.createElement(d[1])]:(d=Aa(a,c))?d.childNodes:[]}function Ca(a){if(a instanceof Ca)return a;var b;if(x(a)&&(a=Sd(a),b=!0),!(this instanceof Ca)){if(b&&"<"!=a.charAt(0))throw le("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new Ca(a)}b?Ma(this,Ba(a)):Ma(this,a)}function Da(a){return a.cloneNode(!0)}function Ea(a,b){if(b||Ga(a),a.querySelectorAll)for(var c=a.querySelectorAll("*"),d=0,e=c.length;e>d;d++)Ga(c[d])}function Fa(a,b,c,d){if(u(d))throw le("offargs","jqLite#off() does not support the `selector` argument");var e=Ha(a),g=e&&e.events,h=e&&e.handle;if(h)if(b){var i=function(b){var d=g[b];u(c)&&N(d||[],c),u(c)&&d&&d.length>0||(he(a,b,h),delete g[b])};f(b.split(" "),function(a){i(a),ke[a]&&i(ke[a])})}else for(b in g)"$destroy"!==b&&he(a,b,h),delete g[b]}function Ga(a,b){var d=a.ng339,e=d&&ee[d];if(e){if(b)return void delete e.data[b];e.handle&&(e.events.$destroy&&e.handle({},"$destroy"),Fa(a)),delete ee[d],a.ng339=c}}function Ha(a,b){var d=a.ng339,e=d&&ee[d];return b&&!e&&(a.ng339=d=va(),e=ee[d]={events:{},data:{},handle:c}),e}function Ia(a,b,c){if(ya(a)){var d=u(c),e=!d&&b&&!v(b),f=!b,g=Ha(a,!e),h=g&&g.data;if(d)h[b]=c;else{if(f)return h;if(e)return h&&h[b];l(h,b)}}}function Ja(a,b){return a.getAttribute?(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+b+" ")>-1:!1}function Ka(a,b){b&&a.setAttribute&&f(b.split(" "),function(b){a.setAttribute("class",Sd((" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+Sd(b)+" "," ")))})}function La(a,b){if(b&&a.setAttribute){var c=(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");f(b.split(" "),function(a){a=Sd(a),-1===c.indexOf(" "+a+" ")&&(c+=a+" ")}),a.setAttribute("class",Sd(c))}}function Ma(a,b){if(b)if(b.nodeType)a[a.length++]=b;else{var c=b.length;if("number"==typeof c&&b.window!==b){if(c)for(var d=0;c>d;d++)a[a.length++]=b[d]}else a[a.length++]=b}}function Na(a,b){return Oa(a,"$"+(b||"ngController")+"Controller")}function Oa(a,b,c){a.nodeType==be&&(a=a.documentElement);for(var d=Qd(b)?b:[b];a;){for(var e=0,f=d.length;f>e;e++)if(u(c=Ed.data(a,d[e])))return c;a=a.parentNode||a.nodeType===ce&&a.host}}function Pa(a){for(Ea(a,!0);a.firstChild;)a.removeChild(a.firstChild)}function Qa(a,b){b||Ea(a);var c=a.parentNode;c&&c.removeChild(a)}function Ra(b,c){c=c||a,"complete"===c.document.readyState?c.setTimeout(b):Ed(c).on("load",b)}function Sa(a,b){var c=te[b.toLowerCase()];return c&&ue[M(a)]&&c}function Ta(a){return ve[a]}function Ua(a,b){var c=function(c,d){c.isDefaultPrevented=function(){return c.defaultPrevented};var e=b[d||c.type],f=e?e.length:0;if(f){if(t(c.immediatePropagationStopped)){var g=c.stopImmediatePropagation;c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0,c.stopPropagation&&c.stopPropagation(),g&&g.call(c)}}c.isImmediatePropagationStopped=function(){return c.immediatePropagationStopped===!0};var h=e.specialHandlerWrapper||Va;f>1&&(e=P(e));for(var i=0;f>i;i++)c.isImmediatePropagationStopped()||h(a,c,e[i])}};return c.elem=a,c}function Va(a,b,c){c.call(a,b)}function Wa(a,b,c){var d=b.relatedTarget;d&&(d===a||re.call(a,d))||c.call(a,b)}function Xa(){this.$get=function(){return l(Ca,{hasClass:function(a,b){return a.attr&&(a=a[0]),Ja(a,b)},addClass:function(a,b){return a.attr&&(a=a[0]),La(a,b)},removeClass:function(a,b){return a.attr&&(a=a[0]),Ka(a,b)}})}}function Ya(a,b){var c=a&&a.$$hashKey;if(c)return"function"==typeof c&&(c=a.$$hashKey()),c;var d=typeof a;return c="function"==d||"object"==d&&null!==a?a.$$hashKey=d+":"+(b||i)():d+":"+a}function Za(a,b){if(b){var c=0;this.nextUid=function(){return++c}}f(a,this.put,this)}function $a(a){var b=a.toString().replace(Ae,""),c=b.match(xe);return c?"function("+(c[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function _a(a,b,c){var d,e,g,h;if("function"==typeof a){if(!(d=a.$inject)){if(d=[],a.length){if(b)throw x(c)&&c||(c=a.name||$a(a)),Be("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",c);e=a.toString().replace(Ae,""),g=e.match(xe),f(g[1].split(ye),function(a){a.replace(ze,function(a,b,c){d.push(c)})})}a.$inject=d}}else Qd(a)?(h=a.length-1,ma(a[h],"fn"),d=a.slice(0,h)):ma(a,"fn",!0);return d}function ab(a,b){function d(a){return function(b,c){return v(b)?void f(b,h(a)):a(b,c)}}function e(a,b){if(na(a,"service"),(A(b)||Qd(b))&&(b=y.instantiate(b)),!b.$get)throw Be("pget","Provider '{0}' must define $get factory method.",a);return w[a+q]=b}function g(a,b){return function(){var c=B.invoke(b,this);if(t(c))throw Be("undef","Provider '{0}' must return a value from $get factory method.",a);return c}}function i(a,b,c){return e(a,{$get:c!==!1?g(a,b):b})}function j(a,b){return i(a,["$injector",function(a){return a.instantiate(b)}])}function k(a,b){return i(a,r(b),!1)}function l(a,b){na(a,"constant"),w[a]=b,z[a]=b}function m(a,b){var c=y.get(a+q),d=c.$get;c.$get=function(){var a=B.invoke(d,c);return B.invoke(b,null,{$delegate:a})}}function n(a){la(t(a)||Qd(a),"modulesToLoad","not an array");var b,c=[];return f(a,function(a){function d(a){var b,c;for(b=0,c=a.length;c>b;b++){var d=a[b],e=y.get(d[0]);e[d[1]].apply(e,d[2])}}if(!u.get(a)){u.put(a,!0);try{x(a)?(b=Gd(a),c=c.concat(n(b.requires)).concat(b._runBlocks),d(b._invokeQueue),d(b._configBlocks)):A(a)?c.push(y.invoke(a)):Qd(a)?c.push(y.invoke(a)):ma(a,"module")}catch(e){throw Qd(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1==e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Be("modulerr","Failed to instantiate module {0} due to:\n{1}",a,e.stack||e.message||e)}}}),c}function o(a,c){function d(b,d){if(a.hasOwnProperty(b)){if(a[b]===p)throw Be("cdep","Circular dependency found: {0}",b+" <- "+s.join(" <- "));return a[b]}try{return s.unshift(b),a[b]=p,a[b]=c(b,d)}catch(e){throw a[b]===p&&delete a[b],e}finally{s.shift()}}function e(a,c,e,f){"string"==typeof e&&(f=e,e=null);var g,h,i,j=[],k=ab.$$annotate(a,b,f);for(h=0,g=k.length;g>h;h++){if(i=k[h],"string"!=typeof i)throw Be("itkn","Incorrect injection token! Expected service name as string, got {0}",i);j.push(e&&e.hasOwnProperty(i)?e[i]:d(i,f))}return Qd(a)&&(a=a[g]),a.apply(c,j)}function f(a,b,c){var d=Object.create((Qd(a)?a[a.length-1]:a).prototype||null),f=e(a,d,b,c);return v(f)||A(f)?f:d}return{invoke:e,instantiate:f,get:d,annotate:ab.$$annotate,has:function(b){return w.hasOwnProperty(b+q)||a.hasOwnProperty(b)}}}b=b===!0;var p={},q="Provider",s=[],u=new Za([],!0),w={$provide:{provider:d(e),factory:d(i),service:d(j),value:d(k),constant:d(l),decorator:m}},y=w.$injector=o(w,function(a,b){throw Nd.isString(b)&&s.push(b),Be("unpr","Unknown provider: {0}",s.join(" <- "))}),z={},B=z.$injector=o(z,function(a,b){var d=y.get(a+q,b);return B.invoke(d.$get,d,c,a)});return f(n(a),function(a){a&&B.invoke(a)}),B}function bb(){var a=!0;this.disableAutoScrolling=function(){a=!1},this.$get=["$window","$location","$rootScope",function(b,c,d){function e(a){var b=null;return Array.prototype.some.call(a,function(a){return"a"===M(a)?(b=a,!0):void 0}),b}function f(){var a=h.yOffset;if(A(a))a=a();else if(K(a)){var c=a[0],d=b.getComputedStyle(c);a="fixed"!==d.position?0:c.getBoundingClientRect().bottom}else y(a)||(a=0);return a}function g(a){if(a){a.scrollIntoView();var c=f();if(c){var d=a.getBoundingClientRect().top;b.scrollBy(0,d-c)}}else b.scrollTo(0,0)}function h(a){a=x(a)?a:c.hash();var b;a?(b=i.getElementById(a))?g(b):(b=e(i.getElementsByName(a)))?g(b):"top"===a&&g(null):g(null)}var i=b.document;return a&&d.$watch(function(){return c.hash()},function(a,b){a===b&&""===a||Ra(function(){d.$evalAsync(h)})}),h}]}function cb(a,b){return a||b?a?b?(Qd(a)&&(a=a.join(" ")),Qd(b)&&(b=b.join(" ")),a+" "+b):a:b:""}function db(a){for(var b=0;b<a.length;b++){var c=a[b];if(c.nodeType===De)return c}}function eb(a){x(a)&&(a=a.split(" "));var b=qa();return f(a,function(a){a.length&&(b[a]=!0)}),b}function fb(a){return v(a)?a:{}}function gb(a,b,c,d){function e(a){try{a.apply(null,S(arguments,1))}finally{if(s--,0===s)for(;u.length;)try{u.pop()()}catch(b){c.error(b)}}}function g(a){var b=a.indexOf("#");return-1===b?"":a.substr(b)}function h(){z=null,j(),k()}function i(){try{return n.state}catch(a){}}function j(){v=i(),v=t(v)?null:v,Q(v,C)&&(v=C),C=v}function k(){x===l.url()&&w===v||(x=l.url(),w=v,f(A,function(a){a(l.url(),v)}))}var l=this,m=(b[0],a.location),n=a.history,o=a.setTimeout,q=a.clearTimeout,r={};l.isMock=!1;var s=0,u=[];l.$$completeOutstandingRequest=e,l.$$incOutstandingRequestCount=function(){s++},l.notifyWhenNoOutstandingRequests=function(a){0===s?a():u.push(a)};var v,w,x=m.href,y=b.find("base"),z=null;j(),w=v,l.url=function(b,c,e){if(t(e)&&(e=null),m!==a.location&&(m=a.location),n!==a.history&&(n=a.history),b){var f=w===e;if(x===b&&(!d.history||f))return l;var h=x&&Lb(x)===Lb(b);return x=b,w=e,!d.history||h&&f?(h&&!z||(z=b),c?m.replace(b):h?m.hash=g(b):m.href=b,m.href!==b&&(z=b)):(n[c?"replaceState":"pushState"](e,"",b),j(),w=v),l}return z||m.href.replace(/%27/g,"'")},l.state=function(){return v};var A=[],B=!1,C=null;l.onUrlChange=function(b){return B||(d.history&&Ed(a).on("popstate",h),Ed(a).on("hashchange",h),B=!0),A.push(b),b},l.$$applicationDestroyed=function(){Ed(a).off("hashchange popstate",h)},l.$$checkUrlChange=k,l.baseHref=function(){var a=y.attr("href");return a?a.replace(/^(https?\:)?\/\/[^\/]*/,""):""},l.defer=function(a,b){var c;return s++,c=o(function(){delete r[c],e(a)},b||0),r[c]=!0,c},l.defer.cancel=function(a){return r[a]?(delete r[a],q(a),e(p),!0):!1}}function hb(){this.$get=["$window","$log","$sniffer","$document",function(a,b,c,d){return new gb(a,d,b,c)}]}function ib(){this.$get=function(){function a(a,c){function e(a){a!=m&&(n?n==a&&(n=a.n):n=a,f(a.n,a.p),f(a,m),m=a,m.n=null)}function f(a,b){a!=b&&(a&&(a.p=b),b&&(b.n=a))}if(a in b)throw d("$cacheFactory")("iid","CacheId '{0}' is already taken!",a);var g=0,h=l({},c,{id:a}),i=qa(),j=c&&c.capacity||Number.MAX_VALUE,k=qa(),m=null,n=null;return b[a]={put:function(a,b){if(!t(b)){if(j<Number.MAX_VALUE){var c=k[a]||(k[a]={key:a});e(c)}return a in i||g++,i[a]=b,g>j&&this.remove(n.key),b}},get:function(a){if(j<Number.MAX_VALUE){var b=k[a];if(!b)return;e(b)}return i[a]},remove:function(a){if(j<Number.MAX_VALUE){var b=k[a];if(!b)return;b==m&&(m=b.p),b==n&&(n=b.n),f(b.n,b.p),delete k[a]}a in i&&(delete i[a],g--)},removeAll:function(){i=qa(),g=0,k=qa(),m=n=null},destroy:function(){i=null,h=null,k=null,delete b[a]},info:function(){return l({},h,{size:g})}}}var b={};return a.info=function(){var a={};return f(b,function(b,c){a[c]=b.info()}),a},a.get=function(a){return b[a]},a}}function jb(){this.$get=["$cacheFactory",function(a){return a("templates")}]}function kb(a,d){function e(a,b,c){var d=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,e={};return f(a,function(a,f){var g=a.match(d);if(!g)throw Le("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",b,f,a,c?"controller bindings definition":"isolate scope definition");e[f]={mode:g[1][0],collection:"*"===g[2],optional:"?"===g[3],attrName:g[4]||f}}),e}function g(a,b){var c={isolateScope:null,bindToController:null};if(v(a.scope)&&(a.bindToController===!0?(c.bindToController=e(a.scope,b,!0),c.isolateScope={}):c.isolateScope=e(a.scope,b,!1)),v(a.bindToController)&&(c.bindToController=e(a.bindToController,b,!0)),v(c.bindToController)){var d=a.controller,f=a.controllerAs;if(!d)throw Le("noctrl","Cannot bind to controller without directive '{0}'s controller.",b);if(!ob(d,f))throw Le("noident","Cannot bind to controller without identifier for directive '{0}'.",b)}return c}function i(a){var b=a.charAt(0);if(!b||b!==yd(b))throw Le("baddir","Directive name '{0}' is invalid. The first character must be a lowercase letter",a);if(a!==a.trim())throw Le("baddir","Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces",a)}var j={},k="Directive",m=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,n=/(([\w\-]+)(?:\:([^;]+))?;?)/,s=L("ngSrc,ngSrcset,src,srcset"),w=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,y=/^(on[a-z]+|formaction)$/;this.directive=function B(b,c){return na(b,"directive"),x(b)?(i(b),la(c,"directiveFactory"),j.hasOwnProperty(b)||(j[b]=[],a.factory(b+k,["$injector","$exceptionHandler",function(a,c){var d=[];return f(j[b],function(e,f){try{var h=a.invoke(e);A(h)?h={compile:r(h)}:!h.compile&&h.link&&(h.compile=r(h.link)),h.priority=h.priority||0,h.index=f,h.name=h.name||b,h.require=h.require||h.controller&&h.name,h.restrict=h.restrict||"EA";var i=h.$$bindings=g(h,h.name);v(i.isolateScope)&&(h.$$isolateBindings=i.isolateScope),h.$$moduleName=e.$$moduleName,d.push(h)}catch(j){c(j)}}),d}])),j[b].push(c)):f(b,h(B)),this},this.aHrefSanitizationWhitelist=function(a){return u(a)?(d.aHrefSanitizationWhitelist(a),this):d.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(a){return u(a)?(d.imgSrcSanitizationWhitelist(a),this):d.imgSrcSanitizationWhitelist()};var z=!0;this.debugInfoEnabled=function(a){return u(a)?(z=a,this):z},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate","$$sanitizeUri",function(a,d,e,g,h,i,r,u,B,C){function E(a,b){try{a.addClass(b)}catch(c){}}function F(a,b,c,d,e){a instanceof Ed||(a=Ed(a)),f(a,function(b,c){b.nodeType==_d&&b.nodeValue.match(/\S+/)&&(a[c]=Ed(b).wrap("<span></span>").parent()[0])});var g=H(a,b,a,c,d,e);F.$$addScopeClass(a);var h=null;return function(b,c,d){la(b,"scope"),e&&e.needsNewScope&&(b=b.$parent.$new()),d=d||{};var f=d.parentBoundTranscludeFn,i=d.transcludeControllers,j=d.futureParentElement;f&&f.$$boundTransclude&&(f=f.$$boundTransclude),h||(h=G(j));var k;if(k="html"!==h?Ed(Z(h,Ed("<div>").append(a).html())):c?se.clone.call(a):a,i)for(var l in i)k.data("$"+l+"Controller",i[l].instance);return F.$$addScopeInfo(k,b),c&&c(k,b),g&&g(b,k,k,f),k}}function G(a){var b=a&&a[0];return b&&"foreignobject"!==M(b)&&b.toString().match(/SVG/)?"svg":"html"}function H(a,b,d,e,f,g){function h(a,d,e,f){var g,h,i,j,k,l,m,n,q;if(o){var r=d.length;for(q=new Array(r),k=0;k<p.length;k+=3)m=p[k],q[m]=d[m]}else q=d;for(k=0,l=p.length;l>k;)i=q[p[k++]],g=p[k++],h=p[k++],g?(g.scope?(j=a.$new(),F.$$addScopeInfo(Ed(i),j)):j=a,n=g.transcludeOnThisElement?I(a,g.transclude,f):!g.templateOnThisElement&&f?f:!f&&b?I(a,b):null,g(h,j,i,e,n)):h&&h(a,i.childNodes,c,f)}for(var i,j,k,l,m,n,o,p=[],q=0;q<a.length;q++)i=new fa,j=J(a[q],[],i,0===q?e:c,f),k=j.length?O(j,a[q],i,b,d,null,[],[],g):null,k&&k.scope&&F.$$addScopeClass(i.$$element),m=k&&k.terminal||!(l=a[q].childNodes)||!l.length?null:H(l,k?(k.transcludeOnThisElement||!k.templateOnThisElement)&&k.transclude:b),(k||m)&&(p.push(q,k,m),n=!0,o=o||k),g=null;return n?h:null}function I(a,b,c){var d=function(d,e,f,g,h){return d||(d=a.$new(!1,h),d.$$transcluded=!0),b(d,e,{parentBoundTranscludeFn:c,transcludeControllers:f,futureParentElement:g})};return d}function J(a,b,c,d,e){var f,g,h=a.nodeType,i=c.$attr;switch(h){case Zd:R(b,lb(M(a)),"E",d,e);for(var j,k,l,o,p,q,r=a.attributes,s=0,t=r&&r.length;t>s;s++){var u=!1,w=!1;j=r[s],k=j.name,p=Sd(j.value),o=lb(k),(q=ka.test(o))&&(k=k.replace(Me,"").substr(8).replace(/_(.)/g,function(a,b){return b.toUpperCase()}));var y=o.match(ma);y&&T(y[1])&&(u=k,w=k.substr(0,k.length-5)+"end",k=k.substr(0,k.length-6)),l=lb(k.toLowerCase()),i[l]=k,!q&&c.hasOwnProperty(l)||(c[l]=p,Sa(a,l)&&(c[l]=!0)),aa(a,b,p,l,q),R(b,l,"A",d,e,u,w)}if(g=a.className,v(g)&&(g=g.animVal),x(g)&&""!==g)for(;f=n.exec(g);)l=lb(f[2]),R(b,l,"C",d,e)&&(c[l]=Sd(f[3])),g=g.substr(f.index+f[0].length);break;case _d:if(11===Dd)for(;a.parentNode&&a.nextSibling&&a.nextSibling.nodeType===_d;)a.nodeValue=a.nodeValue+a.nextSibling.nodeValue,a.parentNode.removeChild(a.nextSibling);Y(b,a.nodeValue);break;case ae:try{f=m.exec(a.nodeValue),f&&(l=lb(f[1]),R(b,l,"M",d,e)&&(c[l]=Sd(f[2])))}catch(z){}}return b.sort(W),b}function K(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw Le("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",b,c);a.nodeType==Zd&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--),d.push(a),a=a.nextSibling}while(e>0)}else d.push(a);return Ed(d)}function L(a,b,c){return function(d,e,f,g,h){return e=K(e[0],b,c),a(d,e,f,g,h)}}function O(a,d,f,g,h,j,k,l,m){function n(a,b,c,d){a&&(c&&(a=L(a,c,d)),a.require=r.require,a.directiveName=s,(E===r||r.$$isolateScope)&&(a=ca(a,{isolateScope:!0})),k.push(a)),b&&(c&&(b=L(b,c,d)),b.require=r.require,b.directiveName=s,(E===r||r.$$isolateScope)&&(b=ca(b,{isolateScope:!0})),l.push(b))}function o(a,b,c,d){var e;if(x(b)){var f=b.match(w),g=b.substring(f[0].length),h=f[1]||f[3],i="?"===f[2];if("^^"===h?c=c.parent():(e=d&&d[g],e=e&&e.instance),!e){var j="$"+g+"Controller";e=h?c.inheritedData(j):c.data(j)}if(!e&&!i)throw Le("ctreq","Controller '{0}', required by directive '{1}', can't be found!",g,a)}else if(Qd(b)){e=[];for(var k=0,l=b.length;l>k;k++)e[k]=o(a,b[k],c,d)}return e||null}function p(a,b,c,d,e,f){var g=qa();for(var h in d){var j=d[h],k={$scope:j===E||j.$$isolateScope?e:f,$element:a,$attrs:b,$transclude:c},l=j.controller;"@"==l&&(l=b[j.name]);var m=i(l,k,!0,j.controllerAs);g[j.name]=m,N||a.data("$"+j.name+"Controller",m.instance)}return g}function q(a,b,e,g,h){function i(a,b,d){var e;return D(a)||(d=b,b=a,a=c),N&&(e=q),d||(d=N?s.parent():s),h(a,b,e,d,H)}var j,m,n,q,r,s,t,u,v;d===e?(t=f,s=f.$$element):(s=Ed(e),t=new fa(s,f)),n=b,E?m=b.$new(!0):B&&(n=b.$parent),h&&(r=i,r.$$boundTransclude=h),C&&(q=p(s,t,r,C,m,b)),E&&(F.$$addScopeInfo(s,m,!0,!(G&&(G===E||G===E.$$originalDirective))),F.$$addScopeClass(s,!0),m.$$isolateBindings=E.$$isolateBindings,u=ea(b,t,m,m.$$isolateBindings,E),u&&m.$on("$destroy",u));for(var w in q){var x=C[w],y=q[w],z=x.$$bindings.bindToController;y.identifier&&z&&(v=ea(n,t,y.instance,z,x));var A=y();A!==y.instance&&(y.instance=A,s.data("$"+x.name+"Controller",A),v&&v(),v=ea(n,t,y.instance,z,x))}for(T=0,W=k.length;W>T;T++)j=k[T],da(j,j.isolateScope?m:b,s,t,j.require&&o(j.directiveName,j.require,s,q),r);var H=b;for(E&&(E.template||null===E.templateUrl)&&(H=m),a&&a(H,e.childNodes,c,h),T=l.length-1;T>=0;T--)j=l[T],da(j,j.isolateScope?m:b,s,t,j.require&&o(j.directiveName,j.require,s,q),r)}m=m||{};for(var r,s,t,u,y,z=-Number.MAX_VALUE,B=m.newScopeDirective,C=m.controllerDirectives,E=m.newIsolateScopeDirective,G=m.templateDirective,H=m.nonTlbTranscludeDirective,I=!1,M=!1,N=m.hasElementTranscludeDirective,O=f.$$element=Ed(d),Q=j,R=g,T=0,W=a.length;W>T;T++){r=a[T];var Y=r.$$start,_=r.$$end;if(Y&&(O=K(d,Y,_)),t=c,z>r.priority)break;if((y=r.scope)&&(r.templateUrl||(v(y)?(X("new/isolated scope",E||B,r,O),E=r):X("new/isolated scope",E,r,O)),B=B||r),s=r.name,!r.templateUrl&&r.controller&&(y=r.controller,C=C||qa(),X("'"+s+"' controller",C[s],r,O),C[s]=r),(y=r.transclude)&&(I=!0,r.$$tlb||(X("transclusion",H,r,O),H=r),"element"==y?(N=!0,z=r.priority,t=O,O=f.$$element=Ed(b.createComment(" "+s+": "+f[s]+" ")),d=O[0],ba(h,S(t),d),R=F(t,g,z,Q&&Q.name,{nonTlbTranscludeDirective:H})):(t=Ed(Da(d)).contents(),O.empty(),R=F(t,g,c,c,{needsNewScope:r.$$isolateScope||r.$$newScope}))),r.template)if(M=!0,X("template",G,r,O),G=r,y=A(r.template)?r.template(O,f):r.template,y=ia(y),r.replace){if(Q=r,t=xa(y)?[]:nb(Z(r.templateNamespace,Sd(y))),d=t[0],1!=t.length||d.nodeType!==Zd)throw Le("tplrt","Template for directive '{0}' must have exactly one root element. {1}",s,"");ba(h,O,d);var aa={$attr:{}},ga=J(d,[],aa),ha=a.splice(T+1,a.length-(T+1));(E||B)&&P(ga,E,B),a=a.concat(ga).concat(ha),U(f,aa),W=a.length}else O.html(y);if(r.templateUrl)M=!0,X("template",G,r,O),G=r,r.replace&&(Q=r),q=V(a.splice(T,a.length-T),O,f,h,I&&R,k,l,{controllerDirectives:C,newScopeDirective:B!==r&&B,newIsolateScopeDirective:E,templateDirective:G,nonTlbTranscludeDirective:H}),W=a.length;else if(r.compile)try{u=r.compile(O,f,R),A(u)?n(null,u,Y,_):u&&n(u.pre,u.post,Y,_)}catch(ja){e(ja,$(O))}r.terminal&&(q.terminal=!0,z=Math.max(z,r.priority))}return q.scope=B&&B.scope===!0,q.transcludeOnThisElement=I,q.templateOnThisElement=M,q.transclude=R,m.hasElementTranscludeDirective=N,q}function P(a,b,c){for(var d=0,e=a.length;e>d;d++)a[d]=o(a[d],{$$isolateScope:b,$$newScope:c})}function R(b,c,d,f,g,h,i){if(c===g)return null;var l=null;if(j.hasOwnProperty(c))for(var m,n=a.get(c+k),p=0,q=n.length;q>p;p++)try{m=n[p],(t(f)||f>m.priority)&&-1!=m.restrict.indexOf(d)&&(h&&(m=o(m,{$$start:h,$$end:i})),b.push(m),l=m)}catch(r){e(r)}return l}function T(b){if(j.hasOwnProperty(b))for(var c,d=a.get(b+k),e=0,f=d.length;f>e;e++)if(c=d[e],c.multiElement)return!0;return!1}function U(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;f(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))}),f(b,function(b,f){"class"==f?(E(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function V(a,b,c,d,e,h,i,j){var k,l,m=[],n=b[0],p=a.shift(),q=o(p,{templateUrl:null,transclude:null,replace:null,$$originalDirective:p}),r=A(p.templateUrl)?p.templateUrl(b,c):p.templateUrl,s=p.templateNamespace;return b.empty(),g(r).then(function(g){var o,t,u,w;if(g=ia(g),p.replace){if(u=xa(g)?[]:nb(Z(s,Sd(g))),o=u[0],1!=u.length||o.nodeType!==Zd)throw Le("tplrt","Template for directive '{0}' must have exactly one root element. {1}",p.name,r);t={$attr:{}},ba(d,b,o);var x=J(o,[],t);v(p.scope)&&P(x,!0),a=x.concat(a),U(c,t)}else o=n,b.html(g);for(a.unshift(q),k=O(a,o,c,e,b,p,h,i,j),f(d,function(a,c){a==o&&(d[c]=b[0])}),l=H(b[0].childNodes,e);m.length;){var y=m.shift(),z=m.shift(),A=m.shift(),B=m.shift(),C=b[0];if(!y.$$destroyed){if(z!==n){var D=z.className;j.hasElementTranscludeDirective&&p.replace||(C=Da(o)),ba(A,Ed(z),C),E(Ed(C),D)}w=k.transcludeOnThisElement?I(y,k.transclude,B):B,k(l,y,C,d,w)}}m=null}),function(a,b,c,d,e){var f=e;b.$$destroyed||(m?m.push(b,c,d,f):(k.transcludeOnThisElement&&(f=I(b,k.transclude,e)),k(l,b,c,d,f)))}}function W(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function X(a,b,c,d){function e(a){return a?" (module: "+a+")":""}if(b)throw Le("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",b.name,e(b.$$moduleName),c.name,e(c.$$moduleName),a,$(d))}function Y(a,b){var c=d(b,!0);c&&a.push({priority:0,compile:function(a){var b=a.parent(),d=!!b.length;return d&&F.$$addBindingClass(b),function(a,b){var e=b.parent();d||F.$$addBindingClass(e),F.$$addBindingInfo(e,c.expressions),a.$watch(c,function(a){b[0].nodeValue=a})}}})}function Z(a,c){switch(a=yd(a||"html")){case"svg":case"math":var d=b.createElement("div");return d.innerHTML="<"+a+">"+c+"</"+a+">",d.childNodes[0].childNodes;default:return c}}function _(a,b){if("srcdoc"==b)return u.HTML;var c=M(a);return"xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b)?u.RESOURCE_URL:void 0}function aa(a,b,c,e,f){var g=_(a,e);f=s[e]||f;var h=d(c,!0,g,f);if(h){if("multiple"===e&&"select"===M(a))throw Le("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",$(a));b.push({priority:100,compile:function(){return{pre:function(a,b,i){var j=i.$$observers||(i.$$observers=qa());if(y.test(e))throw Le("nodomevents","Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");var k=i[e];k!==c&&(h=k&&d(k,!0,g,f),c=k),h&&(i[e]=h(a),(j[e]||(j[e]=[])).$$inter=!0,(i.$$observers&&i.$$observers[e].$$scope||a).$watch(h,function(a,b){"class"===e&&a!=b?i.$updateClass(a,b):i.$set(e,a)}))}}}})}}function ba(a,c,d){var e,f,g=c[0],h=c.length,i=g.parentNode;if(a)for(e=0,f=a.length;f>e;e++)if(a[e]==g){a[e++]=d;for(var j=e,k=j+h-1,l=a.length;l>j;j++,k++)l>k?a[j]=a[k]:delete a[j];a.length-=h-1,a.context===g&&(a.context=d);break}i&&i.replaceChild(d,g);var m=b.createDocumentFragment();m.appendChild(g),Ed.hasData(g)&&(Ed.data(d,Ed.data(g)),Fd?(Pd=!0,Fd.cleanData([g])):delete Ed.cache[g[Ed.expando]]);for(var n=1,o=c.length;o>n;n++){var p=c[n];Ed(p).remove(),m.appendChild(p),delete c[n]}c[0]=d,c.length=1}function ca(a,b){return l(function(){return a.apply(null,arguments)},a,b)}function da(a,b,c,d,f,g){try{a(b,c,d,f,g)}catch(h){e(h,$(c))}}function ea(a,b,c,e,g){var i=[];return f(e,function(e,f){var j,k,l,m,n=e.attrName,o=e.optional,q=e.mode;switch(q){case"@":o||zd.call(b,n)||(c[f]=b[n]=void 0),b.$observe(n,function(a){x(a)&&(c[f]=a)}),b.$$observers[n].$$scope=a,x(b[n])&&(c[f]=d(b[n])(a));break;case"=":if(!zd.call(b,n)){if(o)break;b[n]=void 0}if(o&&!b[n])break;k=h(b[n]),m=k.literal?Q:function(a,b){return a===b||a!==a&&b!==b},l=k.assign||function(){throw j=c[f]=k(a),Le("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",b[n],g.name)},j=c[f]=k(a);var r=function(b){return m(b,c[f])||(m(b,j)?l(a,b=c[f]):c[f]=b),j=b};r.$stateful=!0;var s;s=e.collection?a.$watchCollection(b[n],r):a.$watch(h(b[n],r),null,k.literal),i.push(s);break;case"&":if(k=b.hasOwnProperty(n)?h(b[n]):p,k===p&&o)break;c[f]=function(b){return k(a,b)}}}),i.length&&function(){for(var a=0,b=i.length;b>a;++a)i[a]()}}var fa=function(a,b){if(b){var c,d,e,f=Object.keys(b);for(c=0,d=f.length;d>c;c++)e=f[c],this[e]=b[e]}else this.$attr={};this.$$element=a};fa.prototype={$normalize:lb,$addClass:function(a){a&&a.length>0&&B.addClass(this.$$element,a)},$removeClass:function(a){a&&a.length>0&&B.removeClass(this.$$element,a)},$updateClass:function(a,b){var c=mb(a,b);c&&c.length&&B.addClass(this.$$element,c);var d=mb(b,a);d&&d.length&&B.removeClass(this.$$element,d)},$set:function(a,b,c,d){var g,h=this.$$element[0],i=Sa(h,a),j=Ta(a),k=a;if(i?(this.$$element.prop(a,b),d=i):j&&(this[j]=b,k=j),this[a]=b,d?this.$attr[a]=d:(d=this.$attr[a],d||(this.$attr[a]=d=ja(a,"-"))),g=M(this.$$element),"a"===g&&"href"===a||"img"===g&&"src"===a)this[a]=b=C(b,"src"===a);else if("img"===g&&"srcset"===a){for(var l="",m=Sd(b),n=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,o=/\s/.test(m)?n:/(,)/,p=m.split(o),q=Math.floor(p.length/2),r=0;q>r;r++){var s=2*r;l+=C(Sd(p[s]),!0),l+=" "+Sd(p[s+1])}var u=Sd(p[2*r]).split(/\s/);l+=C(Sd(u[0]),!0),2===u.length&&(l+=" "+Sd(u[1])),this[a]=b=l}c!==!1&&(null===b||t(b)?this.$$element.removeAttr(d):this.$$element.attr(d,b));var v=this.$$observers;v&&f(v[k],function(a){try{a(b)}catch(c){e(c)}})},$observe:function(a,b){var c=this,d=c.$$observers||(c.$$observers=qa()),e=d[a]||(d[a]=[]);return e.push(b),r.$evalAsync(function(){e.$$inter||!c.hasOwnProperty(a)||t(c[a])||b(c[a])}),function(){N(e,b)}}};var ga=d.startSymbol(),ha=d.endSymbol(),ia="{{"==ga||"}}"==ha?q:function(a){return a.replace(/\{\{/g,ga).replace(/}}/g,ha)},ka=/^ngAttr[A-Z]/,ma=/^(.+)Start$/;return F.$$addBindingInfo=z?function(a,b){var c=a.data("$binding")||[];Qd(b)?c=c.concat(b):c.push(b),a.data("$binding",c)}:p,F.$$addBindingClass=z?function(a){E(a,"ng-binding")}:p,F.$$addScopeInfo=z?function(a,b,c,d){var e=c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope";a.data(e,b)}:p,F.$$addScopeClass=z?function(a,b){E(a,b?"ng-isolate-scope":"ng-scope")}:p,F}]}function lb(a){return wa(a.replace(Me,""))}function mb(a,b){var c="",d=a.split(/\s+/),e=b.split(/\s+/);a:for(var f=0;f<d.length;f++){for(var g=d[f],h=0;h<e.length;h++)if(g==e[h])continue a;c+=(c.length>0?" ":"")+g}return c}function nb(a){a=Ed(a);var b=a.length;if(1>=b)return a;for(;b--;){var c=a[b];c.nodeType===ae&&Id.call(a,b,1)}return a}function ob(a,b){if(b&&x(b))return b;if(x(a)){var c=Oe.exec(a);if(c)return c[3]}}function pb(){var a={},b=!1;this.register=function(b,c){na(b,"controller"),v(b)?l(a,b):a[b]=c},this.allowGlobals=function(){b=!0},this.$get=["$injector","$window",function(e,f){function g(a,b,c,e){if(!a||!v(a.$scope))throw d("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",e,b);a.$scope[b]=c}return function(d,h,i,j){var k,m,n,o;if(i=i===!0,j&&x(j)&&(o=j),x(d)){if(m=d.match(Oe),!m)throw Ne("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",d);n=m[1],o=o||m[3],d=a.hasOwnProperty(n)?a[n]:oa(h.$scope,n,!0)||(b?oa(f,n,!0):c),ma(d,n,!0)}if(i){var p=(Qd(d)?d[d.length-1]:d).prototype;k=Object.create(p||null),o&&g(h,o,k,n||d.name);var q;return q=l(function(){var a=e.invoke(d,k,h,n);return a!==k&&(v(a)||A(a))&&(k=a,o&&g(h,o,k,n||d.name)),k},{instance:k,identifier:o})}return k=e.instantiate(d,h,n),o&&g(h,o,k,n||d.name),
+k}}]}function qb(){this.$get=["$window",function(a){return Ed(a.document)}]}function rb(){this.$get=["$log",function(a){return function(b,c){a.error.apply(a,arguments)}}]}function sb(a){return v(a)?z(a)?a.toISOString():V(a):a}function tb(){this.$get=function(){return function(a){if(!a)return"";var b=[];return g(a,function(a,c){null===a||t(a)||(Qd(a)?f(a,function(a,d){b.push(da(c)+"="+da(sb(a)))}):b.push(da(c)+"="+da(sb(a))))}),b.join("&")}}}function ub(){this.$get=function(){return function(a){function b(a,d,e){null===a||t(a)||(Qd(a)?f(a,function(a,c){b(a,d+"["+(v(a)?c:"")+"]")}):v(a)&&!z(a)?g(a,function(a,c){b(a,d+(e?"":"[")+c+(e?"":"]"))}):c.push(da(d)+"="+da(sb(a))))}if(!a)return"";var c=[];return b(a,"",!0),c.join("&")}}}function vb(a,b){if(x(a)){var c=a.replace(Ue,"").trim();if(c){var d=b("Content-Type");(d&&0===d.indexOf(Qe)||wb(c))&&(a=W(c))}}return a}function wb(a){var b=a.match(Se);return b&&Te[b[0]].test(a)}function xb(a){function b(a,b){a&&(d[a]=d[a]?d[a]+", "+b:b)}var c,d=qa();return x(a)?f(a.split("\n"),function(a){c=a.indexOf(":"),b(yd(Sd(a.substr(0,c))),Sd(a.substr(c+1)))}):v(a)&&f(a,function(a,c){b(yd(c),Sd(a))}),d}function yb(a){var b;return function(c){if(b||(b=xb(a)),c){var d=b[yd(c)];return void 0===d&&(d=null),d}return b}}function zb(a,b,c,d){return A(d)?d(a,b,c):(f(d,function(d){a=d(a,b,c)}),a)}function Ab(a){return a>=200&&300>a}function Bb(){var a=this.defaults={transformResponse:[vb],transformRequest:[function(a){return!v(a)||E(a)||G(a)||F(a)?a:V(a)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:P(Re),put:P(Re),patch:P(Re)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},b=!1;this.useApplyAsync=function(a){return u(a)?(b=!!a,this):b};var e=!0;this.useLegacyPromiseExtensions=function(a){return u(a)?(e=!!a,this):e};var g=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(h,i,j,k,m,n){function o(b){function g(a){var b=l({},a);return b.data=zb(a.data,a.headers,a.status,j.transformResponse),Ab(a.status)?b:m.reject(b)}function h(a,b){var c,d={};return f(a,function(a,e){A(a)?(c=a(b),null!=c&&(d[e]=c)):d[e]=a}),d}function i(b){var c,d,e,f=a.headers,g=l({},b.headers);f=l({},f.common,f[yd(b.method)]);a:for(c in f){d=yd(c);for(e in g)if(yd(e)===d)continue a;g[c]=f[c]}return h(g,P(b))}if(!Nd.isObject(b))throw d("$http")("badreq","Http request configuration must be an object.  Received: {0}",b);if(!x(b.url))throw d("$http")("badreq","Http request configuration url must be a string.  Received: {0}",b.url);var j=l({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer},b);j.headers=i(b),j.method=Ad(j.method),j.paramSerializer=x(j.paramSerializer)?n.get(j.paramSerializer):j.paramSerializer;var k=function(b){var d=b.headers,e=zb(b.data,yb(d),c,b.transformRequest);return t(e)&&f(d,function(a,b){"content-type"===yd(b)&&delete d[b]}),t(b.withCredentials)&&!t(a.withCredentials)&&(b.withCredentials=a.withCredentials),r(b,e).then(g,g)},o=[k,c],p=m.when(j);for(f(y,function(a){(a.request||a.requestError)&&o.unshift(a.request,a.requestError),(a.response||a.responseError)&&o.push(a.response,a.responseError)});o.length;){var q=o.shift(),s=o.shift();p=p.then(q,s)}return e?(p.success=function(a){return ma(a,"fn"),p.then(function(b){a(b.data,b.status,b.headers,j)}),p},p.error=function(a){return ma(a,"fn"),p.then(null,function(b){a(b.data,b.status,b.headers,j)}),p}):(p.success=We("success"),p.error=We("error")),p}function p(a){f(arguments,function(a){o[a]=function(b,c){return o(l({},c||{},{method:a,url:b}))}})}function q(a){f(arguments,function(a){o[a]=function(b,c,d){return o(l({},d||{},{method:a,url:b,data:c}))}})}function r(d,e){function f(a,c,d,e){function f(){g(c,a,d,e)}n&&(Ab(a)?n.put(y,[a,c,xb(d),e]):n.remove(y)),b?k.$applyAsync(f):(f(),k.$$phase||k.$apply())}function g(a,b,c,e){b=b>=-1?b:0,(Ab(b)?q.resolve:q.reject)({data:a,status:b,headers:yb(c),config:d,statusText:e})}function j(a){g(a.data,a.status,P(a.headers()),a.statusText)}function l(){var a=o.pendingRequests.indexOf(d);-1!==a&&o.pendingRequests.splice(a,1)}var n,p,q=m.defer(),r=q.promise,x=d.headers,y=s(d.url,d.paramSerializer(d.params));if(o.pendingRequests.push(d),r.then(l,l),!d.cache&&!a.cache||d.cache===!1||"GET"!==d.method&&"JSONP"!==d.method||(n=v(d.cache)?d.cache:v(a.cache)?a.cache:w),n&&(p=n.get(y),u(p)?I(p)?p.then(j,j):Qd(p)?g(p[1],p[0],P(p[2]),p[3]):g(p,200,{},"OK"):n.put(y,r)),t(p)){var z=Cc(d.url)?i()[d.xsrfCookieName||a.xsrfCookieName]:c;z&&(x[d.xsrfHeaderName||a.xsrfHeaderName]=z),h(d.method,y,e,f,x,d.timeout,d.withCredentials,d.responseType)}return r}function s(a,b){return b.length>0&&(a+=(-1==a.indexOf("?")?"?":"&")+b),a}var w=j("$http");a.paramSerializer=x(a.paramSerializer)?n.get(a.paramSerializer):a.paramSerializer;var y=[];return f(g,function(a){y.unshift(x(a)?n.get(a):n.invoke(a))}),o.pendingRequests=[],p("get","delete","head","jsonp"),q("post","put","patch"),o.defaults=a,o}]}function Cb(){this.$get=function(){return function(){return new a.XMLHttpRequest}}}function Db(){this.$get=["$browser","$window","$document","$xhrFactory",function(a,b,c,d){return Eb(a,d,a.defer,b.angular.callbacks,c[0])}]}function Eb(a,b,c,d,e){function g(a,b,c){var f=e.createElement("script"),g=null;return f.type="text/javascript",f.src=a,f.async=!0,g=function(a){he(f,"load",g),he(f,"error",g),e.body.removeChild(f),f=null;var h=-1,i="unknown";a&&("load"!==a.type||d[b].called||(a={type:"error"}),i=a.type,h="error"===a.type?404:200),c&&c(h,i)},ge(f,"load",g),ge(f,"error",g),e.body.appendChild(f),g}return function(e,h,i,j,k,l,m,n){function o(){s&&s(),v&&v.abort()}function q(b,d,e,f,g){u(y)&&c.cancel(y),s=v=null,b(d,e,f,g),a.$$completeOutstandingRequest(p)}if(a.$$incOutstandingRequestCount(),h=h||a.url(),"jsonp"==yd(e)){var r="_"+(d.counter++).toString(36);d[r]=function(a){d[r].data=a,d[r].called=!0};var s=g(h.replace("JSON_CALLBACK","angular.callbacks."+r),r,function(a,b){q(j,a,d[r].data,"",b),d[r]=p})}else{var v=b(e,h);v.open(e,h,!0),f(k,function(a,b){u(a)&&v.setRequestHeader(b,a)}),v.onload=function(){var a=v.statusText||"",b="response"in v?v.response:v.responseText,c=1223===v.status?204:v.status;0===c&&(c=b?200:"file"==Bc(h).protocol?404:0),q(j,c,b,v.getAllResponseHeaders(),a)};var w=function(){q(j,-1,null,null,"")};if(v.onerror=w,v.onabort=w,m&&(v.withCredentials=!0),n)try{v.responseType=n}catch(x){if("json"!==n)throw x}v.send(t(i)?null:i)}if(l>0)var y=c(o,l);else I(l)&&l.then(o)}}function Fb(){var a="{{",b="}}";this.startSymbol=function(b){return b?(a=b,this):a},this.endSymbol=function(a){return a?(b=a,this):b},this.$get=["$parse","$exceptionHandler","$sce",function(c,d,e){function f(a){return"\\\\\\"+a}function g(c){return c.replace(m,a).replace(n,b)}function h(a){if(null==a)return"";switch(typeof a){case"string":break;case"number":a=""+a;break;default:a=V(a)}return a}function i(f,i,m,n){function o(a){try{return a=C(a),n&&!u(a)?a:h(a)}catch(b){d(Xe.interr(f,b))}}n=!!n;for(var p,q,r,s=0,v=[],w=[],x=f.length,y=[],z=[];x>s;){if(-1==(p=f.indexOf(a,s))||-1==(q=f.indexOf(b,p+j))){s!==x&&y.push(g(f.substring(s)));break}s!==p&&y.push(g(f.substring(s,p))),r=f.substring(p+j,q),v.push(r),w.push(c(r,o)),s=q+k,z.push(y.length),y.push("")}if(m&&y.length>1&&Xe.throwNoconcat(f),!i||v.length){var B=function(a){for(var b=0,c=v.length;c>b;b++){if(n&&t(a[b]))return;y[z[b]]=a[b]}return y.join("")},C=function(a){return m?e.getTrusted(m,a):e.valueOf(a)};return l(function(a){var b=0,c=v.length,e=new Array(c);try{for(;c>b;b++)e[b]=w[b](a);return B(e)}catch(g){d(Xe.interr(f,g))}},{exp:f,expressions:v,$$watchDelegate:function(a,b){var c;return a.$watchGroup(w,function(d,e){var f=B(d);A(b)&&b.call(this,f,d!==e?c:f,a),c=f})}})}}var j=a.length,k=b.length,m=new RegExp(a.replace(/./g,f),"g"),n=new RegExp(b.replace(/./g,f),"g");return i.startSymbol=function(){return a},i.endSymbol=function(){return b},i}]}function Gb(){this.$get=["$rootScope","$window","$q","$$q",function(a,b,c,d){function e(e,g,h,i){var j=arguments.length>4,k=j?S(arguments,4):[],l=b.setInterval,m=b.clearInterval,n=0,o=u(i)&&!i,p=(o?d:c).defer(),q=p.promise;return h=u(h)?h:0,q.then(null,null,j?function(){e.apply(null,k)}:e),q.$$intervalId=l(function(){p.notify(n++),h>0&&n>=h&&(p.resolve(n),m(q.$$intervalId),delete f[q.$$intervalId]),o||a.$apply()},g),f[q.$$intervalId]=p,q}var f={};return e.cancel=function(a){return a&&a.$$intervalId in f?(f[a.$$intervalId].reject("canceled"),b.clearInterval(a.$$intervalId),delete f[a.$$intervalId],!0):!1},e}]}function Hb(a){for(var b=a.split("/"),c=b.length;c--;)b[c]=ca(b[c]);return b.join("/")}function Ib(a,b){var c=Bc(a);b.$$protocol=c.protocol,b.$$host=c.hostname,b.$$port=n(c.port)||Ze[c.protocol]||null}function Jb(a,b){var c="/"!==a.charAt(0);c&&(a="/"+a);var d=Bc(a);b.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname),b.$$search=aa(d.search),b.$$hash=decodeURIComponent(d.hash),b.$$path&&"/"!=b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function Kb(a,b){return 0===b.indexOf(a)?b.substr(a.length):void 0}function Lb(a){var b=a.indexOf("#");return-1==b?a:a.substr(0,b)}function Mb(a){return a.replace(/(#.+)|#$/,"$1")}function Nb(a){return a.substr(0,Lb(a).lastIndexOf("/")+1)}function Ob(a){return a.substring(0,a.indexOf("/",a.indexOf("//")+2))}function Pb(a,b,c){this.$$html5=!0,c=c||"",Ib(a,this),this.$$parse=function(a){var c=Kb(b,a);if(!x(c))throw $e("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',a,b);Jb(c,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var a=ba(this.$$search),c=this.$$hash?"#"+ca(this.$$hash):"";this.$$url=Hb(this.$$path)+(a?"?"+a:"")+c,this.$$absUrl=b+this.$$url.substr(1)},this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g,h;return u(f=Kb(a,d))?(g=f,h=u(f=Kb(c,f))?b+(Kb("/",f)||f):a+g):u(f=Kb(b,d))?h=b+f:b==d+"/"&&(h=b),h&&this.$$parse(h),!!h}}function Qb(a,b,c){Ib(a,this),this.$$parse=function(d){function e(a,b,c){var d,e=/^\/[A-Z]:(\/.*)/;return 0===b.indexOf(c)&&(b=b.replace(c,"")),e.exec(b)?a:(d=e.exec(a),d?d[1]:a)}var f,g=Kb(a,d)||Kb(b,d);t(g)||"#"!==g.charAt(0)?this.$$html5?f=g:(f="",t(g)&&(a=d,this.replace())):(f=Kb(c,g),t(f)&&(f=g)),Jb(f,this),this.$$path=e(this.$$path,f,a),this.$$compose()},this.$$compose=function(){var b=ba(this.$$search),d=this.$$hash?"#"+ca(this.$$hash):"";this.$$url=Hb(this.$$path)+(b?"?"+b:"")+d,this.$$absUrl=a+(this.$$url?c+this.$$url:"")},this.$$parseLinkUrl=function(b,c){return Lb(a)==Lb(b)?(this.$$parse(b),!0):!1}}function Rb(a,b,c){this.$$html5=!0,Qb.apply(this,arguments),this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;return a==Lb(d)?f=d:(g=Kb(b,d))?f=a+c+g:b===d+"/"&&(f=b),f&&this.$$parse(f),!!f},this.$$compose=function(){var b=ba(this.$$search),d=this.$$hash?"#"+ca(this.$$hash):"";this.$$url=Hb(this.$$path)+(b?"?"+b:"")+d,this.$$absUrl=a+c+this.$$url}}function Sb(a){return function(){return this[a]}}function Tb(a,b){return function(c){return t(c)?this[a]:(this[a]=b(c),this.$$compose(),this)}}function Ub(){var a="",b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return u(b)?(a=b,this):a},this.html5Mode=function(a){return H(a)?(b.enabled=a,this):v(a)?(H(a.enabled)&&(b.enabled=a.enabled),H(a.requireBase)&&(b.requireBase=a.requireBase),H(a.rewriteLinks)&&(b.rewriteLinks=a.rewriteLinks),this):b},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c,d,e,f,g){function h(a,b,c){var e=j.url(),f=j.$$state;try{d.url(a,b,c),j.$$state=d.state()}catch(g){throw j.url(e),j.$$state=f,g}}function i(a,b){c.$broadcast("$locationChangeSuccess",j.absUrl(),a,j.$$state,b)}var j,k,l,m=d.baseHref(),n=d.url();if(b.enabled){if(!m&&b.requireBase)throw $e("nobase","$location in HTML5 mode requires a <base> tag to be present!");l=Ob(n)+(m||"/"),k=e.history?Pb:Rb}else l=Lb(n),k=Qb;var o=Nb(l);j=new k(l,o,"#"+a),j.$$parseLinkUrl(n,n),j.$$state=d.state();var p=/^\s*(javascript|mailto):/i;f.on("click",function(a){if(b.rewriteLinks&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!=a.which&&2!=a.button){for(var e=Ed(a.target);"a"!==M(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"),i=e.attr("href")||e.attr("xlink:href");v(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=Bc(h.animVal).href),p.test(h)||!h||e.attr("target")||a.isDefaultPrevented()||j.$$parseLinkUrl(h,i)&&(a.preventDefault(),j.absUrl()!=d.url()&&(c.$apply(),g.angular["ff-684208-preventDefault"]=!0))}}),Mb(j.absUrl())!=Mb(n)&&d.url(j.absUrl(),!0);var q=!0;return d.onUrlChange(function(a,b){return t(Kb(o,a))?void(g.location.href=a):(c.$evalAsync(function(){var d,e=j.absUrl(),f=j.$$state;a=Mb(a),j.$$parse(a),j.$$state=b,d=c.$broadcast("$locationChangeStart",a,e,b,f).defaultPrevented,j.absUrl()===a&&(d?(j.$$parse(e),j.$$state=f,h(e,!1,f)):(q=!1,i(e,f)))}),void(c.$$phase||c.$digest()))}),c.$watch(function(){var a=Mb(d.url()),b=Mb(j.absUrl()),f=d.state(),g=j.$$replace,k=a!==b||j.$$html5&&e.history&&f!==j.$$state;(q||k)&&(q=!1,c.$evalAsync(function(){var b=j.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,j.$$state,f).defaultPrevented;j.absUrl()===b&&(d?(j.$$parse(a),j.$$state=f):(k&&h(b,g,f===j.$$state?null:j.$$state),i(a,f)))})),j.$$replace=!1}),j}]}function Vb(){var a=!0,b=this;this.debugEnabled=function(b){return u(b)?(a=b,this):a},this.$get=["$window",function(c){function d(a){return a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line)),a}function e(a){var b=c.console||{},e=b[a]||b.log||p,g=!1;try{g=!!e.apply}catch(h){}return g?function(){var a=[];return f(arguments,function(b){a.push(d(b))}),e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,arguments)}}()}}]}function Wb(a,b){if("__defineGetter__"===a||"__defineSetter__"===a||"__lookupGetter__"===a||"__lookupSetter__"===a||"__proto__"===a)throw af("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",b);return a}function Xb(a,b){if(a+="",!x(a))throw af("iseccst","Cannot convert object to primitive value! Expression: {0}",b);return a}function Yb(a,b){if(a){if(a.constructor===a)throw af("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",b);if(a.window===a)throw af("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",b);if(a.children&&(a.nodeName||a.prop&&a.attr&&a.find))throw af("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",b);if(a===Object)throw af("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",b)}return a}function Zb(a,b){if(a){if(a.constructor===a)throw af("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",b);if(a===bf||a===cf||a===df)throw af("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",b)}}function $b(a,b){if(a&&(a===0..constructor||a===(!1).constructor||a==="".constructor||a==={}.constructor||a===[].constructor||a===Function.constructor))throw af("isecaf","Assigning to a constructor is disallowed! Expression: {0}",b)}function _b(a,b){return"undefined"!=typeof a?a:b}function ac(a,b){return"undefined"==typeof a?b:"undefined"==typeof b?a:a+b}function bc(a,b){var c=a(b);return!c.$stateful}function cc(a,b){var c,d;switch(a.type){case hf.Program:c=!0,f(a.body,function(a){cc(a.expression,b),c=c&&a.expression.constant}),a.constant=c;break;case hf.Literal:a.constant=!0,a.toWatch=[];break;case hf.UnaryExpression:cc(a.argument,b),a.constant=a.argument.constant,a.toWatch=a.argument.toWatch;break;case hf.BinaryExpression:cc(a.left,b),cc(a.right,b),a.constant=a.left.constant&&a.right.constant,a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case hf.LogicalExpression:cc(a.left,b),cc(a.right,b),a.constant=a.left.constant&&a.right.constant,a.toWatch=a.constant?[]:[a];break;case hf.ConditionalExpression:cc(a.test,b),cc(a.alternate,b),cc(a.consequent,b),a.constant=a.test.constant&&a.alternate.constant&&a.consequent.constant,a.toWatch=a.constant?[]:[a];break;case hf.Identifier:a.constant=!1,a.toWatch=[a];break;case hf.MemberExpression:cc(a.object,b),a.computed&&cc(a.property,b),a.constant=a.object.constant&&(!a.computed||a.property.constant),a.toWatch=[a];break;case hf.CallExpression:c=a.filter?bc(b,a.callee.name):!1,d=[],f(a.arguments,function(a){cc(a,b),c=c&&a.constant,a.constant||d.push.apply(d,a.toWatch)}),a.constant=c,a.toWatch=a.filter&&bc(b,a.callee.name)?d:[a];break;case hf.AssignmentExpression:cc(a.left,b),cc(a.right,b),a.constant=a.left.constant&&a.right.constant,a.toWatch=[a];break;case hf.ArrayExpression:c=!0,d=[],f(a.elements,function(a){cc(a,b),c=c&&a.constant,a.constant||d.push.apply(d,a.toWatch)}),a.constant=c,a.toWatch=d;break;case hf.ObjectExpression:c=!0,d=[],f(a.properties,function(a){cc(a.value,b),c=c&&a.value.constant,a.value.constant||d.push.apply(d,a.value.toWatch)}),a.constant=c,a.toWatch=d;break;case hf.ThisExpression:a.constant=!1,a.toWatch=[]}}function dc(a){if(1==a.length){var b=a[0].expression,d=b.toWatch;return 1!==d.length?d:d[0]!==b?d:c}}function ec(a){return a.type===hf.Identifier||a.type===hf.MemberExpression}function fc(a){return 1===a.body.length&&ec(a.body[0].expression)?{type:hf.AssignmentExpression,left:a.body[0].expression,right:{type:hf.NGValueParameter},operator:"="}:void 0}function gc(a){return 0===a.body.length||1===a.body.length&&(a.body[0].expression.type===hf.Literal||a.body[0].expression.type===hf.ArrayExpression||a.body[0].expression.type===hf.ObjectExpression)}function hc(a){return a.constant}function ic(a,b){this.astBuilder=a,this.$filter=b}function jc(a,b){this.astBuilder=a,this.$filter=b}function kc(a){return"constructor"==a}function lc(a){return A(a.valueOf)?a.valueOf():kf.call(a)}function mc(){var a=qa(),b=qa();this.$get=["$filter",function(d){function e(a,b){return null==a||null==b?a===b:"object"==typeof a&&(a=lc(a),"object"==typeof a)?!1:a===b||a!==a&&b!==b}function g(a,b,d,f,g){var h,i=f.inputs;if(1===i.length){var j=e;return i=i[0],a.$watch(function(a){var b=i(a);return e(b,j)||(h=f(a,c,c,[b]),j=b&&lc(b)),h},b,d,g)}for(var k=[],l=[],m=0,n=i.length;n>m;m++)k[m]=e,l[m]=null;return a.$watch(function(a){for(var b=!1,d=0,g=i.length;g>d;d++){var j=i[d](a);(b||(b=!e(j,k[d])))&&(l[d]=j,k[d]=j&&lc(j))}return b&&(h=f(a,c,c,l)),h},b,d,g)}function h(a,b,c,d){var e,f;return e=a.$watch(function(a){return d(a)},function(a,c,d){f=a,A(b)&&b.apply(this,arguments),u(a)&&d.$$postDigest(function(){u(f)&&e()})},c)}function i(a,b,c,d){function e(a){var b=!0;return f(a,function(a){u(a)||(b=!1)}),b}var g,h;return g=a.$watch(function(a){return d(a)},function(a,c,d){h=a,A(b)&&b.call(this,a,c,d),e(a)&&d.$$postDigest(function(){e(h)&&g()})},c)}function j(a,b,c,d){var e;return e=a.$watch(function(a){return d(a)},function(a,c,d){A(b)&&b.apply(this,arguments),e()},c)}function k(a,b){if(!b)return a;var c=a.$$watchDelegate,d=!1,e=c!==i&&c!==h,f=e?function(c,e,f,g){var h=d&&g?g[0]:a(c,e,f,g);return b(h,c,e)}:function(c,d,e,f){var g=a(c,d,e,f),h=b(g,c,d);return u(g)?h:g};return a.$$watchDelegate&&a.$$watchDelegate!==g?f.$$watchDelegate=a.$$watchDelegate:b.$stateful||(f.$$watchDelegate=g,d=!a.inputs,f.inputs=a.inputs?a.inputs:[a]),f}var l=Ud().noUnsafeEval,m={csp:l,expensiveChecks:!1},n={csp:l,expensiveChecks:!0};return function(c,e,f){var l,o,q;switch(typeof c){case"string":c=c.trim(),q=c;var r=f?b:a;if(l=r[q],!l){":"===c.charAt(0)&&":"===c.charAt(1)&&(o=!0,c=c.substring(2));var s=f?n:m,t=new gf(s),u=new jf(t,d,s);l=u.parse(c),l.constant?l.$$watchDelegate=j:o?l.$$watchDelegate=l.literal?i:h:l.inputs&&(l.$$watchDelegate=g),r[q]=l}return k(l,e);case"function":return k(c,e);default:return k(p,e)}}}]}function nc(){this.$get=["$rootScope","$exceptionHandler",function(a,b){return pc(function(b){a.$evalAsync(b)},b)}]}function oc(){this.$get=["$browser","$exceptionHandler",function(a,b){return pc(function(b){a.defer(b)},b)}]}function pc(a,b){function e(a,b,c){function d(b){return function(c){e||(e=!0,b.call(a,c))}}var e=!1;return[d(b),d(c)]}function g(){this.$$state={status:0}}function h(a,b){return function(c){b.call(a,c)}}function i(a){var d,e,f;f=a.pending,a.processScheduled=!1,a.pending=c;for(var g=0,h=f.length;h>g;++g){e=f[g][0],d=f[g][a.status];try{A(d)?e.resolve(d(a.value)):1===a.status?e.resolve(a.value):e.reject(a.value)}catch(i){e.reject(i),b(i)}}}function j(b){!b.processScheduled&&b.pending&&(b.processScheduled=!0,a(function(){i(b)}))}function k(){this.promise=new g,this.resolve=h(this,this.resolve),this.reject=h(this,this.reject),this.notify=h(this,this.notify)}function m(a){var b=new k,c=0,d=Qd(a)?[]:{};return f(a,function(a,e){c++,s(a).then(function(a){d.hasOwnProperty(e)||(d[e]=a,--c||b.resolve(d))},function(a){d.hasOwnProperty(e)||b.reject(a)})}),0===c&&b.resolve(d),b.promise}var n=d("$q",TypeError),o=function(){return new k};l(g.prototype,{then:function(a,b,c){if(t(a)&&t(b)&&t(c))return this;var d=new k;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([d,a,b,c]),this.$$state.status>0&&j(this.$$state),d.promise},"catch":function(a){return this.then(null,a)},"finally":function(a,b){return this.then(function(b){return r(b,!0,a)},function(b){return r(b,!1,a)},b)}}),l(k.prototype,{resolve:function(a){this.promise.$$state.status||(a===this.promise?this.$$reject(n("qcycle","Expected promise to be resolved with value other than itself '{0}'",a)):this.$$resolve(a))},$$resolve:function(a){var c,d;d=e(this,this.$$resolve,this.$$reject);try{(v(a)||A(a))&&(c=a&&a.then),A(c)?(this.promise.$$state.status=-1,c.call(a,d[0],d[1],this.notify)):(this.promise.$$state.value=a,this.promise.$$state.status=1,j(this.promise.$$state))}catch(f){d[1](f),b(f)}},reject:function(a){this.promise.$$state.status||this.$$reject(a)},$$reject:function(a){this.promise.$$state.value=a,this.promise.$$state.status=2,j(this.promise.$$state)},notify:function(c){var d=this.promise.$$state.pending;this.promise.$$state.status<=0&&d&&d.length&&a(function(){for(var a,e,f=0,g=d.length;g>f;f++){e=d[f][0],a=d[f][3];try{e.notify(A(a)?a(c):c)}catch(h){b(h)}}})}});var p=function(a){var b=new k;return b.reject(a),b.promise},q=function(a,b){var c=new k;return b?c.resolve(a):c.reject(a),c.promise},r=function(a,b,c){var d=null;try{A(c)&&(d=c())}catch(e){return q(e,!1)}return I(d)?d.then(function(){return q(a,b)},function(a){return q(a,!1)}):q(a,b)},s=function(a,b,c,d){var e=new k;return e.resolve(a),e.promise.then(b,c,d)},u=s,w=function x(a){function b(a){d.resolve(a)}function c(a){d.reject(a)}if(!A(a))throw n("norslvr","Expected resolverFn, got '{0}'",a);if(!(this instanceof x))return new x(a);var d=new k;return a(b,c),d.promise};return w.defer=o,w.reject=p,w.when=s,w.resolve=u,w.all=m,w}function qc(){this.$get=["$window","$timeout",function(a,b){var c=a.requestAnimationFrame||a.webkitRequestAnimationFrame,d=a.cancelAnimationFrame||a.webkitCancelAnimationFrame||a.webkitCancelRequestAnimationFrame,e=!!c,f=e?function(a){var b=c(a);return function(){d(b)}}:function(a){var c=b(a,16.66,!1);return function(){b.cancel(c)}};return f.supported=e,f}]}function rc(){function a(a){function b(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=i(),this.$$ChildScope=null}return b.prototype=a,b}var b=10,c=d("$rootScope"),g=null,h=null;this.digestTtl=function(a){return arguments.length&&(b=a),b},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(d,j,k,l){function m(a){a.currentScope.$$destroyed=!0}function n(a){9===Dd&&(a.$$childHead&&n(a.$$childHead),a.$$nextSibling&&n(a.$$nextSibling)),a.$parent=a.$$nextSibling=a.$$prevSibling=a.$$childHead=a.$$childTail=a.$root=a.$$watchers=null}function o(){this.$id=i(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function q(a){if(z.$$phase)throw c("inprog","{0} already in progress",z.$$phase);z.$$phase=a}function r(){z.$$phase=null}function s(a,b){do a.$$watchersCount+=b;while(a=a.$parent)}function u(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function w(){}function x(){for(;D.length;)try{D.shift()()}catch(a){j(a)}h=null}function y(){null===h&&(h=l.defer(function(){z.$apply(x)}))}o.prototype={constructor:o,$new:function(b,c){var d;return c=c||this,b?(d=new o,d.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=a(this)),d=new this.$$ChildScope),d.$parent=c,d.$$prevSibling=c.$$childTail,c.$$childHead?(c.$$childTail.$$nextSibling=d,c.$$childTail=d):c.$$childHead=c.$$childTail=d,(b||c!=this)&&d.$on("$destroy",m),d},$watch:function(a,b,c,d){var e=k(a);if(e.$$watchDelegate)return e.$$watchDelegate(this,b,c,e,a);var f=this,h=f.$$watchers,i={fn:b,last:w,get:e,exp:d||a,eq:!!c};return g=null,A(b)||(i.fn=p),h||(h=f.$$watchers=[]),h.unshift(i),s(this,1),function(){N(h,i)>=0&&s(f,-1),g=null}},$watchGroup:function(a,b){function c(){i=!1,j?(j=!1,b(e,e,h)):b(e,d,h)}var d=new Array(a.length),e=new Array(a.length),g=[],h=this,i=!1,j=!0;if(!a.length){var k=!0;return h.$evalAsync(function(){k&&b(e,e,h)}),function(){k=!1}}return 1===a.length?this.$watch(a[0],function(a,c,f){e[0]=a,d[0]=c,b(e,a===c?e:d,f)}):(f(a,function(a,b){var f=h.$watch(a,function(a,f){e[b]=a,d[b]=f,i||(i=!0,h.$evalAsync(c))});g.push(f)}),function(){for(;g.length;)g.shift()()})},$watchCollection:function(a,b){function c(a){f=a;var b,c,d,h,i;if(!t(f)){if(v(f))if(e(f)){g!==n&&(g=n,q=g.length=0,l++),b=f.length,q!==b&&(l++,g.length=q=b);for(var j=0;b>j;j++)i=g[j],h=f[j],d=i!==i&&h!==h,d||i===h||(l++,g[j]=h)}else{g!==o&&(g=o={},q=0,l++),b=0;for(c in f)zd.call(f,c)&&(b++,h=f[c],i=g[c],c in g?(d=i!==i&&h!==h,d||i===h||(l++,g[c]=h)):(q++,g[c]=h,l++));if(q>b){l++;for(c in g)zd.call(f,c)||(q--,delete g[c])}}else g!==f&&(g=f,l++);return l}}function d(){if(p?(p=!1,b(f,f,i)):b(f,h,i),j)if(v(f))if(e(f)){h=new Array(f.length);for(var a=0;a<f.length;a++)h[a]=f[a]}else{h={};for(var c in f)zd.call(f,c)&&(h[c]=f[c])}else h=f}c.$stateful=!0;var f,g,h,i=this,j=b.length>1,l=0,m=k(a,c),n=[],o={},p=!0,q=0;return this.$watch(m,d)},$digest:function(){var a,d,e,f,i,k,m,n,o,p,s=b,t=this,u=[];q("$digest"),l.$$checkUrlChange(),this===z&&null!==h&&(l.defer.cancel(h),x()),g=null;do{for(k=!1,n=t;B.length;){try{p=B.shift(),p.scope.$eval(p.expression,p.locals)}catch(v){j(v)}g=null}a:do{if(f=n.$$watchers)for(i=f.length;i--;)try{if(a=f[i])if((d=a.get(n))===(e=a.last)||(a.eq?Q(d,e):"number"==typeof d&&"number"==typeof e&&isNaN(d)&&isNaN(e))){if(a===g){k=!1;break a}}else k=!0,g=a,a.last=a.eq?O(d,null):d,a.fn(d,e===w?d:e,n),5>s&&(o=4-s,u[o]||(u[o]=[]),u[o].push({msg:A(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:d,oldVal:e}))}catch(v){j(v)}if(!(m=n.$$watchersCount&&n.$$childHead||n!==t&&n.$$nextSibling))for(;n!==t&&!(m=n.$$nextSibling);)n=n.$parent}while(n=m);if((k||B.length)&&!s--)throw r(),c("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",b,u)}while(k||B.length);for(r();C.length;)try{C.shift()()}catch(v){j(v)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===z&&l.$$applicationDestroyed(),s(this,-this.$$watchersCount);for(var b in this.$$listenerCount)u(this,this.$$listenerCount[b],b);a&&a.$$childHead==this&&(a.$$childHead=this.$$nextSibling),a&&a.$$childTail==this&&(a.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=p,this.$on=this.$watch=this.$watchGroup=function(){return p},this.$$listeners={},this.$$nextSibling=null,n(this)}},$eval:function(a,b){return k(a)(this,b)},$evalAsync:function(a,b){z.$$phase||B.length||l.defer(function(){B.length&&z.$digest()}),B.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){C.push(a)},$apply:function(a){try{q("$apply");try{return this.$eval(a)}finally{r()}}catch(b){j(b)}finally{try{z.$digest()}catch(b){throw j(b),b}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&D.push(b),y()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]),c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,u(e,1,a))}},$emit:function(a,b){var c,d,e,f=[],g=this,h=!1,i={name:a,targetScope:g,stopPropagation:function(){h=!0},preventDefault:function(){i.defaultPrevented=!0},defaultPrevented:!1},k=R([i],arguments,1);do{for(c=g.$$listeners[a]||f,i.currentScope=g,d=0,e=c.length;e>d;d++)if(c[d])try{c[d].apply(null,k)}catch(l){j(l)}else c.splice(d,1),d--,e--;if(h)return i.currentScope=null,i;g=g.$parent}while(g);return i.currentScope=null,i},$broadcast:function(a,b){var c=this,d=c,e=c,f={name:a,targetScope:c,preventDefault:function(){f.defaultPrevented=!0},defaultPrevented:!1};if(!c.$$listenerCount[a])return f;for(var g,h,i,k=R([f],arguments,1);d=e;){for(f.currentScope=d,g=d.$$listeners[a]||[],h=0,i=g.length;i>h;h++)if(g[h])try{g[h].apply(null,k)}catch(l){j(l)}else g.splice(h,1),h--,i--;if(!(e=d.$$listenerCount[a]&&d.$$childHead||d!==c&&d.$$nextSibling))for(;d!==c&&!(e=d.$$nextSibling);)d=d.$parent}return f.currentScope=null,f}};var z=new o,B=z.$$asyncQueue=[],C=z.$$postDigestQueue=[],D=z.$$applyAsyncQueue=[];return z}]}function sc(){var a=/^\s*(https?|ftp|mailto|tel|file):/,b=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(b){return u(b)?(a=b,this):a},this.imgSrcSanitizationWhitelist=function(a){return u(a)?(b=a,this):b},this.$get=function(){return function(c,d){var e,f=d?b:a;return e=Bc(c).href,""===e||e.match(f)?c:"unsafe:"+e}}}function tc(a){if("self"===a)return a;if(x(a)){if(a.indexOf("***")>-1)throw lf("iwcard","Illegal sequence *** in string matcher.  String: {0}",a);return a=Td(a).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+a+"$")}if(B(a))return new RegExp("^"+a.source+"$");throw lf("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function uc(a){var b=[];return u(a)&&f(a,function(a){b.push(tc(a))}),b}function vc(){this.SCE_CONTEXTS=mf;var a=["self"],b=[];this.resourceUrlWhitelist=function(b){return arguments.length&&(a=uc(b)),a},this.resourceUrlBlacklist=function(a){return arguments.length&&(b=uc(a)),b},this.$get=["$injector",function(c){function d(a,b){return"self"===a?Cc(b):!!a.exec(b.href)}function e(c){var e,f,g=Bc(c.toString()),h=!1;for(e=0,f=a.length;f>e;e++)if(d(a[e],g)){h=!0;break}if(h)for(e=0,f=b.length;f>e;e++)if(d(b[e],g)){h=!1;break}return h}function f(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};return a&&(b.prototype=new a),b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},b}function g(a,b){var c=l.hasOwnProperty(a)?l[a]:null;if(!c)throw lf("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",a,b);if(null===b||t(b)||""===b)return b;if("string"!=typeof b)throw lf("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",a);return new c(b)}function h(a){return a instanceof k?a.$$unwrapTrustedValue():a}function i(a,b){if(null===b||t(b)||""===b)return b;var c=l.hasOwnProperty(a)?l[a]:null;if(c&&b instanceof c)return b.$$unwrapTrustedValue();if(a===mf.RESOURCE_URL){
+if(e(b))return b;throw lf("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}",b.toString())}if(a===mf.HTML)return j(b);throw lf("unsafe","Attempting to use an unsafe value in a safe context.")}var j=function(a){throw lf("unsafe","Attempting to use an unsafe value in a safe context.")};c.has("$sanitize")&&(j=c.get("$sanitize"));var k=f(),l={};return l[mf.HTML]=f(k),l[mf.CSS]=f(k),l[mf.URL]=f(k),l[mf.JS]=f(k),l[mf.RESOURCE_URL]=f(l[mf.URL]),{trustAs:g,getTrusted:i,valueOf:h}}]}function wc(){var a=!0;this.enabled=function(b){return arguments.length&&(a=!!b),a},this.$get=["$parse","$sceDelegate",function(b,c){if(a&&8>Dd)throw lf("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode.  You can fix this by adding the text <!doctype html> to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.");var d=P(mf);d.isEnabled=function(){return a},d.trustAs=c.trustAs,d.getTrusted=c.getTrusted,d.valueOf=c.valueOf,a||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=q),d.parseAs=function(a,c){var e=b(c);return e.literal&&e.constant?e:b(c,function(b){return d.getTrusted(a,b)})};var e=d.parseAs,g=d.getTrusted,h=d.trustAs;return f(mf,function(a,b){var c=yd(b);d[wa("parse_as_"+c)]=function(b){return e(a,b)},d[wa("get_trusted_"+c)]=function(b){return g(a,b)},d[wa("trust_as_"+c)]=function(b){return h(a,b)}}),d}]}function xc(){this.$get=["$window","$document",function(a,b){var c,d,e={},f=n((/android (\d+)/.exec(yd((a.navigator||{}).userAgent))||[])[1]),g=/Boxee/i.test((a.navigator||{}).userAgent),h=b[0]||{},i=/^(Moz|webkit|ms)(?=[A-Z])/,j=h.body&&h.body.style,k=!1,l=!1;if(j){for(var m in j)if(d=i.exec(m)){c=d[0],c=c.substr(0,1).toUpperCase()+c.substr(1);break}c||(c="WebkitOpacity"in j&&"webkit"),k=!!("transition"in j||c+"Transition"in j),l=!!("animation"in j||c+"Animation"in j),!f||k&&l||(k=x(j.webkitTransition),l=x(j.webkitAnimation))}return{history:!(!a.history||!a.history.pushState||4>f||g),hasEvent:function(a){if("input"===a&&11>=Dd)return!1;if(t(e[a])){var b=h.createElement("div");e[a]="on"+a in b}return e[a]},csp:Ud(),vendorPrefix:c,transitions:k,animations:l,android:f}}]}function yc(){this.$get=["$templateCache","$http","$q","$sce",function(a,b,c,d){function e(f,g){function h(a){if(!g)throw Le("tpload","Failed to load template: {0} (HTTP status: {1} {2})",f,a.status,a.statusText);return c.reject(a)}e.totalPendingRequests++,x(f)&&a.get(f)||(f=d.getTrustedResourceUrl(f));var i=b.defaults&&b.defaults.transformResponse;Qd(i)?i=i.filter(function(a){return a!==vb}):i===vb&&(i=null);var j={cache:a,transformResponse:i};return b.get(f,j)["finally"](function(){e.totalPendingRequests--}).then(function(b){return a.put(f,b.data),b.data},h)}return e.totalPendingRequests=0,e}]}function zc(){this.$get=["$rootScope","$browser","$location",function(a,b,c){var d={};return d.findBindings=function(a,b,c){var d=a.getElementsByClassName("ng-binding"),e=[];return f(d,function(a){var d=Nd.element(a).data("$binding");d&&f(d,function(d){if(c){var f=new RegExp("(^|\\s)"+Td(b)+"(\\s|\\||$)");f.test(d)&&e.push(a)}else-1!=d.indexOf(b)&&e.push(a)})}),e},d.findModels=function(a,b,c){for(var d=["ng-","data-ng-","ng\\:"],e=0;e<d.length;++e){var f=c?"=":"*=",g="["+d[e]+"model"+f+'"'+b+'"]',h=a.querySelectorAll(g);if(h.length)return h}},d.getLocation=function(){return c.url()},d.setLocation=function(b){b!==c.url()&&(c.url(b),a.$digest())},d.whenStable=function(a){b.notifyWhenNoOutstandingRequests(a)},d}]}function Ac(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(a,b,c,d,e){function f(f,h,i){A(f)||(i=h,h=f,f=p);var j,k=S(arguments,3),l=u(i)&&!i,m=(l?d:c).defer(),n=m.promise;return j=b.defer(function(){try{m.resolve(f.apply(null,k))}catch(b){m.reject(b),e(b)}finally{delete g[n.$$timeoutId]}l||a.$apply()},h),n.$$timeoutId=j,g[j]=m,n}var g={};return f.cancel=function(a){return a&&a.$$timeoutId in g?(g[a.$$timeoutId].reject("canceled"),delete g[a.$$timeoutId],b.defer.cancel(a.$$timeoutId)):!1},f}]}function Bc(a){var b=a;return Dd&&(nf.setAttribute("href",b),b=nf.href),nf.setAttribute("href",b),{href:nf.href,protocol:nf.protocol?nf.protocol.replace(/:$/,""):"",host:nf.host,search:nf.search?nf.search.replace(/^\?/,""):"",hash:nf.hash?nf.hash.replace(/^#/,""):"",hostname:nf.hostname,port:nf.port,pathname:"/"===nf.pathname.charAt(0)?nf.pathname:"/"+nf.pathname}}function Cc(a){var b=x(a)?Bc(a):a;return b.protocol===of.protocol&&b.host===of.host}function Dc(){this.$get=r(a)}function Ec(a){function b(a){try{return decodeURIComponent(a)}catch(b){return a}}var c=a[0]||{},d={},e="";return function(){var a,f,g,h,i,j=c.cookie||"";if(j!==e)for(e=j,a=e.split("; "),d={},g=0;g<a.length;g++)f=a[g],h=f.indexOf("="),h>0&&(i=b(f.substring(0,h)),t(d[i])&&(d[i]=b(f.substring(h+1))));return d}}function Fc(){this.$get=Ec}function Gc(a){function b(d,e){if(v(d)){var g={};return f(d,function(a,c){g[c]=b(c,a)}),g}return a.factory(d+c,e)}var c="Filter";this.register=b,this.$get=["$injector",function(a){return function(b){return a.get(b+c)}}],b("currency",Lc),b("date",$c),b("filter",Hc),b("json",_c),b("limitTo",ad),b("lowercase",vf),b("number",Mc),b("orderBy",bd),b("uppercase",wf)}function Hc(){return function(a,b,c){if(!e(a)){if(null==a)return a;throw d("filter")("notarray","Expected array but received: {0}",a)}var f,g,h=Kc(b);switch(h){case"function":f=b;break;case"boolean":case"null":case"number":case"string":g=!0;case"object":f=Ic(b,c,g);break;default:return a}return Array.prototype.filter.call(a,f)}}function Ic(a,b,c){var d,e=v(a)&&"$"in a;return b===!0?b=Q:A(b)||(b=function(a,b){return t(a)?!1:null===a||null===b?a===b:v(b)||v(a)&&!s(a)?!1:(a=yd(""+a),b=yd(""+b),-1!==a.indexOf(b))}),d=function(d){return e&&!v(d)?Jc(d,a.$,b,!1):Jc(d,a,b,c)}}function Jc(a,b,c,d,e){var f=Kc(a),g=Kc(b);if("string"===g&&"!"===b.charAt(0))return!Jc(a,b.substring(1),c,d);if(Qd(a))return a.some(function(a){return Jc(a,b,c,d)});switch(f){case"object":var h;if(d){for(h in a)if("$"!==h.charAt(0)&&Jc(a[h],b,c,!0))return!0;return e?!1:Jc(a,b,c,!1)}if("object"===g){for(h in b){var i=b[h];if(!A(i)&&!t(i)){var j="$"===h,k=j?a:a[h];if(!Jc(k,i,c,j,j))return!1}}return!0}return c(a,b);case"function":return!1;default:return c(a,b)}}function Kc(a){return null===a?"null":typeof a}function Lc(a){var b=a.NUMBER_FORMATS;return function(a,c,d){return t(c)&&(c=b.CURRENCY_SYM),t(d)&&(d=b.PATTERNS[1].maxFrac),null==a?a:Pc(a,b.PATTERNS[1],b.GROUP_SEP,b.DECIMAL_SEP,d).replace(/\u00A4/g,c)}}function Mc(a){var b=a.NUMBER_FORMATS;return function(a,c){return null==a?a:Pc(a,b.PATTERNS[0],b.GROUP_SEP,b.DECIMAL_SEP,c)}}function Nc(a){var b,c,d,e,f,g=0;for((c=a.indexOf(qf))>-1&&(a=a.replace(qf,"")),(d=a.search(/e/i))>0?(0>c&&(c=d),c+=+a.slice(d+1),a=a.substring(0,d)):0>c&&(c=a.length),d=0;a.charAt(d)==rf;d++);if(d==(f=a.length))b=[0],c=1;else{for(f--;a.charAt(f)==rf;)f--;for(c-=d,b=[],e=0;f>=d;d++,e++)b[e]=+a.charAt(d)}return c>pf&&(b=b.splice(0,pf-1),g=c-1,c=1),{d:b,e:g,i:c}}function Oc(a,b,c,d){var e=a.d,f=e.length-a.i;b=t(b)?Math.min(Math.max(c,f),d):+b;var g=b+a.i,h=e[g];if(g>0)e.splice(g);else{a.i=1,e.length=g=b+1;for(var i=0;g>i;i++)e[i]=0}for(h>=5&&e[g-1]++;b>f;f++)e.push(0);var j=e.reduceRight(function(a,b,c,d){return b+=a,d[c]=b%10,Math.floor(b/10)},0);j&&(e.unshift(j),a.i++)}function Pc(a,b,c,d,e){if(!x(a)&&!y(a)||isNaN(a))return"";var f,g=!isFinite(a),h=!1,i=Math.abs(a)+"",j="";if(g)j="∞";else{f=Nc(i),Oc(f,e,b.minFrac,b.maxFrac);var k=f.d,l=f.i,m=f.e,n=[];for(h=k.reduce(function(a,b){return a&&!b},!0);0>l;)k.unshift(0),l++;l>0?n=k.splice(l):(n=k,k=[0]);var o=[];for(k.length>b.lgSize&&o.unshift(k.splice(-b.lgSize).join(""));k.length>b.gSize;)o.unshift(k.splice(-b.gSize).join(""));k.length&&o.unshift(k.join("")),j=o.join(c),n.length&&(j+=d+n.join("")),m&&(j+="e+"+m)}return 0>a&&!h?b.negPre+j+b.negSuf:b.posPre+j+b.posSuf}function Qc(a,b,c){var d="";for(0>a&&(d="-",a=-a),a=""+a;a.length<b;)a=rf+a;return c&&(a=a.substr(a.length-b)),d+a}function Rc(a,b,c,d){return c=c||0,function(e){var f=e["get"+a]();return(c>0||f>-c)&&(f+=c),0===f&&-12==c&&(f=12),Qc(f,b,d)}}function Sc(a,b){return function(c,d){var e=c["get"+a](),f=Ad(b?"SHORT"+a:a);return d[f][e]}}function Tc(a,b,c){var d=-1*c,e=d>=0?"+":"";return e+=Qc(Math[d>0?"floor":"ceil"](d/60),2)+Qc(Math.abs(d%60),2)}function Uc(a){var b=new Date(a,0,1).getDay();return new Date(a,0,(4>=b?5:12)-b)}function Vc(a){return new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))}function Wc(a){return function(b){var c=Uc(b.getFullYear()),d=Vc(b),e=+d-+c,f=1+Math.round(e/6048e5);return Qc(f,a)}}function Xc(a,b){return a.getHours()<12?b.AMPMS[0]:b.AMPMS[1]}function Yc(a,b){return a.getFullYear()<=0?b.ERAS[0]:b.ERAS[1]}function Zc(a,b){return a.getFullYear()<=0?b.ERANAMES[0]:b.ERANAMES[1]}function $c(a){function b(a){var b;if(b=a.match(c)){var d=new Date(0),e=0,f=0,g=b[8]?d.setUTCFullYear:d.setFullYear,h=b[8]?d.setUTCHours:d.setHours;b[9]&&(e=n(b[9]+b[10]),f=n(b[9]+b[11])),g.call(d,n(b[1]),n(b[2])-1,n(b[3]));var i=n(b[4]||0)-e,j=n(b[5]||0)-f,k=n(b[6]||0),l=Math.round(1e3*parseFloat("0."+(b[7]||0)));return h.call(d,i,j,k,l),d}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,d,e){var g,h,i="",j=[];if(d=d||"mediumDate",d=a.DATETIME_FORMATS[d]||d,x(c)&&(c=uf.test(c)?n(c):b(c)),y(c)&&(c=new Date(c)),!z(c)||!isFinite(c.getTime()))return c;for(;d;)h=tf.exec(d),h?(j=R(j,h,1),d=j.pop()):(j.push(d),d=null);var k=c.getTimezoneOffset();return e&&(k=X(e,c.getTimezoneOffset()),c=Z(c,e,!0)),f(j,function(b){g=sf[b],i+=g?g(c,a.DATETIME_FORMATS,k):b.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),i}}function _c(){return function(a,b){return t(b)&&(b=2),V(a,b)}}function ad(){return function(a,b,c){return b=Math.abs(Number(b))===1/0?Number(b):n(b),isNaN(b)?a:(y(a)&&(a=a.toString()),Qd(a)||x(a)?(c=!c||isNaN(c)?0:n(c),c=0>c?Math.max(0,a.length+c):c,b>=0?a.slice(c,c+b):0===c?a.slice(b,a.length):a.slice(Math.max(0,c+b),c)):a)}}function bd(a){function b(b,c){return c=c?-1:1,b.map(function(b){var d=1,e=q;if(A(b))e=b;else if(x(b)&&("+"!=b.charAt(0)&&"-"!=b.charAt(0)||(d="-"==b.charAt(0)?-1:1,b=b.substring(1)),""!==b&&(e=a(b),e.constant))){var f=e();e=function(a){return a[f]}}return{get:e,descending:d*c}})}function c(a){switch(typeof a){case"number":case"boolean":case"string":return!0;default:return!1}}function d(a,b){return"function"==typeof a.valueOf&&(a=a.valueOf(),c(a))?a:s(a)&&(a=a.toString(),c(a))?a:b}function f(a,b){var c=typeof a;return null===a?(c="string",a="null"):"string"===c?a=a.toLowerCase():"object"===c&&(a=d(a,b)),{value:a,type:c}}function g(a,b){var c=0;return a.type===b.type?a.value!==b.value&&(c=a.value<b.value?-1:1):c=a.type<b.type?-1:1,c}return function(a,c,d){function h(a,b){return{value:a,predicateValues:j.map(function(c){return f(c.get(a),b)})}}function i(a,b){for(var c=0,d=0,e=j.length;e>d&&!(c=g(a.predicateValues[d],b.predicateValues[d])*j[d].descending);++d);return c}if(!e(a))return a;Qd(c)||(c=[c]),0===c.length&&(c=["+"]);var j=b(c,d);j.push({get:function(){return{}},descending:d?-1:1});var k=Array.prototype.map.call(a,h);return k.sort(i),a=k.map(function(a){return a.value})}}function cd(a){return A(a)&&(a={link:a}),a.restrict=a.restrict||"AC",r(a)}function dd(a,b){a.$name=b}function ed(a,b,d,e,g){var h=this,i=[];h.$error={},h.$$success={},h.$pending=c,h.$name=g(b.name||b.ngForm||"")(d),h.$dirty=!1,h.$pristine=!0,h.$valid=!0,h.$invalid=!1,h.$submitted=!1,h.$$parentForm=zf,h.$rollbackViewValue=function(){f(i,function(a){a.$rollbackViewValue()})},h.$commitViewValue=function(){f(i,function(a){a.$commitViewValue()})},h.$addControl=function(a){na(a.$name,"input"),i.push(a),a.$name&&(h[a.$name]=a),a.$$parentForm=h},h.$$renameControl=function(a,b){var c=a.$name;h[c]===a&&delete h[c],h[b]=a,a.$name=b},h.$removeControl=function(a){a.$name&&h[a.$name]===a&&delete h[a.$name],f(h.$pending,function(b,c){h.$setValidity(c,null,a)}),f(h.$error,function(b,c){h.$setValidity(c,null,a)}),f(h.$$success,function(b,c){h.$setValidity(c,null,a)}),N(i,a),a.$$parentForm=zf},td({ctrl:this,$element:a,set:function(a,b,c){var d=a[b];if(d){var e=d.indexOf(c);-1===e&&d.push(c)}else a[b]=[c]},unset:function(a,b,c){var d=a[b];d&&(N(d,c),0===d.length&&delete a[b])},$animate:e}),h.$setDirty=function(){e.removeClass(a,hg),e.addClass(a,ig),h.$dirty=!0,h.$pristine=!1,h.$$parentForm.$setDirty()},h.$setPristine=function(){e.setClass(a,hg,ig+" "+Af),h.$dirty=!1,h.$pristine=!0,h.$submitted=!1,f(i,function(a){a.$setPristine()})},h.$setUntouched=function(){f(i,function(a){a.$setUntouched()})},h.$setSubmitted=function(){e.addClass(a,Af),h.$submitted=!0,h.$$parentForm.$setSubmitted()}}function fd(a){a.$formatters.push(function(b){return a.$isEmpty(b)?b:b.toString()})}function gd(a,b,c,d,e,f){hd(a,b,c,d,e,f),fd(d)}function hd(a,b,c,d,e,f){var g=yd(b[0].type);if(!e.android){var h=!1;b.on("compositionstart",function(a){h=!0}),b.on("compositionend",function(){h=!1,i()})}var i=function(a){if(j&&(f.defer.cancel(j),j=null),!h){var e=b.val(),i=a&&a.type;"password"===g||c.ngTrim&&"false"===c.ngTrim||(e=Sd(e)),(d.$viewValue!==e||""===e&&d.$$hasNativeValidators)&&d.$setViewValue(e,i)}};if(e.hasEvent("input"))b.on("input",i);else{var j,k=function(a,b,c){j||(j=f.defer(function(){j=null,b&&b.value===c||i(a)}))};b.on("keydown",function(a){var b=a.keyCode;91===b||b>15&&19>b||b>=37&&40>=b||k(a,this,this.value)}),e.hasEvent("paste")&&b.on("paste cut",k)}b.on("change",i),d.$render=function(){var a=d.$isEmpty(d.$viewValue)?"":d.$viewValue;b.val()!==a&&b.val(a)}}function id(a,b){if(z(a))return a;if(x(a)){Kf.lastIndex=0;var c=Kf.exec(a);if(c){var d=+c[1],e=+c[2],f=0,g=0,h=0,i=0,j=Uc(d),k=7*(e-1);return b&&(f=b.getHours(),g=b.getMinutes(),h=b.getSeconds(),i=b.getMilliseconds()),new Date(d,0,j.getDate()+k,f,g,h,i)}}return NaN}function jd(a,b){return function(c,d){var e,g;if(z(c))return c;if(x(c)){if('"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1)),Ef.test(c))return new Date(c);if(a.lastIndex=0,e=a.exec(c))return e.shift(),g=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},f(e,function(a,c){c<b.length&&(g[b[c]]=+a)}),new Date(g.yyyy,g.MM-1,g.dd,g.HH,g.mm,g.ss||0,1e3*g.sss||0)}return NaN}}function kd(a,b,d,e){return function(f,g,h,i,j,k,l){function m(a){return a&&!(a.getTime&&a.getTime()!==a.getTime())}function n(a){return u(a)&&!z(a)?d(a)||c:a}ld(f,g,h,i),hd(f,g,h,i,j,k);var o,p=i&&i.$options&&i.$options.timezone;if(i.$$parserName=a,i.$parsers.push(function(a){if(i.$isEmpty(a))return null;if(b.test(a)){var e=d(a,o);return p&&(e=Z(e,p)),e}return c}),i.$formatters.push(function(a){if(a&&!z(a))throw mg("datefmt","Expected `{0}` to be a date",a);return m(a)?(o=a,o&&p&&(o=Z(o,p,!0)),l("date")(a,e,p)):(o=null,"")}),u(h.min)||h.ngMin){var q;i.$validators.min=function(a){return!m(a)||t(q)||d(a)>=q},h.$observe("min",function(a){q=n(a),i.$validate()})}if(u(h.max)||h.ngMax){var r;i.$validators.max=function(a){return!m(a)||t(r)||d(a)<=r},h.$observe("max",function(a){r=n(a),i.$validate()})}}}function ld(a,b,d,e){var f=b[0],g=e.$$hasNativeValidators=v(f.validity);g&&e.$parsers.push(function(a){var d=b.prop(xd)||{};return d.badInput&&!d.typeMismatch?c:a})}function md(a,b,d,e,f,g){if(ld(a,b,d,e),hd(a,b,d,e,f,g),e.$$parserName="number",e.$parsers.push(function(a){return e.$isEmpty(a)?null:Hf.test(a)?parseFloat(a):c}),e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!y(a))throw mg("numfmt","Expected `{0}` to be a number",a);a=a.toString()}return a}),u(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)||t(h)||a>=h},d.$observe("min",function(a){u(a)&&!y(a)&&(a=parseFloat(a,10)),h=y(a)&&!isNaN(a)?a:c,e.$validate()})}if(u(d.max)||d.ngMax){var i;e.$validators.max=function(a){return e.$isEmpty(a)||t(i)||i>=a},d.$observe("max",function(a){u(a)&&!y(a)&&(a=parseFloat(a,10)),i=y(a)&&!isNaN(a)?a:c,e.$validate()})}}function nd(a,b,c,d,e,f){hd(a,b,c,d,e,f),fd(d),d.$$parserName="url",d.$validators.url=function(a,b){var c=a||b;return d.$isEmpty(c)||Ff.test(c)}}function od(a,b,c,d,e,f){hd(a,b,c,d,e,f),fd(d),d.$$parserName="email",d.$validators.email=function(a,b){var c=a||b;return d.$isEmpty(c)||Gf.test(c)}}function pd(a,b,c,d){t(c.name)&&b.attr("name",i());var e=function(a){b[0].checked&&d.$setViewValue(c.value,a&&a.type)};b.on("click",e),d.$render=function(){var a=c.value;b[0].checked=a==d.$viewValue},c.$observe("value",d.$render)}function qd(a,b,c,d,e){var f;if(u(d)){if(f=a(d),!f.constant)throw mg("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",c,d);return f(b)}return e}function rd(a,b,c,d,e,f,g,h){var i=qd(h,a,"ngTrueValue",c.ngTrueValue,!0),j=qd(h,a,"ngFalseValue",c.ngFalseValue,!1),k=function(a){d.$setViewValue(b[0].checked,a&&a.type)};b.on("click",k),d.$render=function(){b[0].checked=d.$viewValue},d.$isEmpty=function(a){return a===!1},d.$formatters.push(function(a){return Q(a,i)}),d.$parsers.push(function(a){return a?i:j})}function sd(a,b){return a="ngClass"+a,["$animate",function(c){function d(a,b){var c=[];a:for(var d=0;d<a.length;d++){for(var e=a[d],f=0;f<b.length;f++)if(e==b[f])continue a;c.push(e)}return c}function e(a){var b=[];return Qd(a)?(f(a,function(a){b=b.concat(e(a))}),b):x(a)?a.split(" "):v(a)?(f(a,function(a,c){a&&(b=b.concat(c.split(" ")))}),b):a}return{restrict:"AC",link:function(g,h,i){function j(a){var b=l(a,1);i.$addClass(b)}function k(a){var b=l(a,-1);i.$removeClass(b)}function l(a,b){var c=h.data("$classCounts")||qa(),d=[];return f(a,function(a){(b>0||c[a])&&(c[a]=(c[a]||0)+b,c[a]===+(b>0)&&d.push(a))}),h.data("$classCounts",c),d.join(" ")}function m(a,b){var e=d(b,a),f=d(a,b);e=l(e,1),f=l(f,-1),e&&e.length&&c.addClass(h,e),f&&f.length&&c.removeClass(h,f)}function n(a){if(b===!0||g.$index%2===b){var c=e(a||[]);if(o){if(!Q(a,o)){var d=e(o);m(d,c)}}else j(c)}o=P(a)}var o;g.$watch(i[a],n,!0),i.$observe("class",function(b){n(g.$eval(i[a]))}),"ngClass"!==a&&g.$watch("$index",function(c,d){var f=1&c;if(f!==(1&d)){var h=e(g.$eval(i[a]));f===b?j(h):k(h)}})}}}]}function td(a){function b(a,b,i){t(b)?d("$pending",a,i):e("$pending",a,i),H(b)?b?(l(h.$error,a,i),k(h.$$success,a,i)):(k(h.$error,a,i),l(h.$$success,a,i)):(l(h.$error,a,i),l(h.$$success,a,i)),h.$pending?(f(lg,!0),h.$valid=h.$invalid=c,g("",null)):(f(lg,!1),h.$valid=ud(h.$error),h.$invalid=!h.$valid,g("",h.$valid));var j;j=h.$pending&&h.$pending[a]?c:h.$error[a]?!1:h.$$success[a]?!0:null,g(a,j),h.$$parentForm.$setValidity(a,j,h)}function d(a,b,c){h[a]||(h[a]={}),k(h[a],b,c)}function e(a,b,d){h[a]&&l(h[a],b,d),ud(h[a])&&(h[a]=c)}function f(a,b){b&&!j[a]?(m.addClass(i,a),j[a]=!0):!b&&j[a]&&(m.removeClass(i,a),j[a]=!1)}function g(a,b){a=a?"-"+ja(a,"-"):"",f(fg+a,b===!0),f(gg+a,b===!1)}var h=a.ctrl,i=a.$element,j={},k=a.set,l=a.unset,m=a.$animate;j[gg]=!(j[fg]=i.hasClass(fg)),h.$setValidity=b}function ud(a){if(a)for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}function vd(a){a[0].hasAttribute("selected")&&(a[0].selected=!0)}var wd=/^\/(.+)\/([a-z]*)$/,xd="validity",yd=function(a){return x(a)?a.toLowerCase():a},zd=Object.prototype.hasOwnProperty,Ad=function(a){return x(a)?a.toUpperCase():a},Bd=function(a){return x(a)?a.replace(/[A-Z]/g,function(a){return String.fromCharCode(32|a.charCodeAt(0))}):a},Cd=function(a){return x(a)?a.replace(/[a-z]/g,function(a){return String.fromCharCode(-33&a.charCodeAt(0))}):a};"i"!=="I".toLowerCase()&&(yd=Bd,Ad=Cd);var Dd,Ed,Fd,Gd,Hd=[].slice,Id=[].splice,Jd=[].push,Kd=Object.prototype.toString,Ld=Object.getPrototypeOf,Md=d("ng"),Nd=a.angular||(a.angular={}),Od=0;Dd=b.documentMode,p.$inject=[],q.$inject=[];var Pd,Qd=Array.isArray,Rd=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/,Sd=function(a){return x(a)?a.trim():a},Td=function(a){return a.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Ud=function(){function a(){try{return new Function(""),!1}catch(a){return!0}}if(!u(Ud.rules)){var c=b.querySelector("[ng-csp]")||b.querySelector("[data-ng-csp]");if(c){var d=c.getAttribute("ng-csp")||c.getAttribute("data-ng-csp");Ud.rules={noUnsafeEval:!d||-1!==d.indexOf("no-unsafe-eval"),noInlineStyle:!d||-1!==d.indexOf("no-inline-style")}}else Ud.rules={noUnsafeEval:a(),noInlineStyle:!1}}return Ud.rules},Vd=function(){if(u(Vd.name_))return Vd.name_;var a,c,d,e,f=Wd.length;for(c=0;f>c;++c)if(d=Wd[c],a=b.querySelector("["+d.replace(":","\\:")+"jq]")){e=a.getAttribute(d+"jq");break}return Vd.name_=e},Wd=["ng-","data-ng-","ng:","x-ng-"],Xd=/[A-Z]/g,Yd=!1,Zd=1,$d=2,_d=3,ae=8,be=9,ce=11,de={full:"1.4.9",major:1,minor:4,dot:9,codeName:"implicit-superannuation"};Ca.expando="ng339";var ee=Ca.cache={},fe=1,ge=function(a,b,c){a.addEventListener(b,c,!1)},he=function(a,b,c){a.removeEventListener(b,c,!1)};Ca._data=function(a){return this.cache[a[this.expando]]||{}};var ie=/([\:\-\_]+(.))/g,je=/^moz([A-Z])/,ke={mouseleave:"mouseout",mouseenter:"mouseover"},le=d("jqLite"),me=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,ne=/<|&#?\w+;/,oe=/<([\w:-]+)/,pe=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,qe={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};qe.optgroup=qe.option,qe.tbody=qe.tfoot=qe.colgroup=qe.caption=qe.thead,qe.th=qe.td;var re=Node.prototype.contains||function(a){return!!(16&this.compareDocumentPosition(a))},se=Ca.prototype={ready:function(c){function d(){e||(e=!0,c())}var e=!1;"complete"===b.readyState?setTimeout(d):(this.on("DOMContentLoaded",d),Ca(a).on("load",d))},toString:function(){var a=[];return f(this,function(b){a.push(""+b)}),"["+a.join(", ")+"]"},eq:function(a){return Ed(a>=0?this[a]:this[this.length+a])},length:0,push:Jd,sort:[].sort,splice:[].splice},te={};f("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(a){te[yd(a)]=a});var ue={};f("input,select,option,textarea,button,form,details".split(","),function(a){ue[a]=!0});var ve={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};f({data:Ia,removeData:Ga,hasData:za},function(a,b){Ca[b]=a}),f({data:Ia,inheritedData:Oa,scope:function(a){return Ed.data(a,"$scope")||Oa(a.parentNode||a,["$isolateScope","$scope"])},isolateScope:function(a){return Ed.data(a,"$isolateScope")||Ed.data(a,"$isolateScopeNoTemplate")},controller:Na,injector:function(a){return Oa(a,"$injector")},removeAttr:function(a,b){a.removeAttribute(b)},hasClass:Ja,css:function(a,b,c){return b=wa(b),u(c)?void(a.style[b]=c):a.style[b]},attr:function(a,b,d){var e=a.nodeType;if(e!==_d&&e!==$d&&e!==ae){var f=yd(b);if(te[f]){if(!u(d))return a[b]||(a.attributes.getNamedItem(b)||p).specified?f:c;d?(a[b]=!0,a.setAttribute(b,f)):(a[b]=!1,a.removeAttribute(f))}else if(u(d))a.setAttribute(b,d);else if(a.getAttribute){var g=a.getAttribute(b,2);return null===g?c:g}}},prop:function(a,b,c){return u(c)?void(a[b]=c):a[b]},text:function(){function a(a,b){if(t(b)){var c=a.nodeType;return c===Zd||c===_d?a.textContent:""}a.textContent=b}return a.$dv="",a}(),val:function(a,b){if(t(b)){if(a.multiple&&"select"===M(a)){var c=[];return f(a.options,function(a){a.selected&&c.push(a.value||a.text)}),0===c.length?null:c}return a.value}a.value=b},html:function(a,b){return t(b)?a.innerHTML:(Ea(a,!0),void(a.innerHTML=b))},empty:Pa},function(a,b){Ca.prototype[b]=function(b,c){var d,e,f=this.length;if(a!==Pa&&t(2==a.length&&a!==Ja&&a!==Na?b:c)){if(v(b)){for(d=0;f>d;d++)if(a===Ia)a(this[d],b);else for(e in b)a(this[d],e,b[e]);return this}for(var g=a.$dv,h=t(g)?Math.min(f,1):f,i=0;h>i;i++){var j=a(this[i],b,c);g=g?g+j:j}return g}for(d=0;f>d;d++)a(this[d],b,c);return this}}),f({removeData:Ga,on:function(a,b,d,e){if(u(e))throw le("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(ya(a)){var f=Ha(a,!0),g=f.events,h=f.handle;h||(h=f.handle=Ua(a,g));for(var i=b.indexOf(" ")>=0?b.split(" "):[b],j=i.length,k=function(b,c,e){var f=g[b];f||(f=g[b]=[],f.specialHandlerWrapper=c,"$destroy"===b||e||ge(a,b,h)),f.push(d)};j--;)b=i[j],ke[b]?(k(ke[b],Wa),k(b,c,!0)):k(b)}},off:Fa,one:function(a,b,c){a=Ed(a),a.on(b,function d(){a.off(b,c),a.off(b,d)}),a.on(b,c)},replaceWith:function(a,b){var c,d=a.parentNode;Ea(a),f(new Ca(b),function(b){c?d.insertBefore(b,c.nextSibling):d.replaceChild(b,a),c=b})},children:function(a){var b=[];return f(a.childNodes,function(a){a.nodeType===Zd&&b.push(a)}),b},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,b){var c=a.nodeType;if(c===Zd||c===ce){b=new Ca(b);for(var d=0,e=b.length;e>d;d++){var f=b[d];a.appendChild(f)}}},prepend:function(a,b){if(a.nodeType===Zd){var c=a.firstChild;f(new Ca(b),function(b){a.insertBefore(b,c)})}},wrap:function(a,b){b=Ed(b).eq(0).clone()[0];var c=a.parentNode;c&&c.replaceChild(b,a),b.appendChild(a)},remove:Qa,detach:function(a){Qa(a,!0)},after:function(a,b){var c=a,d=a.parentNode;b=new Ca(b);for(var e=0,f=b.length;f>e;e++){var g=b[e];d.insertBefore(g,c.nextSibling),c=g}},addClass:La,removeClass:Ka,toggleClass:function(a,b,c){b&&f(b.split(" "),function(b){var d=c;t(d)&&(d=!Ja(a,b)),(d?La:Ka)(a,b)})},parent:function(a){var b=a.parentNode;return b&&b.nodeType!==ce?b:null},next:function(a){return a.nextElementSibling},find:function(a,b){return a.getElementsByTagName?a.getElementsByTagName(b):[]},clone:Da,triggerHandler:function(a,b,c){var d,e,g,h=b.type||b,i=Ha(a),j=i&&i.events,k=j&&j[h];k&&(d={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:p,type:h,target:a},b.type&&(d=l(d,b)),e=P(k),g=c?[d].concat(c):[d],f(e,function(b){d.isImmediatePropagationStopped()||b.apply(a,g)}))}},function(a,b){Ca.prototype[b]=function(b,c,d){for(var e,f=0,g=this.length;g>f;f++)t(e)?(e=a(this[f],b,c,d),u(e)&&(e=Ed(e))):Ma(e,a(this[f],b,c,d));return u(e)?e:this},Ca.prototype.bind=Ca.prototype.on,Ca.prototype.unbind=Ca.prototype.off}),Za.prototype={put:function(a,b){this[Ya(a,this.nextUid)]=b},get:function(a){return this[Ya(a,this.nextUid)]},remove:function(a){var b=this[a=Ya(a,this.nextUid)];return delete this[a],b}};var we=[function(){this.$get=[function(){return Za}]}],xe=/^[^\(]*\(\s*([^\)]*)\)/m,ye=/,/,ze=/^\s*(_?)(\S+?)\1\s*$/,Ae=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Be=d("$injector");ab.$$annotate=_a;var Ce=d("$animate"),De=1,Ee="ng-animate",Fe=function(){this.$get=function(){}},Ge=function(){var a=new Za,b=[];this.$get=["$$AnimateRunner","$rootScope",function(c,d){function e(a,b,c){var d=!1;return b&&(b=x(b)?b.split(" "):Qd(b)?b:[],f(b,function(b){b&&(d=!0,a[b]=c)})),d}function g(){f(b,function(b){var c=a.get(b);if(c){var d=eb(b.attr("class")),e="",g="";f(c,function(a,b){var c=!!d[b];a!==c&&(a?e+=(e.length?" ":"")+b:g+=(g.length?" ":"")+b)}),f(b,function(a){e&&La(a,e),g&&Ka(a,g)}),a.remove(b)}}),b.length=0}function h(c,f,h){var i=a.get(c)||{},j=e(i,f,!0),k=e(i,h,!1);(j||k)&&(a.put(c,i),b.push(c),1===b.length&&d.$$postDigest(g))}return{enabled:p,on:p,off:p,pin:p,push:function(a,b,d,e){e&&e(),d=d||{},d.from&&a.css(d.from),d.to&&a.css(d.to),(d.addClass||d.removeClass)&&h(a,d.addClass,d.removeClass);var f=new c;return f.complete(),f}}}]},He=["$provide",function(a){var b=this;this.$$registeredAnimations=Object.create(null),this.register=function(c,d){if(c&&"."!==c.charAt(0))throw Ce("notcsel","Expecting class selector starting with '.' got '{0}'.",c);var e=c+"-animation";b.$$registeredAnimations[c.substr(1)]=e,a.factory(e,d)},this.classNameFilter=function(a){if(1===arguments.length&&(this.$$classNameFilter=a instanceof RegExp?a:null,this.$$classNameFilter)){var b=new RegExp("(\\s+|\\/)"+Ee+"(\\s+|\\/)");if(b.test(this.$$classNameFilter.toString()))throw Ce("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',Ee)}return this.$$classNameFilter},this.$get=["$$animateQueue",function(a){function b(a,b,c){if(c){var d=db(c);!d||d.parentNode||d.previousElementSibling||(c=null)}c?c.after(a):b.prepend(a)}return{on:a.on,off:a.off,pin:a.pin,enabled:a.enabled,cancel:function(a){a.end&&a.end()},enter:function(c,d,e,f){return d=d&&Ed(d),e=e&&Ed(e),d=d||e.parent(),b(c,d,e),a.push(c,"enter",fb(f))},move:function(c,d,e,f){return d=d&&Ed(d),e=e&&Ed(e),d=d||e.parent(),b(c,d,e),a.push(c,"move",fb(f))},leave:function(b,c){return a.push(b,"leave",fb(c),function(){b.remove()})},addClass:function(b,c,d){return d=fb(d),d.addClass=cb(d.addclass,c),a.push(b,"addClass",d)},removeClass:function(b,c,d){return d=fb(d),d.removeClass=cb(d.removeClass,c),a.push(b,"removeClass",d)},setClass:function(b,c,d,e){return e=fb(e),e.addClass=cb(e.addClass,c),e.removeClass=cb(e.removeClass,d),a.push(b,"setClass",e)},animate:function(b,c,d,e,f){return f=fb(f),f.from=f.from?l(f.from,c):c,f.to=f.to?l(f.to,d):d,e=e||"ng-inline-animate",f.tempClasses=cb(f.tempClasses,e),a.push(b,"animate",f)}}}]}],Ie=function(){this.$get=["$$rAF",function(a){function b(b){c.push(b),c.length>1||a(function(){for(var a=0;a<c.length;a++)c[a]();c=[]})}var c=[];return function(){var a=!1;return b(function(){a=!0}),function(c){a?c():b(c)}}}]},Je=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$document","$timeout",function(a,b,c,d,e){function g(a){this.setHost(a);var b=c(),f=function(a){e(a,0,!1)};this._doneCallbacks=[],this._tick=function(a){var c=d[0];c&&c.hidden?f(a):b(a)},this._state=0}var h=0,i=1,j=2;return g.chain=function(a,b){function c(){return d===a.length?void b(!0):void a[d](function(a){return a===!1?void b(!1):(d++,void c())})}var d=0;c()},g.all=function(a,b){function c(c){e=e&&c,++d===a.length&&b(e)}var d=0,e=!0;f(a,function(a){a.done(c)})},g.prototype={setHost:function(a){this.host=a||{}},done:function(a){this._state===j?a():this._doneCallbacks.push(a)},progress:p,getPromise:function(){if(!this.promise){var b=this;this.promise=a(function(a,c){b.done(function(b){b===!1?c():a()})})}return this.promise},then:function(a,b){return this.getPromise().then(a,b)},"catch":function(a){return this.getPromise()["catch"](a)},"finally":function(a){return this.getPromise()["finally"](a)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(a){var b=this;b._state===h&&(b._state=i,b._tick(function(){b._resolve(a)}))},_resolve:function(a){this._state!==j&&(f(this._doneCallbacks,function(b){b(a)}),this._doneCallbacks.length=0,this._state=j)}},g}]},Ke=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(a,b,c){return function(b,d){function e(){return a(function(){f(),h||i.complete(),h=!0}),i}function f(){g.addClass&&(b.addClass(g.addClass),g.addClass=null),g.removeClass&&(b.removeClass(g.removeClass),g.removeClass=null),g.to&&(b.css(g.to),g.to=null)}var g=d||{};g.$$prepared||(g=O(g)),g.cleanupStyles&&(g.from=g.to=null),g.from&&(b.css(g.from),g.from=null);var h,i=new c;return{start:e,end:e}}}]},Le=d("$compile");kb.$inject=["$provide","$$sanitizeUriProvider"];var Me=/^((?:x|data)[\:\-_])/i,Ne=d("$controller"),Oe=/^(\S+)(\s+as\s+([\w$]+))?$/,Pe=function(){this.$get=["$document",function(a){return function(b){return b?!b.nodeType&&b instanceof Ed&&(b=b[0]):b=a[0].body,b.offsetWidth+1}}]},Qe="application/json",Re={"Content-Type":Qe+";charset=utf-8"},Se=/^\[|^\{(?!\{)/,Te={"[":/]$/,"{":/}$/},Ue=/^\)\]\}',?\n/,Ve=d("$http"),We=function(a){return function(){throw Ve("legacy","The method `{0}` on the promise returned from `$http` has been disabled.",a)}},Xe=Nd.$interpolateMinErr=d("$interpolate");
+Xe.throwNoconcat=function(a){throw Xe("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce",a)},Xe.interr=function(a,b){return Xe("interr","Can't interpolate: {0}\n{1}",a,b.toString())};var Ye=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,Ze={http:80,https:443,ftp:21},$e=d("$location"),_e={$$html5:!1,$$replace:!1,absUrl:Sb("$$absUrl"),url:function(a){if(t(a))return this.$$url;var b=Ye.exec(a);return(b[1]||""===a)&&this.path(decodeURIComponent(b[1])),(b[2]||b[1]||""===a)&&this.search(b[3]||""),this.hash(b[5]||""),this},protocol:Sb("$$protocol"),host:Sb("$$host"),port:Sb("$$port"),path:Tb("$$path",function(a){return a=null!==a?a.toString():"","/"==a.charAt(0)?a:"/"+a}),search:function(a,b){switch(arguments.length){case 0:return this.$$search;case 1:if(x(a)||y(a))a=a.toString(),this.$$search=aa(a);else{if(!v(a))throw $e("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");a=O(a,{}),f(a,function(b,c){null==b&&delete a[c]}),this.$$search=a}break;default:t(b)||null===b?delete this.$$search[a]:this.$$search[a]=b}return this.$$compose(),this},hash:Tb("$$hash",function(a){return null!==a?a.toString():""}),replace:function(){return this.$$replace=!0,this}};f([Rb,Qb,Pb],function(a){a.prototype=Object.create(_e),a.prototype.state=function(b){if(!arguments.length)return this.$$state;if(a!==Pb||!this.$$html5)throw $e("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=t(b)?null:b,this}});var af=d("$parse"),bf=Function.prototype.call,cf=Function.prototype.apply,df=Function.prototype.bind,ef=qa();f("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(a){ef[a]=!0});var ff={n:"\n",f:"\f",r:"\r",t:"  ",v:"\x0B","'":"'",'"':'"'},gf=function(a){this.options=a};gf.prototype={constructor:gf,lex:function(a){for(this.text=a,this.index=0,this.tokens=[];this.index<this.text.length;){var b=this.text.charAt(this.index);if('"'===b||"'"===b)this.readString(b);else if(this.isNumber(b)||"."===b&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(b))this.readIdent();else if(this.is(b,"(){}[].,;:?"))this.tokens.push({index:this.index,text:b}),this.index++;else if(this.isWhitespace(b))this.index++;else{var c=b+this.peek(),d=c+this.peek(2),e=ef[b],f=ef[c],g=ef[d];if(e||f||g){var h=g?d:f?c:b;this.tokens.push({index:this.index,text:h,operator:!0}),this.index+=h.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(a,b){return-1!==b.indexOf(a)},peek:function(a){var b=a||1;return this.index+b<this.text.length?this.text.charAt(this.index+b):!1},isNumber:function(a){return a>="0"&&"9">=a&&"string"==typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"   "===a||"\n"===a||"\x0B"===a||" "===a},isIdent:function(a){return a>="a"&&"z">=a||a>="A"&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,c){c=c||this.index;var d=u(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,c)+"]":" "+c;throw af("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",a,d,this.text)},readNumber:function(){for(var a="",b=this.index;this.index<this.text.length;){var c=yd(this.text.charAt(this.index));if("."==c||this.isNumber(c))a+=c;else{var d=this.peek();if("e"==c&&this.isExpOperator(d))a+=c;else if(this.isExpOperator(c)&&d&&this.isNumber(d)&&"e"==a.charAt(a.length-1))a+=c;else{if(!this.isExpOperator(c)||d&&this.isNumber(d)||"e"!=a.charAt(a.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:b,text:a,constant:!0,value:Number(a)})},readIdent:function(){for(var a=this.index;this.index<this.text.length;){var b=this.text.charAt(this.index);if(!this.isIdent(b)&&!this.isNumber(b))break;this.index++}this.tokens.push({index:a,text:this.text.slice(a,this.index),identifier:!0})},readString:function(a){var b=this.index;this.index++;for(var c="",d=a,e=!1;this.index<this.text.length;){var f=this.text.charAt(this.index);if(d+=f,e){if("u"===f){var g=this.text.substring(this.index+1,this.index+5);g.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+g+"]"),this.index+=4,c+=String.fromCharCode(parseInt(g,16))}else{var h=ff[f];c+=h||f}e=!1}else if("\\"===f)e=!0;else{if(f===a)return this.index++,void this.tokens.push({index:b,text:d,constant:!0,value:c});c+=f}this.index++}this.throwError("Unterminated quote",b)}};var hf=function(a,b){this.lexer=a,this.options=b};hf.Program="Program",hf.ExpressionStatement="ExpressionStatement",hf.AssignmentExpression="AssignmentExpression",hf.ConditionalExpression="ConditionalExpression",hf.LogicalExpression="LogicalExpression",hf.BinaryExpression="BinaryExpression",hf.UnaryExpression="UnaryExpression",hf.CallExpression="CallExpression",hf.MemberExpression="MemberExpression",hf.Identifier="Identifier",hf.Literal="Literal",hf.ArrayExpression="ArrayExpression",hf.Property="Property",hf.ObjectExpression="ObjectExpression",hf.ThisExpression="ThisExpression",hf.NGValueParameter="NGValueParameter",hf.prototype={ast:function(a){this.text=a,this.tokens=this.lexer.lex(a);var b=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),b},program:function(){for(var a=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&a.push(this.expressionStatement()),!this.expect(";"))return{type:hf.Program,body:a}},expressionStatement:function(){return{type:hf.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var a,b=this.expression();a=this.expect("|");)b=this.filter(b);return b},expression:function(){return this.assignment()},assignment:function(){var a=this.ternary();return this.expect("=")&&(a={type:hf.AssignmentExpression,left:a,right:this.assignment(),operator:"="}),a},ternary:function(){var a,b,c=this.logicalOR();return this.expect("?")&&(a=this.expression(),this.consume(":"))?(b=this.expression(),{type:hf.ConditionalExpression,test:c,alternate:a,consequent:b}):c},logicalOR:function(){for(var a=this.logicalAND();this.expect("||");)a={type:hf.LogicalExpression,operator:"||",left:a,right:this.logicalAND()};return a},logicalAND:function(){for(var a=this.equality();this.expect("&&");)a={type:hf.LogicalExpression,operator:"&&",left:a,right:this.equality()};return a},equality:function(){for(var a,b=this.relational();a=this.expect("==","!=","===","!==");)b={type:hf.BinaryExpression,operator:a.text,left:b,right:this.relational()};return b},relational:function(){for(var a,b=this.additive();a=this.expect("<",">","<=",">=");)b={type:hf.BinaryExpression,operator:a.text,left:b,right:this.additive()};return b},additive:function(){for(var a,b=this.multiplicative();a=this.expect("+","-");)b={type:hf.BinaryExpression,operator:a.text,left:b,right:this.multiplicative()};return b},multiplicative:function(){for(var a,b=this.unary();a=this.expect("*","/","%");)b={type:hf.BinaryExpression,operator:a.text,left:b,right:this.unary()};return b},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:hf.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.constants.hasOwnProperty(this.peek().text)?a=O(this.constants[this.consume().text]):this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var b;b=this.expect("(","[",".");)"("===b.text?(a={type:hf.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):"["===b.text?(a={type:hf.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:hf.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){for(var b=[a],c={type:hf.CallExpression,callee:this.identifier(),arguments:b,filter:!0};this.expect(":");)b.push(this.expression());return c},parseArguments:function(){var a=[];if(")"!==this.peekToken().text)do a.push(this.expression());while(this.expect(","));return a},identifier:function(){var a=this.consume();return a.identifier||this.throwError("is not a valid identifier",a),{type:hf.Identifier,name:a.text}},constant:function(){return{type:hf.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:hf.ArrayExpression,elements:a}},object:function(){var a,b=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;a={type:hf.Property,kind:"init"},this.peek().constant?a.key=this.constant():this.peek().identifier?a.key=this.identifier():this.throwError("invalid key",this.peek()),this.consume(":"),a.value=this.expression(),b.push(a)}while(this.expect(","));return this.consume("}"),{type:hf.ObjectExpression,properties:b}},throwError:function(a,b){throw af("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",b.text,a,b.index+1,this.text,this.text.substring(b.index))},consume:function(a){if(0===this.tokens.length)throw af("ueoe","Unexpected end of expression: {0}",this.text);var b=this.expect(a);return b||this.throwError("is unexpected, expecting ["+a+"]",this.peek()),b},peekToken:function(){if(0===this.tokens.length)throw af("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(a,b,c,d){return this.peekAhead(0,a,b,c,d)},peekAhead:function(a,b,c,d,e){if(this.tokens.length>a){var f=this.tokens[a],g=f.text;if(g===b||g===c||g===d||g===e||!b&&!c&&!d&&!e)return f}return!1},expect:function(a,b,c,d){var e=this.peek(a,b,c,d);return e?(this.tokens.shift(),e):!1},constants:{"true":{type:hf.Literal,value:!0},"false":{type:hf.Literal,value:!1},"null":{type:hf.Literal,value:null},undefined:{type:hf.Literal,value:c},"this":{type:hf.ThisExpression}}},ic.prototype={compile:function(a,b){var d=this,e=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:b,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},cc(e,d.$filter);var g,h="";if(this.stage="assign",g=fc(e)){this.state.computing="assign";var i=this.nextId();this.recurse(g,i),this.return_(i),h="fn.assign="+this.generateFunction("assign","s,v,l")}var j=dc(e.body);d.stage="inputs",f(j,function(a,b){var c="fn"+b;d.state[c]={vars:[],body:[],own:{}},d.state.computing=c;var e=d.nextId();d.recurse(a,e),d.return_(e),d.state.inputs.push(c),a.watchId=b}),this.state.computing="fn",this.stage="main",this.recurse(e);var k='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+h+this.watchFns()+"return fn;",l=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",k)(this.$filter,Wb,Yb,Zb,Xb,$b,_b,ac,a);return this.state=this.stage=c,l.literal=gc(e),l.constant=hc(e),l},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,c=this;return f(b,function(b){a.push("var "+b+"="+c.generateFunction(b,"s"))}),b.length&&a.push("fn.inputs=["+b.join(",")+"];"),a.join("")},generateFunction:function(a,b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;return f(this.state.filters,function(c,d){a.push(c+"=$filter("+b.escape(d)+")")}),a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,b,d,e,g,h){var i,j,k,l,m=this;if(e=e||p,!h&&u(a.watchId))return b=b||this.nextId(),void this.if_("i",this.lazyAssign(b,this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,e,g,!0));switch(a.type){case hf.Program:f(a.body,function(b,d){m.recurse(b.expression,c,c,function(a){j=a}),d!==a.body.length-1?m.current().body.push(j,";"):m.return_(j)});break;case hf.Literal:l=this.escape(a.value),this.assign(b,l),e(l);break;case hf.UnaryExpression:this.recurse(a.argument,c,c,function(a){j=a}),l=a.operator+"("+this.ifDefined(j,0)+")",this.assign(b,l),e(l);break;case hf.BinaryExpression:this.recurse(a.left,c,c,function(a){i=a}),this.recurse(a.right,c,c,function(a){j=a}),l="+"===a.operator?this.plus(i,j):"-"===a.operator?this.ifDefined(i,0)+a.operator+this.ifDefined(j,0):"("+i+")"+a.operator+"("+j+")",this.assign(b,l),e(l);break;case hf.LogicalExpression:b=b||this.nextId(),m.recurse(a.left,b),m.if_("&&"===a.operator?b:m.not(b),m.lazyRecurse(a.right,b)),e(b);break;case hf.ConditionalExpression:b=b||this.nextId(),m.recurse(a.test,b),m.if_(b,m.lazyRecurse(a.alternate,b),m.lazyRecurse(a.consequent,b)),e(b);break;case hf.Identifier:b=b||this.nextId(),d&&(d.context="inputs"===m.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name),Wb(a.name),m.if_("inputs"===m.stage||m.not(m.getHasOwnProperty("l",a.name)),function(){m.if_("inputs"===m.stage||"s",function(){g&&1!==g&&m.if_(m.not(m.nonComputedMember("s",a.name)),m.lazyAssign(m.nonComputedMember("s",a.name),"{}")),m.assign(b,m.nonComputedMember("s",a.name))})},b&&m.lazyAssign(b,m.nonComputedMember("l",a.name))),(m.state.expensiveChecks||kc(a.name))&&m.addEnsureSafeObject(b),e(b);break;case hf.MemberExpression:i=d&&(d.context=this.nextId())||this.nextId(),b=b||this.nextId(),m.recurse(a.object,i,c,function(){m.if_(m.notNull(i),function(){a.computed?(j=m.nextId(),m.recurse(a.property,j),m.getStringValue(j),m.addEnsureSafeMemberName(j),g&&1!==g&&m.if_(m.not(m.computedMember(i,j)),m.lazyAssign(m.computedMember(i,j),"{}")),l=m.ensureSafeObject(m.computedMember(i,j)),m.assign(b,l),d&&(d.computed=!0,d.name=j)):(Wb(a.property.name),g&&1!==g&&m.if_(m.not(m.nonComputedMember(i,a.property.name)),m.lazyAssign(m.nonComputedMember(i,a.property.name),"{}")),l=m.nonComputedMember(i,a.property.name),(m.state.expensiveChecks||kc(a.property.name))&&(l=m.ensureSafeObject(l)),m.assign(b,l),d&&(d.computed=!1,d.name=a.property.name))},function(){m.assign(b,"undefined")}),e(b)},!!g);break;case hf.CallExpression:b=b||this.nextId(),a.filter?(j=m.filter(a.callee.name),k=[],f(a.arguments,function(a){var b=m.nextId();m.recurse(a,b),k.push(b)}),l=j+"("+k.join(",")+")",m.assign(b,l),e(b)):(j=m.nextId(),i={},k=[],m.recurse(a.callee,j,i,function(){m.if_(m.notNull(j),function(){m.addEnsureSafeFunction(j),f(a.arguments,function(a){m.recurse(a,m.nextId(),c,function(a){k.push(m.ensureSafeObject(a))})}),i.name?(m.state.expensiveChecks||m.addEnsureSafeObject(i.context),l=m.member(i.context,i.name,i.computed)+"("+k.join(",")+")"):l=j+"("+k.join(",")+")",l=m.ensureSafeObject(l),m.assign(b,l)},function(){m.assign(b,"undefined")}),e(b)}));break;case hf.AssignmentExpression:if(j=this.nextId(),i={},!ec(a.left))throw af("lval","Trying to assign a value to a non l-value");this.recurse(a.left,c,i,function(){m.if_(m.notNull(i.context),function(){m.recurse(a.right,j),m.addEnsureSafeObject(m.member(i.context,i.name,i.computed)),m.addEnsureSafeAssignContext(i.context),l=m.member(i.context,i.name,i.computed)+a.operator+j,m.assign(b,l),e(b||l)})},1);break;case hf.ArrayExpression:k=[],f(a.elements,function(a){m.recurse(a,m.nextId(),c,function(a){k.push(a)})}),l="["+k.join(",")+"]",this.assign(b,l),e(l);break;case hf.ObjectExpression:k=[],f(a.properties,function(a){m.recurse(a.value,m.nextId(),c,function(b){k.push(m.escape(a.key.type===hf.Identifier?a.key.name:""+a.key.value)+":"+b)})}),l="{"+k.join(",")+"}",this.assign(b,l),e(l);break;case hf.ThisExpression:this.assign(b,"s"),e("s");break;case hf.NGValueParameter:this.assign(b,"v"),e("v")}},getHasOwnProperty:function(a,b){var c=a+"."+b,d=this.current().own;return d.hasOwnProperty(c)||(d[c]=this.nextId(!1,a+"&&("+this.escape(b)+" in "+a+")")),d[c]},assign:function(a,b){return a?(this.current().body.push(a,"=",b,";"),a):void 0},filter:function(a){return this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0)),this.state.filters[a]},ifDefined:function(a,b){return"ifDefined("+a+","+this.escape(b)+")"},plus:function(a,b){return"plus("+a+","+b+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,b,c){if(a===!0)b();else{var d=this.current().body;d.push("if(",a,"){"),b(),d.push("}"),c&&(d.push("else{"),c(),d.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,b){return a+"."+b},computedMember:function(a,b){return a+"["+b+"]"},member:function(a,b,c){return c?this.computedMember(a,b):this.nonComputedMember(a,b)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a),";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a),";")},addEnsureSafeAssignContext:function(a){this.current().body.push(this.ensureSafeAssignContext(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},getStringValue:function(a){this.assign(a,"getStringValue("+a+",text)")},ensureSafeAssignContext:function(a){return"ensureSafeAssignContext("+a+",text)"},lazyRecurse:function(a,b,c,d,e,f){var g=this;return function(){g.recurse(a,b,c,d,e,f)}},lazyAssign:function(a,b){var c=this;return function(){c.assign(a,b)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(x(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(y(a))return a.toString();if(a===!0)return"true";if(a===!1)return"false";if(null===a)return"null";if("undefined"==typeof a)return"undefined";throw af("esc","IMPOSSIBLE")},nextId:function(a,b){var c="v"+this.state.nextId++;return a||this.current().vars.push(c+(b?"="+b:"")),c},current:function(){return this.state[this.state.computing]}},jc.prototype={compile:function(a,b){var c=this,d=this.astBuilder.ast(a);this.expression=a,this.expensiveChecks=b,cc(d,c.$filter);var e,g;(e=fc(d))&&(g=this.recurse(e));var h,i=dc(d.body);i&&(h=[],f(i,function(a,b){var d=c.recurse(a);a.input=d,h.push(d),a.watchId=b}));var j=[];f(d.body,function(a){j.push(c.recurse(a.expression))});var k=0===d.body.length?function(){}:1===d.body.length?j[0]:function(a,b){var c;return f(j,function(d){c=d(a,b)}),c};return g&&(k.assign=function(a,b,c){return g(a,c,b)}),h&&(k.inputs=h),k.literal=gc(d),k.constant=hc(d),k},recurse:function(a,b,d){var e,g,h,i=this;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case hf.Literal:return this.value(a.value,b);case hf.UnaryExpression:return g=this.recurse(a.argument),this["unary"+a.operator](g,b);case hf.BinaryExpression:return e=this.recurse(a.left),g=this.recurse(a.right),this["binary"+a.operator](e,g,b);case hf.LogicalExpression:return e=this.recurse(a.left),g=this.recurse(a.right),this["binary"+a.operator](e,g,b);case hf.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case hf.Identifier:return Wb(a.name,i.expression),i.identifier(a.name,i.expensiveChecks||kc(a.name),b,d,i.expression);case hf.MemberExpression:return e=this.recurse(a.object,!1,!!d),a.computed||(Wb(a.property.name,i.expression),g=a.property.name),a.computed&&(g=this.recurse(a.property)),a.computed?this.computedMember(e,g,b,d,i.expression):this.nonComputedMember(e,g,i.expensiveChecks,b,d,i.expression);case hf.CallExpression:return h=[],f(a.arguments,function(a){h.push(i.recurse(a))}),a.filter&&(g=this.$filter(a.callee.name)),a.filter||(g=this.recurse(a.callee,!0)),a.filter?function(a,d,e,f){for(var i=[],j=0;j<h.length;++j)i.push(h[j](a,d,e,f));var k=g.apply(c,i,f);return b?{context:c,name:c,value:k}:k}:function(a,c,d,e){var f,j=g(a,c,d,e);if(null!=j.value){Yb(j.context,i.expression),Zb(j.value,i.expression);for(var k=[],l=0;l<h.length;++l)k.push(Yb(h[l](a,c,d,e),i.expression));f=Yb(j.value.apply(j.context,k),i.expression)}return b?{value:f}:f};case hf.AssignmentExpression:return e=this.recurse(a.left,!0,1),g=this.recurse(a.right),function(a,c,d,f){var h=e(a,c,d,f),j=g(a,c,d,f);return Yb(h.value,i.expression),$b(h.context),h.context[h.name]=j,b?{value:j}:j};case hf.ArrayExpression:return h=[],f(a.elements,function(a){h.push(i.recurse(a))}),function(a,c,d,e){for(var f=[],g=0;g<h.length;++g)f.push(h[g](a,c,d,e));return b?{value:f}:f};case hf.ObjectExpression:return h=[],f(a.properties,function(a){h.push({key:a.key.type===hf.Identifier?a.key.name:""+a.key.value,value:i.recurse(a.value)})}),function(a,c,d,e){for(var f={},g=0;g<h.length;++g)f[h[g].key]=h[g].value(a,c,d,e);return b?{value:f}:f};case hf.ThisExpression:return function(a){return b?{value:a}:a};case hf.NGValueParameter:return function(a,c,d,e){return b?{value:d}:d}}},"unary+":function(a,b){return function(c,d,e,f){var g=a(c,d,e,f);return g=u(g)?+g:0,b?{value:g}:g}},"unary-":function(a,b){return function(c,d,e,f){var g=a(c,d,e,f);return g=u(g)?-g:0,b?{value:g}:g}},"unary!":function(a,b){return function(c,d,e,f){var g=!a(c,d,e,f);return b?{value:g}:g}},"binary+":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g),i=b(d,e,f,g),j=ac(h,i);return c?{value:j}:j}},"binary-":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g),i=b(d,e,f,g),j=(u(h)?h:0)-(u(i)?i:0);return c?{value:j}:j}},"binary*":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)*b(d,e,f,g);return c?{value:h}:h}},"binary/":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)/b(d,e,f,g);return c?{value:h}:h}},"binary%":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)%b(d,e,f,g);return c?{value:h}:h}},"binary===":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)===b(d,e,f,g);return c?{value:h}:h}},"binary!==":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)!==b(d,e,f,g);return c?{value:h}:h}},"binary==":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)==b(d,e,f,g);return c?{value:h}:h}},"binary!=":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)!=b(d,e,f,g);return c?{value:h}:h}},"binary<":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)<b(d,e,f,g);return c?{value:h}:h}},"binary>":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)>b(d,e,f,g);return c?{value:h}:h}},"binary<=":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)<=b(d,e,f,g);return c?{value:h}:h}},"binary>=":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)>=b(d,e,f,g);return c?{value:h}:h}},"binary&&":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)&&b(d,e,f,g);return c?{value:h}:h}},"binary||":function(a,b,c){return function(d,e,f,g){var h=a(d,e,f,g)||b(d,e,f,g);return c?{value:h}:h}},"ternary?:":function(a,b,c,d){return function(e,f,g,h){var i=a(e,f,g,h)?b(e,f,g,h):c(e,f,g,h);return d?{value:i}:i}},value:function(a,b){return function(){return b?{context:c,name:c,value:a}:a}},identifier:function(a,b,d,e,f){return function(g,h,i,j){var k=h&&a in h?h:g;e&&1!==e&&k&&!k[a]&&(k[a]={});var l=k?k[a]:c;return b&&Yb(l,f),d?{context:k,name:a,value:l}:l}},computedMember:function(a,b,c,d,e){return function(f,g,h,i){var j,k,l=a(f,g,h,i);return null!=l&&(j=b(f,g,h,i),j=Xb(j),Wb(j,e),d&&1!==d&&l&&!l[j]&&(l[j]={}),k=l[j],Yb(k,e)),c?{context:l,name:j,value:k}:k}},nonComputedMember:function(a,b,d,e,f,g){return function(h,i,j,k){var l=a(h,i,j,k);f&&1!==f&&l&&!l[b]&&(l[b]={});var m=null!=l?l[b]:c;return(d||kc(b))&&Yb(m,g),e?{context:l,name:b,value:m}:m}},inputs:function(a,b){return function(c,d,e,f){return f?f[b]:a(c,d,e)}}};var jf=function(a,b,c){this.lexer=a,this.$filter=b,this.options=c,this.ast=new hf(this.lexer),this.astCompiler=c.csp?new jc(this.ast,b):new ic(this.ast,b)};jf.prototype={constructor:jf,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};var kf=Object.prototype.valueOf,lf=d("$sce"),mf={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Le=d("$compile"),nf=b.createElement("a"),of=Bc(a.location.href);Ec.$inject=["$document"],Gc.$inject=["$provide"];var pf=22,qf=".",rf="0";Lc.$inject=["$locale"],Mc.$inject=["$locale"];var sf={yyyy:Rc("FullYear",4),yy:Rc("FullYear",2,0,!0),y:Rc("FullYear",1),MMMM:Sc("Month"),MMM:Sc("Month",!0),MM:Rc("Month",2,1),M:Rc("Month",1,1),dd:Rc("Date",2),d:Rc("Date",1),HH:Rc("Hours",2),H:Rc("Hours",1),hh:Rc("Hours",2,-12),h:Rc("Hours",1,-12),mm:Rc("Minutes",2),m:Rc("Minutes",1),ss:Rc("Seconds",2),s:Rc("Seconds",1),sss:Rc("Milliseconds",3),EEEE:Sc("Day"),EEE:Sc("Day",!0),a:Xc,Z:Tc,ww:Wc(2),w:Wc(1),G:Yc,GG:Yc,GGG:Yc,GGGG:Zc},tf=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,uf=/^\-?\d+$/;$c.$inject=["$locale"];var vf=r(yd),wf=r(Ad);bd.$inject=["$parse"];var xf=r({restrict:"E",compile:function(a,b){return b.href||b.xlinkHref?void 0:function(a,b){if("a"===b[0].nodeName.toLowerCase()){var c="[object SVGAnimatedString]"===Kd.call(b.prop("href"))?"xlink:href":"href";b.on("click",function(a){b.attr(c)||a.preventDefault()})}}}}),yf={};f(te,function(a,b){function c(a,c,e){a.$watch(e[d],function(a){e.$set(b,!!a)})}if("multiple"!=a){var d=lb("ng-"+b),e=c;"checked"===a&&(e=function(a,b,e){e.ngModel!==e[d]&&c(a,b,e)}),yf[d]=function(){return{restrict:"A",priority:100,link:e}}}}),f(ve,function(a,b){yf[b]=function(){return{priority:100,link:function(a,c,d){if("ngPattern"===b&&"/"==d.ngPattern.charAt(0)){var e=d.ngPattern.match(wd);if(e)return void d.$set("ngPattern",new RegExp(e[1],e[2]))}a.$watch(d[b],function(a){d.$set(b,a)})}}}}),f(["src","srcset","href"],function(a){var b=lb("ng-"+a);yf[b]=function(){return{priority:99,link:function(c,d,e){var f=a,g=a;"href"===a&&"[object SVGAnimatedString]"===Kd.call(d.prop("href"))&&(g="xlinkHref",e.$attr[g]="xlink:href",f=null),e.$observe(b,function(b){return b?(e.$set(g,b),void(Dd&&f&&d.prop(f,e[g]))):void("href"===a&&e.$set(g,null))})}}}});var zf={$addControl:p,$$renameControl:dd,$removeControl:p,$setValidity:p,$setDirty:p,$setPristine:p,$setSubmitted:p},Af="ng-submitted";ed.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Bf=function(a){return["$timeout","$parse",function(b,d){function e(a){return""===a?d('this[""]').assign:d(a).assign||p}var f={name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:ed,compile:function(d,f){d.addClass(hg).addClass(fg);var g=f.name?"name":a&&f.ngForm?"ngForm":!1;return{pre:function(a,d,f,h){var i=h[0];if(!("action"in f)){var j=function(b){a.$apply(function(){i.$commitViewValue(),i.$setSubmitted()}),b.preventDefault()};ge(d[0],"submit",j),d.on("$destroy",function(){b(function(){he(d[0],"submit",j)},0,!1)})}var k=h[1]||i.$$parentForm;k.$addControl(i);var m=g?e(i.$name):p;g&&(m(a,i),f.$observe(g,function(b){i.$name!==b&&(m(a,c),i.$$parentForm.$$renameControl(i,b),(m=e(i.$name))(a,i))})),d.on("$destroy",function(){i.$$parentForm.$removeControl(i),m(a,c),l(i,zf)})}}}};return f}]},Cf=Bf(),Df=Bf(!0),Ef=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,Ff=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,Gf=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Hf=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,If=/^(\d{4})-(\d{2})-(\d{2})$/,Jf=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Kf=/^(\d{4})-W(\d\d)$/,Lf=/^(\d{4})-(\d\d)$/,Mf=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Nf={text:gd,date:kd("date",If,jd(If,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":kd("datetimelocal",Jf,jd(Jf,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:kd("time",Mf,jd(Mf,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:kd("week",Kf,id,"yyyy-Www"),month:kd("month",Lf,jd(Lf,["yyyy","MM"]),"yyyy-MM"),number:md,url:nd,email:od,radio:pd,checkbox:rd,hidden:p,button:p,submit:p,reset:p,file:p},Of=["$browser","$sniffer","$filter","$parse",function(a,b,c,d){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,h){h[0]&&(Nf[yd(g.type)]||Nf.text)(e,f,g,h[0],b,a,c,d)}}}}],Pf=/^(true|false|\d+)$/,Qf=function(){return{restrict:"A",priority:100,compile:function(a,b){return Pf.test(b.ngValue)?function(a,b,c){c.$set("value",a.$eval(c.ngValue))}:function(a,b,c){a.$watch(c.ngValue,function(a){c.$set("value",a)})}}}},Rf=["$compile",function(a){return{restrict:"AC",compile:function(b){return a.$$addBindingClass(b),function(b,c,d){a.$$addBindingInfo(c,d.ngBind),c=c[0],b.$watch(d.ngBind,function(a){c.textContent=t(a)?"":a})}}}}],Sf=["$interpolate","$compile",function(a,b){return{compile:function(c){return b.$$addBindingClass(c),function(c,d,e){var f=a(d.attr(e.$attr.ngBindTemplate));b.$$addBindingInfo(d,f.expressions),d=d[0],e.$observe("ngBindTemplate",function(a){d.textContent=t(a)?"":a})}}}}],Tf=["$sce","$parse","$compile",function(a,b,c){return{restrict:"A",compile:function(d,e){var f=b(e.ngBindHtml),g=b(e.ngBindHtml,function(a){return(a||"").toString()});return c.$$addBindingClass(d),function(b,d,e){c.$$addBindingInfo(d,e.ngBindHtml),b.$watch(g,function(){d.html(a.getTrustedHtml(f(b))||"")})}}}}],Uf=r({restrict:"A",require:"ngModel",link:function(a,b,c,d){d.$viewChangeListeners.push(function(){a.$eval(c.ngChange)})}}),Vf=sd("",!0),Wf=sd("Odd",0),Xf=sd("Even",1),Yf=cd({compile:function(a,b){b.$set("ngCloak",c),a.removeClass("ng-cloak")}}),Zf=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],$f={},_f={blur:!0,focus:!0};f("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var b=lb("ng-"+a);$f[b]=["$parse","$rootScope",function(c,d){return{restrict:"A",compile:function(e,f){var g=c(f[b],null,!0);return function(b,c){c.on(a,function(c){var e=function(){g(b,{$event:c})};_f[a]&&d.$$phase?b.$evalAsync(e):b.$apply(e)})}}}}]});var ag=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,i,j;c.$watch(e.ngIf,function(c){c?i||g(function(c,f){i=f,c[c.length++]=b.createComment(" end ngIf: "+e.ngIf+" "),h={clone:c},a.enter(c,d.parent(),d)}):(j&&(j.remove(),j=null),i&&(i.$destroy(),i=null),h&&(j=pa(h.clone),a.leave(j).then(function(){j=null}),h=null))})}}}],bg=["$templateRequest","$anchorScroll","$animate",function(a,b,c){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Nd.noop,compile:function(d,e){var f=e.ngInclude||e.src,g=e.onload||"",h=e.autoscroll;return function(d,e,i,j,k){var l,m,n,o=0,p=function(){m&&(m.remove(),m=null),l&&(l.$destroy(),l=null),n&&(c.leave(n).then(function(){m=null}),m=n,n=null)};d.$watch(f,function(f){var i=function(){!u(h)||h&&!d.$eval(h)||b()},m=++o;f?(a(f,!0).then(function(a){if(!d.$$destroyed&&m===o){var b=d.$new();j.template=a;var h=k(b,function(a){p(),c.enter(a,null,e).then(i)});l=b,n=h,l.$emit("$includeContentLoaded",f),d.$eval(g)}},function(){d.$$destroyed||m===o&&(p(),d.$emit("$includeContentError",f))}),d.$emit("$includeContentRequested",f)):(p(),j.template=null)})}}}}],cg=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){return/SVG/.test(d[0].toString())?(d.empty(),void a(Aa(f.template,b).childNodes)(c,function(a){d.append(a)},{futureParentElement:d})):(d.html(f.template),void a(d.contents())(c))}}}],dg=cd({priority:450,compile:function(){return{pre:function(a,b,c){a.$eval(c.ngInit)}}}}),eg=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,e){var g=b.attr(d.$attr.ngList)||", ",h="false"!==d.ngTrim,i=h?Sd(g):g,j=function(a){
+if(!t(a)){var b=[];return a&&f(a.split(i),function(a){a&&b.push(h?Sd(a):a)}),b}};e.$parsers.push(j),e.$formatters.push(function(a){return Qd(a)?a.join(g):c}),e.$isEmpty=function(a){return!a||!a.length}}}},fg="ng-valid",gg="ng-invalid",hg="ng-pristine",ig="ng-dirty",jg="ng-untouched",kg="ng-touched",lg="ng-pending",mg=d("ngModel"),ng=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,b,d,e,g,h,i,j,k,l){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=c,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=c,this.$name=l(d.name||"",!1)(a),this.$$parentForm=zf;var m,n=g(d.ngModel),o=n.assign,q=n,r=o,s=null,v=this;this.$$setOptions=function(a){if(v.$options=a,a&&a.getterSetter){var b=g(d.ngModel+"()"),c=g(d.ngModel+"($$$p)");q=function(a){var c=n(a);return A(c)&&(c=b(a)),c},r=function(a,b){A(n(a))?c(a,{$$$p:v.$modelValue}):o(a,v.$modelValue)}}else if(!n.assign)throw mg("nonassign","Expression '{0}' is non-assignable. Element: {1}",d.ngModel,$(e))},this.$render=p,this.$isEmpty=function(a){return t(a)||""===a||null===a||a!==a};var w=0;td({ctrl:this,$element:e,set:function(a,b){a[b]=!0},unset:function(a,b){delete a[b]},$animate:h}),this.$setPristine=function(){v.$dirty=!1,v.$pristine=!0,h.removeClass(e,ig),h.addClass(e,hg)},this.$setDirty=function(){v.$dirty=!0,v.$pristine=!1,h.removeClass(e,hg),h.addClass(e,ig),v.$$parentForm.$setDirty()},this.$setUntouched=function(){v.$touched=!1,v.$untouched=!0,h.setClass(e,jg,kg)},this.$setTouched=function(){v.$touched=!0,v.$untouched=!1,h.setClass(e,kg,jg)},this.$rollbackViewValue=function(){i.cancel(s),v.$viewValue=v.$$lastCommittedViewValue,v.$render()},this.$validate=function(){if(!y(v.$modelValue)||!isNaN(v.$modelValue)){var a=v.$$lastCommittedViewValue,b=v.$$rawModelValue,d=v.$valid,e=v.$modelValue,f=v.$options&&v.$options.allowInvalid;v.$$runValidators(b,a,function(a){f||d===a||(v.$modelValue=a?b:c,v.$modelValue!==e&&v.$$writeModelToScope())})}},this.$$runValidators=function(a,b,d){function e(){var a=v.$$parserName||"parse";return t(m)?(i(a,null),!0):(m||(f(v.$validators,function(a,b){i(b,null)}),f(v.$asyncValidators,function(a,b){i(b,null)})),i(a,m),m)}function g(){var c=!0;return f(v.$validators,function(d,e){var f=d(a,b);c=c&&f,i(e,f)}),c?!0:(f(v.$asyncValidators,function(a,b){i(b,null)}),!1)}function h(){var d=[],e=!0;f(v.$asyncValidators,function(f,g){var h=f(a,b);if(!I(h))throw mg("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",h);i(g,c),d.push(h.then(function(){i(g,!0)},function(a){e=!1,i(g,!1)}))}),d.length?k.all(d).then(function(){j(e)},p):j(!0)}function i(a,b){l===w&&v.$setValidity(a,b)}function j(a){l===w&&d(a)}w++;var l=w;return e()&&g()?void h():void j(!1)},this.$commitViewValue=function(){var a=v.$viewValue;i.cancel(s),(v.$$lastCommittedViewValue!==a||""===a&&v.$$hasNativeValidators)&&(v.$$lastCommittedViewValue=a,v.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function b(){v.$modelValue!==g&&v.$$writeModelToScope()}var d=v.$$lastCommittedViewValue,e=d;if(m=t(e)?c:!0)for(var f=0;f<v.$parsers.length;f++)if(e=v.$parsers[f](e),t(e)){m=!1;break}y(v.$modelValue)&&isNaN(v.$modelValue)&&(v.$modelValue=q(a));var g=v.$modelValue,h=v.$options&&v.$options.allowInvalid;v.$$rawModelValue=e,h&&(v.$modelValue=e,b()),v.$$runValidators(e,v.$$lastCommittedViewValue,function(a){h||(v.$modelValue=a?e:c,b())})},this.$$writeModelToScope=function(){r(a,v.$modelValue),f(v.$viewChangeListeners,function(a){try{a()}catch(c){b(c)}})},this.$setViewValue=function(a,b){v.$viewValue=a,v.$options&&!v.$options.updateOnDefault||v.$$debounceViewValueCommit(b)},this.$$debounceViewValueCommit=function(b){var c,d=0,e=v.$options;e&&u(e.debounce)&&(c=e.debounce,y(c)?d=c:y(c[b])?d=c[b]:y(c["default"])&&(d=c["default"])),i.cancel(s),d?s=i(function(){v.$commitViewValue()},d):j.$$phase?v.$commitViewValue():a.$apply(function(){v.$commitViewValue()})},a.$watch(function(){var b=q(a);if(b!==v.$modelValue&&(v.$modelValue===v.$modelValue||b===b)){v.$modelValue=v.$$rawModelValue=b,m=c;for(var d=v.$formatters,e=d.length,f=b;e--;)f=d[e](f);v.$viewValue!==f&&(v.$viewValue=v.$$lastCommittedViewValue=f,v.$render(),v.$$runValidators(b,f,p))}return b})}],og=["$rootScope",function(a){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:ng,priority:1,compile:function(b){return b.addClass(hg).addClass(jg).addClass(fg),{pre:function(a,b,c,d){var e=d[0],f=d[1]||e.$$parentForm;e.$$setOptions(d[2]&&d[2].$options),f.$addControl(e),c.$observe("name",function(a){e.$name!==a&&e.$$parentForm.$$renameControl(e,a)}),a.$on("$destroy",function(){e.$$parentForm.$removeControl(e)})},post:function(b,c,d,e){var f=e[0];f.$options&&f.$options.updateOn&&c.on(f.$options.updateOn,function(a){f.$$debounceViewValueCommit(a&&a.type)}),c.on("blur",function(c){f.$touched||(a.$$phase?b.$evalAsync(f.$setTouched):b.$apply(f.$setTouched))})}}}}}],pg=/(\s+|^)default(\s+|$)/,qg=function(){return{restrict:"A",controller:["$scope","$attrs",function(a,b){var c=this;this.$options=O(a.$eval(b.ngModelOptions)),u(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=Sd(this.$options.updateOn.replace(pg,function(){return c.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},rg=cd({terminal:!0,priority:1e3}),sg=d("ngOptions"),tg=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,ug=["$compile","$parse",function(a,c){function d(a,b,d){function f(a,b,c,d,e){this.selectValue=a,this.viewValue=b,this.label=c,this.group=d,this.disabled=e}function g(a){var b;if(!j&&e(a))b=a;else{b=[];for(var c in a)a.hasOwnProperty(c)&&"$"!==c.charAt(0)&&b.push(c)}return b}var h=a.match(tg);if(!h)throw sg("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",a,$(b));var i=h[5]||h[7],j=h[6],k=/ as /.test(h[0])&&h[1],l=h[9],m=c(h[2]?h[1]:i),n=k&&c(k),o=n||m,p=l&&c(l),q=l?function(a,b){return p(d,b)}:function(a){return Ya(a)},r=function(a,b){return q(a,x(a,b))},s=c(h[2]||h[1]),t=c(h[3]||""),u=c(h[4]||""),v=c(h[8]),w={},x=j?function(a,b){return w[j]=b,w[i]=a,w}:function(a){return w[i]=a,w};return{trackBy:l,getTrackByValue:r,getWatchables:c(v,function(a){var b=[];a=a||[];for(var c=g(a),e=c.length,f=0;e>f;f++){var i=a===c?f:c[f],j=(a[i],x(a[i],i)),k=q(a[i],j);if(b.push(k),h[2]||h[1]){var l=s(d,j);b.push(l)}if(h[4]){var m=u(d,j);b.push(m)}}return b}),getOptions:function(){for(var a=[],b={},c=v(d)||[],e=g(c),h=e.length,i=0;h>i;i++){var j=c===e?i:e[i],k=c[j],m=x(k,j),n=o(d,m),p=q(n,m),w=s(d,m),y=t(d,m),z=u(d,m),A=new f(p,n,w,y,z);a.push(A),b[p]=A}return{items:a,selectValueMap:b,getOptionFromViewValue:function(a){return b[r(a)]},getViewValueFromOption:function(a){return l?Nd.copy(a.viewValue):a.viewValue}}}}}function g(b,c,e,g){function j(a,b){a.element=b,b.disabled=a.disabled,a.label!==b.label&&(b.label=a.label,b.textContent=a.label),a.value!==b.value&&(b.value=a.selectValue)}function k(a,b,c,d){var e;return b&&yd(b.nodeName)===c?e=b:(e=d.cloneNode(!1),b?a.insertBefore(e,b):a.appendChild(e)),e}function l(a){for(var b;a;)b=a.nextSibling,Qa(a),a=b}function m(a){var b=p&&p[0],c=w&&w[0];if(b||c)for(;a&&(a===b||a===c||a.nodeType===ae||"option"===M(a)&&""===a.value);)a=a.nextSibling;return a}function n(){var a=x&&q.readValue();x=y.getOptions();var b={},d=c[0].firstChild;if(v&&c.prepend(p),d=m(d),x.items.forEach(function(a){var e,f,g;a.group?(e=b[a.group],e||(f=k(c[0],d,"optgroup",i),d=f.nextSibling,f.label=a.group,e=b[a.group]={groupElement:f,currentOptionElement:f.firstChild}),g=k(e.groupElement,e.currentOptionElement,"option",h),j(a,g),e.currentOptionElement=g.nextSibling):(g=k(c[0],d,"option",h),j(a,g),d=g.nextSibling)}),Object.keys(b).forEach(function(a){l(b[a].currentOptionElement)}),l(d),o.$render(),!o.$isEmpty(a)){var e=q.readValue(),f=y.trackBy||r;(f?Q(a,e):a===e)||(o.$setViewValue(e),o.$render())}}var o=g[1];if(o){for(var p,q=g[0],r=e.multiple,s=0,t=c.children(),u=t.length;u>s;s++)if(""===t[s].value){p=t.eq(s);break}var v=!!p,w=Ed(h.cloneNode(!1));w.val("?");var x,y=d(e.ngOptions,c,b),z=function(){v||c.prepend(p),c.val(""),p.prop("selected",!0),p.attr("selected",!0)},A=function(){v||p.remove()},B=function(){c.prepend(w),c.val("?"),w.prop("selected",!0),w.attr("selected",!0)},C=function(){w.remove()};r?(o.$isEmpty=function(a){return!a||0===a.length},q.writeValue=function(a){x.items.forEach(function(a){a.element.selected=!1}),a&&a.forEach(function(a){var b=x.getOptionFromViewValue(a);b&&!b.disabled&&(b.element.selected=!0)})},q.readValue=function(){var a=c.val()||[],b=[];return f(a,function(a){var c=x.selectValueMap[a];c&&!c.disabled&&b.push(x.getViewValueFromOption(c))}),b},y.trackBy&&b.$watchCollection(function(){return Qd(o.$viewValue)?o.$viewValue.map(function(a){return y.getTrackByValue(a)}):void 0},function(){o.$render()})):(q.writeValue=function(a){var b=x.getOptionFromViewValue(a);b&&!b.disabled?c[0].value!==b.selectValue&&(C(),A(),c[0].value=b.selectValue,b.element.selected=!0,b.element.setAttribute("selected","selected")):null===a||v?(C(),z()):(A(),B())},q.readValue=function(){var a=x.selectValueMap[c.val()];return a&&!a.disabled?(A(),C(),x.getViewValueFromOption(a)):null},y.trackBy&&b.$watch(function(){return y.getTrackByValue(o.$viewValue)},function(){o.$render()})),v?(p.remove(),a(p)(b),p.removeClass("ng-scope")):p=Ed(h.cloneNode(!1)),n(),b.$watchCollection(y.getWatchables,n)}}var h=b.createElement("option"),i=b.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","?ngModel"],link:{pre:function(a,b,c,d){d[0].registerOption=p},post:g}}}],vg=["$locale","$interpolate","$log",function(a,b,c){var d=/{}/g,e=/^when(Minus)?(.+)$/;return{link:function(g,h,i){function j(a){h.text(a||"")}var k,l=i.count,m=i.$attr.when&&h.attr(i.$attr.when),n=i.offset||0,o=g.$eval(m)||{},q={},r=b.startSymbol(),s=b.endSymbol(),u=r+l+"-"+n+s,v=Nd.noop;f(i,function(a,b){var c=e.exec(b);if(c){var d=(c[1]?"-":"")+yd(c[2]);o[d]=h.attr(i.$attr[b])}}),f(o,function(a,c){q[c]=b(a.replace(d,u))}),g.$watch(l,function(b){var d=parseFloat(b),e=isNaN(d);if(e||d in o||(d=a.pluralCat(d-n)),d!==k&&!(e&&y(k)&&isNaN(k))){v();var f=q[d];t(f)?(null!=b&&c.debug("ngPluralize: no rule defined for '"+d+"' in "+m),v=p,j()):v=g.$watch(f,j),k=d}})}}}],wg=["$parse","$animate",function(a,g){var h="$$NG_REMOVED",i=d("ngRepeat"),j=function(a,b,c,d,e,f,g){a[c]=d,e&&(a[e]=f),a.$index=b,a.$first=0===b,a.$last=b===g-1,a.$middle=!(a.$first||a.$last),a.$odd=!(a.$even=0===(1&b))},k=function(a){return a.clone[0]},l=function(a){return a.clone[a.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(d,m){var n=m.ngRepeat,o=b.createComment(" end ngRepeat: "+n+" "),p=n.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!p)throw i("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",n);var q=p[1],r=p[2],s=p[3],t=p[4];if(p=q.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!p)throw i("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",q);var u=p[3]||p[1],v=p[2];if(s&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(s)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(s)))throw i("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",s);var w,x,y,z,A={$id:Ya};return t?w=a(t):(y=function(a,b){return Ya(b)},z=function(a){return a}),function(a,b,d,m,p){w&&(x=function(b,c,d){return v&&(A[v]=b),A[u]=c,A.$index=d,w(a,A)});var q=qa();a.$watchCollection(r,function(d){var m,r,t,w,A,B,C,D,E,F,G,H,I=b[0],J=qa();if(s&&(a[s]=d),e(d))E=d,D=x||y;else{D=x||z,E=[];for(var K in d)zd.call(d,K)&&"$"!==K.charAt(0)&&E.push(K)}for(w=E.length,G=new Array(w),m=0;w>m;m++)if(A=d===E?m:E[m],B=d[A],C=D(A,B,m),q[C])F=q[C],delete q[C],J[C]=F,G[m]=F;else{if(J[C])throw f(G,function(a){a&&a.scope&&(q[a.id]=a)}),i("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",n,C,B);G[m]={id:C,scope:c,clone:c},J[C]=!0}for(var L in q){if(F=q[L],H=pa(F.clone),g.leave(H),H[0].parentNode)for(m=0,r=H.length;r>m;m++)H[m][h]=!0;F.scope.$destroy()}for(m=0;w>m;m++)if(A=d===E?m:E[m],B=d[A],F=G[m],F.scope){t=I;do t=t.nextSibling;while(t&&t[h]);k(F)!=t&&g.move(pa(F.clone),null,Ed(I)),I=l(F),j(F.scope,m,u,B,v,A,w)}else p(function(a,b){F.scope=b;var c=o.cloneNode(!1);a[a.length++]=c,g.enter(a,null,Ed(I)),I=c,F.clone=a,J[F.id]=F,j(F.scope,m,u,B,v,A,w)});q=J})}}}}],xg="ng-hide",yg="ng-hide-animate",zg=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,c,d){b.$watch(d.ngShow,function(b){a[b?"removeClass":"addClass"](c,xg,{tempClasses:yg})})}}}],Ag=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,c,d){b.$watch(d.ngHide,function(b){a[b?"addClass":"removeClass"](c,xg,{tempClasses:yg})})}}}],Bg=cd(function(a,b,c){a.$watch(c.ngStyle,function(a,c){c&&a!==c&&f(c,function(a,c){b.css(c,"")}),a&&b.css(a)},!0)}),Cg=["$animate",function(a){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(c,d,e,g){var h=e.ngSwitch||e.on,i=[],j=[],k=[],l=[],m=function(a,b){return function(){a.splice(b,1)}};c.$watch(h,function(c){var d,e;for(d=0,e=k.length;e>d;++d)a.cancel(k[d]);for(k.length=0,d=0,e=l.length;e>d;++d){var h=pa(j[d].clone);l[d].$destroy();var n=k[d]=a.leave(h);n.then(m(k,d))}j.length=0,l.length=0,(i=g.cases["!"+c]||g.cases["?"])&&f(i,function(c){c.transclude(function(d,e){l.push(e);var f=c.element;d[d.length++]=b.createComment(" end ngSwitchWhen: ");var g={clone:d};j.push(g),a.enter(d,f.parent(),f)})})})}}}],Dg=cd({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,c,d,e){d.cases["!"+c.ngSwitchWhen]=d.cases["!"+c.ngSwitchWhen]||[],d.cases["!"+c.ngSwitchWhen].push({transclude:e,element:b})}}),Eg=cd({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,c,d,e){d.cases["?"]=d.cases["?"]||[],d.cases["?"].push({transclude:e,element:b})}}),Fg=cd({restrict:"EAC",link:function(a,b,c,e,f){if(!f)throw d("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",$(b));f(function(a){b.empty(),b.append(a)})}}),Gg=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(b,c){if("text/ng-template"==c.type){var d=c.id,e=b[0].text;a.put(d,e)}}}}],Hg={$setViewValue:p,$render:p},Ig=["$element","$scope","$attrs",function(a,d,e){var f=this,g=new Za;f.ngModelCtrl=Hg,f.unknownOption=Ed(b.createElement("option")),f.renderUnknownOption=function(b){var c="? "+Ya(b)+" ?";f.unknownOption.val(c),a.prepend(f.unknownOption),a.val(c)},d.$on("$destroy",function(){f.renderUnknownOption=p}),f.removeUnknownOption=function(){f.unknownOption.parent()&&f.unknownOption.remove()},f.readValue=function(){return f.removeUnknownOption(),a.val()},f.writeValue=function(b){f.hasOption(b)?(f.removeUnknownOption(),a.val(b),""===b&&f.emptyOption.prop("selected",!0)):null==b&&f.emptyOption?(f.removeUnknownOption(),a.val("")):f.renderUnknownOption(b)},f.addOption=function(a,b){na(a,'"option value"'),""===a&&(f.emptyOption=b);var c=g.get(a)||0;g.put(a,c+1),f.ngModelCtrl.$render(),vd(b)},f.removeOption=function(a){var b=g.get(a);b&&(1===b?(g.remove(a),""===a&&(f.emptyOption=c)):g.put(a,b-1))},f.hasOption=function(a){return!!g.get(a)},f.registerOption=function(a,b,c,d,e){if(d){var g;c.$observe("value",function(a){u(g)&&f.removeOption(g),g=a,f.addOption(a,b)})}else e?a.$watch(e,function(a,d){c.$set("value",a),d!==a&&f.removeOption(d),f.addOption(a,b)}):f.addOption(c.value,b);b.on("$destroy",function(){f.removeOption(c.value),f.ngModelCtrl.$render()})}}],Jg=function(){function a(a,b,c,d){var e=d[1];if(e){var g=d[0];if(g.ngModelCtrl=e,b.on("change",function(){a.$apply(function(){e.$setViewValue(g.readValue())})}),c.multiple){g.readValue=function(){var a=[];return f(b.find("option"),function(b){b.selected&&a.push(b.value)}),a},g.writeValue=function(a){var c=new Za(a);f(b.find("option"),function(a){a.selected=u(c.get(a.value))})};var h,i=NaN;a.$watch(function(){i!==e.$viewValue||Q(h,e.$viewValue)||(h=P(e.$viewValue),e.$render()),i=e.$viewValue}),e.$isEmpty=function(a){return!a||0===a.length}}}}function b(a,b,c,d){var e=d[1];if(e){var f=d[0];e.$render=function(){f.writeValue(e.$viewValue)}}}return{restrict:"E",require:["select","?ngModel"],controller:Ig,priority:1,link:{pre:a,post:b}}},Kg=["$interpolate",function(a){return{restrict:"E",priority:100,compile:function(b,c){if(u(c.value))var d=a(c.value,!0);else{var e=a(b.text(),!0);e||c.$set("value",b.text())}return function(a,b,c){var f="$selectController",g=b.parent(),h=g.data(f)||g.parent().data(f);h&&h.registerOption(a,b,c,d,e)}}}}],Lg=r({restrict:"E",terminal:!1}),Mg=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,c,d){d&&(c.required=!0,d.$validators.required=function(a,b){return!c.required||!d.$isEmpty(b)},c.$observe("required",function(){d.$validate()}))}}},Ng=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,e,f){if(f){var g,h=e.ngPattern||e.pattern;e.$observe("pattern",function(a){if(x(a)&&a.length>0&&(a=new RegExp("^"+a+"$")),a&&!a.test)throw d("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",h,a,$(b));g=a||c,f.$validate()}),f.$validators.pattern=function(a,b){return f.$isEmpty(b)||t(g)||g.test(b)}}}}},Og=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,c,d){if(d){var e=-1;c.$observe("maxlength",function(a){var b=n(a);e=isNaN(b)?-1:b,d.$validate()}),d.$validators.maxlength=function(a,b){return 0>e||d.$isEmpty(b)||b.length<=e}}}}},Pg=function(){return{restrict:"A",require:"?ngModel",link:function(a,b,c,d){if(d){var e=0;c.$observe("minlength",function(a){e=n(a)||0,d.$validate()}),d.$validators.minlength=function(a,b){return d.$isEmpty(b)||b.length>=e}}}}};return a.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(ka(),ua(Nd),Nd.module("ngLocale",[],["$provide",function(a){function b(a){a+="";var b=a.indexOf(".");return-1==b?0:a.length-b-1}function d(a,d){var e=d;c===e&&(e=Math.min(b(a),3));var f=Math.pow(10,e),g=(a*f|0)%f;return{v:e,f:g}}var e={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",pluralCat:function(a,b){var c=0|a,f=d(a,b);return 1==c&&0==f.v?e.ONE:e.OTHER}})}]),void Ed(b).ready(function(){fa(b,ga)}))}(window,document),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'),function(a,b,c){"use strict";function d(a,b,c){if(!a)throw pa("areq","Argument '{0}' is {1}",b||"?",c||"required");return a}function e(a,b){return a||b?a?b?(R(a)&&(a=a.join(" ")),R(b)&&(b=b.join(" ")),a+" "+b):a:b:""}function f(a){var b={};return a&&(a.to||a.from)&&(b.to=a.to,b.from=a.from),b}function g(a,b,c){var d="";return a=R(a)?a:a&&S(a)&&a.length?a.split(/\s+/):[],Q(a,function(a,e){a&&a.length>0&&(d+=e>0?" ":"",d+=c?b+a:a+b)}),d}function h(a,b){var c=a.indexOf(b);b>=0&&a.splice(c,1)}function i(a){if(a instanceof P)switch(a.length){case 0:return[];case 1:if(a[0].nodeType===Y)return a;break;default:return P(j(a))}return a.nodeType===Y?P(a):void 0}function j(a){if(!a[0])return a;for(var b=0;b<a.length;b++){var c=a[b];if(c.nodeType==Y)return c}}function k(a,b,c){Q(b,function(b){a.addClass(b,c)})}function l(a,b,c){Q(b,function(b){a.removeClass(b,c)})}function m(a){return function(b,c){c.addClass&&(k(a,b,c.addClass),c.addClass=null),c.removeClass&&(l(a,b,c.removeClass),c.removeClass=null)}}function n(a){if(a=a||{},!a.$$prepared){var b=a.domOperation||M;a.domOperation=function(){a.$$domOperationFired=!0,b(),b=M},a.$$prepared=!0}return a}function o(a,b){p(a,b),q(a,b)}function p(a,b){b.from&&(a.css(b.from),b.from=null)}function q(a,b){b.to&&(a.css(b.to),b.to=null)}function r(a,b,c){var d=(b.addClass||"")+" "+(c.addClass||""),e=(b.removeClass||"")+" "+(c.removeClass||""),f=s(a.attr("class"),d,e);c.preparationClasses&&(b.preparationClasses=z(c.preparationClasses,b.preparationClasses),delete c.preparationClasses);var g=b.domOperation!==M?b.domOperation:null;return O(b,c),g&&(b.domOperation=g),f.addClass?b.addClass=f.addClass:b.addClass=null,f.removeClass?b.removeClass=f.removeClass:b.removeClass=null,b}function s(a,b,c){function d(a){S(a)&&(a=a.split(" "));var b={};return Q(a,function(a){a.length&&(b[a]=!0)}),b}var e=1,f=-1,g={};a=d(a),b=d(b),Q(b,function(a,b){g[b]=e}),c=d(c),Q(c,function(a,b){g[b]=g[b]===e?null:f});var h={addClass:"",removeClass:""};return Q(g,function(b,c){var d,g;b===e?(d="addClass",g=!a[c]):b===f&&(d="removeClass",g=a[c]),g&&(h[d].length&&(h[d]+=" "),h[d]+=c)}),h}function t(a){return a instanceof b.element?a[0]:a}function u(a,b,c){var d="";b&&(d=g(b,_,!0)),c.addClass&&(d=z(d,g(c.addClass,Z))),c.removeClass&&(d=z(d,g(c.removeClass,$))),d.length&&(c.preparationClasses=d,a.addClass(d))}function v(a,b){b.preparationClasses&&(a.removeClass(b.preparationClasses),b.preparationClasses=null),b.activeClasses&&(a.removeClass(b.activeClasses),b.activeClasses=null)}function w(a,b){var c=b?"-"+b+"s":"";return y(a,[na,c]),[na,c]}function x(a,b){var c=b?"paused":"",d=K+ja;return y(a,[d,c]),[d,c]}function y(a,b){var c=b[0],d=b[1];a.style[c]=d}function z(a,b){return a?b?a+" "+b:a:b}function A(a){return[ma,a+"s"]}function B(a,b){var c=b?la:na;return[c,a+"s"]}function C(a,b,c){var d=Object.create(null),e=a.getComputedStyle(b)||{};return Q(c,function(a,b){var c=e[a];if(c){var f=c.charAt(0);("-"===f||"+"===f||f>=0)&&(c=D(c)),0===c&&(c=null),d[b]=c}}),d}function D(a){var b=0,c=a.split(/\s*,\s*/);return Q(c,function(a){"s"==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)),a=parseFloat(a)||0,b=b?Math.max(a,b):a}),b}function E(a){return 0===a||null!=a}function F(a,b){var c=I,d=a+"s";return b?c+=ea:d+=" linear all",[c,d]}function G(){var a=Object.create(null);return{flush:function(){a=Object.create(null)},count:function(b){var c=a[b];return c?c.total:0},get:function(b){var c=a[b];return c&&c.value},put:function(b,c){a[b]?a[b].total++:a[b]={total:1,value:c}}}}function H(a,b,c){Q(c,function(c){a[c]=V(a[c])?a[c]:b.style.getPropertyValue(c)})}var I,J,K,L,M=b.noop,N=b.copy,O=b.extend,P=b.element,Q=b.forEach,R=b.isArray,S=b.isString,T=b.isObject,U=b.isUndefined,V=b.isDefined,W=b.isFunction,X=b.isElement,Y=1,Z="-add",$="-remove",_="ng-",aa="-active",ba="ng-animate",ca="$$ngAnimateChildren",da="";U(a.ontransitionend)&&V(a.onwebkittransitionend)?(da="-webkit-",I="WebkitTransition",J="webkitTransitionEnd transitionend"):(I="transition",J="transitionend"),U(a.onanimationend)&&V(a.onwebkitanimationend)?(da="-webkit-",K="WebkitAnimation",L="webkitAnimationEnd animationend"):(K="animation",L="animationend");var ea="Duration",fa="Property",ga="Delay",ha="TimingFunction",ia="IterationCount",ja="PlayState",ka=9999,la=K+ga,ma=K+ea,na=I+ga,oa=I+ea,pa=b.$$minErr("ng"),qa=["$$rAF",function(a){function b(a){d=d.concat(a),c()}function c(){if(d.length){for(var b=d.shift(),f=0;f<b.length;f++)b[f]();e||a(function(){e||c()})}}var d,e;return d=b.queue=[],b.waitUntilQuiet=function(b){e&&e(),e=a(function(){e=null,b(),c()})},b}],ra=[function(){return function(a,c,d){var e=d.ngAnimateChildren;b.isString(e)&&0===e.length?c.data(ca,!0):d.$observe("ngAnimateChildren",function(a){a="on"===a||"true"===a,c.data(ca,a)})}}],sa="$$animateCss",ta=1e3,ua=3,va=1.5,wa={transitionDuration:oa,transitionDelay:na,transitionProperty:I+fa,animationDuration:ma,animationDelay:la,animationIterationCount:K+ia},xa={transitionDuration:oa,transitionDelay:na,animationDuration:ma,animationDelay:la},ya=["$animateProvider",function(a){var b=G(),c=G();this.$get=["$window","$$jqLite","$$AnimateRunner","$timeout","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(a,d,e,i,j,k,l,r){function s(a,b){var c="$$ngAnimateParentKey",d=a.parentNode,e=d[c]||(d[c]=++O);return e+"-"+a.getAttribute("class")+"-"+b}function u(c,d,e,f){var g=b.get(e);return g||(g=C(a,c,f),"infinite"===g.animationIterationCount&&(g.animationIterationCount=1)),b.put(e,g),g}function v(e,f,h,i){var j;if(b.count(h)>0&&(j=c.get(h),!j)){var k=g(f,"-stagger");d.addClass(e,k),j=C(a,e,i),j.animationDuration=Math.max(j.animationDuration,0),j.transitionDuration=Math.max(j.transitionDuration,0),d.removeClass(e,k),c.put(h,j)}return j||{}}function z(a){P.push(a),l.waitUntilQuiet(function(){b.flush(),c.flush();for(var a=j(),d=0;d<P.length;d++)P[d](a);P.length=0})}function D(a,b,c){var d=u(a,b,c,wa),e=d.animationDelay,f=d.transitionDelay;return d.maxDelay=e&&f?Math.max(e,f):e||f,d.maxDuration=Math.max(d.animationDuration*d.animationIterationCount,d.transitionDuration),d}var G=m(d),O=0,P=[];return function(a,c){function j(){m()}function l(){m(!0)}function m(b){V||X&&W||(V=!0,W=!1,S.$$skipPreparationClasses||d.removeClass(a,wa),d.removeClass(a,za),x(U,!1),w(U,!1),Q(ja,function(a){U.style[a[0]]=""}),G(a,S),o(a,S),Object.keys(T).length&&Q(T,function(a,b){a?U.style.setProperty(b,a):U.style.removeProperty(b)}),S.onDone&&S.onDone(),na&&na.length&&a.off(na.join(" "),O),Y&&Y.complete(!b))}function u(a){Na.blockTransition&&w(U,a),Na.blockKeyframeAnimation&&x(U,!!a)}function C(){return Y=new e({end:j,cancel:l}),z(M),m(),{$$willAnimate:!1,start:function(){return Y},end:j}}function O(a){a.stopPropagation();var b=a.originalEvent||a,c=b.$manualTimeStamp||Date.now(),d=parseFloat(b.elapsedTime.toFixed(ua));Math.max(c-ia,0)>=da&&d>=ea&&(X=!0,m())}function P(){function b(){if(!V){if(u(!1),Q(ja,function(a){var b=a[0],c=a[1];U.style[b]=c}),G(a,S),d.addClass(a,za),Na.recalculateTimingStyles){if(ya=U.className+" "+wa,Ca=s(U,ya),La=D(U,ya,Ca),Ma=La.maxDelay,ca=Math.max(Ma,0),ea=La.maxDuration,0===ea)return void m();Na.hasTransitions=La.transitionDuration>0,Na.hasAnimations=La.animationDuration>0}if(Na.applyAnimationDelay&&(Ma="boolean"!=typeof S.delay&&E(S.delay)?parseFloat(S.delay):Ma,ca=Math.max(Ma,0),La.animationDelay=Ma,Oa=B(Ma,!0),ja.push(Oa),U.style[Oa[0]]=Oa[1]),da=ca*ta,ga=ea*ta,S.easing){var b,e=S.easing;Na.hasTransitions&&(b=I+ha,ja.push([b,e]),U.style[b]=e),Na.hasAnimations&&(b=K+ha,ja.push([b,e]),U.style[b]=e)}La.transitionDuration&&na.push(J),La.animationDuration&&na.push(L),ia=Date.now();var f=da+va*ga,g=ia+f,h=a.data(sa)||[],j=!0;if(h.length){var k=h[0];j=g>k.expectedEndTime,j?i.cancel(k.timer):h.push(m)}if(j){var l=i(c,f,!1);h[0]={timer:l,expectedEndTime:g},h.push(m),a.data(sa,h)}na.length&&a.on(na.join(" "),O),S.to&&(S.cleanupStyles&&H(T,U,Object.keys(S.to)),q(a,S))}}function c(){var b=a.data(sa);if(b){for(var c=1;c<b.length;c++)b[c]();a.removeData(sa)}}if(!V){if(!U.parentNode)return void m();var e=function(a){if(X)W&&a&&(W=!1,m());else if(W=!a,La.animationDuration){var b=x(U,W);W?ja.push(b):h(ja,b)}},f=Ja>0&&(La.transitionDuration&&0===Da.transitionDuration||La.animationDuration&&0===Da.animationDuration)&&Math.max(Da.animationDelay,Da.transitionDelay);f?i(b,Math.floor(f*Ja*ta),!1):b(),ba.resume=function(){e(!0)},ba.pause=function(){e(!1)}}}var S=c||{};S.$$prepared||(S=n(N(S)));var T={},U=t(a);if(!U||!U.parentNode||!r.enabled())return C();var V,W,X,Y,ba,ca,da,ea,ga,ia,ja=[],la=a.attr("class"),ma=f(S),na=[];if(0===S.duration||!k.animations&&!k.transitions)return C();var oa=S.event&&R(S.event)?S.event.join(" "):S.event,pa=oa&&S.structural,qa="",ra="";pa?qa=g(oa,_,!0):oa&&(qa=oa),S.addClass&&(ra+=g(S.addClass,Z)),S.removeClass&&(ra.length&&(ra+=" "),ra+=g(S.removeClass,$)),S.applyClassesEarly&&ra.length&&G(a,S);var wa=[qa,ra].join(" ").trim(),ya=la+" "+wa,za=g(wa,aa),Aa=ma.to&&Object.keys(ma.to).length>0,Ba=(S.keyframeStyle||"").length>0;if(!Ba&&!Aa&&!wa)return C();var Ca,Da;if(S.stagger>0){var Ea=parseFloat(S.stagger);Da={transitionDelay:Ea,animationDelay:Ea,transitionDuration:0,animationDuration:0}}else Ca=s(U,ya),Da=v(U,wa,Ca,xa);S.$$skipPreparationClasses||d.addClass(a,wa);var Fa;if(S.transitionStyle){var Ga=[I,S.transitionStyle];y(U,Ga),ja.push(Ga)}if(S.duration>=0){Fa=U.style[I].length>0;var Ha=F(S.duration,Fa);y(U,Ha),ja.push(Ha)}if(S.keyframeStyle){var Ia=[K,S.keyframeStyle];y(U,Ia),ja.push(Ia)}var Ja=Da?S.staggerIndex>=0?S.staggerIndex:b.count(Ca):0,Ka=0===Ja;Ka&&!S.skipBlocking&&w(U,ka);var La=D(U,ya,Ca),Ma=La.maxDelay;ca=Math.max(Ma,0),ea=La.maxDuration;var Na={};if(Na.hasTransitions=La.transitionDuration>0,Na.hasAnimations=La.animationDuration>0,Na.hasTransitionAll=Na.hasTransitions&&"all"==La.transitionProperty,Na.applyTransitionDuration=Aa&&(Na.hasTransitions&&!Na.hasTransitionAll||Na.hasAnimations&&!Na.hasTransitions),Na.applyAnimationDuration=S.duration&&Na.hasAnimations,Na.applyTransitionDelay=E(S.delay)&&(Na.applyTransitionDuration||Na.hasTransitions),Na.applyAnimationDelay=E(S.delay)&&Na.hasAnimations,Na.recalculateTimingStyles=ra.length>0,(Na.applyTransitionDuration||Na.applyAnimationDuration)&&(ea=S.duration?parseFloat(S.duration):ea,Na.applyTransitionDuration&&(Na.hasTransitions=!0,La.transitionDuration=ea,Fa=U.style[I+fa].length>0,ja.push(F(ea,Fa))),Na.applyAnimationDuration&&(Na.hasAnimations=!0,La.animationDuration=ea,ja.push(A(ea)))),0===ea&&!Na.recalculateTimingStyles)return C();if(null!=S.delay){var Oa;"boolean"!=typeof S.delay&&(Oa=parseFloat(S.delay),ca=Math.max(Oa,0)),Na.applyTransitionDelay&&ja.push(B(Oa)),Na.applyAnimationDelay&&ja.push(B(Oa,!0))}return null==S.duration&&La.transitionDuration>0&&(Na.recalculateTimingStyles=Na.recalculateTimingStyles||Ka),da=ca*ta,ga=ea*ta,S.skipBlocking||(Na.blockTransition=La.transitionDuration>0,Na.blockKeyframeAnimation=La.animationDuration>0&&Da.animationDelay>0&&0===Da.animationDuration),S.from&&(S.cleanupStyles&&H(T,U,Object.keys(S.from)),p(a,S)),Na.blockTransition||Na.blockKeyframeAnimation?u(ea):S.skipBlocking||w(U,!1),{$$willAnimate:!0,end:j,start:function(){return V?void 0:(ba={end:j,cancel:l,resume:null,pause:null},Y=new e(ba),z(P),Y)}}}}]}],za=["$$animationProvider",function(a){function b(a){return a.parentNode&&11===a.parentNode.nodeType}a.drivers.push("$$animateCssDriver");var c="ng-animate-shim",d="ng-anchor",e="ng-anchor-out",f="ng-anchor-in";this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(a,g,h,i,j,k,l){
+function n(a){return a.replace(/\bng-\S+\b/g,"")}function o(a,b){return S(a)&&(a=a.split(" ")),S(b)&&(b=b.split(" ")),a.filter(function(a){return-1===b.indexOf(a)}).join(" ")}function p(b,g,i){function j(a){var b={},c=t(a).getBoundingClientRect();return Q(["width","height","top","left"],function(a){var d=c[a];switch(a){case"top":d+=s.scrollTop;break;case"left":d+=s.scrollLeft}b[a]=Math.floor(d)+"px"}),b}function k(){var b=a(q,{addClass:e,delay:!0,from:j(g)});return b.$$willAnimate?b:null}function l(a){return a.attr("class")||""}function m(){var b=n(l(i)),c=o(b,r),d=o(r,b),g=a(q,{to:j(i),addClass:f+" "+c,removeClass:e+" "+d,delay:!0});return g.$$willAnimate?g:null}function p(){q.remove(),g.removeClass(c),i.removeClass(c)}var q=P(t(g).cloneNode(!0)),r=n(l(q));g.addClass(c),i.addClass(c),q.addClass(d),v.append(q);var u,w=k();if(!w&&(u=m(),!u))return p();var x=w||u;return{start:function(){function a(){c&&c.end()}var b,c=x.start();return c.done(function(){return c=null,!u&&(u=m())?(c=u.start(),c.done(function(){c=null,p(),b.complete()}),c):(p(),void b.complete())}),b=new h({end:a,cancel:a})}}}function q(a,b,c,d){var e=r(a,M),f=r(b,M),g=[];return Q(d,function(a){var b=a.out,d=a["in"],e=p(c,b,d);e&&g.push(e)}),e||f||0!==g.length?{start:function(){function a(){Q(b,function(a){a.end()})}var b=[];e&&b.push(e.start()),f&&b.push(f.start()),Q(g,function(a){b.push(a.start())});var c=new h({end:a,cancel:a});return h.all(b,function(a){c.complete(a)}),c}}:void 0}function r(b){var c=b.element,d=b.options||{};b.structural&&(d.event=b.event,d.structural=!0,d.applyClassesEarly=!0,"leave"===b.event&&(d.onDone=d.domOperation)),d.preparationClasses&&(d.event=z(d.event,d.preparationClasses));var e=a(c,d);return e.$$willAnimate?e:null}if(!j.animations&&!j.transitions)return M;var s=l[0].body,u=t(i),v=P(b(u)||s.contains(u)?u:s);m(k);return function(a){return a.from&&a.to?q(a.from,a.to,a.classes,a.anchors):r(a)}}]}],Aa=["$animateProvider",function(a){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(b,c,d){function e(c){c=R(c)?c:c.split(" ");for(var d=[],e={},f=0;f<c.length;f++){var g=c[f],h=a.$$registeredAnimations[g];h&&!e[g]&&(d.push(b.get(h)),e[g]=!0)}return d}var f=m(d);return function(a,b,d,g){function h(){g.domOperation(),f(a,g)}function i(){m=!0,h(),o(a,g)}function j(a,b,d,e,f){var g;switch(d){case"animate":g=[b,e.from,e.to,f];break;case"setClass":g=[b,r,s,f];break;case"addClass":g=[b,r,f];break;case"removeClass":g=[b,s,f];break;default:g=[b,f]}g.push(e);var h=a.apply(a,g);if(h)if(W(h.start)&&(h=h.start()),h instanceof c)h.done(f);else if(W(h))return h;return M}function k(a,b,d,e,f){var g=[];return Q(e,function(e){var h=e[f];h&&g.push(function(){var e,f,g=!1,i=function(a){g||(g=!0,(f||M)(a),e.complete(!a))};return e=new c({end:function(){i()},cancel:function(){i(!0)}}),f=j(h,a,b,d,function(a){var b=a===!1;i(b)}),e})}),g}function l(a,b,d,e,f){var g=k(a,b,d,e,f);if(0===g.length){var h,i;"beforeSetClass"===f?(h=k(a,"removeClass",d,e,"beforeRemoveClass"),i=k(a,"addClass",d,e,"beforeAddClass")):"setClass"===f&&(h=k(a,"removeClass",d,e,"removeClass"),i=k(a,"addClass",d,e,"addClass")),h&&(g=g.concat(h)),i&&(g=g.concat(i))}if(0!==g.length)return function(a){var b=[];return g.length&&Q(g,function(a){b.push(a())}),b.length?c.all(b,a):a(),function(a){Q(b,function(b){a?b.cancel():b.end()})}}}var m=!1;3===arguments.length&&T(d)&&(g=d,d=null),g=n(g),d||(d=a.attr("class")||"",g.addClass&&(d+=" "+g.addClass),g.removeClass&&(d+=" "+g.removeClass));var p,q,r=g.addClass,s=g.removeClass,t=e(d);if(t.length){var u,v;"leave"==b?(v="leave",u="afterLeave"):(v="before"+b.charAt(0).toUpperCase()+b.substr(1),u=b),"enter"!==b&&"move"!==b&&(p=l(a,b,g,t,v)),q=l(a,b,g,t,u)}if(p||q){var w;return{$$willAnimate:!0,end:function(){return w?w.end():(i(),w=new c,w.complete(!0)),w},start:function(){function a(a){i(a),w.complete(a)}function b(b){m||((d||M)(b),a(b))}if(w)return w;w=new c;var d,e=[];return p&&e.push(function(a){d=p(a)}),e.length?e.push(function(a){h(),a(!0)}):h(),q&&e.push(function(a){d=q(a)}),w.setHost({end:function(){b()},cancel:function(){b(!0)}}),c.chain(e,a),w}}}}}]}],Ba=["$$animationProvider",function(a){a.drivers.push("$$animateJsDriver"),this.$get=["$$animateJs","$$AnimateRunner",function(a,b){function c(b){var c=b.element,d=b.event,e=b.options,f=b.classes;return a(c,d,f,e)}return function(a){if(a.from&&a.to){var d=c(a.from),e=c(a.to);if(!d&&!e)return;return{start:function(){function a(){return function(){Q(f,function(a){a.end()})}}function c(a){g.complete(a)}var f=[];d&&f.push(d.start()),e&&f.push(e.start()),b.all(f,c);var g=new b({end:a(),cancel:a()});return g}}}return c(a)}}]}],Ca="data-ng-animate",Da="$ngAnimatePin",Ea=["$animateProvider",function(a){function b(a){if(!a)return null;var b=a.split(k),c=Object.create(null);return Q(b,function(a){c[a]=!0}),c}function c(a,c){if(a&&c){var d=b(c);return a.split(k).some(function(a){return d[a]})}}function e(a,b,c,d){return l[a].some(function(a){return a(b,c,d)})}function f(a,b){a=a||{};var c=(a.addClass||"").length>0,d=(a.removeClass||"").length>0;return b?c&&d:c||d}var g=1,h=2,k=" ",l=this.rules={skip:[],cancel:[],join:[]};l.join.push(function(a,b,c){return!b.structural&&f(b.options)}),l.skip.push(function(a,b,c){return!b.structural&&!f(b.options)}),l.skip.push(function(a,b,c){return"leave"==c.event&&b.structural}),l.skip.push(function(a,b,c){return c.structural&&c.state===h&&!b.structural}),l.cancel.push(function(a,b,c){return c.structural&&b.structural}),l.cancel.push(function(a,b,c){return c.state===h&&b.structural}),l.cancel.push(function(a,b,d){var e=b.options.addClass,f=b.options.removeClass,g=d.options.addClass,h=d.options.removeClass;return U(e)&&U(f)||U(g)&&U(h)?!1:c(e,h)||c(f,g)}),this.$get=["$$rAF","$rootScope","$rootElement","$document","$$HashMap","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow",function(b,c,k,l,p,q,s,w,x,y){function z(){var a=!1;return function(b){a?b():c.$$postDigest(function(){a=!0,b()})}}function A(a,b){return r(a,b,{})}function B(a,b,c){var d=t(b),e=t(a),f=[],g=M[c];return g&&Q(g,function(a){_.call(a.node,d)?f.push(a.callback):"leave"===c&&_.call(a.node,e)&&f.push(a.callback)}),f}function C(a,d,j){function k(c,d,e,f){C(function(){var c=B(w,a,d);c.length&&b(function(){Q(c,function(b){b(a,e,f)})})}),c.progress(d,e,f)}function m(b){v(a,x),$(a,x),o(a,x),x.domOperation(),y.complete(!b)}var p,w,x=N(j);a=i(a),a&&(p=t(a),w=a.parent()),x=n(x);var y=new s,C=z();if(R(x.addClass)&&(x.addClass=x.addClass.join(" ")),x.addClass&&!S(x.addClass)&&(x.addClass=null),R(x.removeClass)&&(x.removeClass=x.removeClass.join(" ")),x.removeClass&&!S(x.removeClass)&&(x.removeClass=null),x.from&&!T(x.from)&&(x.from=null),x.to&&!T(x.to)&&(x.to=null),!p)return m(),y;var F=[p.className,x.addClass,x.removeClass].join(" ");if(!Z(F))return m(),y;var L=["enter","move","leave"].indexOf(d)>=0,M=!K||l[0].hidden||J.get(p),O=!M&&I.get(p)||{},P=!!O.state;if(M||P&&O.state==g||(M=!G(a,w,d)),M)return m(),y;L&&D(a);var U={structural:L,element:a,event:d,close:m,options:x,runner:y};if(P){var V=e("skip",a,U,O);if(V)return O.state===h?(m(),y):(r(a,O.options,x),O.runner);var W=e("cancel",a,U,O);if(W)if(O.state===h)O.runner.end();else{if(!O.structural)return r(a,O.options,U.options),O.runner;O.close()}else{var X=e("join",a,U,O);if(X){if(O.state!==h)return u(a,L?d:null,x),d=U.event=O.event,x=r(a,O.options,U.options),O.runner;A(a,x)}}}else A(a,x);var Y=U.structural;if(Y||(Y="animate"===U.event&&Object.keys(U.options.to||{}).length>0||f(U.options)),!Y)return m(),E(a),y;var _=(O.counter||0)+1;return U.counter=_,H(a,g,U),c.$$postDigest(function(){var b=I.get(p),c=!b;b=b||{};var e=a.parent()||[],g=e.length>0&&("animate"===b.event||b.structural||f(b.options));if(c||b.counter!==_||!g)return c&&($(a,x),o(a,x)),(c||L&&b.event!==d)&&(x.domOperation(),y.end()),void(g||E(a));d=!b.structural&&f(b.options,!0)?"setClass":b.event,H(a,h);var i=q(a,d,b.options);i.done(function(b){m(!b);var c=I.get(p);c&&c.counter===_&&E(t(a)),k(y,d,"close",{})}),y.setHost(i),k(y,d,"start",{})}),y}function D(a){var b=t(a),c=b.querySelectorAll("["+Ca+"]");Q(c,function(a){var b=parseInt(a.getAttribute(Ca)),c=I.get(a);if(c)switch(b){case h:c.runner.end();case g:I.remove(a)}})}function E(a){var b=t(a);b.removeAttribute(Ca),I.remove(b)}function F(a,b){return t(a)===t(b)}function G(a,b,c){var d,e=P(l[0].body),f=F(a,e)||"HTML"===a[0].nodeName,g=F(a,k),h=!1,i=J.get(t(a)),j=a.data(Da);for(j&&(b=j);b&&b.length;){g||(g=F(b,k));var m=b[0];if(m.nodeType!==Y)break;var n=I.get(m)||{};if(!h){var o=J.get(m);if(o===!0&&i!==!1){i=!0;break}o===!1&&(i=!1),h=n.structural}if(U(d)||d===!0){var p=b.data(ca);V(p)&&(d=p)}if(h&&d===!1)break;if(f||(f=F(b,e)),f&&g)break;b=g||!(j=b.data(Da))?b.parent():j}var q=(!h||d)&&i!==!0;return q&&g&&f}function H(a,b,c){c=c||{},c.state=b;var d=t(a);d.setAttribute(Ca,b);var e=I.get(d),f=e?O(e,c):c;I.put(d,f)}var I=new p,J=new p,K=null,L=c.$watch(function(){return 0===w.totalPendingRequests},function(a){a&&(L(),c.$$postDigest(function(){c.$$postDigest(function(){null===K&&(K=!0)})}))}),M={},W=a.classNameFilter(),Z=W?function(a){return W.test(a)}:function(){return!0},$=m(x),_=Node.prototype.contains||function(a){return this===a||!!(16&this.compareDocumentPosition(a))};return{on:function(a,b,c){var d=j(b);M[a]=M[a]||[],M[a].push({node:d,callback:c})},off:function(a,b,c){function d(a,b,c){var d=j(b);return a.filter(function(a){var b=a.node===d&&(!c||a.callback===c);return!b})}var e=M[a];e&&(M[a]=1===arguments.length?null:d(e,b,c))},pin:function(a,b){d(X(a),"element","not an element"),d(X(b),"parentElement","not an element"),a.data(Da,b)},push:function(a,b,c,d){return c=c||{},c.domOperation=d,C(a,b,c)},enabled:function(a,b){var c=arguments.length;if(0===c)b=!!K;else{var d=X(a);if(d){var e=t(a),f=J.get(e);1===c?b=!f:J.put(e,!b)}else b=K=!!a}return b}}}]}],Fa=["$animateProvider",function(a){function b(a,b){a.data(h,b)}function c(a){a.removeData(h)}function d(a){return a.data(h)}var f="ng-animate-ref",g=this.drivers=[],h="$$animationRunner";this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$HashMap","$$rAFScheduler",function(a,h,i,j,k,l){function p(a){function b(a){if(a.processed)return a;a.processed=!0;var c=a.domNode,d=c.parentNode;f.put(c,a);for(var g;d;){if(g=f.get(d)){g.processed||(g=b(g));break}d=d.parentNode}return(g||e).children.push(a),a}function c(a){var b,c=[],d=[];for(b=0;b<a.children.length;b++)d.push(a.children[b]);var e=d.length,f=0,g=[];for(b=0;b<d.length;b++){var h=d[b];0>=e&&(e=f,f=0,c.push(g),g=[]),g.push(h.fn),h.children.forEach(function(a){f++,d.push(a)}),e--}return g.length&&c.push(g),c}var d,e={children:[]},f=new k;for(d=0;d<a.length;d++){var g=a[d];f.put(g.domNode,a[d]={domNode:g.domNode,fn:g.fn,children:[]})}for(d=0;d<a.length;d++)b(a[d]);return c(e)}var q=[],r=m(a);return function(k,m,s){function u(a){var b="["+f+"]",c=a.hasAttribute(f)?[a]:a.querySelectorAll(b),d=[];return Q(c,function(a){var b=a.getAttribute(f);b&&b.length&&d.push(a)}),d}function v(a){var b=[],c={};Q(a,function(a,d){var e=a.element,g=t(e),h=a.event,i=["enter","move"].indexOf(h)>=0,j=a.structural?u(g):[];if(j.length){var k=i?"to":"from";Q(j,function(a){var b=a.getAttribute(f);c[b]=c[b]||{},c[b][k]={animationID:d,element:P(a)}})}else b.push(a)});var d={},e={};return Q(c,function(c,f){var g=c.from,h=c.to;if(!g||!h){var i=g?g.animationID:h.animationID,j=i.toString();return void(d[j]||(d[j]=!0,b.push(a[i])))}var k=a[g.animationID],l=a[h.animationID],m=g.animationID.toString();if(!e[m]){var n=e[m]={structural:!0,beforeStart:function(){k.beforeStart(),l.beforeStart()},close:function(){k.close(),l.close()},classes:w(k.classes,l.classes),from:k,to:l,anchors:[]};n.classes.length?b.push(n):(b.push(k),b.push(l))}e[m].anchors.push({out:g.element,"in":h.element})}),b}function w(a,b){a=a.split(" "),b=b.split(" ");for(var c=[],d=0;d<a.length;d++){var e=a[d];if("ng-"!==e.substring(0,3))for(var f=0;f<b.length;f++)if(e===b[f]){c.push(e);break}}return c.join(" ")}function x(a){for(var b=g.length-1;b>=0;b--){var c=g[b];if(i.has(c)){var d=i.get(c),e=d(a);if(e)return e}}}function y(){k.addClass(ba),F&&a.addClass(k,F)}function z(a,b){function c(a){d(a).setHost(b)}a.from&&a.to?(c(a.from.element),c(a.to.element)):c(a.element)}function A(){var a=d(k);!a||"leave"===m&&s.$$domOperationFired||a.end()}function B(b){k.off("$destroy",A),c(k),r(k,s),o(k,s),s.domOperation(),F&&a.removeClass(k,F),k.removeClass(ba),D.complete(!b)}s=n(s);var C=["enter","move","leave"].indexOf(m)>=0,D=new j({end:function(){B()},cancel:function(){B(!0)}});if(!g.length)return B(),D;b(k,D);var E=e(k.attr("class"),e(s.addClass,s.removeClass)),F=s.tempClasses;return F&&(E+=" "+F,s.tempClasses=null),q.push({element:k,classes:E,event:m,structural:C,options:s,beforeStart:y,close:B}),k.on("$destroy",A),q.length>1?D:(h.$$postDigest(function(){var a=[];Q(q,function(b){d(b.element)?a.push(b):b.close()}),q.length=0;var b=v(a),c=[];Q(b,function(a){c.push({domNode:t(a.from?a.from.element:a.element),fn:function(){a.beforeStart();var b,c=a.close,e=a.anchors?a.from.element||a.to.element:a.element;if(d(e)){var f=x(a);f&&(b=f.start)}if(b){var g=b();g.done(function(a){c(!a)}),z(a,g)}else c()}})}),l(p(c))}),D)}}]}];b.module("ngAnimate",[]).directive("ngAnimateChildren",ra).factory("$$rAFScheduler",qa).provider("$$animateQueue",Ea).provider("$$animation",Fa).provider("$animateCss",ya).provider("$$animateCssDriver",za).provider("$$animateJs",Aa).provider("$$animateJsDriver",Ba)}(window,window.angular),angular.module("colorpicker.module",[]).factory("Helper",function(){"use strict";return{closestSlider:function(a){var b=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.msMatchesSelector;return b.bind(a)("I")?a.parentNode:a},getOffset:function(a,b){for(var c=0,d=0,e=a.getBoundingClientRect();a&&!isNaN(a.offsetLeft)&&!isNaN(a.offsetTop);)b||"BODY"!==a.tagName?(c+=a.scrollLeft,d+=a.scrollTop):(c+=document.documentElement.scrollLeft||a.scrollLeft,d+=document.documentElement.scrollTop||a.scrollTop),a=a.offsetParent;return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset,scrollX:c,scrollY:d}},stringParsers:[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(a){return[a[1],a[2],a[3],a[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(a){return[2.55*a[1],2.55*a[2],2.55*a[3],a[4]]}},{re:/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,parse:function(a){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]}},{re:/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/,parse:function(a){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)]}}]}}).factory("Color",["Helper",function(a){"use strict";return{value:{h:1,s:1,b:1,a:1},rgb:function(){var a=this.toRGB();return"rgb("+a.r+","+a.g+","+a.b+")"},rgba:function(){var a=this.toRGB();return"rgba("+a.r+","+a.g+","+a.b+","+a.a+")"},hex:function(){return this.toHex()},RGBtoHSB:function(a,b,c,d){a/=255,b/=255,c/=255;var e,f,g,h;return g=Math.max(a,b,c),h=g-Math.min(a,b,c),e=0===h?null:g===a?(b-c)/h:g===b?(c-a)/h+2:(a-b)/h+4,e=(e+360)%6*60/360,f=0===h?0:h/g,{h:e||1,s:f,b:g,a:d||1}},setColor:function(b){b=b?b.toLowerCase():b;for(var c in a.stringParsers)if(a.stringParsers.hasOwnProperty(c)){var d=a.stringParsers[c],e=d.re.exec(b),f=e&&d.parse(e);if(f)return this.value=this.RGBtoHSB.apply(null,f),!1}},setHue:function(a){this.value.h=1-a},setSaturation:function(a){this.value.s=a},setLightness:function(a){this.value.b=1-a},setAlpha:function(a){this.value.a=parseInt(100*(1-a),10)/100},toRGB:function(a,b,c,d){a||(a=this.value.h,b=this.value.s,c=this.value.b),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-Math.abs(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],{r:Math.round(255*e),g:Math.round(255*f),b:Math.round(255*g),a:d||this.value.a}},toHex:function(a,b,c,d){var e=this.toRGB(a,b,c,d);return"#"+(1<<24|parseInt(e.r,10)<<16|parseInt(e.g,10)<<8|parseInt(e.b,10)).toString(16).substr(1)}}}]).factory("Slider",["Helper",function(a){"use strict";var b={maxLeft:0,maxTop:0,callLeft:null,callTop:null,knob:{top:0,left:0}},c={};return{getSlider:function(){return b},getLeftPosition:function(a){return Math.max(0,Math.min(b.maxLeft,b.left+((a.pageX||c.left)-c.left)))},getTopPosition:function(a){return Math.max(0,Math.min(b.maxTop,b.top+((a.pageY||c.top)-c.top)))},setSlider:function(d,e){var f=a.closestSlider(d.target),g=a.getOffset(f,e),h=f.getBoundingClientRect(),i=d.clientX-h.left,j=d.clientY-h.top;b.knob=f.children[0].style,b.left=d.pageX-g.left-window.pageXOffset+g.scrollX,b.top=d.pageY-g.top-window.pageYOffset+g.scrollY,c={left:d.pageX-(i-b.left),top:d.pageY-(j-b.top)}},setSaturation:function(a,c){b={maxLeft:100,maxTop:100,callLeft:"setSaturation",callTop:"setLightness"},this.setSlider(a,c)},setHue:function(a,c){b={maxLeft:0,maxTop:100,callLeft:!1,callTop:"setHue"},this.setSlider(a,c)},setAlpha:function(a,c){b={maxLeft:0,maxTop:100,callLeft:!1,callTop:"setAlpha"},this.setSlider(a,c)},setKnob:function(a,c){b.knob.top=a+"px",b.knob.left=c+"px"}}}]).directive("colorpicker",["$document","$compile","Color","Slider","Helper",function(a,b,c,d,e){"use strict";return{require:"?ngModel",restrict:"A",link:function(f,g,h,i){function j(){a.on("mousemove",l),a.on("mouseup",m)}function k(){try{H.css("backgroundColor",E[u]())}catch(a){H.css("backgroundColor",E.toHex())}G.css("backgroundColor",E.toHex(E.value.h,1,1,1)),"rgba"===u&&(t.css.backgroundColor=E.toHex())}function l(a){var b=d.getLeftPosition(a),c=d.getTopPosition(a),e=d.getSlider();d.setKnob(c,b),e.callLeft&&E[e.callLeft].call(E,b/100),e.callTop&&E[e.callTop].call(E,c/100),k();var h=E[u]();return g.val(h),i&&f.$apply(i.$setViewValue(h)),z&&J.val(h),!1}function m(){r("colorpicker-selected"),a.off("mousemove",l),a.off("mouseup",m)}function n(a){E.setColor(g.val()),z&&!a&&J.val(g.val()),I.eq(0).css({left:100*E.value.s+"px",top:100-100*E.value.b+"px"}),I.eq(1).css("top",100*(1-E.value.h)+"px"),I.eq(2).css("top",100*(1-E.value.a)+"px"),k()}function o(){var a,b=e.getOffset(g[0]);return angular.isDefined(h.colorpickerParent)&&(b.left=0,b.top=0),"top"===v?a={top:b.top-147,left:b.left}:"right"===v?a={top:b.top,left:b.left+126}:"bottom"===v?a={top:b.top+g[0].offsetHeight+2,left:b.left}:"left"===v&&(a={top:b.top,left:b.left-150}),{top:a.top+"px",left:a.left+"px"}}function p(){s()}function q(){D.hasClass("colorpicker-visible")||(n(),D.addClass("colorpicker-visible").css(o()),r("colorpicker-shown"),w===!1&&a.on("mousedown",p),h.colorpickerIsOpen&&(f[h.colorpickerIsOpen]=!0,f.$$phase||f.$digest()))}function r(a){i&&f.$emit(a,{name:h.ngModel,value:i.$modelValue})}function s(){D.hasClass("colorpicker-visible")&&(D.removeClass("colorpicker-visible"),r("colorpicker-closed"),a.off("mousedown",p),h.colorpickerIsOpen&&(f[h.colorpickerIsOpen]=!1,f.$$phase||f.$digest()))}var t,u=h.colorpicker?h.colorpicker:"hex",v=angular.isDefined(h.colorpickerPosition)?h.colorpickerPosition:"bottom",w=angular.isDefined(h.colorpickerInline)?h.colorpickerInline:!1,x=angular.isDefined(h.colorpickerFixedPosition)?h.colorpickerFixedPosition:!1,y=angular.isDefined(h.colorpickerParent)?g.parent():angular.element(document.body),z=angular.isDefined(h.colorpickerWithInput)?h.colorpickerWithInput:!1,A=z?'<input type="text" name="colorpicker-input" spellcheck="false">':"",B=w?"":'<button type="button" class="close close-colorpicker">&times;</button>',C='<div class="colorpicker dropdown"><div class="dropdown-menu"><colorpicker-saturation><i></i></colorpicker-saturation><colorpicker-hue><i></i></colorpicker-hue><colorpicker-alpha><i></i></colorpicker-alpha><colorpicker-preview></colorpicker-preview>'+A+B+"</div></div>",D=angular.element(C),E=c,F=D.find("colorpicker-hue"),G=D.find("colorpicker-saturation"),H=D.find("colorpicker-preview"),I=D.find("i");if(b(D)(f),z){var J=D.find("input");J.on("mousedown",function(a){a.stopPropagation()}).on("keyup",function(){var a=this.value;g.val(a),i&&i.$modelValue!==a&&(f.$apply(i.$setViewValue(a)),n(!0))})}"rgba"===u&&(D.addClass("alpha"),t=D.find("colorpicker-alpha"),t.on("click",function(a){d.setAlpha(a,x),l(a)}).on("mousedown",function(a){d.setAlpha(a,x),j()}).on("mouseup",function(a){r("colorpicker-selected-alpha")})),F.on("click",function(a){d.setHue(a,x),l(a)}).on("mousedown",function(a){d.setHue(a,x),j()}).on("mouseup",function(a){r("colorpicker-selected-hue")}),G.on("click",function(a){d.setSaturation(a,x),l(a),angular.isDefined(h.colorpickerCloseOnSelect)&&s()}).on("mousedown",function(a){d.setSaturation(a,x),j()}).on("mouseup",function(a){r("colorpicker-selected-saturation")}),x&&D.addClass("colorpicker-fixed-position"),D.addClass("colorpicker-position-"+v),"true"===w&&D.addClass("colorpicker-inline"),y.append(D),i&&(i.$render=function(){g.val(i.$viewValue),n()}),g.on("blur keyup change",function(){n()}),g.on("$destroy",function(){D.remove()}),w===!1?g.on("click",q):q(),D.on("mousedown",function(a){a.stopPropagation(),a.preventDefault()}),D.find("button").on("click",function(){s()}),h.colorpickerIsOpen&&f.$watch(h.colorpickerIsOpen,function(a){a===!0?q():a===!1&&s()})}}}]),angular.module("ui.bootstrap.contextMenu",[]).directive("contextMenu",["$parse","$q",function(a,b){var c=[],d=function(a){for(;c.length&&(!a||c.length>a);)c.pop().remove();0==c.length&&e&&e.remove()},e=null,f=function(a,g,h,i,j){if(j||(j=0),!k)var k=angular.element;k(g.currentTarget).addClass("context");var l=k("<div>");e?l=e:e=l,l.addClass("dropdown clearfix");var m=k("<ul>");m.addClass("dropdown-menu"),m.attr({role:"menu"}),m.css({display:"block",position:"absolute",left:g.pageX+"px",top:g.pageY+"px","z-index":1e4}),angular.forEach(h,function(c,e){var h=k("<li>");if(null===c)h.addClass("divider");else{var l=angular.isArray(c[1])?c[1]:angular.isArray(c[2])?c[2]:angular.isArray(c[3])?c[3]:null,n=k("<a>");n.css("padding-right","8px"),n.attr({tabindex:"-1",href:"#"});var o="string"==typeof c[0]?c[0]:c[0].call(a,a,g,i);b.when(o).then(function(a){n.text(a),l&&(n.css("cursor","default"),n.append(k('<strong style="font-family:monospace;font-weight:bold;float:right;">&gt;</strong>')))}),h.append(n);var p=angular.isFunction(c[2])?c[2].call(a,a,g,i,o):!0;if(p){var q=function(b){d(j+1);var c={pageX:g.pageX+m[0].offsetWidth-1,pageY:m[0].offsetTop+h[0].offsetTop-3};f(a,c,l,i,j+1)};h.on("click",function(b){b.preventDefault(),a.$apply(function(){l?q(b):(k(g.currentTarget).removeClass("context"),d(),c[1].call(a,a,g,i,o))})}),h.on("mouseover",function(b){a.$apply(function(){l&&q(b)})})}else h.on("click",function(a){a.preventDefault()}),h.addClass("disabled")}m.append(h)}),l.append(m);var n=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight);l.css({width:"100%",height:n+"px",position:"absolute",top:0,left:0,zIndex:9999}),k(document).find("body").append(l),l.on("mousedown",function(a){k(a.target).hasClass("dropdown")&&(k(g.currentTarget).removeClass("context"),d())}).on("contextmenu",function(a){k(a.currentTarget).removeClass("context"),a.preventDefault(),d(j)}),a.$on("$destroy",function(){d()}),c.push(m)};return function(a,b,c){b.on("contextmenu",function(b){b.stopPropagation(),a.$apply(function(){b.preventDefault();var d=a.$eval(c.contextMenu),e=a.$eval(c.model);if(!(d instanceof Array))throw'"'+c.contextMenu+'" not an array';0!==d.length&&f(a,b,d,e)})})}}]),"undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),
+this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery),function(){var a=[].slice;!function(b,c){"use strict";var d;return d=function(){function a(a,c){null==c&&(c={}),this.$element=b(a),this.options=b.extend({},b.fn.bootstrapSwitch.defaults,{state:this.$element.is(":checked"),size:this.$element.data("size"),animate:this.$element.data("animate"),disabled:this.$element.is(":disabled"),readonly:this.$element.is("[readonly]"),indeterminate:this.$element.data("indeterminate"),inverse:this.$element.data("inverse"),radioAllOff:this.$element.data("radio-all-off"),onColor:this.$element.data("on-color"),offColor:this.$element.data("off-color"),onText:this.$element.data("on-text"),offText:this.$element.data("off-text"),labelText:this.$element.data("label-text"),handleWidth:this.$element.data("handle-width"),labelWidth:this.$element.data("label-width"),baseClass:this.$element.data("base-class"),wrapperClass:this.$element.data("wrapper-class")},c),this.$wrapper=b("<div>",{"class":function(a){return function(){var b;return b=[""+a.options.baseClass].concat(a._getClasses(a.options.wrapperClass)),b.push(a.options.state?""+a.options.baseClass+"-on":""+a.options.baseClass+"-off"),null!=a.options.size&&b.push(""+a.options.baseClass+"-"+a.options.size),a.options.disabled&&b.push(""+a.options.baseClass+"-disabled"),a.options.readonly&&b.push(""+a.options.baseClass+"-readonly"),a.options.indeterminate&&b.push(""+a.options.baseClass+"-indeterminate"),a.options.inverse&&b.push(""+a.options.baseClass+"-inverse"),a.$element.attr("id")&&b.push(""+a.options.baseClass+"-id-"+a.$element.attr("id")),b.join(" ")}}(this)()}),this.$container=b("<div>",{"class":""+this.options.baseClass+"-container"}),this.$on=b("<span>",{html:this.options.onText,"class":""+this.options.baseClass+"-handle-on "+this.options.baseClass+"-"+this.options.onColor}),this.$off=b("<span>",{html:this.options.offText,"class":""+this.options.baseClass+"-handle-off "+this.options.baseClass+"-"+this.options.offColor}),this.$label=b("<span>",{html:this.options.labelText,"class":""+this.options.baseClass+"-label"}),this.$element.on("init.bootstrapSwitch",function(b){return function(){return b.options.onInit.apply(a,arguments)}}(this)),this.$element.on("switchChange.bootstrapSwitch",function(b){return function(){return b.options.onSwitchChange.apply(a,arguments)}}(this)),this.$container=this.$element.wrap(this.$container).parent(),this.$wrapper=this.$container.wrap(this.$wrapper).parent(),this.$element.before(this.options.inverse?this.$off:this.$on).before(this.$label).before(this.options.inverse?this.$on:this.$off),this.options.indeterminate&&this.$element.prop("indeterminate",!0),this._init(),this._elementHandlers(),this._handleHandlers(),this._labelHandlers(),this._formHandler(),this._externalLabelHandler(),this.$element.trigger("init.bootstrapSwitch")}return a.prototype._constructor=a,a.prototype.state=function(a,b){return"undefined"==typeof a?this.options.state:this.options.disabled||this.options.readonly?this.$element:this.options.state&&!this.options.radioAllOff&&this.$element.is(":radio")?this.$element:(this.options.indeterminate&&this.indeterminate(!1),a=!!a,this.$element.prop("checked",a).trigger("change.bootstrapSwitch",b),this.$element)},a.prototype.toggleState=function(a){return this.options.disabled||this.options.readonly?this.$element:this.options.indeterminate?(this.indeterminate(!1),this.state(!0)):this.$element.prop("checked",!this.options.state).trigger("change.bootstrapSwitch",a)},a.prototype.size=function(a){return"undefined"==typeof a?this.options.size:(null!=this.options.size&&this.$wrapper.removeClass(""+this.options.baseClass+"-"+this.options.size),a&&this.$wrapper.addClass(""+this.options.baseClass+"-"+a),this._width(),this._containerPosition(),this.options.size=a,this.$element)},a.prototype.animate=function(a){
+return"undefined"==typeof a?this.options.animate:(a=!!a,a===this.options.animate?this.$element:this.toggleAnimate())},a.prototype.toggleAnimate=function(){return this.options.animate=!this.options.animate,this.$wrapper.toggleClass(""+this.options.baseClass+"-animate"),this.$element},a.prototype.disabled=function(a){return"undefined"==typeof a?this.options.disabled:(a=!!a,a===this.options.disabled?this.$element:this.toggleDisabled())},a.prototype.toggleDisabled=function(){return this.options.disabled=!this.options.disabled,this.$element.prop("disabled",this.options.disabled),this.$wrapper.toggleClass(""+this.options.baseClass+"-disabled"),this.$element},a.prototype.readonly=function(a){return"undefined"==typeof a?this.options.readonly:(a=!!a,a===this.options.readonly?this.$element:this.toggleReadonly())},a.prototype.toggleReadonly=function(){return this.options.readonly=!this.options.readonly,this.$element.prop("readonly",this.options.readonly),this.$wrapper.toggleClass(""+this.options.baseClass+"-readonly"),this.$element},a.prototype.indeterminate=function(a){return"undefined"==typeof a?this.options.indeterminate:(a=!!a,a===this.options.indeterminate?this.$element:this.toggleIndeterminate())},a.prototype.toggleIndeterminate=function(){return this.options.indeterminate=!this.options.indeterminate,this.$element.prop("indeterminate",this.options.indeterminate),this.$wrapper.toggleClass(""+this.options.baseClass+"-indeterminate"),this._containerPosition(),this.$element},a.prototype.inverse=function(a){return"undefined"==typeof a?this.options.inverse:(a=!!a,a===this.options.inverse?this.$element:this.toggleInverse())},a.prototype.toggleInverse=function(){var a,b;return this.$wrapper.toggleClass(""+this.options.baseClass+"-inverse"),b=this.$on.clone(!0),a=this.$off.clone(!0),this.$on.replaceWith(a),this.$off.replaceWith(b),this.$on=a,this.$off=b,this.options.inverse=!this.options.inverse,this.$element},a.prototype.onColor=function(a){var b;return b=this.options.onColor,"undefined"==typeof a?b:(null!=b&&this.$on.removeClass(""+this.options.baseClass+"-"+b),this.$on.addClass(""+this.options.baseClass+"-"+a),this.options.onColor=a,this.$element)},a.prototype.offColor=function(a){var b;return b=this.options.offColor,"undefined"==typeof a?b:(null!=b&&this.$off.removeClass(""+this.options.baseClass+"-"+b),this.$off.addClass(""+this.options.baseClass+"-"+a),this.options.offColor=a,this.$element)},a.prototype.onText=function(a){return"undefined"==typeof a?this.options.onText:(this.$on.html(a),this._width(),this._containerPosition(),this.options.onText=a,this.$element)},a.prototype.offText=function(a){return"undefined"==typeof a?this.options.offText:(this.$off.html(a),this._width(),this._containerPosition(),this.options.offText=a,this.$element)},a.prototype.labelText=function(a){return"undefined"==typeof a?this.options.labelText:(this.$label.html(a),this._width(),this.options.labelText=a,this.$element)},a.prototype.handleWidth=function(a){return"undefined"==typeof a?this.options.handleWidth:(this.options.handleWidth=a,this._width(),this._containerPosition(),this.$element)},a.prototype.labelWidth=function(a){return"undefined"==typeof a?this.options.labelWidth:(this.options.labelWidth=a,this._width(),this._containerPosition(),this.$element)},a.prototype.baseClass=function(a){return this.options.baseClass},a.prototype.wrapperClass=function(a){return"undefined"==typeof a?this.options.wrapperClass:(a||(a=b.fn.bootstrapSwitch.defaults.wrapperClass),this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(" ")),this.$wrapper.addClass(this._getClasses(a).join(" ")),this.options.wrapperClass=a,this.$element)},a.prototype.radioAllOff=function(a){return"undefined"==typeof a?this.options.radioAllOff:(a=!!a,a===this.options.radioAllOff?this.$element:(this.options.radioAllOff=a,this.$element))},a.prototype.onInit=function(a){return"undefined"==typeof a?this.options.onInit:(a||(a=b.fn.bootstrapSwitch.defaults.onInit),this.options.onInit=a,this.$element)},a.prototype.onSwitchChange=function(a){return"undefined"==typeof a?this.options.onSwitchChange:(a||(a=b.fn.bootstrapSwitch.defaults.onSwitchChange),this.options.onSwitchChange=a,this.$element)},a.prototype.destroy=function(){var a;return a=this.$element.closest("form"),a.length&&a.off("reset.bootstrapSwitch").removeData("bootstrap-switch"),this.$container.children().not(this.$element).remove(),this.$element.unwrap().unwrap().off(".bootstrapSwitch").removeData("bootstrap-switch"),this.$element},a.prototype._width=function(){var a,b;return a=this.$on.add(this.$off),a.add(this.$label).css("width",""),b="auto"===this.options.handleWidth?Math.max(this.$on.width(),this.$off.width()):this.options.handleWidth,a.width(b),this.$label.width(function(a){return function(c,d){return"auto"!==a.options.labelWidth?a.options.labelWidth:b>d?b:d}}(this)),this._handleWidth=this.$on.outerWidth(),this._labelWidth=this.$label.outerWidth(),this.$container.width(2*this._handleWidth+this._labelWidth),this.$wrapper.width(this._handleWidth+this._labelWidth)},a.prototype._containerPosition=function(a,b){return null==a&&(a=this.options.state),this.$container.css("margin-left",function(b){return function(){var c;return c=[0,"-"+b._handleWidth+"px"],b.options.indeterminate?"-"+b._handleWidth/2+"px":a?b.options.inverse?c[1]:c[0]:b.options.inverse?c[0]:c[1]}}(this)),b?setTimeout(function(){return b()},50):void 0},a.prototype._init=function(){var a,b;return a=function(a){return function(){return a._width(),a._containerPosition(null,function(){return a.options.animate?a.$wrapper.addClass(""+a.options.baseClass+"-animate"):void 0})}}(this),this.$wrapper.is(":visible")?a():b=c.setInterval(function(d){return function(){return d.$wrapper.is(":visible")?(a(),c.clearInterval(b)):void 0}}(this),50)},a.prototype._elementHandlers=function(){return this.$element.on({"change.bootstrapSwitch":function(a){return function(c,d){var e;return c.preventDefault(),c.stopImmediatePropagation(),e=a.$element.is(":checked"),a._containerPosition(e),e!==a.options.state?(a.options.state=e,a.$wrapper.toggleClass(""+a.options.baseClass+"-off").toggleClass(""+a.options.baseClass+"-on"),d?void 0:(a.$element.is(":radio")&&b("[name='"+a.$element.attr("name")+"']").not(a.$element).prop("checked",!1).trigger("change.bootstrapSwitch",!0),a.$element.trigger("switchChange.bootstrapSwitch",[e]))):void 0}}(this),"focus.bootstrapSwitch":function(a){return function(b){return b.preventDefault(),a.$wrapper.addClass(""+a.options.baseClass+"-focused")}}(this),"blur.bootstrapSwitch":function(a){return function(b){return b.preventDefault(),a.$wrapper.removeClass(""+a.options.baseClass+"-focused")}}(this),"keydown.bootstrapSwitch":function(a){return function(b){if(b.which&&!a.options.disabled&&!a.options.readonly)switch(b.which){case 37:return b.preventDefault(),b.stopImmediatePropagation(),a.state(!1);case 39:return b.preventDefault(),b.stopImmediatePropagation(),a.state(!0)}}}(this)})},a.prototype._handleHandlers=function(){return this.$on.on("click.bootstrapSwitch",function(a){return function(b){return b.preventDefault(),b.stopPropagation(),a.state(!1),a.$element.trigger("focus.bootstrapSwitch")}}(this)),this.$off.on("click.bootstrapSwitch",function(a){return function(b){return b.preventDefault(),b.stopPropagation(),a.state(!0),a.$element.trigger("focus.bootstrapSwitch")}}(this))},a.prototype._labelHandlers=function(){return this.$label.on({"mousedown.bootstrapSwitch touchstart.bootstrapSwitch":function(a){return function(b){return a._dragStart||a.options.disabled||a.options.readonly?void 0:(b.preventDefault(),b.stopPropagation(),a._dragStart=(b.pageX||b.originalEvent.touches[0].pageX)-parseInt(a.$container.css("margin-left"),10),a.options.animate&&a.$wrapper.removeClass(""+a.options.baseClass+"-animate"),a.$element.trigger("focus.bootstrapSwitch"))}}(this),"mousemove.bootstrapSwitch touchmove.bootstrapSwitch":function(a){return function(b){var c;if(null!=a._dragStart&&(b.preventDefault(),c=(b.pageX||b.originalEvent.touches[0].pageX)-a._dragStart,!(c<-a._handleWidth||c>0)))return a._dragEnd=c,a.$container.css("margin-left",""+a._dragEnd+"px")}}(this),"mouseup.bootstrapSwitch touchend.bootstrapSwitch":function(a){return function(b){var c;if(a._dragStart)return b.preventDefault(),a.options.animate&&a.$wrapper.addClass(""+a.options.baseClass+"-animate"),a._dragEnd?(c=a._dragEnd>-(a._handleWidth/2),a._dragEnd=!1,a.state(a.options.inverse?!c:c)):a.state(!a.options.state),a._dragStart=!1}}(this),"mouseleave.bootstrapSwitch":function(a){return function(b){return a.$label.trigger("mouseup.bootstrapSwitch")}}(this)})},a.prototype._externalLabelHandler=function(){var a;return a=this.$element.closest("label"),a.on("click",function(b){return function(c){return c.preventDefault(),c.stopImmediatePropagation(),c.target===a[0]?b.toggleState():void 0}}(this))},a.prototype._formHandler=function(){var a;return a=this.$element.closest("form"),a.data("bootstrap-switch")?void 0:a.on("reset.bootstrapSwitch",function(){return c.setTimeout(function(){return a.find("input").filter(function(){return b(this).data("bootstrap-switch")}).each(function(){return b(this).bootstrapSwitch("state",this.checked)})},1)}).data("bootstrap-switch",!0)},a.prototype._getClasses=function(a){var c,d,e,f;if(!b.isArray(a))return[""+this.options.baseClass+"-"+a];for(d=[],e=0,f=a.length;f>e;e++)c=a[e],d.push(""+this.options.baseClass+"-"+c);return d},a}(),b.fn.bootstrapSwitch=function(){var c,e,f;return e=arguments[0],c=2<=arguments.length?a.call(arguments,1):[],f=this,this.each(function(){var a,g;return a=b(this),g=a.data("bootstrap-switch"),g||a.data("bootstrap-switch",g=new d(this,e)),"string"==typeof e?f=g[e].apply(g,c):void 0}),f},b.fn.bootstrapSwitch.Constructor=d,b.fn.bootstrapSwitch.defaults={state:!0,size:null,animate:!0,disabled:!1,readonly:!1,indeterminate:!1,inverse:!1,radioAllOff:!1,onColor:"primary",offColor:"default",onText:"ON",offText:"OFF",labelText:"&nbsp;",handleWidth:"auto",labelWidth:"auto",baseClass:"bootstrap-switch",wrapperClass:"wrapper",onInit:function(){},onSwitchChange:function(){}}}(window.jQuery,window)}.call(this),function(){"use strict";angular.module("frapontillo.bootstrap-switch",[]),angular.module("frapontillo.bootstrap-switch").directive("bsSwitch",["$parse","$timeout",function(a,b){return{restrict:"A",require:"ngModel",link:function(c,d,e,f){var g=!1,h=function(){if("radio"===e.type)return e.value||a(e.ngValue)(c)||!0;var b=a(e.ngTrueValue)(c);return angular.isUndefined(b)&&(b=!0),b},i=function(a){return c.$eval(a)===!0},j=function(a){return a===!0||"true"===a||!a},k=function(a){return a?a:void 0},l=function(a){var b={switchRadioOff:j,switchActive:function(a){return!j(a)},switchAnimate:j,switchLabel:function(a){return a?a:"&nbsp;"},switchIcon:function(a){return a?"<span class='"+a+"'></span>":void 0},switchWrapper:function(a){return a||"wrapper"},switchInverse:i,switchReadonly:i},c=b[a]||k;return c(e[a])},m=function(a,b,c){if(g){var d=l(c);a.bootstrapSwitch(b,d)}},n=function(){m(d,"disabled","switchActive")},o=function(){if(!g){var a=f.$modelValue===h();g=!g,d.bootstrapSwitch({radioAllOff:l("switchRadioOff"),disabled:l("switchActive"),state:a,onText:l("switchOnText"),offText:l("switchOffText"),onColor:l("switchOnColor"),offColor:l("switchOffColor"),animate:l("switchAnimate"),size:l("switchSize"),labelText:l(e.switchLabel?"switchLabel":"switchIcon"),wrapperClass:l("switchWrapper"),handleWidth:l("switchHandleWidth"),labelWidth:l("switchLabelWidth"),inverse:l("switchInverse"),readonly:l("switchReadonly")}),"radio"===e.type?f.$setViewValue(f.$modelValue):f.$setViewValue(a)}},p=function(){function a(){return f.$modelValue}e.$observe("switchActive",function(a){var c=j(a);c?n(c):b(function(){n(c)})}),c.$watch(a,function(a){o(),void 0!==a?d.bootstrapSwitch("state",a===h(),!1):d.bootstrapSwitch("toggleIndeterminate",!0,!1)},!0);var g={switchRadioOff:"radioAllOff",switchOnText:"onText",switchOffText:"offText",switchOnColor:"onColor",switchOffColor:"offColor",switchAnimate:"animate",switchSize:"size",switchLabel:"labelText",switchIcon:"labelText",switchWrapper:"wrapperClass",switchHandleWidth:"handleWidth",switchLabelWidth:"labelWidth",switchInverse:"inverse",switchReadonly:"readonly"},i=function(a,b){return function(){e.$observe(a,function(){m(d,b[a],a)})}};for(var k in g)e.$observe(k,i(k,g))},q=function(){"radio"===e.type?d.on("change.bootstrapSwitch",function(a){f.$modelValue===f.$viewValue&&a.target.checked!==$(a.target).bootstrapSwitch("state")&&(a.target.checked?f.$setViewValue(h()):h()===f.$viewValue&&f.$setViewValue(void 0))}):d.on("switchChange.bootstrapSwitch",function(a){f.$setViewValue(a.target.checked)})};q(),p(),c.$on("$destroy",function(){d.bootstrapSwitch("destroy")})}}}]).directive("bsSwitch",function(){return{restrict:"E",require:"ngModel",template:"<input bs-switch>",replace:!0}})}(),function(){"use strict";var a=this,b=a.Chart,c=function(a){this.canvas=a.canvas,this.ctx=a;var b=function(a,b){return a["offset"+b]?a["offset"+b]:document.defaultView.getComputedStyle(a).getPropertyValue(b)},c=this.width=b(a.canvas,"Width"),e=this.height=b(a.canvas,"Height");a.canvas.width=c,a.canvas.height=e;var c=this.width=a.canvas.width,e=this.height=a.canvas.height;return this.aspectRatio=this.width/this.height,d.retinaScale(this),this};c.defaults={global:{animation:!0,animationSteps:60,animationEasing:"easeOutQuart",showScale:!0,scaleOverride:!1,scaleSteps:null,scaleStepWidth:null,scaleStartValue:null,scaleLineColor:"rgba(0,0,0,.1)",scaleLineWidth:1,scaleShowLabels:!0,scaleLabel:"<%=value%>",scaleIntegersOnly:!0,scaleBeginAtZero:!1,scaleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",scaleFontSize:12,scaleFontStyle:"normal",scaleFontColor:"#666",responsive:!1,maintainAspectRatio:!0,showTooltips:!0,customTooltips:!1,tooltipEvents:["mousemove","touchstart","touchmove","mouseout"],tooltipFillColor:"rgba(0,0,0,0.8)",tooltipFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipFontSize:14,tooltipFontStyle:"normal",tooltipFontColor:"#fff",tooltipTitleFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",tooltipTitleFontSize:14,tooltipTitleFontStyle:"bold",tooltipTitleFontColor:"#fff",tooltipYPadding:6,tooltipXPadding:6,tooltipCaretSize:8,tooltipCornerRadius:6,tooltipXOffset:10,tooltipTemplate:"<%if (label){%><%=label%>: <%}%><%= value %>",multiTooltipTemplate:"<%= value %>",multiTooltipKeyBackground:"#fff",onAnimationProgress:function(){},onAnimationComplete:function(){}}},c.types={};var d=c.helpers={},e=d.each=function(a,b,c){var d=Array.prototype.slice.call(arguments,3);if(a)if(a.length===+a.length){var e;for(e=0;e<a.length;e++)b.apply(c,[a[e],e].concat(d))}else for(var f in a)b.apply(c,[a[f],f].concat(d))},f=d.clone=function(a){var b={};return e(a,function(c,d){a.hasOwnProperty(d)&&(b[d]=c)}),b},g=d.extend=function(a){return e(Array.prototype.slice.call(arguments,1),function(b){e(b,function(c,d){b.hasOwnProperty(d)&&(a[d]=c)})}),a},h=d.merge=function(a,b){var c=Array.prototype.slice.call(arguments,0);return c.unshift({}),g.apply(null,c)},i=d.indexOf=function(a,b){if(Array.prototype.indexOf)return a.indexOf(b);for(var c=0;c<a.length;c++)if(a[c]===b)return c;return-1},j=(d.where=function(a,b){var c=[];return d.each(a,function(a){b(a)&&c.push(a)}),c},d.findNextWhere=function(a,b,c){c||(c=-1);for(var d=c+1;d<a.length;d++){var e=a[d];if(b(e))return e}},d.findPreviousWhere=function(a,b,c){c||(c=a.length);for(var d=c-1;d>=0;d--){var e=a[d];if(b(e))return e}},d.inherits=function(a){var b=this,c=a&&a.hasOwnProperty("constructor")?a.constructor:function(){return b.apply(this,arguments)},d=function(){this.constructor=c};return d.prototype=b.prototype,c.prototype=new d,c.extend=j,a&&g(c.prototype,a),c.__super__=b.prototype,c}),k=d.noop=function(){},l=d.uid=function(){var a=0;return function(){return"chart-"+a++}}(),m=d.warn=function(a){window.console&&"function"==typeof window.console.warn&&console.warn(a)},n=d.amd="function"==typeof define&&define.amd,o=d.isNumber=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},p=d.max=function(a){return Math.max.apply(Math,a)},q=d.min=function(a){return Math.min.apply(Math,a)},r=(d.cap=function(a,b,c){if(o(b)){if(a>b)return b}else if(o(c)&&c>a)return c;return a},d.getDecimalPlaces=function(a){return a%1!==0&&o(a)?a.toString().split(".")[1].length:0}),s=d.radians=function(a){return a*(Math.PI/180)},t=(d.getAngleFromPoint=function(a,b){var c=b.x-a.x,d=b.y-a.y,e=Math.sqrt(c*c+d*d),f=2*Math.PI+Math.atan2(d,c);return 0>c&&0>d&&(f+=2*Math.PI),{angle:f,distance:e}},d.aliasPixel=function(a){return a%2===0?0:.5}),u=(d.splineCurve=function(a,b,c,d){var e=Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-a.y,2)),f=Math.sqrt(Math.pow(c.x-b.x,2)+Math.pow(c.y-b.y,2)),g=d*e/(e+f),h=d*f/(e+f);return{inner:{x:b.x-g*(c.x-a.x),y:b.y-g*(c.y-a.y)},outer:{x:b.x+h*(c.x-a.x),y:b.y+h*(c.y-a.y)}}},d.calculateOrderOfMagnitude=function(a){return Math.floor(Math.log(a)/Math.LN10)}),v=(d.calculateScaleRange=function(a,b,c,d,e){var f=2,g=Math.floor(b/(1.5*c)),h=f>=g,i=p(a),j=q(a);i===j&&(i+=.5,j>=.5&&!d?j-=.5:i+=.5);for(var k=Math.abs(i-j),l=u(k),m=Math.ceil(i/(1*Math.pow(10,l)))*Math.pow(10,l),n=d?0:Math.floor(j/(1*Math.pow(10,l)))*Math.pow(10,l),o=m-n,r=Math.pow(10,l),s=Math.round(o/r);(s>g||g>2*s)&&!h;)if(s>g)r*=2,s=Math.round(o/r),s%1!==0&&(h=!0);else if(e&&l>=0){if(r/2%1!==0)break;r/=2,s=Math.round(o/r)}else r/=2,s=Math.round(o/r);return h&&(s=f,r=o/s),{steps:s,stepValue:r,min:n,max:n+s*r}},d.template=function(a,b){function c(a,b){var c=/\W/.test(a)?new Function("obj","var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('"+a.replace(/[\r\t\n]/g," ").split("<%").join("        ").replace(/((^|%>)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("   ").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');"):d[a]=d[a];return b?c(b):c}if(a instanceof Function)return a(b);var d={};return c(a,b)}),w=(d.generateLabels=function(a,b,c,d){var f=new Array(b);return labelTemplateString&&e(f,function(b,e){f[e]=v(a,{value:c+d*(e+1)})}),f},d.easingEffects={linear:function(a){return a},easeInQuad:function(a){return a*a},easeOutQuad:function(a){return-1*a*(a-2)},easeInOutQuad:function(a){return(a/=.5)<1?.5*a*a:-0.5*(--a*(a-2)-1)},easeInCubic:function(a){return a*a*a},easeOutCubic:function(a){return 1*((a=a/1-1)*a*a+1)},easeInOutCubic:function(a){return(a/=.5)<1?.5*a*a*a:.5*((a-=2)*a*a+2)},easeInQuart:function(a){return a*a*a*a},easeOutQuart:function(a){return-1*((a=a/1-1)*a*a*a-1)},easeInOutQuart:function(a){return(a/=.5)<1?.5*a*a*a*a:-0.5*((a-=2)*a*a*a-2)},easeInQuint:function(a){return 1*(a/=1)*a*a*a*a},easeOutQuint:function(a){return 1*((a=a/1-1)*a*a*a*a+1)},easeInOutQuint:function(a){return(a/=.5)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)},easeInSine:function(a){return-1*Math.cos(a/1*(Math.PI/2))+1},easeOutSine:function(a){return 1*Math.sin(a/1*(Math.PI/2))},easeInOutSine:function(a){return-0.5*(Math.cos(Math.PI*a/1)-1)},easeInExpo:function(a){return 0===a?1:1*Math.pow(2,10*(a/1-1))},easeOutExpo:function(a){return 1===a?1:1*(-Math.pow(2,-10*a/1)+1)},easeInOutExpo:function(a){return 0===a?0:1===a?1:(a/=.5)<1?.5*Math.pow(2,10*(a-1)):.5*(-Math.pow(2,-10*--a)+2)},easeInCirc:function(a){return a>=1?a:-1*(Math.sqrt(1-(a/=1)*a)-1)},easeOutCirc:function(a){return 1*Math.sqrt(1-(a=a/1-1)*a)},easeInOutCirc:function(a){return(a/=.5)<1?-0.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)},easeInElastic:function(a){var b=1.70158,c=0,d=1;return 0===a?0:1==(a/=1)?1:(c||(c=.3),d<Math.abs(1)?(d=1,b=c/4):b=c/(2*Math.PI)*Math.asin(1/d),-(d*Math.pow(2,10*(a-=1))*Math.sin((1*a-b)*(2*Math.PI)/c)))},easeOutElastic:function(a){var b=1.70158,c=0,d=1;return 0===a?0:1==(a/=1)?1:(c||(c=.3),d<Math.abs(1)?(d=1,b=c/4):b=c/(2*Math.PI)*Math.asin(1/d),d*Math.pow(2,-10*a)*Math.sin((1*a-b)*(2*Math.PI)/c)+1)},easeInOutElastic:function(a){var b=1.70158,c=0,d=1;return 0===a?0:2==(a/=.5)?1:(c||(c=1*(.3*1.5)),d<Math.abs(1)?(d=1,b=c/4):b=c/(2*Math.PI)*Math.asin(1/d),1>a?-.5*(d*Math.pow(2,10*(a-=1))*Math.sin((1*a-b)*(2*Math.PI)/c)):d*Math.pow(2,-10*(a-=1))*Math.sin((1*a-b)*(2*Math.PI)/c)*.5+1)},easeInBack:function(a){var b=1.70158;return 1*(a/=1)*a*((b+1)*a-b)},easeOutBack:function(a){var b=1.70158;return 1*((a=a/1-1)*a*((b+1)*a+b)+1)},easeInOutBack:function(a){var b=1.70158;return(a/=.5)<1?.5*(a*a*(((b*=1.525)+1)*a-b)):.5*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)},easeInBounce:function(a){return 1-w.easeOutBounce(1-a)},easeOutBounce:function(a){return(a/=1)<1/2.75?1*(7.5625*a*a):2/2.75>a?1*(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>a?1*(7.5625*(a-=2.25/2.75)*a+.9375):1*(7.5625*(a-=2.625/2.75)*a+.984375)},easeInOutBounce:function(a){return.5>a?.5*w.easeInBounce(2*a):.5*w.easeOutBounce(2*a-1)+.5}}),x=d.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){return window.setTimeout(a,1e3/60)}}(),y=d.cancelAnimFrame=function(){return window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||window.msCancelAnimationFrame||function(a){return window.clearTimeout(a,1e3/60)}}(),z=(d.animationLoop=function(a,b,c,d,e,f){var g=0,h=w[c]||w.linear,i=function(){g++;var c=g/b,j=h(c);a.call(f,j,c,g),d.call(f,j,c),b>g?f.animationFrame=x(i):e.apply(f)};x(i)},d.getRelativePosition=function(a){var b,c,d=a.originalEvent||a,e=a.currentTarget||a.srcElement,f=e.getBoundingClientRect();return d.touches?(b=d.touches[0].clientX-f.left,c=d.touches[0].clientY-f.top):(b=d.clientX-f.left,c=d.clientY-f.top),{x:b,y:c}},d.addEvent=function(a,b,c){a.addEventListener?a.addEventListener(b,c):a.attachEvent?a.attachEvent("on"+b,c):a["on"+b]=c}),A=d.removeEvent=function(a,b,c){a.removeEventListener?a.removeEventListener(b,c,!1):a.detachEvent?a.detachEvent("on"+b,c):a["on"+b]=k},B=(d.bindEvents=function(a,b,c){a.events||(a.events={}),e(b,function(b){a.events[b]=function(){c.apply(a,arguments)},z(a.chart.canvas,b,a.events[b])})},d.unbindEvents=function(a,b){e(b,function(b,c){A(a.chart.canvas,c,b)})}),C=d.getMaximumWidth=function(a){var b=a.parentNode;return b.clientWidth},D=d.getMaximumHeight=function(a){var b=a.parentNode;return b.clientHeight},E=(d.getMaximumSize=d.getMaximumWidth,d.retinaScale=function(a){var b=a.ctx,c=a.canvas.width,d=a.canvas.height;window.devicePixelRatio&&(b.canvas.style.width=c+"px",b.canvas.style.height=d+"px",b.canvas.height=d*window.devicePixelRatio,b.canvas.width=c*window.devicePixelRatio,b.scale(window.devicePixelRatio,window.devicePixelRatio))}),F=d.clear=function(a){a.ctx.clearRect(0,0,a.width,a.height)},G=d.fontString=function(a,b,c){return b+" "+a+"px "+c},H=d.longestText=function(a,b,c){a.font=b;var d=0;return e(c,function(b){var c=a.measureText(b).width;d=c>d?c:d}),d},I=d.drawRoundedRectangle=function(a,b,c,d,e,f){a.beginPath(),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadraticCurveTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadraticCurveTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadraticCurveTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadraticCurveTo(b,c,b+f,c),a.closePath()};c.instances={},c.Type=function(a,b,d){this.options=b,this.chart=d,this.id=l(),c.instances[this.id]=this,b.responsive&&this.resize(),this.initialize.call(this,a)},g(c.Type.prototype,{initialize:function(){return this},clear:function(){return F(this.chart),this},stop:function(){return y(this.animationFrame),this},resize:function(a){this.stop();var b=this.chart.canvas,c=C(this.chart.canvas),d=this.options.maintainAspectRatio?c/this.chart.aspectRatio:D(this.chart.canvas);return b.width=this.chart.width=c,b.height=this.chart.height=d,E(this.chart),"function"==typeof a&&a.apply(this,Array.prototype.slice.call(arguments,1)),this},reflow:k,render:function(a){return a&&this.reflow(),this.options.animation&&!a?d.animationLoop(this.draw,this.options.animationSteps,this.options.animationEasing,this.options.onAnimationProgress,this.options.onAnimationComplete,this):(this.draw(),this.options.onAnimationComplete.call(this)),this},generateLegend:function(){return v(this.options.legendTemplate,this)},destroy:function(){this.clear(),B(this,this.events);var a=this.chart.canvas;a.width=this.chart.width,a.height=this.chart.height,a.style.removeProperty?(a.style.removeProperty("width"),a.style.removeProperty("height")):(a.style.removeAttribute("width"),a.style.removeAttribute("height")),delete c.instances[this.id]},showTooltip:function(a,b){"undefined"==typeof this.activeElements&&(this.activeElements=[]);var f=function(a){var b=!1;return a.length!==this.activeElements.length?b=!0:(e(a,function(a,c){a!==this.activeElements[c]&&(b=!0)},this),b)}.call(this,a);if(f||b){if(this.activeElements=a,this.draw(),this.options.customTooltips&&this.options.customTooltips(!1),a.length>0)if(this.datasets&&this.datasets.length>1){for(var g,h,j=this.datasets.length-1;j>=0&&(g=this.datasets[j].points||this.datasets[j].bars||this.datasets[j].segments,h=i(g,a[0]),-1===h);j--);var k=[],l=[],m=function(a){var b,c,e,f,g,i=[],j=[],m=[];return d.each(this.datasets,function(a){b=a.points||a.bars||a.segments,b[h]&&b[h].hasValue()&&i.push(b[h])}),d.each(i,function(a){j.push(a.x),m.push(a.y),k.push(d.template(this.options.multiTooltipTemplate,a)),l.push({fill:a._saved.fillColor||a.fillColor,stroke:a._saved.strokeColor||a.strokeColor})},this),g=q(m),e=p(m),f=q(j),c=p(j),{x:f>this.chart.width/2?f:c,y:(g+e)/2}}.call(this,h);new c.MultiTooltip({x:m.x,y:m.y,xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,xOffset:this.options.tooltipXOffset,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,titleTextColor:this.options.tooltipTitleFontColor,titleFontFamily:this.options.tooltipTitleFontFamily,titleFontStyle:this.options.tooltipTitleFontStyle,titleFontSize:this.options.tooltipTitleFontSize,cornerRadius:this.options.tooltipCornerRadius,labels:k,legendColors:l,legendColorBackground:this.options.multiTooltipKeyBackground,title:a[0].label,chart:this.chart,ctx:this.chart.ctx,custom:this.options.customTooltips}).draw()}else e(a,function(a){var b=a.tooltipPosition();new c.Tooltip({x:Math.round(b.x),y:Math.round(b.y),xPadding:this.options.tooltipXPadding,yPadding:this.options.tooltipYPadding,fillColor:this.options.tooltipFillColor,textColor:this.options.tooltipFontColor,fontFamily:this.options.tooltipFontFamily,fontStyle:this.options.tooltipFontStyle,fontSize:this.options.tooltipFontSize,caretHeight:this.options.tooltipCaretSize,cornerRadius:this.options.tooltipCornerRadius,text:v(this.options.tooltipTemplate,a),chart:this.chart,custom:this.options.customTooltips}).draw()},this);return this}},toBase64Image:function(){return this.chart.canvas.toDataURL.apply(this.chart.canvas,arguments)}}),c.Type.extend=function(a){var b=this,d=function(){return b.apply(this,arguments)};if(d.prototype=f(b.prototype),g(d.prototype,a),d.extend=c.Type.extend,a.name||b.prototype.name){var e=a.name||b.prototype.name,i=c.defaults[b.prototype.name]?f(c.defaults[b.prototype.name]):{};c.defaults[e]=g(i,a.defaults),c.types[e]=d,c.prototype[e]=function(a,b){var f=h(c.defaults.global,c.defaults[e],b||{});return new d(a,f,this)}}else m("Name not provided for this chart, so it hasn't been registered");return b},c.Element=function(a){g(this,a),this.initialize.apply(this,arguments),this.save()},g(c.Element.prototype,{initialize:function(){},restore:function(a){return a?e(a,function(a){this[a]=this._saved[a]},this):g(this,this._saved),this},save:function(){return this._saved=f(this),delete this._saved._saved,this},update:function(a){return e(a,function(a,b){this._saved[b]=this[b],this[b]=a},this),this},transition:function(a,b){return e(a,function(a,c){this[c]=(a-this._saved[c])*b+this._saved[c]},this),this},tooltipPosition:function(){return{x:this.x,y:this.y}},hasValue:function(){return o(this.value)}}),c.Element.extend=j,c.Point=c.Element.extend({display:!0,inRange:function(a,b){var c=this.hitDetectionRadius+this.radius;return Math.pow(a-this.x,2)+Math.pow(b-this.y,2)<Math.pow(c,2)},draw:function(){if(this.display){var a=this.ctx;a.beginPath(),a.arc(this.x,this.y,this.radius,0,2*Math.PI),a.closePath(),a.strokeStyle=this.strokeColor,a.lineWidth=this.strokeWidth,a.fillStyle=this.fillColor,a.fill(),a.stroke()}}}),c.Arc=c.Element.extend({inRange:function(a,b){var c=d.getAngleFromPoint(this,{x:a,y:b}),e=c.angle>=this.startAngle&&c.angle<=this.endAngle,f=c.distance>=this.innerRadius&&c.distance<=this.outerRadius;return e&&f},tooltipPosition:function(){var a=this.startAngle+(this.endAngle-this.startAngle)/2,b=(this.outerRadius-this.innerRadius)/2+this.innerRadius;return{x:this.x+Math.cos(a)*b,y:this.y+Math.sin(a)*b}},draw:function(a){var b=this.ctx;b.beginPath(),b.arc(this.x,this.y,this.outerRadius,this.startAngle,this.endAngle),b.arc(this.x,this.y,this.innerRadius,this.endAngle,this.startAngle,!0),b.closePath(),b.strokeStyle=this.strokeColor,b.lineWidth=this.strokeWidth,b.fillStyle=this.fillColor,b.fill(),b.lineJoin="bevel",this.showStroke&&b.stroke()}}),c.Rectangle=c.Element.extend({draw:function(){var a=this.ctx,b=this.width/2,c=this.x-b,d=this.x+b,e=this.base-(this.base-this.y),f=this.strokeWidth/2;this.showStroke&&(c+=f,d-=f,e+=f),a.beginPath(),a.fillStyle=this.fillColor,a.strokeStyle=this.strokeColor,a.lineWidth=this.strokeWidth,a.moveTo(c,this.base),a.lineTo(c,e),a.lineTo(d,e),a.lineTo(d,this.base),a.fill(),this.showStroke&&a.stroke()},height:function(){return this.base-this.y},inRange:function(a,b){return a>=this.x-this.width/2&&a<=this.x+this.width/2&&b>=this.y&&b<=this.base}}),c.Tooltip=c.Element.extend({draw:function(){var a=this.chart.ctx;a.font=G(this.fontSize,this.fontStyle,this.fontFamily),this.xAlign="center",this.yAlign="above";var b=this.caretPadding=2,c=a.measureText(this.text).width+2*this.xPadding,d=this.fontSize+2*this.yPadding,e=d+this.caretHeight+b;this.x+c/2>this.chart.width?this.xAlign="left":this.x-c/2<0&&(this.xAlign="right"),this.y-e<0&&(this.yAlign="below");var f=this.x-c/2,g=this.y-e;if(a.fillStyle=this.fillColor,this.custom)this.custom(this);else{switch(this.yAlign){case"above":a.beginPath(),a.moveTo(this.x,this.y-b),a.lineTo(this.x+this.caretHeight,this.y-(b+this.caretHeight)),a.lineTo(this.x-this.caretHeight,this.y-(b+this.caretHeight)),a.closePath(),a.fill();break;case"below":g=this.y+b+this.caretHeight,a.beginPath(),a.moveTo(this.x,this.y+b),a.lineTo(this.x+this.caretHeight,this.y+b+this.caretHeight),a.lineTo(this.x-this.caretHeight,this.y+b+this.caretHeight),a.closePath(),a.fill()}switch(this.xAlign){case"left":f=this.x-c+(this.cornerRadius+this.caretHeight);break;case"right":f=this.x-(this.cornerRadius+this.caretHeight)}I(a,f,g,c,d,this.cornerRadius),a.fill(),a.fillStyle=this.textColor,a.textAlign="center",a.textBaseline="middle",a.fillText(this.text,f+c/2,g+d/2)}}}),c.MultiTooltip=c.Element.extend({initialize:function(){this.font=G(this.fontSize,this.fontStyle,this.fontFamily),this.titleFont=G(this.titleFontSize,this.titleFontStyle,this.titleFontFamily),this.height=this.labels.length*this.fontSize+(this.labels.length-1)*(this.fontSize/2)+2*this.yPadding+1.5*this.titleFontSize,this.ctx.font=this.titleFont;var a=this.ctx.measureText(this.title).width,b=H(this.ctx,this.font,this.labels)+this.fontSize+3,c=p([b,a]);this.width=c+2*this.xPadding;var d=this.height/2;this.y-d<0?this.y=d:this.y+d>this.chart.height&&(this.y=this.chart.height-d),this.x>this.chart.width/2?this.x-=this.xOffset+this.width:this.x+=this.xOffset},getLineHeight:function(a){var b=this.y-this.height/2+this.yPadding,c=a-1;return 0===a?b+this.titleFontSize/2:b+(1.5*this.fontSize*c+this.fontSize/2)+1.5*this.titleFontSize},draw:function(){if(this.custom)this.custom(this);else{I(this.ctx,this.x,this.y-this.height/2,this.width,this.height,this.cornerRadius);var a=this.ctx;a.fillStyle=this.fillColor,
+a.fill(),a.closePath(),a.textAlign="left",a.textBaseline="middle",a.fillStyle=this.titleTextColor,a.font=this.titleFont,a.fillText(this.title,this.x+this.xPadding,this.getLineHeight(0)),a.font=this.font,d.each(this.labels,function(b,c){a.fillStyle=this.textColor,a.fillText(b,this.x+this.xPadding+this.fontSize+3,this.getLineHeight(c+1)),a.fillStyle=this.legendColorBackground,a.fillRect(this.x+this.xPadding,this.getLineHeight(c+1)-this.fontSize/2,this.fontSize,this.fontSize),a.fillStyle=this.legendColors[c].fill,a.fillRect(this.x+this.xPadding,this.getLineHeight(c+1)-this.fontSize/2,this.fontSize,this.fontSize)},this)}}}),c.Scale=c.Element.extend({initialize:function(){this.fit()},buildYLabels:function(){this.yLabels=[];for(var a=r(this.stepValue),b=0;b<=this.steps;b++)this.yLabels.push(v(this.templateString,{value:(this.min+b*this.stepValue).toFixed(a)}));this.yLabelWidth=this.display&&this.showLabels?H(this.ctx,this.font,this.yLabels):0},addXLabel:function(a){this.xLabels.push(a),this.valuesCount++,this.fit()},removeXLabel:function(){this.xLabels.shift(),this.valuesCount--,this.fit()},fit:function(){this.startPoint=this.display?this.fontSize:0,this.endPoint=this.display?this.height-1.5*this.fontSize-5:this.height,this.startPoint+=this.padding,this.endPoint-=this.padding;var a,b=this.endPoint-this.startPoint;for(this.calculateYRange(b),this.buildYLabels(),this.calculateXLabelRotation();b>this.endPoint-this.startPoint;)b=this.endPoint-this.startPoint,a=this.yLabelWidth,this.calculateYRange(b),this.buildYLabels(),a<this.yLabelWidth&&this.calculateXLabelRotation()},calculateXLabelRotation:function(){this.ctx.font=this.font;var a,b,c=this.ctx.measureText(this.xLabels[0]).width,d=this.ctx.measureText(this.xLabels[this.xLabels.length-1]).width;if(this.xScalePaddingRight=d/2+3,this.xScalePaddingLeft=c/2>this.yLabelWidth+10?c/2:this.yLabelWidth+10,this.xLabelRotation=0,this.display){var e,f=H(this.ctx,this.font,this.xLabels);this.xLabelWidth=f;for(var g=Math.floor(this.calculateX(1)-this.calculateX(0))-6;this.xLabelWidth>g&&0===this.xLabelRotation||this.xLabelWidth>g&&this.xLabelRotation<=90&&this.xLabelRotation>0;)e=Math.cos(s(this.xLabelRotation)),a=e*c,b=e*d,a+this.fontSize/2>this.yLabelWidth+8&&(this.xScalePaddingLeft=a+this.fontSize/2),this.xScalePaddingRight=this.fontSize/2,this.xLabelRotation++,this.xLabelWidth=e*f;this.xLabelRotation>0&&(this.endPoint-=Math.sin(s(this.xLabelRotation))*f+3)}else this.xLabelWidth=0,this.xScalePaddingRight=this.padding,this.xScalePaddingLeft=this.padding},calculateYRange:k,drawingArea:function(){return this.startPoint-this.endPoint},calculateY:function(a){var b=this.drawingArea()/(this.min-this.max);return this.endPoint-b*(a-this.min)},calculateX:function(a){var b=(this.xLabelRotation>0,this.width-(this.xScalePaddingLeft+this.xScalePaddingRight)),c=b/Math.max(this.valuesCount-(this.offsetGridLines?0:1),1),d=c*a+this.xScalePaddingLeft;return this.offsetGridLines&&(d+=c/2),Math.round(d)},update:function(a){d.extend(this,a),this.fit()},draw:function(){var a=this.ctx,b=(this.endPoint-this.startPoint)/this.steps,c=Math.round(this.xScalePaddingLeft);this.display&&(a.fillStyle=this.textColor,a.font=this.font,e(this.yLabels,function(e,f){var g=this.endPoint-b*f,h=Math.round(g),i=this.showHorizontalLines;a.textAlign="right",a.textBaseline="middle",this.showLabels&&a.fillText(e,c-10,g),0!==f||i||(i=!0),i&&a.beginPath(),f>0?(a.lineWidth=this.gridLineWidth,a.strokeStyle=this.gridLineColor):(a.lineWidth=this.lineWidth,a.strokeStyle=this.lineColor),h+=d.aliasPixel(a.lineWidth),i&&(a.moveTo(c,h),a.lineTo(this.width,h),a.stroke(),a.closePath()),a.lineWidth=this.lineWidth,a.strokeStyle=this.lineColor,a.beginPath(),a.moveTo(c-5,h),a.lineTo(c,h),a.stroke(),a.closePath()},this),e(this.xLabels,function(b,c){var d=this.calculateX(c)+t(this.lineWidth),e=this.calculateX(c-(this.offsetGridLines?.5:0))+t(this.lineWidth),f=this.xLabelRotation>0,g=this.showVerticalLines;0!==c||g||(g=!0),g&&a.beginPath(),c>0?(a.lineWidth=this.gridLineWidth,a.strokeStyle=this.gridLineColor):(a.lineWidth=this.lineWidth,a.strokeStyle=this.lineColor),g&&(a.moveTo(e,this.endPoint),a.lineTo(e,this.startPoint-3),a.stroke(),a.closePath()),a.lineWidth=this.lineWidth,a.strokeStyle=this.lineColor,a.beginPath(),a.moveTo(e,this.endPoint),a.lineTo(e,this.endPoint+5),a.stroke(),a.closePath(),a.save(),a.translate(d,f?this.endPoint+12:this.endPoint+8),a.rotate(-1*s(this.xLabelRotation)),a.font=this.font,a.textAlign=f?"right":"center",a.textBaseline=f?"middle":"top",a.fillText(b,0,0),a.restore()},this))}}),c.RadialScale=c.Element.extend({initialize:function(){this.size=q([this.height,this.width]),this.drawingArea=this.display?this.size/2-(this.fontSize/2+this.backdropPaddingY):this.size/2},calculateCenterOffset:function(a){var b=this.drawingArea/(this.max-this.min);return(a-this.min)*b},update:function(){this.lineArc?this.drawingArea=this.display?this.size/2-(this.fontSize/2+this.backdropPaddingY):this.size/2:this.setScaleSize(),this.buildYLabels()},buildYLabels:function(){this.yLabels=[];for(var a=r(this.stepValue),b=0;b<=this.steps;b++)this.yLabels.push(v(this.templateString,{value:(this.min+b*this.stepValue).toFixed(a)}))},getCircumference:function(){return 2*Math.PI/this.valuesCount},setScaleSize:function(){var a,b,c,d,e,f,g,h,i,j,k,l,m=q([this.height/2-this.pointLabelFontSize-5,this.width/2]),n=this.width,p=0;for(this.ctx.font=G(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily),b=0;b<this.valuesCount;b++)a=this.getPointPosition(b,m),c=this.ctx.measureText(v(this.templateString,{value:this.labels[b]})).width+5,0===b||b===this.valuesCount/2?(d=c/2,a.x+d>n&&(n=a.x+d,e=b),a.x-d<p&&(p=a.x-d,g=b)):b<this.valuesCount/2?a.x+c>n&&(n=a.x+c,e=b):b>this.valuesCount/2&&a.x-c<p&&(p=a.x-c,g=b);i=p,j=Math.ceil(n-this.width),f=this.getIndexAngle(e),h=this.getIndexAngle(g),k=j/Math.sin(f+Math.PI/2),l=i/Math.sin(h+Math.PI/2),k=o(k)?k:0,l=o(l)?l:0,this.drawingArea=m-(l+k)/2,this.setCenterPoint(l,k)},setCenterPoint:function(a,b){var c=this.width-b-this.drawingArea,d=a+this.drawingArea;this.xCenter=(d+c)/2,this.yCenter=this.height/2},getIndexAngle:function(a){var b=2*Math.PI/this.valuesCount;return a*b-Math.PI/2},getPointPosition:function(a,b){var c=this.getIndexAngle(a);return{x:Math.cos(c)*b+this.xCenter,y:Math.sin(c)*b+this.yCenter}},draw:function(){if(this.display){var a=this.ctx;if(e(this.yLabels,function(b,c){if(c>0){var d,e=c*(this.drawingArea/this.steps),f=this.yCenter-e;if(this.lineWidth>0)if(a.strokeStyle=this.lineColor,a.lineWidth=this.lineWidth,this.lineArc)a.beginPath(),a.arc(this.xCenter,this.yCenter,e,0,2*Math.PI),a.closePath(),a.stroke();else{a.beginPath();for(var g=0;g<this.valuesCount;g++)d=this.getPointPosition(g,this.calculateCenterOffset(this.min+c*this.stepValue)),0===g?a.moveTo(d.x,d.y):a.lineTo(d.x,d.y);a.closePath(),a.stroke()}if(this.showLabels){if(a.font=G(this.fontSize,this.fontStyle,this.fontFamily),this.showLabelBackdrop){var h=a.measureText(b).width;a.fillStyle=this.backdropColor,a.fillRect(this.xCenter-h/2-this.backdropPaddingX,f-this.fontSize/2-this.backdropPaddingY,h+2*this.backdropPaddingX,this.fontSize+2*this.backdropPaddingY)}a.textAlign="center",a.textBaseline="middle",a.fillStyle=this.fontColor,a.fillText(b,this.xCenter,f)}}},this),!this.lineArc){a.lineWidth=this.angleLineWidth,a.strokeStyle=this.angleLineColor;for(var b=this.valuesCount-1;b>=0;b--){if(this.angleLineWidth>0){var c=this.getPointPosition(b,this.calculateCenterOffset(this.max));a.beginPath(),a.moveTo(this.xCenter,this.yCenter),a.lineTo(c.x,c.y),a.stroke(),a.closePath()}var d=this.getPointPosition(b,this.calculateCenterOffset(this.max)+5);a.font=G(this.pointLabelFontSize,this.pointLabelFontStyle,this.pointLabelFontFamily),a.fillStyle=this.pointLabelFontColor;var f=this.labels.length,g=this.labels.length/2,h=g/2,i=h>b||b>f-h,j=b===h||b===f-h;0===b?a.textAlign="center":b===g?a.textAlign="center":g>b?a.textAlign="left":a.textAlign="right",j?a.textBaseline="middle":i?a.textBaseline="bottom":a.textBaseline="top",a.fillText(this.labels[b],d.x,d.y)}}}}}),d.addEvent(window,"resize",function(){var a;return function(){clearTimeout(a),a=setTimeout(function(){e(c.instances,function(a){a.options.responsive&&a.resize(a.render,!0)})},50)}}()),n?define(function(){return c}):"object"==typeof module&&module.exports&&(module.exports=c),a.Chart=c,c.noConflict=function(){return a.Chart=b,c}}.call(this),function(){"use strict";var a=this,b=a.Chart,c=b.helpers,d={scaleBeginAtZero:!0,scaleShowGridLines:!0,scaleGridLineColor:"rgba(0,0,0,.05)",scaleGridLineWidth:1,scaleShowHorizontalLines:!0,scaleShowVerticalLines:!0,barShowStroke:!0,barStrokeWidth:2,barValueSpacing:5,barDatasetSpacing:1,legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<datasets.length; i++){%><li><span style="background-color:<%=datasets[i].fillColor%>"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>'};b.Type.extend({name:"Bar",defaults:d,initialize:function(a){var d=this.options;this.ScaleClass=b.Scale.extend({offsetGridLines:!0,calculateBarX:function(a,b,c){var e=this.calculateBaseWidth(),f=this.calculateX(c)-e/2,g=this.calculateBarWidth(a);return f+g*b+b*d.barDatasetSpacing+g/2},calculateBaseWidth:function(){return this.calculateX(1)-this.calculateX(0)-2*d.barValueSpacing},calculateBarWidth:function(a){var b=this.calculateBaseWidth()-(a-1)*d.barDatasetSpacing;return b/a}}),this.datasets=[],this.options.showTooltips&&c.bindEvents(this,this.options.tooltipEvents,function(a){var b="mouseout"!==a.type?this.getBarsAtEvent(a):[];this.eachBars(function(a){a.restore(["fillColor","strokeColor"])}),c.each(b,function(a){a.fillColor=a.highlightFill,a.strokeColor=a.highlightStroke}),this.showTooltip(b)}),this.BarClass=b.Rectangle.extend({strokeWidth:this.options.barStrokeWidth,showStroke:this.options.barShowStroke,ctx:this.chart.ctx}),c.each(a.datasets,function(b,d){var e={label:b.label||null,fillColor:b.fillColor,strokeColor:b.strokeColor,bars:[]};this.datasets.push(e),c.each(b.data,function(c,d){e.bars.push(new this.BarClass({value:c,label:a.labels[d],datasetLabel:b.label,strokeColor:b.strokeColor,fillColor:b.fillColor,highlightFill:b.highlightFill||b.fillColor,highlightStroke:b.highlightStroke||b.strokeColor}))},this)},this),this.buildScale(a.labels),this.BarClass.prototype.base=this.scale.endPoint,this.eachBars(function(a,b,d){c.extend(a,{width:this.scale.calculateBarWidth(this.datasets.length),x:this.scale.calculateBarX(this.datasets.length,d,b),y:this.scale.endPoint}),a.save()},this),this.render()},update:function(){this.scale.update(),c.each(this.activeElements,function(a){a.restore(["fillColor","strokeColor"])}),this.eachBars(function(a){a.save()}),this.render()},eachBars:function(a){c.each(this.datasets,function(b,d){c.each(b.bars,a,this,d)},this)},getBarsAtEvent:function(a){for(var b,d=[],e=c.getRelativePosition(a),f=function(a){d.push(a.bars[b])},g=0;g<this.datasets.length;g++)for(b=0;b<this.datasets[g].bars.length;b++)if(this.datasets[g].bars[b].inRange(e.x,e.y))return c.each(this.datasets,f),d;return d},buildScale:function(a){var b=this,d=function(){var a=[];return b.eachBars(function(b){a.push(b.value)}),a},e={templateString:this.options.scaleLabel,height:this.chart.height,width:this.chart.width,ctx:this.chart.ctx,textColor:this.options.scaleFontColor,fontSize:this.options.scaleFontSize,fontStyle:this.options.scaleFontStyle,fontFamily:this.options.scaleFontFamily,valuesCount:a.length,beginAtZero:this.options.scaleBeginAtZero,integersOnly:this.options.scaleIntegersOnly,calculateYRange:function(a){var b=c.calculateScaleRange(d(),a,this.fontSize,this.beginAtZero,this.integersOnly);c.extend(this,b)},xLabels:a,font:c.fontString(this.options.scaleFontSize,this.options.scaleFontStyle,this.options.scaleFontFamily),lineWidth:this.options.scaleLineWidth,lineColor:this.options.scaleLineColor,showHorizontalLines:this.options.scaleShowHorizontalLines,showVerticalLines:this.options.scaleShowVerticalLines,gridLineWidth:this.options.scaleShowGridLines?this.options.scaleGridLineWidth:0,gridLineColor:this.options.scaleShowGridLines?this.options.scaleGridLineColor:"rgba(0,0,0,0)",padding:this.options.showScale?0:this.options.barShowStroke?this.options.barStrokeWidth:0,showLabels:this.options.scaleShowLabels,display:this.options.showScale};this.options.scaleOverride&&c.extend(e,{calculateYRange:c.noop,steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}),this.scale=new this.ScaleClass(e)},addData:function(a,b){c.each(a,function(a,c){this.datasets[c].bars.push(new this.BarClass({value:a,label:b,x:this.scale.calculateBarX(this.datasets.length,c,this.scale.valuesCount+1),y:this.scale.endPoint,width:this.scale.calculateBarWidth(this.datasets.length),base:this.scale.endPoint,strokeColor:this.datasets[c].strokeColor,fillColor:this.datasets[c].fillColor}))},this),this.scale.addXLabel(b),this.update()},removeData:function(){this.scale.removeXLabel(),c.each(this.datasets,function(a){a.bars.shift()},this),this.update()},reflow:function(){c.extend(this.BarClass.prototype,{y:this.scale.endPoint,base:this.scale.endPoint});var a=c.extend({height:this.chart.height,width:this.chart.width});this.scale.update(a)},draw:function(a){var b=a||1;this.clear();this.chart.ctx;this.scale.draw(b),c.each(this.datasets,function(a,d){c.each(a.bars,function(a,c){a.hasValue()&&(a.base=this.scale.endPoint,a.transition({x:this.scale.calculateBarX(this.datasets.length,d,c),y:this.scale.calculateY(a.value),width:this.scale.calculateBarWidth(this.datasets.length)},b).draw())},this)},this)}})}.call(this),function(){"use strict";var a=this,b=a.Chart,c=b.helpers,d={segmentShowStroke:!0,segmentStrokeColor:"#fff",segmentStrokeWidth:2,percentageInnerCutout:50,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:!0,animateScale:!1,legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<segments.length; i++){%><li><span style="background-color:<%=segments[i].fillColor%>"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>'};b.Type.extend({name:"Doughnut",defaults:d,initialize:function(a){this.segments=[],this.outerRadius=(c.min([this.chart.width,this.chart.height])-this.options.segmentStrokeWidth/2)/2,this.SegmentArc=b.Arc.extend({ctx:this.chart.ctx,x:this.chart.width/2,y:this.chart.height/2}),this.options.showTooltips&&c.bindEvents(this,this.options.tooltipEvents,function(a){var b="mouseout"!==a.type?this.getSegmentsAtEvent(a):[];c.each(this.segments,function(a){a.restore(["fillColor"])}),c.each(b,function(a){a.fillColor=a.highlightColor}),this.showTooltip(b)}),this.calculateTotal(a),c.each(a,function(a,b){this.addData(a,b,!0)},this),this.render()},getSegmentsAtEvent:function(a){var b=[],d=c.getRelativePosition(a);return c.each(this.segments,function(a){a.inRange(d.x,d.y)&&b.push(a)},this),b},addData:function(a,b,c){var d=b||this.segments.length;this.segments.splice(d,0,new this.SegmentArc({value:a.value,outerRadius:this.options.animateScale?0:this.outerRadius,innerRadius:this.options.animateScale?0:this.outerRadius/100*this.options.percentageInnerCutout,fillColor:a.color,highlightColor:a.highlight||a.color,showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,startAngle:1.5*Math.PI,circumference:this.options.animateRotate?0:this.calculateCircumference(a.value),label:a.label})),c||(this.reflow(),this.update())},calculateCircumference:function(a){return 2*Math.PI*(Math.abs(a)/this.total)},calculateTotal:function(a){this.total=0,c.each(a,function(a){this.total+=Math.abs(a.value)},this)},update:function(){this.calculateTotal(this.segments),c.each(this.activeElements,function(a){a.restore(["fillColor"])}),c.each(this.segments,function(a){a.save()}),this.render()},removeData:function(a){var b=c.isNumber(a)?a:this.segments.length-1;this.segments.splice(b,1),this.reflow(),this.update()},reflow:function(){c.extend(this.SegmentArc.prototype,{x:this.chart.width/2,y:this.chart.height/2}),this.outerRadius=(c.min([this.chart.width,this.chart.height])-this.options.segmentStrokeWidth/2)/2,c.each(this.segments,function(a){a.update({outerRadius:this.outerRadius,innerRadius:this.outerRadius/100*this.options.percentageInnerCutout})},this)},draw:function(a){var b=a?a:1;this.clear(),c.each(this.segments,function(a,c){a.transition({circumference:this.calculateCircumference(a.value),outerRadius:this.outerRadius,innerRadius:this.outerRadius/100*this.options.percentageInnerCutout},b),a.endAngle=a.startAngle+a.circumference,a.draw(),0===c&&(a.startAngle=1.5*Math.PI),c<this.segments.length-1&&(this.segments[c+1].startAngle=a.endAngle)},this)}}),b.types.Doughnut.extend({name:"Pie",defaults:c.merge(d,{percentageInnerCutout:0})})}.call(this),function(){"use strict";var a=this,b=a.Chart,c=b.helpers,d={scaleShowGridLines:!0,scaleGridLineColor:"rgba(0,0,0,.05)",scaleGridLineWidth:1,scaleShowHorizontalLines:!0,scaleShowVerticalLines:!0,bezierCurve:!0,bezierCurveTension:.4,pointDot:!0,pointDotRadius:4,pointDotStrokeWidth:1,pointHitDetectionRadius:20,datasetStroke:!0,datasetStrokeWidth:2,datasetFill:!0,legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<datasets.length; i++){%><li><span style="background-color:<%=datasets[i].strokeColor%>"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>'};b.Type.extend({name:"Line",defaults:d,initialize:function(a){this.PointClass=b.Point.extend({strokeWidth:this.options.pointDotStrokeWidth,radius:this.options.pointDotRadius,display:this.options.pointDot,hitDetectionRadius:this.options.pointHitDetectionRadius,ctx:this.chart.ctx,inRange:function(a){return Math.pow(a-this.x,2)<Math.pow(this.radius+this.hitDetectionRadius,2)}}),this.datasets=[],this.options.showTooltips&&c.bindEvents(this,this.options.tooltipEvents,function(a){var b="mouseout"!==a.type?this.getPointsAtEvent(a):[];this.eachPoints(function(a){a.restore(["fillColor","strokeColor"])}),c.each(b,function(a){a.fillColor=a.highlightFill,a.strokeColor=a.highlightStroke}),this.showTooltip(b)}),c.each(a.datasets,function(b){var d={label:b.label||null,fillColor:b.fillColor,strokeColor:b.strokeColor,pointColor:b.pointColor,pointStrokeColor:b.pointStrokeColor,points:[]};this.datasets.push(d),c.each(b.data,function(c,e){d.points.push(new this.PointClass({value:c,label:a.labels[e],datasetLabel:b.label,strokeColor:b.pointStrokeColor,fillColor:b.pointColor,highlightFill:b.pointHighlightFill||b.pointColor,highlightStroke:b.pointHighlightStroke||b.pointStrokeColor}))},this),this.buildScale(a.labels),this.eachPoints(function(a,b){c.extend(a,{x:this.scale.calculateX(b),y:this.scale.endPoint}),a.save()},this)},this),this.render()},update:function(){this.scale.update(),c.each(this.activeElements,function(a){a.restore(["fillColor","strokeColor"])}),this.eachPoints(function(a){a.save()}),this.render()},eachPoints:function(a){c.each(this.datasets,function(b){c.each(b.points,a,this)},this)},getPointsAtEvent:function(a){var b=[],d=c.getRelativePosition(a);return c.each(this.datasets,function(a){c.each(a.points,function(a){a.inRange(d.x,d.y)&&b.push(a)})},this),b},buildScale:function(a){var d=this,e=function(){var a=[];return d.eachPoints(function(b){a.push(b.value)}),a},f={templateString:this.options.scaleLabel,height:this.chart.height,width:this.chart.width,ctx:this.chart.ctx,textColor:this.options.scaleFontColor,fontSize:this.options.scaleFontSize,fontStyle:this.options.scaleFontStyle,fontFamily:this.options.scaleFontFamily,valuesCount:a.length,beginAtZero:this.options.scaleBeginAtZero,integersOnly:this.options.scaleIntegersOnly,calculateYRange:function(a){var b=c.calculateScaleRange(e(),a,this.fontSize,this.beginAtZero,this.integersOnly);c.extend(this,b)},xLabels:a,font:c.fontString(this.options.scaleFontSize,this.options.scaleFontStyle,this.options.scaleFontFamily),lineWidth:this.options.scaleLineWidth,lineColor:this.options.scaleLineColor,showHorizontalLines:this.options.scaleShowHorizontalLines,showVerticalLines:this.options.scaleShowVerticalLines,gridLineWidth:this.options.scaleShowGridLines?this.options.scaleGridLineWidth:0,gridLineColor:this.options.scaleShowGridLines?this.options.scaleGridLineColor:"rgba(0,0,0,0)",padding:this.options.showScale?0:this.options.pointDotRadius+this.options.pointDotStrokeWidth,showLabels:this.options.scaleShowLabels,display:this.options.showScale};this.options.scaleOverride&&c.extend(f,{calculateYRange:c.noop,steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}),this.scale=new b.Scale(f)},addData:function(a,b){c.each(a,function(a,c){this.datasets[c].points.push(new this.PointClass({value:a,label:b,x:this.scale.calculateX(this.scale.valuesCount+1),y:this.scale.endPoint,strokeColor:this.datasets[c].pointStrokeColor,fillColor:this.datasets[c].pointColor}))},this),this.scale.addXLabel(b),this.update()},removeData:function(){this.scale.removeXLabel(),c.each(this.datasets,function(a){a.points.shift()},this),this.update()},reflow:function(){var a=c.extend({height:this.chart.height,width:this.chart.width});this.scale.update(a)},draw:function(a){var b=a||1;this.clear();var d=this.chart.ctx,e=function(a){return null!==a.value},f=function(a,b,d){return c.findNextWhere(b,e,d)||a},g=function(a,b,d){return c.findPreviousWhere(b,e,d)||a};this.scale.draw(b),c.each(this.datasets,function(a){var h=c.where(a.points,e);c.each(a.points,function(a,c){a.hasValue()&&a.transition({y:this.scale.calculateY(a.value),x:this.scale.calculateX(c)},b)},this),this.options.bezierCurve&&c.each(h,function(a,b){var d=b>0&&b<h.length-1?this.options.bezierCurveTension:0;a.controlPoints=c.splineCurve(g(a,h,b),a,f(a,h,b),d),a.controlPoints.outer.y>this.scale.endPoint?a.controlPoints.outer.y=this.scale.endPoint:a.controlPoints.outer.y<this.scale.startPoint&&(a.controlPoints.outer.y=this.scale.startPoint),a.controlPoints.inner.y>this.scale.endPoint?a.controlPoints.inner.y=this.scale.endPoint:a.controlPoints.inner.y<this.scale.startPoint&&(a.controlPoints.inner.y=this.scale.startPoint)},this),d.lineWidth=this.options.datasetStrokeWidth,d.strokeStyle=a.strokeColor,d.beginPath(),c.each(h,function(a,b){if(0===b)d.moveTo(a.x,a.y);else if(this.options.bezierCurve){var c=g(a,h,b);d.bezierCurveTo(c.controlPoints.outer.x,c.controlPoints.outer.y,a.controlPoints.inner.x,a.controlPoints.inner.y,a.x,a.y)}else d.lineTo(a.x,a.y)},this),d.stroke(),this.options.datasetFill&&h.length>0&&(d.lineTo(h[h.length-1].x,this.scale.endPoint),d.lineTo(h[0].x,this.scale.endPoint),d.fillStyle=a.fillColor,d.closePath(),d.fill()),c.each(h,function(a){a.draw()})},this)}})}.call(this),function(){"use strict";var a=this,b=a.Chart,c=b.helpers,d={scaleShowLabelBackdrop:!0,scaleBackdropColor:"rgba(255,255,255,0.75)",scaleBeginAtZero:!0,scaleBackdropPaddingY:2,scaleBackdropPaddingX:2,scaleShowLine:!0,segmentShowStroke:!0,segmentStrokeColor:"#fff",segmentStrokeWidth:2,animationSteps:100,animationEasing:"easeOutBounce",animateRotate:!0,animateScale:!1,legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<segments.length; i++){%><li><span style="background-color:<%=segments[i].fillColor%>"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>'};b.Type.extend({name:"PolarArea",defaults:d,initialize:function(a){this.segments=[],this.SegmentArc=b.Arc.extend({showStroke:this.options.segmentShowStroke,strokeWidth:this.options.segmentStrokeWidth,strokeColor:this.options.segmentStrokeColor,ctx:this.chart.ctx,innerRadius:0,x:this.chart.width/2,y:this.chart.height/2}),this.scale=new b.RadialScale({display:this.options.showScale,fontStyle:this.options.scaleFontStyle,fontSize:this.options.scaleFontSize,fontFamily:this.options.scaleFontFamily,fontColor:this.options.scaleFontColor,showLabels:this.options.scaleShowLabels,showLabelBackdrop:this.options.scaleShowLabelBackdrop,backdropColor:this.options.scaleBackdropColor,backdropPaddingY:this.options.scaleBackdropPaddingY,backdropPaddingX:this.options.scaleBackdropPaddingX,lineWidth:this.options.scaleShowLine?this.options.scaleLineWidth:0,lineColor:this.options.scaleLineColor,lineArc:!0,width:this.chart.width,height:this.chart.height,xCenter:this.chart.width/2,yCenter:this.chart.height/2,ctx:this.chart.ctx,templateString:this.options.scaleLabel,valuesCount:a.length}),this.updateScaleRange(a),this.scale.update(),c.each(a,function(a,b){this.addData(a,b,!0)},this),this.options.showTooltips&&c.bindEvents(this,this.options.tooltipEvents,function(a){var b="mouseout"!==a.type?this.getSegmentsAtEvent(a):[];c.each(this.segments,function(a){a.restore(["fillColor"])}),c.each(b,function(a){a.fillColor=a.highlightColor}),this.showTooltip(b)}),this.render()},getSegmentsAtEvent:function(a){var b=[],d=c.getRelativePosition(a);return c.each(this.segments,function(a){a.inRange(d.x,d.y)&&b.push(a)},this),b},addData:function(a,b,c){var d=b||this.segments.length;this.segments.splice(d,0,new this.SegmentArc({fillColor:a.color,highlightColor:a.highlight||a.color,label:a.label,value:a.value,outerRadius:this.options.animateScale?0:this.scale.calculateCenterOffset(a.value),circumference:this.options.animateRotate?0:this.scale.getCircumference(),startAngle:1.5*Math.PI})),c||(this.reflow(),this.update())},removeData:function(a){var b=c.isNumber(a)?a:this.segments.length-1;this.segments.splice(b,1),this.reflow(),this.update()},calculateTotal:function(a){this.total=0,c.each(a,function(a){this.total+=a.value},this),this.scale.valuesCount=this.segments.length},updateScaleRange:function(a){var b=[];c.each(a,function(a){b.push(a.value)});var d=this.options.scaleOverride?{steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}:c.calculateScaleRange(b,c.min([this.chart.width,this.chart.height])/2,this.options.scaleFontSize,this.options.scaleBeginAtZero,this.options.scaleIntegersOnly);c.extend(this.scale,d,{size:c.min([this.chart.width,this.chart.height]),xCenter:this.chart.width/2,yCenter:this.chart.height/2})},update:function(){this.calculateTotal(this.segments),c.each(this.segments,function(a){a.save()}),this.reflow(),this.render()},reflow:function(){c.extend(this.SegmentArc.prototype,{x:this.chart.width/2,y:this.chart.height/2}),this.updateScaleRange(this.segments),this.scale.update(),c.extend(this.scale,{xCenter:this.chart.width/2,yCenter:this.chart.height/2}),c.each(this.segments,function(a){a.update({outerRadius:this.scale.calculateCenterOffset(a.value)})},this)},draw:function(a){var b=a||1;this.clear(),c.each(this.segments,function(a,c){a.transition({circumference:this.scale.getCircumference(),outerRadius:this.scale.calculateCenterOffset(a.value)},b),a.endAngle=a.startAngle+a.circumference,0===c&&(a.startAngle=1.5*Math.PI),c<this.segments.length-1&&(this.segments[c+1].startAngle=a.endAngle),a.draw()},this),this.scale.draw()}})}.call(this),function(){"use strict";var a=this,b=a.Chart,c=b.helpers;b.Type.extend({name:"Radar",defaults:{scaleShowLine:!0,angleShowLineOut:!0,scaleShowLabels:!1,scaleBeginAtZero:!0,angleLineColor:"rgba(0,0,0,.1)",angleLineWidth:1,pointLabelFontFamily:"'Arial'",pointLabelFontStyle:"normal",pointLabelFontSize:10,pointLabelFontColor:"#666",pointDot:!0,pointDotRadius:3,pointDotStrokeWidth:1,pointHitDetectionRadius:20,datasetStroke:!0,datasetStrokeWidth:2,datasetFill:!0,legendTemplate:'<ul class="<%=name.toLowerCase()%>-legend"><% for (var i=0; i<datasets.length; i++){%><li><span style="background-color:<%=datasets[i].strokeColor%>"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>'},initialize:function(a){this.PointClass=b.Point.extend({strokeWidth:this.options.pointDotStrokeWidth,radius:this.options.pointDotRadius,display:this.options.pointDot,hitDetectionRadius:this.options.pointHitDetectionRadius,ctx:this.chart.ctx}),this.datasets=[],this.buildScale(a),this.options.showTooltips&&c.bindEvents(this,this.options.tooltipEvents,function(a){var b="mouseout"!==a.type?this.getPointsAtEvent(a):[];this.eachPoints(function(a){a.restore(["fillColor","strokeColor"])}),c.each(b,function(a){a.fillColor=a.highlightFill,a.strokeColor=a.highlightStroke}),this.showTooltip(b)}),c.each(a.datasets,function(b){var d={label:b.label||null,fillColor:b.fillColor,strokeColor:b.strokeColor,pointColor:b.pointColor,pointStrokeColor:b.pointStrokeColor,points:[]};this.datasets.push(d),c.each(b.data,function(c,e){var f;this.scale.animation||(f=this.scale.getPointPosition(e,this.scale.calculateCenterOffset(c))),d.points.push(new this.PointClass({value:c,label:a.labels[e],datasetLabel:b.label,x:this.options.animation?this.scale.xCenter:f.x,y:this.options.animation?this.scale.yCenter:f.y,strokeColor:b.pointStrokeColor,fillColor:b.pointColor,highlightFill:b.pointHighlightFill||b.pointColor,highlightStroke:b.pointHighlightStroke||b.pointStrokeColor}))},this)},this),this.render()},eachPoints:function(a){c.each(this.datasets,function(b){c.each(b.points,a,this)},this)},getPointsAtEvent:function(a){var b=c.getRelativePosition(a),d=c.getAngleFromPoint({x:this.scale.xCenter,y:this.scale.yCenter},b),e=2*Math.PI/this.scale.valuesCount,f=Math.round((d.angle-1.5*Math.PI)/e),g=[];return(f>=this.scale.valuesCount||0>f)&&(f=0),d.distance<=this.scale.drawingArea&&c.each(this.datasets,function(a){g.push(a.points[f])}),g},buildScale:function(a){this.scale=new b.RadialScale({display:this.options.showScale,fontStyle:this.options.scaleFontStyle,fontSize:this.options.scaleFontSize,fontFamily:this.options.scaleFontFamily,fontColor:this.options.scaleFontColor,showLabels:this.options.scaleShowLabels,showLabelBackdrop:this.options.scaleShowLabelBackdrop,backdropColor:this.options.scaleBackdropColor,backdropPaddingY:this.options.scaleBackdropPaddingY,backdropPaddingX:this.options.scaleBackdropPaddingX,lineWidth:this.options.scaleShowLine?this.options.scaleLineWidth:0,lineColor:this.options.scaleLineColor,angleLineColor:this.options.angleLineColor,angleLineWidth:this.options.angleShowLineOut?this.options.angleLineWidth:0,pointLabelFontColor:this.options.pointLabelFontColor,pointLabelFontSize:this.options.pointLabelFontSize,pointLabelFontFamily:this.options.pointLabelFontFamily,pointLabelFontStyle:this.options.pointLabelFontStyle,height:this.chart.height,width:this.chart.width,xCenter:this.chart.width/2,yCenter:this.chart.height/2,ctx:this.chart.ctx,templateString:this.options.scaleLabel,labels:a.labels,valuesCount:a.datasets[0].data.length}),this.scale.setScaleSize(),this.updateScaleRange(a.datasets),this.scale.buildYLabels()},updateScaleRange:function(a){var b=function(){var b=[];return c.each(a,function(a){a.data?b=b.concat(a.data):c.each(a.points,function(a){b.push(a.value)})}),b}(),d=this.options.scaleOverride?{steps:this.options.scaleSteps,stepValue:this.options.scaleStepWidth,min:this.options.scaleStartValue,max:this.options.scaleStartValue+this.options.scaleSteps*this.options.scaleStepWidth}:c.calculateScaleRange(b,c.min([this.chart.width,this.chart.height])/2,this.options.scaleFontSize,this.options.scaleBeginAtZero,this.options.scaleIntegersOnly);c.extend(this.scale,d)},addData:function(a,b){this.scale.valuesCount++,c.each(a,function(a,c){var d=this.scale.getPointPosition(this.scale.valuesCount,this.scale.calculateCenterOffset(a));this.datasets[c].points.push(new this.PointClass({value:a,label:b,x:d.x,y:d.y,strokeColor:this.datasets[c].pointStrokeColor,fillColor:this.datasets[c].pointColor}))},this),this.scale.labels.push(b),this.reflow(),this.update()},removeData:function(){this.scale.valuesCount--,this.scale.labels.shift(),c.each(this.datasets,function(a){a.points.shift()},this),this.reflow(),this.update()},update:function(){this.eachPoints(function(a){a.save();
+}),this.reflow(),this.render()},reflow:function(){c.extend(this.scale,{width:this.chart.width,height:this.chart.height,size:c.min([this.chart.width,this.chart.height]),xCenter:this.chart.width/2,yCenter:this.chart.height/2}),this.updateScaleRange(this.datasets),this.scale.setScaleSize(),this.scale.buildYLabels()},draw:function(a){var b=a||1,d=this.chart.ctx;this.clear(),this.scale.draw(),c.each(this.datasets,function(a){c.each(a.points,function(a,c){a.hasValue()&&a.transition(this.scale.getPointPosition(c,this.scale.calculateCenterOffset(a.value)),b)},this),d.lineWidth=this.options.datasetStrokeWidth,d.strokeStyle=a.strokeColor,d.beginPath(),c.each(a.points,function(a,b){0===b?d.moveTo(a.x,a.y):d.lineTo(a.x,a.y)},this),d.closePath(),d.stroke(),d.fillStyle=a.fillColor,d.fill(),c.each(a.points,function(a){a.hasValue()&&a.draw()})},this)}})}.call(this),function(a){"use strict";"object"==typeof exports?module.exports=a("undefined"!=typeof angular?angular:require("angular"),"undefined"!=typeof Chart?Chart:require("chart.js")):"function"==typeof define&&define.amd?define(["angular","chart"],a):a(angular,Chart)}(function(a,b){"use strict";function c(){var c={},d={Chart:b,getOptions:function(b){var d=b&&c[b]||{};return a.extend({},c,d)}};this.setOptions=function(b,d){return d?void(c[b]=a.extend(c[b]||{},d)):(d=b,void(c=a.extend(c,d)))},this.$get=function(){return d}}function d(c,d){function f(a,b){return a&&b&&a.length&&b.length?Array.isArray(a[0])?a.length===b.length&&a.every(function(a,c){return a.length===b[c].length}):b.reduce(g,0)>0?a.length===b.length:!1:!1}function g(a,b){return a+b}function h(b,c,d,e){var f=null;return function(g){var h=c.getPointsAtEvent||c.getBarsAtEvent||c.getSegmentsAtEvent;if(h){var i=h.call(c,g);e!==!1&&a.equals(f,i)!==!1||(f=i,b[d](i,g),b.$apply())}}}function i(d,e){for(var f=a.copy(e.colours||c.getOptions(d).colours||b.defaults.global.colours);f.length<e.data.length;)f.push(e.getColour());return f.map(j)}function j(a){return"object"==typeof a&&null!==a?a:"string"==typeof a&&"#"===a[0]?l(o(a.substr(1))):k()}function k(){var a=[m(0,255),m(0,255),m(0,255)];return l(a)}function l(a){return{fillColor:n(a,.2),strokeColor:n(a,1),pointColor:n(a,1),pointStrokeColor:"#fff",pointHighlightFill:"#fff",pointHighlightStroke:n(a,.8)}}function m(a,b){return Math.floor(Math.random()*(b-a+1))+a}function n(a,b){return e?"rgb("+a.join(",")+")":"rgba("+a.concat(b).join(",")+")"}function o(a){var b=parseInt(a,16),c=b>>16&255,d=b>>8&255,e=255&b;return[c,d,e]}function p(b,c,d,e){return{labels:b,datasets:c.map(function(b,c){return a.extend({},e[c],{label:d[c],data:b})})}}function q(b,c,d){return b.map(function(b,e){return a.extend({},d[e],{label:b,value:c[e],color:d[e].strokeColor,highlight:d[e].pointHighlightStroke})})}function r(a,b){var c=a.parent(),d=c.find("chart-legend"),e="<chart-legend>"+b.generateLegend()+"</chart-legend>";d.length?d.replaceWith(e):c.append(e)}function s(a,b,c,d){Array.isArray(c.data[0])?a.datasets.forEach(function(a,c){(a.points||a.bars).forEach(function(a,d){a.value=b[c][d]})}):a.segments.forEach(function(a,c){a.value=b[c]}),a.update(),c.$emit("update",a),c.legend&&"false"!==c.legend&&r(d,a)}function t(a){return!a||Array.isArray(a)&&!a.length||"object"==typeof a&&!Object.keys(a).length}function u(d,e){var f=a.extend({},b.defaults.global,c.getOptions(d),e.options);return f.responsive}return function(b){return{restrict:"CA",scope:{data:"=?",labels:"=?",options:"=?",series:"=?",colours:"=?",getColour:"=?",chartType:"=",legend:"@",click:"=?",hover:"=?",chartData:"=?",chartLabels:"=?",chartOptions:"=?",chartSeries:"=?",chartColours:"=?",chartLegend:"@",chartClick:"=?",chartHover:"=?"},link:function(g,j){function l(a,b){g.$watch(a,function(a){"undefined"!=typeof a&&(g[b]=a)})}function m(c,d){if(!t(c)&&!a.equals(c,d)){var e=b||g.chartType;e&&(v&&v.destroy(),n(e))}}function n(b){if(u(b,g)&&0===j[0].clientHeight&&0===w.clientHeight)return d(function(){n(b)},50,!1);if(g.data&&g.data.length){g.getColour="function"==typeof g.getColour?g.getColour:k,g.colours=i(b,g);var e=j[0],f=e.getContext("2d"),l=Array.isArray(g.data[0])?p(g.labels,g.data,g.series||[],g.colours):q(g.labels,g.data,g.colours),m=a.extend({},c.getOptions(b),g.options);v=new c.Chart(f)[b](l,m),g.$emit("create",v),e.onclick=g.click?h(g,v,"click",!1):a.noop,e.onmousemove=g.hover?h(g,v,"hover",!0):a.noop,g.legend&&"false"!==g.legend&&r(j,v)}}function o(a){if("undefined"!=typeof console&&"test"!==c.getOptions().env){var b="function"==typeof console.warn?console.warn:console.log;g[a]&&b.call(console,'"%s" is deprecated and will be removed in a future version. Please use "chart-%s" instead.',a,a)}}var v,w=document.createElement("div");w.className="chart-container",j.replaceWith(w),w.appendChild(j[0]),e&&window.G_vmlCanvasManager.initElement(j[0]),["data","labels","options","series","colours","legend","click","hover"].forEach(o),l("chartData","data"),l("chartLabels","labels"),l("chartOptions","options"),l("chartSeries","series"),l("chartColours","colours"),l("chartLegend","legend"),l("chartClick","click"),l("chartHover","hover"),g.$watch("data",function(a,c){if(a&&a.length&&(!Array.isArray(a[0])||a[0].length)){var d=b||g.chartType;if(d){if(v){if(f(a,c))return s(v,a,g,j);v.destroy()}n(d)}}},!0),g.$watch("series",m,!0),g.$watch("labels",m,!0),g.$watch("options",m,!0),g.$watch("colours",m,!0),g.$watch("chartType",function(b,c){t(b)||a.equals(b,c)||(v&&v.destroy(),n(b))}),g.$on("$destroy",function(){v&&v.destroy()})}}}}b.defaults.global.responsive=!0,b.defaults.global.multiTooltipTemplate="<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>",b.defaults.global.colours=["#97BBCD","#DCDCDC","#F7464A","#46BFBD","#FDB45C","#949FB1","#4D5360"];var e="object"==typeof window.G_vmlCanvasManager&&null!==window.G_vmlCanvasManager&&"function"==typeof window.G_vmlCanvasManager.initElement;return e&&(b.defaults.global.animation=!1),a.module("chart.js",[]).provider("ChartJs",c).factory("ChartJsFactory",["ChartJs","$timeout",d]).directive("chartBase",["ChartJsFactory",function(a){return new a}]).directive("chartLine",["ChartJsFactory",function(a){return new a("Line")}]).directive("chartBar",["ChartJsFactory",function(a){return new a("Bar")}]).directive("chartRadar",["ChartJsFactory",function(a){return new a("Radar")}]).directive("chartDoughnut",["ChartJsFactory",function(a){return new a("Doughnut")}]).directive("chartPie",["ChartJsFactory",function(a){return new a("Pie")}]).directive("chartPolarArea",["ChartJsFactory",function(a){return new a("PolarArea")}])}),function(a,b,c){"use strict";function d(a,c,d){function e(a,d,e){var g,h;e=e||{},h=e.expires,g=b.isDefined(e.path)?e.path:f,b.isUndefined(d)&&(h="Thu, 01 Jan 1970 00:00:00 GMT",d=""),b.isString(h)&&(h=new Date(h));var i=encodeURIComponent(a)+"="+encodeURIComponent(d);i+=g?";path="+g:"",i+=e.domain?";domain="+e.domain:"",i+=h?";expires="+h.toUTCString():"",i+=e.secure?";secure":"";var j=i.length+1;return j>4096&&c.warn("Cookie '"+a+"' possibly not set or overflowed because it was too large ("+j+" > 4096 bytes)!"),i}var f=d.baseHref(),g=a[0];return function(a,b,c){g.cookie=e(a,b,c)}}b.module("ngCookies",["ng"]).provider("$cookies",[function(){function a(a){return a?b.extend({},d,a):d}var d=this.defaults={};this.$get=["$$cookieReader","$$cookieWriter",function(d,e){return{get:function(a){return d()[a]},getObject:function(a){var c=this.get(a);return c?b.fromJson(c):c},getAll:function(){return d()},put:function(b,c,d){e(b,c,a(d))},putObject:function(a,c,d){this.put(a,b.toJson(c),d)},remove:function(b,d){e(b,c,a(d))}}}]}]),b.module("ngCookies").factory("$cookieStore",["$cookies",function(a){return{get:function(b){return a.getObject(b)},put:function(b,c){a.putObject(b,c)},remove:function(b){a.remove(b)}}}]),d.$inject=["$document","$log","$browser"],b.module("ngCookies").provider("$$cookieWriter",function(){this.$get=d})}(window,window.angular),!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):"object"==typeof exports?exports["angular-file-upload"]=b():a["angular-file-upload"]=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=d(c(2)),f=d(c(3)),g=d(c(4)),h=d(c(5)),i=d(c(6)),j=d(c(7)),k=d(c(1)),l=d(c(8)),m=d(c(9)),n=d(c(10)),o=d(c(11)),p=d(c(12));angular.module(e.name,[]).value("fileUploaderOptions",f).factory("FileUploader",g).factory("FileLikeObject",h).factory("FileItem",i).factory("FileDirective",j).factory("FileSelect",k).factory("FileDrop",l).factory("FileOver",m).directive("nvFileSelect",n).directive("nvFileDrop",o).directive("nvFileOver",p).run(["FileUploader","FileLikeObject","FileItem","FileDirective","FileSelect","FileDrop","FileOver",function(a,b,c,d,e,f,g){a.FileLikeObject=b,a.FileItem=c,a.FileDirective=d,a.FileSelect=e,a.FileDrop=f,a.FileOver=g}])},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function j(a,b,c){var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){var e=Object.getPrototypeOf(a);return null===e?void 0:j(e,b,c)}if("value"in d&&d.writable)return d.value;var f=d.get;return void 0===f?void 0:f.call(c)},g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)},h=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},i=(d(c(2)),angular.extend);a.exports=function(a){var b=function(a){function b(a){h(this,b);var c=i(a,{events:{$destroy:"destroy",change:"onChange"},prop:"select"});f(Object.getPrototypeOf(b.prototype),"constructor",this).call(this,c),this.uploader.isHTML5||this.element.removeAttr("multiple"),this.element.prop("value",null)}return g(b,a),e(b,{getOptions:{value:function(){}},getFilters:{value:function(){}},isEmptyAfterSelection:{value:function(){return!!this.element.attr("multiple")}},onChange:{value:function(){var a=this.uploader.isHTML5?this.element[0].files:this.element[0],b=this.getOptions(),c=this.getFilters();this.uploader.isHTML5||this.destroy(),this.uploader.addToQueue(a,b,c),this.isEmptyAfterSelection()&&(this.element.prop("value",null),this.element.replaceWith(this.element=this.element.clone(!0)))}}}),b}(a);return b},a.exports.$inject=["FileDirective"]},function(a,b){a.exports={name:"angularFileUpload"}},function(a,b){"use strict";a.exports={url:"/",alias:"file",headers:{},queue:[],progress:0,autoUpload:!1,removeAfterUpload:!1,method:"POST",filters:[],formData:[],queueLimit:Number.MAX_VALUE,withCredentials:!1}},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},g=(d(c(2)),angular.copy),h=angular.extend,i=angular.forEach,j=angular.isObject,k=angular.isNumber,l=angular.isDefined,m=angular.isArray,n=angular.element;a.exports=function(a,b,c,d,o,p){var q=d.File,r=d.FormData,s=function(){function d(b){f(this,d);var c=g(a);h(this,c,b,{isUploading:!1,_nextIndex:0,_failFilterIndex:-1,_directives:{select:[],drop:[],over:[]}}),this.filters.unshift({name:"queueLimit",fn:this._queueLimitFilter}),this.filters.unshift({name:"folder",fn:this._folderFilter})}return e(d,{addToQueue:{value:function(a,b,c){var d=this,e=this.isArrayLikeObject(a)?a:[a],f=this._getFilters(c),g=this.queue.length,h=[];i(e,function(a){var c=new o(a);if(d._isValidFile(c,f,b)){var e=new p(d,a,b);h.push(e),d.queue.push(e),d._onAfterAddingFile(e)}else{var g=f[d._failFilterIndex];d._onWhenAddingFileFailed(c,g,b)}}),this.queue.length!==g&&(this._onAfterAddingAll(h),this.progress=this._getTotalProgress()),this._render(),this.autoUpload&&this.uploadAll()}},removeFromQueue:{value:function(a){var b=this.getIndexOfItem(a),c=this.queue[b];c.isUploading&&c.cancel(),this.queue.splice(b,1),c._destroy(),this.progress=this._getTotalProgress()}},clearQueue:{value:function(){for(;this.queue.length;)this.queue[0].remove();this.progress=0}},uploadItem:{value:function(a){var b=this.getIndexOfItem(a),c=this.queue[b],d=this.isHTML5?"_xhrTransport":"_iframeTransport";c._prepareToUploading(),this.isUploading||(this.isUploading=!0,this[d](c))}},cancelItem:{value:function(a){var b=this.getIndexOfItem(a),c=this.queue[b],d=this.isHTML5?"_xhr":"_form";c&&c.isUploading&&c[d].abort()}},uploadAll:{value:function(){var a=this.getNotUploadedItems().filter(function(a){return!a.isUploading});a.length&&(i(a,function(a){return a._prepareToUploading()}),a[0].upload())}},cancelAll:{value:function(){var a=this.getNotUploadedItems();i(a,function(a){return a.cancel()})}},isFile:{value:function(a){return this.constructor.isFile(a)}},isFileLikeObject:{value:function(a){return this.constructor.isFileLikeObject(a)}},isArrayLikeObject:{value:function(a){return this.constructor.isArrayLikeObject(a)}},getIndexOfItem:{value:function(a){return k(a)?a:this.queue.indexOf(a)}},getNotUploadedItems:{value:function(){return this.queue.filter(function(a){return!a.isUploaded})}},getReadyItems:{value:function(){return this.queue.filter(function(a){return a.isReady&&!a.isUploading}).sort(function(a,b){return a.index-b.index})}},destroy:{value:function(){var a=this;i(this._directives,function(b){i(a._directives[b],function(a){a.destroy()})})}},onAfterAddingAll:{value:function(a){}},onAfterAddingFile:{value:function(a){}},onWhenAddingFileFailed:{value:function(a,b,c){}},onBeforeUploadItem:{value:function(a){}},onProgressItem:{value:function(a,b){}},onProgressAll:{value:function(a){}},onSuccessItem:{value:function(a,b,c,d){}},onErrorItem:{value:function(a,b,c,d){}},onCancelItem:{value:function(a,b,c,d){}},onCompleteItem:{value:function(a,b,c,d){}},onCompleteAll:{value:function(){}},_getTotalProgress:{value:function(a){if(this.removeAfterUpload)return a||0;var b=this.getNotUploadedItems().length,c=b?this.queue.length-b:this.queue.length,d=100/this.queue.length,e=(a||0)*d/100;return Math.round(c*d+e)}},_getFilters:{value:function(a){if(!a)return this.filters;if(m(a))return a;var b=a.match(/[^\s,]+/g);return this.filters.filter(function(a){return-1!==b.indexOf(a.name)})}},_render:{value:function(){b.$$phase||b.$apply()}},_folderFilter:{value:function(a){return!(!a.size&&!a.type)}},_queueLimitFilter:{value:function(){return this.queue.length<this.queueLimit}},_isValidFile:{value:function(a,b,c){var d=this;return this._failFilterIndex=-1,b.length?b.every(function(b){return d._failFilterIndex++,b.fn.call(d,a,c)}):!0}},_isSuccessCode:{value:function(a){return a>=200&&300>a||304===a}},_transformResponse:{value:function(a,b){var d=this._headersGetter(b);return i(c.defaults.transformResponse,function(b){a=b(a,d)}),a}},_parseHeaders:{value:function(a){var b,c,d,e={};return a?(i(a.split("\n"),function(a){d=a.indexOf(":"),b=a.slice(0,d).trim().toLowerCase(),c=a.slice(d+1).trim(),b&&(e[b]=e[b]?e[b]+", "+c:c)}),e):e}},_headersGetter:{value:function(a){return function(b){return b?a[b.toLowerCase()]||null:a}}},_xhrTransport:{value:function(a){var b=this,c=a._xhr=new XMLHttpRequest,d=new r;if(this._onBeforeUploadItem(a),i(a.formData,function(a){i(a,function(a,b){d.append(b,a)})}),"number"!=typeof a._file.size)throw new TypeError("The file specified is no longer valid");d.append(a.alias,a._file,a.file.name),c.upload.onprogress=function(c){var d=Math.round(c.lengthComputable?100*c.loaded/c.total:0);b._onProgressItem(a,d)},c.onload=function(){var d=b._parseHeaders(c.getAllResponseHeaders()),e=b._transformResponse(c.response,d),f=b._isSuccessCode(c.status)?"Success":"Error",g="_on"+f+"Item";b[g](a,e,c.status,d),b._onCompleteItem(a,e,c.status,d)},c.onerror=function(){var d=b._parseHeaders(c.getAllResponseHeaders()),e=b._transformResponse(c.response,d);b._onErrorItem(a,e,c.status,d),b._onCompleteItem(a,e,c.status,d)},c.onabort=function(){var d=b._parseHeaders(c.getAllResponseHeaders()),e=b._transformResponse(c.response,d);b._onCancelItem(a,e,c.status,d),b._onCompleteItem(a,e,c.status,d)},c.open(a.method,a.url,!0),c.withCredentials=a.withCredentials,i(a.headers,function(a,b){c.setRequestHeader(b,a)}),c.send(d),this._render()}},_iframeTransport:{value:function(a){var b=this,c=n('<form style="display: none;" />'),d=n('<iframe name="iframeTransport'+Date.now()+'">'),e=a._input;a._form&&a._form.replaceWith(e),a._form=c,this._onBeforeUploadItem(a),e.prop("name",a.alias),i(a.formData,function(a){i(a,function(a,b){var d=n('<input type="hidden" name="'+b+'" />');d.val(a),c.append(d)})}),c.prop({action:a.url,method:"POST",target:d.prop("name"),enctype:"multipart/form-data",encoding:"multipart/form-data"}),d.bind("load",function(){var c="",e=200;try{c=d[0].contentDocument.body.innerHTML}catch(f){e=500}var g={response:c,status:e,dummy:!0},h={},i=b._transformResponse(g.response,h);b._onSuccessItem(a,i,g.status,h),b._onCompleteItem(a,i,g.status,h)}),c.abort=function(){var f,g={status:0,dummy:!0},h={};d.unbind("load").prop("src","javascript:false;"),c.replaceWith(e),b._onCancelItem(a,f,g.status,h),b._onCompleteItem(a,f,g.status,h)},e.after(c),c.append(e).append(d),c[0].submit(),this._render()}},_onWhenAddingFileFailed:{value:function(a,b,c){this.onWhenAddingFileFailed(a,b,c)}},_onAfterAddingFile:{value:function(a){this.onAfterAddingFile(a)}},_onAfterAddingAll:{value:function(a){this.onAfterAddingAll(a)}},_onBeforeUploadItem:{value:function(a){a._onBeforeUpload(),this.onBeforeUploadItem(a)}},_onProgressItem:{value:function(a,b){var c=this._getTotalProgress(b);this.progress=c,a._onProgress(b),this.onProgressItem(a,b),this.onProgressAll(c),this._render()}},_onSuccessItem:{value:function(a,b,c,d){a._onSuccess(b,c,d),this.onSuccessItem(a,b,c,d)}},_onErrorItem:{value:function(a,b,c,d){a._onError(b,c,d),this.onErrorItem(a,b,c,d)}},_onCancelItem:{value:function(a,b,c,d){a._onCancel(b,c,d),this.onCancelItem(a,b,c,d)}},_onCompleteItem:{value:function(a,b,c,d){a._onComplete(b,c,d),this.onCompleteItem(a,b,c,d);var e=this.getReadyItems()[0];return this.isUploading=!1,l(e)?void e.upload():(this.onCompleteAll(),this.progress=this._getTotalProgress(),void this._render())}}},{isFile:{value:function(a){return q&&a instanceof q}},isFileLikeObject:{value:function(a){return a instanceof o}},isArrayLikeObject:{value:function(a){return j(a)&&"length"in a}},inherit:{value:function(a,b){a.prototype=Object.create(b.prototype),a.prototype.constructor=a,a.super_=b}}}),d}();return s.prototype.isHTML5=!(!q||!r),s.isHTML5=s.prototype.isHTML5,s},a.exports.$inject=["fileUploaderOptions","$rootScope","$http","$window","FileLikeObject","FileItem"]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},g=(d(c(2)),angular.copy),h=angular.isElement,i=angular.isString;a.exports=function(){var a=function(){function a(b){f(this,a);var c=h(b),d=c?b.value:b,e=i(d)?"FakePath":"Object",g="_createFrom"+e;this[g](d)}return e(a,{_createFromFakePath:{value:function(a){this.lastModifiedDate=null,this.size=null,this.type="like/"+a.slice(a.lastIndexOf(".")+1).toLowerCase(),this.name=a.slice(a.lastIndexOf("/")+a.lastIndexOf("\\")+2)}},_createFromObject:{value:function(a){this.lastModifiedDate=g(a.lastModifiedDate),this.size=a.size,this.type=a.type,this.name=a.name}}}),a}();return a},a.exports.$inject=[]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},g=(d(c(2)),angular.copy),h=angular.extend,i=angular.element,j=angular.isElement;a.exports=function(a,b){var c=function(){function c(a,d,e){f(this,c);var k=j(d),l=k?i(d):null,m=k?null:d;h(this,{url:a.url,alias:a.alias,headers:g(a.headers),formData:g(a.formData),removeAfterUpload:a.removeAfterUpload,withCredentials:a.withCredentials,method:a.method},e,{uploader:a,file:new b(d),isReady:!1,isUploading:!1,isUploaded:!1,isSuccess:!1,isCancel:!1,isError:!1,progress:0,index:null,_file:m,_input:l}),l&&this._replaceNode(l)}return e(c,{upload:{value:function(){try{this.uploader.uploadItem(this)}catch(a){this.uploader._onCompleteItem(this,"",0,[]),this.uploader._onErrorItem(this,"",0,[])}}},cancel:{value:function(){this.uploader.cancelItem(this)}},remove:{value:function(){this.uploader.removeFromQueue(this)}},onBeforeUpload:{value:function(){}},onProgress:{value:function(a){}},onSuccess:{value:function(a,b,c){}},onError:{value:function(a,b,c){}},onCancel:{value:function(a,b,c){}},onComplete:{value:function(a,b,c){}},_onBeforeUpload:{value:function(){this.isReady=!0,this.isUploading=!0,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!1,this.isError=!1,this.progress=0,this.onBeforeUpload()}},_onProgress:{value:function(a){this.progress=a,this.onProgress(a)}},_onSuccess:{value:function(a,b,c){this.isReady=!1,this.isUploading=!1,this.isUploaded=!0,this.isSuccess=!0,this.isCancel=!1,this.isError=!1,this.progress=100,this.index=null,this.onSuccess(a,b,c)}},_onError:{value:function(a,b,c){this.isReady=!1,this.isUploading=!1,this.isUploaded=!0,this.isSuccess=!1,this.isCancel=!1,this.isError=!0,this.progress=0,this.index=null,this.onError(a,b,c)}},_onCancel:{value:function(a,b,c){this.isReady=!1,this.isUploading=!1,this.isUploaded=!1,this.isSuccess=!1,this.isCancel=!0,this.isError=!1,this.progress=0,this.index=null,this.onCancel(a,b,c)}},_onComplete:{value:function(a,b,c){this.onComplete(a,b,c),this.removeAfterUpload&&this.remove()}},_destroy:{value:function(){this._input&&this._input.remove(),this._form&&this._form.remove(),delete this._form,delete this._input}},_prepareToUploading:{value:function(){this.index=this.index||++this.uploader._nextIndex,this.isReady=!0}},_replaceNode:{value:function(b){var c=a(b.clone())(b.scope());c.prop("value",null),b.css("display","none"),b.after(c)}}}),c}();return c},a.exports.$inject=["$compile","FileLikeObject"]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},g=(d(c(2)),angular.extend);a.exports=function(){var a=function(){function a(b){f(this,a),g(this,b),this.uploader._directives[this.prop].push(this),this._saveLinks(),this.bind()}return e(a,{bind:{value:function(){for(var a in this.events){var b=this.events[a];this.element.bind(a,this[b])}}},unbind:{value:function(){for(var a in this.events)this.element.unbind(a,this.events[a])}},destroy:{value:function(){var a=this.uploader._directives[this.prop].indexOf(this);this.uploader._directives[this.prop].splice(a,1),this.unbind()}},_saveLinks:{value:function(){for(var a in this.events){var b=this.events[a];this[b]=this[b].bind(this)}}}}),a}();return a.prototype.events={},a},a.exports.$inject=[]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function k(a,b,c){var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){var e=Object.getPrototypeOf(a);return null===e?void 0:k(e,b,c)}if("value"in d&&d.writable)return d.value;var f=d.get;return void 0===f?void 0:f.call(c)},g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)},h=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},i=(d(c(2)),angular.extend),j=angular.forEach;a.exports=function(a){var b=function(a){function b(a){h(this,b);var c=i(a,{events:{$destroy:"destroy",drop:"onDrop",dragover:"onDragOver",dragleave:"onDragLeave"},prop:"drop"});f(Object.getPrototypeOf(b.prototype),"constructor",this).call(this,c)}return g(b,a),e(b,{getOptions:{value:function(){}},getFilters:{value:function(){}},onDrop:{value:function(a){var b=this._getTransfer(a);if(b){var c=this.getOptions(),d=this.getFilters();this._preventAndStop(a),j(this.uploader._directives.over,this._removeOverClass,this),this.uploader.addToQueue(b.files,c,d)}}},onDragOver:{value:function(a){var b=this._getTransfer(a);this._haveFiles(b.types)&&(b.dropEffect="copy",this._preventAndStop(a),j(this.uploader._directives.over,this._addOverClass,this))}},onDragLeave:{value:function(a){a.currentTarget!==this.element[0]&&(this._preventAndStop(a),j(this.uploader._directives.over,this._removeOverClass,this))}},_getTransfer:{value:function(a){return a.dataTransfer?a.dataTransfer:a.originalEvent.dataTransfer}},_preventAndStop:{value:function(a){a.preventDefault(),a.stopPropagation()}},_haveFiles:{value:function(a){return a?a.indexOf?-1!==a.indexOf("Files"):a.contains?a.contains("Files"):!1:!1}},_addOverClass:{value:function(a){a.addOverClass()}},_removeOverClass:{value:function(a){a.removeOverClass()}}}),b}(a);return b},a.exports.$inject=["FileDirective"]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a},e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function j(a,b,c){var d=Object.getOwnPropertyDescriptor(a,b);if(void 0===d){var e=Object.getPrototypeOf(a);return null===e?void 0:j(e,b,c)}if("value"in d&&d.writable)return d.value;var f=d.get;return void 0===f?void 0:f.call(c)},g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)},h=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},i=(d(c(2)),angular.extend);a.exports=function(a){var b=function(a){function b(a){h(this,b);var c=i(a,{events:{$destroy:"destroy"},prop:"over",overClass:"nv-file-over"});f(Object.getPrototypeOf(b.prototype),"constructor",this).call(this,c)}return g(b,a),e(b,{addOverClass:{value:function(){this.element.addClass(this.getOverClass())}},removeOverClass:{value:function(){this.element.removeClass(this.getOverClass())}},getOverClass:{value:function(){return this.overClass}}}),b}(a);return b},a.exports.$inject=["FileDirective"]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a};d(c(2)),a.exports=function(a,b,c){return{link:function(d,e,f){var g=d.$eval(f.uploader);if(!(g instanceof b))throw new TypeError('"Uploader" must be an instance of FileUploader');var h=new c({uploader:g,element:e});h.getOptions=a(f.options).bind(h,d),h.getFilters=function(){return f.filters}}}},a.exports.$inject=["$parse","FileUploader","FileSelect"]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a};d(c(2)),a.exports=function(a,b,c){return{link:function(d,e,f){var g=d.$eval(f.uploader);if(!(g instanceof b))throw new TypeError('"Uploader" must be an instance of FileUploader');if(g.isHTML5){var h=new c({uploader:g,element:e});h.getOptions=a(f.options).bind(h,d),h.getFilters=function(){return f.filters}}}}},a.exports.$inject=["$parse","FileUploader","FileDrop"]},function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a["default"]:a};d(c(2)),a.exports=function(a,b){return{link:function(c,d,e){var f=c.$eval(e.uploader);if(!(f instanceof a))throw new TypeError('"Uploader" must be an instance of FileUploader');var g=new b({uploader:f,element:d});g.getOverClass=function(){return e.overClass||g.overClass}}}},a.exports.$inject=["FileUploader","FileOver"]}])}),!function(a,b,c){"use strict";function d(a){return D(a)?a:Object.keys(a).map(function(b){return a[b]})}function e(a){return null===a}function f(a,b){var d=Object.keys(a);return-1==d.map(function(d){return b[d]!==c&&b[d]==a[d]}).indexOf(!1)}function g(a,b){if(""===b)return a;var c=a.indexOf(b.charAt(0));return-1===c?!1:g(a.substr(c+1),b.substr(1))}function h(a,b,c){var d=0;return a.filter(function(a){var e=x(c)?b>d&&c(a):b>d;return d=e?d+1:d,e})}function i(a,b,c){return c.round(a*c.pow(10,b))/c.pow(10,b)}function j(a,b,c){b=b||[];var d=Object.keys(a);return d.forEach(function(d){if(C(a[d])&&!D(a[d])){var e=c?c+"."+d:c;j(a[d],b,e||d)}else{var f=c?c+"."+d:d;b.push(f)}}),b}function k(a){return a&&a.$evalAsync&&a.$watch}function l(){return function(a,b){return a>b}}function m(){return function(a,b){return a>=b}}function n(){return function(a,b){return b>a}}function o(){return function(a,b){return b>=a}}function p(){return function(a,b){return a==b}}function q(){return function(a,b){return a!=b}}function r(){return function(a,b){return a===b}}function s(){return function(a,b){return a!==b}}function t(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?!1:b.some(function(b){return C(b)||z(c)?a(c)(b):b===c})}}function u(a,b){return b=b||0,b>=a.length?a:D(a[b])?u(a.slice(0,b).concat(a[b],a.slice(b+1)),b):u(a,b+1)}function v(a){return function(b,c){function e(a,b){return y(b)?!1:a.some(function(a){return H(a,b)})}if(b=C(b)?d(b):b,!D(b))return b;var f=[],g=a(c);return y(c)?b.filter(function(a,b,c){return c.indexOf(a)===b}):b.filter(function(a){var b=g(a);return e(f,b)?!1:(f.push(b),!0)})}}function w(a,b,c){return b?a+c+w(a,--b,c):a}var x=b.isDefined,y=b.isUndefined,z=b.isFunction,A=b.isString,B=b.isNumber,C=b.isObject,D=b.isArray,E=b.forEach,F=b.extend,G=b.copy,H=b.equals;String.prototype.contains||(String.prototype.contains=function(){return-1!==String.prototype.indexOf.apply(this,arguments)}),b.module("a8m.angular",[]).filter("isUndefined",function(){return function(a){return b.isUndefined(a)}}).filter("isDefined",function(){return function(a){return b.isDefined(a)}}).filter("isFunction",function(){return function(a){return b.isFunction(a)}}).filter("isString",function(){return function(a){return b.isString(a)}}).filter("isNumber",function(){return function(a){return b.isNumber(a)}}).filter("isArray",function(){return function(a){return b.isArray(a)}}).filter("isObject",function(){return function(a){return b.isObject(a)}}).filter("isEqual",function(){return function(a,c){return b.equals(a,c)}}),b.module("a8m.conditions",[]).filter({isGreaterThan:l,">":l,isGreaterThanOrEqualTo:m,">=":m,isLessThan:n,"<":n,isLessThanOrEqualTo:o,"<=":o,isEqualTo:p,"==":p,isNotEqualTo:q,"!=":q,isIdenticalTo:r,"===":r,isNotIdenticalTo:s,"!==":s}),b.module("a8m.is-null",[]).filter("isNull",function(){return function(a){return e(a)}}),b.module("a8m.after-where",[]).filter("afterWhere",function(){return function(a,b){if(a=C(a)?d(a):a,!D(a)||y(b))return a;var c=a.map(function(a){return f(b,a);
+}).indexOf(!0);return a.slice(-1===c?0:c)}}),b.module("a8m.after",[]).filter("after",function(){return function(a,b){return a=C(a)?d(a):a,D(a)?a.slice(b):a}}),b.module("a8m.before-where",[]).filter("beforeWhere",function(){return function(a,b){if(a=C(a)?d(a):a,!D(a)||y(b))return a;var c=a.map(function(a){return f(b,a)}).indexOf(!0);return a.slice(0,-1===c?a.length:++c)}}),b.module("a8m.before",[]).filter("before",function(){return function(a,b){return a=C(a)?d(a):a,D(a)?a.slice(0,b?--b:b):a}}),b.module("a8m.chunk-by",["a8m.filter-watcher"]).filter("chunkBy",["filterWatcher",function(a){return function(b,c,d){function e(a,b){for(var c=[];a--;)c[a]=b;return c}function f(a,b,c){return D(a)?a.map(function(a,d,f){return d*=b,a=f.slice(d,d+b),!y(c)&&a.length<b?a.concat(e(b-a.length,c)):a}).slice(0,Math.ceil(a.length/b)):a}return a.isMemoized("chunkBy",arguments)||a.memoize("chunkBy",arguments,this,f(b,c,d))}}]),b.module("a8m.concat",[]).filter("concat",[function(){return function(a,b){if(y(b))return a;if(D(a))return C(b)?a.concat(d(b)):a.concat(b);if(C(a)){var c=d(a);return C(b)?c.concat(d(b)):c.concat(b)}return a}}]),b.module("a8m.contains",[]).filter({contains:["$parse",t],some:["$parse",t]}),b.module("a8m.count-by",[]).filter("countBy",["$parse",function(a){return function(b,c){var e,f={},g=a(c);return b=C(b)?d(b):b,!D(b)||y(c)?b:(b.forEach(function(a){e=g(a),f[e]||(f[e]=0),f[e]++}),f)}}]),b.module("a8m.defaults",[]).filter("defaults",["$parse",function(a){return function(b,c){if(b=C(b)?d(b):b,!D(b)||!C(c))return b;var e=j(c);return b.forEach(function(b){e.forEach(function(d){var e=a(d),f=e.assign;y(e(b))&&f(b,e(c))})}),b}}]),b.module("a8m.every",[]).filter("every",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?!0:b.every(function(b){return C(b)||z(c)?a(c)(b):b===c})}}]),b.module("a8m.filter-by",[]).filter("filterBy",["$parse",function(a){return function(b,e,f){var g;return f=A(f)||B(f)?String(f).toLowerCase():c,b=C(b)?d(b):b,!D(b)||y(f)?b:b.filter(function(b){return e.some(function(c){if(~c.indexOf("+")){var d=c.replace(new RegExp("\\s","g"),"").split("+");g=d.reduce(function(c,d,e){return 1===e?a(c)(b)+" "+a(d)(b):c+" "+a(d)(b)})}else g=a(c)(b);return A(g)||B(g)?String(g).toLowerCase().contains(f):!1})})}}]),b.module("a8m.first",[]).filter("first",["$parse",function(a){return function(b){var e,f,g;return b=C(b)?d(b):b,D(b)?(g=Array.prototype.slice.call(arguments,1),e=B(g[0])?g[0]:1,f=B(g[0])?B(g[1])?c:g[1]:g[0],g.length?h(b,e,f?a(f):f):b[0]):b}}]),b.module("a8m.flatten",[]).filter("flatten",function(){return function(a,b){return b=b||!1,a=C(a)?d(a):a,D(a)?b?[].concat.apply([],a):u(a,0):a}}),b.module("a8m.fuzzy-by",[]).filter("fuzzyBy",["$parse",function(a){return function(b,c,e,f){var h,i,j=f||!1;return b=C(b)?d(b):b,!D(b)||y(c)||y(e)?b:(i=a(c),b.filter(function(a){return h=i(a),A(h)?(h=j?h:h.toLowerCase(),e=j?e:e.toLowerCase(),g(h,e)!==!1):!1}))}}]),b.module("a8m.fuzzy",[]).filter("fuzzy",function(){return function(a,b,c){function e(a,b){var c,d,e=Object.keys(a);return 0<e.filter(function(e){return c=a[e],d?!0:A(c)?(c=f?c:c.toLowerCase(),d=g(c,b)!==!1):!1}).length}var f=c||!1;return a=C(a)?d(a):a,!D(a)||y(b)?a:(b=f?b:b.toLowerCase(),a.filter(function(a){return A(a)?(a=f?a:a.toLowerCase(),g(a,b)!==!1):C(a)?e(a,b):!1}))}}),b.module("a8m.group-by",["a8m.filter-watcher"]).filter("groupBy",["$parse","filterWatcher",function(a,b){return function(c,d){function e(a,b){var c,d={};return E(a,function(a){c=b(a),d[c]||(d[c]=[]),d[c].push(a)}),d}return!C(c)||y(d)?c:b.isMemoized("groupBy",arguments)||b.memoize("groupBy",arguments,this,e(c,a(d)))}}]),b.module("a8m.is-empty",[]).filter("isEmpty",function(){return function(a){return C(a)?!d(a).length:!a.length}}),b.module("a8m.join",[]).filter("join",function(){return function(a,b){return y(a)||!D(a)?a:(y(b)&&(b=" "),a.join(b))}}),b.module("a8m.last",[]).filter("last",["$parse",function(a){return function(b){var e,f,g,i=G(b);return i=C(i)?d(i):i,D(i)?(g=Array.prototype.slice.call(arguments,1),e=B(g[0])?g[0]:1,f=B(g[0])?B(g[1])?c:g[1]:g[0],g.length?h(i.reverse(),e,f?a(f):f).reverse():i[i.length-1]):i}}]),b.module("a8m.map",[]).filter("map",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?b:b.map(function(b){return a(c)(b)})}}]),b.module("a8m.omit",[]).filter("omit",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?b:b.filter(function(b){return!a(c)(b)})}}]),b.module("a8m.pick",[]).filter("pick",["$parse",function(a){return function(b,c){return b=C(b)?d(b):b,!D(b)||y(c)?b:b.filter(function(b){return a(c)(b)})}}]),b.module("a8m.range",[]).filter("range",function(){return function(a,b){for(var c=0;c<parseInt(b);c++)a.push(c);return a}}),b.module("a8m.remove-with",[]).filter("removeWith",function(){return function(a,b){return y(b)?a:(a=C(a)?d(a):a,a.filter(function(a){return!f(b,a)}))}}),b.module("a8m.remove",[]).filter("remove",function(){return function(a){a=C(a)?d(a):a;var b=Array.prototype.slice.call(arguments,1);return D(a)?a.filter(function(a){return!b.some(function(b){return H(b,a)})}):a}}),b.module("a8m.reverse",[]).filter("reverse",[function(){return function(a){return a=C(a)?d(a):a,A(a)?a.split("").reverse().join(""):D(a)?a.slice().reverse():a}}]),b.module("a8m.search-field",[]).filter("searchField",["$parse",function(a){return function(b){var c,e;b=C(b)?d(b):b;var f=Array.prototype.slice.call(arguments,1);return D(b)&&f.length?b.map(function(b){return e=f.map(function(d){return(c=a(d))(b)}).join(" "),F(b,{searchField:e})}):b}}]),b.module("a8m.to-array",[]).filter("toArray",function(){return function(a,b){return C(a)?b?Object.keys(a).map(function(b){return F(a[b],{$key:b})}):d(a):a}}),b.module("a8m.unique",[]).filter({unique:["$parse",v],uniq:["$parse",v]}),b.module("a8m.where",[]).filter("where",function(){return function(a,b){return y(b)?a:(a=C(a)?d(a):a,a.filter(function(a){return f(b,a)}))}}),b.module("a8m.xor",[]).filter("xor",["$parse",function(a){return function(b,c,e){function f(b,c){var d=a(e);return c.some(function(a){return e?H(d(a),d(b)):H(a,b)})}return e=e||!1,b=C(b)?d(b):b,c=C(c)?d(c):c,D(b)&&D(c)?b.concat(c).filter(function(a){return!(f(a,b)&&f(a,c))}):b}}]),b.module("a8m.math.byteFmt",["a8m.math"]).filter("byteFmt",["$math",function(a){return function(b,c){return B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)?1024>b?i(b,c,a)+" B":1048576>b?i(b/1024,c,a)+" KB":1073741824>b?i(b/1048576,c,a)+" MB":i(b/1073741824,c,a)+" GB":"NaN"}}]),b.module("a8m.math.degrees",["a8m.math"]).filter("degrees",["$math",function(a){return function(b,c){if(B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)){var d=180*b/a.PI;return a.round(d*a.pow(10,c))/a.pow(10,c)}return"NaN"}}]),b.module("a8m.math.kbFmt",["a8m.math"]).filter("kbFmt",["$math",function(a){return function(b,c){return B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)?1024>b?i(b,c,a)+" KB":1048576>b?i(b/1024,c,a)+" MB":i(b/1048576,c,a)+" GB":"NaN"}}]),b.module("a8m.math",[]).factory("$math",["$window",function(a){return a.Math}]),b.module("a8m.math.max",["a8m.math"]).filter("max",["$math","$parse",function(a,b){function c(c,d){var e=c.map(function(a){return b(d)(a)});return e.indexOf(a.max.apply(a,e))}return function(b,d){return D(b)?y(d)?a.max.apply(a,b):b[c(b,d)]:b}}]),b.module("a8m.math.min",["a8m.math"]).filter("min",["$math","$parse",function(a,b){function c(c,d){var e=c.map(function(a){return b(d)(a)});return e.indexOf(a.min.apply(a,e))}return function(b,d){return D(b)?y(d)?a.min.apply(a,b):b[c(b,d)]:b}}]),b.module("a8m.math.percent",["a8m.math"]).filter("percent",["$math","$window",function(a,b){return function(c,d,e){var f=A(c)?b.Number(c):c;return d=d||100,e=e||!1,!B(f)||b.isNaN(f)?c:e?a.round(f/d*100):f/d*100}}]),b.module("a8m.math.radians",["a8m.math"]).filter("radians",["$math",function(a){return function(b,c){if(B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)){var d=3.14159265359*b/180;return a.round(d*a.pow(10,c))/a.pow(10,c)}return"NaN"}}]),b.module("a8m.math.radix",[]).filter("radix",function(){return function(a,b){var c=/^[2-9]$|^[1-2]\d$|^3[0-6]$/;return B(a)&&c.test(b)?a.toString(b).toUpperCase():a}}),b.module("a8m.math.shortFmt",["a8m.math"]).filter("shortFmt",["$math",function(a){return function(b,c){return B(c)&&isFinite(c)&&c%1===0&&c>=0&&B(b)&&isFinite(b)?1e3>b?b:1e6>b?i(b/1e3,c,a)+" K":1e9>b?i(b/1e6,c,a)+" M":i(b/1e9,c,a)+" B":"NaN"}}]),b.module("a8m.math.sum",[]).filter("sum",function(){return function(a,b){return D(a)?a.reduce(function(a,b){return a+b},b||0):a}}),b.module("a8m.ends-with",[]).filter("endsWith",function(){return function(a,b,c){var d,e=c||!1;return!A(a)||y(b)?a:(a=e?a:a.toLowerCase(),d=a.length-b.length,-1!==a.indexOf(e?b:b.toLowerCase(),d))}}),b.module("a8m.latinize",[]).filter("latinize",[function(){function a(a){return a.replace(/[^\u0000-\u007E]/g,function(a){return c[a]||a})}for(var b=[{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"OE",letters:"\8cŒ"},{base:"oe",letters:"\9cœ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],c={},d=0;d<b.length;d++)for(var e=b[d].letters.split(""),f=0;f<e.length;f++)c[e[f]]=b[d].base;return function(b){return A(b)?a(b):b}}]),b.module("a8m.ltrim",[]).filter("ltrim",function(){return function(a,b){var c=b||"\\s";return A(a)?a.replace(new RegExp("^"+c+"+"),""):a}}),b.module("a8m.match",[]).filter("match",function(){return function(a,b,c){var d=new RegExp(b,c);return A(a)?a.match(d):null}}),b.module("a8m.repeat",[]).filter("repeat",[function(){return function(a,b,c){var d=~~b;return A(a)&&d?w(a,--b,c||""):a}}]),b.module("a8m.rtrim",[]).filter("rtrim",function(){return function(a,b){var c=b||"\\s";return A(a)?a.replace(new RegExp(c+"+$"),""):a}}),b.module("a8m.slugify",[]).filter("slugify",[function(){return function(a,b){var c=y(b)?"-":b;return A(a)?a.toLowerCase().replace(/\s+/g,c):a}}]),b.module("a8m.starts-with",[]).filter("startsWith",function(){return function(a,b,c){var d=c||!1;return!A(a)||y(b)?a:(a=d?a:a.toLowerCase(),!a.indexOf(d?b:b.toLowerCase()))}}),b.module("a8m.stringular",[]).filter("stringular",function(){return function(a){var b=Array.prototype.slice.call(arguments,1);return a.replace(/{(\d+)}/g,function(a,c){return y(b[c])?a:b[c]})}}),b.module("a8m.strip-tags",[]).filter("stripTags",function(){return function(a){return A(a)?a.replace(/<\S[^><]*>/g,""):a}}),b.module("a8m.test",[]).filter("test",function(){return function(a,b,c){var d=new RegExp(b,c);return A(a)?d.test(a):a}}),b.module("a8m.trim",[]).filter("trim",function(){return function(a,b){var c=b||"\\s";return A(a)?a.replace(new RegExp("^"+c+"+|"+c+"+$","g"),""):a}}),b.module("a8m.truncate",[]).filter("truncate",function(){return function(a,b,c,d){return b=y(b)?a.length:b,d=d||!1,c=c||"",!A(a)||a.length<=b?a:a.substring(0,d?-1===a.indexOf(" ",b)?a.length:a.indexOf(" ",b):b)+c}}),b.module("a8m.ucfirst",[]).filter("ucfirst",[function(){return function(a){return A(a)?a.split(" ").map(function(a){return a.charAt(0).toUpperCase()+a.substring(1)}).join(" "):a}}]),b.module("a8m.uri-component-encode",[]).filter("uriComponentEncode",["$window",function(a){return function(b){return A(b)?a.encodeURIComponent(b):b}}]),b.module("a8m.uri-encode",[]).filter("uriEncode",["$window",function(a){return function(b){return A(b)?a.encodeURI(b):b}}]),b.module("a8m.wrap",[]).filter("wrap",function(){return function(a,b,c){return A(a)&&x(b)?[b,a,c||b].join(""):a}}),b.module("a8m.filter-watcher",[]).provider("filterWatcher",function(){this.$get=["$window","$rootScope",function(a,b){function c(b,c){function d(){var b=[];return function(c,d){if(C(d)&&!e(d)){if(~b.indexOf(d))return"[Circular]";b.push(d)}return a==d?"$WINDOW":a.document==d?"$DOCUMENT":k(d)?"$SCOPE":d}}return[b,JSON.stringify(c,d())].join("#").replace(/"/g,"")}function d(a){var b=a.targetScope.$id;E(l[b],function(a){delete j[a]}),delete l[b]}function f(){m(function(){b.$$phase||(j={})},2e3)}function g(a,b){var c=a.$id;return y(l[c])&&(a.$on("$destroy",d),l[c]=[]),l[c].push(b)}function h(a,b){var d=c(a,b);return j[d]}function i(a,b,d,e){var h=c(a,b);return j[h]=e,k(d)?g(d,h):f(),e}var j={},l={},m=a.setTimeout;return{isMemoized:h,memoize:i}}]}),b.module("angular.filter",["a8m.ucfirst","a8m.uri-encode","a8m.uri-component-encode","a8m.slugify","a8m.latinize","a8m.strip-tags","a8m.stringular","a8m.truncate","a8m.starts-with","a8m.ends-with","a8m.wrap","a8m.trim","a8m.ltrim","a8m.rtrim","a8m.repeat","a8m.test","a8m.match","a8m.to-array","a8m.concat","a8m.contains","a8m.unique","a8m.is-empty","a8m.after","a8m.after-where","a8m.before","a8m.before-where","a8m.defaults","a8m.where","a8m.reverse","a8m.remove","a8m.remove-with","a8m.group-by","a8m.count-by","a8m.chunk-by","a8m.search-field","a8m.fuzzy-by","a8m.fuzzy","a8m.omit","a8m.pick","a8m.every","a8m.filter-by","a8m.xor","a8m.map","a8m.first","a8m.last","a8m.flatten","a8m.join","a8m.range","a8m.math","a8m.math.max","a8m.math.min","a8m.math.percent","a8m.math.radix","a8m.math.sum","a8m.math.degrees","a8m.math.radians","a8m.math.byteFmt","a8m.math.kbFmt","a8m.math.shortFmt","a8m.angular","a8m.conditions","a8m.is-null","a8m.filter-watcher"])}(window,window.angular),function(a,b){var c=b.isDefined,d=b.isUndefined,e=b.isNumber,f=b.isObject,g=b.isArray,h=b.extend,i=b.toJson;b.module("LocalStorageModule",[]).provider("localStorageService",function(){this.prefix="ls",this.storageType="localStorage",this.cookie={expiry:30,path:"/"},this.notify={setItem:!0,removeItem:!1},this.setPrefix=function(a){return this.prefix=a,this},this.setStorageType=function(a){return this.storageType=a,this},this.setStorageCookie=function(a,b){return this.cookie.expiry=a,this.cookie.path=b,this},this.setStorageCookieDomain=function(a){return this.cookie.domain=a,this},this.setNotify=function(a,b){return this.notify={setItem:a,removeItem:b},this},this.$get=["$rootScope","$window","$document","$parse",function(a,b,j,k){var l,m=this,n=m.prefix,o=m.cookie,p=m.notify,q=m.storageType;j?j[0]&&(j=j[0]):j=document,"."!==n.substr(-1)&&(n=n?n+".":"");var r=function(a){return n+a},s=function(){try{var c=q in b&&null!==b[q],d=r("__"+Math.round(1e7*Math.random()));return c&&(l=b[q],l.setItem(d,""),l.removeItem(d)),c}catch(e){return q="cookie",a.$broadcast("LocalStorageModule.notification.error",e.message),!1}}(),t=function(b,c){if(c=d(c)?null:i(c),!s||"cookie"===m.storageType)return s||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),p.setItem&&a.$broadcast("LocalStorageModule.notification.setitem",{key:b,newvalue:c,storageType:"cookie"}),z(b,c);try{l&&l.setItem(r(b),c),p.setItem&&a.$broadcast("LocalStorageModule.notification.setitem",{key:b,newvalue:c,storageType:m.storageType})}catch(e){return a.$broadcast("LocalStorageModule.notification.error",e.message),z(b,c)}return!0},u=function(b){if(!s||"cookie"===m.storageType)return s||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),A(b);var c=l?l.getItem(r(b)):null;if(!c||"null"===c)return null;try{return JSON.parse(c)}catch(d){return c}},v=function(){var b,c;for(b=0;b<arguments.length;b++)if(c=arguments[b],s&&"cookie"!==m.storageType)try{l.removeItem(r(c)),p.removeItem&&a.$broadcast("LocalStorageModule.notification.removeitem",{key:c,storageType:m.storageType})}catch(d){a.$broadcast("LocalStorageModule.notification.error",d.message),B(c)}else s||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),p.removeItem&&a.$broadcast("LocalStorageModule.notification.removeitem",{key:c,storageType:"cookie"}),B(c)},w=function(){if(!s)return a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),!1;var b=n.length,c=[];for(var d in l)if(d.substr(0,b)===n)try{c.push(d.substr(b))}catch(e){return a.$broadcast("LocalStorageModule.notification.error",e.Description),[]}return c},x=function(b){var c=n?new RegExp("^"+n):new RegExp,d=b?new RegExp(b):new RegExp;if(!s||"cookie"===m.storageType)return s||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),C();var e=n.length;for(var f in l)if(c.test(f)&&d.test(f.substr(e)))try{v(f.substr(e))}catch(g){return a.$broadcast("LocalStorageModule.notification.error",g.message),C()}return!0},y=function(){try{return b.navigator.cookieEnabled||"cookie"in j&&(j.cookie.length>0||(j.cookie="test").indexOf.call(j.cookie,"test")>-1)}catch(c){return a.$broadcast("LocalStorageModule.notification.error",c.message),!1}}(),z=function(b,c,h){if(d(c))return!1;if((g(c)||f(c))&&(c=i(c)),!y)return a.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;try{var k="",l=new Date,m="";if(null===c?(l.setTime(l.getTime()+-864e5),k="; expires="+l.toGMTString(),c=""):e(h)&&0!==h?(l.setTime(l.getTime()+24*h*60*60*1e3),k="; expires="+l.toGMTString()):0!==o.expiry&&(l.setTime(l.getTime()+24*o.expiry*60*60*1e3),k="; expires="+l.toGMTString()),b){var n="; path="+o.path;o.domain&&(m="; domain="+o.domain),j.cookie=r(b)+"="+encodeURIComponent(c)+k+n+m}}catch(p){return a.$broadcast("LocalStorageModule.notification.error",p.message),!1}return!0},A=function(b){if(!y)return a.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;for(var c=j.cookie&&j.cookie.split(";")||[],d=0;d<c.length;d++){for(var e=c[d];" "===e.charAt(0);)e=e.substring(1,e.length);if(0===e.indexOf(r(b)+"=")){var f=decodeURIComponent(e.substring(n.length+b.length+1,e.length));try{return JSON.parse(f)}catch(g){return f}}}return null},B=function(a){z(a,null)},C=function(){for(var a=null,b=n.length,c=j.cookie.split(";"),d=0;d<c.length;d++){for(a=c[d];" "===a.charAt(0);)a=a.substring(1,a.length);var e=a.substring(b,a.indexOf("="));B(e)}},D=function(){return q},E=function(a,b,d,e){e=e||b;var g=u(e);return null===g&&c(d)?g=d:f(g)&&f(d)&&(g=h(g,d)),k(b).assign(a,g),a.$watch(b,function(a){t(e,a)},f(a[b]))},F=function(){for(var a=0,c=b[q],d=0;d<c.length;d++)0===c.key(d).indexOf(n)&&a++;return a};return{isSupported:s,getStorageType:D,set:t,add:t,get:u,keys:w,remove:v,clearAll:x,bind:E,deriveKey:r,length:F,cookie:{isSupported:y,set:z,add:z,get:A,remove:B,clearAll:C}}}]})}(window,window.angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="angular-md5"),function(a){a.module("angular-md5",["gdi2290.md5"]),a.module("ngMd5",["gdi2290.md5"]),a.module("gdi2290.md5",["gdi2290.gravatar-filter","gdi2290.md5-service","gdi2290.md5-filter"]),a.module("gdi2290.gravatar-filter",[]).filter("gravatar",["md5",function(a){var b={};return function(c,d){return b[c]||(d=d?a.createHash(d.toString().toLowerCase()):"",b[c]=c?a.createHash(c.toString().toLowerCase()):d),b[c]}}]),a.module("gdi2290.md5-filter",[]).filter("md5",["md5",function(a){return function(b){return b?a.createHash(b.toString().toLowerCase()):b}}]),a.module("gdi2290.md5-service",[]).factory("md5",[function(){var a={createHash:function(a){if(null===a)return null;var b,c,d,e,f,g,h,i,j,k,l=function(a,b){return a<<b|a>>>32-b},m=function(a,b){var c,d,e,f,g;return e=2147483648&a,f=2147483648&b,c=1073741824&a,d=1073741824&b,g=(1073741823&a)+(1073741823&b),c&d?2147483648^g^e^f:c|d?1073741824&g?3221225472^g^e^f:1073741824^g^e^f:g^e^f},n=function(a,b,c){return a&b|~a&c},o=function(a,b,c){return a&c|b&~c},p=function(a,b,c){return a^b^c},q=function(a,b,c){return b^(a|~c)},r=function(a,b,c,d,e,f,g){return a=m(a,m(m(n(b,c,d),e),g)),m(l(a,f),b)},s=function(a,b,c,d,e,f,g){return a=m(a,m(m(o(b,c,d),e),g)),m(l(a,f),b)},t=function(a,b,c,d,e,f,g){return a=m(a,m(m(p(b,c,d),e),g)),m(l(a,f),b)},u=function(a,b,c,d,e,f,g){return a=m(a,m(m(q(b,c,d),e),g)),m(l(a,f),b)},v=function(a){for(var b,c=a.length,d=c+8,e=(d-d%64)/64,f=16*(e+1),g=new Array(f-1),h=0,i=0;c>i;)b=(i-i%4)/4,h=i%4*8,g[b]=g[b]|a.charCodeAt(i)<<h,i++;return b=(i-i%4)/4,h=i%4*8,g[b]=g[b]|128<<h,g[f-2]=c<<3,g[f-1]=c>>>29,g},w=function(a){var b,c,d="",e="";for(c=0;3>=c;c++)b=a>>>8*c&255,e="0"+b.toString(16),d+=e.substr(e.length-2,2);return d},x=[],y=7,z=12,A=17,B=22,C=5,D=9,E=14,F=20,G=4,H=11,I=16,J=23,K=6,L=10,M=15,N=21;for(x=v(a),h=1732584193,i=4023233417,j=2562383102,k=271733878,b=x.length,c=0;b>c;c+=16)d=h,e=i,f=j,g=k,h=r(h,i,j,k,x[c+0],y,3614090360),k=r(k,h,i,j,x[c+1],z,3905402710),j=r(j,k,h,i,x[c+2],A,606105819),i=r(i,j,k,h,x[c+3],B,3250441966),h=r(h,i,j,k,x[c+4],y,4118548399),k=r(k,h,i,j,x[c+5],z,1200080426),j=r(j,k,h,i,x[c+6],A,2821735955),i=r(i,j,k,h,x[c+7],B,4249261313),h=r(h,i,j,k,x[c+8],y,1770035416),k=r(k,h,i,j,x[c+9],z,2336552879),j=r(j,k,h,i,x[c+10],A,4294925233),i=r(i,j,k,h,x[c+11],B,2304563134),h=r(h,i,j,k,x[c+12],y,1804603682),k=r(k,h,i,j,x[c+13],z,4254626195),j=r(j,k,h,i,x[c+14],A,2792965006),i=r(i,j,k,h,x[c+15],B,1236535329),h=s(h,i,j,k,x[c+1],C,4129170786),k=s(k,h,i,j,x[c+6],D,3225465664),j=s(j,k,h,i,x[c+11],E,643717713),i=s(i,j,k,h,x[c+0],F,3921069994),h=s(h,i,j,k,x[c+5],C,3593408605),k=s(k,h,i,j,x[c+10],D,38016083),j=s(j,k,h,i,x[c+15],E,3634488961),i=s(i,j,k,h,x[c+4],F,3889429448),h=s(h,i,j,k,x[c+9],C,568446438),k=s(k,h,i,j,x[c+14],D,3275163606),j=s(j,k,h,i,x[c+3],E,4107603335),i=s(i,j,k,h,x[c+8],F,1163531501),h=s(h,i,j,k,x[c+13],C,2850285829),k=s(k,h,i,j,x[c+2],D,4243563512),j=s(j,k,h,i,x[c+7],E,1735328473),i=s(i,j,k,h,x[c+12],F,2368359562),h=t(h,i,j,k,x[c+5],G,4294588738),k=t(k,h,i,j,x[c+8],H,2272392833),j=t(j,k,h,i,x[c+11],I,1839030562),i=t(i,j,k,h,x[c+14],J,4259657740),h=t(h,i,j,k,x[c+1],G,2763975236),k=t(k,h,i,j,x[c+4],H,1272893353),j=t(j,k,h,i,x[c+7],I,4139469664),i=t(i,j,k,h,x[c+10],J,3200236656),h=t(h,i,j,k,x[c+13],G,681279174),k=t(k,h,i,j,x[c+0],H,3936430074),j=t(j,k,h,i,x[c+3],I,3572445317),i=t(i,j,k,h,x[c+6],J,76029189),h=t(h,i,j,k,x[c+9],G,3654602809),k=t(k,h,i,j,x[c+12],H,3873151461),j=t(j,k,h,i,x[c+15],I,530742520),i=t(i,j,k,h,x[c+2],J,3299628645),h=u(h,i,j,k,x[c+0],K,4096336452),k=u(k,h,i,j,x[c+7],L,1126891415),j=u(j,k,h,i,x[c+14],M,2878612391),i=u(i,j,k,h,x[c+5],N,4237533241),h=u(h,i,j,k,x[c+12],K,1700485571),k=u(k,h,i,j,x[c+3],L,2399980690),j=u(j,k,h,i,x[c+10],M,4293915773),i=u(i,j,k,h,x[c+1],N,2240044497),h=u(h,i,j,k,x[c+8],K,1873313359),k=u(k,h,i,j,x[c+15],L,4264355552),j=u(j,k,h,i,x[c+6],M,2734768916),i=u(i,j,k,h,x[c+13],N,1309151649),h=u(h,i,j,k,x[c+4],K,4149444226),k=u(k,h,i,j,x[c+11],L,3174756917),j=u(j,k,h,i,x[c+2],M,718787259),i=u(i,j,k,h,x[c+9],N,3951481745),h=m(h,d),i=m(i,e),j=m(j,f),k=m(k,g);var O=w(h)+w(i)+w(j)+w(k);return O.toLowerCase()}};return a}])}(angular),angular.module("notification",[]).provider("$notification",$notificationProvider),function(a,b,c){"use strict";function d(a){return null!=a&&""!==a&&"hasOwnProperty"!==a&&h.test("."+a)}function e(a,e){if(!d(e))throw g("badmember",'Dotted member path "@{0}" is invalid.',e);for(var f=e.split("."),h=0,i=f.length;i>h&&b.isDefined(a);h++){var j=f[h];a=null!==a?a[j]:c}return a}function f(a,c){c=c||{},b.forEach(c,function(a,b){delete c[b]});for(var d in a)!a.hasOwnProperty(d)||"$"===d.charAt(0)&&"$"===d.charAt(1)||(c[d]=a[d]);return c}var g=b.$$minErr("$resource"),h=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;b.module("ngResource",["ng"]).provider("$resource",function(){var a=/^https?:\/\/[^\/]*/,d=this;this.defaults={stripTrailingSlashes:!0,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}}},this.$get=["$http","$log","$q",function(h,i,j){function k(a){return l(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function l(a,b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,b?"%20":"+")}function m(a,b){this.template=a,this.defaults=q({},d.defaults,b),this.urlParams={}}function n(a,k,l,t){function u(a,b){var c={};return b=q({},k,b),p(b,function(b,d){s(b)&&(b=b()),c[d]=b&&b.charAt&&"@"==b.charAt(0)?e(a,b.substr(1)):b}),c}function v(a){return a.resource}function w(a){f(a||{},this)}var x=new m(a,t);return l=q({},d.defaults.actions,l),w.prototype.toJSON=function(){var a=q({},this);return delete a.$promise,delete a.$resolved,a},p(l,function(a,d){var e=/^(POST|PUT|PATCH)$/i.test(a.method);w[d]=function(k,l,m,n){var t,y,z,A={};switch(arguments.length){case 4:z=n,y=m;case 3:case 2:if(!s(l)){A=k,t=l,y=m;break}if(s(k)){y=k,z=l;break}y=l,z=m;case 1:s(k)?y=k:e?t=k:A=k;break;case 0:break;default:throw g("badargs","Expected up to 4 arguments [params, data, success, error], got {0} arguments",arguments.length)}var B=this instanceof w,C=B?t:a.isArray?[]:new w(t),D={},E=a.interceptor&&a.interceptor.response||v,F=a.interceptor&&a.interceptor.responseError||c;p(a,function(a,c){switch(c){default:D[c]=r(a);break;case"params":case"isArray":case"interceptor":break;case"timeout":a&&!b.isNumber(a)&&i.debug("ngResource:\n  Only numeric values are allowed as `timeout`.\n  Promises are not supported in $resource, because the same value would be used for multiple requests.\n  If you need support for cancellable $resource actions, you should upgrade to version 1.5 or higher.")}}),e&&(D.data=t),x.setUrlParams(D,q({},u(t,a.params||{}),A),a.url);var G=h(D).then(function(c){var e=c.data,h=C.$promise;if(e){if(b.isArray(e)!==!!a.isArray)throw g("badcfg","Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})",d,a.isArray?"array":"object",b.isArray(e)?"array":"object",D.method,D.url);a.isArray?(C.length=0,p(e,function(a){"object"==typeof a?C.push(new w(a)):C.push(a)})):(f(e,C),C.$promise=h)}return C.$resolved=!0,c.resource=C,c},function(a){return C.$resolved=!0,(z||o)(a),j.reject(a)});return G=G.then(function(a){var b=E(a);return(y||o)(b,a.headers),b},F),B?G:(C.$promise=G,C.$resolved=!1,C)},w.prototype["$"+d]=function(a,b,c){s(a)&&(c=b,b=a,a={});var e=w[d].call(this,a,this,b,c);return e.$promise||e}}),w.bind=function(b){return n(a,q({},k,b),l)},w}var o=b.noop,p=b.forEach,q=b.extend,r=b.copy,s=b.isFunction;return m.prototype={setUrlParams:function(c,d,e){var f,h,i=this,j=e||i.template,l="",m=i.urlParams={};p(j.split(/\W/),function(a){if("hasOwnProperty"===a)throw g("badname","hasOwnProperty is not a valid parameter name.");!new RegExp("^\\d+$").test(a)&&a&&new RegExp("(^|[^\\\\]):"+a+"(\\W|$)").test(j)&&(m[a]=!0)}),j=j.replace(/\\:/g,":"),j=j.replace(a,function(a){return l=a,""}),d=d||{},p(i.urlParams,function(a,c){f=d.hasOwnProperty(c)?d[c]:i.defaults[c],b.isDefined(f)&&null!==f?(h=k(f),j=j.replace(new RegExp(":"+c+"(\\W|$)","g"),function(a,b){return h+b})):j=j.replace(new RegExp("(/?):"+c+"(\\W|$)","g"),function(a,b,c){return"/"==c.charAt(0)?c:b+c})}),i.defaults.stripTrailingSlashes&&(j=j.replace(/\/+$/,"")||"/"),j=j.replace(/\/\.(?=\w+($|\?))/,"."),c.url=l+j.replace(/\/\\\./,"/."),p(d,function(a,b){i.urlParams[b]||(c.params=c.params||{},c.params[b]=a)})}},n}]})}(window,window.angular),function(a,b,c){"use strict";function d(){this.$get=["$$sanitizeUri",function(a){return function(b){var c=[];return g(b,j(c,function(b,c){return!/^unsafe/.test(a(b,c))})),c.join("")}}]}function e(a){var c=[],d=j(c,b.noop);return d.chars(a),c.join("")}function f(a,c){var d,e={},f=a.split(",");for(d=0;d<f.length;d++)e[c?b.lowercase(f[d]):f[d]]=!0;return e}function g(a,c){function d(a,d,f,g){if(d=b.lowercase(d),z[d])for(;t.last()&&A[t.last()];)e("",t.last());y[d]&&t.last()==d&&e("",d),g=v[d]||!!g,g||t.push(d);var i={};f.replace(n,function(a,b,c,d,e){var f=c||d||e||"";i[b]=h(f)}),c.start&&c.start(d,i,g)}function e(a,d){var e,f=0;if(d=b.lowercase(d))for(f=t.length-1;f>=0&&t[f]!=d;f--);if(f>=0){for(e=t.length-1;e>=f;e--)c.end&&c.end(t[e]);t.length=f}}"string"!=typeof a&&(a=null===a||"undefined"==typeof a?"":""+a);var f,g,i,j,t=[],u=a;for(t.last=function(){return t[t.length-1]};a;){if(j="",g=!0,t.last()&&C[t.last()]?(a=a.replace(new RegExp("([\\W\\w]*)<\\s*\\/\\s*"+t.last()+"[^>]*>","i"),function(a,b){return b=b.replace(q,"$1").replace(s,"$1"),c.chars&&c.chars(h(b)),""}),e("",t.last())):(0===a.indexOf("<!--")?(f=a.indexOf("--",4),f>=0&&a.lastIndexOf("-->",f)===f&&(c.comment&&c.comment(a.substring(4,f)),a=a.substring(f+3),g=!1)):r.test(a)?(i=a.match(r),i&&(a=a.replace(i[0],""),g=!1)):p.test(a)?(i=a.match(m),i&&(a=a.substring(i[0].length),i[0].replace(m,e),g=!1)):o.test(a)&&(i=a.match(l),i?(i[4]&&(a=a.substring(i[0].length),i[0].replace(l,d)),g=!1):(j+="<",a=a.substring(1))),g&&(f=a.indexOf("<"),j+=0>f?a:a.substring(0,f),a=0>f?"":a.substring(f),c.chars&&c.chars(h(j)))),a==u)throw k("badparse","The sanitizer was unable to parse the following block of html: {0}",a);u=a}e()}function h(a){return a?(I.innerHTML=a.replace(/</g,"&lt;"),I.textContent):""}function i(a){return a.replace(/&/g,"&amp;").replace(t,function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1);return"&#"+(1024*(b-55296)+(c-56320)+65536)+";"}).replace(u,function(a){return"&#"+a.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function j(a,c){var d=!1,e=b.bind(a,a.push);return{start:function(a,f,g){a=b.lowercase(a),!d&&C[a]&&(d=a),d||D[a]!==!0||(e("<"),e(a),b.forEach(f,function(d,f){var g=b.lowercase(f),h="img"===a&&"src"===g||"background"===g;H[g]!==!0||E[g]===!0&&!c(d,h)||(e(" "),e(f),e('="'),e(i(d)),e('"'))}),e(g?"/>":">"))},end:function(a){a=b.lowercase(a),d||D[a]!==!0||(e("</"),e(a),e(">")),a==d&&(d=!1)},chars:function(a){d||e(i(a))}}}var k=b.$$minErr("$sanitize"),l=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,m=/^<\/\s*([\w:-]+)[^>]*>/,n=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,o=/^</,p=/^<\//,q=/<!--(.*?)-->/g,r=/<!DOCTYPE([^>]*?)>/i,s=/<!\[CDATA\[(.*?)]]>/g,t=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=/([^\#-~| |!])/g,v=f("area,br,col,hr,img,wbr"),w=f("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),x=f("rp,rt"),y=b.extend({},x,w),z=b.extend({},w,f("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),A=b.extend({},x,f("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),B=f("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan,use"),C=f("script,style"),D=b.extend({},v,z,A,y,B),E=f("background,cite,href,longdesc,src,usemap,xlink:href"),F=f("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"),G=f("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan",!0),H=b.extend({},E,G,F),I=document.createElement("pre");
+b.module("ngSanitize",[]).provider("$sanitize",d),b.module("ngSanitize").filter("linky",["$sanitize",function(a){var c=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,d=/^mailto:/i;return function(f,g){function h(a){a&&n.push(e(a))}function i(a,c){n.push("<a "),b.isDefined(g)&&n.push('target="',g,'" '),n.push('href="',a.replace(/"/g,"&quot;"),'">'),h(c),n.push("</a>")}if(!f)return f;for(var j,k,l,m=f,n=[];j=m.match(c);)k=j[0],j[2]||j[4]||(k=(j[3]?"http://":"mailto:")+k),l=j.index,h(m.substr(0,l)),i(k,j[0].replace(d,"")),m=m.substring(l+j[0].length);return h(m),a(n.join(""))}}])}(window,window.angular),function(a,b){"use strict";a.module("smart-table",[]).run(["$templateCache",function(a){a.put("template/smart-table/pagination.html",'<nav ng-if="numPages && pages.length >= 2"><ul class="pagination"><li ng-repeat="page in pages" ng-class="{active: page==currentPage}"><a ng-click="selectPage(page)">{{page}}</a></li></ul></nav>')}]),a.module("smart-table").constant("stConfig",{pagination:{template:"template/smart-table/pagination.html",itemsByPage:10,displayedPages:5},search:{delay:400,inputEvent:"input"},select:{mode:"single",selectedClass:"st-selected"},sort:{ascentClass:"st-sort-ascent",descentClass:"st-sort-descent",skipNatural:!1,delay:300},pipe:{delay:100}}),a.module("smart-table").controller("stTableController",["$scope","$parse","$filter","$attrs",function(c,d,e,f){function g(a){return a?[].concat(a):[]}function h(){r=g(j(c)),t===!0&&u.pipe()}function i(a,b){if(-1!=b.indexOf(".")){var c=b.split("."),e=c.pop(),f=c.join("."),g=d(f)(a);delete g[e],0==Object.keys(g).length&&i(a,f)}else delete a[b]}var j,k,l,m=f.stTable,n=d(m),o=n.assign,p=e("orderBy"),q=e("filter"),r=g(n(c)),s={sort:{},search:{},pagination:{start:0,totalItemCount:0}},t=!0,u=this;f.stSafeSrc&&(j=d(f.stSafeSrc),c.$watch(function(){var a=j(c);return a&&a.length?a[0]:b},function(a,b){a!==b&&h()}),c.$watch(function(){var a=j(c);return a?a.length:0},function(a,b){a!==r.length&&h()}),c.$watch(function(){return j(c)},function(a,b){a!==b&&(s.pagination.start=0,h())})),this.sortBy=function(b,c){return s.sort.predicate=b,s.sort.reverse=c===!0,a.isFunction(b)?s.sort.functionName=b.name:delete s.sort.functionName,s.pagination.start=0,this.pipe()},this.search=function(b,c){var e=s.search.predicateObject||{},f=c?c:"$";return b=a.isString(b)?b.trim():b,d(f).assign(e,b),b||i(e,f),s.search.predicateObject=e,s.pagination.start=0,this.pipe()},this.pipe=function(){var a,d=s.pagination;k=s.search.predicateObject?q(r,s.search.predicateObject):r,s.sort.predicate&&(k=p(k,s.sort.predicate,s.sort.reverse)),d.totalItemCount=k.length,d.number!==b&&(d.numberOfPages=k.length>0?Math.ceil(k.length/d.number):1,d.start=d.start>=k.length?(d.numberOfPages-1)*d.number:d.start,a=k.slice(d.start,d.start+parseInt(d.number))),o(c,a||k)},this.select=function(a,d){var e=g(n(c)),f=e.indexOf(a);-1!==f&&("single"===d?(a.isSelected=a.isSelected!==!0,l&&(l.isSelected=!1),l=a.isSelected===!0?a:b):e[f].isSelected=!e[f].isSelected)},this.slice=function(a,b){return s.pagination.start=a,s.pagination.number=b,this.pipe()},this.tableState=function(){return s},this.getFilteredCollection=function(){return k||r},this.setFilterFunction=function(a){q=e(a)},this.setSortFunction=function(a){p=e(a)},this.preventPipeOnWatch=function(){t=!1}}]).directive("stTable",function(){return{restrict:"A",controller:"stTableController",link:function(a,b,c,d){c.stSetFilter&&d.setFilterFunction(c.stSetFilter),c.stSetSort&&d.setSortFunction(c.stSetSort)}}}),a.module("smart-table").directive("stSearch",["stConfig","$timeout","$parse",function(a,b,c){return{require:"^stTable",link:function(d,e,f,g){var h=g,i=null,j=f.stDelay||a.search.delay,k=f.stInputEvent||a.search.inputEvent;f.$observe("stSearch",function(a,b){var c=e[0].value;a!==b&&c&&(g.tableState().search={},h.search(c,a))}),d.$watch(function(){return g.tableState().search},function(a,b){var d=f.stSearch||"$";a.predicateObject&&c(d)(a.predicateObject)!==e[0].value&&(e[0].value=c(d)(a.predicateObject)||"")},!0),e.bind(k,function(a){a=a.originalEvent||a,null!==i&&b.cancel(i),i=b(function(){h.search(a.target.value,f.stSearch||""),i=null},j)})}}}]),a.module("smart-table").directive("stSelectRow",["stConfig",function(a){return{restrict:"A",require:"^stTable",scope:{row:"=stSelectRow"},link:function(b,c,d,e){var f=d.stSelectMode||a.select.mode;c.bind("click",function(){b.$apply(function(){e.select(b.row,f)})}),b.$watch("row.isSelected",function(b){b===!0?c.addClass(a.select.selectedClass):c.removeClass(a.select.selectedClass)})}}}]),a.module("smart-table").directive("stSort",["stConfig","$parse","$timeout",function(c,d,e){return{restrict:"A",require:"^stTable",link:function(f,g,h,i){function j(){s?n=0===n?2:2===n?1:0:n++;var b;l=a.isFunction(m(f))||a.isArray(m(f))?m(f):h.stSort,n%3===0&&!!r!=!0?(n=0,i.tableState().sort={},i.tableState().pagination.start=0,b=i.pipe.bind(i)):b=i.sortBy.bind(i,l,n%2===0),null!==t&&e.cancel(t),0>u?b():t=e(b,u)}var k,l=h.stSort,m=d(l),n=0,o=h.stClassAscent||c.sort.ascentClass,p=h.stClassDescent||c.sort.descentClass,q=[o,p],r=h.stSkipNatural!==b?h.stSkipNatural:c.sort.skipNatural,s="true"===h.stDescendingFirst,t=null,u=h.stDelay||c.sort.delay;h.stSortDefault&&(k=f.$eval(h.stSortDefault)!==b?f.$eval(h.stSortDefault):h.stSortDefault),g.bind("click",function(){l&&f.$apply(j)}),k&&(n="reverse"===k?1:0,j()),f.$watch(function(){return i.tableState().sort},function(a){a.predicate!==l?(n=0,g.removeClass(o).removeClass(p)):(n=a.reverse===!0?2:1,g.removeClass(q[n%2]).addClass(q[n-1]))},!0)}}}]),a.module("smart-table").directive("stPagination",["stConfig",function(a){return{restrict:"EA",require:"^stTable",scope:{stItemsByPage:"=?",stDisplayedPages:"=?",stPageChange:"&"},templateUrl:function(b,c){return c.stTemplate?c.stTemplate:a.pagination.template},link:function(b,c,d,e){function f(){var a,c,d=e.tableState().pagination,f=1,g=b.currentPage;for(b.totalItemCount=d.totalItemCount,b.currentPage=Math.floor(d.start/d.number)+1,f=Math.max(f,b.currentPage-Math.abs(Math.floor(b.stDisplayedPages/2))),a=f+b.stDisplayedPages,a>d.numberOfPages&&(a=d.numberOfPages+1,f=Math.max(1,a-b.stDisplayedPages)),b.pages=[],b.numPages=d.numberOfPages,c=f;a>c;c++)b.pages.push(c);g!==b.currentPage&&b.stPageChange({newPage:b.currentPage})}b.stItemsByPage=b.stItemsByPage?+b.stItemsByPage:a.pagination.itemsByPage,b.stDisplayedPages=b.stDisplayedPages?+b.stDisplayedPages:a.pagination.displayedPages,b.currentPage=1,b.pages=[],b.$watch(function(){return e.tableState().pagination},f,!0),b.$watch("stItemsByPage",function(a,c){a!==c&&b.selectPage(1)}),b.$watch("stDisplayedPages",f),b.selectPage=function(a){a>0&&a<=b.numPages&&e.slice((a-1)*b.stItemsByPage,b.stItemsByPage)},e.tableState().pagination.number||e.slice(0,b.stItemsByPage)}}}]),a.module("smart-table").directive("stPipe",["stConfig","$timeout",function(b,c){return{require:"stTable",scope:{stPipe:"="},link:{pre:function(d,e,f,g){var h=null;a.isFunction(d.stPipe)&&(g.preventPipeOnWatch(),g.pipe=function(){return null!==h&&c.cancel(h),h=c(function(){d.stPipe(g.tableState(),g)},b.pipe.delay)})},post:function(a,b,c,d){d.pipe()}}}}])}(angular),angular.module("btford.socket-io",[]).provider("socketFactory",function(){"use strict";var a="socket:";this.$get=["$rootScope","$timeout",function(b,c){var d=function(a,b){return b?function(){var d=arguments;c(function(){b.apply(a,d)},0)}:angular.noop};return function(c){c=c||{};var e=c.ioSocket||io.connect(),f=void 0===c.prefix?a:c.prefix,g=c.scope||b,h=function(a,b){e.on(a,b.__ng=d(e,b))},i=function(a,b){e.once(a,b.__ng=d(e,b))},j={on:h,addListener:h,once:i,emit:function(a,b,c){var f=arguments.length-1,c=arguments[f];return"function"==typeof c&&(c=d(e,c),arguments[f]=c),e.emit.apply(e,arguments)},removeListener:function(a,b){return b&&b.__ng&&(arguments[1]=b.__ng),e.removeListener.apply(e,arguments)},removeAllListeners:function(){return e.removeAllListeners.apply(e,arguments)},disconnect:function(a){return e.disconnect(a)},connect:function(){return e.connect()},forward:function(a,b){a instanceof Array==!1&&(a=[a]),b||(b=g),a.forEach(function(a){var c=f+a,g=d(e,function(){Array.prototype.unshift.call(arguments,c),b.$broadcast.apply(b,arguments)});b.$on("$destroy",function(){e.removeListener(a,g)}),e.on(a,g)})}};return j}}]}),function(){"use strict";function a(a,b,c,d,e,f,g){function h(a){if(1!==arguments.length||a)if(a)m(a.toastId);else for(var b=0;b<t.length;b++)m(t[b].toastId)}function i(a,b,c){var d=o().iconClasses.error;return n(d,a,b,c)}function j(a,b,c){var d=o().iconClasses.info;return n(d,a,b,c)}function k(a,b,c){var d=o().iconClasses.success;return n(d,a,b,c)}function l(a,b,c){var d=o().iconClasses.warning;return n(d,a,b,c)}function m(b,c){function d(a){for(var b=0;b<t.length;b++)if(t[b].toastId===a)return t[b]}function e(){return!t.length}var h=d(b);h&&!h.deleting&&(h.deleting=!0,h.isOpened=!1,a.leave(h.el).then(function(){h.scope.options.onHidden&&h.scope.options.onHidden(c),h.scope.$destroy();var a=t.indexOf(h);delete v[h.scope.message],t.splice(a,1);var b=f.maxOpened;b&&t.length>=b&&t[b-1].open.resolve(),e()&&(r.remove(),r=null,w=g.defer())}))}function n(a,b,c,d){return angular.isObject(c)&&(d=c,c=null),q({iconClass:a,message:b,optionsOverride:d,title:c})}function o(){return angular.extend({},f)}function p(b){if(r)return w.promise;r=angular.element("<div></div>"),r.attr("id",b.containerId),r.addClass(b.positionClass),r.css({"pointer-events":"auto"});var c=angular.element(document.querySelector(b.target));if(!c||!c.length)throw"Target for toasts doesn't exist";return a.enter(r,c).then(function(){w.resolve()}),w.promise}function q(c){function f(){return n.autoDismiss&&n.maxOpened&&t.length>n.maxOpened}function h(a,b,c){c.allowHtml?(a.scope.allowHtml=!0,a.scope.title=e.trustAsHtml(b.title),a.scope.message=e.trustAsHtml(b.message)):(a.scope.title=b.title,a.scope.message=b.message),a.scope.toastType=a.iconClass,a.scope.toastId=a.toastId,a.scope.extraData=c.extraData,a.scope.options={extendedTimeOut:c.extendedTimeOut,messageClass:c.messageClass,onHidden:c.onHidden,onShown:c.onShown,onTap:c.onTap,progressBar:c.progressBar,tapToDismiss:c.tapToDismiss,timeOut:c.timeOut,titleClass:c.titleClass,toastClass:c.toastClass},c.closeButton&&(a.scope.options.closeHtml=c.closeHtml)}function i(){function a(a){for(var b=["containerId","iconClasses","maxOpened","newestOnTop","positionClass","preventDuplicates","preventOpenDuplicates","templates"],c=0,d=b.length;d>c;c++)delete a[b[c]];return a}var b={toastId:s++,isOpened:!1,scope:d.$new(),open:g.defer()};return b.iconClass=c.iconClass,c.optionsOverride&&(angular.extend(n,a(c.optionsOverride)),b.iconClass=c.optionsOverride.iconClass||b.iconClass),h(b,c,n),b.el=j(b.scope),b}function j(a){var c=angular.element("<div toast></div>"),d=b.get("$compile");return d(c)(a)}function k(){return n.maxOpened&&t.length<=n.maxOpened||!n.maxOpened}function l(){var a=n.preventDuplicates&&c.message===u,b=n.preventOpenDuplicates&&v[c.message];return a||b?!0:(u=c.message,v[c.message]=!0,!1)}var n=o();if(!l()){var q=i();if(t.push(q),f())for(var w=t.slice(0,t.length-n.maxOpened),x=0,y=w.length;y>x;x++)m(w[x].toastId);return k()&&q.open.resolve(),q.open.promise.then(function(){p(n).then(function(){if(q.isOpened=!0,n.newestOnTop)a.enter(q.el,r).then(function(){q.scope.init()});else{var b=r[0].lastChild?angular.element(r[0].lastChild):null;a.enter(q.el,r,b).then(function(){q.scope.init()})}})}),q}}var r,s=0,t=[],u="",v={},w=g.defer(),x={clear:h,error:i,info:j,remove:m,success:k,warning:l};return x}angular.module("toastr",[]).factory("toastr",a),a.$inject=["$animate","$injector","$document","$rootScope","$sce","toastrConfig","$q"]}(),function(){"use strict";angular.module("toastr").constant("toastrConfig",{allowHtml:!1,autoDismiss:!1,closeButton:!1,closeHtml:"<button>&times;</button>",containerId:"toast-container",extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},maxOpened:0,messageClass:"toast-message",newestOnTop:!0,onHidden:null,onShown:null,onTap:null,positionClass:"toast-top-right",preventDuplicates:!1,preventOpenDuplicates:!1,progressBar:!1,tapToDismiss:!0,target:"body",templates:{toast:"directives/toast/toast.html",progressbar:"directives/progressbar/progressbar.html"},timeOut:5e3,titleClass:"toast-title",toastClass:"toast"})}(),function(){"use strict";function a(a){function b(a,b,c,d){function e(){var a=(h-(new Date).getTime())/g*100;b.css("width",a+"%")}var f,g,h;d.progressBar=a,a.start=function(a){f&&clearInterval(f),g=parseFloat(a),h=(new Date).getTime()+g,f=setInterval(e,10)},a.stop=function(){f&&clearInterval(f)},a.$on("$destroy",function(){clearInterval(f)})}return{replace:!0,require:"^toast",templateUrl:function(){return a.templates.progressbar},link:b}}angular.module("toastr").directive("progressBar",a),a.$inject=["toastrConfig"]}(),function(){"use strict";function a(){this.progressBar=null,this.startProgressBar=function(a){this.progressBar&&this.progressBar.start(a)},this.stopProgressBar=function(){this.progressBar&&this.progressBar.stop()}}angular.module("toastr").controller("ToastController",a)}(),function(){"use strict";function a(a,b,c,d){function e(c,e,f,g){function h(a){return g.startProgressBar(a),b(function(){g.stopProgressBar(),d.remove(c.toastId)},a,1)}function i(){c.progressBar=!1,g.stopProgressBar()}function j(){return c.options.closeHtml}var k;if(c.toastClass=c.options.toastClass,c.titleClass=c.options.titleClass,c.messageClass=c.options.messageClass,c.progressBar=c.options.progressBar,j()){var l=angular.element(c.options.closeHtml),m=a.get("$compile");l.addClass("toast-close-button"),l.attr("ng-click","close(true, $event)"),m(l)(c),e.prepend(l)}c.init=function(){c.options.timeOut&&(k=h(c.options.timeOut)),c.options.onShown&&c.options.onShown()},e.on("mouseenter",function(){i(),k&&b.cancel(k)}),c.tapToast=function(){angular.isFunction(c.options.onTap)&&c.options.onTap(),c.options.tapToDismiss&&c.close(!0)},c.close=function(a,b){b&&angular.isFunction(b.stopPropagation)&&b.stopPropagation(),d.remove(c.toastId,a)},e.on("mouseleave",function(){0===c.options.timeOut&&0===c.options.extendedTimeOut||(c.$apply(function(){c.progressBar=c.options.progressBar}),k=h(c.options.extendedTimeOut))})}return{replace:!0,templateUrl:function(){return c.templates.toast},controller:"ToastController",link:e}}angular.module("toastr").directive("toast",a),a.$inject=["$injector","$interval","toastrConfig","toastr"]}(),angular.module("toastr").run(["$templateCache",function(a){a.put("directives/progressbar/progressbar.html",'<div class="toast-progress"></div>\n'),a.put("directives/toast/toast.html",'<div class="{{toastClass}} {{toastType}}" ng-click="tapToast()">\n  <div ng-switch on="allowHtml">\n    <div ng-switch-default ng-if="title" class="{{titleClass}}" aria-label="{{title}}">{{title}}</div>\n    <div ng-switch-default class="{{messageClass}}" aria-label="{{message}}">{{message}}</div>\n    <div ng-switch-when="true" ng-if="title" class="{{titleClass}}" ng-bind-html="title"></div>\n    <div ng-switch-when="true" class="{{messageClass}}" ng-bind-html="message"></div>\n  </div>\n  <progress-bar ng-if="progressBar"></progress-bar>\n</div>\n')}]),function(a,b,c){"use strict";function d(a){return b.lowercase(a.nodeName||a[0]&&a[0].nodeName)}function e(a,c,d){f.directive(a,["$parse","$swipe",function(e,f){var g=75,h=.3,i=30;return function(j,k,l){function m(a){if(!n)return!1;var b=Math.abs(a.y-n.y),d=(a.x-n.x)*c;return o&&g>b&&d>0&&d>i&&h>b/d}var n,o,p=e(l[a]),q=["touch"];b.isDefined(l.ngSwipeDisableMouse)||q.push("mouse"),f.bind(k,{start:function(a,b){n=a,o=!0},cancel:function(a){o=!1},end:function(a,b){m(a)&&j.$apply(function(){k.triggerHandler(d),p(j,{$event:b})})}},q)}}])}var f=b.module("ngTouch",[]);f.factory("$swipe",[function(){function a(a){var b=a.originalEvent||a,c=b.touches&&b.touches.length?b.touches:[b],d=b.changedTouches&&b.changedTouches[0]||c[0];return{x:d.clientX,y:d.clientY}}function c(a,c){var d=[];return b.forEach(a,function(a){var b=e[a][c];b&&d.push(b)}),d.join(" ")}var d=10,e={mouse:{start:"mousedown",move:"mousemove",end:"mouseup"},touch:{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel"}};return{bind:function(b,e,f){var g,h,i,j,k=!1;f=f||["mouse","touch"],b.on(c(f,"start"),function(b){i=a(b),k=!0,g=0,h=0,j=i,e.start&&e.start(i,b)});var l=c(f,"cancel");l&&b.on(l,function(a){k=!1,e.cancel&&e.cancel(a)}),b.on(c(f,"move"),function(b){if(k&&i){var c=a(b);if(g+=Math.abs(c.x-j.x),h+=Math.abs(c.y-j.y),j=c,!(d>g&&d>h))return h>g?(k=!1,void(e.cancel&&e.cancel(b))):(b.preventDefault(),void(e.move&&e.move(c,b)))}}),b.on(c(f,"end"),function(b){k&&(k=!1,e.end&&e.end(a(b),b))})}}}]),f.config(["$provide",function(a){a.decorator("ngClickDirective",["$delegate",function(a){return a.shift(),a}])}]),f.directive("ngClick",["$parse","$timeout","$rootElement",function(a,c,e){function f(a,b,c,d){return Math.abs(a-c)<q&&Math.abs(b-d)<q}function g(a,b,c){for(var d=0;d<a.length;d+=2)if(f(a[d],a[d+1],b,c))return a.splice(d,d+2),!0;return!1}function h(a){if(!(Date.now()-k>p)){var b=a.touches&&a.touches.length?a.touches:[a],c=b[0].clientX,e=b[0].clientY;1>c&&1>e||m&&m[0]===c&&m[1]===e||(m&&(m=null),"label"===d(a.target)&&(m=[c,e]),g(l,c,e)||(a.stopPropagation(),a.preventDefault(),a.target&&a.target.blur&&a.target.blur()))}}function i(a){var b=a.touches&&a.touches.length?a.touches:[a],d=b[0].clientX,e=b[0].clientY;l.push(d,e),c(function(){for(var a=0;a<l.length;a+=2)if(l[a]==d&&l[a+1]==e)return void l.splice(a,a+2)},p,!1)}function j(a,b){l||(e[0].addEventListener("click",h,!0),e[0].addEventListener("touchstart",i,!0),l=[]),k=Date.now(),g(l,a,b)}var k,l,m,n=750,o=12,p=2500,q=25,r="ng-click-active";return function(c,d,e){function f(){m=!1,d.removeClass(r)}var g,h,i,k,l=a(e.ngClick),m=!1;d.on("touchstart",function(a){m=!0,g=a.target?a.target:a.srcElement,3==g.nodeType&&(g=g.parentNode),d.addClass(r),h=Date.now();var b=a.originalEvent||a,c=b.touches&&b.touches.length?b.touches:[b],e=c[0];i=e.clientX,k=e.clientY}),d.on("touchcancel",function(a){f()}),d.on("touchend",function(a){var c=Date.now()-h,l=a.originalEvent||a,p=l.changedTouches&&l.changedTouches.length?l.changedTouches:l.touches&&l.touches.length?l.touches:[l],q=p[0],r=q.clientX,s=q.clientY,t=Math.sqrt(Math.pow(r-i,2)+Math.pow(s-k,2));m&&n>c&&o>t&&(j(r,s),g&&g.blur(),b.isDefined(e.disabled)&&e.disabled!==!1||d.triggerHandler("click",[a])),f()}),d.onclick=function(a){},d.on("click",function(a,b){c.$apply(function(){l(c,{$event:b||a})})}),d.on("mousedown",function(a){d.addClass(r)}),d.on("mousemove mouseup",function(a){d.removeClass(r)})}}]),e("ngSwipeLeft",-1,"swipeleft"),e("ngSwipeRight",1,"swiperight")}(window,window.angular),function(a,b){"function"==typeof define&&define.amd?define([],function(){return b()}):"object"==typeof exports?module.exports=b():b()}(this,function(){function a(a){"use strict";var b=a.storageKey(),c=a.storage(),d=function(){var d=a.preferredLanguage();angular.isString(d)?a.use(d):c.put(b,a.use())};d.displayName="fallbackFromIncorrectStorageValue",c?c.get(b)?a.use(c.get(b))["catch"](d):d():angular.isString(a.preferredLanguage())&&a.use(a.preferredLanguage())}function b(){"use strict";var a,b,c=null,d=!1,e=!1;b={sanitize:function(a,b){return"text"===b&&(a=g(a)),a},escape:function(a,b){return"text"===b&&(a=f(a)),a},sanitizeParameters:function(a,b){return"params"===b&&(a=h(a,g)),a},escapeParameters:function(a,b){return"params"===b&&(a=h(a,f)),a}},b.escaped=b.escapeParameters,this.addStrategy=function(a,c){return b[a]=c,this},this.removeStrategy=function(a){return delete b[a],this},this.useStrategy=function(a){return d=!0,c=a,this},this.$get=["$injector","$log",function(f,g){var h=function(a,c,d){return angular.forEach(d,function(d){if(angular.isFunction(d))a=d(a,c);else{if(!angular.isFunction(b[d]))throw new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '"+d+"'");a=b[d](a,c)}}),a},i=function(){d||e||(g.warn("pascalprecht.translate.$translateSanitization: No sanitization strategy has been configured. This can have serious security implications. See http://angular-translate.github.io/docs/#/guide/19_security for details."),e=!0)};return f.has("$sanitize")&&(a=f.get("$sanitize")),{useStrategy:function(a){return function(b){a.useStrategy(b)}}(this),sanitize:function(a,b,d){if(c||i(),arguments.length<3&&(d=c),!d)return a;var e=angular.isArray(d)?d:[d];return h(a,b,e)}}}];var f=function(a){var b=angular.element("<div></div>");return b.text(a),b.html()},g=function(b){if(!a)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return a(b)},h=function(a,b){if(angular.isObject(a)){var c=angular.isArray(a)?[]:{};return angular.forEach(a,function(a,d){c[d]=h(a,b)}),c}return angular.isNumber(a)?a:b(a)}}function c(a,b,c,d){"use strict";var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t={},u=[],v=a,w=[],x="translate-cloak",y=!1,z=!1,A=".",B=0,C=!0,D="default",E={"default":function(a){return(a||"").split("-").join("_")},java:function(a){var b=(a||"").split("-").join("_"),c=b.split("_");return c.length>1?c[0].toLowerCase()+"_"+c[1].toUpperCase():b},bcp47:function(a){var b=(a||"").split("_").join("-"),c=b.split("-");return c.length>1?c[0].toLowerCase()+"-"+c[1].toUpperCase():b}},F="2.7.2",G=function(){if(angular.isFunction(d.getLocale))return d.getLocale();var a,c,e=b.$get().navigator,f=["language","browserLanguage","systemLanguage","userLanguage"];if(angular.isArray(e.languages))for(a=0;a<e.languages.length;a++)if(c=e.languages[a],c&&c.length)return c;for(a=0;a<f.length;a++)if(c=e[f[a]],c&&c.length)return c;return null};G.displayName="angular-translate/service: getFirstBrowserLanguage";var H=function(){var a=G()||"";return E[D]&&(a=E[D](a)),a};H.displayName="angular-translate/service: getLocale";var I=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},J=function(){return this.toString().replace(/^\s+|\s+$/g,"")},K=function(a){for(var b=[],c=angular.lowercase(a),d=0,e=u.length;e>d;d++)b.push(angular.lowercase(u[d]));if(I(b,c)>-1)return a;if(f){var g;for(var h in f){var i=!1,j=Object.prototype.hasOwnProperty.call(f,h)&&angular.lowercase(h)===angular.lowercase(a);if("*"===h.slice(-1)&&(i=h.slice(0,-1)===a.slice(0,h.length-1)),(j||i)&&(g=f[h],I(b,angular.lowercase(g))>-1))return g}}if(a){var k=a.split("_");if(k.length>1&&I(b,angular.lowercase(k[0]))>-1)return k[0]}return a},L=function(a,b){if(!a&&!b)return t;if(a&&!b){if(angular.isString(a))return t[a]}else angular.isObject(t[a])||(t[a]={}),angular.extend(t[a],M(b));return this};this.translations=L,this.cloakClassName=function(a){return a?(x=a,this):x};var M=function(a,b,c,d){var e,f,g,h;b||(b=[]),c||(c={});for(e in a)Object.prototype.hasOwnProperty.call(a,e)&&(h=a[e],angular.isObject(h)?M(h,b.concat(e),c,e):(f=b.length?""+b.join(A)+A+e:e,b.length&&e===d&&(g=""+b.join(A),c[g]="@:"+f),c[f]=h));return c};M.displayName="flatObject",this.addInterpolation=function(a){return w.push(a),this},this.useMessageFormatInterpolation=function(){return this.useInterpolation("$translateMessageFormatInterpolation")},this.useInterpolation=function(a){return n=a,this},this.useSanitizeValueStrategy=function(a){return c.useStrategy(a),this},this.preferredLanguage=function(a){return N(a),this};var N=function(a){return a&&(e=a),e};this.translationNotFoundIndicator=function(a){return this.translationNotFoundIndicatorLeft(a),this.translationNotFoundIndicatorRight(a),this},this.translationNotFoundIndicatorLeft=function(a){return a?(q=a,this):q},this.translationNotFoundIndicatorRight=function(a){return a?(r=a,this):r},this.fallbackLanguage=function(a){return O(a),this};var O=function(a){return a?(angular.isString(a)?(h=!0,g=[a]):angular.isArray(a)&&(h=!1,g=a),angular.isString(e)&&I(g,e)<0&&g.push(e),this):h?g[0]:g};this.use=function(a){if(a){if(!t[a]&&!o)throw new Error("$translateProvider couldn't find translationTable for langKey: '"+a+"'");return i=a,this}return i};var P=function(a){return a?(v=a,this):l?l+v:v};this.storageKey=P,this.useUrlLoader=function(a,b){return this.useLoader("$translateUrlLoader",angular.extend({url:a},b))},this.useStaticFilesLoader=function(a){return this.useLoader("$translateStaticFilesLoader",a)},this.useLoader=function(a,b){return o=a,p=b||{},this},this.useLocalStorage=function(){return this.useStorage("$translateLocalStorage")},this.useCookieStorage=function(){return this.useStorage("$translateCookieStorage")},this.useStorage=function(a){return k=a,this},this.storagePrefix=function(a){return a?(l=a,this):a},this.useMissingTranslationHandlerLog=function(){return this.useMissingTranslationHandler("$translateMissingTranslationHandlerLog")},this.useMissingTranslationHandler=function(a){return m=a,this},this.usePostCompiling=function(a){return y=!!a,this},this.forceAsyncReload=function(a){return z=!!a,this},this.uniformLanguageTag=function(a){return a?angular.isString(a)&&(a={standard:a}):a={},D=a.standard,this},this.determinePreferredLanguage=function(a){var b=a&&angular.isFunction(a)?a():H();return e=u.length?K(b):b,this},this.registerAvailableLanguageKeys=function(a,b){return a?(u=a,b&&(f=b),this):u},this.useLoaderCache=function(a){return a===!1?s=void 0:a===!0?s=!0:"undefined"==typeof a?s="$translationCache":a&&(s=a),this},this.directivePriority=function(a){return void 0===a?B:(B=a,this)},this.statefulFilter=function(a){return void 0===a?C:(C=a,this)},this.$get=["$log","$injector","$rootScope","$q",function(a,b,c,d){var f,l,u,A=b.get(n||"$translateDefaultInterpolation"),D=!1,E={},G={},H=function(a,b,c,h){if(angular.isArray(a)){var j=function(a){for(var e={},f=[],g=function(a){var f=d.defer(),g=function(b){e[a]=b,f.resolve([a,b])};return H(a,b,c,h).then(g,g),f.promise},i=0,j=a.length;j>i;i++)f.push(g(a[i]));return d.all(f).then(function(){return e})};return j(a)}var m=d.defer();a&&(a=J.apply(a));var n=function(){var a=e?G[e]:G[i];if(l=0,k&&!a){var b=f.get(v);if(a=G[b],g&&g.length){var c=I(g,b);l=0===c?1:0,I(g,e)<0&&g.push(e)}}return a}();if(n){var o=function(){aa(a,b,c,h).then(m.resolve,m.reject)};o.displayName="promiseResolved",n["finally"](o,m.reject)}else aa(a,b,c,h).then(m.resolve,m.reject);return m.promise},Q=function(a){return q&&(a=[q,a].join(" ")),r&&(a=[a,r].join(" ")),a},R=function(a){i=a,c.$emit("$translateChangeSuccess",{language:a}),k&&f.put(H.storageKey(),i),A.setLocale(i);var b=function(a,b){E[b].setLocale(i)};b.displayName="eachInterpolatorLocaleSetter",angular.forEach(E,b),c.$emit("$translateChangeEnd",{language:a})},S=function(a){if(!a)throw"No language key specified for loading.";var e=d.defer();c.$emit("$translateLoadingStart",{language:a}),D=!0;var f=s;"string"==typeof f&&(f=b.get(f));var g=angular.extend({},p,{key:a,$http:angular.extend({},{cache:f},p.$http)}),h=function(b){var d={};c.$emit("$translateLoadingSuccess",{language:a}),angular.isArray(b)?angular.forEach(b,function(a){angular.extend(d,M(a))}):angular.extend(d,M(b)),D=!1,e.resolve({key:a,table:d}),c.$emit("$translateLoadingEnd",{language:a})};h.displayName="onLoaderSuccess";var i=function(a){c.$emit("$translateLoadingError",{language:a}),e.reject(a),c.$emit("$translateLoadingEnd",{language:a})};return i.displayName="onLoaderError",b.get(o)(g).then(h,i),e.promise};if(k&&(f=b.get(k),!f.get||!f.put))throw new Error("Couldn't use storage '"+k+"', missing get() or put() method!");if(w.length){var T=function(a){var c=b.get(a);c.setLocale(e||i),E[c.getInterpolationIdentifier()]=c};T.displayName="interpolationFactoryAdder",angular.forEach(w,T)}var U=function(a){var b=d.defer();if(Object.prototype.hasOwnProperty.call(t,a))b.resolve(t[a]);else if(G[a]){var c=function(a){L(a.key,a.table),b.resolve(a.table)};c.displayName="translationTableResolver",G[a].then(c,b.reject)}else b.reject();return b.promise},V=function(a,b,c,e){var f=d.defer(),g=function(d){if(Object.prototype.hasOwnProperty.call(d,b)){e.setLocale(a);var g=d[b];"@:"===g.substr(0,2)?V(a,g.substr(2),c,e).then(f.resolve,f.reject):f.resolve(e.interpolate(d[b],c)),e.setLocale(i)}else f.reject()};return g.displayName="fallbackTranslationResolver",U(a).then(g,f.reject),f.promise},W=function(a,b,c,d){var e,f=t[a];if(f&&Object.prototype.hasOwnProperty.call(f,b)){if(d.setLocale(a),e=d.interpolate(f[b],c),"@:"===e.substr(0,2))return W(a,e.substr(2),c,d);d.setLocale(i)}return e},X=function(a,c){if(m){var d=b.get(m)(a,i,c);return void 0!==d?d:a}return a},Y=function(a,b,c,e,f){var h=d.defer();if(a<g.length){var i=g[a];V(i,b,c,e).then(h.resolve,function(){Y(a+1,b,c,e,f).then(h.resolve)})}else f?h.resolve(f):h.resolve(X(b,c));return h.promise},Z=function(a,b,c,d){var e;if(a<g.length){var f=g[a];e=W(f,b,c,d),e||(e=Z(a+1,b,c,d))}return e},$=function(a,b,c,d){return Y(u>0?u:l,a,b,c,d)},_=function(a,b,c){return Z(u>0?u:l,a,b,c)},aa=function(a,b,c,e){var f=d.defer(),h=i?t[i]:t,j=c?E[c]:A;if(h&&Object.prototype.hasOwnProperty.call(h,a)){var k=h[a];"@:"===k.substr(0,2)?H(k.substr(2),b,c,e).then(f.resolve,f.reject):f.resolve(j.interpolate(k,b))}else{var l;m&&!D&&(l=X(a,b)),i&&g&&g.length?$(a,b,j,e).then(function(a){f.resolve(a)},function(a){f.reject(Q(a))}):m&&!D&&l?e?f.resolve(e):f.resolve(l):e?f.resolve(e):f.reject(Q(a))}return f.promise},ba=function(a,b,c){var d,e=i?t[i]:t,f=A;if(E&&Object.prototype.hasOwnProperty.call(E,c)&&(f=E[c]),e&&Object.prototype.hasOwnProperty.call(e,a)){var h=e[a];d="@:"===h.substr(0,2)?ba(h.substr(2),b,c):f.interpolate(h,b)}else{var j;m&&!D&&(j=X(a,b)),i&&g&&g.length?(l=0,d=_(a,b,f)):d=m&&!D&&j?j:Q(a)}return d},ca=function(a){j===a&&(j=void 0),G[a]=void 0};if(H.preferredLanguage=function(a){return a&&N(a),e},H.cloakClassName=function(){return x},H.fallbackLanguage=function(a){if(void 0!==a&&null!==a){if(O(a),o&&g&&g.length)for(var b=0,c=g.length;c>b;b++)G[g[b]]||(G[g[b]]=S(g[b]));H.use(H.use())}return h?g[0]:g},H.useFallbackLanguage=function(a){if(void 0!==a&&null!==a)if(a){var b=I(g,a);b>-1&&(u=b)}else u=0},H.proposedLanguage=function(){return j},H.storage=function(){return f},H.use=function(a){if(!a)return i;var b=d.defer();c.$emit("$translateChangeStart",{language:a});var e=K(a);return e&&(a=e),!z&&t[a]||!o||G[a]?j===a&&G[a]?G[a].then(function(a){return b.resolve(a.key),a},function(a){return b.reject(a),d.reject(a)}):(b.resolve(a),R(a)):(j=a,G[a]=S(a).then(function(a){return L(a.key,a.table),b.resolve(a.key),R(a.key),a},function(a){return c.$emit("$translateChangeError",{language:a}),b.reject(a),c.$emit("$translateChangeEnd",{language:a}),d.reject(a)}),G[a]["finally"](function(){ca(a)})),b.promise},H.storageKey=function(){return P()},H.isPostCompilingEnabled=function(){return y},H.isForceAsyncReloadEnabled=function(){return z},H.refresh=function(a){function b(){f.resolve(),c.$emit("$translateRefreshEnd",{language:a})}function e(){f.reject(),c.$emit("$translateRefreshEnd",{language:a})}if(!o)throw new Error("Couldn't refresh translation table, no loader registered!");var f=d.defer();if(c.$emit("$translateRefreshStart",{language:a}),a)if(t[a]){var h=function(c){L(c.key,c.table),a===i&&R(i),b()};h.displayName="refreshPostProcessor",S(a).then(h,e)}else e();else{var j=[],k={};if(g&&g.length)for(var l=0,m=g.length;m>l;l++)j.push(S(g[l])),k[g[l]]=!0;i&&!k[i]&&j.push(S(i));var n=function(a){t={},angular.forEach(a,function(a){L(a.key,a.table)}),i&&R(i),b()};n.displayName="refreshPostProcessor",d.all(j).then(n,e)}return f.promise},H.instant=function(a,b,c){if(null===a||angular.isUndefined(a))return a;if(angular.isArray(a)){for(var d={},f=0,h=a.length;h>f;f++)d[a[f]]=H.instant(a[f],b,c);return d}if(angular.isString(a)&&a.length<1)return a;a&&(a=J.apply(a));var j,k=[];e&&k.push(e),i&&k.push(i),g&&g.length&&(k=k.concat(g));for(var l=0,n=k.length;n>l;l++){var o=k[l];if(t[o]&&("undefined"!=typeof t[o][a]?j=ba(a,b,c):(q||r)&&(j=Q(a))),"undefined"!=typeof j)break;
+}return j||""===j||(j=A.interpolate(a,b),m&&!D&&(j=X(a,b))),j},H.versionInfo=function(){return F},H.loaderCache=function(){return s},H.directivePriority=function(){return B},H.statefulFilter=function(){return C},o&&(angular.equals(t,{})&&H.use(H.use()),g&&g.length))for(var da=function(a){return L(a.key,a.table),c.$emit("$translateChangeEnd",{language:a.key}),a},ea=0,fa=g.length;fa>ea;ea++){var ga=g[ea];!z&&t[ga]||(G[ga]=S(ga).then(da))}return H}]}function d(a,b){"use strict";var c,d={},e="default";return d.setLocale=function(a){c=a},d.getInterpolationIdentifier=function(){return e},d.useSanitizeValueStrategy=function(a){return b.useStrategy(a),this},d.interpolate=function(c,d){d=d||{},d=b.sanitize(d,"params");var e=a(c)(d);return e=b.sanitize(e,"text")},d}function e(a,b,c,d,e,f){"use strict";var g=function(){return this.toString().replace(/^\s+|\s+$/g,"")};return{restrict:"AE",scope:!0,priority:a.directivePriority(),compile:function(b,h){var i=h.translateValues?h.translateValues:void 0,j=h.translateInterpolation?h.translateInterpolation:void 0,k=b[0].outerHTML.match(/translate-value-+/i),l="^(.*)("+c.startSymbol()+".*"+c.endSymbol()+")(.*)",m="^(.*)"+c.startSymbol()+"(.*)"+c.endSymbol()+"(.*)";return function(b,n,o){b.interpolateParams={},b.preText="",b.postText="";var p={},q=function(a,c,d){if(c.translateValues&&angular.extend(a,e(c.translateValues)(b.$parent)),k)for(var f in d)if(Object.prototype.hasOwnProperty.call(c,f)&&"translateValue"===f.substr(0,14)&&"translateValues"!==f){var g=angular.lowercase(f.substr(14,1))+f.substr(15);a[g]=d[f]}},r=function(a){if(angular.isFunction(r._unwatchOld)&&(r._unwatchOld(),r._unwatchOld=void 0),angular.equals(a,"")||!angular.isDefined(a)){var d=g.apply(n.text()).match(l);if(angular.isArray(d)){b.preText=d[1],b.postText=d[3],p.translate=c(d[2])(b.$parent);var e=n.text().match(m);angular.isArray(e)&&e[2]&&e[2].length&&(r._unwatchOld=b.$watch(e[2],function(a){p.translate=a,x()}))}else p.translate=n.text().replace(/^\s+|\s+$/g,"")}else p.translate=a;x()},s=function(a){o.$observe(a,function(b){p[a]=b,x()})};q(b.interpolateParams,o,h);var t=!0;o.$observe("translate",function(a){"undefined"==typeof a?r(""):""===a&&t||(p.translate=a,x()),t=!1});for(var u in o)o.hasOwnProperty(u)&&"translateAttr"===u.substr(0,13)&&s(u);if(o.$observe("translateDefault",function(a){b.defaultText=a}),i&&o.$observe("translateValues",function(a){a&&b.$parent.$watch(function(){angular.extend(b.interpolateParams,e(a)(b.$parent))})}),k){var v=function(a){o.$observe(a,function(c){var d=angular.lowercase(a.substr(14,1))+a.substr(15);b.interpolateParams[d]=c})};for(var w in o)Object.prototype.hasOwnProperty.call(o,w)&&"translateValue"===w.substr(0,14)&&"translateValues"!==w&&v(w)}var x=function(){for(var a in p)p.hasOwnProperty(a)&&void 0!==p[a]&&y(a,p[a],b,b.interpolateParams,b.defaultText)},y=function(b,c,d,e,f){c?a(c,e,j,f).then(function(a){z(a,d,!0,b)},function(a){z(a,d,!1,b)}):z(c,d,!1,b)},z=function(b,c,e,f){if("translate"===f){e||"undefined"==typeof c.defaultText||(b=c.defaultText),n.html(c.preText+b+c.postText);var g=a.isPostCompilingEnabled(),i="undefined"!=typeof h.translateCompile,j=i&&"false"!==h.translateCompile;(g&&!i||j)&&d(n.contents())(c)}else{e||"undefined"==typeof c.defaultText||(b=c.defaultText);var k=o.$attr[f];"data-"===k.substr(0,5)&&(k=k.substr(5)),k=k.substr(15),n.attr(k,b)}};(i||k||o.translateDefault)&&b.$watch("interpolateParams",x,!0);var A=f.$on("$translateChangeSuccess",x);n.text().length?r(o.translate?o.translate:""):o.translate&&r(o.translate),x(),b.$on("$destroy",A)}}}}function f(a,b){"use strict";return{compile:function(c){var d=function(){c.addClass(b.cloakClassName())},e=function(){c.removeClass(b.cloakClassName())},f=a.$on("$translateChangeEnd",function(){e(),f(),f=null});return d(),function(a,c,f){f.translateCloak&&f.translateCloak.length&&f.$observe("translateCloak",function(a){b(a).then(e,d)})}}}}function g(a,b){"use strict";var c=function(c,d,e){return angular.isObject(d)||(d=a(d)(this)),b.instant(c,d,e)};return b.statefulFilter()&&(c.$stateful=!0),c}function h(a){"use strict";return a("translations")}return angular.module("pascalprecht.translate",["ng"]).run(a),a.$inject=["$translate"],a.displayName="runTranslate",angular.module("pascalprecht.translate").provider("$translateSanitization",b),angular.module("pascalprecht.translate").constant("pascalprechtTranslateOverrider",{}).provider("$translate",c),c.$inject=["$STORAGE_KEY","$windowProvider","$translateSanitizationProvider","pascalprechtTranslateOverrider"],c.displayName="displayName",angular.module("pascalprecht.translate").factory("$translateDefaultInterpolation",d),d.$inject=["$interpolate","$translateSanitization"],d.displayName="$translateDefaultInterpolation",angular.module("pascalprecht.translate").constant("$STORAGE_KEY","NG_TRANSLATE_LANG_KEY"),angular.module("pascalprecht.translate").directive("translate",e),e.$inject=["$translate","$q","$interpolate","$compile","$parse","$rootScope"],e.displayName="translateDirective",angular.module("pascalprecht.translate").directive("translateCloak",f),f.$inject=["$rootScope","$translate"],f.displayName="translateCloakDirective",angular.module("pascalprecht.translate").filter("translate",g),g.$inject=["$parse","$translate"],g.displayName="translateFilterFactory",angular.module("pascalprecht.translate").factory("$translationCache",h),h.$inject=["$cacheFactory"],h.displayName="$translationCache","pascalprecht.translate"}),function(a,b){"function"==typeof define&&define.amd?define([],function(){return b()}):"object"==typeof exports?module.exports=b():b()}(this,function(){function a(a,b){"use strict";return function(c){if(!(c&&(angular.isArray(c.files)||angular.isString(c.prefix)&&angular.isString(c.suffix))))throw new Error("Couldn't load static files, no files and prefix or suffix specified!");c.files||(c.files=[{prefix:c.prefix,suffix:c.suffix}]);for(var d=function(d){if(!d||!angular.isString(d.prefix)||!angular.isString(d.suffix))throw new Error("Couldn't load static file, no prefix or suffix specified!");var e=a.defer();return b(angular.extend({url:[d.prefix,c.key,d.suffix].join(""),method:"GET",params:""},c.$http)).success(function(a){e.resolve(a)}).error(function(){e.reject(c.key)}),e.promise},e=a.defer(),f=[],g=c.files.length,h=0;g>h;h++)f.push(d({prefix:c.files[h].prefix,key:c.key,suffix:c.files[h].suffix}));return a.all(f).then(function(a){for(var b=a.length,c={},d=0;b>d;d++)for(var f in a[d])c[f]=a[d][f];e.resolve(c)},function(a){e.reject(a)}),e.promise}}return angular.module("pascalprecht.translate").factory("$translateStaticFilesLoader",a),a.$inject=["$q","$http"],a.displayName="$translateStaticFilesLoader","pascalprecht.translate"}),function(a,b){"function"==typeof define&&define.amd?define([],function(){return b()}):"object"==typeof exports?module.exports=b():b()}(this,function(){function a(a){"use strict";var b={get:function(b){return a.get(b)},set:function(b,c){a.put(b,c)},put:function(b,c){a.put(b,c)}};return b}return angular.module("pascalprecht.translate").factory("$translateCookieStorage",a),a.$inject=["$cookieStore"],a.displayName="$translateCookieStorage","pascalprecht.translate"}),function(a,b){"function"==typeof define&&define.amd?define([],function(){return b()}):"object"==typeof exports?module.exports=b():b()}(this,function(){function a(a,b){"use strict";var c=function(){var b;return{get:function(c){return b||(b=a.localStorage.getItem(c)),b},set:function(c,d){b=d,a.localStorage.setItem(c,d)},put:function(c,d){b=d,a.localStorage.setItem(c,d)}}}(),d="localStorage"in a;if(d){var e="pascalprecht.translate.storageTest";try{null!==a.localStorage?(a.localStorage.setItem(e,"foo"),a.localStorage.removeItem(e),d=!0):d=!1}catch(f){d=!1}}var g=d?c:b;return g}return angular.module("pascalprecht.translate").factory("$translateLocalStorage",a),a.$inject=["$window","$translateCookieStorage"],a.displayName="$translateLocalStorageFactory","pascalprecht.translate"}),angular.module("truncate",[]).filter("characters",function(){return function(a,b,c){if(isNaN(b))return a;if(0>=b)return"";if(a&&a.length>b){if(a=a.substring(0,b),c)for(;" "===a.charAt(a.length-1);)a=a.substr(0,a.length-1);else{var d=a.lastIndexOf(" ");-1!==d&&(a=a.substr(0,d))}return a+"…"}return a}}).filter("splitcharacters",function(){return function(a,b){if(isNaN(b))return a;if(0>=b)return"";if(a&&a.length>b){var c=a.substring(0,b/2),d=a.substring(a.length-b/2,a.length);return c+"..."+d}return a}}).filter("words",function(){return function(a,b){if(isNaN(b))return a;if(0>=b)return"";if(a){var c=a.split(/\s+/);c.length>b&&(a=c.slice(0,b).join(" ")+"…")}return a}}),angular.module("ui-notification",[]),angular.module("ui-notification").provider("Notification",function(){this.options={delay:5e3,startTop:10,startRight:10,verticalSpacing:10,horizontalSpacing:10,positionX:"right",positionY:"top",replaceMessage:!1,templateUrl:"angular-ui-notification.html"},this.setOptions=function(a){if(!angular.isObject(a))throw new Error("Options should be an object!");this.options=angular.extend({},this.options,a)},this.$get=["$timeout","$http","$compile","$templateCache","$rootScope","$injector","$sce","$q","$window",function(a,b,c,d,e,f,g,h,i){var j=this.options,k=j.startTop,l=j.startRight,m=j.verticalSpacing,n=j.horizontalSpacing,o=j.delay,p=[],q=!1,r=function(f,r){var s=h.defer();return"object"!=typeof f&&(f={message:f}),f.scope=f.scope?f.scope:e,f.template=f.templateUrl?f.templateUrl:j.templateUrl,f.delay=angular.isUndefined(f.delay)?o:f.delay,f.type=r?r:"",f.positionY=f.positionY?f.positionY:j.positionY,f.positionX=f.positionX?f.positionX:j.positionX,f.replaceMessage=f.replaceMessage?f.replaceMessage:j.replaceMessage,b.get(f.template,{cache:d}).success(function(b){var d=f.scope.$new();d.message=g.trustAsHtml(f.message),d.title=g.trustAsHtml(f.title),d.t=f.type.substr(0,1),d.delay=f.delay;var e=function(){for(var a=0,b=0,c=k,d=l,e=[],g=p.length-1;g>=0;g--){var h=p[g];if(f.replaceMessage&&g<p.length-1)h.addClass("killed");else{var i=parseInt(h[0].offsetHeight),j=parseInt(h[0].offsetWidth),o=e[h._positionY+h._positionX];q+i>window.innerHeight&&(o=k,b++,a=0);var q=c=o?0===a?o:o+m:k,r=d+b*(n+j);h.css(h._positionY,q+"px"),"center"==h._positionX?h.css("left",parseInt(window.innerWidth/2-j/2)+"px"):h.css(h._positionX,r+"px"),e[h._positionY+h._positionX]=q+i,a++}}},h=c(b)(d);h._positionY=f.positionY,h._positionX=f.positionX,h.addClass(f.type),h.bind("webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd click",function(a){a=a.originalEvent||a,("click"===a.type||"opacity"===a.propertyName&&a.elapsedTime>=1)&&(h.remove(),p.splice(p.indexOf(h),1),e())}),angular.isNumber(f.delay)&&a(function(){h.addClass("killed")},f.delay),angular.element(document.getElementsByTagName("body")).append(h);var j=-(parseInt(h[0].offsetHeight)+50);h.css(h._positionY,j+"px"),p.push(h),d._templateElement=h,d.kill=function(b){b?(p.splice(p.indexOf(d._templateElement),1),d._templateElement.remove(),a(e)):d._templateElement.addClass("killed")},a(e),q||(angular.element(i).bind("resize",function(){a(e)}),q=!0),s.resolve(d)}).error(function(a){throw new Error("Template ("+f.template+") could not be loaded. "+a)}),s.promise};return r.primary=function(a){return this(a,"primary")},r.error=function(a){return this(a,"error")},r.success=function(a){return this(a,"success")},r.info=function(a){return this(a,"info")},r.warning=function(a){return this(a,"warning")},r.clearAll=function(){angular.forEach(p,function(a){a.addClass("killed")})},r}]}),angular.module("ui-notification").run(["$templateCache",function(a){a.put("angular-ui-notification.html",'<div class="ui-notification"><h3 ng-show="title" ng-bind-html="title"></h3><div class="message" ng-bind-html="message"></div></div>')}]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(a,b,c){"use strict";function d(a,b){return R(new(R(function(){},{prototype:a})),b)}function e(a){return Q(arguments,function(b){b!==a&&Q(b,function(b,c){a.hasOwnProperty(c)||(a[c]=b)})}),a}function f(a,b){var c=[];for(var d in a.path){if(a.path[d]!==b.path[d])break;c.push(a.path[d])}return c}function g(a){if(Object.keys)return Object.keys(a);var b=[];return Q(a,function(a,c){b.push(c)}),b}function h(a,b){if(Array.prototype.indexOf)return a.indexOf(b,Number(arguments[2])||0);var c=a.length>>>0,d=Number(arguments[2])||0;for(d=0>d?Math.ceil(d):Math.floor(d),0>d&&(d+=c);c>d;d++)if(d in a&&a[d]===b)return d;return-1}function i(a,b,c,d){var e,i=f(c,d),j={},k=[];for(var l in i)if(i[l]&&i[l].params&&(e=g(i[l].params),e.length))for(var m in e)h(k,e[m])>=0||(k.push(e[m]),j[e[m]]=a[e[m]]);return R({},j,b)}function j(a,b,c){if(!c){c=[];for(var d in a)c.push(d)}for(var e=0;e<c.length;e++){var f=c[e];if(a[f]!=b[f])return!1}return!0}function k(a,b){var c={};return Q(a,function(a){c[a]=b[a]}),c}function l(a){var b={},c=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));return Q(c,function(c){c in a&&(b[c]=a[c])}),b}function m(a){var b={},c=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));for(var d in a)-1==h(c,d)&&(b[d]=a[d]);return b}function n(a,b){var c=P(a),d=c?[]:{};return Q(a,function(a,e){b(a,e)&&(d[c?d.length:e]=a)}),d}function o(a,b){var c=P(a)?[]:{};return Q(a,function(a,d){c[d]=b(a,d)}),c}function p(a,b){var d=1,f=2,i={},j=[],k=i,l=R(a.when(i),{$$promises:i,$$values:i});this.study=function(i){function n(a,c){if(s[c]!==f){if(r.push(c),s[c]===d)throw r.splice(0,h(r,c)),new Error("Cyclic dependency: "+r.join(" -> "));if(s[c]=d,N(a))q.push(c,[function(){return b.get(a)}],j);else{var e=b.annotate(a);Q(e,function(a){a!==c&&i.hasOwnProperty(a)&&n(i[a],a)}),q.push(c,a,e)}r.pop(),s[c]=f}}function o(a){return O(a)&&a.then&&a.$$promises}if(!O(i))throw new Error("'invocables' must be an object");var p=g(i||{}),q=[],r=[],s={};return Q(i,n),i=r=s=null,function(d,f,g){function h(){--u||(v||e(t,f.$$values),r.$$values=t,r.$$promises=r.$$promises||!0,delete r.$$inheritedValues,n.resolve(t))}function i(a){r.$$failure=a,n.reject(a)}function j(c,e,f){function j(a){l.reject(a),i(a)}function k(){if(!L(r.$$failure))try{l.resolve(b.invoke(e,g,t)),l.promise.then(function(a){t[c]=a,h()},j)}catch(a){j(a)}}var l=a.defer(),m=0;Q(f,function(a){s.hasOwnProperty(a)&&!d.hasOwnProperty(a)&&(m++,s[a].then(function(b){t[a]=b,--m||k()},j))}),m||k(),s[c]=l.promise}if(o(d)&&g===c&&(g=f,f=d,d=null),d){if(!O(d))throw new Error("'locals' must be an object")}else d=k;if(f){if(!o(f))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else f=l;var n=a.defer(),r=n.promise,s=r.$$promises={},t=R({},d),u=1+q.length/3,v=!1;if(L(f.$$failure))return i(f.$$failure),r;f.$$inheritedValues&&e(t,m(f.$$inheritedValues,p)),R(s,f.$$promises),f.$$values?(v=e(t,m(f.$$values,p)),r.$$inheritedValues=m(f.$$values,p),h()):(f.$$inheritedValues&&(r.$$inheritedValues=m(f.$$inheritedValues,p)),f.then(h,i));for(var w=0,x=q.length;x>w;w+=3)d.hasOwnProperty(q[w])?h():j(q[w],q[w+1],q[w+2]);return r}},this.resolve=function(a,b,c,d){return this.study(a)(b,c,d)}}function q(a,b,c){this.fromConfig=function(a,b,c){return L(a.template)?this.fromString(a.template,b):L(a.templateUrl)?this.fromUrl(a.templateUrl,b):L(a.templateProvider)?this.fromProvider(a.templateProvider,b,c):null},this.fromString=function(a,b){return M(a)?a(b):a},this.fromUrl=function(c,d){return M(c)&&(c=c(d)),null==c?null:a.get(c,{cache:b,headers:{Accept:"text/html"}}).then(function(a){return a.data})},this.fromProvider=function(a,b,d){return c.invoke(a,null,d||{params:b})}}function r(a,b,e){function f(b,c,d,e){if(q.push(b),o[b])return o[b];if(!/^\w+([-.]+\w+)*(?:\[\])?$/.test(b))throw new Error("Invalid parameter name '"+b+"' in pattern '"+a+"'");if(p[b])throw new Error("Duplicate parameter name '"+b+"' in pattern '"+a+"'");return p[b]=new U.Param(b,c,d,e),p[b]}function g(a,b,c,d){var e=["",""],f=a.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!b)return f;switch(c){case!1:e=["(",")"+(d?"?":"")];break;case!0:f=f.replace(/\/$/,""),e=["(?:/(",")|/)?"];break;default:e=["("+c+"|",")?"]}return f+e[0]+b+e[1]}function h(e,f){var g,h,i,j,k;return g=e[2]||e[3],k=b.params[g],i=a.substring(m,e.index),h=f?e[4]:e[4]||("*"==e[1]?".*":null),h&&(j=U.type(h)||d(U.type("string"),{pattern:new RegExp(h,b.caseInsensitive?"i":c)})),{id:g,regexp:h,segment:i,type:j,cfg:k}}b=R({params:{}},O(b)?b:{});var i,j=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,k=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,l="^",m=0,n=this.segments=[],o=e?e.params:{},p=this.params=e?e.params.$$new():new U.ParamSet,q=[];this.source=a;for(var r,s,t;(i=j.exec(a))&&(r=h(i,!1),!(r.segment.indexOf("?")>=0));)s=f(r.id,r.type,r.cfg,"path"),l+=g(r.segment,s.type.pattern.source,s.squash,s.isOptional),n.push(r.segment),m=j.lastIndex;t=a.substring(m);var u=t.indexOf("?");if(u>=0){var v=this.sourceSearch=t.substring(u);if(t=t.substring(0,u),this.sourcePath=a.substring(0,m+u),v.length>0)for(m=0;i=k.exec(v);)r=h(i,!0),s=f(r.id,r.type,r.cfg,"search"),m=j.lastIndex}else this.sourcePath=a,this.sourceSearch="";l+=g(t)+(b.strict===!1?"/?":"")+"$",n.push(t),this.regexp=new RegExp(l,b.caseInsensitive?"i":c),this.prefix=n[0],this.$$paramNames=q}function s(a){R(this,a)}function t(){function a(a){return null!=a?a.toString().replace(/~/g,"~~").replace(/\//g,"~2F"):a}function e(a){return null!=a?a.toString().replace(/~2F/g,"/").replace(/~~/g,"~"):a}function f(){return{strict:p,caseInsensitive:m}}function i(a){return M(a)||P(a)&&M(a[a.length-1])}function j(){for(;w.length;){var a=w.shift();if(a.pattern)throw new Error("You cannot override a type's .pattern at runtime.");b.extend(u[a.name],l.invoke(a.def))}}function k(a){R(this,a||{})}U=this;var l,m=!1,p=!0,q=!1,u={},v=!0,w=[],x={string:{encode:a,decode:e,is:function(a){return null==a||!L(a)||"string"==typeof a},pattern:/[^\/]*/},"int":{encode:a,decode:function(a){return parseInt(a,10)},is:function(a){return L(a)&&this.decode(a.toString())===a},pattern:/\d+/},bool:{encode:function(a){return a?1:0},decode:function(a){return 0!==parseInt(a,10)},is:function(a){return a===!0||a===!1},pattern:/0|1/},date:{encode:function(a){return this.is(a)?[a.getFullYear(),("0"+(a.getMonth()+1)).slice(-2),("0"+a.getDate()).slice(-2)].join("-"):c},decode:function(a){if(this.is(a))return a;var b=this.capture.exec(a);return b?new Date(b[1],b[2]-1,b[3]):c},is:function(a){return a instanceof Date&&!isNaN(a.valueOf())},equals:function(a,b){return this.is(a)&&this.is(b)&&a.toISOString()===b.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:b.toJson,decode:b.fromJson,is:b.isObject,equals:b.equals,pattern:/[^\/]*/},any:{encode:b.identity,decode:b.identity,equals:b.equals,pattern:/.*/}};t.$$getDefaultValue=function(a){if(!i(a.value))return a.value;if(!l)throw new Error("Injectable functions cannot be called at configuration time");return l.invoke(a.value)},this.caseInsensitive=function(a){return L(a)&&(m=a),m},this.strictMode=function(a){return L(a)&&(p=a),p},this.defaultSquashPolicy=function(a){if(!L(a))return q;if(a!==!0&&a!==!1&&!N(a))throw new Error("Invalid squash policy: "+a+". Valid policies: false, true, arbitrary-string");return q=a,a},this.compile=function(a,b){return new r(a,R(f(),b))},this.isMatcher=function(a){if(!O(a))return!1;var b=!0;return Q(r.prototype,function(c,d){M(c)&&(b=b&&L(a[d])&&M(a[d]))}),b},this.type=function(a,b,c){if(!L(b))return u[a];if(u.hasOwnProperty(a))throw new Error("A type named '"+a+"' has already been defined.");return u[a]=new s(R({name:a},b)),c&&(w.push({name:a,def:c}),v||j()),this},Q(x,function(a,b){u[b]=new s(R({name:b},a))}),u=d(u,{}),this.$get=["$injector",function(a){return l=a,v=!1,j(),Q(x,function(a,b){u[b]||(u[b]=new s(a))}),this}],this.Param=function(a,d,e,f){function j(a){var b=O(a)?g(a):[],c=-1===h(b,"value")&&-1===h(b,"type")&&-1===h(b,"squash")&&-1===h(b,"array");return c&&(a={value:a}),a.$$fn=i(a.value)?a.value:function(){return a.value},a}function k(c,d,e){if(c.type&&d)throw new Error("Param '"+a+"' has two type configurations.");return d?d:c.type?b.isString(c.type)?u[c.type]:c.type instanceof s?c.type:new s(c.type):"config"===e?u.any:u.string}function m(){var b={array:"search"===f?"auto":!1},c=a.match(/\[\]$/)?{array:!0}:{};return R(b,c,e).array}function p(a,b){var c=a.squash;if(!b||c===!1)return!1;if(!L(c)||null==c)return q;if(c===!0||N(c))return c;throw new Error("Invalid squash policy: '"+c+"'. Valid policies: false, true, or arbitrary string")}function r(a,b,d,e){var f,g,i=[{from:"",to:d||b?c:""},{from:null,to:d||b?c:""}];return f=P(a.replace)?a.replace:[],N(e)&&f.push({from:e,to:c}),g=o(f,function(a){return a.from}),n(i,function(a){return-1===h(g,a.from)}).concat(f)}function t(){if(!l)throw new Error("Injectable functions cannot be called at configuration time");var a=l.invoke(e.$$fn);if(null!==a&&a!==c&&!x.type.is(a))throw new Error("Default value ("+a+") for parameter '"+x.id+"' is not an instance of Type ("+x.type.name+")");return a}function v(a){function b(a){return function(b){return b.from===a}}function c(a){var c=o(n(x.replace,b(a)),function(a){return a.to});return c.length?c[0]:a}return a=c(a),L(a)?x.type.$normalize(a):t()}function w(){return"{Param:"+a+" "+d+" squash: '"+A+"' optional: "+z+"}"}var x=this;e=j(e),d=k(e,d,f);var y=m();d=y?d.$asArray(y,"search"===f):d,"string"!==d.name||y||"path"!==f||e.value!==c||(e.value="");var z=e.value!==c,A=p(e,z),B=r(e,y,z,A);R(this,{id:a,type:d,location:f,array:y,squash:A,replace:B,isOptional:z,value:v,dynamic:c,config:e,toString:w})},k.prototype={$$new:function(){return d(this,R(new k,{$$parent:this}))},$$keys:function(){for(var a=[],b=[],c=this,d=g(k.prototype);c;)b.push(c),c=c.$$parent;return b.reverse(),Q(b,function(b){Q(g(b),function(b){-1===h(a,b)&&-1===h(d,b)&&a.push(b)})}),a},$$values:function(a){var b={},c=this;return Q(c.$$keys(),function(d){b[d]=c[d].value(a&&a[d])}),b},$$equals:function(a,b){var c=!0,d=this;return Q(d.$$keys(),function(e){var f=a&&a[e],g=b&&b[e];d[e].type.equals(f,g)||(c=!1)}),c},$$validates:function(a){var d,e,f,g,h,i=this.$$keys();for(d=0;d<i.length&&(e=this[i[d]],f=a[i[d]],f!==c&&null!==f||!e.isOptional);d++){if(g=e.type.$normalize(f),!e.type.is(g))return!1;if(h=e.type.encode(g),b.isString(h)&&!e.type.pattern.exec(h))return!1}return!0},$$parent:c},this.ParamSet=k}function u(a,d){function e(a){var b=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(a.source);return null!=b?b[1].replace(/\\(.)/g,"$1"):""}function f(a,b){return a.replace(/\$(\$|\d{1,2})/,function(a,c){return b["$"===c?0:Number(c)]})}function g(a,b,c){if(!c)return!1;var d=a.invoke(b,b,{$match:c});return L(d)?d:!0}function h(d,e,f,g,h){function m(a,b,c){return"/"===q?a:b?q.slice(0,-1)+a:c?q.slice(1)+a:a}function n(a){function b(a){var b=a(f,d);return b?(N(b)&&d.replace().url(b),!0):!1}if(!a||!a.defaultPrevented){p&&d.url()===p;p=c;var e,g=j.length;for(e=0;g>e;e++)if(b(j[e]))return;k&&b(k)}}function o(){return i=i||e.$on("$locationChangeSuccess",n)}var p,q=g.baseHref(),r=d.url();return l||o(),{sync:function(){n()},listen:function(){return o()},update:function(a){return a?void(r=d.url()):void(d.url()!==r&&(d.url(r),d.replace()))},push:function(a,b,e){var f=a.format(b||{});null!==f&&b&&b["#"]&&(f+="#"+b["#"]),d.url(f),p=e&&e.$$avoidResync?d.url():c,e&&e.replace&&d.replace()},href:function(c,e,f){if(!c.validates(e))return null;var g=a.html5Mode();b.isObject(g)&&(g=g.enabled),g=g&&h.history;var i=c.format(e);if(f=f||{},g||null===i||(i="#"+a.hashPrefix()+i),null!==i&&e&&e["#"]&&(i+="#"+e["#"]),i=m(i,g,f.absolute),!f.absolute||!i)return i;var j=!g&&i?"/":"",k=d.port();return k=80===k||443===k?"":":"+k,[d.protocol(),"://",d.host(),k,j,i].join("")}}}var i,j=[],k=null,l=!1;this.rule=function(a){if(!M(a))throw new Error("'rule' must be a function");return j.push(a),this},this.otherwise=function(a){if(N(a)){var b=a;a=function(){return b}}else if(!M(a))throw new Error("'rule' must be a function");return k=a,this},this.when=function(a,b){var c,h=N(b);if(N(a)&&(a=d.compile(a)),!h&&!M(b)&&!P(b))throw new Error("invalid 'handler' in when()");var i={matcher:function(a,b){return h&&(c=d.compile(b),b=["$match",function(a){return c.format(a)}]),R(function(c,d){return g(c,b,a.exec(d.path(),d.search()))},{prefix:N(a.prefix)?a.prefix:""})},regex:function(a,b){if(a.global||a.sticky)throw new Error("when() RegExp must not be global or sticky");return h&&(c=b,b=["$match",function(a){return f(c,a)}]),R(function(c,d){return g(c,b,a.exec(d.path()))},{prefix:e(a)})}},j={matcher:d.isMatcher(a),regex:a instanceof RegExp};for(var k in j)if(j[k])return this.rule(i[k](a,b));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(a){a===c&&(a=!0),l=a},this.$get=h,h.$inject=["$location","$rootScope","$injector","$browser","$sniffer"]}function v(a,e){function f(a){return 0===a.indexOf(".")||0===a.indexOf("^")}function m(a,b){if(!a)return c;var d=N(a),e=d?a:a.name,g=f(e);if(g){if(!b)throw new Error("No reference point given for path '"+e+"'");b=m(b);for(var h=e.split("."),i=0,j=h.length,k=b;j>i;i++)if(""!==h[i]||0!==i){if("^"!==h[i])break;if(!k.parent)throw new Error("Path '"+e+"' not valid for state '"+b.name+"'");k=k.parent}else k=b;h=h.slice(i).join("."),e=k.name+(k.name&&h?".":"")+h}var l=z[e];return!l||!d&&(d||l!==a&&l.self!==a)?c:l}function n(a,b){A[a]||(A[a]=[]),A[a].push(b)}function p(a){for(var b=A[a]||[];b.length;)q(b.shift())}function q(b){b=d(b,{self:b,resolve:b.resolve||{},toString:function(){return this.name}});var c=b.name;if(!N(c)||c.indexOf("@")>=0)throw new Error("State must have a valid name");if(z.hasOwnProperty(c))throw new Error("State '"+c+"' is already defined");var e=-1!==c.indexOf(".")?c.substring(0,c.lastIndexOf(".")):N(b.parent)?b.parent:O(b.parent)&&N(b.parent.name)?b.parent.name:"";if(e&&!z[e])return n(e,b.self);for(var f in C)M(C[f])&&(b[f]=C[f](b,C.$delegates[f]));return z[c]=b,!b[B]&&b.url&&a.when(b.url,["$match","$stateParams",function(a,c){y.$current.navigable==b&&j(a,c)||y.transitionTo(b,a,{inherit:!0,location:!1})}]),p(c),b}function r(a){return a.indexOf("*")>-1}function s(a){for(var b=a.split("."),c=y.$current.name.split("."),d=0,e=b.length;e>d;d++)"*"===b[d]&&(c[d]="*");return"**"===b[0]&&(c=c.slice(h(c,b[1])),c.unshift("**")),"**"===b[b.length-1]&&(c.splice(h(c,b[b.length-2])+1,Number.MAX_VALUE),c.push("**")),b.length!=c.length?!1:c.join("")===b.join("")}function t(a,b){return N(a)&&!L(b)?C[a]:M(b)&&N(a)?(C[a]&&!C.$delegates[a]&&(C.$delegates[a]=C[a]),C[a]=b,this):this}function u(a,b){return O(a)?b=a:b.name=a,q(b),this}function v(a,e,f,h,l,n,p,q,t){function u(b,c,d,f){var g=a.$broadcast("$stateNotFound",b,c,d);if(g.defaultPrevented)return p.update(),D;if(!g.retry)return null;if(f.$retry)return p.update(),E;var h=y.transition=e.when(g.retry);return h.then(function(){return h!==y.transition?A:(b.options.$retry=!0,y.transitionTo(b.to,b.toParams,b.options))},function(){return D}),p.update(),h}function v(a,c,d,g,i,j){function m(){var c=[];return Q(a.views,function(d,e){var g=d.resolve&&d.resolve!==a.resolve?d.resolve:{};g.$template=[function(){return f.load(e,{view:d,locals:i.globals,params:n,notify:j.notify})||""}],c.push(l.resolve(g,i.globals,i.resolve,a).then(function(c){if(M(d.controllerProvider)||P(d.controllerProvider)){var f=b.extend({},g,i.globals);c.$$controller=h.invoke(d.controllerProvider,null,f)}else c.$$controller=d.controller;c.$$state=a,c.$$controllerAs=d.controllerAs,i[e]=c}))}),e.all(c).then(function(){return i.globals})}var n=d?c:k(a.params.$$keys(),c),o={$stateParams:n};i.resolve=l.resolve(a.resolve,o,i.resolve,a);var p=[i.resolve.then(function(a){i.globals=a})];return g&&p.push(g),e.all(p).then(m).then(function(a){return i})}var A=e.reject(new Error("transition superseded")),C=e.reject(new Error("transition prevented")),D=e.reject(new Error("transition aborted")),E=e.reject(new Error("transition failed"));return x.locals={resolve:null,globals:{$stateParams:{}}},y={params:{},current:x.self,$current:x,transition:null},y.reload=function(a){return y.transitionTo(y.current,n,{reload:a||!0,inherit:!1,notify:!0})},y.go=function(a,b,c){return y.transitionTo(a,b,R({inherit:!0,relative:y.$current},c))},y.transitionTo=function(b,c,f){c=c||{},f=R({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},f||{});var g,j=y.$current,l=y.params,o=j.path,q=m(b,f.relative),r=c["#"];if(!L(q)){var s={to:b,toParams:c,options:f},t=u(s,j.self,l,f);if(t)return t;if(b=s.to,c=s.toParams,f=s.options,q=m(b,f.relative),!L(q)){if(!f.relative)throw new Error("No such state '"+b+"'");throw new Error("Could not resolve '"+b+"' from state '"+f.relative+"'")}}if(q[B])throw new Error("Cannot transition to abstract state '"+b+"'");if(f.inherit&&(c=i(n,c||{},y.$current,q)),!q.params.$$validates(c))return E;c=q.params.$$values(c),b=q;var z=b.path,D=0,F=z[D],G=x.locals,H=[];if(f.reload){if(N(f.reload)||O(f.reload)){if(O(f.reload)&&!f.reload.name)throw new Error("Invalid reload state object");var I=f.reload===!0?o[0]:m(f.reload);if(f.reload&&!I)throw new Error("No such reload state '"+(N(f.reload)?f.reload:f.reload.name)+"'");for(;F&&F===o[D]&&F!==I;)G=H[D]=F.locals,D++,F=z[D]}}else for(;F&&F===o[D]&&F.ownParams.$$equals(c,l);)G=H[D]=F.locals,D++,F=z[D];if(w(b,c,j,l,G,f))return r&&(c["#"]=r),y.params=c,S(y.params,n),S(k(b.params.$$keys(),n),b.locals.globals.$stateParams),f.location&&b.navigable&&b.navigable.url&&(p.push(b.navigable.url,c,{$$avoidResync:!0,replace:"replace"===f.location}),p.update(!0)),y.transition=null,e.when(y.current);if(c=k(b.params.$$keys(),c||{}),r&&(c["#"]=r),f.notify&&a.$broadcast("$stateChangeStart",b.self,c,j.self,l,f).defaultPrevented)return a.$broadcast("$stateChangeCancel",b.self,c,j.self,l),null==y.transition&&p.update(),C;for(var J=e.when(G),K=D;K<z.length;K++,F=z[K])G=H[K]=d(G),J=v(F,c,F===b,J,G,f);var M=y.transition=J.then(function(){var d,e,g;if(y.transition!==M)return A;for(d=o.length-1;d>=D;d--)g=o[d],g.self.onExit&&h.invoke(g.self.onExit,g.self,g.locals.globals),g.locals=null;for(d=D;d<z.length;d++)e=z[d],e.locals=H[d],e.self.onEnter&&h.invoke(e.self.onEnter,e.self,e.locals.globals);return y.transition!==M?A:(y.$current=b,y.current=b.self,y.params=c,S(y.params,n),y.transition=null,f.location&&b.navigable&&p.push(b.navigable.url,b.navigable.locals.globals.$stateParams,{$$avoidResync:!0,replace:"replace"===f.location}),f.notify&&a.$broadcast("$stateChangeSuccess",b.self,c,j.self,l),p.update(!0),y.current)},function(d){return y.transition!==M?A:(y.transition=null,g=a.$broadcast("$stateChangeError",b.self,c,j.self,l,d),g.defaultPrevented||p.update(),e.reject(d))});return M},y.is=function(a,b,d){d=R({relative:y.$current},d||{});var e=m(a,d.relative);return L(e)?y.$current!==e?!1:b?j(e.params.$$values(b),n):!0:c},y.includes=function(a,b,d){if(d=R({relative:y.$current},d||{}),N(a)&&r(a)){if(!s(a))return!1;a=y.$current.name}var e=m(a,d.relative);return L(e)?L(y.$current.includes[e.name])?b?j(e.params.$$values(b),n,g(b)):!0:!1:c},y.href=function(a,b,d){d=R({lossy:!0,inherit:!0,absolute:!1,relative:y.$current},d||{});var e=m(a,d.relative);if(!L(e))return null;d.inherit&&(b=i(n,b||{},y.$current,e));var f=e&&d.lossy?e.navigable:e;return f&&f.url!==c&&null!==f.url?p.href(f.url,k(e.params.$$keys().concat("#"),b||{}),{absolute:d.absolute}):null},y.get=function(a,b){if(0===arguments.length)return o(g(z),function(a){return z[a].self});var c=m(a,b||y.$current);return c&&c.self?c.self:null},y}function w(a,b,c,d,e,f){function g(a,b,c){function d(b){return"search"!=a.params[b].location}var e=a.params.$$keys().filter(d),f=l.apply({},[a.params].concat(e)),g=new U.ParamSet(f);return g.$$equals(b,c)}return!f.reload&&a===c&&(e===c.locals||a.self.reloadOnSearch===!1&&g(c,d,b))?!0:void 0}var x,y,z={},A={},B="abstract",C={parent:function(a){if(L(a.parent)&&a.parent)return m(a.parent);
+var b=/^(.+)\.[^.]+$/.exec(a.name);return b?m(b[1]):x},data:function(a){return a.parent&&a.parent.data&&(a.data=a.self.data=d(a.parent.data,a.data)),a.data},url:function(a){var b=a.url,c={params:a.params||{}};if(N(b))return"^"==b.charAt(0)?e.compile(b.substring(1),c):(a.parent.navigable||x).url.concat(b,c);if(!b||e.isMatcher(b))return b;throw new Error("Invalid url '"+b+"' in state '"+a+"'")},navigable:function(a){return a.url?a:a.parent?a.parent.navigable:null},ownParams:function(a){var b=a.url&&a.url.params||new U.ParamSet;return Q(a.params||{},function(a,c){b[c]||(b[c]=new U.Param(c,null,a,"config"))}),b},params:function(a){var b=l(a.ownParams,a.ownParams.$$keys());return a.parent&&a.parent.params?R(a.parent.params.$$new(),b):new U.ParamSet},views:function(a){var b={};return Q(L(a.views)?a.views:{"":a},function(c,d){d.indexOf("@")<0&&(d+="@"+a.parent.name),b[d]=c}),b},path:function(a){return a.parent?a.parent.path.concat(a):[]},includes:function(a){var b=a.parent?R({},a.parent.includes):{};return b[a.name]=!0,b},$delegates:{}};x=q({name:"",url:"^",views:null,"abstract":!0}),x.navigable=null,this.decorator=t,this.state=u,this.$get=v,v.$inject=["$rootScope","$q","$view","$injector","$resolve","$stateParams","$urlRouter","$location","$urlMatcherFactory"]}function w(){function a(a,b){return{load:function(a,c){var d,e={template:null,controller:null,view:null,locals:null,notify:!0,async:!0,params:{}};return c=R(e,c),c.view&&(d=b.fromConfig(c.view,c.params,c.locals)),d}}}this.$get=a,a.$inject=["$rootScope","$templateFactory"]}function x(){var a=!1;this.useAnchorScroll=function(){a=!0},this.$get=["$anchorScroll","$timeout",function(b,c){return a?b:function(a){return c(function(){a[0].scrollIntoView()},0,!1)}}]}function y(a,c,d,e){function f(){return c.has?function(a){return c.has(a)?c.get(a):null}:function(a){try{return c.get(a)}catch(b){return null}}}function g(a,c){function d(a){return 1===V&&W>=4?!!j.enabled(a):1===V&&W>=2?!!j.enabled():!!i}var e={enter:function(a,b,c){b.after(a),c()},leave:function(a,b){a.remove(),b()}};if(a.noanimation)return e;if(j)return{enter:function(a,c,f){d(a)?b.version.minor>2?j.enter(a,null,c).then(f):j.enter(a,null,c,f):e.enter(a,c,f)},leave:function(a,c){d(a)?b.version.minor>2?j.leave(a).then(c):j.leave(a,c):e.leave(a,c)}};if(i){var f=i&&i(c,a);return{enter:function(a,b,c){f.enter(a,null,b),c()},leave:function(a,b){f.leave(a),b()}}}return e}var h=f(),i=h("$animator"),j=h("$animate"),k={restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(c,f,h){return function(c,f,i){function j(){function a(){b&&b.remove(),c&&c.$destroy()}var b=l,c=n;c&&(c._willBeDestroyed=!0),m?(r.leave(m,function(){a(),l=null}),l=m):(a(),l=null),m=null,n=null}function k(g){var k,l=A(c,i,f,e),s=l&&a.$current&&a.$current.locals[l];if((g||s!==o)&&!c._willBeDestroyed){k=c.$new(),o=a.$current.locals[l],k.$emit("$viewContentLoading",l);var t=h(k,function(a){r.enter(a,f,function(){n&&n.$emit("$viewContentAnimationEnded"),(b.isDefined(q)&&!q||c.$eval(q))&&d(a)}),j()});m=t,n=k,n.$emit("$viewContentLoaded",l),n.$eval(p)}}var l,m,n,o,p=i.onload||"",q=i.autoscroll,r=g(i,c);c.$on("$stateChangeSuccess",function(){k(!1)}),k(!0)}}};return k}function z(a,b,c,d){return{restrict:"ECA",priority:-400,compile:function(e){var f=e.html();return function(e,g,h){var i=c.$current,j=A(e,h,g,d),k=i&&i.locals[j];if(k){g.data("$uiView",{name:j,state:k.$$state}),g.html(k.$template?k.$template:f);var l=a(g.contents());if(k.$$controller){k.$scope=e,k.$element=g;var m=b(k.$$controller,k);k.$$controllerAs&&(e[k.$$controllerAs]=m),g.data("$ngControllerController",m),g.children().data("$ngControllerController",m)}l(e)}}}}}function A(a,b,c,d){var e=d(b.uiView||b.name||"")(a),f=c.inheritedData("$uiView");return e.indexOf("@")>=0?e:e+"@"+(f?f.state.name:"")}function B(a,b){var c,d=a.match(/^\s*({[^}]*})\s*$/);if(d&&(a=b+"("+d[1]+")"),c=a.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/),!c||4!==c.length)throw new Error("Invalid state ref '"+a+"'");return{state:c[1],paramExpr:c[3]||null}}function C(a){var b=a.parent().inheritedData("$uiView");return b&&b.state&&b.state.name?b.state:void 0}function D(a){var b="[object SVGAnimatedString]"===Object.prototype.toString.call(a.prop("href")),c="FORM"===a[0].nodeName;return{attr:c?"action":b?"xlink:href":"href",isAnchor:"A"===a.prop("tagName").toUpperCase(),clickable:!c}}function E(a,b,c,d,e){return function(f){var g=f.which||f.button,h=e();if(!(g>1||f.ctrlKey||f.metaKey||f.shiftKey||a.attr("target"))){var i=c(function(){b.go(h.state,h.params,h.options)});f.preventDefault();var j=d.isAnchor&&!h.href?1:0;f.preventDefault=function(){j--<=0&&c.cancel(i)}}}}function F(a,b){return{relative:C(a)||b.$current,inherit:!0}}function G(a,c){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(d,e,f,g){var h=B(f.uiSref,a.current.name),i={state:h.state,href:null,params:null},j=D(e),k=g[1]||g[0];i.options=R(F(e,a),f.uiSrefOpts?d.$eval(f.uiSrefOpts):{});var l=function(c){c&&(i.params=b.copy(c)),i.href=a.href(h.state,i.params,i.options),k&&k.$$addStateInfo(h.state,i.params),null!==i.href&&f.$set(j.attr,i.href)};h.paramExpr&&(d.$watch(h.paramExpr,function(a){a!==i.params&&l(a)},!0),i.params=b.copy(d.$eval(h.paramExpr))),l(),j.clickable&&e.bind("click",E(e,a,c,j,function(){return i}))}}}function H(a,b){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(c,d,e,f){function g(b){l.state=b[0],l.params=b[1],l.options=b[2],l.href=a.href(l.state,l.params,l.options),i&&i.$$addStateInfo(l.state,l.params),l.href&&e.$set(h.attr,l.href)}var h=D(d),i=f[1]||f[0],j=[e.uiState,e.uiStateParams||null,e.uiStateOpts||null],k="["+j.map(function(a){return a||"null"}).join(", ")+"]",l={state:null,params:null,options:null,href:null};c.$watch(k,g,!0),g(c.$eval(k)),h.clickable&&d.bind("click",E(d,a,b,h,function(){return l}))}}}function I(a,b,c){return{restrict:"A",controller:["$scope","$element","$attrs","$timeout",function(b,d,e,f){function g(b,c,e){var f=a.get(b,C(d)),g=h(b,c);p.push({state:f||{name:b},params:c,hash:g}),q[g]=e}function h(a,c){if(!N(a))throw new Error("state should be a string");return O(c)?a+T(c):(c=b.$eval(c),O(c)?a+T(c):a)}function i(){for(var a=0;a<p.length;a++)l(p[a].state,p[a].params)?j(d,q[p[a].hash]):k(d,q[p[a].hash]),m(p[a].state,p[a].params)?j(d,n):k(d,n)}function j(a,b){f(function(){a.addClass(b)})}function k(a,b){a.removeClass(b)}function l(b,c){return a.includes(b.name,c)}function m(b,c){return a.is(b.name,c)}var n,o,p=[],q={};n=c(e.uiSrefActiveEq||"",!1)(b);try{o=b.$eval(e.uiSrefActive)}catch(r){}o=o||c(e.uiSrefActive||"",!1)(b),O(o)&&Q(o,function(c,d){if(N(c)){var e=B(c,a.current.name);g(e.state,b.$eval(e.paramExpr),d)}}),this.$$addStateInfo=function(a,b){O(o)&&p.length>0||(g(a,b,o),i())},b.$on("$stateChangeSuccess",i),i()}]}}function J(a){var b=function(b,c){return a.is(b,c)};return b.$stateful=!0,b}function K(a){var b=function(b,c,d){return a.includes(b,c,d)};return b.$stateful=!0,b}var L=b.isDefined,M=b.isFunction,N=b.isString,O=b.isObject,P=b.isArray,Q=b.forEach,R=b.extend,S=b.copy,T=b.toJson;b.module("ui.router.util",["ng"]),b.module("ui.router.router",["ui.router.util"]),b.module("ui.router.state",["ui.router.router","ui.router.util"]),b.module("ui.router",["ui.router.state"]),b.module("ui.router.compat",["ui.router"]),p.$inject=["$q","$injector"],b.module("ui.router.util").service("$resolve",p),q.$inject=["$http","$templateCache","$injector"],b.module("ui.router.util").service("$templateFactory",q);var U;r.prototype.concat=function(a,b){var c={caseInsensitive:U.caseInsensitive(),strict:U.strictMode(),squash:U.defaultSquashPolicy()};return new r(this.sourcePath+a+this.sourceSearch,R(c,b),this)},r.prototype.toString=function(){return this.source},r.prototype.exec=function(a,b){function c(a){function b(a){return a.split("").reverse().join("")}function c(a){return a.replace(/\\-/g,"-")}var d=b(a).split(/-(?!\\)/),e=o(d,b);return o(e,c).reverse()}var d=this.regexp.exec(a);if(!d)return null;b=b||{};var e,f,g,h=this.parameters(),i=h.length,j=this.segments.length-1,k={};if(j!==d.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");var l,m;for(e=0;j>e;e++){for(g=h[e],l=this.params[g],m=d[e+1],f=0;f<l.replace.length;f++)l.replace[f].from===m&&(m=l.replace[f].to);m&&l.array===!0&&(m=c(m)),L(m)&&(m=l.type.decode(m)),k[g]=l.value(m)}for(;i>e;e++){for(g=h[e],k[g]=this.params[g].value(b[g]),l=this.params[g],m=b[g],f=0;f<l.replace.length;f++)l.replace[f].from===m&&(m=l.replace[f].to);L(m)&&(m=l.type.decode(m)),k[g]=l.value(m)}return k},r.prototype.parameters=function(a){return L(a)?this.params[a]||null:this.$$paramNames},r.prototype.validates=function(a){return this.params.$$validates(a)},r.prototype.format=function(a){function b(a){return encodeURIComponent(a).replace(/-/g,function(a){return"%5C%"+a.charCodeAt(0).toString(16).toUpperCase()})}a=a||{};var c=this.segments,d=this.parameters(),e=this.params;if(!this.validates(a))return null;var f,g=!1,h=c.length-1,i=d.length,j=c[0];for(f=0;i>f;f++){var k=h>f,l=d[f],m=e[l],n=m.value(a[l]),p=m.isOptional&&m.type.equals(m.value(),n),q=p?m.squash:!1,r=m.type.encode(n);if(k){var s=c[f+1],t=f+1===h;if(q===!1)null!=r&&(j+=P(r)?o(r,b).join("-"):encodeURIComponent(r)),j+=s;else if(q===!0){var u=j.match(/\/$/)?/\/?(.*)/:/(.*)/;j+=s.match(u)[1]}else N(q)&&(j+=q+s);t&&m.squash===!0&&"/"===j.slice(-1)&&(j=j.slice(0,-1))}else{if(null==r||p&&q!==!1)continue;if(P(r)||(r=[r]),0===r.length)continue;r=o(r,encodeURIComponent).join("&"+l+"="),j+=(g?"&":"?")+(l+"="+r),g=!0}}return j},s.prototype.is=function(a,b){return!0},s.prototype.encode=function(a,b){return a},s.prototype.decode=function(a,b){return a},s.prototype.equals=function(a,b){return a==b},s.prototype.$subPattern=function(){var a=this.pattern.toString();return a.substr(1,a.length-2)},s.prototype.pattern=/.*/,s.prototype.toString=function(){return"{Type:"+this.name+"}"},s.prototype.$normalize=function(a){return this.is(a)?a:this.decode(a)},s.prototype.$asArray=function(a,b){function d(a,b){function d(a,b){return function(){return a[b].apply(a,arguments)}}function e(a){return P(a)?a:L(a)?[a]:[]}function f(a){switch(a.length){case 0:return c;case 1:return"auto"===b?a[0]:a;default:return a}}function g(a){return!a}function h(a,b){return function(c){if(P(c)&&0===c.length)return c;c=e(c);var d=o(c,a);return b===!0?0===n(d,g).length:f(d)}}function i(a){return function(b,c){var d=e(b),f=e(c);if(d.length!==f.length)return!1;for(var g=0;g<d.length;g++)if(!a(d[g],f[g]))return!1;return!0}}this.encode=h(d(a,"encode")),this.decode=h(d(a,"decode")),this.is=h(d(a,"is"),!0),this.equals=i(d(a,"equals")),this.pattern=a.pattern,this.$normalize=h(d(a,"$normalize")),this.name=a.name,this.$arrayMode=b}if(!a)return this;if("auto"===a&&!b)throw new Error("'auto' array mode is for query parameters only");return new d(this,a)},b.module("ui.router.util").provider("$urlMatcherFactory",t),b.module("ui.router.util").run(["$urlMatcherFactory",function(a){}]),u.$inject=["$locationProvider","$urlMatcherFactoryProvider"],b.module("ui.router.router").provider("$urlRouter",u),v.$inject=["$urlRouterProvider","$urlMatcherFactoryProvider"],b.module("ui.router.state").factory("$stateParams",function(){return{}}).provider("$state",v),w.$inject=[],b.module("ui.router.state").provider("$view",w),b.module("ui.router.state").provider("$uiViewScroll",x);var V=b.version.major,W=b.version.minor;y.$inject=["$state","$injector","$uiViewScroll","$interpolate"],z.$inject=["$compile","$controller","$state","$interpolate"],b.module("ui.router.state").directive("uiView",y),b.module("ui.router.state").directive("uiView",z),G.$inject=["$state","$timeout"],H.$inject=["$state","$timeout"],I.$inject=["$state","$stateParams","$interpolate"],b.module("ui.router.state").directive("uiSref",G).directive("uiSrefActive",I).directive("uiSrefActiveEq",I).directive("uiState",H),J.$inject=["$state"],K.$inject=["$state"],b.module("ui.router.state").filter("isState",J).filter("includedByState",K)}(window,window.angular),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){function b(b,d){var e,f,g,h=b.nodeName.toLowerCase();return"area"===h?(e=b.parentNode,f=e.name,b.href&&f&&"map"===e.nodeName.toLowerCase()?(g=a("img[usemap='#"+f+"']")[0],!!g&&c(g)):!1):(/^(input|select|textarea|button|object)$/.test(h)?!b.disabled:"a"===h?b.href||d:d)&&c(b)}function c(b){return a.expr.filters.visible(b)&&!a(b).parents().addBack().filter(function(){return"hidden"===a.css(this,"visibility")}).length}function d(a){for(var b,c;a.length&&a[0]!==document;){if(b=a.css("position"),("absolute"===b||"relative"===b||"fixed"===b)&&(c=parseInt(a.css("zIndex"),10),!isNaN(c)&&0!==c))return c;a=a.parent()}return 0}function e(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},a.extend(this._defaults,this.regional[""]),this.regional.en=a.extend(!0,{},this.regional[""]),this.regional["en-US"]=a.extend(!0,{},this.regional.en),this.dpDiv=f(a("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function f(b){var c="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return b.delegate(c,"mouseout",function(){a(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&a(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&a(this).removeClass("ui-datepicker-next-hover")}).delegate(c,"mouseover",g)}function g(){a.datepicker._isDisabledDatepicker(r.inline?r.dpDiv.parent()[0]:r.input[0])||(a(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),a(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&a(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&a(this).addClass("ui-datepicker-next-hover"))}function h(b,c){a.extend(b,c);for(var d in c)null==c[d]&&(b[d]=c[d]);return b}function i(a){return function(){var b=this.element.val();a.apply(this,arguments),this._refresh(),b!==this.element.val()&&this._trigger("change")}}a.ui=a.ui||{},a.extend(a.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),a.fn.extend({scrollParent:function(b){var c=this.css("position"),d="absolute"===c,e=b?/(auto|scroll|hidden)/:/(auto|scroll)/,f=this.parents().filter(function(){var b=a(this);return d&&"static"===b.css("position")?!1:e.test(b.css("overflow")+b.css("overflow-y")+b.css("overflow-x"))}).eq(0);return"fixed"!==c&&f.length?f:a(this[0].ownerDocument||document)},uniqueId:function(){var a=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++a)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&a(this).removeAttr("id")})}}),a.extend(a.expr[":"],{data:a.expr.createPseudo?a.expr.createPseudo(function(b){return function(c){return!!a.data(c,b)}}):function(b,c,d){return!!a.data(b,d[3])},focusable:function(c){return b(c,!isNaN(a.attr(c,"tabindex")))},tabbable:function(c){var d=a.attr(c,"tabindex"),e=isNaN(d);return(e||d>=0)&&b(c,!e)}}),a("<a>").outerWidth(1).jquery||a.each(["Width","Height"],function(b,c){function d(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.css(b,"padding"+this))||0,d&&(c-=parseFloat(a.css(b,"border"+this+"Width"))||0),f&&(c-=parseFloat(a.css(b,"margin"+this))||0)}),c}var e="Width"===c?["Left","Right"]:["Top","Bottom"],f=c.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+c]=function(b){return void 0===b?g["inner"+c].call(this):this.each(function(){a(this).css(f,d(this,b)+"px")})},a.fn["outer"+c]=function(b,e){return"number"!=typeof b?g["outer"+c].call(this,b):this.each(function(){a(this).css(f,d(this,b,!0,e)+"px")})}}),a.fn.addBack||(a.fn.addBack=function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}),a("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(a.fn.removeData=function(b){return function(c){return arguments.length?b.call(this,a.camelCase(c)):b.call(this)}}(a.fn.removeData)),a.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),a.fn.extend({focus:function(b){return function(c,d){return"number"==typeof c?this.each(function(){var b=this;setTimeout(function(){a(b).focus(),d&&d.call(b)},c)}):b.apply(this,arguments)}}(a.fn.focus),disableSelection:function(){var a="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(a+".ui-disableSelection",function(a){a.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(b){if(void 0!==b)return this.css("zIndex",b);if(this.length)for(var c,d,e=a(this[0]);e.length&&e[0]!==document;){if(c=e.css("position"),("absolute"===c||"relative"===c||"fixed"===c)&&(d=parseInt(e.css("zIndex"),10),!isNaN(d)&&0!==d))return d;e=e.parent()}return 0}}),a.ui.plugin={add:function(b,c,d){var e,f=a.ui[b].prototype;for(e in d)f.plugins[e]=f.plugins[e]||[],f.plugins[e].push([c,d[e]])},call:function(a,b,c,d){var e,f=a.plugins[b];if(f&&(d||a.element[0].parentNode&&11!==a.element[0].parentNode.nodeType))for(e=0;e<f.length;e++)a.options[f[e][0]]&&f[e][1].apply(a.element,c)}};var j=0,k=Array.prototype.slice;a.cleanData=function(b){return function(c){var d,e,f;for(f=0;null!=(e=c[f]);f++)try{d=a._data(e,"events"),d&&d.remove&&a(e).triggerHandler("remove")}catch(g){}b(c)}}(a.cleanData),a.widget=function(b,c,d){var e,f,g,h,i={},j=b.split(".")[0];return b=b.split(".")[1],e=j+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][e.toLowerCase()]=function(b){return!!a.data(b,e)},a[j]=a[j]||{},f=a[j][b],g=a[j][b]=function(a,b){return this._createWidget?void(arguments.length&&this._createWidget(a,b)):new g(a,b)},a.extend(g,f,{version:d.version,_proto:a.extend({},d),_childConstructors:[]}),h=new c,h.options=a.widget.extend({},h.options),a.each(d,function(b,d){return a.isFunction(d)?void(i[b]=function(){var a=function(){return c.prototype[b].apply(this,arguments)},e=function(a){return c.prototype[b].apply(this,a)};return function(){var b,c=this._super,f=this._superApply;return this._super=a,this._superApply=e,b=d.apply(this,arguments),this._super=c,this._superApply=f,b}}()):void(i[b]=d)}),g.prototype=a.widget.extend(h,{widgetEventPrefix:f?h.widgetEventPrefix||b:b},i,{constructor:g,namespace:j,widgetName:b,widgetFullName:e}),f?(a.each(f._childConstructors,function(b,c){var d=c.prototype;a.widget(d.namespace+"."+d.widgetName,g,c._proto)}),delete f._childConstructors):c._childConstructors.push(g),a.widget.bridge(b,g),g},a.widget.extend=function(b){for(var c,d,e=k.call(arguments,1),f=0,g=e.length;g>f;f++)for(c in e[f])d=e[f][c],e[f].hasOwnProperty(c)&&void 0!==d&&(a.isPlainObject(d)?b[c]=a.isPlainObject(b[c])?a.widget.extend({},b[c],d):a.widget.extend({},d):b[c]=d);return b},a.widget.bridge=function(b,c){var d=c.prototype.widgetFullName||b;a.fn[b]=function(e){var f="string"==typeof e,g=k.call(arguments,1),h=this;return f?this.each(function(){var c,f=a.data(this,d);return"instance"===e?(h=f,!1):f?a.isFunction(f[e])&&"_"!==e.charAt(0)?(c=f[e].apply(f,g),c!==f&&void 0!==c?(h=c&&c.jquery?h.pushStack(c.get()):c,!1):void 0):a.error("no such method '"+e+"' for "+b+" widget instance"):a.error("cannot call methods on "+b+" prior to initialization; attempted to call method '"+e+"'")}):(g.length&&(e=a.widget.extend.apply(null,[e].concat(g))),this.each(function(){var b=a.data(this,d);b?(b.option(e||{}),b._init&&b._init()):a.data(this,d,new c(e,this))})),h}},a.Widget=function(){},a.Widget._childConstructors=[],a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(b,c){c=a(c||this.defaultElement||this)[0],this.element=a(c),this.uuid=j++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=a(),this.hoverable=a(),this.focusable=a(),c!==this&&(a.data(c,this.widgetFullName,this),this._on(!0,this.element,{remove:function(a){a.target===c&&this.destroy()}}),this.document=a(c.style?c.ownerDocument:c.document||c),this.window=a(this.document[0].defaultView||this.document[0].parentWindow)),this.options=a.widget.extend({},this.options,this._getCreateOptions(),b),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:a.noop,_getCreateEventData:a.noop,_create:a.noop,_init:a.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(a.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:a.noop,widget:function(){return this.element},option:function(b,c){var d,e,f,g=b;if(0===arguments.length)return a.widget.extend({},this.options);if("string"==typeof b)if(g={},d=b.split("."),b=d.shift(),d.length){for(e=g[b]=a.widget.extend({},this.options[b]),f=0;f<d.length-1;f++)e[d[f]]=e[d[f]]||{},e=e[d[f]];if(b=d.pop(),1===arguments.length)return void 0===e[b]?null:e[b];e[b]=c}else{if(1===arguments.length)return void 0===this.options[b]?null:this.options[b];g[b]=c}return this._setOptions(g),this},_setOptions:function(a){var b;for(b in a)this._setOption(b,a[b]);return this},_setOption:function(a,b){return this.options[a]=b,"disabled"===a&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!b),b&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_on:function(b,c,d){var e,f=this;"boolean"!=typeof b&&(d=c,c=b,b=!1),d?(c=e=a(c),this.bindings=this.bindings.add(c)):(d=c,c=this.element,e=this.widget()),a.each(d,function(d,g){function h(){return b||f.options.disabled!==!0&&!a(this).hasClass("ui-state-disabled")?("string"==typeof g?f[g]:g).apply(f,arguments):void 0}"string"!=typeof g&&(h.guid=g.guid=g.guid||h.guid||a.guid++);var i=d.match(/^([\w:-]*)\s*(.*)$/),j=i[1]+f.eventNamespace,k=i[2];k?e.delegate(k,j,h):c.bind(j,h)})},_off:function(b,c){c=(c||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,b.unbind(c).undelegate(c),this.bindings=a(this.bindings.not(b).get()),this.focusable=a(this.focusable.not(b).get()),this.hoverable=a(this.hoverable.not(b).get())},_delay:function(a,b){function c(){return("string"==typeof a?d[a]:a).apply(d,arguments)}var d=this;return setTimeout(c,b||0)},_hoverable:function(b){this.hoverable=this.hoverable.add(b),this._on(b,{mouseenter:function(b){a(b.currentTarget).addClass("ui-state-hover")},mouseleave:function(b){a(b.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(b){this.focusable=this.focusable.add(b),this._on(b,{focusin:function(b){a(b.currentTarget).addClass("ui-state-focus")},focusout:function(b){a(b.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(b,c,d){var e,f,g=this.options[b];if(d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent)for(e in f)e in c||(c[e]=f[e]);return this.element.trigger(c,d),!(a.isFunction(g)&&g.apply(this.element[0],[c].concat(d))===!1||c.isDefaultPrevented())}},a.each({show:"fadeIn",hide:"fadeOut"},function(b,c){a.Widget.prototype["_"+b]=function(d,e,f){"string"==typeof e&&(e={effect:e});var g,h=e?e===!0||"number"==typeof e?c:e.effect||c:b;e=e||{},"number"==typeof e&&(e={duration:e}),g=!a.isEmptyObject(e),e.complete=f,e.delay&&d.delay(e.delay),g&&a.effects&&a.effects.effect[h]?d[b](e):h!==b&&d[h]?d[h](e.duration,e.easing,f):d.queue(function(c){a(this)[b](),f&&f.call(d[0]),c()})}});var l=(a.widget,!1);a(document).mouseup(function(){l=!1});a.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){return!0===a.data(c.target,b.widgetName+".preventClickEvent")?(a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(b){if(!l){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var c=this,d=1===b.which,e="string"==typeof this.options.cancel&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;return d&&!e&&this._mouseCapture(b)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(b)!==!1,!this._mouseStarted)?(b.preventDefault(),!0):(!0===a.data(b.target,this.widgetName+".preventClickEvent")&&a.removeData(b.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return c._mouseMove(a)},this._mouseUpDelegate=function(a){return c._mouseUp(a)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),b.preventDefault(),l=!0,!0)):!0}},_mouseMove:function(b){if(this._mouseMoved){if(a.ui.ie&&(!document.documentMode||document.documentMode<9)&&!b.button)return this._mouseUp(b);if(!b.which)return this._mouseUp(b)}return(b.which||b.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted)},_mouseUp:function(b){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target===this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),l=!1,!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}});!function(){function b(a,b,c){return[parseFloat(a[0])*(n.test(a[0])?b/100:1),parseFloat(a[1])*(n.test(a[1])?c/100:1)]}function c(b,c){return parseInt(a.css(b,c),10)||0}function d(b){var c=b[0];return 9===c.nodeType?{width:b.width(),height:b.height(),offset:{top:0,left:0}}:a.isWindow(c)?{width:b.width(),height:b.height(),offset:{top:b.scrollTop(),left:b.scrollLeft()}}:c.preventDefault?{width:0,height:0,offset:{top:c.pageY,left:c.pageX}}:{width:b.outerWidth(),height:b.outerHeight(),offset:b.offset()}}a.ui=a.ui||{};var e,f,g=Math.max,h=Math.abs,i=Math.round,j=/left|center|right/,k=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,m=/^\w+/,n=/%$/,o=a.fn.position;a.position={scrollbarWidth:function(){if(void 0!==e)return e;var b,c,d=a("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),f=d.children()[0];return a("body").append(d),b=f.offsetWidth,d.css("overflow","scroll"),c=f.offsetWidth,b===c&&(c=d[0].clientWidth),d.remove(),e=b-c},getScrollInfo:function(b){var c=b.isWindow||b.isDocument?"":b.element.css("overflow-x"),d=b.isWindow||b.isDocument?"":b.element.css("overflow-y"),e="scroll"===c||"auto"===c&&b.width<b.element[0].scrollWidth,f="scroll"===d||"auto"===d&&b.height<b.element[0].scrollHeight;return{width:f?a.position.scrollbarWidth():0,height:e?a.position.scrollbarWidth():0}},getWithinInfo:function(b){var c=a(b||window),d=a.isWindow(c[0]),e=!!c[0]&&9===c[0].nodeType;return{element:c,isWindow:d,isDocument:e,offset:c.offset()||{left:0,top:0},scrollLeft:c.scrollLeft(),scrollTop:c.scrollTop(),width:d||e?c.width():c.outerWidth(),height:d||e?c.height():c.outerHeight()}}},a.fn.position=function(e){if(!e||!e.of)return o.apply(this,arguments);e=a.extend({},e);var n,p,q,r,s,t,u=a(e.of),v=a.position.getWithinInfo(e.within),w=a.position.getScrollInfo(v),x=(e.collision||"flip").split(" "),y={};return t=d(u),u[0].preventDefault&&(e.at="left top"),p=t.width,q=t.height,r=t.offset,s=a.extend({},r),a.each(["my","at"],function(){var a,b,c=(e[this]||"").split(" ");1===c.length&&(c=j.test(c[0])?c.concat(["center"]):k.test(c[0])?["center"].concat(c):["center","center"]),c[0]=j.test(c[0])?c[0]:"center",c[1]=k.test(c[1])?c[1]:"center",a=l.exec(c[0]),b=l.exec(c[1]),y[this]=[a?a[0]:0,b?b[0]:0],e[this]=[m.exec(c[0])[0],m.exec(c[1])[0]]}),1===x.length&&(x[1]=x[0]),"right"===e.at[0]?s.left+=p:"center"===e.at[0]&&(s.left+=p/2),"bottom"===e.at[1]?s.top+=q:"center"===e.at[1]&&(s.top+=q/2),n=b(y.at,p,q),s.left+=n[0],s.top+=n[1],this.each(function(){var d,j,k=a(this),l=k.outerWidth(),m=k.outerHeight(),o=c(this,"marginLeft"),t=c(this,"marginTop"),z=l+o+c(this,"marginRight")+w.width,A=m+t+c(this,"marginBottom")+w.height,B=a.extend({},s),C=b(y.my,k.outerWidth(),k.outerHeight());"right"===e.my[0]?B.left-=l:"center"===e.my[0]&&(B.left-=l/2),"bottom"===e.my[1]?B.top-=m:"center"===e.my[1]&&(B.top-=m/2),B.left+=C[0],B.top+=C[1],f||(B.left=i(B.left),B.top=i(B.top)),d={marginLeft:o,marginTop:t},a.each(["left","top"],function(b,c){a.ui.position[x[b]]&&a.ui.position[x[b]][c](B,{targetWidth:p,targetHeight:q,elemWidth:l,elemHeight:m,collisionPosition:d,collisionWidth:z,collisionHeight:A,offset:[n[0]+C[0],n[1]+C[1]],my:e.my,at:e.at,within:v,elem:k})}),e.using&&(j=function(a){var b=r.left-B.left,c=b+p-l,d=r.top-B.top,f=d+q-m,i={target:{element:u,left:r.left,top:r.top,width:p,height:q},element:{element:k,left:B.left,top:B.top,width:l,height:m},horizontal:0>c?"left":b>0?"right":"center",vertical:0>f?"top":d>0?"bottom":"middle"
+};l>p&&h(b+c)<p&&(i.horizontal="center"),m>q&&h(d+f)<q&&(i.vertical="middle"),g(h(b),h(c))>g(h(d),h(f))?i.important="horizontal":i.important="vertical",e.using.call(this,a,i)}),k.offset(a.extend(B,{using:j}))})},a.ui.position={fit:{left:function(a,b){var c,d=b.within,e=d.isWindow?d.scrollLeft:d.offset.left,f=d.width,h=a.left-b.collisionPosition.marginLeft,i=e-h,j=h+b.collisionWidth-f-e;b.collisionWidth>f?i>0&&0>=j?(c=a.left+i+b.collisionWidth-f-e,a.left+=i-c):j>0&&0>=i?a.left=e:i>j?a.left=e+f-b.collisionWidth:a.left=e:i>0?a.left+=i:j>0?a.left-=j:a.left=g(a.left-h,a.left)},top:function(a,b){var c,d=b.within,e=d.isWindow?d.scrollTop:d.offset.top,f=b.within.height,h=a.top-b.collisionPosition.marginTop,i=e-h,j=h+b.collisionHeight-f-e;b.collisionHeight>f?i>0&&0>=j?(c=a.top+i+b.collisionHeight-f-e,a.top+=i-c):j>0&&0>=i?a.top=e:i>j?a.top=e+f-b.collisionHeight:a.top=e:i>0?a.top+=i:j>0?a.top-=j:a.top=g(a.top-h,a.top)}},flip:{left:function(a,b){var c,d,e=b.within,f=e.offset.left+e.scrollLeft,g=e.width,i=e.isWindow?e.scrollLeft:e.offset.left,j=a.left-b.collisionPosition.marginLeft,k=j-i,l=j+b.collisionWidth-g-i,m="left"===b.my[0]?-b.elemWidth:"right"===b.my[0]?b.elemWidth:0,n="left"===b.at[0]?b.targetWidth:"right"===b.at[0]?-b.targetWidth:0,o=-2*b.offset[0];0>k?(c=a.left+m+n+o+b.collisionWidth-g-f,(0>c||c<h(k))&&(a.left+=m+n+o)):l>0&&(d=a.left-b.collisionPosition.marginLeft+m+n+o-i,(d>0||h(d)<l)&&(a.left+=m+n+o))},top:function(a,b){var c,d,e=b.within,f=e.offset.top+e.scrollTop,g=e.height,i=e.isWindow?e.scrollTop:e.offset.top,j=a.top-b.collisionPosition.marginTop,k=j-i,l=j+b.collisionHeight-g-i,m="top"===b.my[1],n=m?-b.elemHeight:"bottom"===b.my[1]?b.elemHeight:0,o="top"===b.at[1]?b.targetHeight:"bottom"===b.at[1]?-b.targetHeight:0,p=-2*b.offset[1];0>k?(d=a.top+n+o+p+b.collisionHeight-g-f,(0>d||d<h(k))&&(a.top+=n+o+p)):l>0&&(c=a.top-b.collisionPosition.marginTop+n+o+p-i,(c>0||h(c)<l)&&(a.top+=n+o+p))}},flipfit:{left:function(){a.ui.position.flip.left.apply(this,arguments),a.ui.position.fit.left.apply(this,arguments)},top:function(){a.ui.position.flip.top.apply(this,arguments),a.ui.position.fit.top.apply(this,arguments)}}},function(){var b,c,d,e,g,h=document.getElementsByTagName("body")[0],i=document.createElement("div");b=document.createElement(h?"div":"body"),d={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},h&&a.extend(d,{position:"absolute",left:"-1000px",top:"-1000px"});for(g in d)b.style[g]=d[g];b.appendChild(i),c=h||document.documentElement,c.insertBefore(b,c.firstChild),i.style.cssText="position: absolute; left: 10.7432222px;",e=a(i).offset().left,f=e>10&&11>e,b.innerHTML="",c.removeChild(b)}()}();a.ui.position,a.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var b=this.options;this.prevShow=this.prevHide=a(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),b.collapsible||b.active!==!1&&null!=b.active||(b.active=0),this._processPanels(),b.active<0&&(b.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():a()}},_createIcons:function(){var b=this.options.icons;b&&(a("<span>").addClass("ui-accordion-header-icon ui-icon "+b.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(b.header).addClass(b.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var a;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),a=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&a.css("height","")},_setOption:function(a,b){return"active"===a?void this._activate(b):("event"===a&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(b)),this._super(a,b),"collapsible"!==a||b||this.options.active!==!1||this._activate(0),"icons"===a&&(this._destroyIcons(),b&&this._createIcons()),void("disabled"===a&&(this.element.toggleClass("ui-state-disabled",!!b).attr("aria-disabled",b),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!b))))},_keydown:function(b){if(!b.altKey&&!b.ctrlKey){var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._eventHandler(b);break;case c.HOME:f=this.headers[0];break;case c.END:f=this.headers[d-1]}f&&(a(b.target).attr("tabIndex",-1),a(f).attr("tabIndex",0),f.focus(),b.preventDefault())}},_panelKeyDown:function(b){b.keyCode===a.ui.keyCode.UP&&b.ctrlKey&&a(b.currentTarget).prev().focus()},refresh:function(){var b=this.options;this._processPanels(),b.active===!1&&b.collapsible===!0||!this.headers.length?(b.active=!1,this.active=a()):b.active===!1?this._activate(0):this.active.length&&!a.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(b.active=!1,this.active=a()):this._activate(Math.max(0,b.active-1)):b.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var a=this.headers,b=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),b&&(this._off(a.not(this.headers)),this._off(b.not(this.panels)))},_refresh:function(){var b,c=this.options,d=c.heightStyle,e=this.element.parent();this.active=this._findActive(c.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var b=a(this),c=b.uniqueId().attr("id"),d=b.next(),e=d.uniqueId().attr("id");b.attr("aria-controls",e),d.attr("aria-labelledby",c)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(c.event),"fill"===d?(b=e.height(),this.element.siblings(":visible").each(function(){var c=a(this),d=c.css("position");"absolute"!==d&&"fixed"!==d&&(b-=c.outerHeight(!0))}),this.headers.each(function(){b-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,b-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")):"auto"===d&&(b=0,this.headers.next().each(function(){b=Math.max(b,a(this).css("height","").height())}).height(b))},_activate:function(b){var c=this._findActive(b)[0];c!==this.active[0]&&(c=c||this.active[0],this._eventHandler({target:c,currentTarget:c,preventDefault:a.noop}))},_findActive:function(b){return"number"==typeof b?this.headers.eq(b):a()},_setupEvents:function(b){var c={keydown:"_keydown"};b&&a.each(b.split(" "),function(a,b){c[b]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,c),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(b){var c=this.options,d=this.active,e=a(b.currentTarget),f=e[0]===d[0],g=f&&c.collapsible,h=g?a():e.next(),i=d.next(),j={oldHeader:d,oldPanel:i,newHeader:g?a():e,newPanel:h};b.preventDefault(),f&&!c.collapsible||this._trigger("beforeActivate",b,j)===!1||(c.active=g?!1:this.headers.index(e),this.active=f?a():e,this._toggle(j),d.removeClass("ui-accordion-header-active ui-state-active"),c.icons&&d.children(".ui-accordion-header-icon").removeClass(c.icons.activeHeader).addClass(c.icons.header),f||(e.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),c.icons&&e.children(".ui-accordion-header-icon").removeClass(c.icons.header).addClass(c.icons.activeHeader),e.next().addClass("ui-accordion-content-active")))},_toggle:function(b){var c=b.newPanel,d=this.prevShow.length?this.prevShow:b.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=c,this.prevHide=d,this.options.animate?this._animate(c,d,b):(d.hide(),c.show(),this._toggleComplete(b)),d.attr({"aria-hidden":"true"}),d.prev().attr({"aria-selected":"false","aria-expanded":"false"}),c.length&&d.length?d.prev().attr({tabIndex:-1,"aria-expanded":"false"}):c.length&&this.headers.filter(function(){return 0===parseInt(a(this).attr("tabIndex"),10)}).attr("tabIndex",-1),c.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(a,b,c){var d,e,f,g=this,h=0,i=a.css("box-sizing"),j=a.length&&(!b.length||a.index()<b.index()),k=this.options.animate||{},l=j&&k.down||k,m=function(){g._toggleComplete(c)};return"number"==typeof l&&(f=l),"string"==typeof l&&(e=l),e=e||l.easing||k.easing,f=f||l.duration||k.duration,b.length?a.length?(d=a.show().outerHeight(),b.animate(this.hideProps,{duration:f,easing:e,step:function(a,b){b.now=Math.round(a)}}),void a.hide().animate(this.showProps,{duration:f,easing:e,complete:m,step:function(a,c){c.now=Math.round(a),"height"!==c.prop?"content-box"===i&&(h+=c.now):"content"!==g.options.heightStyle&&(c.now=Math.round(d-b.outerHeight()-h),h=0)}})):b.animate(this.hideProps,f,e,m):a.animate(this.showProps,f,e,m)},_toggleComplete:function(a){var b=a.oldPanel;b.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),b.length&&(b.parent()[0].className=b.parent()[0].className),this._trigger("activate",null,a)}}),a.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item":function(a){a.preventDefault()},"click .ui-menu-item":function(b){var c=a(b.target);!this.mouseHandled&&c.not(".ui-state-disabled").length&&(this.select(b),b.isPropagationStopped()||(this.mouseHandled=!0),c.has(".ui-menu").length?this.expand(b):!this.element.is(":focus")&&a(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(b){if(!this.previousFilter){var c=a(b.currentTarget);c.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(b,c)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(a,b){var c=this.active||this.element.find(this.options.items).eq(0);b||this.focus(a,c)},blur:function(b){this._delay(function(){a.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(b)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(a){this._closeOnDocumentClick(a)&&this.collapseAll(a),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var b=a(this);b.data("ui-menu-submenu-carat")&&b.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(b){var c,d,e,f,g=!0;switch(b.keyCode){case a.ui.keyCode.PAGE_UP:this.previousPage(b);break;case a.ui.keyCode.PAGE_DOWN:this.nextPage(b);break;case a.ui.keyCode.HOME:this._move("first","first",b);break;case a.ui.keyCode.END:this._move("last","last",b);break;case a.ui.keyCode.UP:this.previous(b);break;case a.ui.keyCode.DOWN:this.next(b);break;case a.ui.keyCode.LEFT:this.collapse(b);break;case a.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(b);break;case a.ui.keyCode.ENTER:case a.ui.keyCode.SPACE:this._activate(b);break;case a.ui.keyCode.ESCAPE:this.collapse(b);break;default:g=!1,d=this.previousFilter||"",e=String.fromCharCode(b.keyCode),f=!1,clearTimeout(this.filterTimer),e===d?f=!0:e=d+e,c=this._filterMenuItems(e),c=f&&-1!==c.index(this.active.next())?this.active.nextAll(".ui-menu-item"):c,c.length||(e=String.fromCharCode(b.keyCode),c=this._filterMenuItems(e)),c.length?(this.focus(b,c),this.previousFilter=e,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}g&&b.preventDefault()},_activate:function(a){this.active.is(".ui-state-disabled")||(this.active.is("[aria-haspopup='true']")?this.expand(a):this.select(a))},refresh:function(){var b,c,d=this,e=this.options.icons.submenu,f=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),f.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var b=a(this),c=b.parent(),d=a("<span>").addClass("ui-menu-icon ui-icon "+e).data("ui-menu-submenu-carat",!0);c.attr("aria-haspopup","true").prepend(d),b.attr("aria-labelledby",c.attr("id"))}),b=f.add(this.element),c=b.find(this.options.items),c.not(".ui-menu-item").each(function(){var b=a(this);d._isDivider(b)&&b.addClass("ui-widget-content ui-menu-divider")}),c.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),c.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!a.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(a,b){"icons"===a&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(b.submenu),"disabled"===a&&this.element.toggleClass("ui-state-disabled",!!b).attr("aria-disabled",b),this._super(a,b)},focus:function(a,b){var c,d;this.blur(a,a&&"focus"===a.type),this._scrollIntoView(b),this.active=b.first(),d=this.active.addClass("ui-state-focus").removeClass("ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",d.attr("id")),this.active.parent().closest(".ui-menu-item").addClass("ui-state-active"),a&&"keydown"===a.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),c=b.children(".ui-menu"),c.length&&a&&/^mouse/.test(a.type)&&this._startOpening(c),this.activeMenu=b.parent(),this._trigger("focus",a,{item:b})},_scrollIntoView:function(b){var c,d,e,f,g,h;this._hasScroll()&&(c=parseFloat(a.css(this.activeMenu[0],"borderTopWidth"))||0,d=parseFloat(a.css(this.activeMenu[0],"paddingTop"))||0,e=b.offset().top-this.activeMenu.offset().top-c-d,f=this.activeMenu.scrollTop(),g=this.activeMenu.height(),h=b.outerHeight(),0>e?this.activeMenu.scrollTop(f+e):e+h>g&&this.activeMenu.scrollTop(f+e-g+h))},blur:function(a,b){b||clearTimeout(this.timer),this.active&&(this.active.removeClass("ui-state-focus"),this.active=null,this._trigger("blur",a,{item:this.active}))},_startOpening:function(a){clearTimeout(this.timer),"true"===a.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(a)},this.delay))},_open:function(b){var c=a.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(b.parents(".ui-menu")).hide().attr("aria-hidden","true"),b.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(c)},collapseAll:function(b,c){clearTimeout(this.timer),this.timer=this._delay(function(){var d=c?this.element:a(b&&b.target).closest(this.element.find(".ui-menu"));d.length||(d=this.element),this._close(d),this.blur(b),this.activeMenu=d},this.delay)},_close:function(a){a||(a=this.active?this.active.parent():this.element),a.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(b){return!a(b.target).closest(".ui-menu").length},_isDivider:function(a){return!/[^\-\u2014\u2013\s]/.test(a.text())},collapse:function(a){var b=this.active&&this.active.parent().closest(".ui-menu-item",this.element);b&&b.length&&(this._close(),this.focus(a,b))},expand:function(a){var b=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();b&&b.length&&(this._open(b.parent()),this._delay(function(){this.focus(a,b)}))},next:function(a){this._move("next","first",a)},previous:function(a){this._move("prev","last",a)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(a,b,c){var d;this.active&&(d="first"===a||"last"===a?this.active["first"===a?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[a+"All"](".ui-menu-item").eq(0)),d&&d.length&&this.active||(d=this.activeMenu.find(this.options.items)[b]()),this.focus(c,d)},nextPage:function(b){var c,d,e;return this.active?void(this.isLastItem()||(this._hasScroll()?(d=this.active.offset().top,e=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return c=a(this),c.offset().top-d-e<0}),this.focus(b,c)):this.focus(b,this.activeMenu.find(this.options.items)[this.active?"last":"first"]()))):void this.next(b)},previousPage:function(b){var c,d,e;return this.active?void(this.isFirstItem()||(this._hasScroll()?(d=this.active.offset().top,e=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return c=a(this),c.offset().top-d+e>0}),this.focus(b,c)):this.focus(b,this.activeMenu.find(this.options.items).first()))):void this.next(b)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(b){this.active=this.active||a(b.target).closest(".ui-menu-item");var c={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(b,!0),this._trigger("select",b,c)},_filterMenuItems:function(b){var c=b.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),d=new RegExp("^"+c,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return d.test(a.trim(a(this).text()))})}});a.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var b,c,d,e=this.element[0].nodeName.toLowerCase(),f="textarea"===e,g="input"===e;this.isMultiLine=f?!0:g?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[f||g?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(e){if(this.element.prop("readOnly"))return b=!0,d=!0,void(c=!0);b=!1,d=!1,c=!1;var f=a.ui.keyCode;switch(e.keyCode){case f.PAGE_UP:b=!0,this._move("previousPage",e);break;case f.PAGE_DOWN:b=!0,this._move("nextPage",e);break;case f.UP:b=!0,this._keyEvent("previous",e);break;case f.DOWN:b=!0,this._keyEvent("next",e);break;case f.ENTER:this.menu.active&&(b=!0,e.preventDefault(),this.menu.select(e));break;case f.TAB:this.menu.active&&this.menu.select(e);break;case f.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(e),e.preventDefault());break;default:c=!0,this._searchTimeout(e)}},keypress:function(d){if(b)return b=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||d.preventDefault());if(!c){var e=a.ui.keyCode;switch(d.keyCode){case e.PAGE_UP:this._move("previousPage",d);break;case e.PAGE_DOWN:this._move("nextPage",d);break;case e.UP:this._keyEvent("previous",d);break;case e.DOWN:this._keyEvent("next",d)}}},input:function(a){return d?(d=!1,void a.preventDefault()):void this._searchTimeout(a)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(a){return this.cancelBlur?void delete this.cancelBlur:(clearTimeout(this.searching),this.close(a),void this._change(a))}}),this._initSource(),this.menu=a("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._on(this.menu.element,{mousedown:function(b){b.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var c=this.menu.element[0];a(b.target).closest(".ui-menu-item").length||this._delay(function(){var b=this;this.document.one("mousedown",function(d){d.target===b.element[0]||d.target===c||a.contains(c,d.target)||b.close()})})},menufocus:function(b,c){var d,e;return this.isNewMenu&&(this.isNewMenu=!1,b.originalEvent&&/^mouse/.test(b.originalEvent.type))?(this.menu.blur(),void this.document.one("mousemove",function(){a(b.target).trigger(b.originalEvent)})):(e=c.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",b,{item:e})&&b.originalEvent&&/^key/.test(b.originalEvent.type)&&this._value(e.value),d=c.item.attr("aria-label")||e.value,void(d&&a.trim(d).length&&(this.liveRegion.children().hide(),a("<div>").text(d).appendTo(this.liveRegion))))},menuselect:function(a,b){var c=b.item.data("ui-autocomplete-item"),d=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=d,this._delay(function(){this.previous=d,this.selectedItem=c})),!1!==this._trigger("select",a,{item:c})&&this._value(c.value),this.term=this._value(),this.close(a),this.selectedItem=c}}),this.liveRegion=a("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(a,b){this._super(a,b),"source"===a&&this._initSource(),"appendTo"===a&&this.menu.element.appendTo(this._appendTo()),"disabled"===a&&b&&this.xhr&&this.xhr.abort()},_appendTo:function(){var b=this.options.appendTo;return b&&(b=b.jquery||b.nodeType?a(b):this.document.find(b).eq(0)),b&&b[0]||(b=this.element.closest(".ui-front")),b.length||(b=this.document[0].body),b},_initSource:function(){var b,c,d=this;a.isArray(this.options.source)?(b=this.options.source,this.source=function(c,d){d(a.ui.autocomplete.filter(b,c.term))}):"string"==typeof this.options.source?(c=this.options.source,this.source=function(b,e){d.xhr&&d.xhr.abort(),d.xhr=a.ajax({url:c,data:b,dataType:"json",success:function(a){e(a)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(a){clearTimeout(this.searching),this.searching=this._delay(function(){var b=this.term===this._value(),c=this.menu.element.is(":visible"),d=a.altKey||a.ctrlKey||a.metaKey||a.shiftKey;b&&(!b||c||d)||(this.selectedItem=null,this.search(null,a))},this.options.delay)},search:function(a,b){return a=null!=a?a:this._value(),this.term=this._value(),a.length<this.options.minLength?this.close(b):this._trigger("search",b)!==!1?this._search(a):void 0},_search:function(a){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:a},this._response())},_response:function(){var b=++this.requestIndex;return a.proxy(function(a){b===this.requestIndex&&this.__response(a),this.pending--,this.pending||this.element.removeClass("ui-autocomplete-loading")},this)},__response:function(a){a&&(a=this._normalize(a)),this._trigger("response",null,{content:a}),!this.options.disabled&&a&&a.length&&!this.cancelSearch?(this._suggest(a),this._trigger("open")):this._close()},close:function(a){this.cancelSearch=!0,this._close(a)},_close:function(a){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",a))},_change:function(a){this.previous!==this._value()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(b){return b.length&&b[0].label&&b[0].value?b:a.map(b,function(b){return"string"==typeof b?{label:b,value:b}:a.extend({},b,{label:b.label||b.value,value:b.value||b.label})})},_suggest:function(b){var c=this.menu.element.empty();this._renderMenu(c,b),this.isNewMenu=!0,this.menu.refresh(),c.show(),this._resizeMenu(),c.position(a.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(b,c){var d=this;a.each(c,function(a,c){d._renderItemData(b,c)})},_renderItemData:function(a,b){return this._renderItem(a,b).data("ui-autocomplete-item",b)},_renderItem:function(b,c){return a("<li>").text(c.label).appendTo(b)},_move:function(a,b){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(a)||this.menu.isLastItem()&&/^next/.test(a)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[a](b):void this.search(null,b)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(a,b){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(a,b),b.preventDefault())}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}}),a.widget("ui.autocomplete",a.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(a){return a+(a>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(b){var c;this._superApply(arguments),this.options.disabled||this.cancelSearch||(c=b&&b.length?this.options.messages.results(b.length):this.options.messages.noResults,this.liveRegion.children().hide(),a("<div>").text(c).appendTo(this.liveRegion))}});var m,n=(a.ui.autocomplete,"ui-button ui-widget ui-state-default ui-corner-all"),o="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",p=function(){var b=a(this);setTimeout(function(){b.find(":ui-button").button("refresh")},1)},q=function(b){var c=b.name,d=b.form,e=a([]);return c&&(c=c.replace(/'/g,"\\'"),e=d?a(d).find("[name='"+c+"'][type=radio]"):a("[name='"+c+"'][type=radio]",b.ownerDocument).filter(function(){return!this.form})),e};a.widget("ui.button",{version:"1.11.4",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,p),"boolean"!=typeof this.options.disabled?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d="checkbox"===this.type||"radio"===this.type,e=d?"":"ui-state-active";null===c.label&&(c.label="input"===this.type?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(n).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){c.disabled||this===m&&a(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){c.disabled||a(this).removeClass(e)}).bind("click"+this.eventNamespace,function(a){c.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}),this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}}),d&&this.element.bind("change"+this.eventNamespace,function(){b.refresh()}),"checkbox"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){return c.disabled?!1:void 0}):"radio"===this.type?this.buttonElement.bind("click"+this.eventNamespace,function(){if(c.disabled)return!1;a(this).addClass("ui-state-active"),b.buttonElement.attr("aria-pressed","true");var d=b.element[0];q(d).not(d).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){return c.disabled?!1:(a(this).addClass("ui-state-active"),m=this,void b.document.one("mouseup",function(){m=null}))}).bind("mouseup"+this.eventNamespace,function(){return c.disabled?!1:void a(this).removeClass("ui-state-active")}).bind("keydown"+this.eventNamespace,function(b){return c.disabled?!1:void(b.keyCode!==a.ui.keyCode.SPACE&&b.keyCode!==a.ui.keyCode.ENTER||a(this).addClass("ui-state-active"))}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){a(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(b){b.keyCode===a.ui.keyCode.SPACE&&a(this).click()})),this._setOption("disabled",c.disabled),this._resetButton()},_determineButtonType:function(){var a,b,c;this.element.is("[type=checkbox]")?this.type="checkbox":this.element.is("[type=radio]")?this.type="radio":this.element.is("input")?this.type="input":this.type="button","checkbox"===this.type||"radio"===this.type?(a=this.element.parents().last(),b="label[for='"+this.element.attr("id")+"']",this.buttonElement=a.find(b),this.buttonElement.length||(a=a.length?a.siblings():this.element.siblings(),this.buttonElement=a.filter(b),this.buttonElement.length||(this.buttonElement=a.find(b))),this.element.addClass("ui-helper-hidden-accessible"),c=this.element.is(":checked"),c&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",c)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(n+" ui-state-active "+o).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),
+this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(a,b){return this._super(a,b),"disabled"===a?(this.widget().toggleClass("ui-state-disabled",!!b),this.element.prop("disabled",!!b),void(b&&("checkbox"===this.type||"radio"===this.type?this.buttonElement.removeClass("ui-state-focus"):this.buttonElement.removeClass("ui-state-focus ui-state-active")))):void this._resetButton()},refresh:function(){var b=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");b!==this.options.disabled&&this._setOption("disabled",b),"radio"===this.type?q(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):"checkbox"===this.type&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if("input"===this.type)return void(this.options.label&&this.element.val(this.options.label));var b=this.buttonElement.removeClass(o),c=a("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>"),d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>"),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",a.trim(c)))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}),a.widget("ui.buttonset",{version:"1.11.4",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(a,b){"disabled"===a&&this.buttons.button("option",a,b),this._super(a,b)},refresh:function(){var b="rtl"===this.element.css("direction"),c=this.element.find(this.options.items),d=c.filter(":ui-button");c.not(":ui-button").button(),d.button("refresh"),this.buttons=c.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}});a.ui.button;a.extend(a.ui,{datepicker:{version:"1.11.4"}});var r;a.extend(e.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return h(this._defaults,a||{}),this},_attachDatepicker:function(b,c){var d,e,f;d=b.nodeName.toLowerCase(),e="div"===d||"span"===d,b.id||(this.uuid+=1,b.id="dp"+this.uuid),f=this._newInst(a(b),e),f.settings=a.extend({},c||{}),"input"===d?this._connectDatepicker(b,f):e&&this._inlineDatepicker(b,f)},_newInst:function(b,c){var d=b[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:d,input:b,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:c,dpDiv:c?f(a("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(b,c){var d=a(b);c.append=a([]),c.trigger=a([]),d.hasClass(this.markerClassName)||(this._attachments(d,c),d.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp),this._autoSize(c),a.data(b,"datepicker",c),c.settings.disabled&&this._disableDatepicker(b))},_attachments:function(b,c){var d,e,f,g=this._get(c,"appendText"),h=this._get(c,"isRTL");c.append&&c.append.remove(),g&&(c.append=a("<span class='"+this._appendClass+"'>"+g+"</span>"),b[h?"before":"after"](c.append)),b.unbind("focus",this._showDatepicker),c.trigger&&c.trigger.remove(),d=this._get(c,"showOn"),"focus"!==d&&"both"!==d||b.focus(this._showDatepicker),"button"!==d&&"both"!==d||(e=this._get(c,"buttonText"),f=this._get(c,"buttonImage"),c.trigger=a(this._get(c,"buttonImageOnly")?a("<img/>").addClass(this._triggerClass).attr({src:f,alt:e,title:e}):a("<button type='button'></button>").addClass(this._triggerClass).html(f?a("<img/>").attr({src:f,alt:e,title:e}):e)),b[h?"before":"after"](c.trigger),c.trigger.click(function(){return a.datepicker._datepickerShowing&&a.datepicker._lastInput===b[0]?a.datepicker._hideDatepicker():a.datepicker._datepickerShowing&&a.datepicker._lastInput!==b[0]?(a.datepicker._hideDatepicker(),a.datepicker._showDatepicker(b[0])):a.datepicker._showDatepicker(b[0]),!1}))},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b,c,d,e,f=new Date(2009,11,20),g=this._get(a,"dateFormat");g.match(/[DM]/)&&(b=function(a){for(c=0,d=0,e=0;e<a.length;e++)a[e].length>c&&(c=a[e].length,d=e);return d},f.setMonth(b(this._get(a,g.match(/MM/)?"monthNames":"monthNamesShort"))),f.setDate(b(this._get(a,g.match(/DD/)?"dayNames":"dayNamesShort"))+20-f.getDay())),a.input.attr("size",this._formatDate(a,f).length)}},_inlineDatepicker:function(b,c){var d=a(b);d.hasClass(this.markerClassName)||(d.addClass(this.markerClassName).append(c.dpDiv),a.data(b,"datepicker",c),this._setDate(c,this._getDefaultDate(c),!0),this._updateDatepicker(c),this._updateAlternate(c),c.settings.disabled&&this._disableDatepicker(b),c.dpDiv.css("display","block"))},_dialogDatepicker:function(b,c,d,e,f){var g,i,j,k,l,m=this._dialogInst;return m||(this.uuid+=1,g="dp"+this.uuid,this._dialogInput=a("<input type='text' id='"+g+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.keydown(this._doKeyDown),a("body").append(this._dialogInput),m=this._dialogInst=this._newInst(this._dialogInput,!1),m.settings={},a.data(this._dialogInput[0],"datepicker",m)),h(m.settings,e||{}),c=c&&c.constructor===Date?this._formatDate(m,c):c,this._dialogInput.val(c),this._pos=f?f.length?f:[f.pageX,f.pageY]:null,this._pos||(i=document.documentElement.clientWidth,j=document.documentElement.clientHeight,k=document.documentElement.scrollLeft||document.body.scrollLeft,l=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[i/2-100+k,j/2-150+l]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),m.settings.onSelect=d,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),a.blockUI&&a.blockUI(this.dpDiv),a.data(this._dialogInput[0],"datepicker",m),this},_destroyDatepicker:function(b){var c,d=a(b),e=a.data(b,"datepicker");d.hasClass(this.markerClassName)&&(c=b.nodeName.toLowerCase(),a.removeData(b,"datepicker"),"input"===c?(e.append.remove(),e.trigger.remove(),d.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):"div"!==c&&"span"!==c||d.removeClass(this.markerClassName).empty(),r===e&&(r=null))},_enableDatepicker:function(b){var c,d,e=a(b),f=a.data(b,"datepicker");e.hasClass(this.markerClassName)&&(c=b.nodeName.toLowerCase(),"input"===c?(b.disabled=!1,f.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):"div"!==c&&"span"!==c||(d=e.children("."+this._inlineClass),d.children().removeClass("ui-state-disabled"),d.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=a.map(this._disabledInputs,function(a){return a===b?null:a}))},_disableDatepicker:function(b){var c,d,e=a(b),f=a.data(b,"datepicker");e.hasClass(this.markerClassName)&&(c=b.nodeName.toLowerCase(),"input"===c?(b.disabled=!0,f.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):"div"!==c&&"span"!==c||(d=e.children("."+this._inlineClass),d.children().addClass("ui-state-disabled"),d.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=a.map(this._disabledInputs,function(a){return a===b?null:a}),this._disabledInputs[this._disabledInputs.length]=b)},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]===a)return!0;return!1},_getInst:function(b){try{return a.data(b,"datepicker")}catch(c){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(b,c,d){var e,f,g,i,j=this._getInst(b);return 2===arguments.length&&"string"==typeof c?"defaults"===c?a.extend({},a.datepicker._defaults):j?"all"===c?a.extend({},j.settings):this._get(j,c):null:(e=c||{},"string"==typeof c&&(e={},e[c]=d),void(j&&(this._curInst===j&&this._hideDatepicker(),f=this._getDateDatepicker(b,!0),g=this._getMinMaxDate(j,"min"),i=this._getMinMaxDate(j,"max"),h(j.settings,e),null!==g&&void 0!==e.dateFormat&&void 0===e.minDate&&(j.settings.minDate=this._formatDate(j,g)),null!==i&&void 0!==e.dateFormat&&void 0===e.maxDate&&(j.settings.maxDate=this._formatDate(j,i)),"disabled"in e&&(e.disabled?this._disableDatepicker(b):this._enableDatepicker(b)),this._attachments(a(b),j),this._autoSize(j),this._setDate(j,f),this._updateAlternate(j),this._updateDatepicker(j))))},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){var b=this._getInst(a);b&&this._updateDatepicker(b)},_setDateDatepicker:function(a,b){var c=this._getInst(a);c&&(this._setDate(c,b),this._updateDatepicker(c),this._updateAlternate(c))},_getDateDatepicker:function(a,b){var c=this._getInst(a);return c&&!c.inline&&this._setDateFromField(c,b),c?this._getDate(c):null},_doKeyDown:function(b){var c,d,e,f=a.datepicker._getInst(b.target),g=!0,h=f.dpDiv.is(".ui-datepicker-rtl");if(f._keyEvent=!0,a.datepicker._datepickerShowing)switch(b.keyCode){case 9:a.datepicker._hideDatepicker(),g=!1;break;case 13:return e=a("td."+a.datepicker._dayOverClass+":not(."+a.datepicker._currentClass+")",f.dpDiv),e[0]&&a.datepicker._selectDay(b.target,f.selectedMonth,f.selectedYear,e[0]),c=a.datepicker._get(f,"onSelect"),c?(d=a.datepicker._formatDate(f),c.apply(f.input?f.input[0]:null,[d,f])):a.datepicker._hideDatepicker(),!1;case 27:a.datepicker._hideDatepicker();break;case 33:a.datepicker._adjustDate(b.target,b.ctrlKey?-a.datepicker._get(f,"stepBigMonths"):-a.datepicker._get(f,"stepMonths"),"M");break;case 34:a.datepicker._adjustDate(b.target,b.ctrlKey?+a.datepicker._get(f,"stepBigMonths"):+a.datepicker._get(f,"stepMonths"),"M");break;case 35:(b.ctrlKey||b.metaKey)&&a.datepicker._clearDate(b.target),g=b.ctrlKey||b.metaKey;break;case 36:(b.ctrlKey||b.metaKey)&&a.datepicker._gotoToday(b.target),g=b.ctrlKey||b.metaKey;break;case 37:(b.ctrlKey||b.metaKey)&&a.datepicker._adjustDate(b.target,h?1:-1,"D"),g=b.ctrlKey||b.metaKey,b.originalEvent.altKey&&a.datepicker._adjustDate(b.target,b.ctrlKey?-a.datepicker._get(f,"stepBigMonths"):-a.datepicker._get(f,"stepMonths"),"M");break;case 38:(b.ctrlKey||b.metaKey)&&a.datepicker._adjustDate(b.target,-7,"D"),g=b.ctrlKey||b.metaKey;break;case 39:(b.ctrlKey||b.metaKey)&&a.datepicker._adjustDate(b.target,h?-1:1,"D"),g=b.ctrlKey||b.metaKey,b.originalEvent.altKey&&a.datepicker._adjustDate(b.target,b.ctrlKey?+a.datepicker._get(f,"stepBigMonths"):+a.datepicker._get(f,"stepMonths"),"M");break;case 40:(b.ctrlKey||b.metaKey)&&a.datepicker._adjustDate(b.target,7,"D"),g=b.ctrlKey||b.metaKey;break;default:g=!1}else 36===b.keyCode&&b.ctrlKey?a.datepicker._showDatepicker(this):g=!1;g&&(b.preventDefault(),b.stopPropagation())},_doKeyPress:function(b){var c,d,e=a.datepicker._getInst(b.target);return a.datepicker._get(e,"constrainInput")?(c=a.datepicker._possibleChars(a.datepicker._get(e,"dateFormat")),d=String.fromCharCode(null==b.charCode?b.keyCode:b.charCode),b.ctrlKey||b.metaKey||" ">d||!c||c.indexOf(d)>-1):void 0},_doKeyUp:function(b){var c,d=a.datepicker._getInst(b.target);if(d.input.val()!==d.lastVal)try{c=a.datepicker.parseDate(a.datepicker._get(d,"dateFormat"),d.input?d.input.val():null,a.datepicker._getFormatConfig(d)),c&&(a.datepicker._setDateFromField(d),a.datepicker._updateAlternate(d),a.datepicker._updateDatepicker(d))}catch(e){}return!0},_showDatepicker:function(b){if(b=b.target||b,"input"!==b.nodeName.toLowerCase()&&(b=a("input",b.parentNode)[0]),!a.datepicker._isDisabledDatepicker(b)&&a.datepicker._lastInput!==b){var c,e,f,g,i,j,k;c=a.datepicker._getInst(b),a.datepicker._curInst&&a.datepicker._curInst!==c&&(a.datepicker._curInst.dpDiv.stop(!0,!0),c&&a.datepicker._datepickerShowing&&a.datepicker._hideDatepicker(a.datepicker._curInst.input[0])),e=a.datepicker._get(c,"beforeShow"),f=e?e.apply(b,[b,c]):{},f!==!1&&(h(c.settings,f),c.lastVal=null,a.datepicker._lastInput=b,a.datepicker._setDateFromField(c),a.datepicker._inDialog&&(b.value=""),a.datepicker._pos||(a.datepicker._pos=a.datepicker._findPos(b),a.datepicker._pos[1]+=b.offsetHeight),g=!1,a(b).parents().each(function(){return g|="fixed"===a(this).css("position"),!g}),i={left:a.datepicker._pos[0],top:a.datepicker._pos[1]},a.datepicker._pos=null,c.dpDiv.empty(),c.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),a.datepicker._updateDatepicker(c),i=a.datepicker._checkOffset(c,i,g),c.dpDiv.css({position:a.datepicker._inDialog&&a.blockUI?"static":g?"fixed":"absolute",display:"none",left:i.left+"px",top:i.top+"px"}),c.inline||(j=a.datepicker._get(c,"showAnim"),k=a.datepicker._get(c,"duration"),c.dpDiv.css("z-index",d(a(b))+1),a.datepicker._datepickerShowing=!0,a.effects&&a.effects.effect[j]?c.dpDiv.show(j,a.datepicker._get(c,"showOptions"),k):c.dpDiv[j||"show"](j?k:null),a.datepicker._shouldFocusInput(c)&&c.input.focus(),a.datepicker._curInst=c))}},_updateDatepicker:function(b){this.maxRows=4,r=b,b.dpDiv.empty().append(this._generateHTML(b)),this._attachHandlers(b);var c,d=this._getNumberOfMonths(b),e=d[1],f=17,h=b.dpDiv.find("."+this._dayOverClass+" a");h.length>0&&g.apply(h.get(0)),b.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),e>1&&b.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",f*e+"em"),b.dpDiv[(1!==d[0]||1!==d[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),b.dpDiv[(this._get(b,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),b===a.datepicker._curInst&&a.datepicker._datepickerShowing&&a.datepicker._shouldFocusInput(b)&&b.input.focus(),b.yearshtml&&(c=b.yearshtml,setTimeout(function(){c===b.yearshtml&&b.yearshtml&&b.dpDiv.find("select.ui-datepicker-year:first").replaceWith(b.yearshtml),c=b.yearshtml=null},0))},_shouldFocusInput:function(a){return a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&!a.input.is(":focus")},_checkOffset:function(b,c,d){var e=b.dpDiv.outerWidth(),f=b.dpDiv.outerHeight(),g=b.input?b.input.outerWidth():0,h=b.input?b.input.outerHeight():0,i=document.documentElement.clientWidth+(d?0:a(document).scrollLeft()),j=document.documentElement.clientHeight+(d?0:a(document).scrollTop());return c.left-=this._get(b,"isRTL")?e-g:0,c.left-=d&&c.left===b.input.offset().left?a(document).scrollLeft():0,c.top-=d&&c.top===b.input.offset().top+h?a(document).scrollTop():0,c.left-=Math.min(c.left,c.left+e>i&&i>e?Math.abs(c.left+e-i):0),c.top-=Math.min(c.top,c.top+f>j&&j>f?Math.abs(f+h):0),c},_findPos:function(b){for(var c,d=this._getInst(b),e=this._get(d,"isRTL");b&&("hidden"===b.type||1!==b.nodeType||a.expr.filters.hidden(b));)b=b[e?"previousSibling":"nextSibling"];return c=a(b).offset(),[c.left,c.top]},_hideDatepicker:function(b){var c,d,e,f,g=this._curInst;!g||b&&g!==a.data(b,"datepicker")||this._datepickerShowing&&(c=this._get(g,"showAnim"),d=this._get(g,"duration"),e=function(){a.datepicker._tidyDialog(g)},a.effects&&(a.effects.effect[c]||a.effects[c])?g.dpDiv.hide(c,a.datepicker._get(g,"showOptions"),d,e):g.dpDiv["slideDown"===c?"slideUp":"fadeIn"===c?"fadeOut":"hide"](c?d:null,e),c||e(),this._datepickerShowing=!1,f=this._get(g,"onClose"),f&&f.apply(g.input?g.input[0]:null,[g.input?g.input.val():"",g]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),a.blockUI&&(a.unblockUI(),a("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(b){if(a.datepicker._curInst){var c=a(b.target),d=a.datepicker._getInst(c[0]);(c[0].id===a.datepicker._mainDivId||0!==c.parents("#"+a.datepicker._mainDivId).length||c.hasClass(a.datepicker.markerClassName)||c.closest("."+a.datepicker._triggerClass).length||!a.datepicker._datepickerShowing||a.datepicker._inDialog&&a.blockUI)&&(!c.hasClass(a.datepicker.markerClassName)||a.datepicker._curInst===d)||a.datepicker._hideDatepicker()}},_adjustDate:function(b,c,d){var e=a(b),f=this._getInst(e[0]);this._isDisabledDatepicker(e[0])||(this._adjustInstDate(f,c+("M"===d?this._get(f,"showCurrentAtPos"):0),d),this._updateDatepicker(f))},_gotoToday:function(b){var c,d=a(b),e=this._getInst(d[0]);this._get(e,"gotoCurrent")&&e.currentDay?(e.selectedDay=e.currentDay,e.drawMonth=e.selectedMonth=e.currentMonth,e.drawYear=e.selectedYear=e.currentYear):(c=new Date,e.selectedDay=c.getDate(),e.drawMonth=e.selectedMonth=c.getMonth(),e.drawYear=e.selectedYear=c.getFullYear()),this._notifyChange(e),this._adjustDate(d)},_selectMonthYear:function(b,c,d){var e=a(b),f=this._getInst(e[0]);f["selected"+("M"===d?"Month":"Year")]=f["draw"+("M"===d?"Month":"Year")]=parseInt(c.options[c.selectedIndex].value,10),this._notifyChange(f),this._adjustDate(e)},_selectDay:function(b,c,d,e){var f,g=a(b);a(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(g[0])||(f=this._getInst(g[0]),f.selectedDay=f.currentDay=a("a",e).html(),f.selectedMonth=f.currentMonth=c,f.selectedYear=f.currentYear=d,this._selectDate(b,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear)))},_clearDate:function(b){var c=a(b);this._selectDate(c,"")},_selectDate:function(b,c){var d,e=a(b),f=this._getInst(e[0]);c=null!=c?c:this._formatDate(f),f.input&&f.input.val(c),this._updateAlternate(f),d=this._get(f,"onSelect"),d?d.apply(f.input?f.input[0]:null,[c,f]):f.input&&f.input.trigger("change"),f.inline?this._updateDatepicker(f):(this._hideDatepicker(),this._lastInput=f.input[0],"object"!=typeof f.input[0]&&f.input.focus(),this._lastInput=null)},_updateAlternate:function(b){var c,d,e,f=this._get(b,"altField");f&&(c=this._get(b,"altFormat")||this._get(b,"dateFormat"),d=this._getDate(b),e=this.formatDate(c,d,this._getFormatConfig(b)),a(f).each(function(){a(this).val(e)}))},noWeekends:function(a){var b=a.getDay();return[b>0&&6>b,""]},iso8601Week:function(a){var b,c=new Date(a.getTime());return c.setDate(c.getDate()+4-(c.getDay()||7)),b=c.getTime(),c.setMonth(0),c.setDate(1),Math.floor(Math.round((b-c)/864e5)/7)+1},parseDate:function(b,c,d){if(null==b||null==c)throw"Invalid arguments";if(c="object"==typeof c?c.toString():c+"",""===c)return null;var e,f,g,h,i=0,j=(d?d.shortYearCutoff:null)||this._defaults.shortYearCutoff,k="string"!=typeof j?j:(new Date).getFullYear()%100+parseInt(j,10),l=(d?d.dayNamesShort:null)||this._defaults.dayNamesShort,m=(d?d.dayNames:null)||this._defaults.dayNames,n=(d?d.monthNamesShort:null)||this._defaults.monthNamesShort,o=(d?d.monthNames:null)||this._defaults.monthNames,p=-1,q=-1,r=-1,s=-1,t=!1,u=function(a){var c=e+1<b.length&&b.charAt(e+1)===a;return c&&e++,c},v=function(a){var b=u(a),d="@"===a?14:"!"===a?20:"y"===a&&b?4:"o"===a?3:2,e="y"===a?d:1,f=new RegExp("^\\d{"+e+","+d+"}"),g=c.substring(i).match(f);if(!g)throw"Missing number at position "+i;return i+=g[0].length,parseInt(g[0],10)},w=function(b,d,e){var f=-1,g=a.map(u(b)?e:d,function(a,b){return[[b,a]]}).sort(function(a,b){return-(a[1].length-b[1].length)});if(a.each(g,function(a,b){var d=b[1];return c.substr(i,d.length).toLowerCase()===d.toLowerCase()?(f=b[0],i+=d.length,!1):void 0}),-1!==f)return f+1;throw"Unknown name at position "+i},x=function(){if(c.charAt(i)!==b.charAt(e))throw"Unexpected literal at position "+i;i++};for(e=0;e<b.length;e++)if(t)"'"!==b.charAt(e)||u("'")?x():t=!1;else switch(b.charAt(e)){case"d":r=v("d");break;case"D":w("D",l,m);break;case"o":s=v("o");break;case"m":q=v("m");break;case"M":q=w("M",n,o);break;case"y":p=v("y");break;case"@":h=new Date(v("@")),p=h.getFullYear(),q=h.getMonth()+1,r=h.getDate();break;case"!":h=new Date((v("!")-this._ticksTo1970)/1e4),p=h.getFullYear(),q=h.getMonth()+1,r=h.getDate();break;case"'":u("'")?x():t=!0;break;default:x()}if(i<c.length&&(g=c.substr(i),!/^\s+/.test(g)))throw"Extra/unparsed characters found in date: "+g;if(-1===p?p=(new Date).getFullYear():100>p&&(p+=(new Date).getFullYear()-(new Date).getFullYear()%100+(k>=p?0:-100)),s>-1)for(q=1,r=s;;){if(f=this._getDaysInMonth(p,q-1),f>=r)break;q++,r-=f}if(h=this._daylightSavingAdjust(new Date(p,q-1,r)),h.getFullYear()!==p||h.getMonth()+1!==q||h.getDate()!==r)throw"Invalid date";return h},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d,e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=function(b){var c=d+1<a.length&&a.charAt(d+1)===b;return c&&d++,c},j=function(a,b,c){var d=""+b;if(i(a))for(;d.length<c;)d="0"+d;return d},k=function(a,b,c,d){return i(a)?d[b]:c[b]},l="",m=!1;if(b)for(d=0;d<a.length;d++)if(m)"'"!==a.charAt(d)||i("'")?l+=a.charAt(d):m=!1;else switch(a.charAt(d)){case"d":l+=j("d",b.getDate(),2);break;case"D":l+=k("D",b.getDay(),e,f);break;case"o":l+=j("o",Math.round((new Date(b.getFullYear(),b.getMonth(),b.getDate()).getTime()-new Date(b.getFullYear(),0,0).getTime())/864e5),3);break;case"m":l+=j("m",b.getMonth()+1,2);break;case"M":l+=k("M",b.getMonth(),g,h);break;case"y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case"@":l+=b.getTime();break;case"!":l+=1e4*b.getTime()+this._ticksTo1970;break;case"'":i("'")?l+="'":m=!0;break;default:l+=a.charAt(d)}return l},_possibleChars:function(a){var b,c="",d=!1,e=function(c){var d=b+1<a.length&&a.charAt(b+1)===c;return d&&b++,d};for(b=0;b<a.length;b++)if(d)"'"!==a.charAt(b)||e("'")?c+=a.charAt(b):d=!1;else switch(a.charAt(b)){case"d":case"m":case"y":case"@":c+="0123456789";break;case"D":case"M":return null;case"'":e("'")?c+="'":d=!0;break;default:c+=a.charAt(b)}return c},_get:function(a,b){return void 0!==a.settings[b]?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!==a.lastVal){var c=this._get(a,"dateFormat"),d=a.lastVal=a.input?a.input.val():null,e=this._getDefaultDate(a),f=e,g=this._getFormatConfig(a);try{f=this.parseDate(c,d,g)||e}catch(h){d=b?"":d}a.selectedDay=f.getDate(),a.drawMonth=a.selectedMonth=f.getMonth(),a.drawYear=a.selectedYear=f.getFullYear(),a.currentDay=d?f.getDate():0,a.currentMonth=d?f.getMonth():0,a.currentYear=d?f.getFullYear():0,this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(b,c,d){var e=function(a){var b=new Date;return b.setDate(b.getDate()+a),b},f=function(c){try{return a.datepicker.parseDate(a.datepicker._get(b,"dateFormat"),c,a.datepicker._getFormatConfig(b))}catch(d){}for(var e=(c.toLowerCase().match(/^c/)?a.datepicker._getDate(b):null)||new Date,f=e.getFullYear(),g=e.getMonth(),h=e.getDate(),i=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,j=i.exec(c);j;){switch(j[2]||"d"){case"d":case"D":h+=parseInt(j[1],10);break;case"w":case"W":h+=7*parseInt(j[1],10);break;case"m":case"M":g+=parseInt(j[1],10),h=Math.min(h,a.datepicker._getDaysInMonth(f,g));break;case"y":case"Y":f+=parseInt(j[1],10),h=Math.min(h,a.datepicker._getDaysInMonth(f,g))}j=i.exec(c)}return new Date(f,g,h)},g=null==c||""===c?d:"string"==typeof c?f(c):"number"==typeof c?isNaN(c)?d:e(c):new Date(c.getTime());return g=g&&"Invalid Date"===g.toString()?d:g,g&&(g.setHours(0),g.setMinutes(0),g.setSeconds(0),g.setMilliseconds(0)),this._daylightSavingAdjust(g)},_daylightSavingAdjust:function(a){return a?(a.setHours(a.getHours()>12?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),e===a.selectedMonth&&f===a.selectedYear||c||this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&""===a.input.val()?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_attachHandlers:function(b){var c=this._get(b,"stepMonths"),d="#"+b.id.replace(/\\\\/g,"\\");b.dpDiv.find("[data-handler]").map(function(){var b={prev:function(){a.datepicker._adjustDate(d,-c,"M")},next:function(){a.datepicker._adjustDate(d,+c,"M")},hide:function(){a.datepicker._hideDatepicker()},today:function(){a.datepicker._gotoToday(d)},selectDay:function(){return a.datepicker._selectDay(d,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return a.datepicker._selectMonthYear(d,this,"M"),!1},selectYear:function(){return a.datepicker._selectMonthYear(d,this,"Y"),!1}};a(this).bind(this.getAttribute("data-event"),b[this.getAttribute("data-handler")])})},_generateHTML:function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O=new Date,P=this._daylightSavingAdjust(new Date(O.getFullYear(),O.getMonth(),O.getDate())),Q=this._get(a,"isRTL"),R=this._get(a,"showButtonPanel"),S=this._get(a,"hideIfNoPrevNext"),T=this._get(a,"navigationAsDateFormat"),U=this._getNumberOfMonths(a),V=this._get(a,"showCurrentAtPos"),W=this._get(a,"stepMonths"),X=1!==U[0]||1!==U[1],Y=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),Z=this._getMinMaxDate(a,"min"),$=this._getMinMaxDate(a,"max"),_=a.drawMonth-V,aa=a.drawYear;if(0>_&&(_+=12,aa--),$)for(b=this._daylightSavingAdjust(new Date($.getFullYear(),$.getMonth()-U[0]*U[1]+1,$.getDate())),b=Z&&Z>b?Z:b;this._daylightSavingAdjust(new Date(aa,_,1))>b;)_--,0>_&&(_=11,aa--);for(a.drawMonth=_,a.drawYear=aa,c=this._get(a,"prevText"),c=T?this.formatDate(c,this._daylightSavingAdjust(new Date(aa,_-W,1)),this._getFormatConfig(a)):c,d=this._canAdjustMonth(a,-1,aa,_)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+c+"'><span class='ui-icon ui-icon-circle-triangle-"+(Q?"e":"w")+"'>"+c+"</span></a>":S?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+c+"'><span class='ui-icon ui-icon-circle-triangle-"+(Q?"e":"w")+"'>"+c+"</span></a>",e=this._get(a,"nextText"),e=T?this.formatDate(e,this._daylightSavingAdjust(new Date(aa,_+W,1)),this._getFormatConfig(a)):e,f=this._canAdjustMonth(a,1,aa,_)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+e+"'><span class='ui-icon ui-icon-circle-triangle-"+(Q?"w":"e")+"'>"+e+"</span></a>":S?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+e+"'><span class='ui-icon ui-icon-circle-triangle-"+(Q?"w":"e")+"'>"+e+"</span></a>",g=this._get(a,"currentText"),h=this._get(a,"gotoCurrent")&&a.currentDay?Y:P,g=T?this.formatDate(g,h,this._getFormatConfig(a)):g,i=a.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(a,"closeText")+"</button>",j=R?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Q?i:"")+(this._isInRange(a,h)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+g+"</button>":"")+(Q?"":i)+"</div>":"",k=parseInt(this._get(a,"firstDay"),10),k=isNaN(k)?0:k,l=this._get(a,"showWeek"),m=this._get(a,"dayNames"),n=this._get(a,"dayNamesMin"),o=this._get(a,"monthNames"),p=this._get(a,"monthNamesShort"),q=this._get(a,"beforeShowDay"),r=this._get(a,"showOtherMonths"),s=this._get(a,"selectOtherMonths"),t=this._getDefaultDate(a),u="",w=0;w<U[0];w++){for(x="",this.maxRows=4,y=0;y<U[1];y++){if(z=this._daylightSavingAdjust(new Date(aa,_,a.selectedDay)),A=" ui-corner-all",B="",X){if(B+="<div class='ui-datepicker-group",U[1]>1)switch(y){case 0:B+=" ui-datepicker-group-first",A=" ui-corner-"+(Q?"right":"left");break;case U[1]-1:B+=" ui-datepicker-group-last",A=" ui-corner-"+(Q?"left":"right");break;default:B+=" ui-datepicker-group-middle",A=""}B+="'>"}for(B+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+A+"'>"+(/all|left/.test(A)&&0===w?Q?f:d:"")+(/all|right/.test(A)&&0===w?Q?d:f:"")+this._generateMonthYearHeader(a,_,aa,Z,$,w>0||y>0,o,p)+"</div><table class='ui-datepicker-calendar'><thead><tr>",C=l?"<th class='ui-datepicker-week-col'>"+this._get(a,"weekHeader")+"</th>":"",v=0;7>v;v++)D=(v+k)%7,C+="<th scope='col'"+((v+k+6)%7>=5?" class='ui-datepicker-week-end'":"")+"><span title='"+m[D]+"'>"+n[D]+"</span></th>";for(B+=C+"</tr></thead><tbody>",E=this._getDaysInMonth(aa,_),aa===a.selectedYear&&_===a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,E)),F=(this._getFirstDayOfMonth(aa,_)-k+7)%7,G=Math.ceil((F+E)/7),H=X&&this.maxRows>G?this.maxRows:G,this.maxRows=H,I=this._daylightSavingAdjust(new Date(aa,_,1-F)),J=0;H>J;J++){for(B+="<tr>",K=l?"<td class='ui-datepicker-week-col'>"+this._get(a,"calculateWeek")(I)+"</td>":"",v=0;7>v;v++)L=q?q.apply(a.input?a.input[0]:null,[I]):[!0,""],M=I.getMonth()!==_,N=M&&!s||!L[0]||Z&&Z>I||$&&I>$,K+="<td class='"+((v+k+6)%7>=5?" ui-datepicker-week-end":"")+(M?" ui-datepicker-other-month":"")+(I.getTime()===z.getTime()&&_===a.selectedMonth&&a._keyEvent||t.getTime()===I.getTime()&&t.getTime()===z.getTime()?" "+this._dayOverClass:"")+(N?" "+this._unselectableClass+" ui-state-disabled":"")+(M&&!r?"":" "+L[1]+(I.getTime()===Y.getTime()?" "+this._currentClass:"")+(I.getTime()===P.getTime()?" ui-datepicker-today":""))+"'"+(M&&!r||!L[2]?"":" title='"+L[2].replace(/'/g,"&#39;")+"'")+(N?"":" data-handler='selectDay' data-event='click' data-month='"+I.getMonth()+"' data-year='"+I.getFullYear()+"'")+">"+(M&&!r?"&#xa0;":N?"<span class='ui-state-default'>"+I.getDate()+"</span>":"<a class='ui-state-default"+(I.getTime()===P.getTime()?" ui-state-highlight":"")+(I.getTime()===Y.getTime()?" ui-state-active":"")+(M?" ui-priority-secondary":"")+"' href='#'>"+I.getDate()+"</a>")+"</td>",I.setDate(I.getDate()+1),I=this._daylightSavingAdjust(I);B+=K+"</tr>"}_++,_>11&&(_=0,aa++),B+="</tbody></table>"+(X?"</div>"+(U[0]>0&&y===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),x+=B}u+=x}return u+=j,a._keyEvent=!1,u},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q=this._get(a,"changeMonth"),r=this._get(a,"changeYear"),s=this._get(a,"showMonthAfterYear"),t="<div class='ui-datepicker-title'>",u="";if(f||!q)u+="<span class='ui-datepicker-month'>"+g[b]+"</span>";else{for(i=d&&d.getFullYear()===c,j=e&&e.getFullYear()===c,u+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",k=0;12>k;k++)(!i||k>=d.getMonth())&&(!j||k<=e.getMonth())&&(u+="<option value='"+k+"'"+(k===b?" selected='selected'":"")+">"+h[k]+"</option>");u+="</select>"}if(s||(t+=u+(!f&&q&&r?"":"&#xa0;")),!a.yearshtml)if(a.yearshtml="",
+f||!r)t+="<span class='ui-datepicker-year'>"+c+"</span>";else{for(l=this._get(a,"yearRange").split(":"),m=(new Date).getFullYear(),n=function(a){var b=a.match(/c[+\-].*/)?c+parseInt(a.substring(1),10):a.match(/[+\-].*/)?m+parseInt(a,10):parseInt(a,10);return isNaN(b)?m:b},o=n(l[0]),p=Math.max(o,n(l[1]||"")),o=d?Math.max(o,d.getFullYear()):o,p=e?Math.min(p,e.getFullYear()):p,a.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";p>=o;o++)a.yearshtml+="<option value='"+o+"'"+(o===c?" selected='selected'":"")+">"+o+"</option>";a.yearshtml+="</select>",t+=a.yearshtml,a.yearshtml=null}return t+=this._get(a,"yearSuffix"),s&&(t+=(!f&&q&&r?"":"&#xa0;")+u),t+="</div>"},_adjustInstDate:function(a,b,c){var d=a.drawYear+("Y"===c?b:0),e=a.drawMonth+("M"===c?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+("D"===c?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),"M"!==c&&"Y"!==c||this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&c>b?c:b;return d&&e>d?d:e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return null==b?[1,1]:"number"==typeof b?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return new Date(a,b,1).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(0>b?b:e[0]*e[1]),1));return 0>b&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c,d,e=this._getMinMaxDate(a,"min"),f=this._getMinMaxDate(a,"max"),g=null,h=null,i=this._get(a,"yearRange");return i&&(c=i.split(":"),d=(new Date).getFullYear(),g=parseInt(c[0],10),h=parseInt(c[1],10),c[0].match(/[+\-].*/)&&(g+=d),c[1].match(/[+\-].*/)&&(h+=d)),(!e||b.getTime()>=e.getTime())&&(!f||b.getTime()<=f.getTime())&&(!g||b.getFullYear()>=g)&&(!h||b.getFullYear()<=h)},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b="string"!=typeof b?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?"object"==typeof b?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),a.fn.datepicker=function(b){if(!this.length)return this;a.datepicker.initialized||(a(document).mousedown(a.datepicker._checkExternalClick),a.datepicker.initialized=!0),0===a("#"+a.datepicker._mainDivId).length&&a("body").append(a.datepicker.dpDiv);var c=Array.prototype.slice.call(arguments,1);return"string"!=typeof b||"isDisabled"!==b&&"getDate"!==b&&"widget"!==b?"option"===b&&2===arguments.length&&"string"==typeof arguments[1]?a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(c)):this.each(function(){"string"==typeof b?a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this].concat(c)):a.datepicker._attachDatepicker(this,b)}):a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(c))},a.datepicker=new e,a.datepicker.initialized=!1,a.datepicker.uuid=(new Date).getTime(),a.datepicker.version="1.11.4";a.datepicker;a.widget("ui.draggable",a.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(a,b){this._super(a,b),"handle"===a&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?void(this.destroyOnClear=!0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),void this._mouseDestroy())},_mouseCapture:function(b){var c=this.options;return this._blurActiveElement(b),this.helper||c.disabled||a(b.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(b),this.handle?(this._blockFrames(c.iframeFix===!0?"iframe":c.iframeFix),!0):!1)},_blockFrames:function(b){this.iframeBlocks=this.document.find(b).map(function(){var b=a(this);return a("<div>").css("position","absolute").appendTo(b.parent()).outerWidth(b.outerWidth()).outerHeight(b.outerHeight()).offset(b.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(b){var c=this.document[0];if(this.handleElement.is(b.target))try{c.activeElement&&"body"!==c.activeElement.nodeName.toLowerCase()&&a(c.activeElement).blur()}catch(d){}},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===a(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(b),this.originalPosition=this.position=this._generatePosition(b,!1),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this._normalizeRightBottom(),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_refreshOffsets:function(a){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:a.pageX-this.offset.left,top:a.pageY-this.offset.top}},_mouseDrag:function(b,c){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(b,!0),this.positionAbs=this._convertPositionTo("absolute"),!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=this,d=!1;return a.ui.ddmanager&&!this.options.dropBehaviour&&(d=a.ui.ddmanager.drop(this,b)),this.dropped&&(d=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!d||"valid"===this.options.revert&&d||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d)?a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",b)!==!1&&c._clear()}):this._trigger("stop",b)!==!1&&this._clear(),!1},_mouseUp:function(b){return this._unblockFrames(),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),this.handleElement.is(b.target)&&this.element.focus(),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){return this.options.handle?!!a(b.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper),e=d?a(c.helper.apply(this.element[0],[b])):"clone"===c.helper?this.element.clone().removeAttr("id"):this.element;return e.parents("body").length||e.appendTo("parent"===c.appendTo?this.element[0].parentNode:c.appendTo),d&&e[0]===this.element[0]&&this._setPositionRelative(),e[0]===this.element[0]||/(fixed|absolute)/.test(e.css("position"))||e.css("position","absolute"),e},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(b){"string"==typeof b&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_isRootNode:function(a){return/(html|body)/i.test(a.tagName)||a===this.document[0]},_getParentOffset:function(){var b=this.offsetParent.offset(),c=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==c&&a.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(b={top:0,left:0}),{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var a=this.element.position(),b=this._isRootNode(this.scrollParent[0]);return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+(b?0:this.scrollParent.scrollTop()),left:a.left-(parseInt(this.helper.css("left"),10)||0)+(b?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b,c,d,e=this.options,f=this.document[0];return this.relativeContainer=null,e.containment?"window"===e.containment?void(this.containment=[a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,a(window).scrollLeft()+a(window).width()-this.helperProportions.width-this.margins.left,a(window).scrollTop()+(a(window).height()||f.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):"document"===e.containment?void(this.containment=[0,0,a(f).width()-this.helperProportions.width-this.margins.left,(a(f).height()||f.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):e.containment.constructor===Array?void(this.containment=e.containment):("parent"===e.containment&&(e.containment=this.helper[0].parentNode),c=a(e.containment),d=c[0],void(d&&(b=/(scroll|auto)/.test(c.css("overflow")),this.containment=[(parseInt(c.css("borderLeftWidth"),10)||0)+(parseInt(c.css("paddingLeft"),10)||0),(parseInt(c.css("borderTopWidth"),10)||0)+(parseInt(c.css("paddingTop"),10)||0),(b?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(c.css("borderRightWidth"),10)||0)-(parseInt(c.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(b?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(c.css("borderBottomWidth"),10)||0)-(parseInt(c.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=c))):void(this.containment=null)},_convertPositionTo:function(a,b){b||(b=this.position);var c="absolute"===a?1:-1,d=this._isRootNode(this.scrollParent[0]);return{top:b.top+this.offset.relative.top*c+this.offset.parent.top*c-("fixed"===this.cssPosition?-this.offset.scroll.top:d?0:this.offset.scroll.top)*c,left:b.left+this.offset.relative.left*c+this.offset.parent.left*c-("fixed"===this.cssPosition?-this.offset.scroll.left:d?0:this.offset.scroll.left)*c}},_generatePosition:function(a,b){var c,d,e,f,g=this.options,h=this._isRootNode(this.scrollParent[0]),i=a.pageX,j=a.pageY;return h&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),b&&(this.containment&&(this.relativeContainer?(d=this.relativeContainer.offset(),c=[this.containment[0]+d.left,this.containment[1]+d.top,this.containment[2]+d.left,this.containment[3]+d.top]):c=this.containment,a.pageX-this.offset.click.left<c[0]&&(i=c[0]+this.offset.click.left),a.pageY-this.offset.click.top<c[1]&&(j=c[1]+this.offset.click.top),a.pageX-this.offset.click.left>c[2]&&(i=c[2]+this.offset.click.left),a.pageY-this.offset.click.top>c[3]&&(j=c[3]+this.offset.click.top)),g.grid&&(e=g.grid[1]?this.originalPageY+Math.round((j-this.originalPageY)/g.grid[1])*g.grid[1]:this.originalPageY,j=c?e-this.offset.click.top>=c[1]||e-this.offset.click.top>c[3]?e:e-this.offset.click.top>=c[1]?e-g.grid[1]:e+g.grid[1]:e,f=g.grid[0]?this.originalPageX+Math.round((i-this.originalPageX)/g.grid[0])*g.grid[0]:this.originalPageX,i=c?f-this.offset.click.left>=c[0]||f-this.offset.click.left>c[2]?f:f-this.offset.click.left>=c[0]?f-g.grid[0]:f+g.grid[0]:f),"y"===g.axis&&(i=this.originalPageX),"x"===g.axis&&(j=this.originalPageY)),{top:j-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:h?0:this.offset.scroll.top),left:i-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:h?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(b,c,d){return d=d||this._uiHash(),a.ui.plugin.call(this,b,[c,d,this],!0),/^(drag|start|stop)/.test(b)&&(this.positionAbs=this._convertPositionTo("absolute"),d.offset=this.positionAbs),a.Widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),a.ui.plugin.add("draggable","connectToSortable",{start:function(b,c,d){var e=a.extend({},c,{item:d.element});d.sortables=[],a(d.options.connectToSortable).each(function(){var c=a(this).sortable("instance");c&&!c.options.disabled&&(d.sortables.push(c),c.refreshPositions(),c._trigger("activate",b,e))})},stop:function(b,c,d){var e=a.extend({},c,{item:d.element});d.cancelHelperRemoval=!1,a.each(d.sortables,function(){var a=this;a.isOver?(a.isOver=0,d.cancelHelperRemoval=!0,a.cancelHelperRemoval=!1,a._storedCSS={position:a.placeholder.css("position"),top:a.placeholder.css("top"),left:a.placeholder.css("left")},a._mouseStop(b),a.options.helper=a.options._helper):(a.cancelHelperRemoval=!0,a._trigger("deactivate",b,e))})},drag:function(b,c,d){a.each(d.sortables,function(){var e=!1,f=this;f.positionAbs=d.positionAbs,f.helperProportions=d.helperProportions,f.offset.click=d.offset.click,f._intersectsWith(f.containerCache)&&(e=!0,a.each(d.sortables,function(){return this.positionAbs=d.positionAbs,this.helperProportions=d.helperProportions,this.offset.click=d.offset.click,this!==f&&this._intersectsWith(this.containerCache)&&a.contains(f.element[0],this.element[0])&&(e=!1),e})),e?(f.isOver||(f.isOver=1,d._parent=c.helper.parent(),f.currentItem=c.helper.appendTo(f.element).data("ui-sortable-item",!0),f.options._helper=f.options.helper,f.options.helper=function(){return c.helper[0]},b.target=f.currentItem[0],f._mouseCapture(b,!0),f._mouseStart(b,!0,!0),f.offset.click.top=d.offset.click.top,f.offset.click.left=d.offset.click.left,f.offset.parent.left-=d.offset.parent.left-f.offset.parent.left,f.offset.parent.top-=d.offset.parent.top-f.offset.parent.top,d._trigger("toSortable",b),d.dropped=f.element,a.each(d.sortables,function(){this.refreshPositions()}),d.currentItem=d.element,f.fromOutside=d),f.currentItem&&(f._mouseDrag(b),c.position=f.position)):f.isOver&&(f.isOver=0,f.cancelHelperRemoval=!0,f.options._revert=f.options.revert,f.options.revert=!1,f._trigger("out",b,f._uiHash(f)),f._mouseStop(b,!0),f.options.revert=f.options._revert,f.options.helper=f.options._helper,f.placeholder&&f.placeholder.remove(),c.helper.appendTo(d._parent),d._refreshOffsets(b),c.position=d._generatePosition(b,!0),d._trigger("fromSortable",b),d.dropped=!1,a.each(d.sortables,function(){this.refreshPositions()}))})}}),a.ui.plugin.add("draggable","cursor",{start:function(b,c,d){var e=a("body"),f=d.options;e.css("cursor")&&(f._cursor=e.css("cursor")),e.css("cursor",f.cursor)},stop:function(b,c,d){var e=d.options;e._cursor&&a("body").css("cursor",e._cursor)}}),a.ui.plugin.add("draggable","opacity",{start:function(b,c,d){var e=a(c.helper),f=d.options;e.css("opacity")&&(f._opacity=e.css("opacity")),e.css("opacity",f.opacity)},stop:function(b,c,d){var e=d.options;e._opacity&&a(c.helper).css("opacity",e._opacity)}}),a.ui.plugin.add("draggable","scroll",{start:function(a,b,c){c.scrollParentNotHidden||(c.scrollParentNotHidden=c.helper.scrollParent(!1)),c.scrollParentNotHidden[0]!==c.document[0]&&"HTML"!==c.scrollParentNotHidden[0].tagName&&(c.overflowOffset=c.scrollParentNotHidden.offset())},drag:function(b,c,d){var e=d.options,f=!1,g=d.scrollParentNotHidden[0],h=d.document[0];g!==h&&"HTML"!==g.tagName?(e.axis&&"x"===e.axis||(d.overflowOffset.top+g.offsetHeight-b.pageY<e.scrollSensitivity?g.scrollTop=f=g.scrollTop+e.scrollSpeed:b.pageY-d.overflowOffset.top<e.scrollSensitivity&&(g.scrollTop=f=g.scrollTop-e.scrollSpeed)),e.axis&&"y"===e.axis||(d.overflowOffset.left+g.offsetWidth-b.pageX<e.scrollSensitivity?g.scrollLeft=f=g.scrollLeft+e.scrollSpeed:b.pageX-d.overflowOffset.left<e.scrollSensitivity&&(g.scrollLeft=f=g.scrollLeft-e.scrollSpeed))):(e.axis&&"x"===e.axis||(b.pageY-a(h).scrollTop()<e.scrollSensitivity?f=a(h).scrollTop(a(h).scrollTop()-e.scrollSpeed):a(window).height()-(b.pageY-a(h).scrollTop())<e.scrollSensitivity&&(f=a(h).scrollTop(a(h).scrollTop()+e.scrollSpeed))),e.axis&&"y"===e.axis||(b.pageX-a(h).scrollLeft()<e.scrollSensitivity?f=a(h).scrollLeft(a(h).scrollLeft()-e.scrollSpeed):a(window).width()-(b.pageX-a(h).scrollLeft())<e.scrollSensitivity&&(f=a(h).scrollLeft(a(h).scrollLeft()+e.scrollSpeed)))),f!==!1&&a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(d,b)}}),a.ui.plugin.add("draggable","snap",{start:function(b,c,d){var e=d.options;d.snapElements=[],a(e.snap.constructor!==String?e.snap.items||":data(ui-draggable)":e.snap).each(function(){var b=a(this),c=b.offset();this!==d.element[0]&&d.snapElements.push({item:this,width:b.outerWidth(),height:b.outerHeight(),top:c.top,left:c.left})})},drag:function(b,c,d){var e,f,g,h,i,j,k,l,m,n,o=d.options,p=o.snapTolerance,q=c.offset.left,r=q+d.helperProportions.width,s=c.offset.top,t=s+d.helperProportions.height;for(m=d.snapElements.length-1;m>=0;m--)i=d.snapElements[m].left-d.margins.left,j=i+d.snapElements[m].width,k=d.snapElements[m].top-d.margins.top,l=k+d.snapElements[m].height,i-p>r||q>j+p||k-p>t||s>l+p||!a.contains(d.snapElements[m].item.ownerDocument,d.snapElements[m].item)?(d.snapElements[m].snapping&&d.options.snap.release&&d.options.snap.release.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[m].item})),d.snapElements[m].snapping=!1):("inner"!==o.snapMode&&(e=Math.abs(k-t)<=p,f=Math.abs(l-s)<=p,g=Math.abs(i-r)<=p,h=Math.abs(j-q)<=p,e&&(c.position.top=d._convertPositionTo("relative",{top:k-d.helperProportions.height,left:0}).top),f&&(c.position.top=d._convertPositionTo("relative",{top:l,left:0}).top),g&&(c.position.left=d._convertPositionTo("relative",{top:0,left:i-d.helperProportions.width}).left),h&&(c.position.left=d._convertPositionTo("relative",{top:0,left:j}).left)),n=e||f||g||h,"outer"!==o.snapMode&&(e=Math.abs(k-s)<=p,f=Math.abs(l-t)<=p,g=Math.abs(i-q)<=p,h=Math.abs(j-r)<=p,e&&(c.position.top=d._convertPositionTo("relative",{top:k,left:0}).top),f&&(c.position.top=d._convertPositionTo("relative",{top:l-d.helperProportions.height,left:0}).top),g&&(c.position.left=d._convertPositionTo("relative",{top:0,left:i}).left),h&&(c.position.left=d._convertPositionTo("relative",{top:0,left:j-d.helperProportions.width}).left)),!d.snapElements[m].snapping&&(e||f||g||h||n)&&d.options.snap.snap&&d.options.snap.snap.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[m].item})),d.snapElements[m].snapping=e||f||g||h||n)}}),a.ui.plugin.add("draggable","stack",{start:function(b,c,d){var e,f=d.options,g=a.makeArray(a(f.stack)).sort(function(b,c){return(parseInt(a(b).css("zIndex"),10)||0)-(parseInt(a(c).css("zIndex"),10)||0)});g.length&&(e=parseInt(a(g[0]).css("zIndex"),10)||0,a(g).each(function(b){a(this).css("zIndex",e+b)}),this.css("zIndex",e+g.length))}}),a.ui.plugin.add("draggable","zIndex",{start:function(b,c,d){var e=a(c.helper),f=d.options;e.css("zIndex")&&(f._zIndex=e.css("zIndex")),e.css("zIndex",f.zIndex)},stop:function(b,c,d){var e=d.options;e._zIndex&&a(c.helper).css("zIndex",e._zIndex)}});a.ui.draggable;a.widget("ui.resizable",a.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(a){return parseInt(a,10)||0},_isNumber:function(a){return!isNaN(parseInt(a,10))},_hasScroll:function(b,c){if("hidden"===a(b).css("overflow"))return!1;var d=c&&"left"===c?"scrollLeft":"scrollTop",e=!1;return b[d]>0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},_create:function(){var b,c,d,e,f,g=this,h=this.options;if(this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!h.aspectRatio,aspectRatio:h.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:h.helper||h.ghost||h.animate?h.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(a("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=h.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=a(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),b=this.handles.split(","),this.handles={},c=0;c<b.length;c++)d=a.trim(b[c]),f="ui-resizable-"+d,e=a("<div class='ui-resizable-handle "+f+"'></div>"),e.css({zIndex:h.zIndex}),"se"===d&&e.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[d]=".ui-resizable-"+d,this.element.append(e);this._renderAxis=function(b){var c,d,e,f;b=b||this.element;for(c in this.handles)this.handles[c].constructor===String?this.handles[c]=this.element.children(this.handles[c]).first().show():(this.handles[c].jquery||this.handles[c].nodeType)&&(this.handles[c]=a(this.handles[c]),this._on(this.handles[c],{mousedown:g._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(d=a(this.handles[c],this.element),f=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth(),e=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join(""),b.css(e,f),this._proportionallyResize()),this._handles=this._handles.add(this.handles[c])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.mouseover(function(){g.resizing||(this.className&&(e=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),g.axis=e&&e[1]?e[1]:"se")}),h.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").mouseenter(function(){h.disabled||(a(this).removeClass("ui-resizable-autohide"),g._handles.show())}).mouseleave(function(){h.disabled||g.resizing||(a(this).addClass("ui-resizable-autohide"),g._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var b,c=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(c(this.element),b=this.element,this.originalElement.css({position:b.css("position"),width:b.outerWidth(),height:b.outerHeight(),top:b.css("top"),left:b.css("left")}).insertAfter(b),b.remove()),this.originalElement.css("resize",this.originalResizeStyle),c(this.originalElement),this},_mouseCapture:function(b){var c,d,e=!1;for(c in this.handles)d=a(this.handles[c])[0],(d===b.target||a.contains(d,b.target))&&(e=!0);return!this.options.disabled&&e},_mouseStart:function(b){var c,d,e,f=this.options,g=this.element;return this.resizing=!0,this._renderProxy(),c=this._num(this.helper.css("left")),d=this._num(this.helper.css("top")),f.containment&&(c+=a(f.containment).scrollLeft()||0,d+=a(f.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:c,top:d},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:g.width(),height:g.height()},this.originalSize=this._helper?{width:g.outerWidth(),height:g.outerHeight()}:{width:g.width(),height:g.height()},this.sizeDiff={width:g.outerWidth()-g.width(),height:g.outerHeight()-g.height()},this.originalPosition={left:c,top:d},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio="number"==typeof f.aspectRatio?f.aspectRatio:this.originalSize.width/this.originalSize.height||1,e=a(".ui-resizable-"+this.axis).css("cursor"),a("body").css("cursor","auto"===e?this.axis+"-resize":e),g.addClass("ui-resizable-resizing"),this._propagate("start",b),!0},_mouseDrag:function(b){var c,d,e=this.originalMousePosition,f=this.axis,g=b.pageX-e.left||0,h=b.pageY-e.top||0,i=this._change[f];return this._updatePrevProperties(),i?(c=i.apply(this,[b,g,h]),this._updateVirtualBoundaries(b.shiftKey),(this._aspectRatio||b.shiftKey)&&(c=this._updateRatio(c,b)),c=this._respectSize(c,b),this._updateCache(c),this._propagate("resize",b),d=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),a.isEmptyObject(d)||(this._updatePrevProperties(),this._trigger("resize",b,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(b){this.resizing=!1;var c,d,e,f,g,h,i,j=this.options,k=this;return this._helper&&(c=this._proportionallyResizeElements,d=c.length&&/textarea/i.test(c[0].nodeName),e=d&&this._hasScroll(c[0],"left")?0:k.sizeDiff.height,f=d?0:k.sizeDiff.width,g={width:k.helper.width()-f,height:k.helper.height()-e},h=parseInt(k.element.css("left"),10)+(k.position.left-k.originalPosition.left)||null,i=parseInt(k.element.css("top"),10)+(k.position.top-k.originalPosition.top)||null,j.animate||this.element.css(a.extend(g,{top:i,left:h})),k.helper.height(k.size.height),k.helper.width(k.size.width),this._helper&&!j.animate&&this._proportionallyResize()),a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var a={};return this.position.top!==this.prevPosition.top&&(a.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(a.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(a.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(a.height=this.size.height+"px"),this.helper.css(a),a},_updateVirtualBoundaries:function(a){var b,c,d,e,f,g=this.options;f={minWidth:this._isNumber(g.minWidth)?g.minWidth:0,maxWidth:this._isNumber(g.maxWidth)?g.maxWidth:1/0,minHeight:this._isNumber(g.minHeight)?g.minHeight:0,maxHeight:this._isNumber(g.maxHeight)?g.maxHeight:1/0},(this._aspectRatio||a)&&(b=f.minHeight*this.aspectRatio,d=f.minWidth/this.aspectRatio,c=f.maxHeight*this.aspectRatio,e=f.maxWidth/this.aspectRatio,b>f.minWidth&&(f.minWidth=b),d>f.minHeight&&(f.minHeight=d),c<f.maxWidth&&(f.maxWidth=c),e<f.maxHeight&&(f.maxHeight=e)),this._vBoundaries=f},_updateCache:function(a){this.offset=this.helper.offset(),this._isNumber(a.left)&&(this.position.left=a.left),this._isNumber(a.top)&&(this.position.top=a.top),this._isNumber(a.height)&&(this.size.height=a.height),this._isNumber(a.width)&&(this.size.width=a.width)},_updateRatio:function(a){var b=this.position,c=this.size,d=this.axis;return this._isNumber(a.height)?a.width=a.height*this.aspectRatio:this._isNumber(a.width)&&(a.height=a.width/this.aspectRatio),"sw"===d&&(a.left=b.left+(c.width-a.width),a.top=null),"nw"===d&&(a.top=b.top+(c.height-a.height),a.left=b.left+(c.width-a.width)),a},_respectSize:function(a){var b=this._vBoundaries,c=this.axis,d=this._isNumber(a.width)&&b.maxWidth&&b.maxWidth<a.width,e=this._isNumber(a.height)&&b.maxHeight&&b.maxHeight<a.height,f=this._isNumber(a.width)&&b.minWidth&&b.minWidth>a.width,g=this._isNumber(a.height)&&b.minHeight&&b.minHeight>a.height,h=this.originalPosition.left+this.originalSize.width,i=this.position.top+this.size.height,j=/sw|nw|w/.test(c),k=/nw|ne|n/.test(c);return f&&(a.width=b.minWidth),g&&(a.height=b.minHeight),d&&(a.width=b.maxWidth),e&&(a.height=b.maxHeight),f&&j&&(a.left=h-b.minWidth),d&&j&&(a.left=h-b.maxWidth),g&&k&&(a.top=i-b.minHeight),e&&k&&(a.top=i-b.maxHeight),a.width||a.height||a.left||!a.top?a.width||a.height||a.top||!a.left||(a.left=null):a.top=null,a},_getPaddingPlusBorderDimensions:function(a){
+for(var b=0,c=[],d=[a.css("borderTopWidth"),a.css("borderRightWidth"),a.css("borderBottomWidth"),a.css("borderLeftWidth")],e=[a.css("paddingTop"),a.css("paddingRight"),a.css("paddingBottom"),a.css("paddingLeft")];4>b;b++)c[b]=parseInt(d[b],10)||0,c[b]+=parseInt(e[b],10)||0;return{height:c[0]+c[2],width:c[1]+c[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var a,b=0,c=this.helper||this.element;b<this._proportionallyResizeElements.length;b++)a=this._proportionallyResizeElements[b],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(a)),a.css({height:c.height()-this.outerDimensions.height||0,width:c.width()-this.outerDimensions.width||0})},_renderProxy:function(){var b=this.element,c=this.options;this.elementOffset=b.offset(),this._helper?(this.helper=this.helper||a("<div style='overflow:hidden;'></div>"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(a,b){return{width:this.originalSize.width+b}},w:function(a,b){var c=this.originalSize,d=this.originalPosition;return{left:d.left+b,width:c.width-b}},n:function(a,b,c){var d=this.originalSize,e=this.originalPosition;return{top:e.top+c,height:d.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),"resize"!==b&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.ui.plugin.add("resizable","animate",{stop:function(b){var c=a(this).resizable("instance"),d=c.options,e=c._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&c._hasScroll(e[0],"left")?0:c.sizeDiff.height,h=f?0:c.sizeDiff.width,i={width:c.size.width-h,height:c.size.height-g},j=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null,k=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;c.element.animate(a.extend(i,k&&j?{top:k,left:j}:{}),{duration:d.animateDuration,easing:d.animateEasing,step:function(){var d={width:parseInt(c.element.css("width"),10),height:parseInt(c.element.css("height"),10),top:parseInt(c.element.css("top"),10),left:parseInt(c.element.css("left"),10)};e&&e.length&&a(e[0]).css({width:d.width,height:d.height}),c._updateCache(d),c._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(){var b,c,d,e,f,g,h,i=a(this).resizable("instance"),j=i.options,k=i.element,l=j.containment,m=l instanceof a?l.get(0):/parent/.test(l)?k.parent().get(0):l;m&&(i.containerElement=a(m),/document/.test(l)||l===document?(i.containerOffset={left:0,top:0},i.containerPosition={left:0,top:0},i.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight}):(b=a(m),c=[],a(["Top","Right","Left","Bottom"]).each(function(a,d){c[a]=i._num(b.css("padding"+d))}),i.containerOffset=b.offset(),i.containerPosition=b.position(),i.containerSize={height:b.innerHeight()-c[3],width:b.innerWidth()-c[1]},d=i.containerOffset,e=i.containerSize.height,f=i.containerSize.width,g=i._hasScroll(m,"left")?m.scrollWidth:f,h=i._hasScroll(m)?m.scrollHeight:e,i.parentData={element:m,left:d.left,top:d.top,width:g,height:h}))},resize:function(b){var c,d,e,f,g=a(this).resizable("instance"),h=g.options,i=g.containerOffset,j=g.position,k=g._aspectRatio||b.shiftKey,l={top:0,left:0},m=g.containerElement,n=!0;m[0]!==document&&/static/.test(m.css("position"))&&(l=i),j.left<(g._helper?i.left:0)&&(g.size.width=g.size.width+(g._helper?g.position.left-i.left:g.position.left-l.left),k&&(g.size.height=g.size.width/g.aspectRatio,n=!1),g.position.left=h.helper?i.left:0),j.top<(g._helper?i.top:0)&&(g.size.height=g.size.height+(g._helper?g.position.top-i.top:g.position.top),k&&(g.size.width=g.size.height*g.aspectRatio,n=!1),g.position.top=g._helper?i.top:0),e=g.containerElement.get(0)===g.element.parent().get(0),f=/relative|absolute/.test(g.containerElement.css("position")),e&&f?(g.offset.left=g.parentData.left+g.position.left,g.offset.top=g.parentData.top+g.position.top):(g.offset.left=g.element.offset().left,g.offset.top=g.element.offset().top),c=Math.abs(g.sizeDiff.width+(g._helper?g.offset.left-l.left:g.offset.left-i.left)),d=Math.abs(g.sizeDiff.height+(g._helper?g.offset.top-l.top:g.offset.top-i.top)),c+g.size.width>=g.parentData.width&&(g.size.width=g.parentData.width-c,k&&(g.size.height=g.size.width/g.aspectRatio,n=!1)),d+g.size.height>=g.parentData.height&&(g.size.height=g.parentData.height-d,k&&(g.size.width=g.size.height*g.aspectRatio,n=!1)),n||(g.position.left=g.prevPosition.left,g.position.top=g.prevPosition.top,g.size.width=g.prevSize.width,g.size.height=g.prevSize.height)},stop:function(){var b=a(this).resizable("instance"),c=b.options,d=b.containerOffset,e=b.containerPosition,f=b.containerElement,g=a(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width,j=g.outerHeight()-b.sizeDiff.height;b._helper&&!c.animate&&/relative/.test(f.css("position"))&&a(this).css({left:h.left-e.left-d.left,width:i,height:j}),b._helper&&!c.animate&&/static/.test(f.css("position"))&&a(this).css({left:h.left-e.left-d.left,width:i,height:j})}}),a.ui.plugin.add("resizable","alsoResize",{start:function(){var b=a(this).resizable("instance"),c=b.options;a(c.alsoResize).each(function(){var b=a(this);b.data("ui-resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})},resize:function(b,c){var d=a(this).resizable("instance"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0};a(e.alsoResize).each(function(){var b=a(this),d=a(this).data("ui-resizable-alsoresize"),e={},f=b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(f,function(a,b){var c=(d[b]||0)+(h[b]||0);c&&c>=0&&(e[b]=c||null)}),b.css(e)})},stop:function(){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","ghost",{start:function(){var b=a(this).resizable("instance"),c=b.options,d=b.size;b.ghost=b.originalElement.clone(),b.ghost.css({opacity:.25,display:"block",position:"relative",height:d.height,width:d.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof c.ghost?c.ghost:""),b.ghost.appendTo(b.helper)},resize:function(){var b=a(this).resizable("instance");b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=a(this).resizable("instance");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(){var b,c=a(this).resizable("instance"),d=c.options,e=c.size,f=c.originalSize,g=c.originalPosition,h=c.axis,i="number"==typeof d.grid?[d.grid,d.grid]:d.grid,j=i[0]||1,k=i[1]||1,l=Math.round((e.width-f.width)/j)*j,m=Math.round((e.height-f.height)/k)*k,n=f.width+l,o=f.height+m,p=d.maxWidth&&d.maxWidth<n,q=d.maxHeight&&d.maxHeight<o,r=d.minWidth&&d.minWidth>n,s=d.minHeight&&d.minHeight>o;d.grid=i,r&&(n+=j),s&&(o+=k),p&&(n-=j),q&&(o-=k),/^(se|s|e)$/.test(h)?(c.size.width=n,c.size.height=o):/^(ne)$/.test(h)?(c.size.width=n,c.size.height=o,c.position.top=g.top-m):/^(sw)$/.test(h)?(c.size.width=n,c.size.height=o,c.position.left=g.left-l):((0>=o-k||0>=n-j)&&(b=c._getPaddingPlusBorderDimensions(this)),o-k>0?(c.size.height=o,c.position.top=g.top-m):(o=k-b.height,c.size.height=o,c.position.top=g.top+f.height-o),n-j>0?(c.size.width=n,c.position.left=g.left-l):(n=j-b.width,c.size.width=n,c.position.left=g.left+f.width-n))}});a.ui.resizable,a.widget("ui.dialog",{version:"1.11.4",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"Close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(b){var c=a(this).css(b).offset().top;0>c&&a(this).css("top",b.top-c)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&a.fn.draggable&&this._makeDraggable(),this.options.resizable&&a.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var b=this.options.appendTo;return b&&(b.jquery||b.nodeType)?a(b):this.document.find(b||"body").eq(0)},_destroy:function(){var a,b=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),a=b.parent.children().eq(b.index),a.length&&a[0]!==this.element[0]?a.before(this.element):b.parent.append(this.element)},widget:function(){return this.uiDialog},disable:a.noop,enable:a.noop,close:function(b){var c,d=this;if(this._isOpen&&this._trigger("beforeClose",b)!==!1){if(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),!this.opener.filter(":focusable").focus().length)try{c=this.document[0].activeElement,c&&"body"!==c.nodeName.toLowerCase()&&a(c).blur()}catch(e){}this._hide(this.uiDialog,this.options.hide,function(){d._trigger("close",b)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(b,c){var d=!1,e=this.uiDialog.siblings(".ui-front:visible").map(function(){return+a(this).css("z-index")}).get(),f=Math.max.apply(null,e);return f>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",f+1),d=!0),d&&!c&&this._trigger("focus",b),d},open:function(){var b=this;return this._isOpen?void(this._moveToTop()&&this._focusTabbable()):(this._isOpen=!0,this.opener=a(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){b._focusTabbable(),b._trigger("focus")}),this._makeFocusTarget(),void this._trigger("open"))},_focusTabbable:function(){var a=this._focusedElement;a||(a=this.element.find("[autofocus]")),a.length||(a=this.element.find(":tabbable")),a.length||(a=this.uiDialogButtonPane.find(":tabbable")),a.length||(a=this.uiDialogTitlebarClose.filter(":tabbable")),a.length||(a=this.uiDialog),a.eq(0).focus()},_keepFocus:function(b){function c(){var b=this.document[0].activeElement,c=this.uiDialog[0]===b||a.contains(this.uiDialog[0],b);c||this._focusTabbable()}b.preventDefault(),c.call(this),this._delay(c)},_createWrapper:function(){this.uiDialog=a("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(b){if(this.options.closeOnEscape&&!b.isDefaultPrevented()&&b.keyCode&&b.keyCode===a.ui.keyCode.ESCAPE)return b.preventDefault(),void this.close(b);if(b.keyCode===a.ui.keyCode.TAB&&!b.isDefaultPrevented()){var c=this.uiDialog.find(":tabbable"),d=c.filter(":first"),e=c.filter(":last");b.target!==e[0]&&b.target!==this.uiDialog[0]||b.shiftKey?b.target!==d[0]&&b.target!==this.uiDialog[0]||!b.shiftKey||(this._delay(function(){e.focus()}),b.preventDefault()):(this._delay(function(){d.focus()}),b.preventDefault())}},mousedown:function(a){this._moveToTop(a)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var b;this.uiDialogTitlebar=a("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(b){a(b.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=a("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(a){a.preventDefault(),this.close(a)}}),b=a("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(b),this.uiDialog.attr({"aria-labelledby":b.attr("id")})},_title:function(a){this.options.title||a.html("&#160;"),a.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=a("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=a("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var b=this,c=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),a.isEmptyObject(c)||a.isArray(c)&&!c.length?void this.uiDialog.removeClass("ui-dialog-buttons"):(a.each(c,function(c,d){var e,f;d=a.isFunction(d)?{click:d,text:c}:d,d=a.extend({type:"button"},d),e=d.click,d.click=function(){e.apply(b.element[0],arguments)},f={icons:d.icons,text:d.showText},delete d.icons,delete d.showText,a("<button></button>",d).button(f).appendTo(b.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),void this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){function b(a){return{position:a.position,offset:a.offset}}var c=this,d=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,e){a(this).addClass("ui-dialog-dragging"),c._blockFrames(),c._trigger("dragStart",d,b(e))},drag:function(a,d){c._trigger("drag",a,b(d))},stop:function(e,f){var g=f.offset.left-c.document.scrollLeft(),h=f.offset.top-c.document.scrollTop();d.position={my:"left top",at:"left"+(g>=0?"+":"")+g+" top"+(h>=0?"+":"")+h,of:c.window},a(this).removeClass("ui-dialog-dragging"),c._unblockFrames(),c._trigger("dragStop",e,b(f))}})},_makeResizable:function(){function b(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.position,size:a.size}}var c=this,d=this.options,e=d.resizable,f=this.uiDialog.css("position"),g="string"==typeof e?e:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:d.maxWidth,maxHeight:d.maxHeight,minWidth:d.minWidth,minHeight:this._minHeight(),handles:g,start:function(d,e){a(this).addClass("ui-dialog-resizing"),c._blockFrames(),c._trigger("resizeStart",d,b(e))},resize:function(a,d){c._trigger("resize",a,b(d))},stop:function(e,f){var g=c.uiDialog.offset(),h=g.left-c.document.scrollLeft(),i=g.top-c.document.scrollTop();d.height=c.uiDialog.height(),d.width=c.uiDialog.width(),d.position={my:"left top",at:"left"+(h>=0?"+":"")+h+" top"+(i>=0?"+":"")+i,of:c.window},a(this).removeClass("ui-dialog-resizing"),c._unblockFrames(),c._trigger("resizeStop",e,b(f))}}).css("position",f)},_trackFocus:function(){this._on(this.widget(),{focusin:function(b){this._makeFocusTarget(),this._focusedElement=a(b.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var b=this._trackingInstances(),c=a.inArray(this,b);-1!==c&&b.splice(c,1)},_trackingInstances:function(){var a=this.document.data("ui-dialog-instances");return a||(a=[],this.document.data("ui-dialog-instances",a)),a},_minHeight:function(){var a=this.options;return"auto"===a.height?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(){var a=this.uiDialog.is(":visible");a||this.uiDialog.show(),this.uiDialog.position(this.options.position),a||this.uiDialog.hide()},_setOptions:function(b){var c=this,d=!1,e={};a.each(b,function(a,b){c._setOption(a,b),a in c.sizeRelatedOptions&&(d=!0),a in c.resizableRelatedOptions&&(e[a]=b)}),d&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",e)},_setOption:function(a,b){var c,d,e=this.uiDialog;"dialogClass"===a&&e.removeClass(this.options.dialogClass).addClass(b),"disabled"!==a&&(this._super(a,b),"appendTo"===a&&this.uiDialog.appendTo(this._appendTo()),"buttons"===a&&this._createButtons(),"closeText"===a&&this.uiDialogTitlebarClose.button({label:""+b}),"draggable"===a&&(c=e.is(":data(ui-draggable)"),c&&!b&&e.draggable("destroy"),!c&&b&&this._makeDraggable()),"position"===a&&this._position(),"resizable"===a&&(d=e.is(":data(ui-resizable)"),d&&!b&&e.resizable("destroy"),d&&"string"==typeof b&&e.resizable("option","handles",b),d||b===!1||this._makeResizable()),"title"===a&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var a,b,c,d=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),d.minWidth>d.width&&(d.width=d.minWidth),a=this.uiDialog.css({height:"auto",width:d.width}).outerHeight(),b=Math.max(0,d.minHeight-a),c="number"==typeof d.maxHeight?Math.max(0,d.maxHeight-a):"none","auto"===d.height?this.element.css({minHeight:b,maxHeight:c,height:"auto"}):this.element.height(Math.max(0,d.height-a)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var b=a(this);return a("<div>").css({position:"absolute",width:b.outerWidth(),height:b.outerHeight()}).appendTo(b.parent()).offset(b.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(b){return a(b.target).closest(".ui-dialog").length?!0:!!a(b.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var b=!0;this._delay(function(){b=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(a){b||this._allowInteraction(a)||(a.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=a("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var a=this.document.data("ui-dialog-overlays")-1;a?this.document.data("ui-dialog-overlays",a):this.document.unbind("focusin").removeData("ui-dialog-overlays"),this.overlay.remove(),this.overlay=null}}});a.widget("ui.droppable",{version:"1.11.4",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var b,c=this.options,d=c.accept;this.isover=!1,this.isout=!0,this.accept=a.isFunction(d)?d:function(a){return a.is(d)},this.proportions=function(){return arguments.length?void(b=arguments[0]):b?b:b={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(c.scope),c.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(b){a.ui.ddmanager.droppables[b]=a.ui.ddmanager.droppables[b]||[],a.ui.ddmanager.droppables[b].push(this)},_splice:function(a){for(var b=0;b<a.length;b++)a[b]===this&&a.splice(b,1)},_destroy:function(){var b=a.ui.ddmanager.droppables[this.options.scope];this._splice(b),this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(b,c){if("accept"===b)this.accept=a.isFunction(c)?c:function(a){return a.is(c)};else if("scope"===b){var d=a.ui.ddmanager.droppables[this.options.scope];this._splice(d),this._addToManager(c)}this._super(b,c)},_activate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),c&&this._trigger("activate",b,this.ui(c))},_deactivate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),c&&this._trigger("deactivate",b,this.ui(c))},_over:function(b){var c=a.ui.ddmanager.current;c&&(c.currentItem||c.element)[0]!==this.element[0]&&this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",b,this.ui(c)))},_out:function(b){var c=a.ui.ddmanager.current;c&&(c.currentItem||c.element)[0]!==this.element[0]&&this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",b,this.ui(c)))},_drop:function(b,c){var d=c||a.ui.ddmanager.current,e=!1;return d&&(d.currentItem||d.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var c=a(this).droppable("instance");return c.options.greedy&&!c.options.disabled&&c.options.scope===d.options.scope&&c.accept.call(c.element[0],d.currentItem||d.element)&&a.ui.intersect(d,a.extend(c,{offset:c.element.offset()}),c.options.tolerance,b)?(e=!0,!1):void 0}),e?!1:this.accept.call(this.element[0],d.currentItem||d.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",b,this.ui(d)),this.element):!1):!1},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}}),a.ui.intersect=function(){function a(a,b,c){return a>=b&&b+c>a}return function(b,c,d,e){if(!c.offset)return!1;var f=(b.positionAbs||b.position.absolute).left+b.margins.left,g=(b.positionAbs||b.position.absolute).top+b.margins.top,h=f+b.helperProportions.width,i=g+b.helperProportions.height,j=c.offset.left,k=c.offset.top,l=j+c.proportions().width,m=k+c.proportions().height;switch(d){case"fit":return f>=j&&l>=h&&g>=k&&m>=i;case"intersect":return j<f+b.helperProportions.width/2&&h-b.helperProportions.width/2<l&&k<g+b.helperProportions.height/2&&i-b.helperProportions.height/2<m;case"pointer":return a(e.pageY,k,c.proportions().height)&&a(e.pageX,j,c.proportions().width);case"touch":return(g>=k&&m>=g||i>=k&&m>=i||k>g&&i>m)&&(f>=j&&l>=f||h>=j&&l>=h||j>f&&h>l);default:return!1}}}(),a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d,e,f=a.ui.ddmanager.droppables[b.options.scope]||[],g=c?c.type:null,h=(b.currentItem||b.element).find(":data(ui-droppable)").addBack();a:for(d=0;d<f.length;d++)if(!(f[d].options.disabled||b&&!f[d].accept.call(f[d].element[0],b.currentItem||b.element))){for(e=0;e<h.length;e++)if(h[e]===f[d].element[0]){f[d].proportions().height=0;continue a}f[d].visible="none"!==f[d].element.css("display"),f[d].visible&&("mousedown"===g&&f[d]._activate.call(f[d],c),f[d].offset=f[d].element.offset(),f[d].proportions({width:f[d].element[0].offsetWidth,height:f[d].element[0].offsetHeight}))}},drop:function(b,c){var d=!1;return a.each((a.ui.ddmanager.droppables[b.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&a.ui.intersect(b,this,this.options.tolerance,c)&&(d=this._drop.call(this,c)||d),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],b.currentItem||b.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,c)))}),d},dragStart:function(b,c){b.element.parentsUntil("body").bind("scroll.droppable",function(){b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)})},drag:function(b,c){b.options.refreshPositions&&a.ui.ddmanager.prepareOffsets(b,c),a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var d,e,f,g=a.ui.intersect(b,this,this.options.tolerance,c),h=!g&&this.isover?"isout":g&&!this.isover?"isover":null;h&&(this.options.greedy&&(e=this.options.scope,f=this.element.parents(":data(ui-droppable)").filter(function(){return a(this).droppable("instance").options.scope===e}),f.length&&(d=a(f[0]).droppable("instance"),d.greedyChild="isover"===h)),d&&"isover"===h&&(d.isover=!1,d.isout=!0,d._out.call(d,c)),this[h]=!0,this["isout"===h?"isover":"isout"]=!1,this["isover"===h?"_over":"_out"].call(this,c),d&&"isout"===h&&(d.isout=!1,d.isover=!0,d._over.call(d,c)))}})},dragStop:function(b,c){b.element.parentsUntil("body").unbind("scroll.droppable"),b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)}};var s=(a.ui.droppable,"ui-effects-"),t=a;a.effects={effect:{}},function(a,b){function c(a,b,c){var d=l[b.type]||{};return null==a?c||!b.def?null:b.def:(a=d.floor?~~a:parseFloat(a),isNaN(a)?b.def:d.mod?(a+d.mod)%d.mod:0>a?0:d.max<a?d.max:a)}function d(b){var c=j(),d=c._rgba=[];return b=b.toLowerCase(),o(i,function(a,e){var f,g=e.re.exec(b),h=g&&e.parse(g),i=e.space||"rgba";return h?(f=c[i](h),c[k[i].cache]=f[k[i].cache],d=c._rgba=f._rgba,!1):void 0}),d.length?("0,0,0,0"===d.join()&&a.extend(d,f.transparent),c):f[b]}function e(a,b,c){return c=(c+1)%1,1>6*c?a+(b-a)*c*6:1>2*c?b:2>3*c?a+(b-a)*(2/3-c)*6:a}var f,g="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",h=/^([\-+])=\s*(\d+\.?\d*)/,i=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(a){return[a[1],a[2],a[3],a[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(a){return[2.55*a[1],2.55*a[2],2.55*a[3],a[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(a){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(a){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(a){return[a[1],a[2]/100,a[3]/100,a[4]]}}],j=a.Color=function(b,c,d,e){return new a.Color.fn.parse(b,c,d,e)},k={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},l={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},m=j.support={},n=a("<p>")[0],o=a.each;n.style.cssText="background-color:rgba(1,1,1,.5)",m.rgba=n.style.backgroundColor.indexOf("rgba")>-1,o(k,function(a,b){b.cache="_"+a,b.props.alpha={idx:3,type:"percent",def:1}}),j.fn=a.extend(j.prototype,{parse:function(e,g,h,i){if(e===b)return this._rgba=[null,null,null,null],this;(e.jquery||e.nodeType)&&(e=a(e).css(g),g=b);var l=this,m=a.type(e),n=this._rgba=[];return g!==b&&(e=[e,g,h,i],m="array"),"string"===m?this.parse(d(e)||f._default):"array"===m?(o(k.rgba.props,function(a,b){n[b.idx]=c(e[b.idx],b)}),this):"object"===m?(e instanceof j?o(k,function(a,b){e[b.cache]&&(l[b.cache]=e[b.cache].slice())}):o(k,function(b,d){var f=d.cache;o(d.props,function(a,b){if(!l[f]&&d.to){if("alpha"===a||null==e[a])return;l[f]=d.to(l._rgba)}l[f][b.idx]=c(e[a],b,!0)}),l[f]&&a.inArray(null,l[f].slice(0,3))<0&&(l[f][3]=1,d.from&&(l._rgba=d.from(l[f])))}),this):void 0},is:function(a){var b=j(a),c=!0,d=this;return o(k,function(a,e){var f,g=b[e.cache];return g&&(f=d[e.cache]||e.to&&e.to(d._rgba)||[],o(e.props,function(a,b){return null!=g[b.idx]?c=g[b.idx]===f[b.idx]:void 0})),c}),c},_space:function(){var a=[],b=this;return o(k,function(c,d){b[d.cache]&&a.push(c)}),a.pop()},transition:function(a,b){var d=j(a),e=d._space(),f=k[e],g=0===this.alpha()?j("transparent"):this,h=g[f.cache]||f.to(g._rgba),i=h.slice();return d=d[f.cache],o(f.props,function(a,e){var f=e.idx,g=h[f],j=d[f],k=l[e.type]||{};null!==j&&(null===g?i[f]=j:(k.mod&&(j-g>k.mod/2?g+=k.mod:g-j>k.mod/2&&(g-=k.mod)),i[f]=c((j-g)*b+g,e)))}),this[e](i)},blend:function(b){if(1===this._rgba[3])return this;var c=this._rgba.slice(),d=c.pop(),e=j(b)._rgba;return j(a.map(c,function(a,b){return(1-d)*e[b]+d*a}))},toRgbaString:function(){var b="rgba(",c=a.map(this._rgba,function(a,b){return null==a?b>2?1:0:a});return 1===c[3]&&(c.pop(),b="rgb("),b+c.join()+")"},toHslaString:function(){var b="hsla(",c=a.map(this.hsla(),function(a,b){return null==a&&(a=b>2?1:0),b&&3>b&&(a=Math.round(100*a)+"%"),a});return 1===c[3]&&(c.pop(),b="hsl("),b+c.join()+")"},toHexString:function(b){var c=this._rgba.slice(),d=c.pop();return b&&c.push(~~(255*d)),"#"+a.map(c,function(a){return a=(a||0).toString(16),1===a.length?"0"+a:a}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),j.fn.parse.prototype=j.fn,k.hsla.to=function(a){if(null==a[0]||null==a[1]||null==a[2])return[null,null,null,a[3]];var b,c,d=a[0]/255,e=a[1]/255,f=a[2]/255,g=a[3],h=Math.max(d,e,f),i=Math.min(d,e,f),j=h-i,k=h+i,l=.5*k;return b=i===h?0:d===h?60*(e-f)/j+360:e===h?60*(f-d)/j+120:60*(d-e)/j+240,c=0===j?0:.5>=l?j/k:j/(2-k),[Math.round(b)%360,c,l,null==g?1:g]},k.hsla.from=function(a){if(null==a[0]||null==a[1]||null==a[2])return[null,null,null,a[3]];var b=a[0]/360,c=a[1],d=a[2],f=a[3],g=.5>=d?d*(1+c):d+c-d*c,h=2*d-g;return[Math.round(255*e(h,g,b+1/3)),Math.round(255*e(h,g,b)),Math.round(255*e(h,g,b-1/3)),f]},o(k,function(d,e){var f=e.props,g=e.cache,i=e.to,k=e.from;j.fn[d]=function(d){if(i&&!this[g]&&(this[g]=i(this._rgba)),d===b)return this[g].slice();var e,h=a.type(d),l="array"===h||"object"===h?d:arguments,m=this[g].slice();return o(f,function(a,b){var d=l["object"===h?a:b.idx];null==d&&(d=m[b.idx]),m[b.idx]=c(d,b)}),k?(e=j(k(m)),e[g]=m,e):j(m)},o(f,function(b,c){j.fn[b]||(j.fn[b]=function(e){var f,g=a.type(e),i="alpha"===b?this._hsla?"hsla":"rgba":d,j=this[i](),k=j[c.idx];return"undefined"===g?k:("function"===g&&(e=e.call(this,k),g=a.type(e)),null==e&&c.empty?this:("string"===g&&(f=h.exec(e),f&&(e=k+parseFloat(f[2])*("+"===f[1]?1:-1))),j[c.idx]=e,this[i](j)))})})}),j.hook=function(b){var c=b.split(" ");o(c,function(b,c){a.cssHooks[c]={set:function(b,e){var f,g,h="";if("transparent"!==e&&("string"!==a.type(e)||(f=d(e)))){if(e=j(f||e),!m.rgba&&1!==e._rgba[3]){for(g="backgroundColor"===c?b.parentNode:b;(""===h||"transparent"===h)&&g&&g.style;)try{h=a.css(g,"backgroundColor"),g=g.parentNode}catch(i){}e=e.blend(h&&"transparent"!==h?h:"_default")}e=e.toRgbaString();
+}try{b.style[c]=e}catch(i){}}},a.fx.step[c]=function(b){b.colorInit||(b.start=j(b.elem,c),b.end=j(b.end),b.colorInit=!0),a.cssHooks[c].set(b.elem,b.start.transition(b.end,b.pos))}})},j.hook(g),a.cssHooks.borderColor={expand:function(a){var b={};return o(["Top","Right","Bottom","Left"],function(c,d){b["border"+d+"Color"]=a}),b}},f=a.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(t),function(){function b(b){var c,d,e=b.ownerDocument.defaultView?b.ownerDocument.defaultView.getComputedStyle(b,null):b.currentStyle,f={};if(e&&e.length&&e[0]&&e[e[0]])for(d=e.length;d--;)c=e[d],"string"==typeof e[c]&&(f[a.camelCase(c)]=e[c]);else for(c in e)"string"==typeof e[c]&&(f[c]=e[c]);return f}function c(b,c){var d,f,g={};for(d in c)f=c[d],b[d]!==f&&(e[d]||!a.fx.step[d]&&isNaN(parseFloat(f))||(g[d]=f));return g}var d=["add","remove","toggle"],e={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(b,c){a.fx.step[c]=function(a){("none"!==a.end&&!a.setAttr||1===a.pos&&!a.setAttr)&&(t.style(a.elem,c,a.end),a.setAttr=!0)}}),a.fn.addBack||(a.fn.addBack=function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}),a.effects.animateClass=function(e,f,g,h){var i=a.speed(f,g,h);return this.queue(function(){var f,g=a(this),h=g.attr("class")||"",j=i.children?g.find("*").addBack():g;j=j.map(function(){var c=a(this);return{el:c,start:b(this)}}),f=function(){a.each(d,function(a,b){e[b]&&g[b+"Class"](e[b])})},f(),j=j.map(function(){return this.end=b(this.el[0]),this.diff=c(this.start,this.end),this}),g.attr("class",h),j=j.map(function(){var b=this,c=a.Deferred(),d=a.extend({},i,{queue:!1,complete:function(){c.resolve(b)}});return this.el.animate(this.diff,d),c.promise()}),a.when.apply(a,j.get()).done(function(){f(),a.each(arguments,function(){var b=this.el;a.each(this.diff,function(a){b.css(a,"")})}),i.complete.call(g[0])})})},a.fn.extend({addClass:function(b){return function(c,d,e,f){return d?a.effects.animateClass.call(this,{add:c},d,e,f):b.apply(this,arguments)}}(a.fn.addClass),removeClass:function(b){return function(c,d,e,f){return arguments.length>1?a.effects.animateClass.call(this,{remove:c},d,e,f):b.apply(this,arguments)}}(a.fn.removeClass),toggleClass:function(b){return function(c,d,e,f,g){return"boolean"==typeof d||void 0===d?e?a.effects.animateClass.call(this,d?{add:c}:{remove:c},e,f,g):b.apply(this,arguments):a.effects.animateClass.call(this,{toggle:c},d,e,f)}}(a.fn.toggleClass),switchClass:function(b,c,d,e,f){return a.effects.animateClass.call(this,{add:c,remove:b},d,e,f)}})}(),function(){function b(b,c,d,e){return a.isPlainObject(b)&&(c=b,b=b.effect),b={effect:b},null==c&&(c={}),a.isFunction(c)&&(e=c,d=null,c={}),("number"==typeof c||a.fx.speeds[c])&&(e=d,d=c,c={}),a.isFunction(d)&&(e=d,d=null),c&&a.extend(b,c),d=d||c.duration,b.duration=a.fx.off?0:"number"==typeof d?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,b.complete=e||c.complete,b}function c(b){return!b||"number"==typeof b||a.fx.speeds[b]?!0:"string"!=typeof b||a.effects.effect[b]?a.isFunction(b)?!0:"object"==typeof b&&!b.effect:!0}a.extend(a.effects,{version:"1.11.4",save:function(a,b){for(var c=0;c<b.length;c++)null!==b[c]&&a.data(s+b[c],a[0].style[b[c]])},restore:function(a,b){var c,d;for(d=0;d<b.length;d++)null!==b[d]&&(c=a.data(s+b[d]),void 0===c&&(c=""),a.css(b[d],c))},setMode:function(a,b){return"toggle"===b&&(b=a.is(":hidden")?"show":"hide"),b},getBaseline:function(a,b){var c,d;switch(a[0]){case"top":c=0;break;case"middle":c=.5;break;case"bottom":c=1;break;default:c=a[0]/b.height}switch(a[1]){case"left":d=0;break;case"center":d=.5;break;case"right":d=1;break;default:d=a[1]/b.width}return{x:d,y:c}},createWrapper:function(b){if(b.parent().is(".ui-effects-wrapper"))return b.parent();var c={width:b.outerWidth(!0),height:b.outerHeight(!0),"float":b.css("float")},d=a("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e={width:b.width(),height:b.height()},f=document.activeElement;try{f.id}catch(g){f=document.body}return b.wrap(d),(b[0]===f||a.contains(b[0],f))&&a(f).focus(),d=b.parent(),"static"===b.css("position")?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),b.css(e),d.css(c).show()},removeWrapper:function(b){var c=document.activeElement;return b.parent().is(".ui-effects-wrapper")&&(b.parent().replaceWith(b),(b[0]===c||a.contains(b[0],c))&&a(c).focus()),b},setTransition:function(b,c,d,e){return e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])}),e}}),a.fn.extend({effect:function(){function c(b){function c(){a.isFunction(f)&&f.call(e[0]),a.isFunction(b)&&b()}var e=a(this),f=d.complete,h=d.mode;(e.is(":hidden")?"hide"===h:"show"===h)?(e[h](),c()):g.call(e[0],d,c)}var d=b.apply(this,arguments),e=d.mode,f=d.queue,g=a.effects.effect[d.effect];return a.fx.off||!g?e?this[e](d.duration,d.complete):this.each(function(){d.complete&&d.complete.call(this)}):f===!1?this.each(c):this.queue(f||"fx",c)},show:function(a){return function(d){if(c(d))return a.apply(this,arguments);var e=b.apply(this,arguments);return e.mode="show",this.effect.call(this,e)}}(a.fn.show),hide:function(a){return function(d){if(c(d))return a.apply(this,arguments);var e=b.apply(this,arguments);return e.mode="hide",this.effect.call(this,e)}}(a.fn.hide),toggle:function(a){return function(d){if(c(d)||"boolean"==typeof d)return a.apply(this,arguments);var e=b.apply(this,arguments);return e.mode="toggle",this.effect.call(this,e)}}(a.fn.toggle),cssUnit:function(b){var c=this.css(b),d=[];return a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])}),d}})}(),function(){var b={};a.each(["Quad","Cubic","Quart","Quint","Expo"],function(a,c){b[c]=function(b){return Math.pow(b,a+2)}}),a.extend(b,{Sine:function(a){return 1-Math.cos(a*Math.PI/2)},Circ:function(a){return 1-Math.sqrt(1-a*a)},Elastic:function(a){return 0===a||1===a?a:-Math.pow(2,8*(a-1))*Math.sin((80*(a-1)-7.5)*Math.PI/15)},Back:function(a){return a*a*(3*a-2)},Bounce:function(a){for(var b,c=4;a<((b=Math.pow(2,--c))-1)/11;);return 1/Math.pow(4,3-c)-7.5625*Math.pow((3*b-2)/22-a,2)}}),a.each(b,function(b,c){a.easing["easeIn"+b]=c,a.easing["easeOut"+b]=function(a){return 1-c(1-a)},a.easing["easeInOut"+b]=function(a){return.5>a?c(2*a)/2:1-c(-2*a+2)/2}})}();a.effects,a.effects.effect.blind=function(b,c){var d,e,f,g=a(this),h=/up|down|vertical/,i=/up|left|vertical|horizontal/,j=["position","top","bottom","left","right","height","width"],k=a.effects.setMode(g,b.mode||"hide"),l=b.direction||"up",m=h.test(l),n=m?"height":"width",o=m?"top":"left",p=i.test(l),q={},r="show"===k;g.parent().is(".ui-effects-wrapper")?a.effects.save(g.parent(),j):a.effects.save(g,j),g.show(),d=a.effects.createWrapper(g).css({overflow:"hidden"}),e=d[n](),f=parseFloat(d.css(o))||0,q[n]=r?e:0,p||(g.css(m?"bottom":"right",0).css(m?"top":"left","auto").css({position:"absolute"}),q[o]=r?f:e+f),r&&(d.css(n,0),p||d.css(o,f+e)),d.animate(q,{duration:b.duration,easing:b.easing,queue:!1,complete:function(){"hide"===k&&g.hide(),a.effects.restore(g,j),a.effects.removeWrapper(g),c()}})},a.effects.effect.bounce=function(b,c){var d,e,f,g=a(this),h=["position","top","bottom","left","right","height","width"],i=a.effects.setMode(g,b.mode||"effect"),j="hide"===i,k="show"===i,l=b.direction||"up",m=b.distance,n=b.times||5,o=2*n+(k||j?1:0),p=b.duration/o,q=b.easing,r="up"===l||"down"===l?"top":"left",s="up"===l||"left"===l,t=g.queue(),u=t.length;for((k||j)&&h.push("opacity"),a.effects.save(g,h),g.show(),a.effects.createWrapper(g),m||(m=g["top"===r?"outerHeight":"outerWidth"]()/3),k&&(f={opacity:1},f[r]=0,g.css("opacity",0).css(r,s?2*-m:2*m).animate(f,p,q)),j&&(m/=Math.pow(2,n-1)),f={},f[r]=0,d=0;n>d;d++)e={},e[r]=(s?"-=":"+=")+m,g.animate(e,p,q).animate(f,p,q),m=j?2*m:m/2;j&&(e={opacity:0},e[r]=(s?"-=":"+=")+m,g.animate(e,p,q)),g.queue(function(){j&&g.hide(),a.effects.restore(g,h),a.effects.removeWrapper(g),c()}),u>1&&t.splice.apply(t,[1,0].concat(t.splice(u,o+1))),g.dequeue()},a.effects.effect.clip=function(b,c){var d,e,f,g=a(this),h=["position","top","bottom","left","right","height","width"],i=a.effects.setMode(g,b.mode||"hide"),j="show"===i,k=b.direction||"vertical",l="vertical"===k,m=l?"height":"width",n=l?"top":"left",o={};a.effects.save(g,h),g.show(),d=a.effects.createWrapper(g).css({overflow:"hidden"}),e="IMG"===g[0].tagName?d:g,f=e[m](),j&&(e.css(m,0),e.css(n,f/2)),o[m]=j?f:0,o[n]=j?0:f/2,e.animate(o,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){j||g.hide(),a.effects.restore(g,h),a.effects.removeWrapper(g),c()}})},a.effects.effect.drop=function(b,c){var d,e=a(this),f=["position","top","bottom","left","right","opacity","height","width"],g=a.effects.setMode(e,b.mode||"hide"),h="show"===g,i=b.direction||"left",j="up"===i||"down"===i?"top":"left",k="up"===i||"left"===i?"pos":"neg",l={opacity:h?1:0};a.effects.save(e,f),e.show(),a.effects.createWrapper(e),d=b.distance||e["top"===j?"outerHeight":"outerWidth"](!0)/2,h&&e.css("opacity",0).css(j,"pos"===k?-d:d),l[j]=(h?"pos"===k?"+=":"-=":"pos"===k?"-=":"+=")+d,e.animate(l,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){"hide"===g&&e.hide(),a.effects.restore(e,f),a.effects.removeWrapper(e),c()}})},a.effects.effect.explode=function(b,c){function d(){t.push(this),t.length===l*m&&e()}function e(){n.css({visibility:"visible"}),a(t).remove(),p||n.hide(),c()}var f,g,h,i,j,k,l=b.pieces?Math.round(Math.sqrt(b.pieces)):3,m=l,n=a(this),o=a.effects.setMode(n,b.mode||"hide"),p="show"===o,q=n.show().css("visibility","hidden").offset(),r=Math.ceil(n.outerWidth()/m),s=Math.ceil(n.outerHeight()/l),t=[];for(f=0;l>f;f++)for(i=q.top+f*s,k=f-(l-1)/2,g=0;m>g;g++)h=q.left+g*r,j=g-(m-1)/2,n.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-g*r,top:-f*s}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:r,height:s,left:h+(p?j*r:0),top:i+(p?k*s:0),opacity:p?0:1}).animate({left:h+(p?0:j*r),top:i+(p?0:k*s),opacity:p?1:0},b.duration||500,b.easing,d)},a.effects.effect.fade=function(b,c){var d=a(this),e=a.effects.setMode(d,b.mode||"toggle");d.animate({opacity:e},{queue:!1,duration:b.duration,easing:b.easing,complete:c})},a.effects.effect.fold=function(b,c){var d,e,f=a(this),g=["position","top","bottom","left","right","height","width"],h=a.effects.setMode(f,b.mode||"hide"),i="show"===h,j="hide"===h,k=b.size||15,l=/([0-9]+)%/.exec(k),m=!!b.horizFirst,n=i!==m,o=n?["width","height"]:["height","width"],p=b.duration/2,q={},r={};a.effects.save(f,g),f.show(),d=a.effects.createWrapper(f).css({overflow:"hidden"}),e=n?[d.width(),d.height()]:[d.height(),d.width()],l&&(k=parseInt(l[1],10)/100*e[j?0:1]),i&&d.css(m?{height:0,width:k}:{height:k,width:0}),q[o[0]]=i?e[0]:k,r[o[1]]=i?e[1]:0,d.animate(q,p,b.easing).animate(r,p,b.easing,function(){j&&f.hide(),a.effects.restore(f,g),a.effects.removeWrapper(f),c()})},a.effects.effect.highlight=function(b,c){var d=a(this),e=["backgroundImage","backgroundColor","opacity"],f=a.effects.setMode(d,b.mode||"show"),g={backgroundColor:d.css("backgroundColor")};"hide"===f&&(g.opacity=0),a.effects.save(d,e),d.show().css({backgroundImage:"none",backgroundColor:b.color||"#ffff99"}).animate(g,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){"hide"===f&&d.hide(),a.effects.restore(d,e),c()}})},a.effects.effect.size=function(b,c){var d,e,f,g=a(this),h=["position","top","bottom","left","right","width","height","overflow","opacity"],i=["position","top","bottom","left","right","overflow","opacity"],j=["width","height","overflow"],k=["fontSize"],l=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],m=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],n=a.effects.setMode(g,b.mode||"effect"),o=b.restore||"effect"!==n,p=b.scale||"both",q=b.origin||["middle","center"],r=g.css("position"),s=o?h:i,t={height:0,width:0,outerHeight:0,outerWidth:0};"show"===n&&g.show(),d={height:g.height(),width:g.width(),outerHeight:g.outerHeight(),outerWidth:g.outerWidth()},"toggle"===b.mode&&"show"===n?(g.from=b.to||t,g.to=b.from||d):(g.from=b.from||("show"===n?t:d),g.to=b.to||("hide"===n?t:d)),f={from:{y:g.from.height/d.height,x:g.from.width/d.width},to:{y:g.to.height/d.height,x:g.to.width/d.width}},"box"!==p&&"both"!==p||(f.from.y!==f.to.y&&(s=s.concat(l),g.from=a.effects.setTransition(g,l,f.from.y,g.from),g.to=a.effects.setTransition(g,l,f.to.y,g.to)),f.from.x!==f.to.x&&(s=s.concat(m),g.from=a.effects.setTransition(g,m,f.from.x,g.from),g.to=a.effects.setTransition(g,m,f.to.x,g.to))),"content"!==p&&"both"!==p||f.from.y!==f.to.y&&(s=s.concat(k).concat(j),g.from=a.effects.setTransition(g,k,f.from.y,g.from),g.to=a.effects.setTransition(g,k,f.to.y,g.to)),a.effects.save(g,s),g.show(),a.effects.createWrapper(g),g.css("overflow","hidden").css(g.from),q&&(e=a.effects.getBaseline(q,d),g.from.top=(d.outerHeight-g.outerHeight())*e.y,g.from.left=(d.outerWidth-g.outerWidth())*e.x,g.to.top=(d.outerHeight-g.to.outerHeight)*e.y,g.to.left=(d.outerWidth-g.to.outerWidth)*e.x),g.css(g.from),"content"!==p&&"both"!==p||(l=l.concat(["marginTop","marginBottom"]).concat(k),m=m.concat(["marginLeft","marginRight"]),j=h.concat(l).concat(m),g.find("*[width]").each(function(){var c=a(this),d={height:c.height(),width:c.width(),outerHeight:c.outerHeight(),outerWidth:c.outerWidth()};o&&a.effects.save(c,j),c.from={height:d.height*f.from.y,width:d.width*f.from.x,outerHeight:d.outerHeight*f.from.y,outerWidth:d.outerWidth*f.from.x},c.to={height:d.height*f.to.y,width:d.width*f.to.x,outerHeight:d.height*f.to.y,outerWidth:d.width*f.to.x},f.from.y!==f.to.y&&(c.from=a.effects.setTransition(c,l,f.from.y,c.from),c.to=a.effects.setTransition(c,l,f.to.y,c.to)),f.from.x!==f.to.x&&(c.from=a.effects.setTransition(c,m,f.from.x,c.from),c.to=a.effects.setTransition(c,m,f.to.x,c.to)),c.css(c.from),c.animate(c.to,b.duration,b.easing,function(){o&&a.effects.restore(c,j)})})),g.animate(g.to,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){0===g.to.opacity&&g.css("opacity",g.from.opacity),"hide"===n&&g.hide(),a.effects.restore(g,s),o||("static"===r?g.css({position:"relative",top:g.to.top,left:g.to.left}):a.each(["top","left"],function(a,b){g.css(b,function(b,c){var d=parseInt(c,10),e=a?g.to.left:g.to.top;return"auto"===c?e+"px":d+e+"px"})})),a.effects.removeWrapper(g),c()}})},a.effects.effect.scale=function(b,c){var d=a(this),e=a.extend(!0,{},b),f=a.effects.setMode(d,b.mode||"effect"),g=parseInt(b.percent,10)||(0===parseInt(b.percent,10)?0:"hide"===f?0:100),h=b.direction||"both",i=b.origin,j={height:d.height(),width:d.width(),outerHeight:d.outerHeight(),outerWidth:d.outerWidth()},k={y:"horizontal"!==h?g/100:1,x:"vertical"!==h?g/100:1};e.effect="size",e.queue=!1,e.complete=c,"effect"!==f&&(e.origin=i||["middle","center"],e.restore=!0),e.from=b.from||("show"===f?{height:0,width:0,outerHeight:0,outerWidth:0}:j),e.to={height:j.height*k.y,width:j.width*k.x,outerHeight:j.outerHeight*k.y,outerWidth:j.outerWidth*k.x},e.fade&&("show"===f&&(e.from.opacity=0,e.to.opacity=1),"hide"===f&&(e.from.opacity=1,e.to.opacity=0)),d.effect(e)},a.effects.effect.puff=function(b,c){var d=a(this),e=a.effects.setMode(d,b.mode||"hide"),f="hide"===e,g=parseInt(b.percent,10)||150,h=g/100,i={height:d.height(),width:d.width(),outerHeight:d.outerHeight(),outerWidth:d.outerWidth()};a.extend(b,{effect:"scale",queue:!1,fade:!0,mode:e,complete:c,percent:f?g:100,from:f?i:{height:i.height*h,width:i.width*h,outerHeight:i.outerHeight*h,outerWidth:i.outerWidth*h}}),d.effect(b)},a.effects.effect.pulsate=function(b,c){var d,e=a(this),f=a.effects.setMode(e,b.mode||"show"),g="show"===f,h="hide"===f,i=g||"hide"===f,j=2*(b.times||5)+(i?1:0),k=b.duration/j,l=0,m=e.queue(),n=m.length;for(!g&&e.is(":visible")||(e.css("opacity",0).show(),l=1),d=1;j>d;d++)e.animate({opacity:l},k,b.easing),l=1-l;e.animate({opacity:l},k,b.easing),e.queue(function(){h&&e.hide(),c()}),n>1&&m.splice.apply(m,[1,0].concat(m.splice(n,j+1))),e.dequeue()},a.effects.effect.shake=function(b,c){var d,e=a(this),f=["position","top","bottom","left","right","height","width"],g=a.effects.setMode(e,b.mode||"effect"),h=b.direction||"left",i=b.distance||20,j=b.times||3,k=2*j+1,l=Math.round(b.duration/k),m="up"===h||"down"===h?"top":"left",n="up"===h||"left"===h,o={},p={},q={},r=e.queue(),s=r.length;for(a.effects.save(e,f),e.show(),a.effects.createWrapper(e),o[m]=(n?"-=":"+=")+i,p[m]=(n?"+=":"-=")+2*i,q[m]=(n?"-=":"+=")+2*i,e.animate(o,l,b.easing),d=1;j>d;d++)e.animate(p,l,b.easing).animate(q,l,b.easing);e.animate(p,l,b.easing).animate(o,l/2,b.easing).queue(function(){"hide"===g&&e.hide(),a.effects.restore(e,f),a.effects.removeWrapper(e),c()}),s>1&&r.splice.apply(r,[1,0].concat(r.splice(s,k+1))),e.dequeue()},a.effects.effect.slide=function(b,c){var d,e=a(this),f=["position","top","bottom","left","right","width","height"],g=a.effects.setMode(e,b.mode||"show"),h="show"===g,i=b.direction||"left",j="up"===i||"down"===i?"top":"left",k="up"===i||"left"===i,l={};a.effects.save(e,f),e.show(),d=b.distance||e["top"===j?"outerHeight":"outerWidth"](!0),a.effects.createWrapper(e).css({overflow:"hidden"}),h&&e.css(j,k?isNaN(d)?"-"+d:-d:d),l[j]=(h?k?"+=":"-=":k?"-=":"+=")+d,e.animate(l,{queue:!1,duration:b.duration,easing:b.easing,complete:function(){"hide"===g&&e.hide(),a.effects.restore(e,f),a.effects.removeWrapper(e),c()}})},a.effects.effect.transfer=function(b,c){var d=a(this),e=a(b.to),f="fixed"===e.css("position"),g=a("body"),h=f?g.scrollTop():0,i=f?g.scrollLeft():0,j=e.offset(),k={top:j.top-h,left:j.left-i,height:e.innerHeight(),width:e.innerWidth()},l=d.offset(),m=a("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(b.className).css({top:l.top-h,left:l.left-i,height:d.innerHeight(),width:d.innerWidth(),position:f?"fixed":"absolute"}).animate(k,b.duration,b.easing,function(){m.remove(),c()})},a.widget("ui.progressbar",{version:"1.11.4",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min}),this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(a){return void 0===a?this.options.value:(this.options.value=this._constrainedValue(a),void this._refreshValue())},_constrainedValue:function(a){return void 0===a&&(a=this.options.value),this.indeterminate=a===!1,"number"!=typeof a&&(a=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,a))},_setOptions:function(a){var b=a.value;delete a.value,this._super(a),this.options.value=this._constrainedValue(b),this._refreshValue()},_setOption:function(a,b){"max"===a&&(b=Math.max(this.min,b)),"disabled"===a&&this.element.toggleClass("ui-state-disabled",!!b).attr("aria-disabled",b),this._super(a,b)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var b=this.options.value,c=this._percentage();this.valueDiv.toggle(this.indeterminate||b>this.min).toggleClass("ui-corner-right",b===this.options.max).width(c.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=a("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":b}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==b&&(this.oldValue=b,this._trigger("change")),b===this.options.max&&this._trigger("complete")}}),a.widget("ui.selectable",a.ui.mouse,{version:"1.11.4",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var b,c=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){b=a(c.options.filter,c.element[0]),b.addClass("ui-selectee"),b.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=b.addClass("ui-selectee"),this._mouseInit(),this.helper=a("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(b){var c=this,d=this.options;this.opos=[b.pageX,b.pageY],this.options.disabled||(this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.pageX,top:b.pageY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,b.metaKey||b.ctrlKey||(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().addBack().each(function(){var d,e=a.data(this,"selectable-item");return e?(d=!b.metaKey&&!b.ctrlKey||!e.$element.hasClass("ui-selected"),e.$element.removeClass(d?"ui-unselecting":"ui-selected").addClass(d?"ui-selecting":"ui-unselecting"),e.unselecting=!d,e.selecting=d,e.selected=d,d?c._trigger("selecting",b,{selecting:e.element}):c._trigger("unselecting",b,{unselecting:e.element}),!1):void 0}))},_mouseDrag:function(b){if(this.dragged=!0,!this.options.disabled){var c,d=this,e=this.options,f=this.opos[0],g=this.opos[1],h=b.pageX,i=b.pageY;return f>h&&(c=h,h=f,f=c),g>i&&(c=i,i=g,g=c),this.helper.css({left:f,top:g,width:h-f,height:i-g}),this.selectees.each(function(){var c=a.data(this,"selectable-item"),j=!1;c&&c.element!==d.element[0]&&("touch"===e.tolerance?j=!(c.left>h||c.right<f||c.top>i||c.bottom<g):"fit"===e.tolerance&&(j=c.left>f&&c.right<h&&c.top>g&&c.bottom<i),j?(c.selected&&(c.$element.removeClass("ui-selected"),c.selected=!1),c.unselecting&&(c.$element.removeClass("ui-unselecting"),c.unselecting=!1),c.selecting||(c.$element.addClass("ui-selecting"),c.selecting=!0,d._trigger("selecting",b,{selecting:c.element}))):(c.selecting&&((b.metaKey||b.ctrlKey)&&c.startselected?(c.$element.removeClass("ui-selecting"),c.selecting=!1,c.$element.addClass("ui-selected"),c.selected=!0):(c.$element.removeClass("ui-selecting"),c.selecting=!1,c.startselected&&(c.$element.addClass("ui-unselecting"),c.unselecting=!0),d._trigger("unselecting",b,{unselecting:c.element}))),c.selected&&(b.metaKey||b.ctrlKey||c.startselected||(c.$element.removeClass("ui-selected"),c.selected=!1,c.$element.addClass("ui-unselecting"),c.unselecting=!0,d._trigger("unselecting",b,{unselecting:c.element})))))}),!1}},_mouseStop:function(b){var c=this;return this.dragged=!1,a(".ui-unselecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");d.$element.removeClass("ui-unselecting"),d.unselecting=!1,d.startselected=!1,c._trigger("unselected",b,{unselected:d.element})}),a(".ui-selecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected"),d.selecting=!1,d.selected=!0,d.startselected=!0,c._trigger("selected",b,{selected:d.element})}),this._trigger("stop",b),this.helper.remove(),!1}}),a.widget("ui.selectmenu",{version:"1.11.4",defaultElement:"<select>",options:{appendTo:null,disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:null,change:null,close:null,focus:null,open:null,select:null},_create:function(){var a=this.element.uniqueId().attr("id");this.ids={element:a,button:a+"-button",menu:a+"-menu"},this._drawButton(),this._drawMenu(),this.options.disabled&&this.disable()},_drawButton:function(){var b=this;this.label=a("label[for='"+this.ids.element+"']").attr("for",this.ids.button),this._on(this.label,{click:function(a){this.button.focus(),a.preventDefault()}}),this.element.hide(),this.button=a("<span>",{"class":"ui-selectmenu-button ui-widget ui-state-default ui-corner-all",tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true"}).insertAfter(this.element),a("<span>",{"class":"ui-icon "+this.options.icons.button}).prependTo(this.button),this.buttonText=a("<span>",{"class":"ui-selectmenu-text"}).appendTo(this.button),this._setText(this.buttonText,this.element.find("option:selected").text()),this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){b.menuItems||b._refreshMenu()}),this._hoverable(this.button),this._focusable(this.button)},_drawMenu:function(){var b=this;this.menu=a("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=a("<div>",{"class":"ui-selectmenu-menu ui-front"}).append(this.menu).appendTo(this._appendTo()),this.menuInstance=this.menu.menu({role:"listbox",select:function(a,c){a.preventDefault(),b._setSelection(),b._select(c.item.data("ui-selectmenu-item"),a)},focus:function(a,c){var d=c.item.data("ui-selectmenu-item");null!=b.focusIndex&&d.index!==b.focusIndex&&(b._trigger("focus",a,{item:d}),b.isOpen||b._select(d,a)),b.focusIndex=d.index,b.button.attr("aria-activedescendant",b.menuItems.eq(d.index).attr("id"))}}).menu("instance"),this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this._setText(this.buttonText,this._getSelectedItem().text()),this.options.width||this._resizeButton()},_refreshMenu:function(){this.menu.empty();var a,b=this.element.find("option");b.length&&(this._parseOptions(b),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup"),a=this._getSelectedItem(),this.menuInstance.focus(null,a),this._setAria(a.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(a){this.options.disabled||(this.menuItems?(this.menu.find(".ui-state-focus").removeClass("ui-state-focus"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",a))},_position:function(){this.menuWrap.position(a.extend({of:this.button},this.options.position))},close:function(a){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",a))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderMenu:function(b,c){var d=this,e="";a.each(c,function(c,f){f.optgroup!==e&&(a("<li>",{"class":"ui-selectmenu-optgroup ui-menu-divider"+(f.element.parent("optgroup").prop("disabled")?" ui-state-disabled":""),text:f.optgroup}).appendTo(b),e=f.optgroup),d._renderItemData(b,f)})},_renderItemData:function(a,b){return this._renderItem(a,b).data("ui-selectmenu-item",b)},_renderItem:function(b,c){var d=a("<li>");return c.disabled&&d.addClass("ui-state-disabled"),this._setText(d,c.label),d.appendTo(b)},_setText:function(a,b){b?a.text(b):a.html("&#160;")},_move:function(a,b){var c,d,e=".ui-menu-item";this.isOpen?c=this.menuItems.eq(this.focusIndex):(c=this.menuItems.eq(this.element[0].selectedIndex),e+=":not(.ui-state-disabled)"),d="first"===a||"last"===a?c["first"===a?"prevAll":"nextAll"](e).eq(-1):c[a+"All"](e).eq(0),d.length&&this.menuInstance.focus(b,d)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex)},_toggle:function(a){this[this.isOpen?"close":"open"](a)},_setSelection:function(){var a;this.range&&(window.getSelection?(a=window.getSelection(),a.removeAllRanges(),a.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(b){this.isOpen&&(a(b.target).closest(".ui-selectmenu-menu, #"+this.ids.button).length||this.close(b))}},_buttonEvents:{mousedown:function(){var a;window.getSelection?(a=window.getSelection(),a.rangeCount&&(this.range=a.getRangeAt(0))):this.range=document.selection.createRange()},click:function(a){this._setSelection(),this._toggle(a)},keydown:function(b){var c=!0;switch(b.keyCode){case a.ui.keyCode.TAB:case a.ui.keyCode.ESCAPE:this.close(b),c=!1;break;case a.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(b);break;case a.ui.keyCode.UP:b.altKey?this._toggle(b):this._move("prev",b);break;case a.ui.keyCode.DOWN:b.altKey?this._toggle(b):this._move("next",b);break;case a.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(b):this._toggle(b);break;case a.ui.keyCode.LEFT:this._move("prev",b);break;case a.ui.keyCode.RIGHT:this._move("next",b);break;case a.ui.keyCode.HOME:case a.ui.keyCode.PAGE_UP:this._move("first",b);break;case a.ui.keyCode.END:case a.ui.keyCode.PAGE_DOWN:this._move("last",b);break;default:this.menu.trigger(b),c=!1}c&&b.preventDefault()}},_selectFocusedItem:function(a){var b=this.menuItems.eq(this.focusIndex);b.hasClass("ui-state-disabled")||this._select(b.data("ui-selectmenu-item"),a)},_select:function(a,b){var c=this.element[0].selectedIndex;this.element[0].selectedIndex=a.index,this._setText(this.buttonText,a.label),this._setAria(a),this._trigger("select",b,{item:a}),a.index!==c&&this._trigger("change",b,{item:a}),this.close(b)},_setAria:function(a){var b=this.menuItems.eq(a.index).attr("id");this.button.attr({"aria-labelledby":b,"aria-activedescendant":b}),this.menu.attr("aria-activedescendant",b)},_setOption:function(a,b){"icons"===a&&this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(b.button),this._super(a,b),"appendTo"===a&&this.menuWrap.appendTo(this._appendTo()),"disabled"===a&&(this.menuInstance.option("disabled",b),this.button.toggleClass("ui-state-disabled",b).attr("aria-disabled",b),this.element.prop("disabled",b),b?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)),"width"===a&&this._resizeButton()},_appendTo:function(){var b=this.options.appendTo;return b&&(b=b.jquery||b.nodeType?a(b):this.document.find(b).eq(0)),b&&b[0]||(b=this.element.closest(".ui-front")),b.length||(b=this.document[0].body),b},_toggleAttr:function(){this.button.toggleClass("ui-corner-top",this.isOpen).toggleClass("ui-corner-all",!this.isOpen).attr("aria-expanded",this.isOpen),this.menuWrap.toggleClass("ui-selectmenu-open",this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var a=this.options.width;a||(a=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(a)},_resizeMenu:function(){
+this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){return{disabled:this.element.prop("disabled")}},_parseOptions:function(b){var c=[];b.each(function(b,d){var e=a(d),f=e.parent("optgroup");c.push({element:e,index:b,value:e.val(),label:e.text(),optgroup:f.attr("label")||"",disabled:f.prop("disabled")||e.prop("disabled")})}),this.items=c},_destroy:function(){this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.label.attr("for",this.ids.element)}}),a.widget("ui.slider",a.ui.mouse,{version:"1.11.4",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var b,c,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",g=[];for(c=d.values&&d.values.length||1,e.length>c&&(e.slice(c).remove(),e=e.slice(0,c)),b=e.length;c>b;b++)g.push(f);this.handles=e.add(a(g.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(b){a(this).data("ui-slider-handle-index",b)})},_createRange:function(){var b=this.options,c="";b.range?(b.range===!0&&(b.values?b.values.length&&2!==b.values.length?b.values=[b.values[0],b.values[0]]:a.isArray(b.values)&&(b.values=b.values.slice(0)):b.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=a("<div></div>").appendTo(this.element),c="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(c+("min"===b.range||"max"===b.range?" ui-slider-range-"+b.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(b){var c,d,e,f,g,h,i,j,k=this,l=this.options;return l.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),c={x:b.pageX,y:b.pageY},d=this._normValueFromMouse(c),e=this._valueMax()-this._valueMin()+1,this.handles.each(function(b){var c=Math.abs(d-k.values(b));(e>c||e===c&&(b===k._lastChangedValue||k.values(b)===l.min))&&(e=c,f=a(this),g=b)}),h=this._start(b,g),h===!1?!1:(this._mouseSliding=!0,this._handleIndex=g,f.addClass("ui-state-active").focus(),i=f.offset(),j=!a(b.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=j?{left:0,top:0}:{left:b.pageX-i.left-f.width()/2,top:b.pageY-i.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,g,d),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return"horizontal"===this.orientation?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),0>d&&(d=0),"vertical"===this.orientation&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),2===this.options.values.length&&this.options.range===!0&&(0===b&&c>d||1===b&&d>c)&&(c=d),c!==this.values(b)&&(e=this.values(),e[b]=c,f=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e}),d=this.values(b?0:1),f!==!1&&this.values(b,c))):c!==this.value()&&(f=this._trigger("slide",a,{handle:this.handles[b],value:c}),f!==!1&&this.value(c))},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._lastChangedValue=b,this._trigger("change",a,c)}},value:function(a){return arguments.length?(this.options.value=this._trimAlignValue(a),this._refreshValue(),void this._change(null,0)):this._value()},values:function(b,c){var d,e,f;if(arguments.length>1)return this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),void this._change(null,b);if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();for(d=this.options.values,e=arguments[0],f=0;f<d.length;f+=1)d[f]=this._trimAlignValue(e[f]),this._change(null,f);this._refreshValue()},_setOption:function(b,c){var d,e=0;switch("range"===b&&this.options.range===!0&&("min"===c?(this.options.value=this._values(0),this.options.values=null):"max"===c&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),a.isArray(this.options.values)&&(e=this.options.values.length),"disabled"===b&&this.element.toggleClass("ui-state-disabled",!!c),this._super(b,c),b){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue(),this.handles.css("horizontal"===c?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),d=0;e>d;d+=1)this._change(null,d);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c,d;if(arguments.length)return b=this.options.values[a],b=this._trimAlignValue(b);if(this.options.values&&this.options.values.length){for(c=this.options.values.slice(),d=0;d<c.length;d+=1)c[d]=this._trimAlignValue(c[d]);return c}return[]},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return 2*Math.abs(c)>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_calculateNewMax:function(){var a=this.options.max,b=this._valueMin(),c=this.options.step,d=Math.floor(+(a-b).toFixed(this._precision())/c)*c;a=d+b,this.max=parseFloat(a.toFixed(this._precision()))},_precision:function(){var a=this._precisionOf(this.options.step);return null!==this.options.min&&(a=Math.max(a,this._precisionOf(this.options.min))),a},_precisionOf:function(a){var b=a.toString(),c=b.indexOf(".");return-1===c?0:b.length-c-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshValue:function(){var b,c,d,e,f,g=this.options.range,h=this.options,i=this,j=this._animateOff?!1:h.animate,k={};this.options.values&&this.options.values.length?this.handles.each(function(d){c=(i.values(d)-i._valueMin())/(i._valueMax()-i._valueMin())*100,k["horizontal"===i.orientation?"left":"bottom"]=c+"%",a(this).stop(1,1)[j?"animate":"css"](k,h.animate),i.options.range===!0&&("horizontal"===i.orientation?(0===d&&i.range.stop(1,1)[j?"animate":"css"]({left:c+"%"},h.animate),1===d&&i.range[j?"animate":"css"]({width:c-b+"%"},{queue:!1,duration:h.animate})):(0===d&&i.range.stop(1,1)[j?"animate":"css"]({bottom:c+"%"},h.animate),1===d&&i.range[j?"animate":"css"]({height:c-b+"%"},{queue:!1,duration:h.animate}))),b=c}):(d=this.value(),e=this._valueMin(),f=this._valueMax(),c=f!==e?(d-e)/(f-e)*100:0,k["horizontal"===this.orientation?"left":"bottom"]=c+"%",this.handle.stop(1,1)[j?"animate":"css"](k,h.animate),"min"===g&&"horizontal"===this.orientation&&this.range.stop(1,1)[j?"animate":"css"]({width:c+"%"},h.animate),"max"===g&&"horizontal"===this.orientation&&this.range[j?"animate":"css"]({width:100-c+"%"},{queue:!1,duration:h.animate}),"min"===g&&"vertical"===this.orientation&&this.range.stop(1,1)[j?"animate":"css"]({height:c+"%"},h.animate),"max"===g&&"vertical"===this.orientation&&this.range[j?"animate":"css"]({height:100-c+"%"},{queue:!1,duration:h.animate}))},_handleEvents:{keydown:function(b){var c,d,e,f,g=a(b.target).data("ui-slider-handle-index");switch(b.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(b.preventDefault(),!this._keySliding&&(this._keySliding=!0,a(b.target).addClass("ui-state-active"),c=this._start(b,g),c===!1))return}switch(f=this.options.step,d=e=this.options.values&&this.options.values.length?this.values(g):this.value(),b.keyCode){case a.ui.keyCode.HOME:e=this._valueMin();break;case a.ui.keyCode.END:e=this._valueMax();break;case a.ui.keyCode.PAGE_UP:e=this._trimAlignValue(d+(this._valueMax()-this._valueMin())/this.numPages);break;case a.ui.keyCode.PAGE_DOWN:e=this._trimAlignValue(d-(this._valueMax()-this._valueMin())/this.numPages);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(d===this._valueMax())return;e=this._trimAlignValue(d+f);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(d===this._valueMin())return;e=this._trimAlignValue(d-f)}this._slide(b,g,e)},keyup:function(b){var c=a(b.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(b,c),this._change(b,c),a(b.target).removeClass("ui-state-active"))}}}),a.widget("ui.sortable",a.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(a,b,c){return a>=b&&b+c>a},_isFloating:function(a){return/left|right/.test(a.css("float"))||/inline|table-cell/.test(a.css("display"))},_create:function(){this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(a,b){this._super(a,b),"handle"===a&&this._setHandleClassName()},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle"),a.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle"),this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(b,c){var d=null,e=!1,f=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(b),a(b.target).parents().each(function(){return a.data(this,f.widgetName+"-item")===f?(d=a(this),!1):void 0}),a.data(b.target,f.widgetName+"-item")===f&&(d=a(b.target)),d&&(!this.options.handle||c||(a(this.options.handle,d).find("*").addBack().each(function(){this===b.target&&(e=!0)}),e))?(this.currentItem=d,this._removeCurrentsFromItems(),!0):!1)},_mouseStart:function(b,c,d){var e,f,g=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,g.cursorAt&&this._adjustOffsetFromHelper(g.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),g.containment&&this._setContainment(),g.cursor&&"auto"!==g.cursor&&(f=this.document.find("body"),this.storedCursor=f.css("cursor"),f.css("cursor",g.cursor),this.storedStylesheet=a("<style>*{ cursor: "+g.cursor+" !important; }</style>").appendTo(f)),g.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",g.opacity)),g.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",g.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!d)for(e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("activate",b,this._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!g.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){var c,d,e,f,g=this.options,h=!1;for(this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY<g.scrollSensitivity?this.scrollParent[0].scrollTop=h=this.scrollParent[0].scrollTop+g.scrollSpeed:b.pageY-this.overflowOffset.top<g.scrollSensitivity&&(this.scrollParent[0].scrollTop=h=this.scrollParent[0].scrollTop-g.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-b.pageX<g.scrollSensitivity?this.scrollParent[0].scrollLeft=h=this.scrollParent[0].scrollLeft+g.scrollSpeed:b.pageX-this.overflowOffset.left<g.scrollSensitivity&&(this.scrollParent[0].scrollLeft=h=this.scrollParent[0].scrollLeft-g.scrollSpeed)):(b.pageY-this.document.scrollTop()<g.scrollSensitivity?h=this.document.scrollTop(this.document.scrollTop()-g.scrollSpeed):this.window.height()-(b.pageY-this.document.scrollTop())<g.scrollSensitivity&&(h=this.document.scrollTop(this.document.scrollTop()+g.scrollSpeed)),b.pageX-this.document.scrollLeft()<g.scrollSensitivity?h=this.document.scrollLeft(this.document.scrollLeft()-g.scrollSpeed):this.window.width()-(b.pageX-this.document.scrollLeft())<g.scrollSensitivity&&(h=this.document.scrollLeft(this.document.scrollLeft()+g.scrollSpeed))),h!==!1&&a.ui.ddmanager&&!g.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),c=this.items.length-1;c>=0;c--)if(d=this.items[c],e=d.item[0],f=this._intersectsWithPointer(d),f&&d.instance===this.currentContainer&&e!==this.currentItem[0]&&this.placeholder[1===f?"next":"prev"]()[0]!==e&&!a.contains(this.placeholder[0],e)&&("semi-dynamic"===this.options.type?!a.contains(this.element[0],e):!0)){if(this.direction=1===f?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(d))break;this._rearrange(b,d),this._trigger("change",b,this._uiHash());break}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(b){if(a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b),this.options.revert){var d=this,e=this.placeholder.offset(),f=this.options.axis,g={};f&&"x"!==f||(g.left=e.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),f&&"y"!==f||(g.top=e.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,a(this.helper).animate(g,parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--)this.containers[b]._trigger("deactivate",null,this._uiHash(this)),this.containers[b].containerCache.over&&(this.containers[b]._trigger("out",null,this._uiHash(this)),this.containers[b].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[\-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l="x"===this.options.axis||d+j>h&&i>d+j,m="y"===this.options.axis||b+k>f&&g>b+k,n=l&&m;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?n:f<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<g&&h<d+this.helperProportions.height/2&&e-this.helperProportions.height/2<i},_intersectsWithPointer:function(a){var b="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height),c="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width),d=b&&c,e=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();return d?this.floating?f&&"right"===f||"down"===e?2:1:e&&("down"===e?2:1):!1},_intersectsWithSides:function(a){var b=this._isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height),c=this._isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width),d=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?"right"===e&&c||"left"===e&&!c:d&&("down"===d&&b||"up"===d&&!b)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return 0!==a&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return 0!==a&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor===String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){function c(){h.push(this)}var d,e,f,g,h=[],i=[],j=this._connectWith();if(j&&b)for(d=j.length-1;d>=0;d--)for(f=a(j[d],this.document[0]),e=f.length-1;e>=0;e--)g=a.data(f[e],this.widgetFullName),g&&g!==this&&!g.options.disabled&&i.push([a.isFunction(g.options.items)?g.options.items.call(g.element):a(g.options.items,g.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),g]);for(i.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),d=i.length-1;d>=0;d--)i[d][0].each(c);return a(h)},_removeCurrentsFromItems:function(){var b=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=a.grep(this.items,function(a){for(var c=0;c<b.length;c++)if(b[c]===a.item[0])return!1;return!0})},_refreshItems:function(b){this.items=[],this.containers=[this];var c,d,e,f,g,h,i,j,k=this.items,l=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],b,{item:this.currentItem}):a(this.options.items,this.element),this]],m=this._connectWith();if(m&&this.ready)for(c=m.length-1;c>=0;c--)for(e=a(m[c],this.document[0]),d=e.length-1;d>=0;d--)f=a.data(e[d],this.widgetFullName),f&&f!==this&&!f.options.disabled&&(l.push([a.isFunction(f.options.items)?f.options.items.call(f.element[0],b,{item:this.currentItem}):a(f.options.items,f.element),f]),this.containers.push(f));for(c=l.length-1;c>=0;c--)for(g=l[c][1],h=l[c][0],d=0,j=h.length;j>d;d++)i=a(h[d]),i.data(this.widgetName+"-item",g),k.push({item:i,instance:g,width:0,height:0,left:0,top:0})},refreshPositions:function(b){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var c,d,e,f;for(c=this.items.length-1;c>=0;c--)d=this.items[c],d.instance!==this.currentContainer&&this.currentContainer&&d.item[0]!==this.currentItem[0]||(e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item,b||(d.width=e.outerWidth(),d.height=e.outerHeight()),f=e.offset(),d.left=f.left,d.top=f.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(c=this.containers.length-1;c>=0;c--)f=this.containers[c].element.offset(),this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight();return this},_createPlaceholder:function(b){b=b||this;var c,d=b.options;d.placeholder&&d.placeholder.constructor!==String||(c=d.placeholder,d.placeholder={element:function(){var d=b.currentItem[0].nodeName.toLowerCase(),e=a("<"+d+">",b.document[0]).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tbody"===d?b._createTrPlaceholder(b.currentItem.find("tr").eq(0),a("<tr>",b.document[0]).appendTo(e)):"tr"===d?b._createTrPlaceholder(b.currentItem,e):"img"===d&&e.attr("src",b.currentItem.attr("src")),c||e.css("visibility","hidden"),e},update:function(a,e){c&&!d.forcePlaceholderSize||(e.height()||e.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10)),e.width()||e.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10)))}}),b.placeholder=a(d.placeholder.element.call(b.element,b.currentItem)),b.currentItem.after(b.placeholder),d.placeholder.update(b,b.placeholder)},_createTrPlaceholder:function(b,c){var d=this;b.children().each(function(){a("<td>&#160;</td>",d.document[0]).attr("colspan",a(this).attr("colspan")||1).appendTo(c)})},_contactContainers:function(b){var c,d,e,f,g,h,i,j,k,l,m=null,n=null;for(c=this.containers.length-1;c>=0;c--)if(!a.contains(this.currentItem[0],this.containers[c].element[0]))if(this._intersectsWith(this.containers[c].containerCache)){if(m&&a.contains(this.containers[c].element[0],m.element[0]))continue;m=this.containers[c],n=c}else this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",b,this._uiHash(this)),this.containers[c].containerCache.over=0);if(m)if(1===this.containers.length)this.containers[n].containerCache.over||(this.containers[n]._trigger("over",b,this._uiHash(this)),this.containers[n].containerCache.over=1);else{for(e=1e4,f=null,k=m.floating||this._isFloating(this.currentItem),g=k?"left":"top",h=k?"width":"height",l=k?"clientX":"clientY",d=this.items.length-1;d>=0;d--)a.contains(this.containers[n].element[0],this.items[d].item[0])&&this.items[d].item[0]!==this.currentItem[0]&&(i=this.items[d].item.offset()[g],j=!1,b[l]-i>this.items[d][h]/2&&(j=!0),Math.abs(b[l]-i)<e&&(e=Math.abs(b[l]-i),f=this.items[d],this.direction=j?"up":"down"));if(!f&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[n])return void(this.currentContainer.containerCache.over||(this.containers[n]._trigger("over",b,this._uiHash()),this.currentContainer.containerCache.over=1));f?this._rearrange(b,f,null,!0):this._rearrange(b,null,this.containers[n].element,!0),this._trigger("change",b,this._uiHash()),this.containers[n]._trigger("change",b,this._uiHash(this)),this.currentContainer=this.containers[n],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[n]._trigger("over",b,this._uiHash(this)),this.containers[n].containerCache.over=1}},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b,this.currentItem])):"clone"===c.helper?this.currentItem.clone():this.currentItem;return d.parents("body").length||a("parent"!==c.appendTo?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]),d[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),d[0].style.width&&!c.forceHelperSize||d.width(this.currentItem.width()),d[0].style.height&&!c.forceHelperSize||d.height(this.currentItem.height()),d},_adjustOffsetFromHelper:function(b){"string"==typeof b&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&a.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&a.ui.ie)&&(b={top:0,left:0}),{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b,c,d,e=this.options;"parent"===e.containment&&(e.containment=this.helper[0].parentNode),"document"!==e.containment&&"window"!==e.containment||(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===e.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===e.containment?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(e.containment)||(b=a(e.containment)[0],c=a(e.containment).offset(),d="hidden"!==a(b).css("overflow"),this.containment=[c.left+(parseInt(a(b).css("borderLeftWidth"),10)||0)+(parseInt(a(b).css("paddingLeft"),10)||0)-this.margins.left,c.top+(parseInt(a(b).css("borderTopWidth"),10)||0)+(parseInt(a(b).css("paddingTop"),10)||0)-this.margins.top,c.left+(d?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(a(b).css("borderLeftWidth"),10)||0)-(parseInt(a(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,c.top+(d?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(a(b).css("borderTopWidth"),10)||0)-(parseInt(a(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(b,c){c||(c=this.position);var d="absolute"===b?1:-1,e="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&a.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,f=/(html|body)/i.test(e[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():f?0:e.scrollTop())*d,left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():f?0:e.scrollLeft())*d}},_generatePosition:function(b){var c,d,e=this.options,f=b.pageX,g=b.pageY,h="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&a.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(h[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(b.pageX-this.offset.click.left<this.containment[0]&&(f=this.containment[0]+this.offset.click.left),b.pageY-this.offset.click.top<this.containment[1]&&(g=this.containment[1]+this.offset.click.top),
+b.pageX-this.offset.click.left>this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top)),e.grid&&(c=this.originalPageY+Math.round((g-this.originalPageY)/e.grid[1])*e.grid[1],g=this.containment?c-this.offset.click.top>=this.containment[1]&&c-this.offset.click.top<=this.containment[3]?c:c-this.offset.click.top>=this.containment[1]?c-e.grid[1]:c+e.grid[1]:c,d=this.originalPageX+Math.round((f-this.originalPageX)/e.grid[0])*e.grid[0],f=this.containment?d-this.offset.click.left>=this.containment[0]&&d-this.offset.click.left<=this.containment[2]?d:d-this.offset.click.left>=this.containment[0]?d-e.grid[0]:d+e.grid[0]:d)),{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():i?0:h.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():i?0:h.scrollLeft())}},_rearrange:function(a,b,c,d){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?b.item[0]:b.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var e=this.counter;this._delay(function(){e===this.counter&&this.refreshPositions(!d)})},_clear:function(a,b){function c(a,b,c){return function(d){c._trigger(a,d,b._uiHash(b))}}this.reverting=!1;var d,e=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(d in this._storedCSS)"auto"!==this._storedCSS[d]&&"static"!==this._storedCSS[d]||(this._storedCSS[d]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!b&&e.push(function(a){this._trigger("receive",a,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||b||e.push(function(a){this._trigger("update",a,this._uiHash())}),this!==this.currentContainer&&(b||(e.push(function(a){this._trigger("remove",a,this._uiHash())}),e.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.currentContainer)),e.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.currentContainer)))),d=this.containers.length-1;d>=0;d--)b||e.push(c("deactivate",this,this.containers[d])),this.containers[d].containerCache.over&&(e.push(c("out",this,this.containers[d])),this.containers[d].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,b||this._trigger("beforeStop",a,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!b){for(d=0;d<e.length;d++)e[d].call(this,a);this._trigger("stop",a,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){a.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(b){var c=b||this;return{helper:c.helper,placeholder:c.placeholder||a([]),position:c.position,originalPosition:c.originalPosition,offset:c.positionAbs,item:c.currentItem,sender:b?b.element:null}}}),a.widget("ui.spinner",{version:"1.11.4",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var b={},c=this.element;return a.each(["min","max","step"],function(a,d){var e=c.attr(d);void 0!==e&&e.length&&(b[d]=e)}),b},_events:{keydown:function(a){this._start(a)&&this._keydown(a)&&a.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(a){return this.cancelBlur?void delete this.cancelBlur:(this._stop(),this._refresh(),void(this.previous!==this.element.val()&&this._trigger("change",a)))},mousewheel:function(a,b){if(b){if(!this.spinning&&!this._start(a))return!1;this._spin((b>0?1:-1)*this.options.step,a),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(a)},100),a.preventDefault()}},"mousedown .ui-spinner-button":function(b){function c(){var a=this.element[0]===this.document[0].activeElement;a||(this.element.focus(),this.previous=d,this._delay(function(){this.previous=d}))}var d;d=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),b.preventDefault(),c.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,c.call(this)}),this._start(b)!==!1&&this._repeat(null,a(b.currentTarget).hasClass("ui-spinner-up")?1:-1,b)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(b){return a(b.currentTarget).hasClass("ui-state-active")?this._start(b)===!1?!1:void this._repeat(null,a(b.currentTarget).hasClass("ui-spinner-up")?1:-1,b):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var a=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=a.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*a.height())&&a.height()>0&&a.height(a.height()),this.options.disabled&&this.disable()},_keydown:function(b){var c=this.options,d=a.ui.keyCode;switch(b.keyCode){case d.UP:return this._repeat(null,1,b),!0;case d.DOWN:return this._repeat(null,-1,b),!0;case d.PAGE_UP:return this._repeat(null,c.page,b),!0;case d.PAGE_DOWN:return this._repeat(null,-c.page,b),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>&#9650;</span></a><a class='ui-spinner-button ui-spinner-down ui-corner-br'><span class='ui-icon "+this.options.icons.down+"'>&#9660;</span></a>"},_start:function(a){return this.spinning||this._trigger("start",a)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(a,b,c){a=a||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,b,c)},a),this._spin(b*this.options.step,c)},_spin:function(a,b){var c=this.value()||0;this.counter||(this.counter=1),c=this._adjustValue(c+a*this._increment(this.counter)),this.spinning&&this._trigger("spin",b,{value:c})===!1||(this._value(c),this.counter++)},_increment:function(b){var c=this.options.incremental;return c?a.isFunction(c)?c(b):Math.floor(b*b*b/5e4-b*b/500+17*b/200+1):1},_precision:function(){var a=this._precisionOf(this.options.step);return null!==this.options.min&&(a=Math.max(a,this._precisionOf(this.options.min))),a},_precisionOf:function(a){var b=a.toString(),c=b.indexOf(".");return-1===c?0:b.length-c-1},_adjustValue:function(a){var b,c,d=this.options;return b=null!==d.min?d.min:0,c=a-b,c=Math.round(c/d.step)*d.step,a=b+c,a=parseFloat(a.toFixed(this._precision())),null!==d.max&&a>d.max?d.max:null!==d.min&&a<d.min?d.min:a},_stop:function(a){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",a))},_setOption:function(a,b){if("culture"===a||"numberFormat"===a){var c=this._parse(this.element.val());return this.options[a]=b,void this.element.val(this._format(c))}"max"!==a&&"min"!==a&&"step"!==a||"string"==typeof b&&(b=this._parse(b)),"icons"===a&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(b.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(b.down)),this._super(a,b),"disabled"===a&&(this.widget().toggleClass("ui-state-disabled",!!b),this.element.prop("disabled",!!b),this.buttons.button(b?"disable":"enable"))},_setOptions:i(function(a){this._super(a)}),_parse:function(a){return"string"==typeof a&&""!==a&&(a=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(a,10,this.options.culture):+a),""===a||isNaN(a)?null:a},_format:function(a){return""===a?"":window.Globalize&&this.options.numberFormat?Globalize.format(a,this.options.numberFormat,this.options.culture):a},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var a=this.value();return null===a?!1:a===this._adjustValue(a)},_value:function(a,b){var c;""!==a&&(c=this._parse(a),null!==c&&(b||(c=this._adjustValue(c)),a=this._format(c))),this.element.val(a),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:i(function(a){this._stepUp(a)}),_stepUp:function(a){this._start()&&(this._spin((a||1)*this.options.step),this._stop())},stepDown:i(function(a){this._stepDown(a)}),_stepDown:function(a){this._start()&&(this._spin((a||1)*-this.options.step),this._stop())},pageUp:i(function(a){this._stepUp((a||1)*this.options.page)}),pageDown:i(function(a){this._stepDown((a||1)*this.options.page)}),value:function(a){return arguments.length?void i(this._value).call(this,a):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),a.widget("ui.tabs",{version:"1.11.4",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var a=/#.*$/;return function(b){var c,d;b=b.cloneNode(!1),c=b.href.replace(a,""),d=location.href.replace(a,"");try{c=decodeURIComponent(c)}catch(e){}try{d=decodeURIComponent(d)}catch(e){}return b.hash.length>1&&c===d}}(),_create:function(){var b=this,c=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",c.collapsible),this._processTabs(),c.active=this._initialActive(),a.isArray(c.disabled)&&(c.disabled=a.unique(c.disabled.concat(a.map(this.tabs.filter(".ui-state-disabled"),function(a){return b.tabs.index(a)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(c.active):this.active=a(),this._refresh(),this.active.length&&this.load(c.active)},_initialActive:function(){var b=this.options.active,c=this.options.collapsible,d=location.hash.substring(1);return null===b&&(d&&this.tabs.each(function(c,e){return a(e).attr("aria-controls")===d?(b=c,!1):void 0}),null===b&&(b=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),null!==b&&-1!==b||(b=this.tabs.length?0:!1)),b!==!1&&(b=this.tabs.index(this.tabs.eq(b)),-1===b&&(b=c?!1:0)),!c&&b===!1&&this.anchors.length&&(b=0),b},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):a()}},_tabKeydown:function(b){var c=a(this.document[0].activeElement).closest("li"),d=this.tabs.index(c),e=!0;if(!this._handlePageNav(b)){switch(b.keyCode){case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:d++;break;case a.ui.keyCode.UP:case a.ui.keyCode.LEFT:e=!1,d--;break;case a.ui.keyCode.END:d=this.anchors.length-1;break;case a.ui.keyCode.HOME:d=0;break;case a.ui.keyCode.SPACE:return b.preventDefault(),clearTimeout(this.activating),void this._activate(d);case a.ui.keyCode.ENTER:return b.preventDefault(),clearTimeout(this.activating),void this._activate(d===this.options.active?!1:d);default:return}b.preventDefault(),clearTimeout(this.activating),d=this._focusNextTab(d,e),b.ctrlKey||b.metaKey||(c.attr("aria-selected","false"),this.tabs.eq(d).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",d)},this.delay))}},_panelKeydown:function(b){this._handlePageNav(b)||b.ctrlKey&&b.keyCode===a.ui.keyCode.UP&&(b.preventDefault(),this.active.focus())},_handlePageNav:function(b){return b.altKey&&b.keyCode===a.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):b.altKey&&b.keyCode===a.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(b,c){function d(){return b>e&&(b=0),0>b&&(b=e),b}for(var e=this.tabs.length-1;-1!==a.inArray(d(),this.options.disabled);)b=c?b+1:b-1;return b},_focusNextTab:function(a,b){return a=this._findNextTab(a,b),this.tabs.eq(a).focus(),a},_setOption:function(a,b){return"active"===a?void this._activate(b):"disabled"===a?void this._setupDisabled(b):(this._super(a,b),"collapsible"===a&&(this.element.toggleClass("ui-tabs-collapsible",b),b||this.options.active!==!1||this._activate(0)),"event"===a&&this._setupEvents(b),void("heightStyle"===a&&this._setupHeightStyle(b)))},_sanitizeSelector:function(a){return a?a.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var b=this.options,c=this.tablist.children(":has(a[href])");b.disabled=a.map(c.filter(".ui-state-disabled"),function(a){return c.index(a)}),this._processTabs(),b.active!==!1&&this.anchors.length?this.active.length&&!a.contains(this.tablist[0],this.active[0])?this.tabs.length===b.disabled.length?(b.active=!1,this.active=a()):this._activate(this._findNextTab(Math.max(0,b.active-1),!1)):b.active=this.tabs.index(this.active):(b.active=!1,this.active=a()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var b=this,c=this.tabs,d=this.anchors,e=this.panels;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(b){a(this).is(".ui-state-disabled")&&b.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){a(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return a("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=a(),this.anchors.each(function(c,d){var e,f,g,h=a(d).uniqueId().attr("id"),i=a(d).closest("li"),j=i.attr("aria-controls");b._isLocal(d)?(e=d.hash,g=e.substring(1),f=b.element.find(b._sanitizeSelector(e))):(g=i.attr("aria-controls")||a({}).uniqueId()[0].id,e="#"+g,f=b.element.find(e),f.length||(f=b._createPanel(g),f.insertAfter(b.panels[c-1]||b.tablist)),f.attr("aria-live","polite")),f.length&&(b.panels=b.panels.add(f)),j&&i.data("ui-tabs-aria-controls",j),i.attr({"aria-controls":g,"aria-labelledby":h}),f.attr("aria-labelledby",h)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel"),c&&(this._off(c.not(this.tabs)),this._off(d.not(this.anchors)),this._off(e.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(b){return a("<div>").attr("id",b).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(b){a.isArray(b)&&(b.length?b.length===this.anchors.length&&(b=!0):b=!1);for(var c,d=0;c=this.tabs[d];d++)b===!0||-1!==a.inArray(d,b)?a(c).addClass("ui-state-disabled").attr("aria-disabled","true"):a(c).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=b},_setupEvents:function(b){var c={};b&&a.each(b.split(" "),function(a,b){c[b]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(a){a.preventDefault()}}),this._on(this.anchors,c),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(b){var c,d=this.element.parent();"fill"===b?(c=d.height(),c-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var b=a(this),d=b.css("position");"absolute"!==d&&"fixed"!==d&&(c-=b.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){c-=a(this).outerHeight(!0)}),this.panels.each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")):"auto"===b&&(c=0,this.panels.each(function(){c=Math.max(c,a(this).height("").height())}).height(c))},_eventHandler:function(b){var c=this.options,d=this.active,e=a(b.currentTarget),f=e.closest("li"),g=f[0]===d[0],h=g&&c.collapsible,i=h?a():this._getPanelForTab(f),j=d.length?this._getPanelForTab(d):a(),k={oldTab:d,oldPanel:j,newTab:h?a():f,newPanel:i};b.preventDefault(),f.hasClass("ui-state-disabled")||f.hasClass("ui-tabs-loading")||this.running||g&&!c.collapsible||this._trigger("beforeActivate",b,k)===!1||(c.active=h?!1:this.tabs.index(f),this.active=g?a():f,this.xhr&&this.xhr.abort(),j.length||i.length||a.error("jQuery UI Tabs: Mismatching fragment identifier."),i.length&&this.load(this.tabs.index(f),b),this._toggle(b,k))},_toggle:function(b,c){function d(){f.running=!1,f._trigger("activate",b,c)}function e(){c.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),g.length&&f.options.show?f._show(g,f.options.show,d):(g.show(),d())}var f=this,g=c.newPanel,h=c.oldPanel;this.running=!0,h.length&&this.options.hide?this._hide(h,this.options.hide,function(){c.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),e()}):(c.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),h.hide(),e()),h.attr("aria-hidden","true"),c.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),g.length&&h.length?c.oldTab.attr("tabIndex",-1):g.length&&this.tabs.filter(function(){return 0===a(this).attr("tabIndex")}).attr("tabIndex",-1),g.attr("aria-hidden","false"),c.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(b){var c,d=this._findActive(b);d[0]!==this.active[0]&&(d.length||(d=this.active),c=d.find(".ui-tabs-anchor")[0],this._eventHandler({target:c,currentTarget:c,preventDefault:a.noop}))},_findActive:function(b){return b===!1?a():this.tabs.eq(b)},_getIndex:function(a){return"string"==typeof a&&(a=this.anchors.index(this.anchors.filter("[href$='"+a+"']"))),a},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tablist.unbind(this.eventNamespace),this.tabs.add(this.panels).each(function(){a.data(this,"ui-tabs-destroy")?a(this).remove():a(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var b=a(this),c=b.data("ui-tabs-aria-controls");c?b.attr("aria-controls",c).removeData("ui-tabs-aria-controls"):b.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(b){var c=this.options.disabled;c!==!1&&(void 0===b?c=!1:(b=this._getIndex(b),c=a.isArray(c)?a.map(c,function(a){return a!==b?a:null}):a.map(this.tabs,function(a,c){return c!==b?c:null})),this._setupDisabled(c))},disable:function(b){var c=this.options.disabled;if(c!==!0){if(void 0===b)c=!0;else{if(b=this._getIndex(b),-1!==a.inArray(b,c))return;c=a.isArray(c)?a.merge([b],c).sort():[b]}this._setupDisabled(c)}},load:function(b,c){b=this._getIndex(b);var d=this,e=this.tabs.eq(b),f=e.find(".ui-tabs-anchor"),g=this._getPanelForTab(e),h={tab:e,panel:g},i=function(a,b){"abort"===b&&d.panels.stop(!1,!0),e.removeClass("ui-tabs-loading"),g.removeAttr("aria-busy"),a===d.xhr&&delete d.xhr};this._isLocal(f[0])||(this.xhr=a.ajax(this._ajaxSettings(f,c,h)),this.xhr&&"canceled"!==this.xhr.statusText&&(e.addClass("ui-tabs-loading"),g.attr("aria-busy","true"),this.xhr.done(function(a,b,e){setTimeout(function(){g.html(a),d._trigger("load",c,h),i(e,b)},1)}).fail(function(a,b){setTimeout(function(){i(a,b)},1)})))},_ajaxSettings:function(b,c,d){var e=this;return{url:b.attr("href"),beforeSend:function(b,f){return e._trigger("beforeLoad",c,a.extend({jqXHR:b,ajaxSettings:f},d))}}},_getPanelForTab:function(b){var c=a(b).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+c))}}),a.widget("ui.tooltip",{version:"1.11.4",options:{content:function(){var b=a(this).attr("title")||"";return a("<a>").text(b).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_addDescribedBy:function(b,c){var d=(b.attr("aria-describedby")||"").split(/\s+/);d.push(c),b.data("ui-tooltip-id",c).attr("aria-describedby",a.trim(d.join(" ")))},_removeDescribedBy:function(b){var c=b.data("ui-tooltip-id"),d=(b.attr("aria-describedby")||"").split(/\s+/),e=a.inArray(c,d);-1!==e&&d.splice(e,1),b.removeData("ui-tooltip-id"),d=a.trim(d.join(" ")),d?b.attr("aria-describedby",d):b.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable(),this.liveRegion=a("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(b,c){var d=this;return"disabled"===b?(this[c?"_disable":"_enable"](),void(this.options[b]=c)):(this._super(b,c),void("content"===b&&a.each(this.tooltips,function(a,b){d._updateContent(b.element)})))},_disable:function(){var b=this;a.each(this.tooltips,function(c,d){var e=a.Event("blur");e.target=e.currentTarget=d.element[0],b.close(e,!0)}),this.element.find(this.options.items).addBack().each(function(){var b=a(this);b.is("[title]")&&b.data("ui-tooltip-title",b.attr("title")).removeAttr("title")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var b=a(this);b.data("ui-tooltip-title")&&b.attr("title",b.data("ui-tooltip-title"))})},open:function(b){var c=this,d=a(b?b.target:this.element).closest(this.options.items);d.length&&!d.data("ui-tooltip-id")&&(d.attr("title")&&d.data("ui-tooltip-title",d.attr("title")),d.data("ui-tooltip-open",!0),b&&"mouseover"===b.type&&d.parents().each(function(){var b,d=a(this);d.data("ui-tooltip-open")&&(b=a.Event("blur"),b.target=b.currentTarget=this,c.close(b,!0)),d.attr("title")&&(d.uniqueId(),c.parents[this.id]={element:this,title:d.attr("title")},d.attr("title",""))}),this._registerCloseHandlers(b,d),this._updateContent(d,b))},_updateContent:function(a,b){var c,d=this.options.content,e=this,f=b?b.type:null;return"string"==typeof d?this._open(b,a,d):(c=d.call(a[0],function(c){e._delay(function(){a.data("ui-tooltip-open")&&(b&&(b.type=f),this._open(b,a,c))})}),void(c&&this._open(b,a,c)))},_open:function(b,c,d){function e(a){j.of=a,g.is(":hidden")||g.position(j)}var f,g,h,i,j=a.extend({},this.options.position);if(d){if(f=this._find(c))return void f.tooltip.find(".ui-tooltip-content").html(d);c.is("[title]")&&(b&&"mouseover"===b.type?c.attr("title",""):c.removeAttr("title")),f=this._tooltip(c),g=f.tooltip,this._addDescribedBy(c,g.attr("id")),g.find(".ui-tooltip-content").html(d),this.liveRegion.children().hide(),d.clone?(i=d.clone(),i.removeAttr("id").find("[id]").removeAttr("id")):i=d,a("<div>").html(i).appendTo(this.liveRegion),this.options.track&&b&&/^mouse/.test(b.type)?(this._on(this.document,{mousemove:e}),e(b)):g.position(a.extend({of:c},this.options.position)),g.hide(),this._show(g,this.options.show),this.options.show&&this.options.show.delay&&(h=this.delayedShow=setInterval(function(){g.is(":visible")&&(e(j.of),clearInterval(h))},a.fx.interval)),this._trigger("open",b,{tooltip:g})}},_registerCloseHandlers:function(b,c){var d={keyup:function(b){if(b.keyCode===a.ui.keyCode.ESCAPE){var d=a.Event(b);d.currentTarget=c[0],this.close(d,!0)}}};c[0]!==this.element[0]&&(d.remove=function(){this._removeTooltip(this._find(c).tooltip)}),b&&"mouseover"!==b.type||(d.mouseleave="close"),b&&"focusin"!==b.type||(d.focusout="close"),this._on(!0,c,d)},close:function(b){var c,d=this,e=a(b?b.currentTarget:this.element),f=this._find(e);return f?(c=f.tooltip,void(f.closing||(clearInterval(this.delayedShow),e.data("ui-tooltip-title")&&!e.attr("title")&&e.attr("title",e.data("ui-tooltip-title")),this._removeDescribedBy(e),f.hiding=!0,c.stop(!0),this._hide(c,this.options.hide,function(){d._removeTooltip(a(this))}),e.removeData("ui-tooltip-open"),this._off(e,"mouseleave focusout keyup"),e[0]!==this.element[0]&&this._off(e,"remove"),this._off(this.document,"mousemove"),b&&"mouseleave"===b.type&&a.each(this.parents,function(b,c){a(c.element).attr("title",c.title),delete d.parents[b]}),f.closing=!0,this._trigger("close",b,{tooltip:c}),f.hiding||(f.closing=!1)))):void e.removeData("ui-tooltip-open")},_tooltip:function(b){var c=a("<div>").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),d=c.uniqueId().attr("id");return a("<div>").addClass("ui-tooltip-content").appendTo(c),c.appendTo(this.document[0].body),this.tooltips[d]={element:b,tooltip:c}},_find:function(a){var b=a.data("ui-tooltip-id");return b?this.tooltips[b]:null},_removeTooltip:function(a){a.remove(),delete this.tooltips[a.attr("id")]},_destroy:function(){var b=this;a.each(this.tooltips,function(c,d){var e=a.Event("blur"),f=d.element;e.target=e.currentTarget=f[0],b.close(e,!0),a("#"+c).remove(),f.data("ui-tooltip-title")&&(f.attr("title")||f.attr("title",f.data("ui-tooltip-title")),f.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}})}),function(a,b,c){"use strict";b.module("ui.sortable",[]).value("uiSortableConfig",{}).directive("uiSortable",["uiSortableConfig","$timeout","$log",function(a,d,e){return{require:"?ngModel",scope:{ngModel:"=",uiSortable:"="},link:function(f,g,h,i){function j(a,b){return b&&"function"==typeof b?function(){a.apply(this,arguments),b.apply(this,arguments)}:a}function k(a){var b=a.data("ui-sortable");return b&&"object"==typeof b&&"ui-sortable"===b.widgetFullName?b:null}function l(a,b){var c=a.sortable("option","helper");return"clone"===c||"function"==typeof c&&b.item.sortable.isCustomHelperUsed()}function m(a){return/left|right/.test(a.css("float"))||/inline|table-cell/.test(a.css("display"))}function n(a,b){for(var c=null,d=0;d<a.length;d++){var e=a[d];if(e.element[0]===b[0]){c=e.scope;break}}return c}function o(a,b){b.item.sortable._destroy()}var p,q={},r={"ui-floating":c},s={receive:null,remove:null,start:null,stop:null,update:null},t={helper:null};return b.extend(q,r,a,f.uiSortable),b.element.fn&&b.element.fn.jquery?(i?(f.$watch("ngModel.length",function(){d(function(){k(g)&&g.sortable("refresh")},0,!1)}),s.start=function(a,d){if("auto"===q["ui-floating"]){var e=d.item.siblings(),f=k(b.element(a.target));f.floating=m(e)}d.item.sortable={model:i.$modelValue[d.item.index()],index:d.item.index(),source:d.item.parent(),sourceModel:i.$modelValue,cancel:function(){d.item.sortable._isCanceled=!0},isCanceled:function(){return d.item.sortable._isCanceled},isCustomHelperUsed:function(){return!!d.item.sortable._isCustomHelperUsed},_isCanceled:!1,_isCustomHelperUsed:d.item.sortable._isCustomHelperUsed,_destroy:function(){b.forEach(d.item.sortable,function(a,b){d.item.sortable[b]=c})}}},s.activate=function(a,c){p=g.contents();var d=g.sortable("option","placeholder");if(d&&d.element&&"function"==typeof d.element){var e=d.element();e=b.element(e);var h=g.find('[class="'+e.attr("class")+'"]:not([ng-repeat], [data-ng-repeat])');p=p.not(h)}var i=c.item.sortable._connectedSortables||[];i.push({element:g,scope:f}),c.item.sortable._connectedSortables=i},s.update=function(a,b){if(!b.item.sortable.received){b.item.sortable.dropindex=b.item.index();var c=b.item.parent();b.item.sortable.droptarget=c;var d=n(b.item.sortable._connectedSortables,c);b.item.sortable.droptargetModel=d.ngModel,g.sortable("cancel")}l(g,b)&&!b.item.sortable.received&&"parent"===g.sortable("option","appendTo")&&(p=p.not(p.last())),p.appendTo(g),b.item.sortable.received&&(p=null),b.item.sortable.received&&!b.item.sortable.isCanceled()&&f.$apply(function(){i.$modelValue.splice(b.item.sortable.dropindex,0,b.item.sortable.moved)})},s.stop=function(a,b){!b.item.sortable.received&&"dropindex"in b.item.sortable&&!b.item.sortable.isCanceled()?f.$apply(function(){i.$modelValue.splice(b.item.sortable.dropindex,0,i.$modelValue.splice(b.item.sortable.index,1)[0])}):"dropindex"in b.item.sortable&&!b.item.sortable.isCanceled()||l(g,b)||p.appendTo(g),p=null},s.receive=function(a,b){b.item.sortable.received=!0},s.remove=function(a,b){"dropindex"in b.item.sortable||(g.sortable("cancel"),b.item.sortable.cancel()),b.item.sortable.isCanceled()||f.$apply(function(){b.item.sortable.moved=i.$modelValue.splice(b.item.sortable.index,1)[0]})},t.helper=function(a){return a&&"function"==typeof a?function(b,c){var d=a.apply(this,arguments);return c.sortable._isCustomHelperUsed=c!==d,d}:a},f.$watch("uiSortable",function(a){var c=k(g);c&&b.forEach(a,function(a,b){return b in r?("ui-floating"!==b||a!==!1&&a!==!0||(c.floating=a),void(q[b]=a)):(s[b]?("stop"===b&&(a=j(a,function(){f.$apply()}),a=j(a,o)),a=j(s[b],a)):t[b]&&(a=t[b](a)),q[b]=a,void g.sortable("option",b,a))})},!0),b.forEach(s,function(a,b){q[b]=j(a,q[b]),"stop"===b&&(q[b]=j(q[b],o))})):e.info("ui.sortable: ngModel not provided!",g),void g.sortable(q)):void e.error("ui.sortable: jQuery should be included before AngularJS!")}}}])}(window,window.angular),function(){function a(a,b){return a.set(b[0],b[1]),a}function b(a,b){return a.add(b),a}function c(a,b,c){var d=c.length;switch(d){case 0:return a.call(b);case 1:return a.call(b,c[0]);case 2:return a.call(b,c[0],c[1]);case 3:return a.call(b,c[0],c[1],c[2])}return a.apply(b,c)}function d(a,b,c,d){for(var e=-1,f=a.length;++e<f;){var g=a[e];b(d,g,c(g),a)}return d}function e(a,b){for(var c=-1,d=a.length,e=-1,f=b.length,g=Array(d+f);++c<d;)g[c]=a[c];for(;++e<f;)g[c++]=b[e];return g}function f(a,b){for(var c=-1,d=a.length;++c<d&&b(a[c],c,a)!==!1;);return a}function g(a,b){for(var c=a.length;c--&&b(a[c],c,a)!==!1;);return a}function h(a,b){for(var c=-1,d=a.length;++c<d;)if(!b(a[c],c,a))return!1;
+return!0}function i(a,b){for(var c=-1,d=a.length,e=0,f=[];++c<d;){var g=a[c];b(g,c,a)&&(f[e++]=g)}return f}function j(a,b){return!!a.length&&t(a,b,0)>-1}function k(a,b,c){for(var d=-1,e=a.length;++d<e;)if(c(b,a[d]))return!0;return!1}function l(a,b){for(var c=-1,d=a.length,e=Array(d);++c<d;)e[c]=b(a[c],c,a);return e}function m(a,b){for(var c=-1,d=b.length,e=a.length;++c<d;)a[e+c]=b[c];return a}function n(a,b,c,d){var e=-1,f=a.length;for(d&&f&&(c=a[++e]);++e<f;)c=b(c,a[e],e,a);return c}function o(a,b,c,d){var e=a.length;for(d&&e&&(c=a[--e]);e--;)c=b(c,a[e],e,a);return c}function p(a,b){for(var c=-1,d=a.length;++c<d;)if(b(a[c],c,a))return!0;return!1}function q(a,b,c){for(var d=-1,e=a.length;++d<e;){var f=a[d],g=b(f);if(null!=g&&(h===W?g===g:c(g,h)))var h=g,i=f}return i}function r(a,b,c,d){var e;return c(a,function(a,c,f){return b(a,c,f)?(e=d?c:a,!1):void 0}),e}function s(a,b,c){for(var d=a.length,e=c?d:-1;c?e--:++e<d;)if(b(a[e],e,a))return e;return-1}function t(a,b,c){if(b!==b)return L(a,c);for(var d=c-1,e=a.length;++d<e;)if(a[d]===b)return d;return-1}function u(a,b,c,d){for(var e=c-1,f=a.length;++e<f;)if(d(a[e],b))return e;return-1}function v(a,b,c,d,e){return e(a,function(a,e,f){c=d?(d=!1,a):b(c,a,e,f)}),c}function w(a,b){var c=a.length;for(a.sort(b);c--;)a[c]=a[c].value;return a}function x(a,b){for(var c,d=-1,e=a.length;++d<e;){var f=b(a[d]);f!==W&&(c=c===W?f:c+f)}return c}function y(a,b){for(var c=-1,d=Array(a);++c<a;)d[c]=b(c);return d}function z(a,b){return l(b,function(b){return[b,a[b]]})}function A(a){return function(b){return a(b)}}function B(a,b){return l(b,function(b){return a[b]})}function C(a,b){for(var c=-1,d=a.length;++c<d&&t(b,a[c],0)>-1;);return c}function D(a,b){for(var c=a.length;c--&&t(b,a[c],0)>-1;);return c}function E(a){return a&&a.Object===Object?a:null}function F(a,b){if(a!==b){var c=null===a,d=a===W,e=a===a,f=null===b,g=b===W,h=b===b;if(a>b&&!f||!e||c&&!g&&h||d&&h)return 1;if(b>a&&!c||!h||f&&!d&&e||g&&e)return-1}return 0}function G(a,b,c){for(var d=-1,e=a.criteria,f=b.criteria,g=e.length,h=c.length;++d<g;){var i=F(e[d],f[d]);if(i){if(d>=h)return i;var j=c[d];return i*("desc"==j?-1:1)}}return a.index-b.index}function H(a,b){for(var c=a.length,d=0;c--;)a[c]===b&&d++;return d}function I(a){return sc[a]}function J(a){return tc[a]}function K(a){return"\\"+wc[a]}function L(a,b,c){for(var d=a.length,e=b+(c?0:-1);c?e--:++e<d;){var f=a[e];if(f!==f)return e}return-1}function M(a){var b=!1;if(null!=a&&"function"!=typeof a.toString)try{b=!!(a+"")}catch(c){}return b}function N(a,b){return a="number"==typeof a||yb.test(a)?+a:-1,b=null==b?ua:b,a>-1&&a%1==0&&b>a}function O(a){for(var b,c=[];!(b=a.next()).done;)c.push(b.value);return c}function P(a){var b=-1,c=Array(a.size);return a.forEach(function(a,d){c[++b]=[d,a]}),c}function Q(a,b){for(var c=-1,d=a.length,e=0,f=[];++c<d;){var g=a[c];g!==b&&g!==_||(a[c]=_,f[e++]=c)}return f}function R(a){var b=-1,c=Array(a.size);return a.forEach(function(a){c[++b]=a}),c}function S(a){if(!a||!kc.test(a))return a.length;for(var b=jc.lastIndex=0;jc.test(a);)b++;return b}function T(a){return a.match(jc)}function U(a){return uc[a]}function V(E){function yb(a){if(Og(a)&&!zk(a)&&!(a instanceof Eb)){if(a instanceof Db)return a;if(Vi.call(a,"__wrapped__"))return He(a)}return new Db(a)}function Cb(){}function Db(a,b){this.__wrapped__=a,this.__actions__=[],this.__chain__=!!b,this.__index__=0,this.__values__=W}function Eb(a){this.__wrapped__=a,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=xa,this.__views__=[]}function Fb(){var a=new Eb(this.__wrapped__);return a.__actions__=Md(this.__actions__),a.__dir__=this.__dir__,a.__filtered__=this.__filtered__,a.__iteratees__=Md(this.__iteratees__),a.__takeCount__=this.__takeCount__,a.__views__=Md(this.__views__),a}function Gb(){if(this.__filtered__){var a=new Eb(this);a.__dir__=-1,a.__filtered__=!0}else a=this.clone(),a.__dir__*=-1;return a}function Hb(){var a=this.__wrapped__.value(),b=this.__dir__,c=zk(a),d=0>b,e=c?a.length:0,f=qe(0,e,this.__views__),g=f.start,h=f.end,i=h-g,j=d?h:g-1,k=this.__iteratees__,l=k.length,m=0,n=sj(i,this.__takeCount__);if(!c||Y>e||e==i&&n==i)return Ad(a,this.__actions__);var o=[];a:for(;i--&&n>m;){j+=b;for(var p=-1,q=a[j];++p<l;){var r=k[p],s=r.iteratee,t=r.type,u=s(q);if(t==ra)q=u;else if(!u){if(t==qa)continue a;break a}}o[m++]=q}return o}function Ib(){}function Jb(a,b){return Lb(a,b)&&delete a[b]}function Kb(a,b){if(zj){var c=a[b];return c===$?W:c}return Vi.call(a,b)?a[b]:W}function Lb(a,b){return zj?a[b]!==W:Vi.call(a,b)}function Mb(a,b,c){a[b]=zj&&c===W?$:c}function Nb(a){var b=-1,c=a?a.length:0;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}function Ob(){this.__data__={hash:new Ib,map:wj?new wj:[],string:new Ib}}function Pb(a){var b=this.__data__;return ye(a)?Jb("string"==typeof a?b.string:b.hash,a):wj?b.map["delete"](a):ac(b.map,a)}function Qb(a){var b=this.__data__;return ye(a)?Kb("string"==typeof a?b.string:b.hash,a):wj?b.map.get(a):bc(b.map,a)}function Rb(a){var b=this.__data__;return ye(a)?Lb("string"==typeof a?b.string:b.hash,a):wj?b.map.has(a):cc(b.map,a)}function Sb(a,b){var c=this.__data__;return ye(a)?Mb("string"==typeof a?c.string:c.hash,a,b):wj?c.map.set(a,b):ec(c.map,a,b),this}function Tb(a){var b=-1,c=a?a.length:0;for(this.__data__=new Nb;++b<c;)this.push(a[b])}function Ub(a,b){var c=a.__data__;if(ye(b)){var d=c.__data__,e="string"==typeof b?d.string:d.hash;return e[b]===$}return c.has(b)}function Vb(a){var b=this.__data__;if(ye(a)){var c=b.__data__,d="string"==typeof a?c.string:c.hash;d[a]=$}else b.set(a,$)}function Wb(a){var b=-1,c=a?a.length:0;for(this.clear();++b<c;){var d=a[b];this.set(d[0],d[1])}}function Xb(){this.__data__={array:[],map:null}}function Yb(a){var b=this.__data__,c=b.array;return c?ac(c,a):b.map["delete"](a)}function Zb(a){var b=this.__data__,c=b.array;return c?bc(c,a):b.map.get(a)}function $b(a){var b=this.__data__,c=b.array;return c?cc(c,a):b.map.has(a)}function _b(a,b){var c=this.__data__,d=c.array;d&&(d.length<Y-1?ec(d,a,b):(c.array=null,c.map=new Nb(d)));var e=c.map;return e&&e.set(a,b),this}function ac(a,b){var c=dc(a,b);if(0>c)return!1;var d=a.length-1;return c==d?a.pop():lj.call(a,c,1),!0}function bc(a,b){var c=dc(a,b);return 0>c?W:a[c][1]}function cc(a,b){return dc(a,b)>-1}function dc(a,b){for(var c=a.length;c--;)if(vg(a[c][0],b))return c;return-1}function ec(a,b,c){var d=dc(a,b);0>d?a.push([b,c]):a[d][1]=c}function fc(a,b,c,d){return a===W||vg(a,Ti[c])&&!Vi.call(d,c)?b:a}function gc(a,b,c){(c===W||vg(a[b],c))&&("number"!=typeof b||c!==W||b in a)||(a[b]=c)}function hc(a,b,c){var d=a[b];Vi.call(a,b)&&vg(d,c)&&(c!==W||b in a)||(a[b]=c)}function jc(a,b,c,d){return Jj(a,function(a,e,f){b(d,a,c(a),f)}),d}function sc(a,b){return a&&Nd(b,Ah(b),a)}function tc(a,b){for(var c=-1,d=null==a,e=b.length,f=Array(e);++c<e;)f[c]=d?W:xh(a,b[c]);return f}function uc(a){return Bg(a)?a:[]}function vc(a){return"function"==typeof a?a:ri}function wc(a){return zk(a)?a:Ge(a)}function zc(a,b,c){return a===a&&(c!==W&&(a=c>=a?a:c),b!==W&&(a=a>=b?a:b)),a}function Ac(a,b,c,d,e,g,h){var i;if(d&&(i=g?d(a,e,g,h):d(a)),i!==W)return i;if(!Ng(a))return a;var j=zk(a);if(j){if(i=se(a),!b)return Md(a,i)}else{var k=pe(a),l=k==Fa||k==Ga;if(Ak(a))return Dd(a,b);if(k==Ja||k==Aa||l&&!g){if(M(a))return g?a:{};if(i=te(l?{}:a),!b)return i=sc(i,a),c?Pd(a,i):i}else{if(!rc[k])return g?a:{};i=ue(a,k,b)}}h||(h=new Wb);var m=h.get(a);return m?m:(h.set(a,i),(j?f:Nc)(a,function(e,f){hc(i,f,Ac(e,b,c,d,f,a,h))}),c&&!j?Pd(a,i):i)}function Cc(a){var b=Ah(a),c=b.length;return function(d){if(null==d)return!c;for(var e=c;e--;){var f=b[e],g=a[f],h=d[f];if(h===W&&!(f in Object(d))||!g(h))return!1}return!0}}function Dc(a){return Ng(a)?ij(a):{}}function Ec(a,b,c){if("function"!=typeof a)throw new Ri(Z);return kj(function(){a.apply(W,c)},b)}function Fc(a,b,c,d){var e=-1,f=j,g=!0,h=a.length,i=[],m=b.length;if(!h)return i;c&&(b=l(b,A(c))),d?(f=k,g=!1):b.length>=Y&&(f=Ub,g=!1,b=new Tb(b));a:for(;++e<h;){var n=a[e],o=c?c(n):n;if(g&&o===o){for(var p=m;p--;)if(b[p]===o)continue a;i.push(n)}else f(b,o,d)||i.push(n)}return i}function Ic(a,b){var c=!0;return Jj(a,function(a,d,e){return c=!!b(a,d,e)}),c}function Jc(a,b,c,d){var e=a.length;for(c=ih(c),0>c&&(c=-c>e?0:e+c),d=d===W||d>e?e:ih(d),0>d&&(d+=e),d=c>d?0:jh(d);d>c;)a[c++]=b;return a}function Kc(a,b){var c=[];return Jj(a,function(a,d,e){b(a,d,e)&&c.push(a)}),c}function Lc(a,b,c,d){d||(d=[]);for(var e=-1,f=a.length;++e<f;){var g=a[e];b>0&&Bg(g)&&(c||zk(g)||yg(g))?b>1?Lc(g,b-1,c,d):m(d,g):c||(d[d.length]=g)}return d}function Mc(a,b){return null==a?a:Lj(a,b,Bh)}function Nc(a,b){return a&&Lj(a,b,Ah)}function Oc(a,b){return a&&Mj(a,b,Ah)}function Pc(a,b){return i(b,function(b){return Kg(a[b])})}function Qc(a,b){b=xe(b,a)?[b+""]:wc(b);for(var c=0,d=b.length;null!=a&&d>c;)a=a[b[c++]];return c&&c==d?a:W}function Rc(a,b){return Vi.call(a,b)||"object"==typeof a&&b in a&&null===fj(a)}function Sc(a,b){return b in Object(a)}function Tc(a,b,c){return a>=sj(b,c)&&a<rj(b,c)}function Uc(a,b,c){for(var d=c?k:j,e=a[0].length,f=a.length,g=f,h=Array(f),i=1/0,m=[];g--;){var n=a[g];g&&b&&(n=l(n,A(b))),i=sj(n.length,i),h[g]=!c&&(b||e>=120&&n.length>=120)?new Tb(g&&n):W}n=a[0];var o=-1,p=h[0];a:for(;++o<e&&m.length<i;){var q=n[o],r=b?b(q):q;if(!(p?Ub(p,r):d(m,r,c))){for(g=f;--g;){var s=h[g];if(!(s?Ub(s,r):d(a[g],r,c)))continue a}p&&p.push(r),m.push(q)}}return m}function Vc(a,b,c,d){return Nc(a,function(a,e,f){b(d,c(a),e,f)}),d}function Wc(a,b,d){xe(b,a)||(b=wc(b),a=Ee(a,b),b=Ze(b));var e=null==a?a:a[b];return null==e?W:c(e,a,d)}function Xc(a,b,c,d,e){return a===b?!0:null==a||null==b||!Ng(a)&&!Og(b)?a!==a&&b!==b:Yc(a,b,Xc,c,d,e)}function Yc(a,b,c,d,e,f){var g=zk(a),h=zk(b),i=Ba,j=Ba;g||(i=pe(a),i=i==Aa?Ja:i),h||(j=pe(b),j=j==Aa?Ja:j);var k=i==Ja&&!M(a),l=j==Ja&&!M(b),m=i==j;if(m&&!k)return f||(f=new Wb),g||bh(a)?he(a,b,c,d,e,f):ie(a,b,i,c,d,e,f);if(!(e&la)){var n=k&&Vi.call(a,"__wrapped__"),o=l&&Vi.call(b,"__wrapped__");if(n||o)return f||(f=new Wb),c(n?a.value():a,o?b.value():b,d,e,f)}return m?(f||(f=new Wb),je(a,b,c,d,e,f)):!1}function Zc(a,b,c,d){var e=c.length,f=e,g=!d;if(null==a)return!f;for(a=Object(a);e--;){var h=c[e];if(g&&h[2]?h[1]!==a[h[0]]:!(h[0]in a))return!1}for(;++e<f;){h=c[e];var i=h[0],j=a[i],k=h[1];if(g&&h[2]){if(j===W&&!(i in a))return!1}else{var l=new Wb,m=d?d(j,k,i,a,b,l):W;if(!(m===W?Xc(k,j,d,ka|la,l):m))return!1}}return!0}function $c(a){var b=typeof a;return"function"==b?a:null==a?ri:"object"==b?zk(a)?dd(a[0],a[1]):cd(a):zi(a)}function _c(a){return qj(Object(a))}function ad(a){a=null==a?a:Object(a);var b=[];for(var c in a)b.push(c);return b}function bd(a,b){var c=-1,d=Ag(a)?Array(a.length):[];return Jj(a,function(a,e,f){d[++c]=b(a,e,f)}),d}function cd(a){var b=me(a);if(1==b.length&&b[0][2]){var c=b[0][0],d=b[0][1];return function(a){return null==a?!1:a[c]===d&&(d!==W||c in Object(a))}}return function(c){return c===a||Zc(c,a,b)}}function dd(a,b){return function(c){var d=xh(c,a);return d===W&&d===b?zh(c,a):Xc(b,d,W,ka|la)}}function ed(a,b,c,d,e){if(a!==b){var g=zk(b)||bh(b)?W:Bh(b);f(g||b,function(f,h){if(g&&(h=f,f=b[h]),Ng(f))e||(e=new Wb),fd(a,b,h,c,ed,d,e);else{var i=d?d(a[h],f,h+"",a,b,e):W;i===W&&(i=f),gc(a,h,i)}})}}function fd(a,b,c,d,e,f,g){var h=a[c],i=b[c],j=g.get(i);if(j)return void gc(a,c,j);var k=f?f(h,i,c+"",a,b,g):W,l=k===W;l&&(k=i,zk(i)||bh(i)?zk(h)?k=h:Bg(h)?k=Md(h):(l=!1,k=Ac(i,!f)):Xg(i)||yg(i)?yg(h)?k=lh(h):!Ng(h)||d&&Kg(h)?(l=!1,k=Ac(i,!f)):k=h:l=!1),g.set(i,k),l&&e(k,i,d,f,g),g["delete"](i),gc(a,c,k)}function gd(a,b,c){var d=-1;b=l(b.length?b:Array(1),le());var e=bd(a,function(a,c,e){var f=l(b,function(b){return b(a)});return{criteria:f,index:++d,value:a}});return w(e,function(a,b){return G(a,b,c)})}function hd(a,b){return a=Object(a),n(b,function(b,c){return c in a&&(b[c]=a[c]),b},{})}function id(a,b){var c={};return Mc(a,function(a,d){b(a,d)&&(c[d]=a)}),c}function jd(a){return function(b){return null==b?W:b[a]}}function kd(a){return function(b){return Qc(b,a)}}function ld(a,b,c,d){var e=d?u:t,f=-1,g=b.length,h=a;for(c&&(h=l(a,A(c)));++f<g;)for(var i=0,j=b[f],k=c?c(j):j;(i=e(h,k,i,d))>-1;)h!==a&&lj.call(h,i,1),lj.call(a,i,1);return a}function md(a,b){for(var c=a?b.length:0,d=c-1;c--;){var e=b[c];if(d==c||e!=f){var f=e;if(N(e))lj.call(a,e,1);else if(xe(e,a))delete a[e];else{var g=wc(e),h=Ee(a,g);null!=h&&delete h[Ze(g)]}}}return a}function nd(a,b){return a+nj(uj()*(b-a+1))}function od(a,b,c,d){for(var e=-1,f=rj(mj((b-a)/(c||1)),0),g=Array(f);f--;)g[d?f:++e]=a,a+=c;return g}function pd(a,b,c,d){b=xe(b,a)?[b+""]:wc(b);for(var e=-1,f=b.length,g=f-1,h=a;null!=h&&++e<f;){var i=b[e];if(Ng(h)){var j=c;if(e!=g){var k=h[i];j=d?d(k,i,h):W,j===W&&(j=null==k?N(b[e+1])?[]:{}:k)}hc(h,i,j)}h=h[i]}return a}function qd(a,b,c){var d=-1,e=a.length;0>b&&(b=-b>e?0:e+b),c=c>e?e:c,0>c&&(c+=e),e=b>c?0:c-b>>>0,b>>>=0;for(var f=Array(e);++d<e;)f[d]=a[d+b];return f}function rd(a,b){var c;return Jj(a,function(a,d,e){return c=b(a,d,e),!c}),!!c}function sd(a,b,c){var d=0,e=a?a.length:d;if("number"==typeof b&&b===b&&za>=e){for(;e>d;){var f=d+e>>>1,g=a[f];(c?b>=g:b>g)&&null!==g?d=f+1:e=f}return e}return td(a,b,ri,c)}function td(a,b,c,d){b=c(b);for(var e=0,f=a?a.length:0,g=b!==b,h=null===b,i=b===W;f>e;){var j=nj((e+f)/2),k=c(a[j]),l=k!==W,m=k===k;if(g)var n=m||d;else n=h?m&&l&&(d||null!=k):i?m&&(d||l):null==k?!1:d?b>=k:b>k;n?e=j+1:f=j}return sj(f,ya)}function ud(a){return vd(a)}function vd(a,b){for(var c=0,d=a.length,e=a[0],f=b?b(e):e,g=f,h=1,i=[e];++c<d;)e=a[c],f=b?b(e):e,vg(f,g)||(g=f,i[h++]=e);return i}function wd(a,b,c){var d=-1,e=j,f=a.length,g=!0,h=[],i=h;if(c)g=!1,e=k;else if(f>=Y){var l=b?null:Oj(a);if(l)return R(l);g=!1,e=Ub,i=new Tb}else i=b?[]:h;a:for(;++d<f;){var m=a[d],n=b?b(m):m;if(g&&n===n){for(var o=i.length;o--;)if(i[o]===n)continue a;b&&i.push(n),h.push(m)}else e(i,n,c)||(i!==h&&i.push(n),h.push(m))}return h}function xd(a,b){b=xe(b,a)?[b+""]:wc(b),a=Ee(a,b);var c=Ze(b);return null!=a&&yh(a,c)?delete a[c]:!0}function yd(a,b,c,d){return pd(a,b,c(Qc(a,b)),d)}function zd(a,b,c,d){for(var e=a.length,f=d?e:-1;(d?f--:++f<e)&&b(a[f],f,a););return c?qd(a,d?0:f,d?f+1:e):qd(a,d?f+1:0,d?e:f)}function Ad(a,b){var c=a;return c instanceof Eb&&(c=c.value()),n(b,function(a,b){return b.func.apply(b.thisArg,m([a],b.args))},c)}function Bd(a,b,c){for(var d=-1,e=a.length;++d<e;)var f=f?m(Fc(f,a[d],b,c),Fc(a[d],f,b,c)):a[d];return f&&f.length?wd(f,b,c):[]}function Cd(a,b,c){for(var d=-1,e=a.length,f=b.length,g={};++d<e;)c(g,a[d],f>d?b[d]:W);return g}function Dd(a,b){if(b)return a.slice();var c=new a.constructor(a.length);return a.copy(c),c}function Ed(a){var b=new a.constructor(a.byteLength);return new cj(b).set(new cj(a)),b}function Fd(b){return n(P(b),a,new b.constructor)}function Gd(a){var b=new a.constructor(a.source,sb.exec(a));return b.lastIndex=a.lastIndex,b}function Hd(a){return n(R(a),b,new a.constructor)}function Id(a){return Hj?Object(Hj.call(a)):{}}function Jd(a,b){var c=b?Ed(a.buffer):a.buffer;return new a.constructor(c,a.byteOffset,a.length)}function Kd(a,b,c,d){for(var e=-1,f=a.length,g=c.length,h=-1,i=b.length,j=rj(f-g,0),k=Array(i+j),l=!d;++h<i;)k[h]=b[h];for(;++e<g;)(l||f>e)&&(k[c[e]]=a[e]);for(;j--;)k[h++]=a[e++];return k}function Ld(a,b,c,d){for(var e=-1,f=a.length,g=-1,h=c.length,i=-1,j=b.length,k=rj(f-h,0),l=Array(k+j),m=!d;++e<k;)l[e]=a[e];for(var n=e;++i<j;)l[n+i]=b[i];for(;++g<h;)(m||f>e)&&(l[n+c[g]]=a[e++]);return l}function Md(a,b){var c=-1,d=a.length;for(b||(b=Array(d));++c<d;)b[c]=a[c];return b}function Nd(a,b,c){return Od(a,b,c)}function Od(a,b,c,d){c||(c={});for(var e=-1,f=b.length;++e<f;){var g=b[e],h=d?d(c[g],a[g],g,c,a):a[g];hc(c,g,h)}return c}function Pd(a,b){return Nd(a,Rj(a),b)}function Qd(a,b){return function(c,e){var f=zk(c)?d:jc,g=b?b():{};return f(c,a,le(e),g)}}function Rd(a){return lg(function(b,c){var d=-1,e=c.length,f=e>1?c[e-1]:W,g=e>2?c[2]:W;for(f="function"==typeof f?(e--,f):W,g&&we(c[0],c[1],g)&&(f=3>e?W:f,e=1),b=Object(b);++d<e;){var h=c[d];h&&a(b,h,d,f)}return b})}function Sd(a,b){return function(c,d){if(null==c)return c;if(!Ag(c))return a(c,d);for(var e=c.length,f=b?e:-1,g=Object(c);(b?f--:++f<e)&&d(g[f],f,g)!==!1;);return c}}function Td(a){return function(b,c,d){for(var e=-1,f=Object(b),g=d(b),h=g.length;h--;){var i=g[a?h:++e];if(c(f[i],i,f)===!1)break}return b}}function Ud(a,b,c){function d(){var b=this&&this!==Gc&&this instanceof d?f:a;return b.apply(e?c:this,arguments)}var e=b&aa,f=Xd(a);return d}function Vd(a){return function(b){b=nh(b);var c=kc.test(b)?T(b):W,d=c?c[0]:b.charAt(0),e=c?c.slice(1).join(""):b.slice(1);return d[a]()+e}}function Wd(a){return function(b){return n(ni(Vh(b)),a,"")}}function Xd(a){return function(){var b=arguments;switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3]);case 5:return new a(b[0],b[1],b[2],b[3],b[4]);case 6:return new a(b[0],b[1],b[2],b[3],b[4],b[5]);case 7:return new a(b[0],b[1],b[2],b[3],b[4],b[5],b[6])}var c=Dc(a.prototype),d=a.apply(c,b);return Ng(d)?d:c}}function Yd(a,b,d){function e(){for(var g=arguments.length,h=Array(g),i=g,j=oe(e);i--;)h[i]=arguments[i];var k=3>g&&h[0]!==j&&h[g-1]!==j?[]:Q(h,j);if(g-=k.length,d>g)return ee(a,b,$d,e.placeholder,W,h,k,W,W,d-g);var l=this&&this!==Gc&&this instanceof e?f:a;return c(l,this,h)}var f=Xd(a);return e}function Zd(a){return lg(function(b){b=Lc(b,1);var c=b.length,d=c,e=Db.prototype.thru;for(a&&b.reverse();d--;){var f=b[d];if("function"!=typeof f)throw new Ri(Z);if(e&&!g&&"wrapper"==ke(f))var g=new Db([],!0)}for(d=g?d:c;++d<c;){f=b[d];var h=ke(f),i="wrapper"==h?Pj(f):W;g=i&&ze(i[0])&&i[1]==(ha|da|fa|ia)&&!i[4].length&&1==i[9]?g[ke(i[0])].apply(g,i[3]):1==f.length&&ze(f)?g[h]():g.thru(f)}return function(){var a=arguments,d=a[0];if(g&&1==a.length&&zk(d)&&d.length>=Y)return g.plant(d).value();for(var e=0,f=c?b[e].apply(this,a):d;++e<c;)f=b[e].call(this,f);return f}})}function $d(a,b,c,d,e,f,g,h,i,j){function k(){for(var r=arguments.length,s=r,t=Array(r);s--;)t[s]=arguments[s];if(o)var u=oe(k),v=H(t,u);if(d&&(t=Kd(t,d,e,o)),f&&(t=Ld(t,f,g,o)),r-=v,o&&j>r){var w=Q(t,u);return ee(a,b,$d,k.placeholder,c,t,w,h,i,j-r)}var x=m?c:this,y=n?x[a]:a;return r=t.length,h?t=Fe(t,h):p&&r>1&&t.reverse(),l&&r>i&&(t.length=i),this&&this!==Gc&&this instanceof k&&(y=q||Xd(y)),y.apply(x,t)}var l=b&ha,m=b&aa,n=b&ba,o=b&(da|ea),p=b&ja,q=n?W:Xd(a);return k}function _d(a,b){return function(c,d){return Vc(c,a,b(d),{})}}function ae(a){return lg(function(b){return b=l(Lc(b,1),le()),lg(function(d){var e=this;return a(b,function(a){return c(a,e,d)})})})}function be(a,b,c){b=ih(b);var d=S(a);if(!b||d>=b)return"";var e=b-d;c=c===W?" ":c+"";var f=bi(c,mj(e/S(c)));return kc.test(c)?T(f).slice(0,e).join(""):f.slice(0,e)}function ce(a,b,d,e){function f(){for(var b=-1,i=arguments.length,j=-1,k=e.length,l=Array(k+i),m=this&&this!==Gc&&this instanceof f?h:a;++j<k;)l[j]=e[j];for(;i--;)l[j++]=arguments[++b];return c(m,g?d:this,l)}var g=b&aa,h=Xd(a);return f}function de(a){return function(b,c,d){return d&&"number"!=typeof d&&we(b,c,d)&&(c=d=W),b=kh(b),b=b===b?b:0,c===W?(c=b,b=0):c=kh(c)||0,d=d===W?c>b?1:-1:kh(d)||0,od(b,c,d,a)}}function ee(a,b,c,d,e,f,g,h,i,j){var k=b&da,l=h?Md(h):W,m=k?g:W,n=k?W:g,o=k?f:W,p=k?W:f;b|=k?fa:ga,b&=~(k?ga:fa),b&ca||(b&=~(aa|ba));var q=[a,b,e,o,m,p,n,l,i,j],r=c.apply(W,q);return ze(a)&&Sj(r,q),r.placeholder=d,r}function fe(a){var b=Pi[a];return function(a,c){if(a=kh(a),c=ih(c)){var d=(nh(a)+"e").split("e"),e=b(d[0]+"e"+(+d[1]+c));return d=(nh(e)+"e").split("e"),+(d[0]+"e"+(+d[1]-c))}return b(a)}}function ge(a,b,c,d,e,f,g,h){var i=b&ba;if(!i&&"function"!=typeof a)throw new Ri(Z);var j=d?d.length:0;if(j||(b&=~(fa|ga),d=e=W),g=g===W?g:rj(ih(g),0),h=h===W?h:ih(h),j-=e?e.length:0,b&ga){var k=d,l=e;d=e=W}var m=i?W:Pj(a),n=[a,b,c,d,e,k,l,f,g,h];if(m&&Ce(n,m),a=n[0],b=n[1],c=n[2],d=n[3],e=n[4],h=n[9]=null==n[9]?i?0:a.length:rj(n[9]-j,0),!h&&b&(da|ea)&&(b&=~(da|ea)),b&&b!=aa)o=b==da||b==ea?Yd(a,b,h):b!=fa&&b!=(aa|fa)||e.length?$d.apply(W,n):ce(a,b,c,d);else var o=Ud(a,b,c);var p=m?Nj:Sj;return p(o,n)}function he(a,b,c,d,e,f){var g=-1,h=e&la,i=e&ka,j=a.length,k=b.length;if(j!=k&&!(h&&k>j))return!1;var l=f.get(a);if(l)return l==b;var m=!0;for(f.set(a,b);++g<j;){var n=a[g],o=b[g];if(d)var q=h?d(o,n,g,b,a,f):d(n,o,g,a,b,f);if(q!==W){if(q)continue;m=!1;break}if(i){if(!p(b,function(a){return n===a||c(n,a,d,e,f)})){m=!1;break}}else if(n!==o&&!c(n,o,d,e,f)){m=!1;break}}return f["delete"](a),m}function ie(a,b,c,d,e,f,g){switch(c){case Qa:return!(a.byteLength!=b.byteLength||!d(new cj(a),new cj(b)));case Ca:case Da:return+a==+b;case Ea:return a.name==b.name&&a.message==b.message;case Ia:return a!=+a?b!=+b:a==+b;case Ka:case Ma:return a==b+"";case Ha:var h=P;case La:var i=f&la;if(h||(h=R),a.size!=b.size&&!i)return!1;var j=g.get(a);return j?j==b:he(h(a),h(b),d,e,f|ka,g.set(a,b));case Na:if(Hj)return Hj.call(a)==Hj.call(b)}return!1}function je(a,b,c,d,e,f){var g=e&la,h=Ah(a),i=h.length,j=Ah(b),k=j.length;if(i!=k&&!g)return!1;for(var l=i;l--;){var m=h[l];if(!(g?m in b:Rc(b,m)))return!1}var n=f.get(a);if(n)return n==b;var o=!0;f.set(a,b);for(var p=g;++l<i;){m=h[l];var q=a[m],r=b[m];if(d)var s=g?d(r,q,m,b,a,f):d(q,r,m,a,b,f);if(!(s===W?q===r||c(q,r,d,e,f):s)){o=!1;break}p||(p="constructor"==m)}if(o&&!p){var t=a.constructor,u=b.constructor;t!=u&&"constructor"in a&&"constructor"in b&&!("function"==typeof t&&t instanceof t&&"function"==typeof u&&u instanceof u)&&(o=!1)}return f["delete"](a),o}function ke(a){for(var b=a.name+"",c=Cj[b],d=Vi.call(Cj,b)?c.length:0;d--;){var e=c[d],f=e.func;if(null==f||f==a)return e.name}return b}function le(){var a=yb.iteratee||si;return a=a===si?$c:a,arguments.length?a(arguments[0],arguments[1]):a}function me(a){for(var b=Jh(a),c=b.length;c--;)b[c][2]=Be(b[c][1]);return b}function ne(a,b){var c=a[b];return Tg(c)?c:W}function oe(a){var b=Vi.call(yb,"placeholder")?yb:a;return b.placeholder}function pe(a){return Yi.call(a)}function qe(a,b,c){for(var d=-1,e=c.length;++d<e;){var f=c[d],g=f.size;switch(f.type){case"drop":a+=g;break;case"dropRight":b-=g;break;case"take":b=sj(b,a+g);break;case"takeRight":a=rj(a,b-g)}}return{start:a,end:b}}function re(a,b,c){if(null==a)return!1;var d=c(a,b);d||xe(b)||(b=wc(b),a=Ee(a,b),null!=a&&(b=Ze(b),d=c(a,b)));var e=a?a.length:W;return d||!!e&&Mg(e)&&N(b,e)&&(zk(a)||_g(a)||yg(a))}function se(a){var b=a.length,c=a.constructor(b);return b&&"string"==typeof a[0]&&Vi.call(a,"index")&&(c.index=a.index,c.input=a.input),c}function te(a){return"function"!=typeof a.constructor||Ae(a)?{}:Dc(fj(a))}function ue(a,b,c){var d=a.constructor;switch(b){case Qa:return Ed(a);case Ca:case Da:return new d(+a);case Ra:case Sa:case Ta:case Ua:case Va:case Wa:case Xa:case Ya:case Za:return Jd(a,c);case Ha:return Fd(a);case Ia:case Ma:return new d(a);case Ka:return Gd(a);case La:return Hd(a);case Na:return Id(a)}}function ve(a){var b=a?a.length:W;return Mg(b)&&(zk(a)||_g(a)||yg(a))?y(b,String):null}function we(a,b,c){if(!Ng(c))return!1;var d=typeof b;return("number"==d?Ag(c)&&N(b,c.length):"string"==d&&b in c)?vg(c[b],a):!1}function xe(a,b){return"number"==typeof a?!0:!zk(a)&&(jb.test(a)||!ib.test(a)||null!=b&&a in Object(b))}function ye(a){var b=typeof a;return"number"==b||"boolean"==b||"string"==b&&"__proto__"!=a||null==a}function ze(a){var b=ke(a),c=yb[b];if("function"!=typeof c||!(b in Eb.prototype))return!1;if(a===c)return!0;var d=Pj(c);return!!d&&a===d[0]}function Ae(a){var b=a&&a.constructor,c="function"==typeof b&&b.prototype||Ti;return a===c}function Be(a){return a===a&&!Ng(a)}function Ce(a,b){var c=a[1],d=b[1],e=c|d,f=(aa|ba|ha)>e,g=d==ha&&c==da||d==ha&&c==ia&&a[7].length<=b[8]||d==(ha|ia)&&b[7].length<=b[8]&&c==da;if(!f&&!g)return a;d&aa&&(a[2]=b[2],e|=c&aa?0:ca);var h=b[3];if(h){var i=a[3];a[3]=i?Kd(i,h,b[4]):Md(h),a[4]=i?Q(a[3],_):Md(b[4])}return h=b[5],h&&(i=a[5],a[5]=i?Ld(i,h,b[6]):Md(h),a[6]=i?Q(a[5],_):Md(b[6])),h=b[7],h&&(a[7]=Md(h)),d&ha&&(a[8]=null==a[8]?b[8]:sj(a[8],b[8])),null==a[9]&&(a[9]=b[9]),a[0]=b[0],a[1]=e,a}function De(a,b,c,d,e,f){return Ng(a)&&Ng(b)&&ed(a,b,W,De,f.set(b,a)),a}function Ee(a,b){return 1==b.length?a:xh(a,qd(b,0,-1))}function Fe(a,b){for(var c=a.length,d=sj(b.length,c),e=Md(a);d--;){var f=b[d];a[d]=N(f,c)?e[f]:W}return a}function Ge(a){var b=[];return nh(a).replace(kb,function(a,c,d,e){b.push(d?e.replace(qb,"$1"):c||a)}),b}function He(a){if(a instanceof Eb)return a.clone();var b=new Db(a.__wrapped__,a.__chain__);return b.__actions__=Md(a.__actions__),b.__index__=a.__index__,b.__values__=a.__values__,b}function Ie(a,b){b=rj(ih(b),0);var c=a?a.length:0;if(!c||1>b)return[];for(var d=0,e=0,f=Array(mj(c/b));c>d;)f[e++]=qd(a,d,d+=b);return f}function Je(a){for(var b=-1,c=a?a.length:0,d=0,e=[];++b<c;){var f=a[b];f&&(e[d++]=f)}return e}function Ke(a,b,c){var d=a?a.length:0;return d?(b=c||b===W?1:ih(b),qd(a,0>b?0:b,d)):[]}function Le(a,b,c){var d=a?a.length:0;return d?(b=c||b===W?1:ih(b),b=d-b,qd(a,0,0>b?0:b)):[]}function Me(a,b){return a&&a.length?zd(a,le(b,3),!0,!0):[]}function Ne(a,b){return a&&a.length?zd(a,le(b,3),!0):[]}function Oe(a,b,c,d){var e=a?a.length:0;return e?(c&&"number"!=typeof c&&we(a,b,c)&&(c=0,d=e),Jc(a,b,c,d)):[]}function Pe(a,b){return a&&a.length?s(a,le(b,3)):-1}function Qe(a,b){return a&&a.length?s(a,le(b,3),!0):-1}function Re(a){var b=a?a.length:0;return b?Lc(a,1):[]}function Se(a){var b=a?a.length:0;return b?Lc(a,ta):[]}function Te(a,b){var c=a?a.length:0;return c?(b=b===W?1:ih(b),Lc(a,b)):[]}function Ue(a){for(var b=-1,c=a?a.length:0,d={};++b<c;){var e=a[b];d[e[0]]=e[1]}return d}function Ve(a){return a?a[0]:W}function We(a,b,c){var d=a?a.length:0;return d?(c=ih(c),0>c&&(c=rj(d+c,0)),t(a,b,c)):-1}function Xe(a){return Le(a,1)}function Ye(a,b){return a?pj.call(a,b):""}function Ze(a){var b=a?a.length:0;return b?a[b-1]:W}function $e(a,b,c){var d=a?a.length:0;if(!d)return-1;var e=d;if(c!==W&&(e=ih(c),e=(0>e?rj(d+e,0):sj(e,d-1))+1),b!==b)return L(a,e,!0);for(;e--;)if(a[e]===b)return e;return-1}function _e(a,b){return a&&a.length&&b&&b.length?ld(a,b):a}function af(a,b,c){return a&&a.length&&b&&b.length?ld(a,b,le(c)):a}function bf(a,b,c){return a&&a.length&&b&&b.length?ld(a,b,W,c):a}function cf(a,b){var c=[];if(!a||!a.length)return c;var d=-1,e=[],f=a.length;for(b=le(b,3);++d<f;){var g=a[d];b(g,d,a)&&(c.push(g),e.push(d))}return md(a,e),c}function df(a){return a?vj.call(a):a}function ef(a,b,c){var d=a?a.length:0;return d?(c&&"number"!=typeof c&&we(a,b,c)?(b=0,c=d):(b=null==b?0:ih(b),c=c===W?d:ih(c)),qd(a,b,c)):[]}function ff(a,b){return sd(a,b)}function gf(a,b,c){return td(a,b,le(c))}function hf(a,b){var c=a?a.length:0;if(c){var d=sd(a,b);if(c>d&&vg(a[d],b))return d}return-1}function jf(a,b){return sd(a,b,!0)}function kf(a,b,c){return td(a,b,le(c),!0)}function lf(a,b){var c=a?a.length:0;if(c){var d=sd(a,b,!0)-1;if(vg(a[d],b))return d}return-1}function mf(a){return a&&a.length?ud(a):[]}function nf(a,b){return a&&a.length?vd(a,le(b)):[]}function of(a){return Ke(a,1)}function pf(a,b,c){return a&&a.length?(b=c||b===W?1:ih(b),qd(a,0,0>b?0:b)):[]}function qf(a,b,c){var d=a?a.length:0;return d?(b=c||b===W?1:ih(b),b=d-b,qd(a,0>b?0:b,d)):[]}function rf(a,b){return a&&a.length?zd(a,le(b,3),!1,!0):[]}function sf(a,b){return a&&a.length?zd(a,le(b,3)):[]}function tf(a){return a&&a.length?wd(a):[]}function uf(a,b){return a&&a.length?wd(a,le(b)):[]}function vf(a,b){return a&&a.length?wd(a,W,b):[]}function wf(a){if(!a||!a.length)return[];var b=0;return a=i(a,function(a){return Bg(a)?(b=rj(a.length,b),!0):void 0}),y(b,function(b){return l(a,jd(b))})}function xf(a,b){if(!a||!a.length)return[];var d=wf(a);return null==b?d:l(d,function(a){return c(b,W,a)})}function yf(a,b){return Cd(a||[],b||[],hc)}function zf(a,b){return Cd(a||[],b||[],pd)}function Af(a){var b=yb(a);return b.__chain__=!0,b}function Bf(a,b){return b(a),a}function Cf(a,b){return b(a)}function Df(){return Af(this)}function Ef(){return new Db(this.value(),this.__chain__)}function Ff(a){return this.map(a).flatten()}function Gf(){this.__values__===W&&(this.__values__=hh(this.value()));var a=this.__index__>=this.__values__.length,b=a?W:this.__values__[this.__index__++];return{done:a,value:b}}function Hf(){return this}function If(a){for(var b,c=this;c instanceof Cb;){var d=He(c);d.__index__=0,d.__values__=W,b?e.__wrapped__=d:b=d;var e=d;c=c.__wrapped__}return e.__wrapped__=a,b}function Jf(){var a=this.__wrapped__;if(a instanceof Eb){var b=a;return this.__actions__.length&&(b=new Eb(this)),b=b.reverse(),b.__actions__.push({func:Cf,args:[df],thisArg:W}),new Db(b,this.__chain__)}return this.thru(df)}function Kf(){return Ad(this.__wrapped__,this.__actions__)}function Lf(a,b,c){var d=zk(a)?h:Ic;return c&&we(a,b,c)&&(b=W),d(a,le(b,3))}function Mf(a,b){var c=zk(a)?i:Kc;return c(a,le(b,3))}function Nf(a,b){if(b=le(b,3),zk(a)){var c=s(a,b);return c>-1?a[c]:W}return r(a,b,Jj)}function Of(a,b){if(b=le(b,3),zk(a)){var c=s(a,b,!0);return c>-1?a[c]:W}return r(a,b,Kj)}function Pf(a,b){return Lc(Tf(a,b),1)}function Qf(a,b){return"function"==typeof b&&zk(a)?f(a,b):Jj(a,vc(b))}function Rf(a,b){return"function"==typeof b&&zk(a)?g(a,b):Kj(a,vc(b))}function Sf(a,b,c,d){a=Ag(a)?a:Ph(a),c=c&&!d?ih(c):0;var e=a.length;return 0>c&&(c=rj(e+c,0)),_g(a)?e>=c&&a.indexOf(b,c)>-1:!!e&&t(a,b,c)>-1}function Tf(a,b){var c=zk(a)?l:bd;return c(a,le(b,3))}function Uf(a,b,c,d){return null==a?[]:(zk(b)||(b=null==b?[]:[b]),c=d?W:c,zk(c)||(c=null==c?[]:[c]),gd(a,b,c))}function Vf(a,b,c){var d=zk(a)?n:v,e=arguments.length<3;return d(a,le(b,4),c,e,Jj)}function Wf(a,b,c){var d=zk(a)?o:v,e=arguments.length<3;return d(a,le(b,4),c,e,Kj)}function Xf(a,b){var c=zk(a)?i:Kc;return b=le(b,3),c(a,function(a,c,d){return!b(a,c,d)})}function Yf(a){var b=Ag(a)?a:Ph(a),c=b.length;return c>0?b[nd(0,c-1)]:W}function Zf(a,b){var c=-1,d=hh(a),e=d.length,f=e-1;for(b=zc(ih(b),0,e);++c<b;){var g=nd(c,f),h=d[g];d[g]=d[c],d[c]=h}return d.length=b,d}function $f(a){return Zf(a,xa)}function _f(a){if(null==a)return 0;if(Ag(a)){var b=a.length;return b&&_g(a)?S(a):b}return Ah(a).length}function ag(a,b,c){var d=zk(a)?p:rd;return c&&we(a,b,c)&&(b=W),d(a,le(b,3))}function bg(a,b){if("function"!=typeof b)throw new Ri(Z);return a=ih(a),function(){return--a<1?b.apply(this,arguments):void 0}}function cg(a,b,c){return b=c?W:b,b=a&&null==b?a.length:b,ge(a,ha,W,W,W,W,b)}function dg(a,b){var c;if("function"!=typeof b)throw new Ri(Z);return a=ih(a),function(){return--a>0&&(c=b.apply(this,arguments)),1>=a&&(b=W),c}}function eg(a,b,c){b=c?W:b;var d=ge(a,da,W,W,W,W,W,b);return d.placeholder=eg.placeholder,d}function fg(a,b,c){b=c?W:b;var d=ge(a,ea,W,W,W,W,W,b);return d.placeholder=fg.placeholder,d}function gg(a,b,c){function d(){o&&dj(o),k&&dj(k),q=0,j=k=n=o=p=W}function e(b,c){c&&dj(c),k=o=p=W,b&&(q=qk(),l=a.apply(n,j),o||k||(j=n=W))}function f(){var a=b-(qk()-m);0>=a||a>b?e(p,k):o=kj(f,a)}function g(){return(o&&p||k&&t)&&(l=a.apply(n,j)),d(),l}function h(){e(t,o)}function i(){if(j=arguments,m=qk(),n=this,p=t&&(o||!r),s===!1)var c=r&&!o;else{q||k||r||(q=m);var d=s-(m-q),e=(0>=d||d>s)&&(r||k);e?(k&&(k=dj(k)),q=m,l=a.apply(n,j)):k||(k=kj(h,d))}return e&&o?o=dj(o):o||b===s||(o=kj(f,b)),c&&(e=!0,l=a.apply(n,j)),!e||o||k||(j=n=W),l}var j,k,l,m,n,o,p,q=0,r=!1,s=!1,t=!0;if("function"!=typeof a)throw new Ri(Z);return b=kh(b)||0,Ng(c)&&(r=!!c.leading,s="maxWait"in c&&rj(kh(c.maxWait)||0,b),t="trailing"in c?!!c.trailing:t),i.cancel=d,i.flush=g,i}function hg(a){return ge(a,ja)}function ig(a,b){if("function"!=typeof a||b&&"function"!=typeof b)throw new Ri(Z);var c=function(){var d=arguments,e=b?b.apply(this,d):d[0],f=c.cache;if(f.has(e))return f.get(e);var g=a.apply(this,d);return c.cache=f.set(e,g),g};return c.cache=new ig.Cache,c}function jg(a){if("function"!=typeof a)throw new Ri(Z);return function(){return!a.apply(this,arguments)}}function kg(a){return dg(2,a)}function lg(a,b){if("function"!=typeof a)throw new Ri(Z);return b=rj(b===W?a.length-1:ih(b),0),function(){for(var d=arguments,e=-1,f=rj(d.length-b,0),g=Array(f);++e<f;)g[e]=d[b+e];switch(b){case 0:return a.call(this,g);
+case 1:return a.call(this,d[0],g);case 2:return a.call(this,d[0],d[1],g)}var h=Array(b+1);for(e=-1;++e<b;)h[e]=d[e];return h[b]=g,c(a,this,h)}}function mg(a,b){if("function"!=typeof a)throw new Ri(Z);return b=b===W?0:rj(ih(b),0),lg(function(d){var e=d[b],f=d.slice(0,b);return e&&m(f,e),c(a,this,f)})}function ng(a,b,c){var d=!0,e=!0;if("function"!=typeof a)throw new Ri(Z);return Ng(c)&&(d="leading"in c?!!c.leading:d,e="trailing"in c?!!c.trailing:e),gg(a,b,{leading:d,maxWait:b,trailing:e})}function og(a){return cg(a,1)}function pg(a,b){return b=null==b?ri:b,wk(b,a)}function qg(){if(!arguments.length)return[];var a=arguments[0];return zk(a)?a:[a]}function rg(a){return Ac(a,!1,!0)}function sg(a,b){return Ac(a,!1,!0,b)}function tg(a){return Ac(a,!0,!0)}function ug(a,b){return Ac(a,!0,!0,b)}function vg(a,b){return a===b||a!==a&&b!==b}function wg(a,b){return a>b}function xg(a,b){return a>=b}function yg(a){return Bg(a)&&Vi.call(a,"callee")&&(!jj.call(a,"callee")||Yi.call(a)==Aa)}function zg(a){return Og(a)&&Yi.call(a)==Qa}function Ag(a){return null!=a&&Mg(Qj(a))&&!Kg(a)}function Bg(a){return Og(a)&&Ag(a)}function Cg(a){return a===!0||a===!1||Og(a)&&Yi.call(a)==Ca}function Dg(a){return Og(a)&&Yi.call(a)==Da}function Eg(a){return!!a&&1===a.nodeType&&Og(a)&&!Xg(a)}function Fg(a){if(Ag(a)&&(zk(a)||_g(a)||Kg(a.splice)||yg(a)))return!a.length;for(var b in a)if(Vi.call(a,b))return!1;return!0}function Gg(a,b){return Xc(a,b)}function Hg(a,b,c){c="function"==typeof c?c:W;var d=c?c(a,b):W;return d===W?Xc(a,b,c):!!d}function Ig(a){return Og(a)?Yi.call(a)==Ea||"string"==typeof a.message&&"string"==typeof a.name:!1}function Jg(a){return"number"==typeof a&&oj(a)}function Kg(a){var b=Ng(a)?Yi.call(a):"";return b==Fa||b==Ga}function Lg(a){return"number"==typeof a&&a==ih(a)}function Mg(a){return"number"==typeof a&&a>-1&&a%1==0&&ua>=a}function Ng(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}function Og(a){return!!a&&"object"==typeof a}function Pg(a){return Og(a)&&pe(a)==Ha}function Qg(a,b){return a===b||Zc(a,b,me(b))}function Rg(a,b,c){return c="function"==typeof c?c:W,Zc(a,b,me(b),c)}function Sg(a){return Wg(a)&&a!=+a}function Tg(a){return null==a?!1:Kg(a)?$i.test(Ui.call(a)):Og(a)&&(M(a)?$i:wb).test(a)}function Ug(a){return null===a}function Vg(a){return null==a}function Wg(a){return"number"==typeof a||Og(a)&&Yi.call(a)==Ia}function Xg(a){if(!Og(a)||Yi.call(a)!=Ja||M(a))return!1;var b=fj(a);if(null===b)return!0;var c=b.constructor;return"function"==typeof c&&c instanceof c&&Ui.call(c)==Xi}function Yg(a){return Ng(a)&&Yi.call(a)==Ka}function Zg(a){return Lg(a)&&a>=-ua&&ua>=a}function $g(a){return Og(a)&&pe(a)==La}function _g(a){return"string"==typeof a||!zk(a)&&Og(a)&&Yi.call(a)==Ma}function ah(a){return"symbol"==typeof a||Og(a)&&Yi.call(a)==Na}function bh(a){return Og(a)&&Mg(a.length)&&!!qc[Yi.call(a)]}function ch(a){return a===W}function dh(a){return Og(a)&&pe(a)==Oa}function eh(a){return Og(a)&&Yi.call(a)==Pa}function fh(a,b){return b>a}function gh(a,b){return b>=a}function hh(a){if(!a)return[];if(Ag(a))return _g(a)?T(a):Md(a);if(hj&&a[hj])return O(a[hj]());var b=pe(a),c=b==Ha?P:b==La?R:Ph;return c(a)}function ih(a){if(!a)return 0===a?a:0;if(a=kh(a),a===ta||a===-ta){var b=0>a?-1:1;return b*va}var c=a%1;return a===a?c?a-c:a:0}function jh(a){return a?zc(ih(a),0,xa):0}function kh(a){if(Ng(a)){var b=Kg(a.valueOf)?a.valueOf():a;a=Ng(b)?b+"":b}if("string"!=typeof a)return 0===a?a:+a;a=a.replace(nb,"");var c=vb.test(a);return c||xb.test(a)?yc(a.slice(2),c?2:8):ub.test(a)?wa:+a}function lh(a){return Nd(a,Bh(a))}function mh(a){return zc(ih(a),-ua,ua)}function nh(a){if("string"==typeof a)return a;if(null==a)return"";if(ah(a))return Ij?Ij.call(a):"";var b=a+"";return"0"==b&&1/a==-ta?"-0":b}function oh(a,b){var c=Dc(a);return b?sc(c,b):c}function ph(a,b){return r(a,le(b,3),Nc,!0)}function qh(a,b){return r(a,le(b,3),Oc,!0)}function rh(a,b){return null==a?a:Lj(a,vc(b),Bh)}function sh(a,b){return null==a?a:Mj(a,vc(b),Bh)}function th(a,b){return a&&Nc(a,vc(b))}function uh(a,b){return a&&Oc(a,vc(b))}function vh(a){return null==a?[]:Pc(a,Ah(a))}function wh(a){return null==a?[]:Pc(a,Bh(a))}function xh(a,b,c){var d=null==a?W:Qc(a,b);return d===W?c:d}function yh(a,b){return re(a,b,Rc)}function zh(a,b){return re(a,b,Sc)}function Ah(a){var b=Ae(a);if(!b&&!Ag(a))return _c(a);var c=ve(a),d=!!c,e=c||[],f=e.length;for(var g in a)!Rc(a,g)||d&&("length"==g||N(g,f))||b&&"constructor"==g||e.push(g);return e}function Bh(a){for(var b=-1,c=Ae(a),d=ad(a),e=d.length,f=ve(a),g=!!f,h=f||[],i=h.length;++b<e;){var j=d[b];g&&("length"==j||N(j,i))||"constructor"==j&&(c||!Vi.call(a,j))||h.push(j)}return h}function Ch(a,b){var c={};return b=le(b,3),Nc(a,function(a,d,e){c[b(a,d,e)]=a}),c}function Dh(a,b){var c={};return b=le(b,3),Nc(a,function(a,d,e){c[d]=b(a,d,e)}),c}function Eh(a,b){return b=le(b),id(a,function(a,c){return!b(a,c)})}function Fh(a,b){return null==a?{}:id(a,le(b))}function Gh(a,b,c){if(xe(b,a))d=null==a?W:a[b];else{b=wc(b);var d=xh(a,b);a=Ee(a,b)}return d===W&&(d=c),Kg(d)?d.call(a):d}function Hh(a,b,c){return null==a?a:pd(a,b,c)}function Ih(a,b,c,d){return d="function"==typeof d?d:W,null==a?a:pd(a,b,c,d)}function Jh(a){return z(a,Ah(a))}function Kh(a){return z(a,Bh(a))}function Lh(a,b,c){var d=zk(a)||bh(a);if(b=le(b,4),null==c)if(d||Ng(a)){var e=a.constructor;c=d?zk(a)?new e:[]:Kg(e)?Dc(fj(a)):{}}else c={};return(d?f:Nc)(a,function(a,d,e){return b(c,a,d,e)}),c}function Mh(a,b){return null==a?!0:xd(a,b)}function Nh(a,b,c){return null==a?a:yd(a,b,vc(c))}function Oh(a,b,c,d){return d="function"==typeof d?d:W,null==a?a:yd(a,b,vc(c),d)}function Ph(a){return a?B(a,Ah(a)):[]}function Qh(a){return null==a?[]:B(a,Bh(a))}function Rh(a,b,c){return c===W&&(c=b,b=W),c!==W&&(c=kh(c),c=c===c?c:0),b!==W&&(b=kh(b),b=b===b?b:0),zc(kh(a),b,c)}function Sh(a,b,c){return b=kh(b)||0,c===W?(c=b,b=0):c=kh(c)||0,a=kh(a),Tc(a,b,c)}function Th(a,b,c){if(c&&"boolean"!=typeof c&&we(a,b,c)&&(b=c=W),c===W&&("boolean"==typeof b?(c=b,b=W):"boolean"==typeof a&&(c=a,a=W)),a===W&&b===W?(a=0,b=1):(a=kh(a)||0,b===W?(b=a,a=0):b=kh(b)||0),a>b){var d=a;a=b,b=d}if(c||a%1||b%1){var e=uj();return sj(a+e*(b-a+xc("1e-"+((e+"").length-1))),b)}return nd(a,b)}function Uh(a){return Tk(nh(a).toLowerCase())}function Vh(a){return a=nh(a),a&&a.replace(zb,I).replace(ic,"")}function Wh(a,b,c){a=nh(a),b="string"==typeof b?b:b+"";var d=a.length;return c=c===W?d:zc(ih(c),0,d),c-=b.length,c>=0&&a.indexOf(b,c)==c}function Xh(a){return a=nh(a),a&&eb.test(a)?a.replace(cb,J):a}function Yh(a){return a=nh(a),a&&mb.test(a)?a.replace(lb,"\\$&"):a}function Zh(a,b,c){a=nh(a),b=ih(b);var d=S(a);if(!b||d>=b)return a;var e=(b-d)/2,f=nj(e),g=mj(e);return be("",f,c)+a+be("",g,c)}function $h(a,b,c){return a=nh(a),a+be(a,b,c)}function _h(a,b,c){return a=nh(a),be(a,b,c)+a}function ai(a,b,c){return c||null==b?b=0:b&&(b=+b),a=nh(a).replace(nb,""),tj(a,b||(tb.test(a)?16:10))}function bi(a,b){a=nh(a),b=ih(b);var c="";if(!a||1>b||b>ua)return c;do b%2&&(c+=a),b=nj(b/2),a+=a;while(b);return c}function ci(){var a=arguments,b=nh(a[0]);return a.length<3?b:b.replace(a[1],a[2])}function di(a,b,c){return nh(a).split(b,c)}function ei(a,b,c){return a=nh(a),c=zc(ih(c),0,a.length),a.lastIndexOf(b,c)==c}function fi(a,b,c){var d=yb.templateSettings;c&&we(a,b,c)&&(b=W),a=nh(a),b=Dk({},b,d,fc);var e,f,g=Dk({},b.imports,d.imports,fc),h=Ah(g),i=B(g,h),j=0,k=b.interpolate||Ab,l="__p += '",m=Qi((b.escape||Ab).source+"|"+k.source+"|"+(k===hb?rb:Ab).source+"|"+(b.evaluate||Ab).source+"|$","g"),n="//# sourceURL="+("sourceURL"in b?b.sourceURL:"lodash.templateSources["+ ++pc+"]")+"\n";a.replace(m,function(b,c,d,g,h,i){return d||(d=g),l+=a.slice(j,i).replace(Bb,K),c&&(e=!0,l+="' +\n__e("+c+") +\n'"),h&&(f=!0,l+="';\n"+h+";\n__p += '"),d&&(l+="' +\n((__t = ("+d+")) == null ? '' : __t) +\n'"),j=i+b.length,b}),l+="';\n";var o=b.variable;o||(l="with (obj) {\n"+l+"\n}\n"),l=(f?l.replace($a,""):l).replace(_a,"$1").replace(ab,"$1;"),l="function("+(o||"obj")+") {\n"+(o?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(e?", __e = _.escape":"")+(f?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+l+"return __p\n}";var p=Xk(function(){return Function(h,n+"return "+l).apply(W,i)});if(p.source=l,Ig(p))throw p;return p}function gi(a){return nh(a).toLowerCase()}function hi(a){return nh(a).toUpperCase()}function ii(a,b,c){if(a=nh(a),!a)return a;if(c||b===W)return a.replace(nb,"");if(b+="",!b)return a;var d=T(a),e=T(b);return d.slice(C(d,e),D(d,e)+1).join("")}function ji(a,b,c){if(a=nh(a),!a)return a;if(c||b===W)return a.replace(pb,"");if(b+="",!b)return a;var d=T(a);return d.slice(0,D(d,T(b))+1).join("")}function ki(a,b,c){if(a=nh(a),!a)return a;if(c||b===W)return a.replace(ob,"");if(b+="",!b)return a;var d=T(a);return d.slice(C(d,T(b))).join("")}function li(a,b){var c=ma,d=na;if(Ng(b)){var e="separator"in b?b.separator:e;c="length"in b?ih(b.length):c,d="omission"in b?nh(b.omission):d}a=nh(a);var f=a.length;if(kc.test(a)){var g=T(a);f=g.length}if(c>=f)return a;var h=c-S(d);if(1>h)return d;var i=g?g.slice(0,h).join(""):a.slice(0,h);if(e===W)return i+d;if(g&&(h+=i.length-h),Yg(e)){if(a.slice(h).search(e)){var j,k=i;for(e.global||(e=Qi(e.source,nh(sb.exec(e))+"g")),e.lastIndex=0;j=e.exec(k);)var l=j.index;i=i.slice(0,l===W?h:l)}}else if(a.indexOf(e,h)!=h){var m=i.lastIndexOf(e);m>-1&&(i=i.slice(0,m))}return i+d}function mi(a){return a=nh(a),a&&db.test(a)?a.replace(bb,U):a}function ni(a,b,c){return a=nh(a),b=c?W:b,b===W&&(b=nc.test(a)?mc:lc),a.match(b)||[]}function oi(a){var b=a?a.length:0,d=le();return a=b?l(a,function(a){if("function"!=typeof a[1])throw new Ri(Z);return[d(a[0]),a[1]]}):[],lg(function(d){for(var e=-1;++e<b;){var f=a[e];if(c(f[0],this,d))return c(f[1],this,d)}})}function pi(a){return Cc(Ac(a,!0))}function qi(a){return function(){return a}}function ri(a){return a}function si(a){return $c("function"==typeof a?a:Ac(a,!0))}function ti(a){return cd(Ac(a,!0))}function ui(a,b){return dd(a,Ac(b,!0))}function vi(a,b,c){var d=Ah(b),e=Pc(b,d);null!=c||Ng(b)&&(e.length||!d.length)||(c=b,b=a,a=this,e=Pc(b,Ah(b)));var g=Ng(c)&&"chain"in c?c.chain:!0,h=Kg(a);return f(e,function(c){var d=b[c];a[c]=d,h&&(a.prototype[c]=function(){var b=this.__chain__;if(g||b){var c=a(this.__wrapped__),e=c.__actions__=Md(this.__actions__);return e.push({func:d,args:arguments,thisArg:a}),c.__chain__=b,c}return d.apply(a,m([this.value()],arguments))})}),a}function wi(){return Gc._===this&&(Gc._=Zi),this}function xi(){}function yi(a){return a=ih(a),function(){return arguments[a]}}function zi(a){return xe(a)?jd(a):kd(a)}function Ai(a){return function(b){return null==a?W:Qc(a,b)}}function Bi(a,b){if(a=ih(a),1>a||a>ua)return[];var c=xa,d=sj(a,xa);b=vc(b),a-=xa;for(var e=y(d,b);++c<a;)b(c);return e}function Ci(a){return zk(a)?l(a,String):Ge(a)}function Di(a){var b=++Wi;return nh(a)+b}function Ei(a,b){var c;return a===W&&b===W?0:(a!==W&&(c=a),b!==W&&(c=c===W?b:c+b),c)}function Fi(a){return a&&a.length?q(a,ri,wg):W}function Gi(a,b){return a&&a.length?q(a,le(b),wg):W}function Hi(a){return Li(a)/(a?a.length:0)}function Ii(a){return a&&a.length?q(a,ri,fh):W}function Ji(a,b){return a&&a.length?q(a,le(b),fh):W}function Ki(a,b){var c;return a===W&&b===W?0:(a!==W&&(c=a),b!==W&&(c=c===W?b:c-b),c)}function Li(a){return a&&a.length?x(a,ri):0}function Mi(a,b){return a&&a.length?x(a,le(b)):0}E=E?Hc.defaults({},E,Hc.pick(Gc,oc)):Gc;var Ni=E.Date,Oi=E.Error,Pi=E.Math,Qi=E.RegExp,Ri=E.TypeError,Si=E.Array.prototype,Ti=E.Object.prototype,Ui=E.Function.prototype.toString,Vi=Ti.hasOwnProperty,Wi=0,Xi=Ui.call(Object),Yi=Ti.toString,Zi=Gc._,$i=Qi("^"+Ui.call(Vi).replace(lb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),_i=Bc?E.Buffer:W,aj=E.Reflect,bj=E.Symbol,cj=E.Uint8Array,dj=E.clearTimeout,ej=aj?aj.enumerate:W,fj=Object.getPrototypeOf,gj=Object.getOwnPropertySymbols,hj="symbol"==typeof(hj=bj&&bj.iterator)?hj:W,ij=Object.create,jj=Ti.propertyIsEnumerable,kj=E.setTimeout,lj=Si.splice,mj=Pi.ceil,nj=Pi.floor,oj=E.isFinite,pj=Si.join,qj=Object.keys,rj=Pi.max,sj=Pi.min,tj=E.parseInt,uj=Pi.random,vj=Si.reverse,wj=ne(E,"Map"),xj=ne(E,"Set"),yj=ne(E,"WeakMap"),zj=ne(Object,"create"),Aj=yj&&new yj,Bj=!jj.call({valueOf:1},"valueOf"),Cj={},Dj=wj?Ui.call(wj):"",Ej=xj?Ui.call(xj):"",Fj=yj?Ui.call(yj):"",Gj=bj?bj.prototype:W,Hj=Gj?Gj.valueOf:W,Ij=Gj?Gj.toString:W;yb.templateSettings={escape:fb,evaluate:gb,interpolate:hb,variable:"",imports:{_:yb}};var Jj=Sd(Nc),Kj=Sd(Oc,!0),Lj=Td(),Mj=Td(!0);ej&&!jj.call({valueOf:1},"valueOf")&&(ad=function(a){return O(ej(a))});var Nj=Aj?function(a,b){return Aj.set(a,b),a}:ri,Oj=xj&&2===new xj([1,2]).size?function(a){return new xj(a)}:xi,Pj=Aj?function(a){return Aj.get(a)}:xi,Qj=jd("length"),Rj=gj||function(){return[]};(wj&&pe(new wj)!=Ha||xj&&pe(new xj)!=La||yj&&pe(new yj)!=Oa)&&(pe=function(a){var b=Yi.call(a),c=b==Ja?a.constructor:null,d="function"==typeof c?Ui.call(c):"";if(d)switch(d){case Dj:return Ha;case Ej:return La;case Fj:return Oa}return b});var Sj=function(){var a=0,b=0;return function(c,d){var e=qk(),f=pa-(e-b);if(b=e,f>0){if(++a>=oa)return c}else a=0;return Nj(c,d)}}(),Tj=lg(function(a,b){return zk(a)||(a=null==a?[]:[Object(a)]),b=Lc(b,1),e(a,b)}),Uj=lg(function(a,b){return Bg(a)?Fc(a,Lc(b,1,!0)):[]}),Vj=lg(function(a,b){var c=Ze(b);return Bg(c)&&(c=W),Bg(a)?Fc(a,Lc(b,1,!0),le(c)):[]}),Wj=lg(function(a,b){var c=Ze(b);return Bg(c)&&(c=W),Bg(a)?Fc(a,Lc(b,1,!0),W,c):[]}),Xj=lg(function(a){var b=l(a,uc);return b.length&&b[0]===a[0]?Uc(b):[]}),Yj=lg(function(a){var b=Ze(a),c=l(a,uc);return b===Ze(c)?b=W:c.pop(),c.length&&c[0]===a[0]?Uc(c,le(b)):[]}),Zj=lg(function(a){var b=Ze(a),c=l(a,uc);return b===Ze(c)?b=W:c.pop(),c.length&&c[0]===a[0]?Uc(c,W,b):[]}),$j=lg(_e),_j=lg(function(a,b){b=l(Lc(b,1),String);var c=tc(a,b);return md(a,b.sort(F)),c}),ak=lg(function(a){return wd(Lc(a,1,!0))}),bk=lg(function(a){var b=Ze(a);return Bg(b)&&(b=W),wd(Lc(a,1,!0),le(b))}),ck=lg(function(a){var b=Ze(a);return Bg(b)&&(b=W),wd(Lc(a,1,!0),W,b)}),dk=lg(function(a,b){return Bg(a)?Fc(a,b):[]}),ek=lg(function(a){return Bd(i(a,Bg))}),fk=lg(function(a){var b=Ze(a);return Bg(b)&&(b=W),Bd(i(a,Bg),le(b))}),gk=lg(function(a){var b=Ze(a);return Bg(b)&&(b=W),Bd(i(a,Bg),W,b)}),hk=lg(wf),ik=lg(function(a){var b=a.length,c=b>1?a[b-1]:W;return c="function"==typeof c?(a.pop(),c):W,xf(a,c)}),jk=lg(function(a){a=Lc(a,1);var b=a.length,c=b?a[0]:0,d=this.__wrapped__,e=function(b){return tc(b,a)};return!(b>1||this.__actions__.length)&&d instanceof Eb&&N(c)?(d=d.slice(c,+c+(b?1:0)),d.__actions__.push({func:Cf,args:[e],thisArg:W}),new Db(d,this.__chain__).thru(function(a){return b&&!a.length&&a.push(W),a})):this.thru(e)}),kk=Qd(function(a,b,c){Vi.call(a,c)?++a[c]:a[c]=1}),lk=Qd(function(a,b,c){Vi.call(a,c)?a[c].push(b):a[c]=[b]}),mk=lg(function(a,b,d){var e=-1,f="function"==typeof b,g=xe(b),h=Ag(a)?Array(a.length):[];return Jj(a,function(a){var i=f?b:g&&null!=a?a[b]:W;h[++e]=i?c(i,a,d):Wc(a,b,d)}),h}),nk=Qd(function(a,b,c){a[c]=b}),ok=Qd(function(a,b,c){a[c?0:1].push(b)},function(){return[[],[]]}),pk=lg(function(a,b){if(null==a)return[];var c=b.length;return c>1&&we(a,b[0],b[1])?b=[]:c>2&&we(b[0],b[1],b[2])&&(b.length=1),gd(a,Lc(b,1),[])}),qk=Ni.now,rk=lg(function(a,b,c){var d=aa;if(c.length){var e=Q(c,oe(rk));d|=fa}return ge(a,d,b,c,e)}),sk=lg(function(a,b,c){var d=aa|ba;if(c.length){var e=Q(c,oe(sk));d|=fa}return ge(b,d,a,c,e)}),tk=lg(function(a,b){return Ec(a,1,b)}),uk=lg(function(a,b,c){return Ec(a,kh(b)||0,c)}),vk=lg(function(a,b){b=l(Lc(b,1),le());var d=b.length;return lg(function(e){for(var f=-1,g=sj(e.length,d);++f<g;)e[f]=b[f].call(this,e[f]);return c(a,this,e)})}),wk=lg(function(a,b){var c=Q(b,oe(wk));return ge(a,fa,W,b,c)}),xk=lg(function(a,b){var c=Q(b,oe(xk));return ge(a,ga,W,b,c)}),yk=lg(function(a,b){return ge(a,ia,W,W,W,Lc(b,1))}),zk=Array.isArray,Ak=_i?function(a){return a instanceof _i}:qi(!1),Bk=Rd(function(a,b){if(Bj||Ae(b)||Ag(b))return void Nd(b,Ah(b),a);for(var c in b)Vi.call(b,c)&&hc(a,c,b[c])}),Ck=Rd(function(a,b){if(Bj||Ae(b)||Ag(b))return void Nd(b,Bh(b),a);for(var c in b)hc(a,c,b[c])}),Dk=Rd(function(a,b,c,d){Od(b,Bh(b),a,d)}),Ek=Rd(function(a,b,c,d){Od(b,Ah(b),a,d)}),Fk=lg(function(a,b){return tc(a,Lc(b,1))}),Gk=lg(function(a){return a.push(W,fc),c(Dk,W,a)}),Hk=lg(function(a){return a.push(W,De),c(Mk,W,a)}),Ik=_d(function(a,b,c){a[b]=c},qi(ri)),Jk=_d(function(a,b,c){Vi.call(a,b)?a[b].push(c):a[b]=[c]},le),Kk=lg(Wc),Lk=Rd(function(a,b,c){ed(a,b,c)}),Mk=Rd(function(a,b,c,d){ed(a,b,c,d)}),Nk=lg(function(a,b){return null==a?{}:(b=l(Lc(b,1),String),hd(a,Fc(Bh(a),b)))}),Ok=lg(function(a,b){return null==a?{}:hd(a,Lc(b,1))}),Pk=Wd(function(a,b,c){return b=b.toLowerCase(),a+(c?Uh(b):b)}),Qk=Wd(function(a,b,c){return a+(c?"-":"")+b.toLowerCase()}),Rk=Wd(function(a,b,c){return a+(c?" ":"")+b.toLowerCase()}),Sk=Vd("toLowerCase"),Tk=Vd("toUpperCase"),Uk=Wd(function(a,b,c){return a+(c?"_":"")+b.toLowerCase()}),Vk=Wd(function(a,b,c){return a+(c?" ":"")+Uh(b)}),Wk=Wd(function(a,b,c){return a+(c?" ":"")+b.toUpperCase()}),Xk=lg(function(a,b){try{return c(a,W,b)}catch(d){return Ig(d)?d:new Oi(d)}}),Yk=lg(function(a,b){return f(Lc(b,1),function(b){a[b]=rk(a[b],a)}),a}),Zk=Zd(),$k=Zd(!0),_k=lg(function(a,b){return function(c){return Wc(c,a,b)}}),al=lg(function(a,b){return function(c){return Wc(a,c,b)}}),bl=ae(l),cl=ae(h),dl=ae(p),el=de(),fl=de(!0),gl=fe("ceil"),hl=fe("floor"),il=fe("round");return yb.prototype=Cb.prototype,yb.prototype.constructor=yb,Db.prototype=Dc(Cb.prototype),Db.prototype.constructor=Db,Eb.prototype=Dc(Cb.prototype),Eb.prototype.constructor=Eb,Ib.prototype=zj?zj(null):Ti,Nb.prototype.clear=Ob,Nb.prototype["delete"]=Pb,Nb.prototype.get=Qb,Nb.prototype.has=Rb,Nb.prototype.set=Sb,Tb.prototype.push=Vb,Wb.prototype.clear=Xb,Wb.prototype["delete"]=Yb,Wb.prototype.get=Zb,Wb.prototype.has=$b,Wb.prototype.set=_b,ig.Cache=Nb,yb.after=bg,yb.ary=cg,yb.assign=Bk,yb.assignIn=Ck,yb.assignInWith=Dk,yb.assignWith=Ek,yb.at=Fk,yb.before=dg,yb.bind=rk,yb.bindAll=Yk,yb.bindKey=sk,yb.castArray=qg,yb.chain=Af,yb.chunk=Ie,yb.compact=Je,yb.concat=Tj,yb.cond=oi,yb.conforms=pi,yb.constant=qi,yb.countBy=kk,yb.create=oh,yb.curry=eg,yb.curryRight=fg,yb.debounce=gg,yb.defaults=Gk,yb.defaultsDeep=Hk,yb.defer=tk,yb.delay=uk,yb.difference=Uj,yb.differenceBy=Vj,yb.differenceWith=Wj,yb.drop=Ke,yb.dropRight=Le,yb.dropRightWhile=Me,yb.dropWhile=Ne,yb.fill=Oe,yb.filter=Mf,yb.flatMap=Pf,yb.flatten=Re,yb.flattenDeep=Se,yb.flattenDepth=Te,yb.flip=hg,yb.flow=Zk,yb.flowRight=$k,yb.fromPairs=Ue,yb.functions=vh,yb.functionsIn=wh,yb.groupBy=lk,yb.initial=Xe,yb.intersection=Xj,yb.intersectionBy=Yj,yb.intersectionWith=Zj,yb.invert=Ik,yb.invertBy=Jk,yb.invokeMap=mk,yb.iteratee=si,yb.keyBy=nk,yb.keys=Ah,yb.keysIn=Bh,yb.map=Tf,yb.mapKeys=Ch,yb.mapValues=Dh,yb.matches=ti,yb.matchesProperty=ui,yb.memoize=ig,yb.merge=Lk,yb.mergeWith=Mk,yb.method=_k,yb.methodOf=al,yb.mixin=vi,yb.negate=jg,yb.nthArg=yi,yb.omit=Nk,yb.omitBy=Eh,yb.once=kg,yb.orderBy=Uf,yb.over=bl,yb.overArgs=vk,yb.overEvery=cl,yb.overSome=dl,yb.partial=wk,yb.partialRight=xk,yb.partition=ok,yb.pick=Ok,yb.pickBy=Fh,yb.property=zi,yb.propertyOf=Ai,yb.pull=$j,yb.pullAll=_e,yb.pullAllBy=af,yb.pullAllWith=bf,yb.pullAt=_j,yb.range=el,yb.rangeRight=fl,yb.rearg=yk,yb.reject=Xf,yb.remove=cf,yb.rest=lg,yb.reverse=df,yb.sampleSize=Zf,yb.set=Hh,yb.setWith=Ih,yb.shuffle=$f,yb.slice=ef,yb.sortBy=pk,yb.sortedUniq=mf,yb.sortedUniqBy=nf,yb.split=di,yb.spread=mg,yb.tail=of,yb.take=pf,yb.takeRight=qf,yb.takeRightWhile=rf,yb.takeWhile=sf,yb.tap=Bf,yb.throttle=ng,yb.thru=Cf,yb.toArray=hh,yb.toPairs=Jh,yb.toPairsIn=Kh,yb.toPath=Ci,yb.toPlainObject=lh,yb.transform=Lh,yb.unary=og,yb.union=ak,yb.unionBy=bk,yb.unionWith=ck,yb.uniq=tf,yb.uniqBy=uf,yb.uniqWith=vf,yb.unset=Mh,yb.unzip=wf,yb.unzipWith=xf,yb.update=Nh,yb.updateWith=Oh,yb.values=Ph,yb.valuesIn=Qh,yb.without=dk,yb.words=ni,yb.wrap=pg,yb.xor=ek,yb.xorBy=fk,yb.xorWith=gk,yb.zip=hk,yb.zipObject=yf,yb.zipObjectDeep=zf,yb.zipWith=ik,yb.extend=Ck,yb.extendWith=Dk,vi(yb,yb),yb.add=Ei,yb.attempt=Xk,yb.camelCase=Pk,yb.capitalize=Uh,yb.ceil=gl,yb.clamp=Rh,yb.clone=rg,yb.cloneDeep=tg,yb.cloneDeepWith=ug,yb.cloneWith=sg,yb.deburr=Vh,yb.endsWith=Wh,yb.eq=vg,yb.escape=Xh,yb.escapeRegExp=Yh,yb.every=Lf,yb.find=Nf,yb.findIndex=Pe,yb.findKey=ph,yb.findLast=Of,yb.findLastIndex=Qe,yb.findLastKey=qh,yb.floor=hl,yb.forEach=Qf,yb.forEachRight=Rf,yb.forIn=rh,yb.forInRight=sh,yb.forOwn=th,yb.forOwnRight=uh,yb.get=xh,yb.gt=wg,yb.gte=xg,yb.has=yh,yb.hasIn=zh,yb.head=Ve,yb.identity=ri,yb.includes=Sf,yb.indexOf=We,yb.inRange=Sh,yb.invoke=Kk,yb.isArguments=yg,yb.isArray=zk,yb.isArrayBuffer=zg,yb.isArrayLike=Ag,yb.isArrayLikeObject=Bg,yb.isBoolean=Cg,yb.isBuffer=Ak,yb.isDate=Dg,yb.isElement=Eg,yb.isEmpty=Fg,yb.isEqual=Gg,yb.isEqualWith=Hg,yb.isError=Ig,yb.isFinite=Jg,yb.isFunction=Kg,yb.isInteger=Lg,yb.isLength=Mg,yb.isMap=Pg,yb.isMatch=Qg,yb.isMatchWith=Rg,yb.isNaN=Sg,yb.isNative=Tg,yb.isNil=Vg,yb.isNull=Ug,yb.isNumber=Wg,yb.isObject=Ng,yb.isObjectLike=Og,yb.isPlainObject=Xg,yb.isRegExp=Yg,yb.isSafeInteger=Zg,yb.isSet=$g,yb.isString=_g,yb.isSymbol=ah,yb.isTypedArray=bh,yb.isUndefined=ch,yb.isWeakMap=dh,yb.isWeakSet=eh,yb.join=Ye,yb.kebabCase=Qk,yb.last=Ze,yb.lastIndexOf=$e,yb.lowerCase=Rk,yb.lowerFirst=Sk,yb.lt=fh,yb.lte=gh,yb.max=Fi,yb.maxBy=Gi,yb.mean=Hi,yb.min=Ii,yb.minBy=Ji,yb.noConflict=wi,yb.noop=xi,yb.now=qk,yb.pad=Zh,yb.padEnd=$h,yb.padStart=_h,yb.parseInt=ai,yb.random=Th,yb.reduce=Vf,yb.reduceRight=Wf,yb.repeat=bi,yb.replace=ci,yb.result=Gh,yb.round=il,yb.runInContext=V,yb.sample=Yf,yb.size=_f,yb.snakeCase=Uk,yb.some=ag,yb.sortedIndex=ff,yb.sortedIndexBy=gf,yb.sortedIndexOf=hf,yb.sortedLastIndex=jf,yb.sortedLastIndexBy=kf,yb.sortedLastIndexOf=lf,yb.startCase=Vk,yb.startsWith=ei,yb.subtract=Ki,yb.sum=Li,yb.sumBy=Mi,yb.template=fi,yb.times=Bi,yb.toInteger=ih,yb.toLength=jh,yb.toLower=gi,yb.toNumber=kh,yb.toSafeInteger=mh,yb.toString=nh,yb.toUpper=hi,yb.trim=ii,yb.trimEnd=ji,yb.trimStart=ki,yb.truncate=li,yb.unescape=mi,yb.uniqueId=Di,yb.upperCase=Wk,yb.upperFirst=Tk,yb.each=Qf,yb.eachRight=Rf,yb.first=Ve,vi(yb,function(){var a={};return Nc(yb,function(b,c){Vi.call(yb.prototype,c)||(a[c]=b)}),a}(),{chain:!1}),yb.VERSION=X,f(["bind","bindKey","curry","curryRight","partial","partialRight"],function(a){yb[a].placeholder=yb}),f(["drop","take"],function(a,b){Eb.prototype[a]=function(c){var d=this.__filtered__;if(d&&!b)return new Eb(this);c=c===W?1:rj(ih(c),0);var e=this.clone();return d?e.__takeCount__=sj(c,e.__takeCount__):e.__views__.push({size:sj(c,xa),type:a+(e.__dir__<0?"Right":"")}),e},Eb.prototype[a+"Right"]=function(b){return this.reverse()[a](b).reverse()}}),f(["filter","map","takeWhile"],function(a,b){var c=b+1,d=c==qa||c==sa;Eb.prototype[a]=function(a){var b=this.clone();return b.__iteratees__.push({iteratee:le(a,3),type:c}),b.__filtered__=b.__filtered__||d,b}}),f(["head","last"],function(a,b){var c="take"+(b?"Right":"");Eb.prototype[a]=function(){return this[c](1).value()[0]}}),f(["initial","tail"],function(a,b){var c="drop"+(b?"":"Right");Eb.prototype[a]=function(){return this.__filtered__?new Eb(this):this[c](1)}}),Eb.prototype.compact=function(){return this.filter(ri)},Eb.prototype.find=function(a){return this.filter(a).head()},Eb.prototype.findLast=function(a){return this.reverse().find(a)},Eb.prototype.invokeMap=lg(function(a,b){return"function"==typeof a?new Eb(this):this.map(function(c){return Wc(c,a,b)})}),Eb.prototype.reject=function(a){return a=le(a,3),this.filter(function(b){return!a(b)})},Eb.prototype.slice=function(a,b){a=ih(a);var c=this;return c.__filtered__&&(a>0||0>b)?new Eb(c):(0>a?c=c.takeRight(-a):a&&(c=c.drop(a)),b!==W&&(b=ih(b),c=0>b?c.dropRight(-b):c.take(b-a)),c)},Eb.prototype.takeRightWhile=function(a){return this.reverse().takeWhile(a).reverse()},Eb.prototype.toArray=function(){return this.take(xa)},Nc(Eb.prototype,function(a,b){var c=/^(?:filter|find|map|reject)|While$/.test(b),d=/^(?:head|last)$/.test(b),e=yb[d?"take"+("last"==b?"Right":""):b],f=d||/^find/.test(b);e&&(yb.prototype[b]=function(){var b=this.__wrapped__,g=d?[1]:arguments,h=b instanceof Eb,i=g[0],j=h||zk(b),k=function(a){var b=e.apply(yb,m([a],g));return d&&l?b[0]:b};j&&c&&"function"==typeof i&&1!=i.length&&(h=j=!1);var l=this.__chain__,n=!!this.__actions__.length,o=f&&!l,p=h&&!n;if(!f&&j){b=p?b:new Eb(this);var q=a.apply(b,g);return q.__actions__.push({func:Cf,args:[k],thisArg:W}),new Db(q,l)}return o&&p?a.apply(this,g):(q=this.thru(k),o?d?q.value()[0]:q.value():q)})}),f(["pop","push","shift","sort","splice","unshift"],function(a){var b=Si[a],c=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",d=/^(?:pop|shift)$/.test(a);yb.prototype[a]=function(){var a=arguments;return d&&!this.__chain__?b.apply(this.value(),a):this[c](function(c){return b.apply(c,a)})}}),Nc(Eb.prototype,function(a,b){var c=yb[b];if(c){var d=c.name+"",e=Cj[d]||(Cj[d]=[]);e.push({name:b,func:c})}}),Cj[$d(W,ba).name]=[{name:"wrapper",func:W}],Eb.prototype.clone=Fb,Eb.prototype.reverse=Gb,Eb.prototype.value=Hb,yb.prototype.at=jk,yb.prototype.chain=Df,yb.prototype.commit=Ef,yb.prototype.flatMap=Ff,yb.prototype.next=Gf,yb.prototype.plant=If,yb.prototype.reverse=Jf,yb.prototype.toJSON=yb.prototype.valueOf=yb.prototype.value=Kf,hj&&(yb.prototype[hj]=Hf),yb}var W,X="4.6.1",Y=200,Z="Expected a function",$="__lodash_hash_undefined__",_="__lodash_placeholder__",aa=1,ba=2,ca=4,da=8,ea=16,fa=32,ga=64,ha=128,ia=256,ja=512,ka=1,la=2,ma=30,na="...",oa=150,pa=16,qa=1,ra=2,sa=3,ta=1/0,ua=9007199254740991,va=1.7976931348623157e308,wa=NaN,xa=4294967295,ya=xa-1,za=xa>>>1,Aa="[object Arguments]",Ba="[object Array]",Ca="[object Boolean]",Da="[object Date]",Ea="[object Error]",Fa="[object Function]",Ga="[object GeneratorFunction]",Ha="[object Map]",Ia="[object Number]",Ja="[object Object]",Ka="[object RegExp]",La="[object Set]",Ma="[object String]",Na="[object Symbol]",Oa="[object WeakMap]",Pa="[object WeakSet]",Qa="[object ArrayBuffer]",Ra="[object Float32Array]",Sa="[object Float64Array]",Ta="[object Int8Array]",Ua="[object Int16Array]",Va="[object Int32Array]",Wa="[object Uint8Array]",Xa="[object Uint8ClampedArray]",Ya="[object Uint16Array]",Za="[object Uint32Array]",$a=/\b__p \+= '';/g,_a=/\b(__p \+=) '' \+/g,ab=/(__e\(.*?\)|\b__t\)) \+\n'';/g,bb=/&(?:amp|lt|gt|quot|#39|#96);/g,cb=/[&<>"'`]/g,db=RegExp(bb.source),eb=RegExp(cb.source),fb=/<%-([\s\S]+?)%>/g,gb=/<%([\s\S]+?)%>/g,hb=/<%=([\s\S]+?)%>/g,ib=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,jb=/^\w*$/,kb=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g,lb=/[\\^$.*+?()[\]{}|]/g,mb=RegExp(lb.source),nb=/^\s+|\s+$/g,ob=/^\s+/,pb=/\s+$/,qb=/\\(\\)?/g,rb=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,sb=/\w*$/,tb=/^0x/i,ub=/^[-+]0x[0-9a-f]+$/i,vb=/^0b[01]+$/i,wb=/^\[object .+?Constructor\]$/,xb=/^0o[0-7]+$/i,yb=/^(?:0|[1-9]\d*)$/,zb=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Ab=/($^)/,Bb=/['\n\r\u2028\u2029\\]/g,Cb="\\ud800-\\udfff",Db="\\u0300-\\u036f\\ufe20-\\ufe23",Eb="\\u20d0-\\u20f0",Fb="\\u2700-\\u27bf",Gb="a-z\\xdf-\\xf6\\xf8-\\xff",Hb="\\xac\\xb1\\xd7\\xf7",Ib="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Jb="\\u2018\\u2019\\u201c\\u201d",Kb=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Lb="A-Z\\xc0-\\xd6\\xd8-\\xde",Mb="\\ufe0e\\ufe0f",Nb=Hb+Ib+Jb+Kb,Ob="["+Cb+"]",Pb="["+Nb+"]",Qb="["+Db+Eb+"]",Rb="\\d+",Sb="["+Fb+"]",Tb="["+Gb+"]",Ub="[^"+Cb+Nb+Rb+Fb+Gb+Lb+"]",Vb="\\ud83c[\\udffb-\\udfff]",Wb="(?:"+Qb+"|"+Vb+")",Xb="[^"+Cb+"]",Yb="(?:\\ud83c[\\udde6-\\uddff]){2}",Zb="[\\ud800-\\udbff][\\udc00-\\udfff]",$b="["+Lb+"]",_b="\\u200d",ac="(?:"+Tb+"|"+Ub+")",bc="(?:"+$b+"|"+Ub+")",cc=Wb+"?",dc="["+Mb+"]?",ec="(?:"+_b+"(?:"+[Xb,Yb,Zb].join("|")+")"+dc+cc+")*",fc=dc+cc+ec,gc="(?:"+[Sb,Yb,Zb].join("|")+")"+fc,hc="(?:"+[Xb+Qb+"?",Qb,Yb,Zb,Ob].join("|")+")",ic=RegExp(Qb,"g"),jc=RegExp(Vb+"(?="+Vb+")|"+hc+fc,"g"),kc=RegExp("["+_b+Cb+Db+Eb+Mb+"]"),lc=/[a-zA-Z0-9]+/g,mc=RegExp([$b+"?"+Tb+"+(?="+[Pb,$b,"$"].join("|")+")",bc+"+(?="+[Pb,$b+ac,"$"].join("|")+")",$b+"?"+ac+"+",$b+"+",Rb,gc].join("|"),"g"),nc=/[a-z][A-Z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,oc=["Array","Buffer","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Reflect","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],pc=-1,qc={};qc[Ra]=qc[Sa]=qc[Ta]=qc[Ua]=qc[Va]=qc[Wa]=qc[Xa]=qc[Ya]=qc[Za]=!0,qc[Aa]=qc[Ba]=qc[Qa]=qc[Ca]=qc[Da]=qc[Ea]=qc[Fa]=qc[Ha]=qc[Ia]=qc[Ja]=qc[Ka]=qc[La]=qc[Ma]=qc[Oa]=!1;var rc={};rc[Aa]=rc[Ba]=rc[Qa]=rc[Ca]=rc[Da]=rc[Ra]=rc[Sa]=rc[Ta]=rc[Ua]=rc[Va]=rc[Ha]=rc[Ia]=rc[Ja]=rc[Ka]=rc[La]=rc[Ma]=rc[Na]=rc[Wa]=rc[Xa]=rc[Ya]=rc[Za]=!0,rc[Ea]=rc[Fa]=rc[Oa]=!1;var sc={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},tc={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},uc={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&#96;":"`"},vc={"function":!0,object:!0},wc={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},xc=parseFloat,yc=parseInt,zc=vc[typeof exports]&&exports&&!exports.nodeType?exports:W,Ac=vc[typeof module]&&module&&!module.nodeType?module:W,Bc=Ac&&Ac.exports===zc?zc:W,Cc=E(zc&&Ac&&"object"==typeof global&&global),Dc=E(vc[typeof self]&&self),Ec=E(vc[typeof window]&&window),Fc=E(vc[typeof this]&&this),Gc=Cc||Ec!==(Fc&&Fc.window)&&Ec||Dc||Fc||Function("return this")(),Hc=V();(Ec||Dc||{})._=Hc,"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return Hc}):zc&&Ac?(Bc&&((Ac.exports=Hc)._=Hc),zc._=Hc):Gc._=Hc}.call(this),angular.module("templates-angularwizard",["step.html","wizard.html"]),angular.module("step.html",[]).run(["$templateCache",function(a){a.put("step.html",'<section ng-show="selected" ng-class="{current: selected, done: completed}" class="step" ng-transclude>\n</section>')}]),angular.module("wizard.html",[]).run(["$templateCache",function(a){a.put("wizard.html",'<div>\n    <div class="steps" ng-transclude></div>\n    <ul class="steps-indicator steps-{{getEnabledSteps().length}}" ng-if="!hideIndicators">\n      <li ng-class="{default: !step.completed && !step.selected, current: step.selected && !step.completed, done: step.completed && !step.selected, editing: step.selected && step.completed}" ng-repeat="step in getEnabledSteps()">\n        <a ng-click="goTo(step)">{{step.title || step.wzTitle}}</a>\n      </li>\n    </ul>\n</div>\n')}]),angular.module("mgo-angular-wizard",["templates-angularwizard"]),angular.module("mgo-angular-wizard").directive("wzStep",function(){return{restrict:"EA",replace:!0,transclude:!0,scope:{wzTitle:"@",title:"@",canenter:"=",canexit:"=",disabled:"@?wzDisabled"},require:"^wizard",templateUrl:function(a,b){return b.template||"step.html"},link:function(a,b,c,d){a.title=a.title||a.wzTitle,d.addStep(a)}}}),angular.module("mgo-angular-wizard").directive("wizard",function(){return{restrict:"EA",replace:!0,transclude:!0,scope:{currentStep:"=",onFinish:"&",hideIndicators:"=",editMode:"=",name:"@"},templateUrl:function(a,b){return b.template||"wizard.html"},controller:["$scope","$element","$log","WizardHandler","$q",function(a,b,c,d,e){function f(b){var c,d;return void 0===b.canenter?!0:"boolean"==typeof b.canenter?b.canenter:(d=b.canenter(a.context),angular.isFunction(d.then)?(c=e.defer(),d.then(function(a){c.resolve(a)}),c.promise):b.canenter(a.context)===!0)}function g(b,c){var d,f;return"undefined"==typeof b.canexit||a.getStepNumber(c)<a.currentStepNumber()?!0:"boolean"==typeof b.canexit?b.canexit:(f=b.canexit(a.context),
+angular.isFunction(f.then)?(d=e.defer(),f.then(function(a){d.resolve(a)}),d.promise):b.canexit(a.context)===!0)}function h(){_.each(a.getEnabledSteps(),function(a){a.selected=!1}),a.selectedStep=null}var i=!0;d.addWizard(a.name||d.defaultName,this),a.$on("$destroy",function(){d.removeWizard(a.name||d.defaultName)}),a.steps=[],a.context={},a.$watch("currentStep",function(b){if(b){var c=a.selectedStep.title||a.selectedStep.wzTitle;a.selectedStep&&c!==a.currentStep&&a.goTo(_.findWhere(a.getEnabledSteps(),{title:a.currentStep}))}}),a.$watch("[editMode, steps.length]",function(){var b=a.editMode;_.isUndefined(b)||_.isNull(b)||b&&_.each(a.getEnabledSteps(),function(a){a.completed=!0})},!0),this.addStep=function(b){a.steps.push(b),1===a.getEnabledSteps().length&&a.goTo(a.getEnabledSteps()[0])},this.context=a.context,a.getStepNumber=function(b){return _.indexOf(a.getEnabledSteps(),b)+1},a.goTo=function(b){if(i)h(),a.selectedStep=b,_.isUndefined(a.currentStep)||(a.currentStep=b.title||b.wzTitle),b.selected=!0,a.$emit("wizard:stepChanged",{step:b,index:_.indexOf(a.getEnabledSteps(),b)}),i=!1;else{var c;a.currentStepNumber()>0?c=a.currentStepNumber()-1:0===a.currentStepNumber()&&(c=0),e.all([g(a.getEnabledSteps()[c],b),f(b)]).then(function(c){c[0]&&c[1]&&(h(),a.selectedStep=b,_.isUndefined(a.currentStep)||(a.currentStep=b.title||b.wzTitle),b.selected=!0,a.$emit("wizard:stepChanged",{step:b,index:_.indexOf(a.getEnabledSteps(),b)}))})}},a.currentStepNumber=function(){return _.indexOf(a.getEnabledSteps(),a.selectedStep)+1},a.getEnabledSteps=function(){return _.filter(a.steps,function(a){return"true"!==a.disabled})},this.currentStepTitle=function(){return a.selectedStep.title},this.currentStepNumber=function(){return a.currentStepNumber()},this.next=function(b){var c=a.getEnabledSteps(),d=_.indexOf(c,a.selectedStep);if(angular.isFunction(b)){if(!b())return;d===c.length-1?this.finish():a.goTo(c[d+1])}b||(a.selectedStep.completed=!0),d===c.length-1?this.finish():a.goTo(c[d+1])},this.goTo=function(b){var c,d=a.getEnabledSteps();c=_.isNumber(b)?d[b]:_.findWhere(d,{title:b}),a.goTo(c)},this.finish=function(){a.onFinish&&a.onFinish()},this.previous=function(){var b=_.indexOf(a.getEnabledSteps(),a.selectedStep);if(0===b)throw new Error("Can't go back. It's already in step 0");a.goTo(a.getEnabledSteps()[b-1])},this.cancel=function(){var b=_.indexOf(a.getEnabledSteps(),a.selectedStep);if(0===b)throw new Error("Can't go back. It's already in step 0");a.goTo(a.getEnabledSteps()[0])}}]}}),wizardButtonDirective("wzNext"),wizardButtonDirective("wzPrevious"),wizardButtonDirective("wzFinish"),wizardButtonDirective("wzCancel"),angular.module("mgo-angular-wizard").factory("WizardHandler",function(){var a={},b={};return a.defaultName="defaultWizard",a.addWizard=function(a,c){b[a]=c},a.removeWizard=function(a){delete b[a]},a.wizard=function(c){var d=c;return c||(d=a.defaultName),b[d]},a}),angular.module("xeditable",[]).value("editableOptions",{theme:"default",icon_set:"default",buttons:"right",blurElem:"cancel",blurForm:"ignore",activate:"focus",isDisabled:!1,activationEvent:"click"}),angular.module("xeditable").directive("editableBsdate",["editableDirectiveFactory",function(a){return a({directiveName:"editableBsdate",inputTpl:"<div></div>",render:function(){this.parent.render.call(this);var a=angular.element('<input type="text" class="form-control" ng-model="$data"/>'),b=angular.element('<button type="button" class="btn btn-default"><i class="glyphicon glyphicon-calendar"></i></button>'),c=angular.element('<span class="input-group-btn"></span>');a.attr("datepicker-popup",this.attrs.eDatepickerPopupXEditable||"yyyy/MM/dd"),a.attr("is-open",this.attrs.eIsOpen),a.attr("date-disabled",this.attrs.eDateDisabled),a.attr("datepicker-popup",this.attrs.eDatepickerPopup),a.attr("datepicker-mode",this.attrs.eDatepickerMode||"day"),a.attr("min-date",this.attrs.eMinDate),a.attr("max-date",this.attrs.eMaxDate),a.attr("show-weeks",this.attrs.eShowWeeks||!0),a.attr("starting-day",this.attrs.eStartingDay||0),a.attr("init-date",this.attrs.eInitDate||new Date),a.attr("min-mode",this.attrs.eMinMode||"day"),a.attr("max-mode",this.attrs.eMaxMode||"year"),a.attr("format-day",this.attrs.eFormatDay||"dd"),a.attr("format-month",this.attrs.eFormatMonth||"MMMM"),a.attr("format-year",this.attrs.eFormatYear||"yyyy"),a.attr("format-day-header",this.attrs.eFormatDayHeader||"EEE"),a.attr("format-day-title",this.attrs.eFormatDayTitle||"MMMM yyyy"),a.attr("format-month-title",this.attrs.eFormatMonthTitle||"yyyy"),a.attr("year-range",this.attrs.eYearRange||20),a.attr("show-button-bar",this.attrs.eShowButtonBar||!0),a.attr("current-text",this.attrs.eCurrentText||"Today"),a.attr("clear-text",this.attrs.eClearText||"Clear"),a.attr("close-text",this.attrs.eCloseText||"Done"),a.attr("close-on-date-selection",this.attrs.eCloseOnDateSelection||!0),a.attr("date-picker-append-to-body",this.attrs.eDatePickerAppendToBody||!1),a.attr("date-disabled",this.attrs.eDateDisabled),b.attr("ng-click",this.attrs.eNgClick),c.append(b),this.inputEl.prepend(a),this.inputEl.append(c),this.inputEl.removeAttr("class"),this.inputEl.attr("class","input-group")}})}]),angular.module("xeditable").directive("editableBstime",["editableDirectiveFactory",function(a){return a({directiveName:"editableBstime",inputTpl:"<timepicker></timepicker>",render:function(){this.parent.render.call(this);var a=angular.element('<div class="well well-small" style="display:inline-block;"></div>');a.attr("ng-model",this.inputEl.attr("ng-model")),this.inputEl.removeAttr("ng-model"),this.attrs.eNgChange&&(a.attr("ng-change",this.inputEl.attr("ng-change")),this.inputEl.removeAttr("ng-change")),this.inputEl.wrap(a)}})}]),angular.module("xeditable").directive("editableCheckbox",["editableDirectiveFactory",function(a){return a({directiveName:"editableCheckbox",inputTpl:'<input type="checkbox">',render:function(){this.parent.render.call(this),this.attrs.eTitle&&(this.inputEl.wrap("<label></label>"),this.inputEl.parent().append(this.attrs.eTitle))},autosubmit:function(){var a=this;a.inputEl.bind("change",function(){setTimeout(function(){a.scope.$apply(function(){a.scope.$form.$submit()})},500)})}})}]),angular.module("xeditable").directive("editableChecklist",["editableDirectiveFactory","editableNgOptionsParser",function(a,b){return a({directiveName:"editableChecklist",inputTpl:"<span></span>",useCopy:!0,render:function(){this.parent.render.call(this);var a=b(this.attrs.eNgOptions),c='<label ng-repeat="'+a.ngRepeat+'"><input type="checkbox" checklist-model="$parent.$data" checklist-value="'+a.locals.valueFn+'"><span ng-bind="'+a.locals.displayFn+'"></span></label>';this.inputEl.removeAttr("ng-model"),this.inputEl.removeAttr("ng-options"),this.inputEl.html(c)}})}]),angular.module("xeditable").directive("editableCombodate",["editableDirectiveFactory","editableCombodate",function(a,b){return a({directiveName:"editableCombodate",inputTpl:'<input type="text">',render:function(){this.parent.render.call(this);var a={value:new Date(this.scope.$data)},c=this;angular.forEach(["format","template","minYear","maxYear","yearDescending","minuteStep","secondStep","firstItem","errorClass","customClass","roundTime","smartDays"],function(b){var d="e"+b.charAt(0).toUpperCase()+b.slice(1);d in c.attrs&&(a[b]=c.attrs[d])});var d=b.getInstance(this.inputEl,a);d.$widget.find("select").bind("change",function(a){c.scope.$data=new Date(d.getValue()).toISOString()})}})}]),function(){var a="text|password|email|tel|number|url|search|color|date|datetime|time|month|week|file".split("|");angular.forEach(a,function(a){var b="editable"+a.charAt(0).toUpperCase()+a.slice(1);angular.module("xeditable").directive(b,["editableDirectiveFactory",function(c){return c({directiveName:b,inputTpl:'<input type="'+a+'">'})}])}),angular.module("xeditable").directive("editableRange",["editableDirectiveFactory",function(a){return a({directiveName:"editableRange",inputTpl:'<input type="range" id="range" name="range">',render:function(){this.parent.render.call(this),this.inputEl.after("<output>{{$data}}</output>")}})}])}(),angular.module("xeditable").directive("editableRadiolist",["editableDirectiveFactory","editableNgOptionsParser",function(a,b){return a({directiveName:"editableRadiolist",inputTpl:"<span></span>",render:function(){this.parent.render.call(this);var a=b(this.attrs.eNgOptions),c='<label ng-repeat="'+a.ngRepeat+'"><input type="radio" ng-disabled="'+this.attrs.eNgDisabled+'" ng-model="$parent.$data" value="{{'+a.locals.valueFn+'}}"><span ng-bind="'+a.locals.displayFn+'"></span></label>';this.inputEl.removeAttr("ng-model"),this.inputEl.removeAttr("ng-options"),this.inputEl.html(c)},autosubmit:function(){var a=this;a.inputEl.bind("change",function(){setTimeout(function(){a.scope.$apply(function(){a.scope.$form.$submit()})},500)})}})}]),angular.module("xeditable").directive("editableSelect",["editableDirectiveFactory",function(a){return a({directiveName:"editableSelect",inputTpl:"<select></select>",autosubmit:function(){var a=this;a.inputEl.bind("change",function(){a.scope.$apply(function(){a.scope.$form.$submit()})})}})}]),angular.module("xeditable").directive("editableTextarea",["editableDirectiveFactory",function(a){return a({directiveName:"editableTextarea",inputTpl:"<textarea></textarea>",addListeners:function(){var a=this;a.parent.addListeners.call(a),a.single&&"no"!==a.buttons&&a.autosubmit()},autosubmit:function(){var a=this;a.inputEl.bind("keydown",function(b){(b.ctrlKey||b.metaKey)&&13===b.keyCode&&a.scope.$apply(function(){a.scope.$form.$submit()})})}})}]),angular.module("xeditable").factory("editableController",["$q","editableUtils",function(a,b){function c(a,c,d,e,f,g,h,i,j,k){var l,m,n=this;n.scope=a,n.elem=d,n.attrs=c,n.inputEl=null,n.editorEl=null,n.single=!0,n.error="",n.theme=f[h.theme]||f["default"],n.parent={},n.icon_set="default"===h.icon_set?g["default"][h.theme]:g.external[h.icon_set],n.inputTpl="",n.directiveName="",n.useCopy=!1,n.single=null,n.buttons="right",n.init=function(b){if(n.single=b,n.name=c.eName||c[n.directiveName],!c[n.directiveName])throw"You should provide value for `"+n.directiveName+"` in editable element!";l=e(c[n.directiveName]),n.single?n.buttons=n.attrs.buttons||h.buttons:n.buttons="no",c.eName&&n.scope.$watch("$data",function(a){n.scope.$form.$data[c.eName]=a}),c.onshow&&(n.onshow=function(){return n.catchError(e(c.onshow)(a))}),c.onhide&&(n.onhide=function(){return e(c.onhide)(a)}),c.oncancel&&(n.oncancel=function(){return e(c.oncancel)(a)}),c.onbeforesave&&(n.onbeforesave=function(){return n.catchError(e(c.onbeforesave)(a))}),c.onaftersave&&(n.onaftersave=function(){return n.catchError(e(c.onaftersave)(a))}),a.$parent.$watch(c[n.directiveName],function(a,b){n.setLocalValue(),n.handleEmpty()})},n.render=function(){var a=n.theme;n.inputEl=angular.element(n.inputTpl),n.controlsEl=angular.element(a.controlsTpl),n.controlsEl.append(n.inputEl),"no"!==n.buttons&&(n.buttonsEl=angular.element(a.buttonsTpl),n.submitEl=angular.element(a.submitTpl),n.cancelEl=angular.element(a.cancelTpl),n.icon_set&&(n.submitEl.find("span").addClass(n.icon_set.ok),n.cancelEl.find("span").addClass(n.icon_set.cancel)),n.buttonsEl.append(n.submitEl).append(n.cancelEl),n.controlsEl.append(n.buttonsEl),n.inputEl.addClass("editable-has-buttons")),n.errorEl=angular.element(a.errorTpl),n.controlsEl.append(n.errorEl),n.editorEl=angular.element(n.single?a.formTpl:a.noformTpl),n.editorEl.append(n.controlsEl);for(var d in c.$attr)if(!(d.length<=1)){var e=!1,f=d.substring(1,2);if("e"===d.substring(0,1)&&f===f.toUpperCase()&&(e=d.substring(1),"Form"!==e&&"NgSubmit"!==e)){e=e.substring(0,1).toLowerCase()+b.camelToDash(e.substring(1));var g="value"!==e&&""===c[d]?e:c[d];n.inputEl.attr(e,g)}}n.inputEl.addClass("editable-input"),n.inputEl.attr("ng-model","$data"),n.editorEl.addClass(b.camelToDash(n.directiveName)),n.single&&(n.editorEl.attr("editable-form","$form"),n.editorEl.attr("blur",n.attrs.blur||("no"===n.buttons?"cancel":h.blurElem))),angular.isFunction(a.postrender)&&a.postrender.call(n)},n.setLocalValue=function(){n.scope.$data=n.useCopy?angular.copy(l(a.$parent)):l(a.$parent)},n.show=function(){return n.setLocalValue(),n.render(),d.after(n.editorEl),j(n.editorEl)(a),n.addListeners(),d.addClass("editable-hide"),n.onshow()},n.hide=function(){return n.editorEl.remove(),d.removeClass("editable-hide"),n.onhide()},n.cancel=function(){n.oncancel()},n.addListeners=function(){n.inputEl.bind("keyup",function(a){if(n.single)switch(a.keyCode){case 27:n.scope.$apply(function(){n.scope.$form.$cancel()})}}),n.single&&"no"===n.buttons&&n.autosubmit(),n.editorEl.bind("click",function(a){a.which&&1!==a.which||n.scope.$form.$visible&&(n.scope.$form._clicked=!0)})},n.setWaiting=function(a){a?(m=!n.inputEl.attr("disabled")&&!n.inputEl.attr("ng-disabled")&&!n.inputEl.attr("ng-enabled"),m&&(n.inputEl.attr("disabled","disabled"),n.buttonsEl&&n.buttonsEl.find("button").attr("disabled","disabled"))):m&&(n.inputEl.removeAttr("disabled"),n.buttonsEl&&n.buttonsEl.find("button").removeAttr("disabled"))},n.activate=function(a,b){setTimeout(function(){var c=n.inputEl[0];"focus"===h.activate&&c.focus&&(a&&(b=b||a,c.onfocus=function(){var c=this;setTimeout(function(){c.setSelectionRange(a,b)})}),c.focus()),"select"===h.activate&&c.select&&c.select()},0)},n.setError=function(b){angular.isObject(b)||(a.$error=b,n.error=b)},n.catchError=function(a,b){return angular.isObject(a)&&b!==!0?k.when(a).then(angular.bind(this,function(a){this.catchError(a,!0)}),angular.bind(this,function(a){this.catchError(a,!0)})):b&&angular.isObject(a)&&a.status&&200!==a.status&&a.data&&angular.isString(a.data)?(this.setError(a.data),a=a.data):angular.isString(a)&&this.setError(a),a},n.save=function(){l.assign(a.$parent,n.useCopy?angular.copy(n.scope.$data):n.scope.$data)},n.handleEmpty=function(){var b=l(a.$parent),c=null===b||void 0===b||""===b||angular.isArray(b)&&0===b.length;d.toggleClass("editable-empty",c)},n.autosubmit=angular.noop,n.onshow=angular.noop,n.onhide=angular.noop,n.oncancel=angular.noop,n.onbeforesave=angular.noop,n.onaftersave=angular.noop}return c.$inject=["$scope","$attrs","$element","$parse","editableThemes","editableIcons","editableOptions","$rootScope","$compile","$q"],c}]),angular.module("xeditable").factory("editableDirectiveFactory",["$parse","$compile","editableThemes","$rootScope","$document","editableController","editableFormController","editableOptions",function(a,b,c,d,e,f,g,h){return function(b){return{restrict:"A",scope:!0,require:[b.directiveName,"?^form"],controller:f,link:function(c,f,i,j){var k,l=j[0],m=!1;if(j[1])k=j[1],m=void 0===i.eSingle;else if(i.eForm){var n=a(i.eForm)(c);if(n)k=n,m=!0;else for(var o=0;o<e[0].forms.length;o++)if(e[0].forms[o].name===i.eForm){k=null,m=!0;break}}angular.forEach(b,function(a,b){void 0!==l[b]&&(l.parent[b]=l[b])}),angular.extend(l,b);var p=angular.isDefined(i.editDisabled)?c.$eval(i.editDisabled):h.isDisabled;if(!p)if(l.init(!m),c.$editable=l,f.addClass("editable"),m)if(k){if(c.$form=k,!c.$form.$addEditable)throw"Form with editable elements should have `editable-form` attribute.";c.$form.$addEditable(l)}else d.$$editableBuffer=d.$$editableBuffer||{},d.$$editableBuffer[i.eForm]=d.$$editableBuffer[i.eForm]||[],d.$$editableBuffer[i.eForm].push(l),c.$form=null;else c.$form=g(),c.$form.$addEditable(l),i.eForm&&(c.$parent[i.eForm]=c.$form),i.eForm&&!i.eClickable||(f.addClass("editable-click"),f.bind(h.activationEvent,function(a){a.preventDefault(),a.editable=l,c.$apply(function(){c.$form.$show()})}))}}}}]),angular.module("xeditable").factory("editableFormController",["$parse","$document","$rootScope","editablePromiseCollection","editableUtils",function(a,b,c,d,e){var f=[],g=function(a,b){if(b==a)return!0;for(var c=b.parentNode;null!==c;){if(c==a)return!0;c=c.parentNode}return!1},h=function(a,b){var c=!0,d=a.$editables;return angular.forEach(d,function(a){var d=a.editorEl[0];g(d,b.target)&&(c=!1)}),c};b.bind("click",function(a){if(!(a.which&&1!==a.which||a.isDefaultPrevented())){for(var b=[],d=[],e=0;e<f.length;e++)f[e]._clicked?f[e]._clicked=!1:f[e].$waiting||("cancel"===f[e]._blur&&h(f[e],a)&&b.push(f[e]),"submit"===f[e]._blur&&h(f[e],a)&&d.push(f[e]));(b.length||d.length)&&c.$apply(function(){angular.forEach(b,function(a){a.$cancel()}),angular.forEach(d,function(a){a.$submit()})})}}),c.$on("closeEdit",function(){for(var a=0;a<f.length;a++)f[a].$hide()});var i={$addEditable:function(a){this.$editables.push(a),a.elem.bind("$destroy",angular.bind(this,this.$removeEditable,a)),a.scope.$form||(a.scope.$form=this),this.$visible&&a.catchError(a.show()),a.catchError(a.setWaiting(this.$waiting))},$removeEditable:function(a){for(var b=0;b<this.$editables.length;b++)if(this.$editables[b]===a)return void this.$editables.splice(b,1)},$show:function(){if(!this.$visible){this.$visible=!0;var a=d();a.when(this.$onshow()),this.$setError(null,""),angular.forEach(this.$editables,function(b){a.when(b.show())}),a.then({onWait:angular.bind(this,this.$setWaiting),onTrue:angular.bind(this,this.$activate),onFalse:angular.bind(this,this.$activate),onString:angular.bind(this,this.$activate)}),setTimeout(angular.bind(this,function(){this._clicked=!1,-1===e.indexOf(f,this)&&f.push(this)}),0)}},$activate:function(a){var b;if(this.$editables.length){if(angular.isString(a))for(b=0;b<this.$editables.length;b++)if(this.$editables[b].name===a)return void this.$editables[b].activate();for(b=0;b<this.$editables.length;b++)if(this.$editables[b].error)return void this.$editables[b].activate();this.$editables[0].activate(this.$editables[0].elem[0].selectionStart,this.$editables[0].elem[0].selectionEnd)}},$hide:function(){this.$visible&&(this.$visible=!1,this.$onhide(),angular.forEach(this.$editables,function(a){a.hide()}),e.arrayRemove(f,this))},$cancel:function(){this.$visible&&(this.$oncancel(),angular.forEach(this.$editables,function(a){a.cancel()}),this.$hide())},$setWaiting:function(a){this.$waiting=!!a,angular.forEach(this.$editables,function(b){b.setWaiting(!!a)})},$setError:function(a,b){angular.forEach(this.$editables,function(c){a&&c.name!==a||c.setError(b)})},$submit:function(){function a(a){var b=d();b.when(this.$onbeforesave()),b.then({onWait:angular.bind(this,this.$setWaiting),onTrue:a?angular.bind(this,this.$save):angular.bind(this,this.$hide),onFalse:angular.bind(this,this.$hide),onString:angular.bind(this,this.$activate)})}if(!this.$waiting){this.$setError(null,"");var b=d();angular.forEach(this.$editables,function(a){b.when(a.onbeforesave())}),b.then({onWait:angular.bind(this,this.$setWaiting),onTrue:angular.bind(this,a,!0),onFalse:angular.bind(this,a,!1),onString:angular.bind(this,this.$activate)})}},$save:function(){angular.forEach(this.$editables,function(a){a.save()});var a=d();a.when(this.$onaftersave()),angular.forEach(this.$editables,function(b){a.when(b.onaftersave())}),a.then({onWait:angular.bind(this,this.$setWaiting),onTrue:angular.bind(this,this.$hide),onFalse:angular.bind(this,this.$hide),onString:angular.bind(this,this.$activate)})},$onshow:angular.noop,$oncancel:angular.noop,$onhide:angular.noop,$onbeforesave:angular.noop,$onaftersave:angular.noop};return function(){return angular.extend({$editables:[],$visible:!1,$waiting:!1,$data:{},_clicked:!1,_blur:null},i)}}]),angular.module("xeditable").directive("editableForm",["$rootScope","$parse","editableFormController","editableOptions",function(a,b,c,d){return{restrict:"A",require:["form"],compile:function(){return{pre:function(b,d,e,f){var g,h=f[0];e.editableForm?b[e.editableForm]&&b[e.editableForm].$show?(g=b[e.editableForm],angular.extend(h,g)):(g=c(),b[e.editableForm]=g,angular.extend(g,h)):(g=c(),angular.extend(h,g));var i=a.$$editableBuffer,j=h.$name;j&&i&&i[j]&&(angular.forEach(i[j],function(a){g.$addEditable(a)}),delete i[j])},post:function(a,c,e,f){var g;g=e.editableForm&&a[e.editableForm]&&a[e.editableForm].$show?a[e.editableForm]:f[0],e.onshow&&(g.$onshow=angular.bind(g,b(e.onshow),a)),e.onhide&&(g.$onhide=angular.bind(g,b(e.onhide),a)),e.oncancel&&(g.$oncancel=angular.bind(g,b(e.oncancel),a)),e.shown&&b(e.shown)(a)&&g.$show(),g._blur=e.blur||d.blurForm,e.ngSubmit||e.submit||(e.onbeforesave&&(g.$onbeforesave=function(){return b(e.onbeforesave)(a,{$data:g.$data})}),e.onaftersave&&(g.$onaftersave=function(){return b(e.onaftersave)(a,{$data:g.$data})}),c.bind("submit",function(b){b.preventDefault(),a.$apply(function(){g.$submit()})})),c.bind("click",function(a){a.which&&1!==a.which||g.$visible&&(g._clicked=!0)})}}}}}]),angular.module("xeditable").factory("editablePromiseCollection",["$q",function(a){function b(){return{promises:[],hasFalse:!1,hasString:!1,when:function(b,c){if(b===!1)this.hasFalse=!0;else if(!c&&angular.isObject(b))this.promises.push(a.when(b));else{if(!angular.isString(b))return;this.hasString=!0}},then:function(b){function c(){h.hasString||h.hasFalse?!h.hasString&&h.hasFalse?e():f():d()}b=b||{};var d=b.onTrue||angular.noop,e=b.onFalse||angular.noop,f=b.onString||angular.noop,g=b.onWait||angular.noop,h=this;this.promises.length?(g(!0),a.all(this.promises).then(function(a){g(!1),angular.forEach(a,function(a){h.when(a,!0)}),c()},function(a){g(!1),f()})):c()}}}return b}]),angular.module("xeditable").factory("editableUtils",[function(){return{indexOf:function(a,b){if(a.indexOf)return a.indexOf(b);for(var c=0;c<a.length;c++)if(b===a[c])return c;return-1},arrayRemove:function(a,b){var c=this.indexOf(a,b);return c>=0&&a.splice(c,1),b},camelToDash:function(a){var b=/[A-Z]/g;return a.replace(b,function(a,b){return(b?"-":"")+a.toLowerCase()})},dashToCamel:function(a){var b=/([\:\-\_]+(.))/g,c=/^moz([A-Z])/;return a.replace(b,function(a,b,c,d){return d?c.toUpperCase():c}).replace(c,"Moz$1")}}}]),angular.module("xeditable").factory("editableNgOptionsParser",[function(){function a(a){var c;if(!(c=a.match(b)))throw"ng-options parse error";var d,e=c[2]||c[1],f=c[4]||c[6],g=c[5],h=(c[3]||"",c[2]?c[1]:f),i=c[7],j=c[8],k=j?c[8]:null;return void 0===g?(d=f+" in "+i,void 0!==j&&(d+=" track by "+k)):d="("+g+", "+f+") in "+i,{ngRepeat:d,locals:{valueName:f,keyName:g,valueFn:h,displayFn:e}}}var b=/^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(.*?)(?:\s+track\s+by\s+(.*?))?$/;return a}]),angular.module("xeditable").factory("editableCombodate",[function(){function a(a,b){if(this.$element=angular.element(a),"INPUT"!=this.$element[0].nodeName)throw"Combodate should be applied to INPUT element";this.defaults={format:"YYYY-MM-DD HH:mm",template:"D / MMM / YYYY   H : mm",value:null,minYear:1970,maxYear:2015,yearDescending:!0,minuteStep:5,secondStep:1,firstItem:"empty",errorClass:null,customClass:"",roundTime:!0,smartDays:!0},this.options=angular.extend({},this.defaults,b),this.init()}return a.prototype={constructor:a,init:function(){if(this.map={day:["D","date"],month:["M","month"],year:["Y","year"],hour:["[Hh]","hours"],minute:["m","minutes"],second:["s","seconds"],ampm:["[Aa]",""]},this.$widget=angular.element('<span class="combodate"></span>').html(this.getTemplate()),this.initCombos(),this.options.smartDays){var a=this;this.$widget.find("select").bind("change",function(b){(angular.element(b.target).hasClass("month")||angular.element(b.target).hasClass("year"))&&a.fillCombo("day")})}this.$widget.find("select").css("width","auto"),this.$element.css("display","none").after(this.$widget),this.setValue(this.$element.val()||this.options.value)},getTemplate:function(){var a=this.options.template,b=this.options.customClass;return angular.forEach(this.map,function(b,c){b=b[0];var d=new RegExp(b+"+"),e=b.length>1?b.substring(1,2):b;a=a.replace(d,"{"+e+"}")}),a=a.replace(/ /g,"&nbsp;"),angular.forEach(this.map,function(c,d){c=c[0];var e=c.length>1?c.substring(1,2):c;a=a.replace("{"+e+"}",'<select class="'+d+" "+b+'"></select>')}),a},initCombos:function(){for(var a in this.map){var b=this.$widget[0].querySelectorAll("."+a);this["$"+a]=b.length?angular.element(b):null,this.fillCombo(a)}},fillCombo:function(a){var b=this["$"+a];if(b){var c="fill"+a.charAt(0).toUpperCase()+a.slice(1),d=this[c](),e=b.val();b.html("");for(var f=0;f<d.length;f++)b.append('<option value="'+d[f][0]+'">'+d[f][1]+"</option>");b.val(e)}},fillCommon:function(a){var b,c=[];if("name"===this.options.firstItem){b=moment.relativeTime||moment.langData()._relativeTime;var d="function"==typeof b[a]?b[a](1,!0,a,!1):b[a];d=d.split(" ").reverse()[0],c.push(["",d])}else"empty"===this.options.firstItem&&c.push(["",""]);return c},fillDay:function(){var a,b,c=this.fillCommon("d"),d=-1!==this.options.template.indexOf("DD"),e=31;if(this.options.smartDays&&this.$month&&this.$year){var f=parseInt(this.$month.val(),10),g=parseInt(this.$year.val(),10);isNaN(f)||isNaN(g)||(e=moment([g,f]).daysInMonth())}for(b=1;e>=b;b++)a=d?this.leadZero(b):b,c.push([b,a]);return c},fillMonth:function(){var a,b,c=this.fillCommon("M"),d=-1!==this.options.template.indexOf("MMMM"),e=-1!==this.options.template.indexOf("MMM"),f=-1!==this.options.template.indexOf("MM");for(b=0;11>=b;b++)a=d?moment().date(1).month(b).format("MMMM"):e?moment().date(1).month(b).format("MMM"):f?this.leadZero(b+1):b+1,c.push([b,a]);return c},fillYear:function(){var a,b,c=[],d=-1!==this.options.template.indexOf("YYYY");for(b=this.options.maxYear;b>=this.options.minYear;b--)a=d?b:(b+"").substring(2),c[this.options.yearDescending?"push":"unshift"]([b,a]);return c=this.fillCommon("y").concat(c)},fillHour:function(){var a,b,c=this.fillCommon("h"),d=-1!==this.options.template.indexOf("h"),e=(-1!==this.options.template.indexOf("H"),-1!==this.options.template.toLowerCase().indexOf("hh")),f=d?1:0,g=d?12:23;for(b=f;g>=b;b++)a=e?this.leadZero(b):b,c.push([b,a]);return c},fillMinute:function(){var a,b,c=this.fillCommon("m"),d=-1!==this.options.template.indexOf("mm");for(b=0;59>=b;b+=this.options.minuteStep)a=d?this.leadZero(b):b,c.push([b,a]);return c},fillSecond:function(){var a,b,c=this.fillCommon("s"),d=-1!==this.options.template.indexOf("ss");for(b=0;59>=b;b+=this.options.secondStep)a=d?this.leadZero(b):b,c.push([b,a]);return c},fillAmpm:function(){var a=-1!==this.options.template.indexOf("a"),b=(-1!==this.options.template.indexOf("A"),[["am",a?"am":"AM"],["pm",a?"pm":"PM"]]);return b},getValue:function(a){var b,c={},d=this,e=!1;return angular.forEach(this.map,function(a,b){if("ampm"!==b){var f="day"===b?1:0;return c[b]=d["$"+b]?parseInt(d["$"+b].val(),10):f,isNaN(c[b])?(e=!0,!1):void 0}}),e?"":(this.$ampm&&(12===c.hour?c.hour="am"===this.$ampm.val()?0:12:c.hour="am"===this.$ampm.val()?c.hour:c.hour+12),b=moment([c.year,c.month,c.day,c.hour,c.minute,c.second]),this.highlight(b),a=void 0===a?this.options.format:a,null===a?b.isValid()?b:null:b.isValid()?b.format(a):"")},setValue:function(a){function b(a,b){var c={};return angular.forEach(a.children("option"),function(a,d){var e=angular.element(a).attr("value");if(""!==e){var f=Math.abs(e-b);("undefined"==typeof c.distance||f<c.distance)&&(c={value:e,distance:f})}}),c.value}if(a){var c="string"==typeof a?moment(a,this.options.format,!0):moment(a),d=this,e={};c.isValid()&&(angular.forEach(this.map,function(a,b){"ampm"!==b&&(e[b]=c[a[1]]())}),this.$ampm&&(e.hour>=12?(e.ampm="pm",e.hour>12&&(e.hour-=12)):(e.ampm="am",0===e.hour&&(e.hour=12))),angular.forEach(e,function(a,c){d["$"+c]&&("minute"===c&&d.options.minuteStep>1&&d.options.roundTime&&(a=b(d["$"+c],a)),"second"===c&&d.options.secondStep>1&&d.options.roundTime&&(a=b(d["$"+c],a)),d["$"+c].val(a))}),this.options.smartDays&&this.fillCombo("day"),this.$element.val(c.format(this.options.format)).triggerHandler("change"))}},highlight:function(a){a.isValid()?this.options.errorClass?this.$widget.removeClass(this.options.errorClass):this.$widget.find("select").css("border-color",this.borderColor):this.options.errorClass?this.$widget.addClass(this.options.errorClass):(this.borderColor||(this.borderColor=this.$widget.find("select").css("border-color")),this.$widget.find("select").css("border-color","red"))},leadZero:function(a){return 9>=a?"0"+a:a},destroy:function(){this.$widget.remove(),this.$element.removeData("combodate").show()}},{getInstance:function(b,c){return new a(b,c)}}}]),angular.module("xeditable").factory("editableIcons",function(){var a={"default":{bs2:{ok:"icon-ok icon-white",cancel:"icon-remove"},bs3:{ok:"glyphicon glyphicon-ok",cancel:"glyphicon glyphicon-remove"}},external:{"font-awesome":{ok:"fa fa-check",cancel:"fa fa-times"}}};return a}),angular.module("xeditable").factory("editableThemes",function(){var a={"default":{formTpl:'<form class="editable-wrap"></form>',noformTpl:'<span class="editable-wrap"></span>',controlsTpl:'<span class="editable-controls"></span>',inputTpl:"",errorTpl:'<div class="editable-error" ng-show="$error" ng-bind="$error"></div>',buttonsTpl:'<span class="editable-buttons"></span>',submitTpl:'<button type="submit">save</button>',cancelTpl:'<button type="button" ng-click="$form.$cancel()">cancel</button>'},bs2:{formTpl:'<form class="form-inline editable-wrap" role="form"></form>',noformTpl:'<span class="editable-wrap"></span>',controlsTpl:'<div class="editable-controls controls control-group" ng-class="{\'error\': $error}"></div>',inputTpl:"",errorTpl:'<div class="editable-error help-block" ng-show="$error" ng-bind="$error"></div>',buttonsTpl:'<span class="editable-buttons"></span>',submitTpl:'<button type="submit" class="btn btn-primary"><span></span></button>',cancelTpl:'<button type="button" class="btn" ng-click="$form.$cancel()"><span></span></button>'},bs3:{formTpl:'<form class="form-inline editable-wrap" role="form"></form>',noformTpl:'<span class="editable-wrap"></span>',controlsTpl:'<div class="editable-controls form-group" ng-class="{\'has-error\': $error}"></div>',inputTpl:"",errorTpl:'<div class="editable-error help-block" ng-show="$error" ng-bind="$error"></div>',buttonsTpl:'<span class="editable-buttons"></span>',submitTpl:'<button type="submit" class="btn btn-primary"><span></span></button>',cancelTpl:'<button type="button" class="btn btn-default" ng-click="$form.$cancel()"><span></span></button>',buttonsClass:"",inputClass:"",postrender:function(){switch(this.directiveName){case"editableText":case"editableSelect":case"editableTextarea":case"editableEmail":case"editableTel":case"editableNumber":case"editableUrl":case"editableSearch":case"editableDate":case"editableDatetime":case"editableBsdate":case"editableTime":case"editableMonth":case"editableWeek":if(this.inputEl.addClass("form-control"),this.theme.inputClass){if(this.inputEl.attr("multiple")&&("input-sm"===this.theme.inputClass||"input-lg"===this.theme.inputClass))break;this.inputEl.addClass(this.theme.inputClass)}break;case"editableCheckbox":this.editorEl.addClass("checkbox")}this.buttonsEl&&this.theme.buttonsClass&&this.buttonsEl.find("button").addClass(this.theme.buttonsClass)}}};return a}),function(){"use strict";function a(a){function b(b,d){var f,p,q=b==window,r=d&&void 0!==d.message?d.message:void 0;if(d=a.extend({},a.blockUI.defaults,d||{}),!d.ignoreIfBlocked||!a(b).data("blockUI.isBlocked")){if(d.overlayCSS=a.extend({},a.blockUI.defaults.overlayCSS,d.overlayCSS||{}),f=a.extend({},a.blockUI.defaults.css,d.css||{}),d.onOverlayClick&&(d.overlayCSS.cursor="pointer"),p=a.extend({},a.blockUI.defaults.themedCSS,d.themedCSS||{}),r=void 0===r?d.message:r,q&&n&&c(window,{fadeOut:0}),r&&"string"!=typeof r&&(r.parentNode||r.jquery)){var s=r.jquery?r[0]:r,t={};a(b).data("blockUI.history",t),t.el=s,t.parent=s.parentNode,t.display=s.style.display,t.position=s.style.position,t.parent&&t.parent.removeChild(s)}a(b).data("blockUI.onUnblock",d.onUnblock);var u,v,w,x,y=d.baseZ;u=a(k||d.forceIframe?'<iframe class="blockUI" style="z-index:'+y++ +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+d.iframeSrc+'"></iframe>':'<div class="blockUI" style="display:none"></div>'),v=a(d.theme?'<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+y++ +';display:none"></div>':'<div class="blockUI blockOverlay" style="z-index:'+y++ +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>'),
+d.theme&&q?(x='<div class="blockUI '+d.blockMsgClass+' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(y+10)+';display:none;position:fixed">',d.title&&(x+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(d.title||"&nbsp;")+"</div>"),x+='<div class="ui-widget-content ui-dialog-content"></div>',x+="</div>"):d.theme?(x='<div class="blockUI '+d.blockMsgClass+' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(y+10)+';display:none;position:absolute">',d.title&&(x+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(d.title||"&nbsp;")+"</div>"),x+='<div class="ui-widget-content ui-dialog-content"></div>',x+="</div>"):x=q?'<div class="blockUI '+d.blockMsgClass+' blockPage" style="z-index:'+(y+10)+';display:none;position:fixed"></div>':'<div class="blockUI '+d.blockMsgClass+' blockElement" style="z-index:'+(y+10)+';display:none;position:absolute"></div>',w=a(x),r&&(d.theme?(w.css(p),w.addClass("ui-widget-content")):w.css(f)),d.theme||v.css(d.overlayCSS),v.css("position",q?"fixed":"absolute"),(k||d.forceIframe)&&u.css("opacity",0);var z=[u,v,w],A=a(q?"body":b);a.each(z,function(){this.appendTo(A)}),d.theme&&d.draggable&&a.fn.draggable&&w.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var B=m&&(!a.support.boxModel||a("object,embed",q?null:b).length>0);if(l||B){if(q&&d.allowBodyStretch&&a.support.boxModel&&a("html,body").css("height","100%"),(l||!a.support.boxModel)&&!q)var C=i(b,"borderTopWidth"),D=i(b,"borderLeftWidth"),E=C?"(0 - "+C+")":0,F=D?"(0 - "+D+")":0;a.each(z,function(a,b){var c=b[0].style;if(c.position="absolute",2>a)q?c.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+d.quirksmodeOffsetHack+') + "px"'):c.setExpression("height",'this.parentNode.offsetHeight + "px"'),q?c.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):c.setExpression("width",'this.parentNode.offsetWidth + "px"'),F&&c.setExpression("left",F),E&&c.setExpression("top",E);else if(d.centerY)q&&c.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'),c.marginTop=0;else if(!d.centerY&&q){var e=d.css&&d.css.top?parseInt(d.css.top,10):0,f="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+e+') + "px"';c.setExpression("top",f)}})}if(r&&(d.theme?w.find(".ui-widget-content").append(r):w.append(r),(r.jquery||r.nodeType)&&a(r).show()),(k||d.forceIframe)&&d.showOverlay&&u.show(),d.fadeIn){var G=d.onBlock?d.onBlock:j,H=d.showOverlay&&!r?G:j,I=r?G:j;d.showOverlay&&v._fadeIn(d.fadeIn,H),r&&w._fadeIn(d.fadeIn,I)}else d.showOverlay&&v.show(),r&&w.show(),d.onBlock&&d.onBlock.bind(w)();if(e(1,b,d),q?(n=w[0],o=a(d.focusableElements,n),d.focusInput&&setTimeout(g,20)):h(w[0],d.centerX,d.centerY),d.timeout){var J=setTimeout(function(){q?a.unblockUI(d):a(b).unblock(d)},d.timeout);a(b).data("blockUI.timeout",J)}}}function c(b,c){var f,g=b==window,h=a(b),i=h.data("blockUI.history"),j=h.data("blockUI.timeout");j&&(clearTimeout(j),h.removeData("blockUI.timeout")),c=a.extend({},a.blockUI.defaults,c||{}),e(0,b,c),null===c.onUnblock&&(c.onUnblock=h.data("blockUI.onUnblock"),h.removeData("blockUI.onUnblock"));var k;k=g?a("body").children().filter(".blockUI").add("body > .blockUI"):h.find(">.blockUI"),c.cursorReset&&(k.length>1&&(k[1].style.cursor=c.cursorReset),k.length>2&&(k[2].style.cursor=c.cursorReset)),g&&(n=o=null),c.fadeOut?(f=k.length,k.stop().fadeOut(c.fadeOut,function(){0===--f&&d(k,i,c,b)})):d(k,i,c,b)}function d(b,c,d,e){var f=a(e);if(!f.data("blockUI.isBlocked")){b.each(function(a,b){this.parentNode&&this.parentNode.removeChild(this)}),c&&c.el&&(c.el.style.display=c.display,c.el.style.position=c.position,c.el.style.cursor="default",c.parent&&c.parent.appendChild(c.el),f.removeData("blockUI.history")),f.data("blockUI.static")&&f.css("position","static"),"function"==typeof d.onUnblock&&d.onUnblock(e,d);var g=a(document.body),h=g.width(),i=g[0].style.width;g.width(h-1).width(h),g[0].style.width=i}}function e(b,c,d){var e=c==window,g=a(c);if((b||(!e||n)&&(e||g.data("blockUI.isBlocked")))&&(g.data("blockUI.isBlocked",b),e&&d.bindEvents&&(!b||d.showOverlay))){var h="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";b?a(document).bind(h,d,f):a(document).unbind(h,f)}}function f(b){if("keydown"===b.type&&b.keyCode&&9==b.keyCode&&n&&b.data.constrainTabKey){var c=o,d=!b.shiftKey&&b.target===c[c.length-1],e=b.shiftKey&&b.target===c[0];if(d||e)return setTimeout(function(){g(e)},10),!1}var f=b.data,h=a(b.target);return h.hasClass("blockOverlay")&&f.onOverlayClick&&f.onOverlayClick(b),h.parents("div."+f.blockMsgClass).length>0?!0:0===h.parents().children().filter("div.blockUI").length}function g(a){if(o){var b=o[a===!0?o.length-1:0];b&&b.focus()}}function h(a,b,c){var d=a.parentNode,e=a.style,f=(d.offsetWidth-a.offsetWidth)/2-i(d,"borderLeftWidth"),g=(d.offsetHeight-a.offsetHeight)/2-i(d,"borderTopWidth");b&&(e.left=f>0?f+"px":"0"),c&&(e.top=g>0?g+"px":"0")}function i(b,c){return parseInt(a.css(b,c),10)||0}a.fn._fadeIn=a.fn.fadeIn;var j=a.noop||function(){},k=/MSIE/.test(navigator.userAgent),l=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),m=(document.documentMode||0,a.isFunction(document.createElement("div").style.setExpression));a.blockUI=function(a){b(window,a)},a.unblockUI=function(a){c(window,a)},a.growlUI=function(b,c,d,e){var f=a('<div class="growlUI"></div>');b&&f.append("<h1>"+b+"</h1>"),c&&f.append("<h2>"+c+"</h2>"),void 0===d&&(d=3e3);var g=function(b){b=b||{},a.blockUI({message:f,fadeIn:"undefined"!=typeof b.fadeIn?b.fadeIn:700,fadeOut:"undefined"!=typeof b.fadeOut?b.fadeOut:1e3,timeout:"undefined"!=typeof b.timeout?b.timeout:d,centerY:!1,showOverlay:!1,onUnblock:e,css:a.blockUI.defaults.growlCSS})};g();f.css("opacity");f.mouseover(function(){g({fadeIn:0,timeout:3e4});var b=a(".blockMsg");b.stop(),b.fadeTo(300,1)}).mouseout(function(){a(".blockMsg").fadeOut(1e3)})},a.fn.block=function(c){if(this[0]===window)return a.blockUI(c),this;var d=a.extend({},a.blockUI.defaults,c||{});return this.each(function(){var b=a(this);d.ignoreIfBlocked&&b.data("blockUI.isBlocked")||b.unblock({fadeOut:0})}),this.each(function(){"static"==a.css(this,"position")&&(this.style.position="relative",a(this).data("blockUI.static",!0)),this.style.zoom=1,b(this,c)})},a.fn.unblock=function(b){return this[0]===window?(a.unblockUI(b),this):this.each(function(){c(this,b)})},a.blockUI.version=2.7,a.blockUI.defaults={message:"<h1>Please wait...</h1>",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:!1};var n=null,o=[]}"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],a):a(jQuery)}(),function(a,b,c){var d=a();a.fn.dropdownHover=function(c){return"ontouchstart"in document?this:(d=d.add(this.parent()),this.each(function(){function e(a){b.clearTimeout(f),b.clearTimeout(g),g=b.setTimeout(function(){d.find(":focus").blur(),n.instantlyCloseOthers===!0&&d.removeClass("open"),b.clearTimeout(g),h.attr("aria-expanded","true"),i.addClass("open"),h.trigger(l)},n.hoverDelay)}var f,g,h=a(this),i=h.parent(),j={delay:500,hoverDelay:0,instantlyCloseOthers:!0},k={delay:a(this).data("delay"),hoverDelay:a(this).data("hover-delay"),instantlyCloseOthers:a(this).data("close-others")},l="show.bs.dropdown",m="hide.bs.dropdown",n=a.extend(!0,{},j,c,k);i.hover(function(a){return i.hasClass("open")||h.is(a.target)?void e(a):!0},function(){b.clearTimeout(g),f=b.setTimeout(function(){h.attr("aria-expanded","false"),i.removeClass("open"),h.trigger(m)},n.delay)}),h.hover(function(a){return i.hasClass("open")||i.is(a.target)?void e(a):!0}),i.find(".dropdown-submenu").each(function(){var c,d=a(this);d.hover(function(){b.clearTimeout(c),d.children(".dropdown-menu").show(),d.siblings().children(".dropdown-menu").hide()},function(){var a=d.children(".dropdown-menu");c=b.setTimeout(function(){a.hide()},n.delay)})})}))},a(document).ready(function(){a('[data-hover="dropdown"]').dropdownHover()})}(jQuery,window),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(a){"use strict";function b(b){var c=[{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}];return a.each(c,function(){b=b.replace(this.re,this.ch)}),b}function c(a){var b={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},c="(?:"+Object.keys(b).join("|")+")",d=new RegExp(c),e=new RegExp(c,"g"),f=null==a?"":""+a;return d.test(f)?f.replace(e,function(a){return b[a]}):f}function d(b,c){var d=arguments,f=b,g=c;[].shift.apply(d);var h,i=this.each(function(){var b=a(this);if(b.is("select")){var c=b.data("selectpicker"),i="object"==typeof f&&f;if(c){if(i)for(var j in i)i.hasOwnProperty(j)&&(c.options[j]=i[j])}else{var k=a.extend({},e.DEFAULTS,a.fn.selectpicker.defaults||{},b.data(),i);k.template=a.extend({},e.DEFAULTS.template,a.fn.selectpicker.defaults?a.fn.selectpicker.defaults.template:{},b.data().template,i.template),b.data("selectpicker",c=new e(this,k,g))}"string"==typeof f&&(h=c[f]instanceof Function?c[f].apply(c,d):c.options[f])}});return"undefined"!=typeof h?h:i}String.prototype.includes||!function(){var a={}.toString,b=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),c="".indexOf,d=function(b){if(null==this)throw new TypeError;var d=String(this);if(b&&"[object RegExp]"==a.call(b))throw new TypeError;var e=d.length,f=String(b),g=f.length,h=arguments.length>1?arguments[1]:void 0,i=h?Number(h):0;i!=i&&(i=0);var j=Math.min(Math.max(i,0),e);return g+j>e?!1:-1!=c.call(d,f,i)};b?b(String.prototype,"includes",{value:d,configurable:!0,writable:!0}):String.prototype.includes=d}(),String.prototype.startsWith||!function(){var a=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(d){}return c}(),b={}.toString,c=function(a){if(null==this)throw new TypeError;var c=String(this);if(a&&"[object RegExp]"==b.call(a))throw new TypeError;var d=c.length,e=String(a),f=e.length,g=arguments.length>1?arguments[1]:void 0,h=g?Number(g):0;h!=h&&(h=0);var i=Math.min(Math.max(h,0),d);if(f+i>d)return!1;for(var j=-1;++j<f;)if(c.charCodeAt(i+j)!=e.charCodeAt(j))return!1;return!0};a?a(String.prototype,"startsWith",{value:c,configurable:!0,writable:!0}):String.prototype.startsWith=c}(),Object.keys||(Object.keys=function(a,b,c){c=[];for(b in a)c.hasOwnProperty.call(a,b)&&c.push(b);return c}),a.fn.triggerNative=function(a){var b,c=this[0];c.dispatchEvent?("function"==typeof Event?b=new Event(a,{bubbles:!0}):(b=document.createEvent("Event"),b.initEvent(a,!0,!1)),c.dispatchEvent(b)):(c.fireEvent&&(b=document.createEventObject(),b.eventType=a,c.fireEvent("on"+a,b)),this.trigger(a))},a.expr[":"].icontains=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.text()).toUpperCase();return f.includes(d[3].toUpperCase())},a.expr[":"].ibegins=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.text()).toUpperCase();return f.startsWith(d[3].toUpperCase())},a.expr[":"].aicontains=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.data("normalizedText")||e.text()).toUpperCase();return f.includes(d[3].toUpperCase())},a.expr[":"].aibegins=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.data("normalizedText")||e.text()).toUpperCase();return f.startsWith(d[3].toUpperCase())};var e=function(b,c,d){d&&(d.stopPropagation(),d.preventDefault()),this.$element=a(b),this.$newElement=null,this.$button=null,this.$menu=null,this.$lis=null,this.options=c,null===this.options.title&&(this.options.title=this.$element.attr("title")),this.val=e.prototype.val,this.render=e.prototype.render,this.refresh=e.prototype.refresh,this.setStyle=e.prototype.setStyle,this.selectAll=e.prototype.selectAll,this.deselectAll=e.prototype.deselectAll,this.destroy=e.prototype.destroy,this.remove=e.prototype.remove,this.show=e.prototype.show,this.hide=e.prototype.hide,this.init()};e.VERSION="1.7.7",e.DEFAULTS={noneSelectedText:"Nothing selected",noneResultsText:"No results matched {0}",countSelectedText:function(a,b){return 1==a?"{0} item selected":"{0} items selected"},maxOptionsText:function(a,b){return[1==a?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==b?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",doneButton:!1,doneButtonText:"Close",multipleSeparator:", ",styleBase:"btn",style:"btn-default",size:"auto",title:null,selectedTextFormat:"values",width:!1,container:!1,hideDisabled:!1,showSubtext:!1,showIcon:!0,showContent:!0,dropupAuto:!0,header:!1,liveSearch:!1,liveSearchPlaceholder:null,liveSearchNormalize:!1,liveSearchStyle:"contains",actionsBox:!1,iconBase:"glyphicon",tickIcon:"glyphicon-ok",template:{caret:'<span class="caret"></span>'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1},e.prototype={constructor:e,init:function(){var b=this,c=this.$element.attr("id");this.$element.addClass("bs-select-hidden"),this.liObj={},this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createView(),this.$element.after(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(".dropdown-menu"),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.options.dropdownAlignRight&&this.$menu.addClass("dropdown-menu-right"),"undefined"!=typeof c&&(this.$button.attr("data-id",c),a('label[for="'+c+'"]').click(function(a){a.preventDefault(),b.$button.focus()})),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.setStyle(),this.setWidth(),this.options.container&&this.selectPosition(),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(a){b.$element.trigger("hide.bs.select",a)},"hidden.bs.dropdown":function(a){b.$element.trigger("hidden.bs.select",a)},"show.bs.dropdown":function(a){b.$element.trigger("show.bs.select",a)},"shown.bs.dropdown":function(a){b.$element.trigger("shown.bs.select",a)}}),setTimeout(function(){b.$element.trigger("loaded.bs.select")})},createDropdown:function(){var b=this.multiple?" show-tick":"",d=this.$element.parent().hasClass("input-group")?" input-group-btn":"",e=this.autofocus?" autofocus":"",f=this.options.header?'<div class="popover-title"><button type="button" class="close" aria-hidden="true">&times;</button>'+this.options.header+"</div>":"",g=this.options.liveSearch?'<div class="bs-searchbox"><input type="text" class="form-control" autocomplete="off"'+(null===this.options.liveSearchPlaceholder?"":' placeholder="'+c(this.options.liveSearchPlaceholder)+'"')+"></div>":"",h=this.multiple&&this.options.actionsBox?'<div class="bs-actionsbox"><div class="btn-group btn-group-sm btn-block"><button type="button" class="actions-btn bs-select-all btn btn-default">'+this.options.selectAllText+'</button><button type="button" class="actions-btn bs-deselect-all btn btn-default">'+this.options.deselectAllText+"</button></div></div>":"",i=this.multiple&&this.options.doneButton?'<div class="bs-donebutton"><div class="btn-group btn-block"><button type="button" class="btn btn-sm btn-default">'+this.options.doneButtonText+"</button></div></div>":"",j='<div class="btn-group bootstrap-select'+b+d+'"><button type="button" class="'+this.options.styleBase+' dropdown-toggle" data-toggle="dropdown"'+e+'><span class="filter-option pull-left"></span>&nbsp;<span class="bs-caret">'+this.options.template.caret+'</span></button><div class="dropdown-menu open">'+f+g+h+'<ul class="dropdown-menu inner" role="menu"></ul>'+i+"</div></div>";return a(j)},createView:function(){var a=this.createDropdown(),b=this.createLi();return a.find("ul")[0].innerHTML=b,a},reloadLi:function(){this.destroyLi();var a=this.createLi();this.$menuInner[0].innerHTML=a},destroyLi:function(){this.$menu.find("li").remove()},createLi:function(){var d=this,e=[],f=0,g=document.createElement("option"),h=-1,i=function(a,b,c,d){return"<li"+("undefined"!=typeof c&""!==c?' class="'+c+'"':"")+("undefined"!=typeof b&null!==b?' data-original-index="'+b+'"':"")+("undefined"!=typeof d&null!==d?'data-optgroup="'+d+'"':"")+">"+a+"</li>"},j=function(a,e,f,g){return'<a tabindex="0"'+("undefined"!=typeof e?' class="'+e+'"':"")+("undefined"!=typeof f?' style="'+f+'"':"")+(d.options.liveSearchNormalize?' data-normalized-text="'+b(c(a))+'"':"")+("undefined"!=typeof g||null!==g?' data-tokens="'+g+'"':"")+">"+a+'<span class="'+d.options.iconBase+" "+d.options.tickIcon+' check-mark"></span></a>'};if(this.options.title&&!this.multiple&&(h--,!this.$element.find(".bs-title-option").length)){var k=this.$element[0];g.className="bs-title-option",g.appendChild(document.createTextNode(this.options.title)),g.value="",k.insertBefore(g,k.firstChild),void 0===a(k.options[k.selectedIndex]).attr("selected")&&(g.selected=!0)}return this.$element.find("option").each(function(b){var c=a(this);if(h++,!c.hasClass("bs-title-option")){var g=this.className||"",k=this.style.cssText,l=c.data("content")?c.data("content"):c.html(),m=c.data("tokens")?c.data("tokens"):null,n="undefined"!=typeof c.data("subtext")?'<small class="text-muted">'+c.data("subtext")+"</small>":"",o="undefined"!=typeof c.data("icon")?'<span class="'+d.options.iconBase+" "+c.data("icon")+'"></span> ':"",p=this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled;if(""!==o&&p&&(o="<span>"+o+"</span>"),d.options.hideDisabled&&p)return void h--;if(c.data("content")||(l=o+'<span class="text">'+l+n+"</span>"),"OPTGROUP"===this.parentNode.tagName&&c.data("divider")!==!0){var q=" "+this.parentNode.className||"";if(0===c.index()){f+=1;var r=this.parentNode.label,s="undefined"!=typeof c.parent().data("subtext")?'<small class="text-muted">'+c.parent().data("subtext")+"</small>":"",t=c.parent().data("icon")?'<span class="'+d.options.iconBase+" "+c.parent().data("icon")+'"></span> ':"";r=t+'<span class="text">'+r+s+"</span>",0!==b&&e.length>0&&(h++,e.push(i("",null,"divider",f+"div"))),h++,e.push(i(r,null,"dropdown-header"+q,f))}e.push(i(j(l,"opt "+g+q,k,m),b,"",f))}else c.data("divider")===!0?e.push(i("",b,"divider")):c.data("hidden")===!0?e.push(i(j(l,g,k,m),b,"hidden is-hidden")):(this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName&&(h++,e.push(i("",null,"divider",f+"div"))),e.push(i(j(l,g,k,m),b)));d.liObj[b]=h}}),this.multiple||0!==this.$element.find("option:selected").length||this.options.title||this.$element.find("option").eq(0).prop("selected",!0).attr("selected","selected"),e.join("")},findLis:function(){return null==this.$lis&&(this.$lis=this.$menu.find("li")),this.$lis},render:function(b){var c,d=this;b!==!1&&this.$element.find("option").each(function(a){var b=d.findLis().eq(d.liObj[a]);d.setDisabled(a,this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled,b),d.setSelected(a,this.selected,b)}),this.tabIndex();var e=this.$element.find("option").map(function(){if(this.selected){if(d.options.hideDisabled&&(this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled))return;var b,c=a(this),e=c.data("icon")&&d.options.showIcon?'<i class="'+d.options.iconBase+" "+c.data("icon")+'"></i> ':"";return b=d.options.showSubtext&&c.data("subtext")&&!d.multiple?' <small class="text-muted">'+c.data("subtext")+"</small>":"","undefined"!=typeof c.attr("title")?c.attr("title"):c.data("content")&&d.options.showContent?c.data("content"):e+c.html()+b}}).toArray(),f=this.multiple?e.join(this.options.multipleSeparator):e[0];if(this.multiple&&this.options.selectedTextFormat.indexOf("count")>-1){var g=this.options.selectedTextFormat.split(">");if(g.length>1&&e.length>g[1]||1==g.length&&e.length>=2){c=this.options.hideDisabled?", [disabled]":"";var h=this.$element.find("option").not('[data-divider="true"], [data-hidden="true"]'+c).length,i="function"==typeof this.options.countSelectedText?this.options.countSelectedText(e.length,h):this.options.countSelectedText;f=i.replace("{0}",e.length.toString()).replace("{1}",h.toString())}}void 0==this.options.title&&(this.options.title=this.$element.attr("title")),"static"==this.options.selectedTextFormat&&(f=this.options.title),f||(f="undefined"!=typeof this.options.title?this.options.title:this.options.noneSelectedText),this.$button.attr("title",a.trim(f.replace(/<[^>]*>?/g,""))),this.$button.children(".filter-option").html(f),this.$element.trigger("rendered.bs.select")},setStyle:function(a,b){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,""));var c=a?a:this.options.style;"add"==b?this.$button.addClass(c):"remove"==b?this.$button.removeClass(c):(this.$button.removeClass(this.options.style),this.$button.addClass(c))},liHeight:function(b){if(b||this.options.size!==!1&&!this.sizeInfo){var c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("ul"),f=document.createElement("li"),g=document.createElement("li"),h=document.createElement("a"),i=document.createElement("span"),j=this.options.header&&this.$menu.find(".popover-title").length>0?this.$menu.find(".popover-title")[0].cloneNode(!0):null,k=this.options.liveSearch?document.createElement("div"):null,l=this.options.actionsBox&&this.multiple&&this.$menu.find(".bs-actionsbox").length>0?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,m=this.options.doneButton&&this.multiple&&this.$menu.find(".bs-donebutton").length>0?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null;if(i.className="text",c.className=this.$menu[0].parentNode.className+" open",d.className="dropdown-menu open",e.className="dropdown-menu inner",f.className="divider",i.appendChild(document.createTextNode("Inner text")),h.appendChild(i),g.appendChild(h),e.appendChild(g),e.appendChild(f),j&&d.appendChild(j),k){var n=document.createElement("span");k.className="bs-searchbox",n.className="form-control",k.appendChild(n),d.appendChild(k)}l&&d.appendChild(l),d.appendChild(e),m&&d.appendChild(m),c.appendChild(d),document.body.appendChild(c);var o=h.offsetHeight,p=j?j.offsetHeight:0,q=k?k.offsetHeight:0,r=l?l.offsetHeight:0,s=m?m.offsetHeight:0,t=a(f).outerHeight(!0),u="function"==typeof getComputedStyle?getComputedStyle(d):!1,v=u?null:a(d),w=parseInt(u?u.paddingTop:v.css("paddingTop"))+parseInt(u?u.paddingBottom:v.css("paddingBottom"))+parseInt(u?u.borderTopWidth:v.css("borderTopWidth"))+parseInt(u?u.borderBottomWidth:v.css("borderBottomWidth")),x=w+parseInt(u?u.marginTop:v.css("marginTop"))+parseInt(u?u.marginBottom:v.css("marginBottom"))+2;document.body.removeChild(c),this.sizeInfo={liHeight:o,headerHeight:p,searchHeight:q,actionsHeight:r,doneButtonHeight:s,dividerHeight:t,menuPadding:w,menuExtras:x}}},setSize:function(){if(this.findLis(),this.liHeight(),this.options.header&&this.$menu.css("padding-top",0),this.options.size!==!1){var b,c,d,e,f=this,g=this.$menu,h=this.$menuInner,i=a(window),j=this.$newElement[0].offsetHeight,k=this.sizeInfo.liHeight,l=this.sizeInfo.headerHeight,m=this.sizeInfo.searchHeight,n=this.sizeInfo.actionsHeight,o=this.sizeInfo.doneButtonHeight,p=this.sizeInfo.dividerHeight,q=this.sizeInfo.menuPadding,r=this.sizeInfo.menuExtras,s=this.options.hideDisabled?".disabled":"",t=function(){d=f.$newElement.offset().top-i.scrollTop(),e=i.height()-d-j};if(t(),"auto"===this.options.size){var u=function(){var i,j=function(b,c){return function(d){return c?d.classList?d.classList.contains(b):a(d).hasClass(b):!(d.classList?d.classList.contains(b):a(d).hasClass(b))}},p=f.$menuInner[0].getElementsByTagName("li"),s=Array.prototype.filter?Array.prototype.filter.call(p,j("hidden",!1)):f.$lis.not(".hidden"),u=Array.prototype.filter?Array.prototype.filter.call(s,j("dropdown-header",!0)):s.filter(".dropdown-header");t(),b=e-r,f.options.container?(g.data("height")||g.data("height",g.height()),c=g.data("height")):c=g.height(),f.options.dropupAuto&&f.$newElement.toggleClass("dropup",d>e&&c>b-r),f.$newElement.hasClass("dropup")&&(b=d-r),i=s.length+u.length>3?3*k+r-2:0,g.css({"max-height":b+"px",overflow:"hidden","min-height":i+l+m+n+o+"px"}),h.css({"max-height":b-l-m-n-o-q+"px","overflow-y":"auto","min-height":Math.max(i-q,0)+"px"})};u(),this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize",u),i.off("resize.getSize scroll.getSize").on("resize.getSize scroll.getSize",u)}else if(this.options.size&&"auto"!=this.options.size&&this.$lis.not(s).length>this.options.size){var v=this.$lis.not(".divider").not(s).children().slice(0,this.options.size).last().parent().index(),w=this.$lis.slice(0,v+1).filter(".divider").length;b=k*this.options.size+w*p+q,f.options.container?(g.data("height")||g.data("height",g.height()),c=g.data("height")):c=g.height(),f.options.dropupAuto&&this.$newElement.toggleClass("dropup",d>e&&c>b-r),g.css({"max-height":b+l+m+n+o+"px",overflow:"hidden","min-height":""}),h.css({"max-height":b-q+"px","overflow-y":"auto","min-height":""})}}},setWidth:function(){if("auto"===this.options.width){this.$menu.css("min-width","0");var a=this.$menu.parent().clone().appendTo("body"),b=this.options.container?this.$newElement.clone().appendTo("body"):a,c=a.children(".dropdown-menu").outerWidth(),d=b.css("width","auto").children("button").outerWidth();a.remove(),b.remove(),this.$newElement.css("width",Math.max(c,d)+"px")}else"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width",""));this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement.removeClass("fit-width")},selectPosition:function(){this.$bsContainer=a('<div class="bs-container" />');var b,c,d=this,e=function(a){d.$bsContainer.addClass(a.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass("dropup",a.hasClass("dropup")),b=a.offset(),c=a.hasClass("dropup")?0:a[0].offsetHeight,d.$bsContainer.css({top:b.top+c,left:b.left,width:a[0].offsetWidth})};this.$newElement.on("click",function(){var b=a(this);d.isDisabled()||(e(b),d.$bsContainer.appendTo(d.options.container).toggleClass("open",!b.hasClass("open")).append(d.$menu))}),a(window).on("resize scroll",function(){e(d.$newElement)}),this.$element.on("hide.bs.select",function(){d.$menu.data("height",d.$menu.height()),d.$bsContainer.detach()})},setSelected:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),c.toggleClass("selected",b)},setDisabled:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),b?c.addClass("disabled").children("a").attr("href","#").attr("tabindex",-1):c.removeClass("disabled").children("a").removeAttr("href").attr("tabindex",0)},isDisabled:function(){return this.$element[0].disabled},checkDisabled:function(){var a=this;this.isDisabled()?(this.$newElement.addClass("disabled"),this.$button.addClass("disabled").attr("tabindex",-1)):(this.$button.hasClass("disabled")&&(this.$newElement.removeClass("disabled"),this.$button.removeClass("disabled")),-1!=this.$button.attr("tabindex")||this.$element.data("tabindex")||this.$button.removeAttr("tabindex")),this.$button.click(function(){return!a.isDisabled()})},tabIndex:function(){this.$element.is("[tabindex]")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex")))},clickListener:function(){var b=this,c=a(document);this.$newElement.on("touchstart.dropdown",".dropdown-menu",function(a){a.stopPropagation()}),c.data("spaceSelect",!1),this.$button.on("keyup",function(a){/(32)/.test(a.keyCode.toString(10))&&c.data("spaceSelect")&&(a.preventDefault(),c.data("spaceSelect",!1))}),this.$newElement.on("click",function(){b.setSize(),b.$element.on("shown.bs.select",function(){if(b.options.liveSearch||b.multiple){if(!b.multiple){var a=b.liObj[b.$element[0].selectedIndex];if("number"!=typeof a||b.options.size===!1)return;var c=b.$lis.eq(a)[0].offsetTop-b.$menuInner[0].offsetTop;c=c-b.$menuInner[0].offsetHeight/2+b.sizeInfo.liHeight/2,b.$menuInner[0].scrollTop=c}}else b.$menuInner.find(".selected a").focus()})}),this.$menuInner.on("click","li a",function(c){var d=a(this),e=d.parent().data("originalIndex"),f=b.$element.val(),g=b.$element.prop("selectedIndex");if(b.multiple&&c.stopPropagation(),c.preventDefault(),!b.isDisabled()&&!d.parent().hasClass("disabled")){var h=b.$element.find("option"),i=h.eq(e),j=i.prop("selected"),k=i.parent("optgroup"),l=b.options.maxOptions,m=k.data("maxOptions")||!1;if(b.multiple){if(i.prop("selected",!j),b.setSelected(e,!j),d.blur(),l!==!1||m!==!1){var n=l<h.filter(":selected").length,o=m<k.find("option:selected").length;if(l&&n||m&&o)if(l&&1==l)h.prop("selected",!1),i.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected"),b.setSelected(e,!0);else if(m&&1==m){k.find("option:selected").prop("selected",!1),i.prop("selected",!0);var p=d.parent().data("optgroup");b.$menuInner.find('[data-optgroup="'+p+'"]').removeClass("selected"),b.setSelected(e,!0)}else{var q="function"==typeof b.options.maxOptionsText?b.options.maxOptionsText(l,m):b.options.maxOptionsText,r=q[0].replace("{n}",l),s=q[1].replace("{n}",m),t=a('<div class="notify"></div>');q[2]&&(r=r.replace("{var}",q[2][l>1?0:1]),s=s.replace("{var}",q[2][m>1?0:1])),i.prop("selected",!1),b.$menu.append(t),l&&n&&(t.append(a("<div>"+r+"</div>")),b.$element.trigger("maxReached.bs.select")),m&&o&&(t.append(a("<div>"+s+"</div>")),b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(e,!1)},10),t.delay(750).fadeOut(300,function(){a(this).remove()})}}}else h.prop("selected",!1),i.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected"),b.setSelected(e,!0);b.multiple?b.options.liveSearch&&b.$searchbox.focus():b.$button.focus(),(f!=b.$element.val()&&b.multiple||g!=b.$element.prop("selectedIndex")&&!b.multiple)&&(b.$element.triggerNative("change"),b.$element.trigger("changed.bs.select",[e,i.prop("selected"),j]))}}),this.$menu.on("click","li.disabled a, .popover-title, .popover-title :not(.close)",function(c){c.currentTarget==this&&(c.preventDefault(),c.stopPropagation(),b.options.liveSearch&&!a(c.target).hasClass("close")?b.$searchbox.focus():b.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(a){a.preventDefault(),
+a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click",".popover-title .close",function(){b.$button.click()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).hasClass("bs-select-all")?b.selectAll():b.deselectAll(),b.$element.triggerNative("change")}),this.$element.change(function(){b.render(!1)})},liveSearchListener:function(){var d=this,e=a('<li class="no-results"></li>');this.$newElement.on("click.dropdown.data-api touchstart.dropdown.data-api",function(){d.$menuInner.find(".active").removeClass("active"),d.$searchbox.val()&&(d.$searchbox.val(""),d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove()),d.multiple||d.$menuInner.find(".selected").addClass("active"),setTimeout(function(){d.$searchbox.focus()},10)}),this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){if(d.$searchbox.val()){var f=d.$lis.not(".is-hidden").removeClass("hidden").children("a");f=d.options.liveSearchNormalize?f.not(":a"+d._searchStyle()+'("'+b(d.$searchbox.val())+'")'):f.not(":"+d._searchStyle()+'("'+d.$searchbox.val()+'")'),f.parent().addClass("hidden"),d.$lis.filter(".dropdown-header").each(function(){var b=a(this),c=b.data("optgroup");0===d.$lis.filter("[data-optgroup="+c+"]").not(b).not(".hidden").length&&(b.addClass("hidden"),d.$lis.filter("[data-optgroup="+c+"div]").addClass("hidden"))});var g=d.$lis.not(".hidden");g.each(function(b){var c=a(this);c.hasClass("divider")&&(c.index()===g.first().index()||c.index()===g.last().index()||g.eq(b+1).hasClass("divider"))&&c.addClass("hidden")}),d.$lis.not(".hidden, .no-results").length?e.parent().length&&e.remove():(e.parent().length&&e.remove(),e.html(d.options.noneResultsText.replace("{0}",'"'+c(d.$searchbox.val())+'"')).show(),d.$menuInner.append(e))}else d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove();d.$lis.filter(".active").removeClass("active"),d.$searchbox.val()&&d.$lis.not(".hidden, .divider, .dropdown-header").eq(0).addClass("active").children("a").focus(),a(this).focus()})},_searchStyle:function(){var a={begins:"ibegins",startsWith:"ibegins"};return a[this.options.liveSearchStyle]||"icontains"},val:function(a){return"undefined"!=typeof a?(this.$element.val(a),this.render(),this.$element):this.$element.val()},changeAll:function(b){"undefined"==typeof b&&(b=!0),this.findLis();for(var c=this.$element.find("option"),d=this.$lis.not(".divider, .dropdown-header, .disabled, .hidden").toggleClass("selected",b),e=d.length,f=[],g=0;e>g;g++){var h=d[g].getAttribute("data-original-index");f[f.length]=c.eq(h)[0]}a(f).prop("selected",b),this.render(!1)},selectAll:function(){return this.changeAll(!0)},deselectAll:function(){return this.changeAll(!1)},keydown:function(c){var d,e,f,g,h,i,j,k,l,m=a(this),n=m.is("input")?m.parent().parent():m.parent(),o=n.data("this"),p=":not(.disabled, .hidden, .dropdown-header, .divider)",q={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"};if(o.options.liveSearch&&(n=m.parent().parent()),o.options.container&&(n=o.$menu),d=a("[role=menu] li",n),l=o.$menu.parent().hasClass("open"),!l&&(c.keyCode>=48&&c.keyCode<=57||c.keyCode>=96&&c.keyCode<=105||c.keyCode>=65&&c.keyCode<=90)&&(o.options.container?o.$newElement.trigger("click"):(o.setSize(),o.$menu.parent().addClass("open"),l=!0),o.$searchbox.focus()),o.options.liveSearch&&(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&0===o.$menu.find(".active").length&&(c.preventDefault(),o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus()),d=a("[role=menu] li"+p,n),m.val()||/(38|40)/.test(c.keyCode.toString(10))||0===d.filter(".active").length&&(d=o.$menuInner.find("li"),d=o.options.liveSearchNormalize?d.filter(":a"+o._searchStyle()+"("+b(q[c.keyCode])+")"):d.filter(":"+o._searchStyle()+"("+q[c.keyCode]+")"))),d.length){if(/(38|40)/.test(c.keyCode.toString(10)))e=d.index(d.find("a").filter(":focus").parent()),g=d.filter(p).first().index(),h=d.filter(p).last().index(),f=d.eq(e).nextAll(p).eq(0).index(),i=d.eq(e).prevAll(p).eq(0).index(),j=d.eq(f).prevAll(p).eq(0).index(),o.options.liveSearch&&(d.each(function(b){a(this).hasClass("disabled")||a(this).data("index",b)}),e=d.index(d.filter(".active")),g=d.first().data("index"),h=d.last().data("index"),f=d.eq(e).nextAll().eq(0).data("index"),i=d.eq(e).prevAll().eq(0).data("index"),j=d.eq(f).prevAll().eq(0).data("index")),k=m.data("prevIndex"),38==c.keyCode?(o.options.liveSearch&&e--,e!=j&&e>i&&(e=i),g>e&&(e=g),e==k&&(e=h)):40==c.keyCode&&(o.options.liveSearch&&e++,-1==e&&(e=0),e!=j&&f>e&&(e=f),e>h&&(e=h),e==k&&(e=g)),m.data("prevIndex",e),o.options.liveSearch?(c.preventDefault(),m.hasClass("dropdown-toggle")||(d.removeClass("active").eq(e).addClass("active").children("a").focus(),m.focus())):d.eq(e).children("a").focus();else if(!m.is("input")){var r,s,t=[];d.each(function(){a(this).hasClass("disabled")||a.trim(a(this).children("a").text().toLowerCase()).substring(0,1)==q[c.keyCode]&&t.push(a(this).index())}),r=a(document).data("keycount"),r++,a(document).data("keycount",r),s=a.trim(a(":focus").text().toLowerCase()).substring(0,1),s!=q[c.keyCode]?(r=1,a(document).data("keycount",r)):r>=t.length&&(a(document).data("keycount",0),r>t.length&&(r=1)),d.eq(t[r-1]).children("a").focus()}if((/(13|32)/.test(c.keyCode.toString(10))||/(^9$)/.test(c.keyCode.toString(10))&&o.options.selectOnTab)&&l){if(/(32)/.test(c.keyCode.toString(10))||c.preventDefault(),o.options.liveSearch)/(32)/.test(c.keyCode.toString(10))||(o.$menuInner.find(".active a").click(),m.focus());else{var u=a(":focus");u.click(),u.focus(),c.preventDefault(),a(document).data("spaceSelect",!0)}a(document).data("keycount",0)}(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(o.multiple||o.options.liveSearch)||/(27)/.test(c.keyCode.toString(10))&&!l)&&(o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus())}},mobile:function(){this.$element.addClass("mobile-device").appendTo(this.$newElement),this.options.container&&this.$menu.hide()},refresh:function(){this.$lis=null,this.liObj={},this.reloadLi(),this.render(),this.checkDisabled(),this.liHeight(!0),this.setStyle(),this.setWidth(),this.$lis&&this.$searchbox.trigger("propertychange"),this.$element.trigger("refreshed.bs.select")},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")}};var f=a.fn.selectpicker;a.fn.selectpicker=d,a.fn.selectpicker.Constructor=e,a.fn.selectpicker.noConflict=function(){return a.fn.selectpicker=f,this},a(document).data("keycount",0).on("keydown.bs.select",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input',e.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input',function(a){a.stopPropagation()}),a(window).on("load.bs.select.data-api",function(){a(".selectpicker").each(function(){var b=a(this);d.call(b,b.data())})})}(a)}),angular.module("checklist-model",[]).directive("checklistModel",["$parse","$compile",function(a,b){function c(a,b,c){if(angular.isArray(a))for(var d=a.length;d--;)if(c(a[d],b))return!0;return!1}function d(a,b,d){return a=angular.isArray(a)?a:[],c(a,b,d)||a.push(b),a}function e(a,b,c){if(angular.isArray(a))for(var d=a.length;d--;)if(c(a[d],b)){a.splice(d,1);break}return a}function f(f,g,h){function i(a,b){f[h.ngModel]=c(a,n,o)}var j=h.checklistModel;h.$set("checklistModel",null),b(g)(f),h.$set("checklistModel",j);var k=a(j),l=k.assign,m=a(h.checklistChange),n=h.checklistValue?a(h.checklistValue)(f.$parent):h.value,o=angular.equals;if(h.hasOwnProperty("checklistComparator"))if("."==h.checklistComparator[0]){var p=h.checklistComparator.substring(1);o=function(a,b){return a[p]===b[p]}}else o=a(h.checklistComparator)(f.$parent);f.$watch(h.ngModel,function(a,b){if(a!==b){var c=k(f.$parent);angular.isFunction(l)&&(a===!0?l(f.$parent,d(c,n,o)):l(f.$parent,e(c,n,o))),m&&m(f)}}),angular.isFunction(f.$parent.$watchCollection)?f.$parent.$watchCollection(j,i):f.$parent.$watch(j,i,!0)}return{restrict:"A",priority:1e3,terminal:!0,scope:!0,compile:function(a,b){if(("INPUT"!==a[0].tagName||"checkbox"!==b.type)&&"MD-CHECKBOX"!==a[0].tagName&&!b.btnCheckbox)throw'checklist-model should be applied to `input[type="checkbox"]` or `md-checkbox`.';if(!b.checklistValue&&!b.value)throw"You should provide `value` or `checklist-value`.";return b.ngModel||b.$set("ngModel","checked"),f}}}]),function(a,b,c){"use strict";a.fn.backstretch=function(d,f){return d!==c&&0!==d.length||a.error("No images were supplied for Backstretch"),0===a(b).scrollTop()&&b.scrollTo(0,0),this.each(function(){var b=a(this),c=b.data("backstretch");if(c){if("string"==typeof d&&"function"==typeof c[d])return void c[d](f);f=a.extend(c.options,f),c.destroy(!0)}c=new e(this,d,f),b.data("backstretch",c)})},a.backstretch=function(b,c){return a("body").backstretch(b,c).data("backstretch")},a.expr[":"].backstretch=function(b){return a(b).data("backstretch")!==c},a.fn.backstretch.defaults={centeredX:!0,centeredY:!0,duration:5e3,fade:0};var d={wrap:{left:0,top:0,overflow:"hidden",margin:0,padding:0,height:"100%",width:"100%",zIndex:-999999},img:{position:"absolute",display:"none",margin:0,padding:0,border:"none",width:"auto",height:"auto",maxHeight:"none",maxWidth:"none",zIndex:-999999}},e=function(c,e,g){this.options=a.extend({},a.fn.backstretch.defaults,g||{}),this.images=a.isArray(e)?e:[e],a.each(this.images,function(){a("<img />")[0].src=this}),this.isBody=c===document.body,this.$container=a(c),this.$root=this.isBody?a(f?b:document):this.$container;var h=this.$container.children(".backstretch").first();if(this.$wrap=h.length?h:a('<div class="backstretch"></div>').css(d.wrap).appendTo(this.$container),!this.isBody){var i=this.$container.css("position"),j=this.$container.css("zIndex");this.$container.css({position:"static"===i?"relative":i,zIndex:"auto"===j?0:j,background:"none"}),this.$wrap.css({zIndex:-999998})}this.$wrap.css({position:this.isBody&&f?"fixed":"absolute"}),this.index=0,this.show(this.index),a(b).on("resize.backstretch",a.proxy(this.resize,this)).on("orientationchange.backstretch",a.proxy(function(){this.isBody&&0===b.pageYOffset&&(b.scrollTo(0,1),this.resize())},this))};e.prototype={resize:function(){try{var a,c={left:0,top:0},d=this.isBody?this.$root.width():this.$root.innerWidth(),e=d,f=this.isBody?b.innerHeight?b.innerHeight:this.$root.height():this.$root.innerHeight(),g=e/this.$img.data("ratio");g>=f?(a=(g-f)/2,this.options.centeredY&&(c.top="-"+a+"px")):(g=f,e=g*this.$img.data("ratio"),a=(e-d)/2,this.options.centeredX&&(c.left="-"+a+"px")),this.$wrap.css({width:d,height:f}).find("img:not(.deleteable)").css({width:e,height:g}).css(c)}catch(h){}return this},show:function(b){if(!(Math.abs(b)>this.images.length-1)){var c=this,e=c.$wrap.find("img").addClass("deleteable"),f={relatedTarget:c.$container[0]};return c.$container.trigger(a.Event("backstretch.before",f),[c,b]),this.index=b,clearInterval(c.interval),c.$img=a("<img />").css(d.img).bind("load",function(d){var g=this.width||a(d.target).width(),h=this.height||a(d.target).height();a(this).data("ratio",g/h),a(this).fadeIn(c.options.speed||c.options.fade,function(){e.remove(),c.paused||c.cycle(),a(["after","show"]).each(function(){c.$container.trigger(a.Event("backstretch."+this,f),[c,b])})}),c.resize()}).appendTo(c.$wrap),c.$img.attr("src",c.images[b]),c}},next:function(){return this.show(this.index<this.images.length-1?this.index+1:0)},prev:function(){return this.show(0===this.index?this.images.length-1:this.index-1)},pause:function(){return this.paused=!0,this},resume:function(){return this.paused=!1,this.next(),this},cycle:function(){return this.images.length>1&&(clearInterval(this.interval),this.interval=setInterval(a.proxy(function(){this.paused||this.next()},this),this.options.duration)),this},destroy:function(c){a(b).off("resize.backstretch orientationchange.backstretch"),clearInterval(this.interval),c||this.$wrap.remove(),this.$container.removeData("backstretch")}};var f=function(){var a=navigator.userAgent,c=navigator.platform,d=a.match(/AppleWebKit\/([0-9]+)/),e=!!d&&d[1],f=a.match(/Fennec\/([0-9]+)/),g=!!f&&f[1],h=a.match(/Opera Mobi\/([0-9]+)/),i=!!h&&h[1],j=a.match(/MSIE ([0-9]+)/),k=!!j&&j[1];return!((c.indexOf("iPhone")>-1||c.indexOf("iPad")>-1||c.indexOf("iPod")>-1)&&e&&534>e||b.operamini&&"[object OperaMini]"==={}.toString.call(b.operamini)||h&&7458>i||a.indexOf("Android")>-1&&e&&533>e||g&&6>g||"palmGetResource"in b&&e&&534>e||a.indexOf("MeeGo")>-1&&a.indexOf("NokiaBrowser/8.5.0")>-1||k&&6>=k)}()}(jQuery,window),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}),function(a,b,c){function d(c){var d=b.console;f[c]||(f[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function e(b,c,e,f){if(Object.defineProperty)try{return void Object.defineProperty(b,c,{configurable:!0,enumerable:!0,get:function(){return d(f),e},set:function(a){d(f),e=a}})}catch(g){}a._definePropertyBroken=!0,b[c]=e}var f={};a.migrateWarnings=[],!a.migrateMute&&b.console&&b.console.log&&b.console.log("JQMIGRATE: Logging is active"),a.migrateTrace===c&&(a.migrateTrace=!0),a.migrateReset=function(){f={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&d("jQuery is not compatible with Quirks Mode");var g=a("<input/>",{size:1}).attr("size")&&a.attrFn,h=a.attr,i=a.attrHooks.value&&a.attrHooks.value.get||function(){return null},j=a.attrHooks.value&&a.attrHooks.value.set||function(){return c},k=/^(?:input|button)$/i,l=/^[238]$/,m=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,n=/^(?:checked|selected)$/i;e(a,"attrFn",g||{},"jQuery.attrFn is deprecated"),a.attr=function(b,e,f,i){var j=e.toLowerCase(),o=b&&b.nodeType;return i&&(h.length<4&&d("jQuery.fn.attr( props, pass ) is deprecated"),b&&!l.test(o)&&(g?e in g:a.isFunction(a.fn[e])))?a(b)[e](f):("type"===e&&f!==c&&k.test(b.nodeName)&&b.parentNode&&d("Can't change the 'type' of an input or button in IE 6/7/8"),!a.attrHooks[j]&&m.test(j)&&(a.attrHooks[j]={get:function(b,d){var e,f=a.prop(b,d);return f===!0||"boolean"!=typeof f&&(e=b.getAttributeNode(d))&&e.nodeValue!==!1?d.toLowerCase():c},set:function(b,c,d){var e;return c===!1?a.removeAttr(b,d):(e=a.propFix[d]||d,e in b&&(b[e]=!0),b.setAttribute(d,d.toLowerCase())),d}},n.test(j)&&d("jQuery.fn.attr('"+j+"') may use property instead of attribute")),h.call(a,b,e,f))},a.attrHooks.value={get:function(a,b){var c=(a.nodeName||"").toLowerCase();return"button"===c?i.apply(this,arguments):("input"!==c&&"option"!==c&&d("jQuery.fn.attr('value') no longer gets properties"),b in a?a.value:null)},set:function(a,b){var c=(a.nodeName||"").toLowerCase();return"button"===c?j.apply(this,arguments):("input"!==c&&"option"!==c&&d("jQuery.fn.attr('value', val) no longer sets properties"),void(a.value=b))}};var o,p,q=a.fn.init,r=a.parseJSON,s=/^([^<]*)(<[\w\W]+>)([^>]*)$/;a.fn.init=function(b,c,e){var f;return b&&"string"==typeof b&&!a.isPlainObject(c)&&(f=s.exec(a.trim(b)))&&f[0]&&("<"!==b.charAt(0)&&d("$(html) HTML strings must start with '<' character"),f[3]&&d("$(html) HTML text after last tag is ignored"),"#"===f[0].charAt(0)&&(d("HTML string cannot start with a '#' character"),a.error("JQMIGRATE: Invalid selector string (XSS)")),c&&c.context&&(c=c.context),a.parseHTML)?q.call(this,a.parseHTML(f[2],c,!0),c,e):q.apply(this,arguments)},a.fn.init.prototype=a.fn,a.parseJSON=function(a){return a||null===a?r.apply(this,arguments):(d("jQuery.parseJSON requires a valid JSON string"),null)},a.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a.browser||(o=a.uaMatch(navigator.userAgent),p={},o.browser&&(p[o.browser]=!0,p.version=o.version),p.chrome?p.webkit=!0:p.webkit&&(p.safari=!0),a.browser=p),e(a,"browser",a.browser,"jQuery.browser is deprecated"),a.sub=function(){function b(a,c){return new b.fn.init(a,c)}a.extend(!0,b,this),b.superclass=this,b.fn=b.prototype=this(),b.fn.constructor=b,b.sub=this.sub,b.fn.init=function(d,e){return e&&e instanceof a&&!(e instanceof b)&&(e=b(e)),a.fn.init.call(this,d,e,c)},b.fn.init.prototype=b.fn;var c=b(document);return d("jQuery.sub() is deprecated"),b},a.ajaxSetup({converters:{"text json":a.parseJSON}});var t=a.fn.data;a.fn.data=function(b){var e,f,g=this[0];return!g||"events"!==b||1!==arguments.length||(e=a.data(g,b),f=a._data(g,b),e!==c&&e!==f||f===c)?t.apply(this,arguments):(d("Use of jQuery.fn.data('events') is deprecated"),f)};var u=/\/(java|ecma)script/i,v=a.fn.andSelf||a.fn.addBack;a.fn.andSelf=function(){return d("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),v.apply(this,arguments)},a.clean||(a.clean=function(b,c,e,f){c=c||document,c=!c.nodeType&&c[0]||c,c=c.ownerDocument||c,d("jQuery.clean() is deprecated");var g,h,i,j,k=[];if(a.merge(k,a.buildFragment(b,c).childNodes),e)for(i=function(a){return!a.type||u.test(a.type)?f?f.push(a.parentNode?a.parentNode.removeChild(a):a):e.appendChild(a):void 0},g=0;null!=(h=k[g]);g++)a.nodeName(h,"script")&&i(h)||(e.appendChild(h),"undefined"!=typeof h.getElementsByTagName&&(j=a.grep(a.merge([],h.getElementsByTagName("script")),i),k.splice.apply(k,[g+1,0].concat(j)),g+=j.length));return k});var w=a.event.add,x=a.event.remove,y=a.event.trigger,z=a.fn.toggle,A=a.fn.live,B=a.fn.die,C="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",D=new RegExp("\\b(?:"+C+")\\b"),E=/(?:^|\s)hover(\.\S+|)\b/,F=function(b){return"string"!=typeof b||a.event.special.hover?b:(E.test(b)&&d("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),b&&b.replace(E,"mouseenter$1 mouseleave$1"))};a.event.props&&"attrChange"!==a.event.props[0]&&a.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),a.event.dispatch&&e(a.event,"handle",a.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),a.event.add=function(a,b,c,e,f){a!==document&&D.test(b)&&d("AJAX events should be attached to document: "+b),w.call(this,a,F(b||""),c,e,f)},a.event.remove=function(a,b,c,d,e){x.call(this,a,F(b)||"",c,d,e)},a.fn.error=function(){var a=Array.prototype.slice.call(arguments,0);return d("jQuery.fn.error() is deprecated"),a.splice(0,0,"error"),arguments.length?this.bind.apply(this,a):(this.triggerHandler.apply(this,a),this)},a.fn.toggle=function(b,c){if(!a.isFunction(b)||!a.isFunction(c))return z.apply(this,arguments);d("jQuery.fn.toggle(handler, handler...) is deprecated");var e=arguments,f=b.guid||a.guid++,g=0,h=function(c){var d=(a._data(this,"lastToggle"+b.guid)||0)%g;return a._data(this,"lastToggle"+b.guid,d+1),c.preventDefault(),e[d].apply(this,arguments)||!1};for(h.guid=f;g<e.length;)e[g++].guid=f;return this.click(h)},a.fn.live=function(b,c,e){return d("jQuery.fn.live() is deprecated"),A?A.apply(this,arguments):(a(this.context).on(b,this.selector,c,e),this)},a.fn.die=function(b,c){return d("jQuery.fn.die() is deprecated"),B?B.apply(this,arguments):(a(this.context).off(b,this.selector||"**",c),this)},a.event.trigger=function(a,b,c,e){return c||D.test(a)||d("Global events are undocumented and deprecated"),y.call(this,a,b,c||document,e)},a.each(C.split("|"),function(b,c){a.event.special[c]={setup:function(){var b=this;return b!==document&&(a.event.add(document,c+"."+a.guid,function(){a.event.trigger(c,null,b,!0)}),a._data(this,c,a.guid++)),!1},teardown:function(){return this!==document&&a.event.remove(document,c+"."+a._data(this,c)),!1}}})}(jQuery,window),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.settings.submitHandler?(c.submitButton&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,d=d.concat(c.errorList)}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){return!!a.trim(""+a(b).val())},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||-1!==a.inArray(c.keyCode,d)||(b.name in this.submitted||b===this.lastElement)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c=this.clean(b),d=this.validationTargetFor(c),e=!0;return this.lastElement=d,void 0===d?delete this.invalid[c.name]:(this.prepareElement(d),this.currentElements=a(d),e=this.check(d)!==!1,e?delete this.invalid[d.name]:this.invalid[d.name]=!0),a(b).attr("aria-invalid",!e),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e},showErrors:function(b){if(b){a.extend(this.errorMap,b),this.errorList=[];for(var c in b)this.errorList.push({message:b[c],element:this.findByName(c)[0]});this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors();var b,c=this.elements().removeData("previousValue").removeAttr("aria-invalid");if(this.settings.unhighlight)for(b=0;c[b];b++)this.settings.unhighlight.call(this,c[b],this.settings.errorClass,"");else c.removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){return!this.name&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in c||!b.objectLength(a(this).rules())?!1:(c[this.name]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([]),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d=a(b),e=b.type;return"radio"===e||"checkbox"===e?this.findByName(b.name).filter(":checked").val():"number"===e&&"undefined"!=typeof b.validity?b.validity.badInput?!1:d.val():(c=d.val(),"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof TypeError&&(j.message+=".  Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),
+j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]},defaultMessage:function(b,c){return this.findDefined(this.customMessage(b.name,c),this.customDataMessage(b,c),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c],"<strong>Warning: No message defined for "+b.name+"</strong>")},formatAndAdd:function(b,c){var d=this.defaultMessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorList.push({message:d,element:b,method:c.method}),this.errorMap[b.name]=d,this.submitted[b.name]=d},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g=this.errorsFor(b),h=this.idOrName(b),i=a(b).attr("aria-describedby");g.length?(g.removeClass(this.settings.validClass).addClass(this.settings.errorClass),g.html(c)):(g=a("<"+this.settings.errorElement+">").attr("id",h+"-error").addClass(this.settings.errorClass).html(c||""),d=g,this.settings.wrapper&&(d=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),g.is("label")?g.attr("for",h):0===g.parents("label[for='"+h+"']").length&&(f=g.attr("id").replace(/(:|\.|\[|\]|\$)/g,"\\$1"),i?i.match(new RegExp("\\b"+f+"\\b"))||(i+=" "+f):i=f,a(b).attr("aria-describedby",i),e=this.groups[b.name],e&&a.each(this.groups,function(b,c){c===e&&a("[name='"+b+"']",this.currentForm).attr("aria-describedby",g.attr("id"))}))),!c&&this.settings.success&&(g.text(""),"string"==typeof this.settings.success?g.addClass(this.settings.success):this.settings.success(g,b)),this.toShow=this.toShow.add(g)},errorsFor:function(b){var c=this.idOrName(b),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+d.replace(/\s+/g,", #")),this.errors().filter(e)},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+b+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(a){this.pending[a.name]||(this.pendingRequest++,this.pending[a.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,"remote")})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isFunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.off(".validate-equalTo").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousValue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalMessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startRequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:f,context:e.currentForm,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalMessage,j?(i=e.formSubmitted,e.prepareElement(c),e.formSubmitted=i,e.successList.push(c),delete e.invalid[c.name],e.showErrors()):(f={},h=d||e.defaultMessage(c,"remote"),f[c.name]=g.message=a.isFunction(h)?h(b):h,e.invalid[c.name]=!0,e.showErrors(f)),g.valid=j,e.stopRequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})}),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.fn.addBack=a.fn.addBack||a.fn.andSelf,a.fn.extend({actual:function(b,c){if(!this[b])throw'$.actual => The jQuery method "'+b+'" you called does not exist';var d,e,f={absolute:!1,clone:!1,includeMargin:!1,display:"block"},g=a.extend(f,c),h=this.eq(0);if(g.clone===!0)d=function(){var a="position: absolute !important; top: -1000 !important; ";h=h.clone().attr("style",a).appendTo("body")},e=function(){h.remove()};else{var i,j=[],k="";d=function(){i=h.parents().addBack().filter(":hidden"),k+="visibility: hidden !important; display: "+g.display+" !important; ",g.absolute===!0&&(k+="position: absolute !important; "),i.each(function(){var b=a(this),c=b.attr("style");j.push(c),b.attr("style",c?c+";"+k:k)})},e=function(){i.each(function(b){var c=a(this),d=j[b];void 0===d?c.removeAttr("style"):c.attr("style",d)})}}d();var l=/(outer)/.test(b)?h[b](g.includeMargin):h[b]();return e(),l}})}),function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return Hc.apply(null,arguments)}function b(a){Hc=a}function c(a){return"[object Array]"===Object.prototype.toString.call(a)}function d(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function e(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function f(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function g(a,b){for(var c in b)f(b,c)&&(a[c]=b[c]);return f(b,"toString")&&(a.toString=b.toString),f(b,"valueOf")&&(a.valueOf=b.valueOf),a}function h(a,b,c,d){return Ca(a,b,c,d,!0).utc()}function i(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function j(a){return null==a._pf&&(a._pf=i()),a._pf}function k(a){if(null==a._isValid){var b=j(a);a._isValid=!(isNaN(a._d.getTime())||!(b.overflow<0)||b.empty||b.invalidMonth||b.invalidWeekday||b.nullInput||b.invalidFormat||b.userInvalidated),a._strict&&(a._isValid=a._isValid&&0===b.charsLeftOver&&0===b.unusedTokens.length&&void 0===b.bigHour)}return a._isValid}function l(a){var b=h(NaN);return null!=a?g(j(b),a):j(b).userInvalidated=!0,b}function m(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=j(b)),"undefined"!=typeof b._locale&&(a._locale=b._locale),Jc.length>0)for(c in Jc)d=Jc[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function n(b){m(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),Kc===!1&&(Kc=!0,a.updateOffset(this),Kc=!1)}function o(a){return a instanceof n||null!=a&&null!=a._isAMomentObject}function p(a){return 0>a?Math.ceil(a):Math.floor(a)}function q(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=p(b)),c}function r(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&q(a[d])!==q(b[d]))&&g++;return g+f}function s(){}function t(a){return a?a.toLowerCase().replace("_","-"):a}function u(a){for(var b,c,d,e,f=0;f<a.length;){for(e=t(a[f]).split("-"),b=e.length,c=t(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=v(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&r(e,c,!0)>=b-1)break;b--}f++}return null}function v(a){var b=null;if(!Lc[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=Ic._abbr,require("./locale/"+a),w(b)}catch(c){}return Lc[a]}function w(a,b){var c;return a&&(c="undefined"==typeof b?y(a):x(a,b),c&&(Ic=c)),Ic._abbr}function x(a,b){return null!==b?(b.abbr=a,Lc[a]=Lc[a]||new s,Lc[a].set(b),w(a),Lc[a]):(delete Lc[a],null)}function y(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Ic;if(!c(a)){if(b=v(a))return b;a=[a]}return u(a)}function z(a,b){var c=a.toLowerCase();Mc[c]=Mc[c+"s"]=Mc[b]=a}function A(a){return"string"==typeof a?Mc[a]||Mc[a.toLowerCase()]:void 0}function B(a){var b,c,d={};for(c in a)f(a,c)&&(b=A(c),b&&(d[b]=a[c]));return d}function C(b,c){return function(d){return null!=d?(E(this,b,d),a.updateOffset(this,c),this):D(this,b)}}function D(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function E(a,b,c){return a._d["set"+(a._isUTC?"UTC":"")+b](c)}function F(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else if(a=A(a),"function"==typeof this[a])return this[a](b);return this}function G(a,b,c){var d=""+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function H(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&(Qc[a]=e),b&&(Qc[b[0]]=function(){return G(e.apply(this,arguments),b[1],b[2])}),c&&(Qc[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function I(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function J(a){var b,c,d=a.match(Nc);for(b=0,c=d.length;c>b;b++)Qc[d[b]]?d[b]=Qc[d[b]]:d[b]=I(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function K(a,b){return a.isValid()?(b=L(b,a.localeData()),Pc[b]=Pc[b]||J(b),Pc[b](a)):a.localeData().invalidDate()}function L(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Oc.lastIndex=0;d>=0&&Oc.test(a);)a=a.replace(Oc,c),Oc.lastIndex=0,d-=1;return a}function M(a){return"function"==typeof a&&"[object Function]"===Object.prototype.toString.call(a)}function N(a,b,c){dd[a]=M(b)?b:function(a){return a&&c?c:b}}function O(a,b){return f(dd,a)?dd[a](b._strict,b._locale):new RegExp(P(a))}function P(a){return a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Q(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),"number"==typeof b&&(d=function(a,c){c[b]=q(a)}),c=0;c<a.length;c++)ed[a[c]]=d}function R(a,b){Q(a,function(a,c,d,e){d._w=d._w||{},b(a,d._w,d,e)})}function S(a,b,c){null!=b&&f(ed,a)&&ed[a](b,c._a,c,a)}function T(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function U(a){return this._months[a.month()]}function V(a){return this._monthsShort[a.month()]}function W(a,b,c){var d,e,f;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;d++){if(e=h([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function X(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),T(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function Y(b){return null!=b?(X(this,b),a.updateOffset(this,!0),this):D(this,"Month")}function Z(){return T(this.year(),this.month())}function $(a){var b,c=a._a;return c&&-2===j(a).overflow&&(b=c[gd]<0||c[gd]>11?gd:c[hd]<1||c[hd]>T(c[fd],c[gd])?hd:c[id]<0||c[id]>24||24===c[id]&&(0!==c[jd]||0!==c[kd]||0!==c[ld])?id:c[jd]<0||c[jd]>59?jd:c[kd]<0||c[kd]>59?kd:c[ld]<0||c[ld]>999?ld:-1,j(a)._overflowDayOfYear&&(fd>b||b>hd)&&(b=hd),j(a).overflow=b),a}function _(b){a.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+b)}function aa(a,b){var c=!0;return g(function(){return c&&(_(a+"\n"+(new Error).stack),c=!1),b.apply(this,arguments)},b)}function ba(a,b){od[a]||(_(b),od[a]=!0)}function ca(a){var b,c,d=a._i,e=pd.exec(d);if(e){for(j(a).iso=!0,b=0,c=qd.length;c>b;b++)if(qd[b][1].exec(d)){a._f=qd[b][0];break}for(b=0,c=rd.length;c>b;b++)if(rd[b][1].exec(d)){a._f+=(e[6]||" ")+rd[b][0];break}d.match(ad)&&(a._f+="Z"),va(a)}else a._isValid=!1}function da(b){var c=sd.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(ca(b),void(b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b))))}function ea(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function fa(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function ga(a){return ha(a)?366:365}function ha(a){return a%4===0&&a%100!==0||a%400===0}function ia(){return ha(this.year())}function ja(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=Da(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ka(a){return ja(a,this._week.dow,this._week.doy).week}function la(){return this._week.dow}function ma(){return this._week.doy}function na(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function oa(a){var b=ja(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")}function pa(a,b,c,d,e){var f,g=6+e-d,h=fa(a,0,1+g),i=h.getUTCDay();return e>i&&(i+=7),c=null!=c?1*c:e,f=1+g+7*(b-1)-i+c,{year:f>0?a:a-1,dayOfYear:f>0?f:ga(a-1)+f}}function qa(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function ra(a,b,c){return null!=a?a:null!=b?b:c}function sa(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function ta(a){var b,c,d,e,f=[];if(!a._d){for(d=sa(a),a._w&&null==a._a[hd]&&null==a._a[gd]&&ua(a),a._dayOfYear&&(e=ra(a._a[fd],d[fd]),a._dayOfYear>ga(e)&&(j(a)._overflowDayOfYear=!0),c=fa(e,0,a._dayOfYear),a._a[gd]=c.getUTCMonth(),a._a[hd]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;7>b;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[id]&&0===a._a[jd]&&0===a._a[kd]&&0===a._a[ld]&&(a._nextDay=!0,a._a[id]=0),a._d=(a._useUTC?fa:ea).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[id]=24)}}function ua(a){var b,c,d,e,f,g,h;b=a._w,null!=b.GG||null!=b.W||null!=b.E?(f=1,g=4,c=ra(b.GG,a._a[fd],ja(Da(),1,4).year),d=ra(b.W,1),e=ra(b.E,1)):(f=a._locale._week.dow,g=a._locale._week.doy,c=ra(b.gg,a._a[fd],ja(Da(),f,g).year),d=ra(b.w,1),null!=b.d?(e=b.d,f>e&&++d):e=null!=b.e?b.e+f:f),h=pa(c,d,e,g,f),a._a[fd]=h.year,a._dayOfYear=h.dayOfYear}function va(b){if(b._f===a.ISO_8601)return void ca(b);b._a=[],j(b).empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,k=0;for(e=L(b._f,b._locale).match(Nc)||[],c=0;c<e.length;c++)f=e[c],d=(h.match(O(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length>0&&j(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),k+=d.length),Qc[f]?(d?j(b).empty=!1:j(b).unusedTokens.push(f),S(f,d,b)):b._strict&&!d&&j(b).unusedTokens.push(f);j(b).charsLeftOver=i-k,h.length>0&&j(b).unusedInput.push(h),j(b).bigHour===!0&&b._a[id]<=12&&b._a[id]>0&&(j(b).bigHour=void 0),b._a[id]=wa(b._locale,b._a[id],b._meridiem),ta(b),$(b)}function wa(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function xa(a){var b,c,d,e,f;if(0===a._f.length)return j(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;e<a._f.length;e++)f=0,b=m({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._f=a._f[e],va(b),k(b)&&(f+=j(b).charsLeftOver,f+=10*j(b).unusedTokens.length,j(b).score=f,(null==d||d>f)&&(d=f,c=b));g(a,c||b)}function ya(a){if(!a._d){var b=B(a._i);a._a=[b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],ta(a)}}function za(a){var b=new n($(Aa(a)));return b._nextDay&&(b.add(1,"d"),b._nextDay=void 0),b}function Aa(a){var b=a._i,e=a._f;return a._locale=a._locale||y(a._l),null===b||void 0===e&&""===b?l({nullInput:!0}):("string"==typeof b&&(a._i=b=a._locale.preparse(b)),o(b)?new n($(b)):(c(e)?xa(a):e?va(a):d(b)?a._d=b:Ba(a),a))}function Ba(b){var f=b._i;void 0===f?b._d=new Date:d(f)?b._d=new Date(+f):"string"==typeof f?da(b):c(f)?(b._a=e(f.slice(0),function(a){return parseInt(a,10)}),ta(b)):"object"==typeof f?ya(b):"number"==typeof f?b._d=new Date(f):a.createFromInputFallback(b)}function Ca(a,b,c,d,e){var f={};return"boolean"==typeof c&&(d=c,c=void 0),f._isAMomentObject=!0,f._useUTC=f._isUTC=e,f._l=c,f._i=a,f._f=b,f._strict=d,za(f)}function Da(a,b,c,d){return Ca(a,b,c,d,!1)}function Ea(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return Da();for(d=b[0],e=1;e<b.length;++e)b[e].isValid()&&!b[e][a](d)||(d=b[e]);return d}function Fa(){var a=[].slice.call(arguments,0);return Ea("isBefore",a)}function Ga(){var a=[].slice.call(arguments,0);return Ea("isAfter",a)}function Ha(a){var b=B(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=y(),this._bubble()}function Ia(a){return a instanceof Ha}function Ja(a,b){H(a,0,0,function(){var a=this.utcOffset(),c="+";return 0>a&&(a=-a,c="-"),c+G(~~(a/60),2)+b+G(~~a%60,2)})}function Ka(a){var b=(a||"").match(ad)||[],c=b[b.length-1]||[],d=(c+"").match(xd)||["-",0,0],e=+(60*d[1])+q(d[2]);return"+"===d[0]?e:-e}function La(b,c){var e,f;return c._isUTC?(e=c.clone(),f=(o(b)||d(b)?+b:+Da(b))-+e,e._d.setTime(+e._d+f),a.updateOffset(e,!1),e):Da(b).local()}function Ma(a){return 15*-Math.round(a._d.getTimezoneOffset()/15)}function Na(b,c){var d,e=this._offset||0;return null!=b?("string"==typeof b&&(b=Ka(b)),Math.abs(b)<16&&(b=60*b),!this._isUTC&&c&&(d=Ma(this)),this._offset=b,this._isUTC=!0,null!=d&&this.add(d,"m"),e!==b&&(!c||this._changeInProgress?bb(this,Ya(b-e,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?e:Ma(this)}function Oa(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Pa(a){return this.utcOffset(0,a)}function Qa(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Ma(this),"m")),this}function Ra(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ka(this._i)),this}function Sa(a){return a=a?Da(a).utcOffset():0,(this.utcOffset()-a)%60===0}function Ta(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ua(){if("undefined"!=typeof this._isDSTShifted)return this._isDSTShifted;var a={};if(m(a,this),a=Aa(a),a._a){var b=a._isUTC?h(a._a):Da(a._a);this._isDSTShifted=this.isValid()&&r(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Va(){return!this._isUTC}function Wa(){return this._isUTC}function Xa(){return this._isUTC&&0===this._offset}function Ya(a,b){var c,d,e,g=a,h=null;return Ia(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(g={},b?g[b]=a:g.milliseconds=a):(h=yd.exec(a))?(c="-"===h[1]?-1:1,g={y:0,d:q(h[hd])*c,h:q(h[id])*c,m:q(h[jd])*c,s:q(h[kd])*c,ms:q(h[ld])*c}):(h=zd.exec(a))?(c="-"===h[1]?-1:1,g={y:Za(h[2],c),M:Za(h[3],c),d:Za(h[4],c),h:Za(h[5],c),m:Za(h[6],c),s:Za(h[7],c),w:Za(h[8],c)}):null==g?g={}:"object"==typeof g&&("from"in g||"to"in g)&&(e=_a(Da(g.from),Da(g.to)),g={},g.ms=e.milliseconds,g.M=e.months),d=new Ha(g),Ia(a)&&f(a,"_locale")&&(d._locale=a._locale),d}function Za(a,b){var c=a&&parseFloat(a.replace(",","."));return(isNaN(c)?0:c)*b}function $a(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function _a(a,b){var c;return b=La(b,a),a.isBefore(b)?c=$a(a,b):(c=$a(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function ab(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(ba(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=Ya(c,d),bb(this,e,a),this}}function bb(b,c,d,e){var f=c._milliseconds,g=c._days,h=c._months;e=null==e?!0:e,f&&b._d.setTime(+b._d+f*d),g&&E(b,"Date",D(b,"Date")+g*d),h&&X(b,D(b,"Month")+h*d),e&&a.updateOffset(b,g||h)}function cb(a,b){var c=a||Da(),d=La(c,this).startOf("day"),e=this.diff(d,"days",!0),f=-6>e?"sameElse":-1>e?"lastWeek":0>e?"lastDay":1>e?"sameDay":2>e?"nextDay":7>e?"nextWeek":"sameElse";return this.format(b&&b[f]||this.localeData().calendar(f,this,Da(c)))}function db(){return new n(this)}function eb(a,b){var c;return b=A("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+this>+a):(c=o(a)?+a:+Da(a),c<+this.clone().startOf(b))}function fb(a,b){var c;return b=A("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+a>+this):(c=o(a)?+a:+Da(a),+this.clone().endOf(b)<c)}function gb(a,b,c){return this.isAfter(a,c)&&this.isBefore(b,c)}function hb(a,b){var c;return b=A(b||"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+this===+a):(c=+Da(a),+this.clone().startOf(b)<=c&&c<=+this.clone().endOf(b))}function ib(a,b,c){var d,e,f=La(a,this),g=6e4*(f.utcOffset()-this.utcOffset());return b=A(b),"year"===b||"month"===b||"quarter"===b?(e=jb(this,f),"quarter"===b?e/=3:"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:p(e)}function jb(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,"months");return 0>b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)}function kb(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function lb(){var a=this.clone().utc();return 0<a.year()&&a.year()<=9999?"function"==typeof Date.prototype.toISOString?this.toDate().toISOString():K(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):K(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function mb(b){var c=K(this,b||a.defaultFormat);return this.localeData().postformat(c)}function nb(a,b){return this.isValid()?Ya({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function ob(a){return this.from(Da(),a)}function pb(a,b){return this.isValid()?Ya({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function qb(a){return this.to(Da(),a)}function rb(a){var b;return void 0===a?this._locale._abbr:(b=y(a),null!=b&&(this._locale=b),this)}function sb(){return this._locale}function tb(a){switch(a=A(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a&&this.weekday(0),"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this}function ub(a){return a=A(a),void 0===a||"millisecond"===a?this:this.startOf(a).add(1,"isoWeek"===a?"week":a).subtract(1,"ms")}function vb(){return+this._d-6e4*(this._offset||0)}function wb(){return Math.floor(+this/1e3)}function xb(){return this._offset?new Date(+this):this._d}function yb(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function zb(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function Ab(){return k(this)}function Bb(){return g({},j(this))}function Cb(){return j(this).overflow}function Db(a,b){H(0,[a,a.length],0,b)}function Eb(a,b,c){return ja(Da([a,11,31+b-c]),b,c).week}function Fb(a){var b=ja(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")}function Gb(a){var b=ja(this,1,4).year;return null==a?b:this.add(a-b,"y")}function Hb(){return Eb(this.year(),1,4)}function Ib(){var a=this.localeData()._week;return Eb(this.year(),a.dow,a.doy)}function Jb(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Kb(a,b){return"string"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),"number"==typeof a?a:null):parseInt(a,10)}function Lb(a){return this._weekdays[a.day()]}function Mb(a){return this._weekdaysShort[a.day()]}function Nb(a){return this._weekdaysMin[a.day()]}function Ob(a){var b,c,d;for(this._weekdaysParse=this._weekdaysParse||[],b=0;7>b;b++)if(this._weekdaysParse[b]||(c=Da([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b}function Pb(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Kb(a,this.localeData()),this.add(a-b,"d")):b}function Qb(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function Rb(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)}function Sb(a,b){H(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Tb(a,b){return b._meridiemParse}function Ub(a){return"p"===(a+"").toLowerCase().charAt(0);
+}function Vb(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function Wb(a,b){b[ld]=q(1e3*("0."+a))}function Xb(){return this._isUTC?"UTC":""}function Yb(){return this._isUTC?"Coordinated Universal Time":""}function Zb(a){return Da(1e3*a)}function $b(){return Da.apply(null,arguments).parseZone()}function _b(a,b,c){var d=this._calendar[a];return"function"==typeof d?d.call(b,c):d}function ac(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a])}function bc(){return this._invalidDate}function cc(a){return this._ordinal.replace("%d",a)}function dc(a){return a}function ec(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)}function fc(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)}function gc(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function hc(a,b,c,d){var e=y(),f=h().set(d,b);return e[c](f,a)}function ic(a,b,c,d,e){if("number"==typeof a&&(b=a,a=void 0),a=a||"",null!=b)return hc(a,b,c,e);var f,g=[];for(f=0;d>f;f++)g[f]=hc(a,f,c,e);return g}function jc(a,b){return ic(a,b,"months",12,"month")}function kc(a,b){return ic(a,b,"monthsShort",12,"month")}function lc(a,b){return ic(a,b,"weekdays",7,"day")}function mc(a,b){return ic(a,b,"weekdaysShort",7,"day")}function nc(a,b){return ic(a,b,"weekdaysMin",7,"day")}function oc(){var a=this._data;return this._milliseconds=Wd(this._milliseconds),this._days=Wd(this._days),this._months=Wd(this._months),a.milliseconds=Wd(a.milliseconds),a.seconds=Wd(a.seconds),a.minutes=Wd(a.minutes),a.hours=Wd(a.hours),a.months=Wd(a.months),a.years=Wd(a.years),this}function pc(a,b,c,d){var e=Ya(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function qc(a,b){return pc(this,a,b,1)}function rc(a,b){return pc(this,a,b,-1)}function sc(a){return 0>a?Math.floor(a):Math.ceil(a)}function tc(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||0>=f&&0>=g&&0>=h||(f+=864e5*sc(vc(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=p(f/1e3),i.seconds=a%60,b=p(a/60),i.minutes=b%60,c=p(b/60),i.hours=c%24,g+=p(c/24),e=p(uc(g)),h+=e,g-=sc(vc(e)),d=p(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function uc(a){return 4800*a/146097}function vc(a){return 146097*a/4800}function wc(a){var b,c,d=this._milliseconds;if(a=A(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+uc(b),"month"===a?c:c/12;switch(b=this._days+Math.round(vc(this._months)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3;case"millisecond":return Math.floor(864e5*b)+d;default:throw new Error("Unknown unit "+a)}}function xc(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*q(this._months/12)}function yc(a){return function(){return this.as(a)}}function zc(a){return a=A(a),this[a+"s"]()}function Ac(a){return function(){return this._data[a]}}function Bc(){return p(this.days()/7)}function Cc(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function Dc(a,b,c){var d=Ya(a).abs(),e=ke(d.as("s")),f=ke(d.as("m")),g=ke(d.as("h")),h=ke(d.as("d")),i=ke(d.as("M")),j=ke(d.as("y")),k=e<le.s&&["s",e]||1===f&&["m"]||f<le.m&&["mm",f]||1===g&&["h"]||g<le.h&&["hh",g]||1===h&&["d"]||h<le.d&&["dd",h]||1===i&&["M"]||i<le.M&&["MM",i]||1===j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,Cc.apply(null,k)}function Ec(a,b){return void 0===le[a]?!1:void 0===b?le[a]:(le[a]=b,!0)}function Fc(a){var b=this.localeData(),c=Dc(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function Gc(){var a,b,c,d=me(this._milliseconds)/1e3,e=me(this._days),f=me(this._months);a=p(d/60),b=p(a/60),d%=60,a%=60,c=p(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(0>m?"-":"")+"P"+(g?g+"Y":"")+(h?h+"M":"")+(i?i+"D":"")+(j||k||l?"T":"")+(j?j+"H":"")+(k?k+"M":"")+(l?l+"S":""):"P0D"}var Hc,Ic,Jc=a.momentProperties=[],Kc=!1,Lc={},Mc={},Nc=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Oc=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Pc={},Qc={},Rc=/\d/,Sc=/\d\d/,Tc=/\d{3}/,Uc=/\d{4}/,Vc=/[+-]?\d{6}/,Wc=/\d\d?/,Xc=/\d{1,3}/,Yc=/\d{1,4}/,Zc=/[+-]?\d{1,6}/,$c=/\d+/,_c=/[+-]?\d+/,ad=/Z|[+-]\d\d:?\d\d/gi,bd=/[+-]?\d+(\.\d{1,3})?/,cd=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,dd={},ed={},fd=0,gd=1,hd=2,id=3,jd=4,kd=5,ld=6;H("M",["MM",2],"Mo",function(){return this.month()+1}),H("MMM",0,0,function(a){return this.localeData().monthsShort(this,a)}),H("MMMM",0,0,function(a){return this.localeData().months(this,a)}),z("month","M"),N("M",Wc),N("MM",Wc,Sc),N("MMM",cd),N("MMMM",cd),Q(["M","MM"],function(a,b){b[gd]=q(a)-1}),Q(["MMM","MMMM"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[gd]=e:j(c).invalidMonth=a});var md="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),nd="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),od={};a.suppressDeprecationWarnings=!1;var pd=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,qd=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],rd=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],sd=/^\/?Date\((\-?\d+)/i;a.createFromInputFallback=aa("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),H(0,["YY",2],0,function(){return this.year()%100}),H(0,["YYYY",4],0,"year"),H(0,["YYYYY",5],0,"year"),H(0,["YYYYYY",6,!0],0,"year"),z("year","y"),N("Y",_c),N("YY",Wc,Sc),N("YYYY",Yc,Uc),N("YYYYY",Zc,Vc),N("YYYYYY",Zc,Vc),Q(["YYYYY","YYYYYY"],fd),Q("YYYY",function(b,c){c[fd]=2===b.length?a.parseTwoDigitYear(b):q(b)}),Q("YY",function(b,c){c[fd]=a.parseTwoDigitYear(b)}),a.parseTwoDigitYear=function(a){return q(a)+(q(a)>68?1900:2e3)};var td=C("FullYear",!1);H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),z("week","w"),z("isoWeek","W"),N("w",Wc),N("ww",Wc,Sc),N("W",Wc),N("WW",Wc,Sc),R(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=q(a)});var ud={dow:0,doy:6};H("DDD",["DDDD",3],"DDDo","dayOfYear"),z("dayOfYear","DDD"),N("DDD",Xc),N("DDDD",Tc),Q(["DDD","DDDD"],function(a,b,c){c._dayOfYear=q(a)}),a.ISO_8601=function(){};var vd=aa("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var a=Da.apply(null,arguments);return this>a?this:a}),wd=aa("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var a=Da.apply(null,arguments);return a>this?this:a});Ja("Z",":"),Ja("ZZ",""),N("Z",ad),N("ZZ",ad),Q(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=Ka(a)});var xd=/([\+\-]|\d\d)/gi;a.updateOffset=function(){};var yd=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,zd=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Ya.fn=Ha.prototype;var Ad=ab(1,"add"),Bd=ab(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var Cd=aa("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)});H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Db("gggg","weekYear"),Db("ggggg","weekYear"),Db("GGGG","isoWeekYear"),Db("GGGGG","isoWeekYear"),z("weekYear","gg"),z("isoWeekYear","GG"),N("G",_c),N("g",_c),N("GG",Wc,Sc),N("gg",Wc,Sc),N("GGGG",Yc,Uc),N("gggg",Yc,Uc),N("GGGGG",Zc,Vc),N("ggggg",Zc,Vc),R(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=q(a)}),R(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),H("Q",0,0,"quarter"),z("quarter","Q"),N("Q",Rc),Q("Q",function(a,b){b[gd]=3*(q(a)-1)}),H("D",["DD",2],"Do","date"),z("date","D"),N("D",Wc),N("DD",Wc,Sc),N("Do",function(a,b){return a?b._ordinalParse:b._ordinalParseLenient}),Q(["D","DD"],hd),Q("Do",function(a,b){b[hd]=q(a.match(Wc)[0],10)});var Dd=C("Date",!0);H("d",0,"do","day"),H("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),H("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),H("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),H("e",0,0,"weekday"),H("E",0,0,"isoWeekday"),z("day","d"),z("weekday","e"),z("isoWeekday","E"),N("d",Wc),N("e",Wc),N("E",Wc),N("dd",cd),N("ddd",cd),N("dddd",cd),R(["dd","ddd","dddd"],function(a,b,c){var d=c._locale.weekdaysParse(a);null!=d?b.d=d:j(c).invalidWeekday=a}),R(["d","e","E"],function(a,b,c,d){b[d]=q(a)});var Ed="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Fd="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Gd="Su_Mo_Tu_We_Th_Fr_Sa".split("_");H("H",["HH",2],0,"hour"),H("h",["hh",2],0,function(){return this.hours()%12||12}),Sb("a",!0),Sb("A",!1),z("hour","h"),N("a",Tb),N("A",Tb),N("H",Wc),N("h",Wc),N("HH",Wc,Sc),N("hh",Wc,Sc),Q(["H","HH"],id),Q(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),Q(["h","hh"],function(a,b,c){b[id]=q(a),j(c).bigHour=!0});var Hd=/[ap]\.?m?\.?/i,Id=C("Hours",!0);H("m",["mm",2],0,"minute"),z("minute","m"),N("m",Wc),N("mm",Wc,Sc),Q(["m","mm"],jd);var Jd=C("Minutes",!1);H("s",["ss",2],0,"second"),z("second","s"),N("s",Wc),N("ss",Wc,Sc),Q(["s","ss"],kd);var Kd=C("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),z("millisecond","ms"),N("S",Xc,Rc),N("SS",Xc,Sc),N("SSS",Xc,Tc);var Ld;for(Ld="SSSS";Ld.length<=9;Ld+="S")N(Ld,$c);for(Ld="S";Ld.length<=9;Ld+="S")Q(Ld,Wb);var Md=C("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var Nd=n.prototype;Nd.add=Ad,Nd.calendar=cb,Nd.clone=db,Nd.diff=ib,Nd.endOf=ub,Nd.format=mb,Nd.from=nb,Nd.fromNow=ob,Nd.to=pb,Nd.toNow=qb,Nd.get=F,Nd.invalidAt=Cb,Nd.isAfter=eb,Nd.isBefore=fb,Nd.isBetween=gb,Nd.isSame=hb,Nd.isValid=Ab,Nd.lang=Cd,Nd.locale=rb,Nd.localeData=sb,Nd.max=wd,Nd.min=vd,Nd.parsingFlags=Bb,Nd.set=F,Nd.startOf=tb,Nd.subtract=Bd,Nd.toArray=yb,Nd.toObject=zb,Nd.toDate=xb,Nd.toISOString=lb,Nd.toJSON=lb,Nd.toString=kb,Nd.unix=wb,Nd.valueOf=vb,Nd.year=td,Nd.isLeapYear=ia,Nd.weekYear=Fb,Nd.isoWeekYear=Gb,Nd.quarter=Nd.quarters=Jb,Nd.month=Y,Nd.daysInMonth=Z,Nd.week=Nd.weeks=na,Nd.isoWeek=Nd.isoWeeks=oa,Nd.weeksInYear=Ib,Nd.isoWeeksInYear=Hb,Nd.date=Dd,Nd.day=Nd.days=Pb,Nd.weekday=Qb,Nd.isoWeekday=Rb,Nd.dayOfYear=qa,Nd.hour=Nd.hours=Id,Nd.minute=Nd.minutes=Jd,Nd.second=Nd.seconds=Kd,Nd.millisecond=Nd.milliseconds=Md,Nd.utcOffset=Na,Nd.utc=Pa,Nd.local=Qa,Nd.parseZone=Ra,Nd.hasAlignedHourOffset=Sa,Nd.isDST=Ta,Nd.isDSTShifted=Ua,Nd.isLocal=Va,Nd.isUtcOffset=Wa,Nd.isUtc=Xa,Nd.isUTC=Xa,Nd.zoneAbbr=Xb,Nd.zoneName=Yb,Nd.dates=aa("dates accessor is deprecated. Use date instead.",Dd),Nd.months=aa("months accessor is deprecated. Use month instead",Y),Nd.years=aa("years accessor is deprecated. Use year instead",td),Nd.zone=aa("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Oa);var Od=Nd,Pd={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Qd={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Rd="Invalid date",Sd="%d",Td=/\d{1,2}/,Ud={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Vd=s.prototype;Vd._calendar=Pd,Vd.calendar=_b,Vd._longDateFormat=Qd,Vd.longDateFormat=ac,Vd._invalidDate=Rd,Vd.invalidDate=bc,Vd._ordinal=Sd,Vd.ordinal=cc,Vd._ordinalParse=Td,Vd.preparse=dc,Vd.postformat=dc,Vd._relativeTime=Ud,Vd.relativeTime=ec,Vd.pastFuture=fc,Vd.set=gc,Vd.months=U,Vd._months=md,Vd.monthsShort=V,Vd._monthsShort=nd,Vd.monthsParse=W,Vd.week=ka,Vd._week=ud,Vd.firstDayOfYear=ma,Vd.firstDayOfWeek=la,Vd.weekdays=Lb,Vd._weekdays=Ed,Vd.weekdaysMin=Nb,Vd._weekdaysMin=Gd,Vd.weekdaysShort=Mb,Vd._weekdaysShort=Fd,Vd.weekdaysParse=Ob,Vd.isPM=Ub,Vd._meridiemParse=Hd,Vd.meridiem=Vb,w("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===q(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.lang=aa("moment.lang is deprecated. Use moment.locale instead.",w),a.langData=aa("moment.langData is deprecated. Use moment.localeData instead.",y);var Wd=Math.abs,Xd=yc("ms"),Yd=yc("s"),Zd=yc("m"),$d=yc("h"),_d=yc("d"),ae=yc("w"),be=yc("M"),ce=yc("y"),de=Ac("milliseconds"),ee=Ac("seconds"),fe=Ac("minutes"),ge=Ac("hours"),he=Ac("days"),ie=Ac("months"),je=Ac("years"),ke=Math.round,le={s:45,m:45,h:22,d:26,M:11},me=Math.abs,ne=Ha.prototype;ne.abs=oc,ne.add=qc,ne.subtract=rc,ne.as=wc,ne.asMilliseconds=Xd,ne.asSeconds=Yd,ne.asMinutes=Zd,ne.asHours=$d,ne.asDays=_d,ne.asWeeks=ae,ne.asMonths=be,ne.asYears=ce,ne.valueOf=xc,ne._bubble=tc,ne.get=zc,ne.milliseconds=de,ne.seconds=ee,ne.minutes=fe,ne.hours=ge,ne.days=he,ne.weeks=Bc,ne.months=ie,ne.years=je,ne.humanize=Fc,ne.toISOString=Gc,ne.toString=Gc,ne.toJSON=Gc,ne.locale=rb,ne.localeData=sb,ne.toIsoString=aa("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Gc),ne.lang=Cd,H("X",0,0,"unix"),H("x",0,0,"valueOf"),N("x",_c),N("X",bd),Q("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),Q("x",function(a,b,c){c._d=new Date(q(a))}),a.version="2.10.6",b(Da),a.fn=Od,a.min=Fa,a.max=Ga,a.utc=h,a.unix=Zb,a.months=jc,a.isDate=d,a.locale=w,a.invalid=l,a.duration=Ya,a.isMoment=o,a.weekdays=lc,a.parseZone=$b,a.localeData=y,a.isDuration=Ia,a.monthsShort=kc,a.weekdaysMin=nc,a.defineLocale=x,a.weekdaysShort=mc,a.normalizeUnits=A,a.relativeTimeThreshold=Ec;var oe=a;return oe}),!function(a){angular.module("ngCsv.config",[]).value("ngCsv.config",{debug:!0}).config(["$compileProvider",function(a){angular.isDefined(a.urlSanitizationWhitelist)?a.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/):a.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/)}]),angular.module("ngCsv.directives",["ngCsv.services"]),angular.module("ngCsv.services",[]),angular.module("ngCsv",["ngCsv.config","ngCsv.services","ngCsv.directives","ngSanitize"]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ngCsv"),angular.module("ngCsv.services").service("CSV",["$q",function(a){var b="\r\n",c="\ufeff",d={"\\t":"        ","\\b":"\b","\\v":"\x0B","\\f":"\f","\\r":"\r"};this.stringifyField=function(a,b){return"locale"===b.decimalSep&&this.isFloat(a)?a.toLocaleString():"."!==b.decimalSep&&this.isFloat(a)?a.toString().replace(".",b.decimalSep):"string"==typeof a?(a=a.replace(/"/g,'""'),(b.quoteStrings||a.indexOf(",")>-1||a.indexOf("\n")>-1||a.indexOf("\r")>-1)&&(a=b.txtDelim+a+b.txtDelim),a):"boolean"==typeof a?a?"TRUE":"FALSE":a},this.isFloat=function(a){return+a===a&&(!isFinite(a)||Boolean(a%1))},this.stringify=function(d,e){var f=a.defer(),g=this,h="",i="",j=a.when(d).then(function(a){if(angular.isDefined(e.header)&&e.header){var d,j;d=[],angular.forEach(e.header,function(a){this.push(g.stringifyField(a,e))},d),j=d.join(e.fieldSep?e.fieldSep:","),i+=j+b}var k=[];if(angular.isArray(a)?k=a:angular.isFunction(a)&&(k=a()),angular.isDefined(e.label)&&e.label&&"boolean"==typeof e.label){var l,m;l=[],angular.forEach(k[0],function(a,b){this.push(g.stringifyField(b,e))},l),m=l.join(e.fieldSep?e.fieldSep:","),i+=m+b}angular.forEach(k,function(a,c){var d,f,h=angular.copy(k[c]);f=[];var j=e.columnOrder?e.columnOrder:h;angular.forEach(j,function(a){var b=e.columnOrder?h[a]:a;this.push(g.stringifyField(b,e))},f),d=f.join(e.fieldSep?e.fieldSep:","),i+=c<k.length?d+b:d}),e.addByteOrderMarker&&(h+=c),h+=i,f.resolve(h)});return"function"==typeof j["catch"]&&j["catch"](function(a){f.reject(a)}),f.promise},this.isSpecialChar=function(a){return void 0!==d[a]},this.getSpecialChar=function(a){return d[a]}}]),angular.module("ngCsv.directives").directive("ngCsv",["$parse","$q","CSV","$document","$timeout",function(b,c,d,e,f){return{restrict:"AC",scope:{data:"&ngCsv",filename:"@filename",header:"&csvHeader",columnOrder:"&csvColumnOrder",txtDelim:"@textDelimiter",decimalSep:"@decimalSeparator",quoteStrings:"@quoteStrings",fieldSep:"@fieldSeparator",lazyLoad:"@lazyLoad",addByteOrderMarker:"@addBom",ngClick:"&",charset:"@charset",label:"&csvLabel"},controller:["$scope","$element","$attrs","$transclude",function(a,b,e){function f(){var b={txtDelim:a.txtDelim?a.txtDelim:'"',decimalSep:a.decimalSep?a.decimalSep:".",quoteStrings:a.quoteStrings,addByteOrderMarker:a.addByteOrderMarker};return angular.isDefined(e.csvHeader)&&(b.header=a.$eval(a.header)),angular.isDefined(e.csvColumnOrder)&&(b.columnOrder=a.$eval(a.columnOrder)),angular.isDefined(e.csvLabel)&&(b.label=a.$eval(a.label)),b.fieldSep=a.fieldSep?a.fieldSep:",",b.fieldSep=d.isSpecialChar(b.fieldSep)?d.getSpecialChar(b.fieldSep):b.fieldSep,b}a.csv="",angular.isDefined(a.lazyLoad)&&"true"==a.lazyLoad||angular.isArray(a.data)&&a.$watch("data",function(){a.buildCSV()},!0),a.getFilename=function(){return a.filename||"download.csv"},a.buildCSV=function(){var g=c.defer();return b.addClass(e.ngCsvLoadingClass||"ng-csv-loading"),d.stringify(a.data(),f()).then(function(c){a.csv=c,b.removeClass(e.ngCsvLoadingClass||"ng-csv-loading"),g.resolve(c)}),a.$apply(),g.promise}}],link:function(b,c){function d(){var c=b.charset||"utf-8",d=new Blob([b.csv],{type:"text/csv;charset="+c+";"});if(a.navigator.msSaveOrOpenBlob)navigator.msSaveBlob(d,b.getFilename());else{var g=angular.element('<div data-tap-disabled="true"><a></a></div>'),h=angular.element(g.children()[0]);h.attr("href",a.URL.createObjectURL(d)),h.attr("download",b.getFilename()),h.attr("target","_blank"),e.find("body").append(g),f(function(){h[0].click(),h.remove()},null)}}c.bind("click",function(){b.buildCSV().then(function(){d()}),b.$apply()})}}}])}(window,document),function(angular){"use strict";if(!angular)throw"Missing something? Please add angular.js to your project or move this script below the angular.js reference";var directiveId="ngRemoteValidate",remoteValidate=function($http,$timeout,$q){return{restrict:"A",require:["^form","ngModel"],scope:{ngRemoteInterceptors:"=?"},link:function(scope,el,attrs,ctrls){var cache={},handleChange,setValidation,addToCache,request,shouldProcess,ngForm=ctrls[0],ngModel=ctrls[1],options={ngRemoteThrottle:400,ngRemoteMethod:"POST"};angular.extend(options,attrs),"["===options.ngRemoteValidate.charAt(0)?options.urls=eval(options.ngRemoteValidate):"{"===options.ngRemoteValidate.charAt(0)?(options.keys=eval("("+options.ngRemoteValidate+")"),options.urls=Object.keys(options.keys)):options.urls=[options.ngRemoteValidate],addToCache=function(a){var b=a[0].data.value;return cache[b]?cache[b]:void(cache[b]=a)},shouldProcess=function(a){var b=!1;for(var c in ngModel.$error){var d=!options.hasOwnProperty("keys")||!Object.keys(options.keys).filter(function(a){return options.keys[a]===c})[0];if(ngModel.$error[c]&&c!=directiveId&&d){b=!0;break}}return!(ngModel.$pristine||b)},setValidation=function(a,b){for(var c=0,d=a.length,e=options.hasOwnProperty("keys"),f=!0;d>c&&(scope.ngRemoteInterceptors&&scope.ngRemoteInterceptors.response&&(a[c]=scope.ngRemoteInterceptors.response(a[c])),a[c].data.isValid||(f=!1,e));c++){var g=e&&a[c].hasOwnProperty("config")&&options.keys[a[c].config.url];if(g){var h=options.keys[a[c].config.url];ngModel.$setValidity(h,a[c].data.isValid)}}b||addToCache(a),ngModel.$setValidity(directiveId,f),ngModel.$processing=ngModel.$pending=ngForm.$pending=!1},handleChange=function(a){return"undefined"==typeof a||""===a?void ngModel.$setPristine():shouldProcess(a)?cache[a]?setValidation(cache[a],!0):(ngModel.$pending||(ngModel.$processing=ngModel.$pending=ngForm.$pending=!0),request&&$timeout.cancel(request),request=$timeout(function(){var b=[],c=0,d=options.urls.length,e={value:a},f={method:options.ngRemoteMethod};for(scope[el[0].name+"SetArgs"]&&(e=scope[el[0].name+"SetArgs"](a,el,attrs,ngModel)),"POST"==options.ngRemoteMethod?f.data=e:f.params=e;d>c;c++)f.url=options.urls[c],scope.ngRemoteInterceptors&&scope.ngRemoteInterceptors.request&&(f=scope.ngRemoteInterceptors.request(f)),b.push($http(f));$q.all(b).then(setValidation)},options.ngRemoteThrottle),!0):setValidation([{data:{isValid:!0,value:a}}],!0)},scope.$watch(function(){return ngModel.$viewValue},handleChange)}}};angular.module("remoteValidation",[]).constant("MODULE_VERSION","0.6.1").directive(directiveId,["$http","$timeout","$q",remoteValidate])}(this.angular),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}),function(a){"undefined"!=typeof module&&module.exports?module.exports=a:a(jQuery,window,document)}(function(a){!function(b){var c="function"==typeof define&&define.amd,d="undefined"!=typeof module&&module.exports,e="https:"==document.location.protocol?"https:":"http:",f="cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js";c||(d?require("jquery-mousewheel")(a):a.event.special.mousewheel||a("head").append(decodeURI("%3Cscript src="+e+"//"+f+"%3E%3C/script%3E"))),b()}(function(){var b,c="mCustomScrollbar",d="mCS",e=".mCustomScrollbar",f={setTop:0,setLeft:0,axis:"y",scrollbarPosition:"inside",scrollInertia:950,autoDraggerLength:!0,alwaysShowScrollbar:0,snapOffset:0,mouseWheel:{enable:!0,scrollAmount:"auto",axis:"y",deltaFactor:"auto",disableOver:["select","option","keygen","datalist","textarea"]},scrollButtons:{scrollType:"stepless",scrollAmount:"auto"},keyboard:{enable:!0,scrollType:"stepless",scrollAmount:"auto"},contentTouchScroll:25,documentTouchScroll:!0,advanced:{autoScrollOnFocus:"input,textarea,select,button,datalist,keygen,a[tabindex],area,object,[contenteditable='true']",updateOnContentResize:!0,updateOnImageLoad:"auto",autoUpdateTimeout:60},theme:"light",callbacks:{onTotalScrollOffset:0,onTotalScrollBackOffset:0,alwaysTriggerOffsets:!0}},g=0,h={},i=window.attachEvent&&!window.addEventListener?1:0,j=!1,k=["mCSB_dragger_onDrag","mCSB_scrollTools_onDrag","mCS_img_loaded","mCS_disabled","mCS_destroyed","mCS_no_scrollbar","mCS-autoHide","mCS-dir-rtl","mCS_no_scrollbar_y","mCS_no_scrollbar_x","mCS_y_hidden","mCS_x_hidden","mCSB_draggerContainer","mCSB_buttonUp","mCSB_buttonDown","mCSB_buttonLeft","mCSB_buttonRight"],l={init:function(b){var b=a.extend(!0,{},f,b),c=m.call(this);if(b.live){var i=b.liveSelector||this.selector||e,j=a(i);if("off"===b.live)return void o(i);h[i]=setTimeout(function(){j.mCustomScrollbar(b),"once"===b.live&&j.length&&o(i)},500)}else o(i);return b.setWidth=b.set_width?b.set_width:b.setWidth,b.setHeight=b.set_height?b.set_height:b.setHeight,b.axis=b.horizontalScroll?"x":p(b.axis),b.scrollInertia=b.scrollInertia>0&&b.scrollInertia<17?17:b.scrollInertia,"object"!=typeof b.mouseWheel&&1==b.mouseWheel&&(b.mouseWheel={enable:!0,scrollAmount:"auto",axis:"y",preventDefault:!1,deltaFactor:"auto",normalizeDelta:!1,invert:!1}),b.mouseWheel.scrollAmount=b.mouseWheelPixels?b.mouseWheelPixels:b.mouseWheel.scrollAmount,b.mouseWheel.normalizeDelta=b.advanced.normalizeMouseWheelDelta?b.advanced.normalizeMouseWheelDelta:b.mouseWheel.normalizeDelta,b.scrollButtons.scrollType=q(b.scrollButtons.scrollType),n(b),a(c).each(function(){var c=a(this);if(!c.data(d)){c.data(d,{idx:++g,opt:b,scrollRatio:{y:null,x:null},overflowed:null,contentReset:{y:null,x:null},bindEvents:!1,tweenRunning:!1,sequential:{},langDir:c.css("direction"),cbOffsets:null,trigger:null,poll:{size:{o:0,n:0},img:{o:0,n:0},change:{o:0,n:0}}});var e=c.data(d),f=e.opt,h=c.data("mcs-axis"),i=c.data("mcs-scrollbar-position"),j=c.data("mcs-theme");h&&(f.axis=h),i&&(f.scrollbarPosition=i),j&&(f.theme=j,n(f)),r.call(this),e&&f.callbacks.onCreate&&"function"==typeof f.callbacks.onCreate&&f.callbacks.onCreate.call(this),a("#mCSB_"+e.idx+"_container img:not(."+k[2]+")").addClass(k[2]),l.update.call(null,c)}})},update:function(b,c){var e=b||m.call(this);return a(e).each(function(){var b=a(this);if(b.data(d)){var e=b.data(d),f=e.opt,g=a("#mCSB_"+e.idx+"_container"),h=a("#mCSB_"+e.idx),i=[a("#mCSB_"+e.idx+"_dragger_vertical"),a("#mCSB_"+e.idx+"_dragger_horizontal")];if(!g.length)return;e.tweenRunning&&U(b),c&&e&&f.callbacks.onBeforeUpdate&&"function"==typeof f.callbacks.onBeforeUpdate&&f.callbacks.onBeforeUpdate.call(this),b.hasClass(k[3])&&b.removeClass(k[3]),b.hasClass(k[4])&&b.removeClass(k[4]),h.css("max-height","none"),h.height()!==b.height()&&h.css("max-height",b.height()),t.call(this),"y"===f.axis||f.advanced.autoExpandHorizontalScroll||g.css("width",s(g)),e.overflowed=y.call(this),C.call(this),f.autoDraggerLength&&v.call(this),w.call(this),A.call(this);var j=[Math.abs(g[0].offsetTop),Math.abs(g[0].offsetLeft)];"x"!==f.axis&&(e.overflowed[0]?i[0].height()>i[0].parent().height()?z.call(this):(V(b,j[0].toString(),{dir:"y",dur:0,overwrite:"none"}),e.contentReset.y=null):(z.call(this),"y"===f.axis?B.call(this):"yx"===f.axis&&e.overflowed[1]&&V(b,j[1].toString(),{dir:"x",dur:0,overwrite:"none"}))),"y"!==f.axis&&(e.overflowed[1]?i[1].width()>i[1].parent().width()?z.call(this):(V(b,j[1].toString(),{dir:"x",dur:0,overwrite:"none"}),e.contentReset.x=null):(z.call(this),"x"===f.axis?B.call(this):"yx"===f.axis&&e.overflowed[0]&&V(b,j[0].toString(),{dir:"y",dur:0,overwrite:"none"}))),c&&e&&(2===c&&f.callbacks.onImageLoad&&"function"==typeof f.callbacks.onImageLoad?f.callbacks.onImageLoad.call(this):3===c&&f.callbacks.onSelectorChange&&"function"==typeof f.callbacks.onSelectorChange?f.callbacks.onSelectorChange.call(this):f.callbacks.onUpdate&&"function"==typeof f.callbacks.onUpdate&&f.callbacks.onUpdate.call(this)),S.call(this)}})},scrollTo:function(b,c){if("undefined"!=typeof b&&null!=b){var e=m.call(this);return a(e).each(function(){var e=a(this);if(e.data(d)){var f=e.data(d),g=f.opt,h={trigger:"external",scrollInertia:g.scrollInertia,scrollEasing:"mcsEaseInOut",moveDragger:!1,timeout:60,callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},i=a.extend(!0,{},h,c),j=Q.call(this,b),k=i.scrollInertia>0&&i.scrollInertia<17?17:i.scrollInertia;j[0]=R.call(this,j[0],"y"),j[1]=R.call(this,j[1],"x"),i.moveDragger&&(j[0]*=f.scrollRatio.y,j[1]*=f.scrollRatio.x),i.dur=ca()?0:k,setTimeout(function(){null!==j[0]&&"undefined"!=typeof j[0]&&"x"!==g.axis&&f.overflowed[0]&&(i.dir="y",i.overwrite="all",V(e,j[0].toString(),i)),null!==j[1]&&"undefined"!=typeof j[1]&&"y"!==g.axis&&f.overflowed[1]&&(i.dir="x",i.overwrite="none",V(e,j[1].toString(),i))},i.timeout)}})}},stop:function(){var b=m.call(this);return a(b).each(function(){var b=a(this);b.data(d)&&U(b)})},disable:function(b){var c=m.call(this);return a(c).each(function(){var c=a(this);if(c.data(d)){c.data(d);S.call(this,"remove"),B.call(this),b&&z.call(this),C.call(this,!0),c.addClass(k[3])}})},destroy:function(){var b=m.call(this);return a(b).each(function(){var e=a(this);if(e.data(d)){var f=e.data(d),g=f.opt,h=a("#mCSB_"+f.idx),i=a("#mCSB_"+f.idx+"_container"),j=a(".mCSB_"+f.idx+"_scrollbar");g.live&&o(g.liveSelector||a(b).selector),S.call(this,"remove"),B.call(this),z.call(this),e.removeData(d),Z(this,"mcs"),j.remove(),i.find("img."+k[2]).removeClass(k[2]),h.replaceWith(i.contents()),e.removeClass(c+" _"+d+"_"+f.idx+" "+k[6]+" "+k[7]+" "+k[5]+" "+k[3]).addClass(k[4])}})}},m=function(){return"object"!=typeof a(this)||a(this).length<1?e:this},n=function(b){var c=["rounded","rounded-dark","rounded-dots","rounded-dots-dark"],d=["rounded-dots","rounded-dots-dark","3d","3d-dark","3d-thick","3d-thick-dark","inset","inset-dark","inset-2","inset-2-dark","inset-3","inset-3-dark"],e=["minimal","minimal-dark"],f=["minimal","minimal-dark"],g=["minimal","minimal-dark"];b.autoDraggerLength=a.inArray(b.theme,c)>-1?!1:b.autoDraggerLength,b.autoExpandScrollbar=a.inArray(b.theme,d)>-1?!1:b.autoExpandScrollbar,b.scrollButtons.enable=a.inArray(b.theme,e)>-1?!1:b.scrollButtons.enable,b.autoHideScrollbar=a.inArray(b.theme,f)>-1?!0:b.autoHideScrollbar,b.scrollbarPosition=a.inArray(b.theme,g)>-1?"outside":b.scrollbarPosition},o=function(a){h[a]&&(clearTimeout(h[a]),Z(h,a))},p=function(a){return"yx"===a||"xy"===a||"auto"===a?"yx":"x"===a||"horizontal"===a?"x":"y"},q=function(a){return"stepped"===a||"pixels"===a||"step"===a||"click"===a?"stepped":"stepless"},r=function(){var b=a(this),e=b.data(d),f=e.opt,g=f.autoExpandScrollbar?" "+k[1]+"_expand":"",h=["<div id='mCSB_"+e.idx+"_scrollbar_vertical' class='mCSB_scrollTools mCSB_"+e.idx+"_scrollbar mCS-"+f.theme+" mCSB_scrollTools_vertical"+g+"'><div class='"+k[12]+"'><div id='mCSB_"+e.idx+"_dragger_vertical' class='mCSB_dragger' style='position:absolute;' oncontextmenu='return false;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>","<div id='mCSB_"+e.idx+"_scrollbar_horizontal' class='mCSB_scrollTools mCSB_"+e.idx+"_scrollbar mCS-"+f.theme+" mCSB_scrollTools_horizontal"+g+"'><div class='"+k[12]+"'><div id='mCSB_"+e.idx+"_dragger_horizontal' class='mCSB_dragger' style='position:absolute;' oncontextmenu='return false;'><div class='mCSB_dragger_bar' /></div><div class='mCSB_draggerRail' /></div></div>"],i="yx"===f.axis?"mCSB_vertical_horizontal":"x"===f.axis?"mCSB_horizontal":"mCSB_vertical",j="yx"===f.axis?h[0]+h[1]:"x"===f.axis?h[1]:h[0],l="yx"===f.axis?"<div id='mCSB_"+e.idx+"_container_wrapper' class='mCSB_container_wrapper' />":"",m=f.autoHideScrollbar?" "+k[6]:"",n="x"!==f.axis&&"rtl"===e.langDir?" "+k[7]:"";
+f.setWidth&&b.css("width",f.setWidth),f.setHeight&&b.css("height",f.setHeight),f.setLeft="y"!==f.axis&&"rtl"===e.langDir?"989999px":f.setLeft,b.addClass(c+" _"+d+"_"+e.idx+m+n).wrapInner("<div id='mCSB_"+e.idx+"' class='mCustomScrollBox mCS-"+f.theme+" "+i+"'><div id='mCSB_"+e.idx+"_container' class='mCSB_container' style='position:relative; top:"+f.setTop+"; left:"+f.setLeft+";' dir="+e.langDir+" /></div>");var o=a("#mCSB_"+e.idx),p=a("#mCSB_"+e.idx+"_container");"y"===f.axis||f.advanced.autoExpandHorizontalScroll||p.css("width",s(p)),"outside"===f.scrollbarPosition?("static"===b.css("position")&&b.css("position","relative"),b.css("overflow","visible"),o.addClass("mCSB_outside").after(j)):(o.addClass("mCSB_inside").append(j),p.wrap(l)),u.call(this);var q=[a("#mCSB_"+e.idx+"_dragger_vertical"),a("#mCSB_"+e.idx+"_dragger_horizontal")];q[0].css("min-height",q[0].height()),q[1].css("min-width",q[1].width())},s=function(b){var c=[b[0].scrollWidth,Math.max.apply(Math,b.children().map(function(){return a(this).outerWidth(!0)}).get())],d=b.parent().width();return c[0]>d?c[0]:c[1]>d?c[1]:"100%"},t=function(){var b=a(this),c=b.data(d),e=c.opt,f=a("#mCSB_"+c.idx+"_container");if(e.advanced.autoExpandHorizontalScroll&&"y"!==e.axis){f.css({width:"auto","min-width":0,"overflow-x":"scroll"});var g=Math.ceil(f[0].scrollWidth);3===e.advanced.autoExpandHorizontalScroll||2!==e.advanced.autoExpandHorizontalScroll&&g>f.parent().width()?f.css({width:g,"min-width":"100%","overflow-x":"inherit"}):f.css({"overflow-x":"inherit",position:"absolute"}).wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />").css({width:Math.ceil(f[0].getBoundingClientRect().right+.4)-Math.floor(f[0].getBoundingClientRect().left),"min-width":"100%",position:"relative"}).unwrap()}},u=function(){var b=a(this),c=b.data(d),e=c.opt,f=a(".mCSB_"+c.idx+"_scrollbar:first"),g=aa(e.scrollButtons.tabindex)?"tabindex='"+e.scrollButtons.tabindex+"'":"",h=["<a href='#' class='"+k[13]+"' oncontextmenu='return false;' "+g+" />","<a href='#' class='"+k[14]+"' oncontextmenu='return false;' "+g+" />","<a href='#' class='"+k[15]+"' oncontextmenu='return false;' "+g+" />","<a href='#' class='"+k[16]+"' oncontextmenu='return false;' "+g+" />"],i=["x"===e.axis?h[2]:h[0],"x"===e.axis?h[3]:h[1],h[2],h[3]];e.scrollButtons.enable&&f.prepend(i[0]).append(i[1]).next(".mCSB_scrollTools").prepend(i[2]).append(i[3])},v=function(){var b=a(this),c=b.data(d),e=a("#mCSB_"+c.idx),f=a("#mCSB_"+c.idx+"_container"),g=[a("#mCSB_"+c.idx+"_dragger_vertical"),a("#mCSB_"+c.idx+"_dragger_horizontal")],h=[e.height()/f.outerHeight(!1),e.width()/f.outerWidth(!1)],j=[parseInt(g[0].css("min-height")),Math.round(h[0]*g[0].parent().height()),parseInt(g[1].css("min-width")),Math.round(h[1]*g[1].parent().width())],k=i&&j[1]<j[0]?j[0]:j[1],l=i&&j[3]<j[2]?j[2]:j[3];g[0].css({height:k,"max-height":g[0].parent().height()-10}).find(".mCSB_dragger_bar").css({"line-height":j[0]+"px"}),g[1].css({width:l,"max-width":g[1].parent().width()-10})},w=function(){var b=a(this),c=b.data(d),e=a("#mCSB_"+c.idx),f=a("#mCSB_"+c.idx+"_container"),g=[a("#mCSB_"+c.idx+"_dragger_vertical"),a("#mCSB_"+c.idx+"_dragger_horizontal")],h=[f.outerHeight(!1)-e.height(),f.outerWidth(!1)-e.width()],i=[h[0]/(g[0].parent().height()-g[0].height()),h[1]/(g[1].parent().width()-g[1].width())];c.scrollRatio={y:i[0],x:i[1]}},x=function(a,b,c){var d=c?k[0]+"_expanded":"",e=a.closest(".mCSB_scrollTools");"active"===b?(a.toggleClass(k[0]+" "+d),e.toggleClass(k[1]),a[0]._draggable=a[0]._draggable?0:1):a[0]._draggable||("hide"===b?(a.removeClass(k[0]),e.removeClass(k[1])):(a.addClass(k[0]),e.addClass(k[1])))},y=function(){var b=a(this),c=b.data(d),e=a("#mCSB_"+c.idx),f=a("#mCSB_"+c.idx+"_container"),g=null==c.overflowed?f.height():f.outerHeight(!1),h=null==c.overflowed?f.width():f.outerWidth(!1),i=f[0].scrollHeight,j=f[0].scrollWidth;return i>g&&(g=i),j>h&&(h=j),[g>e.height(),h>e.width()]},z=function(){var b=a(this),c=b.data(d),e=c.opt,f=a("#mCSB_"+c.idx),g=a("#mCSB_"+c.idx+"_container"),h=[a("#mCSB_"+c.idx+"_dragger_vertical"),a("#mCSB_"+c.idx+"_dragger_horizontal")];if(U(b),("x"!==e.axis&&!c.overflowed[0]||"y"===e.axis&&c.overflowed[0])&&(h[0].add(g).css("top",0),V(b,"_resetY")),"y"!==e.axis&&!c.overflowed[1]||"x"===e.axis&&c.overflowed[1]){var i=dx=0;"rtl"===c.langDir&&(i=f.width()-g.outerWidth(!1),dx=Math.abs(i/c.scrollRatio.x)),g.css("left",i),h[1].css("left",dx),V(b,"_resetX")}},A=function(){function b(){g=setTimeout(function(){a.event.special.mousewheel?(clearTimeout(g),H.call(c[0])):b()},100)}var c=a(this),e=c.data(d),f=e.opt;if(!e.bindEvents){if(E.call(this),f.contentTouchScroll&&F.call(this),G.call(this),f.mouseWheel.enable){var g;b()}K.call(this),M.call(this),f.advanced.autoScrollOnFocus&&L.call(this),f.scrollButtons.enable&&N.call(this),f.keyboard.enable&&O.call(this),e.bindEvents=!0}},B=function(){var b=a(this),c=b.data(d),e=c.opt,f=d+"_"+c.idx,g=".mCSB_"+c.idx+"_scrollbar",h=a("#mCSB_"+c.idx+",#mCSB_"+c.idx+"_container,#mCSB_"+c.idx+"_container_wrapper,"+g+" ."+k[12]+",#mCSB_"+c.idx+"_dragger_vertical,#mCSB_"+c.idx+"_dragger_horizontal,"+g+">a"),i=a("#mCSB_"+c.idx+"_container");e.advanced.releaseDraggableSelectors&&h.add(a(e.advanced.releaseDraggableSelectors)),e.advanced.extraDraggableSelectors&&h.add(a(e.advanced.extraDraggableSelectors)),c.bindEvents&&(a(document).add(a(!I()||top.document)).unbind("."+f),h.each(function(){a(this).unbind("."+f)}),clearTimeout(b[0]._focusTimeout),Z(b[0],"_focusTimeout"),clearTimeout(c.sequential.step),Z(c.sequential,"step"),clearTimeout(i[0].onCompleteTimeout),Z(i[0],"onCompleteTimeout"),c.bindEvents=!1)},C=function(b){var c=a(this),e=c.data(d),f=e.opt,g=a("#mCSB_"+e.idx+"_container_wrapper"),h=g.length?g:a("#mCSB_"+e.idx+"_container"),i=[a("#mCSB_"+e.idx+"_scrollbar_vertical"),a("#mCSB_"+e.idx+"_scrollbar_horizontal")],j=[i[0].find(".mCSB_dragger"),i[1].find(".mCSB_dragger")];"x"!==f.axis&&(e.overflowed[0]&&!b?(i[0].add(j[0]).add(i[0].children("a")).css("display","block"),h.removeClass(k[8]+" "+k[10])):(f.alwaysShowScrollbar?(2!==f.alwaysShowScrollbar&&j[0].css("display","none"),h.removeClass(k[10])):(i[0].css("display","none"),h.addClass(k[10])),h.addClass(k[8]))),"y"!==f.axis&&(e.overflowed[1]&&!b?(i[1].add(j[1]).add(i[1].children("a")).css("display","block"),h.removeClass(k[9]+" "+k[11])):(f.alwaysShowScrollbar?(2!==f.alwaysShowScrollbar&&j[1].css("display","none"),h.removeClass(k[11])):(i[1].css("display","none"),h.addClass(k[11])),h.addClass(k[9]))),e.overflowed[0]||e.overflowed[1]?c.removeClass(k[5]):c.addClass(k[5])},D=function(b){var c=b.type,d=b.target.ownerDocument!==document?[a(frameElement).offset().top,a(frameElement).offset().left]:null,e=I()&&b.target.ownerDocument!==top.document?[a(b.view.frameElement).offset().top,a(b.view.frameElement).offset().left]:[0,0];switch(c){case"pointerdown":case"MSPointerDown":case"pointermove":case"MSPointerMove":case"pointerup":case"MSPointerUp":return d?[b.originalEvent.pageY-d[0]+e[0],b.originalEvent.pageX-d[1]+e[1],!1]:[b.originalEvent.pageY,b.originalEvent.pageX,!1];case"touchstart":case"touchmove":case"touchend":var f=b.originalEvent.touches[0]||b.originalEvent.changedTouches[0],g=b.originalEvent.touches.length||b.originalEvent.changedTouches.length;return b.target.ownerDocument!==document?[f.screenY,f.screenX,g>1]:[f.pageY,f.pageX,g>1];default:return d?[b.pageY-d[0]+e[0],b.pageX-d[1]+e[1],!1]:[b.pageY,b.pageX,!1]}},E=function(){function b(a){var b=o.find("iframe");if(b.length){var c=a?"auto":"none";b.css("pointer-events",c)}}function c(a,b,c,d){if(o[0].idleTimer=l.scrollInertia<233?250:0,e.attr("id")===n[1])var f="x",g=(e[0].offsetLeft-b+d)*k.scrollRatio.x;else var f="y",g=(e[0].offsetTop-a+c)*k.scrollRatio.y;V(h,g.toString(),{dir:f,drag:!0})}var e,f,g,h=a(this),k=h.data(d),l=k.opt,m=d+"_"+k.idx,n=["mCSB_"+k.idx+"_dragger_vertical","mCSB_"+k.idx+"_dragger_horizontal"],o=a("#mCSB_"+k.idx+"_container"),p=a("#"+n[0]+",#"+n[1]),q=l.advanced.releaseDraggableSelectors?p.add(a(l.advanced.releaseDraggableSelectors)):p,r=l.advanced.extraDraggableSelectors?a(!I()||top.document).add(a(l.advanced.extraDraggableSelectors)):a(!I()||top.document);p.bind("mousedown."+m+" touchstart."+m+" pointerdown."+m+" MSPointerDown."+m,function(c){if(c.stopImmediatePropagation(),c.preventDefault(),$(c)){j=!0,i&&(document.onselectstart=function(){return!1}),b(!1),U(h),e=a(this);var d=e.offset(),k=D(c)[0]-d.top,m=D(c)[1]-d.left,n=e.height()+d.top,o=e.width()+d.left;n>k&&k>0&&o>m&&m>0&&(f=k,g=m),x(e,"active",l.autoExpandScrollbar)}}).bind("touchmove."+m,function(a){a.stopImmediatePropagation(),a.preventDefault();var b=e.offset(),d=D(a)[0]-b.top,h=D(a)[1]-b.left;c(f,g,d,h)}),a(document).add(r).bind("mousemove."+m+" pointermove."+m+" MSPointerMove."+m,function(a){if(e){var b=e.offset(),d=D(a)[0]-b.top,h=D(a)[1]-b.left;if(f===d&&g===h)return;c(f,g,d,h)}}).add(q).bind("mouseup."+m+" touchend."+m+" pointerup."+m+" MSPointerUp."+m,function(a){e&&(x(e,"active",l.autoExpandScrollbar),e=null),j=!1,i&&(document.onselectstart=null),b(!0)})},F=function(){function c(a){if(!_(a)||j||D(a)[2])return void(b=0);b=1,w=0,x=0,k=1,y.removeClass("mCS_touch_action");var c=E.offset();l=D(a)[0]-c.top,m=D(a)[1]-c.left,L=[D(a)[0],D(a)[1]]}function e(a){if(_(a)&&!j&&!D(a)[2]&&(A.documentTouchScroll||a.preventDefault(),a.stopImmediatePropagation(),(!x||w)&&k)){q=X();var b=C.offset(),c=D(a)[0]-b.top,d=D(a)[1]-b.left,e="mcsLinearOut";if(G.push(c),H.push(d),L[2]=Math.abs(D(a)[0]-L[0]),L[3]=Math.abs(D(a)[1]-L[1]),z.overflowed[0])var f=F[0].parent().height()-F[0].height(),g=l-c>0&&c-l>-(f*z.scrollRatio.y)&&(2*L[3]<L[2]||"yx"===A.axis);if(z.overflowed[1])var h=F[1].parent().width()-F[1].width(),n=m-d>0&&d-m>-(h*z.scrollRatio.x)&&(2*L[2]<L[3]||"yx"===A.axis);g||n?(O||a.preventDefault(),w=1):(x=1,y.addClass("mCS_touch_action")),O&&a.preventDefault(),u="yx"===A.axis?[l-c,m-d]:"x"===A.axis?[null,m-d]:[l-c,null],E[0].idleTimer=250,z.overflowed[0]&&i(u[0],J,e,"y","all",!0),z.overflowed[1]&&i(u[1],J,e,"x",K,!0)}}function f(a){if(!_(a)||j||D(a)[2])return void(b=0);b=1,a.stopImmediatePropagation(),U(y),p=X();var c=C.offset();n=D(a)[0]-c.top,o=D(a)[1]-c.left,G=[],H=[]}function g(a){if(_(a)&&!j&&!D(a)[2]){k=0,a.stopImmediatePropagation(),w=0,x=0,r=X();var b=C.offset(),c=D(a)[0]-b.top,d=D(a)[1]-b.left;if(!(r-q>30)){t=1e3/(r-p);var e="mcsEaseOut",f=2.5>t,g=f?[G[G.length-2],H[H.length-2]]:[0,0];s=f?[c-g[0],d-g[1]]:[c-n,d-o];var l=[Math.abs(s[0]),Math.abs(s[1])];t=f?[Math.abs(s[0]/4),Math.abs(s[1]/4)]:[t,t];var m=[Math.abs(E[0].offsetTop)-s[0]*h(l[0]/t[0],t[0]),Math.abs(E[0].offsetLeft)-s[1]*h(l[1]/t[1],t[1])];u="yx"===A.axis?[m[0],m[1]]:"x"===A.axis?[null,m[1]]:[m[0],null],v=[4*l[0]+A.scrollInertia,4*l[1]+A.scrollInertia];var y=parseInt(A.contentTouchScroll)||0;u[0]=l[0]>y?u[0]:0,u[1]=l[1]>y?u[1]:0,z.overflowed[0]&&i(u[0],v[0],e,"y",K,!1),z.overflowed[1]&&i(u[1],v[1],e,"x",K,!1)}}}function h(a,b){var c=[1.5*b,2*b,b/1.5,b/2];return a>90?b>4?c[0]:c[3]:a>60?b>3?c[3]:c[2]:a>30?b>8?c[1]:b>6?c[0]:b>4?b:c[2]:b>8?b:c[3]}function i(a,b,c,d,e,f){a&&V(y,a.toString(),{dur:b,scrollEasing:c,dir:d,overwrite:e,drag:f})}var k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=a(this),z=y.data(d),A=z.opt,B=d+"_"+z.idx,C=a("#mCSB_"+z.idx),E=a("#mCSB_"+z.idx+"_container"),F=[a("#mCSB_"+z.idx+"_dragger_vertical"),a("#mCSB_"+z.idx+"_dragger_horizontal")],G=[],H=[],J=0,K="yx"===A.axis?"none":"all",L=[],M=E.find("iframe"),N=["touchstart."+B+" pointerdown."+B+" MSPointerDown."+B,"touchmove."+B+" pointermove."+B+" MSPointerMove."+B,"touchend."+B+" pointerup."+B+" MSPointerUp."+B],O=void 0!==document.body.style.touchAction;E.bind(N[0],function(a){c(a)}).bind(N[1],function(a){e(a)}),C.bind(N[0],function(a){f(a)}).bind(N[2],function(a){g(a)}),M.length&&M.each(function(){a(this).load(function(){I(this)&&a(this.contentDocument||this.contentWindow.document).bind(N[0],function(a){c(a),f(a)}).bind(N[1],function(a){e(a)}).bind(N[2],function(a){g(a)})})})},G=function(){function c(){return window.getSelection?window.getSelection().toString():document.selection&&"Control"!=document.selection.type?document.selection.createRange().text:0}function e(a,b,c){k.type=c&&f?"stepped":"stepless",k.scrollAmount=10,P(g,a,b,"mcsLinearOut",c?60:null)}var f,g=a(this),h=g.data(d),i=h.opt,k=h.sequential,l=d+"_"+h.idx,m=a("#mCSB_"+h.idx+"_container"),n=m.parent();m.bind("mousedown."+l,function(a){b||f||(f=1,j=!0)}).add(document).bind("mousemove."+l,function(a){if(!b&&f&&c()){var d=m.offset(),g=D(a)[0]-d.top+m[0].offsetTop,j=D(a)[1]-d.left+m[0].offsetLeft;g>0&&g<n.height()&&j>0&&j<n.width()?k.step&&e("off",null,"stepped"):("x"!==i.axis&&h.overflowed[0]&&(0>g?e("on",38):g>n.height()&&e("on",40)),"y"!==i.axis&&h.overflowed[1]&&(0>j?e("on",37):j>n.width()&&e("on",39)))}}).bind("mouseup."+l+" dragend."+l,function(a){b||(f&&(f=0,e("off",null)),j=!1)})},H=function(){function b(b,d){if(U(c),!J(c,b.target)){var g="auto"!==f.mouseWheel.deltaFactor?parseInt(f.mouseWheel.deltaFactor):i&&b.deltaFactor<100?100:b.deltaFactor||100,k=f.scrollInertia;if("x"===f.axis||"x"===f.mouseWheel.axis)var l="x",m=[Math.round(g*e.scrollRatio.x),parseInt(f.mouseWheel.scrollAmount)],n="auto"!==f.mouseWheel.scrollAmount?m[1]:m[0]>=h.width()?.9*h.width():m[0],o=Math.abs(a("#mCSB_"+e.idx+"_container")[0].offsetLeft),p=j[1][0].offsetLeft,q=j[1].parent().width()-j[1].width(),r=b.deltaX||b.deltaY||d;else var l="y",m=[Math.round(g*e.scrollRatio.y),parseInt(f.mouseWheel.scrollAmount)],n="auto"!==f.mouseWheel.scrollAmount?m[1]:m[0]>=h.height()?.9*h.height():m[0],o=Math.abs(a("#mCSB_"+e.idx+"_container")[0].offsetTop),p=j[0][0].offsetTop,q=j[0].parent().height()-j[0].height(),r=b.deltaY||d;"y"===l&&!e.overflowed[0]||"x"===l&&!e.overflowed[1]||((f.mouseWheel.invert||b.webkitDirectionInvertedFromDevice)&&(r=-r),f.mouseWheel.normalizeDelta&&(r=0>r?-1:1),(r>0&&0!==p||0>r&&p!==q||f.mouseWheel.preventDefault)&&(b.stopImmediatePropagation(),b.preventDefault()),b.deltaFactor<2&&!f.mouseWheel.normalizeDelta&&(n=b.deltaFactor,k=17),V(c,(o-r*n).toString(),{dir:l,dur:k}))}}if(a(this).data(d)){var c=a(this),e=c.data(d),f=e.opt,g=d+"_"+e.idx,h=a("#mCSB_"+e.idx),j=[a("#mCSB_"+e.idx+"_dragger_vertical"),a("#mCSB_"+e.idx+"_dragger_horizontal")],k=a("#mCSB_"+e.idx+"_container").find("iframe");k.length&&k.each(function(){a(this).load(function(){I(this)&&a(this.contentDocument||this.contentWindow.document).bind("mousewheel."+g,function(a,c){b(a,c)})})}),h.bind("mousewheel."+g,function(a,c){b(a,c)})}},I=function(a){var b=null;if(a){try{var c=a.contentDocument||a.contentWindow.document;b=c.body.innerHTML}catch(d){}return null!==b}try{var c=top.document;b=c.body.innerHTML}catch(d){}return null!==b},J=function(b,c){var e=c.nodeName.toLowerCase(),f=b.data(d).opt.mouseWheel.disableOver,g=["select","textarea"];return a.inArray(e,f)>-1&&!(a.inArray(e,g)>-1&&!a(c).is(":focus"))},K=function(){var b,c=a(this),e=c.data(d),f=d+"_"+e.idx,g=a("#mCSB_"+e.idx+"_container"),h=g.parent(),i=a(".mCSB_"+e.idx+"_scrollbar ."+k[12]);i.bind("mousedown."+f+" touchstart."+f+" pointerdown."+f+" MSPointerDown."+f,function(c){j=!0,a(c.target).hasClass("mCSB_dragger")||(b=1)}).bind("touchend."+f+" pointerup."+f+" MSPointerUp."+f,function(a){j=!1}).bind("click."+f,function(d){if(b&&(b=0,a(d.target).hasClass(k[12])||a(d.target).hasClass("mCSB_draggerRail"))){U(c);var f=a(this),i=f.find(".mCSB_dragger");if(f.parent(".mCSB_scrollTools_horizontal").length>0){if(!e.overflowed[1])return;var j="x",l=d.pageX>i.offset().left?-1:1,m=Math.abs(g[0].offsetLeft)-l*(.9*h.width())}else{if(!e.overflowed[0])return;var j="y",l=d.pageY>i.offset().top?-1:1,m=Math.abs(g[0].offsetTop)-l*(.9*h.height())}V(c,m.toString(),{dir:j,scrollEasing:"mcsEaseInOut"})}})},L=function(){var b=a(this),c=b.data(d),e=c.opt,f=d+"_"+c.idx,g=a("#mCSB_"+c.idx+"_container"),h=g.parent();g.bind("focusin."+f,function(c){var d=a(document.activeElement),f=g.find(".mCustomScrollBox").length,i=0;d.is(e.advanced.autoScrollOnFocus)&&(U(b),clearTimeout(b[0]._focusTimeout),b[0]._focusTimer=f?(i+17)*f:0,b[0]._focusTimeout=setTimeout(function(){var a=[ba(d)[0],ba(d)[1]],c=[g[0].offsetTop,g[0].offsetLeft],f=[c[0]+a[0]>=0&&c[0]+a[0]<h.height()-d.outerHeight(!1),c[1]+a[1]>=0&&c[0]+a[1]<h.width()-d.outerWidth(!1)],j="yx"!==e.axis||f[0]||f[1]?"all":"none";"x"===e.axis||f[0]||V(b,a[0].toString(),{dir:"y",scrollEasing:"mcsEaseInOut",overwrite:j,dur:i}),"y"===e.axis||f[1]||V(b,a[1].toString(),{dir:"x",scrollEasing:"mcsEaseInOut",overwrite:j,dur:i})},b[0]._focusTimer))})},M=function(){var b=a(this),c=b.data(d),e=d+"_"+c.idx,f=a("#mCSB_"+c.idx+"_container").parent();f.bind("scroll."+e,function(b){0===f.scrollTop()&&0===f.scrollLeft()||a(".mCSB_"+c.idx+"_scrollbar").css("visibility","hidden")})},N=function(){var b=a(this),c=b.data(d),e=c.opt,f=c.sequential,g=d+"_"+c.idx,h=".mCSB_"+c.idx+"_scrollbar",i=a(h+">a");i.bind("mousedown."+g+" touchstart."+g+" pointerdown."+g+" MSPointerDown."+g+" mouseup."+g+" touchend."+g+" pointerup."+g+" MSPointerUp."+g+" mouseout."+g+" pointerout."+g+" MSPointerOut."+g+" click."+g,function(d){function g(a,c){f.scrollAmount=e.scrollButtons.scrollAmount,P(b,a,c)}if(d.preventDefault(),$(d)){var h=a(this).attr("class");switch(f.type=e.scrollButtons.scrollType,d.type){case"mousedown":case"touchstart":case"pointerdown":case"MSPointerDown":if("stepped"===f.type)return;j=!0,c.tweenRunning=!1,g("on",h);break;case"mouseup":case"touchend":case"pointerup":case"MSPointerUp":case"mouseout":case"pointerout":case"MSPointerOut":if("stepped"===f.type)return;j=!1,f.dir&&g("off",h);break;case"click":if("stepped"!==f.type||c.tweenRunning)return;g("on",h)}}})},O=function(){function b(b){function d(a,b){g.type=f.keyboard.scrollType,g.scrollAmount=f.keyboard.scrollAmount,"stepped"===g.type&&e.tweenRunning||P(c,a,b)}switch(b.type){case"blur":e.tweenRunning&&g.dir&&d("off",null);break;case"keydown":case"keyup":var h=b.keyCode?b.keyCode:b.which,i="on";if("x"!==f.axis&&(38===h||40===h)||"y"!==f.axis&&(37===h||39===h)){if((38===h||40===h)&&!e.overflowed[0]||(37===h||39===h)&&!e.overflowed[1])return;"keyup"===b.type&&(i="off"),a(document.activeElement).is(l)||(b.preventDefault(),b.stopImmediatePropagation(),d(i,h))}else if(33===h||34===h){if((e.overflowed[0]||e.overflowed[1])&&(b.preventDefault(),b.stopImmediatePropagation()),"keyup"===b.type){U(c);var m=34===h?-1:1;if("x"===f.axis||"yx"===f.axis&&e.overflowed[1]&&!e.overflowed[0])var n="x",o=Math.abs(j[0].offsetLeft)-m*(.9*k.width());else var n="y",o=Math.abs(j[0].offsetTop)-m*(.9*k.height());V(c,o.toString(),{dir:n,scrollEasing:"mcsEaseInOut"})}}else if((35===h||36===h)&&!a(document.activeElement).is(l)&&((e.overflowed[0]||e.overflowed[1])&&(b.preventDefault(),b.stopImmediatePropagation()),"keyup"===b.type)){if("x"===f.axis||"yx"===f.axis&&e.overflowed[1]&&!e.overflowed[0])var n="x",o=35===h?Math.abs(k.width()-j.outerWidth(!1)):0;else var n="y",o=35===h?Math.abs(k.height()-j.outerHeight(!1)):0;V(c,o.toString(),{dir:n,scrollEasing:"mcsEaseInOut"})}}}var c=a(this),e=c.data(d),f=e.opt,g=e.sequential,h=d+"_"+e.idx,i=a("#mCSB_"+e.idx),j=a("#mCSB_"+e.idx+"_container"),k=j.parent(),l="input,textarea,select,datalist,keygen,[contenteditable='true']",m=j.find("iframe"),n=["blur."+h+" keydown."+h+" keyup."+h];m.length&&m.each(function(){a(this).load(function(){I(this)&&a(this.contentDocument||this.contentWindow.document).bind(n[0],function(a){b(a)})})}),i.attr("tabindex","0").bind(n[0],function(a){b(a)})},P=function(b,c,e,f,g){function h(a){l.snapAmount&&(m.scrollAmount=l.snapAmount instanceof Array?"x"===m.dir[0]?l.snapAmount[1]:l.snapAmount[0]:l.snapAmount);var c="stepped"!==m.type,d=g?g:a?c?p/1.5:q:1e3/60,e=a?c?7.5:40:2.5,i=[Math.abs(n[0].offsetTop),Math.abs(n[0].offsetLeft)],k=[j.scrollRatio.y>10?10:j.scrollRatio.y,j.scrollRatio.x>10?10:j.scrollRatio.x],o="x"===m.dir[0]?i[1]+m.dir[1]*(k[1]*e):i[0]+m.dir[1]*(k[0]*e),r="x"===m.dir[0]?i[1]+m.dir[1]*parseInt(m.scrollAmount):i[0]+m.dir[1]*parseInt(m.scrollAmount),s="auto"!==m.scrollAmount?r:o,t=f?f:a?c?"mcsLinearOut":"mcsEaseInOut":"mcsLinear",u=!!a;return a&&17>d&&(s="x"===m.dir[0]?i[1]:i[0]),V(b,s.toString(),{dir:m.dir[0],scrollEasing:t,dur:d,onComplete:u}),a?void(m.dir=!1):(clearTimeout(m.step),void(m.step=setTimeout(function(){h()},d)))}function i(){clearTimeout(m.step),Z(m,"step"),U(b)}var j=b.data(d),l=j.opt,m=j.sequential,n=a("#mCSB_"+j.idx+"_container"),o="stepped"===m.type,p=l.scrollInertia<26?26:l.scrollInertia,q=l.scrollInertia<1?17:l.scrollInertia;switch(c){case"on":if(m.dir=[e===k[16]||e===k[15]||39===e||37===e?"x":"y",e===k[13]||e===k[15]||38===e||37===e?-1:1],U(b),aa(e)&&"stepped"===m.type)return;h(o);break;case"off":i(),(o||j.tweenRunning&&m.dir)&&h(!0)}},Q=function(b){var c=a(this).data(d).opt,e=[];return"function"==typeof b&&(b=b()),b instanceof Array?e=b.length>1?[b[0],b[1]]:"x"===c.axis?[null,b[0]]:[b[0],null]:(e[0]=b.y?b.y:b.x||"x"===c.axis?null:b,e[1]=b.x?b.x:b.y||"y"===c.axis?null:b),"function"==typeof e[0]&&(e[0]=e[0]()),"function"==typeof e[1]&&(e[1]=e[1]()),e},R=function(b,c){if(null!=b&&"undefined"!=typeof b){var e=a(this),f=e.data(d),g=f.opt,h=a("#mCSB_"+f.idx+"_container"),i=h.parent(),j=typeof b;c||(c="x"===g.axis?"x":"y");var k="x"===c?h.outerWidth(!1):h.outerHeight(!1),m="x"===c?h[0].offsetLeft:h[0].offsetTop,n="x"===c?"left":"top";switch(j){case"function":return b();case"object":var o=b.jquery?b:a(b);if(!o.length)return;return"x"===c?ba(o)[1]:ba(o)[0];case"string":case"number":if(aa(b))return Math.abs(b);if(-1!==b.indexOf("%"))return Math.abs(k*parseInt(b)/100);if(-1!==b.indexOf("-="))return Math.abs(m-parseInt(b.split("-=")[1]));if(-1!==b.indexOf("+=")){var p=m+parseInt(b.split("+=")[1]);return p>=0?0:Math.abs(p)}if(-1!==b.indexOf("px")&&aa(b.split("px")[0]))return Math.abs(b.split("px")[0]);if("top"===b||"left"===b)return 0;if("bottom"===b)return Math.abs(i.height()-h.outerHeight(!1));if("right"===b)return Math.abs(i.width()-h.outerWidth(!1));if("first"===b||"last"===b){var o=h.find(":"+b);return"x"===c?ba(o)[1]:ba(o)[0]}return a(b).length?"x"===c?ba(a(b))[1]:ba(a(b))[0]:(h.css(n,b),void l.update.call(null,e[0]))}}},S=function(b){function c(){return clearTimeout(m[0].autoUpdate),0===h.parents("html").length?void(h=null):void(m[0].autoUpdate=setTimeout(function(){return j.advanced.updateOnSelectorChange&&(i.poll.change.n=f(),i.poll.change.n!==i.poll.change.o)?(i.poll.change.o=i.poll.change.n,void g(3)):j.advanced.updateOnContentResize&&(i.poll.size.n=h[0].scrollHeight+h[0].scrollWidth+m[0].offsetHeight+h[0].offsetHeight+h[0].offsetWidth,i.poll.size.n!==i.poll.size.o)?(i.poll.size.o=i.poll.size.n,void g(1)):!j.advanced.updateOnImageLoad||"auto"===j.advanced.updateOnImageLoad&&"y"===j.axis||(i.poll.img.n=m.find("img").length,i.poll.img.n===i.poll.img.o)?void((j.advanced.updateOnSelectorChange||j.advanced.updateOnContentResize||j.advanced.updateOnImageLoad)&&c()):(i.poll.img.o=i.poll.img.n,void m.find("img").each(function(){e(this)}))},j.advanced.autoUpdateTimeout))}function e(b){function c(a,b){return function(){return b.apply(a,arguments)}}function d(){this.onload=null,a(b).addClass(k[2]),g(2)}if(a(b).hasClass(k[2]))return void g();var e=new Image;e.onload=c(e,d),e.src=b.src}function f(){j.advanced.updateOnSelectorChange===!0&&(j.advanced.updateOnSelectorChange="*");var a=0,b=m.find(j.advanced.updateOnSelectorChange);return j.advanced.updateOnSelectorChange&&b.length>0&&b.each(function(){a+=this.offsetHeight+this.offsetWidth}),a}function g(a){clearTimeout(m[0].autoUpdate),l.update.call(null,h[0],a)}var h=a(this),i=h.data(d),j=i.opt,m=a("#mCSB_"+i.idx+"_container");return b?(clearTimeout(m[0].autoUpdate),void Z(m[0],"autoUpdate")):void c()},T=function(a,b,c){return Math.round(a/b)*b-c},U=function(b){var c=b.data(d),e=a("#mCSB_"+c.idx+"_container,#mCSB_"+c.idx+"_container_wrapper,#mCSB_"+c.idx+"_dragger_vertical,#mCSB_"+c.idx+"_dragger_horizontal");e.each(function(){Y.call(this)})},V=function(b,c,e){function f(a){return i&&j.callbacks[a]&&"function"==typeof j.callbacks[a]}function g(){return[j.callbacks.alwaysTriggerOffsets||u>=v[0]+y,j.callbacks.alwaysTriggerOffsets||-z>=u]}function h(){var a=[n[0].offsetTop,n[0].offsetLeft],c=[s[0].offsetTop,s[0].offsetLeft],d=[n.outerHeight(!1),n.outerWidth(!1)],f=[m.height(),m.width()];b[0].mcs={content:n,top:a[0],left:a[1],draggerTop:c[0],draggerLeft:c[1],topPct:Math.round(100*Math.abs(a[0])/(Math.abs(d[0])-f[0])),leftPct:Math.round(100*Math.abs(a[1])/(Math.abs(d[1])-f[1])),direction:e.dir}}var i=b.data(d),j=i.opt,k={trigger:"internal",dir:"y",scrollEasing:"mcsEaseOut",drag:!1,dur:j.scrollInertia,overwrite:"all",callbacks:!0,onStart:!0,onUpdate:!0,onComplete:!0},e=a.extend(k,e),l=[e.dur,e.drag?0:e.dur],m=a("#mCSB_"+i.idx),n=a("#mCSB_"+i.idx+"_container"),o=n.parent(),p=j.callbacks.onTotalScrollOffset?Q.call(b,j.callbacks.onTotalScrollOffset):[0,0],q=j.callbacks.onTotalScrollBackOffset?Q.call(b,j.callbacks.onTotalScrollBackOffset):[0,0];if(i.trigger=e.trigger,0===o.scrollTop()&&0===o.scrollLeft()||(a(".mCSB_"+i.idx+"_scrollbar").css("visibility","visible"),o.scrollTop(0).scrollLeft(0)),"_resetY"!==c||i.contentReset.y||(f("onOverflowYNone")&&j.callbacks.onOverflowYNone.call(b[0]),i.contentReset.y=1),"_resetX"!==c||i.contentReset.x||(f("onOverflowXNone")&&j.callbacks.onOverflowXNone.call(b[0]),i.contentReset.x=1),"_resetY"!==c&&"_resetX"!==c){if(!i.contentReset.y&&b[0].mcs||!i.overflowed[0]||(f("onOverflowY")&&j.callbacks.onOverflowY.call(b[0]),i.contentReset.x=null),!i.contentReset.x&&b[0].mcs||!i.overflowed[1]||(f("onOverflowX")&&j.callbacks.onOverflowX.call(b[0]),i.contentReset.x=null),j.snapAmount){var r=j.snapAmount instanceof Array?"x"===e.dir?j.snapAmount[1]:j.snapAmount[0]:j.snapAmount;c=T(c,r,j.snapOffset)}switch(e.dir){case"x":var s=a("#mCSB_"+i.idx+"_dragger_horizontal"),t="left",u=n[0].offsetLeft,v=[m.width()-n.outerWidth(!1),s.parent().width()-s.width()],w=[c,0===c?0:c/i.scrollRatio.x],y=p[1],z=q[1],A=y>0?y/i.scrollRatio.x:0,B=z>0?z/i.scrollRatio.x:0;break;case"y":var s=a("#mCSB_"+i.idx+"_dragger_vertical"),t="top",u=n[0].offsetTop,v=[m.height()-n.outerHeight(!1),s.parent().height()-s.height()],w=[c,0===c?0:c/i.scrollRatio.y],y=p[0],z=q[0],A=y>0?y/i.scrollRatio.y:0,B=z>0?z/i.scrollRatio.y:0}w[1]<0||0===w[0]&&0===w[1]?w=[0,0]:w[1]>=v[1]?w=[v[0],v[1]]:w[0]=-w[0],b[0].mcs||(h(),f("onInit")&&j.callbacks.onInit.call(b[0])),clearTimeout(n[0].onCompleteTimeout),W(s[0],t,Math.round(w[1]),l[1],e.scrollEasing),!i.tweenRunning&&(0===u&&w[0]>=0||u===v[0]&&w[0]<=v[0])||W(n[0],t,Math.round(w[0]),l[0],e.scrollEasing,e.overwrite,{onStart:function(){e.callbacks&&e.onStart&&!i.tweenRunning&&(f("onScrollStart")&&(h(),j.callbacks.onScrollStart.call(b[0])),i.tweenRunning=!0,x(s),i.cbOffsets=g())},onUpdate:function(){e.callbacks&&e.onUpdate&&f("whileScrolling")&&(h(),j.callbacks.whileScrolling.call(b[0]))},onComplete:function(){if(e.callbacks&&e.onComplete){"yx"===j.axis&&clearTimeout(n[0].onCompleteTimeout);var a=n[0].idleTimer||0;n[0].onCompleteTimeout=setTimeout(function(){f("onScroll")&&(h(),j.callbacks.onScroll.call(b[0])),f("onTotalScroll")&&w[1]>=v[1]-A&&i.cbOffsets[0]&&(h(),j.callbacks.onTotalScroll.call(b[0])),f("onTotalScrollBack")&&w[1]<=B&&i.cbOffsets[1]&&(h(),j.callbacks.onTotalScrollBack.call(b[0])),i.tweenRunning=!1,n[0].idleTimer=0,x(s,"hide")},a)}}})}},W=function(a,b,c,d,e,f,g){function h(){v.stop||(s||o.call(),s=X()-r,i(),s>=v.time&&(v.time=s>v.time?s+m-(s-v.time):s+m-1,v.time<s+1&&(v.time=s+1)),v.time<d?v.id=n(h):q.call())}function i(){d>0?(v.currVal=l(v.time,t,w,d,e),u[b]=Math.round(v.currVal)+"px"):u[b]=c+"px",p.call()}function j(){m=1e3/60,v.time=s+m,n=window.requestAnimationFrame?window.requestAnimationFrame:function(a){return i(),setTimeout(a,.01)},v.id=n(h)}function k(){null!=v.id&&(window.requestAnimationFrame?window.cancelAnimationFrame(v.id):clearTimeout(v.id),v.id=null)}function l(a,b,c,d,e){switch(e){case"linear":case"mcsLinear":return c*a/d+b;case"mcsLinearOut":return a/=d,a--,c*Math.sqrt(1-a*a)+b;case"easeInOutSmooth":return a/=d/2,1>a?c/2*a*a+b:(a--,-c/2*(a*(a-2)-1)+b);case"easeInOutStrong":return a/=d/2,1>a?c/2*Math.pow(2,10*(a-1))+b:(a--,c/2*(-Math.pow(2,-10*a)+2)+b);case"easeInOut":case"mcsEaseInOut":return a/=d/2,1>a?c/2*a*a*a+b:(a-=2,c/2*(a*a*a+2)+b);case"easeOutSmooth":return a/=d,a--,-c*(a*a*a*a-1)+b;case"easeOutStrong":return c*(-Math.pow(2,-10*a/d)+1)+b;case"easeOut":case"mcsEaseOut":default:var f=(a/=d)*a,g=f*a;return b+c*(.499999999999997*g*f+-2.5*f*f+5.5*g+-6.5*f+4*a)}}a._mTween||(a._mTween={top:{},left:{}});var m,n,g=g||{},o=g.onStart||function(){},p=g.onUpdate||function(){},q=g.onComplete||function(){},r=X(),s=0,t=a.offsetTop,u=a.style,v=a._mTween[b];"left"===b&&(t=a.offsetLeft);var w=c-t;v.stop=0,"none"!==f&&k(),j()},X=function(){return window.performance&&window.performance.now?window.performance.now():window.performance&&window.performance.webkitNow?window.performance.webkitNow():Date.now?Date.now():(new Date).getTime()},Y=function(){var a=this;a._mTween||(a._mTween={top:{},left:{}});for(var b=["top","left"],c=0;c<b.length;c++){var d=b[c];a._mTween[d].id&&(window.requestAnimationFrame?window.cancelAnimationFrame(a._mTween[d].id):clearTimeout(a._mTween[d].id),a._mTween[d].id=null,a._mTween[d].stop=1)}},Z=function(a,b){try{delete a[b]}catch(c){a[b]=null}},$=function(a){return!(a.which&&1!==a.which)},_=function(a){var b=a.originalEvent.pointerType;return!(b&&"touch"!==b&&2!==b)},aa=function(a){return!isNaN(parseFloat(a))&&isFinite(a)},ba=function(a){var b=a.parents(".mCSB_container");return[a.offset().top-b.offset().top,a.offset().left-b.offset().left]},ca=function(){function a(){var a=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var b=0;b<a.length;b++)if(a[b]+"Hidden"in document)return a[b]+"Hidden";return null}var b=a();return b?document[b]:!1};a.fn[c]=function(b){return l[b]?l[b].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof b&&b?void a.error("Method "+b+" does not exist"):l.init.apply(this,arguments)},a[c]=function(b){return l[b]?l[b].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof b&&b?void a.error("Method "+b+" does not exist"):l.init.apply(this,arguments)},a[c].defaults=f,window[c]=!0,a(window).load(function(){a(e)[c](),a.extend(a.expr[":"],{mcsInView:a.expr[":"].mcsInView||function(b){var c,d,e=a(b),f=e.parents(".mCSB_container");if(f.length)return c=f.parent(),d=[f[0].offsetTop,f[0].offsetLeft],d[0]+ba(e)[0]>=0&&d[0]+ba(e)[0]<c.height()-e.outerHeight(!1)&&d[1]+ba(e)[1]>=0&&d[1]+ba(e)[1]<c.width()-e.outerWidth(!1)},mcsOverflow:a.expr[":"].mcsOverflow||function(b){var c=a(b).data(d);if(c)return c.overflowed[0]||c.overflowed[1]}})})})}),!function(){"use strict";function a(){this.defaults={scrollButtons:{enable:!0},axis:"yx"},$.mCustomScrollbar.defaults.scrollButtons=this.defaults.scrollButtons,$.mCustomScrollbar.defaults.axis=this.defaults.axis,this.$get=function(){return{defaults:this.defaults}}}function b(a,b,c,d){c.mCustomScrollbar("destroy");var e={};d.ngScrollbarsConfig&&(e=d.ngScrollbarsConfig);for(var f in a)if(a.hasOwnProperty(f))switch(f){case"scrollButtons":e.hasOwnProperty(f)||(b.scrollButtons=a[f]);break;case"axis":e.hasOwnProperty(f)||(b.axis=a[f]);break;default:e.hasOwnProperty(f)||(e[f]=a[f])}c.mCustomScrollbar(e)}function c(a){return{scope:{ngScrollbarsConfig:"=?",ngScrollbarsUpdate:"=?",element:"=?"},link:function(c,d,e){c.elem=d;var f=a.defaults,g=$.mCustomScrollbar.defaults;c.ngScrollbarsUpdate=function(){d.mCustomScrollbar.apply(d,arguments)},c.$watch("ngScrollbarsConfig",function(a,e){void 0!==a&&b(f,g,d,c)}),b(f,g,d,c)}}}c.$inject=["a"],angular.module("ngScrollbars",[]).provider("ScrollBars",a).directive("ngScrollbars",c),a.$inject=[],c.$inject=["ScrollBars"]}(),function(){"use strict";angular.module("ng-slide-down",[]).directive("ngSlideDown",["$timeout",function(a){var b,c;return b=function(a,b){return void 0!==b.lazyRender?"<div ng-if='lazyRender' ng-transclude></div>":"<div ng-transclude></div>"},c=function(b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q;return h=d.duration||1,q=d.timingFunction||"ease-in-out",i=c.scope(),j=d.emitOnClose,
+n=d.onClose,m=void 0!==d.lazyRender,g=null,o=null,k=function(a){var b,d,e,f,g;for(e=0,d=c.children(),f=0,g=d.length;g>f;f++)b=d[f],e+=b.clientHeight;return""+e+"px"},p=function(){return g&&a.cancel(g),m&&(b.lazyRender=!0),a(function(){return o&&a.cancel(o),c.css({overflow:"hidden",transitionProperty:"height",transitionDuration:""+h+"s",transitionTimingFunction:q,height:k()}),o=a(function(){return c.css({overflow:"visible",transition:"none",height:"auto"})},1e3*h)})},l=function(){return o&&a.cancel(o),c.css({overflow:"hidden",transitionProperty:"height",transitionDuration:""+h+"s",transitionTimingFunction:q,height:"0px"}),j||n||m?g=a(function(){return j&&b.$emit(j,{}),n&&i.$eval(n),m?b.lazyRender=!1:void 0},1e3*h):void 0},b.$watch("expanded",function(b,d){return b?a(p):(null!=b&&(c.css({height:k()}),c[0].clientHeight),a(l))})},{restrict:"A",scope:{expanded:"=ngSlideDown"},transclude:!0,link:c,template:function(a,c){return b(a,c)}}}])}.call(this);var mod;mod=angular.module("infinite-scroll",[]),mod.directive("infiniteScroll",["$rootScope","$window","$timeout",function(a,b,c){return{link:function(d,e,f){var g,h,i,j;return b=angular.element(b),i=0,null!=f.infiniteScrollDistance&&d.$watch(f.infiniteScrollDistance,function(a){return i=parseInt(a,10)}),j=!0,g=!1,null!=f.infiniteScrollDisabled&&d.$watch(f.infiniteScrollDisabled,function(a){return j=!a,j&&g?(g=!1,h()):void 0}),h=function(){var c,h,k,l;return l=b.height()+b.scrollTop(),c=e.offset().top+e.height(),h=c-l,k=h<=b.height()*i,k&&j?a.$$phase?d.$eval(f.infiniteScroll):d.$apply(f.infiniteScroll):k?g=!0:void 0},b.on("scroll",h),d.$on("$destroy",function(){return b.off("scroll",h)}),c(function(){return f.infiniteScrollImmediateCheck?d.$eval(f.infiniteScrollImmediateCheck)?h():void 0:h()},0)}}}]),angular.module("ngMap",[]),function(){"use strict";function camelCase(a){return a.replace(SPECIAL_CHARS_REGEXP,function(a,b,c,d){return d?c.toUpperCase():c}).replace(MOZ_HACK_REGEXP,"Moz$1")}function JSONize(a){try{return JSON.parse(a),a}catch(b){return a.replace(/([\$\w]+)\s*:/g,function(a,b){return'"'+b+'":'}).replace(/'([^']+)'/g,function(a,b){return'"'+b+'"'})}}var SPECIAL_CHARS_REGEXP=/([\:\-\_]+(.))/g,MOZ_HACK_REGEXP=/^moz([A-Z])/,Attr2Options=function($parse,$timeout,$log,NavigatorGeolocation,GeoCoder){var orgAttributes=function(a){a.length>0&&(a=a[0]);for(var b={},c=0;c<a.attributes.length;c++){var d=a.attributes[c];b[d.name]=d.value}return b},toOptionValue=function(input,options){var output,key=options.key,scope=options.scope;try{var num=Number(input);if(isNaN(num))throw"Not a number";output=num}catch(err){try{if(input.match(/^[\+\-]?[0-9\.]+,[ ]*\ ?[\+\-]?[0-9\.]+$/)&&(input="["+input+"]"),output=JSON.parse(JSONize(input)),output instanceof Array){var t1stEl=output[0];if(t1stEl.constructor==Object);else if(t1stEl.constructor==Array)output=output.map(function(a){return new google.maps.LatLng(a[0],a[1])});else if(!isNaN(parseFloat(t1stEl))&&isFinite(t1stEl))return new google.maps.LatLng(output[0],output[1])}else output===Object(output)&&(output=getOptions(output,options,!0))}catch(err2){if(input.match(/^[A-Z][a-zA-Z0-9]+\(.*\)$/))try{var exp="new google.maps."+input;output=eval(exp)}catch(e){output=input}else if(input.match(/^([A-Z][a-zA-Z0-9]+)\.([A-Z]+)$/))try{var matches=input.match(/^([A-Z][a-zA-Z0-9]+)\.([A-Z]+)$/);output=google.maps[matches[1]][matches[2]]}catch(e){output=input}else if(input.match(/^[A-Z]+$/))try{var capitalizedKey=key.charAt(0).toUpperCase()+key.slice(1);key.match(/temperatureUnit|windSpeedUnit|labelColor/)?(capitalizedKey=capitalizedKey.replace(/s$/,""),output=google.maps.weather[capitalizedKey][input]):output=google.maps[capitalizedKey][input]}catch(e){output=input}else if(input.match(/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/))try{output=new Date(input)}catch(e){output=input}else output=input}}if("bounds"==options.key&&output instanceof Array&&(output=new google.maps.LatLngBounds(output[0],output[1])),"icons"==options.key&&output instanceof Array)for(var i=0;i<output.length;i++){var el=output[i];el.icon.path.match(/^[A-Z_]+$/)&&(el.icon.path=google.maps.SymbolPath[el.icon.path])}if("icon"==options.key&&output instanceof Object){(""+output.path).match(/^[A-Z_]+$/)&&(output.path=google.maps.SymbolPath[output.path]);for(var key in output){var arr=output[key];"anchor"==key||"origin"==key?output[key]=new google.maps.Point(arr[0],arr[1]):"size"!=key&&"scaledSize"!=key||(output[key]=new google.maps.Size(arr[0],arr[1]))}}return output},getAttrsToObserve=function(a){var b=[];a["ng-repeat"]||a.ngRepeat;for(var c in a){var d=a[c];d&&d.match(/\{\{.*\}\}/)&&b.push(camelCase(c))}return b},filter=function(a){var b={};for(var c in a)c.match(/^\$/)||c.match(/^ng[A-Z]/)||(b[c]=a[c]);return b},getOptions=function(a,b,c){var d={};for(var e in a)if(a[e]){if(e.match(/^on[A-Z]/))continue;if(e.match(/ControlOptions$/))continue;"string"!=typeof a[e]?d[e]=a[e]:c&&a[e].match(/^[0-9]+$/)?d[e]=a[e]:d[e]=toOptionValue(a[e],{scope:b,key:e})}return d},getEvents=function(a,b){var c={},d=function(a){return"_"+a.toLowerCase()},e=function(b){var c=b.match(/([^\(]+)\(([^\)]*)\)/),d=c[1],e=c[2].replace(/event[ ,]*/,""),f=$parse("["+e+"]");return function(b){function c(a,b){return a[b]}var e=f(a),g=d.split(".").reduce(c,a);g&&g.apply(this,[b].concat(e)),$timeout(function(){a.$apply()})}};for(var f in b)if(b[f]){if(!f.match(/^on[A-Z]/))continue;var g=f.replace(/^on/,"");g=g.charAt(0).toLowerCase()+g.slice(1),g=g.replace(/([A-Z])/g,d);var h=b[f];c[g]=new e(h)}return c},getControlOptions=function(a){var b={};if("object"!=typeof a)return!1;for(var c in a)if(a[c]){if(!c.match(/(.*)ControlOptions$/))continue;var d=a[c],e=d.replace(/'/g,'"');e=e.replace(/([^"]+)|("[^"]+")/g,function(a,b,c){return b?b.replace(/([a-zA-Z0-9]+?):/g,'"$1":'):c});try{var f=JSON.parse(e);for(var g in f)if(f[g]){var h=f[g];if("string"==typeof h?h=h.toUpperCase():"mapTypeIds"===g&&(h=h.map(function(a){return a.match(/^[A-Z]+$/)?google.maps.MapTypeId[a.toUpperCase()]:a})),"style"===g){var i=c.charAt(0).toUpperCase()+c.slice(1),j=i.replace(/Options$/,"")+"Style";f[g]=google.maps[j][h]}else"position"===g?f[g]=google.maps.ControlPosition[h]:f[g]=h}b[c]=f}catch(k){}}return b};return{camelCase:camelCase,filter:filter,getOptions:getOptions,getEvents:getEvents,getControlOptions:getControlOptions,toOptionValue:toOptionValue,getAttrsToObserve:getAttrsToObserve,orgAttributes:orgAttributes}};Attr2Options.$inject=["$parse","$timeout","$log","NavigatorGeolocation","GeoCoder"],angular.module("ngMap").service("Attr2Options",Attr2Options)}(),function(){"use strict";var a=function(a){return{geocode:function(b){var c=a.defer(),d=new google.maps.Geocoder;return d.geocode(b,function(a,b){b==google.maps.GeocoderStatus.OK?c.resolve(a):c.reject(b)}),c.promise}}};a.$inject=["$q"],angular.module("ngMap").service("GeoCoder",a)}(),function(){"use strict";var a=function(a){return{getCurrentPosition:function(b){var c=a.defer();return navigator.geolocation?(void 0===b?b={timeout:5e3}:void 0===b.timeout&&(b.timeout=5e3),navigator.geolocation.getCurrentPosition(function(a){c.resolve(a)},function(a){c.reject(a)},b)):c.reject("Browser Geolocation service failed."),c.promise},watchPosition:function(){return"TODO"},clearWatch:function(){return"TODO"}}};a.$inject=["$q"],angular.module("ngMap").service("NavigatorGeolocation",a)}(),function(){"use strict";var a=function(a){var b=function(b,c){c=c||b.getCenter();var d=a.defer(),e=new google.maps.StreetViewService;return e.getPanoramaByLocation(c||b.getCenter,100,function(a,b){b===google.maps.StreetViewStatus.OK?d.resolve(a.location.pano):d.resolve(!1)}),d.promise},c=function(a,b){var c=new google.maps.StreetViewPanorama(a.getDiv(),{enableCloseButton:!0});c.setPano(b)};return{getPanorama:b,setPanorama:c}};a.$inject=["$q"],angular.module("ngMap").service("StreetView",a)}(),function(){"use strict";angular.module("ngMap").directive("bicyclingLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.BicyclingLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("bicyclingLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("bicyclingLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("cloudLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.weather.CloudLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("cloudLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("cloudLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("customControl",["Attr2Options","$compile",function(a,b){var c=a;return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=(c.orgAttributes(d),c.filter(e)),h=c.getOptions(g,a),i=c.getEvents(a,g),j=d[0].parentElement.removeChild(d[0]);b(j.innerHTML.trim())(a);for(var k in i)google.maps.event.addDomListener(j,k,i[k]);f.addObject("customControls",j),a.$on("mapInitialized",function(a,b){var c=h.position;b.controls[google.maps.ControlPosition[c]].push(j)})}}}])}(),function(){"use strict";var a,b,c,d=function(a){a=a||{},this.el=document.createElement("div"),this.el.style.display="inline-block",this.visible=!0;for(var b in a)this[b]=a[b]},e=function(){d.prototype=new google.maps.OverlayView,d.prototype.setContent=function(a,b){this.el.innerHTML=a,this.el.style.position="absolute",b&&c(angular.element(this.el).contents())(b)},d.prototype.setPosition=function(a){if(a&&(this.position=a),this.getProjection()&&"function"==typeof this.position.lng){var b=this.getProjection().fromLatLngToDivPixel(this.position),c=Math.round(b.x-this.el.offsetWidth/2),d=Math.round(b.y-this.el.offsetHeight-10);this.el.style.left=c+"px",this.el.style.top=d+"px"}},d.prototype.setZIndex=function(a){a&&(this.zIndex=a),this.el.style.zIndex=this.zIndex},d.prototype.setVisible=function(a){this.el.style.display=a?"inline-block":"none",this.visible=a},d.prototype.addClass=function(a){var b=this.el.className.trim().split(" ");-1==b.indexOf(a)&&b.push(a),this.el.className=b.join(" ")},d.prototype.removeClass=function(a){var b=this.el.className.split(" "),c=b.indexOf(a);c>-1&&b.splice(c,1),this.el.className=b.join(" ")},d.prototype.onAdd=function(){this.getPanes().overlayMouseTarget.appendChild(this.el)},d.prototype.draw=function(){this.setPosition(),this.setZIndex(this.zIndex),this.setVisible(this.visible)},d.prototype.onRemove=function(){this.el.parentNode.removeChild(this.el),this.el=null}},f=function(c,e){return function(f,g,h,i){var j=(a.orgAttributes(g),a.filter(h)),k=a.getOptions(j,f),l=a.getEvents(f,j),m=g[0].parentElement.removeChild(g[0]),n=new d(k);b(function(){f.$watch("["+e.join(",")+"]",function(a){n.setContent(c,f)}),n.setContent(m.innerHTML,f);var a=m.firstElementChild.className;n.addClass("custom-marker"),n.addClass(a),k.position instanceof google.maps.LatLng||i.getGeoLocation(k.position).then(function(a){n.setPosition(a)})});for(var o in l)google.maps.event.addDomListener(n.el,o,l[o]);i.addObject("customMarkers",n),g.bind("$destroy",function(){i.deleteObject("customMarkers",n)})}},g=function(d,g,h){return a=d,b=g,c=h,e(),{restrict:"E",require:"^map",compile:function(a){var b=a.html(),c=b.match(/{{([^}]+)}}/g),d=[];return(c||[]).forEach(function(a){var b=a.replace("{{","").replace("}}","");-1==a.indexOf("::")&&-1==a.indexOf("this.")&&-1==d.indexOf(b)&&d.push(a.replace("{{","").replace("}}",""))}),f(b,d)}}};g.$inject=["Attr2Options","$timeout","$compile"],angular.module("ngMap").directive("customMarker",g)}(),function(){"use strict";var a=function(a,b){a.panel&&(a.panel=document.getElementById(a.panel)||document.querySelector(a.panel));var c=new google.maps.DirectionsRenderer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c},b=function(b,c,d){var e=b,f=new google.maps.DirectionsService,g=function(a,b){var e=b;e.travelMode=e.travelMode||"DRIVING";var g=["origin","destination","travelMode","transitOptions","unitSystem","durationInTraffic","waypoints","optimizeWaypoints","provideRouteAlternatives","avoidHighways","avoidTolls","region"];for(var h in e)-1===g.indexOf(h)&&delete e[h];e.waypoints&&("[]"!=e.waypoints&&""!=e.waypoints||delete e.waypoints);var i=function(b){f.route(b,function(b,d){d==google.maps.DirectionsStatus.OK&&c(function(){a.setDirections(b)})})};e.origin&&e.destination&&("current-location"==e.origin?d.getCurrentPosition().then(function(a){e.origin=new google.maps.LatLng(a.coords.latitude,a.coords.longitude),i(e)}):"current-location"==e.destination?d.getCurrentPosition().then(function(a){e.destination=new google.maps.LatLng(a.coords.latitude,a.coords.longitude),i(e)}):i(e))},h=function(b,d,f,h){var i=e.orgAttributes(d),j=e.filter(f),k=e.getOptions(j),l=e.getEvents(b,j),m=e.getAttrsToObserve(i),n=a(k,l);h.addObject("directionsRenderers",n),m.forEach(function(a){!function(a){f.$observe(a,function(b){if("panel"==a)c(function(){var a=document.getElementById(b)||document.querySelector(b);a&&n.setPanel(a)});else if(k[a]!==b){var d=e.toOptionValue(b,{key:a});k[a]=d,g(n,k)}})}(a)}),b.$on("mapInitialized",function(a,b){g(n,k)}),b.$on("$destroy",function(a,b){h.deleteObject("directionsRenderers",n)})};return{restrict:"E",require:"^map",link:h}};b.$inject=["Attr2Options","$timeout","NavigatorGeolocation"],angular.module("ngMap").directive("directions",b)}(),function(){"use strict";angular.module("ngMap").directive("drawingManager",["Attr2Options",function(a){var b=a;return{restrict:"E",require:"^map",link:function(a,c,d,e){var f=(b.orgAttributes(c),b.filter(d)),g=b.getOptions(f),h=b.getControlOptions(f),i=b.getEvents(a,f),j=new google.maps.drawing.DrawingManager({drawingMode:g.drawingmode,drawingControl:g.drawingcontrol,drawingControlOptions:h.drawingControlOptions,circleOptions:g.circleoptions,markerOptions:g.markeroptions,polygonOptions:g.polygonoptions,polylineOptions:g.polylineoptions,rectangleOptions:g.rectangleoptions}),i=b.getEvents(a,f);for(var k in i)google.maps.event.addListener(j,k,i[k]);e.addObject("mapDrawingManager",j)}}}])}(),function(){"use strict";angular.module("ngMap").directive("dynamicMapsEngineLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.visualization.DynamicMapsEngineLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.filter(e),h=b.getOptions(g),i=b.getEvents(a,g,i),j=c(h,i);f.addObject("mapsEngineLayers",j)}}}])}(),function(){"use strict";angular.module("ngMap").directive("fusionTablesLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.FusionTablesLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.filter(e),h=b.getOptions(g),i=b.getEvents(a,g,i),j=c(h,i);f.addObject("fusionTablesLayers",j)}}}])}(),function(){"use strict";angular.module("ngMap").directive("heatmapLayer",["Attr2Options","$window",function(a,b){var c=a;return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=c.filter(e),h=c.getOptions(g);if(h.data=b[e.data]||a[e.data],!(h.data instanceof Array))throw"invalid heatmap data";h.data=new google.maps.MVCArray(h.data);var i=new google.maps.visualization.HeatmapLayer(h);c.getEvents(a,g);f.addObject("heatmapLayers",i)}}}])}(),function(){"use strict";var a=function(a,b,c,d){var e=a,f=function(a,d,e){var f;!a.position||a.position instanceof google.maps.LatLng||delete a.position,f=new google.maps.InfoWindow(a),Object.keys(d).length>0;for(var g in d)g&&google.maps.event.addListener(f,g,d[g]);var h=e.html().trim();if(1!=angular.element(h).length)throw"info-window working as a template must have a container";return f.__template=h.replace(/\s?ng-non-bindable[='"]+/,""),f.__compile=function(a,c){c&&(a["this"]=c);var d=b(f.__template)(a);f.setContent(d[0]),a.$apply()},f.__open=function(a,b,d){c(function(){f.__compile(b,d),d&&d.getPosition?f.open(a,d):d&&d instanceof google.maps.LatLng?(f.open(a),f.setPosition(d)):f.open(a)})},f},g=function(a,b,c,g){b.css("display","none");var h,i=e.orgAttributes(b),j=e.filter(c),k=e.getOptions(j,a),l=e.getEvents(a,j);!k.position||k.position instanceof google.maps.LatLng||(h=k.position);var m=f(k,l,b);h&&g.getGeoLocation(h).then(function(b){m.setPosition(b),m.__open(g.map,a,b);var e=c.geoCallback;e&&d(e)(a)}),g.addObject("infoWindows",m),g.observeAttrSetObj(i,c,m),a.$on("mapInitialized",function(b,c){if(m.visible&&m.__open(c,a),m.visibleOnMarker){var d=m.visibleOnMarker;m.__open(c,a,c.markers[d])}}),a.showInfoWindow=function(b,c,d){var e=g.map.infoWindows[c],f=d?d:this.getPosition?this:null;e.__open(g.map,a,f),g.singleInfoWindow&&(g.lastInfoWindow&&a.hideInfoWindow(b,g.lastInfoWindow),g.lastInfoWindow=c)},a.hideInfoWindow=a.hideInfoWindow||function(a,b){var c=g.map.infoWindows[b];c.close()}};return{restrict:"E",require:"^map",link:g}};a.$inject=["Attr2Options","$compile","$timeout","$parse"],angular.module("ngMap").directive("infoWindow",a)}(),function(){"use strict";angular.module("ngMap").directive("kmlLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.KmlLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("kmlLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("kmlLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("mapData",["Attr2Options",function(a){var b=a;return{restrict:"E",require:"^map",link:function(a,c,d,e){var f=b.filter(d),g=b.getOptions(f),h=b.getEvents(a,f,h);a.$on("mapInitialized",function(b,c){for(var d in g)if(d){var e=g[d];"function"==typeof a[e]?c.data[d](a[e]):c.data[d](e)}for(var f in h)h[f]&&c.data.addListener(f,h[f])})}}}])}(),function(){"use strict";var a,b,c,d,e=function(c,e,f){var g=f.mapLazyLoadParams||f.mapLazyLoad;if(window.lazyLoadCallback=function(){a(function(){e.html(d),b(e.contents())(c)},100)},void 0===window.google||void 0===window.google.maps){var h=document.createElement("script");h.src=g+(g.indexOf("?")>-1?"&":"?")+"callback=lazyLoadCallback",document.body.appendChild(h)}else e.html(d),b(e.contents())(c)},f=function(a,b){return!b.mapLazyLoad&&void 0,d=a.html(),c=b.mapLazyLoad,document.querySelector('script[src="'+c+(c.indexOf("?")>-1?"&":"?")+'callback=lazyLoadCallback"]')?!1:(a.html(""),{pre:e})},g=function(c,d){return b=c,a=d,{compile:f}};g.$inject=["$compile","$timeout"],angular.module("ngMap").directive("mapLazyLoad",g)}(),function(){"use strict";angular.module("ngMap").directive("mapType",["Attr2Options","$window",function(a,b){return{restrict:"E",require:"^map",link:function(a,c,d,e){var f,g=d.name;if(!g)throw"invalid map-type name";if(d.object){var h=a[d.object]?a:b;f=h[d.object],"function"==typeof f&&(f=new f)}if(!f)throw"invalid map-type object";a.$on("mapInitialized",function(a,b){b.mapTypes.set(g,f)}),e.addObject("mapTypes",f)}}}])}(),function(){"use strict";function a(a,b){var c;return a.currentStyle?c=a.currentStyle[b]:window.getComputedStyle&&(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b)),c}var b=function(b,c,d){var e=b,f=function(b,f,g,h){var i=e.orgAttributes(f);b.google=google;var j=document.createElement("div");j.style.width="100%",j.style.height="100%",f.prepend(j),"false"!==g.defaultStyle&&("block"!=a(f[0],"display")&&f.css("display","block"),a(f[0],"height").match(/^(0|auto)/)&&f.css("height","300px")),f[0].addEventListener("dragstart",function(a){return a.preventDefault(),!1});var k=function(a,e){var f=new google.maps.Map(j,{});f.markers={},f.shapes={},c(function(){google.maps.event.trigger(f,"resize")}),a.zoom=a.zoom||15;var k=a.center;k?k instanceof google.maps.LatLng||(delete a.center,h.getGeoLocation(k,m.geoLocationOptions).then(function(a){f.setCenter(a);var c=g.geoCallback;c&&d(c)(b)},function(a){f.setCenter(m.geoFallbackCenter)})):a.center=new google.maps.LatLng(0,0),f.setOptions(a),h.singleInfoWindow=a.singleInfoWindow;for(var l in e)l&&google.maps.event.addListener(f,l,e[l]);h.observeAttrSetObj(i,g,f),h.map=f,h.addObjects(h._objects),b.map=f,b.map.scope=b,google.maps.event.addListenerOnce(f,"idle",function(){b.$emit("mapInitialized",f),g.zoomToIncludeMarkers&&(h.zoomToIncludeMarkers(),"auto"==g.zoomToIncludeMarkers&&b.$on("objectChanged",function(a,b){"markers"==b[0]&&h.zoomToIncludeMarkers()}))})},l=e.filter(g),m=e.getOptions(l,b),n=e.getControlOptions(l),o=angular.extend(m,n),p=e.getEvents(b,l);g.initEvent?b.$on(g.initEvent,function(){!h.map&&k(o,p)}):k(o,p)};return{restrict:"AE",controller:"MapController",link:f}};angular.module("ngMap").directive("map",["Attr2Options","$timeout","$parse",b])}(),function(){"use strict";var a=function(a,b,c,d,e){var f=e,g=this,h=function(a,b,c){a.$observe(b,function(a){if(a){var d=f.camelCase("set-"+b),e=f.toOptionValue(a,{key:b});c[d]&&(b.match(/center|position/)&&"string"==typeof e?g.getGeoLocation(e).then(function(a){c[d](a)}):c[d](e))}})};this.map=null,this._objects=[],this.addObject=function(b,c){if(this.map){this.map[b]=this.map[b]||{};var d=Object.keys(this.map[b]).length;this.map[b][c.id||d]=c,"infoWindows"!=b&&c.setMap&&c.setMap&&c.setMap(this.map),c.centered&&c.position&&this.map.setCenter(c.position),a.$emit("objectChanged",[b,this.map[b]])}else c.groupName=b,this._objects.push(c)},this.deleteObject=function(b,c){if(c.map){var d=c.map[b];for(var e in d)d[e]===c&&delete d[e];c.map&&c.setMap&&c.setMap(null),a.$emit("objectChanged",[b,this.map[b]])}},this.addObjects=function(a){for(var b=0;b<a.length;b++){var c=a[b];c instanceof google.maps.Marker?this.addObject("markers",c):c instanceof google.maps.Circle||c instanceof google.maps.Polygon||c instanceof google.maps.Polyline||c instanceof google.maps.Rectangle||c instanceof google.maps.GroundOverlay?this.addObject("shapes",c):this.addObject(c.groupName,c)}},this.getGeoLocation=function(a,e){var f=b.defer();return!a||a.match(/^current/i)?c.getCurrentPosition(e).then(function(a){var b=a.coords.latitude,c=a.coords.longitude,d=new google.maps.LatLng(b,c);f.resolve(d)},function(a){f.reject(a)}):d.geocode({address:a}).then(function(a){f.resolve(a[0].geometry.location)},function(a){f.reject(a)}),f.promise},this.observeAttrSetObj=function(a,b,c){var d=f.getAttrsToObserve(a);Object.keys(d).length;for(var e=0;e<d.length;e++)h(b,d[e],c)},this.zoomToIncludeMarkers=function(){var a=new google.maps.LatLngBounds;for(var b in this.map.markers)a.extend(this.map.markers[b].getPosition());this.map.fitBounds(a)}};a.$inject=["$scope","$q","NavigatorGeolocation","GeoCoder","Attr2Options"],angular.module("ngMap").controller("MapController",a)}(),function(){"use strict";angular.module("ngMap").directive("mapsEngineLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.visualization.MapsEngineLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.filter(e),h=b.getOptions(g),i=b.getEvents(a,g,i),j=c(h,i);f.addObject("mapsEngineLayers",j)}}}])}(),function(){"use strict";var a=function(a,b){var c;a.position instanceof google.maps.LatLng||(a.position=new google.maps.LatLng(0,0)),c=new google.maps.Marker(a),Object.keys(b).length>0;for(var d in b)d&&google.maps.event.addListener(c,d,b[d]);return c},b=function(b,c){var d=b,e=function(b,e,f,g){var h,i=d.orgAttributes(e),j=d.filter(f),k=d.getOptions(j,b),l=d.getEvents(b,j);k.position instanceof google.maps.LatLng||(h=k.position);var m=a(k,l);g.addObject("markers",m),h&&g.getGeoLocation(h).then(function(a){m.setPosition(a),k.centered&&m.map.setCenter(a);var d=f.geoCallback;d&&c(d)(b)}),k.noWatcher||g.observeAttrSetObj(i,f,m),e.bind("$destroy",function(){g.deleteObject("markers",m)})};return{restrict:"E",require:"^map",link:e}};b.$inject=["Attr2Options","$parse"],angular.module("ngMap").directive("marker",b)}(),function(){"use strict";angular.module("ngMap").directive("overlayMapType",["Attr2Options","$window",function(a,b){return{restrict:"E",require:"^map",link:function(a,c,d,e){var f,g=d.initMethod||"insertAt";if(d.object){var h=a[d.object]?a:b;f=h[d.object],"function"==typeof f&&(f=new f)}if(!f)throw"invalid map-type object";a.$on("mapInitialized",function(a,b){if("insertAt"==g){var c=parseInt(d.index,10);b.overlayMapTypes.insertAt(c,f)}else"push"==g&&b.overlayMapTypes.push(f)}),e.addObject("overlayMapTypes",f)}}}])}(),function(){"use strict";var a=function(a,b){var c=a,d=function(a,d,e,f){if("false"===e.placesAutoComplete)return!1;var g=c.filter(e),h=c.getOptions(g),i=c.getEvents(a,g),j=new google.maps.places.Autocomplete(d[0],h);for(var k in i)google.maps.event.addListener(j,k,i[k]);var l=function(){b(function(){f&&f.$setViewValue(d.val())},100)};google.maps.event.addListener(j,"place_changed",l),d[0].addEventListener("change",l),e.$observe("types",function(a){if(a){var b=c.toOptionValue(a,{key:"types"});j.setTypes(b)}})};return{restrict:"A",require:"?ngModel",link:d}};a.$inject=["Attr2Options","$timeout"],angular.module("ngMap").directive("placesAutoComplete",a)}(),function(){"use strict";var a=function(a,b){var c,d=a.name;switch(delete a.name,d){case"circle":a.center instanceof google.maps.LatLng||(a.center=new google.maps.LatLng(0,0)),c=new google.maps.Circle(a);break;case"polygon":c=new google.maps.Polygon(a);break;case"polyline":c=new google.maps.Polyline(a);break;case"rectangle":c=new google.maps.Rectangle(a);break;case"groundOverlay":case"image":var e=a.url,f={opacity:a.opacity,clickable:a.clickable,id:a.id};c=new google.maps.GroundOverlay(e,a.bounds,f)}for(var g in b)b[g]&&google.maps.event.addListener(c,g,b[g]);return c},b=function(b,c){var d=b,e=function(b,e,f,g){var h,i,j=d.orgAttributes(e),k=d.filter(f),l=d.getOptions(k),m=d.getEvents(b,k);i=l.name,l.center instanceof google.maps.LatLng||(h=l.center);var n=a(l,m);g.addObject("shapes",n),h&&"circle"==i&&g.getGeoLocation(h).then(function(a){n.setCenter(a),n.centered&&n.map.setCenter(a);var d=f.geoCallback;d&&c(d)(b)}),g.observeAttrSetObj(j,f,n),e.bind("$destroy",function(){g.deleteObject("shapes",n)})};return{restrict:"E",require:"^map",link:e}};b.$inject=["Attr2Options","$parse"],angular.module("ngMap").directive("shape",b)}(),function(){"use strict";var a=function(a){var b=a,c=function(a,b,c){var d,e;b.container&&(e=document.getElementById(b.container),e=e||document.querySelector(b.container)),e?d=new google.maps.StreetViewPanorama(e,b):(d=a.getStreetView(),d.setOptions(b));for(var f in c)f&&google.maps.event.addListener(d,f,c[f]);return d},d=function(a,d,e,f){var g=(b.orgAttributes(d),b.filter(e)),h=b.getOptions(g),i=b.getControlOptions(g),j=angular.extend(h,i),k=b.getEvents(a,g);a.$on("mapInitialized",function(a,b){var d=c(b,j,k);b.setStreetView(d),!d.getPosition()&&d.setPosition(b.getCenter()),google.maps.event.addListener(d,"position_changed",function(){d.getPosition()!==b.getCenter()&&b.setCenter(d.getPosition())});var e=google.maps.event.addListener(b,"center_changed",function(){d.setPosition(b.getCenter()),google.maps.event.removeListener(e)})})};return{restrict:"E",require:"^map",link:d}};a.$inject=["Attr2Options"],angular.module("ngMap").directive("streetViewPanorama",a)}(),function(){"use strict";angular.module("ngMap").directive("trafficLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.TrafficLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("trafficLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("trafficLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("transitLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.TransitLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("transitLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("transitLayers",k)})}}}])}(),function(){"use strict";angular.module("ngMap").directive("weatherLayer",["Attr2Options",function(a){var b=a,c=function(a,b){var c=new google.maps.weather.WeatherLayer(a);for(var d in b)google.maps.event.addListener(c,d,b[d]);return c};return{restrict:"E",require:"^map",link:function(a,d,e,f){var g=b.orgAttributes(d),h=b.filter(e),i=b.getOptions(h),j=b.getEvents(a,h),k=c(i,j);f.addObject("weatherLayers",k),f.observeAttrSetObj(g,e,k),d.bind("$destroy",function(){f.deleteObject("weatherLayers",k)})}}}])}(),function(a,b){"use strict";var c=["ng","oc.lazyLoad"],d={},e=[],f=[],g=[],h=[],i=a.noop,j={},k=[],l=a.module("oc.lazyLoad",["ng"]);l.provider("$ocLazyLoad",["$controllerProvider","$provide","$compileProvider","$filterProvider","$injector","$animateProvider",function(l,m,p,q,r,s){function t(b,d,e){if(d){var f,h,l,m=[];for(f=d.length-1;f>=0;f--)if(h=d[f],a.isString(h)||(h=w(h)),h&&-1===k.indexOf(h)&&(!y[h]||-1!==g.indexOf(h))){var n=-1===c.indexOf(h);if(l=o(h),n&&(c.push(h),t(b,l.requires,e)),l._runBlocks.length>0)for(j[h]=[];l._runBlocks.length>0;)j[h].push(l._runBlocks.shift());a.isDefined(j[h])&&(n||e.rerun)&&(m=m.concat(j[h])),v(b,l._invokeQueue,h,e.reconfig),v(b,l._configBlocks,h,e.reconfig),i(n?"ocLazyLoad.moduleLoaded":"ocLazyLoad.moduleReloaded",h),d.pop(),k.push(h)}var p=b.getInstanceInjector();a.forEach(m,function(a){p.invoke(a)})}}function u(b,c){function e(b,c){var d,e=!0;return c.length&&(d=f(b),a.forEach(c,function(a){e=e&&f(a)!==d})),e}function f(b){return a.isArray(b)?F(b.toString()):a.isObject(b)?F(E(b)):a.isDefined(b)&&null!==b?F(b.toString()):b}var g=b[2][0],h=b[1],j=!1;a.isUndefined(d[c])&&(d[c]={}),a.isUndefined(d[c][h])&&(d[c][h]={});var k=function(a,b){d[c][h].hasOwnProperty(a)||(d[c][h][a]=[]),e(b,d[c][h][a])&&(j=!0,d[c][h][a].push(b),i("ocLazyLoad.componentLoaded",[c,h,a]))};if(a.isString(g))k(g,b[2][1]);else{if(!a.isObject(g))return!1;a.forEach(g,function(b,c){a.isString(b)?k(b,g[1]):k(c,b)})}return j}function v(b,c,d,f){if(c){var g,h,i,j;for(g=0,h=c.length;h>g;g++)if(i=c[g],a.isArray(i)){if(null!==b){if(!b.hasOwnProperty(i[0]))throw new Error("unsupported provider "+i[0]);j=b[i[0]]}var k=u(i,d);if("invoke"!==i[1])k&&a.isDefined(j)&&j[i[1]].apply(j,i[2]);else{var l=function(b){var c=e.indexOf(d+"-"+b);(-1===c||f)&&(-1===c&&e.push(d+"-"+b),a.isDefined(j)&&j[i[1]].apply(j,i[2]))};if(a.isFunction(i[2][0]))l(i[2][0]);else if(a.isArray(i[2][0]))for(var m=0,n=i[2][0].length;n>m;m++)a.isFunction(i[2][0][m])&&l(i[2][0][m])}}}}function w(b){var c=null;return a.isString(b)?c=b:a.isObject(b)&&b.hasOwnProperty("name")&&a.isString(b.name)&&(c=b.name),c}function x(b){if(!a.isString(b))return!1;try{return o(b)}catch(c){if(/No module/.test(c)||c.message.indexOf("$injector:nomod")>-1)return!1}}var y={},z={$controllerProvider:l,$compileProvider:p,$filterProvider:q,$provide:m,$injector:r,$animateProvider:s},A=!1,B=!1,C=[],D={};C.push=function(a){-1===this.indexOf(a)&&Array.prototype.push.apply(this,arguments)},this.config=function(b){a.isDefined(b.modules)&&(a.isArray(b.modules)?a.forEach(b.modules,function(a){y[a.name]=a}):y[b.modules.name]=b.modules),a.isDefined(b.debug)&&(A=b.debug),a.isDefined(b.events)&&(B=b.events)},this._init=function(d){if(0===f.length){var e=[d],g=["ng:app","ng-app","x-ng-app","data-ng-app"],i=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/,j=function(a){return a&&e.push(a)};a.forEach(g,function(b){g[b]=!0,j(document.getElementById(b)),
+b=b.replace(":","\\:"),"undefined"!=typeof d[0]&&d[0].querySelectorAll&&(a.forEach(d[0].querySelectorAll("."+b),j),a.forEach(d[0].querySelectorAll("."+b+"\\:"),j),a.forEach(d[0].querySelectorAll("["+b+"]"),j))}),a.forEach(e,function(b){if(0===f.length){var c=" "+d.className+" ",e=i.exec(c);e?f.push((e[2]||"").replace(/\s+/g,",")):a.forEach(b.attributes,function(a){0===f.length&&g[a.name]&&f.push(a.value)})}})}0!==f.length||(b.jasmine||b.mocha)&&a.isDefined(a.mock)||console.error("No module found during bootstrap, unable to init ocLazyLoad. You should always use the ng-app directive or angular.boostrap when you use ocLazyLoad.");var k=function l(b){if(-1===c.indexOf(b)){c.push(b);var d=a.module(b);v(null,d._invokeQueue,b),v(null,d._configBlocks,b),a.forEach(d.requires,l)}};a.forEach(f,function(a){k(a)}),f=[],h.pop()};var E=function(b){try{return JSON.stringify(b)}catch(c){var d=[];return JSON.stringify(b,function(b,c){if(a.isObject(c)&&null!==c){if(-1!==d.indexOf(c))return;d.push(c)}return c})}},F=function(a){var b,c,d,e=0;if(0==a.length)return e;for(b=0,d=a.length;d>b;b++)c=a.charCodeAt(b),e=(e<<5)-e+c,e|=0;return e};this.$get=["$log","$rootElement","$rootScope","$cacheFactory","$q",function(b,e,g,j,l){function m(a){var c=l.defer();return b.error(a.message),c.reject(a),c.promise}var p,q=j("ocLazyLoad");return A||(b={},b.error=a.noop,b.warn=a.noop,b.info=a.noop),z.getInstanceInjector=function(){return p?p:p=e.data("$injector")||a.injector()},i=function(a,c){B&&g.$broadcast(a,c),A&&b.info(a,c)},{_broadcast:i,_$log:b,_getFilesCache:function(){return q},toggleWatch:function(a){a?h.push(!0):h.pop()},getModuleConfig:function(b){if(!a.isString(b))throw new Error("You need to give the name of the module to get");return y[b]?a.copy(y[b]):null},setModuleConfig:function(b){if(!a.isObject(b))throw new Error("You need to give the module config object to set");return y[b.name]=b,b},getModules:function(){return c},isLoaded:function(b){var d=function(a){var b=c.indexOf(a)>-1;return b||(b=!!x(a)),b};if(a.isString(b)&&(b=[b]),a.isArray(b)){var e,f;for(e=0,f=b.length;f>e;e++)if(!d(b[e]))return!1;return!0}throw new Error("You need to define the module(s) name(s)")},_getModuleName:w,_getModule:function(a){try{return o(a)}catch(b){throw(/No module/.test(b)||b.message.indexOf("$injector:nomod")>-1)&&(b.message='The module "'+E(a)+'" that you are trying to load does not exist. '+b.message),b}},moduleExists:x,_loadDependencies:function(b,c){var d,e,f,g=[],h=this;if(b=h._getModuleName(b),null===b)return l.when();try{d=h._getModule(b)}catch(i){return m(i)}return e=h.getRequires(d),a.forEach(e,function(d){if(a.isString(d)){var e=h.getModuleConfig(d);if(null===e)return void C.push(d);d=e,e.name=void 0}if(h.moduleExists(d.name))return f=d.files.filter(function(a){return h.getModuleConfig(d.name).files.indexOf(a)<0}),0!==f.length&&h._$log.warn('Module "',b,'" attempted to redefine configuration for dependency. "',d.name,'"\n Additional Files Loaded:',f),a.isDefined(h.filesLoader)?void g.push(h.filesLoader(d,c).then(function(){return h._loadDependencies(d)})):m(new Error("Error: New dependencies need to be loaded from external files ("+d.files+"), but no loader has been defined."));if(a.isArray(d)){var i=[];a.forEach(d,function(a){var b=h.getModuleConfig(a);null===b?i.push(a):b.files&&(i=i.concat(b.files))}),i.length>0&&(d={files:i})}else a.isObject(d)&&d.hasOwnProperty("name")&&d.name&&(h.setModuleConfig(d),C.push(d.name));if(a.isDefined(d.files)&&0!==d.files.length){if(!a.isDefined(h.filesLoader))return m(new Error('Error: the module "'+d.name+'" is defined in external files ('+d.files+"), but no loader has been defined."));g.push(h.filesLoader(d,c).then(function(){return h._loadDependencies(d)}))}}),l.all(g)},inject:function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],e=this,g=l.defer();if(a.isDefined(b)&&null!==b){if(a.isArray(b)){var h=[];return a.forEach(b,function(a){h.push(e.inject(a,c,d))}),l.all(h)}e._addToLoadList(e._getModuleName(b),!0,d)}if(f.length>0){var i=f.slice(),j=function m(a){C.push(a),D[a]=g.promise,e._loadDependencies(a,c).then(function(){try{k=[],t(z,C,c)}catch(a){return e._$log.error(a.message),void g.reject(a)}f.length>0?m(f.shift()):g.resolve(i)},function(a){g.reject(a)})};j(f.shift())}else{if(c&&c.name&&D[c.name])return D[c.name];g.resolve()}return g.promise},getRequires:function(b){var d=[];return a.forEach(b.requires,function(a){-1===c.indexOf(a)&&d.push(a)}),d},_invokeQueue:v,_registerInvokeList:u,_register:t,_addToLoadList:n,_unregister:function(b){a.isDefined(b)&&a.isArray(b)&&a.forEach(b,function(a){d[a]=void 0})}}}],this._init(a.element(b.document))}]);var m=a.bootstrap;a.bootstrap=function(b,c,d){return a.forEach(c.slice(),function(a){n(a,!0,!0)}),m(b,c,d)};var n=function(b,c,d){(h.length>0||c)&&a.isString(b)&&-1===f.indexOf(b)&&(f.push(b),d&&g.push(b))},o=a.module;a.module=function(a,b,c){return n(a,!1,!0),o(a,b,c)},"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="oc.lazyLoad")}(angular,window),function(a){"use strict";a.module("oc.lazyLoad").directive("ocLazyLoad",["$ocLazyLoad","$compile","$animate","$parse","$timeout",function(b,c,d,e,f){return{restrict:"A",terminal:!0,priority:1e3,compile:function(f,g){var h=f[0].innerHTML;return f.html(""),function(f,g,i){var j=e(i.ocLazyLoad);f.$watch(function(){return j(f)||i.ocLazyLoad},function(e){a.isDefined(e)&&b.load(e).then(function(){d.enter(h,g),c(g.contents())(f)})},!0)}}}}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$q","$window","$interval",function(b,c,d,e){var f=!1,g=!1,h=d.document.getElementsByTagName("head")[0]||d.document.getElementsByTagName("body")[0];return b.buildElement=function(i,j,k){var l,m,n=c.defer(),o=b._getFilesCache(),p=function(a){var b=(new Date).getTime();return a.indexOf("?")>=0?"&"===a.substring(0,a.length-1)?a+"_dc="+b:a+"&_dc="+b:a+"?_dc="+b};switch(a.isUndefined(o.get(j))&&o.put(j,n.promise),i){case"css":l=d.document.createElement("link"),l.type="text/css",l.rel="stylesheet",l.href=k.cache===!1?p(j):j;break;case"js":l=d.document.createElement("script"),l.src=k.cache===!1?p(j):j;break;default:o.remove(j),n.reject(new Error('Requested type "'+i+'" is not known. Could not inject "'+j+'"'))}l.onload=l.onreadystatechange=function(a){l.readyState&&!/^c|loade/.test(l.readyState)||m||(l.onload=l.onreadystatechange=null,m=1,b._broadcast("ocLazyLoad.fileLoaded",j),n.resolve())},l.onerror=function(){o.remove(j),n.reject(new Error("Unable to load "+j))},l.async=k.serie?0:1;var q=h.lastChild;if(k.insertBefore){var r=a.element(a.isDefined(window.jQuery)?k.insertBefore:document.querySelector(k.insertBefore));r&&r.length>0&&(q=r[0])}if(q.parentNode.insertBefore(l,q),"css"==i){if(!f){var s=d.navigator.userAgent.toLowerCase();if(/iP(hone|od|ad)/.test(d.navigator.platform)){var t=d.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),u=parseFloat([parseInt(t[1],10),parseInt(t[2],10),parseInt(t[3]||0,10)].join("."));g=6>u}else if(s.indexOf("android")>-1){var v=parseFloat(s.slice(s.indexOf("android")+8));g=4.4>v}else if(s.indexOf("safari")>-1){var w=s.match(/version\/([\.\d]+)/i);g=w&&w[1]&&parseFloat(w[1])<6}}if(g)var x=1e3,y=e(function(){try{l.sheet.cssRules,e.cancel(y),l.onload()}catch(a){--x<=0&&l.onerror()}},20)}return n.promise},b}])}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$q",function(b,c){return b.filesLoader=function(d){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],f=[],g=[],h=[],i=[],j=null,k=b._getFilesCache();b.toggleWatch(!0),a.extend(e,d);var l=function(c){var d,l=null;if(a.isObject(c)&&(l=c.type,c=c.path),j=k.get(c),a.isUndefined(j)||e.cache===!1){if(null!==(d=/^(css|less|html|htm|js)?(?=!)/.exec(c))&&(l=d[1],c=c.substr(d[1].length+1,c.length)),!l)if(null!==(d=/[.](css|less|html|htm|js)?((\?|#).*)?$/.exec(c)))l=d[1];else{if(b.jsLoader.hasOwnProperty("ocLazyLoadLoader")||!b.jsLoader.hasOwnProperty("requirejs"))return void b._$log.error("File type could not be determined. "+c);l="js"}"css"!==l&&"less"!==l||-1!==f.indexOf(c)?"html"!==l&&"htm"!==l||-1!==g.indexOf(c)?"js"===l||-1===h.indexOf(c)?h.push(c):b._$log.error("File type is not valid. "+c):g.push(c):f.push(c)}else j&&i.push(j)};if(e.serie?l(e.files.shift()):a.forEach(e.files,function(a){l(a)}),f.length>0){var m=c.defer();b.cssLoader(f,function(c){a.isDefined(c)&&b.cssLoader.hasOwnProperty("ocLazyLoadLoader")?(b._$log.error(c),m.reject(c)):m.resolve()},e),i.push(m.promise)}if(g.length>0){var n=c.defer();b.templatesLoader(g,function(c){a.isDefined(c)&&b.templatesLoader.hasOwnProperty("ocLazyLoadLoader")?(b._$log.error(c),n.reject(c)):n.resolve()},e),i.push(n.promise)}if(h.length>0){var o=c.defer();b.jsLoader(h,function(c){a.isDefined(c)&&(b.jsLoader.hasOwnProperty("ocLazyLoadLoader")||b.jsLoader.hasOwnProperty("requirejs"))?(b._$log.error(c),o.reject(c)):o.resolve()},e),i.push(o.promise)}if(0===i.length){var p=c.defer(),q="Error: no file to load has been found, if you're trying to load an existing module you should use the 'inject' method instead of 'load'.";return b._$log.error(q),p.reject(q),p.promise}return e.serie&&e.files.length>0?c.all(i).then(function(){return b.filesLoader(d,e)}):c.all(i)["finally"](function(a){return b.toggleWatch(!1),a})},b.load=function(d){var e,f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=this,h=null,i=[],j=c.defer(),k=a.copy(d),l=a.copy(f);if(a.isArray(k))return a.forEach(k,function(a){i.push(g.load(a,l))}),c.all(i).then(function(a){j.resolve(a)},function(a){j.reject(a)}),j.promise;if(a.isString(k)?(h=g.getModuleConfig(k),h||(h={files:[k]})):a.isObject(k)&&(h=a.isDefined(k.path)&&a.isDefined(k.type)?{files:[k]}:g.setModuleConfig(k)),null===h){var m=g._getModuleName(k);return e='Module "'+(m||"unknown")+'" is not configured, cannot load.',b._$log.error(e),j.reject(new Error(e)),j.promise}a.isDefined(h.template)&&(a.isUndefined(h.files)&&(h.files=[]),a.isString(h.template)?h.files.push(h.template):a.isArray(h.template)&&h.files.concat(h.template));var n=a.extend({},l,h);return a.isUndefined(h.files)&&a.isDefined(h.name)&&b.moduleExists(h.name)?b.inject(h.name,n,!0):(b.filesLoader(h,n).then(function(){b.inject(null,n).then(function(a){j.resolve(a)},function(a){j.reject(a)})},function(a){j.reject(a)}),j.promise)},b}])}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$q",function(b,c){return b.cssLoader=function(d,e,f){var g=[];a.forEach(d,function(a){g.push(b.buildElement("css",a,f))}),c.all(g).then(function(){e()},function(a){e(a)})},b.cssLoader.ocLazyLoadLoader=!0,b}])}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$q",function(b,c){return b.jsLoader=function(d,e,f){var g=[];a.forEach(d,function(a){g.push(b.buildElement("js",a,f))}),c.all(g).then(function(){e()},function(a){e(a)})},b.jsLoader.ocLazyLoadLoader=!0,b}])}])}(angular),function(a){"use strict";a.module("oc.lazyLoad").config(["$provide",function(b){b.decorator("$ocLazyLoad",["$delegate","$templateCache","$q","$http",function(b,c,d,e){return b.templatesLoader=function(f,g,h){var i=[],j=b._getFilesCache();return a.forEach(f,function(b){var f=d.defer();i.push(f.promise),e.get(b,h).success(function(d){a.isString(d)&&d.length>0&&a.forEach(a.element(d),function(a){"SCRIPT"===a.nodeName&&"text/ng-template"===a.type&&c.put(a.id,a.innerHTML)}),a.isUndefined(j.get(b))&&j.put(b,!0),f.resolve()}).error(function(a){f.reject(new Error('Unable to load template file "'+b+'": '+a))})}),d.all(i).then(function(){g()},function(a){g(a)})},b.templatesLoader.ocLazyLoadLoader=!0,b}])}])}(angular),Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){var c;if(null==this)throw new TypeError('"this" is null or not defined');var d=Object(this),e=d.length>>>0;if(0===e)return-1;var f=+b||0;if(Math.abs(f)===1/0&&(f=0),f>=e)return-1;for(c=Math.max(f>=0?f:e-Math.abs(f),0);e>c;){if(c in d&&d[c]===a)return c;c++}return-1}),"undefined"==typeof PDFJS&&(("undefined"!=typeof window?window:this).PDFJS={}),PDFJS.version="1.1.551",PDFJS.build="2a5616c",function(){"use strict";function a(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.infos&&console.log("Info: "+a)}function b(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.warnings&&console.log("Warning: "+a)}function c(a){b("Deprecated API usage: "+a)}function d(a){throw PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.errors&&(console.log("Error: "+a),console.log(e())),I.notify(H.unknown),new Error(a)}function e(){try{throw new Error}catch(a){return a.stack?a.stack.split("\n").slice(2).join("\n"):""}}function f(a,b){a||d(b)}function g(a,b){if(!b)return a;if(/^[a-z][a-z0-9+\-.]*:/i.test(b))return b;var c;if("/"===b.charAt(0))return c=a.indexOf("://"),"/"===b.charAt(1)?++c:c=a.indexOf("/",c+3),a.substring(0,c)+b;var d=a.length;c=a.lastIndexOf("#"),d=c>=0?c:d,c=a.lastIndexOf("?",d),d=c>=0?c:d;var e=a.lastIndexOf("/",d);return a.substring(0,e+1)+b}function h(a,b){if(!a)return!1;var c=/^[a-z][a-z0-9+\-.]*(?=:)/i.exec(a);if(!c)return b;switch(c=c[0].toLowerCase()){case"http":case"https":case"ftp":case"mailto":case"tel":return!0;default:return!1}}function i(a,b,c){return Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!1}),c}function j(){switch(PDFJS.openExternalLinksInNewWindow&&(b("PDFJS.openExternalLinksInNewWindow is deprecated, use PDFJS.externalLinkTarget instead."),PDFJS.externalLinkTarget===J.NONE&&(PDFJS.externalLinkTarget=J.BLANK),PDFJS.openExternalLinksInNewWindow=!1),PDFJS.externalLinkTarget){case J.NONE:return!1;case J.SELF:case J.BLANK:case J.PARENT:case J.TOP:return!0}return b("PDFJS.externalLinkTarget is invalid: "+PDFJS.externalLinkTarget),PDFJS.externalLinkTarget=J.NONE,!1}function k(a){f(null!==a&&"object"==typeof a&&void 0!==a.length,"Invalid argument for bytesToString");var b=a.length,c=8192;if(c>b)return String.fromCharCode.apply(null,a);for(var d=[],e=0;b>e;e+=c){var g=Math.min(e+c,b),h=a.subarray(e,g);d.push(String.fromCharCode.apply(null,h))}return d.join("")}function l(a){f("string"==typeof a,"Invalid argument for stringToBytes");for(var b=a.length,c=new Uint8Array(b),d=0;b>d;++d)c[d]=255&a.charCodeAt(d);return c}function m(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,255&a)}function n(){var a=new Uint8Array(2);a[0]=1;var b=new Uint16Array(a.buffer);return 1===b[0]}function o(){var a=document.createElement("canvas");a.width=a.height=1;var b=a.getContext("2d"),c=b.createImageData(1,1);return"undefined"!=typeof c.data.buffer}function p(a){return"number"==typeof a}function q(a){return a instanceof Array}function r(a){return"object"==typeof a&&null!==a&&void 0!==a.byteLength}function s(){var a={};return a.promise=new Promise(function(b,c){a.resolve=b,a.reject=c}),a}function t(a,b){this.name=a,this.comObj=b,this.callbackIndex=1,this.postMessageTransfers=!0;var c=this.callbacksCapabilities={},e=this.actionHandler={};e.console_log=[function(a){console.log.apply(console,a)}],e.console_error=[function(a){console.error.apply(console,a)}],e._unsupported_feature=[function(a){I.notify(a)}],b.onmessage=function(a){var f=a.data;if(f.isReply){var g=f.callbackId;if(f.callbackId in c){var h=c[g];delete c[g],"error"in f?h.reject(f.error):h.resolve(f.data)}else d("Cannot resolve callback "+g)}else if(f.action in e){var i=e[f.action];f.callbackId?Promise.resolve().then(function(){return i[0].call(i[1],f.data)}).then(function(a){b.postMessage({isReply:!0,callbackId:f.callbackId,data:a})},function(a){a instanceof Error&&(a+=""),b.postMessage({isReply:!0,callbackId:f.callbackId,error:a})}):i[0].call(i[1],f.data)}else d("Unknown action from worker: "+f.action)}}function u(a,c,d){var e=new Image;e.onload=function(){d.resolve(a,e)},e.onerror=function(){d.resolve(a,null),b("Error during JPEG image loading")},e.src=c}function v(a,b){var c=document.createElement("canvas");return c.width=a,c.height=b,c}function w(a){a.mozCurrentTransform||(a._originalSave=a.save,a._originalRestore=a.restore,a._originalRotate=a.rotate,a._originalScale=a.scale,a._originalTranslate=a.translate,a._originalTransform=a.transform,a._originalSetTransform=a.setTransform,a._transformMatrix=a._transformMatrix||[1,0,0,1,0,0],a._transformStack=[],Object.defineProperty(a,"mozCurrentTransform",{get:function(){return this._transformMatrix}}),Object.defineProperty(a,"mozCurrentTransformInverse",{get:function(){var a=this._transformMatrix,b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=b*e-c*d,i=c*d-b*e;return[e/h,c/i,d/i,b/h,(e*f-d*g)/i,(c*f-b*g)/h]}}),a.save=function(){var a=this._transformMatrix;this._transformStack.push(a),this._transformMatrix=a.slice(0,6),this._originalSave()},a.restore=function(){var a=this._transformStack.pop();a&&(this._transformMatrix=a,this._originalRestore())},a.translate=function(a,b){var c=this._transformMatrix;c[4]=c[0]*a+c[2]*b+c[4],c[5]=c[1]*a+c[3]*b+c[5],this._originalTranslate(a,b)},a.scale=function(a,b){var c=this._transformMatrix;c[0]=c[0]*a,c[1]=c[1]*a,c[2]=c[2]*b,c[3]=c[3]*b,this._originalScale(a,b)},a.transform=function(b,c,d,e,f,g){var h=this._transformMatrix;this._transformMatrix=[h[0]*b+h[2]*c,h[1]*b+h[3]*c,h[0]*d+h[2]*e,h[1]*d+h[3]*e,h[0]*f+h[2]*g+h[4],h[1]*f+h[3]*g+h[5]],a._originalTransform(b,c,d,e,f,g)},a.setTransform=function(b,c,d,e,f,g){this._transformMatrix=[b,c,d,e,f,g],a._originalSetTransform(b,c,d,e,f,g)},a.rotate=function(a){var b=Math.cos(a),c=Math.sin(a),d=this._transformMatrix;this._transformMatrix=[d[0]*b+d[2]*c,d[1]*b+d[3]*c,d[0]*-c+d[2]*b,d[1]*-c+d[3]*b,d[4],d[5]],this._originalRotate(a)})}function x(a){var b,c,d,e,f=1e3,g=a.width,h=a.height,i=g+1,j=new Uint8Array(i*(h+1)),k=new Uint8Array([0,2,4,0,1,0,5,4,8,10,0,8,0,2,1,0]),l=g+7&-8,m=a.data,n=new Uint8Array(l*h),o=0;for(b=0,e=m.length;e>b;b++)for(var p=128,q=m[b];p>0;)n[o++]=q&p?0:255,p>>=1;var r=0;for(o=0,0!==n[o]&&(j[0]=1,++r),c=1;g>c;c++)n[o]!==n[o+1]&&(j[c]=n[o]?2:1,++r),o++;for(0!==n[o]&&(j[c]=2,++r),b=1;h>b;b++){o=b*l,d=b*i,n[o-l]!==n[o]&&(j[d]=n[o]?1:8,++r);var s=(n[o]?4:0)+(n[o-l]?8:0);for(c=1;g>c;c++)s=(s>>2)+(n[o+1]?4:0)+(n[o-l+1]?8:0),k[s]&&(j[d+c]=k[s],++r),o++;if(n[o-l]!==n[o]&&(j[d+c]=n[o]?2:4,++r),r>f)return null}for(o=l*(h-1),d=b*i,0!==n[o]&&(j[d]=8,++r),c=1;g>c;c++)n[o]!==n[o+1]&&(j[d+c]=n[o]?4:8,++r),o++;if(0!==n[o]&&(j[d+c]=4,++r),r>f)return null;var t=new Int32Array([0,i,-1,0,-i,0,0,0,1]),u=[];for(b=0;r&&h>=b;b++){for(var v=b*i,w=v+g;w>v&&!j[v];)v++;if(v!==w){var x,y=[v%i,b],z=j[v],A=v;do{var B=t[z];do v+=B;while(!j[v]);x=j[v],5!==x&&10!==x?(z=x,j[v]=0):(z=x&51*z>>4,j[v]&=z>>2|z<<2),y.push(v%i),y.push(v/i|0),--r}while(A!==v);u.push(y),--b}}var C=function(a){a.save(),a.scale(1/g,-1/h),a.translate(0,-h),a.beginPath();for(var b=0,c=u.length;c>b;b++){var d=u[b];a.moveTo(d[0],d[1]);for(var e=2,f=d.length;f>e;e+=2)a.lineTo(d[e],d[e+1])}a.fill(),a.beginPath(),a.restore()};return C}function y(a){var b=ma[a[0]];return b||d("Unknown IR type: "+a[0]),b.fromIR(a)}var z="undefined"==typeof window?this:window,A="undefined"==typeof window,B=[.001,0,0,.001,0,0],C={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},D={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},E={WIDGET:1,TEXT:2,LINK:3},F={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5};z.PDFJS||(z.PDFJS={}),z.PDFJS.pdfBug=!1,PDFJS.VERBOSITY_LEVELS={errors:0,warnings:1,infos:5};var G=PDFJS.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91},H=PDFJS.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",smask:"smask",shadingPattern:"shadingPattern",font:"font"},I=PDFJS.UnsupportedManager=function(){var a=[];return{listen:function(b){a.push(b)},notify:function(c){b('Unsupported feature "'+c+'"');for(var d=0,e=a.length;e>d;d++)a[d](c)}}}();PDFJS.isValidUrl=h,PDFJS.shadow=i;var J=PDFJS.LinkTarget={NONE:0,SELF:1,BLANK:2,PARENT:3,TOP:4},K=["","_self","_blank","_parent","_top"];PDFJS.isExternalLinkTargetSet=j;var L=PDFJS.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2},M=function(){function a(a,b){this.name="PasswordException",this.message=a,this.code=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.PasswordException=M;var N=function(){function a(a,b){this.name="UnknownErrorException",this.message=a,this.details=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.UnknownErrorException=N;var O=function(){function a(a){this.name="InvalidPDFException",this.message=a}return a.prototype=new Error,a.constructor=a,a}();PDFJS.InvalidPDFException=O;var P=function(){function a(a){this.name="MissingPDFException",this.message=a}return a.prototype=new Error,a.constructor=a,a}();PDFJS.MissingPDFException=P;var Q=function(){function a(a,b){this.name="UnexpectedResponseException",this.message=a,this.status=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.UnexpectedResponseException=Q;(function(){function a(a){this.message=a}return a.prototype=new Error,a.prototype.name="NotImplementedException",a.constructor=a,a})(),function(){function a(a,b){this.begin=a,this.end=b,this.message="Missing data ["+a+", "+b+")"}return a.prototype=new Error,a.prototype.name="MissingDataException",a.constructor=a,a}(),function(){function a(a){this.message=a}return a.prototype=new Error,a.prototype.name="XRefParseException",a.constructor=a,a}();Object.defineProperty(PDFJS,"isLittleEndian",{configurable:!0,get:function(){return i(PDFJS,"isLittleEndian",n())}}),Object.defineProperty(PDFJS,"hasCanvasTypedArrays",{configurable:!0,get:function(){return i(PDFJS,"hasCanvasTypedArrays",o())}});var R=function(){function a(a,b){this.buffer=a,this.byteLength=a.length,this.length=void 0===b?this.byteLength>>2:b,c(this.length)}function b(a){return{get:function(){var b=this.buffer,c=a<<2;return(b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24)>>>0},set:function(b){var c=this.buffer,d=a<<2;c[d]=255&b,c[d+1]=b>>8&255,c[d+2]=b>>16&255,c[d+3]=b>>>24&255}}}function c(c){for(;c>d;)Object.defineProperty(a.prototype,d,b(d)),d++}a.prototype=Object.create(null);var d=0;return a}(),S=[1,0,0,1,0,0],T=PDFJS.Util=function(){function a(){}var b=["rgb(",0,",",0,",",0,")"];return a.makeCssRgb=function(a,c,d){return b[1]=a,b[3]=c,b[5]=d,b.join("")},a.transform=function(a,b){return[a[0]*b[0]+a[2]*b[1],a[1]*b[0]+a[3]*b[1],a[0]*b[2]+a[2]*b[3],a[1]*b[2]+a[3]*b[3],a[0]*b[4]+a[2]*b[5]+a[4],a[1]*b[4]+a[3]*b[5]+a[5]]},a.applyTransform=function(a,b){var c=a[0]*b[0]+a[1]*b[2]+b[4],d=a[0]*b[1]+a[1]*b[3]+b[5];return[c,d]},a.applyInverseTransform=function(a,b){var c=b[0]*b[3]-b[1]*b[2],d=(a[0]*b[3]-a[1]*b[2]+b[2]*b[5]-b[4]*b[3])/c,e=(-a[0]*b[1]+a[1]*b[0]+b[4]*b[1]-b[5]*b[0])/c;return[d,e]},a.getAxialAlignedBoundingBox=function(b,c){var d=a.applyTransform(b,c),e=a.applyTransform(b.slice(2,4),c),f=a.applyTransform([b[0],b[3]],c),g=a.applyTransform([b[2],b[1]],c);return[Math.min(d[0],e[0],f[0],g[0]),Math.min(d[1],e[1],f[1],g[1]),Math.max(d[0],e[0],f[0],g[0]),Math.max(d[1],e[1],f[1],g[1])]},a.inverseTransform=function(a){var b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[4]*a[3])/b,(a[4]*a[1]-a[5]*a[0])/b]},a.apply3dTransform=function(a,b){return[a[0]*b[0]+a[1]*b[1]+a[2]*b[2],a[3]*b[0]+a[4]*b[1]+a[5]*b[2],a[6]*b[0]+a[7]*b[1]+a[8]*b[2]]},a.singularValueDecompose2dScale=function(a){var b=[a[0],a[2],a[1],a[3]],c=a[0]*b[0]+a[1]*b[2],d=a[0]*b[1]+a[1]*b[3],e=a[2]*b[0]+a[3]*b[2],f=a[2]*b[1]+a[3]*b[3],g=(c+f)/2,h=Math.sqrt((c+f)*(c+f)-4*(c*f-e*d))/2,i=g+h||1,j=g-h||1;return[Math.sqrt(i),Math.sqrt(j)]},a.normalizeRect=function(a){var b=a.slice(0);return a[0]>a[2]&&(b[0]=a[2],b[2]=a[0]),a[1]>a[3]&&(b[1]=a[3],b[3]=a[1]),b},a.intersect=function(b,c){function d(a,b){return a-b}var e=[b[0],b[2],c[0],c[2]].sort(d),f=[b[1],b[3],c[1],c[3]].sort(d),g=[];return b=a.normalizeRect(b),c=a.normalizeRect(c),e[0]===b[0]&&e[1]===c[0]||e[0]===c[0]&&e[1]===b[0]?(g[0]=e[1],g[2]=e[2],f[0]===b[1]&&f[1]===c[1]||f[0]===c[1]&&f[1]===b[1]?(g[1]=f[1],g[3]=f[2],g):!1):!1},a.sign=function(a){return 0>a?-1:1},a.appendToArray=function(a,b){Array.prototype.push.apply(a,b)},a.prependToArray=function(a,b){Array.prototype.unshift.apply(a,b)},a.extendObj=function(a,b){for(var c in b)a[c]=b[c]},a.getInheritableProperty=function(a,b){for(;a&&!a.has(b);)a=a.get("Parent");return a?a.get(b):null},a.inherit=function(a,b,c){a.prototype=Object.create(b.prototype),a.prototype.constructor=a;for(var d in c)a.prototype[d]=c[d]},a.loadScript=function(a,b){var c=document.createElement("script"),d=!1;c.setAttribute("src",a),b&&(c.onload=function(){d||b(),d=!0}),document.getElementsByTagName("head")[0].appendChild(c)},a}();PDFJS.PageViewport=function(){function a(a,b,c,d,e,f){this.viewBox=a,this.scale=b,this.rotation=c,this.offsetX=d,this.offsetY=e;var g,h,i,j,k=(a[2]+a[0])/2,l=(a[3]+a[1])/2;switch(c%=360,c=0>c?c+360:c){case 180:g=-1,h=0,i=0,j=1;break;case 90:g=0,h=1,i=1,j=0;break;case 270:g=0,h=-1,i=-1,j=0;break;default:g=1,h=0,i=0,j=-1}f&&(i=-i,j=-j);var m,n,o,p;0===g?(m=Math.abs(l-a[1])*b+d,n=Math.abs(k-a[0])*b+e,o=Math.abs(a[3]-a[1])*b,p=Math.abs(a[2]-a[0])*b):(m=Math.abs(k-a[0])*b+d,n=Math.abs(l-a[1])*b+e,o=Math.abs(a[2]-a[0])*b,p=Math.abs(a[3]-a[1])*b),this.transform=[g*b,h*b,i*b,j*b,m-g*b*k-i*b*l,n-h*b*k-j*b*l],this.width=o,this.height=p,this.fontScale=b}return a.prototype={clone:function(b){b=b||{};var c="scale"in b?b.scale:this.scale,d="rotation"in b?b.rotation:this.rotation;return new a(this.viewBox.slice(),c,d,this.offsetX,this.offsetY,b.dontFlip)},convertToViewportPoint:function(a,b){return T.applyTransform([a,b],this.transform)},convertToViewportRectangle:function(a){var b=T.applyTransform([a[0],a[1]],this.transform),c=T.applyTransform([a[2],a[3]],this.transform);return[b[0],b[1],c[0],c[1]]},convertToPdfPoint:function(a,b){return T.applyInverseTransform([a,b],this.transform)}},a}();PDFJS.createPromiseCapability=s,function(){function a(a){this._status=c,this._handlers=[];try{a.call(this,this._resolve.bind(this),this._reject.bind(this))}catch(b){this._reject(b)}}if(z.Promise)return"function"!=typeof z.Promise.all&&(z.Promise.all=function(a){var b,c,d=0,e=[],f=new z.Promise(function(a,d){b=a,c=d});return a.forEach(function(a,f){d++,a.then(function(a){e[f]=a,d--,0===d&&b(e)},c)}),0===d&&b(e),f}),"function"!=typeof z.Promise.resolve&&(z.Promise.resolve=function(a){return new z.Promise(function(b){b(a)})}),"function"!=typeof z.Promise.reject&&(z.Promise.reject=function(a){return new z.Promise(function(b,c){c(a)})}),void("function"!=typeof z.Promise.prototype["catch"]&&(z.Promise.prototype["catch"]=function(a){return z.Promise.prototype.then(void 0,a)}));var c=0,d=1,e=2,f=500,g={handlers:[],running:!1,unhandledRejections:[],pendingRejectionCheck:!1,scheduleHandlers:function(a){a._status!==c&&(this.handlers=this.handlers.concat(a._handlers),a._handlers=[],this.running||(this.running=!0,setTimeout(this.runHandlers.bind(this),0)))},runHandlers:function(){for(var a=1,b=Date.now()+a;this.handlers.length>0;){var c=this.handlers.shift(),f=c.thisPromise._status,g=c.thisPromise._value;try{f===d?"function"==typeof c.onResolve&&(g=c.onResolve(g)):"function"==typeof c.onReject&&(g=c.onReject(g),f=d,c.thisPromise._unhandledRejection&&this.removeUnhandeledRejection(c.thisPromise))}catch(h){f=e,g=h}if(c.nextPromise._updateStatus(f,g),Date.now()>=b)break}return this.handlers.length>0?void setTimeout(this.runHandlers.bind(this),0):void(this.running=!1)},addUnhandledRejection:function(a){this.unhandledRejections.push({promise:a,time:Date.now()}),this.scheduleRejectionCheck()},removeUnhandeledRejection:function(a){a._unhandledRejection=!1;for(var b=0;b<this.unhandledRejections.length;b++)this.unhandledRejections[b].promise===a&&(this.unhandledRejections.splice(b),b--)},scheduleRejectionCheck:function(){this.pendingRejectionCheck||(this.pendingRejectionCheck=!0,setTimeout(function(){this.pendingRejectionCheck=!1;for(var a=Date.now(),c=0;c<this.unhandledRejections.length;c++)if(a-this.unhandledRejections[c].time>f){var d=this.unhandledRejections[c].promise._value,e="Unhandled rejection: "+d;d.stack&&(e+="\n"+d.stack),b(e),this.unhandledRejections.splice(c),c--}this.unhandledRejections.length&&this.scheduleRejectionCheck()}.bind(this),f))}};a.all=function(b){function c(a){g._status!==e&&(i=[],f(a))}var d,f,g=new a(function(a,b){d=a,f=b}),h=b.length,i=[];if(0===h)return d(i),g;for(var j=0,k=b.length;k>j;++j){var l=b[j],m=function(a){return function(b){g._status!==e&&(i[a]=b,h--,0===h&&d(i))}}(j);a.isPromise(l)?l.then(m,c):m(l)}return g},a.isPromise=function(a){return a&&"function"==typeof a.then},a.resolve=function(b){return new a(function(a){a(b)})},a.reject=function(b){return new a(function(a,c){c(b)})},a.prototype={_status:null,_value:null,_handlers:null,_unhandledRejection:null,_updateStatus:function(b,c){if(this._status!==d&&this._status!==e){if(b===d&&a.isPromise(c))return void c.then(this._updateStatus.bind(this,d),this._updateStatus.bind(this,e));this._status=b,this._value=c,b===e&&0===this._handlers.length&&(this._unhandledRejection=!0,g.addUnhandledRejection(this)),g.scheduleHandlers(this)}},_resolve:function(a){this._updateStatus(d,a)},_reject:function(a){this._updateStatus(e,a)},then:function(b,c){var d=new a(function(a,b){this.resolve=a,this.reject=b});return this._handlers.push({thisPromise:this,onResolve:b,onReject:c,nextPromise:d}),g.scheduleHandlers(this),d},"catch":function(a){return this.then(void 0,a)}},z.Promise=a}();var U=function(){function a(a,b,c){for(;a.length<c;)a+=b;return a}function c(){this.started={},this.times=[],this.enabled=!0}return c.prototype={time:function(a){this.enabled&&(a in this.started&&b("Timer is already running for "+a),this.started[a]=Date.now())},timeEnd:function(a){this.enabled&&(a in this.started||b("Timer has not been started for "+a),this.times.push({name:a,start:this.started[a],end:Date.now()}),delete this.started[a])},toString:function(){var b,c,d=this.times,e="",f=0;for(b=0,c=d.length;c>b;++b){var g=d[b].name;g.length>f&&(f=g.length)}for(b=0,c=d.length;c>b;++b){var h=d[b],i=h.end-h.start;e+=a(h.name," ",f)+" "+i+"ms\n"}return e}},c}();PDFJS.createBlob=function(a,b){if("undefined"!=typeof Blob)return new Blob([a],{type:b});var c=new MozBlobBuilder;return c.append(a),c.getBlob(b)},PDFJS.createObjectURL=function(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+return function(b,c){if(!PDFJS.disableCreateObjectURL&&"undefined"!=typeof URL&&URL.createObjectURL){var d=PDFJS.createBlob(b,c);return URL.createObjectURL(d)}for(var e="data:"+c+";base64,",f=0,g=b.length;g>f;f+=3){var h=255&b[f],i=255&b[f+1],j=255&b[f+2],k=h>>2,l=(3&h)<<4|i>>4,m=g>f+1?(15&i)<<2|j>>6:64,n=g>f+2?63&j:64;e+=a[k]+a[l]+a[m]+a[n]}return e}}(),t.prototype={on:function(a,b,c){var e=this.actionHandler;e[a]&&d('There is already an actionName called "'+a+'"'),e[a]=[b,c]},send:function(a,b,c){var d={action:a,data:b};this.postMessage(d,c)},sendWithPromise:function(a,b,c){var d=this.callbackIndex++,e={action:a,data:b,callbackId:d},f=s();this.callbacksCapabilities[d]=f;try{this.postMessage(e,c)}catch(g){f.reject(g)}return f.promise},postMessage:function(a,b){b&&this.postMessageTransfers?this.comObj.postMessage(a,b):this.comObj.postMessage(a)}},PDFJS.maxImageSize=void 0===PDFJS.maxImageSize?-1:PDFJS.maxImageSize,PDFJS.cMapUrl=void 0===PDFJS.cMapUrl?null:PDFJS.cMapUrl,PDFJS.cMapPacked=void 0===PDFJS.cMapPacked?!1:PDFJS.cMapPacked,PDFJS.disableFontFace=void 0===PDFJS.disableFontFace?!1:PDFJS.disableFontFace,PDFJS.imageResourcesPath=void 0===PDFJS.imageResourcesPath?"":PDFJS.imageResourcesPath,PDFJS.disableWorker=void 0===PDFJS.disableWorker?!1:PDFJS.disableWorker,PDFJS.workerSrc=void 0===PDFJS.workerSrc?null:PDFJS.workerSrc,PDFJS.disableRange=void 0===PDFJS.disableRange?!1:PDFJS.disableRange,PDFJS.disableStream=void 0===PDFJS.disableStream?!1:PDFJS.disableStream,PDFJS.disableAutoFetch=void 0===PDFJS.disableAutoFetch?!1:PDFJS.disableAutoFetch,PDFJS.pdfBug=void 0===PDFJS.pdfBug?!1:PDFJS.pdfBug,PDFJS.postMessageTransfers=void 0===PDFJS.postMessageTransfers?!0:PDFJS.postMessageTransfers,PDFJS.disableCreateObjectURL=void 0===PDFJS.disableCreateObjectURL?!1:PDFJS.disableCreateObjectURL,PDFJS.disableWebGL=void 0===PDFJS.disableWebGL?!0:PDFJS.disableWebGL,PDFJS.disableFullscreen=void 0===PDFJS.disableFullscreen?!1:PDFJS.disableFullscreen,PDFJS.useOnlyCssZoom=void 0===PDFJS.useOnlyCssZoom?!1:PDFJS.useOnlyCssZoom,PDFJS.verbosity=void 0===PDFJS.verbosity?PDFJS.VERBOSITY_LEVELS.warnings:PDFJS.verbosity,PDFJS.maxCanvasPixels=void 0===PDFJS.maxCanvasPixels?16777216:PDFJS.maxCanvasPixels,PDFJS.openExternalLinksInNewWindow=void 0===PDFJS.openExternalLinksInNewWindow?!1:PDFJS.openExternalLinksInNewWindow,PDFJS.externalLinkTarget=void 0===PDFJS.externalLinkTarget?PDFJS.LinkTarget.NONE:PDFJS.externalLinkTarget,PDFJS.isEvalSupported=void 0===PDFJS.isEvalSupported?!0:PDFJS.isEvalSupported,PDFJS.getDocument=function(a,b,e,f){var h=new V;arguments.length>1&&c("getDocument is called with pdfDataRangeTransport, passwordCallback or progressCallback argument"),b&&(b instanceof W||(b=Object.create(b),b.length=a.length,b.initialData=a.initialData,b.abort||(b.abort=function(){})),a=Object.create(a),a.range=b),h.onPassword=e||null,h.onProgress=f||null;var i,j,k;"string"==typeof a?k={url:a}:r(a)?k={data:a}:a instanceof W?k={range:a}:("object"!=typeof a&&d("Invalid parameter in getDocument, need either Uint8Array, string or a parameter object"),a.url||a.data||a.range||d("Invalid parameter object: need either .data, .range or .url"),k=a);var m={};for(var n in k)if("url"!==n||"undefined"==typeof window){if("range"!==n)if("data"!==n||k[n]instanceof Uint8Array)m[n]=k[n];else{var o=k[n];"string"==typeof o?m[n]=l(o):"object"!=typeof o||null===o||isNaN(o.length)?r(o)?m[n]=new Uint8Array(o):d("Invalid PDF binary data: either typed array, string or array-like object is expected in the data property."):m[n]=new Uint8Array(o)}}else m[n]=g(window.location.href,k[n]);return i=s(),j=new Z(i,k.range),i.promise.then(function(){j.fetchDocument(h,m)}),h._transport=j,h};var V=function(){function a(){this._capability=s(),this._transport=null,this.onPassword=null,this.onProgress=null}return a.prototype={get promise(){return this._capability.promise},destroy:function(){return this._transport.destroy()},then:function(a,b){return this.promise.then.apply(this.promise,arguments)}},a}(),W=function(){function a(a,b){this.length=a,this.initialData=b,this._rangeListeners=[],this._progressListeners=[],this._progressiveReadListeners=[],this._readyCapability=s()}return a.prototype={addRangeListener:function(a){this._rangeListeners.push(a)},addProgressListener:function(a){this._progressListeners.push(a)},addProgressiveReadListener:function(a){this._progressiveReadListeners.push(a)},onDataRange:function(a,b){for(var c=this._rangeListeners,d=0,e=c.length;e>d;++d)c[d](a,b)},onDataProgress:function(a){this._readyCapability.promise.then(function(){for(var b=this._progressListeners,c=0,d=b.length;d>c;++c)b[c](a)}.bind(this))},onDataProgressiveRead:function(a){this._readyCapability.promise.then(function(){for(var b=this._progressiveReadListeners,c=0,d=b.length;d>c;++c)b[c](a)}.bind(this))},transportReady:function(){this._readyCapability.resolve()},requestDataRange:function(a,b){throw new Error("Abstract method PDFDataRangeTransport.requestDataRange")},abort:function(){}},a}();PDFJS.PDFDataRangeTransport=W;var X=function(){function a(a,b,c){this.pdfInfo=a,this.transport=b,this.loadingTask=c}return a.prototype={get numPages(){return this.pdfInfo.numPages},get fingerprint(){return this.pdfInfo.fingerprint},getPage:function(a){return this.transport.getPage(a)},getPageIndex:function(a){return this.transport.getPageIndex(a)},getDestinations:function(){return this.transport.getDestinations()},getDestination:function(a){return this.transport.getDestination(a)},getAttachments:function(){return this.transport.getAttachments()},getJavaScript:function(){return this.transport.getJavaScript()},getOutline:function(){return this.transport.getOutline()},getMetadata:function(){return this.transport.getMetadata()},getData:function(){return this.transport.getData()},getDownloadInfo:function(){return this.transport.downloadInfoCapability.promise},getStats:function(){return this.transport.getStats()},cleanup:function(){this.transport.startCleanup()},destroy:function(){return this.transport.destroy()}},a}(),Y=function(){function a(a,b,c){this.pageIndex=a,this.pageInfo=b,this.transport=c,this.stats=new U,this.stats.enabled=!!z.PDFJS.enableStats,this.commonObjs=c.commonObjs,this.objs=new $,this.cleanupAfterRender=!1,this.pendingCleanup=!1,this.intentStates={},this.destroyed=!1}return a.prototype={get pageNumber(){return this.pageIndex+1},get rotate(){return this.pageInfo.rotate},get ref(){return this.pageInfo.ref},get view(){return this.pageInfo.view},getViewport:function(a,b){return arguments.length<2&&(b=this.rotate),new PDFJS.PageViewport(this.view,a,b,0,0)},getAnnotations:function(){return this.annotationsPromise||(this.annotationsPromise=this.transport.getAnnotations(this.pageIndex)),this.annotationsPromise},render:function(a){function b(a){var b=f.renderTasks.indexOf(g);b>=0&&f.renderTasks.splice(b,1),i.cleanupAfterRender&&(i.pendingCleanup=!0),i._tryCleanup(),a?g.capability.reject(a):g.capability.resolve(),d.timeEnd("Rendering"),d.timeEnd("Overall")}var d=this.stats;d.time("Overall"),this.pendingCleanup=!1;var e="print"===a.intent?"print":"display";this.intentStates[e]||(this.intentStates[e]={});var f=this.intentStates[e];f.displayReadyCapability||(f.receivingOperatorList=!0,f.displayReadyCapability=s(),f.operatorList={fnArray:[],argsArray:[],lastChunk:!1},this.stats.time("Page Request"),this.transport.messageHandler.send("RenderPageRequest",{pageIndex:this.pageNumber-1,intent:e}));var g=new aa(b,a,this.objs,this.commonObjs,f.operatorList,this.pageNumber);g.useRequestAnimationFrame="print"!==e,f.renderTasks||(f.renderTasks=[]),f.renderTasks.push(g);var h=g.task;a.continueCallback&&(c("render is used with continueCallback parameter"),h.onContinue=a.continueCallback);var i=this;return f.displayReadyCapability.promise.then(function(a){return i.pendingCleanup?void b():(d.time("Rendering"),g.initalizeGraphics(a),void g.operatorListChanged())},function(a){b(a)}),h},getOperatorList:function(){function a(){c.operatorList.lastChunk&&c.opListReadCapability.resolve(c.operatorList)}var b="oplist";this.intentStates[b]||(this.intentStates[b]={});var c=this.intentStates[b];if(!c.opListReadCapability){var d={};d.operatorListChanged=a,c.receivingOperatorList=!0,c.opListReadCapability=s(),c.renderTasks=[],c.renderTasks.push(d),c.operatorList={fnArray:[],argsArray:[],lastChunk:!1},this.transport.messageHandler.send("RenderPageRequest",{pageIndex:this.pageIndex,intent:b})}return c.opListReadCapability.promise},getTextContent:function(){return this.transport.messageHandler.sendWithPromise("GetTextContent",{pageIndex:this.pageNumber-1})},_destroy:function(){this.destroyed=!0,this.transport.pageCache[this.pageIndex]=null;var a=[];return Object.keys(this.intentStates).forEach(function(b){var c=this.intentStates[b];c.renderTasks.forEach(function(b){var c=b.capability.promise["catch"](function(){});a.push(c),b.cancel()})},this),this.objs.clear(),this.annotationsPromise=null,this.pendingCleanup=!1,Promise.all(a)},destroy:function(){c("page destroy method, use cleanup() instead"),this.cleanup()},cleanup:function(){this.pendingCleanup=!0,this._tryCleanup()},_tryCleanup:function(){this.pendingCleanup&&!Object.keys(this.intentStates).some(function(a){var b=this.intentStates[a];return 0!==b.renderTasks.length||b.receivingOperatorList},this)&&(Object.keys(this.intentStates).forEach(function(a){delete this.intentStates[a]},this),this.objs.clear(),this.annotationsPromise=null,this.pendingCleanup=!1)},_startRenderPage:function(a,b){var c=this.intentStates[b];c.displayReadyCapability&&c.displayReadyCapability.resolve(a)},_renderPageChunk:function(a,b){var c,d,e=this.intentStates[b];for(c=0,d=a.length;d>c;c++)e.operatorList.fnArray.push(a.fnArray[c]),e.operatorList.argsArray.push(a.argsArray[c]);for(e.operatorList.lastChunk=a.lastChunk,c=0;c<e.renderTasks.length;c++)e.renderTasks[c].operatorListChanged();a.lastChunk&&(e.receivingOperatorList=!1,this._tryCleanup())}},a}(),Z=function(){function c(b,c){if(this.pdfDataRangeTransport=c,this.workerInitializedCapability=b,this.commonObjs=new $,this.loadingTask=null,this.destroyed=!1,this.destroyCapability=null,this.pageCache=[],this.pagePromises=[],this.downloadInfoCapability=s(),!z.PDFJS.disableWorker&&"undefined"!=typeof Worker){var e=PDFJS.workerSrc;e||d("No PDFJS.workerSrc specified");try{var f=new Worker(e),g=new t("main",f);this.messageHandler=g,g.on("test",function(a){var c=a&&a.supportTypedArray;c?(this.worker=f,a.supportTransfers||(PDFJS.postMessageTransfers=!1),this.setupMessageHandler(g),b.resolve()):this.setupFakeWorker()}.bind(this));var h=new Uint8Array([PDFJS.postMessageTransfers?255:0]);try{g.send("test",h,[h.buffer])}catch(i){a("Cannot use postMessage transfers"),h[0]=0,g.send("test",h)}return}catch(j){a("The worker has been disabled.")}}this.setupFakeWorker()}return c.prototype={destroy:function(){if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=s();var a=[];this.pageCache.forEach(function(b){b&&a.push(b._destroy())}),this.pageCache=[],this.pagePromises=[];var b=this,c=this.messageHandler.sendWithPromise("Terminate",null);return a.push(c),Promise.all(a).then(function(){pa.clear(),b.worker&&b.worker.terminate(),b.pdfDataRangeTransport&&(b.pdfDataRangeTransport.abort(),b.pdfDataRangeTransport=null),b.messageHandler=null,b.destroyCapability.resolve()},this.destroyCapability.reject),this.destroyCapability.promise},setupFakeWorker:function(){z.PDFJS.disableWorker=!0,PDFJS.fakeWorkerFilesLoadedCapability||(PDFJS.fakeWorkerFilesLoadedCapability=s(),T.loadScript(PDFJS.workerSrc,function(){PDFJS.fakeWorkerFilesLoadedCapability.resolve()})),PDFJS.fakeWorkerFilesLoadedCapability.promise.then(function(){b("Setting up fake worker.");var a={postMessage:function(b){a.onmessage({data:b})},terminate:function(){}},c=new t("main",a);this.setupMessageHandler(c),PDFJS.WorkerMessageHandler.setup(c),this.workerInitializedCapability.resolve()}.bind(this))},setupMessageHandler:function(a){function c(b){a.send("UpdatePassword",b)}this.messageHandler=a;var e=this.pdfDataRangeTransport;e&&(e.addRangeListener(function(b,c){a.send("OnDataRange",{begin:b,chunk:c})}),e.addProgressListener(function(b){a.send("OnDataProgress",{loaded:b})}),e.addProgressiveReadListener(function(b){a.send("OnDataRange",{chunk:b})}),a.on("RequestDataRange",function(a){e.requestDataRange(a.begin,a.end)},this)),a.on("GetDoc",function(a){var b=a.pdfInfo;this.numPages=a.pdfInfo.numPages;var c=this.loadingTask,d=new X(b,this,c);this.pdfDocument=d,c._capability.resolve(d)},this),a.on("NeedPassword",function(a){var b=this.loadingTask;return b.onPassword?b.onPassword(c,L.NEED_PASSWORD):void b._capability.reject(new M(a.message,a.code))},this),a.on("IncorrectPassword",function(a){var b=this.loadingTask;return b.onPassword?b.onPassword(c,L.INCORRECT_PASSWORD):void b._capability.reject(new M(a.message,a.code))},this),a.on("InvalidPDF",function(a){this.loadingTask._capability.reject(new O(a.message))},this),a.on("MissingPDF",function(a){this.loadingTask._capability.reject(new P(a.message))},this),a.on("UnexpectedResponse",function(a){this.loadingTask._capability.reject(new Q(a.message,a.status))},this),a.on("UnknownError",function(a){this.loadingTask._capability.reject(new N(a.message,a.details))},this),a.on("DataLoaded",function(a){this.downloadInfoCapability.resolve(a)},this),a.on("PDFManagerReady",function(a){this.pdfDataRangeTransport&&this.pdfDataRangeTransport.transportReady()},this),a.on("StartRenderPage",function(a){var b=this.pageCache[a.pageIndex];b.stats.timeEnd("Page Request"),b._startRenderPage(a.transparency,a.intent)},this),a.on("RenderPageChunk",function(a){var b=this.pageCache[a.pageIndex];b._renderPageChunk(a.operatorList,a.intent)},this),a.on("commonobj",function(a){var c=a[0],d=a[1];if(!this.commonObjs.hasData(c))switch(d){case"Font":var e,f=a[2];if("error"in f){var g=f.error;b("Error during font loading: "+g),this.commonObjs.resolve(c,g);break}e=new qa(f),pa.bind([e],function(a){this.commonObjs.resolve(c,e)}.bind(this));break;case"FontPath":this.commonObjs.resolve(c,a[2]);break;default:g("Got unknown common object type "+d)}},this),a.on("obj",function(a){var b,c=a[0],e=a[1],f=a[2],g=this.pageCache[e];if(!g.objs.hasData(c))switch(f){case"JpegStream":b=a[3],u(c,b,g.objs);break;case"Image":b=a[3],g.objs.resolve(c,b);var h=8e6;b&&"data"in b&&b.data.length>h&&(g.cleanupAfterRender=!0);break;default:d("Got unknown object type "+f)}},this),a.on("DocProgress",function(a){var b=this.loadingTask;b.onProgress&&b.onProgress({loaded:a.loaded,total:a.total})},this),a.on("PageError",function(a){var b=this.pageCache[a.pageNum-1],c=b.intentStates[a.intent];c.displayReadyCapability?c.displayReadyCapability.reject(a.error):d(a.error)},this),a.on("JpegDecode",function(a){var b=a[0],c=a[1];return 3!==c&&1!==c?Promise.reject(new Error("Only 3 components or 1 component can be returned")):new Promise(function(a,d){var e=new Image;e.onload=function(){var b=e.width,d=e.height,f=b*d,g=4*f,h=new Uint8Array(f*c),i=v(b,d),j=i.getContext("2d");j.drawImage(e,0,0);var k,l,m=j.getImageData(0,0,b,d).data;if(3===c)for(k=0,l=0;g>k;k+=4,l+=3)h[l]=m[k],h[l+1]=m[k+1],h[l+2]=m[k+2];else if(1===c)for(k=0,l=0;g>k;k+=4,l++)h[l]=m[k];a({data:h,width:b,height:d})},e.onerror=function(){d(new Error("JpegDecode failed to load image"))},e.src=b})})},fetchDocument:function(a,b){return this.destroyed?(a._capability.reject(new Error("Loading aborted")),void this.destroyCapability.resolve()):(this.loadingTask=a,b.disableAutoFetch=PDFJS.disableAutoFetch,b.disableStream=PDFJS.disableStream,b.chunkedViewerLoading=!!this.pdfDataRangeTransport,this.pdfDataRangeTransport&&(b.length=this.pdfDataRangeTransport.length,b.initialData=this.pdfDataRangeTransport.initialData),void this.messageHandler.send("GetDocRequest",{source:b,disableRange:PDFJS.disableRange,maxImageSize:PDFJS.maxImageSize,cMapUrl:PDFJS.cMapUrl,cMapPacked:PDFJS.cMapPacked,disableFontFace:PDFJS.disableFontFace,disableCreateObjectURL:PDFJS.disableCreateObjectURL,verbosity:PDFJS.verbosity}))},getData:function(){return this.messageHandler.sendWithPromise("GetData",null)},getPage:function(a,b){if(0>=a||a>this.numPages||(0|a)!==a)return Promise.reject(new Error("Invalid page request"));var c=a-1;if(c in this.pagePromises)return this.pagePromises[c];var d=this.messageHandler.sendWithPromise("GetPage",{pageIndex:c}).then(function(a){if(this.destroyed)throw new Error("Transport destroyed");var b=new Y(c,a,this);return this.pageCache[c]=b,b}.bind(this));return this.pagePromises[c]=d,d},getPageIndex:function(a){return this.messageHandler.sendWithPromise("GetPageIndex",{ref:a})},getAnnotations:function(a){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:a})},getDestinations:function(){return this.messageHandler.sendWithPromise("GetDestinations",null)},getDestination:function(a){return this.messageHandler.sendWithPromise("GetDestination",{id:a})},getAttachments:function(){return this.messageHandler.sendWithPromise("GetAttachments",null)},getJavaScript:function(){return this.messageHandler.sendWithPromise("GetJavaScript",null)},getOutline:function(){return this.messageHandler.sendWithPromise("GetOutline",null)},getMetadata:function(){return this.messageHandler.sendWithPromise("GetMetadata",null).then(function(a){return{info:a[0],metadata:a[1]?new PDFJS.Metadata(a[1]):null}})},getStats:function(){return this.messageHandler.sendWithPromise("GetStats",null)},startCleanup:function(){this.messageHandler.sendWithPromise("Cleanup",null).then(function(){for(var a=0,b=this.pageCache.length;b>a;a++){var c=this.pageCache[a];c&&c.cleanup()}this.commonObjs.clear(),pa.clear()}.bind(this))}},c}(),$=function(){function a(){this.objs={}}return a.prototype={ensureObj:function(a){if(this.objs[a])return this.objs[a];var b={capability:s(),data:null,resolved:!1};return this.objs[a]=b,b},get:function(a,b){if(b)return this.ensureObj(a).capability.promise.then(b),null;var c=this.objs[a];return c&&c.resolved||d("Requesting object that isn't resolved yet "+a),c.data},resolve:function(a,b){var c=this.ensureObj(a);c.resolved=!0,c.data=b,c.capability.resolve(b)},isResolved:function(a){var b=this.objs;return b[a]?b[a].resolved:!1},hasData:function(a){return this.isResolved(a)},getData:function(a){var b=this.objs;return b[a]&&b[a].resolved?b[a].data:null},clear:function(){this.objs={}}},a}(),_=function(){function a(a){this._internalRenderTask=a,this.onContinue=null}return a.prototype={get promise(){return this._internalRenderTask.capability.promise},cancel:function(){this._internalRenderTask.cancel()},then:function(a,b){return this.promise.then.apply(this.promise,arguments)}},a}(),aa=function(){function a(a,b,c,d,e,f){this.callback=a,this.params=b,this.objs=c,this.commonObjs=d,this.operatorListIdx=null,this.operatorList=e,this.pageNumber=f,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this.useRequestAnimationFrame=!1,this.cancelled=!1,this.capability=s(),this.task=new _(this),this._continueBound=this._continue.bind(this),this._scheduleNextBound=this._scheduleNext.bind(this),this._nextBound=this._next.bind(this)}return a.prototype={initalizeGraphics:function(a){if(!this.cancelled){PDFJS.pdfBug&&"StepperManager"in z&&z.StepperManager.enabled&&(this.stepper=z.StepperManager.create(this.pageNumber-1),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());var b=this.params;this.gfx=new ka(b.canvasContext,this.commonObjs,this.objs,b.imageLayer),this.gfx.beginDrawing(b.viewport,a),this.operatorListIdx=0,this.graphicsReady=!0,this.graphicsReadyCallback&&this.graphicsReadyCallback()}},cancel:function(){this.running=!1,this.cancelled=!0,this.callback("cancelled")},operatorListChanged:function(){return this.graphicsReady?(this.stepper&&this.stepper.updateOperatorList(this.operatorList),void(this.running||this._continue())):void(this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound))},_continue:function(){this.running=!0,this.cancelled||(this.task.onContinue?this.task.onContinue.call(this.task,this._scheduleNextBound):this._scheduleNext())},_scheduleNext:function(){this.useRequestAnimationFrame?window.requestAnimationFrame(this._nextBound):Promise.resolve(void 0).then(this._nextBound)},_next:function(){this.cancelled||(this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(),this.callback())))}},a}(),ba=(PDFJS.Metadata=function(){function a(a){return a.replace(/>\\376\\377([^<]+)/g,function(a,b){for(var c=b.replace(/\\([0-3])([0-7])([0-7])/g,function(a,b,c,d){return String.fromCharCode(64*b+8*c+1*d)}),d="",e=0;e<c.length;e+=2){var f=256*c.charCodeAt(e)+c.charCodeAt(e+1);d+="&#x"+(65536+f).toString(16).substring(1)+";"}return">"+d})}function b(b){if("string"==typeof b){b=a(b);var c=new DOMParser;b=c.parseFromString(b,"application/xml")}else b instanceof Document||d("Metadata: Invalid metadata object");this.metaDocument=b,this.metadata={},this.parse()}return b.prototype={parse:function(){var a=this.metaDocument,b=a.documentElement;if("rdf:rdf"!==b.nodeName.toLowerCase())for(b=b.firstChild;b&&"rdf:rdf"!==b.nodeName.toLowerCase();)b=b.nextSibling;var c=b?b.nodeName.toLowerCase():null;if(b&&"rdf:rdf"===c&&b.hasChildNodes()){var d,e,f,g,h,i,j,k=b.childNodes;for(g=0,i=k.length;i>g;g++)if(d=k[g],"rdf:description"===d.nodeName.toLowerCase())for(h=0,j=d.childNodes.length;j>h;h++)"#text"!==d.childNodes[h].nodeName.toLowerCase()&&(e=d.childNodes[h],f=e.nodeName.toLowerCase(),this.metadata[f]=e.textContent.trim())}},get:function(a){return this.metadata[a]||null},has:function(a){return"undefined"!=typeof this.metadata[a]}},b}(),16),ca=100,da=4096,ea=.65,fa=!0,ga=1e3,ha=16,ia=function(){var a={};return{getCanvas:function(b,c,d,e){var f;if(void 0!==a[b])f=a[b],f.canvas.width=c,f.canvas.height=d,f.context.setTransform(1,0,0,1,0,0);else{var g=v(c,d),h=g.getContext("2d");e&&w(h),a[b]=f={canvas:g,context:h}}return f},clear:function(){for(var b in a){var c=a[b];c.canvas.width=0,c.canvas.height=0,delete a[b]}}}}(),ja=function(){function a(a){this.alphaIsShape=!1,this.fontSize=0,this.fontSizeScale=1,this.textMatrix=S,this.textMatrixScale=1,this.fontMatrix=B,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRenderingMode=C.FILL,this.textRise=0,this.fillColor="#000000",this.strokeColor="#000000",this.patternFill=!1,this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.activeSMask=null,this.old=a}return a.prototype={clone:function(){return Object.create(this)},setCurrentPoint:function(a,b){this.x=a,this.y=b}},a}(),ka=function(){function c(a,b,c,d){this.ctx=a,this.current=new ja,this.stateStack=[],this.pendingClip=null,this.pendingEOFill=!1,this.res=null,this.xobjs=null,this.commonObjs=b,this.objs=c,this.imageLayer=d,this.groupStack=[],this.processingType3=null,this.baseTransform=null,this.baseTransformStack=[],this.groupLevel=0,this.smaskStack=[],this.smaskCounter=0,this.tempSMask=null,a&&w(a),this.cachedGetSinglePixelWidth=null}function e(a,b){if("undefined"!=typeof ImageData&&b instanceof ImageData)return void a.putImageData(b,0,0);var c,e,f,g,h,i=b.height,j=b.width,k=i%ha,l=(i-k)/ha,m=0===k?l:l+1,n=a.createImageData(j,ha),o=0,p=b.data,q=n.data;if(b.kind===D.GRAYSCALE_1BPP){var r=p.byteLength,s=PDFJS.hasCanvasTypedArrays?new Uint32Array(q.buffer):new R(q),t=s.length,u=j+7>>3,v=4294967295,w=PDFJS.isLittleEndian||!PDFJS.hasCanvasTypedArrays?4278190080:255;for(e=0;m>e;e++){for(g=l>e?ha:k,c=0,f=0;g>f;f++){for(var x=r-o,y=0,z=x>u?j:8*x-7,A=-8&z,B=0,C=0;A>y;y+=8)C=p[o++],s[c++]=128&C?v:w,s[c++]=64&C?v:w,s[c++]=32&C?v:w,s[c++]=16&C?v:w,s[c++]=8&C?v:w,s[c++]=4&C?v:w,s[c++]=2&C?v:w,s[c++]=1&C?v:w;for(;z>y;y++)0===B&&(C=p[o++],B=128),s[c++]=C&B?v:w,B>>=1}for(;t>c;)s[c++]=0;a.putImageData(n,0,e*ha)}}else if(b.kind===D.RGBA_32BPP){for(f=0,h=j*ha*4,e=0;l>e;e++)q.set(p.subarray(o,o+h)),o+=h,a.putImageData(n,0,f),f+=ha;m>e&&(h=j*k*4,q.set(p.subarray(o,o+h)),a.putImageData(n,0,f))}else if(b.kind===D.RGB_24BPP)for(g=ha,h=j*g,e=0;m>e;e++){for(e>=l&&(g=k,h=j*g),c=0,f=h;f--;)q[c++]=p[o++],q[c++]=p[o++],q[c++]=p[o++],q[c++]=255;a.putImageData(n,0,e*ha)}else d("bad image kind: "+b.kind)}function g(a,b){for(var c=b.height,d=b.width,e=c%ha,f=(c-e)/ha,g=0===e?f:f+1,h=a.createImageData(d,ha),i=0,j=b.data,k=h.data,l=0;g>l;l++){for(var m=f>l?ha:e,n=3,o=0;m>o;o++)for(var p=0,q=0;d>q;q++){if(!p){var r=j[i++];p=128}k[n]=r&p?0:255,n+=4,p>>=1}a.putImageData(h,0,l*ha)}}function h(a,b){for(var c=["strokeStyle","fillStyle","fillRule","globalAlpha","lineWidth","lineCap","lineJoin","miterLimit","globalCompositeOperation","font"],d=0,e=c.length;e>d;d++){var f=c[d];void 0!==a[f]&&(b[f]=a[f])}void 0!==a.setLineDash?(b.setLineDash(a.getLineDash()),b.lineDashOffset=a.lineDashOffset):void 0!==a.mozDashOffset&&(b.mozDash=a.mozDash,b.mozDashOffset=a.mozDashOffset)}function j(a,b,c,d){for(var e=a.length,f=3;e>f;f+=4){var g=a[f];if(0===g)a[f-3]=b,a[f-2]=c,a[f-1]=d;else if(255>g){var h=255-g;a[f-3]=a[f-3]*g+b*h>>8,a[f-2]=a[f-2]*g+c*h>>8,a[f-1]=a[f-1]*g+d*h>>8}}}function k(a,b){for(var c=a.length,d=1/255,e=3;c>e;e+=4){var f=a[e];b[e]=b[e]*f*d|0}}function l(a,b){for(var c=a.length,d=3;c>d;d+=4){var e=77*a[d-3]+152*a[d-2]+28*a[d-1];b[d]=b[d]*e>>16}}function m(a,b,c,d,e,f){var g,h=!!f,i=h?f[0]:0,m=h?f[1]:0,n=h?f[2]:0;g="Luminosity"===e?l:k;for(var o=1048576,p=Math.min(d,Math.ceil(o/c)),q=0;d>q;q+=p){var r=Math.min(p,d-q),s=a.getImageData(0,q,c,r),t=b.getImageData(0,q,c,r);h&&j(s.data,i,m,n),g(s.data,t.data),a.putImageData(t,0,q)}}function n(a,b,c){var d=b.canvas,e=b.context;a.setTransform(b.scaleX,0,0,b.scaleY,b.offsetX,b.offsetY);var f=b.backdrop||null;if(la.isEnabled){var g=la.composeSMask(c.canvas,d,{subtype:b.subtype,backdrop:f});return a.setTransform(1,0,0,1,0,0),void a.drawImage(g,b.offsetX,b.offsetY)}m(e,c,d.width,d.height,b.subtype,f),a.drawImage(d,0,0)}var o=15,r=10,s=["butt","round","square"],t=["miter","round","bevel"],u={},v={};c.prototype={beginDrawing:function(a,b){var c=this.ctx.canvas.width,d=this.ctx.canvas.height;b?this.ctx.clearRect(0,0,c,d):(this.ctx.mozOpaque=!0,this.ctx.save(),this.ctx.fillStyle="rgb(255, 255, 255)",this.ctx.fillRect(0,0,c,d),this.ctx.restore());var e=a.transform;this.ctx.save(),this.ctx.transform.apply(this.ctx,e),this.baseTransform=this.ctx.mozCurrentTransform.slice(),this.imageLayer&&this.imageLayer.beginLayout()},executeOperatorList:function(a,b,c,d){var e=a.argsArray,f=a.fnArray,g=b||0,h=e.length;if(h===g)return g;for(var i,j=h-g>r&&"function"==typeof c,k=j?Date.now()+o:0,l=0,m=this.commonObjs,n=this.objs;;){if(void 0!==d&&g===d.nextBreakPoint)return d.breakIt(g,c),g;if(i=f[g],i!==G.dependency)this[i].apply(this,e[g]);else for(var p=e[g],q=0,s=p.length;s>q;q++){var t=p[q],u="g"===t[0]&&"_"===t[1],v=u?m:n;if(!v.isResolved(t))return v.get(t,c),g}if(g++,g===h)return g;if(j&&++l>r){if(Date.now()>k)return c(),g;l=0}}},endDrawing:function(){this.ctx.restore(),ia.clear(),la.clear(),this.imageLayer&&this.imageLayer.endLayout()},setLineWidth:function(a){this.current.lineWidth=a,this.ctx.lineWidth=a},setLineCap:function(a){this.ctx.lineCap=s[a]},setLineJoin:function(a){this.ctx.lineJoin=t[a]},setMiterLimit:function(a){this.ctx.miterLimit=a},setDash:function(a,b){var c=this.ctx;void 0!==c.setLineDash?(c.setLineDash(a),c.lineDashOffset=b):(c.mozDash=a,c.mozDashOffset=b)},setRenderingIntent:function(a){},setFlatness:function(a){},setGState:function(a){for(var c=0,d=a.length;d>c;c++){var e=a[c],f=e[0],g=e[1];switch(f){case"LW":this.setLineWidth(g);break;case"LC":this.setLineCap(g);break;case"LJ":this.setLineJoin(g);break;case"ML":this.setMiterLimit(g);break;case"D":this.setDash(g[0],g[1]);break;case"RI":this.setRenderingIntent(g);break;case"FL":this.setFlatness(g);break;case"Font":this.setFont(g[0],g[1]);break;case"CA":this.current.strokeAlpha=e[1];break;case"ca":this.current.fillAlpha=e[1],this.ctx.globalAlpha=e[1];break;case"BM":if(g&&g.name&&"Normal"!==g.name){var h=g.name.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()}).substring(1);this.ctx.globalCompositeOperation=h,this.ctx.globalCompositeOperation!==h&&b('globalCompositeOperation "'+h+'" is not supported')}else this.ctx.globalCompositeOperation="source-over";break;case"SMask":this.current.activeSMask&&this.endSMaskGroup(),this.current.activeSMask=g?this.tempSMask:null,this.current.activeSMask&&this.beginSMaskGroup(),this.tempSMask=null}}},beginSMaskGroup:function(){var a=this.current.activeSMask,b=a.canvas.width,c=a.canvas.height,d="smaskGroupAt"+this.groupLevel,e=ia.getCanvas(d,b,c,!0),f=this.ctx,g=f.mozCurrentTransform;this.ctx.save();var i=e.context;i.scale(1/a.scaleX,1/a.scaleY),i.translate(-a.offsetX,-a.offsetY),i.transform.apply(i,g),h(f,i),this.ctx=i,this.setGState([["BM","Normal"],["ca",1],["CA",1]]),this.groupStack.push(f),this.groupLevel++},endSMaskGroup:function(){var a=this.ctx;this.groupLevel--,this.ctx=this.groupStack.pop(),n(this.ctx,this.current.activeSMask,a),this.ctx.restore()},save:function(){this.ctx.save();var a=this.current;this.stateStack.push(a),this.current=a.clone(),this.current.activeSMask=null},restore:function(){0!==this.stateStack.length&&(null!==this.current.activeSMask&&this.endSMaskGroup(),this.current=this.stateStack.pop(),this.ctx.restore(),this.pendingClip=null,this.cachedGetSinglePixelWidth=null)},transform:function(a,b,c,d,e,f){this.ctx.transform(a,b,c,d,e,f),this.cachedGetSinglePixelWidth=null},constructPath:function(a,b){for(var c=this.ctx,d=this.current,e=d.x,f=d.y,g=0,h=0,i=a.length;i>g;g++)switch(0|a[g]){case G.rectangle:e=b[h++],f=b[h++];var j=b[h++],k=b[h++];0===j&&(j=this.getSinglePixelWidth()),0===k&&(k=this.getSinglePixelWidth());var l=e+j,m=f+k;this.ctx.moveTo(e,f),this.ctx.lineTo(l,f),this.ctx.lineTo(l,m),this.ctx.lineTo(e,m),this.ctx.lineTo(e,f),this.ctx.closePath();break;case G.moveTo:e=b[h++],f=b[h++],c.moveTo(e,f);break;case G.lineTo:e=b[h++],f=b[h++],c.lineTo(e,f);break;case G.curveTo:e=b[h+4],f=b[h+5],c.bezierCurveTo(b[h],b[h+1],b[h+2],b[h+3],e,f),h+=6;break;case G.curveTo2:c.bezierCurveTo(e,f,b[h],b[h+1],b[h+2],b[h+3]),e=b[h+2],f=b[h+3],h+=4;break;case G.curveTo3:e=b[h+2],f=b[h+3],c.bezierCurveTo(b[h],b[h+1],e,f,e,f),h+=4;break;case G.closePath:c.closePath()}d.setCurrentPoint(e,f)},closePath:function(){this.ctx.closePath()},stroke:function(a){a="undefined"!=typeof a?a:!0;var b=this.ctx,c=this.current.strokeColor;b.lineWidth=Math.max(this.getSinglePixelWidth()*ea,this.current.lineWidth),b.globalAlpha=this.current.strokeAlpha,c&&c.hasOwnProperty("type")&&"Pattern"===c.type?(b.save(),b.strokeStyle=c.getPattern(b,this),b.stroke(),b.restore()):b.stroke(),a&&this.consumePath(),b.globalAlpha=this.current.fillAlpha},closeStroke:function(){this.closePath(),this.stroke()},fill:function(a){a="undefined"!=typeof a?a:!0;var b=this.ctx,c=this.current.fillColor,d=this.current.patternFill,e=!1;d&&(b.save(),b.fillStyle=c.getPattern(b,this),e=!0),this.pendingEOFill?(void 0!==b.mozFillRule?(b.mozFillRule="evenodd",b.fill(),b.mozFillRule="nonzero"):b.fill("evenodd"),this.pendingEOFill=!1):b.fill(),e&&b.restore(),a&&this.consumePath()},eoFill:function(){this.pendingEOFill=!0,this.fill()},fillStroke:function(){this.fill(!1),this.stroke(!1),this.consumePath()},eoFillStroke:function(){this.pendingEOFill=!0,this.fillStroke()},closeFillStroke:function(){this.closePath(),this.fillStroke()},closeEOFillStroke:function(){this.pendingEOFill=!0,this.closePath(),this.fillStroke()},endPath:function(){this.consumePath()},clip:function(){this.pendingClip=u},eoClip:function(){this.pendingClip=v},beginText:function(){this.current.textMatrix=S,this.current.textMatrixScale=1,this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0},endText:function(){var a=this.pendingTextPaths,b=this.ctx;if(void 0===a)return void b.beginPath();b.save(),b.beginPath();for(var c=0;c<a.length;c++){
+var d=a[c];b.setTransform.apply(b,d.transform),b.translate(d.x,d.y),d.addToPath(b,d.fontSize)}b.restore(),b.clip(),b.beginPath(),delete this.pendingTextPaths},setCharSpacing:function(a){this.current.charSpacing=a},setWordSpacing:function(a){this.current.wordSpacing=a},setHScale:function(a){this.current.textHScale=a/100},setLeading:function(a){this.current.leading=-a},setFont:function(a,c){var e=this.commonObjs.get(a),f=this.current;if(e||d("Can't find font for "+a),f.fontMatrix=e.fontMatrix?e.fontMatrix:B,0!==f.fontMatrix[0]&&0!==f.fontMatrix[3]||b("Invalid font matrix for font "+a),0>c?(c=-c,f.fontDirection=-1):f.fontDirection=1,this.current.font=e,this.current.fontSize=c,!e.isType3Font){var g=e.loadedName||"sans-serif",h=e.black?e.bold?"900":"bold":e.bold?"bold":"normal",i=e.italic?"italic":"normal",j='"'+g+'", '+e.fallbackName,k=ba>c?ba:c>ca?ca:c;this.current.fontSizeScale=c/k;var l=i+" "+h+" "+k+"px "+j;this.ctx.font=l}},setTextRenderingMode:function(a){this.current.textRenderingMode=a},setTextRise:function(a){this.current.textRise=a},moveText:function(a,b){this.current.x=this.current.lineX+=a,this.current.y=this.current.lineY+=b},setLeadingMoveText:function(a,b){this.setLeading(-b),this.moveText(a,b)},setTextMatrix:function(a,b,c,d,e,f){this.current.textMatrix=[a,b,c,d,e,f],this.current.textMatrixScale=Math.sqrt(a*a+b*b),this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0},nextLine:function(){this.moveText(0,this.current.leading)},paintChar:function(a,b,c){var d,e=this.ctx,f=this.current,g=f.font,h=f.textRenderingMode,i=f.fontSize/f.fontSizeScale,j=h&C.FILL_STROKE_MASK,k=!!(h&C.ADD_TO_PATH_FLAG);if((g.disableFontFace||k)&&(d=g.getPathGenerator(this.commonObjs,a)),g.disableFontFace?(e.save(),e.translate(b,c),e.beginPath(),d(e,i),j!==C.FILL&&j!==C.FILL_STROKE||e.fill(),j!==C.STROKE&&j!==C.FILL_STROKE||e.stroke(),e.restore()):(j!==C.FILL&&j!==C.FILL_STROKE||e.fillText(a,b,c),j!==C.STROKE&&j!==C.FILL_STROKE||e.strokeText(a,b,c)),k){var l=this.pendingTextPaths||(this.pendingTextPaths=[]);l.push({transform:e.mozCurrentTransform,x:b,y:c,fontSize:i,addToPath:d})}},get isFontSubpixelAAEnabled(){var a=document.createElement("canvas").getContext("2d");a.scale(1.5,1),a.fillText("I",0,10);for(var b=a.getImageData(0,0,10,10).data,c=!1,d=3;d<b.length;d+=4)if(b[d]>0&&b[d]<255){c=!0;break}return i(this,"isFontSubpixelAAEnabled",c)},showText:function(a){var b=this.current,c=b.font;if(c.isType3Font)return this.showType3Text(a);var d=b.fontSize;if(0!==d){var e=this.ctx,f=b.fontSizeScale,g=b.charSpacing,h=b.wordSpacing,i=b.fontDirection,j=b.textHScale*i,k=a.length,l=c.vertical,m=l?1:-1,n=c.defaultVMetrics,o=d*b.fontMatrix[0],q=b.textRenderingMode===C.FILL&&!c.disableFontFace;e.save(),e.transform.apply(e,b.textMatrix),e.translate(b.x,b.y+b.textRise),i>0?e.scale(j,-1):e.scale(j,1);var r=b.lineWidth,s=b.textMatrixScale;if(0===s||0===r){var t=b.textRenderingMode&C.FILL_STROKE_MASK;t!==C.STROKE&&t!==C.FILL_STROKE||(this.cachedGetSinglePixelWidth=null,r=this.getSinglePixelWidth()*ea)}else r/=s;1!==f&&(e.scale(f,f),r/=f),e.lineWidth=r;var u,v=0;for(u=0;k>u;++u){var w=a[u];if(null!==w)if(p(w))v+=m*w*d/1e3;else{var x,y,z,A,B=!1,D=w.fontChar,E=w.accent,F=w.width;if(l){var G,H,I;G=w.vmetric||n,H=w.vmetric?G[1]:.5*F,H=-H*o,I=G[2]*o,F=G?-G[0]:F,x=H/f,y=(v+I)/f}else x=v/f,y=0;if(c.remeasure&&F>0&&this.isFontSubpixelAAEnabled){var J=1e3*e.measureText(D).width/d*f,K=F/J;B=!0,e.save(),e.scale(K,1),x/=K}q&&!E?e.fillText(D,x,y):(this.paintChar(D,x,y),E&&(z=x+E.offset.x/f,A=y-E.offset.y/f,this.paintChar(E.fontChar,z,A)));var L=F*o+g*i;v+=L,B&&e.restore()}else v+=i*h}l?b.y-=v*j:b.x+=v*j,e.restore()}},showType3Text:function(a){var c,d,e,f,g=this.ctx,h=this.current,i=h.font,j=h.fontSize,k=h.fontDirection,l=i.vertical?1:-1,m=h.charSpacing,n=h.wordSpacing,o=h.textHScale*k,q=h.fontMatrix||B,r=a.length,s=h.textRenderingMode===C.INVISIBLE;if(!s&&0!==j){for(this.cachedGetSinglePixelWidth=null,g.save(),g.transform.apply(g,h.textMatrix),g.translate(h.x,h.y),g.scale(o,k),c=0;r>c;++c)if(d=a[c],null!==d)if(p(d))f=l*d*j/1e3,this.ctx.translate(f,0),h.x+=f*o;else{var t=i.charProcOperatorList[d.operatorListId];if(t){this.processingType3=d,this.save(),g.scale(j,j),g.transform.apply(g,q),this.executeOperatorList(t),this.restore();var u=T.applyTransform([d.width,0],q);e=u[0]*j+m,g.translate(e,0),h.x+=e*o}else b('Type3 character "'+d.operatorListId+'" is not available')}else this.ctx.translate(n,0),h.x+=n*o;g.restore(),this.processingType3=null}},setCharWidth:function(a,b){},setCharWidthAndBounds:function(a,b,c,d,e,f){this.ctx.rect(c,d,e-c,f-d),this.clip(),this.endPath()},getColorN_Pattern:function(a){var b;if("TilingPattern"===a[0]){var c=a[1],d=this.baseTransform||this.ctx.mozCurrentTransform.slice();b=new oa(a,c,this.ctx,this.objs,this.commonObjs,d)}else b=y(a);return b},setStrokeColorN:function(){this.current.strokeColor=this.getColorN_Pattern(arguments)},setFillColorN:function(){this.current.fillColor=this.getColorN_Pattern(arguments),this.current.patternFill=!0},setStrokeRGBColor:function(a,b,c){var d=T.makeCssRgb(a,b,c);this.ctx.strokeStyle=d,this.current.strokeColor=d},setFillRGBColor:function(a,b,c){var d=T.makeCssRgb(a,b,c);this.ctx.fillStyle=d,this.current.fillColor=d,this.current.patternFill=!1},shadingFill:function(a){var b=this.ctx;this.save();var c=y(a);b.fillStyle=c.getPattern(b,this,!0);var d=b.mozCurrentTransformInverse;if(d){var e=b.canvas,f=e.width,g=e.height,h=T.applyTransform([0,0],d),i=T.applyTransform([0,g],d),j=T.applyTransform([f,0],d),k=T.applyTransform([f,g],d),l=Math.min(h[0],i[0],j[0],k[0]),m=Math.min(h[1],i[1],j[1],k[1]),n=Math.max(h[0],i[0],j[0],k[0]),o=Math.max(h[1],i[1],j[1],k[1]);this.ctx.fillRect(l,m,n-l,o-m)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);this.restore()},beginInlineImage:function(){d("Should not call beginInlineImage")},beginImageData:function(){d("Should not call beginImageData")},paintFormXObjectBegin:function(a,b){if(this.save(),this.baseTransformStack.push(this.baseTransform),q(a)&&6===a.length&&this.transform.apply(this,a),this.baseTransform=this.ctx.mozCurrentTransform,q(b)&&4===b.length){var c=b[2]-b[0],d=b[3]-b[1];this.ctx.rect(b[0],b[1],c,d),this.clip(),this.endPath()}},paintFormXObjectEnd:function(){this.restore(),this.baseTransform=this.baseTransformStack.pop()},beginGroup:function(c){this.save();var d=this.ctx;c.isolated||a("TODO: Support non-isolated groups."),c.knockout&&b("Knockout groups not supported.");var e=d.mozCurrentTransform;c.matrix&&d.transform.apply(d,c.matrix),f(c.bbox,"Bounding box is required.");var g=T.getAxialAlignedBoundingBox(c.bbox,d.mozCurrentTransform),i=[0,0,d.canvas.width,d.canvas.height];g=T.intersect(g,i)||[0,0,0,0];var j=Math.floor(g[0]),k=Math.floor(g[1]),l=Math.max(Math.ceil(g[2])-j,1),m=Math.max(Math.ceil(g[3])-k,1),n=1,o=1;l>da&&(n=l/da,l=da),m>da&&(o=m/da,m=da);var p="groupAt"+this.groupLevel;c.smask&&(p+="_smask_"+this.smaskCounter++%2);var q=ia.getCanvas(p,l,m,!0),r=q.context;r.scale(1/n,1/o),r.translate(-j,-k),r.transform.apply(r,e),c.smask?this.smaskStack.push({canvas:q.canvas,context:r,offsetX:j,offsetY:k,scaleX:n,scaleY:o,subtype:c.smask.subtype,backdrop:c.smask.backdrop}):(d.setTransform(1,0,0,1,0,0),d.translate(j,k),d.scale(n,o)),h(d,r),this.ctx=r,this.setGState([["BM","Normal"],["ca",1],["CA",1]]),this.groupStack.push(d),this.groupLevel++},endGroup:function(a){this.groupLevel--;var b=this.ctx;this.ctx=this.groupStack.pop(),void 0!==this.ctx.imageSmoothingEnabled?this.ctx.imageSmoothingEnabled=!1:this.ctx.mozImageSmoothingEnabled=!1,a.smask?this.tempSMask=this.smaskStack.pop():this.ctx.drawImage(b.canvas,0,0),this.restore()},beginAnnotations:function(){this.save(),this.current=new ja},endAnnotations:function(){this.restore()},beginAnnotation:function(a,b,c){if(this.save(),q(a)&&4===a.length){var d=a[2]-a[0],e=a[3]-a[1];this.ctx.rect(a[0],a[1],d,e),this.clip(),this.endPath()}this.transform.apply(this,b),this.transform.apply(this,c)},endAnnotation:function(){this.restore()},paintJpegXObject:function(a,c,d){var e=this.objs.get(a);if(!e)return void b("Dependent image isn't ready yet");this.save();var f=this.ctx;if(f.scale(1/c,-1/d),f.drawImage(e,0,0,e.width,e.height,0,-d,c,d),this.imageLayer){var g=f.mozCurrentTransformInverse,h=this.getCanvasPosition(0,0);this.imageLayer.appendImage({objId:a,left:h[0],top:h[1],width:c/g[0],height:d/g[3]})}this.restore()},paintImageMaskXObject:function(a){var b=this.ctx,c=a.width,d=a.height,e=this.current.fillColor,f=this.current.patternFill,h=this.processingType3;if(fa&&h&&void 0===h.compiled&&(ga>=c&&ga>=d?h.compiled=x({data:a.data,width:c,height:d}):h.compiled=null),h&&h.compiled)return void h.compiled(b);var i=ia.getCanvas("maskCanvas",c,d),j=i.context;j.save(),g(j,a),j.globalCompositeOperation="source-in",j.fillStyle=f?e.getPattern(j,this):e,j.fillRect(0,0,c,d),j.restore(),this.paintInlineImageXObject(i.canvas)},paintImageMaskXObjectRepeat:function(a,b,c,d){var e=a.width,f=a.height,h=this.current.fillColor,i=this.current.patternFill,j=ia.getCanvas("maskCanvas",e,f),k=j.context;k.save(),g(k,a),k.globalCompositeOperation="source-in",k.fillStyle=i?h.getPattern(k,this):h,k.fillRect(0,0,e,f),k.restore();for(var l=this.ctx,m=0,n=d.length;n>m;m+=2)l.save(),l.transform(b,0,0,c,d[m],d[m+1]),l.scale(1,-1),l.drawImage(j.canvas,0,0,e,f,0,-1,1,1),l.restore()},paintImageMaskXObjectGroup:function(a){for(var b=this.ctx,c=this.current.fillColor,d=this.current.patternFill,e=0,f=a.length;f>e;e++){var h=a[e],i=h.width,j=h.height,k=ia.getCanvas("maskCanvas",i,j),l=k.context;l.save(),g(l,h),l.globalCompositeOperation="source-in",l.fillStyle=d?c.getPattern(l,this):c,l.fillRect(0,0,i,j),l.restore(),b.save(),b.transform.apply(b,h.transform),b.scale(1,-1),b.drawImage(k.canvas,0,0,i,j,0,-1,1,1),b.restore()}},paintImageXObject:function(a){var c=this.objs.get(a);return c?void this.paintInlineImageXObject(c):void b("Dependent image isn't ready yet")},paintImageXObjectRepeat:function(a,c,d,e){var f=this.objs.get(a);if(!f)return void b("Dependent image isn't ready yet");for(var g=f.width,h=f.height,i=[],j=0,k=e.length;k>j;j+=2)i.push({transform:[c,0,0,d,e[j],e[j+1]],x:0,y:0,w:g,h:h});this.paintInlineImageXObjectGroup(f,i)},paintInlineImageXObject:function(a){var b=a.width,c=a.height,d=this.ctx;this.save(),d.scale(1/b,-1/c);var f,g,h=d.mozCurrentTransformInverse,i=h[0],j=h[1],k=Math.max(Math.sqrt(i*i+j*j),1),l=h[2],m=h[3],n=Math.max(Math.sqrt(l*l+m*m),1);if(a instanceof HTMLElement||!a.data)f=a;else{g=ia.getCanvas("inlineImage",b,c);var o=g.context;e(o,a),f=g.canvas}for(var p=b,q=c,r="prescale1";k>2&&p>1||n>2&&q>1;){var s=p,t=q;k>2&&p>1&&(s=Math.ceil(p/2),k/=p/s),n>2&&q>1&&(t=Math.ceil(q/2),n/=q/t),g=ia.getCanvas(r,s,t),o=g.context,o.clearRect(0,0,s,t),o.drawImage(f,0,0,p,q,0,0,s,t),f=g.canvas,p=s,q=t,r="prescale1"===r?"prescale2":"prescale1"}if(d.drawImage(f,0,0,p,q,0,-c,b,c),this.imageLayer){var u=this.getCanvasPosition(0,-c);this.imageLayer.appendImage({imgData:a,left:u[0],top:u[1],width:b/h[0],height:c/h[3]})}this.restore()},paintInlineImageXObjectGroup:function(a,b){var c=this.ctx,d=a.width,f=a.height,g=ia.getCanvas("inlineImage",d,f),h=g.context;e(h,a);for(var i=0,j=b.length;j>i;i++){var k=b[i];if(c.save(),c.transform.apply(c,k.transform),c.scale(1,-1),c.drawImage(g.canvas,k.x,k.y,k.w,k.h,0,-1,1,1),this.imageLayer){var l=this.getCanvasPosition(k.x,k.y);this.imageLayer.appendImage({imgData:a,left:l[0],top:l[1],width:d,height:f})}c.restore()}},paintSolidColorImageMask:function(){this.ctx.fillRect(0,0,1,1)},paintXObject:function(){I.notify(H.unknown),b("Unsupported 'paintXObject' command.")},markPoint:function(a){},markPointProps:function(a,b){},beginMarkedContent:function(a){},beginMarkedContentProps:function(a,b){},endMarkedContent:function(){},beginCompat:function(){},endCompat:function(){},consumePath:function(){var a=this.ctx;this.pendingClip&&(this.pendingClip===v?void 0!==a.mozFillRule?(a.mozFillRule="evenodd",a.clip(),a.mozFillRule="nonzero"):a.clip("evenodd"):a.clip(),this.pendingClip=null),a.beginPath()},getSinglePixelWidth:function(a){if(null===this.cachedGetSinglePixelWidth){var b=this.ctx.mozCurrentTransformInverse;this.cachedGetSinglePixelWidth=Math.sqrt(Math.max(b[0]*b[0]+b[1]*b[1],b[2]*b[2]+b[3]*b[3]))}return this.cachedGetSinglePixelWidth},getCanvasPosition:function(a,b){var c=this.ctx.mozCurrentTransform;return[c[0]*a+c[2]*b+c[4],c[1]*a+c[3]*b+c[5]]}};for(var z in G)c.prototype[G[z]]=c.prototype[z];return c}(),la=function(){function a(a,b,c){var d=a.createShader(c);a.shaderSource(d,b),a.compileShader(d);var e=a.getShaderParameter(d,a.COMPILE_STATUS);if(!e){var f=a.getShaderInfoLog(d);throw new Error("Error during shader compilation: "+f)}return d}function b(b,c){return a(b,c,b.VERTEX_SHADER)}function c(b,c){return a(b,c,b.FRAGMENT_SHADER)}function d(a,b){for(var c=a.createProgram(),d=0,e=b.length;e>d;++d)a.attachShader(c,b[d]);a.linkProgram(c);var f=a.getProgramParameter(c,a.LINK_STATUS);if(!f){var g=a.getProgramInfoLog(c);throw new Error("Error during program linking: "+g)}return c}function e(a,b,c){a.activeTexture(c);var d=a.createTexture();return a.bindTexture(a.TEXTURE_2D,d),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,b),d}function f(){m||(n=document.createElement("canvas"),m=n.getContext("webgl",{premultipliedalpha:!1}))}function g(){var a,e;f(),a=n,n=null,e=m,m=null;var g=b(e,o),h=c(e,p),i=d(e,[g,h]);e.useProgram(i);var j={};j.gl=e,j.canvas=a,j.resolutionLocation=e.getUniformLocation(i,"u_resolution"),j.positionLocation=e.getAttribLocation(i,"a_position"),j.backdropLocation=e.getUniformLocation(i,"u_backdrop"),j.subtypeLocation=e.getUniformLocation(i,"u_subtype");var k=e.getAttribLocation(i,"a_texCoord"),l=e.getUniformLocation(i,"u_image"),r=e.getUniformLocation(i,"u_mask"),s=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),e.STATIC_DRAW),e.enableVertexAttribArray(k),e.vertexAttribPointer(k,2,e.FLOAT,!1,0,0),e.uniform1i(l,0),e.uniform1i(r,1),q=j}function h(a,b,c){var d=a.width,f=a.height;q||g();var h=q,i=h.canvas,j=h.gl;i.width=d,i.height=f,j.viewport(0,0,j.drawingBufferWidth,j.drawingBufferHeight),j.uniform2f(h.resolutionLocation,d,f),c.backdrop?j.uniform4f(h.resolutionLocation,c.backdrop[0],c.backdrop[1],c.backdrop[2],1):j.uniform4f(h.resolutionLocation,0,0,0,0),j.uniform1i(h.subtypeLocation,"Luminosity"===c.subtype?1:0);var k=e(j,a,j.TEXTURE0),l=e(j,b,j.TEXTURE1),m=j.createBuffer();return j.bindBuffer(j.ARRAY_BUFFER,m),j.bufferData(j.ARRAY_BUFFER,new Float32Array([0,0,d,0,0,f,0,f,d,0,d,f]),j.STATIC_DRAW),j.enableVertexAttribArray(h.positionLocation),j.vertexAttribPointer(h.positionLocation,2,j.FLOAT,!1,0,0),j.clearColor(0,0,0,0),j.enable(j.BLEND),j.blendFunc(j.ONE,j.ONE_MINUS_SRC_ALPHA),j.clear(j.COLOR_BUFFER_BIT),j.drawArrays(j.TRIANGLES,0,6),j.flush(),j.deleteTexture(k),j.deleteTexture(l),j.deleteBuffer(m),i}function j(){var a,e;f(),a=n,n=null,e=m,m=null;var g=b(e,r),h=c(e,s),i=d(e,[g,h]);e.useProgram(i);var j={};j.gl=e,j.canvas=a,j.resolutionLocation=e.getUniformLocation(i,"u_resolution"),j.scaleLocation=e.getUniformLocation(i,"u_scale"),j.offsetLocation=e.getUniformLocation(i,"u_offset"),j.positionLocation=e.getAttribLocation(i,"a_position"),j.colorLocation=e.getAttribLocation(i,"a_color"),t=j}function k(a,b,c,d,e){t||j();var f=t,g=f.canvas,h=f.gl;g.width=a,g.height=b,h.viewport(0,0,h.drawingBufferWidth,h.drawingBufferHeight),h.uniform2f(f.resolutionLocation,a,b);var i,k,l,m=0;for(i=0,k=d.length;k>i;i++)switch(d[i].type){case"lattice":l=d[i].coords.length/d[i].verticesPerRow|0,m+=(l-1)*(d[i].verticesPerRow-1)*6;break;case"triangles":m+=d[i].coords.length}var n=new Float32Array(2*m),o=new Uint8Array(3*m),p=e.coords,q=e.colors,r=0,s=0;for(i=0,k=d.length;k>i;i++){var u=d[i],v=u.coords,w=u.colors;switch(u.type){case"lattice":var x=u.verticesPerRow;l=v.length/x|0;for(var y=1;l>y;y++)for(var z=y*x+1,A=1;x>A;A++,z++)n[r]=p[v[z-x-1]],n[r+1]=p[v[z-x-1]+1],n[r+2]=p[v[z-x]],n[r+3]=p[v[z-x]+1],n[r+4]=p[v[z-1]],n[r+5]=p[v[z-1]+1],o[s]=q[w[z-x-1]],o[s+1]=q[w[z-x-1]+1],o[s+2]=q[w[z-x-1]+2],o[s+3]=q[w[z-x]],o[s+4]=q[w[z-x]+1],o[s+5]=q[w[z-x]+2],o[s+6]=q[w[z-1]],o[s+7]=q[w[z-1]+1],o[s+8]=q[w[z-1]+2],n[r+6]=n[r+2],n[r+7]=n[r+3],n[r+8]=n[r+4],n[r+9]=n[r+5],n[r+10]=p[v[z]],n[r+11]=p[v[z]+1],o[s+9]=o[s+3],o[s+10]=o[s+4],o[s+11]=o[s+5],o[s+12]=o[s+6],o[s+13]=o[s+7],o[s+14]=o[s+8],o[s+15]=q[w[z]],o[s+16]=q[w[z]+1],o[s+17]=q[w[z]+2],r+=12,s+=18;break;case"triangles":for(var B=0,C=v.length;C>B;B++)n[r]=p[v[B]],n[r+1]=p[v[B]+1],o[s]=q[w[B]],o[s+1]=q[w[B]+1],o[s+2]=q[w[B]+2],r+=2,s+=3}}c?h.clearColor(c[0]/255,c[1]/255,c[2]/255,1):h.clearColor(0,0,0,0),h.clear(h.COLOR_BUFFER_BIT);var D=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,D),h.bufferData(h.ARRAY_BUFFER,n,h.STATIC_DRAW),h.enableVertexAttribArray(f.positionLocation),h.vertexAttribPointer(f.positionLocation,2,h.FLOAT,!1,0,0);var E=h.createBuffer();return h.bindBuffer(h.ARRAY_BUFFER,E),h.bufferData(h.ARRAY_BUFFER,o,h.STATIC_DRAW),h.enableVertexAttribArray(f.colorLocation),h.vertexAttribPointer(f.colorLocation,3,h.UNSIGNED_BYTE,!1,0,0),h.uniform2f(f.scaleLocation,e.scaleX,e.scaleY),h.uniform2f(f.offsetLocation,e.offsetX,e.offsetY),h.drawArrays(h.TRIANGLES,0,m),h.flush(),h.deleteBuffer(D),h.deleteBuffer(E),g}function l(){q&&q.canvas&&(q.canvas.width=0,q.canvas.height=0),t&&t.canvas&&(t.canvas.width=0,t.canvas.height=0),q=null,t=null}var m,n,o="  attribute vec2 a_position;                                      attribute vec2 a_texCoord;                                                                                                      uniform vec2 u_resolution;                                                                                                      varying vec2 v_texCoord;                                                                                                        void main() {                                                     vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0;       gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);                                                                              v_texCoord = a_texCoord;                                      }                                                             ",p="  precision mediump float;                                                                                                        uniform vec4 u_backdrop;                                        uniform int u_subtype;                                          uniform sampler2D u_image;                                      uniform sampler2D u_mask;                                                                                                       varying vec2 v_texCoord;                                                                                                        void main() {                                                     vec4 imageColor = texture2D(u_image, v_texCoord);               vec4 maskColor = texture2D(u_mask, v_texCoord);                 if (u_backdrop.a > 0.0) {                                         maskColor.rgb = maskColor.rgb * maskColor.a +                                   u_backdrop.rgb * (1.0 - maskColor.a);         }                                                               float lum;                                                      if (u_subtype == 0) {                                             lum = maskColor.a;                                            } else {                                                          lum = maskColor.r * 0.3 + maskColor.g * 0.59 +                        maskColor.b * 0.11;                                     }                                                               imageColor.a *= lum;                                            imageColor.rgb *= imageColor.a;                                 gl_FragColor = imageColor;                                    }                                                             ",q=null,r="  attribute vec2 a_position;                                      attribute vec3 a_color;                                                                                                         uniform vec2 u_resolution;                                      uniform vec2 u_scale;                                           uniform vec2 u_offset;                                                                                                          varying vec4 v_color;                                                                                                           void main() {                                                     vec2 position = (a_position + u_offset) * u_scale;              vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0;         gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);                                                                              v_color = vec4(a_color / 255.0, 1.0);                         }                                                             ",s="  precision mediump float;                                                                                                        varying vec4 v_color;                                                                                                           void main() {                                                     gl_FragColor = v_color;                                       }                                                             ",t=null;return{get isEnabled(){if(PDFJS.disableWebGL)return!1;var a=!1;try{f(),a=!!m}catch(b){}return i(this,"isEnabled",a)},composeSMask:h,drawFigures:k,clear:l}}(),ma={};ma.RadialAxial={fromIR:function(a){var b=a[1],c=a[2],d=a[3],e=a[4],f=a[5],g=a[6];return{type:"Pattern",getPattern:function(a){var h;"axial"===b?h=a.createLinearGradient(d[0],d[1],e[0],e[1]):"radial"===b&&(h=a.createRadialGradient(d[0],d[1],f,e[0],e[1],g));for(var i=0,j=c.length;j>i;++i){var k=c[i];h.addColorStop(k[0],k[1])}return h}}}};var na=function(){function a(a,b,c,d,e,f,g,h){var i,j=b.coords,k=b.colors,l=a.data,m=4*a.width;j[c+1]>j[d+1]&&(i=c,c=d,d=i,i=f,f=g,g=i),j[d+1]>j[e+1]&&(i=d,d=e,e=i,i=g,g=h,h=i),j[c+1]>j[d+1]&&(i=c,c=d,d=i,i=f,f=g,g=i);var n=(j[c]+b.offsetX)*b.scaleX,o=(j[c+1]+b.offsetY)*b.scaleY,p=(j[d]+b.offsetX)*b.scaleX,q=(j[d+1]+b.offsetY)*b.scaleY,r=(j[e]+b.offsetX)*b.scaleX,s=(j[e+1]+b.offsetY)*b.scaleY;if(!(o>=s))for(var t,u,v,w,x,y,z,A,B,C=k[f],D=k[f+1],E=k[f+2],F=k[g],G=k[g+1],H=k[g+2],I=k[h],J=k[h+1],K=k[h+2],L=Math.round(o),M=Math.round(s),N=L;M>=N;N++){q>N?(B=o>N?0:o===q?1:(o-N)/(o-q),t=n-(n-p)*B,u=C-(C-F)*B,v=D-(D-G)*B,w=E-(E-H)*B):(B=N>s?1:q===s?0:(q-N)/(q-s),t=p-(p-r)*B,u=F-(F-I)*B,v=G-(G-J)*B,w=H-(H-K)*B),B=o>N?0:N>s?1:(o-N)/(o-s),x=n-(n-r)*B,y=C-(C-I)*B,z=D-(D-J)*B,A=E-(E-K)*B;for(var O=Math.round(Math.min(t,x)),P=Math.round(Math.max(t,x)),Q=m*N+4*O,R=O;P>=R;R++)B=(t-R)/(t-x),B=0>B?0:B>1?1:B,l[Q++]=u-(u-y)*B|0,l[Q++]=v-(v-z)*B|0,l[Q++]=w-(w-A)*B|0,l[Q++]=255}}function b(b,c,e){var f,g,h=c.coords,i=c.colors;switch(c.type){case"lattice":var j=c.verticesPerRow,k=Math.floor(h.length/j)-1,l=j-1;for(f=0;k>f;f++)for(var m=f*j,n=0;l>n;n++,m++)a(b,e,h[m],h[m+1],h[m+j],i[m],i[m+1],i[m+j]),a(b,e,h[m+j+1],h[m+1],h[m+j],i[m+j+1],i[m+1],i[m+j]);break;case"triangles":for(f=0,g=h.length;g>f;f+=3)a(b,e,h[f],h[f+1],h[f+2],i[f],i[f+1],i[f+2]);break;default:d("illigal figure")}}function c(a,c,d,e,f,g){var h,i,j,k,l=1.1,m=3e3,n=Math.floor(a[0]),o=Math.floor(a[1]),p=Math.ceil(a[2])-n,q=Math.ceil(a[3])-o,r=Math.min(Math.ceil(Math.abs(p*c[0]*l)),m),s=Math.min(Math.ceil(Math.abs(q*c[1]*l)),m),t=p/r,u=q/s,v={coords:d,colors:e,offsetX:-n,offsetY:-o,scaleX:1/t,scaleY:1/u};if(la.isEnabled)h=la.drawFigures(r,s,g,f,v),i=ia.getCanvas("mesh",r,s,!1),i.context.drawImage(h,0,0),h=i.canvas;else{i=ia.getCanvas("mesh",r,s,!1);var w=i.context,x=w.createImageData(r,s);if(g){var y=x.data;for(j=0,k=y.length;k>j;j+=4)y[j]=g[0],y[j+1]=g[1],y[j+2]=g[2],y[j+3]=255}for(j=0;j<f.length;j++)b(x,f[j],v);w.putImageData(x,0,0),h=i.canvas}return{canvas:h,offsetX:n,offsetY:o,scaleX:t,scaleY:u}}return c}();ma.Mesh={fromIR:function(a){var b=a[2],c=a[3],d=a[4],e=a[5],f=a[6],g=a[8];return{type:"Pattern",getPattern:function(a,h,i){var j;if(i)j=T.singularValueDecompose2dScale(a.mozCurrentTransform);else if(j=T.singularValueDecompose2dScale(h.baseTransform),f){var k=T.singularValueDecompose2dScale(f);j=[j[0]*k[0],j[1]*k[1]]}var l=na(e,j,b,c,d,i?null:g);return i||(a.setTransform.apply(a,h.baseTransform),f&&a.transform.apply(a,f)),a.translate(l.offsetX,l.offsetY),a.scale(l.scaleX,l.scaleY),a.createPattern(l.canvas,"no-repeat")}}}},ma.Dummy={fromIR:function(){return{type:"Pattern",getPattern:function(){return"hotpink"}}}};var oa=function(){function b(a,b,c,d,e,f){this.operatorList=a[2],this.matrix=a[3]||[1,0,0,1,0,0],this.bbox=a[4],this.xstep=a[5],this.ystep=a[6],this.paintType=a[7],this.tilingType=a[8],this.color=b,this.objs=d,this.commonObjs=e,this.baseTransform=f,this.type="Pattern",this.ctx=c}var c={COLORED:1,UNCOLORED:2},e=3e3;return b.prototype={createPatternCanvas:function(b){var c=this.operatorList,d=this.bbox,f=this.xstep,g=this.ystep,h=this.paintType,i=this.tilingType,j=this.color,k=this.objs,l=this.commonObjs;a("TilingType: "+i);var m=d[0],n=d[1],o=d[2],p=d[3],q=[m,n],r=[m+f,n+g],s=r[0]-q[0],t=r[1]-q[1],u=T.singularValueDecompose2dScale(this.matrix),v=T.singularValueDecompose2dScale(this.baseTransform),w=[u[0]*v[0],u[1]*v[1]];s=Math.min(Math.ceil(Math.abs(s*w[0])),e),t=Math.min(Math.ceil(Math.abs(t*w[1])),e);var x=ia.getCanvas("pattern",s,t,!0),y=x.context,z=new ka(y,l,k);z.groupLevel=b.groupLevel,this.setFillAndStrokeStyleToContext(y,h,j),this.setScale(s,t,f,g),this.transformToScale(z);var A=[1,0,0,1,-q[0],-q[1]];return z.transform.apply(z,A),this.clipBbox(z,d,m,n,o,p),z.executeOperatorList(c),x.canvas},setScale:function(a,b,c,d){this.scale=[a/c,b/d]},transformToScale:function(a){var b=this.scale,c=[b[0],0,0,b[1],0,0];a.transform.apply(a,c)},scaleToContext:function(){var a=this.scale;this.ctx.scale(1/a[0],1/a[1])},clipBbox:function(a,b,c,d,e,f){if(b&&q(b)&&4===b.length){var g=e-c,h=f-d;a.ctx.rect(c,d,g,h),a.clip(),a.endPath()}},setFillAndStrokeStyleToContext:function(a,b,e){switch(b){case c.COLORED:var f=this.ctx;a.fillStyle=f.fillStyle,a.strokeStyle=f.strokeStyle;break;case c.UNCOLORED:var g=T.makeCssRgb(e[0],e[1],e[2]);a.fillStyle=g,a.strokeStyle=g;break;default:d("Unsupported paint type: "+b)}},getPattern:function(a,b){var c=this.createPatternCanvas(b);return a=this.ctx,a.setTransform.apply(a,this.baseTransform),a.transform.apply(a,this.matrix),this.scaleToContext(),a.createPattern(c,"repeat")}},b}();PDFJS.disableFontFace=!1;var pa={insertRule:function(a){var b=document.getElementById("PDFJS_FONT_STYLE_TAG");b||(b=document.createElement("style"),b.id="PDFJS_FONT_STYLE_TAG",document.documentElement.getElementsByTagName("head")[0].appendChild(b));var c=b.sheet;c.insertRule(a,c.cssRules.length)},clear:function(){var a=document.getElementById("PDFJS_FONT_STYLE_TAG");a&&a.parentNode.removeChild(a),this.nativeFontFaces.forEach(function(a){document.fonts["delete"](a)}),this.nativeFontFaces.length=0},get loadTestFont(){return i(this,"loadTestFont",atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="))},get isEvalSupported(){var a=!1;if(PDFJS.isEvalSupported)try{new Function(""),a=!0}catch(b){}return i(this,"isEvalSupported",a)},loadTestFontId:0,loadingContext:{requests:[],nextRequestId:0},isSyncFontLoadingSupported:function(){if(A)return!1;var a=window.navigator.userAgent,b=/Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(a);return b&&b[1]>=14?!0:"node"===a}(),nativeFontFaces:[],isFontLoadingAPISupported:!A&&"undefined"!=typeof document&&!!document.fonts,addNativeFontFace:function(a){this.nativeFontFaces.push(a),document.fonts.add(a)},bind:function(a,c){f(!A,"bind() shall be called from main thread");for(var d=[],e=[],g=[],h=function(a){return a.loaded["catch"](function(c){b('Failed to load font "'+a.family+'": '+c)})},i=0,j=a.length;j>i;i++){var k=a[i];if(!k.attached&&k.loading!==!1)if(k.attached=!0,this.isFontLoadingAPISupported){var l=k.createNativeFontFace();l&&g.push(h(l))}else{var m=k.bindDOM();m&&(d.push(m),e.push(k))}}var n=pa.queueLoadingCallback(c);this.isFontLoadingAPISupported?Promise.all(g).then(function(){n.complete()}):d.length>0&&!this.isSyncFontLoadingSupported?pa.prepareFontLoadEvent(d,e,n):n.complete()},queueLoadingCallback:function(a){function b(){for(f(!e.end,"completeRequest() cannot be called twice"),e.end=Date.now();c.requests.length>0&&c.requests[0].end;){var a=c.requests.shift();setTimeout(a.callback,0)}}var c=pa.loadingContext,d="pdfjs-font-loading-"+c.nextRequestId++,e={id:d,complete:b,callback:a,started:Date.now()};return c.requests.push(e),e},prepareFontLoadEvent:function(a,c,d){function e(a,b){return a.charCodeAt(b)<<24|a.charCodeAt(b+1)<<16|a.charCodeAt(b+2)<<8|255&a.charCodeAt(b+3)}function f(a,b,c,d){var e=a.substr(0,b),f=a.substr(b+c);return e+d+f}function g(a,c){if(l++,l>30)return b("Load test font never loaded."),void c();k.font="30px "+a,k.fillText(".",0,20);var d=k.getImageData(0,0,1,1);return d.data[3]>0?void c():void setTimeout(g.bind(null,a,c))}var h,i,j=document.createElement("canvas");j.width=1,j.height=1;var k=j.getContext("2d"),l=0,n="lt"+Date.now()+this.loadTestFontId++,o=this.loadTestFont,p=976;o=f(o,p,n.length,n);var q=16,r=1482184792,s=e(o,q);for(h=0,i=n.length-3;i>h;h+=4)s=s-r+e(n,h)|0;h<n.length&&(s=s-r+e(n+"XXX",h)|0),o=f(o,q,4,m(s));var t="url(data:font/opentype;base64,"+btoa(o)+");",u='@font-face { font-family:"'+n+'";src:'+t+"}";pa.insertRule(u);var v=[];for(h=0,i=c.length;i>h;h++)v.push(c[h].loadedName);v.push(n);var w=document.createElement("div");for(w.setAttribute("style","visibility: hidden;width: 10px; height: 10px;position: absolute; top: 0px; left: 0px;"),h=0,i=v.length;i>h;++h){var x=document.createElement("span");x.textContent="Hi",x.style.fontFamily=v[h],w.appendChild(x)}document.body.appendChild(w),g(n,function(){document.body.removeChild(w),d.complete()})}},qa=function(){function a(a,b,c){if(this.compiledGlyphs={},1!==arguments.length);else{var d=arguments[0];for(var e in d)this[e]=d[e]}}return a.prototype={createNativeFontFace:function(){if(!this.data)return null;if(PDFJS.disableFontFace)return this.disableFontFace=!0,null;var a=new FontFace(this.loadedName,this.data,{});return pa.addNativeFontFace(a),
+PDFJS.pdfBug&&"FontInspector"in z&&z.FontInspector.enabled&&z.FontInspector.fontAdded(this),a},bindDOM:function(){if(!this.data)return null;if(PDFJS.disableFontFace)return this.disableFontFace=!0,null;var a=k(new Uint8Array(this.data)),b=this.loadedName,c="url(data:"+this.mimetype+";base64,"+window.btoa(a)+");",d='@font-face { font-family:"'+b+'";src:'+c+"}";return pa.insertRule(d),PDFJS.pdfBug&&"FontInspector"in z&&z.FontInspector.enabled&&z.FontInspector.fontAdded(this,c),d},getPathGenerator:function(a,b){if(!(b in this.compiledGlyphs)){var c,d,e,f=a.get(this.loadedName+"_path_"+b);if(pa.isEvalSupported){var g,h="";for(d=0,e=f.length;e>d;d++)c=f[d],g=void 0!==c.args?c.args.join(","):"",h+="c."+c.cmd+"("+g+");\n";this.compiledGlyphs[b]=new Function("c","size",h)}else this.compiledGlyphs[b]=function(a,b){for(d=0,e=f.length;e>d;d++)c=f[d],"scale"===c.cmd&&(c.args=[b,-b]),a[c.cmd].apply(a,c.args)}}return this.compiledGlyphs[b]}},a}(),ra=10,sa=function(){function a(a,b,c){var d=a.style;if(d.fontSize=b.fontSize+"px",d.direction=b.fontDirection<0?"rtl":"ltr",c){d.fontWeight=c.black?c.bold?"bolder":"bold":c.bold?"bold":"normal",d.fontStyle=c.italic?"italic":"normal";var e=c.loadedName,f=e?'"'+e+'", ':"",g=c.fallbackName||"Helvetica, sans-serif";d.fontFamily=f+g}}function c(a){var c=document.createElement("section"),d=c.style,e=a.rect[2]-a.rect[0],f=a.rect[3]-a.rect[1];if(a.borderStyle.width>0){c.style.borderWidth=a.borderStyle.width+"px",a.borderStyle.style!==F.UNDERLINE&&(e-=2*a.borderStyle.width,f-=2*a.borderStyle.width);var g=a.borderStyle.horizontalCornerRadius,h=a.borderStyle.verticalCornerRadius;if(g>0||h>0){var i=g+"px / "+h+"px";CustomStyle.setProp("borderRadius",c,i)}switch(a.borderStyle.style){case F.SOLID:c.style.borderStyle="solid";break;case F.DASHED:c.style.borderStyle="dashed";break;case F.BEVELED:b("Unimplemented border style: beveled");break;case F.INSET:b("Unimplemented border style: inset");break;case F.UNDERLINE:c.style.borderBottomStyle="solid"}a.color?c.style.borderColor=T.makeCssRgb(0|a.color[0],0|a.color[1],0|a.color[2]):c.style.borderWidth=0}return d.width=e+"px",d.height=f+"px",c}function d(b,c){var d=document.createElement("div"),e=b.rect[2]-b.rect[0],f=b.rect[3]-b.rect[1];d.style.width=e+"px",d.style.height=f+"px",d.style.display="table";var g=document.createElement("div");g.textContent=b.fieldValue;var h=b.textAlignment;g.style.textAlign=["left","center","right"][h],g.style.verticalAlign="middle",g.style.display="table-cell";var i=b.fontRefName?c.getData(b.fontRefName):null;return a(g,b,i),d.appendChild(g),d}function e(a){var b=a.rect;b[3]-b[1]<ra&&(b[3]=b[1]+ra),b[2]-b[0]<ra&&(b[2]=b[0]+(b[3]-b[1]));var d=c(a);d.className="annotText";var e=document.createElement("img");e.style.height=d.style.height,e.style.width=d.style.width;var f=a.name;e.src=PDFJS.imageResourcesPath+"annotation-"+f.toLowerCase()+".svg",e.alt="[{{type}} Annotation]",e.dataset.l10nId="text_annotation_type",e.dataset.l10nArgs=JSON.stringify({type:f});var g=document.createElement("div");g.className="annotTextContentWrapper",g.style.left=Math.floor(b[2]-b[0]+5)+"px",g.style.top="-10px";var h=document.createElement("div");h.className="annotTextContent",h.setAttribute("hidden",!0);var i,j;if(a.hasBgColor&&a.color){var k=a.color,l=.7,m=l*(255-k[0])+k[0],n=l*(255-k[1])+k[1],o=l*(255-k[2])+k[2];h.style.backgroundColor=T.makeCssRgb(0|m,0|n,0|o)}var p=document.createElement("h1"),q=document.createElement("p");if(p.textContent=a.title,a.content||a.title){var r=document.createElement("span"),s=a.content.split(/(?:\r\n?|\n)/);for(i=0,j=s.length;j>i;++i){var t=s[i];r.appendChild(document.createTextNode(t)),j-1>i&&r.appendChild(document.createElement("br"))}q.appendChild(r);var u=!1,v=function(a){a&&(u=!0),h.hasAttribute("hidden")&&(d.style.zIndex+=1,h.removeAttribute("hidden"))},w=function(a){a&&(u=!1),h.hasAttribute("hidden")||u||(d.style.zIndex-=1,h.setAttribute("hidden",!0))},x=function(){u?w(!0):v(!0)};e.addEventListener("click",function(){x()},!1),e.addEventListener("mouseover",function(){v()},!1),e.addEventListener("mouseout",function(){w()},!1),h.addEventListener("click",function(){w(!0)},!1)}else h.setAttribute("hidden",!0);return h.appendChild(p),h.appendChild(q),g.appendChild(h),d.appendChild(e),d.appendChild(g),d}function f(a){var b=c(a);b.className="annotLink";var d=document.createElement("a");return d.href=d.title=a.url||"",a.url&&j()&&(d.target=K[PDFJS.externalLinkTarget]),b.appendChild(d),b}function g(a,b){switch(a.annotationType){case E.WIDGET:return d(a,b);case E.TEXT:return e(a);case E.LINK:return f(a);default:throw new Error("Unsupported annotationType: "+a.annotationType)}}return{getHtmlElement:g}}();PDFJS.AnnotationUtils=sa;var ta={fontStyle:"normal",fontWeight:"normal",fillColor:"#000000"},ua=function(){function a(a,b,c){for(var d=-1,e=b;c>e;e++){var f=255&(d^a[e]),h=g[f];d=d>>>8^h}return-1^d}function b(b,c,d,e){var f=e,g=c.length;d[f]=g>>24&255,d[f+1]=g>>16&255,d[f+2]=g>>8&255,d[f+3]=255&g,f+=4,d[f]=255&b.charCodeAt(0),d[f+1]=255&b.charCodeAt(1),d[f+2]=255&b.charCodeAt(2),d[f+3]=255&b.charCodeAt(3),f+=4,d.set(c,f),f+=c.length;var h=a(d,e+4,f);d[f]=h>>24&255,d[f+1]=h>>16&255,d[f+2]=h>>8&255,d[f+3]=255&h}function c(a,b,c){for(var d=1,e=0,f=b;c>f;++f)d=(d+(255&a[f]))%65521,e=(e+d)%65521;return e<<16|d}function d(a,d){var g,h,i,j=a.width,k=a.height,l=a.data;switch(d){case D.GRAYSCALE_1BPP:h=0,g=1,i=j+7>>3;break;case D.RGB_24BPP:h=2,g=8,i=3*j;break;case D.RGBA_32BPP:h=6,g=8,i=4*j;break;default:throw new Error("invalid format")}var m,n,o=new Uint8Array((1+i)*k),p=0,q=0;for(m=0;k>m;++m)o[p++]=0,o.set(l.subarray(q,q+i),p),q+=i,p+=i;if(d===D.GRAYSCALE_1BPP)for(p=0,m=0;k>m;m++)for(p++,n=0;i>n;n++)o[p++]^=255;var r=new Uint8Array([j>>24&255,j>>16&255,j>>8&255,255&j,k>>24&255,k>>16&255,k>>8&255,255&k,g,h,0,0,0]),s=o.length,t=65535,u=Math.ceil(s/t),v=new Uint8Array(2+s+5*u+4),w=0;v[w++]=120,v[w++]=156;for(var x=0;s>t;)v[w++]=0,v[w++]=255,v[w++]=255,v[w++]=0,v[w++]=0,v.set(o.subarray(x,x+t),w),w+=t,x+=t,s-=t;v[w++]=1,v[w++]=255&s,v[w++]=s>>8&255,v[w++]=65535&~s&255,v[w++]=(65535&~s)>>8&255,v.set(o.subarray(x),w),w+=o.length-x;var y=c(o,0,o.length);v[w++]=y>>24&255,v[w++]=y>>16&255,v[w++]=y>>8&255,v[w++]=255&y;var z=e.length+3*f+r.length+v.length,A=new Uint8Array(z),B=0;return A.set(e,B),B+=e.length,b("IHDR",r,A,B),B+=f+r.length,b("IDATA",v,A,B),B+=f+v.length,b("IEND",new Uint8Array(0),A,B),PDFJS.createObjectURL(A,"image/png")}for(var e=new Uint8Array([137,80,78,71,13,10,26,10]),f=12,g=new Int32Array(256),h=0;256>h;h++){for(var i=h,j=0;8>j;j++)i=1&i?3988292384^i>>1&2147483647:i>>1&2147483647;g[h]=i}return function(a){var b=void 0===a.kind?D.GRAYSCALE_1BPP:a.kind;return d(a,b)}}(),va=function(){function a(){this.fontSizeScale=1,this.fontWeight=ta.fontWeight,this.fontSize=0,this.textMatrix=S,this.fontMatrix=B,this.leading=0,this.x=0,this.y=0,this.lineX=0,this.lineY=0,this.charSpacing=0,this.wordSpacing=0,this.textHScale=1,this.textRise=0,this.fillColor=ta.fillColor,this.strokeColor="#000000",this.fillAlpha=1,this.strokeAlpha=1,this.lineWidth=1,this.lineJoin="",this.lineCap="",this.miterLimit=0,this.dashArray=[],this.dashPhase=0,this.dependencies=[],this.clipId="",this.pendingClip=!1,this.maskId=""}return a.prototype={clone:function(){return Object.create(this)},setCurrentPoint:function(a,b){this.x=a,this.y=b}},a}(),wa=function(){function a(a,b){var c="http://www.w3.org/2000/svg",d=document.createElementNS(c,"svg:svg");return d.setAttributeNS(null,"version","1.1"),d.setAttributeNS(null,"width",a+"px"),d.setAttributeNS(null,"height",b+"px"),d.setAttributeNS(null,"viewBox","0 0 "+a+" "+b),d}function c(a){for(var b=[],c=[],d=a.length,e=0;d>e;e++)"save"!==a[e].fn?"restore"===a[e].fn?b=c.pop():b.push(a[e]):(b.push({fnId:92,fn:"group",items:[]}),c.push(b),b=b[b.length-1].items);return b}function d(a){if(a===(0|a))return a.toString();var b=a.toFixed(10),c=b.length-1;if("0"!==b[c])return b;do c--;while("0"===b[c]);return b.substr(0,"."===b[c]?c:c+1)}function e(a){if(0===a[4]&&0===a[5]){if(0===a[1]&&0===a[2])return 1===a[0]&&1===a[3]?"":"scale("+d(a[0])+" "+d(a[3])+")";if(a[0]===a[3]&&a[1]===-a[2]){var b=180*Math.acos(a[0])/Math.PI;return"rotate("+d(b)+")"}}else if(1===a[0]&&0===a[1]&&0===a[2]&&1===a[3])return"translate("+d(a[4])+" "+d(a[5])+")";return"matrix("+d(a[0])+" "+d(a[1])+" "+d(a[2])+" "+d(a[3])+" "+d(a[4])+" "+d(a[5])+")"}function f(a,b){this.current=new va,this.transformMatrix=S,this.transformStack=[],this.extraStack=[],this.commonObjs=a,this.objs=b,this.pendingEOFill=!1,this.embedFonts=!1,this.embeddedFonts={},this.cssStyle=null}var g="http://www.w3.org/2000/svg",h="http://www.w3.org/XML/1998/namespace",i="http://www.w3.org/1999/xlink",j=["butt","round","square"],k=["miter","round","bevel"],l=0,m=0;return f.prototype={save:function(){this.transformStack.push(this.transformMatrix);var a=this.current;this.extraStack.push(a),this.current=a.clone()},restore:function(){this.transformMatrix=this.transformStack.pop(),this.current=this.extraStack.pop(),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix)),this.pgrp.appendChild(this.tgrp)},group:function(a){this.save(),this.executeOpTree(a),this.restore()},loadDependencies:function(a){for(var b=a.fnArray,c=b.length,d=a.argsArray,e=this,f=0;c>f;f++)if(G.dependency===b[f])for(var g=d[f],h=0,i=g.length;i>h;h++){var j,k=g[h],l="g_"===k.substring(0,2);j=l?new Promise(function(a){e.commonObjs.get(k,a)}):new Promise(function(a){e.objs.get(k,a)}),this.current.dependencies.push(j)}return Promise.all(this.current.dependencies)},transform:function(a,b,c,d,f,h){var i=[a,b,c,d,f,h];this.transformMatrix=PDFJS.Util.transform(this.transformMatrix,i),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix))},getSVG:function(b,c){return this.svg=a(c.width,c.height),this.viewport=c,this.loadDependencies(b).then(function(){this.transformMatrix=S,this.pgrp=document.createElementNS(g,"svg:g"),this.pgrp.setAttributeNS(null,"transform",e(c.transform)),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix)),this.defs=document.createElementNS(g,"svg:defs"),this.pgrp.appendChild(this.defs),this.pgrp.appendChild(this.tgrp),this.svg.appendChild(this.pgrp);var a=this.convertOpList(b);return this.executeOpTree(a),this.svg}.bind(this))},convertOpList:function(a){var b=a.argsArray,d=a.fnArray,e=d.length,f=[],g=[];for(var h in G)f[G[h]]=h;for(var i=0;e>i;i++){var j=d[i];g.push({fnId:j,fn:f[j],args:b[i]})}return c(g)},executeOpTree:function(a){for(var c=a.length,d=0;c>d;d++){var e=a[d].fn,f=a[d].fnId,g=a[d].args;switch(0|f){case G.beginText:this.beginText();break;case G.setLeading:this.setLeading(g);break;case G.setLeadingMoveText:this.setLeadingMoveText(g[0],g[1]);break;case G.setFont:this.setFont(g);break;case G.showText:this.showText(g[0]);break;case G.showSpacedText:this.showText(g[0]);break;case G.endText:this.endText();break;case G.moveText:this.moveText(g[0],g[1]);break;case G.setCharSpacing:this.setCharSpacing(g[0]);break;case G.setWordSpacing:this.setWordSpacing(g[0]);break;case G.setHScale:this.setHScale(g[0]);break;case G.setTextMatrix:this.setTextMatrix(g[0],g[1],g[2],g[3],g[4],g[5]);break;case G.setLineWidth:this.setLineWidth(g[0]);break;case G.setLineJoin:this.setLineJoin(g[0]);break;case G.setLineCap:this.setLineCap(g[0]);break;case G.setMiterLimit:this.setMiterLimit(g[0]);break;case G.setFillRGBColor:this.setFillRGBColor(g[0],g[1],g[2]);break;case G.setStrokeRGBColor:this.setStrokeRGBColor(g[0],g[1],g[2]);break;case G.setDash:this.setDash(g[0],g[1]);break;case G.setGState:this.setGState(g[0]);break;case G.fill:this.fill();break;case G.eoFill:this.eoFill();break;case G.stroke:this.stroke();break;case G.fillStroke:this.fillStroke();break;case G.eoFillStroke:this.eoFillStroke();break;case G.clip:this.clip("nonzero");break;case G.eoClip:this.clip("evenodd");break;case G.paintSolidColorImageMask:this.paintSolidColorImageMask();break;case G.paintJpegXObject:this.paintJpegXObject(g[0],g[1],g[2]);break;case G.paintImageXObject:this.paintImageXObject(g[0]);break;case G.paintInlineImageXObject:this.paintInlineImageXObject(g[0]);break;case G.paintImageMaskXObject:this.paintImageMaskXObject(g[0]);break;case G.paintFormXObjectBegin:this.paintFormXObjectBegin(g[0],g[1]);break;case G.paintFormXObjectEnd:this.paintFormXObjectEnd();break;case G.closePath:this.closePath();break;case G.closeStroke:this.closeStroke();break;case G.closeFillStroke:this.closeFillStroke();break;case G.nextLine:this.nextLine();break;case G.transform:this.transform(g[0],g[1],g[2],g[3],g[4],g[5]);break;case G.constructPath:this.constructPath(g[0],g[1]);break;case G.endPath:this.endPath();break;case 92:this.group(a[d].items);break;default:b("Unimplemented method "+e)}}},setWordSpacing:function(a){this.current.wordSpacing=a},setCharSpacing:function(a){this.current.charSpacing=a},nextLine:function(){this.moveText(0,this.current.leading)},setTextMatrix:function(a,b,c,e,f,h){var i=this.current;this.current.textMatrix=this.current.lineMatrix=[a,b,c,e,f,h],this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0,i.xcoords=[],i.tspan=document.createElementNS(g,"svg:tspan"),i.tspan.setAttributeNS(null,"font-family",i.fontFamily),i.tspan.setAttributeNS(null,"font-size",d(i.fontSize)+"px"),i.tspan.setAttributeNS(null,"y",d(-i.y)),i.txtElement=document.createElementNS(g,"svg:text"),i.txtElement.appendChild(i.tspan)},beginText:function(){this.current.x=this.current.lineX=0,this.current.y=this.current.lineY=0,this.current.textMatrix=S,this.current.lineMatrix=S,this.current.tspan=document.createElementNS(g,"svg:tspan"),this.current.txtElement=document.createElementNS(g,"svg:text"),this.current.txtgrp=document.createElementNS(g,"svg:g"),this.current.xcoords=[]},moveText:function(a,b){var c=this.current;this.current.x=this.current.lineX+=a,this.current.y=this.current.lineY+=b,c.xcoords=[],c.tspan=document.createElementNS(g,"svg:tspan"),c.tspan.setAttributeNS(null,"font-family",c.fontFamily),c.tspan.setAttributeNS(null,"font-size",d(c.fontSize)+"px"),c.tspan.setAttributeNS(null,"y",d(-c.y))},showText:function(a){var b=this.current,c=b.font,f=b.fontSize;if(0!==f){var g,i=b.charSpacing,j=b.wordSpacing,k=b.fontDirection,l=b.textHScale*k,m=a.length,n=c.vertical,o=f*b.fontMatrix[0],q=0;for(g=0;m>g;++g){var r=a[g];if(null!==r)if(p(r))q+=-r*f*.001;else{b.xcoords.push(b.x+q*l);var s=r.width,t=r.fontChar,u=s*o+i*k;q+=u,b.tspan.textContent+=t}else q+=k*j}n?b.y-=q*l:b.x+=q*l,b.tspan.setAttributeNS(null,"x",b.xcoords.map(d).join(" ")),b.tspan.setAttributeNS(null,"y",d(-b.y)),b.tspan.setAttributeNS(null,"font-family",b.fontFamily),b.tspan.setAttributeNS(null,"font-size",d(b.fontSize)+"px"),b.fontStyle!==ta.fontStyle&&b.tspan.setAttributeNS(null,"font-style",b.fontStyle),b.fontWeight!==ta.fontWeight&&b.tspan.setAttributeNS(null,"font-weight",b.fontWeight),b.fillColor!==ta.fillColor&&b.tspan.setAttributeNS(null,"fill",b.fillColor),b.txtElement.setAttributeNS(null,"transform",e(b.textMatrix)+" scale(1, -1)"),b.txtElement.setAttributeNS(h,"xml:space","preserve"),b.txtElement.appendChild(b.tspan),b.txtgrp.appendChild(b.txtElement),this.tgrp.appendChild(b.txtElement)}},setLeadingMoveText:function(a,b){this.setLeading(-b),this.moveText(a,b)},addFontStyle:function(a){this.cssStyle||(this.cssStyle=document.createElementNS(g,"svg:style"),this.cssStyle.setAttributeNS(null,"type","text/css"),this.defs.appendChild(this.cssStyle));var b=PDFJS.createObjectURL(a.data,a.mimetype);this.cssStyle.textContent+='@font-face { font-family: "'+a.loadedName+'"; src: url('+b+"); }\n"},setFont:function(a){var b=this.current,c=this.commonObjs.get(a[0]),e=a[1];this.current.font=c,this.embedFonts&&c.data&&!this.embeddedFonts[c.loadedName]&&(this.addFontStyle(c),this.embeddedFonts[c.loadedName]=c),b.fontMatrix=c.fontMatrix?c.fontMatrix:B;var f=c.black?c.bold?"bolder":"bold":c.bold?"bold":"normal",h=c.italic?"italic":"normal";0>e?(e=-e,b.fontDirection=-1):b.fontDirection=1,b.fontSize=e,b.fontFamily=c.loadedName,b.fontWeight=f,b.fontStyle=h,b.tspan=document.createElementNS(g,"svg:tspan"),b.tspan.setAttributeNS(null,"y",d(-b.y)),b.xcoords=[]},endText:function(){this.current.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix))},setLineWidth:function(a){this.current.lineWidth=a},setLineCap:function(a){this.current.lineCap=j[a]},setLineJoin:function(a){this.current.lineJoin=k[a]},setMiterLimit:function(a){this.current.miterLimit=a},setStrokeRGBColor:function(a,b,c){var d=T.makeCssRgb(a,b,c);this.current.strokeColor=d},setFillRGBColor:function(a,b,c){var d=T.makeCssRgb(a,b,c);this.current.fillColor=d,this.current.tspan=document.createElementNS(g,"svg:tspan"),this.current.xcoords=[]},setDash:function(a,b){this.current.dashArray=a,this.current.dashPhase=b},constructPath:function(a,b){var c=this.current,e=c.x,f=c.y;c.path=document.createElementNS(g,"svg:path");for(var h=[],i=a.length,j=0,k=0;i>j;j++)switch(0|a[j]){case G.rectangle:e=b[k++],f=b[k++];var l=b[k++],m=b[k++],n=e+l,o=f+m;h.push("M",d(e),d(f),"L",d(n),d(f),"L",d(n),d(o),"L",d(e),d(o),"Z");break;case G.moveTo:e=b[k++],f=b[k++],h.push("M",d(e),d(f));break;case G.lineTo:e=b[k++],f=b[k++],h.push("L",d(e),d(f));break;case G.curveTo:e=b[k+4],f=b[k+5],h.push("C",d(b[k]),d(b[k+1]),d(b[k+2]),d(b[k+3]),d(e),d(f)),k+=6;break;case G.curveTo2:e=b[k+2],f=b[k+3],h.push("C",d(e),d(f),d(b[k]),d(b[k+1]),d(b[k+2]),d(b[k+3])),k+=4;break;case G.curveTo3:e=b[k+2],f=b[k+3],h.push("C",d(b[k]),d(b[k+1]),d(e),d(f),d(e),d(f)),k+=4;break;case G.closePath:h.push("Z")}c.path.setAttributeNS(null,"d",h.join(" ")),c.path.setAttributeNS(null,"stroke-miterlimit",d(c.miterLimit)),c.path.setAttributeNS(null,"stroke-linecap",c.lineCap),c.path.setAttributeNS(null,"stroke-linejoin",c.lineJoin),c.path.setAttributeNS(null,"stroke-width",d(c.lineWidth)+"px"),c.path.setAttributeNS(null,"stroke-dasharray",c.dashArray.map(d).join(" ")),c.path.setAttributeNS(null,"stroke-dashoffset",d(c.dashPhase)+"px"),c.path.setAttributeNS(null,"fill","none"),this.tgrp.appendChild(c.path),c.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp),c.element=c.path,c.setCurrentPoint(e,f)},endPath:function(){var a=this.current;a.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp),this.tgrp=document.createElementNS(g,"svg:g"),this.tgrp.setAttributeNS(null,"transform",e(this.transformMatrix))},clip:function(a){var b=this.current;b.clipId="clippath"+l,l++,this.clippath=document.createElementNS(g,"svg:clipPath"),this.clippath.setAttributeNS(null,"id",b.clipId);var c=b.element.cloneNode();"evenodd"===a?c.setAttributeNS(null,"clip-rule","evenodd"):c.setAttributeNS(null,"clip-rule","nonzero"),this.clippath.setAttributeNS(null,"transform",e(this.transformMatrix)),this.clippath.appendChild(c),this.defs.appendChild(this.clippath),b.pendingClip=!0,this.cgrp=document.createElementNS(g,"svg:g"),this.cgrp.setAttributeNS(null,"clip-path","url(#"+b.clipId+")"),this.pgrp.appendChild(this.cgrp)},closePath:function(){var a=this.current,b=a.path.getAttributeNS(null,"d");b+="Z",a.path.setAttributeNS(null,"d",b)},setLeading:function(a){this.current.leading=-a},setTextRise:function(a){this.current.textRise=a},setHScale:function(a){this.current.textHScale=a/100},setGState:function(a){for(var b=0,c=a.length;c>b;b++){var d=a[b],e=d[0],f=d[1];switch(e){case"LW":this.setLineWidth(f);break;case"LC":this.setLineCap(f);break;case"LJ":this.setLineJoin(f);break;case"ML":this.setMiterLimit(f);break;case"D":this.setDash(f[0],f[1]);break;case"RI":break;case"FL":break;case"Font":this.setFont(f);break;case"CA":break;case"ca":break;case"BM":break;case"SMask":}}},fill:function(){var a=this.current;a.element.setAttributeNS(null,"fill",a.fillColor)},stroke:function(){var a=this.current;a.element.setAttributeNS(null,"stroke",a.strokeColor),a.element.setAttributeNS(null,"fill","none")},eoFill:function(){var a=this.current;a.element.setAttributeNS(null,"fill",a.fillColor),a.element.setAttributeNS(null,"fill-rule","evenodd")},fillStroke:function(){this.stroke(),this.fill()},eoFillStroke:function(){this.current.element.setAttributeNS(null,"fill-rule","evenodd"),this.fillStroke()},closeStroke:function(){this.closePath(),this.stroke()},closeFillStroke:function(){this.closePath(),this.fillStroke()},paintSolidColorImageMask:function(){var a=this.current,b=document.createElementNS(g,"svg:rect");b.setAttributeNS(null,"x","0"),b.setAttributeNS(null,"y","0"),b.setAttributeNS(null,"width","1px"),b.setAttributeNS(null,"height","1px"),b.setAttributeNS(null,"fill",a.fillColor),this.tgrp.appendChild(b)},paintJpegXObject:function(a,b,c){var e=this.current,f=this.objs.get(a),h=document.createElementNS(g,"svg:image");h.setAttributeNS(i,"xlink:href",f.src),h.setAttributeNS(null,"width",f.width+"px"),h.setAttributeNS(null,"height",f.height+"px"),h.setAttributeNS(null,"x","0"),h.setAttributeNS(null,"y",d(-c)),h.setAttributeNS(null,"transform","scale("+d(1/b)+" "+d(-1/c)+")"),this.tgrp.appendChild(h),e.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp)},paintImageXObject:function(a){var c=this.objs.get(a);return c?void this.paintInlineImageXObject(c):void b("Dependent image isn't ready yet")},paintInlineImageXObject:function(a,b){var c=this.current,e=a.width,f=a.height,h=ua(a),j=document.createElementNS(g,"svg:rect");j.setAttributeNS(null,"x","0"),j.setAttributeNS(null,"y","0"),j.setAttributeNS(null,"width",d(e)),j.setAttributeNS(null,"height",d(f)),c.element=j,this.clip("nonzero");var k=document.createElementNS(g,"svg:image");k.setAttributeNS(i,"xlink:href",h),k.setAttributeNS(null,"x","0"),k.setAttributeNS(null,"y",d(-f)),k.setAttributeNS(null,"width",d(e)+"px"),k.setAttributeNS(null,"height",d(f)+"px"),k.setAttributeNS(null,"transform","scale("+d(1/e)+" "+d(-1/f)+")"),b?b.appendChild(k):this.tgrp.appendChild(k),c.pendingClip?(this.cgrp.appendChild(this.tgrp),this.pgrp.appendChild(this.cgrp)):this.pgrp.appendChild(this.tgrp)},paintImageMaskXObject:function(a){var b=this.current,c=a.width,e=a.height,f=b.fillColor;b.maskId="mask"+m++;var h=document.createElementNS(g,"svg:mask");h.setAttributeNS(null,"id",b.maskId);var i=document.createElementNS(g,"svg:rect");i.setAttributeNS(null,"x","0"),i.setAttributeNS(null,"y","0"),i.setAttributeNS(null,"width",d(c)),i.setAttributeNS(null,"height",d(e)),i.setAttributeNS(null,"fill",f),i.setAttributeNS(null,"mask","url(#"+b.maskId+")"),this.defs.appendChild(h),this.tgrp.appendChild(i),this.paintInlineImageXObject(a,h)},paintFormXObjectBegin:function(a,b){if(this.save(),q(a)&&6===a.length&&this.transform(a[0],a[1],a[2],a[3],a[4],a[5]),q(b)&&4===b.length){var c=b[2]-b[0],e=b[3]-b[1],f=document.createElementNS(g,"svg:rect");f.setAttributeNS(null,"x",b[0]),f.setAttributeNS(null,"y",b[1]),f.setAttributeNS(null,"width",d(c)),f.setAttributeNS(null,"height",d(e)),this.current.element=f,this.clip("nonzero"),this.endPath()}},paintFormXObjectEnd:function(){this.restore()}},f}();PDFJS.SVGGraphics=wa}.call("undefined"==typeof window?this:window),PDFJS.workerSrc||"undefined"==typeof document||(PDFJS.workerSrc=function(){"use strict";var a=document.body||document.getElementsByTagName("head")[0],b=a.lastChild.src;return b&&b.replace(/\.js$/i,".worker.js")}()),"undefined"==typeof PDFJS&&(("undefined"!=typeof window?window:this).PDFJS={}),PDFJS.version="1.1.551",PDFJS.build="2a5616c",function(){"use strict";function a(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.infos&&console.log("Info: "+a)}function b(a){PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.warnings&&console.log("Warning: "+a)}function c(a){throw PDFJS.verbosity>=PDFJS.VERBOSITY_LEVELS.errors&&(console.log("Error: "+a),console.log(d())),aa.notify(_.unknown),new Error(a)}function d(){try{throw new Error}catch(a){return a.stack?a.stack.split("\n").slice(2).join("\n"):""}}function e(a,b){a||c(b)}function f(a,b){if(!a)return!1;var c=/^[a-z][a-z0-9+\-.]*(?=:)/i.exec(a);if(!c)return b;switch(c=c[0].toLowerCase()){case"http":case"https":case"ftp":case"mailto":case"tel":return!0;default:return!1}}function g(a,b,c){return Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!1}),c}function h(){switch(PDFJS.openExternalLinksInNewWindow&&(b("PDFJS.openExternalLinksInNewWindow is deprecated, use PDFJS.externalLinkTarget instead."),PDFJS.externalLinkTarget===ba.NONE&&(PDFJS.externalLinkTarget=ba.BLANK),PDFJS.openExternalLinksInNewWindow=!1),PDFJS.externalLinkTarget){case ba.NONE:return!1;case ba.SELF:case ba.BLANK:case ba.PARENT:case ba.TOP:return!0}return b("PDFJS.externalLinkTarget is invalid: "+PDFJS.externalLinkTarget),PDFJS.externalLinkTarget=ba.NONE,!1}function i(a){e(null!==a&&"object"==typeof a&&void 0!==a.length,"Invalid argument for bytesToString");var b=a.length,c=8192;if(c>b)return String.fromCharCode.apply(null,a);for(var d=[],f=0;b>f;f+=c){var g=Math.min(f+c,b),h=a.subarray(f,g);d.push(String.fromCharCode.apply(null,h))}return d.join("")}function j(a){e("string"==typeof a,"Invalid argument for stringToBytes");for(var b=a.length,c=new Uint8Array(b),d=0;b>d;++d)c[d]=255&a.charCodeAt(d);return c}function k(a){return String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,255&a)}function l(a){for(var b=1,c=0;a>b;)b<<=1,c++;return c}function m(a,b){return a[b]<<24>>24}function n(a,b){return a[b]<<8|a[b+1]}function o(a,b){return(a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3])>>>0}function p(){var a=new Uint8Array(2);a[0]=1;var b=new Uint16Array(a.buffer);return 1===b[0]}function q(){var a=document.createElement("canvas");a.width=a.height=1;var b=a.getContext("2d"),c=b.createImageData(1,1);return"undefined"!=typeof c.data.buffer}function r(a){var b,c=a.length,d=[];if("þ"===a[0]&&"ÿ"===a[1])for(b=2;c>b;b+=2)d.push(String.fromCharCode(a.charCodeAt(b)<<8|a.charCodeAt(b+1)));else for(b=0;c>b;++b){var e=oa[a.charCodeAt(b)];d.push(e?String.fromCharCode(e):a.charAt(b))}return d.join("")}function s(a){return decodeURIComponent(escape(a))}function t(a){return unescape(encodeURIComponent(a))}function u(a){for(var b in a)return!1;return!0}function v(a){return"boolean"==typeof a}function w(a){return"number"==typeof a&&(0|a)===a}function x(a){return"number"==typeof a}function y(a){return"string"==typeof a}function z(a){return a instanceof ya}function A(a,b){return a instanceof za&&(void 0===b||a.cmd===b)}function B(a,b){if(!(a instanceof Aa))return!1;if(!b)return!0;var c=a.get("Type");return z(c)&&c.name===b}function C(a){return a instanceof Array}function D(a){return"object"==typeof a&&null!==a&&void 0!==a.getBytes}function E(a){return"object"==typeof a&&null!==a&&void 0!==a.byteLength}function F(a){return a instanceof Ba}function G(){var a={};return a.promise=new Promise(function(b,c){a.resolve=b,a.reject=c}),a}function H(a,b){this.name=a,this.comObj=b,this.callbackIndex=1,this.postMessageTransfers=!0;var d=this.callbacksCapabilities={},e=this.actionHandler={};e.console_log=[function(a){console.log.apply(console,a)}],e.console_error=[function(a){console.error.apply(console,a)}],e._unsupported_feature=[function(a){aa.notify(a)}],b.onmessage=function(a){var f=a.data;if(f.isReply){var g=f.callbackId;if(f.callbackId in d){var h=d[g];delete d[g],"error"in f?h.reject(f.error):h.resolve(f.data)}else c("Cannot resolve callback "+g)}else if(f.action in e){var i=e[f.action];f.callbackId?Promise.resolve().then(function(){return i[0].call(i[1],f.data)}).then(function(a){b.postMessage({isReply:!0,callbackId:f.callbackId,data:a})},function(a){a instanceof Error&&(a+=""),b.postMessage({isReply:!0,callbackId:f.callbackId,error:a})}):i[0].call(i[1],f.data)}else c("Unknown action from worker: "+f.action)}}function I(){}function J(a,b,c){var d=b.get("Matrix"),e=b.get("BBox"),f=b.get("XStep"),g=b.get("YStep"),h=b.get("PaintType"),i=b.get("TilingType");return["TilingPattern",c,a,d,e,f,g,h,i]}function K(a){return a>=65520&&65535>=a?0:a>=62976&&63743>=a?Wb[a]||a:a}function L(a){for(var b=0,c=Xb.length;c>b;b++){var d=Xb[b];if(a>=d.begin&&a<d.end)return b}return-1}function M(a){var b=Xb[13];return a>=b.begin&&a<b.end?!0:(b=Xb[11],a>=b.begin&&a<b.end)}function N(a){var b=a.length;if(1>=b||!M(a.charCodeAt(0)))return a;for(var c="",d=b-1;d>=0;d--)c+=a[d];return c}function O(a){if(a.fontMatrix[0]!==T[0]){var b=.001/a.fontMatrix[0],c=a.widths;for(var d in c)c[d]*=b;a.defaultWidth*=b}}function P(a,b){switch(a){case"Type1":return"Type1C"===b?Z.TYPE1C:Z.TYPE1;case"CIDFontType0":return"CIDFontType0C"===b?Z.CIDFONTTYPE0C:Z.CIDFONTTYPE0;case"OpenType":return Z.OPENTYPE;case"TrueType":return Z.TRUETYPE;case"CIDFontType2":return Z.CIDFONTTYPE2;case"MMType1":return Z.MMTYPE1;case"Type0":return Z.TYPE0;default:return Z.UNKNOWN}}function Q(a,b,c){var d,e,f,g=Object.create(null);if(a.baseEncodingName)for(f=Pb[a.baseEncodingName],e=0;e<f.length;e++)d=c.indexOf(f[e]),d>=0?g[e]=d:g[e]=0;else if(a.flags&Ob.Symbolic)for(e in b)g[e]=b[e];else for(f=Pb.StandardEncoding,e=0;e<f.length;e++)d=c.indexOf(f[e]),d>=0?g[e]=d:g[e]=0;var h=a.differences;if(h)for(e in h){var i=h[e];d=c.indexOf(i),d>=0?g[e]=d:g[e]=0}return g}function R(a){return a===Dc}var S="undefined"==typeof window?this:window,T=("undefined"==typeof window,[.001,0,0,.001,0,0]),U={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},V={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},W={WIDGET:1,TEXT:2,LINK:3},X={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},Y={UNKNOWN:0,FLATE:1,LZW:2,DCT:3,JPX:4,JBIG:5,A85:6,AHX:7,CCF:8,RL:9},Z={UNKNOWN:0,TYPE1:1,TYPE1C:2,CIDFONTTYPE0:3,CIDFONTTYPE0C:4,TRUETYPE:5,CIDFONTTYPE2:6,TYPE3:7,OPENTYPE:8,TYPE0:9,MMTYPE1:10};S.PDFJS||(S.PDFJS={}),S.PDFJS.pdfBug=!1,PDFJS.VERBOSITY_LEVELS={errors:0,warnings:1,infos:5};var $=PDFJS.OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotations:78,endAnnotations:79,beginAnnotation:80,endAnnotation:81,paintJpegXObject:82,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91},_=PDFJS.UNSUPPORTED_FEATURES={unknown:"unknown",forms:"forms",javaScript:"javaScript",smask:"smask",shadingPattern:"shadingPattern",font:"font"},aa=PDFJS.UnsupportedManager=function(){var a=[];return{listen:function(b){a.push(b)},notify:function(c){b('Unsupported feature "'+c+'"');for(var d=0,e=a.length;e>d;d++)a[d](c)}}}();PDFJS.isValidUrl=f,PDFJS.shadow=g;var ba=PDFJS.LinkTarget={
+NONE:0,SELF:1,BLANK:2,PARENT:3,TOP:4};PDFJS.isExternalLinkTargetSet=h;var ca=PDFJS.PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2},da=function(){function a(a,b){this.name="PasswordException",this.message=a,this.code=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.PasswordException=da;var ea=function(){function a(a,b){this.name="UnknownErrorException",this.message=a,this.details=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.UnknownErrorException=ea;var fa=function(){function a(a){this.name="InvalidPDFException",this.message=a}return a.prototype=new Error,a.constructor=a,a}();PDFJS.InvalidPDFException=fa;var ga=function(){function a(a){this.name="MissingPDFException",this.message=a}return a.prototype=new Error,a.constructor=a,a}();PDFJS.MissingPDFException=ga;var ha=function(){function a(a,b){this.name="UnexpectedResponseException",this.message=a,this.status=b}return a.prototype=new Error,a.constructor=a,a}();PDFJS.UnexpectedResponseException=ha;var ia=function(){function a(a){this.message=a}return a.prototype=new Error,a.prototype.name="NotImplementedException",a.constructor=a,a}(),ja=function(){function a(a,b){this.begin=a,this.end=b,this.message="Missing data ["+a+", "+b+")"}return a.prototype=new Error,a.prototype.name="MissingDataException",a.constructor=a,a}(),ka=function(){function a(a){this.message=a}return a.prototype=new Error,a.prototype.name="XRefParseException",a.constructor=a,a}();Object.defineProperty(PDFJS,"isLittleEndian",{configurable:!0,get:function(){return g(PDFJS,"isLittleEndian",p())}}),Object.defineProperty(PDFJS,"hasCanvasTypedArrays",{configurable:!0,get:function(){return g(PDFJS,"hasCanvasTypedArrays",q())}});var la=function(){function a(a,b){this.buffer=a,this.byteLength=a.length,this.length=void 0===b?this.byteLength>>2:b,c(this.length)}function b(a){return{get:function(){var b=this.buffer,c=a<<2;return(b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24)>>>0},set:function(b){var c=this.buffer,d=a<<2;c[d]=255&b,c[d+1]=b>>8&255,c[d+2]=b>>16&255,c[d+3]=b>>>24&255}}}function c(c){for(;c>d;)Object.defineProperty(a.prototype,d,b(d)),d++}a.prototype=Object.create(null);var d=0;return a}(),ma=[1,0,0,1,0,0],na=PDFJS.Util=function(){function a(){}var b=["rgb(",0,",",0,",",0,")"];return a.makeCssRgb=function(a,c,d){return b[1]=a,b[3]=c,b[5]=d,b.join("")},a.transform=function(a,b){return[a[0]*b[0]+a[2]*b[1],a[1]*b[0]+a[3]*b[1],a[0]*b[2]+a[2]*b[3],a[1]*b[2]+a[3]*b[3],a[0]*b[4]+a[2]*b[5]+a[4],a[1]*b[4]+a[3]*b[5]+a[5]]},a.applyTransform=function(a,b){var c=a[0]*b[0]+a[1]*b[2]+b[4],d=a[0]*b[1]+a[1]*b[3]+b[5];return[c,d]},a.applyInverseTransform=function(a,b){var c=b[0]*b[3]-b[1]*b[2],d=(a[0]*b[3]-a[1]*b[2]+b[2]*b[5]-b[4]*b[3])/c,e=(-a[0]*b[1]+a[1]*b[0]+b[4]*b[1]-b[5]*b[0])/c;return[d,e]},a.getAxialAlignedBoundingBox=function(b,c){var d=a.applyTransform(b,c),e=a.applyTransform(b.slice(2,4),c),f=a.applyTransform([b[0],b[3]],c),g=a.applyTransform([b[2],b[1]],c);return[Math.min(d[0],e[0],f[0],g[0]),Math.min(d[1],e[1],f[1],g[1]),Math.max(d[0],e[0],f[0],g[0]),Math.max(d[1],e[1],f[1],g[1])]},a.inverseTransform=function(a){var b=a[0]*a[3]-a[1]*a[2];return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b,(a[2]*a[5]-a[4]*a[3])/b,(a[4]*a[1]-a[5]*a[0])/b]},a.apply3dTransform=function(a,b){return[a[0]*b[0]+a[1]*b[1]+a[2]*b[2],a[3]*b[0]+a[4]*b[1]+a[5]*b[2],a[6]*b[0]+a[7]*b[1]+a[8]*b[2]]},a.singularValueDecompose2dScale=function(a){var b=[a[0],a[2],a[1],a[3]],c=a[0]*b[0]+a[1]*b[2],d=a[0]*b[1]+a[1]*b[3],e=a[2]*b[0]+a[3]*b[2],f=a[2]*b[1]+a[3]*b[3],g=(c+f)/2,h=Math.sqrt((c+f)*(c+f)-4*(c*f-e*d))/2,i=g+h||1,j=g-h||1;return[Math.sqrt(i),Math.sqrt(j)]},a.normalizeRect=function(a){var b=a.slice(0);return a[0]>a[2]&&(b[0]=a[2],b[2]=a[0]),a[1]>a[3]&&(b[1]=a[3],b[3]=a[1]),b},a.intersect=function(b,c){function d(a,b){return a-b}var e=[b[0],b[2],c[0],c[2]].sort(d),f=[b[1],b[3],c[1],c[3]].sort(d),g=[];return b=a.normalizeRect(b),c=a.normalizeRect(c),e[0]===b[0]&&e[1]===c[0]||e[0]===c[0]&&e[1]===b[0]?(g[0]=e[1],g[2]=e[2],f[0]===b[1]&&f[1]===c[1]||f[0]===c[1]&&f[1]===b[1]?(g[1]=f[1],g[3]=f[2],g):!1):!1},a.sign=function(a){return 0>a?-1:1},a.appendToArray=function(a,b){Array.prototype.push.apply(a,b)},a.prependToArray=function(a,b){Array.prototype.unshift.apply(a,b)},a.extendObj=function(a,b){for(var c in b)a[c]=b[c]},a.getInheritableProperty=function(a,b){for(;a&&!a.has(b);)a=a.get("Parent");return a?a.get(b):null},a.inherit=function(a,b,c){a.prototype=Object.create(b.prototype),a.prototype.constructor=a;for(var d in c)a.prototype[d]=c[d]},a.loadScript=function(a,b){var c=document.createElement("script"),d=!1;c.setAttribute("src",a),b&&(c.onload=function(){d||b(),d=!0}),document.getElementsByTagName("head")[0].appendChild(c)},a}(),oa=(PDFJS.PageViewport=function(){function a(a,b,c,d,e,f){this.viewBox=a,this.scale=b,this.rotation=c,this.offsetX=d,this.offsetY=e;var g,h,i,j,k=(a[2]+a[0])/2,l=(a[3]+a[1])/2;switch(c%=360,c=0>c?c+360:c){case 180:g=-1,h=0,i=0,j=1;break;case 90:g=0,h=1,i=1,j=0;break;case 270:g=0,h=-1,i=-1,j=0;break;default:g=1,h=0,i=0,j=-1}f&&(i=-i,j=-j);var m,n,o,p;0===g?(m=Math.abs(l-a[1])*b+d,n=Math.abs(k-a[0])*b+e,o=Math.abs(a[3]-a[1])*b,p=Math.abs(a[2]-a[0])*b):(m=Math.abs(k-a[0])*b+d,n=Math.abs(l-a[1])*b+e,o=Math.abs(a[2]-a[0])*b,p=Math.abs(a[3]-a[1])*b),this.transform=[g*b,h*b,i*b,j*b,m-g*b*k-i*b*l,n-h*b*k-j*b*l],this.width=o,this.height=p,this.fontScale=b}return a.prototype={clone:function(b){b=b||{};var c="scale"in b?b.scale:this.scale,d="rotation"in b?b.rotation:this.rotation;return new a(this.viewBox.slice(),c,d,this.offsetX,this.offsetY,b.dontFlip)},convertToViewportPoint:function(a,b){return na.applyTransform([a,b],this.transform)},convertToViewportRectangle:function(a){var b=na.applyTransform([a[0],a[1]],this.transform),c=na.applyTransform([a[2],a[3]],this.transform);return[b[0],b[1],c[0],c[1]]},convertToPdfPoint:function(a,b){return na.applyInverseTransform([a,b],this.transform)}},a}(),[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364]);PDFJS.createPromiseCapability=G,function(){function a(a){this._status=c,this._handlers=[];try{a.call(this,this._resolve.bind(this),this._reject.bind(this))}catch(b){this._reject(b)}}if(S.Promise)return"function"!=typeof S.Promise.all&&(S.Promise.all=function(a){var b,c,d=0,e=[],f=new S.Promise(function(a,d){b=a,c=d});return a.forEach(function(a,f){d++,a.then(function(a){e[f]=a,d--,0===d&&b(e)},c)}),0===d&&b(e),f}),"function"!=typeof S.Promise.resolve&&(S.Promise.resolve=function(a){return new S.Promise(function(b){b(a)})}),"function"!=typeof S.Promise.reject&&(S.Promise.reject=function(a){return new S.Promise(function(b,c){c(a)})}),void("function"!=typeof S.Promise.prototype["catch"]&&(S.Promise.prototype["catch"]=function(a){return S.Promise.prototype.then(void 0,a)}));var c=0,d=1,e=2,f=500,g={handlers:[],running:!1,unhandledRejections:[],pendingRejectionCheck:!1,scheduleHandlers:function(a){a._status!==c&&(this.handlers=this.handlers.concat(a._handlers),a._handlers=[],this.running||(this.running=!0,setTimeout(this.runHandlers.bind(this),0)))},runHandlers:function(){for(var a=1,b=Date.now()+a;this.handlers.length>0;){var c=this.handlers.shift(),f=c.thisPromise._status,g=c.thisPromise._value;try{f===d?"function"==typeof c.onResolve&&(g=c.onResolve(g)):"function"==typeof c.onReject&&(g=c.onReject(g),f=d,c.thisPromise._unhandledRejection&&this.removeUnhandeledRejection(c.thisPromise))}catch(h){f=e,g=h}if(c.nextPromise._updateStatus(f,g),Date.now()>=b)break}return this.handlers.length>0?void setTimeout(this.runHandlers.bind(this),0):void(this.running=!1)},addUnhandledRejection:function(a){this.unhandledRejections.push({promise:a,time:Date.now()}),this.scheduleRejectionCheck()},removeUnhandeledRejection:function(a){a._unhandledRejection=!1;for(var b=0;b<this.unhandledRejections.length;b++)this.unhandledRejections[b].promise===a&&(this.unhandledRejections.splice(b),b--)},scheduleRejectionCheck:function(){this.pendingRejectionCheck||(this.pendingRejectionCheck=!0,setTimeout(function(){this.pendingRejectionCheck=!1;for(var a=Date.now(),c=0;c<this.unhandledRejections.length;c++)if(a-this.unhandledRejections[c].time>f){var d=this.unhandledRejections[c].promise._value,e="Unhandled rejection: "+d;d.stack&&(e+="\n"+d.stack),b(e),this.unhandledRejections.splice(c),c--}this.unhandledRejections.length&&this.scheduleRejectionCheck()}.bind(this),f))}};a.all=function(b){function c(a){g._status!==e&&(i=[],f(a))}var d,f,g=new a(function(a,b){d=a,f=b}),h=b.length,i=[];if(0===h)return d(i),g;for(var j=0,k=b.length;k>j;++j){var l=b[j],m=function(a){return function(b){g._status!==e&&(i[a]=b,h--,0===h&&d(i))}}(j);a.isPromise(l)?l.then(m,c):m(l)}return g},a.isPromise=function(a){return a&&"function"==typeof a.then},a.resolve=function(b){return new a(function(a){a(b)})},a.reject=function(b){return new a(function(a,c){c(b)})},a.prototype={_status:null,_value:null,_handlers:null,_unhandledRejection:null,_updateStatus:function(b,c){if(this._status!==d&&this._status!==e){if(b===d&&a.isPromise(c))return void c.then(this._updateStatus.bind(this,d),this._updateStatus.bind(this,e));this._status=b,this._value=c,b===e&&0===this._handlers.length&&(this._unhandledRejection=!0,g.addUnhandledRejection(this)),g.scheduleHandlers(this)}},_resolve:function(a){this._updateStatus(d,a)},_reject:function(a){this._updateStatus(e,a)},then:function(b,c){var d=new a(function(a,b){this.resolve=a,this.reject=b});return this._handlers.push({thisPromise:this,onResolve:b,onReject:c,nextPromise:d}),g.scheduleHandlers(this),d},"catch":function(a){return this.then(void 0,a)}},S.Promise=a}();(function(){function a(a,b,c){for(;a.length<c;)a+=b;return a}function c(){this.started={},this.times=[],this.enabled=!0}return c.prototype={time:function(a){this.enabled&&(a in this.started&&b("Timer is already running for "+a),this.started[a]=Date.now())},timeEnd:function(a){this.enabled&&(a in this.started||b("Timer has not been started for "+a),this.times.push({name:a,start:this.started[a],end:Date.now()}),delete this.started[a])},toString:function(){var b,c,d=this.times,e="",f=0;for(b=0,c=d.length;c>b;++b){var g=d[b].name;g.length>f&&(f=g.length)}for(b=0,c=d.length;c>b;++b){var h=d[b],i=h.end-h.start;e+=a(h.name," ",f)+" "+i+"ms\n"}return e}},c})();PDFJS.createBlob=function(a,b){if("undefined"!=typeof Blob)return new Blob([a],{type:b});var c=new MozBlobBuilder;return c.append(a),c.getBlob(b)},PDFJS.createObjectURL=function(){var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return function(b,c){if(!PDFJS.disableCreateObjectURL&&"undefined"!=typeof URL&&URL.createObjectURL){var d=PDFJS.createBlob(b,c);return URL.createObjectURL(d)}for(var e="data:"+c+";base64,",f=0,g=b.length;g>f;f+=3){var h=255&b[f],i=255&b[f+1],j=255&b[f+2],k=h>>2,l=(3&h)<<4|i>>4,m=g>f+1?(15&i)<<2|j>>6:64,n=g>f+2?63&j:64;e+=a[k]+a[l]+a[m]+a[n]}return e}}(),H.prototype={on:function(a,b,d){var e=this.actionHandler;e[a]&&c('There is already an actionName called "'+a+'"'),e[a]=[b,d]},send:function(a,b,c){var d={action:a,data:b};this.postMessage(d,c)},sendWithPromise:function(a,b,c){var d=this.callbackIndex++,e={action:a,data:b,callbackId:d},f=G();this.callbacksCapabilities[d]=f;try{this.postMessage(e,c)}catch(g){f.reject(g)}return f.promise},postMessage:function(a,b){b&&this.postMessageTransfers?this.comObj.postMessage(a,b):this.comObj.postMessage(a)}};var pa=function(){function a(a,b){this.url=a,b=b||{},this.isHttp=/^https?:/i.test(a),this.httpHeaders=this.isHttp&&b.httpHeaders||{},this.withCredentials=b.withCredentials||!1,this.getXhr=b.getXhr||function(){return new XMLHttpRequest},this.currXhrId=0,this.pendingRequests={},this.loadedRequests={}}function b(a){var b=a.response;if("string"!=typeof b)return b;for(var c=b.length,d=new Uint8Array(c),e=0;c>e;e++)d[e]=255&b.charCodeAt(e);return d.buffer}var c=200,d=206,e=function(){try{var a=new XMLHttpRequest;return a.open("GET","https://example.com"),a.responseType="moz-chunked-arraybuffer","moz-chunked-arraybuffer"===a.responseType}catch(b){return!1}}();return a.prototype={requestRange:function(a,b,c){var d={begin:a,end:b};for(var e in c)d[e]=c[e];return this.request(d)},requestFull:function(a){return this.request(a)},request:function(a){var b=this.getXhr(),c=this.currXhrId++,d=this.pendingRequests[c]={xhr:b};b.open("GET",this.url),b.withCredentials=this.withCredentials;for(var f in this.httpHeaders){var g=this.httpHeaders[f];"undefined"!=typeof g&&b.setRequestHeader(f,g)}if(this.isHttp&&"begin"in a&&"end"in a){var h=a.begin+"-"+(a.end-1);b.setRequestHeader("Range","bytes="+h),d.expectedStatus=206}else d.expectedStatus=200;var i=e&&!!a.onProgressiveData;return i?(b.responseType="moz-chunked-arraybuffer",d.onProgressiveData=a.onProgressiveData,d.mozChunked=!0):b.responseType="arraybuffer",a.onError&&(b.onerror=function(c){a.onError(b.status)}),b.onreadystatechange=this.onStateChange.bind(this,c),b.onprogress=this.onProgress.bind(this,c),d.onHeadersReceived=a.onHeadersReceived,d.onDone=a.onDone,d.onError=a.onError,d.onProgress=a.onProgress,b.send(null),c},onProgress:function(a,c){var d=this.pendingRequests[a];if(d){if(d.mozChunked){var e=b(d.xhr);d.onProgressiveData(e)}var f=d.onProgress;f&&f(c)}},onStateChange:function(a,e){var f=this.pendingRequests[a];if(f){var g=f.xhr;if(g.readyState>=2&&f.onHeadersReceived&&(f.onHeadersReceived(),delete f.onHeadersReceived),4===g.readyState&&a in this.pendingRequests){if(delete this.pendingRequests[a],0===g.status&&this.isHttp)return void(f.onError&&f.onError(g.status));var h=g.status||c,i=h===c&&f.expectedStatus===d;if(!i&&h!==f.expectedStatus)return void(f.onError&&f.onError(g.status));this.loadedRequests[a]=!0;var j=b(g);if(h===d){var k=g.getResponseHeader("Content-Range"),l=/bytes (\d+)-(\d+)\/(\d+)/.exec(k),m=parseInt(l[1],10);f.onDone({begin:m,chunk:j})}else f.onProgressiveData?f.onDone(null):f.onDone({begin:0,chunk:j})}}},hasPendingRequests:function(){for(var a in this.pendingRequests)return!0;return!1},getRequestXhr:function(a){return this.pendingRequests[a].xhr},isStreamingRequest:function(a){return!!this.pendingRequests[a].onProgressiveData},isPendingRequest:function(a){return a in this.pendingRequests},isLoadedRequest:function(a){return a in this.loadedRequests},abortAllRequests:function(){for(var a in this.pendingRequests)this.abortRequest(0|a)},abortRequest:function(a){var b=this.pendingRequests[a].xhr;delete this.pendingRequests[a],b.abort()}},a}(),qa=function(){function a(a,b,c){this.bytes=new Uint8Array(a),this.start=0,this.pos=0,this.end=a,this.chunkSize=b,this.loadedChunks=[],this.numChunksLoaded=0,this.numChunks=Math.ceil(a/b),this.manager=c,this.progressiveDataLength=0,this.lastSuccessfulEnsureByteChunk=-1}return a.prototype={getMissingChunks:function(){for(var a=[],b=0,c=this.numChunks;c>b;++b)this.loadedChunks[b]||a.push(b);return a},getBaseStreams:function(){return[this]},allChunksLoaded:function(){return this.numChunksLoaded===this.numChunks},onReceiveData:function(a,b){var c=a+b.byteLength;e(a%this.chunkSize===0,"Bad begin offset: "+a);var d=this.bytes.length;e(c%this.chunkSize===0||c===d,"Bad end offset: "+c),this.bytes.set(new Uint8Array(b),a);var f,g=this.chunkSize,h=Math.floor(a/g),i=Math.floor((c-1)/g)+1;for(f=h;i>f;++f)this.loadedChunks[f]||(this.loadedChunks[f]=!0,++this.numChunksLoaded)},onReceiveProgressiveData:function(a){var b=this.progressiveDataLength,c=Math.floor(b/this.chunkSize);this.bytes.set(new Uint8Array(a),b),b+=a.byteLength,this.progressiveDataLength=b;var d,e=b>=this.end?this.numChunks:Math.floor(b/this.chunkSize);for(d=c;e>d;++d)this.loadedChunks[d]||(this.loadedChunks[d]=!0,++this.numChunksLoaded)},ensureByte:function(a){var b=Math.floor(a/this.chunkSize);if(b!==this.lastSuccessfulEnsureByteChunk){if(!this.loadedChunks[b])throw new ja(a,a+1);this.lastSuccessfulEnsureByteChunk=b}},ensureRange:function(a,b){if(!(a>=b||b<=this.progressiveDataLength))for(var c=this.chunkSize,d=Math.floor(a/c),e=Math.floor((b-1)/c)+1,f=d;e>f;++f)if(!this.loadedChunks[f])throw new ja(a,b)},nextEmptyChunk:function(a){for(var b,c=this.numChunks,d=0;c>d;++d)if(b=(a+d)%c,!this.loadedChunks[b])return b;return null},hasChunk:function(a){return!!this.loadedChunks[a]},get length(){return this.end-this.start},get isEmpty(){return 0===this.length},getByte:function(){var a=this.pos;return a>=this.end?-1:(this.ensureByte(a),this.bytes[this.pos++])},getUint16:function(){var a=this.getByte(),b=this.getByte();return-1===a||-1===b?-1:(a<<8)+b},getInt32:function(){var a=this.getByte(),b=this.getByte(),c=this.getByte(),d=this.getByte();return(a<<24)+(b<<16)+(c<<8)+d},getBytes:function(a){var b=this.bytes,c=this.pos,d=this.end;if(!a)return this.ensureRange(c,d),b.subarray(c,d);var e=c+a;return e>d&&(e=d),this.ensureRange(c,e),this.pos=e,b.subarray(c,e)},peekByte:function(){var a=this.getByte();return this.pos--,a},peekBytes:function(a){var b=this.getBytes(a);return this.pos-=b.length,b},getByteRange:function(a,b){return this.ensureRange(a,b),this.bytes.subarray(a,b)},skip:function(a){a||(a=1),this.pos+=a},reset:function(){this.pos=this.start},moveStart:function(){this.start=this.pos},makeSubStream:function(a,b,c){function d(){}this.ensureRange(a,a+b),d.prototype=Object.create(this),d.prototype.getMissingChunks=function(){for(var a=this.chunkSize,b=Math.floor(this.start/a),c=Math.floor((this.end-1)/a)+1,d=[],e=b;c>e;++e)this.loadedChunks[e]||d.push(e);return d};var e=new d;return e.pos=e.start=a,e.end=a+b||this.end,e.dict=c,e},isStream:!0},a}(),ra=function(){function a(a,b,c,d){this.stream=new qa(a,b,this),this.length=a,this.chunkSize=b,this.url=c,this.disableAutoFetch=d.disableAutoFetch;var e=this.msgHandler=d.msgHandler;if(d.chunkedViewerLoading)e.on("OnDataRange",this.onReceiveData.bind(this)),e.on("OnDataProgress",this.onProgress.bind(this)),this.sendRequest=function(a,b){e.send("RequestDataRange",{begin:a,end:b})};else{var f=function(){return new XMLHttpRequest};this.networkManager=new pa(this.url,{getXhr:f,httpHeaders:d.httpHeaders,withCredentials:d.withCredentials}),this.sendRequest=function(a,b){this.networkManager.requestRange(a,b,{onDone:this.onReceiveData.bind(this),onProgress:this.onProgress.bind(this)})}}this.currRequestId=0,this.chunksNeededByRequest={},this.requestsByChunk={},this.promisesByRequest={},this.progressiveDataLength=0,this._loadedStreamCapability=G(),d.initialData&&this.onReceiveData({chunk:d.initialData})}return a.prototype={onLoadedStream:function(){return this._loadedStreamCapability.promise},requestAllChunks:function(){var a=this.stream.getMissingChunks();return this._requestChunks(a),this._loadedStreamCapability.promise},_requestChunks:function(a){var b,c,d,e=this.currRequestId++;for(this.chunksNeededByRequest[e]=b={},c=0,d=a.length;d>c;c++)this.stream.hasChunk(a[c])||(b[a[c]]=!0);if(u(b))return Promise.resolve();var f=G();this.promisesByRequest[e]=f;var g=[];for(var h in b)h=0|h,h in this.requestsByChunk||(this.requestsByChunk[h]=[],g.push(h)),this.requestsByChunk[h].push(e);if(!g.length)return f.promise;var i=this.groupChunks(g);for(c=0;c<i.length;++c){var j=i[c],k=j.beginChunk*this.chunkSize,l=Math.min(j.endChunk*this.chunkSize,this.length);this.sendRequest(k,l)}return f.promise},getStream:function(){return this.stream},requestRange:function(a,b){b=Math.min(b,this.length);for(var c=this.getBeginChunk(a),d=this.getEndChunk(b),e=[],f=c;d>f;++f)e.push(f);return this._requestChunks(e)},requestRanges:function(a){a=a||[];for(var b=[],c=0;c<a.length;c++)for(var d=this.getBeginChunk(a[c].begin),e=this.getEndChunk(a[c].end),f=d;e>f;++f)b.indexOf(f)<0&&b.push(f);return b.sort(function(a,b){return a-b}),this._requestChunks(b)},groupChunks:function(a){for(var b=[],c=-1,d=-1,e=0;e<a.length;++e){var f=a[e];0>c&&(c=f),d>=0&&d+1!==f&&(b.push({beginChunk:c,endChunk:d+1}),c=f),e+1===a.length&&b.push({beginChunk:c,endChunk:f+1}),d=f}return b},onProgress:function(a){var b=this.stream.numChunksLoaded*this.chunkSize+a.loaded;this.msgHandler.send("DocProgress",{loaded:b,total:this.length})},onReceiveData:function(a){var b=a.chunk,c=void 0===a.begin,d=c?this.progressiveDataLength:a.begin,e=d+b.byteLength,f=Math.floor(d/this.chunkSize),g=e<this.length?Math.floor(e/this.chunkSize):Math.ceil(e/this.chunkSize);c?(this.stream.onReceiveProgressiveData(b),this.progressiveDataLength=e):this.stream.onReceiveData(d,b),this.stream.allChunksLoaded()&&this._loadedStreamCapability.resolve(this.stream);var h,i,j=[];for(b=f;g>b;++b){var k=this.requestsByChunk[b]||[];for(delete this.requestsByChunk[b],h=0;h<k.length;++h){i=k[h];var l=this.chunksNeededByRequest[i];b in l&&delete l[b],u(l)&&j.push(i)}}if(!this.disableAutoFetch&&u(this.requestsByChunk)){var m;if(1===this.stream.numChunksLoaded){var n=this.stream.numChunks-1;this.stream.hasChunk(n)||(m=n)}else m=this.stream.nextEmptyChunk(g);w(m)&&this._requestChunks([m])}for(h=0;h<j.length;++h){i=j[h];var o=this.promisesByRequest[i];delete this.promisesByRequest[i],o.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})},onError:function(a){this._loadedStreamCapability.reject(a)},getBeginChunk:function(a){var b=Math.floor(a/this.chunkSize);return b},getEndChunk:function(a){var b=Math.floor((a-1)/this.chunkSize)+1;return b},abort:function(){this.networkManager&&this.networkManager.abortAllRequests();for(var a in this.promisesByRequest){var b=this.promisesByRequest[a];b.reject(new Error("Request was aborted"))}}},a}(),sa=65536,ta=function(){function a(){throw new Error("Cannot initialize BaseManagerManager")}return a.prototype={onLoadedStream:function(){throw new ia},ensureDoc:function(a,b){return this.ensure(this.pdfDocument,a,b)},ensureXRef:function(a,b){return this.ensure(this.pdfDocument.xref,a,b)},ensureCatalog:function(a,b){return this.ensure(this.pdfDocument.catalog,a,b)},getPage:function(a){return this.pdfDocument.getPage(a)},cleanup:function(){return this.pdfDocument.cleanup()},ensure:function(a,b,c){return new ia},requestRange:function(a,b){return new ia},requestLoadedStream:function(){return new ia},sendProgressiveData:function(a){return new ia},updatePassword:function(a){this.pdfDocument.xref.password=this.password=a,this._passwordChangedCapability&&this._passwordChangedCapability.resolve()},passwordChanged:function(){return this._passwordChangedCapability=G(),this._passwordChangedCapability.promise},terminate:function(){return new ia}},a}(),ua=function(){function a(a,b){var c=new Mc(a);this.pdfDocument=new xa(this,c,b),this._loadedStreamCapability=G(),this._loadedStreamCapability.resolve(c)}return a.prototype=Object.create(ta.prototype),a.prototype.constructor=a,a.prototype.ensure=function(a,b,c){return new Promise(function(d,e){try{var f,g=a[b];f="function"==typeof g?g.apply(a,c):g,d(f)}catch(h){e(h)}})},a.prototype.requestRange=function(a,b){return Promise.resolve()},a.prototype.requestLoadedStream=function(){},a.prototype.onLoadedStream=function(){return this._loadedStreamCapability.promise},a.prototype.terminate=function(){},a}(),va=function(){function a(a,b){this.msgHandler=b;var c={msgHandler:b,httpHeaders:a.httpHeaders,withCredentials:a.withCredentials,chunkedViewerLoading:a.chunkedViewerLoading,disableAutoFetch:a.disableAutoFetch,initialData:a.initialData};this.streamManager=new ra(a.length,sa,a.url,c),this.pdfDocument=new xa(this,this.streamManager.getStream(),a.password)}return a.prototype=Object.create(ta.prototype),a.prototype.constructor=a,a.prototype.ensure=function(a,b,c){var d=this;return new Promise(function(e,f){function g(){try{var h,i=a[b];h="function"==typeof i?i.apply(a,c):i,e(h)}catch(j){if(!(j instanceof ja))return void f(j);d.streamManager.requestRange(j.begin,j.end).then(g,f)}}g()})},a.prototype.requestRange=function(a,b){return this.streamManager.requestRange(a,b)},a.prototype.requestLoadedStream=function(){this.streamManager.requestAllChunks()},a.prototype.sendProgressiveData=function(a){this.streamManager.onReceiveData({chunk:a})},a.prototype.onLoadedStream=function(){return this.streamManager.onLoadedStream()},a.prototype.terminate=function(){this.streamManager.abort()},a}(),wa=function(){function a(a,b,c,d,e,f){this.pdfManager=a,this.pageIndex=c,this.pageDict=d,this.xref=b,this.ref=e,this.fontCache=f,this.idCounters={obj:0},this.resourcesPromise=null}var c=[0,0,612,792];return a.prototype={getPageProp:function(a){return this.pageDict.get(a)},getInheritedPageProp:function(a){for(var c=this.pageDict,d=null,e=0,f=100;c;){var g=c.get(a);if(g&&(d||(d=[]),d.push(g)),++e>f){b("Page_getInheritedPageProp: maximum loop count exceeded.");break}c=c.get("Parent")}return d?1===d.length||!B(d[0])||e>f?d[0]:Aa.merge(this.xref,d):Aa.empty},get content(){return this.getPageProp("Contents")},get resources(){return g(this,"resources",this.getInheritedPageProp("Resources"))},get mediaBox(){var a=this.getInheritedPageProp("MediaBox");return C(a)&&4===a.length||(a=c),g(this,"mediaBox",a)},get view(){var a=this.mediaBox,b=this.getInheritedPageProp("CropBox");return C(b)&&4===b.length?(b=na.intersect(b,a),b?g(this,"view",b):g(this,"view",a)):g(this,"view",a)},get rotate(){var a=this.getInheritedPageProp("Rotate")||0;return a%90!==0?a=0:a>=360?a%=360:0>a&&(a=(a%360+360)%360),g(this,"rotate",a)},getContentStream:function(){var a,b=this.content;if(C(b)){var c,d=this.xref,e=b.length,f=[];for(c=0;e>c;++c)f.push(d.fetchIfRef(b[c]));a=new Pc(f)}else a=D(b)?b:new _c;return a},loadResources:function(a){return this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources")),this.resourcesPromise.then(function(){var b=new Ia(this.resources.map,a,this.xref);return b.load()}.bind(this))},getOperatorList:function(a,b,c){var d=this,e=this.pdfManager,f=e.ensure(this,"getContentStream",[]),g=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),h=new vb(e,this.xref,a,this.pageIndex,"p"+this.pageIndex+"_",this.idCounters,this.fontCache),i=Promise.all([f,g]),j=i.then(function(e){var f=e[0],g=new xb(c,a,d.pageIndex);return a.send("StartRenderPage",{transparency:h.hasBlendModes(d.resources),pageIndex:d.pageIndex,intent:c}),h.getOperatorList(f,b,d.resources,g).then(function(){return g})}),k=e.ensure(this,"annotations");return Promise.all([j,k]).then(function(a){var d=a[0],f=a[1];if(0===f.length)return d.flush(!0),d;var g=Na.appendToOperatorList(f,d,e,h,b,c);return g.then(function(){return d.flush(!0),d})})},extractTextContent:function(a){var b={on:function(){},send:function(){}},c=this,d=this.pdfManager,e=d.ensure(this,"getContentStream",[]),f=this.loadResources(["ExtGState","XObject","Font"]),g=Promise.all([e,f]);return g.then(function(e){var f=e[0],g=new vb(d,c.xref,b,c.pageIndex,"p"+c.pageIndex+"_",c.idCounters,c.fontCache);return g.getTextContent(f,a,c.resources)})},getAnnotationsData:function(){for(var a=this.annotations,b=[],c=0,d=a.length;d>c;++c)b.push(a[c].data);return b},get annotations(){for(var a=[],b=this.getInheritedPageProp("Annots")||[],c=new I,d=0,e=b.length;e>d;++d){var f=b[d],h=c.create(this.xref,f);h&&(h.isViewable()||h.isPrintable())&&a.push(h)}return g(this,"annotations",a)}},a}(),xa=function(){function b(a,b,e){D(b)?d.call(this,a,b,e):E(b)?d.call(this,a,new Mc(b),e):c("PDFDocument: Unknown argument type")}function d(a,b,c){e(b.length>0,"stream must have data"),this.pdfManager=a,this.stream=b;var d=new Fa(this.stream,c,a);this.xref=d}function f(a,b,c,d){var e=a.pos,f=a.end,g=[];e+c>f&&(c=f-e);for(var h=0;c>h;++h)g.push(String.fromCharCode(a.getByte()));var i=g.join("");a.pos=e;var j=d?i.lastIndexOf(b):i.indexOf(b);return-1===j?!1:(a.pos+=j,!0)}var h=1024,i="\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",k={get entries(){return g(this,"entries",{Title:y,Author:y,Subject:y,Keywords:y,Creator:y,Producer:y,CreationDate:y,ModDate:y,Trapped:z})}};return b.prototype={parse:function(b){this.setup(b);var c=this.catalog.catDict.get("Version");z(c)&&(this.pdfFormatVersion=c.name);try{if(this.acroForm=this.catalog.catDict.get("AcroForm"),this.acroForm){this.xfa=this.acroForm.get("XFA");var d=this.acroForm.get("Fields");d&&C(d)&&0!==d.length||this.xfa||(this.acroForm=null)}}catch(e){a("Something wrong with AcroForm entry"),this.acroForm=null}},get linearization(){var b=null;if(this.stream.length)try{b=Hc.create(this.stream)}catch(c){if(c instanceof ja)throw c;a(c)}return g(this,"linearization",b)},get startXRef(){var a=this.stream,b=0,c=this.linearization;if(c)a.reset(),f(a,"endobj",1024)&&(b=a.pos+6);else{for(var d=1024,e=!1,h=a.end;!e&&h>0;)h-=d-"startxref".length,0>h&&(h=0),a.pos=h,e=f(a,"startxref",d,!0);if(e){a.skip(9);var i;do i=a.getByte();while(Gc.isSpace(i));for(var j="";i>=32&&57>=i;)j+=String.fromCharCode(i),i=a.getByte();b=parseInt(j,10),isNaN(b)&&(b=0)}}return g(this,"startXRef",b)},get mainXRefEntriesOffset(){var a=0,b=this.linearization;return b&&(a=b.mainXRefEntriesOffset),g(this,"mainXRefEntriesOffset",a)},checkHeader:function(){var a=this.stream;if(a.reset(),f(a,"%PDF-",1024)){a.moveStart();for(var b,c=12,d="";(b=a.getByte())>32&&!(d.length>=c);)d+=String.fromCharCode(b);return void(this.pdfFormatVersion||(this.pdfFormatVersion=d.substring(5)))}},parseStartXRef:function(){var a=this.startXRef;this.xref.setStartXRef(a)},setup:function(a){this.xref.parse(a),this.catalog=new Ea(this.pdfManager,this.xref)},get numPages(){var a=this.linearization,b=a?a.numPages:this.catalog.numPages;return g(this,"numPages",b)},get documentInfo(){var b,c={PDFFormatVersion:this.pdfFormatVersion,IsAcroFormPresent:!!this.acroForm,IsXFAPresent:!!this.xfa};try{b=this.xref.trailer.get("Info")}catch(d){a("The document information dictionary is invalid.")}if(b){var e=k.entries;for(var f in e)if(b.has(f)){var h=b.get(f);e[f](h)?c[f]="string"!=typeof h?h:r(h):a('Bad value in document info for "'+f+'"')}}return g(this,"documentInfo",c)},get fingerprint(){var a,b=this.xref,c="",d=b.trailer.get("ID");d&&C(d)&&d[0]&&y(d[0])&&d[0]!==i?a=j(d[0]):(this.stream.ensureRange&&this.stream.ensureRange(0,Math.min(h,this.stream.end)),a=gb(this.stream.bytes.subarray(0,h),0,h));for(var e=0,f=a.length;f>e;e++){var k=a[e].toString(16);c+=1===k.length?"0"+k:k}return g(this,"fingerprint",c)},getPage:function(a){return this.catalog.getPage(a)},cleanup:function(){return this.catalog.cleanup()}},b}(),ya=function(){function a(a){this.name=a}a.prototype={};var b={};return a.get=function(c){var d=b[c];return d?d:b[c]=new a(c)},a}(),za=function(){function a(a){this.cmd=a}a.prototype={};var b={};return a.get=function(c){var d=b[c];return d?d:b[c]=new a(c)},a}(),Aa=function(){function a(a){if(!z(a.Type))return!0;var b=a.Type.name;return d[b]===!0}function b(a){this.map=Object.create(null),this.xref=a,this.objId=null,this.__nonSerializable__=c}var c=function(){return c},d={Background:!0,ExtGState:!0,Halftone:!0,Layout:!0,Mask:!0,Pagination:!0,Printing:!0};return b.prototype={assignXref:function(a){this.xref=a},get:function(a,b,c){var d,e=this.xref;return"undefined"!=typeof(d=this.map[a])||a in this.map||"undefined"==typeof b?e?e.fetchIfRef(d):d:"undefined"!=typeof(d=this.map[b])||b in this.map||"undefined"==typeof c?e?e.fetchIfRef(d):d:(d=this.map[c]||null,e?e.fetchIfRef(d):d)},getAsync:function(a,b,c){var d,e=this.xref;return"undefined"!=typeof(d=this.map[a])||a in this.map||"undefined"==typeof b?e?e.fetchIfRefAsync(d):Promise.resolve(d):"undefined"!=typeof(d=this.map[b])||b in this.map||"undefined"==typeof c?e?e.fetchIfRefAsync(d):Promise.resolve(d):(d=this.map[c]||null,e?e.fetchIfRefAsync(d):Promise.resolve(d))},getArray:function(a,b,c){var d=this.get(a,b,c),e=this.xref;if(!C(d)||!e)return d;d=d.slice();for(var f=0,g=d.length;g>f;f++)F(d[f])&&(d[f]=e.fetch(d[f]));return d},getRaw:function(a){return this.map[a]},getAll:function(){var c,d,e=Object.create(null),f=null;
+for(c in this.map)d=this.get(c),d instanceof b?a(d)?(f||(f=[])).push({target:e,key:c,obj:d}):e[c]=this.getRaw(c):e[c]=d;if(!f)return e;for(var g=Object.create(null);f.length>0;){var h=f.shift(),i=h.obj,j=i.objId;if(j&&j in g)h.target[h.key]=g[j];else{var k=Object.create(null);for(c in i.map)d=i.get(c),d instanceof b?a(d)?f.push({target:k,key:c,obj:d}):k[c]=i.getRaw(c):k[c]=d;j&&(g[j]=k),h.target[h.key]=k}}return e},getKeys:function(){return Object.keys(this.map)},set:function(a,b){this.map[a]=b},has:function(a){return a in this.map},forEach:function(a){for(var b in this.map)a(b,this.get(b))}},b.empty=new b(null),b.merge=function(a,c){for(var d=new b(a),e=0,f=c.length;f>e;e++){var g=c[e];if(B(g))for(var h in g.map)d.map[h]||(d.map[h]=g.map[h])}return d},b}(),Ba=function(){function a(a,b){this.num=a,this.gen=b}return a.prototype={toString:function(){var a=this.num+"R";return 0!==this.gen&&(a+=this.gen),a}},a}(),Ca=function(){function a(){this.dict={}}return a.prototype={has:function(a){return a.toString()in this.dict},put:function(a){this.dict[a.toString()]=!0},remove:function(a){delete this.dict[a.toString()]}},a}(),Da=function(){function a(){this.dict=Object.create(null)}return a.prototype={get:function(a){return this.dict[a.toString()]},has:function(a){return a.toString()in this.dict},put:function(a,b){this.dict[a.toString()]=b},putAlias:function(a,b){this.dict[a.toString()]=this.get(b)},forEach:function(a,b){for(var c in this.dict)a.call(b,this.dict[c])},clear:function(){this.dict=Object.create(null)}},a}(),Ea=function(){function d(a,b){this.pdfManager=a,this.xref=b,this.catDict=b.getCatalogObj(),this.fontCache=new Da,e(B(this.catDict),"catalog object is not a dictionary"),this.pagePromises=[]}return d.prototype={get metadata(){var b=this.catDict.getRaw("Metadata");if(!F(b))return g(this,"metadata",null);var c,d=this.xref.encrypt?this.xref.encrypt.encryptMetadata:!1,e=this.xref.fetch(b,!d);if(e&&B(e.dict)){var f=e.dict.get("Type"),h=e.dict.get("Subtype");if(z(f)&&z(h)&&"Metadata"===f.name&&"XML"===h.name)try{c=s(i(e.getBytes()))}catch(j){a("Skipping invalid metadata.")}}return g(this,"metadata",c)},get toplevelPagesDict(){var a=this.catDict.get("Pages");return e(B(a),"invalid top-level pages dictionary"),g(this,"toplevelPagesDict",a)},get documentOutline(){var a=null;try{a=this.readDocumentOutline()}catch(c){if(c instanceof ja)throw c;b("Unable to read document outline")}return g(this,"documentOutline",a)},readDocumentOutline:function(){var a=this.xref,b=this.catDict.get("Outlines"),d={items:[]};if(B(b)){b=b.getRaw("First");var e=new Ca;if(F(b)){var f=[{obj:b,parent:d}];for(e.put(b);f.length>0;){var g=f.shift(),h=a.fetchIfRef(g.obj);if(null!==h){h.has("Title")||c("Invalid outline item");var i=h.get("A");i?i=i.get("D"):h.has("Dest")&&(i=h.getRaw("Dest"),z(i)&&(i=i.name));var j=h.get("Title"),k={dest:i,title:r(j),color:h.get("C")||[0,0,0],count:h.get("Count"),bold:!!(2&h.get("F")),italic:!!(1&h.get("F")),items:[]};g.parent.items.push(k),b=h.getRaw("First"),F(b)&&!e.has(b)&&(f.push({obj:b,parent:k}),e.put(b)),b=h.getRaw("Next"),F(b)&&!e.has(b)&&(f.push({obj:b,parent:g.parent}),e.put(b))}}}}return d.items.length>0?d.items:null},get numPages(){var a=this.toplevelPagesDict.get("Count");return e(w(a),"page count in top level pages object is not an integer"),g(this,"num",a)},get destinations(){function a(a){return B(a)?a.get("D"):a}var b,c,d=this.xref,e={},f=this.catDict.get("Names");if(f&&f.has("Dests")?b=f.getRaw("Dests"):this.catDict.has("Dests")&&(c=this.catDict.get("Dests")),c&&(f=c,f.forEach(function(b,c){c&&(e[b]=a(c))})),b){var h=new Ga(b,d),i=h.getAll();for(var j in i)i.hasOwnProperty(j)&&(e[j]=a(i[j]))}return g(this,"destinations",e)},getDestination:function(a){function b(a){return B(a)?a.get("D"):a}var c,d,e=this.xref,f=null,g=this.catDict.get("Names");if(g&&g.has("Dests")?c=g.getRaw("Dests"):this.catDict.has("Dests")&&(d=this.catDict.get("Dests")),d){var h=d.get(a);h&&(f=b(h))}if(c){var i=new Ga(c,e);f=b(i.get(a))}return f},get attachments(){var a,b=this.xref,c=null,d=this.catDict.get("Names");if(d&&(a=d.getRaw("EmbeddedFiles")),a){var e=new Ga(a,b),f=e.getAll();for(var h in f)if(f.hasOwnProperty(h)){var i=new Ha(f[h],b);c||(c={}),c[r(h)]=i.serializable}}return g(this,"attachments",c)},get javaScript(){function a(a){var b=a.get("S");if(z(b)&&"JavaScript"===b.name){var c=a.get("JS");if(D(c))c=i(c.getBytes());else if(!y(c))return;d.push(r(c))}}var b=this.xref,c=this.catDict.get("Names"),d=[];if(c&&c.has("JavaScript")){var e=new Ga(c.getRaw("JavaScript"),b),f=e.getAll();for(var h in f)if(f.hasOwnProperty(h)){var j=f[h];B(j)&&a(j)}}var k=this.catDict.get("OpenAction");if(B(k,"Action")){var l=k.get("S");if(z(l)&&"Named"===l.name){var m=k.get("N");z(m)&&"Print"===m.name&&d.push("print({});")}else a(k)}return g(this,"javaScript",d)},cleanup:function(){var a=[];return this.fontCache.forEach(function(b){a.push(b)}),Promise.all(a).then(function(a){for(var b=0,c=a.length;c>b;b++){var d=a[b].dict;delete d.translated}this.fontCache.clear()}.bind(this))},getPage:function(a){return a in this.pagePromises||(this.pagePromises[a]=this.getPageDict(a).then(function(b){var c=b[0],d=b[1];return new wa(this.pdfManager,this.xref,a,c,d,this.fontCache)}.bind(this))),this.pagePromises[a]},getPageDict:function(a){function b(){for(;d.length;){var i=d.pop();if(F(i))return void g.fetchAsync(i).then(function(e){return B(e,"Page")||B(e)&&!e.has("Kids")?void(a===f?c.resolve([e,i]):(f++,b())):(d.push(e),void b())},c.reject);e(B(i),"page dictionary kid reference points to wrong type of object");var j=i.get("Count");if(0===j&&(h=!0),a>=f+j)f+=j;else{var k=i.get("Kids");if(e(C(k),"page dictionary kids object is not an array"),h||j!==k.length)for(var l=k.length-1;l>=0;l--)d.push(k[l]);else d=[k[a-f]],f=a}}c.reject("Page index "+a+" not found.")}var c=G(),d=[this.catDict.getRaw("Pages")],f=0,g=this.xref,h=!1;return b(),c.promise},getPageIndex:function(a){function b(a){var b,d=0;return f.fetchAsync(a).then(function(a){return a?(b=a.getRaw("Parent"),a.getAsync("Parent")):null}).then(function(a){return a?a.getAsync("Kids"):null}).then(function(g){if(!g)return null;for(var h=[],i=!1,j=0;j<g.length;j++){var k=g[j];if(e(F(k),"kids must be a ref"),k.num===a.num){i=!0;break}h.push(f.fetchAsync(k).then(function(a){if(a.has("Count")){var b=a.get("Count");d+=b}else d++}))}return i||c("kid ref not found in parents kids"),Promise.all(h).then(function(){return[d,b]})})}function d(a){return b(a).then(function(a){if(!a)return g;var b=a[0],c=a[1];return g+=b,d(c)})}var f=this.xref,g=0;return d(a)}},d}(),Fa=function(){function d(a,b){this.stream=a,this.entries=[],this.xrefstms={},this.cache=[],this.password=b,this.stats={streamTypes:[],fontTypes:[]}}return d.prototype={setStartXRef:function(a){this.startXRefQueue=[a]},parse:function(a){var d;a?(b("Indexing all PDF objects"),d=this.indexObjects()):d=this.readXRef(),d.assignXref(this),this.trailer=d;var e=d.get("Encrypt");if(e){var f=d.get("ID"),g=f&&f.length?f[0]:"";this.encrypt=new rb(e,g,this.password)}(this.root=d.get("Root"))||c("Invalid root reference")},processXRefTable:function(a){"tableState"in this||(this.tableState={entryNum:0,streamPos:a.lexer.stream.pos,parserBuf1:a.buf1,parserBuf2:a.buf2});var b=this.readXRefTable(a);A(b,"trailer")||c("Invalid XRef table: could not find trailer dictionary");var d=a.getObj();return!B(d)&&d.dict&&(d=d.dict),B(d)||c("Invalid XRef table: could not parse trailer dictionary"),delete this.tableState,d},readXRefTable:function(a){var b=a.lexer.stream,d=this.tableState;b.pos=d.streamPos,a.buf1=d.parserBuf1,a.buf2=d.parserBuf2;for(var e;;){if(!("firstEntryNum"in d&&"entryCount"in d)){if(A(e=a.getObj(),"trailer"))break;d.firstEntryNum=e,d.entryCount=a.getObj()}var f=d.firstEntryNum,g=d.entryCount;w(f)&&w(g)||c("Invalid XRef table: wrong types in subsection header");for(var h=d.entryNum;g>h;h++){d.streamPos=b.pos,d.entryNum=h,d.parserBuf1=a.buf1,d.parserBuf2=a.buf2;var i={};i.offset=a.getObj(),i.gen=a.getObj();var j=a.getObj();A(j,"f")?i.free=!0:A(j,"n")&&(i.uncompressed=!0),w(i.offset)&&w(i.gen)&&(i.free||i.uncompressed)||c("Invalid entry in XRef subsection: "+f+", "+g),this.entries[h+f]||(this.entries[h+f]=i)}d.entryNum=0,d.streamPos=b.pos,d.parserBuf1=a.buf1,d.parserBuf2=a.buf2,delete d.firstEntryNum,delete d.entryCount}return 1===f&&this.entries[1]&&this.entries[1].free&&this.entries.shift(),this.entries[0]&&!this.entries[0].free&&c("Invalid XRef table: unexpected first object"),e},processXRefStream:function(a){if(!("streamState"in this)){var b=a.dict,c=b.get("W"),d=b.get("Index");d||(d=[0,b.get("Size")]),this.streamState={entryRanges:d,byteWidths:c,entryNum:0,streamPos:a.pos}}return this.readXRefStream(a),delete this.streamState,a.dict},readXRefStream:function(a){var b,d,e=this.streamState;a.pos=e.streamPos;for(var f=e.byteWidths,g=f[0],h=f[1],i=f[2],j=e.entryRanges;j.length>0;){var k=j[0],l=j[1];for(w(k)&&w(l)||c("Invalid XRef range fields: "+k+", "+l),w(g)&&w(h)&&w(i)||c("Invalid XRef entry fields length: "+k+", "+l),b=e.entryNum;l>b;++b){e.entryNum=b,e.streamPos=a.pos;var m=0,n=0,o=0;for(d=0;g>d;++d)m=m<<8|a.getByte();for(0===g&&(m=1),d=0;h>d;++d)n=n<<8|a.getByte();for(d=0;i>d;++d)o=o<<8|a.getByte();var p={};switch(p.offset=n,p.gen=o,m){case 0:p.free=!0;break;case 1:p.uncompressed=!0;break;case 2:break;default:c("Invalid XRef entry type: "+m)}this.entries[k+b]||(this.entries[k+b]=p)}e.entryNum=0,e.streamPos=a.pos,j.splice(0,2)}},indexObjects:function(){function a(a,b){for(var c="",f=a[b];f!==d&&f!==e&&f!==h&&!(++b>=a.length);)c+=String.fromCharCode(f),f=a[b];return c}function b(a,b,c){for(var d=c.length,e=a.length,f=0;e>b;){for(var g=0;d>g&&a[b+g]===c[g];)++g;if(g>=d)break;b++,f++}return f}var c=9,d=10,e=13,f=32,g=37,h=60,i=/^(\d+)\s+(\d+)\s+obj\b/,j=new Uint8Array([116,114,97,105,108,101,114]),k=new Uint8Array([115,116,97,114,116,120,114,101,102]),l=new Uint8Array([101,110,100,111,98,106]),m=new Uint8Array([47,88,82,101,102]);this.entries.length=0;var n=this.stream;n.pos=0;for(var o=n.getBytes(),p=n.start,q=o.length,r=[],s=[];q>p;){var t=o[p];if(t!==c&&t!==d&&t!==e&&t!==f)if(t!==g){var u,v=a(o,p);if(0!==v.indexOf("xref")||4!==v.length&&!/\s/.test(v[4]))if(u=i.exec(v)){"undefined"==typeof this.entries[u[1]]&&(this.entries[u[1]]={offset:p-n.start,gen:0|u[2],uncompressed:!0});var w=b(o,p,l)+7,x=o.subarray(p,p+w),y=b(x,0,m);w>y&&x[y+5]<64&&(s.push(p-n.start),this.xrefstms[p-n.start]=1),p+=w}else 0!==v.indexOf("trailer")||7!==v.length&&!/\s/.test(v[7])?p+=v.length+1:(r.push(p),p+=b(o,p,k));else p+=b(o,p,j),r.push(p),p+=b(o,p,k)}else do{if(++p,p>=q)break;t=o[p]}while(t!==d&&t!==e);else++p}var z,C;for(z=0,C=s.length;C>z;++z)this.startXRefQueue.push(s[z]),this.readXRef(!0);var D;for(z=0,C=r.length;C>z;++z){n.pos=r[z];var E=new Fc(new Gc(n),!0,this),F=E.getObj();if(A(F,"trailer")&&B(D=E.getObj())&&D.has("ID"))return D}if(D)return D;throw new fa("Invalid PDF structure")},readXRef:function(b){var d=this.stream;try{for(;this.startXRefQueue.length;){var e=this.startXRefQueue[0];d.pos=e+d.start;var f,g=new Fc(new Gc(d),!0,this),h=g.getObj();if(A(h,"xref")){if(f=this.processXRefTable(g),this.topDict||(this.topDict=f),h=f.get("XRefStm"),w(h)){var i=h;i in this.xrefstms||(this.xrefstms[i]=1,this.startXRefQueue.push(i))}}else w(h)?(w(g.getObj())&&A(g.getObj(),"obj")&&D(h=g.getObj())||c("Invalid XRef stream"),f=this.processXRefStream(h),this.topDict||(this.topDict=f),f||c("Failed to read XRef stream")):c("Invalid XRef stream header");h=f.get("Prev"),w(h)?this.startXRefQueue.push(h):F(h)&&this.startXRefQueue.push(h.num),this.startXRefQueue.shift()}return this.topDict}catch(j){if(j instanceof ja)throw j;a("(while reading XRef): "+j)}if(!b)throw new ka},getEntry:function(a){var b=this.entries[a];return b&&!b.free&&b.offset?b:null},fetchIfRef:function(a){return F(a)?this.fetch(a):a},fetch:function(a,b){e(F(a),"ref object is not a reference");var c=a.num;if(c in this.cache){var d=this.cache[c];return d}var f=this.getEntry(c);return null===f?this.cache[c]=null:(f=f.uncompressed?this.fetchUncompressed(a,f,b):this.fetchCompressed(f,b),B(f)?f.objId=a.toString():D(f)&&(f.dict.objId=a.toString()),f)},fetchUncompressed:function(a,b,d){var e=a.gen,f=a.num;b.gen!==e&&c("inconsistent generation in XRef");var g=this.stream.makeSubStream(b.offset+this.stream.start),h=new Fc(new Gc(g),!0,this),i=h.getObj(),j=h.getObj(),k=h.getObj();if(w(i)&&parseInt(i,10)===f&&w(j)&&parseInt(j,10)===e&&A(k)||c("bad XRef entry"),!A(k,"obj")){if(0===k.cmd.indexOf("obj")&&(f=parseInt(k.cmd.substring(3),10),!isNaN(f)))return f;c("bad XRef entry")}return b=this.encrypt&&!d?h.getObj(this.encrypt.createCipherTransform(f,e)):h.getObj(),D(b)||(this.cache[f]=b),b},fetchCompressed:function(a,b){var d=a.offset,e=this.fetch(new Ba(d,0));D(e)||c("bad ObjStm stream");var f=e.dict.get("First"),g=e.dict.get("N");w(f)&&w(g)||c("invalid first and n parameters for ObjStm stream");var h=new Fc(new Gc(e),!1,this);h.allowStreams=!0;var i,j,k=[],l=[];for(i=0;g>i;++i){j=h.getObj(),w(j)||c("invalid object number in the ObjStm stream: "+j),l.push(j);var m=h.getObj();w(m)||c("invalid object offset in the ObjStm stream: "+m)}for(i=0;g>i;++i){k.push(h.getObj()),j=l[i];var n=this.entries[j];n&&n.offset===d&&n.gen===i&&(this.cache[j]=k[i])}return a=k[a.gen],void 0===a&&c("bad XRef entry for compressed object"),a},fetchIfRefAsync:function(a){return F(a)?this.fetchAsync(a):Promise.resolve(a)},fetchAsync:function(a,b){var c=this.stream.manager,d=this;return new Promise(function e(f,g){try{f(d.fetch(a,b))}catch(h){if(h instanceof ja)return void c.requestRange(h.begin,h.end).then(function(){e(f,g)},g);g(h)}})},getCatalogObj:function(){return this.root}},d}(),Ga=function(){function a(a,b){this.root=a,this.xref=b}return a.prototype={getAll:function(){var a={};if(!this.root)return a;var b=this.xref,d=new Ca;d.put(this.root);for(var e=[this.root];e.length>0;){var f,g,h=b.fetchIfRef(e.shift());if(B(h))if(h.has("Kids")){var i=h.get("Kids");for(f=0,g=i.length;g>f;f++){var j=i[f];d.has(j)&&c("invalid destinations"),e.push(j),d.put(j)}}else{var k=h.get("Names");if(k)for(f=0,g=k.length;g>f;f+=2)a[b.fetchIfRef(k[f])]=b.fetchIfRef(k[f+1])}}return a},get:function(a){if(!this.root)return null;for(var c,d,e,f=this.xref,g=f.fetchIfRef(this.root),h=0,i=10;g.has("Kids");){if(h++,h>i)return b("Search depth limit for named destionations has been reached."),null;var j=g.get("Kids");if(!C(j))return null;for(c=0,d=j.length-1;d>=c;){e=c+d>>1;var k=f.fetchIfRef(j[e]),l=k.get("Limits");if(a<f.fetchIfRef(l[0]))d=e-1;else{if(!(a>f.fetchIfRef(l[1]))){g=f.fetchIfRef(j[e]);break}c=e+1}}if(c>d)return null}var m=g.get("Names");if(C(m))for(c=0,d=m.length-2;d>=c;)if(e=c+d&-2,a<f.fetchIfRef(m[e]))d=e-2;else{if(!(a>f.fetchIfRef(m[e])))return f.fetchIfRef(m[e+1]);c=e+2}return null}},a}(),Ha=function(){function a(a,c){a&&B(a)&&(this.xref=c,this.root=a,a.has("FS")&&(this.fs=a.get("FS")),this.description=a.has("Desc")?r(a.get("Desc")):"",a.has("RF")&&b("Related file specifications are not supported"),this.contentAvailable=!0,a.has("EF")||(this.contentAvailable=!1,b("Non-embedded file specifications are not supported")))}function c(a){return a.has("UF")?a.get("UF"):a.has("F")?a.get("F"):a.has("Unix")?a.get("Unix"):a.has("Mac")?a.get("Mac"):a.has("DOS")?a.get("DOS"):null}return a.prototype={get filename(){if(!this._filename&&this.root){var a=c(this.root)||"unnamed";this._filename=r(a).replace(/\\\\/g,"\\").replace(/\\\//g,"/").replace(/\\/g,"/")}return this._filename},get content(){if(!this.contentAvailable)return null;!this.contentRef&&this.root&&(this.contentRef=c(this.root.get("EF")));var a=null;if(this.contentRef){var d=this.xref,e=d.fetchIfRef(this.contentRef);e&&D(e)?a=e.getBytes():b("Embedded file specification points to non-existing/invalid content")}else b("Embedded file specification does not have a content");return a},get serializable(){return{filename:this.filename,content:this.content}}},a}(),Ia=function(){function a(a){return F(a)||B(a)||C(a)||D(a)}function b(b,c){var d;if(B(b)||D(b)){var e;e=B(b)?b.map:b.dict.map;for(var f in e)d=e[f],a(d)&&c.push(d)}else if(C(b))for(var g=0,h=b.length;h>g;g++)d=b[g],a(d)&&c.push(d)}function c(a,b,c){this.obj=a,this.keys=b,this.xref=c,this.refSet=null,this.capability=null}return c.prototype={load:function(){var a=this.keys;if(this.capability=G(),!(this.xref.stream instanceof qa)||0===this.xref.stream.getMissingChunks().length)return this.capability.resolve(),this.capability.promise;this.refSet=new Ca;for(var b=[],c=0;c<a.length;c++)b.push(this.obj[a[c]]);return this._walk(b),this.capability.promise},_walk:function(a){for(var c=[],d=[];a.length;){var e=a.pop();if(F(e)){if(this.refSet.has(e))continue;try{var f=e;this.refSet.put(f),e=this.xref.fetch(e)}catch(g){if(!(g instanceof ja))throw g;c.push(e),d.push({begin:g.begin,end:g.end})}}if(e&&e.getBaseStreams){for(var h=e.getBaseStreams(),i=!1,j=0;j<h.length;j++){var k=h[j];k.getMissingChunks&&k.getMissingChunks().length&&(i=!0,d.push({begin:k.start,end:k.end}))}i&&c.push(e)}b(e,a)}return d.length?void this.xref.stream.manager.requestRanges(d).then(function(){a=c;for(var b=0;b<c.length;b++){var d=c[b];F(d)&&this.refSet.remove(d)}this._walk(a)}.bind(this),this.capability.reject):(this.refSet=null,void this.capability.resolve())}},c}(),Ja=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],Ka=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],La=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"],Ma=22;I.prototype={create:function(a,c){var d=a.fetchIfRef(c);if(B(d)){var e=d.get("Subtype");e=z(e)?e.name:"";var f={dict:d,ref:c};switch(e){case"Link":return new Sa(f);case"Text":return new Ra(f);case"Widget":var g=na.getInheritableProperty(d,"FT");return z(g)&&"Tx"===g.name?new Qa(f):new Pa(f);default:return b('Unimplemented annotation type "'+e+'", falling back to base annotation'),new Na(f)}}}};var Na=function(){function a(a,b,c){var d=na.getAxialAlignedBoundingBox(b,c),e=d[0],f=d[1],g=d[2],h=d[3];if(e===g||f===h)return[1,0,0,1,a[0],a[1]];var i=(a[2]-a[0])/(g-e),j=(a[3]-a[1])/(h-f);return[i,0,0,j,a[0]-e*i,a[1]-f*j]}function b(a){var b=a.get("AP");if(B(b)){var c,d=b.get("N");if(B(d)){var e=a.get("AS");e&&d.has(e.name)&&(c=d.get(e.name))}else c=d;return c}}function c(a){var c=a.dict,d=this.data={};d.subtype=c.get("Subtype").name,d.annotationFlags=c.get("F"),this.setRectangle(c.get("Rect")),d.rect=this.rectangle,this.setColor(c.get("C")),d.color=this.color,this.borderStyle=d.borderStyle=new Oa,this.setBorderStyle(c),this.appearance=b(c),d.hasAppearance=!!this.appearance,d.id=a.ref.num}return c.prototype={setRectangle:function(a){C(a)&&4===a.length?this.rectangle=na.normalizeRect(a):this.rectangle=[0,0,0,0]},setColor:function(a){var b=new Uint8Array(3);if(!C(a))return void(this.color=b);switch(a.length){case 0:this.color=null;break;case 1:Xa.singletons.gray.getRgbItem(a,0,b,0),this.color=b;break;case 3:Xa.singletons.rgb.getRgbItem(a,0,b,0),this.color=b;break;case 4:Xa.singletons.cmyk.getRgbItem(a,0,b,0),this.color=b;break;default:this.color=b}},setBorderStyle:function(a){if(B(a))if(a.has("BS")){var b,c=a.get("BS");(!c.has("Type")||z(b=c.get("Type"))&&"Border"===b.name)&&(this.borderStyle.setWidth(c.get("W")),this.borderStyle.setStyle(c.get("S")),this.borderStyle.setDashArray(c.get("D")))}else if(a.has("Border")){var d=a.get("Border");C(d)&&d.length>=3&&(this.borderStyle.setHorizontalCornerRadius(d[0]),this.borderStyle.setVerticalCornerRadius(d[1]),this.borderStyle.setWidth(d[2]),4===d.length&&this.borderStyle.setDashArray(d[3]))}else this.borderStyle.setWidth(0)},isInvisible:function(){var a=this.data;return!!(a&&a.annotationFlags&&1&a.annotationFlags)},isViewable:function(){var a=this.data;return!(this.isInvisible()||!a||a.annotationFlags&&34&a.annotationFlags||!a.rect)},isPrintable:function(){var a=this.data;return!(!(!this.isInvisible()&&a&&a.annotationFlags&&4&a.annotationFlags)||2&a.annotationFlags||!a.rect)},loadResources:function(a){return new Promise(function(b,c){this.appearance.dict.getAsync("Resources").then(function(d){if(!d)return void b();var e=new Ia(d.map,a,d.xref);e.load().then(function(){b(d)},c)},c)}.bind(this))},getOperatorList:function(b,c){if(!this.appearance)return Promise.resolve(new xb);var d=this.data,e=this.appearance.dict,f=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),g=e.get("BBox")||[0,0,1,1],h=e.get("Matrix")||[1,0,0,1,0,0],i=a(d.rect,g,h),j=this;return f.then(function(a){var e=new xb;return e.addOp($.beginAnnotation,[d.rect,i,h]),b.getOperatorList(j.appearance,c,a,e).then(function(){return e.addOp($.endAnnotation,[]),j.appearance.reset(),e})})}},c.appendToOperatorList=function(a,b,c,d,e,f){function g(a){h.reject(a)}for(var h=G(),i=[],j=0,k=a.length;k>j;++j)("display"===f&&a[j].isViewable()||"print"===f&&a[j].isPrintable())&&i.push(a[j].getOperatorList(d,e));return Promise.all(i).then(function(a){b.addOp($.beginAnnotations,[]);for(var c=0,d=a.length;d>c;++c){var e=a[c];b.addOpList(e)}b.addOp($.endAnnotations,[]),h.resolve()},g),h.promise},c}(),Oa=function(){function a(){this.width=1,this.style=X.SOLID,this.dashArray=[3],this.horizontalCornerRadius=0,this.verticalCornerRadius=0}return a.prototype={setWidth:function(a){a===(0|a)&&(this.width=a)},setStyle:function(a){if(a)switch(a.name){case"S":this.style=X.SOLID;break;case"D":this.style=X.DASHED;break;case"B":this.style=X.BEVELED;break;case"I":this.style=X.INSET;break;case"U":this.style=X.UNDERLINE}},setDashArray:function(a){if(C(a)&&a.length>0){for(var b=!0,c=!0,d=0,e=a.length;e>d;d++){var f=a[d],g=+f>=0;if(!g){b=!1;break}f>0&&(c=!1)}b&&!c?this.dashArray=a:this.width=0}else a&&(this.width=0)},setHorizontalCornerRadius:function(a){a===(0|a)&&(this.horizontalCornerRadius=a)},setVerticalCornerRadius:function(a){a===(0|a)&&(this.verticalCornerRadius=a)}},a}(),Pa=function(){function a(a){Na.call(this,a);var b=a.dict,c=this.data;c.fieldValue=r(na.getInheritableProperty(b,"V")||""),c.alternativeText=r(b.get("TU")||""),c.defaultAppearance=na.getInheritableProperty(b,"DA")||"";var d=na.getInheritableProperty(b,"FT");c.fieldType=z(d)?d.name:"",c.fieldFlags=na.getInheritableProperty(b,"Ff")||0,this.fieldResources=na.getInheritableProperty(b,"DR")||Aa.empty;for(var e=[],f=b,g=a.ref;f;){var h=f.get("Parent"),i=f.getRaw("Parent"),j=f.get("T");if(j)e.unshift(r(j));else if(h&&g){var k,l,m=h.get("Kids");for(k=0,l=m.length;l>k;k++){var n=m[k];if(n.num===g.num&&n.gen===g.gen)break}e.unshift("`"+k)}f=h,g=i}c.fullName=e.join(".")}var c=Na.prototype;return na.inherit(a,Na,{isViewable:function(){return"Sig"===this.data.fieldType?(b("unimplemented annotation type: Widget signature"),!1):c.isViewable.call(this)}}),a}(),Qa=function(){function a(a){Pa.call(this,a),this.data.textAlignment=na.getInheritableProperty(a.dict,"Q"),this.data.annotationType=W.WIDGET,this.data.hasHtml=!this.data.hasAppearance&&!!this.data.fieldValue}return na.inherit(a,Pa,{getOperatorList:function(a,b){if(this.appearance)return Na.prototype.getOperatorList.call(this,a,b);var c=new xb,d=this.data;if(!d.defaultAppearance)return Promise.resolve(c);var e=new Mc(j(d.defaultAppearance));return a.getOperatorList(e,b,this.fieldResources,c).then(function(){return c})}}),a}(),Ra=function(){function a(a){Na.call(this,a);var b=a.dict,c=this.data,d=b.get("Contents"),e=b.get("T");c.annotationType=W.TEXT,c.content=r(d||""),c.title=r(e||""),c.hasHtml=!0,c.hasAppearance?c.name="NoIcon":(c.rect[1]=c.rect[3]-Ma,c.rect[2]=c.rect[0]+Ma,c.name=b.has("Name")?b.get("Name").name:"Note"),b.has("C")&&(c.hasBgColor=!0)}return na.inherit(a,Na,{}),a}(),Sa=function(){function a(a){Na.call(this,a);var d=a.dict,e=this.data;e.annotationType=W.LINK,e.hasHtml=!0;var g=d.get("A");if(g&&B(g)){var h=g.get("S").name;if("URI"===h){var i=g.get("URI");z(i)?i="/"+i.name:i&&(i=c(i)),f(i,!1)||(i="");try{e.url=s(i)}catch(j){e.url=i}}else if("GoTo"===h)e.dest=g.get("D");else if("GoToR"===h){var k=g.get("F");B(k)&&(i=k.get("F")||""),f(i,!1)||(i=""),e.url=i,e.dest=g.get("D")}else"Named"===h?e.action=g.get("N").name:b("unrecognized link type: "+h)}else if(d.has("Dest")){var l=d.get("Dest");e.dest=z(l)?l.name:l}}function c(a){return a&&0===a.indexOf("www.")?"http://"+a:a}return na.inherit(a,Na,{}),a}(),Ta=function(){var b=0,d=2,e=3,f=4;return{getSampleArray:function(a,b,c,d){var e,f,g=1;for(e=0,f=a.length;f>e;e++)g*=a[e];g*=b;var h=new Array(g),i=0,j=0,k=1/(Math.pow(2,c)-1),l=d.getBytes((g*c+7)/8),m=0;for(e=0;g>e;e++){for(;c>i;)j<<=8,j|=l[m++],i+=8;i-=c,h[e]=(j>>i)*k,j&=(1<<i)-1}return h},getIR:function(a,b){var d=b.dict;d||(d=b);var e=[this.constructSampled,null,this.constructInterpolated,this.constructStiched,this.constructPostScript],f=d.get("FunctionType"),g=e[f];return g||c("Unknown type of function"),g.call(this,b,d,a)},fromIR:function(a){var c=a[0];switch(c){case b:return this.constructSampledFromIR(a);case d:return this.constructInterpolatedFromIR(a);case e:return this.constructStichedFromIR(a);default:return this.constructPostScriptFromIR(a)}},parse:function(a,b){var c=this.getIR(a,b);return this.fromIR(c)},parseArray:function(a,b){if(!C(b))return this.parse(a,b);for(var c=[],d=0,e=b.length;e>d;d++){var f=a.fetchIfRef(b[d]);c.push(Ta.parse(a,f))}return function(a,b,d,e){for(var f=0,g=c.length;g>f;f++)c[f](a,b,d,e+f)}},constructSampled:function(d,e){function f(a){for(var b=a.length,c=[],d=0,e=0;b>e;e+=2)c[d]=[a[e],a[e+1]],++d;return c}var g=e.get("Domain"),h=e.get("Range");g&&h||c("No domain or range");var i=g.length/2,j=h.length/2;g=f(g),h=f(h);var k=e.get("Size"),l=e.get("BitsPerSample"),m=e.get("Order")||1;1!==m&&a("No support for cubic spline interpolation: "+m);var n=e.get("Encode");if(!n){n=[];for(var o=0;i>o;++o)n.push(0),n.push(k[o]-1)}n=f(n);var p=e.get("Decode");p=p?f(p):h;var q=this.getSampleArray(k,j,l,d);return[b,i,g,n,p,q,k,j,Math.pow(2,l)-1,h]},constructSampledFromIR:function(a){function b(a,b,c,d,e){return d+(a-b)*((e-d)/(c-b))}return function(c,d,e,f){var g,h,i=a[1],j=a[2],k=a[3],l=a[4],m=a[5],n=a[6],o=a[7],p=a[9],q=1<<i,r=new Float64Array(q),s=new Uint32Array(q);for(h=0;q>h;h++)r[h]=1;var t=o,u=1;for(g=0;i>g;++g){var v=j[g][0],w=j[g][1],x=Math.min(Math.max(c[d+g],v),w),y=b(x,v,w,k[g][0],k[g][1]),z=n[g];y=Math.min(Math.max(y,0),z-1);var A=z-1>y?Math.floor(y):y-1,B=A+1-y,C=y-A,D=A*t,E=D+t;for(h=0;q>h;h++)h&u?(r[h]*=C,s[h]+=E):(r[h]*=B,s[h]+=D);t*=z,u<<=1}for(h=0;o>h;++h){var F=0;for(g=0;q>g;g++)F+=m[s[g]+h]*r[g];F=b(F,0,1,l[h][0],l[h][1]),e[f+h]=Math.min(Math.max(F,p[h][0]),p[h][1])}}},constructInterpolated:function(a,b){var e=b.get("C0")||[0],f=b.get("C1")||[1],g=b.get("N");C(e)&&C(f)||c("Illegal dictionary for interpolated function");for(var h=e.length,i=[],j=0;h>j;++j)i.push(f[j]-e[j]);return[d,e,i,g]},constructInterpolatedFromIR:function(a){
+var b=a[1],c=a[2],d=a[3],e=c.length;return function(a,f,g,h){for(var i=1===d?a[f]:Math.pow(a[f],d),j=0;e>j;++j)g[h+j]=b[j]+i*c[j]}},constructStiched:function(a,b,d){var f=b.get("Domain");f||c("No domain");var g=f.length/2;1!==g&&c("Bad domain for stiched function");for(var h=b.get("Functions"),i=[],j=0,k=h.length;k>j;++j)i.push(Ta.getIR(d,d.fetchIfRef(h[j])));var l=b.get("Bounds"),m=b.get("Encode");return[e,f,l,m,i]},constructStichedFromIR:function(a){for(var b=a[1],c=a[2],d=a[3],e=a[4],f=[],g=new Float32Array(1),h=0,i=e.length;i>h;h++)f.push(Ta.fromIR(e[h]));return function(a,e,h,i){for(var j=function(a,b,c){return a>c?a=c:b>a&&(a=b),a},k=j(a[e],b[0],b[1]),l=0,m=c.length;m>l&&!(k<c[l]);++l);var n=b[0];l>0&&(n=c[l-1]);var o=b[1];l<c.length&&(o=c[l]);var p=d[2*l],q=d[2*l+1];g[0]=n===o?p:p+(k-n)*(q-p)/(o-n),f[l](g,0,h,i)}},constructPostScript:function(a,b,d){var e=b.get("Domain"),g=b.get("Range");e||c("No domain."),g||c("No range.");var h=new Lc(a),i=new Ic(h),j=i.parse();return[f,e,g,j]},constructPostScriptFromIR:function(b){var c=b[1],d=b[2],e=b[3],f=(new Wa).compile(e,c,d);if(f)return new Function("src","srcOffset","dest","destOffset",f);a("Unable to compile PS function");var g=d.length>>1,h=c.length>>1,i=new Va(e),j={},k=8192,l=k,m=new Float32Array(h);return function(a,b,c,e){var f,k,n="",o=m;for(f=0;h>f;f++)k=a[b+f],o[f]=k,n+=k+"_";var p=j[n];if(void 0!==p)return void c.set(p,e);var q=new Float32Array(g),r=i.execute(o),s=r.length-g;for(f=0;g>f;f++){k=r[s+f];var t=d[2*f];t>k?k=t:(t=d[2*f+1],k>t&&(k=t)),q[f]=k}l>0&&(l--,j[n]=q),c.set(q,e)}}}}(),Ua=function(){function a(a){this.stack=a?Array.prototype.slice.call(a,0):[]}var b=100;return a.prototype={push:function(a){this.stack.length>=b&&c("PostScript function stack overflow."),this.stack.push(a)},pop:function(){return this.stack.length<=0&&c("PostScript function stack underflow."),this.stack.pop()},copy:function(a){this.stack.length+a>=b&&c("PostScript function stack overflow.");for(var d=this.stack,e=d.length-a,f=a-1;f>=0;f--,e++)d.push(d[e])},index:function(a){this.push(this.stack[this.stack.length-a-1])},roll:function(a,b){var c,d,e,f=this.stack,g=f.length-a,h=f.length-1,i=g+(b-Math.floor(b/a)*a);for(c=g,d=h;d>c;c++,d--)e=f[c],f[c]=f[d],f[d]=e;for(c=g,d=i-1;d>c;c++,d--)e=f[c],f[c]=f[d],f[d]=e;for(c=i,d=h;d>c;c++,d--)e=f[c],f[c]=f[d],f[d]=e}},a}(),Va=function(){function a(a){this.operators=a}return a.prototype={execute:function(a){for(var b,d,e,f=new Ua(a),g=0,h=this.operators,i=h.length;i>g;)if(b=h[g++],"number"!=typeof b)switch(b){case"jz":e=f.pop(),d=f.pop(),d||(g=e);break;case"j":d=f.pop(),g=d;break;case"abs":d=f.pop(),f.push(Math.abs(d));break;case"add":e=f.pop(),d=f.pop(),f.push(d+e);break;case"and":e=f.pop(),d=f.pop(),v(d)&&v(e)?f.push(d&&e):f.push(d&e);break;case"atan":d=f.pop(),f.push(Math.atan(d));break;case"bitshift":e=f.pop(),d=f.pop(),d>0?f.push(d<<e):f.push(d>>e);break;case"ceiling":d=f.pop(),f.push(Math.ceil(d));break;case"copy":d=f.pop(),f.copy(d);break;case"cos":d=f.pop(),f.push(Math.cos(d));break;case"cvi":d=0|f.pop(),f.push(d);break;case"cvr":break;case"div":e=f.pop(),d=f.pop(),f.push(d/e);break;case"dup":f.copy(1);break;case"eq":e=f.pop(),d=f.pop(),f.push(d===e);break;case"exch":f.roll(2,1);break;case"exp":e=f.pop(),d=f.pop(),f.push(Math.pow(d,e));break;case"false":f.push(!1);break;case"floor":d=f.pop(),f.push(Math.floor(d));break;case"ge":e=f.pop(),d=f.pop(),f.push(d>=e);break;case"gt":e=f.pop(),d=f.pop(),f.push(d>e);break;case"idiv":e=f.pop(),d=f.pop(),f.push(d/e|0);break;case"index":d=f.pop(),f.index(d);break;case"le":e=f.pop(),d=f.pop(),f.push(e>=d);break;case"ln":d=f.pop(),f.push(Math.log(d));break;case"log":d=f.pop(),f.push(Math.log(d)/Math.LN10);break;case"lt":e=f.pop(),d=f.pop(),f.push(e>d);break;case"mod":e=f.pop(),d=f.pop(),f.push(d%e);break;case"mul":e=f.pop(),d=f.pop(),f.push(d*e);break;case"ne":e=f.pop(),d=f.pop(),f.push(d!==e);break;case"neg":d=f.pop(),f.push(-d);break;case"not":d=f.pop(),v(d)?f.push(!d):f.push(~d);break;case"or":e=f.pop(),d=f.pop(),v(d)&&v(e)?f.push(d||e):f.push(d|e);break;case"pop":f.pop();break;case"roll":e=f.pop(),d=f.pop(),f.roll(d,e);break;case"round":d=f.pop(),f.push(Math.round(d));break;case"sin":d=f.pop(),f.push(Math.sin(d));break;case"sqrt":d=f.pop(),f.push(Math.sqrt(d));break;case"sub":e=f.pop(),d=f.pop(),f.push(d-e);break;case"true":f.push(!0);break;case"truncate":d=f.pop(),d=0>d?Math.ceil(d):Math.floor(d),f.push(d);break;case"xor":e=f.pop(),d=f.pop(),v(d)&&v(e)?f.push(d!==e):f.push(d^e);break;default:c("Unknown operator "+b)}else f.push(b);return f.stack}},a}(),Wa=function(){function a(a){this.type=a}function b(b,c,d){a.call(this,"args"),this.index=b,this.min=c,this.max=d}function c(b){a.call(this,"literal"),this.number=b,this.min=b,this.max=b}function d(b,c,d,e,f){a.call(this,"binary"),this.op=b,this.arg1=c,this.arg2=d,this.min=e,this.max=f}function e(b,c){a.call(this,"max"),this.arg=b,this.min=b.min,this.max=c}function f(b,c,d){a.call(this,"var"),this.index=b,this.min=c,this.max=d}function g(b,c){a.call(this,"definition"),this.variable=b,this.arg=c}function h(){this.parts=[]}function i(a,b){return"literal"===b.type&&0===b.number?a:"literal"===a.type&&0===a.number?b:"literal"===b.type&&"literal"===a.type?new c(a.number+b.number):new d("+",a,b,a.min+b.min,a.max+b.max)}function j(a,b){if("literal"===b.type){if(0===b.number)return new c(0);if(1===b.number)return a;if("literal"===a.type)return new c(a.number*b.number)}if("literal"===a.type){if(0===a.number)return new c(0);if(1===a.number)return b}var e=Math.min(a.min*b.min,a.min*b.max,a.max*b.min,a.max*b.max),f=Math.max(a.min*b.min,a.min*b.max,a.max*b.min,a.max*b.max);return new d("*",a,b,e,f)}function k(a,b){if("literal"===b.type){if(0===b.number)return a;if("literal"===a.type)return new c(a.number-b.number)}return"binary"===b.type&&"-"===b.op&&"literal"===a.type&&1===a.number&&"literal"===b.arg1.type&&1===b.arg1.number?b.arg2:new d("-",a,b,a.min-b.max,a.max-b.min)}function l(a,b){return a.min>=b?new c(b):a.max<=b?a:new e(a,b)}function m(){}return a.prototype.visit=function(a){throw new Error("abstract method")},b.prototype=Object.create(a.prototype),b.prototype.visit=function(a){a.visitArgument(this)},c.prototype=Object.create(a.prototype),c.prototype.visit=function(a){a.visitLiteral(this)},d.prototype=Object.create(a.prototype),d.prototype.visit=function(a){a.visitBinaryOperation(this)},e.prototype=Object.create(a.prototype),e.prototype.visit=function(a){a.visitMin(this)},f.prototype=Object.create(a.prototype),f.prototype.visit=function(a){a.visitVariable(this)},g.prototype=Object.create(a.prototype),g.prototype.visit=function(a){a.visitVariableDefinition(this)},h.prototype={visitArgument:function(a){this.parts.push("Math.max(",a.min,", Math.min(",a.max,", src[srcOffset + ",a.index,"]))")},visitVariable:function(a){this.parts.push("v",a.index)},visitLiteral:function(a){this.parts.push(a.number)},visitBinaryOperation:function(a){this.parts.push("("),a.arg1.visit(this),this.parts.push(" ",a.op," "),a.arg2.visit(this),this.parts.push(")")},visitVariableDefinition:function(a){this.parts.push("var "),a.variable.visit(this),this.parts.push(" = "),a.arg.visit(this),this.parts.push(";")},visitMin:function(a){this.parts.push("Math.min("),a.arg.visit(this),this.parts.push(", ",a.max,")")},toString:function(){return this.parts.join("")}},m.prototype={compile:function(a,d,e){var m,n,o,p,q,r,s,t,u,v,w=[],x=[],y=d.length>>1,z=e.length>>1,A=0;for(m=0;y>m;m++)w.push(new b(m,d[2*m],d[2*m+1]));for(m=0,n=a.length;n>m;m++)if(v=a[m],"number"!=typeof v)switch(v){case"add":if(w.length<2)return null;r=w.pop(),q=w.pop(),w.push(i(q,r));break;case"cvr":if(w.length<1)return null;break;case"mul":if(w.length<2)return null;r=w.pop(),q=w.pop(),w.push(j(q,r));break;case"sub":if(w.length<2)return null;r=w.pop(),q=w.pop(),w.push(k(q,r));break;case"exch":if(w.length<2)return null;s=w.pop(),t=w.pop(),w.push(s,t);break;case"pop":if(w.length<1)return null;w.pop();break;case"index":if(w.length<1)return null;if(q=w.pop(),"literal"!==q.type)return null;if(o=q.number,0>o||(0|o)!==o||w.length<o)return null;if(s=w[w.length-o-1],"literal"===s.type||"var"===s.type){w.push(s);break}u=new f(A++,s.min,s.max),w[w.length-o-1]=u,w.push(u),x.push(new g(u,s));break;case"dup":if(w.length<1)return null;if("number"==typeof a[m+1]&&"gt"===a[m+2]&&a[m+3]===m+7&&"jz"===a[m+4]&&"pop"===a[m+5]&&a[m+6]===a[m+1]){q=w.pop(),w.push(l(q,a[m+1])),m+=6;break}if(s=w[w.length-1],"literal"===s.type||"var"===s.type){w.push(s);break}u=new f(A++,s.min,s.max),w[w.length-1]=u,w.push(u),x.push(new g(u,s));break;case"roll":if(w.length<2)return null;if(r=w.pop(),q=w.pop(),"literal"!==r.type||"literal"!==q.type)return null;if(p=r.number,o=q.number,0>=o||(0|o)!==o||(0|p)!==p||w.length<o)return null;if(p=(p%o+o)%o,0===p)break;Array.prototype.push.apply(w,w.splice(w.length-o,o-p));break;default:return null}else w.push(new c(v));if(w.length!==z)return null;var B=[];return x.forEach(function(a){var b=new h;a.visit(b),B.push(b.toString())}),w.forEach(function(a,b){var c=new h;a.visit(c);var d=e[2*b],f=e[2*b+1],g=[c.toString()];d>a.min&&(g.unshift("Math.max(",d,", "),g.push(")")),f<a.max&&(g.unshift("Math.min(",f,", "),g.push(")")),g.unshift("dest[destOffset + ",b,"] = "),g.push(";"),B.push(g.join(""))}),B.join("\n")}},m}(),Xa=function(){function a(){c("should not call ColorSpace constructor")}return a.prototype={getRgb:function(a,b){var c=new Uint8Array(3);return this.getRgbItem(a,b,c,0),c},getRgbItem:function(a,b,d,e){c("Should not call ColorSpace.getRgbItem")},getRgbBuffer:function(a,b,d,e,f,g,h){c("Should not call ColorSpace.getRgbBuffer")},getOutputLength:function(a,b){c("Should not call ColorSpace.getOutputLength")},isPassthrough:function(a){return!1},fillRgb:function(a,b,c,d,e,f,g,h,i){var j,k,l=b*c,m=null,n=1<<g,o=c!==e||b!==d;if(this.isPassthrough(g))m=h;else if(1===this.numComps&&l>n&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){var p,q=8>=g?new Uint8Array(n):new Uint16Array(n);for(j=0;n>j;j++)q[j]=j;var r=new Uint8Array(3*n);this.getRgbBuffer(q,0,n,r,0,g,0);var s,t;if(o)for(m=new Uint8Array(3*l),t=0,j=0;l>j;++j)p=3*h[j],m[t++]=r[p],m[t++]=r[p+1],m[t++]=r[p+2];else for(s=0,j=0;l>j;++j)p=3*h[j],a[s++]=r[p],a[s++]=r[p+1],a[s++]=r[p+2],s+=i}else o?(m=new Uint8Array(3*l),this.getRgbBuffer(h,0,l,m,0,g,0)):this.getRgbBuffer(h,0,d*f,a,0,g,i);if(m)if(o)Bc.resize(m,g,3,b,c,d,e,a,i);else for(t=0,s=0,j=0,k=d*f;k>j;j++)a[s++]=m[t++],a[s++]=m[t++],a[s++]=m[t++],s+=i},usesZeroToOneRange:!0},a.parse=function(b,c,d){var e=a.parseToIR(b,c,d);return e instanceof Ya?e:a.fromIR(e)},a.fromIR=function(b){var d,e,f,g=C(b)?b[0]:b;switch(g){case"DeviceGrayCS":return this.singletons.gray;case"DeviceRgbCS":return this.singletons.rgb;case"DeviceCmykCS":return this.singletons.cmyk;case"CalGrayCS":return d=b[1].WhitePoint,e=b[1].BlackPoint,f=b[1].Gamma,new cb(d,e,f);case"CalRGBCS":d=b[1].WhitePoint,e=b[1].BlackPoint,f=b[1].Gamma;var h=b[1].Matrix;return new db(d,e,f,h);case"PatternCS":var i=b[1];return i&&(i=a.fromIR(i)),new Za(i);case"IndexedCS":var j=b[1],k=b[2],l=b[3];return new $a(a.fromIR(j),k,l);case"AlternateCS":var m=b[1],n=b[2],o=b[3];return new Ya(m,a.fromIR(n),Ta.fromIR(o));case"LabCS":d=b[1].WhitePoint,e=b[1].BlackPoint;var p=b[1].Range;return new eb(d,e,p);default:c("Unknown name "+g)}return null},a.parseToIR=function(d,e,f){if(z(d)){var g=f.get("ColorSpace");if(B(g)){var h=g.get(d.name);h&&(d=h)}}d=e.fetchIfRef(d);var i;if(z(d))switch(i=d.name,this.mode=i,i){case"DeviceGray":case"G":return"DeviceGrayCS";case"DeviceRGB":case"RGB":return"DeviceRgbCS";case"DeviceCMYK":case"CMYK":return"DeviceCmykCS";case"Pattern":return["PatternCS",null];default:c("unrecognized colorspace "+i)}else if(C(d)){i=e.fetchIfRef(d[0]).name,this.mode=i;var j,k,l;switch(i){case"DeviceGray":case"G":return"DeviceGrayCS";case"DeviceRGB":case"RGB":return"DeviceRgbCS";case"DeviceCMYK":case"CMYK":return"DeviceCmykCS";case"CalGray":return k=e.fetchIfRef(d[1]).getAll(),["CalGrayCS",k];case"CalRGB":return k=e.fetchIfRef(d[1]).getAll(),["CalRGBCS",k];case"ICCBased":var m=e.fetchIfRef(d[1]),n=m.dict;if(j=n.get("N"),l=n.get("Alternate")){var o=a.parseToIR(l,e,f),p=a.fromIR(o);if(p.numComps===j)return o;b("ICCBased color space: Ignoring incorrect /Alternate entry.")}if(1===j)return"DeviceGrayCS";if(3===j)return"DeviceRgbCS";if(4===j)return"DeviceCmykCS";break;case"Pattern":var q=d[1]||null;return q&&(q=a.parseToIR(q,e,f)),["PatternCS",q];case"Indexed":case"I":var r=a.parseToIR(d[1],e,f),s=e.fetchIfRef(d[2])+1,t=e.fetchIfRef(d[3]);return D(t)&&(t=t.getBytes()),["IndexedCS",r,s,t];case"Separation":case"DeviceN":var u=e.fetchIfRef(d[1]);j=1,z(u)?j=1:C(u)&&(j=u.length),l=a.parseToIR(d[2],e,f);var v=Ta.getIR(e,e.fetchIfRef(d[3]));return["AlternateCS",j,l,v];case"Lab":return k=e.fetchIfRef(d[1]).getAll(),["LabCS",k];default:c('unimplemented color space object "'+i+'"')}}else c('unrecognized color space object: "'+d+'"');return null},a.isDefaultDecode=function(a,c){if(!C(a))return!0;if(2*c!==a.length)return b("The decode map is not the correct length"),!0;for(var d=0,e=a.length;e>d;d+=2)if(0!==a[d]||1!==a[d+1])return!1;return!0},a.singletons={get gray(){return g(this,"gray",new _a)},get rgb(){return g(this,"rgb",new ab)},get cmyk(){return g(this,"cmyk",new bb)}},a}(),Ya=function(){function a(a,b,c){this.name="Alternate",this.numComps=a,this.defaultColor=new Float32Array(a);for(var d=0;a>d;++d)this.defaultColor[d]=1;this.base=b,this.tintFn=c,this.tmpBuf=new Float32Array(b.numComps)}return a.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=this.tmpBuf;this.tintFn(a,b,e,0),this.base.getRgbItem(e,0,c,d)},getRgbBuffer:function(a,b,c,d,e,f,g){var h,i,j=this.tintFn,k=this.base,l=1/((1<<f)-1),m=k.numComps,n=k.usesZeroToOneRange,o=(k.isPassthrough(8)||!n)&&0===g,p=o?e:0,q=o?d:new Uint8Array(m*c),r=this.numComps,s=new Float32Array(r),t=new Float32Array(m);if(n)for(h=0;c>h;h++){for(i=0;r>i;i++)s[i]=a[b++]*l;for(j(s,0,t,0),i=0;m>i;i++)q[p++]=255*t[i]}else for(h=0;c>h;h++){for(i=0;r>i;i++)s[i]=a[b++]*l;j(s,0,t,0),k.getRgbItem(t,0,q,p),p+=m}o||k.getRgbBuffer(q,0,c,d,e,8,g)},getOutputLength:function(a,b){return this.base.getOutputLength(a*this.base.numComps/this.numComps,b)},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},a}(),Za=function(){function a(a){this.name="Pattern",this.base=a}return a.prototype={},a}(),$a=function(){function a(a,b,d){this.name="Indexed",this.numComps=1,this.defaultColor=new Uint8Array([0]),this.base=a,this.highVal=b;var e,f=a.numComps,g=f*b;if(D(d)){e=new Uint8Array(g);var h=d.getBytes(g);e.set(h)}else if(y(d)){e=new Uint8Array(g);for(var i=0;g>i;++i)e[i]=d.charCodeAt(i)}else d instanceof Uint8Array||d instanceof Array?e=d:c("Unrecognized lookup table: "+d);this.lookup=e}return a.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=this.base.numComps,f=a[b]*e;this.base.getRgbItem(this.lookup,f,c,d)},getRgbBuffer:function(a,b,c,d,e,f,g){for(var h=this.base,i=h.numComps,j=h.getOutputLength(i,g),k=this.lookup,l=0;c>l;++l){var m=a[b++]*i;h.getRgbBuffer(k,m,1,d,e,8,g),e+=j}},getOutputLength:function(a,b){return this.base.getOutputLength(a*this.base.numComps,b)},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return!0},usesZeroToOneRange:!0},a}(),_a=function(){function a(){this.name="DeviceGray",this.numComps=1,this.defaultColor=new Float32Array([0])}return a.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=255*a[b]|0;e=0>e?0:e>255?255:e,c[d]=c[d+1]=c[d+2]=e},getRgbBuffer:function(a,b,c,d,e,f,g){for(var h=255/((1<<f)-1),i=b,j=e,k=0;c>k;++k){var l=h*a[i++]|0;d[j++]=l,d[j++]=l,d[j++]=l,j+=g}},getOutputLength:function(a,b){return a*(3+b)},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},a}(),ab=function(){function a(){this.name="DeviceRGB",this.numComps=3,this.defaultColor=new Float32Array([0,0,0])}return a.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){var e=255*a[b]|0,f=255*a[b+1]|0,g=255*a[b+2]|0;c[d]=0>e?0:e>255?255:e,c[d+1]=0>f?0:f>255?255:f,c[d+2]=0>g?0:g>255?255:g},getRgbBuffer:function(a,b,c,d,e,f,g){if(8===f&&0===g)return void d.set(a.subarray(b,b+3*c),e);for(var h=255/((1<<f)-1),i=b,j=e,k=0;c>k;++k)d[j++]=h*a[i++]|0,d[j++]=h*a[i++]|0,d[j++]=h*a[i++]|0,j+=g},getOutputLength:function(a,b){return a*(3+b)/3|0},isPassthrough:function(a){return 8===a},fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},a}(),bb=function(){function a(a,b,c,d,e){var f=a[b+0]*c,g=a[b+1]*c,h=a[b+2]*c,i=a[b+3]*c,j=f*(-4.387332384609988*f+54.48615194189176*g+18.82290502165302*h+212.25662451639585*i+-285.2331026137004)+g*(1.7149763477362134*g-5.6096736904047315*h+-17.873870861415444*i-5.497006427196366)+h*(-2.5217340131683033*h-21.248923337353073*i+17.5119270841813)+i*(-21.86122147463605*i-189.48180835922747)+255|0,k=f*(8.841041422036149*f+60.118027045597366*g+6.871425592049007*h+31.159100130055922*i+-79.2970844816548)+g*(-15.310361306967817*g+17.575251261109482*h+131.35250912493976*i-190.9453302588951)+h*(4.444339102852739*h+9.8632861493405*i-24.86741582555878)+i*(-20.737325471181034*i-187.80453709719578)+255|0,l=f*(.8842522430003296*f+8.078677503112928*g+30.89978309703729*h-.23883238689178934*i+-14.183576799673286)+g*(10.49593273432072*g+63.02378494754052*h+50.606957656360734*i-112.23884253719248)+h*(.03296041114873217*h+115.60384449646641*i+-193.58209356861505)+i*(-22.33816807309886*i-180.12613974708367)+255|0;d[e]=j>255?255:0>j?0:j,d[e+1]=k>255?255:0>k?0:k,d[e+2]=l>255?255:0>l?0:l}function b(){this.name="DeviceCMYK",this.numComps=4,this.defaultColor=new Float32Array([0,0,0,1])}return b.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(b,c,d,e){a(b,c,1,d,e)},getRgbBuffer:function(b,c,d,e,f,g,h){for(var i=1/((1<<g)-1),j=0;d>j;j++)a(b,c,i,e,f),c+=4,f+=3+h},getOutputLength:function(a,b){return a/4*(3+b)|0},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},b}(),cb=function(){function d(d,e,f){this.name="CalGray",this.numComps=1,this.defaultColor=new Float32Array([0]),d||c("WhitePoint missing - required for color space CalGray"),e=e||[0,0,0],f=f||1,this.XW=d[0],this.YW=d[1],this.ZW=d[2],this.XB=e[0],this.YB=e[1],this.ZB=e[2],this.G=f,(this.XW<0||this.ZW<0||1!==this.YW)&&c("Invalid WhitePoint components for "+this.name+", no fallback available"),(this.XB<0||this.YB<0||this.ZB<0)&&(a("Invalid BlackPoint for "+this.name+", falling back to default"),this.XB=this.YB=this.ZB=0),0===this.XB&&0===this.YB&&0===this.ZB||b(this.name+", BlackPoint: XB: "+this.XB+", YB: "+this.YB+", ZB: "+this.ZB+", only default values are supported."),this.G<1&&(a("Invalid Gamma: "+this.G+" for "+this.name+", falling back to default"),this.G=1)}function e(a,b,c,d,e,f){var g=b[c]*f,h=Math.pow(g,a.G),i=a.YW*h,j=0|Math.max(295.8*Math.pow(i,.3333333333333333)-40.8,0);d[e]=j,d[e+1]=j,d[e+2]=j}return d.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){e(this,a,b,c,d,1)},getRgbBuffer:function(a,b,c,d,f,g,h){for(var i=1/((1<<g)-1),j=0;c>j;++j)e(this,a,b,d,f,i),b+=1,f+=3+h},getOutputLength:function(a,b){return a*(3+b)},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},d}(),db=function(){function b(b,d,e,f){this.name="CalRGB",this.numComps=3,this.defaultColor=new Float32Array(3),b||c("WhitePoint missing - required for color space CalRGB"),d=d||new Float32Array(3),e=e||new Float32Array([1,1,1]),f=f||new Float32Array([1,0,0,0,1,0,0,0,1]);var g=b[0],h=b[1],i=b[2];this.whitePoint=b;var j=d[0],k=d[1],l=d[2];this.blackPoint=d,this.GR=e[0],this.GG=e[1],this.GB=e[2],this.MXA=f[0],this.MYA=f[1],this.MZA=f[2],this.MXB=f[3],this.MYB=f[4],this.MZB=f[5],this.MXC=f[6],this.MYC=f[7],this.MZC=f[8],(0>g||0>i||1!==h)&&c("Invalid WhitePoint components for "+this.name+", no fallback available"),(0>j||0>k||0>l)&&(a("Invalid BlackPoint for "+this.name+" ["+j+", "+k+", "+l+"], falling back to default"),this.blackPoint=new Float32Array(3)),(this.GR<0||this.GG<0||this.GB<0)&&(a("Invalid Gamma ["+this.GR+", "+this.GG+", "+this.GB+"] for "+this.name+", falling back to default"),this.GR=this.GG=this.GB=1),(this.MXA<0||this.MYA<0||this.MZA<0||this.MXB<0||this.MYB<0||this.MZB<0||this.MXC<0||this.MYC<0||this.MZC<0)&&(a("Invalid Matrix for "+this.name+" ["+this.MXA+", "+this.MYA+", "+this.MZA+this.MXB+", "+this.MYB+", "+this.MZB+this.MXC+", "+this.MYC+", "+this.MZC+"], falling back to default"),this.MXA=this.MYB=this.MZC=1,this.MXB=this.MYA=this.MZA=this.MXC=this.MYC=this.MZB=0)}function d(a,b,c){c[0]=a[0]*b[0]+a[1]*b[1]+a[2]*b[2],c[1]=a[3]*b[0]+a[4]*b[1]+a[5]*b[2],c[2]=a[6]*b[0]+a[7]*b[1]+a[8]*b[2]}function e(a,b,c){c[0]=1*b[0]/a[0],c[1]=1*b[1]/a[1],c[2]=1*b[2]/a[2]}function f(a,b,c){var d=.95047,e=1,f=1.08883;c[0]=b[0]*d/a[0],c[1]=b[1]*e/a[1],c[2]=b[2]*f/a[2]}function g(a){return.0031308>=a?h(0,1,12.92*a):h(0,1,1.055*Math.pow(a,1/2.4)-.055)}function h(a,b,c){return Math.max(a,Math.min(b,c))}function i(a){return 0>a?-i(-a):a>8?Math.pow((a+16)/116,3):a*u}function j(a,b,c){if(0===a[0]&&0===a[1]&&0===a[2])return c[0]=b[0],c[1]=b[1],void(c[2]=b[2]);var d=i(0),e=d,f=i(a[0]),g=d,h=i(a[1]),j=d,k=i(a[2]),l=(1-e)/(1-f),m=1-l,n=(1-g)/(1-h),o=1-n,p=(1-j)/(1-k),q=1-p;c[0]=b[0]*l+m,c[1]=b[1]*n+o,c[2]=b[2]*p+q}function k(a,b,c){if(1===a[0]&&1===a[2])return c[0]=b[0],c[1]=b[1],void(c[2]=b[2]);var f=c;d(n,b,f);var g=r;e(a,f,g),d(o,g,c)}function l(a,b,c){var e=c;d(n,b,e);var g=r;f(a,e,g),d(o,g,c)}function m(a,b,c,e,f,i){var m=h(0,1,b[c]*i),n=h(0,1,b[c+1]*i),o=h(0,1,b[c+2]*i),r=Math.pow(m,a.GR),u=Math.pow(n,a.GG),v=Math.pow(o,a.GB),w=a.MXA*r+a.MXB*u+a.MXC*v,x=a.MYA*r+a.MYB*u+a.MYC*v,y=a.MZA*r+a.MZB*u+a.MZC*v,z=s;z[0]=w,z[1]=x,z[2]=y;var A=t;k(a.whitePoint,z,A);var B=s;j(a.blackPoint,A,B);var C=t;l(q,B,C);var D=s;d(p,C,D);var E=g(D[0]),F=g(D[1]),G=g(D[2]);e[f]=Math.round(255*E),e[f+1]=Math.round(255*F),e[f+2]=Math.round(255*G)}var n=new Float32Array([.8951,.2664,-.1614,-.7502,1.7135,.0367,.0389,-.0685,1.0296]),o=new Float32Array([.9869929,-.1470543,.1599627,.4323053,.5183603,.0492912,-.0085287,.0400428,.9684867]),p=new Float32Array([3.2404542,-1.5371385,-.4985314,-.969266,1.8760108,.041556,.0556434,-.2040259,1.0572252]),q=new Float32Array([1,1,1]),r=new Float32Array(3),s=new Float32Array(3),t=new Float32Array(3),u=Math.pow(24/116,3)/8;return b.prototype={getRgb:function(a,b){var c=new Uint8Array(3);return this.getRgbItem(a,b,c,0),c},getRgbItem:function(a,b,c,d){m(this,a,b,c,d,1)},getRgbBuffer:function(a,b,c,d,e,f,g){for(var h=1/((1<<f)-1),i=0;c>i;++i)m(this,a,b,d,e,h),b+=3,e+=3+g},getOutputLength:function(a,b){return a*(3+b)/3|0},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return Xa.isDefaultDecode(a,this.numComps)},usesZeroToOneRange:!0},b}(),eb=function(){function b(b,d,e){this.name="Lab",this.numComps=3,this.defaultColor=new Float32Array([0,0,0]),b||c("WhitePoint missing - required for color space Lab"),d=d||[0,0,0],e=e||[-100,100,-100,100],this.XW=b[0],this.YW=b[1],this.ZW=b[2],this.amin=e[0],this.amax=e[1],this.bmin=e[2],this.bmax=e[3],this.XB=d[0],this.YB=d[1],this.ZB=d[2],(this.XW<0||this.ZW<0||1!==this.YW)&&c("Invalid WhitePoint components, no fallback available"),(this.XB<0||this.YB<0||this.ZB<0)&&(a("Invalid BlackPoint, falling back to default"),this.XB=this.YB=this.ZB=0),(this.amin>this.amax||this.bmin>this.bmax)&&(a("Invalid Range, falling back to defaults"),this.amin=-100,this.amax=100,this.bmin=-100,this.bmax=100)}function d(a){return a>=6/29?a*a*a:108/841*(a-4/29)}function e(a,b,c,d){return c+a*(d-c)/b}function f(a,b,c,f,g,h){var i=b[c],j=b[c+1],k=b[c+2];f!==!1&&(i=e(i,f,0,100),j=e(j,f,a.amin,a.amax),k=e(k,f,a.bmin,a.bmax)),j=j>a.amax?a.amax:j<a.amin?a.amin:j,k=k>a.bmax?a.bmax:k<a.bmin?a.bmin:k;var l,m,n,o=(i+16)/116,p=o+j/500,q=o-k/200,r=a.XW*d(p),s=a.YW*d(o),t=a.ZW*d(q);a.ZW<1?(l=3.1339*r+-1.617*s+t*-.4906,m=r*-.9785+1.916*s+.0333*t,n=.072*r+s*-.229+1.4057*t):(l=3.2406*r+-1.5372*s+t*-.4986,m=r*-.9689+1.8758*s+.0415*t,n=.0557*r+s*-.204+1.057*t),g[h]=0>=l?0:l>=1?255:255*Math.sqrt(l)|0,g[h+1]=0>=m?0:m>=1?255:255*Math.sqrt(m)|0,g[h+2]=0>=n?0:n>=1?255:255*Math.sqrt(n)|0}return b.prototype={getRgb:Xa.prototype.getRgb,getRgbItem:function(a,b,c,d){f(this,a,b,!1,c,d)},getRgbBuffer:function(a,b,c,d,e,g,h){for(var i=(1<<g)-1,j=0;c>j;j++)f(this,a,b,i,d,e),b+=3,e+=3+h},getOutputLength:function(a,b){return a*(3+b)/3|0},isPassthrough:Xa.prototype.isPassthrough,fillRgb:Xa.prototype.fillRgb,isDefaultDecode:function(a){return!0},usesZeroToOneRange:!1},b}(),fb=function(){function a(a){this.a=0,this.b=0;var b,c,d=new Uint8Array(256),e=0,f=a.length;for(b=0;256>b;++b)d[b]=b;for(b=0;256>b;++b)c=d[b],e=e+c+a[b%f]&255,d[b]=d[e],d[e]=c;this.s=d}return a.prototype={encryptBlock:function(a){var b,c,d,e=a.length,f=this.a,g=this.b,h=this.s,i=new Uint8Array(e);for(b=0;e>b;++b)f=f+1&255,c=h[f],g=g+c&255,d=h[g],h[f]=d,h[g]=c,i[b]=a[b]^h[c+d&255];return this.a=f,this.b=g,i}},a.prototype.decryptBlock=a.prototype.encryptBlock,a}(),gb=function(){function a(a,d,e){var f,g,h,i=1732584193,j=-271733879,k=-1732584194,l=271733878,m=e+72&-64,n=new Uint8Array(m);for(f=0;e>f;++f)n[f]=a[d++];for(n[f++]=128,h=m-8;h>f;)n[f++]=0;n[f++]=e<<3&255,n[f++]=e>>5&255,n[f++]=e>>13&255,n[f++]=e>>21&255,n[f++]=e>>>29&255,n[f++]=0,n[f++]=0,n[f++]=0;var o=new Int32Array(16);for(f=0;m>f;){for(g=0;16>g;++g,f+=4)o[g]=n[f]|n[f+1]<<8|n[f+2]<<16|n[f+3]<<24;var p,q,r=i,s=j,t=k,u=l;for(g=0;64>g;++g){16>g?(p=s&t|~s&u,q=g):32>g?(p=u&s|~u&t,q=5*g+1&15):48>g?(p=s^t^u,q=3*g+5&15):(p=t^(s|~u),q=7*g&15);var v=u,w=r+p+c[g]+o[q]|0,x=b[g];u=t,t=s,s=s+(w<<x|w>>>32-x)|0,r=v}i=i+r|0,j=j+s|0,k=k+t|0,l=l+u|0}return new Uint8Array([255&i,i>>8&255,i>>16&255,i>>>24&255,255&j,j>>8&255,j>>16&255,j>>>24&255,255&k,k>>8&255,k>>16&255,k>>>24&255,255&l,l>>8&255,l>>16&255,l>>>24&255])}var b=new Uint8Array([7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21]),c=new Int32Array([-680876936,-389564586,606105819,-1044525330,-176418897,1200080426,-1473231341,-45705983,1770035416,-1958414417,-42063,-1990404162,1804603682,-40341101,-1502002290,1236535329,-165796510,-1069501632,643717713,-373897302,-701558691,38016083,-660478335,-405537848,568446438,-1019803690,-187363961,1163531501,-1444681467,-51403784,1735328473,-1926607734,-378558,-2022574463,1839030562,-35309556,-1530992060,1272893353,-155497632,-1094730640,681279174,-358537222,-722521979,76029189,-640364487,-421815835,530742520,-995338651,-198630844,1126891415,-1416354905,-57434055,1700485571,-1894986606,-1051523,-2054922799,1873313359,-30611744,-1560198380,1309151649,-145523070,-1120210379,718787259,-343485551]);return a}(),hb=function(){function a(a,b){this.high=0|a,this.low=0|b}return a.prototype={and:function(a){this.high&=a.high,this.low&=a.low},xor:function(a){this.high^=a.high,this.low^=a.low},or:function(a){this.high|=a.high,this.low|=a.low},shiftRight:function(a){a>=32?(this.low=this.high>>>a-32|0,this.high=0):(this.low=this.low>>>a|this.high<<32-a,this.high=this.high>>>a|0)},shiftLeft:function(a){a>=32?(this.high=this.low<<a-32,this.low=0):(this.high=this.high<<a|this.low>>>32-a,this.low=this.low<<a)},rotateRight:function(a){var b,c;32&a?(c=this.low,b=this.high):(b=this.low,c=this.high),a&=31,this.low=b>>>a|c<<32-a,this.high=c>>>a|b<<32-a},not:function(){this.high=~this.high,this.low=~this.low},add:function(a){var b=(this.low>>>0)+(a.low>>>0),c=(this.high>>>0)+(a.high>>>0);b>4294967295&&(c+=1),this.low=0|b,this.high=0|c},copyTo:function(a,b){a[b]=this.high>>>24&255,a[b+1]=this.high>>16&255,a[b+2]=this.high>>8&255,a[b+3]=255&this.high,a[b+4]=this.low>>>24&255,a[b+5]=this.low>>16&255,a[b+6]=this.low>>8&255,a[b+7]=255&this.low},assign:function(a){this.high=a.high,this.low=a.low}},a}(),ib=function(){function a(a,b){return a>>>b|a<<32-b}function b(a,b,c){return a&b^~a&c}function c(a,b,c){return a&b^a&c^b&c}function d(b){return a(b,2)^a(b,13)^a(b,22)}function e(b){return a(b,6)^a(b,11)^a(b,25)}function f(b){return a(b,7)^a(b,18)^b>>>3}function g(b){return a(b,17)^a(b,19)^b>>>10}function h(a,h,j){var k,l,m,n=1779033703,o=3144134277,p=1013904242,q=2773480762,r=1359893119,s=2600822924,t=528734635,u=1541459225,v=64*Math.ceil((j+9)/64),w=new Uint8Array(v);for(k=0;j>k;++k)w[k]=a[h++];for(w[k++]=128,m=v-8;m>k;)w[k++]=0;w[k++]=0,w[k++]=0,w[k++]=0,w[k++]=j>>>29&255,w[k++]=j>>21&255,w[k++]=j>>13&255,w[k++]=j>>5&255,w[k++]=j<<3&255;var x=new Uint32Array(64);for(k=0;v>k;){for(l=0;16>l;++l)x[l]=w[k]<<24|w[k+1]<<16|w[k+2]<<8|w[k+3],k+=4;for(l=16;64>l;++l)x[l]=g(x[l-2])+x[l-7]+f(x[l-15])+x[l-16]|0;var y,z,A=n,B=o,C=p,D=q,E=r,F=s,G=t,H=u;for(l=0;64>l;++l)y=H+e(E)+b(E,F,G)+i[l]+x[l],z=d(A)+c(A,B,C),H=G,G=F,F=E,E=D+y|0,D=C,C=B,B=A,A=y+z|0;n=n+A|0,o=o+B|0,p=p+C|0,q=q+D|0,r=r+E|0,s=s+F|0,t=t+G|0,u=u+H|0}return new Uint8Array([n>>24&255,n>>16&255,n>>8&255,255&n,o>>24&255,o>>16&255,o>>8&255,255&o,p>>24&255,p>>16&255,p>>8&255,255&p,q>>24&255,q>>16&255,q>>8&255,255&q,r>>24&255,r>>16&255,r>>8&255,255&r,s>>24&255,s>>16&255,s>>8&255,255&s,t>>24&255,t>>16&255,t>>8&255,255&t,u>>24&255,u>>16&255,u>>8&255,255&u])}var i=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return h}(),jb=function(){function a(a,b,c,d,e){a.assign(b),a.and(c),e.assign(b),e.not(),e.and(d),a.xor(e)}function b(a,b,c,d,e){a.assign(b),a.and(c),e.assign(b),e.and(d),a.xor(e),e.assign(c),e.and(d),a.xor(e)}function c(a,b,c){a.assign(b),a.rotateRight(28),c.assign(b),c.rotateRight(34),a.xor(c),c.assign(b),c.rotateRight(39),a.xor(c)}function d(a,b,c){a.assign(b),a.rotateRight(14),c.assign(b),c.rotateRight(18),a.xor(c),c.assign(b),c.rotateRight(41),a.xor(c)}function e(a,b,c){a.assign(b),a.rotateRight(1),c.assign(b),c.rotateRight(8),a.xor(c),c.assign(b),c.shiftRight(7),a.xor(c)}function f(a,b,c){a.assign(b),a.rotateRight(19),c.assign(b),c.rotateRight(61),a.xor(c),c.assign(b),c.shiftRight(6),a.xor(c)}function g(g,i,j,k){k=!!k;var l,m,n,o,p,q,r,s;k?(l=new hb(3418070365,3238371032),m=new hb(1654270250,914150663),n=new hb(2438529370,812702999),o=new hb(355462360,4144912697),p=new hb(1731405415,4290775857),q=new hb(2394180231,1750603025),r=new hb(3675008525,1694076839),s=new hb(1203062813,3204075428)):(l=new hb(1779033703,4089235720),m=new hb(3144134277,2227873595),n=new hb(1013904242,4271175723),o=new hb(2773480762,1595750129),p=new hb(1359893119,2917565137),q=new hb(2600822924,725511199),r=new hb(528734635,4215389547),s=new hb(1541459225,327033209));var t,u,v,w=128*Math.ceil((j+17)/128),x=new Uint8Array(w);for(t=0;j>t;++t)x[t]=g[i++];for(x[t++]=128,v=w-16;v>t;)x[t++]=0;x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=0,x[t++]=j>>>29&255,x[t++]=j>>21&255,x[t++]=j>>13&255,x[t++]=j>>5&255,x[t++]=j<<3&255;var y=new Array(80);for(t=0;80>t;t++)y[t]=new hb(0,0);var z,A=new hb(0,0),B=new hb(0,0),C=new hb(0,0),D=new hb(0,0),E=new hb(0,0),F=new hb(0,0),G=new hb(0,0),H=new hb(0,0),I=new hb(0,0),J=new hb(0,0),K=new hb(0,0),L=new hb(0,0);
+for(t=0;w>t;){for(u=0;16>u;++u)y[u].high=x[t]<<24|x[t+1]<<16|x[t+2]<<8|x[t+3],y[u].low=x[t+4]<<24|x[t+5]<<16|x[t+6]<<8|x[t+7],t+=8;for(u=16;80>u;++u)z=y[u],f(z,y[u-2],L),z.add(y[u-7]),e(K,y[u-15],L),z.add(K),z.add(y[u-16]);for(A.assign(l),B.assign(m),C.assign(n),D.assign(o),E.assign(p),F.assign(q),G.assign(r),H.assign(s),u=0;80>u;++u)I.assign(H),d(K,E,L),I.add(K),a(K,E,F,G,L),I.add(K),I.add(h[u]),I.add(y[u]),c(J,A,L),b(K,A,B,C,L),J.add(K),z=H,H=G,G=F,F=E,D.add(I),E=D,D=C,C=B,B=A,z.assign(I),z.add(J),A=z;l.add(A),m.add(B),n.add(C),o.add(D),p.add(E),q.add(F),r.add(G),s.add(H)}var M;return k?(M=new Uint8Array(48),l.copyTo(M,0),m.copyTo(M,8),n.copyTo(M,16),o.copyTo(M,24),p.copyTo(M,32),q.copyTo(M,40)):(M=new Uint8Array(64),l.copyTo(M,0),m.copyTo(M,8),n.copyTo(M,16),o.copyTo(M,24),p.copyTo(M,32),q.copyTo(M,40),r.copyTo(M,48),s.copyTo(M,56)),M}var h=[new hb(1116352408,3609767458),new hb(1899447441,602891725),new hb(3049323471,3964484399),new hb(3921009573,2173295548),new hb(961987163,4081628472),new hb(1508970993,3053834265),new hb(2453635748,2937671579),new hb(2870763221,3664609560),new hb(3624381080,2734883394),new hb(310598401,1164996542),new hb(607225278,1323610764),new hb(1426881987,3590304994),new hb(1925078388,4068182383),new hb(2162078206,991336113),new hb(2614888103,633803317),new hb(3248222580,3479774868),new hb(3835390401,2666613458),new hb(4022224774,944711139),new hb(264347078,2341262773),new hb(604807628,2007800933),new hb(770255983,1495990901),new hb(1249150122,1856431235),new hb(1555081692,3175218132),new hb(1996064986,2198950837),new hb(2554220882,3999719339),new hb(2821834349,766784016),new hb(2952996808,2566594879),new hb(3210313671,3203337956),new hb(3336571891,1034457026),new hb(3584528711,2466948901),new hb(113926993,3758326383),new hb(338241895,168717936),new hb(666307205,1188179964),new hb(773529912,1546045734),new hb(1294757372,1522805485),new hb(1396182291,2643833823),new hb(1695183700,2343527390),new hb(1986661051,1014477480),new hb(2177026350,1206759142),new hb(2456956037,344077627),new hb(2730485921,1290863460),new hb(2820302411,3158454273),new hb(3259730800,3505952657),new hb(3345764771,106217008),new hb(3516065817,3606008344),new hb(3600352804,1432725776),new hb(4094571909,1467031594),new hb(275423344,851169720),new hb(430227734,3100823752),new hb(506948616,1363258195),new hb(659060556,3750685593),new hb(883997877,3785050280),new hb(958139571,3318307427),new hb(1322822218,3812723403),new hb(1537002063,2003034995),new hb(1747873779,3602036899),new hb(1955562222,1575990012),new hb(2024104815,1125592928),new hb(2227730452,2716904306),new hb(2361852424,442776044),new hb(2428436474,593698344),new hb(2756734187,3733110249),new hb(3204031479,2999351573),new hb(3329325298,3815920427),new hb(3391569614,3928383900),new hb(3515267271,566280711),new hb(3940187606,3454069534),new hb(4118630271,4000239992),new hb(116418474,1914138554),new hb(174292421,2731055270),new hb(289380356,3203993006),new hb(460393269,320620315),new hb(685471733,587496836),new hb(852142971,1086792851),new hb(1017036298,365543100),new hb(1126000580,2618297676),new hb(1288033470,3409855158),new hb(1501505948,4234509866),new hb(1607167915,987167468),new hb(1816402316,1246189591)];return g}(),kb=function(){function a(a,b,c){return jb(a,b,c,!0)}return a}(),lb=function(){function a(){}return a.prototype={decryptBlock:function(a){return a}},a}(),mb=function(){function a(a){var b=176,c=new Uint8Array(b);c.set(a);for(var d=16,e=1;b>d;++e){var h=c[d-3],i=c[d-2],j=c[d-1],k=c[d-4];h=g[h],i=g[i],j=g[j],k=g[k],h^=f[e];for(var l=0;4>l;++l)c[d]=h^=c[d-16],d++,c[d]=i^=c[d-16],d++,c[d]=j^=c[d-16],d++,c[d]=k^=c[d-16],d++}return c}function b(a,b){var c=new Uint8Array(16);c.set(a);var d,e,f,g,i,j;for(e=0,f=160;16>e;++e,++f)c[e]^=b[f];for(d=9;d>=1;--d){for(g=c[13],c[13]=c[9],c[9]=c[5],c[5]=c[1],c[1]=g,g=c[14],i=c[10],c[14]=c[6],c[10]=c[2],c[6]=g,c[2]=i,g=c[15],i=c[11],j=c[7],c[15]=c[3],c[11]=g,c[7]=i,c[3]=j,e=0;16>e;++e)c[e]=h[c[e]];for(e=0,f=16*d;16>e;++e,++f)c[e]^=b[f];for(e=0;16>e;e+=4){var l=k[c[e]],m=k[c[e+1]],n=k[c[e+2]],o=k[c[e+3]];g=l^m>>>8^m<<24^n>>>16^n<<16^o>>>24^o<<8,c[e]=g>>>24&255,c[e+1]=g>>16&255,c[e+2]=g>>8&255,c[e+3]=255&g}}for(g=c[13],c[13]=c[9],c[9]=c[5],c[5]=c[1],c[1]=g,g=c[14],i=c[10],c[14]=c[6],c[10]=c[2],c[6]=g,c[2]=i,g=c[15],i=c[11],j=c[7],c[15]=c[3],c[11]=g,c[7]=i,c[3]=j,e=0;16>e;++e)c[e]=h[c[e]],c[e]^=b[e];return c}function c(a,b){var c,d,e,f,h=new Uint8Array(16);for(h.set(a),k=0;16>k;++k)h[k]^=b[k];for(j=1;10>j;j++){for(k=0;16>k;++k)h[k]=g[h[k]];e=h[1],h[1]=h[5],h[5]=h[9],h[9]=h[13],h[13]=e,e=h[2],d=h[6],h[2]=h[10],h[6]=h[14],h[10]=e,h[14]=d,e=h[3],d=h[7],c=h[11],h[3]=h[15],h[7]=e,h[11]=d,h[15]=c;for(var k=0;16>k;k+=4){var l=h[k+0],m=h[k+1],n=h[k+2],o=h[k+3];c=l^m^n^o,h[k+0]^=c^i[l^m],h[k+1]^=c^i[m^n],h[k+2]^=c^i[n^o],h[k+3]^=c^i[o^l]}for(k=0,f=16*j;16>k;++k,++f)h[k]^=b[f]}for(k=0;16>k;++k)h[k]=g[h[k]];for(e=h[1],h[1]=h[5],h[5]=h[9],h[9]=h[13],h[13]=e,e=h[2],d=h[6],h[2]=h[10],h[6]=h[14],h[10]=e,h[14]=d,e=h[3],d=h[7],c=h[11],h[3]=h[15],h[7]=e,h[11]=d,h[15]=c,k=0,f=160;16>k;++k,++f)h[k]^=b[f];return h}function d(b){this.key=a(b),this.buffer=new Uint8Array(16),this.bufferPosition=0}function e(a,c){var d,e,f,g=a.length,h=this.buffer,i=this.bufferPosition,j=[],k=this.iv;for(d=0;g>d;++d)if(h[i]=a[d],++i,!(16>i)){var l=b(h,this.key);for(e=0;16>e;++e)l[e]^=k[e];k=h,j.push(l),h=new Uint8Array(16),i=0}if(this.buffer=h,this.bufferLength=i,this.iv=k,0===j.length)return new Uint8Array([]);var m=16*j.length;if(c){var n=j[j.length-1],o=n[15];if(16>=o){for(d=15,f=16-o;d>=f;--d)if(n[d]!==o){o=0;break}m-=o,j[j.length-1]=n.subarray(0,16-o)}}var p=new Uint8Array(m);for(d=0,e=0,f=j.length;f>d;++d,e+=16)p.set(j[d],e);return p}for(var f=new Uint8Array([141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141]),g=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),h=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]),i=new Uint8Array(256),j=0;256>j;j++)128>j?i[j]=j<<1:i[j]=j<<1^27;var k=new Uint32Array([0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795]);return d.prototype={decryptBlock:function(a,b){var c,d=a.length,f=this.buffer,g=this.bufferPosition;for(c=0;16>g&&d>c;++c,++g)f[g]=a[c];return 16>g?(this.bufferLength=g,new Uint8Array([])):(this.iv=f,this.buffer=new Uint8Array(16),this.bufferLength=0,this.decryptBlock=e,this.decryptBlock(a.subarray(16),b))},encrypt:function(a,b){var d,e,f,g=a.length,h=this.buffer,i=this.bufferPosition,j=[];for(b||(b=new Uint8Array(16)),d=0;g>d;++d)if(h[i]=a[d],++i,!(16>i)){for(e=0;16>e;++e)h[e]^=b[e];var k=c(h,this.key);b=k,j.push(k),h=new Uint8Array(16),i=0}if(this.buffer=h,this.bufferLength=i,this.iv=b,0===j.length)return new Uint8Array([]);var l=16*j.length,m=new Uint8Array(l);for(d=0,e=0,f=j.length;f>d;++d,e+=16)m.set(j[d],e);return m}},d}(),nb=function(){function a(a){var b=240,c=new Uint8Array(b),d=1;c.set(a);for(var e=32,g=1;b>e;++g){if(e%32===16)h=f[h],i=f[i],j=f[j],k=f[k];else if(e%32===0){var h=c[e-3],i=c[e-2],j=c[e-1],k=c[e-4];h=f[h],i=f[i],j=f[j],k=f[k],h^=d,(d<<=1)>=256&&(d=255&(27^d))}for(var l=0;4>l;++l)c[e]=h^=c[e-32],e++,c[e]=i^=c[e-32],e++,c[e]=j^=c[e-32],e++,c[e]=k^=c[e-32],e++}return c}function b(a,b){var c=new Uint8Array(16);c.set(a);var d,e,f,h,i,k;for(e=0,f=224;16>e;++e,++f)c[e]^=b[f];for(d=13;d>=1;--d){for(h=c[13],c[13]=c[9],c[9]=c[5],c[5]=c[1],c[1]=h,h=c[14],i=c[10],c[14]=c[6],c[10]=c[2],c[6]=h,c[2]=i,h=c[15],i=c[11],k=c[7],c[15]=c[3],c[11]=h,c[7]=i,c[3]=k,e=0;16>e;++e)c[e]=g[c[e]];for(e=0,f=16*d;16>e;++e,++f)c[e]^=b[f];for(e=0;16>e;e+=4){var l=j[c[e]],m=j[c[e+1]],n=j[c[e+2]],o=j[c[e+3]];h=l^m>>>8^m<<24^n>>>16^n<<16^o>>>24^o<<8,c[e]=h>>>24&255,c[e+1]=h>>16&255,c[e+2]=h>>8&255,c[e+3]=255&h}}for(h=c[13],c[13]=c[9],c[9]=c[5],c[5]=c[1],c[1]=h,h=c[14],i=c[10],c[14]=c[6],c[10]=c[2],c[6]=h,c[2]=i,h=c[15],i=c[11],k=c[7],c[15]=c[3],c[11]=h,c[7]=i,c[3]=k,e=0;16>e;++e)c[e]=g[c[e]],c[e]^=b[e];return c}function c(a,b){var c,d,e,g,j=new Uint8Array(16);for(j.set(a),k=0;16>k;++k)j[k]^=b[k];for(i=1;14>i;i++){for(k=0;16>k;++k)j[k]=f[j[k]];e=j[1],j[1]=j[5],j[5]=j[9],j[9]=j[13],j[13]=e,e=j[2],d=j[6],j[2]=j[10],j[6]=j[14],j[10]=e,j[14]=d,e=j[3],d=j[7],c=j[11],j[3]=j[15],j[7]=e,j[11]=d,j[15]=c;for(var k=0;16>k;k+=4){var l=j[k+0],m=j[k+1],n=j[k+2],o=j[k+3];c=l^m^n^o,j[k+0]^=c^h[l^m],j[k+1]^=c^h[m^n],j[k+2]^=c^h[n^o],j[k+3]^=c^h[o^l]}for(k=0,g=16*i;16>k;++k,++g)j[k]^=b[g]}for(k=0;16>k;++k)j[k]=f[j[k]];for(e=j[1],j[1]=j[5],j[5]=j[9],j[9]=j[13],j[13]=e,e=j[2],d=j[6],j[2]=j[10],j[6]=j[14],j[10]=e,j[14]=d,e=j[3],d=j[7],c=j[11],j[3]=j[15],j[7]=e,j[11]=d,j[15]=c,k=0,g=224;16>k;++k,++g)j[k]^=b[g];return j}function d(b){this.key=a(b),this.buffer=new Uint8Array(16),this.bufferPosition=0}function e(a,c){var d,e,f,g=a.length,h=this.buffer,i=this.bufferPosition,j=[],k=this.iv;for(d=0;g>d;++d)if(h[i]=a[d],++i,!(16>i)){var l=b(h,this.key);for(e=0;16>e;++e)l[e]^=k[e];k=h,j.push(l),h=new Uint8Array(16),i=0}if(this.buffer=h,this.bufferLength=i,this.iv=k,0===j.length)return new Uint8Array([]);var m=16*j.length;if(c){var n=j[j.length-1],o=n[15];if(16>=o){for(d=15,f=16-o;d>=f;--d)if(n[d]!==o){o=0;break}m-=o,j[j.length-1]=n.subarray(0,16-o)}}var p=new Uint8Array(m);for(d=0,e=0,f=j.length;f>d;++d,e+=16)p.set(j[d],e);return p}for(var f=(new Uint8Array([141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141,1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145,57,114,228,211,189,97,194,159,37,74,148,51,102,204,131,29,58,116,232,203,141]),new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22])),g=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]),h=new Uint8Array(256),i=0;256>i;i++)128>i?h[i]=i<<1:h[i]=i<<1^27;var j=new Uint32Array([0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795]);return d.prototype={decryptBlock:function(a,b,c){var d,f=a.length,g=this.buffer,h=this.bufferPosition;if(c)this.iv=c;else{for(d=0;16>h&&f>d;++d,++h)g[h]=a[d];if(16>h)return this.bufferLength=h,new Uint8Array([]);this.iv=g,a=a.subarray(16)}return this.buffer=new Uint8Array(16),this.bufferLength=0,this.decryptBlock=e,this.decryptBlock(a,b)},encrypt:function(a,b){var d,e,f,g=a.length,h=this.buffer,i=this.bufferPosition,j=[];for(b||(b=new Uint8Array(16)),d=0;g>d;++d)if(h[i]=a[d],++i,!(16>i)){for(e=0;16>e;++e)h[e]^=b[e];var k=c(h,this.key);this.iv=k,j.push(k),h=new Uint8Array(16),i=0}if(this.buffer=h,this.bufferLength=i,this.iv=b,0===j.length)return new Uint8Array([]);var l=16*j.length,m=new Uint8Array(l);for(d=0,e=0,f=j.length;f>d;++d,e+=16)m.set(j[d],e);return m}},d}(),ob=function(){function a(a,b){if(a.length!==b.length)return!1;for(var c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}function b(){}return b.prototype={checkOwnerPassword:function(b,c,d,e){var f=new Uint8Array(b.length+56);f.set(b,0),f.set(c,b.length),f.set(d,b.length+c.length);var g=ib(f,0,f.length);return a(g,e)},checkUserPassword:function(b,c,d){var e=new Uint8Array(b.length+8);e.set(b,0),e.set(c,b.length);var f=ib(e,0,e.length);return a(f,d)},getOwnerKey:function(a,b,c,d){var e=new Uint8Array(a.length+56);e.set(a,0),e.set(b,a.length),e.set(c,a.length+b.length);var f=ib(e,0,e.length),g=new nb(f);return g.decryptBlock(d,!1,new Uint8Array(16))},getUserKey:function(a,b,c){var d=new Uint8Array(a.length+8);d.set(a,0),d.set(b,a.length);var e=ib(d,0,d.length),f=new nb(e);return f.decryptBlock(c,!1,new Uint8Array(16))}},b}(),pb=function(){function a(a,b){var c=new Uint8Array(a.length+b.length);return c.set(a,0),c.set(b,a.length),c}function b(b,c,d){for(var e=ib(c,0,c.length).subarray(0,32),f=[0],g=0;64>g||f[f.length-1]>g-32;){var h=b.length+e.length+d.length,i=new Uint8Array(64*h),j=a(b,e);j=a(j,d);for(var k=0,l=0;64>k;k++,l+=h)i.set(j,l);var m=new mb(e.subarray(0,16));f=m.encrypt(i,e.subarray(16,32));for(var n=0,o=0;16>o;o++)n*=1,n%=3,n+=(f[o]>>>0)%3,n%=3;0===n?e=ib(f,0,f.length):1===n?e=kb(f,0,f.length):2===n&&(e=jb(f,0,f.length)),g++}return e.subarray(0,32)}function c(){}function d(a,b){if(a.length!==b.length)return!1;for(var c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}return c.prototype={hash:function(a,c,d){return b(a,c,d)},checkOwnerPassword:function(a,c,e,f){var g=new Uint8Array(a.length+56);g.set(a,0),g.set(c,a.length),g.set(e,a.length+c.length);var h=b(a,g,e);return d(h,f)},checkUserPassword:function(a,c,e){var f=new Uint8Array(a.length+8);f.set(a,0),f.set(c,a.length);var g=b(a,f,[]);return d(g,e)},getOwnerKey:function(a,c,d,e){var f=new Uint8Array(a.length+56);f.set(a,0),f.set(c,a.length),f.set(d,a.length+c.length);var g=b(a,f,d),h=new nb(g);return h.decryptBlock(e,!1,new Uint8Array(16))},getUserKey:function(a,c,d){var e=new Uint8Array(a.length+8);e.set(a,0),e.set(c,a.length);var f=b(a,e,[]),g=new nb(f);return g.decryptBlock(d,!1,new Uint8Array(16))}},c}(),qb=function(){function a(a,b){this.stringCipherConstructor=a,this.streamCipherConstructor=b}return a.prototype={createStream:function(a,b){var c=new this.streamCipherConstructor;return new Vc(a,b,function(a,b){return c.decryptBlock(a,b)})},decryptString:function(a){var b=new this.stringCipherConstructor,c=j(a);return c=b.decryptBlock(c,!0),i(c)}},a}(),rb=function(){function a(a,b,c,d,e,f,g,h,i,j,k,l){if(b){var m=Math.min(127,b.length);b=b.subarray(0,m)}else b=[];var n;if(n=6===a?new pb:new ob){if(n.checkUserPassword(b,h,g))return n.getUserKey(b,i,k);if(b.length&&n.checkOwnerPassword(b,d,f,c))return n.getOwnerKey(b,e,f,j)}return null}function d(a,b,c,d,e,f,g,h){var j,k,l=40+c.length+a.length,m=new Uint8Array(l),n=0;if(b)for(k=Math.min(32,b.length);k>n;++n)m[n]=b[n];for(j=0;32>n;)m[n++]=i[j++];for(j=0,k=c.length;k>j;++j)m[n++]=c[j];for(m[n++]=255&e,m[n++]=e>>8&255,m[n++]=e>>16&255,m[n++]=e>>>24&255,j=0,k=a.length;k>j;++j)m[n++]=a[j];f>=4&&!h&&(m[n++]=255,m[n++]=255,m[n++]=255,m[n++]=255);var o=gb(m,0,n),p=g>>3;if(f>=3)for(j=0;50>j;++j)o=gb(o,0,p);var q,r,s=o.subarray(0,p);if(f>=3){for(n=0;32>n;++n)m[n]=i[n];for(j=0,k=a.length;k>j;++j)m[n++]=a[j];q=new fb(s),r=q.encryptBlock(gb(m,0,n)),k=s.length;var t,u=new Uint8Array(k);for(j=1;19>=j;++j){for(t=0;k>t;++t)u[t]=s[t]^j;q=new fb(u),r=q.encryptBlock(r)}for(j=0,k=r.length;k>j;++j)if(d[j]!==r[j])return null}else for(q=new fb(s),r=q.encryptBlock(i),j=0,k=r.length;k>j;++j)if(d[j]!==r[j])return null;return s}function e(a,b,c,d){var e,f,g=new Uint8Array(32),h=0;for(f=Math.min(32,a.length);f>h;++h)g[h]=a[h];for(e=0;32>h;)g[h++]=i[e++];var j=gb(g,0,h),k=d>>3;if(c>=3)for(e=0;50>e;++e)j=gb(j,0,j.length);var l,m;if(c>=3){m=b;var n,o=new Uint8Array(k);for(e=19;e>=0;e--){for(n=0;k>n;++n)o[n]=j[n]^e;l=new fb(o),m=l.encryptBlock(m)}}else l=new fb(j.subarray(0,k)),m=l.encryptBlock(b);return m}function f(f,g,h){var i=f.get("Filter");z(i)&&"Standard"===i.name||c("unknown encryption method"),this.dict=f;var l=f.get("V");(!w(l)||1!==l&&2!==l&&4!==l&&5!==l)&&c("unsupported encryption algorithm"),this.algorithm=l;var m=f.get("Length")||40;(!w(m)||40>m||m%8!==0)&&c("invalid key length");var n=j(f.get("O")).subarray(0,32),o=j(f.get("U")).subarray(0,32),p=f.get("P"),q=f.get("R"),r=(4===l||5===l)&&f.get("EncryptMetadata")!==!1;this.encryptMetadata=r;var s,u=j(g);if(h){if(6===q)try{h=t(h)}catch(v){b("CipherTransformFactory: Unable to convert UTF8 encoded password.")}s=j(h)}var x;if(5!==l)x=d(u,s,n,o,p,q,m,r);else{var y=j(f.get("O")).subarray(32,40),A=j(f.get("O")).subarray(40,48),B=j(f.get("U")).subarray(0,48),C=j(f.get("U")).subarray(32,40),D=j(f.get("U")).subarray(40,48),E=j(f.get("OE")),F=j(f.get("UE")),G=j(f.get("Perms"));x=a(q,s,n,y,A,B,o,C,D,E,F,G)}if(!x&&!h)throw new da("No password given",ca.NEED_PASSWORD);if(!x&&h){var H=e(s,n,q,m);x=d(u,H,n,o,p,q,m,r)}if(!x)throw new da("Incorrect Password",ca.INCORRECT_PASSWORD);this.encryptionKey=x,l>=4&&(this.cf=f.get("CF"),this.stmf=f.get("StmF")||k,this.strf=f.get("StrF")||k,this.eff=f.get("EFF")||this.stmf)}function g(a,b,c,d){var e,f,g=new Uint8Array(c.length+9);for(e=0,f=c.length;f>e;++e)g[e]=c[e];g[e++]=255&a,g[e++]=a>>8&255,g[e++]=a>>16&255,g[e++]=255&b,g[e++]=b>>8&255,d&&(g[e++]=115,g[e++]=65,g[e++]=108,g[e++]=84);var h=gb(g,0,e);return h.subarray(0,Math.min(c.length+5,16))}function h(a,b,d,e,f){var h,i=a.get(b.name);return null!==i&&void 0!==i&&(h=i.get("CFM")),h&&"None"!==h.name?"V2"===h.name?function(){return new fb(g(d,e,f,!1))}:"AESV2"===h.name?function(){return new mb(g(d,e,f,!0))}:"AESV3"===h.name?function(){return new nb(f)}:void c("Unknown crypto method"):function(){return new lb}}var i=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]),k=ya.get("Identity");return f.prototype={createCipherTransform:function(a,b){if(4===this.algorithm||5===this.algorithm)return new qb(h(this.cf,this.stmf,a,b,this.encryptionKey),h(this.cf,this.strf,a,b,this.encryptionKey));var c=g(a,b,this.encryptionKey,!1),d=function(){return new fb(c)};return new qb(d,d)}},f}(),sb={FUNCTION_BASED:1,AXIAL:2,RADIAL:3,FREE_FORM_MESH:4,LATTICE_FORM_MESH:5,COONS_PATCH_MESH:6,TENSOR_PATCH_MESH:7},tb=function(){function a(){c("should not call Pattern constructor")}return a.prototype={getPattern:function(a){c("Should not call Pattern.getStyle: "+a)}},a.parseShading=function(a,c,d,e){var f=D(a)?a.dict:a,g=f.get("ShadingType");try{switch(g){case sb.AXIAL:case sb.RADIAL:return new ub.RadialAxial(f,c,d,e);case sb.FREE_FORM_MESH:case sb.LATTICE_FORM_MESH:case sb.COONS_PATCH_MESH:case sb.TENSOR_PATCH_MESH:return new ub.Mesh(a,c,d,e);default:throw new Error("Unsupported ShadingType: "+g)}}catch(h){if(h instanceof ja)throw h;return aa.notify(_.shadingPattern),b(h),new ub.Dummy}},a}(),ub={};ub.SMALL_NUMBER=.01,ub.RadialAxial=function(){function d(c,d,e,f){this.matrix=d,this.coordsArr=c.get("Coords"),this.shadingType=c.get("ShadingType"),this.type="Pattern";var g=c.get("ColorSpace","CS");g=Xa.parse(g,e,f),this.cs=g;var h=0,i=1;if(c.has("Domain")){var j=c.get("Domain");h=j[0],i=j[1]}var k=!1,l=!1;if(c.has("Extend")){var m=c.get("Extend");k=m[0],l=m[1]}if(!(this.shadingType!==sb.RADIAL||k&&l)){var n=this.coordsArr[0],o=this.coordsArr[1],p=this.coordsArr[2],q=this.coordsArr[3],r=this.coordsArr[4],s=this.coordsArr[5],t=Math.sqrt((n-q)*(n-q)+(o-r)*(o-r));s+t>=p&&p+t>=s&&b("Unsupported radial gradient.")}this.extendStart=k,this.extendEnd=l;var u=c.get("Function"),v=Ta.parseArray(e,u),w=i-h,x=w/10,y=this.colorStops=[];if(h>=i||0>=x)return void a("Bad shading domain.");for(var z,A=new Float32Array(g.numComps),B=new Float32Array(1),C=h;i>=C;C+=x){B[0]=C,v(B,0,A,0),z=g.getRgb(A,0);var D=na.makeCssRgb(z[0],z[1],z[2]);y.push([(C-h)/w,D])}var E="transparent";c.has("Background")&&(z=g.getRgb(c.get("Background"),0),E=na.makeCssRgb(z[0],z[1],z[2])),k||(y.unshift([0,E]),y[1][0]+=ub.SMALL_NUMBER),l||(y[y.length-1][0]-=ub.SMALL_NUMBER,y.push([1,E])),this.colorStops=y}return d.prototype={getIR:function(){var a,b,d,e,f,g=this.coordsArr,h=this.shadingType;h===sb.AXIAL?(b=[g[0],g[1]],d=[g[2],g[3]],e=null,f=null,a="axial"):h===sb.RADIAL?(b=[g[0],g[1]],d=[g[3],g[4]],e=g[2],f=g[5],a="radial"):c("getPattern type unknown: "+h);var i=this.matrix;return i&&(b=na.applyTransform(b,i),d=na.applyTransform(d,i)),["RadialAxial",a,this.colorStops,b,d,e,f]}},d}(),ub.Mesh=function(){function a(a,b){this.stream=a,this.context=b,this.buffer=0,this.bufferLength=0;var c=b.numComps;this.tmpCompsBuf=new Float32Array(c);var d=b.colorSpace.numComps;this.tmpCsCompsBuf=b.colorFn?new Float32Array(d):this.tmpCompsBuf}function b(a,b){for(var c=a.coords,d=a.colors,f=[],g=[],h=0;b.hasData;){var i=b.readFlag(),j=b.readCoordinate(),k=b.readComponents();if(0===h){switch(e(i>=0&&2>=i,"Unknown type4 flag"),i){case 0:h=3;break;case 1:g.push(g[g.length-2],g[g.length-1]),h=1;break;case 2:g.push(g[g.length-3],g[g.length-1]),h=1}f.push(i)}g.push(c.length),c.push(j),d.push(k),h--,b.align()}a.figures.push({type:"triangles",coords:new Int32Array(g),colors:new Int32Array(g)})}function d(a,b,c){for(var d=a.coords,e=a.colors,f=[];b.hasData;){var g=b.readCoordinate(),h=b.readComponents();f.push(d.length),d.push(g),e.push(h)}a.figures.push({type:"lattice",coords:new Int32Array(f),colors:new Int32Array(f),verticesPerRow:c})}function f(a,b){var c=a.figures[b];e("patch"===c.type,"Unexpected patch mesh figure");var d=a.coords,f=a.colors,g=c.coords,h=c.colors,i=Math.min(d[g[0]][0],d[g[3]][0],d[g[12]][0],d[g[15]][0]),j=Math.min(d[g[0]][1],d[g[3]][1],d[g[12]][1],d[g[15]][1]),k=Math.max(d[g[0]][0],d[g[3]][0],d[g[12]][0],d[g[15]][0]),p=Math.max(d[g[0]][1],d[g[3]][1],d[g[12]][1],d[g[15]][1]),q=Math.ceil((k-i)*n/(a.bounds[2]-a.bounds[0]));q=Math.max(l,Math.min(m,q));var r=Math.ceil((p-j)*n/(a.bounds[3]-a.bounds[1]));r=Math.max(l,Math.min(m,r));for(var s=q+1,t=new Int32Array((r+1)*s),u=new Int32Array((r+1)*s),v=0,w=new Uint8Array(3),x=new Uint8Array(3),y=f[h[0]],z=f[h[1]],A=f[h[2]],B=f[h[3]],C=o(r),D=o(q),E=0;r>=E;E++){w[0]=(y[0]*(r-E)+A[0]*E)/r|0,w[1]=(y[1]*(r-E)+A[1]*E)/r|0,w[2]=(y[2]*(r-E)+A[2]*E)/r|0,x[0]=(z[0]*(r-E)+B[0]*E)/r|0,x[1]=(z[1]*(r-E)+B[1]*E)/r|0,x[2]=(z[2]*(r-E)+B[2]*E)/r|0;for(var F=0;q>=F;F++,v++)if(0!==E&&E!==r||0!==F&&F!==q){for(var G=0,H=0,I=0,J=0;3>=J;J++)for(var K=0;3>=K;K++,I++){var L=C[E][J]*D[F][K];G+=d[g[I]][0]*L,H+=d[g[I]][1]*L}t[v]=d.length,d.push([G,H]),u[v]=f.length;var M=new Uint8Array(3);M[0]=(w[0]*(q-F)+x[0]*F)/q|0,M[1]=(w[1]*(q-F)+x[1]*F)/q|0,M[2]=(w[2]*(q-F)+x[2]*F)/q|0,f.push(M)}}t[0]=g[0],u[0]=h[0],t[q]=g[3],u[q]=h[1],t[s*r]=g[12],u[s*r]=h[2],t[s*r+q]=g[15],u[s*r+q]=h[3],a.figures[b]={type:"lattice",coords:t,colors:u,verticesPerRow:s}}function g(a,b){for(var c=a.coords,d=a.colors,f=new Int32Array(16),g=new Int32Array(4);b.hasData;){var h=b.readFlag();e(h>=0&&3>=h,"Unknown type6 flag");var i,j,k=c.length;for(i=0,j=0!==h?8:12;j>i;i++)c.push(b.readCoordinate());var l=d.length;for(i=0,
+j=0!==h?2:4;j>i;i++)d.push(b.readComponents());var m,n,o,p;switch(h){case 0:f[12]=k+3,f[13]=k+4,f[14]=k+5,f[15]=k+6,f[8]=k+2,f[11]=k+7,f[4]=k+1,f[7]=k+8,f[0]=k,f[1]=k+11,f[2]=k+10,f[3]=k+9,g[2]=l+1,g[3]=l+2,g[0]=l,g[1]=l+3;break;case 1:m=f[12],n=f[13],o=f[14],p=f[15],f[12]=p,f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=o,f[11]=k+3,f[4]=n,f[7]=k+4,f[0]=m,f[1]=k+7,f[2]=k+6,f[3]=k+5,m=g[2],n=g[3],g[2]=n,g[3]=l,g[0]=m,g[1]=l+1;break;case 2:m=f[15],n=f[11],f[12]=f[3],f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=f[7],f[11]=k+3,f[4]=n,f[7]=k+4,f[0]=m,f[1]=k+7,f[2]=k+6,f[3]=k+5,m=g[3],g[2]=g[1],g[3]=l,g[0]=m,g[1]=l+1;break;case 3:f[12]=f[0],f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=f[1],f[11]=k+3,f[4]=f[2],f[7]=k+4,f[0]=f[3],f[1]=k+7,f[2]=k+6,f[3]=k+5,g[2]=g[0],g[3]=l,g[0]=g[1],g[1]=l+1}f[5]=c.length,c.push([(-4*c[f[0]][0]-c[f[15]][0]+6*(c[f[4]][0]+c[f[1]][0])-2*(c[f[12]][0]+c[f[3]][0])+3*(c[f[13]][0]+c[f[7]][0]))/9,(-4*c[f[0]][1]-c[f[15]][1]+6*(c[f[4]][1]+c[f[1]][1])-2*(c[f[12]][1]+c[f[3]][1])+3*(c[f[13]][1]+c[f[7]][1]))/9]),f[6]=c.length,c.push([(-4*c[f[3]][0]-c[f[12]][0]+6*(c[f[2]][0]+c[f[7]][0])-2*(c[f[0]][0]+c[f[15]][0])+3*(c[f[4]][0]+c[f[14]][0]))/9,(-4*c[f[3]][1]-c[f[12]][1]+6*(c[f[2]][1]+c[f[7]][1])-2*(c[f[0]][1]+c[f[15]][1])+3*(c[f[4]][1]+c[f[14]][1]))/9]),f[9]=c.length,c.push([(-4*c[f[12]][0]-c[f[3]][0]+6*(c[f[8]][0]+c[f[13]][0])-2*(c[f[0]][0]+c[f[15]][0])+3*(c[f[11]][0]+c[f[1]][0]))/9,(-4*c[f[12]][1]-c[f[3]][1]+6*(c[f[8]][1]+c[f[13]][1])-2*(c[f[0]][1]+c[f[15]][1])+3*(c[f[11]][1]+c[f[1]][1]))/9]),f[10]=c.length,c.push([(-4*c[f[15]][0]-c[f[0]][0]+6*(c[f[11]][0]+c[f[14]][0])-2*(c[f[12]][0]+c[f[3]][0])+3*(c[f[2]][0]+c[f[8]][0]))/9,(-4*c[f[15]][1]-c[f[0]][1]+6*(c[f[11]][1]+c[f[14]][1])-2*(c[f[12]][1]+c[f[3]][1])+3*(c[f[2]][1]+c[f[8]][1]))/9]),a.figures.push({type:"patch",coords:new Int32Array(f),colors:new Int32Array(g)})}}function h(a,b){for(var c=a.coords,d=a.colors,f=new Int32Array(16),g=new Int32Array(4);b.hasData;){var h=b.readFlag();e(h>=0&&3>=h,"Unknown type7 flag");var i,j,k=c.length;for(i=0,j=0!==h?12:16;j>i;i++)c.push(b.readCoordinate());var l=d.length;for(i=0,j=0!==h?2:4;j>i;i++)d.push(b.readComponents());var m,n,o,p;switch(h){case 0:f[12]=k+3,f[13]=k+4,f[14]=k+5,f[15]=k+6,f[8]=k+2,f[9]=k+13,f[10]=k+14,f[11]=k+7,f[4]=k+1,f[5]=k+12,f[6]=k+15,f[7]=k+8,f[0]=k,f[1]=k+11,f[2]=k+10,f[3]=k+9,g[2]=l+1,g[3]=l+2,g[0]=l,g[1]=l+3;break;case 1:m=f[12],n=f[13],o=f[14],p=f[15],f[12]=p,f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=o,f[9]=k+9,f[10]=k+10,f[11]=k+3,f[4]=n,f[5]=k+8,f[6]=k+11,f[7]=k+4,f[0]=m,f[1]=k+7,f[2]=k+6,f[3]=k+5,m=g[2],n=g[3],g[2]=n,g[3]=l,g[0]=m,g[1]=l+1;break;case 2:m=f[15],n=f[11],f[12]=f[3],f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=f[7],f[9]=k+9,f[10]=k+10,f[11]=k+3,f[4]=n,f[5]=k+8,f[6]=k+11,f[7]=k+4,f[0]=m,f[1]=k+7,f[2]=k+6,f[3]=k+5,m=g[3],g[2]=g[1],g[3]=l,g[0]=m,g[1]=l+1;break;case 3:f[12]=f[0],f[13]=k+0,f[14]=k+1,f[15]=k+2,f[8]=f[1],f[9]=k+9,f[10]=k+10,f[11]=k+3,f[4]=f[2],f[5]=k+8,f[6]=k+11,f[7]=k+4,f[0]=f[3],f[1]=k+7,f[2]=k+6,f[3]=k+5,g[2]=g[0],g[3]=l,g[0]=g[1],g[1]=l+1}a.figures.push({type:"patch",coords:new Int32Array(f),colors:new Int32Array(g)})}}function i(a){for(var b=a.coords[0][0],c=a.coords[0][1],d=b,e=c,f=1,g=a.coords.length;g>f;f++){var h=a.coords[f][0],i=a.coords[f][1];b=b>h?h:b,c=c>i?i:c,d=h>d?h:d,e=i>e?i:e}a.bounds=[b,c,d,e]}function j(a){var b,c,d,e,f=a.coords,g=new Float32Array(2*f.length);for(b=0,d=0,c=f.length;c>b;b++){var h=f[b];g[d++]=h[0],g[d++]=h[1]}a.coords=g;var i=a.colors,j=new Uint8Array(3*i.length);for(b=0,d=0,c=i.length;c>b;b++){var k=i[b];j[d++]=k[0],j[d++]=k[1],j[d++]=k[2]}a.colors=j;var l=a.figures;for(b=0,c=l.length;c>b;b++){var m=l[b],n=m.coords,o=m.colors;for(d=0,e=n.length;e>d;d++)n[d]*=2,o[d]*=3}}function k(k,l,m,n){e(D(k),"Mesh data is not a stream");var o=k.dict;this.matrix=l,this.shadingType=o.get("ShadingType"),this.type="Pattern",this.bbox=o.get("BBox");var p=o.get("ColorSpace","CS");p=Xa.parse(p,m,n),this.cs=p,this.background=o.has("Background")?p.getRgb(o.get("Background"),0):null;var q=o.get("Function"),r=q?Ta.parseArray(m,q):null;this.coords=[],this.colors=[],this.figures=[];var s={bitsPerCoordinate:o.get("BitsPerCoordinate"),bitsPerComponent:o.get("BitsPerComponent"),bitsPerFlag:o.get("BitsPerFlag"),decode:o.get("Decode"),colorFn:r,colorSpace:p,numComps:r?1:p.numComps},t=new a(k,s),u=!1;switch(this.shadingType){case sb.FREE_FORM_MESH:b(this,t);break;case sb.LATTICE_FORM_MESH:var v=0|o.get("VerticesPerRow");e(v>=2,"Invalid VerticesPerRow"),d(this,t,v);break;case sb.COONS_PATCH_MESH:g(this,t),u=!0;break;case sb.TENSOR_PATCH_MESH:h(this,t),u=!0;break;default:c("Unsupported mesh type.")}if(u){i(this);for(var w=0,x=this.figures.length;x>w;w++)f(this,w)}i(this),j(this)}a.prototype={get hasData(){if(this.stream.end)return this.stream.pos<this.stream.end;if(this.bufferLength>0)return!0;var a=this.stream.getByte();return 0>a?!1:(this.buffer=a,this.bufferLength=8,!0)},readBits:function(a){var b=this.buffer,c=this.bufferLength;if(32===a){if(0===c)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;b=b<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();var d=this.stream.getByte();return this.buffer=d&(1<<c)-1,(b<<8-c|(255&d)>>c)>>>0}if(8===a&&0===c)return this.stream.getByte();for(;a>c;)b=b<<8|this.stream.getByte(),c+=8;return c-=a,this.bufferLength=c,this.buffer=b&(1<<c)-1,b>>c},align:function(){this.buffer=0,this.bufferLength=0},readFlag:function(){return this.readBits(this.context.bitsPerFlag)},readCoordinate:function(){var a=this.context.bitsPerCoordinate,b=this.readBits(a),c=this.readBits(a),d=this.context.decode,e=32>a?1/((1<<a)-1):2.3283064365386963e-10;return[b*e*(d[1]-d[0])+d[0],c*e*(d[3]-d[2])+d[2]]},readComponents:function(){for(var a=this.context.numComps,b=this.context.bitsPerComponent,c=32>b?1/((1<<b)-1):2.3283064365386963e-10,d=this.context.decode,e=this.tmpCompsBuf,f=0,g=4;a>f;f++,g+=2){var h=this.readBits(b);e[f]=h*c*(d[g+1]-d[g])+d[g]}var i=this.tmpCsCompsBuf;return this.context.colorFn&&this.context.colorFn(e,0,i,0),this.context.colorSpace.getRgb(i,0)}};var l=3,m=20,n=20,o=function(){function a(a){for(var b=[],c=0;a>=c;c++){var d=c/a,e=1-d;b.push(new Float32Array([e*e*e,3*d*e*e,3*d*d*e,d*d*d]))}return b}var b=[];return function(c){return b[c]||(b[c]=a(c)),b[c]}}();return k.prototype={getIR:function(){return["Mesh",this.shadingType,this.coords,this.colors,this.figures,this.bounds,this.matrix,this.bbox,this.background]}},k}(),ub.Dummy=function(){function a(){this.type="Pattern"}return a.prototype={getIR:function(){return["Dummy"]}},a}();var vb=function(){function d(a,b,c,d,e,f,g){this.pdfManager=a,this.xref=b,this.handler=c,this.pageIndex=d,this.uniquePrefix=e,this.idCounters=f,this.fontCache=g}function f(){this.reset()}var g=20,h=100;f.prototype={check:function(){return++this.checked<h?!1:(this.checked=0,this.endTime<=Date.now())},reset:function(){this.endTime=Date.now()+g,this.checked=0}};var i=Promise.resolve(),j=1,k=2;return d.prototype={hasBlendModes:function(a){if(!B(a))return!1;var b=Object.create(null);a.objId&&(b[a.objId]=!0);for(var c=[a];c.length;){var d,e=c.shift(),f=e.get("ExtGState");if(B(f)){f=f.getAll();for(d in f){var g=f[d],h=g.BM;if(z(h)&&"Normal"!==h.name)return!0}}var i=e.get("XObject");if(B(i)){i=i.getAll();for(d in i){var j=i[d];if(D(j)){if(j.dict.objId){if(b[j.dict.objId])continue;b[j.dict.objId]=!0}var k=j.dict.get("Resources");!B(k)||k.objId&&b[k.objId]||(c.push(k),k.objId&&(b[k.objId]=!0))}}}}return!1},buildFormXObject:function(a,b,c,d,e,f){var g=b.dict.getArray("Matrix"),h=b.dict.getArray("BBox"),i=b.dict.get("Group");if(i){var j,k={matrix:g,bbox:h,smask:c,isolated:!1,knockout:!1},l=i.get("S");z(l)&&"Transparency"===l.name&&(k.isolated=i.get("I")||!1,k.knockout=i.get("K")||!1,j=i.has("CS")?Xa.parse(i.get("CS"),this.xref,a):null),c&&c.backdrop&&(j=j||Xa.singletons.rgb,c.backdrop=j.getRgb(c.backdrop,0)),d.addOp($.beginGroup,[k])}return d.addOp($.paintFormXObjectBegin,[g,h]),this.getOperatorList(b,e,b.dict.get("Resources")||a,d,f).then(function(){d.addOp($.paintFormXObjectEnd,[]),i&&d.addOp($.endGroup,[k])})},buildPaintImageXObject:function(a,c,d,e,f,g){var h=this,i=c.dict,j=i.get("Width","W"),k=i.get("Height","H");if(!(j&&x(j)&&k&&x(k)))return void b("Image dimensions are missing, or not numbers.");if(-1!==PDFJS.maxImageSize&&j*k>PDFJS.maxImageSize)return void b("Image exceeded maximum allowed size and was removed.");var l,m,n=i.get("ImageMask","IM")||!1;if(n){var o=i.get("Width","W"),p=i.get("Height","H"),q=o+7>>3,r=c.getBytes(q*p),s=i.get("Decode","D"),t=!!s&&s[0]>0;return l=Bc.createMask(r,o,p,c instanceof Oc,t),l.cached=!0,m=[l],e.addOp($.paintImageMaskXObject,m),void(f&&(g[f]={fn:$.paintImageMaskXObject,args:m}))}var u=i.get("SMask","SM")||!1,v=i.get("Mask")||!1,w=200;if(d&&!u&&!v&&!(c instanceof Sc)&&w>j+k){var y=new Bc(this.xref,a,c,d,null,null);return l=y.createImageData(!0),void e.addOp($.paintInlineImageXObject,[l])}var z=this.uniquePrefix||"",A="img_"+z+ ++this.idCounters.obj;return e.addDependency(A),m=[A,j,k],!u&&!v&&c instanceof Sc&&c.isNativelySupported(this.xref,a)?(e.addOp($.paintJpegXObject,m),void this.handler.send("obj",[A,this.pageIndex,"JpegStream",c.getIR()])):(Bc.buildImage(h.handler,h.xref,a,c,d).then(function(a){var b=a.createImageData(!1);h.handler.send("obj",[A,h.pageIndex,"Image",b],[b.data.buffer])}).then(void 0,function(a){b("Unable to decode image: "+a),h.handler.send("obj",[A,h.pageIndex,"Image",null])}),e.addOp($.paintImageXObject,m),void(f&&(g[f]={fn:$.paintImageXObject,args:m})))},handleSMask:function(a,b,c,d,e){var f=a.get("G"),g={subtype:a.get("S").name,backdrop:a.get("BC")};return this.buildFormXObject(b,f,g,c,d,e.state.clone())},handleTilingType:function(a,b,c,d,e,f,g){var h=new xb,i=[e.get("Resources"),c],j=Aa.merge(this.xref,i);return this.getOperatorList(d,g,j,h).then(function(){f.addDependencies(h.dependencies),f.addOp(a,J({fnArray:h.fnArray,argsArray:h.argsArray},e,b))})},handleSetFont:function(a,b,c,d,e,f){var g;b&&(b=b.slice(),g=b[0].name);var h=this;return this.loadFont(g,c,this.xref,a).then(function(b){return b.font.isType3Font?b.loadType3Data(h,a,d,e).then(function(){return b}):b}).then(function(a){return f.font=a.font,a.send(h.handler),a.loadedName})},handleText:function(a,b){var c=b.font,d=c.charsToGlyphs(a),e=!!(b.textRenderingMode&U.ADD_TO_PATH_FLAG);if(c.data&&(e||PDFJS.disableFontFace))for(var f=function(a){if(!c.renderer.hasBuiltPath(a)){var b=c.renderer.getPathJs(a);this.handler.send("commonobj",[c.loadedName+"_path_"+a,"FontPath",b])}}.bind(this),g=0,h=d.length;h>g;g++){var i=d[g];if(null!==i){f(i.fontChar);var j=i.accent;j&&j.fontChar&&f(j.fontChar)}}return d},setGState:function(c,d,e,f,g,h){var i=[],j=d.map,k=this,l=Promise.resolve();for(var m in j){var n=j[m];switch(m){case"Type":break;case"LW":case"LC":case"LJ":case"ML":case"D":case"RI":case"FL":case"CA":case"ca":i.push([m,n]);break;case"Font":l=l.then(function(){return k.handleSetFont(c,null,n[0],e,f,h.state).then(function(a){e.addDependency(a),i.push([m,[a,n[1]]])})});break;case"BM":i.push([m,n]);break;case"SMask":if(z(n)&&"None"===n.name){i.push([m,!1]);break}var o=g.fetchIfRef(n);B(o)?(l=l.then(function(){return k.handleSMask(o,c,e,f,h)}),i.push([m,!0])):b("Unsupported SMask type");break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":a("graphic state operator "+m);break;default:a("Unknown graphic state operator "+m)}}return l.then(function(){i.length>=0&&e.addOp($.setGState,[i])})},loadFont:function(a,c,d,f){function g(){return Promise.resolve(new wb("g_font_error",new ec("Font "+a+" is not available"),c))}var h;if(c)e(F(c)),h=c;else{var i=f.get("Font");if(!i)return b("fontRes not available"),g();h=i.getRaw(a)}if(!h)return b("fontRef not available"),g();if(this.fontCache.has(h))return this.fontCache.get(h);if(c=d.fetchIfRef(h),!B(c))return g();if(c.translated)return c.translated;var j=G(),k=this.preEvaluateFont(c,d),l=k.descriptor,m=h.num+"_"+h.gen;if(B(l)){l.fontAliases||(l.fontAliases=Object.create(null));var n=l.fontAliases,o=k.hash;if(n[o]){var p=n[o].aliasRef;if(p&&this.fontCache.has(p))return this.fontCache.putAlias(h,p),this.fontCache.get(h)}n[o]||(n[o]={fontID:dc.getFontID()}),n[o].aliasRef=h,m=n[o].fontID}var q=B(h);q||this.fontCache.put(h,j.promise),c.loadedName="g_font_"+(q?a.replace(/\W/g,""):m),c.translated=j.promise;var r;try{r=Promise.resolve(this.translateFont(k,d))}catch(s){r=Promise.reject(s)}return r.then(function(a){if(void 0!==a.fontType){var b=d.stats.fontTypes;b[a.fontType]=!0}j.resolve(new wb(c.loadedName,a,c))},function(a){aa.notify(_.font);try{var b=k.descriptor,e=b&&b.get("FontFile3"),f=e&&e.get("Subtype"),g=P(k.type,f&&f.name),h=d.stats.fontTypes;h[g]=!0}catch(i){}j.resolve(new wb(c.loadedName,new ec(a instanceof Error?a.message:a),c))}),j.promise},buildPath:function(a,b,c){var d=a.length-1;if(c||(c=[]),0>d||a.fnArray[d]!==$.constructPath)a.addOp($.constructPath,[[b],c]);else{var e=a.argsArray[d];e[0].push(b),Array.prototype.push.apply(e[1],c)}},handleColorN:function(a,b,c,d,e,f,g,h){var i,l=c[c.length-1];if(z(l)&&(i=e.get(l.name))){var m=D(i)?i.dict:i,n=m.get("PatternType");if(n===j){var o=d.base?d.base.getRgb(c,0):null;return this.handleTilingType(b,o,f,i,m,a,g)}if(n===k){var p=m.get("Shading"),q=m.get("Matrix");return i=tb.parseShading(p,q,h,f),a.addOp(b,i.getIR()),Promise.resolve()}return Promise.reject("Unknown PatternType: "+n)}return a.addOp(b,c),Promise.resolve()},getOperatorList:function(d,g,h,j,k){var l=this,m=this.xref,n={};e(j),h=h||Aa.empty;var o=h.get("XObject")||Aa.empty,p=h.get("Pattern")||Aa.empty,q=new yb(k||new Ab),r=new Bb(d,m,q),s=new f;return new Promise(function t(d,f){g.ensureNotTerminated(),s.reset();for(var k,u,v,w,A={};!(k=s.check())&&(A.args=null,r.read(A));){var C=A.args,E=A.fn;switch(0|E){case $.paintXObject:if(C[0].code)break;var F=C[0].name;if(!F){b("XObject must be referred to by name.");continue}if(void 0!==n[F]){j.addOp(n[F].fn,n[F].args),C=null;continue}var G=o.get(F);if(G){e(D(G),"XObject should be a stream");var H=G.dict.get("Subtype");if(e(z(H),"XObject should have a Name subtype"),"Form"===H.name)return q.save(),l.buildFormXObject(h,G,null,j,g,q.state.clone()).then(function(){q.restore(),t(d,f)},f);if("Image"===H.name){l.buildPaintImageXObject(h,G,!1,j,F,n),C=null;continue}if("PS"===H.name){a("Ignored XObject subtype PS");continue}c("Unhandled XObject subtype "+H.name)}break;case $.setFont:var I=C[1];return l.handleSetFont(h,C,null,j,g,q.state).then(function(a){j.addDependency(a),j.addOp($.setFont,[a,I]),t(d,f)},f);case $.endInlineImage:var J=C[0].cacheKey;if(J){var K=n[J];if(void 0!==K){j.addOp(K.fn,K.args),C=null;continue}}l.buildPaintImageXObject(h,C[0],!0,j,J,n),C=null;continue;case $.showText:C[0]=l.handleText(C[0],q.state);break;case $.showSpacedText:var L=C[0],M=[],N=L.length,O=q.state;for(u=0;N>u;++u){var P=L[u];y(P)?Array.prototype.push.apply(M,l.handleText(P,O)):x(P)&&M.push(P)}C[0]=M,E=$.showText;break;case $.nextLineShowText:j.addOp($.nextLine),C[0]=l.handleText(C[0],q.state),E=$.showText;break;case $.nextLineSetSpacingShowText:j.addOp($.nextLine),j.addOp($.setWordSpacing,[C.shift()]),j.addOp($.setCharSpacing,[C.shift()]),C[0]=l.handleText(C[0],q.state),E=$.showText;break;case $.setTextRenderingMode:q.state.textRenderingMode=C[0];break;case $.setFillColorSpace:q.state.fillColorSpace=Xa.parse(C[0],m,h);continue;case $.setStrokeColorSpace:q.state.strokeColorSpace=Xa.parse(C[0],m,h);continue;case $.setFillColor:w=q.state.fillColorSpace,C=w.getRgb(C,0),E=$.setFillRGBColor;break;case $.setStrokeColor:w=q.state.strokeColorSpace,C=w.getRgb(C,0),E=$.setStrokeRGBColor;break;case $.setFillGray:q.state.fillColorSpace=Xa.singletons.gray,C=Xa.singletons.gray.getRgb(C,0),E=$.setFillRGBColor;break;case $.setStrokeGray:q.state.strokeColorSpace=Xa.singletons.gray,C=Xa.singletons.gray.getRgb(C,0),E=$.setStrokeRGBColor;break;case $.setFillCMYKColor:q.state.fillColorSpace=Xa.singletons.cmyk,C=Xa.singletons.cmyk.getRgb(C,0),E=$.setFillRGBColor;break;case $.setStrokeCMYKColor:q.state.strokeColorSpace=Xa.singletons.cmyk,C=Xa.singletons.cmyk.getRgb(C,0),E=$.setStrokeRGBColor;break;case $.setFillRGBColor:q.state.fillColorSpace=Xa.singletons.rgb,C=Xa.singletons.rgb.getRgb(C,0);break;case $.setStrokeRGBColor:q.state.strokeColorSpace=Xa.singletons.rgb,C=Xa.singletons.rgb.getRgb(C,0);break;case $.setFillColorN:if(w=q.state.fillColorSpace,"Pattern"===w.name)return l.handleColorN(j,$.setFillColorN,C,w,p,h,g,m).then(function(){t(d,f)},f);C=w.getRgb(C,0),E=$.setFillRGBColor;break;case $.setStrokeColorN:if(w=q.state.strokeColorSpace,"Pattern"===w.name)return l.handleColorN(j,$.setStrokeColorN,C,w,p,h,g,m).then(function(){t(d,f)},f);C=w.getRgb(C,0),E=$.setStrokeRGBColor;break;case $.shadingFill:var Q=h.get("Shading");Q||c("No shading resource found");var R=Q.get(C[0].name);R||c("No shading object found");var S=tb.parseShading(R,null,m,h),T=S.getIR();C=[T],E=$.shadingFill;break;case $.setGState:var U=C[0],V=h.get("ExtGState");if(!B(V)||!V.has(U.name))break;var W=V.get(U.name);return l.setGState(h,W,j,g,m,q).then(function(){t(d,f)},f);case $.moveTo:case $.lineTo:case $.curveTo:case $.curveTo2:case $.curveTo3:case $.closePath:l.buildPath(j,E,C);continue;case $.rectangle:l.buildPath(j,E,C);continue;case $.markPoint:case $.markPointProps:case $.beginMarkedContent:case $.beginMarkedContentProps:case $.endMarkedContent:case $.beginCompat:case $.endCompat:continue}j.addOp(E,C)}if(k)return void i.then(function(){t(d,f)},f);for(u=0,v=r.savedStatesDepth;v>u;u++)j.addOp($.restore,[]);d()})},getTextContent:function(a,b,c,d){function g(){var a=r.font;return a.loadedName in l.styles||(l.styles[a.loadedName]={fontFamily:a.fallbackName,ascent:a.ascent,descent:a.descent,vertical:a.vertical}),{str:[],dir:null,width:0,height:0,transform:null,fontName:a.loadedName}}function h(a){var b=a.str.join(""),c=PDFJS.bidi(b,-1,r.font.vertical);return a.str=c.str,a.dir=c.dir,a}function j(a,b){return p.loadFont(a,b,q,c).then(function(a){r.font=a.font,r.fontMatrix=a.font.fontMatrix||T})}function k(a,b){var c=r.font;if(b=b||g(),!b.transform){var d=[r.fontSize*r.textHScale,0,0,r.fontSize,0,r.textRise];if(c.isType3Font&&r.fontMatrix!==T&&1===r.fontSize){var e=c.bbox[3]-c.bbox[1];e>0&&(e*=r.fontMatrix[3],d[3]*=e)}var f=b.transform=na.transform(r.ctm,na.transform(r.textMatrix,d));c.vertical?b.width=Math.sqrt(f[0]*f[0]+f[1]*f[1]):b.height=Math.sqrt(f[2]*f[2]+f[3]*f[3])}for(var h=0,i=0,j=c.charsToGlyphs(a),k=c.defaultVMetrics,l=0;l<j.length;l++){var m=j[l];if(m){var n=null,o=null,p=null;c.vertical?m.vmetric?(p=m.vmetric[0],n=m.vmetric[1],o=m.vmetric[2]):(p=m.width,n=.5*m.width,o=k[2]):p=m.width;var q=m.unicode;void 0!==Zb[q]&&(q=Zb[q]),q=N(q);var s=0;b.str.length>0&&(s=r.charSpacing);var t=0,u=0;if(c.vertical){var v=p*r.fontMatrix[0];u=v*r.fontSize+s,i+=u}else{var w=p*r.fontMatrix[0];t=(w*r.fontSize+s)*r.textHScale,h+=t}r.translateTextMatrix(t,u),b.str.push(q)}else h+=r.wordSpacing*r.textHScale}var x=r.textLineMatrix[0],y=r.textLineMatrix[1],z=Math.sqrt(x*x+y*y);x=r.ctm[0],y=r.ctm[1];var A=Math.sqrt(x*x+y*y);return c.vertical?b.height+=Math.abs(i*A*z):b.width+=h*A*z,b}d=d||new yb(new zb);var l={items:[],styles:Object.create(null)},m=l.items,n=.3,o=1.5,p=this,q=this.xref;c=q.fetchIfRef(c)||Aa.empty;var r,s=null,t={},u=new Bb(a,q,d),v=new f;return new Promise(function w(a,f){b.ensureNotTerminated(),v.reset();for(var q,x={},y=[];!(q=v.check())&&(y.length=0,x.args=y,u.read(x));){r=d.state;var A=x.fn;switch(y=x.args,0|A){case $.setFont:return r.fontSize=y[1],j(y[0].name).then(function(){w(a,f)},f);case $.setTextRise:r.textRise=y[0];break;case $.setHScale:r.textHScale=y[0]/100;break;case $.setLeading:r.leading=y[0];break;case $.moveText:r.translateTextLineMatrix(y[0],y[1]),r.textMatrix=r.textLineMatrix.slice();break;case $.setLeadingMoveText:r.leading=-y[1],r.translateTextLineMatrix(y[0],y[1]),r.textMatrix=r.textLineMatrix.slice();break;case $.nextLine:r.carriageReturn();break;case $.setTextMatrix:r.setTextMatrix(y[0],y[1],y[2],y[3],y[4],y[5]),r.setTextLineMatrix(y[0],y[1],y[2],y[3],y[4],y[5]);break;case $.setCharSpacing:r.charSpacing=y[0];break;case $.setWordSpacing:r.wordSpacing=y[0];break;case $.beginText:r.textMatrix=ma.slice(),r.textLineMatrix=ma.slice();break;case $.showSpacedText:for(var E,F=y[0],G=g(),H=0,I=F.length;I>H;H++)if("string"==typeof F[H])k(F[H],G);else{var J=F[H]*r.fontSize/1e3;if(r.font.vertical?(E=J*r.textMatrix[3],r.translateTextMatrix(0,E),G.height+=E):(E=J*r.textHScale*r.textMatrix[0],r.translateTextMatrix(E,0),G.width-=E),F[H]<0&&r.font.spaceWidth>0){var K=-F[H]/r.font.spaceWidth;if(K>o)for(K=Math.round(K);K--;)G.str.push(" ");else K>n&&G.str.push(" ")}}m.push(h(G));break;case $.showText:m.push(h(k(y[0])));break;case $.nextLineShowText:r.carriageReturn(),m.push(h(k(y[0])));break;case $.nextLineSetSpacingShowText:r.wordSpacing=y[0],r.charSpacing=y[1],r.carriageReturn(),m.push(h(k(y[2])));break;case $.paintXObject:if(y[0].code)break;s||(s=c.get("XObject")||Aa.empty);var L=y[0].name;if(t.key===L){t.texts&&(na.appendToArray(m,t.texts.items),na.extendObj(l.styles,t.texts.styles));break}var M=s.get(L);if(!M)break;e(D(M),"XObject should be a stream");var N=M.dict.get("Subtype");if(e(z(N),"XObject should have a Name subtype"),"Form"!==N.name){t.key=L,t.texts=null;break}d.save();var O=M.dict.get("Matrix");return C(O)&&6===O.length&&d.transform(O),p.getTextContent(M,b,M.dict.get("Resources")||c,d).then(function(b){na.appendToArray(m,b.items),na.extendObj(l.styles,b.styles),d.restore(),t.key=L,t.texts=b,w(a,f)},f);case $.setGState:var P=y[0],Q=c.get("ExtGState");if(!B(Q)||!Q.has(P.name))break;var R=Q.get(P.name),S=null;for(var T in R)"Font"===T&&(e(!S),S=R[T]);if(S)return r.fontSize=S[1],j(S[0]).then(function(){w(a,f)},f)}}return q?void i.then(function(){w(a,f)},f):void a(l)})},extractDataStructures:function(a,b,d,e){var f=a.get("ToUnicode")||b.get("ToUnicode");if(f&&(e.toUnicode=this.readToUnicode(f)),e.composite){var g=a.get("CIDSystemInfo");B(g)&&(e.cidSystemInfo={registry:g.get("Registry"),ordering:g.get("Ordering"),supplement:g.get("Supplement")});var h=a.get("CIDToGIDMap");D(h)&&(e.cidToGidMap=this.readCidToGidMap(h))}var i,j=[],k=null;if(a.has("Encoding")){if(i=a.get("Encoding"),B(i)){if(k=i.get("BaseEncoding"),k=z(k)?k.name:null,i.has("Differences"))for(var l=i.get("Differences"),m=0,n=0,o=l.length;o>n;n++){var p=l[n];if(x(p))m=p;else if(z(p))j[m++]=p.name;else{if(F(p)){l[n--]=d.fetch(p);continue}c("Invalid entry in 'Differences' array: "+p)}}}else z(i)?k=i.name:c("Encoding is not a Name nor a Dict");"MacRomanEncoding"!==k&&"MacExpertEncoding"!==k&&"WinAnsiEncoding"!==k&&(k=null)}k?e.defaultEncoding=Pb[k].slice():(i="TrueType"===e.type?Pb.WinAnsiEncoding:Pb.StandardEncoding,e.flags&Ob.Symbolic&&(i=Pb.MacRomanEncoding,e.file||(/Symbol/i.test(e.name)?i=Pb.SymbolSetEncoding:/Dingbats/i.test(e.name)&&(i=Pb.ZapfDingbatsEncoding))),e.defaultEncoding=i),e.differences=j,e.baseEncodingName=k,e.dict=a},readToUnicode:function(a){var b,c=a;if(z(c))return b=Hb.create(c,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null),b instanceof Fb?new ac(0,65535):new _b(b.getMap());if(D(c)){if(b=Hb.create(c,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null),b instanceof Fb)return new ac(0,65535);var d=new Array(b.length);return b.forEach(function(a,b){for(var c=[],e=0;e<b.length;e+=2){var f=b.charCodeAt(e)<<8|b.charCodeAt(e+1);if(55296===(63488&f)){e+=2;var g=b.charCodeAt(e)<<8|b.charCodeAt(e+1);c.push(((1023&f)<<10)+(1023&g)+65536)}else c.push(f)}d[a]=String.fromCharCode.apply(String,c)}),new _b(d)}return null},readCidToGidMap:function(a){for(var b=a.getBytes(),c=[],d=0,e=b.length;e>d;d++){var f=b[d++]<<8|b[d];if(0!==f){var g=d>>1;c[g]=f}}return c},extractWidths:function(a,b,c,d){var e,f,g,h,i,j,k,l,m=[],n=0,o=[];if(d.composite){if(n=a.get("DW")||1e3,l=a.get("W"))for(f=0,g=l.length;g>f;f++)if(j=l[f++],k=b.fetchIfRef(l[f]),C(k))for(h=0,i=k.length;i>h;h++)m[j++]=k[h];else{var p=l[++f];for(h=j;k>=h;h++)m[h]=p}if(d.vertical){var q=a.get("DW2")||[880,-1e3];if(e=[q[1],.5*n,q[0]],q=a.get("W2"))for(f=0,g=q.length;g>f;f++)if(j=q[f++],k=b.fetchIfRef(q[f]),C(k))for(h=0,i=k.length;i>h;h++)o[j++]=[k[h++],k[h++],k[h]];else{var r=[q[++f],q[++f],q[++f]];for(h=j;k>=h;h++)o[h]=r}}}else{var s=d.firstChar;if(l=a.get("Widths")){for(h=s,f=0,g=l.length;g>f;f++)m[h++]=l[f];n=parseFloat(c.get("MissingWidth"))||0}else{var t=a.get("BaseFont");if(z(t)){var u=this.getBaseFontMetrics(t.name);m=this.buildCharCodeToWidth(u.widths,d),n=u.defaultWidth}}}var v=!0,w=n;for(var x in m){var y=m[x];if(y)if(w){if(w!==y){v=!1;break}}else w=y}v&&(d.flags|=Ob.FixedPitch),d.defaultWidth=n,d.widths=m,d.defaultVMetrics=e,d.vmetrics=o},isSerifFont:function(a){var b=a.split("-")[0];return b in Sb||-1!==b.search(/serif/gi)},getBaseFontMetrics:function(a){var b=0,c=[],d=!1,e=Qb[a]||a;e in Cc||(e=this.isSerifFont(a)?"Times-Roman":"Helvetica");var f=Cc[e];return x(f)?(b=f,d=!0):c=f,{defaultWidth:b,monospace:d,widths:c}},buildCharCodeToWidth:function(a,b){for(var c=Object.create(null),d=b.differences,e=b.defaultEncoding,f=0;256>f;f++)f in d&&a[d[f]]?c[f]=a[d[f]]:f in e&&a[e[f]]&&(c[f]=a[e[f]]);return c},preEvaluateFont:function(a,b){var d=a,f=a.get("Subtype");e(z(f),"invalid font Subtype");var g,h=!1;if("Type0"===f.name){var i=a.get("DescendantFonts");i||c("Descendant fonts are not specified"),a=C(i)?b.fetchIfRef(i[0]):i,f=a.get("Subtype"),e(z(f),"invalid font Subtype"),h=!0}var j=a.get("FontDescriptor");if(j){var k=new jd,l=d.getRaw("Encoding");if(z(l))k.update(l.name);else if(F(l))k.update(l.num+"_"+l.gen);else if(B(l))for(var m=l.getKeys(),n=0,o=m.length;o>n;n++){var p=l.getRaw(m[n]);z(p)?k.update(p.name):F(p)?k.update(p.num+"_"+p.gen):C(p)&&k.update(p.length.toString())}var q=a.get("ToUnicode")||d.get("ToUnicode");if(D(q)){var r=q.str||q;g=r.buffer?new Uint8Array(r.buffer.buffer,0,r.bufferLength):new Uint8Array(r.bytes.buffer,r.start,r.end-r.start),k.update(g)}else z(q)&&k.update(q.name);var s=a.get("Widths")||d.get("Widths");s&&(g=new Uint8Array(new Uint32Array(s).buffer),k.update(g))}return{descriptor:j,dict:a,baseDict:d,composite:h,type:f.name,hash:k?k.hexdigest():""}},translateFont:function(b,d){var f,g=b.baseDict,h=b.dict,i=b.composite,j=b.descriptor,k=b.type,l=i?65535:255;if(!j){if("Type3"!==k){var m=h.get("BaseFont");z(m)||c("Base font is not specified"),m=m.name.replace(/[,_]/g,"-");var n=this.getBaseFontMetrics(m),o=m.split("-")[0],p=(this.isSerifFont(o)?Ob.Serif:0)|(n.monospace?Ob.FixedPitch:0)|(Tb[o]?Ob.Symbolic:Ob.Nonsymbolic);return f={type:k,name:m,widths:n.widths,defaultWidth:n.defaultWidth,flags:p,firstChar:0,lastChar:l},this.extractDataStructures(h,h,d,f),f.widths=this.buildCharCodeToWidth(n.widths,f),new dc(m,null,f)}j=new Aa(null),j.set("FontName",ya.get(k)),j.set("FontBBox",h.get("FontBBox"))}var q=h.get("FirstChar")||0,r=h.get("LastChar")||l,s=j.get("FontName"),t=h.get("BaseFont");if(y(s)&&(s=ya.get(s)),y(t)&&(t=ya.get(t)),"Type3"!==k){var u=s&&s.name,v=t&&t.name;u!==v&&(a("The FontDescriptor's FontName is \""+u+'" but should be the same as the Font\'s BaseFont "'+v+'"'),u&&v&&0===v.indexOf(u)&&(s=t))}s=s||t,e(z(s),"invalid font name");var w=j.get("FontFile","FontFile2","FontFile3");if(w&&w.dict){var x=w.dict.get("Subtype");x&&(x=x.name);var A=w.dict.get("Length1"),B=w.dict.get("Length2")}if(f={type:k,name:s.name,subtype:x,file:w,length1:A,length2:B,loadedName:g.loadedName,composite:i,wideChars:i,fixedPitch:!1,fontMatrix:h.get("FontMatrix")||T,firstChar:q||0,lastChar:r||l,bbox:j.get("FontBBox"),ascent:j.get("Ascent"),descent:j.get("Descent"),xHeight:j.get("XHeight"),capHeight:j.get("CapHeight"),flags:j.get("Flags"),italicAngle:j.get("ItalicAngle"),coded:!1},i){var C=g.get("Encoding");z(C)&&(f.cidEncoding=C.name),f.cMap=Hb.create(C,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null),f.vertical=f.cMap.vertical}return this.extractDataStructures(h,g,d,f),this.extractWidths(h,d,j,f),"Type3"===k&&(f.isType3Font=!0),new dc(s.name,w,f)}},d}(),wb=function(){function a(a,b,c){this.loadedName=a,this.font=b,this.dict=c,this.type3Loaded=null,this.sent=!1}return a.prototype={send:function(a){if(!this.sent){var b=this.font.exportData();a.send("commonobj",[this.loadedName,"Font",b]),this.sent=!0}},loadType3Data:function(a,c,d,f){if(e(this.font.isType3Font),this.type3Loaded)return this.type3Loaded;for(var g=this.font,h=Promise.resolve(),i=this.dict.get("CharProcs").getAll(),j=this.dict.get("Resources")||c,k=Object.keys(i),l={},m=0,n=k.length;n>m;++m)h=h.then(function(c){var e=i[c],g=new xb;return a.getOperatorList(e,f,j,g).then(function(){l[c]=g.getIR(),d.addDependencies(g.dependencies)},function(a){b('Type3 font resource "'+c+'" is not available');var d=new xb;l[c]=d.getIR()})}.bind(this,k[m]));return this.type3Loaded=h.then(function(){g.charProcOperatorList=l}),this.type3Loaded}},a}(),xb=function(){function a(a){for(var b=[],c=a.fnArray,d=a.argsArray,e=0,f=a.length;f>e;e++)switch(c[e]){case $.paintInlineImageXObject:case $.paintInlineImageXObjectGroup:case $.paintImageMaskXObject:var g=d[e][0];g.cached||b.push(g.data.buffer)}return b}function b(a,b,c){this.messageHandler=b,this.fnArray=[],this.argsArray=[],this.dependencies={},this.pageIndex=c,this.intent=a}var c=1e3,d=c-5;return b.prototype={get length(){return this.argsArray.length},addOp:function(a,b){this.fnArray.push(a),this.argsArray.push(b),this.messageHandler&&(this.fnArray.length>=c?this.flush():this.fnArray.length>=d&&(a===$.restore||a===$.endText)&&this.flush())},addDependency:function(a){a in this.dependencies||(this.dependencies[a]=!0,this.addOp($.dependency,[a]))},addDependencies:function(a){for(var b in a)this.addDependency(b)},addOpList:function(a){na.extendObj(this.dependencies,a.dependencies);for(var b=0,c=a.length;c>b;b++)this.addOp(a.fnArray[b],a.argsArray[b])},getIR:function(){return{fnArray:this.fnArray,argsArray:this.argsArray,length:this.length}},flush:function(b){"oplist"!==this.intent&&(new Cb).optimize(this);var c=a(this);this.messageHandler.send("RenderPageChunk",{operatorList:{fnArray:this.fnArray,argsArray:this.argsArray,lastChunk:b,length:this.length},pageIndex:this.pageIndex,intent:this.intent},c),this.dependencies={},this.fnArray.length=0,this.argsArray.length=0}},b}(),yb=function(){function a(a){this.state=a,this.stateStack=[]}return a.prototype={save:function(){var a=this.state;this.stateStack.push(this.state),this.state=a.clone()},restore:function(){var a=this.stateStack.pop();a&&(this.state=a)},transform:function(a){this.state.ctm=na.transform(this.state.ctm,a)}},a}(),zb=function(){function a(){this.ctm=new Float32Array(ma),this.fontSize=0,this.font=null,this.fontMatrix=T,this.textMatrix=ma.slice(),this.textLineMatrix=ma.slice(),this.charSpacing=0,this.wordSpacing=0,this.leading=0,this.textHScale=1,this.textRise=0}return a.prototype={setTextMatrix:function(a,b,c,d,e,f){var g=this.textMatrix;g[0]=a,g[1]=b,g[2]=c,g[3]=d,g[4]=e,g[5]=f},setTextLineMatrix:function(a,b,c,d,e,f){var g=this.textLineMatrix;g[0]=a,g[1]=b,g[2]=c,g[3]=d,g[4]=e,g[5]=f},translateTextMatrix:function(a,b){var c=this.textMatrix;c[4]=c[0]*a+c[2]*b+c[4],c[5]=c[1]*a+c[3]*b+c[5]},translateTextLineMatrix:function(a,b){var c=this.textLineMatrix;c[4]=c[0]*a+c[2]*b+c[4],c[5]=c[1]*a+c[3]*b+c[5]},calcRenderMatrix:function(a){var b=[this.fontSize*this.textHScale,0,0,this.fontSize,0,this.textRise];return na.transform(a,na.transform(this.textMatrix,b))},carriageReturn:function(){this.translateTextLineMatrix(0,-this.leading),this.textMatrix=this.textLineMatrix.slice()},clone:function(){var a=Object.create(this);return a.textMatrix=this.textMatrix.slice(),a.textLineMatrix=this.textLineMatrix.slice(),a.fontMatrix=this.fontMatrix.slice(),a}},a}(),Ab=function(){function a(){this.ctm=new Float32Array(ma),this.font=null,this.textRenderingMode=U.FILL,this.fillColorSpace=Xa.singletons.gray,this.strokeColorSpace=Xa.singletons.gray}return a.prototype={clone:function(){return Object.create(this)}},a}(),Bb=function(){function c(a,b,c){this.parser=new Fc(new Gc(a,d),!1,b),
+this.stateManager=c,this.nonProcessedArgs=[]}var d={w:{id:$.setLineWidth,numArgs:1,variableArgs:!1},J:{id:$.setLineCap,numArgs:1,variableArgs:!1},j:{id:$.setLineJoin,numArgs:1,variableArgs:!1},M:{id:$.setMiterLimit,numArgs:1,variableArgs:!1},d:{id:$.setDash,numArgs:2,variableArgs:!1},ri:{id:$.setRenderingIntent,numArgs:1,variableArgs:!1},i:{id:$.setFlatness,numArgs:1,variableArgs:!1},gs:{id:$.setGState,numArgs:1,variableArgs:!1},q:{id:$.save,numArgs:0,variableArgs:!1},Q:{id:$.restore,numArgs:0,variableArgs:!1},cm:{id:$.transform,numArgs:6,variableArgs:!1},m:{id:$.moveTo,numArgs:2,variableArgs:!1},l:{id:$.lineTo,numArgs:2,variableArgs:!1},c:{id:$.curveTo,numArgs:6,variableArgs:!1},v:{id:$.curveTo2,numArgs:4,variableArgs:!1},y:{id:$.curveTo3,numArgs:4,variableArgs:!1},h:{id:$.closePath,numArgs:0,variableArgs:!1},re:{id:$.rectangle,numArgs:4,variableArgs:!1},S:{id:$.stroke,numArgs:0,variableArgs:!1},s:{id:$.closeStroke,numArgs:0,variableArgs:!1},f:{id:$.fill,numArgs:0,variableArgs:!1},F:{id:$.fill,numArgs:0,variableArgs:!1},"f*":{id:$.eoFill,numArgs:0,variableArgs:!1},B:{id:$.fillStroke,numArgs:0,variableArgs:!1},"B*":{id:$.eoFillStroke,numArgs:0,variableArgs:!1},b:{id:$.closeFillStroke,numArgs:0,variableArgs:!1},"b*":{id:$.closeEOFillStroke,numArgs:0,variableArgs:!1},n:{id:$.endPath,numArgs:0,variableArgs:!1},W:{id:$.clip,numArgs:0,variableArgs:!1},"W*":{id:$.eoClip,numArgs:0,variableArgs:!1},BT:{id:$.beginText,numArgs:0,variableArgs:!1},ET:{id:$.endText,numArgs:0,variableArgs:!1},Tc:{id:$.setCharSpacing,numArgs:1,variableArgs:!1},Tw:{id:$.setWordSpacing,numArgs:1,variableArgs:!1},Tz:{id:$.setHScale,numArgs:1,variableArgs:!1},TL:{id:$.setLeading,numArgs:1,variableArgs:!1},Tf:{id:$.setFont,numArgs:2,variableArgs:!1},Tr:{id:$.setTextRenderingMode,numArgs:1,variableArgs:!1},Ts:{id:$.setTextRise,numArgs:1,variableArgs:!1},Td:{id:$.moveText,numArgs:2,variableArgs:!1},TD:{id:$.setLeadingMoveText,numArgs:2,variableArgs:!1},Tm:{id:$.setTextMatrix,numArgs:6,variableArgs:!1},"T*":{id:$.nextLine,numArgs:0,variableArgs:!1},Tj:{id:$.showText,numArgs:1,variableArgs:!1},TJ:{id:$.showSpacedText,numArgs:1,variableArgs:!1},"'":{id:$.nextLineShowText,numArgs:1,variableArgs:!1},'"':{id:$.nextLineSetSpacingShowText,numArgs:3,variableArgs:!1},d0:{id:$.setCharWidth,numArgs:2,variableArgs:!1},d1:{id:$.setCharWidthAndBounds,numArgs:6,variableArgs:!1},CS:{id:$.setStrokeColorSpace,numArgs:1,variableArgs:!1},cs:{id:$.setFillColorSpace,numArgs:1,variableArgs:!1},SC:{id:$.setStrokeColor,numArgs:4,variableArgs:!0},SCN:{id:$.setStrokeColorN,numArgs:33,variableArgs:!0},sc:{id:$.setFillColor,numArgs:4,variableArgs:!0},scn:{id:$.setFillColorN,numArgs:33,variableArgs:!0},G:{id:$.setStrokeGray,numArgs:1,variableArgs:!1},g:{id:$.setFillGray,numArgs:1,variableArgs:!1},RG:{id:$.setStrokeRGBColor,numArgs:3,variableArgs:!1},rg:{id:$.setFillRGBColor,numArgs:3,variableArgs:!1},K:{id:$.setStrokeCMYKColor,numArgs:4,variableArgs:!1},k:{id:$.setFillCMYKColor,numArgs:4,variableArgs:!1},sh:{id:$.shadingFill,numArgs:1,variableArgs:!1},BI:{id:$.beginInlineImage,numArgs:0,variableArgs:!1},ID:{id:$.beginImageData,numArgs:0,variableArgs:!1},EI:{id:$.endInlineImage,numArgs:1,variableArgs:!1},Do:{id:$.paintXObject,numArgs:1,variableArgs:!1},MP:{id:$.markPoint,numArgs:1,variableArgs:!1},DP:{id:$.markPointProps,numArgs:2,variableArgs:!1},BMC:{id:$.beginMarkedContent,numArgs:1,variableArgs:!1},BDC:{id:$.beginMarkedContentProps,numArgs:2,variableArgs:!1},EMC:{id:$.endMarkedContent,numArgs:0,variableArgs:!1},BX:{id:$.beginCompat,numArgs:0,variableArgs:!1},EX:{id:$.endCompat,numArgs:0,variableArgs:!1},BM:null,BD:null,"true":null,fa:null,fal:null,fals:null,"false":null,nu:null,nul:null,"null":null};return c.prototype={get savedStatesDepth(){return this.stateManager.stateStack.length},read:function(c){for(var f=c.args;;){var g=this.parser.getObj();if(A(g)){var h=g.cmd,i=d[h];if(!i){b('Unknown command "'+h+'"');continue}var j=i.id,k=i.numArgs,l=null!==f?f.length:0;if(i.variableArgs)l>k&&a("Command "+j+": expected [0,"+k+"] args, but received "+l+" args");else{if(l!==k){for(var m=this.nonProcessedArgs;l>k;)m.push(f.shift()),l--;for(;k>l&&0!==m.length;)f||(f=[]),f.unshift(m.pop()),l++}if(k>l){a("Command "+j+": because expected "+k+" args, but received "+l+" args; skipping"),f=null;continue}}return this.preprocessCommand(j,f),c.fn=j,c.args=f,!0}if(R(g))return!1;null!==g&&(f||(f=[]),f.push(g instanceof Aa?g.getAll():g),e(f.length<=33,"Too many arguments"))}},preprocessCommand:function(a,b){switch(0|a){case $.save:this.stateManager.save();break;case $.restore:this.stateManager.restore();break;case $.transform:this.stateManager.transform(b)}}},c}(),Cb=function(){function a(a,b,c){for(var d=a,e=0,f=b.length-1;f>e;e++){var g=b[e];d=d[g]||(d[g]=[])}d[b[b.length-1]]=c}function b(a,b,c,d){for(var e=a+2,f=0;b>f;f++){var g=d[e+4*f],h=1===g.length&&g[0];if(!h||1!==h.width||1!==h.height||h.data.length&&(1!==h.data.length||0!==h.data[0]))break;c[e+4*f]=$.paintSolidColorImageMask}return b-f}function c(){}var d=[];return a(d,[$.save,$.transform,$.paintInlineImageXObject,$.restore],function(a){for(var b=10,c=200,d=1e3,e=1,f=a.fnArray,g=a.argsArray,h=a.iCurr,i=h-3,j=h-2,k=h-1,l=i+4,m=f.length;m>l+3&&f[l]===$.save&&f[l+1]===$.transform&&f[l+2]===$.paintInlineImageXObject&&f[l+3]===$.restore;)l+=4;var n=Math.min((l-i)/4,c);if(b>n)return l;var o,p=0,q=[],r=0,s=e,t=e;for(o=0;n>o;o++){var u=g[j+(o<<2)],v=g[k+(o<<2)][0];s+v.width>d&&(p=Math.max(p,s),t+=r+2*e,s=0,r=0),q.push({transform:u,x:s,y:t,w:v.width,h:v.height}),s+=v.width+2*e,r=Math.max(r,v.height)}var w=Math.max(p,s)+e,x=t+r+e,y=new Uint8Array(w*x*4),z=w<<2;for(o=0;n>o;o++){var A=g[k+(o<<2)][0].data,B=q[o].w<<2,C=0,D=q[o].x+q[o].y*w<<2;y.set(A.subarray(0,B),D-z);for(var E=0,F=q[o].h;F>E;E++)y.set(A.subarray(C,C+B),D),C+=B,D+=z;for(y.set(A.subarray(C-B,C),D);D>=0;)A[D-4]=A[D],A[D-3]=A[D+1],A[D-2]=A[D+2],A[D-1]=A[D+3],A[D+B]=A[D+B-4],A[D+B+1]=A[D+B-3],A[D+B+2]=A[D+B-2],A[D+B+3]=A[D+B-1],D-=z}return f.splice(i,4*n,$.paintInlineImageXObjectGroup),g.splice(i,4*n,[{width:w,height:x,kind:V.RGBA_32BPP,data:y},q]),i+1}),a(d,[$.save,$.transform,$.paintImageMaskXObject,$.restore],function(a){for(var c=10,d=100,e=1e3,f=a.fnArray,g=a.argsArray,h=a.iCurr,i=h-3,j=h-2,k=h-1,l=i+4,m=f.length;m>l+3&&f[l]===$.save&&f[l+1]===$.transform&&f[l+2]===$.paintImageMaskXObject&&f[l+3]===$.restore;)l+=4;var n=(l-i)/4;if(n=b(i,n,f,g),c>n)return l;var o,p,q,r=!1,s=g[k][0];if(0===g[j][1]&&0===g[j][2]){r=!0;var t=g[j][0],u=g[j][3];p=j+4;var v=k+4;for(o=1;n>o;o++,p+=4,v+=4)if(q=g[p],g[v][0]!==s||q[0]!==t||0!==q[1]||0!==q[2]||q[3]!==u){c>o?r=!1:n=o;break}}if(r){n=Math.min(n,e);var w=new Float32Array(2*n);for(p=j,o=0;n>o;o++,p+=4)q=g[p],w[o<<1]=q[4],w[(o<<1)+1]=q[5];f.splice(i,4*n,$.paintImageMaskXObjectRepeat),g.splice(i,4*n,[s,t,u,w])}else{n=Math.min(n,d);var x=[];for(o=0;n>o;o++){q=g[j+(o<<2)];var y=g[k+(o<<2)][0];x.push({data:y.data,width:y.width,height:y.height,transform:q})}f.splice(i,4*n,$.paintImageMaskXObjectGroup),g.splice(i,4*n,[x])}return i+1}),a(d,[$.save,$.transform,$.paintImageXObject,$.restore],function(a){var b=3,c=1e3,d=a.fnArray,e=a.argsArray,f=a.iCurr,g=f-3,h=f-2,i=f-1,j=f;if(0!==e[h][1]||0!==e[h][2])return j+1;for(var k=e[i][0],l=e[h][0],m=e[h][3],n=g+4,o=d.length;o>n+3&&d[n]===$.save&&d[n+1]===$.transform&&d[n+2]===$.paintImageXObject&&d[n+3]===$.restore&&e[n+1][0]===l&&0===e[n+1][1]&&0===e[n+1][2]&&e[n+1][3]===m&&e[n+2][0]===k;)n+=4;var p=Math.min((n-g)/4,c);if(b>p)return n;for(var q=new Float32Array(2*p),r=h,s=0;p>s;s++,r+=4){var t=e[r];q[s<<1]=t[4],q[(s<<1)+1]=t[5]}var u=[k,l,m,q];return d.splice(g,4*p,$.paintImageXObjectRepeat),e.splice(g,4*p,u),g+1}),a(d,[$.beginText,$.setFont,$.setTextMatrix,$.showText,$.endText],function(a){for(var b=3,c=1e3,d=a.fnArray,e=a.argsArray,f=a.iCurr,g=f-4,h=f-3,i=f-2,j=f-1,k=f,l=e[h][0],m=e[h][1],n=g+5,o=d.length;o>n+4&&d[n]===$.beginText&&d[n+1]===$.setFont&&d[n+2]===$.setTextMatrix&&d[n+3]===$.showText&&d[n+4]===$.endText&&e[n+1][0]===l&&e[n+1][1]===m;)n+=5;var p=Math.min((n-g)/5,c);if(b>p)return n;var q=g;g>=4&&d[g-4]===d[h]&&d[g-3]===d[i]&&d[g-2]===d[j]&&d[g-1]===d[k]&&e[g-4][0]===l&&e[g-4][1]===m&&(p++,q-=5);for(var r=q+4,s=1;p>s;s++)d.splice(r,3),e.splice(r,3),r+=2;return r+1}),c.prototype={optimize:function(a){for(var b,c=a.fnArray,e=a.argsArray,f={iCurr:0,fnArray:c,argsArray:e},g=0,h=c.length;h>g;)b=(b||d)[c[g]],"function"==typeof b?(f.iCurr=g,g=b(f),b=void 0,h=f.fnArray.length):g++}},c}(),Db=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"],Eb=function(){function a(a){this.codespaceRanges=[[],[],[],[]],this.numCodespaceRanges=0,this._map=[],this.name="",this.vertical=!1,this.useCMap=null,this.builtInCMap=a}return a.prototype={addCodespaceRange:function(a,b,c){this.codespaceRanges[a-1].push(b,c),this.numCodespaceRanges++},mapCidRange:function(a,b,c){for(;b>=a;)this._map[a++]=c++},mapBfRange:function(a,b,c){for(var d=c.length-1;b>=a;)this._map[a++]=c,c=c.substr(0,d)+String.fromCharCode(c.charCodeAt(d)+1)},mapBfRangeToArray:function(a,b,c){for(var d=0,e=c.length;b>=a&&e>d;)this._map[a]=c[d++],++a},mapOne:function(a,b){this._map[a]=b},lookup:function(a){return this._map[a]},contains:function(a){return void 0!==this._map[a]},forEach:function(a){var b,c=this._map,d=c.length;if(65536>=d)for(b=0;d>b;b++)void 0!==c[b]&&a(b,c[b]);else for(b in this._map)a(b,c[b])},charCodeOf:function(a){return this._map.indexOf(a)},getMap:function(){return this._map},readCharCode:function(a,b,c){for(var d=0,e=this.codespaceRanges,f=this.codespaceRanges.length,g=0;f>g;g++){d=(d<<8|a.charCodeAt(b+g))>>>0;for(var h=e[g],i=0,j=h.length;j>i;){var k=h[i++],l=h[i++];if(d>=k&&l>=d)return c.charcode=d,void(c.length=g+1)}}c.charcode=0,c.length=1},get length(){return this._map.length},get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(var a=0;65536>a;a++)if(this._map[a]!==a)return!1;return!0}},a}(),Fb=function(){function a(a,b){Eb.call(this),this.vertical=a,this.addCodespaceRange(b,0,65535)}return na.inherit(a,Eb,{}),a.prototype={addCodespaceRange:Eb.prototype.addCodespaceRange,mapCidRange:function(a,b,d){c("should not call mapCidRange")},mapBfRange:function(a,b,d){c("should not call mapBfRange")},mapBfRangeToArray:function(a,b,d){c("should not call mapBfRangeToArray")},mapOne:function(a,b){c("should not call mapCidOne")},lookup:function(a){return w(a)&&65535>=a?a:void 0},contains:function(a){return w(a)&&65535>=a},forEach:function(a){for(var b=0;65535>=b;b++)a(b,b)},charCodeOf:function(a){return w(a)&&65535>=a?a:-1},getMap:function(){for(var a=new Array(65536),b=0;65535>=b;b++)a[b]=b;return a},readCharCode:Eb.prototype.readCharCode,get length(){return 65536},get isIdentityCMap(){c("should not access .isIdentityCMap")}},a}(),Gb=function(){function a(a){var b=PDFJS.disableWorker,d=new XMLHttpRequest;if(d.open("GET",a,!1),!b)try{d.responseType="arraybuffer",b="arraybuffer"!==d.responseType}catch(e){b=!0}if(b&&d.overrideMimeType&&d.overrideMimeType("text/plain; charset=x-user-defined"),d.send(null),(b?d.responseText:d.response)||c("Unable to get binary cMap at: "+a),b){var f=Array.prototype.map.call(d.responseText,function(a){return 255&a.charCodeAt(0)});return new Uint8Array(f)}return new Uint8Array(d.response)}function b(a,b){for(var c=0,d=0;b>=d;d++)c=c<<8|a[d];return c>>>0}function d(a,b){return 1===b?String.fromCharCode(a[0],a[1]):3===b?String.fromCharCode(a[0],a[1],a[2],a[3]):String.fromCharCode.apply(null,a.subarray(0,b+1))}function f(a,b,c){for(var d=0,e=c;e>=0;e--)d+=a[e]+b[e],a[e]=255&d,d>>=8}function g(a,b){for(var c=1,d=b;d>=0&&c>0;d--)c+=a[d],a[d]=255&c,c>>=8}function h(a){this.buffer=a,this.pos=0,this.end=a.length,this.tmpBuf=new Uint8Array(l)}function i(i,j,l){var m=a(i),n=new h(m),o=n.readByte();j.vertical=!!(1&o);for(var p,q,r=null,s=new Uint8Array(k),t=new Uint8Array(k),u=new Uint8Array(k),v=new Uint8Array(k),w=new Uint8Array(k);(q=n.readByte())>=0;){var x=q>>5;if(7!==x){var y=!!(16&q),z=15&q;e(k>=z+1);var A,B=1,C=n.readNumber();switch(x){case 0:for(n.readHex(s,z),n.readHexNumber(t,z),f(t,s,z),j.addCodespaceRange(z+1,b(s,z),b(t,z)),A=1;C>A;A++)g(t,z),n.readHexNumber(s,z),f(s,t,z),n.readHexNumber(t,z),f(t,s,z),j.addCodespaceRange(z+1,b(s,z),b(t,z));break;case 1:for(n.readHex(s,z),n.readHexNumber(t,z),f(t,s,z),p=n.readNumber(),A=1;C>A;A++)g(t,z),n.readHexNumber(s,z),f(s,t,z),n.readHexNumber(t,z),f(t,s,z),p=n.readNumber();break;case 2:for(n.readHex(u,z),p=n.readNumber(),j.mapOne(b(u,z),p),A=1;C>A;A++)g(u,z),y||(n.readHexNumber(w,z),f(u,w,z)),p=n.readSigned()+(p+1),j.mapOne(b(u,z),p);break;case 3:for(n.readHex(s,z),n.readHexNumber(t,z),f(t,s,z),p=n.readNumber(),j.mapCidRange(b(s,z),b(t,z),p),A=1;C>A;A++)g(t,z),y?s.set(t):(n.readHexNumber(s,z),f(s,t,z)),n.readHexNumber(t,z),f(t,s,z),p=n.readNumber(),j.mapCidRange(b(s,z),b(t,z),p);break;case 4:for(n.readHex(u,B),n.readHex(v,z),j.mapOne(b(u,B),d(v,z)),A=1;C>A;A++)g(u,B),y||(n.readHexNumber(w,B),f(u,w,B)),g(v,z),n.readHexSigned(w,z),f(v,w,z),j.mapOne(b(u,B),d(v,z));break;case 5:for(n.readHex(s,B),n.readHexNumber(t,B),f(t,s,B),n.readHex(v,z),j.mapBfRange(b(s,B),b(t,B),d(v,z)),A=1;C>A;A++)g(t,B),y?s.set(t):(n.readHexNumber(s,B),f(s,t,B)),n.readHexNumber(t,B),f(t,s,B),n.readHex(v,z),j.mapBfRange(b(s,B),b(t,B),d(v,z));break;default:c("Unknown type: "+x)}}else switch(31&q){case 0:n.readString();break;case 1:r=n.readString()}}return r&&l(r),j}function j(){}var k=16,l=19;return h.prototype={readByte:function(){return this.pos>=this.end?-1:this.buffer[this.pos++]},readNumber:function(){var a,b=0;do{var d=this.readByte();0>d&&c("unexpected EOF in bcmap"),a=!(128&d),b=b<<7|127&d}while(!a);return b},readSigned:function(){var a=this.readNumber();return 1&a?~(a>>>1):a>>>1},readHex:function(a,b){a.set(this.buffer.subarray(this.pos,this.pos+b+1)),this.pos+=b+1},readHexNumber:function(a,b){var d,e=this.tmpBuf,f=0;do{var g=this.readByte();0>g&&c("unexpected EOF in bcmap"),d=!(128&g),e[f++]=127&g}while(!d);for(var h=b,i=0,j=0;h>=0;){for(;8>j&&e.length>0;)i=e[--f]<<j|i,j+=7;a[h]=255&i,h--,i>>=8,j-=8}},readHexSigned:function(a,b){this.readHexNumber(a,b);for(var c=1&a[b]?255:0,d=0,e=0;b>=e;e++)d=(1&d)<<8|a[e],a[e]=d>>1^c},readString:function(){for(var a=this.readNumber(),b="",c=0;a>c;c++)b+=String.fromCharCode(this.readNumber());return b}},j.prototype={read:i},j}(),Hb=function(){function a(a){for(var b=0,c=0;c<a.length;c++)b=b<<8|a.charCodeAt(c);return b>>>0}function d(a){y(a)||c("Malformed CMap: expected string.")}function f(a){w(a)||c("Malformed CMap: expected int.")}function g(b,c){for(;;){var e=c.getObj();if(R(e))break;if(A(e,"endbfchar"))return;d(e);var f=a(e);e=c.getObj(),d(e);var g=e;b.mapOne(f,g)}}function h(b,e){for(;;){var f=e.getObj();if(R(f))break;if(A(f,"endbfrange"))return;d(f);var g=a(f);f=e.getObj(),d(f);var h=a(f);if(f=e.getObj(),w(f)||y(f)){var i=w(f)?String.fromCharCode(f):f;b.mapBfRange(g,h,i)}else{if(!A(f,"["))break;f=e.getObj();for(var j=[];!A(f,"]")&&!R(f);)j.push(f),f=e.getObj();b.mapBfRangeToArray(g,h,j)}}c("Invalid bf range.")}function i(b,c){for(;;){var e=c.getObj();if(R(e))break;if(A(e,"endcidchar"))return;d(e);var g=a(e);e=c.getObj(),f(e);var h=e;b.mapOne(g,h)}}function j(b,c){for(;;){var e=c.getObj();if(R(e))break;if(A(e,"endcidrange"))return;d(e);var g=a(e);e=c.getObj(),d(e);var h=a(e);e=c.getObj(),f(e);var i=e;b.mapCidRange(g,h,i)}}function k(b,d){for(;;){var e=d.getObj();if(R(e))break;if(A(e,"endcodespacerange"))return;if(!y(e))break;var f=a(e);if(e=d.getObj(),!y(e))break;var g=a(e);b.addCodespaceRange(e.length,f,g)}c("Invalid codespace range.")}function l(a,b){var c=b.getObj();w(c)&&(a.vertical=!!c)}function m(a,b){var c=b.getObj();z(c)&&y(c.name)&&(a.name=c.name)}function n(a,b,c,d){var e,f;a:for(;;){var n=b.getObj();if(R(n))break;if(z(n))"WMode"===n.name?l(a,b):"CMapName"===n.name&&m(a,b),e=n;else if(A(n))switch(n.cmd){case"endcmap":break a;case"usecmap":z(e)&&(f=e.name);break;case"begincodespacerange":k(a,b);break;case"beginbfchar":g(a,b);break;case"begincidchar":i(a,b);break;case"beginbfrange":h(a,b);break;case"begincidrange":j(a,b)}}!d&&f&&(d=f),d&&o(a,c,d)}function o(a,b,c){if(a.useCMap=q(c,b),0===a.numCodespaceRanges){for(var d=a.useCMap.codespaceRanges,e=0;e<d.length;e++)a.codespaceRanges[e]=d[e].slice();a.numCodespaceRanges=a.useCMap.numCodespaceRanges}a.useCMap.forEach(function(b,c){a.contains(b)||a.mapOne(b,a.useCMap.lookup(b))})}function p(a,b){var c=b.url+a+".bcmap",d=new Eb(!0);return(new Gb).read(c,d,function(a){o(d,b,a)}),d}function q(a,b){if("Identity-H"===a)return new Fb(!1,2);if("Identity-V"===a)return new Fb(!0,2);if(-1===Db.indexOf(a)&&c("Unknown cMap name: "+a),e(b,"built-in cMap parameters are not provided"),b.packed)return p(a,b);var d=new XMLHttpRequest,f=b.url+a;d.open("GET",f,!1),d.send(null),d.responseText||c("Unable to get cMap at: "+f);var g=new Eb(!0),h=new Gc(new Nc(d.responseText));return n(g,h,b,null),g}return{create:function(a,d,e){if(z(a))return q(a.name,d);if(D(a)){var f=new Eb,g=new Gc(a);try{n(f,g,d,e)}catch(h){b("Invalid CMap data. "+h)}return f.isIdentityCMap?q(f.name,d):f}c("Encoding required.")}}}(),Ib=57344,Jb=63743,Kb=!1,Lb=1e3,Mb=!1,Nb=!1,Ob={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144},Pb={ExpertEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],MacExpertEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall"],MacRomanEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"],StandardEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls"],WinAnsiEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"],SymbolSetEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt"],
+ZapfDingbatsEncoding:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191"]},Qb={ArialNarrow:"Helvetica","ArialNarrow-Bold":"Helvetica-Bold","ArialNarrow-BoldItalic":"Helvetica-BoldOblique","ArialNarrow-Italic":"Helvetica-Oblique",ArialBlack:"Helvetica","ArialBlack-Bold":"Helvetica-Bold","ArialBlack-BoldItalic":"Helvetica-BoldOblique","ArialBlack-Italic":"Helvetica-Oblique",Arial:"Helvetica","Arial-Bold":"Helvetica-Bold","Arial-BoldItalic":"Helvetica-BoldOblique","Arial-Italic":"Helvetica-Oblique","Arial-BoldItalicMT":"Helvetica-BoldOblique","Arial-BoldMT":"Helvetica-Bold","Arial-ItalicMT":"Helvetica-Oblique",ArialMT:"Helvetica","Courier-Bold":"Courier-Bold","Courier-BoldItalic":"Courier-BoldOblique","Courier-Italic":"Courier-Oblique",CourierNew:"Courier","CourierNew-Bold":"Courier-Bold","CourierNew-BoldItalic":"Courier-BoldOblique","CourierNew-Italic":"Courier-Oblique","CourierNewPS-BoldItalicMT":"Courier-BoldOblique","CourierNewPS-BoldMT":"Courier-Bold","CourierNewPS-ItalicMT":"Courier-Oblique",CourierNewPSMT:"Courier",Helvetica:"Helvetica","Helvetica-Bold":"Helvetica-Bold","Helvetica-BoldItalic":"Helvetica-BoldOblique","Helvetica-BoldOblique":"Helvetica-BoldOblique","Helvetica-Italic":"Helvetica-Oblique","Helvetica-Oblique":"Helvetica-Oblique","Symbol-Bold":"Symbol","Symbol-BoldItalic":"Symbol","Symbol-Italic":"Symbol",TimesNewRoman:"Times-Roman","TimesNewRoman-Bold":"Times-Bold","TimesNewRoman-BoldItalic":"Times-BoldItalic","TimesNewRoman-Italic":"Times-Italic",TimesNewRomanPS:"Times-Roman","TimesNewRomanPS-Bold":"Times-Bold","TimesNewRomanPS-BoldItalic":"Times-BoldItalic","TimesNewRomanPS-BoldItalicMT":"Times-BoldItalic","TimesNewRomanPS-BoldMT":"Times-Bold","TimesNewRomanPS-Italic":"Times-Italic","TimesNewRomanPS-ItalicMT":"Times-Italic",TimesNewRomanPSMT:"Times-Roman","TimesNewRomanPSMT-Bold":"Times-Bold","TimesNewRomanPSMT-BoldItalic":"Times-BoldItalic","TimesNewRomanPSMT-Italic":"Times-Italic"},Rb={CenturyGothic:"Helvetica","CenturyGothic-Bold":"Helvetica-Bold","CenturyGothic-BoldItalic":"Helvetica-BoldOblique","CenturyGothic-Italic":"Helvetica-Oblique",ComicSansMS:"Comic Sans MS","ComicSansMS-Bold":"Comic Sans MS-Bold","ComicSansMS-BoldItalic":"Comic Sans MS-BoldItalic","ComicSansMS-Italic":"Comic Sans MS-Italic",LucidaConsole:"Courier","LucidaConsole-Bold":"Courier-Bold","LucidaConsole-BoldItalic":"Courier-BoldOblique","LucidaConsole-Italic":"Courier-Oblique","MS-Gothic":"MS Gothic","MS-Gothic-Bold":"MS Gothic-Bold","MS-Gothic-BoldItalic":"MS Gothic-BoldItalic","MS-Gothic-Italic":"MS Gothic-Italic","MS-Mincho":"MS Mincho","MS-Mincho-Bold":"MS Mincho-Bold","MS-Mincho-BoldItalic":"MS Mincho-BoldItalic","MS-Mincho-Italic":"MS Mincho-Italic","MS-PGothic":"MS PGothic","MS-PGothic-Bold":"MS PGothic-Bold","MS-PGothic-BoldItalic":"MS PGothic-BoldItalic","MS-PGothic-Italic":"MS PGothic-Italic","MS-PMincho":"MS PMincho","MS-PMincho-Bold":"MS PMincho-Bold","MS-PMincho-BoldItalic":"MS PMincho-BoldItalic","MS-PMincho-Italic":"MS PMincho-Italic",Wingdings:"ZapfDingbats"},Sb={"Adobe Jenson":!0,"Adobe Text":!0,Albertus:!0,Aldus:!0,Alexandria:!0,Algerian:!0,"American Typewriter":!0,Antiqua:!0,Apex:!0,Arno:!0,Aster:!0,Aurora:!0,Baskerville:!0,Bell:!0,Bembo:!0,"Bembo Schoolbook":!0,Benguiat:!0,"Berkeley Old Style":!0,"Bernhard Modern":!0,"Berthold City":!0,Bodoni:!0,"Bauer Bodoni":!0,"Book Antiqua":!0,Bookman:!0,"Bordeaux Roman":!0,"Californian FB":!0,Calisto:!0,Calvert:!0,Capitals:!0,Cambria:!0,Cartier:!0,Caslon:!0,Catull:!0,Centaur:!0,"Century Old Style":!0,"Century Schoolbook":!0,Chaparral:!0,"Charis SIL":!0,Cheltenham:!0,"Cholla Slab":!0,Clarendon:!0,Clearface:!0,Cochin:!0,Colonna:!0,"Computer Modern":!0,"Concrete Roman":!0,Constantia:!0,"Cooper Black":!0,Corona:!0,Ecotype:!0,Egyptienne:!0,Elephant:!0,Excelsior:!0,Fairfield:!0,"FF Scala":!0,Folkard:!0,Footlight:!0,FreeSerif:!0,"Friz Quadrata":!0,Garamond:!0,Gentium:!0,Georgia:!0,Gloucester:!0,"Goudy Old Style":!0,"Goudy Schoolbook":!0,"Goudy Pro Font":!0,Granjon:!0,"Guardian Egyptian":!0,Heather:!0,Hercules:!0,"High Tower Text":!0,Hiroshige:!0,"Hoefler Text":!0,"Humana Serif":!0,Imprint:!0,"Ionic No. 5":!0,Janson:!0,Joanna:!0,Korinna:!0,Lexicon:!0,"Liberation Serif":!0,"Linux Libertine":!0,Literaturnaya:!0,Lucida:!0,"Lucida Bright":!0,Melior:!0,Memphis:!0,Miller:!0,Minion:!0,Modern:!0,"Mona Lisa":!0,"Mrs Eaves":!0,"MS Serif":!0,"Museo Slab":!0,"New York":!0,"Nimbus Roman":!0,"NPS Rawlinson Roadway":!0,Palatino:!0,Perpetua:!0,Plantin:!0,"Plantin Schoolbook":!0,Playbill:!0,"Poor Richard":!0,"Rawlinson Roadway":!0,Renault:!0,Requiem:!0,Rockwell:!0,Roman:!0,"Rotis Serif":!0,Sabon:!0,Scala:!0,Seagull:!0,Sistina:!0,Souvenir:!0,STIX:!0,"Stone Informal":!0,"Stone Serif":!0,Sylfaen:!0,Times:!0,Trajan:!0,"Trinité":!0,"Trump Mediaeval":!0,Utopia:!0,"Vale Type":!0,"Bitstream Vera":!0,"Vera Serif":!0,Versailles:!0,Wanted:!0,Weiss:!0,"Wide Latin":!0,Windsor:!0,XITS:!0},Tb={Dingbats:!0,Symbol:!0,ZapfDingbats:!0},Ub={2:10,3:32,4:33,5:34,6:35,7:36,8:37,9:38,10:39,11:40,12:41,13:42,14:43,15:44,16:45,17:46,18:47,19:48,20:49,21:50,22:51,23:52,24:53,25:54,26:55,27:56,28:57,29:58,30:894,31:60,32:61,33:62,34:63,35:64,36:65,37:66,38:67,39:68,40:69,41:70,42:71,43:72,44:73,45:74,46:75,47:76,48:77,49:78,50:79,51:80,52:81,53:82,54:83,55:84,56:85,57:86,58:87,59:88,60:89,61:90,62:91,63:92,64:93,65:94,66:95,67:96,68:97,69:98,70:99,71:100,72:101,73:102,74:103,75:104,76:105,77:106,78:107,79:108,80:109,81:110,82:111,83:112,84:113,85:114,86:115,87:116,88:117,89:118,90:119,91:120,92:121,93:122,94:123,95:124,96:125,97:126,98:196,99:197,100:199,101:201,102:209,103:214,104:220,105:225,106:224,107:226,108:228,109:227,110:229,111:231,112:233,113:232,114:234,115:235,116:237,117:236,118:238,119:239,120:241,121:243,122:242,123:244,124:246,125:245,126:250,127:249,128:251,129:252,130:8224,131:176,132:162,133:163,134:167,135:8226,136:182,137:223,138:174,139:169,140:8482,141:180,142:168,143:8800,144:198,145:216,146:8734,147:177,148:8804,149:8805,150:165,151:181,152:8706,153:8721,154:8719,156:8747,157:170,158:186,159:8486,160:230,161:248,162:191,163:161,164:172,165:8730,166:402,167:8776,168:8710,169:171,170:187,171:8230,210:218,223:711,224:321,225:322,227:353,229:382,234:253,252:263,253:268,254:269,258:258,260:260,261:261,265:280,266:281,268:283,269:313,275:323,276:324,278:328,284:345,285:346,286:347,292:367,295:377,296:378,298:380,305:963,306:964,307:966,308:8215,309:8252,310:8319,311:8359,312:8592,313:8593,337:9552,493:1039,494:1040,705:1524,706:8362,710:64288,711:64298,759:1617,761:1776,763:1778,775:1652,777:1764,778:1780,779:1781,780:1782,782:771,783:64726,786:8363,788:8532,790:768,791:769,792:768,795:803,797:64336,798:64337,799:64342,800:64343,801:64344,802:64345,803:64362,804:64363,805:64364,2424:7821,2425:7822,2426:7823,2427:7824,2428:7825,2429:7826,2430:7827,2433:7682,2678:8045,2679:8046,2830:1552,2838:686,2840:751,2842:753,2843:754,2844:755,2846:757,2856:767,2857:848,2858:849,2862:853,2863:854,2864:855,2865:861,2866:862,2906:7460,2908:7462,2909:7463,2910:7464,2912:7466,2913:7467,2914:7468,2916:7470,2917:7471,2918:7472,2920:7474,2921:7475,2922:7476,2924:7478,2925:7479,2926:7480,2928:7482,2929:7483,2930:7484,2932:7486,2933:7487,2934:7488,2936:7490,2937:7491,2938:7492,2940:7494,2941:7495,2942:7496,2944:7498,2946:7500,2948:7502,2950:7504,2951:7505,2952:7506,2954:7508,2955:7509,2956:7510,2958:7512,2959:7513,2960:7514,2962:7516,2963:7517,2964:7518,2966:7520,2967:7521,2968:7522,2970:7524,2971:7525,2972:7526,2974:7528,2975:7529,2976:7530,2978:1537,2979:1538,2980:1539,2982:1549,2983:1551,2984:1552,2986:1554,2987:1555,2988:1556,2990:1623,2991:1624,2995:1775,2999:1791,3002:64290,3003:64291,3004:64292,3006:64294,3007:64295,3008:64296,3011:1900,3014:8223,3015:8244,3017:7532,3018:7533,3019:7534,3075:7590,3076:7591,3079:7594,3080:7595,3083:7598,3084:7599,3087:7602,3088:7603,3091:7606,3092:7607,3095:7610,3096:7611,3099:7614,3100:7615,3103:7618,3104:7619,3107:8337,3108:8338,3116:1884,3119:1885,3120:1885,3123:1886,3124:1886,3127:1887,3128:1887,3131:1888,3132:1888,3135:1889,3136:1889,3139:1890,3140:1890,3143:1891,3144:1891,3147:1892,3148:1892,3153:580,3154:581,3157:584,3158:585,3161:588,3162:589,3165:891,3166:892,3169:1274,3170:1275,3173:1278,3174:1279,3181:7622,3182:7623,3282:11799,3316:578,3379:42785,3393:1159,3416:8377},Vb={227:322,264:261,291:346},Wb={63721:169,63193:169,63720:174,63194:174,63722:8482,63195:8482,63729:9127,63730:9128,63731:9129,63740:9131,63741:9132,63742:9133,63726:9121,63727:9122,63728:9123,63737:9124,63738:9125,63739:9126,63723:9115,63724:9116,63725:9117,63734:9118,63735:9119,63736:9120},Xb=[{begin:0,end:127},{begin:128,end:255},{begin:256,end:383},{begin:384,end:591},{begin:592,end:687},{begin:688,end:767},{begin:768,end:879},{begin:880,end:1023},{begin:11392,end:11519},{begin:1024,end:1279},{begin:1328,end:1423},{begin:1424,end:1535},{begin:42240,end:42559},{begin:1536,end:1791},{begin:1984,end:2047},{begin:2304,end:2431},{begin:2432,end:2559},{begin:2560,end:2687},{begin:2688,end:2815},{begin:2816,end:2943},{begin:2944,end:3071},{begin:3072,end:3199},{begin:3200,end:3327},{begin:3328,end:3455},{begin:3584,end:3711},{begin:3712,end:3839},{begin:4256,end:4351},{begin:6912,end:7039},{begin:4352,end:4607},{begin:7680,end:7935},{begin:7936,end:8191},{begin:8192,end:8303},{begin:8304,end:8351},{begin:8352,end:8399},{begin:8400,end:8447},{begin:8448,end:8527},{begin:8528,end:8591},{begin:8592,end:8703},{begin:8704,end:8959},{begin:8960,end:9215},{begin:9216,end:9279},{begin:9280,end:9311},{begin:9312,end:9471},{begin:9472,end:9599},{begin:9600,end:9631},{begin:9632,end:9727},{begin:9728,end:9983},{begin:9984,end:10175},{begin:12288,end:12351},{begin:12352,end:12447},{begin:12448,end:12543},{begin:12544,end:12591},{begin:12592,end:12687},{begin:43072,end:43135},{begin:12800,end:13055},{begin:13056,end:13311},{begin:44032,end:55215},{begin:55296,end:57343},{begin:67840,end:67871},{begin:19968,end:40959},{begin:57344,end:63743},{begin:12736,end:12783},{begin:64256,end:64335},{begin:64336,end:65023},{begin:65056,end:65071},{begin:65040,end:65055},{begin:65104,end:65135},{begin:65136,end:65279},{begin:65280,end:65519},{begin:65520,end:65535},{begin:3840,end:4095},{begin:1792,end:1871},{begin:1920,end:1983},{begin:3456,end:3583},{begin:4096,end:4255},{begin:4608,end:4991},{begin:5024,end:5119},{begin:5120,end:5759},{begin:5760,end:5791},{begin:5792,end:5887},{begin:6016,end:6143},{begin:6144,end:6319},{begin:10240,end:10495},{begin:40960,end:42127},{begin:5888,end:5919},{begin:66304,end:66351},{begin:66352,end:66383},{begin:66560,end:66639},{begin:118784,end:119039},{begin:119808,end:120831},{begin:1044480,end:1048573},{begin:65024,end:65039},{begin:917504,end:917631},{begin:6400,end:6479},{begin:6480,end:6527},{begin:6528,end:6623},{begin:6656,end:6687},{begin:11264,end:11359},{begin:11568,end:11647},{begin:19904,end:19967},{begin:43008,end:43055},{begin:65536,end:65663},{begin:65856,end:65935},{begin:66432,end:66463},{begin:66464,end:66527},{begin:66640,end:66687},{begin:66688,end:66735},{begin:67584,end:67647},{begin:68096,end:68191},{begin:119552,end:119647},{begin:73728,end:74751},{begin:119648,end:119679},{begin:7040,end:7103},{begin:7168,end:7247},{begin:7248,end:7295},{begin:43136,end:43231},{begin:43264,end:43311},{begin:43312,end:43359},{begin:43520,end:43615},{begin:65936,end:65999},{begin:66e3,end:66047},{begin:66208,end:66271},{begin:127024,end:127135}],Yb=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"],Zb={"¨":" ̈","¯":" ̄","´":" ́","µ":"μ","¸":" ̧","IJ":"IJ","ij":"ij","Ŀ":"L·","ŀ":"l·","ʼn":"ʼn","ſ":"s","DŽ":"DŽ","Dž":"Dž","dž":"dž","LJ":"LJ","Lj":"Lj","lj":"lj","NJ":"NJ","Nj":"Nj","nj":"nj","DZ":"DZ","Dz":"Dz","dz":"dz","˘":" ̆","˙":" ̇","˚":" ̊","˛":" ̨","˜":" ̃","˝":" ̋","ͺ":" ͅ","΄":" ́","ϐ":"β","ϑ":"θ","ϒ":"Υ","ϕ":"φ","ϖ":"π","ϰ":"κ","ϱ":"ρ","ϲ":"ς","ϴ":"Θ","ϵ":"ε","Ϲ":"Σ","և":"եւ","ٵ":"اٴ","ٶ":"وٴ","ٷ":"ۇٴ","ٸ":"يٴ","ำ":"ํา","ຳ":"ໍາ","ໜ":"ຫນ","ໝ":"ຫມ","ཷ":"ྲཱྀ","ཹ":"ླཱྀ","ẚ":"aʾ","᾽":" ̓","᾿":" ̓","῀":" ͂","῾":" ̔"," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" ","‗":" ̳","․":".","‥":"..","…":"...","″":"′′","‴":"′′′","‶":"‵‵","‷":"‵‵‵","‼":"!!","‾":" ̅","⁇":"??","⁈":"?!","⁉":"!?","⁗":"′′′′"," ":" ","₨":"Rs","℀":"a/c","℁":"a/s","℃":"°C","℅":"c/o","℆":"c/u","ℇ":"Ɛ","℉":"°F","№":"No","℡":"TEL","ℵ":"א","ℶ":"ב","ℷ":"ג","ℸ":"ד","℻":"FAX","Ⅰ":"I","Ⅱ":"II","Ⅲ":"III","Ⅳ":"IV","Ⅴ":"V","Ⅵ":"VI","Ⅶ":"VII","Ⅷ":"VIII","Ⅸ":"IX","Ⅹ":"X","Ⅺ":"XI","Ⅻ":"XII","Ⅼ":"L","Ⅽ":"C","Ⅾ":"D","Ⅿ":"M","ⅰ":"i","ⅱ":"ii","ⅲ":"iii","ⅳ":"iv","ⅴ":"v","ⅵ":"vi","ⅶ":"vii","ⅷ":"viii","ⅸ":"ix","ⅹ":"x","ⅺ":"xi","ⅻ":"xii","ⅼ":"l","ⅽ":"c","ⅾ":"d","ⅿ":"m","∬":"∫∫","∭":"∫∫∫","∯":"∮∮","∰":"∮∮∮","⑴":"(1)","⑵":"(2)","⑶":"(3)","⑷":"(4)","⑸":"(5)","⑹":"(6)","⑺":"(7)","⑻":"(8)","⑼":"(9)","⑽":"(10)","⑾":"(11)","⑿":"(12)","⒀":"(13)","⒁":"(14)","⒂":"(15)","⒃":"(16)","⒄":"(17)","⒅":"(18)","⒆":"(19)","⒇":"(20)","⒈":"1.","⒉":"2.","⒊":"3.","⒋":"4.","⒌":"5.","⒍":"6.","⒎":"7.","⒏":"8.","⒐":"9.","⒑":"10.","⒒":"11.","⒓":"12.","⒔":"13.","⒕":"14.","⒖":"15.","⒗":"16.","⒘":"17.","⒙":"18.","⒚":"19.","⒛":"20.","⒜":"(a)","⒝":"(b)","⒞":"(c)","⒟":"(d)","⒠":"(e)","⒡":"(f)","⒢":"(g)","⒣":"(h)","⒤":"(i)","⒥":"(j)","⒦":"(k)","⒧":"(l)","⒨":"(m)","⒩":"(n)","⒪":"(o)","⒫":"(p)","⒬":"(q)","⒭":"(r)","⒮":"(s)","⒯":"(t)","⒰":"(u)","⒱":"(v)","⒲":"(w)","⒳":"(x)","⒴":"(y)","⒵":"(z)","⨌":"∫∫∫∫","⩴":"::=","⩵":"==","⩶":"===","⺟":"母","⻳":"龟","⼀":"一","⼁":"丨","⼂":"丶","⼃":"丿","⼄":"乙","⼅":"亅","⼆":"二","⼇":"亠","⼈":"人","⼉":"儿","⼊":"入","⼋":"八","⼌":"冂","⼍":"冖","⼎":"冫","⼏":"几","⼐":"凵","⼑":"刀","⼒":"力","⼓":"勹","⼔":"匕","⼕":"匚","⼖":"匸","⼗":"十","⼘":"卜","⼙":"卩","⼚":"厂","⼛":"厶","⼜":"又","⼝":"口","⼞":"囗","⼟":"土","⼠":"士","⼡":"夂","⼢":"夊","⼣":"夕","⼤":"大","⼥":"女","⼦":"子","⼧":"宀","⼨":"寸","⼩":"小","⼪":"尢","⼫":"尸","⼬":"屮","⼭":"山","⼮":"巛","⼯":"工","⼰":"己","⼱":"巾","⼲":"干","⼳":"幺","⼴":"广","⼵":"廴","⼶":"廾","⼷":"弋","⼸":"弓","⼹":"彐","⼺":"彡","⼻":"彳","⼼":"心","⼽":"戈","⼾":"戶","⼿":"手","⽀":"支","⽁":"攴","⽂":"文","⽃":"斗","⽄":"斤","⽅":"方","⽆":"无","⽇":"日","⽈":"曰","⽉":"月","⽊":"木","⽋":"欠","⽌":"止","⽍":"歹","⽎":"殳","⽏":"毋","⽐":"比","⽑":"毛","⽒":"氏","⽓":"气","⽔":"水","⽕":"火","⽖":"爪","⽗":"父","⽘":"爻","⽙":"爿","⽚":"片","⽛":"牙","⽜":"牛","⽝":"犬","⽞":"玄","⽟":"玉","⽠":"瓜","⽡":"瓦","⽢":"甘","⽣":"生","⽤":"用","⽥":"田","⽦":"疋","⽧":"疒","⽨":"癶","⽩":"白","⽪":"皮","⽫":"皿","⽬":"目","⽭":"矛","⽮":"矢","⽯":"石","⽰":"示","⽱":"禸","⽲":"禾","⽳":"穴","⽴":"立","⽵":"竹","⽶":"米","⽷":"糸","⽸":"缶","⽹":"网","⽺":"羊","⽻":"羽","⽼":"老","⽽":"而","⽾":"耒","⽿":"耳","⾀":"聿","⾁":"肉","⾂":"臣","⾃":"自","⾄":"至","⾅":"臼","⾆":"舌","⾇":"舛","⾈":"舟","⾉":"艮","⾊":"色","⾋":"艸","⾌":"虍","⾍":"虫","⾎":"血","⾏":"行","⾐":"衣","⾑":"襾","⾒":"見","⾓":"角","⾔":"言","⾕":"谷","⾖":"豆","⾗":"豕","⾘":"豸","⾙":"貝","⾚":"赤","⾛":"走","⾜":"足","⾝":"身","⾞":"車","⾟":"辛","⾠":"辰","⾡":"辵","⾢":"邑","⾣":"酉","⾤":"釆","⾥":"里","⾦":"金","⾧":"長","⾨":"門","⾩":"阜","⾪":"隶","⾫":"隹","⾬":"雨","⾭":"靑","⾮":"非","⾯":"面","⾰":"革","⾱":"韋","⾲":"韭","⾳":"音","⾴":"頁","⾵":"風","⾶":"飛","⾷":"食","⾸":"首","⾹":"香","⾺":"馬","⾻":"骨","⾼":"高","⾽":"髟","⾾":"鬥","⾿":"鬯","⿀":"鬲","⿁":"鬼","⿂":"魚","⿃":"鳥","⿄":"鹵","⿅":"鹿","⿆":"麥","⿇":"麻","⿈":"黃","⿉":"黍","⿊":"黑","⿋":"黹","⿌":"黽","⿍":"鼎","⿎":"鼓","⿏":"鼠","⿐":"鼻","⿑":"齊","⿒":"齒","⿓":"龍","⿔":"龜","⿕":"龠","〶":"〒","〸":"十","〹":"卄","〺":"卅","゛":" ゙","゜":" ゚","ㄱ":"ᄀ","ㄲ":"ᄁ","ㄳ":"ᆪ","ㄴ":"ᄂ","ㄵ":"ᆬ","ㄶ":"ᆭ","ㄷ":"ᄃ","ㄸ":"ᄄ","ㄹ":"ᄅ","ㄺ":"ᆰ","ㄻ":"ᆱ","ㄼ":"ᆲ","ㄽ":"ᆳ","ㄾ":"ᆴ","ㄿ":"ᆵ","ㅀ":"ᄚ","ㅁ":"ᄆ","ㅂ":"ᄇ","ㅃ":"ᄈ","ㅄ":"ᄡ","ㅅ":"ᄉ","ㅆ":"ᄊ","ㅇ":"ᄋ","ㅈ":"ᄌ","ㅉ":"ᄍ","ㅊ":"ᄎ","ㅋ":"ᄏ","ㅌ":"ᄐ","ㅍ":"ᄑ","ㅎ":"ᄒ","ㅏ":"ᅡ","ㅐ":"ᅢ","ㅑ":"ᅣ","ㅒ":"ᅤ","ㅓ":"ᅥ","ㅔ":"ᅦ","ㅕ":"ᅧ","ㅖ":"ᅨ","ㅗ":"ᅩ","ㅘ":"ᅪ","ㅙ":"ᅫ","ㅚ":"ᅬ","ㅛ":"ᅭ","ㅜ":"ᅮ","ㅝ":"ᅯ","ㅞ":"ᅰ","ㅟ":"ᅱ","ㅠ":"ᅲ","ㅡ":"ᅳ","ㅢ":"ᅴ","ㅣ":"ᅵ","ㅤ":"ᅠ","ㅥ":"ᄔ","ㅦ":"ᄕ","ㅧ":"ᇇ","ㅨ":"ᇈ","ㅩ":"ᇌ","ㅪ":"ᇎ","ㅫ":"ᇓ","ㅬ":"ᇗ","ㅭ":"ᇙ","ㅮ":"ᄜ","ㅯ":"ᇝ","ㅰ":"ᇟ","ㅱ":"ᄝ","ㅲ":"ᄞ","ㅳ":"ᄠ","ㅴ":"ᄢ","ㅵ":"ᄣ","ㅶ":"ᄧ","ㅷ":"ᄩ","ㅸ":"ᄫ","ㅹ":"ᄬ","ㅺ":"ᄭ","ㅻ":"ᄮ","ㅼ":"ᄯ","ㅽ":"ᄲ","ㅾ":"ᄶ","ㅿ":"ᅀ","ㆀ":"ᅇ","ㆁ":"ᅌ","ㆂ":"ᇱ","ㆃ":"ᇲ","ㆄ":"ᅗ","ㆅ":"ᅘ","ㆆ":"ᅙ","ㆇ":"ᆄ","ㆈ":"ᆅ","ㆉ":"ᆈ","ㆊ":"ᆑ","ㆋ":"ᆒ","ㆌ":"ᆔ","ㆍ":"ᆞ","ㆎ":"ᆡ","㈀":"(ᄀ)","㈁":"(ᄂ)","㈂":"(ᄃ)","㈃":"(ᄅ)","㈄":"(ᄆ)","㈅":"(ᄇ)","㈆":"(ᄉ)","㈇":"(ᄋ)","㈈":"(ᄌ)","㈉":"(ᄎ)","㈊":"(ᄏ)","㈋":"(ᄐ)","㈌":"(ᄑ)","㈍":"(ᄒ)","㈎":"(가)","㈏":"(나)","㈐":"(다)","㈑":"(라)","㈒":"(마)","㈓":"(바)","㈔":"(사)","㈕":"(아)","㈖":"(자)","㈗":"(차)","㈘":"(카)","㈙":"(타)","㈚":"(파)","㈛":"(하)","㈜":"(주)","㈝":"(오전)","㈞":"(오후)","㈠":"(一)","㈡":"(二)","㈢":"(三)","㈣":"(四)","㈤":"(五)","㈥":"(六)","㈦":"(七)","㈧":"(八)","㈨":"(九)","㈩":"(十)","㈪":"(月)","㈫":"(火)","㈬":"(水)","㈭":"(木)","㈮":"(金)","㈯":"(土)","㈰":"(日)","㈱":"(株)","㈲":"(有)","㈳":"(社)","㈴":"(名)","㈵":"(特)","㈶":"(財)","㈷":"(祝)","㈸":"(労)","㈹":"(代)","㈺":"(呼)","㈻":"(学)","㈼":"(監)","㈽":"(企)","㈾":"(資)","㈿":"(協)","㉀":"(祭)","㉁":"(休)","㉂":"(自)","㉃":"(至)","㋀":"1月","㋁":"2月","㋂":"3月","㋃":"4月","㋄":"5月","㋅":"6月","㋆":"7月","㋇":"8月","㋈":"9月","㋉":"10月","㋊":"11月","㋋":"12月","㍘":"0点","㍙":"1点","㍚":"2点","㍛":"3点","㍜":"4点","㍝":"5点","㍞":"6点","㍟":"7点","㍠":"8点","㍡":"9点","㍢":"10点","㍣":"11点","㍤":"12点","㍥":"13点","㍦":"14点","㍧":"15点","㍨":"16点","㍩":"17点","㍪":"18点","㍫":"19点","㍬":"20点","㍭":"21点","㍮":"22点","㍯":"23点","㍰":"24点","㏠":"1日","㏡":"2日","㏢":"3日","㏣":"4日","㏤":"5日","㏥":"6日","㏦":"7日","㏧":"8日","㏨":"9日","㏩":"10日","㏪":"11日","㏫":"12日","㏬":"13日","㏭":"14日","㏮":"15日","㏯":"16日","㏰":"17日","㏱":"18日","㏲":"19日","㏳":"20日","㏴":"21日","㏵":"22日","㏶":"23日","㏷":"24日","㏸":"25日","㏹":"26日","㏺":"27日","㏻":"28日","㏼":"29日","㏽":"30日","㏾":"31日","ff":"ff","fi":"fi","fl":"fl","ffi":"ffi","ffl":"ffl","ſt":"ſt","st":"st","ﬓ":"մն","ﬔ":"մե","ﬕ":"մի","ﬖ":"վն","ﬗ":"մխ","ﭏ":"אל","ﭐ":"ٱ","ﭑ":"ٱ","ﭒ":"ٻ","ﭓ":"ٻ","ﭔ":"ٻ","ﭕ":"ٻ","ﭖ":"پ","ﭗ":"پ","ﭘ":"پ","ﭙ":"پ","ﭚ":"ڀ","ﭛ":"ڀ","ﭜ":"ڀ","ﭝ":"ڀ","ﭞ":"ٺ","ﭟ":"ٺ","ﭠ":"ٺ","ﭡ":"ٺ","ﭢ":"ٿ","ﭣ":"ٿ","ﭤ":"ٿ","ﭥ":"ٿ","ﭦ":"ٹ","ﭧ":"ٹ","ﭨ":"ٹ","ﭩ":"ٹ","ﭪ":"ڤ","ﭫ":"ڤ","ﭬ":"ڤ","ﭭ":"ڤ","ﭮ":"ڦ","ﭯ":"ڦ","ﭰ":"ڦ","ﭱ":"ڦ","ﭲ":"ڄ","ﭳ":"ڄ","ﭴ":"ڄ","ﭵ":"ڄ","ﭶ":"ڃ","ﭷ":"ڃ","ﭸ":"ڃ","ﭹ":"ڃ","ﭺ":"چ","ﭻ":"چ","ﭼ":"چ","ﭽ":"چ","ﭾ":"ڇ","ﭿ":"ڇ","ﮀ":"ڇ","ﮁ":"ڇ","ﮂ":"ڍ","ﮃ":"ڍ","ﮄ":"ڌ","ﮅ":"ڌ","ﮆ":"ڎ","ﮇ":"ڎ","ﮈ":"ڈ","ﮉ":"ڈ","ﮊ":"ژ","ﮋ":"ژ","ﮌ":"ڑ","ﮍ":"ڑ","ﮎ":"ک","ﮏ":"ک","ﮐ":"ک","ﮑ":"ک","ﮒ":"گ","ﮓ":"گ","ﮔ":"گ","ﮕ":"گ","ﮖ":"ڳ","ﮗ":"ڳ","ﮘ":"ڳ","ﮙ":"ڳ","ﮚ":"ڱ","ﮛ":"ڱ","ﮜ":"ڱ","ﮝ":"ڱ","ﮞ":"ں","ﮟ":"ں","ﮠ":"ڻ","ﮡ":"ڻ","ﮢ":"ڻ","ﮣ":"ڻ","ﮤ":"ۀ","ﮥ":"ۀ","ﮦ":"ہ","ﮧ":"ہ","ﮨ":"ہ","ﮩ":"ہ","ﮪ":"ھ","ﮫ":"ھ","ﮬ":"ھ","ﮭ":"ھ","ﮮ":"ے","ﮯ":"ے","ﮰ":"ۓ","ﮱ":"ۓ","ﯓ":"ڭ","ﯔ":"ڭ","ﯕ":"ڭ","ﯖ":"ڭ","ﯗ":"ۇ","ﯘ":"ۇ","ﯙ":"ۆ","ﯚ":"ۆ","ﯛ":"ۈ","ﯜ":"ۈ","ﯝ":"ٷ","ﯞ":"ۋ","ﯟ":"ۋ","ﯠ":"ۅ","ﯡ":"ۅ","ﯢ":"ۉ","ﯣ":"ۉ","ﯤ":"ې","ﯥ":"ې","ﯦ":"ې","ﯧ":"ې","ﯨ":"ى","ﯩ":"ى","ﯪ":"ئا","ﯫ":"ئا","ﯬ":"ئە","ﯭ":"ئە","ﯮ":"ئو","ﯯ":"ئو","ﯰ":"ئۇ","ﯱ":"ئۇ","ﯲ":"ئۆ","ﯳ":"ئۆ","ﯴ":"ئۈ","ﯵ":"ئۈ","ﯶ":"ئې","ﯷ":"ئې","ﯸ":"ئې","ﯹ":"ئى","ﯺ":"ئى","ﯻ":"ئى","ﯼ":"ی","ﯽ":"ی","ﯾ":"ی","ﯿ":"ی","ﰀ":"ئج","ﰁ":"ئح","ﰂ":"ئم","ﰃ":"ئى","ﰄ":"ئي","ﰅ":"بج","ﰆ":"بح","ﰇ":"بخ","ﰈ":"بم","ﰉ":"بى","ﰊ":"بي","ﰋ":"تج","ﰌ":"تح","ﰍ":"تخ","ﰎ":"تم","ﰏ":"تى","ﰐ":"تي","ﰑ":"ثج","ﰒ":"ثم","ﰓ":"ثى","ﰔ":"ثي","ﰕ":"جح","ﰖ":"جم","ﰗ":"حج","ﰘ":"حم","ﰙ":"خج","ﰚ":"خح","ﰛ":"خم","ﰜ":"سج","ﰝ":"سح","ﰞ":"سخ","ﰟ":"سم","ﰠ":"صح","ﰡ":"صم","ﰢ":"ضج","ﰣ":"ضح","ﰤ":"ضخ","ﰥ":"ضم","ﰦ":"طح","ﰧ":"طم","ﰨ":"ظم","ﰩ":"عج","ﰪ":"عم","ﰫ":"غج","ﰬ":"غم","ﰭ":"فج","ﰮ":"فح","ﰯ":"فخ","ﰰ":"فم","ﰱ":"فى","ﰲ":"في","ﰳ":"قح","ﰴ":"قم","ﰵ":"قى","ﰶ":"قي","ﰷ":"كا","ﰸ":"كج","ﰹ":"كح","ﰺ":"كخ","ﰻ":"كل","ﰼ":"كم","ﰽ":"كى","ﰾ":"كي","ﰿ":"لج","ﱀ":"لح","ﱁ":"لخ","ﱂ":"لم","ﱃ":"لى","ﱄ":"لي","ﱅ":"مج","ﱆ":"مح","ﱇ":"مخ","ﱈ":"مم","ﱉ":"مى","ﱊ":"مي","ﱋ":"نج","ﱌ":"نح","ﱍ":"نخ","ﱎ":"نم","ﱏ":"نى","ﱐ":"ني","ﱑ":"هج","ﱒ":"هم","ﱓ":"هى","ﱔ":"هي","ﱕ":"يج","ﱖ":"يح","ﱗ":"يخ","ﱘ":"يم","ﱙ":"يى","ﱚ":"يي","ﱛ":"ذٰ","ﱜ":"رٰ","ﱝ":"ىٰ","ﱞ":" ٌّ","ﱟ":" ٍّ","ﱠ":" َّ","ﱡ":" ُّ","ﱢ":" ِّ","ﱣ":" ّٰ","ﱤ":"ئر","ﱥ":"ئز","ﱦ":"ئم","ﱧ":"ئن","ﱨ":"ئى","ﱩ":"ئي","ﱪ":"بر","ﱫ":"بز","ﱬ":"بم","ﱭ":"بن","ﱮ":"بى","ﱯ":"بي","ﱰ":"تر","ﱱ":"تز","ﱲ":"تم","ﱳ":"تن","ﱴ":"تى","ﱵ":"تي","ﱶ":"ثر","ﱷ":"ثز","ﱸ":"ثم","ﱹ":"ثن","ﱺ":"ثى","ﱻ":"ثي","ﱼ":"فى","ﱽ":"في","ﱾ":"قى","ﱿ":"قي","ﲀ":"كا","ﲁ":"كل","ﲂ":"كم","ﲃ":"كى","ﲄ":"كي","ﲅ":"لم","ﲆ":"لى","ﲇ":"لي","ﲈ":"ما","ﲉ":"مم","ﲊ":"نر","ﲋ":"نز","ﲌ":"نم","ﲍ":"نن","ﲎ":"نى","ﲏ":"ني","ﲐ":"ىٰ","ﲑ":"ير","ﲒ":"يز","ﲓ":"يم","ﲔ":"ين","ﲕ":"يى","ﲖ":"يي","ﲗ":"ئج","ﲘ":"ئح","ﲙ":"ئخ","ﲚ":"ئم","ﲛ":"ئه","ﲜ":"بج","ﲝ":"بح","ﲞ":"بخ","ﲟ":"بم","ﲠ":"به","ﲡ":"تج","ﲢ":"تح","ﲣ":"تخ","ﲤ":"تم","ﲥ":"ته","ﲦ":"ثم","ﲧ":"جح","ﲨ":"جم","ﲩ":"حج","ﲪ":"حم","ﲫ":"خج","ﲬ":"خم","ﲭ":"سج","ﲮ":"سح","ﲯ":"سخ","ﲰ":"سم","ﲱ":"صح","ﲲ":"صخ","ﲳ":"صم","ﲴ":"ضج","ﲵ":"ضح","ﲶ":"ضخ","ﲷ":"ضم","ﲸ":"طح","ﲹ":"ظم","ﲺ":"عج","ﲻ":"عم","ﲼ":"غج","ﲽ":"غم","ﲾ":"فج","ﲿ":"فح","ﳀ":"فخ","ﳁ":"فم","ﳂ":"قح","ﳃ":"قم","ﳄ":"كج","ﳅ":"كح","ﳆ":"كخ","ﳇ":"كل","ﳈ":"كم","ﳉ":"لج","ﳊ":"لح","ﳋ":"لخ","ﳌ":"لم","ﳍ":"له","ﳎ":"مج","ﳏ":"مح","ﳐ":"مخ","ﳑ":"مم","ﳒ":"نج","ﳓ":"نح","ﳔ":"نخ","ﳕ":"نم","ﳖ":"نه","ﳗ":"هج","ﳘ":"هم","ﳙ":"هٰ","ﳚ":"يج","ﳛ":"يح","ﳜ":"يخ","ﳝ":"يم","ﳞ":"يه","ﳟ":"ئم","ﳠ":"ئه","ﳡ":"بم","ﳢ":"به","ﳣ":"تم","ﳤ":"ته","ﳥ":"ثم","ﳦ":"ثه","ﳧ":"سم","ﳨ":"سه","ﳩ":"شم","ﳪ":"شه","ﳫ":"كل","ﳬ":"كم","ﳭ":"لم","ﳮ":"نم","ﳯ":"نه","ﳰ":"يم","ﳱ":"يه","ﳲ":"ـَّ","ﳳ":"ـُّ","ﳴ":"ـِّ","ﳵ":"طى","ﳶ":"طي","ﳷ":"عى","ﳸ":"عي","ﳹ":"غى","ﳺ":"غي","ﳻ":"سى","ﳼ":"سي","ﳽ":"شى","ﳾ":"شي","ﳿ":"حى","ﴀ":"حي","ﴁ":"جى","ﴂ":"جي","ﴃ":"خى","ﴄ":"خي","ﴅ":"صى","ﴆ":"صي","ﴇ":"ضى","ﴈ":"ضي","ﴉ":"شج","ﴊ":"شح","ﴋ":"شخ","ﴌ":"شم","ﴍ":"شر","ﴎ":"سر","ﴏ":"صر","ﴐ":"ضر","ﴑ":"طى","ﴒ":"طي","ﴓ":"عى","ﴔ":"عي","ﴕ":"غى","ﴖ":"غي","ﴗ":"سى","ﴘ":"سي","ﴙ":"شى","ﴚ":"شي","ﴛ":"حى","ﴜ":"حي","ﴝ":"جى","ﴞ":"جي","ﴟ":"خى","ﴠ":"خي","ﴡ":"صى","ﴢ":"صي","ﴣ":"ضى","ﴤ":"ضي","ﴥ":"شج","ﴦ":"شح","ﴧ":"شخ","ﴨ":"شم","ﴩ":"شر","ﴪ":"سر","ﴫ":"صر","ﴬ":"ضر","ﴭ":"شج","ﴮ":"شح","ﴯ":"شخ","ﴰ":"شم","ﴱ":"سه","ﴲ":"شه","ﴳ":"طم","ﴴ":"سج","ﴵ":"سح","ﴶ":"سخ","ﴷ":"شج","ﴸ":"شح","ﴹ":"شخ","ﴺ":"طم","ﴻ":"ظم","ﴼ":"اً","ﴽ":"اً","ﵐ":"تجم","ﵑ":"تحج","ﵒ":"تحج","ﵓ":"تحم","ﵔ":"تخم","ﵕ":"تمج","ﵖ":"تمح","ﵗ":"تمخ","ﵘ":"جمح","ﵙ":"جمح","ﵚ":"حمي","ﵛ":"حمى","ﵜ":"سحج","ﵝ":"سجح","ﵞ":"سجى","ﵟ":"سمح","ﵠ":"سمح","ﵡ":"سمج","ﵢ":"سمم","ﵣ":"سمم","ﵤ":"صحح","ﵥ":"صحح","ﵦ":"صمم","ﵧ":"شحم","ﵨ":"شحم","ﵩ":"شجي","ﵪ":"شمخ","ﵫ":"شمخ","ﵬ":"شمم","ﵭ":"شمم","ﵮ":"ضحى","ﵯ":"ضخم","ﵰ":"ضخم","ﵱ":"طمح","ﵲ":"طمح","ﵳ":"طمم","ﵴ":"طمي","ﵵ":"عجم","ﵶ":"عمم","ﵷ":"عمم","ﵸ":"عمى","ﵹ":"غمم","ﵺ":"غمي","ﵻ":"غمى","ﵼ":"فخم","ﵽ":"فخم","ﵾ":"قمح","ﵿ":"قمم","ﶀ":"لحم","ﶁ":"لحي","ﶂ":"لحى","ﶃ":"لجج","ﶄ":"لجج","ﶅ":"لخم","ﶆ":"لخم","ﶇ":"لمح","ﶈ":"لمح","ﶉ":"محج","ﶊ":"محم","ﶋ":"محي","ﶌ":"مجح","ﶍ":"مجم","ﶎ":"مخج","ﶏ":"مخم","ﶒ":"مجخ","ﶓ":"همج","ﶔ":"همم","ﶕ":"نحم","ﶖ":"نحى","ﶗ":"نجم","ﶘ":"نجم","ﶙ":"نجى","ﶚ":"نمي","ﶛ":"نمى","ﶜ":"يمم","ﶝ":"يمم","ﶞ":"بخي","ﶟ":"تجي","ﶠ":"تجى","ﶡ":"تخي","ﶢ":"تخى","ﶣ":"تمي","ﶤ":"تمى","ﶥ":"جمي","ﶦ":"جحى","ﶧ":"جمى","ﶨ":"سخى","ﶩ":"صحي","ﶪ":"شحي","ﶫ":"ضحي","ﶬ":"لجي","ﶭ":"لمي","ﶮ":"يحي","ﶯ":"يجي","ﶰ":"يمي","ﶱ":"ممي","ﶲ":"قمي","ﶳ":"نحي","ﶴ":"قمح","ﶵ":"لحم","ﶶ":"عمي","ﶷ":"كمي","ﶸ":"نجح","ﶹ":"مخي","ﶺ":"لجم","ﶻ":"كمم","ﶼ":"لجم","ﶽ":"نجح","ﶾ":"جحي","ﶿ":"حجي","ﷀ":"مجي","ﷁ":"فمي","ﷂ":"بحي","ﷃ":"كمم","ﷄ":"عجم","ﷅ":"صمم","ﷆ":"سخي","ﷇ":"نجي","﹉":"‾","﹊":"‾","﹋":"‾","﹌":"‾","﹍":"_","﹎":"_","﹏":"_","ﺀ":"ء","ﺁ":"آ","ﺂ":"آ","ﺃ":"أ","ﺄ":"أ","ﺅ":"ؤ","ﺆ":"ؤ","ﺇ":"إ","ﺈ":"إ","ﺉ":"ئ","ﺊ":"ئ","ﺋ":"ئ","ﺌ":"ئ","ﺍ":"ا","ﺎ":"ا","ﺏ":"ب","ﺐ":"ب","ﺑ":"ب","ﺒ":"ب","ﺓ":"ة","ﺔ":"ة","ﺕ":"ت","ﺖ":"ت","ﺗ":"ت","ﺘ":"ت","ﺙ":"ث","ﺚ":"ث","ﺛ":"ث","ﺜ":"ث","ﺝ":"ج","ﺞ":"ج","ﺟ":"ج","ﺠ":"ج","ﺡ":"ح","ﺢ":"ح","ﺣ":"ح","ﺤ":"ح","ﺥ":"خ","ﺦ":"خ","ﺧ":"خ","ﺨ":"خ","ﺩ":"د","ﺪ":"د","ﺫ":"ذ","ﺬ":"ذ","ﺭ":"ر","ﺮ":"ر","ﺯ":"ز","ﺰ":"ز","ﺱ":"س","ﺲ":"س","ﺳ":"س","ﺴ":"س","ﺵ":"ش","ﺶ":"ش","ﺷ":"ش","ﺸ":"ش","ﺹ":"ص","ﺺ":"ص","ﺻ":"ص","ﺼ":"ص","ﺽ":"ض","ﺾ":"ض","ﺿ":"ض","ﻀ":"ض","ﻁ":"ط","ﻂ":"ط","ﻃ":"ط","ﻄ":"ط","ﻅ":"ظ","ﻆ":"ظ","ﻇ":"ظ","ﻈ":"ظ","ﻉ":"ع","ﻊ":"ع","ﻋ":"ع","ﻌ":"ع","ﻍ":"غ","ﻎ":"غ","ﻏ":"غ","ﻐ":"غ","ﻑ":"ف","ﻒ":"ف","ﻓ":"ف","ﻔ":"ف","ﻕ":"ق","ﻖ":"ق","ﻗ":"ق","ﻘ":"ق","ﻙ":"ك","ﻚ":"ك","ﻛ":"ك","ﻜ":"ك","ﻝ":"ل","ﻞ":"ل","ﻟ":"ل","ﻠ":"ل","ﻡ":"م","ﻢ":"م","ﻣ":"م","ﻤ":"م","ﻥ":"ن","ﻦ":"ن","ﻧ":"ن","ﻨ":"ن","ﻩ":"ه","ﻪ":"ه","ﻫ":"ه","ﻬ":"ه","ﻭ":"و","ﻮ":"و","ﻯ":"ى","ﻰ":"ى","ﻱ":"ي","ﻲ":"ي","ﻳ":"ي","ﻴ":"ي","ﻵ":"لآ","ﻶ":"لآ","ﻷ":"لأ","ﻸ":"لأ","ﻹ":"لإ","ﻺ":"لإ","ﻻ":"لا","ﻼ":"لا"},$b=function(){function a(a,b,c,d,e,f){this.fontChar=a,this.unicode=b,this.accent=c,this.width=d,this.vmetric=e,this.operatorListId=f}return a.prototype.matchesForCache=function(a,b,c,d,e,f){return this.fontChar===a&&this.unicode===b&&this.accent===c&&this.width===d&&this.vmetric===e&&this.operatorListId===f},a}(),_b=function(){function a(a){this._map=a}return a.prototype={get length(){return this._map.length},forEach:function(a){for(var b in this._map)a(b,this._map[b].charCodeAt(0))},has:function(a){return void 0!==this._map[a]},get:function(a){return this._map[a]},charCodeOf:function(a){return this._map.indexOf(a)}},a}(),ac=function(){function a(a,b){this.firstChar=a,this.lastChar=b}return a.prototype={get length(){return this.lastChar+1-this.firstChar},forEach:function(a){for(var b=this.firstChar,c=this.lastChar;c>=b;b++)a(b,b)},has:function(a){return this.firstChar<=a&&a<=this.lastChar},get:function(a){return this.firstChar<=a&&a<=this.lastChar?String.fromCharCode(a):void 0},charCodeOf:function(a){c("should not call .charCodeOf")}},a}(),bc=function(){function a(a,b,c){a[b]=c>>8&255,a[b+1]=255&c}function b(a,b,c){a[b]=c>>24&255,a[b+1]=c>>16&255,a[b+2]=c>>8&255,a[b+3]=255&c}function c(a,b,c){var d,e;if(c instanceof Uint8Array)a.set(c,b);else if("string"==typeof c)for(d=0,e=c.length;e>d;d++)a[b++]=255&c.charCodeAt(d);else for(d=0,e=c.length;e>d;d++)a[b++]=255&c[d]}function d(a){this.sfnt=a,this.tables=Object.create(null)}d.getSearchParams=function(a,b){for(var c=1,d=0;(c^a)>c;)c<<=1,d++;var e=c*b;return{range:e,entry:d,rangeShift:b*a-e}};var e=12,f=16;return d.prototype={toArray:function(){var g=this.sfnt,h=this.tables,i=Object.keys(h);i.sort();var j,l,m,n,o,p=i.length,q=e+p*f,r=[q];for(j=0;p>j;j++){n=h[i[j]];var s=(n.length+3&-4)>>>0;q+=s,r.push(q)}var t=new Uint8Array(q);for(j=0;p>j;j++)n=h[i[j]],c(t,r[j],n);"true"===g&&(g=k(65536)),t[0]=255&g.charCodeAt(0),t[1]=255&g.charCodeAt(1),t[2]=255&g.charCodeAt(2),t[3]=255&g.charCodeAt(3),a(t,4,p);var u=d.getSearchParams(p,16);for(a(t,6,u.range),a(t,8,u.entry),a(t,10,u.rangeShift),q=e,j=0;p>j;j++){o=i[j],t[q]=255&o.charCodeAt(0),t[q+1]=255&o.charCodeAt(1),t[q+2]=255&o.charCodeAt(2),t[q+3]=255&o.charCodeAt(3);var v=0;for(l=r[j],m=r[j+1];m>l;l+=4){var w=(t[l]<<24)+(t[l+1]<<16)+(t[l+2]<<8)+t[l+3];v=v+w|0}b(t,q+4,v),b(t,q+8,r[j]),b(t,q+12,h[o].length),q+=f}return t},addTable:function(a,b){if(a in this.tables)throw new Error("Table "+a+" already exists");this.tables[a]=b}},d}(),cc=new Int32Array([0,32,127,161,173,174,1536,1920,2208,4256,6016,6144,8192,8208,8209,8210,8232,8240,8287,8304,9676,9677,43616,43648,65520,65536]),dc=function(){function d(d,e,f){var g,h,i;this.name=d,this.loadedName=f.loadedName,this.isType3Font=f.isType3Font,this.sizes=[],this.glyphCache={};var j=d.split("+");j=j.length>1?j[1]:j[0],j=j.split(/[-,_]/g)[0],this.isSerifFont=!!(f.flags&Ob.Serif),this.isSymbolicFont=!!(f.flags&Ob.Symbolic),this.isMonospace=!!(f.flags&Ob.FixedPitch);var k=f.type,l=f.subtype;if(this.type=k,this.fallbackName=this.isMonospace?"monospace":this.isSerifFont?"serif":"sans-serif",this.differences=f.differences,this.widths=f.widths,this.defaultWidth=f.defaultWidth,this.composite=f.composite,this.wideChars=f.wideChars,this.cMap=f.cMap,this.ascent=f.ascent/Lb,this.descent=f.descent/Lb,this.fontMatrix=f.fontMatrix,this.bbox=f.bbox,this.toUnicode=f.toUnicode=this.buildToUnicode(f),this.toFontChar=[],"Type3"===f.type){for(g=0;256>g;g++)this.toFontChar[g]=this.differences[g]||f.defaultEncoding[g];return void(this.fontType=Z.TYPE3)}if(this.cidEncoding=f.cidEncoding,this.vertical=f.vertical,this.vertical&&(this.vmetrics=f.vmetrics,this.defaultVMetrics=f.defaultVMetrics),!e||e.isEmpty){e&&b('Font file is empty in "'+d+'" ('+this.loadedName+")"),this.missingFile=!0;var o=d.replace(/[,_]/g,"-"),p=!!Qb[o]||!(!Rb[o]||!Qb[Rb[o]]);if(o=Qb[o]||Rb[o]||o,this.bold=-1!==o.search(/bold/gi),this.italic=-1!==o.search(/oblique/gi)||-1!==o.search(/italic/gi),this.black=-1!==d.search(/Black/g),this.remeasure=Object.keys(this.widths).length>0,p&&"CIDFontType2"===k&&0===f.cidEncoding.indexOf("Identity-")){var q=[];for(g in Ub)q[+g]=Ub[g];if(/ArialBlack/i.test(d))for(g in Vb)q[+g]=Vb[g];var r=this.toUnicode instanceof ac;r||this.toUnicode.forEach(function(a,b){q[+a]=b}),this.toFontChar=q,this.toUnicode=new _b(q)}else if(/Symbol/i.test(o)){var s=Pb.SymbolSetEncoding;for(g in s)i=zc[s[g]],i&&(this.toFontChar[g]=i);for(g in f.differences)i=zc[f.differences[g]],i&&(this.toFontChar[g]=i)}else if(/Dingbats/i.test(o)){/Wingdings/i.test(d)&&b("Wingdings font without embedded font file, falling back to the ZapfDingbats encoding.");var t=Pb.ZapfDingbatsEncoding;for(g in t)i=Ac[t[g]],i&&(this.toFontChar[g]=i);
+for(g in f.differences)i=Ac[f.differences[g]],i&&(this.toFontChar[g]=i)}else if(p){this.toFontChar=[];for(g in f.defaultEncoding)h=f.differences[g]||f.defaultEncoding[g],this.toFontChar[g]=zc[h]}else{var u=-1===k.indexOf("CIDFontType");this.toUnicode.forEach(function(a,b){u&&(h=f.differences[a]||f.defaultEncoding[a],b=zc[h]||b),this.toFontChar[a]=b}.bind(this))}return this.loadedName=o.split("-")[0],this.loading=!1,void(this.fontType=P(k,l))}"Type1C"===l&&"Type1"!==k&&"MMType1"!==k&&(m(e)?l="TrueType":k="Type1"),"CIDFontType0C"===l&&"CIDFontType0"!==k&&(k="CIDFontType0"),"OpenType"===l&&(k="OpenType"),"CIDFontType0"===k&&(l=n(e)?"CIDFontType0":"CIDFontType0C");var v;switch(k){case"MMType1":a("MMType1 font ("+d+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";var w="Type1C"===l||"CIDFontType0C"===l?new jc(e,f):new ic(d,e,f);O(f),v=this.convert(d,w,f);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype",v=this.checkAndRepair(d,e,f),this.isOpenType&&(k="OpenType");break;default:c("Font "+k+" is not supported")}this.data=v,this.fontType=P(k,l),this.fontMatrix=f.fontMatrix,this.widths=f.widths,this.defaultWidth=f.defaultWidth,this.encoding=f.baseEncoding,this.seacMap=f.seacMap,this.loading=!0}function f(a,b){return(a<<8)+b}function h(a,b,c,d){return(a<<24)+(b<<16)+(c<<8)+d}function j(a){return String.fromCharCode(a>>8&255,255&a)}function l(a){return a=a>32767?32767:-32768>a?-32768:a,String.fromCharCode(a>>8&255,255&a)}function m(a){var b=a.peekBytes(4);return 65536===o(b,0)}function n(a){var b=a.peekBytes(2);return 37===b[0]&&33===b[1]?!0:128===b[0]&&1===b[1]}function p(a){for(var b=0,c=cc.length-1;c>b;){var d=b+c+1>>1;a<cc[d]?c=d-1:b=d}return!(1&b)}function q(a,b){var c=b.toUnicode,d=!!(b.flags&Ob.Symbolic),e=b.toUnicode instanceof ac,f=Object.create(null),g=[],h=[],i=Ib;for(var j in a){j|=0;var k=a[j],l=j;if(!e&&c.has(j)){var m=c.get(l);1===m.length&&(l=m.charCodeAt(0))}if((void 0!==h[l]||p(l)||d&&e)&&Jb>=i)do l=i++,Kb&&61440===l&&(l=61472,i=l+1);while(void 0!==h[l]&&Jb>=i);f[l]=k,g[j]=l,h[l]=!0}return{toFontChar:g,charCodeToGlyphId:f,nextAvailableFontCharCode:i}}function r(a){var b=[];for(var c in a)b.push({fontCharCode:0|c,glyphId:a[c]});b.sort(function(a,b){return a.fontCharCode-b.fontCharCode});for(var d=[],e=b.length,f=0;e>f;){var g=b[f].fontCharCode,h=[b[f].glyphId];++f;for(var i=g;e>f&&i+1===b[f].fontCharCode&&(h.push(b[f].glyphId),++i,++f,65535!==i););d.push([g,i,h])}return d}function s(a){var b,c,d,e,f=r(a),g=f[f.length-1][1]>65535?2:1,h="\x00\x00"+j(g)+"\x00\ 3\x00\ 1"+k(4+8*g);for(b=f.length-1;b>=0&&!(f[b][0]<=65535);--b);var i=b+1;f[b][0]<65535&&65535===f[b][1]&&(f[b][1]=65534);var l,m,n,o,p=f[b][1]<65535?1:0,q=i+p,s=bc.getSearchParams(q,2),t="",u="",v="",w="",x="",y=0;for(b=0,c=i;c>b;b++){l=f[b],m=l[0],n=l[1],t+=j(m),u+=j(n),o=l[2];var z=!0;for(d=1,e=o.length;e>d;++d)if(o[d]!==o[d-1]+1){z=!1;break}if(z){var A=o[0];v+=j(A-m&65535),w+=j(0)}else{var B=2*(q-b)+2*y;for(y+=n-m+1,v+=j(0),w+=j(B),d=0,e=o.length;e>d;++d)x+=j(o[d])}}p>0&&(u+="ÿÿ",t+="ÿÿ",v+="\x00\ 1",w+="\x00\x00");var C="\x00\x00"+j(2*q)+j(s.range)+j(s.entry)+j(s.rangeShift)+u+"\x00\x00"+t+v+w+x,D="",E="";if(g>1){for(h+="\x00\ 3\x00\n"+k(4+8*g+4+C.length),D="",b=0,c=f.length;c>b;b++){l=f[b],m=l[0],o=l[2];var F=o[0];for(d=1,e=o.length;e>d;++d)o[d]!==o[d-1]+1&&(n=l[0]+d-1,D+=k(m)+k(n)+k(F),m=n+1,F=o[d]);D+=k(m)+k(l[1])+k(F)}E="\x00\f\x00\x00"+k(D.length+16)+"\x00\x00\x00\x00"+k(D.length/12)}return h+"\x00\ 4"+j(C.length+4)+C+E+D}function t(a){var b=new Mc(a.data),c=b.getUint16();b.getBytes(60);var d=b.getUint16();if(4>c&&768&d)return!1;var e=b.getUint16(),f=b.getUint16();if(e>f)return!1;b.getBytes(6);var g=b.getUint16();return 0===g?!1:(a.data[8]=a.data[9]=0,!0)}function u(a,b,d){d=d||{unitsPerEm:0,yMax:0,yMin:0,ascent:0,descent:0};var e=0,f=0,g=0,h=0,i=null,l=0;if(b)for(var m in b){m|=0,(i>m||!i)&&(i=m),m>l&&(l=m);var n=L(m);32>n?e|=1<<n:64>n?f|=1<<n-32:96>n?g|=1<<n-64:123>n?h|=1<<n-96:c("Unicode ranges Bits > 123 are reserved for internal usage")}else i=0,l=255;var o=a.bbox||[0,0,0,0],p=d.unitsPerEm||1/(a.fontMatrix||T)[0],q=a.ascentScaled?1:p/Lb,r=d.ascent||Math.round(q*(a.ascent||o[3])),s=d.descent||Math.round(q*(a.descent||o[1]));s>0&&a.descent>0&&o[1]<0&&(s=-s);var t=d.yMax||r,u=-d.yMin||-s;return"\x00\ 3\ 2$\ 1ô\x00\ 5\x00\x00\ 2\8a\ 2»\x00\x00\x00\8c\ 2\8a\ 2»\x00\x00\ 1ß\x001\ 1\ 2\x00\x00\x00\x00\ 6"+String.fromCharCode(a.fixedPitch?9:0)+"\x00\x00\x00\x00\x00\x00"+k(e)+k(f)+k(g)+k(h)+"*21*"+j(a.italicAngle?1:0)+j(i||a.firstChar)+j(l||a.lastChar)+j(r)+j(s)+"\x00d"+j(t)+j(u)+"\x00\x00\x00\x00\x00\x00\x00\x00"+j(a.xHeight)+j(a.capHeight)+j(0)+j(i||a.firstChar)+"\x00\ 3"}function v(a){var b=Math.floor(a.italicAngle*Math.pow(2,16));return"\x00\ 3\x00\x00"+k(b)+"\x00\x00\x00\x00"+k(a.fixedPitch)+"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"}function w(a,b){b||(b=[[],[]]);var c,d,e,f,g,h=[b[0][0]||"Original licence",b[0][1]||a,b[0][2]||"Unknown",b[0][3]||"uniqueID",b[0][4]||a,b[0][5]||"Version 0.11",b[0][6]||"",b[0][7]||"Unknown",b[0][8]||"Unknown",b[0][9]||"Unknown"],i=[];for(c=0,d=h.length;d>c;c++){g=b[1][c]||h[c];var k=[];for(e=0,f=g.length;f>e;e++)k.push(j(g.charCodeAt(e)));i.push(k.join(""))}var l=[h,i],m=["\x00\ 1","\x00\ 3"],n=["\x00\x00","\x00\ 1"],o=["\x00\x00","\ 4 "],p=h.length*m.length,q="\x00\x00"+j(p)+j(12*p+6),r=0;for(c=0,d=m.length;d>c;c++){var s=l[c];for(e=0,f=s.length;f>e;e++){g=s[e];var t=m[c]+n[c]+o[c]+j(e)+j(g.length)+j(r);q+=t,r+=g.length}}return q+=h.join("")+i.join("")}return d.getFontID=function(){var a=1;return function(){return String(a++)}}(),d.prototype={name:null,font:null,mimetype:null,encoding:null,get renderer(){var a=yc.create(this);return g(this,"renderer",a)},exportData:function(){var a={};for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},checkAndRepair:function(d,g,j){function k(a){var b=i(a.getBytes(4)),c=a.getInt32(),d=a.getInt32()>>>0,e=a.getInt32()>>>0,f=a.pos;a.pos=a.start?a.start:0,a.skip(d);var g=a.getBytes(e);return a.pos=f,"head"===b&&(g[8]=g[9]=g[10]=g[11]=0,g[17]|=32),{tag:b,checksum:c,length:e,offset:d,data:g}}function l(a){return{version:i(a.getBytes(4)),numTables:a.getUint16(),searchRange:a.getUint16(),entrySelector:a.getUint16(),rangeShift:a.getUint16()}}function m(a,c,d,e){var f,g=(c.start?c.start:0)+a.offset;c.pos=g;for(var h,i=(c.getUint16(),c.getUint16()),j=!1,k=0;i>k;k++){var l=c.getUint16(),m=c.getUint16(),n=c.getInt32()>>>0,o=!1;if(0===l&&0===m?o=!0:1===l&&0===m?o=!0:3!==l||1!==m||(d||!e)&&h?d&&3===l&&0===m&&(o=!0,j=!0):(o=!0,d||(j=!0)),o&&(h={platformId:l,encodingId:m,offset:n}),j)break}if(h&&(c.pos=g+h.offset),!h||-1===c.peekByte())return b("Could not find a preferred cmap table."),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};var p,q,r=c.getUint16(),s=(c.getUint16(),c.getUint16(),!1),t=[];if(0===r){for(p=0;256>p;p++){var u=c.getByte();u&&t.push({charCode:p,glyphId:u})}s=!0}else if(4===r){var v=c.getUint16()>>1;c.getBytes(6);var w,x=[];for(w=0;v>w;w++)x.push({end:c.getUint16()});for(c.getUint16(),w=0;v>w;w++)x[w].start=c.getUint16();for(w=0;v>w;w++)x[w].delta=c.getUint16();var y=0;for(w=0;v>w;w++){f=x[w];var z=c.getUint16();if(z){var A=(z>>1)-(v-w);f.offsetIndex=A,y=Math.max(y,A+f.end-f.start+1)}else f.offsetIndex=-1}var B=[];for(p=0;y>p;p++)B.push(c.getUint16());for(w=0;v>w;w++){f=x[w],g=f.start;var C=f.end,D=f.delta;for(A=f.offsetIndex,p=g;C>=p;p++)65535!==p&&(q=0>A?p:B[A+p-g],q=q+D&65535,0!==q&&t.push({charCode:p,glyphId:q}))}}else{if(6!==r)return b("cmap table has unsupported format: "+r),{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1};var E=c.getUint16(),F=c.getUint16();for(p=0;F>p;p++){q=c.getUint16();var G=E+p;t.push({charCode:G,glyphId:q})}}for(t.sort(function(a,b){return a.charCode-b.charCode}),k=1;k<t.length;k++)t[k-1].charCode===t[k].charCode&&(t.splice(k,1),k--);return{platformId:h.platformId,encodingId:h.encodingId,mappings:t,hasShortCmap:s}}function n(b,c,d,e){if(!c)return void(d&&(d.data=null));b.pos=(b.start?b.start:0)+c.offset,b.pos+=c.length-2;var f=b.getUint16();f>e&&(a("The numOfMetrics ("+f+") should not be greater than the numGlyphs ("+e+")"),f=e,c.data[34]=(65280&f)>>8,c.data[35]=255&f);var g=e-f,h=g-(d.length-4*f>>1);if(h>0){var i=new Uint8Array(d.length+2*h);i.set(d.data),d.data=i}}function o(a,b,c,d,e,f){if(12>=c-b)return 0;var g=a.subarray(b,c),h=g[0]<<8|g[1];if(32768&h)return d.set(g,e),g.length;var i,j=10,k=0;for(i=0;h>i;i++){var l=g[j]<<8|g[j+1];k=l+1,j+=2}var m=j,n=g[j]<<8|g[j+1];j+=2+n;var o=j,p=0;for(i=0;k>i;i++){var q=g[j++];192&q&&(g[j-1]=63&q);var r=(2&q?1:16&q?0:2)+(4&q?1:32&q?0:2);if(p+=r,8&q){var s=g[j++];i+=s,p+=s*r}}if(0===p)return 0;var t=j+p;return t>g.length?0:!f&&n>0?(d.set(g.subarray(0,m),e),d.set([0,0],e+m),d.set(g.subarray(o,t),e+m+2),t-=n,g.length-t>3&&(t=t+3&-4),t):g.length-t>3?(t=t+3&-4,d.set(g.subarray(0,t),e),t):(d.set(g,e),g.length)}function p(c,d,e){var g=c.data,i=h(g[0],g[1],g[2],g[3]);i>>16!==1&&(a("Attempting to fix invalid version in head table: "+i),g[0]=0,g[1]=1,g[2]=0,g[3]=0);var j=f(g[50],g[51]);if(0>j||j>1){a("Attempting to fix invalid indexToLocFormat in head table: "+j);var k=d+1;e===k<<1?(g[50]=0,g[51]=0):e===k<<2?(g[50]=0,g[51]=1):b("Could not fix indexToLocFormat: "+j)}}function r(a,b,c,d,e,f){var g,h,i;d?(g=4,h=function(a,b){return a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3]},i=function(a,b,c){a[b]=c>>>24&255,a[b+1]=c>>16&255,a[b+2]=c>>8&255,a[b+3]=255&c}):(g=2,h=function(a,b){return a[b]<<9|a[b+1]<<1},i=function(a,b,c){a[b]=c>>9&255,a[b+1]=c>>1&255});var j=a.data,k=g*(1+c);j.length!==k&&(j=new Uint8Array(k),j.set(a.data.subarray(0,k)),a.data=j);var l=b.data,m=l.length,n=new Uint8Array(m),p=h(j,0),q=0,r={};i(j,0,q);var s,t;for(s=0,t=g;c>s;s++,t+=g){var u=h(j,t);if(u>m&&(m+3&-4)===u&&(u=m),u>m)i(j,t,q),p=u;else{p===u&&(r[s]=!0);var v=o(l,p,u,n,q,e);q+=v,i(j,t,q),p=u}}if(0===q){var w=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(s=0,t=g;c>s;s++,t+=g)i(j,t,w.length);return b.data=w,r}if(f){var x=h(j,g);n.length>x+q?b.data=n.subarray(0,x+q):(b.data=new Uint8Array(x+q),b.data.set(n.subarray(0,q))),b.data.set(n.subarray(0,x),q),i(a.data,j.length-g,q+x)}else b.data=n.subarray(0,q);return r}function y(a,c,d){var e=(g.start?g.start:0)+a.offset;g.pos=e;var f=a.length,h=e+f,i=g.getInt32();g.getBytes(28);var j,k,l=!0;switch(i){case 65536:j=Yb;break;case 131072:var m=g.getUint16();if(m!==d){l=!1;break}var n=[];for(k=0;m>k;++k){var o=g.getUint16();if(o>=32768){l=!1;break}n.push(o)}if(!l)break;for(var p=[],q=[];g.pos<h;){var r=g.getByte();for(q.length=r,k=0;r>k;++k)q[k]=String.fromCharCode(g.getByte());p.push(q.join(""))}for(j=[],k=0;m>k;++k){var s=n[k];258>s?j.push(Yb[s]):j.push(p[s-258])}break;case 196608:break;default:b("Unknown/unsupported post table version "+i),l=!1,c.defaultEncoding&&(j=c.defaultEncoding)}return c.glyphNames=j,l}function z(a){var b=(g.start?g.start:0)+a.offset;g.pos=b;var c=[[],[]],d=a.length,e=b+d,f=g.getUint16(),h=6;if(0!==f||h>d)return c;var j,k,l=g.getUint16(),m=g.getUint16(),n=[],o=12;for(j=0;l>j&&g.pos+o<=e;j++){var p={platform:g.getUint16(),encoding:g.getUint16(),language:g.getUint16(),name:g.getUint16(),length:g.getUint16(),offset:g.getUint16()};(1===p.platform&&0===p.encoding&&0===p.language||3===p.platform&&1===p.encoding&&1033===p.language)&&n.push(p)}for(j=0,k=n.length;k>j;j++){var q=n[j],r=b+m+q.offset;if(!(r+q.length>e)){g.pos=r;var s=q.name;if(q.encoding){for(var t="",u=0,v=q.length;v>u;u+=2)t+=String.fromCharCode(g.getUint16());c[1][s]=t}else c[0][s]=i(g.getBytes(q.length))}}return c}function A(a,c){for(var d,e,f,g,h,i=a.data,j=0,k=0,l=0,m=[],n=[],o=[],p=c.tooComplexToFollowFunctions,q=!1,r=0,s=0,t=i.length;t>j;){var u=i[j++];if(64===u)if(e=i[j++],q||s)j+=e;else for(d=0;e>d;d++)m.push(i[j++]);else if(65===u)if(e=i[j++],q||s)j+=2*e;else for(d=0;e>d;d++)f=i[j++],m.push(f<<8|i[j++]);else if(176===(248&u))if(e=u-176+1,q||s)j+=e;else for(d=0;e>d;d++)m.push(i[j++]);else if(184===(248&u))if(e=u-184+1,q||s)j+=2*e;else for(d=0;e>d;d++)f=i[j++],m.push(f<<8|i[j++]);else if(43!==u||p)if(44!==u||p){if(45===u)if(q)q=!1,k=j;else{if(h=n.pop(),!h)return b("TT: ENDF bad stack"),void(c.hintsValid=!1);g=o.pop(),i=h.data,j=h.i,c.functionsStackDeltas[g]=m.length-h.stackTop}else if(137===u)(q||s)&&(b("TT: nested IDEFs not allowed"),p=!0),q=!0,l=j;else if(88===u)++r;else if(27===u)s=r;else if(89===u)s===r&&(s=0),--r;else if(28===u&&!q&&!s){var v=m[m.length-1];v>0&&(j+=v-1)}}else(q||s)&&(b("TT: nested FDEFs not allowed"),p=!0),q=!0,l=j,g=m.pop(),c.functionsDefined[g]={data:i,i:j};else if(!q&&!s)if(g=m[m.length-1],c.functionsUsed[g]=!0,g in c.functionsStackDeltas)m.length+=c.functionsStackDeltas[g];else if(g in c.functionsDefined&&o.indexOf(g)<0){if(n.push({data:i,i:j,stackTop:m.length-1}),o.push(g),h=c.functionsDefined[g],!h)return b("TT: CALL non-existent function"),void(c.hintsValid=!1);i=h.data,j=h.i}if(!q&&!s){var w=142>=u?F[u]:u>=192&&223>=u?-1:u>=224?-2:0;for(u>=113&&117>=u&&(e=m.pop(),e===e&&(w=2*-e));0>w&&m.length>0;)m.pop(),w++;for(;w>0;)m.push(NaN),w--}}c.tooComplexToFollowFunctions=p;var x=[i];j>i.length&&x.push(new Uint8Array(j-i.length)),l>k&&(b("TT: complementing a missing function tail"),x.push(new Uint8Array([34,45]))),C(a,x)}function B(a,c){if(!a.tooComplexToFollowFunctions){if(a.functionsDefined.length>c)return b("TT: more functions defined than expected"),void(a.hintsValid=!1);for(var d=0,e=a.functionsUsed.length;e>d;d++){if(d>c)return b("TT: invalid function id: "+d),void(a.hintsValid=!1);if(a.functionsUsed[d]&&!a.functionsDefined[d])return b("TT: undefined function: "+d),void(a.hintsValid=!1)}}}function C(a,b){if(b.length>1){var c,d,e=0;for(c=0,d=b.length;d>c;c++)e+=b[c].length;e=e+3&-4;var f=new Uint8Array(e),g=0;for(c=0,d=b.length;d>c;c++)f.set(b[c],g),g+=b[c].length;a.data=f,a.length=e}}function D(a,b,c){var d={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};if(a&&A(a,d),b&&A(b,d),a&&B(d,R),c&&1&c.length){var e=new Uint8Array(c.length+1);e.set(c.data),c.data=e}return d.hintsValid}function E(a,b,c){return V[a]?!aa&&b>=0&&$.has(b)?!0:!!(_&&c>=0&&x(_[c])):!0}var F=[0,0,0,0,0,0,0,0,-2,-2,-2,-2,0,0,-2,-5,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,-1,-1,1,-1,-999,0,1,0,-1,-2,0,-1,-2,-1,-1,0,-1,-1,0,0,-999,-999,-1,-1,-1,-1,-2,-999,-2,-2,-999,0,-2,-2,0,0,-2,0,-2,0,0,0,-2,-1,-1,1,1,0,0,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,-1,0,-999,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,-2,-999,-999,-999,-999,-999,-1,-1,-2,-2,0,0,0,0,-1,-1,-999,-2,-2,0,0,-1,-2,-2,0,0,0,-1,-1,-1,-2];g=new Mc(new Uint8Array(g.getBytes()));for(var G,H,I,J=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "],K=l(g),L=K.numTables,M={"OS/2":null,cmap:null,head:null,hhea:null,hmtx:null,maxp:null,name:null,post:null},N=0;L>N;N++)I=k(g),J.indexOf(I.tag)<0||0!==I.length&&(M[I.tag]=I);var O=!M["CFF "];if(O)M.glyf&&M.loca||c('Required "glyf" or "loca" tables are not found'),this.isOpenType=!1;else{if("OTTO"===K.version&&"CIDFontType2"!==j.type||!M.head||!M.hhea||!M.maxp||!M.post)return H=new Mc(M["CFF "].data),G=new jc(H,j),this.convert(d,G,j);delete M.glyf,delete M.loca,delete M.fpgm,delete M.prep,delete M["cvt "],this.isOpenType=!0}M.maxp||c('Required "maxp" table is not found'),g.pos=(g.start||0)+M.maxp.offset;var P=g.getInt32(),Q=g.getUint16(),R=0;if(P>=65536&&M.maxp.length>=22){g.pos+=8;var S=g.getUint16();S>2&&(M.maxp.data[14]=0,M.maxp.data[15]=2),g.pos+=4,R=g.getUint16()}var T=!1;"CIDFontType2"===j.type&&j.toUnicode&&j.toUnicode.get(0)>"\x00"&&(T=!0,Q++,M.maxp.data[4]=Q>>8,M.maxp.data[5]=255&Q);var U=D(M.fpgm,M.prep,M["cvt "],R);U||(delete M.fpgm,delete M.prep,delete M["cvt "]),n(g,M.hhea,M.hmtx,Q),M.head||c('Required "head" table is not found'),p(M.head,Q,O?M.loca.length:0);var V={};if(O){var W=f(M.head.data[50],M.head.data[51]);V=r(M.loca,M.glyf,Q,W,U,T)}if(M.hhea||c('Required "hhea" table is not found'),0===M.hhea.data[10]&&0===M.hhea.data[11]&&(M.hhea.data[10]=255,M.hhea.data[11]=255),M.post){var X=y(M.post,j,Q);X||(M.post=null)}var Y,Z=[],$=j.toUnicode,_=j.widths,aa=$ instanceof ac||65536===$.length;if("CIDFontType2"===j.type){var ba=j.cidToGidMap||[],ca=0===ba.length;j.cMap.forEach(function(a,b){e(65535>=b,"Max size of CID is 65,535");var c=-1;ca?c=a:void 0!==ba[b]&&(c=ba[b]),c>=0&&Q>c&&E(c,a,b)&&(Z[a]=c)}),T&&(Z[0]=Q-1)}else{var da=j.differences.length>0||!!j.baseEncodingName,ea=m(M.cmap,g,this.isSymbolicFont,da),fa=ea.platformId,ga=ea.encodingId,ha=ea.mappings,ia=ha.length;if(da&&(3===fa&&1===ga||1===fa&&0===ga)||-1===fa&&-1===ga&&Pb[j.baseEncodingName]){var ja=[];for("MacRomanEncoding"!==j.baseEncodingName&&"WinAnsiEncoding"!==j.baseEncodingName||(ja=Pb[j.baseEncodingName]),Y=0;256>Y;Y++){var ka;if(ka=this.differences&&Y in this.differences?this.differences[Y]:Y in ja&&""!==ja[Y]?ja[Y]:Pb.StandardEncoding[Y]){var la,ma=!1;3===fa&&1===ga?(la=zc[ka],ma=!0):1===fa&&0===ga&&(la=Pb.MacRomanEncoding.indexOf(ka));var na=!1;for(N=0;ia>N;++N)if(ha[N].charCode===la){var oa=ma?Y:la;if(E(ha[N].glyphId,oa,-1)){Z[Y]=ha[N].glyphId,na=!0;break}}if(!na&&j.glyphNames){var pa=j.glyphNames.indexOf(ka);pa>0&&E(pa,-1,-1)?Z[Y]=pa:Z[Y]=0}}}}else if(0===fa&&0===ga)for(N=0;ia>N;++N)Z[ha[N].charCode]=ha[N].glyphId;else for(N=0;ia>N;++N)Y=255&ha[N].charCode,Z[Y]=ha[N].glyphId}0===Z.length&&(Z[0]=0);var qa=q(Z,j);if(this.toFontChar=qa.toFontChar,M.cmap={tag:"cmap",data:s(qa.charCodeToGlyphId)},!M["OS/2"]||!t(M["OS/2"])){var ra={unitsPerEm:f(M.head.data[18],M.head.data[19]),yMax:f(M.head.data[42],M.head.data[43]),yMin:f(M.head.data[38],M.head.data[39])-65536,ascent:f(M.hhea.data[4],M.hhea.data[5]),descent:f(M.hhea.data[6],M.hhea.data[7])-65536};M["OS/2"]={tag:"OS/2",data:u(j,qa.charCodeToGlyphId,ra)}}if(M.post||(M.post={tag:"post",data:v(j)}),!O)try{H=new Mc(M["CFF "].data);var sa=new kc(H,j);G=sa.parse();var ta=new xc(G);M["CFF "].data=ta.compile()}catch(ua){b("Failed to compile font "+j.loadedName)}if(M.name){var va=z(M.name);M.name.data=w(d,va)}else M.name={tag:"name",data:w(this.name)};var wa=new bc(K.version);for(var xa in M)wa.addTable(xa,M[xa].data);return wa.toArray()},convert:function(a,b,c){function d(a,b){var c=null;for(var d in a)b===a[d]&&(c||(c=[]),c.push(0|d));return c}function e(a,b){for(var c in a)if(b===a[c])return 0|c;return g.charCodeToGlyphId[g.nextAvailableFontCharCode]=b,g.nextAvailableFontCharCode++}c.fixedPitch=!1;var f=b.getGlyphMapping(c),g=q(f,c);this.toFontChar=g.toFontChar;var h=b.numGlyphs,i=b.seacs;if(Nb&&i&&i.length){var k=c.fontMatrix||T,m=b.getCharset(),n=Object.create(null);for(var o in i){o|=0;var p=i[o],r=Pb.StandardEncoding[p[2]],t=Pb.StandardEncoding[p[3]],x=m.indexOf(r),y=m.indexOf(t);if(!(0>x||0>y)){var z={x:p[0]*k[0]+p[1]*k[2]+k[4],y:p[0]*k[1]+p[1]*k[3]+k[5]},A=d(f,o);if(A)for(var B=0,C=A.length;C>B;B++){var D=A[B],E=g.charCodeToGlyphId,F=e(E,x),G=e(E,y);n[D]={baseFontCharCode:F,accentFontCharCode:G,accentOffset:z}}}}c.seacMap=n}var H=1/(c.fontMatrix||T)[0],I=new bc("OTTO");return I.addTable("CFF ",b.data),I.addTable("OS/2",u(c,g.charCodeToGlyphId)),I.addTable("cmap",s(g.charCodeToGlyphId)),I.addTable("head","\x00\ 1\x00\x00\x00\x00\10\x00\x00\x00\x00\x00_\ f<õ\x00\x00"+l(H)+"\x00\x00\x00\x00\9e\x0B~'\x00\x00\x00\x00\9e\x0B~'\x00\x00"+l(c.descent)+"\ fÿ"+l(c.ascent)+j(c.italicAngle?2:0)+"\x00\11\x00\x00\x00\x00\x00\x00"),I.addTable("hhea","\x00\ 1\x00\x00"+l(c.ascent)+l(c.descent)+"\x00\x00ÿÿ\x00\x00\x00\x00\x00\x00"+l(c.capHeight)+l(Math.tan(c.italicAngle)*c.xHeight)+"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"+j(h)),I.addTable("hmtx",function(){for(var a=b.charstrings,c=b.cff?b.cff.widths:null,d="\x00\x00\x00\x00",e=1,f=h;f>e;e++){var g=0;if(a){var i=a[e-1];g="width"in i?i.width:0}else c&&(g=Math.ceil(c[e]||0));d+=j(g)+j(0)}return d}()),I.addTable("maxp","\x00\x00P\x00"+j(h)),I.addTable("name",w(a)),I.addTable("post",v(c)),I.toArray()},buildToUnicode:function(a){if(a.toUnicode&&0!==a.toUnicode.length)return a.toUnicode;var b,c;if(!a.composite){b=[];var d=a.defaultEncoding.slice(),f=a.baseEncodingName,g=a.differences;for(c in g)d[c]=g[c];for(c in d){var h=d[c];if(""!==h)if(void 0!==zc[h])b[c]=String.fromCharCode(zc[h]);else{var i=0;switch(h[0]){case"G":3===h.length&&(i=parseInt(h.substr(1),16));break;case"g":5===h.length&&(i=parseInt(h.substr(1),16));break;case"C":case"c":h.length>=3&&(i=+h.substr(1))}if(i){if(f&&i===+c){var j=Pb[f];if(j&&(h=j[c])){b[c]=String.fromCharCode(zc[h]);continue}}b[c]=String.fromCharCode(i)}}}return new _b(b)}if(a.composite&&(a.cMap.builtInCMap&&!(a.cMap instanceof Fb)||"Adobe"===a.cidSystemInfo.registry&&("GB1"===a.cidSystemInfo.ordering||"CNS1"===a.cidSystemInfo.ordering||"Japan1"===a.cidSystemInfo.ordering||"Korea1"===a.cidSystemInfo.ordering))){var k=a.cidSystemInfo.registry,l=a.cidSystemInfo.ordering,m=new ya(k+"-"+l+"-UCS2"),n=Hb.create(m,{url:PDFJS.cMapUrl,packed:PDFJS.cMapPacked},null),o=a.cMap;return b=[],o.forEach(function(a,c){e(65535>=c,"Max size of CID is 65,535");var d=n.lookup(c);d&&(b[a]=String.fromCharCode((d.charCodeAt(0)<<8)+d.charCodeAt(1)))}),new _b(b)}return new ac(a.firstChar,a.lastChar)},get spaceWidth(){if("_shadowWidth"in this)return this._shadowWidth;for(var a,b=["space","minus","one","i"],c=0,d=b.length;d>c;c++){var e=b[c];if(e in this.widths){a=this.widths[e];break}var f=zc[e],g=0;if(this.composite&&this.cMap.contains(f)&&(g=this.cMap.lookup(f)),!g&&"toUnicode"in this&&(g=this.toUnicode.charCodeOf(f)),0>=g&&(g=f),a=this.widths[g])break}return a=a||this.defaultWidth,this._shadowWidth=a,a},charToGlyph:function(a){var b,c,d,e=a;this.cMap&&this.cMap.contains(a)&&(e=this.cMap.lookup(a)),c=this.widths[e],c=x(c)?c:this.defaultWidth;var f=this.vmetrics&&this.vmetrics[e],g=this.toUnicode.get(a)||a;"number"==typeof g&&(g=String.fromCharCode(g)),b=this.toFontChar[a]||a,this.missingFile&&(b=K(b)),this.isType3Font&&(d=b);var h=null;if(this.seacMap&&this.seacMap[a]){var i=this.seacMap[a];b=i.baseFontCharCode,h={fontChar:String.fromCharCode(i.accentFontCharCode),offset:i.accentOffset}}var j=String.fromCharCode(b),k=this.glyphCache[a];return k&&k.matchesForCache(j,g,h,c,f,d)||(k=new $b(j,g,h,c,f,d),this.glyphCache[a]=k),k},charsToGlyphs:function(a){var b,c,d,e=this.charsCache;if(e&&(b=e[a]))return b;e||(e=this.charsCache=Object.create(null)),b=[];var f,g=a,h=0;if(this.cMap)for(var i={};h<a.length;){this.cMap.readCharCode(a,h,i),d=i.charcode;var j=i.length;h+=j,c=this.charToGlyph(d),b.push(c),1===j&&32===a.charCodeAt(h-1)&&b.push(null)}else for(h=0,f=a.length;f>h;++h)d=a.charCodeAt(h),c=this.charToGlyph(d),b.push(c),32===d&&b.push(null);return e[g]=b}},d}(),ec=function(){function a(a){this.error=a,this.loadedName="g_font_error",this.loading=!1}return a.prototype={charsToGlyphs:function(){return[]},exportData:function(){return{error:this.error}}},a}(),fc=function(){function a(){this.width=0,this.lsb=0,this.flexing=!1,this.output=[],this.stack=[]}var c={hstem:[1],vstem:[3],vmoveto:[4],rlineto:[5],hlineto:[6],vlineto:[7],rrcurveto:[8],callsubr:[10],flex:[12,35],drop:[12,18],endchar:[14],rmoveto:[21],hmoveto:[22],vhcurveto:[30],hvcurveto:[31]};return a.prototype={convert:function(a,d){for(var e,f,g,h=a.length,i=!1,j=0;h>j;j++){var k=a[j];if(32>k){switch(12===k&&(k=(k<<8)+a[++j]),k){case 1:if(!Mb){this.stack=[];break}i=this.executeCommand(2,c.hstem);break;case 3:if(!Mb){this.stack=[];break}i=this.executeCommand(2,c.vstem);break;case 4:if(this.flexing){if(this.stack.length<1){i=!0;break}var l=this.stack.pop();this.stack.push(0,l);break}i=this.executeCommand(1,c.vmoveto);break;case 5:i=this.executeCommand(2,c.rlineto);break;case 6:i=this.executeCommand(1,c.hlineto);break;case 7:i=this.executeCommand(1,c.vlineto);break;case 8:i=this.executeCommand(6,c.rrcurveto);break;case 9:this.stack=[];break;case 10:if(this.stack.length<1){i=!0;break}g=this.stack.pop(),i=this.convert(d[g],d);break;case 11:return i;case 13:if(this.stack.length<2){i=!0;break}e=this.stack.pop(),f=this.stack.pop(),this.lsb=f,this.width=e,this.stack.push(e,f),i=this.executeCommand(2,c.hmoveto);break;case 14:this.output.push(c.endchar[0]);break;case 21:if(this.flexing)break;i=this.executeCommand(2,c.rmoveto);break;case 22:if(this.flexing){this.stack.push(0);break}i=this.executeCommand(1,c.hmoveto);break;case 30:i=this.executeCommand(4,c.vhcurveto);break;case 31:i=this.executeCommand(4,c.hvcurveto);break;case 3072:this.stack=[];break;case 3073:if(!Mb){this.stack=[];break}i=this.executeCommand(2,c.vstem);break;case 3074:if(!Mb){this.stack=[];break}i=this.executeCommand(2,c.hstem);break;case 3078:Nb?(this.seac=this.stack.splice(-4,4),i=this.executeCommand(0,c.endchar)):i=this.executeCommand(4,c.endchar);break;case 3079:if(this.stack.length<4){i=!0;break}this.stack.pop();e=this.stack.pop();var m=this.stack.pop();f=this.stack.pop(),this.lsb=f,this.width=e,this.stack.push(e,f,m),i=this.executeCommand(3,c.rmoveto);break;case 3084:if(this.stack.length<2){i=!0;break}var n=this.stack.pop(),o=this.stack.pop();this.stack.push(o/n);break;case 3088:if(this.stack.length<2){i=!0;break}g=this.stack.pop();var p=this.stack.pop();if(0===g&&3===p){var q=this.stack.splice(this.stack.length-17,17);this.stack.push(q[2]+q[0],q[3]+q[1],q[4],q[5],q[6],q[7],q[8],q[9],q[10],q[11],q[12],q[13],q[14]),i=this.executeCommand(13,c.flex,!0),this.flexing=!1,this.stack.push(q[15],q[16])}else 1===g&&0===p&&(this.flexing=!0);break;case 3089:break;case 3105:this.stack=[];break;default:b('Unknown type 1 charstring command of "'+k+'"')}if(i)break}else 246>=k?k-=139:k=250>=k?256*(k-247)+a[++j]+108:254>=k?-(256*(k-251))-a[++j]-108:(255&a[++j])<<24|(255&a[++j])<<16|(255&a[++j])<<8|(255&a[++j])<<0,this.stack.push(k)}return i},executeCommand:function(a,b,c){var d=this.stack.length;if(a>d)return!0;for(var e=d-a,f=e;d>f;f++){var g=this.stack[f];g===(0|g)?this.output.push(28,g>>8&255,255&g):(g=65536*g|0,this.output.push(255,g>>24&255,g>>16&255,g>>8&255,255&g))}return this.output.push.apply(this.output,b),c?this.stack.splice(e,a):this.stack.length=0,!1}},a}(),gc=function(){function a(a){return a>=48&&57>=a||a>=65&&70>=a||a>=97&&102>=a}function b(a,b,c){for(var d=0|b,e=52845,f=22719,g=a.length,h=new Uint8Array(g),i=0;g>i;i++){var j=a[i];h[i]=j^d>>8,d=(j+d)*e+f&65535}return Array.prototype.slice.call(h,c)}function c(b,c,d){var e,f,g=0|c,h=52845,i=22719,j=b.length,k=j>>>1,l=new Uint8Array(k);for(e=0,f=0;j>e;e++){var m=b[e];if(a(m)){e++;for(var n;j>e&&!a(n=b[e]);)e++;if(j>e){var o=parseInt(String.fromCharCode(m,n),16);l[f++]=o^g>>8,g=(o+g)*h+i&65535}}}return Array.prototype.slice.call(l,d,f)}function d(a){return 47===a||91===a||93===a||123===a||125===a||40===a||41===a}function e(d,e){if(e){var g=d.getBytes(),h=!(a(g[0])&&a(g[1])&&a(g[2])&&a(g[3]));d=new Mc(h?b(g,f,4):c(g,f,4))}this.stream=d,this.nextChar()}var f=55665,g=4330;return e.prototype={readNumberArray:function(){this.getToken();for(var a=[];;){var b=this.getToken();if(null===b||"]"===b||"}"===b)break;a.push(parseFloat(b||0))}return a},readNumber:function(){var a=this.getToken();return parseFloat(a||0)},readInt:function(){var a=this.getToken();return 0|parseInt(a||0,10)},readBoolean:function(){var a=this.getToken();return"true"===a?1:0},nextChar:function(){return this.currentChar=this.stream.getByte()},getToken:function(){for(var a=!1,b=this.currentChar;;){if(-1===b)return null;if(a)10!==b&&13!==b||(a=!1);else if(37===b)a=!0;else if(!Gc.isSpace(b))break;b=this.nextChar()}if(d(b))return this.nextChar(),String.fromCharCode(b);var c="";do c+=String.fromCharCode(b),b=this.nextChar();while(b>=0&&!Gc.isSpace(b)&&!d(b));return c},extractFontProgram:function(){for(var a,c,d,e,f,h=this.stream,i=[],j=[],k={subrs:[],charstrings:[],properties:{privateData:{lenIV:4}}};null!==(a=this.getToken());)if("/"===a)switch(a=this.getToken()){case"CharStrings":for(this.getToken(),this.getToken(),this.getToken(),this.getToken();;){if(a=this.getToken(),null===a||"end"===a)break;if("/"===a){var l=this.getToken();c=this.readInt(),this.getToken(),d=h.makeSubStream(h.pos,c),e=k.properties.privateData.lenIV,f=b(d.getBytes(),g,e),h.skip(c),this.nextChar(),a=this.getToken(),"noaccess"===a&&this.getToken(),j.push({glyph:l,encoded:f})}}break;case"Subrs":this.readInt();for(this.getToken();"dup"===(a=this.getToken());){var m=this.readInt();c=this.readInt(),this.getToken(),d=h.makeSubStream(h.pos,c),e=k.properties.privateData.lenIV,f=b(d.getBytes(),g,e),h.skip(c),this.nextChar(),a=this.getToken(),"noaccess"===a&&this.getToken(),i[m]=f}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":var n=this.readNumberArray();n.length>0&&n.length%2===0&&Mb&&(k.properties.privateData[a]=n);break;case"StemSnapH":case"StemSnapV":k.properties.privateData[a]=this.readNumberArray();break;case"StdHW":case"StdVW":k.properties.privateData[a]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":case"ExpansionFactor":k.properties.privateData[a]=this.readNumber();break;case"ForceBold":k.properties.privateData[a]=this.readBoolean()}for(var o=0;o<j.length;o++){l=j[o].glyph,f=j[o].encoded;var p=new fc,q=p.convert(f,i),r=p.output;q&&(r=[14]),k.charstrings.push({glyphName:l,charstring:r,width:p.width,lsb:p.lsb,seac:p.seac})}return k},extractFontHeader:function(a){for(var b;null!==(b=this.getToken());)if("/"===b)switch(b=this.getToken()){case"FontMatrix":var c=this.readNumberArray();a.fontMatrix=c;break;case"Encoding":var d,e=this.getToken();if(/^\d+$/.test(e)){d=[];var f=0|parseInt(e,10);this.getToken();for(var g=0;f>g;g++){for(b=this.getToken();"dup"!==b&&"def"!==b;)if(b=this.getToken(),null===b)return;if("def"===b)break;var h=this.readInt();this.getToken();var i=this.getToken();d[h]=i,this.getToken()}}else d=Pb[e];a.builtInEncoding=d;break;case"FontBBox":var j=this.readNumberArray();a.ascent=j[3],a.descent=j[1],a.ascentScaled=!0}}},e}(),hc=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],ic=function(a,b,c){
+var d=6,e=c.length1,f=c.length2,g=b.peekBytes(d),h=128===g[0]&&1===g[1];h&&(b.skip(d),e=g[5]<<24|g[4]<<16|g[3]<<8|g[2]);var i=new Mc(b.getBytes(e)),j=new gc(i);j.extractFontHeader(c),h&&(g=b.getBytes(d),f=g[5]<<24|g[4]<<16|g[3]<<8|g[2]);var k=new Mc(b.getBytes(f)),l=new gc(k,!0),m=l.extractFontProgram();for(var n in m.properties)c[n]=m.properties[n];var o=m.charstrings,p=this.getType2Charstrings(o),q=this.getType2Subrs(m.subrs);this.charstrings=o,this.data=this.wrap(a,p,this.charstrings,q,c),this.seacs=this.getSeacs(m.charstrings)};ic.prototype={get numGlyphs(){return this.charstrings.length+1},getCharset:function(){for(var a=[".notdef"],b=this.charstrings,c=0;c<b.length;c++)a.push(b[c].glyphName);return a},getGlyphMapping:function(a){var b,c=this.charstrings,d=[".notdef"];for(b=0;b<c.length;b++)d.push(c[b].glyphName);var e=a.builtInEncoding;if(e){var f={};for(var g in e)b=d.indexOf(e[g]),b>=0&&(f[g]=b)}return Q(a,f,d)},getSeacs:function(a){var b,c,d=[];for(b=0,c=a.length;c>b;b++){var e=a[b];e.seac&&(d[b+1]=e.seac)}return d},getType2Charstrings:function(a){for(var b=[],c=0,d=a.length;d>c;c++)b.push(a[c].charstring);return b},getType2Subrs:function(a){var b=0,c=a.length;b=1133>c?107:33769>c?1131:32768;var d,e=[];for(d=0;b>d;d++)e.push([11]);for(d=0;c>d;d++)e.push(a[d]);return e},wrap:function(a,b,c,d,e){var f=new lc;f.header=new mc(1,0,4,4),f.names=[a];var g=new qc;g.setByName("version",391),g.setByName("Notice",392),g.setByName("FullName",393),g.setByName("FamilyName",394),g.setByName("Weight",395),g.setByName("Encoding",null),g.setByName("FontMatrix",e.fontMatrix),g.setByName("FontBBox",e.bbox),g.setByName("charset",null),g.setByName("CharStrings",null),g.setByName("Private",null),f.topDict=g;var h=new nc;h.add("Version 0.11"),h.add("See original notice"),h.add(a),h.add(a),h.add("Medium"),f.strings=h,f.globalSubrIndex=new oc;var i,j,k=b.length,l=[0];for(i=0;k>i;i++){var m=hc.indexOf(c[i].glyphName);-1===m&&(m=0),l.push(m>>8&255,255&m)}f.charset=new tc(!1,0,[],l);var n=new oc;for(n.add([139,14]),i=0;k>i;i++)n.add(b[i]);f.charStrings=n;var o=new rc;o.setByName("Subrs",null);var p=["BlueValues","OtherBlues","FamilyBlues","FamilyOtherBlues","StemSnapH","StemSnapV","BlueShift","BlueFuzz","BlueScale","LanguageGroup","ExpansionFactor","ForceBold","StdHW","StdVW"];for(i=0,j=p.length;j>i;i++){var q=p[i];if(e.privateData.hasOwnProperty(q)){var r=e.privateData[q];if(C(r))for(var s=r.length-1;s>0;s--)r[s]-=r[s-1];o.setByName(q,r)}}f.topDict.privateDict=o;var t=new oc;for(i=0,j=d.length;j>i;i++)t.add(d[i]);o.subrsIndex=t;var u=new xc(f);return u.compile()}};var jc=function(){function a(a,c){this.properties=c;var d=new kc(a,c);this.cff=d.parse();var e=new xc(this.cff);this.seacs=this.cff.seacs;try{this.data=e.compile()}catch(f){b("Failed to compile font "+c.loadedName),this.data=a}}return a.prototype={get numGlyphs(){return this.cff.charStrings.count},getCharset:function(){return this.cff.charset.charset},getGlyphMapping:function(){var a,b,c=this.cff,d=this.properties,e=c.charset.charset;if(d.composite){if(a=Object.create(null),c.isCIDFont)for(b=0;b<e.length;b++){var f=e[b],g=d.cMap.charCodeOf(f);a[g]=b}else for(b=0;b<c.charStrings.count;b++)a[b]=b;return a}var h=c.encoding?c.encoding.encoding:null;return a=Q(d,h,e)}},a}(),kc=function(){function d(a,b){this.bytes=a.getBytes(),this.properties=b}var e=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],f=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn:function(a,b){a[b-2]=a[b-2]+a[b-1]}},{id:"sub",min:2,stackDelta:-1,stackFn:function(a,b){a[b-2]=a[b-2]-a[b-1]}},{id:"div",min:2,stackDelta:-1,stackFn:function(a,b){a[b-2]=a[b-2]/a[b-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn:function(a,b){a[b-1]=-a[b-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn:function(a,b){a[b-2]=a[b-2]*a[b-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];return d.prototype={parse:function(){var a=this.properties,b=new lc;this.cff=b;var c=this.parseHeader(),d=this.parseIndex(c.endPos),e=this.parseIndex(d.endPos),f=this.parseIndex(e.endPos),g=this.parseIndex(f.endPos),h=this.parseDict(e.obj.get(0)),i=this.createDict(qc,h,b.strings);b.header=c.obj,b.names=this.parseNameIndex(d.obj),b.strings=this.parseStringIndex(f.obj),b.topDict=i,b.globalSubrIndex=g.obj,this.parsePrivateDict(b.topDict),b.isCIDFont=i.hasName("ROS");var j=i.getByName("CharStrings"),k=this.parseCharStrings(j);b.charStrings=k.charStrings,b.seacs=k.seacs,b.widths=k.widths;var l=i.getByName("FontMatrix");l&&(a.fontMatrix=l);var m=i.getByName("FontBBox");m&&(a.ascent=m[3],a.descent=m[1],a.ascentScaled=!0);var n,o;if(b.isCIDFont){for(var p=this.parseIndex(i.getByName("FDArray")).obj,q=0,r=p.count;r>q;++q){var s=p.get(q),t=this.createDict(qc,this.parseDict(s),b.strings);this.parsePrivateDict(t),b.fdArray.push(t)}o=null,n=this.parseCharsets(i.getByName("charset"),b.charStrings.count,b.strings,!0),b.fdSelect=this.parseFDSelect(i.getByName("FDSelect"),b.charStrings.count)}else n=this.parseCharsets(i.getByName("charset"),b.charStrings.count,b.strings,!1),o=this.parseEncoding(i.getByName("Encoding"),a,b.strings,n.charset);return b.charset=n,b.encoding=o,b},parseHeader:function(){for(var b=this.bytes,d=b.length,e=0;d>e&&1!==b[e];)++e;e>=d?c("Invalid CFF header"):0!==e&&(a("cff data is shifted"),b=b.subarray(e),this.bytes=b);var f=b[0],g=b[1],h=b[2],i=b[3],j=new mc(f,g,h,i);return{obj:j,endPos:h}},parseDict:function(a){function b(){var b=a[e++];return 30===b?d(e):28===b?(b=a[e++],b=(b<<24|a[e++]<<16)>>16):29===b?(b=a[e++],b=b<<8|a[e++],b=b<<8|a[e++],b=b<<8|a[e++]):b>=32&&246>=b?b-139:b>=247&&250>=b?256*(b-247)+a[e++]+108:b>=251&&254>=b?-(256*(b-251))-a[e++]-108:(c("255 is not a valid DICT command"),-1)}function d(){for(var b="",c=15,d=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],f=a.length;f>e;){var g=a[e++],h=g>>4,i=15&g;if(h===c)break;if(b+=d[h],i===c)break;b+=d[i]}return parseFloat(b)}var e=0,f=[],g=[];e=0;for(var h=a.length;h>e;){var i=a[e];21>=i?(12===i&&(i=i<<8|a[++e]),g.push([i,f]),f=[],++e):f.push(b())}return g},parseIndex:function(a){var b,c,d=new oc,e=this.bytes,f=e[a++]<<8|e[a++],g=[],h=a;if(0!==f){var i=e[a++],j=a+(f+1)*i-1;for(b=0,c=f+1;c>b;++b){for(var k=0,l=0;i>l;++l)k<<=8,k+=e[a++];g.push(j+k)}h=g[f]}for(b=0,c=g.length-1;c>b;++b){var m=g[b],n=g[b+1];d.add(e.subarray(m,n))}return{obj:d,endPos:h}},parseNameIndex:function(a){for(var b=[],c=0,d=a.count;d>c;++c){for(var e=a.get(c),f=Math.min(e.length,127),g=[],h=0;f>h;++h){var j=e[h];(0!==h||0!==j)&&(33>j||j>126||91===j||93===j||40===j||41===j||123===j||125===j||60===j||62===j||47===j||37===j||35===j)?g[h]=95:g[h]=j}b.push(i(g))}return b},parseStringIndex:function(a){for(var b=new nc,c=0,d=a.count;d>c;++c){var e=a.get(c);b.add(i(e))}return b},createDict:function(a,b,c){for(var d=new a(c),e=0,f=b.length;f>e;++e){var g=b[e],h=g[0],i=g[1];d.setByKey(h,i)}return d},parseCharStrings:function(a){for(var c=this.parseIndex(a).obj,d=[],g=[],h=c.count,i=0;h>i;i++){for(var j=c.get(i),k=0,l=[],m=!0,n=0,o=!0,p=j,q=p.length,r=!0,s=0;q>s;){var t=p[s++],u=null;if(12===t){var v=p[s++];0===v?(p[s-2]=139,p[s-1]=22,k=0):u=f[v]}else 28===t?(l[k]=(p[s]<<24|p[s+1]<<16)>>16,s+=2,k++):14===t?(k>=4&&(k-=4,Nb&&(d[i]=l.slice(k,k+4),o=!1)),u=e[t]):t>=32&&246>=t?(l[k]=t-139,k++):t>=247&&254>=t?(l[k]=251>t?(t-247<<8)+p[s]+108:-(t-251<<8)-p[s]-108,s++,k++):255===t?(l[k]=(p[s]<<24|p[s+1]<<16|p[s+2]<<8|p[s+3])/65536,s+=4,k++):19===t||20===t?(n+=k>>1,s+=n+7>>3,k%=2,u=e[t]):u=e[t];if(u){if(u.stem&&(n+=k>>1),"min"in u&&!m&&k<u.min){b("Not enough parameters for "+u.id+"; actual: "+k+", expected: "+u.min),o=!1;break}r&&u.stackClearing&&(r=!1,k-=u.min,k>=2&&u.stem?k%=2:k>1&&b("Found too many parameters for stack-clearing command"),k>0&&l[k-1]>=0&&(g[i]=l[k-1])),"stackDelta"in u?("stackFn"in u&&u.stackFn(l,k),k+=u.stackDelta):u.stackClearing?k=0:u.resetStack?(k=0,m=!1):u.undefStack&&(k=0,m=!0,r=!1)}}o||c.set(i,new Uint8Array([14]))}return{charStrings:c,seacs:d,widths:g}},emptyPrivateDictionary:function(a){var b=this.createDict(rc,[],a.strings);a.setByKey(18,[0,0]),a.privateDict=b},parsePrivateDict:function(a){if(!a.hasName("Private"))return void this.emptyPrivateDictionary(a);var b=a.getByName("Private");if(!C(b)||2!==b.length)return void a.removeByName("Private");var c=b[0],d=b[1];if(0===c||d>=this.bytes.length)return void this.emptyPrivateDictionary(a);var e=d+c,f=this.bytes.subarray(d,e),g=this.parseDict(f),h=this.createDict(rc,g,a.strings);if(a.privateDict=h,h.getByName("Subrs")){var i=h.getByName("Subrs"),j=d+i;if(0===i||j>=this.bytes.length)return void this.emptyPrivateDictionary(a);var k=this.parseIndex(j);h.subrsIndex=k.obj}},parseCharsets:function(a,b,d,e){if(0===a)return new tc(!0,sc.ISO_ADOBE,Ja);if(1===a)return new tc(!0,sc.EXPERT,Ka);if(2===a)return new tc(!0,sc.EXPERT_SUBSET,La);var f,g,h,i=this.bytes,j=a,k=i[a++],l=[".notdef"];switch(b-=1,k){case 0:for(h=0;b>h;h++)f=i[a++]<<8|i[a++],l.push(e?f:d.get(f));break;case 1:for(;l.length<=b;)for(f=i[a++]<<8|i[a++],g=i[a++],h=0;g>=h;h++)l.push(e?f++:d.get(f++));break;case 2:for(;l.length<=b;)for(f=i[a++]<<8|i[a++],g=i[a++]<<8|i[a++],h=0;g>=h;h++)l.push(e?f++:d.get(f++));break;default:c("Unknown charset format")}var m=a,n=i.subarray(j,m);return new tc(!1,k,l,n)},parseEncoding:function(a,b,d,e){function f(){var b=k[a++];for(h=0;b>h;h++){var c=k[a++],f=(k[a++]<<8)+(255&k[a++]);j[c]=e.indexOf(d.get(f))}}var g,h,i,j={},k=this.bytes,l=!1,m=!1,n=null;if(0===a||1===a){l=!0,g=a;var o=a?Pb.ExpertEncoding:Pb.StandardEncoding;for(h=0,i=e.length;i>h;h++){var p=o.indexOf(e[h]);-1!==p&&(j[p]=h)}}else{var q=a;switch(g=k[a++],127&g){case 0:var r=k[a++];for(h=1;r>=h;h++)j[k[a++]]=h;break;case 1:var s=k[a++],t=1;for(h=0;s>h;h++)for(var u=k[a++],v=k[a++],w=u;u+v>=w;w++)j[w]=t++;break;default:c("Unknow encoding format: "+g+" in CFF")}var x=a;128&g&&(k[q]&=127,f(),m=!0),n=k.subarray(q,x)}return g=127&g,new uc(l,g,j,n)},parseFDSelect:function(a,b){var d,e=a,f=this.bytes,g=f[a++],h=[];switch(g){case 0:for(d=0;b>d;++d){var i=f[a++];h.push(i)}break;case 3:var j=f[a++]<<8|f[a++];for(d=0;j>d;++d)for(var k=f[a++]<<8|f[a++],l=f[a++],m=f[a]<<8|f[a+1],n=k;m>n;++n)h.push(l);a+=2;break;default:c("Unknown fdselect format "+g)}var o=a;return new vc(h,f.subarray(e,o))}},d}(),lc=function(){function a(){this.header=null,this.names=[],this.topDict=null,this.strings=new nc,this.globalSubrIndex=null,this.encoding=null,this.charset=null,this.charStrings=null,this.fdArray=[],this.fdSelect=null,this.isCIDFont=!1}return a}(),mc=function(){function a(a,b,c,d){this.major=a,this.minor=b,this.hdrSize=c,this.offSize=d}return a}(),nc=function(){function a(){this.strings=[]}return a.prototype={get:function(a){return a>=0&&390>=a?hc[a]:a-391<=this.strings.length?this.strings[a-391]:hc[0]},add:function(a){this.strings.push(a)},get count(){return this.strings.length}},a}(),oc=function(){function a(){this.objects=[],this.length=0}return a.prototype={add:function(a){this.length+=a.length,this.objects.push(a)},set:function(a,b){this.length+=b.length-this.objects[a].length,this.objects[a]=b},get:function(a){return this.objects[a]},get count(){return this.objects.length}},a}(),pc=function(){function a(a,b){this.keyToNameMap=a.keyToNameMap,this.nameToKeyMap=a.nameToKeyMap,this.defaults=a.defaults,this.types=a.types,this.opcodes=a.opcodes,this.order=a.order,this.strings=b,this.values={}}return a.prototype={setByKey:function(a,b){if(!(a in this.keyToNameMap))return!1;if(0===b.length)return!0;var c=this.types[a];return"num"!==c&&"sid"!==c&&"offset"!==c||(b=b[0]),this.values[a]=b,!0},setByName:function(a,b){a in this.nameToKeyMap||c('Invalid dictionary name "'+a+'"'),this.values[this.nameToKeyMap[a]]=b},hasName:function(a){return this.nameToKeyMap[a]in this.values},getByName:function(a){a in this.nameToKeyMap||c('Invalid dictionary name "'+a+'"');var b=this.nameToKeyMap[a];return b in this.values?this.values[b]:this.defaults[b]},removeByName:function(a){delete this.values[this.nameToKeyMap[a]]}},a.createTables=function(a){for(var b={keyToNameMap:{},nameToKeyMap:{},defaults:{},types:{},opcodes:{},order:[]},c=0,d=a.length;d>c;++c){var e=a[c],f=C(e[0])?(e[0][0]<<8)+e[0][1]:e[0];b.keyToNameMap[f]=e[1],b.nameToKeyMap[e[1]]=f,b.types[f]=e[2],b.defaults[f]=e[3],b.opcodes[f]=C(e[0])?e[0]:[e[0]],b.order.push(f)}return b},a}(),qc=function(){function a(a){null===c&&(c=pc.createTables(b)),pc.call(this,c,a),this.privateDict=null}var b=[[[12,30],"ROS",["sid","sid","num"],null],[[12,20],"SyntheticBase","num",null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","num",0],[[12,2],"ItalicAngle","num",0],[[12,3],"UnderlinePosition","num",-100],[[12,4],"UnderlineThickness","num",50],[[12,5],"PaintType","num",0],[[12,6],"CharstringType","num",2],[[12,7],"FontMatrix",["num","num","num","num","num","num"],[.001,0,0,.001,0,0]],[13,"UniqueID","num",null],[5,"FontBBox",["num","num","num","num"],[0,0,0,0]],[[12,8],"StrokeWidth","num",0],[14,"XUID","array",null],[15,"charset","offset",0],[16,"Encoding","offset",0],[17,"CharStrings","offset",0],[18,"Private",["offset","offset"],null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","num",0],[[12,32],"CIDFontRevision","num",0],[[12,33],"CIDFontType","num",0],[[12,34],"CIDCount","num",8720],[[12,35],"UIDBase","num",null],[[12,37],"FDSelect","offset",null],[[12,36],"FDArray","offset",null],[[12,38],"FontName","sid",null]],c=null;return a.prototype=Object.create(pc.prototype),a}(),rc=function(){function a(a){null===c&&(c=pc.createTables(b)),pc.call(this,c,a),this.subrsIndex=null}var b=[[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",.039625],[[12,10],"BlueShift","num",7],[[12,11],"BlueFuzz","num",1],[10,"StdHW","num",null],[11,"StdVW","num",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","num",0],[[12,17],"LanguageGroup","num",0],[[12,18],"ExpansionFactor","num",.06],[[12,19],"initialRandomSeed","num",0],[20,"defaultWidthX","num",0],[21,"nominalWidthX","num",0],[19,"Subrs","offset",null]],c=null;return a.prototype=Object.create(pc.prototype),a}(),sc={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2},tc=function(){function a(a,b,c,d){this.predefined=a,this.format=b,this.charset=c,this.raw=d}return a}(),uc=function(){function a(a,b,c,d){this.predefined=a,this.format=b,this.encoding=c,this.raw=d}return a}(),vc=function(){function a(a,b){this.fdSelect=a,this.raw=b}return a}(),wc=function(){function a(){this.offsets={}}return a.prototype={isTracking:function(a){return a in this.offsets},track:function(a,b){a in this.offsets&&c("Already tracking location of "+a),this.offsets[a]=b},offset:function(a){for(var b in this.offsets)this.offsets[b]+=a},setEntryLocation:function(a,b,d){a in this.offsets||c("Not tracking location of "+a);for(var e=d.data,f=this.offsets[a],g=5,h=0,i=b.length;i>h;++h){var j=h*g+f,k=j+1,l=j+2,m=j+3,n=j+4;29===e[j]&&0===e[k]&&0===e[l]&&0===e[m]&&0===e[n]||c("writing to an offset that is not empty");var o=b[h];e[j]=29,e[k]=o>>24&255,e[l]=o>>16&255,e[m]=o>>8&255,e[n]=255&o}}},a}(),xc=function(){function a(a){this.cff=a}return a.prototype={compile:function(){var a=this.cff,b={data:[],length:0,add:function(a){this.data=this.data.concat(a),this.length=this.data.length}},c=this.compileHeader(a.header);b.add(c);var d=this.compileNameIndex(a.names);if(b.add(d),a.isCIDFont&&a.topDict.hasName("FontMatrix")){var e=a.topDict.getByName("FontMatrix");a.topDict.removeByName("FontMatrix");for(var f=0,g=a.fdArray.length;g>f;f++){var h=a.fdArray[f],i=e.slice(0);h.hasName("FontMatrix")&&(i=na.transform(i,h.getByName("FontMatrix"))),h.setByName("FontMatrix",i)}}var j=this.compileTopDicts([a.topDict],b.length,a.isCIDFont);b.add(j.output);var k=j.trackers[0],l=this.compileStringIndex(a.strings.strings);b.add(l);var m=this.compileIndex(a.globalSubrIndex);if(b.add(m),a.encoding&&a.topDict.hasName("Encoding"))if(a.encoding.predefined)k.setEntryLocation("Encoding",[a.encoding.format],b);else{var n=this.compileEncoding(a.encoding);k.setEntryLocation("Encoding",[b.length],b),b.add(n)}if(a.charset&&a.topDict.hasName("charset"))if(a.charset.predefined)k.setEntryLocation("charset",[a.charset.format],b);else{var o=this.compileCharset(a.charset);k.setEntryLocation("charset",[b.length],b),b.add(o)}var p=this.compileCharStrings(a.charStrings);if(k.setEntryLocation("CharStrings",[b.length],b),b.add(p),a.isCIDFont){k.setEntryLocation("FDSelect",[b.length],b);var q=this.compileFDSelect(a.fdSelect.raw);b.add(q),j=this.compileTopDicts(a.fdArray,b.length,!0),k.setEntryLocation("FDArray",[b.length],b),b.add(j.output);var r=j.trackers;this.compilePrivateDicts(a.fdArray,r,b)}return this.compilePrivateDicts([a.topDict],[k],b),b.add([0]),b.data},encodeNumber:function(a){return parseFloat(a)!==parseInt(a,10)||isNaN(a)?this.encodeFloat(a):this.encodeInteger(a)},encodeFloat:function(a){var b=a.toString(),c=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(b);if(c){var d=parseFloat("1e"+((c[2]?+c[2]:0)+c[1].length));b=(Math.round(a*d)/d).toString()}var e,f,g="";for(e=0,f=b.length;f>e;++e){var h=b[e];g+="e"===h?"-"===b[++e]?"c":"b":"."===h?"a":"-"===h?"e":h}g+=1&g.length?"f":"ff";var i=[30];for(e=0,f=g.length;f>e;e+=2)i.push(parseInt(g.substr(e,2),16));return i},encodeInteger:function(a){var b;return a>=-107&&107>=a?b=[a+139]:a>=108&&1131>=a?(a=[a-108],b=[(a>>8)+247,255&a]):a>=-1131&&-108>=a?(a=-a-108,b=[(a>>8)+251,255&a]):b=a>=-32768&&32767>=a?[28,a>>8&255,255&a]:[29,a>>24&255,a>>16&255,a>>8&255,255&a],b},compileHeader:function(a){return[a.major,a.minor,a.hdrSize,a.offSize]},compileNameIndex:function(a){for(var b=new oc,c=0,d=a.length;d>c;++c)b.add(j(a[c]));return this.compileIndex(b)},compileTopDicts:function(a,b,c){for(var d=[],e=new oc,f=0,g=a.length;g>f;++f){var h=a[f];c&&(h.removeByName("CIDFontVersion"),h.removeByName("CIDFontRevision"),h.removeByName("CIDFontType"),h.removeByName("CIDCount"),h.removeByName("UIDBase"));var i=new wc,j=this.compileDict(h,i);d.push(i),e.add(j),i.offset(b)}return e=this.compileIndex(e,d),{trackers:d,output:e}},compilePrivateDicts:function(a,b,c){for(var d=0,f=a.length;f>d;++d){var g=a[d];e(g.privateDict&&g.hasName("Private"),"There must be an private dictionary.");var h=g.privateDict,i=new wc,j=this.compileDict(h,i),k=c.length;if(i.offset(k),j.length||(k=0),b[d].setEntryLocation("Private",[j.length,k],c),c.add(j),h.subrsIndex&&h.hasName("Subrs")){var l=this.compileIndex(h.subrsIndex);i.setEntryLocation("Subrs",[j.length],c),c.add(l)}}},compileDict:function(a,b){for(var d=[],e=a.order,f=0;f<e.length;++f){var g=e[f];if(g in a.values){var h=a.values[g],i=a.types[g];if(C(i)||(i=[i]),C(h)||(h=[h]),0!==h.length){for(var j=0,k=i.length;k>j;++j){var l=i[j],m=h[j];switch(l){case"num":case"sid":d=d.concat(this.encodeNumber(m));break;case"offset":var n=a.keyToNameMap[g];b.isTracking(n)||b.track(n,d.length),d=d.concat([29,0,0,0,0]);break;case"array":case"delta":d=d.concat(this.encodeNumber(m));for(var o=1,p=h.length;p>o;++o)d=d.concat(this.encodeNumber(h[o]));break;default:c("Unknown data type of "+l)}}d=d.concat(a.opcodes[g])}}}return d},compileStringIndex:function(a){for(var b=new oc,c=0,d=a.length;d>c;++c)b.add(j(a[c]));return this.compileIndex(b)},compileGlobalSubrIndex:function(){var a=this.cff.globalSubrIndex;this.out.writeByteArray(this.compileIndex(a))},compileCharStrings:function(a){return this.compileIndex(a)},compileCharset:function(a){return this.compileTypedArray(a.raw)},compileEncoding:function(a){return this.compileTypedArray(a.raw)},compileFDSelect:function(a){return this.compileTypedArray(a)},compileTypedArray:function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b},compileIndex:function(a,b){b=b||[];var c=a.objects,d=c.length;if(0===d)return[0,0,0];var e,f=[d>>8&255,255&d],g=1;for(e=0;d>e;++e)g+=c[e].length;var h;h=256>g?1:65536>g?2:16777216>g?3:4,f.push(h);var i=1;for(e=0;d+1>e;e++)1===h?f.push(255&i):2===h?f.push(i>>8&255,255&i):3===h?f.push(i>>16&255,i>>8&255,255&i):f.push(i>>>24&255,i>>16&255,i>>8&255,255&i),c[e]&&(i+=c[e].length);for(e=0;d>e;e++){b[e]&&b[e].offset(f.length);for(var j=0,k=c[e].length;k>j;j++)f.push(c[e][j])}return f}},a}();!function(){/Windows/.test(navigator.userAgent)&&(Nb=!0)}(),function(){/Windows.*Chrome/.test(navigator.userAgent)&&(Kb=!0)}();var yc=function(){function a(a,b){return a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3]}function b(a,b){return a[b]<<8|a[b+1]}function d(d,e,f){var g,h,i,j,k=1===b(d,e+2)?a(d,e+8):a(d,e+16),l=b(d,e+k);if(4===l){g=b(d,e+k+2);var m=b(d,e+k+6)>>1;for(i=e+k+14,h=[],j=0;m>j;j++,i+=2)h[j]={end:b(d,i)};for(i+=2,j=0;m>j;j++,i+=2)h[j].start=b(d,i);for(j=0;m>j;j++,i+=2)h[j].idDelta=b(d,i);for(j=0;m>j;j++,i+=2){var n=b(d,i);if(0!==n){h[j].ids=[];for(var o=0,p=h[j].end-h[j].start+1;p>o;o++)h[j].ids[o]=b(d,i+n),n+=2}}return h}if(12===l){g=a(d,e+k+4);var q=a(d,e+k+12);for(i=e+k+16,h=[],j=0;q>j;j++)h.push({start:a(d,i),end:a(d,i+4),idDelta:a(d,i+8)-a(d,i)}),i+=12;return h}c("not supported cmap: "+l)}function e(a,b,c){var d={},e=new kc(new Mc(a,b,c-b),d),f=e.parse();return{glyphs:f.charStrings.objects,subrs:f.topDict.privateDict&&f.topDict.privateDict.subrsIndex&&f.topDict.privateDict.subrsIndex.objects,gsubrs:f.globalSubrIndex&&f.globalSubrIndex.objects}}function f(a,b,c){var d,e;c?(d=4,e=function(a,b){return a[b]<<24|a[b+1]<<16|a[b+2]<<8|a[b+3]}):(d=2,e=function(a,b){return a[b]<<9|a[b+1]<<1});for(var f=[],g=e(b,0),h=d;h<b.length;h+=d){var i=e(b,h);f.push(a.subarray(g,i)),g=i}return f}function g(a,b){for(var c=b.charCodeAt(0),d=0,e=a.length-1;e>d;){var f=d+e+1>>1;c<a[f].start?e=f-1:d=f}return a[d].start<=c&&c<=a[d].end?a[d].idDelta+(a[d].ids?a[d].ids[c-a[d].start]:c)&65535:0}function h(a,b,c){function d(a,c){b.push({cmd:"moveTo",args:[a,c]})}function e(a,c){b.push({cmd:"lineTo",args:[a,c]})}function f(a,c,d,e){b.push({cmd:"quadraticCurveTo",args:[a,c,d,e]})}var g,i=0,j=(a[i]<<24|a[i+1]<<16)>>16,k=0,l=0;if(i+=10,0>j){do{g=a[i]<<8|a[i+1];var m=a[i+2]<<8|a[i+3];i+=4;var n,o;1&g?(n=(a[i]<<24|a[i+1]<<16)>>16,o=(a[i+2]<<24|a[i+3]<<16)>>16,i+=4):(n=a[i++],o=a[i++]),2&g?(k=n,l=o):(k=0,l=0);var p=1,q=1,r=0,s=0;8&g?(p=q=(a[i]<<24|a[i+1]<<16)/1073741824,i+=2):64&g?(p=(a[i]<<24|a[i+1]<<16)/1073741824,q=(a[i+2]<<24|a[i+3]<<16)/1073741824,i+=4):128&g&&(p=(a[i]<<24|a[i+1]<<16)/1073741824,r=(a[i+2]<<24|a[i+3]<<16)/1073741824,s=(a[i+4]<<24|a[i+5]<<16)/1073741824,q=(a[i+6]<<24|a[i+7]<<16)/1073741824,i+=8);var t=c.glyphs[m];t&&(b.push({cmd:"save"}),b.push({cmd:"transform",args:[p,r,s,q,k,l]}),h(t,b,c),b.push({cmd:"restore"}))}while(32&g)}else{var u,v,w=[];for(u=0;j>u;u++)w.push(a[i]<<8|a[i+1]),i+=2;var x=a[i]<<8|a[i+1];i+=2+x;for(var y=w[w.length-1]+1,z=[];z.length<y;){g=a[i++];var A=1;for(8&g&&(A+=a[i++]);A-- >0;)z.push({flags:g})}for(u=0;y>u;u++){switch(18&z[u].flags){case 0:k+=(a[i]<<24|a[i+1]<<16)>>16,i+=2;break;case 2:k-=a[i++];break;case 18:k+=a[i++]}z[u].x=k}for(u=0;y>u;u++){switch(36&z[u].flags){case 0:l+=(a[i]<<24|a[i+1]<<16)>>16,i+=2;break;case 4:l-=a[i++];break;case 36:l+=a[i++]}z[u].y=l}var B=0;for(i=0;j>i;i++){var C=w[i],D=z.slice(B,C+1);if(1&D[0].flags)D.push(D[0]);else if(1&D[D.length-1].flags)D.unshift(D[D.length-1]);else{var E={flags:1,x:(D[0].x+D[D.length-1].x)/2,y:(D[0].y+D[D.length-1].y)/2};D.unshift(E),D.push(E)}for(d(D[0].x,D[0].y),u=1,v=D.length;v>u;u++)1&D[u].flags?e(D[u].x,D[u].y):1&D[u+1].flags?(f(D[u].x,D[u].y,D[u+1].x,D[u+1].y),u++):f(D[u].x,D[u].y,(D[u].x+D[u+1].x)/2,(D[u].y+D[u+1].y)/2);B=C+1}}}function j(a,b,d){function e(a,c){b.push({cmd:"moveTo",args:[a,c]})}function f(a,c){b.push({cmd:"lineTo",args:[a,c]})}function h(a,c,d,e,f,g){b.push({cmd:"bezierCurveTo",args:[a,c,d,e,f,g]})}function i(a){for(var o=0;o<a.length;){var p,q,r,s,t,u,v,w,x,y=!1,z=a[o++];switch(z){case 1:n+=k.length>>1,y=!0;break;case 3:n+=k.length>>1,y=!0;break;case 4:m+=k.pop(),e(l,m),y=!0;break;case 5:for(;k.length>0;)l+=k.shift(),m+=k.shift(),f(l,m);break;case 6:for(;k.length>0&&(l+=k.shift(),f(l,m),0!==k.length);)m+=k.shift(),f(l,m);break;case 7:for(;k.length>0&&(m+=k.shift(),f(l,m),0!==k.length);)l+=k.shift(),f(l,m);break;case 8:for(;k.length>0;)p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m);break;case 10:w=k.pop()+d.subrsBias,x=d.subrs[w],x&&i(x);break;case 11:return;case 12:switch(z=a[o++]){case 34:p=l+k.shift(),q=p+k.shift(),t=m+k.shift(),l=q+k.shift(),h(p,m,q,t,l,t),p=l+k.shift(),q=p+k.shift(),l=q+k.shift(),h(p,t,q,m,l,m);break;case 35:p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m),p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m),k.pop();break;case 36:p=l+k.shift(),t=m+k.shift(),q=p+k.shift(),u=t+k.shift(),l=q+k.shift(),h(p,t,q,u,l,u),p=l+k.shift(),q=p+k.shift(),v=u+k.shift(),l=q+k.shift(),h(p,u,q,v,l,m);break;case 37:var A=l,B=m;p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m),p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q,m=s,Math.abs(l-A)>Math.abs(m-B)?l+=k.shift():m+=k.shift(),h(p,r,q,s,l,m);break;default:c("unknown operator: 12 "+z)}break;case 14:if(k.length>=4){var C=k.pop(),D=k.pop();m=k.pop(),l=k.pop(),b.push({cmd:"save"}),b.push({cmd:"translate",args:[l,m]});var E=g(d.cmap,String.fromCharCode(d.glyphNameMap[Pb.StandardEncoding[C]]));j(d.glyphs[E],b,d),b.push({cmd:"restore"}),E=g(d.cmap,String.fromCharCode(d.glyphNameMap[Pb.StandardEncoding[D]])),j(d.glyphs[E],b,d)}return;case 18:n+=k.length>>1,y=!0;break;case 19:n+=k.length>>1,o+=n+7>>3,y=!0;break;case 20:n+=k.length>>1,o+=n+7>>3,y=!0;break;case 21:m+=k.pop(),l+=k.pop(),e(l,m),y=!0;break;case 22:l+=k.pop(),e(l,m),y=!0;break;case 23:n+=k.length>>1,y=!0;break;case 24:for(;k.length>2;)p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m);l+=k.shift(),m+=k.shift(),f(l,m);break;case 25:for(;k.length>6;)l+=k.shift(),m+=k.shift(),f(l,m);p=l+k.shift(),r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+k.shift(),h(p,r,q,s,l,m);break;case 26:for(k.length%2&&(l+=k.shift());k.length>0;)p=l,r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q,m=s+k.shift(),h(p,r,q,s,l,m);break;case 27:for(k.length%2&&(m+=k.shift());k.length>0;)p=l+k.shift(),r=m,q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s,h(p,r,q,s,l,m);break;case 28:k.push((a[o]<<24|a[o+1]<<16)>>16),o+=2;break;case 29:w=k.pop()+d.gsubrsBias,x=d.gsubrs[w],x&&i(x);break;case 30:for(;k.length>0&&(p=l,r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+(1===k.length?k.shift():0),h(p,r,q,s,l,m),0!==k.length);)p=l+k.shift(),r=m,q=p+k.shift(),s=r+k.shift(),m=s+k.shift(),l=q+(1===k.length?k.shift():0),h(p,r,q,s,l,m);break;case 31:for(;k.length>0&&(p=l+k.shift(),r=m,q=p+k.shift(),s=r+k.shift(),m=s+k.shift(),l=q+(1===k.length?k.shift():0),h(p,r,q,s,l,m),0!==k.length);)p=l,r=m+k.shift(),q=p+k.shift(),s=r+k.shift(),l=q+k.shift(),m=s+(1===k.length?k.shift():0),h(p,r,q,s,l,m);break;default:32>z&&c("unknown operator: "+z),247>z?k.push(z-139):251>z?k.push(256*(z-247)+a[o++]+108):255>z?k.push(256*-(z-251)-a[o++]-108):(k.push((a[o]<<24|a[o+1]<<16|a[o+2]<<8|a[o+3])/65536),o+=4)}y&&(k.length=0)}}var k=[],l=0,m=0,n=0;i(a)}function k(a){this.compiledGlyphs={},this.fontMatrix=a}function l(a,b,c){c=c||[488e-6,0,0,488e-6,0,0],k.call(this,c),this.glyphs=a,this.cmap=b,this.compiledGlyphs=[]}function m(a,b,c,d){c=c||[.001,0,0,.001,0,0],k.call(this,c),this.glyphs=a.glyphs,this.gsubrs=a.gsubrs||[],this.subrs=a.subrs||[],this.cmap=b,this.glyphNameMap=d||zc,this.compiledGlyphs=[],this.gsubrsBias=this.gsubrs.length<1240?107:this.gsubrs.length<33900?1131:32768,this.subrsBias=this.subrs.length<1240?107:this.subrs.length<33900?1131:32768}var n="";return k.prototype={getPathJs:function(a){var b=g(this.cmap,a),c=this.compiledGlyphs[b];return c||(this.compiledGlyphs[b]=c=this.compileGlyph(this.glyphs[b])),c},compileGlyph:function(a){if(!a||0===a.length||14===a[0])return n;var b=[];return b.push({cmd:"save"}),b.push({cmd:"transform",args:this.fontMatrix.slice()}),b.push({cmd:"scale",args:["size","-size"]}),this.compileGlyphImpl(a,b),b.push({cmd:"restore"}),b},compileGlyphImpl:function(){c("Children classes should implement this.")},hasBuiltPath:function(a){var b=g(this.cmap,a);return b in this.compiledGlyphs}},na.inherit(l,k,{compileGlyphImpl:function(a,b){h(a,b,this)}}),na.inherit(m,k,{compileGlyphImpl:function(a,b){j(a,b,this)}}),{create:function(c){for(var g,h,j,k,n,o,p=new Uint8Array(c.data),q=b(p,4),r=0,s=12;q>r;r++,s+=16){var t=i(p.subarray(s,s+4)),u=a(p,s+8),v=a(p,s+12);switch(t){case"cmap":g=d(p,u,u+v);break;case"glyf":h=p.subarray(u,u+v);break;case"loca":j=p.subarray(u,u+v);break;case"head":o=b(p,u+18),n=b(p,u+50);break;case"CFF ":k=e(p,u,u+v)}}if(h){var w=o?[1/o,0,0,1/o,0,0]:c.fontMatrix;return new l(f(h,j,n),g,w)}return new m(k,g,c.fontMatrix,c.glyphNameMap)}}}(),zc={A:65,AE:198,AEacute:508,AEmacron:482,AEsmall:63462,Aacute:193,Aacutesmall:63457,Abreve:258,Abreveacute:7854,Abrevecyrillic:1232,Abrevedotbelow:7862,Abrevegrave:7856,Abrevehookabove:7858,Abrevetilde:7860,Acaron:461,Acircle:9398,Acircumflex:194,Acircumflexacute:7844,Acircumflexdotbelow:7852,Acircumflexgrave:7846,Acircumflexhookabove:7848,Acircumflexsmall:63458,Acircumflextilde:7850,Acute:63177,Acutesmall:63412,Acyrillic:1040,Adblgrave:512,Adieresis:196,Adieresiscyrillic:1234,Adieresismacron:478,Adieresissmall:63460,Adotbelow:7840,Adotmacron:480,Agrave:192,Agravesmall:63456,Ahookabove:7842,Aiecyrillic:1236,Ainvertedbreve:514,Alpha:913,Alphatonos:902,Amacron:256,Amonospace:65313,Aogonek:260,Aring:197,Aringacute:506,Aringbelow:7680,Aringsmall:63461,Asmall:63329,Atilde:195,Atildesmall:63459,Aybarmenian:1329,B:66,Bcircle:9399,Bdotaccent:7682,Bdotbelow:7684,Becyrillic:1041,Benarmenian:1330,Beta:914,Bhook:385,Blinebelow:7686,Bmonospace:65314,Brevesmall:63220,Bsmall:63330,Btopbar:386,C:67,Caarmenian:1342,Cacute:262,Caron:63178,Caronsmall:63221,Ccaron:268,Ccedilla:199,Ccedillaacute:7688,Ccedillasmall:63463,Ccircle:9400,Ccircumflex:264,Cdot:266,Cdotaccent:266,Cedillasmall:63416,Chaarmenian:1353,Cheabkhasiancyrillic:1212,Checyrillic:1063,Chedescenderabkhasiancyrillic:1214,Chedescendercyrillic:1206,Chedieresiscyrillic:1268,Cheharmenian:1347,Chekhakassiancyrillic:1227,Cheverticalstrokecyrillic:1208,Chi:935,Chook:391,Circumflexsmall:63222,Cmonospace:65315,Coarmenian:1361,Csmall:63331,D:68,DZ:497,DZcaron:452,Daarmenian:1332,Dafrican:393,
+Dcaron:270,Dcedilla:7696,Dcircle:9401,Dcircumflexbelow:7698,Dcroat:272,Ddotaccent:7690,Ddotbelow:7692,Decyrillic:1044,Deicoptic:1006,Delta:8710,Deltagreek:916,Dhook:394,Dieresis:63179,DieresisAcute:63180,DieresisGrave:63181,Dieresissmall:63400,Digammagreek:988,Djecyrillic:1026,Dlinebelow:7694,Dmonospace:65316,Dotaccentsmall:63223,Dslash:272,Dsmall:63332,Dtopbar:395,Dz:498,Dzcaron:453,Dzeabkhasiancyrillic:1248,Dzecyrillic:1029,Dzhecyrillic:1039,E:69,Eacute:201,Eacutesmall:63465,Ebreve:276,Ecaron:282,Ecedillabreve:7708,Echarmenian:1333,Ecircle:9402,Ecircumflex:202,Ecircumflexacute:7870,Ecircumflexbelow:7704,Ecircumflexdotbelow:7878,Ecircumflexgrave:7872,Ecircumflexhookabove:7874,Ecircumflexsmall:63466,Ecircumflextilde:7876,Ecyrillic:1028,Edblgrave:516,Edieresis:203,Edieresissmall:63467,Edot:278,Edotaccent:278,Edotbelow:7864,Efcyrillic:1060,Egrave:200,Egravesmall:63464,Eharmenian:1335,Ehookabove:7866,Eightroman:8551,Einvertedbreve:518,Eiotifiedcyrillic:1124,Elcyrillic:1051,Elevenroman:8554,Emacron:274,Emacronacute:7702,Emacrongrave:7700,Emcyrillic:1052,Emonospace:65317,Encyrillic:1053,Endescendercyrillic:1186,Eng:330,Enghecyrillic:1188,Enhookcyrillic:1223,Eogonek:280,Eopen:400,Epsilon:917,Epsilontonos:904,Ercyrillic:1056,Ereversed:398,Ereversedcyrillic:1069,Escyrillic:1057,Esdescendercyrillic:1194,Esh:425,Esmall:63333,Eta:919,Etarmenian:1336,Etatonos:905,Eth:208,Ethsmall:63472,Etilde:7868,Etildebelow:7706,Euro:8364,Ezh:439,Ezhcaron:494,Ezhreversed:440,F:70,Fcircle:9403,Fdotaccent:7710,Feharmenian:1366,Feicoptic:996,Fhook:401,Fitacyrillic:1138,Fiveroman:8548,Fmonospace:65318,Fourroman:8547,Fsmall:63334,G:71,GBsquare:13191,Gacute:500,Gamma:915,Gammaafrican:404,Gangiacoptic:1002,Gbreve:286,Gcaron:486,Gcedilla:290,Gcircle:9404,Gcircumflex:284,Gcommaaccent:290,Gdot:288,Gdotaccent:288,Gecyrillic:1043,Ghadarmenian:1346,Ghemiddlehookcyrillic:1172,Ghestrokecyrillic:1170,Gheupturncyrillic:1168,Ghook:403,Gimarmenian:1331,Gjecyrillic:1027,Gmacron:7712,Gmonospace:65319,Grave:63182,Gravesmall:63328,Gsmall:63335,Gsmallhook:667,Gstroke:484,H:72,H18533:9679,H18543:9642,H18551:9643,H22073:9633,HPsquare:13259,Haabkhasiancyrillic:1192,Hadescendercyrillic:1202,Hardsigncyrillic:1066,Hbar:294,Hbrevebelow:7722,Hcedilla:7720,Hcircle:9405,Hcircumflex:292,Hdieresis:7718,Hdotaccent:7714,Hdotbelow:7716,Hmonospace:65320,Hoarmenian:1344,Horicoptic:1e3,Hsmall:63336,Hungarumlaut:63183,Hungarumlautsmall:63224,Hzsquare:13200,I:73,IAcyrillic:1071,IJ:306,IUcyrillic:1070,Iacute:205,Iacutesmall:63469,Ibreve:300,Icaron:463,Icircle:9406,Icircumflex:206,Icircumflexsmall:63470,Icyrillic:1030,Idblgrave:520,Idieresis:207,Idieresisacute:7726,Idieresiscyrillic:1252,Idieresissmall:63471,Idot:304,Idotaccent:304,Idotbelow:7882,Iebrevecyrillic:1238,Iecyrillic:1045,Ifraktur:8465,Igrave:204,Igravesmall:63468,Ihookabove:7880,Iicyrillic:1048,Iinvertedbreve:522,Iishortcyrillic:1049,Imacron:298,Imacroncyrillic:1250,Imonospace:65321,Iniarmenian:1339,Iocyrillic:1025,Iogonek:302,Iota:921,Iotaafrican:406,Iotadieresis:938,Iotatonos:906,Ismall:63337,Istroke:407,Itilde:296,Itildebelow:7724,Izhitsacyrillic:1140,Izhitsadblgravecyrillic:1142,J:74,Jaarmenian:1345,Jcircle:9407,Jcircumflex:308,Jecyrillic:1032,Jheharmenian:1355,Jmonospace:65322,Jsmall:63338,K:75,KBsquare:13189,KKsquare:13261,Kabashkircyrillic:1184,Kacute:7728,Kacyrillic:1050,Kadescendercyrillic:1178,Kahookcyrillic:1219,Kappa:922,Kastrokecyrillic:1182,Kaverticalstrokecyrillic:1180,Kcaron:488,Kcedilla:310,Kcircle:9408,Kcommaaccent:310,Kdotbelow:7730,Keharmenian:1364,Kenarmenian:1343,Khacyrillic:1061,Kheicoptic:998,Khook:408,Kjecyrillic:1036,Klinebelow:7732,Kmonospace:65323,Koppacyrillic:1152,Koppagreek:990,Ksicyrillic:1134,Ksmall:63339,L:76,LJ:455,LL:63167,Lacute:313,Lambda:923,Lcaron:317,Lcedilla:315,Lcircle:9409,Lcircumflexbelow:7740,Lcommaaccent:315,Ldot:319,Ldotaccent:319,Ldotbelow:7734,Ldotbelowmacron:7736,Liwnarmenian:1340,Lj:456,Ljecyrillic:1033,Llinebelow:7738,Lmonospace:65324,Lslash:321,Lslashsmall:63225,Lsmall:63340,M:77,MBsquare:13190,Macron:63184,Macronsmall:63407,Macute:7742,Mcircle:9410,Mdotaccent:7744,Mdotbelow:7746,Menarmenian:1348,Mmonospace:65325,Msmall:63341,Mturned:412,Mu:924,N:78,NJ:458,Nacute:323,Ncaron:327,Ncedilla:325,Ncircle:9411,Ncircumflexbelow:7754,Ncommaaccent:325,Ndotaccent:7748,Ndotbelow:7750,Nhookleft:413,Nineroman:8552,Nj:459,Njecyrillic:1034,Nlinebelow:7752,Nmonospace:65326,Nowarmenian:1350,Nsmall:63342,Ntilde:209,Ntildesmall:63473,Nu:925,O:79,OE:338,OEsmall:63226,Oacute:211,Oacutesmall:63475,Obarredcyrillic:1256,Obarreddieresiscyrillic:1258,Obreve:334,Ocaron:465,Ocenteredtilde:415,Ocircle:9412,Ocircumflex:212,Ocircumflexacute:7888,Ocircumflexdotbelow:7896,Ocircumflexgrave:7890,Ocircumflexhookabove:7892,Ocircumflexsmall:63476,Ocircumflextilde:7894,Ocyrillic:1054,Odblacute:336,Odblgrave:524,Odieresis:214,Odieresiscyrillic:1254,Odieresissmall:63478,Odotbelow:7884,Ogoneksmall:63227,Ograve:210,Ogravesmall:63474,Oharmenian:1365,Ohm:8486,Ohookabove:7886,Ohorn:416,Ohornacute:7898,Ohorndotbelow:7906,Ohorngrave:7900,Ohornhookabove:7902,Ohorntilde:7904,Ohungarumlaut:336,Oi:418,Oinvertedbreve:526,Omacron:332,Omacronacute:7762,Omacrongrave:7760,Omega:8486,Omegacyrillic:1120,Omegagreek:937,Omegaroundcyrillic:1146,Omegatitlocyrillic:1148,Omegatonos:911,Omicron:927,Omicrontonos:908,Omonospace:65327,Oneroman:8544,Oogonek:490,Oogonekmacron:492,Oopen:390,Oslash:216,Oslashacute:510,Oslashsmall:63480,Osmall:63343,Ostrokeacute:510,Otcyrillic:1150,Otilde:213,Otildeacute:7756,Otildedieresis:7758,Otildesmall:63477,P:80,Pacute:7764,Pcircle:9413,Pdotaccent:7766,Pecyrillic:1055,Peharmenian:1354,Pemiddlehookcyrillic:1190,Phi:934,Phook:420,Pi:928,Piwrarmenian:1363,Pmonospace:65328,Psi:936,Psicyrillic:1136,Psmall:63344,Q:81,Qcircle:9414,Qmonospace:65329,Qsmall:63345,R:82,Raarmenian:1356,Racute:340,Rcaron:344,Rcedilla:342,Rcircle:9415,Rcommaaccent:342,Rdblgrave:528,Rdotaccent:7768,Rdotbelow:7770,Rdotbelowmacron:7772,Reharmenian:1360,Rfraktur:8476,Rho:929,Ringsmall:63228,Rinvertedbreve:530,Rlinebelow:7774,Rmonospace:65330,Rsmall:63346,Rsmallinverted:641,Rsmallinvertedsuperior:694,S:83,SF010000:9484,SF020000:9492,SF030000:9488,SF040000:9496,SF050000:9532,SF060000:9516,SF070000:9524,SF080000:9500,SF090000:9508,SF100000:9472,SF110000:9474,SF190000:9569,SF200000:9570,SF210000:9558,SF220000:9557,SF230000:9571,SF240000:9553,SF250000:9559,SF260000:9565,SF270000:9564,SF280000:9563,SF360000:9566,SF370000:9567,SF380000:9562,SF390000:9556,SF400000:9577,SF410000:9574,SF420000:9568,SF430000:9552,SF440000:9580,SF450000:9575,SF460000:9576,SF470000:9572,SF480000:9573,SF490000:9561,SF500000:9560,SF510000:9554,SF520000:9555,SF530000:9579,SF540000:9578,Sacute:346,Sacutedotaccent:7780,Sampigreek:992,Scaron:352,Scarondotaccent:7782,Scaronsmall:63229,Scedilla:350,Schwa:399,Schwacyrillic:1240,Schwadieresiscyrillic:1242,Scircle:9416,Scircumflex:348,Scommaaccent:536,Sdotaccent:7776,Sdotbelow:7778,Sdotbelowdotaccent:7784,Seharmenian:1357,Sevenroman:8550,Shaarmenian:1351,Shacyrillic:1064,Shchacyrillic:1065,Sheicoptic:994,Shhacyrillic:1210,Shimacoptic:1004,Sigma:931,Sixroman:8549,Smonospace:65331,Softsigncyrillic:1068,Ssmall:63347,Stigmagreek:986,T:84,Tau:932,Tbar:358,Tcaron:356,Tcedilla:354,Tcircle:9417,Tcircumflexbelow:7792,Tcommaaccent:354,Tdotaccent:7786,Tdotbelow:7788,Tecyrillic:1058,Tedescendercyrillic:1196,Tenroman:8553,Tetsecyrillic:1204,Theta:920,Thook:428,Thorn:222,Thornsmall:63486,Threeroman:8546,Tildesmall:63230,Tiwnarmenian:1359,Tlinebelow:7790,Tmonospace:65332,Toarmenian:1337,Tonefive:444,Tonesix:388,Tonetwo:423,Tretroflexhook:430,Tsecyrillic:1062,Tshecyrillic:1035,Tsmall:63348,Twelveroman:8555,Tworoman:8545,U:85,Uacute:218,Uacutesmall:63482,Ubreve:364,Ucaron:467,Ucircle:9418,Ucircumflex:219,Ucircumflexbelow:7798,Ucircumflexsmall:63483,Ucyrillic:1059,Udblacute:368,Udblgrave:532,Udieresis:220,Udieresisacute:471,Udieresisbelow:7794,Udieresiscaron:473,Udieresiscyrillic:1264,Udieresisgrave:475,Udieresismacron:469,Udieresissmall:63484,Udotbelow:7908,Ugrave:217,Ugravesmall:63481,Uhookabove:7910,Uhorn:431,Uhornacute:7912,Uhorndotbelow:7920,Uhorngrave:7914,Uhornhookabove:7916,Uhorntilde:7918,Uhungarumlaut:368,Uhungarumlautcyrillic:1266,Uinvertedbreve:534,Ukcyrillic:1144,Umacron:362,Umacroncyrillic:1262,Umacrondieresis:7802,Umonospace:65333,Uogonek:370,Upsilon:933,Upsilon1:978,Upsilonacutehooksymbolgreek:979,Upsilonafrican:433,Upsilondieresis:939,Upsilondieresishooksymbolgreek:980,Upsilonhooksymbol:978,Upsilontonos:910,Uring:366,Ushortcyrillic:1038,Usmall:63349,Ustraightcyrillic:1198,Ustraightstrokecyrillic:1200,Utilde:360,Utildeacute:7800,Utildebelow:7796,V:86,Vcircle:9419,Vdotbelow:7806,Vecyrillic:1042,Vewarmenian:1358,Vhook:434,Vmonospace:65334,Voarmenian:1352,Vsmall:63350,Vtilde:7804,W:87,Wacute:7810,Wcircle:9420,Wcircumflex:372,Wdieresis:7812,Wdotaccent:7814,Wdotbelow:7816,Wgrave:7808,Wmonospace:65335,Wsmall:63351,X:88,Xcircle:9421,Xdieresis:7820,Xdotaccent:7818,Xeharmenian:1341,Xi:926,Xmonospace:65336,Xsmall:63352,Y:89,Yacute:221,Yacutesmall:63485,Yatcyrillic:1122,Ycircle:9422,Ycircumflex:374,Ydieresis:376,Ydieresissmall:63487,Ydotaccent:7822,Ydotbelow:7924,Yericyrillic:1067,Yerudieresiscyrillic:1272,Ygrave:7922,Yhook:435,Yhookabove:7926,Yiarmenian:1349,Yicyrillic:1031,Yiwnarmenian:1362,Ymonospace:65337,Ysmall:63353,Ytilde:7928,Yusbigcyrillic:1130,Yusbigiotifiedcyrillic:1132,Yuslittlecyrillic:1126,Yuslittleiotifiedcyrillic:1128,Z:90,Zaarmenian:1334,Zacute:377,Zcaron:381,Zcaronsmall:63231,Zcircle:9423,Zcircumflex:7824,Zdot:379,Zdotaccent:379,Zdotbelow:7826,Zecyrillic:1047,Zedescendercyrillic:1176,Zedieresiscyrillic:1246,Zeta:918,Zhearmenian:1338,Zhebrevecyrillic:1217,Zhecyrillic:1046,Zhedescendercyrillic:1174,Zhedieresiscyrillic:1244,Zlinebelow:7828,Zmonospace:65338,Zsmall:63354,Zstroke:437,a:97,aabengali:2438,aacute:225,aadeva:2310,aagujarati:2694,aagurmukhi:2566,aamatragurmukhi:2622,aarusquare:13059,aavowelsignbengali:2494,aavowelsigndeva:2366,aavowelsigngujarati:2750,abbreviationmarkarmenian:1375,abbreviationsigndeva:2416,abengali:2437,abopomofo:12570,abreve:259,abreveacute:7855,abrevecyrillic:1233,abrevedotbelow:7863,abrevegrave:7857,abrevehookabove:7859,abrevetilde:7861,acaron:462,acircle:9424,acircumflex:226,acircumflexacute:7845,acircumflexdotbelow:7853,acircumflexgrave:7847,acircumflexhookabove:7849,acircumflextilde:7851,acute:180,acutebelowcmb:791,acutecmb:769,acutecomb:769,acutedeva:2388,acutelowmod:719,acutetonecmb:833,acyrillic:1072,adblgrave:513,addakgurmukhi:2673,adeva:2309,adieresis:228,adieresiscyrillic:1235,adieresismacron:479,adotbelow:7841,adotmacron:481,ae:230,aeacute:509,aekorean:12624,aemacron:483,afii00208:8213,afii08941:8356,afii10017:1040,afii10018:1041,afii10019:1042,afii10020:1043,afii10021:1044,afii10022:1045,afii10023:1025,afii10024:1046,afii10025:1047,afii10026:1048,afii10027:1049,afii10028:1050,afii10029:1051,afii10030:1052,afii10031:1053,afii10032:1054,afii10033:1055,afii10034:1056,afii10035:1057,afii10036:1058,afii10037:1059,afii10038:1060,afii10039:1061,afii10040:1062,afii10041:1063,afii10042:1064,afii10043:1065,afii10044:1066,afii10045:1067,afii10046:1068,afii10047:1069,afii10048:1070,afii10049:1071,afii10050:1168,afii10051:1026,afii10052:1027,afii10053:1028,afii10054:1029,afii10055:1030,afii10056:1031,afii10057:1032,afii10058:1033,afii10059:1034,afii10060:1035,afii10061:1036,afii10062:1038,afii10063:63172,afii10064:63173,afii10065:1072,afii10066:1073,afii10067:1074,afii10068:1075,afii10069:1076,afii10070:1077,afii10071:1105,afii10072:1078,afii10073:1079,afii10074:1080,afii10075:1081,afii10076:1082,afii10077:1083,afii10078:1084,afii10079:1085,afii10080:1086,afii10081:1087,afii10082:1088,afii10083:1089,afii10084:1090,afii10085:1091,afii10086:1092,afii10087:1093,afii10088:1094,afii10089:1095,afii10090:1096,afii10091:1097,afii10092:1098,afii10093:1099,afii10094:1100,afii10095:1101,afii10096:1102,afii10097:1103,afii10098:1169,afii10099:1106,afii10100:1107,afii10101:1108,afii10102:1109,afii10103:1110,afii10104:1111,afii10105:1112,afii10106:1113,afii10107:1114,afii10108:1115,afii10109:1116,afii10110:1118,afii10145:1039,afii10146:1122,afii10147:1138,afii10148:1140,afii10192:63174,afii10193:1119,afii10194:1123,afii10195:1139,afii10196:1141,afii10831:63175,afii10832:63176,afii10846:1241,afii299:8206,afii300:8207,afii301:8205,afii57381:1642,afii57388:1548,afii57392:1632,afii57393:1633,afii57394:1634,afii57395:1635,afii57396:1636,afii57397:1637,afii57398:1638,afii57399:1639,afii57400:1640,afii57401:1641,afii57403:1563,afii57407:1567,afii57409:1569,afii57410:1570,afii57411:1571,afii57412:1572,afii57413:1573,afii57414:1574,afii57415:1575,afii57416:1576,afii57417:1577,afii57418:1578,afii57419:1579,afii57420:1580,afii57421:1581,afii57422:1582,afii57423:1583,afii57424:1584,afii57425:1585,afii57426:1586,afii57427:1587,afii57428:1588,afii57429:1589,afii57430:1590,afii57431:1591,afii57432:1592,afii57433:1593,afii57434:1594,afii57440:1600,afii57441:1601,afii57442:1602,afii57443:1603,afii57444:1604,afii57445:1605,afii57446:1606,afii57448:1608,afii57449:1609,afii57450:1610,afii57451:1611,afii57452:1612,afii57453:1613,afii57454:1614,afii57455:1615,afii57456:1616,afii57457:1617,afii57458:1618,afii57470:1607,afii57505:1700,afii57506:1662,afii57507:1670,afii57508:1688,afii57509:1711,afii57511:1657,afii57512:1672,afii57513:1681,afii57514:1722,afii57519:1746,afii57534:1749,afii57636:8362,afii57645:1470,afii57658:1475,afii57664:1488,afii57665:1489,afii57666:1490,afii57667:1491,afii57668:1492,afii57669:1493,afii57670:1494,afii57671:1495,afii57672:1496,afii57673:1497,afii57674:1498,afii57675:1499,afii57676:1500,afii57677:1501,afii57678:1502,afii57679:1503,afii57680:1504,afii57681:1505,afii57682:1506,afii57683:1507,afii57684:1508,afii57685:1509,afii57686:1510,afii57687:1511,afii57688:1512,afii57689:1513,afii57690:1514,afii57694:64298,afii57695:64299,afii57700:64331,afii57705:64287,afii57716:1520,afii57717:1521,afii57718:1522,afii57723:64309,afii57793:1460,afii57794:1461,afii57795:1462,afii57796:1467,afii57797:1464,afii57798:1463,afii57799:1456,afii57800:1458,afii57801:1457,afii57802:1459,afii57803:1474,afii57804:1473,afii57806:1465,afii57807:1468,afii57839:1469,afii57841:1471,afii57842:1472,afii57929:700,afii61248:8453,afii61289:8467,afii61352:8470,afii61573:8236,afii61574:8237,afii61575:8238,afii61664:8204,afii63167:1645,afii64937:701,agrave:224,agujarati:2693,agurmukhi:2565,ahiragana:12354,ahookabove:7843,aibengali:2448,aibopomofo:12574,aideva:2320,aiecyrillic:1237,aigujarati:2704,aigurmukhi:2576,aimatragurmukhi:2632,ainarabic:1593,ainfinalarabic:65226,aininitialarabic:65227,ainmedialarabic:65228,ainvertedbreve:515,aivowelsignbengali:2504,aivowelsigndeva:2376,aivowelsigngujarati:2760,akatakana:12450,akatakanahalfwidth:65393,akorean:12623,alef:1488,alefarabic:1575,alefdageshhebrew:64304,aleffinalarabic:65166,alefhamzaabovearabic:1571,alefhamzaabovefinalarabic:65156,alefhamzabelowarabic:1573,alefhamzabelowfinalarabic:65160,alefhebrew:1488,aleflamedhebrew:64335,alefmaddaabovearabic:1570,alefmaddaabovefinalarabic:65154,alefmaksuraarabic:1609,alefmaksurafinalarabic:65264,alefmaksurainitialarabic:65267,alefmaksuramedialarabic:65268,alefpatahhebrew:64302,alefqamatshebrew:64303,aleph:8501,allequal:8780,alpha:945,alphatonos:940,amacron:257,amonospace:65345,ampersand:38,ampersandmonospace:65286,ampersandsmall:63270,amsquare:13250,anbopomofo:12578,angbopomofo:12580,angbracketleft:12296,angbracketright:12297,angkhankhuthai:3674,angle:8736,anglebracketleft:12296,anglebracketleftvertical:65087,anglebracketright:12297,anglebracketrightvertical:65088,angleleft:9001,angleright:9002,angstrom:8491,anoteleia:903,anudattadeva:2386,anusvarabengali:2434,anusvaradeva:2306,anusvaragujarati:2690,aogonek:261,apaatosquare:13056,aparen:9372,apostrophearmenian:1370,apostrophemod:700,apple:63743,approaches:8784,approxequal:8776,approxequalorimage:8786,approximatelyequal:8773,araeaekorean:12686,araeakorean:12685,arc:8978,arighthalfring:7834,aring:229,aringacute:507,aringbelow:7681,arrowboth:8596,arrowdashdown:8675,arrowdashleft:8672,arrowdashright:8674,arrowdashup:8673,arrowdblboth:8660,arrowdbldown:8659,arrowdblleft:8656,arrowdblright:8658,arrowdblup:8657,arrowdown:8595,arrowdownleft:8601,arrowdownright:8600,arrowdownwhite:8681,arrowheaddownmod:709,arrowheadleftmod:706,arrowheadrightmod:707,arrowheadupmod:708,arrowhorizex:63719,arrowleft:8592,arrowleftdbl:8656,arrowleftdblstroke:8653,arrowleftoverright:8646,arrowleftwhite:8678,arrowright:8594,arrowrightdblstroke:8655,arrowrightheavy:10142,arrowrightoverleft:8644,arrowrightwhite:8680,arrowtableft:8676,arrowtabright:8677,arrowup:8593,arrowupdn:8597,arrowupdnbse:8616,arrowupdownbase:8616,arrowupleft:8598,arrowupleftofdown:8645,arrowupright:8599,arrowupwhite:8679,arrowvertex:63718,asciicircum:94,asciicircummonospace:65342,asciitilde:126,asciitildemonospace:65374,ascript:593,ascriptturned:594,asmallhiragana:12353,asmallkatakana:12449,asmallkatakanahalfwidth:65383,asterisk:42,asteriskaltonearabic:1645,asteriskarabic:1645,asteriskmath:8727,asteriskmonospace:65290,asterisksmall:65121,asterism:8258,asuperior:63209,asymptoticallyequal:8771,at:64,atilde:227,atmonospace:65312,atsmall:65131,aturned:592,aubengali:2452,aubopomofo:12576,audeva:2324,augujarati:2708,augurmukhi:2580,aulengthmarkbengali:2519,aumatragurmukhi:2636,auvowelsignbengali:2508,auvowelsigndeva:2380,auvowelsigngujarati:2764,avagrahadeva:2365,aybarmenian:1377,ayin:1506,ayinaltonehebrew:64288,ayinhebrew:1506,b:98,babengali:2476,backslash:92,backslashmonospace:65340,badeva:2348,bagujarati:2732,bagurmukhi:2604,bahiragana:12400,bahtthai:3647,bakatakana:12496,bar:124,barmonospace:65372,bbopomofo:12549,bcircle:9425,bdotaccent:7683,bdotbelow:7685,beamedsixteenthnotes:9836,because:8757,becyrillic:1073,beharabic:1576,behfinalarabic:65168,behinitialarabic:65169,behiragana:12409,behmedialarabic:65170,behmeeminitialarabic:64671,behmeemisolatedarabic:64520,behnoonfinalarabic:64621,bekatakana:12505,benarmenian:1378,bet:1489,beta:946,betasymbolgreek:976,betdagesh:64305,betdageshhebrew:64305,bethebrew:1489,betrafehebrew:64332,bhabengali:2477,bhadeva:2349,bhagujarati:2733,bhagurmukhi:2605,bhook:595,bihiragana:12403,bikatakana:12499,bilabialclick:664,bindigurmukhi:2562,birusquare:13105,blackcircle:9679,blackdiamond:9670,blackdownpointingtriangle:9660,blackleftpointingpointer:9668,blackleftpointingtriangle:9664,blacklenticularbracketleft:12304,blacklenticularbracketleftvertical:65083,blacklenticularbracketright:12305,blacklenticularbracketrightvertical:65084,blacklowerlefttriangle:9699,blacklowerrighttriangle:9698,blackrectangle:9644,blackrightpointingpointer:9658,blackrightpointingtriangle:9654,blacksmallsquare:9642,blacksmilingface:9787,blacksquare:9632,blackstar:9733,blackupperlefttriangle:9700,blackupperrighttriangle:9701,blackuppointingsmalltriangle:9652,blackuppointingtriangle:9650,blank:9251,blinebelow:7687,block:9608,bmonospace:65346,bobaimaithai:3610,bohiragana:12412,bokatakana:12508,bparen:9373,bqsquare:13251,braceex:63732,braceleft:123,braceleftbt:63731,braceleftmid:63730,braceleftmonospace:65371,braceleftsmall:65115,bracelefttp:63729,braceleftvertical:65079,braceright:125,bracerightbt:63742,bracerightmid:63741,bracerightmonospace:65373,bracerightsmall:65116,bracerighttp:63740,bracerightvertical:65080,bracketleft:91,bracketleftbt:63728,bracketleftex:63727,bracketleftmonospace:65339,bracketlefttp:63726,bracketright:93,bracketrightbt:63739,bracketrightex:63738,bracketrightmonospace:65341,bracketrighttp:63737,breve:728,brevebelowcmb:814,brevecmb:774,breveinvertedbelowcmb:815,breveinvertedcmb:785,breveinverteddoublecmb:865,bridgebelowcmb:810,bridgeinvertedbelowcmb:826,brokenbar:166,bstroke:384,bsuperior:63210,btopbar:387,buhiragana:12406,bukatakana:12502,bullet:8226,bulletinverse:9688,bulletoperator:8729,bullseye:9678,c:99,caarmenian:1390,cabengali:2458,cacute:263,cadeva:2330,cagujarati:2714,cagurmukhi:2586,calsquare:13192,candrabindubengali:2433,candrabinducmb:784,candrabindudeva:2305,candrabindugujarati:2689,capslock:8682,careof:8453,caron:711,caronbelowcmb:812,caroncmb:780,carriagereturn:8629,cbopomofo:12568,ccaron:269,ccedilla:231,ccedillaacute:7689,ccircle:9426,ccircumflex:265,ccurl:597,cdot:267,cdotaccent:267,cdsquare:13253,cedilla:184,cedillacmb:807,cent:162,centigrade:8451,centinferior:63199,centmonospace:65504,centoldstyle:63394,centsuperior:63200,chaarmenian:1401,chabengali:2459,chadeva:2331,chagujarati:2715,chagurmukhi:2587,chbopomofo:12564,cheabkhasiancyrillic:1213,checkmark:10003,checyrillic:1095,chedescenderabkhasiancyrillic:1215,chedescendercyrillic:1207,chedieresiscyrillic:1269,cheharmenian:1395,chekhakassiancyrillic:1228,cheverticalstrokecyrillic:1209,chi:967,chieuchacirclekorean:12919,chieuchaparenkorean:12823,chieuchcirclekorean:12905,chieuchkorean:12618,chieuchparenkorean:12809,chochangthai:3594,chochanthai:3592,chochingthai:3593,chochoethai:3596,chook:392,cieucacirclekorean:12918,cieucaparenkorean:12822,cieuccirclekorean:12904,cieuckorean:12616,cieucparenkorean:12808,cieucuparenkorean:12828,circle:9675,circlecopyrt:169,circlemultiply:8855,circleot:8857,circleplus:8853,circlepostalmark:12342,circlewithlefthalfblack:9680,circlewithrighthalfblack:9681,circumflex:710,circumflexbelowcmb:813,circumflexcmb:770,clear:8999,clickalveolar:450,clickdental:448,clicklateral:449,clickretroflex:451,club:9827,clubsuitblack:9827,clubsuitwhite:9831,cmcubedsquare:13220,cmonospace:65347,cmsquaredsquare:13216,coarmenian:1409,colon:58,colonmonetary:8353,colonmonospace:65306,colonsign:8353,colonsmall:65109,colontriangularhalfmod:721,colontriangularmod:720,comma:44,commaabovecmb:787,commaaboverightcmb:789,commaaccent:63171,commaarabic:1548,commaarmenian:1373,commainferior:63201,commamonospace:65292,commareversedabovecmb:788,commareversedmod:701,commasmall:65104,commasuperior:63202,commaturnedabovecmb:786,commaturnedmod:699,compass:9788,congruent:8773,contourintegral:8750,control:8963,controlACK:6,controlBEL:7,controlBS:8,controlCAN:24,controlCR:13,controlDC1:17,controlDC2:18,controlDC3:19,controlDC4:20,controlDEL:127,controlDLE:16,controlEM:25,controlENQ:5,controlEOT:4,controlESC:27,controlETB:23,controlETX:3,controlFF:12,controlFS:28,controlGS:29,controlHT:9,controlLF:10,controlNAK:21,controlRS:30,controlSI:15,controlSO:14,controlSOT:2,controlSTX:1,controlSUB:26,controlSYN:22,controlUS:31,controlVT:11,copyright:169,copyrightsans:63721,copyrightserif:63193,cornerbracketleft:12300,cornerbracketlefthalfwidth:65378,cornerbracketleftvertical:65089,cornerbracketright:12301,cornerbracketrighthalfwidth:65379,cornerbracketrightvertical:65090,corporationsquare:13183,cosquare:13255,coverkgsquare:13254,cparen:9374,cruzeiro:8354,cstretched:663,curlyand:8911,curlyor:8910,currency:164,cyrBreve:63185,cyrFlex:63186,cyrbreve:63188,cyrflex:63189,d:100,daarmenian:1380,dabengali:2470,dadarabic:1590,dadeva:2342,dadfinalarabic:65214,dadinitialarabic:65215,dadmedialarabic:65216,dagesh:1468,dageshhebrew:1468,dagger:8224,daggerdbl:8225,dagujarati:2726,dagurmukhi:2598,dahiragana:12384,dakatakana:12480,dalarabic:1583,dalet:1491,daletdagesh:64307,daletdageshhebrew:64307,dalethebrew:1491,dalfinalarabic:65194,dammaarabic:1615,dammalowarabic:1615,dammatanaltonearabic:1612,dammatanarabic:1612,danda:2404,dargahebrew:1447,dargalefthebrew:1447,dasiapneumatacyrilliccmb:1157,dblGrave:63187,dblanglebracketleft:12298,dblanglebracketleftvertical:65085,dblanglebracketright:12299,dblanglebracketrightvertical:65086,dblarchinvertedbelowcmb:811,dblarrowleft:8660,dblarrowright:8658,dbldanda:2405,dblgrave:63190,dblgravecmb:783,dblintegral:8748,dbllowline:8215,dbllowlinecmb:819,dbloverlinecmb:831,dblprimemod:698,dblverticalbar:8214,dblverticallineabovecmb:782,dbopomofo:12553,dbsquare:13256,dcaron:271,dcedilla:7697,dcircle:9427,dcircumflexbelow:7699,dcroat:273,ddabengali:2465,ddadeva:2337,ddagujarati:2721,ddagurmukhi:2593,ddalarabic:1672,ddalfinalarabic:64393,dddhadeva:2396,ddhabengali:2466,ddhadeva:2338,ddhagujarati:2722,ddhagurmukhi:2594,ddotaccent:7691,ddotbelow:7693,decimalseparatorarabic:1643,decimalseparatorpersian:1643,decyrillic:1076,degree:176,dehihebrew:1453,dehiragana:12391,deicoptic:1007,dekatakana:12487,deleteleft:9003,deleteright:8998,delta:948,deltaturned:397,denominatorminusonenumeratorbengali:2552,dezh:676,dhabengali:2471,dhadeva:2343,dhagujarati:2727,dhagurmukhi:2599,dhook:599,dialytikatonos:901,dialytikatonoscmb:836,diamond:9830,diamondsuitwhite:9826,dieresis:168,dieresisacute:63191,dieresisbelowcmb:804,dieresiscmb:776,dieresisgrave:63192,dieresistonos:901,dihiragana:12386,dikatakana:12482,dittomark:12291,divide:247,divides:8739,divisionslash:8725,djecyrillic:1106,dkshade:9619,dlinebelow:7695,dlsquare:13207,dmacron:273,dmonospace:65348,dnblock:9604,dochadathai:3598,dodekthai:3604,dohiragana:12393,dokatakana:12489,dollar:36,dollarinferior:63203,dollarmonospace:65284,dollaroldstyle:63268,dollarsmall:65129,dollarsuperior:63204,dong:8363,dorusquare:13094,dotaccent:729,dotaccentcmb:775,dotbelowcmb:803,dotbelowcomb:803,dotkatakana:12539,dotlessi:305,dotlessj:63166,dotlessjstrokehook:644,dotmath:8901,dottedcircle:9676,doubleyodpatah:64287,doubleyodpatahhebrew:64287,downtackbelowcmb:798,downtackmod:725,dparen:9375,dsuperior:63211,dtail:598,dtopbar:396,duhiragana:12389,dukatakana:12485,dz:499,dzaltone:675,dzcaron:454,dzcurl:677,dzeabkhasiancyrillic:1249,dzecyrillic:1109,dzhecyrillic:1119,e:101,eacute:233,earth:9793,ebengali:2447,ebopomofo:12572,ebreve:277,ecandradeva:2317,ecandragujarati:2701,ecandravowelsigndeva:2373,ecandravowelsigngujarati:2757,ecaron:283,ecedillabreve:7709,echarmenian:1381,echyiwnarmenian:1415,ecircle:9428,ecircumflex:234,ecircumflexacute:7871,ecircumflexbelow:7705,ecircumflexdotbelow:7879,ecircumflexgrave:7873,ecircumflexhookabove:7875,ecircumflextilde:7877,ecyrillic:1108,edblgrave:517,edeva:2319,edieresis:235,edot:279,edotaccent:279,edotbelow:7865,eegurmukhi:2575,eematragurmukhi:2631,efcyrillic:1092,egrave:232,egujarati:2703,eharmenian:1383,ehbopomofo:12573,ehiragana:12360,ehookabove:7867,eibopomofo:12575,eight:56,eightarabic:1640,eightbengali:2542,eightcircle:9319,eightcircleinversesansserif:10129,eightdeva:2414,eighteencircle:9329,eighteenparen:9349,eighteenperiod:9369,eightgujarati:2798,eightgurmukhi:2670,eighthackarabic:1640,eighthangzhou:12328,eighthnotebeamed:9835,eightideographicparen:12839,eightinferior:8328,eightmonospace:65304,eightoldstyle:63288,eightparen:9339,eightperiod:9359,eightpersian:1784,eightroman:8567,eightsuperior:8312,eightthai:3672,einvertedbreve:519,eiotifiedcyrillic:1125,ekatakana:12456,ekatakanahalfwidth:65396,ekonkargurmukhi:2676,ekorean:12628,elcyrillic:1083,element:8712,elevencircle:9322,elevenparen:9342,elevenperiod:9362,elevenroman:8570,ellipsis:8230,ellipsisvertical:8942,emacron:275,emacronacute:7703,emacrongrave:7701,emcyrillic:1084,emdash:8212,emdashvertical:65073,emonospace:65349,emphasismarkarmenian:1371,emptyset:8709,enbopomofo:12579,encyrillic:1085,endash:8211,endashvertical:65074,endescendercyrillic:1187,eng:331,engbopomofo:12581,enghecyrillic:1189,enhookcyrillic:1224,enspace:8194,eogonek:281,eokorean:12627,eopen:603,eopenclosed:666,eopenreversed:604,eopenreversedclosed:606,eopenreversedhook:605,eparen:9376,epsilon:949,epsilontonos:941,equal:61,equalmonospace:65309,equalsmall:65126,equalsuperior:8316,equivalence:8801,erbopomofo:12582,ercyrillic:1088,ereversed:600,ereversedcyrillic:1101,escyrillic:1089,esdescendercyrillic:1195,esh:643,eshcurl:646,eshortdeva:2318,eshortvowelsigndeva:2374,eshreversedloop:426,eshsquatreversed:645,esmallhiragana:12359,esmallkatakana:12455,esmallkatakanahalfwidth:65386,estimated:8494,esuperior:63212,eta:951,etarmenian:1384,etatonos:942,eth:240,etilde:7869,etildebelow:7707,etnahtafoukhhebrew:1425,etnahtafoukhlefthebrew:1425,etnahtahebrew:1425,etnahtalefthebrew:1425,eturned:477,eukorean:12641,euro:8364,evowelsignbengali:2503,evowelsigndeva:2375,evowelsigngujarati:2759,exclam:33,exclamarmenian:1372,exclamdbl:8252,exclamdown:161,exclamdownsmall:63393,exclammonospace:65281,exclamsmall:63265,existential:8707,ezh:658,ezhcaron:495,ezhcurl:659,ezhreversed:441,ezhtail:442,f:102,fadeva:2398,fagurmukhi:2654,fahrenheit:8457,fathaarabic:1614,fathalowarabic:1614,fathatanarabic:1611,fbopomofo:12552,fcircle:9429,fdotaccent:7711,feharabic:1601,feharmenian:1414,fehfinalarabic:65234,fehinitialarabic:65235,fehmedialarabic:65236,feicoptic:997,female:9792,ff:64256,ffi:64259,ffl:64260,fi:64257,fifteencircle:9326,fifteenparen:9346,fifteenperiod:9366,figuredash:8210,filledbox:9632,filledrect:9644,finalkaf:1498,finalkafdagesh:64314,finalkafdageshhebrew:64314,finalkafhebrew:1498,finalmem:1501,finalmemhebrew:1501,finalnun:1503,finalnunhebrew:1503,finalpe:1507,finalpehebrew:1507,finaltsadi:1509,finaltsadihebrew:1509,firsttonechinese:713,fisheye:9673,fitacyrillic:1139,five:53,fivearabic:1637,fivebengali:2539,fivecircle:9316,fivecircleinversesansserif:10126,fivedeva:2411,fiveeighths:8541,fivegujarati:2795,fivegurmukhi:2667,fivehackarabic:1637,fivehangzhou:12325,fiveideographicparen:12836,fiveinferior:8325,fivemonospace:65301,fiveoldstyle:63285,fiveparen:9336,fiveperiod:9356,fivepersian:1781,fiveroman:8564,fivesuperior:8309,fivethai:3669,fl:64258,florin:402,fmonospace:65350,fmsquare:13209,fofanthai:3615,fofathai:3613,fongmanthai:3663,forall:8704,four:52,fourarabic:1636,fourbengali:2538,fourcircle:9315,fourcircleinversesansserif:10125,fourdeva:2410,fourgujarati:2794,fourgurmukhi:2666,fourhackarabic:1636,fourhangzhou:12324,fourideographicparen:12835,fourinferior:8324,fourmonospace:65300,fournumeratorbengali:2551,fouroldstyle:63284,fourparen:9335,fourperiod:9355,fourpersian:1780,fourroman:8563,foursuperior:8308,fourteencircle:9325,fourteenparen:9345,fourteenperiod:9365,fourthai:3668,fourthtonechinese:715,fparen:9377,fraction:8260,franc:8355,g:103,gabengali:2455,gacute:501,gadeva:2327,gafarabic:1711,gaffinalarabic:64403,gafinitialarabic:64404,gafmedialarabic:64405,gagujarati:2711,gagurmukhi:2583,gahiragana:12364,gakatakana:12460,gamma:947,gammalatinsmall:611,gammasuperior:736,gangiacoptic:1003,gbopomofo:12557,gbreve:287,gcaron:487,gcedilla:291,gcircle:9430,gcircumflex:285,gcommaaccent:291,gdot:289,gdotaccent:289,gecyrillic:1075,gehiragana:12370,gekatakana:12466,geometricallyequal:8785,gereshaccenthebrew:1436,gereshhebrew:1523,gereshmuqdamhebrew:1437,germandbls:223,gershayimaccenthebrew:1438,gershayimhebrew:1524,getamark:12307,ghabengali:2456,ghadarmenian:1394,ghadeva:2328,ghagujarati:2712,ghagurmukhi:2584,ghainarabic:1594,ghainfinalarabic:65230,ghaininitialarabic:65231,ghainmedialarabic:65232,ghemiddlehookcyrillic:1173,ghestrokecyrillic:1171,gheupturncyrillic:1169,ghhadeva:2394,ghhagurmukhi:2650,ghook:608,ghzsquare:13203,gihiragana:12366,gikatakana:12462,gimarmenian:1379,gimel:1490,gimeldagesh:64306,gimeldageshhebrew:64306,gimelhebrew:1490,gjecyrillic:1107,glottalinvertedstroke:446,glottalstop:660,glottalstopinverted:662,glottalstopmod:704,glottalstopreversed:661,glottalstopreversedmod:705,glottalstopreversedsuperior:740,glottalstopstroke:673,glottalstopstrokereversed:674,gmacron:7713,gmonospace:65351,gohiragana:12372,gokatakana:12468,gparen:9378,gpasquare:13228,gradient:8711,grave:96,gravebelowcmb:790,gravecmb:768,gravecomb:768,gravedeva:2387,gravelowmod:718,gravemonospace:65344,gravetonecmb:832,greater:62,greaterequal:8805,greaterequalorless:8923,greatermonospace:65310,greaterorequivalent:8819,greaterorless:8823,greateroverequal:8807,greatersmall:65125,gscript:609,gstroke:485,guhiragana:12368,guillemotleft:171,guillemotright:187,guilsinglleft:8249,guilsinglright:8250,gukatakana:12464,guramusquare:13080,gysquare:13257,h:104,haabkhasiancyrillic:1193,haaltonearabic:1729,habengali:2489,hadescendercyrillic:1203,hadeva:2361,hagujarati:2745,hagurmukhi:2617,haharabic:1581,hahfinalarabic:65186,hahinitialarabic:65187,hahiragana:12399,hahmedialarabic:65188,haitusquare:13098,hakatakana:12495,hakatakanahalfwidth:65418,halantgurmukhi:2637,hamzaarabic:1569,hamzalowarabic:1569,hangulfiller:12644,hardsigncyrillic:1098,harpoonleftbarbup:8636,harpoonrightbarbup:8640,hasquare:13258,hatafpatah:1458,hatafpatah16:1458,hatafpatah23:1458,hatafpatah2f:1458,
+hatafpatahhebrew:1458,hatafpatahnarrowhebrew:1458,hatafpatahquarterhebrew:1458,hatafpatahwidehebrew:1458,hatafqamats:1459,hatafqamats1b:1459,hatafqamats28:1459,hatafqamats34:1459,hatafqamatshebrew:1459,hatafqamatsnarrowhebrew:1459,hatafqamatsquarterhebrew:1459,hatafqamatswidehebrew:1459,hatafsegol:1457,hatafsegol17:1457,hatafsegol24:1457,hatafsegol30:1457,hatafsegolhebrew:1457,hatafsegolnarrowhebrew:1457,hatafsegolquarterhebrew:1457,hatafsegolwidehebrew:1457,hbar:295,hbopomofo:12559,hbrevebelow:7723,hcedilla:7721,hcircle:9431,hcircumflex:293,hdieresis:7719,hdotaccent:7715,hdotbelow:7717,he:1492,heart:9829,heartsuitblack:9829,heartsuitwhite:9825,hedagesh:64308,hedageshhebrew:64308,hehaltonearabic:1729,heharabic:1607,hehebrew:1492,hehfinalaltonearabic:64423,hehfinalalttwoarabic:65258,hehfinalarabic:65258,hehhamzaabovefinalarabic:64421,hehhamzaaboveisolatedarabic:64420,hehinitialaltonearabic:64424,hehinitialarabic:65259,hehiragana:12408,hehmedialaltonearabic:64425,hehmedialarabic:65260,heiseierasquare:13179,hekatakana:12504,hekatakanahalfwidth:65421,hekutaarusquare:13110,henghook:615,herutusquare:13113,het:1495,hethebrew:1495,hhook:614,hhooksuperior:689,hieuhacirclekorean:12923,hieuhaparenkorean:12827,hieuhcirclekorean:12909,hieuhkorean:12622,hieuhparenkorean:12813,hihiragana:12402,hikatakana:12498,hikatakanahalfwidth:65419,hiriq:1460,hiriq14:1460,hiriq21:1460,hiriq2d:1460,hiriqhebrew:1460,hiriqnarrowhebrew:1460,hiriqquarterhebrew:1460,hiriqwidehebrew:1460,hlinebelow:7830,hmonospace:65352,hoarmenian:1392,hohipthai:3627,hohiragana:12411,hokatakana:12507,hokatakanahalfwidth:65422,holam:1465,holam19:1465,holam26:1465,holam32:1465,holamhebrew:1465,holamnarrowhebrew:1465,holamquarterhebrew:1465,holamwidehebrew:1465,honokhukthai:3630,hookabovecomb:777,hookcmb:777,hookpalatalizedbelowcmb:801,hookretroflexbelowcmb:802,hoonsquare:13122,horicoptic:1001,horizontalbar:8213,horncmb:795,hotsprings:9832,house:8962,hparen:9379,hsuperior:688,hturned:613,huhiragana:12405,huiitosquare:13107,hukatakana:12501,hukatakanahalfwidth:65420,hungarumlaut:733,hungarumlautcmb:779,hv:405,hyphen:45,hypheninferior:63205,hyphenmonospace:65293,hyphensmall:65123,hyphensuperior:63206,hyphentwo:8208,i:105,iacute:237,iacyrillic:1103,ibengali:2439,ibopomofo:12583,ibreve:301,icaron:464,icircle:9432,icircumflex:238,icyrillic:1110,idblgrave:521,ideographearthcircle:12943,ideographfirecircle:12939,ideographicallianceparen:12863,ideographiccallparen:12858,ideographiccentrecircle:12965,ideographicclose:12294,ideographiccomma:12289,ideographiccommaleft:65380,ideographiccongratulationparen:12855,ideographiccorrectcircle:12963,ideographicearthparen:12847,ideographicenterpriseparen:12861,ideographicexcellentcircle:12957,ideographicfestivalparen:12864,ideographicfinancialcircle:12950,ideographicfinancialparen:12854,ideographicfireparen:12843,ideographichaveparen:12850,ideographichighcircle:12964,ideographiciterationmark:12293,ideographiclaborcircle:12952,ideographiclaborparen:12856,ideographicleftcircle:12967,ideographiclowcircle:12966,ideographicmedicinecircle:12969,ideographicmetalparen:12846,ideographicmoonparen:12842,ideographicnameparen:12852,ideographicperiod:12290,ideographicprintcircle:12958,ideographicreachparen:12867,ideographicrepresentparen:12857,ideographicresourceparen:12862,ideographicrightcircle:12968,ideographicsecretcircle:12953,ideographicselfparen:12866,ideographicsocietyparen:12851,ideographicspace:12288,ideographicspecialparen:12853,ideographicstockparen:12849,ideographicstudyparen:12859,ideographicsunparen:12848,ideographicsuperviseparen:12860,ideographicwaterparen:12844,ideographicwoodparen:12845,ideographiczero:12295,ideographmetalcircle:12942,ideographmooncircle:12938,ideographnamecircle:12948,ideographsuncircle:12944,ideographwatercircle:12940,ideographwoodcircle:12941,ideva:2311,idieresis:239,idieresisacute:7727,idieresiscyrillic:1253,idotbelow:7883,iebrevecyrillic:1239,iecyrillic:1077,ieungacirclekorean:12917,ieungaparenkorean:12821,ieungcirclekorean:12903,ieungkorean:12615,ieungparenkorean:12807,igrave:236,igujarati:2695,igurmukhi:2567,ihiragana:12356,ihookabove:7881,iibengali:2440,iicyrillic:1080,iideva:2312,iigujarati:2696,iigurmukhi:2568,iimatragurmukhi:2624,iinvertedbreve:523,iishortcyrillic:1081,iivowelsignbengali:2496,iivowelsigndeva:2368,iivowelsigngujarati:2752,ij:307,ikatakana:12452,ikatakanahalfwidth:65394,ikorean:12643,ilde:732,iluyhebrew:1452,imacron:299,imacroncyrillic:1251,imageorapproximatelyequal:8787,imatragurmukhi:2623,imonospace:65353,increment:8710,infinity:8734,iniarmenian:1387,integral:8747,integralbottom:8993,integralbt:8993,integralex:63733,integraltop:8992,integraltp:8992,intersection:8745,intisquare:13061,invbullet:9688,invcircle:9689,invsmileface:9787,iocyrillic:1105,iogonek:303,iota:953,iotadieresis:970,iotadieresistonos:912,iotalatin:617,iotatonos:943,iparen:9380,irigurmukhi:2674,ismallhiragana:12355,ismallkatakana:12451,ismallkatakanahalfwidth:65384,issharbengali:2554,istroke:616,isuperior:63213,iterationhiragana:12445,iterationkatakana:12541,itilde:297,itildebelow:7725,iubopomofo:12585,iucyrillic:1102,ivowelsignbengali:2495,ivowelsigndeva:2367,ivowelsigngujarati:2751,izhitsacyrillic:1141,izhitsadblgravecyrillic:1143,j:106,jaarmenian:1393,jabengali:2460,jadeva:2332,jagujarati:2716,jagurmukhi:2588,jbopomofo:12560,jcaron:496,jcircle:9433,jcircumflex:309,jcrossedtail:669,jdotlessstroke:607,jecyrillic:1112,jeemarabic:1580,jeemfinalarabic:65182,jeeminitialarabic:65183,jeemmedialarabic:65184,jeharabic:1688,jehfinalarabic:64395,jhabengali:2461,jhadeva:2333,jhagujarati:2717,jhagurmukhi:2589,jheharmenian:1403,jis:12292,jmonospace:65354,jparen:9381,jsuperior:690,k:107,kabashkircyrillic:1185,kabengali:2453,kacute:7729,kacyrillic:1082,kadescendercyrillic:1179,kadeva:2325,kaf:1499,kafarabic:1603,kafdagesh:64315,kafdageshhebrew:64315,kaffinalarabic:65242,kafhebrew:1499,kafinitialarabic:65243,kafmedialarabic:65244,kafrafehebrew:64333,kagujarati:2709,kagurmukhi:2581,kahiragana:12363,kahookcyrillic:1220,kakatakana:12459,kakatakanahalfwidth:65398,kappa:954,kappasymbolgreek:1008,kapyeounmieumkorean:12657,kapyeounphieuphkorean:12676,kapyeounpieupkorean:12664,kapyeounssangpieupkorean:12665,karoriisquare:13069,kashidaautoarabic:1600,kashidaautonosidebearingarabic:1600,kasmallkatakana:12533,kasquare:13188,kasraarabic:1616,kasratanarabic:1613,kastrokecyrillic:1183,katahiraprolongmarkhalfwidth:65392,kaverticalstrokecyrillic:1181,kbopomofo:12558,kcalsquare:13193,kcaron:489,kcedilla:311,kcircle:9434,kcommaaccent:311,kdotbelow:7731,keharmenian:1412,kehiragana:12369,kekatakana:12465,kekatakanahalfwidth:65401,kenarmenian:1391,kesmallkatakana:12534,kgreenlandic:312,khabengali:2454,khacyrillic:1093,khadeva:2326,khagujarati:2710,khagurmukhi:2582,khaharabic:1582,khahfinalarabic:65190,khahinitialarabic:65191,khahmedialarabic:65192,kheicoptic:999,khhadeva:2393,khhagurmukhi:2649,khieukhacirclekorean:12920,khieukhaparenkorean:12824,khieukhcirclekorean:12906,khieukhkorean:12619,khieukhparenkorean:12810,khokhaithai:3586,khokhonthai:3589,khokhuatthai:3587,khokhwaithai:3588,khomutthai:3675,khook:409,khorakhangthai:3590,khzsquare:13201,kihiragana:12365,kikatakana:12461,kikatakanahalfwidth:65399,kiroguramusquare:13077,kiromeetorusquare:13078,kirosquare:13076,kiyeokacirclekorean:12910,kiyeokaparenkorean:12814,kiyeokcirclekorean:12896,kiyeokkorean:12593,kiyeokparenkorean:12800,kiyeoksioskorean:12595,kjecyrillic:1116,klinebelow:7733,klsquare:13208,kmcubedsquare:13222,kmonospace:65355,kmsquaredsquare:13218,kohiragana:12371,kohmsquare:13248,kokaithai:3585,kokatakana:12467,kokatakanahalfwidth:65402,kooposquare:13086,koppacyrillic:1153,koreanstandardsymbol:12927,koroniscmb:835,kparen:9382,kpasquare:13226,ksicyrillic:1135,ktsquare:13263,kturned:670,kuhiragana:12367,kukatakana:12463,kukatakanahalfwidth:65400,kvsquare:13240,kwsquare:13246,l:108,labengali:2482,lacute:314,ladeva:2354,lagujarati:2738,lagurmukhi:2610,lakkhangyaothai:3653,lamaleffinalarabic:65276,lamalefhamzaabovefinalarabic:65272,lamalefhamzaaboveisolatedarabic:65271,lamalefhamzabelowfinalarabic:65274,lamalefhamzabelowisolatedarabic:65273,lamalefisolatedarabic:65275,lamalefmaddaabovefinalarabic:65270,lamalefmaddaaboveisolatedarabic:65269,lamarabic:1604,lambda:955,lambdastroke:411,lamed:1500,lameddagesh:64316,lameddageshhebrew:64316,lamedhebrew:1500,lamfinalarabic:65246,lamhahinitialarabic:64714,laminitialarabic:65247,lamjeeminitialarabic:64713,lamkhahinitialarabic:64715,lamlamhehisolatedarabic:65010,lammedialarabic:65248,lammeemhahinitialarabic:64904,lammeeminitialarabic:64716,largecircle:9711,lbar:410,lbelt:620,lbopomofo:12556,lcaron:318,lcedilla:316,lcircle:9435,lcircumflexbelow:7741,lcommaaccent:316,ldot:320,ldotaccent:320,ldotbelow:7735,ldotbelowmacron:7737,leftangleabovecmb:794,lefttackbelowcmb:792,less:60,lessequal:8804,lessequalorgreater:8922,lessmonospace:65308,lessorequivalent:8818,lessorgreater:8822,lessoverequal:8806,lesssmall:65124,lezh:622,lfblock:9612,lhookretroflex:621,lira:8356,liwnarmenian:1388,lj:457,ljecyrillic:1113,ll:63168,lladeva:2355,llagujarati:2739,llinebelow:7739,llladeva:2356,llvocalicbengali:2529,llvocalicdeva:2401,llvocalicvowelsignbengali:2531,llvocalicvowelsigndeva:2403,lmiddletilde:619,lmonospace:65356,lmsquare:13264,lochulathai:3628,logicaland:8743,logicalnot:172,logicalnotreversed:8976,logicalor:8744,lolingthai:3621,longs:383,lowlinecenterline:65102,lowlinecmb:818,lowlinedashed:65101,lozenge:9674,lparen:9383,lslash:322,lsquare:8467,lsuperior:63214,ltshade:9617,luthai:3622,lvocalicbengali:2444,lvocalicdeva:2316,lvocalicvowelsignbengali:2530,lvocalicvowelsigndeva:2402,lxsquare:13267,m:109,mabengali:2478,macron:175,macronbelowcmb:817,macroncmb:772,macronlowmod:717,macronmonospace:65507,macute:7743,madeva:2350,magujarati:2734,magurmukhi:2606,mahapakhhebrew:1444,mahapakhlefthebrew:1444,mahiragana:12414,maichattawalowleftthai:63637,maichattawalowrightthai:63636,maichattawathai:3659,maichattawaupperleftthai:63635,maieklowleftthai:63628,maieklowrightthai:63627,maiekthai:3656,maiekupperleftthai:63626,maihanakatleftthai:63620,maihanakatthai:3633,maitaikhuleftthai:63625,maitaikhuthai:3655,maitholowleftthai:63631,maitholowrightthai:63630,maithothai:3657,maithoupperleftthai:63629,maitrilowleftthai:63634,maitrilowrightthai:63633,maitrithai:3658,maitriupperleftthai:63632,maiyamokthai:3654,makatakana:12510,makatakanahalfwidth:65423,male:9794,mansyonsquare:13127,maqafhebrew:1470,mars:9794,masoracirclehebrew:1455,masquare:13187,mbopomofo:12551,mbsquare:13268,mcircle:9436,mcubedsquare:13221,mdotaccent:7745,mdotbelow:7747,meemarabic:1605,meemfinalarabic:65250,meeminitialarabic:65251,meemmedialarabic:65252,meemmeeminitialarabic:64721,meemmeemisolatedarabic:64584,meetorusquare:13133,mehiragana:12417,meizierasquare:13182,mekatakana:12513,mekatakanahalfwidth:65426,mem:1502,memdagesh:64318,memdageshhebrew:64318,memhebrew:1502,menarmenian:1396,merkhahebrew:1445,merkhakefulahebrew:1446,merkhakefulalefthebrew:1446,merkhalefthebrew:1445,mhook:625,mhzsquare:13202,middledotkatakanahalfwidth:65381,middot:183,mieumacirclekorean:12914,mieumaparenkorean:12818,mieumcirclekorean:12900,mieumkorean:12609,mieumpansioskorean:12656,mieumparenkorean:12804,mieumpieupkorean:12654,mieumsioskorean:12655,mihiragana:12415,mikatakana:12511,mikatakanahalfwidth:65424,minus:8722,minusbelowcmb:800,minuscircle:8854,minusmod:727,minusplus:8723,minute:8242,miribaarusquare:13130,mirisquare:13129,mlonglegturned:624,mlsquare:13206,mmcubedsquare:13219,mmonospace:65357,mmsquaredsquare:13215,mohiragana:12418,mohmsquare:13249,mokatakana:12514,mokatakanahalfwidth:65427,molsquare:13270,momathai:3617,moverssquare:13223,moverssquaredsquare:13224,mparen:9384,mpasquare:13227,mssquare:13235,msuperior:63215,mturned:623,mu:181,mu1:181,muasquare:13186,muchgreater:8811,muchless:8810,mufsquare:13196,mugreek:956,mugsquare:13197,muhiragana:12416,mukatakana:12512,mukatakanahalfwidth:65425,mulsquare:13205,multiply:215,mumsquare:13211,munahhebrew:1443,munahlefthebrew:1443,musicalnote:9834,musicalnotedbl:9835,musicflatsign:9837,musicsharpsign:9839,mussquare:13234,muvsquare:13238,muwsquare:13244,mvmegasquare:13241,mvsquare:13239,mwmegasquare:13247,mwsquare:13245,n:110,nabengali:2472,nabla:8711,nacute:324,nadeva:2344,nagujarati:2728,nagurmukhi:2600,nahiragana:12394,nakatakana:12490,nakatakanahalfwidth:65413,napostrophe:329,nasquare:13185,nbopomofo:12555,nbspace:160,ncaron:328,ncedilla:326,ncircle:9437,ncircumflexbelow:7755,ncommaaccent:326,ndotaccent:7749,ndotbelow:7751,nehiragana:12397,nekatakana:12493,nekatakanahalfwidth:65416,newsheqelsign:8362,nfsquare:13195,ngabengali:2457,ngadeva:2329,ngagujarati:2713,ngagurmukhi:2585,ngonguthai:3591,nhiragana:12435,nhookleft:626,nhookretroflex:627,nieunacirclekorean:12911,nieunaparenkorean:12815,nieuncieuckorean:12597,nieuncirclekorean:12897,nieunhieuhkorean:12598,nieunkorean:12596,nieunpansioskorean:12648,nieunparenkorean:12801,nieunsioskorean:12647,nieuntikeutkorean:12646,nihiragana:12395,nikatakana:12491,nikatakanahalfwidth:65414,nikhahitleftthai:63641,nikhahitthai:3661,nine:57,ninearabic:1641,ninebengali:2543,ninecircle:9320,ninecircleinversesansserif:10130,ninedeva:2415,ninegujarati:2799,ninegurmukhi:2671,ninehackarabic:1641,ninehangzhou:12329,nineideographicparen:12840,nineinferior:8329,ninemonospace:65305,nineoldstyle:63289,nineparen:9340,nineperiod:9360,ninepersian:1785,nineroman:8568,ninesuperior:8313,nineteencircle:9330,nineteenparen:9350,nineteenperiod:9370,ninethai:3673,nj:460,njecyrillic:1114,nkatakana:12531,nkatakanahalfwidth:65437,nlegrightlong:414,nlinebelow:7753,nmonospace:65358,nmsquare:13210,nnabengali:2467,nnadeva:2339,nnagujarati:2723,nnagurmukhi:2595,nnnadeva:2345,nohiragana:12398,nokatakana:12494,nokatakanahalfwidth:65417,nonbreakingspace:160,nonenthai:3603,nonuthai:3609,noonarabic:1606,noonfinalarabic:65254,noonghunnaarabic:1722,noonghunnafinalarabic:64415,nooninitialarabic:65255,noonjeeminitialarabic:64722,noonjeemisolatedarabic:64587,noonmedialarabic:65256,noonmeeminitialarabic:64725,noonmeemisolatedarabic:64590,noonnoonfinalarabic:64653,notcontains:8716,notelement:8713,notelementof:8713,notequal:8800,notgreater:8815,notgreaternorequal:8817,notgreaternorless:8825,notidentical:8802,notless:8814,notlessnorequal:8816,notparallel:8742,notprecedes:8832,notsubset:8836,notsucceeds:8833,notsuperset:8837,nowarmenian:1398,nparen:9385,nssquare:13233,nsuperior:8319,ntilde:241,nu:957,nuhiragana:12396,nukatakana:12492,nukatakanahalfwidth:65415,nuktabengali:2492,nuktadeva:2364,nuktagujarati:2748,nuktagurmukhi:2620,numbersign:35,numbersignmonospace:65283,numbersignsmall:65119,numeralsigngreek:884,numeralsignlowergreek:885,numero:8470,nun:1504,nundagesh:64320,nundageshhebrew:64320,nunhebrew:1504,nvsquare:13237,nwsquare:13243,nyabengali:2462,nyadeva:2334,nyagujarati:2718,nyagurmukhi:2590,o:111,oacute:243,oangthai:3629,obarred:629,obarredcyrillic:1257,obarreddieresiscyrillic:1259,obengali:2451,obopomofo:12571,obreve:335,ocandradeva:2321,ocandragujarati:2705,ocandravowelsigndeva:2377,ocandravowelsigngujarati:2761,ocaron:466,ocircle:9438,ocircumflex:244,ocircumflexacute:7889,ocircumflexdotbelow:7897,ocircumflexgrave:7891,ocircumflexhookabove:7893,ocircumflextilde:7895,ocyrillic:1086,odblacute:337,odblgrave:525,odeva:2323,odieresis:246,odieresiscyrillic:1255,odotbelow:7885,oe:339,oekorean:12634,ogonek:731,ogonekcmb:808,ograve:242,ogujarati:2707,oharmenian:1413,ohiragana:12362,ohookabove:7887,ohorn:417,ohornacute:7899,ohorndotbelow:7907,ohorngrave:7901,ohornhookabove:7903,ohorntilde:7905,ohungarumlaut:337,oi:419,oinvertedbreve:527,okatakana:12458,okatakanahalfwidth:65397,okorean:12631,olehebrew:1451,omacron:333,omacronacute:7763,omacrongrave:7761,omdeva:2384,omega:969,omega1:982,omegacyrillic:1121,omegalatinclosed:631,omegaroundcyrillic:1147,omegatitlocyrillic:1149,omegatonos:974,omgujarati:2768,omicron:959,omicrontonos:972,omonospace:65359,one:49,onearabic:1633,onebengali:2535,onecircle:9312,onecircleinversesansserif:10122,onedeva:2407,onedotenleader:8228,oneeighth:8539,onefitted:63196,onegujarati:2791,onegurmukhi:2663,onehackarabic:1633,onehalf:189,onehangzhou:12321,oneideographicparen:12832,oneinferior:8321,onemonospace:65297,onenumeratorbengali:2548,oneoldstyle:63281,oneparen:9332,oneperiod:9352,onepersian:1777,onequarter:188,oneroman:8560,onesuperior:185,onethai:3665,onethird:8531,oogonek:491,oogonekmacron:493,oogurmukhi:2579,oomatragurmukhi:2635,oopen:596,oparen:9386,openbullet:9702,option:8997,ordfeminine:170,ordmasculine:186,orthogonal:8735,oshortdeva:2322,oshortvowelsigndeva:2378,oslash:248,oslashacute:511,osmallhiragana:12361,osmallkatakana:12457,osmallkatakanahalfwidth:65387,ostrokeacute:511,osuperior:63216,otcyrillic:1151,otilde:245,otildeacute:7757,otildedieresis:7759,oubopomofo:12577,overline:8254,overlinecenterline:65098,overlinecmb:773,overlinedashed:65097,overlinedblwavy:65100,overlinewavy:65099,overscore:175,ovowelsignbengali:2507,ovowelsigndeva:2379,ovowelsigngujarati:2763,p:112,paampssquare:13184,paasentosquare:13099,pabengali:2474,pacute:7765,padeva:2346,pagedown:8671,pageup:8670,pagujarati:2730,pagurmukhi:2602,pahiragana:12401,paiyannoithai:3631,pakatakana:12497,palatalizationcyrilliccmb:1156,palochkacyrillic:1216,pansioskorean:12671,paragraph:182,parallel:8741,parenleft:40,parenleftaltonearabic:64830,parenleftbt:63725,parenleftex:63724,parenleftinferior:8333,parenleftmonospace:65288,parenleftsmall:65113,parenleftsuperior:8317,parenlefttp:63723,parenleftvertical:65077,parenright:41,parenrightaltonearabic:64831,parenrightbt:63736,parenrightex:63735,parenrightinferior:8334,parenrightmonospace:65289,parenrightsmall:65114,parenrightsuperior:8318,parenrighttp:63734,parenrightvertical:65078,partialdiff:8706,paseqhebrew:1472,pashtahebrew:1433,pasquare:13225,patah:1463,patah11:1463,patah1d:1463,patah2a:1463,patahhebrew:1463,patahnarrowhebrew:1463,patahquarterhebrew:1463,patahwidehebrew:1463,pazerhebrew:1441,pbopomofo:12550,pcircle:9439,pdotaccent:7767,pe:1508,pecyrillic:1087,pedagesh:64324,pedageshhebrew:64324,peezisquare:13115,pefinaldageshhebrew:64323,peharabic:1662,peharmenian:1402,pehebrew:1508,pehfinalarabic:64343,pehinitialarabic:64344,pehiragana:12410,pehmedialarabic:64345,pekatakana:12506,pemiddlehookcyrillic:1191,perafehebrew:64334,percent:37,percentarabic:1642,percentmonospace:65285,percentsmall:65130,period:46,periodarmenian:1417,periodcentered:183,periodhalfwidth:65377,periodinferior:63207,periodmonospace:65294,periodsmall:65106,periodsuperior:63208,perispomenigreekcmb:834,perpendicular:8869,perthousand:8240,peseta:8359,pfsquare:13194,phabengali:2475,phadeva:2347,phagujarati:2731,phagurmukhi:2603,phi:966,phi1:981,phieuphacirclekorean:12922,phieuphaparenkorean:12826,phieuphcirclekorean:12908,phieuphkorean:12621,phieuphparenkorean:12812,philatin:632,phinthuthai:3642,phisymbolgreek:981,phook:421,phophanthai:3614,phophungthai:3612,phosamphaothai:3616,pi:960,pieupacirclekorean:12915,pieupaparenkorean:12819,pieupcieuckorean:12662,pieupcirclekorean:12901,pieupkiyeokkorean:12658,pieupkorean:12610,pieupparenkorean:12805,pieupsioskiyeokkorean:12660,pieupsioskorean:12612,pieupsiostikeutkorean:12661,pieupthieuthkorean:12663,pieuptikeutkorean:12659,pihiragana:12404,pikatakana:12500,pisymbolgreek:982,piwrarmenian:1411,plus:43,plusbelowcmb:799,pluscircle:8853,plusminus:177,plusmod:726,plusmonospace:65291,plussmall:65122,plussuperior:8314,pmonospace:65360,pmsquare:13272,pohiragana:12413,pointingindexdownwhite:9759,pointingindexleftwhite:9756,pointingindexrightwhite:9758,pointingindexupwhite:9757,pokatakana:12509,poplathai:3611,postalmark:12306,postalmarkface:12320,pparen:9387,precedes:8826,prescription:8478,primemod:697,primereversed:8245,product:8719,projective:8965,prolongedkana:12540,propellor:8984,propersubset:8834,propersuperset:8835,proportion:8759,proportional:8733,psi:968,psicyrillic:1137,psilipneumatacyrilliccmb:1158,pssquare:13232,puhiragana:12407,pukatakana:12503,pvsquare:13236,pwsquare:13242,q:113,qadeva:2392,qadmahebrew:1448,qafarabic:1602,qaffinalarabic:65238,qafinitialarabic:65239,qafmedialarabic:65240,qamats:1464,qamats10:1464,qamats1a:1464,qamats1c:1464,qamats27:1464,qamats29:1464,qamats33:1464,qamatsde:1464,qamatshebrew:1464,qamatsnarrowhebrew:1464,qamatsqatanhebrew:1464,qamatsqatannarrowhebrew:1464,qamatsqatanquarterhebrew:1464,qamatsqatanwidehebrew:1464,qamatsquarterhebrew:1464,qamatswidehebrew:1464,qarneyparahebrew:1439,qbopomofo:12561,qcircle:9440,qhook:672,qmonospace:65361,qof:1511,qofdagesh:64327,qofdageshhebrew:64327,qofhebrew:1511,qparen:9388,quarternote:9833,qubuts:1467,qubuts18:1467,qubuts25:1467,qubuts31:1467,qubutshebrew:1467,qubutsnarrowhebrew:1467,qubutsquarterhebrew:1467,qubutswidehebrew:1467,question:63,questionarabic:1567,questionarmenian:1374,questiondown:191,questiondownsmall:63423,questiongreek:894,questionmonospace:65311,questionsmall:63295,quotedbl:34,quotedblbase:8222,quotedblleft:8220,quotedblmonospace:65282,quotedblprime:12318,quotedblprimereversed:12317,quotedblright:8221,quoteleft:8216,quoteleftreversed:8219,quotereversed:8219,quoteright:8217,quoterightn:329,quotesinglbase:8218,quotesingle:39,quotesinglemonospace:65287,r:114,raarmenian:1404,rabengali:2480,racute:341,radeva:2352,radical:8730,radicalex:63717,radoverssquare:13230,radoverssquaredsquare:13231,radsquare:13229,rafe:1471,rafehebrew:1471,ragujarati:2736,ragurmukhi:2608,rahiragana:12425,rakatakana:12521,rakatakanahalfwidth:65431,ralowerdiagonalbengali:2545,ramiddlediagonalbengali:2544,ramshorn:612,ratio:8758,rbopomofo:12566,rcaron:345,rcedilla:343,rcircle:9441,rcommaaccent:343,rdblgrave:529,rdotaccent:7769,rdotbelow:7771,rdotbelowmacron:7773,referencemark:8251,reflexsubset:8838,reflexsuperset:8839,registered:174,registersans:63720,registerserif:63194,reharabic:1585,reharmenian:1408,rehfinalarabic:65198,rehiragana:12428,rekatakana:12524,rekatakanahalfwidth:65434,resh:1512,reshdageshhebrew:64328,reshhebrew:1512,reversedtilde:8765,reviahebrew:1431,reviamugrashhebrew:1431,revlogicalnot:8976,rfishhook:638,rfishhookreversed:639,rhabengali:2525,rhadeva:2397,rho:961,rhook:637,rhookturned:635,rhookturnedsuperior:693,rhosymbolgreek:1009,rhotichookmod:734,rieulacirclekorean:12913,rieulaparenkorean:12817,rieulcirclekorean:12899,rieulhieuhkorean:12608,rieulkiyeokkorean:12602,rieulkiyeoksioskorean:12649,rieulkorean:12601,rieulmieumkorean:12603,rieulpansioskorean:12652,rieulparenkorean:12803,rieulphieuphkorean:12607,rieulpieupkorean:12604,rieulpieupsioskorean:12651,rieulsioskorean:12605,rieulthieuthkorean:12606,rieultikeutkorean:12650,rieulyeorinhieuhkorean:12653,rightangle:8735,righttackbelowcmb:793,righttriangle:8895,rihiragana:12426,rikatakana:12522,rikatakanahalfwidth:65432,ring:730,ringbelowcmb:805,ringcmb:778,ringhalfleft:703,ringhalfleftarmenian:1369,ringhalfleftbelowcmb:796,ringhalfleftcentered:723,ringhalfright:702,ringhalfrightbelowcmb:825,ringhalfrightcentered:722,rinvertedbreve:531,rittorusquare:13137,rlinebelow:7775,rlongleg:636,rlonglegturned:634,rmonospace:65362,rohiragana:12429,rokatakana:12525,rokatakanahalfwidth:65435,roruathai:3619,rparen:9389,rrabengali:2524,rradeva:2353,rragurmukhi:2652,rreharabic:1681,rrehfinalarabic:64397,rrvocalicbengali:2528,rrvocalicdeva:2400,rrvocalicgujarati:2784,rrvocalicvowelsignbengali:2500,rrvocalicvowelsigndeva:2372,rrvocalicvowelsigngujarati:2756,rsuperior:63217,rtblock:9616,rturned:633,rturnedsuperior:692,ruhiragana:12427,rukatakana:12523,rukatakanahalfwidth:65433,rupeemarkbengali:2546,rupeesignbengali:2547,rupiah:63197,ruthai:3620,rvocalicbengali:2443,rvocalicdeva:2315,rvocalicgujarati:2699,rvocalicvowelsignbengali:2499,rvocalicvowelsigndeva:2371,rvocalicvowelsigngujarati:2755,s:115,sabengali:2488,sacute:347,sacutedotaccent:7781,sadarabic:1589,sadeva:2360,sadfinalarabic:65210,sadinitialarabic:65211,sadmedialarabic:65212,sagujarati:2744,sagurmukhi:2616,sahiragana:12373,sakatakana:12469,sakatakanahalfwidth:65403,sallallahoualayhewasallamarabic:65018,samekh:1505,samekhdagesh:64321,samekhdageshhebrew:64321,samekhhebrew:1505,saraaathai:3634,saraaethai:3649,saraaimaimalaithai:3652,saraaimaimuanthai:3651,saraamthai:3635,saraathai:3632,saraethai:3648,saraiileftthai:63622,saraiithai:3637,saraileftthai:63621,saraithai:3636,saraothai:3650,saraueeleftthai:63624,saraueethai:3639,saraueleftthai:63623,sarauethai:3638,sarauthai:3640,sarauuthai:3641,sbopomofo:12569,scaron:353,scarondotaccent:7783,scedilla:351,schwa:601,schwacyrillic:1241,schwadieresiscyrillic:1243,schwahook:602,scircle:9442,scircumflex:349,scommaaccent:537,sdotaccent:7777,sdotbelow:7779,sdotbelowdotaccent:7785,seagullbelowcmb:828,second:8243,secondtonechinese:714,section:167,seenarabic:1587,seenfinalarabic:65202,seeninitialarabic:65203,seenmedialarabic:65204,segol:1462,segol13:1462,segol1f:1462,segol2c:1462,segolhebrew:1462,segolnarrowhebrew:1462,segolquarterhebrew:1462,segoltahebrew:1426,segolwidehebrew:1462,seharmenian:1405,sehiragana:12379,sekatakana:12475,sekatakanahalfwidth:65406,semicolon:59,semicolonarabic:1563,semicolonmonospace:65307,semicolonsmall:65108,semivoicedmarkkana:12444,semivoicedmarkkanahalfwidth:65439,sentisquare:13090,sentosquare:13091,seven:55,sevenarabic:1639,sevenbengali:2541,sevencircle:9318,sevencircleinversesansserif:10128,sevendeva:2413,seveneighths:8542,sevengujarati:2797,sevengurmukhi:2669,sevenhackarabic:1639,sevenhangzhou:12327,sevenideographicparen:12838,seveninferior:8327,sevenmonospace:65303,sevenoldstyle:63287,sevenparen:9338,sevenperiod:9358,sevenpersian:1783,sevenroman:8566,sevensuperior:8311,seventeencircle:9328,seventeenparen:9348,seventeenperiod:9368,seventhai:3671,sfthyphen:173,shaarmenian:1399,shabengali:2486,shacyrillic:1096,shaddaarabic:1617,shaddadammaarabic:64609,shaddadammatanarabic:64606,shaddafathaarabic:64608,shaddakasraarabic:64610,shaddakasratanarabic:64607,shade:9618,shadedark:9619,shadelight:9617,shademedium:9618,shadeva:2358,shagujarati:2742,shagurmukhi:2614,shalshelethebrew:1427,shbopomofo:12565,shchacyrillic:1097,sheenarabic:1588,sheenfinalarabic:65206,sheeninitialarabic:65207,sheenmedialarabic:65208,sheicoptic:995,sheqel:8362,sheqelhebrew:8362,sheva:1456,sheva115:1456,sheva15:1456,sheva22:1456,sheva2e:1456,shevahebrew:1456,shevanarrowhebrew:1456,shevaquarterhebrew:1456,shevawidehebrew:1456,shhacyrillic:1211,shimacoptic:1005,shin:1513,shindagesh:64329,shindageshhebrew:64329,shindageshshindot:64300,shindageshshindothebrew:64300,shindageshsindot:64301,shindageshsindothebrew:64301,shindothebrew:1473,shinhebrew:1513,shinshindot:64298,shinshindothebrew:64298,shinsindot:64299,shinsindothebrew:64299,shook:642,sigma:963,sigma1:962,sigmafinal:962,sigmalunatesymbolgreek:1010,sihiragana:12375,sikatakana:12471,sikatakanahalfwidth:65404,siluqhebrew:1469,siluqlefthebrew:1469,similar:8764,sindothebrew:1474,siosacirclekorean:12916,siosaparenkorean:12820,sioscieuckorean:12670,sioscirclekorean:12902,sioskiyeokkorean:12666,sioskorean:12613,siosnieunkorean:12667,siosparenkorean:12806,siospieupkorean:12669,siostikeutkorean:12668,six:54,sixarabic:1638,sixbengali:2540,sixcircle:9317,sixcircleinversesansserif:10127,sixdeva:2412,sixgujarati:2796,sixgurmukhi:2668,sixhackarabic:1638,sixhangzhou:12326,sixideographicparen:12837,sixinferior:8326,sixmonospace:65302,sixoldstyle:63286,sixparen:9337,sixperiod:9357,sixpersian:1782,sixroman:8565,sixsuperior:8310,sixteencircle:9327,sixteencurrencydenominatorbengali:2553,sixteenparen:9347,sixteenperiod:9367,sixthai:3670,slash:47,slashmonospace:65295,slong:383,slongdotaccent:7835,smileface:9786,smonospace:65363,sofpasuqhebrew:1475,softhyphen:173,softsigncyrillic:1100,sohiragana:12381,sokatakana:12477,sokatakanahalfwidth:65407,soliduslongoverlaycmb:824,solidusshortoverlaycmb:823,sorusithai:3625,sosalathai:3624,sosothai:3595,sosuathai:3626,space:32,spacehackarabic:32,spade:9824,spadesuitblack:9824,spadesuitwhite:9828,sparen:9390,squarebelowcmb:827,squarecc:13252,squarecm:13213,squarediagonalcrosshatchfill:9641,squarehorizontalfill:9636,squarekg:13199,squarekm:13214,squarekmcapital:13262,squareln:13265,squarelog:13266,squaremg:13198,squaremil:13269,squaremm:13212,squaremsquared:13217,squareorthogonalcrosshatchfill:9638,squareupperlefttolowerrightfill:9639,squareupperrighttolowerleftfill:9640,squareverticalfill:9637,squarewhitewithsmallblack:9635,srsquare:13275,ssabengali:2487,ssadeva:2359,ssagujarati:2743,ssangcieuckorean:12617,ssanghieuhkorean:12677,ssangieungkorean:12672,ssangkiyeokkorean:12594,ssangnieunkorean:12645,ssangpieupkorean:12611,ssangsioskorean:12614,ssangtikeutkorean:12600,ssuperior:63218,sterling:163,sterlingmonospace:65505,strokelongoverlaycmb:822,strokeshortoverlaycmb:821,subset:8834,subsetnotequal:8842,subsetorequal:8838,succeeds:8827,suchthat:8715,suhiragana:12377,sukatakana:12473,sukatakanahalfwidth:65405,sukunarabic:1618,summation:8721,sun:9788,superset:8835,supersetnotequal:8843,supersetorequal:8839,svsquare:13276,syouwaerasquare:13180,t:116,tabengali:2468,tackdown:8868,tackleft:8867,tadeva:2340,tagujarati:2724,tagurmukhi:2596,taharabic:1591,tahfinalarabic:65218,tahinitialarabic:65219,tahiragana:12383,tahmedialarabic:65220,taisyouerasquare:13181,takatakana:12479,takatakanahalfwidth:65408,tatweelarabic:1600,tau:964,tav:1514,tavdages:64330,tavdagesh:64330,tavdageshhebrew:64330,tavhebrew:1514,tbar:359,tbopomofo:12554,tcaron:357,tccurl:680,tcedilla:355,tcheharabic:1670,tchehfinalarabic:64379,tchehinitialarabic:64380,tchehmedialarabic:64381,tcircle:9443,tcircumflexbelow:7793,tcommaaccent:355,tdieresis:7831,tdotaccent:7787,tdotbelow:7789,tecyrillic:1090,tedescendercyrillic:1197,teharabic:1578,tehfinalarabic:65174,tehhahinitialarabic:64674,tehhahisolatedarabic:64524,tehinitialarabic:65175,tehiragana:12390,tehjeeminitialarabic:64673,tehjeemisolatedarabic:64523,tehmarbutaarabic:1577,tehmarbutafinalarabic:65172,tehmedialarabic:65176,tehmeeminitialarabic:64676,tehmeemisolatedarabic:64526,tehnoonfinalarabic:64627,tekatakana:12486,tekatakanahalfwidth:65411,telephone:8481,telephoneblack:9742,telishagedolahebrew:1440,telishaqetanahebrew:1449,tencircle:9321,tenideographicparen:12841,tenparen:9341,tenperiod:9361,tenroman:8569,tesh:679,tet:1496,tetdagesh:64312,tetdageshhebrew:64312,tethebrew:1496,tetsecyrillic:1205,tevirhebrew:1435,tevirlefthebrew:1435,thabengali:2469,thadeva:2341,thagujarati:2725,thagurmukhi:2597,thalarabic:1584,thalfinalarabic:65196,thanthakhatlowleftthai:63640,thanthakhatlowrightthai:63639,thanthakhatthai:3660,thanthakhatupperleftthai:63638,theharabic:1579,thehfinalarabic:65178,thehinitialarabic:65179,thehmedialarabic:65180,thereexists:8707,therefore:8756,theta:952,theta1:977,thetasymbolgreek:977,thieuthacirclekorean:12921,thieuthaparenkorean:12825,thieuthcirclekorean:12907,thieuthkorean:12620,thieuthparenkorean:12811,thirteencircle:9324,thirteenparen:9344,thirteenperiod:9364,thonangmonthothai:3601,thook:429,thophuthaothai:3602,thorn:254,thothahanthai:3607,thothanthai:3600,thothongthai:3608,thothungthai:3606,thousandcyrillic:1154,thousandsseparatorarabic:1644,thousandsseparatorpersian:1644,three:51,threearabic:1635,threebengali:2537,threecircle:9314,threecircleinversesansserif:10124,threedeva:2409,threeeighths:8540,threegujarati:2793,threegurmukhi:2665,threehackarabic:1635,threehangzhou:12323,threeideographicparen:12834,threeinferior:8323,threemonospace:65299,threenumeratorbengali:2550,threeoldstyle:63283,threeparen:9334,threeperiod:9354,threepersian:1779,threequarters:190,threequartersemdash:63198,threeroman:8562,threesuperior:179,threethai:3667,thzsquare:13204,tihiragana:12385,tikatakana:12481,tikatakanahalfwidth:65409,tikeutacirclekorean:12912,tikeutaparenkorean:12816,tikeutcirclekorean:12898,tikeutkorean:12599,tikeutparenkorean:12802,tilde:732,tildebelowcmb:816,tildecmb:771,tildecomb:771,tildedoublecmb:864,tildeoperator:8764,tildeoverlaycmb:820,tildeverticalcmb:830,timescircle:8855,tipehahebrew:1430,tipehalefthebrew:1430,tippigurmukhi:2672,titlocyrilliccmb:1155,tiwnarmenian:1407,tlinebelow:7791,tmonospace:65364,toarmenian:1385,tohiragana:12392,tokatakana:12488,tokatakanahalfwidth:65412,tonebarextrahighmod:741,tonebarextralowmod:745,tonebarhighmod:742,tonebarlowmod:744,tonebarmidmod:743,
+tonefive:445,tonesix:389,tonetwo:424,tonos:900,tonsquare:13095,topatakthai:3599,tortoiseshellbracketleft:12308,tortoiseshellbracketleftsmall:65117,tortoiseshellbracketleftvertical:65081,tortoiseshellbracketright:12309,tortoiseshellbracketrightsmall:65118,tortoiseshellbracketrightvertical:65082,totaothai:3605,tpalatalhook:427,tparen:9391,trademark:8482,trademarksans:63722,trademarkserif:63195,tretroflexhook:648,triagdn:9660,triaglf:9668,triagrt:9658,triagup:9650,ts:678,tsadi:1510,tsadidagesh:64326,tsadidageshhebrew:64326,tsadihebrew:1510,tsecyrillic:1094,tsere:1461,tsere12:1461,tsere1e:1461,tsere2b:1461,tserehebrew:1461,tserenarrowhebrew:1461,tserequarterhebrew:1461,tserewidehebrew:1461,tshecyrillic:1115,tsuperior:63219,ttabengali:2463,ttadeva:2335,ttagujarati:2719,ttagurmukhi:2591,tteharabic:1657,ttehfinalarabic:64359,ttehinitialarabic:64360,ttehmedialarabic:64361,tthabengali:2464,tthadeva:2336,tthagujarati:2720,tthagurmukhi:2592,tturned:647,tuhiragana:12388,tukatakana:12484,tukatakanahalfwidth:65410,tusmallhiragana:12387,tusmallkatakana:12483,tusmallkatakanahalfwidth:65391,twelvecircle:9323,twelveparen:9343,twelveperiod:9363,twelveroman:8571,twentycircle:9331,twentyhangzhou:21316,twentyparen:9351,twentyperiod:9371,two:50,twoarabic:1634,twobengali:2536,twocircle:9313,twocircleinversesansserif:10123,twodeva:2408,twodotenleader:8229,twodotleader:8229,twodotleadervertical:65072,twogujarati:2792,twogurmukhi:2664,twohackarabic:1634,twohangzhou:12322,twoideographicparen:12833,twoinferior:8322,twomonospace:65298,twonumeratorbengali:2549,twooldstyle:63282,twoparen:9333,twoperiod:9353,twopersian:1778,tworoman:8561,twostroke:443,twosuperior:178,twothai:3666,twothirds:8532,u:117,uacute:250,ubar:649,ubengali:2441,ubopomofo:12584,ubreve:365,ucaron:468,ucircle:9444,ucircumflex:251,ucircumflexbelow:7799,ucyrillic:1091,udattadeva:2385,udblacute:369,udblgrave:533,udeva:2313,udieresis:252,udieresisacute:472,udieresisbelow:7795,udieresiscaron:474,udieresiscyrillic:1265,udieresisgrave:476,udieresismacron:470,udotbelow:7909,ugrave:249,ugujarati:2697,ugurmukhi:2569,uhiragana:12358,uhookabove:7911,uhorn:432,uhornacute:7913,uhorndotbelow:7921,uhorngrave:7915,uhornhookabove:7917,uhorntilde:7919,uhungarumlaut:369,uhungarumlautcyrillic:1267,uinvertedbreve:535,ukatakana:12454,ukatakanahalfwidth:65395,ukcyrillic:1145,ukorean:12636,umacron:363,umacroncyrillic:1263,umacrondieresis:7803,umatragurmukhi:2625,umonospace:65365,underscore:95,underscoredbl:8215,underscoremonospace:65343,underscorevertical:65075,underscorewavy:65103,union:8746,universal:8704,uogonek:371,uparen:9392,upblock:9600,upperdothebrew:1476,upsilon:965,upsilondieresis:971,upsilondieresistonos:944,upsilonlatin:650,upsilontonos:973,uptackbelowcmb:797,uptackmod:724,uragurmukhi:2675,uring:367,ushortcyrillic:1118,usmallhiragana:12357,usmallkatakana:12453,usmallkatakanahalfwidth:65385,ustraightcyrillic:1199,ustraightstrokecyrillic:1201,utilde:361,utildeacute:7801,utildebelow:7797,uubengali:2442,uudeva:2314,uugujarati:2698,uugurmukhi:2570,uumatragurmukhi:2626,uuvowelsignbengali:2498,uuvowelsigndeva:2370,uuvowelsigngujarati:2754,uvowelsignbengali:2497,uvowelsigndeva:2369,uvowelsigngujarati:2753,v:118,vadeva:2357,vagujarati:2741,vagurmukhi:2613,vakatakana:12535,vav:1493,vavdagesh:64309,vavdagesh65:64309,vavdageshhebrew:64309,vavhebrew:1493,vavholam:64331,vavholamhebrew:64331,vavvavhebrew:1520,vavyodhebrew:1521,vcircle:9445,vdotbelow:7807,vecyrillic:1074,veharabic:1700,vehfinalarabic:64363,vehinitialarabic:64364,vehmedialarabic:64365,vekatakana:12537,venus:9792,verticalbar:124,verticallineabovecmb:781,verticallinebelowcmb:809,verticallinelowmod:716,verticallinemod:712,vewarmenian:1406,vhook:651,vikatakana:12536,viramabengali:2509,viramadeva:2381,viramagujarati:2765,visargabengali:2435,visargadeva:2307,visargagujarati:2691,vmonospace:65366,voarmenian:1400,voicediterationhiragana:12446,voicediterationkatakana:12542,voicedmarkkana:12443,voicedmarkkanahalfwidth:65438,vokatakana:12538,vparen:9393,vtilde:7805,vturned:652,vuhiragana:12436,vukatakana:12532,w:119,wacute:7811,waekorean:12633,wahiragana:12431,wakatakana:12527,wakatakanahalfwidth:65436,wakorean:12632,wasmallhiragana:12430,wasmallkatakana:12526,wattosquare:13143,wavedash:12316,wavyunderscorevertical:65076,wawarabic:1608,wawfinalarabic:65262,wawhamzaabovearabic:1572,wawhamzaabovefinalarabic:65158,wbsquare:13277,wcircle:9446,wcircumflex:373,wdieresis:7813,wdotaccent:7815,wdotbelow:7817,wehiragana:12433,weierstrass:8472,wekatakana:12529,wekorean:12638,weokorean:12637,wgrave:7809,whitebullet:9702,whitecircle:9675,whitecircleinverse:9689,whitecornerbracketleft:12302,whitecornerbracketleftvertical:65091,whitecornerbracketright:12303,whitecornerbracketrightvertical:65092,whitediamond:9671,whitediamondcontainingblacksmalldiamond:9672,whitedownpointingsmalltriangle:9663,whitedownpointingtriangle:9661,whiteleftpointingsmalltriangle:9667,whiteleftpointingtriangle:9665,whitelenticularbracketleft:12310,whitelenticularbracketright:12311,whiterightpointingsmalltriangle:9657,whiterightpointingtriangle:9655,whitesmallsquare:9643,whitesmilingface:9786,whitesquare:9633,whitestar:9734,whitetelephone:9743,whitetortoiseshellbracketleft:12312,whitetortoiseshellbracketright:12313,whiteuppointingsmalltriangle:9653,whiteuppointingtriangle:9651,wihiragana:12432,wikatakana:12528,wikorean:12639,wmonospace:65367,wohiragana:12434,wokatakana:12530,wokatakanahalfwidth:65382,won:8361,wonmonospace:65510,wowaenthai:3623,wparen:9394,wring:7832,wsuperior:695,wturned:653,wynn:447,x:120,xabovecmb:829,xbopomofo:12562,xcircle:9447,xdieresis:7821,xdotaccent:7819,xeharmenian:1389,xi:958,xmonospace:65368,xparen:9395,xsuperior:739,y:121,yaadosquare:13134,yabengali:2479,yacute:253,yadeva:2351,yaekorean:12626,yagujarati:2735,yagurmukhi:2607,yahiragana:12420,yakatakana:12516,yakatakanahalfwidth:65428,yakorean:12625,yamakkanthai:3662,yasmallhiragana:12419,yasmallkatakana:12515,yasmallkatakanahalfwidth:65388,yatcyrillic:1123,ycircle:9448,ycircumflex:375,ydieresis:255,ydotaccent:7823,ydotbelow:7925,yeharabic:1610,yehbarreearabic:1746,yehbarreefinalarabic:64431,yehfinalarabic:65266,yehhamzaabovearabic:1574,yehhamzaabovefinalarabic:65162,yehhamzaaboveinitialarabic:65163,yehhamzaabovemedialarabic:65164,yehinitialarabic:65267,yehmedialarabic:65268,yehmeeminitialarabic:64733,yehmeemisolatedarabic:64600,yehnoonfinalarabic:64660,yehthreedotsbelowarabic:1745,yekorean:12630,yen:165,yenmonospace:65509,yeokorean:12629,yeorinhieuhkorean:12678,yerahbenyomohebrew:1450,yerahbenyomolefthebrew:1450,yericyrillic:1099,yerudieresiscyrillic:1273,yesieungkorean:12673,yesieungpansioskorean:12675,yesieungsioskorean:12674,yetivhebrew:1434,ygrave:7923,yhook:436,yhookabove:7927,yiarmenian:1397,yicyrillic:1111,yikorean:12642,yinyang:9775,yiwnarmenian:1410,ymonospace:65369,yod:1497,yoddagesh:64313,yoddageshhebrew:64313,yodhebrew:1497,yodyodhebrew:1522,yodyodpatahhebrew:64287,yohiragana:12424,yoikorean:12681,yokatakana:12520,yokatakanahalfwidth:65430,yokorean:12635,yosmallhiragana:12423,yosmallkatakana:12519,yosmallkatakanahalfwidth:65390,yotgreek:1011,yoyaekorean:12680,yoyakorean:12679,yoyakthai:3618,yoyingthai:3597,yparen:9396,ypogegrammeni:890,ypogegrammenigreekcmb:837,yr:422,yring:7833,ysuperior:696,ytilde:7929,yturned:654,yuhiragana:12422,yuikorean:12684,yukatakana:12518,yukatakanahalfwidth:65429,yukorean:12640,yusbigcyrillic:1131,yusbigiotifiedcyrillic:1133,yuslittlecyrillic:1127,yuslittleiotifiedcyrillic:1129,yusmallhiragana:12421,yusmallkatakana:12517,yusmallkatakanahalfwidth:65389,yuyekorean:12683,yuyeokorean:12682,yyabengali:2527,yyadeva:2399,z:122,zaarmenian:1382,zacute:378,zadeva:2395,zagurmukhi:2651,zaharabic:1592,zahfinalarabic:65222,zahinitialarabic:65223,zahiragana:12374,zahmedialarabic:65224,zainarabic:1586,zainfinalarabic:65200,zakatakana:12470,zaqefgadolhebrew:1429,zaqefqatanhebrew:1428,zarqahebrew:1432,zayin:1494,zayindagesh:64310,zayindageshhebrew:64310,zayinhebrew:1494,zbopomofo:12567,zcaron:382,zcircle:9449,zcircumflex:7825,zcurl:657,zdot:380,zdotaccent:380,zdotbelow:7827,zecyrillic:1079,zedescendercyrillic:1177,zedieresiscyrillic:1247,zehiragana:12380,zekatakana:12476,zero:48,zeroarabic:1632,zerobengali:2534,zerodeva:2406,zerogujarati:2790,zerogurmukhi:2662,zerohackarabic:1632,zeroinferior:8320,zeromonospace:65296,zerooldstyle:63280,zeropersian:1776,zerosuperior:8304,zerothai:3664,zerowidthjoiner:65279,zerowidthnonjoiner:8204,zerowidthspace:8203,zeta:950,zhbopomofo:12563,zhearmenian:1386,zhebrevecyrillic:1218,zhecyrillic:1078,zhedescendercyrillic:1175,zhedieresiscyrillic:1245,zihiragana:12376,zikatakana:12472,zinorhebrew:1454,zlinebelow:7829,zmonospace:65370,zohiragana:12382,zokatakana:12478,zparen:9397,zretroflexhook:656,zstroke:438,zuhiragana:12378,zukatakana:12474,".notdef":0},Ac={space:32,a1:9985,a2:9986,a202:9987,a3:9988,a4:9742,a5:9990,a119:9991,a118:9992,a117:9993,a11:9755,a12:9758,a13:9996,a14:9997,a15:9998,a16:9999,a105:1e4,a17:10001,a18:10002,a19:10003,a20:10004,a21:10005,a22:10006,a23:10007,a24:10008,a25:10009,a26:10010,a27:10011,a28:10012,a6:10013,a7:10014,a8:10015,a9:10016,a10:10017,a29:10018,a30:10019,a31:10020,a32:10021,a33:10022,a34:10023,a35:9733,a36:10025,a37:10026,a38:10027,a39:10028,a40:10029,a41:10030,a42:10031,a43:10032,a44:10033,a45:10034,a46:10035,a47:10036,a48:10037,a49:10038,a50:10039,a51:10040,a52:10041,a53:10042,a54:10043,a55:10044,a56:10045,a57:10046,a58:10047,a59:10048,a60:10049,a61:10050,a62:10051,a63:10052,a64:10053,a65:10054,a66:10055,a67:10056,a68:10057,a69:10058,a70:10059,a71:9679,a72:10061,a73:9632,a74:10063,a203:10064,a75:10065,a204:10066,a76:9650,a77:9660,a78:9670,a79:10070,a81:9687,a82:10072,a83:10073,a84:10074,a97:10075,a98:10076,a99:10077,a100:10078,a101:10081,a102:10082,a103:10083,a104:10084,a106:10085,a107:10086,a108:10087,a112:9827,a111:9830,a110:9829,a109:9824,a120:9312,a121:9313,a122:9314,a123:9315,a124:9316,a125:9317,a126:9318,a127:9319,a128:9320,a129:9321,a130:10102,a131:10103,a132:10104,a133:10105,a134:10106,a135:10107,a136:10108,a137:10109,a138:10110,a139:10111,a140:10112,a141:10113,a142:10114,a143:10115,a144:10116,a145:10117,a146:10118,a147:10119,a148:10120,a149:10121,a150:10122,a151:10123,a152:10124,a153:10125,a154:10126,a155:10127,a156:10128,a157:10129,a158:10130,a159:10131,a160:10132,a161:8594,a163:8596,a164:8597,a196:10136,a165:10137,a192:10138,a166:10139,a167:10140,a168:10141,a169:10142,a170:10143,a171:10144,a172:10145,a173:10146,a162:10147,a174:10148,a175:10149,a176:10150,a177:10151,a178:10152,a179:10153,a193:10154,a180:10155,a199:10156,a181:10157,a200:10158,a182:10159,a201:10161,a183:10162,a184:10163,a197:10164,a185:10165,a194:10166,a198:10167,a186:10168,a195:10169,a187:10170,a188:10171,a189:10172,a190:10173,a191:10174,a89:10088,a90:10089,a93:10090,a94:10091,a91:10092,a92:10093,a205:10094,a85:10095,a206:10096,a86:10097,a87:10098,a88:10099,a95:10100,a96:10101,".notdef":0},Bc=function(){function d(a,b,c,d){if(d instanceof Sc&&d.isNativelyDecodable(b,c)){var e=d.dict,f=e.get("ColorSpace","CS");f=Xa.parse(f,b,c);var g=f.numComps,h=a.sendWithPromise("JpegDecode",[d.getIR(),g]);return h.then(function(a){var b=a.data;return new Mc(b,0,b.length,d.dict)})}return Promise.resolve(d)}function f(a,b,c,d){return a=b+a*c,0>a?0:a>d?d:a}function g(b,d,e,f,h,i,j){this.image=e;var k=e.dict;if(k.has("Filter")){var l=k.get("Filter").name;if("JPXDecode"===l){var m=new hd;m.parseImageProperties(e.stream),e.stream.reset(),e.bitsPerComponent=m.bitsPerComponent,e.numComps=m.componentsCount}else"JBIG2Decode"===l&&(e.bitsPerComponent=1,e.numComps=1)}this.width=k.get("Width","W"),this.height=k.get("Height","H"),(this.width<1||this.height<1)&&c("Invalid image width: "+this.width+" or height: "+this.height),this.interpolate=k.get("Interpolate","I")||!1,this.imageMask=k.get("ImageMask","IM")||!1,this.matte=k.get("Matte")||!1;var n=e.bitsPerComponent;if(n||(n=k.get("BitsPerComponent","BPC"),n||(this.imageMask?n=1:c("Bits per component missing in image: "+this.imageMask))),this.bpc=n,!this.imageMask){var o=k.get("ColorSpace","CS");if(!o)switch(a("JPX images (which do not require color spaces)"),e.numComps){case 1:o=ya.get("DeviceGray");break;case 3:o=ya.get("DeviceRGB");break;case 4:o=ya.get("DeviceCMYK");break;default:c("JPX images with "+this.numComps+" color components not supported.")}this.colorSpace=Xa.parse(o,b,d),this.numComps=this.colorSpace.numComps}if(this.decode=k.get("Decode","D"),this.needsDecode=!1,this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode)||j&&!Xa.isDefaultDecode(this.decode,1))){this.needsDecode=!0;var p=(1<<n)-1;this.decodeCoefficients=[],this.decodeAddends=[];for(var q=0,r=0;q<this.decode.length;q+=2,++r){var s=this.decode[q],t=this.decode[q+1];this.decodeCoefficients[r]=t-s,this.decodeAddends[r]=p*s}}h?this.smask=new g(b,d,h,!1):i&&(D(i)?this.mask=new g(b,d,i,!1,null,null,!0):this.mask=i)}return g.buildImage=function(a,c,e,f,h){var i,j,k=d(a,c,e,f),l=f.dict.get("SMask"),m=f.dict.get("Mask");return l?(i=d(a,c,e,l),j=Promise.resolve(null)):(i=Promise.resolve(null),m?D(m)?j=d(a,c,e,m):C(m)?j=Promise.resolve(m):(b("Unsupported mask format."),j=Promise.resolve(null)):j=Promise.resolve(null)),Promise.all([k,i,j]).then(function(a){var b=a[0],d=a[1],f=a[2];return new g(c,e,b,h,d,f)})},g.resize=function(a,b,d,e,f,g,h,i,j){1!==d&&3!==d&&c("Unsupported component count for resizing.");var k,l,m,n,o=g*h*d,p=i?i:8>=b?new Uint8Array(o):16>=b?new Uint16Array(o):new Uint32Array(o),q=e/g,r=f/h,s=0,t=new Uint16Array(g),u=e*d;for(1!==j&&(j=0),l=0;g>l;l++)t[l]=Math.floor(l*q)*d;if(1===d)for(k=0;h>k;k++)for(m=Math.floor(k*r)*u,l=0;g>l;l++)n=m+t[l],p[s++]=a[n];else if(3===d)for(k=0;h>k;k++)for(m=Math.floor(k*r)*u,l=0;g>l;l++)n=m+t[l],p[s++]=a[n++],p[s++]=a[n++],p[s++]=a[n++],s+=j;return p},g.createMask=function(a,b,c,d,e){var f,g,h=(b+7>>3)*c,i=a.byteLength,j=h===i;if(!d||e&&!j)if(e)for(f=new Uint8Array(h),f.set(a),g=i;h>g;g++)f[g]=255;else f=new Uint8Array(i),f.set(a);else f=a;if(e)for(g=0;i>g;g++)f[g]=~f[g];return{data:f,width:b,height:c}},g.prototype={get drawWidth(){return Math.max(this.width,this.smask&&this.smask.width||0,this.mask&&this.mask.width||0)},get drawHeight(){return Math.max(this.height,this.smask&&this.smask.height||0,this.mask&&this.mask.height||0)},decodeBuffer:function(a){var b,c,d=this.bpc,e=this.numComps,g=this.decodeAddends,h=this.decodeCoefficients,i=(1<<d)-1;if(1!==d){var j=0;for(b=0,c=this.width*this.height;c>b;b++)for(var k=0;e>k;k++)a[j]=f(a[j],g[k],h[k],i),j++}else for(b=0,c=a.length;c>b;b++)a[b]=+!a[b]},getComponents:function(a){var b=this.bpc;if(8===b)return a;var c,d,e=this.width,f=this.height,g=this.numComps,h=e*f*g,i=0,j=8>=b?new Uint8Array(h):16>=b?new Uint16Array(h):new Uint32Array(h),k=e*g,l=(1<<b)-1,m=0;if(1===b)for(var n,o,p,q=0;f>q;q++){for(o=m+(-8&k),p=m+k;o>m;)d=a[i++],j[m]=d>>7&1,j[m+1]=d>>6&1,j[m+2]=d>>5&1,j[m+3]=d>>4&1,j[m+4]=d>>3&1,j[m+5]=d>>2&1,j[m+6]=d>>1&1,j[m+7]=1&d,m+=8;if(p>m)for(d=a[i++],n=128;p>m;)j[m++]=+!!(d&n),n>>=1}else{var r=0;for(d=0,m=0,c=h;c>m;++m){for(m%k===0&&(d=0,r=0);b>r;)d=d<<8|a[i++],r+=8;var s=r-b,t=d>>s;j[m]=0>t?0:t>l?l:t,d&=(1<<s)-1,r=s}}return j},fillOpacity:function(a,b,d,e,f){var h,i,j,k,l,m,n=this.smask,o=this.mask;if(n)i=n.width,j=n.height,h=new Uint8Array(i*j),n.fillGrayBuffer(h),i===b&&j===d||(h=g.resize(h,n.bpc,1,i,j,b,d));else if(o)if(o instanceof g){for(i=o.width,j=o.height,h=new Uint8Array(i*j),o.numComps=1,o.fillGrayBuffer(h),k=0,l=i*j;l>k;++k)h[k]=255-h[k];i===b&&j===d||(h=g.resize(h,o.bpc,1,i,j,b,d))}else if(C(o)){h=new Uint8Array(b*d);var p=this.numComps;for(k=0,l=b*d;l>k;++k){var q=0,r=k*p;for(m=0;p>m;++m){var s=f[r+m],t=2*m;if(s<o[t]||s>o[t+1]){q=255;break}}h[k]=q}}else c("Unknown mask format.");if(h)for(k=0,m=3,l=b*e;l>k;++k,m+=4)a[m]=h[k];else for(k=0,m=3,l=b*e;l>k;++k,m+=4)a[m]=255},undoPreblend:function(a,b,c){var d=this.smask&&this.smask.matte;if(d)for(var e,f,g,h=this.colorSpace.getRgb(d,0),i=h[0],j=h[1],k=h[2],l=b*c*4,m=0;l>m;m+=4){var n=a[m+3];if(0!==n){var o=255/n;e=(a[m]-i)*o+i,f=(a[m+1]-j)*o+j,g=(a[m+2]-k)*o+k,a[m]=0>=e?0:e>=255?255:0|e,a[m+1]=0>=f?0:f>=255?255:0|f,a[m+2]=0>=g?0:g>=255?255:0|g}else a[m]=255,a[m+1]=255,a[m+2]=255}},createImageData:function(a){var b,c=this.drawWidth,d=this.drawHeight,f={width:c,height:d},g=this.numComps,h=this.width,i=this.height,j=this.bpc,k=h*g*j+7>>3;if(!a){var l;if("DeviceGray"===this.colorSpace.name&&1===j?l=V.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==j||this.needsDecode||(l=V.RGB_24BPP),l&&!this.smask&&!this.mask&&c===h&&d===i){if(f.kind=l,b=this.getImageBytes(i*k),this.image instanceof Oc)f.data=b;else{var m=new Uint8Array(b.length);m.set(b),f.data=m}if(this.needsDecode){e(l===V.GRAYSCALE_1BPP);for(var n=f.data,o=0,p=n.length;p>o;o++)n[o]^=255}return f}if(this.image instanceof Sc&&!this.smask&&!this.mask&&("DeviceGray"===this.colorSpace.name||"DeviceRGB"===this.colorSpace.name||"DeviceCMYK"===this.colorSpace.name))return f.kind=V.RGB_24BPP,f.data=this.getImageBytes(i*k,c,d,!0),f}b=this.getImageBytes(i*k);var q,r,s=0|b.length/k*d/i,t=this.getComponents(b);return a||this.smask||this.mask?(f.kind=V.RGBA_32BPP,f.data=new Uint8Array(c*d*4),q=1,r=!0,this.fillOpacity(f.data,c,d,s,t)):(f.kind=V.RGB_24BPP,f.data=new Uint8Array(c*d*3),q=0,r=!1),this.needsDecode&&this.decodeBuffer(t),this.colorSpace.fillRgb(f.data,h,i,c,d,s,j,t,q),r&&this.undoPreblend(f.data,c,s),f},fillGrayBuffer:function(a){var b=this.numComps;1!==b&&c("Reading gray scale from a color image: "+b);var d,e,f=this.width,g=this.height,h=this.bpc,i=f*b*h+7>>3,j=this.getImageBytes(g*i),k=this.getComponents(j);if(1!==h){this.needsDecode&&this.decodeBuffer(k),e=f*g;var l=255/((1<<h)-1);for(d=0;e>d;++d)a[d]=l*k[d]|0}else if(e=f*g,this.needsDecode)for(d=0;e>d;++d)a[d]=k[d]-1&255;else for(d=0;e>d;++d)a[d]=255&-k[d]},getImageBytes:function(a,b,c,d){return this.image.reset(),this.image.drawWidth=b||this.width,this.image.drawHeight=c||this.height,this.image.forceRGB=!!d,this.image.getBytes(a)}},g}(),Cc={Courier:600,"Courier-Bold":600,"Courier-BoldOblique":600,"Courier-Oblique":600,Helvetica:{space:278,exclam:278,quotedbl:355,numbersign:556,dollar:556,percent:889,ampersand:667,quoteright:222,parenleft:333,parenright:333,asterisk:389,plus:584,comma:278,hyphen:333,period:278,slash:278,zero:556,one:556,two:556,three:556,four:556,five:556,six:556,seven:556,eight:556,nine:556,colon:278,semicolon:278,less:584,equal:584,greater:584,question:556,at:1015,A:667,B:667,C:722,D:722,E:667,F:611,G:778,H:722,I:278,J:500,K:667,L:556,M:833,N:722,O:778,P:667,Q:778,R:722,S:667,T:611,U:722,V:667,W:944,X:667,Y:667,Z:611,bracketleft:278,backslash:278,bracketright:278,asciicircum:469,underscore:556,quoteleft:222,a:556,b:556,c:500,d:556,e:556,f:278,g:556,h:556,i:222,j:222,k:500,l:222,m:833,n:556,o:556,p:556,q:556,r:333,s:500,t:278,u:556,v:500,w:722,x:500,y:500,z:500,braceleft:334,bar:260,braceright:334,asciitilde:584,exclamdown:333,cent:556,sterling:556,fraction:167,yen:556,florin:556,section:556,currency:556,quotesingle:191,quotedblleft:333,guillemotleft:556,guilsinglleft:333,guilsinglright:333,fi:500,fl:500,endash:556,dagger:556,daggerdbl:556,periodcentered:278,paragraph:537,bullet:350,quotesinglbase:222,quotedblbase:333,quotedblright:333,guillemotright:556,ellipsis:1e3,perthousand:1e3,questiondown:611,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:370,Lslash:556,Oslash:778,OE:1e3,ordmasculine:365,ae:889,dotlessi:278,lslash:222,oslash:611,oe:944,germandbls:611,Idieresis:278,eacute:556,abreve:556,uhungarumlaut:556,ecaron:556,Ydieresis:667,divide:584,Yacute:667,Acircumflex:667,aacute:556,Ucircumflex:722,yacute:500,scommaaccent:500,ecircumflex:556,Uring:722,Udieresis:722,aogonek:556,Uacute:722,uogonek:556,Edieresis:667,Dcroat:722,commaaccent:250,copyright:737,Emacron:667,ccaron:500,aring:556,Ncommaaccent:722,lacute:222,agrave:556,Tcommaaccent:611,Cacute:722,atilde:556,Edotaccent:667,scaron:500,scedilla:500,iacute:278,lozenge:471,Rcaron:722,Gcommaaccent:778,ucircumflex:556,acircumflex:556,Amacron:667,rcaron:333,ccedilla:500,Zdotaccent:611,Thorn:667,Omacron:778,Racute:722,Sacute:667,dcaron:643,Umacron:722,uring:556,threesuperior:333,Ograve:778,Agrave:667,Abreve:667,multiply:584,uacute:556,Tcaron:611,partialdiff:476,ydieresis:500,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:556,edieresis:556,cacute:500,nacute:556,umacron:556,Ncaron:722,Iacute:278,plusminus:584,brokenbar:260,registered:737,Gbreve:778,Idotaccent:278,summation:600,Egrave:667,racute:333,omacron:556,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:222,tcaron:317,eogonek:556,Uogonek:722,Aacute:667,Adieresis:667,egrave:556,zacute:500,iogonek:222,Oacute:778,oacute:556,amacron:556,sacute:500,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:556,twosuperior:333,Odieresis:778,mu:556,igrave:278,ohungarumlaut:556,Eogonek:667,dcroat:556,threequarters:834,Scedilla:667,lcaron:299,Kcommaaccent:667,Lacute:556,trademark:1e3,edotaccent:556,Igrave:278,Imacron:278,Lcaron:556,onehalf:834,lessequal:549,ocircumflex:556,ntilde:556,Uhungarumlaut:722,Eacute:667,emacron:556,gbreve:556,onequarter:834,Scaron:667,Scommaaccent:667,Ohungarumlaut:778,degree:400,ograve:556,Ccaron:722,ugrave:556,radical:453,Dcaron:722,rcommaaccent:333,Ntilde:722,otilde:556,Rcommaaccent:722,Lcommaaccent:556,Atilde:667,Aogonek:667,Aring:667,Otilde:778,zdotaccent:500,Ecaron:667,Iogonek:278,kcommaaccent:500,minus:584,Icircumflex:278,ncaron:556,tcommaaccent:278,logicalnot:584,odieresis:556,udieresis:556,notequal:549,gcommaaccent:556,eth:556,zcaron:500,ncommaaccent:556,onesuperior:333,imacron:278,Euro:556},"Helvetica-Bold":{space:278,exclam:333,quotedbl:474,numbersign:556,dollar:556,percent:889,ampersand:722,quoteright:278,parenleft:333,parenright:333,asterisk:389,plus:584,comma:278,hyphen:333,period:278,slash:278,zero:556,one:556,two:556,three:556,four:556,five:556,six:556,seven:556,eight:556,nine:556,colon:333,semicolon:333,less:584,equal:584,greater:584,question:611,at:975,A:722,B:722,C:722,D:722,E:667,F:611,G:778,H:722,I:278,J:556,K:722,L:611,M:833,N:722,O:778,P:667,Q:778,R:722,S:667,T:611,U:722,V:667,W:944,X:667,Y:667,Z:611,bracketleft:333,backslash:278,bracketright:333,asciicircum:584,underscore:556,quoteleft:278,a:556,b:611,c:556,d:611,e:556,f:333,g:611,h:611,i:278,j:278,k:556,l:278,m:889,n:611,o:611,p:611,q:611,r:389,s:556,t:333,u:611,v:556,w:778,x:556,y:556,z:500,braceleft:389,bar:280,braceright:389,asciitilde:584,exclamdown:333,cent:556,sterling:556,fraction:167,yen:556,florin:556,section:556,currency:556,quotesingle:238,quotedblleft:500,guillemotleft:556,guilsinglleft:333,guilsinglright:333,fi:611,fl:611,endash:556,dagger:556,daggerdbl:556,periodcentered:278,paragraph:556,bullet:350,quotesinglbase:278,quotedblbase:500,quotedblright:500,guillemotright:556,ellipsis:1e3,perthousand:1e3,questiondown:611,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:370,Lslash:611,Oslash:778,OE:1e3,ordmasculine:365,ae:889,dotlessi:278,lslash:278,oslash:611,oe:944,germandbls:611,Idieresis:278,eacute:556,abreve:556,uhungarumlaut:611,ecaron:556,Ydieresis:667,divide:584,Yacute:667,Acircumflex:722,aacute:556,Ucircumflex:722,yacute:556,scommaaccent:556,ecircumflex:556,Uring:722,Udieresis:722,aogonek:556,Uacute:722,uogonek:611,Edieresis:667,Dcroat:722,commaaccent:250,copyright:737,Emacron:667,ccaron:556,aring:556,Ncommaaccent:722,lacute:278,agrave:556,Tcommaaccent:611,Cacute:722,atilde:556,Edotaccent:667,scaron:556,scedilla:556,iacute:278,lozenge:494,Rcaron:722,Gcommaaccent:778,ucircumflex:611,acircumflex:556,Amacron:722,rcaron:389,ccedilla:556,Zdotaccent:611,Thorn:667,Omacron:778,Racute:722,Sacute:667,dcaron:743,Umacron:722,uring:611,threesuperior:333,Ograve:778,Agrave:722,Abreve:722,multiply:584,uacute:611,Tcaron:611,partialdiff:494,ydieresis:556,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:556,edieresis:556,cacute:556,nacute:611,umacron:611,Ncaron:722,Iacute:278,plusminus:584,brokenbar:280,registered:737,Gbreve:778,Idotaccent:278,summation:600,Egrave:667,racute:389,omacron:611,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:278,tcaron:389,eogonek:556,Uogonek:722,Aacute:722,Adieresis:722,egrave:556,zacute:500,iogonek:278,Oacute:778,oacute:611,amacron:556,sacute:556,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:611,twosuperior:333,Odieresis:778,mu:611,igrave:278,ohungarumlaut:611,Eogonek:667,dcroat:611,threequarters:834,Scedilla:667,lcaron:400,Kcommaaccent:722,Lacute:611,trademark:1e3,edotaccent:556,Igrave:278,Imacron:278,Lcaron:611,onehalf:834,lessequal:549,ocircumflex:611,ntilde:611,Uhungarumlaut:722,Eacute:667,emacron:556,gbreve:611,onequarter:834,Scaron:667,Scommaaccent:667,Ohungarumlaut:778,degree:400,ograve:611,Ccaron:722,ugrave:611,radical:549,Dcaron:722,rcommaaccent:389,Ntilde:722,otilde:611,Rcommaaccent:722,Lcommaaccent:611,Atilde:722,Aogonek:722,Aring:722,Otilde:778,zdotaccent:500,Ecaron:667,Iogonek:278,kcommaaccent:556,minus:584,Icircumflex:278,ncaron:611,tcommaaccent:333,logicalnot:584,odieresis:611,udieresis:611,notequal:549,gcommaaccent:611,eth:611,zcaron:500,ncommaaccent:611,onesuperior:333,imacron:278,Euro:556},"Helvetica-BoldOblique":{space:278,exclam:333,quotedbl:474,numbersign:556,dollar:556,percent:889,ampersand:722,quoteright:278,parenleft:333,parenright:333,asterisk:389,plus:584,comma:278,hyphen:333,period:278,slash:278,zero:556,one:556,two:556,three:556,four:556,five:556,six:556,seven:556,eight:556,nine:556,colon:333,semicolon:333,less:584,equal:584,greater:584,question:611,at:975,A:722,B:722,C:722,D:722,E:667,F:611,G:778,H:722,I:278,J:556,K:722,L:611,M:833,N:722,O:778,P:667,Q:778,R:722,S:667,T:611,U:722,V:667,W:944,X:667,Y:667,Z:611,bracketleft:333,backslash:278,bracketright:333,asciicircum:584,underscore:556,quoteleft:278,a:556,b:611,c:556,d:611,e:556,f:333,g:611,h:611,i:278,j:278,k:556,l:278,m:889,n:611,o:611,p:611,q:611,r:389,s:556,t:333,u:611,v:556,w:778,x:556,y:556,z:500,braceleft:389,bar:280,braceright:389,asciitilde:584,exclamdown:333,cent:556,sterling:556,fraction:167,yen:556,florin:556,section:556,currency:556,quotesingle:238,quotedblleft:500,guillemotleft:556,guilsinglleft:333,guilsinglright:333,fi:611,fl:611,endash:556,dagger:556,daggerdbl:556,periodcentered:278,paragraph:556,bullet:350,quotesinglbase:278,quotedblbase:500,quotedblright:500,guillemotright:556,ellipsis:1e3,perthousand:1e3,questiondown:611,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:370,Lslash:611,Oslash:778,OE:1e3,ordmasculine:365,ae:889,dotlessi:278,lslash:278,oslash:611,oe:944,germandbls:611,Idieresis:278,eacute:556,abreve:556,uhungarumlaut:611,ecaron:556,Ydieresis:667,divide:584,Yacute:667,Acircumflex:722,aacute:556,Ucircumflex:722,yacute:556,scommaaccent:556,ecircumflex:556,Uring:722,Udieresis:722,aogonek:556,Uacute:722,uogonek:611,Edieresis:667,Dcroat:722,commaaccent:250,copyright:737,Emacron:667,ccaron:556,aring:556,Ncommaaccent:722,lacute:278,agrave:556,Tcommaaccent:611,Cacute:722,atilde:556,Edotaccent:667,scaron:556,scedilla:556,iacute:278,lozenge:494,Rcaron:722,Gcommaaccent:778,ucircumflex:611,acircumflex:556,Amacron:722,rcaron:389,ccedilla:556,Zdotaccent:611,Thorn:667,Omacron:778,Racute:722,Sacute:667,dcaron:743,Umacron:722,uring:611,threesuperior:333,Ograve:778,Agrave:722,Abreve:722,multiply:584,uacute:611,Tcaron:611,partialdiff:494,ydieresis:556,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:556,edieresis:556,cacute:556,nacute:611,umacron:611,Ncaron:722,Iacute:278,plusminus:584,brokenbar:280,registered:737,Gbreve:778,Idotaccent:278,summation:600,Egrave:667,racute:389,omacron:611,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:278,tcaron:389,eogonek:556,Uogonek:722,Aacute:722,Adieresis:722,egrave:556,zacute:500,iogonek:278,Oacute:778,oacute:611,amacron:556,sacute:556,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:611,twosuperior:333,Odieresis:778,mu:611,igrave:278,ohungarumlaut:611,Eogonek:667,dcroat:611,threequarters:834,Scedilla:667,lcaron:400,Kcommaaccent:722,Lacute:611,trademark:1e3,edotaccent:556,Igrave:278,Imacron:278,Lcaron:611,onehalf:834,lessequal:549,ocircumflex:611,ntilde:611,Uhungarumlaut:722,Eacute:667,emacron:556,gbreve:611,onequarter:834,Scaron:667,Scommaaccent:667,Ohungarumlaut:778,degree:400,ograve:611,Ccaron:722,ugrave:611,radical:549,Dcaron:722,rcommaaccent:389,Ntilde:722,otilde:611,Rcommaaccent:722,Lcommaaccent:611,Atilde:722,Aogonek:722,Aring:722,Otilde:778,zdotaccent:500,Ecaron:667,Iogonek:278,kcommaaccent:556,minus:584,Icircumflex:278,ncaron:611,tcommaaccent:333,logicalnot:584,odieresis:611,udieresis:611,notequal:549,gcommaaccent:611,eth:611,zcaron:500,ncommaaccent:611,onesuperior:333,imacron:278,Euro:556},"Helvetica-Oblique":{space:278,exclam:278,quotedbl:355,numbersign:556,dollar:556,percent:889,ampersand:667,quoteright:222,parenleft:333,parenright:333,asterisk:389,plus:584,comma:278,hyphen:333,period:278,slash:278,zero:556,one:556,two:556,three:556,four:556,five:556,six:556,seven:556,eight:556,nine:556,colon:278,semicolon:278,less:584,equal:584,greater:584,question:556,at:1015,A:667,B:667,C:722,D:722,E:667,F:611,G:778,H:722,I:278,J:500,K:667,L:556,M:833,N:722,O:778,P:667,Q:778,R:722,S:667,T:611,U:722,V:667,W:944,X:667,Y:667,Z:611,bracketleft:278,backslash:278,bracketright:278,asciicircum:469,underscore:556,quoteleft:222,a:556,b:556,c:500,d:556,e:556,f:278,g:556,h:556,i:222,j:222,k:500,l:222,m:833,n:556,o:556,p:556,q:556,r:333,s:500,t:278,u:556,v:500,w:722,x:500,y:500,z:500,braceleft:334,bar:260,braceright:334,asciitilde:584,exclamdown:333,cent:556,sterling:556,fraction:167,yen:556,florin:556,section:556,currency:556,quotesingle:191,quotedblleft:333,guillemotleft:556,guilsinglleft:333,guilsinglright:333,fi:500,fl:500,endash:556,dagger:556,daggerdbl:556,periodcentered:278,paragraph:537,bullet:350,quotesinglbase:222,quotedblbase:333,quotedblright:333,guillemotright:556,ellipsis:1e3,perthousand:1e3,questiondown:611,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:370,Lslash:556,Oslash:778,OE:1e3,ordmasculine:365,ae:889,dotlessi:278,lslash:222,oslash:611,oe:944,germandbls:611,Idieresis:278,eacute:556,abreve:556,uhungarumlaut:556,ecaron:556,Ydieresis:667,divide:584,Yacute:667,Acircumflex:667,aacute:556,Ucircumflex:722,yacute:500,scommaaccent:500,ecircumflex:556,Uring:722,Udieresis:722,aogonek:556,Uacute:722,uogonek:556,Edieresis:667,Dcroat:722,commaaccent:250,copyright:737,Emacron:667,ccaron:500,aring:556,Ncommaaccent:722,lacute:222,agrave:556,Tcommaaccent:611,Cacute:722,atilde:556,Edotaccent:667,scaron:500,scedilla:500,iacute:278,lozenge:471,Rcaron:722,Gcommaaccent:778,ucircumflex:556,acircumflex:556,Amacron:667,rcaron:333,ccedilla:500,Zdotaccent:611,Thorn:667,Omacron:778,Racute:722,Sacute:667,dcaron:643,Umacron:722,uring:556,threesuperior:333,Ograve:778,Agrave:667,Abreve:667,multiply:584,uacute:556,Tcaron:611,partialdiff:476,ydieresis:500,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:556,edieresis:556,cacute:500,nacute:556,umacron:556,Ncaron:722,Iacute:278,plusminus:584,brokenbar:260,registered:737,Gbreve:778,Idotaccent:278,summation:600,Egrave:667,racute:333,omacron:556,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:222,tcaron:317,eogonek:556,Uogonek:722,Aacute:667,Adieresis:667,egrave:556,zacute:500,iogonek:222,Oacute:778,oacute:556,amacron:556,sacute:500,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:556,twosuperior:333,Odieresis:778,mu:556,igrave:278,ohungarumlaut:556,Eogonek:667,dcroat:556,threequarters:834,Scedilla:667,lcaron:299,Kcommaaccent:667,Lacute:556,trademark:1e3,edotaccent:556,Igrave:278,Imacron:278,Lcaron:556,
+onehalf:834,lessequal:549,ocircumflex:556,ntilde:556,Uhungarumlaut:722,Eacute:667,emacron:556,gbreve:556,onequarter:834,Scaron:667,Scommaaccent:667,Ohungarumlaut:778,degree:400,ograve:556,Ccaron:722,ugrave:556,radical:453,Dcaron:722,rcommaaccent:333,Ntilde:722,otilde:556,Rcommaaccent:722,Lcommaaccent:556,Atilde:667,Aogonek:667,Aring:667,Otilde:778,zdotaccent:500,Ecaron:667,Iogonek:278,kcommaaccent:500,minus:584,Icircumflex:278,ncaron:556,tcommaaccent:278,logicalnot:584,odieresis:556,udieresis:556,notequal:549,gcommaaccent:556,eth:556,zcaron:500,ncommaaccent:556,onesuperior:333,imacron:278,Euro:556},Symbol:{space:250,exclam:333,universal:713,numbersign:500,existential:549,percent:833,ampersand:778,suchthat:439,parenleft:333,parenright:333,asteriskmath:500,plus:549,comma:250,minus:549,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:278,semicolon:278,less:549,equal:549,greater:549,question:444,congruent:549,Alpha:722,Beta:667,Chi:722,Delta:612,Epsilon:611,Phi:763,Gamma:603,Eta:722,Iota:333,theta1:631,Kappa:722,Lambda:686,Mu:889,Nu:722,Omicron:722,Pi:768,Theta:741,Rho:556,Sigma:592,Tau:611,Upsilon:690,sigma1:439,Omega:768,Xi:645,Psi:795,Zeta:611,bracketleft:333,therefore:863,bracketright:333,perpendicular:658,underscore:500,radicalex:500,alpha:631,beta:549,chi:549,delta:494,epsilon:439,phi:521,gamma:411,eta:603,iota:329,phi1:603,kappa:549,lambda:549,mu:576,nu:521,omicron:549,pi:549,theta:521,rho:549,sigma:603,tau:439,upsilon:576,omega1:713,omega:686,xi:493,psi:686,zeta:494,braceleft:480,bar:200,braceright:480,similar:549,Euro:750,Upsilon1:620,minute:247,lessequal:549,fraction:167,infinity:713,florin:500,club:753,diamond:753,heart:753,spade:753,arrowboth:1042,arrowleft:987,arrowup:603,arrowright:987,arrowdown:603,degree:400,plusminus:549,second:411,greaterequal:549,multiply:549,proportional:713,partialdiff:494,bullet:460,divide:549,notequal:549,equivalence:549,approxequal:549,ellipsis:1e3,arrowvertex:603,arrowhorizex:1e3,carriagereturn:658,aleph:823,Ifraktur:686,Rfraktur:795,weierstrass:987,circlemultiply:768,circleplus:768,emptyset:823,intersection:768,union:768,propersuperset:713,reflexsuperset:713,notsubset:713,propersubset:713,reflexsubset:713,element:713,notelement:713,angle:768,gradient:713,registerserif:790,copyrightserif:790,trademarkserif:890,product:823,radical:549,dotmath:250,logicalnot:713,logicaland:603,logicalor:603,arrowdblboth:1042,arrowdblleft:987,arrowdblup:603,arrowdblright:987,arrowdbldown:603,lozenge:494,angleleft:329,registersans:790,copyrightsans:790,trademarksans:786,summation:713,parenlefttp:384,parenleftex:384,parenleftbt:384,bracketlefttp:384,bracketleftex:384,bracketleftbt:384,bracelefttp:494,braceleftmid:494,braceleftbt:494,braceex:494,angleright:329,integral:274,integraltp:686,integralex:686,integralbt:686,parenrighttp:384,parenrightex:384,parenrightbt:384,bracketrighttp:384,bracketrightex:384,bracketrightbt:384,bracerighttp:494,bracerightmid:494,bracerightbt:494,apple:790},"Times-Roman":{space:250,exclam:333,quotedbl:408,numbersign:500,dollar:500,percent:833,ampersand:778,quoteright:333,parenleft:333,parenright:333,asterisk:500,plus:564,comma:250,hyphen:333,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:278,semicolon:278,less:564,equal:564,greater:564,question:444,at:921,A:722,B:667,C:667,D:722,E:611,F:556,G:722,H:722,I:333,J:389,K:722,L:611,M:889,N:722,O:722,P:556,Q:722,R:667,S:556,T:611,U:722,V:722,W:944,X:722,Y:722,Z:611,bracketleft:333,backslash:278,bracketright:333,asciicircum:469,underscore:500,quoteleft:333,a:444,b:500,c:444,d:500,e:444,f:333,g:500,h:500,i:278,j:278,k:500,l:278,m:778,n:500,o:500,p:500,q:500,r:333,s:389,t:278,u:500,v:500,w:722,x:500,y:500,z:444,braceleft:480,bar:200,braceright:480,asciitilde:541,exclamdown:333,cent:500,sterling:500,fraction:167,yen:500,florin:500,section:500,currency:500,quotesingle:180,quotedblleft:444,guillemotleft:500,guilsinglleft:333,guilsinglright:333,fi:556,fl:556,endash:500,dagger:500,daggerdbl:500,periodcentered:250,paragraph:453,bullet:350,quotesinglbase:333,quotedblbase:444,quotedblright:444,guillemotright:500,ellipsis:1e3,perthousand:1e3,questiondown:444,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:889,ordfeminine:276,Lslash:611,Oslash:722,OE:889,ordmasculine:310,ae:667,dotlessi:278,lslash:278,oslash:500,oe:722,germandbls:500,Idieresis:333,eacute:444,abreve:444,uhungarumlaut:500,ecaron:444,Ydieresis:722,divide:564,Yacute:722,Acircumflex:722,aacute:444,Ucircumflex:722,yacute:500,scommaaccent:389,ecircumflex:444,Uring:722,Udieresis:722,aogonek:444,Uacute:722,uogonek:500,Edieresis:611,Dcroat:722,commaaccent:250,copyright:760,Emacron:611,ccaron:444,aring:444,Ncommaaccent:722,lacute:278,agrave:444,Tcommaaccent:611,Cacute:667,atilde:444,Edotaccent:611,scaron:389,scedilla:389,iacute:278,lozenge:471,Rcaron:667,Gcommaaccent:722,ucircumflex:500,acircumflex:444,Amacron:722,rcaron:333,ccedilla:444,Zdotaccent:611,Thorn:556,Omacron:722,Racute:667,Sacute:556,dcaron:588,Umacron:722,uring:500,threesuperior:300,Ograve:722,Agrave:722,Abreve:722,multiply:564,uacute:500,Tcaron:611,partialdiff:476,ydieresis:500,Nacute:722,icircumflex:278,Ecircumflex:611,adieresis:444,edieresis:444,cacute:444,nacute:500,umacron:500,Ncaron:722,Iacute:333,plusminus:564,brokenbar:200,registered:760,Gbreve:722,Idotaccent:333,summation:600,Egrave:611,racute:333,omacron:500,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:667,lcommaaccent:278,tcaron:326,eogonek:444,Uogonek:722,Aacute:722,Adieresis:722,egrave:444,zacute:444,iogonek:278,Oacute:722,oacute:500,amacron:444,sacute:389,idieresis:278,Ocircumflex:722,Ugrave:722,Delta:612,thorn:500,twosuperior:300,Odieresis:722,mu:500,igrave:278,ohungarumlaut:500,Eogonek:611,dcroat:500,threequarters:750,Scedilla:556,lcaron:344,Kcommaaccent:722,Lacute:611,trademark:980,edotaccent:444,Igrave:333,Imacron:333,Lcaron:611,onehalf:750,lessequal:549,ocircumflex:500,ntilde:500,Uhungarumlaut:722,Eacute:611,emacron:444,gbreve:500,onequarter:750,Scaron:556,Scommaaccent:556,Ohungarumlaut:722,degree:400,ograve:500,Ccaron:667,ugrave:500,radical:453,Dcaron:722,rcommaaccent:333,Ntilde:722,otilde:500,Rcommaaccent:667,Lcommaaccent:611,Atilde:722,Aogonek:722,Aring:722,Otilde:722,zdotaccent:444,Ecaron:611,Iogonek:333,kcommaaccent:500,minus:564,Icircumflex:333,ncaron:500,tcommaaccent:278,logicalnot:564,odieresis:500,udieresis:500,notequal:549,gcommaaccent:500,eth:500,zcaron:444,ncommaaccent:500,onesuperior:300,imacron:278,Euro:500},"Times-Bold":{space:250,exclam:333,quotedbl:555,numbersign:500,dollar:500,percent:1e3,ampersand:833,quoteright:333,parenleft:333,parenright:333,asterisk:500,plus:570,comma:250,hyphen:333,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:333,semicolon:333,less:570,equal:570,greater:570,question:500,at:930,A:722,B:667,C:722,D:722,E:667,F:611,G:778,H:778,I:389,J:500,K:778,L:667,M:944,N:722,O:778,P:611,Q:778,R:722,S:556,T:667,U:722,V:722,W:1e3,X:722,Y:722,Z:667,bracketleft:333,backslash:278,bracketright:333,asciicircum:581,underscore:500,quoteleft:333,a:500,b:556,c:444,d:556,e:444,f:333,g:500,h:556,i:278,j:333,k:556,l:278,m:833,n:556,o:500,p:556,q:556,r:444,s:389,t:333,u:556,v:500,w:722,x:500,y:500,z:444,braceleft:394,bar:220,braceright:394,asciitilde:520,exclamdown:333,cent:500,sterling:500,fraction:167,yen:500,florin:500,section:500,currency:500,quotesingle:278,quotedblleft:500,guillemotleft:500,guilsinglleft:333,guilsinglright:333,fi:556,fl:556,endash:500,dagger:500,daggerdbl:500,periodcentered:250,paragraph:540,bullet:350,quotesinglbase:333,quotedblbase:500,quotedblright:500,guillemotright:500,ellipsis:1e3,perthousand:1e3,questiondown:500,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:1e3,ordfeminine:300,Lslash:667,Oslash:778,OE:1e3,ordmasculine:330,ae:722,dotlessi:278,lslash:278,oslash:500,oe:722,germandbls:556,Idieresis:389,eacute:444,abreve:500,uhungarumlaut:556,ecaron:444,Ydieresis:722,divide:570,Yacute:722,Acircumflex:722,aacute:500,Ucircumflex:722,yacute:500,scommaaccent:389,ecircumflex:444,Uring:722,Udieresis:722,aogonek:500,Uacute:722,uogonek:556,Edieresis:667,Dcroat:722,commaaccent:250,copyright:747,Emacron:667,ccaron:444,aring:500,Ncommaaccent:722,lacute:278,agrave:500,Tcommaaccent:667,Cacute:722,atilde:500,Edotaccent:667,scaron:389,scedilla:389,iacute:278,lozenge:494,Rcaron:722,Gcommaaccent:778,ucircumflex:556,acircumflex:500,Amacron:722,rcaron:444,ccedilla:444,Zdotaccent:667,Thorn:611,Omacron:778,Racute:722,Sacute:556,dcaron:672,Umacron:722,uring:556,threesuperior:300,Ograve:778,Agrave:722,Abreve:722,multiply:570,uacute:556,Tcaron:667,partialdiff:494,ydieresis:500,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:500,edieresis:444,cacute:444,nacute:556,umacron:556,Ncaron:722,Iacute:389,plusminus:570,brokenbar:220,registered:747,Gbreve:778,Idotaccent:389,summation:600,Egrave:667,racute:444,omacron:500,Zacute:667,Zcaron:667,greaterequal:549,Eth:722,Ccedilla:722,lcommaaccent:278,tcaron:416,eogonek:444,Uogonek:722,Aacute:722,Adieresis:722,egrave:444,zacute:444,iogonek:278,Oacute:778,oacute:500,amacron:500,sacute:389,idieresis:278,Ocircumflex:778,Ugrave:722,Delta:612,thorn:556,twosuperior:300,Odieresis:778,mu:556,igrave:278,ohungarumlaut:500,Eogonek:667,dcroat:556,threequarters:750,Scedilla:556,lcaron:394,Kcommaaccent:778,Lacute:667,trademark:1e3,edotaccent:444,Igrave:389,Imacron:389,Lcaron:667,onehalf:750,lessequal:549,ocircumflex:500,ntilde:556,Uhungarumlaut:722,Eacute:667,emacron:444,gbreve:500,onequarter:750,Scaron:556,Scommaaccent:556,Ohungarumlaut:778,degree:400,ograve:500,Ccaron:722,ugrave:556,radical:549,Dcaron:722,rcommaaccent:444,Ntilde:722,otilde:500,Rcommaaccent:722,Lcommaaccent:667,Atilde:722,Aogonek:722,Aring:722,Otilde:778,zdotaccent:444,Ecaron:667,Iogonek:389,kcommaaccent:556,minus:570,Icircumflex:389,ncaron:556,tcommaaccent:333,logicalnot:570,odieresis:500,udieresis:556,notequal:549,gcommaaccent:500,eth:500,zcaron:444,ncommaaccent:556,onesuperior:300,imacron:278,Euro:500},"Times-BoldItalic":{space:250,exclam:389,quotedbl:555,numbersign:500,dollar:500,percent:833,ampersand:778,quoteright:333,parenleft:333,parenright:333,asterisk:500,plus:570,comma:250,hyphen:333,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:333,semicolon:333,less:570,equal:570,greater:570,question:500,at:832,A:667,B:667,C:667,D:722,E:667,F:667,G:722,H:778,I:389,J:500,K:667,L:611,M:889,N:722,O:722,P:611,Q:722,R:667,S:556,T:611,U:722,V:667,W:889,X:667,Y:611,Z:611,bracketleft:333,backslash:278,bracketright:333,asciicircum:570,underscore:500,quoteleft:333,a:500,b:500,c:444,d:500,e:444,f:333,g:500,h:556,i:278,j:278,k:500,l:278,m:778,n:556,o:500,p:500,q:500,r:389,s:389,t:278,u:556,v:444,w:667,x:500,y:444,z:389,braceleft:348,bar:220,braceright:348,asciitilde:570,exclamdown:389,cent:500,sterling:500,fraction:167,yen:500,florin:500,section:500,currency:500,quotesingle:278,quotedblleft:500,guillemotleft:500,guilsinglleft:333,guilsinglright:333,fi:556,fl:556,endash:500,dagger:500,daggerdbl:500,periodcentered:250,paragraph:500,bullet:350,quotesinglbase:333,quotedblbase:500,quotedblright:500,guillemotright:500,ellipsis:1e3,perthousand:1e3,questiondown:500,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:1e3,AE:944,ordfeminine:266,Lslash:611,Oslash:722,OE:944,ordmasculine:300,ae:722,dotlessi:278,lslash:278,oslash:500,oe:722,germandbls:500,Idieresis:389,eacute:444,abreve:500,uhungarumlaut:556,ecaron:444,Ydieresis:611,divide:570,Yacute:611,Acircumflex:667,aacute:500,Ucircumflex:722,yacute:444,scommaaccent:389,ecircumflex:444,Uring:722,Udieresis:722,aogonek:500,Uacute:722,uogonek:556,Edieresis:667,Dcroat:722,commaaccent:250,copyright:747,Emacron:667,ccaron:444,aring:500,Ncommaaccent:722,lacute:278,agrave:500,Tcommaaccent:611,Cacute:667,atilde:500,Edotaccent:667,scaron:389,scedilla:389,iacute:278,lozenge:494,Rcaron:667,Gcommaaccent:722,ucircumflex:556,acircumflex:500,Amacron:667,rcaron:389,ccedilla:444,Zdotaccent:611,Thorn:611,Omacron:722,Racute:667,Sacute:556,dcaron:608,Umacron:722,uring:556,threesuperior:300,Ograve:722,Agrave:667,Abreve:667,multiply:570,uacute:556,Tcaron:611,partialdiff:494,ydieresis:444,Nacute:722,icircumflex:278,Ecircumflex:667,adieresis:500,edieresis:444,cacute:444,nacute:556,umacron:556,Ncaron:722,Iacute:389,plusminus:570,brokenbar:220,registered:747,Gbreve:722,Idotaccent:389,summation:600,Egrave:667,racute:389,omacron:500,Zacute:611,Zcaron:611,greaterequal:549,Eth:722,Ccedilla:667,lcommaaccent:278,tcaron:366,eogonek:444,Uogonek:722,Aacute:667,Adieresis:667,egrave:444,zacute:389,iogonek:278,Oacute:722,oacute:500,amacron:500,sacute:389,idieresis:278,Ocircumflex:722,Ugrave:722,Delta:612,thorn:500,twosuperior:300,Odieresis:722,mu:576,igrave:278,ohungarumlaut:500,Eogonek:667,dcroat:500,threequarters:750,Scedilla:556,lcaron:382,Kcommaaccent:667,Lacute:611,trademark:1e3,edotaccent:444,Igrave:389,Imacron:389,Lcaron:611,onehalf:750,lessequal:549,ocircumflex:500,ntilde:556,Uhungarumlaut:722,Eacute:667,emacron:444,gbreve:500,onequarter:750,Scaron:556,Scommaaccent:556,Ohungarumlaut:722,degree:400,ograve:500,Ccaron:667,ugrave:556,radical:549,Dcaron:722,rcommaaccent:389,Ntilde:722,otilde:500,Rcommaaccent:667,Lcommaaccent:611,Atilde:667,Aogonek:667,Aring:667,Otilde:722,zdotaccent:389,Ecaron:667,Iogonek:389,kcommaaccent:500,minus:606,Icircumflex:389,ncaron:556,tcommaaccent:278,logicalnot:606,odieresis:500,udieresis:556,notequal:549,gcommaaccent:500,eth:500,zcaron:389,ncommaaccent:556,onesuperior:300,imacron:278,Euro:500},"Times-Italic":{space:250,exclam:333,quotedbl:420,numbersign:500,dollar:500,percent:833,ampersand:778,quoteright:333,parenleft:333,parenright:333,asterisk:500,plus:675,comma:250,hyphen:333,period:250,slash:278,zero:500,one:500,two:500,three:500,four:500,five:500,six:500,seven:500,eight:500,nine:500,colon:333,semicolon:333,less:675,equal:675,greater:675,question:500,at:920,A:611,B:611,C:667,D:722,E:611,F:611,G:722,H:722,I:333,J:444,K:667,L:556,M:833,N:667,O:722,P:611,Q:722,R:611,S:500,T:556,U:722,V:611,W:833,X:611,Y:556,Z:556,bracketleft:389,backslash:278,bracketright:389,asciicircum:422,underscore:500,quoteleft:333,a:500,b:500,c:444,d:500,e:444,f:278,g:500,h:500,i:278,j:278,k:444,l:278,m:722,n:500,o:500,p:500,q:500,r:389,s:389,t:278,u:500,v:444,w:667,x:444,y:444,z:389,braceleft:400,bar:275,braceright:400,asciitilde:541,exclamdown:389,cent:500,sterling:500,fraction:167,yen:500,florin:500,section:500,currency:500,quotesingle:214,quotedblleft:556,guillemotleft:500,guilsinglleft:333,guilsinglright:333,fi:500,fl:500,endash:500,dagger:500,daggerdbl:500,periodcentered:250,paragraph:523,bullet:350,quotesinglbase:333,quotedblbase:556,quotedblright:556,guillemotright:500,ellipsis:889,perthousand:1e3,questiondown:500,grave:333,acute:333,circumflex:333,tilde:333,macron:333,breve:333,dotaccent:333,dieresis:333,ring:333,cedilla:333,hungarumlaut:333,ogonek:333,caron:333,emdash:889,AE:889,ordfeminine:276,Lslash:556,Oslash:722,OE:944,ordmasculine:310,ae:667,dotlessi:278,lslash:278,oslash:500,oe:667,germandbls:500,Idieresis:333,eacute:444,abreve:500,uhungarumlaut:500,ecaron:444,Ydieresis:556,divide:675,Yacute:556,Acircumflex:611,aacute:500,Ucircumflex:722,yacute:444,scommaaccent:389,ecircumflex:444,Uring:722,Udieresis:722,aogonek:500,Uacute:722,uogonek:500,Edieresis:611,Dcroat:722,commaaccent:250,copyright:760,Emacron:611,ccaron:444,aring:500,Ncommaaccent:667,lacute:278,agrave:500,Tcommaaccent:556,Cacute:667,atilde:500,Edotaccent:611,scaron:389,scedilla:389,iacute:278,lozenge:471,Rcaron:611,Gcommaaccent:722,ucircumflex:500,acircumflex:500,Amacron:611,rcaron:389,ccedilla:444,Zdotaccent:556,Thorn:611,Omacron:722,Racute:611,Sacute:500,dcaron:544,Umacron:722,uring:500,threesuperior:300,Ograve:722,Agrave:611,Abreve:611,multiply:675,uacute:500,Tcaron:556,partialdiff:476,ydieresis:444,Nacute:667,icircumflex:278,Ecircumflex:611,adieresis:500,edieresis:444,cacute:444,nacute:500,umacron:500,Ncaron:667,Iacute:333,plusminus:675,brokenbar:275,registered:760,Gbreve:722,Idotaccent:333,summation:600,Egrave:611,racute:389,omacron:500,Zacute:556,Zcaron:556,greaterequal:549,Eth:722,Ccedilla:667,lcommaaccent:278,tcaron:300,eogonek:444,Uogonek:722,Aacute:611,Adieresis:611,egrave:444,zacute:389,iogonek:278,Oacute:722,oacute:500,amacron:500,sacute:389,idieresis:278,Ocircumflex:722,Ugrave:722,Delta:612,thorn:500,twosuperior:300,Odieresis:722,mu:500,igrave:278,ohungarumlaut:500,Eogonek:611,dcroat:500,threequarters:750,Scedilla:500,lcaron:300,Kcommaaccent:667,Lacute:556,trademark:980,edotaccent:444,Igrave:333,Imacron:333,Lcaron:611,onehalf:750,lessequal:549,ocircumflex:500,ntilde:500,Uhungarumlaut:722,Eacute:611,emacron:444,gbreve:500,onequarter:750,Scaron:500,Scommaaccent:500,Ohungarumlaut:722,degree:400,ograve:500,Ccaron:667,ugrave:500,radical:453,Dcaron:722,rcommaaccent:389,Ntilde:667,otilde:500,Rcommaaccent:611,Lcommaaccent:556,Atilde:611,Aogonek:611,Aring:611,Otilde:722,zdotaccent:389,Ecaron:611,Iogonek:333,kcommaaccent:444,minus:675,Icircumflex:333,ncaron:500,tcommaaccent:278,logicalnot:675,odieresis:500,udieresis:500,notequal:549,gcommaaccent:500,eth:500,zcaron:389,ncommaaccent:500,onesuperior:300,imacron:278,Euro:500},ZapfDingbats:{space:278,a1:974,a2:961,a202:974,a3:980,a4:719,a5:789,a119:790,a118:791,a117:690,a11:960,a12:939,a13:549,a14:855,a15:911,a16:933,a105:911,a17:945,a18:974,a19:755,a20:846,a21:762,a22:761,a23:571,a24:677,a25:763,a26:760,a27:759,a28:754,a6:494,a7:552,a8:537,a9:577,a10:692,a29:786,a30:788,a31:788,a32:790,a33:793,a34:794,a35:816,a36:823,a37:789,a38:841,a39:823,a40:833,a41:816,a42:831,a43:923,a44:744,a45:723,a46:749,a47:790,a48:792,a49:695,a50:776,a51:768,a52:792,a53:759,a54:707,a55:708,a56:682,a57:701,a58:826,a59:815,a60:789,a61:789,a62:707,a63:687,a64:696,a65:689,a66:786,a67:787,a68:713,a69:791,a70:785,a71:791,a72:873,a73:761,a74:762,a203:762,a75:759,a204:759,a76:892,a77:892,a78:788,a79:784,a81:438,a82:138,a83:277,a84:415,a97:392,a98:392,a99:668,a100:668,a89:390,a90:390,a93:317,a94:317,a91:276,a92:276,a205:509,a85:509,a206:410,a86:410,a87:234,a88:234,a95:334,a96:334,a101:732,a102:544,a103:544,a104:910,a106:667,a107:760,a108:760,a112:776,a111:595,a110:694,a109:626,a120:788,a121:788,a122:788,a123:788,a124:788,a125:788,a126:788,a127:788,a128:788,a129:788,a130:788,a131:788,a132:788,a133:788,a134:788,a135:788,a136:788,a137:788,a138:788,a139:788,a140:788,a141:788,a142:788,a143:788,a144:788,a145:788,a146:788,a147:788,a148:788,a149:788,a150:788,a151:788,a152:788,a153:788,a154:788,a155:788,a156:788,a157:788,a158:788,a159:788,a160:894,a161:838,a163:1016,a164:458,a196:748,a165:924,a192:748,a166:918,a167:927,a168:928,a169:928,a170:834,a171:873,a172:828,a173:924,a162:924,a174:917,a175:930,a176:931,a177:463,a178:883,a179:836,a193:836,a180:867,a199:867,a181:696,a200:696,a182:874,a201:874,a183:760,a184:946,a197:771,a185:865,a194:771,a198:888,a186:967,a195:888,a187:831,a188:873,a189:927,a190:970,a191:918}},Dc={},Ec=1e3,Fc=function(){function d(a,b,c){this.lexer=a,this.allowStreams=b,this.xref=c,this.imageCache={},this.refill()}return d.prototype={refill:function(){this.buf1=this.lexer.getObj(),this.buf2=this.lexer.getObj()},shift:function(){A(this.buf2,"ID")?(this.buf1=this.buf2,this.buf2=null):(this.buf1=this.buf2,this.buf2=this.lexer.getObj())},tryShift:function(){try{return this.shift(),!0}catch(a){if(a instanceof ja)throw a;return!1}},getObj:function(b){var d=this.buf1;if(this.shift(),d instanceof za)switch(d.cmd){case"BI":return this.makeInlineImage(b);case"[":for(var e=[];!A(this.buf1,"]")&&!R(this.buf1);)e.push(this.getObj(b));return R(this.buf1)&&c("End of file inside array"),this.shift(),e;case"<<":for(var f=new Aa(this.xref);!A(this.buf1,">>")&&!R(this.buf1);)if(z(this.buf1)){var g=this.buf1.name;if(this.shift(),R(this.buf1))break;f.set(g,this.getObj(b))}else a("Malformed dictionary: key must be a name object"),this.shift();return R(this.buf1)&&c("End of file inside dictionary"),A(this.buf2,"stream")?this.allowStreams?this.makeStream(f,b):f:(this.shift(),f);default:return d}if(w(d)){var h=d;if(w(this.buf1)&&A(this.buf2,"R")){var i=new Ba(h,this.buf1);return this.shift(),this.shift(),i}return h}if(y(d)){var j=d;return b&&(j=b.decryptString(j)),j}return d},findDefaultInlineStreamEnd:function(a){for(var b,c,d,f,g=69,h=73,i=32,j=10,k=13,l=a.pos,m=0;-1!==(b=a.getByte());)if(0===m)m=b===g?1:0;else if(1===m)m=b===h?2:0;else if(e(2===m),b===i||b===j||b===k){for(d=5,f=a.peekBytes(d),c=0;d>c;c++)if(b=f[c],b!==j&&b!==k&&(i>b||b>127)){m=0;break}if(2===m)break}else m=0;return a.pos-4-l},findDCTDecodeInlineStreamEnd:function(a){for(var c,d,e,f=a.pos,g=!1;-1!==(c=a.getByte());)if(255===c){switch(a.getByte()){case 0:break;case 255:a.skip(-1);break;case 217:g=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:d=a.getUint16(),d>2?a.skip(d-2):a.skip(-2)}if(g)break}return e=a.pos-f,-1===c?(b("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead."),a.skip(-e),this.findDefaultInlineStreamEnd(a)):(this.inlineStreamSkipEI(a),e)},findASCII85DecodeInlineStreamEnd:function(a){for(var c,d,e=126,f=62,g=a.pos;-1!==(c=a.getByte());)if(c===e&&a.peekByte()===f){a.skip();break}return d=a.pos-g,-1===c?(b("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead."),a.skip(-d),this.findDefaultInlineStreamEnd(a)):(this.inlineStreamSkipEI(a),d)},findASCIIHexDecodeInlineStreamEnd:function(a){for(var c,d,e=62,f=a.pos;-1!==(c=a.getByte())&&c!==e;);return d=a.pos-f,-1===c?(b("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead."),a.skip(-d),this.findDefaultInlineStreamEnd(a)):(this.inlineStreamSkipEI(a),d)},inlineStreamSkipEI:function(a){for(var b,c=69,d=73,e=0;-1!==(b=a.getByte());)if(0===e)e=b===c?1:0;else if(1===e)e=b===d?2:0;else if(2===e)break},makeInlineImage:function(a){for(var b=this.lexer,d=b.stream,e=new Aa(this.xref);!A(this.buf1,"ID")&&!R(this.buf1);){z(this.buf1)||c("Dictionary key must be a name object");var f=this.buf1.name;if(this.shift(),R(this.buf1))break;e.set(f,this.getObj(a))}var g,h=e.get("Filter","F");z(h)?g=h.name:C(h)&&z(h[0])&&(g=h[0].name);var i,j,k,l=d.pos;i="DCTDecode"===g||"DCT"===g?this.findDCTDecodeInlineStreamEnd(d):"ASCII85Decide"===g||"A85"===g?this.findASCII85DecodeInlineStreamEnd(d):"ASCIIHexDecode"===g||"AHx"===g?this.findASCIIHexDecodeInlineStreamEnd(d):this.findDefaultInlineStreamEnd(d);var m,n=d.makeSubStream(l,i,e);if(Ec>i){var o=n.getBytes();n.reset();var p=1,q=0;for(j=0,k=o.length;k>j;++j)p+=255&o[j],q+=p;if(m=q%65521<<16|p%65521,this.imageCache.adler32===m)return this.buf2=za.get("EI"),this.shift(),this.imageCache[m].reset(),this.imageCache[m]}return a&&(n=a.createStream(n,i)),n=this.filter(n,e,i),n.dict=e,void 0!==m&&(n.cacheKey="inline_"+i+"_"+m,this.imageCache[m]=n),this.buf2=za.get("EI"),this.shift(),n},makeStream:function(b,d){var e=this.lexer,f=e.stream;e.skipToNextLine();var g=f.pos-1,h=b.get("Length");if(w(h)||(a("Bad "+h+" attribute in stream"),h=0),f.pos=g+h,e.nextChar(),this.tryShift()&&A(this.buf2,"endstream"))this.shift();else{f.pos=g;for(var i,j,k=2048,l=9,m=[101,110,100,115,116,114,101,97,109],n=0,o=!1;f.pos<f.end;){var p=f.peekBytes(k),q=p.length-l;if(0>=q)break;for(o=!1,i=0,j=0;q>i;i++){var r=p[i];if(r!==m[j])i-=j,j=0;else if(j++,j>=l){i++,o=!0;break}}if(o){n+=i-l,f.pos+=i-l;break}n+=q,f.pos+=q}o||c("Missing endstream"),h=n,e.nextChar(),this.shift(),this.shift()}return this.shift(),f=f.makeSubStream(g,h,b),d&&(f=d.createStream(f,h)),f=this.filter(f,b,h),f.dict=b,f},filter:function(a,b,d){var e=b.get("Filter","F"),f=b.get("DecodeParms","DP");if(z(e))return this.makeFilter(a,e.name,d,f);var g=d;if(C(e))for(var h=e,i=f,j=0,k=h.length;k>j;++j)e=h[j],z(e)||c("Bad filter name: "+e),f=null,C(i)&&j in i&&(f=i[j]),a=this.makeFilter(a,e.name,g,f),g=null;return a},makeFilter:function(a,c,d,e){if(0===a.dict.get("Length")&&!d)return b('Empty "'+c+'" stream.'),new _c(a);try{e&&this.xref&&(e=this.xref.fetchIfRef(e));var f=this.xref.stats.streamTypes;if("FlateDecode"===c||"Fl"===c)return f[Y.FLATE]=!0,e?new Rc(new Qc(a,d),d,e):new Qc(a,d);if("LZWDecode"===c||"LZW"===c){f[Y.LZW]=!0;var g=1;return e?(e.has("EarlyChange")&&(g=e.get("EarlyChange")),new Rc(new $c(a,d,g),d,e)):new $c(a,d,g)}return"DCTDecode"===c||"DCT"===c?(f[Y.DCT]=!0,new Sc(a,d,a.dict,this.xref)):"JPXDecode"===c||"JPX"===c?(f[Y.JPX]=!0,new Tc(a,d,a.dict)):"ASCII85Decode"===c||"A85"===c?(f[Y.A85]=!0,new Wc(a,d)):"ASCIIHexDecode"===c||"AHx"===c?(f[Y.AHX]=!0,new Xc(a,d)):"CCITTFaxDecode"===c||"CCF"===c?(f[Y.CCF]=!0,new Zc(a,d,e)):"RunLengthDecode"===c||"RL"===c?(f[Y.RL]=!0,new Yc(a,d)):"JBIG2Decode"===c?(f[Y.JBIG]=!0,new Uc(a,d,a.dict)):(b('filter "'+c+'" not supported yet'),a)}catch(h){if(h instanceof ja)throw h;return b('Invalid stream: "'+h+'"'),new _c(a)}}},d}(),Gc=function(){function a(a,b){this.stream=a,this.nextChar(),this.strBuf=[],this.knownCommands=b}function d(a){return a>=48&&57>=a?15&a:a>=65&&70>=a||a>=97&&102>=a?(15&a)+9:-1}a.isSpace=function(a){return 32===a||9===a||13===a||10===a};var e=[1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];return a.prototype={nextChar:function(){return this.currentChar=this.stream.getByte()},peekChar:function(){return this.stream.peekByte()},getNumber:function(){var a=this.currentChar,d=!1,e=0,f=1;if(45===a?(f=-1,a=this.nextChar(),45===a&&(a=this.nextChar())):43===a&&(a=this.nextChar()),46===a&&(e=10,a=this.nextChar()),48>a||a>57)return c("Invalid number: "+String.fromCharCode(a)),0;for(var g=a-48,h=0,i=1;(a=this.nextChar())>=0;)if(a>=48&&57>=a){var j=a-48;d?h=10*h+j:(0!==e&&(e*=10),g=10*g+j)}else if(46===a){if(0!==e)break;e=1}else if(45===a)b("Badly formated number");else{if(69!==a&&101!==a)break;if(a=this.peekChar(),43===a||45===a)i=45===a?-1:1,this.nextChar();else if(48>a||a>57)break;d=!0}return 0!==e&&(g/=e),d&&(g*=Math.pow(10,i*h)),f*g},getString:function(){var a=1,c=!1,d=this.strBuf;d.length=0;for(var e=this.nextChar();;){var f=!1;switch(0|e){case-1:b("Unterminated string"),c=!0;break;case 40:++a,d.push("(");break;case 41:0===--a?(this.nextChar(),c=!0):d.push(")");break;case 92:switch(e=this.nextChar()){case-1:b("Unterminated string"),c=!0;break;case 110:d.push("\n");break;case 114:d.push("\r");break;case 116:d.push("      ");break;case 98:d.push("\b");break;case 102:d.push("\f");break;case 92:case 40:case 41:d.push(String.fromCharCode(e));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:var g=15&e;e=this.nextChar(),f=!0,e>=48&&55>=e&&(g=(g<<3)+(15&e),e=this.nextChar(),e>=48&&55>=e&&(f=!1,g=(g<<3)+(15&e))),d.push(String.fromCharCode(g));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:d.push(String.fromCharCode(e))}break;default:d.push(String.fromCharCode(e))}if(c)break;f||(e=this.nextChar())}return d.join("")},getName:function(){var a,f=this.strBuf;for(f.length=0;(a=this.nextChar())>=0&&!e[a];)if(35===a){a=this.nextChar();var g=d(a);if(-1!==g){var h=d(this.nextChar());-1===h&&c("Illegal digit in hex char in name: "+h),f.push(String.fromCharCode(g<<4|h))}else f.push("#",String.fromCharCode(a))}else f.push(String.fromCharCode(a));return f.length>127&&b("name token is longer than allowed by the spec: "+f.length),ya.get(f.join(""))},getHexString:function(){var a=this.strBuf;a.length=0;for(var c,f,g=this.currentChar,h=!0;;){if(0>g){b("Unterminated hex string");break}if(62===g){this.nextChar();break}if(1!==e[g]){if(h){if(c=d(g),-1===c){b('Ignoring invalid character "'+g+'" in hex string'),g=this.nextChar();continue}}else{if(f=d(g),-1===f){b('Ignoring invalid character "'+g+'" in hex string'),g=this.nextChar();continue}a.push(String.fromCharCode(c<<4|f))}h=!h,g=this.nextChar()}else g=this.nextChar()}return a.join("")},getObj:function(){for(var a=!1,b=this.currentChar;;){if(0>b)return Dc;if(a)10!==b&&13!==b||(a=!1);else if(37===b)a=!0;else if(1!==e[b])break;b=this.nextChar()}switch(0|b){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:return this.nextChar(),za.get("[");case 93:return this.nextChar(),za.get("]");case 60:return b=this.nextChar(),60===b?(this.nextChar(),za.get("<<")):this.getHexString();case 62:return b=this.nextChar(),62===b?(this.nextChar(),za.get(">>")):za.get(">");case 123:return this.nextChar(),za.get("{");case 125:return this.nextChar(),za.get("}");case 41:c("Illegal character: "+b)}for(var d=String.fromCharCode(b),f=this.knownCommands,g=f&&void 0!==f[d];(b=this.nextChar())>=0&&!e[b];){var h=d+String.fromCharCode(b);if(g&&void 0===f[h])break;128===d.length&&c("Command token too long: "+d.length),d=h,g=f&&void 0!==f[d]}return"true"===d?!0:"false"===d?!1:"null"===d?null:za.get(d)},skipToNextLine:function(){for(var a=this.currentChar;a>=0;){if(13===a){a=this.nextChar(),10===a&&this.nextChar();break}if(10===a){this.nextChar();break}a=this.nextChar()}}},a}(),Hc={create:function(a){function b(a,b){var c=j.get(a);if(w(c)&&(b?c>=0:c>0))return c;throw new Error('The "'+a+'" parameter in the linearization dictionary is invalid.')}function c(){var a,b,c=j.get("H");if(C(c)&&(2===(a=c.length)||4===a)){for(var d=0;a>d;d++)if(!(w(b=c[d])&&b>0))throw new Error("Hint ("+d+") in the linearization dictionary is invalid.");return c}throw new Error("Hint array in the linearization dictionary is invalid.")}var d,e,f=new Fc(new Gc(a),!1,null),g=f.getObj(),h=f.getObj(),i=f.getObj(),j=f.getObj();if(!(w(g)&&w(h)&&A(i,"obj")&&B(j)&&x(d=j.get("Linearized"))&&d>0))return null;if((e=b("L"))!==a.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:e,hints:c(),objectNumberFirst:b("O"),endFirst:b("E"),numPages:b("N"),mainXRefEntriesOffset:b("T"),pageFirst:j.has("P")?b("P",!0):0}}},Ic=function(){function a(a){this.lexer=a,this.operators=[],this.token=null,this.prev=null}return a.prototype={nextToken:function(){this.prev=this.token,this.token=this.lexer.getToken()},accept:function(a){return this.token.type===a?(this.nextToken(),!0):!1},expect:function(a){return this.accept(a)?!0:void c("Unexpected symbol: found "+this.token.type+" expected "+a+".")},parse:function(){return this.nextToken(),this.expect(Jc.LBRACE),this.parseBlock(),this.expect(Jc.RBRACE),this.operators},parseBlock:function(){for(;;)if(this.accept(Jc.NUMBER))this.operators.push(this.prev.value);else if(this.accept(Jc.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(Jc.LBRACE))return;this.parseCondition()}},parseCondition:function(){var a=this.operators.length;if(this.operators.push(null,null),this.parseBlock(),this.expect(Jc.RBRACE),this.accept(Jc.IF))this.operators[a]=this.operators.length,this.operators[a+1]="jz";else if(this.accept(Jc.LBRACE)){var b=this.operators.length;this.operators.push(null,null);var d=this.operators.length;
+this.parseBlock(),this.expect(Jc.RBRACE),this.expect(Jc.IFELSE),this.operators[b]=this.operators.length,this.operators[b+1]="j",this.operators[a]=d,this.operators[a+1]="jz"}else c("PS Function: error parsing conditional.")}},a}(),Jc={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5},Kc=function(){function a(a,b){this.type=a,this.value=b}var b={};return a.getOperator=function(c){var d=b[c];return d?d:b[c]=new a(Jc.OPERATOR,c)},a.LBRACE=new a(Jc.LBRACE,"{"),a.RBRACE=new a(Jc.RBRACE,"}"),a.IF=new a(Jc.IF,"IF"),a.IFELSE=new a(Jc.IFELSE,"IFELSE"),a}(),Lc=function(){function a(a){this.stream=a,this.nextChar(),this.strBuf=[]}return a.prototype={nextChar:function(){return this.currentChar=this.stream.getByte()},getToken:function(){for(var a=!1,b=this.currentChar;;){if(0>b)return Dc;if(a)10!==b&&13!==b||(a=!1);else if(37===b)a=!0;else if(!Gc.isSpace(b))break;b=this.nextChar()}switch(0|b){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new Kc(Jc.NUMBER,this.getNumber());case 123:return this.nextChar(),Kc.LBRACE;case 125:return this.nextChar(),Kc.RBRACE}var c=this.strBuf;for(c.length=0,c[0]=String.fromCharCode(b);(b=this.nextChar())>=0&&(b>=65&&90>=b||b>=97&&122>=b);)c.push(String.fromCharCode(b));var d=c.join("");switch(d.toLowerCase()){case"if":return Kc.IF;case"ifelse":return Kc.IFELSE;default:return Kc.getOperator(d)}},getNumber:function(){var a=this.currentChar,b=this.strBuf;for(b.length=0,b[0]=String.fromCharCode(a);(a=this.nextChar())>=0&&(a>=48&&57>=a||45===a||46===a);)b.push(String.fromCharCode(a));var d=parseFloat(b.join(""));return isNaN(d)&&c("Invalid floating point number: "+d),d}},a}(),Mc=function(){function a(a,b,c,d){this.bytes=a instanceof Uint8Array?a:new Uint8Array(a),this.start=b||0,this.pos=this.start,this.end=b+c||this.bytes.length,this.dict=d}return a.prototype={get length(){return this.end-this.start},get isEmpty(){return 0===this.length},getByte:function(){return this.pos>=this.end?-1:this.bytes[this.pos++]},getUint16:function(){var a=this.getByte(),b=this.getByte();return-1===a||-1===b?-1:(a<<8)+b},getInt32:function(){var a=this.getByte(),b=this.getByte(),c=this.getByte(),d=this.getByte();return(a<<24)+(b<<16)+(c<<8)+d},getBytes:function(a){var b=this.bytes,c=this.pos,d=this.end;if(!a)return b.subarray(c,d);var e=c+a;return e>d&&(e=d),this.pos=e,b.subarray(c,e)},peekByte:function(){var a=this.getByte();return this.pos--,a},peekBytes:function(a){var b=this.getBytes(a);return this.pos-=b.length,b},skip:function(a){a||(a=1),this.pos+=a},reset:function(){this.pos=this.start},moveStart:function(){this.start=this.pos},makeSubStream:function(b,c,d){return new a(this.bytes.buffer,b,c,d)},isStream:!0},a}(),Nc=function(){function a(a){for(var b=a.length,c=new Uint8Array(b),d=0;b>d;++d)c[d]=a.charCodeAt(d);Mc.call(this,c)}return a.prototype=Mc.prototype,a}(),Oc=function(){function a(a){if(this.pos=0,this.bufferLength=0,this.eof=!1,this.buffer=b,this.minBufferLength=512,a)for(;this.minBufferLength<a;)this.minBufferLength*=2}var b=new Uint8Array(0);return a.prototype={get isEmpty(){for(;!this.eof&&0===this.bufferLength;)this.readBlock();return 0===this.bufferLength},ensureBuffer:function(a){var b=this.buffer;if(a<=b.byteLength)return b;for(var c=this.minBufferLength;a>c;)c*=2;var d=new Uint8Array(c);return d.set(b),this.buffer=d},getByte:function(){for(var a=this.pos;this.bufferLength<=a;){if(this.eof)return-1;this.readBlock()}return this.buffer[this.pos++]},getUint16:function(){var a=this.getByte(),b=this.getByte();return-1===a||-1===b?-1:(a<<8)+b},getInt32:function(){var a=this.getByte(),b=this.getByte(),c=this.getByte(),d=this.getByte();return(a<<24)+(b<<16)+(c<<8)+d},getBytes:function(a){var b,c=this.pos;if(a){for(this.ensureBuffer(c+a),b=c+a;!this.eof&&this.bufferLength<b;)this.readBlock();var d=this.bufferLength;b>d&&(b=d)}else{for(;!this.eof;)this.readBlock();b=this.bufferLength}return this.pos=b,this.buffer.subarray(c,b)},peekByte:function(){var a=this.getByte();return this.pos--,a},peekBytes:function(a){var b=this.getBytes(a);return this.pos-=b.length,b},makeSubStream:function(a,b,c){for(var d=a+b;this.bufferLength<=d&&!this.eof;)this.readBlock();return new Mc(this.buffer,a,b,c)},skip:function(a){a||(a=1),this.pos+=a},reset:function(){this.pos=0},getBaseStreams:function(){return this.str&&this.str.getBaseStreams?this.str.getBaseStreams():[]}},a}(),Pc=function(){function a(a){this.streams=a,Oc.call(this,null)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){var a=this.streams;if(0===a.length)return void(this.eof=!0);var b=a.shift(),c=b.getBytes(),d=this.bufferLength,e=d+c.length,f=this.ensureBuffer(e);f.set(c,d),this.bufferLength=e},a.prototype.getBaseStreams=function(){for(var a=[],b=0,c=this.streams.length;c>b;b++){var d=this.streams[b];d.getBaseStreams&&na.appendToArray(a,d.getBaseStreams())}return a},a}(),Qc=function(){function a(a,b){this.str=a,this.dict=a.dict;var d=a.getByte(),e=a.getByte();-1!==d&&-1!==e||c("Invalid header in flate stream: "+d+", "+e),8!==(15&d)&&c("Unknown compression method in flate stream: "+d+", "+e),((d<<8)+e)%31!==0&&c("Bad FCHECK in flate stream: "+d+", "+e),32&e&&c("FDICT bit set in flate stream: "+d+", "+e),this.codeSize=0,this.codeBuf=0,Oc.call(this,b)}var b=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),e=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),f=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],g=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];return a.prototype=Object.create(Oc.prototype),a.prototype.getBits=function(a){for(var b,d=this.str,e=this.codeSize,f=this.codeBuf;a>e;)-1===(b=d.getByte())&&c("Bad encoding in flate stream"),f|=b<<e,e+=8;return b=f&(1<<a)-1,this.codeBuf=f>>a,this.codeSize=e-=a,b},a.prototype.getCode=function(a){for(var b,d=this.str,e=a[0],f=a[1],g=this.codeSize,h=this.codeBuf;f>g&&-1!==(b=d.getByte());)h|=b<<g,g+=8;var i=e[h&(1<<f)-1],j=i>>16,k=65535&i;return(1>j||j>g)&&c("Bad encoding in flate stream"),this.codeBuf=h>>j,this.codeSize=g-j,k},a.prototype.generateHuffmanTable=function(a){var b,c=a.length,d=0;for(b=0;c>b;++b)a[b]>d&&(d=a[b]);for(var e=1<<d,f=new Int32Array(e),g=1,h=0,i=2;d>=g;++g,h<<=1,i<<=1)for(var j=0;c>j;++j)if(a[j]===g){var k=0,l=h;for(b=0;g>b;++b)k=k<<1|1&l,l>>=1;for(b=k;e>b;b+=i)f[b]=g<<16|j;++h}return[f,d]},a.prototype.readBlock=function(){var a,h,i=this.str,j=this.getBits(3);if(1&j&&(this.eof=!0),j>>=1,0!==j){var k,l;if(1===j)k=f,l=g;else if(2===j){var m,n=this.getBits(5)+257,o=this.getBits(5)+1,p=this.getBits(4)+4,q=new Uint8Array(b.length);for(m=0;p>m;++m)q[b[m]]=this.getBits(3);var r=this.generateHuffmanTable(q);h=0,m=0;for(var s,t,u,v=n+o,w=new Uint8Array(v);v>m;){var x=this.getCode(r);if(16===x)s=2,t=3,u=h;else if(17===x)s=3,t=3,u=h=0;else{if(18!==x){w[m++]=h=x;continue}s=7,t=11,u=h=0}for(var y=this.getBits(s)+t;y-- >0;)w[m++]=u}k=this.generateHuffmanTable(w.subarray(0,n)),l=this.generateHuffmanTable(w.subarray(n,v))}else c("Unknown block type in flate stream");a=this.buffer;for(var z=a?a.length:0,A=this.bufferLength;;){var B=this.getCode(k);if(256>B)A+1>=z&&(a=this.ensureBuffer(A+1),z=a.length),a[A++]=B;else{if(256===B)return void(this.bufferLength=A);B-=257,B=d[B];var C=B>>16;C>0&&(C=this.getBits(C)),h=(65535&B)+C,B=this.getCode(l),B=e[B],C=B>>16,C>0&&(C=this.getBits(C));var D=(65535&B)+C;A+h>=z&&(a=this.ensureBuffer(A+h),z=a.length);for(var E=0;h>E;++E,++A)a[A]=a[A-D]}}}else{var F;-1===(F=i.getByte())&&c("Bad block header in flate stream");var G=F;-1===(F=i.getByte())&&c("Bad block header in flate stream"),G|=F<<8,-1===(F=i.getByte())&&c("Bad block header in flate stream");var H=F;-1===(F=i.getByte())&&c("Bad block header in flate stream"),H|=F<<8,H===(65535&~G)||0===G&&0===H||c("Bad uncompressed block length in flate stream"),this.codeBuf=0,this.codeSize=0;var I=this.bufferLength;a=this.ensureBuffer(I+G);var J=I+G;if(this.bufferLength=J,0===G)-1===i.peekByte()&&(this.eof=!0);else for(var K=I;J>K;++K){if(-1===(F=i.getByte())){this.eof=!0;break}a[K]=F}}},a}(),Rc=function(){function a(a,b,d){var e=this.predictor=d.get("Predictor")||1;if(1>=e)return a;2!==e&&(10>e||e>15)&&c("Unsupported predictor: "+e),2===e?this.readBlock=this.readBlockTiff:this.readBlock=this.readBlockPng,this.str=a,this.dict=a.dict;var f=this.colors=d.get("Colors")||1,g=this.bits=d.get("BitsPerComponent")||8,h=this.columns=d.get("Columns")||1;return this.pixBytes=f*g+7>>3,this.rowBytes=h*f*g+7>>3,Oc.call(this,b),this}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlockTiff=function(){var a=this.rowBytes,b=this.bufferLength,c=this.ensureBuffer(b+a),d=this.bits,e=this.colors,f=this.str.getBytes(a);if(this.eof=!f.length,!this.eof){var g,h=0,i=0,j=0,k=0,l=b;if(1===d)for(g=0;a>g;++g){var m=f[g];h=h<<8|m,c[l++]=255&(m^h>>e),h&=65535}else if(8===d){for(g=0;e>g;++g)c[l++]=f[g];for(;a>g;++g)c[l]=c[l-e]+f[g],l++}else{var n=new Uint8Array(e+1),o=(1<<d)-1,p=0,q=b,r=this.columns;for(g=0;r>g;++g)for(var s=0;e>s;++s)d>j&&(h=h<<8|255&f[p++],j+=8),n[s]=n[s]+(h>>j-d)&o,j-=d,i=i<<d|n[s],k+=d,k>=8&&(c[q++]=i>>k-8&255,k-=8);k>0&&(c[q++]=(i<<8-k)+(h&(1<<8-k)-1))}this.bufferLength+=a}},a.prototype.readBlockPng=function(){var a=this.rowBytes,b=this.pixBytes,d=this.str.getByte(),e=this.str.getBytes(a);if(this.eof=!e.length,!this.eof){var f=this.bufferLength,g=this.ensureBuffer(f+a),h=g.subarray(f-a,f);0===h.length&&(h=new Uint8Array(a));var i,j,k,l=f;switch(d){case 0:for(i=0;a>i;++i)g[l++]=e[i];break;case 1:for(i=0;b>i;++i)g[l++]=e[i];for(;a>i;++i)g[l]=g[l-b]+e[i]&255,l++;break;case 2:for(i=0;a>i;++i)g[l++]=h[i]+e[i]&255;break;case 3:for(i=0;b>i;++i)g[l++]=(h[i]>>1)+e[i];for(;a>i;++i)g[l]=(h[i]+g[l-b]>>1)+e[i]&255,l++;break;case 4:for(i=0;b>i;++i)j=h[i],k=e[i],g[l++]=j+k;for(;a>i;++i){j=h[i];var m=h[i-b],n=g[l-b],o=n+j-m,p=o-n;0>p&&(p=-p);var q=o-j;0>q&&(q=-q);var r=o-m;0>r&&(r=-r),k=e[i],q>=p&&r>=p?g[l++]=n+k:r>=q?g[l++]=j+k:g[l++]=m+k}break;default:c("Unsupported predictor: "+d)}this.bufferLength+=a}},a}(),Sc=function(){function a(a,b,c,d){for(var e;-1!==(e=a.getByte());)if(255===e){a.skip(-1);break}this.stream=a,this.maybeLength=b,this.dict=c,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),Object.defineProperty(a.prototype,"bytes",{get:function(){return g(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0}),a.prototype.ensureBuffer=function(a){if(!this.bufferLength)try{var b=new gd;if(this.forceRGB&&this.dict&&C(this.dict.get("Decode"))){for(var d=this.dict.get("Decode"),e=this.dict.get("BitsPerComponent")||8,f=d.length,g=new Int32Array(f),h=!1,i=(1<<e)-1,j=0;f>j;j+=2)g[j]=256*(d[j+1]-d[j])|0,g[j+1]=d[j]*i|0,256===g[j]&&0===g[j+1]||(h=!0);h&&(b.decodeTransform=g)}b.parse(this.bytes);var k=b.getData(this.drawWidth,this.drawHeight,this.forceRGB);this.buffer=k,this.bufferLength=k.length,this.eof=!0}catch(l){c("JPEG error: "+l)}},a.prototype.getBytes=function(a){return this.ensureBuffer(),this.buffer},a.prototype.getIR=function(){return PDFJS.createObjectURL(this.bytes,"image/jpeg")},a.prototype.isNativelySupported=function(a,b){var c=Xa.parse(this.dict.get("ColorSpace","CS"),a,b);return("DeviceGray"===c.name||"DeviceRGB"===c.name)&&c.isDefaultDecode(this.dict.get("Decode","D"))},a.prototype.isNativelyDecodable=function(a,b){var c=Xa.parse(this.dict.get("ColorSpace","CS"),a,b);return(1===c.numComps||3===c.numComps)&&c.isDefaultDecode(this.dict.get("Decode","D"))},a}(),Tc=function(){function a(a,b,c){this.stream=a,this.maybeLength=b,this.dict=c,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),Object.defineProperty(a.prototype,"bytes",{get:function(){return g(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0}),a.prototype.ensureBuffer=function(a){if(!this.bufferLength){var b=new hd;b.parse(this.bytes);var c=b.width,d=b.height,e=b.componentsCount,f=b.tiles.length;if(1===f)this.buffer=b.tiles[0].items;else{for(var g=new Uint8Array(c*d*e),h=0;f>h;h++)for(var i=b.tiles[h],j=i.width,k=i.height,l=i.left,m=i.top,n=i.items,o=0,p=(c*m+l)*e,q=c*e,r=j*e,s=0;k>s;s++){var t=n.subarray(o,o+r);g.set(t,p),o+=r,p+=q}this.buffer=g}this.bufferLength=this.buffer.length,this.eof=!0}},a}(),Uc=function(){function a(a,b,c){this.stream=a,this.maybeLength=b,this.dict=c,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),Object.defineProperty(a.prototype,"bytes",{get:function(){return g(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0}),a.prototype.ensureBuffer=function(a){if(!this.bufferLength){var c=new id,d=[],e=this.dict.xref,f=e.fetchIfRef(this.dict.get("DecodeParms"));if(C(f)&&(f.length>1&&b("JBIG2 - 'DecodeParms' array with multiple elements not supported."),f=e.fetchIfRef(f[0])),f&&f.has("JBIG2Globals")){var g=f.get("JBIG2Globals"),h=g.getBytes();d.push({data:h,start:0,end:h.length})}d.push({data:this.bytes,start:0,end:this.bytes.length});for(var i=c.parseChunks(d),j=i.length,k=0;j>k;k++)i[k]^=255;this.buffer=i,this.bufferLength=j,this.eof=!0}},a}(),Vc=function(){function a(a,b,c){this.str=a,this.dict=a.dict,this.decrypt=c,this.nextChunk=null,this.initialized=!1,Oc.call(this,b)}var b=512;return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){var a;if(this.initialized?a=this.nextChunk:(a=this.str.getBytes(b),this.initialized=!0),!a||0===a.length)return void(this.eof=!0);this.nextChunk=this.str.getBytes(b);var c=this.nextChunk&&this.nextChunk.length>0,d=this.decrypt;a=d(a,!c);var e,f=this.bufferLength,g=a.length,h=this.ensureBuffer(f+g);for(e=0;g>e;e++)h[f++]=a[e];this.bufferLength=f},a}(),Wc=function(){function a(a,b){this.str=a,this.dict=a.dict,this.input=new Uint8Array(5),b&&(b=.8*b),Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){for(var a=126,b=122,c=-1,d=this.str,e=d.getByte();Gc.isSpace(e);)e=d.getByte();if(e===c||e===a)return void(this.eof=!0);var f,g,h=this.bufferLength;if(e===b){for(f=this.ensureBuffer(h+4),g=0;4>g;++g)f[h+g]=0;this.bufferLength+=4}else{var i=this.input;for(i[0]=e,g=1;5>g;++g){for(e=d.getByte();Gc.isSpace(e);)e=d.getByte();if(i[g]=e,e===c||e===a)break}if(f=this.ensureBuffer(h+g-1),this.bufferLength+=g-1,5>g){for(;5>g;++g)i[g]=117;this.eof=!0}var j=0;for(g=0;5>g;++g)j=85*j+(i[g]-33);for(g=3;g>=0;--g)f[h+g]=255&j,j>>=8}},a}(),Xc=function(){function a(a,b){this.str=a,this.dict=a.dict,this.firstDigit=-1,b&&(b=.5*b),Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){var a=8e3,b=this.str.getBytes(a);if(!b.length)return void(this.eof=!0);for(var c=b.length+1>>1,d=this.ensureBuffer(this.bufferLength+c),e=this.bufferLength,f=this.firstDigit,g=0,h=b.length;h>g;g++){var i,j=b[g];if(j>=48&&57>=j)i=15&j;else{if(!(j>=65&&70>=j||j>=97&&102>=j)){if(62===j){this.eof=!0;break}continue}i=(15&j)+9}0>f?f=i:(d[e++]=f<<4|i,f=-1)}f>=0&&this.eof&&(d[e++]=f<<4,f=-1),this.firstDigit=f,this.bufferLength=e},a}(),Yc=function(){function a(a,b){this.str=a,this.dict=a.dict,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBlock=function(){var a=this.str.getBytes(2);if(!a||a.length<2||128===a[0])return void(this.eof=!0);var b,c=this.bufferLength,d=a[0];if(128>d){if(b=this.ensureBuffer(c+d+1),b[c++]=a[1],d>0){var e=this.str.getBytes(d);b.set(e,c),c+=d}}else{d=257-d;var f=a[1];b=this.ensureBuffer(c+d+1);for(var g=0;d>g;g++)b[c++]=f}this.bufferLength=c},a}(),Zc=function(){function b(a,b,c){this.str=a,this.dict=a.dict,c=c||Aa.empty,this.encoding=c.get("K")||0,this.eoline=c.get("EndOfLine")||!1,this.byteAlign=c.get("EncodedByteAlign")||!1,this.columns=c.get("Columns")||1728,this.rows=c.get("Rows")||0;var d=c.get("EndOfBlock");null!==d&&void 0!==d||(d=!0),this.eoblock=d,this.black=c.get("BlackIs1")||!1,this.codingLine=new Uint32Array(this.columns+1),this.refLine=new Uint32Array(this.columns+2),this.codingLine[0]=this.columns,this.codingPos=0,this.row=0,this.nextLine2D=this.encoding<0,this.inputBits=0,this.inputBuf=0,this.outputBits=0;for(var e;0===(e=this.lookBits(12));)this.eatBits(1);1===e&&this.eatBits(12),this.encoding>0&&(this.nextLine2D=!this.lookBits(1),this.eatBits(1)),Oc.call(this,b)}var c=-2,d=0,e=1,f=2,g=3,h=4,i=5,j=6,k=7,l=8,m=[[-1,-1],[-1,-1],[7,l],[7,k],[6,j],[6,j],[6,i],[6,i],[4,d],[4,d],[4,d],[4,d],[4,d],[4,d],[4,d],[4,d],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,e],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,h],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[3,g],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f],[1,f]],n=[[-1,-1],[12,c],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],o=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],p=[[-1,-1],[-1,-1],[12,c],[12,c],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],q=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],r=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];return b.prototype=Object.create(Oc.prototype),b.prototype.readBlock=function(){for(;!this.eof;){var a=this.lookChar();this.ensureBuffer(this.bufferLength+1),this.buffer[this.bufferLength++]=a}},b.prototype.addPixels=function(b,c){var d=this.codingLine,e=this.codingPos;b>d[e]&&(b>this.columns&&(a("row is wrong length"),this.err=!0,b=this.columns),1&e^c&&++e,d[e]=b),this.codingPos=e},b.prototype.addPixelsNeg=function(b,c){var d=this.codingLine,e=this.codingPos;if(b>d[e])b>this.columns&&(a("row is wrong length"),this.err=!0,b=this.columns),1&e^c&&++e,d[e]=b;else if(b<d[e]){for(0>b&&(a("invalid code"),this.err=!0,b=0);e>0&&b<d[e-1];)--e;d[e]=b}this.codingPos=e},b.prototype.lookChar=function(){var b,c,m,n,o=this.refLine,p=this.codingLine,q=this.columns;if(0===this.outputBits){if(this.eof)return null;this.err=!1;var r,s,t;if(this.nextLine2D){for(n=0;p[n]<q;++n)o[n]=p[n];for(o[n++]=q,o[n]=q,p[0]=0,this.codingPos=0,b=0,c=0;p[this.codingPos]<q;)switch(r=this.getTwoDimCode()){case d:this.addPixels(o[b+1],c),o[b+1]<q&&(b+=2);break;case e:if(r=s=0,c){do r+=t=this.getBlackCode();while(t>=64);do s+=t=this.getWhiteCode();while(t>=64)}else{do r+=t=this.getWhiteCode();while(t>=64);do s+=t=this.getBlackCode();while(t>=64)}for(this.addPixels(p[this.codingPos]+r,c),p[this.codingPos]<q&&this.addPixels(p[this.codingPos]+s,1^c);o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case k:if(this.addPixels(o[b]+3,c),c^=1,p[this.codingPos]<q)for(++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case i:if(this.addPixels(o[b]+2,c),c^=1,p[this.codingPos]<q)for(++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case g:if(this.addPixels(o[b]+1,c),c^=1,p[this.codingPos]<q)for(++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case f:if(this.addPixels(o[b],c),c^=1,p[this.codingPos]<q)for(++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case l:if(this.addPixelsNeg(o[b]-3,c),c^=1,p[this.codingPos]<q)for(b>0?--b:++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case j:if(this.addPixelsNeg(o[b]-2,c),c^=1,p[this.codingPos]<q)for(b>0?--b:++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case h:if(this.addPixelsNeg(o[b]-1,c),c^=1,p[this.codingPos]<q)for(b>0?--b:++b;o[b]<=p[this.codingPos]&&o[b]<q;)b+=2;break;case Dc:this.addPixels(q,0),this.eof=!0;break;default:a("bad 2d code"),this.addPixels(q,0),this.err=!0}}else for(p[0]=0,this.codingPos=0,c=0;p[this.codingPos]<q;){if(r=0,c){do r+=t=this.getBlackCode();while(t>=64)}else do r+=t=this.getWhiteCode();while(t>=64);this.addPixels(p[this.codingPos]+r,c),c^=1}var u=!1;if(this.byteAlign&&(this.inputBits&=-8),this.eoblock||this.row!==this.rows-1){if(r=this.lookBits(12),this.eoline)for(;r!==Dc&&1!==r;)this.eatBits(1),r=this.lookBits(12);else for(;0===r;)this.eatBits(1),r=this.lookBits(12);1===r?(this.eatBits(12),u=!0):r===Dc&&(this.eof=!0)}else this.eof=!0;if(!this.eof&&this.encoding>0&&(this.nextLine2D=!this.lookBits(1),this.eatBits(1)),this.eoblock&&u&&this.byteAlign){if(r=this.lookBits(12),1===r){if(this.eatBits(12),this.encoding>0&&(this.lookBits(1),this.eatBits(1)),this.encoding>=0)for(n=0;4>n;++n)r=this.lookBits(12),1!==r&&a("bad rtc code: "+r),this.eatBits(12),this.encoding>0&&(this.lookBits(1),this.eatBits(1));this.eof=!0}}else if(this.err&&this.eoline){for(;;){if(r=this.lookBits(13),r===Dc)return this.eof=!0,null;if(r>>1===1)break;this.eatBits(1)}this.eatBits(12),this.encoding>0&&(this.eatBits(1),this.nextLine2D=!(1&r))}p[0]>0?this.outputBits=p[this.codingPos=0]:this.outputBits=p[this.codingPos=1],this.row++}var v;if(this.outputBits>=8)v=1&this.codingPos?0:255,this.outputBits-=8,0===this.outputBits&&p[this.codingPos]<q&&(this.codingPos++,this.outputBits=p[this.codingPos]-p[this.codingPos-1]);else{m=8,v=0;do this.outputBits>m?(v<<=m,1&this.codingPos||(v|=255>>8-m),this.outputBits-=m,m=0):(v<<=this.outputBits,1&this.codingPos||(v|=255>>8-this.outputBits),m-=this.outputBits,this.outputBits=0,p[this.codingPos]<q?(this.codingPos++,this.outputBits=p[this.codingPos]-p[this.codingPos-1]):m>0&&(v<<=m,m=0));while(m)}return this.black&&(v^=255),v},b.prototype.findTableCode=function(a,b,c,d){for(var e=d||0,f=a;b>=f;++f){var g=this.lookBits(f);if(g===Dc)return[!0,1,!1];if(b>f&&(g<<=b-f),!e||g>=e){var h=c[g-e];if(h[0]===f)return this.eatBits(f),[!0,h[1],!0]}}return[!1,0,!1]},b.prototype.getTwoDimCode=function(){var b,c=0;if(this.eoblock){if(c=this.lookBits(7),b=m[c],b&&b[0]>0)return this.eatBits(b[0]),
+b[1]}else{var d=this.findTableCode(1,7,m);if(d[0]&&d[2])return d[1]}return a("Bad two dim code"),Dc},b.prototype.getWhiteCode=function(){var b,c=0;if(this.eoblock){if(c=this.lookBits(12),c===Dc)return 1;if(b=c>>5===0?n[c]:o[c>>3],b[0]>0)return this.eatBits(b[0]),b[1]}else{var d=this.findTableCode(1,9,o);if(d[0])return d[1];if(d=this.findTableCode(11,12,n),d[0])return d[1]}return a("bad white code"),this.eatBits(1),1},b.prototype.getBlackCode=function(){var b,c;if(this.eoblock){if(b=this.lookBits(13),b===Dc)return 1;if(c=b>>7===0?p[b]:b>>9===0&&b>>7!==0?q[(b>>1)-64]:r[b>>7],c[0]>0)return this.eatBits(c[0]),c[1]}else{var d=this.findTableCode(2,6,r);if(d[0])return d[1];if(d=this.findTableCode(7,12,q,64),d[0])return d[1];if(d=this.findTableCode(10,13,p),d[0])return d[1]}return a("bad black code"),this.eatBits(1),1},b.prototype.lookBits=function(a){for(var b;this.inputBits<a;){if(-1===(b=this.str.getByte()))return 0===this.inputBits?Dc:this.inputBuf<<a-this.inputBits&65535>>16-a;this.inputBuf=(this.inputBuf<<8)+b,this.inputBits+=8}return this.inputBuf>>this.inputBits-a&65535>>16-a},b.prototype.eatBits=function(a){(this.inputBits-=a)<0&&(this.inputBits=0)},b}(),$c=function(){function a(a,b,c){this.str=a,this.dict=a.dict,this.cachedData=0,this.bitsCached=0;for(var d=4096,e={earlyChange:c,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(d),dictionaryLengths:new Uint16Array(d),dictionaryPrevCodes:new Uint16Array(d),currentSequence:new Uint8Array(d),currentSequenceLength:0},f=0;256>f;++f)e.dictionaryValues[f]=f,e.dictionaryLengths[f]=1;this.lzwState=e,Oc.call(this,b)}return a.prototype=Object.create(Oc.prototype),a.prototype.readBits=function(a){for(var b=this.bitsCached,c=this.cachedData;a>b;){var d=this.str.getByte();if(-1===d)return this.eof=!0,null;c=c<<8|d,b+=8}return this.bitsCached=b-=a,this.cachedData=c,this.lastCode=null,c>>>b&(1<<a)-1},a.prototype.readBlock=function(){var a,b,c,d=512,e=2*d,f=d,g=this.lzwState;if(g){var h=g.earlyChange,i=g.nextCode,j=g.dictionaryValues,k=g.dictionaryLengths,l=g.dictionaryPrevCodes,m=g.codeLength,n=g.prevCode,o=g.currentSequence,p=g.currentSequenceLength,q=0,r=this.bufferLength,s=this.ensureBuffer(this.bufferLength+e);for(a=0;d>a;a++){var t=this.readBits(m),u=p>0;if(256>t)o[0]=t,p=1;else{if(!(t>=258)){if(256===t){m=9,i=258,p=0;continue}this.eof=!0,delete this.lzwState;break}if(i>t)for(p=k[t],b=p-1,c=t;b>=0;b--)o[b]=j[c],c=l[c];else o[p++]=o[0]}if(u&&(l[i]=n,k[i]=k[n]+1,j[i]=o[0],i++,m=i+h&i+h-1?m:0|Math.min(Math.log(i+h)/.6931471805599453+1,12)),n=t,q+=p,q>e){do e+=f;while(q>e);s=this.ensureBuffer(this.bufferLength+e)}for(b=0;p>b;b++)s[r++]=o[b]}g.nextCode=i,g.codeLength=m,g.prevCode=n,g.currentSequenceLength=p,this.bufferLength=r}},a}(),_c=function(){function a(){Mc.call(this,new Uint8Array(0))}return a.prototype=Mc.prototype,a}(),ad=function(){function a(a){this.name=a,this.terminated=!1,this._capability=G()}return a.prototype={get finished(){return this._capability.promise},finish:function(){this._capability.resolve()},terminate:function(){this.terminated=!0},ensureNotTerminated:function(){if(this.terminated)throw new Error("Worker task was terminated")}},a}(),bd=PDFJS.WorkerMessageHandler={setup:function(c){function d(){if(j)throw new Error("Worker was terminated")}function e(a){l.push(a)}function f(a){a.finish();var b=l.indexOf(a);l.splice(b,1)}function g(a){var b=G(),c=function(){var a=i.ensureDoc("numPages"),c=i.ensureDoc("fingerprint"),e=i.ensureXRef("encrypt");Promise.all([a,c,e]).then(function(a){var c={numPages:a[0],fingerprint:a[1],encrypted:!!a[2]};b.resolve(c)},d)},d=function(a){b.reject(a)};return i.ensureDoc("checkHeader",[]).then(function(){i.ensureDoc("parseStartXRef",[]).then(function(){i.ensureDoc("parse",[a]).then(c,d)},d)},d),b.promise}function h(a){var d,e=G(),f=a.source,g=a.disableRange;if(f.data){try{d=new ua(f.data,f.password),e.resolve(d)}catch(h){e.reject(h)}return e.promise}if(f.chunkedViewerLoading){try{d=new va(f,c),e.resolve(d)}catch(h){e.reject(h)}return e.promise}var i=new pa(f.url,{httpHeaders:f.httpHeaders,withCredentials:f.withCredentials}),j=[],l=i.requestFull({onHeadersReceived:function(){if(!g){var a=i.getRequestXhr(l);if("bytes"===a.getResponseHeader("Accept-Ranges")){var b=a.getResponseHeader("Content-Encoding")||"identity";if("identity"===b){var h=a.getResponseHeader("Content-Length");if(h=parseInt(h,10),w(h)&&(f.length=h,!(2*sa>=h))){i.isStreamingRequest(l)?f.disableAutoFetch=!0:i.abortRequest(l);try{d=new va(f,c),e.resolve(d)}catch(j){e.reject(j)}k=null}}}}},onProgressiveData:f.disableStream?null:function(a){return d?void d.sendProgressiveData(a):void j.push(a)},onDone:function(a){if(!d){var c;if(null===a){var g=0,h=0;j.forEach(function(a){g+=a.byteLength}),f.length&&g!==f.length&&b("reported HTTP length is different from actual");var i=new Uint8Array(g);j.forEach(function(a){i.set(new Uint8Array(a),h),h+=a.byteLength}),c=i.buffer}else c=a.chunk;try{d=new ua(c,f.password),e.resolve(d)}catch(l){e.reject(l)}k=null}},onError:function(a){var b;404===a?(b=new ga('Missing PDF "'+f.url+'".'),c.send("MissingPDF",b)):(b=new ha("Unexpected server response ("+a+') while retrieving PDF "'+f.url+'".',a),c.send("UnexpectedResponse",b)),k=null},onProgress:function(a){c.send("DocProgress",{loaded:a.loaded,total:a.lengthComputable?a.total:f.length})}});return k=function(){i.abortRequest(l)},e.promise}var i,j=!1,k=null,l=[];c.on("test",function(a){if(!(a instanceof Uint8Array))return void c.send("test",!1);var b=255===a[0];c.postMessageTransfers=b;var d=new XMLHttpRequest,e="response"in d;try{d.responseType}catch(f){e=!1}return e?void c.send("test",{supportTypedArray:!0,supportTransfers:b}):void c.send("test",!1)}),c.on("GetDocRequest",function(a){var b=function(a){d(),c.send("GetDoc",{pdfInfo:a})},e=function(a){a instanceof da?a.code===ca.NEED_PASSWORD?c.send("NeedPassword",a):a.code===ca.INCORRECT_PASSWORD&&c.send("IncorrectPassword",a):a instanceof fa?c.send("InvalidPDF",a):a instanceof ga?c.send("MissingPDF",a):a instanceof ha?c.send("UnexpectedResponse",a):c.send("UnknownError",new ea(a.message,a.toString()))};d(),PDFJS.maxImageSize=void 0===a.maxImageSize?-1:a.maxImageSize,PDFJS.disableFontFace=a.disableFontFace,PDFJS.disableCreateObjectURL=a.disableCreateObjectURL,PDFJS.verbosity=a.verbosity,PDFJS.cMapUrl=void 0===a.cMapUrl?null:a.cMapUrl,PDFJS.cMapPacked=a.cMapPacked===!0,h(a).then(function(a){if(j)throw a.terminate(),new Error("Worker was terminated");i=a,c.send("PDFManagerReady",null),i.onLoadedStream().then(function(a){c.send("DataLoaded",{length:a.bytes.byteLength})})}).then(function f(){d(),g(!1).then(b,function(a){return d(),a instanceof ka?(i.requestLoadedStream(),void i.onLoadedStream().then(function(){d(),g(!0).then(b,e)})):(a instanceof da&&i.passwordChanged().then(f),void e(a))},e)},e)}),c.on("GetPage",function(a){return i.getPage(a.pageIndex).then(function(a){var b=i.ensure(a,"rotate"),c=i.ensure(a,"ref"),d=i.ensure(a,"view");return Promise.all([b,c,d]).then(function(a){return{rotate:a[0],ref:a[1],view:a[2]}})})}),c.on("GetPageIndex",function(a){var b=new Ba(a.ref.num,a.ref.gen),c=i.pdfDocument.catalog;return c.getPageIndex(b)}),c.on("GetDestinations",function(a){return i.ensureCatalog("destinations")}),c.on("GetDestination",function(a){return i.ensureCatalog("getDestination",[a.id])}),c.on("GetAttachments",function(a){return i.ensureCatalog("attachments")}),c.on("GetJavaScript",function(a){return i.ensureCatalog("javaScript")}),c.on("GetOutline",function(a){return i.ensureCatalog("documentOutline")}),c.on("GetMetadata",function(a){return Promise.all([i.ensureDoc("documentInfo"),i.ensureCatalog("metadata")])}),c.on("GetData",function(a){return i.requestLoadedStream(),i.onLoadedStream().then(function(a){return a.bytes})}),c.on("GetStats",function(a){return i.pdfDocument.xref.stats}),c.on("UpdatePassword",function(a){i.updatePassword(a)}),c.on("GetAnnotations",function(a){return i.getPage(a.pageIndex).then(function(a){return i.ensure(a,"getAnnotationsData",[])})}),c.on("RenderPageRequest",function(b){var d=b.pageIndex;i.getPage(d).then(function(g){var h=new ad("RenderPageRequest: page "+d);e(h);var i=d+1,j=Date.now();g.getOperatorList(c,h,b.intent).then(function(b){f(h),a("page="+i+" - getOperatorList: time="+(Date.now()-j)+"ms, len="+b.fnArray.length)},function(a){if(f(h),!h.terminated){var d,e="worker.js: while trying to getPage() and getOperatorList()";d="string"==typeof a?{message:a,stack:e}:"object"==typeof a?{message:a.message||a.toString(),stack:a.stack||e}:{message:"Unknown exception type: "+typeof a,stack:e},c.send("PageError",{pageNum:i,error:d,intent:b.intent})}})})},this),c.on("GetTextContent",function(b){var c=b.pageIndex;return i.getPage(c).then(function(b){var d=new ad("GetTextContent: page "+c);e(d);var g=c+1,h=Date.now();return b.extractTextContent(d).then(function(b){return f(d),a("text indexing: page="+g+" - time="+(Date.now()-h)+"ms"),b},function(a){if(f(d),!d.terminated)throw a})})}),c.on("Cleanup",function(a){return i.cleanup()}),c.on("Terminate",function(a){j=!0,i&&(i.terminate(),i=null),k&&k();var b=[];return l.forEach(function(a){b.push(a.finished),a.terminate()}),Promise.all(b).then(function(){})})}},cd={},dd={log:function(){var a=Array.prototype.slice.call(arguments);S.postMessage({action:"console_log",data:a})},error:function(){var a=Array.prototype.slice.call(arguments);throw S.postMessage({action:"console_error",data:a}),"pdf.js execution error"},time:function(a){cd[a]=Date.now()},timeEnd:function(a){var b=cd[a];b||c("Unknown timer name "+a),this.log("Timer:",a,Date.now()-b)}};if("undefined"==typeof window){"console"in S||(S.console=dd),PDFJS.UnsupportedManager.listen(function(a){S.postMessage({action:"_unsupported_feature",data:a})});var ed=new H("worker_processor",this);bd.setup(ed)}var fd=function(){function a(a,b,c){this.data=a,this.bp=b,this.dataEnd=c,this.chigh=a[b],this.clow=0,this.byteIn(),this.chigh=this.chigh<<7&65535|this.clow>>9&127,this.clow=this.clow<<7&65535,this.ct-=7,this.a=32768}var b=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];return a.prototype={byteIn:function(){var a=this.data,b=this.bp;if(255===a[b]){var c=a[b+1];c>143?(this.clow+=65280,this.ct=8):(b++,this.clow+=a[b]<<9,this.ct=7,this.bp=b)}else b++,this.clow+=b<this.dataEnd?a[b]<<8:65280,this.ct=8,this.bp=b;this.clow>65535&&(this.chigh+=this.clow>>16,this.clow&=65535)},readBit:function(a,c){var d,e=a[c]>>1,f=1&a[c],g=b[e],h=g.qe,i=this.a-h;if(this.chigh<h)h>i?(i=h,d=f,e=g.nmps):(i=h,d=1^f,1===g.switchFlag&&(f=d),e=g.nlps);else{if(this.chigh-=h,0!==(32768&i))return this.a=i,f;h>i?(d=1^f,1===g.switchFlag&&(f=d),e=g.nlps):(d=f,e=g.nmps)}do 0===this.ct&&this.byteIn(),i<<=1,this.chigh=this.chigh<<1&65535|this.clow>>15&1,this.clow=this.clow<<1&65535,this.ct--;while(0===(32768&i));return this.a=i,a[c]=e<<1|f,d}},a}(),gd=function(){function a(){}function b(a,b){for(var c,d,e=0,f=[],g=16;g>0&&!a[g-1];)g--;f.push({children:[],index:0});var h,i=f[0];for(c=0;g>c;c++){for(d=0;d<a[c];d++){for(i=f.pop(),i.children[i.index]=b[e];i.index>0;)i=f.pop();for(i.index++,f.push(i);f.length<=c;)f.push(h={children:[],index:0}),i.children[i.index]=h.children,i=h;e++}g>c+1&&(f.push(h={children:[],index:0}),i.children[i.index]=h.children,i=h)}return f[0].children}function c(a,b,c){return 64*((a.blocksPerLine+1)*b+c)}function d(a,b,d,e,f,g,i,j,k){function l(){if(H>0)return H--,G>>H&1;if(G=a[b++],255===G){var c=a[b++];if(c)throw"unexpected marker: "+(G<<8|c).toString(16)}return H=7,G>>>7}function m(a){for(var b=a;;){if(b=b[l()],"number"==typeof b)return b;if("object"!=typeof b)throw"invalid huffman sequence"}}function n(a){for(var b=0;a>0;)b=b<<1|l(),a--;return b}function o(a){if(1===a)return 1===l()?1:-1;var b=n(a);return b>=1<<a-1?b:b+(-1<<a)+1}function p(a,b){var c=m(a.huffmanTableDC),d=0===c?0:o(c);a.blockData[b]=a.pred+=d;for(var e=1;64>e;){var f=m(a.huffmanTableAC),g=15&f,i=f>>4;if(0!==g){e+=i;var j=h[e];a.blockData[b+j]=o(g),e++}else{if(15>i)break;e+=16}}}function q(a,b){var c=m(a.huffmanTableDC),d=0===c?0:o(c)<<k;a.blockData[b]=a.pred+=d}function r(a,b){a.blockData[b]|=l()<<k}function s(a,b){if(I>0)return void I--;for(var c=g,d=i;d>=c;){var e=m(a.huffmanTableAC),f=15&e,j=e>>4;if(0!==f){c+=j;var l=h[c];a.blockData[b+l]=o(f)*(1<<k),c++}else{if(15>j){I=n(j)+(1<<j)-1;break}c+=16}}}function t(a,b){for(var c,d,e=g,f=i,j=0;f>=e;){var p=h[e];switch(J){case 0:if(d=m(a.huffmanTableAC),c=15&d,j=d>>4,0===c)15>j?(I=n(j)+(1<<j),J=4):(j=16,J=1);else{if(1!==c)throw"invalid ACn encoding";w=o(c),J=j?2:3}continue;case 1:case 2:a.blockData[b+p]?a.blockData[b+p]+=l()<<k:(j--,0===j&&(J=2===J?3:0));break;case 3:a.blockData[b+p]?a.blockData[b+p]+=l()<<k:(a.blockData[b+p]=w<<k,J=0);break;case 4:a.blockData[b+p]&&(a.blockData[b+p]+=l()<<k)}e++}4===J&&(I--,0===I&&(J=0))}function u(a,b,d,e,f){var g=d/D|0,h=d%D,i=g*a.v+e,j=h*a.h+f,k=c(a,i,j);b(a,k)}function v(a,b,d){var e=d/a.blocksPerLine|0,f=d%a.blocksPerLine,g=c(a,e,f);b(a,g)}var w,x,y,z,A,B,C,D=(d.precision,d.samplesPerLine,d.scanLines,d.mcusPerLine),E=d.progressive,F=(d.maxH,d.maxV,b),G=0,H=0,I=0,J=0,K=e.length;C=E?0===g?0===j?q:r:0===j?s:t:p;var L,M,N=0;M=1===K?e[0].blocksPerLine*e[0].blocksPerColumn:D*d.mcusPerColumn,f||(f=M);for(var O,P;M>N;){for(y=0;K>y;y++)e[y].pred=0;if(I=0,1===K)for(x=e[0],B=0;f>B;B++)v(x,C,N),N++;else for(B=0;f>B;B++){for(y=0;K>y;y++)for(x=e[y],O=x.h,P=x.v,z=0;P>z;z++)for(A=0;O>A;A++)u(x,C,N,z,A);N++}if(H=0,L=a[b]<<8|a[b+1],65280>=L)throw"marker was not found";if(!(L>=65488&&65495>=L))break;b+=2}return b-F}function e(a,b,c){for(var d,e,f,g,h,q,r,s,t,u,v,w,x,y,z,A,B,C=a.quantizationTable,D=a.blockData,E=0;64>E;E+=8)t=D[b+E],u=D[b+E+1],v=D[b+E+2],w=D[b+E+3],x=D[b+E+4],y=D[b+E+5],z=D[b+E+6],A=D[b+E+7],t*=C[E],0!==(u|v|w|x|y|z|A)?(u*=C[E+1],v*=C[E+2],w*=C[E+3],x*=C[E+4],y*=C[E+5],z*=C[E+6],A*=C[E+7],d=o*t+128>>8,e=o*x+128>>8,f=v,g=z,h=p*(u-A)+128>>8,s=p*(u+A)+128>>8,q=w<<4,r=y<<4,d=d+e+1>>1,e=d-e,B=f*n+g*m+128>>8,f=f*m-g*n+128>>8,g=B,h=h+r+1>>1,r=h-r,s=s+q+1>>1,q=s-q,d=d+g+1>>1,g=d-g,e=e+f+1>>1,f=e-f,B=h*l+s*k+2048>>12,h=h*k-s*l+2048>>12,s=B,B=q*j+r*i+2048>>12,q=q*i-r*j+2048>>12,r=B,c[E]=d+s,c[E+7]=d-s,c[E+1]=e+r,c[E+6]=e-r,c[E+2]=f+q,c[E+5]=f-q,c[E+3]=g+h,c[E+4]=g-h):(B=o*t+512>>10,c[E]=B,c[E+1]=B,c[E+2]=B,c[E+3]=B,c[E+4]=B,c[E+5]=B,c[E+6]=B,c[E+7]=B);for(var F=0;8>F;++F)t=c[F],u=c[F+8],v=c[F+16],w=c[F+24],x=c[F+32],y=c[F+40],z=c[F+48],A=c[F+56],0!==(u|v|w|x|y|z|A)?(d=o*t+2048>>12,e=o*x+2048>>12,f=v,g=z,h=p*(u-A)+2048>>12,s=p*(u+A)+2048>>12,q=w,r=y,d=(d+e+1>>1)+4112,e=d-e,B=f*n+g*m+2048>>12,f=f*m-g*n+2048>>12,g=B,h=h+r+1>>1,r=h-r,s=s+q+1>>1,q=s-q,d=d+g+1>>1,g=d-g,e=e+f+1>>1,f=e-f,B=h*l+s*k+2048>>12,h=h*k-s*l+2048>>12,s=B,B=q*j+r*i+2048>>12,q=q*i-r*j+2048>>12,r=B,t=d+s,A=d-s,u=e+r,z=e-r,v=f+q,y=f-q,w=g+h,x=g-h,t=16>t?0:t>=4080?255:t>>4,u=16>u?0:u>=4080?255:u>>4,v=16>v?0:v>=4080?255:v>>4,w=16>w?0:w>=4080?255:w>>4,x=16>x?0:x>=4080?255:x>>4,y=16>y?0:y>=4080?255:y>>4,z=16>z?0:z>=4080?255:z>>4,A=16>A?0:A>=4080?255:A>>4,D[b+F]=t,D[b+F+8]=u,D[b+F+16]=v,D[b+F+24]=w,D[b+F+32]=x,D[b+F+40]=y,D[b+F+48]=z,D[b+F+56]=A):(B=o*t+8192>>14,B=-2040>B?0:B>=2024?255:B+2056>>4,D[b+F]=B,D[b+F+8]=B,D[b+F+16]=B,D[b+F+24]=B,D[b+F+32]=B,D[b+F+40]=B,D[b+F+48]=B,D[b+F+56]=B)}function f(a,b){for(var d=b.blocksPerLine,f=b.blocksPerColumn,g=new Int16Array(64),h=0;f>h;h++)for(var i=0;d>i;i++){var j=c(b,h,i);e(b,j,g)}return b.blockData}function g(a){return 0>=a?0:a>=255?255:a}var h=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),i=4017,j=799,k=3406,l=2276,m=1567,n=3784,o=5793,p=2896;return a.prototype={parse:function(a){function c(){var b=a[k]<<8|a[k+1];return k+=2,b}function e(){var b=c(),d=a.subarray(k,k+b-2);return k+=d.length,d}function g(a){for(var b=Math.ceil(a.samplesPerLine/8/a.maxH),c=Math.ceil(a.scanLines/8/a.maxV),d=0;d<a.components.length;d++){M=a.components[d];var e=Math.ceil(Math.ceil(a.samplesPerLine/8)*M.h/a.maxH),f=Math.ceil(Math.ceil(a.scanLines/8)*M.v/a.maxV),g=b*M.h,h=c*M.v,i=64*h*(g+1);M.blockData=new Int16Array(i),M.blocksPerLine=e,M.blocksPerColumn=f}a.mcusPerLine=b,a.mcusPerColumn=c}var i,j,k=0,l=(a.length,null),m=null,n=[],o=[],p=[],q=c();if(65496!==q)throw"SOI not found";for(q=c();65497!==q;){var r,s,t;switch(q){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var u=e();65504===q&&74===u[0]&&70===u[1]&&73===u[2]&&70===u[3]&&0===u[4]&&(l={version:{major:u[5],minor:u[6]},densityUnits:u[7],xDensity:u[8]<<8|u[9],yDensity:u[10]<<8|u[11],thumbWidth:u[12],thumbHeight:u[13],thumbData:u.subarray(14,14+3*u[12]*u[13])}),65518===q&&65===u[0]&&100===u[1]&&111===u[2]&&98===u[3]&&101===u[4]&&(m={version:u[5]<<8|u[6],flags0:u[7]<<8|u[8],flags1:u[9]<<8|u[10],transformCode:u[11]});break;case 65499:for(var v,w=c(),x=w+k-2;x>k;){var y=a[k++],z=new Uint16Array(64);if(y>>4===0)for(s=0;64>s;s++)v=h[s],z[v]=a[k++];else{if(y>>4!==1)throw"DQT: invalid table spec";for(s=0;64>s;s++)v=h[s],z[v]=c()}n[15&y]=z}break;case 65472:case 65473:case 65474:if(i)throw"Only single frame JPEGs supported";c(),i={},i.extended=65473===q,i.progressive=65474===q,i.precision=a[k++],i.scanLines=c(),i.samplesPerLine=c(),i.components=[],i.componentIds={};var A,B=a[k++],C=0,D=0;for(r=0;B>r;r++){A=a[k];var E=a[k+1]>>4,F=15&a[k+1];E>C&&(C=E),F>D&&(D=F);var G=a[k+2];t=i.components.push({h:E,v:F,quantizationTable:n[G]}),i.componentIds[A]=t-1,k+=3}i.maxH=C,i.maxV=D,g(i);break;case 65476:var H=c();for(r=2;H>r;){var I=a[k++],J=new Uint8Array(16),K=0;for(s=0;16>s;s++,k++)K+=J[s]=a[k];var L=new Uint8Array(K);for(s=0;K>s;s++,k++)L[s]=a[k];r+=17+K,(I>>4===0?p:o)[15&I]=b(J,L)}break;case 65501:c(),j=c();break;case 65498:var M,N=(c(),a[k++]),O=[];for(r=0;N>r;r++){var P=i.componentIds[a[k++]];M=i.components[P];var Q=a[k++];M.huffmanTableDC=p[Q>>4],M.huffmanTableAC=o[15&Q],O.push(M)}var R=a[k++],S=a[k++],T=a[k++],U=d(a,k,i,O,j,R,S,T>>4,15&T);k+=U;break;case 65535:255!==a[k]&&k--;break;default:if(255===a[k-3]&&a[k-2]>=192&&a[k-2]<=254){k-=3;break}throw"unknown JPEG marker "+q.toString(16)}q=c()}for(this.width=i.samplesPerLine,this.height=i.scanLines,this.jfif=l,this.adobe=m,this.components=[],r=0;r<i.components.length;r++)M=i.components[r],this.components.push({output:f(i,M),scaleX:M.h/i.maxH,scaleY:M.v/i.maxV,blocksPerLine:M.blocksPerLine,blocksPerColumn:M.blocksPerColumn});this.numComponents=this.components.length},_getLinearizedBlockData:function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=this.width/a,o=this.height/b,p=0,q=this.components.length,r=a*b*q,s=new Uint8Array(r),t=new Uint32Array(a),u=4294967288;for(i=0;q>i;i++){for(c=this.components[i],d=c.scaleX*n,e=c.scaleY*o,p=i,m=c.output,f=c.blocksPerLine+1<<3,g=0;a>g;g++)j=0|g*d,t[g]=(j&u)<<3|7&j;for(h=0;b>h;h++)for(j=0|h*e,l=f*(j&u)|(7&j)<<3,g=0;a>g;g++)s[p]=m[l+t[g]],p+=q}var v=this.decodeTransform;if(v)for(i=0;r>i;)for(j=0,k=0;q>j;j++,i++,k+=2)s[i]=(s[i]*v[k]>>8)+v[k+1];return s},_isColorConversionNeeded:function(){return this.adobe&&this.adobe.transformCode?!0:3===this.numComponents},_convertYccToRgb:function(a){for(var b,c,d,e=0,f=a.length;f>e;e+=3)b=a[e],c=a[e+1],d=a[e+2],a[e]=g(b-179.456+1.402*d),a[e+1]=g(b+135.459-.344*c-.714*d),a[e+2]=g(b-226.816+1.772*c);return a},_convertYcckToRgb:function(a){for(var b,c,d,e,f=0,h=0,i=a.length;i>h;h+=4){b=a[h],c=a[h+1],d=a[h+2],e=a[h+3];var j=-122.67195406894+c*(-660635669420364e-19*c+.000437130475926232*d-54080610064599e-18*b+.00048449797120281*e-.154362151871126)+d*(-.000957964378445773*d+.000817076911346625*b-.00477271405408747*e+1.53380253221734)+b*(.000961250184130688*b-.00266257332283933*e+.48357088451265)+e*(-.000336197177618394*e+.484791561490776),k=107.268039397724+c*(219927104525741e-19*c-.000640992018297945*d+.000659397001245577*b+.000426105652938837*e-.176491792462875)+d*(-.000778269941513683*d+.00130872261408275*b+.000770482631801132*e-.151051492775562)+b*(.00126935368114843*b-.00265090189010898*e+.25802910206845)+e*(-.000318913117588328*e-.213742400323665),l=-20.810012546947+c*(-.000570115196973677*c-263409051004589e-19*d+.0020741088115012*b-.00288260236853442*e+.814272968359295)+d*(-153496057440975e-19*d-.000132689043961446*b+.000560833691242812*e-.195152027534049)+b*(.00174418132927582*b-.00255243321439347*e+.116935020465145)+e*(-.000343531996510555*e+.24165260232407);a[f++]=g(j),a[f++]=g(k),a[f++]=g(l)}return a},_convertYcckToCmyk:function(a){for(var b,c,d,e=0,f=a.length;f>e;e+=4)b=a[e],c=a[e+1],d=a[e+2],a[e]=g(434.456-b-1.402*d),a[e+1]=g(119.541-b+.344*c+.714*d),a[e+2]=g(481.816-b-1.772*c);return a},_convertCmykToRgb:function(a){for(var b,c,d,e,f=0,g=-16581375,h=1/255/255,i=0,j=a.length;j>i;i+=4){b=a[i],c=a[i+1],d=a[i+2],e=a[i+3];var k=b*(-4.387332384609988*b+54.48615194189176*c+18.82290502165302*d+212.25662451639585*e-72734.4411664936)+c*(1.7149763477362134*c-5.6096736904047315*d-17.873870861415444*e-1401.7366389350734)+d*(-2.5217340131683033*d-21.248923337353073*e+4465.541406466231)-e*(21.86122147463605*e+48317.86113160301),l=b*(8.841041422036149*b+60.118027045597366*c+6.871425592049007*d+31.159100130055922*e-20220.756542821975)+c*(-15.310361306967817*c+17.575251261109482*d+131.35250912493976*e-48691.05921601825)+d*(4.444339102852739*d+9.8632861493405*e-6341.191035517494)-e*(20.737325471181034*e+47890.15695978492),m=b*(.8842522430003296*b+8.078677503112928*c+30.89978309703729*d-.23883238689178934*e-3616.812083916688)+c*(10.49593273432072*c+63.02378494754052*d+50.606957656360734*e-28620.90484698408)+d*(.03296041114873217*d+115.60384449646641*e-49363.43385999684)-e*(22.33816807309886*e+45932.16563550634);a[f++]=k>=0?255:g>=k?0:255+k*h|0,a[f++]=l>=0?255:g>=l?0:255+l*h|0,a[f++]=m>=0?255:g>=m?0:255+m*h|0}return a},getData:function(a,b,c){if(this.numComponents>4)throw"Unsupported color mode";var d=this._getLinearizedBlockData(a,b);if(3===this.numComponents)return this._convertYccToRgb(d);if(4===this.numComponents){if(this._isColorConversionNeeded())return c?this._convertYcckToRgb(d):this._convertYcckToCmyk(d);if(c)return this._convertCmykToRgb(d)}return d}},a}(),hd=function(){function c(){this.failOnCorruptedImage=!1}function d(a,b){a.x0=Math.ceil(b.XOsiz/a.XRsiz),a.x1=Math.ceil(b.Xsiz/a.XRsiz),a.y0=Math.ceil(b.YOsiz/a.YRsiz),a.y1=Math.ceil(b.Ysiz/a.YRsiz),a.width=a.x1-a.x0,a.height=a.y1-a.y0}function e(a,b){for(var c,d=a.SIZ,e=[],f=Math.ceil((d.Xsiz-d.XTOsiz)/d.XTsiz),g=Math.ceil((d.Ysiz-d.YTOsiz)/d.YTsiz),h=0;g>h;h++)for(var i=0;f>i;i++)c={},c.tx0=Math.max(d.XTOsiz+i*d.XTsiz,d.XOsiz),c.ty0=Math.max(d.YTOsiz+h*d.YTsiz,d.YOsiz),c.tx1=Math.min(d.XTOsiz+(i+1)*d.XTsiz,d.Xsiz),c.ty1=Math.min(d.YTOsiz+(h+1)*d.YTsiz,d.Ysiz),c.width=c.tx1-c.tx0,c.height=c.ty1-c.ty0,c.components=[],e.push(c);a.tiles=e;for(var j=d.Csiz,k=0,l=j;l>k;k++)for(var m=b[k],n=0,o=e.length;o>n;n++){var p={};c=e[n],p.tcx0=Math.ceil(c.tx0/m.XRsiz),p.tcy0=Math.ceil(c.ty0/m.YRsiz),p.tcx1=Math.ceil(c.tx1/m.XRsiz),p.tcy1=Math.ceil(c.ty1/m.YRsiz),p.width=p.tcx1-p.tcx0,p.height=p.tcy1-p.tcy0,c.components[k]=p}}function f(a,b,c){var d=b.codingStyleParameters,e={};return d.entropyCoderWithCustomPrecincts?(e.PPx=d.precinctsSizes[c].PPx,e.PPy=d.precinctsSizes[c].PPy):(e.PPx=15,e.PPy=15),e.xcb_=c>0?Math.min(d.xcb,e.PPx-1):Math.min(d.xcb,e.PPx),e.ycb_=c>0?Math.min(d.ycb,e.PPy-1):Math.min(d.ycb,e.PPy),e}function g(a,b,c){var d=1<<c.PPx,e=1<<c.PPy,f=0===b.resLevel,g=1<<c.PPx+(f?0:-1),h=1<<c.PPy+(f?0:-1),i=b.trx1>b.trx0?Math.ceil(b.trx1/d)-Math.floor(b.trx0/d):0,j=b.try1>b.try0?Math.ceil(b.try1/e)-Math.floor(b.try0/e):0,k=i*j;b.precinctParameters={precinctWidth:d,precinctHeight:e,numprecinctswide:i,numprecinctshigh:j,numprecincts:k,precinctWidthInSubband:g,precinctHeightInSubband:h}}function h(a,b,c){var d,e,f,g,h=c.xcb_,i=c.ycb_,j=1<<h,k=1<<i,l=b.tbx0>>h,m=b.tby0>>i,n=b.tbx1+j-1>>h,o=b.tby1+k-1>>i,p=b.resolution.precinctParameters,q=[],r=[];for(e=m;o>e;e++)for(d=l;n>d;d++){f={cbx:d,cby:e,tbx0:j*d,tby0:k*e,tbx1:j*(d+1),tby1:k*(e+1)},f.tbx0_=Math.max(b.tbx0,f.tbx0),f.tby0_=Math.max(b.tby0,f.tby0),f.tbx1_=Math.min(b.tbx1,f.tbx1),f.tby1_=Math.min(b.tby1,f.tby1);var s=Math.floor((f.tbx0_-b.tbx0)/p.precinctWidthInSubband),t=Math.floor((f.tby0_-b.tby0)/p.precinctHeightInSubband);if(g=s+t*p.numprecinctswide,f.precinctNumber=g,f.subbandType=b.type,f.Lblock=3,!(f.tbx1_<=f.tbx0_||f.tby1_<=f.tby0_)){q.push(f);var u=r[g];void 0!==u?(d<u.cbxMin?u.cbxMin=d:d>u.cbxMax&&(u.cbxMax=d),e<u.cbyMin?u.cbxMin=e:e>u.cbyMax&&(u.cbyMax=e)):r[g]=u={cbxMin:d,cbyMin:e,cbxMax:d,cbyMax:e},f.precinct=u}}b.codeblockParameters={codeblockWidth:h,codeblockHeight:i,numcodeblockwide:n-l+1,numcodeblockhigh:o-m+1},b.codeblocks=q,b.precincts=r}function i(a,b,c){for(var d=[],e=a.subbands,f=0,g=e.length;g>f;f++)for(var h=e[f],i=h.codeblocks,j=0,k=i.length;k>j;j++){var l=i[j];l.precinctNumber===b&&d.push(l)}return{layerNumber:c,codeblocks:d}}function j(a){for(var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=d.codingStyleDefaultParameters.layersCount,f=b.Csiz,g=0,h=0;f>h;h++)g=Math.max(g,d.components[h].codingStyleParameters.decompositionLevelsCount);var j=0,k=0,l=0,m=0;this.nextPacket=function(){for(;e>j;j++){for(;g>=k;k++){for(;f>l;l++){var a=d.components[l];if(!(k>a.codingStyleParameters.decompositionLevelsCount)){for(var b=a.resolutions[k],c=b.precinctParameters.numprecincts;c>m;){var h=i(b,m,j);return m++,h}m=0}}l=0}k=0}throw new Error("JPX Error: Out of packets")}}function k(a){for(var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=d.codingStyleDefaultParameters.layersCount,f=b.Csiz,g=0,h=0;f>h;h++)g=Math.max(g,d.components[h].codingStyleParameters.decompositionLevelsCount);var j=0,k=0,l=0,m=0;this.nextPacket=function(){for(;g>=j;j++){for(;e>k;k++){for(;f>l;l++){var a=d.components[l];if(!(j>a.codingStyleParameters.decompositionLevelsCount)){for(var b=a.resolutions[j],c=b.precinctParameters.numprecincts;c>m;){var h=i(b,m,k);return m++,h}m=0}}l=0}k=0}throw new Error("JPX Error: Out of packets")}}function m(a){var b,c,d,e,f=a.SIZ,g=a.currentTile.index,h=a.tiles[g],j=h.codingStyleDefaultParameters.layersCount,k=f.Csiz,l=0;for(d=0;k>d;d++){var m=h.components[d];l=Math.max(l,m.codingStyleParameters.decompositionLevelsCount)}var n=new Int32Array(l+1);for(c=0;l>=c;++c){var o=0;for(d=0;k>d;++d){var p=h.components[d].resolutions;c<p.length&&(o=Math.max(o,p[c].precinctParameters.numprecincts))}n[c]=o}b=0,c=0,d=0,e=0,this.nextPacket=function(){for(;l>=c;c++){for(;e<n[c];e++){for(;k>d;d++){var a=h.components[d];if(!(c>a.codingStyleParameters.decompositionLevelsCount)){var f=a.resolutions[c],g=f.precinctParameters.numprecincts;if(!(e>=g)){for(;j>b;){var m=i(f,e,b);return b++,m}b=0}}}d=0}e=0}throw new Error("JPX Error: Out of packets")}}function p(a){var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=d.codingStyleDefaultParameters.layersCount,f=b.Csiz,g=s(d),h=g,j=0,k=0,l=0,m=0,n=0;this.nextPacket=function(){for(;n<h.maxNumHigh;n++){for(;m<h.maxNumWide;m++){for(;f>l;l++){for(var a=d.components[l],b=a.codingStyleParameters.decompositionLevelsCount;b>=k;k++){var c=a.resolutions[k],o=g.components[l].resolutions[k],p=r(m,n,o,h,c);if(null!==p){for(;e>j;){var q=i(c,p,j);return j++,q}j=0}}k=0}l=0}m=0}throw new Error("JPX Error: Out of packets")}}function q(a){var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=d.codingStyleDefaultParameters.layersCount,f=b.Csiz,g=s(d),h=0,j=0,k=0,l=0,m=0;this.nextPacket=function(){for(;f>k;++k){for(var a=d.components[k],b=g.components[k],c=a.codingStyleParameters.decompositionLevelsCount;m<b.maxNumHigh;m++){for(;l<b.maxNumWide;l++){for(;c>=j;j++){var n=a.resolutions[j],o=b.resolutions[j],p=r(l,m,o,b,n);if(null!==p){for(;e>h;){var q=i(n,p,h);return h++,q}h=0}}j=0}l=0}m=0}throw new Error("JPX Error: Out of packets")}}function r(a,b,c,d,e){var f=a*d.minWidth,g=b*d.minHeight;if(f%c.width!==0||g%c.height!==0)return null;var h=g/c.width*e.precinctParameters.numprecinctswide;return f/c.height+h}function s(a){for(var b=a.components.length,c=Number.MAX_VALUE,d=Number.MAX_VALUE,e=0,f=0,g=new Array(b),h=0;b>h;h++){for(var i=a.components[h],j=i.codingStyleParameters.decompositionLevelsCount,k=new Array(j+1),l=Number.MAX_VALUE,m=Number.MAX_VALUE,n=0,o=0,p=1,q=j;q>=0;--q){var r=i.resolutions[q],s=p*r.precinctParameters.precinctWidth,t=p*r.precinctParameters.precinctHeight;l=Math.min(l,s),m=Math.min(m,t),n=Math.max(n,r.precinctParameters.numprecinctswide),o=Math.max(o,r.precinctParameters.numprecinctshigh),k[q]={width:s,height:t},p<<=1}c=Math.min(c,l),d=Math.min(d,m),e=Math.max(e,n),f=Math.max(f,o),g[h]={resolutions:k,minWidth:l,minHeight:m,maxNumWide:n,maxNumHigh:o}}return{components:g,minWidth:c,minHeight:d,maxNumWide:e,maxNumHigh:f}}function t(a){for(var b=a.SIZ,c=a.currentTile.index,d=a.tiles[c],e=b.Csiz,i=0;e>i;i++){for(var l=d.components[i],n=l.codingStyleParameters.decompositionLevelsCount,o=[],r=[],s=0;n>=s;s++){var t=f(a,l,s),u={},v=1<<n-s;u.trx0=Math.ceil(l.tcx0/v),u.try0=Math.ceil(l.tcy0/v),u.trx1=Math.ceil(l.tcx1/v),u.try1=Math.ceil(l.tcy1/v),u.resLevel=s,g(a,u,t),o.push(u);var w;if(0===s)w={},w.type="LL",w.tbx0=Math.ceil(l.tcx0/v),w.tby0=Math.ceil(l.tcy0/v),w.tbx1=Math.ceil(l.tcx1/v),w.tby1=Math.ceil(l.tcy1/v),w.resolution=u,h(a,w,t),r.push(w),u.subbands=[w];else{var x=1<<n-s+1,y=[];w={},w.type="HL",w.tbx0=Math.ceil(l.tcx0/x-.5),w.tby0=Math.ceil(l.tcy0/x),w.tbx1=Math.ceil(l.tcx1/x-.5),w.tby1=Math.ceil(l.tcy1/x),w.resolution=u,h(a,w,t),r.push(w),y.push(w),w={},w.type="LH",w.tbx0=Math.ceil(l.tcx0/x),w.tby0=Math.ceil(l.tcy0/x-.5),w.tbx1=Math.ceil(l.tcx1/x),w.tby1=Math.ceil(l.tcy1/x-.5),w.resolution=u,h(a,w,t),r.push(w),y.push(w),w={},w.type="HH",w.tbx0=Math.ceil(l.tcx0/x-.5),w.tby0=Math.ceil(l.tcy0/x-.5),w.tbx1=Math.ceil(l.tcx1/x-.5),w.tby1=Math.ceil(l.tcy1/x-.5),w.resolution=u,h(a,w,t),r.push(w),y.push(w),u.subbands=y}}l.resolutions=o,l.subbands=r}var z=d.codingStyleDefaultParameters.progressionOrder;switch(z){case 0:d.packetsIterator=new j(a);break;case 1:d.packetsIterator=new k(a);break;case 2:d.packetsIterator=new m(a);break;case 3:d.packetsIterator=new p(a);break;case 4:d.packetsIterator=new q(a);break;default:throw new Error("JPX Error: Unsupported progression order "+z)}}function u(a,b,c,d){function e(a){for(;a>m;){var d=b[c+k];k++,n?(j=j<<7|d,m+=7,n=!1):(j=j<<8|d,m+=8),255===d&&(n=!0)}return m-=a,j>>>m&(1<<a)-1;
+}function f(a){return 255===b[c+k-1]&&b[c+k]===a?(g(1),!0):255===b[c+k]&&b[c+k+1]===a?(g(2),!0):!1}function g(a){k+=a}function h(){m=0,n&&(k++,n=!1)}function i(){if(0===e(1))return 1;if(0===e(1))return 2;var a=e(2);return 3>a?a+3:(a=e(5),31>a?a+6:(a=e(7),a+37))}for(var j,k=0,m=0,n=!1,o=a.currentTile.index,p=a.tiles[o],q=a.COD.sopMarkerUsed,r=a.COD.ephMarkerUsed,s=p.packetsIterator;d>k;){h(),q&&f(145)&&g(4);var t=s.nextPacket();if(e(1)){for(var u,v=t.layerNumber,w=[],x=0,y=t.codeblocks.length;y>x;x++){u=t.codeblocks[x];var z,C=u.precinct,D=u.cbx-C.cbxMin,E=u.cby-C.cbyMin,F=!1,G=!1;if(void 0!==u.included)F=!!e(1);else{C=u.precinct;var H,I;if(void 0!==C.inclusionTree)H=C.inclusionTree;else{var J=C.cbxMax-C.cbxMin+1,K=C.cbyMax-C.cbyMin+1;H=new B(J,K,v),I=new A(J,K),C.inclusionTree=H,C.zeroBitPlanesTree=I}if(H.reset(D,E,v))for(;;){if(!e(1)){H.incrementValue(v);break}if(z=!H.nextLevel()){u.included=!0,F=G=!0;break}}}if(F){if(G){for(I=C.zeroBitPlanesTree,I.reset(D,E);;)if(e(1)){if(z=!I.nextLevel())break}else I.incrementValue();u.zeroBitPlanes=I.value}for(var L=i();e(1);)u.Lblock++;var M=l(L),N=(1<<M>L?M-1:M)+u.Lblock,O=e(N);w.push({codeblock:u,codingpasses:L,dataLength:O})}}for(h(),r&&f(146);w.length>0;){var P=w.shift();u=P.codeblock,void 0===u.data&&(u.data=[]),u.data.push({data:b,start:c+k,end:c+k+P.dataLength,codingpasses:P.codingpasses}),k+=P.dataLength}}}return k}function v(a,b,c,d,e,f,g,h){for(var i=d.tbx0,j=d.tby0,k=d.tbx1-d.tbx0,l=d.codeblocks,m="H"===d.type.charAt(0)?1:0,n="H"===d.type.charAt(1)?b:0,o=0,p=l.length;p>o;++o){var q=l[o],r=q.tbx1_-q.tbx0_,s=q.tby1_-q.tby0_;if(0!==r&&0!==s&&void 0!==q.data){var t,u;t=new C(r,s,q.subbandType,q.zeroBitPlanes,f),u=2;var v,w,x,y=q.data,z=0,A=0;for(v=0,w=y.length;w>v;v++)x=y[v],z+=x.end-x.start,A+=x.codingpasses;var B=new Uint8Array(z),D=0;for(v=0,w=y.length;w>v;v++){x=y[v];var E=x.data.subarray(x.start,x.end);B.set(E,D),D+=E.length}var F=new fd(B,0,z);for(t.setDecoder(F),v=0;A>v;v++){switch(u){case 0:t.runSignificancePropogationPass();break;case 1:t.runMagnitudeRefinementPass();break;case 2:t.runCleanupPass(),h&&t.checkSegmentationSymbol()}u=(u+1)%3}var G,H,I,J=q.tbx0_-i+(q.tby0_-j)*k,K=t.coefficentsSign,L=t.coefficentsMagnitude,M=t.bitsDecoded,N=g?0:.5;D=0;var O="LL"!==d.type;for(v=0;s>v;v++){var P=J/k|0,Q=2*P*(b-k)+m+n;for(G=0;r>G;G++){if(H=L[D],0!==H){H=(H+N)*e,0!==K[D]&&(H=-H),I=M[D];var R=O?Q+(J<<1):J;g&&I>=f?a[R]=H:a[R]=H*(1<<f-I)}J++,D++}J+=k-r}}}}function w(a,b,c){for(var d=b.components[c],e=d.codingStyleParameters,f=d.quantizationParameters,g=e.decompositionLevelsCount,h=f.SPqcds,i=f.scalarExpounded,j=f.guardBits,k=e.segmentationSymbolUsed,l=a.components[c].precision,m=e.reversibleTransformation,n=m?new F:new E,o=[],p=0,q=0;g>=q;q++){for(var r=d.resolutions[q],s=r.trx1-r.trx0,t=r.try1-r.try0,u=new Float32Array(s*t),w=0,x=r.subbands.length;x>w;w++){var y,A;i?(y=h[p].mu,A=h[p].epsilon,p++):(y=h[0].mu,A=h[0].epsilon+(q>0?1-q:0));var B=r.subbands[w],C=z[B.type],D=m?1:Math.pow(2,l+C-A)*(1+y/2048),G=j+A-1;v(u,s,t,B,D,G,m,k)}o.push({width:s,height:t,items:u})}var H=n.calculate(o,d.tcx0,d.tcy0);return{left:d.tcx0,top:d.tcy0,width:H.width,height:H.height,items:H.items}}function x(a){for(var b=a.SIZ,c=a.components,d=b.Csiz,e=[],f=0,g=a.tiles.length;g>f;f++){var h,i=a.tiles[f],j=[];for(h=0;d>h;h++)j[h]=w(a,i,h);var k,l,m,n,o,p,q,r,s,t,u,v,x,y,z,A=j[0],B=new Uint8Array(A.items.length*d),C={left:A.left,top:A.top,width:A.width,height:A.height,items:B},D=0;if(i.codingStyleDefaultParameters.multipleComponentTransform){var E=4===d,F=j[0].items,G=j[1].items,H=j[2].items,I=E?j[3].items:null;k=c[0].precision-8,l=(128<<k)+.5,m=255*(1<<k),o=.5*m,n=-o;var J=i.components[0],K=d-3;if(q=F.length,J.codingStyleParameters.reversibleTransformation)for(p=0;q>p;p++,D+=K)r=F[p]+l,s=G[p],t=H[p],v=r-(t+s>>2),u=v+t,x=v+s,B[D++]=0>=u?0:u>=m?255:u>>k,B[D++]=0>=v?0:v>=m?255:v>>k,B[D++]=0>=x?0:x>=m?255:x>>k;else for(p=0;q>p;p++,D+=K)r=F[p]+l,s=G[p],t=H[p],u=r+1.402*t,v=r-.34413*s-.71414*t,x=r+1.772*s,B[D++]=0>=u?0:u>=m?255:u>>k,B[D++]=0>=v?0:v>=m?255:v>>k,B[D++]=0>=x?0:x>=m?255:x>>k;if(E)for(p=0,D=3;q>p;p++,D+=4)y=I[p],B[D]=n>=y?0:y>=o?255:y+l>>k}else for(h=0;d>h;h++){var L=j[h].items;for(k=c[h].precision-8,l=(128<<k)+.5,m=127.5*(1<<k),n=-m,D=h,p=0,q=L.length;q>p;p++)z=L[p],B[D]=n>=z?0:z>=m?255:z+l>>k,D+=d}e.push(C)}return e}function y(a,b){for(var c=a.SIZ,d=c.Csiz,e=a.tiles[b],f=0;d>f;f++){var g=e.components[f],h=void 0!==a.currentTile.QCC[f]?a.currentTile.QCC[f]:a.currentTile.QCD;g.quantizationParameters=h;var i=void 0!==a.currentTile.COC[f]?a.currentTile.COC[f]:a.currentTile.COD;g.codingStyleParameters=i}e.codingStyleDefaultParameters=a.currentTile.COD}var z={LL:0,LH:1,HL:1,HH:2};c.prototype={parse:function(c){var d=n(c,0);if(65359===d)return void this.parseCodestream(c,0,c.length);for(var e=0,f=c.length;f>e;){var g=8,h=o(c,e),i=o(c,e+4);if(e+=g,1===h&&(h=4294967296*o(c,e)+o(c,e+4),e+=8,g+=8),0===h&&(h=f-e+g),g>h)throw new Error("JPX Error: Invalid box field size");var j=h-g,k=!0;switch(i){case 1785737832:k=!1;break;case 1668246642:var l=c[e];c[e+1],c[e+2];if(1===l){var m=o(c,e+3);switch(m){case 16:case 17:case 18:break;default:b("Unknown colorspace "+m)}}else 2===l&&a("ICC profile not supported");break;case 1785737827:this.parseCodestream(c,e,e+j);break;case 1783636e3:218793738!==o(c,e)&&b("Invalid JP2 signature");break;case 1783634458:case 1718909296:case 1920099697:case 1919251232:case 1768449138:break;default:var p=String.fromCharCode(i>>24&255,i>>16&255,i>>8&255,255&i);b("Unsupported header type "+i+" ("+p+")")}k&&(e+=j)}},parseImageProperties:function(a){for(var b=a.getByte();b>=0;){var c=b;b=a.getByte();var d=c<<8|b;if(65361===d){a.skip(4);var e=a.getInt32()>>>0,f=a.getInt32()>>>0,g=a.getInt32()>>>0,h=a.getInt32()>>>0;a.skip(16);var i=a.getUint16();return this.width=e-g,this.height=f-h,this.componentsCount=i,void(this.bitsPerComponent=8)}}throw new Error("JPX Error: No size marker found in JPX stream")},parseCodestream:function(a,c,f){var g={};try{for(var h=!1,i=c;f>i+1;){var j=n(a,i);i+=2;var k,l,m,p,q,r,s=0;switch(j){case 65359:g.mainHeader=!0;break;case 65497:break;case 65361:s=n(a,i);var v={};v.Xsiz=o(a,i+4),v.Ysiz=o(a,i+8),v.XOsiz=o(a,i+12),v.YOsiz=o(a,i+16),v.XTsiz=o(a,i+20),v.YTsiz=o(a,i+24),v.XTOsiz=o(a,i+28),v.YTOsiz=o(a,i+32);var w=n(a,i+36);v.Csiz=w;var z=[];k=i+38;for(var A=0;w>A;A++){var B={precision:(127&a[k])+1,isSigned:!!(128&a[k]),XRsiz:a[k+1],YRsiz:a[k+1]};d(B,v),z.push(B)}g.SIZ=v,g.components=z,e(g,z),g.QCC=[],g.COC=[];break;case 65372:s=n(a,i);var C={};switch(k=i+2,l=a[k++],31&l){case 0:p=8,q=!0;break;case 1:p=16,q=!1;break;case 2:p=16,q=!0;break;default:throw new Error("JPX Error: Invalid SQcd value "+l)}for(C.noQuantization=8===p,C.scalarExpounded=q,C.guardBits=l>>5,m=[];s+i>k;){var D={};8===p?(D.epsilon=a[k++]>>3,D.mu=0):(D.epsilon=a[k]>>3,D.mu=(7&a[k])<<8|a[k+1],k+=2),m.push(D)}C.SPqcds=m,g.mainHeader?g.QCD=C:(g.currentTile.QCD=C,g.currentTile.QCC=[]);break;case 65373:s=n(a,i);var E={};k=i+2;var F;switch(g.SIZ.Csiz<257?F=a[k++]:(F=n(a,k),k+=2),l=a[k++],31&l){case 0:p=8,q=!0;break;case 1:p=16,q=!1;break;case 2:p=16,q=!0;break;default:throw new Error("JPX Error: Invalid SQcd value "+l)}for(E.noQuantization=8===p,E.scalarExpounded=q,E.guardBits=l>>5,m=[];s+i>k;)D={},8===p?(D.epsilon=a[k++]>>3,D.mu=0):(D.epsilon=a[k]>>3,D.mu=(7&a[k])<<8|a[k+1],k+=2),m.push(D);E.SPqcds=m,g.mainHeader?g.QCC[F]=E:g.currentTile.QCC[F]=E;break;case 65362:s=n(a,i);var G={};k=i+2;var H=a[k++];G.entropyCoderWithCustomPrecincts=!!(1&H),G.sopMarkerUsed=!!(2&H),G.ephMarkerUsed=!!(4&H),G.progressionOrder=a[k++],G.layersCount=n(a,k),k+=2,G.multipleComponentTransform=a[k++],G.decompositionLevelsCount=a[k++],G.xcb=(15&a[k++])+2,G.ycb=(15&a[k++])+2;var I=a[k++];if(G.selectiveArithmeticCodingBypass=!!(1&I),G.resetContextProbabilities=!!(2&I),G.terminationOnEachCodingPass=!!(4&I),G.verticalyStripe=!!(8&I),G.predictableTermination=!!(16&I),G.segmentationSymbolUsed=!!(32&I),G.reversibleTransformation=a[k++],G.entropyCoderWithCustomPrecincts){for(var J=[];s+i>k;){var K=a[k++];J.push({PPx:15&K,PPy:K>>4})}G.precinctsSizes=J}var L=[];if(G.selectiveArithmeticCodingBypass&&L.push("selectiveArithmeticCodingBypass"),G.resetContextProbabilities&&L.push("resetContextProbabilities"),G.terminationOnEachCodingPass&&L.push("terminationOnEachCodingPass"),G.verticalyStripe&&L.push("verticalyStripe"),G.predictableTermination&&L.push("predictableTermination"),L.length>0)throw h=!0,new Error("JPX Error: Unsupported COD options ("+L.join(", ")+")");g.mainHeader?g.COD=G:(g.currentTile.COD=G,g.currentTile.COC=[]);break;case 65424:s=n(a,i),r={},r.index=n(a,i+2),r.length=o(a,i+4),r.dataEnd=r.length+i-2,r.partIndex=a[i+8],r.partsCount=a[i+9],g.mainHeader=!1,0===r.partIndex&&(r.COD=g.COD,r.COC=g.COC.slice(0),r.QCD=g.QCD,r.QCC=g.QCC.slice(0)),g.currentTile=r;break;case 65427:r=g.currentTile,0===r.partIndex&&(y(g,r.index),t(g)),s=r.dataEnd-i,u(g,a,i,s);break;case 65365:case 65367:case 65368:case 65380:s=n(a,i);break;case 65363:throw new Error("JPX Error: Codestream code 0xFF53 (COC) is not implemented");default:throw new Error("JPX Error: Unknown codestream code: "+j.toString(16))}i+=s}}catch(M){if(h||this.failOnCorruptedImage)throw M;b("Trying to recover from "+M.message)}this.tiles=x(g),this.width=g.SIZ.Xsiz-g.SIZ.XOsiz,this.height=g.SIZ.Ysiz-g.SIZ.YOsiz,this.componentsCount=g.SIZ.Csiz}};var A=function(){function a(a,b){var c=l(Math.max(a,b))+1;this.levels=[];for(var d=0;c>d;d++){var e={width:a,height:b,items:[]};this.levels.push(e),a=Math.ceil(a/2),b=Math.ceil(b/2)}}return a.prototype={reset:function(a,b){for(var c,d=0,e=0;d<this.levels.length;){c=this.levels[d];var f=a+b*c.width;if(void 0!==c.items[f]){e=c.items[f];break}c.index=f,a>>=1,b>>=1,d++}d--,c=this.levels[d],c.items[c.index]=e,this.currentLevel=d,delete this.value},incrementValue:function(){var a=this.levels[this.currentLevel];a.items[a.index]++},nextLevel:function(){var a=this.currentLevel,b=this.levels[a],c=b.items[b.index];return a--,0>a?(this.value=c,!1):(this.currentLevel=a,b=this.levels[a],b.items[b.index]=c,!0)}},a}(),B=function(){function a(a,b,c){var d=l(Math.max(a,b))+1;this.levels=[];for(var e=0;d>e;e++){for(var f=new Uint8Array(a*b),g=0,h=f.length;h>g;g++)f[g]=c;var i={width:a,height:b,items:f};this.levels.push(i),a=Math.ceil(a/2),b=Math.ceil(b/2)}}return a.prototype={reset:function(a,b,c){for(var d=0;d<this.levels.length;){var e=this.levels[d],f=a+b*e.width;e.index=f;var g=e.items[f];if(255===g)break;if(g>c)return this.currentLevel=d,this.propagateValues(),!1;a>>=1,b>>=1,d++}return this.currentLevel=d-1,!0},incrementValue:function(a){var b=this.levels[this.currentLevel];b.items[b.index]=a+1,this.propagateValues()},propagateValues:function(){for(var a=this.currentLevel,b=this.levels[a],c=b.items[b.index];--a>=0;)b=this.levels[a],b.items[b.index]=c},nextLevel:function(){var a=this.currentLevel,b=this.levels[a],c=b.items[b.index];return b.items[b.index]=255,a--,0>a?!1:(this.currentLevel=a,b=this.levels[a],b.items[b.index]=c,!0)}},a}(),C=function(){function a(a,b,c,g,h){this.width=a,this.height=b,this.contextLabelTable="HH"===c?f:"HL"===c?e:d;var i=a*b;this.neighborsSignificance=new Uint8Array(i),this.coefficentsSign=new Uint8Array(i),this.coefficentsMagnitude=h>14?new Uint32Array(i):h>6?new Uint16Array(i):new Uint8Array(i),this.processingFlags=new Uint8Array(i);var j=new Uint8Array(i);if(0!==g)for(var k=0;i>k;k++)j[k]=g;this.bitsDecoded=j,this.reset()}var b=17,c=18,d=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),e=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),f=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);return a.prototype={setDecoder:function(a){this.decoder=a},reset:function(){this.contexts=new Int8Array(19),this.contexts[0]=8,this.contexts[b]=92,this.contexts[c]=6},setNeighborsSignificance:function(a,b,c){var d,e=this.neighborsSignificance,f=this.width,g=this.height,h=b>0,i=f>b+1;a>0&&(d=c-f,h&&(e[d-1]+=16),i&&(e[d+1]+=16),e[d]+=4),g>a+1&&(d=c+f,h&&(e[d-1]+=16),i&&(e[d+1]+=16),e[d]+=4),h&&(e[c-1]+=1),i&&(e[c+1]+=1),e[c]|=128},runSignificancePropogationPass:function(){for(var a=this.decoder,b=this.width,c=this.height,d=this.coefficentsMagnitude,e=this.coefficentsSign,f=this.neighborsSignificance,g=this.processingFlags,h=this.contexts,i=this.contextLabelTable,j=this.bitsDecoded,k=-2,l=1,m=2,n=0;c>n;n+=4)for(var o=0;b>o;o++)for(var p=n*b+o,q=0;4>q;q++,p+=b){var r=n+q;if(r>=c)break;if(g[p]&=k,!d[p]&&f[p]){var s=i[f[p]],t=a.readBit(h,s);if(t){var u=this.decodeSignBit(r,o,p);e[p]=u,d[p]=1,this.setNeighborsSignificance(r,o,p),g[p]|=m}j[p]++,g[p]|=l}}},decodeSignBit:function(a,b,c){var d,e,f,g,h,i,j=this.width,k=this.height,l=this.coefficentsMagnitude,m=this.coefficentsSign;g=b>0&&0!==l[c-1],j>b+1&&0!==l[c+1]?(f=m[c+1],g?(e=m[c-1],d=1-f-e):d=1-f-f):g?(e=m[c-1],d=1-e-e):d=0;var n=3*d;return g=a>0&&0!==l[c-j],k>a+1&&0!==l[c+j]?(f=m[c+j],g?(e=m[c-j],d=1-f-e+n):d=1-f-f+n):g?(e=m[c-j],d=1-e-e+n):d=n,d>=0?(h=9+d,i=this.decoder.readBit(this.contexts,h)):(h=9-d,i=1^this.decoder.readBit(this.contexts,h)),i},runMagnitudeRefinementPass:function(){for(var a,b=this.decoder,c=this.width,d=this.height,e=this.coefficentsMagnitude,f=this.neighborsSignificance,g=this.contexts,h=this.bitsDecoded,i=this.processingFlags,j=1,k=2,l=c*d,m=4*c,n=0;l>n;n=a){a=Math.min(l,n+m);for(var o=0;c>o;o++)for(var p=n+o;a>p;p+=c)if(e[p]&&0===(i[p]&j)){var q=16;if(0!==(i[p]&k)){i[p]^=k;var r=127&f[p];q=0===r?15:14}var s=b.readBit(g,q);e[p]=e[p]<<1|s,h[p]++,i[p]|=j}}},runCleanupPass:function(){for(var a,d=this.decoder,e=this.width,f=this.height,g=this.neighborsSignificance,h=this.coefficentsMagnitude,i=this.coefficentsSign,j=this.contexts,k=this.contextLabelTable,l=this.bitsDecoded,m=this.processingFlags,n=1,o=2,p=e,q=2*e,r=3*e,s=0;f>s;s=a){a=Math.min(s+4,f);for(var t=s*e,u=f>s+3,v=0;e>v;v++){var w,x=t+v,y=u&&0===m[x]&&0===m[x+p]&&0===m[x+q]&&0===m[x+r]&&0===g[x]&&0===g[x+p]&&0===g[x+q]&&0===g[x+r],z=0,A=x,B=s;if(y){var C=d.readBit(j,c);if(!C){l[x]++,l[x+p]++,l[x+q]++,l[x+r]++;continue}z=d.readBit(j,b)<<1|d.readBit(j,b),0!==z&&(B=s+z,A+=z*e),w=this.decodeSignBit(B,v,A),i[A]=w,h[A]=1,this.setNeighborsSignificance(B,v,A),m[A]|=o,A=x;for(var D=s;B>=D;D++,A+=e)l[A]++;z++}for(B=s+z;a>B;B++,A+=e)if(!h[A]&&0===(m[A]&n)){var E=k[g[A]],F=d.readBit(j,E);1===F&&(w=this.decodeSignBit(B,v,A),i[A]=w,h[A]=1,this.setNeighborsSignificance(B,v,A),m[A]|=o),l[A]++}}}},checkSegmentationSymbol:function(){var a=this.decoder,c=this.contexts,d=a.readBit(c,b)<<3|a.readBit(c,b)<<2|a.readBit(c,b)<<1|a.readBit(c,b);if(10!==d)throw new Error("JPX Error: Invalid segmentation symbol")}},a}(),D=function(){function a(){}return a.prototype.calculate=function(a,b,c){for(var d=a[0],e=1,f=a.length;f>e;e++)d=this.iterate(d,a[e],b,c);return d},a.prototype.extend=function(a,b,c){var d=b-1,e=b+1,f=b+c-2,g=b+c;a[d--]=a[e++],a[g++]=a[f--],a[d--]=a[e++],a[g++]=a[f--],a[d--]=a[e++],a[g++]=a[f--],a[d]=a[e],a[g]=a[f]},a.prototype.iterate=function(a,b,c,d){var e,f,g,h,i,j,k=a.width,l=a.height,m=a.items,n=b.width,o=b.height,p=b.items;for(g=0,e=0;l>e;e++)for(h=2*e*n,f=0;k>f;f++,g++,h+=2)p[h]=m[g];m=a.items=null;var q=4,r=new Float32Array(n+2*q);if(1===n){if(0!==(1&c))for(j=0,g=0;o>j;j++,g+=n)p[g]*=.5}else for(j=0,g=0;o>j;j++,g+=n)r.set(p.subarray(g,g+n),q),this.extend(r,q,n),this.filter(r,q,n),p.set(r.subarray(q,q+n),g);var s=16,t=[];for(e=0;s>e;e++)t.push(new Float32Array(o+2*q));var u,v=0;if(a=q+o,1===o){if(0!==(1&d))for(i=0;n>i;i++)p[i]*=.5}else for(i=0;n>i;i++){if(0===v){for(s=Math.min(n-i,s),g=i,h=q;a>h;g+=n,h++)for(u=0;s>u;u++)t[u][h]=p[g+u];v=s}v--;var w=t[v];if(this.extend(w,q,o),this.filter(w,q,o),0===v)for(g=i-s+1,h=q;a>h;g+=n,h++)for(u=0;s>u;u++)p[g+u]=t[u][h]}return{width:n,height:o,items:p}},a}(),E=function(){function a(){D.call(this)}return a.prototype=Object.create(D.prototype),a.prototype.filter=function(a,b,c){var d=c>>1;b=0|b;var e,f,g,h,i=-1.586134342059924,j=-.052980118572961,k=.882911075530934,l=.443506852043971,m=1.230174104914001,n=1/m;for(e=b-3,f=d+4;f--;e+=2)a[e]*=n;for(e=b-2,g=l*a[e-1],f=d+3;f--&&(h=l*a[e+1],a[e]=m*a[e]-g-h,f--);e+=2)e+=2,g=l*a[e+1],a[e]=m*a[e]-g-h;for(e=b-1,g=k*a[e-1],f=d+2;f--&&(h=k*a[e+1],a[e]-=g+h,f--);e+=2)e+=2,g=k*a[e+1],a[e]-=g+h;for(e=b,g=j*a[e-1],f=d+1;f--&&(h=j*a[e+1],a[e]-=g+h,f--);e+=2)e+=2,g=j*a[e+1],a[e]-=g+h;if(0!==d)for(e=b+1,g=i*a[e-1],f=d;f--&&(h=i*a[e+1],a[e]-=g+h,f--);e+=2)e+=2,g=i*a[e+1],a[e]-=g+h},a}(),F=function(){function a(){D.call(this)}return a.prototype=Object.create(D.prototype),a.prototype.filter=function(a,b,c){var d=c>>1;b=0|b;var e,f;for(e=b,f=d+1;f--;e+=2)a[e]-=a[e-1]+a[e+1]+2>>2;for(e=b+1,f=d;f--;e+=2)a[e]+=a[e-1]+a[e+1]>>1},a}();return c}(),id=function(){function a(){}function b(a,b,c){this.data=a,this.start=b,this.end=c}function d(a,b,c){function d(a){for(var b=0,d=0;a>d;d++){var g=c.readBit(e,f);f=256>f?f<<1|g:511&(f<<1|g)|256,b=b<<1|g}return b>>>0}var e=a.getContexts(b),f=1,g=d(1),h=d(1)?d(1)?d(1)?d(1)?d(1)?d(32)+4436:d(12)+340:d(8)+84:d(6)+20:d(4)+4:d(2);return 0===g?h:h>0?-h:null}function e(a,b,c){for(var d=a.getContexts("IAID"),e=1,f=0;c>f;f++){var g=b.readBit(d,e);e=e<<1|g}return 31>c?e&(1<<c)-1:2147483647&e}function f(a,b,c){var d,e,f,g,h,i,j,k=c.decoder,l=c.contextCache.getContexts("GB"),m=[],n=31735;for(e=0;b>e;e++)for(h=m[e]=new Uint8Array(a),i=1>e?h:m[e-1],j=2>e?h:m[e-2],d=j[0]<<13|j[1]<<12|j[2]<<11|i[0]<<7|i[1]<<6|i[2]<<5|i[3]<<4,f=0;a>f;f++)h[f]=g=k.readBit(l,d),d=(d&n)<<1|(a>f+3?j[f+3]<<11:0)|(a>f+4?i[f+4]<<4:0)|g;return m}function h(a,b,d,e,g,h,i,j){if(a&&c("JBIG2 error: MMR encoding is not supported"),0===e&&!h&&!g&&4===i.length&&3===i[0].x&&-1===i[0].y&&-3===i[1].x&&-1===i[1].y&&2===i[2].x&&-2===i[2].y&&-2===i[3].x&&-2===i[3].y)return f(b,d,j);var k=!!h,l=y[e].concat(i);l.sort(function(a,b){return a.y-b.y||a.x-b.x});var m,n,o=l.length,p=new Int8Array(o),q=new Int8Array(o),r=[],s=0,t=0,u=0,v=0;for(n=0;o>n;n++)p[n]=l[n].x,q[n]=l[n].y,t=Math.min(t,l[n].x),u=Math.max(u,l[n].x),v=Math.min(v,l[n].y),o-1>n&&l[n].y===l[n+1].y&&l[n].x===l[n+1].x-1?s|=1<<o-1-n:r.push(n);var w=r.length,x=new Int8Array(w),z=new Int8Array(w),B=new Uint16Array(w);for(m=0;w>m;m++)n=r[m],x[m]=l[n].x,z[m]=l[n].y,B[m]=1<<o-1-n;for(var C,D,E,F,G,H=-t,I=-v,J=b-u,K=A[e],L=new Uint8Array(b),M=[],N=j.decoder,O=j.contextCache.getContexts("GB"),P=0,Q=0,R=0;d>R;R++){if(g){var S=N.readBit(O,K);if(P^=S){M.push(L);continue}}for(L=new Uint8Array(L),M.push(L),C=0;b>C;C++)if(k&&h[R][C])L[C]=0;else{if(C>=H&&J>C&&R>=I)for(Q=Q<<1&s,n=0;w>n;n++)D=R+z[n],E=C+x[n],F=M[D][E],F&&(F=B[n],Q|=F);else for(Q=0,G=o-1,n=0;o>n;n++,G--)E=C+p[n],E>=0&&b>E&&(D=R+q[n],D>=0&&(F=M[D][E],F&&(Q|=F<<G)));var T=N.readBit(O,Q);L[C]=T}}return M}function i(a,b,d,e,f,g,h,i,j){var k=z[d].coding;0===d&&(k=k.concat([i[0]]));var l,m=k.length,n=new Int32Array(m),o=new Int32Array(m);for(l=0;m>l;l++)n[l]=k[l].x,o[l]=k[l].y;var p=z[d].reference;0===d&&(p=p.concat([i[1]]));var q=p.length,r=new Int32Array(q),s=new Int32Array(q);for(l=0;q>l;l++)r[l]=p[l].x,s[l]=p[l].y;for(var t=e[0].length,u=e.length,v=B[d],w=[],x=j.decoder,y=j.contextCache.getContexts("GR"),A=0,C=0;b>C;C++){if(h){var D=x.readBit(y,v);A^=D,A&&c("JBIG2 error: prediction is not supported")}var E=new Uint8Array(a);w.push(E);for(var F=0;a>F;F++){var G,H,I=0;for(l=0;m>l;l++)G=C+o[l],H=F+n[l],0>G||0>H||H>=a?I<<=1:I=I<<1|w[G][H];for(l=0;q>l;l++)G=C+s[l]+g,H=F+r[l]+f,0>G||G>=u||0>H||H>=t?I<<=1:I=I<<1|e[G][H];var J=x.readBit(y,I);E[F]=J}}return w}function j(a,b,f,g,j,m,n,o,p,q,r){a&&c("JBIG2 error: huffman is not supported");for(var s=[],t=0,u=l(f.length+g),v=r.decoder,w=r.contextCache;s.length<g;){var x=d(w,"IADH",v);t+=x;for(var y=0,z=0;;){var A=d(w,"IADW",v);if(null===A)break;y+=A,z+=y;var B;if(b){var C=d(w,"IAAI",v);if(C>1)B=k(a,b,y,t,0,C,1,f.concat(s),u,0,0,1,0,m,p,q,r);else{var D=e(w,v,u),E=d(w,"IARDX",v),F=d(w,"IARDY",v),G=D<f.length?f[D]:s[D-f.length];B=i(y,t,p,G,E,F,!1,q,r)}}else B=h(!1,y,t,n,!1,null,o,r);s.push(B)}}for(var H=[],I=[],J=!1,K=f.length+g;I.length<K;){for(var L=d(w,"IAEX",v);L--;)I.push(J);J=!J}for(var M=0,N=f.length;N>M;M++)I[M]&&H.push(f[M]);for(var O=0;g>O;M++,O++)I[M]&&H.push(s[O]);return H}function k(a,b,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u){a&&c("JBIG2 error: huffman is not supported");var v,w,x=[];for(v=0;g>v;v++){if(w=new Uint8Array(f),h)for(var y=0;f>y;y++)w[y]=h;x.push(w)}var z=u.decoder,A=u.contextCache,B=-d(A,"IADT",z),C=0;for(v=0;j>v;){var D=d(A,"IADT",z);B+=D;var E=d(A,"IAFS",z);C+=E;for(var F=C;;){var G=1===k?0:d(A,"IAIT",z),H=k*B+G,I=e(A,z,m),J=b&&d(A,"IARI",z),K=l[I],L=K[0].length,M=K.length;if(J){var N=d(A,"IARDW",z),O=d(A,"IARDH",z),P=d(A,"IARDX",z),Q=d(A,"IARDY",z);L+=N,M+=O,K=i(L,M,s,K,(N>>1)+P,(O>>1)+Q,!1,t,u)}var R,S,T,U=H-(1&p?0:M),V=F-(2&p?L:0);if(n){for(R=0;M>R;R++)if(w=x[V+R]){T=K[R];var W=Math.min(f-U,L);switch(q){case 0:for(S=0;W>S;S++)w[U+S]|=T[S];break;case 2:for(S=0;W>S;S++)w[U+S]^=T[S];break;default:c("JBIG2 error: operator "+q+" is not supported")}}F+=M-1}else{for(S=0;M>S;S++)if(w=x[U+S])switch(T=K[S],q){case 0:for(R=0;L>R;R++)w[V+R]|=T[R];break;case 2:for(R=0;L>R;R++)w[V+R]^=T[R];break;default:c("JBIG2 error: operator "+q+" is not supported")}F+=L-1}v++;var X=d(A,"IADS",z);if(null===X)break;F+=X+o}}return x}function p(a,b){var d={};d.number=o(a,b);var e=a[b+4],f=63&e;x[f]||c("JBIG2 error: invalid segment type: "+f),d.type=f,d.typeName=x[f],d.deferredNonRetain=!!(128&e);var g=!!(64&e),h=a[b+5],i=h>>5&7,j=[31&h],k=b+6;if(7===h){i=536870911&o(a,k-1),k+=3;var l=i+7>>3;for(j[0]=a[k++];--l>0;)j.push(a[k++])}else 5!==h&&6!==h||c("JBIG2 error: invalid referred-to flags");d.retainBits=j;var m,p,q=d.number<=256?1:d.number<=65536?2:4,s=[];for(m=0;i>m;m++){var t=1===q?a[k]:2===q?n(a,k):o(a,k);s.push(t),k+=q}if(d.referredTo=s,g?(d.pageAssociation=o(a,k),k+=4):d.pageAssociation=a[k++],d.length=o(a,k),k+=4,4294967295===d.length)if(38===f){var u=r(a,k),v=a[k+C],w=!!(1&v),y=6,z=new Uint8Array(y);for(w||(z[0]=255,z[1]=172),z[2]=u.height>>>24&255,z[3]=u.height>>16&255,z[4]=u.height>>8&255,z[5]=255&u.height,m=k,p=a.length;p>m;m++){for(var A=0;y>A&&z[A]===a[m+A];)A++;if(A===y){d.length=m+y;break}}4294967295===d.length&&c("JBIG2 error: segment end was not found")}else c("JBIG2 error: invalid unknown segment length");return d.headerEnd=k,d}function q(a,b,c,d){for(var e=[],f=c;d>f;){var g=p(b,f);f=g.headerEnd;var h={header:g,data:b};if(a.randomAccess||(h.start=f,f+=g.length,h.end=f),e.push(h),51===g.type)break}if(a.randomAccess)for(var i=0,j=e.length;j>i;i++)e[i].start=f,f+=e[i].header.length,e[i].end=f;return e}function r(a,b){return{width:o(a,b),height:o(a,b+4),x:o(a,b+8),y:o(a,b+12),combinationOperator:7&a[b+16]}}function s(a,b){var d,e,f,g,h=a.header,i=a.data,j=a.start,k=a.end;switch(h.type){case 0:var l={},p=n(i,j);if(l.huffman=!!(1&p),l.refinement=!!(2&p),l.huffmanDHSelector=p>>2&3,l.huffmanDWSelector=p>>4&3,l.bitmapSizeSelector=p>>6&1,l.aggregationInstancesSelector=p>>7&1,l.bitmapCodingContextUsed=!!(256&p),l.bitmapCodingContextRetained=!!(512&p),l.template=p>>10&3,l.refinementTemplate=p>>12&1,j+=2,!l.huffman){for(g=0===l.template?4:1,e=[],f=0;g>f;f++)e.push({x:m(i,j),y:m(i,j+1)}),j+=2;l.at=e}if(l.refinement&&!l.refinementTemplate){for(e=[],f=0;2>f;f++)e.push({x:m(i,j),y:m(i,j+1)}),j+=2;l.refinementAt=e}l.numberOfExportedSymbols=o(i,j),j+=4,l.numberOfNewSymbols=o(i,j),j+=4,d=[l,h.number,h.referredTo,i,j,k];break;case 6:case 7:var q={};q.info=r(i,j),j+=C;var s=n(i,j);if(j+=2,q.huffman=!!(1&s),q.refinement=!!(2&s),q.stripSize=1<<(s>>2&3),q.referenceCorner=s>>4&3,q.transposed=!!(64&s),q.combinationOperator=s>>7&3,q.defaultPixelValue=s>>9&1,q.dsOffset=s<<17>>27,q.refinementTemplate=s>>15&1,q.huffman){var t=n(i,j);j+=2,q.huffmanFS=3&t,q.huffmanDS=t>>2&3,q.huffmanDT=t>>4&3,q.huffmanRefinementDW=t>>6&3,q.huffmanRefinementDH=t>>8&3,q.huffmanRefinementDX=t>>10&3,q.huffmanRefinementDY=t>>12&3,q.huffmanRefinementSizeSelector=!!(14&t)}if(q.refinement&&!q.refinementTemplate){for(e=[],f=0;2>f;f++)e.push({x:m(i,j),y:m(i,j+1)}),j+=2;q.refinementAt=e}q.numberOfSymbolInstances=o(i,j),j+=4,q.huffman&&c("JBIG2 error: huffman is not supported"),d=[q,h.referredTo,i,j,k];break;case 38:case 39:var u={};u.info=r(i,j),j+=C;var v=i[j++];if(u.mmr=!!(1&v),u.template=v>>1&3,u.prediction=!!(8&v),!u.mmr){for(g=0===u.template?4:1,e=[],f=0;g>f;f++)e.push({x:m(i,j),y:m(i,j+1)}),j+=2;u.at=e}d=[u,i,j,k];break;case 48:var w={width:o(i,j),height:o(i,j+4),resolutionX:o(i,j+8),resolutionY:o(i,j+12)};4294967295===w.height&&delete w.height;var x=i[j+16];n(i,j+17);w.lossless=!!(1&x),w.refinement=!!(2&x),w.defaultPixelValue=x>>2&1,w.combinationOperator=x>>3&3,w.requiresBuffer=!!(32&x),w.combinationOperatorOverride=!!(64&x),d=[w];break;case 49:break;case 50:break;case 51:break;case 62:break;default:c("JBIG2 error: segment type "+h.typeName+"("+h.type+") is not implemented")}var y="on"+h.typeName;y in b&&b[y].apply(b,d)}function t(a,b){for(var c=0,d=a.length;d>c;c++)s(a[c],b)}function u(a){for(var b=new v,c=0,d=a.length;d>c;c++){var e=a[c],f=q({},e.data,e.start,e.end);t(f,b)}return b.buffer}function v(){}function w(){}a.prototype={getContexts:function(a){return a in this?this[a]:this[a]=new Int8Array(65536)}},b.prototype={get decoder(){var a=new fd(this.data,this.start,this.end);return g(this,"decoder",a)},get contextCache(){var b=new a;return g(this,"contextCache",b)}};var x=["SymbolDictionary",null,null,null,"IntermediateTextRegion",null,"ImmediateTextRegion","ImmediateLosslessTextRegion",null,null,null,null,null,null,null,null,"patternDictionary",null,null,null,"IntermediateHalftoneRegion",null,"ImmediateHalftoneRegion","ImmediateLosslessHalftoneRegion",null,null,null,null,null,null,null,null,null,null,null,null,"IntermediateGenericRegion",null,"ImmediateGenericRegion","ImmediateLosslessGenericRegion","IntermediateGenericRefinementRegion",null,"ImmediateGenericRefinementRegion","ImmediateLosslessGenericRefinementRegion",null,null,null,null,"PageInformation","EndOfPage","EndOfStripe","EndOfFile","Profiles","Tables",null,null,null,null,null,null,null,null,"Extension"],y=[[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:2,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-2,y:0},{x:-1,y:0}],[{x:-3,y:-1},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}]],z=[{coding:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:-1,y:1},{x:0,y:1},{x:1,y:1}]},{coding:[{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}]}],A=[39717,1941,229,405],B=[32,8],C=17;return v.prototype={onPageInformation:function(a){this.currentPageInfo=a;var b=a.width+7>>3,c=new Uint8Array(b*a.height);if(a.defaultPixelValue)for(var d=0,e=c.length;e>d;d++)c[d]=255;this.buffer=c},drawBitmap:function(a,b){var d,e,f,g,h=this.currentPageInfo,i=a.width,j=a.height,k=h.width+7>>3,l=h.combinationOperatorOverride?a.combinationOperator:h.combinationOperator,m=this.buffer,n=128>>(7&a.x),o=a.y*k+(a.x>>3);switch(l){case 0:for(d=0;j>d;d++){for(f=n,g=o,e=0;i>e;e++)b[d][e]&&(m[g]|=f),f>>=1,f||(f=128,g++);o+=k}break;case 2:for(d=0;j>d;d++){for(f=n,g=o,e=0;i>e;e++)b[d][e]&&(m[g]^=f),f>>=1,f||(f=128,g++);o+=k}break;default:c("JBIG2 error: operator "+l+" is not supported")}},onImmediateGenericRegion:function(a,c,d,e){var f=a.info,g=new b(c,d,e),i=h(a.mmr,f.width,f.height,a.template,a.prediction,null,a.at,g);this.drawBitmap(f,i)},onImmediateLosslessGenericRegion:function(){this.onImmediateGenericRegion.apply(this,arguments)},onSymbolDictionary:function(a,d,e,f,g,h){var i;a.huffman&&c("JBIG2 error: huffman is not supported");var k=this.symbols;k||(this.symbols=k={});for(var l=[],m=0,n=e.length;n>m;m++)l=l.concat(k[e[m]]);var o=new b(f,g,h);k[d]=j(a.huffman,a.refinement,l,a.numberOfNewSymbols,a.numberOfExportedSymbols,i,a.template,a.at,a.refinementTemplate,a.refinementAt,o)},onImmediateTextRegion:function(a,c,d,e,f){for(var g,h=a.info,i=this.symbols,j=[],m=0,n=c.length;n>m;m++)j=j.concat(i[c[m]]);var o=l(j.length),p=new b(d,e,f),q=k(a.huffman,a.refinement,h.width,h.height,a.defaultPixelValue,a.numberOfSymbolInstances,a.stripSize,j,o,a.transposed,a.dsOffset,a.referenceCorner,a.combinationOperator,g,a.refinementTemplate,a.refinementAt,p);this.drawBitmap(h,q)},onImmediateLosslessTextRegion:function(){this.onImmediateTextRegion.apply(this,arguments)}},w.prototype={parseChunks:function(a){return u(a)}},w}(),jd=(PDFJS.bidi=function(){function a(a){return 0!==(1&a)}function b(a){return 0===(1&a)}function c(a,b,c){for(var d=b,e=a.length;e>d;++d)if(a[d]!==c)return d;return d}function d(a,b,c,d){for(var e=b;c>e;++e)a[e]=d}function e(a,b,c){for(var d=b,e=c-1;e>d;++d,--e){var f=a[d];a[d]=a[e],a[e]=f}}function f(a,b,c){return{str:a,dir:c?"ttb":b?"ltr":"rtl"}}function g(g,l,m){var n=!0,o=g.length;if(0===o||m)return f(g,n,m);j.length=o,k.length=o;var p,q,r=0;for(p=0;o>p;++p){j[p]=g.charAt(p);var s=g.charCodeAt(p),t="L";255>=s?t=h[s]:s>=1424&&1524>=s?t="R":s>=1536&&1791>=s?t=i[255&s]:s>=1792&&2220>=s&&(t="AL"),"R"!==t&&"AL"!==t&&"AN"!==t||r++,k[p]=t}if(0===r)return n=!0,f(g,n);-1===l&&(.3>o/r?(n=!0,l=0):(n=!1,l=1));var u=[];for(p=0;o>p;++p)u[p]=l;var v=a(l)?"R":"L",w=v,x=w,y=w;for(p=0;o>p;++p)"NSM"===k[p]?k[p]=y:y=k[p];y=w;var z;for(p=0;o>p;++p)z=k[p],"EN"===z?k[p]="AL"===y?"AN":"EN":"R"!==z&&"L"!==z&&"AL"!==z||(y=z);for(p=0;o>p;++p)z=k[p],"AL"===z&&(k[p]="R");for(p=1;o-1>p;++p)"ES"===k[p]&&"EN"===k[p-1]&&"EN"===k[p+1]&&(k[p]="EN"),"CS"!==k[p]||"EN"!==k[p-1]&&"AN"!==k[p-1]||k[p+1]!==k[p-1]||(k[p]=k[p-1]);for(p=0;o>p;++p)if("EN"===k[p]){var A;for(A=p-1;A>=0&&"ET"===k[A];--A)k[A]="EN";for(A=p+1;o>A&&"ET"===k[A];--A)k[A]="EN"}for(p=0;o>p;++p)z=k[p],"WS"!==z&&"ES"!==z&&"ET"!==z&&"CS"!==z||(k[p]="ON");for(y=w,p=0;o>p;++p)z=k[p],"EN"===z?k[p]="L"===y?"L":"EN":"R"!==z&&"L"!==z||(y=z);for(p=0;o>p;++p)if("ON"===k[p]){var B=c(k,p+1,"ON"),C=w;p>0&&(C=k[p-1]);var D=x;o>B+1&&(D=k[B+1]),"L"!==C&&(C="R"),"L"!==D&&(D="R"),C===D&&d(k,p,B,C),p=B-1}for(p=0;o>p;++p)"ON"===k[p]&&(k[p]=v);for(p=0;o>p;++p)z=k[p],b(u[p])?"R"===z?u[p]+=1:"AN"!==z&&"EN"!==z||(u[p]+=2):"L"!==z&&"AN"!==z&&"EN"!==z||(u[p]+=1);var E,F=-1,G=99;for(p=0,q=u.length;q>p;++p)E=u[p],E>F&&(F=E),G>E&&a(E)&&(G=E);for(E=F;E>=G;--E){var H=-1;for(p=0,q=u.length;q>p;++p)u[p]<E?H>=0&&(e(j,H,p),H=-1):0>H&&(H=p);H>=0&&e(j,H,u.length)}for(p=0,q=j.length;q>p;++p){var I=j[p];"<"!==I&&">"!==I||(j[p]="")}return f(j.join(""),n)}var h=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ON","CS","ON","CS","ON","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","ON","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","ON","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],i=["AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","AL","AL","AL","AL","AL","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL"],j=[],k=[];
+return g}(),function(a){function b(a){var b=3285377520;this.h1=a?4294967295&a:b,this.h2=a?4294967295&a:b}var c=4294901760,d=65535,e=!1;try{new Uint32Array(new Uint8Array(5).buffer,0,1)}catch(f){e=!0}return b.prototype={update:function(a){var b,f=e;if("string"==typeof a){var g=new Uint8Array(2*a.length),h=0;for(b=0;b<a.length;b++){var i=a.charCodeAt(b);255>=i?g[h++]=i:(g[h++]=i>>>8,g[h++]=255&i)}}else if(a instanceof Uint8Array)g=a,h=g.length;else{if(!("object"==typeof a&&"length"in a))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");g=a,h=g.length,f=!0}var j=h>>2,k=h-4*j,l=f?new la(g,j):new Uint32Array(g.buffer,0,j),m=0,n=0,o=this.h1,p=this.h2,q=3432918353,r=461845907,s=q&d,t=r&d;for(b=0;j>b;b++)1&b?(m=l[b],m=m*q&c|m*s&d,m=m<<15|m>>>17,m=m*r&c|m*t&d,o^=m,o=o<<13|o>>>19,o=5*o+3864292196):(n=l[b],n=n*q&c|n*s&d,n=n<<15|n>>>17,n=n*r&c|n*t&d,p^=n,p=p<<13|p>>>19,p=5*p+3864292196);switch(m=0,k){case 3:m^=g[4*j+2]<<16;case 2:m^=g[4*j+1]<<8;case 1:m^=g[4*j],m=m*q&c|m*s&d,m=m<<15|m>>>17,m=m*r&c|m*t&d,1&j?o^=m:p^=m}return this.h1=o,this.h2=p,this},hexdigest:function(){var a=this.h1,b=this.h2;a^=b>>>1,a=3981806797*a&c|36045*a&d,b=4283543511*b&c|(2950163797*(b<<16|a>>>16)&c)>>>16,a^=b>>>1,a=444984403*a&c|60499*a&d,b=3301882366*b&c|(3120437893*(b<<16|a>>>16)&c)>>>16,a^=b>>>1;for(var e=0,f=[a,b],g="";e<f.length;e++){for(var h=(f[e]>>>0).toString(16);h.length<8;)h="0"+h;g+=h}return g}},b}())}.call("undefined"==typeof window?this:window),PDFJS.workerSrc||"undefined"==typeof document||(PDFJS.workerSrc=function(){"use strict";var a=document.body||document.getElementsByTagName("head")[0],b=a.lastChild.src;return b&&b.replace(/\.js$/i,".worker.js")}()),function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return u.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split("/"),o=s.map,p=o&&o["*"]||{};if(a&&"."===a.charAt(0))if(b){for(a=a.split("/"),g=a.length-1,s.nodeIdCompat&&w.test(a[g])&&(a[g]=a[g].replace(w,"")),a=n.slice(0,n.length-1).concat(a),k=0;k<a.length;k+=1)if(m=a[k],"."===m)a.splice(k,1),k-=1;else if(".."===m){if(1===k&&(".."===a[2]||".."===a[0]))break;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||p)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&p&&p[d]&&(i=p[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=v.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),n.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){q[a]=b}}function j(a){if(e(r,a)){var c=r[a];delete r[a],t[a]=!0,m.apply(b,c)}if(!e(q,a)&&!e(t,a))throw new Error("No "+a);return q[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return function(){return s&&s.config&&s.config[a]||{}}}var m,n,o,p,q={},r={},s={},t={},u=Object.prototype.hasOwnProperty,v=[].slice,w=/\.js$/;o=function(a,b){var c,d=k(a),e=d[0];return a=d[1],e&&(e=f(e,b),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(b)):f(a,b):(a=f(a,b),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},p={require:function(a){return g(a)},exports:function(a){var b=q[a];return"undefined"!=typeof b?b:q[a]={}},module:function(a){return{id:a,uri:"",exports:q[a],config:l(a)}}},m=function(a,c,d,f){var h,k,l,m,n,s,u=[],v=typeof d;if(f=f||a,"undefined"===v||"function"===v){for(c=!c.length&&d.length?["require","exports","module"]:c,n=0;n<c.length;n+=1)if(m=o(c[n],f),k=m.f,"require"===k)u[n]=p.require(a);else if("exports"===k)u[n]=p.exports(a),s=!0;else if("module"===k)h=u[n]=p.module(a);else if(e(q,k)||e(r,k)||e(t,k))u[n]=j(k);else{if(!m.p)throw new Error(a+" missing "+k);m.p.load(m.n,g(f,!0),i(k),{}),u[n]=q[k]}l=d?d.apply(q[a],u):void 0,a&&(h&&h.exports!==b&&h.exports!==q[a]?q[a]=h.exports:l===b&&s||(q[a]=l))}else a&&(q[a]=d)},a=c=n=function(a,c,d,e,f){if("string"==typeof a)return p[a]?p[a](c):j(o(a,c).f);if(!a.splice){if(s=a,s.deps&&n(s.deps,s.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?m(b,a,c,d):setTimeout(function(){m(b,a,c,d)},4),n},n.config=function(a){return n(a)},a._defined=q,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(q,a)||e(r,a)||(r[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){var e=b[d];"function"==typeof e&&"constructor"!==d&&c.push(d)}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){var a=Array.prototype.unshift;return a.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};return d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice;this.listeners=this.listeners||{},a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;d>c;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;a>c;c++){var d=Math.floor(36*Math.random());b+=d.toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return e!==f||"hidden"!==f&&"visible"!==f?"scroll"===e||"scroll"===f?!0:d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth:!1},c.escapeMarkup=function(a){var b={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){var c=b.find(".select2-results");c.append(a)},c.prototype.sort=function(a){var b=this.options.get("sorter");return b(a)},c.prototype.setClasses=function(){var b=this;this.data.current(function(c){var d=a.map(c,function(a){return a.id.toString()}),e=b.$results.find(".select2-results__option[aria-selected]");e.each(function(){var b=a(this),c=a.data(this,"data"),e=""+c.id;null!=c.element&&c.element.selected||null==c.element&&a.inArray(e,d)>-1?b.attr("aria-selected","true"):b.attr("aria-selected","false")});var f=e.filter("[aria-selected=true]");f.length>0?f.first().trigger("mouseenter"):e.first().trigger("mouseenter")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"treeitem","aria-selected":"false"};b.disabled&&(delete d["aria-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["aria-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role="group",d["aria-label"]=b.text,delete d["aria-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";a(h);this.template(b,h);for(var i=[],j=0;j<b.children.length;j++){var k=b.children[j],l=this.option(k);i.push(l)}var m=a("<ul></ul>",{"class":"select2-results__options select2-results__options--nested"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b,c){var d=this,e=b.id+"-results";this.$results.attr("id",e),b.on("results:all",function(a){d.clear(),d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("results:append",function(a){d.append(a.data),b.isOpen()&&d.setClasses()}),b.on("query",function(a){d.hideMessages(),d.showLoading(a)}),b.on("select",function(){b.isOpen()&&d.setClasses()}),b.on("unselect",function(){b.isOpen()&&d.setClasses()}),b.on("open",function(){d.$results.attr("aria-expanded","true"),d.$results.attr("aria-hidden","false"),d.setClasses(),d.ensureHighlightVisible()}),b.on("close",function(){d.$results.attr("aria-expanded","false"),d.$results.attr("aria-hidden","true"),d.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=d.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=d.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("aria-selected")?d.trigger("close",{}):d.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a);if(0!==c){var e=c-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top,h=f.offset().top,i=d.$results.scrollTop()+(h-g);0===e?d.$results.scrollTop(0):0>h-g&&d.$results.scrollTop(i)}}),b.on("results:next",function(){var a=d.getHighlightedResults(),b=d.$results.find("[aria-selected]"),c=b.index(a),e=c+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=d.$results.offset().top+d.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=d.$results.scrollTop()+h-g;0===e?d.$results.scrollTop(0):h>g&&d.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),b.on("results:message",function(a){d.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=d.$results.scrollTop(),c=d.$results.get(0).scrollHeight-b+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=d.$results.height();e?(d.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(d.$results.scrollTop(d.$results.get(0).scrollHeight-d.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(b){var c=a(this),e=c.data("data");return"true"===c.attr("aria-selected")?void(d.options.get("multiple")?d.trigger("unselect",{originalEvent:b,data:e}):d.trigger("close",{})):void d.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(b){var c=a(this).data("data");d.getHighlightedResults().removeClass("select2-results__option--highlighted"),d.trigger("results:focus",{data:c,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(".select2-results__option--highlighted");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){var a={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46};return a}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=this.$element.data("old-tabindex")?this._tabindex=this.$element.data("old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),b.attr("title",this.$element.attr("title")),b.attr("tabindex",this._tabindex),this.$selection=b,b},d.prototype.bind=function(a,b){var d=this,e=(a.id+"-container",a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","false"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(b){a(document.body).on("mousedown.select2."+b.id,function(b){var c=a(b.target),d=c.closest(".select2"),e=a(".select2.select2-container--open");e.each(function(){var b=a(this);if(this!=d[0]){var c=b.data("element");c.select2("close")}})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){var c=b.find(".selection");c.append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("selection:update",function(a){c.update(a.data)})},e.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},e.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.prop("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,c){var e=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){e.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!e.options.get("disabled")){var c=a(this),d=c.parent(),f=d.data("data");e.trigger("unselect",{originalEvent:b,data:f})}})},d.prototype.clear=function(){this.$selection.find(".select2-selection__rendered").empty()},d.prototype.display=function(a,b){var c=this.options.get("templateSelection"),d=this.options.get("escapeMarkup");return d(c(a,b))},d.prototype.selectionContainer=function(){var b=a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.prop("title",e.title||e.text),f.data("data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id,d=b.length>1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(e)},b}),b.define("select2/selection/allowClear",["jquery","../keys"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var c=this.$selection.find(".select2-selection__clear");if(0!==c.length){b.stopPropagation();for(var d=c.data("data"),e=0;e<d.length;e++){var f={data:d[e]};if(this.trigger("unselect",f),f.prevented)return}this.$element.val(this.placeholder.id).trigger("change"),this.trigger("toggle",{})}}},c.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||c.which!=b.DELETE&&c.which!=b.BACKSPACE||this._handleClear(c)},c.prototype.update=function(b,c){if(b.call(this,c),!(this.$selection.find(".select2-selection__placeholder").length>0||0===c.length)){var d=a('<span class="select2-selection__clear">&times;</span>');d.data("data",c),this.$selection.find(".select2-selection__rendered").prepend(d)}},c}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("open",function(){e.$search.trigger("focus")}),b.on("close",function(){e.$search.val(""),e.$search.removeAttr("aria-activedescendant"),e.$search.trigger("focus")}),b.on("enable",function(){e.$search.prop("disabled",!1),e._transferTabIndex()}),b.on("disable",function(){e.$search.prop("disabled",!0)}),b.on("focus",function(a){e.$search.trigger("focus")}),b.on("results:focus",function(a){e.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){e.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){e._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){a.stopPropagation(),e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&""===e.$search.val()){var d=e.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var f=d.data("data");e.searchRemoveChoice(f),a.preventDefault()}}});var f=document.documentMode,g=f&&11>=f;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){return g?void e.$selection.off("input.search input.searchcheck"):void e.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(g&&"input"===a.type)return void e.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&e.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c&&this.$search.focus()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting"],g=["opening","closing","selecting","unselecting"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){var a={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y",
+"ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};return a}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),d+=null!=c.id?"-"+c.id.toString():"-"+a.generateChars(4)},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple"))return a.selected=!1,c(a.element).is("option")?(a.element.selected=!1,void this.$element.trigger("change")):void this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){c.removeData(this,"data")})},d.prototype.query=function(a,b){var d=[],e=this,f=this.$element.children();f.each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var b;a.children?(b=document.createElement("optgroup"),b.label=a.text):(b=document.createElement("option"),void 0!==b.textContent?b.textContent=a.text:b.innerText=a.text),a.id&&(b.value=a.id),a.disabled&&(b.disabled=!0),a.selected&&(b.selected=!0),a.title&&(b.title=a.title);var d=c(b),e=this._normalizeItem(a);return e.element=b,c.data(b,"data",e),d},d.prototype.item=function(a){var b={};if(b=c.data(a[0],"data"),null!=b)return b;if(a.is("option"))b={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){b={text:a.prop("label"),children:[],title:a.prop("title")};for(var d=a.children("option"),e=[],f=0;f<d.length;f++){var g=c(d[f]),h=this.item(g);e.push(h)}b.children=e}return b=this._normalizeItem(b),b.element=a[0],c.data(a[0],"data",b),b},d.prototype._normalizeItem=function(a){c.isPlainObject(a)||(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){var c=this.options.get("matcher");return c(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&""!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0),k=i.text===b.term;if(k||j)return f?!1:(a.data=g,void c(a))}if(f)return!0;var l=e.createTag(b);if(null!=l){var m=e.option(l);m.attr("data-select2-tag",!0),e.addOptions([m]),e.insertTag(g,l)}a.results=g,c(a)}var e=this;return this._removeOldTags(),null==b.term||null!=b.page?void a.call(this,b,c):void a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){var c=(this._lastTag,this.$element.find("option[data-select2-tag]"));c.each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(a,b,c){function d(a){e.trigger("select",{data:a})}var e=this;b.term=b.term||"";var f=this.tokenizer(b,this.options,d);f.term!==b.term&&(this.$search.length&&(this.$search.val(f.term),this.$search.focus()),b.term=f.term),a.call(this,b,c)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",b.term.length<this.minimumInputLength?void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength?void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val("")}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){a(this).data("select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(b){var c=a(this).data("select2-scroll-position");a(this).scrollTop(c.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id,h=this.$container.parents().filter(b.hasScroll);h.off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return a(c.data.results)<this.minimumResultsForSearch?!1:b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(){d._handleSelectOnClose()})},a.prototype._handleSelectOnClose=function(){var a=this.getHighlightedResults();if(!(a.length<1)){var b=a.data("data");null!=b.element&&b.element.selected||null==b.element&&b.selected||this.trigger("select",{data:b})}},a}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){var b=a.minimum-a.input.length,c="Please enter "+b+" or more characters";return c},loadingMore:function(){return"Loading more results…"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),null==l.tokenSeparators&&null==l.tokenizer||(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(O){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(P){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var Q=k.loadPath(this.defaults.amdLanguageBase+"en"),R=new k(l.language);R.extend(Q),l.translations=R}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),a.data("select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),a.data("data",a.data("select2Tags")),a.data("tags",!0)),a.data("ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",a.data("ajaxUrl")),a.data("ajax--url",a.data("ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,c){null!=a.data("select2")&&a.data("select2").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("tabindex")||0;a.data("old-tabindex",d),a.attr("tabindex","-1");var f=this.options.get("dataAdapter");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("selectionAdapter");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("dropdownAdapter");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("resultsAdapter");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return 0>=e?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener("DOMAttrModified",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")},e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=a&&0!==a.length||(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener("DOMAttrModified",this._sync,!1),this._sync=null,this.$element.off(".select2"),this.$element.attr("tabindex",this.$element.data("old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,
+this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),b.data("element",this.$element),b},e}),b.define("jquery-mousewheel",["jquery"],function(a){return a}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults"],function(a,b,c,d){if(null==a.fn.select2){var e=["open","close","destroy"];a.fn.select2=function(b){if(b=b||{},"object"==typeof b)return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d;return this.each(function(){var c=a(this).data("select2");null==c&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2.");var e=Array.prototype.slice.call(arguments,1);d=c[b].apply(c,e)}),a.inArray(b,e)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c}),angular.module("sprintf",[]).filter("sprintf",function(){return function(){return sprintf.apply(null,arguments)}}).filter("fmt",["$filter",function(a){return a("sprintf")}]).filter("vsprintf",function(){return function(a,b){return vsprintf(a,b)}}).filter("vfmt",["$filter",function(a){return a("vsprintf")}]),function(a,b){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a():b.rangy=a()}(function(){function a(a,b){var c=typeof a[b];return c==u||!(c!=t||!a[b])||"unknown"==c}function b(a,b){return!(typeof a[b]!=t||!a[b])}function c(a,b){return typeof a[b]!=v}function d(a){return function(b,c){for(var d=c.length;d--;)if(!a(b,c[d]))return!1;return!0}}function e(a){return a&&A(a,z)&&C(a,y)}function f(a){return b(a,"body")?a.body:a.getElementsByTagName("body")[0]}function g(b){typeof console!=v&&a(console,"log")&&console.log(b)}function h(a,b){F&&b?alert(a):g(a)}function i(a){H.initialized=!0,H.supported=!1,h("Rangy is not supported in this environment. Reason: "+a,H.config.alertOnFail)}function j(a){h("Rangy warning: "+a,H.config.alertOnWarn)}function k(a){return a.message||a.description||String(a)}function l(){if(F&&!H.initialized){var b,c=!1,d=!1;a(document,"createRange")&&(b=document.createRange(),A(b,x)&&C(b,w)&&(c=!0));var h=f(document);if(!h||"body"!=h.nodeName.toLowerCase())return void i("No body element found");if(h&&a(h,"createTextRange")&&(b=h.createTextRange(),e(b)&&(d=!0)),!c&&!d)return void i("Neither Range nor TextRange are available");H.initialized=!0,H.features={implementsDomRange:c,implementsTextRange:d};var j,l;for(var m in E)(j=E[m])instanceof p&&j.init(j,H);for(var n=0,o=K.length;o>n;++n)try{K[n](H)}catch(q){l="Rangy init listener threw an exception. Continuing. Detail: "+k(q),g(l)}}}function m(a,b,c){c&&(a+=" in module "+c.name),H.warn("DEPRECATED: "+a+" is deprecated. Please use "+b+" instead.")}function n(a,b,c,d){a[b]=function(){return m(b,c,d),a[c].apply(a,G.toArray(arguments))}}function o(a){a=a||window,l();for(var b=0,c=L.length;c>b;++b)L[b](a)}function p(a,b,c){this.name=a,this.dependencies=b,this.initialized=!1,this.supported=!1,this.initializer=c}function q(a,b,c){var d=new p(a,b,function(b){if(!b.initialized){b.initialized=!0;try{c(H,b),b.supported=!0}catch(d){var e="Module '"+a+"' failed to load: "+k(d);g(e),d.stack&&g(d.stack)}}});return E[a]=d,d}function r(){}function s(){}var t="object",u="function",v="undefined",w=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],x=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],y=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],z=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],A=d(a),B=d(b),C=d(c),D=[].forEach?function(a,b){a.forEach(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)b(a[c],c)},E={},F=typeof window!=v&&typeof document!=v,G={isHostMethod:a,isHostObject:b,isHostProperty:c,areHostMethods:A,areHostObjects:B,areHostProperties:C,isTextRange:e,getBody:f,forEach:D},H={version:"1.3.0",initialized:!1,isBrowser:F,supported:!0,util:G,features:{},modules:E,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==v?!0:rangyAutoInitialize}};H.fail=i,H.warn=j;var I;({}).hasOwnProperty?(G.extend=I=function(a,b,c){var d,e;for(var f in b)b.hasOwnProperty(f)&&(d=a[f],e=b[f],c&&null!==d&&"object"==typeof d&&null!==e&&"object"==typeof e&&I(d,e,!0),a[f]=e);return b.hasOwnProperty("toString")&&(a.toString=b.toString),a},G.createOptions=function(a,b){var c={};return I(c,b),a&&I(c,a),c}):i("hasOwnProperty not supported"),F||i("Rangy can only run in a browser"),function(){var a;if(F){var b=document.createElement("div");b.appendChild(document.createElement("span"));var c=[].slice;try{1==c.call(b.childNodes,0)[0].nodeType&&(a=function(a){return c.call(a,0)})}catch(d){}}a||(a=function(a){for(var b=[],c=0,d=a.length;d>c;++c)b[c]=a[c];return b}),G.toArray=a}();var J;F&&(a(document,"addEventListener")?J=function(a,b,c){a.addEventListener(b,c,!1)}:a(document,"attachEvent")?J=function(a,b,c){a.attachEvent("on"+b,c)}:i("Document does not have required addEventListener or attachEvent method"),G.addListener=J);var K=[];G.deprecationNotice=m,G.createAliasForDeprecatedMethod=n,H.init=l,H.addInitListener=function(a){H.initialized?a(H):K.push(a)};var L=[];H.addShimListener=function(a){L.push(a)},F&&(H.shim=H.createMissingNativeApi=o,n(H,"createMissingNativeApi","shim")),p.prototype={init:function(){for(var a,b,c=this.dependencies||[],d=0,e=c.length;e>d;++d){if(b=c[d],a=E[b],!(a&&a instanceof p))throw new Error("required module '"+b+"' not found");if(a.init(),!a.supported)throw new Error("required module '"+b+"' not supported")}this.initializer(this)},fail:function(a){throw this.initialized=!0,this.supported=!1,new Error(a)},warn:function(a){H.warn("Module "+this.name+": "+a)},deprecationNotice:function(a,b){H.warn("DEPRECATED: "+a+" in module "+this.name+" is deprecated. Please use "+b+" instead")},createError:function(a){return new Error("Error in Rangy "+this.name+" module: "+a)}},H.createModule=function(a){var b,c;2==arguments.length?(b=arguments[1],c=[]):(b=arguments[2],c=arguments[1]);var d=q(a,c,b);H.initialized&&H.supported&&d.init()},H.createCoreModule=function(a,b,c){q(a,b,c)},H.RangePrototype=r,H.rangePrototype=new r,H.selectionPrototype=new s,H.createCoreModule("DomUtil",[],function(a,b){function c(a){var b;return typeof a.namespaceURI==F||null===(b=a.namespaceURI)||"http://www.w3.org/1999/xhtml"==b}function d(a){var b=a.parentNode;return 1==b.nodeType?b:null}function e(a){for(var b=0;a=a.previousSibling;)++b;return b}function f(a){switch(a.nodeType){case 7:case 10:return 0;case 3:case 8:return a.length;default:return a.childNodes.length}}function g(a,b){var c,d=[];for(c=a;c;c=c.parentNode)d.push(c);for(c=b;c;c=c.parentNode)if(K(d,c))return c;return null}function h(a,b,c){for(var d=c?b:b.parentNode;d;){if(d===a)return!0;d=d.parentNode}return!1}function i(a,b){return h(a,b,!0)}function j(a,b,c){for(var d,e=c?a:a.parentNode;e;){if(d=e.parentNode,d===b)return e;e=d}return null}function k(a){var b=a.nodeType;return 3==b||4==b||8==b}function l(a){if(!a)return!1;var b=a.nodeType;return 3==b||8==b}function m(a,b){var c=b.nextSibling,d=b.parentNode;return c?d.insertBefore(a,c):d.appendChild(a),a}function n(a,b,c){var d=a.cloneNode(!1);if(d.deleteData(0,b),a.deleteData(b,a.length-b),m(d,a),c)for(var f,g=0;f=c[g++];)f.node==a&&f.offset>b?(f.node=d,f.offset-=b):f.node==a.parentNode&&f.offset>e(a)&&++f.offset;return d}function o(a){if(9==a.nodeType)return a;if(typeof a.ownerDocument!=F)return a.ownerDocument;if(typeof a.document!=F)return a.document;if(a.parentNode)return o(a.parentNode);throw b.createError("getDocument: no document found for node")}function p(a){var c=o(a);if(typeof c.defaultView!=F)return c.defaultView;if(typeof c.parentWindow!=F)return c.parentWindow;throw b.createError("Cannot get a window object for node")}function q(a){if(typeof a.contentDocument!=F)return a.contentDocument;if(typeof a.contentWindow!=F)return a.contentWindow.document;throw b.createError("getIframeDocument: No Document object found for iframe element")}function r(a){if(typeof a.contentWindow!=F)return a.contentWindow;if(typeof a.contentDocument!=F)return a.contentDocument.defaultView;throw b.createError("getIframeWindow: No Window object found for iframe element")}function s(a){return a&&G.isHostMethod(a,"setTimeout")&&G.isHostObject(a,"document")}function t(a,b,c){var d;if(a?G.isHostProperty(a,"nodeType")?d=1==a.nodeType&&"iframe"==a.tagName.toLowerCase()?q(a):o(a):s(a)&&(d=a.document):d=document,!d)throw b.createError(c+"(): Parameter must be a Window object or DOM node");return d}function u(a){for(var b;b=a.parentNode;)a=b;return a}function v(a,c,d,f){var h,i,k,l,m;if(a==d)return c===f?0:f>c?-1:1;if(h=j(d,a,!0))return c<=e(h)?-1:1;if(h=j(a,d,!0))return e(h)<f?-1:1;if(i=g(a,d),!i)throw new Error("comparePoints error: nodes have no common ancestor");if(k=a===i?i:j(a,i,!0),l=d===i?i:j(d,i,!0),k===l)throw b.createError("comparePoints got to case 4 and childA and childB are the same!");for(m=i.firstChild;m;){if(m===k)return-1;if(m===l)return 1;m=m.nextSibling}}function w(a){var b;try{return b=a.parentNode,!1}catch(c){return!0}}function x(a){if(!a)return"[No node]";if(L&&w(a))return"[Broken node]";if(k(a))return'"'+a.data+'"';if(1==a.nodeType){var b=a.id?' id="'+a.id+'"':"";return"<"+a.nodeName+b+">[index:"+e(a)+",length:"+a.childNodes.length+"]["+(a.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return a.nodeName}function y(a){for(var b,c=o(a).createDocumentFragment();b=a.firstChild;)c.appendChild(b);return c}function z(a,b,c){var d=H(a),e=a.createElement("div");e.contentEditable=""+!!c,b&&(e.innerHTML=b);var f=d.firstChild;return f?d.insertBefore(e,f):d.appendChild(e),e}function A(a){return a.parentNode.removeChild(a)}function B(a){this.root=a,this._next=a}function C(a){return new B(a)}function D(a,b){this.node=a,this.offset=b}function E(a){this.code=this[a],this.codeName=a,this.message="DOMException: "+this.codeName}var F="undefined",G=a.util,H=G.getBody;G.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||b.fail("document missing a Node creation method"),G.isHostMethod(document,"getElementsByTagName")||b.fail("document missing getElementsByTagName method");var I=document.createElement("div");G.areHostMethods(I,["insertBefore","appendChild","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"]))||b.fail("Incomplete Element implementation"),G.isHostProperty(I,"innerHTML")||b.fail("Element is missing innerHTML property");var J=document.createTextNode("test");G.areHostMethods(J,["splitText","deleteData","insertData","appendData","cloneNode"]||!G.areHostObjects(I,["previousSibling","nextSibling","childNodes","parentNode"])||!G.areHostProperties(J,["data"]))||b.fail("Incomplete Text Node implementation");var K=function(a,b){for(var c=a.length;c--;)if(a[c]===b)return!0;return!1},L=!1;!function(){var b=document.createElement("b");b.innerHTML="1";var c=b.firstChild;b.innerHTML="<br />",L=w(c),a.features.crashyTextNodes=L}();var M;typeof window.getComputedStyle!=F?M=function(a,b){return p(a).getComputedStyle(a,null)[b]}:typeof document.documentElement.currentStyle!=F?M=function(a,b){return a.currentStyle?a.currentStyle[b]:""}:b.fail("No means of obtaining computed style properties found"),B.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var a,b,c=this._current=this._next;if(this._current)if(a=c.firstChild)this._next=a;else{for(b=null;c!==this.root&&!(b=c.nextSibling);)c=c.parentNode;this._next=b}return this._current},detach:function(){this._current=this._next=this.root=null}},D.prototype={equals:function(a){return!!a&&this.node===a.node&&this.offset==a.offset},inspect:function(){return"[DomPosition("+x(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},E.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},E.prototype.toString=function(){return this.message},a.dom={arrayContains:K,isHtmlNamespace:c,parentElement:d,getNodeIndex:e,getNodeLength:f,getCommonAncestor:g,isAncestorOf:h,isOrIsAncestorOf:i,getClosestAncestorIn:j,isCharacterDataNode:k,isTextOrCommentNode:l,insertAfter:m,splitDataNode:n,getDocument:o,getWindow:p,getIframeWindow:r,getIframeDocument:q,getBody:H,isWindow:s,getContentDocument:t,getRootContainer:u,comparePoints:v,isBrokenNode:w,inspectNode:x,getComputedStyleProperty:M,createTestElement:z,removeNode:A,fragmentFromNodeChildren:y,createIterator:C,DomPosition:D},a.DOMException=E}),H.createCoreModule("DomRange",["DomUtil"],function(a,b){function c(a,b){return 3!=a.nodeType&&(P(a,b.startContainer)||P(a,b.endContainer))}function d(a){return a.document||Q(a.startContainer)}function e(a){return W(a.startContainer)}function f(a){return new L(a.parentNode,O(a))}function g(a){return new L(a.parentNode,O(a)+1)}function h(a,b,c){var d=11==a.nodeType?a.firstChild:a;return N(b)?c==b.length?J.insertAfter(a,b):b.parentNode.insertBefore(a,0==c?b:S(b,c)):c>=b.childNodes.length?b.appendChild(a):b.insertBefore(a,b.childNodes[c]),d}function i(a,b,c){if(z(a),z(b),d(b)!=d(a))throw new M("WRONG_DOCUMENT_ERR");var e=R(a.startContainer,a.startOffset,b.endContainer,b.endOffset),f=R(a.endContainer,a.endOffset,b.startContainer,b.startOffset);return c?0>=e&&f>=0:0>e&&f>0}function j(a){for(var b,c,e,f=d(a.range).createDocumentFragment();c=a.next();){if(b=a.isPartiallySelectedSubtree(),c=c.cloneNode(!b),b&&(e=a.getSubtreeIterator(),c.appendChild(j(e)),e.detach()),10==c.nodeType)throw new M("HIERARCHY_REQUEST_ERR");f.appendChild(c)}return f}function k(a,b,c){var d,e;c=c||{stop:!1};for(var f,g;f=a.next();)if(a.isPartiallySelectedSubtree()){if(b(f)===!1)return void(c.stop=!0);if(g=a.getSubtreeIterator(),k(g,b,c),g.detach(),c.stop)return}else for(d=J.createIterator(f);e=d.next();)if(b(e)===!1)return void(c.stop=!0)}function l(a){for(var b;a.next();)a.isPartiallySelectedSubtree()?(b=a.getSubtreeIterator(),l(b),b.detach()):a.remove()}function m(a){for(var b,c,e=d(a.range).createDocumentFragment();b=a.next();){if(a.isPartiallySelectedSubtree()?(b=b.cloneNode(!1),c=a.getSubtreeIterator(),b.appendChild(m(c)),c.detach()):a.remove(),10==b.nodeType)throw new M("HIERARCHY_REQUEST_ERR");e.appendChild(b)}return e}function n(a,b,c){var d,e=!(!b||!b.length),f=!!c;e&&(d=new RegExp("^("+b.join("|")+")$"));var g=[];return k(new p(a,!1),function(b){if((!e||d.test(b.nodeType))&&(!f||c(b))){var h=a.startContainer;if(b!=h||!N(h)||a.startOffset!=h.length){var i=a.endContainer;b==i&&N(i)&&0==a.endOffset||g.push(b)}}}),g}function o(a){var b="undefined"==typeof a.getName?"Range":a.getName();return"["+b+"("+J.inspectNode(a.startContainer)+":"+a.startOffset+", "+J.inspectNode(a.endContainer)+":"+a.endOffset+")]"}function p(a,b){if(this.range=a,this.clonePartiallySelectedTextNodes=b,!a.collapsed){this.sc=a.startContainer,this.so=a.startOffset,this.ec=a.endContainer,this.eo=a.endOffset;var c=a.commonAncestorContainer;this.sc===this.ec&&N(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==c||N(this.sc)?T(this.sc,c,!0):this.sc.childNodes[this.so],this._last=this.ec!==c||N(this.ec)?T(this.ec,c,!0):this.ec.childNodes[this.eo-1])}}function q(a){return function(b,c){for(var d,e=c?b:b.parentNode;e;){if(d=e.nodeType,V(a,d))return e;e=e.parentNode}return null}}function r(a,b){if(ea(a,b))throw new M("INVALID_NODE_TYPE_ERR")}function s(a,b){if(!V(b,a.nodeType))throw new M("INVALID_NODE_TYPE_ERR")}function t(a,b){if(0>b||b>(N(a)?a.length:a.childNodes.length))throw new M("INDEX_SIZE_ERR")}function u(a,b){if(ca(a,!0)!==ca(b,!0))throw new M("WRONG_DOCUMENT_ERR")}function v(a){if(da(a,!0))throw new M("NO_MODIFICATION_ALLOWED_ERR")}function w(a,b){if(!a)throw new M(b)}function x(a,b){return b<=(N(a)?a.length:a.childNodes.length)}function y(a){return!!a.startContainer&&!!a.endContainer&&!(X&&(J.isBrokenNode(a.startContainer)||J.isBrokenNode(a.endContainer)))&&W(a.startContainer)==W(a.endContainer)&&x(a.startContainer,a.startOffset)&&x(a.endContainer,a.endOffset)}function z(a){if(!y(a))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+a.inspect()+")")}function A(a,b){z(a);var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset,g=c===e;N(e)&&f>0&&f<e.length&&S(e,f,b),N(c)&&d>0&&d<c.length&&(c=S(c,d,b),g?(f-=d,e=c):e==c.parentNode&&f>=O(c)&&f++,d=0),a.setStartAndEnd(c,d,e,f)}function B(a){z(a);var b=a.commonAncestorContainer.parentNode.cloneNode(!1);return b.appendChild(a.cloneContents()),b.innerHTML}function C(a){a.START_TO_START=ka,a.START_TO_END=la,a.END_TO_END=ma,a.END_TO_START=na,a.NODE_BEFORE=oa,a.NODE_AFTER=pa,a.NODE_BEFORE_AND_AFTER=qa,a.NODE_INSIDE=ra}function D(a){C(a),C(a.prototype)}function E(a,b){return function(){z(this);var c,d,e=this.startContainer,f=this.startOffset,h=this.commonAncestorContainer,i=new p(this,!0);e!==h&&(c=T(e,h,!0),d=g(c),e=d.node,f=d.offset),k(i,v),i.reset();var j=a(i);return i.detach(),b(this,e,f,e,f),j}}function F(b,d){function e(a,b){return function(c){s(c,Z),s(W(c),$);var d=(a?f:g)(c);(b?h:i)(this,d.node,d.offset)}}function h(a,b,c){var e=a.endContainer,f=a.endOffset;b===a.startContainer&&c===a.startOffset||(W(b)==W(e)&&1!=R(b,c,e,f)||(e=b,f=c),d(a,b,c,e,f))}function i(a,b,c){var e=a.startContainer,f=a.startOffset;b===a.endContainer&&c===a.endOffset||(W(b)==W(e)&&-1!=R(b,c,e,f)||(e=b,f=c),d(a,e,f,b,c))}var j=function(){};j.prototype=a.rangePrototype,b.prototype=new j,K.extend(b.prototype,{setStart:function(a,b){r(a,!0),t(a,b),h(this,a,b)},setEnd:function(a,b){r(a,!0),t(a,b),i(this,a,b)},setStartAndEnd:function(){var a=arguments,b=a[0],c=a[1],e=b,f=c;switch(a.length){case 3:f=a[2];break;case 4:e=a[2],f=a[3]}d(this,b,c,e,f)},setBoundary:function(a,b,c){this["set"+(c?"Start":"End")](a,b)},setStartBefore:e(!0,!0),setStartAfter:e(!1,!0),setEndBefore:e(!0,!1),setEndAfter:e(!1,!1),collapse:function(a){z(this),a?d(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):d(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(a){r(a,!0),d(this,a,0,a,U(a))},selectNode:function(a){r(a,!1),s(a,Z);var b=f(a),c=g(a);d(this,b.node,b.offset,c.node,c.offset)},extractContents:E(m,d),deleteContents:E(l,d),canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},splitBoundaries:function(){A(this)},splitBoundariesPreservingPositions:function(a){A(this,a)},normalizeBoundaries:function(){z(this);var a,b=this.startContainer,c=this.startOffset,e=this.endContainer,f=this.endOffset,g=function(a){var b=a.nextSibling;b&&b.nodeType==a.nodeType&&(e=a,f=a.length,a.appendData(b.data),Y(b))},h=function(a){var d=a.previousSibling;if(d&&d.nodeType==a.nodeType){b=a;var g=a.length;if(c=d.length,a.insertData(0,d.data),Y(d),b==e)f+=c,e=b;else if(e==a.parentNode){var h=O(a);f==h?(e=a,f=g):f>h&&f--}}},i=!0;if(N(e))f==e.length?g(e):0==f&&(a=e.previousSibling,a&&a.nodeType==e.nodeType&&(f=a.length,b==e&&(i=!1),a.appendData(e.data),Y(e),e=a));else{if(f>0){var j=e.childNodes[f-1];j&&N(j)&&g(j)}i=!this.collapsed}if(i){if(N(b))0==c?h(b):c==b.length&&(a=b.nextSibling,a&&a.nodeType==b.nodeType&&(e==a&&(e=b,f+=b.length),b.appendData(a.data),Y(a)));else if(c<b.childNodes.length){var k=b.childNodes[c];k&&N(k)&&h(k)}}else b=e,c=f;d(this,b,c,e,f)},collapseToPoint:function(a,b){r(a,!0),t(a,b),this.setStartAndEnd(a,b)}}),D(b)}function G(a){a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset,a.commonAncestorContainer=a.collapsed?a.startContainer:J.getCommonAncestor(a.startContainer,a.endContainer)}function H(a,b,c,d,e){a.startContainer=b,a.startOffset=c,a.endContainer=d,a.endOffset=e,a.document=J.getDocument(b),G(a)}function I(a){this.startContainer=a,this.startOffset=0,this.endContainer=a,this.endOffset=0,this.document=a,G(this)}var J=a.dom,K=a.util,L=J.DomPosition,M=a.DOMException,N=J.isCharacterDataNode,O=J.getNodeIndex,P=J.isOrIsAncestorOf,Q=J.getDocument,R=J.comparePoints,S=J.splitDataNode,T=J.getClosestAncestorIn,U=J.getNodeLength,V=J.arrayContains,W=J.getRootContainer,X=a.features.crashyTextNodes,Y=J.removeNode;p.prototype={_current:null,_next:null,_first:null,_last:null,isSingleCharacterDataNode:!1,reset:function(){this._current=null,this._next=this._first},hasNext:function(){return!!this._next},next:function(){var a=this._current=this._next;return a&&(this._next=a!==this._last?a.nextSibling:null,N(a)&&this.clonePartiallySelectedTextNodes&&(a===this.ec&&(a=a.cloneNode(!0)).deleteData(this.eo,a.length-this.eo),this._current===this.sc&&(a=a.cloneNode(!0)).deleteData(0,this.so))),a},remove:function(){var a,b,c=this._current;!N(c)||c!==this.sc&&c!==this.ec?c.parentNode&&Y(c):(a=c===this.sc?this.so:0,b=c===this.ec?this.eo:c.length,a!=b&&c.deleteData(a,b-a))},isPartiallySelectedSubtree:function(){var a=this._current;return c(a,this.range)},getSubtreeIterator:function(){var a;if(this.isSingleCharacterDataNode)a=this.range.cloneRange(),a.collapse(!1);else{a=new I(d(this.range));var b=this._current,c=b,e=0,f=b,g=U(b);P(b,this.sc)&&(c=this.sc,e=this.so),P(b,this.ec)&&(f=this.ec,g=this.eo),H(a,c,e,f,g)}return new p(a,this.clonePartiallySelectedTextNodes)},detach:function(){this.range=this._current=this._next=this._first=this._last=this.sc=this.so=this.ec=this.eo=null}};var Z=[1,3,4,5,7,8,10],$=[2,9,11],_=[5,6,10,12],aa=[1,3,4,5,7,8,10,11],ba=[1,3,4,5,7,8],ca=q([9,11]),da=q(_),ea=q([6,10,12]),fa=document.createElement("style"),ga=!1;try{fa.innerHTML="<b>x</b>",ga=3==fa.firstChild.nodeType}catch(ha){}a.features.htmlParsingConforms=ga;var ia=ga?function(a){var b=this.startContainer,c=Q(b);if(!b)throw new M("INVALID_STATE_ERR");var d=null;return 1==b.nodeType?d=b:N(b)&&(d=J.parentElement(b)),d=null===d||"HTML"==d.nodeName&&J.isHtmlNamespace(Q(d).documentElement)&&J.isHtmlNamespace(d)?c.createElement("body"):d.cloneNode(!1),d.innerHTML=a,J.fragmentFromNodeChildren(d)}:function(a){var b=d(this),c=b.createElement("body");return c.innerHTML=a,J.fragmentFromNodeChildren(c)},ja=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ka=0,la=1,ma=2,na=3,oa=0,pa=1,qa=2,ra=3;K.extend(a.rangePrototype,{compareBoundaryPoints:function(a,b){z(this),u(this.startContainer,b.startContainer);var c,d,e,f,g=a==na||a==ka?"start":"end",h=a==la||a==ka?"start":"end";return c=this[g+"Container"],d=this[g+"Offset"],e=b[h+"Container"],f=b[h+"Offset"],R(c,d,e,f)},insertNode:function(a){if(z(this),s(a,aa),v(this.startContainer),P(a,this.startContainer))throw new M("HIERARCHY_REQUEST_ERR");var b=h(a,this.startContainer,this.startOffset);this.setStartBefore(b)},cloneContents:function(){z(this);var a,b;if(this.collapsed)return d(this).createDocumentFragment();if(this.startContainer===this.endContainer&&N(this.startContainer))return a=this.startContainer.cloneNode(!0),a.data=a.data.slice(this.startOffset,this.endOffset),b=d(this).createDocumentFragment(),b.appendChild(a),b;var c=new p(this,!0);return a=j(c),c.detach(),a},canSurroundContents:function(){z(this),v(this.startContainer),v(this.endContainer);var a=new p(this,!0),b=a._first&&c(a._first,this)||a._last&&c(a._last,this);return a.detach(),!b},surroundContents:function(a){if(s(a,ba),!this.canSurroundContents())throw new M("INVALID_STATE_ERR");var b=this.extractContents();if(a.hasChildNodes())for(;a.lastChild;)a.removeChild(a.lastChild);h(a,this.startContainer,this.startOffset),a.appendChild(b),this.selectNode(a)},cloneRange:function(){z(this);for(var a,b=new I(d(this)),c=ja.length;c--;)a=ja[c],b[a]=this[a];return b},toString:function(){z(this);var a=this.startContainer;if(a===this.endContainer&&N(a))return 3==a.nodeType||4==a.nodeType?a.data.slice(this.startOffset,this.endOffset):"";var b=[],c=new p(this,!0);return k(c,function(a){3!=a.nodeType&&4!=a.nodeType||b.push(a.data)}),c.detach(),b.join("")},compareNode:function(a){z(this);var b=a.parentNode,c=O(a);if(!b)throw new M("NOT_FOUND_ERR");var d=this.comparePoint(b,c),e=this.comparePoint(b,c+1);return 0>d?e>0?qa:oa:e>0?pa:ra},comparePoint:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)<0?-1:R(a,b,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:ia,toHtml:function(){return B(this)},intersectsNode:function(a,b){if(z(this),W(a)!=e(this))return!1;var c=a.parentNode,d=O(a);if(!c)return!0;var f=R(c,d,this.endContainer,this.endOffset),g=R(c,d+1,this.startContainer,this.startOffset);return b?0>=f&&g>=0:0>f&&g>0},isPointInRange:function(a,b){return z(this),w(a,"HIERARCHY_REQUEST_ERR"),u(a,this.startContainer),R(a,b,this.startContainer,this.startOffset)>=0&&R(a,b,this.endContainer,this.endOffset)<=0},intersectsRange:function(a){return i(this,a,!1)},intersectsOrTouchesRange:function(a){return i(this,a,!0)},intersection:function(a){if(this.intersectsRange(a)){var b=R(this.startContainer,this.startOffset,a.startContainer,a.startOffset),c=R(this.endContainer,this.endOffset,a.endContainer,a.endOffset),d=this.cloneRange();return-1==b&&d.setStart(a.startContainer,a.startOffset),1==c&&d.setEnd(a.endContainer,a.endOffset),d}return null},union:function(a){if(this.intersectsOrTouchesRange(a)){var b=this.cloneRange();return-1==R(a.startContainer,a.startOffset,this.startContainer,this.startOffset)&&b.setStart(a.startContainer,a.startOffset),1==R(a.endContainer,a.endOffset,this.endContainer,this.endOffset)&&b.setEnd(a.endContainer,a.endOffset),b}throw new M("Ranges do not intersect")},containsNode:function(a,b){return b?this.intersectsNode(a,!1):this.compareNode(a)==ra},containsNodeContents:function(a){return this.comparePoint(a,0)>=0&&this.comparePoint(a,U(a))<=0},containsRange:function(a){var b=this.intersection(a);return null!==b&&a.equals(b)},containsNodeText:function(a){var b=this.cloneRange();b.selectNode(a);var c=b.getNodes([3]);if(c.length>0){b.setStart(c[0],0);var d=c.pop();return b.setEnd(d,d.length),this.containsRange(b)}return this.containsNodeContents(a)},getNodes:function(a,b){return z(this),n(this,a,b)},getDocument:function(){return d(this)},collapseBefore:function(a){this.setEndBefore(a),this.collapse(!1)},collapseAfter:function(a){this.setStartAfter(a),this.collapse(!0)},getBookmark:function(b){var c=d(this),e=a.createRange(c);b=b||J.getBody(c),e.selectNodeContents(b);var f=this.intersection(e),g=0,h=0;return f&&(e.setEnd(f.startContainer,f.startOffset),g=e.toString().length,h=g+f.toString().length),{start:g,end:h,containerNode:b}},moveToBookmark:function(a){var b=a.containerNode,c=0;this.setStart(b,0),this.collapse(!0);for(var d,e,f,g,h=[b],i=!1,j=!1;!j&&(d=h.pop());)if(3==d.nodeType)e=c+d.length,!i&&a.start>=c&&a.start<=e&&(this.setStart(d,a.start-c),i=!0),i&&a.end>=c&&a.end<=e&&(this.setEnd(d,a.end-c),j=!0),c=e;else for(g=d.childNodes,f=g.length;f--;)h.push(g[f])},getName:function(){return"DomRange"},equals:function(a){return I.rangesEqual(this,a)},isValid:function(){return y(this)},inspect:function(){return o(this)},detach:function(){}}),F(I,H),K.extend(I,{rangeProperties:ja,RangeIterator:p,copyComparisonConstants:D,createPrototypeRange:F,inspect:o,toHtml:B,getRangeDocument:d,rangesEqual:function(a,b){return a.startContainer===b.startContainer&&a.startOffset===b.startOffset&&a.endContainer===b.endContainer&&a.endOffset===b.endOffset}}),a.DomRange=I}),H.createCoreModule("WrappedRange",["DomRange"],function(a,b){var c,d,e=a.dom,f=a.util,g=e.DomPosition,h=a.DomRange,i=e.getBody,j=e.getContentDocument,k=e.isCharacterDataNode;if(a.features.implementsDomRange&&!function(){function d(a){for(var b,c=m.length;c--;)b=m[c],a[b]=a.nativeRange[b];a.collapsed=a.startContainer===a.endContainer&&a.startOffset===a.endOffset}function g(a,b,c,d,e){var f=a.startContainer!==b||a.startOffset!=c,g=a.endContainer!==d||a.endOffset!=e,h=!a.equals(a.nativeRange);(f||g||h)&&(a.setEnd(d,e),a.setStart(b,c))}var k,l,m=h.rangeProperties;c=function(a){if(!a)throw b.createError("WrappedRange: Range must be specified");this.nativeRange=a,d(this)},h.createPrototypeRange(c,g),k=c.prototype,k.selectNode=function(a){this.nativeRange.selectNode(a),d(this)},k.cloneContents=function(){return this.nativeRange.cloneContents()},k.surroundContents=function(a){this.nativeRange.surroundContents(a),d(this)},k.collapse=function(a){this.nativeRange.collapse(a),d(this)},k.cloneRange=function(){return new c(this.nativeRange.cloneRange())},k.refresh=function(){d(this)},k.toString=function(){return this.nativeRange.toString()};var n=document.createTextNode("test");i(document).appendChild(n);var o=document.createRange();o.setStart(n,0),o.setEnd(n,0);try{o.setStart(n,1),k.setStart=function(a,b){this.nativeRange.setStart(a,b),d(this)},k.setEnd=function(a,b){this.nativeRange.setEnd(a,b),d(this)},l=function(a){return function(b){this.nativeRange[a](b),d(this)}}}catch(p){k.setStart=function(a,b){try{this.nativeRange.setStart(a,b)}catch(c){this.nativeRange.setEnd(a,b),this.nativeRange.setStart(a,b)}d(this)},k.setEnd=function(a,b){try{this.nativeRange.setEnd(a,b)}catch(c){this.nativeRange.setStart(a,b),this.nativeRange.setEnd(a,b)}d(this)},l=function(a,b){return function(c){try{this.nativeRange[a](c)}catch(e){this.nativeRange[b](c),this.nativeRange[a](c)}d(this)}}}k.setStartBefore=l("setStartBefore","setEndBefore"),k.setStartAfter=l("setStartAfter","setEndAfter"),k.setEndBefore=l("setEndBefore","setStartBefore"),k.setEndAfter=l("setEndAfter","setStartAfter"),k.selectNodeContents=function(a){this.setStartAndEnd(a,0,e.getNodeLength(a))},o.selectNodeContents(n),o.setEnd(n,3);var q=document.createRange();q.selectNodeContents(n),q.setEnd(n,4),q.setStart(n,2),-1==o.compareBoundaryPoints(o.START_TO_END,q)&&1==o.compareBoundaryPoints(o.END_TO_START,q)?k.compareBoundaryPoints=function(a,b){return b=b.nativeRange||b,a==b.START_TO_END?a=b.END_TO_START:a==b.END_TO_START&&(a=b.START_TO_END),this.nativeRange.compareBoundaryPoints(a,b)}:k.compareBoundaryPoints=function(a,b){return this.nativeRange.compareBoundaryPoints(a,b.nativeRange||b)};var r=document.createElement("div");r.innerHTML="123";var s=r.firstChild,t=i(document);t.appendChild(r),o.setStart(s,1),o.setEnd(s,2),o.deleteContents(),"13"==s.data&&(k.deleteContents=function(){this.nativeRange.deleteContents(),d(this)},k.extractContents=function(){var a=this.nativeRange.extractContents();return d(this),a}),t.removeChild(r),t=null,f.isHostMethod(o,"createContextualFragment")&&(k.createContextualFragment=function(a){return this.nativeRange.createContextualFragment(a)}),i(document).removeChild(n),k.getName=function(){return"WrappedRange"},a.WrappedRange=c,a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),a.createRange()}}(),a.features.implementsTextRange){var l=function(a){var b=a.parentElement(),c=a.duplicate();c.collapse(!0);var d=c.parentElement();c=a.duplicate(),c.collapse(!1);var f=c.parentElement(),g=d==f?d:e.getCommonAncestor(d,f);return g==b?g:e.getCommonAncestor(b,g)},m=function(a){return 0==a.compareEndPoints("StartToEnd",a)},n=function(a,b,c,d,f){var h=a.duplicate();h.collapse(c);var i=h.parentElement();if(e.isOrIsAncestorOf(b,i)||(i=b),
+!i.canHaveHTML){var j=new g(i.parentNode,e.getNodeIndex(i));return{boundaryPosition:j,nodeInfo:{nodeIndex:j.offset,containerElement:j.node}}}var l=e.getDocument(i).createElement("span");l.parentNode&&e.removeNode(l);for(var m,n,o,p,q,r=c?"StartToStart":"StartToEnd",s=f&&f.containerElement==i?f.nodeIndex:0,t=i.childNodes.length,u=t,v=u;;){if(v==t?i.appendChild(l):i.insertBefore(l,i.childNodes[v]),h.moveToElementText(l),m=h.compareEndPoints(r,a),0==m||s==u)break;if(-1==m){if(u==s+1)break;s=v}else u=u==s+1?s:v;v=Math.floor((s+u)/2),i.removeChild(l)}if(q=l.nextSibling,-1==m&&q&&k(q)){h.setEndPoint(c?"EndToStart":"EndToEnd",a);var w;if(/[\r\n]/.test(q.data)){var x=h.duplicate(),y=x.text.replace(/\r\n/g,"\r").length;for(w=x.moveStart("character",y);-1==(m=x.compareEndPoints("StartToEnd",x));)w++,x.moveStart("character",1)}else w=h.text.length;p=new g(q,w)}else n=(d||!c)&&l.previousSibling,o=(d||c)&&l.nextSibling,p=o&&k(o)?new g(o,0):n&&k(n)?new g(n,n.data.length):new g(i,e.getNodeIndex(l));return e.removeNode(l),{boundaryPosition:p,nodeInfo:{nodeIndex:v,containerElement:i}}},o=function(a,b){var c,d,f,g,h=a.offset,j=e.getDocument(a.node),l=i(j).createTextRange(),m=k(a.node);return m?(c=a.node,d=c.parentNode):(g=a.node.childNodes,c=h<g.length?g[h]:null,d=a.node),f=j.createElement("span"),f.innerHTML="&#feff;",c?d.insertBefore(f,c):d.appendChild(f),l.moveToElementText(f),l.collapse(!b),d.removeChild(f),m&&l[b?"moveStart":"moveEnd"]("character",h),l};d=function(a){this.textRange=a,this.refresh()},d.prototype=new h(document),d.prototype.refresh=function(){var a,b,c,d=l(this.textRange);m(this.textRange)?b=a=n(this.textRange,d,!0,!0).boundaryPosition:(c=n(this.textRange,d,!0,!1),a=c.boundaryPosition,b=n(this.textRange,d,!1,!1,c.nodeInfo).boundaryPosition),this.setStart(a.node,a.offset),this.setEnd(b.node,b.offset)},d.prototype.getName=function(){return"WrappedTextRange"},h.copyComparisonConstants(d);var p=function(a){if(a.collapsed)return o(new g(a.startContainer,a.startOffset),!0);var b=o(new g(a.startContainer,a.startOffset),!0),c=o(new g(a.endContainer,a.endOffset),!1),d=i(h.getRangeDocument(a)).createTextRange();return d.setEndPoint("StartToStart",b),d.setEndPoint("EndToEnd",c),d};if(d.rangeToTextRange=p,d.prototype.toTextRange=function(){return p(this)},a.WrappedTextRange=d,!a.features.implementsDomRange||a.config.preferTextRange){var q=function(a){return a("return this;")()}(Function);"undefined"==typeof q.Range&&(q.Range=d),a.createNativeRange=function(a){return a=j(a,b,"createNativeRange"),i(a).createTextRange()},a.WrappedRange=d}}a.createRange=function(c){return c=j(c,b,"createRange"),new a.WrappedRange(a.createNativeRange(c))},a.createRangyRange=function(a){return a=j(a,b,"createRangyRange"),new h(a)},f.createAliasForDeprecatedMethod(a,"createIframeRange","createRange"),f.createAliasForDeprecatedMethod(a,"createIframeRangyRange","createRangyRange"),a.addShimListener(function(b){var c=b.document;"undefined"==typeof c.createRange&&(c.createRange=function(){return a.createRange(c)}),c=b=null})}),H.createCoreModule("WrappedSelection",["DomRange","WrappedRange"],function(a,b){function c(a){return"string"==typeof a?/^backward(s)?$/i.test(a):!!a}function d(a,c){if(a){if(C.isWindow(a))return a;if(a instanceof r)return a.win;var d=C.getContentDocument(a,b,c);return C.getWindow(d)}return window}function e(a){return d(a,"getWinSelection").getSelection()}function f(a){return d(a,"getDocSelection").document.selection}function g(a){var b=!1;return a.anchorNode&&(b=1==C.comparePoints(a.anchorNode,a.anchorOffset,a.focusNode,a.focusOffset)),b}function h(a,b,c){var d=c?"end":"start",e=c?"start":"end";a.anchorNode=b[d+"Container"],a.anchorOffset=b[d+"Offset"],a.focusNode=b[e+"Container"],a.focusOffset=b[e+"Offset"]}function i(a){var b=a.nativeSelection;a.anchorNode=b.anchorNode,a.anchorOffset=b.anchorOffset,a.focusNode=b.focusNode,a.focusOffset=b.focusOffset}function j(a){a.anchorNode=a.focusNode=null,a.anchorOffset=a.focusOffset=0,a.rangeCount=0,a.isCollapsed=!0,a._ranges.length=0}function k(b){var c;return b instanceof F?(c=a.createNativeRange(b.getDocument()),c.setEnd(b.endContainer,b.endOffset),c.setStart(b.startContainer,b.startOffset)):b instanceof G?c=b.nativeRange:J.implementsDomRange&&b instanceof C.getWindow(b.startContainer).Range&&(c=b),c}function l(a){if(!a.length||1!=a[0].nodeType)return!1;for(var b=1,c=a.length;c>b;++b)if(!C.isAncestorOf(a[0],a[b]))return!1;return!0}function m(a){var c=a.getNodes();if(!l(c))throw b.createError("getSingleElementFromRange: range "+a.inspect()+" did not consist of a single element");return c[0]}function n(a){return!!a&&"undefined"!=typeof a.text}function o(a,b){var c=new G(b);a._ranges=[c],h(a,c,!1),a.rangeCount=1,a.isCollapsed=c.collapsed}function p(b){if(b._ranges.length=0,"None"==b.docSelection.type)j(b);else{var c=b.docSelection.createRange();if(n(c))o(b,c);else{b.rangeCount=c.length;for(var d,e=L(c.item(0)),f=0;f<b.rangeCount;++f)d=a.createRange(e),d.selectNode(c.item(f)),b._ranges.push(d);b.isCollapsed=1==b.rangeCount&&b._ranges[0].collapsed,h(b,b._ranges[b.rangeCount-1],!1)}}}function q(a,c){for(var d=a.docSelection.createRange(),e=m(c),f=L(d.item(0)),g=M(f).createControlRange(),h=0,i=d.length;i>h;++h)g.add(d.item(h));try{g.add(e)}catch(j){throw b.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}g.select(),p(a)}function r(a,b,c){this.nativeSelection=a,this.docSelection=b,this._ranges=[],this.win=c,this.refresh()}function s(a){a.win=a.anchorNode=a.focusNode=a._ranges=null,a.rangeCount=a.anchorOffset=a.focusOffset=0,a.detached=!0}function t(a,b){for(var c,d,e=ba.length;e--;)if(c=ba[e],d=c.selection,"deleteAll"==b)s(d);else if(c.win==a)return"delete"==b?(ba.splice(e,1),!0):d;return"deleteAll"==b&&(ba.length=0),null}function u(a,c){for(var d,e=L(c[0].startContainer),f=M(e).createControlRange(),g=0,h=c.length;h>g;++g){d=m(c[g]);try{f.add(d)}catch(i){throw b.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}f.select(),p(a)}function v(a,b){if(a.win.document!=L(b))throw new H("WRONG_DOCUMENT_ERR")}function w(b){return function(c,d){var e;this.rangeCount?(e=this.getRangeAt(0),e["set"+(b?"Start":"End")](c,d)):(e=a.createRange(this.win.document),e.setStartAndEnd(c,d)),this.setSingleRange(e,this.isBackward())}}function x(a){var b=[],c=new I(a.anchorNode,a.anchorOffset),d=new I(a.focusNode,a.focusOffset),e="function"==typeof a.getName?a.getName():"Selection";if("undefined"!=typeof a.rangeCount)for(var f=0,g=a.rangeCount;g>f;++f)b[f]=F.inspect(a.getRangeAt(f));return"["+e+"(Ranges: "+b.join(", ")+")(anchor: "+c.inspect()+", focus: "+d.inspect()+"]"}a.config.checkSelectionRanges=!0;var y,z,A="boolean",B="number",C=a.dom,D=a.util,E=D.isHostMethod,F=a.DomRange,G=a.WrappedRange,H=a.DOMException,I=C.DomPosition,J=a.features,K="Control",L=C.getDocument,M=C.getBody,N=F.rangesEqual,O=E(window,"getSelection"),P=D.isHostObject(document,"selection");J.implementsWinGetSelection=O,J.implementsDocSelection=P;var Q=P&&(!O||a.config.preferTextRange);if(Q)y=f,a.isSelectionValid=function(a){var b=d(a,"isSelectionValid").document,c=b.selection;return"None"!=c.type||L(c.createRange().parentElement())==b};else{if(!O)return b.fail("Neither document.selection or window.getSelection() detected."),!1;y=e,a.isSelectionValid=function(){return!0}}a.getNativeSelection=y;var R=y();if(!R)return b.fail("Native selection was null (possibly issue 138?)"),!1;var S=a.createNativeRange(document),T=M(document),U=D.areHostProperties(R,["anchorNode","focusNode","anchorOffset","focusOffset"]);J.selectionHasAnchorAndFocus=U;var V=E(R,"extend");J.selectionHasExtend=V;var W=typeof R.rangeCount==B;J.selectionHasRangeCount=W;var X=!1,Y=!0,Z=V?function(b,c){var d=F.getRangeDocument(c),e=a.createRange(d);e.collapseToPoint(c.endContainer,c.endOffset),b.addRange(k(e)),b.extend(c.startContainer,c.startOffset)}:null;D.areHostMethods(R,["addRange","getRangeAt","removeAllRanges"])&&typeof R.rangeCount==B&&J.implementsDomRange&&!function(){var b=window.getSelection();if(b){for(var c=b.rangeCount,d=c>1,e=[],f=g(b),h=0;c>h;++h)e[h]=b.getRangeAt(h);var i=C.createTestElement(document,"",!1),j=i.appendChild(document.createTextNode("   ")),k=document.createRange();if(k.setStart(j,1),k.collapse(!0),b.removeAllRanges(),b.addRange(k),Y=1==b.rangeCount,b.removeAllRanges(),!d){var l=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(l&&parseInt(l[1])>=36)X=!1;else{var m=k.cloneRange();k.setStart(j,0),m.setEnd(j,3),m.setStart(j,2),b.addRange(k),b.addRange(m),X=2==b.rangeCount}}for(C.removeNode(i),b.removeAllRanges(),h=0;c>h;++h)0==h&&f?Z?Z(b,e[h]):(a.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),b.addRange(e[h])):b.addRange(e[h])}}(),J.selectionSupportsMultipleRanges=X,J.collapsedNonEditableSelectionsSupported=Y;var $,_=!1;T&&E(T,"createControlRange")&&($=T.createControlRange(),D.areHostProperties($,["item","add"])&&(_=!0)),J.implementsControlRange=_,z=U?function(a){return a.anchorNode===a.focusNode&&a.anchorOffset===a.focusOffset}:function(a){return a.rangeCount?a.getRangeAt(a.rangeCount-1).collapsed:!1};var aa;E(R,"getRangeAt")?aa=function(a,b){try{return a.getRangeAt(b)}catch(c){return null}}:U&&(aa=function(b){var c=L(b.anchorNode),d=a.createRange(c);return d.setStartAndEnd(b.anchorNode,b.anchorOffset,b.focusNode,b.focusOffset),d.collapsed!==this.isCollapsed&&d.setStartAndEnd(b.focusNode,b.focusOffset,b.anchorNode,b.anchorOffset),d}),r.prototype=a.selectionPrototype;var ba=[],ca=function(a){if(a&&a instanceof r)return a.refresh(),a;a=d(a,"getNativeSelection");var b=t(a),c=y(a),e=P?f(a):null;return b?(b.nativeSelection=c,b.docSelection=e,b.refresh()):(b=new r(c,e,a),ba.push({win:a,selection:b})),b};a.getSelection=ca,D.createAliasForDeprecatedMethod(a,"getIframeSelection","getSelection");var da=r.prototype;if(!Q&&U&&D.areHostMethods(R,["removeAllRanges","addRange"])){da.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),j(this)};var ea=function(a,b){Z(a.nativeSelection,b),a.refresh()};W?da.addRange=function(b,d){if(_&&P&&this.docSelection.type==K)q(this,b);else if(c(d)&&V)ea(this,b);else{var e;X?e=this.rangeCount:(this.removeAllRanges(),e=0);var f=k(b).cloneRange();try{this.nativeSelection.addRange(f)}catch(g){}if(this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==e+1){if(a.config.checkSelectionRanges){var i=aa(this.nativeSelection,this.rangeCount-1);i&&!N(i,b)&&(b=new G(i))}this._ranges[this.rangeCount-1]=b,h(this,b,ha(this.nativeSelection)),this.isCollapsed=z(this)}else this.refresh()}}:da.addRange=function(a,b){c(b)&&V?ea(this,a):(this.nativeSelection.addRange(k(a)),this.refresh())},da.setRanges=function(a){if(_&&P&&a.length>1)u(this,a);else{this.removeAllRanges();for(var b=0,c=a.length;c>b;++b)this.addRange(a[b])}}}else{if(!(E(R,"empty")&&E(S,"select")&&_&&Q))return b.fail("No means of selecting a Range or TextRange was found"),!1;da.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var a;if(this.anchorNode)a=L(this.anchorNode);else if(this.docSelection.type==K){var b=this.docSelection.createRange();b.length&&(a=L(b.item(0)))}if(a){var c=M(a).createTextRange();c.select(),this.docSelection.empty()}}}catch(d){}j(this)},da.addRange=function(b){this.docSelection.type==K?q(this,b):(a.WrappedTextRange.rangeToTextRange(b).select(),this._ranges[0]=b,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,h(this,b,!1))},da.setRanges=function(a){this.removeAllRanges();var b=a.length;b>1?u(this,a):b&&this.addRange(a[0])}}da.getRangeAt=function(a){if(0>a||a>=this.rangeCount)throw new H("INDEX_SIZE_ERR");return this._ranges[a].cloneRange()};var fa;if(Q)fa=function(b){var c;a.isSelectionValid(b.win)?c=b.docSelection.createRange():(c=M(b.win.document).createTextRange(),c.collapse(!0)),b.docSelection.type==K?p(b):n(c)?o(b,c):j(b)};else if(E(R,"getRangeAt")&&typeof R.rangeCount==B)fa=function(b){if(_&&P&&b.docSelection.type==K)p(b);else if(b._ranges.length=b.rangeCount=b.nativeSelection.rangeCount,b.rangeCount){for(var c=0,d=b.rangeCount;d>c;++c)b._ranges[c]=new a.WrappedRange(b.nativeSelection.getRangeAt(c));h(b,b._ranges[b.rangeCount-1],ha(b.nativeSelection)),b.isCollapsed=z(b)}else j(b)};else{if(!U||typeof R.isCollapsed!=A||typeof S.collapsed!=A||!J.implementsDomRange)return b.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;fa=function(a){var b,c=a.nativeSelection;c.anchorNode?(b=aa(c,0),a._ranges=[b],a.rangeCount=1,i(a),a.isCollapsed=z(a)):j(a)}}da.refresh=function(a){var b=a?this._ranges.slice(0):null,c=this.anchorNode,d=this.anchorOffset;if(fa(this),a){var e=b.length;if(e!=this._ranges.length)return!0;if(this.anchorNode!=c||this.anchorOffset!=d)return!0;for(;e--;)if(!N(b[e],this._ranges[e]))return!0;return!1}};var ga=function(a,b){var c=a.getAllRanges();a.removeAllRanges();for(var d=0,e=c.length;e>d;++d)N(b,c[d])||a.addRange(c[d]);a.rangeCount||j(a)};_&&P?da.removeRange=function(a){if(this.docSelection.type==K){for(var b,c=this.docSelection.createRange(),d=m(a),e=L(c.item(0)),f=M(e).createControlRange(),g=!1,h=0,i=c.length;i>h;++h)b=c.item(h),b!==d||g?f.add(c.item(h)):g=!0;f.select(),p(this)}else ga(this,a)}:da.removeRange=function(a){ga(this,a)};var ha;!Q&&U&&J.implementsDomRange?(ha=g,da.isBackward=function(){return ha(this)}):ha=da.isBackward=function(){return!1},da.isBackwards=da.isBackward,da.toString=function(){for(var a=[],b=0,c=this.rangeCount;c>b;++b)a[b]=""+this._ranges[b];return a.join("")},da.collapse=function(b,c){v(this,b);var d=a.createRange(b);d.collapseToPoint(b,c),this.setSingleRange(d),this.isCollapsed=!0},da.collapseToStart=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[0];this.collapse(a.startContainer,a.startOffset)},da.collapseToEnd=function(){if(!this.rangeCount)throw new H("INVALID_STATE_ERR");var a=this._ranges[this.rangeCount-1];this.collapse(a.endContainer,a.endOffset)},da.selectAllChildren=function(b){v(this,b);var c=a.createRange(b);c.selectNodeContents(b),this.setSingleRange(c)},da.deleteFromDocument=function(){if(_&&P&&this.docSelection.type==K){for(var a,b=this.docSelection.createRange();b.length;)a=b.item(0),b.remove(a),C.removeNode(a);this.refresh()}else if(this.rangeCount){var c=this.getAllRanges();if(c.length){this.removeAllRanges();for(var d=0,e=c.length;e>d;++d)c[d].deleteContents();this.addRange(c[e-1])}}},da.eachRange=function(a,b){for(var c=0,d=this._ranges.length;d>c;++c)if(a(this.getRangeAt(c)))return b},da.getAllRanges=function(){var a=[];return this.eachRange(function(b){a.push(b)}),a},da.setSingleRange=function(a,b){this.removeAllRanges(),this.addRange(a,b)},da.callMethodOnEachRange=function(a,b){var c=[];return this.eachRange(function(d){c.push(d[a].apply(d,b||[]))}),c},da.setStart=w(!0),da.setEnd=w(!1),a.rangePrototype.select=function(a){ca(this.getDocument()).setSingleRange(this,a)},da.changeEachRange=function(a){var b=[],c=this.isBackward();this.eachRange(function(c){a(c),b.push(c)}),this.removeAllRanges(),c&&1==b.length?this.addRange(b[0],"backward"):this.setRanges(b)},da.containsNode=function(a,b){return this.eachRange(function(c){return c.containsNode(a,b)},!0)||!1},da.getBookmark=function(a){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[a])}},da.moveToBookmark=function(b){for(var c,d,e=[],f=0;c=b.rangeBookmarks[f++];)d=a.createRange(this.win),d.moveToBookmark(c),e.push(d);b.backward?this.setSingleRange(e[0],"backward"):this.setRanges(e)},da.saveRanges=function(){return{backward:this.isBackward(),ranges:this.callMethodOnEachRange("cloneRange")}},da.restoreRanges=function(a){this.removeAllRanges();for(var b,c=0;b=a.ranges[c];++c)this.addRange(b,a.backward&&0==c)},da.toHtml=function(){var a=[];return this.eachRange(function(b){a.push(F.toHtml(b))}),a.join("")},J.implementsTextRange&&(da.getNativeTextRange=function(){var c;if(c=this.docSelection){var d=c.createRange();if(n(d))return d;throw b.createError("getNativeTextRange: selection is a control selection")}if(this.rangeCount>0)return a.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw b.createError("getNativeTextRange: selection contains no range")}),da.getName=function(){return"WrappedSelection"},da.inspect=function(){return x(this)},da.detach=function(){t(this.win,"delete"),s(this)},r.detachAll=function(){t(null,"deleteAll")},r.inspect=x,r.isDirectionBackward=c,a.Selection=r,a.selectionPrototype=da,a.addShimListener(function(a){"undefined"==typeof a.getSelection&&(a.getSelection=function(){return ca(a)}),a=null})});var M=!1,N=function(a){M||(M=!0,!H.initialized&&H.config.autoInitialize&&l())};return F&&("complete"==document.readyState?N():(a(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",N,!1),J(window,"load",N))),H},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){return a.createModule("ClassApplier",["WrappedSelection"],function(a,b){function c(a,b){for(var c in a)if(a.hasOwnProperty(c)&&b(c,a[c])===!1)return!1;return!0}function d(a){return a.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function e(a,b){return!!a&&new RegExp("(?:^|\\s)"+b+"(?:\\s|$)").test(a)}function f(a,b){if("object"==typeof a.classList)return a.classList.contains(b);var c="string"==typeof a.className,d=c?a.className:a.getAttribute("class");return e(d,b)}function g(a,b){if("object"==typeof a.classList)a.classList.add(b);else{var c="string"==typeof a.className,d=c?a.className:a.getAttribute("class");d?e(d,b)||(d+=" "+b):d=b,c?a.className=d:a.setAttribute("class",d)}}function h(a){var b="string"==typeof a.className;return b?a.className:a.getAttribute("class")}function j(a){return a&&a.split(/\s+/).sort().join(" ")}function k(a){return j(h(a))}function l(a,b){return k(a)==k(b)}function m(a,b){for(var c=b.split(/\s+/),e=0,g=c.length;g>e;++e)if(!f(a,d(c[e])))return!1;return!0}function n(a){var b=a.parentNode;return b&&1==b.nodeType&&!/^(textarea|style|script|select|iframe)$/i.test(b.nodeName)}function o(a,b,c,d,e){var f=a.node,g=a.offset,h=f,i=g;f==d&&g>e&&++i,f!=b||g!=c&&g!=c+1||(h=d,i+=e-c),f==b&&g>c+1&&--i,a.node=h,a.offset=i}function p(a,b,c){a.node==b&&a.offset>c&&--a.offset}function q(a,b,c,d){-1==c&&(c=b.childNodes.length);var e=a.parentNode,f=L.getNodeIndex(a);P(d,function(a){o(a,e,f,b,c)}),b.childNodes.length==c?b.appendChild(a):b.insertBefore(a,b.childNodes[c])}function r(a,b){var c=a.parentNode,d=L.getNodeIndex(a);P(b,function(a){p(a,c,d)}),L.removeNode(a)}function s(a,b,c,d,e){for(var f,g=[];f=a.firstChild;)q(f,b,c++,e),g.push(f);return d&&r(a,e),g}function t(a,b){return s(a,a.parentNode,L.getNodeIndex(a),!0,b)}function u(a,b){var c=a.cloneRange();c.selectNodeContents(b);var d=c.intersection(a),e=d?d.toString():"";return""!=e}function v(a){for(var b,c=a.getNodes([3]),d=0;(b=c[d])&&!u(a,b);)++d;for(var e=c.length-1;(b=c[e])&&!u(a,b);)--e;return c.slice(d,e+1)}function w(a,b){if(a.attributes.length!=b.attributes.length)return!1;for(var c,d,e,f=0,g=a.attributes.length;g>f;++f)if(c=a.attributes[f],e=c.name,"class"!=e){if(d=b.attributes.getNamedItem(e),null===c!=(null===d))return!1;if(c.specified!=d.specified)return!1;if(c.specified&&c.nodeValue!==d.nodeValue)return!1}return!0}function x(a,b){for(var c,d=0,e=a.attributes.length;e>d;++d)if(c=a.attributes[d].name,(!b||!N(b,c))&&a.attributes[d].specified&&"class"!=c)return!0;return!1}function y(a){var b;return a&&1==a.nodeType&&((b=a.parentNode)&&9==b.nodeType&&"on"==b.designMode||U(a)&&!U(a.parentNode))}function z(a){return(U(a)||1!=a.nodeType&&U(a.parentNode))&&!y(a)}function A(a){return a&&1==a.nodeType&&!V.test(T(a,"display"))}function B(a){if(0==a.data.length)return!0;if(W.test(a.data))return!1;var b=T(a.parentNode,"whiteSpace");switch(b){case"pre":case"pre-wrap":case"-moz-pre-wrap":return!1;case"pre-line":if(/[\r\n]/.test(a.data))return!1}return A(a.previousSibling)||A(a.nextSibling)}function C(a){var b,c,d=[];for(b=0;c=a[b++];)d.push(new M(c.startContainer,c.startOffset),new M(c.endContainer,c.endOffset));return d}function D(a,b){for(var c,d,e,f=0,g=a.length;g>f;++f)c=a[f],d=b[2*f],e=b[2*f+1],c.setStartAndEnd(d.node,d.offset,e.node,e.offset)}function E(a,b){return L.isCharacterDataNode(a)?0==b?!!a.previousSibling:b==a.length?!!a.nextSibling:!0:b>0&&b<a.childNodes.length}function F(a,c,d,e){var f,g,h=0==d;if(L.isAncestorOf(c,a))return a;if(L.isCharacterDataNode(c)){var i=L.getNodeIndex(c);if(0==d)d=i;else{if(d!=c.length)throw b.createError("splitNodeAt() should not be called with offset in the middle of a data node ("+d+" in "+c.data);d=i+1}c=c.parentNode}if(E(c,d)){f=c.cloneNode(!1),g=c.parentNode,f.id&&f.removeAttribute("id");for(var j,k=0;j=c.childNodes[d];)q(j,f,k++,e);return q(f,g,L.getNodeIndex(c)+1,e),c==a?f:F(a,g,L.getNodeIndex(f),e)}if(a!=c){f=c.parentNode;var l=L.getNodeIndex(c);return h||l++,F(a,f,l,e)}return a}function G(a,b){return a.namespaceURI==b.namespaceURI&&a.tagName.toLowerCase()==b.tagName.toLowerCase()&&l(a,b)&&w(a,b)&&"inline"==T(a,"display")&&"inline"==T(b,"display")}function H(a){var b=a?"nextSibling":"previousSibling";return function(c,d){var e=c.parentNode,f=c[b];if(f){if(f&&3==f.nodeType)return f}else if(d&&(f=e[b],f&&1==f.nodeType&&G(e,f))){var g=f[a?"firstChild":"lastChild"];if(g&&3==g.nodeType)return g}return null}}function I(a){this.isElementMerge=1==a.nodeType,this.textNodes=[];var b=this.isElementMerge?a.lastChild:a;b&&(this.textNodes[0]=b)}function J(a,b,e){var f,g,h,i,k=this;k.cssClass=k.className=a;var l=null,m={};if("object"==typeof b&&null!==b){for("undefined"!=typeof b.elementTagName&&(b.elementTagName=b.elementTagName.toLowerCase()),e=b.tagNames,l=b.elementProperties,m=b.elementAttributes,g=0;i=Z[g++];)b.hasOwnProperty(i)&&(k[i]=b[i]);f=b.normalize}else f=b;k.normalize="undefined"==typeof f?!0:f,k.attrExceptions=[];var n=document.createElement(k.elementTagName);k.elementProperties=k.copyPropertiesToElement(l,n,!0),c(m,function(a,b){k.attrExceptions.push(a),m[a]=""+b}),k.elementAttributes=m,k.elementSortedClassName=k.elementProperties.hasOwnProperty("className")?j(k.elementProperties.className+" "+a):a,k.applyToAnyTagName=!1;var o=typeof e;if("string"==o)"*"==e?k.applyToAnyTagName=!0:k.tagNames=d(e.toLowerCase()).split(/\s*,\s*/);else if("object"==o&&"number"==typeof e.length)for(k.tagNames=[],g=0,h=e.length;h>g;++g)"*"==e[g]?k.applyToAnyTagName=!0:k.tagNames.push(e[g].toLowerCase());else k.tagNames=[k.elementTagName]}function K(a,b,c){return new J(a,b,c)}var L=a.dom,M=L.DomPosition,N=L.arrayContains,O=a.util,P=O.forEach,Q="span",R=O.isHostMethod(document,"createElementNS"),S=function(){function a(a,b,c){return b&&c?" ":""}return function(b,c){if("object"==typeof b.classList)b.classList.remove(c);else{var d="string"==typeof b.className,e=d?b.className:b.getAttribute("class");e=e.replace(new RegExp("(^|\\s)"+c+"(\\s|$)"),a),d?b.className=e:b.setAttribute("class",e)}}}(),T=L.getComputedStyleProperty,U=function(){var a=document.createElement("div");return"boolean"==typeof a.isContentEditable?function(a){return a&&1==a.nodeType&&a.isContentEditable}:function(a){return a&&1==a.nodeType&&"false"!=a.contentEditable?"true"==a.contentEditable||U(a.parentNode):!1}}(),V=/^inline(-block|-table)?$/i,W=/[^\r\n\t\f \u200B]/,X=H(!1),Y=H(!0);I.prototype={doMerge:function(a){var b=this.textNodes,c=b[0];if(b.length>1){var d,e=L.getNodeIndex(c),f=[],g=0;P(b,function(b,h){d=b.parentNode,h>0&&(d.removeChild(b),d.hasChildNodes()||L.removeNode(d),a&&P(a,function(a){a.node==b&&(a.node=c,a.offset+=g),a.node==d&&a.offset>e&&(--a.offset,a.offset==e+1&&h<len-1&&(a.node=c,a.offset=g))})),f[h]=b.data,g+=b.data.length}),c.data=f.join("")}return c.data},getLength:function(){for(var a=this.textNodes.length,b=0;a--;)b+=this.textNodes[a].length;return b},toString:function(){var a=[];return P(this.textNodes,function(b,c){a[c]="'"+b.data+"'"}),"[Merge("+a.join(",")+")]"}};var Z=["elementTagName","ignoreWhiteSpace","applyToEditableOnly","useExistingElements","removeEmptyElements","onElementCreate"],$={};J.prototype={elementTagName:Q,elementProperties:{},elementAttributes:{},ignoreWhiteSpace:!0,applyToEditableOnly:!1,useExistingElements:!0,removeEmptyElements:!0,onElementCreate:null,copyPropertiesToElement:function(a,b,c){var d,e,f,h,i,k,l={};for(var m in a)if(a.hasOwnProperty(m))if(h=a[m],i=b[m],"className"==m)g(b,h),g(b,this.className),b[m]=j(b[m]),c&&(l[m]=h);else if("style"==m){e=i,c&&(l[m]=f={});for(d in a[m])a[m].hasOwnProperty(d)&&(e[d]=h[d],c&&(f[d]=e[d]));this.attrExceptions.push(m)}else b[m]=h,c&&(l[m]=b[m],k=$.hasOwnProperty(m)?$[m]:m,this.attrExceptions.push(k));return c?l:""},copyAttributesToElement:function(a,b){for(var c in a)a.hasOwnProperty(c)&&!/^class(?:Name)?$/i.test(c)&&b.setAttribute(c,a[c])},appliesToElement:function(a){return N(this.tagNames,a.tagName.toLowerCase())},getEmptyElements:function(a){var b=this;return a.getNodes([1],function(a){return b.appliesToElement(a)&&!a.hasChildNodes()})},hasClass:function(a){return 1==a.nodeType&&(this.applyToAnyTagName||this.appliesToElement(a))&&f(a,this.className)},getSelfOrAncestorWithClass:function(a){for(;a;){if(this.hasClass(a))return a;a=a.parentNode}return null},isModifiable:function(a){return!this.applyToEditableOnly||z(a)},isIgnorableWhiteSpaceNode:function(a){return this.ignoreWhiteSpace&&a&&3==a.nodeType&&B(a)},postApply:function(a,b,c,d){var e,f,g=a[0],h=a[a.length-1],j=[],k=g,l=h,m=0,n=h.length;P(a,function(a){f=X(a,!d),f?(e||(e=new I(f),j.push(e)),e.textNodes.push(a),a===g&&(k=e.textNodes[0],m=k.length),a===h&&(l=e.textNodes[0],n=e.getLength())):e=null});var o=Y(h,!d);if(o&&(e||(e=new I(h),j.push(e)),e.textNodes.push(o)),j.length){for(i=0,len=j.length;i<len;++i)j[i].doMerge(c);b.setStartAndEnd(k,m,l,n)}},createContainer:function(a){var b,c=L.getDocument(a),d=R&&!L.isHtmlNamespace(a)&&(b=a.namespaceURI)?c.createElementNS(a.namespaceURI,this.elementTagName):c.createElement(this.elementTagName);return this.copyPropertiesToElement(this.elementProperties,d,!1),this.copyAttributesToElement(this.elementAttributes,d),g(d,this.className),this.onElementCreate&&this.onElementCreate(d,this),d},elementHasProperties:function(a,b){var d=this;return c(b,function(b,c){if("className"==b)return m(a,c);if("object"==typeof c){if(!d.elementHasProperties(a[b],c))return!1}else if(a[b]!==c)return!1})},elementHasAttributes:function(a,b){return c(b,function(b,c){return a.getAttribute(b)!==c?!1:void 0})},applyToTextNode:function(a,b){if(n(a)){var c=a.parentNode;if(1==c.childNodes.length&&this.useExistingElements&&this.appliesToElement(c)&&this.elementHasProperties(c,this.elementProperties)&&this.elementHasAttributes(c,this.elementAttributes))g(c,this.className);else{var d=a.parentNode,e=this.createContainer(d);d.insertBefore(e,a),e.appendChild(a)}}},isRemovable:function(a){return a.tagName.toLowerCase()==this.elementTagName&&k(a)==this.elementSortedClassName&&this.elementHasProperties(a,this.elementProperties)&&!x(a,this.attrExceptions)&&this.elementHasAttributes(a,this.elementAttributes)&&this.isModifiable(a)},isEmptyContainer:function(a){var b=a.childNodes.length;return 1==a.nodeType&&this.isRemovable(a)&&(0==b||1==b&&this.isEmptyContainer(a.firstChild))},removeEmptyContainers:function(a){var b=this,c=a.getNodes([1],function(a){return b.isEmptyContainer(a)}),d=[a],e=C(d);P(c,function(a){r(a,e)}),D(d,e)},undoToTextNode:function(a,b,c,d){if(!b.containsNode(c)){var e=b.cloneRange();e.selectNode(c),e.isPointInRange(b.endContainer,b.endOffset)&&(F(c,b.endContainer,b.endOffset,d),b.setEndAfter(c)),e.isPointInRange(b.startContainer,b.startOffset)&&(c=F(c,b.startContainer,b.startOffset,d))}this.isRemovable(c)?t(c,d):S(c,this.className)},splitAncestorWithClass:function(a,b,c){var d=this.getSelfOrAncestorWithClass(a);d&&F(d,a,b,c)},undoToAncestor:function(a,b){this.isRemovable(a)?t(a,b):S(a,this.className)},applyToRange:function(a,b){var c=this;b=b||[];var d=C(b||[]);a.splitBoundariesPreservingPositions(d),c.removeEmptyElements&&c.removeEmptyContainers(a);var e=v(a);if(e.length){P(e,function(a){c.isIgnorableWhiteSpaceNode(a)||c.getSelfOrAncestorWithClass(a)||!c.isModifiable(a)||c.applyToTextNode(a,d)});var f=e[e.length-1];a.setStartAndEnd(e[0],0,f,f.length),c.normalize&&c.postApply(e,a,d,!1),D(b,d)}var h=c.getEmptyElements(a);P(h,function(a){g(a,c.className)})},applyToRanges:function(a){for(var b=a.length;b--;)this.applyToRange(a[b],a);return a},applyToSelection:function(b){var c=a.getSelection(b);c.setRanges(this.applyToRanges(c.getAllRanges()))},undoToRange:function(a,b){var c=this;b=b||[];var d=C(b);a.splitBoundariesPreservingPositions(d),c.removeEmptyElements&&c.removeEmptyContainers(a,d);var e,f,g=v(a),h=g[g.length-1];if(g.length){c.splitAncestorWithClass(a.endContainer,a.endOffset,d),c.splitAncestorWithClass(a.startContainer,a.startOffset,d);for(var i=0,j=g.length;j>i;++i)e=g[i],f=c.getSelfOrAncestorWithClass(e),f&&c.isModifiable(e)&&c.undoToAncestor(f,d);a.setStartAndEnd(g[0],0,h,h.length),c.normalize&&c.postApply(g,a,d,!0),D(b,d)}var k=c.getEmptyElements(a);P(k,function(a){S(a,c.className)})},undoToRanges:function(a){for(var b=a.length;b--;)this.undoToRange(a[b],a);return a},undoToSelection:function(b){var c=a.getSelection(b),d=a.getSelection(b).getAllRanges();this.undoToRanges(d),c.setRanges(d)},isAppliedToRange:function(a){if(a.collapsed||""==a.toString())return!!this.getSelfOrAncestorWithClass(a.commonAncestorContainer);var b=a.getNodes([3]);if(b.length)for(var c,d=0;c=b[d++];)if(!this.isIgnorableWhiteSpaceNode(c)&&u(a,c)&&this.isModifiable(c)&&!this.getSelfOrAncestorWithClass(c))return!1;return!0},isAppliedToRanges:function(a){var b=a.length;if(0==b)return!1;for(;b--;)if(!this.isAppliedToRange(a[b]))return!1;return!0},isAppliedToSelection:function(b){var c=a.getSelection(b);return this.isAppliedToRanges(c.getAllRanges())},toggleRange:function(a){this.isAppliedToRange(a)?this.undoToRange(a):this.applyToRange(a)},toggleSelection:function(a){this.isAppliedToSelection(a)?this.undoToSelection(a):this.applyToSelection(a)},getElementsWithClassIntersectingRange:function(a){var b=[],c=this;return a.getNodes([3],function(a){var d=c.getSelfOrAncestorWithClass(a);d&&!N(b,d)&&b.push(d)}),b},detach:function(){}},J.util={hasClass:f,addClass:g,removeClass:S,getClass:h,hasSameClasses:l,hasAllClasses:m,replaceWithOwnChildren:t,elementsHaveSameNonClassAttributes:w,elementHasNonClassAttributes:x,splitNodeAt:F,isEditableElement:U,isEditingHost:y,isEditable:z},a.CssClassApplier=a.ClassApplier=J,a.createClassApplier=K,O.createAliasForDeprecatedMethod(a,"createCssClassApplier","createClassApplier",b)}),a},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){return a.createModule("Highlighter",["ClassApplier"],function(a,b){function c(a,b){return a.characterRange.start-b.characterRange.start}function d(a,b){return b?a.getElementById(b):m(a)}function e(a,b){this.type=a,this.converterCreator=b}function f(a,b){q[a]=new e(a,b)}function g(a){var b=q[a];if(b instanceof e)return b.create();throw new Error("Highlighter type '"+a+"' is not valid")}function h(a,b){this.start=a,this.end=b}function i(a,b,c,d,e,f){e?(this.id=e,p=Math.max(p,e+1)):this.id=p++,this.characterRange=b,this.doc=a,this.classApplier=c,this.converter=d,this.containerElementId=f||null,this.applied=!1}function j(a,b){b=b||"textContent",this.doc=a||document,this.classAppliers={},this.highlights=[],this.converter=g(b)}var k=a.dom,l=k.arrayContains,m=k.getBody,n=a.util.createOptions,o=a.util.forEach,p=1,q={};e.prototype.create=function(){var a=this.converterCreator();return a.type=this.type,a},a.registerHighlighterType=f,h.prototype={
+intersects:function(a){return this.start<a.end&&this.end>a.start},isContiguousWith:function(a){return this.start==a.end||this.end==a.start},union:function(a){return new h(Math.min(this.start,a.start),Math.max(this.end,a.end))},intersection:function(a){return new h(Math.max(this.start,a.start),Math.min(this.end,a.end))},getComplements:function(a){var b=[];if(this.start>=a.start){if(this.end<=a.end)return[];b.push(new h(a.end,this.end))}else b.push(new h(this.start,Math.min(this.end,a.start))),this.end>a.end&&b.push(new h(a.end,this.end));return b},toString:function(){return"[CharacterRange("+this.start+", "+this.end+")]"}},h.fromCharacterRange=function(a){return new h(a.start,a.end)};var r={rangeToCharacterRange:function(a,b){var c=a.getBookmark(b);return new h(c.start,c.end)},characterRangeToRange:function(b,c,d){var e=a.createRange(b);return e.moveToBookmark({start:c.start,end:c.end,containerNode:d}),e},serializeSelection:function(a,b){for(var c=a.getAllRanges(),d=c.length,e=[],f=1==d&&a.isBackward(),g=0,h=c.length;h>g;++g)e[g]={characterRange:this.rangeToCharacterRange(c[g],b),backward:f};return e},restoreSelection:function(a,b,c){a.removeAllRanges();for(var d,e,f,g=a.win.document,h=0,i=b.length;i>h;++h)e=b[h],f=e.characterRange,d=this.characterRangeToRange(g,e.characterRange,c),a.addRange(d,e.backward)}};f("textContent",function(){return r}),f("TextRange",function(){var b;return function(){if(!b){var c=a.modules.TextRange;if(!c)throw new Error("TextRange module is missing.");if(!c.supported)throw new Error("TextRange module is present but not supported.");b={rangeToCharacterRange:function(a,b){return h.fromCharacterRange(a.toCharacterRange(b))},characterRangeToRange:function(b,c,d){var e=a.createRange(b);return e.selectCharacters(d,c.start,c.end),e},serializeSelection:function(a,b){return a.saveCharacterRanges(b)},restoreSelection:function(a,b,c){a.restoreCharacterRanges(c,b)}}}return b}}()),i.prototype={getContainerElement:function(){return d(this.doc,this.containerElementId)},getRange:function(){return this.converter.characterRangeToRange(this.doc,this.characterRange,this.getContainerElement())},fromRange:function(a){this.characterRange=this.converter.rangeToCharacterRange(a,this.getContainerElement())},getText:function(){return this.getRange().toString()},containsElement:function(a){return this.getRange().containsNodeContents(a.firstChild)},unapply:function(){this.classApplier.undoToRange(this.getRange()),this.applied=!1},apply:function(){this.classApplier.applyToRange(this.getRange()),this.applied=!0},getHighlightElements:function(){return this.classApplier.getElementsWithClassIntersectingRange(this.getRange())},toString:function(){return"[Highlight(ID: "+this.id+", class: "+this.classApplier.className+", character range: "+this.characterRange.start+" - "+this.characterRange.end+")]"}},j.prototype={addClassApplier:function(a){this.classAppliers[a.className]=a},getHighlightForElement:function(a){for(var b=this.highlights,c=0,d=b.length;d>c;++c)if(b[c].containsElement(a))return b[c];return null},removeHighlights:function(a){for(var b,c=0,d=this.highlights.length;d>c;++c)b=this.highlights[c],l(a,b)&&(b.unapply(),this.highlights.splice(c--,1))},removeAllHighlights:function(){this.removeHighlights(this.highlights)},getIntersectingHighlights:function(a){var b=[],c=this.highlights;return o(a,function(a){o(c,function(c){a.intersectsRange(c.getRange())&&!l(b,c)&&b.push(c)})}),b},highlightCharacterRanges:function(b,c,d){var e,f,g,j=this.highlights,k=this.converter,l=this.doc,m=[],p=b?this.classAppliers[b]:null;d=n(d,{containerElementId:null,exclusive:!0});var q,r,s,t=d.containerElementId,u=d.exclusive;t&&(q=this.doc.getElementById(t),q&&(r=a.createRange(this.doc),r.selectNodeContents(q),s=new h(0,r.toString().length)));var v,w,x,y,z,A;for(e=0,f=c.length;f>e;++e)if(v=c[e],z=[],s&&(v=v.intersection(s)),v.start!=v.end){for(g=0;g<j.length;++g)x=!1,t==j[g].containerElementId&&(w=j[g].characterRange,y=p==j[g].classApplier,A=!y&&u,(w.intersects(v)||w.isContiguousWith(v))&&(y||A)&&(A&&o(w.getComplements(v),function(a){z.push(new i(l,a,j[g].classApplier,k,null,t))}),x=!0,y&&(v=w.union(v)))),x?(m.push(j[g]),j[g]=new i(l,w.union(v),p,k,null,t)):z.push(j[g]);p&&z.push(new i(l,v,p,k,null,t)),this.highlights=j=z}o(m,function(a){a.unapply()});var B=[];return o(j,function(a){a.applied||(a.apply(),B.push(a))}),B},highlightRanges:function(b,c,d){var e=[],f=this.converter;d=n(d,{containerElement:null,exclusive:!0});var g,h=d.containerElement,i=h?h.id:null;return h&&(g=a.createRange(h),g.selectNodeContents(h)),o(c,function(a){var b=h?g.intersection(a):a;e.push(f.rangeToCharacterRange(b,h||m(a.getDocument())))}),this.highlightCharacterRanges(b,e,{containerElementId:i,exclusive:d.exclusive})},highlightSelection:function(b,c){var e=this.converter,f=b?this.classAppliers[b]:!1;c=n(c,{containerElementId:null,selection:a.getSelection(this.doc),exclusive:!0});var g=c.containerElementId,i=c.exclusive,j=c.selection,k=j.win.document,l=d(k,g);if(!f&&b!==!1)throw new Error("No class applier found for class '"+b+"'");var m=e.serializeSelection(j,l),p=[];o(m,function(a){p.push(h.fromCharacterRange(a.characterRange))});var q=this.highlightCharacterRanges(b,p,{containerElementId:g,exclusive:i});return e.restoreSelection(j,m,l),q},unhighlightSelection:function(b){b=b||a.getSelection(this.doc);var c=this.getIntersectingHighlights(b.getAllRanges());return this.removeHighlights(c),b.removeAllRanges(),c},getHighlightsInSelection:function(b){return b=b||a.getSelection(this.doc),this.getIntersectingHighlights(b.getAllRanges())},selectionOverlapsHighlight:function(a){return this.getHighlightsInSelection(a).length>0},serialize:function(a){var b,d,e,f,h=this,i=h.highlights;return i.sort(c),a=n(a,{serializeHighlightText:!1,type:h.converter.type}),b=a.type,e=b!=h.converter.type,e&&(f=g(b)),d=["type:"+b],o(i,function(b){var c,g=b.characterRange;e&&(c=b.getContainerElement(),g=f.rangeToCharacterRange(h.converter.characterRangeToRange(h.doc,g,c),c));var i=[g.start,g.end,b.id,b.classApplier.className,b.containerElementId];a.serializeHighlightText&&i.push(b.getText()),d.push(i.join("$"))}),d.join("|")},deserialize:function(a){var b,c,e,f=a.split("|"),j=[],k=f[0],l=!1;if(!k||!(b=/^type:(\w+)$/.exec(k)))throw new Error("Serialized highlights are invalid.");c=b[1],c!=this.converter.type&&(e=g(c),l=!0),f.shift();for(var m,n,o,p,q,r,s=f.length;s-- >0;){if(r=f[s].split("$"),o=new h(+r[0],+r[1]),p=r[4]||null,l&&(q=d(this.doc,p),o=this.converter.rangeToCharacterRange(e.characterRangeToRange(this.doc,o,q),q)),m=this.classAppliers[r[3]],!m)throw new Error("No class applier found for class '"+r[3]+"'");n=new i(this.doc,o,m,this.converter,parseInt(r[2]),p),n.apply(),j.push(n)}this.highlights=j}},a.Highlighter=j,a.createHighlighter=function(a,b){return new j(a,b)}}),a},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){return a.createModule("SaveRestore",["WrappedRange"],function(a,b){function c(a,b){return(b||document).getElementById(a)}function d(a,b){var c,d="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),e=o.getDocument(a.startContainer),f=a.cloneRange();return f.collapse(b),c=e.createElement("span"),c.id=d,c.style.lineHeight="0",c.style.display="none",c.className="rangySelectionBoundary",c.appendChild(e.createTextNode(r)),f.insertNode(c),c}function e(a,d,e,f){var g=c(e,a);g?(d[f?"setStartBefore":"setEndBefore"](g),p(g)):b.warn("Marker element has been removed. Cannot restore selection.")}function f(a,b){return b.compareBoundaryPoints(a.START_TO_START,a)}function g(b,c){var e,f,g=a.DomRange.getRangeDocument(b),h=b.toString(),i=q(c);return b.collapsed?(f=d(b,!1),{document:g,markerId:f.id,collapsed:!0}):(f=d(b,!1),e=d(b,!0),{document:g,startMarkerId:e.id,endMarkerId:f.id,collapsed:!1,backward:i,toString:function(){return"original text: '"+h+"', new text: '"+b.toString()+"'"}})}function h(d,f){var g=d.document;"undefined"==typeof f&&(f=!0);var h=a.createRange(g);if(d.collapsed){var i=c(d.markerId,g);if(i){i.style.display="inline";var j=i.previousSibling;j&&3==j.nodeType?(p(i),h.collapseToPoint(j,j.length)):(h.collapseBefore(i),p(i))}else b.warn("Marker element has been removed. Cannot restore selection.")}else e(g,h,d.startMarkerId,!0),e(g,h,d.endMarkerId,!1);return f&&h.normalizeBoundaries(),h}function i(b,d){var e,h,i=[],j=q(d);b=b.slice(0),b.sort(f);for(var k=0,l=b.length;l>k;++k)i[k]=g(b[k],j);for(k=l-1;k>=0;--k)e=b[k],h=a.DomRange.getRangeDocument(e),e.collapsed?e.collapseAfter(c(i[k].markerId,h)):(e.setEndBefore(c(i[k].endMarkerId,h)),e.setStartAfter(c(i[k].startMarkerId,h)));return i}function j(c){if(!a.isSelectionValid(c))return b.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var d=a.getSelection(c),e=d.getAllRanges(),f=1==e.length&&d.isBackward(),g=i(e,f);return f?d.setSingleRange(e[0],f):d.setRanges(e),{win:c,rangeInfos:g,restored:!1}}function k(a){for(var b=[],c=a.length,d=c-1;d>=0;d--)b[d]=h(a[d],!0);return b}function l(b,c){if(!b.restored){var d=b.rangeInfos,e=a.getSelection(b.win),f=k(d),g=d.length;1==g&&c&&a.features.selectionHasExtend&&d[0].backward?(e.removeAllRanges(),e.addRange(f[0],!0)):e.setRanges(f),b.restored=!0}}function m(a,b){var d=c(b,a);d&&p(d)}function n(a){for(var b,c=a.rangeInfos,d=0,e=c.length;e>d;++d)b=c[d],b.collapsed?m(a.doc,b.markerId):(m(a.doc,b.startMarkerId),m(a.doc,b.endMarkerId))}var o=a.dom,p=o.removeNode,q=a.Selection.isDirectionBackward,r="\ufeff";a.util.extend(a,{saveRange:g,restoreRange:h,saveRanges:i,restoreRanges:k,saveSelection:j,restoreSelection:l,removeMarkerElement:m,removeMarkers:n})}),a},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){return a.createModule("Serializer",["WrappedSelection"],function(a,b){function c(a){return a.replace(/</g,"&lt;").replace(/>/g,"&gt;")}function d(a,b){b=b||[];var e=a.nodeType,f=a.childNodes,g=f.length,h=[e,a.nodeName,g].join(":"),i="",j="";switch(e){case 3:i=c(a.nodeValue);break;case 8:i="<!--"+c(a.nodeValue)+"-->";break;default:i="<"+h+">",j="</>"}i&&b.push(i);for(var k=0;g>k;++k)d(f[k],b);return j&&b.push(j),b}function e(a){var b=d(a).join("");return s(b).toString(16)}function f(a,b,c){var d=[],e=a;for(c=c||t.getDocument(a).documentElement;e&&e!=c;)d.push(t.getNodeIndex(e,!0)),e=e.parentNode;return d.join("/")+":"+b}function g(a,c,d){c||(c=(d||document).documentElement);for(var e,f=a.split(":"),g=c,h=f[0]?f[0].split("/"):[],i=h.length;i--;){if(e=parseInt(h[i],10),!(e<g.childNodes.length))throw b.createError("deserializePosition() failed: node "+t.inspectNode(g)+" has no child with index "+e+", "+i);g=g.childNodes[e]}return new t.DomPosition(g,parseInt(f[1],10))}function h(c,d,g){if(g=g||a.DomRange.getRangeDocument(c).documentElement,!t.isOrIsAncestorOf(g,c.commonAncestorContainer))throw b.createError("serializeRange(): range "+c.inspect()+" is not wholly contained within specified root node "+t.inspectNode(g));var h=f(c.startContainer,c.startOffset,g)+","+f(c.endContainer,c.endOffset,g);return d||(h+="{"+e(g)+"}"),h}function i(c,d,f){d?f=f||t.getDocument(d):(f=f||document,d=f.documentElement);var h=u.exec(c),i=h[4];if(i){var j=e(d);if(i!==j)throw b.createError("deserializeRange(): checksums of serialized range root node ("+i+") and target root node ("+j+") do not match")}var k=g(h[1],d,f),l=g(h[2],d,f),m=a.createRange(f);return m.setStartAndEnd(k.node,k.offset,l.node,l.offset),m}function j(a,b,c){b||(b=(c||document).documentElement);var d=u.exec(a),f=d[3];return!f||f===e(b)}function k(b,c,d){b=a.getSelection(b);for(var e=b.getAllRanges(),f=[],g=0,i=e.length;i>g;++g)f[g]=h(e[g],c,d);return f.join("|")}function l(b,c,d){c?d=d||t.getWindow(c):(d=d||window,c=d.document.documentElement);for(var e=b.split("|"),f=a.getSelection(d),g=[],h=0,j=e.length;j>h;++h)g[h]=i(e[h],c,d.document);return f.setRanges(g),f}function m(a,b,c){var d;b?d=c?c.document:t.getDocument(b):(c=c||window,b=c.document.documentElement);for(var e=a.split("|"),f=0,g=e.length;g>f;++f)if(!j(e[f],b,d))return!1;return!0}function n(a){for(var b,c,d=a.split(/[;,]/),e=0,f=d.length;f>e;++e)if(b=d[e].split("="),b[0].replace(/^\s+/,"")==v&&(c=b[1]))return decodeURIComponent(c.replace(/\s+$/,""));return null}function o(a){a=a||window;var b=n(a.document.cookie);b&&l(b,a.doc)}function p(b,c){b=b||window,c="object"==typeof c?c:{};var d=c.expires?";expires="+c.expires.toUTCString():"",e=c.path?";path="+c.path:"",f=c.domain?";domain="+c.domain:"",g=c.secure?";secure":"",h=k(a.getSelection(b));b.document.cookie=encodeURIComponent(v)+"="+encodeURIComponent(h)+d+e+f+g}var q="undefined",r=a.util;typeof encodeURIComponent!=q&&typeof decodeURIComponent!=q||b.fail("encodeURIComponent and/or decodeURIComponent method is missing");var s=function(){function a(a){for(var b,c=[],d=0,e=a.length;e>d;++d)b=a.charCodeAt(d),128>b?c.push(b):2048>b?c.push(b>>6|192,63&b|128):c.push(b>>12|224,b>>6&63|128,63&b|128);return c}function b(){for(var a,b,c=[],d=0;256>d;++d){for(b=d,a=8;a--;)1==(1&b)?b=b>>>1^3988292384:b>>>=1;c[d]=b>>>0}return c}function c(){return d||(d=b()),d}var d=null;return function(b){for(var d,e=a(b),f=-1,g=c(),h=0,i=e.length;i>h;++h)d=255&(f^e[h]),f=f>>>8^g[d];return(-1^f)>>>0}}(),t=a.dom,u=/^([^,]+),([^,\{]+)(\{([^}]+)\})?$/,v="rangySerializedSelection";r.extend(a,{serializePosition:f,deserializePosition:g,serializeRange:h,deserializeRange:i,canDeserializeRange:j,serializeSelection:k,deserializeSelection:l,canDeserializeSelection:m,restoreSelectionFromCookie:o,saveSelectionCookie:p,getElementChecksum:e,nodeToInfoString:d}),r.crc32=s}),a},this),function(a,b){"function"==typeof define&&define.amd?define(["./rangy-core"],a):"undefined"!=typeof module&&"object"==typeof exports?module.exports=a(require("rangy")):a(b.rangy)}(function(a){return a.createModule("TextRange",["WrappedSelection"],function(a,b){function c(a,b){function c(a,b,c){h.push({start:a,end:b,isWord:c})}for(var d,e,f,g=a.join(""),h=[],i=0;d=b.wordRegex.exec(g);){if(e=d.index,f=e+d[0].length,e>i&&c(i,e,!1),b.includeTrailingSpace)for(;$.test(a[f]);)++f;c(e,f,!0),i=f}return i<a.length&&c(i,a.length,!1),h}function d(a,b){for(var c=a.slice(b.start,b.end),d={isWord:b.isWord,chars:c,toString:function(){return c.join("")}},e=0,f=c.length;f>e;++e)c[e].token=d;return d}function e(a,b,c){for(var e,f=c(a,b),g=[],h=0;e=f[h++];)g.push(d(a,e));return g}function f(a){var b=a||"",c="string"==typeof b?b.split(""):b;return c.sort(function(a,b){return a.charCodeAt(0)-b.charCodeAt(0)}),c.join("").replace(/(.)\1+/g,"$1")}function g(a){var b,c;return a?(b=a.language||_,c={},U(c,ia[b]||ia[_]),U(c,a),c):ia[_]}function h(a,b){var c=V(a,b);return b.hasOwnProperty("wordOptions")&&(c.wordOptions=g(c.wordOptions)),b.hasOwnProperty("characterOptions")&&(c.characterOptions=V(c.characterOptions,ga)),c}function i(a,b){var c=na(a,"display",b),d=a.tagName.toLowerCase();return"block"==c&&fa&&oa.hasOwnProperty(d)?oa[d]:c}function j(a){for(var b=o(a),c=0,d=b.length;d>c;++c)if(1==b[c].nodeType&&"none"==i(b[c]))return!0;return!1}function k(a){var b;return 3==a.nodeType&&(b=a.parentNode)&&"hidden"==na(b,"visibility")}function l(a){return a&&(1==a.nodeType&&!/^(inline(-block|-table)?|none)$/.test(i(a))||9==a.nodeType||11==a.nodeType)}function m(a){return S.isCharacterDataNode(a)||!/^(area|base|basefont|br|col|frame|hr|img|input|isindex|link|meta|param)$/i.test(a.nodeName)}function n(a){for(var b=[];a.parentNode;)b.unshift(a.parentNode),a=a.parentNode;return b}function o(a){return n(a).concat([a])}function p(a){for(;a&&!a.nextSibling;)a=a.parentNode;return a?a.nextSibling:null}function q(a,b){return!b&&a.hasChildNodes()?a.firstChild:p(a)}function r(a){var b=a.previousSibling;if(b){for(a=b;a.hasChildNodes();)a=a.lastChild;return a}var c=a.parentNode;return c&&1==c.nodeType?c:null}function s(a){if(!a||3!=a.nodeType)return!1;var b=a.data;if(""===b)return!0;var c=a.parentNode;if(!c||1!=c.nodeType)return!1;var d=na(a.parentNode,"whiteSpace");return/^[\t\n\r ]+$/.test(b)&&/^(normal|nowrap)$/.test(d)||/^[\t\r ]+$/.test(b)&&"pre-line"==d}function t(a){if(""===a.data)return!0;if(!s(a))return!1;var b=a.parentNode;return b?!!j(a):!0}function u(a){var b=a.nodeType;return 7==b||8==b||j(a)||/^(script|style)$/i.test(a.nodeName)||k(a)||t(a)}function v(a,b){var c=a.nodeType;return 7==c||8==c||1==c&&"none"==i(a,b)}function w(){this.store={}}function x(a,b,c){return function(d){var e=this.cache;if(e.hasOwnProperty(a))return pa++,e[a];qa++;var f=b.call(this,c?this[c]:this,d);return e[a]=f,f}}function y(a,b){this.node=a,this.session=b,this.cache=new w,this.positions=new w}function z(a,b){this.offset=b,this.nodeWrapper=a,this.node=a.node,this.session=a.session,this.cache=new w}function A(){return"[Position("+S.inspectNode(this.node)+":"+this.offset+")]"}function B(){return D(),Da=new Ea}function C(){return Da||B()}function D(){Da&&Da.detach(),Da=null}function E(a,c,d,e){function f(){var a=null;return c?(a=h,i||(h=h.previousVisible(),i=!h||d&&h.equals(d))):i||(a=h=h.nextVisible(),i=!h||d&&h.equals(d)),i&&(h=null),a}d&&(c?u(d.node)&&(d=a.previousVisible()):u(d.node)&&(d=d.nextVisible()));var g,h=a,i=!1,j=!1;return{next:function(){if(j)return j=!1,g;for(var a,b;a=f();)if(b=a.getCharacter(e))return g=a,a;return null},rewind:function(){if(!g)throw b.createError("createCharacterIterator: cannot rewind. Only one position can be rewound.");j=!0},dispose:function(){a=d=null}}}function F(a,b,c){function d(a){for(var b,c,d=[],e=a?f:g,h=!1,i=!1;b=e.next();){if(c=b.character,Z.test(c))i&&(i=!1,h=!0);else{if(h){e.rewind();break}i=!0}d.push(b)}return d}var f=E(a,!1,null,b),g=E(a,!0,null,b),h=c.tokenizer,i=d(!0),j=d(!1).reverse(),k=e(j.concat(i),c,h),l=i.length?k.slice(Fa(k,i[0].token)):[],m=j.length?k.slice(0,Fa(k,j.pop().token)+1):[];return{nextEndToken:function(){for(var a,b;1==l.length&&!(a=l[0]).isWord&&(b=d(!0)).length>0;)l=e(a.chars.concat(b),c,h);return l.shift()},previousStartToken:function(){for(var a,b;1==m.length&&!(a=m[0]).isWord&&(b=d(!1)).length>0;)m=e(b.reverse().concat(a.chars),c,h);return m.pop()},dispose:function(){f.dispose(),g.dispose(),l=m=null}}}function G(a,b,c,d,e){var f,g,h,i,j=0,k=a,l=Math.abs(c);if(0!==c){var m=0>c;switch(b){case Q:for(g=E(a,m,null,d);(f=g.next())&&l>j;)++j,k=f;h=f,g.dispose();break;case R:for(var n=F(a,d,e),o=m?n.previousStartToken:n.nextEndToken;(i=o())&&l>j;)i.isWord&&(++j,k=m?i.chars[0]:i.chars[i.chars.length-1]);break;default:throw new Error("movePositionBy: unit '"+b+"' not implemented")}m?(k=k.previousVisible(),j=-j):k&&k.isLeadingSpace&&!k.isTrailingSpace&&(b==R&&(g=E(a,!1,null,d),h=g.next(),g.dispose()),h&&(k=h.previousVisible()))}return{position:k,unitsMoved:j}}function H(a,b,c,d){var e=a.getRangeBoundaryPosition(b,!0),f=a.getRangeBoundaryPosition(b,!1),g=d?f:e,h=d?e:f;return E(g,!!d,h,c)}function I(a,b,c){for(var d,e=[],f=H(a,b,c);d=f.next();)e.push(d);return f.dispose(),e}function J(b,c,d){var e=a.createRange(b.node);return e.setStartAndEnd(b.node,b.offset,c.node,c.offset),!e.expand("word",{wordOptions:d})}function K(a,b,c,d,e){function f(a,b){var c=p[a].previousVisible(),d=p[b-1],f=!e.wholeWordsOnly||J(c,d,e.wordOptions);return{startPos:c,endPos:d,valid:f}}for(var g,h,i,j,k,l,m=aa(e.direction),n=E(a,m,a.session.getRangeBoundaryPosition(d,m),e.characterOptions),o="",p=[],q=null;g=n.next();)if(h=g.character,c||e.caseSensitive||(h=h.toLowerCase()),m?(p.unshift(g),o=h+o):(p.push(g),o+=h),c){if(k=b.exec(o))if(i=k.index,j=i+k[0].length,l){if(!m&&j<o.length||m&&i>0){q=f(i,j);break}}else l=!0}else if(-1!=(i=o.indexOf(b))){q=f(i,i+b.length);break}return l&&(q=f(i,j)),n.dispose(),q}function L(a){return function(){var b=!!Da,c=C(),d=[c].concat(T.toArray(arguments)),e=a.apply(this,d);return b||D(),e}}function M(a,b){return L(function(c,d,e,f){typeof e==P&&(e=d,d=Q),f=h(f,ka);var g=a;b&&(g=e>=0,this.collapse(!g));var i=G(c.getRangeBoundaryPosition(this,g),d,e,f.characterOptions,f.wordOptions),j=i.position;return this[g?"setStart":"setEnd"](j.node,j.offset),i.unitsMoved})}function N(a){return L(function(b,c){c=V(c,ga);for(var d,e=H(b,this,c,!a),f=0;(d=e.next())&&Z.test(d.character);)++f;e.dispose();var g=f>0;return g&&this[a?"moveStart":"moveEnd"]("character",a?f:-f,{characterOptions:c}),g})}function O(a){return L(function(b,c){var d=!1;return this.changeEachRange(function(b){d=b[a](c)||d}),d})}var P="undefined",Q="character",R="word",S=a.dom,T=a.util,U=T.extend,V=T.createOptions,W=S.getBody,X=/^[ \t\f\r\n]+$/,Y=/^[ \t\f\r]+$/,Z=/^[\t-\r \u0085\u00A0\u1680\u180E\u2000-\u200B\u2028\u2029\u202F\u205F\u3000]+$/,$=/^[\t \u00A0\u1680\u180E\u2000-\u200B\u202F\u205F\u3000]+$/,_="en",aa=a.Selection.isDirectionBackward,ba=!1,ca=!1,da=!1,ea=!0;!function(){var b=S.createTestElement(document,"<p>1 </p><p></p>",!0),c=b.firstChild,d=a.getSelection();d.collapse(c.lastChild,2),d.setStart(c.firstChild,0),ba=1==(""+d).length,b.innerHTML="1 <br />",d.collapse(b,2),d.setStart(b.firstChild,0),ca=1==(""+d).length,b.innerHTML="1 <p>1</p>",d.collapse(b,2),d.setStart(b.firstChild,0),da=1==(""+d).length,S.removeNode(b),d.removeAllRanges()}();var fa,ga={includeBlockContentTrailingSpace:!0,includeSpaceBeforeBr:!0,includeSpaceBeforeBlock:!0,includePreLineTrailingSpace:!0,ignoreCharacters:""},ha={includeBlockContentTrailingSpace:!ea,includeSpaceBeforeBr:!ca,includeSpaceBeforeBlock:!da,includePreLineTrailingSpace:!0},ia={en:{wordRegex:/[a-z0-9]+('[a-z0-9]+)*/gi,includeTrailingSpace:!1,tokenizer:c}},ja={caseSensitive:!1,withinRange:null,wholeWordsOnly:!1,wrap:!1,direction:"forward",wordOptions:null,characterOptions:null},ka={wordOptions:null,characterOptions:null},la={wordOptions:null,characterOptions:null,trim:!1,trimStart:!0,trimEnd:!0},ma={wordOptions:null,characterOptions:null,direction:"forward"},na=S.getComputedStyleProperty;!function(){var a=document.createElement("table"),b=W(document);b.appendChild(a),fa="block"==na(a,"display"),b.removeChild(a)}();var oa={table:"table",caption:"table-caption",colgroup:"table-column-group",col:"table-column",thead:"table-header-group",tbody:"table-row-group",tfoot:"table-footer-group",tr:"table-row",td:"table-cell",th:"table-cell"};w.prototype={get:function(a){return this.store.hasOwnProperty(a)?this.store[a]:null},set:function(a,b){return this.store[a]=b}};var pa=0,qa=0,ra={getPosition:function(a){var b=this.positions;return b.get(a)||b.set(a,new z(this,a))},toString:function(){return"[NodeWrapper("+S.inspectNode(this.node)+")]"}};y.prototype=ra;var sa="EMPTY",ta="NON_SPACE",ua="UNCOLLAPSIBLE_SPACE",va="COLLAPSIBLE_SPACE",wa="TRAILING_SPACE_BEFORE_BLOCK",xa="TRAILING_SPACE_IN_BLOCK",ya="TRAILING_SPACE_BEFORE_BR",za="PRE_LINE_TRAILING_SPACE_BEFORE_LINE_BREAK",Aa="TRAILING_LINE_BREAK_AFTER_BR",Ba="INCLUDED_TRAILING_LINE_BREAK_AFTER_BR";U(ra,{isCharacterDataNode:x("isCharacterDataNode",S.isCharacterDataNode,"node"),getNodeIndex:x("nodeIndex",S.getNodeIndex,"node"),getLength:x("nodeLength",S.getNodeLength,"node"),containsPositions:x("containsPositions",m,"node"),isWhitespace:x("isWhitespace",s,"node"),isCollapsedWhitespace:x("isCollapsedWhitespace",t,"node"),getComputedDisplay:x("computedDisplay",i,"node"),isCollapsed:x("collapsed",u,"node"),isIgnored:x("ignored",v,"node"),next:x("nextPos",q,"node"),previous:x("previous",r,"node"),getTextNodeInfo:x("textNodeInfo",function(a){var b=null,c=!1,d=na(a.parentNode,"whiteSpace"),e="pre-line"==d;return e?(b=Y,c=!0):"normal"!=d&&"nowrap"!=d||(b=X,c=!0),{node:a,text:a.data,spaceRegex:b,collapseSpaces:c,preLine:e}},"node"),hasInnerText:x("hasInnerText",function(a,b){for(var c=this.session,d=c.getPosition(a.parentNode,this.getNodeIndex()+1),e=c.getPosition(a,0),f=b?d:e,g=b?e:d;f!==g;){if(f.prepopulateChar(),f.isDefinitelyNonEmpty())return!0;f=b?f.previousVisible():f.nextVisible()}return!1},"node"),isRenderedBlock:x("isRenderedBlock",function(a){for(var b=a.getElementsByTagName("br"),c=0,d=b.length;d>c;++c)if(!u(b[c]))return!0;return this.hasInnerText()},"node"),getTrailingSpace:x("trailingSpace",function(a){if("br"==a.tagName.toLowerCase())return"";switch(this.getComputedDisplay()){case"inline":for(var b=a.lastChild;b;){if(!v(b))return 1==b.nodeType?this.session.getNodeWrapper(b).getTrailingSpace():"";b=b.previousSibling}break;case"inline-block":case"inline-table":case"none":case"table-column":case"table-column-group":break;case"table-cell":return"      ";default:return this.isRenderedBlock(!0)?"\n":""}return""},"node"),getLeadingSpace:x("leadingSpace",function(a){switch(this.getComputedDisplay()){case"inline":case"inline-block":case"inline-table":case"none":case"table-column":case"table-column-group":case"table-cell":break;default:return this.isRenderedBlock(!1)?"\n":""}return""},"node")});var Ca={character:"",characterType:sa,isBr:!1,prepopulateChar:function(){var a=this;if(!a.prepopulatedChar){var b=a.node,c=a.offset,d="",e=sa,f=!1;if(c>0)if(3==b.nodeType){var g=b.data,h=g.charAt(c-1),i=a.nodeWrapper.getTextNodeInfo(),j=i.spaceRegex;i.collapseSpaces?j.test(h)?c>1&&j.test(g.charAt(c-2))||(i.preLine&&"\n"===g.charAt(c)?(d=" ",e=za):(d=" ",e=va)):(d=h,e=ta,f=!0):(d=h,e=ua,f=!0)}else{var k=b.childNodes[c-1];if(k&&1==k.nodeType&&!u(k)&&("br"==k.tagName.toLowerCase()?(d="\n",a.isBr=!0,e=va,f=!1):a.checkForTrailingSpace=!0),!d){var l=b.childNodes[c];l&&1==l.nodeType&&!u(l)&&(a.checkForLeadingSpace=!0)}}a.prepopulatedChar=!0,a.character=d,a.characterType=e,a.isCharInvariant=f}},isDefinitelyNonEmpty:function(){var a=this.characterType;return a==ta||a==ua},resolveLeadingAndTrailingSpaces:function(){if(this.prepopulatedChar||this.prepopulateChar(),this.checkForTrailingSpace){var a=this.session.getNodeWrapper(this.node.childNodes[this.offset-1]).getTrailingSpace();a&&(this.isTrailingSpace=!0,this.character=a,this.characterType=va),this.checkForTrailingSpace=!1}if(this.checkForLeadingSpace){var b=this.session.getNodeWrapper(this.node.childNodes[this.offset]).getLeadingSpace();b&&(this.isLeadingSpace=!0,this.character=b,this.characterType=va),this.checkForLeadingSpace=!1}},getPrecedingUncollapsedPosition:function(a){for(var b,c=this;c=c.previousVisible();)if(b=c.getCharacter(a),""!==b)return c;return null},getCharacter:function(a){function b(){return n||(k=o.getPrecedingUncollapsedPosition(a),n=!0),k}this.resolveLeadingAndTrailingSpaces();var c,d=this.character,e=f(a.ignoreCharacters),g=""!==d&&e.indexOf(d)>-1;if(this.isCharInvariant)return c=g?"":d;var h=["character",a.includeSpaceBeforeBr,a.includeBlockContentTrailingSpace,a.includePreLineTrailingSpace,e].join("_"),i=this.cache.get(h);if(null!==i)return i;var j,k,l="",m=this.characterType==va,n=!1,o=this;return m&&(this.type==Ba?l="\n":" "==d&&(!b()||k.isTrailingSpace||"\n"==k.character||" "==k.character&&k.characterType==va)||("\n"==d&&this.isLeadingSpace?b()&&"\n"!=k.character&&(l="\n"):(j=this.nextUncollapsed(),j&&(j.isBr?this.type=ya:j.isTrailingSpace&&"\n"==j.character?this.type=xa:j.isLeadingSpace&&"\n"==j.character&&(this.type=wa),"\n"==j.character?(this.type!=ya||a.includeSpaceBeforeBr)&&(this.type!=wa||a.includeSpaceBeforeBlock)&&(this.type==xa&&j.isTrailingSpace&&!a.includeBlockContentTrailingSpace||(this.type!=za||j.type!=ta||a.includePreLineTrailingSpace)&&("\n"==d?j.isTrailingSpace?this.isTrailingSpace||this.isBr&&(j.type=Aa,b()&&k.isLeadingSpace&&!k.isTrailingSpace&&"\n"==k.character?j.character="":j.type=Ba):l="\n":" "==d&&(l=" "))):l=d)))),e.indexOf(l)>-1&&(l=""),this.cache.set(h,l),l},equals:function(a){return!!a&&this.node===a.node&&this.offset===a.offset},inspect:A,toString:function(){return this.character}};z.prototype=Ca,U(Ca,{next:x("nextPos",function(a){var b=a.nodeWrapper,c=a.node,d=a.offset,e=b.session;if(!c)return null;var f,g,h;return d==b.getLength()?(f=c.parentNode,g=f?b.getNodeIndex()+1:0):b.isCharacterDataNode()?(f=c,g=d+1):(h=c.childNodes[d],e.getNodeWrapper(h).containsPositions()?(f=h,g=0):(f=c,g=d+1)),f?e.getPosition(f,g):null}),previous:x("previous",function(a){var b,c,d,e=a.nodeWrapper,f=a.node,g=a.offset,h=e.session;return 0==g?(b=f.parentNode,c=b?e.getNodeIndex():0):e.isCharacterDataNode()?(b=f,c=g-1):(d=f.childNodes[g-1],h.getNodeWrapper(d).containsPositions()?(b=d,c=S.getNodeLength(d)):(b=f,c=g-1)),b?h.getPosition(b,c):null}),nextVisible:x("nextVisible",function(a){var b=a.next();if(!b)return null;var c=b.nodeWrapper,d=b.node,e=b;return c.isCollapsed()&&(e=c.session.getPosition(d.parentNode,c.getNodeIndex()+1)),e}),nextUncollapsed:x("nextUncollapsed",function(a){for(var b=a;b=b.nextVisible();)if(b.resolveLeadingAndTrailingSpaces(),""!==b.character)return b;return null}),previousVisible:x("previousVisible",function(a){var b=a.previous();if(!b)return null;var c=b.nodeWrapper,d=b.node,e=b;return c.isCollapsed()&&(e=c.session.getPosition(d.parentNode,c.getNodeIndex())),e})});var Da=null,Ea=function(){function a(a){var b=new w;return{get:function(c){var d=b.get(c[a]);if(d)for(var e,f=0;e=d[f++];)if(e.node===c)return e;return null},set:function(c){var d=c.node[a],e=b.get(d)||b.set(d,[]);e.push(c)}}}function b(){this.initCaches()}var c=T.isHostProperty(document.documentElement,"uniqueID");return b.prototype={initCaches:function(){this.elementCache=c?function(){var a=new w;return{get:function(b){return a.get(b.uniqueID)},set:function(b){a.set(b.node.uniqueID,b)}}}():a("tagName"),this.textNodeCache=a("data"),this.otherNodeCache=a("nodeName")},getNodeWrapper:function(a){var b;switch(a.nodeType){case 1:b=this.elementCache;break;case 3:b=this.textNodeCache;break;default:b=this.otherNodeCache}var c=b.get(a);return c||(c=new y(a,this),b.set(c)),c},getPosition:function(a,b){return this.getNodeWrapper(a).getPosition(b)},getRangeBoundaryPosition:function(a,b){var c=b?"start":"end";return this.getPosition(a[c+"Container"],a[c+"Offset"])},detach:function(){this.elementCache=this.textNodeCache=this.otherNodeCache=null}},b}();U(S,{nextNode:q,previousNode:r});var Fa=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;++c)if(a[c]===b)return c;return-1};U(a.rangePrototype,{moveStart:M(!0,!1),moveEnd:M(!1,!1),move:M(!0,!0),trimStart:N(!0),trimEnd:N(!1),trim:L(function(a,b){var c=this.trimStart(b),d=this.trimEnd(b);return c||d}),expand:L(function(a,b,c){var d=!1;c=h(c,la);var e=c.characterOptions;if(b||(b=Q),b==R){var f,g,i=c.wordOptions,j=a.getRangeBoundaryPosition(this,!0),k=a.getRangeBoundaryPosition(this,!1),l=F(j,e,i),m=l.nextEndToken(),n=m.chars[0].previousVisible();if(this.collapsed)f=m;else{var o=F(k,e,i);f=o.previousStartToken()}return g=f.chars[f.chars.length-1],n.equals(j)||(this.setStart(n.node,n.offset),d=!0),g&&!g.equals(k)&&(this.setEnd(g.node,g.offset),d=!0),c.trim&&(c.trimStart&&(d=this.trimStart(e)||d),c.trimEnd&&(d=this.trimEnd(e)||d)),d}return this.moveEnd(Q,1,c)}),text:L(function(a,b){return this.collapsed?"":I(a,this,V(b,ga)).join("")}),selectCharacters:L(function(a,b,c,d,e){var f={characterOptions:e};b||(b=W(this.getDocument())),this.selectNodeContents(b),this.collapse(!0),this.moveStart("character",c,f),this.collapse(!0),this.moveEnd("character",d-c,f)}),toCharacterRange:L(function(a,b,c){b||(b=W(this.getDocument()));var d,e,f=b.parentNode,g=S.getNodeIndex(b),h=-1==S.comparePoints(this.startContainer,this.endContainer,f,g),i=this.cloneRange();return h?(i.setStartAndEnd(this.startContainer,this.startOffset,f,g),d=-i.text(c).length):(i.setStartAndEnd(f,g,this.startContainer,this.startOffset),d=i.text(c).length),e=d+this.text(c).length,{start:d,end:e}}),findText:L(function(b,c,d){d=h(d,ja),d.wholeWordsOnly&&(d.wordOptions.includeTrailingSpace=!1);var e=aa(d.direction),f=d.withinRange;f||(f=a.createRange(),f.selectNodeContents(this.getDocument()));var g=c,i=!1;"string"==typeof g?d.caseSensitive||(g=g.toLowerCase()):i=!0;var j=b.getRangeBoundaryPosition(this,!e),k=f.comparePoint(j.node,j.offset);-1===k?j=b.getRangeBoundaryPosition(f,!0):1===k&&(j=b.getRangeBoundaryPosition(f,!1));
+for(var l,m=j,n=!1;;)if(l=K(m,g,i,f,d)){if(l.valid)return this.setStartAndEnd(l.startPos.node,l.startPos.offset,l.endPos.node,l.endPos.offset),!0;m=e?l.startPos:l.endPos}else{if(!d.wrap||n)return!1;f=f.cloneRange(),m=b.getRangeBoundaryPosition(f,!e),f.setBoundary(j.node,j.offset,e),n=!0}}),pasteHtml:function(a){if(this.deleteContents(),a){var b=this.createContextualFragment(a),c=b.lastChild;this.insertNode(b),this.collapseAfter(c)}}}),U(a.selectionPrototype,{expand:L(function(a,b,c){this.changeEachRange(function(a){a.expand(b,c)})}),move:L(function(a,b,c,d){var e=0;if(this.focusNode){this.collapse(this.focusNode,this.focusOffset);var f=this.getRangeAt(0);d||(d={}),d.characterOptions=V(d.characterOptions,ha),e=f.move(b,c,d),this.setSingleRange(f)}return e}),trimStart:O("trimStart"),trimEnd:O("trimEnd"),trim:O("trim"),selectCharacters:L(function(b,c,d,e,f,g){var h=a.createRange(c);h.selectCharacters(c,d,e,g),this.setSingleRange(h,f)}),saveCharacterRanges:L(function(a,b,c){for(var d=this.getAllRanges(),e=d.length,f=[],g=1==e&&this.isBackward(),h=0,i=d.length;i>h;++h)f[h]={characterRange:d[h].toCharacterRange(b,c),backward:g,characterOptions:c};return f}),restoreCharacterRanges:L(function(b,c,d){this.removeAllRanges();for(var e,f,g,h=0,i=d.length;i>h;++h)f=d[h],g=f.characterRange,e=a.createRange(c),e.selectCharacters(c,g.start,g.end,f.characterOptions),this.addRange(e,f.backward)}),text:L(function(a,b){for(var c=[],d=0,e=this.rangeCount;e>d;++d)c[d]=this.getRangeAt(d).text(b);return c.join("")})}),a.innerText=function(b,c){var d=a.createRange(b);d.selectNodeContents(b);var e=d.text(c);return e},a.createWordIterator=function(a,b,c){var d=C();c=h(c,ma);var e=d.getPosition(a,b),f=F(e,c.characterOptions,c.wordOptions),g=aa(c.direction);return{next:function(){return g?f.previousStartToken():f.nextEndToken()},dispose:function(){f.dispose(),this.next=function(){}}}},a.noMutation=function(a){var b=C();a(b),D()},a.noMutation.createEntryPointFunction=L,a.textRange={isBlockNode:l,isCollapsedWhitespaceNode:t,createPosition:L(function(a,b,c){return a.getPosition(b,c)})}}),a},this),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="textAngular"),function(){"use strict";var a={ie:function(){for(var a,b=3,c=document.createElement("div"),d=c.getElementsByTagName("i");c.innerHTML="<!--[if gt IE "+ ++b+"]><i></i><![endif]-->",d[0];);return b>4?b:a}(),webkit:/AppleWebKit\/([\d.]+)/i.test(navigator.userAgent)},b=!1;a.webkit&&(document.addEventListener("mousedown",function(a){var c=a||window.event,d=c.target;if(b&&null!==d){for(var e=!1,f=d;null!==f&&"html"!==f.tagName.toLowerCase()&&!e;)e="true"===f.contentEditable,f=f.parentNode;e||(document.getElementById("textAngular-editableFix-010203040506070809").setSelectionRange(0,0),d.focus(),d.select&&d.select())}b=!1},!1),angular.element(document).ready(function(){angular.element(document.body).append(angular.element('<input id="textAngular-editableFix-010203040506070809" class="ta-hidden-input" aria-hidden="true" unselectable="on" tabIndex="-1">'))}));var c=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video)$/i,d=/^(ul|li|ol)$/i,e=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video|li)$/i;String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")});var f,g,h,i,j,k;if(a.ie>8||void 0===a.ie){for(var l=document.styleSheets,m=0;m<l.length;m++)if((0===l[m].media.length||l[m].media.mediaText.match(/(all|screen)/gi))&&l[m].href&&l[m].href.match(/textangular\.(min\.|)css/gi)){f=l[m];break}f||(f=function(){var b=document.createElement("style");return a.webkit&&b.appendChild(document.createTextNode("")),document.getElementsByTagName("head")[0].appendChild(b),b.sheet}()),g=function(a,b){return i(f,a,b)},i=function(a,b,c){var d,e;return a.cssRules?d=Math.max(a.cssRules.length-1,0):a.rules&&(d=Math.max(a.rules.length-1,0)),a.insertRule?a.insertRule(b+"{"+c+"}",d):a.addRule(b,c,d),f.rules?e=f.rules[d]:f.cssRules&&(e=f.cssRules[d]),e},k=function(a,b){var c,d;for(c=0;c<b.length;c++)if(b[c].cssText===a.cssText){d=c;break}return d},h=function(a){j(f,a)},j=function(a,b){var c=a.cssRules||a.rules;if(c&&0!==c.length){var d=k(b,c);a.removeRule?a.removeRule(d):a.deleteRule(d)}}}angular.module("textAngular.factories",[]).factory("taBrowserTag",[function(){return function(b){return b?""===b?void 0===a.ie?"div":a.ie<=8?"P":"p":a.ie<=8?b.toUpperCase():b:a.ie<=8?"P":"p"}}]).factory("taApplyCustomRenderers",["taCustomRenderers","taDOM",function(a,b){return function(c){var d=angular.element("<div></div>");return d[0].innerHTML=c,angular.forEach(a,function(a){var c=[];a.selector&&""!==a.selector?c=d.find(a.selector):a.customAttribute&&""!==a.customAttribute&&(c=b.getByAttribute(d,a.customAttribute)),angular.forEach(c,function(b){b=angular.element(b),a.selector&&""!==a.selector&&a.customAttribute&&""!==a.customAttribute?void 0!==b.attr(a.customAttribute)&&a.renderLogic(b):a.renderLogic(b)})}),d[0].innerHTML}}]).factory("taFixChrome",function(){var a=function(a){if(!a||!angular.isString(a)||a.length<=0)return a;for(var b,c,d,e=/<([^>\/]+?)style=("([^"]+)"|'([^']+)')([^>]*)>/gi,f="",g=0;b=e.exec(a);)c=b[3]||b[4],c&&c.match(/line-height: 1.[0-9]{3,12};|color: inherit; line-height: 1.1;/i)&&(c=c.replace(/( |)font-family: inherit;|( |)line-height: 1.[0-9]{3,12};|( |)color: inherit;/gi,""),d="<"+b[1].trim(),c.trim().length>0&&(d+=" style="+b[2].substring(0,1)+c+b[2].substring(0,1)),d+=b[5].trim()+">",f+=a.substring(g,b.index)+d,g=b.index+b[0].length);return f+=a.substring(g),g>0?f.replace(/<span\s?>(.*?)<\/span>(<br(\/|)>|)/gi,"$1"):a};return a}).factory("taSanitize",["$sanitize",function(a){function b(a,b){for(var c,d=0,e=0,f=/<[^>]*>/gi;c=f.exec(a);)if(e=c.index,"/"===c[0].substr(1,1)){if(0===d)break;d--}else d++;return b+a.substring(0,e)+angular.element(b)[0].outerHTML.substring(b.length)+a.substring(e)}function c(a){if(!a||!angular.isString(a)||a.length<=0)return a;for(var d,f,g,h,i,k,l=/<([^>\/]+?)style=("([^"]+)"|'([^']+)')([^>]*)>/gi,m="",n="",o=0;f=l.exec(a);){h=f[3]||f[4];var p=new RegExp(j,"i");if(angular.isString(h)&&p.test(h)){i="";for(var q=new RegExp(j,"ig");g=q.exec(h);)for(d=0;d<e.length;d++)g[2*d+2]&&(i+="<"+e[d].tag+">");k=c(a.substring(o,f.index)),n+=m.length>0?b(k,m):k,h=h.replace(new RegExp(j,"ig"),""),n+="<"+f[1].trim(),h.length>0&&(n+=' style="'+h+'"'),n+=f[5]+">",o=f.index+f[0].length,m=i}}return n+=m.length>0?b(a.substring(o),m):a.substring(o)}function d(a){if(!a||!angular.isString(a)||a.length<=0)return a;for(var b,c=/<([^>\/]+?)align=("([^"]+)"|'([^']+)')([^>]*)>/gi,d="",e=0;b=c.exec(a);){d+=a.substring(e,b.index),e=b.index+b[0].length;var f="<"+b[1]+b[5];/style=("([^"]+)"|'([^']+)')/gi.test(f)?f=f.replace(/style=("([^"]+)"|'([^']+)')/i,'style="$2$3 text-align:'+(b[3]||b[4])+';"'):f+=' style="text-align:'+(b[3]||b[4])+';"',f+=">",d+=f}return d+a.substring(e)}for(var e=[{property:"font-weight",values:["bold"],tag:"b"},{property:"font-style",values:["italic"],tag:"i"}],f=[],g=0;g<e.length;g++){for(var h="("+e[g].property+":\\s*(",i=0;i<e[g].values.length;i++)i>0&&(h+="|"),h+=e[g].values[i];h+=");)",f.push(h)}var j="("+f.join("|")+")";return function(b,e,f){if(!f)try{b=c(b)}catch(g){}b=d(b);var h;try{h=a(b),f&&(h=b)}catch(g){h=e||""}var i,j=h.match(/(<pre[^>]*>.*?<\/pre[^>]*>)/gi),k=h.replace(/(&#(9|10);)*/gi,""),l=/<pre[^>]*>.*?<\/pre[^>]*>/gi,m=0,n=0;for(h="";null!==(i=l.exec(k))&&m<j.length;)h+=k.substring(n,i.index)+j[m],n=i.index+i[0].length,m++;return h+k.substring(n)}}]).factory("taToolExecuteAction",["$q","$log",function(a,b){return function(c){void 0!==c&&(this.$editor=function(){return c});var d,e=a.defer(),f=e.promise,g=this.$editor();try{d=this.action(e,g.startAction()),f["finally"](function(){g.endAction.call(g)})}catch(h){b.error(h)}(d||void 0===d)&&e.resolve()}}]),angular.module("textAngular.DOM",["textAngular.factories"]).factory("taExecCommand",["taSelection","taBrowserTag","$document",function(a,b,e){var f=function(b,c){var d,e,f=b.find("li");for(e=f.length-1;e>=0;e--)d=angular.element("<"+c+">"+f[e].innerHTML+"</"+c+">"),b.after(d);b.remove(),a.setSelectionToElementEnd(d[0])},g=function(b){/(<br(|\/)>)$/i.test(b.innerHTML.trim())?a.setSelectionBeforeElement(angular.element(b).find("br")[0]):a.setSelectionToElementEnd(b)},h=function(a,b){var c=angular.element("<"+b+">"+a[0].innerHTML+"</"+b+">");a.after(c),a.remove(),g(c.find("li")[0])},i=function(a,c,d){for(var e="",f=0;f<a.length;f++)e+="<"+b("li")+">"+a[f].innerHTML+"</"+b("li")+">";var h=angular.element("<"+d+">"+e+"</"+d+">");c.after(h),c.remove(),g(h.find("li")[0])};return function(g,j){return g=b(g),function(k,l,m,n){var o,p,q,r,s,t,u,v=angular.element("<"+g+">");try{u=a.getSelectionElement()}catch(w){}var x=angular.element(u);if(void 0!==u){var y=u.tagName.toLowerCase();if("insertorderedlist"===k.toLowerCase()||"insertunorderedlist"===k.toLowerCase()){var z=b("insertorderedlist"===k.toLowerCase()?"ol":"ul");if(y===z)return f(x,g);if("li"===y&&x.parent()[0].tagName.toLowerCase()===z&&1===x.parent().children().length)return f(x.parent(),g);if("li"===y&&x.parent()[0].tagName.toLowerCase()!==z&&1===x.parent().children().length)return h(x.parent(),z);if(y.match(c)&&!x.hasClass("ta-bind")){if("ol"===y||"ul"===y)return h(x,z);var A=!1;return angular.forEach(x.children(),function(a){a.tagName.match(c)&&(A=!0)}),A?i(x.children(),x,z):i([angular.element("<div>"+u.innerHTML+"</div>")[0]],x,z)}if(y.match(c)){if(r=a.getOnlySelectedElements(),0===r.length)p=angular.element("<"+z+"><li>"+u.innerHTML+"</li></"+z+">"),x.html(""),x.append(p);else{if(1===r.length&&("ol"===r[0].tagName.toLowerCase()||"ul"===r[0].tagName.toLowerCase()))return r[0].tagName.toLowerCase()===z?f(angular.element(r[0]),g):h(angular.element(r[0]),z);q="";var B=[];for(o=0;o<r.length;o++)if(3!==r[o].nodeType){var C=angular.element(r[o]);if("li"===r[o].tagName.toLowerCase())continue;q+="ol"===r[o].tagName.toLowerCase()||"ul"===r[o].tagName.toLowerCase()?C[0].innerHTML:"span"!==r[o].tagName.toLowerCase()||"ol"!==r[o].childNodes[0].tagName.toLowerCase()&&"ul"!==r[o].childNodes[0].tagName.toLowerCase()?"<"+b("li")+">"+C[0].innerHTML+"</"+b("li")+">":C[0].childNodes[0].innerHTML,B.unshift(C)}p=angular.element("<"+z+">"+q+"</"+z+">"),B.pop().replaceWith(p),angular.forEach(B,function(a){a.remove()})}return void a.setSelectionToElementEnd(p[0])}}else{if("formatblock"===k.toLowerCase()){for(t=m.toLowerCase().replace(/[<>]/gi,""),"default"===t.trim()&&(t=g,m="<"+g+">"),p="li"===y?x.parent():x;!p[0].tagName||!p[0].tagName.match(c)&&!p.parent().attr("contenteditable");)p=p.parent(),y=(p[0].tagName||"").toLowerCase();if(y===t){r=p.children();var D=!1;for(o=0;o<r.length;o++)D=D||r[o].tagName.match(c);D?(p.after(r),s=p.next(),p.remove(),p=s):(v.append(p[0].childNodes),p.after(v),p.remove(),p=v)}else if(p.parent()[0].tagName.toLowerCase()!==t||p.parent().hasClass("ta-bind"))if(y.match(d))p.wrap(m);else{for(r=a.getOnlySelectedElements(),0===r.length&&(r=[p[0]]),o=0;o<r.length;o++)if(3===r[o].nodeType||!r[o].tagName.match(c))for(;3===r[o].nodeType||!r[o].tagName||!r[o].tagName.match(c);)r[o]=r[o].parentNode;if(angular.element(r[0]).hasClass("ta-bind"))p=angular.element(m),p[0].innerHTML=r[0].innerHTML,r[0].innerHTML=p[0].outerHTML;else if("blockquote"===t){for(q="",o=0;o<r.length;o++)q+=r[o].outerHTML;for(p=angular.element(m),p[0].innerHTML=q,r[0].parentNode.insertBefore(p[0],r[0]),o=r.length-1;o>=0;o--)r[o].parentNode&&r[o].parentNode.removeChild(r[o])}else for(o=0;o<r.length;o++)p=angular.element(m),p[0].innerHTML=r[o].innerHTML,r[o].parentNode.insertBefore(p[0],r[o]),r[o].parentNode.removeChild(r[o])}else{var E=p.parent(),F=E.contents();for(o=0;o<F.length;o++)E.parent().hasClass("ta-bind")&&3===F[o].nodeType&&(v=angular.element("<"+g+">"),v[0].innerHTML=F[o].outerHTML,F[o]=v[0]),E.parent()[0].insertBefore(F[o],E[0]);E.remove()}return void a.setSelectionToElementEnd(p[0])}if("createlink"===k.toLowerCase()){var G='<a href="'+m+'" target="'+(n.a.target?n.a.target:"")+'">',H="</a>",I=a.getSelection();if(I.collapsed)a.insertHtml(G+m+H,j);else if(rangy.getSelection().getRangeAt(0).canSurroundContents()){var J=angular.element(G+H)[0];rangy.getSelection().getRangeAt(0).surroundContents(J)}return}if("inserthtml"===k.toLowerCase())return void a.insertHtml(m,j)}}try{e[0].execCommand(k,l,m)}catch(w){}}}}]).service("taSelection",["$window","$document","taDOM",function(a,b,d){var f=b[0],g=a.rangy,h=function(a,b){return a.tagName&&a.tagName.match(/^br$/i)&&0===b&&!a.previousSibling?{element:a.parentNode,offset:0}:{element:a,offset:b}},i={getSelection:function(){var a=g.getSelection().getRangeAt(0),b=a.commonAncestorContainer,c={start:h(a.startContainer,a.startOffset),end:h(a.endContainer,a.endOffset),collapsed:a.collapsed};return b=3===b.nodeType?b.parentNode:b,b.parentNode===c.start.element||b.parentNode===c.end.element?c.container=b.parentNode:c.container=b,c},getOnlySelectedElements:function(){var a=g.getSelection().getRangeAt(0),b=a.commonAncestorContainer;return b=3===b.nodeType?b.parentNode:b,a.getNodes([1],function(a){return a.parentNode===b})},getSelectionElement:function(){return i.getSelection().container},setSelection:function(a,b,c){var d=g.createRange();d.setStart(a,b),d.setEnd(a,c),g.getSelection().setSingleRange(d)},setSelectionBeforeElement:function(a){var b=g.createRange();b.selectNode(a),b.collapse(!0),g.getSelection().setSingleRange(b)},setSelectionAfterElement:function(a){var b=g.createRange();b.selectNode(a),b.collapse(!1),g.getSelection().setSingleRange(b)},setSelectionToElementStart:function(a){var b=g.createRange();b.selectNodeContents(a),b.collapse(!0),g.getSelection().setSingleRange(b)},setSelectionToElementEnd:function(a){var b=g.createRange();b.selectNodeContents(a),b.collapse(!1),a.childNodes&&a.childNodes[a.childNodes.length-1]&&"br"===a.childNodes[a.childNodes.length-1].nodeName&&(b.startOffset=b.endOffset=b.startOffset-1),g.getSelection().setSingleRange(b)},insertHtml:function(a,b){var h,j,k,l,m,n,o,p=angular.element("<div>"+a+"</div>"),q=g.getSelection().getRangeAt(0),r=f.createDocumentFragment(),s=p[0].childNodes,t=!0;if(s.length>0){for(l=[],k=0;k<s.length;k++)"p"===s[k].nodeName.toLowerCase()&&""===s[k].innerHTML.trim()||3===s[k].nodeType&&""===s[k].nodeValue.trim()||(t=t&&!c.test(s[k].nodeName),l.push(s[k]));for(var u=0;u<l.length;u++)n=r.appendChild(l[u]);!t&&q.collapsed&&/^(|<br(|\/)>)$/i.test(q.startContainer.innerHTML)&&q.selectNode(q.startContainer)}else t=!0,n=r=f.createTextNode(a);if(t)q.deleteContents();else if(q.collapsed&&q.startContainer!==b)if(q.startContainer.innerHTML&&q.startContainer.innerHTML.match(/^<[^>]*>$/i))h=q.startContainer,1===q.startOffset?(q.setStartAfter(h),q.setEndAfter(h)):(q.setStartBefore(h),q.setEndBefore(h));else{if(3===q.startContainer.nodeType&&q.startContainer.parentNode!==b)for(h=q.startContainer.parentNode,j=h.cloneNode(),d.splitNodes(h.childNodes,h,j,q.startContainer,q.startOffset);!e.test(h.nodeName);){angular.element(h).after(j),h=h.parentNode;var v=j;j=h.cloneNode(),d.splitNodes(h.childNodes,h,j,v)}else h=q.startContainer,j=h.cloneNode(),d.splitNodes(h.childNodes,h,j,void 0,void 0,q.startOffset);if(angular.element(h).after(j),q.setStartAfter(h),q.setEndAfter(h),/^(|<br(|\/)>)$/i.test(h.innerHTML.trim())&&(q.setStartBefore(h),q.setEndBefore(h),angular.element(h).remove()),/^(|<br(|\/)>)$/i.test(j.innerHTML.trim())&&angular.element(j).remove(),"li"===h.nodeName.toLowerCase()){for(o=f.createDocumentFragment(),m=0;m<r.childNodes.length;m++)p=angular.element("<li>"),d.transferChildNodes(r.childNodes[m],p[0]),d.transferNodeAttributes(r.childNodes[m],p[0]),o.appendChild(p[0]);r=o,n&&(n=r.childNodes[r.childNodes.length-1],n=n.childNodes[n.childNodes.length-1])}}else q.deleteContents();q.insertNode(r),n&&i.setSelectionToElementEnd(n)}};return i}]).service("taDOM",function(){var a={getByAttribute:function(b,c){var d=[],e=b.children();return e.length&&angular.forEach(e,function(b){d=d.concat(a.getByAttribute(angular.element(b),c))}),void 0!==b.attr(c)&&d.push(b),d},transferChildNodes:function(a,b){for(b.innerHTML="";a.childNodes.length>0;)b.appendChild(a.childNodes[0]);return b},splitNodes:function(b,c,d,e,f,g){if(!e&&isNaN(g))throw new Error("taDOM.splitNodes requires a splitNode or splitIndex");for(var h=document.createDocumentFragment(),i=document.createDocumentFragment(),j=0;b.length>0&&(isNaN(g)||g!==j)&&b[0]!==e;)h.appendChild(b[0]),j++;for(!isNaN(f)&&f>=0&&b[0]&&(h.appendChild(document.createTextNode(b[0].nodeValue.substring(0,f))),b[0].nodeValue=b[0].nodeValue.substring(f));b.length>0;)i.appendChild(b[0]);a.transferChildNodes(h,c),a.transferChildNodes(i,d)},transferNodeAttributes:function(a,b){for(var c=0;c<a.attributes.length;c++)b.setAttribute(a.attributes[c].name,a.attributes[c].value);return b}};return a}),angular.module("textAngular.validators",[]).directive("taMaxText",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){var e=parseInt(a.$eval(c.taMaxText));if(isNaN(e))throw"Max text must be an integer";c.$observe("taMaxText",function(a){if(e=parseInt(a),isNaN(e))throw"Max text must be an integer";d.$dirty&&d.$validate()}),d.$validators.taMaxText=function(a){var b=angular.element("<div/>");return b.html(a),b.text().length<=e}}}}).directive("taMinText",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){var e=parseInt(a.$eval(c.taMinText));if(isNaN(e))throw"Min text must be an integer";c.$observe("taMinText",function(a){if(e=parseInt(a),isNaN(e))throw"Min text must be an integer";d.$dirty&&d.$validate()}),d.$validators.taMinText=function(a){var b=angular.element("<div/>");return b.html(a),!b.text().length||b.text().length>=e}}}}),angular.module("textAngular.taBind",["textAngular.factories","textAngular.DOM"]).service("_taBlankTest",[function(){var a=/<(a|abbr|acronym|bdi|bdo|big|cite|code|del|dfn|img|ins|kbd|label|map|mark|q|ruby|rp|rt|s|samp|time|tt|var)[^>]*(>|$)/i;return function(b){return function(c){if(!c)return!0;var d,e=/(^[^<]|>)[^<]/i.exec(c);return e?d=e.index:(c=c.toString().replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,""),d=c.indexOf(">")),c=c.trim().substring(d,d+100),/^[^<>]+$/i.test(c)?!1:0===c.length||c===b||/^>(\s|&nbsp;)*<\/[^>]+>$/gi.test(c)?!0:!/>\s*[^\s<]/i.test(c)&&!a.test(c)}}}]).directive("taButton",[function(){return{link:function(a,b,c){b.attr("unselectable","on"),b.on("mousedown",function(a,b){return b&&angular.extend(a,b),a.preventDefault(),!1})}}}]).directive("taBind",["taSanitize","$timeout","$window","$document","taFixChrome","taBrowserTag","taSelection","taSelectableElements","taApplyCustomRenderers","taOptions","_taBlankTest","$parse","taDOM","textAngularManager",function(d,f,i,j,k,l,m,o,p,q,r,s,t,u){return{priority:2,require:["ngModel","?ngModelOptions"],link:function(l,v,w,x){function y(a){var b;return R.forEach(function(c){if(c.keyCode===a.keyCode){var d=(a.metaKey?O:0)+(a.ctrlKey?N:0)+(a.shiftKey?Q:0)+(a.altKey?P:0);if(c.forbiddenModifiers&d)return;c.mustHaveModifiers.every(function(a){return d&a})&&(b=c.specialKey)}}),b}var z,A,B,C,D=x[0],E=x[1]||{},F=void 0!==v.attr("contenteditable")&&v.attr("contenteditable"),G=F||"textarea"===v[0].tagName.toLowerCase()||"input"===v[0].tagName.toLowerCase(),H=!1,I=!1,J=!1,K=w.taUnsafeSanitizer||q.disableSanitizer,L=/^(9|19|20|27|33|34|35|36|37|38|39|40|45|112|113|114|115|116|117|118|119|120|121|122|123|144|145)$/i,M=/^(8|13|32|46|59|61|107|109|173|186|187|188|189|190|191|192|219|220|221|222)$/i,N=1,O=2,P=4,Q=8,R=[{specialKey:"UndoKey",forbiddenModifiers:P+Q,mustHaveModifiers:[O+N],keyCode:90},{specialKey:"RedoKey",forbiddenModifiers:P,mustHaveModifiers:[O+N,Q],keyCode:90},{specialKey:"RedoKey",forbiddenModifiers:P+Q,mustHaveModifiers:[O+N],keyCode:89},{specialKey:"TabKey",forbiddenModifiers:O+Q+P+N,mustHaveModifiers:[],keyCode:9},{specialKey:"ShiftTabKey",forbiddenModifiers:O+P+N,mustHaveModifiers:[Q],keyCode:9}];void 0===w.taDefaultWrap&&(w.taDefaultWrap="p"),""===w.taDefaultWrap?(B="",C=void 0===a.ie?"<div><br></div>":a.ie>=11?"<p><br></p>":a.ie<=8?"<P>&nbsp;</P>":"<p>&nbsp;</p>"):(B=void 0===a.ie||a.ie>=11?"<"+w.taDefaultWrap+"><br></"+w.taDefaultWrap+">":a.ie<=8?"<"+w.taDefaultWrap.toUpperCase()+"></"+w.taDefaultWrap.toUpperCase()+">":"<"+w.taDefaultWrap+"></"+w.taDefaultWrap+">",C=void 0===a.ie||a.ie>=11?"<"+w.taDefaultWrap+"><br></"+w.taDefaultWrap+">":a.ie<=8?"<"+w.taDefaultWrap.toUpperCase()+">&nbsp;</"+w.taDefaultWrap.toUpperCase()+">":"<"+w.taDefaultWrap+">&nbsp;</"+w.taDefaultWrap+">"),E.$options||(E.$options={});var S=r(C),T=function(a){if(S(a))return a;var b=angular.element("<div>"+a+"</div>");if(0===b.children().length)a="<"+w.taDefaultWrap+">"+a+"</"+w.taDefaultWrap+">";else{var d,e=b[0].childNodes,f=!1;for(d=0;d<e.length&&!(f=e[d].nodeName.toLowerCase().match(c));d++);if(f)for(a="",d=0;d<e.length;d++){var g=e[d],h=g.nodeName.toLowerCase();if("#comment"===h)a+="<!--"+g.nodeValue+"-->";else if("#text"===h){var i=g.textContent;a+=i.trim()?"<"+w.taDefaultWrap+">"+i+"</"+w.taDefaultWrap+">":i}else if(h.match(c))a+=g.outerHTML;else{var j=g.outerHTML||g.nodeValue;a+=""!==j.trim()?"<"+w.taDefaultWrap+">"+j+"</"+w.taDefaultWrap+">":j}}else a="<"+w.taDefaultWrap+">"+a+"</"+w.taDefaultWrap+">"}return a};w.taPaste&&(A=s(w.taPaste)),v.addClass("ta-bind");var U;l["$undoManager"+(w.id||"")]=D.$undoManager={_stack:[],_index:0,_max:1e3,push:function(a){return"undefined"==typeof a||null===a||"undefined"!=typeof this.current()&&null!==this.current()&&a===this.current()?a:(this._index<this._stack.length-1&&(this._stack=this._stack.slice(0,this._index+1)),this._stack.push(a),U&&f.cancel(U),this._stack.length>this._max&&this._stack.shift(),this._index=this._stack.length-1,a)},undo:function(){return this.setToIndex(this._index-1)},redo:function(){return this.setToIndex(this._index+1)},setToIndex:function(a){return 0>a||a>this._stack.length-1?void 0:(this._index=a,this.current())},current:function(){return this._stack[this._index]}};var V,W=l["$undoTaBind"+(w.id||"")]=function(){if(!H&&F){var a=D.$undoManager.undo();"undefined"!=typeof a&&null!==a&&(ka(a),Z(a,!1),V&&f.cancel(V),V=f(function(){v[0].focus(),m.setSelectionToElementEnd(v[0])},1))}},X=l["$redoTaBind"+(w.id||"")]=function(){if(!H&&F){var a=D.$undoManager.redo();"undefined"!=typeof a&&null!==a&&(ka(a),Z(a,!1),V&&f.cancel(V),V=f(function(){v[0].focus(),m.setSelectionToElementEnd(v[0])},1))}},Y=function(){if(F)return v[0].innerHTML;if(G)return v.val();throw"textAngular Error: attempting to update non-editable taBind"},Z=function(a,b,c){J=c||!1,"undefined"!=typeof b&&null!==b||(b=F),"undefined"!=typeof a&&null!==a||(a=Y()),S(a)?(""!==D.$viewValue&&D.$setViewValue(""),b&&""!==D.$undoManager.current()&&D.$undoManager.push("")):(ja(),D.$viewValue!==a&&(D.$setViewValue(a),b&&D.$undoManager.push(a))),D.$render()};l["updateTaBind"+(w.id||"")]=function(){H||Z(void 0,void 0,!0)};var $=function(a){return D.$oldViewValue=d(k(a),D.$oldViewValue,K)};if(v.attr("required")&&(D.$validators.required=function(a,b){return!S(a||b)}),D.$parsers.push($),D.$parsers.unshift(T),D.$formatters.push($),D.$formatters.unshift(T),D.$formatters.unshift(function(a){return D.$undoManager.push(a||"")}),G)if(l.events={},F){var _=!1,aa=function(a){if(a&&a.trim().length){if(a.match(/class=["']*Mso(Normal|List)/i)){var b=a.match(/<!--StartFragment-->([\s\S]*?)<!--EndFragment-->/i);b=b?b[1]:a,b=b.replace(/<o:p>[\s\S]*?<\/o:p>/gi,"").replace(/class=(["']|)MsoNormal(["']|)/gi,"");var c=angular.element("<div>"+b+"</div>"),e=angular.element("<div></div>"),g={element:null,lastIndent:[],lastLi:null,isUl:!1};g.lastIndent.peek=function(){var a=this.length;return a>0?this[a-1]:void 0};for(var h=function(a){g.isUl=a,g.element=angular.element(a?"<ul>":"<ol>"),g.lastIndent=[],g.lastIndent.peek=function(){var a=this.length;return a>0?this[a-1]:void 0},g.lastLevelMatch=null},i=0;i<=c[0].childNodes.length;i++)if(c[0].childNodes[i]&&"#text"!==c[0].childNodes[i].nodeName&&"p"===c[0].childNodes[i].tagName.toLowerCase()){var j=angular.element(c[0].childNodes[i]),k=(j.attr("class")||"").match(/MsoList(Bullet|Number|Paragraph)(CxSp(First|Middle|Last)|)/i);if(k){if(j[0].childNodes.length<2||j[0].childNodes[1].childNodes.length<1)continue;var n="bullet"===k[1].toLowerCase()||"number"!==k[1].toLowerCase()&&!(/^[^0-9a-z<]*[0-9a-z]+[^0-9a-z<>]</i.test(j[0].childNodes[1].innerHTML)||/^[^0-9a-z<]*[0-9a-z]+[^0-9a-z<>]</i.test(j[0].childNodes[1].childNodes[0].innerHTML)),o=(j.attr("style")||"").match(/margin-left:([\-\.0-9]*)/i),p=parseFloat(o?o[1]:0),q=(j.attr("style")||"").match(/mso-list:l([0-9]+) level([0-9]+) lfo[0-9+]($|;)/i);if(q&&q[2]&&(p=parseInt(q[2])),q&&(!g.lastLevelMatch||q[1]!==g.lastLevelMatch[1])||!k[3]||"first"===k[3].toLowerCase()||null===g.lastIndent.peek()||g.isUl!==n&&g.lastIndent.peek()===p)h(n),e.append(g.element);else if(null!=g.lastIndent.peek()&&g.lastIndent.peek()<p)g.element=angular.element(n?"<ul>":"<ol>"),g.lastLi.append(g.element);else if(null!=g.lastIndent.peek()&&g.lastIndent.peek()>p){for(;null!=g.lastIndent.peek()&&g.lastIndent.peek()>p;)if("li"!==g.element.parent()[0].tagName.toLowerCase()){if(!/[uo]l/i.test(g.element.parent()[0].tagName.toLowerCase()))break;g.element=g.element.parent(),g.lastIndent.pop()}else g.element=g.element.parent();g.isUl="ul"===g.element[0].tagName.toLowerCase(),n!==g.isUl&&(h(n),e.append(g.element))}g.lastLevelMatch=q,p!==g.lastIndent.peek()&&g.lastIndent.push(p),g.lastLi=angular.element("<li>"),g.element.append(g.lastLi),g.lastLi.html(j.html().replace(/<!(--|)\[if !supportLists\](--|)>[\s\S]*?<!(--|)\[endif\](--|)>/gi,"")),j.remove()}else h(!1),e.append(j)}var r=function(a){a=angular.element(a);for(var b=a[0].childNodes.length-1;b>=0;b--)a.after(a[0].childNodes[b]);a.remove()};angular.forEach(e.find("span"),function(a){a.removeAttribute("lang"),a.attributes.length<=0&&r(a)}),angular.forEach(e.find("font"),r),a=e.html()}else{if(a=a.replace(/<(|\/)meta[^>]*?>/gi,""),a.match(/<[^>]*?(ta-bind)[^>]*?>/)){if(a.match(/<[^>]*?(text-angular)[^>]*?>/)){var s=angular.element("<div>"+a+"</div>");s.find("textarea").remove();for(var u=t.getByAttribute(s,"ta-bind"),w=0;w<u.length;w++){for(var x=u[w][0].parentNode.parentNode,y=0;y<u[w][0].childNodes.length;y++)x.parentNode.insertBefore(u[w][0].childNodes[y],x);x.parentNode.removeChild(x)}a=s.html().replace('<br class="Apple-interchange-newline">',"")}}else a.match(/^<span/)&&(a.match(/<span class=(\"Apple-converted-space\"|\'Apple-converted-space\')>.<\/span>/gi)||(a=a.replace(/<(|\/)span[^>]*?>/gi,"")));a=a.replace(/<br class="Apple-interchange-newline"[^>]*?>/gi,"").replace(/<span class="Apple-converted-space">( |&nbsp;)<\/span>/gi,"&nbsp;")}/<li(\s.*)?>/i.test(a)&&/(<ul(\s.*)?>|<ol(\s.*)?>).*<li(\s.*)?>/i.test(a)===!1&&(a=a.replace(/<li(\s.*)?>.*<\/li(\s.*)?>/i,"<ul>$&</ul>")),a=a.replace(/^[ |\u00A0]+/gm,function(a){for(var b="",c=0;c<a.length;c++)b+="&nbsp;";return b}).replace(/\n|\r\n|\r/g,"<br />").replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;"),A&&(a=A(l,{$html:a})||a),a=d(a,"",K),m.insertHtml(a,v[0]),f(function(){D.$setViewValue(Y()),_=!1,v.removeClass("processing-paste")},0)}else _=!1,v.removeClass("processing-paste")};v.on("paste",l.events.paste=function(a,b){if(b&&angular.extend(a,b),H||_)return a.stopPropagation(),a.preventDefault(),!1;_=!0,v.addClass("processing-paste");var c,d=(a.originalEvent||a).clipboardData;if(d&&d.getData&&d.types.length>0){for(var e="",g=0;g<d.types.length;g++)e+=" "+d.types[g];return/text\/html/i.test(e)?c=d.getData("text/html"):/text\/plain/i.test(e)&&(c=d.getData("text/plain")),aa(c),a.stopPropagation(),a.preventDefault(),!1}var h=i.rangy.saveSelection(),k=angular.element('<div class="ta-hidden-input" contenteditable="true"></div>');j.find("body").append(k),k[0].focus(),f(function(){i.rangy.restoreSelection(h),aa(k[0].innerHTML),v[0].focus(),k.remove()},0)}),v.on("cut",l.events.cut=function(a){H?a.preventDefault():f(function(){D.$setViewValue(Y())},0)}),v.on("keydown",l.events.keydown=function(a,b){b&&angular.extend(a,b),a.specialKey=y(a);var c;if(q.keyMappings.forEach(function(b){a.specialKey===b.commandKeyCode&&(a.specialKey=void 0),b.testForKey(a)&&(c=b.commandKeyCode),"UndoKey"!==b.commandKeyCode&&"RedoKey"!==b.commandKeyCode||b.enablePropagation||a.preventDefault()}),"undefined"!=typeof c&&(a.specialKey=c),"undefined"==typeof a.specialKey||"UndoKey"===a.specialKey&&"RedoKey"===a.specialKey||(a.preventDefault(),u.sendKeyCommand(l,a)),!H&&("UndoKey"===a.specialKey&&(W(),a.preventDefault()),"RedoKey"===a.specialKey&&(X(),a.preventDefault()),13===a.keyCode&&!a.shiftKey)){var d,f=m.getSelectionElement();if(!f.tagName.match(e))return;var g=angular.element(B);if(/^<br(|\/)>$/i.test(f.innerHTML.trim())&&"blockquote"===f.parentNode.tagName.toLowerCase()&&!f.nextSibling){d=angular.element(f);var h=d.parent();h.after(g),d.remove(),0===h.children().length&&h.remove(),m.setSelectionToElementStart(g[0]),a.preventDefault()}else/^<[^>]+><br(|\/)><\/[^>]+>$/i.test(f.innerHTML.trim())&&"blockquote"===f.tagName.toLowerCase()&&(d=angular.element(f),d.after(g),d.remove(),m.setSelectionToElementStart(g[0]),a.preventDefault())}});var ba;if(v.on("keyup",l.events.keyup=function(a,b){if(b&&angular.extend(a,b),9===a.keyCode){var c=m.getSelection();return void(c.start.element===v[0]&&v.children().length&&m.setSelectionToElementStart(v.children()[0]))}if(U&&f.cancel(U),!H&&!L.test(a.keyCode)){if(""!==B&&13===a.keyCode&&!a.shiftKey){for(var d=m.getSelectionElement();!d.tagName.match(e)&&d!==v[0];)d=d.parentNode;if(d.tagName.toLowerCase()!==w.taDefaultWrap&&"li"!==d.tagName.toLowerCase()&&(""===d.innerHTML.trim()||"<br>"===d.innerHTML.trim())){var g=angular.element(B);angular.element(d).replaceWith(g),m.setSelectionToElementStart(g[0])}}var h=Y();""!==B&&""===h.trim()?(ka(B),m.setSelectionToElementStart(v.children()[0])):"<"!==h.substring(0,1)&&""!==w.taDefaultWrap;var i=z!==a.keyCode&&M.test(a.keyCode);ba&&f.cancel(ba),ba=f(function(){Z(h,i,!0)},E.$options.debounce||400),i||(U=f(function(){D.$undoManager.push(h)},250)),z=a.keyCode}}),v.on("blur",l.events.blur=function(){I=!1,H?(J=!0,D.$render()):Z(void 0,void 0,!0)}),w.placeholder&&(a.ie>8||void 0===a.ie)){var ca;if(!w.id)throw"textAngular Error: An unique ID is required for placeholders to work";ca=g("#"+w.id+".placeholder-text:before",'content: "'+w.placeholder+'"'),l.$on("$destroy",function(){h(ca)})}v.on("focus",l.events.focus=function(){I=!0,v.removeClass("placeholder-text"),ja()}),v.on("mouseup",l.events.mouseup=function(){var a=m.getSelection();a.start.element===v[0]&&v.children().length&&m.setSelectionToElementStart(v.children()[0])}),v.on("mousedown",l.events.mousedown=function(a,b){b&&angular.extend(a,b),a.stopPropagation()})}else{v.on("change blur",l.events.change=l.events.blur=function(){H||D.$setViewValue(Y())}),v.on("keydown",l.events.keydown=function(a,b){if(b&&angular.extend(a,b),9===a.keyCode){var c=this.selectionStart,d=this.selectionEnd,e=v.val();if(a.shiftKey){var f=e.lastIndexOf("\n",c),g=e.lastIndexOf(" ",c);-1!==g&&g>=f&&(v.val(e.substring(0,g)+e.substring(g+1)),this.selectionStart=this.selectionEnd=c-1)}else v.val(e.substring(0,c)+"   "+e.substring(d)),this.selectionStart=this.selectionEnd=c+1;a.preventDefault()}});var da=function(a,b){for(var c="",d=0;b>d;d++)c+=a;return c},ea=function(a,b,c){for(var d=0;d<a.length;d++)b.call(c,d,a[d])},fa=function(a,b){var c="",d=a.childNodes;return b++,c+=da("      ",b-1)+a.outerHTML.substring(0,4),ea(d,function(a,d){var e=d.nodeName.toLowerCase();return"#comment"===e?void(c+="<!--"+d.nodeValue+"-->"):"#text"===e?void(c+=d.textContent):void(d.outerHTML&&(c+="ul"===e||"ol"===e?"\n"+fa(d,b):"\n"+da("   ",b)+d.outerHTML))}),c+="\n"+da("       ",b-1)+a.outerHTML.substring(a.outerHTML.lastIndexOf("<"))};D.$formatters.unshift(function(a){
+var b=angular.element("<div>"+a+"</div>")[0].childNodes;return b.length>0&&(a="",ea(b,function(b,c){var d=c.nodeName.toLowerCase();return"#comment"===d?void(a+="<!--"+c.nodeValue+"-->"):"#text"===d?void(a+=c.textContent):void(c.outerHTML&&(a.length>0&&(a+="\n"),a+="ul"===d||"ol"===d?""+fa(c,0):""+c.outerHTML))})),a})}var ga,ha=function(a){return l.$emit("ta-element-select",this),a.preventDefault(),!1},ia=function(a,b){if(b&&angular.extend(a,b),!n&&!H){n=!0;var c;c=a.originalEvent?a.originalEvent.dataTransfer:a.dataTransfer,l.$emit("ta-drop-event",this,a,c),f(function(){n=!1,Z(void 0,void 0,!0)},100)}},ja=l["reApplyOnSelectorHandlers"+(w.id||"")]=function(){H||angular.forEach(o,function(a){v.find(a).off("click",ha).on("click",ha)})},ka=function(a){v[0].innerHTML=a},la=!1;D.$render=function(){if(!la){la=!0;var a=D.$viewValue||"";J||(F&&I&&(v.removeClass("placeholder-text"),ga&&f.cancel(ga),ga=f(function(){I||(v[0].focus(),m.setSelectionToElementEnd(v.children()[v.children().length-1])),ga=void 0},1)),F?(ka(w.placeholder?""===a?B:a:""===a?B:a),H?v.off("drop",ia):(ja(),v.on("drop",ia))):"textarea"!==v[0].tagName.toLowerCase()&&"input"!==v[0].tagName.toLowerCase()?ka(p(a)):v.val(a)),F&&w.placeholder&&(""===a?I?v.removeClass("placeholder-text"):v.addClass("placeholder-text"):v.removeClass("placeholder-text")),la=J=!1}},w.taReadonly&&(H=l.$eval(w.taReadonly),H?(v.addClass("ta-readonly"),"textarea"!==v[0].tagName.toLowerCase()&&"input"!==v[0].tagName.toLowerCase()||v.attr("disabled","disabled"),void 0!==v.attr("contenteditable")&&v.attr("contenteditable")&&v.removeAttr("contenteditable")):(v.removeClass("ta-readonly"),"textarea"===v[0].tagName.toLowerCase()||"input"===v[0].tagName.toLowerCase()?v.removeAttr("disabled"):F&&v.attr("contenteditable","true")),l.$watch(w.taReadonly,function(a,b){b!==a&&(a?(v.addClass("ta-readonly"),"textarea"!==v[0].tagName.toLowerCase()&&"input"!==v[0].tagName.toLowerCase()||v.attr("disabled","disabled"),void 0!==v.attr("contenteditable")&&v.attr("contenteditable")&&v.removeAttr("contenteditable"),angular.forEach(o,function(a){v.find(a).on("click",ha)}),v.off("drop",ia)):(v.removeClass("ta-readonly"),"textarea"===v[0].tagName.toLowerCase()||"input"===v[0].tagName.toLowerCase()?v.removeAttr("disabled"):F&&v.attr("contenteditable","true"),angular.forEach(o,function(a){v.find(a).off("click",ha)}),v.on("drop",ia)),H=a)})),F&&!H&&(angular.forEach(o,function(a){v.find(a).on("click",ha)}),v.on("drop",ia),v.on("blur",function(){a.webkit&&(b=!0)}))}}}]);var n=!1,o=angular.module("textAngular",["ngSanitize","textAngularSetup","textAngular.factories","textAngular.DOM","textAngular.validators","textAngular.taBind"]);o.config([function(){angular.forEach(taTools,function(a,b){delete taTools[b]})}]),o.run([function(){if("function"==typeof define&&define.amd)define(function(a){window.rangy=a("rangy"),window.rangy.saveSelection=a("rangy/lib/rangy-selectionsaverestore")});else if("function"==typeof require&&"undefined"!=typeof module&&"object"==typeof exports)window.rangy=require("rangy"),window.rangy.saveSelection=require("rangy/lib/rangy-selectionsaverestore");else{if(!window.rangy)throw"rangy-core.js and rangy-selectionsaverestore.js are required for textAngular to work correctly, rangy-core is not yet loaded.";if(window.rangy.init(),!window.rangy.saveSelection)throw"rangy-selectionsaverestore.js is required for textAngular to work correctly."}}]),o.directive("textAngular",["$compile","$timeout","taOptions","taSelection","taExecCommand","textAngularManager","$window","$document","$animate","$log","$q","$parse",function(a,b,c,d,e,f,g,h,i,j,k,l){return{require:"?ngModel",scope:{},restrict:"EA",priority:2,link:function(m,n,o,p){var q,r,s,t,u,v,w,x,y,z,A,B=o.serial?o.serial:Math.floor(1e16*Math.random());m._name=o.name?o.name:"textAngularEditor"+B;var C=function(a,c,d){b(function(){var b=function(){a.off(c,b),d.apply(this,arguments)};a.on(c,b)},100)};if(y=e(o.taDefaultWrap),angular.extend(m,angular.copy(c),{wrapSelection:function(a,b,c){"undo"===a.toLowerCase()?m["$undoTaBindtaTextElement"+B]():"redo"===a.toLowerCase()?m["$redoTaBindtaTextElement"+B]():(y(a,!1,b,m.defaultTagAttributes),c&&m["reApplyOnSelectorHandlerstaTextElement"+B](),m.displayElements.text[0].focus())},showHtml:m.$eval(o.taShowHtml)||!1}),o.taFocussedClass&&(m.classes.focussed=o.taFocussedClass),o.taTextEditorClass&&(m.classes.textEditor=o.taTextEditorClass),o.taHtmlEditorClass&&(m.classes.htmlEditor=o.taHtmlEditorClass),o.taDefaultTagAttributes)try{angular.extend(m.defaultTagAttributes,angular.fromJson(o.taDefaultTagAttributes))}catch(D){j.error(D)}o.taTextEditorSetup&&(m.setup.textEditorSetup=m.$parent.$eval(o.taTextEditorSetup)),o.taHtmlEditorSetup&&(m.setup.htmlEditorSetup=m.$parent.$eval(o.taHtmlEditorSetup)),o.taFileDrop?m.fileDropHandler=m.$parent.$eval(o.taFileDrop):m.fileDropHandler=m.defaultFileDropHandler,w=n[0].innerHTML,n[0].innerHTML="",m.displayElements={forminput:angular.element("<input type='hidden' tabindex='-1' style='display: none;'>"),html:angular.element("<textarea></textarea>"),text:angular.element("<div></div>"),scrollWindow:angular.element("<div class='ta-scroll-window'></div>"),popover:angular.element('<div class="popover fade bottom" style="max-width: none; width: 305px;"></div>'),popoverArrow:angular.element('<div class="arrow"></div>'),popoverContainer:angular.element('<div class="popover-content"></div>'),resize:{overlay:angular.element('<div class="ta-resizer-handle-overlay"></div>'),background:angular.element('<div class="ta-resizer-handle-background"></div>'),anchors:[angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-tl"></div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-tr"></div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-bl"></div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-br"></div>')],info:angular.element('<div class="ta-resizer-handle-info"></div>')}},m.displayElements.popover.append(m.displayElements.popoverArrow),m.displayElements.popover.append(m.displayElements.popoverContainer),m.displayElements.scrollWindow.append(m.displayElements.popover),m.displayElements.popover.on("mousedown",function(a,b){return b&&angular.extend(a,b),a.preventDefault(),!1}),m.showPopover=function(a){m.displayElements.popover.css("display","block"),m.reflowPopover(a),i.addClass(m.displayElements.popover,"in"),C(h.find("body"),"click keyup",function(){m.hidePopover()})},m.reflowPopover=function(a){m.displayElements.text[0].offsetHeight-51>a[0].offsetTop?(m.displayElements.popover.css("top",a[0].offsetTop+a[0].offsetHeight+m.displayElements.scrollWindow[0].scrollTop+"px"),m.displayElements.popover.removeClass("top").addClass("bottom")):(m.displayElements.popover.css("top",a[0].offsetTop-54+m.displayElements.scrollWindow[0].scrollTop+"px"),m.displayElements.popover.removeClass("bottom").addClass("top"));var b=m.displayElements.text[0].offsetWidth-m.displayElements.popover[0].offsetWidth,c=a[0].offsetLeft+a[0].offsetWidth/2-m.displayElements.popover[0].offsetWidth/2;m.displayElements.popover.css("left",Math.max(0,Math.min(b,c))+"px"),m.displayElements.popoverArrow.css("margin-left",Math.min(c,Math.max(0,c-b))-11+"px")},m.hidePopover=function(){m.displayElements.popover.css("display",""),m.displayElements.popoverContainer.attr("style",""),m.displayElements.popoverContainer.attr("class","popover-content"),m.displayElements.popover.removeClass("in")},m.displayElements.resize.overlay.append(m.displayElements.resize.background),angular.forEach(m.displayElements.resize.anchors,function(a){m.displayElements.resize.overlay.append(a)}),m.displayElements.resize.overlay.append(m.displayElements.resize.info),m.displayElements.scrollWindow.append(m.displayElements.resize.overlay),m.reflowResizeOverlay=function(a){a=angular.element(a)[0],m.displayElements.resize.overlay.css({display:"block",left:a.offsetLeft-5+"px",top:a.offsetTop-5+"px",width:a.offsetWidth+10+"px",height:a.offsetHeight+10+"px"}),m.displayElements.resize.info.text(a.offsetWidth+" x "+a.offsetHeight)},m.showResizeOverlay=function(a){var b=h.find("body");z=function(c){var d={width:parseInt(a.attr("width")),height:parseInt(a.attr("height")),x:c.clientX,y:c.clientY};(void 0===d.width||isNaN(d.width))&&(d.width=a[0].offsetWidth),(void 0===d.height||isNaN(d.height))&&(d.height=a[0].offsetHeight),m.hidePopover();var e=d.height/d.width,f=function(b){function c(a){return Math.round(Math.max(0,a))}var f={x:Math.max(0,d.width+(b.clientX-d.x)),y:Math.max(0,d.height+(b.clientY-d.y))},g=void 0!==o.taResizeForceAspectRatio,h=o.taResizeMaintainAspectRatio,i=g||h&&!b.shiftKey;if(i){var j=f.y/f.x;f.x=e>j?f.x:f.y/e,f.y=e>j?f.x*e:f.y}var k=angular.element(a);k.css("height",c(f.y)+"px"),k.css("width",c(f.x)+"px"),m.reflowResizeOverlay(a)};b.on("mousemove",f),C(b,"mouseup",function(c){c.preventDefault(),c.stopPropagation(),b.off("mousemove",f),m.showPopover(a)}),c.stopPropagation(),c.preventDefault()},m.displayElements.resize.anchors[3].off("mousedown"),m.displayElements.resize.anchors[3].on("mousedown",z),m.reflowResizeOverlay(a),C(b,"click",function(){m.hideResizeOverlay()})},m.hideResizeOverlay=function(){m.displayElements.resize.anchors[3].off("mousedown",z),m.displayElements.resize.overlay.css("display","")},m.setup.htmlEditorSetup(m.displayElements.html),m.setup.textEditorSetup(m.displayElements.text),m.displayElements.html.attr({id:"taHtmlElement"+B,"ng-show":"showHtml","ta-bind":"ta-bind","ng-model":"html","ng-model-options":n.attr("ng-model-options")}),m.displayElements.text.attr({id:"taTextElement"+B,contentEditable:"true","ta-bind":"ta-bind","ng-model":"html","ng-model-options":n.attr("ng-model-options")}),m.displayElements.scrollWindow.attr({"ng-hide":"showHtml"}),o.taDefaultWrap&&m.displayElements.text.attr("ta-default-wrap",o.taDefaultWrap),o.taUnsafeSanitizer&&(m.displayElements.text.attr("ta-unsafe-sanitizer",o.taUnsafeSanitizer),m.displayElements.html.attr("ta-unsafe-sanitizer",o.taUnsafeSanitizer)),m.displayElements.scrollWindow.append(m.displayElements.text),n.append(m.displayElements.scrollWindow),n.append(m.displayElements.html),m.displayElements.forminput.attr("name",m._name),n.append(m.displayElements.forminput),o.tabindex&&(n.removeAttr("tabindex"),m.displayElements.text.attr("tabindex",o.tabindex),m.displayElements.html.attr("tabindex",o.tabindex)),o.placeholder&&(m.displayElements.text.attr("placeholder",o.placeholder),m.displayElements.html.attr("placeholder",o.placeholder)),o.taDisabled&&(m.displayElements.text.attr("ta-readonly","disabled"),m.displayElements.html.attr("ta-readonly","disabled"),m.disabled=m.$parent.$eval(o.taDisabled),m.$parent.$watch(o.taDisabled,function(a){m.disabled=a,m.disabled?n.addClass(m.classes.disabled):n.removeClass(m.classes.disabled)})),o.taPaste&&(m._pasteHandler=function(a){return l(o.taPaste)(m.$parent,{$html:a})},m.displayElements.text.attr("ta-paste","_pasteHandler($html)")),a(m.displayElements.scrollWindow)(m),a(m.displayElements.html)(m),m.updateTaBindtaTextElement=m["updateTaBindtaTextElement"+B],m.updateTaBindtaHtmlElement=m["updateTaBindtaHtmlElement"+B],n.addClass("ta-root"),m.displayElements.scrollWindow.addClass("ta-text ta-editor "+m.classes.textEditor),m.displayElements.html.addClass("ta-html ta-editor "+m.classes.htmlEditor),m._actionRunning=!1;var E=!1;if(m.startAction=function(){return m._actionRunning=!0,E=g.rangy.saveSelection(),function(){E&&g.rangy.restoreSelection(E)}},m.endAction=function(){m._actionRunning=!1,E&&(m.showHtml?m.displayElements.html[0].focus():m.displayElements.text[0].focus(),g.rangy.removeMarkers(E)),E=!1,m.updateSelectedStyles(),m.showHtml||m["updateTaBindtaTextElement"+B]()},u=function(){m.focussed=!0,n.addClass(m.classes.focussed),x.focus(),n.triggerHandler("focus")},m.displayElements.html.on("focus",u),m.displayElements.text.on("focus",u),v=function(a){return m._actionRunning||h[0].activeElement===m.displayElements.html[0]||h[0].activeElement===m.displayElements.text[0]||(n.removeClass(m.classes.focussed),x.unfocus(),b(function(){m._bUpdateSelectedStyles=!1,n.triggerHandler("blur"),m.focussed=!1},0)),a.preventDefault(),!1},m.displayElements.html.on("blur",v),m.displayElements.text.on("blur",v),m.displayElements.text.on("paste",function(a){n.triggerHandler("paste",a)}),m.queryFormatBlockState=function(a){return!m.showHtml&&a.toLowerCase()===h[0].queryCommandValue("formatBlock").toLowerCase()},m.queryCommandState=function(a){return m.showHtml?"":h[0].queryCommandState(a)},m.switchView=function(){m.showHtml=!m.showHtml,i.enabled(!1,m.displayElements.html),i.enabled(!1,m.displayElements.text),m.showHtml?b(function(){return i.enabled(!0,m.displayElements.html),i.enabled(!0,m.displayElements.text),m.displayElements.html[0].focus()},100):b(function(){return i.enabled(!0,m.displayElements.html),i.enabled(!0,m.displayElements.text),m.displayElements.text[0].focus()},100)},o.ngModel){var F=!0;p.$render=function(){if(F){F=!1;var a=m.$parent.$eval(o.ngModel);void 0!==a&&null!==a||!w||""===w||p.$setViewValue(w)}m.displayElements.forminput.val(p.$viewValue),m.html=p.$viewValue||""},n.attr("required")&&(p.$validators.required=function(a,b){var c=a||b;return!(!c||""===c.trim())})}else m.displayElements.forminput.val(w),m.html=w;if(m.$watch("html",function(a,b){a!==b&&(o.ngModel&&p.$viewValue!==a&&p.$setViewValue(a),m.displayElements.forminput.val(a))}),o.taTargetToolbars)x=f.registerEditor(m._name,m,o.taTargetToolbars.split(","));else{var G=angular.element('<div text-angular-toolbar name="textAngularToolbar'+B+'">');o.taToolbar&&G.attr("ta-toolbar",o.taToolbar),o.taToolbarClass&&G.attr("ta-toolbar-class",o.taToolbarClass),o.taToolbarGroupClass&&G.attr("ta-toolbar-group-class",o.taToolbarGroupClass),o.taToolbarButtonClass&&G.attr("ta-toolbar-button-class",o.taToolbarButtonClass),o.taToolbarActiveButtonClass&&G.attr("ta-toolbar-active-button-class",o.taToolbarActiveButtonClass),o.taFocussedClass&&G.attr("ta-focussed-class",o.taFocussedClass),n.prepend(G),a(G)(m.$parent),x=f.registerEditor(m._name,m,["textAngularToolbar"+B])}m.$on("$destroy",function(){f.unregisterEditor(m._name),angular.element(window).off("blur")}),m.$on("ta-element-select",function(a,b){x.triggerElementSelect(a,b)&&m["reApplyOnSelectorHandlerstaTextElement"+B]()}),m.$on("ta-drop-event",function(a,c,d,e){m.displayElements.text[0].focus(),e&&e.files&&e.files.length>0?(angular.forEach(e.files,function(a){try{k.when(m.fileDropHandler(a,m.wrapSelection)||m.fileDropHandler!==m.defaultFileDropHandler&&k.when(m.defaultFileDropHandler(a,m.wrapSelection))).then(function(){m["updateTaBindtaTextElement"+B]()})}catch(b){j.error(b)}}),d.preventDefault(),d.stopPropagation()):b(function(){m["updateTaBindtaTextElement"+B]()},0)}),m._bUpdateSelectedStyles=!1,angular.element(window).on("blur",function(){m._bUpdateSelectedStyles=!1,m.focussed=!1}),m.updateSelectedStyles=function(){var a;A&&b.cancel(A),void 0!==(a=d.getSelectionElement())&&a.parentNode!==m.displayElements.text[0]?x.updateSelectedStyles(angular.element(a)):x.updateSelectedStyles(),m._bUpdateSelectedStyles&&(A=b(m.updateSelectedStyles,200))},q=function(){return m.focussed?void(m._bUpdateSelectedStyles||(m._bUpdateSelectedStyles=!0,m.$apply(function(){m.updateSelectedStyles()}))):void(m._bUpdateSelectedStyles=!1)},m.displayElements.html.on("keydown",q),m.displayElements.text.on("keydown",q),r=function(){m._bUpdateSelectedStyles=!1},m.displayElements.html.on("keyup",r),m.displayElements.text.on("keyup",r),s=function(a,b){b&&angular.extend(a,b),m.$apply(function(){return x.sendKeyCommand(a)?(m._bUpdateSelectedStyles||m.updateSelectedStyles(),a.preventDefault(),!1):void 0})},m.displayElements.html.on("keypress",s),m.displayElements.text.on("keypress",s),t=function(){m._bUpdateSelectedStyles=!1,m.$apply(function(){m.updateSelectedStyles()})},m.displayElements.html.on("mouseup",t),m.displayElements.text.on("mouseup",t)}}}]),o.service("textAngularManager",["taToolExecuteAction","taTools","taRegisterTool",function(a,b,c){var d={},e={};return{registerEditor:function(c,f,g){if(!c||""===c)throw"textAngular Error: An editor requires a name";if(!f)throw"textAngular Error: An editor requires a scope";if(e[c])throw'textAngular Error: An Editor with name "'+c+'" already exists';var h=[];return angular.forEach(g,function(a){d[a]&&h.push(d[a])}),e[c]={scope:f,toolbars:g,_registerToolbar:function(a){this.toolbars.indexOf(a.name)>=0&&h.push(a)},editorFunctions:{disable:function(){angular.forEach(h,function(a){a.disabled=!0})},enable:function(){angular.forEach(h,function(a){a.disabled=!1})},focus:function(){angular.forEach(h,function(a){a._parent=f,a.disabled=!1,a.focussed=!0,f.focussed=!0})},unfocus:function(){angular.forEach(h,function(a){a.disabled=!0,a.focussed=!1}),f.focussed=!1},updateSelectedStyles:function(a){angular.forEach(h,function(b){angular.forEach(b.tools,function(c){c.activeState&&(b._parent=f,c.active=c.activeState(a))})})},sendKeyCommand:function(c){var d=!1;return(c.ctrlKey||c.metaKey||c.specialKey)&&angular.forEach(b,function(b,e){if(b.commandKeyCode&&(b.commandKeyCode===c.which||b.commandKeyCode===c.specialKey))for(var g=0;g<h.length;g++)if(void 0!==h[g].tools[e]){a.call(h[g].tools[e],f),d=!0;break}}),d},triggerElementSelect:function(a,c){var d=function(a,b){for(var c=!0,d=0;d<b.length;d++)c=c&&a.attr(b[d]);return c},e=[],g={},i=!1;c=angular.element(c);var j=!1;if(angular.forEach(b,function(a,b){a.onElementSelect&&a.onElementSelect.element&&a.onElementSelect.element.toLowerCase()===c[0].tagName.toLowerCase()&&(!a.onElementSelect.filter||a.onElementSelect.filter(c))&&(j=j||angular.isArray(a.onElementSelect.onlyWithAttrs)&&d(c,a.onElementSelect.onlyWithAttrs),a.onElementSelect.onlyWithAttrs&&!d(c,a.onElementSelect.onlyWithAttrs)||(g[b]=a))}),j?(angular.forEach(g,function(a,b){a.onElementSelect.onlyWithAttrs&&d(c,a.onElementSelect.onlyWithAttrs)&&e.push({name:b,tool:a})}),e.sort(function(a,b){return b.tool.onElementSelect.onlyWithAttrs.length-a.tool.onElementSelect.onlyWithAttrs.length})):angular.forEach(g,function(a,b){e.push({name:b,tool:a})}),e.length>0)for(var k=0;k<e.length;k++){for(var l=e[k].tool,m=e[k].name,n=0;n<h.length;n++)if(void 0!==h[n].tools[m]){l.onElementSelect.action.call(h[n].tools[m],a,c,f),i=!0;break}if(i)break}return i}}},e[c].editorFunctions},retrieveEditor:function(a){return e[a]},unregisterEditor:function(a){delete e[a]},registerToolbar:function(a){if(!a)throw"textAngular Error: A toolbar requires a scope";if(!a.name||""===a.name)throw"textAngular Error: A toolbar requires a name";if(d[a.name])throw'textAngular Error: A toolbar with name "'+a.name+'" already exists';d[a.name]=a,angular.forEach(e,function(b){b._registerToolbar(a)})},retrieveToolbar:function(a){return d[a]},retrieveToolbarsViaEditor:function(a){var b=[],c=this;return angular.forEach(this.retrieveEditor(a).toolbars,function(a){b.push(c.retrieveToolbar(a))}),b},unregisterToolbar:function(a){delete d[a]},updateToolsDisplay:function(a){var b=this;angular.forEach(a,function(a,c){b.updateToolDisplay(c,a)})},resetToolsDisplay:function(){var a=this;angular.forEach(b,function(b,c){a.resetToolDisplay(c)})},updateToolDisplay:function(a,b){var c=this;angular.forEach(d,function(d,e){c.updateToolbarToolDisplay(e,a,b)})},resetToolDisplay:function(a){var b=this;angular.forEach(d,function(c,d){b.resetToolbarToolDisplay(d,a)})},updateToolbarToolDisplay:function(a,b,c){if(!d[a])throw'textAngular Error: No Toolbar with name "'+a+'" exists';d[a].updateToolDisplay(b,c)},resetToolbarToolDisplay:function(a,c){if(!d[a])throw'textAngular Error: No Toolbar with name "'+a+'" exists';d[a].updateToolDisplay(c,b[c],!0)},removeTool:function(a){delete b[a],angular.forEach(d,function(b){delete b.tools[a];for(var c=0;c<b.toolbar.length;c++){for(var d,e=0;e<b.toolbar[c].length;e++){if(b.toolbar[c][e]===a){d={group:c,index:e};break}if(void 0!==d)break}void 0!==d&&(b.toolbar[d.group].slice(d.index,1),b._$element.children().eq(d.group).children().eq(d.index).remove())}})},addTool:function(a,b,e,f){c(a,b),angular.forEach(d,function(c){c.addTool(a,b,e,f)})},addToolToToolbar:function(a,b,e,f,g){c(a,b),d[e].addTool(a,b,f,g)},refreshEditor:function(a){if(!e[a])throw'textAngular Error: No Editor with name "'+a+'" exists';e[a].scope.updateTaBindtaTextElement(),e[a].scope.$$phase||e[a].scope.$digest()},sendKeyCommand:function(a,b){angular.forEach(e,function(c){return c.editorFunctions.sendKeyCommand(b)?(a._bUpdateSelectedStyles||a.updateSelectedStyles(),b.preventDefault(),!1):void 0})}}}]),o.directive("textAngularToolbar",["$compile","textAngularManager","taOptions","taTools","taToolExecuteAction","$window",function(a,b,c,d,e,f){return{scope:{name:"@"},restrict:"EA",link:function(g,h,i){if(!g.name||""===g.name)throw"textAngular Error: A toolbar requires a name";angular.extend(g,angular.copy(c)),i.taToolbar&&(g.toolbar=g.$parent.$eval(i.taToolbar)),i.taToolbarClass&&(g.classes.toolbar=i.taToolbarClass),i.taToolbarGroupClass&&(g.classes.toolbarGroup=i.taToolbarGroupClass),i.taToolbarButtonClass&&(g.classes.toolbarButton=i.taToolbarButtonClass),i.taToolbarActiveButtonClass&&(g.classes.toolbarButtonActive=i.taToolbarActiveButtonClass),i.taFocussedClass&&(g.classes.focussed=i.taFocussedClass),g.disabled=!0,g.focussed=!1,g._$element=h,h[0].innerHTML="",h.addClass("ta-toolbar "+g.classes.toolbar),g.$watch("focussed",function(){g.focussed?h.addClass(g.classes.focussed):h.removeClass(g.classes.focussed)});var j=function(b,c){var d;if(d=b&&b.display?angular.element(b.display):angular.element("<button type='button'>"),b&&b["class"]?d.addClass(b["class"]):d.addClass(g.classes.toolbarButton),d.attr("name",c.name),d.attr("ta-button","ta-button"),d.attr("ng-disabled","isDisabled()"),d.attr("tabindex","-1"),d.attr("ng-click","executeAction()"),d.attr("ng-class","displayActiveToolClass(active)"),b&&b.tooltiptext&&d.attr("title",b.tooltiptext),b&&!b.display&&!c._display&&(d[0].innerHTML="",b.buttontext&&(d[0].innerHTML=b.buttontext),b.iconclass)){var e=angular.element("<i>"),f=d[0].innerHTML;e.addClass(b.iconclass),d[0].innerHTML="",d.append(e),f&&""!==f&&d.append("&nbsp;"+f)}return c._lastToolDefinition=angular.copy(b),a(d)(c)};g.tools={},g._parent={disabled:!0,showHtml:!1,queryFormatBlockState:function(){return!1},queryCommandState:function(){return!1}};var k={$window:f,$editor:function(){return g._parent},isDisabled:function(){return"function"!=typeof this.$eval("disabled")&&this.$eval("disabled")||this.$eval("disabled()")||"html"!==this.name&&this.$editor().showHtml||this.$parent.disabled||this.$editor().disabled},displayActiveToolClass:function(a){return a?g.classes.toolbarButtonActive:""},executeAction:e};angular.forEach(g.toolbar,function(a){var b=angular.element("<div>");b.addClass(g.classes.toolbarGroup),angular.forEach(a,function(a){g.tools[a]=angular.extend(g.$new(!0),d[a],k,{name:a}),g.tools[a].$element=j(d[a],g.tools[a]),b.append(g.tools[a].$element)}),h.append(b)}),g.updateToolDisplay=function(a,b,c){var d=g.tools[a];if(d){if(d._lastToolDefinition&&!c&&(b=angular.extend({},d._lastToolDefinition,b)),null===b.buttontext&&null===b.iconclass&&null===b.display)throw'textAngular Error: Tool Definition for updating "'+a+'" does not have a valid display/iconclass/buttontext value';null===b.buttontext&&delete b.buttontext,null===b.iconclass&&delete b.iconclass,null===b.display&&delete b.display;var e=j(b,d);d.$element.replaceWith(e),d.$element=e}},g.addTool=function(a,b,c,e){g.tools[a]=angular.extend(g.$new(!0),d[a],k,{name:a}),g.tools[a].$element=j(d[a],g.tools[a]);var f;void 0===c&&(c=g.toolbar.length-1),f=angular.element(h.children()[c]),void 0===e?(f.append(g.tools[a].$element),g.toolbar[c][g.toolbar[c].length-1]=a):(f.children().eq(e).after(g.tools[a].$element),g.toolbar[c][e]=a)},b.registerToolbar(g),g.$on("$destroy",function(){b.unregisterToolbar(g.name)})}}}])}(),function(a,b,c){"use strict";function d(){this.$get=["$$sanitizeUri",function(a){return function(b){"undefined"!=typeof arguments[1]&&(arguments[1].version="taSanitize");var c=[];return g(b,l(c,function(b,c){return!/^unsafe/.test(a(b,c))})),c.join("")}}]}function e(a){var c=[],d=l(c,b.noop);return d.chars(a),c.join("")}function f(a){var b,c={},d=a.split(",");for(b=0;b<d.length;b++)c[d[b]]=!0;return c}function g(a,c){function d(a,d,f,g){if(d=b.lowercase(d),D[d])for(;k.last()&&E[k.last()];)e("",k.last());C[d]&&k.last()==d&&e("",d),g=z[d]||!!g,g||k.push(d);var i={};f.replace(p,function(a,b,c,d,e){var f=c||d||e||"";i[b]=h(f)}),c.start&&c.start(d,i,g)}function e(a,d){var e,f=0;if(d=b.lowercase(d))for(f=k.length-1;f>=0&&k[f]!=d;f--);if(f>=0){for(e=k.length-1;e>=f;e--)c.end&&c.end(k[e]);k.length=f}}"string"!=typeof a&&(a=null===a||"undefined"==typeof a?"":""+a);var f,g,i,j,k=[],l=a;for(k.last=function(){return k[k.length-1]};a;){if(j="",g=!0,k.last()&&G[k.last()])a=a.replace(new RegExp("([^]*)<\\s*\\/\\s*"+k.last()+"[^>]*>","i"),function(a,b){return b=b.replace(s,"$1").replace(v,"$1"),c.chars&&c.chars(h(b)),""}),e("",k.last());else{if(y.test(a)){if(i=a.match(y)){i[0];c.whitespace&&c.whitespace(i[0]),a=a.replace(i[0],""),g=!1}}else t.test(a)?(i=a.match(t),i&&(c.comment&&c.comment(i[1]),a=a.replace(i[0],""),g=!1)):u.test(a)?(i=a.match(u),i&&(a=a.replace(i[0],""),g=!1)):r.test(a)?(i=a.match(o),i&&(a=a.substring(i[0].length),i[0].replace(o,e),g=!1)):q.test(a)&&(i=a.match(n),i?(i[4]&&(a=a.substring(i[0].length),i[0].replace(n,d)),g=!1):(j+="<",a=a.substring(1)));g&&(f=a.indexOf("<"),j+=0>f?a:a.substring(0,f),a=0>f?"":a.substring(f),c.chars&&c.chars(h(j)))}if(a==l)throw m("badparse","The sanitizer was unable to parse the following block of html: {0}",a);l=a}e()}function h(a){if(!a)return"";var b=N.exec(a),c=b[1],d=b[3],e=b[2];return e&&(M.innerHTML=e.replace(/</g,"&lt;"),e="textContent"in M?M.textContent:M.innerText),c+e+d}function i(a){return a.replace(/&/g,"&amp;").replace(w,function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1);return"&#"+(1024*(b-55296)+(c-56320)+65536)+";"}).replace(x,function(a){var b=a.charCodeAt(0);return 159>=b||173==b||b>=1536&&1540>=b||1807==b||6068==b||6069==b||b>=8204&&8207>=b||b>=8232&&8239>=b||b>=8288&&8303>=b||65279==b||b>=65520&&65535>=b?"&#"+b+";":a}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function j(a){var c="",d=a.split(";");return b.forEach(d,function(a){var d=a.split(":");if(2==d.length){var e=O(b.lowercase(d[0])),a=O(b.lowercase(d[1]));(("color"===e||"background-color"===e)&&(a.match(/^rgb\([0-9%,\. ]*\)$/i)||a.match(/^rgba\([0-9%,\. ]*\)$/i)||a.match(/^hsl\([0-9%,\. ]*\)$/i)||a.match(/^hsla\([0-9%,\. ]*\)$/i)||a.match(/^#[0-9a-f]{3,6}$/i)||a.match(/^[a-z]*$/i))||"text-align"===e&&("left"===a||"right"===a||"center"===a||"justify"===a)||"float"===e&&("left"===a||"right"===a||"none"===a)||("width"===e||"height"===e)&&a.match(/[0-9\.]*(px|em|rem|%)/)||"direction"===e&&a.match(/^ltr|rtl|initial|inherit$/))&&(c+=e+": "+a+";")}}),c}function k(a,b,c,d){return!("img"!==a||!b["ta-insert-video"]||"ta-insert-video"!==c&&"allowfullscreen"!==c&&"frameborder"!==c&&("contenteditable"!==c||"false"!==d))}function l(a,c){var d=!1,e=b.bind(a,a.push);return{start:function(a,f,g){a=b.lowercase(a),!d&&G[a]&&(d=a),d||H[a]!==!0||(e("<"),e(a),b.forEach(f,function(d,g){var h=b.lowercase(g),l="img"===a&&"src"===h||"background"===h;("style"===h&&""!==(d=j(d))||k(a,f,h,d)||L[h]===!0&&(I[h]!==!0||c(d,l)))&&(e(" "),e(g),e('="'),e(i(d)),e('"'))}),e(g?"/>":">"))},comment:function(a){e(a)},whitespace:function(a){e(i(a))},end:function(a){a=b.lowercase(a),d||H[a]!==!0||(e("</"),e(a),e(">")),a==d&&(d=!1)},chars:function(a){d||e(i(a))}}}var m=b.$$minErr("$sanitize"),n=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,o=/^<\/\s*([\w:-]+)[^>]*>/,p=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,q=/^</,r=/^<\//,s=/<!--(.*?)-->/g,t=/(^<!--.*?-->)/,u=/<!DOCTYPE([^>]*?)>/i,v=/<!\[CDATA\[(.*?)]]>/g,w=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,x=/([^\#-~| |!])/g,y=/^(\s+)/,z=f("area,br,col,hr,img,wbr,input"),A=f("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),B=f("rp,rt"),C=b.extend({},B,A),D=b.extend({},A,f("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),E=b.extend({},B,f("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),F=f("animate,animateColor,animateMotion,animateTransform,circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,set,stop,svg,switch,text,title,tspan,use"),G=f("script,style"),H=b.extend({},z,D,E,C,F),I=f("background,cite,href,longdesc,src,usemap,xlink:href"),J=f("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,id,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,target,title,type,valign,value,vspace,width"),K=f("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,attributeName,attributeType,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan"),L=b.extend({},I,K,J),M=document.createElement("pre"),N=/^(\s*)([\s\S]*?)(\s*)$/,O=function(){return String.prototype.trim?function(a){return b.isString(a)?a.trim():a}:function(a){return b.isString(a)?a.replace(/^\s\s*/,"").replace(/\s\s*$/,""):a}}();b.module("ngSanitize",[]).provider("$sanitize",d),b.module("ngSanitize").filter("linky",["$sanitize",function(a){var c=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"”’]/,d=/^mailto:/;return function(f,g){function h(a){a&&n.push(e(a))}function i(a,c){n.push("<a "),b.isDefined(g)&&n.push('target="',g,'" '),n.push('href="',a.replace(/"/g,"&quot;"),'">'),h(c),n.push("</a>")}if(!f)return f;for(var j,k,l,m=f,n=[];j=m.match(c);)k=j[0],j[2]||j[4]||(k=(j[3]?"http://":"mailto:")+k),l=j.index,h(m.substr(0,l)),i(k,j[0].replace(d,"")),m=m.substring(l+j[0].length);return h(m),a(n.join(""))}}])}(window,window.angular);var taTools={};angular.module("textAngularSetup",[]).constant("taRegisterTool",registerTextAngularTool).value("taTools",taTools).value("taOptions",{forceTextAngularSanitize:!0,keyMappings:[],toolbar:[["h1","h2","h3","h4","h5","h6","p","pre","quote"],["bold","italics","underline","strikeThrough","ul","ol","redo","undo","clear"],["justifyLeft","justifyCenter","justifyRight","justifyFull","indent","outdent"],["html","insertImage","insertLink","insertVideo","wordcount","charcount"]],classes:{focussed:"focussed",toolbar:"btn-toolbar",toolbarGroup:"btn-group",toolbarButton:"btn btn-default",toolbarButtonActive:"active",disabled:"disabled",
+textEditor:"form-control",htmlEditor:"form-control"},defaultTagAttributes:{a:{target:""}},setup:{textEditorSetup:function(a){},htmlEditorSetup:function(a){}},defaultFileDropHandler:function(a,b){var c=new FileReader;return"image"===a.type.substring(0,5)?(c.onload=function(){""!==c.result&&b("insertImage",c.result,!0)},c.readAsDataURL(a),!0):!1}}).value("taSelectableElements",["a","img"]).value("taCustomRenderers",[{selector:"img",customAttribute:"ta-insert-video",renderLogic:function(a){var b=angular.element("<iframe></iframe>"),c=a.prop("attributes");angular.forEach(c,function(a){b.attr(a.name,a.value)}),b.attr("src",b.attr("ta-insert-video")),a.replaceWith(b)}}]).value("taTranslations",{html:{tooltip:"Toggle html / Rich Text"},heading:{tooltip:"Heading "},p:{tooltip:"Paragraph"},pre:{tooltip:"Preformatted text"},ul:{tooltip:"Unordered List"},ol:{tooltip:"Ordered List"},quote:{tooltip:"Quote/unquote selection or paragraph"},undo:{tooltip:"Undo"},redo:{tooltip:"Redo"},bold:{tooltip:"Bold"},italic:{tooltip:"Italic"},underline:{tooltip:"Underline"},strikeThrough:{tooltip:"Strikethrough"},justifyLeft:{tooltip:"Align text left"},justifyRight:{tooltip:"Align text right"},justifyFull:{tooltip:"Justify text"},justifyCenter:{tooltip:"Center"},indent:{tooltip:"Increase indent"},outdent:{tooltip:"Decrease indent"},clear:{tooltip:"Clear formatting"},insertImage:{dialogPrompt:"Please enter an image URL to insert",tooltip:"Insert image",hotkey:"the - possibly language dependent hotkey ... for some future implementation"},insertVideo:{tooltip:"Insert video",dialogPrompt:"Please enter a youtube URL to embed"},insertLink:{tooltip:"Insert / edit link",dialogPrompt:"Please enter a URL to insert"},editLink:{reLinkButton:{tooltip:"Relink"},unLinkButton:{tooltip:"Unlink"},targetToggle:{buttontext:"Open in New Window"}},wordcount:{tooltip:"Display words Count"},charcount:{tooltip:"Display characters Count"}}).factory("taToolFunctions",["$window","taTranslations",function(a,b){return{imgOnSelectAction:function(a,b,c){var d=function(){c.updateTaBindtaTextElement(),c.hidePopover()};a.preventDefault(),c.displayElements.popover.css("width","375px");var e=c.displayElements.popoverContainer;e.empty();var f=angular.element('<div class="btn-group" style="padding-right: 6px;">'),g=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">100% </button>');g.on("click",function(a){a.preventDefault(),b.css({width:"100%",height:""}),d()});var h=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">50% </button>');h.on("click",function(a){a.preventDefault(),b.css({width:"50%",height:""}),d()});var i=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">25% </button>');i.on("click",function(a){a.preventDefault(),b.css({width:"25%",height:""}),d()});var j=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">Reset</button>');j.on("click",function(a){a.preventDefault(),b.css({width:"",height:""}),d()}),f.append(g),f.append(h),f.append(i),f.append(j),e.append(f),f=angular.element('<div class="btn-group" style="padding-right: 6px;">');var k=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-left"></i></button>');k.on("click",function(a){a.preventDefault(),b.css("float","left"),b.css("cssFloat","left"),b.css("styleFloat","left"),d()});var l=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-right"></i></button>');l.on("click",function(a){a.preventDefault(),b.css("float","right"),b.css("cssFloat","right"),b.css("styleFloat","right"),d()});var m=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-justify"></i></button>');m.on("click",function(a){a.preventDefault(),b.css("float",""),b.css("cssFloat",""),b.css("styleFloat",""),d()}),f.append(k),f.append(m),f.append(l),e.append(f),f=angular.element('<div class="btn-group">');var n=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-trash-o"></i></button>');n.on("click",function(a){a.preventDefault(),b.remove(),d()}),f.append(n),e.append(f),c.showPopover(b),c.showResizeOverlay(b)},aOnSelectAction:function(c,d,e){c.preventDefault(),e.displayElements.popover.css("width","436px");var f=e.displayElements.popoverContainer;f.empty(),f.css("line-height","28px");var g=angular.element('<a href="'+d.attr("href")+'" target="_blank">'+d.attr("href")+"</a>");g.css({display:"inline-block","max-width":"200px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap","vertical-align":"middle"}),f.append(g);var h=angular.element('<div class="btn-group pull-right">'),i=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on" title="'+b.editLink.reLinkButton.tooltip+'"><i class="fa fa-edit icon-edit"></i></button>');i.on("click",function(c){c.preventDefault();var f=a.prompt(b.insertLink.dialogPrompt,d.attr("href"));f&&""!==f&&"http://"!==f&&(d.attr("href",f),e.updateTaBindtaTextElement()),e.hidePopover()}),h.append(i);var j=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on" title="'+b.editLink.unLinkButton.tooltip+'"><i class="fa fa-unlink icon-unlink"></i></button>');j.on("click",function(a){a.preventDefault(),d.replaceWith(d.contents()),e.updateTaBindtaTextElement(),e.hidePopover()}),h.append(j);var k=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on">'+b.editLink.targetToggle.buttontext+"</button>");"_blank"===d.attr("target")&&k.addClass("active"),k.on("click",function(a){a.preventDefault(),d.attr("target","_blank"===d.attr("target")?"":"_blank"),k.toggleClass("active"),e.updateTaBindtaTextElement()}),h.append(k),f.append(h),e.showPopover(d)},extractYoutubeVideoId:function(a){var b=/(?:youtube(?:-nocookie)?\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/i,c=a.match(b);return c&&c[1]||null}}}]).run(["taRegisterTool","$window","taTranslations","taSelection","taToolFunctions","$sanitize","taOptions",function(a,b,c,d,e,f,g){var h={};if(f("",h),g.forceTextAngularSanitize===!0&&"taSanitize"!==h.version)throw angular.$$minErr("textAngular")("textAngularSetup","The textAngular-sanitize provider has been replaced by another -- have you included angular-sanitize by mistake?");a("html",{iconclass:"fa fa-code",tooltiptext:c.html.tooltip,action:function(){this.$editor().switchView()},activeState:function(){return this.$editor().showHtml}});var i=function(a){return function(){return this.$editor().queryFormatBlockState(a)}},j=function(){return this.$editor().wrapSelection("formatBlock","<"+this.name.toUpperCase()+">")};angular.forEach(["h1","h2","h3","h4","h5","h6"],function(b){a(b.toLowerCase(),{buttontext:b.toUpperCase(),tooltiptext:c.heading.tooltip+b.charAt(1),action:j,activeState:i(b.toLowerCase())})}),a("p",{buttontext:"P",tooltiptext:c.p.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<P>")},activeState:function(){return this.$editor().queryFormatBlockState("p")}}),a("pre",{buttontext:"pre",tooltiptext:c.pre.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<PRE>")},activeState:function(){return this.$editor().queryFormatBlockState("pre")}}),a("ul",{iconclass:"fa fa-list-ul",tooltiptext:c.ul.tooltip,action:function(){return this.$editor().wrapSelection("insertUnorderedList",null)},activeState:function(){return this.$editor().queryCommandState("insertUnorderedList")}}),a("ol",{iconclass:"fa fa-list-ol",tooltiptext:c.ol.tooltip,action:function(){return this.$editor().wrapSelection("insertOrderedList",null)},activeState:function(){return this.$editor().queryCommandState("insertOrderedList")}}),a("quote",{iconclass:"fa fa-quote-right",tooltiptext:c.quote.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<BLOCKQUOTE>")},activeState:function(){return this.$editor().queryFormatBlockState("blockquote")}}),a("undo",{iconclass:"fa fa-undo",tooltiptext:c.undo.tooltip,action:function(){return this.$editor().wrapSelection("undo",null)}}),a("redo",{iconclass:"fa fa-repeat",tooltiptext:c.redo.tooltip,action:function(){return this.$editor().wrapSelection("redo",null)}}),a("bold",{iconclass:"fa fa-bold",tooltiptext:c.bold.tooltip,action:function(){return this.$editor().wrapSelection("bold",null)},activeState:function(){return this.$editor().queryCommandState("bold")},commandKeyCode:98}),a("justifyLeft",{iconclass:"fa fa-align-left",tooltiptext:c.justifyLeft.tooltip,action:function(){return this.$editor().wrapSelection("justifyLeft",null)},activeState:function(a){if(a&&"#document"===a.nodeName)return!1;var b=!1;return a&&(b="left"===a.css("text-align")||"left"===a.attr("align")||"right"!==a.css("text-align")&&"center"!==a.css("text-align")&&"justify"!==a.css("text-align")&&!this.$editor().queryCommandState("justifyRight")&&!this.$editor().queryCommandState("justifyCenter")&&!this.$editor().queryCommandState("justifyFull")),b=b||this.$editor().queryCommandState("justifyLeft")}}),a("justifyRight",{iconclass:"fa fa-align-right",tooltiptext:c.justifyRight.tooltip,action:function(){return this.$editor().wrapSelection("justifyRight",null)},activeState:function(a){if(a&&"#document"===a.nodeName)return!1;var b=!1;return a&&(b="right"===a.css("text-align")),b=b||this.$editor().queryCommandState("justifyRight")}}),a("justifyFull",{iconclass:"fa fa-align-justify",tooltiptext:c.justifyFull.tooltip,action:function(){return this.$editor().wrapSelection("justifyFull",null)},activeState:function(a){var b=!1;return a&&(b="justify"===a.css("text-align")),b=b||this.$editor().queryCommandState("justifyFull")}}),a("justifyCenter",{iconclass:"fa fa-align-center",tooltiptext:c.justifyCenter.tooltip,action:function(){return this.$editor().wrapSelection("justifyCenter",null)},activeState:function(a){if(a&&"#document"===a.nodeName)return!1;var b=!1;return a&&(b="center"===a.css("text-align")),b=b||this.$editor().queryCommandState("justifyCenter")}}),a("indent",{iconclass:"fa fa-indent",tooltiptext:c.indent.tooltip,action:function(){return this.$editor().wrapSelection("indent",null)},activeState:function(){return this.$editor().queryFormatBlockState("blockquote")},commandKeyCode:"TabKey"}),a("outdent",{iconclass:"fa fa-outdent",tooltiptext:c.outdent.tooltip,action:function(){return this.$editor().wrapSelection("outdent",null)},activeState:function(){return!1},commandKeyCode:"ShiftTabKey"}),a("italics",{iconclass:"fa fa-italic",tooltiptext:c.italic.tooltip,action:function(){return this.$editor().wrapSelection("italic",null)},activeState:function(){return this.$editor().queryCommandState("italic")},commandKeyCode:105}),a("underline",{iconclass:"fa fa-underline",tooltiptext:c.underline.tooltip,action:function(){return this.$editor().wrapSelection("underline",null)},activeState:function(){return this.$editor().queryCommandState("underline")},commandKeyCode:117}),a("strikeThrough",{iconclass:"fa fa-strikethrough",tooltiptext:c.strikeThrough.tooltip,action:function(){return this.$editor().wrapSelection("strikeThrough",null)},activeState:function(){return document.queryCommandState("strikeThrough")}}),a("clear",{iconclass:"fa fa-ban",tooltiptext:c.clear.tooltip,action:function(a,b){var c;this.$editor().wrapSelection("removeFormat",null);var e=angular.element(d.getSelectionElement()),f=function(a){a=angular.element(a);var b=a;angular.forEach(a.children(),function(a){var c=angular.element("<p></p>");c.html(angular.element(a).html()),b.after(c),b=c}),a.remove()};if(angular.forEach(e.find("ul"),f),angular.forEach(e.find("ol"),f),"li"===e[0].tagName.toLowerCase()){var g=e[0].parentNode.childNodes,h=[],i=[],j=!1;for(c=0;c<g.length;c++)g[c]===e[0]?j=!0:j?i.push(g[c]):h.push(g[c]);var k=angular.element(e[0].parentNode),l=angular.element("<p></p>");if(l.html(angular.element(e[0]).html()),0===h.length||0===i.length)0===i.length?k.after(l):k[0].parentNode.insertBefore(l[0],k[0]),0===h.length&&0===i.length?k.remove():angular.element(e[0]).remove();else{var m=angular.element("<"+k[0].tagName+"></"+k[0].tagName+">"),n=angular.element("<"+k[0].tagName+"></"+k[0].tagName+">");for(c=0;c<h.length;c++)m.append(angular.element(h[c]));for(c=0;c<i.length;c++)n.append(angular.element(i[c]));k.after(n),k.after(l),k.after(m),k.remove()}d.setSelectionToElementEnd(l[0])}var o=this.$editor(),p=function(a){a=angular.element(a),a[0]!==o.displayElements.text[0]&&a.removeAttr("class"),angular.forEach(a.children(),p)};angular.forEach(e,p),"li"!==e[0].tagName.toLowerCase()&&"ol"!==e[0].tagName.toLowerCase()&&"ul"!==e[0].tagName.toLowerCase()&&this.$editor().wrapSelection("formatBlock","default"),b()}}),a("insertImage",{iconclass:"fa fa-picture-o",tooltiptext:c.insertImage.tooltip,action:function(){var a;return a=b.prompt(c.insertImage.dialogPrompt,"http://"),a&&""!==a&&"http://"!==a?this.$editor().wrapSelection("insertImage",a,!0):void 0},onElementSelect:{element:"img",action:e.imgOnSelectAction}}),a("insertVideo",{iconclass:"fa fa-youtube-play",tooltiptext:c.insertVideo.tooltip,action:function(){var a;if(a=b.prompt(c.insertVideo.dialogPrompt,"https://"),a&&""!==a&&"https://"!==a&&(videoId=e.extractYoutubeVideoId(a),videoId)){var d="https://www.youtube.com/embed/"+videoId,f='<img class="ta-insert-video" src="https://img.youtube.com/vi/'+videoId+'/hqdefault.jpg" ta-insert-video="'+d+'" contenteditable="false" allowfullscreen="true" frameborder="0" />';return this.$editor().wrapSelection("insertHTML",f,!0)}},onElementSelect:{element:"img",onlyWithAttrs:["ta-insert-video"],action:e.imgOnSelectAction}}),a("insertLink",{tooltiptext:c.insertLink.tooltip,iconclass:"fa fa-link",action:function(){var a;return a=b.prompt(c.insertLink.dialogPrompt,"http://"),a&&""!==a&&"http://"!==a?this.$editor().wrapSelection("createLink",a,!0):void 0},activeState:function(a){return a?"A"===a[0].tagName:!1},onElementSelect:{element:"a",action:e.aOnSelectAction}}),a("wordcount",{display:'<div id="toolbarWC" style="display:block; min-width:100px;">Words: <span ng-bind="wordcount"></span></div>',disabled:!0,wordcount:0,activeState:function(){var a=this.$editor().displayElements.text,b=a[0].innerHTML||"",c=0;return""!==b.replace(/\s*<[^>]*?>\s*/g,"")&&(c=b.replace(/<\/?(b|i|em|strong|span|u|strikethrough|a|img|small|sub|sup|label)( [^>*?])?>/gi,"").replace(/(<[^>]*?>\s*<[^>]*?>)/gi," ").replace(/(<[^>]*?>)/gi,"").replace(/\s+/gi," ").match(/\S+/g).length),this.wordcount=c,this.$editor().wordcount=c,!1}}),a("charcount",{display:'<div id="toolbarCC" style="display:block; min-width:120px;">Characters: <span ng-bind="charcount"></span></div>',disabled:!0,charcount:0,activeState:function(){var a=this.$editor().displayElements.text,b=a[0].innerText||a[0].textContent,c=b.replace(/(\r\n|\n|\r)/gm,"").replace(/^\s+/g," ").replace(/\s+$/g," ").length;return this.charcount=c,this.$editor().charcount=c,!1}})}]),angular.module("ui.navbar",["ui.bootstrap","template/navbar-ul.html","template/navbar-li.html"]).directive("tree",function(){return{restrict:"E",replace:!0,scope:{tree:"="},templateUrl:"template/navbar-ul.html"}}).directive("leaf",["$compile",function(a){return{restrict:"E",replace:!0,scope:{leaf:"="},templateUrl:"template/navbar-li.html",link:function(b,c,d){if(angular.isArray(b.leaf.subtree)){c.append('<tree tree="leaf.subtree"></tree>');for(var e=c.parent(),f=!1;e.length>0&&!f;)e.hasClass("navbar-right")&&(f=!0),e=e.parent();f?c.addClass("dropdown-submenu-right"):c.addClass("dropdown-submenu"),a(c.contents())(b)}}}}]),angular.module("template/navbar-li.html",[]).run(["$templateCache",function(a){a.put("template/navbar-li.html",'<li ng-class="{divider: leaf.name == \'divider\'}">\n    <a ui-sref="{{leaf.link}}" ng-if="leaf.name !== \'divider\'">{{leaf.name}}</a>\n</li>')}]),angular.module("template/navbar-ul.html",[]).run(["$templateCache",function(a){a.put("template/navbar-ul.html","<ul class='dropdown-menu'>\n    <leaf ng-repeat='leaf in tree' leaf='leaf'></leaf>\n</ul>")}]),function(){"use strict";var a={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,COMMAND:91,MAP:{91:"COMMAND",8:"BACKSPACE",9:"TAB",13:"ENTER",16:"SHIFT",17:"CTRL",18:"ALT",19:"PAUSEBREAK",20:"CAPSLOCK",27:"ESC",32:"SPACE",33:"PAGE_UP",34:"PAGE_DOWN",35:"END",36:"HOME",37:"LEFT",38:"UP",39:"RIGHT",40:"DOWN",43:"+",44:"PRINTSCREEN",45:"INSERT",46:"DELETE",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NUMLOCK",145:"SCROLLLOCK",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},isControl:function(b){var c=b.which;switch(c){case a.COMMAND:case a.SHIFT:case a.CTRL:case a.ALT:return!0}return!!b.metaKey},isFunctionKey:function(a){return a=a.which?a.which:a,a>=112&&123>=a},isVerticalMovement:function(b){return~[a.UP,a.DOWN].indexOf(b)},isHorizontalMovement:function(b){return~[a.LEFT,a.RIGHT,a.BACKSPACE,a.DELETE].indexOf(b)}};void 0===angular.element.prototype.querySelectorAll&&(angular.element.prototype.querySelectorAll=function(a){return angular.element(this[0].querySelectorAll(a))}),void 0===angular.element.prototype.closest&&(angular.element.prototype.closest=function(a){for(var b=this[0],c=b.matches||b.webkitMatchesSelector||b.mozMatchesSelector||b.msMatchesSelector;b;){if(c.bind(b)(a))return b;b=b.parentElement}return!1});var b=0,c=angular.module("ui.select",[]).constant("uiSelectConfig",{theme:"bootstrap",searchEnabled:!0,sortable:!1,placeholder:"",refreshDelay:1e3,closeOnSelect:!0,dropdownPosition:"auto",generateId:function(){return b++},appendToBody:!1}).service("uiSelectMinErr",function(){var a=angular.$$minErr("ui.select");return function(){var b=a.apply(this,arguments),c=b.message.replace(new RegExp("\nhttp://errors.angularjs.org/.*"),"");return new Error(c)}}).directive("uisTranscludeAppend",function(){return{link:function(a,b,c,d,e){e(a,function(a){b.append(a)})}}}).filter("highlight",function(){function a(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(b,c){return c&&b?b.replace(new RegExp(a(c),"gi"),'<span class="ui-select-highlight">$&</span>'):b}}).factory("uisOffset",["$document","$window",function(a,b){return function(c){var d=c[0].getBoundingClientRect();return{width:d.width||c.prop("offsetWidth"),height:d.height||c.prop("offsetHeight"),top:d.top+(b.pageYOffset||a[0].documentElement.scrollTop),left:d.left+(b.pageXOffset||a[0].documentElement.scrollLeft)}}}]);c.directive("uiSelectChoices",["uiSelectConfig","uisRepeatParser","uiSelectMinErr","$compile",function(a,b,c,d){return{restrict:"EA",require:"^uiSelect",replace:!0,transclude:!0,templateUrl:function(b){var c=b.parent().attr("theme")||a.theme;return c+"/choices.tpl.html"},compile:function(e,f){if(!f.repeat)throw c("repeat","Expected 'repeat' expression.");return function(e,f,g,h,i){var j=g.groupBy,k=g.groupFilter;if(h.parseRepeatAttr(g.repeat,j,k),h.disableChoiceExpression=g.uiDisableChoice,h.onHighlightCallback=g.onHighlight,h.dropdownPosition=g.position?g.position.toLowerCase():a.dropdownPosition,j){var l=f.querySelectorAll(".ui-select-choices-group");if(1!==l.length)throw c("rows","Expected 1 .ui-select-choices-group but got '{0}'.",l.length);l.attr("ng-repeat",b.getGroupNgRepeatExpression())}var m=f.querySelectorAll(".ui-select-choices-row");if(1!==m.length)throw c("rows","Expected 1 .ui-select-choices-row but got '{0}'.",m.length);m.attr("ng-repeat",h.parserResult.repeatExpression(j)).attr("ng-if","$select.open").attr("ng-click","$select.select("+h.parserResult.itemName+",false,$event)");var n=f.querySelectorAll(".ui-select-choices-row-inner");if(1!==n.length)throw c("rows","Expected 1 .ui-select-choices-row-inner but got '{0}'.",n.length);n.attr("uis-transclude-append",""),d(f,i)(e),e.$watch("$select.search",function(a){a&&!h.open&&h.multiple&&h.activate(!1,!0),h.activeIndex=h.tagging.isActivated?-1:0,h.refresh(g.refresh)}),g.$observe("refreshDelay",function(){var b=e.$eval(g.refreshDelay);h.refreshDelay=void 0!==b?b:a.refreshDelay})}}}}]),c.controller("uiSelectCtrl",["$scope","$element","$timeout","$filter","uisRepeatParser","uiSelectMinErr","uiSelectConfig","$parse",function(b,c,d,e,f,g,h,i){function j(){(n.resetSearchInput||void 0===n.resetSearchInput&&h.resetSearchInput)&&(n.search=o,n.selected&&n.items.length&&!n.multiple&&(n.activeIndex=n.items.indexOf(n.selected)))}function k(a,b){var c,d,e=[];for(c=0;c<b.length;c++)for(d=0;d<a.length;d++)a[d].name==[b[c]]&&e.push(a[d]);return e}function l(b){var c=!0;switch(b){case a.DOWN:!n.open&&n.multiple?n.activate(!1,!0):n.activeIndex<n.items.length-1&&n.activeIndex++;break;case a.UP:!n.open&&n.multiple?n.activate(!1,!0):(n.activeIndex>0||0===n.search.length&&n.tagging.isActivated&&n.activeIndex>-1)&&n.activeIndex--;break;case a.TAB:n.multiple&&!n.open||n.select(n.items[n.activeIndex],!0);break;case a.ENTER:n.open&&(n.tagging.isActivated||n.activeIndex>=0)?n.select(n.items[n.activeIndex]):n.activate(!1,!0);break;case a.ESC:n.close();break;default:c=!1}return c}function m(){var a=c.querySelectorAll(".ui-select-choices-content"),b=a.querySelectorAll(".ui-select-choices-row");if(b.length<1)throw g("choices","Expected multiple .ui-select-choices-row but got '{0}'.",b.length);if(!(n.activeIndex<0)){var d=b[n.activeIndex],e=d.offsetTop+d.clientHeight-a[0].scrollTop,f=a[0].offsetHeight;e>f?a[0].scrollTop+=e-f:e<d.clientHeight&&(n.isGrouped&&0===n.activeIndex?a[0].scrollTop=0:a[0].scrollTop-=d.clientHeight-e)}}var n=this,o="";if(n.placeholder=h.placeholder,n.searchEnabled=h.searchEnabled,n.sortable=h.sortable,n.refreshDelay=h.refreshDelay,n.removeSelected=!1,n.closeOnSelect=!0,n.search=o,n.activeIndex=0,n.items=[],n.open=!1,n.focus=!1,n.disabled=!1,n.selected=void 0,n.dropdownPosition="auto",n.focusser=void 0,n.resetSearchInput=!0,n.multiple=void 0,n.disableChoiceExpression=void 0,n.tagging={isActivated:!1,fct:void 0},n.taggingTokens={isActivated:!1,tokens:void 0},n.lockChoiceExpression=void 0,n.clickTriggeredSelect=!1,n.$filter=e,n.searchInput=c.querySelectorAll("input.ui-select-search"),1!==n.searchInput.length)throw g("searchInput","Expected 1 input.ui-select-search but got '{0}'.",n.searchInput.length);n.isEmpty=function(){return angular.isUndefined(n.selected)||null===n.selected||""===n.selected},n.activate=function(a,c){n.disabled||n.open||(c||j(),b.$broadcast("uis:activate"),n.open=!0,n.activeIndex=n.activeIndex>=n.items.length?0:n.activeIndex,-1===n.activeIndex&&n.taggingLabel!==!1&&(n.activeIndex=0),d(function(){n.search=a||n.search,n.searchInput[0].focus(),!n.tagging.isActivated&&n.items.length>1&&m()}))},n.findGroupByName=function(a){return n.groups&&n.groups.filter(function(b){return b.name===a})[0]},n.parseRepeatAttr=function(a,c,d){function e(a){var e=b.$eval(c);if(n.groups=[],angular.forEach(a,function(a){var b=angular.isFunction(e)?e(a):a[e],c=n.findGroupByName(b);c?c.items.push(a):n.groups.push({name:b,items:[a]})}),d){var f=b.$eval(d);angular.isFunction(f)?n.groups=f(n.groups):angular.isArray(f)&&(n.groups=k(n.groups,f))}n.items=[],n.groups.forEach(function(a){n.items=n.items.concat(a.items)})}function h(a){n.items=a}n.setItemsFn=c?e:h,n.parserResult=f.parse(a),n.isGrouped=!!c,n.itemProperty=n.parserResult.itemName;var j=n.parserResult.source,l=function(){var a=j(b);b.$uisSource=Object.keys(a).map(function(b){var c={};return c[n.parserResult.keyName]=b,c.value=a[b],c})};n.parserResult.keyName&&(l(),n.parserResult.source=i("$uisSource"+n.parserResult.filters),b.$watch(j,function(a,b){a!==b&&l()},!0)),n.refreshItems=function(a){a=a||n.parserResult.source(b);var c=n.selected;if(n.isEmpty()||angular.isArray(c)&&!c.length||!n.removeSelected)n.setItemsFn(a);else if(void 0!==a){var d=a.filter(function(a){return c&&c.indexOf(a)<0});n.setItemsFn(d)}"auto"!==n.dropdownPosition&&"up"!==n.dropdownPosition||b.calculateDropdownPos()},b.$watchCollection(n.parserResult.source,function(a){if(void 0===a||null===a)n.items=[];else{if(!angular.isArray(a))throw g("items","Expected an array but got '{0}'.",a);n.refreshItems(a),n.ngModel.$modelValue=null}})};var p;n.refresh=function(a){void 0!==a&&(p&&d.cancel(p),p=d(function(){b.$eval(a)},n.refreshDelay))},n.isActive=function(a){if(!n.open)return!1;var b=n.items.indexOf(a[n.itemProperty]),c=b===n.activeIndex;return!c||0>b&&n.taggingLabel!==!1||0>b&&n.taggingLabel===!1?!1:(c&&!angular.isUndefined(n.onHighlightCallback)&&a.$eval(n.onHighlightCallback),c)},n.isDisabled=function(a){if(n.open){var b,c=n.items.indexOf(a[n.itemProperty]),d=!1;return c>=0&&!angular.isUndefined(n.disableChoiceExpression)&&(b=n.items[c],d=!!a.$eval(n.disableChoiceExpression),b._uiSelectChoiceDisabled=d),d}},n.select=function(a,c,e){if(void 0===a||!a._uiSelectChoiceDisabled){if(!n.items&&!n.search)return;if(!a||!a._uiSelectChoiceDisabled){if(n.tagging.isActivated){if(n.taggingLabel===!1)if(n.activeIndex<0){if(a=void 0!==n.tagging.fct?n.tagging.fct(n.search):n.search,!a||angular.equals(n.items[0],a))return}else a=n.items[n.activeIndex];else if(0===n.activeIndex){if(void 0===a)return;if(void 0!==n.tagging.fct&&"string"==typeof a){if(a=n.tagging.fct(n.search),!a)return}else"string"==typeof a&&(a=a.replace(n.taggingLabel,"").trim())}if(n.selected&&angular.isArray(n.selected)&&n.selected.filter(function(b){return angular.equals(b,a)}).length>0)return void n.close(c)}b.$broadcast("uis:select",a);var f={};f[n.parserResult.itemName]=a,d(function(){n.onSelectCallback(b,{$item:a,$model:n.parserResult.modelMapper(b,f)})}),n.closeOnSelect&&n.close(c),e&&"click"===e.type&&(n.clickTriggeredSelect=!0)}}},n.close=function(a){n.open&&(n.ngModel&&n.ngModel.$setTouched&&n.ngModel.$setTouched(),j(),n.open=!1,b.$broadcast("uis:close",a))},n.setFocus=function(){n.focus||n.focusInput[0].focus()},n.clear=function(a){n.select(void 0),a.stopPropagation(),d(function(){n.focusser[0].focus()},0,!1)},n.toggle=function(a){n.open?(n.close(),a.preventDefault(),a.stopPropagation()):n.activate()},n.isLocked=function(a,b){var c,d=n.selected[b];return d&&!angular.isUndefined(n.lockChoiceExpression)&&(c=!!a.$eval(n.lockChoiceExpression),d._uiSelectChoiceLocked=c),c};var q=null;n.sizeSearchInput=function(){var a=n.searchInput[0],c=n.searchInput.parent().parent()[0],e=function(){return c.clientWidth*!!a.offsetParent},f=function(b){if(0===b)return!1;var c=b-a.offsetLeft-10;return 50>c&&(c=b),n.searchInput.css("width",c+"px"),!0};n.searchInput.css("width","10px"),d(function(){null!==q||f(e())||(q=b.$watch(e,function(a){f(a)&&(q(),q=null)}))})},n.searchInput.on("keydown",function(c){var e=c.which;b.$apply(function(){var b=!1;if((n.items.length>0||n.tagging.isActivated)&&(l(e),n.taggingTokens.isActivated)){for(var f=0;f<n.taggingTokens.tokens.length;f++)n.taggingTokens.tokens[f]===a.MAP[c.keyCode]&&n.search.length>0&&(b=!0);b&&d(function(){n.searchInput.triggerHandler("tagged");var b=n.search.replace(a.MAP[c.keyCode],"").trim();n.tagging.fct&&(b=n.tagging.fct(b)),b&&n.select(b,!0)})}}),a.isVerticalMovement(e)&&n.items.length>0&&m(),e!==a.ENTER&&e!==a.ESC||(c.preventDefault(),c.stopPropagation())}),n.searchInput.on("paste",function(a){var b=a.originalEvent.clipboardData.getData("text/plain");if(b&&b.length>0&&n.taggingTokens.isActivated&&n.tagging.fct){var c=b.split(n.taggingTokens.tokens[0]);c&&c.length>0&&(angular.forEach(c,function(a){var b=n.tagging.fct(a);b&&n.select(b,!0)}),a.preventDefault(),a.stopPropagation())}}),n.searchInput.on("tagged",function(){d(function(){j()})}),b.$on("$destroy",function(){n.searchInput.off("keyup keydown tagged blur paste")})}]),c.directive("uiSelect",["$document","uiSelectConfig","uiSelectMinErr","uisOffset","$compile","$parse","$timeout",function(a,b,c,d,e,f,g){return{restrict:"EA",templateUrl:function(a,c){var d=c.theme||b.theme;return d+(angular.isDefined(c.multiple)?"/select-multiple.tpl.html":"/select.tpl.html")},replace:!0,transclude:!0,require:["uiSelect","^ngModel"],scope:!0,controller:"uiSelectCtrl",controllerAs:"$select",compile:function(e,h){return angular.isDefined(h.multiple)?e.append("<ui-select-multiple/>").removeAttr("multiple"):e.append("<ui-select-single/>"),h.inputId&&(e.querySelectorAll("input.ui-select-search")[0].id=h.inputId),function(e,h,i,j,k){function l(a){if(o.open){var b=!1;if(b=window.jQuery?window.jQuery.contains(h[0],a.target):h[0].contains(a.target),!b&&!o.clickTriggeredSelect){var c=["input","button","textarea"],d=angular.element(a.target).controller("uiSelect"),f=d&&d!==o;f||(f=~c.indexOf(a.target.tagName.toLowerCase())),o.close(f),e.$digest()}o.clickTriggeredSelect=!1}}function m(){var b=d(h);r=angular.element('<div class="ui-select-placeholder"></div>'),r[0].style.width=b.width+"px",r[0].style.height=b.height+"px",h.after(r),s=h[0].style.width,a.find("body").append(h),h[0].style.position="absolute",h[0].style.left=b.left+"px",h[0].style.top=b.top+"px",h[0].style.width=b.width+"px"}function n(){null!==r&&(r.replaceWith(h),r=null,h[0].style.position="",h[0].style.left="",h[0].style.top="",h[0].style.width=s)}var o=j[0],p=j[1];o.generatedId=b.generateId(),o.baseTitle=i.title||"Select box",o.focusserTitle=o.baseTitle+" focus",o.focusserId="focusser-"+o.generatedId,o.closeOnSelect=function(){return angular.isDefined(i.closeOnSelect)?f(i.closeOnSelect)():b.closeOnSelect}(),o.onSelectCallback=f(i.onSelect),o.onRemoveCallback=f(i.onRemove),o.limit=angular.isDefined(i.limit)?parseInt(i.limit,10):void 0,o.ngModel=p,o.choiceGrouped=function(a){return o.isGrouped&&a&&a.name},i.tabindex&&i.$observe("tabindex",function(a){o.focusInput.attr("tabindex",a),h.removeAttr("tabindex")}),e.$watch("searchEnabled",function(){var a=e.$eval(i.searchEnabled);o.searchEnabled=void 0!==a?a:b.searchEnabled}),e.$watch("sortable",function(){var a=e.$eval(i.sortable);o.sortable=void 0!==a?a:b.sortable}),i.$observe("disabled",function(){o.disabled=void 0!==i.disabled?i.disabled:!1}),i.$observe("resetSearchInput",function(){var a=e.$eval(i.resetSearchInput);o.resetSearchInput=void 0!==a?a:!0}),i.$observe("tagging",function(){if(void 0!==i.tagging){var a=e.$eval(i.tagging);o.tagging={isActivated:!0,fct:a!==!0?a:void 0}}else o.tagging={isActivated:!1,fct:void 0}}),i.$observe("taggingLabel",function(){void 0!==i.tagging&&("false"===i.taggingLabel?o.taggingLabel=!1:o.taggingLabel=void 0!==i.taggingLabel?i.taggingLabel:"(new)")}),i.$observe("taggingTokens",function(){if(void 0!==i.tagging){var a=void 0!==i.taggingTokens?i.taggingTokens.split("|"):[",","ENTER"];o.taggingTokens={isActivated:!0,tokens:a}}}),angular.isDefined(i.autofocus)&&g(function(){o.setFocus()}),angular.isDefined(i.focusOn)&&e.$on(i.focusOn,function(){g(function(){o.setFocus()})}),a.on("click",l),e.$on("$destroy",function(){a.off("click",l)}),k(e,function(a){var b=angular.element("<div>").append(a),d=b.querySelectorAll(".ui-select-match");if(d.removeAttr("ui-select-match"),d.removeAttr("data-ui-select-match"),1!==d.length)throw c("transcluded","Expected 1 .ui-select-match but got '{0}'.",d.length);h.querySelectorAll(".ui-select-match").replaceWith(d);var e=b.querySelectorAll(".ui-select-choices");if(e.removeAttr("ui-select-choices"),e.removeAttr("data-ui-select-choices"),1!==e.length)throw c("transcluded","Expected 1 .ui-select-choices but got '{0}'.",e.length);
+h.querySelectorAll(".ui-select-choices").replaceWith(e)});var q=e.$eval(i.appendToBody);(void 0!==q?q:b.appendToBody)&&(e.$watch("$select.open",function(a){a?m():n()}),e.$on("$destroy",function(){n()}));var r=null,s="",t=null,u="direction-up";e.$watch("$select.open",function(){"auto"!==o.dropdownPosition&&"up"!==o.dropdownPosition||e.calculateDropdownPos()});var v=function(a,b){a=a||d(h),b=b||d(t),t[0].style.position="absolute",t[0].style.top=-1*b.height+"px",h.addClass(u)},w=function(a,b){h.removeClass(u),a=a||d(h),b=b||d(t),t[0].style.position="",t[0].style.top=""};e.calculateDropdownPos=function(){if(o.open){if(t=angular.element(h).querySelectorAll(".ui-select-dropdown"),0===t.length)return;t[0].style.opacity=0,g(function(){if("up"===o.dropdownPosition)v(b,c);else{h.removeClass(u);var b=d(h),c=d(t),e=a[0].documentElement.scrollTop||a[0].body.scrollTop;b.top+b.height+c.height>e+a[0].documentElement.clientHeight?v(b,c):w(b,c)}t[0].style.opacity=1})}else{if(null===t||0===t.length)return;t[0].style.position="",t[0].style.top="",h.removeClass(u)}}}}}}]),c.directive("uiSelectMatch",["uiSelectConfig",function(a){return{restrict:"EA",require:"^uiSelect",replace:!0,transclude:!0,templateUrl:function(b){var c=b.parent().attr("theme")||a.theme,d=b.parent().attr("multiple");return c+(d?"/match-multiple.tpl.html":"/match.tpl.html")},link:function(b,c,d,e){function f(a){e.allowClear=angular.isDefined(a)?""===a?!0:"true"===a.toLowerCase():!1}e.lockChoiceExpression=d.uiLockChoice,d.$observe("placeholder",function(b){e.placeholder=void 0!==b?b:a.placeholder}),d.$observe("allowClear",f),f(d.allowClear),e.multiple&&e.sizeSearchInput()}}}]),c.directive("uiSelectMultiple",["uiSelectMinErr","$timeout",function(b,c){return{restrict:"EA",require:["^uiSelect","^ngModel"],controller:["$scope","$timeout",function(a,b){var c,d=this,e=a.$select;a.$evalAsync(function(){c=a.ngModel}),d.activeMatchIndex=-1,d.updateModel=function(){c.$setViewValue(Date.now()),d.refreshComponent()},d.refreshComponent=function(){e.refreshItems(),e.sizeSearchInput()},d.removeChoice=function(c){var f=e.selected[c];if(!f._uiSelectChoiceLocked){var g={};g[e.parserResult.itemName]=f,e.selected.splice(c,1),d.activeMatchIndex=-1,e.sizeSearchInput(),b(function(){e.onRemoveCallback(a,{$item:f,$model:e.parserResult.modelMapper(a,g)})}),d.updateModel()}},d.getPlaceholder=function(){return e.selected&&e.selected.length?void 0:e.placeholder}}],controllerAs:"$selectMultiple",link:function(d,e,f,g){function h(a){return angular.isNumber(a.selectionStart)?a.selectionStart:a.value.length}function i(b){function c(){switch(b){case a.LEFT:return~n.activeMatchIndex?k:g;case a.RIGHT:return~n.activeMatchIndex&&i!==g?j:(l.activate(),!1);case a.BACKSPACE:return~n.activeMatchIndex?(n.removeChoice(i),k):g;case a.DELETE:return~n.activeMatchIndex?(n.removeChoice(n.activeMatchIndex),i):!1}}var d=h(l.searchInput[0]),e=l.selected.length,f=0,g=e-1,i=n.activeMatchIndex,j=n.activeMatchIndex+1,k=n.activeMatchIndex-1,m=i;return d>0||l.search.length&&b==a.RIGHT?!1:(l.close(),m=c(),l.selected.length&&m!==!1?n.activeMatchIndex=Math.min(g,Math.max(f,m)):n.activeMatchIndex=-1,!0)}function j(a){if(void 0===a||void 0===l.search)return!1;var b=a.filter(function(a){return void 0===l.search.toUpperCase()||void 0===a?!1:a.toUpperCase()===l.search.toUpperCase()}).length>0;return b}function k(a,b){var c=-1;if(angular.isArray(a))for(var d=angular.copy(a),e=0;e<d.length;e++)if(void 0===l.tagging.fct)d[e]+" "+l.taggingLabel===b&&(c=e);else{var f=d[e];f.isTag=!0,angular.equals(f,b)&&(c=e)}return c}var l=g[0],m=d.ngModel=g[1],n=d.$selectMultiple;l.multiple=!0,l.removeSelected=!0,l.focusInput=l.searchInput,m.$parsers.unshift(function(){for(var a,b={},c=[],e=l.selected.length-1;e>=0;e--)b={},b[l.parserResult.itemName]=l.selected[e],a=l.parserResult.modelMapper(d,b),c.unshift(a);return c}),m.$formatters.unshift(function(a){var b,c=l.parserResult.source(d,{$select:{search:""}}),e={};if(!c)return a;var f=[],g=function(a,c){if(a&&a.length){for(var g=a.length-1;g>=0;g--){if(e[l.parserResult.itemName]=a[g],b=l.parserResult.modelMapper(d,e),l.parserResult.trackByExp){var h=/\.(.+)/.exec(l.parserResult.trackByExp);if(h.length>0&&b[h[1]]==c[h[1]])return f.unshift(a[g]),!0}if(angular.equals(b,c))return f.unshift(a[g]),!0}return!1}};if(!a)return f;for(var h=a.length-1;h>=0;h--)g(l.selected,a[h])||g(c,a[h])||f.unshift(a[h]);return f}),d.$watchCollection(function(){return m.$modelValue},function(a,b){b!=a&&(m.$modelValue=null,n.refreshComponent())}),m.$render=function(){if(!angular.isArray(m.$viewValue)){if(!angular.isUndefined(m.$viewValue)&&null!==m.$viewValue)throw b("multiarr","Expected model value to be array but got '{0}'",m.$viewValue);l.selected=[]}l.selected=m.$viewValue,d.$evalAsync()},d.$on("uis:select",function(a,b){l.selected.length>=l.limit||(l.selected.push(b),n.updateModel())}),d.$on("uis:activate",function(){n.activeMatchIndex=-1}),d.$watch("$select.disabled",function(a,b){b&&!a&&l.sizeSearchInput()}),l.searchInput.on("keydown",function(b){var c=b.which;d.$apply(function(){var d=!1;a.isHorizontalMovement(c)&&(d=i(c)),d&&c!=a.TAB&&(b.preventDefault(),b.stopPropagation())})}),l.searchInput.on("keyup",function(b){if(a.isVerticalMovement(b.which)||d.$evalAsync(function(){l.activeIndex=l.taggingLabel===!1?-1:0}),l.tagging.isActivated&&l.search.length>0){if(b.which===a.TAB||a.isControl(b)||a.isFunctionKey(b)||b.which===a.ESC||a.isVerticalMovement(b.which))return;if(l.activeIndex=l.taggingLabel===!1?-1:0,l.taggingLabel===!1)return;var c,e,f,g,h=angular.copy(l.items),i=angular.copy(l.items),m=!1,n=-1;if(void 0!==l.tagging.fct){if(f=l.$filter("filter")(h,{isTag:!0}),f.length>0&&(g=f[0]),h.length>0&&g&&(m=!0,h=h.slice(1,h.length),i=i.slice(1,i.length)),c=l.tagging.fct(l.search),c.isTag=!0,i.filter(function(a){return angular.equals(a,l.tagging.fct(l.search))}).length>0)return;c.isTag=!0}else{if(f=l.$filter("filter")(h,function(a){return a.match(l.taggingLabel)}),f.length>0&&(g=f[0]),e=h[0],void 0!==e&&h.length>0&&g&&(m=!0,h=h.slice(1,h.length),i=i.slice(1,i.length)),c=l.search+" "+l.taggingLabel,k(l.selected,l.search)>-1)return;if(j(i.concat(l.selected)))return void(m&&(h=i,d.$evalAsync(function(){l.activeIndex=0,l.items=h})));if(j(i))return void(m&&(l.items=i.slice(1,i.length)))}m&&(n=k(l.selected,c)),n>-1?h=h.slice(n+1,h.length-1):(h=[],h.push(c),h=h.concat(i)),d.$evalAsync(function(){l.activeIndex=0,l.items=h})}}),l.searchInput.on("blur",function(){c(function(){n.activeMatchIndex=-1})})}}}]),c.directive("uiSelectSingle",["$timeout","$compile",function(b,c){return{restrict:"EA",require:["^uiSelect","^ngModel"],link:function(d,e,f,g){var h=g[0],i=g[1];i.$parsers.unshift(function(a){var b,c={};return c[h.parserResult.itemName]=a,b=h.parserResult.modelMapper(d,c)}),i.$formatters.unshift(function(a){var b,c=h.parserResult.source(d,{$select:{search:""}}),e={};if(c){var f=function(c){return e[h.parserResult.itemName]=c,b=h.parserResult.modelMapper(d,e),b==a};if(h.selected&&f(h.selected))return h.selected;for(var g=c.length-1;g>=0;g--)if(f(c[g]))return c[g]}return a}),d.$watch("$select.selected",function(a){i.$viewValue!==a&&i.$setViewValue(a)}),i.$render=function(){h.selected=i.$viewValue},d.$on("uis:select",function(a,b){h.selected=b}),d.$on("uis:close",function(a,c){b(function(){h.focusser.prop("disabled",!1),c||h.focusser[0].focus()},0,!1)}),d.$on("uis:activate",function(){j.prop("disabled",!0)});var j=angular.element("<input ng-disabled='$select.disabled' class='ui-select-focusser ui-select-offscreen' type='text' id='{{ $select.focusserId }}' aria-label='{{ $select.focusserTitle }}' aria-haspopup='true' role='button' />");c(j)(d),h.focusser=j,h.focusInput=j,e.parent().append(j),j.bind("focus",function(){d.$evalAsync(function(){h.focus=!0})}),j.bind("blur",function(){d.$evalAsync(function(){h.focus=!1})}),j.bind("keydown",function(b){return b.which===a.BACKSPACE?(b.preventDefault(),b.stopPropagation(),h.select(void 0),void d.$apply()):void(b.which===a.TAB||a.isControl(b)||a.isFunctionKey(b)||b.which===a.ESC||(b.which!=a.DOWN&&b.which!=a.UP&&b.which!=a.ENTER&&b.which!=a.SPACE||(b.preventDefault(),b.stopPropagation(),h.activate()),d.$digest()))}),j.bind("keyup input",function(b){b.which===a.TAB||a.isControl(b)||a.isFunctionKey(b)||b.which===a.ESC||b.which==a.ENTER||b.which===a.BACKSPACE||(h.activate(j.val()),j.val(""),d.$digest())})}}}]),c.directive("uiSelectSort",["$timeout","uiSelectConfig","uiSelectMinErr",function(a,b,c){return{require:"^uiSelect",link:function(b,d,e,f){if(null===b[e.uiSelectSort])throw c("sort","Expected a list to sort");var g=angular.extend({axis:"horizontal"},b.$eval(e.uiSelectSortOptions)),h=g.axis,i="dragging",j="dropping",k="dropping-before",l="dropping-after";b.$watch(function(){return f.sortable},function(a){a?d.attr("draggable",!0):d.removeAttr("draggable")}),d.on("dragstart",function(a){d.addClass(i),(a.dataTransfer||a.originalEvent.dataTransfer).setData("text/plain",b.$index)}),d.on("dragend",function(){d.removeClass(i)});var m,n=function(a,b){this.splice(b,0,this.splice(a,1)[0])},o=function(a){a.preventDefault();var b="vertical"===h?a.offsetY||a.layerY||(a.originalEvent?a.originalEvent.offsetY:0):a.offsetX||a.layerX||(a.originalEvent?a.originalEvent.offsetX:0);b<this["vertical"===h?"offsetHeight":"offsetWidth"]/2?(d.removeClass(l),d.addClass(k)):(d.removeClass(k),d.addClass(l))},p=function(b){b.preventDefault();var c=parseInt((b.dataTransfer||b.originalEvent.dataTransfer).getData("text/plain"),10);a.cancel(m),m=a(function(){q(c)},20)},q=function(a){var c=b.$eval(e.uiSelectSort),f=c[a],g=null;g=d.hasClass(k)?a<b.$index?b.$index-1:b.$index:a<b.$index?b.$index:b.$index+1,n.apply(c,[a,g]),b.$apply(function(){b.$emit("uiSelectSort:change",{array:c,item:f,from:a,to:g})}),d.removeClass(j),d.removeClass(k),d.removeClass(l),d.off("drop",p)};d.on("dragenter",function(){d.hasClass(i)||(d.addClass(j),d.on("dragover",o),d.on("drop",p))}),d.on("dragleave",function(a){a.target==d&&(d.removeClass(j),d.removeClass(k),d.removeClass(l),d.off("dragover",o),d.off("drop",p))})}}}]),c.service("uisRepeatParser",["uiSelectMinErr","$parse",function(a,b){var c=this;c.parse=function(c){var d,e=/\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)/.test(c);if(d=c.match(/^\s*(?:([\s\S]+?)\s+as\s+)?(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(([\w\.]+)?\s*(|\s*[\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/),!d)throw a("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",c);if(!d[6]&&e)throw a("iexp","Expected expression in form of '_item_ as (_key_, _item_) in _ObjCollection_ [ track by _id_]' but got '{0}'.",c);return{itemName:d[4]||d[2],keyName:d[3],source:b(d[3]?d[6]:d[5]),sourceName:d[6],filters:d[7],trackByExp:d[8],modelMapper:b(d[1]||d[4]||d[2]),repeatExpression:function(a){var b=this.itemName+" in "+(a?"$group.items":"$select.items");return this.trackByExp&&(b+=" track by "+this.trackByExp),b}}},c.getGroupNgRepeatExpression=function(){return"$group in $select.groups"}}])}(),angular.module("ui.select").run(["$templateCache",function(a){a.put("bootstrap/choices.tpl.html",'<ul class="ui-select-choices ui-select-choices-content ui-select-dropdown dropdown-menu" role="listbox" ng-show="$select.items.length > 0"><li class="ui-select-choices-group" id="ui-select-choices-{{ $select.generatedId }}"><div class="divider" ng-show="$select.isGrouped && $index > 0"></div><div ng-show="$select.isGrouped" class="ui-select-choices-group-label dropdown-header" ng-bind="$group.name"></div><div id="ui-select-choices-row-{{ $select.generatedId }}-{{$index}}" class="ui-select-choices-row" ng-class="{active: $select.isActive(this), disabled: $select.isDisabled(this)}" role="option"><a href="javascript:void(0)" class="ui-select-choices-row-inner"></a></div></li></ul>'),a.put("bootstrap/match-multiple.tpl.html",'<span class="ui-select-match"><span ng-repeat="$item in $select.selected"><span class="ui-select-match-item btn btn-default btn-xs" tabindex="-1" type="button" ng-disabled="$select.disabled" ng-click="$selectMultiple.activeMatchIndex = $index;" ng-class="{\'btn-primary\':$selectMultiple.activeMatchIndex === $index, \'select-locked\':$select.isLocked(this, $index)}" ui-select-sort="$select.selected"><span class="close ui-select-match-close" ng-hide="$select.disabled" ng-click="$selectMultiple.removeChoice($index)">&nbsp;&times;</span> <span uis-transclude-append=""></span></span></span></span>'),a.put("bootstrap/match.tpl.html",'<div class="ui-select-match" ng-hide="$select.open" ng-disabled="$select.disabled" ng-class="{\'btn-default-focus\':$select.focus}"><span tabindex="-1" class="btn btn-default form-control ui-select-toggle" aria-label="{{ $select.baseTitle }} activate" ng-disabled="$select.disabled" ng-click="$select.activate()" style="outline: 0;"><span ng-show="$select.isEmpty()" class="ui-select-placeholder text-muted">{{$select.placeholder}}</span> <span ng-hide="$select.isEmpty()" class="ui-select-match-text pull-left" ng-class="{\'ui-select-allow-clear\': $select.allowClear && !$select.isEmpty()}" ng-transclude=""></span> <i class="caret pull-right" ng-click="$select.toggle($event)"></i> <a ng-show="$select.allowClear && !$select.isEmpty()" aria-label="{{ $select.baseTitle }} clear" style="margin-right: 10px" ng-click="$select.clear($event)" class="btn btn-xs btn-link pull-right"><i class="glyphicon glyphicon-remove" aria-hidden="true"></i></a></span></div>'),a.put("bootstrap/select-multiple.tpl.html",'<div class="ui-select-container ui-select-multiple ui-select-bootstrap dropdown form-control" ng-class="{open: $select.open}"><div><div class="ui-select-match"></div><input type="text" autocomplete="false" autocorrect="off" autocapitalize="off" spellcheck="false" class="ui-select-search input-xs" placeholder="{{$selectMultiple.getPlaceholder()}}" ng-disabled="$select.disabled" ng-hide="$select.disabled" ng-click="$select.activate()" ng-model="$select.search" role="combobox" aria-label="{{ $select.baseTitle }}" ondrop="return false;"></div><div class="ui-select-choices"></div></div>'),a.put("bootstrap/select.tpl.html",'<div class="ui-select-container ui-select-bootstrap dropdown" ng-class="{open: $select.open}"><div class="ui-select-match"></div><input type="text" autocomplete="false" tabindex="-1" aria-expanded="true" aria-label="{{ $select.baseTitle }}" aria-owns="ui-select-choices-{{ $select.generatedId }}" aria-activedescendant="ui-select-choices-row-{{ $select.generatedId }}-{{ $select.activeIndex }}" class="form-control ui-select-search" placeholder="{{$select.placeholder}}" ng-model="$select.search" ng-show="$select.searchEnabled && $select.open"><div class="ui-select-choices"></div></div>'),a.put("selectize/choices.tpl.html",'<div ng-show="$select.open" class="ui-select-choices ui-select-dropdown selectize-dropdown single"><div class="ui-select-choices-content selectize-dropdown-content"><div class="ui-select-choices-group optgroup" role="listbox"><div ng-show="$select.isGrouped" class="ui-select-choices-group-label optgroup-header" ng-bind="$group.name"></div><div role="option" class="ui-select-choices-row" ng-class="{active: $select.isActive(this), disabled: $select.isDisabled(this)}"><div class="option ui-select-choices-row-inner" data-selectable=""></div></div></div></div></div>'),a.put("selectize/match.tpl.html",'<div ng-hide="($select.open || $select.isEmpty())" class="ui-select-match" ng-transclude=""></div>'),a.put("selectize/select.tpl.html",'<div class="ui-select-container selectize-control single" ng-class="{\'open\': $select.open}"><div class="selectize-input" ng-class="{\'focus\': $select.open, \'disabled\': $select.disabled, \'selectize-focus\' : $select.focus}" ng-click="$select.activate()"><div class="ui-select-match"></div><input type="text" autocomplete="false" tabindex="-1" class="ui-select-search ui-select-toggle" ng-click="$select.toggle($event)" placeholder="{{$select.placeholder}}" ng-model="$select.search" ng-hide="!$select.searchEnabled || ($select.selected && !$select.open)" ng-disabled="$select.disabled" aria-label="{{ $select.baseTitle }}"></div><div class="ui-select-choices"></div></div>'),a.put("select2/choices.tpl.html",'<ul class="ui-select-choices ui-select-choices-content select2-results"><li class="ui-select-choices-group" ng-class="{\'select2-result-with-children\': $select.choiceGrouped($group) }"><div ng-show="$select.choiceGrouped($group)" class="ui-select-choices-group-label select2-result-label" ng-bind="$group.name"></div><ul role="listbox" id="ui-select-choices-{{ $select.generatedId }}" ng-class="{\'select2-result-sub\': $select.choiceGrouped($group), \'select2-result-single\': !$select.choiceGrouped($group) }"><li role="option" id="ui-select-choices-row-{{ $select.generatedId }}-{{$index}}" class="ui-select-choices-row" ng-class="{\'select2-highlighted\': $select.isActive(this), \'select2-disabled\': $select.isDisabled(this)}"><div class="select2-result-label ui-select-choices-row-inner"></div></li></ul></li></ul>'),a.put("select2/match-multiple.tpl.html",'<span class="ui-select-match"><li class="ui-select-match-item select2-search-choice" ng-repeat="$item in $select.selected" ng-class="{\'select2-search-choice-focus\':$selectMultiple.activeMatchIndex === $index, \'select2-locked\':$select.isLocked(this, $index)}" ui-select-sort="$select.selected"><span uis-transclude-append=""></span> <a href="javascript:;" class="ui-select-match-close select2-search-choice-close" ng-click="$selectMultiple.removeChoice($index)" tabindex="-1"></a></li></span>'),a.put("select2/match.tpl.html",'<a class="select2-choice ui-select-match" ng-class="{\'select2-default\': $select.isEmpty()}" ng-click="$select.toggle($event)" aria-label="{{ $select.baseTitle }} select"><span ng-show="$select.isEmpty()" class="select2-chosen">{{$select.placeholder}}</span> <span ng-hide="$select.isEmpty()" class="select2-chosen" ng-transclude=""></span> <abbr ng-if="$select.allowClear && !$select.isEmpty()" class="select2-search-choice-close" ng-click="$select.clear($event)"></abbr> <span class="select2-arrow ui-select-toggle"><b></b></span></a>'),a.put("select2/select-multiple.tpl.html",'<div class="ui-select-container ui-select-multiple select2 select2-container select2-container-multi" ng-class="{\'select2-container-active select2-dropdown-open open\': $select.open, \'select2-container-disabled\': $select.disabled}"><ul class="select2-choices"><span class="ui-select-match"></span><li class="select2-search-field"><input type="text" autocomplete="false" autocorrect="off" autocapitalize="off" spellcheck="false" role="combobox" aria-expanded="true" aria-owns="ui-select-choices-{{ $select.generatedId }}" aria-label="{{ $select.baseTitle }}" aria-activedescendant="ui-select-choices-row-{{ $select.generatedId }}-{{ $select.activeIndex }}" class="select2-input ui-select-search" placeholder="{{$selectMultiple.getPlaceholder()}}" ng-disabled="$select.disabled" ng-hide="$select.disabled" ng-model="$select.search" ng-click="$select.activate()" style="width: 34px;" ondrop="return false;"></li></ul><div class="ui-select-dropdown select2-drop select2-with-searchbox select2-drop-active" ng-class="{\'select2-display-none\': !$select.open}"><div class="ui-select-choices"></div></div></div>'),a.put("select2/select.tpl.html",'<div class="ui-select-container select2 select2-container" ng-class="{\'select2-container-active select2-dropdown-open open\': $select.open, \'select2-container-disabled\': $select.disabled, \'select2-container-active\': $select.focus, \'select2-allowclear\': $select.allowClear && !$select.isEmpty()}"><div class="ui-select-match"></div><div class="ui-select-dropdown select2-drop select2-with-searchbox select2-drop-active" ng-class="{\'select2-display-none\': !$select.open}"><div class="select2-search" ng-show="$select.searchEnabled"><input type="text" autocomplete="false" autocorrect="false" autocapitalize="off" spellcheck="false" role="combobox" aria-expanded="true" aria-owns="ui-select-choices-{{ $select.generatedId }}" aria-label="{{ $select.baseTitle }}" aria-activedescendant="ui-select-choices-row-{{ $select.generatedId }}-{{ $select.activeIndex }}" class="ui-select-search select2-input" ng-model="$select.search"></div><div class="ui-select-choices"></div></div></div>')}]),function(){window.WebComponents=window.WebComponents||{flags:{}};var a="webcomponents.js",b=document.querySelector('script[src*="'+a+'"]'),c={};if(!c.noOpts){if(location.search.slice(1).split("&").forEach(function(a){var b,d=a.split("=");d[0]&&(b=d[0].match(/wc-(.+)/))&&(c[b[1]]=d[1]||!0)}),b)for(var d,e=0;d=b.attributes[e];e++)"src"!==d.name&&(c[d.name]=d.value||!0);if(c.log&&c.log.split){var f=c.log.split(",");c.log={},f.forEach(function(a){c.log[a]=!0})}else c.log={}}c.shadow=c.shadow||c.shadowdom||c.polyfill,"native"===c.shadow?c.shadow=!1:c.shadow=c.shadow||!HTMLElement.prototype.createShadowRoot,c.register&&(window.CustomElements=window.CustomElements||{flags:{}},window.CustomElements.flags.register=c.register),WebComponents.flags=c}(),WebComponents.flags.shadow&&("undefined"==typeof WeakMap&&!function(){var a=Object.defineProperty,b=Date.now()%1e9,c=function(){this.name="__st"+(1e9*Math.random()>>>0)+(b++ +"__")};c.prototype={set:function(b,c){var d=b[this.name];return d&&d[0]===b?d[1]=c:a(b,this.name,{value:[b,c],writable:!0}),this},get:function(a){var b;return(b=a[this.name])&&b[0]===a?b[1]:void 0},"delete":function(a){var b=a[this.name];return b&&b[0]===a?(b[0]=b[1]=void 0,!0):!1},has:function(a){var b=a[this.name];return b?b[0]===a:!1}},window.WeakMap=c}(),window.ShadowDOMPolyfill={},function(a){"use strict";function b(){if("undefined"!=typeof chrome&&chrome.app&&chrome.app.runtime)return!1;if(navigator.getDeviceStorage)return!1;try{var a=new Function("return true;");return a()}catch(b){return!1}}function c(a){if(!a)throw new Error("Assertion failed")}function d(a,b){for(var c=N(b),d=0;d<c.length;d++){var e=c[d];M(a,e,O(b,e))}return a}function e(a,b){for(var c=N(b),d=0;d<c.length;d++){var e=c[d];switch(e){case"arguments":case"caller":case"length":case"name":case"prototype":case"toString":continue}M(a,e,O(b,e))}return a}function f(a,b){for(var c=0;c<b.length;c++)if(b[c]in a)return b[c]}function g(a,b,c){P.value=c,M(a,b,P)}function h(a,b){var c=a.__proto__||Object.getPrototypeOf(a);if(Q)try{N(c)}catch(d){c=c.__proto__}var e=I.get(c);if(e)return e;var f=h(c),g=v(f);return s(c,g,b),g}function i(a,b){q(a,b,!0)}function j(a,b){q(b,a,!1)}function k(a){return/^on[a-z]+$/.test(a)}function l(a){return/^[a-zA-Z_$][a-zA-Z_$0-9]*$/.test(a)}function m(a){return L&&l(a)?new Function("return this.__impl4cf1e782hg__."+a):function(){return this.__impl4cf1e782hg__[a]}}function n(a){return L&&l(a)?new Function("v","this.__impl4cf1e782hg__."+a+" = v"):function(b){this.__impl4cf1e782hg__[a]=b}}function o(a){return L&&l(a)?new Function("return this.__impl4cf1e782hg__."+a+".apply(this.__impl4cf1e782hg__, arguments)"):function(){return this.__impl4cf1e782hg__[a].apply(this.__impl4cf1e782hg__,arguments)}}function p(a,b){try{return Object.getOwnPropertyDescriptor(a,b)}catch(c){return R}}function q(b,c,d,e){for(var f=N(b),g=0;g<f.length;g++){var h=f[g];if("polymerBlackList_"!==h&&!(h in c||b.polymerBlackList_&&b.polymerBlackList_[h])){Q&&b.__lookupGetter__(h);var i,j,l=p(b,h);if("function"!=typeof l.value){var q=k(h);i=q?a.getEventHandlerGetter(h):m(h),(l.writable||l.set||S)&&(j=q?a.getEventHandlerSetter(h):n(h));var r=S||l.configurable;M(c,h,{get:i,set:j,configurable:r,enumerable:l.enumerable})}else d&&(c[h]=o(h))}}}function r(a,b,c){if(null!=a){var d=a.prototype;s(d,b,c),e(b,a)}}function s(a,b,d){var e=b.prototype;c(void 0===I.get(a)),I.set(a,b),J.set(e,a),i(a,e),d&&j(e,d),g(e,"constructor",b),b.prototype=e}function t(a,b){return I.get(b.prototype)===a}function u(a){var b=Object.getPrototypeOf(a),c=h(b),d=v(c);return s(b,d,a),d}function v(a){function b(b){a.call(this,b)}var c=Object.create(a.prototype);return c.constructor=b,b.prototype=c,b}function w(a){return a&&a.__impl4cf1e782hg__}function x(a){return!w(a)}function y(a){if(null===a)return null;c(x(a));var b=a.__wrapper8e3dd93a60__;return null!=b?b:a.__wrapper8e3dd93a60__=new(h(a,a))(a)}function z(a){return null===a?null:(c(w(a)),a.__impl4cf1e782hg__)}function A(a){return a.__impl4cf1e782hg__}function B(a,b){b.__impl4cf1e782hg__=a,a.__wrapper8e3dd93a60__=b}function C(a){return a&&w(a)?z(a):a}function D(a){return a&&!w(a)?y(a):a}function E(a,b){null!==b&&(c(x(a)),c(void 0===b||w(b)),a.__wrapper8e3dd93a60__=b)}function F(a,b,c){T.get=c,M(a.prototype,b,T)}function G(a,b){F(a,b,function(){return y(this.__impl4cf1e782hg__[b])})}function H(a,b){a.forEach(function(a){b.forEach(function(b){a.prototype[b]=function(){var a=D(this);return a[b].apply(a,arguments)}})})}var I=new WeakMap,J=new WeakMap,K=Object.create(null),L=b(),M=Object.defineProperty,N=Object.getOwnPropertyNames,O=Object.getOwnPropertyDescriptor,P={value:void 0,configurable:!0,enumerable:!1,writable:!0};N(window);var Q=/Firefox/.test(navigator.userAgent),R={get:function(){},set:function(a){},configurable:!0,enumerable:!0},S=function(){var a=Object.getOwnPropertyDescriptor(Node.prototype,"nodeType");return a&&!a.get&&!a.set}(),T={get:void 0,configurable:!0,enumerable:!0};a.addForwardingProperties=i,a.assert=c,a.constructorTable=I,a.defineGetter=F,a.defineWrapGetter=G,a.forwardMethodsToWrapper=H,a.isIdentifierName=l,a.isWrapper=w,a.isWrapperFor=t,a.mixin=d,a.nativePrototypeTable=J,a.oneOf=f,a.registerObject=u,a.registerWrapper=r,a.rewrap=E,a.setWrapper=B,a.unsafeUnwrap=A,a.unwrap=z,a.unwrapIfNeeded=C,a.wrap=y,a.wrapIfNeeded=D,a.wrappers=K}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a,b,c){return{index:a,removed:b,addedCount:c}}function c(){}var d=0,e=1,f=2,g=3;c.prototype={calcEditDistances:function(a,b,c,d,e,f){for(var g=f-e+1,h=c-b+1,i=new Array(g),j=0;g>j;j++)i[j]=new Array(h),i[j][0]=j;for(var k=0;h>k;k++)i[0][k]=k;for(var j=1;g>j;j++)for(var k=1;h>k;k++)if(this.equals(a[b+k-1],d[e+j-1]))i[j][k]=i[j-1][k-1];else{var l=i[j-1][k]+1,m=i[j][k-1]+1;i[j][k]=m>l?l:m}return i},spliceOperationsFromEditDistances:function(a){for(var b=a.length-1,c=a[0].length-1,h=a[b][c],i=[];b>0||c>0;)if(0!=b)if(0!=c){var j,k=a[b-1][c-1],l=a[b-1][c],m=a[b][c-1];j=m>l?k>l?l:k:k>m?m:k,j==k?(k==h?i.push(d):(i.push(e),h=k),b--,c--):j==l?(i.push(g),b--,h=l):(i.push(f),c--,h=m)}else i.push(g),b--;else i.push(f),c--;return i.reverse(),i},calcSplices:function(a,c,h,i,j,k){var l=0,m=0,n=Math.min(h-c,k-j);if(0==c&&0==j&&(l=this.sharedPrefix(a,i,n)),h==a.length&&k==i.length&&(m=this.sharedSuffix(a,i,n-l)),c+=l,j+=l,h-=m,k-=m,h-c==0&&k-j==0)return[];if(c==h){for(var o=b(c,[],0);k>j;)o.removed.push(i[j++]);return[o]}if(j==k)return[b(c,[],h-c)];for(var p=this.spliceOperationsFromEditDistances(this.calcEditDistances(a,c,h,i,j,k)),o=void 0,q=[],r=c,s=j,t=0;t<p.length;t++)switch(p[t]){case d:o&&(q.push(o),o=void 0),r++,s++;break;case e:o||(o=b(r,[],0)),o.addedCount++,r++,o.removed.push(i[s]),s++;break;case f:o||(o=b(r,[],0)),o.addedCount++,r++;break;case g:o||(o=b(r,[],0)),o.removed.push(i[s]),s++}return o&&q.push(o),q},sharedPrefix:function(a,b,c){for(var d=0;c>d;d++)if(!this.equals(a[d],b[d]))return d;return c},sharedSuffix:function(a,b,c){for(var d=a.length,e=b.length,f=0;c>f&&this.equals(a[--d],b[--e]);)f++;return f},calculateSplices:function(a,b){return this.calcSplices(a,0,a.length,b,0,b.length)},equals:function(a,b){return a===b}},a.ArraySplice=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(){g=!1;var a=f.slice(0);f=[];for(var b=0;b<a.length;b++)(0,a[b])()}function c(a){f.push(a),g||(g=!0,d(b,0))}var d,e=window.MutationObserver,f=[],g=!1;if(e){var h=1,i=new e(b),j=document.createTextNode(h);i.observe(j,{characterData:!0}),d=function(){h=(h+1)%2,j.data=h}}else d=window.setTimeout;a.setEndOfMicrotask=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){a.scheduled_||(a.scheduled_=!0,o.push(a),p||(k(c),p=!0))}function c(){for(p=!1;o.length;){var a=o;o=[],a.sort(function(a,b){return a.uid_-b.uid_});for(var b=0;b<a.length;b++){var c=a[b];c.scheduled_=!1;var d=c.takeRecords();f(c),d.length&&c.callback_(d,c)}}}function d(a,b){this.type=a,this.target=b,this.addedNodes=new m.NodeList,this.removedNodes=new m.NodeList,this.previousSibling=null,this.nextSibling=null,this.attributeName=null,this.attributeNamespace=null,this.oldValue=null}function e(a,b){for(;a;a=a.parentNode){var c=n.get(a);if(c)for(var d=0;d<c.length;d++){var e=c[d];e.options.subtree&&e.addTransientObserver(b)}}}function f(a){for(var b=0;b<a.nodes_.length;b++){var c=a.nodes_[b],d=n.get(c);if(!d)return;for(var e=0;e<d.length;e++){var f=d[e];f.observer===a&&f.removeTransientObservers()}}}function g(a,c,e){for(var f=Object.create(null),g=Object.create(null),h=a;h;h=h.parentNode){var i=n.get(h);if(i)for(var j=0;j<i.length;j++){var k=i[j],l=k.options;if((h===a||l.subtree)&&("attributes"!==c||l.attributes)&&("attributes"!==c||!l.attributeFilter||null===e.namespace&&-1!==l.attributeFilter.indexOf(e.name))&&("characterData"!==c||l.characterData)&&("childList"!==c||l.childList)){var m=k.observer;f[m.uid_]=m,("attributes"===c&&l.attributeOldValue||"characterData"===c&&l.characterDataOldValue)&&(g[m.uid_]=e.oldValue)}}}for(var o in f){var m=f[o],p=new d(c,a);"name"in e&&"namespace"in e&&(p.attributeName=e.name,p.attributeNamespace=e.namespace),e.addedNodes&&(p.addedNodes=e.addedNodes),e.removedNodes&&(p.removedNodes=e.removedNodes),e.previousSibling&&(p.previousSibling=e.previousSibling),e.nextSibling&&(p.nextSibling=e.nextSibling),void 0!==g[o]&&(p.oldValue=g[o]),b(m),m.records_.push(p)}}function h(a){if(this.childList=!!a.childList,this.subtree=!!a.subtree,"attributes"in a||!("attributeOldValue"in a||"attributeFilter"in a)?this.attributes=!!a.attributes:this.attributes=!0,"characterDataOldValue"in a&&!("characterData"in a)?this.characterData=!0:this.characterData=!!a.characterData,!this.attributes&&(a.attributeOldValue||"attributeFilter"in a)||!this.characterData&&a.characterDataOldValue)throw new TypeError;if(this.characterData=!!a.characterData,this.attributeOldValue=!!a.attributeOldValue,this.characterDataOldValue=!!a.characterDataOldValue,"attributeFilter"in a){if(null==a.attributeFilter||"object"!=typeof a.attributeFilter)throw new TypeError;this.attributeFilter=q.call(a.attributeFilter)}else this.attributeFilter=null}function i(a){this.callback_=a,this.nodes_=[],this.records_=[],this.uid_=++r,this.scheduled_=!1}function j(a,b,c){this.observer=a,this.target=b,this.options=c,this.transientObservedNodes=[]}var k=a.setEndOfMicrotask,l=a.wrapIfNeeded,m=a.wrappers,n=new WeakMap,o=[],p=!1,q=Array.prototype.slice,r=0;i.prototype={constructor:i,observe:function(a,b){a=l(a);var c,d=new h(b),e=n.get(a);e||n.set(a,e=[]);for(var f=0;f<e.length;f++)e[f].observer===this&&(c=e[f],c.removeTransientObservers(),c.options=d);c||(c=new j(this,a,d),e.push(c),this.nodes_.push(a))},disconnect:function(){this.nodes_.forEach(function(a){for(var b=n.get(a),c=0;c<b.length;c++){var d=b[c];if(d.observer===this){b.splice(c,1);break}}},this),this.records_=[]},takeRecords:function(){var a=this.records_;return this.records_=[],a}},j.prototype={addTransientObserver:function(a){if(a!==this.target){b(this.observer),this.transientObservedNodes.push(a);var c=n.get(a);c||n.set(a,c=[]),c.push(this)}},removeTransientObservers:function(){var a=this.transientObservedNodes;this.transientObservedNodes=[];for(var b=0;b<a.length;b++)for(var c=a[b],d=n.get(c),e=0;e<d.length;e++)if(d[e]===this){d.splice(e,1);break}}},a.enqueueMutation=g,a.registerTransientObservers=e,a.wrappers.MutationObserver=i,a.wrappers.MutationRecord=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a,b){this.root=a,this.parent=b}function c(a,b){if(a.treeScope_!==b){a.treeScope_=b;for(var d=a.shadowRoot;d;d=d.olderShadowRoot)d.treeScope_.parent=b;for(var e=a.firstChild;e;e=e.nextSibling)c(e,b)}}function d(c){if(c instanceof a.wrappers.Window,
+c.treeScope_)return c.treeScope_;var e,f=c.parentNode;return e=f?d(f):new b(c,null),c.treeScope_=e}b.prototype={get renderer(){return this.root instanceof a.wrappers.ShadowRoot?a.getRendererForHost(this.root.host):null},contains:function(a){for(;a;a=a.parent)if(a===this)return!0;return!1}},a.TreeScope=b,a.getTreeScope=d,a.setTreeScope=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){return a instanceof T.ShadowRoot}function c(a){return M(a).root}function d(a,d){var h=[],i=a;for(h.push(i);i;){var j=g(i);if(j&&j.length>0){for(var k=0;k<j.length;k++){var m=j[k];if(f(m)){var n=c(m),o=n.olderShadowRoot;o&&h.push(o)}h.push(m)}i=j[j.length-1]}else if(b(i)){if(l(a,i)&&e(d))break;i=i.host,h.push(i)}else i=i.parentNode,i&&h.push(i)}return h}function e(a){if(!a)return!1;switch(a.type){case"abort":case"error":case"select":case"change":case"load":case"reset":case"resize":case"scroll":case"selectstart":return!0}return!1}function f(a){return a instanceof HTMLShadowElement}function g(b){return a.getDestinationInsertionPoints(b)}function h(a,b){if(0===a.length)return b;b instanceof T.Window&&(b=b.document);for(var c=M(b),d=a[0],e=M(d),f=j(c,e),g=0;g<a.length;g++){var h=a[g];if(M(h)===f)return h}return a[a.length-1]}function i(a){for(var b=[];a;a=a.parent)b.push(a);return b}function j(a,b){for(var c=i(a),d=i(b),e=null;c.length>0&&d.length>0;){var f=c.pop(),g=d.pop();if(f!==g)break;e=f}return e}function k(a,b,c){b instanceof T.Window&&(b=b.document);var e,f=M(b),g=M(c),h=d(c,a),e=j(f,g);e||(e=g.root);for(var i=e;i;i=i.parent)for(var k=0;k<h.length;k++){var l=h[k];if(M(l)===i)return l}return null}function l(a,b){return M(a)===M(b)}function m(a){if(!V.get(a)&&(V.set(a,!0),o(S(a),S(a.target)),K)){var b=K;throw K=null,b}}function n(a){switch(a.type){case"load":case"beforeunload":case"unload":return!0}return!1}function o(b,c){if(W.get(b))throw new Error("InvalidStateError");W.set(b,!0),a.renderAllPending();var e,f,g;if(n(b)&&!b.bubbles){var h=c;h instanceof T.Document&&(g=h.defaultView)&&(f=h,e=[])}if(!e)if(c instanceof T.Window)g=c,e=[];else if(e=d(c,b),!n(b)){var h=e[e.length-1];h instanceof T.Document&&(g=h.defaultView)}return ca.set(b,e),p(b,e,g,f)&&q(b,e,g,f)&&r(b,e,g,f),$.set(b,da),Y["delete"](b,null),W["delete"](b),b.defaultPrevented}function p(a,b,c,d){var e=ea;if(c&&!s(c,a,e,b,d))return!1;for(var f=b.length-1;f>0;f--)if(!s(b[f],a,e,b,d))return!1;return!0}function q(a,b,c,d){var e=fa,f=b[0]||c;return s(f,a,e,b,d)}function r(a,b,c,d){for(var e=ga,f=1;f<b.length;f++)if(!s(b[f],a,e,b,d))return;c&&b.length>0&&s(c,a,e,b,d)}function s(a,b,c,d,e){var f=U.get(a);if(!f)return!0;var g=e||h(d,a);if(g===a){if(c===ea)return!0;c===ga&&(c=fa)}else if(c===ga&&!b.bubbles)return!0;if("relatedTarget"in b){var i=R(b),j=i.relatedTarget;if(j){if(j instanceof Object&&j.addEventListener){var l=S(j),m=k(b,a,l);if(m===g)return!0}else m=null;Z.set(b,m)}}$.set(b,c);var n=b.type,o=!1;X.set(b,g),Y.set(b,a),f.depth++;for(var p=0,q=f.length;q>p;p++){var r=f[p];if(r.removed)o=!0;else if(!(r.type!==n||!r.capture&&c===ea||r.capture&&c===ga))try{if("function"==typeof r.handler?r.handler.call(a,b):r.handler.handleEvent(b),aa.get(b))return!1}catch(s){K||(K=s)}}if(f.depth--,o&&0===f.depth){var t=f.slice();f.length=0;for(var p=0;p<t.length;p++)t[p].removed||f.push(t[p])}return!_.get(b)}function t(a,b,c){this.type=a,this.handler=b,this.capture=Boolean(c)}function u(a,b){if(!(a instanceof ha))return S(y(ha,"Event",a,b));var c=a;return ta||"beforeunload"!==c.type||this instanceof z?void P(c,this):new z(c)}function v(a){return a&&a.relatedTarget?Object.create(a,{relatedTarget:{value:R(a.relatedTarget)}}):a}function w(a,b,c){var d=window[a],e=function(b,c){return b instanceof d?void P(b,this):S(y(d,a,b,c))};if(e.prototype=Object.create(b.prototype),c&&N(e.prototype,c),d)try{O(d,e,new d("temp"))}catch(f){O(d,e,document.createEvent(a))}return e}function x(a,b){return function(){arguments[b]=R(arguments[b]);var c=R(this);c[a].apply(c,arguments)}}function y(a,b,c,d){if(ra)return new a(c,v(d));var e=R(document.createEvent(b)),f=qa[b],g=[c];return Object.keys(f).forEach(function(a){var b=null!=d&&a in d?d[a]:f[a];"relatedTarget"===a&&(b=R(b)),g.push(b)}),e["init"+b].apply(e,g),e}function z(a){u.call(this,a)}function A(a){return"function"==typeof a?!0:a&&a.handleEvent}function B(a){switch(a){case"DOMAttrModified":case"DOMAttributeNameChanged":case"DOMCharacterDataModified":case"DOMElementNameChanged":case"DOMNodeInserted":case"DOMNodeInsertedIntoDocument":case"DOMNodeRemoved":case"DOMNodeRemovedFromDocument":case"DOMSubtreeModified":return!0}return!1}function C(a){P(a,this)}function D(a){return a instanceof T.ShadowRoot&&(a=a.host),R(a)}function E(a,b){var c=U.get(a);if(c)for(var d=0;d<c.length;d++)if(!c[d].removed&&c[d].type===b)return!0;return!1}function F(a,b){for(var c=R(a);c;c=c.parentNode)if(E(S(c),b))return!0;return!1}function G(a){L(a,va)}function H(b,c,e,f){a.renderAllPending();var g=S(wa.call(Q(c),e,f));if(!g)return null;var i=d(g,null),j=i.lastIndexOf(b);return-1==j?null:(i=i.slice(0,j),h(i,b))}function I(a){return function(){var b=ba.get(this);return b&&b[a]&&b[a].value||null}}function J(a){var b=a.slice(2);return function(c){var d=ba.get(this);d||(d=Object.create(null),ba.set(this,d));var e=d[a];if(e&&this.removeEventListener(b,e.wrapped,!1),"function"==typeof c){var f=function(b){var d=c.call(this,b);d===!1?b.preventDefault():"onbeforeunload"===a&&"string"==typeof d&&(b.returnValue=d)};this.addEventListener(b,f,!1),d[a]={value:c,wrapped:f}}}}var K,L=a.forwardMethodsToWrapper,M=a.getTreeScope,N=a.mixin,O=a.registerWrapper,P=a.setWrapper,Q=a.unsafeUnwrap,R=a.unwrap,S=a.wrap,T=a.wrappers,U=(new WeakMap,new WeakMap),V=new WeakMap,W=new WeakMap,X=new WeakMap,Y=new WeakMap,Z=new WeakMap,$=new WeakMap,_=new WeakMap,aa=new WeakMap,ba=new WeakMap,ca=new WeakMap,da=0,ea=1,fa=2,ga=3;t.prototype={equals:function(a){return this.handler===a.handler&&this.type===a.type&&this.capture===a.capture},get removed(){return null===this.handler},remove:function(){this.handler=null}};var ha=window.Event;ha.prototype.polymerBlackList_={returnValue:!0,keyLocation:!0},u.prototype={get target(){return X.get(this)},get currentTarget(){return Y.get(this)},get eventPhase(){return $.get(this)},get path(){var a=ca.get(this);return a?a.slice():[]},stopPropagation:function(){_.set(this,!0)},stopImmediatePropagation:function(){_.set(this,!0),aa.set(this,!0)}};var ia=function(){var a=document.createEvent("Event");return a.initEvent("test",!0,!0),a.preventDefault(),a.defaultPrevented}();ia||(u.prototype.preventDefault=function(){this.cancelable&&(Q(this).preventDefault(),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}),O(ha,u,document.createEvent("Event"));var ja=w("UIEvent",u),ka=w("CustomEvent",u),la={get relatedTarget(){var a=Z.get(this);return void 0!==a?a:S(R(this).relatedTarget)}},ma=N({initMouseEvent:x("initMouseEvent",14)},la),na=N({initFocusEvent:x("initFocusEvent",5)},la),oa=w("MouseEvent",ja,ma),pa=w("FocusEvent",ja,na),qa=Object.create(null),ra=function(){try{new window.FocusEvent("focus")}catch(a){return!1}return!0}();if(!ra){var sa=function(a,b,c){if(c){var d=qa[c];b=N(N({},d),b)}qa[a]=b};sa("Event",{bubbles:!1,cancelable:!1}),sa("CustomEvent",{detail:null},"Event"),sa("UIEvent",{view:null,detail:0},"Event"),sa("MouseEvent",{screenX:0,screenY:0,clientX:0,clientY:0,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null},"UIEvent"),sa("FocusEvent",{relatedTarget:null},"UIEvent")}var ta=window.BeforeUnloadEvent;z.prototype=Object.create(u.prototype),N(z.prototype,{get returnValue(){return Q(this).returnValue},set returnValue(a){Q(this).returnValue=a}}),ta&&O(ta,z);var ua=window.EventTarget,va=["addEventListener","removeEventListener","dispatchEvent"];[Node,Window].forEach(function(a){var b=a.prototype;va.forEach(function(a){Object.defineProperty(b,a+"_",{value:b[a]})})}),C.prototype={addEventListener:function(a,b,c){if(A(b)&&!B(a)){var d=new t(a,b,c),e=U.get(this);if(e){for(var f=0;f<e.length;f++)if(d.equals(e[f]))return}else e=[],e.depth=0,U.set(this,e);e.push(d);var g=D(this);g.addEventListener_(a,m,!0)}},removeEventListener:function(a,b,c){c=Boolean(c);var d=U.get(this);if(d){for(var e=0,f=!1,g=0;g<d.length;g++)d[g].type===a&&d[g].capture===c&&(e++,d[g].handler===b&&(f=!0,d[g].remove()));if(f&&1===e){var h=D(this);h.removeEventListener_(a,m,!0)}}},dispatchEvent:function(b){var c=R(b),d=c.type;V.set(c,!1),a.renderAllPending();var e;F(this,d)||(e=function(){},this.addEventListener(d,e,!0));try{return R(this).dispatchEvent_(c)}finally{e&&this.removeEventListener(d,e,!0)}}},ua&&O(ua,C);var wa=document.elementFromPoint;a.elementFromPoint=H,a.getEventHandlerGetter=I,a.getEventHandlerSetter=J,a.wrapEventTargetMethods=G,a.wrappers.BeforeUnloadEvent=z,a.wrappers.CustomEvent=ka,a.wrappers.Event=u,a.wrappers.EventTarget=C,a.wrappers.FocusEvent=pa,a.wrappers.MouseEvent=oa,a.wrappers.UIEvent=ja}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a,b){Object.defineProperty(a,b,p)}function c(a){j(a,this)}function d(){this.length=0,b(this,"length")}function e(a){for(var b=new d,e=0;e<a.length;e++)b[e]=new c(a[e]);return b.length=e,b}function f(a){g.call(this,a)}var g=a.wrappers.UIEvent,h=a.mixin,i=a.registerWrapper,j=a.setWrapper,k=a.unsafeUnwrap,l=a.wrap,m=window.TouchEvent;if(m){var n;try{n=document.createEvent("TouchEvent")}catch(o){return}var p={enumerable:!1};c.prototype={get target(){return l(k(this).target)}};var q={configurable:!0,enumerable:!0,get:null};["clientX","clientY","screenX","screenY","pageX","pageY","identifier","webkitRadiusX","webkitRadiusY","webkitRotationAngle","webkitForce"].forEach(function(a){q.get=function(){return k(this)[a]},Object.defineProperty(c.prototype,a,q)}),d.prototype={item:function(a){return this[a]}},f.prototype=Object.create(g.prototype),h(f.prototype,{get touches(){return e(k(this).touches)},get targetTouches(){return e(k(this).targetTouches)},get changedTouches(){return e(k(this).changedTouches)},initTouchEvent:function(){throw new Error("Not implemented")}}),i(m,f,n),a.wrappers.Touch=c,a.wrappers.TouchEvent=f,a.wrappers.TouchList=d}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a,b){Object.defineProperty(a,b,h)}function c(){this.length=0,b(this,"length")}function d(a){if(null==a)return a;for(var b=new c,d=0,e=a.length;e>d;d++)b[d]=g(a[d]);return b.length=e,b}function e(a,b){a.prototype[b]=function(){return d(f(this)[b].apply(f(this),arguments))}}var f=a.unsafeUnwrap,g=a.wrap,h={enumerable:!1};c.prototype={item:function(a){return this[a]}},b(c.prototype,"item"),a.wrappers.NodeList=c,a.addWrapNodeListMethod=e,a.wrapNodeList=d}(window.ShadowDOMPolyfill),function(a){"use strict";a.wrapHTMLCollection=a.wrapNodeList,a.wrappers.HTMLCollection=a.wrappers.NodeList}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){A(a instanceof w)}function c(a){var b=new y;return b[0]=a,b.length=1,b}function d(a,b,c){C(b,"childList",{removedNodes:c,previousSibling:a.previousSibling,nextSibling:a.nextSibling})}function e(a,b){C(a,"childList",{removedNodes:b})}function f(a,b,d,e){if(a instanceof DocumentFragment){var f=h(a);P=!0;for(var g=f.length-1;g>=0;g--)a.removeChild(f[g]),f[g].parentNode_=b;P=!1;for(var g=0;g<f.length;g++)f[g].previousSibling_=f[g-1]||d,f[g].nextSibling_=f[g+1]||e;return d&&(d.nextSibling_=f[0]),e&&(e.previousSibling_=f[f.length-1]),f}var f=c(a),i=a.parentNode;return i&&i.removeChild(a),a.parentNode_=b,a.previousSibling_=d,a.nextSibling_=e,d&&(d.nextSibling_=a),e&&(e.previousSibling_=a),f}function g(a){if(a instanceof DocumentFragment)return h(a);var b=c(a),e=a.parentNode;return e&&d(a,e,b),b}function h(a){for(var b=new y,c=0,d=a.firstChild;d;d=d.nextSibling)b[c++]=d;return b.length=c,e(a,b),b}function i(a){return a}function j(a,b){I(a,b),a.nodeIsInserted_()}function k(a,b){for(var c=D(b),d=0;d<a.length;d++)j(a[d],c)}function l(a){I(a,new z(a,null))}function m(a){for(var b=0;b<a.length;b++)l(a[b])}function n(a,b){var c=a.nodeType===w.DOCUMENT_NODE?a:a.ownerDocument;c!==b.ownerDocument&&c.adoptNode(b)}function o(b,c){if(c.length){var d=b.ownerDocument;if(d!==c[0].ownerDocument)for(var e=0;e<c.length;e++)a.adoptNodeNoRemove(c[e],d)}}function p(a,b){o(a,b);var c=b.length;if(1===c)return K(b[0]);for(var d=K(a.ownerDocument.createDocumentFragment()),e=0;c>e;e++)d.appendChild(K(b[e]));return d}function q(a){if(void 0!==a.firstChild_)for(var b=a.firstChild_;b;){var c=b;b=b.nextSibling_,c.parentNode_=c.previousSibling_=c.nextSibling_=void 0}a.firstChild_=a.lastChild_=void 0}function r(a){if(a.invalidateShadowRenderer()){for(var b=a.firstChild;b;){A(b.parentNode===a);var c=b.nextSibling,d=K(b),e=d.parentNode;e&&X.call(e,d),b.previousSibling_=b.nextSibling_=b.parentNode_=null,b=c}a.firstChild_=a.lastChild_=null}else for(var c,f=K(a),g=f.firstChild;g;)c=g.nextSibling,X.call(f,g),g=c}function s(a){var b=a.parentNode;return b&&b.invalidateShadowRenderer()}function t(a){for(var b,c=0;c<a.length;c++)b=a[c],b.parentNode.removeChild(b)}function u(a,b,c){var d;if(d=M(c?Q.call(c,J(a),!1):R.call(J(a),!1)),b){for(var e=a.firstChild;e;e=e.nextSibling)d.appendChild(u(e,!0,c));if(a instanceof O.HTMLTemplateElement)for(var f=d.content,e=a.content.firstChild;e;e=e.nextSibling)f.appendChild(u(e,!0,c))}return d}function v(a,b){if(!b||D(a)!==D(b))return!1;for(var c=b;c;c=c.parentNode)if(c===a)return!0;return!1}function w(a){A(a instanceof S),x.call(this,a),this.parentNode_=void 0,this.firstChild_=void 0,this.lastChild_=void 0,this.nextSibling_=void 0,this.previousSibling_=void 0,this.treeScope_=void 0}var x=a.wrappers.EventTarget,y=a.wrappers.NodeList,z=a.TreeScope,A=a.assert,B=a.defineWrapGetter,C=a.enqueueMutation,D=a.getTreeScope,E=a.isWrapper,F=a.mixin,G=a.registerTransientObservers,H=a.registerWrapper,I=a.setTreeScope,J=a.unsafeUnwrap,K=a.unwrap,L=a.unwrapIfNeeded,M=a.wrap,N=a.wrapIfNeeded,O=a.wrappers,P=!1,Q=document.importNode,R=window.Node.prototype.cloneNode,S=window.Node,T=window.DocumentFragment,U=(S.prototype.appendChild,S.prototype.compareDocumentPosition),V=S.prototype.isEqualNode,W=S.prototype.insertBefore,X=S.prototype.removeChild,Y=S.prototype.replaceChild,Z=/Trident|Edge/.test(navigator.userAgent),$=Z?function(a,b){try{X.call(a,b)}catch(c){if(!(a instanceof T))throw c}}:function(a,b){X.call(a,b)};w.prototype=Object.create(x.prototype),F(w.prototype,{appendChild:function(a){return this.insertBefore(a,null)},insertBefore:function(a,c){b(a);var d;c?E(c)?d=K(c):(d=c,c=M(d)):(c=null,d=null),c&&A(c.parentNode===this);var e,h=c?c.previousSibling:this.lastChild,i=!this.invalidateShadowRenderer()&&!s(a);if(e=i?g(a):f(a,this,h,c),i)n(this,a),q(this),W.call(J(this),K(a),d);else{h||(this.firstChild_=e[0]),c||(this.lastChild_=e[e.length-1],void 0===this.firstChild_&&(this.firstChild_=this.firstChild));var j=d?d.parentNode:J(this);j?W.call(j,p(this,e),d):o(this,e)}return C(this,"childList",{addedNodes:e,nextSibling:c,previousSibling:h}),k(e,this),a},removeChild:function(a){if(b(a),a.parentNode!==this){for(var d=!1,e=(this.childNodes,this.firstChild);e;e=e.nextSibling)if(e===a){d=!0;break}if(!d)throw new Error("NotFoundError")}var f=K(a),g=a.nextSibling,h=a.previousSibling;if(this.invalidateShadowRenderer()){var i=this.firstChild,j=this.lastChild,k=f.parentNode;k&&$(k,f),i===a&&(this.firstChild_=g),j===a&&(this.lastChild_=h),h&&(h.nextSibling_=g),g&&(g.previousSibling_=h),a.previousSibling_=a.nextSibling_=a.parentNode_=void 0}else q(this),$(J(this),f);return P||C(this,"childList",{removedNodes:c(a),nextSibling:g,previousSibling:h}),G(this,a),a},replaceChild:function(a,d){b(a);var e;if(E(d)?e=K(d):(e=d,d=M(e)),d.parentNode!==this)throw new Error("NotFoundError");var h,i=d.nextSibling,j=d.previousSibling,m=!this.invalidateShadowRenderer()&&!s(a);return m?h=g(a):(i===a&&(i=a.nextSibling),h=f(a,this,j,i)),m?(n(this,a),q(this),Y.call(J(this),K(a),e)):(this.firstChild===d&&(this.firstChild_=h[0]),this.lastChild===d&&(this.lastChild_=h[h.length-1]),d.previousSibling_=d.nextSibling_=d.parentNode_=void 0,e.parentNode&&Y.call(e.parentNode,p(this,h),e)),C(this,"childList",{addedNodes:h,removedNodes:c(d),nextSibling:i,previousSibling:j}),l(d),k(h,this),d},nodeIsInserted_:function(){for(var a=this.firstChild;a;a=a.nextSibling)a.nodeIsInserted_()},hasChildNodes:function(){return null!==this.firstChild},get parentNode(){return void 0!==this.parentNode_?this.parentNode_:M(J(this).parentNode)},get firstChild(){return void 0!==this.firstChild_?this.firstChild_:M(J(this).firstChild)},get lastChild(){return void 0!==this.lastChild_?this.lastChild_:M(J(this).lastChild)},get nextSibling(){return void 0!==this.nextSibling_?this.nextSibling_:M(J(this).nextSibling)},get previousSibling(){return void 0!==this.previousSibling_?this.previousSibling_:M(J(this).previousSibling)},get parentElement(){for(var a=this.parentNode;a&&a.nodeType!==w.ELEMENT_NODE;)a=a.parentNode;return a},get textContent(){for(var a="",b=this.firstChild;b;b=b.nextSibling)b.nodeType!=w.COMMENT_NODE&&(a+=b.textContent);return a},set textContent(a){null==a&&(a="");var b=i(this.childNodes);if(this.invalidateShadowRenderer()){if(r(this),""!==a){var c=J(this).ownerDocument.createTextNode(a);this.appendChild(c)}}else q(this),J(this).textContent=a;var d=i(this.childNodes);C(this,"childList",{addedNodes:d,removedNodes:b}),m(b),k(d,this)},get childNodes(){for(var a=new y,b=0,c=this.firstChild;c;c=c.nextSibling)a[b++]=c;return a.length=b,a},cloneNode:function(a){return u(this,a)},contains:function(a){return v(this,N(a))},compareDocumentPosition:function(a){return U.call(J(this),L(a))},isEqualNode:function(a){return V.call(J(this),L(a))},normalize:function(){for(var a,b,c=i(this.childNodes),d=[],e="",f=0;f<c.length;f++)b=c[f],b.nodeType===w.TEXT_NODE?a||b.data.length?a?(e+=b.data,d.push(b)):a=b:this.removeChild(b):(a&&d.length&&(a.data+=e,t(d)),d=[],e="",a=null,b.childNodes.length&&b.normalize());a&&d.length&&(a.data+=e,t(d))}}),B(w,"ownerDocument"),H(S,w,document.createDocumentFragment()),delete w.prototype.querySelector,delete w.prototype.querySelectorAll,w.prototype=F(Object.create(x.prototype),w.prototype),a.cloneNode=u,a.nodeWasAdded=j,a.nodeWasRemoved=l,a.nodesWereAdded=k,a.nodesWereRemoved=m,a.originalInsertBefore=W,a.originalRemoveChild=X,a.snapshotNodeList=i,a.wrappers.Node=w}(window.ShadowDOMPolyfill),function(a){"use strict";function b(b,c,d,e){for(var f=null,g=null,h=0,i=b.length;i>h;h++)f=t(b[h]),!e&&(g=r(f).root)&&g instanceof a.wrappers.ShadowRoot||(d[c++]=f);return c}function c(a){return String(a).replace(/\/deep\/|::shadow|>>>/g," ")}function d(a){return String(a).replace(/:host\(([^\s]+)\)/g,"$1").replace(/([^\s]):host/g,"$1").replace(":host","*").replace(/\^|\/shadow\/|\/shadow-deep\/|::shadow|\/deep\/|::content|>>>/g," ")}function e(a,b){for(var c,d=a.firstElementChild;d;){if(d.matches(b))return d;if(c=e(d,b))return c;d=d.nextElementSibling}return null}function f(a,b){return a.matches(b)}function g(a,b,c){var d=a.localName;return d===b||d===c&&a.namespaceURI===E}function h(){return!0}function i(a,b,c){return a.localName===c}function j(a,b){return a.namespaceURI===b}function k(a,b,c){return a.namespaceURI===b&&a.localName===c}function l(a,b,c,d,e,f){for(var g=a.firstElementChild;g;)d(g,e,f)&&(c[b++]=g),b=l(g,b,c,d,e,f),g=g.nextElementSibling;return b}function m(c,d,e,f,g){var h,i=s(this),j=r(this).root;if(j instanceof a.wrappers.ShadowRoot)return l(this,d,e,c,f,null);if(i instanceof C)h=x.call(i,f);else{if(!(i instanceof D))return l(this,d,e,c,f,null);h=w.call(i,f)}return b(h,d,e,g)}function n(c,d,e,f,g){var h,i=s(this),j=r(this).root;if(j instanceof a.wrappers.ShadowRoot)return l(this,d,e,c,f,g);if(i instanceof C)h=z.call(i,f,g);else{if(!(i instanceof D))return l(this,d,e,c,f,g);h=y.call(i,f,g)}return b(h,d,e,!1)}function o(c,d,e,f,g){var h,i=s(this),j=r(this).root;if(j instanceof a.wrappers.ShadowRoot)return l(this,d,e,c,f,g);if(i instanceof C)h=B.call(i,f,g);else{if(!(i instanceof D))return l(this,d,e,c,f,g);h=A.call(i,f,g)}return b(h,d,e,!1)}var p=a.wrappers.HTMLCollection,q=a.wrappers.NodeList,r=a.getTreeScope,s=a.unsafeUnwrap,t=a.wrap,u=document.querySelector,v=document.documentElement.querySelector,w=document.querySelectorAll,x=document.documentElement.querySelectorAll,y=document.getElementsByTagName,z=document.documentElement.getElementsByTagName,A=document.getElementsByTagNameNS,B=document.documentElement.getElementsByTagNameNS,C=window.Element,D=window.HTMLDocument||window.Document,E="http://www.w3.org/1999/xhtml",F={querySelector:function(b){var d=c(b),f=d!==b;b=d;var g,h=s(this),i=r(this).root;if(i instanceof a.wrappers.ShadowRoot)return e(this,b);if(h instanceof C)g=t(v.call(h,b));else{if(!(h instanceof D))return e(this,b);g=t(u.call(h,b))}return g&&!f&&(i=r(g).root)&&i instanceof a.wrappers.ShadowRoot?e(this,b):g},querySelectorAll:function(a){var b=c(a),d=b!==a;a=b;var e=new q;return e.length=m.call(this,f,0,e,a,d),e}},G={matches:function(b){return b=d(b),a.originalMatches.call(s(this),b)}},H={getElementsByTagName:function(a){var b=new p,c="*"===a?h:g;return b.length=n.call(this,c,0,b,a,a.toLowerCase()),b},getElementsByClassName:function(a){return this.querySelectorAll("."+a)},getElementsByTagNameNS:function(a,b){var c=new p,d=null;return d="*"===a?"*"===b?h:i:"*"===b?j:k,c.length=o.call(this,d,0,c,a||null,b),c}};a.GetElementsByInterface=H,a.SelectorsInterface=F,a.MatchesInterface=G}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){for(;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.nextSibling;return a}function c(a){for(;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.previousSibling;return a}var d=a.wrappers.NodeList,e={get firstElementChild(){return b(this.firstChild)},get lastElementChild(){return c(this.lastChild)},get childElementCount(){for(var a=0,b=this.firstElementChild;b;b=b.nextElementSibling)a++;return a},get children(){for(var a=new d,b=0,c=this.firstElementChild;c;c=c.nextElementSibling)a[b++]=c;return a.length=b,a},remove:function(){var a=this.parentNode;a&&a.removeChild(this)}},f={get nextElementSibling(){return b(this.nextSibling)},get previousElementSibling(){return c(this.previousSibling)}},g={getElementById:function(a){return/[ \t\n\r\f]/.test(a)?null:this.querySelector('[id="'+a+'"]')}};a.ChildNodeInterface=f,a.NonElementParentNodeInterface=g,a.ParentNodeInterface=e}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d.call(this,a)}var c=a.ChildNodeInterface,d=a.wrappers.Node,e=a.enqueueMutation,f=a.mixin,g=a.registerWrapper,h=a.unsafeUnwrap,i=window.CharacterData;b.prototype=Object.create(d.prototype),f(b.prototype,{get nodeValue(){return this.data},set nodeValue(a){this.data=a},get textContent(){return this.data},set textContent(a){this.data=a},get data(){return h(this).data},set data(a){var b=h(this).data;e(this,"characterData",{oldValue:b}),h(this).data=a}}),f(b.prototype,c),g(i,b,document.createTextNode("")),a.wrappers.CharacterData=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){return a>>>0}function c(a){d.call(this,a)}var d=a.wrappers.CharacterData,e=(a.enqueueMutation,a.mixin),f=a.registerWrapper,g=window.Text;c.prototype=Object.create(d.prototype),e(c.prototype,{splitText:function(a){a=b(a);var c=this.data;if(a>c.length)throw new Error("IndexSizeError");var d=c.slice(0,a),e=c.slice(a);this.data=d;var f=this.ownerDocument.createTextNode(e);return this.parentNode&&this.parentNode.insertBefore(f,this.nextSibling),f}}),f(g,c,document.createTextNode("")),a.wrappers.Text=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){return f(a).getAttribute("class")}function c(a,b){g(a,"attributes",{name:"class",namespace:null,oldValue:b})}function d(b){a.invalidateRendererBasedOnAttribute(b,"class")}function e(a,e,f){var g=a.ownerElement_;if(null==g)return e.apply(a,f);var h=b(g),i=e.apply(a,f);return b(g)!==h&&(c(g,h),d(g)),i}if(!window.DOMTokenList)return void console.warn("Missing DOMTokenList prototype, please include a compatible classList polyfill such as http://goo.gl/uTcepH.");var f=a.unsafeUnwrap,g=a.enqueueMutation,h=DOMTokenList.prototype.add;DOMTokenList.prototype.add=function(){e(this,h,arguments)};var i=DOMTokenList.prototype.remove;DOMTokenList.prototype.remove=function(){e(this,i,arguments)};var j=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(){return e(this,j,arguments)}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(b,c){var d=b.parentNode;if(d&&d.shadowRoot){var e=a.getRendererForHost(d);e.dependsOnAttribute(c)&&e.invalidate()}}function c(a,b,c){k(a,"attributes",{name:b,namespace:null,oldValue:c})}function d(a){g.call(this,a)}var e=a.ChildNodeInterface,f=a.GetElementsByInterface,g=a.wrappers.Node,h=a.ParentNodeInterface,i=a.SelectorsInterface,j=a.MatchesInterface,k=(a.addWrapNodeListMethod,a.enqueueMutation),l=a.mixin,m=(a.oneOf,a.registerWrapper),n=a.unsafeUnwrap,o=a.wrappers,p=window.Element,q=["matches","mozMatchesSelector","msMatchesSelector","webkitMatchesSelector"].filter(function(a){return p.prototype[a]}),r=q[0],s=p.prototype[r],t=new WeakMap;d.prototype=Object.create(g.prototype),l(d.prototype,{createShadowRoot:function(){var b=new o.ShadowRoot(this);n(this).polymerShadowRoot_=b;var c=a.getRendererForHost(this);return c.invalidate(),b},get shadowRoot(){return n(this).polymerShadowRoot_||null},setAttribute:function(a,d){var e=n(this).getAttribute(a);n(this).setAttribute(a,d),c(this,a,e),b(this,a)},removeAttribute:function(a){var d=n(this).getAttribute(a);n(this).removeAttribute(a),c(this,a,d),b(this,a)},get classList(){var a=t.get(this);if(!a){if(a=n(this).classList,!a)return;a.ownerElement_=this,t.set(this,a)}return a},get className(){return n(this).className},set className(a){this.setAttribute("class",a)},get id(){return n(this).id},set id(a){this.setAttribute("id",a)}}),q.forEach(function(a){"matches"!==a&&(d.prototype[a]=function(a){return this.matches(a)})}),p.prototype.webkitCreateShadowRoot&&(d.prototype.webkitCreateShadowRoot=d.prototype.createShadowRoot),l(d.prototype,e),l(d.prototype,f),l(d.prototype,h),l(d.prototype,i),l(d.prototype,j),m(p,d,document.createElementNS(null,"x")),a.invalidateRendererBasedOnAttribute=b,a.matchesNames=q,a.originalMatches=s,a.wrappers.Element=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){switch(a){case"&":return"&amp;";case"<":return"&lt;";case">":return"&gt;";case'"':return"&quot;";case" ":return"&nbsp;"}}function c(a){return a.replace(B,b)}function d(a){return a.replace(C,b)}function e(a){for(var b={},c=0;c<a.length;c++)b[a[c]]=!0;return b}function f(a){if(a.namespaceURI!==F)return!0;var b=a.ownerDocument.doctype;return b&&b.publicId&&b.systemId}function g(a,b){switch(a.nodeType){case Node.ELEMENT_NODE:for(var e,g=a.tagName.toLowerCase(),i="<"+g,j=a.attributes,k=0;e=j[k];k++)i+=" "+e.name+'="'+c(e.value)+'"';return D[g]?(f(a)&&(i+="/"),i+">"):i+">"+h(a)+"</"+g+">";case Node.TEXT_NODE:var l=a.data;return b&&E[b.localName]?l:d(l);case Node.COMMENT_NODE:return"<!--"+a.data+"-->";default:throw console.error(a),new Error("not implemented")}}function h(a){a instanceof A.HTMLTemplateElement&&(a=a.content);for(var b="",c=a.firstChild;c;c=c.nextSibling)b+=g(c,a);return b}function i(a,b,c){var d=c||"div";a.textContent="";var e=y(a.ownerDocument.createElement(d));e.innerHTML=b;for(var f;f=e.firstChild;)a.appendChild(z(f))}function j(a){p.call(this,a)}function k(a,b){var c=y(a.cloneNode(!1));c.innerHTML=b;for(var d,e=y(document.createDocumentFragment());d=c.firstChild;)e.appendChild(d);return z(e)}function l(b){return function(){return a.renderAllPending(),x(this)[b]}}function m(a){q(j,a,l(a))}function n(b){Object.defineProperty(j.prototype,b,{get:l(b),set:function(c){a.renderAllPending(),x(this)[b]=c},configurable:!0,enumerable:!0})}function o(b){Object.defineProperty(j.prototype,b,{value:function(){return a.renderAllPending(),x(this)[b].apply(x(this),arguments)},configurable:!0,enumerable:!0})}var p=a.wrappers.Element,q=a.defineGetter,r=a.enqueueMutation,s=a.mixin,t=a.nodesWereAdded,u=a.nodesWereRemoved,v=a.registerWrapper,w=a.snapshotNodeList,x=a.unsafeUnwrap,y=a.unwrap,z=a.wrap,A=a.wrappers,B=/[&\u00A0"]/g,C=/[&\u00A0<>]/g,D=e(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),E=e(["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"]),F="http://www.w3.org/1999/xhtml",G=/MSIE/.test(navigator.userAgent),H=window.HTMLElement,I=window.HTMLTemplateElement;j.prototype=Object.create(p.prototype),s(j.prototype,{get innerHTML(){return h(this)},set innerHTML(a){if(G&&E[this.localName])return void(this.textContent=a);var b=w(this.childNodes);this.invalidateShadowRenderer()?this instanceof A.HTMLTemplateElement?i(this.content,a):i(this,a,this.tagName):!I&&this instanceof A.HTMLTemplateElement?i(this.content,a):x(this).innerHTML=a;var c=w(this.childNodes);r(this,"childList",{addedNodes:c,removedNodes:b}),u(b),t(c,this)},get outerHTML(){return g(this,this.parentNode)},set outerHTML(a){var b=this.parentNode;if(b){b.invalidateShadowRenderer();var c=k(b,a);b.replaceChild(c,this)}},insertAdjacentHTML:function(a,b){var c,d;switch(String(a).toLowerCase()){case"beforebegin":c=this.parentNode,d=this;break;case"afterend":c=this.parentNode,d=this.nextSibling;break;case"afterbegin":c=this,d=this.firstChild;break;case"beforeend":c=this,d=null;break;default:return}var e=k(c,b);c.insertBefore(e,d)},get hidden(){return this.hasAttribute("hidden")},set hidden(a){a?this.setAttribute("hidden",""):this.removeAttribute("hidden")}}),["clientHeight","clientLeft","clientTop","clientWidth","offsetHeight","offsetLeft","offsetTop","offsetWidth","scrollHeight","scrollWidth"].forEach(m),["scrollLeft","scrollTop"].forEach(n),["focus","getBoundingClientRect","getClientRects","scrollIntoView"].forEach(o),v(H,j,document.createElement("b")),a.wrappers.HTMLElement=j,a.getInnerHTML=h,a.setInnerHTML=i}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.unsafeUnwrap,g=a.wrap,h=window.HTMLCanvasElement;b.prototype=Object.create(c.prototype),d(b.prototype,{getContext:function(){var a=f(this).getContext.apply(f(this),arguments);return a&&g(a)}}),e(h,b,document.createElement("canvas")),a.wrappers.HTMLCanvasElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=window.HTMLContentElement;b.prototype=Object.create(c.prototype),d(b.prototype,{constructor:b,get select(){return this.getAttribute("select")},set select(a){this.setAttribute("select",a)},setAttribute:function(a,b){c.prototype.setAttribute.call(this,a,b),"select"===String(a).toLowerCase()&&this.invalidateShadowRenderer(!0)}}),f&&e(f,b),a.wrappers.HTMLContentElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.wrapHTMLCollection,g=a.unwrap,h=window.HTMLFormElement;b.prototype=Object.create(c.prototype),d(b.prototype,{get elements(){return f(g(this).elements)}}),e(h,b,document.createElement("form")),a.wrappers.HTMLFormElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d.call(this,a)}function c(a,b){if(!(this instanceof c))throw new TypeError("DOM object constructor cannot be called as a function.");var e=f(document.createElement("img"));d.call(this,e),g(e,this),void 0!==a&&(e.width=a),void 0!==b&&(e.height=b)}var d=a.wrappers.HTMLElement,e=a.registerWrapper,f=a.unwrap,g=a.rewrap,h=window.HTMLImageElement;b.prototype=Object.create(d.prototype),e(h,b,document.createElement("img")),c.prototype=b.prototype,a.wrappers.HTMLImageElement=b,a.wrappers.Image=c}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=(a.mixin,a.wrappers.NodeList,a.registerWrapper),e=window.HTMLShadowElement;b.prototype=Object.create(c.prototype),b.prototype.constructor=b,
+e&&d(e,b),a.wrappers.HTMLShadowElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){if(!a.defaultView)return a;var b=l.get(a);if(!b){for(b=a.implementation.createHTMLDocument("");b.lastChild;)b.removeChild(b.lastChild);l.set(a,b)}return b}function c(a){for(var c,d=b(a.ownerDocument),e=i(d.createDocumentFragment());c=a.firstChild;)e.appendChild(c);return e}function d(a){if(e.call(this,a),!m){var b=c(a);k.set(this,j(b))}}var e=a.wrappers.HTMLElement,f=a.mixin,g=a.registerWrapper,h=a.unsafeUnwrap,i=a.unwrap,j=a.wrap,k=new WeakMap,l=new WeakMap,m=window.HTMLTemplateElement;d.prototype=Object.create(e.prototype),f(d.prototype,{constructor:d,get content(){return m?j(h(this).content):k.get(this)}}),m&&g(m,d),a.wrappers.HTMLTemplateElement=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.registerWrapper,e=window.HTMLMediaElement;e&&(b.prototype=Object.create(c.prototype),d(e,b,document.createElement("audio")),a.wrappers.HTMLMediaElement=b)}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d.call(this,a)}function c(a){if(!(this instanceof c))throw new TypeError("DOM object constructor cannot be called as a function.");var b=f(document.createElement("audio"));d.call(this,b),g(b,this),b.setAttribute("preload","auto"),void 0!==a&&b.setAttribute("src",a)}var d=a.wrappers.HTMLMediaElement,e=a.registerWrapper,f=a.unwrap,g=a.rewrap,h=window.HTMLAudioElement;h&&(b.prototype=Object.create(d.prototype),e(h,b,document.createElement("audio")),c.prototype=b.prototype,a.wrappers.HTMLAudioElement=b,a.wrappers.Audio=c)}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){return a.replace(/\s+/g," ").trim()}function c(a){e.call(this,a)}function d(a,b,c,f){if(!(this instanceof d))throw new TypeError("DOM object constructor cannot be called as a function.");var g=i(document.createElement("option"));e.call(this,g),h(g,this),void 0!==a&&(g.text=a),void 0!==b&&g.setAttribute("value",b),c===!0&&g.setAttribute("selected",""),g.selected=f===!0}var e=a.wrappers.HTMLElement,f=a.mixin,g=a.registerWrapper,h=a.rewrap,i=a.unwrap,j=a.wrap,k=window.HTMLOptionElement;c.prototype=Object.create(e.prototype),f(c.prototype,{get text(){return b(this.textContent)},set text(a){this.textContent=b(String(a))},get form(){return j(i(this).form)}}),g(k,c,document.createElement("option")),d.prototype=c.prototype,a.wrappers.HTMLOptionElement=c,a.wrappers.Option=d}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.unwrap,g=a.wrap,h=window.HTMLSelectElement;b.prototype=Object.create(c.prototype),d(b.prototype,{add:function(a,b){"object"==typeof b&&(b=f(b)),f(this).add(f(a),b)},remove:function(a){return void 0===a?void c.prototype.remove.call(this):("object"==typeof a&&(a=f(a)),void f(this).remove(a))},get form(){return g(f(this).form)}}),e(h,b,document.createElement("select")),a.wrappers.HTMLSelectElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.unwrap,g=a.wrap,h=a.wrapHTMLCollection,i=window.HTMLTableElement;b.prototype=Object.create(c.prototype),d(b.prototype,{get caption(){return g(f(this).caption)},createCaption:function(){return g(f(this).createCaption())},get tHead(){return g(f(this).tHead)},createTHead:function(){return g(f(this).createTHead())},createTFoot:function(){return g(f(this).createTFoot())},get tFoot(){return g(f(this).tFoot)},get tBodies(){return h(f(this).tBodies)},createTBody:function(){return g(f(this).createTBody())},get rows(){return h(f(this).rows)},insertRow:function(a){return g(f(this).insertRow(a))}}),e(i,b,document.createElement("table")),a.wrappers.HTMLTableElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.wrapHTMLCollection,g=a.unwrap,h=a.wrap,i=window.HTMLTableSectionElement;b.prototype=Object.create(c.prototype),d(b.prototype,{constructor:b,get rows(){return f(g(this).rows)},insertRow:function(a){return h(g(this).insertRow(a))}}),e(i,b,document.createElement("thead")),a.wrappers.HTMLTableSectionElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.HTMLElement,d=a.mixin,e=a.registerWrapper,f=a.wrapHTMLCollection,g=a.unwrap,h=a.wrap,i=window.HTMLTableRowElement;b.prototype=Object.create(c.prototype),d(b.prototype,{get cells(){return f(g(this).cells)},insertCell:function(a){return h(g(this).insertCell(a))}}),e(i,b,document.createElement("tr")),a.wrappers.HTMLTableRowElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){switch(a.localName){case"content":return new c(a);case"shadow":return new e(a);case"template":return new f(a)}d.call(this,a)}var c=a.wrappers.HTMLContentElement,d=a.wrappers.HTMLElement,e=a.wrappers.HTMLShadowElement,f=a.wrappers.HTMLTemplateElement,g=(a.mixin,a.registerWrapper),h=window.HTMLUnknownElement;b.prototype=Object.create(d.prototype),g(h,b),a.wrappers.HTMLUnknownElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.Element,d=a.wrappers.HTMLElement,e=a.registerWrapper,f=(a.defineWrapGetter,a.unsafeUnwrap),g=a.wrap,h=a.mixin,i="http://www.w3.org/2000/svg",j=window.SVGElement,k=document.createElementNS(i,"title");if(!("classList"in k)){var l=Object.getOwnPropertyDescriptor(c.prototype,"classList");Object.defineProperty(d.prototype,"classList",l),delete c.prototype.classList}b.prototype=Object.create(c.prototype),h(b.prototype,{get ownerSVGElement(){return g(f(this).ownerSVGElement)}}),e(j,b,document.createElementNS(i,"title")),a.wrappers.SVGElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){m.call(this,a)}var c=a.mixin,d=a.registerWrapper,e=a.unwrap,f=a.wrap,g=window.SVGUseElement,h="http://www.w3.org/2000/svg",i=f(document.createElementNS(h,"g")),j=document.createElementNS(h,"use"),k=i.constructor,l=Object.getPrototypeOf(k.prototype),m=l.constructor;b.prototype=Object.create(l),"instanceRoot"in j&&c(b.prototype,{get instanceRoot(){return f(e(this).instanceRoot)},get animatedInstanceRoot(){return f(e(this).animatedInstanceRoot)}}),d(g,b,j),a.wrappers.SVGUseElement=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.EventTarget,d=a.mixin,e=a.registerWrapper,f=a.unsafeUnwrap,g=a.wrap,h=window.SVGElementInstance;h&&(b.prototype=Object.create(c.prototype),d(b.prototype,{get correspondingElement(){return g(f(this).correspondingElement)},get correspondingUseElement(){return g(f(this).correspondingUseElement)},get parentNode(){return g(f(this).parentNode)},get childNodes(){throw new Error("Not implemented")},get firstChild(){return g(f(this).firstChild)},get lastChild(){return g(f(this).lastChild)},get previousSibling(){return g(f(this).previousSibling)},get nextSibling(){return g(f(this).nextSibling)}}),e(h,b),a.wrappers.SVGElementInstance=b)}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){e(a,this)}var c=a.mixin,d=a.registerWrapper,e=a.setWrapper,f=a.unsafeUnwrap,g=a.unwrap,h=a.unwrapIfNeeded,i=a.wrap,j=window.CanvasRenderingContext2D;c(b.prototype,{get canvas(){return i(f(this).canvas)},drawImage:function(){arguments[0]=h(arguments[0]),f(this).drawImage.apply(f(this),arguments)},createPattern:function(){return arguments[0]=g(arguments[0]),f(this).createPattern.apply(f(this),arguments)}}),d(j,b,document.createElement("canvas").getContext("2d")),a.wrappers.CanvasRenderingContext2D=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){f(a,this)}var c=a.addForwardingProperties,d=a.mixin,e=a.registerWrapper,f=a.setWrapper,g=a.unsafeUnwrap,h=a.unwrapIfNeeded,i=a.wrap,j=window.WebGLRenderingContext;if(j){d(b.prototype,{get canvas(){return i(g(this).canvas)},texImage2D:function(){arguments[5]=h(arguments[5]),g(this).texImage2D.apply(g(this),arguments)},texSubImage2D:function(){arguments[6]=h(arguments[6]),g(this).texSubImage2D.apply(g(this),arguments)}});var k=Object.getPrototypeOf(j.prototype);k!==Object.prototype&&c(k,b.prototype);var l=/WebKit/.test(navigator.userAgent)?{drawingBufferHeight:null,drawingBufferWidth:null}:{};e(j,b,l),a.wrappers.WebGLRenderingContext=b}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.Node,d=a.GetElementsByInterface,e=a.NonElementParentNodeInterface,f=a.ParentNodeInterface,g=a.SelectorsInterface,h=a.mixin,i=a.registerObject,j=a.registerWrapper,k=window.DocumentFragment;b.prototype=Object.create(c.prototype),h(b.prototype,f),h(b.prototype,g),h(b.prototype,d),h(b.prototype,e),j(k,b,document.createDocumentFragment()),a.wrappers.DocumentFragment=b;var l=i(document.createComment(""));a.wrappers.Comment=l}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){var b=l(k(a).ownerDocument.createDocumentFragment());c.call(this,b),i(b,this);var e=a.shadowRoot;o.set(this,e),this.treeScope_=new d(this,g(e||a)),n.set(this,a)}var c=a.wrappers.DocumentFragment,d=a.TreeScope,e=a.elementFromPoint,f=a.getInnerHTML,g=a.getTreeScope,h=a.mixin,i=a.rewrap,j=a.setInnerHTML,k=a.unsafeUnwrap,l=a.unwrap,m=a.wrap,n=new WeakMap,o=new WeakMap;b.prototype=Object.create(c.prototype),h(b.prototype,{constructor:b,get innerHTML(){return f(this)},set innerHTML(a){j(this,a),this.invalidateShadowRenderer()},get olderShadowRoot(){return o.get(this)||null},get host(){return n.get(this)||null},invalidateShadowRenderer:function(){return n.get(this).invalidateShadowRenderer()},elementFromPoint:function(a,b){return e(this,this.ownerDocument,a,b)},getSelection:function(){return document.getSelection()},get activeElement(){var a=l(this).ownerDocument.activeElement;if(!a||!a.nodeType)return null;for(var b=m(a);!this.contains(b);){for(;b.parentNode;)b=b.parentNode;if(!b.host)return null;b=b.host}return b}}),a.wrappers.ShadowRoot=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){var b=l(a).root;return b instanceof n?b.host:null}function c(b,c){if(b.shadowRoot){c=Math.min(b.childNodes.length-1,c);var d=b.childNodes[c];if(d){var e=a.getDestinationInsertionPoints(d);if(e.length>0){var f=e[0].parentNode;f.nodeType==Node.ELEMENT_NODE&&(b=f)}}}return b}function d(a){return a=k(a),b(a)||a}function e(a){g(a,this)}var f=a.registerWrapper,g=a.setWrapper,h=a.unsafeUnwrap,i=a.unwrap,j=a.unwrapIfNeeded,k=a.wrap,l=a.getTreeScope,m=window.Range,n=a.wrappers.ShadowRoot;e.prototype={get startContainer(){return d(h(this).startContainer)},get endContainer(){return d(h(this).endContainer)},get commonAncestorContainer(){return d(h(this).commonAncestorContainer)},setStart:function(a,b){a=c(a,b),h(this).setStart(j(a),b)},setEnd:function(a,b){a=c(a,b),h(this).setEnd(j(a),b)},setStartBefore:function(a){h(this).setStartBefore(j(a))},setStartAfter:function(a){h(this).setStartAfter(j(a))},setEndBefore:function(a){h(this).setEndBefore(j(a))},setEndAfter:function(a){h(this).setEndAfter(j(a))},selectNode:function(a){h(this).selectNode(j(a))},selectNodeContents:function(a){h(this).selectNodeContents(j(a))},compareBoundaryPoints:function(a,b){return h(this).compareBoundaryPoints(a,i(b))},extractContents:function(){return k(h(this).extractContents())},cloneContents:function(){return k(h(this).cloneContents())},insertNode:function(a){h(this).insertNode(j(a))},surroundContents:function(a){h(this).surroundContents(j(a))},cloneRange:function(){return k(h(this).cloneRange())},isPointInRange:function(a,b){return h(this).isPointInRange(j(a),b)},comparePoint:function(a,b){return h(this).comparePoint(j(a),b)},intersectsNode:function(a){return h(this).intersectsNode(j(a))},toString:function(){return h(this).toString()}},m.prototype.createContextualFragment&&(e.prototype.createContextualFragment=function(a){return k(h(this).createContextualFragment(a))}),f(window.Range,e,document.createRange()),a.wrappers.Range=e}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){a.previousSibling_=a.previousSibling,a.nextSibling_=a.nextSibling,a.parentNode_=a.parentNode}function c(c,e,f){var g=H(c),h=H(e),i=f?H(f):null;if(d(e),b(e),f)c.firstChild===f&&(c.firstChild_=f),f.previousSibling_=f.previousSibling;else{c.lastChild_=c.lastChild,c.lastChild===c.firstChild&&(c.firstChild_=c.firstChild);var j=I(g.lastChild);j&&(j.nextSibling_=j.nextSibling)}a.originalInsertBefore.call(g,h,i)}function d(c){var d=H(c),e=d.parentNode;if(e){var f=I(e);b(c),c.previousSibling&&(c.previousSibling.nextSibling_=c),c.nextSibling&&(c.nextSibling.previousSibling_=c),f.lastChild===c&&(f.lastChild_=c),f.firstChild===c&&(f.firstChild_=c),a.originalRemoveChild.call(e,d)}}function e(a){K.set(a,[])}function f(a){var b=K.get(a);return b||K.set(a,b=[]),b}function g(a){for(var b=[],c=0,d=a.firstChild;d;d=d.nextSibling)b[c++]=d;return b}function h(){for(var a=0;a<O.length;a++){var b=O[a],c=b.parentRenderer;c&&c.dirty||b.render()}O=[]}function i(){y=null,h()}function j(a){var b=M.get(a);return b||(b=new n(a),M.set(a,b)),b}function k(a){var b=E(a).root;return b instanceof D?b:null}function l(a){return j(a.host)}function m(a){this.skip=!1,this.node=a,this.childNodes=[]}function n(a){this.host=a,this.dirty=!1,this.invalidateAttributes(),this.associateNode(a)}function o(a){for(var b=[],c=a.firstChild;c;c=c.nextSibling)v(c)?b.push.apply(b,f(c)):b.push(c);return b}function p(a){if(a instanceof B)return a;if(a instanceof A)return null;for(var b=a.firstChild;b;b=b.nextSibling){var c=p(b);if(c)return c}return null}function q(a,b){f(b).push(a);var c=L.get(a);c?c.push(b):L.set(a,[b])}function r(a){return L.get(a)}function s(a){L.set(a,void 0)}function t(a,b){var c=b.getAttribute("select");if(!c)return!0;if(c=c.trim(),!c)return!0;if(!(a instanceof z))return!1;if(!Q.test(c))return!1;try{return a.matches(c)}catch(d){return!1}}function u(a,b){var c=r(b);return c&&c[c.length-1]===a}function v(a){return a instanceof A||a instanceof B}function w(a){return a.shadowRoot}function x(a){for(var b=[],c=a.shadowRoot;c;c=c.olderShadowRoot)b.push(c);return b}var y,z=a.wrappers.Element,A=a.wrappers.HTMLContentElement,B=a.wrappers.HTMLShadowElement,C=a.wrappers.Node,D=a.wrappers.ShadowRoot,E=(a.assert,a.getTreeScope),F=(a.mixin,a.oneOf),G=a.unsafeUnwrap,H=a.unwrap,I=a.wrap,J=a.ArraySplice,K=new WeakMap,L=new WeakMap,M=new WeakMap,N=F(window,["requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout"]),O=[],P=new J;P.equals=function(a,b){return H(a.node)===b},m.prototype={append:function(a){var b=new m(a);return this.childNodes.push(b),b},sync:function(a){if(!this.skip){for(var b=this.node,e=this.childNodes,f=g(H(b)),h=a||new WeakMap,i=P.calculateSplices(e,f),j=0,k=0,l=0,m=0;m<i.length;m++){for(var n=i[m];l<n.index;l++)k++,e[j++].sync(h);for(var o=n.removed.length,p=0;o>p;p++){var q=I(f[k++]);h.get(q)||d(q)}for(var r=n.addedCount,s=f[k]&&I(f[k]),p=0;r>p;p++){var t=e[j++],u=t.node;c(b,u,s),h.set(u,!0),t.sync(h)}l+=r}for(var m=l;m<e.length;m++)e[m].sync(h)}}},n.prototype={render:function(a){if(this.dirty){this.invalidateAttributes();var b=this.host;this.distribution(b);var c=a||new m(b);this.buildRenderTree(c,b);var d=!a;d&&c.sync(),this.dirty=!1}},get parentRenderer(){return E(this.host).renderer},invalidate:function(){if(!this.dirty){this.dirty=!0;var a=this.parentRenderer;if(a&&a.invalidate(),O.push(this),y)return;y=window[N](i,0)}},distribution:function(a){this.resetAllSubtrees(a),this.distributionResolution(a)},resetAll:function(a){v(a)?e(a):s(a),this.resetAllSubtrees(a)},resetAllSubtrees:function(a){for(var b=a.firstChild;b;b=b.nextSibling)this.resetAll(b);a.shadowRoot&&this.resetAll(a.shadowRoot),a.olderShadowRoot&&this.resetAll(a.olderShadowRoot)},distributionResolution:function(a){if(w(a)){for(var b=a,c=o(b),d=x(b),e=0;e<d.length;e++)this.poolDistribution(d[e],c);for(var e=d.length-1;e>=0;e--){var f=d[e],g=p(f);if(g){var h=f.olderShadowRoot;h&&(c=o(h));for(var i=0;i<c.length;i++)q(c[i],g)}this.distributionResolution(f)}}for(var j=a.firstChild;j;j=j.nextSibling)this.distributionResolution(j)},poolDistribution:function(a,b){if(!(a instanceof B))if(a instanceof A){var c=a;this.updateDependentAttributes(c.getAttribute("select"));for(var d=!1,e=0;e<b.length;e++){var a=b[e];a&&t(a,c)&&(q(a,c),b[e]=void 0,d=!0)}if(!d)for(var f=c.firstChild;f;f=f.nextSibling)q(f,c)}else for(var f=a.firstChild;f;f=f.nextSibling)this.poolDistribution(f,b)},buildRenderTree:function(a,b){for(var c=this.compose(b),d=0;d<c.length;d++){var e=c[d],f=a.append(e);this.buildRenderTree(f,e)}if(w(b)){var g=j(b);g.dirty=!1}},compose:function(a){for(var b=[],c=a.shadowRoot||a,d=c.firstChild;d;d=d.nextSibling)if(v(d)){this.associateNode(c);for(var e=f(d),g=0;g<e.length;g++){var h=e[g];u(d,h)&&b.push(h)}}else b.push(d);return b},invalidateAttributes:function(){this.attributes=Object.create(null)},updateDependentAttributes:function(a){if(a){var b=this.attributes;/\.\w+/.test(a)&&(b["class"]=!0),/#\w+/.test(a)&&(b.id=!0),a.replace(/\[\s*([^\s=\|~\]]+)/g,function(a,c){b[c]=!0})}},dependsOnAttribute:function(a){return this.attributes[a]},associateNode:function(a){G(a).polymerShadowRenderer_=this}};var Q=/^(:not\()?[*.#[a-zA-Z_|]/;C.prototype.invalidateShadowRenderer=function(a){var b=G(this).polymerShadowRenderer_;return b?(b.invalidate(),!0):!1},A.prototype.getDistributedNodes=B.prototype.getDistributedNodes=function(){return h(),f(this)},z.prototype.getDestinationInsertionPoints=function(){return h(),r(this)||[]},A.prototype.nodeIsInserted_=B.prototype.nodeIsInserted_=function(){this.invalidateShadowRenderer();var a,b=k(this);b&&(a=l(b)),G(this).polymerShadowRenderer_=a,a&&a.invalidate()},a.getRendererForHost=j,a.getShadowTrees=x,a.renderAllPending=h,a.getDestinationInsertionPoints=r,a.visual={insertBefore:c,remove:d}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(b){if(window[b]){d(!a.wrappers[b]);var i=function(a){c.call(this,a)};i.prototype=Object.create(c.prototype),e(i.prototype,{get form(){return h(g(this).form)}}),f(window[b],i,document.createElement(b.slice(4,-7))),a.wrappers[b]=i}}var c=a.wrappers.HTMLElement,d=a.assert,e=a.mixin,f=a.registerWrapper,g=a.unwrap,h=a.wrap,i=["HTMLButtonElement","HTMLFieldSetElement","HTMLInputElement","HTMLKeygenElement","HTMLLabelElement","HTMLLegendElement","HTMLObjectElement","HTMLOutputElement","HTMLTextAreaElement"];i.forEach(b)}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d(a,this)}var c=a.registerWrapper,d=a.setWrapper,e=a.unsafeUnwrap,f=a.unwrap,g=a.unwrapIfNeeded,h=a.wrap,i=window.Selection;b.prototype={get anchorNode(){return h(e(this).anchorNode)},get focusNode(){return h(e(this).focusNode)},addRange:function(a){e(this).addRange(g(a))},collapse:function(a,b){e(this).collapse(g(a),b)},containsNode:function(a,b){return e(this).containsNode(g(a),b)},getRangeAt:function(a){return h(e(this).getRangeAt(a))},removeRange:function(a){e(this).removeRange(f(a))},selectAllChildren:function(a){e(this).selectAllChildren(a instanceof ShadowRoot?e(a.host):g(a))},toString:function(){return e(this).toString()}},i.prototype.extend&&(b.prototype.extend=function(a,b){e(this).extend(g(a),b)}),c(window.Selection,b,window.getSelection()),a.wrappers.Selection=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){d(a,this)}var c=a.registerWrapper,d=a.setWrapper,e=a.unsafeUnwrap,f=a.unwrapIfNeeded,g=a.wrap,h=window.TreeWalker;b.prototype={get root(){return g(e(this).root)},get currentNode(){return g(e(this).currentNode)},set currentNode(a){e(this).currentNode=f(a)},get filter(){return e(this).filter},parentNode:function(){return g(e(this).parentNode())},firstChild:function(){return g(e(this).firstChild())},lastChild:function(){return g(e(this).lastChild())},previousSibling:function(){return g(e(this).previousSibling())},previousNode:function(){return g(e(this).previousNode())},nextNode:function(){return g(e(this).nextNode())}},c(h,b),a.wrappers.TreeWalker=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){k.call(this,a),this.treeScope_=new q(this,null)}function c(a){var c=document[a];b.prototype[a]=function(){return E(c.apply(C(this),arguments))}}function d(a,b){H.call(C(b),D(a)),e(a,b)}function e(a,b){a.shadowRoot&&b.adoptNode(a.shadowRoot),a instanceof p&&f(a,b);for(var c=a.firstChild;c;c=c.nextSibling)e(c,b)}function f(a,b){var c=a.olderShadowRoot;c&&b.adoptNode(c)}function g(a){B(a,this)}function h(a,b){var c=document.implementation[b];a.prototype[b]=function(){return E(c.apply(C(this),arguments))}}function i(a,b){var c=document.implementation[b];a.prototype[b]=function(){return c.apply(C(this),arguments)}}var j=a.GetElementsByInterface,k=a.wrappers.Node,l=a.ParentNodeInterface,m=a.NonElementParentNodeInterface,n=a.wrappers.Selection,o=a.SelectorsInterface,p=a.wrappers.ShadowRoot,q=a.TreeScope,r=a.cloneNode,s=a.defineGetter,t=a.defineWrapGetter,u=a.elementFromPoint,v=a.forwardMethodsToWrapper,w=a.matchesNames,x=a.mixin,y=a.registerWrapper,z=a.renderAllPending,A=a.rewrap,B=a.setWrapper,C=a.unsafeUnwrap,D=a.unwrap,E=a.wrap,F=a.wrapEventTargetMethods,G=(a.wrapNodeList,new WeakMap);b.prototype=Object.create(k.prototype),t(b,"documentElement"),t(b,"body"),t(b,"head"),s(b,"activeElement",function(){var a=D(this).activeElement;if(!a||!a.nodeType)return null;for(var b=E(a);!this.contains(b);){for(;b.parentNode;)b=b.parentNode;if(!b.host)return null;b=b.host}return b}),["createComment","createDocumentFragment","createElement","createElementNS","createEvent","createEventNS","createRange","createTextNode"].forEach(c);var H=document.adoptNode,I=document.getSelection;x(b.prototype,{adoptNode:function(a){return a.parentNode&&a.parentNode.removeChild(a),d(a,this),a},elementFromPoint:function(a,b){return u(this,this,a,b)},importNode:function(a,b){return r(a,b,C(this))},getSelection:function(){return z(),new n(I.call(D(this)))},getElementsByName:function(a){return o.querySelectorAll.call(this,"[name="+JSON.stringify(String(a))+"]")}});var J=document.createTreeWalker,K=a.wrappers.TreeWalker;if(b.prototype.createTreeWalker=function(a,b,c,d){var e=null;return c&&(c.acceptNode&&"function"==typeof c.acceptNode?e={acceptNode:function(a){return c.acceptNode(E(a))}}:"function"==typeof c&&(e=function(a){return c(E(a))})),new K(J.call(D(this),D(a),b,e,d))},document.registerElement){var L=document.registerElement;b.prototype.registerElement=function(b,c){function d(a){return a?void B(a,this):f?document.createElement(f,b):document.createElement(b)}var e,f;if(void 0!==c&&(e=c.prototype,f=c["extends"]),e||(e=Object.create(HTMLElement.prototype)),a.nativePrototypeTable.get(e))throw new Error("NotSupportedError");for(var g,h=Object.getPrototypeOf(e),i=[];h&&!(g=a.nativePrototypeTable.get(h));)i.push(h),h=Object.getPrototypeOf(h);if(!g)throw new Error("NotSupportedError");for(var j=Object.create(g),k=i.length-1;k>=0;k--)j=Object.create(j);["createdCallback","attachedCallback","detachedCallback","attributeChangedCallback"].forEach(function(a){var b=e[a];b&&(j[a]=function(){E(this)instanceof d||A(this),b.apply(E(this),arguments)})});var l={prototype:j};f&&(l["extends"]=f),d.prototype=e,d.prototype.constructor=d,a.constructorTable.set(j,d),a.nativePrototypeTable.set(e,j);L.call(D(this),b,l);return d},v([window.HTMLDocument||window.Document],["registerElement"])}v([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement,window.HTMLHtmlElement],["appendChild","compareDocumentPosition","contains","getElementsByClassName","getElementsByTagName","getElementsByTagNameNS","insertBefore","querySelector","querySelectorAll","removeChild","replaceChild"]),v([window.HTMLBodyElement,window.HTMLHeadElement,window.HTMLHtmlElement],w),v([window.HTMLDocument||window.Document],["adoptNode","importNode","contains","createComment","createDocumentFragment","createElement","createElementNS","createEvent","createEventNS","createRange","createTextNode","createTreeWalker","elementFromPoint","getElementById","getElementsByName","getSelection"]),x(b.prototype,j),x(b.prototype,l),x(b.prototype,o),x(b.prototype,m),x(b.prototype,{get implementation(){var a=G.get(this);return a?a:(a=new g(D(this).implementation),G.set(this,a),a)},get defaultView(){return E(D(this).defaultView)}}),y(window.Document,b,document.implementation.createHTMLDocument("")),window.HTMLDocument&&y(window.HTMLDocument,b),F([window.HTMLBodyElement,window.HTMLDocument||window.Document,window.HTMLHeadElement]);var M=document.implementation.createDocument;g.prototype.createDocument=function(){return arguments[2]=D(arguments[2]),E(M.apply(C(this),arguments))},h(g,"createDocumentType"),h(g,"createHTMLDocument"),i(g,"hasFeature"),y(window.DOMImplementation,g),v([window.DOMImplementation],["createDocument","createDocumentType","createHTMLDocument","hasFeature"]),a.adoptNodeNoRemove=d,a.wrappers.DOMImplementation=g,a.wrappers.Document=b}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){c.call(this,a)}var c=a.wrappers.EventTarget,d=a.wrappers.Selection,e=a.mixin,f=a.registerWrapper,g=a.renderAllPending,h=a.unwrap,i=a.unwrapIfNeeded,j=a.wrap,k=window.Window,l=window.getComputedStyle,m=window.getDefaultComputedStyle,n=window.getSelection;b.prototype=Object.create(c.prototype),k.prototype.getComputedStyle=function(a,b){return j(this||window).getComputedStyle(i(a),b)},m&&(k.prototype.getDefaultComputedStyle=function(a,b){return j(this||window).getDefaultComputedStyle(i(a),b)}),k.prototype.getSelection=function(){return j(this||window).getSelection()},delete window.getComputedStyle,delete window.getDefaultComputedStyle,delete window.getSelection,["addEventListener","removeEventListener","dispatchEvent"].forEach(function(a){k.prototype[a]=function(){var b=j(this||window);return b[a].apply(b,arguments)},delete window[a]}),e(b.prototype,{getComputedStyle:function(a,b){return g(),l.call(h(this),i(a),b)},getSelection:function(){return g(),new d(n.call(h(this)))},get document(){return j(h(this).document)}}),m&&(b.prototype.getDefaultComputedStyle=function(a,b){return g(),m.call(h(this),i(a),b)}),f(k,b,window),a.wrappers.Window=b}(window.ShadowDOMPolyfill),function(a){"use strict";var b=a.unwrap,c=window.DataTransfer||window.Clipboard,d=c.prototype.setDragImage;d&&(c.prototype.setDragImage=function(a,c,e){d.call(this,b(a),c,e)})}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){var b;b=a instanceof f?a:new f(a&&e(a)),d(b,this)}var c=a.registerWrapper,d=a.setWrapper,e=a.unwrap,f=window.FormData;f&&(c(f,b,new f),a.wrappers.FormData=b)}(window.ShadowDOMPolyfill),function(a){"use strict";var b=a.unwrapIfNeeded,c=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(a){return c.call(this,b(a))}}(window.ShadowDOMPolyfill),function(a){"use strict";function b(a){var b=c[a],d=window[b];if(d){var e=document.createElement(a),f=e.constructor;window[b]=f}}var c=(a.isWrapperFor,{a:"HTMLAnchorElement",area:"HTMLAreaElement",audio:"HTMLAudioElement",base:"HTMLBaseElement",body:"HTMLBodyElement",br:"HTMLBRElement",button:"HTMLButtonElement",canvas:"HTMLCanvasElement",caption:"HTMLTableCaptionElement",col:"HTMLTableColElement",content:"HTMLContentElement",data:"HTMLDataElement",datalist:"HTMLDataListElement",del:"HTMLModElement",dir:"HTMLDirectoryElement",div:"HTMLDivElement",dl:"HTMLDListElement",embed:"HTMLEmbedElement",fieldset:"HTMLFieldSetElement",font:"HTMLFontElement",form:"HTMLFormElement",frame:"HTMLFrameElement",frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",head:"HTMLHeadElement",hr:"HTMLHRElement",html:"HTMLHtmlElement",iframe:"HTMLIFrameElement",img:"HTMLImageElement",input:"HTMLInputElement",keygen:"HTMLKeygenElement",label:"HTMLLabelElement",legend:"HTMLLegendElement",li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",marquee:"HTMLMarqueeElement",menu:"HTMLMenuElement",menuitem:"HTMLMenuItemElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",progress:"HTMLProgressElement",q:"HTMLQuoteElement",script:"HTMLScriptElement",select:"HTMLSelectElement",shadow:"HTMLShadowElement",source:"HTMLSourceElement",span:"HTMLSpanElement",style:"HTMLStyleElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",template:"HTMLTemplateElement",textarea:"HTMLTextAreaElement",thead:"HTMLTableSectionElement",time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",ul:"HTMLUListElement",video:"HTMLVideoElement"});Object.keys(c).forEach(b),Object.getOwnPropertyNames(a.wrappers).forEach(function(b){window[b]=a.wrappers[b]})}(window.ShadowDOMPolyfill),function(a){function b(a,b){var c="";return Array.prototype.forEach.call(a,function(a){c+=a.textContent+"\n\n"}),b||(c=c.replace(l,"")),c}function c(a){var b=document.createElement("style");return b.textContent=a,b}function d(a){var b=c(a);document.head.appendChild(b);var d=[];if(b.sheet)try{d=b.sheet.cssRules}catch(e){}else console.warn("sheet not found",b);return b.parentNode.removeChild(b),d}function e(){D.initialized=!0,document.body.appendChild(D);var a=D.contentDocument,b=a.createElement("base");b.href=document.baseURI,a.head.appendChild(b)}function f(a){D.initialized||e(),document.body.appendChild(D),a(D.contentDocument),document.body.removeChild(D)}function g(a,b){if(b){var e;if(a.match("@import")&&F){var g=c(a);f(function(a){a.head.appendChild(g.impl),e=Array.prototype.slice.call(g.sheet.cssRules,0),b(e)})}else e=d(a),b(e)}}function h(a){a&&j().appendChild(document.createTextNode(a))}function i(a,b){var d=c(a);d.setAttribute(b,""),d.setAttribute(H,""),document.head.appendChild(d)}function j(){return E||(E=document.createElement("style"),E.setAttribute(H,""),E[H]=!0),E}var k={strictStyling:!1,registry:{},shimStyling:function(a,c,d){var e=this.prepareRoot(a,c,d),f=this.isTypeExtension(d),g=this.makeScopeSelector(c,f),h=b(e,!0);h=this.scopeCssText(h,g),a&&(a.shimmedStyle=h),this.addCssToDocument(h,c)},shimStyle:function(a,b){return this.shimCssText(a.textContent,b)},shimCssText:function(a,b){return a=this.insertDirectives(a),this.scopeCssText(a,b)},makeScopeSelector:function(a,b){return a?b?"[is="+a+"]":a:""},isTypeExtension:function(a){return a&&a.indexOf("-")<0},prepareRoot:function(a,b,c){var d=this.registerRoot(a,b,c);return this.replaceTextInStyles(d.rootStyles,this.insertDirectives),this.removeStyles(a,d.rootStyles),this.strictStyling&&this.applyScopeToContent(a,b),d.scopeStyles},removeStyles:function(a,b){for(var c,d=0,e=b.length;e>d&&(c=b[d]);d++)c.parentNode.removeChild(c)},registerRoot:function(a,b,c){var d=this.registry[b]={root:a,name:b,extendsName:c},e=this.findStyles(a);d.rootStyles=e,d.scopeStyles=d.rootStyles;var f=this.registry[d.extendsName];return f&&(d.scopeStyles=f.scopeStyles.concat(d.scopeStyles)),d},findStyles:function(a){if(!a)return[];var b=a.querySelectorAll("style");return Array.prototype.filter.call(b,function(a){return!a.hasAttribute(I)})},applyScopeToContent:function(a,b){a&&(Array.prototype.forEach.call(a.querySelectorAll("*"),function(a){a.setAttribute(b,"")}),Array.prototype.forEach.call(a.querySelectorAll("template"),function(a){this.applyScopeToContent(a.content,b)},this))},insertDirectives:function(a){return a=this.insertPolyfillDirectivesInCssText(a),this.insertPolyfillRulesInCssText(a)},insertPolyfillDirectivesInCssText:function(a){return a=a.replace(m,function(a,b){return b.slice(0,-2)+"{"}),a.replace(n,function(a,b){return b+" {"})},insertPolyfillRulesInCssText:function(a){return a=a.replace(o,function(a,b){return b.slice(0,-1)}),a.replace(p,function(a,b,c,d){var e=a.replace(b,"").replace(c,"");return d+e})},scopeCssText:function(a,b){var c=this.extractUnscopedRulesFromCssText(a);if(a=this.insertPolyfillHostInCssText(a),a=this.convertColonHost(a),a=this.convertColonHostContext(a),a=this.convertShadowDOMSelectors(a),b){
+var a,d=this;g(a,function(c){a=d.scopeRules(c,b)})}return a=a+"\n"+c,a.trim()},extractUnscopedRulesFromCssText:function(a){for(var b,c="";b=q.exec(a);)c+=b[1].slice(0,-1)+"\n\n";for(;b=r.exec(a);)c+=b[0].replace(b[2],"").replace(b[1],b[3])+"\n\n";return c},convertColonHost:function(a){return this.convertColonRule(a,v,this.colonHostPartReplacer)},convertColonHostContext:function(a){return this.convertColonRule(a,w,this.colonHostContextPartReplacer)},convertColonRule:function(a,b,c){return a.replace(b,function(a,b,d,e){if(b=A,d){for(var f,g=d.split(","),h=[],i=0,j=g.length;j>i&&(f=g[i]);i++)f=f.trim(),h.push(c(b,f,e));return h.join(",")}return b+e})},colonHostContextPartReplacer:function(a,b,c){return b.match(s)?this.colonHostPartReplacer(a,b,c):a+b+c+", "+b+" "+a+c},colonHostPartReplacer:function(a,b,c){return a+b.replace(s,"")+c},convertShadowDOMSelectors:function(a){for(var b=0;b<C.length;b++)a=a.replace(C[b]," ");return a},scopeRules:function(a,b){var c="";return a&&Array.prototype.forEach.call(a,function(a){if(a.selectorText&&a.style&&void 0!==a.style.cssText)c+=this.scopeSelector(a.selectorText,b,this.strictStyling)+" {\n        ",c+=this.propertiesFromRule(a)+"\n}\n\n";else if(a.type===CSSRule.MEDIA_RULE)c+="@media "+a.media.mediaText+" {\n",c+=this.scopeRules(a.cssRules,b),c+="\n}\n\n";else try{a.cssText&&(c+=a.cssText+"\n\n")}catch(d){a.type===CSSRule.KEYFRAMES_RULE&&a.cssRules&&(c+=this.ieSafeCssTextFromKeyFrameRule(a))}},this),c},ieSafeCssTextFromKeyFrameRule:function(a){var b="@keyframes "+a.name+" {";return Array.prototype.forEach.call(a.cssRules,function(a){b+=" "+a.keyText+" {"+a.style.cssText+"}"}),b+=" }"},scopeSelector:function(a,b,c){var d=[],e=a.split(",");return e.forEach(function(a){a=a.trim(),this.selectorNeedsScoping(a,b)&&(a=c&&!a.match(A)?this.applyStrictSelectorScope(a,b):this.applySelectorScope(a,b)),d.push(a)},this),d.join(", ")},selectorNeedsScoping:function(a,b){if(Array.isArray(b))return!0;var c=this.makeScopeMatcher(b);return!a.match(c)},makeScopeMatcher:function(a){return a=a.replace(/\[/g,"\\[").replace(/\]/g,"\\]"),new RegExp("^("+a+")"+x,"m")},applySelectorScope:function(a,b){return Array.isArray(b)?this.applySelectorScopeList(a,b):this.applySimpleSelectorScope(a,b)},applySelectorScopeList:function(a,b){for(var c,d=[],e=0;c=b[e];e++)d.push(this.applySimpleSelectorScope(a,c));return d.join(", ")},applySimpleSelectorScope:function(a,b){return a.match(B)?(a=a.replace(A,b),a.replace(B,b+" ")):b+" "+a},applyStrictSelectorScope:function(a,b){b=b.replace(/\[is=([^\]]*)\]/g,"$1");var c=[" ",">","+","~"],d=a,e="["+b+"]";return c.forEach(function(a){var b=d.split(a);d=b.map(function(a){var b=a.trim().replace(B,"");return b&&c.indexOf(b)<0&&b.indexOf(e)<0&&(a=b.replace(/([^:]*)(:*)(.*)/,"$1"+e+"$2$3")),a}).join(a)}),d},insertPolyfillHostInCssText:function(a){return a.replace(z,t).replace(y,s)},propertiesFromRule:function(a){var b=a.style.cssText;a.style.content&&!a.style.content.match(/['"]+|attr/)&&(b=b.replace(/content:[^;]*;/g,"content: '"+a.style.content+"';"));var c=a.style;for(var d in c)"initial"===c[d]&&(b+=d+": initial; ");return b},replaceTextInStyles:function(a,b){a&&b&&(a instanceof Array||(a=[a]),Array.prototype.forEach.call(a,function(a){a.textContent=b.call(this,a.textContent)},this))},addCssToDocument:function(a,b){a.match("@import")?i(a,b):h(a)}},l=/\/\*[^*]*\*+([^\/*][^*]*\*+)*\//gim,m=/\/\*\s*@polyfill ([^*]*\*+([^\/*][^*]*\*+)*\/)([^{]*?){/gim,n=/polyfill-next-selector[^}]*content\:[\s]*?['"](.*?)['"][;\s]*}([^{]*?){/gim,o=/\/\*\s@polyfill-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim,p=/(polyfill-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,q=/\/\*\s@polyfill-unscoped-rule([^*]*\*+([^\/*][^*]*\*+)*)\//gim,r=/(polyfill-unscoped-rule)[^}]*(content\:[\s]*['"](.*?)['"])[;\s]*[^}]*}/gim,s="-shadowcsshost",t="-shadowcsscontext",u=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",v=new RegExp("("+s+u,"gim"),w=new RegExp("("+t+u,"gim"),x="([>\\s~+[.,{:][\\s\\S]*)?$",y=/\:host/gim,z=/\:host-context/gim,A=s+"-no-combinator",B=new RegExp(s,"gim"),C=(new RegExp(t,"gim"),[/>>>/g,/::shadow/g,/::content/g,/\/deep\//g,/\/shadow\//g,/\/shadow-deep\//g,/\^\^/g,/\^/g]),D=document.createElement("iframe");D.style.display="none";var E,F=navigator.userAgent.match("Chrome"),G="shim-shadowdom",H="shim-shadowdom-css",I="no-shim";if(window.ShadowDOMPolyfill){h("style { display: none !important; }\n");var J=ShadowDOMPolyfill.wrap(document),K=J.querySelector("head");K.insertBefore(j(),K.childNodes[0]),document.addEventListener("DOMContentLoaded",function(){a.urlResolver;if(window.HTMLImports&&!HTMLImports.useNative){var b="link[rel=stylesheet]["+G+"]",c="style["+G+"]";HTMLImports.importer.documentPreloadSelectors+=","+b,HTMLImports.importer.importsPreloadSelectors+=","+b,HTMLImports.parser.documentSelectors=[HTMLImports.parser.documentSelectors,b,c].join(",");var d=HTMLImports.parser.parseGeneric;HTMLImports.parser.parseGeneric=function(a){if(!a[H]){var b=a.__importElement||a;if(!b.hasAttribute(G))return void d.call(this,a);a.__resource&&(b=a.ownerDocument.createElement("style"),b.textContent=a.__resource),HTMLImports.path.resolveUrlsInStyle(b,a.href),b.textContent=k.shimStyle(b),b.removeAttribute(G,""),b.setAttribute(H,""),b[H]=!0,b.parentNode!==K&&(a.parentNode===K?K.replaceChild(b,a):this.addElementToDocument(b)),b.__importParsed=!0,this.markParsingComplete(a),this.parseNext()}};var e=HTMLImports.parser.hasResource;HTMLImports.parser.hasResource=function(a){return"link"===a.localName&&"stylesheet"===a.rel&&a.hasAttribute(G)?a.__resource:e.call(this,a)}}})}a.ShadowCSS=k}(window.WebComponents)),function(a){window.ShadowDOMPolyfill?(window.wrap=ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(a){return a}}(window.WebComponents),function(a){"use strict";function b(a){return void 0!==m[a]}function c(){h.call(this),this._isInvalid=!0}function d(a){return""==a&&c.call(this),a.toLowerCase()}function e(a){var b=a.charCodeAt(0);return b>32&&127>b&&-1==[34,35,60,62,63,96].indexOf(b)?a:encodeURIComponent(a)}function f(a){var b=a.charCodeAt(0);return b>32&&127>b&&-1==[34,35,60,62,96].indexOf(b)?a:encodeURIComponent(a)}function g(a,g,h){function i(a){t.push(a)}var j=g||"scheme start",k=0,l="",r=!1,s=!1,t=[];a:for(;(a[k-1]!=o||0==k)&&!this._isInvalid;){var u=a[k];switch(j){case"scheme start":if(!u||!p.test(u)){if(g){i("Invalid scheme.");break a}l="",j="no scheme";continue}l+=u.toLowerCase(),j="scheme";break;case"scheme":if(u&&q.test(u))l+=u.toLowerCase();else{if(":"!=u){if(g){if(o==u)break a;i("Code point not allowed in scheme: "+u);break a}l="",k=0,j="no scheme";continue}if(this._scheme=l,l="",g)break a;b(this._scheme)&&(this._isRelative=!0),j="file"==this._scheme?"relative":this._isRelative&&h&&h._scheme==this._scheme?"relative or authority":this._isRelative?"authority first slash":"scheme data"}break;case"scheme data":"?"==u?(this._query="?",j="query"):"#"==u?(this._fragment="#",j="fragment"):o!=u&&" "!=u&&"\n"!=u&&"\r"!=u&&(this._schemeData+=e(u));break;case"no scheme":if(h&&b(h._scheme)){j="relative";continue}i("Missing scheme."),c.call(this);break;case"relative or authority":if("/"!=u||"/"!=a[k+1]){i("Expected /, got: "+u),j="relative";continue}j="authority ignore slashes";break;case"relative":if(this._isRelative=!0,"file"!=this._scheme&&(this._scheme=h._scheme),o==u){this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query=h._query,this._username=h._username,this._password=h._password;break a}if("/"==u||"\\"==u)"\\"==u&&i("\\ is an invalid code point."),j="relative slash";else if("?"==u)this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query="?",this._username=h._username,this._password=h._password,j="query";else{if("#"!=u){var v=a[k+1],w=a[k+2];("file"!=this._scheme||!p.test(u)||":"!=v&&"|"!=v||o!=w&&"/"!=w&&"\\"!=w&&"?"!=w&&"#"!=w)&&(this._host=h._host,this._port=h._port,this._username=h._username,this._password=h._password,this._path=h._path.slice(),this._path.pop()),j="relative path";continue}this._host=h._host,this._port=h._port,this._path=h._path.slice(),this._query=h._query,this._fragment="#",this._username=h._username,this._password=h._password,j="fragment"}break;case"relative slash":if("/"!=u&&"\\"!=u){"file"!=this._scheme&&(this._host=h._host,this._port=h._port,this._username=h._username,this._password=h._password),j="relative path";continue}"\\"==u&&i("\\ is an invalid code point."),j="file"==this._scheme?"file host":"authority ignore slashes";break;case"authority first slash":if("/"!=u){i("Expected '/', got: "+u),j="authority ignore slashes";continue}j="authority second slash";break;case"authority second slash":if(j="authority ignore slashes","/"!=u){i("Expected '/', got: "+u);continue}break;case"authority ignore slashes":if("/"!=u&&"\\"!=u){j="authority";continue}i("Expected authority, got: "+u);break;case"authority":if("@"==u){r&&(i("@ already seen."),l+="%40"),r=!0;for(var x=0;x<l.length;x++){var y=l[x];if("   "!=y&&"\n"!=y&&"\r"!=y)if(":"!=y||null!==this._password){var z=e(y);null!==this._password?this._password+=z:this._username+=z}else this._password="";else i("Invalid whitespace in authority.")}l=""}else{if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u){k-=l.length,l="",j="host";continue}l+=u}break;case"file host":if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u){2!=l.length||!p.test(l[0])||":"!=l[1]&&"|"!=l[1]?0==l.length?j="relative path start":(this._host=d.call(this,l),l="",j="relative path start"):j="relative path";continue}"  "==u||"\n"==u||"\r"==u?i("Invalid whitespace in file host."):l+=u;break;case"host":case"hostname":if(":"!=u||s){if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u){if(this._host=d.call(this,l),l="",j="relative path start",g)break a;continue}"        "!=u&&"\n"!=u&&"\r"!=u?("["==u?s=!0:"]"==u&&(s=!1),l+=u):i("Invalid code point in host/hostname: "+u)}else if(this._host=d.call(this,l),l="",j="port","hostname"==g)break a;break;case"port":if(/[0-9]/.test(u))l+=u;else{if(o==u||"/"==u||"\\"==u||"?"==u||"#"==u||g){if(""!=l){var A=parseInt(l,10);A!=m[this._scheme]&&(this._port=A+""),l=""}if(g)break a;j="relative path start";continue}"        "==u||"\n"==u||"\r"==u?i("Invalid code point in port: "+u):c.call(this)}break;case"relative path start":if("\\"==u&&i("'\\' not allowed in path."),j="relative path","/"!=u&&"\\"!=u)continue;break;case"relative path":if(o!=u&&"/"!=u&&"\\"!=u&&(g||"?"!=u&&"#"!=u))" "!=u&&"\n"!=u&&"\r"!=u&&(l+=e(u));else{"\\"==u&&i("\\ not allowed in relative path.");var B;(B=n[l.toLowerCase()])&&(l=B),".."==l?(this._path.pop(),"/"!=u&&"\\"!=u&&this._path.push("")):"."==l&&"/"!=u&&"\\"!=u?this._path.push(""):"."!=l&&("file"==this._scheme&&0==this._path.length&&2==l.length&&p.test(l[0])&&"|"==l[1]&&(l=l[0]+":"),this._path.push(l)),l="","?"==u?(this._query="?",j="query"):"#"==u&&(this._fragment="#",j="fragment")}break;case"query":g||"#"!=u?o!=u&&" "!=u&&"\n"!=u&&"\r"!=u&&(this._query+=f(u)):(this._fragment="#",j="fragment");break;case"fragment":o!=u&&"      "!=u&&"\n"!=u&&"\r"!=u&&(this._fragment+=u)}k++}}function h(){this._scheme="",this._schemeData="",this._username="",this._password=null,this._host="",this._port="",this._path=[],this._query="",this._fragment="",this._isInvalid=!1,this._isRelative=!1}function i(a,b){void 0===b||b instanceof i||(b=new i(String(b))),this._url=a,h.call(this);var c=a.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g,"");g.call(this,c,null,b)}var j=!1;if(!a.forceJURL)try{var k=new URL("b","http://a");k.pathname="c%20d",j="http://a/c%20d"===k.href}catch(l){}if(!j){var m=Object.create(null);m.ftp=21,m.file=0,m.gopher=70,m.http=80,m.https=443,m.ws=80,m.wss=443;var n=Object.create(null);n["%2e"]=".",n[".%2e"]="..",n["%2e."]="..",n["%2e%2e"]="..";var o=void 0,p=/[a-zA-Z]/,q=/[a-zA-Z0-9\+\-\.]/;i.prototype={toString:function(){return this.href},get href(){if(this._isInvalid)return this._url;var a="";return""==this._username&&null==this._password||(a=this._username+(null!=this._password?":"+this._password:"")+"@"),this.protocol+(this._isRelative?"//"+a+this.host:"")+this.pathname+this._query+this._fragment},set href(a){h.call(this),g.call(this,a)},get protocol(){return this._scheme+":"},set protocol(a){this._isInvalid||g.call(this,a+":","scheme start")},get host(){return this._isInvalid?"":this._port?this._host+":"+this._port:this._host},set host(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"host")},get hostname(){return this._host},set hostname(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"hostname")},get port(){return this._port},set port(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"port")},get pathname(){return this._isInvalid?"":this._isRelative?"/"+this._path.join("/"):this._schemeData},set pathname(a){!this._isInvalid&&this._isRelative&&(this._path=[],g.call(this,a,"relative path start"))},get search(){return this._isInvalid||!this._query||"?"==this._query?"":this._query},set search(a){!this._isInvalid&&this._isRelative&&(this._query="?","?"==a[0]&&(a=a.slice(1)),g.call(this,a,"query"))},get hash(){return this._isInvalid||!this._fragment||"#"==this._fragment?"":this._fragment},set hash(a){this._isInvalid||(this._fragment="#","#"==a[0]&&(a=a.slice(1)),g.call(this,a,"fragment"))},get origin(){var a;if(this._isInvalid||!this._scheme)return"";switch(this._scheme){case"data":case"file":case"javascript":case"mailto":return"null"}return a=this.host,a?this._scheme+"://"+a:""}};var r=a.URL;r&&(i.createObjectURL=function(a){return r.createObjectURL.apply(r,arguments)},i.revokeObjectURL=function(a){r.revokeObjectURL(a)}),a.URL=i}}(self),function(a){function b(a){u.push(a),t||(t=!0,p(d))}function c(a){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill.wrapIfNeeded(a)||a}function d(){t=!1;var a=u;u=[],a.sort(function(a,b){return a.uid_-b.uid_});var b=!1;a.forEach(function(a){var c=a.takeRecords();e(a),c.length&&(a.callback_(c,a),b=!0)}),b&&d()}function e(a){a.nodes_.forEach(function(b){var c=q.get(b);c&&c.forEach(function(b){b.observer===a&&b.removeTransientObservers()})})}function f(a,b){for(var c=a;c;c=c.parentNode){var d=q.get(c);if(d)for(var e=0;e<d.length;e++){var f=d[e],g=f.options;if(c===a||g.subtree){var h=b(g);h&&f.enqueue(h)}}}}function g(a){this.callback_=a,this.nodes_=[],this.records_=[],this.uid_=++v}function h(a,b){this.type=a,this.target=b,this.addedNodes=[],this.removedNodes=[],this.previousSibling=null,this.nextSibling=null,this.attributeName=null,this.attributeNamespace=null,this.oldValue=null}function i(a){var b=new h(a.type,a.target);return b.addedNodes=a.addedNodes.slice(),b.removedNodes=a.removedNodes.slice(),b.previousSibling=a.previousSibling,b.nextSibling=a.nextSibling,b.attributeName=a.attributeName,b.attributeNamespace=a.attributeNamespace,b.oldValue=a.oldValue,b}function j(a,b){return w=new h(a,b)}function k(a){return x?x:(x=i(w),x.oldValue=a,x)}function l(){w=x=void 0}function m(a){return a===x||a===w}function n(a,b){return a===b?a:x&&m(a)?x:null}function o(a,b,c){this.observer=a,this.target=b,this.options=c,this.transientObservedNodes=[]}if(!a.JsMutationObserver){var p,q=new WeakMap;if(/Trident|Edge/.test(navigator.userAgent))p=setTimeout;else if(window.setImmediate)p=window.setImmediate;else{var r=[],s=String(Math.random());window.addEventListener("message",function(a){if(a.data===s){var b=r;r=[],b.forEach(function(a){a()})}}),p=function(a){r.push(a),window.postMessage(s,"*")}}var t=!1,u=[],v=0;g.prototype={observe:function(a,b){if(a=c(a),!b.childList&&!b.attributes&&!b.characterData||b.attributeOldValue&&!b.attributes||b.attributeFilter&&b.attributeFilter.length&&!b.attributes||b.characterDataOldValue&&!b.characterData)throw new SyntaxError;var d=q.get(a);d||q.set(a,d=[]);for(var e,f=0;f<d.length;f++)if(d[f].observer===this){e=d[f],e.removeListeners(),e.options=b;break}e||(e=new o(this,a,b),d.push(e),this.nodes_.push(a)),e.addListeners()},disconnect:function(){this.nodes_.forEach(function(a){for(var b=q.get(a),c=0;c<b.length;c++){var d=b[c];if(d.observer===this){d.removeListeners(),b.splice(c,1);break}}},this),this.records_=[]},takeRecords:function(){var a=this.records_;return this.records_=[],a}};var w,x;o.prototype={enqueue:function(a){var c=this.observer.records_,d=c.length;if(c.length>0){var e=c[d-1],f=n(e,a);if(f)return void(c[d-1]=f)}else b(this.observer);c[d]=a},addListeners:function(){this.addListeners_(this.target)},addListeners_:function(a){var b=this.options;b.attributes&&a.addEventListener("DOMAttrModified",this,!0),b.characterData&&a.addEventListener("DOMCharacterDataModified",this,!0),b.childList&&a.addEventListener("DOMNodeInserted",this,!0),(b.childList||b.subtree)&&a.addEventListener("DOMNodeRemoved",this,!0)},removeListeners:function(){this.removeListeners_(this.target)},removeListeners_:function(a){var b=this.options;b.attributes&&a.removeEventListener("DOMAttrModified",this,!0),b.characterData&&a.removeEventListener("DOMCharacterDataModified",this,!0),b.childList&&a.removeEventListener("DOMNodeInserted",this,!0),(b.childList||b.subtree)&&a.removeEventListener("DOMNodeRemoved",this,!0)},addTransientObserver:function(a){if(a!==this.target){this.addListeners_(a),this.transientObservedNodes.push(a);var b=q.get(a);b||q.set(a,b=[]),b.push(this)}},removeTransientObservers:function(){var a=this.transientObservedNodes;this.transientObservedNodes=[],a.forEach(function(a){this.removeListeners_(a);for(var b=q.get(a),c=0;c<b.length;c++)if(b[c]===this){b.splice(c,1);break}},this)},handleEvent:function(a){switch(a.stopImmediatePropagation(),a.type){case"DOMAttrModified":var b=a.attrName,c=a.relatedNode.namespaceURI,d=a.target,e=new j("attributes",d);e.attributeName=b,e.attributeNamespace=c;var g=a.attrChange===MutationEvent.ADDITION?null:a.prevValue;f(d,function(a){return!a.attributes||a.attributeFilter&&a.attributeFilter.length&&-1===a.attributeFilter.indexOf(b)&&-1===a.attributeFilter.indexOf(c)?void 0:a.attributeOldValue?k(g):e});break;case"DOMCharacterDataModified":var d=a.target,e=j("characterData",d),g=a.prevValue;f(d,function(a){return a.characterData?a.characterDataOldValue?k(g):e:void 0});break;case"DOMNodeRemoved":this.addTransientObserver(a.target);case"DOMNodeInserted":var h,i,m=a.target;"DOMNodeInserted"===a.type?(h=[m],i=[]):(h=[],i=[m]);var n=m.previousSibling,o=m.nextSibling,e=j("childList",a.target.parentNode);e.addedNodes=h,e.removedNodes=i,e.previousSibling=n,e.nextSibling=o,f(a.relatedNode,function(a){return a.childList?e:void 0})}l()}},a.JsMutationObserver=g,a.MutationObserver||(a.MutationObserver=g,g._isPolyfilled=!0)}}(self),function(a){"use strict";if(!window.performance){var b=Date.now();window.performance={now:function(){return Date.now()-b}}}window.requestAnimationFrame||(window.requestAnimationFrame=function(){var a=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame;return a?function(b){return a(function(){b(performance.now())})}:function(a){return window.setTimeout(a,1e3/60)}}()),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(){return window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(a){clearTimeout(a)}}());var c=function(){var a=document.createEvent("Event");return a.initEvent("foo",!0,!0),a.preventDefault(),a.defaultPrevented}();if(!c){var d=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(d.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var e=/Trident/.test(navigator.userAgent);if((!window.CustomEvent||e&&"function"!=typeof window.CustomEvent)&&(window.CustomEvent=function(a,b){b=b||{};var c=document.createEvent("CustomEvent");return c.initCustomEvent(a,Boolean(b.bubbles),Boolean(b.cancelable),b.detail),c},window.CustomEvent.prototype=window.Event.prototype),!window.Event||e&&"function"!=typeof window.Event){var f=window.Event;window.Event=function(a,b){b=b||{};var c=document.createEvent("Event");return c.initEvent(a,Boolean(b.bubbles),Boolean(b.cancelable)),c},window.Event.prototype=f.prototype}}(window.WebComponents),window.HTMLImports=window.HTMLImports||{flags:{}},function(a){function b(a,b){b=b||o,d(function(){f(a,b)},b)}function c(a){return"complete"===a.readyState||a.readyState===r}function d(a,b){if(c(b))a&&a();else{var e=function(){"complete"!==b.readyState&&b.readyState!==r||(b.removeEventListener(s,e),d(a,b))};b.addEventListener(s,e)}}function e(a){a.target.__loaded=!0}function f(a,b){function c(){i==j&&a&&a({allImports:h,loadedImports:k,errorImports:l})}function d(a){e(a),k.push(this),i++,c()}function f(a){l.push(this),i++,c()}var h=b.querySelectorAll("link[rel=import]"),i=0,j=h.length,k=[],l=[];if(j)for(var m,n=0;j>n&&(m=h[n]);n++)g(m)?(k.push(this),i++,c()):(m.addEventListener("load",d),m.addEventListener("error",f));else c()}function g(a){return l?a.__loaded||a["import"]&&"loading"!==a["import"].readyState:a.__importParsed}function h(a){for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)i(b)&&j(b)}function i(a){return"link"===a.localName&&"import"===a.rel}function j(a){var b=a["import"];b?e({target:a}):(a.addEventListener("load",e),a.addEventListener("error",e))}var k="import",l=Boolean(k in document.createElement("link")),m=Boolean(window.ShadowDOMPolyfill),n=function(a){return m?window.ShadowDOMPolyfill.wrapIfNeeded(a):a},o=n(document),p={get:function(){var a=window.HTMLImports.currentScript||document.currentScript||("complete"!==document.readyState?document.scripts[document.scripts.length-1]:null);return n(a)},configurable:!0};Object.defineProperty(document,"_currentScript",p),Object.defineProperty(o,"_currentScript",p);var q=/Trident/.test(navigator.userAgent),r=q?"complete":"interactive",s="readystatechange";l&&(new MutationObserver(function(a){for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)b.addedNodes&&h(b.addedNodes)}).observe(document.head,{childList:!0}),function(){if("loading"===document.readyState)for(var a,b=document.querySelectorAll("link[rel=import]"),c=0,d=b.length;d>c&&(a=b[c]);c++)j(a)}()),b(function(a){window.HTMLImports.ready=!0,window.HTMLImports.readyTime=(new Date).getTime();var b=o.createEvent("CustomEvent");b.initCustomEvent("HTMLImportsLoaded",!0,!0,a),o.dispatchEvent(b)}),a.IMPORT_LINK_TYPE=k,a.useNative=l,a.rootDocument=o,a.whenReady=b,a.isIE=q}(window.HTMLImports),function(a){var b=[],c=function(a){b.push(a)},d=function(){b.forEach(function(b){b(a)})};a.addModule=c,a.initializeModules=d}(window.HTMLImports),window.HTMLImports.addModule(function(a){var b=/(url\()([^)]*)(\))/g,c=/(@import[\s]+(?!url\())([^;]*)(;)/g,d={resolveUrlsInStyle:function(a,b){var c=a.ownerDocument,d=c.createElement("a");return a.textContent=this.resolveUrlsInCssText(a.textContent,b,d),a},resolveUrlsInCssText:function(a,d,e){var f=this.replaceUrls(a,e,d,b);return f=this.replaceUrls(f,e,d,c)},replaceUrls:function(a,b,c,d){return a.replace(d,function(a,d,e,f){var g=e.replace(/["']/g,"");return c&&(g=new URL(g,c).href),b.href=g,g=b.href,d+"'"+g+"'"+f})}};a.path=d}),window.HTMLImports.addModule(function(a){var b={async:!0,ok:function(a){return a.status>=200&&a.status<300||304===a.status||0===a.status},load:function(c,d,e){var f=new XMLHttpRequest;return(a.flags.debug||a.flags.bust)&&(c+="?"+Math.random()),f.open("GET",c,b.async),f.addEventListener("readystatechange",function(a){if(4===f.readyState){var c=null;try{var g=f.getResponseHeader("Location");g&&(c="/"===g.substr(0,1)?location.origin+g:g)}catch(a){console.error(a.message)}d.call(e,!b.ok(f)&&f,f.response||f.responseText,c)}}),f.send(),f},loadDocument:function(a,b,c){this.load(a,b,c).responseType="document"}};a.xhr=b}),window.HTMLImports.addModule(function(a){var b=a.xhr,c=a.flags,d=function(a,b){this.cache={},this.onload=a,this.oncomplete=b,this.inflight=0,this.pending={}};d.prototype={addNodes:function(a){this.inflight+=a.length;for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)this.require(b);this.checkDone()},addNode:function(a){this.inflight++,this.require(a),this.checkDone()},require:function(a){var b=a.src||a.href;a.__nodeUrl=b,this.dedupe(b,a)||this.fetch(b,a)},dedupe:function(a,b){if(this.pending[a])return this.pending[a].push(b),!0;return this.cache[a]?(this.onload(a,b,this.cache[a]),this.tail(),!0):(this.pending[a]=[b],!1)},fetch:function(a,d){if(c.load&&console.log("fetch",a,d),a)if(a.match(/^data:/)){var e=a.split(","),f=e[0],g=e[1];g=f.indexOf(";base64")>-1?atob(g):decodeURIComponent(g),setTimeout(function(){this.receive(a,d,null,g)}.bind(this),0)}else{var h=function(b,c,e){this.receive(a,d,b,c,e)}.bind(this);b.load(a,h)}else setTimeout(function(){this.receive(a,d,{error:"href must be specified"},null)}.bind(this),0)},receive:function(a,b,c,d,e){this.cache[a]=d;for(var f,g=this.pending[a],h=0,i=g.length;i>h&&(f=g[h]);h++)this.onload(a,f,d,c,e),this.tail();this.pending[a]=null},tail:function(){--this.inflight,this.checkDone()},checkDone:function(){this.inflight||this.oncomplete()}},a.Loader=d}),window.HTMLImports.addModule(function(a){var b=function(a){this.addCallback=a,this.mo=new MutationObserver(this.handler.bind(this))};b.prototype={handler:function(a){for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)"childList"===b.type&&b.addedNodes.length&&this.addedNodes(b.addedNodes)},addedNodes:function(a){this.addCallback&&this.addCallback(a);for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)b.children&&b.children.length&&this.addedNodes(b.children)},observe:function(a){this.mo.observe(a,{childList:!0,subtree:!0})}},a.Observer=b}),window.HTMLImports.addModule(function(a){function b(a){return"link"===a.localName&&a.rel===k}function c(a){var b=d(a);return"data:text/javascript;charset=utf-8,"+encodeURIComponent(b)}function d(a){return a.textContent+e(a)}function e(a){var b=a.ownerDocument;b.__importedScripts=b.__importedScripts||0;var c=a.ownerDocument.baseURI,d=b.__importedScripts?"-"+b.__importedScripts:"";return b.__importedScripts++,"\n//# sourceURL="+c+d+".js\n"}function f(a){var b=a.ownerDocument.createElement("style");return b.textContent=a.textContent,g.resolveUrlsInStyle(b),b}var g=a.path,h=a.rootDocument,i=a.flags,j=a.isIE,k=a.IMPORT_LINK_TYPE,l="link[rel="+k+"]",m={documentSelectors:l,importsSelectors:[l,"link[rel=stylesheet]:not([type])","style:not([type])","script:not([type])",'script[type="application/javascript"]','script[type="text/javascript"]'].join(","),map:{link:"parseLink",script:"parseScript",style:"parseStyle"},dynamicElements:[],parseNext:function(){var a=this.nextToParse();a&&this.parse(a)},parse:function(a){if(this.isParsed(a))return void(i.parse&&console.log("[%s] is already parsed",a.localName));var b=this[this.map[a.localName]];b&&(this.markParsing(a),b.call(this,a))},parseDynamic:function(a,b){this.dynamicElements.push(a),b||this.parseNext()},markParsing:function(a){i.parse&&console.log("parsing",a),this.parsingElement=a},markParsingComplete:function(a){a.__importParsed=!0,this.markDynamicParsingComplete(a),a.__importElement&&(a.__importElement.__importParsed=!0,this.markDynamicParsingComplete(a.__importElement)),this.parsingElement=null,i.parse&&console.log("completed",a)},markDynamicParsingComplete:function(a){var b=this.dynamicElements.indexOf(a);b>=0&&this.dynamicElements.splice(b,1)},parseImport:function(a){if(a["import"]=a.__doc,window.HTMLImports.__importsParsingHook&&window.HTMLImports.__importsParsingHook(a),a["import"]&&(a["import"].__importParsed=!0),this.markParsingComplete(a),a.__resource&&!a.__error?a.dispatchEvent(new CustomEvent("load",{bubbles:!1})):a.dispatchEvent(new CustomEvent("error",{bubbles:!1})),a.__pending)for(var b;a.__pending.length;)b=a.__pending.shift(),b&&b({target:a});this.parseNext()},parseLink:function(a){b(a)?this.parseImport(a):(a.href=a.href,this.parseGeneric(a))},parseStyle:function(a){var b=a;a=f(a),b.__appliedElement=a,a.__importElement=b,this.parseGeneric(a)},parseGeneric:function(a){this.trackElement(a),this.addElementToDocument(a)},rootImportForElement:function(a){for(var b=a;b.ownerDocument.__importLink;)b=b.ownerDocument.__importLink;return b},addElementToDocument:function(a){var b=this.rootImportForElement(a.__importElement||a);b.parentNode.insertBefore(a,b)},trackElement:function(a,b){var c=this,d=function(e){a.removeEventListener("load",d),a.removeEventListener("error",d),b&&b(e),c.markParsingComplete(a),c.parseNext()};if(a.addEventListener("load",d),a.addEventListener("error",d),j&&"style"===a.localName){var e=!1;if(-1==a.textContent.indexOf("@import"))e=!0;else if(a.sheet){e=!0;for(var f,g=a.sheet.cssRules,h=g?g.length:0,i=0;h>i&&(f=g[i]);i++)f.type===CSSRule.IMPORT_RULE&&(e=e&&Boolean(f.styleSheet))}e&&setTimeout(function(){a.dispatchEvent(new CustomEvent("load",{bubbles:!1}))})}},parseScript:function(b){var d=document.createElement("script");d.__importElement=b,d.src=b.src?b.src:c(b),a.currentScript=b,this.trackElement(d,function(b){d.parentNode&&d.parentNode.removeChild(d),a.currentScript=null}),this.addElementToDocument(d)},nextToParse:function(){return this._mayParse=[],!this.parsingElement&&(this.nextToParseInDoc(h)||this.nextToParseDynamic())},nextToParseInDoc:function(a,c){if(a&&this._mayParse.indexOf(a)<0){this._mayParse.push(a);for(var d,e=a.querySelectorAll(this.parseSelectorsForNode(a)),f=0,g=e.length;g>f&&(d=e[f]);f++)if(!this.isParsed(d))return this.hasResource(d)?b(d)?this.nextToParseInDoc(d.__doc,d):d:void 0}return c},nextToParseDynamic:function(){return this.dynamicElements[0]},parseSelectorsForNode:function(a){var b=a.ownerDocument||a;return b===h?this.documentSelectors:this.importsSelectors},isParsed:function(a){return a.__importParsed},needsDynamicParsing:function(a){return this.dynamicElements.indexOf(a)>=0},hasResource:function(a){return!b(a)||void 0!==a.__doc}};a.parser=m,a.IMPORT_SELECTOR=l}),window.HTMLImports.addModule(function(a){function b(a){return c(a,g)}function c(a,b){return"link"===a.localName&&a.getAttribute("rel")===b}function d(a){return!!Object.getOwnPropertyDescriptor(a,"baseURI")}function e(a,b){var c=document.implementation.createHTMLDocument(g);c._URL=b;var e=c.createElement("base");e.setAttribute("href",b),c.baseURI||d(c)||Object.defineProperty(c,"baseURI",{value:b});var f=c.createElement("meta");return f.setAttribute("charset","utf-8"),c.head.appendChild(f),c.head.appendChild(e),c.body.innerHTML=a,window.HTMLTemplateElement&&HTMLTemplateElement.bootstrap&&HTMLTemplateElement.bootstrap(c),c}var f=a.flags,g=a.IMPORT_LINK_TYPE,h=a.IMPORT_SELECTOR,i=a.rootDocument,j=a.Loader,k=a.Observer,l=a.parser,m={documents:{},documentPreloadSelectors:h,importsPreloadSelectors:[h].join(","),loadNode:function(a){n.addNode(a)},loadSubtree:function(a){var b=this.marshalNodes(a);n.addNodes(b)},marshalNodes:function(a){return a.querySelectorAll(this.loadSelectorsForNode(a))},loadSelectorsForNode:function(a){var b=a.ownerDocument||a;return b===i?this.documentPreloadSelectors:this.importsPreloadSelectors},loaded:function(a,c,d,g,h){if(f.load&&console.log("loaded",a,c),c.__resource=d,c.__error=g,b(c)){var i=this.documents[a];void 0===i&&(i=g?null:e(d,h||a),i&&(i.__importLink=c,this.bootDocument(i)),this.documents[a]=i),c.__doc=i}l.parseNext()},bootDocument:function(a){this.loadSubtree(a),this.observer.observe(a),l.parseNext()},loadedAll:function(){l.parseNext()}},n=new j(m.loaded.bind(m),m.loadedAll.bind(m));if(m.observer=new k,!document.baseURI){var o={get:function(){var a=document.querySelector("base");return a?a.href:window.location.href},configurable:!0};Object.defineProperty(document,"baseURI",o),Object.defineProperty(i,"baseURI",o)}a.importer=m,a.importLoader=n}),window.HTMLImports.addModule(function(a){var b=a.parser,c=a.importer,d={added:function(a){for(var d,e,f,g,h=0,i=a.length;i>h&&(g=a[h]);h++)d||(d=g.ownerDocument,e=b.isParsed(d)),f=this.shouldLoadNode(g),f&&c.loadNode(g),this.shouldParseNode(g)&&e&&b.parseDynamic(g,f)},shouldLoadNode:function(a){return 1===a.nodeType&&e.call(a,c.loadSelectorsForNode(a))},shouldParseNode:function(a){return 1===a.nodeType&&e.call(a,b.parseSelectorsForNode(a))}};c.observer.addCallback=d.added.bind(d);var e=HTMLElement.prototype.matches||HTMLElement.prototype.matchesSelector||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector;
+}),function(a){function b(){window.HTMLImports.importer.bootDocument(d)}var c=a.initializeModules;a.isIE;if(!a.useNative){c();var d=a.rootDocument;"complete"===document.readyState||"interactive"===document.readyState&&!window.attachEvent?b():document.addEventListener("DOMContentLoaded",b)}}(window.HTMLImports),window.CustomElements=window.CustomElements||{flags:{}},function(a){var b=a.flags,c=[],d=function(a){c.push(a)},e=function(){c.forEach(function(b){b(a)})};a.addModule=d,a.initializeModules=e,a.hasNative=Boolean(document.registerElement),a.isIE=/Trident/.test(navigator.userAgent),a.useNative=!b.register&&a.hasNative&&!window.ShadowDOMPolyfill&&(!window.HTMLImports||window.HTMLImports.useNative)}(window.CustomElements),window.CustomElements.addModule(function(a){function b(a,b){c(a,function(a){return b(a)?!0:void d(a,b)}),d(a,b)}function c(a,b,d){var e=a.firstElementChild;if(!e)for(e=a.firstChild;e&&e.nodeType!==Node.ELEMENT_NODE;)e=e.nextSibling;for(;e;)b(e,d)!==!0&&c(e,b,d),e=e.nextElementSibling;return null}function d(a,c){for(var d=a.shadowRoot;d;)b(d,c),d=d.olderShadowRoot}function e(a,b){f(a,b,[])}function f(a,b,c){if(a=window.wrap(a),!(c.indexOf(a)>=0)){c.push(a);for(var d,e=a.querySelectorAll("link[rel="+g+"]"),h=0,i=e.length;i>h&&(d=e[h]);h++)d["import"]&&f(d["import"],b,c);b(a)}}var g=window.HTMLImports?window.HTMLImports.IMPORT_LINK_TYPE:"none";a.forDocumentTree=e,a.forSubtree=b}),window.CustomElements.addModule(function(a){function b(a,b){return c(a,b)||d(a,b)}function c(b,c){return a.upgrade(b,c)?!0:void(c&&g(b))}function d(a,b){t(a,function(a){return c(a,b)?!0:void 0})}function e(a){x.push(a),w||(w=!0,setTimeout(f))}function f(){w=!1;for(var a,b=x,c=0,d=b.length;d>c&&(a=b[c]);c++)a();x=[]}function g(a){v?e(function(){h(a)}):h(a)}function h(a){a.__upgraded__&&!a.__attached&&(a.__attached=!0,a.attachedCallback&&a.attachedCallback())}function i(a){j(a),t(a,function(a){j(a)})}function j(a){v?e(function(){k(a)}):k(a)}function k(a){a.__upgraded__&&a.__attached&&(a.__attached=!1,a.detachedCallback&&a.detachedCallback())}function l(a){for(var b=a,c=window.wrap(document);b;){if(b==c)return!0;b=b.parentNode||b.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&b.host}}function m(a){if(a.shadowRoot&&!a.shadowRoot.__watched){s.dom&&console.log("watching shadow-root for: ",a.localName);for(var b=a.shadowRoot;b;)p(b),b=b.olderShadowRoot}}function n(a,c){if(s.dom){var d=c[0];if(d&&"childList"===d.type&&d.addedNodes&&d.addedNodes){for(var e=d.addedNodes[0];e&&e!==document&&!e.host;)e=e.parentNode;var f=e&&(e.URL||e._URL||e.host&&e.host.localName)||"";f=f.split("/?").shift().split("/").pop()}console.group("mutations (%d) [%s]",c.length,f||"")}var g=l(a);c.forEach(function(a){"childList"===a.type&&(y(a.addedNodes,function(a){a.localName&&b(a,g)}),y(a.removedNodes,function(a){a.localName&&i(a)}))}),s.dom&&console.groupEnd()}function o(a){for(a=window.wrap(a),a||(a=window.wrap(document));a.parentNode;)a=a.parentNode;var b=a.__observer;b&&(n(a,b.takeRecords()),f())}function p(a){if(!a.__observer){var b=new MutationObserver(n.bind(this,a));b.observe(a,{childList:!0,subtree:!0}),a.__observer=b}}function q(a){a=window.wrap(a),s.dom&&console.group("upgradeDocument: ",a.baseURI.split("/").pop());var c=a===window.wrap(document);b(a,c),p(a),s.dom&&console.groupEnd()}function r(a){u(a,q)}var s=a.flags,t=a.forSubtree,u=a.forDocumentTree,v=window.MutationObserver._isPolyfilled&&s["throttle-attached"];a.hasPolyfillMutations=v,a.hasThrottledAttached=v;var w=!1,x=[],y=Array.prototype.forEach.call.bind(Array.prototype.forEach),z=Element.prototype.createShadowRoot;z&&(Element.prototype.createShadowRoot=function(){var a=z.call(this);return window.CustomElements.watchShadow(this),a}),a.watchShadow=m,a.upgradeDocumentTree=r,a.upgradeDocument=q,a.upgradeSubtree=d,a.upgradeAll=b,a.attached=g,a.takeRecords=o}),window.CustomElements.addModule(function(a){function b(b,d){if("template"===b.localName&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate&&HTMLTemplateElement.decorate(b),!b.__upgraded__&&b.nodeType===Node.ELEMENT_NODE){var e=b.getAttribute("is"),f=a.getRegisteredDefinition(b.localName)||a.getRegisteredDefinition(e);if(f&&(e&&f.tag==b.localName||!e&&!f["extends"]))return c(b,f,d)}}function c(b,c,e){return g.upgrade&&console.group("upgrade:",b.localName),c.is&&b.setAttribute("is",c.is),d(b,c),b.__upgraded__=!0,f(b),e&&a.attached(b),a.upgradeSubtree(b,e),g.upgrade&&console.groupEnd(),b}function d(a,b){Object.__proto__?a.__proto__=b.prototype:(e(a,b.prototype,b["native"]),a.__proto__=b.prototype)}function e(a,b,c){for(var d={},e=b;e!==c&&e!==HTMLElement.prototype;){for(var f,g=Object.getOwnPropertyNames(e),h=0;f=g[h];h++)d[f]||(Object.defineProperty(a,f,Object.getOwnPropertyDescriptor(e,f)),d[f]=1);e=Object.getPrototypeOf(e)}}function f(a){a.createdCallback&&a.createdCallback()}var g=a.flags;a.upgrade=b,a.upgradeWithDefinition=c,a.implementPrototype=d}),window.CustomElements.addModule(function(a){function b(b,d){var i=d||{};if(!b)throw new Error("document.registerElement: first argument `name` must not be empty");if(b.indexOf("-")<0)throw new Error("document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '"+String(b)+"'.");if(e(b))throw new Error("Failed to execute 'registerElement' on 'Document': Registration failed for type '"+String(b)+"'. The type name is invalid.");if(j(b))throw new Error("DuplicateDefinitionError: a type with name '"+String(b)+"' is already registered");return i.prototype||(i.prototype=Object.create(HTMLElement.prototype)),i.__name=b.toLowerCase(),i.lifecycle=i.lifecycle||{},i.ancestry=f(i["extends"]),g(i),h(i),c(i.prototype),k(i.__name,i),i.ctor=l(i),i.ctor.prototype=i.prototype,i.prototype.constructor=i.ctor,a.ready&&r(document),i.ctor}function c(a){if(!a.setAttribute._polyfilled){var b=a.setAttribute;a.setAttribute=function(a,c){d.call(this,a,c,b)};var c=a.removeAttribute;a.removeAttribute=function(a){d.call(this,a,null,c)},a.setAttribute._polyfilled=!0}}function d(a,b,c){a=a.toLowerCase();var d=this.getAttribute(a);c.apply(this,arguments);var e=this.getAttribute(a);this.attributeChangedCallback&&e!==d&&this.attributeChangedCallback(a,d,e)}function e(a){for(var b=0;b<w.length;b++)if(a===w[b])return!0}function f(a){var b=j(a);return b?f(b["extends"]).concat([b]):[]}function g(a){for(var b,c=a["extends"],d=0;b=a.ancestry[d];d++)c=b.is&&b.tag;a.tag=c||a.__name,c&&(a.is=a.__name)}function h(a){if(!Object.__proto__){var b=HTMLElement.prototype;if(a.is){var c=document.createElement(a.tag);b=Object.getPrototypeOf(c)}for(var d,e=a.prototype,f=!1;e;)e==b&&(f=!0),d=Object.getPrototypeOf(e),d&&(e.__proto__=d),e=d;f||console.warn(a.tag+" prototype not found in prototype chain for "+a.is),a["native"]=b}}function i(a){return t(z(a.tag),a)}function j(a){return a?x[a.toLowerCase()]:void 0}function k(a,b){x[a]=b}function l(a){return function(){return i(a)}}function m(a,b,c){return a===y?n(b,c):A(a,b)}function n(a,b){a&&(a=a.toLowerCase()),b&&(b=b.toLowerCase());var c=j(b||a);if(c){if(a==c.tag&&b==c.is)return new c.ctor;if(!b&&!c.is)return new c.ctor}var d;return b?(d=n(a),d.setAttribute("is",b),d):(d=z(a),a.indexOf("-")>=0&&u(d,HTMLElement),d)}function o(a,b){var c=a[b];a[b]=function(){var a=c.apply(this,arguments);return s(a),a}}var p,q=a.isIE,r=a.upgradeDocumentTree,s=a.upgradeAll,t=a.upgradeWithDefinition,u=a.implementPrototype,v=a.useNative,w=["annotation-xml","color-profile","font-face","font-face-src","font-face-uri","font-face-format","font-face-name","missing-glyph"],x={},y="http://www.w3.org/1999/xhtml",z=document.createElement.bind(document),A=document.createElementNS.bind(document);p=Object.__proto__||v?function(a,b){return a instanceof b}:function(a,b){if(a instanceof b)return!0;for(var c=a;c;){if(c===b.prototype)return!0;c=c.__proto__}return!1},o(Node.prototype,"cloneNode"),o(document,"importNode"),q&&!function(){var a=document.importNode;document.importNode=function(){var b=a.apply(document,arguments);if(b.nodeType==b.DOCUMENT_FRAGMENT_NODE){var c=document.createDocumentFragment();return c.appendChild(b),c}return b}}(),document.registerElement=b,document.createElement=n,document.createElementNS=m,a.registry=x,a["instanceof"]=p,a.reservedTagList=w,a.getRegisteredDefinition=j,document.register=document.registerElement}),function(a){function b(){f(window.wrap(document)),window.CustomElements.ready=!0;var a=window.requestAnimationFrame||function(a){setTimeout(a,16)};a(function(){setTimeout(function(){window.CustomElements.readyTime=Date.now(),window.HTMLImports&&(window.CustomElements.elapsed=window.CustomElements.readyTime-window.HTMLImports.readyTime),document.dispatchEvent(new CustomEvent("WebComponentsReady",{bubbles:!0}))})})}var c=a.useNative,d=a.initializeModules;a.isIE;if(c){var e=function(){};a.watchShadow=e,a.upgrade=e,a.upgradeAll=e,a.upgradeDocumentTree=e,a.upgradeSubtree=e,a.takeRecords=e,a["instanceof"]=function(a,b){return a instanceof b}}else d();var f=a.upgradeDocumentTree,g=a.upgradeDocument;if(window.wrap||(window.ShadowDOMPolyfill?(window.wrap=window.ShadowDOMPolyfill.wrapIfNeeded,window.unwrap=window.ShadowDOMPolyfill.unwrapIfNeeded):window.wrap=window.unwrap=function(a){return a}),window.HTMLImports&&(window.HTMLImports.__importsParsingHook=function(a){a["import"]&&g(wrap(a["import"]))}),"complete"===document.readyState||a.flags.eager)b();else if("interactive"!==document.readyState||window.attachEvent||window.HTMLImports&&!window.HTMLImports.ready){var h=window.HTMLImports&&!window.HTMLImports.ready?"HTMLImportsLoaded":"DOMContentLoaded";window.addEventListener(h,b)}else b()}(window.CustomElements),function(a){Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();return d.push.apply(d,arguments),b.apply(a,d)}})}(window.WebComponents),function(a){var b=document.createElement("style");b.textContent="body {transition: opacity ease-in 0.2s; } \nbody[unresolved] {opacity: 0; display: block; overflow: hidden; position: relative; } \n";var c=document.querySelector("head");c.insertBefore(b,c.firstChild)}(window.WebComponents),function(a){window.Platform=a}(window.WebComponents),angular.module("ngAudio",[]).directive("ngAudio",["$compile","$q","ngAudio",function(a,b,c){return{restrict:"AEC",scope:{volume:"=",start:"=",currentTime:"=",loop:"=",clickPlay:"=",disablePreload:"="},controller:["$scope","$attrs","$element","$timeout",function(a,b,d,e){function f(){g=c.load(b.ngAudio,a),a.$audio=g,g.unbind()}var g;a.disablePreload||f(),d.on("click",function(){a.clickPlay!==!1&&(a.disablePreload&&f(),g.audio.play(),g.volume=a.volume||g.volume,g.loop=a.loop,g.currentTime=a.start||0,e(function(){g.play()},5))}),d.on("$destroy",function(){g.destroy()})}]}}]).directive("ngAudioHover",["$compile","$q","ngAudio",function(a,b,c){return{restrict:"AEC",controller:["$scope","$attrs","$element","$timeout",function(a,b,d,e){var f=c.load(b.ngAudioHover,a);d.on("mouseover rollover hover",function(){f.audio.play(),f.volume=b.volumeHover||f.volume,f.loop=b.loop,f.currentTime=b.startHover||0}),d.on("$destroy",function(){f.destroy()})}]}}]).service("localAudioFindingService",["$q",function(a){this.find=function(b){var c=a.defer(),d=document.getElementById(b);return d?c.resolve(d):c.reject(b),c.promise}}]).service("remoteAudioFindingService",["$q",function(a){this.find=function(b){var c=a.defer(),d=new Audio;return d.addEventListener("error",function(){c.reject()}),d.addEventListener("loadstart",function(){c.resolve(d)}),setTimeout(function(){d.src=b},1),c.promise}}]).service("cleverAudioFindingService",["$q","localAudioFindingService","remoteAudioFindingService",function(a,b,c){this.find=function(d){var e=a.defer();return d=d.replace("|","/"),b.find(d).then(e.resolve,function(){return c.find(d)}).then(e.resolve,e.reject),e.promise}}]).value("ngAudioGlobals",{muting:!1,songmuting:!1,performance:25,unlock:!0}).factory("NgAudioObject",["cleverAudioFindingService","$rootScope","$interval","$timeout","ngAudioGlobals",function(a,b,c,d,e){return function(d,f){function g(){o.play(),o.pause(),window.removeEventListener("click",g)}function h(){w||(A&&c.cancel(A),l&&l(),k&&k(),w=!0)}function i(){w||(k=x.$watch(function(){return{volume:y.volume,currentTime:y.currentTime,progress:y.progress,muting:y.muting,loop:y.loop,playbackRate:y.playbackRate}},function(a,b){a.currentTime!==b.currentTime&&y.setCurrentTime(a.currentTime),a.progress!==b.progress&&y.setProgress(a.progress),a.volume!==b.volume&&y.setVolume(a.volume),a.playbackRate!==b.playbackRate&&y.setPlaybackRate(a.playbackRate),n=a.loop,a.muting!==b.muting&&y.setMuting(a.muting)},!0))}function j(){k&&k(),o&&(u||e.isMuting?o.volume=0:o.volume=void 0!==y.volume?y.volume:1,p&&(o.play(),p=!1),r&&(o.pause(),o.currentTime=0,r=!1),q&&(o.pause(),q=!1),s&&(o.playbackRate=t,s=!1),m&&(o.volume=m,m=void 0),v&&(y.currentTime=o.currentTime,y.duration=o.duration,y.remaining=o.duration-o.currentTime,y.progress=o.currentTime/o.duration,y.paused=o.paused,y.src=o.src,y.currentTime>=y.duration&&z.forEach(function(a){a(y)}),n&&y.currentTime>=y.duration&&(n!==!0&&(n--,y.loop--),y.setCurrentTime(0),y.play())),u||e.isMuting||(y.volume=o.volume),y.audio=o),i()}var k,l,m,n,o,p=!1,q=!1,r=!1,s=!1,t=!1,u=!1,v=!0,w=!1,x=f||b,y=this;this.id=d,this.safeId=d.replace("/","|"),this.loop=0,this.unbind=function(){v=!1},this.play=function(){return p=!0,this};var z=[];this.complete=function(a){z.push(a)},this.pause=function(){q=!0},this.restart=function(){r=!0},this.stop=function(){this.restart()},this.setVolume=function(a){m=a},this.setPlaybackRate=function(a){t=a,s=!0},this.setMuting=function(a){u=a},this.setProgress=function(a){o&&o.duration&&isFinite(a)&&(o.currentTime=o.duration*a)},this.setCurrentTime=function(a){o&&o.duration&&(o.currentTime=a)},this.destroy=h,x.$on("$destroy",function(){h()}),a.find(d).then(function(a){o=a,e.unlock&&(window.addEventListener("click",g),o.addEventListener("playing",function(){window.removeEventListener("click",g)})),o.addEventListener("canplay",function(){y.canPlay=!0})},function(a){y.error=!0,console.warn(a)});var A=c(j,e.performance);l=x.$watch(function(){return e.performance},function(){c.cancel(A),A=c(j,e.performance)})}}]).service("ngAudio",["NgAudioObject","ngAudioGlobals",function(a,b){this.play=function(b,c){var d=new a(b,c);return d.play(),d},this.load=function(b,c){return new a(b,c)},this.mute=function(){b.muting=!0},this.unmute=function(){b.muting=!1},this.toggleMute=function(){b.muting=!b.muting},this.setUnlock=function(a){b.unlock=a}}]).filter("trackTime",function(){return function(a){var b=Math.floor(0|a),c="",d=0,e=0,f=0;return b>3599?(d=Math.floor(b/3600),e=Math.floor((b-3600*d)/60),f=b-(60*e+3600*d),1==d.toString().length&&(d="0"+Math.floor(b/3600).toString()),1==e.toString().length&&(e="0"+Math.floor((b-3600*d)/60).toString()),1==f.toString().length&&(f="0"+(b-(60*e+3600*d)).toString()),c=d+":"+e+":"+f):b>59?(e=Math.floor(b/60),f=b-60*e,1==e.toString().length&&(e="0"+Math.floor(b/60).toString()),1==f.toString().length&&(f="0"+(b-60*e).toString()),c=e+":"+f):(f=b,1==f.toString().length&&(f="0"+b.toString()),c=b+"s"),"function"==typeof Number.isNaN&&Number.isNaN(c),c}}),function(){"use strict";angular.module("ngEmoticons",["ngSanitize"]).filter("emoticons",["$sce",function(a){var b=[{text:":)","class":"smiley",code:"e60a"},{text:":D","class":"happy",code:"e608"},{text:":d","class":"happy",code:"e608"},{text:":(","class":"sad",code:"e60e"},{text:":/","class":"wondering",code:"e620"},{text:":P","class":"tongue",code:"e60c"},{text:":p","class":"tongue",code:"e60c"},{text:"3:)","class":"evil",code:"e618"},{text:"(^)","class":"thumbsup2",code:"e607"},{text:";)","class":"wink",code:"e610"},{text:":o","class":"shocked",code:"e61a"},{text:"-_-","class":"neutral",code:"e61e"},{text:"(y)","class":"thumbs-up",code:"e606"},{text:":*","class":"heart",code:"e604"},{text:"&lt;3","class":"heart",code:"e604"},{text:"<3","class":"heart",code:"e604"},{text:"&lt;/3","class":"heart-broken",code:"e605"},{text:"</3","class":"heart-broken",code:"e605"},{text:"^_^","class":"grin",code:"e612"},{text:"8-)","class":"cool",code:"e614"},{text:"8|","class":"cool",code:"e614"},{text:":S","class":"confused",code:"e61c"},{text:":s","class":"confused",code:"e61c"}],c=["bowtie","smile","laughing","blush","smiley","relaxed","smirk","heart_eyes","kissing_heart","kissing_closed_eyes","flushed","relieved","satisfied","grin","wink","stuck_out_tongue_winking_eye","stuck_out_tongue_closed_eyes","grinning","kissing","winky_face","kissing_smiling_eyes","stuck_out_tongue","sleeping","worried","frowning","anguished","open_mouth","grimacing","confused","hushed","expressionless","unamused","sweat_smile","sweat","wow","disappointed_relieved","weary","pensive","disappointed","confounded","fearful","cold_sweat","persevere","cry","sob","joy","astonished","scream","neckbeard","tired_face","angry","rage","triumph","sleepy","yum","mask","sunglasses","dizzy_face","imp","smiling_imp","neutral_face","no_mouth","innocent","alien","yellow_heart","blue_heart","purple_heart","heart","green_heart","broken_heart","heartbeat","heartpulse","two_hearts","revolving_hearts","cupid","sparkling_heart","sparkles","star","star2","dizzy","boom","collision","anger","exclamation","question","grey_exclamation","grey_question","zzz","dash","sweat_drops","notes","musical_note","fire","hankey","poop","shit","\\+1","thumbsup","-1","thumbsdown","ok_hand","punch","facepunch","fist","v","wave","hand","raised_hand","open_hands","point_up","point_down","point_left","point_right","raised_hands","pray","point_up_2","clap","muscle","metal","fu","walking","runner","running","couple","family","two_men_holding_hands","two_women_holding_hands","dancer","dancers","ok_woman","no_good","information_desk_person","raising_hand","bride_with_veil","person_with_pouting_face","person_frowning","bow","couplekiss","couple_with_heart","massage","haircut","nail_care","boy","girl","woman","man","baby","older_woman","older_man","person_with_blond_hair","man_with_gua_pi_mao","man_with_turban","construction_worker","cop","angel","princess","smiley_cat","smile_cat","heart_eyes_cat","kissing_cat","smirk_cat","scream_cat","crying_cat_face","joy_cat","pouting_cat","japanese_ogre","japanese_goblin","see_no_evil","hear_no_evil","speak_no_evil","guardsman","skull","feet","lips","kiss","droplet","ear","eyes","nose","tongue","love_letter","bust_in_silhouette","busts_in_silhouette","speech_balloon","thought_balloon","feelsgood","finnadie","goberserk","godmode","hurtrealbad","rage1","rage2","rage3","rage4","suspect","trollface","sunny","umbrella","cloud","snowflake","snowman","zap","cyclone","foggy","ocean","cat","dog","mouse","hamster","rabbit","wolf","frog","tiger","koala","bear","pig","pig_nose","cow","boar","monkey_face","monkey","horse","racehorse","camel","sheep","elephant","panda_face","snake","bird","baby_chick","hatched_chick","hatching_chick","chicken","penguin","turtle","bug","honeybee","ant","beetle","snail","octopus","tropical_fish","fish","whale","whale2","dolphin","cow2","ram","rat","water_buffalo","tiger2","rabbit2","dragon","goat","rooster","dog2","pig2","mouse2","ox","dragon_face","blowfish","crocodile","dromedary_camel","leopard","cat2","poodle","paw_prints","bouquet","cherry_blossom","tulip","four_leaf_clover","rose","sunflower","hibiscus","maple_leaf","leaves","fallen_leaf","herb","mushroom","cactus","palm_tree","evergreen_tree","deciduous_tree","chestnut","seedling","blossom","ear_of_rice","shell","globe_with_meridians","sun_with_face","full_moon_with_face","new_moon_with_face","new_moon","waxing_crescent_moon","first_quarter_moon","waxing_gibbous_moon","full_moon","waning_gibbous_moon","last_quarter_moon","waning_crescent_moon","last_quarter_moon_with_face","first_quarter_moon_with_face","moon","earth_africa","earth_americas","earth_asia","volcano","milky_way","partly_sunny","octocat","squirrel","bamboo","gift_heart","dolls","school_satchel","mortar_board","flags","fireworks","sparkler","wind_chime","rice_scene","jack_o_lantern","ghost","santa","christmas_tree","gift","bell","no_bell","tanabata_tree","tada","confetti_ball","balloon","crystal_ball","cd","dvd","floppy_disk","camera","video_camera","movie_camera","computer","tv","iphone","phone","telephone","telephone_receiver","pager","fax","minidisc","vhs","sound","speaker","mute","loudspeaker","mega","hourglass","hourglass_flowing_sand","alarm_clock","watch","radio","satellite","loop","mag","mag_right","unlock","lock","lock_with_ink_pen","closed_lock_with_key","key","bulb","flashlight","high_brightness","low_brightness","electric_plug","battery","calling","email","mailbox","postbox","bath","bathtub","shower","toilet","wrench","nut_and_bolt","hammer","seat","moneybag","yen","dollar","pound","euro","credit_card","money_with_wings","e-mail","inbox_tray","outbox_tray","envelope","incoming_envelope","postal_horn","mailbox_closed","mailbox_with_mail","mailbox_with_no_mail","door","smoking","bomb","gun","hocho","pill","syringe","page_facing_up","page_with_curl","bookmark_tabs","bar_chart","chart_with_upwards_trend","chart_with_downwards_trend","scroll","clipboard","calendar","date","card_index","file_folder","open_file_folder","scissors","pushpin","paperclip","black_nib","pencil2","straight_ruler","triangular_ruler","closed_book","green_book","blue_book","orange_book","notebook","notebook_with_decorative_cover","ledger","books","bookmark","name_badge","microscope","telescope","newspaper","football","basketball","soccer","baseball","tennis","8ball","rugby_football","bowling","golf","mountain_bicyclist","bicyclist","horse_racing","snowboarder","swimmer","surfer","ski","spades","hearts","clubs","diamonds","gem","ring","trophy","musical_score","musical_keyboard","violin","space_invader","video_game","black_joker","flower_playing_cards","game_die","dart","mahjong","clapper","memo","pencil","book","art","microphone","headphones","trumpet","saxophone","guitar","shoe","sandal","high_heel","lipstick","boot","shirt","tshirt","necktie","womans_clothes","dress","running_shirt_with_sash","jeans","kimono","bikini","ribbon","tophat","crown","womans_hat","mans_shoe","closed_umbrella","briefcase","handbag","pouch","purse","eyeglasses","fishing_pole_and_fish","coffee","tea","sake","baby_bottle","beer","beers","cocktail","tropical_drink","wine_glass","fork_and_knife","pizza","hamburger","fries","poultry_leg","meat_on_bone","spaghetti","curry","fried_shrimp","bento","sushi","fish_cake","rice_ball","rice_cracker","rice","ramen","stew","oden","dango","egg","bread","doughnut","custard","icecream","ice_cream","shaved_ice","birthday","cake","cookie","chocolate_bar","candy","lollipop","honey_pot","apple","green_apple","tangerine","lemon","cherries","grapes","watermelon","strawberry","peach","melon","banana","pear","pineapple","sweet_potato","eggplant","tomato","corn","house","house_with_garden","school","office","post_office","hospital","bank","convenience_store","love_hotel","hotel","wedding","church","department_store","european_post_office","city_sunrise","city_sunset","japanese_castle","european_castle","tent","factory","tokyo_tower","japan","mount_fuji","sunrise_over_mountains","sunrise","stars","themoreyouknow","tmyk","statue_of_liberty","bridge_at_night","carousel_horse","rainbow","ferris_wheel","fountain","roller_coaster","ship","speedboat","boat","sailboat","rowboat","anchor","rocket","airplane","helicopter","steam_locomotive","tram","mountain_railway","bike","aerial_tramway","suspension_railway","mountain_cableway","tractor","blue_car","oncoming_automobile","car","red_car","taxi","oncoming_taxi","articulated_lorry","bus","oncoming_bus","rotating_light","police_car","oncoming_police_car","fire_engine","ambulance","minibus","truck","train","station","train2","bullettrain_front","bullettrain_side","light_rail","monorail","railway_car","trolleybus","ticket","fuelpump","vertical_traffic_light","traffic_light","warning","construction","beginner","atm","slot_machine","busstop","barber","hotsprings","checkered_flag","crossed_flags","izakaya_lantern","moyai","circus_tent","performing_arts","round_pushpin","triangular_flag_on_post","jp","kr","cn","us","fr","es","it","ru","gb","uk","de","one","two","three","four","five","six","seven","eight","nine","keycap_ten","1234","zero","hash","symbols","arrow_backward","arrow_down","arrow_forward","arrow_left","capital_abcd","abcd","abc","arrow_lower_left","arrow_lower_right","arrow_right","arrow_up","arrow_upper_left","arrow_upper_right","arrow_double_down","arrow_double_up","arrow_down_small","arrow_heading_down","arrow_heading_up","leftwards_arrow_with_hook","arrow_right_hook","left_right_arrow","arrow_up_down","arrow_up_small","arrows_clockwise","arrows_counterclockwise","rewind","fast_forward","information_source","ok","twisted_rightwards_arrows","repeat","repeat_one","new","top","up","cool","free","ng","cinema","koko","signal_strength","u5272","u5408","u55b6","u6307","u6708","u6709","u6e80","u7121","u7533","u7a7a","u7981","sa","restroom","mens","womens","baby_symbol","no_smoking","parking","wheelchair","metro","baggage_claim","accept","wc","potable_water","put_litter_in_its_place","secret","congratulations","m","passport_control","left_luggage","customs","ideograph_advantage","cl","sos","id","no_entry_sign","underage","no_mobile_phones","do_not_litter","non-potable_water","no_bicycles","no_pedestrians","children_crossing","no_entry","eight_spoked_asterisk","eight_pointed_black_star","heart_decoration","vs","vibration_mode","mobile_phone_off","chart","currency_exchange","aries","taurus","gemini","cancer","leo","virgo","libra","scorpius","sagittarius","capricorn","aquarius","pisces","ophiuchus","six_pointed_star","negative_squared_cross_mark","a","b","ab","o2","diamond_shape_with_a_dot_inside","recycle","end","on","soon","clock1","clock130","clock10","clock1030","clock11","clock1130","clock12","clock1230","clock2","clock230","clock3","clock330","clock4","clock430","clock5","clock530","clock6","clock630","clock7","clock730","clock8","clock830","clock9","clock930","heavy_dollar_sign","copyright","registered","tm","x","heavy_exclamation_mark","bangbang","interrobang","o","heavy_multiplication_x","heavy_plus_sign","heavy_minus_sign","heavy_division_sign","white_flower","100","heavy_check_mark","ballot_box_with_check","radio_button","link","curly_loop","wavy_dash","part_alternation_mark","trident","black_square","white_square","white_check_mark","black_square_button","white_square_button","black_circle","white_circle","red_circle","large_blue_circle","large_blue_diamond","large_orange_diamond","small_blue_diamond","small_orange_diamond","small_red_triangle","small_red_triangle_down","shipit"];return function(d,e){function f(a){return angular.forEach(arguments,function(b){b!==a&&angular.forEach(b,function(b,c){a[c]&&a[c].constructor&&a[c].constructor===Object?f(a[c],b):a[c]=b})}),a}function g(a){var c=a.split(" ");return angular.forEach(b,function(a){for(var b=0;b<c.length;b++)c[b]===a.text&&(c[b]='<i class="icon-emoticon" title="'+a.text+'">&#x'+a.code+"</i>")}),c.join(" ")}function h(a){var b=/((href|src)=["']|)(\b(https?|ftp|file):\/\/[-A-Z0-9+()&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi,c=a.replace(b,function(a){return'<a href="'+a+'" target="'+j.linkTarget+'">'+a+"</a>"});return c}function i(a){var b=new RegExp(":("+c.join("|")+"):","g");return a.replace(b,function(a,b){return"<i class='emoticon emoticon-"+b+"' title=':"+b+":'></i>"})}var j={link:!0,linkTarget:"_self"};return f(j,e),void 0!==d&&null!==d?"object"==typeof d?d:(d=g(d),d=i(d),j.link&&(d=h(d)),a.trustAsHtml(d)):void 0}}]).directive("ngEmoticons",["$filter","$sce","$http","$timeout","$templateCache",function(a,b,c,d,e){var f="",g='<div ng-bind-html="neText" ne-hljs></div><div class="ne-video" ng-if="video.host" class="fade">    <div class="ne-video-preview" ng-hide="nePlayVideo || !(options.video.details)">        <div class="ne-video-thumb" ng-click="nePlayVideo=!nePlayVideo">            <img ng-src="{{video.thumbnail}}" alt=""/>            <i class="fa fa-play-circle-o"></i>        </div>        <div class="ne-video-detail">            <div class="ne-video-title">                <a ng-href="{{video.url}}">{{video.title}}</a>            </div>            <div class="ne-video-desc">                {{video.description}}            </div>            <div class="ne-video-stats">                <span><i class="fa fa-eye"></i> {{video.views}}</span>                <span><i class="fa fa-heart"></i> {{video.likes}}</span>            </div>        </div>    </div>    <div class="ne-video-player" ng-if="nePlayVideo || !(options.video.details)">        <iframe ng-src="{{video.embedSrc}}" frameBorder="0" width="{{video.width}}" height="{{video.height}}" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>    </div></div><div class="ne-video" ng-if="video.basic">    <div class="ne-video-player">        <div class="player">            <video ng-src="{{video.basic}}" controls></video>        </div>    </div></div><div ng-init="neImageLong=false" ng-class="{false:\'ne-image\', true:\'ne-image ne-image-long\'}[neImageLong]"     ng-if="image.url">    <div class="ne-image-wrapper">        <img ng-src="{{image.url}}" ng-click="neImageLong=!neImageLong" alt=""/>    </div></div><div class="ne-pdf" ng-if="pdf.url">    <div class="ne-pdf-preview" ng-hide="neShowPdf">        <div class="ne-pdf-icon">            <i class="fa fa-file-pdf-o"></i>        </div>        <div class="ne-pdf-detail" >            <div class="ne-pdf-title">                <a href="">{{pdf.url}}</a>            </div>            <div class="ne-pdf-view">                <button><i class="fa fa-download"></i> <a ng-href="{{pdf.url}}" target="_blank">Download</a></button>                <button ng-click="neShowPdf=!neShowPdf"><i class="fa fa-eye"></i> View PDF</button>            </div>        </div>    </div>    <div class="ne-pdf-viewer" ng-if="neShowPdf" ng-show="neShowPdf">        <iframe ng-src="{{pdf.url}}" frameBorder="0"></iframe>    </div></div><div class="ne-audio" ng-if="audio.url">    <audio ng-src="{{audio.url}}" controls></audio></div>';return e.put(f,g),{restrict:"AE",scope:!0,templateUrl:function(a,b){return b.emoticonsTemplateUrl||f},link:function(e,f,g){function h(a){return angular.forEach(arguments,function(b){b!==a&&angular.forEach(b,function(b,c){a[c]&&a[c].constructor&&a[c].constructor===Object?h(a[c],b):a[c]=b})}),a}var i=e.$eval(g.emoticonsData),j=e.$eval(g.emoticonsOptions);e.video={},e.image={},e.pdf={},e.audio={};var k={link:!0,linkTarget:"_self",pdf:{embed:!0},image:{embed:!1},audio:{embed:!0},code:{highlight:!0,lineNumbers:!1},basicVideo:!1,video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,thumbnailQuality:"medium",ytAuthKey:null}};h(k,j),String.prototype.trunc=function(a,b){var c=this.length>a,d=c?this.substr(0,a-1):this;return d=b&&c?d.substr(0,d.lastIndexOf(" ")):d,c?d+"...":d};var l={calcDimensions:function(a){var b={width:null,height:null};return b.width=a.video.width,b.height=a.video.height,a.video.height&&a.video.width?b:a.video.height?(b.width=a.video.height/390*640,b):a.video.width?(b.height=b.width/640*390,b):(b.width=640,b.height=390,b)},embed:function(a,d){var f=/https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/ytscreeningroom\?v=|\/feeds\/api\/videos\/|\/user\S*[^\w\-\s]|\S*[^\w\-\s]))([\w\-]{11})[?=&+%\w-]*/gi;if(a.match(f)){var g=this.calcDimensions(d);return e.video.id=RegExp.$1,d.video.details?c.get("https://www.googleapis.com/youtube/v3/videos?id="+RegExp.$1+"&key="+d.video.ytAuthKey+"&part=snippet,statistics").success(function(a){var c=a.items[0];e.video.host="youtube",e.video.title=c.snippet.title,e.video.thumbnail=c.snippet.thumbnails.medium.url,e.video.description=c.snippet.description.trunc(250,!0).replace(/\n/g," ").replace(/&#10;/g," "),e.video.rawDescription=c.snippet.description,e.video.views=c.statistics.viewCount,e.video.likes=c.statistics.likeCount,
+e.video.uploader=c.snippet.channelTitle,e.video.uploaderPage="https://www.youtube.com/channel/"+c.snippet.channelId,e.video.uploadDate=c.snippet.publishedAt,e.video.url=b.trustAsResourceUrl("https://www.youtube.com/watch?v="+c.id),e.video.embedSrc=b.trustAsResourceUrl("https://www.youtube.com/embed/"+e.video.id+"?autoplay=1"),e.video.width=g.width,e.video.height=g.height}):(e.video.width=g.width,e.video.height=g.height,e.video.host="youtube",e.video.embedSrc=b.trustAsResourceUrl("https://www.youtube.com/embed/"+RegExp.$1+"?autoplay=0")),a}var h=/https?:\/\/(?:www\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|)(\d+)(?:$|\/|\?)*/gi;if(a.match(h)){var i=this.calcDimensions(d);e.video.id=RegExp.$3,d.video.details?c.get("https://vimeo.com/api/v2/video/"+RegExp.$3+".json").success(function(a){e.video.host="vimeo",e.video.title=a[0].title,e.video.rawDescription=a[0].description.replace(/\n/g,"<br/>").replace(/&#10;/g,"<br/>"),e.video.description=a[0].description.replace(/((<|&lt;)br\s*\/*(>|&gt;)\r\n)/g," ").trunc(250,!0),e.video.thumbnail=a[0].thumbnail_medium,e.video.views=a[0].stats_number_of_plays,e.video.likes=a[0].stats_number_of_likes,e.video.uploader=a[0].user_name,e.video.uploaderPage=a[0].user_url,e.video.uploadDate=a[0].uploadDate,e.video.url=a[0].url,e.video.embedSrc=b.trustAsResourceUrl("//player.vimeo.com/video/"+a[0].id+"?title=0&byline=0&portrait=0&autoplay=1"),e.video.width=i.width,e.video.height=i.height}):(e.video.width=i.width,e.video.height=i.height,e.video.host="vimeo",e.video.embedSrc=b.trustAsResourceUrl("//player.vimeo.com/video/"+RegExp.$3+"?title=0&byline=0&portrait=0&autoplay=0"))}return a},embedBasic:function(a){var c=/((?:https?):\/\/\S*\.(?:ogv|webm|mp4))/gi;return a.match(c)&&(e.video.basic=b.trustAsResourceUrl(RegExp.$1)),a}},m={embed:function(a){var c=/((?:https?):\/\/\S*\.(?:wav|mp3|ogg))/gi;return a.match(c)&&(e.audio.url=b.trustAsResourceUrl(RegExp.$1)),a}},n={embed:function(a){var b=/((?:https?):\/\/\S*\.(?:gif|jpg|jpeg|tiff|png|svg|webp))/gi;return a.match(b)&&(e.image.url=RegExp.$1),a}},o={encodeCode:function(a){return a=a.replace(/\&/gm,"&amp;"),a=a.replace(/</gm,"&lt;"),a=a.replace(/>/gm,"&gt;")},getCode:function(a){var b=this;return a=a.replace(/(`+)(\s|[a-z]+)\s*([\s\S]*?[^`])\s*\1(?!`)/gm,function(a,c,d,e){var f=e;return f=f.replace(/^([ \t]*)/g,""),f=f.replace(/[ \t]*$/g,""),f=b.encodeCode(f),f=f.replace(/:\/\//g,"~P"),'<pre><code class="ne-code '+d+'">'+f+"</code></pre>"})}},p={embed:function(a){var c=/((?:https?):\/\/\S*\.(?:pdf|PDF))/gi;return a.match(c)&&(e.pdf.url=b.trustAsResourceUrl(RegExp.$1)),a}};if(k.code.highlight){if(!window.hljs)throw"hlsj (Highlight JS is not defined.";i=o.getCode(i),d(function(){hljs.initHighlighting(),k.code.lineNumbers&&angular.element(".ne-code").each(function(){var a=1,b=$(this).text().split("\n").length,c=$("<ul/>").addClass("pre-numbering");for(angular.element(this).addClass("has-numbering").parent().append(c),a;b>=a;a++)c.append(angular.element("<li/>").text(a))})},0)}var q=a("emoticons")(i,k).$$unwrapTrustedValue();if(k.video.embed){if(!k.video.ytAuthKey)throw"Youtube authentication key is required to get data from youtube.";q=l.embed(q,k)}k.basicVideo&&(q=l.embedBasic(q)),k.audio.embed&&(q=m.embed(q)),k.image.embed&&(q=n.embed(q)),k.pdf.embed&&(q=p.embed(q)),e.neText=b.trustAsHtml(q)}}}]).directive("neHljs",["$timeout",function(a){return{restrict:"AE",link:function(b,c){a(function(){c.find(".ne-code").each(function(){hljs.highlightBlock(this)})},0)}}}])}(),function(a){"undefined"!=typeof exports?a(exports):(window.hljs=a({}),"function"==typeof define&&define.amd&&define("hljs",[],function(){return window.hljs}))}(function(a){function b(a){return a.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function c(a){return a.nodeName.toLowerCase()}function d(a,b){var c=a&&a.exec(b);return c&&0==c.index}function e(a){return/^(no-?highlight|plain|text)$/i.test(a)}function f(a){var b,c,d,f=a.className+" ";if(f+=a.parentNode?a.parentNode.className:"",c=/\blang(?:uage)?-([\w-]+)\b/i.exec(f))return u(c[1])?c[1]:"no-highlight";for(f=f.split(/\s+/),b=0,d=f.length;d>b;b++)if(u(f[b])||e(f[b]))return f[b]}function g(a,b){var c,d={};for(c in a)d[c]=a[c];if(b)for(c in b)d[c]=b[c];return d}function h(a){var b=[];return function d(a,e){for(var f=a.firstChild;f;f=f.nextSibling)3==f.nodeType?e+=f.nodeValue.length:1==f.nodeType&&(b.push({event:"start",offset:e,node:f}),e=d(f,e),c(f).match(/br|hr|img|input/)||b.push({event:"stop",offset:e,node:f}));return e}(a,0),b}function i(a,d,e){function f(){return a.length&&d.length?a[0].offset!=d[0].offset?a[0].offset<d[0].offset?a:d:"start"==d[0].event?a:d:a.length?a:d}function g(a){function d(a){return" "+a.nodeName+'="'+b(a.value)+'"'}k+="<"+c(a)+Array.prototype.map.call(a.attributes,d).join("")+">"}function h(a){k+="</"+c(a)+">"}function i(a){("start"==a.event?g:h)(a.node)}for(var j=0,k="",l=[];a.length||d.length;){var m=f();if(k+=b(e.substr(j,m[0].offset-j)),j=m[0].offset,m==a){l.reverse().forEach(h);do i(m.splice(0,1)[0]),m=f();while(m==a&&m.length&&m[0].offset==j);l.reverse().forEach(g)}else"start"==m[0].event?l.push(m[0].node):l.pop(),i(m.splice(0,1)[0])}return k+b(e.substr(j))}function j(a){function b(a){return a&&a.source||a}function c(c,d){return new RegExp(b(c),"m"+(a.case_insensitive?"i":"")+(d?"g":""))}function d(e,f){if(!e.compiled){if(e.compiled=!0,e.keywords=e.keywords||e.beginKeywords,e.keywords){var h={},i=function(b,c){a.case_insensitive&&(c=c.toLowerCase()),c.split(" ").forEach(function(a){var c=a.split("|");h[c[0]]=[b,c[1]?Number(c[1]):1]})};"string"==typeof e.keywords?i("keyword",e.keywords):Object.keys(e.keywords).forEach(function(a){i(a,e.keywords[a])}),e.keywords=h}e.lexemesRe=c(e.lexemes||/\b\w+\b/,!0),f&&(e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")\\b"),e.begin||(e.begin=/\B|\b/),e.beginRe=c(e.begin),e.end||e.endsWithParent||(e.end=/\B|\b/),e.end&&(e.endRe=c(e.end)),e.terminator_end=b(e.end)||"",e.endsWithParent&&f.terminator_end&&(e.terminator_end+=(e.end?"|":"")+f.terminator_end)),e.illegal&&(e.illegalRe=c(e.illegal)),void 0===e.relevance&&(e.relevance=1),e.contains||(e.contains=[]);var j=[];e.contains.forEach(function(a){a.variants?a.variants.forEach(function(b){j.push(g(a,b))}):j.push("self"==a?e:a)}),e.contains=j,e.contains.forEach(function(a){d(a,e)}),e.starts&&d(e.starts,f);var k=e.contains.map(function(a){return a.beginKeywords?"\\.?("+a.begin+")\\.?":a.begin}).concat([e.terminator_end,e.illegal]).map(b).filter(Boolean);e.terminators=k.length?c(k.join("|"),!0):{exec:function(){return null}}}}d(a)}function k(a,c,e,f){function g(a,b){for(var c=0;c<b.contains.length;c++)if(d(b.contains[c].beginRe,a))return b.contains[c]}function h(a,b){if(d(a.endRe,b)){for(;a.endsParent&&a.parent;)a=a.parent;return a}return a.endsWithParent?h(a.parent,b):void 0}function i(a,b){return!e&&d(b.illegalRe,a)}function m(a,b){var c=t.case_insensitive?b[0].toLowerCase():b[0];return a.keywords.hasOwnProperty(c)&&a.keywords[c]}function n(a,b,c,d){var e=d?"":v.classPrefix,f='<span class="'+e,g=c?"":"</span>";return f+=a+'">',f+b+g}function o(){if(!y.keywords)return b(B);var a="",c=0;y.lexemesRe.lastIndex=0;for(var d=y.lexemesRe.exec(B);d;){a+=b(B.substr(c,d.index-c));var e=m(y,d);e?(C+=e[1],a+=n(e[0],b(d[0]))):a+=b(d[0]),c=y.lexemesRe.lastIndex,d=y.lexemesRe.exec(B)}return a+b(B.substr(c))}function p(){var a="string"==typeof y.subLanguage;if(a&&!w[y.subLanguage])return b(B);var c=a?k(y.subLanguage,B,!0,z[y.subLanguage]):l(B,y.subLanguage.length?y.subLanguage:void 0);return y.relevance>0&&(C+=c.relevance),a&&(z[y.subLanguage]=c.top),n(c.language,c.value,!1,!0)}function q(){return void 0!==y.subLanguage?p():o()}function r(a,c){var d=a.className?n(a.className,"",!0):"";a.returnBegin?(A+=d,B=""):a.excludeBegin?(A+=b(c)+d,B=""):(A+=d,B=c),y=Object.create(a,{parent:{value:y}})}function s(a,c){if(B+=a,void 0===c)return A+=q(),0;var d=g(c,y);if(d)return A+=q(),r(d,c),d.returnBegin?0:c.length;var e=h(y,c);if(e){var f=y;f.returnEnd||f.excludeEnd||(B+=c),A+=q();do y.className&&(A+="</span>"),C+=y.relevance,y=y.parent;while(y!=e.parent);return f.excludeEnd&&(A+=b(c)),B="",e.starts&&r(e.starts,""),f.returnEnd?0:c.length}if(i(c,y))throw new Error('Illegal lexeme "'+c+'" for mode "'+(y.className||"<unnamed>")+'"');return B+=c,c.length||1}var t=u(a);if(!t)throw new Error('Unknown language: "'+a+'"');j(t);var x,y=f||t,z={},A="";for(x=y;x!=t;x=x.parent)x.className&&(A=n(x.className,"",!0)+A);var B="",C=0;try{for(var D,E,F=0;;){if(y.terminators.lastIndex=F,D=y.terminators.exec(c),!D)break;E=s(c.substr(F,D.index-F),D[0]),F=D.index+E}for(s(c.substr(F)),x=y;x.parent;x=x.parent)x.className&&(A+="</span>");return{relevance:C,value:A,language:a,top:y}}catch(G){if(-1!=G.message.indexOf("Illegal"))return{relevance:0,value:b(c)};throw G}}function l(a,c){c=c||v.languages||Object.keys(w);var d={relevance:0,value:b(a)},e=d;return c.forEach(function(b){if(u(b)){var c=k(b,a,!1);c.language=b,c.relevance>e.relevance&&(e=c),c.relevance>d.relevance&&(e=d,d=c)}}),e.language&&(d.second_best=e),d}function m(a){return v.tabReplace&&(a=a.replace(/^((<[^>]+>|\t)+)/gm,function(a,b){return b.replace(/\t/g,v.tabReplace)})),v.useBR&&(a=a.replace(/\n/g,"<br>")),a}function n(a,b,c){var d=b?x[b]:c,e=[a.trim()];return a.match(/\bhljs\b/)||e.push("hljs"),-1===a.indexOf(d)&&e.push(d),e.join(" ").trim()}function o(a){var b=f(a);if(!e(b)){var c;v.useBR?(c=document.createElementNS("http://www.w3.org/1999/xhtml","div"),c.innerHTML=a.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):c=a;var d=c.textContent,g=b?k(b,d,!0):l(d),j=h(c);if(j.length){var o=document.createElementNS("http://www.w3.org/1999/xhtml","div");o.innerHTML=g.value,g.value=i(j,h(o),d)}g.value=m(g.value),a.innerHTML=g.value,a.className=n(a.className,b,g.language),a.result={language:g.language,re:g.relevance},g.second_best&&(a.second_best={language:g.second_best.language,re:g.second_best.relevance})}}function p(a){v=g(v,a)}function q(){if(!q.called){q.called=!0;var a=document.querySelectorAll("pre code");Array.prototype.forEach.call(a,o)}}function r(){addEventListener("DOMContentLoaded",q,!1),addEventListener("load",q,!1)}function s(b,c){var d=w[b]=c(a);d.aliases&&d.aliases.forEach(function(a){x[a]=b})}function t(){return Object.keys(w)}function u(a){return a=(a||"").toLowerCase(),w[a]||w[x[a]]}var v={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},w={},x={};return a.highlight=k,a.highlightAuto=l,a.fixMarkup=m,a.highlightBlock=o,a.configure=p,a.initHighlighting=q,a.initHighlightingOnLoad=r,a.registerLanguage=s,a.listLanguages=t,a.getLanguage=u,a.inherit=g,a.IDENT_RE="[a-zA-Z]\\w*",a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.C_NUMBER_RE="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},a.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[a.BACKSLASH_ESCAPE]},a.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[a.BACKSLASH_ESCAPE]},a.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},a.COMMENT=function(b,c,d){var e=a.inherit({className:"comment",begin:b,end:c,contains:[]},d||{});return e.contains.push(a.PHRASAL_WORDS_MODE),e.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),e},a.C_LINE_COMMENT_MODE=a.COMMENT("//","$"),a.C_BLOCK_COMMENT_MODE=a.COMMENT("/\\*","\\*/"),a.HASH_COMMENT_MODE=a.COMMENT("#","$"),a.NUMBER_MODE={className:"number",begin:a.NUMBER_RE,relevance:0},a.C_NUMBER_MODE={className:"number",begin:a.C_NUMBER_RE,relevance:0},a.BINARY_NUMBER_MODE={className:"number",begin:a.BINARY_NUMBER_RE,relevance:0},a.CSS_NUMBER_MODE={className:"number",begin:a.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},a.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[a.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[a.BACKSLASH_ESCAPE]}]},a.TITLE_MODE={className:"title",begin:a.IDENT_RE,relevance:0},a.UNDERSCORE_TITLE_MODE={className:"title",begin:a.UNDERSCORE_IDENT_RE,relevance:0},a.registerLanguage("1c",function(a){var b="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*",c="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт",d="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку  стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон",e={className:"dquote",begin:'""'},f={className:"string",begin:'"',end:'"|$',contains:[e]},g={className:"string",begin:"\\|",end:'"|$',contains:[e]};return{case_insensitive:!0,lexemes:b,keywords:{keyword:c,built_in:d},contains:[a.C_LINE_COMMENT_MODE,a.NUMBER_MODE,f,g,{className:"function",begin:"(процедура|функция)",end:"$",lexemes:b,keywords:"процедура функция",contains:[a.inherit(a.TITLE_MODE,{begin:b}),{className:"tail",endsWithParent:!0,contains:[{className:"params",begin:"\\(",end:"\\)",lexemes:b,keywords:"знач",contains:[f,g]},{className:"export",begin:"экспорт",endsWithParent:!0,lexemes:b,keywords:"экспорт",contains:[a.C_LINE_COMMENT_MODE]}]},a.C_LINE_COMMENT_MODE]},{className:"preprocessor",begin:"#",end:"$"},{className:"date",begin:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}),a.registerLanguage("accesslog",function(a){return{contains:[{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+\\b",relevance:0},{className:"string",begin:'"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)',end:'"',keywords:"GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE",illegal:"\\n",relevance:10},{className:"string",begin:/\[/,end:/\]/,illegal:"\\n"},{className:"string",begin:'"',end:'"',illegal:"\\n"}]}}),a.registerLanguage("actionscript",function(a){var b="[a-zA-Z_$][a-zA-Z0-9_$]*",c="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)",d={className:"rest_arg",begin:"[.]{3}",end:b,relevance:10};return{aliases:["as"],keywords:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.C_NUMBER_MODE,{className:"package",beginKeywords:"package",end:"{",contains:[a.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},a.TITLE_MODE]},{className:"preprocessor",beginKeywords:"import include",end:";"},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,d]},{className:"type",begin:":",end:c,relevance:10}]}],illegal:/#/}}),a.registerLanguage("apache",function(a){var b={className:"number",begin:"[\\$%]\\d+"};return{aliases:["apacheconf"],case_insensitive:!0,contains:[a.HASH_COMMENT_MODE,{className:"tag",begin:"</?",end:">"},{className:"keyword",begin:/\w+/,relevance:0,keywords:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all"},contains:[{className:"sqbracket",begin:"\\s\\[",end:"\\]$"},{className:"cbracket",begin:"[\\$%]\\{",end:"\\}",contains:["self",b]},b,a.QUOTE_STRING_MODE]}}],illegal:/\S/}}),a.registerLanguage("applescript",function(a){var b=a.inherit(a.QUOTE_STRING_MODE,{illegal:""}),c={className:"params",begin:"\\(",end:"\\)",contains:["self",a.C_NUMBER_MODE,b]},d=a.COMMENT("--","$"),e=a.COMMENT("\\(\\*","\\*\\)",{contains:["self",d]}),f=[d,e,a.HASH_COMMENT_MODE];return{aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},contains:[b,a.C_NUMBER_MODE,{className:"type",begin:"\\bPOSIX file\\b"},{className:"command",begin:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{className:"constant",begin:"\\b(text item delimiters|current application|missing value)\\b"},{className:"keyword",begin:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{className:"property",begin:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{className:"function_start",beginKeywords:"on",illegal:"[${=;\\n]",contains:[a.UNDERSCORE_TITLE_MODE,c]}].concat(f),illegal:"//|->|=>|\\[\\["}}),a.registerLanguage("armasm",function(a){return{case_insensitive:!0,aliases:["arm"],lexemes:"\\.?"+a.IDENT_RE,keywords:{literal:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ",preprocessor:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @ "},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?",end:"\\s"},a.COMMENT("[;@]","$",{relevance:0}),a.C_BLOCK_COMMENT_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"label",variants:[{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"[=#]\\w+"}],relevance:0}]}}),a.registerLanguage("xml",function(a){var b="[A-Za-z0-9\\._:-]+",c={begin:/<\?(php)?(?!\w)/,end:/\?>/,subLanguage:"php"},d={endsWithParent:!0,illegal:/</,relevance:0,contains:[c,{className:"attribute",begin:b,relevance:0},{begin:"=",relevance:0,contains:[{className:"value",contains:[c],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/[^\s\/>]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],case_insensitive:!0,contains:[{className:"doctype",begin:"<!DOCTYPE",end:">",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},a.COMMENT("<!--","-->",{relevance:10}),{className:"cdata",begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{className:"tag",begin:"<style(?=\\s|>|$)",end:">",keywords:{title:"style"},contains:[d],starts:{end:"</style>",returnEnd:!0,subLanguage:"css"}},{className:"tag",begin:"<script(?=\\s|>|$)",end:">",keywords:{title:"script"},contains:[d],starts:{end:"</script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars"]}},c,{className:"pi",begin:/<\?\w+/,end:/\?>/,relevance:10},{className:"tag",begin:"</?",end:"/?>",contains:[{className:"title",begin:/[^ \/><\n\t]+/,relevance:0},d]}]}}),a.registerLanguage("asciidoc",function(a){return{aliases:["adoc"],contains:[a.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),a.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"header",begin:"^(={1,5}) .+?( \\1)?$",relevance:10},{className:"header",begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",relevance:10},{className:"attribute",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"attribute",begin:"^\\[.+?\\]$",relevance:0},{className:"blockquote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{className:"bullet",begin:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{className:"label",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{className:"strong",begin:"\\B\\*(?![\\*\\s])",end:"(\\n{2}|\\*)",contains:[{begin:"\\\\*\\w",relevance:0}]},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0},{className:"emphasis",begin:"_(?![_\\s])",end:"(\\n{2}|_)",relevance:0},{className:"smartquote",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},{className:"horizontal_rule",begin:"^'{3,}[ \\t]*$",relevance:10},{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link_url",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"link_label",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}),a.registerLanguage("aspectj",function(a){var b="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else extends implements break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws privileged aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization staticinitialization withincode target within execution getWithinTypeName handler thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents warning error soft precedence thisAspectInstance",c="get set args call";return{keywords:b,illegal:/<\/|#/,contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"aspect",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},a.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:b+" "+c,excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[a.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:b,illegal:/["\[\]]/,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",keywords:b+" "+c},a.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:b,excludeEnd:!0,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:b,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"}]}}),a.registerLanguage("autohotkey",function(a){var b={className:"escape",begin:"`[\\s\\S]"},c=a.COMMENT(";","$",{relevance:0}),d=[{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{className:"built_in",beginKeywords:"ComSpec Clipboard ClipboardAll ErrorLevel"}];return{case_insensitive:!0,keywords:{keyword:"Break Continue Else Gosub If Loop Return While",literal:"A true false NOT AND OR"},contains:d.concat([b,a.inherit(a.QUOTE_STRING_MODE,{contains:[b]}),c,{className:"number",begin:a.NUMBER_RE,relevance:0},{className:"var_expand",begin:"%",end:"%",illegal:"\\n",contains:[b]},{className:"label",contains:[b],variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{begin:",\\s*,",relevance:10}])}}),a.registerLanguage("autoit",function(a){var b="ByRef Case Const ContinueCase ContinueLoop Default Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",c="True False And Null Not Or",d="Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Opt Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown TCPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend UDPShutdown UDPStartup VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive Array1DToHistogram ArrayAdd ArrayBinarySearch ArrayColDelete ArrayColInsert ArrayCombinations ArrayConcatenate ArrayDelete ArrayDisplay ArrayExtract ArrayFindAll ArrayInsert ArrayMax ArrayMaxIndex ArrayMin ArrayMinIndex ArrayPermute ArrayPop ArrayPush ArrayReverse ArraySearch ArrayShuffle ArraySort ArraySwap ArrayToClip ArrayToString ArrayTranspose ArrayTrim ArrayUnique Assert ChooseColor ChooseFont ClipBoard_ChangeChain ClipBoard_Close ClipBoard_CountFormats ClipBoard_Empty ClipBoard_EnumFormats ClipBoard_FormatStr ClipBoard_GetData ClipBoard_GetDataEx ClipBoard_GetFormatName ClipBoard_GetOpenWindow ClipBoard_GetOwner ClipBoard_GetPriorityFormat ClipBoard_GetSequenceNumber ClipBoard_GetViewer ClipBoard_IsFormatAvailable ClipBoard_Open ClipBoard_RegisterFormat ClipBoard_SetData ClipBoard_SetDataEx ClipBoard_SetViewer ClipPutFile ColorConvertHSLtoRGB ColorConvertRGBtoHSL ColorGetBlue ColorGetCOLORREF ColorGetGreen ColorGetRed ColorGetRGB ColorSetCOLORREF ColorSetRGB Crypt_DecryptData Crypt_DecryptFile Crypt_DeriveKey Crypt_DestroyKey Crypt_EncryptData Crypt_EncryptFile Crypt_GenRandom Crypt_HashData Crypt_HashFile Crypt_Shutdown Crypt_Startup DateAdd DateDayOfWeek DateDaysInMonth DateDiff DateIsLeapYear DateIsValid DateTimeFormat DateTimeSplit DateToDayOfWeek DateToDayOfWeekISO DateToDayValue DateToMonth Date_Time_CompareFileTime Date_Time_DOSDateTimeToArray Date_Time_DOSDateTimeToFileTime Date_Time_DOSDateTimeToStr Date_Time_DOSDateToArray Date_Time_DOSDateToStr Date_Time_DOSTimeToArray Date_Time_DOSTimeToStr Date_Time_EncodeFileTime Date_Time_EncodeSystemTime Date_Time_FileTimeToArray Date_Time_FileTimeToDOSDateTime Date_Time_FileTimeToLocalFileTime Date_Time_FileTimeToStr Date_Time_FileTimeToSystemTime Date_Time_GetFileTime Date_Time_GetLocalTime Date_Time_GetSystemTime Date_Time_GetSystemTimeAdjustment Date_Time_GetSystemTimeAsFileTime Date_Time_GetSystemTimes Date_Time_GetTickCount Date_Time_GetTimeZoneInformation Date_Time_LocalFileTimeToFileTime Date_Time_SetFileTime Date_Time_SetLocalTime Date_Time_SetSystemTime Date_Time_SetSystemTimeAdjustment Date_Time_SetTimeZoneInformation Date_Time_SystemTimeToArray Date_Time_SystemTimeToDateStr Date_Time_SystemTimeToDateTimeStr Date_Time_SystemTimeToFileTime Date_Time_SystemTimeToTimeStr Date_Time_SystemTimeToTzSpecificLocalTime Date_Time_TzSpecificLocalTimeToSystemTime DayValueToDate DebugBugReportEnv DebugCOMError DebugOut DebugReport DebugReportEx DebugReportVar DebugSetup Degree EventLog__Backup EventLog__Clear EventLog__Close EventLog__Count EventLog__DeregisterSource EventLog__Full EventLog__Notify EventLog__Oldest EventLog__Open EventLog__OpenBackup EventLog__Read EventLog__RegisterSource EventLog__Report Excel_BookAttach Excel_BookClose Excel_BookList Excel_BookNew Excel_BookOpen Excel_BookOpenText Excel_BookSave Excel_BookSaveAs Excel_Close Excel_ColumnToLetter Excel_ColumnToNumber Excel_ConvertFormula Excel_Export Excel_FilterGet Excel_FilterSet Excel_Open Excel_PictureAdd Excel_Print Excel_RangeCopyPaste Excel_RangeDelete Excel_RangeFind Excel_RangeInsert Excel_RangeLinkAddRemove Excel_RangeRead Excel_RangeReplace Excel_RangeSort Excel_RangeValidate Excel_RangeWrite Excel_SheetAdd Excel_SheetCopyMove Excel_SheetDelete Excel_SheetList FileCountLines FileCreate FileListToArray FileListToArrayRec FilePrint FileReadToArray FileWriteFromArray FileWriteLog FileWriteToLine FTP_Close FTP_Command FTP_Connect FTP_DecodeInternetStatus FTP_DirCreate FTP_DirDelete FTP_DirGetCurrent FTP_DirPutContents FTP_DirSetCurrent FTP_FileClose FTP_FileDelete FTP_FileGet FTP_FileGetSize FTP_FileOpen FTP_FilePut FTP_FileRead FTP_FileRename FTP_FileTimeLoHiToStr FTP_FindFileClose FTP_FindFileFirst FTP_FindFileNext FTP_GetLastResponseInfo FTP_ListToArray FTP_ListToArray2D FTP_ListToArrayEx FTP_Open FTP_ProgressDownload FTP_ProgressUpload FTP_SetStatusCallback GDIPlus_ArrowCapCreate GDIPlus_ArrowCapDispose GDIPlus_ArrowCapGetFillState GDIPlus_ArrowCapGetHeight GDIPlus_ArrowCapGetMiddleInset GDIPlus_ArrowCapGetWidth GDIPlus_ArrowCapSetFillState GDIPlus_ArrowCapSetHeight GDIPlus_ArrowCapSetMiddleInset GDIPlus_ArrowCapSetWidth GDIPlus_BitmapApplyEffect GDIPlus_BitmapApplyEffectEx GDIPlus_BitmapCloneArea GDIPlus_BitmapConvertFormat GDIPlus_BitmapCreateApplyEffect GDIPlus_BitmapCreateApplyEffectEx GDIPlus_BitmapCreateDIBFromBitmap GDIPlus_BitmapCreateFromFile GDIPlus_BitmapCreateFromGraphics GDIPlus_BitmapCreateFromHBITMAP GDIPlus_BitmapCreateFromHICON GDIPlus_BitmapCreateFromHICON32 GDIPlus_BitmapCreateFromMemory GDIPlus_BitmapCreateFromResource GDIPlus_BitmapCreateFromScan0 GDIPlus_BitmapCreateFromStream GDIPlus_BitmapCreateHBITMAPFromBitmap GDIPlus_BitmapDispose GDIPlus_BitmapGetHistogram GDIPlus_BitmapGetHistogramEx GDIPlus_BitmapGetHistogramSize GDIPlus_BitmapGetPixel GDIPlus_BitmapLockBits GDIPlus_BitmapSetPixel GDIPlus_BitmapUnlockBits GDIPlus_BrushClone GDIPlus_BrushCreateSolid GDIPlus_BrushDispose GDIPlus_BrushGetSolidColor GDIPlus_BrushGetType GDIPlus_BrushSetSolidColor GDIPlus_ColorMatrixCreate GDIPlus_ColorMatrixCreateGrayScale GDIPlus_ColorMatrixCreateNegative GDIPlus_ColorMatrixCreateSaturation GDIPlus_ColorMatrixCreateScale GDIPlus_ColorMatrixCreateTranslate GDIPlus_CustomLineCapClone GDIPlus_CustomLineCapCreate GDIPlus_CustomLineCapDispose GDIPlus_CustomLineCapGetStrokeCaps GDIPlus_CustomLineCapSetStrokeCaps GDIPlus_Decoders GDIPlus_DecodersGetCount GDIPlus_DecodersGetSize GDIPlus_DrawImageFX GDIPlus_DrawImageFXEx GDIPlus_DrawImagePoints GDIPlus_EffectCreate GDIPlus_EffectCreateBlur GDIPlus_EffectCreateBrightnessContrast GDIPlus_EffectCreateColorBalance GDIPlus_EffectCreateColorCurve GDIPlus_EffectCreateColorLUT GDIPlus_EffectCreateColorMatrix GDIPlus_EffectCreateHueSaturationLightness GDIPlus_EffectCreateLevels GDIPlus_EffectCreateRedEyeCorrection GDIPlus_EffectCreateSharpen GDIPlus_EffectCreateTint GDIPlus_EffectDispose GDIPlus_EffectGetParameters GDIPlus_EffectSetParameters GDIPlus_Encoders GDIPlus_EncodersGetCLSID GDIPlus_EncodersGetCount GDIPlus_EncodersGetParamList GDIPlus_EncodersGetParamListSize GDIPlus_EncodersGetSize GDIPlus_FontCreate GDIPlus_FontDispose GDIPlus_FontFamilyCreate GDIPlus_FontFamilyCreateFromCollection GDIPlus_FontFamilyDispose GDIPlus_FontFamilyGetCellAscent GDIPlus_FontFamilyGetCellDescent GDIPlus_FontFamilyGetEmHeight GDIPlus_FontFamilyGetLineSpacing GDIPlus_FontGetHeight GDIPlus_FontPrivateAddFont GDIPlus_FontPrivateAddMemoryFont GDIPlus_FontPrivateCollectionDispose GDIPlus_FontPrivateCreateCollection GDIPlus_GraphicsClear GDIPlus_GraphicsCreateFromHDC GDIPlus_GraphicsCreateFromHWND GDIPlus_GraphicsDispose GDIPlus_GraphicsDrawArc GDIPlus_GraphicsDrawBezier GDIPlus_GraphicsDrawClosedCurve GDIPlus_GraphicsDrawClosedCurve2 GDIPlus_GraphicsDrawCurve GDIPlus_GraphicsDrawCurve2 GDIPlus_GraphicsDrawEllipse GDIPlus_GraphicsDrawImage GDIPlus_GraphicsDrawImagePointsRect GDIPlus_GraphicsDrawImageRect GDIPlus_GraphicsDrawImageRectRect GDIPlus_GraphicsDrawLine GDIPlus_GraphicsDrawPath GDIPlus_GraphicsDrawPie GDIPlus_GraphicsDrawPolygon GDIPlus_GraphicsDrawRect GDIPlus_GraphicsDrawString GDIPlus_GraphicsDrawStringEx GDIPlus_GraphicsFillClosedCurve GDIPlus_GraphicsFillClosedCurve2 GDIPlus_GraphicsFillEllipse GDIPlus_GraphicsFillPath GDIPlus_GraphicsFillPie GDIPlus_GraphicsFillPolygon GDIPlus_GraphicsFillRect GDIPlus_GraphicsFillRegion GDIPlus_GraphicsGetCompositingMode GDIPlus_GraphicsGetCompositingQuality GDIPlus_GraphicsGetDC GDIPlus_GraphicsGetInterpolationMode GDIPlus_GraphicsGetSmoothingMode GDIPlus_GraphicsGetTransform GDIPlus_GraphicsMeasureCharacterRanges GDIPlus_GraphicsMeasureString GDIPlus_GraphicsReleaseDC GDIPlus_GraphicsResetClip GDIPlus_GraphicsResetTransform GDIPlus_GraphicsRestore GDIPlus_GraphicsRotateTransform GDIPlus_GraphicsSave GDIPlus_GraphicsScaleTransform GDIPlus_GraphicsSetClipPath GDIPlus_GraphicsSetClipRect GDIPlus_GraphicsSetClipRegion GDIPlus_GraphicsSetCompositingMode GDIPlus_GraphicsSetCompositingQuality GDIPlus_GraphicsSetInterpolationMode GDIPlus_GraphicsSetPixelOffsetMode GDIPlus_GraphicsSetSmoothingMode GDIPlus_GraphicsSetTextRenderingHint GDIPlus_GraphicsSetTransform GDIPlus_GraphicsTransformPoints GDIPlus_GraphicsTranslateTransform GDIPlus_HatchBrushCreate GDIPlus_HICONCreateFromBitmap GDIPlus_ImageAttributesCreate GDIPlus_ImageAttributesDispose GDIPlus_ImageAttributesSetColorKeys GDIPlus_ImageAttributesSetColorMatrix GDIPlus_ImageDispose GDIPlus_ImageGetDimension GDIPlus_ImageGetFlags GDIPlus_ImageGetGraphicsContext GDIPlus_ImageGetHeight GDIPlus_ImageGetHorizontalResolution GDIPlus_ImageGetPixelFormat GDIPlus_ImageGetRawFormat GDIPlus_ImageGetThumbnail GDIPlus_ImageGetType GDIPlus_ImageGetVerticalResolution GDIPlus_ImageGetWidth GDIPlus_ImageLoadFromFile GDIPlus_ImageLoadFromStream GDIPlus_ImageResize GDIPlus_ImageRotateFlip GDIPlus_ImageSaveToFile GDIPlus_ImageSaveToFileEx GDIPlus_ImageSaveToStream GDIPlus_ImageScale GDIPlus_LineBrushCreate GDIPlus_LineBrushCreateFromRect GDIPlus_LineBrushCreateFromRectWithAngle GDIPlus_LineBrushGetColors GDIPlus_LineBrushGetRect GDIPlus_LineBrushMultiplyTransform GDIPlus_LineBrushResetTransform GDIPlus_LineBrushSetBlend GDIPlus_LineBrushSetColors GDIPlus_LineBrushSetGammaCorrection GDIPlus_LineBrushSetLinearBlend GDIPlus_LineBrushSetPresetBlend GDIPlus_LineBrushSetSigmaBlend GDIPlus_LineBrushSetTransform GDIPlus_MatrixClone GDIPlus_MatrixCreate GDIPlus_MatrixDispose GDIPlus_MatrixGetElements GDIPlus_MatrixInvert GDIPlus_MatrixMultiply GDIPlus_MatrixRotate GDIPlus_MatrixScale GDIPlus_MatrixSetElements GDIPlus_MatrixShear GDIPlus_MatrixTransformPoints GDIPlus_MatrixTranslate GDIPlus_PaletteInitialize GDIPlus_ParamAdd GDIPlus_ParamInit GDIPlus_ParamSize GDIPlus_PathAddArc GDIPlus_PathAddBezier GDIPlus_PathAddClosedCurve GDIPlus_PathAddClosedCurve2 GDIPlus_PathAddCurve GDIPlus_PathAddCurve2 GDIPlus_PathAddCurve3 GDIPlus_PathAddEllipse GDIPlus_PathAddLine GDIPlus_PathAddLine2 GDIPlus_PathAddPath GDIPlus_PathAddPie GDIPlus_PathAddPolygon GDIPlus_PathAddRectangle GDIPlus_PathAddString GDIPlus_PathBrushCreate GDIPlus_PathBrushCreateFromPath GDIPlus_PathBrushGetCenterPoint GDIPlus_PathBrushGetFocusScales GDIPlus_PathBrushGetPointCount GDIPlus_PathBrushGetRect GDIPlus_PathBrushGetWrapMode GDIPlus_PathBrushMultiplyTransform GDIPlus_PathBrushResetTransform GDIPlus_PathBrushSetBlend GDIPlus_PathBrushSetCenterColor GDIPlus_PathBrushSetCenterPoint GDIPlus_PathBrushSetFocusScales GDIPlus_PathBrushSetGammaCorrection GDIPlus_PathBrushSetLinearBlend GDIPlus_PathBrushSetPresetBlend GDIPlus_PathBrushSetSigmaBlend GDIPlus_PathBrushSetSurroundColor GDIPlus_PathBrushSetSurroundColorsWithCount GDIPlus_PathBrushSetTransform GDIPlus_PathBrushSetWrapMode GDIPlus_PathClone GDIPlus_PathCloseFigure GDIPlus_PathCreate GDIPlus_PathCreate2 GDIPlus_PathDispose GDIPlus_PathFlatten GDIPlus_PathGetData GDIPlus_PathGetFillMode GDIPlus_PathGetLastPoint GDIPlus_PathGetPointCount GDIPlus_PathGetPoints GDIPlus_PathGetWorldBounds GDIPlus_PathIsOutlineVisiblePoint GDIPlus_PathIsVisiblePoint GDIPlus_PathIterCreate GDIPlus_PathIterDispose GDIPlus_PathIterGetSubpathCount GDIPlus_PathIterNextMarkerPath GDIPlus_PathIterNextSubpathPath GDIPlus_PathIterRewind GDIPlus_PathReset GDIPlus_PathReverse GDIPlus_PathSetFillMode GDIPlus_PathSetMarker GDIPlus_PathStartFigure GDIPlus_PathTransform GDIPlus_PathWarp GDIPlus_PathWiden GDIPlus_PathWindingModeOutline GDIPlus_PenCreate GDIPlus_PenCreate2 GDIPlus_PenDispose GDIPlus_PenGetAlignment GDIPlus_PenGetColor GDIPlus_PenGetCustomEndCap GDIPlus_PenGetDashCap GDIPlus_PenGetDashStyle GDIPlus_PenGetEndCap GDIPlus_PenGetMiterLimit GDIPlus_PenGetWidth GDIPlus_PenSetAlignment GDIPlus_PenSetColor GDIPlus_PenSetCustomEndCap GDIPlus_PenSetDashCap GDIPlus_PenSetDashStyle GDIPlus_PenSetEndCap GDIPlus_PenSetLineCap GDIPlus_PenSetLineJoin GDIPlus_PenSetMiterLimit GDIPlus_PenSetStartCap GDIPlus_PenSetWidth GDIPlus_RectFCreate GDIPlus_RegionClone GDIPlus_RegionCombinePath GDIPlus_RegionCombineRect GDIPlus_RegionCombineRegion GDIPlus_RegionCreate GDIPlus_RegionCreateFromPath GDIPlus_RegionCreateFromRect GDIPlus_RegionDispose GDIPlus_RegionGetBounds GDIPlus_RegionGetHRgn GDIPlus_RegionTransform GDIPlus_RegionTranslate GDIPlus_Shutdown GDIPlus_Startup GDIPlus_StringFormatCreate GDIPlus_StringFormatDispose GDIPlus_StringFormatGetMeasurableCharacterRangeCount GDIPlus_StringFormatSetAlign GDIPlus_StringFormatSetLineAlign GDIPlus_StringFormatSetMeasurableCharacterRanges GDIPlus_TextureCreate GDIPlus_TextureCreate2 GDIPlus_TextureCreateIA GetIP GUICtrlAVI_Close GUICtrlAVI_Create GUICtrlAVI_Destroy GUICtrlAVI_IsPlaying GUICtrlAVI_Open GUICtrlAVI_OpenEx GUICtrlAVI_Play GUICtrlAVI_Seek GUICtrlAVI_Show GUICtrlAVI_Stop GUICtrlButton_Click GUICtrlButton_Create GUICtrlButton_Destroy GUICtrlButton_Enable GUICtrlButton_GetCheck GUICtrlButton_GetFocus GUICtrlButton_GetIdealSize GUICtrlButton_GetImage GUICtrlButton_GetImageList GUICtrlButton_GetNote GUICtrlButton_GetNoteLength GUICtrlButton_GetSplitInfo GUICtrlButton_GetState GUICtrlButton_GetText GUICtrlButton_GetTextMargin GUICtrlButton_SetCheck GUICtrlButton_SetDontClick GUICtrlButton_SetFocus GUICtrlButton_SetImage GUICtrlButton_SetImageList GUICtrlButton_SetNote GUICtrlButton_SetShield GUICtrlButton_SetSize GUICtrlButton_SetSplitInfo GUICtrlButton_SetState GUICtrlButton_SetStyle GUICtrlButton_SetText GUICtrlButton_SetTextMargin GUICtrlButton_Show GUICtrlComboBoxEx_AddDir GUICtrlComboBoxEx_AddString GUICtrlComboBoxEx_BeginUpdate GUICtrlComboBoxEx_Create GUICtrlComboBoxEx_CreateSolidBitMap GUICtrlComboBoxEx_DeleteString GUICtrlComboBoxEx_Destroy GUICtrlComboBoxEx_EndUpdate GUICtrlComboBoxEx_FindStringExact GUICtrlComboBoxEx_GetComboBoxInfo GUICtrlComboBoxEx_GetComboControl GUICtrlComboBoxEx_GetCount GUICtrlComboBoxEx_GetCurSel GUICtrlComboBoxEx_GetDroppedControlRect GUICtrlComboBoxEx_GetDroppedControlRectEx GUICtrlComboBoxEx_GetDroppedState GUICtrlComboBoxEx_GetDroppedWidth GUICtrlComboBoxEx_GetEditControl GUICtrlComboBoxEx_GetEditSel GUICtrlComboBoxEx_GetEditText GUICtrlComboBoxEx_GetExtendedStyle GUICtrlComboBoxEx_GetExtendedUI GUICtrlComboBoxEx_GetImageList GUICtrlComboBoxEx_GetItem GUICtrlComboBoxEx_GetItemEx GUICtrlComboBoxEx_GetItemHeight GUICtrlComboBoxEx_GetItemImage GUICtrlComboBoxEx_GetItemIndent GUICtrlComboBoxEx_GetItemOverlayImage GUICtrlComboBoxEx_GetItemParam GUICtrlComboBoxEx_GetItemSelectedImage GUICtrlComboBoxEx_GetItemText GUICtrlComboBoxEx_GetItemTextLen GUICtrlComboBoxEx_GetList GUICtrlComboBoxEx_GetListArray GUICtrlComboBoxEx_GetLocale GUICtrlComboBoxEx_GetLocaleCountry GUICtrlComboBoxEx_GetLocaleLang GUICtrlComboBoxEx_GetLocalePrimLang GUICtrlComboBoxEx_GetLocaleSubLang GUICtrlComboBoxEx_GetMinVisible GUICtrlComboBoxEx_GetTopIndex GUICtrlComboBoxEx_GetUnicode GUICtrlComboBoxEx_InitStorage GUICtrlComboBoxEx_InsertString GUICtrlComboBoxEx_LimitText GUICtrlComboBoxEx_ReplaceEditSel GUICtrlComboBoxEx_ResetContent GUICtrlComboBoxEx_SetCurSel GUICtrlComboBoxEx_SetDroppedWidth GUICtrlComboBoxEx_SetEditSel GUICtrlComboBoxEx_SetEditText GUICtrlComboBoxEx_SetExtendedStyle GUICtrlComboBoxEx_SetExtendedUI GUICtrlComboBoxEx_SetImageList GUICtrlComboBoxEx_SetItem GUICtrlComboBoxEx_SetItemEx GUICtrlComboBoxEx_SetItemHeight GUICtrlComboBoxEx_SetItemImage GUICtrlComboBoxEx_SetItemIndent GUICtrlComboBoxEx_SetItemOverlayImage GUICtrlComboBoxEx_SetItemParam GUICtrlComboBoxEx_SetItemSelectedImage GUICtrlComboBoxEx_SetMinVisible GUICtrlComboBoxEx_SetTopIndex GUICtrlComboBoxEx_SetUnicode GUICtrlComboBoxEx_ShowDropDown GUICtrlComboBox_AddDir GUICtrlComboBox_AddString GUICtrlComboBox_AutoComplete GUICtrlComboBox_BeginUpdate GUICtrlComboBox_Create GUICtrlComboBox_DeleteString GUICtrlComboBox_Destroy GUICtrlComboBox_EndUpdate GUICtrlComboBox_FindString GUICtrlComboBox_FindStringExact GUICtrlComboBox_GetComboBoxInfo GUICtrlComboBox_GetCount GUICtrlComboBox_GetCueBanner GUICtrlComboBox_GetCurSel GUICtrlComboBox_GetDroppedControlRect GUICtrlComboBox_GetDroppedControlRectEx GUICtrlComboBox_GetDroppedState GUICtrlComboBox_GetDroppedWidth GUICtrlComboBox_GetEditSel GUICtrlComboBox_GetEditText GUICtrlComboBox_GetExtendedUI GUICtrlComboBox_GetHorizontalExtent GUICtrlComboBox_GetItemHeight GUICtrlComboBox_GetLBText GUICtrlComboBox_GetLBTextLen GUICtrlComboBox_GetList GUICtrlComboBox_GetListArray GUICtrlComboBox_GetLocale GUICtrlComboBox_GetLocaleCountry GUICtrlComboBox_GetLocaleLang GUICtrlComboBox_GetLocalePrimLang GUICtrlComboBox_GetLocaleSubLang GUICtrlComboBox_GetMinVisible GUICtrlComboBox_GetTopIndex GUICtrlComboBox_InitStorage GUICtrlComboBox_InsertString GUICtrlComboBox_LimitText GUICtrlComboBox_ReplaceEditSel GUICtrlComboBox_ResetContent GUICtrlComboBox_SelectString GUICtrlComboBox_SetCueBanner GUICtrlComboBox_SetCurSel GUICtrlComboBox_SetDroppedWidth GUICtrlComboBox_SetEditSel GUICtrlComboBox_SetEditText GUICtrlComboBox_SetExtendedUI GUICtrlComboBox_SetHorizontalExtent GUICtrlComboBox_SetItemHeight GUICtrlComboBox_SetMinVisible GUICtrlComboBox_SetTopIndex GUICtrlComboBox_ShowDropDown GUICtrlDTP_Create GUICtrlDTP_Destroy GUICtrlDTP_GetMCColor GUICtrlDTP_GetMCFont GUICtrlDTP_GetMonthCal GUICtrlDTP_GetRange GUICtrlDTP_GetRangeEx GUICtrlDTP_GetSystemTime GUICtrlDTP_GetSystemTimeEx GUICtrlDTP_SetFormat GUICtrlDTP_SetMCColor GUICtrlDTP_SetMCFont GUICtrlDTP_SetRange GUICtrlDTP_SetRangeEx GUICtrlDTP_SetSystemTime GUICtrlDTP_SetSystemTimeEx GUICtrlEdit_AppendText GUICtrlEdit_BeginUpdate GUICtrlEdit_CanUndo GUICtrlEdit_CharFromPos GUICtrlEdit_Create GUICtrlEdit_Destroy GUICtrlEdit_EmptyUndoBuffer GUICtrlEdit_EndUpdate GUICtrlEdit_Find GUICtrlEdit_FmtLines GUICtrlEdit_GetCueBanner GUICtrlEdit_GetFirstVisibleLine GUICtrlEdit_GetLimitText GUICtrlEdit_GetLine GUICtrlEdit_GetLineCount GUICtrlEdit_GetMargins GUICtrlEdit_GetModify GUICtrlEdit_GetPasswordChar GUICtrlEdit_GetRECT GUICtrlEdit_GetRECTEx GUICtrlEdit_GetSel GUICtrlEdit_GetText GUICtrlEdit_GetTextLen GUICtrlEdit_HideBalloonTip GUICtrlEdit_InsertText GUICtrlEdit_LineFromChar GUICtrlEdit_LineIndex GUICtrlEdit_LineLength GUICtrlEdit_LineScroll GUICtrlEdit_PosFromChar GUICtrlEdit_ReplaceSel GUICtrlEdit_Scroll GUICtrlEdit_SetCueBanner GUICtrlEdit_SetLimitText GUICtrlEdit_SetMargins GUICtrlEdit_SetModify GUICtrlEdit_SetPasswordChar GUICtrlEdit_SetReadOnly GUICtrlEdit_SetRECT GUICtrlEdit_SetRECTEx GUICtrlEdit_SetRECTNP GUICtrlEdit_SetRectNPEx GUICtrlEdit_SetSel GUICtrlEdit_SetTabStops GUICtrlEdit_SetText GUICtrlEdit_ShowBalloonTip GUICtrlEdit_Undo GUICtrlHeader_AddItem GUICtrlHeader_ClearFilter GUICtrlHeader_ClearFilterAll GUICtrlHeader_Create GUICtrlHeader_CreateDragImage GUICtrlHeader_DeleteItem GUICtrlHeader_Destroy GUICtrlHeader_EditFilter GUICtrlHeader_GetBitmapMargin GUICtrlHeader_GetImageList GUICtrlHeader_GetItem GUICtrlHeader_GetItemAlign GUICtrlHeader_GetItemBitmap GUICtrlHeader_GetItemCount GUICtrlHeader_GetItemDisplay GUICtrlHeader_GetItemFlags GUICtrlHeader_GetItemFormat GUICtrlHeader_GetItemImage GUICtrlHeader_GetItemOrder GUICtrlHeader_GetItemParam GUICtrlHeader_GetItemRect GUICtrlHeader_GetItemRectEx GUICtrlHeader_GetItemText GUICtrlHeader_GetItemWidth GUICtrlHeader_GetOrderArray GUICtrlHeader_GetUnicodeFormat GUICtrlHeader_HitTest GUICtrlHeader_InsertItem GUICtrlHeader_Layout GUICtrlHeader_OrderToIndex GUICtrlHeader_SetBitmapMargin GUICtrlHeader_SetFilterChangeTimeout GUICtrlHeader_SetHotDivider GUICtrlHeader_SetImageList GUICtrlHeader_SetItem GUICtrlHeader_SetItemAlign GUICtrlHeader_SetItemBitmap GUICtrlHeader_SetItemDisplay GUICtrlHeader_SetItemFlags GUICtrlHeader_SetItemFormat GUICtrlHeader_SetItemImage GUICtrlHeader_SetItemOrder GUICtrlHeader_SetItemParam GUICtrlHeader_SetItemText GUICtrlHeader_SetItemWidth GUICtrlHeader_SetOrderArray GUICtrlHeader_SetUnicodeFormat GUICtrlIpAddress_ClearAddress GUICtrlIpAddress_Create GUICtrlIpAddress_Destroy GUICtrlIpAddress_Get GUICtrlIpAddress_GetArray GUICtrlIpAddress_GetEx GUICtrlIpAddress_IsBlank GUICtrlIpAddress_Set GUICtrlIpAddress_SetArray GUICtrlIpAddress_SetEx GUICtrlIpAddress_SetFocus GUICtrlIpAddress_SetFont GUICtrlIpAddress_SetRange GUICtrlIpAddress_ShowHide GUICtrlListBox_AddFile GUICtrlListBox_AddString GUICtrlListBox_BeginUpdate GUICtrlListBox_ClickItem GUICtrlListBox_Create GUICtrlListBox_DeleteString GUICtrlListBox_Destroy GUICtrlListBox_Dir GUICtrlListBox_EndUpdate GUICtrlListBox_FindInText GUICtrlListBox_FindString GUICtrlListBox_GetAnchorIndex GUICtrlListBox_GetCaretIndex GUICtrlListBox_GetCount GUICtrlListBox_GetCurSel GUICtrlListBox_GetHorizontalExtent GUICtrlListBox_GetItemData GUICtrlListBox_GetItemHeight GUICtrlListBox_GetItemRect GUICtrlListBox_GetItemRectEx GUICtrlListBox_GetListBoxInfo GUICtrlListBox_GetLocale GUICtrlListBox_GetLocaleCountry GUICtrlListBox_GetLocaleLang GUICtrlListBox_GetLocalePrimLang GUICtrlListBox_GetLocaleSubLang GUICtrlListBox_GetSel GUICtrlListBox_GetSelCount GUICtrlListBox_GetSelItems GUICtrlListBox_GetSelItemsText GUICtrlListBox_GetText GUICtrlListBox_GetTextLen GUICtrlListBox_GetTopIndex GUICtrlListBox_InitStorage GUICtrlListBox_InsertString GUICtrlListBox_ItemFromPoint GUICtrlListBox_ReplaceString GUICtrlListBox_ResetContent GUICtrlListBox_SelectString GUICtrlListBox_SelItemRange GUICtrlListBox_SelItemRangeEx GUICtrlListBox_SetAnchorIndex GUICtrlListBox_SetCaretIndex GUICtrlListBox_SetColumnWidth GUICtrlListBox_SetCurSel GUICtrlListBox_SetHorizontalExtent GUICtrlListBox_SetItemData GUICtrlListBox_SetItemHeight GUICtrlListBox_SetLocale GUICtrlListBox_SetSel GUICtrlListBox_SetTabStops GUICtrlListBox_SetTopIndex GUICtrlListBox_Sort GUICtrlListBox_SwapString GUICtrlListBox_UpdateHScroll GUICtrlListView_AddArray GUICtrlListView_AddColumn GUICtrlListView_AddItem GUICtrlListView_AddSubItem GUICtrlListView_ApproximateViewHeight GUICtrlListView_ApproximateViewRect GUICtrlListView_ApproximateViewWidth GUICtrlListView_Arrange GUICtrlListView_BeginUpdate GUICtrlListView_CancelEditLabel GUICtrlListView_ClickItem GUICtrlListView_CopyItems GUICtrlListView_Create GUICtrlListView_CreateDragImage GUICtrlListView_CreateSolidBitMap GUICtrlListView_DeleteAllItems GUICtrlListView_DeleteColumn GUICtrlListView_DeleteItem GUICtrlListView_DeleteItemsSelected GUICtrlListView_Destroy GUICtrlListView_DrawDragImage GUICtrlListView_EditLabel GUICtrlListView_EnableGroupView GUICtrlListView_EndUpdate GUICtrlListView_EnsureVisible GUICtrlListView_FindInText GUICtrlListView_FindItem GUICtrlListView_FindNearest GUICtrlListView_FindParam GUICtrlListView_FindText GUICtrlListView_GetBkColor GUICtrlListView_GetBkImage GUICtrlListView_GetCallbackMask GUICtrlListView_GetColumn GUICtrlListView_GetColumnCount GUICtrlListView_GetColumnOrder GUICtrlListView_GetColumnOrderArray GUICtrlListView_GetColumnWidth GUICtrlListView_GetCounterPage GUICtrlListView_GetEditControl GUICtrlListView_GetExtendedListViewStyle GUICtrlListView_GetFocusedGroup GUICtrlListView_GetGroupCount GUICtrlListView_GetGroupInfo GUICtrlListView_GetGroupInfoByIndex GUICtrlListView_GetGroupRect GUICtrlListView_GetGroupViewEnabled GUICtrlListView_GetHeader GUICtrlListView_GetHotCursor GUICtrlListView_GetHotItem GUICtrlListView_GetHoverTime GUICtrlListView_GetImageList GUICtrlListView_GetISearchString GUICtrlListView_GetItem GUICtrlListView_GetItemChecked GUICtrlListView_GetItemCount GUICtrlListView_GetItemCut GUICtrlListView_GetItemDropHilited GUICtrlListView_GetItemEx GUICtrlListView_GetItemFocused GUICtrlListView_GetItemGroupID GUICtrlListView_GetItemImage GUICtrlListView_GetItemIndent GUICtrlListView_GetItemParam GUICtrlListView_GetItemPosition GUICtrlListView_GetItemPositionX GUICtrlListView_GetItemPositionY GUICtrlListView_GetItemRect GUICtrlListView_GetItemRectEx GUICtrlListView_GetItemSelected GUICtrlListView_GetItemSpacing GUICtrlListView_GetItemSpacingX GUICtrlListView_GetItemSpacingY GUICtrlListView_GetItemState GUICtrlListView_GetItemStateImage GUICtrlListView_GetItemText GUICtrlListView_GetItemTextArray GUICtrlListView_GetItemTextString GUICtrlListView_GetNextItem GUICtrlListView_GetNumberOfWorkAreas GUICtrlListView_GetOrigin GUICtrlListView_GetOriginX GUICtrlListView_GetOriginY GUICtrlListView_GetOutlineColor GUICtrlListView_GetSelectedColumn GUICtrlListView_GetSelectedCount GUICtrlListView_GetSelectedIndices GUICtrlListView_GetSelectionMark GUICtrlListView_GetStringWidth GUICtrlListView_GetSubItemRect GUICtrlListView_GetTextBkColor GUICtrlListView_GetTextColor GUICtrlListView_GetToolTips GUICtrlListView_GetTopIndex GUICtrlListView_GetUnicodeFormat GUICtrlListView_GetView GUICtrlListView_GetViewDetails GUICtrlListView_GetViewLarge GUICtrlListView_GetViewList GUICtrlListView_GetViewRect GUICtrlListView_GetViewSmall GUICtrlListView_GetViewTile GUICtrlListView_HideColumn GUICtrlListView_HitTest GUICtrlListView_InsertColumn GUICtrlListView_InsertGroup GUICtrlListView_InsertItem GUICtrlListView_JustifyColumn GUICtrlListView_MapIDToIndex GUICtrlListView_MapIndexToID GUICtrlListView_RedrawItems GUICtrlListView_RegisterSortCallBack GUICtrlListView_RemoveAllGroups GUICtrlListView_RemoveGroup GUICtrlListView_Scroll GUICtrlListView_SetBkColor GUICtrlListView_SetBkImage GUICtrlListView_SetCallBackMask GUICtrlListView_SetColumn GUICtrlListView_SetColumnOrder GUICtrlListView_SetColumnOrderArray GUICtrlListView_SetColumnWidth GUICtrlListView_SetExtendedListViewStyle GUICtrlListView_SetGroupInfo GUICtrlListView_SetHotItem GUICtrlListView_SetHoverTime GUICtrlListView_SetIconSpacing GUICtrlListView_SetImageList GUICtrlListView_SetItem GUICtrlListView_SetItemChecked GUICtrlListView_SetItemCount GUICtrlListView_SetItemCut GUICtrlListView_SetItemDropHilited GUICtrlListView_SetItemEx GUICtrlListView_SetItemFocused GUICtrlListView_SetItemGroupID GUICtrlListView_SetItemImage GUICtrlListView_SetItemIndent GUICtrlListView_SetItemParam GUICtrlListView_SetItemPosition GUICtrlListView_SetItemPosition32 GUICtrlListView_SetItemSelected GUICtrlListView_SetItemState GUICtrlListView_SetItemStateImage GUICtrlListView_SetItemText GUICtrlListView_SetOutlineColor GUICtrlListView_SetSelectedColumn GUICtrlListView_SetSelectionMark GUICtrlListView_SetTextBkColor GUICtrlListView_SetTextColor GUICtrlListView_SetToolTips GUICtrlListView_SetUnicodeFormat GUICtrlListView_SetView GUICtrlListView_SetWorkAreas GUICtrlListView_SimpleSort GUICtrlListView_SortItems GUICtrlListView_SubItemHitTest GUICtrlListView_UnRegisterSortCallBack GUICtrlMenu_AddMenuItem GUICtrlMenu_AppendMenu GUICtrlMenu_CalculatePopupWindowPosition GUICtrlMenu_CheckMenuItem GUICtrlMenu_CheckRadioItem GUICtrlMenu_CreateMenu GUICtrlMenu_CreatePopup GUICtrlMenu_DeleteMenu GUICtrlMenu_DestroyMenu GUICtrlMenu_DrawMenuBar GUICtrlMenu_EnableMenuItem GUICtrlMenu_FindItem GUICtrlMenu_FindParent GUICtrlMenu_GetItemBmp GUICtrlMenu_GetItemBmpChecked GUICtrlMenu_GetItemBmpUnchecked GUICtrlMenu_GetItemChecked GUICtrlMenu_GetItemCount GUICtrlMenu_GetItemData GUICtrlMenu_GetItemDefault GUICtrlMenu_GetItemDisabled GUICtrlMenu_GetItemEnabled GUICtrlMenu_GetItemGrayed GUICtrlMenu_GetItemHighlighted GUICtrlMenu_GetItemID GUICtrlMenu_GetItemInfo GUICtrlMenu_GetItemRect GUICtrlMenu_GetItemRectEx GUICtrlMenu_GetItemState GUICtrlMenu_GetItemStateEx GUICtrlMenu_GetItemSubMenu GUICtrlMenu_GetItemText GUICtrlMenu_GetItemType GUICtrlMenu_GetMenu GUICtrlMenu_GetMenuBackground GUICtrlMenu_GetMenuBarInfo GUICtrlMenu_GetMenuContextHelpID GUICtrlMenu_GetMenuData GUICtrlMenu_GetMenuDefaultItem GUICtrlMenu_GetMenuHeight GUICtrlMenu_GetMenuInfo GUICtrlMenu_GetMenuStyle GUICtrlMenu_GetSystemMenu GUICtrlMenu_InsertMenuItem GUICtrlMenu_InsertMenuItemEx GUICtrlMenu_IsMenu GUICtrlMenu_LoadMenu GUICtrlMenu_MapAccelerator GUICtrlMenu_MenuItemFromPoint GUICtrlMenu_RemoveMenu GUICtrlMenu_SetItemBitmaps GUICtrlMenu_SetItemBmp GUICtrlMenu_SetItemBmpChecked GUICtrlMenu_SetItemBmpUnchecked GUICtrlMenu_SetItemChecked GUICtrlMenu_SetItemData GUICtrlMenu_SetItemDefault GUICtrlMenu_SetItemDisabled GUICtrlMenu_SetItemEnabled GUICtrlMenu_SetItemGrayed GUICtrlMenu_SetItemHighlighted GUICtrlMenu_SetItemID GUICtrlMenu_SetItemInfo GUICtrlMenu_SetItemState GUICtrlMenu_SetItemSubMenu GUICtrlMenu_SetItemText GUICtrlMenu_SetItemType GUICtrlMenu_SetMenu GUICtrlMenu_SetMenuBackground GUICtrlMenu_SetMenuContextHelpID GUICtrlMenu_SetMenuData GUICtrlMenu_SetMenuDefaultItem GUICtrlMenu_SetMenuHeight GUICtrlMenu_SetMenuInfo GUICtrlMenu_SetMenuStyle GUICtrlMenu_TrackPopupMenu GUICtrlMonthCal_Create GUICtrlMonthCal_Destroy GUICtrlMonthCal_GetCalendarBorder GUICtrlMonthCal_GetCalendarCount GUICtrlMonthCal_GetColor GUICtrlMonthCal_GetColorArray GUICtrlMonthCal_GetCurSel GUICtrlMonthCal_GetCurSelStr GUICtrlMonthCal_GetFirstDOW GUICtrlMonthCal_GetFirstDOWStr GUICtrlMonthCal_GetMaxSelCount GUICtrlMonthCal_GetMaxTodayWidth GUICtrlMonthCal_GetMinReqHeight GUICtrlMonthCal_GetMinReqRect GUICtrlMonthCal_GetMinReqRectArray GUICtrlMonthCal_GetMinReqWidth GUICtrlMonthCal_GetMonthDelta GUICtrlMonthCal_GetMonthRange GUICtrlMonthCal_GetMonthRangeMax GUICtrlMonthCal_GetMonthRangeMaxStr GUICtrlMonthCal_GetMonthRangeMin GUICtrlMonthCal_GetMonthRangeMinStr GUICtrlMonthCal_GetMonthRangeSpan GUICtrlMonthCal_GetRange GUICtrlMonthCal_GetRangeMax GUICtrlMonthCal_GetRangeMaxStr GUICtrlMonthCal_GetRangeMin GUICtrlMonthCal_GetRangeMinStr GUICtrlMonthCal_GetSelRange GUICtrlMonthCal_GetSelRangeMax GUICtrlMonthCal_GetSelRangeMaxStr GUICtrlMonthCal_GetSelRangeMin GUICtrlMonthCal_GetSelRangeMinStr GUICtrlMonthCal_GetToday GUICtrlMonthCal_GetTodayStr GUICtrlMonthCal_GetUnicodeFormat GUICtrlMonthCal_HitTest GUICtrlMonthCal_SetCalendarBorder GUICtrlMonthCal_SetColor GUICtrlMonthCal_SetCurSel GUICtrlMonthCal_SetDayState GUICtrlMonthCal_SetFirstDOW GUICtrlMonthCal_SetMaxSelCount GUICtrlMonthCal_SetMonthDelta GUICtrlMonthCal_SetRange GUICtrlMonthCal_SetSelRange GUICtrlMonthCal_SetToday GUICtrlMonthCal_SetUnicodeFormat GUICtrlRebar_AddBand GUICtrlRebar_AddToolBarBand GUICtrlRebar_BeginDrag GUICtrlRebar_Create GUICtrlRebar_DeleteBand GUICtrlRebar_Destroy GUICtrlRebar_DragMove GUICtrlRebar_EndDrag GUICtrlRebar_GetBandBackColor GUICtrlRebar_GetBandBorders GUICtrlRebar_GetBandBordersEx GUICtrlRebar_GetBandChildHandle GUICtrlRebar_GetBandChildSize GUICtrlRebar_GetBandCount GUICtrlRebar_GetBandForeColor GUICtrlRebar_GetBandHeaderSize GUICtrlRebar_GetBandID GUICtrlRebar_GetBandIdealSize GUICtrlRebar_GetBandLength GUICtrlRebar_GetBandLParam GUICtrlRebar_GetBandMargins GUICtrlRebar_GetBandMarginsEx GUICtrlRebar_GetBandRect GUICtrlRebar_GetBandRectEx GUICtrlRebar_GetBandStyle GUICtrlRebar_GetBandStyleBreak GUICtrlRebar_GetBandStyleChildEdge GUICtrlRebar_GetBandStyleFixedBMP GUICtrlRebar_GetBandStyleFixedSize GUICtrlRebar_GetBandStyleGripperAlways GUICtrlRebar_GetBandStyleHidden GUICtrlRebar_GetBandStyleHideTitle GUICtrlRebar_GetBandStyleNoGripper GUICtrlRebar_GetBandStyleTopAlign GUICtrlRebar_GetBandStyleUseChevron GUICtrlRebar_GetBandStyleVariableHeight GUICtrlRebar_GetBandText GUICtrlRebar_GetBarHeight GUICtrlRebar_GetBarInfo GUICtrlRebar_GetBKColor GUICtrlRebar_GetColorScheme GUICtrlRebar_GetRowCount GUICtrlRebar_GetRowHeight GUICtrlRebar_GetTextColor GUICtrlRebar_GetToolTips GUICtrlRebar_GetUnicodeFormat GUICtrlRebar_HitTest GUICtrlRebar_IDToIndex GUICtrlRebar_MaximizeBand GUICtrlRebar_MinimizeBand GUICtrlRebar_MoveBand GUICtrlRebar_SetBandBackColor GUICtrlRebar_SetBandForeColor GUICtrlRebar_SetBandHeaderSize GUICtrlRebar_SetBandID GUICtrlRebar_SetBandIdealSize GUICtrlRebar_SetBandLength GUICtrlRebar_SetBandLParam GUICtrlRebar_SetBandStyle GUICtrlRebar_SetBandStyleBreak GUICtrlRebar_SetBandStyleChildEdge GUICtrlRebar_SetBandStyleFixedBMP GUICtrlRebar_SetBandStyleFixedSize GUICtrlRebar_SetBandStyleGripperAlways GUICtrlRebar_SetBandStyleHidden GUICtrlRebar_SetBandStyleHideTitle GUICtrlRebar_SetBandStyleNoGripper GUICtrlRebar_SetBandStyleTopAlign GUICtrlRebar_SetBandStyleUseChevron GUICtrlRebar_SetBandStyleVariableHeight GUICtrlRebar_SetBandText GUICtrlRebar_SetBarInfo GUICtrlRebar_SetBKColor GUICtrlRebar_SetColorScheme GUICtrlRebar_SetTextColor GUICtrlRebar_SetToolTips GUICtrlRebar_SetUnicodeFormat GUICtrlRebar_ShowBand GUICtrlRichEdit_AppendText GUICtrlRichEdit_AutoDetectURL GUICtrlRichEdit_CanPaste GUICtrlRichEdit_CanPasteSpecial GUICtrlRichEdit_CanRedo GUICtrlRichEdit_CanUndo GUICtrlRichEdit_ChangeFontSize GUICtrlRichEdit_Copy GUICtrlRichEdit_Create GUICtrlRichEdit_Cut GUICtrlRichEdit_Deselect GUICtrlRichEdit_Destroy GUICtrlRichEdit_EmptyUndoBuffer GUICtrlRichEdit_FindText GUICtrlRichEdit_FindTextInRange GUICtrlRichEdit_GetBkColor GUICtrlRichEdit_GetCharAttributes GUICtrlRichEdit_GetCharBkColor GUICtrlRichEdit_GetCharColor GUICtrlRichEdit_GetCharPosFromXY GUICtrlRichEdit_GetCharPosOfNextWord GUICtrlRichEdit_GetCharPosOfPreviousWord GUICtrlRichEdit_GetCharWordBreakInfo GUICtrlRichEdit_GetFirstCharPosOnLine GUICtrlRichEdit_GetFont GUICtrlRichEdit_GetLineCount GUICtrlRichEdit_GetLineLength GUICtrlRichEdit_GetLineNumberFromCharPos GUICtrlRichEdit_GetNextRedo GUICtrlRichEdit_GetNextUndo GUICtrlRichEdit_GetNumberOfFirstVisibleLine GUICtrlRichEdit_GetParaAlignment GUICtrlRichEdit_GetParaAttributes GUICtrlRichEdit_GetParaBorder GUICtrlRichEdit_GetParaIndents GUICtrlRichEdit_GetParaNumbering GUICtrlRichEdit_GetParaShading GUICtrlRichEdit_GetParaSpacing GUICtrlRichEdit_GetParaTabStops GUICtrlRichEdit_GetPasswordChar GUICtrlRichEdit_GetRECT GUICtrlRichEdit_GetScrollPos GUICtrlRichEdit_GetSel GUICtrlRichEdit_GetSelAA GUICtrlRichEdit_GetSelText GUICtrlRichEdit_GetSpaceUnit GUICtrlRichEdit_GetText GUICtrlRichEdit_GetTextInLine GUICtrlRichEdit_GetTextInRange GUICtrlRichEdit_GetTextLength GUICtrlRichEdit_GetVersion GUICtrlRichEdit_GetXYFromCharPos GUICtrlRichEdit_GetZoom GUICtrlRichEdit_GotoCharPos GUICtrlRichEdit_HideSelection GUICtrlRichEdit_InsertText GUICtrlRichEdit_IsModified GUICtrlRichEdit_IsTextSelected GUICtrlRichEdit_Paste GUICtrlRichEdit_PasteSpecial GUICtrlRichEdit_PauseRedraw GUICtrlRichEdit_Redo GUICtrlRichEdit_ReplaceText GUICtrlRichEdit_ResumeRedraw GUICtrlRichEdit_ScrollLineOrPage GUICtrlRichEdit_ScrollLines GUICtrlRichEdit_ScrollToCaret GUICtrlRichEdit_SetBkColor GUICtrlRichEdit_SetCharAttributes GUICtrlRichEdit_SetCharBkColor GUICtrlRichEdit_SetCharColor GUICtrlRichEdit_SetEventMask GUICtrlRichEdit_SetFont GUICtrlRichEdit_SetLimitOnText GUICtrlRichEdit_SetModified GUICtrlRichEdit_SetParaAlignment GUICtrlRichEdit_SetParaAttributes GUICtrlRichEdit_SetParaBorder GUICtrlRichEdit_SetParaIndents GUICtrlRichEdit_SetParaNumbering GUICtrlRichEdit_SetParaShading GUICtrlRichEdit_SetParaSpacing GUICtrlRichEdit_SetParaTabStops GUICtrlRichEdit_SetPasswordChar GUICtrlRichEdit_SetReadOnly GUICtrlRichEdit_SetRECT GUICtrlRichEdit_SetScrollPos GUICtrlRichEdit_SetSel GUICtrlRichEdit_SetSpaceUnit GUICtrlRichEdit_SetTabStops GUICtrlRichEdit_SetText GUICtrlRichEdit_SetUndoLimit GUICtrlRichEdit_SetZoom GUICtrlRichEdit_StreamFromFile GUICtrlRichEdit_StreamFromVar GUICtrlRichEdit_StreamToFile GUICtrlRichEdit_StreamToVar GUICtrlRichEdit_Undo GUICtrlSlider_ClearSel GUICtrlSlider_ClearTics GUICtrlSlider_Create GUICtrlSlider_Destroy GUICtrlSlider_GetBuddy GUICtrlSlider_GetChannelRect GUICtrlSlider_GetChannelRectEx GUICtrlSlider_GetLineSize GUICtrlSlider_GetLogicalTics GUICtrlSlider_GetNumTics GUICtrlSlider_GetPageSize GUICtrlSlider_GetPos GUICtrlSlider_GetRange GUICtrlSlider_GetRangeMax GUICtrlSlider_GetRangeMin GUICtrlSlider_GetSel GUICtrlSlider_GetSelEnd GUICtrlSlider_GetSelStart GUICtrlSlider_GetThumbLength GUICtrlSlider_GetThumbRect GUICtrlSlider_GetThumbRectEx GUICtrlSlider_GetTic GUICtrlSlider_GetTicPos GUICtrlSlider_GetToolTips GUICtrlSlider_GetUnicodeFormat GUICtrlSlider_SetBuddy GUICtrlSlider_SetLineSize GUICtrlSlider_SetPageSize GUICtrlSlider_SetPos GUICtrlSlider_SetRange GUICtrlSlider_SetRangeMax GUICtrlSlider_SetRangeMin GUICtrlSlider_SetSel GUICtrlSlider_SetSelEnd GUICtrlSlider_SetSelStart GUICtrlSlider_SetThumbLength GUICtrlSlider_SetTic GUICtrlSlider_SetTicFreq GUICtrlSlider_SetTipSide GUICtrlSlider_SetToolTips GUICtrlSlider_SetUnicodeFormat GUICtrlStatusBar_Create GUICtrlStatusBar_Destroy GUICtrlStatusBar_EmbedControl GUICtrlStatusBar_GetBorders GUICtrlStatusBar_GetBordersHorz GUICtrlStatusBar_GetBordersRect GUICtrlStatusBar_GetBordersVert GUICtrlStatusBar_GetCount GUICtrlStatusBar_GetHeight GUICtrlStatusBar_GetIcon GUICtrlStatusBar_GetParts GUICtrlStatusBar_GetRect GUICtrlStatusBar_GetRectEx GUICtrlStatusBar_GetText GUICtrlStatusBar_GetTextFlags GUICtrlStatusBar_GetTextLength GUICtrlStatusBar_GetTextLengthEx GUICtrlStatusBar_GetTipText GUICtrlStatusBar_GetUnicodeFormat GUICtrlStatusBar_GetWidth GUICtrlStatusBar_IsSimple GUICtrlStatusBar_Resize GUICtrlStatusBar_SetBkColor GUICtrlStatusBar_SetIcon GUICtrlStatusBar_SetMinHeight GUICtrlStatusBar_SetParts GUICtrlStatusBar_SetSimple GUICtrlStatusBar_SetText GUICtrlStatusBar_SetTipText GUICtrlStatusBar_SetUnicodeFormat GUICtrlStatusBar_ShowHide GUICtrlTab_ActivateTab GUICtrlTab_ClickTab GUICtrlTab_Create GUICtrlTab_DeleteAllItems GUICtrlTab_DeleteItem GUICtrlTab_DeselectAll GUICtrlTab_Destroy GUICtrlTab_FindTab GUICtrlTab_GetCurFocus GUICtrlTab_GetCurSel GUICtrlTab_GetDisplayRect GUICtrlTab_GetDisplayRectEx GUICtrlTab_GetExtendedStyle GUICtrlTab_GetImageList GUICtrlTab_GetItem GUICtrlTab_GetItemCount GUICtrlTab_GetItemImage GUICtrlTab_GetItemParam GUICtrlTab_GetItemRect GUICtrlTab_GetItemRectEx GUICtrlTab_GetItemState GUICtrlTab_GetItemText GUICtrlTab_GetRowCount GUICtrlTab_GetToolTips GUICtrlTab_GetUnicodeFormat GUICtrlTab_HighlightItem GUICtrlTab_HitTest GUICtrlTab_InsertItem GUICtrlTab_RemoveImage GUICtrlTab_SetCurFocus GUICtrlTab_SetCurSel GUICtrlTab_SetExtendedStyle GUICtrlTab_SetImageList GUICtrlTab_SetItem GUICtrlTab_SetItemImage GUICtrlTab_SetItemParam GUICtrlTab_SetItemSize GUICtrlTab_SetItemState GUICtrlTab_SetItemText GUICtrlTab_SetMinTabWidth GUICtrlTab_SetPadding GUICtrlTab_SetToolTips GUICtrlTab_SetUnicodeFormat GUICtrlToolbar_AddBitmap GUICtrlToolbar_AddButton GUICtrlToolbar_AddButtonSep GUICtrlToolbar_AddString GUICtrlToolbar_ButtonCount GUICtrlToolbar_CheckButton GUICtrlToolbar_ClickAccel GUICtrlToolbar_ClickButton GUICtrlToolbar_ClickIndex GUICtrlToolbar_CommandToIndex GUICtrlToolbar_Create GUICtrlToolbar_Customize GUICtrlToolbar_DeleteButton GUICtrlToolbar_Destroy GUICtrlToolbar_EnableButton GUICtrlToolbar_FindToolbar GUICtrlToolbar_GetAnchorHighlight GUICtrlToolbar_GetBitmapFlags GUICtrlToolbar_GetButtonBitmap GUICtrlToolbar_GetButtonInfo GUICtrlToolbar_GetButtonInfoEx GUICtrlToolbar_GetButtonParam GUICtrlToolbar_GetButtonRect GUICtrlToolbar_GetButtonRectEx GUICtrlToolbar_GetButtonSize GUICtrlToolbar_GetButtonState GUICtrlToolbar_GetButtonStyle GUICtrlToolbar_GetButtonText GUICtrlToolbar_GetColorScheme GUICtrlToolbar_GetDisabledImageList GUICtrlToolbar_GetExtendedStyle GUICtrlToolbar_GetHotImageList GUICtrlToolbar_GetHotItem GUICtrlToolbar_GetImageList GUICtrlToolbar_GetInsertMark GUICtrlToolbar_GetInsertMarkColor GUICtrlToolbar_GetMaxSize GUICtrlToolbar_GetMetrics GUICtrlToolbar_GetPadding GUICtrlToolbar_GetRows GUICtrlToolbar_GetString GUICtrlToolbar_GetStyle GUICtrlToolbar_GetStyleAltDrag GUICtrlToolbar_GetStyleCustomErase GUICtrlToolbar_GetStyleFlat GUICtrlToolbar_GetStyleList GUICtrlToolbar_GetStyleRegisterDrop GUICtrlToolbar_GetStyleToolTips GUICtrlToolbar_GetStyleTransparent GUICtrlToolbar_GetStyleWrapable GUICtrlToolbar_GetTextRows GUICtrlToolbar_GetToolTips GUICtrlToolbar_GetUnicodeFormat GUICtrlToolbar_HideButton GUICtrlToolbar_HighlightButton GUICtrlToolbar_HitTest GUICtrlToolbar_IndexToCommand GUICtrlToolbar_InsertButton GUICtrlToolbar_InsertMarkHitTest GUICtrlToolbar_IsButtonChecked GUICtrlToolbar_IsButtonEnabled GUICtrlToolbar_IsButtonHidden GUICtrlToolbar_IsButtonHighlighted GUICtrlToolbar_IsButtonIndeterminate GUICtrlToolbar_IsButtonPressed GUICtrlToolbar_LoadBitmap GUICtrlToolbar_LoadImages GUICtrlToolbar_MapAccelerator GUICtrlToolbar_MoveButton GUICtrlToolbar_PressButton GUICtrlToolbar_SetAnchorHighlight GUICtrlToolbar_SetBitmapSize GUICtrlToolbar_SetButtonBitMap GUICtrlToolbar_SetButtonInfo GUICtrlToolbar_SetButtonInfoEx GUICtrlToolbar_SetButtonParam GUICtrlToolbar_SetButtonSize GUICtrlToolbar_SetButtonState GUICtrlToolbar_SetButtonStyle GUICtrlToolbar_SetButtonText GUICtrlToolbar_SetButtonWidth GUICtrlToolbar_SetCmdID GUICtrlToolbar_SetColorScheme GUICtrlToolbar_SetDisabledImageList GUICtrlToolbar_SetDrawTextFlags GUICtrlToolbar_SetExtendedStyle GUICtrlToolbar_SetHotImageList GUICtrlToolbar_SetHotItem GUICtrlToolbar_SetImageList GUICtrlToolbar_SetIndent GUICtrlToolbar_SetIndeterminate GUICtrlToolbar_SetInsertMark GUICtrlToolbar_SetInsertMarkColor GUICtrlToolbar_SetMaxTextRows GUICtrlToolbar_SetMetrics GUICtrlToolbar_SetPadding GUICtrlToolbar_SetParent GUICtrlToolbar_SetRows GUICtrlToolbar_SetStyle GUICtrlToolbar_SetStyleAltDrag GUICtrlToolbar_SetStyleCustomErase GUICtrlToolbar_SetStyleFlat GUICtrlToolbar_SetStyleList GUICtrlToolbar_SetStyleRegisterDrop GUICtrlToolbar_SetStyleToolTips GUICtrlToolbar_SetStyleTransparent GUICtrlToolbar_SetStyleWrapable GUICtrlToolbar_SetToolTips GUICtrlToolbar_SetUnicodeFormat GUICtrlToolbar_SetWindowTheme GUICtrlTreeView_Add GUICtrlTreeView_AddChild GUICtrlTreeView_AddChildFirst GUICtrlTreeView_AddFirst GUICtrlTreeView_BeginUpdate GUICtrlTreeView_ClickItem GUICtrlTreeView_Create GUICtrlTreeView_CreateDragImage GUICtrlTreeView_CreateSolidBitMap GUICtrlTreeView_Delete GUICtrlTreeView_DeleteAll GUICtrlTreeView_DeleteChildren GUICtrlTreeView_Destroy GUICtrlTreeView_DisplayRect GUICtrlTreeView_DisplayRectEx GUICtrlTreeView_EditText GUICtrlTreeView_EndEdit GUICtrlTreeView_EndUpdate GUICtrlTreeView_EnsureVisible GUICtrlTreeView_Expand GUICtrlTreeView_ExpandedOnce GUICtrlTreeView_FindItem GUICtrlTreeView_FindItemEx GUICtrlTreeView_GetBkColor GUICtrlTreeView_GetBold GUICtrlTreeView_GetChecked GUICtrlTreeView_GetChildCount GUICtrlTreeView_GetChildren GUICtrlTreeView_GetCount GUICtrlTreeView_GetCut GUICtrlTreeView_GetDropTarget GUICtrlTreeView_GetEditControl GUICtrlTreeView_GetExpanded GUICtrlTreeView_GetFirstChild GUICtrlTreeView_GetFirstItem GUICtrlTreeView_GetFirstVisible GUICtrlTreeView_GetFocused GUICtrlTreeView_GetHeight GUICtrlTreeView_GetImageIndex GUICtrlTreeView_GetImageListIconHandle GUICtrlTreeView_GetIndent GUICtrlTreeView_GetInsertMarkColor GUICtrlTreeView_GetISearchString GUICtrlTreeView_GetItemByIndex GUICtrlTreeView_GetItemHandle GUICtrlTreeView_GetItemParam GUICtrlTreeView_GetLastChild GUICtrlTreeView_GetLineColor GUICtrlTreeView_GetNext GUICtrlTreeView_GetNextChild GUICtrlTreeView_GetNextSibling GUICtrlTreeView_GetNextVisible GUICtrlTreeView_GetNormalImageList GUICtrlTreeView_GetParentHandle GUICtrlTreeView_GetParentParam GUICtrlTreeView_GetPrev GUICtrlTreeView_GetPrevChild GUICtrlTreeView_GetPrevSibling GUICtrlTreeView_GetPrevVisible GUICtrlTreeView_GetScrollTime GUICtrlTreeView_GetSelected GUICtrlTreeView_GetSelectedImageIndex GUICtrlTreeView_GetSelection GUICtrlTreeView_GetSiblingCount GUICtrlTreeView_GetState GUICtrlTreeView_GetStateImageIndex GUICtrlTreeView_GetStateImageList GUICtrlTreeView_GetText GUICtrlTreeView_GetTextColor GUICtrlTreeView_GetToolTips GUICtrlTreeView_GetTree GUICtrlTreeView_GetUnicodeFormat GUICtrlTreeView_GetVisible GUICtrlTreeView_GetVisibleCount GUICtrlTreeView_HitTest GUICtrlTreeView_HitTestEx GUICtrlTreeView_HitTestItem GUICtrlTreeView_Index GUICtrlTreeView_InsertItem GUICtrlTreeView_IsFirstItem GUICtrlTreeView_IsParent GUICtrlTreeView_Level GUICtrlTreeView_SelectItem GUICtrlTreeView_SelectItemByIndex GUICtrlTreeView_SetBkColor GUICtrlTreeView_SetBold GUICtrlTreeView_SetChecked GUICtrlTreeView_SetCheckedByIndex GUICtrlTreeView_SetChildren GUICtrlTreeView_SetCut GUICtrlTreeView_SetDropTarget GUICtrlTreeView_SetFocused GUICtrlTreeView_SetHeight GUICtrlTreeView_SetIcon GUICtrlTreeView_SetImageIndex GUICtrlTreeView_SetIndent GUICtrlTreeView_SetInsertMark GUICtrlTreeView_SetInsertMarkColor GUICtrlTreeView_SetItemHeight GUICtrlTreeView_SetItemParam GUICtrlTreeView_SetLineColor GUICtrlTreeView_SetNormalImageList GUICtrlTreeView_SetScrollTime GUICtrlTreeView_SetSelected GUICtrlTreeView_SetSelectedImageIndex GUICtrlTreeView_SetState GUICtrlTreeView_SetStateImageIndex GUICtrlTreeView_SetStateImageList GUICtrlTreeView_SetText GUICtrlTreeView_SetTextColor GUICtrlTreeView_SetToolTips GUICtrlTreeView_SetUnicodeFormat GUICtrlTreeView_Sort GUIImageList_Add GUIImageList_AddBitmap GUIImageList_AddIcon GUIImageList_AddMasked GUIImageList_BeginDrag GUIImageList_Copy GUIImageList_Create GUIImageList_Destroy GUIImageList_DestroyIcon GUIImageList_DragEnter GUIImageList_DragLeave GUIImageList_DragMove GUIImageList_Draw GUIImageList_DrawEx GUIImageList_Duplicate GUIImageList_EndDrag GUIImageList_GetBkColor GUIImageList_GetIcon GUIImageList_GetIconHeight GUIImageList_GetIconSize GUIImageList_GetIconSizeEx GUIImageList_GetIconWidth GUIImageList_GetImageCount GUIImageList_GetImageInfoEx GUIImageList_Remove GUIImageList_ReplaceIcon GUIImageList_SetBkColor GUIImageList_SetIconSize GUIImageList_SetImageCount GUIImageList_Swap GUIScrollBars_EnableScrollBar GUIScrollBars_GetScrollBarInfoEx GUIScrollBars_GetScrollBarRect GUIScrollBars_GetScrollBarRGState GUIScrollBars_GetScrollBarXYLineButton GUIScrollBars_GetScrollBarXYThumbBottom GUIScrollBars_GetScrollBarXYThumbTop GUIScrollBars_GetScrollInfo GUIScrollBars_GetScrollInfoEx GUIScrollBars_GetScrollInfoMax GUIScrollBars_GetScrollInfoMin GUIScrollBars_GetScrollInfoPage GUIScrollBars_GetScrollInfoPos GUIScrollBars_GetScrollInfoTrackPos GUIScrollBars_GetScrollPos GUIScrollBars_GetScrollRange GUIScrollBars_Init GUIScrollBars_ScrollWindow GUIScrollBars_SetScrollInfo GUIScrollBars_SetScrollInfoMax GUIScrollBars_SetScrollInfoMin GUIScrollBars_SetScrollInfoPage GUIScrollBars_SetScrollInfoPos GUIScrollBars_SetScrollRange GUIScrollBars_ShowScrollBar GUIToolTip_Activate GUIToolTip_AddTool GUIToolTip_AdjustRect GUIToolTip_BitsToTTF GUIToolTip_Create GUIToolTip_Deactivate GUIToolTip_DelTool GUIToolTip_Destroy GUIToolTip_EnumTools GUIToolTip_GetBubbleHeight GUIToolTip_GetBubbleSize GUIToolTip_GetBubbleWidth GUIToolTip_GetCurrentTool GUIToolTip_GetDelayTime GUIToolTip_GetMargin GUIToolTip_GetMarginEx GUIToolTip_GetMaxTipWidth GUIToolTip_GetText GUIToolTip_GetTipBkColor GUIToolTip_GetTipTextColor GUIToolTip_GetTitleBitMap GUIToolTip_GetTitleText GUIToolTip_GetToolCount GUIToolTip_GetToolInfo GUIToolTip_HitTest GUIToolTip_NewToolRect GUIToolTip_Pop GUIToolTip_PopUp GUIToolTip_SetDelayTime GUIToolTip_SetMargin GUIToolTip_SetMaxTipWidth GUIToolTip_SetTipBkColor GUIToolTip_SetTipTextColor GUIToolTip_SetTitle GUIToolTip_SetToolInfo GUIToolTip_SetWindowTheme GUIToolTip_ToolExists GUIToolTip_ToolToArray GUIToolTip_TrackActivate GUIToolTip_TrackPosition GUIToolTip_Update GUIToolTip_UpdateTipText HexToString IEAction IEAttach IEBodyReadHTML IEBodyReadText IEBodyWriteHTML IECreate IECreateEmbedded IEDocGetObj IEDocInsertHTML IEDocInsertText IEDocReadHTML IEDocWriteHTML IEErrorNotify IEFormElementCheckBoxSelect IEFormElementGetCollection IEFormElementGetObjByName IEFormElementGetValue IEFormElementOptionSelect IEFormElementRadioSelect IEFormElementSetValue IEFormGetCollection IEFormGetObjByName IEFormImageClick IEFormReset IEFormSubmit IEFrameGetCollection IEFrameGetObjByName IEGetObjById IEGetObjByName IEHeadInsertEventScript IEImgClick IEImgGetCollection IEIsFrameSet IELinkClickByIndex IELinkClickByText IELinkGetCollection IELoadWait IELoadWaitTimeout IENavigate IEPropertyGet IEPropertySet IEQuit IETableGetCollection IETableWriteToArray IETagNameAllGetCollection IETagNameGetCollection IE_Example IE_Introduction IE_VersionInfo INetExplorerCapable INetGetSource INetMail INetSmtpMail IsPressed MathCheckDiv Max MemGlobalAlloc MemGlobalFree MemGlobalLock MemGlobalSize MemGlobalUnlock MemMoveMemory MemVirtualAlloc MemVirtualAllocEx MemVirtualFree MemVirtualFreeEx Min MouseTrap NamedPipes_CallNamedPipe NamedPipes_ConnectNamedPipe NamedPipes_CreateNamedPipe NamedPipes_CreatePipe NamedPipes_DisconnectNamedPipe NamedPipes_GetNamedPipeHandleState NamedPipes_GetNamedPipeInfo NamedPipes_PeekNamedPipe NamedPipes_SetNamedPipeHandleState NamedPipes_TransactNamedPipe NamedPipes_WaitNamedPipe Net_Share_ConnectionEnum Net_Share_FileClose Net_Share_FileEnum Net_Share_FileGetInfo Net_Share_PermStr Net_Share_ResourceStr Net_Share_SessionDel Net_Share_SessionEnum Net_Share_SessionGetInfo Net_Share_ShareAdd Net_Share_ShareCheck Net_Share_ShareDel Net_Share_ShareEnum Net_Share_ShareGetInfo Net_Share_ShareSetInfo Net_Share_StatisticsGetSvr Net_Share_StatisticsGetWrk Now NowCalc NowCalcDate NowDate NowTime PathFull PathGetRelative PathMake PathSplit ProcessGetName ProcessGetPriority Radian ReplaceStringInFile RunDos ScreenCapture_Capture ScreenCapture_CaptureWnd ScreenCapture_SaveImage ScreenCapture_SetBMPFormat ScreenCapture_SetJPGQuality ScreenCapture_SetTIFColorDepth ScreenCapture_SetTIFCompression Security__AdjustTokenPrivileges Security__CreateProcessWithToken Security__DuplicateTokenEx Security__GetAccountSid Security__GetLengthSid Security__GetTokenInformation Security__ImpersonateSelf Security__IsValidSid Security__LookupAccountName Security__LookupAccountSid Security__LookupPrivilegeValue Security__OpenProcessToken Security__OpenThreadToken Security__OpenThreadTokenEx Security__SetPrivilege Security__SetTokenInformation Security__SidToStringSid Security__SidTypeStr Security__StringSidToSid SendMessage SendMessageA SetDate SetTime Singleton SoundClose SoundLength SoundOpen SoundPause SoundPlay SoundPos SoundResume SoundSeek SoundStatus SoundStop SQLite_Changes SQLite_Close SQLite_Display2DResult SQLite_Encode SQLite_ErrCode SQLite_ErrMsg SQLite_Escape SQLite_Exec SQLite_FastEncode SQLite_FastEscape SQLite_FetchData SQLite_FetchNames SQLite_GetTable SQLite_GetTable2d SQLite_LastInsertRowID SQLite_LibVersion SQLite_Open SQLite_Query SQLite_QueryFinalize SQLite_QueryReset SQLite_QuerySingleRow SQLite_SafeMode SQLite_SetTimeout SQLite_Shutdown SQLite_SQLiteExe SQLite_Startup SQLite_TotalChanges StringBetween StringExplode StringInsert StringProper StringRepeat StringTitleCase StringToHex TCPIpToName TempFile TicksToTime Timer_Diff Timer_GetIdleTime Timer_GetTimerID Timer_Init Timer_KillAllTimers Timer_KillTimer Timer_SetTimer TimeToTicks VersionCompare viClose viExecCommand viFindGpib viGpibBusReset viGTL viInteractiveControl viOpen viSetAttribute viSetTimeout WeekNumberISO WinAPI_AbortPath WinAPI_ActivateKeyboardLayout WinAPI_AddClipboardFormatListener WinAPI_AddFontMemResourceEx WinAPI_AddFontResourceEx WinAPI_AddIconOverlay WinAPI_AddIconTransparency WinAPI_AddMRUString WinAPI_AdjustBitmap WinAPI_AdjustTokenPrivileges WinAPI_AdjustWindowRectEx WinAPI_AlphaBlend WinAPI_AngleArc WinAPI_AnimateWindow WinAPI_Arc WinAPI_ArcTo WinAPI_ArrayToStruct WinAPI_AssignProcessToJobObject WinAPI_AssocGetPerceivedType WinAPI_AssocQueryString WinAPI_AttachConsole WinAPI_AttachThreadInput WinAPI_BackupRead WinAPI_BackupReadAbort WinAPI_BackupSeek WinAPI_BackupWrite WinAPI_BackupWriteAbort WinAPI_Beep WinAPI_BeginBufferedPaint WinAPI_BeginDeferWindowPos WinAPI_BeginPaint WinAPI_BeginPath WinAPI_BeginUpdateResource WinAPI_BitBlt WinAPI_BringWindowToTop WinAPI_BroadcastSystemMessage WinAPI_BrowseForFolderDlg WinAPI_BufferedPaintClear WinAPI_BufferedPaintInit WinAPI_BufferedPaintSetAlpha WinAPI_BufferedPaintUnInit WinAPI_CallNextHookEx WinAPI_CallWindowProc WinAPI_CallWindowProcW WinAPI_CascadeWindows WinAPI_ChangeWindowMessageFilterEx WinAPI_CharToOem WinAPI_ChildWindowFromPointEx WinAPI_ClientToScreen WinAPI_ClipCursor WinAPI_CloseDesktop WinAPI_CloseEnhMetaFile WinAPI_CloseFigure WinAPI_CloseHandle WinAPI_CloseThemeData WinAPI_CloseWindow WinAPI_CloseWindowStation WinAPI_CLSIDFromProgID WinAPI_CoInitialize WinAPI_ColorAdjustLuma WinAPI_ColorHLSToRGB WinAPI_ColorRGBToHLS WinAPI_CombineRgn WinAPI_CombineTransform WinAPI_CommandLineToArgv WinAPI_CommDlgExtendedError WinAPI_CommDlgExtendedErrorEx WinAPI_CompareString WinAPI_CompressBitmapBits WinAPI_CompressBuffer WinAPI_ComputeCrc32 WinAPI_ConfirmCredentials WinAPI_CopyBitmap WinAPI_CopyCursor WinAPI_CopyEnhMetaFile WinAPI_CopyFileEx WinAPI_CopyIcon WinAPI_CopyImage WinAPI_CopyRect WinAPI_CopyStruct WinAPI_CoTaskMemAlloc WinAPI_CoTaskMemFree WinAPI_CoTaskMemRealloc WinAPI_CoUninitialize WinAPI_Create32BitHBITMAP WinAPI_Create32BitHICON WinAPI_CreateANDBitmap WinAPI_CreateBitmap WinAPI_CreateBitmapIndirect WinAPI_CreateBrushIndirect WinAPI_CreateBuffer WinAPI_CreateBufferFromStruct WinAPI_CreateCaret WinAPI_CreateColorAdjustment WinAPI_CreateCompatibleBitmap WinAPI_CreateCompatibleBitmapEx WinAPI_CreateCompatibleDC WinAPI_CreateDesktop WinAPI_CreateDIB WinAPI_CreateDIBColorTable WinAPI_CreateDIBitmap WinAPI_CreateDIBSection WinAPI_CreateDirectory WinAPI_CreateDirectoryEx WinAPI_CreateEllipticRgn WinAPI_CreateEmptyIcon WinAPI_CreateEnhMetaFile WinAPI_CreateEvent WinAPI_CreateFile WinAPI_CreateFileEx WinAPI_CreateFileMapping WinAPI_CreateFont WinAPI_CreateFontEx WinAPI_CreateFontIndirect WinAPI_CreateGUID WinAPI_CreateHardLink WinAPI_CreateIcon WinAPI_CreateIconFromResourceEx WinAPI_CreateIconIndirect WinAPI_CreateJobObject WinAPI_CreateMargins WinAPI_CreateMRUList WinAPI_CreateMutex WinAPI_CreateNullRgn WinAPI_CreateNumberFormatInfo WinAPI_CreateObjectID WinAPI_CreatePen WinAPI_CreatePoint WinAPI_CreatePolygonRgn WinAPI_CreateProcess WinAPI_CreateProcessWithToken WinAPI_CreateRect WinAPI_CreateRectEx WinAPI_CreateRectRgn WinAPI_CreateRectRgnIndirect WinAPI_CreateRoundRectRgn WinAPI_CreateSemaphore WinAPI_CreateSize WinAPI_CreateSolidBitmap WinAPI_CreateSolidBrush WinAPI_CreateStreamOnHGlobal WinAPI_CreateString WinAPI_CreateSymbolicLink WinAPI_CreateTransform WinAPI_CreateWindowEx WinAPI_CreateWindowStation WinAPI_DecompressBuffer WinAPI_DecryptFile WinAPI_DeferWindowPos WinAPI_DefineDosDevice WinAPI_DefRawInputProc WinAPI_DefSubclassProc WinAPI_DefWindowProc WinAPI_DefWindowProcW WinAPI_DeleteDC WinAPI_DeleteEnhMetaFile WinAPI_DeleteFile WinAPI_DeleteObject WinAPI_DeleteObjectID WinAPI_DeleteVolumeMountPoint WinAPI_DeregisterShellHookWindow WinAPI_DestroyCaret WinAPI_DestroyCursor WinAPI_DestroyIcon WinAPI_DestroyWindow WinAPI_DeviceIoControl WinAPI_DisplayStruct WinAPI_DllGetVersion WinAPI_DllInstall WinAPI_DllUninstall WinAPI_DPtoLP WinAPI_DragAcceptFiles WinAPI_DragFinish WinAPI_DragQueryFileEx WinAPI_DragQueryPoint WinAPI_DrawAnimatedRects WinAPI_DrawBitmap WinAPI_DrawEdge WinAPI_DrawFocusRect WinAPI_DrawFrameControl WinAPI_DrawIcon WinAPI_DrawIconEx WinAPI_DrawLine WinAPI_DrawShadowText WinAPI_DrawText WinAPI_DrawThemeBackground WinAPI_DrawThemeEdge WinAPI_DrawThemeIcon WinAPI_DrawThemeParentBackground WinAPI_DrawThemeText WinAPI_DrawThemeTextEx WinAPI_DuplicateEncryptionInfoFile WinAPI_DuplicateHandle WinAPI_DuplicateTokenEx WinAPI_DwmDefWindowProc WinAPI_DwmEnableBlurBehindWindow WinAPI_DwmEnableComposition WinAPI_DwmExtendFrameIntoClientArea WinAPI_DwmGetColorizationColor WinAPI_DwmGetColorizationParameters WinAPI_DwmGetWindowAttribute WinAPI_DwmInvalidateIconicBitmaps WinAPI_DwmIsCompositionEnabled WinAPI_DwmQueryThumbnailSourceSize WinAPI_DwmRegisterThumbnail WinAPI_DwmSetColorizationParameters WinAPI_DwmSetIconicLivePreviewBitmap WinAPI_DwmSetIconicThumbnail WinAPI_DwmSetWindowAttribute WinAPI_DwmUnregisterThumbnail WinAPI_DwmUpdateThumbnailProperties WinAPI_DWordToFloat WinAPI_DWordToInt WinAPI_EjectMedia WinAPI_Ellipse WinAPI_EmptyWorkingSet WinAPI_EnableWindow WinAPI_EncryptFile WinAPI_EncryptionDisable WinAPI_EndBufferedPaint WinAPI_EndDeferWindowPos WinAPI_EndPaint WinAPI_EndPath WinAPI_EndUpdateResource WinAPI_EnumChildProcess WinAPI_EnumChildWindows WinAPI_EnumDesktops WinAPI_EnumDesktopWindows WinAPI_EnumDeviceDrivers WinAPI_EnumDisplayDevices WinAPI_EnumDisplayMonitors WinAPI_EnumDisplaySettings WinAPI_EnumDllProc WinAPI_EnumFiles WinAPI_EnumFileStreams WinAPI_EnumFontFamilies WinAPI_EnumHardLinks WinAPI_EnumMRUList WinAPI_EnumPageFiles WinAPI_EnumProcessHandles WinAPI_EnumProcessModules WinAPI_EnumProcessThreads WinAPI_EnumProcessWindows WinAPI_EnumRawInputDevices WinAPI_EnumResourceLanguages WinAPI_EnumResourceNames WinAPI_EnumResourceTypes WinAPI_EnumSystemGeoID WinAPI_EnumSystemLocales WinAPI_EnumUILanguages WinAPI_EnumWindows WinAPI_EnumWindowsPopup WinAPI_EnumWindowStations WinAPI_EnumWindowsTop WinAPI_EqualMemory WinAPI_EqualRect WinAPI_EqualRgn WinAPI_ExcludeClipRect WinAPI_ExpandEnvironmentStrings WinAPI_ExtCreatePen WinAPI_ExtCreateRegion WinAPI_ExtFloodFill WinAPI_ExtractIcon WinAPI_ExtractIconEx WinAPI_ExtSelectClipRgn WinAPI_FatalAppExit WinAPI_FatalExit WinAPI_FileEncryptionStatus WinAPI_FileExists WinAPI_FileIconInit WinAPI_FileInUse WinAPI_FillMemory WinAPI_FillPath WinAPI_FillRect WinAPI_FillRgn WinAPI_FindClose WinAPI_FindCloseChangeNotification WinAPI_FindExecutable WinAPI_FindFirstChangeNotification WinAPI_FindFirstFile WinAPI_FindFirstFileName WinAPI_FindFirstStream WinAPI_FindNextChangeNotification WinAPI_FindNextFile WinAPI_FindNextFileName WinAPI_FindNextStream WinAPI_FindResource WinAPI_FindResourceEx WinAPI_FindTextDlg WinAPI_FindWindow WinAPI_FlashWindow WinAPI_FlashWindowEx WinAPI_FlattenPath WinAPI_FloatToDWord WinAPI_FloatToInt WinAPI_FlushFileBuffers WinAPI_FlushFRBuffer WinAPI_FlushViewOfFile WinAPI_FormatDriveDlg WinAPI_FormatMessage WinAPI_FrameRect WinAPI_FrameRgn WinAPI_FreeLibrary WinAPI_FreeMemory WinAPI_FreeMRUList WinAPI_FreeResource WinAPI_GdiComment WinAPI_GetActiveWindow WinAPI_GetAllUsersProfileDirectory WinAPI_GetAncestor WinAPI_GetApplicationRestartSettings WinAPI_GetArcDirection WinAPI_GetAsyncKeyState WinAPI_GetBinaryType WinAPI_GetBitmapBits WinAPI_GetBitmapDimension WinAPI_GetBitmapDimensionEx WinAPI_GetBkColor WinAPI_GetBkMode WinAPI_GetBoundsRect WinAPI_GetBrushOrg WinAPI_GetBufferedPaintBits WinAPI_GetBufferedPaintDC WinAPI_GetBufferedPaintTargetDC WinAPI_GetBufferedPaintTargetRect WinAPI_GetBValue WinAPI_GetCaretBlinkTime WinAPI_GetCaretPos WinAPI_GetCDType WinAPI_GetClassInfoEx WinAPI_GetClassLongEx WinAPI_GetClassName WinAPI_GetClientHeight WinAPI_GetClientRect WinAPI_GetClientWidth WinAPI_GetClipboardSequenceNumber WinAPI_GetClipBox WinAPI_GetClipCursor WinAPI_GetClipRgn WinAPI_GetColorAdjustment WinAPI_GetCompressedFileSize WinAPI_GetCompression WinAPI_GetConnectedDlg WinAPI_GetCurrentDirectory WinAPI_GetCurrentHwProfile WinAPI_GetCurrentObject WinAPI_GetCurrentPosition WinAPI_GetCurrentProcess WinAPI_GetCurrentProcessExplicitAppUserModelID WinAPI_GetCurrentProcessID WinAPI_GetCurrentThemeName WinAPI_GetCurrentThread WinAPI_GetCurrentThreadId WinAPI_GetCursor WinAPI_GetCursorInfo WinAPI_GetDateFormat WinAPI_GetDC WinAPI_GetDCEx WinAPI_GetDefaultPrinter WinAPI_GetDefaultUserProfileDirectory WinAPI_GetDesktopWindow WinAPI_GetDeviceCaps WinAPI_GetDeviceDriverBaseName WinAPI_GetDeviceDriverFileName WinAPI_GetDeviceGammaRamp WinAPI_GetDIBColorTable WinAPI_GetDIBits WinAPI_GetDiskFreeSpaceEx WinAPI_GetDlgCtrlID WinAPI_GetDlgItem WinAPI_GetDllDirectory WinAPI_GetDriveBusType WinAPI_GetDriveGeometryEx WinAPI_GetDriveNumber WinAPI_GetDriveType WinAPI_GetDurationFormat WinAPI_GetEffectiveClientRect WinAPI_GetEnhMetaFile WinAPI_GetEnhMetaFileBits WinAPI_GetEnhMetaFileDescription WinAPI_GetEnhMetaFileDimension WinAPI_GetEnhMetaFileHeader WinAPI_GetErrorMessage WinAPI_GetErrorMode WinAPI_GetExitCodeProcess WinAPI_GetExtended WinAPI_GetFileAttributes WinAPI_GetFileID WinAPI_GetFileInformationByHandle WinAPI_GetFileInformationByHandleEx WinAPI_GetFilePointerEx WinAPI_GetFileSizeEx WinAPI_GetFileSizeOnDisk WinAPI_GetFileTitle WinAPI_GetFileType WinAPI_GetFileVersionInfo WinAPI_GetFinalPathNameByHandle WinAPI_GetFinalPathNameByHandleEx WinAPI_GetFocus WinAPI_GetFontMemoryResourceInfo WinAPI_GetFontName WinAPI_GetFontResourceInfo WinAPI_GetForegroundWindow WinAPI_GetFRBuffer WinAPI_GetFullPathName WinAPI_GetGeoInfo WinAPI_GetGlyphOutline WinAPI_GetGraphicsMode WinAPI_GetGuiResources WinAPI_GetGUIThreadInfo WinAPI_GetGValue WinAPI_GetHandleInformation WinAPI_GetHGlobalFromStream WinAPI_GetIconDimension WinAPI_GetIconInfo WinAPI_GetIconInfoEx WinAPI_GetIdleTime WinAPI_GetKeyboardLayout WinAPI_GetKeyboardLayoutList WinAPI_GetKeyboardState WinAPI_GetKeyboardType WinAPI_GetKeyNameText WinAPI_GetKeyState WinAPI_GetLastActivePopup WinAPI_GetLastError WinAPI_GetLastErrorMessage WinAPI_GetLayeredWindowAttributes WinAPI_GetLocaleInfo WinAPI_GetLogicalDrives WinAPI_GetMapMode WinAPI_GetMemorySize WinAPI_GetMessageExtraInfo WinAPI_GetModuleFileNameEx WinAPI_GetModuleHandle WinAPI_GetModuleHandleEx WinAPI_GetModuleInformation WinAPI_GetMonitorInfo WinAPI_GetMousePos WinAPI_GetMousePosX WinAPI_GetMousePosY WinAPI_GetMUILanguage WinAPI_GetNumberFormat WinAPI_GetObject WinAPI_GetObjectID WinAPI_GetObjectInfoByHandle WinAPI_GetObjectNameByHandle WinAPI_GetObjectType WinAPI_GetOpenFileName WinAPI_GetOutlineTextMetrics WinAPI_GetOverlappedResult WinAPI_GetParent WinAPI_GetParentProcess WinAPI_GetPerformanceInfo WinAPI_GetPEType WinAPI_GetPhysicallyInstalledSystemMemory WinAPI_GetPixel WinAPI_GetPolyFillMode WinAPI_GetPosFromRect WinAPI_GetPriorityClass WinAPI_GetProcAddress WinAPI_GetProcessAffinityMask WinAPI_GetProcessCommandLine WinAPI_GetProcessFileName WinAPI_GetProcessHandleCount WinAPI_GetProcessID WinAPI_GetProcessIoCounters WinAPI_GetProcessMemoryInfo WinAPI_GetProcessName WinAPI_GetProcessShutdownParameters WinAPI_GetProcessTimes WinAPI_GetProcessUser WinAPI_GetProcessWindowStation WinAPI_GetProcessWorkingDirectory WinAPI_GetProfilesDirectory WinAPI_GetPwrCapabilities WinAPI_GetRawInputBuffer WinAPI_GetRawInputBufferLength WinAPI_GetRawInputData WinAPI_GetRawInputDeviceInfo WinAPI_GetRegionData WinAPI_GetRegisteredRawInputDevices WinAPI_GetRegKeyNameByHandle WinAPI_GetRgnBox WinAPI_GetROP2 WinAPI_GetRValue WinAPI_GetSaveFileName WinAPI_GetShellWindow WinAPI_GetStartupInfo WinAPI_GetStdHandle WinAPI_GetStockObject WinAPI_GetStretchBltMode WinAPI_GetString WinAPI_GetSysColor WinAPI_GetSysColorBrush WinAPI_GetSystemDefaultLangID WinAPI_GetSystemDefaultLCID WinAPI_GetSystemDefaultUILanguage WinAPI_GetSystemDEPPolicy WinAPI_GetSystemInfo WinAPI_GetSystemMetrics WinAPI_GetSystemPowerStatus WinAPI_GetSystemTimes WinAPI_GetSystemWow64Directory WinAPI_GetTabbedTextExtent WinAPI_GetTempFileName WinAPI_GetTextAlign WinAPI_GetTextCharacterExtra WinAPI_GetTextColor WinAPI_GetTextExtentPoint32 WinAPI_GetTextFace WinAPI_GetTextMetrics WinAPI_GetThemeAppProperties WinAPI_GetThemeBackgroundContentRect WinAPI_GetThemeBackgroundExtent WinAPI_GetThemeBackgroundRegion WinAPI_GetThemeBitmap WinAPI_GetThemeBool WinAPI_GetThemeColor WinAPI_GetThemeDocumentationProperty WinAPI_GetThemeEnumValue WinAPI_GetThemeFilename WinAPI_GetThemeFont WinAPI_GetThemeInt WinAPI_GetThemeMargins WinAPI_GetThemeMetric WinAPI_GetThemePartSize WinAPI_GetThemePosition WinAPI_GetThemePropertyOrigin WinAPI_GetThemeRect WinAPI_GetThemeString WinAPI_GetThemeSysBool WinAPI_GetThemeSysColor WinAPI_GetThemeSysColorBrush WinAPI_GetThemeSysFont WinAPI_GetThemeSysInt WinAPI_GetThemeSysSize WinAPI_GetThemeSysString WinAPI_GetThemeTextExtent WinAPI_GetThemeTextMetrics WinAPI_GetThemeTransitionDuration WinAPI_GetThreadDesktop WinAPI_GetThreadErrorMode WinAPI_GetThreadLocale WinAPI_GetThreadUILanguage WinAPI_GetTickCount WinAPI_GetTickCount64 WinAPI_GetTimeFormat WinAPI_GetTopWindow WinAPI_GetUDFColorMode WinAPI_GetUpdateRect WinAPI_GetUpdateRgn WinAPI_GetUserDefaultLangID WinAPI_GetUserDefaultLCID WinAPI_GetUserDefaultUILanguage WinAPI_GetUserGeoID WinAPI_GetUserObjectInformation WinAPI_GetVersion WinAPI_GetVersionEx WinAPI_GetVolumeInformation WinAPI_GetVolumeInformationByHandle WinAPI_GetVolumeNameForVolumeMountPoint WinAPI_GetWindow WinAPI_GetWindowDC WinAPI_GetWindowDisplayAffinity WinAPI_GetWindowExt WinAPI_GetWindowFileName WinAPI_GetWindowHeight WinAPI_GetWindowInfo WinAPI_GetWindowLong WinAPI_GetWindowOrg WinAPI_GetWindowPlacement WinAPI_GetWindowRect WinAPI_GetWindowRgn WinAPI_GetWindowRgnBox WinAPI_GetWindowSubclass WinAPI_GetWindowText WinAPI_GetWindowTheme WinAPI_GetWindowThreadProcessId WinAPI_GetWindowWidth WinAPI_GetWorkArea WinAPI_GetWorldTransform WinAPI_GetXYFromPoint WinAPI_GlobalMemoryStatus WinAPI_GradientFill WinAPI_GUIDFromString WinAPI_GUIDFromStringEx WinAPI_HashData WinAPI_HashString WinAPI_HiByte WinAPI_HideCaret WinAPI_HiDWord WinAPI_HiWord WinAPI_InflateRect WinAPI_InitMUILanguage WinAPI_InProcess WinAPI_IntersectClipRect WinAPI_IntersectRect WinAPI_IntToDWord WinAPI_IntToFloat WinAPI_InvalidateRect WinAPI_InvalidateRgn WinAPI_InvertANDBitmap WinAPI_InvertColor WinAPI_InvertRect WinAPI_InvertRgn WinAPI_IOCTL WinAPI_IsAlphaBitmap WinAPI_IsBadCodePtr WinAPI_IsBadReadPtr WinAPI_IsBadStringPtr WinAPI_IsBadWritePtr WinAPI_IsChild WinAPI_IsClassName WinAPI_IsDoorOpen WinAPI_IsElevated WinAPI_IsHungAppWindow WinAPI_IsIconic WinAPI_IsInternetConnected WinAPI_IsLoadKBLayout WinAPI_IsMemory WinAPI_IsNameInExpression WinAPI_IsNetworkAlive WinAPI_IsPathShared WinAPI_IsProcessInJob WinAPI_IsProcessorFeaturePresent WinAPI_IsRectEmpty WinAPI_IsThemeActive WinAPI_IsThemeBackgroundPartiallyTransparent WinAPI_IsThemePartDefined WinAPI_IsValidLocale WinAPI_IsWindow WinAPI_IsWindowEnabled WinAPI_IsWindowUnicode WinAPI_IsWindowVisible WinAPI_IsWow64Process WinAPI_IsWritable WinAPI_IsZoomed WinAPI_Keybd_Event WinAPI_KillTimer WinAPI_LineDDA WinAPI_LineTo WinAPI_LoadBitmap WinAPI_LoadCursor WinAPI_LoadCursorFromFile WinAPI_LoadIcon WinAPI_LoadIconMetric WinAPI_LoadIconWithScaleDown WinAPI_LoadImage WinAPI_LoadIndirectString WinAPI_LoadKeyboardLayout WinAPI_LoadLibrary WinAPI_LoadLibraryEx WinAPI_LoadMedia WinAPI_LoadResource WinAPI_LoadShell32Icon WinAPI_LoadString WinAPI_LoadStringEx WinAPI_LoByte WinAPI_LocalFree WinAPI_LockDevice WinAPI_LockFile WinAPI_LockResource WinAPI_LockWindowUpdate WinAPI_LockWorkStation WinAPI_LoDWord WinAPI_LongMid WinAPI_LookupIconIdFromDirectoryEx WinAPI_LoWord WinAPI_LPtoDP WinAPI_MAKELANGID WinAPI_MAKELCID WinAPI_MakeLong WinAPI_MakeQWord WinAPI_MakeWord WinAPI_MapViewOfFile WinAPI_MapVirtualKey WinAPI_MaskBlt WinAPI_MessageBeep WinAPI_MessageBoxCheck WinAPI_MessageBoxIndirect WinAPI_MirrorIcon WinAPI_ModifyWorldTransform WinAPI_MonitorFromPoint WinAPI_MonitorFromRect WinAPI_MonitorFromWindow WinAPI_Mouse_Event WinAPI_MoveFileEx WinAPI_MoveMemory WinAPI_MoveTo WinAPI_MoveToEx WinAPI_MoveWindow WinAPI_MsgBox WinAPI_MulDiv WinAPI_MultiByteToWideChar WinAPI_MultiByteToWideCharEx WinAPI_NtStatusToDosError WinAPI_OemToChar WinAPI_OffsetClipRgn WinAPI_OffsetPoints WinAPI_OffsetRect WinAPI_OffsetRgn WinAPI_OffsetWindowOrg WinAPI_OpenDesktop WinAPI_OpenFileById WinAPI_OpenFileDlg WinAPI_OpenFileMapping WinAPI_OpenIcon WinAPI_OpenInputDesktop WinAPI_OpenJobObject WinAPI_OpenMutex WinAPI_OpenProcess WinAPI_OpenProcessToken WinAPI_OpenSemaphore WinAPI_OpenThemeData WinAPI_OpenWindowStation WinAPI_PageSetupDlg WinAPI_PaintDesktop WinAPI_PaintRgn WinAPI_ParseURL WinAPI_ParseUserName WinAPI_PatBlt WinAPI_PathAddBackslash WinAPI_PathAddExtension WinAPI_PathAppend WinAPI_PathBuildRoot WinAPI_PathCanonicalize WinAPI_PathCommonPrefix WinAPI_PathCompactPath WinAPI_PathCompactPathEx WinAPI_PathCreateFromUrl WinAPI_PathFindExtension WinAPI_PathFindFileName WinAPI_PathFindNextComponent WinAPI_PathFindOnPath WinAPI_PathGetArgs WinAPI_PathGetCharType WinAPI_PathGetDriveNumber WinAPI_PathIsContentType WinAPI_PathIsDirectory WinAPI_PathIsDirectoryEmpty WinAPI_PathIsExe WinAPI_PathIsFileSpec WinAPI_PathIsLFNFileSpec WinAPI_PathIsRelative WinAPI_PathIsRoot WinAPI_PathIsSameRoot WinAPI_PathIsSystemFolder WinAPI_PathIsUNC WinAPI_PathIsUNCServer WinAPI_PathIsUNCServerShare WinAPI_PathMakeSystemFolder WinAPI_PathMatchSpec WinAPI_PathParseIconLocation WinAPI_PathRelativePathTo WinAPI_PathRemoveArgs WinAPI_PathRemoveBackslash WinAPI_PathRemoveExtension WinAPI_PathRemoveFileSpec WinAPI_PathRenameExtension WinAPI_PathSearchAndQualify WinAPI_PathSkipRoot WinAPI_PathStripPath WinAPI_PathStripToRoot WinAPI_PathToRegion WinAPI_PathUndecorate WinAPI_PathUnExpandEnvStrings WinAPI_PathUnmakeSystemFolder WinAPI_PathUnquoteSpaces WinAPI_PathYetAnotherMakeUniqueName WinAPI_PickIconDlg WinAPI_PlayEnhMetaFile WinAPI_PlaySound WinAPI_PlgBlt WinAPI_PointFromRect WinAPI_PolyBezier WinAPI_PolyBezierTo WinAPI_PolyDraw WinAPI_Polygon WinAPI_PostMessage WinAPI_PrimaryLangId WinAPI_PrintDlg WinAPI_PrintDlgEx WinAPI_PrintWindow WinAPI_ProgIDFromCLSID WinAPI_PtInRect WinAPI_PtInRectEx WinAPI_PtInRegion WinAPI_PtVisible WinAPI_QueryDosDevice WinAPI_QueryInformationJobObject WinAPI_QueryPerformanceCounter WinAPI_QueryPerformanceFrequency WinAPI_RadialGradientFill WinAPI_ReadDirectoryChanges WinAPI_ReadFile WinAPI_ReadProcessMemory WinAPI_Rectangle WinAPI_RectInRegion WinAPI_RectIsEmpty WinAPI_RectVisible WinAPI_RedrawWindow WinAPI_RegCloseKey WinAPI_RegConnectRegistry WinAPI_RegCopyTree WinAPI_RegCopyTreeEx WinAPI_RegCreateKey WinAPI_RegDeleteEmptyKey WinAPI_RegDeleteKey WinAPI_RegDeleteKeyValue WinAPI_RegDeleteTree WinAPI_RegDeleteTreeEx WinAPI_RegDeleteValue WinAPI_RegDisableReflectionKey WinAPI_RegDuplicateHKey WinAPI_RegEnableReflectionKey WinAPI_RegEnumKey WinAPI_RegEnumValue WinAPI_RegFlushKey WinAPI_RegisterApplicationRestart WinAPI_RegisterClass WinAPI_RegisterClassEx WinAPI_RegisterHotKey WinAPI_RegisterPowerSettingNotification WinAPI_RegisterRawInputDevices WinAPI_RegisterShellHookWindow WinAPI_RegisterWindowMessage WinAPI_RegLoadMUIString WinAPI_RegNotifyChangeKeyValue WinAPI_RegOpenKey WinAPI_RegQueryInfoKey WinAPI_RegQueryLastWriteTime WinAPI_RegQueryMultipleValues WinAPI_RegQueryReflectionKey WinAPI_RegQueryValue WinAPI_RegRestoreKey WinAPI_RegSaveKey WinAPI_RegSetValue WinAPI_ReleaseCapture WinAPI_ReleaseDC WinAPI_ReleaseMutex WinAPI_ReleaseSemaphore WinAPI_ReleaseStream WinAPI_RemoveClipboardFormatListener WinAPI_RemoveDirectory WinAPI_RemoveFontMemResourceEx WinAPI_RemoveFontResourceEx WinAPI_RemoveWindowSubclass WinAPI_ReOpenFile WinAPI_ReplaceFile WinAPI_ReplaceTextDlg WinAPI_ResetEvent WinAPI_RestartDlg WinAPI_RestoreDC WinAPI_RGB WinAPI_RotatePoints WinAPI_RoundRect WinAPI_SaveDC WinAPI_SaveFileDlg WinAPI_SaveHBITMAPToFile WinAPI_SaveHICONToFile WinAPI_ScaleWindowExt WinAPI_ScreenToClient WinAPI_SearchPath WinAPI_SelectClipPath WinAPI_SelectClipRgn WinAPI_SelectObject WinAPI_SendMessageTimeout WinAPI_SetActiveWindow WinAPI_SetArcDirection WinAPI_SetBitmapBits WinAPI_SetBitmapDimensionEx WinAPI_SetBkColor WinAPI_SetBkMode WinAPI_SetBoundsRect WinAPI_SetBrushOrg WinAPI_SetCapture WinAPI_SetCaretBlinkTime WinAPI_SetCaretPos WinAPI_SetClassLongEx WinAPI_SetColorAdjustment WinAPI_SetCompression WinAPI_SetCurrentDirectory WinAPI_SetCurrentProcessExplicitAppUserModelID WinAPI_SetCursor WinAPI_SetDCBrushColor WinAPI_SetDCPenColor WinAPI_SetDefaultPrinter WinAPI_SetDeviceGammaRamp WinAPI_SetDIBColorTable WinAPI_SetDIBits WinAPI_SetDIBitsToDevice WinAPI_SetDllDirectory WinAPI_SetEndOfFile WinAPI_SetEnhMetaFileBits WinAPI_SetErrorMode WinAPI_SetEvent WinAPI_SetFileAttributes WinAPI_SetFileInformationByHandleEx WinAPI_SetFilePointer WinAPI_SetFilePointerEx WinAPI_SetFileShortName WinAPI_SetFileValidData WinAPI_SetFocus WinAPI_SetFont WinAPI_SetForegroundWindow WinAPI_SetFRBuffer WinAPI_SetGraphicsMode WinAPI_SetHandleInformation WinAPI_SetInformationJobObject WinAPI_SetKeyboardLayout WinAPI_SetKeyboardState WinAPI_SetLastError WinAPI_SetLayeredWindowAttributes WinAPI_SetLocaleInfo WinAPI_SetMapMode WinAPI_SetMessageExtraInfo WinAPI_SetParent WinAPI_SetPixel WinAPI_SetPolyFillMode WinAPI_SetPriorityClass WinAPI_SetProcessAffinityMask WinAPI_SetProcessShutdownParameters WinAPI_SetProcessWindowStation WinAPI_SetRectRgn WinAPI_SetROP2 WinAPI_SetSearchPathMode WinAPI_SetStretchBltMode WinAPI_SetSysColors WinAPI_SetSystemCursor WinAPI_SetTextAlign WinAPI_SetTextCharacterExtra WinAPI_SetTextColor WinAPI_SetTextJustification WinAPI_SetThemeAppProperties WinAPI_SetThreadDesktop WinAPI_SetThreadErrorMode WinAPI_SetThreadExecutionState WinAPI_SetThreadLocale WinAPI_SetThreadUILanguage WinAPI_SetTimer WinAPI_SetUDFColorMode WinAPI_SetUserGeoID WinAPI_SetUserObjectInformation WinAPI_SetVolumeMountPoint WinAPI_SetWindowDisplayAffinity WinAPI_SetWindowExt WinAPI_SetWindowLong WinAPI_SetWindowOrg WinAPI_SetWindowPlacement WinAPI_SetWindowPos WinAPI_SetWindowRgn WinAPI_SetWindowsHookEx WinAPI_SetWindowSubclass WinAPI_SetWindowText WinAPI_SetWindowTheme WinAPI_SetWinEventHook WinAPI_SetWorldTransform WinAPI_SfcIsFileProtected WinAPI_SfcIsKeyProtected WinAPI_ShellAboutDlg WinAPI_ShellAddToRecentDocs WinAPI_ShellChangeNotify WinAPI_ShellChangeNotifyDeregister WinAPI_ShellChangeNotifyRegister WinAPI_ShellCreateDirectory WinAPI_ShellEmptyRecycleBin WinAPI_ShellExecute WinAPI_ShellExecuteEx WinAPI_ShellExtractAssociatedIcon WinAPI_ShellExtractIcon WinAPI_ShellFileOperation WinAPI_ShellFlushSFCache WinAPI_ShellGetFileInfo WinAPI_ShellGetIconOverlayIndex WinAPI_ShellGetImageList WinAPI_ShellGetKnownFolderIDList WinAPI_ShellGetKnownFolderPath WinAPI_ShellGetLocalizedName WinAPI_ShellGetPathFromIDList WinAPI_ShellGetSetFolderCustomSettings WinAPI_ShellGetSettings WinAPI_ShellGetSpecialFolderLocation WinAPI_ShellGetSpecialFolderPath WinAPI_ShellGetStockIconInfo WinAPI_ShellILCreateFromPath WinAPI_ShellNotifyIcon WinAPI_ShellNotifyIconGetRect WinAPI_ShellObjectProperties WinAPI_ShellOpenFolderAndSelectItems WinAPI_ShellOpenWithDlg WinAPI_ShellQueryRecycleBin WinAPI_ShellQueryUserNotificationState WinAPI_ShellRemoveLocalizedName WinAPI_ShellRestricted WinAPI_ShellSetKnownFolderPath WinAPI_ShellSetLocalizedName WinAPI_ShellSetSettings WinAPI_ShellStartNetConnectionDlg WinAPI_ShellUpdateImage WinAPI_ShellUserAuthenticationDlg WinAPI_ShellUserAuthenticationDlgEx WinAPI_ShortToWord WinAPI_ShowCaret WinAPI_ShowCursor WinAPI_ShowError WinAPI_ShowLastError WinAPI_ShowMsg WinAPI_ShowOwnedPopups WinAPI_ShowWindow WinAPI_ShutdownBlockReasonCreate WinAPI_ShutdownBlockReasonDestroy WinAPI_ShutdownBlockReasonQuery WinAPI_SizeOfResource WinAPI_StretchBlt WinAPI_StretchDIBits WinAPI_StrFormatByteSize WinAPI_StrFormatByteSizeEx WinAPI_StrFormatKBSize WinAPI_StrFromTimeInterval WinAPI_StringFromGUID WinAPI_StringLenA WinAPI_StringLenW WinAPI_StrLen WinAPI_StrokeAndFillPath WinAPI_StrokePath WinAPI_StructToArray WinAPI_SubLangId WinAPI_SubtractRect WinAPI_SwapDWord WinAPI_SwapQWord WinAPI_SwapWord WinAPI_SwitchColor WinAPI_SwitchDesktop WinAPI_SwitchToThisWindow WinAPI_SystemParametersInfo WinAPI_TabbedTextOut WinAPI_TerminateJobObject WinAPI_TerminateProcess WinAPI_TextOut WinAPI_TileWindows WinAPI_TrackMouseEvent WinAPI_TransparentBlt WinAPI_TwipsPerPixelX WinAPI_TwipsPerPixelY WinAPI_UnhookWindowsHookEx WinAPI_UnhookWinEvent WinAPI_UnionRect WinAPI_UnionStruct WinAPI_UniqueHardwareID WinAPI_UnloadKeyboardLayout WinAPI_UnlockFile WinAPI_UnmapViewOfFile WinAPI_UnregisterApplicationRestart WinAPI_UnregisterClass WinAPI_UnregisterHotKey WinAPI_UnregisterPowerSettingNotification WinAPI_UpdateLayeredWindow WinAPI_UpdateLayeredWindowEx WinAPI_UpdateLayeredWindowIndirect WinAPI_UpdateResource WinAPI_UpdateWindow WinAPI_UrlApplyScheme WinAPI_UrlCanonicalize WinAPI_UrlCombine WinAPI_UrlCompare WinAPI_UrlCreateFromPath WinAPI_UrlFixup WinAPI_UrlGetPart WinAPI_UrlHash WinAPI_UrlIs WinAPI_UserHandleGrantAccess WinAPI_ValidateRect WinAPI_ValidateRgn WinAPI_VerQueryRoot WinAPI_VerQueryValue WinAPI_VerQueryValueEx WinAPI_WaitForInputIdle WinAPI_WaitForMultipleObjects WinAPI_WaitForSingleObject WinAPI_WideCharToMultiByte WinAPI_WidenPath WinAPI_WindowFromDC WinAPI_WindowFromPoint WinAPI_WordToShort WinAPI_Wow64EnableWow64FsRedirection WinAPI_WriteConsole WinAPI_WriteFile WinAPI_WriteProcessMemory WinAPI_ZeroMemory WinNet_AddConnection WinNet_AddConnection2 WinNet_AddConnection3 WinNet_CancelConnection WinNet_CancelConnection2 WinNet_CloseEnum WinNet_ConnectionDialog WinNet_ConnectionDialog1 WinNet_DisconnectDialog WinNet_DisconnectDialog1 WinNet_EnumResource WinNet_GetConnection WinNet_GetConnectionPerformance WinNet_GetLastError WinNet_GetNetworkInformation WinNet_GetProviderName WinNet_GetResourceInformation WinNet_GetResourceParent WinNet_GetUniversalName WinNet_GetUser WinNet_OpenEnum WinNet_RestoreConnection WinNet_UseConnection Word_Create Word_DocAdd Word_DocAttach Word_DocClose Word_DocExport Word_DocFind Word_DocFindReplace Word_DocGet Word_DocLinkAdd Word_DocLinkGet Word_DocOpen Word_DocPictureAdd Word_DocPrint Word_DocRangeSet Word_DocSave Word_DocSaveAs Word_DocTableRead Word_DocTableWrite Word_Quit",e={
 variants:[a.COMMENT(";","$",{relevance:0}),a.COMMENT("#cs","#ce"),a.COMMENT("#comments-start","#comments-end")]},f={className:"variable",begin:"\\$[A-z0-9_]+"},g={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},h={variants:[a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]},i={className:"preprocessor",begin:"#",end:"$",keywords:"include include-once NoTrayIcon OnAutoItStartRegister RequireAdmin pragma Au3Stripper_Ignore_Funcs Au3Stripper_Ignore_Variables Au3Stripper_Off Au3Stripper_On Au3Stripper_Parameters AutoIt3Wrapper_Add_Constants AutoIt3Wrapper_Au3Check_Parameters AutoIt3Wrapper_Au3Check_Stop_OnWarning AutoIt3Wrapper_Aut2Exe AutoIt3Wrapper_AutoIt3 AutoIt3Wrapper_AutoIt3Dir AutoIt3Wrapper_Change2CUI AutoIt3Wrapper_Compile_Both AutoIt3Wrapper_Compression AutoIt3Wrapper_EndIf AutoIt3Wrapper_Icon AutoIt3Wrapper_If_Compile AutoIt3Wrapper_If_Run AutoIt3Wrapper_Jump_To_First_Error AutoIt3Wrapper_OutFile AutoIt3Wrapper_OutFile_Type AutoIt3Wrapper_OutFile_X64 AutoIt3Wrapper_PlugIn_Funcs AutoIt3Wrapper_Res_Comment Autoit3Wrapper_Res_Compatibility AutoIt3Wrapper_Res_Description AutoIt3Wrapper_Res_Field AutoIt3Wrapper_Res_File_Add AutoIt3Wrapper_Res_FileVersion AutoIt3Wrapper_Res_FileVersion_AutoIncrement AutoIt3Wrapper_Res_Icon_Add AutoIt3Wrapper_Res_Language AutoIt3Wrapper_Res_LegalCopyright AutoIt3Wrapper_Res_ProductVersion AutoIt3Wrapper_Res_requestedExecutionLevel AutoIt3Wrapper_Res_SaveSource AutoIt3Wrapper_Run_After AutoIt3Wrapper_Run_Au3Check AutoIt3Wrapper_Run_Au3Stripper AutoIt3Wrapper_Run_Before AutoIt3Wrapper_Run_Debug_Mode AutoIt3Wrapper_Run_SciTE_Minimized AutoIt3Wrapper_Run_SciTE_OutputPane_Minimized AutoIt3Wrapper_Run_Tidy AutoIt3Wrapper_ShowProgress AutoIt3Wrapper_Testing AutoIt3Wrapper_Tidy_Stop_OnError AutoIt3Wrapper_UPX_Parameters AutoIt3Wrapper_UseUPX AutoIt3Wrapper_UseX64 AutoIt3Wrapper_Version AutoIt3Wrapper_Versioning AutoIt3Wrapper_Versioning_Parameters Tidy_Off Tidy_On Tidy_Parameters EndRegion Region",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[g,{className:"string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},g,e]},j={className:"constant",begin:"@[A-z0-9_]+"},k={className:"function",beginKeywords:"Func",end:"$",excludeEnd:!0,illegal:"\\$|\\[|%",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[f,g,h]}]};return{case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:b,built_in:d,literal:c},contains:[e,f,g,h,i,j,k]}}),a.registerLanguage("avrasm",function(a){return{case_insensitive:!0,lexemes:"\\.?"+a.IDENT_RE,keywords:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",preprocessor:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},contains:[a.C_BLOCK_COMMENT_MODE,a.COMMENT(";","$",{relevance:0}),a.C_NUMBER_MODE,a.BINARY_NUMBER_MODE,{className:"number",begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},a.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"label",begin:"^[A-Za-z0-9_.$]+:"},{className:"preprocessor",begin:"#",end:"$"},{className:"localvars",begin:"@[0-9]+"}]}}),a.registerLanguage("axapta",function(a){return{keywords:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$"},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:":",contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]}]}}),a.registerLanguage("bash",function(a){var b={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},c={className:"string",begin:/"/,end:/"/,contains:[a.BACKSLASH_ESCAPE,b,{className:"variable",begin:/\$\(/,end:/\)/,contains:[a.BACKSLASH_ESCAPE]}]},d={className:"string",begin:/'/,end:/'/};return{aliases:["sh","zsh"],lexemes:/-?[a-z\.]+/,keywords:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"shebang",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[a.inherit(a.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},a.HASH_COMMENT_MODE,a.NUMBER_MODE,c,d,b]}}),a.registerLanguage("brainfuck",function(a){var b={className:"literal",begin:"[\\+\\-]",relevance:0};return{aliases:["bf"],contains:[a.COMMENT("[^\\[\\]\\.,\\+\\-<> \r\n]","[\\[\\]\\.,\\+\\-<> \r\n]",{returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/\+\+|\-\-/,returnBegin:!0,contains:[b]},b]}}),a.registerLanguage("cal",function(a){var b="div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to until while with var",c="false true",d=[a.C_LINE_COMMENT_MODE,a.COMMENT(/\{/,/\}/,{relevance:0}),a.COMMENT(/\(\*/,/\*\)/,{relevance:10})],e={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},f={className:"string",begin:/(#\d+)+/},g={className:"date",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},h={className:"variable",begin:'"',end:'"'},i={className:"function",beginKeywords:"procedure",end:/[:;]/,keywords:"procedure|10",contains:[a.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:b,contains:[e,f]}].concat(d)},j={className:"class",begin:"OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)",returnBegin:!0,contains:[a.TITLE_MODE,i]};return{case_insensitive:!0,keywords:{keyword:b,literal:c},illegal:/\/\*/,contains:[e,f,g,h,a.NUMBER_MODE,j,i]}}),a.registerLanguage("capnproto",function(a){return{aliases:["capnp"],keywords:{keyword:"struct enum interface union group import using const annotation extends in of on as with from fixed",built_in:"Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 Text Data AnyPointer AnyStruct Capability List",literal:"true false"},contains:[a.QUOTE_STRING_MODE,a.NUMBER_MODE,a.HASH_COMMENT_MODE,{className:"shebang",begin:/@0x[\w\d]{16};/,illegal:/\n/},{className:"number",begin:/@\d+\b/},{className:"class",beginKeywords:"struct enum",end:/\{/,illegal:/\n/,contains:[a.inherit(a.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"class",beginKeywords:"interface",end:/\{/,illegal:/\n/,contains:[a.inherit(a.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]}]}}),a.registerLanguage("ceylon",function(a){var b="assembly module package import alias class interface object given value assign void function new of extends satisfies abstracts in out return break continue throw assert dynamic if else switch case for while try catch finally then let this outer super is exists nonempty",c="shared abstract formal default actual variable late native deprecatedfinal sealed annotation suppressWarnings small",d="doc by license see throws tagged",e=c+" "+d,f={className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:b,relevance:10},g=[{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[f]},{className:"string",begin:"'",end:"'"},{className:"number",begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",relevance:0}];return f.contains=g,{keywords:{keyword:b,annotation:e},illegal:"\\$[^01]|#[^0-9a-fA-F]",contains:[a.C_LINE_COMMENT_MODE,a.COMMENT("/\\*","\\*/",{contains:["self"]}),{className:"annotation",begin:'@[a-z]\\w*(?:\\:"[^"]*")?'}].concat(g)}}),a.registerLanguage("clojure",function(a){var b={built_in:"def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},c="a-zA-Z_\\-!.?+*=<>&#'",d="["+c+"]["+c+"0-9/;:]*",e="[-+]?\\d+(\\.\\d+)?",f={begin:d,relevance:0},g={className:"number",begin:e,relevance:0},h=a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),i=a.COMMENT(";","$",{relevance:0}),j={className:"literal",begin:/\b(true|false|nil)\b/},k={className:"collection",begin:"[\\[\\{]",end:"[\\]\\}]"},l={className:"comment",begin:"\\^"+d},m=a.COMMENT("\\^\\{","\\}"),n={className:"attribute",begin:"[:]"+d},o={className:"list",begin:"\\(",end:"\\)"},p={endsWithParent:!0,relevance:0},q={keywords:b,lexemes:d,className:"keyword",begin:d,starts:p},r=[o,h,l,m,i,n,k,g,j,f];return o.contains=[a.COMMENT("comment",""),q,p],p.contains=r,k.contains=r,{aliases:["clj"],illegal:/\S/,contains:[o,h,l,m,i,n,k,g,j]}}),a.registerLanguage("clojure-repl",function(a){return{contains:[{className:"prompt",begin:/^([\w.-]+|\s*#_)=>/,starts:{end:/$/,subLanguage:"clojure"}}]}}),a.registerLanguage("cmake",function(a){return{aliases:["cmake.in"],case_insensitive:!0,keywords:{keyword:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or",operator:"equal less greater strless strgreater strequal matches"},contains:[{className:"envvar",begin:"\\${",end:"}"},a.HASH_COMMENT_MODE,a.QUOTE_STRING_MODE,a.NUMBER_MODE]}}),a.registerLanguage("coffeescript",function(a){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},c="[A-Za-z$_][0-9A-Za-z$_]*",d={className:"subst",begin:/#\{/,end:/}/,keywords:b},e=[a.BINARY_NUMBER_MODE,a.inherit(a.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[a.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[a.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[a.BACKSLASH_ESCAPE,d]},{begin:/"/,end:/"/,contains:[a.BACKSLASH_ESCAPE,d]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[d,a.HASH_COMMENT_MODE]},{begin:"//[gim]*",relevance:0},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{className:"property",begin:"@"+c},{begin:"`",end:"`",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];d.contains=e;var f=a.inherit(a.TITLE_MODE,{begin:c}),g="(\\(.*\\))?\\s*\\B[-=]>",h={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:b,contains:["self"].concat(e)}]};return{aliases:["coffee","cson","iced"],keywords:b,illegal:/\/\*/,contains:e.concat([a.COMMENT("###","###"),a.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+c+"\\s*=\\s*"+g,end:"[-=]>",returnBegin:!0,contains:[f,h]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:g,end:"[-=]>",returnBegin:!0,contains:[h]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[f]},f]},{className:"attribute",begin:c+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}),a.registerLanguage("cpp",function(a){var b={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",variants:[a.inherit(a.QUOTE_STRING_MODE,{begin:'((u8?|U)|L)?"'}),{begin:'(u8?|U)?R"',end:'"',contains:[a.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",end:"'",illegal:"."}]},d={className:"number",variants:[{begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},{begin:a.C_NUMBER_RE}]},e={className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line pragma ifdef ifndef",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[c,{className:"string",begin:"<",end:">",illegal:"\\n"}]},c,d,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},f=a.IDENT_RE+"\\s*\\(",g={keyword:"int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong",built_in:"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf",literal:"true false nullptr NULL"};return{aliases:["c","cc","h","c++","h++","hpp"],keywords:g,illegal:"</",contains:[b,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,d,c,e,{begin:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",end:">",keywords:g,contains:["self",b]},{begin:a.IDENT_RE+"::",keywords:g},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"("+a.IDENT_RE+"[\\*&\\s]+)+"+f,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:g,illegal:/[^\w\s\*&]/,contains:[{begin:f,returnBegin:!0,contains:[a.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:g,relevance:0,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,c,d]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,e]}]}}),a.registerLanguage("crmsh",function(a){var b="primitive rsc_template",c="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml",d="property rsc_defaults op_defaults",e="params meta operations op rule attributes utilization",f="read write deny defined not_defined in_range date spec in ref reference attribute type xpath version and or lt gt tag lte gte eq ne \\",g="number string",h="Master Started Slave Stopped start promote demote stop monitor true false";return{aliases:["crm","pcmk"],case_insensitive:!0,keywords:{keyword:e,operator:f,type:g,literal:h},contains:[a.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{className:"identifier",end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}}},{beginKeywords:b,starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*",starts:{className:"pragma",end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{begin:"\\b("+c.split(" ").join("|")+")\\s+",keywords:c,starts:{className:"title",end:"[\\$\\w_][\\w_-]*"}},{beginKeywords:d,starts:{className:"title",end:"\\s*([\\w_-]+:)?"}},a.QUOTE_STRING_MODE,{className:"pragma",begin:"(ocf|systemd|service|lsb):[\\w_:-]+",relevance:0},{className:"number",begin:"\\b\\d+(\\.\\d+)?(ms|s|h|m)?",relevance:0},{className:"number",begin:"[-]?(infinity|inf)",relevance:0},{className:"variable",begin:/([A-Za-z\$_\#][\w_-]+)=/,relevance:0},{className:"tag",begin:"</?",end:"/?>",relevance:0}]}}),a.registerLanguage("crystal",function(a){function b(a,b){var c=[{begin:a,end:b}];return c[0].contains=c,c}var c="(_[uif](8|16|32|64))?",d="[a-zA-Z_]\\w*[!?=]?",e="!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",f="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?",g={keyword:"abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? return require self sizeof struct super then type typeof union unless until when while with yield __DIR__ __FILE__ __LINE__",literal:"false nil true"},h={className:"subst",begin:"#{",end:"}",keywords:g},i={className:"expansion",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:g,relevance:10},j={className:"string",contains:[a.BACKSLASH_ESCAPE,h],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%w?\\(",end:"\\)",contains:b("\\(","\\)")},{begin:"%w?\\[",end:"\\]",contains:b("\\[","\\]")},{begin:"%w?{",end:"}",contains:b("{","}")},{begin:"%w?<",end:">",contains:b("<",">")},{begin:"%w?/",end:"/"},{begin:"%w?%",end:"%"},{begin:"%w?-",end:"-"},{begin:"%w?\\|",end:"\\|"}],relevance:0},k={begin:"("+e+")\\s*",contains:[{className:"regexp",contains:[a.BACKSLASH_ESCAPE,h],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\(",end:"\\)",contains:b("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:b("\\[","\\]")},{begin:"%r{",end:"}",contains:b("{","}")},{begin:"%r<",end:">",contains:b("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}]}],relevance:0},l={className:"regexp",contains:[a.BACKSLASH_ESCAPE,h],variants:[{begin:"%r\\(",end:"\\)",contains:b("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:b("\\[","\\]")},{begin:"%r{",end:"}",contains:b("{","}")},{begin:"%r<",end:">",contains:b("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}],relevance:0},m={className:"annotation",begin:"@\\[",end:"\\]",relevance:5},n=[i,j,k,l,m,a.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[a.HASH_COMMENT_MODE,a.inherit(a.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{className:"inheritance",begin:"<\\s*",contains:[{className:"parent",begin:"("+a.IDENT_RE+"::)?"+a.IDENT_RE}]}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[a.HASH_COMMENT_MODE,a.inherit(a.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"})],relevance:10},{className:"function",beginKeywords:"def",end:/\B\b/,contains:[a.inherit(a.TITLE_MODE,{begin:f,endsParent:!0})]},{className:"function",beginKeywords:"fun macro",end:/\B\b/,contains:[a.inherit(a.TITLE_MODE,{begin:f,endsParent:!0})],relevance:5},{className:"constant",begin:"(::)?(\\b[A-Z]\\w*(::)?)+",relevance:0},{className:"symbol",begin:a.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[j,{begin:f}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]*[01])"+c},{begin:"\\b0o([0-7_]*[0-7])"+c},{begin:"\\b0x([A-Fa-f0-9_]*[A-Fa-f0-9])"+c},{begin:"\\b(([0-9][0-9_]*[0-9]|[0-9])(\\.[0-9_]*[0-9])?([eE][+-]?[0-9_]*[0-9])?)"+c}],relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?|%)(\\w+))"}];return h.contains=n,m.contains=n,i.contains=n.slice(1),{aliases:["cr"],lexemes:d,keywords:g,contains:n}}),a.registerLanguage("cs",function(a){var b="abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long null when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async protected public private internal ascending descending from get group into join let orderby partial select set value var where yield",c=a.IDENT_RE+"(<"+a.IDENT_RE+">)?";return{aliases:["csharp"],keywords:b,illegal:/::/,contains:[a.COMMENT("///","$",{returnBegin:!0,contains:[{className:"xmlDocTag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line region endregion pragma checksum"},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:]/,contains:[a.TITLE_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[{className:"title",begin:"[a-zA-Z](\\.?\\w)*",relevance:0},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new return throw await",relevance:0},{className:"function",begin:"("+c+"\\s+)+"+a.IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:b,contains:[{begin:a.IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[a.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:b,relevance:0,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}]}}),a.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*",c={className:"function",begin:b+"\\(",returnBegin:!0,excludeEnd:!0,end:"\\("},d={className:"rule",begin:/[A-Z\_\.\-]+\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{className:"value",endsWithParent:!0,excludeEnd:!0,contains:[c,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,a.C_BLOCK_COMMENT_MODE,{className:"hexcolor",begin:"#[0-9A-Fa-f]+"},{className:"important",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[a.C_BLOCK_COMMENT_MODE,{className:"id",begin:/\#[A-Za-z0-9_-]+/},{className:"class",begin:/\.[A-Za-z0-9_-]+/},{className:"attr_selector",begin:/\[/,end:/\]/,illegal:"$"},{className:"pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/},{className:"at_rule",begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{className:"at_rule",begin:"@",end:"[{;]",contains:[{className:"keyword",begin:/\S+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[c,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.CSS_NUMBER_MODE]}]},{className:"tag",begin:b,relevance:0},{className:"rules",begin:"{",end:"}",illegal:/\S/,contains:[a.C_BLOCK_COMMENT_MODE,d]}]}}),a.registerLanguage("d",function(a){var b={keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},c="(0|[1-9][\\d_]*)",d="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",e="0[bB][01_]+",f="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",g="0[xX]"+f,h="([eE][+-]?"+d+")",i="("+d+"(\\.\\d*|"+h+")|\\d+\\."+d+d+"|\\."+c+h+"?)",j="(0[xX]("+f+"\\."+f+"|\\.?"+f+")[pP][+-]?"+d+")",k="("+c+"|"+e+"|"+g+")",l="("+j+"|"+i+")",m="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",n={className:"number",begin:"\\b"+k+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},o={className:"number",begin:"\\b("+l+"([fF]|L|i|[fF]i|Li)?|"+k+"(i|[fF]i|Li))",relevance:0},p={className:"string",begin:"'("+m+"|.)",end:"'",illegal:"."},q={begin:m,relevance:0},r={className:"string",begin:'"',contains:[q],end:'"[cwd]?'},s={className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},t={className:"string",begin:"`",end:"`[cwd]?"},u={className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},v={className:"string",begin:'q"\\{',end:'\\}"'},w={className:"shebang",begin:"^#!",end:"$",relevance:5},x={className:"preprocessor",begin:"#(line)",end:"$",relevance:5},y={className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"},z=a.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{lexemes:a.UNDERSCORE_IDENT_RE,keywords:b,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,z,u,r,s,t,v,o,n,p,w,x,y]}}),a.registerLanguage("markdown",function(a){return{aliases:["md","mkdown","mkd"],contains:[{className:"header",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"blockquote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"`.+?`"},{begin:"^( {4}|       )",end:"$",relevance:0}]},{className:"horizontal_rule",begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"link_label",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link_url",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"link_reference",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:"^\\[.+\\]:",returnBegin:!0,contains:[{className:"link_reference",begin:"\\[",end:"\\]:",excludeBegin:!0,excludeEnd:!0,starts:{className:"link_url",end:"$"}}]}]}}),a.registerLanguage("dart",function(a){var b={className:"subst",begin:"\\$\\{",end:"}",keywords:"true false null this is new super"},c={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{
 begin:'r"',end:'"',illegal:"\\n"},{begin:"'''",end:"'''",contains:[a.BACKSLASH_ESCAPE,b]},{begin:'"""',end:'"""',contains:[a.BACKSLASH_ESCAPE,b]},{begin:"'",end:"'",illegal:"\\n",contains:[a.BACKSLASH_ESCAPE,b]},{begin:'"',end:'"',illegal:"\\n",contains:[a.BACKSLASH_ESCAPE,b]}]};b.contains=[a.C_NUMBER_MODE,c];var d={keyword:"assert break case catch class const continue default do else enum extends false final finally for if in is new null rethrow return super switch this throw true try var void while with",literal:"abstract as dynamic export external factory get implements import library operator part set static typedef",built_in:"print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num document window querySelector querySelectorAll Element ElementList"};return{keywords:d,contains:[c,a.COMMENT("/\\*\\*","\\*/",{subLanguage:"markdown"}),a.COMMENT("///","$",{subLanguage:"markdown"}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},a.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"},{begin:"=>"}]}}),a.registerLanguage("delphi",function(a){var b="exports register file shl array record property for mod while set ally label uses raise not stored class safecall var interface or private static exit index inherited to else stdcall override shr asm far resourcestring finalization packed virtual out and protected library do xorwrite goto near function end div overload object unit begin string on inline repeat until destructor write message program with read initialization except default nil if case cdecl in downto threadvar of try pascal const external constructor type public then implementation finally published procedure",c=[a.C_LINE_COMMENT_MODE,a.COMMENT(/\{/,/\}/,{relevance:0}),a.COMMENT(/\(\*/,/\*\)/,{relevance:10})],d={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},e={className:"string",begin:/(#\d+)+/},f={begin:a.IDENT_RE+"\\s*=\\s*class\\s*\\(",returnBegin:!0,contains:[a.TITLE_MODE]},g={className:"function",beginKeywords:"function constructor destructor procedure",end:/[:;]/,keywords:"function constructor|10 destructor|10 procedure|10",contains:[a.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:b,contains:[d,e]}].concat(c)};return{case_insensitive:!0,keywords:b,illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[d,e,a.NUMBER_MODE,f,g].concat(c)}}),a.registerLanguage("diff",function(a){return{aliases:["patch"],contains:[{className:"chunk",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"header",variants:[{begin:/Index: /,end:/$/},{begin:/=====/,end:/=====$/},{begin:/^\-\-\-/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+\+\+/,end:/$/},{begin:/\*{5}/,end:/\*{5}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"change",begin:"^\\!",end:"$"}]}}),a.registerLanguage("django",function(a){var b={className:"filter",begin:/\|[A-Za-z]+:?/,keywords:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",contains:[{className:"argument",begin:/"/,end:/"/},{className:"argument",begin:/'/,end:/'/}]};return{aliases:["jinja"],case_insensitive:!0,subLanguage:"xml",contains:[a.COMMENT(/\{%\s*comment\s*%}/,/\{%\s*endcomment\s*%}/),a.COMMENT(/\{#/,/#}/),{className:"template_tag",begin:/\{%/,end:/%}/,keywords:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",contains:[b]},{className:"variable",begin:/\{\{/,end:/}}/,contains:[b]}]}}),a.registerLanguage("dns",function(a){return{aliases:["bind","zone"],keywords:{keyword:"IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT"},contains:[a.COMMENT(";","$"),{className:"operator",beginKeywords:"$TTL $GENERATE $INCLUDE $ORIGIN"},{className:"number",begin:"((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))"},{className:"number",begin:"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])"}]}}),a.registerLanguage("dockerfile",function(a){return{aliases:["docker"],case_insensitive:!0,keywords:{built_ins:"from maintainer cmd expose add copy entrypoint volume user workdir onbuild run env label"},contains:[a.HASH_COMMENT_MODE,{keywords:{built_in:"run cmd entrypoint volume add copy workdir onbuild label"},begin:/^ *(onbuild +)?(run|cmd|entrypoint|volume|add|copy|workdir|label) +/,starts:{end:/[^\\]\n/,subLanguage:"bash"}},{keywords:{built_in:"from maintainer expose env user onbuild"},begin:/^ *(onbuild +)?(from|maintainer|expose|env|user|onbuild) +/,end:/[^\\]\n/,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.NUMBER_MODE,a.HASH_COMMENT_MODE]}]}}),a.registerLanguage("dos",function(a){var b=a.COMMENT(/@?rem\b/,/$/,{relevance:10}),c={className:"label",begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",relevance:0};return{aliases:["bat","cmd"],case_insensitive:!0,illegal:/\/\*/,keywords:{flow:"if else goto for in do call exit not exist errorlevel defined",operator:"equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping net ipconfig taskkill xcopy ren del",built_in:"append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color comp compact convert date dir diskcomp diskcopy doskey erase fs find findstr format ftype graftabl help keyb label md mkdir mode more move path pause print popd pushd promt rd recover rem rename replace restore rmdir shiftsort start subst time title tree type ver verify vol"},contains:[{className:"envvar",begin:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{className:"function",begin:c.begin,end:"goto:eof",contains:[a.inherit(a.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),b]},{className:"number",begin:"\\b\\d+",relevance:0},b]}}),a.registerLanguage("dust",function(a){var b="if eq ne lt lte gt gte select default math sep";return{aliases:["dst"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"expression",begin:"{",end:"}",relevance:0,contains:[{className:"begin-block",begin:"#[a-zA-Z- .]+",keywords:b},{className:"string",begin:'"',end:'"'},{className:"end-block",begin:"\\/[a-zA-Z- .]+",keywords:b},{className:"variable",begin:"[a-zA-Z-.]+",keywords:b,relevance:0}]}]}}),a.registerLanguage("elixir",function(a){var b="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",c="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",d="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",e={className:"subst",begin:"#\\{",end:"}",lexemes:b,keywords:d},f={className:"string",contains:[a.BACKSLASH_ESCAPE,e],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},g={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[a.inherit(a.TITLE_MODE,{begin:b,endsParent:!0})]},h=a.inherit(g,{className:"class",beginKeywords:"defmodule defrecord",end:/\bdo\b|$|;/}),i=[f,a.HASH_COMMENT_MODE,h,g,{className:"constant",begin:"(\\b[A-Z_]\\w*(.)?)+",relevance:0},{className:"symbol",begin:":",contains:[f,{begin:c}],relevance:0},{className:"symbol",begin:b+":",relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"->"},{begin:"("+a.RE_STARTERS_RE+")\\s*",contains:[a.HASH_COMMENT_MODE,{className:"regexp",illegal:"\\n",contains:[a.BACKSLASH_ESCAPE,e],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return e.contains=i,{lexemes:b,keywords:d,contains:i}}),a.registerLanguage("elm",function(a){var b=[a.COMMENT("--","$"),a.COMMENT("{-","-}",{contains:["self"]})],c={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},d={className:"container",begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"}].concat(b)},e={className:"container",begin:"{",end:"}",contains:d.contains};return{keywords:"let in if then else case of where module import exposing type alias as infix infixl infixr port",contains:[{className:"module",begin:"\\bmodule\\b",end:"where",keywords:"module where",contains:[d].concat(b),illegal:"\\W\\.|;"},{className:"import",begin:"\\bimport\\b",end:"$",keywords:"import|0 as exposing",contains:[d].concat(b),illegal:"\\W\\.|;"},{className:"typedef",begin:"\\btype\\b",end:"$",keywords:"type alias",contains:[c,d,e].concat(b)},{className:"infix",beginKeywords:"infix infixl infixr",end:"$",contains:[a.C_NUMBER_MODE].concat(b)},{className:"foreign",begin:"\\bport\\b",end:"$",keywords:"port",contains:b},a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,c,a.inherit(a.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),{begin:"->|<-"}].concat(b)}}),a.registerLanguage("ruby",function(a){var b="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",c="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",d={className:"doctag",begin:"@[A-Za-z]+"},e={className:"value",begin:"#<",end:">"},f=[a.COMMENT("#","$",{contains:[d]}),a.COMMENT("^\\=begin","^\\=end",{contains:[d],relevance:10}),a.COMMENT("^__END__","\\n$")],g={className:"subst",begin:"#\\{",end:"}",keywords:c},h={className:"string",contains:[a.BACKSLASH_ESCAPE,g],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]},i={className:"params",begin:"\\(",end:"\\)",keywords:c},j=[h,e,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[a.inherit(a.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{className:"inheritance",begin:"<\\s*",contains:[{className:"parent",begin:"("+a.IDENT_RE+"::)?"+a.IDENT_RE}]}].concat(f)},{className:"function",beginKeywords:"def",end:"$|;",contains:[a.inherit(a.TITLE_MODE,{begin:b}),i].concat(f)},{className:"constant",begin:"(::)?(\\b[A-Z]\\w*(::)?)+",relevance:0},{className:"symbol",begin:a.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[h,{begin:b}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"("+a.RE_STARTERS_RE+")\\s*",contains:[e,{className:"regexp",contains:[a.BACKSLASH_ESCAPE,g],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(f),relevance:0}].concat(f);g.contains=j,i.contains=j;var k="[>?]>",l="[\\w#]+\\(\\w+\\):\\d+:\\d+>",m="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",n=[{begin:/^\s*=>/,className:"status",starts:{end:"$",contains:j}},{className:"prompt",begin:"^("+k+"|"+l+"|"+m+")",starts:{end:"$",contains:j}}];return{aliases:["rb","gemspec","podspec","thor","irb"],keywords:c,illegal:/\/\*/,contains:f.concat(n).concat(j)}}),a.registerLanguage("erb",function(a){return{subLanguage:"xml",contains:[a.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}}),a.registerLanguage("erlang-repl",function(a){return{keywords:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"prompt",begin:"^[0-9]+> ",relevance:10},a.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"constant",begin:"\\?(::)?([A-Z]\\w*(::)?)+"},{className:"arrow",begin:"->"},{className:"ok",begin:"ok"},{className:"exclamation_mark",begin:"!"},{className:"function_or_atom",begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{className:"variable",begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}),a.registerLanguage("erlang",function(a){var b="[a-z'][a-zA-Z0-9_']*",c="("+b+":"+b+"|"+b+")",d={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},e=a.COMMENT("%","$"),f={className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},g={begin:"fun\\s+"+b+"/\\d+"},h={begin:c+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{className:"function_name",begin:c,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},i={className:"tuple",begin:"{",end:"}",relevance:0},j={className:"variable",begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},k={className:"variable",begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},l={begin:"#"+a.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{className:"record_name",begin:"#"+a.UNDERSCORE_IDENT_RE,relevance:0},{begin:"{",end:"}",relevance:0}]},m={beginKeywords:"fun receive if try case",end:"end",keywords:d};m.contains=[e,g,a.inherit(a.APOS_STRING_MODE,{className:""}),m,h,a.QUOTE_STRING_MODE,f,i,j,k,l];var n=[e,g,m,h,a.QUOTE_STRING_MODE,f,i,j,k,l];h.contains[1].contains=n,i.contains=n,l.contains[1].contains=n;var o={className:"params",begin:"\\(",end:"\\)",contains:n};return{aliases:["erl"],keywords:d,illegal:"(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))",contains:[{className:"function",begin:"^"+b+"\\s*\\(",end:"->",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[o,a.inherit(a.TITLE_MODE,{begin:b})],starts:{end:";|\\.",keywords:d,contains:n}},e,{className:"pp",begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,lexemes:"-"+a.IDENT_RE,keywords:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",contains:[o]},f,a.QUOTE_STRING_MODE,l,j,k,i,{begin:/\.$/}]}}),a.registerLanguage("fix",function(a){return{contains:[{begin:/[^\u2401\u0001]+/,end:/[\u2401\u0001]/,excludeEnd:!0,returnBegin:!0,returnEnd:!1,contains:[{begin:/([^\u2401\u0001=]+)/,end:/=([^\u2401\u0001=]+)/,returnEnd:!0,returnBegin:!1,className:"attribute"},{begin:/=/,end:/([\u2401\u0001])/,excludeEnd:!0,excludeBegin:!0,className:"string"}]}],case_insensitive:!0}}),a.registerLanguage("fortran",function(a){var b={className:"params",begin:"\\(",end:"\\)"},c={constant:".False. .True.",type:"integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated  c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image"};return{case_insensitive:!0,aliases:["f90","f95"],keywords:c,illegal:/\/\*/,contains:[a.inherit(a.APOS_STRING_MODE,{className:"string",relevance:0}),a.inherit(a.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[a.UNDERSCORE_TITLE_MODE,b]},a.COMMENT("!","$",{relevance:0}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}}),a.registerLanguage("fsharp",function(a){var b={begin:"<",end:">",contains:[a.inherit(a.TITLE_MODE,{begin:/'[a-zA-Z0-9_]+/})]};return{aliases:["fs"],keywords:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",illegal:/\/\*/,contains:[{className:"keyword",begin:/\b(yield|return|let|do)!/},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:'"""',end:'"""'},a.COMMENT("\\(\\*","\\*\\)"),{className:"class",beginKeywords:"type",end:"\\(|=|$",excludeEnd:!0,contains:[a.UNDERSCORE_TITLE_MODE,b]},{className:"annotation",begin:"\\[<",end:">\\]",relevance:10},{className:"attribute",begin:"\\B('[A-Za-z])\\b",contains:[a.BACKSLASH_ESCAPE]},a.C_LINE_COMMENT_MODE,a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),a.C_NUMBER_MODE]}}),a.registerLanguage("gams",function(a){var b="abort acronym acronyms alias all and assign binary card diag display else1 eps eq equation equations file files for1 free ge gt if inf integer le loop lt maximizing minimizing model models na ne negative no not option options or ord parameter parameters positive prod putpage puttl repeat sameas scalar scalars semicont semiint set1 sets smax smin solve sos1 sos2 sum system table then until using variable variables while1 xor yes";return{aliases:["gms"],case_insensitive:!0,keywords:b,contains:[{className:"section",beginKeywords:"sets parameters variables equations",end:";",contains:[{begin:"/",end:"/",contains:[a.NUMBER_MODE]}]},{className:"string",begin:"\\*{3}",end:"\\*{3}"},a.NUMBER_MODE,{className:"number",begin:"\\$[a-zA-Z0-9]+"}]}}),a.registerLanguage("gcode",function(a){var b="[A-Z_][A-Z0-9_.]*",c="\\%",d={literal:"",built_in:"",keyword:"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR"},e={className:"preprocessor",begin:"([O])([0-9]+)"},f=[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.COMMENT(/\(/,/\)/),a.inherit(a.C_NUMBER_MODE,{begin:"([-+]?([0-9]*\\.?[0-9]+\\.?))|"+a.C_NUMBER_RE}),a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"keyword",begin:"([G])([0-9]+\\.?[0-9]?)"},{className:"title",begin:"([M])([0-9]+\\.?[0-9]?)"},{className:"title",begin:"(VC|VS|#)",end:"(\\d+)"},{className:"title",begin:"(VZOFX|VZOFY|VZOFZ)"},{className:"built_in",begin:"(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",end:"([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])"},{className:"label",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}];return{aliases:["nc"],case_insensitive:!0,lexemes:b,keywords:d,contains:[{className:"preprocessor",begin:c},e].concat(f)}}),a.registerLanguage("gherkin",function(a){return{aliases:["feature"],keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",contains:[{className:"keyword",begin:"\\*"},a.COMMENT("@[^@\r\n    ]+","$"),{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string",begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},a.HASH_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},a.QUOTE_STRING_MODE]}}),a.registerLanguage("glsl",function(a){return{keywords:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},illegal:'"',contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$"}]}}),a.registerLanguage("go",function(a){var b={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",
 constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{aliases:["golang"],keywords:b,illegal:"</",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'"},{className:"string",begin:"`",end:"`"},{className:"number",begin:a.C_NUMBER_RE+"[dflsi]?",relevance:0},a.C_NUMBER_MODE]}}),a.registerLanguage("golo",function(a){return{keywords:{keyword:"println readln print import module function local return let var while for foreach times in case when match with break continue augment augmentation each find filter reduce if then else otherwise try catch finally raise throw orIfNull",typename:"DynamicObject|10 DynamicVariable struct Observable map set vector list array",literal:"true false null"},contains:[a.HASH_COMMENT_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"}]}}),a.registerLanguage("gradle",function(a){return{case_insensitive:!0,keywords:{keyword:"task project allprojects subprojects artifacts buildscript configurations dependencies repositories sourceSets description delete from into include exclude source classpath destinationDir includes options sourceCompatibility targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant def abstract break case catch continue default do else extends final finally for if implements instanceof native new private protected public return static switch synchronized throw throws transient try volatile while strictfp package import false null super this true antlrtask checkstyle codenarc copy boolean byte char class double float int interface long short void compile runTime file fileTree abs any append asList asWritable call collect compareTo count div dump each eachByte eachFile eachLine every find findAll flatten getAt getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter newReader newWriter next plus pop power previous print println push putAt read readBytes readLines reverse reverseEach round size sort splitEachLine step subMap times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader withStream withWriter withWriterAppend write writeLine"},contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.NUMBER_MODE,a.REGEXP_MODE]}}),a.registerLanguage("groovy",function(a){return{keywords:{typename:"byte short char int long boolean float double void",literal:"true false null",keyword:"def as in assert trait super this abstract static volatile transient public private protected synchronized final class interface enum if else for while switch case break default continue throw throws try catch finally implements extends new import package return instanceof"},contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},{className:"string",begin:"'''",end:"'''"},{className:"string",begin:"\\$/",end:"/\\$",relevance:10},a.APOS_STRING_MODE,{className:"regexp",begin:/~?\/[^\/\n]+\//,contains:[a.BACKSLASH_ESCAPE]},a.QUOTE_STRING_MODE,{className:"shebang",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},a.BINARY_NUMBER_MODE,{className:"class",beginKeywords:"class interface trait enum",end:"{",illegal:":",contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},a.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"},{className:"string",begin:/[^\?]{0}[A-Za-z0-9_$]+ *:/},{begin:/\?/,end:/\:/},{className:"label",begin:"^\\s*[A-Za-z0-9_$]+:",relevance:0}],illegal:/#/}}),a.registerLanguage("haml",function(a){return{case_insensitive:!0,contains:[{className:"doctype",begin:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",relevance:10},a.COMMENT("^\\s*(!=#|=#|-#|/).*$",!1,{relevance:0}),{begin:"^\\s*(-|=|!=)(?!#)",starts:{end:"\\n",subLanguage:"ruby"}},{className:"tag",begin:"^\\s*%",contains:[{className:"title",begin:"\\w+"},{className:"value",begin:"[#\\.][\\w-]+"},{begin:"{\\s*",end:"\\s*}",excludeEnd:!0,contains:[{begin:":\\w+\\s*=>",end:",\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"symbol",begin:":\\w+"},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]},{begin:"\\(\\s*",end:"\\s*\\)",excludeEnd:!0,contains:[{begin:"\\w+\\s*=",end:"\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attribute",begin:"\\w+",relevance:0},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]}]},{className:"bullet",begin:"^\\s*[=~]\\s*",relevance:0},{begin:"#{",starts:{end:"}",subLanguage:"ruby"}}]}}),a.registerLanguage("handlebars",function(a){var b="each in with if else unless bindattr action collection debugger log outlet template unbound view yield";return{aliases:["hbs","html.hbs","html.handlebars"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"expression",begin:"{{",end:"}}",contains:[{className:"begin-block",begin:"#[a-zA-Z- .]+",keywords:b},{className:"string",begin:'"',end:'"'},{className:"end-block",begin:"\\/[a-zA-Z- .]+",keywords:b},{className:"variable",begin:"[a-zA-Z-.]+",keywords:b}]}]}}),a.registerLanguage("haskell",function(a){var b=[a.COMMENT("--","$"),a.COMMENT("{-","-}",{contains:["self"]})],c={className:"pragma",begin:"{-#",end:"#-}"},d={className:"preprocessor",begin:"^#",end:"$"},e={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},f={className:"container",begin:"\\(",end:"\\)",illegal:'"',contains:[c,d,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},a.inherit(a.TITLE_MODE,{begin:"[_a-z][\\w']*"})].concat(b)},g={className:"container",begin:"{",end:"}",contains:f.contains};return{aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{className:"module",begin:"\\bmodule\\b",end:"where",keywords:"module where",contains:[f].concat(b),illegal:"\\W\\.|;"},{className:"import",begin:"\\bimport\\b",end:"$",keywords:"import|0 qualified as hiding",contains:[f].concat(b),illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[e,f].concat(b)},{className:"typedef",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[c,e,f,g].concat(b)},{className:"default",beginKeywords:"default",end:"$",contains:[e,f].concat(b)},{className:"infix",beginKeywords:"infix infixl infixr",end:"$",contains:[a.C_NUMBER_MODE].concat(b)},{className:"foreign",begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[e,a.QUOTE_STRING_MODE].concat(b)},{className:"shebang",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},c,d,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,e,a.inherit(a.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),{begin:"->|<-"}].concat(b)}}),a.registerLanguage("haxe",function(a){var b="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)";return{aliases:["hx"],keywords:{keyword:"break callback case cast catch class continue default do dynamic else enum extends extern for function here if implements import in inline interface never new override package private public return static super switch this throw trace try typedef untyped using var while",literal:"true false null"},contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.C_NUMBER_MODE,{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},a.TITLE_MODE]},{className:"preprocessor",begin:"#",end:"$",keywords:"if else elseif end error"},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},{className:"type",begin:":",end:b,relevance:10}]}]}}),a.registerLanguage("http",function(a){return{aliases:["https"],illegal:"\\S",contains:[{className:"status",begin:"^HTTP/[0-9\\.]+",end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{className:"request",begin:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{className:"string",end:"$"}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}),a.registerLanguage("inform7",function(a){var b="\\[",c="\\]";return{aliases:["i7"],case_insensitive:!0,keywords:{keyword:"thing room person man woman animal container supporter backdrop door scenery open closed locked inside gender is are say understand kind of rule"},contains:[{className:"string",begin:'"',end:'"',relevance:0,contains:[{className:"subst",begin:b,end:c}]},{className:"title",begin:/^(Volume|Book|Part|Chapter|Section|Table)\b/,end:"$"},{begin:/^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,end:":",contains:[{begin:"\\b\\(This",end:"\\)"}]},{className:"comment",begin:b,end:c,contains:["self"]}]}}),a.registerLanguage("ini",function(a){var b={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]};return{aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[a.COMMENT(";","$"),a.HASH_COMMENT_MODE,{className:"title",begin:/^\s*\[+/,end:/\]+/},{className:"setting",begin:/^[a-z0-9\[\]_-]+\s*=\s*/,end:"$",contains:[{className:"value",endsWithParent:!0,keywords:"on off true false yes no",contains:[{className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},b,{className:"number",begin:/([\+\-]+)?[\d]+_[\d_]+/},a.NUMBER_MODE],relevance:0}]}]}}),a.registerLanguage("irpf90",function(a){var b={className:"params",begin:"\\(",end:"\\)"},c={constant:".False. .True.",type:"integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated  c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image IRP_ALIGN irp_here"};return{case_insensitive:!0,keywords:c,illegal:/\/\*/,contains:[a.inherit(a.APOS_STRING_MODE,{className:"string",relevance:0}),a.inherit(a.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[a.UNDERSCORE_TITLE_MODE,b]},a.COMMENT("!","$",{relevance:0}),a.COMMENT("begin_doc","end_doc",{relevance:10}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}}),a.registerLanguage("java",function(a){var b=a.UNDERSCORE_IDENT_RE+"(<"+a.UNDERSCORE_IDENT_RE+">)?",c="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",d="\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",e={className:"number",begin:d,relevance:0};return{aliases:["jsp"],keywords:c,illegal:/<\/|#/,contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"("+b+"\\s+)+"+a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:c,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:c,relevance:0,contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},e,{className:"annotation",begin:"@[A-Za-z]+"}]}}),a.registerLanguage("javascript",function(a){return{aliases:["js"],keywords:{keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},contains:[{className:"pi",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"}]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:a.C_NUMBER_RE}],relevance:0},{begin:"("+a.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.REGEXP_MODE,{begin:/</,end:/>\s*[);\]]/,relevance:0,subLanguage:"xml"}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[a.inherit(a.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}],illegal:/\[|%/},{begin:/\$[(.]/},{begin:"\\."+a.IDENT_RE,relevance:0},{beginKeywords:"import",end:"[;$]",keywords:"import from as",contains:[a.APOS_STRING_MODE,a.QUOTE_STRING_MODE]},{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},a.UNDERSCORE_TITLE_MODE]}],illegal:/#/}}),a.registerLanguage("json",function(a){var b={literal:"true false null"},c=[a.QUOTE_STRING_MODE,a.C_NUMBER_MODE],d={className:"value",end:",",endsWithParent:!0,excludeEnd:!0,contains:c,keywords:b},e={begin:"{",end:"}",contains:[{className:"attribute",begin:'\\s*"',end:'"\\s*:\\s*',excludeBegin:!0,excludeEnd:!0,contains:[a.BACKSLASH_ESCAPE],illegal:"\\n",starts:d}],illegal:"\\S"},f={begin:"\\[",end:"\\]",contains:[a.inherit(d,{className:null})],illegal:"\\S"};return c.splice(c.length,0,e,f),{contains:c,keywords:b,illegal:"\\S"}}),a.registerLanguage("julia",function(a){var b={keyword:"in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export finally for function global if immutable import importall let local macro module quote return try type typealias using while",literal:"true false ANY ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 eulergamma golden im nothing pi γ π φ",built_in:"ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip"},c="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",d={lexemes:c,keywords:b},e={className:"type-annotation",begin:/::/},f={className:"subtype",begin:/<:/},g={className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},h={className:"char",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},i={className:"subst",begin:/\$\(/,end:/\)/,keywords:b},j={className:"variable",begin:"\\$"+c},k={className:"string",contains:[a.BACKSLASH_ESCAPE,i,j],variants:[{begin:/\w*"/,end:/"\w*/},{begin:/\w*"""/,end:/"""\w*/}]},l={className:"string",contains:[a.BACKSLASH_ESCAPE,i,j],begin:"`",end:"`"},m={className:"macrocall",begin:"@"+c},n={className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]};return d.contains=[g,h,e,f,k,l,m,n,a.HASH_COMMENT_MODE],i.contains=d.contains,d}),a.registerLanguage("kotlin",function(a){var b="val var get set class trait object public open private protected final enum if else do while for when break continue throw try catch finally import package is as in return fun override default companion reified inline volatile transient native";return{keywords:{typename:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null",keyword:b},contains:[a.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"type",begin:/</,end:/>/,returnBegin:!0,excludeEnd:!1,relevance:0},{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:b,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:a.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[a.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:b,relevance:0,illegal:/\([^\(,\s:]+,/,contains:[{className:"typename",begin:/:\s*/,end:/\s*[=\)]/,excludeBegin:!0,returnEnd:!0,relevance:0}]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]},{className:"class",beginKeywords:"class trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[a.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"typename",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0}]},{className:"variable",beginKeywords:"var val",end:/\s*[=:$]/,excludeEnd:!0},a.QUOTE_STRING_MODE,{className:"shebang",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},a.C_NUMBER_MODE]}}),a.registerLanguage("lasso",function(a){var b="[a-zA-Z_][a-zA-Z0-9_.]*",c="<\\?(lasso(script)?|=)",d="\\]|\\?>",e={literal:"true false none minimal full all void bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",built_in:"array date decimal duration integer map pair string tag xml null boolean bytes keyword list locale queue set stack staticarray local var variable global data self inherited currentcapture givenblock",keyword:"error_code error_msg error_pop error_push error_reset cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome"},f=a.COMMENT("<!--","-->",{relevance:0}),g={className:"preprocessor",begin:"\\[noprocess\\]",starts:{className:"markup",end:"\\[/noprocess\\]",returnEnd:!0,contains:[f]}},h={className:"preprocessor",begin:"\\[/noprocess|"+c},i={className:"variable",begin:"'"+b+"'"},j=[a.COMMENT("/\\*\\*!","\\*/"),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.inherit(a.C_NUMBER_MODE,{begin:a.C_NUMBER_RE+"|(infinity|nan)\\b"}),a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"`",end:"`"},{className:"variable",variants:[{begin:"[#$]"+b},{begin:"#",end:"\\d+",illegal:"\\W"}]},{className:"tag",begin:"::\\s*",end:b,illegal:"\\W"},{className:"attribute",variants:[{begin:"-(?!infinity)"+a.UNDERSCORE_IDENT_RE,relevance:0},{begin:"(\\.\\.\\.)"}]},{className:"subst",variants:[{begin:"->\\s*",contains:[i]},{begin:"->|\\\\|&&?|\\|\\||!(?!=|>)|(and|or|not)\\b",relevance:0}]},{className:"built_in",begin:"\\.\\.?\\s*",relevance:0,contains:[i]},{className:"class",beginKeywords:"define",returnEnd:!0,end:"\\(|=>",contains:[a.inherit(a.TITLE_MODE,{begin:a.UNDERSCORE_IDENT_RE+"(=(?!>))?"})]}];return{aliases:["ls","lassoscript"],case_insensitive:!0,lexemes:b+"|&[lg]t;",keywords:e,contains:[{className:"preprocessor",begin:d,relevance:0,starts:{className:"markup",end:"\\[|"+c,returnEnd:!0,relevance:0,contains:[f]}},g,h,{className:"preprocessor",begin:"\\[no_square_brackets",starts:{end:"\\[/no_square_brackets\\]",lexemes:b+"|&[lg]t;",keywords:e,contains:[{className:"preprocessor",begin:d,relevance:0,starts:{className:"markup",end:"\\[noprocess\\]|"+c,returnEnd:!0,contains:[f]}},g,h].concat(j)}},{className:"preprocessor",begin:"\\[",relevance:0},{className:"shebang",begin:"^#!.+lasso9\\b",relevance:10}].concat(j)}}),a.registerLanguage("less",function(a){var b="[\\w-]+",c="("+b+"|@{"+b+"})",d=[],e=[],f=function(a){return{className:"string",begin:"~?"+a+".*?"+a}},g=function(a,b,c){return{className:a,begin:b,relevance:c}},h=function(b,c,d){return a.inherit({className:b,begin:c+"\\(",end:"\\(",returnBegin:!0,excludeEnd:!0,relevance:0},d)},i={begin:"\\(",end:"\\)",contains:e,relevance:0};e.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,f("'"),f('"'),a.CSS_NUMBER_MODE,g("hexcolor","#[0-9A-Fa-f]+\\b"),h("function","(url|data-uri)",{starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}}),h("function",b),i,g("variable","@@?"+b,10),g("variable","@{"+b+"}"),g("built_in","~?`[^`]*?`"),{className:"attribute",begin:b+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0});var j=e.concat({begin:"{",end:"}",contains:d}),k={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(e)},l={className:"attribute",begin:c,end:":",excludeEnd:!0,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE],illegal:/\S/,starts:{end:"[;}]",returnEnd:!0,contains:e,illegal:"[<=$]"}},m={className:"at_rule",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:e,relevance:0}},n={className:"variable",variants:[{begin:"@"+b+"\\s*:",relevance:15},{begin:"@"+b}],starts:{end:"[;}]",returnEnd:!0,contains:j}},o={variants:[{begin:"[\\.#:&\\[]",end:"[;{}]"},{begin:c+"[^;]*{",end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,k,g("keyword","all\\b"),g("variable","@{"+b+"}"),g("tag",c+"%?",0),g("id","#"+c),g("class","\\."+c,0),g("keyword","&",0),h("pseudo",":not"),h("keyword",":extend"),g("pseudo","::?"+c),{className:"attr_selector",begin:"\\[",end:"\\]"},{begin:"\\(",end:"\\)",contains:j},{begin:"!important"}]};return d.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,m,n,o,l),{case_insensitive:!0,illegal:"[=>'/<($\"]",contains:d}}),a.registerLanguage("lisp",function(a){var b="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*",c="\\|[^]*?\\|",d="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?",e={className:"shebang",begin:"^#!",end:"$"},f={className:"literal",begin:"\\b(t{1}|nil)\\b"},g={className:"number",variants:[{begin:d,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{begin:"#(c|C)\\("+d+" +"+d,end:"\\)"}]},h=a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),i=a.COMMENT(";","$",{relevance:0}),j={className:"variable",begin:"\\*",end:"\\*"},k={className:"keyword",begin:"[:&]"+b},l={begin:b,relevance:0},m={begin:c},n={begin:"\\(",end:"\\)",contains:["self",f,h,g,l]},o={className:"quoted",contains:[g,h,j,k,n,l],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:"quote"},{begin:"'"+c}]},p={className:"quoted",variants:[{begin:"'"+b},{begin:"#'"+b+"(::"+b+")*"}]},q={className:"list",begin:"\\(\\s*",end:"\\)"},r={endsWithParent:!0,relevance:0};return q.contains=[{className:"keyword",variants:[{begin:b},{begin:c}]},r],r.contains=[o,p,q,f,g,h,i,j,k,m,l],{illegal:/\S/,contains:[g,e,f,h,i,o,p,q,l]}}),a.registerLanguage("livecodeserver",function(a){var b={className:"variable",begin:"\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+",relevance:0},c=[a.C_BLOCK_COMMENT_MODE,a.HASH_COMMENT_MODE,a.COMMENT("--","$"),a.COMMENT("[^:]//","$")],d=a.inherit(a.TITLE_MODE,{variants:[{begin:"\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*"},{begin:"\\b_[a-z0-9\\-]+"}]}),e=a.inherit(a.TITLE_MODE,{begin:"\\b([A-Za-z0-9_\\-]+)\\b"});return{case_insensitive:!1,keywords:{keyword:"$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word words fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if",
@@ -75,44 +75,44 @@ relevance:0},{begin:"#[a-zA-Z\\ \\.]+"}]}]}}),a.registerLanguage("rust",function
 return-1==c.indexOf(a)&&-1==f.indexOf(a)&&-1==d.indexOf(a)});g=g.concat(e);var h={className:"string",relevance:0,variants:[{begin:'"',end:'"',contains:[{begin:'""'}]},{begin:"'",end:"'",contains:[{begin:"''"}]}]},i={className:"number",begin:a.NUMBER_RE,relevance:0},j={className:"string",variants:[a.QUOTE_STRING_MODE,{begin:"'\\\\?.",end:"'",illegal:"."}]},k={className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line pragma ifdef ifndef",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[j,{className:"string",begin:"<",end:">",illegal:"\\n"}]},j,i,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]};return{aliases:["sqf"],case_insensitive:!0,keywords:{keyword:c.join(" "),built_in:g.join(" "),literal:f.join(" ")},contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,i,h,k]}}),a.registerLanguage("sql",function(a){var b=a.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*]/,contains:[{className:"operator",beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke",end:/;/,endsWithParent:!0,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function g general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex n name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding p package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[a.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[a.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[a.BACKSLASH_ESCAPE]},a.C_NUMBER_MODE,a.C_BLOCK_COMMENT_MODE,b]},a.C_BLOCK_COMMENT_MODE,b]}}),a.registerLanguage("stata",function(a){return{aliases:["do","ado"],case_insensitive:!0,keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate g gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l la lab labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize meqparse mer merg merge mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5",contains:[{className:"label",variants:[{begin:"\\$\\{?[a-zA-Z0-9_]+\\}?"},{begin:"`[a-zA-Z0-9_]+'"}]},{className:"string",variants:[{begin:'`"[^\r\n]*?"\''},{begin:'"[^\r\n"]*"'}]},{className:"literal",variants:[{begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\(|$)"}]},a.COMMENT("^[      ]*\\*.*$",!1),a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE]}}),a.registerLanguage("step21",function(a){var b="[A-Z_][A-Z0-9_.]*",c="END-ISO-10303-21;",d={literal:"",built_in:"",keyword:"HEADER ENDSEC DATA"},e={className:"preprocessor",begin:"ISO-10303-21;",relevance:10},f=[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.COMMENT("/\\*\\*!","\\*/"),a.C_NUMBER_MODE,a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"label",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}];return{aliases:["p21","step","stp"],case_insensitive:!0,lexemes:b,keywords:d,contains:[{className:"preprocessor",begin:c,relevance:10},e].concat(f)}}),a.registerLanguage("stylus",function(a){var b={className:"variable",begin:"\\$"+a.IDENT_RE},c={className:"hexcolor",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})",relevance:10},d=["charset","css","debug","extend","font-face","for","import","include","media","mixin","page","warn","while"],e=["after","before","first-letter","first-line","active","first-child","focus","hover","lang","link","visited"],f=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],g="[\\.\\s\\n\\[\\:,]",h=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-variant-ligatures","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"],i=["\\{","\\}","\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"];
 return{aliases:["styl"],case_insensitive:!1,illegal:"("+i.join("|")+")",keywords:"if else for in",contains:[a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,c,{begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"+g,returnBegin:!0,contains:[{className:"class",begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"+g,returnBegin:!0,contains:[{className:"id",begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\b("+f.join("|")+")"+g,returnBegin:!0,contains:[{className:"tag",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"}]},{className:"pseudo",begin:"&?:?:\\b("+e.join("|")+")"+g},{className:"at_rule",begin:"@("+d.join("|")+")\\b"},b,a.CSS_NUMBER_MODE,a.NUMBER_MODE,{className:"function",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",illegal:"[\\n]",returnBegin:!0,contains:[{className:"title",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"},{className:"params",begin:/\(/,end:/\)/,contains:[c,b,a.APOS_STRING_MODE,a.CSS_NUMBER_MODE,a.NUMBER_MODE,a.QUOTE_STRING_MODE]}]},{className:"attribute",begin:"\\b("+h.reverse().join("|")+")\\b"}]}}),a.registerLanguage("swift",function(a){var b={keyword:"__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},c={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},d=a.COMMENT("/\\*","\\*/",{contains:["self"]}),e={className:"subst",begin:/\\\(/,end:"\\)",keywords:b,contains:[]},f={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0},g=a.inherit(a.QUOTE_STRING_MODE,{contains:[e,a.BACKSLASH_ESCAPE]});return e.contains=[f],{keywords:b,contains:[g,a.C_LINE_COMMENT_MODE,d,c,f,{className:"func",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[a.inherit(a.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/,illegal:/\(/}),{className:"generics",begin:/</,end:/>/,illegal:/>/},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:b,contains:["self",f,g,a.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:b,end:"\\{",excludeEnd:!0,contains:[a.inherit(a.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/})]},{className:"preprocessor",begin:"(@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)"},{beginKeywords:"import",end:/$/,contains:[a.C_LINE_COMMENT_MODE,d]}]}}),a.registerLanguage("tcl",function(a){return{aliases:["tk"],keywords:"after append apply array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock close concat continue dde dict encoding eof error eval exec exit expr fblocked fconfigure fcopy file fileevent filename flush for foreach format gets glob global history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename return safe scan seek set socket source split string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update uplevel upvar variable vwait while",contains:[a.COMMENT(";[ \\t]*#","$"),a.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"symbol",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",excludeEnd:!0,variants:[{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)",end:"[^a-zA-Z0-9_\\}\\$]"},{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"(\\))?[^a-zA-Z0-9_\\}\\$]"}]},{className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null})]},{className:"number",variants:[a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]}]}}),a.registerLanguage("tex",function(a){var b={className:"command",begin:"\\\\[a-zA-Zа-яА-я]+[\\*]?"},c={className:"command",begin:"\\\\[^a-zA-Zа-яА-я0-9]"},d={className:"special",begin:"[{}\\[\\]\\&#~]",relevance:0};return{contains:[{begin:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",returnBegin:!0,contains:[b,c,{className:"number",begin:" *=",end:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",excludeBegin:!0}],relevance:10},b,c,d,{className:"formula",begin:"\\$\\$",end:"\\$\\$",contains:[b,c,d],relevance:0},{className:"formula",begin:"\\$",end:"\\$",contains:[b,c,d],relevance:0},a.COMMENT("%","$",{relevance:0})]}}),a.registerLanguage("thrift",function(a){var b="bool byte i16 i32 i64 double string binary";return{keywords:{keyword:"namespace const typedef struct enum service exception void oneway set list map required optional",built_in:b,literal:"true false"},contains:[a.QUOTE_STRING_MODE,a.NUMBER_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[a.inherit(a.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",end:">",keywords:b,contains:["self"]}]}}),a.registerLanguage("tp",function(a){var b={className:"number",begin:"[1-9][0-9]*",relevance:0},c={className:"comment",begin:":[^\\]]+"},d={className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|    TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",b,c]},e={className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",b,a.QUOTE_STRING_MODE,c]};return{keywords:{keyword:"ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN SUBSTR FINDSTR VOFFSET",constant:"ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET"},contains:[d,e,{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},a.COMMENT("//","[;$]"),a.COMMENT("!","[;$]"),a.COMMENT("--eg:","$"),a.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"'"},a.C_NUMBER_MODE,{className:"variable",begin:"\\$[A-Za-z0-9_]+"}]}}),a.registerLanguage("twig",function(a){var b={className:"params",begin:"\\(",end:"\\)"},c="attribute block constant cycle date dump include max min parent random range source template_from_string",d={className:"function",beginKeywords:c,relevance:0,contains:[b]},e={className:"filter",begin:/\|[A-Za-z_]+:?/,keywords:"abs batch capitalize convert_encoding date date_modify default escape first format join json_encode keys last length lower merge nl2br number_format raw replace reverse round slice sort split striptags title trim upper url_encode",contains:[d]},f="autoescape block do embed extends filter flush for if import include macro sandbox set spaceless use verbatim";return f=f+" "+f.split(" ").map(function(a){return"end"+a}).join(" "),{aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[a.COMMENT(/\{#/,/#}/),{className:"template_tag",begin:/\{%/,end:/%}/,keywords:f,contains:[e,d]},{className:"variable",begin:/\{\{/,end:/}}/,contains:[e,d]}]}}),a.registerLanguage("typescript",function(a){var b={keyword:"in if for while finally var new function|0 do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private protected get set super static implements enum export import declare type namespace abstract",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void"};return{aliases:["ts"],keywords:b,contains:[{className:"pi",begin:/^\s*['"]use strict['"]/,relevance:0},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:a.C_NUMBER_RE}],relevance:0},{begin:"("+a.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,a.REGEXP_MODE],relevance:0},{className:"function",begin:"function",end:/[\{;]/,excludeEnd:!0,keywords:b,contains:["self",a.inherit(a.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:b,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE],illegal:/["'\(]/}],illegal:/\[|%/,relevance:0},{className:"constructor",beginKeywords:"constructor",end:/\{/,excludeEnd:!0,relevance:10},{className:"module",beginKeywords:"module",end:/\{/,excludeEnd:!0},{className:"interface",beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+a.IDENT_RE,relevance:0}]}}),a.registerLanguage("vala",function(a){return{keywords:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},contains:[{className:"class",beginKeywords:"class interface delegate namespace",end:"{",excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[a.UNDERSCORE_TITLE_MODE]},a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""',relevance:5},a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,a.C_NUMBER_MODE,{className:"preprocessor",begin:"^#",end:"$",relevance:2},{className:"constant",begin:" [A-Z_]+ ",relevance:0}]}}),a.registerLanguage("vbnet",function(a){return{aliases:["vb"],case_insensitive:!0,keywords:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},illegal:"//|{|}|endif|gosub|variant|wend",contains:[a.inherit(a.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),a.COMMENT("'","$",{returnBegin:!0,contains:[{className:"xmlDocTag",begin:"'''|<!--|-->",contains:[a.PHRASAL_WORDS_MODE]},{className:"xmlDocTag",begin:"</?",end:">",contains:[a.PHRASAL_WORDS_MODE]}]}),a.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$",keywords:"if else elseif end region externalsource"}]}}),a.registerLanguage("vbscript",function(a){return{aliases:["vbs"],case_insensitive:!0,keywords:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},illegal:"//",contains:[a.inherit(a.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),a.COMMENT(/'/,/$/,{relevance:0}),a.C_NUMBER_MODE]}}),a.registerLanguage("vbscript-html",function(a){return{subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}}),a.registerLanguage("verilog",function(a){return{aliases:["v"],case_insensitive:!0,keywords:{keyword:"always and assign begin buf bufif0 bufif1 case casex casez cmos deassign default defparam disable edge else end endcase endfunction endmodule endprimitive endspecify endtable endtask event for force forever fork function if ifnone initial inout input join macromodule module nand negedge nmos nor not notif0 notif1 or output parameter pmos posedge primitive pulldown pullup rcmos release repeat rnmos rpmos rtran rtranif0 rtranif1 specify specparam table task timescale tran tranif0 tranif1 wait while xnor xor",typename:"highz0 highz1 integer large medium pull0 pull1 real realtime reg scalared signed small strong0 strong1 supply0 supply0 supply1 supply1 time tri tri0 tri1 triand trior trireg vectored wand weak0 weak1 wire wor"},contains:[a.C_BLOCK_COMMENT_MODE,a.C_LINE_COMMENT_MODE,a.QUOTE_STRING_MODE,{className:"number",begin:"\\b(\\d+'(b|h|o|d|B|H|O|D))?[0-9xzXZ]+",contains:[a.BACKSLASH_ESCAPE],relevance:0},{className:"typename",begin:"\\.\\w+",relevance:0},{className:"value",begin:"#\\((?!parameter).+\\)"},{className:"keyword",begin:"\\+|-|\\*|/|%|<|>|=|#|`|\\!|&|\\||@|:|\\^|~|\\{|\\}",relevance:0}]}}),a.registerLanguage("vhdl",function(a){var b="\\d(_|\\d)*",c="[eE][-+]?"+b,d=b+"(\\."+b+")?("+c+")?",e="\\w+",f=b+"#"+e+"(\\."+e+")?#("+c+")?",g="\\b("+f+"|"+d+")";return{case_insensitive:!0,keywords:{keyword:"abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",typename:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},illegal:"{",contains:[a.C_BLOCK_COMMENT_MODE,a.COMMENT("--","$"),a.QUOTE_STRING_MODE,{className:"number",begin:g,relevance:0},{className:"literal",begin:"'(U|X|0|1|Z|W|L|H|-)'",contains:[a.BACKSLASH_ESCAPE]},{className:"attribute",begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[a.BACKSLASH_ESCAPE]}]}}),a.registerLanguage("vim",function(a){return{lexemes:/[!#@\w]+/,keywords:{keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw d|0 delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu g|0 go gr grepa gu gv ha h|0 helpf helpg helpt hi hid his i|0 ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs n|0 new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf q|0 quita qa r|0 rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv s|0 sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync t|0 tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up v|0 ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",built_in:"abs acos add and append argc argidx argv asin atan atan2 browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call ceil changenr char2nr cindent clearmatches col complete complete_add complete_check confirm copy cos cosh count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists exp expand extend feedkeys filereadable filewritable filter finddir findfile float2nr floor fmod fnameescape fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getmatches getpid getpos getqflist getreg getregtype gettabvar gettabwinvar getwinposx getwinposy getwinvar glob globpath has has_key haslocaldir hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert invert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime log log10 luaeval map maparg mapcheck match matchadd matcharg matchdelete matchend matchlist matchstr max min mkdir mode mzeval nextnonblank nr2char or pathshorten pow prevnonblank printf pumvisible py3eval pyeval range readfile reltime reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse round screenattr screenchar screencol screenrow search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setmatches setpos setqflist setreg settabvar settabwinvar setwinvar sha256 shellescape shiftwidth simplify sin sinh sort soundfold spellbadword spellsuggest split sqrt str2float str2nr strchars strdisplaywidth strftime stridx string strlen strpart strridx strtrans strwidth submatch substitute synconcealed synID synIDattr synIDtrans synstack system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tan tanh tempname tolower toupper tr trunc type undofile undotree values virtcol visualmode wildmenumode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile xor"},illegal:/[{:]/,contains:[a.NUMBER_MODE,a.APOS_STRING_MODE,{className:"string",begin:/"((\\")|[^"\n])*("|\n)/},{className:"variable",begin:/[bwtglsav]:[\w\d_]*/},{className:"function",beginKeywords:"function function!",end:"$",relevance:0,contains:[a.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]}]}}),a.registerLanguage("x86asm",function(a){return{case_insensitive:!0,lexemes:"\\.?"+a.IDENT_RE,keywords:{keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",
 literal:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0  xmm1  xmm2  xmm3  xmm4  xmm5  xmm6  xmm7  xmm8  xmm9 xmm10  xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0  ymm1  ymm2  ymm3  ymm4  ymm5  ymm6  ymm7  ymm8  ymm9 ymm10  ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0  zmm1  zmm2  zmm3  zmm4  zmm5  zmm6  zmm7  zmm8  zmm9 zmm10  zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l",pseudo:"db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times",preprocessor:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr __FILE__ __LINE__ __SECT__  __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__  __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public ",built_in:"bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[a.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},a.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"},{begin:"\\.[A-Za-z0-9]+"}],relevance:0},{className:"label",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"argument",begin:"%[0-9]+",relevance:0},{className:"built_in",begin:"%!S+",relevance:0}]}}),a.registerLanguage("xl",function(a){var b="ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts",c={keyword:"if then else do while until for loop import with is as where when by data constant",literal:"true false nil",type:"integer real text name boolean symbol infix prefix postfix block tree",built_in:"in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin acos atan exp expm1 log log2 log10 log1p pi at",module:b,id:"text_length text_range text_find text_replace contains page slide basic_slide title_slide title subtitle fade_in fade_out fade_at clear_color color line_color line_width texture_wrap texture_transform texture scale_?x scale_?y scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y rotate_?z? rectangle circle ellipse sphere path line_to move_to quad_to curve_to theme background contents locally time mouse_?x mouse_?y mouse_buttons"},d={className:"constant",begin:"[A-Z][A-Z_0-9]+",relevance:0},e={className:"variable",begin:"([A-Z][a-z_0-9]+)+",relevance:0},f={className:"id",begin:"[a-z][a-z_0-9]+",relevance:0},g={className:"string",begin:'"',end:'"',illegal:"\\n"},h={className:"string",begin:"'",end:"'",illegal:"\\n"},i={className:"string",begin:"<<",end:">>"},j={className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?",relevance:10},k={className:"import",beginKeywords:"import",end:"$",keywords:{keyword:"import",module:b},relevance:0,contains:[g]},l={className:"function",begin:"[a-z].*->"};return{aliases:["tao"],lexemes:/[a-zA-Z][a-zA-Z0-9_?]*/,keywords:c,contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,g,h,i,l,k,d,e,f,j,a.NUMBER_MODE]}}),a.registerLanguage("xquery",function(a){var b="for let if while then else return where group by xquery encoding versionmodule namespace boundary-space preserve strip default collation base-uri orderingcopy-namespaces order declare import schema namespace function option in allowing emptyat tumbling window sliding window start when only end when previous next stable ascendingdescending empty greatest least some every satisfies switch case typeswitch try catch andor to union intersect instance of treat as castable cast map array delete insert intoreplace value rename copy modify update",c="false true xs:string xs:integer element item xs:date xs:datetime xs:float xs:double xs:decimal QName xs:anyURI xs:long xs:int xs:short xs:byte attribute",d={className:"variable",begin:/\$[a-zA-Z0-9\-]+/,relevance:5},e={className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},f={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},g={className:"decorator",begin:"%\\w+"},h={className:"comment",begin:"\\(:",end:":\\)",relevance:10,contains:[{className:"doc",begin:"@\\w+"}]},i={begin:"{",end:"}"},j=[d,f,e,h,g,i];return i.contains=j,{aliases:["xpath","xq"],case_insensitive:!1,lexemes:/[a-zA-Z\$][a-zA-Z0-9_:\-]*/,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{keyword:b,literal:c},contains:j}}),a.registerLanguage("zephir",function(a){var b={className:"string",contains:[a.BACKSLASH_ESCAPE],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},a.inherit(a.APOS_STRING_MODE,{illegal:null}),a.inherit(a.QUOTE_STRING_MODE,{illegal:null})]},c={variants:[a.BINARY_NUMBER_MODE,a.C_NUMBER_MODE]};return{aliases:["zep"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var let while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally int uint long ulong char uchar double float bool boolean stringlikely unlikely",contains:[a.C_LINE_COMMENT_MODE,a.HASH_COMMENT_MODE,a.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),a.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:a.UNDERSCORE_IDENT_RE}),{className:"string",begin:"<<<['\"]?\\w+['\"]?$",end:"^\\w+;",contains:[a.BACKSLASH_ESCAPE]},{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[a.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",a.C_BLOCK_COMMENT_MODE,b,c]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[a.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[a.UNDERSCORE_TITLE_MODE]},{begin:"=>"},b,c]}}),a}),function(){"use strict";function a(a){return("0"+a).slice(-2)}function b(c,d){var e=c.getDay(),f=c.getDate(),g=c.getMonth(),h=c.getFullYear(),i=c.getHours(),l=c.getMinutes(),m=c.getSeconds();return d.replace(/%([%aAbBcdeHIlmMpPSwyYZz])/g,function(d){var n,o=d[1];switch(o){case"%":return"%";case"a":return j[e].slice(0,3);case"A":return j[e];case"b":return k[g].slice(0,3);case"B":return k[g];case"c":return c.toString();case"d":return a(f);case"e":return f;case"H":return a(i);case"I":return a(b(c,"%l"));case"l":return 0===i||12===i?12:(i+12)%12;case"m":return a(g+1);case"M":return a(l);case"p":return i>11?"PM":"AM";case"P":return i>11?"pm":"am";case"S":return a(m);case"w":return e;case"y":return a(h%100);case"Y":return h;case"Z":return n=c.toString().match(/\((\w+)\)$/),n?n[1]:"";case"z":return n=c.toString().match(/\w([+-]\d\d\d\d) /),n?n[1]:""}})}function c(a){this.date=a}function d(){if(null!==l)return l;if(!("Intl"in window))return!1;var a={day:"numeric",month:"short"},b=new window.Intl.DateTimeFormat(void 0,a),c=b.format(new Date(0));return l=!!c.match(/^\d/)}function e(){if(null!==m)return m;if(!("Intl"in window))return!0;var a={day:"numeric",month:"short",year:"numeric"},b=new window.Intl.DateTimeFormat(void 0,a),c=b.format(new Date(0));return m=!!c.match(/\d,/)}function f(a){var b=new Date;return b.getUTCFullYear()===a.getUTCFullYear()}function g(){var a,b,c;for(b=0,c=p.length;c>b;b++)a=p[b],a.textContent=a.getFormattedDate()}function h(a){var c={weekday:{"short":"%a","long":"%A"},day:{numeric:"%e","2-digit":"%d"},month:{"short":"%b","long":"%B"},year:{numeric:"%Y","2-digit":"%y"}},e=d()?"weekday day month year":"weekday month day, year";for(var f in c){var g=c[f][a.getAttribute(f)];e=e.replace(f,g||"")}return e=e.replace(/(\s,)|(,\s$)/,""),b(a._date,e).replace(/\s+/," ").trim()}function i(a){var c={hour:a.getAttribute("hour"),minute:a.getAttribute("minute"),second:a.getAttribute("second")};for(var d in c)c[d]||delete c[d];if(0!==Object.keys(c).length){if("Intl"in window){var e=new window.Intl.DateTimeFormat(void 0,c);return e.format(a._date)}var f=c.second?"%H:%M:%S":"%H:%M";return b(a._date,f)}}var j=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],k=["January","February","March","April","May","June","July","August","September","October","November","December"];c.prototype.toString=function(){var a=this.timeElapsed();return a?a:"on "+this.formatDate()},c.prototype.timeElapsed=function(){var a=(new Date).getTime()-this.date.getTime(),b=Math.round(a/1e3),c=Math.round(b/60),d=Math.round(c/60),e=Math.round(d/24);return 0>a?"just now":10>b?"just now":45>b?b+" seconds ago":90>b?"a minute ago":45>c?c+" minutes ago":90>c?"an hour ago":24>d?d+" hours ago":36>d?"a day ago":30>e?e+" days ago":null},c.prototype.timeAgo=function(){var a=(new Date).getTime()-this.date.getTime(),b=Math.round(a/1e3),c=Math.round(b/60),d=Math.round(c/60),e=Math.round(d/24),f=Math.round(e/30),g=Math.round(f/12);return 0>a?"just now":10>b?"just now":45>b?b+" seconds ago":90>b?"a minute ago":45>c?c+" minutes ago":90>c?"an hour ago":24>d?d+" hours ago":36>d?"a day ago":30>e?e+" days ago":45>e?"a month ago":12>f?f+" months ago":18>f?"a year ago":g+" years ago"},c.prototype.microTimeAgo=function(){var a=(new Date).getTime()-this.date.getTime(),b=a/1e3,c=b/60,d=c/60,e=d/24,f=e/30,g=f/12;return 1>c?"1m":60>c?Math.round(c)+"m":24>d?Math.round(d)+"h":365>e?Math.round(e)+"d":Math.round(g)+"y"};var l=null,m=null;c.prototype.formatDate=function(){var a=d()?"%e %b":"%b %e";return f(this.date)||(a+=e()?", %Y":" %Y"),b(this.date,a)},c.prototype.formatTime=function(){if("Intl"in window){var a=new window.Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit"});return a.format(this.date)}return b(this.date,"%l:%M%P")};var n,o,p=[];o="HTMLTimeElement"in window?Object.create(window.HTMLTimeElement.prototype):Object.create(window.HTMLElement.prototype),o.attributeChangedCallback=function(a,b,c){if("datetime"===a){var d=Date.parse(c);this._date=isNaN(d)?null:new Date(d)}var e=this.getFormattedTitle();e&&this.setAttribute("title",e);var f=this.getFormattedDate();f&&(this.textContent=f)},o.getFormattedTitle=function(){if(this._date){if(this.hasAttribute("title"))return this.getAttribute("title");if("Intl"in window){var a={day:"numeric",month:"short",year:"numeric",hour:"numeric",minute:"2-digit",timeZoneName:"short"},b=new window.Intl.DateTimeFormat(void 0,a);return b.format(this._date)}return this._date.toLocaleString()}};var q=Object.create(o);q.createdCallback=function(){var a=this.getAttribute("datetime");a&&this.attributeChangedCallback("datetime",null,a)},q.getFormattedDate=function(){return this._date?new c(this._date).toString():void 0},q.attachedCallback=function(){p.push(this),n||(g(),n=setInterval(g,6e4))},q.detachedCallback=function(){var a=p.indexOf(this);-1!==a&&p.splice(a,1),p.length||n&&(clearInterval(n),n=null)};var r=Object.create(q);r.getFormattedDate=function(){if(this._date){var a=this.getAttribute("format");return"micro"===a?new c(this._date).microTimeAgo():new c(this._date).timeAgo()}};var s=Object.create(o);s.createdCallback=function(){var a;(a=this.getAttribute("datetime"))&&this.attributeChangedCallback("datetime",null,a),(a=this.getAttribute("format"))&&this.attributeChangedCallback("format",null,a)},s.getFormattedDate=function(){if(this._date){var a=h(this)||"",b=i(this)||"";return(a+" "+b).trim()}},window.RelativeTimeElement=document.registerElement("relative-time",{prototype:q,"extends":"time"}),window.TimeAgoElement=document.registerElement("time-ago",{prototype:r,"extends":"time"}),window.LocalTimeElement=document.registerElement("local-time",{prototype:s,"extends":"time"})}(),function(a){"use strict";function b(b,c){if(c=c||{},c.worker&&y.WORKERS_SUPPORTED){var d=k();return d.userStep=c.step,d.userChunk=c.chunk,d.userComplete=c.complete,d.userError=c.error,c.step=r(c.step),c.chunk=r(c.chunk),c.complete=r(c.complete),c.error=r(c.error),delete c.worker,void d.postMessage({input:b,config:c,workerId:d.id})}var h=null;return"string"==typeof b?h=c.download?new e(c):new g(c):(a.File&&b instanceof File||b instanceof Object)&&(h=new f(c)),h.stream(b)}function c(a,b){function c(){"object"==typeof b&&("string"==typeof b.delimiter&&1==b.delimiter.length&&-1==y.BAD_DELIMITERS.indexOf(b.delimiter)&&(i=b.delimiter),("boolean"==typeof b.quotes||b.quotes instanceof Array)&&(h=b.quotes),"string"==typeof b.newline&&(j=b.newline))}function d(a){if("object"!=typeof a)return[];var b=[];for(var c in a)b.push(c);return b}function e(a,b){var c="";"string"==typeof a&&(a=JSON.parse(a)),"string"==typeof b&&(b=JSON.parse(b));var d=a instanceof Array&&a.length>0,e=!(b[0]instanceof Array);if(d){for(var g=0;g<a.length;g++)g>0&&(c+=i),c+=f(a[g],g);b.length>0&&(c+=j)}for(var h=0;h<b.length;h++){for(var k=d?a.length:b[h].length,l=0;k>l;l++){l>0&&(c+=i);var m=d&&e?a[l]:l;c+=f(b[h][m],l)}h<b.length-1&&(c+=j)}return c}function f(a,b){if("undefined"==typeof a||null===a)return"";a=a.toString().replace(/"/g,'""');var c="boolean"==typeof h&&h||h instanceof Array&&h[b]||g(a,y.BAD_DELIMITERS)||a.indexOf(i)>-1||" "==a.charAt(0)||" "==a.charAt(a.length-1);return c?'"'+a+'"':a}function g(a,b){for(var c=0;c<b.length;c++)if(a.indexOf(b[c])>-1)return!0;return!1}var h=!1,i=",",j="\r\n";if(c(),"string"==typeof a&&(a=JSON.parse(a)),a instanceof Array){if(!a.length||a[0]instanceof Array)return e(null,a);if("object"==typeof a[0])return e(d(a[0]),a)}else if("object"==typeof a)return"string"==typeof a.data&&(a.data=JSON.parse(a.data)),a.data instanceof Array&&(a.fields||(a.fields=a.data[0]instanceof Array?a.fields:d(a.data[0])),a.data[0]instanceof Array||"object"==typeof a.data[0]||(a.data=[a.data])),e(a.fields||[],a.data||[]);throw"exception: Unable to serialize unrecognized input"}function d(b){function c(a){var b=p(a);b.chunkSize=parseInt(b.chunkSize),a.step||a.chunk||(b.chunkSize=null),this._handle=new h(b),this._handle.streamer=this,this._config=b}this._handle=null,this._paused=!1,this._finished=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},c.call(this,b),this.parseChunk=function(b){if(this.isFirstChunk&&r(this._config.beforeFirstChunk)){var c=this._config.beforeFirstChunk(b);void 0!==c&&(b=c)}this.isFirstChunk=!1;var d=this._partialLine+b;this._partialLine="";var e=this._handle.parse(d,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var f=e.meta.cursor;this._finished||(this._partialLine=d.substring(f-this._baseIndex),this._baseIndex=f),e&&e.data&&(this._rowCount+=e.data.length);var g=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(u)a.postMessage({results:e,workerId:y.WORKER_ID,finished:g});else if(r(this._config.chunk)){if(this._config.chunk(e,this._handle),this._paused)return;e=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(e.data),this._completeResults.errors=this._completeResults.errors.concat(e.errors),this._completeResults.meta=e.meta),!g||!r(this._config.complete)||e&&e.meta.aborted||this._config.complete(this._completeResults),g||e&&e.meta.paused||this._nextChunk(),e}},this._sendError=function(b){r(this._config.error)?this._config.error(b):u&&this._config.error&&a.postMessage({workerId:y.WORKER_ID,error:b,finished:!1})}}function e(a){function b(a){var b=a.getResponseHeader("Content-Range");return parseInt(b.substr(b.lastIndexOf("/")+1))}a=a||{},a.chunkSize||(a.chunkSize=y.RemoteChunkSize),d.call(this,a);var c;t?this._nextChunk=function(){this._readChunk(),this._chunkLoaded()}:this._nextChunk=function(){this._readChunk()},this.stream=function(a){this._input=a,this._nextChunk()},this._readChunk=function(){if(this._finished)return void this._chunkLoaded();if(c=new XMLHttpRequest,t||(c.onload=q(this._chunkLoaded,this),c.onerror=q(this._chunkError,this)),c.open("GET",this._input,!t),this._config.chunkSize){var a=this._start+this._config.chunkSize-1;c.setRequestHeader("Range","bytes="+this._start+"-"+a),c.setRequestHeader("If-None-Match","webkit-no-cache")}try{c.send()}catch(b){this._chunkError(b.message)}t&&0==c.status?this._chunkError():this._start+=this._config.chunkSize},this._chunkLoaded=function(){if(4==c.readyState){if(c.status<200||c.status>=400)return void this._chunkError();this._finished=!this._config.chunkSize||this._start>b(c),this.parseChunk(c.responseText)}},this._chunkError=function(a){var b=c.statusText||a;this._sendError(b)}}function f(a){a=a||{},a.chunkSize||(a.chunkSize=y.LocalChunkSize),d.call(this,a);var b,c,e="undefined"!=typeof FileReader;this.stream=function(a){this._input=a,c=a.slice||a.webkitSlice||a.mozSlice,e?(b=new FileReader,b.onload=q(this._chunkLoaded,this),b.onerror=q(this._chunkError,this)):b=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var a=this._input;if(this._config.chunkSize){var d=Math.min(this._start+this._config.chunkSize,this._input.size);a=c.call(a,this._start,d)}var f=b.readAsText(a,this._config.encoding);e||this._chunkLoaded({target:{result:f}})},this._chunkLoaded=function(a){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(a.target.result)},this._chunkError=function(){this._sendError(b.error)}}function g(a){a=a||{},d.call(this,a);var b,c;this.stream=function(a){return b=a,c=a,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var a=this._config.chunkSize,b=a?c.substr(0,a):c;return c=a?c.substr(a):"",this._finished=!c,this.parseChunk(b)}}}function h(a){function b(){if(v&&m&&(j("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+y.DefaultDelimiter+"'"),m=!1),a.skipEmptyLines)for(var b=0;b<v.data.length;b++)1==v.data[b].length&&""==v.data[b][0]&&v.data.splice(b--,1);return c()&&d(),e()}function c(){return a.header&&0==u.length}function d(){if(v){for(var a=0;c()&&a<v.data.length;a++)for(var b=0;b<v.data[a].length;b++)u.push(v.data[a][b]);v.data.splice(0,1)}}function e(){if(!v||!a.header&&!a.dynamicTyping)return v;for(var b=0;b<v.data.length;b++){for(var c={},d=0;d<v.data[b].length;d++){if(a.dynamicTyping){var e=v.data[b][d];"true"==e||"TRUE"==e?v.data[b][d]=!0:"false"==e||"FALSE"==e?v.data[b][d]=!1:v.data[b][d]=h(e)}a.header&&(d>=u.length?(c.__parsed_extra||(c.__parsed_extra=[]),c.__parsed_extra.push(v.data[b][d])):c[u[d]]=v.data[b][d])}a.header&&(v.data[b]=c,d>u.length?j("FieldMismatch","TooManyFields","Too many fields: expected "+u.length+" fields but parsed "+d,b):d<u.length&&j("FieldMismatch","TooFewFields","Too few fields: expected "+u.length+" fields but parsed "+d,b))}return a.header&&v.meta&&(v.meta.fields=u),v}function f(b){for(var c,d,e,f=[",","        ","|",";",y.RECORD_SEP,y.UNIT_SEP],g=0;g<f.length;g++){var h=f[g],j=0,k=0;e=void 0;for(var l=new i({delimiter:h,preview:10}).parse(b),m=0;m<l.data.length;m++){var n=l.data[m].length;k+=n,"undefined"!=typeof e?n>1&&(j+=Math.abs(n-e),e=n):e=n}l.data.length>0&&(k/=l.data.length),("undefined"==typeof d||d>j)&&k>1.99&&(d=j,c=h)}return a.delimiter=c,{successful:!!c,bestDelimiter:c}}function g(a){a=a.substr(0,1048576);var b=a.split("\r");if(1==b.length)return"\n";for(var c=0,d=0;d<b.length;d++)"\n"==b[d][0]&&c++;return c>=b.length/2?"\r\n":"\r"}function h(a){var b=n.test(a);return b?parseFloat(a):a}function j(a,b,c,d){v.errors.push({type:a,code:b,message:c,row:d})}var k,l,m,n=/^\s*-?(\d*\.?\d+|\d+\.?\d*)(e[-+]?\d+)?\s*$/i,o=this,q=0,s=!1,t=!1,u=[],v={data:[],errors:[],meta:{}};if(r(a.step)){var w=a.step;a.step=function(d){if(v=d,c())b();else{if(b(),0==v.data.length)return;q+=d.data.length,a.preview&&q>a.preview?l.abort():w(v,o)}}}this.parse=function(c,d,e){if(a.newline||(a.newline=g(c)),m=!1,!a.delimiter){var h=f(c);h.successful?a.delimiter=h.bestDelimiter:(m=!0,a.delimiter=y.DefaultDelimiter),v.meta.delimiter=a.delimiter}var j=p(a);return a.preview&&a.header&&j.preview++,k=c,l=new i(j),v=l.parse(k,d,e),b(),s?{meta:{paused:!0}}:v||{meta:{paused:!1}}},this.paused=function(){return s},this.pause=function(){s=!0,l.abort(),k=k.substr(l.getCharIndex())},this.resume=function(){s=!1,o.streamer.parseChunk(k)},this.aborted=function(){return t},this.abort=function(){t=!0,l.abort(),v.meta.aborted=!0,r(a.complete)&&a.complete(v),k=""}}function i(a){a=a||{};var b=a.delimiter,c=a.newline,d=a.comments,e=a.step,f=a.preview,g=a.fastMode;if(("string"!=typeof b||y.BAD_DELIMITERS.indexOf(b)>-1)&&(b=","),d===b)throw"Comment character same as delimiter";d===!0?d="#":("string"!=typeof d||y.BAD_DELIMITERS.indexOf(d)>-1)&&(d=!1),"\n"!=c&&"\r"!=c&&"\r\n"!=c&&(c="\n");var h=0,i=!1;this.parse=function(a,j,k){function l(a){v.push(a),y=h}function m(b){return k?o():("undefined"==typeof b&&(b=a.substr(h)),x.push(b),h=q,l(x),u&&p(),o())}function n(b){h=b,l(x),x=[],C=a.indexOf(c,h)}function o(a){return{data:v,errors:w,meta:{delimiter:b,linebreak:c,aborted:i,truncated:!!a,cursor:y+(j||0)}}}function p(){e(o()),v=[],w=[]}if("string"!=typeof a)throw"Input must be a string";var q=a.length,r=b.length,s=c.length,t=d.length,u="function"==typeof e;h=0;var v=[],w=[],x=[],y=0;if(!a)return o();if(g||g!==!1&&-1===a.indexOf('"')){for(var z=a.split(c),A=0;A<z.length;A++){var x=z[A];if(h+=x.length,A!==z.length-1)h+=c.length;else if(k)return o();if(!d||x.substr(0,t)!=d){if(u){if(v=[],l(x.split(b)),p(),i)return o()}else l(x.split(b));if(f&&A>=f)return v=v.slice(0,f),o(!0)}}return o()}for(var B=a.indexOf(b,h),C=a.indexOf(c,h);;)if('"'!=a[h])if(d&&0===x.length&&a.substr(h,t)===d){if(-1==C)return o();h=C+s,C=a.indexOf(c,h),B=a.indexOf(b,h)}else if(-1!==B&&(C>B||-1===C))x.push(a.substring(h,B)),h=B+r,B=a.indexOf(b,h);else{if(-1===C)break;if(x.push(a.substring(h,C)),n(C+s),u&&(p(),i))return o();if(f&&v.length>=f)return o(!0)}else{var D=h;for(h++;;){var D=a.indexOf('"',D+1);if(-1===D)return k||w.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:v.length,index:h}),m();if(D===q-1){var E=a.substring(h,D).replace(/""/g,'"');return m(E)}if('"'!=a[D+1]){if(a[D+1]==b){x.push(a.substring(h,D).replace(/""/g,'"')),h=D+1+r,B=a.indexOf(b,h),C=a.indexOf(c,h);break}if(a.substr(D+1,s)===c){if(x.push(a.substring(h,D).replace(/""/g,'"')),n(D+1+s),B=a.indexOf(b,h),u&&(p(),i))return o();if(f&&v.length>=f)return o(!0);break}}else D++}}return m()},this.abort=function(){i=!0},this.getCharIndex=function(){return h}}function j(){var a=document.getElementsByTagName("script");return a.length?a[a.length-1].src:""}function k(){if(!y.WORKERS_SUPPORTED)return!1;if(!v&&null===y.SCRIPT_PATH)throw new Error("Script path cannot be determined automatically when Papa Parse is loaded asynchronously. You need to set Papa.SCRIPT_PATH manually.");var b=y.SCRIPT_PATH||s;b+=(-1!==b.indexOf("?")?"&":"?")+"papaworker";var c=new a.Worker(b);return c.onmessage=l,c.id=x++,w[c.id]=c,c}function l(a){var b=a.data,c=w[b.workerId],d=!1;if(b.error)c.userError(b.error,b.file);else if(b.results&&b.results.data){var e=function(){d=!0,m(b.workerId,{data:[],errors:[],meta:{aborted:!0}})},f={abort:e,pause:n,resume:n};if(r(c.userStep)){for(var g=0;g<b.results.data.length&&(c.userStep({data:[b.results.data[g]],errors:b.results.errors,meta:b.results.meta},f),!d);g++);delete b.results}else r(c.userChunk)&&(c.userChunk(b.results,f,b.file),delete b.results)}b.finished&&!d&&m(b.workerId,b.results)}function m(a,b){var c=w[a];r(c.userComplete)&&c.userComplete(b),c.terminate(),delete w[a]}function n(){throw"Not implemented."}function o(b){var c=b.data;if("undefined"==typeof y.WORKER_ID&&c&&(y.WORKER_ID=c.workerId),"string"==typeof c.input)a.postMessage({workerId:y.WORKER_ID,results:y.parse(c.input,c.config),finished:!0});else if(a.File&&c.input instanceof File||c.input instanceof Object){var d=y.parse(c.input,c.config);d&&a.postMessage({workerId:y.WORKER_ID,results:d,finished:!0})}}function p(a){if("object"!=typeof a)return a;var b=a instanceof Array?[]:{};for(var c in a)b[c]=p(a[c]);return b}function q(a,b){return function(){a.apply(b,arguments)}}function r(a){return"function"==typeof a}var s,t=!a.document&&!!a.postMessage,u=t&&/(\?|&)papaworker(=|&|$)/.test(a.location.search),v=!1,w={},x=0,y={};if(y.parse=b,y.unparse=c,y.RECORD_SEP=String.fromCharCode(30),y.UNIT_SEP=String.fromCharCode(31),y.BYTE_ORDER_MARK="\ufeff",y.BAD_DELIMITERS=["\r","\n",'"',y.BYTE_ORDER_MARK],y.WORKERS_SUPPORTED=!t&&!!a.Worker,y.SCRIPT_PATH=null,y.LocalChunkSize=10485760,y.RemoteChunkSize=5242880,y.DefaultDelimiter=",",y.Parser=i,y.ParserHandle=h,y.NetworkStreamer=e,y.FileStreamer=f,y.StringStreamer=g,"undefined"!=typeof module&&module.exports?module.exports=y:r(a.define)&&a.define.amd?define(function(){return y}):a.Papa=y,a.jQuery){var z=a.jQuery;z.fn.parse=function(b){function c(){if(0==g.length)return void(r(b.complete)&&b.complete());var a=g[0];if(r(b.before)){var c=b.before(a.file,a.inputElem);if("object"==typeof c){if("abort"==c.action)return void d("AbortError",a.file,a.inputElem,c.reason);if("skip"==c.action)return void e();"object"==typeof c.config&&(a.instanceConfig=z.extend(a.instanceConfig,c.config))}else if("skip"==c)return void e()}var f=a.instanceConfig.complete;a.instanceConfig.complete=function(b){r(f)&&f(b,a.file,a.inputElem),e()},y.parse(a.file,a.instanceConfig)}function d(a,c,d,e){r(b.error)&&b.error({name:a},c,d,e)}function e(){g.splice(0,1),c()}var f=b.config||{},g=[];return this.each(function(b){var c="INPUT"==z(this).prop("tagName").toUpperCase()&&"file"==z(this).attr("type").toLowerCase()&&a.FileReader;if(!c||!this.files||0==this.files.length)return!0;for(var d=0;d<this.files.length;d++)g.push({file:this.files[d],inputElem:this,instanceConfig:z.extend({},f)})}),c(),this}}u?a.onmessage=o:y.WORKERS_SUPPORTED&&(s=j(),document.body?document.addEventListener("DOMContentLoaded",function(){v=!0},!0):v=!0),e.prototype=Object.create(d.prototype),e.prototype.constructor=e,f.prototype=Object.create(d.prototype),f.prototype.constructor=f,g.prototype=Object.create(g.prototype),g.prototype.constructor=g}("undefined"!=typeof window?window:this),angular.module("ngPapaParse",[]),function(){"use strict";angular.module("ngPapaParse").factory("Papa",function(){if("undefined"==typeof Papa)throw new Error("angular-PapaParse's JavaScript requires PapaParse");return Papa})}.call(this),function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a,b){"use strict";if(!a.jstree){var c,d,e=0,f=!1,g=!1,h=!1,i=[],j=a("script:last").attr("src"),k=window.document,l=k.createElement("LI");l.setAttribute("role","treeitem"),c=k.createElement("I"),c.className="jstree-icon jstree-ocl",c.setAttribute("role","presentation"),l.appendChild(c),c=k.createElement("A"),c.className="jstree-anchor",c.setAttribute("href","#"),c.setAttribute("tabindex","-1"),d=k.createElement("I"),d.className="jstree-icon jstree-themeicon",d.setAttribute("role","presentation"),c.appendChild(d),l.appendChild(c),c=d=null,a.jstree={version:"3.2.1",defaults:{plugins:[]},plugins:{},path:j&&-1!==j.indexOf("/")?j.replace(/\/[^\/]+$/,""):"",idregex:/[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g,root:"#"},a.jstree.create=function(b,c){var d=new a.jstree.core(++e),f=c;return c=a.extend(!0,{},a.jstree.defaults,c),f&&f.plugins&&(c.plugins=f.plugins),a.each(c.plugins,function(a,b){"core"!==a&&(d=d.plugin(b,c[b]))}),a(b).data("jstree",d),d.init(b,c),d},a.jstree.destroy=function(){a(".jstree:jstree").jstree("destroy"),a(k).off(".jstree")},a.jstree.core=function(a){this._id=a,this._cnt=0,this._wrk=null,this._data={core:{themes:{name:!1,dots:!1,icons:!1},selected:[],last_error:{},working:!1,worker_queue:[],focused:null}}},a.jstree.reference=function(b){var c=null,d=null;if(!b||!b.id||b.tagName&&b.nodeType||(b=b.id),!d||!d.length)try{d=a(b)}catch(e){}if(!d||!d.length)try{d=a("#"+b.replace(a.jstree.idregex,"\\$&"))}catch(e){}return d&&d.length&&(d=d.closest(".jstree")).length&&(d=d.data("jstree"))?c=d:a(".jstree").each(function(){var d=a(this).data("jstree");return d&&d._model.data[b]?(c=d,!1):void 0}),c},a.fn.jstree=function(c){var d="string"==typeof c,e=Array.prototype.slice.call(arguments,1),f=null;return c!==!0||this.length?(this.each(function(){var g=a.jstree.reference(this),h=d&&g?g[c]:null;return f=d&&h?h.apply(g,e):null,g||d||c!==b&&!a.isPlainObject(c)||a.jstree.create(this,c),(g&&!d||c===!0)&&(f=g||!1),null!==f&&f!==b?!1:void 0}),null!==f&&f!==b?f:this):!1},a.expr[":"].jstree=a.expr.createPseudo(function(c){return function(c){return a(c).hasClass("jstree")&&a(c).data("jstree")!==b}}),a.jstree.defaults.core={data:!1,strings:!1,check_callback:!1,error:a.noop,animation:200,multiple:!0,themes:{name:!1,url:!1,dir:!1,dots:!0,icons:!0,stripes:!1,variant:!1,responsive:!1},expand_selected_onload:!0,worker:!0,force_text:!1,dblclick_toggle:!0},a.jstree.core.prototype={plugin:function(b,c){var d=a.jstree.plugins[b];return d?(this._data[b]={},d.prototype=this,new d(c,this)):this},init:function(b,c){this._model={data:{},changed:[],force_full_redraw:!1,redraw_timeout:!1,default_state:{loaded:!0,opened:!1,selected:!1,disabled:!1}},this._model.data[a.jstree.root]={id:a.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this.element=a(b).addClass("jstree jstree-"+this._id),this.settings=c,this._data.core.ready=!1,this._data.core.loaded=!1,
-this._data.core.rtl="rtl"===this.element.css("direction"),this.element[this._data.core.rtl?"addClass":"removeClass"]("jstree-rtl"),this.element.attr("role","tree"),this.settings.core.multiple&&this.element.attr("aria-multiselectable",!0),this.element.attr("tabindex")||this.element.attr("tabindex","0"),this.bind(),this.trigger("init"),this._data.core.original_container_html=this.element.find(" > ul > li").clone(!0),this._data.core.original_container_html.find("li").addBack().contents().filter(function(){return 3===this.nodeType&&(!this.nodeValue||/^\s+$/.test(this.nodeValue))}).remove(),this.element.html("<ul class='jstree-container-ul jstree-children' role='group'><li id='j"+this._id+"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='tree-item'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading"),this._data.core.li_height=this.get_container_ul().children("li").first().height()||24,this.trigger("loading"),this.load_node(a.jstree.root)},destroy:function(a){if(this._wrk)try{window.URL.revokeObjectURL(this._wrk),this._wrk=null}catch(b){}a||this.element.empty(),this.teardown()},teardown:function(){this.unbind(),this.element.removeClass("jstree").removeData("jstree").find("[class^='jstree']").addBack().attr("class",function(){return this.className.replace(/jstree[^ ]*|$/gi,"")}),this.element=null},bind:function(){var b="",c=null,d=0;this.element.on("dblclick.jstree",function(a){if(a.target.tagName&&"input"===a.target.tagName.toLowerCase())return!0;if(k.selection&&k.selection.empty)k.selection.empty();else if(window.getSelection){var b=window.getSelection();try{b.removeAllRanges(),b.collapse()}catch(c){}}}).on("mousedown.jstree",a.proxy(function(a){a.target===this.element[0]&&(a.preventDefault(),d=+new Date)},this)).on("mousedown.jstree",".jstree-ocl",function(a){a.preventDefault()}).on("click.jstree",".jstree-ocl",a.proxy(function(a){this.toggle_node(a.target)},this)).on("dblclick.jstree",".jstree-anchor",a.proxy(function(a){return a.target.tagName&&"input"===a.target.tagName.toLowerCase()?!0:void(this.settings.core.dblclick_toggle&&this.toggle_node(a.target))},this)).on("click.jstree",".jstree-anchor",a.proxy(function(b){b.preventDefault(),b.currentTarget!==k.activeElement&&a(b.currentTarget).focus(),this.activate_node(b.currentTarget,b)},this)).on("keydown.jstree",".jstree-anchor",a.proxy(function(b){if(b.target.tagName&&"input"===b.target.tagName.toLowerCase())return!0;if(32!==b.which&&13!==b.which&&(b.shiftKey||b.ctrlKey||b.altKey||b.metaKey))return!0;var c=null;switch(this._data.core.rtl&&(37===b.which?b.which=39:39===b.which&&(b.which=37)),b.which){case 32:b.ctrlKey&&(b.type="click",a(b.currentTarget).trigger(b));break;case 13:b.type="click",a(b.currentTarget).trigger(b);break;case 37:b.preventDefault(),this.is_open(b.currentTarget)?this.close_node(b.currentTarget):(c=this.get_parent(b.currentTarget),c&&c.id!==a.jstree.root&&this.get_node(c,!0).children(".jstree-anchor").focus());break;case 38:b.preventDefault(),c=this.get_prev_dom(b.currentTarget),c&&c.length&&c.children(".jstree-anchor").focus();break;case 39:b.preventDefault(),this.is_closed(b.currentTarget)?this.open_node(b.currentTarget,function(a){this.get_node(a,!0).children(".jstree-anchor").focus()}):this.is_open(b.currentTarget)&&(c=this.get_node(b.currentTarget,!0).children(".jstree-children")[0],c&&a(this._firstChild(c)).children(".jstree-anchor").focus());break;case 40:b.preventDefault(),c=this.get_next_dom(b.currentTarget),c&&c.length&&c.children(".jstree-anchor").focus();break;case 106:this.open_all();break;case 36:b.preventDefault(),c=this._firstChild(this.get_container_ul()[0]),c&&a(c).children(".jstree-anchor").filter(":visible").focus();break;case 35:b.preventDefault(),this.element.find(".jstree-anchor").filter(":visible").last().focus()}},this)).on("load_node.jstree",a.proxy(function(b,c){c.status&&(c.node.id!==a.jstree.root||this._data.core.loaded||(this._data.core.loaded=!0,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.trigger("loaded")),this._data.core.ready||setTimeout(a.proxy(function(){if(this.element&&!this.get_container_ul().find(".jstree-loading").length){if(this._data.core.ready=!0,this._data.core.selected.length){if(this.settings.core.expand_selected_onload){var b,c,d=[];for(b=0,c=this._data.core.selected.length;c>b;b++)d=d.concat(this._model.data[this._data.core.selected[b]].parents);for(d=a.vakata.array_unique(d),b=0,c=d.length;c>b;b++)this.open_node(d[b],!1,0)}this.trigger("changed",{action:"ready",selected:this._data.core.selected})}this.trigger("ready")}},this),0))},this)).on("keypress.jstree",a.proxy(function(d){if(d.target.tagName&&"input"===d.target.tagName.toLowerCase())return!0;c&&clearTimeout(c),c=setTimeout(function(){b=""},500);var e=String.fromCharCode(d.which).toLowerCase(),f=this.element.find(".jstree-anchor").filter(":visible"),g=f.index(k.activeElement)||0,h=!1;if(b+=e,b.length>1){if(f.slice(g).each(a.proxy(function(c,d){return 0===a(d).text().toLowerCase().indexOf(b)?(a(d).focus(),h=!0,!1):void 0},this)),h)return;if(f.slice(0,g).each(a.proxy(function(c,d){return 0===a(d).text().toLowerCase().indexOf(b)?(a(d).focus(),h=!0,!1):void 0},this)),h)return}if(new RegExp("^"+e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")+"+$").test(b)){if(f.slice(g+1).each(a.proxy(function(b,c){return a(c).text().toLowerCase().charAt(0)===e?(a(c).focus(),h=!0,!1):void 0},this)),h)return;if(f.slice(0,g+1).each(a.proxy(function(b,c){return a(c).text().toLowerCase().charAt(0)===e?(a(c).focus(),h=!0,!1):void 0},this)),h)return}},this)).on("init.jstree",a.proxy(function(){var a=this.settings.core.themes;this._data.core.themes.dots=a.dots,this._data.core.themes.stripes=a.stripes,this._data.core.themes.icons=a.icons,this.set_theme(a.name||"default",a.url),this.set_theme_variant(a.variant)},this)).on("loading.jstree",a.proxy(function(){this[this._data.core.themes.dots?"show_dots":"hide_dots"](),this[this._data.core.themes.icons?"show_icons":"hide_icons"](),this[this._data.core.themes.stripes?"show_stripes":"hide_stripes"]()},this)).on("blur.jstree",".jstree-anchor",a.proxy(function(b){this._data.core.focused=null,a(b.currentTarget).filter(".jstree-hovered").mouseleave(),this.element.attr("tabindex","0")},this)).on("focus.jstree",".jstree-anchor",a.proxy(function(b){var c=this.get_node(b.currentTarget);c&&c.id&&(this._data.core.focused=c.id),this.element.find(".jstree-hovered").not(b.currentTarget).mouseleave(),a(b.currentTarget).mouseenter(),this.element.attr("tabindex","-1")},this)).on("focus.jstree",a.proxy(function(){if(+new Date-d>500&&!this._data.core.focused){d=0;var a=this.get_node(this.element.attr("aria-activedescendant"),!0);a&&a.find("> .jstree-anchor").focus()}},this)).on("mouseenter.jstree",".jstree-anchor",a.proxy(function(a){this.hover_node(a.currentTarget)},this)).on("mouseleave.jstree",".jstree-anchor",a.proxy(function(a){this.dehover_node(a.currentTarget)},this))},unbind:function(){this.element.off(".jstree"),a(k).off(".jstree-"+this._id)},trigger:function(a,b){b||(b={}),b.instance=this,this.element.triggerHandler(a.replace(".jstree","")+".jstree",b)},get_container:function(){return this.element},get_container_ul:function(){return this.element.children(".jstree-children").first()},get_string:function(b){var c=this.settings.core.strings;return a.isFunction(c)?c.call(this,b):c&&c[b]?c[b]:b},_firstChild:function(a){for(a=a?a.firstChild:null;null!==a&&1!==a.nodeType;)a=a.nextSibling;return a},_nextSibling:function(a){for(a=a?a.nextSibling:null;null!==a&&1!==a.nodeType;)a=a.nextSibling;return a},_previousSibling:function(a){for(a=a?a.previousSibling:null;null!==a&&1!==a.nodeType;)a=a.previousSibling;return a},get_node:function(b,c){b&&b.id&&(b=b.id);var d;try{if(this._model.data[b])b=this._model.data[b];else if("string"==typeof b&&this._model.data[b.replace(/^#/,"")])b=this._model.data[b.replace(/^#/,"")];else if("string"==typeof b&&(d=a("#"+b.replace(a.jstree.idregex,"\\$&"),this.element)).length&&this._model.data[d.closest(".jstree-node").attr("id")])b=this._model.data[d.closest(".jstree-node").attr("id")];else if((d=a(b,this.element)).length&&this._model.data[d.closest(".jstree-node").attr("id")])b=this._model.data[d.closest(".jstree-node").attr("id")];else{if(!(d=a(b,this.element)).length||!d.hasClass("jstree"))return!1;b=this._model.data[a.jstree.root]}return c&&(b=b.id===a.jstree.root?this.element:a("#"+b.id.replace(a.jstree.idregex,"\\$&"),this.element)),b}catch(e){return!1}},get_path:function(b,c,d){if(b=b.parents?b:this.get_node(b),!b||b.id===a.jstree.root||!b.parents)return!1;var e,f,g=[];for(g.push(d?b.id:b.text),e=0,f=b.parents.length;f>e;e++)g.push(d?b.parents[e]:this.get_text(b.parents[e]));return g=g.reverse().slice(1),c?g.join(c):g},get_next_dom:function(b,c){var d;if(b=this.get_node(b,!0),b[0]===this.element[0]){for(d=this._firstChild(this.get_container_ul()[0]);d&&0===d.offsetHeight;)d=this._nextSibling(d);return d?a(d):!1}if(!b||!b.length)return!1;if(c){d=b[0];do d=this._nextSibling(d);while(d&&0===d.offsetHeight);return d?a(d):!1}if(b.hasClass("jstree-open")){for(d=this._firstChild(b.children(".jstree-children")[0]);d&&0===d.offsetHeight;)d=this._nextSibling(d);if(null!==d)return a(d)}d=b[0];do d=this._nextSibling(d);while(d&&0===d.offsetHeight);return null!==d?a(d):b.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first()},get_prev_dom:function(b,c){var d;if(b=this.get_node(b,!0),b[0]===this.element[0]){for(d=this.get_container_ul()[0].lastChild;d&&0===d.offsetHeight;)d=this._previousSibling(d);return d?a(d):!1}if(!b||!b.length)return!1;if(c){d=b[0];do d=this._previousSibling(d);while(d&&0===d.offsetHeight);return d?a(d):!1}d=b[0];do d=this._previousSibling(d);while(d&&0===d.offsetHeight);if(null!==d){for(b=a(d);b.hasClass("jstree-open");)b=b.children(".jstree-children").first().children(".jstree-node:visible:last");return b}return d=b[0].parentNode.parentNode,d&&d.className&&-1!==d.className.indexOf("jstree-node")?a(d):!1},get_parent:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.parent:!1},get_children_dom:function(a){return a=this.get_node(a,!0),a[0]===this.element[0]?this.get_container_ul().children(".jstree-node"):a&&a.length?a.children(".jstree-children").children(".jstree-node"):!1},is_parent:function(a){return a=this.get_node(a),a&&(a.state.loaded===!1||a.children.length>0)},is_loaded:function(a){return a=this.get_node(a),a&&a.state.loaded},is_loading:function(a){return a=this.get_node(a),a&&a.state&&a.state.loading},is_open:function(a){return a=this.get_node(a),a&&a.state.opened},is_closed:function(a){return a=this.get_node(a),a&&this.is_parent(a)&&!a.state.opened},is_leaf:function(a){return!this.is_parent(a)},load_node:function(b,c){var d,e,f,g,h;if(a.isArray(b))return this._load_nodes(b.slice(),c),!0;if(b=this.get_node(b),!b)return c&&c.call(this,b,!1),!1;if(b.state.loaded){for(b.state.loaded=!1,d=0,e=b.children_d.length;e>d;d++){for(f=0,g=b.parents.length;g>f;f++)this._model.data[b.parents[f]].children_d=a.vakata.array_remove_item(this._model.data[b.parents[f]].children_d,b.children_d[d]);this._model.data[b.children_d[d]].state.selected&&(h=!0,this._data.core.selected=a.vakata.array_remove_item(this._data.core.selected,b.children_d[d])),delete this._model.data[b.children_d[d]]}b.children=[],b.children_d=[],h&&this.trigger("changed",{action:"load_node",node:b,selected:this._data.core.selected})}return b.state.failed=!1,b.state.loading=!0,this.get_node(b,!0).addClass("jstree-loading").attr("aria-busy",!0),this._load_node(b,a.proxy(function(a){b=this._model.data[b.id],b.state.loading=!1,b.state.loaded=a,b.state.failed=!b.state.loaded;var d=this.get_node(b,!0),e=0,f=0,g=this._model.data,h=!1;for(e=0,f=b.children.length;f>e;e++)if(g[b.children[e]]&&!g[b.children[e]].state.hidden){h=!0;break}b.state.loaded&&!h&&d&&d.length&&!d.hasClass("jstree-leaf")&&d.removeClass("jstree-closed jstree-open").addClass("jstree-leaf"),d.removeClass("jstree-loading").attr("aria-busy",!1),this.trigger("load_node",{node:b,status:a}),c&&c.call(this,b,a)},this)),!0},_load_nodes:function(a,b,c){var d,e,f=!0,g=function(){this._load_nodes(a,b,!0)},h=this._model.data,i=[];for(d=0,e=a.length;e>d;d++)!h[a[d]]||(h[a[d]].state.loaded||h[a[d]].state.failed)&&c||(this.is_loading(a[d])||this.load_node(a[d],g),f=!1);if(f){for(d=0,e=a.length;e>d;d++)h[a[d]]&&h[a[d]].state.loaded&&i.push(a[d]);b&&!b.done&&(b.call(this,i),b.done=!0)}},load_all:function(b,c){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var d,e,f=[],g=this._model.data,h=g[b.id].children_d;for(b.state&&!b.state.loaded&&f.push(b.id),d=0,e=h.length;e>d;d++)g[h[d]]&&g[h[d]].state&&!g[h[d]].state.loaded&&f.push(h[d]);f.length?this._load_nodes(f,function(){this.load_all(b,c)}):(c&&c.call(this,b),this.trigger("load_all",{node:b}))},_load_node:function(b,c){var d,e=this.settings.core.data;return e?a.isFunction(e)?e.call(this,b,a.proxy(function(d){d===!1&&c.call(this,!1),this["string"==typeof d?"_append_html_data":"_append_json_data"](b,"string"==typeof d?a(a.parseHTML(d)).filter(function(){return 3!==this.nodeType}):d,function(a){c.call(this,a)})},this)):"object"==typeof e?e.url?(e=a.extend(!0,{},e),a.isFunction(e.url)&&(e.url=e.url.call(this,b)),a.isFunction(e.data)&&(e.data=e.data.call(this,b)),a.ajax(e).done(a.proxy(function(d,e,f){var g=f.getResponseHeader("Content-Type");return g&&-1!==g.indexOf("json")||"object"==typeof d?this._append_json_data(b,d,function(a){c.call(this,a)}):g&&-1!==g.indexOf("html")||"string"==typeof d?this._append_html_data(b,a(a.parseHTML(d)).filter(function(){return 3!==this.nodeType}),function(a){c.call(this,a)}):(this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:b.id,xhr:f})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1))},this)).fail(a.proxy(function(a){c.call(this,!1),this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:b.id,xhr:a})},this.settings.core.error.call(this,this._data.core.last_error)},this))):(d=a.isArray(e)||a.isPlainObject(e)?JSON.parse(JSON.stringify(e)):e,b.id===a.jstree.root?this._append_json_data(b,d,function(a){c.call(this,a)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_05",reason:"Could not load node",data:JSON.stringify({id:b.id})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1))):"string"==typeof e?b.id===a.jstree.root?this._append_html_data(b,a(a.parseHTML(e)).filter(function(){return 3!==this.nodeType}),function(a){c.call(this,a)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_06",reason:"Could not load node",data:JSON.stringify({id:b.id})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1)):c.call(this,!1):b.id===a.jstree.root?this._append_html_data(b,this._data.core.original_container_html.clone(!0),function(a){c.call(this,a)}):c.call(this,!1)},_node_changed:function(a){a=this.get_node(a),a&&this._model.changed.push(a.id)},_append_html_data:function(b,c,d){b=this.get_node(b),b.children=[],b.children_d=[];var e,f,g,h=c.is("ul")?c.children():c,i=b.id,j=[],k=[],l=this._model.data,m=l[i],n=this._data.core.selected.length;for(h.each(a.proxy(function(b,c){e=this._parse_model_from_html(a(c),i,m.parents.concat()),e&&(j.push(e),k.push(e),l[e].children_d.length&&(k=k.concat(l[e].children_d)))},this)),m.children=j,m.children_d=k,f=0,g=m.parents.length;g>f;f++)l[m.parents[f]].children_d=l[m.parents[f]].children_d.concat(k);this.trigger("model",{nodes:k,parent:i}),i!==a.jstree.root?(this._node_changed(i),this.redraw()):(this.get_container_ul().children(".jstree-initial-node").remove(),this.redraw(!0)),this._data.core.selected.length!==n&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),d.call(this,!0)},_append_json_data:function(b,c,d,e){if(null!==this.element){b=this.get_node(b),b.children=[],b.children_d=[],c.d&&(c=c.d,"string"==typeof c&&(c=JSON.parse(c))),a.isArray(c)||(c=[c]);var f=null,g={df:this._model.default_state,dat:c,par:b.id,m:this._model.data,t_id:this._id,t_cnt:this._cnt,sel:this._data.core.selected},h=function(a,b){a.data&&(a=a.data);var c,d,e,f,g=a.dat,h=a.par,i=[],j=[],k=[],l=a.df,m=a.t_id,n=a.t_cnt,o=a.m,p=o[h],q=a.sel,r=function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e,f,g,h,i=a.id.toString(),j={id:i,text:a.text||"",icon:a.icon!==b?a.icon:!0,parent:c,parents:d,children:a.children||[],children_d:a.children_d||[],data:a.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(e in l)l.hasOwnProperty(e)&&(j.state[e]=l[e]);if(a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(j.icon=a.data.jstree.icon),(j.icon===b||null===j.icon||""===j.icon)&&(j.icon=!0),a&&a.data&&(j.data=a.data,a.data.jstree))for(e in a.data.jstree)a.data.jstree.hasOwnProperty(e)&&(j.state[e]=a.data.jstree[e]);if(a&&"object"==typeof a.state)for(e in a.state)a.state.hasOwnProperty(e)&&(j.state[e]=a.state[e]);if(a&&"object"==typeof a.li_attr)for(e in a.li_attr)a.li_attr.hasOwnProperty(e)&&(j.li_attr[e]=a.li_attr[e]);if(j.li_attr.id||(j.li_attr.id=i),a&&"object"==typeof a.a_attr)for(e in a.a_attr)a.a_attr.hasOwnProperty(e)&&(j.a_attr[e]=a.a_attr[e]);for(a&&a.children&&a.children===!0&&(j.state.loaded=!1,j.children=[],j.children_d=[]),o[j.id]=j,e=0,f=j.children.length;f>e;e++)g=r(o[j.children[e]],j.id,d),h=o[g],j.children_d.push(g),h.children_d.length&&(j.children_d=j.children_d.concat(h.children_d));return delete a.data,delete a.children,o[j.id].original=a,j.state.selected&&k.push(j.id),j.id},s=function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e,f,g,h,i,j=!1;do j="j"+m+"_"+ ++n;while(o[j]);i={id:!1,text:"string"==typeof a?a:"",icon:"object"==typeof a&&a.icon!==b?a.icon:!0,parent:c,parents:d,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(e in l)l.hasOwnProperty(e)&&(i.state[e]=l[e]);if(a&&a.id&&(i.id=a.id.toString()),a&&a.text&&(i.text=a.text),a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(i.icon=a.data.jstree.icon),(i.icon===b||null===i.icon||""===i.icon)&&(i.icon=!0),a&&a.data&&(i.data=a.data,a.data.jstree))for(e in a.data.jstree)a.data.jstree.hasOwnProperty(e)&&(i.state[e]=a.data.jstree[e]);if(a&&"object"==typeof a.state)for(e in a.state)a.state.hasOwnProperty(e)&&(i.state[e]=a.state[e]);if(a&&"object"==typeof a.li_attr)for(e in a.li_attr)a.li_attr.hasOwnProperty(e)&&(i.li_attr[e]=a.li_attr[e]);if(i.li_attr.id&&!i.id&&(i.id=i.li_attr.id.toString()),i.id||(i.id=j),i.li_attr.id||(i.li_attr.id=i.id),a&&"object"==typeof a.a_attr)for(e in a.a_attr)a.a_attr.hasOwnProperty(e)&&(i.a_attr[e]=a.a_attr[e]);if(a&&a.children&&a.children.length){for(e=0,f=a.children.length;f>e;e++)g=s(a.children[e],i.id,d),h=o[g],i.children.push(g),h.children_d.length&&(i.children_d=i.children_d.concat(h.children_d));i.children_d=i.children_d.concat(i.children)}return a&&a.children&&a.children===!0&&(i.state.loaded=!1,i.children=[],i.children_d=[]),delete a.data,delete a.children,i.original=a,o[i.id]=i,i.state.selected&&k.push(i.id),i.id};if(g.length&&g[0].id!==b&&g[0].parent!==b){for(d=0,e=g.length;e>d;d++)g[d].children||(g[d].children=[]),o[g[d].id.toString()]=g[d];for(d=0,e=g.length;e>d;d++)o[g[d].parent.toString()].children.push(g[d].id.toString()),p.children_d.push(g[d].id.toString());for(d=0,e=p.children.length;e>d;d++)c=r(o[p.children[d]],h,p.parents.concat()),j.push(c),o[c].children_d.length&&(j=j.concat(o[c].children_d));for(d=0,e=p.parents.length;e>d;d++)o[p.parents[d]].children_d=o[p.parents[d]].children_d.concat(j);f={cnt:n,mod:o,sel:q,par:h,dpc:j,add:k}}else{for(d=0,e=g.length;e>d;d++)c=s(g[d],h,p.parents.concat()),c&&(i.push(c),j.push(c),o[c].children_d.length&&(j=j.concat(o[c].children_d)));for(p.children=i,p.children_d=j,d=0,e=p.parents.length;e>d;d++)o[p.parents[d]].children_d=o[p.parents[d]].children_d.concat(j);f={cnt:n,mod:o,sel:q,par:h,dpc:j,add:k}}return"undefined"!=typeof window&&"undefined"!=typeof window.document?f:void postMessage(f)},i=function(b,c){if(null!==this.element){if(this._cnt=b.cnt,this._model.data=b.mod,c){var e,f,g=b.add,h=b.sel,i=this._data.core.selected.slice(),j=this._model.data;if(h.length!==i.length||a.vakata.array_unique(h.concat(i)).length!==h.length){for(e=0,f=h.length;f>e;e++)-1===a.inArray(h[e],g)&&-1===a.inArray(h[e],i)&&(j[h[e]].state.selected=!1);for(e=0,f=i.length;f>e;e++)-1===a.inArray(i[e],h)&&(j[i[e]].state.selected=!0)}}b.add.length&&(this._data.core.selected=this._data.core.selected.concat(b.add)),this.trigger("model",{nodes:b.dpc,parent:b.par}),b.par!==a.jstree.root?(this._node_changed(b.par),this.redraw()):this.redraw(!0),b.add.length&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),d.call(this,!0)}};if(this.settings.core.worker&&window.Blob&&window.URL&&window.Worker)try{null===this._wrk&&(this._wrk=window.URL.createObjectURL(new window.Blob(["self.onmessage = "+h.toString()],{type:"text/javascript"}))),!this._data.core.working||e?(this._data.core.working=!0,f=new window.Worker(this._wrk),f.onmessage=a.proxy(function(a){i.call(this,a.data,!0);try{f.terminate(),f=null}catch(b){}this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1},this),g.par?f.postMessage(g):this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1):this._data.core.worker_queue.push([b,c,d,!0])}catch(j){i.call(this,h(g),!1),this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1}else i.call(this,h(g),!1)}},_parse_model_from_html:function(c,d,e){e=e?[].concat(e):[],d&&e.unshift(d);var f,g,h,i,j,k=this._model.data,l={id:!1,text:!1,icon:!0,parent:d,parents:e,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(h in this._model.default_state)this._model.default_state.hasOwnProperty(h)&&(l.state[h]=this._model.default_state[h]);if(i=a.vakata.attributes(c,!0),a.each(i,function(b,c){return c=a.trim(c),c.length?(l.li_attr[b]=c,void("id"===b&&(l.id=c.toString()))):!0}),i=c.children("a").first(),i.length&&(i=a.vakata.attributes(i,!0),a.each(i,function(b,c){c=a.trim(c),c.length&&(l.a_attr[b]=c)})),i=c.children("a").first().length?c.children("a").first().clone():c.clone(),i.children("ins, i, ul").remove(),i=i.html(),i=a("<div />").html(i),l.text=this.settings.core.force_text?i.text():i.html(),i=c.data(),l.data=i?a.extend(!0,{},i):null,l.state.opened=c.hasClass("jstree-open"),l.state.selected=c.children("a").hasClass("jstree-clicked"),l.state.disabled=c.children("a").hasClass("jstree-disabled"),l.data&&l.data.jstree)for(h in l.data.jstree)l.data.jstree.hasOwnProperty(h)&&(l.state[h]=l.data.jstree[h]);i=c.children("a").children(".jstree-themeicon"),i.length&&(l.icon=i.hasClass("jstree-themeicon-hidden")?!1:i.attr("rel")),l.state.icon!==b&&(l.icon=l.state.icon),(l.icon===b||null===l.icon||""===l.icon)&&(l.icon=!0),i=c.children("ul").children("li");do j="j"+this._id+"_"+ ++this._cnt;while(k[j]);return l.id=l.li_attr.id?l.li_attr.id.toString():j,i.length?(i.each(a.proxy(function(b,c){f=this._parse_model_from_html(a(c),l.id,e),g=this._model.data[f],l.children.push(f),g.children_d.length&&(l.children_d=l.children_d.concat(g.children_d))},this)),l.children_d=l.children_d.concat(l.children)):c.hasClass("jstree-closed")&&(l.state.loaded=!1),l.li_attr["class"]&&(l.li_attr["class"]=l.li_attr["class"].replace("jstree-closed","").replace("jstree-open","")),l.a_attr["class"]&&(l.a_attr["class"]=l.a_attr["class"].replace("jstree-clicked","").replace("jstree-disabled","")),k[l.id]=l,l.state.selected&&this._data.core.selected.push(l.id),l.id},_parse_model_from_flat_json:function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e,f,g,h,i=a.id.toString(),j=this._model.data,k=this._model.default_state,l={id:i,text:a.text||"",icon:a.icon!==b?a.icon:!0,parent:c,parents:d,children:a.children||[],children_d:a.children_d||[],data:a.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(e in k)k.hasOwnProperty(e)&&(l.state[e]=k[e]);if(a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(l.icon=a.data.jstree.icon),(l.icon===b||null===l.icon||""===l.icon)&&(l.icon=!0),a&&a.data&&(l.data=a.data,a.data.jstree))for(e in a.data.jstree)a.data.jstree.hasOwnProperty(e)&&(l.state[e]=a.data.jstree[e]);if(a&&"object"==typeof a.state)for(e in a.state)a.state.hasOwnProperty(e)&&(l.state[e]=a.state[e]);if(a&&"object"==typeof a.li_attr)for(e in a.li_attr)a.li_attr.hasOwnProperty(e)&&(l.li_attr[e]=a.li_attr[e]);if(l.li_attr.id||(l.li_attr.id=i),a&&"object"==typeof a.a_attr)for(e in a.a_attr)a.a_attr.hasOwnProperty(e)&&(l.a_attr[e]=a.a_attr[e]);for(a&&a.children&&a.children===!0&&(l.state.loaded=!1,l.children=[],l.children_d=[]),j[l.id]=l,e=0,f=l.children.length;f>e;e++)g=this._parse_model_from_flat_json(j[l.children[e]],l.id,d),h=j[g],l.children_d.push(g),h.children_d.length&&(l.children_d=l.children_d.concat(h.children_d));return delete a.data,delete a.children,j[l.id].original=a,l.state.selected&&this._data.core.selected.push(l.id),l.id},_parse_model_from_json:function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e,f,g,h,i,j=!1,k=this._model.data,l=this._model.default_state;do j="j"+this._id+"_"+ ++this._cnt;while(k[j]);i={id:!1,text:"string"==typeof a?a:"",icon:"object"==typeof a&&a.icon!==b?a.icon:!0,parent:c,parents:d,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(e in l)l.hasOwnProperty(e)&&(i.state[e]=l[e]);if(a&&a.id&&(i.id=a.id.toString()),a&&a.text&&(i.text=a.text),a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(i.icon=a.data.jstree.icon),(i.icon===b||null===i.icon||""===i.icon)&&(i.icon=!0),a&&a.data&&(i.data=a.data,a.data.jstree))for(e in a.data.jstree)a.data.jstree.hasOwnProperty(e)&&(i.state[e]=a.data.jstree[e]);if(a&&"object"==typeof a.state)for(e in a.state)a.state.hasOwnProperty(e)&&(i.state[e]=a.state[e]);if(a&&"object"==typeof a.li_attr)for(e in a.li_attr)a.li_attr.hasOwnProperty(e)&&(i.li_attr[e]=a.li_attr[e]);if(i.li_attr.id&&!i.id&&(i.id=i.li_attr.id.toString()),i.id||(i.id=j),i.li_attr.id||(i.li_attr.id=i.id),a&&"object"==typeof a.a_attr)for(e in a.a_attr)a.a_attr.hasOwnProperty(e)&&(i.a_attr[e]=a.a_attr[e]);if(a&&a.children&&a.children.length){for(e=0,f=a.children.length;f>e;e++)g=this._parse_model_from_json(a.children[e],i.id,d),h=k[g],i.children.push(g),h.children_d.length&&(i.children_d=i.children_d.concat(h.children_d));i.children_d=i.children_d.concat(i.children)}return a&&a.children&&a.children===!0&&(i.state.loaded=!1,i.children=[],i.children_d=[]),delete a.data,delete a.children,i.original=a,k[i.id]=i,i.state.selected&&this._data.core.selected.push(i.id),i.id},_redraw:function(){var b,c,d,e=this._model.force_full_redraw?this._model.data[a.jstree.root].children.concat([]):this._model.changed.concat([]),f=k.createElement("UL"),g=this._data.core.focused;for(c=0,d=e.length;d>c;c++)b=this.redraw_node(e[c],!0,this._model.force_full_redraw),b&&this._model.force_full_redraw&&f.appendChild(b);this._model.force_full_redraw&&(f.className=this.get_container_ul()[0].className,f.setAttribute("role","group"),this.element.empty().append(f)),null!==g&&(b=this.get_node(g,!0),b&&b.length&&b.children(".jstree-anchor")[0]!==k.activeElement?b.children(".jstree-anchor").focus():this._data.core.focused=null),this._model.force_full_redraw=!1,this._model.changed=[],this.trigger("redraw",{nodes:e})},redraw:function(a){a&&(this._model.force_full_redraw=!0),this._redraw()},draw_children:function(b){var c=this.get_node(b),d=!1,e=!1,f=!1,g=k;if(!c)return!1;if(c.id===a.jstree.root)return this.redraw(!0);if(b=this.get_node(b,!0),!b||!b.length)return!1;if(b.children(".jstree-children").remove(),b=b[0],c.children.length&&c.state.loaded){for(f=g.createElement("UL"),f.setAttribute("role","group"),f.className="jstree-children",d=0,e=c.children.length;e>d;d++)f.appendChild(this.redraw_node(c.children[d],!0,!0));b.appendChild(f)}},redraw_node:function(b,c,d,e){var f=this.get_node(b),g=!1,h=!1,i=!1,j=!1,m=!1,n=!1,o="",p=k,q=this._model.data,r=!1,s=null,t=0,u=0,v=!1,w=!1;if(!f)return!1;if(f.id===a.jstree.root)return this.redraw(!0);if(c=c||0===f.children.length,b=k.querySelector?this.element[0].querySelector("#"+(-1!=="0123456789".indexOf(f.id[0])?"\\3"+f.id[0]+" "+f.id.substr(1).replace(a.jstree.idregex,"\\$&"):f.id.replace(a.jstree.idregex,"\\$&"))):k.getElementById(f.id))b=a(b),d||(g=b.parent().parent()[0],g===this.element[0]&&(g=null),h=b.index()),c||!f.children.length||b.children(".jstree-children").length||(c=!0),c||(i=b.children(".jstree-children")[0]),r=b.children(".jstree-anchor")[0]===k.activeElement,b.remove();else if(c=!0,!d){if(g=f.parent!==a.jstree.root?a("#"+f.parent.replace(a.jstree.idregex,"\\$&"),this.element)[0]:null,!(null===g||g&&q[f.parent].state.opened))return!1;h=a.inArray(f.id,null===g?q[a.jstree.root].children:q[f.parent].children)}b=l.cloneNode(!0),o="jstree-node ";for(j in f.li_attr)if(f.li_attr.hasOwnProperty(j)){if("id"===j)continue;"class"!==j?b.setAttribute(j,f.li_attr[j]):o+=f.li_attr[j]}for(f.a_attr.id||(f.a_attr.id=f.id+"_anchor"),b.setAttribute("aria-selected",!!f.state.selected),b.setAttribute("aria-level",f.parents.length),b.setAttribute("aria-labelledby",f.a_attr.id),f.state.disabled&&b.setAttribute("aria-disabled",!0),j=0,m=f.children.length;m>j;j++)if(!q[f.children[j]].state.hidden){v=!0;break}if(null!==f.parent&&q[f.parent]&&!f.state.hidden&&(j=a.inArray(f.id,q[f.parent].children),w=f.id,-1!==j))for(j++,m=q[f.parent].children.length;m>j&&(q[q[f.parent].children[j]].state.hidden||(w=q[f.parent].children[j]),w===f.id);j++);f.state.hidden&&(o+=" jstree-hidden"),f.state.loaded&&!v?o+=" jstree-leaf":(o+=f.state.opened&&f.state.loaded?" jstree-open":" jstree-closed",b.setAttribute("aria-expanded",f.state.opened&&f.state.loaded)),w===f.id&&(o+=" jstree-last"),b.id=f.id,b.className=o,o=(f.state.selected?" jstree-clicked":"")+(f.state.disabled?" jstree-disabled":"");for(m in f.a_attr)if(f.a_attr.hasOwnProperty(m)){if("href"===m&&"#"===f.a_attr[m])continue;"class"!==m?b.childNodes[1].setAttribute(m,f.a_attr[m]):o+=" "+f.a_attr[m]}if(o.length&&(b.childNodes[1].className="jstree-anchor "+o),(f.icon&&f.icon!==!0||f.icon===!1)&&(f.icon===!1?b.childNodes[1].childNodes[0].className+=" jstree-themeicon-hidden":-1===f.icon.indexOf("/")&&-1===f.icon.indexOf(".")?b.childNodes[1].childNodes[0].className+=" "+f.icon+" jstree-themeicon-custom":(b.childNodes[1].childNodes[0].style.backgroundImage="url("+f.icon+")",b.childNodes[1].childNodes[0].style.backgroundPosition="center center",b.childNodes[1].childNodes[0].style.backgroundSize="auto",b.childNodes[1].childNodes[0].className+=" jstree-themeicon-custom")),this.settings.core.force_text?b.childNodes[1].appendChild(p.createTextNode(f.text)):b.childNodes[1].innerHTML+=f.text,c&&f.children.length&&(f.state.opened||e)&&f.state.loaded){for(n=p.createElement("UL"),n.setAttribute("role","group"),n.className="jstree-children",j=0,m=f.children.length;m>j;j++)n.appendChild(this.redraw_node(f.children[j],c,!0));b.appendChild(n)}if(i&&b.appendChild(i),!d){for(g||(g=this.element[0]),j=0,m=g.childNodes.length;m>j;j++)if(g.childNodes[j]&&g.childNodes[j].className&&-1!==g.childNodes[j].className.indexOf("jstree-children")){s=g.childNodes[j];break}s||(s=p.createElement("UL"),s.setAttribute("role","group"),s.className="jstree-children",g.appendChild(s)),g=s,h<g.childNodes.length?g.insertBefore(b,g.childNodes[h]):g.appendChild(b),r&&(t=this.element[0].scrollTop,u=this.element[0].scrollLeft,b.childNodes[1].focus(),this.element[0].scrollTop=t,this.element[0].scrollLeft=u)}return f.state.opened&&!f.state.loaded&&(f.state.opened=!1,
-setTimeout(a.proxy(function(){this.open_node(f.id,!1,0)},this),0)),b},open_node:function(c,d,e){var f,g,h,i;if(a.isArray(c)){for(c=c.slice(),f=0,g=c.length;g>f;f++)this.open_node(c[f],d,e);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?(e=e===b?this.settings.core.animation:e,this.is_closed(c)?this.is_loaded(c)?(h=this.get_node(c,!0),i=this,h.length&&(e&&h.children(".jstree-children").length&&h.children(".jstree-children").stop(!0,!0),c.children.length&&!this._firstChild(h.children(".jstree-children")[0])&&this.draw_children(c),e?(this.trigger("before_open",{node:c}),h.children(".jstree-children").css("display","none").end().removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded",!0).children(".jstree-children").stop(!0,!0).slideDown(e,function(){this.style.display="",i.trigger("after_open",{node:c})})):(this.trigger("before_open",{node:c}),h[0].className=h[0].className.replace("jstree-closed","jstree-open"),h[0].setAttribute("aria-expanded",!0))),c.state.opened=!0,d&&d.call(this,c,!0),h.length||this.trigger("before_open",{node:c}),this.trigger("open_node",{node:c}),e&&h.length||this.trigger("after_open",{node:c}),!0):this.is_loading(c)?setTimeout(a.proxy(function(){this.open_node(c,d,e)},this),500):void this.load_node(c,function(a,b){return b?this.open_node(a,d,e):d?d.call(this,a,!1):!1}):(d&&d.call(this,c,!1),!1)):!1},_open_to:function(b){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var c,d,e=b.parents;for(c=0,d=e.length;d>c;c+=1)c!==a.jstree.root&&this.open_node(e[c],!1,0);return a("#"+b.id.replace(a.jstree.idregex,"\\$&"),this.element)},close_node:function(c,d){var e,f,g,h;if(a.isArray(c)){for(c=c.slice(),e=0,f=c.length;f>e;e++)this.close_node(c[e],d);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?this.is_closed(c)?!1:(d=d===b?this.settings.core.animation:d,g=this,h=this.get_node(c,!0),h.length&&(d?h.children(".jstree-children").attr("style","display:block !important").end().removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded",!1).children(".jstree-children").stop(!0,!0).slideUp(d,function(){this.style.display="",h.children(".jstree-children").remove(),g.trigger("after_close",{node:c})}):(h[0].className=h[0].className.replace("jstree-open","jstree-closed"),h.attr("aria-expanded",!1).children(".jstree-children").remove())),c.state.opened=!1,this.trigger("close_node",{node:c}),void(d&&h.length||this.trigger("after_close",{node:c}))):!1},toggle_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.toggle_node(b[c]);return!0}return this.is_closed(b)?this.open_node(b):this.is_open(b)?this.close_node(b):void 0},open_all:function(b,c,d){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var e,f,g,h=b.id===a.jstree.root?this.get_container_ul():this.get_node(b,!0);if(!h.length){for(e=0,f=b.children_d.length;f>e;e++)this.is_closed(this._model.data[b.children_d[e]])&&(this._model.data[b.children_d[e]].state.opened=!0);return this.trigger("open_all",{node:b})}d=d||h,g=this,h=this.is_closed(b)?h.find(".jstree-closed").addBack():h.find(".jstree-closed"),h.each(function(){g.open_node(this,function(a,b){b&&this.is_parent(a)&&this.open_all(a,c,d)},c||0)}),0===d.find(".jstree-closed").length&&this.trigger("open_all",{node:this.get_node(d)})},close_all:function(b,c){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var d,e,f=b.id===a.jstree.root?this.get_container_ul():this.get_node(b,!0),g=this;for(f.length&&(f=this.is_open(b)?f.find(".jstree-open").addBack():f.find(".jstree-open"),a(f.get().reverse()).each(function(){g.close_node(this,c||0)})),d=0,e=b.children_d.length;e>d;d++)this._model.data[b.children_d[d]].state.opened=!1;this.trigger("close_all",{node:b})},is_disabled:function(a){return a=this.get_node(a),a&&a.state&&a.state.disabled},enable_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.enable_node(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.state.disabled=!1,this.get_node(b,!0).children(".jstree-anchor").removeClass("jstree-disabled").attr("aria-disabled",!1),void this.trigger("enable_node",{node:b})):!1},disable_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.disable_node(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.state.disabled=!0,this.get_node(b,!0).children(".jstree-anchor").addClass("jstree-disabled").attr("aria-disabled",!0),void this.trigger("disable_node",{node:b})):!1},hide_node:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.hide_node(b[d],!0);return this.redraw(),!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?void(b.state.hidden||(b.state.hidden=!0,this._node_changed(b.parent),c||this.redraw(),this.trigger("hide_node",{node:b}))):!1},show_node:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.show_node(b[d],!0);return this.redraw(),!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?void(b.state.hidden&&(b.state.hidden=!1,this._node_changed(b.parent),c||this.redraw(),this.trigger("show_node",{node:b}))):!1},hide_all:function(b){var c,d=this._model.data,e=[];for(c in d)d.hasOwnProperty(c)&&c!==a.jstree.root&&!d[c].state.hidden&&(d[c].state.hidden=!0,e.push(c));return this._model.force_full_redraw=!0,b||this.redraw(),this.trigger("hide_all",{nodes:e}),e},show_all:function(b){var c,d=this._model.data,e=[];for(c in d)d.hasOwnProperty(c)&&c!==a.jstree.root&&d[c].state.hidden&&(d[c].state.hidden=!1,e.push(c));return this._model.force_full_redraw=!0,b||this.redraw(),this.trigger("show_all",{nodes:e}),e},activate_node:function(a,c){if(this.is_disabled(a))return!1;if(c&&"object"==typeof c||(c={}),this._data.core.last_clicked=this._data.core.last_clicked&&this._data.core.last_clicked.id!==b?this.get_node(this._data.core.last_clicked.id):null,this._data.core.last_clicked&&!this._data.core.last_clicked.state.selected&&(this._data.core.last_clicked=null),!this._data.core.last_clicked&&this._data.core.selected.length&&(this._data.core.last_clicked=this.get_node(this._data.core.selected[this._data.core.selected.length-1])),this.settings.core.multiple&&(c.metaKey||c.ctrlKey||c.shiftKey)&&(!c.shiftKey||this._data.core.last_clicked&&this.get_parent(a)&&this.get_parent(a)===this._data.core.last_clicked.parent))if(c.shiftKey){var d,e,f=this.get_node(a).id,g=this._data.core.last_clicked.id,h=this.get_node(this._data.core.last_clicked.parent).children,i=!1;for(d=0,e=h.length;e>d;d+=1)h[d]===f&&(i=!i),h[d]===g&&(i=!i),this.is_disabled(h[d])||!i&&h[d]!==f&&h[d]!==g?this.deselect_node(h[d],!0,c):this.select_node(h[d],!0,!1,c);this.trigger("changed",{action:"select_node",node:this.get_node(a),selected:this._data.core.selected,event:c})}else this.is_selected(a)?this.deselect_node(a,!1,c):this.select_node(a,!1,!1,c);else!this.settings.core.multiple&&(c.metaKey||c.ctrlKey||c.shiftKey)&&this.is_selected(a)?this.deselect_node(a,!1,c):(this.deselect_all(!0),this.select_node(a,!1,!1,c),this._data.core.last_clicked=this.get_node(a));this.trigger("activate_node",{node:this.get_node(a),event:c})},hover_node:function(a){if(a=this.get_node(a,!0),!a||!a.length||a.children(".jstree-hovered").length)return!1;var b=this.element.find(".jstree-hovered"),c=this.element;b&&b.length&&this.dehover_node(b),a.children(".jstree-anchor").addClass("jstree-hovered"),this.trigger("hover_node",{node:this.get_node(a)}),setTimeout(function(){c.attr("aria-activedescendant",a[0].id)},0)},dehover_node:function(a){return a=this.get_node(a,!0),a&&a.length&&a.children(".jstree-hovered").length?(a.children(".jstree-anchor").removeClass("jstree-hovered"),void this.trigger("dehover_node",{node:this.get_node(a)})):!1},select_node:function(b,c,d,e){var f,g,h;if(a.isArray(b)){for(b=b.slice(),g=0,h=b.length;h>g;g++)this.select_node(b[g],c,d,e);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=this.get_node(b,!0),void(b.state.selected||(b.state.selected=!0,this._data.core.selected.push(b.id),d||(f=this._open_to(b)),f&&f.length&&f.attr("aria-selected",!0).children(".jstree-anchor").addClass("jstree-clicked"),this.trigger("select_node",{node:b,selected:this._data.core.selected,event:e}),c||this.trigger("changed",{action:"select_node",node:b,selected:this._data.core.selected,event:e})))):!1},deselect_node:function(b,c,d){var e,f,g;if(a.isArray(b)){for(b=b.slice(),e=0,f=b.length;f>e;e++)this.deselect_node(b[e],c,d);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(g=this.get_node(b,!0),void(b.state.selected&&(b.state.selected=!1,this._data.core.selected=a.vakata.array_remove_item(this._data.core.selected,b.id),g.length&&g.attr("aria-selected",!1).children(".jstree-anchor").removeClass("jstree-clicked"),this.trigger("deselect_node",{node:b,selected:this._data.core.selected,event:d}),c||this.trigger("changed",{action:"deselect_node",node:b,selected:this._data.core.selected,event:d})))):!1},select_all:function(b){var c,d,e=this._data.core.selected.concat([]);for(this._data.core.selected=this._model.data[a.jstree.root].children_d.concat(),c=0,d=this._data.core.selected.length;d>c;c++)this._model.data[this._data.core.selected[c]]&&(this._model.data[this._data.core.selected[c]].state.selected=!0);this.redraw(!0),this.trigger("select_all",{selected:this._data.core.selected}),b||this.trigger("changed",{action:"select_all",selected:this._data.core.selected,old_selection:e})},deselect_all:function(a){var b,c,d=this._data.core.selected.concat([]);for(b=0,c=this._data.core.selected.length;c>b;b++)this._model.data[this._data.core.selected[b]]&&(this._model.data[this._data.core.selected[b]].state.selected=!1);this._data.core.selected=[],this.element.find(".jstree-clicked").removeClass("jstree-clicked").parent().attr("aria-selected",!1),this.trigger("deselect_all",{selected:this._data.core.selected,node:d}),a||this.trigger("changed",{action:"deselect_all",selected:this._data.core.selected,old_selection:d})},is_selected:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.state.selected:!1},get_selected:function(b){return b?a.map(this._data.core.selected,a.proxy(function(a){return this.get_node(a)},this)):this._data.core.selected.slice()},get_top_selected:function(b){var c,d,e,f,g=this.get_selected(!0),h={};for(c=0,d=g.length;d>c;c++)h[g[c].id]=g[c];for(c=0,d=g.length;d>c;c++)for(e=0,f=g[c].children_d.length;f>e;e++)h[g[c].children_d[e]]&&delete h[g[c].children_d[e]];g=[];for(c in h)h.hasOwnProperty(c)&&g.push(c);return b?a.map(g,a.proxy(function(a){return this.get_node(a)},this)):g},get_bottom_selected:function(b){var c,d,e=this.get_selected(!0),f=[];for(c=0,d=e.length;d>c;c++)e[c].children.length||f.push(e[c].id);return b?a.map(f,a.proxy(function(a){return this.get_node(a)},this)):f},get_state:function(){var b,c={core:{open:[],scroll:{left:this.element.scrollLeft(),top:this.element.scrollTop()},selected:[]}};for(b in this._model.data)this._model.data.hasOwnProperty(b)&&b!==a.jstree.root&&(this._model.data[b].state.opened&&c.core.open.push(b),this._model.data[b].state.selected&&c.core.selected.push(b));return c},set_state:function(c,d){if(c){if(c.core){var e,f;if(c.core.open)return a.isArray(c.core.open)&&c.core.open.length?this._load_nodes(c.core.open,function(a){this.open_node(a,!1,0),delete c.core.open,this.set_state(c,d)},!0):(delete c.core.open,this.set_state(c,d)),!1;if(c.core.scroll)return c.core.scroll&&c.core.scroll.left!==b&&this.element.scrollLeft(c.core.scroll.left),c.core.scroll&&c.core.scroll.top!==b&&this.element.scrollTop(c.core.scroll.top),delete c.core.scroll,this.set_state(c,d),!1;if(c.core.selected)return e=this,this.deselect_all(),a.each(c.core.selected,function(a,b){e.select_node(b,!1,!0)}),delete c.core.selected,this.set_state(c,d),!1;for(f in c)c.hasOwnProperty(f)&&"core"!==f&&-1===a.inArray(f,this.settings.plugins)&&delete c[f];if(a.isEmptyObject(c.core))return delete c.core,this.set_state(c,d),!1}return a.isEmptyObject(c)?(c=null,d&&d.call(this),this.trigger("set_state"),!1):!0}return!1},refresh:function(b,c){this._data.core.state=c===!0?{}:this.get_state(),c&&a.isFunction(c)&&(this._data.core.state=c.call(this,this._data.core.state)),this._cnt=0,this._model.data={},this._model.data[a.jstree.root]={id:a.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this._data.core.selected=[],this._data.core.last_clicked=null,this._data.core.focused=null;var d=this.get_container_ul()[0].className;b||(this.element.html("<ul class='"+d+"' role='group'><li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading")),this.load_node(a.jstree.root,function(b,c){c&&(this.get_container_ul()[0].className=d,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.set_state(a.extend(!0,{},this._data.core.state),function(){this.trigger("refresh")})),this._data.core.state=null})},refresh_node:function(b){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var c=[],d=[];this._data.core.selected.concat([]);d.push(b.id),b.state.opened===!0&&c.push(b.id),this.get_node(b,!0).find(".jstree-open").each(function(){c.push(this.id)}),this._load_nodes(d,a.proxy(function(a){this.open_node(c,!1,0),this.select_node(this._data.core.selected),this.trigger("refresh_node",{node:b,nodes:a})},this))},set_id:function(b,c){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var d,e,f=this._model.data;for(c=c.toString(),f[b.parent].children[a.inArray(b.id,f[b.parent].children)]=c,d=0,e=b.parents.length;e>d;d++)f[b.parents[d]].children_d[a.inArray(b.id,f[b.parents[d]].children_d)]=c;for(d=0,e=b.children.length;e>d;d++)f[b.children[d]].parent=c;for(d=0,e=b.children_d.length;e>d;d++)f[b.children_d[d]].parents[a.inArray(b.id,f[b.children_d[d]].parents)]=c;return d=a.inArray(b.id,this._data.core.selected),-1!==d&&(this._data.core.selected[d]=c),d=this.get_node(b.id,!0),d&&(d.attr("id",c).children(".jstree-anchor").attr("id",c+"_anchor").end().attr("aria-labelledby",c+"_anchor"),this.element.attr("aria-activedescendant")===b.id&&this.element.attr("aria-activedescendant",c)),delete f[b.id],b.id=c,b.li_attr.id=c,f[c]=b,!0},get_text:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.text:!1},set_text:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.set_text(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.text=c,this.get_node(b,!0).length&&this.redraw_node(b.id),this.trigger("set_text",{obj:b,text:c}),!0):!1},get_json:function(b,c,d){if(b=this.get_node(b||a.jstree.root),!b)return!1;c&&c.flat&&!d&&(d=[]);var e,f,g={id:b.id,text:b.text,icon:this.get_icon(b),li_attr:a.extend(!0,{},b.li_attr),a_attr:a.extend(!0,{},b.a_attr),state:{},data:c&&c.no_data?!1:a.extend(!0,{},b.data)};if(c&&c.flat?g.parent=b.parent:g.children=[],!c||!c.no_state)for(e in b.state)b.state.hasOwnProperty(e)&&(g.state[e]=b.state[e]);if(c&&c.no_id&&(delete g.id,g.li_attr&&g.li_attr.id&&delete g.li_attr.id,g.a_attr&&g.a_attr.id&&delete g.a_attr.id),c&&c.flat&&b.id!==a.jstree.root&&d.push(g),!c||!c.no_children)for(e=0,f=b.children.length;f>e;e++)c&&c.flat?this.get_json(b.children[e],c,d):g.children.push(this.get_json(b.children[e],c));return c&&c.flat?d:b.id===a.jstree.root?g.children:g},create_node:function(c,d,e,f,g){if(null===c&&(c=a.jstree.root),c=this.get_node(c),!c)return!1;if(e=e===b?"last":e,!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(c))return this.load_node(c,function(){this.create_node(c,d,e,f,!0)});d||(d={text:this.get_string("New node")}),"string"==typeof d&&(d={text:d}),d.text===b&&(d.text=this.get_string("New node"));var h,i,j,k;switch(c.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":h=this.get_node(c.parent),e=a.inArray(c.id,h.children),c=h;break;case"after":h=this.get_node(c.parent),e=a.inArray(c.id,h.children)+1,c=h;break;case"inside":case"first":e=0;break;case"last":e=c.children.length;break;default:e||(e=0)}if(e>c.children.length&&(e=c.children.length),d.id||(d.id=!0),!this.check("create_node",d,c,e))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(d.id===!0&&delete d.id,d=this._parse_model_from_json(d,c.id,c.parents.concat()),!d)return!1;for(h=this.get_node(d),i=[],i.push(d),i=i.concat(h.children_d),this.trigger("model",{nodes:i,parent:c.id}),c.children_d=c.children_d.concat(i),j=0,k=c.parents.length;k>j;j++)this._model.data[c.parents[j]].children_d=this._model.data[c.parents[j]].children_d.concat(i);for(d=h,h=[],j=0,k=c.children.length;k>j;j++)h[j>=e?j+1:j]=c.children[j];return h[e]=d.id,c.children=h,this.redraw_node(c,!0),f&&f.call(this,this.get_node(d)),this.trigger("create_node",{node:this.get_node(d),parent:c.id,position:e}),d.id},rename_node:function(b,c){var d,e,f;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.rename_node(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=b.text,this.check("rename_node",b,this.get_parent(b),c)?(this.set_text(b,c),this.trigger("rename_node",{node:b,text:c,old:f}),!0):(this.settings.core.error.call(this,this._data.core.last_error),!1)):!1},delete_node:function(b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.delete_node(b[c]);return!0}if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;if(e=this.get_node(b.parent),f=a.inArray(b.id,e.children),l=!1,!this.check("delete_node",b,e,f))return this.settings.core.error.call(this,this._data.core.last_error),!1;for(-1!==f&&(e.children=a.vakata.array_remove(e.children,f)),g=b.children_d.concat([]),g.push(b.id),j=0,k=g.length;k>j;j++){for(h=0,i=b.parents.length;i>h;h++)f=a.inArray(g[j],this._model.data[b.parents[h]].children_d),-1!==f&&(this._model.data[b.parents[h]].children_d=a.vakata.array_remove(this._model.data[b.parents[h]].children_d,f));this._model.data[g[j]].state.selected&&(l=!0,f=a.inArray(g[j],this._data.core.selected),-1!==f&&(this._data.core.selected=a.vakata.array_remove(this._data.core.selected,f)))}for(this.trigger("delete_node",{node:b,parent:e.id}),l&&this.trigger("changed",{action:"delete_node",node:b,selected:this._data.core.selected,parent:e.id}),j=0,k=g.length;k>j;j++)delete this._model.data[g[j]];return-1!==a.inArray(this._data.core.focused,g)&&(this._data.core.focused=null,m=this.element[0].scrollTop,n=this.element[0].scrollLeft,e.id===a.jstree.root?this.get_node(this._model.data[a.jstree.root].children[0],!0).children(".jstree-anchor").focus():this.get_node(e,!0).children(".jstree-anchor").focus(),this.element[0].scrollTop=m,this.element[0].scrollLeft=n),this.redraw_node(e,!0),!0},check:function(b,c,d,e,f){c=c&&c.id?c:this.get_node(c),d=d&&d.id?d:this.get_node(d);var g=b.match(/^move_node|copy_node|create_node$/i)?d:c,h=this.settings.core.check_callback;return"move_node"!==b&&"copy_node"!==b||f&&f.is_multi||c.id!==d.id&&a.inArray(c.id,d.children)!==e&&-1===a.inArray(d.id,c.children_d)?(g&&g.data&&(g=g.data),g&&g.functions&&(g.functions[b]===!1||g.functions[b]===!0)?(g.functions[b]===!1&&(this._data.core.last_error={error:"check",plugin:"core",id:"core_02",reason:"Node data prevents function: "+b,data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})}),g.functions[b]):h===!1||a.isFunction(h)&&h.call(this,b,c,d,e,f)===!1||h&&h[b]===!1?(this._data.core.last_error={error:"check",plugin:"core",id:"core_03",reason:"User config for core.check_callback prevents function: "+b,data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})},!1):!0):(this._data.core.last_error={error:"check",plugin:"core",id:"core_01",reason:"Moving parent inside child",data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})},!1)},last_error:function(){return this._data.core.last_error},move_node:function(c,d,e,f,g,h,i){var j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(d=this.get_node(d),e=e===b?0:e,!d)return!1;if(!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(d))return this.load_node(d,function(){this.move_node(c,d,e,f,!0,!1,i)});if(a.isArray(c)){if(1!==c.length){for(j=0,k=c.length;k>j;j++)(r=this.move_node(c[j],d,e,f,g,!1,i))&&(d=r,e="after");return this.redraw(),!0}c=c[0]}if(c=c&&c.id?c:this.get_node(c),!c||c.id===a.jstree.root)return!1;if(l=(c.parent||a.jstree.root).toString(),n=e.toString().match(/^(before|after)$/)&&d.id!==a.jstree.root?this.get_node(d.parent):d,o=i?i:this._model.data[c.id]?this:a.jstree.reference(c.id),p=!o||!o._id||this._id!==o._id,m=o&&o._id&&l&&o._model.data[l]&&o._model.data[l].children?a.inArray(c.id,o._model.data[l].children):-1,o&&o._id&&(c=o._model.data[c.id]),p)return(r=this.copy_node(c,d,e,f,g,!1,i))?(o&&o.delete_node(c),r):!1;switch(d.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":e=a.inArray(d.id,n.children);break;case"after":e=a.inArray(d.id,n.children)+1;break;case"inside":case"first":e=0;break;case"last":e=n.children.length;break;default:e||(e=0)}if(e>n.children.length&&(e=n.children.length),!this.check("move_node",c,n,e,{core:!0,origin:i,is_multi:o&&o._id&&o._id!==this._id,is_foreign:!o||!o._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(c.parent===n.id){for(q=n.children.concat(),r=a.inArray(c.id,q),-1!==r&&(q=a.vakata.array_remove(q,r),e>r&&e--),r=[],s=0,t=q.length;t>s;s++)r[s>=e?s+1:s]=q[s];r[e]=c.id,n.children=r,this._node_changed(n.id),this.redraw(n.id===a.jstree.root)}else{for(r=c.children_d.concat(),r.push(c.id),s=0,t=c.parents.length;t>s;s++){for(q=[],w=o._model.data[c.parents[s]].children_d,u=0,v=w.length;v>u;u++)-1===a.inArray(w[u],r)&&q.push(w[u]);o._model.data[c.parents[s]].children_d=q}for(o._model.data[l].children=a.vakata.array_remove_item(o._model.data[l].children,c.id),s=0,t=n.parents.length;t>s;s++)this._model.data[n.parents[s]].children_d=this._model.data[n.parents[s]].children_d.concat(r);for(q=[],s=0,t=n.children.length;t>s;s++)q[s>=e?s+1:s]=n.children[s];for(q[e]=c.id,n.children=q,n.children_d.push(c.id),n.children_d=n.children_d.concat(c.children_d),c.parent=n.id,r=n.parents.concat(),r.unshift(n.id),w=c.parents.length,c.parents=r,r=r.concat(),s=0,t=c.children_d.length;t>s;s++)this._model.data[c.children_d[s]].parents=this._model.data[c.children_d[s]].parents.slice(0,-1*w),Array.prototype.push.apply(this._model.data[c.children_d[s]].parents,r);(l===a.jstree.root||n.id===a.jstree.root)&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||(this._node_changed(l),this._node_changed(n.id)),h||this.redraw()}return f&&f.call(this,c,n,e),this.trigger("move_node",{node:c,parent:n.id,position:e,old_parent:l,old_position:m,is_multi:o&&o._id&&o._id!==this._id,is_foreign:!o||!o._id,old_instance:o,new_instance:this}),c.id},copy_node:function(c,d,e,f,g,h,i){var j,k,l,m,n,o,p,q,r,s,t;if(d=this.get_node(d),e=e===b?0:e,!d)return!1;if(!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(d))return this.load_node(d,function(){this.copy_node(c,d,e,f,!0,!1,i)});if(a.isArray(c)){if(1!==c.length){for(j=0,k=c.length;k>j;j++)(m=this.copy_node(c[j],d,e,f,g,!0,i))&&(d=m,e="after");return this.redraw(),!0}c=c[0]}if(c=c&&c.id?c:this.get_node(c),!c||c.id===a.jstree.root)return!1;switch(q=(c.parent||a.jstree.root).toString(),r=e.toString().match(/^(before|after)$/)&&d.id!==a.jstree.root?this.get_node(d.parent):d,s=i?i:this._model.data[c.id]?this:a.jstree.reference(c.id),t=!s||!s._id||this._id!==s._id,s&&s._id&&(c=s._model.data[c.id]),d.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":e=a.inArray(d.id,r.children);break;case"after":e=a.inArray(d.id,r.children)+1;break;case"inside":case"first":e=0;break;case"last":e=r.children.length;break;default:e||(e=0)}if(e>r.children.length&&(e=r.children.length),!this.check("copy_node",c,r,e,{core:!0,origin:i,is_multi:s&&s._id&&s._id!==this._id,is_foreign:!s||!s._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(p=s?s.get_json(c,{no_id:!0,no_data:!0,no_state:!0}):c,!p)return!1;if(p.id===!0&&delete p.id,p=this._parse_model_from_json(p,r.id,r.parents.concat()),!p)return!1;for(m=this.get_node(p),c&&c.state&&c.state.loaded===!1&&(m.state.loaded=!1),l=[],l.push(p),l=l.concat(m.children_d),this.trigger("model",{nodes:l,parent:r.id}),n=0,o=r.parents.length;o>n;n++)this._model.data[r.parents[n]].children_d=this._model.data[r.parents[n]].children_d.concat(l);for(l=[],n=0,o=r.children.length;o>n;n++)l[n>=e?n+1:n]=r.children[n];return l[e]=m.id,r.children=l,r.children_d.push(m.id),r.children_d=r.children_d.concat(m.children_d),r.id===a.jstree.root&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||this._node_changed(r.id),h||this.redraw(r.id===a.jstree.root),f&&f.call(this,m,r,e),this.trigger("copy_node",{node:m,original:c,parent:r.id,position:e,old_parent:q,old_position:s&&s._id&&q&&s._model.data[q]&&s._model.data[q].children?a.inArray(c.id,s._model.data[q].children):-1,is_multi:s&&s._id&&s._id!==this._id,is_foreign:!s||!s._id,old_instance:s,new_instance:this}),m.id},cut:function(b){if(b||(b=this._data.core.selected.concat()),a.isArray(b)||(b=[b]),!b.length)return!1;var c,d,e,i=[];for(d=0,e=b.length;e>d;d++)c=this.get_node(b[d]),c&&c.id&&c.id!==a.jstree.root&&i.push(c);return i.length?(f=i,h=this,g="move_node",void this.trigger("cut",{node:b})):!1},copy:function(b){if(b||(b=this._data.core.selected.concat()),a.isArray(b)||(b=[b]),!b.length)return!1;var c,d,e,i=[];for(d=0,e=b.length;e>d;d++)c=this.get_node(b[d]),c&&c.id&&c.id!==a.jstree.root&&i.push(c);return i.length?(f=i,h=this,g="copy_node",void this.trigger("copy",{node:b})):!1},get_buffer:function(){return{mode:g,node:f,inst:h}},can_paste:function(){return g!==!1&&f!==!1},paste:function(a,b){return a=this.get_node(a),a&&g&&g.match(/^(copy_node|move_node)$/)&&f?(this[g](f,a,b,!1,!1,!1,h)&&this.trigger("paste",{parent:a.id,node:f,mode:g}),f=!1,g=!1,void(h=!1)):!1},clear_buffer:function(){f=!1,g=!1,h=!1,this.trigger("clear_buffer")},edit:function(b,c,d){var e,f,g,h,i,j,k,l,m,n=!1;return(b=this.get_node(b))?this.settings.core.check_callback===!1?(this._data.core.last_error={error:"check",plugin:"core",id:"core_07",reason:"Could not edit node because of check_callback"},this.settings.core.error.call(this,this._data.core.last_error),!1):(m=b,c="string"==typeof c?c:b.text,this.set_text(b,""),b=this._open_to(b),m.text=c,e=this._data.core.rtl,f=this.element.width(),this._data.core.focused=m.id,g=b.children(".jstree-anchor").focus(),h=a("<span>"),i=c,j=a("<div />",{css:{position:"absolute",top:"-200px",left:e?"0px":"-1000px",visibility:"hidden"}}).appendTo("body"),k=a("<input />",{value:i,"class":"jstree-rename-input",css:{padding:"0",border:"1px solid silver","box-sizing":"border-box",display:"inline-block",height:this._data.core.li_height+"px",lineHeight:this._data.core.li_height+"px",width:"150px"},blur:a.proxy(function(c){c.stopImmediatePropagation(),c.preventDefault();var e,f=h.children(".jstree-rename-input"),k=f.val(),l=this.settings.core.force_text;""===k&&(k=i),j.remove(),h.replaceWith(g),h.remove(),i=l?i:a("<div></div>").append(a.parseHTML(i)).html(),this.set_text(b,i),e=!!this.rename_node(b,l?a("<div></div>").text(k).text():a("<div></div>").append(a.parseHTML(k)).html()),e||this.set_text(b,i),this._data.core.focused=m.id,setTimeout(a.proxy(function(){var a=this.get_node(m.id,!0);a.length&&(this._data.core.focused=m.id,a.children(".jstree-anchor").focus())},this),0),d&&d.call(this,m,e,n)},this),keydown:function(a){var b=a.which;27===b&&(n=!0,this.value=i),(27===b||13===b||37===b||38===b||39===b||40===b||32===b)&&a.stopImmediatePropagation(),(27===b||13===b)&&(a.preventDefault(),this.blur())},click:function(a){a.stopImmediatePropagation()},mousedown:function(a){a.stopImmediatePropagation()},keyup:function(a){k.width(Math.min(j.text("pW"+this.value).width(),f))},keypress:function(a){return 13===a.which?!1:void 0}}),l={fontFamily:g.css("fontFamily")||"",fontSize:g.css("fontSize")||"",fontWeight:g.css("fontWeight")||"",fontStyle:g.css("fontStyle")||"",fontStretch:g.css("fontStretch")||"",fontVariant:g.css("fontVariant")||"",letterSpacing:g.css("letterSpacing")||"",wordSpacing:g.css("wordSpacing")||""},h.attr("class",g.attr("class")).append(g.contents().clone()).append(k),g.replaceWith(h),j.css(l),void k.css(l).width(Math.min(j.text("pW"+k[0].value).width(),f))[0].select()):!1},set_theme:function(b,c){if(!b)return!1;if(c===!0){var d=this.settings.core.themes.dir;d||(d=a.jstree.path+"/themes"),c=d+"/"+b+"/style.css"}c&&-1===a.inArray(c,i)&&(a("head").append('<link rel="stylesheet" href="'+c+'" type="text/css" />'),i.push(c)),this._data.core.themes.name&&this.element.removeClass("jstree-"+this._data.core.themes.name),this._data.core.themes.name=b,this.element.addClass("jstree-"+b),this.element[this.settings.core.themes.responsive?"addClass":"removeClass"]("jstree-"+b+"-responsive"),this.trigger("set_theme",{theme:b})},get_theme:function(){return this._data.core.themes.name},set_theme_variant:function(a){this._data.core.themes.variant&&this.element.removeClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant),this._data.core.themes.variant=a,a&&this.element.addClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant)},get_theme_variant:function(){return this._data.core.themes.variant},show_stripes:function(){this._data.core.themes.stripes=!0,this.get_container_ul().addClass("jstree-striped")},hide_stripes:function(){this._data.core.themes.stripes=!1,this.get_container_ul().removeClass("jstree-striped")},toggle_stripes:function(){this._data.core.themes.stripes?this.hide_stripes():this.show_stripes()},show_dots:function(){this._data.core.themes.dots=!0,this.get_container_ul().removeClass("jstree-no-dots")},hide_dots:function(){this._data.core.themes.dots=!1,this.get_container_ul().addClass("jstree-no-dots")},toggle_dots:function(){this._data.core.themes.dots?this.hide_dots():this.show_dots()},show_icons:function(){this._data.core.themes.icons=!0,this.get_container_ul().removeClass("jstree-no-icons")},hide_icons:function(){this._data.core.themes.icons=!1,this.get_container_ul().addClass("jstree-no-icons")},toggle_icons:function(){this._data.core.themes.icons?this.hide_icons():this.show_icons()},set_icon:function(c,d){var e,f,g,h;if(a.isArray(c)){for(c=c.slice(),e=0,f=c.length;f>e;e++)this.set_icon(c[e],d);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?(h=c.icon,c.icon=d===!0||null===d||d===b||""===d?!0:d,g=this.get_node(c,!0).children(".jstree-anchor").children(".jstree-themeicon"),d===!1?this.hide_icon(c):d===!0||null===d||d===b||""===d?(g.removeClass("jstree-themeicon-custom "+h).css("background","").removeAttr("rel"),h===!1&&this.show_icon(c)):-1===d.indexOf("/")&&-1===d.indexOf(".")?(g.removeClass(h).css("background",""),g.addClass(d+" jstree-themeicon-custom").attr("rel",d),h===!1&&this.show_icon(c)):(g.removeClass(h).css("background",""),g.addClass("jstree-themeicon-custom").css("background","url('"+d+"') center center no-repeat").attr("rel",d),h===!1&&this.show_icon(c)),!0):!1},get_icon:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.icon:!1},hide_icon:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.hide_icon(b[c]);return!0}return b=this.get_node(b),b&&b!==a.jstree.root?(b.icon=!1,this.get_node(b,!0).children(".jstree-anchor").children(".jstree-themeicon").addClass("jstree-themeicon-hidden"),!0):!1},show_icon:function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.show_icon(b[c]);return!0}return b=this.get_node(b),b&&b!==a.jstree.root?(e=this.get_node(b,!0),b.icon=e.length?e.children(".jstree-anchor").children(".jstree-themeicon").attr("rel"):!0,b.icon||(b.icon=!0),e.children(".jstree-anchor").children(".jstree-themeicon").removeClass("jstree-themeicon-hidden"),
-!0):!1}},a.vakata={},a.vakata.attributes=function(b,c){b=a(b)[0];var d=c?{}:[];return b&&b.attributes&&a.each(b.attributes,function(b,e){-1===a.inArray(e.name.toLowerCase(),["style","contenteditable","hasfocus","tabindex"])&&null!==e.value&&""!==a.trim(e.value)&&(c?d[e.name]=e.value:d.push(e.name))}),d},a.vakata.array_unique=function(a){var c,d,e=[],f={};for(c=0,d=a.length;d>c;c++)f[a[c]]===b&&(e.push(a[c]),f[a[c]]=!0);return e},a.vakata.array_remove=function(a,b,c){var d=a.slice((c||b)+1||a.length);return a.length=0>b?a.length+b:b,a.push.apply(a,d),a},a.vakata.array_remove_item=function(b,c){var d=a.inArray(c,b);return-1!==d?a.vakata.array_remove(b,d):b},a.jstree.plugins.changed=function(a,b){var c=[];this.trigger=function(a,d){var e,f;if(d||(d={}),"changed"===a.replace(".jstree","")){d.changed={selected:[],deselected:[]};var g={};for(e=0,f=c.length;f>e;e++)g[c[e]]=1;for(e=0,f=d.selected.length;f>e;e++)g[d.selected[e]]?g[d.selected[e]]=2:d.changed.selected.push(d.selected[e]);for(e=0,f=c.length;f>e;e++)1===g[c[e]]&&d.changed.deselected.push(c[e]);c=d.selected.slice()}b.trigger.call(this,a,d)},this.refresh=function(a,d){return c=[],b.refresh.apply(this,arguments)}};var m=k.createElement("I");m.className="jstree-icon jstree-checkbox",m.setAttribute("role","presentation"),a.jstree.defaults.checkbox={visible:!0,three_state:!0,whole_node:!0,keep_selected_style:!0,cascade:"",tie_selection:!0},a.jstree.plugins.checkbox=function(c,d){this.bind=function(){d.bind.call(this),this._data.checkbox.uto=!1,this._data.checkbox.selected=[],this.settings.checkbox.three_state&&(this.settings.checkbox.cascade="up+down+undetermined"),this.element.on("init.jstree",a.proxy(function(){this._data.checkbox.visible=this.settings.checkbox.visible,this.settings.checkbox.keep_selected_style||this.element.addClass("jstree-checkbox-no-clicked"),this.settings.checkbox.tie_selection&&this.element.addClass("jstree-checkbox-selection")},this)).on("loading.jstree",a.proxy(function(){this[this._data.checkbox.visible?"show_checkboxes":"hide_checkboxes"]()},this)),-1!==this.settings.checkbox.cascade.indexOf("undetermined")&&this.element.on("changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree",a.proxy(function(){this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(a.proxy(this._undetermined,this),50)},this)),this.settings.checkbox.tie_selection||this.element.on("model.jstree",a.proxy(function(a,b){var c,d,e=this._model.data,f=(e[b.parent],b.nodes);for(c=0,d=f.length;d>c;c++)e[f[c]].state.checked=e[f[c]].state.checked||e[f[c]].original&&e[f[c]].original.state&&e[f[c]].original.state.checked,e[f[c]].state.checked&&this._data.checkbox.selected.push(f[c])},this)),(-1!==this.settings.checkbox.cascade.indexOf("up")||-1!==this.settings.checkbox.cascade.indexOf("down"))&&this.element.on("model.jstree",a.proxy(function(b,c){var d,e,f,g,h,i,j=this._model.data,k=j[c.parent],l=c.nodes,m=[],n=this.settings.checkbox.cascade,o=this.settings.checkbox.tie_selection;if(-1!==n.indexOf("down"))if(k.state[o?"selected":"checked"]){for(e=0,f=l.length;f>e;e++)j[l[e]].state[o?"selected":"checked"]=!0;this._data[o?"core":"checkbox"].selected=this._data[o?"core":"checkbox"].selected.concat(l)}else for(e=0,f=l.length;f>e;e++)if(j[l[e]].state[o?"selected":"checked"]){for(g=0,h=j[l[e]].children_d.length;h>g;g++)j[j[l[e]].children_d[g]].state[o?"selected":"checked"]=!0;this._data[o?"core":"checkbox"].selected=this._data[o?"core":"checkbox"].selected.concat(j[l[e]].children_d)}if(-1!==n.indexOf("up")){for(e=0,f=k.children_d.length;f>e;e++)j[k.children_d[e]].children.length||m.push(j[k.children_d[e]].parent);for(m=a.vakata.array_unique(m),g=0,h=m.length;h>g;g++)for(k=j[m[g]];k&&k.id!==a.jstree.root;){for(d=0,e=0,f=k.children.length;f>e;e++)d+=j[k.children[e]].state[o?"selected":"checked"];if(d!==f)break;k.state[o?"selected":"checked"]=!0,this._data[o?"core":"checkbox"].selected.push(k.id),i=this.get_node(k,!0),i&&i.length&&i.attr("aria-selected",!0).children(".jstree-anchor").addClass(o?"jstree-clicked":"jstree-checked"),k=this.get_node(k.parent)}}this._data[o?"core":"checkbox"].selected=a.vakata.array_unique(this._data[o?"core":"checkbox"].selected)},this)).on(this.settings.checkbox.tie_selection?"select_node.jstree":"check_node.jstree",a.proxy(function(b,c){var d,e,f,g,h=c.node,i=this._model.data,j=this.get_node(h.parent),k=this.get_node(h,!0),l=this.settings.checkbox.cascade,m=this.settings.checkbox.tie_selection;if(-1!==l.indexOf("down"))for(this._data[m?"core":"checkbox"].selected=a.vakata.array_unique(this._data[m?"core":"checkbox"].selected.concat(h.children_d)),d=0,e=h.children_d.length;e>d;d++)g=i[h.children_d[d]],g.state[m?"selected":"checked"]=!0,g&&g.original&&g.original.state&&g.original.state.undetermined&&(g.original.state.undetermined=!1);if(-1!==l.indexOf("up"))for(;j&&j.id!==a.jstree.root;){for(f=0,d=0,e=j.children.length;e>d;d++)f+=i[j.children[d]].state[m?"selected":"checked"];if(f!==e)break;j.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(j.id),g=this.get_node(j,!0),g&&g.length&&g.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"),j=this.get_node(j.parent)}-1!==l.indexOf("down")&&k.length&&k.find(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked").parent().attr("aria-selected",!0)},this)).on(this.settings.checkbox.tie_selection?"deselect_all.jstree":"uncheck_all.jstree",a.proxy(function(b,c){var d,e,f,g=this.get_node(a.jstree.root),h=this._model.data;for(d=0,e=g.children_d.length;e>d;d++)f=h[g.children_d[d]],f&&f.original&&f.original.state&&f.original.state.undetermined&&(f.original.state.undetermined=!1)},this)).on(this.settings.checkbox.tie_selection?"deselect_node.jstree":"uncheck_node.jstree",a.proxy(function(b,c){var d,e,f,g=c.node,h=this.get_node(g,!0),i=this.settings.checkbox.cascade,j=this.settings.checkbox.tie_selection;if(g&&g.original&&g.original.state&&g.original.state.undetermined&&(g.original.state.undetermined=!1),-1!==i.indexOf("down"))for(d=0,e=g.children_d.length;e>d;d++)f=this._model.data[g.children_d[d]],f.state[j?"selected":"checked"]=!1,f&&f.original&&f.original.state&&f.original.state.undetermined&&(f.original.state.undetermined=!1);if(-1!==i.indexOf("up"))for(d=0,e=g.parents.length;e>d;d++)f=this._model.data[g.parents[d]],f.state[j?"selected":"checked"]=!1,f&&f.original&&f.original.state&&f.original.state.undetermined&&(f.original.state.undetermined=!1),f=this.get_node(g.parents[d],!0),f&&f.length&&f.attr("aria-selected",!1).children(".jstree-anchor").removeClass(j?"jstree-clicked":"jstree-checked");for(f=[],d=0,e=this._data[j?"core":"checkbox"].selected.length;e>d;d++)-1!==i.indexOf("down")&&-1!==a.inArray(this._data[j?"core":"checkbox"].selected[d],g.children_d)||-1!==i.indexOf("up")&&-1!==a.inArray(this._data[j?"core":"checkbox"].selected[d],g.parents)||f.push(this._data[j?"core":"checkbox"].selected[d]);this._data[j?"core":"checkbox"].selected=a.vakata.array_unique(f),-1!==i.indexOf("down")&&h.length&&h.find(".jstree-anchor").removeClass(j?"jstree-clicked":"jstree-checked").parent().attr("aria-selected",!1)},this)),-1!==this.settings.checkbox.cascade.indexOf("up")&&this.element.on("delete_node.jstree",a.proxy(function(b,c){for(var d,e,f,g,h=this.get_node(c.parent),i=this._model.data,j=this.settings.checkbox.tie_selection;h&&h.id!==a.jstree.root&&!h.state[j?"selected":"checked"];){for(f=0,d=0,e=h.children.length;e>d;d++)f+=i[h.children[d]].state[j?"selected":"checked"];if(!(e>0&&f===e))break;h.state[j?"selected":"checked"]=!0,this._data[j?"core":"checkbox"].selected.push(h.id),g=this.get_node(h,!0),g&&g.length&&g.attr("aria-selected",!0).children(".jstree-anchor").addClass(j?"jstree-clicked":"jstree-checked"),h=this.get_node(h.parent)}},this)).on("move_node.jstree",a.proxy(function(b,c){var d,e,f,g,h,i=c.is_multi,j=c.old_parent,k=this.get_node(c.parent),l=this._model.data,m=this.settings.checkbox.tie_selection;if(!i)for(d=this.get_node(j);d&&d.id!==a.jstree.root&&!d.state[m?"selected":"checked"];){for(e=0,f=0,g=d.children.length;g>f;f++)e+=l[d.children[f]].state[m?"selected":"checked"];if(!(g>0&&e===g))break;d.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(d.id),h=this.get_node(d,!0),h&&h.length&&h.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"),d=this.get_node(d.parent)}for(d=k;d&&d.id!==a.jstree.root;){for(e=0,f=0,g=d.children.length;g>f;f++)e+=l[d.children[f]].state[m?"selected":"checked"];if(e===g)d.state[m?"selected":"checked"]||(d.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(d.id),h=this.get_node(d,!0),h&&h.length&&h.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"));else{if(!d.state[m?"selected":"checked"])break;d.state[m?"selected":"checked"]=!1,this._data[m?"core":"checkbox"].selected=a.vakata.array_remove_item(this._data[m?"core":"checkbox"].selected,d.id),h=this.get_node(d,!0),h&&h.length&&h.attr("aria-selected",!1).children(".jstree-anchor").removeClass(m?"jstree-clicked":"jstree-checked")}d=this.get_node(d.parent)}},this))},this._undetermined=function(){if(null!==this.element){var c,d,e,f,g={},h=this._model.data,i=this.settings.checkbox.tie_selection,j=this._data[i?"core":"checkbox"].selected,k=[],l=this;for(c=0,d=j.length;d>c;c++)if(h[j[c]]&&h[j[c]].parents)for(e=0,f=h[j[c]].parents.length;f>e;e++)g[h[j[c]].parents[e]]===b&&h[j[c]].parents[e]!==a.jstree.root&&(g[h[j[c]].parents[e]]=!0,k.push(h[j[c]].parents[e]));for(this.element.find(".jstree-closed").not(":has(.jstree-children)").each(function(){var i,j=l.get_node(this);if(j.state.loaded){for(c=0,d=j.children_d.length;d>c;c++)if(i=h[j.children_d[c]],!i.state.loaded&&i.original&&i.original.state&&i.original.state.undetermined&&i.original.state.undetermined===!0)for(g[i.id]===b&&i.id!==a.jstree.root&&(g[i.id]=!0,k.push(i.id)),e=0,f=i.parents.length;f>e;e++)g[i.parents[e]]===b&&i.parents[e]!==a.jstree.root&&(g[i.parents[e]]=!0,k.push(i.parents[e]))}else if(j.original&&j.original.state&&j.original.state.undetermined&&j.original.state.undetermined===!0)for(g[j.id]===b&&j.id!==a.jstree.root&&(g[j.id]=!0,k.push(j.id)),e=0,f=j.parents.length;f>e;e++)g[j.parents[e]]===b&&j.parents[e]!==a.jstree.root&&(g[j.parents[e]]=!0,k.push(j.parents[e]))}),this.element.find(".jstree-undetermined").removeClass("jstree-undetermined"),c=0,d=k.length;d>c;c++)h[k[c]].state[i?"selected":"checked"]||(j=this.get_node(k[c],!0),j&&j.length&&j.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-undetermined"))}},this.redraw_node=function(b,c,e,f){if(b=d.redraw_node.apply(this,arguments)){var g,h,i=null,j=null;for(g=0,h=b.childNodes.length;h>g;g++)if(b.childNodes[g]&&b.childNodes[g].className&&-1!==b.childNodes[g].className.indexOf("jstree-anchor")){i=b.childNodes[g];break}i&&(!this.settings.checkbox.tie_selection&&this._model.data[b.id].state.checked&&(i.className+=" jstree-checked"),j=m.cloneNode(!1),this._model.data[b.id].state.checkbox_disabled&&(j.className+=" jstree-checkbox-disabled"),i.insertBefore(j,i.childNodes[0]))}return e||-1===this.settings.checkbox.cascade.indexOf("undetermined")||(this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(a.proxy(this._undetermined,this),50)),b},this.show_checkboxes=function(){this._data.core.themes.checkboxes=!0,this.get_container_ul().removeClass("jstree-no-checkboxes")},this.hide_checkboxes=function(){this._data.core.themes.checkboxes=!1,this.get_container_ul().addClass("jstree-no-checkboxes")},this.toggle_checkboxes=function(){this._data.core.themes.checkboxes?this.hide_checkboxes():this.show_checkboxes()},this.is_undetermined=function(b){b=this.get_node(b);var c,d,e=this.settings.checkbox.cascade,f=this.settings.checkbox.tie_selection,g=this._data[f?"core":"checkbox"].selected,h=this._model.data;if(!b||b.state[f?"selected":"checked"]===!0||-1===e.indexOf("undetermined")||-1===e.indexOf("down")&&-1===e.indexOf("up"))return!1;if(!b.state.loaded&&b.original.state.undetermined===!0)return!0;for(c=0,d=b.children_d.length;d>c;c++)if(-1!==a.inArray(b.children_d[c],g)||!h[b.children_d[c]].state.loaded&&h[b.children_d[c]].original.state.undetermined)return!0;return!1},this.disable_checkbox=function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.disable_checkbox(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(e=this.get_node(b,!0),void(b.state.checkbox_disabled||(b.state.checkbox_disabled=!0,e&&e.length&&e.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-checkbox-disabled"),this.trigger("disable_checkbox",{node:b})))):!1},this.enable_checkbox=function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.enable_checkbox(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(e=this.get_node(b,!0),void(b.state.checkbox_disabled&&(b.state.checkbox_disabled=!1,e&&e.length&&e.children(".jstree-anchor").children(".jstree-checkbox").removeClass("jstree-checkbox-disabled"),this.trigger("enable_checkbox",{node:b})))):!1},this.activate_node=function(b,c){return a(c.target).hasClass("jstree-checkbox-disabled")?!1:(this.settings.checkbox.tie_selection&&(this.settings.checkbox.whole_node||a(c.target).hasClass("jstree-checkbox"))&&(c.ctrlKey=!0),this.settings.checkbox.tie_selection||!this.settings.checkbox.whole_node&&!a(c.target).hasClass("jstree-checkbox")?d.activate_node.call(this,b,c):this.is_disabled(b)?!1:(this.is_checked(b)?this.uncheck_node(b,c):this.check_node(b,c),void this.trigger("activate_node",{node:this.get_node(b)})))},this.check_node=function(b,c){if(this.settings.checkbox.tie_selection)return this.select_node(b,!1,!0,c);var d,e,f;if(a.isArray(b)){for(b=b.slice(),e=0,f=b.length;f>e;e++)this.check_node(b[e],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(d=this.get_node(b,!0),void(b.state.checked||(b.state.checked=!0,this._data.checkbox.selected.push(b.id),d&&d.length&&d.children(".jstree-anchor").addClass("jstree-checked"),this.trigger("check_node",{node:b,selected:this._data.checkbox.selected,event:c})))):!1},this.uncheck_node=function(b,c){if(this.settings.checkbox.tie_selection)return this.deselect_node(b,!1,c);var d,e,f;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.uncheck_node(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=this.get_node(b,!0),void(b.state.checked&&(b.state.checked=!1,this._data.checkbox.selected=a.vakata.array_remove_item(this._data.checkbox.selected,b.id),f.length&&f.children(".jstree-anchor").removeClass("jstree-checked"),this.trigger("uncheck_node",{node:b,selected:this._data.checkbox.selected,event:c})))):!1},this.check_all=function(){if(this.settings.checkbox.tie_selection)return this.select_all();var b,c;this._data.checkbox.selected.concat([]);for(this._data.checkbox.selected=this._model.data[a.jstree.root].children_d.concat(),b=0,c=this._data.checkbox.selected.length;c>b;b++)this._model.data[this._data.checkbox.selected[b]]&&(this._model.data[this._data.checkbox.selected[b]].state.checked=!0);this.redraw(!0),this.trigger("check_all",{selected:this._data.checkbox.selected})},this.uncheck_all=function(){if(this.settings.checkbox.tie_selection)return this.deselect_all();var a,b,c=this._data.checkbox.selected.concat([]);for(a=0,b=this._data.checkbox.selected.length;b>a;a++)this._model.data[this._data.checkbox.selected[a]]&&(this._model.data[this._data.checkbox.selected[a]].state.checked=!1);this._data.checkbox.selected=[],this.element.find(".jstree-checked").removeClass("jstree-checked"),this.trigger("uncheck_all",{selected:this._data.checkbox.selected,node:c})},this.is_checked=function(b){return this.settings.checkbox.tie_selection?this.is_selected(b):(b=this.get_node(b),b&&b.id!==a.jstree.root?b.state.checked:!1)},this.get_checked=function(b){return this.settings.checkbox.tie_selection?this.get_selected(b):b?a.map(this._data.checkbox.selected,a.proxy(function(a){return this.get_node(a)},this)):this._data.checkbox.selected},this.get_top_checked=function(b){if(this.settings.checkbox.tie_selection)return this.get_top_selected(b);var c,d,e,f,g=this.get_checked(!0),h={};for(c=0,d=g.length;d>c;c++)h[g[c].id]=g[c];for(c=0,d=g.length;d>c;c++)for(e=0,f=g[c].children_d.length;f>e;e++)h[g[c].children_d[e]]&&delete h[g[c].children_d[e]];g=[];for(c in h)h.hasOwnProperty(c)&&g.push(c);return b?a.map(g,a.proxy(function(a){return this.get_node(a)},this)):g},this.get_bottom_checked=function(b){if(this.settings.checkbox.tie_selection)return this.get_bottom_selected(b);var c,d,e=this.get_checked(!0),f=[];for(c=0,d=e.length;d>c;c++)e[c].children.length||f.push(e[c].id);return b?a.map(f,a.proxy(function(a){return this.get_node(a)},this)):f},this.load_node=function(b,c){var e,f,g,h;if(!a.isArray(b)&&!this.settings.checkbox.tie_selection&&(h=this.get_node(b),h&&h.state.loaded))for(e=0,f=h.children_d.length;f>e;e++)this._model.data[h.children_d[e]].state.checked&&(g=!0,this._data.checkbox.selected=a.vakata.array_remove_item(this._data.checkbox.selected,h.children_d[e]));return d.load_node.apply(this,arguments)},this.get_state=function(){var a=d.get_state.apply(this,arguments);return this.settings.checkbox.tie_selection?a:(a.checkbox=this._data.checkbox.selected.slice(),a)},this.set_state=function(b,c){var e=d.set_state.apply(this,arguments);if(e&&b.checkbox){if(!this.settings.checkbox.tie_selection){this.uncheck_all();var f=this;a.each(b.checkbox,function(a,b){f.check_node(b)})}return delete b.checkbox,this.set_state(b,c),!1}return e},this.refresh=function(a,b){return this.settings.checkbox.tie_selection||(this._data.checkbox.selected=[]),d.refresh.apply(this,arguments)}},a.jstree.defaults.conditionalselect=function(){return!0},a.jstree.plugins.conditionalselect=function(a,b){this.activate_node=function(a,c){this.settings.conditionalselect.call(this,this.get_node(a),c)&&b.activate_node.call(this,a,c)}},a.jstree.defaults.contextmenu={select_node:!0,show_at_node:!0,items:function(b,c){return{create:{separator_before:!1,separator_after:!0,_disabled:!1,label:"Create",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.create_node(d,{},"last",function(a){setTimeout(function(){c.edit(a)},0)})}},rename:{separator_before:!1,separator_after:!1,_disabled:!1,label:"Rename",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.edit(d)}},remove:{separator_before:!1,icon:!1,separator_after:!1,_disabled:!1,label:"Delete",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.delete_node(c.get_selected()):c.delete_node(d)}},ccp:{separator_before:!0,icon:!1,separator_after:!1,label:"Edit",action:!1,submenu:{cut:{separator_before:!1,separator_after:!1,label:"Cut",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.cut(c.get_top_selected()):c.cut(d)}},copy:{separator_before:!1,icon:!1,separator_after:!1,label:"Copy",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.copy(c.get_top_selected()):c.copy(d)}},paste:{separator_before:!1,icon:!1,_disabled:function(b){return!a.jstree.reference(b.reference).can_paste()},separator_after:!1,label:"Paste",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.paste(d)}}}}}}},a.jstree.plugins.contextmenu=function(c,d){this.bind=function(){d.bind.call(this);var b,c,e=0,f=null;this.element.on("contextmenu.jstree",".jstree-anchor",a.proxy(function(a,b){a.preventDefault(),e=a.ctrlKey?+new Date:0,(b||f)&&(e=+new Date+1e4),f&&clearTimeout(f),this.is_loading(a.currentTarget)||this.show_contextmenu(a.currentTarget,a.pageX,a.pageY,a)},this)).on("click.jstree",".jstree-anchor",a.proxy(function(b){this._data.contextmenu.visible&&(!e||+new Date-e>250)&&a.vakata.context.hide(),e=0},this)).on("touchstart.jstree",".jstree-anchor",function(d){d.originalEvent&&d.originalEvent.changedTouches&&d.originalEvent.changedTouches[0]&&(b=d.pageX,c=d.pageY,f=setTimeout(function(){a(d.currentTarget).trigger("contextmenu",!0)},750))}).on("touchmove.vakata.jstree",function(a){f&&a.originalEvent&&a.originalEvent.changedTouches&&a.originalEvent.changedTouches[0]&&(Math.abs(b-a.pageX)>50||Math.abs(c-a.pageY)>50)&&clearTimeout(f)}).on("touchend.vakata.jstree",function(a){f&&clearTimeout(f)}),a(k).on("context_hide.vakata.jstree",a.proxy(function(){this._data.contextmenu.visible=!1},this))},this.teardown=function(){this._data.contextmenu.visible&&a.vakata.context.hide(),d.teardown.call(this)},this.show_contextmenu=function(c,d,e,f){if(c=this.get_node(c),!c||c.id===a.jstree.root)return!1;var g=this.settings.contextmenu,h=this.get_node(c,!0),i=h.children(".jstree-anchor"),j=!1,k=!1;(g.show_at_node||d===b||e===b)&&(j=i.offset(),d=j.left,e=j.top+this._data.core.li_height),this.settings.contextmenu.select_node&&!this.is_selected(c)&&this.activate_node(c,f),k=g.items,a.isFunction(k)&&(k=k.call(this,c,a.proxy(function(a){this._show_contextmenu(c,d,e,a)},this))),a.isPlainObject(k)&&this._show_contextmenu(c,d,e,k)},this._show_contextmenu=function(b,c,d,e){var f=this.get_node(b,!0),g=f.children(".jstree-anchor");a(k).one("context_show.vakata.jstree",a.proxy(function(b,c){var d="jstree-contextmenu jstree-"+this.get_theme()+"-contextmenu";a(c.element).addClass(d)},this)),this._data.contextmenu.visible=!0,a.vakata.context.show(g,{x:c,y:d},e),this.trigger("show_contextmenu",{node:b,x:c,y:d})}},function(a){var b=!1,c={element:!1,reference:!1,position_x:0,position_y:0,items:[],html:"",is_visible:!1};a.vakata.context={settings:{hide_onmouseleave:0,icons:!0},_trigger:function(b){a(k).triggerHandler("context_"+b+".vakata",{reference:c.reference,element:c.element,position:{x:c.position_x,y:c.position_y}})},_execute:function(b){return b=c.items[b],b&&(!b._disabled||a.isFunction(b._disabled)&&!b._disabled({item:b,reference:c.reference,element:c.element}))&&b.action?b.action.call(null,{item:b,reference:c.reference,element:c.element,position:{x:c.position_x,y:c.position_y}}):!1},_parse:function(b,d){if(!b)return!1;d||(c.html="",c.items=[]);var e,f="",g=!1;return d&&(f+="<ul>"),a.each(b,function(b,d){return d?(c.items.push(d),!g&&d.separator_before&&(f+="<li class='vakata-context-separator'><a href='#' "+(a.vakata.context.settings.icons?"":'style="margin-left:0px;"')+">&#160;</a></li>"),g=!1,f+="<li class='"+(d._class||"")+(d._disabled===!0||a.isFunction(d._disabled)&&d._disabled({item:d,reference:c.reference,element:c.element})?" vakata-contextmenu-disabled ":"")+"' "+(d.shortcut?" data-shortcut='"+d.shortcut+"' ":"")+">",f+="<a href='#' rel='"+(c.items.length-1)+"'>",a.vakata.context.settings.icons&&(f+="<i ",d.icon&&(f+=-1!==d.icon.indexOf("/")||-1!==d.icon.indexOf(".")?" style='background:url(\""+d.icon+"\") center center no-repeat' ":" class='"+d.icon+"' "),f+="></i><span class='vakata-contextmenu-sep'>&#160;</span>"),f+=(a.isFunction(d.label)?d.label({item:b,reference:c.reference,element:c.element}):d.label)+(d.shortcut?' <span class="vakata-contextmenu-shortcut vakata-contextmenu-shortcut-'+d.shortcut+'">'+(d.shortcut_label||"")+"</span>":"")+"</a>",d.submenu&&(e=a.vakata.context._parse(d.submenu,!0),e&&(f+=e)),f+="</li>",void(d.separator_after&&(f+="<li class='vakata-context-separator'><a href='#' "+(a.vakata.context.settings.icons?"":'style="margin-left:0px;"')+">&#160;</a></li>",g=!0))):!0}),f=f.replace(/<li class\='vakata-context-separator'\><\/li\>$/,""),d&&(f+="</ul>"),d||(c.html=f,a.vakata.context._trigger("parse")),f.length>10?f:!1},_show_submenu:function(c){if(c=a(c),c.length&&c.children("ul").length){var d=c.children("ul"),e=c.offset().left+c.outerWidth(),f=c.offset().top,g=d.width(),h=d.height(),i=a(window).width()+a(window).scrollLeft(),j=a(window).height()+a(window).scrollTop();b?c[e-(g+10+c.outerWidth())<0?"addClass":"removeClass"]("vakata-context-left"):c[e+g+10>i?"addClass":"removeClass"]("vakata-context-right"),f+h+10>j&&d.css("bottom","-1px"),d.show()}},show:function(d,e,f){var g,h,i,j,k,l,m,n,o=!0;switch(c.element&&c.element.length&&c.element.width(""),o){case!e&&!d:return!1;case!!e&&!!d:c.reference=d,c.position_x=e.x,c.position_y=e.y;break;case!e&&!!d:c.reference=d,g=d.offset(),c.position_x=g.left+d.outerHeight(),c.position_y=g.top;break;case!!e&&!d:c.position_x=e.x,c.position_y=e.y}d&&!f&&a(d).data("vakata_contextmenu")&&(f=a(d).data("vakata_contextmenu")),a.vakata.context._parse(f)&&c.element.html(c.html),c.items.length&&(c.element.appendTo("body"),h=c.element,i=c.position_x,j=c.position_y,k=h.width(),l=h.height(),m=a(window).width()+a(window).scrollLeft(),n=a(window).height()+a(window).scrollTop(),b&&(i-=h.outerWidth()-a(d).outerWidth(),i<a(window).scrollLeft()+20&&(i=a(window).scrollLeft()+20)),i+k+20>m&&(i=m-(k+20)),j+l+20>n&&(j=n-(l+20)),c.element.css({left:i,top:j}).show().find("a").first().focus().parent().addClass("vakata-context-hover"),c.is_visible=!0,a.vakata.context._trigger("show"))},hide:function(){c.is_visible&&(c.element.hide().find("ul").hide().end().find(":focus").blur().end().detach(),c.is_visible=!1,a.vakata.context._trigger("hide"))}},a(function(){b="rtl"===a("body").css("direction");var d=!1;c.element=a("<ul class='vakata-context'></ul>"),c.element.on("mouseenter","li",function(b){b.stopImmediatePropagation(),a.contains(this,b.relatedTarget)||(d&&clearTimeout(d),c.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(),a(this).siblings().find("ul").hide().end().end().parentsUntil(".vakata-context","li").addBack().addClass("vakata-context-hover"),a.vakata.context._show_submenu(this))}).on("mouseleave","li",function(b){a.contains(this,b.relatedTarget)||a(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover")}).on("mouseleave",function(b){a(this).find(".vakata-context-hover").removeClass("vakata-context-hover"),a.vakata.context.settings.hide_onmouseleave&&(d=setTimeout(function(b){return function(){a.vakata.context.hide()}}(this),a.vakata.context.settings.hide_onmouseleave))}).on("click","a",function(b){b.preventDefault(),a(this).blur().parent().hasClass("vakata-context-disabled")||a.vakata.context._execute(a(this).attr("rel"))===!1||a.vakata.context.hide()}).on("keydown","a",function(b){var d=null;switch(b.which){case 13:case 32:b.type="mouseup",b.preventDefault(),a(b.currentTarget).trigger(b);break;case 37:c.is_visible&&(c.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 38:c.is_visible&&(d=c.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(),d.length||(d=c.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last()),d.addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 39:c.is_visible&&(c.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 40:c.is_visible&&(d=c.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(),d.length||(d=c.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first()),d.addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 27:a.vakata.context.hide(),b.preventDefault()}}).on("keydown",function(a){a.preventDefault();var b=c.element.find(".vakata-contextmenu-shortcut-"+a.which).parent();b.parent().not(".vakata-context-disabled")&&b.click()}),a(k).on("mousedown.vakata.jstree",function(b){c.is_visible&&!a.contains(c.element[0],b.target)&&a.vakata.context.hide()}).on("context_show.vakata.jstree",function(a,d){c.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"),b&&c.element.addClass("vakata-context-rtl").css("direction","rtl"),c.element.find("ul").hide().end()})})}(a),a.jstree.defaults.dnd={copy:!0,open_timeout:500,is_draggable:!0,check_while_dragging:!0,always_copy:!1,inside_pos:0,drag_selection:!0,touch:!0,large_drop_target:!1,large_drag_target:!1},a.jstree.plugins.dnd=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("mousedown.jstree touchstart.jstree",this.settings.dnd.large_drag_target?".jstree-node":".jstree-anchor",a.proxy(function(b){if(this.settings.dnd.large_drag_target&&a(b.target).closest(".jstree-node")[0]!==b.currentTarget)return!0;if("touchstart"===b.type&&(!this.settings.dnd.touch||"selected"===this.settings.dnd.touch&&!a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").hasClass("jstree-clicked")))return!0;var c=this.get_node(b.target),d=this.is_selected(c)&&this.settings.dnd.drag_selection?this.get_top_selected().length:1,e=d>1?d+" "+this.get_string("nodes"):this.get_text(b.currentTarget);return this.settings.core.force_text&&(e=a.vakata.html.escape(e)),c&&c.id&&c.id!==a.jstree.root&&(1===b.which||"touchstart"===b.type)&&(this.settings.dnd.is_draggable===!0||a.isFunction(this.settings.dnd.is_draggable)&&this.settings.dnd.is_draggable.call(this,d>1?this.get_top_selected(!0):[c],b))?(this.element.trigger("mousedown.jstree"),a.vakata.dnd.start(b,{jstree:!0,origin:this,obj:this.get_node(c,!0),nodes:d>1?this.get_top_selected():[c.id]},'<div id="jstree-dnd" class="jstree-'+this.get_theme()+" jstree-"+this.get_theme()+"-"+this.get_theme_variant()+" "+(this.settings.core.themes.responsive?" jstree-dnd-responsive":"")+'"><i class="jstree-icon jstree-er"></i>'+e+'<ins class="jstree-copy" style="display:none;">+</ins></div>')):void 0},this))}},a(function(){var b=!1,c=!1,d=!1,e=!1,f=a('<div id="jstree-marker">&#160;</div>').hide();a(k).on("dnd_start.vakata.jstree",function(a,c){b=!1,d=!1,c&&c.data&&c.data.jstree&&f.appendTo("body")}).on("dnd_move.vakata.jstree",function(g,h){if(e&&clearTimeout(e),h&&h.data&&h.data.jstree&&(!h.event.target.id||"jstree-marker"!==h.event.target.id)){d=h.event;var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w=a.jstree.reference(h.event.target),x=!1,y=!1,z=!1;if(w&&w._data&&w._data.dnd)if(f.attr("class","jstree-"+w.get_theme()+(w.settings.core.themes.responsive?" jstree-dnd-responsive":"")),h.helper.children().attr("class","jstree-"+w.get_theme()+" jstree-"+w.get_theme()+"-"+w.get_theme_variant()+" "+(w.settings.core.themes.responsive?" jstree-dnd-responsive":"")).find(".jstree-copy").first()[h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"show":"hide"](),h.event.target!==w.element[0]&&h.event.target!==w.get_container_ul()[0]||0!==w.get_container_ul().children().length){if(x=w.settings.dnd.large_drop_target?a(h.event.target).closest(".jstree-node").children(".jstree-anchor"):a(h.event.target).closest(".jstree-anchor"),x&&x.length&&x.parent().is(".jstree-closed, .jstree-open, .jstree-leaf")&&(y=x.offset(),z=h.event.pageY-y.top,k=x.outerHeight(),n=k/3>z?["b","i","a"]:z>k-k/3?["a","i","b"]:z>k/2?["i","a","b"]:["i","b","a"],a.each(n,function(d,g){switch(g){case"b":i=y.left-6,j=y.top,l=w.get_parent(x),m=x.parent().index();break;case"i":u=w.settings.dnd.inside_pos,v=w.get_node(x.parent()),i=y.left-2,j=y.top+k/2+1,l=v.id,m="first"===u?0:"last"===u?v.children.length:Math.min(u,v.children.length);break;case"a":i=y.left-6,j=y.top+k,l=w.get_parent(x),m=x.parent().index()+1}for(o=!0,p=0,q=h.data.nodes.length;q>p;p++)if(r=h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"copy_node":"move_node",
-s=m,"move_node"===r&&"a"===g&&h.data.origin&&h.data.origin===w&&l===w.get_parent(h.data.nodes[p])&&(t=w.get_node(l),s>a.inArray(h.data.nodes[p],t.children)&&(s-=1)),o=o&&(w&&w.settings&&w.settings.dnd&&w.settings.dnd.check_while_dragging===!1||w.check(r,h.data.origin&&h.data.origin!==w?h.data.origin.get_node(h.data.nodes[p]):h.data.nodes[p],l,s,{dnd:!0,ref:w.get_node(x.parent()),pos:g,origin:h.data.origin,is_multi:h.data.origin&&h.data.origin!==w,is_foreign:!h.data.origin})),!o){w&&w.last_error&&(c=w.last_error());break}return"i"===g&&x.parent().is(".jstree-closed")&&w.settings.dnd.open_timeout&&(e=setTimeout(function(a,b){return function(){a.open_node(b)}}(w,x),w.settings.dnd.open_timeout)),o?(b={ins:w,par:l,pos:"i"!==g||"last"!==u||0!==m||w.is_loaded(v)?m:"last"},f.css({left:i+"px",top:j+"px"}).show(),h.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),c={},n=!0,!1):void 0}),n===!0))return}else{for(o=!0,p=0,q=h.data.nodes.length;q>p&&(o=o&&w.check(h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"copy_node":"move_node",h.data.origin&&h.data.origin!==w?h.data.origin.get_node(h.data.nodes[p]):h.data.nodes[p],a.jstree.root,"last",{dnd:!0,ref:w.get_node(a.jstree.root),pos:"i",origin:h.data.origin,is_multi:h.data.origin&&h.data.origin!==w,is_foreign:!h.data.origin}),o);p++);if(o)return b={ins:w,par:a.jstree.root,pos:"last"},f.hide(),void h.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok")}b=!1,h.helper.find(".jstree-icon").removeClass("jstree-ok").addClass("jstree-er"),f.hide()}}).on("dnd_scroll.vakata.jstree",function(a,c){c&&c.data&&c.data.jstree&&(f.hide(),b=!1,d=!1,c.helper.find(".jstree-icon").first().removeClass("jstree-ok").addClass("jstree-er"))}).on("dnd_stop.vakata.jstree",function(g,h){if(e&&clearTimeout(e),h&&h.data&&h.data.jstree){f.hide().detach();var i,j,k=[];if(b){for(i=0,j=h.data.nodes.length;j>i;i++)k[i]=h.data.origin?h.data.origin.get_node(h.data.nodes[i]):h.data.nodes[i];b.ins[h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"copy_node":"move_node"](k,b.par,b.pos,!1,!1,!1,h.data.origin)}else i=a(h.event.target).closest(".jstree"),i.length&&c&&c.error&&"check"===c.error&&(i=i.jstree(!0),i&&i.settings.core.error.call(this,c));d=!1,b=!1}}).on("keyup.jstree keydown.jstree",function(b,c){c=a.vakata.dnd._get(),c&&c.data&&c.data.jstree&&(c.helper.find(".jstree-copy").first()[c.data.origin&&(c.data.origin.settings.dnd.always_copy||c.data.origin.settings.dnd.copy&&(b.metaKey||b.ctrlKey))?"show":"hide"](),d&&(d.metaKey=b.metaKey,d.ctrlKey=b.ctrlKey,a.vakata.dnd._trigger("move",d)))})}),function(a){a.vakata.html={div:a("<div />"),escape:function(b){return a.vakata.html.div.text(b).html()},strip:function(b){return a.vakata.html.div.empty().append(a.parseHTML(b)).text()}};var b={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1};a.vakata.dnd={settings:{scroll_speed:10,scroll_proximity:20,helper_left:5,helper_top:10,threshold:5,threshold_touch:50},_trigger:function(b,c){var d=a.vakata.dnd._get();d.event=c,a(k).triggerHandler("dnd_"+b+".vakata",d)},_get:function(){return{data:b.data,element:b.element,helper:b.helper}},_clean:function(){b.helper&&b.helper.remove(),b.scroll_i&&(clearInterval(b.scroll_i),b.scroll_i=!1),b={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1},a(k).off("mousemove.vakata.jstree touchmove.vakata.jstree",a.vakata.dnd.drag),a(k).off("mouseup.vakata.jstree touchend.vakata.jstree",a.vakata.dnd.stop)},_scroll:function(c){if(!b.scroll_e||!b.scroll_l&&!b.scroll_t)return b.scroll_i&&(clearInterval(b.scroll_i),b.scroll_i=!1),!1;if(!b.scroll_i)return b.scroll_i=setInterval(a.vakata.dnd._scroll,100),!1;if(c===!0)return!1;var d=b.scroll_e.scrollTop(),e=b.scroll_e.scrollLeft();b.scroll_e.scrollTop(d+b.scroll_t*a.vakata.dnd.settings.scroll_speed),b.scroll_e.scrollLeft(e+b.scroll_l*a.vakata.dnd.settings.scroll_speed),(d!==b.scroll_e.scrollTop()||e!==b.scroll_e.scrollLeft())&&a.vakata.dnd._trigger("scroll",b.scroll_e)},start:function(c,d,e){"touchstart"===c.type&&c.originalEvent&&c.originalEvent.changedTouches&&c.originalEvent.changedTouches[0]&&(c.pageX=c.originalEvent.changedTouches[0].pageX,c.pageY=c.originalEvent.changedTouches[0].pageY,c.target=k.elementFromPoint(c.originalEvent.changedTouches[0].pageX-window.pageXOffset,c.originalEvent.changedTouches[0].pageY-window.pageYOffset)),b.is_drag&&a.vakata.dnd.stop({});try{c.currentTarget.unselectable="on",c.currentTarget.onselectstart=function(){return!1},c.currentTarget.style&&(c.currentTarget.style.MozUserSelect="none")}catch(f){}return b.init_x=c.pageX,b.init_y=c.pageY,b.data=d,b.is_down=!0,b.element=c.currentTarget,b.target=c.target,b.is_touch="touchstart"===c.type,e!==!1&&(b.helper=a("<div id='vakata-dnd'></div>").html(e).css({display:"block",margin:"0",padding:"0",position:"absolute",top:"-2000px",lineHeight:"16px",zIndex:"10000"})),a(k).on("mousemove.vakata.jstree touchmove.vakata.jstree",a.vakata.dnd.drag),a(k).on("mouseup.vakata.jstree touchend.vakata.jstree",a.vakata.dnd.stop),!1},drag:function(c){if("touchmove"===c.type&&c.originalEvent&&c.originalEvent.changedTouches&&c.originalEvent.changedTouches[0]&&(c.pageX=c.originalEvent.changedTouches[0].pageX,c.pageY=c.originalEvent.changedTouches[0].pageY,c.target=k.elementFromPoint(c.originalEvent.changedTouches[0].pageX-window.pageXOffset,c.originalEvent.changedTouches[0].pageY-window.pageYOffset)),b.is_down){if(!b.is_drag){if(!(Math.abs(c.pageX-b.init_x)>(b.is_touch?a.vakata.dnd.settings.threshold_touch:a.vakata.dnd.settings.threshold)||Math.abs(c.pageY-b.init_y)>(b.is_touch?a.vakata.dnd.settings.threshold_touch:a.vakata.dnd.settings.threshold)))return;b.helper&&(b.helper.appendTo("body"),b.helper_w=b.helper.outerWidth()),b.is_drag=!0,a.vakata.dnd._trigger("start",c)}var d=!1,e=!1,f=!1,g=!1,h=!1,i=!1,j=!1,l=!1,m=!1,n=!1;return b.scroll_t=0,b.scroll_l=0,b.scroll_e=!1,a(a(c.target).parentsUntil("body").addBack().get().reverse()).filter(function(){return/^auto|scroll$/.test(a(this).css("overflow"))&&(this.scrollHeight>this.offsetHeight||this.scrollWidth>this.offsetWidth)}).each(function(){var d=a(this),e=d.offset();return this.scrollHeight>this.offsetHeight&&(e.top+d.height()-c.pageY<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_t=1),c.pageY-e.top<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_t=-1)),this.scrollWidth>this.offsetWidth&&(e.left+d.width()-c.pageX<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_l=1),c.pageX-e.left<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_l=-1)),b.scroll_t||b.scroll_l?(b.scroll_e=a(this),!1):void 0}),b.scroll_e||(d=a(k),e=a(window),f=d.height(),g=e.height(),h=d.width(),i=e.width(),j=d.scrollTop(),l=d.scrollLeft(),f>g&&c.pageY-j<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_t=-1),f>g&&g-(c.pageY-j)<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_t=1),h>i&&c.pageX-l<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_l=-1),h>i&&i-(c.pageX-l)<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_l=1),(b.scroll_t||b.scroll_l)&&(b.scroll_e=d)),b.scroll_e&&a.vakata.dnd._scroll(!0),b.helper&&(m=parseInt(c.pageY+a.vakata.dnd.settings.helper_top,10),n=parseInt(c.pageX+a.vakata.dnd.settings.helper_left,10),f&&m+25>f&&(m=f-50),h&&n+b.helper_w>h&&(n=h-(b.helper_w+2)),b.helper.css({left:n+"px",top:m+"px"})),a.vakata.dnd._trigger("move",c),!1}},stop:function(c){if("touchend"===c.type&&c.originalEvent&&c.originalEvent.changedTouches&&c.originalEvent.changedTouches[0]&&(c.pageX=c.originalEvent.changedTouches[0].pageX,c.pageY=c.originalEvent.changedTouches[0].pageY,c.target=k.elementFromPoint(c.originalEvent.changedTouches[0].pageX-window.pageXOffset,c.originalEvent.changedTouches[0].pageY-window.pageYOffset)),b.is_drag)a.vakata.dnd._trigger("stop",c);else if("touchend"===c.type&&c.target===b.target){var d=setTimeout(function(){a(c.target).click()},100);a(c.target).one("click",function(){d&&clearTimeout(d)})}return a.vakata.dnd._clean(),!1}}}(a),a.jstree.defaults.massload=null,a.jstree.plugins.massload=function(b,c){this.init=function(a,b){c.init.call(this,a,b),this._data.massload={}},this._load_nodes=function(b,d,e){var f=this.settings.massload;return e&&!a.isEmptyObject(this._data.massload)?c._load_nodes.call(this,b,d,e):a.isFunction(f)?f.call(this,b,a.proxy(function(a){if(a)for(var f in a)a.hasOwnProperty(f)&&(this._data.massload[f]=a[f]);c._load_nodes.call(this,b,d,e)},this)):"object"==typeof f&&f&&f.url?(f=a.extend(!0,{},f),a.isFunction(f.url)&&(f.url=f.url.call(this,b)),a.isFunction(f.data)&&(f.data=f.data.call(this,b)),a.ajax(f).done(a.proxy(function(a,f,g){if(a)for(var h in a)a.hasOwnProperty(h)&&(this._data.massload[h]=a[h]);c._load_nodes.call(this,b,d,e)},this)).fail(a.proxy(function(a){c._load_nodes.call(this,b,d,e)},this))):c._load_nodes.call(this,b,d,e)},this._load_node=function(b,d){var e=this._data.massload[b.id];return e?this["string"==typeof e?"_append_html_data":"_append_json_data"](b,"string"==typeof e?a(a.parseHTML(e)).filter(function(){return 3!==this.nodeType}):e,function(a){d.call(this,a),delete this._data.massload[b.id]}):c._load_node.call(this,b,d)}},a.jstree.defaults.search={ajax:!1,fuzzy:!1,case_sensitive:!1,show_only_matches:!1,show_only_matches_children:!1,close_opened_onclear:!0,search_leaves_only:!1,search_callback:!1},a.jstree.plugins.search=function(c,d){this.bind=function(){d.bind.call(this),this._data.search.str="",this._data.search.dom=a(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=!1,this._data.search.smc=!1,this._data.search.hdn=[],this.element.on("search.jstree",a.proxy(function(b,c){if(this._data.search.som&&c.res.length){var d,e,f=this._model.data,g=[];for(d=0,e=c.res.length;e>d;d++)f[c.res[d]]&&!f[c.res[d]].state.hidden&&(g.push(c.res[d]),g=g.concat(f[c.res[d]].parents),this._data.search.smc&&(g=g.concat(f[c.res[d]].children_d)));g=a.vakata.array_remove_item(a.vakata.array_unique(g),a.jstree.root),this._data.search.hdn=this.hide_all(!0),this.show_node(g)}},this)).on("clear_search.jstree",a.proxy(function(a,b){this._data.search.som&&b.res.length&&this.show_node(this._data.search.hdn)},this))},this.search=function(c,d,e,f,g,h){if(c===!1||""===a.trim(c.toString()))return this.clear_search();f=this.get_node(f),f=f&&f.id?f.id:null,c=c.toString();var i,j,k=this.settings.search,l=k.ajax?k.ajax:!1,m=this._model.data,n=null,o=[],p=[];if(this._data.search.res.length&&!g&&this.clear_search(),e===b&&(e=k.show_only_matches),h===b&&(h=k.show_only_matches_children),!d&&l!==!1)return a.isFunction(l)?l.call(this,c,a.proxy(function(b){b&&b.d&&(b=b.d),this._load_nodes(a.isArray(b)?a.vakata.array_unique(b):[],function(){this.search(c,!0,e,f,g)},!0)},this),f):(l=a.extend({},l),l.data||(l.data={}),l.data.str=c,f&&(l.data.inside=f),a.ajax(l).fail(a.proxy(function(){this._data.core.last_error={error:"ajax",plugin:"search",id:"search_01",reason:"Could not load search parents",data:JSON.stringify(l)},this.settings.core.error.call(this,this._data.core.last_error)},this)).done(a.proxy(function(b){b&&b.d&&(b=b.d),this._load_nodes(a.isArray(b)?a.vakata.array_unique(b):[],function(){this.search(c,!0,e,f,g)},!0)},this)));if(g||(this._data.search.str=c,this._data.search.dom=a(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=e,this._data.search.smc=h),n=new a.vakata.search(c,!0,{caseSensitive:k.case_sensitive,fuzzy:k.fuzzy}),a.each(m[f?f:a.jstree.root].children_d,function(a,b){var d=m[b];d.text&&(!k.search_leaves_only||d.state.loaded&&0===d.children.length)&&(k.search_callback&&k.search_callback.call(this,c,d)||!k.search_callback&&n.search(d.text).isMatch)&&(o.push(b),p=p.concat(d.parents))}),o.length){for(p=a.vakata.array_unique(p),i=0,j=p.length;j>i;i++)p[i]!==a.jstree.root&&m[p[i]]&&this.open_node(p[i],null,0)===!0&&this._data.search.opn.push(p[i]);g?(this._data.search.dom=this._data.search.dom.add(a(this.element[0].querySelectorAll("#"+a.map(o,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #")))),this._data.search.res=a.vakata.array_unique(this._data.search.res.concat(o))):(this._data.search.dom=a(this.element[0].querySelectorAll("#"+a.map(o,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.res=o),this._data.search.dom.children(".jstree-anchor").addClass("jstree-search")}this.trigger("search",{nodes:this._data.search.dom,str:c,res:this._data.search.res,show_only_matches:e})},this.clear_search=function(){this.settings.search.close_opened_onclear&&this.close_node(this._data.search.opn,0),this.trigger("clear_search",{nodes:this._data.search.dom,str:this._data.search.str,res:this._data.search.res}),this._data.search.res.length&&(this._data.search.dom=a(this.element[0].querySelectorAll("#"+a.map(this._data.search.res,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search")),this._data.search.str="",this._data.search.res=[],this._data.search.opn=[],this._data.search.dom=a()},this.redraw_node=function(b,c,e,f){if(b=d.redraw_node.apply(this,arguments),b&&-1!==a.inArray(b.id,this._data.search.res)){var g,h,i=null;for(g=0,h=b.childNodes.length;h>g;g++)if(b.childNodes[g]&&b.childNodes[g].className&&-1!==b.childNodes[g].className.indexOf("jstree-anchor")){i=b.childNodes[g];break}i&&(i.className+=" jstree-search")}return b}},function(a){a.vakata.search=function(b,c,d){d=d||{},d=a.extend({},a.vakata.search.defaults,d),d.fuzzy!==!1&&(d.fuzzy=!0),b=d.caseSensitive?b:b.toLowerCase();var e,f,g,h,i=d.location,j=d.distance,k=d.threshold,l=b.length;return l>32&&(d.fuzzy=!1),d.fuzzy&&(e=1<<l-1,f=function(){var a={},c=0;for(c=0;l>c;c++)a[b.charAt(c)]=0;for(c=0;l>c;c++)a[b.charAt(c)]|=1<<l-c-1;return a}(),g=function(a,b){var c=a/l,d=Math.abs(i-b);return j?c+d/j:d?1:c}),h=function(a){if(a=d.caseSensitive?a:a.toLowerCase(),b===a||-1!==a.indexOf(b))return{isMatch:!0,score:0};if(!d.fuzzy)return{isMatch:!1,score:1};var c,h,j,m,n,o,p,q,r,s=a.length,t=k,u=a.indexOf(b,i),v=l+s,w=1,x=[];for(-1!==u&&(t=Math.min(g(0,u),t),u=a.lastIndexOf(b,i+l),-1!==u&&(t=Math.min(g(0,u),t))),u=-1,c=0;l>c;c++){for(j=0,m=v;m>j;)g(c,i+m)<=t?j=m:v=m,m=Math.floor((v-j)/2+j);for(v=m,o=Math.max(1,i-m+1),p=Math.min(i+m,s)+l,q=new Array(p+2),q[p+1]=(1<<c)-1,h=p;h>=o;h--)if(r=f[a.charAt(h-1)],0===c?q[h]=(q[h+1]<<1|1)&r:q[h]=(q[h+1]<<1|1)&r|((n[h+1]|n[h])<<1|1)|n[h+1],q[h]&e&&(w=g(c,h-1),t>=w)){if(t=w,u=h-1,x.push(u),!(u>i))break;o=Math.max(1,2*i-u)}if(g(c+1,i)>t)break;n=q}return{isMatch:u>=0,score:w}},c===!0?{search:h}:h(c)},a.vakata.search.defaults={location:0,distance:100,threshold:.6,fuzzy:!1,caseSensitive:!1}}(a),a.jstree.defaults.sort=function(a,b){return this.get_text(a)>this.get_text(b)?1:-1},a.jstree.plugins.sort=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("model.jstree",a.proxy(function(a,b){this.sort(b.parent,!0)},this)).on("rename_node.jstree create_node.jstree",a.proxy(function(a,b){this.sort(b.parent||b.node.parent,!1),this.redraw_node(b.parent||b.node.parent,!0)},this)).on("move_node.jstree copy_node.jstree",a.proxy(function(a,b){this.sort(b.parent,!1),this.redraw_node(b.parent,!0)},this))},this.sort=function(b,c){var d,e;if(b=this.get_node(b),b&&b.children&&b.children.length&&(b.children.sort(a.proxy(this.settings.sort,this)),c))for(d=0,e=b.children_d.length;e>d;d++)this.sort(b.children_d[d],!1)}};var n=!1;a.jstree.defaults.state={key:"jstree",events:"changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree",ttl:!1,filter:!1},a.jstree.plugins.state=function(b,c){this.bind=function(){c.bind.call(this);var b=a.proxy(function(){this.element.on(this.settings.state.events,a.proxy(function(){n&&clearTimeout(n),n=setTimeout(a.proxy(function(){this.save_state()},this),100)},this)),this.trigger("state_ready")},this);this.element.on("ready.jstree",a.proxy(function(a,c){this.element.one("restore_state.jstree",b),this.restore_state()||b()},this))},this.save_state=function(){var b={state:this.get_state(),ttl:this.settings.state.ttl,sec:+new Date};a.vakata.storage.set(this.settings.state.key,JSON.stringify(b))},this.restore_state=function(){var b=a.vakata.storage.get(this.settings.state.key);if(b)try{b=JSON.parse(b)}catch(c){return!1}return b&&b.ttl&&b.sec&&+new Date-b.sec>b.ttl?!1:(b&&b.state&&(b=b.state),b&&a.isFunction(this.settings.state.filter)&&(b=this.settings.state.filter.call(this,b)),b?(this.element.one("set_state.jstree",function(c,d){d.instance.trigger("restore_state",{state:a.extend(!0,{},b)})}),this.set_state(b),!0):!1)},this.clear_state=function(){return a.vakata.storage.del(this.settings.state.key)}},function(a,b){a.vakata.storage={set:function(a,b){return window.localStorage.setItem(a,b)},get:function(a){return window.localStorage.getItem(a)},del:function(a){return window.localStorage.removeItem(a)}}}(a),a.jstree.defaults.types={"default":{}},a.jstree.defaults.types[a.jstree.root]={},a.jstree.plugins.types=function(c,d){this.init=function(c,e){var f,g;if(e&&e.types&&e.types["default"])for(f in e.types)if("default"!==f&&f!==a.jstree.root&&e.types.hasOwnProperty(f))for(g in e.types["default"])e.types["default"].hasOwnProperty(g)&&e.types[f][g]===b&&(e.types[f][g]=e.types["default"][g]);d.init.call(this,c,e),this._model.data[a.jstree.root].type=a.jstree.root},this.refresh=function(b,c){d.refresh.call(this,b,c),this._model.data[a.jstree.root].type=a.jstree.root},this.bind=function(){this.element.on("model.jstree",a.proxy(function(c,d){var e,f,g=this._model.data,h=d.nodes,i=this.settings.types,j="default";for(e=0,f=h.length;f>e;e++)j="default",g[h[e]].original&&g[h[e]].original.type&&i[g[h[e]].original.type]&&(j=g[h[e]].original.type),g[h[e]].data&&g[h[e]].data.jstree&&g[h[e]].data.jstree.type&&i[g[h[e]].data.jstree.type]&&(j=g[h[e]].data.jstree.type),g[h[e]].type=j,g[h[e]].icon===!0&&i[j].icon!==b&&(g[h[e]].icon=i[j].icon);g[a.jstree.root].type=a.jstree.root},this)),d.bind.call(this)},this.get_json=function(b,c,e){var f,g,h=this._model.data,i=c?a.extend(!0,{},c,{no_id:!1}):{},j=d.get_json.call(this,b,i,e);if(j===!1)return!1;if(a.isArray(j))for(f=0,g=j.length;g>f;f++)j[f].type=j[f].id&&h[j[f].id]&&h[j[f].id].type?h[j[f].id].type:"default",c&&c.no_id&&(delete j[f].id,j[f].li_attr&&j[f].li_attr.id&&delete j[f].li_attr.id,j[f].a_attr&&j[f].a_attr.id&&delete j[f].a_attr.id);else j.type=j.id&&h[j.id]&&h[j.id].type?h[j.id].type:"default",c&&c.no_id&&(j=this._delete_ids(j));return j},this._delete_ids=function(b){if(a.isArray(b)){for(var c=0,d=b.length;d>c;c++)b[c]=this._delete_ids(b[c]);return b}return delete b.id,b.li_attr&&b.li_attr.id&&delete b.li_attr.id,b.a_attr&&b.a_attr.id&&delete b.a_attr.id,b.children&&a.isArray(b.children)&&(b.children=this._delete_ids(b.children)),b},this.check=function(c,e,f,g,h){if(d.check.call(this,c,e,f,g,h)===!1)return!1;e=e&&e.id?e:this.get_node(e),f=f&&f.id?f:this.get_node(f);var i,j,k,l,m=e&&e.id?h&&h.origin?h.origin:a.jstree.reference(e.id):null;switch(m=m&&m._model&&m._model.data?m._model.data:null,c){case"create_node":case"move_node":case"copy_node":if("move_node"!==c||-1===a.inArray(e.id,f.children)){if(i=this.get_rules(f),i.max_children!==b&&-1!==i.max_children&&i.max_children===f.children.length)return this._data.core.last_error={error:"check",plugin:"types",id:"types_01",reason:"max_children prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;if(i.valid_children!==b&&-1!==i.valid_children&&-1===a.inArray(e.type||"default",i.valid_children))return this._data.core.last_error={error:"check",plugin:"types",id:"types_02",reason:"valid_children prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;if(m&&e.children_d&&e.parents){for(j=0,k=0,l=e.children_d.length;l>k;k++)j=Math.max(j,m[e.children_d[k]].parents.length);j=j-e.parents.length+1}(0>=j||j===b)&&(j=1);do{if(i.max_depth!==b&&-1!==i.max_depth&&i.max_depth<j)return this._data.core.last_error={error:"check",plugin:"types",id:"types_03",reason:"max_depth prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;f=this.get_node(f.parent),i=this.get_rules(f),j++}while(f)}}return!0},this.get_rules=function(a){if(a=this.get_node(a),!a)return!1;var c=this.get_type(a,!0);return c.max_depth===b&&(c.max_depth=-1),c.max_children===b&&(c.max_children=-1),c.valid_children===b&&(c.valid_children=-1),c},this.get_type=function(b,c){return b=this.get_node(b),b?c?a.extend({type:b.type},this.settings.types[b.type]):b.type:!1},this.set_type=function(c,d){var e,f,g,h,i;if(a.isArray(c)){for(c=c.slice(),f=0,g=c.length;g>f;f++)this.set_type(c[f],d);return!0}return e=this.settings.types,c=this.get_node(c),e[d]&&c?(h=c.type,i=this.get_icon(c),c.type=d,(i===!0||e[h]&&e[h].icon!==b&&i===e[h].icon)&&this.set_icon(c,e[d].icon!==b?e[d].icon:!0),!0):!1}},a.jstree.defaults.unique={case_sensitive:!1,duplicate:function(a,b){return a+" ("+b+")"}},a.jstree.plugins.unique=function(c,d){this.check=function(b,c,e,f,g){if(d.check.call(this,b,c,e,f,g)===!1)return!1;if(c=c&&c.id?c:this.get_node(c),e=e&&e.id?e:this.get_node(e),!e||!e.children)return!0;var h,i,j="rename_node"===b?f:c.text,k=[],l=this.settings.unique.case_sensitive,m=this._model.data;for(h=0,i=e.children.length;i>h;h++)k.push(l?m[e.children[h]].text:m[e.children[h]].text.toLowerCase());switch(l||(j=j.toLowerCase()),b){case"delete_node":return!0;case"rename_node":return h=-1===a.inArray(j,k)||c.text&&c.text[l?"toString":"toLowerCase"]()===j,h||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_01",reason:"Child with name "+j+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),h;case"create_node":return h=-1===a.inArray(j,k),h||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_04",reason:"Child with name "+j+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),h;case"copy_node":return h=-1===a.inArray(j,k),h||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_02",reason:"Child with name "+j+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),h;case"move_node":return h=c.parent===e.id&&(!g||!g.is_multi)||-1===a.inArray(j,k),h||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_03",reason:"Child with name "+j+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),h}return!0},this.create_node=function(c,e,f,g,h){if(!e||e.text===b){if(null===c&&(c=a.jstree.root),c=this.get_node(c),!c)return d.create_node.call(this,c,e,f,g,h);if(f=f===b?"last":f,!f.toString().match(/^(before|after)$/)&&!h&&!this.is_loaded(c))return d.create_node.call(this,c,e,f,g,h);e||(e={});var i,j,k,l,m,n=this._model.data,o=this.settings.unique.case_sensitive,p=this.settings.unique.duplicate;for(j=i=this.get_string("New node"),k=[],l=0,m=c.children.length;m>l;l++)k.push(o?n[c.children[l]].text:n[c.children[l]].text.toLowerCase());for(l=1;-1!==a.inArray(o?j:j.toLowerCase(),k);)j=p.call(this,i,++l).toString();e.text=j}return d.create_node.call(this,c,e,f,g,h)}};var o=k.createElement("DIV");if(o.setAttribute("unselectable","on"),o.setAttribute("role","presentation"),o.className="jstree-wholerow",o.innerHTML="&#160;",a.jstree.plugins.wholerow=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("ready.jstree set_state.jstree",a.proxy(function(){this.hide_dots()},this)).on("init.jstree loading.jstree ready.jstree",a.proxy(function(){this.get_container_ul().addClass("jstree-wholerow-ul")},this)).on("deselect_all.jstree",a.proxy(function(a,b){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked")},this)).on("changed.jstree",a.proxy(function(a,b){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked");var c,d,e=!1;for(c=0,d=b.selected.length;d>c;c++)e=this.get_node(b.selected[c],!0),e&&e.length&&e.children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("open_node.jstree",a.proxy(function(a,b){this.get_node(b.node,!0).find(".jstree-clicked").parent().children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("hover_node.jstree dehover_node.jstree",a.proxy(function(a,b){"hover_node"===a.type&&this.is_disabled(b.node)||this.get_node(b.node,!0).children(".jstree-wholerow")["hover_node"===a.type?"addClass":"removeClass"]("jstree-wholerow-hovered")},this)).on("contextmenu.jstree",".jstree-wholerow",a.proxy(function(b){b.preventDefault();var c=a.Event("contextmenu",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey,pageX:b.pageX,pageY:b.pageY});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c)},this)).on("click.jstree",".jstree-wholerow",function(b){b.stopImmediatePropagation();var c=a.Event("click",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c).focus()}).on("click.jstree",".jstree-leaf > .jstree-ocl",a.proxy(function(b){b.stopImmediatePropagation();var c=a.Event("click",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c).focus()},this)).on("mouseover.jstree",".jstree-wholerow, .jstree-icon",a.proxy(function(a){return a.stopImmediatePropagation(),this.is_disabled(a.currentTarget)||this.hover_node(a.currentTarget),!1},this)).on("mouseleave.jstree",".jstree-node",a.proxy(function(a){this.dehover_node(a.currentTarget)},this))},this.teardown=function(){this.settings.wholerow&&this.element.find(".jstree-wholerow").remove(),c.teardown.call(this)},this.redraw_node=function(b,d,e,f){if(b=c.redraw_node.apply(this,arguments)){var g=o.cloneNode(!0);-1!==a.inArray(b.id,this._data.core.selected)&&(g.className+=" jstree-wholerow-clicked"),this._data.core.focused&&this._data.core.focused===b.id&&(g.className+=" jstree-wholerow-hovered"),b.insertBefore(g,b.childNodes[0])}return b}},k.registerElement&&Object&&Object.create){var p=Object.create(HTMLElement.prototype);p.createdCallback=function(){var b,c={core:{},plugins:[]};for(b in a.jstree.plugins)a.jstree.plugins.hasOwnProperty(b)&&this.attributes[b]&&(c.plugins.push(b),this.getAttribute(b)&&JSON.parse(this.getAttribute(b))&&(c[b]=JSON.parse(this.getAttribute(b))));for(b in a.jstree.defaults.core)a.jstree.defaults.core.hasOwnProperty(b)&&this.attributes[b]&&(c.core[b]=JSON.parse(this.getAttribute(b))||this.getAttribute(b));a(this).jstree(c)};try{k.registerElement("vakata-jstree",{prototype:p})}catch(q){}}}}),function(a){"use strict";function b(){var b=1;this.nodesFingerprint=function(a){return a.__uiNodeId||(a.__uiNodeId=b++),""+a.__uiNodeId+(a.id||"")+(a.text||"")+(a.type||"")},this.changeWatcher=function(b,c){var d,e=function(){var d,e,f=[];if(b)for(var h=a.isFunction(b)?b():b,i=0,j=h.length;j>i;i++)e=h[i],d=c(e),g[d]=e,f.push(d);return f},f=function(a,b){var c,d,e=[],f={};for(c=0,d=b.length;d>c;c++)f[b[c]]=!0;for(c=0,d=a.length;d>c;c++)f[a[c]]||e.push(a[c]);return e},g={},h=function(a,b){var e,h,i,j,k={},l=f(b,a);for(e=0,h=l.length;h>e;e++){var m=l[e];i=g[m],delete g[m];var n=c(i);n===m?d.onRemoved(i):(k[n]=m,d.onChanged(i))}var o=f(a,b);for(e=0,h=o.length;h>e;e++)j=o[e],i=g[j],k[j]||d.onAdded(i)};return d={subscribe:function(a,b){a.$watch(e,function(a,c){b&&b(a,c)===!1||h(a,c)},!0)},onAdded:a.noop,onChanged:a.noop,onRemoved:a.noop}}}function c(){return{restrict:"A",scope:{treeData:"=ngModel",shouldApply:"&"},controller:"jsTreeCtrl",link:function(b,c,d,e){function f(a,b,c){if(c.treeEvents)for(var d=c.treeEvents.split(";"),e=0;e<d.length;e++)if(d[e].length>0){var f=d[e].split(":")[0],g=f+".jstree",h=d[e].split(":")[1];a.tree.on(g,a.$parent.$eval(h))}}function g(){var c=d.jsTree?b.$parent.$eval(d.jsTree):{};h={},a.copy(c,h);var e=JSON.stringify(h);return h.core?h.core.data=b.treeData:h.core={data:b.treeData},e}var h=null,i=e.changeWatcher(b.treeData,e.nodesFingerprint),j=!1;b.destroy=function(){if(d.tree)if(-1!==d.tree.indexOf(".")){var a=d.tree.split(".");b.tree=b.$parent[a[0]][a[1]]=c}else b.tree=b.$parent[d.tree]=c;else b.tree=c;b.tree.jstree("destroy")},b.init=function(){b.tree.jstree(h),f(b,c,d)},i.onChanged=function(c){a.isDefined(b.tree.jstree(!0).set_type)&&b.tree.jstree(!0).set_type(c.id,c.type),b.tree.jstree(!0).rename_node(c.id,c.text)},i.onAdded=function(a){for(;j;);j=!0;var c=b.tree.jstree(!0).get_node(a.parent),d=b.tree.jstree(!0).create_node(c,a,"inside",function(){j=!1});d||(j=!1)},i.onRemoved=function(a){b.tree.jstree(!0).delete_node(a.id)},i.subscribe(b,function(){return b.shouldApply?b.shouldApply():!0}),b.$watch(g,function(){b.destroy(),b.init()})}}}var d=a.module("ngJsTree",[]);d.controller("jsTreeCtrl",b),d.directive("jsTree",c)}(angular),function(a){"use strict";if(a.URL=a.URL||a.webkitURL,a.Blob&&a.URL)try{return void new Blob}catch(b){}var c=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||function(a){var b=function(a){return Object.prototype.toString.call(a).match(/^\[object\s(.*)\]$/)[1]},c=function(){this.data=[]},d=function(a,b,c){this.data=a,this.size=a.length,this.type=b,this.encoding=c},e=c.prototype,f=d.prototype,g=a.FileReaderSync,h=function(a){this.code=this[this.name=a]},i="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),j=i.length,k=a.URL||a.webkitURL||a,l=k.createObjectURL,m=k.revokeObjectURL,n=k,o=a.btoa,p=a.atob,q=a.ArrayBuffer,r=a.Uint8Array,s=/^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;for(d.fake=f.fake=!0;j--;)h.prototype[i[j]]=j+1;return k.createObjectURL||(n=a.URL=function(a){var b,c=document.createElementNS("http://www.w3.org/1999/xhtml","a");return c.href=a,"origin"in c||("data:"===c.protocol.toLowerCase()?c.origin=null:(b=a.match(s),c.origin=b&&b[1])),c}),n.createObjectURL=function(a){var b,c=a.type;return null===c&&(c="application/octet-stream"),a instanceof d?(b="data:"+c,"base64"===a.encoding?b+";base64,"+a.data:"URI"===a.encoding?b+","+decodeURIComponent(a.data):o?b+";base64,"+o(a.data):b+","+encodeURIComponent(a.data)):l?l.call(k,a):void 0},n.revokeObjectURL=function(a){"data:"!==a.substring(0,5)&&m&&m.call(k,a)},e.append=function(a){var c=this.data;if(r&&(a instanceof q||a instanceof r)){for(var e="",f=new r(a),i=0,j=f.length;j>i;i++)e+=String.fromCharCode(f[i]);c.push(e)}else if("Blob"===b(a)||"File"===b(a)){if(!g)throw new h("NOT_READABLE_ERR");var k=new g;c.push(k.readAsBinaryString(a))}else a instanceof d?"base64"===a.encoding&&p?c.push(p(a.data)):"URI"===a.encoding?c.push(decodeURIComponent(a.data)):"raw"===a.encoding&&c.push(a.data):("string"!=typeof a&&(a+=""),c.push(unescape(encodeURIComponent(a))))},e.getBlob=function(a){return arguments.length||(a=null),new d(this.data.join(""),a,"raw")},e.toString=function(){return"[object BlobBuilder]"},f.slice=function(a,b,c){var e=arguments.length;return 3>e&&(c=null),new d(this.data.slice(a,e>1?b:this.data.length),c,this.encoding)},f.toString=function(){return"[object Blob]"},f.close=function(){this.size=0,delete this.data},c}(a);a.Blob=function(a,b){var d=b?b.type||"":"",e=new c;if(a)for(var f=0,g=a.length;g>f;f++)Uint8Array&&a[f]instanceof Uint8Array?e.append(a[f].buffer):e.append(a[f]);var h=e.getBlob(d);return!h.slice&&h.webkitSlice&&(h.slice=h.webkitSlice),
-h};var d=Object.getPrototypeOf||function(a){return a.__proto__};a.Blob.prototype=d(new a.Blob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this);var saveAs=saveAs||function(a){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=b.createElementNS("http://www.w3.org/1999/xhtml","a"),e="download"in d,f=function(c){var d=b.createEvent("MouseEvents");d.initMouseEvent("click",!0,!1,a,0,0,0,0,0,!1,!1,!1,!1,0,null),c.dispatchEvent(d)},g=a.webkitRequestFileSystem,h=a.requestFileSystem||g||a.mozRequestFileSystem,i=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},j="application/octet-stream",k=0,l=500,m=function(b){var d=function(){"string"==typeof b?c().revokeObjectURL(b):b.remove()};a.chrome?d():setTimeout(d,l)},n=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(f){i(f)}}},o=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},p=function(b,i){b=o(b);var l,p,q,r=this,s=b.type,t=!1,u=function(){n(r,"writestart progress write writeend".split(" "))},v=function(){if((t||!l)&&(l=c().createObjectURL(b)),p)p.location.href=l;else{var d=a.open(l,"_blank");void 0==d&&"undefined"!=typeof safari&&(a.location.href=l)}r.readyState=r.DONE,u(),m(l)},w=function(a){return function(){return r.readyState!==r.DONE?a.apply(this,arguments):void 0}},x={create:!0,exclusive:!1};return r.readyState=r.INIT,i||(i="download"),e?(l=c().createObjectURL(b),d.href=l,d.download=i,f(d),r.readyState=r.DONE,u(),void m(l)):(a.chrome&&s&&s!==j&&(q=b.slice||b.webkitSlice,b=q.call(b,0,b.size,j),t=!0),g&&"download"!==i&&(i+=".download"),(s===j||g)&&(p=a),h?(k+=b.size,void h(a.TEMPORARY,k,w(function(a){a.root.getDirectory("saved",x,w(function(a){var c=function(){a.getFile(i,x,w(function(a){a.createWriter(w(function(c){c.onwriteend=function(b){p.location.href=a.toURL(),r.readyState=r.DONE,n(r,"writeend",b),m(a)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&v()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=r["on"+a]}),c.write(b),r.abort=function(){c.abort(),r.readyState=r.DONE},r.readyState=r.WRITING}),v)}),v)};a.getFile(i,{create:!1},w(function(a){a.remove(),c()}),w(function(a){a.code===a.NOT_FOUND_ERR?c():v()}))}),v)}),v)):void v())},q=p.prototype,r=function(a,b){return new p(a,b)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(a,b){return navigator.msSaveOrOpenBlob(o(a),b)}:(q.abort=function(){var a=this;a.readyState=a.DONE,n(a,"abort")},q.readyState=q.INIT=0,q.WRITING=1,q.DONE=2,q.error=q.onwritestart=q.onprogress=q.onwrite=q.onabort=q.onerror=q.onwriteend=null,r)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=saveAs:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs}),function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){!function(a){"use strict";if(a.URL=a.URL||a.webkitURL,a.Blob&&a.URL)try{return void new Blob}catch(b){}var c=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||function(a){var b=function(a){return Object.prototype.toString.call(a).match(/^\[object\s(.*)\]$/)[1]},c=function(){this.data=[]},d=function(a,b,c){this.data=a,this.size=a.length,this.type=b,this.encoding=c},e=c.prototype,f=d.prototype,g=a.FileReaderSync,h=function(a){this.code=this[this.name=a]},i="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),j=i.length,k=a.URL||a.webkitURL||a,l=k.createObjectURL,m=k.revokeObjectURL,n=k,o=a.btoa,p=a.atob,q=a.ArrayBuffer,r=a.Uint8Array,s=/^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;for(d.fake=f.fake=!0;j--;)h.prototype[i[j]]=j+1;return k.createObjectURL||(n=a.URL=function(a){var b,c=document.createElementNS("http://www.w3.org/1999/xhtml","a");return c.href=a,"origin"in c||("data:"===c.protocol.toLowerCase()?c.origin=null:(b=a.match(s),c.origin=b&&b[1])),c}),n.createObjectURL=function(a){var b,c=a.type;return null===c&&(c="application/octet-stream"),a instanceof d?(b="data:"+c,"base64"===a.encoding?b+";base64,"+a.data:"URI"===a.encoding?b+","+decodeURIComponent(a.data):o?b+";base64,"+o(a.data):b+","+encodeURIComponent(a.data)):l?l.call(k,a):void 0},n.revokeObjectURL=function(a){"data:"!==a.substring(0,5)&&m&&m.call(k,a)},e.append=function(a){var c=this.data;if(r&&(a instanceof q||a instanceof r)){for(var e="",f=new r(a),i=0,j=f.length;j>i;i++)e+=String.fromCharCode(f[i]);c.push(e)}else if("Blob"===b(a)||"File"===b(a)){if(!g)throw new h("NOT_READABLE_ERR");var k=new g;c.push(k.readAsBinaryString(a))}else a instanceof d?"base64"===a.encoding&&p?c.push(p(a.data)):"URI"===a.encoding?c.push(decodeURIComponent(a.data)):"raw"===a.encoding&&c.push(a.data):("string"!=typeof a&&(a+=""),c.push(unescape(encodeURIComponent(a))))},e.getBlob=function(a){return arguments.length||(a=null),new d(this.data.join(""),a,"raw")},e.toString=function(){return"[object BlobBuilder]"},f.slice=function(a,b,c){var e=arguments.length;return 3>e&&(c=null),new d(this.data.slice(a,e>1?b:this.data.length),c,this.encoding)},f.toString=function(){return"[object Blob]"},f.close=function(){this.size=0,delete this.data},c}(a);a.Blob=function(a,b){var d=b?b.type||"":"",e=new c;if(a)for(var f=0,g=a.length;g>f;f++)Uint8Array&&a[f]instanceof Uint8Array?e.append(a[f].buffer):e.append(a[f]);var h=e.getBlob(d);return!h.slice&&h.webkitSlice&&(h.slice=h.webkitSlice),h};var d=Object.getPrototypeOf||function(a){return a.__proto__};a.Blob.prototype=d(new a.Blob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this)},{}],2:[function(a,b,c){var d=d||function(a){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=b.createElementNS("http://www.w3.org/1999/xhtml","a"),e="download"in d,f=function(a){var b=new MouseEvent("click");a.dispatchEvent(b)},g=/Version\/[\d\.]+.*Safari/.test(navigator.userAgent),h=a.webkitRequestFileSystem,i=a.requestFileSystem||h||a.mozRequestFileSystem,j=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},k="application/octet-stream",l=0,m=500,n=function(b){var d=function(){"string"==typeof b?c().revokeObjectURL(b):b.remove()};a.chrome?d():setTimeout(d,m)},o=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(f){j(f)}}},p=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},q=function(b,j,m){m||(b=p(b));var q,r,s,t=this,u=b.type,v=!1,w=function(){o(t,"writestart progress write writeend".split(" "))},x=function(){if(r&&g&&"undefined"!=typeof FileReader){var d=new FileReader;return d.onloadend=function(){var a=d.result;r.location.href="data:attachment/file"+a.slice(a.search(/[,;]/)),t.readyState=t.DONE,w()},d.readAsDataURL(b),void(t.readyState=t.INIT)}if((v||!q)&&(q=c().createObjectURL(b)),r)r.location.href=q;else{var e=a.open(q,"_blank");void 0==e&&g&&(a.location.href=q)}t.readyState=t.DONE,w(),n(q)},y=function(a){return function(){return t.readyState!==t.DONE?a.apply(this,arguments):void 0}},z={create:!0,exclusive:!1};return t.readyState=t.INIT,j||(j="download"),e?(q=c().createObjectURL(b),void setTimeout(function(){d.href=q,d.download=j,f(d),w(),n(q),t.readyState=t.DONE})):(a.chrome&&u&&u!==k&&(s=b.slice||b.webkitSlice,b=s.call(b,0,b.size,k),v=!0),h&&"download"!==j&&(j+=".download"),(u===k||h)&&(r=a),i?(l+=b.size,void i(a.TEMPORARY,l,y(function(a){a.root.getDirectory("saved",z,y(function(a){var c=function(){a.getFile(j,z,y(function(a){a.createWriter(y(function(c){c.onwriteend=function(b){r.location.href=a.toURL(),t.readyState=t.DONE,o(t,"writeend",b),n(a)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&x()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=t["on"+a]}),c.write(b),t.abort=function(){c.abort(),t.readyState=t.DONE},t.readyState=t.WRITING}),x)}),x)};a.getFile(j,{create:!1},y(function(a){a.remove(),c()}),y(function(a){a.code===a.NOT_FOUND_ERR?c():x()}))}),x)}),x)):void x())},r=q.prototype,s=function(a,b,c){return new q(a,b,c)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(a,b,c){return c||(a=p(a)),navigator.msSaveOrOpenBlob(a,b||"download")}:(r.abort=function(){var a=this;a.readyState=a.DONE,o(a,"abort")},r.readyState=r.INIT=0,r.WRITING=1,r.DONE=2,r.error=r.onwritestart=r.onprogress=r.onwrite=r.onabort=r.onerror=r.onwriteend=null,s)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof b&&b.exports?b.exports.saveAs=d:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return d})},{}],3:[function(a,b,c){"use strict";angular.module("ngFileSaver",[]).factory("FileSaver",["Blob","SaveAs","FileSaverUtils",a("./angular-file-saver.service")]).factory("FileSaverUtils",[a("./utils/utils.service.js")]).factory("Blob",["$window",a("./dependencies/blob-bundle.service.js")]).factory("SaveAs",[a("./dependencies/file-saver-bundle.service.js")])},{"./angular-file-saver.service":4,"./dependencies/blob-bundle.service.js":5,"./dependencies/file-saver-bundle.service.js":6,"./utils/utils.service.js":7}],4:[function(a,b,c){"use strict";b.exports=function(a,b,c){function d(a,d,e){try{b(a,d,e)}catch(f){c.handleErrors(f.message)}}return{saveAs:function(a,b,e){return c.isBlobInstance(a)||c.handleErrors("Data argument should be a blob instance"),c.isString(b)||c.handleErrors("Filename argument should be a string"),d(a,b,e)}}}},{}],5:[function(a,b,c){"use strict";a("Blob.js"),b.exports=function(a){return a.Blob}},{"Blob.js":1}],6:[function(a,b,c){"use strict";b.exports=function(){return a("FileSaver.js").saveAs||function(){}}},{"FileSaver.js":2}],7:[function(a,b,c){"use strict";b.exports=function(){return{handleErrors:function(a){throw new Error(a)},isString:function(a){return"string"==typeof a||a instanceof String},isUndefined:function(a){return"undefined"==typeof a},isBlobInstance:function(a){return a instanceof Blob}}}},{}]},{},[3]),function(a){function b(a,b,c){switch(arguments.length){case 2:return null!=a?a:b;case 3:return null!=a?a:null!=b?b:c;default:throw new Error("Implement me")}}function c(a,b){return Ba.call(a,b)}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function e(a){va.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+a)}function f(a,b){var c=!0;return o(function(){return c&&(e(a),c=!1),b.apply(this,arguments)},b)}function g(a,b){sb[a]||(e(b),sb[a]=!0)}function h(a,b){return function(c){return r(a.call(this,c),b)}}function i(a,b){return function(c){return this.localeData().ordinal(a.call(this,c),b)}}function j(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,"months");return 0>b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)}function k(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function l(){}function m(a,b){b!==!1&&H(a),p(this,a),this._d=new Date(+a._d),ub===!1&&(ub=!0,va.updateOffset(this),ub=!1)}function n(a){var b=A(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=va.localeData(),this._bubble()}function o(a,b){for(var d in b)c(b,d)&&(a[d]=b[d]);return c(b,"toString")&&(a.toString=b.toString),c(b,"valueOf")&&(a.valueOf=b.valueOf),a}function p(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=b._pf),"undefined"!=typeof b._locale&&(a._locale=b._locale),Ka.length>0)for(c in Ka)d=Ka[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function q(a){return 0>a?Math.ceil(a):Math.floor(a)}function r(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.length<b;)d="0"+d;return(e?c?"+":"":"-")+d}function s(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function t(a,b){var c;return b=M(b,a),a.isBefore(b)?c=s(a,b):(c=s(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function u(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(g(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=va.duration(c,d),v(this,e,a),this}}function v(a,b,c,d){var e=b._milliseconds,f=b._days,g=b._months;d=null==d?!0:d,e&&a._d.setTime(+a._d+e*c),f&&pa(a,"Date",oa(a,"Date")+f*c),g&&na(a,oa(a,"Month")+g*c),d&&va.updateOffset(a,f||g)}function w(a){return"[object Array]"===Object.prototype.toString.call(a)}function x(a){return"[object Date]"===Object.prototype.toString.call(a)||a instanceof Date}function y(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&C(a[d])!==C(b[d]))&&g++;return g+f}function z(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=lb[a]||mb[b]||b}return a}function A(a){var b,d,e={};for(d in a)c(a,d)&&(b=z(d),b&&(e[b]=a[d]));return e}function B(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}va[b]=function(e,f){var g,h,i=va._locale[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=va().utc().set(d,a);return i.call(va._locale,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function C(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function D(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function E(a,b,c){return ja(va([a,11,31+b-c]),b,c).week}function F(a){return G(a)?366:365}function G(a){return a%4===0&&a%100!==0||a%400===0}function H(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[Da]<0||a._a[Da]>11?Da:a._a[Ea]<1||a._a[Ea]>D(a._a[Ca],a._a[Da])?Ea:a._a[Fa]<0||a._a[Fa]>24||24===a._a[Fa]&&(0!==a._a[Ga]||0!==a._a[Ha]||0!==a._a[Ia])?Fa:a._a[Ga]<0||a._a[Ga]>59?Ga:a._a[Ha]<0||a._a[Ha]>59?Ha:a._a[Ia]<0||a._a[Ia]>999?Ia:-1,a._pf._overflowDayOfYear&&(Ca>b||b>Ea)&&(b=Ea),a._pf.overflow=b)}function I(b){return null==b._isValid&&(b._isValid=!isNaN(b._d.getTime())&&b._pf.overflow<0&&!b._pf.empty&&!b._pf.invalidMonth&&!b._pf.nullInput&&!b._pf.invalidFormat&&!b._pf.userInvalidated,b._strict&&(b._isValid=b._isValid&&0===b._pf.charsLeftOver&&0===b._pf.unusedTokens.length&&b._pf.bigHour===a)),b._isValid}function J(a){return a?a.toLowerCase().replace("_","-"):a}function K(a){for(var b,c,d,e,f=0;f<a.length;){for(e=J(a[f]).split("-"),b=e.length,c=J(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=L(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&y(e,c,!0)>=b-1)break;b--}f++}return null}function L(a){var b=null;if(!Ja[a]&&La)try{b=va.locale(),require("./locale/"+a),va.locale(b)}catch(c){}return Ja[a]}function M(a,b){var c,d;return b._isUTC?(c=b.clone(),d=(va.isMoment(a)||x(a)?+a:+va(a))-+c,c._d.setTime(+c._d+d),va.updateOffset(c,!1),c):va(a).local()}function N(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function O(a){var b,c,d=a.match(Pa);for(b=0,c=d.length;c>b;b++)rb[d[b]]?d[b]=rb[d[b]]:d[b]=N(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function P(a,b){return a.isValid()?(b=Q(b,a.localeData()),nb[b]||(nb[b]=O(b)),nb[b](a)):a.localeData().invalidDate()}function Q(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Qa.lastIndex=0;d>=0&&Qa.test(a);)a=a.replace(Qa,c),Qa.lastIndex=0,d-=1;return a}function R(a,b){var c,d=b._strict;switch(a){case"Q":return _a;case"DDDD":return bb;case"YYYY":case"GGGG":case"gggg":return d?cb:Ta;case"Y":case"G":case"g":return eb;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?db:Ua;case"S":if(d)return _a;case"SS":if(d)return ab;case"SSS":if(d)return bb;case"DDD":return Sa;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Wa;case"a":case"A":return b._locale._meridiemParse;case"x":return Za;case"X":return $a;case"Z":case"ZZ":return Xa;case"T":return Ya;case"SSSS":return Va;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?ab:Ra;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Ra;case"Do":return d?b._locale._ordinalParse:b._locale._ordinalParseLenient;default:return c=new RegExp($(Z(a.replace("\\","")),"i"))}}function S(a){a=a||"";var b=a.match(Xa)||[],c=b[b.length-1]||[],d=(c+"").match(jb)||["-",0,0],e=+(60*d[1])+C(d[2]);return"+"===d[0]?e:-e}function T(a,b,c){var d,e=c._a;switch(a){case"Q":null!=b&&(e[Da]=3*(C(b)-1));break;case"M":case"MM":null!=b&&(e[Da]=C(b)-1);break;case"MMM":case"MMMM":d=c._locale.monthsParse(b,a,c._strict),null!=d?e[Da]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[Ea]=C(b));break;case"Do":null!=b&&(e[Ea]=C(parseInt(b.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=C(b));break;case"YY":e[Ca]=va.parseTwoDigitYear(b);break;case"YYYY":case"YYYYY":case"YYYYYY":e[Ca]=C(b);break;case"a":case"A":c._meridiem=b;break;case"h":case"hh":c._pf.bigHour=!0;case"H":case"HH":e[Fa]=C(b);break;case"m":case"mm":e[Ga]=C(b);break;case"s":case"ss":e[Ha]=C(b);break;case"S":case"SS":case"SSS":case"SSSS":e[Ia]=C(1e3*("0."+b));break;case"x":c._d=new Date(C(b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=S(b);break;case"dd":case"ddd":case"dddd":d=c._locale.weekdaysParse(b),null!=d?(c._w=c._w||{},c._w.d=d):c._pf.invalidWeekday=b;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":a=a.substr(0,1);case"gggg":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=C(b));break;case"gg":case"GG":c._w=c._w||{},c._w[a]=va.parseTwoDigitYear(b)}}function U(a){var c,d,e,f,g,h,i;c=a._w,null!=c.GG||null!=c.W||null!=c.E?(g=1,h=4,d=b(c.GG,a._a[Ca],ja(va(),1,4).year),e=b(c.W,1),f=b(c.E,1)):(g=a._locale._week.dow,h=a._locale._week.doy,d=b(c.gg,a._a[Ca],ja(va(),g,h).year),e=b(c.w,1),null!=c.d?(f=c.d,g>f&&++e):f=null!=c.e?c.e+g:g),i=ka(d,e,f,h,g),a._a[Ca]=i.year,a._dayOfYear=i.dayOfYear}function V(a){var c,d,e,f,g=[];if(!a._d){for(e=X(a),a._w&&null==a._a[Ea]&&null==a._a[Da]&&U(a),a._dayOfYear&&(f=b(a._a[Ca],e[Ca]),a._dayOfYear>F(f)&&(a._pf._overflowDayOfYear=!0),d=fa(f,0,a._dayOfYear),a._a[Da]=d.getUTCMonth(),a._a[Ea]=d.getUTCDate()),c=0;3>c&&null==a._a[c];++c)a._a[c]=g[c]=e[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];24===a._a[Fa]&&0===a._a[Ga]&&0===a._a[Ha]&&0===a._a[Ia]&&(a._nextDay=!0,a._a[Fa]=0),a._d=(a._useUTC?fa:ea).apply(null,g),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[Fa]=24)}}function W(a){var b;a._d||(b=A(a._i),a._a=[b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],V(a))}function X(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function Y(b){if(b._f===va.ISO_8601)return void aa(b);b._a=[],b._pf.empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,j=0;for(e=Q(b._f,b._locale).match(Pa)||[],c=0;c<e.length;c++)f=e[c],d=(h.match(R(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length>0&&b._pf.unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),rb[f]?(d?b._pf.empty=!1:b._pf.unusedTokens.push(f),T(f,d,b)):b._strict&&!d&&b._pf.unusedTokens.push(f);b._pf.charsLeftOver=i-j,h.length>0&&b._pf.unusedInput.push(h),b._pf.bigHour===!0&&b._a[Fa]<=12&&(b._pf.bigHour=a),b._a[Fa]=k(b._locale,b._a[Fa],b._meridiem),V(b),H(b)}function Z(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function $(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function _(a){var b,c,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(NaN));for(f=0;f<a._f.length;f++)g=0,b=p({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._pf=d(),b._f=a._f[f],Y(b),I(b)&&(g+=b._pf.charsLeftOver,g+=10*b._pf.unusedTokens.length,b._pf.score=g,(null==e||e>g)&&(e=g,c=b));o(a,c||b)}function aa(a){var b,c,d=a._i,e=fb.exec(d);if(e){for(a._pf.iso=!0,b=0,c=hb.length;c>b;b++)if(hb[b][1].exec(d)){a._f=hb[b][0]+(e[6]||" ");break}for(b=0,c=ib.length;c>b;b++)if(ib[b][1].exec(d)){a._f+=ib[b][0];break}d.match(Xa)&&(a._f+="Z"),Y(a)}else a._isValid=!1}function ba(a){aa(a),a._isValid===!1&&(delete a._isValid,va.createFromInputFallback(a))}function ca(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function da(b){var c,d=b._i;d===a?b._d=new Date:x(d)?b._d=new Date(+d):null!==(c=Ma.exec(d))?b._d=new Date(+c[1]):"string"==typeof d?ba(b):w(d)?(b._a=ca(d.slice(0),function(a){return parseInt(a,10)}),V(b)):"object"==typeof d?W(b):"number"==typeof d?b._d=new Date(d):va.createFromInputFallback(b)}function ea(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function fa(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function ga(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function ha(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function ia(a,b,c){var d=va.duration(a).abs(),e=Aa(d.as("s")),f=Aa(d.as("m")),g=Aa(d.as("h")),h=Aa(d.as("d")),i=Aa(d.as("M")),j=Aa(d.as("y")),k=e<ob.s&&["s",e]||1===f&&["m"]||f<ob.m&&["mm",f]||1===g&&["h"]||g<ob.h&&["hh",g]||1===h&&["d"]||h<ob.d&&["dd",h]||1===i&&["M"]||i<ob.M&&["MM",i]||1===j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,ha.apply({},k)}function ja(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=va(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ka(a,b,c,d,e){var f,g,h=fa(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:F(a-1)+g}}function la(b){var c,d=b._i,e=b._f;return b._locale=b._locale||va.localeData(b._l),null===d||e===a&&""===d?va.invalid({nullInput:!0}):("string"==typeof d&&(b._i=d=b._locale.preparse(d)),va.isMoment(d)?new m(d,!0):(e?w(e)?_(b):Y(b):da(b),c=new m(b),c._nextDay&&(c.add(1,"d"),c._nextDay=a),c))}function ma(a,b){var c,d;if(1===b.length&&w(b[0])&&(b=b[0]),!b.length)return va();for(c=b[0],d=1;d<b.length;++d)b[d][a](c)&&(c=b[d]);return c}function na(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),D(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function oa(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function pa(a,b,c){return"Month"===b?na(a,c):a._d["set"+(a._isUTC?"UTC":"")+b](c)}function qa(a,b){return function(c){return null!=c?(pa(this,a,c),va.updateOffset(this,b),this):oa(this,a)}}function ra(a){return 400*a/146097}function sa(a){return 146097*a/400}function ta(a){va.duration.fn[a]=function(){return this._data[a]}}function ua(a){"undefined"==typeof ender&&(wa=za.moment,a?za.moment=f("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.",va):za.moment=va)}for(var va,wa,xa,ya="2.9.0",za="undefined"==typeof global||"undefined"!=typeof window&&window!==global.window?this:global,Aa=Math.round,Ba=Object.prototype.hasOwnProperty,Ca=0,Da=1,Ea=2,Fa=3,Ga=4,Ha=5,Ia=6,Ja={},Ka=[],La="undefined"!=typeof module&&module&&module.exports,Ma=/^\/?Date\((\-?\d+)/i,Na=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Oa=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,Pa=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g,Qa=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ra=/\d\d?/,Sa=/\d{1,3}/,Ta=/\d{1,4}/,Ua=/[+\-]?\d{1,6}/,Va=/\d+/,Wa=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Xa=/Z|[\+\-]\d\d:?\d\d/gi,Ya=/T/i,Za=/[\+\-]?\d+/,$a=/[\+\-]?\d+(\.\d{1,3})?/,_a=/\d/,ab=/\d\d/,bb=/\d{3}/,cb=/\d{4}/,db=/[+-]?\d{6}/,eb=/[+-]?\d+/,fb=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,gb="YYYY-MM-DDTHH:mm:ssZ",hb=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],ib=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],jb=/([\+\-]|\d\d)/gi,kb=("Date|Hours|Minutes|Seconds|Milliseconds".split("|"),{Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6}),lb={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",Q:"quarter",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},mb={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},nb={},ob={s:45,m:45,h:22,d:26,M:11},pb="DDD w W M D d".split(" "),qb="M D H h m s w W".split(" "),rb={M:function(){return this.month()+1},MMM:function(a){return this.localeData().monthsShort(this,a)},MMMM:function(a){return this.localeData().months(this,a)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.localeData().weekdaysMin(this,a)},ddd:function(a){return this.localeData().weekdaysShort(this,a)},dddd:function(a){return this.localeData().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return r(this.year()%100,2)},YYYY:function(){return r(this.year(),4)},YYYYY:function(){return r(this.year(),5)},YYYYYY:function(){var a=this.year(),b=a>=0?"+":"-";return b+r(Math.abs(a),6)},gg:function(){return r(this.weekYear()%100,2)},gggg:function(){return r(this.weekYear(),4)},ggggg:function(){return r(this.weekYear(),5)},GG:function(){return r(this.isoWeekYear()%100,2)},GGGG:function(){return r(this.isoWeekYear(),4)},GGGGG:function(){return r(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return C(this.milliseconds()/100)},SS:function(){return r(C(this.milliseconds()/10),2)},SSS:function(){return r(this.milliseconds(),3)},SSSS:function(){return r(this.milliseconds(),3)},Z:function(){var a=this.utcOffset(),b="+";return 0>a&&(a=-a,b="-"),b+r(C(a/60),2)+":"+r(C(a)%60,2)},ZZ:function(){var a=this.utcOffset(),b="+";return 0>a&&(a=-a,b="-"),b+r(C(a/60),2)+r(C(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},sb={},tb=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"],ub=!1;pb.length;)xa=pb.pop(),rb[xa+"o"]=i(rb[xa],xa);for(;qb.length;)xa=qb.pop(),rb[xa+xa]=h(rb[xa],2);rb.DDDD=h(rb.DDD,3),o(l.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a,b,c){var d,e,f;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;d++){if(e=va.utc([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=va([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b,c){var d=this._calendar[a];return"function"==typeof d?d.apply(b,[c]):d},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",_ordinalParse:/\d{1,2}/,preparse:function(a){return a},postformat:function(a){return a},week:function(a){return ja(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},firstDayOfWeek:function(){return this._week.dow},firstDayOfYear:function(){return this._week.doy;
-},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),va=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=b,g._f=c,g._l=e,g._strict=f,g._isUTC=!1,g._pf=d(),la(g)},va.suppressDeprecationWarnings=!1,va.createFromInputFallback=f("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),va.min=function(){var a=[].slice.call(arguments,0);return ma("isBefore",a)},va.max=function(){var a=[].slice.call(arguments,0);return ma("isAfter",a)},va.utc=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=b,g._f=c,g._strict=f,g._pf=d(),la(g).utc()},va.unix=function(a){return va(1e3*a)},va.duration=function(a,b){var d,e,f,g,h=a,i=null;return va.isDuration(a)?h={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(h={},b?h[b]=a:h.milliseconds=a):(i=Na.exec(a))?(d="-"===i[1]?-1:1,h={y:0,d:C(i[Ea])*d,h:C(i[Fa])*d,m:C(i[Ga])*d,s:C(i[Ha])*d,ms:C(i[Ia])*d}):(i=Oa.exec(a))?(d="-"===i[1]?-1:1,f=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*d},h={y:f(i[2]),M:f(i[3]),d:f(i[4]),h:f(i[5]),m:f(i[6]),s:f(i[7]),w:f(i[8])}):null==h?h={}:"object"==typeof h&&("from"in h||"to"in h)&&(g=t(va(h.from),va(h.to)),h={},h.ms=g.milliseconds,h.M=g.months),e=new n(h),va.isDuration(a)&&c(a,"_locale")&&(e._locale=a._locale),e},va.version=ya,va.defaultFormat=gb,va.ISO_8601=function(){},va.momentProperties=Ka,va.updateOffset=function(){},va.relativeTimeThreshold=function(b,c){return ob[b]===a?!1:c===a?ob[b]:(ob[b]=c,!0)},va.lang=f("moment.lang is deprecated. Use moment.locale instead.",function(a,b){return va.locale(a,b)}),va.locale=function(a,b){var c;return a&&(c="undefined"!=typeof b?va.defineLocale(a,b):va.localeData(a),c&&(va.duration._locale=va._locale=c)),va._locale._abbr},va.defineLocale=function(a,b){return null!==b?(b.abbr=a,Ja[a]||(Ja[a]=new l),Ja[a].set(b),va.locale(a),Ja[a]):(delete Ja[a],null)},va.langData=f("moment.langData is deprecated. Use moment.localeData instead.",function(a){return va.localeData(a)}),va.localeData=function(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return va._locale;if(!w(a)){if(b=L(a))return b;a=[a]}return K(a)},va.isMoment=function(a){return a instanceof m||null!=a&&c(a,"_isAMomentObject")},va.isDuration=function(a){return a instanceof n};for(xa=tb.length-1;xa>=0;--xa)B(tb[xa]);va.normalizeUnits=function(a){return z(a)},va.invalid=function(a){var b=va.utc(NaN);return null!=a?o(b._pf,a):b._pf.userInvalidated=!0,b},va.parseZone=function(){return va.apply(null,arguments).parseZone()},va.parseTwoDigitYear=function(a){return C(a)+(C(a)>68?1900:2e3)},va.isDate=x,o(va.fn=m.prototype,{clone:function(){return va(this)},valueOf:function(){return+this._d-6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=va(this).utc();return 0<a.year()&&a.year()<=9999?"function"==typeof Date.prototype.toISOString?this.toDate().toISOString():P(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):P(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var a=this;return[a.year(),a.month(),a.date(),a.hours(),a.minutes(),a.seconds(),a.milliseconds()]},isValid:function(){return I(this)},isDSTShifted:function(){return this._a?this.isValid()&&y(this._a,(this._isUTC?va.utc(this._a):va(this._a)).toArray())>0:!1},parsingFlags:function(){return o({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(a){return this.utcOffset(0,a)},local:function(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(this._dateUtcOffset(),"m")),this},format:function(a){var b=P(this,a||va.defaultFormat);return this.localeData().postformat(b)},add:u(1,"add"),subtract:u(-1,"subtract"),diff:function(a,b,c){var d,e,f=M(a,this),g=6e4*(f.utcOffset()-this.utcOffset());return b=z(b),"year"===b||"month"===b||"quarter"===b?(e=j(this,f),"quarter"===b?e/=3:"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:q(e)},from:function(a,b){return va.duration({to:this,from:a}).locale(this.locale()).humanize(!b)},fromNow:function(a){return this.from(va(),a)},calendar:function(a){var b=a||va(),c=M(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this,va(b)))},isLeapYear:function(){return G(this.year())},isDST:function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=ga(a,this.localeData()),this.add(a-b,"d")):b},month:qa("Month",!0),startOf:function(a){switch(a=z(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a?this.weekday(0):"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(b){return b=z(b),b===a||"millisecond"===b?this:this.startOf(b).add(1,"isoWeek"===b?"week":b).subtract(1,"ms")},isAfter:function(a,b){var c;return b=z("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=va.isMoment(a)?a:va(a),+this>+a):(c=va.isMoment(a)?+a:+va(a),c<+this.clone().startOf(b))},isBefore:function(a,b){var c;return b=z("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=va.isMoment(a)?a:va(a),+a>+this):(c=va.isMoment(a)?+a:+va(a),+this.clone().endOf(b)<c)},isBetween:function(a,b,c){return this.isAfter(a,c)&&this.isBefore(b,c)},isSame:function(a,b){var c;return b=z(b||"millisecond"),"millisecond"===b?(a=va.isMoment(a)?a:va(a),+this===+a):(c=+va(a),+this.clone().startOf(b)<=c&&c<=+this.clone().endOf(b))},min:f("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(a){return a=va.apply(null,arguments),this>a?this:a}),max:f("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(a){return a=va.apply(null,arguments),a>this?this:a}),zone:f("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",function(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}),utcOffset:function(a,b){var c,d=this._offset||0;return null!=a?("string"==typeof a&&(a=S(a)),Math.abs(a)<16&&(a=60*a),!this._isUTC&&b&&(c=this._dateUtcOffset()),this._offset=a,this._isUTC=!0,null!=c&&this.add(c,"m"),d!==a&&(!b||this._changeInProgress?v(this,va.duration(a-d,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,va.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?d:this._dateUtcOffset()},isLocal:function(){return!this._isUTC},isUtcOffset:function(){return this._isUTC},isUtc:function(){return this._isUTC&&0===this._offset},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(S(this._i)),this},hasAlignedHourOffset:function(a){return a=a?va(a).utcOffset():0,(this.utcOffset()-a)%60===0},daysInMonth:function(){return D(this.year(),this.month())},dayOfYear:function(a){var b=Aa((va(this).startOf("day")-va(this).startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")},quarter:function(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)},weekYear:function(a){var b=ja(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")},isoWeekYear:function(a){var b=ja(this,1,4).year;return null==a?b:this.add(a-b,"y")},week:function(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")},isoWeek:function(a){var b=ja(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")},weekday:function(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},isoWeeksInYear:function(){return E(this.year(),1,4)},weeksInYear:function(){var a=this.localeData()._week;return E(this.year(),a.dow,a.doy)},get:function(a){return a=z(a),this[a]()},set:function(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else a=z(a),"function"==typeof this[a]&&this[a](b);return this},locale:function(b){var c;return b===a?this._locale._abbr:(c=va.localeData(b),null!=c&&(this._locale=c),this)},lang:f("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(b){return b===a?this.localeData():this.locale(b)}),localeData:function(){return this._locale},_dateUtcOffset:function(){return 15*-Math.round(this._d.getTimezoneOffset()/15)}}),va.fn.millisecond=va.fn.milliseconds=qa("Milliseconds",!1),va.fn.second=va.fn.seconds=qa("Seconds",!1),va.fn.minute=va.fn.minutes=qa("Minutes",!1),va.fn.hour=va.fn.hours=qa("Hours",!0),va.fn.date=qa("Date",!0),va.fn.dates=f("dates accessor is deprecated. Use date instead.",qa("Date",!0)),va.fn.year=qa("FullYear",!0),va.fn.years=f("years accessor is deprecated. Use year instead.",qa("FullYear",!0)),va.fn.days=va.fn.day,va.fn.months=va.fn.month,va.fn.weeks=va.fn.week,va.fn.isoWeeks=va.fn.isoWeek,va.fn.quarters=va.fn.quarter,va.fn.toJSON=va.fn.toISOString,va.fn.isUTC=va.fn.isUtc,o(va.duration.fn=n.prototype,{_bubble:function(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;g.milliseconds=d%1e3,a=q(d/1e3),g.seconds=a%60,b=q(a/60),g.minutes=b%60,c=q(b/60),g.hours=c%24,e+=q(c/24),h=q(ra(e)),e-=q(sa(h)),f+=q(e/30),e%=30,h+=q(f/12),f%=12,g.days=e,g.months=f,g.years=h},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return q(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*C(this._months/12)},humanize:function(a){var b=ia(this,!a,this.localeData());return a&&(b=this.localeData().pastFuture(+this,b)),this.localeData().postformat(b)},add:function(a,b){var c=va.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=va.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=z(a),this[a.toLowerCase()+"s"]()},as:function(a){var b,c;if(a=z(a),"month"===a||"year"===a)return b=this._days+this._milliseconds/864e5,c=this._months+12*ra(b),"month"===a?c:c/12;switch(b=this._days+Math.round(sa(this._months/12)),a){case"week":return b/7+this._milliseconds/6048e5;case"day":return b+this._milliseconds/864e5;case"hour":return 24*b+this._milliseconds/36e5;case"minute":return 24*b*60+this._milliseconds/6e4;case"second":return 24*b*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(24*b*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+a)}},lang:va.fn.lang,locale:va.fn.locale,toIsoString:f("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"},localeData:function(){return this._locale},toJSON:function(){return this.toISOString()}}),va.duration.fn.toString=va.duration.fn.toISOString;for(xa in kb)c(kb,xa)&&ta(xa.toLowerCase());va.duration.fn.asMilliseconds=function(){return this.as("ms")},va.duration.fn.asSeconds=function(){return this.as("s")},va.duration.fn.asMinutes=function(){return this.as("m")},va.duration.fn.asHours=function(){return this.as("h")},va.duration.fn.asDays=function(){return this.as("d")},va.duration.fn.asWeeks=function(){return this.as("weeks")},va.duration.fn.asMonths=function(){return this.as("M")},va.duration.fn.asYears=function(){return this.as("y")},va.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===C(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),La?module.exports=va:"function"==typeof define&&define.amd?(define(function(a,b,c){return c.config&&c.config()&&c.config().noGlobal===!0&&(za.moment=wa),va}),ua(!0)):ua()}.call(this),function(a,b){if("function"==typeof define&&define.amd)define(["moment","jquery","exports"],function(c,d,e){a.daterangepicker=b(a,e,c,d)});else if("undefined"!=typeof exports){var c,d=require("moment");try{c=require("jquery")}catch(e){if(c=window.jQuery,!c)throw new Error("jQuery dependency not found")}b(a,exports,d,c)}else a.daterangepicker=b(a,{},a.moment,a.jQuery||a.Zepto||a.ender||a.$)}(this,function(a,b,c,d){var e=function(a,b,c){this.parentEl="body",this.element=d(a),this.isShowing=!1;var e='<div class="daterangepicker dropdown-menu"><div class="calendar first left"></div><div class="calendar second right"></div><div class="ranges"><div class="range_inputs"><div class="daterangepicker_start_input"><label for="daterangepicker_start"></label><input class="input-mini" type="text" name="daterangepicker_start" value="" /></div><div class="daterangepicker_end_input"><label for="daterangepicker_end"></label><input class="input-mini" type="text" name="daterangepicker_end" value="" /></div><button class="applyBtn" disabled="disabled"></button>&nbsp;<button class="cancelBtn"></button></div></div></div>';("object"!=typeof b||null===b)&&(b={}),this.parentEl=d("object"==typeof b&&b.parentEl&&d(b.parentEl).length?b.parentEl:this.parentEl),this.container=d(e).appendTo(this.parentEl),this.setOptions(b,c);var f=this.container;d.each(this.buttonClasses,function(a,b){f.find("button").addClass(b)}),this.container.find(".daterangepicker_start_input label").html(this.locale.fromLabel),this.container.find(".daterangepicker_end_input label").html(this.locale.toLabel),this.applyClass.length&&this.container.find(".applyBtn").addClass(this.applyClass),this.cancelClass.length&&this.container.find(".cancelBtn").addClass(this.cancelClass),this.container.find(".applyBtn").html(this.locale.applyLabel),this.container.find(".cancelBtn").html(this.locale.cancelLabel),this.container.find(".calendar").on("click.daterangepicker",".prev",d.proxy(this.clickPrev,this)).on("click.daterangepicker",".next",d.proxy(this.clickNext,this)).on("click.daterangepicker","td.available",d.proxy(this.clickDate,this)).on("mouseenter.daterangepicker","td.available",d.proxy(this.hoverDate,this)).on("mouseleave.daterangepicker","td.available",d.proxy(this.updateFormInputs,this)).on("change.daterangepicker","select.yearselect",d.proxy(this.updateMonthYear,this)).on("change.daterangepicker","select.monthselect",d.proxy(this.updateMonthYear,this)).on("change.daterangepicker","select.hourselect,select.minuteselect,select.secondselect,select.ampmselect",d.proxy(this.updateTime,this)),this.container.find(".ranges").on("click.daterangepicker","button.applyBtn",d.proxy(this.clickApply,this)).on("click.daterangepicker","button.cancelBtn",d.proxy(this.clickCancel,this)).on("click.daterangepicker",".daterangepicker_start_input,.daterangepicker_end_input",d.proxy(this.showCalendars,this)).on("change.daterangepicker",".daterangepicker_start_input,.daterangepicker_end_input",d.proxy(this.inputsChanged,this)).on("keydown.daterangepicker",".daterangepicker_start_input,.daterangepicker_end_input",d.proxy(this.inputsKeydown,this)).on("click.daterangepicker","li",d.proxy(this.clickRange,this)).on("mouseenter.daterangepicker","li",d.proxy(this.enterRange,this)).on("mouseleave.daterangepicker","li",d.proxy(this.updateFormInputs,this)),this.element.is("input")?this.element.on({"click.daterangepicker":d.proxy(this.show,this),"focus.daterangepicker":d.proxy(this.show,this),"keyup.daterangepicker":d.proxy(this.updateFromControl,this)}):this.element.on("click.daterangepicker",d.proxy(this.toggle,this))};e.prototype={constructor:e,setOptions:function(a,b){if(this.startDate=c().startOf("day"),this.endDate=c().endOf("day"),this.timeZone=c().zone(),this.minDate=!1,this.maxDate=!1,this.dateLimit=!1,this.showDropdowns=!1,this.showWeekNumbers=!1,this.timePicker=!1,this.timePickerSeconds=!1,this.timePickerIncrement=30,this.timePicker12Hour=!0,this.singleDatePicker=!1,this.ranges={},this.opens="right",this.element.hasClass("pull-right")&&(this.opens="left"),this.buttonClasses=["btn","btn-small btn-sm"],this.applyClass="btn-success",this.cancelClass="btn-default",this.format="MM/DD/YYYY",this.separator=" - ",this.locale={applyLabel:"Apply",cancelLabel:"Cancel",fromLabel:"From",toLabel:"To",weekLabel:"W",customRangeLabel:"Custom Range",daysOfWeek:c.weekdaysMin(),monthNames:c.monthsShort(),firstDay:c.localeData()._week.dow},this.cb=function(){},"string"==typeof a.format&&(this.format=a.format),"string"==typeof a.separator&&(this.separator=a.separator),"string"==typeof a.startDate&&(this.startDate=c(a.startDate,this.format)),"string"==typeof a.endDate&&(this.endDate=c(a.endDate,this.format)),"string"==typeof a.minDate&&(this.minDate=c(a.minDate,this.format)),"string"==typeof a.maxDate&&(this.maxDate=c(a.maxDate,this.format)),"object"==typeof a.startDate&&(this.startDate=c(a.startDate)),"object"==typeof a.endDate&&(this.endDate=c(a.endDate)),"object"==typeof a.minDate&&(this.minDate=c(a.minDate)),"object"==typeof a.maxDate&&(this.maxDate=c(a.maxDate)),"string"==typeof a.applyClass&&(this.applyClass=a.applyClass),"string"==typeof a.cancelClass&&(this.cancelClass=a.cancelClass),"object"==typeof a.dateLimit&&(this.dateLimit=a.dateLimit),"object"==typeof a.locale&&("object"==typeof a.locale.daysOfWeek&&(this.locale.daysOfWeek=a.locale.daysOfWeek.slice()),"object"==typeof a.locale.monthNames&&(this.locale.monthNames=a.locale.monthNames.slice()),"number"==typeof a.locale.firstDay&&(this.locale.firstDay=a.locale.firstDay),"string"==typeof a.locale.applyLabel&&(this.locale.applyLabel=a.locale.applyLabel),"string"==typeof a.locale.cancelLabel&&(this.locale.cancelLabel=a.locale.cancelLabel),"string"==typeof a.locale.fromLabel&&(this.locale.fromLabel=a.locale.fromLabel),"string"==typeof a.locale.toLabel&&(this.locale.toLabel=a.locale.toLabel),"string"==typeof a.locale.weekLabel&&(this.locale.weekLabel=a.locale.weekLabel),"string"==typeof a.locale.customRangeLabel&&(this.locale.customRangeLabel=a.locale.customRangeLabel)),"string"==typeof a.opens&&(this.opens=a.opens),"boolean"==typeof a.showWeekNumbers&&(this.showWeekNumbers=a.showWeekNumbers),"string"==typeof a.buttonClasses&&(this.buttonClasses=[a.buttonClasses]),"object"==typeof a.buttonClasses&&(this.buttonClasses=a.buttonClasses),"boolean"==typeof a.showDropdowns&&(this.showDropdowns=a.showDropdowns),"boolean"==typeof a.singleDatePicker&&(this.singleDatePicker=a.singleDatePicker,this.singleDatePicker&&(this.endDate=this.startDate.clone())),"boolean"==typeof a.timePicker&&(this.timePicker=a.timePicker),"boolean"==typeof a.timePickerSeconds&&(this.timePickerSeconds=a.timePickerSeconds),"number"==typeof a.timePickerIncrement&&(this.timePickerIncrement=a.timePickerIncrement),"boolean"==typeof a.timePicker12Hour&&(this.timePicker12Hour=a.timePicker12Hour),0!=this.locale.firstDay)for(var e=this.locale.firstDay;e>0;)this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()),e--;var f,g,h;if("undefined"==typeof a.startDate&&"undefined"==typeof a.endDate&&d(this.element).is("input[type=text]")){var i=d(this.element).val(),j=i.split(this.separator);f=g=null,2==j.length?(f=c(j[0],this.format),g=c(j[1],this.format)):this.singleDatePicker&&""!==i&&(f=c(i,this.format),g=c(i,this.format)),null!==f&&null!==g&&(this.startDate=f,this.endDate=g)}if("string"==typeof a.timeZone||"number"==typeof a.timeZone?(this.timeZone=a.timeZone,this.startDate.zone(this.timeZone),this.endDate.zone(this.timeZone)):this.timeZone=c(this.startDate).zone(),"object"==typeof a.ranges){for(h in a.ranges)f="string"==typeof a.ranges[h][0]?c(a.ranges[h][0],this.format):c(a.ranges[h][0]),g="string"==typeof a.ranges[h][1]?c(a.ranges[h][1],this.format):c(a.ranges[h][1]),this.minDate&&f.isBefore(this.minDate)&&(f=c(this.minDate)),this.maxDate&&g.isAfter(this.maxDate)&&(g=c(this.maxDate)),this.minDate&&g.isBefore(this.minDate)||this.maxDate&&f.isAfter(this.maxDate)||(this.ranges[h]=[f,g]);var k="<ul>";for(h in this.ranges)k+="<li>"+h+"</li>";k+="<li>"+this.locale.customRangeLabel+"</li>",k+="</ul>",this.container.find(".ranges ul").remove(),this.container.find(".ranges").prepend(k)}if("function"==typeof b&&(this.cb=b),this.timePicker||(this.startDate=this.startDate.startOf("day"),this.endDate=this.endDate.endOf("day")),this.singleDatePicker?(this.opens="right",this.container.addClass("single"),this.container.find(".calendar.right").show(),this.container.find(".calendar.left").hide(),this.timePicker?this.container.find(".ranges .daterangepicker_start_input, .ranges .daterangepicker_end_input").hide():this.container.find(".ranges").hide(),this.container.find(".calendar.right").hasClass("single")||this.container.find(".calendar.right").addClass("single")):(this.container.removeClass("single"),this.container.find(".calendar.right").removeClass("single"),this.container.find(".ranges").show()),this.oldStartDate=this.startDate.clone(),this.oldEndDate=this.endDate.clone(),this.oldChosenLabel=this.chosenLabel,this.leftCalendar={month:c([this.startDate.year(),this.startDate.month(),1,this.startDate.hour(),this.startDate.minute(),this.startDate.second()]),calendar:[]},this.rightCalendar={month:c([this.endDate.year(),this.endDate.month(),1,this.endDate.hour(),this.endDate.minute(),this.endDate.second()]),calendar:[]},"right"==this.opens||"center"==this.opens){var l=this.container.find(".calendar.first"),m=this.container.find(".calendar.second");m.hasClass("single")&&(m.removeClass("single"),l.addClass("single")),l.removeClass("left").addClass("right"),m.removeClass("right").addClass("left"),this.singleDatePicker&&(l.show(),m.hide())}"undefined"!=typeof a.ranges||this.singleDatePicker||this.container.addClass("show-calendar"),this.container.addClass("opens"+this.opens),this.updateView(),this.updateCalendars()},setStartDate:function(a){"string"==typeof a&&(this.startDate=c(a,this.format).zone(this.timeZone)),"object"==typeof a&&(this.startDate=c(a)),this.timePicker||(this.startDate=this.startDate.startOf("day")),this.oldStartDate=this.startDate.clone(),this.updateView(),this.updateCalendars(),this.updateInputText()},setEndDate:function(a){"string"==typeof a&&(this.endDate=c(a,this.format).zone(this.timeZone)),"object"==typeof a&&(this.endDate=c(a)),this.timePicker||(this.endDate=this.endDate.endOf("day")),this.oldEndDate=this.endDate.clone(),this.updateView(),this.updateCalendars(),this.updateInputText()},updateView:function(){this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()),this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()),this.updateFormInputs()},updateFormInputs:function(){this.container.find("input[name=daterangepicker_start]").val(this.startDate.format(this.format)),this.container.find("input[name=daterangepicker_end]").val(this.endDate.format(this.format)),this.startDate.isSame(this.endDate)||this.startDate.isBefore(this.endDate)?this.container.find("button.applyBtn").removeAttr("disabled"):this.container.find("button.applyBtn").attr("disabled","disabled")},updateFromControl:function(){if(this.element.is("input")&&this.element.val().length){var a=this.element.val().split(this.separator),b=null,d=null;2===a.length&&(b=c(a[0],this.format).zone(this.timeZone),d=c(a[1],this.format).zone(this.timeZone)),(this.singleDatePicker||null===b||null===d)&&(b=c(this.element.val(),this.format).zone(this.timeZone),d=b),d.isBefore(b)||(this.oldStartDate=this.startDate.clone(),this.oldEndDate=this.endDate.clone(),this.startDate=b,this.endDate=d,this.startDate.isSame(this.oldStartDate)&&this.endDate.isSame(this.oldEndDate)||this.notify(),this.updateCalendars())}},notify:function(){this.updateView(),this.cb(this.startDate,this.endDate,this.chosenLabel)},move:function(){var a={top:0,left:0},b=d(window).width();this.parentEl.is("body")||(a={top:this.parentEl.offset().top-this.parentEl.scrollTop(),left:this.parentEl.offset().left-this.parentEl.scrollLeft()},b=this.parentEl[0].clientWidth+this.parentEl.offset().left),"left"==this.opens?(this.container.css({top:this.element.offset().top+this.element.outerHeight()-a.top,right:b-this.element.offset().left-this.element.outerWidth(),left:"auto"}),this.container.offset().left<0&&this.container.css({right:"auto",left:9})):"center"==this.opens?(this.container.css({top:this.element.offset().top+this.element.outerHeight()-a.top,left:this.element.offset().left-a.left+this.element.outerWidth()/2-this.container.outerWidth()/2,right:"auto"}),this.container.offset().left<0&&this.container.css({right:"auto",left:9})):(this.container.css({top:this.element.offset().top+this.element.outerHeight()-a.top,left:this.element.offset().left-a.left,right:"auto"}),this.container.offset().left+this.container.outerWidth()>d(window).width()&&this.container.css({left:"auto",right:0}))},toggle:function(a){this.element.hasClass("active")?this.hide():this.show()},show:function(a){this.isShowing||(this.element.addClass("active"),this.container.show(),this.move(),this._outsideClickProxy=d.proxy(function(a){this.outsideClick(a)},this),d(document).on("mousedown.daterangepicker",this._outsideClickProxy).on("touchend.daterangepicker",this._outsideClickProxy).on("click.daterangepicker","[data-toggle=dropdown]",this._outsideClickProxy).on("focusin.daterangepicker",this._outsideClickProxy),this.isShowing=!0,this.element.trigger("show.daterangepicker",this))},outsideClick:function(a){var b=d(a.target);"focusin"==a.type||b.closest(this.element).length||b.closest(this.container).length||b.closest(".calendar-date").length||this.hide()},hide:function(a){this.isShowing&&(d(document).off(".daterangepicker"),this.element.removeClass("active"),this.container.hide(),this.startDate.isSame(this.oldStartDate)&&this.endDate.isSame(this.oldEndDate)||this.notify(),this.oldStartDate=this.startDate.clone(),this.oldEndDate=this.endDate.clone(),this.isShowing=!1,this.element.trigger("hide.daterangepicker",this))},enterRange:function(a){var b=a.target.innerHTML;if(b==this.locale.customRangeLabel)this.updateView();else{var c=this.ranges[b];this.container.find("input[name=daterangepicker_start]").val(c[0].format(this.format)),this.container.find("input[name=daterangepicker_end]").val(c[1].format(this.format))}},showCalendars:function(){this.container.addClass("show-calendar"),this.move(),this.element.trigger("showCalendar.daterangepicker",this)},hideCalendars:function(){this.container.removeClass("show-calendar"),this.element.trigger("hideCalendar.daterangepicker",this)},inputsChanged:function(a){var b=d(a.target),e=c(b.val(),this.format);if(e.isValid()){var f,g;"daterangepicker_start"===b.attr("name")?(f=e,g=this.endDate):(f=this.startDate,g=e),this.setCustomDates(f,g)}},inputsKeydown:function(a){13===a.keyCode&&(this.inputsChanged(a),this.notify())},updateInputText:function(){this.element.is("input")&&!this.singleDatePicker?this.element.val(this.startDate.format(this.format)+this.separator+this.endDate.format(this.format)):this.element.is("input")&&this.element.val(this.endDate.format(this.format))},clickRange:function(a){var b=a.target.innerHTML;if(this.chosenLabel=b,b==this.locale.customRangeLabel)this.showCalendars();else{var c=this.ranges[b];this.startDate=c[0],this.endDate=c[1],this.timePicker||(this.startDate.startOf("day"),this.endDate.endOf("day")),this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()),this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()),this.updateCalendars(),this.updateInputText(),this.hideCalendars(),this.hide(),this.element.trigger("apply.daterangepicker",this)}},clickPrev:function(a){var b=d(a.target).parents(".calendar");b.hasClass("left")?this.leftCalendar.month.subtract(1,"month"):this.rightCalendar.month.subtract(1,"month"),this.updateCalendars()},clickNext:function(a){var b=d(a.target).parents(".calendar");b.hasClass("left")?this.leftCalendar.month.add(1,"month"):this.rightCalendar.month.add(1,"month"),this.updateCalendars()},hoverDate:function(a){var b=d(a.target).attr("data-title"),c=b.substr(1,1),e=b.substr(3,1),f=d(a.target).parents(".calendar");f.hasClass("left")?this.container.find("input[name=daterangepicker_start]").val(this.leftCalendar.calendar[c][e].format(this.format)):this.container.find("input[name=daterangepicker_end]").val(this.rightCalendar.calendar[c][e].format(this.format))},setCustomDates:function(a,b){if(this.chosenLabel=this.locale.customRangeLabel,a.isAfter(b)){var d=this.endDate.diff(this.startDate);b=c(a).add(d,"ms")}this.startDate=a,this.endDate=b,this.updateView(),this.updateCalendars()},clickDate:function(a){var b,e,f=d(a.target).attr("data-title"),g=f.substr(1,1),h=f.substr(3,1),i=d(a.target).parents(".calendar");if(i.hasClass("left")){if(b=this.leftCalendar.calendar[g][h],e=this.endDate,"object"==typeof this.dateLimit){var j=c(b).add(this.dateLimit).startOf("day");e.isAfter(j)&&(e=j)}}else if(b=this.startDate,e=this.rightCalendar.calendar[g][h],"object"==typeof this.dateLimit){var k=c(e).subtract(this.dateLimit).startOf("day");b.isBefore(k)&&(b=k)}this.singleDatePicker&&i.hasClass("left")?e=b.clone():this.singleDatePicker&&i.hasClass("right")&&(b=e.clone()),i.find("td").removeClass("active"),d(a.target).addClass("active"),this.setCustomDates(b,e),this.timePicker||e.endOf("day"),this.singleDatePicker&&!this.timePicker&&this.clickApply()},clickApply:function(a){this.updateInputText(),this.hide(),this.element.trigger("apply.daterangepicker",this)},clickCancel:function(a){this.startDate=this.oldStartDate,this.endDate=this.oldEndDate,this.chosenLabel=this.oldChosenLabel,this.updateView(),this.updateCalendars(),this.hide(),this.element.trigger("cancel.daterangepicker",this)},updateMonthYear:function(a){var b=d(a.target).closest(".calendar").hasClass("left"),c=b?"left":"right",e=this.container.find(".calendar."+c),f=parseInt(e.find(".monthselect").val(),10),g=e.find(".yearselect").val();this[c+"Calendar"].month.month(f).year(g),this.updateCalendars()},updateTime:function(a){var b=d(a.target).closest(".calendar"),c=b.hasClass("left"),e=parseInt(b.find(".hourselect").val(),10),f=parseInt(b.find(".minuteselect").val(),10),g=0;if(this.timePickerSeconds&&(g=parseInt(b.find(".secondselect").val(),10)),this.timePicker12Hour){var h=b.find(".ampmselect").val();"PM"===h&&12>e&&(e+=12),"AM"===h&&12===e&&(e=0)}if(c){var i=this.startDate.clone();i.hour(e),i.minute(f),i.second(g),
-this.startDate=i,this.leftCalendar.month.hour(e).minute(f).second(g),this.singleDatePicker&&(this.endDate=i.clone())}else{var j=this.endDate.clone();j.hour(e),j.minute(f),j.second(g),this.endDate=j,this.singleDatePicker&&(this.startDate=j.clone()),this.rightCalendar.month.hour(e).minute(f).second(g)}this.updateView(),this.updateCalendars()},updateCalendars:function(){this.leftCalendar.calendar=this.buildCalendar(this.leftCalendar.month.month(),this.leftCalendar.month.year(),this.leftCalendar.month.hour(),this.leftCalendar.month.minute(),this.leftCalendar.month.second(),"left"),this.rightCalendar.calendar=this.buildCalendar(this.rightCalendar.month.month(),this.rightCalendar.month.year(),this.rightCalendar.month.hour(),this.rightCalendar.month.minute(),this.rightCalendar.month.second(),"right"),this.container.find(".calendar.left").empty().html(this.renderCalendar(this.leftCalendar.calendar,this.startDate,this.minDate,this.maxDate,"left")),this.container.find(".calendar.right").empty().html(this.renderCalendar(this.rightCalendar.calendar,this.endDate,this.singleDatePicker?this.minDate:this.startDate,this.maxDate,"right")),this.container.find(".ranges li").removeClass("active");var a=!0,b=0;for(var c in this.ranges)this.timePicker?this.startDate.isSame(this.ranges[c][0])&&this.endDate.isSame(this.ranges[c][1])&&(a=!1,this.chosenLabel=this.container.find(".ranges li:eq("+b+")").addClass("active").html()):this.startDate.format("YYYY-MM-DD")==this.ranges[c][0].format("YYYY-MM-DD")&&this.endDate.format("YYYY-MM-DD")==this.ranges[c][1].format("YYYY-MM-DD")&&(a=!1,this.chosenLabel=this.container.find(".ranges li:eq("+b+")").addClass("active").html()),b++;a&&(this.chosenLabel=this.container.find(".ranges li:last").addClass("active").html(),this.showCalendars())},buildCalendar:function(a,b,d,e,f,g){var h,i=c([b,a]).daysInMonth(),j=c([b,a,1]),k=c([b,a,i]),l=c(j).subtract(1,"month").month(),m=c(j).subtract(1,"month").year(),n=c([m,l]).daysInMonth(),o=j.day(),p=[];for(p.firstDay=j,p.lastDay=k,h=0;6>h;h++)p[h]=[];var q=n-o+this.locale.firstDay+1;q>n&&(q-=7),o==this.locale.firstDay&&(q=n-6);var r,s,t=c([m,l,q,12,e,f]).zone(this.timeZone);for(h=0,r=0,s=0;42>h;h++,r++,t=c(t).add(24,"hour"))h>0&&r%7===0&&(r=0,s++),p[s][r]=t.clone().hour(d),t.hour(12),this.minDate&&p[s][r].format("YYYY-MM-DD")==this.minDate.format("YYYY-MM-DD")&&p[s][r].isBefore(this.minDate)&&"left"==g&&(p[s][r]=this.minDate.clone()),this.maxDate&&p[s][r].format("YYYY-MM-DD")==this.maxDate.format("YYYY-MM-DD")&&p[s][r].isAfter(this.maxDate)&&"right"==g&&(p[s][r]=this.maxDate.clone());return p},renderDropdowns:function(a,b,c){for(var d=a.month(),e=a.year(),f=c&&c.year()||e+5,g=b&&b.year()||e-50,h='<select class="monthselect">',i=e==g,j=e==f,k=0;12>k;k++)(!i||k>=b.month())&&(!j||k<=c.month())&&(h+="<option value='"+k+"'"+(k===d?" selected='selected'":"")+">"+this.locale.monthNames[k]+"</option>");h+="</select>";for(var l='<select class="yearselect">',m=g;f>=m;m++)l+='<option value="'+m+'"'+(m===e?' selected="selected"':"")+">"+m+"</option>";return l+="</select>",h+l},renderCalendar:function(a,b,c,e,f){var g='<div class="calendar-date">';g+='<table class="table-condensed">',g+="<thead>",g+="<tr>",this.showWeekNumbers&&(g+="<th></th>"),g+=!c||c.isBefore(a.firstDay)?'<th class="prev available"><i class="fa fa-arrow-left icon-arrow-left glyphicon glyphicon-arrow-left"></i></th>':"<th></th>";var h=this.locale.monthNames[a[1][1].month()]+a[1][1].format(" YYYY");this.showDropdowns&&(h=this.renderDropdowns(a[1][1],c,e)),g+='<th colspan="5" class="month">'+h+"</th>",g+=!e||e.isAfter(a.lastDay)?'<th class="next available"><i class="fa fa-arrow-right icon-arrow-right glyphicon glyphicon-arrow-right"></i></th>':"<th></th>",g+="</tr>",g+="<tr>",this.showWeekNumbers&&(g+='<th class="week">'+this.locale.weekLabel+"</th>"),d.each(this.locale.daysOfWeek,function(a,b){g+="<th>"+b+"</th>"}),g+="</tr>",g+="</thead>",g+="<tbody>";for(var i=0;6>i;i++){g+="<tr>",this.showWeekNumbers&&(g+='<td class="week">'+a[i][0].week()+"</td>");for(var j=0;7>j;j++){var k="available ";k+=a[i][j].month()==a[1][1].month()?"":"off",c&&a[i][j].isBefore(c,"day")||e&&a[i][j].isAfter(e,"day")?k=" off disabled ":a[i][j].format("YYYY-MM-DD")==b.format("YYYY-MM-DD")?(k+=" active ",a[i][j].format("YYYY-MM-DD")==this.startDate.format("YYYY-MM-DD")&&(k+=" start-date "),a[i][j].format("YYYY-MM-DD")==this.endDate.format("YYYY-MM-DD")&&(k+=" end-date ")):a[i][j]>=this.startDate&&a[i][j]<=this.endDate&&(k+=" in-range ",a[i][j].isSame(this.startDate)&&(k+=" start-date "),a[i][j].isSame(this.endDate)&&(k+=" end-date "));var l="r"+i+"c"+j;g+='<td class="'+k.replace(/\s+/g," ").replace(/^\s?(.*?)\s?$/,"$1")+'" data-title="'+l+'">'+a[i][j].date()+"</td>"}g+="</tr>"}g+="</tbody>",g+="</table>",g+="</div>";var m;if(this.timePicker){g+='<div class="calendar-time">',g+='<select class="hourselect">';var n=0,o=23;c&&("left"==f||this.singleDatePicker)&&b.format("YYYY-MM-DD")==c.format("YYYY-MM-DD")&&(n=c.hour(),b.hour()<n&&b.hour(n),this.timePicker12Hour&&n>=12&&b.hour()>=12&&(n-=12),this.timePicker12Hour&&12==n&&(n=1)),e&&("right"==f||this.singleDatePicker)&&b.format("YYYY-MM-DD")==e.format("YYYY-MM-DD")&&(o=e.hour(),b.hour()>o&&b.hour(o),this.timePicker12Hour&&o>=12&&b.hour()>=12&&(o-=12));var p=0,q=23,r=b.hour();for(this.timePicker12Hour&&(p=1,q=12,r>=12&&(r-=12),0===r&&(r=12)),m=p;q>=m;m++)g+=m==r?'<option value="'+m+'" selected="selected">'+m+"</option>":n>m||m>o?'<option value="'+m+'" disabled="disabled" class="disabled">'+m+"</option>":'<option value="'+m+'">'+m+"</option>";g+="</select> : ",g+='<select class="minuteselect">';var s=0,t=59;for(c&&("left"==f||this.singleDatePicker)&&b.format("YYYY-MM-DD h A")==c.format("YYYY-MM-DD h A")&&(s=c.minute(),b.minute()<s&&b.minute(s)),e&&("right"==f||this.singleDatePicker)&&b.format("YYYY-MM-DD h A")==e.format("YYYY-MM-DD h A")&&(t=e.minute(),b.minute()>t&&b.minute(t)),m=0;60>m;m+=this.timePickerIncrement){var u=m;10>u&&(u="0"+u),g+=m==b.minute()?'<option value="'+m+'" selected="selected">'+u+"</option>":s>m||m>t?'<option value="'+m+'" disabled="disabled" class="disabled">'+u+"</option>":'<option value="'+m+'">'+u+"</option>"}if(g+="</select> ",this.timePickerSeconds){for(g+=': <select class="secondselect">',m=0;60>m;m+=this.timePickerIncrement){var u=m;10>u&&(u="0"+u),g+=m==b.second()?'<option value="'+m+'" selected="selected">'+u+"</option>":'<option value="'+m+'">'+u+"</option>"}g+="</select>"}if(this.timePicker12Hour){g+='<select class="ampmselect">';var v="",w="";c&&("left"==f||this.singleDatePicker)&&b.format("YYYY-MM-DD")==c.format("YYYY-MM-DD")&&c.hour()>=12&&(v=' disabled="disabled" class="disabled"'),e&&("right"==f||this.singleDatePicker)&&b.format("YYYY-MM-DD")==e.format("YYYY-MM-DD")&&e.hour()<12&&(w=' disabled="disabled" class="disabled"'),g+=b.hour()>=12?'<option value="AM"'+v+'>AM</option><option value="PM" selected="selected"'+w+">PM</option>":'<option value="AM" selected="selected"'+v+'>AM</option><option value="PM"'+w+">PM</option>",g+="</select>"}g+="</div>"}return g},remove:function(){this.container.remove(),this.element.off(".daterangepicker"),this.element.removeData("daterangepicker")}},d.fn.daterangepicker=function(a,b){return this.each(function(){var c=d(this);c.data("daterangepicker")&&c.data("daterangepicker").remove(),c.data("daterangepicker",new e(c,a,b))}),this}}),function(a){"use strict";a.module("ngBootstrap",[]).directive("input",["$compile","$parse","$filter",function(b,c,d){return{restrict:"E",require:"?ngModel",link:function(b,e,f,g){function h(a){return moment.isMoment(a)?a.toDate():a}function i(a){return moment.isMoment(a)?a:moment(a)}function j(a){return d("date")(h(a),l.format.replace(/Y/g,"y").replace(/D/g,"d"))}function k(a){return[j(a.startDate),j(a.endDate)].join(l.separator)}if("daterange"===f.type&&null!==g){var l={};l.format=f.format||"YYYY-MM-DD",l.separator=f.separator||" - ",l.minDate=f.minDate&&moment(f.minDate),l.maxDate=f.maxDate&&moment(f.maxDate),l.dateLimit=f.limit&&moment.duration.apply(this,f.limit.split(" ").map(function(a,b){return 0===b&&parseInt(a,10)||a})),l.ranges=f.ranges&&c(f.ranges)(b),l.locale=f.locale&&c(f.locale)(b),l.opens=f.opens||c(f.opens)(b),f.enabletimepicker&&(l.timePicker=!0,a.extend(l,c(f.enabletimepicker)(b))),g.$render=function(){g.$viewValue&&g.$viewValue.startDate&&e.val(k(g.$viewValue))},b.$watch(function(){return f.ngModel},function(a,c){return b[a]&&b[a].startDate?void(c===a&&(e.data("daterangepicker").startDate=i(b[a].startDate),e.data("daterangepicker").endDate=i(b[a].endDate),e.data("daterangepicker").updateView(),e.data("daterangepicker").updateCalendars(),e.data("daterangepicker").updateInputText())):void g.$setViewValue({startDate:moment().startOf("day"),endDate:moment().startOf("day")})}),e.daterangepicker(l,function(c,d,e){var f=g.$viewValue;a.equals(c,f.startDate)&&a.equals(d,f.endDate)||b.$apply(function(){g.$setViewValue({startDate:moment.isMoment(f.startDate)?c:c.toDate(),endDate:moment.isMoment(f.endDate)?d:d.toDate()}),g.$render()})})}}}}])}(angular),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.debounce","ui.bootstrap.dropdown","ui.bootstrap.stackedMap","ui.bootstrap.modal","ui.bootstrap.paging","ui.bootstrap.pager","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["uib/template/accordion/accordion-group.html","uib/template/accordion/accordion.html","uib/template/alert/alert.html","uib/template/carousel/carousel.html","uib/template/carousel/slide.html","uib/template/datepicker/datepicker.html","uib/template/datepicker/day.html","uib/template/datepicker/month.html","uib/template/datepicker/popup.html","uib/template/datepicker/year.html","uib/template/modal/backdrop.html","uib/template/modal/window.html","uib/template/pager/pager.html","uib/template/pagination/pagination.html","uib/template/tooltip/tooltip-html-popup.html","uib/template/tooltip/tooltip-popup.html","uib/template/tooltip/tooltip-template-popup.html","uib/template/popover/popover-html.html","uib/template/popover/popover-template.html","uib/template/popover/popover.html","uib/template/progressbar/bar.html","uib/template/progressbar/progress.html","uib/template/progressbar/progressbar.html","uib/template/rating/rating.html","uib/template/tabs/tab.html","uib/template/tabs/tabset.html","uib/template/timepicker/timepicker.html","uib/template/typeahead/typeahead-match.html","uib/template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.collapse",[]).directive("uibCollapse",["$animate","$injector",function(a,b){var c=b.has("$animateCss")?b.get("$animateCss"):null;return{link:function(b,d,e){function f(){d.removeClass("collapse").addClass("collapsing").attr("aria-expanded",!0).attr("aria-hidden",!1),c?c(d,{addClass:"in",easing:"ease",to:{height:d[0].scrollHeight+"px"}}).start()["finally"](g):a.addClass(d,"in",{to:{height:d[0].scrollHeight+"px"}}).then(g)}function g(){d.removeClass("collapsing").addClass("collapse").css({height:"auto"})}function h(){return d.hasClass("collapse")||d.hasClass("in")?(d.css({height:d[0].scrollHeight+"px"}).removeClass("collapse").addClass("collapsing").attr("aria-expanded",!1).attr("aria-hidden",!0),void(c?c(d,{removeClass:"in",to:{height:"0"}}).start()["finally"](i):a.removeClass(d,"in",{to:{height:"0"}}).then(i))):i()}function i(){d.css({height:"0"}),d.removeClass("collapsing").addClass("collapse")}b.$eval(e.uibCollapse)||d.addClass("in").addClass("collapse").css({height:"auto"}),b.$watch(e.uibCollapse,function(a){a?h():f()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("uibAccordionConfig",{closeOthers:!0}).controller("UibAccordionController",["$scope","$attrs","uibAccordionConfig",function(a,b,c){this.groups=[],this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var b=this;this.groups.push(a),a.$on("$destroy",function(c){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(b,1)}}]).directive("uibAccordion",function(){return{controller:"UibAccordionController",controllerAs:"accordion",transclude:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/accordion/accordion.html"}}}).directive("uibAccordionGroup",function(){return{require:"^uibAccordion",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/accordion/accordion-group.html"},scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(a,b,c,d){d.addGroup(a),a.openClass=c.openClass||"panel-open",a.panelClass=c.panelClass||"panel-default",a.$watch("isOpen",function(c){b.toggleClass(a.openClass,!!c),c&&d.closeOthers(a)}),a.toggleOpen=function(b){a.isDisabled||b&&32!==b.which||(a.isOpen=!a.isOpen)}}}}).directive("uibAccordionHeading",function(){return{transclude:!0,template:"",replace:!0,require:"^uibAccordionGroup",link:function(a,b,c,d,e){d.setHeading(e(a,angular.noop))}}}).directive("uibAccordionTransclude",function(){return{require:"^uibAccordionGroup",link:function(a,b,c,d){a.$watch(function(){return d[c.uibAccordionTransclude]},function(a){a&&(b.find("span").html(""),b.find("span").append(a))})}}}),angular.module("ui.bootstrap.alert",[]).controller("UibAlertController",["$scope","$attrs","$interpolate","$timeout",function(a,b,c,d){a.closeable=!!b.close;var e=angular.isDefined(b.dismissOnTimeout)?c(b.dismissOnTimeout)(a.$parent):null;e&&d(function(){a.close()},parseInt(e,10))}]).directive("uibAlert",function(){return{controller:"UibAlertController",controllerAs:"alert",templateUrl:function(a,b){return b.templateUrl||"uib/template/alert/alert.html"},transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}),angular.module("ui.bootstrap.buttons",[]).constant("uibButtonConfig",{activeClass:"active",toggleEvent:"click"}).controller("UibButtonsController",["uibButtonConfig",function(a){this.activeClass=a.activeClass||"active",this.toggleEvent=a.toggleEvent||"click"}]).directive("uibBtnRadio",["$parse",function(a){return{require:["uibBtnRadio","ngModel"],controller:"UibButtonsController",controllerAs:"buttons",link:function(b,c,d,e){var f=e[0],g=e[1],h=a(d.uibUncheckable);c.find("input").css({display:"none"}),g.$render=function(){c.toggleClass(f.activeClass,angular.equals(g.$modelValue,b.$eval(d.uibBtnRadio)))},c.on(f.toggleEvent,function(){if(!d.disabled){var a=c.hasClass(f.activeClass);(!a||angular.isDefined(d.uncheckable))&&b.$apply(function(){g.$setViewValue(a?null:b.$eval(d.uibBtnRadio)),g.$render()})}}),d.uibUncheckable&&b.$watch(h,function(a){d.$set("uncheckable",a?"":null)})}}}]).directive("uibBtnCheckbox",function(){return{require:["uibBtnCheckbox","ngModel"],controller:"UibButtonsController",controllerAs:"button",link:function(a,b,c,d){function e(){return g(c.btnCheckboxTrue,!0)}function f(){return g(c.btnCheckboxFalse,!1)}function g(b,c){return angular.isDefined(b)?a.$eval(b):c}var h=d[0],i=d[1];b.find("input").css({display:"none"}),i.$render=function(){b.toggleClass(h.activeClass,angular.equals(i.$modelValue,e()))},b.on(h.toggleEvent,function(){c.disabled||a.$apply(function(){i.$setViewValue(b.hasClass(h.activeClass)?f():e()),i.$render()})})}}}),angular.module("ui.bootstrap.carousel",[]).controller("UibCarouselController",["$scope","$element","$interval","$timeout","$animate",function(a,b,c,d,e){function f(){for(;s.length;)s.shift()}function g(a){if(angular.isUndefined(p[a].index))return p[a];for(var b=0,c=p.length;c>b;++b)if(p[b].index===a)return p[b]}function h(c,d,g){t||(angular.extend(c,{direction:g,active:!0}),angular.extend(o.currentSlide||{},{direction:g,active:!1}),e.enabled(b)&&!a.$currentTransition&&c.$element&&o.slides.length>1&&(c.$element.data(q,c.direction),o.currentSlide&&o.currentSlide.$element&&o.currentSlide.$element.data(q,c.direction),a.$currentTransition=!0,e.on("addClass",c.$element,function(b,c){if("close"===c&&(a.$currentTransition=null,e.off("addClass",b),s.length)){var d=s.pop(),g=a.indexOfSlide(d),i=g>o.getCurrentIndex()?"next":"prev";f(),h(d,g,i)}})),o.currentSlide=c,r=d,k())}function i(){m&&(c.cancel(m),m=null)}function j(b){b.length||(a.$currentTransition=null,f())}function k(){i();var b=+a.interval;!isNaN(b)&&b>0&&(m=c(l,b))}function l(){var b=+a.interval;n&&!isNaN(b)&&b>0&&p.length?a.next():a.pause()}var m,n,o=this,p=o.slides=a.slides=[],q="uib-slideDirection",r=-1,s=[];o.currentSlide=null;var t=!1;o.addSlide=function(b,c){b.$element=c,p.push(b),1===p.length||b.active?(a.$currentTransition&&(a.$currentTransition=null),o.select(p[p.length-1]),1===p.length&&a.play()):b.active=!1},o.getCurrentIndex=function(){return o.currentSlide&&angular.isDefined(o.currentSlide.index)?+o.currentSlide.index:r},o.next=a.next=function(){var b=(o.getCurrentIndex()+1)%p.length;return 0===b&&a.noWrap()?void a.pause():o.select(g(b),"next")},o.prev=a.prev=function(){var b=o.getCurrentIndex()-1<0?p.length-1:o.getCurrentIndex()-1;return a.noWrap()&&b===p.length-1?void a.pause():o.select(g(b),"prev")},o.removeSlide=function(a){angular.isDefined(a.index)&&p.sort(function(a,b){return+a.index>+b.index});var b=s.indexOf(a);-1!==b&&s.splice(b,1);var c=p.indexOf(a);p.splice(c,1),d(function(){p.length>0&&a.active?c>=p.length?o.select(p[c-1]):o.select(p[c]):r>c&&r--}),0===p.length&&(o.currentSlide=null,f())},o.select=a.select=function(b,c){var d=a.indexOfSlide(b);void 0===c&&(c=d>o.getCurrentIndex()?"next":"prev"),b&&b!==o.currentSlide&&!a.$currentTransition?h(b,d,c):b&&b!==o.currentSlide&&a.$currentTransition&&(s.push(b),b.active=!1)},a.indexOfSlide=function(a){return angular.isDefined(a.index)?+a.index:p.indexOf(a)},a.isActive=function(a){return o.currentSlide===a},a.pause=function(){a.noPause||(n=!1,i())},a.play=function(){n||(n=!0,k())},a.$on("$destroy",function(){t=!0,i()}),a.$watch("noTransition",function(a){e.enabled(b,!a)}),a.$watch("interval",k),a.$watchCollection("slides",j)}]).directive("uibCarousel",function(){return{transclude:!0,replace:!0,controller:"UibCarouselController",controllerAs:"carousel",templateUrl:function(a,b){return b.templateUrl||"uib/template/carousel/carousel.html"},scope:{interval:"=",noTransition:"=",noPause:"=",noWrap:"&"}}}).directive("uibSlide",function(){return{require:"^uibCarousel",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/carousel/slide.html"},scope:{active:"=?",actual:"=?",index:"=?"},link:function(a,b,c,d){d.addSlide(a,b),a.$on("$destroy",function(){d.removeSlide(a)}),a.$watch("active",function(b){b&&d.select(a)})}}}).animation(".item",["$animateCss",function(a){function b(a,b,c){a.removeClass(b),c&&c()}var c="uib-slideDirection";return{beforeAddClass:function(d,e,f){if("active"===e){var g=!1,h=d.data(c),i="next"===h?"left":"right",j=b.bind(this,d,i+" "+h,f);return d.addClass(h),a(d,{addClass:i}).start().done(j),function(){g=!0}}f()},beforeRemoveClass:function(d,e,f){if("active"===e){var g=!1,h=d.data(c),i="next"===h?"left":"right",j=b.bind(this,d,i,f);return a(d,{addClass:i}).start().done(j),function(){g=!0}}f()}}}]),angular.module("ui.bootstrap.dateparser",[]).service("uibDateParser",["$log","$locale","orderByFilter",function(a,b,c){function d(a){var b=[],d=a.split(""),e=a.indexOf("'");if(e>-1){var f=!1;a=a.split("");for(var g=e;g<a.length;g++)f?("'"===a[g]&&(g+1<a.length&&"'"===a[g+1]?(a[g+1]="$",d[g+1]=""):(d[g]="",f=!1)),a[g]="$"):"'"===a[g]&&(a[g]="$",d[g]="",f=!0);a=a.join("")}return angular.forEach(m,function(c){var e=a.indexOf(c.key);if(e>-1){a=a.split(""),d[e]="("+c.regex+")",a[e]="$";for(var f=e+1,g=e+c.key.length;g>f;f++)d[f]="",a[f]="$";a=a.join(""),b.push({index:e,apply:c.apply,matcher:c.regex})}}),{regex:new RegExp("^"+d.join("")+"$"),map:c(b,"index")}}function e(a,b,c){return 1>c?!1:1===b&&c>28?29===c&&(a%4===0&&a%100!==0||a%400===0):3===b||5===b||8===b||10===b?31>c:!0}function f(a){return parseInt(a,10)}function g(a,b){return a&&b?k(a,b):a}function h(a,b){return a&&b?k(a,b,!0):a}function i(a,b){var c=Date.parse("Jan 01, 1970 00:00:00 "+a)/6e4;return isNaN(c)?b:c}function j(a,b){return a=new Date(a.getTime()),a.setMinutes(a.getMinutes()+b),a}function k(a,b,c){c=c?-1:1;var d=i(b,a.getTimezoneOffset());return j(a,c*(d-a.getTimezoneOffset()))}var l,m,n=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;this.init=function(){l=b.id,this.parsers={},m=[{key:"yyyy",regex:"\\d{4}",apply:function(a){this.year=+a}},{key:"yy",regex:"\\d{2}",apply:function(a){this.year=+a+2e3}},{key:"y",regex:"\\d{1,4}",apply:function(a){this.year=+a}},{key:"M!",regex:"0?[1-9]|1[0-2]",apply:function(a){this.month=a-1}},{key:"MMMM",regex:b.DATETIME_FORMATS.MONTH.join("|"),apply:function(a){this.month=b.DATETIME_FORMATS.MONTH.indexOf(a)}},{key:"MMM",regex:b.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(a){this.month=b.DATETIME_FORMATS.SHORTMONTH.indexOf(a)}},{key:"MM",regex:"0[1-9]|1[0-2]",apply:function(a){this.month=a-1}},{key:"M",regex:"[1-9]|1[0-2]",apply:function(a){this.month=a-1}},{key:"d!",regex:"[0-2]?[0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},{key:"dd",regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},{key:"d",regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},{key:"EEEE",regex:b.DATETIME_FORMATS.DAY.join("|")},{key:"EEE",regex:b.DATETIME_FORMATS.SHORTDAY.join("|")},{key:"HH",regex:"(?:0|1)[0-9]|2[0-3]",apply:function(a){this.hours=+a}},{key:"hh",regex:"0[0-9]|1[0-2]",apply:function(a){this.hours=+a}},{key:"H",regex:"1?[0-9]|2[0-3]",apply:function(a){this.hours=+a}},{key:"h",regex:"[0-9]|1[0-2]",apply:function(a){this.hours=+a}},{key:"mm",regex:"[0-5][0-9]",apply:function(a){this.minutes=+a}},{key:"m",regex:"[0-9]|[1-5][0-9]",apply:function(a){this.minutes=+a}},{key:"sss",regex:"[0-9][0-9][0-9]",apply:function(a){this.milliseconds=+a}},{key:"ss",regex:"[0-5][0-9]",apply:function(a){this.seconds=+a}},{key:"s",regex:"[0-9]|[1-5][0-9]",apply:function(a){this.seconds=+a}},{key:"a",regex:b.DATETIME_FORMATS.AMPMS.join("|"),apply:function(a){12===this.hours&&(this.hours=0),"PM"===a&&(this.hours+=12)}},{key:"Z",regex:"[+-]\\d{4}",apply:function(a){var b=a.match(/([+-])(\d{2})(\d{2})/),c=b[1],d=b[2],e=b[3];this.hours+=f(c+d),this.minutes+=f(c+e)}},{key:"ww",regex:"[0-4][0-9]|5[0-3]"},{key:"w",regex:"[0-9]|[1-4][0-9]|5[0-3]"},{key:"GGGG",regex:b.DATETIME_FORMATS.ERANAMES.join("|").replace(/\s/g,"\\s")},{key:"GGG",regex:b.DATETIME_FORMATS.ERAS.join("|")},{key:"GG",regex:b.DATETIME_FORMATS.ERAS.join("|")},{key:"G",regex:b.DATETIME_FORMATS.ERAS.join("|")}]},this.init(),this.parse=function(c,f,g){if(!angular.isString(c)||!f)return c;f=b.DATETIME_FORMATS[f]||f,f=f.replace(n,"\\$&"),b.id!==l&&this.init(),this.parsers[f]||(this.parsers[f]=d(f));var h=this.parsers[f],i=h.regex,j=h.map,k=c.match(i),m=!1;if(k&&k.length){var o,p;angular.isDate(g)&&!isNaN(g.getTime())?o={year:g.getFullYear(),month:g.getMonth(),date:g.getDate(),hours:g.getHours(),minutes:g.getMinutes(),seconds:g.getSeconds(),milliseconds:g.getMilliseconds()}:(g&&a.warn("dateparser:","baseDate is not a valid date"),o={year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0});for(var q=1,r=k.length;r>q;q++){var s=j[q-1];"Z"===s.matcher&&(m=!0),s.apply&&s.apply.call(o,k[q])}var t=m?Date.prototype.setUTCFullYear:Date.prototype.setFullYear,u=m?Date.prototype.setUTCHours:Date.prototype.setHours;return e(o.year,o.month,o.date)&&(!angular.isDate(g)||isNaN(g.getTime())||m?(p=new Date(0),t.call(p,o.year,o.month,o.date),u.call(p,o.hours||0,o.minutes||0,o.seconds||0,o.milliseconds||0)):(p=new Date(g),t.call(p,o.year,o.month,o.date),u.call(p,o.hours,o.minutes,o.seconds,o.milliseconds))),p}},this.toTimezone=g,this.fromTimezone=h,this.timezoneToOffset=i,this.addDateMinutes=j,this.convertTimezoneToLocal=k}]),angular.module("ui.bootstrap.isClass",[]).directive("uibIsClass",["$animate",function(a){var b=/^\s*([\s\S]+?)\s+on\s+([\s\S]+?)\s*$/,c=/^\s*([\s\S]+?)\s+for\s+([\s\S]+?)\s*$/;return{restrict:"A",compile:function(d,e){function f(a,b,c){i.push(a),j.push({scope:a,element:b}),o.forEach(function(b,c){g(b,a)}),a.$on("$destroy",h)}function g(b,d){var e=b.match(c),f=d.$eval(e[1]),g=e[2],h=k[b];if(!h){var i=function(b){var c=null;j.some(function(a){var d=a.scope.$eval(m);return d===b?(c=a,!0):void 0}),h.lastActivated!==c&&(h.lastActivated&&a.removeClass(h.lastActivated.element,f),c&&a.addClass(c.element,f),h.lastActivated=c)};k[b]=h={lastActivated:null,scope:d,watchFn:i,compareWithExp:g,watcher:d.$watch(g,i)}}h.watchFn(d.$eval(g))}function h(a){var b=a.targetScope,c=i.indexOf(b);if(i.splice(c,1),j.splice(c,1),i.length){var d=i[0];angular.forEach(k,function(a){a.scope===b&&(a.watcher=d.$watch(a.compareWithExp,a.watchFn),a.scope=d)})}else k={}}var i=[],j=[],k={},l=e.uibIsClass.match(b),m=l[2],n=l[1],o=n.split(",");return f}}}]),angular.module("ui.bootstrap.position",[]).factory("$uibPosition",["$document","$window",function(a,b){var c,d={normal:/(auto|scroll)/,hidden:/(auto|scroll|hidden)/},e={auto:/\s?auto?\s?/i,primary:/^(top|bottom|left|right)$/,secondary:/^(top|bottom|left|right|center)$/,vertical:/^(top|bottom)$/};return{getRawNode:function(a){return a[0]||a},parseStyle:function(a){return a=parseFloat(a),isFinite(a)?a:0},offsetParent:function(c){function d(a){return"static"===(b.getComputedStyle(a).position||"static")}c=this.getRawNode(c);for(var e=c.offsetParent||a[0].documentElement;e&&e!==a[0].documentElement&&d(e);)e=e.offsetParent;return e||a[0].documentElement},scrollbarWidth:function(){if(angular.isUndefined(c)){var b=angular.element('<div style="position: absolute; top: -9999px; width: 50px; height: 50px; overflow: scroll;"></div>');a.find("body").append(b),c=b[0].offsetWidth-b[0].clientWidth,c=isFinite(c)?c:0,b.remove()}return c},scrollParent:function(c,e){c=this.getRawNode(c);var f=e?d.hidden:d.normal,g=a[0].documentElement,h=b.getComputedStyle(c),i="absolute"===h.position,j=c.parentElement||g;if(j===g||"fixed"===h.position)return g;for(;j.parentElement&&j!==g;){var k=b.getComputedStyle(j);if(i&&"static"!==k.position&&(i=!1),!i&&f.test(k.overflow+k.overflowY+k.overflowX))break;j=j.parentElement}return j},position:function(c,d){c=this.getRawNode(c);var e=this.offset(c);if(d){var f=b.getComputedStyle(c);e.top-=this.parseStyle(f.marginTop),e.left-=this.parseStyle(f.marginLeft)}var g=this.offsetParent(c),h={top:0,left:0};return g!==a[0].documentElement&&(h=this.offset(g),h.top+=g.clientTop-g.scrollTop,h.left+=g.clientLeft-g.scrollLeft),{width:Math.round(angular.isNumber(e.width)?e.width:c.offsetWidth),height:Math.round(angular.isNumber(e.height)?e.height:c.offsetHeight),top:Math.round(e.top-h.top),left:Math.round(e.left-h.left)}},offset:function(c){c=this.getRawNode(c);var d=c.getBoundingClientRect();return{width:Math.round(angular.isNumber(d.width)?d.width:c.offsetWidth),height:Math.round(angular.isNumber(d.height)?d.height:c.offsetHeight),top:Math.round(d.top+(b.pageYOffset||a[0].documentElement.scrollTop)),left:Math.round(d.left+(b.pageXOffset||a[0].documentElement.scrollLeft))}},viewportOffset:function(c,d,e){c=this.getRawNode(c),e=e!==!1?!0:!1;var f=c.getBoundingClientRect(),g={top:0,left:0,bottom:0,right:0},h=d?a[0].documentElement:this.scrollParent(c),i=h.getBoundingClientRect();if(g.top=i.top+h.clientTop,g.left=i.left+h.clientLeft,h===a[0].documentElement&&(g.top+=b.pageYOffset,g.left+=b.pageXOffset),g.bottom=g.top+h.clientHeight,g.right=g.left+h.clientWidth,e){var j=b.getComputedStyle(h);g.top+=this.parseStyle(j.paddingTop),g.bottom-=this.parseStyle(j.paddingBottom),g.left+=this.parseStyle(j.paddingLeft),g.right-=this.parseStyle(j.paddingRight)}return{top:Math.round(f.top-g.top),bottom:Math.round(g.bottom-f.bottom),left:Math.round(f.left-g.left),right:Math.round(g.right-f.right)}},parsePlacement:function(a){var b=e.auto.test(a);return b&&(a=a.replace(e.auto,"")),a=a.split("-"),a[0]=a[0]||"top",e.primary.test(a[0])||(a[0]="top"),a[1]=a[1]||"center",e.secondary.test(a[1])||(a[1]="center"),b?a[2]=!0:a[2]=!1,a},positionElements:function(a,c,d,f){a=this.getRawNode(a),c=this.getRawNode(c);var g=angular.isDefined(c.offsetWidth)?c.offsetWidth:c.prop("offsetWidth"),h=angular.isDefined(c.offsetHeight)?c.offsetHeight:c.prop("offsetHeight");d=this.parsePlacement(d);var i=f?this.offset(a):this.position(a),j={top:0,left:0,placement:""};if(d[2]){var k=this.viewportOffset(a),l=b.getComputedStyle(c),m={width:g+Math.round(Math.abs(this.parseStyle(l.marginLeft)+this.parseStyle(l.marginRight))),height:h+Math.round(Math.abs(this.parseStyle(l.marginTop)+this.parseStyle(l.marginBottom)))};if(d[0]="top"===d[0]&&m.height>k.top&&m.height<=k.bottom?"bottom":"bottom"===d[0]&&m.height>k.bottom&&m.height<=k.top?"top":"left"===d[0]&&m.width>k.left&&m.width<=k.right?"right":"right"===d[0]&&m.width>k.right&&m.width<=k.left?"left":d[0],d[1]="top"===d[1]&&m.height-i.height>k.bottom&&m.height-i.height<=k.top?"bottom":"bottom"===d[1]&&m.height-i.height>k.top&&m.height-i.height<=k.bottom?"top":"left"===d[1]&&m.width-i.width>k.right&&m.width-i.width<=k.left?"right":"right"===d[1]&&m.width-i.width>k.left&&m.width-i.width<=k.right?"left":d[1],"center"===d[1])if(e.vertical.test(d[0])){var n=i.width/2-g/2;k.left+n<0&&m.width-i.width<=k.right?d[1]="left":k.right+n<0&&m.width-i.width<=k.left&&(d[1]="right")}else{var o=i.height/2-m.height/2;k.top+o<0&&m.height-i.height<=k.bottom?d[1]="top":k.bottom+o<0&&m.height-i.height<=k.top&&(d[1]="bottom")}}switch(d[0]){case"top":j.top=i.top-h;break;case"bottom":j.top=i.top+i.height;break;case"left":j.left=i.left-g;break;case"right":j.left=i.left+i.width}switch(d[1]){case"top":j.top=i.top;break;case"bottom":j.top=i.top+i.height-h;break;case"left":j.left=i.left;break;case"right":j.left=i.left+i.width-g;break;case"center":e.vertical.test(d[0])?j.left=i.left+i.width/2-g/2:j.top=i.top+i.height/2-h/2}return j.top=Math.round(j.top),j.left=Math.round(j.left),j.placement="center"===d[1]?d[0]:d[0]+"-"+d[1],j},positionArrow:function(a,c){a=this.getRawNode(a);var d=!0,f=a.querySelector(".tooltip-inner");if(f||(d=!1,f=a.querySelector(".popover-inner")),f){var g=d?a.querySelector(".tooltip-arrow"):a.querySelector(".arrow");if(g){if(c=this.parsePlacement(c),"center"===c[1])return void angular.element(g).css({top:"",bottom:"",right:"",left:"",margin:""});var h="border-"+c[0]+"-width",i=b.getComputedStyle(g)[h],j="border-";j+=e.vertical.test(c[0])?c[0]+"-"+c[1]:c[1]+"-"+c[0],j+="-radius";var k=b.getComputedStyle(d?f:a)[j],l={top:"auto",bottom:"auto",left:"auto",right:"auto",margin:0};switch(c[0]){case"top":l.bottom=d?"0":"-"+i;break;case"bottom":l.top=d?"0":"-"+i;break;case"left":l.right=d?"0":"-"+i;break;case"right":l.left=d?"0":"-"+i}l[c[1]]=k,angular.element(g).css(l)}}}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.position"]).value("$datepickerSuppressError",!1).constant("uibDatepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRows:4,yearColumns:5,minDate:null,maxDate:null,shortcutPropagation:!1,ngModelOptions:{}}).controller("UibDatepickerController",["$scope","$attrs","$parse","$interpolate","$log","dateFilter","uibDatepickerConfig","$datepickerSuppressError","uibDateParser",function(a,b,c,d,e,f,g,h,i){var j=this,k={$setViewValue:angular.noop},l={};this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle"],function(c){j[c]=angular.isDefined(b[c])?d(b[c])(a.$parent):g[c]}),angular.forEach(["showWeeks","startingDay","yearRows","yearColumns","shortcutPropagation"],function(c){
-j[c]=angular.isDefined(b[c])?a.$parent.$eval(b[c]):g[c]}),angular.forEach(["minDate","maxDate"],function(c){b[c]?a.$parent.$watch(b[c],function(a){j[c]=a?angular.isDate(a)?i.fromTimezone(new Date(a),l.timezone):new Date(f(a,"medium")):null,j.refreshView()}):j[c]=g[c]?i.fromTimezone(new Date(g[c]),l.timezone):null}),angular.forEach(["minMode","maxMode"],function(c){b[c]?a.$parent.$watch(b[c],function(d){j[c]=a[c]=angular.isDefined(d)?d:b[c],("minMode"===c&&j.modes.indexOf(a.datepickerMode)<j.modes.indexOf(j[c])||"maxMode"===c&&j.modes.indexOf(a.datepickerMode)>j.modes.indexOf(j[c]))&&(a.datepickerMode=j[c])}):j[c]=a[c]=g[c]||null}),a.datepickerMode=a.datepickerMode||g.datepickerMode,a.uniqueId="datepicker-"+a.$id+"-"+Math.floor(1e4*Math.random()),angular.isDefined(b.initDate)?(this.activeDate=i.fromTimezone(a.$parent.$eval(b.initDate),l.timezone)||new Date,a.$parent.$watch(b.initDate,function(a){a&&(k.$isEmpty(k.$modelValue)||k.$invalid)&&(j.activeDate=i.fromTimezone(a,l.timezone),j.refreshView())})):this.activeDate=new Date,a.disabled=angular.isDefined(b.disabled)||!1,angular.isDefined(b.ngDisabled)&&a.$parent.$watch(b.ngDisabled,function(b){a.disabled=b,j.refreshView()}),a.isActive=function(b){return 0===j.compare(b.date,j.activeDate)?(a.activeDateId=b.uid,!0):!1},this.init=function(a){k=a,l=a.$options||g.ngModelOptions,k.$modelValue&&(this.activeDate=k.$modelValue),k.$render=function(){j.render()}},this.render=function(){if(k.$viewValue){var a=new Date(k.$viewValue),b=!isNaN(a);b?this.activeDate=i.fromTimezone(a,l.timezone):h||e.error('Datepicker directive: "ng-model" value must be a Date object')}this.refreshView()},this.refreshView=function(){if(this.element){a.selectedDt=null,this._refreshView(),a.activeDt&&(a.activeDateId=a.activeDt.uid);var b=k.$viewValue?new Date(k.$viewValue):null;b=i.fromTimezone(b,l.timezone),k.$setValidity("dateDisabled",!b||this.element&&!this.isDisabled(b))}},this.createDateObject=function(b,c){var d=k.$viewValue?new Date(k.$viewValue):null;d=i.fromTimezone(d,l.timezone);var e={date:b,label:f(b,c.replace(/d!/,"dd")).replace(/M!/,"MM"),selected:d&&0===this.compare(b,d),disabled:this.isDisabled(b),current:0===this.compare(b,new Date),customClass:this.customClass(b)||null};return d&&0===this.compare(b,d)&&(a.selectedDt=e),j.activeDate&&0===this.compare(e.date,j.activeDate)&&(a.activeDt=e),e},this.isDisabled=function(c){return a.disabled||this.minDate&&this.compare(c,this.minDate)<0||this.maxDate&&this.compare(c,this.maxDate)>0||b.dateDisabled&&a.dateDisabled({date:c,mode:a.datepickerMode})},this.customClass=function(b){return a.customClass({date:b,mode:a.datepickerMode})},this.split=function(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c},a.select=function(b){if(a.datepickerMode===j.minMode){var c=k.$viewValue?i.fromTimezone(new Date(k.$viewValue),l.timezone):new Date(0,0,0,0,0,0,0);c.setFullYear(b.getFullYear(),b.getMonth(),b.getDate()),c=i.toTimezone(c,l.timezone),k.$setViewValue(c),k.$render()}else j.activeDate=b,a.datepickerMode=j.modes[j.modes.indexOf(a.datepickerMode)-1]},a.move=function(a){var b=j.activeDate.getFullYear()+a*(j.step.years||0),c=j.activeDate.getMonth()+a*(j.step.months||0);j.activeDate.setFullYear(b,c,1),j.refreshView()},a.toggleMode=function(b){b=b||1,a.datepickerMode===j.maxMode&&1===b||a.datepickerMode===j.minMode&&-1===b||(a.datepickerMode=j.modes[j.modes.indexOf(a.datepickerMode)+b])},a.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var m=function(){j.element[0].focus()};a.$on("uib:datepicker.focus",m),a.keydown=function(b){var c=a.keys[b.which];if(c&&!b.shiftKey&&!b.altKey&&!a.disabled)if(b.preventDefault(),j.shortcutPropagation||b.stopPropagation(),"enter"===c||"space"===c){if(j.isDisabled(j.activeDate))return;a.select(j.activeDate)}else!b.ctrlKey||"up"!==c&&"down"!==c?(j.handleKeyDown(c,b),j.refreshView()):a.toggleMode("up"===c?1:-1)}}]).controller("UibDaypickerController",["$scope","$element","dateFilter",function(a,b,c){function d(a,b){return 1!==b||a%4!==0||a%100===0&&a%400!==0?f[b]:29}function e(a){var b=new Date(a);b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1}var f=[31,28,31,30,31,30,31,31,30,31,30,31];this.step={months:1},this.element=b,this.init=function(b){angular.extend(b,this),a.showWeeks=b.showWeeks,b.refreshView()},this.getDates=function(a,b){for(var c,d=new Array(b),e=new Date(a),f=0;b>f;)c=new Date(e),d[f++]=c,e.setDate(e.getDate()+1);return d},this._refreshView=function(){var b=this.activeDate.getFullYear(),d=this.activeDate.getMonth(),f=new Date(this.activeDate);f.setFullYear(b,d,1);var g=this.startingDay-f.getDay(),h=g>0?7-g:-g,i=new Date(f);h>0&&i.setDate(-h+1);for(var j=this.getDates(i,42),k=0;42>k;k++)j[k]=angular.extend(this.createDateObject(j[k],this.formatDay),{secondary:j[k].getMonth()!==d,uid:a.uniqueId+"-"+k});a.labels=new Array(7);for(var l=0;7>l;l++)a.labels[l]={abbr:c(j[l].date,this.formatDayHeader),full:c(j[l].date,"EEEE")};if(a.title=c(this.activeDate,this.formatDayTitle),a.rows=this.split(j,7),a.showWeeks){a.weekNumbers=[];for(var m=(11-this.startingDay)%7,n=a.rows.length,o=0;n>o;o++)a.weekNumbers.push(e(a.rows[o][m].date))}},this.compare=function(a,b){var c=new Date(a.getFullYear(),a.getMonth(),a.getDate()),d=new Date(b.getFullYear(),b.getMonth(),b.getDate());return c.setFullYear(a.getFullYear()),d.setFullYear(b.getFullYear()),c-d},this.handleKeyDown=function(a,b){var c=this.activeDate.getDate();if("left"===a)c-=1;else if("up"===a)c-=7;else if("right"===a)c+=1;else if("down"===a)c+=7;else if("pageup"===a||"pagedown"===a){var e=this.activeDate.getMonth()+("pageup"===a?-1:1);this.activeDate.setMonth(e,1),c=Math.min(d(this.activeDate.getFullYear(),this.activeDate.getMonth()),c)}else"home"===a?c=1:"end"===a&&(c=d(this.activeDate.getFullYear(),this.activeDate.getMonth()));this.activeDate.setDate(c)}}]).controller("UibMonthpickerController",["$scope","$element","dateFilter",function(a,b,c){this.step={years:1},this.element=b,this.init=function(a){angular.extend(a,this),a.refreshView()},this._refreshView=function(){for(var b,d=new Array(12),e=this.activeDate.getFullYear(),f=0;12>f;f++)b=new Date(this.activeDate),b.setFullYear(e,f,1),d[f]=angular.extend(this.createDateObject(b,this.formatMonth),{uid:a.uniqueId+"-"+f});a.title=c(this.activeDate,this.formatMonthTitle),a.rows=this.split(d,3)},this.compare=function(a,b){var c=new Date(a.getFullYear(),a.getMonth()),d=new Date(b.getFullYear(),b.getMonth());return c.setFullYear(a.getFullYear()),d.setFullYear(b.getFullYear()),c-d},this.handleKeyDown=function(a,b){var c=this.activeDate.getMonth();if("left"===a)c-=1;else if("up"===a)c-=3;else if("right"===a)c+=1;else if("down"===a)c+=3;else if("pageup"===a||"pagedown"===a){var d=this.activeDate.getFullYear()+("pageup"===a?-1:1);this.activeDate.setFullYear(d)}else"home"===a?c=0:"end"===a&&(c=11);this.activeDate.setMonth(c)}}]).controller("UibYearpickerController",["$scope","$element","dateFilter",function(a,b,c){function d(a){return parseInt((a-1)/f,10)*f+1}var e,f;this.element=b,this.yearpickerInit=function(){e=this.yearColumns,f=this.yearRows*e,this.step={years:f}},this._refreshView=function(){for(var b,c=new Array(f),g=0,h=d(this.activeDate.getFullYear());f>g;g++)b=new Date(this.activeDate),b.setFullYear(h+g,0,1),c[g]=angular.extend(this.createDateObject(b,this.formatYear),{uid:a.uniqueId+"-"+g});a.title=[c[0].label,c[f-1].label].join(" - "),a.rows=this.split(c,e),a.columns=e},this.compare=function(a,b){return a.getFullYear()-b.getFullYear()},this.handleKeyDown=function(a,b){var c=this.activeDate.getFullYear();"left"===a?c-=1:"up"===a?c-=e:"right"===a?c+=1:"down"===a?c+=e:"pageup"===a||"pagedown"===a?c+=("pageup"===a?-1:1)*f:"home"===a?c=d(this.activeDate.getFullYear()):"end"===a&&(c=d(this.activeDate.getFullYear())+f-1),this.activeDate.setFullYear(c)}}]).directive("uibDatepicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/datepicker.html"},scope:{datepickerMode:"=?",dateDisabled:"&",customClass:"&",shortcutPropagation:"&?"},require:["uibDatepicker","^ngModel"],controller:"UibDatepickerController",controllerAs:"datepicker",link:function(a,b,c,d){var e=d[0],f=d[1];e.init(f)}}}).directive("uibDaypicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/day.html"},require:["^uibDatepicker","uibDaypicker"],controller:"UibDaypickerController",link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive("uibMonthpicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/month.html"},require:["^uibDatepicker","uibMonthpicker"],controller:"UibMonthpickerController",link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive("uibYearpicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/year.html"},require:["^uibDatepicker","uibYearpicker"],controller:"UibYearpickerController",link:function(a,b,c,d){var e=d[0];angular.extend(e,d[1]),e.yearpickerInit(),e.refreshView()}}}).constant("uibDatepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",datepickerPopupTemplateUrl:"uib/template/datepicker/popup.html",datepickerTemplateUrl:"uib/template/datepicker/datepicker.html",html5Types:{date:"yyyy-MM-dd","datetime-local":"yyyy-MM-ddTHH:mm:ss.sss",month:"yyyy-MM"},currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0,onOpenFocus:!0,altInputFormats:[]}).controller("UibDatepickerPopupController",["$scope","$element","$attrs","$compile","$parse","$document","$rootScope","$uibPosition","dateFilter","uibDateParser","uibDatepickerPopupConfig","$timeout","uibDatepickerConfig",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function o(b){var c=j.parse(b,t,a.date);if(isNaN(c))for(var d=0;d<E.length;d++)if(c=j.parse(b,E[d],a.date),!isNaN(c))return c;return c}function p(a){if(angular.isNumber(a)&&(a=new Date(a)),!a)return null;if(angular.isDate(a)&&!isNaN(a))return a;if(angular.isString(a)){var b=o(a);if(!isNaN(b))return j.toTimezone(b,C.timezone)}return B.$options&&B.$options.allowInvalid?a:void 0}function q(a,b){var d=a||b;return c.ngRequired||d?(angular.isNumber(d)&&(d=new Date(d)),d?angular.isDate(d)&&!isNaN(d)?!0:angular.isString(d)?!isNaN(o(b)):!1:!0):!0}function r(c){if(a.isOpen||!a.disabled){var d=D[0],e=b[0].contains(c.target),f=void 0!==d.contains&&d.contains(c.target);!a.isOpen||e||f||a.$apply(function(){a.isOpen=!1})}}function s(c){27===c.which&&a.isOpen?(c.preventDefault(),c.stopPropagation(),a.$apply(function(){a.isOpen=!1}),b[0].focus()):40!==c.which||a.isOpen||(c.preventDefault(),c.stopPropagation(),a.$apply(function(){a.isOpen=!0}))}var t,u,v,w,x,y,z,A,B,C,D,E,F={},G=!1;a.watchData={},this.init=function(h){if(B=h,C=h.$options||m.ngModelOptions,u=angular.isDefined(c.closeOnDateSelection)?a.$parent.$eval(c.closeOnDateSelection):k.closeOnDateSelection,v=angular.isDefined(c.datepickerAppendToBody)?a.$parent.$eval(c.datepickerAppendToBody):k.appendToBody,w=angular.isDefined(c.onOpenFocus)?a.$parent.$eval(c.onOpenFocus):k.onOpenFocus,x=angular.isDefined(c.datepickerPopupTemplateUrl)?c.datepickerPopupTemplateUrl:k.datepickerPopupTemplateUrl,y=angular.isDefined(c.datepickerTemplateUrl)?c.datepickerTemplateUrl:k.datepickerTemplateUrl,E=angular.isDefined(c.altInputFormats)?a.$parent.$eval(c.altInputFormats):k.altInputFormats,a.showButtonBar=angular.isDefined(c.showButtonBar)?a.$parent.$eval(c.showButtonBar):k.showButtonBar,k.html5Types[c.type]?(t=k.html5Types[c.type],G=!0):(t=c.uibDatepickerPopup||k.datepickerPopup,c.$observe("uibDatepickerPopup",function(a,b){var c=a||k.datepickerPopup;if(c!==t&&(t=c,B.$modelValue=null,!t))throw new Error("uibDatepickerPopup must have a date format specified.")})),!t)throw new Error("uibDatepickerPopup must have a date format specified.");if(G&&c.uibDatepickerPopup)throw new Error("HTML5 date input types do not support custom formats.");if(z=angular.element("<div uib-datepicker-popup-wrap><div uib-datepicker></div></div>"),a.ngModelOptions=angular.copy(C),a.ngModelOptions.timezone=null,z.attr({"ng-model":"date","ng-model-options":"ngModelOptions","ng-change":"dateSelection(date)","template-url":x}),A=angular.element(z.children()[0]),A.attr("template-url",y),G&&"month"===c.type&&(A.attr("datepicker-mode",'"month"'),A.attr("min-mode","month")),c.datepickerOptions){var l=a.$parent.$eval(c.datepickerOptions);l&&l.initDate&&(a.initDate=j.fromTimezone(l.initDate,C.timezone),A.attr("init-date","initDate"),delete l.initDate),angular.forEach(l,function(a,b){A.attr(n(b),a)})}angular.forEach(["minMode","maxMode"],function(b){c[b]&&(a.$parent.$watch(function(){return c[b]},function(c){a.watchData[b]=c}),A.attr(n(b),"watchData."+b))}),angular.forEach(["datepickerMode","shortcutPropagation"],function(b){if(c[b]){var d=e(c[b]),f={get:function(){return d(a.$parent)}};if(A.attr(n(b),"watchData."+b),"datepickerMode"===b){var g=d.assign;f.set=function(b){g(a.$parent,b)}}Object.defineProperty(a.watchData,b,f)}}),angular.forEach(["minDate","maxDate","initDate"],function(b){if(c[b]){var d=e(c[b]);a.$parent.$watch(d,function(c){("minDate"===b||"maxDate"===b)&&(F[b]=angular.isDate(c)?j.fromTimezone(new Date(c),C.timezone):new Date(i(c,"medium"))),a.watchData[b]=F[b]||j.fromTimezone(new Date(c),C.timezone)}),A.attr(n(b),"watchData."+b)}}),c.dateDisabled&&A.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","showWeeks","startingDay","yearRows","yearColumns"],function(a){angular.isDefined(c[a])&&A.attr(n(a),c[a])}),c.customClass&&A.attr("custom-class","customClass({ date: date, mode: mode })"),G?B.$formatters.push(function(b){return a.date=j.fromTimezone(b,C.timezone),b}):(B.$$parserName="date",B.$validators.date=q,B.$parsers.unshift(p),B.$formatters.push(function(b){return B.$isEmpty(b)?(a.date=b,b):(a.date=j.fromTimezone(b,C.timezone),t=t.replace(/M!/,"MM").replace(/d!/,"dd"),i(a.date,t))})),B.$viewChangeListeners.push(function(){a.date=o(B.$viewValue)}),b.bind("keydown",s),D=d(z)(a),z.remove(),v?f.find("body").append(D):b.after(D),a.$on("$destroy",function(){a.isOpen===!0&&(g.$$phase||a.$apply(function(){a.isOpen=!1})),D.remove(),b.unbind("keydown",s),f.unbind("click",r)})},a.getText=function(b){return a[b+"Text"]||k[b+"Text"]},a.isDisabled=function(b){return"today"===b&&(b=new Date),a.watchData.minDate&&a.compare(b,F.minDate)<0||a.watchData.maxDate&&a.compare(b,F.maxDate)>0},a.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},a.dateSelection=function(c){angular.isDefined(c)&&(a.date=c);var d=a.date?i(a.date,t):null;b.val(d),B.$setViewValue(d),u&&(a.isOpen=!1,b[0].focus())},a.keydown=function(c){27===c.which&&(c.stopPropagation(),a.isOpen=!1,b[0].focus())},a.select=function(b){if("today"===b){var c=new Date;angular.isDate(a.date)?(b=new Date(a.date),b.setFullYear(c.getFullYear(),c.getMonth(),c.getDate())):b=new Date(c.setHours(0,0,0,0))}a.dateSelection(b)},a.close=function(){a.isOpen=!1,b[0].focus()},a.disabled=angular.isDefined(c.disabled)||!1,c.ngDisabled&&a.$parent.$watch(e(c.ngDisabled),function(b){a.disabled=b}),a.$watch("isOpen",function(c){c?a.disabled?a.isOpen=!1:(a.position=v?h.offset(b):h.position(b),a.position.top=a.position.top+b.prop("offsetHeight"),l(function(){w&&a.$broadcast("uib:datepicker.focus"),f.bind("click",r)},0,!1)):f.unbind("click",r)})}]).directive("uibDatepickerPopup",function(){return{require:["ngModel","uibDatepickerPopup"],controller:"UibDatepickerPopupController",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&",customClass:"&"},link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive("uibDatepickerPopupWrap",function(){return{replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/popup.html"}}}),angular.module("ui.bootstrap.debounce",[]).factory("$$debounce",["$timeout",function(a){return function(b,c){var d;return function(){var e=this,f=Array.prototype.slice.call(arguments);d&&a.cancel(d),d=a(function(){b.apply(e,f)},c)}}}]),angular.module("ui.bootstrap.dropdown",["ui.bootstrap.position"]).constant("uibDropdownConfig",{appendToOpenClass:"uib-dropdown-open",openClass:"open"}).service("uibDropdownService",["$document","$rootScope",function(a,b){var c=null;this.open=function(b){c||(a.on("click",d),a.on("keydown",e)),c&&c!==b&&(c.isOpen=!1),c=b},this.close=function(b){c===b&&(c=null,a.off("click",d),a.off("keydown",e))};var d=function(a){if(c&&!(a&&"disabled"===c.getAutoClose()||a&&3===a.which)){var d=c.getToggleElement();if(!(a&&d&&d[0].contains(a.target))){var e=c.getDropdownElement();a&&"outsideClick"===c.getAutoClose()&&e&&e[0].contains(a.target)||(c.isOpen=!1,b.$$phase||c.$apply())}}},e=function(a){27===a.which?(c.focusToggleElement(),d()):c.isKeynavEnabled()&&-1!==[38,40].indexOf(a.which)&&c.isOpen&&(a.preventDefault(),a.stopPropagation(),c.focusDropdownEntry(a.which))}}]).controller("UibDropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest",function(a,b,c,d,e,f,g,h,i,j,k){var l,m,n=this,o=a.$new(),p=e.appendToOpenClass,q=e.openClass,r=angular.noop,s=c.onToggle?d(c.onToggle):angular.noop,t=!1,u=null,v=!1,w=i.find("body");b.addClass("dropdown"),this.init=function(){if(c.isOpen&&(m=d(c.isOpen),r=m.assign,a.$watch(m,function(a){o.isOpen=!!a})),angular.isDefined(c.dropdownAppendTo)){var e=d(c.dropdownAppendTo)(o);e&&(u=angular.element(e))}t=angular.isDefined(c.dropdownAppendToBody),v=angular.isDefined(c.keyboardNav),t&&!u&&(u=w),u&&n.dropdownMenu&&(u.append(n.dropdownMenu),b.on("$destroy",function(){n.dropdownMenu.remove()}))},this.toggle=function(a){return o.isOpen=arguments.length?!!a:!o.isOpen},this.isOpen=function(){return o.isOpen},o.getToggleElement=function(){return n.toggleElement},o.getAutoClose=function(){return c.autoClose||"always"},o.getElement=function(){return b},o.isKeynavEnabled=function(){return v},o.focusDropdownEntry=function(a){var c=n.dropdownMenu?angular.element(n.dropdownMenu).find("a"):b.find("ul").eq(0).find("a");switch(a){case 40:angular.isNumber(n.selectedOption)?n.selectedOption=n.selectedOption===c.length-1?n.selectedOption:n.selectedOption+1:n.selectedOption=0;break;case 38:angular.isNumber(n.selectedOption)?n.selectedOption=0===n.selectedOption?0:n.selectedOption-1:n.selectedOption=c.length-1}c[n.selectedOption].focus()},o.getDropdownElement=function(){return n.dropdownMenu},o.focusToggleElement=function(){n.toggleElement&&n.toggleElement[0].focus()},o.$watch("isOpen",function(c,d){if(u&&n.dropdownMenu){var e,i,m=h.positionElements(b,n.dropdownMenu,"bottom-left",!0);if(e={top:m.top+"px",display:c?"block":"none"},i=n.dropdownMenu.hasClass("dropdown-menu-right"),i?(e.left="auto",e.right=window.innerWidth-(m.left+b.prop("offsetWidth"))+"px"):(e.left=m.left+"px",e.right="auto"),!t){var v=h.offset(u);e.top=m.top-v.top+"px",i?e.right=window.innerWidth-(m.left-v.left+b.prop("offsetWidth"))+"px":e.left=m.left-v.left+"px"}n.dropdownMenu.css(e)}var w=u?u:b;if(g[c?"addClass":"removeClass"](w,u?p:q).then(function(){angular.isDefined(c)&&c!==d&&s(a,{open:!!c})}),c)n.dropdownMenuTemplateUrl&&k(n.dropdownMenuTemplateUrl).then(function(a){l=o.$new(),j(a.trim())(l,function(a){var b=a;n.dropdownMenu.replaceWith(b),n.dropdownMenu=b})}),o.focusToggleElement(),f.open(o);else{if(n.dropdownMenuTemplateUrl){l&&l.$destroy();var x=angular.element('<ul class="dropdown-menu"></ul>');n.dropdownMenu.replaceWith(x),n.dropdownMenu=x}f.close(o),n.selectedOption=null}angular.isFunction(r)&&r(a,c)}),a.$on("$locationChangeSuccess",function(){"disabled"!==o.getAutoClose()&&(o.isOpen=!1)})}]).directive("uibDropdown",function(){return{controller:"UibDropdownController",link:function(a,b,c,d){d.init()}}}).directive("uibDropdownMenu",function(){return{restrict:"A",require:"?^uibDropdown",link:function(a,b,c,d){if(d&&!angular.isDefined(c.dropdownNested)){b.addClass("dropdown-menu");var e=c.templateUrl;e&&(d.dropdownMenuTemplateUrl=e),d.dropdownMenu||(d.dropdownMenu=b)}}}}).directive("uibDropdownToggle",function(){return{require:"?^uibDropdown",link:function(a,b,c,d){if(d){b.addClass("dropdown-toggle"),d.toggleElement=b;var e=function(e){e.preventDefault(),b.hasClass("disabled")||c.disabled||a.$apply(function(){d.toggle()})};b.bind("click",e),b.attr({"aria-haspopup":!0,"aria-expanded":!1}),a.$watch(d.isOpen,function(a){b.attr("aria-expanded",!!a)}),a.$on("$destroy",function(){b.unbind("click",e)})}}}}),angular.module("ui.bootstrap.stackedMap",[]).factory("$$stackedMap",function(){return{createNew:function(){var a=[];return{add:function(b,c){a.push({key:b,value:c})},get:function(b){for(var c=0;c<a.length;c++)if(b===a[c].key)return a[c]},keys:function(){for(var b=[],c=0;c<a.length;c++)b.push(a[c].key);return b},top:function(){return a[a.length-1]},remove:function(b){for(var c=-1,d=0;d<a.length;d++)if(b===a[d].key){c=d;break}return a.splice(c,1)[0]},removeTop:function(){return a.splice(a.length-1,1)[0]},length:function(){return a.length}}}}}),angular.module("ui.bootstrap.modal",["ui.bootstrap.stackedMap"]).factory("$$multiMap",function(){return{createNew:function(){var a={};return{entries:function(){return Object.keys(a).map(function(b){return{key:b,value:a[b]}})},get:function(b){return a[b]},hasKey:function(b){return!!a[b]},keys:function(){return Object.keys(a)},put:function(b,c){a[b]||(a[b]=[]),a[b].push(c)},remove:function(b,c){var d=a[b];if(d){var e=d.indexOf(c);-1!==e&&d.splice(e,1),d.length||delete a[b]}}}}}}).provider("$uibResolve",function(){var a=this;this.resolver=null,this.setResolver=function(a){this.resolver=a},this.$get=["$injector","$q",function(b,c){var d=a.resolver?b.get(a.resolver):null;return{resolve:function(a,e,f,g){if(d)return d.resolve(a,e,f,g);var h=[];return angular.forEach(a,function(a){angular.isFunction(a)||angular.isArray(a)?h.push(c.resolve(b.invoke(a))):angular.isString(a)?h.push(c.resolve(b.get(a))):h.push(c.resolve(a))}),c.all(h).then(function(b){var c={},d=0;return angular.forEach(a,function(a,e){c[e]=b[d++]}),c})}}}]}).directive("uibModalBackdrop",["$animateCss","$injector","$uibModalStack",function(a,b,c){function d(b,d,e){e.modalInClass&&(a(d,{addClass:e.modalInClass}).start(),b.$on(c.NOW_CLOSING_EVENT,function(c,f){var g=f();b.modalOptions.animation?a(d,{removeClass:e.modalInClass}).start().then(g):g()}))}return{replace:!0,templateUrl:"uib/template/modal/backdrop.html",compile:function(a,b){return a.addClass(b.backdropClass),d}}}]).directive("uibModalWindow",["$uibModalStack","$q","$animate","$animateCss","$document",function(a,b,c,d,e){return{scope:{index:"@"},replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/modal/window.html"},link:function(f,g,h){g.addClass(h.windowClass||""),g.addClass(h.windowTopClass||""),f.size=h.size,f.close=function(b){var c=a.getTop();c&&c.value.backdrop&&"static"!==c.value.backdrop&&b.target===b.currentTarget&&(b.preventDefault(),b.stopPropagation(),a.dismiss(c.key,"backdrop click"))},g.on("click",f.close),f.$isRendered=!0;var i=b.defer();h.$observe("modalRender",function(a){"true"===a&&i.resolve()}),i.promise.then(function(){var i=null;h.modalInClass&&(i=d(g,{addClass:h.modalInClass}).start(),f.$on(a.NOW_CLOSING_EVENT,function(a,b){var e=b();d?d(g,{removeClass:h.modalInClass}).start().then(e):c.removeClass(g,h.modalInClass).then(e)})),b.when(i).then(function(){if(!e[0].activeElement||!g[0].contains(e[0].activeElement)){var a=g[0].querySelector("[autofocus]");a?a.focus():g[0].focus()}});var j=a.getTop();j&&a.modalRendered(j.key)})}}}]).directive("uibModalAnimationClass",function(){return{compile:function(a,b){b.modalAnimation&&a.addClass(b.uibModalAnimationClass)}}}).directive("uibModalTransclude",function(){return{link:function(a,b,c,d,e){e(a.$parent,function(a){b.empty(),b.append(a)})}}}).factory("$uibModalStack",["$animate","$animateCss","$document","$compile","$rootScope","$q","$$multiMap","$$stackedMap",function(a,b,c,d,e,f,g,h){function i(){for(var a=-1,b=t.keys(),c=0;c<b.length;c++)t.get(b[c]).value.backdrop&&(a=c);return a}function j(a,b){var c=t.get(a).value,d=c.appendTo;t.remove(a),m(c.modalDomEl,c.modalScope,function(){var b=c.openedClass||s;u.remove(b,a),d.toggleClass(b,u.hasKey(b)),k(!0)}),l(),b&&b.focus?b.focus():d.focus&&d.focus()}function k(a){var b;t.length()>0&&(b=t.top().value,b.modalDomEl.toggleClass(b.windowTopClass||"",a))}function l(){if(p&&-1===i()){var a=q;m(p,q,function(){a=null}),p=void 0,q=void 0}}function m(a,c,d,e){function g(){g.done||(g.done=!0,b(a,{event:"leave"}).start().then(function(){a.remove(),e&&e.resolve()}),c.$destroy(),d&&d())}var h,i=null,j=function(){return h||(h=f.defer(),i=h.promise),function(){h.resolve()}};return c.$broadcast(v.NOW_CLOSING_EVENT,j),f.when(i).then(g)}function n(a){if(a.isDefaultPrevented())return a;var b=t.top();if(b)switch(a.which){case 27:b.value.keyboard&&(a.preventDefault(),e.$apply(function(){v.dismiss(b.key,"escape key press")}));break;case 9:v.loadFocusElementList(b);var c=!1;a.shiftKey?v.isFocusInFirstItem(a)&&(c=v.focusLastFocusableElement()):v.isFocusInLastItem(a)&&(c=v.focusFirstFocusableElement()),c&&(a.preventDefault(),a.stopPropagation())}}function o(a,b,c){return!a.value.modalScope.$broadcast("modal.closing",b,c).defaultPrevented}var p,q,r,s="modal-open",t=h.createNew(),u=g.createNew(),v={NOW_CLOSING_EVENT:"modal.stack.now-closing"},w=0,x="a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]";return e.$watch(i,function(a){q&&(q.index=a)}),c.on("keydown",n),e.$on("$destroy",function(){c.off("keydown",n)}),v.open=function(b,f){var g=c[0].activeElement,h=f.openedClass||s;k(!1),t.add(b,{deferred:f.deferred,renderDeferred:f.renderDeferred,closedDeferred:f.closedDeferred,modalScope:f.scope,backdrop:f.backdrop,keyboard:f.keyboard,openedClass:f.openedClass,windowTopClass:f.windowTopClass,animation:f.animation,appendTo:f.appendTo}),u.put(h,b);var j=f.appendTo,l=i();if(!j.length)throw new Error("appendTo element not found. Make sure that the element passed is in DOM.");l>=0&&!p&&(q=e.$new(!0),q.modalOptions=f,q.index=l,p=angular.element('<div uib-modal-backdrop="modal-backdrop"></div>'),p.attr("backdrop-class",f.backdropClass),f.animation&&p.attr("modal-animation","true"),d(p)(q),a.enter(p,j));var m=angular.element('<div uib-modal-window="modal-window"></div>');m.attr({"template-url":f.windowTemplateUrl,"window-class":f.windowClass,"window-top-class":f.windowTopClass,size:f.size,index:t.length()-1,animate:"animate"}).html(f.content),f.animation&&m.attr("modal-animation","true"),a.enter(m,j).then(function(){d(m)(f.scope),a.addClass(j,h)}),t.top().value.modalDomEl=m,t.top().value.modalOpener=g,v.clearFocusListCache()},v.close=function(a,b){var c=t.get(a);return c&&o(c,b,!0)?(c.value.modalScope.$$uibDestructionScheduled=!0,c.value.deferred.resolve(b),j(a,c.value.modalOpener),!0):!c},v.dismiss=function(a,b){var c=t.get(a);return c&&o(c,b,!1)?(c.value.modalScope.$$uibDestructionScheduled=!0,c.value.deferred.reject(b),j(a,c.value.modalOpener),!0):!c},v.dismissAll=function(a){for(var b=this.getTop();b&&this.dismiss(b.key,a);)b=this.getTop()},v.getTop=function(){return t.top()},v.modalRendered=function(a){var b=t.get(a);b&&b.value.renderDeferred.resolve()},v.focusFirstFocusableElement=function(){return r.length>0?(r[0].focus(),!0):!1},v.focusLastFocusableElement=function(){return r.length>0?(r[r.length-1].focus(),!0):!1},v.isFocusInFirstItem=function(a){return r.length>0?(a.target||a.srcElement)===r[0]:!1},v.isFocusInLastItem=function(a){return r.length>0?(a.target||a.srcElement)===r[r.length-1]:!1},v.clearFocusListCache=function(){r=[],w=0},v.loadFocusElementList=function(a){if((void 0===r||!r.length)&&a){var b=a.value.modalDomEl;b&&b.length&&(r=b[0].querySelectorAll(x))}},v}]).provider("$uibModal",function(){var a={options:{animation:!0,backdrop:!0,keyboard:!0},$get:["$rootScope","$q","$document","$templateRequest","$controller","$uibResolve","$uibModalStack",function(b,c,d,e,f,g,h){function i(a){return a.template?c.when(a.template):e(angular.isFunction(a.templateUrl)?a.templateUrl():a.templateUrl)}var j={},k=null;return j.getPromiseChain=function(){return k},j.open=function(e){function j(){return r}var l=c.defer(),m=c.defer(),n=c.defer(),o=c.defer(),p={result:l.promise,opened:m.promise,closed:n.promise,rendered:o.promise,close:function(a){return h.close(p,a)},dismiss:function(a){return h.dismiss(p,a)}};if(e=angular.extend({},a.options,e),e.resolve=e.resolve||{},e.appendTo=e.appendTo||d.find("body").eq(0),!e.template&&!e.templateUrl)throw new Error("One of template or templateUrl options is required.");var q,r=c.all([i(e),g.resolve(e.resolve,{},null,null)]);return q=k=c.all([k]).then(j,j).then(function(a){var c=e.scope||b,d=c.$new();d.$close=p.close,d.$dismiss=p.dismiss,d.$on("$destroy",function(){d.$$uibDestructionScheduled||d.$dismiss("$uibUnscheduledDestruction")});var g,i={};e.controller&&(i.$scope=d,i.$uibModalInstance=p,angular.forEach(a[1],function(a,b){i[b]=a}),g=f(e.controller,i),e.controllerAs&&(e.bindToController&&(g.$close=d.$close,g.$dismiss=d.$dismiss,angular.extend(g,c)),d[e.controllerAs]=g)),h.open(p,{scope:d,deferred:l,renderDeferred:o,closedDeferred:n,content:a[0],animation:e.animation,backdrop:e.backdrop,keyboard:e.keyboard,backdropClass:e.backdropClass,windowTopClass:e.windowTopClass,windowClass:e.windowClass,windowTemplateUrl:e.windowTemplateUrl,size:e.size,openedClass:e.openedClass,appendTo:e.appendTo}),m.resolve(!0)},function(a){m.reject(a),l.reject(a)})["finally"](function(){k===q&&(k=null)}),p},j}]};return a}),angular.module("ui.bootstrap.paging",[]).factory("uibPaging",["$parse",function(a){return{create:function(b,c,d){b.setNumPages=d.numPages?a(d.numPages).assign:angular.noop,b.ngModelCtrl={$setViewValue:angular.noop},b.init=function(e,f){b.ngModelCtrl=e,b.config=f,e.$render=function(){b.render()},d.itemsPerPage?c.$parent.$watch(a(d.itemsPerPage),function(a){b.itemsPerPage=parseInt(a,10),c.totalPages=b.calculateTotalPages(),b.updatePage()}):b.itemsPerPage=f.itemsPerPage,c.$watch("totalItems",function(a,d){(angular.isDefined(a)||a!==d)&&(c.totalPages=b.calculateTotalPages(),b.updatePage())})},b.calculateTotalPages=function(){var a=b.itemsPerPage<1?1:Math.ceil(c.totalItems/b.itemsPerPage);return Math.max(a||0,1)},b.render=function(){c.page=parseInt(b.ngModelCtrl.$viewValue,10)||1},c.selectPage=function(a,d){d&&d.preventDefault();var e=!c.ngDisabled||!d;e&&c.page!==a&&a>0&&a<=c.totalPages&&(d&&d.target&&d.target.blur(),b.ngModelCtrl.$setViewValue(a),b.ngModelCtrl.$render())},c.getText=function(a){return c[a+"Text"]||b.config[a+"Text"]},c.noPrevious=function(){return 1===c.page},c.noNext=function(){return c.page===c.totalPages},b.updatePage=function(){b.setNumPages(c.$parent,c.totalPages),c.page>c.totalPages?c.selectPage(c.totalPages):b.ngModelCtrl.$render()}}}}]),angular.module("ui.bootstrap.pager",["ui.bootstrap.paging"]).controller("UibPagerController",["$scope","$attrs","uibPaging","uibPagerConfig",function(a,b,c,d){a.align=angular.isDefined(b.align)?a.$parent.$eval(b.align):d.align,c.create(this,a,b)}]).constant("uibPagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("uibPager",["uibPagerConfig",function(a){return{scope:{totalItems:"=",previousText:"@",nextText:"@",ngDisabled:"="},require:["uibPager","?ngModel"],controller:"UibPagerController",controllerAs:"pager",templateUrl:function(a,b){return b.templateUrl||"uib/template/pager/pager.html"},replace:!0,
-link:function(b,c,d,e){var f=e[0],g=e[1];g&&f.init(g,a)}}}]),angular.module("ui.bootstrap.pagination",["ui.bootstrap.paging"]).controller("UibPaginationController",["$scope","$attrs","$parse","uibPaging","uibPaginationConfig",function(a,b,c,d,e){function f(a,b,c){return{number:a,text:b,active:c}}function g(a,b){var c=[],d=1,e=b,g=angular.isDefined(i)&&b>i;g&&(j?(d=Math.max(a-Math.floor(i/2),1),e=d+i-1,e>b&&(e=b,d=e-i+1)):(d=(Math.ceil(a/i)-1)*i+1,e=Math.min(d+i-1,b)));for(var h=d;e>=h;h++){var m=f(h,h,h===a);c.push(m)}if(g&&i>0&&(!j||k||l)){if(d>1){if(!l||d>3){var n=f(d-1,"...",!1);c.unshift(n)}if(l){if(3===d){var o=f(2,"2",!1);c.unshift(o)}var p=f(1,"1",!1);c.unshift(p)}}if(b>e){if(!l||b-2>e){var q=f(e+1,"...",!1);c.push(q)}if(l){if(e===b-2){var r=f(b-1,b-1,!1);c.push(r)}var s=f(b,b,!1);c.push(s)}}}return c}var h=this,i=angular.isDefined(b.maxSize)?a.$parent.$eval(b.maxSize):e.maxSize,j=angular.isDefined(b.rotate)?a.$parent.$eval(b.rotate):e.rotate,k=angular.isDefined(b.forceEllipses)?a.$parent.$eval(b.forceEllipses):e.forceEllipses,l=angular.isDefined(b.boundaryLinkNumbers)?a.$parent.$eval(b.boundaryLinkNumbers):e.boundaryLinkNumbers;a.boundaryLinks=angular.isDefined(b.boundaryLinks)?a.$parent.$eval(b.boundaryLinks):e.boundaryLinks,a.directionLinks=angular.isDefined(b.directionLinks)?a.$parent.$eval(b.directionLinks):e.directionLinks,d.create(this,a,b),b.maxSize&&a.$parent.$watch(c(b.maxSize),function(a){i=parseInt(a,10),h.render()});var m=this.render;this.render=function(){m(),a.page>0&&a.page<=a.totalPages&&(a.pages=g(a.page,a.totalPages))}}]).constant("uibPaginationConfig",{itemsPerPage:10,boundaryLinks:!1,boundaryLinkNumbers:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0,forceEllipses:!1}).directive("uibPagination",["$parse","uibPaginationConfig",function(a,b){return{scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@",ngDisabled:"="},require:["uibPagination","?ngModel"],controller:"UibPaginationController",controllerAs:"pagination",templateUrl:function(a,b){return b.templateUrl||"uib/template/pagination/pagination.html"},replace:!0,link:function(a,c,d,e){var f=e[0],g=e[1];g&&f.init(g,b)}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.stackedMap"]).provider("$uibTooltip",function(){function a(a){var b=/[A-Z]/g,c="-";return a.replace(b,function(a,b){return(b?c:"")+a.toLowerCase()})}var b={placement:"top",placementClassPrefix:"",animation:!0,popupDelay:0,popupCloseDelay:0,useContentExp:!1},c={mouseenter:"mouseleave",click:"click",outsideClick:"outsideClick",focus:"blur",none:""},d={};this.options=function(a){angular.extend(d,a)},this.setTriggers=function(a){angular.extend(c,a)},this.$get=["$window","$compile","$timeout","$document","$uibPosition","$interpolate","$rootScope","$parse","$$stackedMap",function(e,f,g,h,i,j,k,l,m){function n(a){if(27===a.which){var b=o.top();b&&(b.value.close(),o.removeTop(),b=null)}}var o=m.createNew();return h.on("keypress",n),k.$on("$destroy",function(){h.off("keypress",n)}),function(e,k,m,n){function p(a){var b=(a||n.trigger||m).split(" "),d=b.map(function(a){return c[a]||a});return{show:b,hide:d}}n=angular.extend({},b,d,n);var q=a(e),r=j.startSymbol(),s=j.endSymbol(),t="<div "+q+'-popup title="'+r+"title"+s+'" '+(n.useContentExp?'content-exp="contentExp()" ':'content="'+r+"content"+s+'" ')+'placement="'+r+"placement"+s+'" popup-class="'+r+"popupClass"+s+'" animation="animation" is-open="isOpen"origin-scope="origScope" style="visibility: hidden; display: block; top: -9999px; left: -9999px;"></div>';return{compile:function(a,b){var c=f(t);return function(a,b,d,f){function j(){M.isOpen?q():m()}function m(){(!L||a.$eval(d[k+"Enable"]))&&(u(),x(),M.popupDelay?G||(G=g(r,M.popupDelay,!1)):r())}function q(){s(),M.popupCloseDelay?H||(H=g(t,M.popupCloseDelay,!1)):t()}function r(){return s(),u(),M.content?(v(),void M.$evalAsync(function(){M.isOpen=!0,y(!0),R()})):angular.noop}function s(){G&&(g.cancel(G),G=null),I&&(g.cancel(I),I=null)}function t(){M&&M.$evalAsync(function(){M.isOpen=!1,y(!1),M.animation?F||(F=g(w,150,!1)):w()})}function u(){H&&(g.cancel(H),H=null),F&&(g.cancel(F),F=null)}function v(){D||(E=M.$new(),D=c(E,function(a){J?h.find("body").append(a):b.after(a)}),z())}function w(){s(),u(),A(),D&&(D.remove(),D=null),E&&(E.$destroy(),E=null)}function x(){M.title=d[k+"Title"],P?M.content=P(a):M.content=d[e],M.popupClass=d[k+"Class"],M.placement=angular.isDefined(d[k+"Placement"])?d[k+"Placement"]:n.placement;var b=parseInt(d[k+"PopupDelay"],10),c=parseInt(d[k+"PopupCloseDelay"],10);M.popupDelay=isNaN(b)?n.popupDelay:b,M.popupCloseDelay=isNaN(c)?n.popupCloseDelay:c}function y(b){O&&angular.isFunction(O.assign)&&O.assign(a,b)}function z(){Q.length=0,P?(Q.push(a.$watch(P,function(a){M.content=a,!a&&M.isOpen&&t()})),Q.push(E.$watch(function(){N||(N=!0,E.$$postDigest(function(){N=!1,M&&M.isOpen&&R()}))}))):Q.push(d.$observe(e,function(a){M.content=a,!a&&M.isOpen?t():R()})),Q.push(d.$observe(k+"Title",function(a){M.title=a,M.isOpen&&R()})),Q.push(d.$observe(k+"Placement",function(a){M.placement=a?a:n.placement,M.isOpen&&R()}))}function A(){Q.length&&(angular.forEach(Q,function(a){a()}),Q.length=0)}function B(a){M&&M.isOpen&&D&&(b[0].contains(a.target)||D[0].contains(a.target)||q())}function C(){var a=d[k+"Trigger"];S(),K=p(a),"none"!==K.show&&K.show.forEach(function(a,c){"outsideClick"===a?(b.on("click",j),h.on("click",B)):a===K.hide[c]?b.on(a,j):a&&(b.on(a,m),b.on(K.hide[c],q)),b.on("keypress",function(a){27===a.which&&q()})})}var D,E,F,G,H,I,J=angular.isDefined(n.appendToBody)?n.appendToBody:!1,K=p(void 0),L=angular.isDefined(d[k+"Enable"]),M=a.$new(!0),N=!1,O=angular.isDefined(d[k+"IsOpen"])?l(d[k+"IsOpen"]):!1,P=n.useContentExp?l(d[e]):!1,Q=[],R=function(){D&&D.html()&&(I||(I=g(function(){D.css({top:0,left:0});var a=i.positionElements(b,D,M.placement,J);D.css({top:a.top+"px",left:a.left+"px",visibility:"visible"}),n.placementClassPrefix&&D.removeClass("top bottom left right"),D.removeClass(n.placementClassPrefix+"top "+n.placementClassPrefix+"top-left "+n.placementClassPrefix+"top-right "+n.placementClassPrefix+"bottom "+n.placementClassPrefix+"bottom-left "+n.placementClassPrefix+"bottom-right "+n.placementClassPrefix+"left "+n.placementClassPrefix+"left-top "+n.placementClassPrefix+"left-bottom "+n.placementClassPrefix+"right "+n.placementClassPrefix+"right-top "+n.placementClassPrefix+"right-bottom");var c=a.placement.split("-");D.addClass(c[0],n.placementClassPrefix+a.placement),i.positionArrow(D,a.placement),I=null},0,!1)))};M.origScope=a,M.isOpen=!1,o.add(M,{close:t}),M.contentExp=function(){return M.content},d.$observe("disabled",function(a){a&&s(),a&&M.isOpen&&t()}),O&&a.$watch(O,function(a){M&&!a===M.isOpen&&j()});var S=function(){K.show.forEach(function(a){"outsideClick"===a?b.off("click",j):(b.off(a,m),b.off(a,j))}),K.hide.forEach(function(a){"outsideClick"===a?h.off("click",B):b.off(a,q)})};C();var T=a.$eval(d[k+"Animation"]);M.animation=angular.isDefined(T)?!!T:n.animation;var U,V=k+"AppendToBody";U=V in d&&void 0===d[V]?!0:a.$eval(d[V]),J=angular.isDefined(U)?U:J,J&&a.$on("$locationChangeSuccess",function(){M.isOpen&&t()}),a.$on("$destroy",function(){S(),w(),o.remove(M),M=null})}}}}}]}).directive("uibTooltipTemplateTransclude",["$animate","$sce","$compile","$templateRequest",function(a,b,c,d){return{link:function(e,f,g){var h,i,j,k=e.$eval(g.tooltipTemplateTranscludeScope),l=0,m=function(){i&&(i.remove(),i=null),h&&(h.$destroy(),h=null),j&&(a.leave(j).then(function(){i=null}),i=j,j=null)};e.$watch(b.parseAsResourceUrl(g.uibTooltipTemplateTransclude),function(b){var g=++l;b?(d(b,!0).then(function(d){if(g===l){var e=k.$new(),i=d,n=c(i)(e,function(b){m(),a.enter(b,f)});h=e,j=n,h.$emit("$includeContentLoaded",b)}},function(){g===l&&(m(),e.$emit("$includeContentError",b))}),e.$emit("$includeContentRequested",b)):m()}),e.$on("$destroy",m)}}}]).directive("uibTooltipClasses",["$uibPosition",function(a){return{restrict:"A",link:function(b,c,d){if(b.placement){var e=a.parsePlacement(b.placement);c.addClass(e[0])}else c.addClass("top");b.popupClass&&c.addClass(b.popupClass),b.animation()&&c.addClass(d.tooltipAnimationClass)}}}]).directive("uibTooltipPopup",function(){return{replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-popup.html"}}).directive("uibTooltip",["$uibTooltip",function(a){return a("uibTooltip","tooltip","mouseenter")}]).directive("uibTooltipTemplatePopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/tooltip/tooltip-template-popup.html"}}).directive("uibTooltipTemplate",["$uibTooltip",function(a){return a("uibTooltipTemplate","tooltip","mouseenter",{useContentExp:!0})}]).directive("uibTooltipHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-html-popup.html"}}).directive("uibTooltipHtml",["$uibTooltip",function(a){return a("uibTooltipHtml","tooltip","mouseenter",{useContentExp:!0})}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("uibPopoverTemplatePopup",function(){return{replace:!0,scope:{title:"@",contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/popover/popover-template.html"}}).directive("uibPopoverTemplate",["$uibTooltip",function(a){return a("uibPopoverTemplate","popover","click",{useContentExp:!0})}]).directive("uibPopoverHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",title:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover-html.html"}}).directive("uibPopoverHtml",["$uibTooltip",function(a){return a("uibPopoverHtml","popover","click",{useContentExp:!0})}]).directive("uibPopoverPopup",function(){return{replace:!0,scope:{title:"@",content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover.html"}}).directive("uibPopover",["$uibTooltip",function(a){return a("uibPopover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("uibProgressConfig",{animate:!0,max:100}).controller("UibProgressController",["$scope","$attrs","uibProgressConfig",function(a,b,c){var d=this,e=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.bars=[],a.max=angular.isDefined(a.max)?a.max:c.max,this.addBar=function(b,c,f){e||c.css({transition:"none"}),this.bars.push(b),b.max=a.max,b.title=f&&angular.isDefined(f.title)?f.title:"progressbar",b.$watch("value",function(a){b.recalculatePercentage()}),b.recalculatePercentage=function(){var a=d.bars.reduce(function(a,b){return b.percent=+(100*b.value/b.max).toFixed(2),a+b.percent},0);a>100&&(b.percent-=a-100)},b.$on("$destroy",function(){c=null,d.removeBar(b)})},this.removeBar=function(a){this.bars.splice(this.bars.indexOf(a),1),this.bars.forEach(function(a){a.recalculatePercentage()})},a.$watch("max",function(b){d.bars.forEach(function(b){b.max=a.max,b.recalculatePercentage()})})}]).directive("uibProgress",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",require:"uibProgress",scope:{max:"=?"},templateUrl:"uib/template/progressbar/progress.html"}}).directive("uibBar",function(){return{replace:!0,transclude:!0,require:"^uibProgress",scope:{value:"=",type:"@"},templateUrl:"uib/template/progressbar/bar.html",link:function(a,b,c,d){d.addBar(a,b,c)}}}).directive("uibProgressbar",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",scope:{value:"=",max:"=?",type:"@"},templateUrl:"uib/template/progressbar/progressbar.html",link:function(a,b,c,d){d.addBar(a,angular.element(b.children()[0]),{title:c.title})}}}),angular.module("ui.bootstrap.rating",[]).constant("uibRatingConfig",{max:5,stateOn:null,stateOff:null,titles:["one","two","three","four","five"]}).controller("UibRatingController",["$scope","$attrs","uibRatingConfig",function(a,b,c){var d={$setViewValue:angular.noop};this.init=function(e){d=e,d.$render=this.render,d.$formatters.push(function(a){return angular.isNumber(a)&&a<<0!==a&&(a=Math.round(a)),a}),this.stateOn=angular.isDefined(b.stateOn)?a.$parent.$eval(b.stateOn):c.stateOn,this.stateOff=angular.isDefined(b.stateOff)?a.$parent.$eval(b.stateOff):c.stateOff;var f=angular.isDefined(b.titles)?a.$parent.$eval(b.titles):c.titles;this.titles=angular.isArray(f)&&f.length>0?f:c.titles;var g=angular.isDefined(b.ratingStates)?a.$parent.$eval(b.ratingStates):new Array(angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max);a.range=this.buildTemplateObjects(g)},this.buildTemplateObjects=function(a){for(var b=0,c=a.length;c>b;b++)a[b]=angular.extend({index:b},{stateOn:this.stateOn,stateOff:this.stateOff,title:this.getTitle(b)},a[b]);return a},this.getTitle=function(a){return a>=this.titles.length?a+1:this.titles[a]},a.rate=function(b){!a.readonly&&b>=0&&b<=a.range.length&&(d.$setViewValue(d.$viewValue===b?0:b),d.$render())},a.enter=function(b){a.readonly||(a.value=b),a.onHover({value:b})},a.reset=function(){a.value=d.$viewValue,a.onLeave()},a.onKeydown=function(b){/(37|38|39|40)/.test(b.which)&&(b.preventDefault(),b.stopPropagation(),a.rate(a.value+(38===b.which||39===b.which?1:-1)))},this.render=function(){a.value=d.$viewValue}}]).directive("uibRating",function(){return{require:["uibRating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"UibRatingController",templateUrl:"uib/template/rating/rating.html",replace:!0,link:function(a,b,c,d){var e=d[0],f=d[1];e.init(f)}}}),angular.module("ui.bootstrap.tabs",[]).controller("UibTabsetController",["$scope",function(a){var b=this,c=b.tabs=a.tabs=[];b.select=function(a){angular.forEach(c,function(b){b.active&&b!==a&&(b.active=!1,b.onDeselect(),a.selectCalled=!1)}),a.active=!0,a.selectCalled||(a.onSelect(),a.selectCalled=!0)},b.addTab=function(a){c.push(a),1===c.length&&a.active!==!1?a.active=!0:a.active?b.select(a):a.active=!1},b.removeTab=function(a){var e=c.indexOf(a);if(a.active&&c.length>1&&!d){var f=e===c.length-1?e-1:e+1;b.select(c[f])}c.splice(e,1)};var d;a.$on("$destroy",function(){d=!0})}]).directive("uibTabset",function(){return{transclude:!0,replace:!0,scope:{type:"@"},controller:"UibTabsetController",templateUrl:"uib/template/tabs/tabset.html",link:function(a,b,c){a.vertical=angular.isDefined(c.vertical)?a.$parent.$eval(c.vertical):!1,a.justified=angular.isDefined(c.justified)?a.$parent.$eval(c.justified):!1}}}).directive("uibTab",["$parse",function(a){return{require:"^uibTabset",replace:!0,templateUrl:"uib/template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},controllerAs:"tab",link:function(b,c,d,e,f){b.$watch("active",function(a){a&&e.select(b)}),b.disabled=!1,d.disable&&b.$parent.$watch(a(d.disable),function(a){b.disabled=!!a}),b.select=function(){b.disabled||(b.active=!0)},e.addTab(b),b.$on("$destroy",function(){e.removeTab(b)}),b.$transcludeFn=f}}}]).directive("uibTabHeadingTransclude",function(){return{restrict:"A",require:"^uibTab",link:function(a,b){a.$watch("headingElement",function(a){a&&(b.html(""),b.append(a))})}}}).directive("uibTabContentTransclude",function(){function a(a){return a.tagName&&(a.hasAttribute("uib-tab-heading")||a.hasAttribute("data-uib-tab-heading")||a.hasAttribute("x-uib-tab-heading")||"uib-tab-heading"===a.tagName.toLowerCase()||"data-uib-tab-heading"===a.tagName.toLowerCase()||"x-uib-tab-heading"===a.tagName.toLowerCase())}return{restrict:"A",require:"^uibTabset",link:function(b,c,d){var e=b.$eval(d.uibTabContentTransclude);e.$transcludeFn(e.$parent,function(b){angular.forEach(b,function(b){a(b)?e.headingElement=b:c.append(b)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("uibTimepickerConfig",{hourStep:1,minuteStep:1,secondStep:1,showMeridian:!0,showSeconds:!1,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0,templateUrl:"uib/template/timepicker/timepicker.html"}).controller("UibTimepickerController",["$scope","$element","$attrs","$parse","$log","$locale","uibTimepickerConfig",function(a,b,c,d,e,f,g){function h(){var b=+a.hours,c=a.showMeridian?b>0&&13>b:b>=0&&24>b;return c?(a.showMeridian&&(12===b&&(b=0),a.meridian===t[1]&&(b+=12)),b):void 0}function i(){var b=+a.minutes;return b>=0&&60>b?b:void 0}function j(){var b=+a.seconds;return b>=0&&60>b?b:void 0}function k(a){return null===a?"":angular.isDefined(a)&&a.toString().length<2?"0"+a:a.toString()}function l(a){m(),s.$setViewValue(new Date(r)),n(a)}function m(){s.$setValidity("time",!0),a.invalidHours=!1,a.invalidMinutes=!1,a.invalidSeconds=!1}function n(b){if(s.$modelValue){var c=r.getHours(),d=r.getMinutes(),e=r.getSeconds();a.showMeridian&&(c=0===c||12===c?12:c%12),a.hours="h"===b?c:k(c),"m"!==b&&(a.minutes=k(d)),a.meridian=r.getHours()<12?t[0]:t[1],"s"!==b&&(a.seconds=k(e)),a.meridian=r.getHours()<12?t[0]:t[1]}else a.hours=null,a.minutes=null,a.seconds=null,a.meridian=t[0]}function o(a){r=q(r,a),l()}function p(a,b){return q(a,60*b)}function q(a,b){var c=new Date(a.getTime()+1e3*b),d=new Date(a);return d.setHours(c.getHours(),c.getMinutes(),c.getSeconds()),d}var r=new Date,s={$setViewValue:angular.noop},t=angular.isDefined(c.meridians)?a.$parent.$eval(c.meridians):g.meridians||f.DATETIME_FORMATS.AMPMS;a.tabindex=angular.isDefined(c.tabindex)?c.tabindex:0,b.removeAttr("tabindex"),this.init=function(b,d){s=b,s.$render=this.render,s.$formatters.unshift(function(a){return a?new Date(a):null});var e=d.eq(0),f=d.eq(1),h=d.eq(2),i=angular.isDefined(c.mousewheel)?a.$parent.$eval(c.mousewheel):g.mousewheel;i&&this.setupMousewheelEvents(e,f,h);var j=angular.isDefined(c.arrowkeys)?a.$parent.$eval(c.arrowkeys):g.arrowkeys;j&&this.setupArrowkeyEvents(e,f,h),a.readonlyInput=angular.isDefined(c.readonlyInput)?a.$parent.$eval(c.readonlyInput):g.readonlyInput,this.setupInputEvents(e,f,h)};var u=g.hourStep;c.hourStep&&a.$parent.$watch(d(c.hourStep),function(a){u=+a});var v=g.minuteStep;c.minuteStep&&a.$parent.$watch(d(c.minuteStep),function(a){v=+a});var w;a.$parent.$watch(d(c.min),function(a){var b=new Date(a);w=isNaN(b)?void 0:b});var x;a.$parent.$watch(d(c.max),function(a){var b=new Date(a);x=isNaN(b)?void 0:b});var y=!1;c.ngDisabled&&a.$parent.$watch(d(c.ngDisabled),function(a){y=a}),a.noIncrementHours=function(){var a=p(r,60*u);return y||a>x||r>a&&w>a},a.noDecrementHours=function(){var a=p(r,60*-u);return y||w>a||a>r&&a>x},a.noIncrementMinutes=function(){var a=p(r,v);return y||a>x||r>a&&w>a},a.noDecrementMinutes=function(){var a=p(r,-v);return y||w>a||a>r&&a>x},a.noIncrementSeconds=function(){var a=q(r,z);return y||a>x||r>a&&w>a},a.noDecrementSeconds=function(){var a=q(r,-z);return y||w>a||a>r&&a>x},a.noToggleMeridian=function(){return r.getHours()<12?y||p(r,720)>x:y||p(r,-720)<w};var z=g.secondStep;c.secondStep&&a.$parent.$watch(d(c.secondStep),function(a){z=+a}),a.showSeconds=g.showSeconds,c.showSeconds&&a.$parent.$watch(d(c.showSeconds),function(b){a.showSeconds=!!b}),a.showMeridian=g.showMeridian,c.showMeridian&&a.$parent.$watch(d(c.showMeridian),function(b){if(a.showMeridian=!!b,s.$error.time){var c=h(),d=i();angular.isDefined(c)&&angular.isDefined(d)&&(r.setHours(c),l())}else n()}),this.setupMousewheelEvents=function(b,c,d){var e=function(a){a.originalEvent&&(a=a.originalEvent);var b=a.wheelDelta?a.wheelDelta:-a.deltaY;return a.detail||b>0};b.bind("mousewheel wheel",function(b){y||a.$apply(e(b)?a.incrementHours():a.decrementHours()),b.preventDefault()}),c.bind("mousewheel wheel",function(b){y||a.$apply(e(b)?a.incrementMinutes():a.decrementMinutes()),b.preventDefault()}),d.bind("mousewheel wheel",function(b){y||a.$apply(e(b)?a.incrementSeconds():a.decrementSeconds()),b.preventDefault()})},this.setupArrowkeyEvents=function(b,c,d){b.bind("keydown",function(b){y||(38===b.which?(b.preventDefault(),a.incrementHours(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementHours(),a.$apply()))}),c.bind("keydown",function(b){y||(38===b.which?(b.preventDefault(),a.incrementMinutes(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementMinutes(),a.$apply()))}),d.bind("keydown",function(b){y||(38===b.which?(b.preventDefault(),a.incrementSeconds(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementSeconds(),a.$apply()))})},this.setupInputEvents=function(b,c,d){if(a.readonlyInput)return a.updateHours=angular.noop,a.updateMinutes=angular.noop,void(a.updateSeconds=angular.noop);var e=function(b,c,d){s.$setViewValue(null),s.$setValidity("time",!1),angular.isDefined(b)&&(a.invalidHours=b),angular.isDefined(c)&&(a.invalidMinutes=c),angular.isDefined(d)&&(a.invalidSeconds=d)};a.updateHours=function(){var a=h(),b=i();s.$setDirty(),angular.isDefined(a)&&angular.isDefined(b)?(r.setHours(a),r.setMinutes(b),w>r||r>x?e(!0):l("h")):e(!0)},b.bind("blur",function(b){s.$setTouched(),null===a.hours||""===a.hours?e(!0):!a.invalidHours&&a.hours<10&&a.$apply(function(){a.hours=k(a.hours)})}),a.updateMinutes=function(){var a=i(),b=h();s.$setDirty(),angular.isDefined(a)&&angular.isDefined(b)?(r.setHours(b),r.setMinutes(a),w>r||r>x?e(void 0,!0):l("m")):e(void 0,!0)},c.bind("blur",function(b){s.$setTouched(),null===a.minutes?e(void 0,!0):!a.invalidMinutes&&a.minutes<10&&a.$apply(function(){a.minutes=k(a.minutes)})}),a.updateSeconds=function(){var a=j();s.$setDirty(),angular.isDefined(a)?(r.setSeconds(a),l("s")):e(void 0,void 0,!0)},d.bind("blur",function(b){!a.invalidSeconds&&a.seconds<10&&a.$apply(function(){a.seconds=k(a.seconds)})})},this.render=function(){var b=s.$viewValue;isNaN(b)?(s.$setValidity("time",!1),e.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(b&&(r=b),w>r||r>x?(s.$setValidity("time",!1),a.invalidHours=!0,a.invalidMinutes=!0):m(),n())},a.showSpinners=angular.isDefined(c.showSpinners)?a.$parent.$eval(c.showSpinners):g.showSpinners,a.incrementHours=function(){a.noIncrementHours()||o(60*u*60)},a.decrementHours=function(){a.noDecrementHours()||o(60*-u*60)},a.incrementMinutes=function(){a.noIncrementMinutes()||o(60*v)},a.decrementMinutes=function(){a.noDecrementMinutes()||o(60*-v)},a.incrementSeconds=function(){a.noIncrementSeconds()||o(z)},a.decrementSeconds=function(){a.noDecrementSeconds()||o(-z)},a.toggleMeridian=function(){var b=i(),c=h();a.noToggleMeridian()||(angular.isDefined(b)&&angular.isDefined(c)?o(720*(r.getHours()<12?60:-60)):a.meridian=a.meridian===t[0]?t[1]:t[0])},a.blur=function(){s.$setTouched()}}]).directive("uibTimepicker",["uibTimepickerConfig",function(a){return{require:["uibTimepicker","?^ngModel"],controller:"UibTimepickerController",controllerAs:"timepicker",replace:!0,scope:{},templateUrl:function(b,c){return c.templateUrl||a.templateUrl},link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f,b.find("input"))}}}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.debounce","ui.bootstrap.position"]).factory("uibTypeaheadParser",["$parse",function(a){var b=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(c){var d=c.match(b);if(!d)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+c+'".');return{itemName:d[3],source:a(d[4]),viewMapper:a(d[2]||d[1]),modelMapper:a(d[1])}}}}]).controller("UibTypeaheadController",["$scope","$element","$attrs","$compile","$parse","$q","$timeout","$document","$window","$rootScope","$$debounce","$uibPosition","uibTypeaheadParser",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){N.moveInProgress||(N.moveInProgress=!0,N.$digest()),Y()}function o(){N.position=D?l.offset(b):l.position(b),N.position.top+=b.prop("offsetHeight")}var p,q,r=[9,13,27,38,40],s=200,t=a.$eval(c.typeaheadMinLength);t||0===t||(t=1);var u=a.$eval(c.typeaheadWaitMs)||0,v=a.$eval(c.typeaheadEditable)!==!1;a.$watch(c.typeaheadEditable,function(a){v=a!==!1});var w,x,y=e(c.typeaheadLoading).assign||angular.noop,z=e(c.typeaheadOnSelect),A=angular.isDefined(c.typeaheadSelectOnBlur)?a.$eval(c.typeaheadSelectOnBlur):!1,B=e(c.typeaheadNoResults).assign||angular.noop,C=c.typeaheadInputFormatter?e(c.typeaheadInputFormatter):void 0,D=c.typeaheadAppendToBody?a.$eval(c.typeaheadAppendToBody):!1,E=c.typeaheadAppendTo?a.$eval(c.typeaheadAppendTo):null,F=a.$eval(c.typeaheadFocusFirst)!==!1,G=c.typeaheadSelectOnExact?a.$eval(c.typeaheadSelectOnExact):!1,H=e(c.typeaheadIsOpen).assign||angular.noop,I=a.$eval(c.typeaheadShowHint)||!1,J=e(c.ngModel),K=e(c.ngModel+"($$$p)"),L=function(b,c){return angular.isFunction(J(a))&&q&&q.$options&&q.$options.getterSetter?K(b,{$$$p:c}):J.assign(b,c)},M=m.parse(c.uibTypeahead),N=a.$new(),O=a.$on("$destroy",function(){N.$destroy()});N.$on("$destroy",O);var P="typeahead-"+N.$id+"-"+Math.floor(1e4*Math.random());b.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":P});var Q,R;I&&(Q=angular.element("<div></div>"),Q.css("position","relative"),b.after(Q),R=b.clone(),R.attr("placeholder",""),R.val(""),R.css({position:"absolute",top:"0px",left:"0px","border-color":"transparent","box-shadow":"none",opacity:1,background:"none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255)",color:"#999"}),b.css({position:"relative","vertical-align":"top","background-color":"transparent"}),Q.append(R),R.after(b));var S=angular.element("<div uib-typeahead-popup></div>");S.attr({id:P,matches:"matches",active:"activeIdx",select:"select(activeIdx, evt)","move-in-progress":"moveInProgress",query:"query",position:"position","assign-is-open":"assignIsOpen(isOpen)",debounce:"debounceUpdate"}),angular.isDefined(c.typeaheadTemplateUrl)&&S.attr("template-url",c.typeaheadTemplateUrl),angular.isDefined(c.typeaheadPopupTemplateUrl)&&S.attr("popup-template-url",c.typeaheadPopupTemplateUrl);var T=function(){I&&R.val("")},U=function(){N.matches=[],N.activeIdx=-1,b.attr("aria-expanded",!1),T()},V=function(a){return P+"-option-"+a};N.$watch("activeIdx",function(a){0>a?b.removeAttr("aria-activedescendant"):b.attr("aria-activedescendant",V(a))});var W=function(a,b){return N.matches.length>b&&a?a.toUpperCase()===N.matches[b].label.toUpperCase():!1},X=function(c,d){var e={$viewValue:c};y(a,!0),B(a,!1),f.when(M.source(a,e)).then(function(f){var g=c===p.$viewValue;if(g&&w)if(f&&f.length>0){N.activeIdx=F?0:-1,B(a,!1),N.matches.length=0;for(var h=0;h<f.length;h++)e[M.itemName]=f[h],N.matches.push({id:V(h),label:M.viewMapper(N,e),model:f[h]});if(N.query=c,o(),b.attr("aria-expanded",!0),G&&1===N.matches.length&&W(c,0)&&(angular.isNumber(N.debounceUpdate)||angular.isObject(N.debounceUpdate)?k(function(){N.select(0,d)},angular.isNumber(N.debounceUpdate)?N.debounceUpdate:N.debounceUpdate["default"]):N.select(0,d)),I){var i=N.matches[0].label;c.length>0&&i.slice(0,c.length).toUpperCase()===c.toUpperCase()?R.val(c+i.slice(c.length)):R.val("")}}else U(),B(a,!0);g&&y(a,!1)},function(){U(),y(a,!1),B(a,!0)})};D&&(angular.element(i).on("resize",n),h.find("body").on("scroll",n));var Y=k(function(){N.matches.length&&o(),N.moveInProgress=!1},s);N.moveInProgress=!1,N.query=void 0;var Z,$=function(a){Z=g(function(){X(a)},u)},_=function(){Z&&g.cancel(Z)};U(),N.assignIsOpen=function(b){H(a,b)},N.select=function(d,e){var f,h,i={};x=!0,i[M.itemName]=h=N.matches[d].model,f=M.modelMapper(a,i),L(a,f),p.$setValidity("editable",!0),p.$setValidity("parse",!0),z(a,{$item:h,$model:f,$label:M.viewMapper(a,i),$event:e}),U(),N.$eval(c.typeaheadFocusOnSelect)!==!1&&g(function(){b[0].focus()},0,!1)},b.on("keydown",function(a){if(0!==N.matches.length&&-1!==r.indexOf(a.which)){if(-1===N.activeIdx&&(9===a.which||13===a.which))return U(),void N.$digest();a.preventDefault();var b;switch(a.which){case 9:case 13:N.$apply(function(){angular.isNumber(N.debounceUpdate)||angular.isObject(N.debounceUpdate)?k(function(){N.select(N.activeIdx,a)},angular.isNumber(N.debounceUpdate)?N.debounceUpdate:N.debounceUpdate["default"]):N.select(N.activeIdx,a)});break;case 27:a.stopPropagation(),U(),N.$digest();break;case 38:N.activeIdx=(N.activeIdx>0?N.activeIdx:N.matches.length)-1,N.$digest(),b=S.find("li")[N.activeIdx],b.parentNode.scrollTop=b.offsetTop;break;case 40:N.activeIdx=(N.activeIdx+1)%N.matches.length,N.$digest(),b=S.find("li")[N.activeIdx],b.parentNode.scrollTop=b.offsetTop}}}),b.bind("focus",function(a){w=!0,0!==t||p.$viewValue||g(function(){X(p.$viewValue,a)},0)}),b.bind("blur",function(a){A&&N.matches.length&&-1!==N.activeIdx&&!x&&(x=!0,N.$apply(function(){angular.isObject(N.debounceUpdate)&&angular.isNumber(N.debounceUpdate.blur)?k(function(){N.select(N.activeIdx,a)},N.debounceUpdate.blur):N.select(N.activeIdx,a)})),!v&&p.$error.editable&&(p.$viewValue="",b.val("")),w=!1,x=!1});var aa=function(a){b[0]!==a.target&&3!==a.which&&0!==N.matches.length&&(U(),j.$$phase||N.$digest())};h.on("click",aa),a.$on("$destroy",function(){h.off("click",aa),(D||E)&&ba.remove(),D&&(angular.element(i).off("resize",n),h.find("body").off("scroll",n)),S.remove(),I&&Q.remove()});var ba=d(S)(N);D?h.find("body").append(ba):E?angular.element(E).eq(0).append(ba):b.after(ba),this.init=function(b,c){p=b,q=c,N.debounceUpdate=p.$options&&e(p.$options.debounce)(a),p.$parsers.unshift(function(b){return w=!0,0===t||b&&b.length>=t?u>0?(_(),$(b)):X(b):(y(a,!1),_(),U()),v?b:b?void p.$setValidity("editable",!1):(p.$setValidity("editable",!0),null)}),p.$formatters.push(function(b){var c,d,e={};return v||p.$setValidity("editable",!0),C?(e.$model=b,C(a,e)):(e[M.itemName]=b,c=M.viewMapper(a,e),e[M.itemName]=void 0,d=M.viewMapper(a,e),c!==d?c:b)})}}]).directive("uibTypeahead",function(){return{controller:"UibTypeaheadController",require:["ngModel","^?ngModelOptions","uibTypeahead"],link:function(a,b,c,d){d[2].init(d[0],d[1])}}}).directive("uibTypeaheadPopup",["$$debounce",function(a){return{scope:{matches:"=",query:"=",active:"=",position:"&",moveInProgress:"=",select:"&",assignIsOpen:"&",debounce:"&"},replace:!0,templateUrl:function(a,b){return b.popupTemplateUrl||"uib/template/typeahead/typeahead-popup.html"},link:function(b,c,d){b.templateUrl=d.templateUrl,b.isOpen=function(){var a=b.matches.length>0;return b.assignIsOpen({isOpen:a}),a},b.isActive=function(a){return b.active===a},b.selectActive=function(a){b.active=a},b.selectMatch=function(c,d){var e=b.debounce();angular.isNumber(e)||angular.isObject(e)?a(function(){b.select({activeIdx:c,evt:d})},angular.isNumber(e)?e:e["default"]):b.select({activeIdx:c,evt:d})}}}}]).directive("uibTypeaheadMatch",["$templateRequest","$compile","$parse",function(a,b,c){return{scope:{index:"=",match:"=",query:"="},link:function(d,e,f){var g=c(f.templateUrl)(d.$parent)||"uib/template/typeahead/typeahead-match.html";a(g).then(function(a){var c=angular.element(a.trim());e.replaceWith(c),b(c)(d)})}}}]).filter("uibTypeaheadHighlight",["$sce","$injector","$log",function(a,b,c){function d(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function e(a){return/<.*>/g.test(a)}var f;return f=b.has("$sanitize"),function(b,g){return!f&&e(b)&&c.warn("Unsafe use of typeahead please use ngSanitize"),b=g?(""+b).replace(new RegExp(d(g),"gi"),"<strong>$&</strong>"):b,f||(b=a.trustAsHtml(b)),b}}]),angular.module("uib/template/accordion/accordion-group.html",[]).run(["$templateCache",function(a){a.put("uib/template/accordion/accordion-group.html",'<div class="panel" ng-class="panelClass || \'panel-default\'">\n  <div class="panel-heading" ng-keypress="toggleOpen($event)">\n    <h4 class="panel-title">\n      <div tabindex="0" class="accordion-toggle" ng-click="toggleOpen()" uib-accordion-transclude="heading"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></div>\n    </h4>\n  </div>\n  <div class="panel-collapse collapse" uib-collapse="!isOpen">\n          <div class="panel-body" ng-transclude></div>\n  </div>\n</div>\n')}]),angular.module("uib/template/accordion/accordion.html",[]).run(["$templateCache",function(a){
-a.put("uib/template/accordion/accordion.html",'<div class="panel-group" ng-transclude></div>')}]),angular.module("uib/template/alert/alert.html",[]).run(["$templateCache",function(a){a.put("uib/template/alert/alert.html",'<div class="alert" ng-class="[\'alert-\' + (type || \'warning\'), closeable ? \'alert-dismissible\' : null]" role="alert">\n    <button ng-show="closeable" type="button" class="close" ng-click="close({$event: $event})">\n        <span aria-hidden="true">&times;</span>\n        <span class="sr-only">Close</span>\n    </button>\n    <div ng-transclude></div>\n</div>\n')}]),angular.module("uib/template/carousel/carousel.html",[]).run(["$templateCache",function(a){a.put("uib/template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n  <div class="carousel-inner" ng-transclude></div>\n  <a role="button" href class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1">\n    <span aria-hidden="true" class="glyphicon glyphicon-chevron-left"></span>\n    <span class="sr-only">previous</span>\n  </a>\n  <a role="button" href class="right carousel-control" ng-click="next()" ng-show="slides.length > 1">\n    <span aria-hidden="true" class="glyphicon glyphicon-chevron-right"></span>\n    <span class="sr-only">next</span>\n  </a>\n  <ol class="carousel-indicators" ng-show="slides.length > 1">\n    <li ng-repeat="slide in slides | orderBy:indexOfSlide track by $index" ng-class="{ active: isActive(slide) }" ng-click="select(slide)">\n      <span class="sr-only">slide {{ $index + 1 }} of {{ slides.length }}<span ng-if="isActive(slide)">, currently active</span></span>\n    </li>\n  </ol>\n</div>')}]),angular.module("uib/template/carousel/slide.html",[]).run(["$templateCache",function(a){a.put("uib/template/carousel/slide.html",'<div ng-class="{\n    \'active\': active\n  }" class="item text-center" ng-transclude></div>\n')}]),angular.module("uib/template/datepicker/datepicker.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/datepicker.html",'<div class="uib-datepicker" ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n  <uib-daypicker ng-switch-when="day" tabindex="0"></uib-daypicker>\n  <uib-monthpicker ng-switch-when="month" tabindex="0"></uib-monthpicker>\n  <uib-yearpicker ng-switch-when="year" tabindex="0"></uib-yearpicker>\n</div>')}]),angular.module("uib/template/datepicker/day.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/day.html",'<table class="uib-daypicker" role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th colspan="{{::5 + showWeeks}}"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n    <tr>\n      <th ng-if="showWeeks" class="text-center"></th>\n      <th ng-repeat="label in ::labels track by $index" class="text-center"><small aria-label="{{::label.full}}">{{::label.abbr}}</small></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr class="uib-weeks" ng-repeat="row in rows track by $index">\n      <td ng-if="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>\n      <td ng-repeat="dt in row" class="uib-day text-center" role="gridcell"\n        id="{{::dt.uid}}"\n        ng-class="::dt.customClass">\n        <button type="button" style="min-width:100%;" class="btn btn-default btn-sm"\n          uib-is-class="\n            \'btn-info\' for selectedDt,\n            \'active\' for activeDt\n            on dt"\n          ng-click="select(dt.date)"\n          ng-disabled="::dt.disabled"\n          tabindex="-1"><span ng-class="::{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{::dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("uib/template/datepicker/month.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/month.html",'<table class="uib-monthpicker" role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr class="uib-months" ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row" class="uib-month text-center" role="gridcell"\n        id="{{::dt.uid}}"\n        ng-class="::dt.customClass">\n        <button type="button" style="min-width:100%;" class="btn btn-default"\n          uib-is-class="\n            \'btn-info\' for selectedDt,\n            \'active\' for activeDt\n            on dt"\n          ng-click="select(dt.date)"\n          ng-disabled="::dt.disabled"\n          tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("uib/template/datepicker/popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/popup.html",'<ul class="uib-datepicker-popup dropdown-menu" dropdown-nested ng-if="isOpen" style="display: block" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)" ng-click="$event.stopPropagation()">\n      <li ng-transclude></li>\n       <li ng-if="showButtonBar" style="padding:10px 9px 2px" class="uib-button-bar">\n                <span class="btn-group pull-left">\n                    <button type="button" class="btn btn-sm btn-info uib-datepicker-current" ng-click="select(\'today\')" ng-disabled="isDisabled(\'today\')">{{ getText(\'current\') }}</button>\n                 <button type="button" class="btn btn-sm btn-danger uib-clear" ng-click="select(null)">{{ getText(\'clear\') }}</button>\n               </span>\n               <button type="button" class="btn btn-sm btn-success pull-right uib-close" ng-click="close()">{{ getText(\'close\') }}</button>\n        </li>\n</ul>\n')}]),angular.module("uib/template/datepicker/year.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/year.html",'<table class="uib-yearpicker" role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th colspan="{{::columns - 2}}"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr class="uib-years" ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row" class="uib-year text-center" role="gridcell"\n        id="{{::dt.uid}}"\n        ng-class="::dt.customClass">\n        <button type="button" style="min-width:100%;" class="btn btn-default"\n          uib-is-class="\n            \'btn-info\' for selectedDt,\n            \'active\' for activeDt\n            on dt"\n          ng-click="select(dt.date)"\n          ng-disabled="::dt.disabled"\n          tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("uib/template/modal/backdrop.html",[]).run(["$templateCache",function(a){a.put("uib/template/modal/backdrop.html",'<div class="modal-backdrop"\n     uib-modal-animation-class="fade"\n     modal-in-class="in"\n     ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n')}]),angular.module("uib/template/modal/window.html",[]).run(["$templateCache",function(a){a.put("uib/template/modal/window.html",'<div modal-render="{{$isRendered}}" tabindex="-1" role="dialog" class="modal"\n    uib-modal-animation-class="fade"\n    modal-in-class="in"\n    ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}">\n    <div class="modal-dialog" ng-class="size ? \'modal-\' + size : \'\'"><div class="modal-content" uib-modal-transclude></div></div>\n</div>\n')}]),angular.module("uib/template/pager/pager.html",[]).run(["$templateCache",function(a){a.put("uib/template/pager/pager.html",'<ul class="pager">\n  <li ng-class="{disabled: noPrevious()||ngDisabled, previous: align}"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n  <li ng-class="{disabled: noNext()||ngDisabled, next: align}"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n</ul>\n')}]),angular.module("uib/template/pagination/pagination.html",[]).run(["$templateCache",function(a){a.put("uib/template/pagination/pagination.html",'<ul class="pagination">\n  <li ng-if="::boundaryLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-first"><a href ng-click="selectPage(1, $event)">{{::getText(\'first\')}}</a></li>\n  <li ng-if="::directionLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-prev"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n  <li ng-repeat="page in pages track by $index" ng-class="{active: page.active,disabled: ngDisabled&&!page.active}" class="pagination-page"><a href ng-click="selectPage(page.number, $event)">{{page.text}}</a></li>\n  <li ng-if="::directionLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-next"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n  <li ng-if="::boundaryLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-last"><a href ng-click="selectPage(totalPages, $event)">{{::getText(\'last\')}}</a></li>\n</ul>\n')}]),angular.module("uib/template/tooltip/tooltip-html-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/tooltip/tooltip-html-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" ng-bind-html="contentExp()"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(a){a.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" bind-html-unsafe="content"></div>\n</div>\n')}]),angular.module("uib/template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/tooltip/tooltip-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]),angular.module("uib/template/tooltip/tooltip-template-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/tooltip/tooltip-template-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner"\n    uib-tooltip-template-transclude="contentExp()"\n    tooltip-template-transclude-scope="originScope()"></div>\n</div>\n')}]),angular.module("uib/template/popover/popover-html.html",[]).run(["$templateCache",function(a){a.put("uib/template/popover/popover-html.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n      <div class="popover-content" ng-bind-html="contentExp()"></div>\n  </div>\n</div>\n')}]),angular.module("uib/template/popover/popover-template.html",[]).run(["$templateCache",function(a){a.put("uib/template/popover/popover-template.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n      <div class="popover-content"\n        uib-tooltip-template-transclude="contentExp()"\n        tooltip-template-transclude-scope="originScope()"></div>\n  </div>\n</div>\n')}]),angular.module("uib/template/popover/popover.html",[]).run(["$templateCache",function(a){a.put("uib/template/popover/popover.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n      <div class="popover-content" ng-bind="content"></div>\n  </div>\n</div>\n')}]),angular.module("uib/template/progressbar/bar.html",[]).run(["$templateCache",function(a){a.put("uib/template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" aria-labelledby="{{::title}}" ng-transclude></div>\n')}]),angular.module("uib/template/progressbar/progress.html",[]).run(["$templateCache",function(a){a.put("uib/template/progressbar/progress.html",'<div class="progress" ng-transclude aria-labelledby="{{::title}}"></div>')}]),angular.module("uib/template/progressbar/progressbar.html",[]).run(["$templateCache",function(a){a.put("uib/template/progressbar/progressbar.html",'<div class="progress">\n  <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" aria-labelledby="{{::title}}" ng-transclude></div>\n</div>\n')}]),angular.module("uib/template/rating/rating.html",[]).run(["$templateCache",function(a){a.put("uib/template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}">\n    <span ng-repeat-start="r in range track by $index" class="sr-only">({{ $index < value ? \'*\' : \' \' }})</span>\n    <i ng-repeat-end ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')" ng-attr-title="{{r.title}}" aria-valuetext="{{r.title}}"></i>\n</span>\n')}]),angular.module("uib/template/tabs/tab.html",[]).run(["$templateCache",function(a){a.put("uib/template/tabs/tab.html",'<li ng-class="{active: active, disabled: disabled}" class="uib-tab">\n  <div ng-click="select()" uib-tab-heading-transclude>{{heading}}</div>\n</li>\n')}]),angular.module("uib/template/tabs/tabset.html",[]).run(["$templateCache",function(a){a.put("uib/template/tabs/tabset.html",'<div>\n  <ul class="nav nav-{{type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude></ul>\n  <div class="tab-content">\n    <div class="tab-pane" \n         ng-repeat="tab in tabs" \n         ng-class="{active: tab.active}"\n         uib-tab-content-transclude="tab">\n    </div>\n  </div>\n</div>\n')}]),angular.module("uib/template/timepicker/timepicker.html",[]).run(["$templateCache",function(a){a.put("uib/template/timepicker/timepicker.html",'<table class="uib-timepicker">\n  <tbody>\n    <tr class="text-center" ng-show="::showSpinners">\n      <td class="uib-increment hours"><a ng-click="incrementHours()" ng-class="{disabled: noIncrementHours()}" class="btn btn-link" ng-disabled="noIncrementHours()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n      <td>&nbsp;</td>\n      <td class="uib-increment minutes"><a ng-click="incrementMinutes()" ng-class="{disabled: noIncrementMinutes()}" class="btn btn-link" ng-disabled="noIncrementMinutes()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n      <td ng-show="showSeconds">&nbsp;</td>\n      <td ng-show="showSeconds" class="uib-increment seconds"><a ng-click="incrementSeconds()" ng-class="{disabled: noIncrementSeconds()}" class="btn btn-link" ng-disabled="noIncrementSeconds()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n      <td ng-show="showMeridian"></td>\n    </tr>\n    <tr>\n      <td class="form-group uib-time hours" ng-class="{\'has-error\': invalidHours}">\n        <input style="width:50px;" type="text" placeholder="HH" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementHours()" ng-blur="blur()">\n      </td>\n      <td class="uib-separator">:</td>\n      <td class="form-group uib-time minutes" ng-class="{\'has-error\': invalidMinutes}">\n        <input style="width:50px;" type="text" placeholder="MM" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementMinutes()" ng-blur="blur()">\n      </td>\n      <td ng-show="showSeconds" class="uib-separator">:</td>\n      <td class="form-group uib-time seconds" ng-class="{\'has-error\': invalidSeconds}" ng-show="showSeconds">\n        <input style="width:50px;" type="text" ng-model="seconds" ng-change="updateSeconds()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementSeconds()" ng-blur="blur()">\n      </td>\n      <td ng-show="showMeridian" class="uib-time am-pm"><button type="button" ng-class="{disabled: noToggleMeridian()}" class="btn btn-default text-center" ng-click="toggleMeridian()" ng-disabled="noToggleMeridian()" tabindex="{{::tabindex}}">{{meridian}}</button></td>\n    </tr>\n    <tr class="text-center" ng-show="::showSpinners">\n      <td class="uib-decrement hours"><a ng-click="decrementHours()" ng-class="{disabled: noDecrementHours()}" class="btn btn-link" ng-disabled="noDecrementHours()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n      <td>&nbsp;</td>\n      <td class="uib-decrement minutes"><a ng-click="decrementMinutes()" ng-class="{disabled: noDecrementMinutes()}" class="btn btn-link" ng-disabled="noDecrementMinutes()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n      <td ng-show="showSeconds">&nbsp;</td>\n      <td ng-show="showSeconds" class="uib-decrement seconds"><a ng-click="decrementSeconds()" ng-class="{disabled: noDecrementSeconds()}" class="btn btn-link" ng-disabled="noDecrementSeconds()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n      <td ng-show="showMeridian"></td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("uib/template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(a){a.put("uib/template/typeahead/typeahead-match.html",'<a href tabindex="-1" ng-bind-html="match.label | uibTypeaheadHighlight:query"></a>\n')}]),angular.module("uib/template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-show="isOpen() && !moveInProgress" ng-style="{top: position().top+\'px\', left: position().left+\'px\'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">\n    <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index, $event)" role="option" id="{{::match.id}}">\n        <div uib-typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>\n    </li>\n</ul>\n')}]),angular.module("ui.bootstrap.carousel").run(function(){!angular.$$csp().noInlineStyle&&angular.element(document).find("head").prepend('<style type="text/css">.ng-animate.item:not(.left):not(.right){-webkit-transition:0s ease-in-out left;transition:0s ease-in-out left}</style>')}),angular.module("ui.bootstrap.tabs").run(function(){!angular.$$csp().noInlineStyle&&angular.element(document).find("head").prepend('<style type="text/css">.uib-tab > div{position:relative;display:block;padding:10px 15px;outline:0;color:#337ab7;}.uib-tab > div:focus,.uib-tab > div:hover{background-color:#eee;color:#23527c;}.uib-tab.disabled > div{color:#777;}.uib-tab.disabled > div:focus,.uib-tab.disabled > div:hover{color:#777;cursor:not-allowed;background-color:transparent;}.nav-tabs > .uib-tab > div{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0;}.nav-tabs > .uib-tab > div:hover{border-color:#eee #eee #ddd;}.nav-tabs > .uib-tab.active > div,.nav-tabs > .uib-tab.active > div:focus,.nav-tabs > .uib-tab.active > div:hover{color:#555;cursor:default;background-color:#fff;border-color:#ddd #ddd transparent #ddd;}.nav-pills > .uib-tab > div{border-radius:4px;}.nav-pills > .uib-tab.active > div,.nav-pills > .uib-tab.active > div:focus,.nav-pills > .uib-tab.active > div:hover{color:#fff;background-color:#337ab7;}</style>')}),function(a){"use strict";"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a():"undefined"!=typeof Package?Sortable=a():window.Sortable=a()}(function(){"use strict";function a(a,b){if(!a||!a.nodeType||1!==a.nodeType)throw"Sortable: `el` must be HTMLElement, and not "+{}.toString.call(a);this.el=a,this.options=b=r({},b),a[L]=this;var c={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(a.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",ignore:"a, img",filter:null,animation:0,setData:function(a,b){a.setData("Text",b.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1};for(var d in c)!(d in b)&&(b[d]=c[d]);V(b);for(var f in this)"_"===f.charAt(0)&&(this[f]=this[f].bind(this));this.nativeDraggable=b.forceFallback?!1:P,e(a,"mousedown",this._onTapStart),e(a,"touchstart",this._onTapStart),this.nativeDraggable&&(e(a,"dragover",this),e(a,"dragenter",this)),T.push(this._onDragOver),b.store&&this.sort(b.store.get(this))}function b(a){v&&v.state!==a&&(h(v,"display",a?"none":""),!a&&v.state&&w.insertBefore(v,s),v.state=a)}function c(a,b,c){if(a){c=c||N,b=b.split(".");var d=b.shift().toUpperCase(),e=new RegExp("\\s("+b.join("|")+")(?=\\s)","g");do if(">*"===d&&a.parentNode===c||(""===d||a.nodeName.toUpperCase()==d)&&(!b.length||((" "+a.className+" ").match(e)||[]).length==b.length))return a;while(a!==c&&(a=a.parentNode))}return null}function d(a){a.dataTransfer&&(a.dataTransfer.dropEffect="move"),a.preventDefault()}function e(a,b,c){a.addEventListener(b,c,!1)}function f(a,b,c){a.removeEventListener(b,c,!1)}function g(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(K," ").replace(" "+b+" "," ");a.className=(d+(c?" "+b:"")).replace(K," ")}}function h(a,b,c){var d=a&&a.style;if(d){if(void 0===c)return N.defaultView&&N.defaultView.getComputedStyle?c=N.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];b in d||(b="-webkit-"+b),d[b]=c+("string"==typeof c?"":"px")}}function i(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;f>e;e++)c(d[e],e);return d}return[]}function j(a,b,c,d,e,f,g){var h=N.createEvent("Event"),i=(a||b[L]).options,j="on"+c.charAt(0).toUpperCase()+c.substr(1);h.initEvent(c,!0,!0),h.to=b,h.from=e||b,h.item=d||b,h.clone=v,h.oldIndex=f,h.newIndex=g,b.dispatchEvent(h),i[j]&&i[j].call(a,h)}function k(a,b,c,d,e,f){var g,h,i=a[L],j=i.options.onMove;return g=N.createEvent("Event"),g.initEvent("move",!0,!0),g.to=b,g.from=a,g.dragged=c,g.draggedRect=d,g.related=e||b,g.relatedRect=f||b.getBoundingClientRect(),a.dispatchEvent(g),j&&(h=j.call(i,g)),h}function l(a){a.draggable=!1}function m(){R=!1}function n(a,b){var c=a.lastElementChild,d=c.getBoundingClientRect();return(b.clientY-(d.top+d.height)>5||b.clientX-(d.right+d.width)>5)&&c}function o(a){for(var b=a.tagName+a.className+a.src+a.href+a.textContent,c=b.length,d=0;c--;)d+=b.charCodeAt(c);return d.toString(36)}function p(a){var b=0;if(!a||!a.parentNode)return-1;for(;a&&(a=a.previousElementSibling);)"TEMPLATE"!==a.nodeName.toUpperCase()&&b++;return b}function q(a,b){var c,d;return function(){void 0===c&&(c=arguments,d=this,setTimeout(function(){1===c.length?a.call(d,c[0]):a.apply(d,c),c=void 0},b))}}function r(a,b){if(a&&b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J={},K=/\s+/g,L="Sortable"+(new Date).getTime(),M=window,N=M.document,O=M.parseInt,P=!!("draggable"in N.createElement("div")),Q=function(a){return a=N.createElement("x"),a.style.cssText="pointer-events:auto","auto"===a.style.pointerEvents}(),R=!1,S=Math.abs,T=([].slice,[]),U=q(function(a,b,c){if(c&&b.scroll){var d,e,f,g,h=b.scrollSensitivity,i=b.scrollSpeed,j=a.clientX,k=a.clientY,l=window.innerWidth,m=window.innerHeight;if(z!==c&&(y=b.scroll,z=c,y===!0)){y=c;do if(y.offsetWidth<y.scrollWidth||y.offsetHeight<y.scrollHeight)break;while(y=y.parentNode)}y&&(d=y,e=y.getBoundingClientRect(),f=(S(e.right-j)<=h)-(S(e.left-j)<=h),g=(S(e.bottom-k)<=h)-(S(e.top-k)<=h)),f||g||(f=(h>=l-j)-(h>=j),g=(h>=m-k)-(h>=k),(f||g)&&(d=M)),(J.vx!==f||J.vy!==g||J.el!==d)&&(J.el=d,J.vx=f,J.vy=g,clearInterval(J.pid),d&&(J.pid=setInterval(function(){d===M?M.scrollTo(M.pageXOffset+f*i,M.pageYOffset+g*i):(g&&(d.scrollTop+=g*i),f&&(d.scrollLeft+=f*i))},24)))}},30),V=function(a){var b=a.group;b&&"object"==typeof b||(b=a.group={name:b}),["pull","put"].forEach(function(a){a in b||(b[a]=!0)}),a.groups=" "+b.name+(b.put.join?" "+b.put.join(" "):"")+" "};return a.prototype={constructor:a,_onTapStart:function(a){var b=this,d=this.el,e=this.options,f=a.type,g=a.touches&&a.touches[0],h=(g||a).target,i=h,k=e.filter;if(!("mousedown"===f&&0!==a.button||e.disabled)&&(h=c(h,e.draggable,d))){if(D=p(h),"function"==typeof k){if(k.call(this,a,h,this))return j(b,i,"filter",h,d,D),void a.preventDefault()}else if(k&&(k=k.split(",").some(function(a){return a=c(i,a.trim(),d),a?(j(b,a,"filter",h,d,D),!0):void 0})))return void a.preventDefault();(!e.handle||c(i,e.handle,d))&&this._prepareDragStart(a,g,h)}},_prepareDragStart:function(a,b,c){var d,f=this,h=f.el,j=f.options,k=h.ownerDocument;c&&!s&&c.parentNode===h&&(G=a,w=h,s=c,t=s.parentNode,x=s.nextSibling,F=j.group,d=function(){f._disableDelayedDrag(),s.draggable=!0,g(s,f.options.chosenClass,!0),f._triggerDragStart(b)},j.ignore.split(",").forEach(function(a){i(s,a.trim(),l)}),e(k,"mouseup",f._onDrop),e(k,"touchend",f._onDrop),e(k,"touchcancel",f._onDrop),j.delay?(e(k,"mouseup",f._disableDelayedDrag),e(k,"touchend",f._disableDelayedDrag),e(k,"touchcancel",f._disableDelayedDrag),e(k,"mousemove",f._disableDelayedDrag),e(k,"touchmove",f._disableDelayedDrag),f._dragStartTimer=setTimeout(d,j.delay)):d())},_disableDelayedDrag:function(){var a=this.el.ownerDocument;clearTimeout(this._dragStartTimer),f(a,"mouseup",this._disableDelayedDrag),f(a,"touchend",this._disableDelayedDrag),f(a,"touchcancel",this._disableDelayedDrag),f(a,"mousemove",this._disableDelayedDrag),f(a,"touchmove",this._disableDelayedDrag)},_triggerDragStart:function(a){a?(G={target:s,clientX:a.clientX,clientY:a.clientY},this._onDragStart(G,"touch")):this.nativeDraggable?(e(s,"dragend",this),e(w,"dragstart",this._onDragStart)):this._onDragStart(G,!0);try{N.selection?N.selection.empty():window.getSelection().removeAllRanges()}catch(b){}},_dragStarted:function(){w&&s&&(g(s,this.options.ghostClass,!0),a.active=this,j(this,w,"start",s,w,D))},_emulateDragOver:function(){if(H){if(this._lastX===H.clientX&&this._lastY===H.clientY)return;this._lastX=H.clientX,this._lastY=H.clientY,Q||h(u,"display","none");var a=N.elementFromPoint(H.clientX,H.clientY),b=a,c=" "+this.options.group.name,d=T.length;if(b)do{if(b[L]&&b[L].options.groups.indexOf(c)>-1){for(;d--;)T[d]({clientX:H.clientX,clientY:H.clientY,target:a,rootEl:b});break}a=b}while(b=b.parentNode);Q||h(u,"display","")}},_onTouchMove:function(b){if(G){a.active||this._dragStarted(),this._appendGhost();var c=b.touches?b.touches[0]:b,d=c.clientX-G.clientX,e=c.clientY-G.clientY,f=b.touches?"translate3d("+d+"px,"+e+"px,0)":"translate("+d+"px,"+e+"px)";I=!0,H=c,h(u,"webkitTransform",f),h(u,"mozTransform",f),h(u,"msTransform",f),h(u,"transform",f),b.preventDefault()}},_appendGhost:function(){if(!u){var a,b=s.getBoundingClientRect(),c=h(s),d=this.options;u=s.cloneNode(!0),g(u,d.ghostClass,!1),g(u,d.fallbackClass,!0),h(u,"top",b.top-O(c.marginTop,10)),h(u,"left",b.left-O(c.marginLeft,10)),h(u,"width",b.width),h(u,"height",b.height),h(u,"opacity","0.8"),h(u,"position","fixed"),h(u,"zIndex","100000"),h(u,"pointerEvents","none"),d.fallbackOnBody&&N.body.appendChild(u)||w.appendChild(u),a=u.getBoundingClientRect(),h(u,"width",2*b.width-a.width),h(u,"height",2*b.height-a.height)}},_onDragStart:function(a,b){var c=a.dataTransfer,d=this.options;this._offUpEvents(),"clone"==F.pull&&(v=s.cloneNode(!0),h(v,"display","none"),w.insertBefore(v,s)),b?("touch"===b?(e(N,"touchmove",this._onTouchMove),e(N,"touchend",this._onDrop),e(N,"touchcancel",this._onDrop)):(e(N,"mousemove",this._onTouchMove),e(N,"mouseup",this._onDrop)),this._loopId=setInterval(this._emulateDragOver,50)):(c&&(c.effectAllowed="move",d.setData&&d.setData.call(this,c,s)),e(N,"drop",this),setTimeout(this._dragStarted,0))},_onDragOver:function(a){var d,e,f,g=this.el,i=this.options,j=i.group,l=j.put,o=F===j,p=i.sort;if(void 0!==a.preventDefault&&(a.preventDefault(),!i.dragoverBubble&&a.stopPropagation()),I=!0,F&&!i.disabled&&(o?p||(f=!w.contains(s)):F.pull&&l&&(F.name===j.name||l.indexOf&&~l.indexOf(F.name)))&&(void 0===a.rootEl||a.rootEl===this.el)){if(U(a,i,this.el),R)return;if(d=c(a.target,i.draggable,g),e=s.getBoundingClientRect(),f)return b(!0),void(v||x?w.insertBefore(s,v||x):p||w.appendChild(s));if(0===g.children.length||g.children[0]===u||g===a.target&&(d=n(g,a))){if(d){if(d.animated)return;r=d.getBoundingClientRect()}b(o),k(w,g,s,e,d,r)!==!1&&(s.contains(g)||(g.appendChild(s),t=g),this._animate(e,s),d&&this._animate(r,d))}else if(d&&!d.animated&&d!==s&&void 0!==d.parentNode[L]){A!==d&&(A=d,B=h(d),C=h(d.parentNode));
-var q,r=d.getBoundingClientRect(),y=r.right-r.left,z=r.bottom-r.top,D=/left|right|inline/.test(B.cssFloat+B.display)||"flex"==C.display&&0===C["flex-direction"].indexOf("row"),E=d.offsetWidth>s.offsetWidth,G=d.offsetHeight>s.offsetHeight,H=(D?(a.clientX-r.left)/y:(a.clientY-r.top)/z)>.5,J=d.nextElementSibling,K=k(w,g,s,e,d,r);if(K!==!1){if(R=!0,setTimeout(m,30),b(o),1===K||-1===K)q=1===K;else if(D){var M=s.offsetTop,N=d.offsetTop;q=M===N?d.previousElementSibling===s&&!E||H&&E:N>M}else q=J!==s&&!G||H&&G;s.contains(g)||(q&&!J?g.appendChild(s):d.parentNode.insertBefore(s,q?J:d)),t=s.parentNode,this._animate(e,s),this._animate(r,d)}}}},_animate:function(a,b){var c=this.options.animation;if(c){var d=b.getBoundingClientRect();h(b,"transition","none"),h(b,"transform","translate3d("+(a.left-d.left)+"px,"+(a.top-d.top)+"px,0)"),b.offsetWidth,h(b,"transition","all "+c+"ms"),h(b,"transform","translate3d(0,0,0)"),clearTimeout(b.animated),b.animated=setTimeout(function(){h(b,"transition",""),h(b,"transform",""),b.animated=!1},c)}},_offUpEvents:function(){var a=this.el.ownerDocument;f(N,"touchmove",this._onTouchMove),f(a,"mouseup",this._onDrop),f(a,"touchend",this._onDrop),f(a,"touchcancel",this._onDrop)},_onDrop:function(b){var c=this.el,d=this.options;clearInterval(this._loopId),clearInterval(J.pid),clearTimeout(this._dragStartTimer),f(N,"mousemove",this._onTouchMove),this.nativeDraggable&&(f(N,"drop",this),f(c,"dragstart",this._onDragStart)),this._offUpEvents(),b&&(I&&(b.preventDefault(),!d.dropBubble&&b.stopPropagation()),u&&u.parentNode.removeChild(u),s&&(this.nativeDraggable&&f(s,"dragend",this),l(s),g(s,this.options.ghostClass,!1),g(s,this.options.chosenClass,!1),w!==t?(E=p(s),E>=0&&(j(null,t,"sort",s,w,D,E),j(this,w,"sort",s,w,D,E),j(null,t,"add",s,w,D,E),j(this,w,"remove",s,w,D,E))):(v&&v.parentNode.removeChild(v),s.nextSibling!==x&&(E=p(s),E>=0&&(j(this,w,"update",s,w,D,E),j(this,w,"sort",s,w,D,E)))),a.active&&((null===E||-1===E)&&(E=D),j(this,w,"end",s,w,D,E),this.save())),w=s=t=u=x=v=y=z=G=H=I=E=A=B=F=a.active=null)},handleEvent:function(a){var b=a.type;"dragover"===b||"dragenter"===b?s&&(this._onDragOver(a),d(a)):("drop"===b||"dragend"===b)&&this._onDrop(a)},toArray:function(){for(var a,b=[],d=this.el.children,e=0,f=d.length,g=this.options;f>e;e++)a=d[e],c(a,g.draggable,this.el)&&b.push(a.getAttribute(g.dataIdAttr)||o(a));return b},sort:function(a){var b={},d=this.el;this.toArray().forEach(function(a,e){var f=d.children[e];c(f,this.options.draggable,d)&&(b[a]=f)},this),a.forEach(function(a){b[a]&&(d.removeChild(b[a]),d.appendChild(b[a]))})},save:function(){var a=this.options.store;a&&a.set(this)},closest:function(a,b){return c(a,b||this.options.draggable,this.el)},option:function(a,b){var c=this.options;return void 0===b?c[a]:(c[a]=b,void("group"===a&&V(c)))},destroy:function(){var a=this.el;a[L]=null,f(a,"mousedown",this._onTapStart),f(a,"touchstart",this._onTapStart),this.nativeDraggable&&(f(a,"dragover",this),f(a,"dragenter",this)),Array.prototype.forEach.call(a.querySelectorAll("[draggable]"),function(a){a.removeAttribute("draggable")}),T.splice(T.indexOf(this._onDragOver),1),this._onDrop(),this.el=a=null}},a.utils={on:e,off:f,css:h,find:i,is:function(a,b){return!!c(a,b,a)},extend:r,throttle:q,closest:c,toggleClass:g,index:p},a.create=function(b,c){return new a(b,c)},a.version="1.4.2",a}),function(a){"use strict";"function"==typeof define&&define.amd?define(["angular","./Sortable"],a):"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?(require("angular"),a(angular,require("./Sortable")),module.exports="ng-sortable"):window.angular&&window.Sortable&&a(angular,Sortable)}(function(a,b){"use strict";var c="Sortable:ng-sortable";a.module("ng-sortable",[]).constant("ngSortableVersion","0.4.0").constant("ngSortableConfig",{}).directive("ngSortable",["$parse","ngSortableConfig",function(d,e){var f,g,h=function(a,b){var c=[].filter.call(a.childNodes,function(a){return 8===a.nodeType&&-1!==a.nodeValue.indexOf("ngRepeat:")})[0];if(!c)return function(){return null};c=c.nodeValue.match(/ngRepeat:\s*(?:\(.*?,\s*)?([^\s)]+)[\s)]+in\s+([^\s|]+)/);var e=d(c[2]);return function(){return e(b.$parent)||[]}};return{restrict:"AC",scope:{ngSortable:"=?"},link:function(d,i){function j(a,b){var c="on"+a.type.charAt(0).toUpperCase()+a.type.substr(1),d=p();n[c]&&n[c]({model:b||d[a.newIndex],models:d,oldIndex:a.oldIndex,newIndex:a.newIndex})}function k(e){var h=p();if(h){var i=e.oldIndex,j=e.newIndex;if(m!==e.from){var k=e.from[c]();f=k[i],e.clone?(f=a.copy(f),k.splice(b.utils.index(e.clone),0,k.splice(i,1)[0]),e.from.removeChild(e.clone)):k.splice(i,1),h.splice(j,0,f),e.from.insertBefore(e.item,g)}else h.splice(j,0,h.splice(i,1)[0]);d.$apply()}}var l,m=i[0],n=a.extend(d.ngSortable||{},e),o=[],p=h(m,d);m[c]=p,l=b.create(m,Object.keys(n).reduce(function(a,b){return a[b]=a[b]||n[b],a},{onStart:function(a){g=a.item.nextSibling,j(a),d.$apply()},onEnd:function(a){j(a,f),d.$apply()},onAdd:function(a){k(a),j(a,f),d.$apply()},onUpdate:function(a){k(a),j(a)},onRemove:function(a){j(a,f)},onSort:function(a){j(a)}})),i.on("$destroy",function(){a.forEach(o,function(a){a()}),l.destroy(),m[c]=null,m=null,o=null,l=null,g=null}),a.forEach(["sort","disabled","draggable","handle","animation","group","ghostClass","filter","onStart","onEnd","onAdd","onUpdate","onRemove","onSort"],function(a){o.push(d.$watch("ngSortable."+a,function(b){void 0!==b&&(n[a]=b,/^on[A-Z]/.test(a)||l.option(a,b))}))})}}}])}),function(a){"use strict";"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a(require("./Sortable")):"function"==typeof define&&define.amd?define(["./Sortable"],a):window.SortableMixin=a(Sortable)}(function(a){"use strict";function b(a){return a.sortableOptions&&a.sortableOptions.model||g.model}function c(a){var c=b(a),d=a.state&&a.state[c]||a.props[c];return d.slice()}function d(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var e,f,g={ref:"list",model:"items",animation:100,onStart:"handleStart",onEnd:"handleEnd",onAdd:"handleAdd",onUpdate:"handleUpdate",onRemove:"handleRemove",onSort:"handleSort",onFilter:"handleFilter",onMove:"handleMove"},h={sortableMixinVersion:"0.1.1",_sortableInstance:null,componentDidMount:function(){var h,i=d(d({},g),this.sortableOptions||{}),j=d({},i),k=function(a,b){var c=this[i[a]];c&&c.call(this,b,this._sortableInstance)}.bind(this);"onStart onEnd onAdd onSort onUpdate onRemove onFilter onMove".split(" ").forEach(function(a){j[a]=function(d){if("onStart"===a)e=d.item.nextElementSibling,f=this;else if("onAdd"===a||"onUpdate"===a){d.from.insertBefore(d.item,e);var g,h,i={},l={},m=d.oldIndex,n=d.newIndex,o=c(this);"onAdd"===a?(g=c(f),h=g.splice(m,1)[0],o.splice(n,0,h),l[b(f)]=g):o.splice(n,0,o.splice(m,1)[0]),i[b(this)]=o,j.stateHandler?this[j.stateHandler](i):this.setState(i),this!==f&&f.setState(l)}setTimeout(function(){k(a,d)},0)}.bind(this)},this),h=this.getDOMNode()?(this.refs[i.ref]||this).getDOMNode():this.refs[i.ref]||this,this._sortableInstance=a.create(h,j)},componentWillReceiveProps:function(a){var c={},d=b(this),e=a[d];e&&(c[d]=e,this.setState(c))},componentWillUnmount:function(){this._sortableInstance.destroy(),this._sortableInstance=null}};return h}),function(a,b){"use strict";angular.module("adf",["adf.provider","ui.bootstrap"]).value("adfTemplatePath","../src/templates/").value("rowTemplate",'<adf-dashboard-row row="row" adf-model="adfModel" options="options" edit-mode="editMode" ng-repeat="row in column.rows" />').value("columnTemplate",'<adf-dashboard-column column="column" adf-model="adfModel" options="options" edit-mode="editMode" ng-repeat="column in row.columns" />').value("adfVersion","0.11.0"),angular.module("adf").directive("adfDashboardColumn",["$log","$compile","$rootScope","adfTemplatePath","rowTemplate","dashboard",function(a,b,c,d,e,f){function g(a,b,d){var e=b.widgets;a.$apply(function(){e.splice(d.newIndex,0,e.splice(d.oldIndex,1)[0]),c.$broadcast("adfWidgetMovedInColumn")})}function h(a,b){for(var c=null,d=0;d<a.widgets.length;d++){var e=a.widgets[d];if(f.idEquals(e.wid,b)){c=e;break}}return c}function i(a,b){for(var c=null,d=0;d<a.rows.length;d++){for(var e=a.rows[d],g=0;g<e.columns.length;g++){var h=e.columns[g];if(f.idEquals(h.cid,b)){c=h;break}h.rows&&(c=i(h,b))}if(c)break}return c}function j(a){var b=a.getAttribute("adf-id");return b?b:"-1"}function k(b,d,e,f){var g=j(f.from),k=i(d,g);if(k){var l=j(f.item),m=h(k,l);m?b.$apply(function(){e.widgets||(e.widgets=[]),e.widgets.splice(f.newIndex,0,m),c.$broadcast("adfWidgetAddedToColumn")}):a.warn("could not find widget with id "+l)}else a.warn("could not find column with id "+g)}function l(a,b,d){a.$apply(function(){b.widgets.splice(d.oldIndex,1),c.$broadcast("adfWidgetRemovedFromColumn")})}function m(a,b,c,d){var e=b[0],f=Sortable.create(e,{group:"widgets",handle:".adf-move",ghostClass:"placeholder",animation:150,onAdd:function(b){k(a,c,d,b)},onRemove:function(b){l(a,d,b)},onUpdate:function(b){g(a,d,b)}});b.on("$destroy",function(){f.el&&f.destroy()})}return{restrict:"E",replace:!0,scope:{column:"=",editMode:"=",continuousEditMode:"=",adfModel:"=",options:"="},templateUrl:d+"dashboard-column.html",link:function(a,c){var d=a.column;d.cid||(d.cid=f.id()),angular.isDefined(d.rows)&&angular.isArray(d.rows)?b(e)(a,function(a){c.append(a)}):m(a,c,a.adfModel,d)}}}]),angular.module("adf").directive("adfDashboard",["$rootScope","$log","$timeout","$uibModal","dashboard","adfTemplatePath",function(a,b,c,d,e,f){function g(a){switch(angular.isDefined(a)?a.toLowerCase():null){case"true":case"yes":case"1":return!0;case"false":case"no":case"0":case null:return!1;default:return Boolean(a)}}function h(a,b){if(a.widgets&&a.widgets.length>0)for(var c=a.widgets.shift();c;)b.widgets.push(c),c=a.widgets.shift()}function i(a,b,c){return c=c||0,angular.isDefined(a.rows)&&angular.forEach(a.rows,function(a){angular.forEach(a.columns,function(a){a.widgets||(a.widgets=[]),angular.isDefined(b[c])&&(angular.isDefined(a.rows)||(h(b[c],a),c++)),c=i(a,b,c)})}),c}function j(a,b){return b=b||[],angular.isDefined(a.rows)&&angular.forEach(a.rows,function(a){angular.forEach(a.columns,function(a){b.push(a),j(a,b)})}),b}function k(a,b){var c=j(a),d=0;for(a.rows=angular.copy(b.rows);d<c.length;)d=i(a,c,d)}function l(a){var b={},c=e.widgets[a].config;return c&&(b=angular.copy(c)),b}function m(a){var c=null;if(!angular.isArray(a.rows))return b.error("model does not have any rows"),null;for(var d=0;d<a.rows.length;d++){var e=a.rows[d];if(angular.isArray(e.columns))for(var f=0;f<e.columns.length;f++){var g=e.columns[f];if(!g.rows){c=g;break}}if(c)break}return c}function n(c,d,e){if(c){var f=m(c);f?(f.widgets||(f.widgets=[]),f.widgets.unshift(d),a.$broadcast("adfWidgetAdded",e,c,d)):b.error("could not find first widget column")}else b.error("model is undefined")}function o(a){var b=e.widgets[a];return b&&b.edit&&b.edit.immediate}function p(a,b){c(function(){a.$broadcast("adfWidgetEnterEditMode",b)},200)}return{replace:!0,restrict:"EA",transclude:!1,scope:{structure:"@",name:"@",collapsible:"@",editable:"@",editMode:"@",continuousEditMode:"=",maximizable:"@",adfModel:"=",adfWidgetFilter:"="},controller:["$scope",function(c){var g={},h={},i=null,j={},m=c.name;c.$watch("adfModel",function(a,d){(null!==d||null===a&&null===d)&&(g=c.adfModel,i=c.adfWidgetFilter,g&&g.rows||(j=c.structure,h=e.structures[j],h?(g?g.rows=angular.copy(h).rows:g=angular.copy(h),g.structure=j):b.error("could not find structure "+j)),g?(g.title||(g.title="Dashboard"),g.titleTemplateUrl||(g.titleTemplateUrl=f+"dashboard-title.html"),c.model=g):b.error("could not find or create model"))},!0),c.editMode=!1,c.editClass="",c.toggleEditMode=function(){c.editMode=!c.editMode,c.editMode&&(c.continuousEditMode||(c.modelCopy=angular.copy(c.adfModel,{}),a.$broadcast("adfIsEditMode"))),c.editMode||a.$broadcast("adfDashboardChanged",m,g)},c.$on("adfToggleEditMode",function(){c.toggleEditMode()}),c.collapseAll=function(b){a.$broadcast("adfDashboardCollapseExpand",{collapseExpandStatus:b})},c.cancelEditMode=function(){c.editMode=!1,c.continuousEditMode||(c.modelCopy=angular.copy(c.modelCopy,c.adfModel)),a.$broadcast("adfDashboardEditsCancelled")},c.editDashboardDialog=function(){var a=c.$new();a.copy={title:g.title},a.structures=e.structures;var h=f+"dashboard-edit.html";g.editTemplateUrl&&(h=g.editTemplateUrl);var i=d.open({scope:a,templateUrl:h,backdrop:"static"});a.changeStructure=function(a,c){b.info("change structure to "+a),k(g,c)},a.closeDialog=function(){g.title=a.copy.title,i.close(),a.$destroy()}},c.addWidgetDialog=function(){var a,b=c.$new(),g=c.model;angular.isFunction(i)?(a={},angular.forEach(e.widgets,function(b,c){i(b,c,g)&&(a[c]=b)})):a=e.widgets,b.widgets=a;var h=f+"widget-add.html";g.addTemplateUrl&&(h=g.addTemplateUrl);var j={scope:b,templateUrl:h,backdrop:"static"},k=d.open(j);b.addWidget=function(a){var d={type:a,config:l(a)};n(g,d,m),k.close(),b.$destroy(),o(a)&&p(c,d)},b.closeDialog=function(){k.close(),b.$destroy()}},c.addNewWidgetToModel=n}],link:function(a,b,c){var d={name:c.name,editable:!0,enableConfirmDelete:g(c.enableconfirmdelete),maximizable:g(c.maximizable),collapsible:g(c.collapsible)};angular.isDefined(c.editable)&&(d.editable=g(c.editable)),a.options=d},templateUrl:f+"dashboard.html"}}]),angular.module("adf.provider",[]).provider("dashboard",function(){var a={},b="",c={},d='<div class="alert alert-danger">{}</div>',e='      <div class="progress progress-striped active">\n        <div class="progress-bar" role="progressbar" style="width: 100%">\n          <span class="sr-only">loading ...</span>\n        </div>\n      </div>',f=function(){return!0};this.widget=function(b,c){var d=angular.extend({reload:!1,frameless:!1},c);if(d.edit){var e={reload:!0,immediate:!1,apply:f};angular.extend(e,d.edit),d.edit=e}return a[b]=d,this},this.widgetsPath=function(a){return b=a,this},this.structure=function(a,b){return c[a]=b,this},this.messageTemplate=function(a){return d=a,this},this.loadingTemplate=function(a){return e=a,this},this.$get=function(){var f=0;return{widgets:a,widgetsPath:b,structures:c,messageTemplate:d,loadingTemplate:e,id:function(){return(new Date).getTime()+"-"+ ++f},idEquals:function(a,b){return a&&b&&a.toString()===b.toString()}}}}),angular.module("adf").directive("adfDashboardRow",["$compile","adfTemplatePath","columnTemplate",function(a,b,c){return{restrict:"E",replace:!0,scope:{row:"=",adfModel:"=",editMode:"=",continuousEditMode:"=",options:"="},templateUrl:b+"dashboard-row.html",link:function(b,d){angular.isDefined(b.row.columns)&&angular.isArray(b.row.columns)&&a(c)(b,function(a){d.append(a)})}}}]),angular.module("adf").directive("adfWidgetContent",["$log","$q","$sce","$http","$templateCache","$compile","$controller","$injector","dashboard",function(a,b,c,d,e,f,g,h,i){function j(a){var b=a;return a.indexOf("{widgetsPath}")>=0&&(b=a.replace("{widgetsPath}",i.widgetsPath).replace("//","/"),0===b.indexOf("/")&&(b=b.substring(1))),b}function k(a){var f=b.defer();if(a.template)f.resolve(a.template);else if(a.templateUrl){var g=e.get(a.templateUrl);if(g)f.resolve(g);else{var h=c.getTrustedResourceUrl(j(a.templateUrl));d.get(h).success(function(b){e.put(a.templateUrl,b),f.resolve(b)}).error(function(){f.reject("could not load template")})}}return f.promise}function l(c,d,e){var j=c.model,l=c.content;d.html(i.loadingTemplate);var m=c.$new();j.config||(j.config={}),m.config=j.config;var n={$scope:m,widget:j,config:j.config},o={};return o.$tpl=k(l),l.resolve&&angular.forEach(l.resolve,function(a,b){angular.isString(a)?o[b]=h.get(a):o[b]=h.invoke(a,a,n)}),b.all(o).then(function(a){angular.extend(a,n);var b=a.$tpl;if(d.html(b),l.controller){var c=g(l.controller,a);l.controllerAs&&(m[l.controllerAs]=c),d.children().data("$ngControllerController",c)}f(d.contents())(m)},function(b){var c="Could not resolve all promises";b&&(c+=": "+b),a.warn(c),d.html(i.messageTemplate.replace(/{}/g,c))}),e&&e.$destroy(),m}return{replace:!0,restrict:"EA",transclude:!1,scope:{model:"=",content:"="},link:function(a,b){var c=l(a,b,null);a.$on("widgetConfigChanged",function(){c=l(a,b,c)}),a.$on("widgetReload",function(){c=l(a,b,c)})}}}]),angular.module("adf").directive("adfWidget",["$injector","$q","$log","$uibModal","$rootScope","dashboard","adfTemplatePath",function(a,b,c,d,e,f,g){function h(a){var b=a.definition;if(b){var d=f.widgets[b.type];if(d){b.title||(b.title=d.title),b.titleTemplateUrl||(b.titleTemplateUrl=g+"widget-title.html",d.titleTemplateUrl&&(b.titleTemplateUrl=d.titleTemplateUrl)),b.titleTemplateUrl||(b.frameless=d.frameless),b.styleClass||(b.styleClass=d.styleClass),b.wid||(b.wid=f.id()),a.widget=angular.copy(d);var e=b.config;e?angular.isString(e)&&(e=angular.fromJson(e)):e={},a.config=e,a.widgetState||(a.widgetState={},a.widgetState.isCollapsed=d.collapsed===!0?d.collapsed:!1)}else c.warn("could not find widget "+b.type)}else c.debug("definition not specified, widget was probably removed")}function i(f,h){var i=f.definition;if(i){var j=function(){var a=f.col;if(a){var b=a.widgets.indexOf(i);b>=0&&a.widgets.splice(b,1)}h.remove(),e.$broadcast("adfWidgetRemovedFromColumn")};f.remove=function(){if(f.options.enableConfirmDelete){var a=f.$new(),b=g+"widget-delete.html";i.deleteTemplateUrl&&(b=i.deleteTemplateUrl);var c={scope:a,templateUrl:b,backdrop:"static"},e=d.open(c);a.closeDialog=function(){e.close(),a.$destroy()},a.deleteDialog=function(){j(),a.closeDialog()}}else j()},f.reload=function(){f.$broadcast("widgetReload")},f.edit=function(){function c(a){var c;if("boolean"==typeof a){var d=b.defer();a?d.resolve():d.reject(),c=d.promise}else c=b.when(a);return c}var e=f.$new();e.definition=angular.copy(i);var h=g+"widget-edit.html";i.editTemplateUrl&&(h=i.editTemplateUrl);var j={scope:e,templateUrl:h,backdrop:"static"},k=d.open(j);e.closeDialog=function(){k.close(),e.$destroy()},e.saveDialog=function(){e.validationError=null;var b=f.widget,d=b.edit.apply,g={widget:b,definition:e.definition,config:e.definition.config},h=a.invoke(d,d,g);c(h).then(function(){i.title=e.definition.title,angular.extend(i.config,e.definition.config),b.edit&&b.edit.reload&&f.$broadcast("widgetConfigChanged"),e.closeDialog()},function(a){a?e.validationError=a:e.validationError="Validation durring apply failed"})}}}else c.debug("widget not found")}return{replace:!0,restrict:"EA",transclude:!1,templateUrl:g+"widget.html",scope:{definition:"=",col:"=column",editMode:"=",options:"=",widgetState:"="},controller:["$scope",function(a){a.$on("adfDashboardCollapseExpand",function(b,c){a.widgetState.isCollapsed=c.collapseExpandStatus}),a.$on("adfWidgetEnterEditMode",function(b,c){f.idEquals(a.definition.wid,c.wid)&&a.edit()}),a.widgetClasses=function(b,c){var d=c.styleClass||"";return(!b.frameless||a.editMode)&&(d+=" panel panel-default"),d},a.openFullScreen=function(){var b=a.definition,c=a.$new(),e={scope:c,templateUrl:g+"widget-fullscreen.html",size:b.modalSize||"lg",backdrop:"static",windowClass:b.fullScreen?"dashboard-modal widget-fullscreen":"dashboard-modal"},f=d.open(e);c.closeDialog=function(){f.close(),c.$destroy()}}}],compile:function(){return{pre:h,post:i}}}}]),angular.module("adf").run(["$templateCache",function(a){a.put("../src/templates/dashboard-column.html",'<div adf-id={{column.cid}} class=column ng-class=column.styleClass ng-model=column.widgets> <adf-widget ng-repeat="definition in column.widgets" definition=definition column=column edit-mode=editMode options=options widget-state=widgetState>  </adf-widget></div> '),a.put("../src/templates/dashboard-edit.html",'<div class=modal-header> <button type=button class=close ng-click=closeDialog() aria-hidden=true>&times;</button> <h4 class=modal-title>Edit Dashboard</h4> </div> <div class=modal-body> <form role=form> <div class=form-group> <label for=dashboardTitle>Title</label> <input type=text class=form-control id=dashboardTitle ng-model=copy.title required> </div> <div class=form-group> <label>Structure</label> <div class=radio ng-repeat="(key, structure) in structures"> <label> <input type=radio value={{key}} ng-model=model.structure ng-change="changeStructure(key, structure)"> {{key}} </label> </div> </div> </form> </div> <div class=modal-footer> <button type=button class="btn btn-primary" ng-click=closeDialog()>Close</button> </div> '),a.put("../src/templates/dashboard-row.html","<div class=row ng-class=row.styleClass>  </div> "),a.put("../src/templates/dashboard-title.html",'<h1> {{model.title}} <span style="font-size: 16px" class=pull-right> <a href ng-if=editMode title="add new widget" ng-click=addWidgetDialog()> <i class="glyphicon glyphicon-plus-sign"></i> </a> <a href ng-if=editMode title="edit dashboard" ng-click=editDashboardDialog()> <i class="glyphicon glyphicon-cog"></i> </a> <a href ng-if=options.editable title="{{editMode ? \'save changes\' : \'enable edit mode\'}}" ng-click=toggleEditMode()> <i class=glyphicon x-ng-class="{\'glyphicon-edit\' : !editMode, \'glyphicon-save\' : editMode}"></i> </a> <a href ng-if=editMode title="undo changes" ng-click=cancelEditMode()> <i class="glyphicon glyphicon-repeat adf-flip"></i> </a> </span> </h1> '),a.put("../src/templates/dashboard.html",'<div class=dashboard-container> <div ng-include src=model.titleTemplateUrl></div> <div class=dashboard x-ng-class="{\'edit\' : editMode}"> <adf-dashboard-row row=row adf-model=model options=options ng-repeat="row in model.rows" edit-mode=editMode continuous-edit-mode=continuousEditMode> </adf-dashboard-row></div> </div> '),a.put("../src/templates/widget-add.html",'<div class=modal-header> <button type=button class=close ng-click=closeDialog() aria-hidden=true>&times;</button> <h4 class=modal-title>Add new widget</h4> </div> <div class=modal-body> <div style="display: inline-block;"> <dl class=dl-horizontal> <dt ng-repeat-start="(key, widget) in widgets"> <a href ng-click=addWidget(key)> {{widget.title}} </a> </dt> <dd ng-repeat-end ng-if=widget.description> {{widget.description}} </dd> </dl> </div> </div> <div class=modal-footer> <button type=button class="btn btn-primary" ng-click=closeDialog()>Close</button> </div>'),a.put("../src/templates/widget-delete.html",'<div class=modal-header> <h4 class=modal-title>Delete {{widget.title}}</h4> </div> <div class=modal-body> <form role=form> <div class=form-group> <label for=widgetTitle>Are you sure you want to delete this widget ?</label> </div> </form> </div> <div class=modal-footer> <button type=button class="btn btn-default" ng-click=closeDialog()>Close</button> <button type=button class="btn btn-primary" ng-click=deleteDialog()>Delete</button> </div> '),a.put("../src/templates/widget-edit.html",'<form name=widgetEditForm novalidate role=form ng-submit=saveDialog()> <div class=modal-header> <button type=button class=close ng-click=closeDialog() aria-hidden=true>&times;</button> <h4 class=modal-title>{{widget.title}}</h4> </div> <div class=modal-body> <div class="alert alert-danger" role=alert ng-show=validationError> <strong>Apply error:</strong> {{validationError}} </div> <div class=form-group> <label for=widgetTitle>Title</label> <input type=text class=form-control id=widgetTitle ng-model=definition.title placeholder="Enter title" required> </div> <div ng-if=widget.edit> <adf-widget-content model=definition content=widget.edit> </adf-widget-content></div> </div> <div class=modal-footer> <button type=button class="btn btn-default" ng-click=closeDialog()>Cancel</button> <input type=submit class="btn btn-primary" ng-disabled=widgetEditForm.$invalid value=Apply> </div> </form> '),a.put("../src/templates/widget-fullscreen.html",'<div class=modal-header> <div class="pull-right widget-icons"> <a href title="Reload Widget Content" ng-if=widget.reload ng-click=reload()> <i class="glyphicon glyphicon-refresh"></i> </a> <a href title=close ng-click=closeDialog()> <i class="glyphicon glyphicon-remove"></i> </a> </div> <h4 class=modal-title>{{definition.title}}</h4> </div> <div class=modal-body> <adf-widget-content model=definition content=widget> </adf-widget-content></div> <div class=modal-footer> <button type=button class="btn btn-primary" ng-click=closeDialog()>Close</button> </div> '),a.put("../src/templates/widget-title.html",'<h3 class=panel-title> {{definition.title}} <span class=pull-right> <a href title="reload widget content" ng-if=widget.reload ng-click=reload()> <i class="glyphicon glyphicon-refresh"></i> </a>  <a href title="change widget location" class=adf-move ng-if=editMode> <i class="glyphicon glyphicon-move"></i> </a>  <a href title="collapse widget" ng-show="options.collapsible && !widgetState.isCollapsed" ng-click="widgetState.isCollapsed = !widgetState.isCollapsed"> <i class="glyphicon glyphicon-minus"></i> </a>  <a href title="expand widget" ng-show="options.collapsible && widgetState.isCollapsed" ng-click="widgetState.isCollapsed = !widgetState.isCollapsed"> <i class="glyphicon glyphicon-plus"></i> </a>  <a href title="edit widget configuration" ng-click=edit() ng-if=editMode> <i class="glyphicon glyphicon-cog"></i> </a> <a href title="fullscreen widget" ng-click=openFullScreen() ng-show=options.maximizable> <i class="glyphicon glyphicon-fullscreen"></i> </a>  <a href title="remove widget" ng-click=remove() ng-if=editMode> <i class="glyphicon glyphicon-remove"></i> </a> </span> </h3> '),a.put("../src/templates/widget.html",'<div adf-id={{definition.wid}} adf-widget-type={{definition.type}} ng-class="widgetClasses(widget, definition)" class=widget> <div class="panel-heading clearfix" ng-if="!widget.frameless || editMode"> <div ng-include src=definition.titleTemplateUrl></div> </div> <div ng-class="{\'panel-body\':!widget.frameless || editMode}" uib-collapse=widgetState.isCollapsed> <adf-widget-content model=definition content=widget> </adf-widget-content></div> </div> ')}])}(window),angular.module("adf.structures.base",["adf"]).config(["dashboardProvider",function(a){a.structure("6-6",{rows:[{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]}]}).structure("4-8",{rows:[{columns:[{styleClass:"col-md-4",widgets:[]},{styleClass:"col-md-8",widgets:[]}]}]}).structure("12/4-4-4",{rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-4"},{styleClass:"col-md-4"},{styleClass:"col-md-4"}]}]}).structure("12/6-6",{rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]}]}).structure("12/6-6/12",{rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]},{columns:[{styleClass:"col-md-12"}]}]}).structure("3-9 (12/6-6)",{rows:[{columns:[{styleClass:"col-md-3"},{styleClass:"col-md-9",rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]}]}]}]})}]),function(a,b){"use strict";angular.module("adf.widget.clock",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("clock",{title:"Clock",description:"Displays date and time",templateUrl:"{widgetsPath}/clock/src/view.html",controller:"clockController",controllerAs:"clock",config:{timePattern:"HH:mm:ss",datePattern:"YYYY-MM-DD"},edit:{templateUrl:"{widgetsPath}/clock/src/edit.html"}})}]).controller("clockController",["$scope","$interval","config",function(a,b,c){function d(){var a=new moment;e.time=a.format(c.timePattern),e.date=a.format(c.datePattern)}var e=this;d();var f=b(d,1e3);a.$on("$destroy",function(){b.cancel(f)})}]),angular.module("adf.widget.clock").run(["$templateCache",function(a){a.put("{widgetsPath}/clock/src/edit.html",'<form role=form><div class=form-group><label for=time>Time pattern</label> <input type=text class=form-control id=time ng-model=config.timePattern></div><div class=form-group><label for=date>Date pattern</label> <input type=text class=form-control id=date ng-model=config.datePattern></div><p class=text-info>For the list of possible patterns, please have a look at <a target=_blank href="http://momentjs.com/docs/#/displaying/">moment.js documentation</a></p></form>'),a.put("{widgetsPath}/clock/src/view.html","<div class=clock><div class=clock-time>{{clock.time}}</div><div class=clock-date>{{clock.date}}</div></div>")}])}(window),function(a,b){"use strict";angular.module("adf.widget.iframe",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("iframe",{title:"iframe",description:"Embed an external page into the dashboard",templateUrl:"{widgetsPath}/iframe/src/view.html",controller:"iframeController",controllerAs:"iframe",edit:{templateUrl:"{widgetsPath}/iframe/src/edit.html"},config:{height:"420px"}})}]).controller("iframeController",["$sce","config",function(a,b){b.url&&(this.url=a.trustAsResourceUrl(b.url))}]),angular.module("adf.widget.iframe").run(["$templateCache",function(a){a.put("{widgetsPath}/iframe/src/edit.html","<form role=form><div class=form-group><label for=url>URL</label> <input type=url class=form-control id=url ng-model=config.url placeholder=http://www.example.com></div><div class=form-group><label for=url>Height</label> <input type=text class=form-control id=url ng-model=config.height></div></form>"),a.put("{widgetsPath}/iframe/src/view.html",'<div><div class="alert alert-info" ng-if=!config.url>Please insert a url in the widget configuration</div><iframe ng-if=iframe.url class=adf-iframe style="height: {{config.height}}" src={{iframe.url}}></iframe></div>')}])}(window),function(){"use strict";angular.module("ui.grid.i18n",[]),angular.module("ui.grid",["ui.grid.i18n"])}(),function(){"use strict";angular.module("ui.grid").constant("uiGridConstants",{LOG_DEBUG_MESSAGES:!0,LOG_WARN_MESSAGES:!0,LOG_ERROR_MESSAGES:!0,CUSTOM_FILTERS:/CUSTOM_FILTERS/g,COL_FIELD:/COL_FIELD/g,MODEL_COL_FIELD:/MODEL_COL_FIELD/g,TOOLTIP:/title=\"TOOLTIP\"/g,DISPLAY_CELL_TEMPLATE:/DISPLAY_CELL_TEMPLATE/g,TEMPLATE_REGEXP:/<.+>/,FUNC_REGEXP:/(\([^)]*\))?$/,DOT_REGEXP:/\./g,APOS_REGEXP:/'/g,BRACKET_REGEXP:/^(.*)((?:\s*\[\s*\d+\s*\]\s*)|(?:\s*\[\s*"(?:[^"\\]|\\.)*"\s*\]\s*)|(?:\s*\[\s*'(?:[^'\\]|\\.)*'\s*\]\s*))(.*)$/,COL_CLASS_PREFIX:"ui-grid-col",events:{GRID_SCROLL:"uiGridScroll",COLUMN_MENU_SHOWN:"uiGridColMenuShown",ITEM_DRAGGING:"uiGridItemDragStart",COLUMN_HEADER_CLICK:"uiGridColumnHeaderClick"},keymap:{TAB:9,STRG:17,CAPSLOCK:20,CTRL:17,CTRLRIGHT:18,CTRLR:18,SHIFT:16,RETURN:13,ENTER:13,BACKSPACE:8,BCKSP:8,ALT:18,ALTR:17,ALTRIGHT:17,SPACE:32,WIN:91,MAC:91,FN:null,PG_UP:33,PG_DOWN:34,UP:38,DOWN:40,LEFT:37,RIGHT:39,ESC:27,DEL:46,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123},ASC:"asc",DESC:"desc",filter:{STARTS_WITH:2,ENDS_WITH:4,EXACT:8,CONTAINS:16,GREATER_THAN:32,GREATER_THAN_OR_EQUAL:64,LESS_THAN:128,LESS_THAN_OR_EQUAL:256,NOT_EQUAL:512,SELECT:"select",INPUT:"input"},aggregationTypes:{sum:2,count:4,avg:8,min:16,max:32},CURRENCY_SYMBOLS:["ƒ","$","£","$","¤","¥","៛","₩","₱","฿","₫"],scrollDirection:{UP:"up",DOWN:"down",LEFT:"left",RIGHT:"right",NONE:"none"},dataChange:{ALL:"all",EDIT:"edit",ROW:"row",COLUMN:"column",OPTIONS:"options"},scrollbars:{NEVER:0,ALWAYS:1}})}(),angular.module("ui.grid").directive("uiGridCell",["$compile","$parse","gridUtil","uiGridConstants",function(a,b,c,d){var e={priority:0,scope:!1,require:"?^uiGrid",compile:function(){return{pre:function(b,e,f,g){function h(){var a=b.col.compiledElementFn;a(b,function(a,b){e.append(a)})}if(g&&b.col.compiledElementFn)h();else if(g&&!b.col.compiledElementFn)b.col.getCompiledElementFn().then(function(a){a(b,function(a,b){e.append(a)})});else{var i=b.col.cellTemplate.replace(d.MODEL_COL_FIELD,"row.entity."+c.preEval(b.col.field)).replace(d.COL_FIELD,"grid.getCellValue(row, col)"),j=a(i)(b);e.append(j)}},post:function(a,b,c,e){var f=a.col.getColClass(!1);b.addClass(f);var g,h=function(c){var d=b;g&&(d.removeClass(g),g=null),g=angular.isFunction(a.col.cellClass)?a.col.cellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.cellClass,d.addClass(g)};a.col.cellClass&&h();var i=a.grid.registerDataChangeCallback(h,[d.dataChange.COLUMN,d.dataChange.EDIT]),j=function(c,d){if(c!==d){(g||a.col.cellClass)&&h();
-var e=a.col.getColClass(!1);e!==f&&(b.removeClass(f),b.addClass(e),f=e)}},k=a.$watch("row",j),l=function(){i(),k()};a.$on("$destroy",l),b.on("$destroy",l)}}}};return e}]),function(){angular.module("ui.grid").service("uiGridColumnMenuService",["i18nService","uiGridConstants","gridUtil",function(a,b,c){var d={initialize:function(a,b){a.grid=b.grid,b.columnMenuScope=a,a.menuShown=!1},setColMenuItemWatch:function(a){var b=a.$watch("col.menuItems",function(b,c){"undefined"!=typeof b&&b&&angular.isArray(b)?(b.forEach(function(b){"undefined"!=typeof b.context&&b.context||(b.context={}),b.context.col=a.col}),a.menuItems=a.defaultMenuItems.concat(b)):a.menuItems=a.defaultMenuItems});a.$on("$destroy",b)},sortable:function(a){return a.grid.options.enableSorting&&"undefined"!=typeof a.col&&a.col&&a.col.enableSorting?!0:!1},isActiveSort:function(a,b){return"undefined"!=typeof a.col&&"undefined"!=typeof a.col.sort&&"undefined"!=typeof a.col.sort.direction&&a.col.sort.direction===b},suppressRemoveSort:function(a){return a.col&&a.col.suppressRemoveSort?!0:!1},hideable:function(a){return"undefined"!=typeof a.col&&a.col&&a.col.colDef&&a.col.colDef.enableHiding===!1?!1:!0},getDefaultMenuItems:function(c){return[{title:a.getSafeText("sort.ascending"),icon:"ui-grid-icon-sort-alt-up",action:function(a){a.stopPropagation(),c.sortColumn(a,b.ASC)},shown:function(){return d.sortable(c)},active:function(){return d.isActiveSort(c,b.ASC)}},{title:a.getSafeText("sort.descending"),icon:"ui-grid-icon-sort-alt-down",action:function(a){a.stopPropagation(),c.sortColumn(a,b.DESC)},shown:function(){return d.sortable(c)},active:function(){return d.isActiveSort(c,b.DESC)}},{title:a.getSafeText("sort.remove"),icon:"ui-grid-icon-cancel",action:function(a){a.stopPropagation(),c.unsortColumn()},shown:function(){return d.sortable(c)&&"undefined"!=typeof c.col&&"undefined"!=typeof c.col.sort&&"undefined"!=typeof c.col.sort.direction&&null!==c.col.sort.direction&&!d.suppressRemoveSort(c)}},{title:a.getSafeText("column.hide"),icon:"ui-grid-icon-cancel",shown:function(){return d.hideable(c)},action:function(a){a.stopPropagation(),c.hideColumn()}},{title:a.getSafeText("columnMenu.close"),screenReaderOnly:!0,shown:function(){return!0},action:function(a){a.stopPropagation()}}]},getColumnElementPosition:function(a,b,d){var e={};return e.left=d[0].offsetLeft,e.top=d[0].offsetTop,e.parentLeft=d[0].offsetParent.offsetLeft,e.offset=0,b.grid.options.offsetLeft&&(e.offset=b.grid.options.offsetLeft),e.height=c.elementHeight(d,!0),e.width=c.elementWidth(d,!0),e},repositionMenu:function(a,b,d,e,f){var g=e[0].querySelectorAll(".ui-grid-menu"),h=b.renderContainer?b.renderContainer:"body",i=(b.grid.renderContainers[h],c.closestElm(f,".ui-grid-render-container")),j=i.getBoundingClientRect().left-a.grid.element[0].getBoundingClientRect().left,k=i.querySelectorAll(".ui-grid-viewport")[0].scrollLeft,l=b.lastMenuWidth?b.lastMenuWidth:a.lastMenuWidth?a.lastMenuWidth:170,m=b.lastMenuPaddingRight?b.lastMenuPaddingRight:a.lastMenuPaddingRight?a.lastMenuPaddingRight:10;if(0!==g.length){var n=g[0].querySelectorAll(".ui-grid-menu-mid");0===n.length||angular.element(n).hasClass("ng-hide")||(l=c.elementWidth(g,!0),a.lastMenuWidth=l,b.lastMenuWidth=l,m=parseInt(c.getStyles(angular.element(g)[0]).paddingRight,10),a.lastMenuPaddingRight=m,b.lastMenuPaddingRight=m)}var o=d.left+j-k+d.parentLeft+d.width-l+m;o<d.offset&&(o=d.offset),e.css("left",o+"px"),e.css("top",d.top+d.height+"px")}};return d}]).directive("uiGridColumnMenu",["$timeout","gridUtil","uiGridConstants","uiGridColumnMenuService","$document",function(a,b,c,d,e){var f={priority:0,scope:!0,require:"^uiGrid",templateUrl:"ui-grid/uiGridColumnMenu",replace:!0,link:function(f,g,h,i){d.initialize(f,i),f.defaultMenuItems=d.getDefaultMenuItems(f),f.menuItems=f.defaultMenuItems,d.setColMenuItemWatch(f),f.showMenu=function(a,b,c){f.col=a;var e=d.getColumnElementPosition(f,a,b);f.menuShown?(f.colElement=b,f.colElementPosition=e,f.hideThenShow=!0,f.$broadcast("hide-menu",{originalEvent:c})):(f.menuShown=!0,d.repositionMenu(f,a,e,g,b),f.colElement=b,f.colElementPosition=e,f.$broadcast("show-menu",{originalEvent:c}))},f.hideMenu=function(a){f.menuShown=!1,a||f.$broadcast("hide-menu")},f.$on("menu-hidden",function(){f.hideThenShow?(delete f.hideThenShow,d.repositionMenu(f,f.col,f.colElementPosition,g,f.colElement),f.$broadcast("show-menu"),f.menuShown=!0):(f.hideMenu(!0),f.col&&b.focus.bySelector(e,".ui-grid-header-cell."+f.col.getColClass()+" .ui-grid-column-menu-button",f.col.grid,!1))}),f.$on("menu-shown",function(){a(function(){d.repositionMenu(f,f.col,f.colElementPosition,g,f.colElement),delete f.colElementPosition,delete f.columnElement},200)}),f.sortColumn=function(a,b){a.stopPropagation(),f.grid.sortColumn(f.col,b,!0).then(function(){f.grid.refresh(),f.hideMenu()})},f.unsortColumn=function(){f.col.unsort(),f.grid.refresh(),f.hideMenu()};var j=function(){a(function(){var a,c=function(){return b.focus.byId("grid-menu",f.grid)};f.grid.columns.some(function(b,c){return angular.equals(b,f.col)?(a=c,!0):void 0});var d;if(f.grid.columns.some(function(b,c){if(!b.visible)return!1;if(a>c)d=b;else{if(c>a&&!d)return d=b,!0;if(c>a&&d)return!0}}),d){var g=d.getColClass();b.focus.bySelector(e,".ui-grid-header-cell."+g+" .ui-grid-header-cell-primary-focus",!0).then(angular.noop,function(a){return"canceled"!==a?c():void 0})}else c()})};f.hideColumn=function(){f.col.colDef.visible=!1,f.col.visible=!1,f.grid.queueGridRefresh(),f.hideMenu(),f.grid.api.core.notifyDataChange(c.dataChange.COLUMN),f.grid.api.core.raise.columnVisibilityChanged(f.col),j()}},controller:["$scope",function(a){var b=this;a.$watch("menuItems",function(a,c){b.menuItems=a})}]};return f}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFilter",["$compile","$templateCache","i18nService","gridUtil",function(a,b,c,d){return{compile:function(){return{pre:function(b,c,d,e){b.col.updateFilters=function(d){if(c.children().remove(),d){var e=b.col.filterHeaderTemplate;c.append(a(e)(b))}},b.$on("$destroy",function(){delete b.col.updateFilters})},post:function(a,b,e,f){a.aria=c.getSafeText("headerCell.aria"),a.removeFilter=function(a,c){a.term=null,d.focus.bySelector(b,".ui-grid-filter-input-"+c)}}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFooterCell",["$timeout","gridUtil","uiGridConstants","$compile",function(a,b,c,d){var e={priority:0,scope:{col:"=",row:"=",renderIndex:"="},replace:!0,require:"^uiGrid",compile:function(a,b,e){return{pre:function(a,b,c,e){var f=d(a.col.footerCellTemplate)(a);b.append(f)},post:function(a,b,d,e){a.grid=e.grid;var f=a.col.getColClass(!1);b.addClass(f);var g,h=function(c){var d=b;g&&(d.removeClass(g),g=null),g=angular.isFunction(a.col.footerCellClass)?a.col.footerCellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.footerCellClass,d.addClass(g)};a.col.footerCellClass&&h(),a.col.updateAggregationValue();var i=a.grid.registerDataChangeCallback(h,[c.dataChange.COLUMN]);a.grid.api.core.on.rowsRendered(a,a.col.updateAggregationValue),a.grid.api.core.on.rowsRendered(a,h),a.$on("$destroy",i)}}}};return e}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFooter",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(a,b,c,d,e){return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(a,c){return{pre:function(a,c,e,f){var g=f[0],h=f[1];a.grid=g.grid,a.colContainer=h.colContainer,h.footer=c;var i=a.grid.options.footerTemplate;d.getTemplate(i).then(function(d){var e=angular.element(d),f=b(e)(a);if(c.append(f),h){var g=c[0].getElementsByClassName("ui-grid-footer-viewport")[0];g&&(h.footerViewport=g)}})},post:function(a,b,c,e){var f=e[0],g=e[1];f.grid;d.disableAnimations(b),g.footer=b;var h=b[0].getElementsByClassName("ui-grid-footer-viewport")[0];h&&(g.footerViewport=h)}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridGridFooter",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(a,b,c,d,e){return{restrict:"EA",replace:!0,require:"^uiGrid",scope:!0,compile:function(a,c){return{pre:function(a,c,e,f){a.grid=f.grid;var g=a.grid.options.gridFooterTemplate;d.getTemplate(g).then(function(d){var e=angular.element(d),f=b(e)(a);c.append(f)})},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridGroupPanel",["$compile","uiGridConstants","gridUtil",function(a,b,c){var d="ui-grid/ui-grid-group-panel";return{restrict:"EA",replace:!0,require:"?^uiGrid",scope:!1,compile:function(b,e){return{pre:function(b,e,f,g){var h=b.grid.options.groupPanelTemplate||d;c.getTemplate(h).then(function(c){var d=angular.element(c),f=a(d)(b);e.append(f)})},post:function(a,b,c,d){b.bind("$destroy",function(){})}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeaderCell",["$compile","$timeout","$window","$document","gridUtil","uiGridConstants","ScrollEvent","i18nService",function(a,b,c,d,e,f,g,h){var i=500,j=500,k={priority:0,scope:{col:"=",row:"=",renderIndex:"="},require:["^uiGrid","^uiGridRenderContainer"],replace:!0,compile:function(){return{pre:function(b,c,d){var e=a(b.col.headerCellTemplate)(b);c.append(e)},post:function(a,c,e,g){var k=g[0],l=g[1];a.i18n={headerCell:h.getSafeText("headerCell"),sort:h.getSafeText("sort")},a.isSortPriorityVisible=function(){return a.col.sort.priority&&a.grid.columns.some(function(b,c){return b.sort.priority&&b!==a.col})},a.getSortDirectionAriaLabel=function(){var b=a.col,c=b.sort.direction===f.ASC?a.i18n.sort.ascending:b.sort.direction===f.DESC?a.i18n.sort.descending:a.i18n.sort.none,d=c;return a.isSortPriorityVisible()&&(d=d+". "+a.i18n.headerCell.priority+" "+b.sort.priority),d},a.grid=k.grid,a.renderContainer=k.grid.renderContainers[l.containerId];var m=a.col.getColClass(!1);c.addClass(m),a.menuShown=!1,a.asc=f.ASC,a.desc=f.DESC;var n,o,p=(angular.element(c[0].querySelectorAll(".ui-grid-header-cell-menu")),angular.element(c[0].querySelectorAll(".ui-grid-cell-contents"))),q=[];a.downFn=function(e){e.stopPropagation(),"undefined"!=typeof e.originalEvent&&void 0!==e.originalEvent&&(e=e.originalEvent),e.button&&0!==e.button||(o=e.pageX,a.mousedownStartTime=(new Date).getTime(),a.mousedownTimeout=b(function(){},i),a.mousedownTimeout.then(function(){a.colMenu&&k.columnMenuScope.showMenu(a.col,c,e)}),k.fireEvent(f.events.COLUMN_HEADER_CLICK,{event:e,columnName:a.col.colDef.name}),a.offAllEvents(),"touchstart"===e.type?(d.on("touchend",a.upFn),d.on("touchmove",a.moveFn)):"mousedown"===e.type&&(d.on("mouseup",a.upFn),d.on("mousemove",a.moveFn)))},a.upFn=function(c){c.stopPropagation(),b.cancel(a.mousedownTimeout),a.offAllEvents(),a.onDownEvents(c.type);var d=(new Date).getTime(),e=d-a.mousedownStartTime;e>i||a.sortable&&a.handleClick(c)},a.moveFn=function(c){var d=c.pageX-o;0!==d&&(b.cancel(a.mousedownTimeout),a.offAllEvents(),a.onDownEvents(c.type))},a.clickFn=function(b){b.stopPropagation(),p.off("click",a.clickFn)},a.offAllEvents=function(){p.off("touchstart",a.downFn),p.off("mousedown",a.downFn),d.off("touchend",a.upFn),d.off("mouseup",a.upFn),d.off("touchmove",a.moveFn),d.off("mousemove",a.moveFn),p.off("click",a.clickFn)},a.onDownEvents=function(c){switch(c){case"touchmove":case"touchend":p.on("click",a.clickFn),p.on("touchstart",a.downFn),b(function(){p.on("mousedown",a.downFn)},j);break;case"mousemove":case"mouseup":p.on("click",a.clickFn),p.on("mousedown",a.downFn),b(function(){p.on("touchstart",a.downFn)},j);break;default:p.on("click",a.clickFn),p.on("touchstart",a.downFn),p.on("mousedown",a.downFn)}};var r=function(d){var e=c;n&&(e.removeClass(n),n=null),n=angular.isFunction(a.col.headerCellClass)?a.col.headerCellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.headerCellClass,e.addClass(n),b(function(){var b=a.grid.renderContainers.right?a.grid.renderContainers.right:a.grid.renderContainers.body;a.isLastCol=a.col===b.visibleColumnCache[b.visibleColumnCache.length-1]}),k.grid.options.enableSorting&&a.col.enableSorting?a.sortable=!0:a.sortable=!1;var g=a.filterable;k.grid.options.enableFiltering&&a.col.enableFiltering?a.filterable=!0:a.filterable=!1,g!==a.filterable&&("undefined"!=typeof a.col.updateFilters&&a.col.updateFilters(a.filterable),a.filterable?(a.col.filters.forEach(function(b,c){q.push(a.$watch("col.filters["+c+"].term",function(a,b){a!==b&&(k.grid.api.core.raise.filterChanged(),k.grid.api.core.notifyDataChange(f.dataChange.COLUMN),k.grid.queueGridRefresh())}))}),a.$on("$destroy",function(){q.forEach(function(a){a()})})):q.forEach(function(a){a()})),a.col.grid.options&&a.col.grid.options.enableColumnMenus!==!1&&a.col.colDef&&a.col.colDef.enableColumnMenu!==!1?a.colMenu=!0:a.colMenu=!1,a.offAllEvents(),(a.sortable||a.colMenu)&&(a.onDownEvents(),a.$on("$destroy",function(){a.offAllEvents()}))};r();var s=a.grid.registerDataChangeCallback(r,[f.dataChange.COLUMN]);a.$on("$destroy",s),a.handleClick=function(b){var c=!1;b.shiftKey&&(c=!0),k.grid.sortColumn(a.col,c).then(function(){k.columnMenuScope&&k.columnMenuScope.hideMenu(),k.grid.refresh()})},a.toggleMenu=function(b){b.stopPropagation(),k.columnMenuScope.menuShown&&k.columnMenuScope.col===a.col?k.columnMenuScope.hideMenu():k.columnMenuScope.showMenu(a.col,c)}}}}};return k}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeader",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout","ScrollEvent",function(a,b,c,d,e,f){var g="ui-grid/ui-grid-header",h="ui-grid/ui-grid-no-header";return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(a,c){return{pre:function(a,c,e,i){function j(){m.header=m.colContainer.header=c;var a=c[0].getElementsByClassName("ui-grid-header-canvas");a.length>0?m.headerCanvas=m.colContainer.headerCanvas=a[0]:m.headerCanvas=null}function k(a){if(!l.grid.isScrollingHorizontally){var b=d.normalizeScrollLeft(m.headerViewport,l.grid),c=m.colContainer.scrollHorizontal(b),e=new f(l.grid,null,m.colContainer,f.Sources.ViewPortScroll);e.newScrollLeft=b,c>-1&&(e.x={percentage:c}),l.grid.scrollContainers(null,e)}}var l=i[0],m=i[1];a.grid=l.grid,a.colContainer=m.colContainer,j();var n;n=a.grid.options.showHeader?a.grid.options.headerTemplate?a.grid.options.headerTemplate:g:h,d.getTemplate(n).then(function(d){var e=angular.element(d),f=b(e)(a);if(c.replaceWith(f),c=f,j(),m){var g=c[0].getElementsByClassName("ui-grid-header-viewport")[0];g&&(m.headerViewport=g,angular.element(g).on("scroll",k),a.$on("$destroy",function(){angular.element(g).off("scroll",k)}))}a.grid.queueRefresh()})},post:function(a,b,c,e){function f(){var a=h.colContainer.visibleColumnCache,b="",c=0;return a.forEach(function(a){b+=a.getColClassDefinition(),c+=a.drawnWidth}),h.colContainer.canvasWidth=c,b}var g=e[0],h=e[1];g.grid;d.disableAnimations(b),h.header=b;var i=b[0].getElementsByClassName("ui-grid-header-viewport")[0];i&&(h.headerViewport=i),g&&g.grid.registerStyleComputation({priority:15,func:f})}}}}}])}(),function(){angular.module("ui.grid").service("uiGridGridMenuService",["gridUtil","i18nService","uiGridConstants",function(a,b,c){var d={initialize:function(a,b){b.gridMenuScope=a,a.grid=b,a.registeredMenuItems=[],a.$on("$destroy",function(){a.grid&&a.grid.gridMenuScope&&(a.grid.gridMenuScope=null),a.grid&&(a.grid=null),a.registeredMenuItems&&(a.registeredMenuItems=null)}),a.registeredMenuItems=[],b.api.registerMethod("core","addToGridMenu",d.addToGridMenu),b.api.registerMethod("core","removeFromGridMenu",d.removeFromGridMenu)},addToGridMenu:function(b,c){angular.isArray(c)?b.gridMenuScope?(b.gridMenuScope.registeredMenuItems=b.gridMenuScope.registeredMenuItems?b.gridMenuScope.registeredMenuItems:[],b.gridMenuScope.registeredMenuItems=b.gridMenuScope.registeredMenuItems.concat(c)):a.logError("Asked to addToGridMenu, but gridMenuScope not present.  Timing issue?  Please log issue with ui-grid"):a.logError("addToGridMenu: menuItems must be an array, and is not, not adding any items")},removeFromGridMenu:function(b,c){var d=-1;b&&b.gridMenuScope&&b.gridMenuScope.registeredMenuItems.forEach(function(b,e){b.id===c&&(d>-1?a.logError("removeFromGridMenu: found multiple items with the same id, removing only the last"):d=e)}),d>-1&&b.gridMenuScope.registeredMenuItems.splice(d,1)},getMenuItems:function(c){var e=[];c.grid.options.gridMenuCustomItems&&(angular.isArray(c.grid.options.gridMenuCustomItems)?e=e.concat(c.grid.options.gridMenuCustomItems):a.logError("gridOptions.gridMenuCustomItems must be an array, and is not"));var f=[{title:b.getSafeText("gridMenu.clearAllFilters"),action:function(a){c.grid.clearAllFilters(void 0,!0,void 0)},shown:function(){return c.grid.options.enableFiltering},order:100}];return e=e.concat(f),e=e.concat(c.registeredMenuItems),c.grid.options.gridMenuShowHideColumns!==!1&&(e=e.concat(d.showHideColumns(c))),e.sort(function(a,b){return a.order-b.order}),e},showHideColumns:function(a){var c=[];return a.grid.options.columnDefs&&0!==a.grid.options.columnDefs.length&&0!==a.grid.columns.length?(c.push({title:b.getSafeText("gridMenu.columns"),order:300}),a.grid.options.gridMenuTitleFilter=a.grid.options.gridMenuTitleFilter?a.grid.options.gridMenuTitleFilter:function(a){return a},a.grid.options.columnDefs.forEach(function(b,e){if(b.enableHiding!==!1){var f={icon:"ui-grid-icon-ok",action:function(a){a.stopPropagation(),d.toggleColumnVisibility(this.context.gridCol)},shown:function(){return this.context.gridCol.colDef.visible===!0||void 0===this.context.gridCol.colDef.visible},context:{gridCol:a.grid.getColumn(b.name||b.field)},leaveOpen:!0,order:301+2*e};d.setMenuItemTitle(f,b,a.grid),c.push(f),f={icon:"ui-grid-icon-cancel",action:function(a){a.stopPropagation(),d.toggleColumnVisibility(this.context.gridCol)},shown:function(){return!(this.context.gridCol.colDef.visible===!0||void 0===this.context.gridCol.colDef.visible)},context:{gridCol:a.grid.getColumn(b.name||b.field)},leaveOpen:!0,order:301+2*e+1},d.setMenuItemTitle(f,b,a.grid),c.push(f)}}),c):c},setMenuItemTitle:function(b,c,d){var e=d.options.gridMenuTitleFilter(c.displayName||a.readableColumnName(c.name)||c.field);"string"==typeof e?b.title=e:e.then?(b.title="",e.then(function(a){b.title=a},function(a){b.title=a})):(a.logError("Expected gridMenuTitleFilter to return a string or a promise, it has returned neither, bad config"),b.title="badconfig")},toggleColumnVisibility:function(a){a.colDef.visible=!(a.colDef.visible===!0||void 0===a.colDef.visible),a.grid.refresh(),a.grid.api.core.notifyDataChange(c.dataChange.COLUMN),a.grid.api.core.raise.columnVisibilityChanged(a)}};return d}]).directive("uiGridMenuButton",["gridUtil","uiGridConstants","uiGridGridMenuService","i18nService",function(a,b,c,d){return{priority:0,scope:!0,require:["^uiGrid"],templateUrl:"ui-grid/ui-grid-menu-button",replace:!0,link:function(b,e,f,g){var h=g[0];b.i18n={aria:d.getSafeText("gridMenu.aria")},c.initialize(b,h.grid),b.shown=!1,b.toggleMenu=function(){b.shown?(b.$broadcast("hide-menu"),b.shown=!1):(b.menuItems=c.getMenuItems(b),b.$broadcast("show-menu"),b.shown=!0)},b.$on("menu-hidden",function(){b.shown=!1,a.focus.bySelector(e,".ui-grid-icon-container")})}}}])}(),function(){angular.module("ui.grid").directive("uiGridMenu",["$compile","$timeout","$window","$document","gridUtil","uiGridConstants","i18nService",function(a,b,c,d,e,f,g){var h={priority:0,scope:{menuItems:"=",autoHide:"=?"},require:"?^uiGrid",templateUrl:"ui-grid/uiGridMenu",replace:!1,link:function(a,d,h,i){var j;a.dynamicStyles="",i&&(j=i.grid.gridHeight-30,a.dynamicStyles=[".grid"+i.grid.id+" .ui-grid-menu-mid {","max-height: "+j+"px;","}"].join(" ")),a.i18n={close:g.getSafeText("columnMenu.close")},a.showMenu=function(c,f){a.shown?a.shownMid||(a.shownMid=!0,a.$emit("menu-shown")):(a.shown=!0,b(function(){a.shownMid=!0,a.$emit("menu-shown")}));var g="click";f&&f.originalEvent&&f.originalEvent.type&&"touchstart"===f.originalEvent.type&&(g=f.originalEvent.type),angular.element(document).off("click touchstart",k),b(function(){angular.element(document).on(g,k)}),e.focus.bySelector(d,"button[type=button]",!0)},a.hideMenu=function(c,d){a.shown&&(a.shownMid=!1,b(function(){a.shownMid||(a.shown=!1,a.$emit("menu-hidden"))},200)),angular.element(document).off("click touchstart",k)},a.$on("hide-menu",function(b,c){a.hideMenu(b,c)}),a.$on("show-menu",function(b,c){a.showMenu(b,c)});var k=function(){a.shown&&a.$apply(function(){a.hideMenu()})};("undefined"==typeof a.autoHide||void 0===a.autoHide)&&(a.autoHide=!0),a.autoHide&&angular.element(c).on("resize",k),a.$on("$destroy",function(){angular.element(document).off("click touchstart",k)}),a.$on("$destroy",function(){angular.element(c).off("resize",k)}),i&&a.$on("$destroy",i.grid.api.core.on.scrollBegin(a,k)),a.$on("$destroy",a.$on(f.events.ITEM_DRAGGING,k))},controller:["$scope","$element","$attrs",function(a,b,c){}]};return h}]).directive("uiGridMenuItem",["gridUtil","$compile","i18nService",function(a,b,c){var d={priority:0,scope:{name:"=",active:"=",action:"=",icon:"=",shown:"=",context:"=",templateUrl:"=",leaveOpen:"=",screenReaderOnly:"="},require:["?^uiGrid","^uiGridMenu"],templateUrl:"ui-grid/uiGridMenuItem",replace:!1,compile:function(d,e){return{pre:function(c,d,e,f){f[0],f[1];c.templateUrl&&a.getTemplate(c.templateUrl).then(function(a){var e=angular.element(a),f=b(e)(c);d.replaceWith(f)})},post:function(b,d,e,f){var g=f[0];f[1];("undefined"==typeof b.shown||null===b.shown)&&(b.shown=function(){return!0}),b.itemShown=function(){var a={};return b.context&&(a.context=b.context),"undefined"!=typeof g&&g&&(a.grid=g.grid),b.shown.call(a)},b.itemAction=function(c,e){if(a.logDebug("itemAction"),c.stopPropagation(),"function"==typeof b.action){var f={};b.context&&(f.context=b.context),"undefined"!=typeof g&&g&&(f.grid=g.grid),b.action.call(f,c,e),b.leaveOpen?a.focus.bySelector(angular.element(a.closestElm(d,".ui-grid-menu-items")),"button[type=button]",!0):b.$emit("hide-menu")}},b.i18n=c.get()}}}};return d}])}(),function(){"use strict";var a=angular.module("ui.grid");angular.forEach([{tag:"Src",method:"attr"},{tag:"Text",method:"text"},{tag:"Href",method:"attr"},{tag:"Class",method:"addClass"},{tag:"Html",method:"html"},{tag:"Alt",method:"attr"},{tag:"Style",method:"css"},{tag:"Value",method:"attr"},{tag:"Id",method:"attr"},{tag:"Id",directiveName:"IdGrid",method:"attr",appendGridId:!0},{tag:"Title",method:"attr"},{tag:"Label",method:"attr",aria:!0},{tag:"Labelledby",method:"attr",aria:!0},{tag:"Labelledby",directiveName:"LabelledbyGrid",appendGridId:!0,method:"attr",aria:!0},{tag:"Describedby",method:"attr",aria:!0},{tag:"Describedby",directiveName:"DescribedbyGrid",appendGridId:!0,method:"attr",aria:!0}],function(b){var c="uiGridOneBind",d=(b.aria?c+"Aria":c)+(b.directiveName?b.directiveName:b.tag);a.directive(d,["gridUtil",function(a){return{restrict:"A",require:["?uiGrid","?^uiGrid"],link:function(c,e,f,g){var h=function(b){var e;if(c.grid)e=c.grid;else if(c.col&&c.col.grid)e=c.col.grid;else if(!g.some(function(a){return a&&a.grid?(e=a.grid,!0):void 0}))throw a.logError("["+d+"] A valid grid could not be found to bind id. Are you using this directive within the correct scope? Trying to generate id: [gridID]-"+b),new Error("No valid grid could be found");if(e){var f=new RegExp(e.id.toString());f.test(b)||(b=e.id.toString()+"-"+b)}return b},i=c.$watch(f[d],function(a){if(a){if(b.appendGridId){var c=null;angular.forEach(a.split(" "),function(a){c=(c?c+" ":"")+h(a)}),a=c}switch(b.method){case"attr":b.aria?e[b.method]("aria-"+b.tag.toLowerCase(),a):e[b.method](b.tag.toLowerCase(),a);break;case"addClass":if(angular.isObject(a)&&!angular.isArray(a)){var d=[],f=!1;if(angular.forEach(a,function(a,b){null!==a&&"undefined"!=typeof a&&(f=!0,a&&d.push(b))}),!f)return;a=d}if(!a)return;e.addClass(angular.isArray(a)?a.join(" "):a);break;default:e[b.method](a)}i()}},!0)}}}])})}(),function(){"use strict";var a=angular.module("ui.grid");a.directive("uiGridRenderContainer",["$timeout","$document","uiGridConstants","gridUtil","ScrollEvent",function(a,b,c,d,e){return{replace:!0,transclude:!0,templateUrl:"ui-grid/uiGridRenderContainer",require:["^uiGrid","uiGridRenderContainer"],scope:{containerId:"=",rowContainerName:"=",colContainerName:"=",bindScrollHorizontal:"=",bindScrollVertical:"=",enableVerticalScrollbar:"=",enableHorizontalScrollbar:"="},controller:"uiGridRenderContainer as RenderContainer",compile:function(){return{pre:function(a,b,c,d){var e=d[0],f=d[1],g=a.grid=e.grid;if(!a.rowContainerName)throw"No row render container name specified";if(!a.colContainerName)throw"No column render container name specified";if(!g.renderContainers[a.rowContainerName])throw"Row render container '"+a.rowContainerName+"' is not registered.";if(!g.renderContainers[a.colContainerName])throw"Column render container '"+a.colContainerName+"' is not registered.";var h=a.rowContainer=g.renderContainers[a.rowContainerName],i=a.colContainer=g.renderContainers[a.colContainerName];f.containerId=a.containerId,f.rowContainer=h,f.colContainer=i},post:function(a,b,c,f){function g(){var b="",c=l.canvasWidth,d=l.getViewportWidth(),e=k.getCanvasHeight(),f=k.getViewportHeight();l.needsHScrollbarPlaceholder()&&(f-=j.scrollbarHeight);var g,i;return g=i=l.getHeaderViewportWidth(),b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-canvas { width: "+c+"px; height: "+e+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-canvas { width: "+(c+j.scrollbarWidth)+"px; }",b+=o.explicitHeaderCanvasHeight?"\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-canvas { height: "+o.explicitHeaderCanvasHeight+"px; }":"\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-canvas { height: inherit; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-viewport { width: "+d+"px; height: "+f+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-viewport { width: "+g+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-footer-canvas { width: "+(c+j.scrollbarWidth)+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-footer-viewport { width: "+i+"px; }"}var h=f[0],i=f[1],j=h.grid,k=i.rowContainer,l=i.colContainer,m=null,n=null,o=j.renderContainers[a.containerId];b.addClass("ui-grid-render-container-"+a.containerId),d.on.mousewheel(b,function(a){var b=new e(j,k,l,e.Sources.RenderContainerMouseWheel);if(0!==a.deltaY){var c=-1*a.deltaY*a.deltaFactor;m=i.viewport[0].scrollTop,b.verticalScrollLength=k.getVerticalScrollLength();var f=(m+c)/b.verticalScrollLength;f>=1&&m<b.verticalScrollLength&&(i.viewport[0].scrollTop=b.verticalScrollLength),0>f?f=0:f>1&&(f=1),b.y={percentage:f,pixels:c}}if(0!==a.deltaX){var g=a.deltaX*a.deltaFactor;n=d.normalizeScrollLeft(i.viewport,j),b.horizontalScrollLength=l.getCanvasWidth()-l.getViewportWidth();var h=(n+g)/b.horizontalScrollLength;0>h?h=0:h>1&&(h=1),b.x={percentage:h,pixels:g}}0!==a.deltaY&&(b.atTop(m)||b.atBottom(m))||0!==a.deltaX&&(b.atLeft(n)||b.atRight(n))||(a.preventDefault(),a.stopPropagation(),b.fireThrottledScrollingEvent("",b))}),b.bind("$destroy",function(){b.unbind("keydown"),["touchstart","touchmove","touchend","keydown","wheel","mousewheel","DomMouseScroll","MozMousePixelScroll"].forEach(function(a){b.unbind(a)})}),h.grid.registerStyleComputation({priority:6,func:g})}}}}}]),a.controller("uiGridRenderContainer",["$scope","gridUtil",function(a,b){}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridRow",["gridUtil",function(a){return{replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:{row:"=uiGridRow",rowRenderIndex:"="},compile:function(){return{pre:function(a,b,c,d){function e(){a.row.getRowTemplateFn.then(function(c){var d=a.$new();c(d,function(a,c){h&&(h.remove(),i.$destroy()),b.empty().append(a),h=a,i=d})})}var f=d[0],g=d[1];f.grid;a.grid=f.grid,a.colContainer=g.colContainer;var h,i;e(),a.$watch("row.getRowTemplateFn",function(a,b){a!==b&&e()})},post:function(a,b,c,d){}}}}}])}(),function(){angular.module("ui.grid").directive("uiGridStyle",["gridUtil","$interpolate",function(a,b){return{link:function(a,c,d,e){var f=b(c.text(),!0);f&&a.$watch(f,function(a){c.text(a)})}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridViewport",["gridUtil","ScrollEvent","uiGridConstants","$log",function(a,b,c,d){return{replace:!0,scope:{},controllerAs:"Viewport",templateUrl:"ui-grid/uiGridViewport",require:["^uiGrid","^uiGridRenderContainer"],link:function(c,d,e,f){function g(e){var f=d[0].scrollTop,g=a.normalizeScrollLeft(d,p),h=n.scrollVertical(f),i=o.scrollHorizontal(g),j=new b(p,n,o,b.Sources.ViewPortScroll);j.newScrollLeft=g,j.newScrollTop=f,i>-1&&(j.x={percentage:i}),h>-1&&(j.y={percentage:h}),p.scrollContainers(c.$parent.containerId,j)}function h(a){m.prevScrollArgs=a;var b=a.getNewScrollTop(n,m.viewport);d[0].scrollTop=b}function i(b){m.prevScrollArgs=b;var c=b.getNewScrollLeft(o,m.viewport);d[0].scrollLeft=a.denormalizeScrollLeft(m.viewport,c,p)}function j(b){var c=b.getNewScrollLeft(o,m.viewport);m.headerViewport&&(m.headerViewport.scrollLeft=a.denormalizeScrollLeft(m.viewport,c,p))}function k(b){var c=b.getNewScrollLeft(o,m.viewport);m.footerViewport&&(m.footerViewport.scrollLeft=a.denormalizeScrollLeft(m.viewport,c,p))}var l=f[0],m=f[1];c.containerCtrl=m;var n=m.rowContainer,o=m.colContainer,p=l.grid;c.grid=l.grid,c.rowContainer=m.rowContainer,c.colContainer=m.colContainer,m.viewport=d,d.on("scroll",g);c.$parent.bindScrollVertical&&p.addVerticalScrollSync(c.$parent.containerId,h),c.$parent.bindScrollHorizontal&&(p.addHorizontalScrollSync(c.$parent.containerId,i),p.addHorizontalScrollSync(c.$parent.containerId+"header",j),p.addHorizontalScrollSync(c.$parent.containerId+"footer",k))},controller:["$scope",function(a){this.rowStyle=function(b){var c=a.rowContainer,d=a.colContainer,e={};if(0===b&&0!==c.currentTopRow){var f=c.currentTopRow*c.grid.options.rowHeight;e["margin-top"]=f+"px"}return 0!==d.currentFirstColumn&&(d.grid.isRTL()?e["margin-right"]=d.columnOffset+"px":e["margin-left"]=d.columnOffset+"px"),e}}]}}])}(),function(){angular.module("ui.grid").directive("uiGridVisible",function(){return function(a,b,c){a.$watch(c.uiGridVisible,function(a){b[a?"removeClass":"addClass"]("ui-grid-invisible")})}})}(),function(){"use strict";function a(a,b,c,d,e,f){return{templateUrl:"ui-grid/ui-grid",scope:{uiGrid:"="},replace:!0,transclude:!0,controller:"uiGridController",compile:function(){return{post:function(a,b,g,h){function i(){b[0].offsetWidth<=0&&p>q?(setTimeout(i,o),q++):c(k)}function j(){angular.element(d).on("resize",m),b.on("$destroy",function(){angular.element(d).off("resize",m)}),a.$watch(function(){return n.hasLeftContainer()},function(a,b){a!==b&&n.refreshCanvas(!0)}),a.$watch(function(){return n.hasRightContainer()},function(a,b){a!==b&&n.refreshCanvas(!0)})}function k(){n.gridWidth=a.gridWidth=e.elementWidth(b),n.canvasWidth=h.grid.gridWidth,n.gridHeight=a.gridHeight=e.elementHeight(b),n.gridHeight<=n.options.rowHeight&&n.options.enableMinHeightCheck&&l(),n.refreshCanvas(!0)}function l(){var c=n.options.minRowsToShow*n.options.rowHeight,d=n.options.showHeader?n.options.headerRowHeight:0,g=n.calcFooterHeight(),h=0;n.options.enableHorizontalScrollbar===f.scrollbars.ALWAYS&&(h=e.getScrollbarWidth());var i=0;if(angular.forEach(n.options.columnDefs,function(a){a.hasOwnProperty("filter")?1>i&&(i=1):a.hasOwnProperty("filters")&&i<a.filters.length&&(i=a.filters.length)}),n.options.enableFiltering){var j=n.options.columnDefs.every(function(a){return a.enableFiltering===!1});j||i++}var k=i*d,l=d+c+g+h+k;b.css("height",l+"px"),n.gridHeight=a.gridHeight=e.elementHeight(b)}function m(c){n.gridWidth=a.gridWidth=e.elementWidth(b),n.gridHeight=a.gridHeight=e.elementHeight(b),n.refreshCanvas(!0);
-}var n=h.grid;h.scrollbars=[],n.element=b;var o=100,p=20,q=0;j(),k(),n.renderingComplete(),i()}}}}}angular.module("ui.grid").controller("uiGridController",["$scope","$element","$attrs","gridUtil","$q","uiGridConstants","$templateCache","gridClassFactory","$timeout","$parse","$compile",function(a,b,c,d,e,f,g,h,i,j,k){function l(a,b){a&&a!==b&&(n.grid.options.columnDefs=a,n.grid.buildColumns({orderByColumnDefs:!0}).then(function(){n.grid.preCompileCellTemplates(),n.grid.callDataChangeCallbacks(f.dataChange.COLUMN)}))}function m(b){var d=[];if(n.grid.options.fastWatch&&(b=angular.isString(a.uiGrid.data)?n.grid.appScope[a.uiGrid.data]:a.uiGrid.data),p=b,b){var g=n.grid.columns.length>(n.grid.rowHeaderColumns?n.grid.rowHeaderColumns.length:0);!g&&!c.uiGridColumns&&0===n.grid.options.columnDefs.length&&b.length>0&&n.grid.buildColumnDefsFromData(b),!g&&(n.grid.options.columnDefs.length>0||b.length>0)&&d.push(n.grid.buildColumns().then(function(){n.grid.preCompileCellTemplates()})),e.all(d).then(function(){n.grid.modifyRows(p).then(function(){n.grid.redrawInPlace(!0),a.$evalAsync(function(){n.grid.refreshCanvas(!0),n.grid.callDataChangeCallbacks(f.dataChange.ROW)})})})}}var n=this;n.grid=h.createGrid(a.uiGrid),n.grid.appScope=n.grid.appScope||a.$parent,b.addClass("grid"+n.grid.id),n.grid.rtl="rtl"===d.getStyles(b[0]).direction,a.grid=n.grid,c.uiGridColumns&&c.$observe("uiGridColumns",function(a){n.grid.options.columnDefs=a,n.grid.buildColumns().then(function(){n.grid.preCompileCellTemplates(),n.grid.refreshCanvas(!0)})});var o=[];n.grid.options.fastWatch?(n.uiGrid=a.uiGrid,angular.isString(a.uiGrid.data)?(o.push(a.$parent.$watch(a.uiGrid.data,m)),o.push(a.$parent.$watch(function(){return n.grid.appScope[a.uiGrid.data]?n.grid.appScope[a.uiGrid.data].length:void 0},m))):(o.push(a.$parent.$watch(function(){return a.uiGrid.data},m)),o.push(a.$parent.$watch(function(){return a.uiGrid.data.length},m))),o.push(a.$parent.$watch(function(){return a.uiGrid.columnDefs},l)),o.push(a.$parent.$watch(function(){return a.uiGrid.columnDefs.length},l))):(angular.isString(a.uiGrid.data)?o.push(a.$parent.$watchCollection(a.uiGrid.data,m)):o.push(a.$parent.$watchCollection(function(){return a.uiGrid.data},m)),o.push(a.$parent.$watchCollection(function(){return a.uiGrid.columnDefs},l)));var p,q=a.$watch(function(){return n.grid.styleComputations},function(){n.grid.refreshCanvas(!0)});a.$on("$destroy",function(){o.forEach(function(a){a()}),q()}),n.fireEvent=function(b,c){("undefined"==typeof c||void 0===c)&&(c={}),("undefined"==typeof c.grid||void 0===c.grid)&&(c.grid=n.grid),a.$broadcast(b,c)},n.innerCompile=function(b){k(b)(a)}}]),angular.module("ui.grid").directive("uiGrid",a),a.$inject=["$compile","$templateCache","$timeout","$window","gridUtil","uiGridConstants"]}(),function(){"use strict";angular.module("ui.grid").directive("uiGridPinnedContainer",["gridUtil",function(a){return{restrict:"EA",replace:!0,template:'<div class="ui-grid-pinned-container"><div ui-grid-render-container container-id="side" row-container-name="\'body\'" col-container-name="side" bind-scroll-vertical="true" class="{{ side }} ui-grid-render-container-{{ side }}"></div></div>',scope:{side:"=uiGridPinnedContainer"},require:"^uiGrid",compile:function(){return{post:function(a,b,c,d){function e(){var a=this,b=0;a.visibleColumnCache.forEach(function(a){b+=a.drawnWidth});var c=a.getViewportAdjustment();return b+=c.width}function f(){if("left"===a.side||"right"===a.side){for(var b=h.renderContainers[a.side].visibleColumnCache,c=0,d=0;d<b.length;d++){var e=b[d];c+=e.drawnWidth||e.width||0}return c}}function g(){var c="";return("left"===a.side||"right"===a.side)&&(i=f(),b.attr("style",null),c+=".grid"+h.id+" .ui-grid-pinned-container-"+a.side+", .grid"+h.id+" .ui-grid-pinned-container-"+a.side+" .ui-grid-render-container-"+a.side+" .ui-grid-viewport { width: "+i+"px; } "),c}var h=d.grid,i=0;b.addClass("ui-grid-pinned-container-"+a.side),("left"===a.side||"right"===a.side)&&(h.renderContainers[a.side].getViewportWidth=e),h.renderContainers.body.registerViewportAdjuster(function(b){return i=f(),b.width-=i,b.side=a.side,b}),h.registerStyleComputation({priority:15,func:g})}}}}}])}(),function(){angular.module("ui.grid").factory("Grid",["$q","$compile","$parse","gridUtil","uiGridConstants","GridOptions","GridColumn","GridRow","GridApi","rowSorter","rowSearcher","GridRenderContainer","$timeout","ScrollEvent",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){function o(){}var p=function(a){function b(a){g.isScrollingVertically=!1,g.api.core.raise.scrollEnd(a),g.scrollDirection=e.scrollDirection.NONE}function c(a){g.isScrollingHorizontally=!1,g.api.core.raise.scrollEnd(a),g.scrollDirection=e.scrollDirection.NONE}var g=this;if(void 0===a||"undefined"==typeof a.id||!a.id)throw new Error("No ID provided. An ID must be given when creating a grid.");if(!/^[_a-zA-Z0-9-]+$/.test(a.id))throw new Error("Grid id '"+a.id+'" is invalid. It must follow CSS selector syntax rules.');g.id=a.id,delete a.id,g.options=f.initialize(a),g.appScope=g.options.appScopeProvider,g.headerHeight=g.options.headerRowHeight,g.footerHeight=g.calcFooterHeight(),g.columnFooterHeight=g.calcColumnFooterHeight(),g.rtl=!1,g.gridHeight=0,g.gridWidth=0,g.columnBuilders=[],g.rowBuilders=[],g.rowsProcessors=[],g.columnsProcessors=[],g.styleComputations=[],g.viewportAdjusters=[],g.rowHeaderColumns=[],g.dataChangeCallbacks={},g.verticalScrollSyncCallBackFns={},g.horizontalScrollSyncCallBackFns={},g.renderContainers={},g.renderContainers.body=new l("body",g),g.cellValueGetterCache={},g.getRowTemplateFn=null,g.rows=[],g.columns=[],g.isScrollingVertically=!1,g.isScrollingHorizontally=!1,g.scrollDirection=e.scrollDirection.NONE,g.disableScrolling=!1;var h=d.debounce(b,g.options.scrollDebounce),k=d.debounce(b,0),m=d.debounce(c,g.options.scrollDebounce),n=d.debounce(c,0);g.flagScrollingVertically=function(a){g.isScrollingVertically||g.isScrollingHorizontally||g.api.core.raise.scrollBegin(a),g.isScrollingVertically=!0,0!==g.options.scrollDebounce&&a.withDelay?h(a):k(a)},g.flagScrollingHorizontally=function(a){g.isScrollingVertically||g.isScrollingHorizontally||g.api.core.raise.scrollBegin(a),g.isScrollingHorizontally=!0,0!==g.options.scrollDebounce&&a.withDelay?m(a):n(a)},g.scrollbarHeight=0,g.scrollbarWidth=0,g.options.enableHorizontalScrollbar===e.scrollbars.ALWAYS&&(g.scrollbarHeight=d.getScrollbarWidth()),g.options.enableVerticalScrollbar===e.scrollbars.ALWAYS&&(g.scrollbarWidth=d.getScrollbarWidth()),g.api=new i(g),g.api.registerMethod("core","refresh",this.refresh),g.api.registerMethod("core","queueGridRefresh",this.queueGridRefresh),g.api.registerMethod("core","refreshRows",this.refreshRows),g.api.registerMethod("core","queueRefresh",this.queueRefresh),g.api.registerMethod("core","handleWindowResize",this.handleWindowResize),g.api.registerMethod("core","addRowHeaderColumn",this.addRowHeaderColumn),g.api.registerMethod("core","scrollToIfNecessary",function(a,b){return g.scrollToIfNecessary(a,b)}),g.api.registerMethod("core","scrollTo",function(a,b){return g.scrollTo(a,b)}),g.api.registerMethod("core","registerRowsProcessor",this.registerRowsProcessor),g.api.registerMethod("core","registerColumnsProcessor",this.registerColumnsProcessor),g.api.registerMethod("core","sortHandleNulls",j.handleNulls),g.api.registerEvent("core","sortChanged"),g.api.registerEvent("core","columnVisibilityChanged"),g.api.registerMethod("core","notifyDataChange",this.notifyDataChange),g.api.registerMethod("core","clearAllFilters",this.clearAllFilters),g.registerDataChangeCallback(g.columnRefreshCallback,[e.dataChange.COLUMN]),g.registerDataChangeCallback(g.processRowsCallback,[e.dataChange.EDIT]),g.registerDataChangeCallback(g.updateFooterHeightCallback,[e.dataChange.OPTIONS]),g.registerStyleComputation({priority:10,func:g.getFooterStyles})};return p.prototype.calcFooterHeight=function(){if(!this.hasFooter())return 0;var a=0;return this.options.showGridFooter&&(a+=this.options.gridFooterHeight),a+=this.calcColumnFooterHeight()},p.prototype.calcColumnFooterHeight=function(){var a=0;return this.options.showColumnFooter&&(a+=this.options.columnFooterHeight),a},p.prototype.getFooterStyles=function(){var a=".grid"+this.id+" .ui-grid-footer-aggregates-row { height: "+this.options.columnFooterHeight+"px; }";return a+=" .grid"+this.id+" .ui-grid-footer-info { height: "+this.options.gridFooterHeight+"px; }"},p.prototype.hasFooter=function(){return this.options.showGridFooter||this.options.showColumnFooter},p.prototype.isRTL=function(){return this.rtl},p.prototype.registerColumnBuilder=function(a){this.columnBuilders.push(a)},p.prototype.buildColumnDefsFromData=function(a){this.options.columnDefs=d.getColumnsFromData(a,this.options.excludeProperties)},p.prototype.registerRowBuilder=function(a){this.rowBuilders.push(a)},p.prototype.registerDataChangeCallback=function(a,b,c){var f=d.nextUid();b||(b=[e.dataChange.ALL]),Array.isArray(b)||d.logError("Expected types to be an array or null in registerDataChangeCallback, value passed was: "+b),this.dataChangeCallbacks[f]={callback:a,types:b,_this:c};var g=this,h=function(){delete g.dataChangeCallbacks[f]};return h},p.prototype.callDataChangeCallbacks=function(a,b){angular.forEach(this.dataChangeCallbacks,function(b,c){(-1!==b.types.indexOf(e.dataChange.ALL)||-1!==b.types.indexOf(a)||a===e.dataChange.ALL)&&(b._this?b.callback.apply(b._this,this):b.callback(this))},this)},p.prototype.notifyDataChange=function(a){var b=e.dataChange;a===b.ALL||a===b.COLUMN||a===b.EDIT||a===b.ROW||a===b.OPTIONS?this.callDataChangeCallbacks(a):d.logError("Notified of a data change, but the type was not recognised, so no action taken, type was: "+a)},p.prototype.columnRefreshCallback=function(a){a.buildColumns(),a.queueGridRefresh()},p.prototype.processRowsCallback=function(a){a.queueGridRefresh()},p.prototype.updateFooterHeightCallback=function(a){a.footerHeight=a.calcFooterHeight(),a.columnFooterHeight=a.calcColumnFooterHeight()},p.prototype.getColumn=function(a){var b=this.columns.filter(function(b){return b.colDef.name===a});return b.length>0?b[0]:null},p.prototype.getColDef=function(a){var b=this.options.columnDefs.filter(function(b){return b.name===a});return b.length>0?b[0]:null},p.prototype.assignTypes=function(){var a=this;a.options.columnDefs.forEach(function(b,c){if(!b.type){var e=new g(b,c,a),f=a.rows.length>0?a.rows[0]:null;f?b.type=d.guessType(a.getCellValue(f,e)):b.type="string"}})},p.prototype.isRowHeaderColumn=function(a){return-1!==this.rowHeaderColumns.indexOf(a)},p.prototype.addRowHeaderColumn=function(a){var b=this,c=new g(a,d.nextUid(),b);c.isRowHeader=!0,b.isRTL()?(b.createRightContainer(),c.renderContainer="right"):(b.createLeftContainer(),c.renderContainer="left"),b.columnBuilders[0](a,c,b.options).then(function(){c.enableFiltering=!1,c.enableSorting=!1,c.enableHiding=!1,b.rowHeaderColumns.push(c),b.buildColumns().then(function(){b.preCompileCellTemplates(),b.queueGridRefresh()})})},p.prototype.getOnlyDataColumns=function(){var a=this,b=[];return a.columns.forEach(function(c){-1===a.rowHeaderColumns.indexOf(c)&&b.push(c)}),b},p.prototype.buildColumns=function(b){var c={orderByColumnDefs:!1};angular.extend(c,b);var e,f=this,h=[],i=f.rowHeaderColumns.length;for(e=0;e<f.columns.length;e++)f.getColDef(f.columns[e].name)||(f.columns.splice(e,1),e--);if(f.rowHeaderColumns.forEach(function(a){f.columns.unshift(a)}),f.options.columnDefs.forEach(function(a,b){f.preprocessColDef(a);var c=f.getColumn(a.name);c?c.updateColumnDef(a,!1):(c=new g(a,d.nextUid(),f),f.columns.splice(b+i,0,c)),f.columnBuilders.forEach(function(b){h.push(b.call(f,a,c,f.options))})}),c.orderByColumnDefs){var j=f.columns.slice(0),k=Math.min(f.options.columnDefs.length,f.columns.length);for(e=0;k>e;e++)f.columns[e+i].name!==f.options.columnDefs[e].name?j[e+i]=f.getColumn(f.options.columnDefs[e].name):j[e+i]=f.columns[e+i];f.columns.length=0,Array.prototype.splice.apply(f.columns,[0,0].concat(j))}return a.all(h).then(function(){f.rows.length>0&&f.assignTypes()})},p.prototype.preCompileCellTemplates=function(){var a=this,c=function(c){var d=c.cellTemplate.replace(e.MODEL_COL_FIELD,a.getQualifiedColField(c));d=d.replace(e.COL_FIELD,"grid.getCellValue(row, col)");var f=b(d);c.compiledElementFn=f,c.compiledElementFnDefer&&c.compiledElementFnDefer.resolve(c.compiledElementFn)};this.columns.forEach(function(a){a.cellTemplate?c(a):a.cellTemplatePromise&&a.cellTemplatePromise.then(function(){c(a)})})},p.prototype.getQualifiedColField=function(a){return"row.entity."+d.preEval(a.field)},p.prototype.createLeftContainer=function(){this.hasLeftContainer()||(this.renderContainers.left=new l("left",this,{disableColumnOffset:!0}))},p.prototype.createRightContainer=function(){this.hasRightContainer()||(this.renderContainers.right=new l("right",this,{disableColumnOffset:!0}))},p.prototype.hasLeftContainer=function(){return void 0!==this.renderContainers.left},p.prototype.hasRightContainer=function(){return void 0!==this.renderContainers.right},p.prototype.preprocessColDef=function(a){var b=this;if(!a.field&&!a.name)throw new Error("colDef.name or colDef.field property is required");if(void 0===a.name&&void 0!==a.field){for(var c=a.field,d=2;b.getColumn(c);)c=a.field+d.toString(),d++;a.name=c}},p.prototype.newInN=function(a,b,c,d){for(var e=this,f=[],g=0;g<b.length;g++){for(var h=d?b[g][d]:b[g],i=!1,j=0;j<a.length;j++){var k=c?a[j][c]:a[j];if(e.options.rowEquality(h,k)){i=!0;break}}i||f.push(h)}return f},p.prototype.getRow=function(a,b){var c=this;b="undefined"==typeof b?c.rows:b;var d=b.filter(function(b){return c.options.rowEquality(b.entity,a)});return d.length>0?d[0]:null},p.prototype.modifyRows=function(b){var c=this,d=c.rows.slice(0),e=c.rowHashMap||c.createRowHashMap();c.rowHashMap=c.createRowHashMap(),c.rows.length=0,b.forEach(function(a,b){var f;f=c.options.enableRowHashing?e.get(a):c.getRow(a,d),f||(f=c.processRowBuilders(new h(a,b,c))),c.rows.push(f),c.rowHashMap.put(a,f)}),c.assignTypes();var f=a.when(c.processRowsProcessors(c.rows)).then(function(a){return c.setVisibleRows(a)}),g=a.when(c.processColumnsProcessors(c.columns)).then(function(a){return c.setVisibleColumns(a)});return a.all([f,g])},p.prototype.addRows=function(a){for(var b=this,c=b.rows.length,d=0;d<a.length;d++){var e=b.processRowBuilders(new h(a[d],d+c,b));if(b.options.enableRowHashing){var f=b.rowHashMap.get(e.entity);f&&(f.row=e)}b.rows.push(e)}},p.prototype.processRowBuilders=function(a){var b=this;return b.rowBuilders.forEach(function(c){c.call(b,a,b.options)}),a},p.prototype.registerStyleComputation=function(a){this.styleComputations.push(a)},p.prototype.registerRowsProcessor=function(a,b){if(!angular.isFunction(a))throw"Attempt to register non-function rows processor: "+a;this.rowsProcessors.push({processor:a,priority:b}),this.rowsProcessors.sort(function(a,b){return a.priority-b.priority})},p.prototype.removeRowsProcessor=function(a){var b=-1;this.rowsProcessors.forEach(function(c,d){c.processor===a&&(b=d)}),-1!==b&&this.rowsProcessors.splice(b,1)},p.prototype.processRowsProcessors=function(b){function c(b,e){var g=d.rowsProcessors[b].processor;return a.when(g.call(d,e,d.columns)).then(function(a){if(!a)throw"Processor at index "+b+" did not return a set of renderable rows";if(!angular.isArray(a))throw"Processor at index "+b+" did not return an array";return b++,b<=d.rowsProcessors.length-1?c(b,a):void f.resolve(a)})}var d=this,e=b.slice(0);if(0===d.rowsProcessors.length)return a.when(e);var f=a.defer();return c(0,e),f.promise},p.prototype.setVisibleRows=function(a){var b=this;for(var c in b.renderContainers){var d=b.renderContainers[c];d.canvasHeightShouldUpdate=!0,"undefined"==typeof d.visibleRowCache?d.visibleRowCache=[]:d.visibleRowCache.length=0}for(var e=0;e<a.length;e++){var f=a[e],g="undefined"!=typeof f.renderContainer&&f.renderContainer?f.renderContainer:"body";f.visible&&b.renderContainers[g].visibleRowCache.push(f)}b.api.core.raise.rowsRendered(this.api)},p.prototype.registerColumnsProcessor=function(a,b){if(!angular.isFunction(a))throw"Attempt to register non-function rows processor: "+a;this.columnsProcessors.push({processor:a,priority:b}),this.columnsProcessors.sort(function(a,b){return a.priority-b.priority})},p.prototype.removeColumnsProcessor=function(a){var b=this.columnsProcessors.indexOf(a);"undefined"!=typeof b&&void 0!==b&&this.columnsProcessors.splice(b,1)},p.prototype.processColumnsProcessors=function(b){function c(b,g){var h=d.columnsProcessors[b].processor;return a.when(h.call(d,g,d.rows)).then(function(a){if(!a)throw"Processor at index "+b+" did not return a set of renderable rows";if(!angular.isArray(a))throw"Processor at index "+b+" did not return an array";return b++,b<=d.columnsProcessors.length-1?c(b,e):void f.resolve(e)})}var d=this,e=b.slice(0);if(0===d.columnsProcessors.length)return a.when(e);var f=a.defer();return c(0,e),f.promise},p.prototype.setVisibleColumns=function(a){var b=this;for(var c in b.renderContainers){var d=b.renderContainers[c];d.visibleColumnCache.length=0}for(var e=0;e<a.length;e++){var f=a[e];f.visible&&("undefined"!=typeof f.renderContainer&&f.renderContainer?b.renderContainers[f.renderContainer].visibleColumnCache.push(f):b.renderContainers.body.visibleColumnCache.push(f))}},p.prototype.handleWindowResize=function(a){var b=this;return b.gridWidth=d.elementWidth(b.element),b.gridHeight=d.elementHeight(b.element),b.queueRefresh()},p.prototype.queueRefresh=function(){var a=this;return a.refreshCanceller&&m.cancel(a.refreshCanceller),a.refreshCanceller=m(function(){a.refreshCanvas(!0)}),a.refreshCanceller.then(function(){a.refreshCanceller=null}),a.refreshCanceller},p.prototype.queueGridRefresh=function(){var a=this;return a.gridRefreshCanceller&&m.cancel(a.gridRefreshCanceller),a.gridRefreshCanceller=m(function(){a.refresh(!0)}),a.gridRefreshCanceller.then(function(){a.gridRefreshCanceller=null}),a.gridRefreshCanceller},p.prototype.updateCanvasHeight=function(){var a=this;for(var b in a.renderContainers)if(a.renderContainers.hasOwnProperty(b)){var c=a.renderContainers[b];c.canvasHeightShouldUpdate=!0}},p.prototype.buildStyles=function(){var a=this;a.customStyles="",a.styleComputations.sort(function(a,b){return null===a.priority?1:null===b.priority?-1:null===a.priority&&null===b.priority?0:a.priority-b.priority}).forEach(function(b){var c=b.func.call(a);angular.isString(c)&&(a.customStyles+="\n"+c)})},p.prototype.minColumnsToRender=function(){var a=this,b=this.getViewportWidth(),c=0,d=0;return a.columns.forEach(function(e,f){if(b>d)d+=e.drawnWidth,c++;else{for(var g=0,h=f;h>=f-c;h--)g+=a.columns[h].drawnWidth;b>g&&c++}}),c},p.prototype.getBodyHeight=function(){var a=this.getViewportHeight();return a},p.prototype.getViewportHeight=function(){var a=this,b=this.gridHeight-this.headerHeight-this.footerHeight,c=a.getViewportAdjustment();return b+=c.height},p.prototype.getViewportWidth=function(){var a=this,b=this.gridWidth,c=a.getViewportAdjustment();return b+=c.width},p.prototype.getHeaderViewportWidth=function(){var a=this.getViewportWidth();return a},p.prototype.addVerticalScrollSync=function(a,b){this.verticalScrollSyncCallBackFns[a]=b},p.prototype.addHorizontalScrollSync=function(a,b){this.horizontalScrollSyncCallBackFns[a]=b},p.prototype.scrollContainers=function(a,b){if(b.y){var c=["body","left","right"];this.flagScrollingVertically(b),"body"===a?c=["left","right"]:"left"===a?c=["body","right"]:"right"===a&&(c=["body","left"]);for(var d=0;d<c.length;d++){var e=c[d];this.verticalScrollSyncCallBackFns[e]&&this.verticalScrollSyncCallBackFns[e](b)}}if(b.x){var f=["body","bodyheader","bodyfooter"];this.flagScrollingHorizontally(b),"body"===a&&(f=["bodyheader","bodyfooter"]);for(var g=0;g<f.length;g++){var h=f[g];this.horizontalScrollSyncCallBackFns[h]&&this.horizontalScrollSyncCallBackFns[h](b)}}},p.prototype.registerViewportAdjuster=function(a){this.viewportAdjusters.push(a)},p.prototype.removeViewportAdjuster=function(a){var b=this.viewportAdjusters.indexOf(a);"undefined"!=typeof b&&void 0!==b&&this.viewportAdjusters.splice(b,1)},p.prototype.getViewportAdjustment=function(){var a=this,b={height:0,width:0};return a.viewportAdjusters.forEach(function(a){b=a.call(this,b)}),b},p.prototype.getVisibleRowCount=function(){return this.renderContainers.body.visibleRowCache.length},p.prototype.getVisibleRows=function(){return this.renderContainers.body.visibleRowCache},p.prototype.getVisibleColumnCount=function(){return this.renderContainers.body.visibleColumnCache.length},p.prototype.searchRows=function(a){return k.search(this,a,this.columns)},p.prototype.sortByColumn=function(a){return j.sort(this,a,this.columns)},p.prototype.getCellValue=function(a,b){return"undefined"!=typeof a.entity["$$"+b.uid]?a.entity["$$"+b.uid].rendered:this.options.flatEntityAccess&&"undefined"!=typeof b.field?a.entity[b.field]:(b.cellValueGetterCache||(b.cellValueGetterCache=c(a.getEntityQualifiedColField(b))),b.cellValueGetterCache(a))},p.prototype.getCellDisplayValue=function(a,b){if(!b.cellDisplayGetterCache){var d=b.cellFilter?" | "+b.cellFilter:"";"undefined"!=typeof a.entity["$$"+b.uid]?b.cellDisplayGetterCache=c(a.entity["$$"+b.uid].rendered+d):this.options.flatEntityAccess&&"undefined"!=typeof b.field?b.cellDisplayGetterCache=c(a.entity[b.field]+d):b.cellDisplayGetterCache=c(a.getEntityQualifiedColField(b)+d)}return b.cellDisplayGetterCache(a)},p.prototype.getNextColumnSortPriority=function(){var a=this,b=0;return a.columns.forEach(function(a){a.sort&&a.sort.priority&&a.sort.priority>b&&(b=a.sort.priority)}),b+1},p.prototype.resetColumnSorting=function(a){var b=this;b.columns.forEach(function(b){b===a||b.suppressRemoveSort||(b.sort={})})},p.prototype.getColumnSorting=function(){var a,b=this,c=[];return a=b.columns.slice(0),a.sort(j.prioritySort).forEach(function(a){a.sort&&"undefined"!=typeof a.sort.direction&&a.sort.direction&&(a.sort.direction===e.ASC||a.sort.direction===e.DESC)&&c.push(a)}),c},p.prototype.sortColumn=function(b,c,d){var e=this,f=null;if("undefined"==typeof b||!b)throw new Error("No column parameter provided");if("boolean"==typeof c?d=c:f=c,d?b.sort.priority||(b.sort.priority=e.getNextColumnSortPriority()):(e.resetColumnSorting(b),b.sort.priority=0,b.sort.priority=e.getNextColumnSortPriority()),f)b.sort.direction=f;else{var g=b.sortDirectionCycle.indexOf(b.sort.direction?b.sort.direction:null);g=(g+1)%b.sortDirectionCycle.length,b.colDef&&b.suppressRemoveSort&&!b.sortDirectionCycle[g]&&(g=(g+1)%b.sortDirectionCycle.length),b.sortDirectionCycle[g]?b.sort.direction=b.sortDirectionCycle[g]:b.sort={}}return e.api.core.raise.sortChanged(e,e.getColumnSorting()),a.when(b)},p.prototype.renderingComplete=function(){angular.isFunction(this.options.onRegisterApi)&&this.options.onRegisterApi(this.api),this.api.core.raise.renderingComplete(this.api)},p.prototype.createRowHashMap=function(){var a=this,b=new o;return b.grid=a,b},p.prototype.refresh=function(b){var c=this,d=c.processRowsProcessors(c.rows).then(function(a){c.setVisibleRows(a)}),e=c.processColumnsProcessors(c.columns).then(function(a){c.setVisibleColumns(a)});return a.all([d,e]).then(function(){c.redrawInPlace(b),c.refreshCanvas(!0)})},p.prototype.refreshRows=function(){var a=this;return a.processRowsProcessors(a.rows).then(function(b){a.setVisibleRows(b),a.redrawInPlace(),a.refreshCanvas(!0)})},p.prototype.refreshCanvas=function(b){var c=this;b&&c.buildStyles();var e=a.defer(),f=[];for(var g in c.renderContainers)if(c.renderContainers.hasOwnProperty(g)){var h=c.renderContainers[g];if(null===h.canvasWidth||isNaN(h.canvasWidth))continue;(h.header||h.headerCanvas)&&(h.explicitHeaderHeight=h.explicitHeaderHeight||null,h.explicitHeaderCanvasHeight=h.explicitHeaderCanvasHeight||null,f.push(h))}return f.length>0?(b&&c.buildStyles(),m(function(){var a,g,h=!1,i=0,j=0,k=function(a,b){return a!==b&&(h=!0),b};for(a=0;a<f.length;a++)if(g=f[a],null!==g.canvasWidth&&!isNaN(g.canvasWidth)){if(g.header){var l=g.headerHeight=k(g.headerHeight,parseInt(d.outerElementHeight(g.header),10)),m=d.getBorderSize(g.header,"top"),n=d.getBorderSize(g.header,"bottom"),o=parseInt(l-m-n,10);o=0>o?0:o,g.innerHeaderHeight=o,!g.explicitHeaderHeight&&o>i&&(i=o)}if(g.headerCanvas){var p=g.headerCanvasHeight=k(g.headerCanvasHeight,parseInt(d.outerElementHeight(g.headerCanvas),10));!g.explicitHeaderCanvasHeight&&p>j&&(j=p)}}for(a=0;a<f.length;a++)g=f[a],i>0&&"undefined"!=typeof g.headerHeight&&null!==g.headerHeight&&(g.explicitHeaderHeight||g.headerHeight<i)&&(g.explicitHeaderHeight=k(g.explicitHeaderHeight,i)),j>0&&"undefined"!=typeof g.headerCanvasHeight&&null!==g.headerCanvasHeight&&(g.explicitHeaderCanvasHeight||g.headerCanvasHeight<j)&&(g.explicitHeaderCanvasHeight=k(g.explicitHeaderCanvasHeight,j));b&&h&&c.buildStyles(),e.resolve()})):m(function(){e.resolve()}),e.promise},p.prototype.redrawInPlace=function(a){var b=this;for(var c in b.renderContainers){var d=b.renderContainers[c];a?(d.adjustRows(d.prevScrollTop,null),d.adjustColumns(d.prevScrollLeft,null)):(d.adjustRows(null,d.prevScrolltopPercentage),d.adjustColumns(null,d.prevScrollleftPercentage))}},p.prototype.hasLeftContainerColumns=function(){return this.hasLeftContainer()&&this.renderContainers.left.renderedColumns.length>0},p.prototype.hasRightContainerColumns=function(){return this.hasRightContainer()&&this.renderContainers.right.renderedColumns.length>0},p.prototype.scrollToIfNecessary=function(b,c){var d=this,e=new n(d,"uiGrid.scrollToIfNecessary"),f=d.renderContainers.body.visibleRowCache,g=d.renderContainers.body.visibleColumnCache,h=d.renderContainers.body.prevScrollTop+d.headerHeight;h=0>h?0:h;var i=d.renderContainers.body.prevScrollLeft,j=d.renderContainers.body.prevScrollTop+d.gridHeight-d.renderContainers.body.headerHeight-d.footerHeight-d.scrollbarWidth,k=d.renderContainers.body.prevScrollLeft+Math.ceil(d.renderContainers.body.getViewportWidth());if(null!==b){var l=f.indexOf(b),m=d.renderContainers.body.getCanvasHeight()-d.renderContainers.body.getViewportHeight(),o=l*d.options.rowHeight+d.headerHeight;o=0>o?0:o;var p,q;h>o?(p=d.renderContainers.body.prevScrollTop-(h-o),q=p/m,e.y={percentage:q}):o>j&&(p=o-j+d.renderContainers.body.prevScrollTop,q=p/m,e.y={percentage:q})}if(null!==c){for(var r=g.indexOf(c),s=d.renderContainers.body.getCanvasWidth()-d.renderContainers.body.getViewportWidth(),t=0,u=0;r>u;u++){var v=g[u];t+=v.drawnWidth}t=0>t?0:t;var w=t+c.drawnWidth;w=0>w?0:w;var x,y;i>t?(x=d.renderContainers.body.prevScrollLeft-(i-t),y=x/s,y=y>1?1:y,e.x={percentage:y}):w>k&&(x=w-k+d.renderContainers.body.prevScrollLeft,y=x/s,y=y>1?1:y,e.x={percentage:y})}var z=a.defer();if(e.y||e.x){e.withDelay=!1,d.scrollContainers("",e);var A=d.api.core.on.scrollEnd(null,function(){z.resolve(e),A()})}else z.resolve();return z.promise},p.prototype.scrollTo=function(a,b){var c=null,d=null;return null!==a&&"undefined"!=typeof a&&(c=this.getRow(a)),null!==b&&"undefined"!=typeof b&&(d=this.getColumn(b.name?b.name:b.field)),this.scrollToIfNecessary(c,d)},p.prototype.clearAllFilters=function(a,b,c){return void 0===a&&(a=!0),void 0===b&&(b=!1),void 0===c&&(c=!1),this.columns.forEach(function(a){a.filters.forEach(function(a){a.term=void 0,b&&(a.condition=void 0),c&&(a.flags=void 0)})}),a?this.refreshRows():void 0},o.prototype={put:function(a,b){this[this.grid.options.rowIdentity(a)]=b},get:function(a){return this[this.grid.options.rowIdentity(a)]},remove:function(a){var b=this[a=this.grid.options.rowIdentity(a)];return delete this[a],b}},p}])}(),function(){angular.module("ui.grid").factory("GridApi",["$q","$rootScope","gridUtil","uiGridConstants","GridRow","uiGridGridMenuService",function(a,b,c,d,e,f){function g(a,c,d,e){return b.$on(a,function(a){var b=Array.prototype.slice.call(arguments);b.splice(0,1),c.apply(e?e:d.api,b)})}var h=function(a){this.grid=a,this.listeners=[],this.registerEvent("core","renderingComplete"),this.registerEvent("core","filterChanged"),this.registerMethod("core","setRowInvisible",e.prototype.setRowInvisible),this.registerMethod("core","clearRowInvisible",e.prototype.clearRowInvisible),this.registerMethod("core","getVisibleRows",this.grid.getVisibleRows),this.registerEvent("core","rowsVisibleChanged"),this.registerEvent("core","rowsRendered"),this.registerEvent("core","scrollBegin"),this.registerEvent("core","scrollEnd"),this.registerEvent("core","canvasHeightChanged")};return h.prototype.suppressEvents=function(a,b){var c=this,d=angular.isArray(a)?a:[a],e=c.listeners.filter(function(a){return d.some(function(b){return a.handler===b})});e.forEach(function(a){a.dereg()}),b(),e.forEach(function(a){a.dereg=g(a.eventId,a.handler,c.grid,a._this)})},h.prototype.registerEvent=function(a,d){var e=this;e[a]||(e[a]={});var f=e[a];f.on||(f.on={},f.raise={});var h=e.grid.id+a+d;f.raise[d]=function(){b.$emit.apply(b,[h].concat(Array.prototype.slice.call(arguments)))},f.on[d]=function(b,f,i){if(null!==b&&"undefined"==typeof b.$on)return void c.logError("asked to listen on "+a+".on."+d+" but scope wasn't passed in the input parameters.  It is legitimate to pass null, but you've passed something else, so you probably forgot to provide scope rather than did it deliberately, not registering");var j=g(h,f,e.grid,i),k={handler:f,dereg:j,eventId:h,scope:b,_this:i};e.listeners.push(k);var l=function(){k.dereg();var a=e.listeners.indexOf(k);e.listeners.splice(a,1)};return b&&b.$on("$destroy",function(){l()}),l}},h.prototype.registerEventsFromObject=function(a){var b=this,c=[];angular.forEach(a,function(a,b){var d={name:b,events:[]};angular.forEach(a,function(a,b){d.events.push(b)}),c.push(d)}),c.forEach(function(a){a.events.forEach(function(c){b.registerEvent(a.name,c)})})},h.prototype.registerMethod=function(a,b,d,e){this[a]||(this[a]={});var f=this[a];f[b]=c.createBoundedWrapper(e||this.grid,d)},h.prototype.registerMethodsFromObject=function(a,b){var c=this,d=[];angular.forEach(a,function(a,b){var c={name:b,methods:[]};angular.forEach(a,function(a,b){c.methods.push({name:b,fn:a})}),d.push(c)}),d.forEach(function(a){a.methods.forEach(function(d){c.registerMethod(a.name,d.name,d.fn,b)})})},h}])}(),function(){angular.module("ui.grid").factory("GridColumn",["gridUtil","uiGridConstants","i18nService",function(a,b,c){function d(a,c,d){var e=this;e.grid=d,e.uid=c,e.updateColumnDef(a,!0),e.aggregationValue=void 0,e.updateAggregationValue=function(){if(!e.aggregationType)return void(e.aggregationValue=void 0);var a=0,c=e.grid.getVisibleRows(),d=function(){var a=[];return c.forEach(function(b){var c=e.grid.getCellValue(b,e),d=Number(c);isNaN(d)||a.push(d)}),a};angular.isFunction(e.aggregationType)?e.aggregationValue=e.aggregationType(c,e):e.aggregationType===b.aggregationTypes.count?e.aggregationValue=e.grid.getVisibleRowCount():e.aggregationType===b.aggregationTypes.sum?(d().forEach(function(b){a+=b}),e.aggregationValue=a):e.aggregationType===b.aggregationTypes.avg?(d().forEach(function(b){a+=b}),a/=d().length,e.aggregationValue=a):e.aggregationType===b.aggregationTypes.min?e.aggregationValue=Math.min.apply(null,d()):e.aggregationType===b.aggregationTypes.max?e.aggregationValue=Math.max.apply(null,d()):e.aggregationValue=" "},this.getAggregationValue=function(){return e.aggregationValue}}return d.prototype.hideColumn=function(){this.colDef.visible=!1},d.prototype.setPropertyOrDefault=function(a,b,c){var d=this;"undefined"!=typeof a[b]&&a[b]?d[b]=a[b]:"undefined"!=typeof d[b]?d[b]=d[b]:d[b]=c?c:{}},d.prototype.updateColumnDef=function(c,d){var e=this;if(e.colDef=c,void 0===c.name)throw new Error("colDef.name is required for column at index "+e.grid.options.columnDefs.indexOf(c));if(e.displayName=void 0===c.displayName?a.readableColumnName(c.name):c.displayName,!angular.isNumber(e.width)||!e.hasCustomWidth||c.allowCustomWidthOverride){var f=c.width,g="Cannot parse column width '"+f+"' for column named '"+c.name+"'";if(e.hasCustomWidth=!1,angular.isString(f)||angular.isNumber(f))if(angular.isString(f))if(a.endsWith(f,"%")){var h=f.replace(/%/g,""),i=parseInt(h,10);if(isNaN(i))throw new Error(g);
-e.width=f}else if(f.match(/^(\d+)$/))e.width=parseInt(f.match(/^(\d+)$/)[1],10);else{if(!f.match(/^\*+$/))throw new Error(g);e.width=f}else e.width=f;else e.width="*"}["minWidth","maxWidth"].forEach(function(a){var b=c[a],d="Cannot parse column "+a+" '"+b+"' for column named '"+c.name+"'";if(angular.isString(b)||angular.isNumber(b))if(angular.isString(b)){if(!b.match(/^(\d+)$/))throw new Error(d);e[a]=parseInt(b.match(/^(\d+)$/)[1],10)}else e[a]=b;else e[a]="minWidth"===a?30:9e3}),e.field=void 0===c.field?c.name:c.field,"string"!=typeof e.field&&a.logError("Field is not a string, this is likely to break the code, Field is: "+e.field),e.name=c.name,e.displayName=void 0===c.displayName?a.readableColumnName(c.name):c.displayName,e.aggregationType=angular.isDefined(c.aggregationType)?c.aggregationType:null,e.footerCellTemplate=angular.isDefined(c.footerCellTemplate)?c.footerCellTemplate:null,"undefined"==typeof c.cellTooltip||c.cellTooltip===!1?e.cellTooltip=!1:c.cellTooltip===!0?e.cellTooltip=function(a,b){return e.grid.getCellValue(a,b)}:"function"==typeof c.cellTooltip?e.cellTooltip=c.cellTooltip:e.cellTooltip=function(a,b){return b.colDef.cellTooltip},"undefined"==typeof c.headerTooltip||c.headerTooltip===!1?e.headerTooltip=!1:c.headerTooltip===!0?e.headerTooltip=function(a){return a.displayName}:"function"==typeof c.headerTooltip?e.headerTooltip=c.headerTooltip:e.headerTooltip=function(a){return a.colDef.headerTooltip},e.footerCellClass=c.footerCellClass,e.cellClass=c.cellClass,e.headerCellClass=c.headerCellClass,e.cellFilter=c.cellFilter?c.cellFilter:"",e.sortCellFiltered=c.sortCellFiltered?!0:!1,e.filterCellFiltered=c.filterCellFiltered?!0:!1,e.headerCellFilter=c.headerCellFilter?c.headerCellFilter:"",e.footerCellFilter=c.footerCellFilter?c.footerCellFilter:"",e.visible=a.isNullOrUndefined(c.visible)||c.visible,e.headerClass=c.headerClass,e.enableSorting="undefined"!=typeof c.enableSorting?c.enableSorting:!0,e.sortingAlgorithm=c.sortingAlgorithm,e.sortDirectionCycle="undefined"!=typeof c.sortDirectionCycle?c.sortDirectionCycle:[null,b.ASC,b.DESC],"undefined"==typeof e.suppressRemoveSort&&(e.suppressRemoveSort="undefined"!=typeof c.suppressRemoveSort?c.suppressRemoveSort:!1),e.enableFiltering="undefined"!=typeof c.enableFiltering?c.enableFiltering:!0,e.setPropertyOrDefault(c,"menuItems",[]),d&&e.setPropertyOrDefault(c,"sort");var j=[];c.filter?j.push(c.filter):c.filters?j=c.filters:j.push({}),d?(e.setPropertyOrDefault(c,"filter"),e.setPropertyOrDefault(c,"filters",j)):e.filters.length===j.length&&e.filters.forEach(function(a,b){"undefined"!=typeof j[b].placeholder&&(a.placeholder=j[b].placeholder),"undefined"!=typeof j[b].ariaLabel&&(a.ariaLabel=j[b].ariaLabel),"undefined"!=typeof j[b].flags&&(a.flags=j[b].flags),"undefined"!=typeof j[b].type&&(a.type=j[b].type),"undefined"!=typeof j[b].selectOptions&&(a.selectOptions=j[b].selectOptions)})},d.prototype.unsort=function(){this.sort={},this.grid.api.core.raise.sortChanged(this.grid,this.grid.getColumnSorting())},d.prototype.getColClass=function(a){var c=b.COL_CLASS_PREFIX+this.uid;return a?"."+c:c},d.prototype.isPinnedLeft=function(){return"left"===this.renderContainer},d.prototype.isPinnedRight=function(){return"right"===this.renderContainer},d.prototype.getColClassDefinition=function(){return" .grid"+this.grid.id+" "+this.getColClass(!0)+" { min-width: "+this.drawnWidth+"px; max-width: "+this.drawnWidth+"px; }"},d.prototype.getRenderContainer=function(){var a=this,b=a.renderContainer;return(null===b||""===b||void 0===b)&&(b="body"),a.grid.renderContainers[b]},d.prototype.showColumn=function(){this.colDef.visible=!0},d.prototype.getAggregationText=function(){var a=this;if(a.colDef.aggregationHideLabel)return"";if(a.colDef.aggregationLabel)return a.colDef.aggregationLabel;switch(a.colDef.aggregationType){case b.aggregationTypes.count:return c.getSafeText("aggregation.count");case b.aggregationTypes.sum:return c.getSafeText("aggregation.sum");case b.aggregationTypes.avg:return c.getSafeText("aggregation.avg");case b.aggregationTypes.min:return c.getSafeText("aggregation.min");case b.aggregationTypes.max:return c.getSafeText("aggregation.max");default:return""}},d.prototype.getCellTemplate=function(){var a=this;return a.cellTemplatePromise},d.prototype.getCompiledElementFn=function(){var a=this;return a.compiledElementFnDefer.promise},d}])}(),function(){angular.module("ui.grid").factory("GridOptions",["gridUtil","uiGridConstants",function(a,b){return{initialize:function(c){return c.onRegisterApi=c.onRegisterApi||angular.noop(),c.data=c.data||[],c.columnDefs=c.columnDefs||[],c.excludeProperties=c.excludeProperties||["$$hashKey"],c.enableRowHashing=c.enableRowHashing!==!1,c.rowIdentity=c.rowIdentity||function(b){return a.hashKey(b)},c.getRowIdentity=c.getRowIdentity||function(a){return a.$$hashKey},c.flatEntityAccess=c.flatEntityAccess===!0,c.showHeader="undefined"!=typeof c.showHeader?c.showHeader:!0,c.showHeader?c.headerRowHeight="undefined"!=typeof c.headerRowHeight?c.headerRowHeight:30:c.headerRowHeight=0,c.rowHeight=c.rowHeight||30,c.minRowsToShow="undefined"!=typeof c.minRowsToShow?c.minRowsToShow:10,c.showGridFooter=c.showGridFooter===!0,c.showColumnFooter=c.showColumnFooter===!0,c.columnFooterHeight="undefined"!=typeof c.columnFooterHeight?c.columnFooterHeight:30,c.gridFooterHeight="undefined"!=typeof c.gridFooterHeight?c.gridFooterHeight:30,c.columnWidth="undefined"!=typeof c.columnWidth?c.columnWidth:50,c.maxVisibleColumnCount="undefined"!=typeof c.maxVisibleColumnCount?c.maxVisibleColumnCount:200,c.virtualizationThreshold="undefined"!=typeof c.virtualizationThreshold?c.virtualizationThreshold:20,c.columnVirtualizationThreshold="undefined"!=typeof c.columnVirtualizationThreshold?c.columnVirtualizationThreshold:10,c.excessRows="undefined"!=typeof c.excessRows?c.excessRows:4,c.scrollThreshold="undefined"!=typeof c.scrollThreshold?c.scrollThreshold:4,c.excessColumns="undefined"!=typeof c.excessColumns?c.excessColumns:4,c.horizontalScrollThreshold="undefined"!=typeof c.horizontalScrollThreshold?c.horizontalScrollThreshold:2,c.aggregationCalcThrottle="undefined"!=typeof c.aggregationCalcThrottle?c.aggregationCalcThrottle:500,c.wheelScrollThrottle="undefined"!=typeof c.wheelScrollThrottle?c.wheelScrollThrottle:70,c.scrollDebounce="undefined"!=typeof c.scrollDebounce?c.scrollDebounce:300,c.enableSorting=c.enableSorting!==!1,c.enableFiltering=c.enableFiltering===!0,c.enableColumnMenus=c.enableColumnMenus!==!1,c.enableVerticalScrollbar="undefined"!=typeof c.enableVerticalScrollbar?c.enableVerticalScrollbar:b.scrollbars.ALWAYS,c.enableHorizontalScrollbar="undefined"!=typeof c.enableHorizontalScrollbar?c.enableHorizontalScrollbar:b.scrollbars.ALWAYS,c.enableMinHeightCheck=c.enableMinHeightCheck!==!1,c.minimumColumnSize="undefined"!=typeof c.minimumColumnSize?c.minimumColumnSize:10,c.rowEquality=c.rowEquality||function(a,b){return a===b},c.headerTemplate=c.headerTemplate||null,c.footerTemplate=c.footerTemplate||"ui-grid/ui-grid-footer",c.gridFooterTemplate=c.gridFooterTemplate||"ui-grid/ui-grid-grid-footer",c.rowTemplate=c.rowTemplate||"ui-grid/ui-grid-row",c.appScopeProvider=c.appScopeProvider||null,c}}}])}(),function(){angular.module("ui.grid").factory("GridRenderContainer",["gridUtil","uiGridConstants",function(a,b){function c(a,b,c){var d=this;d.name=a,d.grid=b,d.visibleRowCache=[],d.visibleColumnCache=[],d.renderedRows=[],d.renderedColumns=[],d.prevScrollTop=0,d.prevScrolltopPercentage=0,d.prevRowScrollIndex=0,d.prevScrollLeft=0,d.prevScrollleftPercentage=0,d.prevColumnScrollIndex=0,d.columnStyles="",d.viewportAdjusters=[],d.hasHScrollbar=!1,d.hasVScrollbar=!1,d.canvasHeightShouldUpdate=!0,d.$$canvasHeight=0,c&&angular.isObject(c)&&angular.extend(d,c),b.registerStyleComputation({priority:5,func:function(){return d.updateColumnWidths(),d.columnStyles}})}return c.prototype.reset=function(){this.visibleColumnCache.length=0,this.visibleRowCache.length=0,this.renderedRows.length=0,this.renderedColumns.length=0},c.prototype.containsColumn=function(a){return-1!==this.visibleColumnCache.indexOf(a)},c.prototype.minRowsToRender=function(){for(var a=this,b=0,c=0,d=a.getViewportHeight(),e=a.visibleRowCache.length-1;d>c&&e>=0;e--)c+=a.visibleRowCache[e].height,b++;return b},c.prototype.minColumnsToRender=function(){for(var a=this,b=this.getViewportWidth(),c=0,d=0,e=0;e<a.visibleColumnCache.length;e++){var f=a.visibleColumnCache[e];if(b>d)d+=f.drawnWidth?f.drawnWidth:0,c++;else{for(var g=0,h=e;h>=e-c;h--)g+=a.visibleColumnCache[h].drawnWidth?a.visibleColumnCache[h].drawnWidth:0;b>g&&c++}}return c},c.prototype.getVisibleRowCount=function(){return this.visibleRowCache.length},c.prototype.registerViewportAdjuster=function(a){this.viewportAdjusters.push(a)},c.prototype.removeViewportAdjuster=function(a){var b=this.viewportAdjusters.indexOf(a);b>-1&&this.viewportAdjusters.splice(b,1)},c.prototype.getViewportAdjustment=function(){var a=this,b={height:0,width:0};return a.viewportAdjusters.forEach(function(a){b=a.call(this,b)}),b},c.prototype.getMargin=function(a){var b=this,c=0;return b.viewportAdjusters.forEach(function(b){var d=b.call(this,{height:0,width:0});d.side&&d.side===a&&(c+=-1*d.width)}),c},c.prototype.getViewportHeight=function(){var a=this,b=a.headerHeight?a.headerHeight:a.grid.headerHeight,c=a.grid.gridHeight-b-a.grid.footerHeight,d=a.getViewportAdjustment();return c+=d.height},c.prototype.getViewportWidth=function(){var a=this,b=a.grid.gridWidth,c=a.getViewportAdjustment();return b+=c.width},c.prototype.getHeaderViewportWidth=function(){var a=this.getViewportWidth();return a},c.prototype.getCanvasHeight=function(){var a=this;if(!a.canvasHeightShouldUpdate)return a.$$canvasHeight;var b=a.$$canvasHeight;return a.$$canvasHeight=0,a.visibleRowCache.forEach(function(b){a.$$canvasHeight+=b.height}),a.canvasHeightShouldUpdate=!1,a.grid.api.core.raise.canvasHeightChanged(b,a.$$canvasHeight),a.$$canvasHeight},c.prototype.getVerticalScrollLength=function(){return this.getCanvasHeight()-this.getViewportHeight()+this.grid.scrollbarHeight},c.prototype.getCanvasWidth=function(){var a=this,b=a.canvasWidth;return b},c.prototype.setRenderedRows=function(a){this.renderedRows.length=a.length;for(var b=0;b<a.length;b++)this.renderedRows[b]=a[b]},c.prototype.setRenderedColumns=function(a){this.renderedColumns.length=a.length;for(var b=0;b<a.length;b++)this.renderedColumns[b]=a[b];this.updateColumnOffset()},c.prototype.updateColumnOffset=function(){for(var a=0,b=0;b<this.currentFirstColumn;b++)a+=this.visibleColumnCache[b].drawnWidth;this.columnOffset=a},c.prototype.scrollVertical=function(a){var c=-1;if(a!==this.prevScrollTop){var d=a-this.prevScrollTop;d>0&&(this.grid.scrollDirection=b.scrollDirection.DOWN),0>d&&(this.grid.scrollDirection=b.scrollDirection.UP);var e=this.getVerticalScrollLength();return c=a/e,c>1&&(c=1),0>c&&(c=0),this.adjustScrollVertical(a,c),c}},c.prototype.scrollHorizontal=function(a){var c=-1;if(a!==this.prevScrollLeft){var d=a-this.prevScrollLeft;d>0&&(this.grid.scrollDirection=b.scrollDirection.RIGHT),0>d&&(this.grid.scrollDirection=b.scrollDirection.LEFT);var e=this.canvasWidth-this.getViewportWidth();return c=0!==e?a/e:0,this.adjustScrollHorizontal(a,c),c}},c.prototype.adjustScrollVertical=function(a,b,c){(this.prevScrollTop!==a||c)&&(("undefined"==typeof a||void 0===a||null===a)&&(a=(this.getCanvasHeight()-this.getViewportHeight())*b),this.adjustRows(a,b,!1),this.prevScrollTop=a,this.prevScrolltopPercentage=b,this.grid.queueRefresh())},c.prototype.adjustScrollHorizontal=function(a,b,c){(this.prevScrollLeft!==a||c)&&(("undefined"==typeof a||void 0===a||null===a)&&(a=(this.getCanvasWidth()-this.getViewportWidth())*b),this.adjustColumns(a,b),this.prevScrollLeft=a,this.prevScrollleftPercentage=b,this.grid.queueRefresh())},c.prototype.adjustRows=function(a,b,c){var d=this,e=d.minRowsToRender(),f=d.visibleRowCache,g=f.length-e;"undefined"!=typeof b&&null!==b||!a||(b=a/d.getVerticalScrollLength());var h=Math.ceil(Math.min(g,g*b));h>g&&(h=g);var i=[];if(f.length>d.grid.options.virtualizationThreshold){if("undefined"!=typeof a&&null!==a){if(!d.grid.suppressParentScrollDown&&d.prevScrollTop<a&&h<d.prevRowScrollIndex+d.grid.options.scrollThreshold&&g>h)return;if(!d.grid.suppressParentScrollUp&&d.prevScrollTop>a&&h>d.prevRowScrollIndex-d.grid.options.scrollThreshold&&g>h)return}var j={},k={};j=Math.max(0,h-d.grid.options.excessRows),k=Math.min(f.length,h+e+d.grid.options.excessRows),i=[j,k]}else{var l=d.visibleRowCache.length;i=[0,Math.max(l,e+d.grid.options.excessRows)]}d.updateViewableRowRange(i),d.prevRowScrollIndex=h},c.prototype.adjustColumns=function(a,b){var c=this,d=c.minColumnsToRender(),e=c.visibleColumnCache,f=e.length-d;if(("undefined"==typeof b||null===b)&&a){var g=c.getCanvasWidth()-c.getViewportWidth();b=a/g}var h=Math.ceil(Math.min(f,f*b));h>f&&(h=f);var i=[];if(e.length>c.grid.options.columnVirtualizationThreshold&&c.getCanvasWidth()>c.getViewportWidth()){var j=Math.max(0,h-c.grid.options.excessColumns),k=Math.min(e.length,h+d+c.grid.options.excessColumns);i=[j,k]}else{var l=c.visibleColumnCache.length;i=[0,Math.max(l,d+c.grid.options.excessColumns)]}c.updateViewableColumnRange(i),c.prevColumnScrollIndex=h},c.prototype.updateViewableRowRange=function(a){var b=this.visibleRowCache.slice(a[0],a[1]);this.currentTopRow=a[0],this.setRenderedRows(b)},c.prototype.updateViewableColumnRange=function(a){var b=this.visibleColumnCache.slice(a[0],a[1]);this.currentFirstColumn=a[0],this.setRenderedColumns(b)},c.prototype.headerCellWrapperStyle=function(){var a=this;if(0!==a.currentFirstColumn){var b=a.columnOffset;return a.grid.isRTL()?{"margin-right":b+"px"}:{"margin-left":b+"px"}}return null},c.prototype.updateColumnWidths=function(){var b=this,c=[],d=0,e=0,f="",g=b.grid.getViewportWidth()-b.grid.scrollbarWidth,h=[];angular.forEach(b.grid.renderContainers,function(a,b){h=h.concat(a.visibleColumnCache)}),h.forEach(function(b,f){var h=0;b.visible&&(angular.isNumber(b.width)?(h=parseInt(b.width,10),e+=h,b.drawnWidth=h):a.endsWith(b.width,"%")?(h=parseInt(parseInt(b.width.replace(/%/g,""),10)/100*g),h>b.maxWidth&&(h=b.maxWidth),h<b.minWidth&&(h=b.minWidth),e+=h,b.drawnWidth=h):angular.isString(b.width)&&-1!==b.width.indexOf("*")&&(d+=b.width.length,c.push(b)))});var i=g-e;if(c.length>0){var j=i/d;c.forEach(function(a){var b=parseInt(a.width.length*j,10);b>a.maxWidth&&(b=a.maxWidth),b<a.minWidth&&(b=a.minWidth),e+=b,a.drawnWidth=b})}for(var k=function(a){a.drawnWidth<a.maxWidth&&l>0&&(a.drawnWidth++,e++,l--,m=!0)},l=g-e,m=!0;l>0&&m;)m=!1,c.forEach(k);var n=function(a){a.drawnWidth>a.minWidth&&o>0&&(a.drawnWidth--,e--,o--,m=!0)},o=e-g;for(m=!0;o>0&&m;)m=!1,c.forEach(n);var p=0;b.visibleColumnCache.forEach(function(a){a.visible&&(p+=a.drawnWidth)}),h.forEach(function(a){f+=a.getColClassDefinition()}),b.canvasWidth=p,this.columnStyles=f},c.prototype.needsHScrollbarPlaceholder=function(){return this.grid.options.enableHorizontalScrollbar&&!this.hasHScrollbar&&!this.grid.disableScrolling},c.prototype.getViewportStyle=function(){var a=this,c={};return a.hasHScrollbar=!1,a.hasVScrollbar=!1,a.grid.disableScrolling?(c["overflow-x"]="hidden",c["overflow-y"]="hidden",c):("body"===a.name?(a.hasHScrollbar=a.grid.options.enableHorizontalScrollbar!==b.scrollbars.NEVER,a.grid.isRTL()?a.grid.hasLeftContainerColumns()||(a.hasVScrollbar=a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER):a.grid.hasRightContainerColumns()||(a.hasVScrollbar=a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER)):"left"===a.name?a.hasVScrollbar=a.grid.isRTL()?a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER:!1:a.hasVScrollbar=a.grid.isRTL()?!1:a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER,c["overflow-x"]=a.hasHScrollbar?"scroll":"hidden",c["overflow-y"]=a.hasVScrollbar?"scroll":"hidden",c)},c}])}(),function(){angular.module("ui.grid").factory("GridRow",["gridUtil",function(a){function b(b,c,d){this.grid=d,this.entity=b,this.uid=a.nextUid(),this.visible=!0,this.$$height=d.options.rowHeight}return Object.defineProperty(b.prototype,"height",{get:function(){return this.$$height},set:function(a){a!==this.$$height&&(this.grid.updateCanvasHeight(),this.$$height=a)}}),b.prototype.getQualifiedColField=function(a){return"row."+this.getEntityQualifiedColField(a)},b.prototype.getEntityQualifiedColField=function(b){return a.preEval("entity."+b.field)},b.prototype.setRowInvisible=function(a){a&&a.setThisRowInvisible&&a.setThisRowInvisible("user")},b.prototype.clearRowInvisible=function(a){a&&a.clearThisRowInvisible&&a.clearThisRowInvisible("user")},b.prototype.setThisRowInvisible=function(a,b){this.invisibleReason||(this.invisibleReason={}),this.invisibleReason[a]=!0,this.evaluateRowVisibility(b)},b.prototype.clearThisRowInvisible=function(a,b){"undefined"!=typeof this.invisibleReason&&delete this.invisibleReason[a],this.evaluateRowVisibility(b)},b.prototype.evaluateRowVisibility=function(a){var b=!0;"undefined"!=typeof this.invisibleReason&&angular.forEach(this.invisibleReason,function(a,c){a&&(b=!1)}),("undefined"==typeof this.visible||this.visible!==b)&&(this.visible=b,a||(this.grid.queueGridRefresh(),this.grid.api.core.raise.rowsVisibleChanged(this)))},b}])}(),function(){"use strict";angular.module("ui.grid").factory("GridRowColumn",["$parse","$filter",function(a,b){var c=function d(a,b){if(!(this instanceof d))throw"Using GridRowColumn as a function insead of as a constructor. Must be called with `new` keyword";this.row=a,this.col=b};return c.prototype.getIntersectionValueRaw=function(){var b=a(this.row.getEntityQualifiedColField(this.col)),c=this.row;return b(c)},c.prototype.getIntersectionValueFiltered=function(){var a=this.getIntersectionValueRaw();if(this.col.cellFilter&&""!==this.col.cellFilter){var c=function(a){try{return b(a)}catch(c){return null}},d=c(this.col.cellFilter);if(d)a=d(a);else{var e,f=/([^:]*):([^:]*):?([\s\S]+)?/;null!==(e=f.exec(this.col.cellFilter))&&(a=b(e[1])(a,e[2],e[3]))}}return a},c}])}(),function(){angular.module("ui.grid").factory("ScrollEvent",["gridUtil",function(a){function b(b,c,d,e){var f=this;if(!b)throw new Error("grid argument is required");f.grid=b,f.source=e,f.withDelay=!0,f.sourceRowContainer=c,f.sourceColContainer=d,f.newScrollLeft=null,f.newScrollTop=null,f.x=null,f.y=null,f.verticalScrollLength=-9999999,f.horizontalScrollLength=-999999,f.fireThrottledScrollingEvent=a.throttle(function(a){f.grid.scrollContainers(a,f)},f.grid.options.wheelScrollThrottle,{trailing:!0})}return b.prototype.getNewScrollLeft=function(b,c){var d=this;if(!d.newScrollLeft){var e,f=b.getCanvasWidth()-b.getViewportWidth(),g=a.normalizeScrollLeft(c,d.grid);if("undefined"!=typeof d.x.percentage&&void 0!==d.x.percentage)e=d.x.percentage;else{if("undefined"==typeof d.x.pixels||void 0===d.x.pixels)throw new Error("No percentage or pixel value provided for scroll event X axis");e=d.x.percentage=(g+d.x.pixels)/f}return Math.max(0,e*f)}return d.newScrollLeft},b.prototype.getNewScrollTop=function(a,b){var c=this;if(!c.newScrollTop){var d,e=a.getVerticalScrollLength(),f=b[0].scrollTop;if("undefined"!=typeof c.y.percentage&&void 0!==c.y.percentage)d=c.y.percentage;else{if("undefined"==typeof c.y.pixels||void 0===c.y.pixels)throw new Error("No percentage or pixel value provided for scroll event Y axis");d=c.y.percentage=(f+c.y.pixels)/e}return Math.max(0,d*e)}return c.newScrollTop},b.prototype.atTop=function(a){return this.y&&(0===this.y.percentage||this.verticalScrollLength<0)&&0===a},b.prototype.atBottom=function(a){return this.y&&(1===this.y.percentage||0===this.verticalScrollLength)&&a>0},b.prototype.atLeft=function(a){return this.x&&(0===this.x.percentage||this.horizontalScrollLength<0)&&0===a},b.prototype.atRight=function(a){return this.x&&(1===this.x.percentage||0===this.horizontalScrollLength)&&a>0},b.Sources={ViewPortScroll:"ViewPortScroll",RenderContainerMouseWheel:"RenderContainerMouseWheel",RenderContainerTouchMove:"RenderContainerTouchMove",Other:99},b}])}(),function(){"use strict";angular.module("ui.grid").service("gridClassFactory",["gridUtil","$q","$compile","$templateCache","uiGridConstants","Grid","GridColumn","GridRow",function(a,b,c,d,e,f,g,h){var i={createGrid:function(d){d="undefined"!=typeof d?d:{},d.id=a.newId();var e=new f(d);if(e.options.rowTemplate){var g=b.defer();e.getRowTemplateFn=g.promise,a.getTemplate(e.options.rowTemplate).then(function(a){var b=c(a);g.resolve(b)},function(a){throw new Error("Couldn't fetch/use row template '"+e.options.rowTemplate+"'")})}return e.registerColumnBuilder(i.defaultColumnBuilder),e.registerRowBuilder(i.rowTemplateAssigner),e.registerRowsProcessor(function(a){return a.forEach(function(a){a.evaluateRowVisibility(!0)},50),a}),e.registerColumnsProcessor(function(a){return a.forEach(function(a){a.visible=!0}),a},50),e.registerColumnsProcessor(function(a){return a.forEach(function(a){a.colDef.visible===!1&&(a.visible=!1)}),a},50),e.registerRowsProcessor(e.searchRows,100),e.options.externalSort&&angular.isFunction(e.options.externalSort)?e.registerRowsProcessor(e.options.externalSort,200):e.registerRowsProcessor(e.sortByColumn,200),e},defaultColumnBuilder:function(c,d,f){var g=[],h=function(b,f,h,i,j){c[b]?d[f]=c[b]:d[f]=h,g.push(a.getTemplate(d[f]).then(function(a){angular.isFunction(a)&&(a=a());var c="cellTooltip"===j?"col.cellTooltip(row,col)":"col.headerTooltip(col)";j&&d[j]===!1?a=a.replace(e.TOOLTIP,""):j&&d[j]&&(a=a.replace(e.TOOLTIP,'title="{{'+c+' CUSTOM_FILTERS }}"')),i?d[b]=a.replace(e.CUSTOM_FILTERS,function(){return d[i]?"|"+d[i]:""}):d[b]=a},function(a){throw new Error("Couldn't fetch/use colDef."+b+" '"+c[b]+"'")}))};return h("cellTemplate","providedCellTemplate","ui-grid/uiGridCell","cellFilter","cellTooltip"),d.cellTemplatePromise=g[0],h("headerCellTemplate","providedHeaderCellTemplate","ui-grid/uiGridHeaderCell","headerCellFilter","headerTooltip"),h("footerCellTemplate","providedFooterCellTemplate","ui-grid/uiGridFooterCell","footerCellFilter"),h("filterHeaderTemplate","providedFilterHeaderTemplate","ui-grid/ui-grid-filter"),d.compiledElementFnDefer=b.defer(),b.all(g)},rowTemplateAssigner:function(d){var e=this;if(d.rowTemplate){var f=b.defer();d.getRowTemplateFn=f.promise,a.getTemplate(d.rowTemplate).then(function(a){var b=c(a);f.resolve(b)},function(a){throw new Error("Couldn't fetch/use row template '"+d.rowTemplate+"'")})}else d.rowTemplate=e.options.rowTemplate,d.getRowTemplateFn=e.getRowTemplateFn;return d.getRowTemplateFn}};return i}])}(),function(){function a(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var b=angular.module("ui.grid");b.service("rowSearcher",["gridUtil","uiGridConstants",function(b,c){var d=c.filter.CONTAINS,e={};return e.getTerm=function(a){if("undefined"==typeof a.term)return a.term;var b=a.term;return"string"==typeof b&&(b=b.trim()),b},e.stripTerm=function(b){var c=e.getTerm(b);return"string"==typeof c?a(c.replace(/(^\*|\*$)/g,"")):c},e.guessCondition=function(a){if("undefined"==typeof a.term||!a.term)return d;var b=e.getTerm(a);if(/\*/.test(b)){var c="";a.flags&&a.flags.caseSensitive||(c+="i");var f=b.replace(/(\\)?\*/g,function(a,b){return b?a:"[\\s\\S]*?"});return new RegExp("^"+f+"$",c)}return d},e.setupFilters=function(a){for(var d=[],f=a.length,g=0;f>g;g++){var h=a[g];if(h.noTerm||!b.isNullOrUndefined(h.term)){var i={},j="";h.flags&&h.flags.caseSensitive||(j+="i"),b.isNullOrUndefined(h.term)||(i.term=e.stripTerm(h)),h.condition?i.condition=h.condition:i.condition=e.guessCondition(h),i.flags=angular.extend({caseSensitive:!1,date:!1},h.flags),i.condition===c.filter.STARTS_WITH&&(i.startswithRE=new RegExp("^"+i.term,j)),i.condition===c.filter.ENDS_WITH&&(i.endswithRE=new RegExp(i.term+"$",j)),i.condition===c.filter.CONTAINS&&(i.containsRE=new RegExp(i.term,j)),i.condition===c.filter.EXACT&&(i.exactRE=new RegExp("^"+i.term+"$",j)),d.push(i)}}return d},e.runColumnFilter=function(a,b,d,e){var f,g=typeof e.condition,h=e.term;if(f=d.filterCellFiltered?a.getCellDisplayValue(b,d):a.getCellValue(b,d),e.condition instanceof RegExp)return e.condition.test(f);if("function"===g)return e.condition(h,f,b,d);if(e.startswithRE)return e.startswithRE.test(f);if(e.endswithRE)return e.endswithRE.test(f);if(e.containsRE)return e.containsRE.test(f);if(e.exactRE)return e.exactRE.test(f);if(e.condition===c.filter.NOT_EQUAL){var i=new RegExp("^"+h+"$");return!i.exec(f)}if("number"==typeof f&&"string"==typeof h){var j=parseFloat(h.replace(/\\\./,".").replace(/\\\-/,"-"));isNaN(j)||(h=j)}return e.flags.date===!0&&(f=new Date(f),h=new Date(h.replace(/\\/g,""))),e.condition===c.filter.GREATER_THAN?f>h:e.condition===c.filter.GREATER_THAN_OR_EQUAL?f>=h:e.condition===c.filter.LESS_THAN?h>f:e.condition===c.filter.LESS_THAN_OR_EQUAL?h>=f:!0},e.searchColumn=function(a,b,c,d){if(a.options.useExternalFiltering)return!0;for(var f=d.length,g=0;f>g;g++){var h=d[g],i=e.runColumnFilter(a,b,c,h);if(!i)return!1}return!0},e.search=function(a,c,d){if(c){if(!a.options.enableFiltering)return c;for(var f=[],g=d.length,h=function(a){var c=!1;return a.forEach(function(a){(!b.isNullOrUndefined(a.term)&&""!==a.term||a.noTerm)&&(c=!0)}),c},i=0;g>i;i++){var j=d[i];"undefined"!=typeof j.filters&&h(j.filters)&&f.push({col:j,filters:e.setupFilters(j.filters)})}if(f.length>0){for(var k=function(a,b,c,d){b.visible&&!e.searchColumn(a,b,c,d)&&(b.visible=!1)},l=function(a,b){for(var d=c.length,e=0;d>e;e++)k(a,c[e],b.col,b.filters)},m=f.length,n=0;m>n;n++)l(a,f[n]);a.api.core.raise.rowsVisibleChanged&&a.api.core.raise.rowsVisibleChanged()}return c}},e}])}(),function(){var a=angular.module("ui.grid");a.service("rowSorter",["$parse","uiGridConstants",function(a,b){var c="("+b.CURRENCY_SYMBOLS.map(function(a){return"\\"+a}).join("|")+")?",d=(new RegExp("^[-+]?"+c+"[\\d,.]+"+c+"%?$"),{colSortFnCache:{}});return d.guessSortFn=function(a){switch(a){case"number":return d.sortNumber;case"numberStr":return d.sortNumberStr;case"boolean":return d.sortBool;case"string":return d.sortAlpha;case"date":return d.sortDate;case"object":return d.basicSort;default:throw new Error("No sorting function found for type:"+a)}},d.handleNulls=function(a,b){if(!a&&0!==a&&a!==!1||!b&&0!==b&&b!==!1){if(!a&&0!==a&&a!==!1&&!b&&0!==b&&b!==!1)return 0;if(!a&&0!==a&&a!==!1)return 1;if(!b&&0!==b&&b!==!1)return-1}return null},d.basicSort=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a===b?0:b>a?-1:1},d.sortNumber=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a-b},d.sortNumberStr=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;var e,f,g=!1,h=!1;return e=parseFloat(a.replace(/[^0-9.-]/g,"")),isNaN(e)&&(g=!0),f=parseFloat(b.replace(/[^0-9.-]/g,"")),isNaN(f)&&(h=!0),g&&h?0:g?1:h?-1:e-f},d.sortAlpha=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;var e=a.toString().toLowerCase(),f=b.toString().toLowerCase();return e===f?0:e.localeCompare(f)},d.sortDate=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;a instanceof Date||(a=new Date(a)),b instanceof Date||(b=new Date(b));var e=a.getTime(),f=b.getTime();return e===f?0:f>e?-1:1},d.sortBool=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a&&b?0:a||b?a?1:-1:0},d.getSortFn=function(a,b,c){var e;return d.colSortFnCache[b.colDef.name]?e=d.colSortFnCache[b.colDef.name]:void 0!==b.sortingAlgorithm?(e=b.sortingAlgorithm,d.colSortFnCache[b.colDef.name]=b.sortingAlgorithm):b.sortCellFiltered&&b.cellFilter?(e=d.sortAlpha,d.colSortFnCache[b.colDef.name]=e):(e=d.guessSortFn(b.colDef.type),e?d.colSortFnCache[b.colDef.name]=e:e=d.sortAlpha),e},d.prioritySort=function(a,b){return void 0!==a.sort.priority&&void 0!==b.sort.priority?a.sort.priority<b.sort.priority?-1:a.sort.priority===b.sort.priority?0:1:a.sort.priority||0===a.sort.priority?-1:b.sort.priority||0===b.sort.priority?1:0},d.sort=function(a,c,e){if(c){if(a.options.useExternalSorting)return c;var f=[];if(e.forEach(function(a){!a.sort||a.sort.ignoreSort||!a.sort.direction||a.sort.direction!==b.ASC&&a.sort.direction!==b.DESC||f.push(a)}),f=f.sort(d.prioritySort),0===f.length)return c;var g,h,i=function(a,b){a.entity.$$uiGridIndex=b};c.forEach(i);var j=c.slice(0),k=function(c,e){for(var i,k=0,l=0;0===k&&l<f.length;){g=f[l],h=f[l].sort.direction,i=d.getSortFn(a,g,j);var m,n;g.sortCellFiltered?(m=a.getCellDisplayValue(c,g),n=a.getCellDisplayValue(e,g)):(m=a.getCellValue(c,g),n=a.getCellValue(e,g)),k=i(m,n,c,e,h),l++}return 0===k?c.entity.$$uiGridIndex-e.entity.$$uiGridIndex:h===b.ASC?k:0-k},l=c.sort(k),m=function(a,b){delete a.entity.$$uiGridIndex};return c.forEach(m),l}},d}])}(),function(){function a(a){var b=a;return"undefined"!=typeof b.length&&b.length&&(b=a[0]),b.ownerDocument.defaultView.getComputedStyle(b,null)}function b(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0,h=["Top","Right","Bottom","Left"];4>f;f+=2){var i=h[f];if("margin"===c){var j=parseFloat(e[c+i]);isNaN(j)||(g+=j)}if(d){if("content"===c){var k=parseFloat(e["padding"+i]);isNaN(k)||(g-=k)}if("margin"!==c){var l=parseFloat(e["border"+i+"Width"]);isNaN(l)||(g-=l)}}else{var m=parseFloat(e["padding"+i]);if(isNaN(m)||(g+=m),"padding"!==c){var n=parseFloat(e["border"+i+"Width"]);isNaN(n)||(g+=n)}}}return g}function c(c,d,e){var f,h=!0,i=a(c),j="border-box"===i.boxSizing;if(0>=f||null==f){if(f=i[d],(0>f||null==f)&&(f=c.style[d]),g.test(f))return f;h=j&&!0,f=parseFloat(f)||0}var k=f+b(c,d,e||(j?"border":"content"),h,i);return k}function d(b){b=angular.element(b)[0];var c=b.parentElement;return c||(c=document.getElementsByTagName("body")[0]),parseInt(a(c).fontSize)||parseInt(a(b).fontSize)||16}var e,f=angular.module("ui.grid");"function"!=typeof Function.prototype.bind&&(e=function(){var a=Array.prototype.slice;return function(b){var c=this,d=a.call(arguments,1);return d.length?function(){return arguments.length?c.apply(b,d.concat(a.call(arguments))):c.apply(b,d)}:function(){return arguments.length?c.apply(b,arguments):c.call(b)}}});var g=new RegExp("^("+/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source+")(?!px)[a-z%]+$","i"),h=/^(block|none|table(?!-c[ea]).+)/,i={position:"absolute",visibility:"hidden",display:"block"},j=["0","0","0","0"],k="uiGrid-";f.service("gridUtil",["$log","$window","$document","$http","$templateCache","$timeout","$interval","$injector","$q","$interpolate","uiGridConstants",function(f,g,l,m,n,o,p,q,r,s,t){function u(a,b){var c=angular.element(this),d=0,e=0,f=0,g=0;if(b.originalEvent&&(b=b.originalEvent),"detail"in b&&(f=-1*b.detail),"wheelDelta"in b&&(f=b.wheelDelta),"wheelDeltaY"in b&&(f=b.wheelDeltaY),"wheelDeltaX"in b&&(e=-1*b.wheelDeltaX),"axis"in b&&b.axis===b.HORIZONTAL_AXIS&&(e=-1*f,f=0),d=0===f?e:f,"deltaY"in b&&(f=-1*b.deltaY,d=f),"deltaX"in b&&(e=b.deltaX,0===f&&(d=-1*e)),0!==f||0!==e){if(1===b.deltaMode){var h=c.data("mousewheel-line-height");d*=h,f*=h,e*=h}else if(2===b.deltaMode){var i=c.data("mousewheel-page-height");d*=i,f*=i,e*=i}g=Math.max(Math.abs(f),Math.abs(e)),(!z||z>g)&&(z=g,w(b,g)&&(z/=40)),d=Math[d>=1?"floor":"ceil"](d/z),e=Math[e>=1?"floor":"ceil"](e/z),f=Math[f>=1?"floor":"ceil"](f/z),b.deltaMode=0;var j={originalEvent:b,deltaX:e,deltaY:f,deltaFactor:z,preventDefault:function(){b.preventDefault()},stopPropagation:function(){b.stopPropagation()}};y&&clearTimeout(y),y=setTimeout(v,200),a.call(c[0],j)}}function v(){z=null}function w(a,b){return"mousewheel"===a.type&&b%120===0}var x={augmentWidthOrHeight:b,getStyles:a,createBoundedWrapper:function(a,b){return function(){return b.apply(a,arguments)}},readableColumnName:function(a){return"undefined"==typeof a||void 0===a||null===a?a:("string"!=typeof a&&(a=String(a)),a.replace(/_+/g," ").replace(/^[A-Z]+$/,function(a){return angular.lowercase(angular.uppercase(a.charAt(0))+a.slice(1))}).replace(/([\w\u00C0-\u017F]+)/g,function(a){return angular.uppercase(a.charAt(0))+a.slice(1)}).replace(/(\w+?(?=[A-Z]))/g,"$1 "))},getColumnsFromData:function(a,b){var c=[];if(!a||"undefined"==typeof a[0]||void 0===a[0])return[];angular.isUndefined(b)&&(b=[]);var d=a[0];return angular.forEach(d,function(a,d){-1===b.indexOf(d)&&c.push({
-name:d})}),c},newId:function(){var a=(new Date).getTime();return function(){return a+=1}}(),getTemplate:function(a){if(n.get(a))return x.postProcessTemplate(n.get(a));if(a.hasOwnProperty("then"))return a.then(x.postProcessTemplate);try{if(angular.element(a).length>0)return r.when(a).then(x.postProcessTemplate)}catch(b){}return x.logDebug("fetching url",a),m({method:"GET",url:a}).then(function(b){var c=b.data.trim();return n.put(a,c),c},function(b){throw new Error("Could not get template "+a+": "+b)}).then(x.postProcessTemplate)},postProcessTemplate:function(a){var b=s.startSymbol(),c=s.endSymbol();return("{{"!==b||"}}"!==c)&&(a=a.replace(/\{\{/g,b),a=a.replace(/\}\}/g,c)),r.when(a)},guessType:function(a){var b=typeof a;switch(b){case"number":case"boolean":case"string":return b;default:return angular.isDate(a)?"date":"object"}},elementWidth:function(a){},elementHeight:function(a){},getScrollbarWidth:function(){var a=document.createElement("div");a.style.visibility="hidden",a.style.width="100px",a.style.msOverflowStyle="scrollbar",document.body.appendChild(a);var b=a.offsetWidth;a.style.overflow="scroll";var c=document.createElement("div");c.style.width="100%",a.appendChild(c);var d=c.offsetWidth;return a.parentNode.removeChild(a),b-d},swap:function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},fakeElement:function(a,b,c,d){var e,f,g=angular.element(a).clone()[0];for(f in b)g.style[f]=b[f];return angular.element(document.body).append(g),e=c.call(g,g),angular.element(g).remove(),e},normalizeWheelEvent:function(a){var b,c,d,e=a||window.event,f=([].slice.call(arguments,1),0),g=0,h=0,i=0,j=0;return e.originalEvent&&(e=e.originalEvent),e.wheelDelta&&(f=e.wheelDelta),e.detail&&(f=-1*e.detail),h=f,void 0!==e.axis&&e.axis===e.HORIZONTAL_AXIS&&(h=0,g=-1*f),e.deltaY&&(h=-1*e.deltaY,f=h),e.deltaX&&(g=e.deltaX,f=-1*g),void 0!==e.wheelDeltaY&&(h=e.wheelDeltaY),void 0!==e.wheelDeltaX&&(g=e.wheelDeltaX),i=Math.abs(f),(!b||b>i)&&(b=i),j=Math.max(Math.abs(h),Math.abs(g)),(!c||c>j)&&(c=j),d=f>0?"floor":"ceil",f=Math[d](f/b),g=Math[d](g/c),h=Math[d](h/c),{delta:f,deltaX:g,deltaY:h}},isTouchEnabled:function(){var a;return("ontouchstart"in g||g.DocumentTouch&&l instanceof DocumentTouch)&&(a=!0),a},isNullOrUndefined:function(a){return void 0===a||null===a?!0:!1},endsWith:function(a,b){return a&&b&&"string"==typeof a?-1!==a.indexOf(b,a.length-b.length):!1},arrayContainsObjectWithProperty:function(a,b,c){var d=!1;return angular.forEach(a,function(a){a[b]===c&&(d=!0)}),d},numericAndNullSort:function(a,b){return null===a?1:null===b?-1:null===a&&null===b?0:a-b},disableAnimations:function(a){var b;try{b=q.get("$animate"),angular.version.major>1||1===angular.version.major&&angular.version.minor>=4?b.enabled(a,!1):b.enabled(!1,a)}catch(c){}},enableAnimations:function(a){var b;try{return b=q.get("$animate"),angular.version.major>1||1===angular.version.major&&angular.version.minor>=4?b.enabled(a,!0):b.enabled(!0,a),b}catch(c){}},nextUid:function(){for(var a,b=j.length;b;){if(b--,a=j[b].charCodeAt(0),57===a)return j[b]="A",k+j.join("");if(90!==a)return j[b]=String.fromCharCode(a+1),k+j.join("");j[b]="0"}return j.unshift("0"),k+j.join("")},hashKey:function(a){var b,c=typeof a;return"object"===c&&null!==a?"function"==typeof(b=a.$$hashKey)?b=a.$$hashKey():"undefined"!=typeof a.$$hashKey&&a.$$hashKey?b=a.$$hashKey:void 0===b&&(b=a.$$hashKey=x.nextUid()):b=a,c+":"+b},resetUids:function(){j=["0","0","0"]},logError:function(a){t.LOG_ERROR_MESSAGES&&f.error(a)},logWarn:function(a){t.LOG_WARN_MESSAGES&&f.warn(a)},logDebug:function(){t.LOG_DEBUG_MESSAGES&&f.debug.apply(f,arguments)}};x.focus={queue:[],byId:function(a,b){this._purgeQueue();var c=o(function(){var c=(b&&b.id?b.id+"-":"")+a,d=g.document.getElementById(c);d?d.focus():x.logWarn("[focus.byId] Element id "+c+" was not found.")});return this.queue.push(c),c},byElement:function(a){if(!angular.isElement(a))return x.logWarn("Trying to focus on an element that isn't an element."),r.reject("not-element");a=angular.element(a),this._purgeQueue();var b=o(function(){a&&a[0].focus()});return this.queue.push(b),b},bySelector:function(a,b,c){var d=this;if(!angular.isElement(a))throw new Error("The parent element is not an element.");a=angular.element(a);var e=function(){var c=a[0].querySelector(b);return d.byElement(c)};if(this._purgeQueue(),c){var f=o(e);return this.queue.push(o(e)),f}return e()},_purgeQueue:function(){this.queue.forEach(function(a){o.cancel(a)}),this.queue=[]}},["width","height"].forEach(function(b){var d=angular.uppercase(b.charAt(0))+b.substr(1);x["element"+d]=function(d,e){var f=d;if(f&&"undefined"!=typeof f.length&&f.length&&(f=d[0]),f){var g=a(f);return 0===f.offsetWidth&&h.test(g.display)?x.swap(f,i,function(){return c(f,b,e)}):c(f,b,e)}return null},x["outerElement"+d]=function(a,b){return a?x["element"+d].call(this,a,b?"margin":"border"):null}}),x.closestElm=function(a,b){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var c;["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"].some(function(a){return"function"==typeof document.body[a]?(c=a,!0):!1});for(var d;null!==a;){if(d=a.parentElement,null!==d&&d[c](b))return d;a=d}return null},x.type=function(a){var b=Function.prototype.toString.call(a.constructor);return b.match(/function (.*?)\(/)[1]},x.getBorderSize=function(b,c){"undefined"!=typeof b.length&&b.length&&(b=b[0]);var d=a(b);c=c?"border"+c.charAt(0).toUpperCase()+c.slice(1):"border",c+="Width";var e=parseInt(d[c],10);return isNaN(e)?0:e},x.detectBrowser=function(){var a=g.navigator.userAgent,b={chrome:/chrome/i,safari:/safari/i,firefox:/firefox/i,ie:/internet explorer|trident\//i};for(var c in b)if(b[c].test(a))return c;return"unknown"},x.rtlScrollType=function B(){if(B.type)return B.type;var a=angular.element('<div dir="rtl" style="font-size: 14px; width: 1px; height: 1px; position: absolute; top: -1000px; overflow: scroll">A</div>')[0],b="reverse";return document.body.appendChild(a),a.scrollLeft>0?b="default":(a.scrollLeft=1,0===a.scrollLeft&&(b="negative")),angular.element(a).remove(),B.type=b,b},x.normalizeScrollLeft=function(a,b){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var c=a.scrollLeft;if(b.isRTL())switch(x.rtlScrollType()){case"default":return a.scrollWidth-c-a.clientWidth;case"negative":return Math.abs(c);case"reverse":return c}return c},x.denormalizeScrollLeft=function(a,b,c){if("undefined"!=typeof a.length&&a.length&&(a=a[0]),c.isRTL())switch(x.rtlScrollType()){case"default":var d=a.scrollWidth-a.clientWidth;return d-b;case"negative":return-1*b;case"reverse":return b}return b},x.preEval=function(a){var b=t.BRACKET_REGEXP.exec(a);if(b)return(b[1]?x.preEval(b[1]):b[1])+b[2]+(b[3]?x.preEval(b[3]):b[3]);a=a.replace(t.APOS_REGEXP,"\\'");var c=a.split(t.DOT_REGEXP),d=[c.shift()];return angular.forEach(c,function(a){d.push(a.replace(t.FUNC_REGEXP,"']$1"))}),d.join("['")},x.debounce=function(a,b,c){function d(){g=this,f=arguments;var d=function(){e=null,c||(h=a.apply(g,f))},i=c&&!e;return e&&o.cancel(e),e=o(d,b),i&&(h=a.apply(g,f)),h}var e,f,g,h;return d.cancel=function(){o.cancel(e),e=null},d},x.throttle=function(a,b,c){function d(b){g=+new Date,a.apply(e,f),p(function(){h=null},0,1)}c=c||{};var e,f,g=0,h=null;return function(){if(e=this,f=arguments,null===h){var a=+new Date-g;a>b?d():c.trailing&&(h=p(d,b-a,1))}}},x.on={},x.off={},x._events={},x.addOff=function(a){x.off[a]=function(b,c){var d=x._events[a].indexOf(c);d>0&&x._events[a].removeAt(d)}};var y,z,A="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"];return x.on.mousewheel=function(a,b){if(a&&b){var c=angular.element(a);c.data("mousewheel-line-height",d(c)),c.data("mousewheel-page-height",x.elementHeight(c)),c.data("mousewheel-callbacks")||c.data("mousewheel-callbacks",{});var f=c.data("mousewheel-callbacks");f[b]=(Function.prototype.bind||e).call(u,c[0],b);for(var g=A.length;g;)c.on(A[--g],f[b])}},x.off.mousewheel=function(a,b){var c=angular.element(a),d=c.data("mousewheel-callbacks"),e=d[b];if(e)for(var f=A.length;f;)c.off(A[--f],e);delete d[b],0===Object.keys(d).length&&(c.removeData("mousewheel-line-height"),c.removeData("mousewheel-page-height"),c.removeData("mousewheel-callbacks"))},x}]),f.filter("px",function(){return function(a){return a.match(/^[\d\.]+$/)?a+"px":a}})}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){var b={aggregate:{label:"položky"},groupPanel:{description:"Přesuňte záhlaví zde pro vytvoření skupiny dle sloupce."},search:{placeholder:"Hledat...",showingItems:"Zobrazuji položky:",selectedItems:"Vybrané položky:",totalItems:"Celkem položek:",size:"Velikost strany:",first:"První strana",next:"Další strana",previous:"Předchozí strana",last:"Poslední strana"},menu:{text:"Vyberte sloupec:"},sort:{ascending:"Seřadit od A-Z",descending:"Seřadit od Z-A",remove:"Odebrat seřazení"},column:{hide:"Schovat sloupec"},aggregation:{count:"celkem řádků: ",sum:"celkem: ",avg:"avg: ",min:"min.: ",max:"max.: "},pinning:{pinLeft:"Zamknout vlevo",pinRight:"Zamknout vpravo",unpin:"Odemknout"},gridMenu:{columns:"Sloupce:",importerTitle:"Importovat soubor",exporterAllAsCsv:"Exportovat všechna data do csv",exporterVisibleAsCsv:"Exportovat viditelná data do csv",exporterSelectedAsCsv:"Exportovat vybraná data do csv",exporterAllAsPdf:"Exportovat všechna data do pdf",exporterVisibleAsPdf:"Exportovat viditelná data do pdf",exporterSelectedAsPdf:"Exportovat vybraná data do pdf",clearAllFilters:"Odstranit všechny filtry"},importer:{noHeaders:"Názvy sloupců se nepodařilo získat, obsahuje soubor záhlaví?",noObjects:"Data se nepodařilo zpracovat, obsahuje soubor řádky mimo záhlaví?",invalidCsv:"Soubor nelze zpracovat, jedná se o CSV?",invalidJson:"Soubor nelze zpracovat, je to JSON?",jsonNotArray:"Soubor musí obsahovat json. Ukončuji.."},pagination:{sizes:"položek na stránku",totalItems:"položek"},grouping:{group:"Seskupit",ungroup:"Odebrat seskupení",aggregate_count:"Agregace: Count",aggregate_sum:"Agregace: Sum",aggregate_max:"Agregace: Max",aggregate_min:"Agregace: Min",aggregate_avg:"Agregace: Avg",aggregate_remove:"Agregace: Odebrat"}};return a.add("cs",b),a.add("cz",b),a.add("cs-cz",b),a.add("cs-CZ",b),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("da",{aggregate:{label:"artikler"},groupPanel:{description:"Grupér rækker udfra en kolonne ved at trække dens overskift hertil."},search:{placeholder:"Søg...",showingItems:"Viste rækker:",selectedItems:"Valgte rækker:",totalItems:"Rækker totalt:",size:"Side størrelse:",first:"Første side",next:"Næste side",previous:"Forrige side",last:"Sidste side"},menu:{text:"Vælg kolonner:"},sort:{ascending:"Sorter stigende",descending:"Sorter faldende",none:"Sorter ingen",remove:"Fjern sortering"},column:{hide:"Skjul kolonne"},aggregation:{count:"antal rækker: ",sum:"sum: ",avg:"gns: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("de",{headerCell:{aria:{defaultFilterLabel:"Filter für Spalte",removeFilter:"Filter löschen",columnMenuButtonLabel:"Spaltenmenü"},priority:"Priorität:",filterLabel:"Filter für Spalte: "},aggregate:{label:"Eintrag"},groupPanel:{description:"Ziehen Sie eine Spaltenüberschrift hierhin, um nach dieser Spalte zu gruppieren."},search:{placeholder:"Suche...",showingItems:"Zeige Einträge:",selectedItems:"Ausgewählte Einträge:",totalItems:"Einträge gesamt:",size:"Einträge pro Seite:",first:"Erste Seite",next:"Nächste Seite",previous:"Vorherige Seite",last:"Letzte Seite"},menu:{text:"Spalten auswählen:"},sort:{ascending:"aufsteigend sortieren",descending:"absteigend sortieren",none:"keine Sortierung",remove:"Sortierung zurücksetzen"},column:{hide:"Spalte ausblenden"},aggregation:{count:"Zeilen insgesamt: ",sum:"gesamt: ",avg:"Durchschnitt: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Links anheften",pinRight:"Rechts anheften",unpin:"Lösen"},columnMenu:{close:"Schließen"},gridMenu:{aria:{buttonLabel:"Tabellenmenü"},columns:"Spalten:",importerTitle:"Datei importieren",exporterAllAsCsv:"Alle Daten als CSV exportieren",exporterVisibleAsCsv:"sichtbare Daten als CSV exportieren",exporterSelectedAsCsv:"markierte Daten als CSV exportieren",exporterAllAsPdf:"Alle Daten als PDF exportieren",exporterVisibleAsPdf:"sichtbare Daten als PDF exportieren",exporterSelectedAsPdf:"markierte Daten als CSV exportieren",clearAllFilters:"Alle Filter zurücksetzen"},importer:{noHeaders:"Es konnten keine Spaltennamen ermittelt werden. Sind in der Datei Spaltendefinitionen enthalten?",noObjects:"Es konnten keine Zeileninformationen gelesen werden, Sind in der Datei außer den Spaltendefinitionen auch Daten enthalten?",invalidCsv:"Die Datei konnte nicht eingelesen werden, ist es eine gültige CSV-Datei?",invalidJson:"Die Datei konnte nicht eingelesen werden. Enthält sie gültiges JSON?",jsonNotArray:"Die importierte JSON-Datei muß ein Array enthalten. Breche Import ab."},pagination:{aria:{pageToFirst:"Zum Anfang",pageBack:"Seite zurück",pageSelected:"Ausgwählte Seite",pageForward:"Seite vor",pageToLast:"Zum Ende"},sizes:"Einträge pro Seite",totalItems:"Einträge",through:"bis",of:"von"},grouping:{group:"Gruppieren",ungroup:"Gruppierung aufheben",aggregate_count:"Agg: Anzahl",aggregate_sum:"Agg: Summe",aggregate_max:"Agg: Maximum",aggregate_min:"Agg: Minimum",aggregate_avg:"Agg: Mittelwert",aggregate_remove:"Aggregation entfernen"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("en",{headerCell:{aria:{defaultFilterLabel:"Filter for column",removeFilter:"Remove Filter",columnMenuButtonLabel:"Column Menu"},priority:"Priority:",filterLabel:"Filter for column: "},aggregate:{label:"items"},groupPanel:{description:"Drag a column header here and drop it to group by that column."},search:{placeholder:"Search...",showingItems:"Showing Items:",selectedItems:"Selected Items:",totalItems:"Total Items:",size:"Page Size:",first:"First Page",next:"Next Page",previous:"Previous Page",last:"Last Page"},menu:{text:"Choose Columns:"},sort:{ascending:"Sort Ascending",descending:"Sort Descending",none:"Sort None",remove:"Remove Sort"},column:{hide:"Hide Column"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Pin Left",pinRight:"Pin Right",unpin:"Unpin"},columnMenu:{close:"Close"},gridMenu:{aria:{buttonLabel:"Grid Menu"},columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."},pagination:{aria:{pageToFirst:"Page to first",pageBack:"Page back",pageSelected:"Selected page",pageForward:"Page forward",pageToLast:"Page to last"},sizes:"items per page",totalItems:"items",through:"through",of:"of"},grouping:{group:"Group",ungroup:"Ungroup",aggregate_count:"Agg: Count",aggregate_sum:"Agg: Sum",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Avg",aggregate_remove:"Agg: Remove"},validate:{error:"Error:",minLength:"Value should be at least THRESHOLD characters long.",maxLength:"Value should be at most THRESHOLD characters long.",required:"A value is needed."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("es",{aggregate:{label:"Artículos"},groupPanel:{description:"Arrastre un encabezado de columna aquí y suéltelo para agrupar por esa columna."},search:{placeholder:"Buscar...",showingItems:"Artículos Mostrados:",selectedItems:"Artículos Seleccionados:",totalItems:"Artículos Totales:",size:"Tamaño de Página:",first:"Primera Página",next:"Página Siguiente",previous:"Página Anterior",last:"Última Página"},menu:{text:"Elegir columnas:"},sort:{ascending:"Orden Ascendente",descending:"Orden Descendente",remove:"Sin Ordenar"},column:{hide:"Ocultar la columna"},aggregation:{count:"filas totales: ",sum:"total: ",avg:"media: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fijar a la Izquierda",pinRight:"Fijar a la Derecha",unpin:"Quitar Fijación"},gridMenu:{columns:"Columnas:",importerTitle:"Importar archivo",exporterAllAsCsv:"Exportar todo como csv",exporterVisibleAsCsv:"Exportar vista como csv",exporterSelectedAsCsv:"Exportar selección como csv",exporterAllAsPdf:"Exportar todo como pdf",exporterVisibleAsPdf:"Exportar vista como pdf",exporterSelectedAsPdf:"Exportar selección como pdf",clearAllFilters:"Limpiar todos los filtros"},importer:{noHeaders:"No fue posible derivar los nombres de las columnas, ¿tiene encabezados el archivo?",noObjects:"No fue posible obtener registros, ¿contiene datos el archivo, aparte de los encabezados?",invalidCsv:"No fue posible procesar el archivo, ¿es un CSV válido?",invalidJson:"No fue posible procesar el archivo, ¿es un Json válido?",jsonNotArray:"El archivo json importado debe contener un array, abortando."},pagination:{sizes:"registros por página",totalItems:"registros",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Cont",aggregate_sum:"Agr: Sum",aggregate_max:"Agr: Máx",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Prom",aggregate_remove:"Agr: Quitar"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fa",{aggregate:{label:"قلم"},groupPanel:{description:"عنوان یک ستون را بگیر و به گروهی از آن ستون رها کن."},search:{placeholder:"جستجو...",showingItems:"نمایش اقلام:",selectedItems:"قلم\200cهای انتخاب شده:",totalItems:"مجموع اقلام:",size:"اندازه\200cی صفحه:",first:"اولین صفحه",next:"صفحه\200cی\200cبعدی",previous:"صفحه\200cی\200c قبلی",last:"آخرین صفحه"},menu:{text:"ستون\200cهای انتخابی:"},sort:{ascending:"ترتیب صعودی",descending:"ترتیب نزولی",remove:"حذف مرتب کردن"},column:{hide:"پنهان\200cکردن ستون"},aggregation:{count:"تعداد: ",sum:"مجموع: ",avg:"میانگین: ",min:"کمترین: ",max:"بیشترین: "},pinning:{pinLeft:"پین کردن سمت چپ",pinRight:"پین کردن سمت راست",unpin:"حذف پین"},gridMenu:{columns:"ستون\200cها:",importerTitle:"وارد کردن فایل",exporterAllAsCsv:"خروجی تمام داده\200cها در فایل csv",exporterVisibleAsCsv:"خروجی داده\200cهای قابل مشاهده در فایل csv",exporterSelectedAsCsv:"خروجی داده\200cهای انتخاب\200cشده در فایل csv",exporterAllAsPdf:"خروجی تمام داده\200cها در فایل pdf",exporterVisibleAsPdf:"خروجی داده\200cهای قابل مشاهده در فایل pdf",exporterSelectedAsPdf:"خروجی داده\200cهای انتخاب\200cشده در فایل pdf",clearAllFilters:"پاک کردن تمام فیلتر"},importer:{noHeaders:"نام ستون قابل استخراج نیست. آیا فایل عنوان دارد؟",noObjects:"اشیا قابل استخراج نیستند. آیا به جز عنوان\200cها در فایل داده وجود دارد؟",invalidCsv:"فایل قابل پردازش نیست. آیا فرمت  csv  معتبر است؟",invalidJson:"فایل قابل پردازش نیست. آیا فرمت json   معتبر است؟",jsonNotArray:"فایل json وارد شده باید حاوی آرایه باشد. عملیات ساقط شد."},pagination:{sizes:"اقلام در هر صفحه",totalItems:"اقلام",of:"از"},grouping:{group:"گروه\200cبندی",ungroup:"حذف گروه\200cبندی",aggregate_count:"Agg: تعداد",aggregate_sum:"Agg: جمع",aggregate_max:"Agg: بیشینه",aggregate_min:"Agg: کمینه",aggregate_avg:"Agg: میانگین",aggregate_remove:"Agg: حذف"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fi",{aggregate:{label:"rivit"},groupPanel:{description:"Raahaa ja pudota otsikko tähän ryhmittääksesi sarakkeen mukaan."},search:{placeholder:"Hae...",showingItems:"Näytetään rivejä:",selectedItems:"Valitut rivit:",totalItems:"Rivejä yht.:",size:"Näytä:",first:"Ensimmäinen sivu",next:"Seuraava sivu",previous:"Edellinen sivu",last:"Viimeinen sivu"},menu:{text:"Valitse sarakkeet:"},sort:{ascending:"Järjestä nouseva",descending:"Järjestä laskeva",remove:"Poista järjestys"},column:{hide:"Piilota sarake"},aggregation:{count:"Rivejä yht.: ",sum:"Summa: ",avg:"K.a.: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Lukitse vasemmalle",pinRight:"Lukitse oikealle",unpin:"Poista lukitus"},gridMenu:{columns:"Sarakkeet:",importerTitle:"Tuo tiedosto",exporterAllAsCsv:"Vie tiedot csv-muodossa",exporterVisibleAsCsv:"Vie näkyvä tieto csv-muodossa",exporterSelectedAsCsv:"Vie valittu tieto csv-muodossa",exporterAllAsPdf:"Vie tiedot pdf-muodossa",exporterVisibleAsPdf:"Vie näkyvä tieto pdf-muodossa",exporterSelectedAsPdf:"Vie valittu tieto pdf-muodossa",clearAllFilters:"Puhdista kaikki suodattimet"},importer:{noHeaders:"Sarakkeen nimiä ei voitu päätellä, onko tiedostossa otsikkoriviä?",noObjects:"Tietoja ei voitu lukea, onko tiedostossa muuta kuin otsikkot?",invalidCsv:"Tiedostoa ei voitu käsitellä, oliko se CSV-muodossa?",invalidJson:"Tiedostoa ei voitu käsitellä, oliko se JSON-muodossa?",jsonNotArray:"Tiedosto ei sisältänyt taulukkoa, lopetetaan."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fr",{aggregate:{label:"éléments"},groupPanel:{description:"Faites glisser une en-tête de colonne ici pour créer un groupe de colonnes."},search:{placeholder:"Recherche...",showingItems:"Affichage des éléments :",selectedItems:"Éléments sélectionnés :",totalItems:"Nombre total d'éléments:",size:"Taille de page:",first:"Première page",next:"Page Suivante",previous:"Page précédente",last:"Dernière page"},menu:{text:"Choisir des colonnes :"},sort:{ascending:"Trier par ordre croissant",descending:"Trier par ordre décroissant",remove:"Enlever le tri"},column:{hide:"Cacher la colonne"},aggregation:{count:"lignes totales: ",sum:"total: ",avg:"moy: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Épingler à gauche",pinRight:"Épingler à droite",unpin:"Détacher"},gridMenu:{columns:"Colonnes:",importerTitle:"Importer un fichier",exporterAllAsCsv:"Exporter toutes les données en CSV",exporterVisibleAsCsv:"Exporter les données visibles en CSV",exporterSelectedAsCsv:"Exporter les données sélectionnées en CSV",exporterAllAsPdf:"Exporter toutes les données en PDF",exporterVisibleAsPdf:"Exporter les données visibles en PDF",exporterSelectedAsPdf:"Exporter les données sélectionnées en PDF",clearAllFilters:"Nettoyez tous les filtres"},importer:{noHeaders:"Impossible de déterminer le nom des colonnes, le fichier possède-t-il une en-tête ?",noObjects:"Aucun objet trouvé, le fichier possède-t-il des données autres que l'en-tête ?",invalidCsv:"Le fichier n'a pas pu être traité, le CSV est-il valide ?",invalidJson:"Le fichier n'a pas pu être traité, le JSON est-il valide ?",jsonNotArray:"Le fichier JSON importé doit contenir un tableau, abandon."},pagination:{sizes:"éléments par page",totalItems:"éléments",of:"sur"},grouping:{group:"Grouper",ungroup:"Dégrouper",aggregate_count:"Agg: Compte",aggregate_sum:"Agg: Somme",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Moy",aggregate_remove:"Agg: Retirer"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("he",{aggregate:{label:"items"},groupPanel:{description:"גרור עמודה לכאן ושחרר בכדי לקבץ עמודה זו."},search:{placeholder:"חפש...",showingItems:"מציג:",selectedItems:'סה"כ נבחרו:',totalItems:'סה"כ רשומות:',size:"תוצאות בדף:",first:"דף ראשון",next:"דף הבא",previous:"דף קודם",last:"דף אחרון"},menu:{text:"בחר עמודות:"},sort:{ascending:"סדר עולה",descending:"סדר יורד",remove:"בטל"},column:{hide:"טור הסתר"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clean all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("hy",{aggregate:{label:"տվյալներ"},groupPanel:{description:"Ըստ սյան խմբավորելու համար քաշեք և գցեք վերնագիրն այստեղ։"},search:{placeholder:"Փնտրում...",showingItems:"Ցուցադրված տվյալներ՝",selectedItems:"Ընտրված:",totalItems:"Ընդամենը՝",size:"Տողերի քանակը էջում՝",first:"Առաջին էջ",next:"Հաջորդ էջ",previous:"Նախորդ էջ",last:"Վերջին էջ"},menu:{text:"Ընտրել սյուները:"},sort:{ascending:"Աճման կարգով",descending:"Նվազման կարգով",remove:"Հանել "},column:{hide:"Թաքցնել սյունը"},aggregation:{count:"ընդամենը տող՝ ",sum:"ընդամենը՝ ",avg:"միջին՝ ",min:"մին՝ ",max:"մաքս՝ "},pinning:{pinLeft:"Կպցնել ձախ կողմում",pinRight:"Կպցնել աջ կողմում",unpin:"Արձակել"},gridMenu:{columns:"Սյուներ:",importerTitle:"Ներմուծել ֆայլ",exporterAllAsCsv:"Արտահանել ամբողջը CSV",exporterVisibleAsCsv:"Արտահանել երևացող տվյալները CSV",exporterSelectedAsCsv:"Արտահանել ընտրված տվյալները CSV",exporterAllAsPdf:"Արտահանել PDF",exporterVisibleAsPdf:"Արտահանել երևացող տվյալները PDF",exporterSelectedAsPdf:"Արտահանել ընտրված տվյալները PDF",clearAllFilters:"Մաքրել բոլոր ֆիլտրերը"},importer:{noHeaders:"Հնարավոր չեղավ որոշել սյան վերնագրերը։ Արդյո՞ք ֆայլը ունի վերնագրեր։",noObjects:"Հնարավոր չեղավ կարդալ տվյալները։ Արդյո՞ք ֆայլում կան տվյալներ։",invalidCsv:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր CSV է։",invalidJson:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր Json է։",jsonNotArray:"Ներմուծված json ֆայլը պետք է պարունակի զանգված, կասեցվում է։"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("it",{aggregate:{label:"elementi"},groupPanel:{description:"Trascina un'intestazione all'interno del gruppo della colonna."},search:{placeholder:"Ricerca...",showingItems:"Mostra:",selectedItems:"Selezionati:",totalItems:"Totali:",size:"Tot Pagine:",first:"Prima",next:"Prossima",previous:"Precedente",last:"Ultima"},menu:{text:"Scegli le colonne:"},sort:{ascending:"Asc.",descending:"Desc.",remove:"Annulla ordinamento"},column:{hide:"Nascondi"},aggregation:{count:"righe totali: ",sum:"tot: ",avg:"media: ",min:"minimo: ",max:"massimo: "},pinning:{pinLeft:"Blocca a sx",pinRight:"Blocca a dx",unpin:"Blocca in alto"},gridMenu:{columns:"Colonne:",importerTitle:"Importa",exporterAllAsCsv:"Esporta tutti i dati in CSV",exporterVisibleAsCsv:"Esporta i dati visibili in CSV",exporterSelectedAsCsv:"Esporta i dati selezionati in CSV",exporterAllAsPdf:"Esporta tutti i dati in PDF",exporterVisibleAsPdf:"Esporta i dati visibili in PDF",exporterSelectedAsPdf:"Esporta i dati selezionati in PDF",clearAllFilters:"Pulire tutti i filtri"},importer:{noHeaders:"Impossibile reperire i nomi delle colonne, sicuro che siano indicati all'interno del file?",noObjects:"Impossibile reperire gli oggetti, sicuro che siano indicati all'interno del file?",invalidCsv:"Impossibile elaborare il file, sicuro che sia un CSV?",invalidJson:"Impossibile elaborare il file, sicuro che sia un JSON valido?",jsonNotArray:"Errore! Il file JSON da importare deve contenere un array."},grouping:{group:"Raggruppa",ungroup:"Separa",aggregate_count:"Agg: N. Elem.",aggregate_sum:"Agg: Somma",aggregate_max:"Agg: Massimo",aggregate_min:"Agg: Minimo",aggregate_avg:"Agg: Media",aggregate_remove:"Agg: Rimuovi"},validate:{error:"Errore:",minLength:"Lunghezza minima pari a THRESHOLD caratteri.",maxLength:"Lunghezza massima pari a THRESHOLD caratteri.",required:"Necessario inserire un valore."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ja",{aggregate:{label:"項目"},groupPanel:{description:"ここに列ヘッダをドラッグアンドドロップして、その列でグループ化します。"},search:{placeholder:"検索...",showingItems:"表示中の項目:",selectedItems:"選択した項目:",totalItems:"項目の総数:",size:"ページサイズ:",first:"最初のページ",next:"次のページ",previous:"前のページ",last:"前のページ"},menu:{text:"列の選択:"},sort:{ascending:"昇順に並べ替え",descending:"降順に並べ替え",remove:"並べ替えの解除"},column:{hide:"列の非表示"},aggregation:{count:"合計行数: ",sum:"合計: ",avg:"平均: ",min:"最小: ",max:"最大: "},pinning:{pinLeft:"左に固定",pinRight:"右に固定",unpin:"固定解除"},gridMenu:{columns:"列:",importerTitle:"ファイルのインポート",exporterAllAsCsv:"すべてのデータをCSV形式でエクスポート",exporterVisibleAsCsv:"表示中のデータをCSV形式でエクスポート",exporterSelectedAsCsv:"選択したデータをCSV形式でエクスポート",exporterAllAsPdf:"すべてのデータをPDF形式でエクスポート",exporterVisibleAsPdf:"表示中のデータをPDF形式でエクスポート",exporterSelectedAsPdf:"選択したデータをPDF形式でエクスポート",clearAllFilters:"すべてのフィルタを清掃してください"},importer:{noHeaders:"列名を取得できません。ファイルにヘッダが含まれていることを確認してください。",noObjects:"オブジェクトを取得できません。ファイルにヘッダ以外のデータが含まれていることを確認してください。",invalidCsv:"ファイルを処理できません。ファイルが有効なCSV形式であることを確認してください。",invalidJson:"ファイルを処理できません。ファイルが有効なJSON形式であることを確認してください。",jsonNotArray:"インポートしたJSONファイルには配列が含まれている必要があります。処理を中止します。"},pagination:{sizes:"項目/ページ",totalItems:"項目"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ko",{aggregate:{label:"아이템"},groupPanel:{description:"컬럼으로 그룹핑하기 위해서는 컬럼 헤더를 끌어 떨어뜨려 주세요."},search:{placeholder:"검색...",showingItems:"항목 보여주기:",selectedItems:"선택 항목:",totalItems:"전체 항목:",size:"페이지 크기:",first:"첫번째 페이지",next:"다음 페이지",previous:"이전 페이지",last:"마지막 페이지"},menu:{text:"컬럼을 선택하세요:"},sort:{ascending:"오름차순 정렬",descending:"내림차순 정렬",remove:"소팅 제거"},column:{hide:"컬럼 제거"},aggregation:{count:"전체 갯수: ",sum:"전체: ",avg:"평균: ",min:"최소: ",max:"최대: "},pinning:{pinLeft:"왼쪽 핀",pinRight:"오른쪽 핀",unpin:"핀 제거"},gridMenu:{columns:"컬럼:",importerTitle:"파일 가져오기",exporterAllAsCsv:"csv로 모든 데이터 내보내기",exporterVisibleAsCsv:"csv로 보이는 데이터 내보내기",exporterSelectedAsCsv:"csv로 선택된 데이터 내보내기",exporterAllAsPdf:"pdf로 모든 데이터 내보내기",exporterVisibleAsPdf:"pdf로 보이는 데이터 내보내기",exporterSelectedAsPdf:"pdf로 선택 데이터 내보내기",clearAllFilters:"모든 필터를 청소"},importer:{noHeaders:"컬럼명이 지정되어 있지 않습니다. 파일에 헤더가 명시되어 있는지 확인해 주세요.",noObjects:"데이터가 지정되어 있지 않습니다. 데이터가 파일에 있는지 확인해 주세요.",invalidCsv:"파일을 처리할 수 없습니다. 올바른 csv인지 확인해 주세요.",invalidJson:"파일을 처리할 수 없습니다. 올바른 json인지 확인해 주세요.",jsonNotArray:"json 파일은 배열을 포함해야 합니다."},pagination:{sizes:"페이지당 항목",totalItems:"전체 항목"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){
-a.decorator("i18nService",["$delegate",function(a){return a.add("nl",{aggregate:{label:"items"},groupPanel:{description:"Sleep hier een kolomnaam heen om op te groeperen."},search:{placeholder:"Zoeken...",showingItems:"Getoonde items:",selectedItems:"Geselecteerde items:",totalItems:"Totaal aantal items:",size:"Items per pagina:",first:"Eerste pagina",next:"Volgende pagina",previous:"Vorige pagina",last:"Laatste pagina"},menu:{text:"Kies kolommen:"},sort:{ascending:"Sorteer oplopend",descending:"Sorteer aflopend",remove:"Verwijder sortering"},column:{hide:"Verberg kolom"},aggregation:{count:"Aantal rijen: ",sum:"Som: ",avg:"Gemiddelde: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Zet links vast",pinRight:"Zet rechts vast",unpin:"Maak los"},gridMenu:{columns:"Kolommen:",importerTitle:"Importeer bestand",exporterAllAsCsv:"Exporteer alle data als csv",exporterVisibleAsCsv:"Exporteer zichtbare data als csv",exporterSelectedAsCsv:"Exporteer geselecteerde data als csv",exporterAllAsPdf:"Exporteer alle data als pdf",exporterVisibleAsPdf:"Exporteer zichtbare data als pdf",exporterSelectedAsPdf:"Exporteer geselecteerde data als pdf",clearAllFilters:"Reinig alle filters"},importer:{noHeaders:"Kolomnamen kunnen niet worden afgeleid. Heeft het bestand een header?",noObjects:"Objecten kunnen niet worden afgeleid. Bevat het bestand data naast de headers?",invalidCsv:"Het bestand kan niet verwerkt worden. Is het een valide csv bestand?",invalidJson:"Het bestand kan niet verwerkt worden. Is het valide json?",jsonNotArray:"Het json bestand moet een array bevatten. De actie wordt geannuleerd."},pagination:{sizes:"items per pagina",totalItems:"items",of:"van de"},grouping:{group:"Groepeer",ungroup:"Groepering opheffen",aggregate_count:"Agg: Aantal",aggregate_sum:"Agg: Som",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Gem",aggregate_remove:"Agg: Verwijder"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pl",{headerCell:{aria:{defaultFilterLabel:"Filter dla kolumny",removeFilter:"Usuń filter",columnMenuButtonLabel:"Menu kolumny"},priority:"Prioritet:",filterLabel:"Filtr dla kolumny: "},aggregate:{label:"pozycji"},groupPanel:{description:"Przeciągnij nagłówek kolumny tutaj, aby pogrupować według niej."},search:{placeholder:"Szukaj...",showingItems:"Widoczne pozycje:",selectedItems:"Zaznaczone pozycje:",totalItems:"Wszystkich pozycji:",size:"Rozmiar strony:",first:"Pierwsza strona",next:"Następna strona",previous:"Poprzednia strona",last:"Ostatnia strona"},menu:{text:"Wybierz kolumny:"},sort:{ascending:"Sortuj rosnąco",descending:"Sortuj malejąco",none:"Brak sortowania",remove:"Wyłącz sortowanie"},column:{hide:"Ukryj kolumne"},aggregation:{count:"Razem pozycji: ",sum:"Razem: ",avg:"Średnia: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Przypnij do lewej",pinRight:"Przypnij do prawej",unpin:"Odepnij"},columnMenu:{close:"Zamknij"},gridMenu:{aria:{buttonLabel:"Menu Grida"},columns:"Kolumny:",importerTitle:"Importuj plik",exporterAllAsCsv:"Eksportuj wszystkie dane do csv",exporterVisibleAsCsv:"Eksportuj widoczne dane do csv",exporterSelectedAsCsv:"Eksportuj zaznaczone dane do csv",exporterAllAsPdf:"Eksportuj wszystkie dane do pdf",exporterVisibleAsPdf:"Eksportuj widoczne dane do pdf",exporterSelectedAsPdf:"Eksportuj zaznaczone dane do pdf",clearAllFilters:"Wyczyść filtry"},importer:{noHeaders:"Nie udało się wczytać nazw kolumn. Czy plik posiada nagłówek?",noObjects:"Nie udalo się wczytać pozycji. Czy plik zawiera dane??",invalidCsv:"Nie udało się przetworzyć pliku, jest to prawidlowy plik CSV??",invalidJson:"Nie udało się przetworzyć pliku, jest to prawidlowy plik Json?",jsonNotArray:"Importowany plik json musi zawierać tablicę, importowanie przerwane."},pagination:{aria:{pageToFirst:"Pierwsza strona",pageBack:"Poprzednia strona",pageSelected:"Wybrana strona",pageForward:"Następna strona",pageToLast:"Ostatnia strona"},sizes:"pozycji na stronę",totalItems:"pozycji",through:"do",of:"z"},grouping:{group:"Grupuj",ungroup:"Rozgrupuj",aggregate_count:"Zbiorczo: Razem",aggregate_sum:"Zbiorczo: Suma",aggregate_max:"Zbiorczo: Max",aggregate_min:"Zbiorczo: Min",aggregate_avg:"Zbiorczo: Średnia",aggregate_remove:"Zbiorczo: Usuń"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt-br",{headerCell:{aria:{defaultFilterLabel:"Filtro por coluna",removeFilter:"Remover filtro",columnMenuButtonLabel:"Menu coluna"},priority:"Prioridade:",filterLabel:"Filtro por coluna: "},aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Items Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",none:"Nenhuma Ordem",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},columnMenu:{close:"Fechar"},gridMenu:{aria:{buttonLabel:"Menu Grid"},columns:"Colunas:",importerTitle:"Importar arquivo",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O arquivo tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no arquivo, além dos cabeçalhos?",invalidCsv:"Arquivo não pode ser processado. É um CSV válido?",invalidJson:"Arquivo não pode ser processado. É um Json válido?",jsonNotArray:"Arquivo json importado tem que conter um array. Abortando."},pagination:{aria:{pageToFirst:"Primeira página",pageBack:"Página anterior",pageSelected:"Página Selecionada",pageForward:"Proxima",pageToLast:"Anterior"},sizes:"itens por página",totalItems:"itens",through:"através dos",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt",{headerCell:{aria:{defaultFilterLabel:"Filtro por coluna",removeFilter:"Remover filtro",columnMenuButtonLabel:"Menu coluna"},priority:"Prioridade:",filterLabel:"Filtro por coluna: "},aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Itens Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",none:"Nenhuma Ordem",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},columnMenu:{close:"Fechar"},gridMenu:{aria:{buttonLabel:"Menu Grid"},columns:"Colunas:",importerTitle:"Importar ficheiro",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O ficheiro tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no ficheiro, além dos cabeçalhos?",invalidCsv:"Ficheiro não pode ser processado. É um CSV válido?",invalidJson:"Ficheiro não pode ser processado. É um Json válido?",jsonNotArray:"Ficheiro json importado tem que conter um array. Interrompendo."},pagination:{aria:{pageToFirst:"Primeira página",pageBack:"Página anterior",pageSelected:"Página Selecionada",pageForward:"Próxima",pageToLast:"Anterior"},sizes:"itens por página",totalItems:"itens",through:"através dos",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ro",{headerCell:{aria:{defaultFilterLabel:"Filtru pentru coloana",removeFilter:"Sterge filtru",columnMenuButtonLabel:"Column Menu"},priority:"Prioritate:",filterLabel:"Filtru pentru coloana:"},aggregate:{label:"Elemente"},groupPanel:{description:"Trage un cap de coloana aici pentru a grupa elementele dupa coloana respectiva"},search:{placeholder:"Cauta...",showingItems:"Arata elementele:",selectedItems:"Elementele selectate:",totalItems:"Total elemente:",size:"Marime pagina:",first:"Prima pagina",next:"Pagina urmatoare",previous:"Pagina anterioara",last:"Ultima pagina"},menu:{text:"Alege coloane:"},sort:{ascending:"Ordoneaza crescator",descending:"Ordoneaza descrescator",none:"Fara ordonare",remove:"Sterge ordonarea"},column:{hide:"Ascunde coloana"},aggregation:{count:"total linii: ",sum:"total: ",avg:"medie: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Pin la stanga",pinRight:"Pin la dreapta",unpin:"Sterge pinul"},columnMenu:{close:"Inchide"},gridMenu:{aria:{buttonLabel:"Grid Menu"},columns:"Coloane:",importerTitle:"Incarca fisier",exporterAllAsCsv:"Exporta toate datele ca csv",exporterVisibleAsCsv:"Exporta datele vizibile ca csv",exporterSelectedAsCsv:"Exporta datele selectate ca csv",exporterAllAsPdf:"Exporta toate datele ca pdf",exporterVisibleAsPdf:"Exporta datele vizibile ca pdf",exporterSelectedAsPdf:"Exporta datele selectate ca csv pdf",clearAllFilters:"Sterge toate filtrele"},importer:{noHeaders:"Numele coloanelor nu a putut fi incarcat, acest fisier are un header?",noObjects:"Datele nu au putut fi incarcate, exista date in fisier in afara numelor de coloane?",invalidCsv:"Fisierul nu a putut fi procesat, ati incarcat un CSV valid ?",invalidJson:"Fisierul nu a putut fi procesat, ati incarcat un Json valid?",jsonNotArray:"Json-ul incarcat trebuie sa contina un array, inchidere."},pagination:{aria:{pageToFirst:"Prima pagina",pageBack:"O pagina inapoi",pageSelected:"Pagina selectata",pageForward:"O pagina inainte",pageToLast:"Ultima pagina"},sizes:"Elemente per pagina",totalItems:"elemente",through:"prin",of:"of"},grouping:{group:"Grupeaza",ungroup:"Opreste gruparea",aggregate_count:"Agg: Count",aggregate_sum:"Agg: Sum",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Avg",aggregate_remove:"Agg: Remove"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ru",{headerCell:{aria:{defaultFilterLabel:"Фильтр столбца",removeFilter:"Удалить фильтр",columnMenuButtonLabel:"Меню столбца"},priority:"Приоритет:",filterLabel:"Фильтр столбца: "},aggregate:{label:"элементы"},groupPanel:{description:"Для группировки по столбцу перетащите сюда его название."},search:{placeholder:"Поиск...",showingItems:"Показать элементы:",selectedItems:"Выбранные элементы:",totalItems:"Всего элементов:",size:"Размер страницы:",first:"Первая страница",next:"Следующая страница",previous:"Предыдущая страница",last:"Последняя страница"},menu:{text:"Выбрать столбцы:"},sort:{ascending:"По возрастанию",descending:"По убыванию",none:"Без сортировки",remove:"Убрать сортировку"},column:{hide:"Спрятать столбец"},aggregation:{count:"всего строк: ",sum:"итого: ",avg:"среднее: ",min:"мин: ",max:"макс: "},pinning:{pinLeft:"Закрепить слева",pinRight:"Закрепить справа",unpin:"Открепить"},columnMenu:{close:"Закрыть"},gridMenu:{aria:{buttonLabel:"Меню"},columns:"Столбцы:",importerTitle:"Импортировать файл",exporterAllAsCsv:"Экспортировать всё в CSV",exporterVisibleAsCsv:"Экспортировать видимые данные в CSV",exporterSelectedAsCsv:"Экспортировать выбранные данные в CSV",exporterAllAsPdf:"Экспортировать всё в PDF",exporterVisibleAsPdf:"Экспортировать видимые данные в PDF",exporterSelectedAsPdf:"Экспортировать выбранные данные в PDF",clearAllFilters:"Очистите все фильтры"},importer:{noHeaders:"Не удалось получить названия столбцов, есть ли в файле заголовок?",noObjects:"Не удалось получить данные, есть ли в файле строки кроме заголовка?",invalidCsv:"Не удалось обработать файл, это правильный CSV-файл?",invalidJson:"Не удалось обработать файл, это правильный JSON?",jsonNotArray:"Импортируемый JSON-файл должен содержать массив, операция отменена."},pagination:{aria:{pageToFirst:"Первая страница",pageBack:"Предыдущая страница",pageSelected:"Выбранная страница",pageForward:"Следующая страница",pageToLast:"Последняя страница"},sizes:"строк на страницу",totalItems:"строк",through:"по",of:"из"},grouping:{group:"Группировать",ungroup:"Разгруппировать",aggregate_count:"Группировать: Count",aggregate_sum:"Для группы: Сумма",aggregate_max:"Для группы: Максимум",aggregate_min:"Для группы: Минимум",aggregate_avg:"Для группы: Среднее",aggregate_remove:"Для группы: Пусто"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sk",{aggregate:{label:"items"},groupPanel:{description:"Pretiahni sem názov stĺpca pre zoskupenie podľa toho stĺpca."},search:{placeholder:"Hľadaj...",showingItems:"Zobrazujem položky:",selectedItems:"Vybraté položky:",totalItems:"Počet položiek:",size:"Počet:",first:"Prvá strana",next:"Ďalšia strana",previous:"Predchádzajúca strana",last:"Posledná strana"},menu:{text:"Vyberte stĺpce:"},sort:{ascending:"Zotriediť vzostupne",descending:"Zotriediť zostupne",remove:"Vymazať triedenie"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sv",{aggregate:{label:"Artiklar"},groupPanel:{description:"Dra en kolumnrubrik hit och släpp den för att gruppera efter den kolumnen."},search:{placeholder:"Sök...",showingItems:"Visar artiklar:",selectedItems:"Valda artiklar:",totalItems:"Antal artiklar:",size:"Sidstorlek:",first:"Första sidan",next:"Nästa sida",previous:"Föregående sida",last:"Sista sidan"},menu:{text:"Välj kolumner:"},sort:{ascending:"Sortera stigande",descending:"Sortera fallande",remove:"Inaktivera sortering"},column:{hide:"Göm kolumn"},aggregation:{count:"Antal rader: ",sum:"Summa: ",avg:"Genomsnitt: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Fäst vänster",pinRight:"Fäst höger",unpin:"Lösgör"},gridMenu:{columns:"Kolumner:",importerTitle:"Importera fil",exporterAllAsCsv:"Exportera all data som CSV",exporterVisibleAsCsv:"Exportera synlig data som CSV",exporterSelectedAsCsv:"Exportera markerad data som CSV",exporterAllAsPdf:"Exportera all data som PDF",exporterVisibleAsPdf:"Exportera synlig data som PDF",exporterSelectedAsPdf:"Exportera markerad data som PDF",clearAllFilters:"Rengör alla filter"},importer:{noHeaders:"Kolumnnamn kunde inte härledas. Har filen ett sidhuvud?",noObjects:"Objekt kunde inte härledas. Har filen data undantaget sidhuvud?",invalidCsv:"Filen kunde inte behandlas, är den en giltig CSV?",invalidJson:"Filen kunde inte behandlas, är den en giltig JSON?",jsonNotArray:"Importerad JSON-fil måste innehålla ett fält. Import avbruten."},pagination:{sizes:"Artiklar per sida",totalItems:"Artiklar"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ta",{aggregate:{label:"உருப்படிகள்"},groupPanel:{description:"ஒரு பத்தியை குழுவாக அமைக்க அப்பத்தியின் தலைப்பை இங்கே  இழுத்து வரவும் "},search:{placeholder:"தேடல் ...",showingItems:"உருப்படிகளை காண்பித்தல்:",selectedItems:"தேர்ந்தெடுக்கப்பட்ட  உருப்படிகள்:",totalItems:"மொத்த உருப்படிகள்:",size:"பக்க அளவு: ",first:"முதல் பக்கம்",next:"அடுத்த பக்கம்",previous:"முந்தைய பக்கம் ",last:"இறுதி பக்கம்"},menu:{text:"பத்திகளை தேர்ந்தெடு:"},sort:{ascending:"மேலிருந்து கீழாக",descending:"கீழிருந்து மேலாக",remove:"வரிசையை நீக்கு"},column:{hide:"பத்தியை மறைத்து வை "},aggregation:{count:"மொத்த வரிகள்:",sum:"மொத்தம்: ",avg:"சராசரி: ",min:"குறைந்தபட்ச: ",max:"அதிகபட்ச: "},pinning:{pinLeft:"இடதுபுறமாக தைக்க ",pinRight:"வலதுபுறமாக தைக்க",unpin:"பிரி"},gridMenu:{columns:"பத்திகள்:",importerTitle:"கோப்பு : படித்தல்",exporterAllAsCsv:"எல்லா தரவுகளையும் கோப்பாக்கு: csv",exporterVisibleAsCsv:"இருக்கும் தரவுகளை கோப்பாக்கு: csv",exporterSelectedAsCsv:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: csv",exporterAllAsPdf:"எல்லா தரவுகளையும் கோப்பாக்கு: pdf",exporterVisibleAsPdf:"இருக்கும் தரவுகளை கோப்பாக்கு: pdf",exporterSelectedAsPdf:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"பத்தியின் தலைப்புகளை பெற இயலவில்லை, கோப்பிற்கு தலைப்பு உள்ளதா?",noObjects:"இலக்குகளை உருவாக்க முடியவில்லை, கோப்பில் தலைப்புகளை தவிர தரவு ஏதேனும் உள்ளதா? ",invalidCsv:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - csv",invalidJson:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - json",jsonNotArray:"படித்த கோப்பில் வரிசைகள் உள்ளது, நடைமுறை ரத்து செய் : json"},pagination:{sizes:"உருப்படிகள் / பக்கம்",totalItems:"உருப்படிகள் "},grouping:{group:"குழு",ungroup:"பிரி",aggregate_count:"மதிப்பீட்டு : எண்ணு",aggregate_sum:"மதிப்பீட்டு : கூட்டல்",aggregate_max:"மதிப்பீட்டு : அதிகபட்சம்",aggregate_min:"மதிப்பீட்டு : குறைந்தபட்சம்",aggregate_avg:"மதிப்பீட்டு : சராசரி",aggregate_remove:"மதிப்பீட்டு : நீக்கு"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("tr",{headerCell:{aria:{defaultFilterLabel:"Sütun için filtre",removeFilter:"Filtreyi Kaldır",columnMenuButtonLabel:"Sütun Menüsü"},priority:"Öncelik:",filterLabel:"Sütun için filtre: "},aggregate:{label:"kayıtlar"},groupPanel:{description:"Sütuna göre gruplamak için sütun başlığını buraya sürükleyin ve bırakın."},search:{placeholder:"Arama...",showingItems:"Gösterilen Kayıt:",selectedItems:"Seçili Kayıt:",totalItems:"Toplam Kayıt:",size:"Sayfa Boyutu:",first:"İlk Sayfa",next:"Sonraki Sayfa",previous:"Önceki Sayfa",last:"Son Sayfa"},menu:{text:"Sütunları Seç:"},sort:{ascending:"Artan Sırada Sırala",descending:"Azalan Sırada Sırala",none:"Sıralama Yapma",remove:"Sıralamayı Kaldır"},column:{hide:"Sütunu Gizle"},aggregation:{count:"toplam satır: ",sum:"toplam: ",avg:"ort: ",min:"min: ",max:"maks: "},pinning:{pinLeft:"Sola Sabitle",pinRight:"Sağa Sabitle",unpin:"Sabitlemeyi Kaldır"},columnMenu:{close:"Kapat"},gridMenu:{aria:{buttonLabel:"Tablo Menü"},columns:"Sütunlar:",importerTitle:"Dosya içeri aktar",exporterAllAsCsv:"Bütün veriyi CSV olarak dışarı aktar",exporterVisibleAsCsv:"Görünen veriyi CSV olarak dışarı aktar",exporterSelectedAsCsv:"Seçili veriyi CSV olarak dışarı aktar",exporterAllAsPdf:"Bütün veriyi PDF olarak dışarı aktar",exporterVisibleAsPdf:"Görünen veriyi PDF olarak dışarı aktar",exporterSelectedAsPdf:"Seçili veriyi PDF olarak dışarı aktar",clearAllFilters:"Bütün filtreleri kaldır"},importer:{noHeaders:"Sütun isimleri üretilemiyor, dosyanın bir başlığı var mı?",noObjects:"Nesneler üretilemiyor, dosyada başlıktan başka bir veri var mı?",invalidCsv:"Dosya işlenemedi, geçerli bir CSV dosyası mı?",invalidJson:"Dosya işlenemedi, geçerli bir Json dosyası mı?",jsonNotArray:"Alınan Json dosyasında bir dizi bulunmalıdır, işlem iptal ediliyor."},pagination:{aria:{pageToFirst:"İlk sayfaya",pageBack:"Geri git",pageSelected:"Seçili sayfa",pageForward:"İleri git",pageToLast:"Sona git"},sizes:"Sayfadaki nesne sayısı",totalItems:"kayıtlar",through:"",of:""},grouping:{group:"Grupla",ungroup:"Gruplama",aggregate_count:"Yekun: Sayı",aggregate_sum:"Yekun: Toplam",aggregate_max:"Yekun: Maks",aggregate_min:"Yekun: Min",aggregate_avg:"Yekun: Ort",aggregate_remove:"Yekun: Sil"}}),a}])}])}(),function(){var a=["uiT","uiTranslate"],b=["t","uiTranslate"],c=angular.module("ui.grid.i18n");c.constant("i18nConstants",{MISSING:"[MISSING]",UPDATE_EVENT:"$uiI18n",LOCALE_DIRECTIVE_ALIAS:"uiI18n",DEFAULT_LANG:"en"}),c.service("i18nService",["$log","i18nConstants","$rootScope",function(a,b,c){var d={_langs:{},current:null,get:function(a){return this._langs[a.toLowerCase()]},add:function(a,b){var c=a.toLowerCase();this._langs[c]||(this._langs[c]={}),angular.extend(this._langs[c],b)},getAllLangs:function(){var a=[];if(!this._langs)return a;for(var b in this._langs)a.push(b);return a},setCurrent:function(a){this.current=a.toLowerCase()},getCurrentLang:function(){return this.current}},e={add:function(a,b){"object"==typeof a?angular.forEach(a,function(a){a&&d.add(a,b)}):d.add(a,b)},getAllLangs:function(){return d.getAllLangs()},get:function(a){var b=a?a:e.getCurrentLang();return d.get(b)},getSafeText:function(a,c){var f=c?c:e.getCurrentLang(),g=d.get(f);if(!g)return b.MISSING;for(var h=a.split("."),i=g,j=0;j<h.length;++j){if(void 0===i[h[j]]||null===i[h[j]])return b.MISSING;i=i[h[j]]}return i},setCurrentLang:function(a){a&&(d.setCurrent(a),c.$broadcast(b.UPDATE_EVENT))},getCurrentLang:function(){var a=d.getCurrentLang();return a||(a=b.DEFAULT_LANG,d.setCurrent(a)),a}};return e}]);var d=function(a,b){return{compile:function(){return{pre:function(c,d,e){var f=b.LOCALE_DIRECTIVE_ALIAS,g=c.$eval(e[f]);g?c.$watch(e[f],function(){a.setCurrentLang(g)}):e.$$observers&&e.$observe(f,function(){a.setCurrentLang(e[f]||b.DEFAULT_LANG)})}}}}};c.directive("uiI18n",["i18nService","i18nConstants",d]);var e=function(b,c,d){return{restrict:"EA",compile:function(){return{pre:function(e,f,g){var h,i=a[0],j=a[1],k=g[i]||g[j]||f.html(),l=d.MISSING+k;if(g.$$observers){var m=g[i]?i:j;h=g.$observe(m,function(a){a&&f.html(b(a)(c.getCurrentLang())||l)})}var n=b(k),o=e.$on(d.UPDATE_EVENT,function(a){h?h(g[i]||g[j]):f.html(n(c.get())||l)});e.$on("$destroy",o),f.html(n(c.get())||l)}}}}};angular.forEach(a,function(a){c.directive(a,["$parse","i18nService","i18nConstants",e])});var f=function(a,b,c){return function(d){var e=a(d);return e(b.get())||c.MISSING+d}};angular.forEach(b,function(a){c.filter(a,["$parse","i18nService","i18nConstants",f])})}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("zh-cn",{headerCell:{aria:{defaultFilterLabel:"列过滤器",removeFilter:"移除过滤器",columnMenuButtonLabel:"列菜单"},priority:"优先级:",filterLabel:"列过滤器: "},aggregate:{label:"行"},groupPanel:{description:"拖曳表头到此处进行分组"},search:{placeholder:"查找",showingItems:"已显示行数:",selectedItems:"已选择行数:",totalItems:"总行数:",size:"每页显示行数:",first:"首页",next:"下一页",previous:"上一页",last:"末页"},menu:{text:"选择列:"},sort:{ascending:"升序",descending:"降序",none:"无序",remove:"取消排序"},column:{hide:"隐藏列"},aggregation:{count:"计数:",sum:"求和:",avg:"均值:",min:"最小值:",max:"最大值:"},pinning:{pinLeft:"左侧固定",pinRight:"右侧固定",unpin:"取消固定"},columnMenu:{close:"关闭"},gridMenu:{aria:{buttonLabel:"表格菜单"},columns:"列:",importerTitle:"导入文件",exporterAllAsCsv:"导出全部数据到CSV",exporterVisibleAsCsv:"导出可见数据到CSV",exporterSelectedAsCsv:"导出已选数据到CSV",exporterAllAsPdf:"导出全部数据到PDF",exporterVisibleAsPdf:"导出可见数据到PDF",exporterSelectedAsPdf:"导出已选数据到PDF",clearAllFilters:"清除所有过滤器"},importer:{noHeaders:"无法获取列名,确定文件包含表头?",noObjects:"无法获取数据,确定文件包含数据?",invalidCsv:"无法处理文件,确定是合法的CSV文件?",invalidJson:"无法处理文件,确定是合法的JSON文件?",jsonNotArray:"导入的文件不是JSON数组!"},pagination:{aria:{pageToFirst:"第一页",pageBack:"上一页",pageSelected:"当前页",pageForward:"下一页",pageToLast:"最后一页"},sizes:"行每页",totalItems:"行",through:"至",of:"共"},grouping:{group:"分组",ungroup:"取消分组",aggregate_count:"合计: 计数",aggregate_sum:"合计: 求和",aggregate_max:"合计: 最大",aggregate_min:"合计: 最小",aggregate_avg:"合计: 平均",aggregate_remove:"合计: 移除"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("zh-tw",{aggregate:{label:"行"},groupPanel:{description:"拖曳表頭到此處進行分組"},search:{placeholder:"查找",showingItems:"已顯示行數:",selectedItems:"已選擇行數:",totalItems:"總行數:",size:"每頁顯示行數:",first:"首頁",next:"下壹頁",previous:"上壹頁",last:"末頁"},menu:{text:"選擇列:"},sort:{ascending:"升序",descending:"降序",remove:"取消排序"},column:{hide:"隱藏列"},aggregation:{count:"計數:",sum:"求和:",avg:"均值:",min:"最小值:",max:"最大值:"},pinning:{pinLeft:"左側固定",pinRight:"右側固定",unpin:"取消固定"},gridMenu:{columns:"列:",importerTitle:"導入文件",exporterAllAsCsv:"導出全部數據到CSV",exporterVisibleAsCsv:"導出可見數據到CSV",exporterSelectedAsCsv:"導出已選數據到CSV",exporterAllAsPdf:"導出全部數據到PDF",exporterVisibleAsPdf:"導出可見數據到PDF",exporterSelectedAsPdf:"導出已選數據到PDF",clearAllFilters:"清除所有过滤器"},importer:{noHeaders:"無法獲取列名,確定文件包含表頭?",noObjects:"無法獲取數據,確定文件包含數據?",invalidCsv:"無法處理文件,確定是合法的CSV文件?",invalidJson:"無法處理文件,確定是合法的JSON文件?",jsonNotArray:"導入的文件不是JSON數組!"},pagination:{sizes:"行每頁",totalItems:"行"}}),a}])}])}(),function(){"use strict";var a=angular.module("ui.grid.autoResize",["ui.grid"]);a.directive("uiGridAutoResize",["$timeout","gridUtil",function(a,b){return{require:"uiGrid",scope:!1,link:function(a,c,d,e){function f(){i=b.elementHeight(c),h=b.elementWidth(c)}function g(){clearTimeout(j),j=setTimeout(function(){var d=b.elementHeight(c),j=b.elementWidth(c);d!==i||j!==h?(e.grid.gridHeight=d,e.grid.gridWidth=j,a.$apply(function(){e.grid.refresh().then(function(){f(),g()})})):g()},250)}var h,i;f();var j;g(),a.$on("$destroy",function(){clearTimeout(j)})}}}])}(),function(){"use strict";var a=angular.module("ui.grid.cellNav",["ui.grid"]);a.constant("uiGridCellNavConstants",{FEATURE_NAME:"gridCellNav",CELL_NAV_EVENT:"cellNav",direction:{LEFT:0,RIGHT:1,UP:2,DOWN:3,PG_UP:4,PG_DOWN:5},EVENT_TYPE:{KEYDOWN:0,CLICK:1,CLEAR:2}}),a.factory("uiGridCellNavFactory",["gridUtil","uiGridConstants","uiGridCellNavConstants","GridRowColumn","$q",function(a,b,c,d,e){var f=function(a,b,c,d){this.rows=a.visibleRowCache,this.columns=b.visibleColumnCache,this.leftColumns=c?c.visibleColumnCache:[],this.rightColumns=d?d.visibleColumnCache:[],this.bodyContainer=a};return f.prototype.getFocusableCols=function(){var a=this.leftColumns.concat(this.columns,this.rightColumns);return a.filter(function(a){return a.colDef.allowCellFocus})},f.prototype.getFocusableRows=function(){return this.rows.filter(function(a){return a.allowCellFocus!==!1})},f.prototype.getNextRowCol=function(a,b,d){switch(a){case c.direction.LEFT:return this.getRowColLeft(b,d);case c.direction.RIGHT:return this.getRowColRight(b,d);case c.direction.UP:return this.getRowColUp(b,d);case c.direction.DOWN:return this.getRowColDown(b,d);case c.direction.PG_UP:return this.getRowColPageUp(b,d);case c.direction.PG_DOWN:return this.getRowColPageDown(b,d)}},f.prototype.initializeSelection=function(){var a=this.getFocusableCols(),b=this.getFocusableRows();if(0===a.length||0===b.length)return null;return new d(b[0],a[0])},f.prototype.getRowColLeft=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=1);var h=0===f?c.length-1:f-1;return h>f?0===g?new d(a,c[h]):new d(e[g-1],c[h]):new d(a,c[h])},f.prototype.getRowColRight=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=f===c.length-1?0:f+1;return f>h?g===e.length-1?new d(a,c[h]):new d(e[g+1],c[h]):new d(a,c[h])},f.prototype.getRowColDown=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);return-1===f&&(f=0),g===e.length-1?new d(a,c[f]):new d(e[g+1],c[f])},f.prototype.getRowColPageDown=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=this.bodyContainer.minRowsToRender();return g>=e.length-h?new d(e[e.length-1],c[f]):new d(e[g+h],c[f])},f.prototype.getRowColUp=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);return-1===f&&(f=0),0===g?new d(a,c[f]):new d(e[g-1],c[f])},f.prototype.getRowColPageUp=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=this.bodyContainer.minRowsToRender();return 0>g-h?new d(e[0],c[f]):new d(e[g-h],c[f])},f}]),a.service("uiGridCellNavService",["gridUtil","uiGridConstants","uiGridCellNavConstants","$q","uiGridCellNavFactory","GridRowColumn","ScrollEvent",function(a,b,c,d,e,f,g){var h={initializeGrid:function(a){a.registerColumnBuilder(h.cellNavColumnBuilder),a.cellNav={},a.cellNav.lastRowCol=null,a.cellNav.focusedCells=[],h.defaultGridOptions(a.options);var b={events:{cellNav:{navigate:function(a,b){},viewPortKeyDown:function(a,b){},viewPortKeyPress:function(a,b){}}},methods:{cellNav:{scrollToFocus:function(b,c){return h.scrollToFocus(a,b,c)},getFocusedCell:function(){return a.cellNav.lastRowCol},getCurrentSelection:function(){return a.cellNav.focusedCells},rowColSelectIndex:function(b){for(var c=-1,d=0;d<a.cellNav.focusedCells.length;d++)if(a.cellNav.focusedCells[d].col.uid===b.col.uid&&a.cellNav.focusedCells[d].row.uid===b.row.uid){c=d;break}return c}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.modifierKeysToMultiSelectCells=a.modifierKeysToMultiSelectCells===!0},decorateRenderContainers:function(a){var b=a.hasRightContainer()?a.renderContainers.right:null,c=a.hasLeftContainer()?a.renderContainers.left:null;null!==c&&(a.renderContainers.left.cellNav=new e(a.renderContainers.body,c,b,a.renderContainers.body)),null!==b&&(a.renderContainers.right.cellNav=new e(a.renderContainers.body,b,a.renderContainers.body,c)),a.renderContainers.body.cellNav=new e(a.renderContainers.body,a.renderContainers.body,c,b)},getDirection:function(a){return a.keyCode===b.keymap.LEFT||a.keyCode===b.keymap.TAB&&a.shiftKey?c.direction.LEFT:a.keyCode===b.keymap.RIGHT||a.keyCode===b.keymap.TAB?c.direction.RIGHT:a.keyCode===b.keymap.UP||a.keyCode===b.keymap.ENTER&&a.shiftKey?c.direction.UP:a.keyCode===b.keymap.PG_UP?c.direction.PG_UP:a.keyCode===b.keymap.DOWN||a.keyCode===b.keymap.ENTER&&!a.ctrlKey&&!a.altKey?c.direction.DOWN:a.keyCode===b.keymap.PG_DOWN?c.direction.PG_DOWN:null},cellNavColumnBuilder:function(a,b,c){var e=[];return a.allowCellFocus=void 0===a.allowCellFocus?!0:a.allowCellFocus,d.all(e)},scrollToFocus:function(a,b,c){var d=null,e=null;return"undefined"!=typeof b&&null!==b&&(d=a.getRow(b)),"undefined"!=typeof c&&null!==c&&(e=a.getColumn(c.name?c.name:c.field)),a.api.core.scrollToIfNecessary(d,e).then(function(){var b={row:d,col:e};null!==d&&null!==e&&a.cellNav.broadcastCellNav(b);
-})},getLeftWidth:function(a,b){var c=0;if(!b)return c;var d=a.renderContainers.body.visibleColumnCache.indexOf(b);a.renderContainers.body.visibleColumnCache.forEach(function(a,b){d>b&&(c+=a.drawnWidth)});var e=0===d?0:(d+1)/a.renderContainers.body.visibleColumnCache.length;return c+=b.drawnWidth*e}};return h}]),a.directive("uiGridCellnav",["gridUtil","uiGridCellNavService","uiGridCellNavConstants","uiGridConstants","GridRowColumn","$timeout","$compile",function(a,b,c,d,e,f,g){return{replace:!0,priority:-150,require:"^uiGrid",scope:!1,controller:function(){},compile:function(){return{pre:function(a,f,g,h){var i=a,j=h.grid;b.initializeGrid(j),h.cellNav={},h.cellNav.makeRowCol=function(a){return a instanceof e||(a=new e(a.row,a.col)),a},h.cellNav.getActiveCell=function(){var a=f[0].getElementsByClassName("ui-grid-cell-focus");return a.length>0?a[0]:void 0},h.cellNav.broadcastCellNav=j.cellNav.broadcastCellNav=function(a,b,d){b=!(void 0===b||!b),a=h.cellNav.makeRowCol(a),h.cellNav.broadcastFocus(a,b,d),i.$broadcast(c.CELL_NAV_EVENT,a,b,d)},h.cellNav.clearFocus=j.cellNav.clearFocus=function(){j.cellNav.focusedCells=[],i.$broadcast(c.CELL_NAV_EVENT)},h.cellNav.broadcastFocus=function(a,b,c){b=!(void 0===b||!b),a=h.cellNav.makeRowCol(a);var d=a.row,f=a.col,g=h.grid.api.cellNav.rowColSelectIndex(a);if(null===j.cellNav.lastRowCol||-1===g){var i=new e(d,f);(null===j.cellNav.lastRowCol||j.cellNav.lastRowCol.row!==i.row||j.cellNav.lastRowCol.col!==i.col)&&(j.api.cellNav.raise.navigate(i,j.cellNav.lastRowCol),j.cellNav.lastRowCol=i),h.grid.options.modifierKeysToMultiSelectCells&&b?j.cellNav.focusedCells.push(a):j.cellNav.focusedCells=[a]}else j.options.modifierKeysToMultiSelectCells&&b&&g>=0&&j.cellNav.focusedCells.splice(g,1)},h.cellNav.handleKeyDown=function(a){var e=b.getDirection(a);if(null===e)return null;var f="body";a.uiGridTargetRenderContainerId&&(f=a.uiGridTargetRenderContainerId);var g=h.grid.api.cellNav.getFocusedCell();if(g){var i=h.grid.renderContainers[f].cellNav.getNextRowCol(e,g.row,g.col),k=h.grid.renderContainers[f].cellNav.getFocusableCols(),l=h.grid.api.cellNav.rowColSelectIndex(i);return e===c.direction.LEFT&&i.col===k[k.length-1]&&i.row===g.row&&a.keyCode===d.keymap.TAB&&a.shiftKey?(j.cellNav.focusedCells.splice(l,1),h.cellNav.clearFocus(),!0):e!==c.direction.RIGHT||i.col!==k[0]||i.row!==g.row||a.keyCode!==d.keymap.TAB||a.shiftKey?(j.scrollToIfNecessary(i.row,i.col).then(function(){h.cellNav.broadcastCellNav(i)}),a.stopPropagation(),a.preventDefault(),!1):(j.cellNav.focusedCells.splice(l,1),h.cellNav.clearFocus(),!0)}}},post:function(a,b,d,e){function f(){var d='<div id="'+h.id+'-aria-speakable" class="ui-grid-a11y-ariascreenreader-speakable ui-grid-offscreen" aria-live="assertive" role="region" aria-atomic="true" aria-hidden="false" aria-relevant="additions" >&nbsp;</div>',e=g(d)(a);b.prepend(e),a.$on(c.CELL_NAV_EVENT,function(a,b,c,d){function f(a){a!==e.text()&&(e[0].style.clip="rect(0px,0px,0px,0px)",e[0].innerHTML="",e[0].style.visibility="hidden",e[0].style.visibility="visible",""!==a&&(e[0].style.clip="auto",e[0].appendChild(document.createTextNode(a+" ")),e[0].style.visibility="hidden",e[0].style.visibility="visible"))}if(!d||"focus"!==d.type){for(var g=[],i=h.api.cellNav.getCurrentSelection(),j=0;j<i.length;j++)g.push(i[j].getIntersectionValueFiltered());var k=g.toString();f(k)}})}var h=e.grid;f()}}}}}]),a.directive("uiGridRenderContainer",["$timeout","$document","gridUtil","uiGridConstants","uiGridCellNavService","$compile","uiGridCellNavConstants",function(a,b,c,d,e,f,g){return{replace:!0,priority:-99999,require:["^uiGrid","uiGridRenderContainer","?^uiGridCellnav"],scope:!1,compile:function(){return{post:function(b,d,h,i){var j=i[0],k=i[1],l=i[2];if(j.grid.api.cellNav){var m=k.containerId,n=j.grid;if(e.decorateRenderContainers(n),"body"===m){j.grid.options.modifierKeysToMultiSelectCells?d.attr("aria-multiselectable",!0):d.attr("aria-multiselectable",!1);var o=f('<div class="ui-grid-focuser" role="region" aria-live="assertive" aria-atomic="false" tabindex="0" aria-controls="'+n.id+"-aria-speakable "+n.id+'-grid-container" aria-owns="'+n.id+'-grid-container"></div>')(b);d.append(o),o.on("focus",function(a){a.uiGridTargetRenderContainerId=m;var b=j.grid.api.cellNav.getFocusedCell();null===b&&(b=j.grid.renderContainers[m].cellNav.getNextRowCol(g.direction.DOWN,null,null),b.row&&b.col&&j.cellNav.broadcastCellNav(b))}),l.setAriaActivedescendant=function(a){d.attr("aria-activedescendant",a)},l.removeAriaActivedescendant=function(a){d.attr("aria-activedescendant")===a&&d.attr("aria-activedescendant","")},j.focus=function(){c.focus.byElement(o[0])};var p=null;o.on("keydown",function(a){a.uiGridTargetRenderContainerId=m;var b=j.grid.api.cellNav.getFocusedCell(),c=j.cellNav.handleKeyDown(a);null===c&&(j.grid.api.cellNav.raise.viewPortKeyDown(a,b),p=b)}),o.on("keypress",function(b){p&&(a(function(){j.grid.api.cellNav.raise.viewPortKeyPress(b,p)},4),p=null)}),b.$on("$destroy",function(){o.off()})}}}}}}}]),a.directive("uiGridViewport",["$timeout","$document","gridUtil","uiGridConstants","uiGridCellNavService","uiGridCellNavConstants","$log","$compile",function(a,b,c,d,e,f,g,h){return{replace:!0,priority:-99999,require:["^uiGrid","^uiGridRenderContainer","?^uiGridCellnav"],scope:!1,compile:function(){return{pre:function(a,b,c,d){},post:function(a,b,c,d){var e=d[0],f=d[1];if(e.grid.api.cellNav){var g=f.containerId;if("body"===g){var h=e.grid;h.api.core.on.scrollBegin(a,function(a){var b=e.grid.api.cellNav.getFocusedCell();null!==b&&f.colContainer.containsColumn(b.col)&&e.cellNav.clearFocus()}),h.api.core.on.scrollEnd(a,function(a){var b=e.grid.api.cellNav.getFocusedCell();null!==b&&f.colContainer.containsColumn(b.col)&&e.cellNav.broadcastCellNav(b)}),h.api.cellNav.on.navigate(a,function(){e.focus()})}}}}}}}]),a.directive("uiGridCell",["$timeout","$document","uiGridCellNavService","gridUtil","uiGridCellNavConstants","uiGridConstants","GridRowColumn",function(a,b,c,d,e,f,g){return{priority:-150,restrict:"A",require:["^uiGrid","?^uiGridCellnav"],scope:!1,link:function(a,b,c,d){function f(a){a.preventDefault()}function h(){if(!a.focused){var c=b.find("div");c.addClass("ui-grid-cell-focus"),b.attr("aria-selected",!0),k.setAriaActivedescendant(b.attr("id")),a.focused=!0}}function i(){if(a.focused){var c=b.find("div");c.removeClass("ui-grid-cell-focus"),b.attr("aria-selected",!1),k.removeAriaActivedescendant(b.attr("id")),a.focused=!1}}var j=d[0],k=d[1];if(j.grid.api.cellNav&&a.col.colDef.allowCellFocus){var l=j.grid;a.focused=!1,b.attr("tabindex",-1),b.find("div").on("click",function(b){j.cellNav.broadcastCellNav(new g(a.row,a.col),b.ctrlKey||b.metaKey,b),b.stopPropagation(),a.$apply()}),b.on("mousedown",f),j.grid.api.edit&&(j.grid.api.edit.on.beginCellEdit(a,function(){b.off("mousedown",f)}),j.grid.api.edit.on.afterCellEdit(a,function(){b.on("mousedown",f)}),j.grid.api.edit.on.cancelCellEdit(a,function(){b.on("mousedown",f)})),b.on("focus",function(b){j.cellNav.broadcastCellNav(new g(a.row,a.col),!1,b),b.stopPropagation(),a.$apply()}),a.$on(e.CELL_NAV_EVENT,function(b,c,d){var e=l.cellNav.focusedCells.some(function(b,c){return b.row===a.row&&b.col===a.col});e?h():i()}),a.$on("$destroy",function(){b.find("div").off(),b.off()})}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.edit",["ui.grid"]);a.constant("uiGridEditConstants",{EDITABLE_CELL_TEMPLATE:/EDITABLE_CELL_TEMPLATE/g,EDITABLE_CELL_DIRECTIVE:/editable_cell_directive/g,events:{BEGIN_CELL_EDIT:"uiGridEventBeginCellEdit",END_CELL_EDIT:"uiGridEventEndCellEdit",CANCEL_CELL_EDIT:"uiGridEventCancelCellEdit"}}),a.service("uiGridEditService",["$q","uiGridConstants","gridUtil",function(a,b,c){var d={initializeGrid:function(a){d.defaultGridOptions(a.options),a.registerColumnBuilder(d.editColumnBuilder),a.edit={};var b={events:{edit:{afterCellEdit:function(a,b,c,d){},beginCellEdit:function(a,b,c){},cancelCellEdit:function(a,b){}}},methods:{edit:{}}};a.api.registerEventsFromObject(b.events)},defaultGridOptions:function(a){a.cellEditableCondition=void 0===a.cellEditableCondition?!0:a.cellEditableCondition,a.enableCellEditOnFocus=void 0===a.enableCellEditOnFocus?!1:a.enableCellEditOnFocus},editColumnBuilder:function(b,d,e){var f=[];return b.enableCellEdit=void 0===b.enableCellEdit?void 0===e.enableCellEdit?"object"!==b.type:e.enableCellEdit:b.enableCellEdit,b.cellEditableCondition=void 0===b.cellEditableCondition?e.cellEditableCondition:b.cellEditableCondition,b.enableCellEdit&&(b.editableCellTemplate=b.editableCellTemplate||e.editableCellTemplate||"ui-grid/cellEditor",f.push(c.getTemplate(b.editableCellTemplate).then(function(a){d.editableCellTemplate=a},function(a){throw new Error("Couldn't fetch/use colDef.editableCellTemplate '"+b.editableCellTemplate+"'")}))),b.enableCellEditOnFocus=void 0===b.enableCellEditOnFocus?e.enableCellEditOnFocus:b.enableCellEditOnFocus,a.all(f)},isStartEditKey:function(a){return a.metaKey||a.keyCode===b.keymap.ESC||a.keyCode===b.keymap.SHIFT||a.keyCode===b.keymap.CTRL||a.keyCode===b.keymap.ALT||a.keyCode===b.keymap.WIN||a.keyCode===b.keymap.CAPSLOCK||a.keyCode===b.keymap.LEFT||a.keyCode===b.keymap.TAB&&a.shiftKey||a.keyCode===b.keymap.RIGHT||a.keyCode===b.keymap.TAB||a.keyCode===b.keymap.UP||a.keyCode===b.keymap.ENTER&&a.shiftKey||a.keyCode===b.keymap.DOWN||a.keyCode===b.keymap.ENTER?!1:!0}};return d}]),a.directive("uiGridEdit",["gridUtil","uiGridEditService",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridViewport",["uiGridEditConstants",function(a){return{replace:!0,priority:-99998,require:["^uiGrid","^uiGridRenderContainer"],scope:!1,compile:function(){return{post:function(b,c,d,e){var f=e[0];if(f.grid.api.edit&&f.grid.api.cellNav){var g=e[1].containerId;"body"===g&&(b.$on(a.events.CANCEL_CELL_EDIT,function(){f.focus()}),b.$on(a.events.END_CELL_EDIT,function(){f.focus()}))}}}}}}]),a.directive("uiGridCell",["$compile","$injector","$timeout","uiGridConstants","uiGridEditConstants","gridUtil","$parse","uiGridEditService","$rootScope","$q",function(a,b,c,d,e,f,g,h,i,j){var k=500;if(b.has("uiGridCellNavService")){b.get("uiGridCellNavService")}return{priority:-100,restrict:"A",scope:!1,require:"?^uiGrid",link:function(b,l,m,n){function o(){l.on("dblclick",u),l.on("touchstart",p),n&&n.grid.api.cellNav&&(G=n.grid.api.cellNav.on.viewPortKeyDown(b,function(a,c){null!==c&&(c.row!==b.row||c.col!==b.col||b.col.colDef.enableCellEditOnFocus||s(a))}),F=n.grid.api.cellNav.on.navigate(b,function(a,d){b.col.colDef.enableCellEditOnFocus&&(d&&a.row===d.row&&a.col===d.col||a.row!==b.row||a.col!==b.col||c(function(){u()}))})),b.beginEditEventsWired=!0}function p(a){"undefined"!=typeof a.originalEvent&&void 0!==a.originalEvent&&(a=a.originalEvent),l.on("touchend",q),C=c(function(){},k),C.then(function(){setTimeout(u,0),l.off("touchend",q)})}function q(a){c.cancel(C),l.off("touchend",q)}function r(){l.off("dblclick",u),l.off("keydown",s),l.off("touchstart",p),F(),G(),b.beginEditEventsWired=!1}function s(a){h.isStartEditKey(a)&&u(a)}function t(a,c){return!c.isSaving&&(angular.isFunction(a.colDef.cellEditableCondition)?a.colDef.cellEditableCondition(b):a.colDef.cellEditableCondition)}function u(a){b.grid.api.core.scrollToIfNecessary(b.row,b.col).then(function(){v(a)})}function v(h){if(!E&&t(b.col,b.row)){B=g(b.row.getQualifiedColField(b.col)),A=B(b),z=b.col.editableCellTemplate,z=b.col.colDef.editModelField?z.replace(d.MODEL_COL_FIELD,f.preEval("row.entity."+b.col.colDef.editModelField)):z.replace(d.MODEL_COL_FIELD,b.row.getQualifiedColField(b.col)),z=z.replace(d.COL_FIELD,"grid.getCellValue(row, col)");var k=b.col.colDef.editDropdownFilter?"|"+b.col.colDef.editDropdownFilter:"";z=z.replace(d.CUSTOM_FILTERS,k);var m="text";switch(b.col.colDef.type){case"boolean":m="checkbox";break;case"number":m="number";break;case"date":m="date"}z=z.replace("INPUT_TYPE",m);var n=b.col.colDef.editDropdownOptionsFunction;if(n)j.when(n(b.row.entity,b.col.colDef)).then(function(a){b.editDropdownOptionsArray=a});else{var o=b.col.colDef.editDropdownRowEntityOptionsArrayPath;o?b.editDropdownOptionsArray=y(b.row.entity,o):b.editDropdownOptionsArray=b.col.colDef.editDropdownOptionsArray}b.editDropdownIdLabel=b.col.colDef.editDropdownIdLabel?b.col.colDef.editDropdownIdLabel:"id",b.editDropdownValueLabel=b.col.colDef.editDropdownValueLabel?b.col.colDef.editDropdownValueLabel:"value";var p=function(){E=!0,r();var c=angular.element(z);l.append(c),D=b.$new(),a(c)(D);var d=angular.element(l.children()[0]);d.addClass("ui-grid-cell-contents-hidden")};i.$$phase?p():b.$apply(p);var q=b.col.grid.api.core.on.scrollBegin(b,function(){b.grid.disableScrolling||(w(),b.grid.api.edit.raise.afterCellEdit(b.row.entity,b.col.colDef,B(b),A),q(),s(),u())}),s=b.$on(e.events.END_CELL_EDIT,function(){w(),b.grid.api.edit.raise.afterCellEdit(b.row.entity,b.col.colDef,B(b),A),s(),q(),u()}),u=b.$on(e.events.CANCEL_CELL_EDIT,function(){x(),u(),q(),s()});b.$broadcast(e.events.BEGIN_CELL_EDIT,h),c(function(){b.grid.api.edit.raise.beginCellEdit(b.row.entity,b.col.colDef,h)})}}function w(){if(b.grid.disableScrolling=!1,E){n&&n.grid.api.cellNav&&n.focus();var a=angular.element(l.children()[0]);D.$destroy(),angular.element(l.children()[1]).remove(),a.removeClass("ui-grid-cell-contents-hidden"),E=!1,o(),b.grid.api.core.notifyDataChange(d.dataChange.EDIT)}}function x(){b.grid.disableScrolling=!1,E&&(B.assign(b,A),b.$apply(),b.grid.api.edit.raise.cancelCellEdit(b.row.entity,b.col.colDef),w())}function y(a,b){b=b.replace(/\[(\w+)\]/g,".$1"),b=b.replace(/^\./,"");for(var c=b.split(".");c.length;){var d=c.shift();if(!(d in a))return;a=a[d]}return a}var z,A,B,C,D,E=!1;if(b.col.colDef.enableCellEdit){var F=function(){},G=function(){},H=function(){b.col.colDef.enableCellEdit&&b.row.enableCellEdit!==!1?b.beginEditEventsWired||o():b.beginEditEventsWired&&r()};H();var I=b.$watch("row",function(a,b){a!==b&&H()});b.$on("$destroy",I)}}}}]),a.directive("uiGridEditor",["gridUtil","uiGridConstants","uiGridEditConstants","$timeout","uiGridEditService",function(a,b,c,d,e){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer","ngModel"],compile:function(){return{pre:function(a,b,c){},post:function(a,f,g,h){var i,j,k;h[0]&&(i=h[0]),h[1]&&(j=h[1]),h[2]&&(k=h[2]),a.$on(c.events.BEGIN_CELL_EDIT,function(b,c){if(d(function(){if(f[0].focus(),!a.col.colDef.enableCellEditOnFocus&&i&&i.grid.api.cellNav)try{f[0].setSelectionRange(f[0].value.length,f[0].value.length)}catch(b){}else f[0].select()}),i&&i.grid.api.cellNav)var g=i.grid.api.cellNav.on.viewPortKeyPress(a,function(a,b){e.isStartEditKey(a)&&(k.$setViewValue(String.fromCharCode("number"==typeof a.which?a.which:a.keyCode),a),k.$render()),g()});f.on("blur",function(b){a.stopEdit(b)})}),a.deepEdit=!1,a.stopEdit=function(b){a.inputForm&&!a.inputForm.$valid?(b.stopPropagation(),a.$emit(c.events.CANCEL_CELL_EDIT)):a.$emit(c.events.END_CELL_EDIT),a.deepEdit=!1},f.on("click",function(b){"checkbox"!==f[0].type&&(a.deepEdit=!0,d(function(){a.grid.disableScrolling=!0}))}),f.on("keydown",function(d){switch(d.keyCode){case b.keymap.ESC:d.stopPropagation(),a.$emit(c.events.CANCEL_CELL_EDIT)}if(!a.deepEdit||d.keyCode!==b.keymap.LEFT&&d.keyCode!==b.keymap.RIGHT&&d.keyCode!==b.keymap.UP&&d.keyCode!==b.keymap.DOWN)if(i&&i.grid.api.cellNav)d.uiGridTargetRenderContainerId=j.containerId,null!==i.cellNav.handleKeyDown(d)&&a.stopEdit(d);else switch(d.keyCode){case b.keymap.ENTER:case b.keymap.TAB:d.stopPropagation(),d.preventDefault(),a.stopEdit(d)}else d.stopPropagation();return!0})}}}}}]),a.directive("uiGridEditor",["$filter",function(a){function b(a){if("undefined"==typeof a||""===a)return null;var b=a.split("-");if(3!==b.length)return null;var c=parseInt(b[0],10),d=parseInt(b[1],10),e=parseInt(b[2],10);return 1>d||1>c||1>e?null:new Date(c,d-1,e)}return{priority:-100,require:"?ngModel",link:function(c,d,e,f){2===angular.version.minor&&e.type&&"date"===e.type&&f&&(f.$formatters.push(function(b){return f.$setValidity(null,!b||!isNaN(b.getTime())),a("date")(b,"yyyy-MM-dd")}),f.$parsers.push(function(a){if(a&&a.length>0){var c=b(a);return f.$setValidity(null,c&&!isNaN(c.getTime())),c}return f.$setValidity(null,!0),null}))}}}]),a.directive("uiGridEditDropdown",["uiGridConstants","uiGridEditConstants",function(a,b){return{require:["?^uiGrid","?^uiGridRenderContainer"],scope:!0,compile:function(){return{pre:function(a,b,c){},post:function(c,d,e,f){var g=f[0],h=f[1];c.$on(b.events.BEGIN_CELL_EDIT,function(){d[0].focus(),d[0].style.width=d[0].parentElement.offsetWidth-1+"px",d.on("blur",function(a){c.stopEdit(a)})}),c.stopEdit=function(a){c.$emit(b.events.END_CELL_EDIT)},d.on("keydown",function(d){switch(d.keyCode){case a.keymap.ESC:d.stopPropagation(),c.$emit(b.events.CANCEL_CELL_EDIT)}if(g&&g.grid.api.cellNav)d.uiGridTargetRenderContainerId=h.containerId,null!==g.cellNav.handleKeyDown(d)&&c.stopEdit(d);else switch(d.keyCode){case a.keymap.ENTER:case a.keymap.TAB:d.stopPropagation(),d.preventDefault(),c.stopEdit(d)}return!0})}}}}}]),a.directive("uiGridEditFileChooser",["gridUtil","uiGridConstants","uiGridEditConstants","$timeout",function(a,b,c,d){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer"],compile:function(){return{pre:function(a,b,c){},post:function(b,d,e,f){var g,h;f[0]&&(g=f[0]),f[1]&&(h=f[1]);var i=(g.grid,function(d){var e=d.srcElement||d.target;e&&e.files&&e.files.length>0?("function"==typeof b.col.colDef.editFileChooserCallback?b.col.colDef.editFileChooserCallback(b.row,b.col,e.files):a.logError("You need to set colDef.editFileChooserCallback to use the file chooser"),e.form.reset(),b.$emit(c.events.END_CELL_EDIT)):b.$emit(c.events.CANCEL_CELL_EDIT)});d[0].addEventListener("change",i,!1),b.$on(c.events.BEGIN_CELL_EDIT,function(){d[0].focus(),d[0].select(),d.on("blur",function(a){b.$emit(c.events.END_CELL_EDIT)})})}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.expandable",["ui.grid"]);a.service("uiGridExpandableService",["gridUtil","$compile",function(a,b){var c={initializeGrid:function(b){b.expandable={},b.expandable.expandedAll=!1,b.options.enableExpandable=b.options.enableExpandable!==!1,b.options.expandableRowHeight=b.options.expandableRowHeight||150,b.options.expandableRowHeaderWidth=b.options.expandableRowHeaderWidth||40,b.options.enableExpandable&&!b.options.expandableRowTemplate&&(a.logError("You have not set the expandableRowTemplate, disabling expandable module"),b.options.enableExpandable=!1);var d={events:{expandable:{rowExpandedBeforeStateChanged:function(a,b){},rowExpandedStateChanged:function(a,b){}}},methods:{expandable:{toggleRowExpansion:function(a){var d=b.getRow(a);null!==d&&c.toggleRowExpansion(b,d)},expandAllRows:function(){c.expandAllRows(b)},collapseAllRows:function(){c.collapseAllRows(b)},toggleAllRows:function(){c.toggleAllRows(b)}}}};b.api.registerEventsFromObject(d.events),b.api.registerMethodsFromObject(d.methods)},toggleRowExpansion:function(a,b){a.api.expandable.raise.rowExpandedBeforeStateChanged(b),b.isExpanded=!b.isExpanded,angular.isUndefined(b.expandedRowHeight)&&(b.expandedRowHeight=a.options.expandableRowHeight),b.isExpanded?b.height=b.grid.options.rowHeight+b.expandedRowHeight:(b.height=b.grid.options.rowHeight,a.expandable.expandedAll=!1),a.api.expandable.raise.rowExpandedStateChanged(b)},expandAllRows:function(a,b){a.renderContainers.body.visibleRowCache.forEach(function(b){b.isExpanded||c.toggleRowExpansion(a,b)}),a.expandable.expandedAll=!0,a.queueGridRefresh()},collapseAllRows:function(a){a.renderContainers.body.visibleRowCache.forEach(function(b){b.isExpanded&&c.toggleRowExpansion(a,b)}),a.expandable.expandedAll=!1,a.queueGridRefresh()},toggleAllRows:function(a){a.expandable.expandedAll?c.collapseAllRows(a):c.expandAllRows(a)}};return c}]),a.directive("uiGridExpandable",["uiGridExpandableService","$templateCache",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(c,d,e,f){if(f.grid.options.enableExpandableRowHeader!==!1){var g={name:"expandableButtons",displayName:"",exporterSuppressExport:!0,enableColumnResizing:!1,enableColumnMenu:!1,width:f.grid.options.expandableRowHeaderWidth||40};g.cellTemplate=b.get("ui-grid/expandableRowHeader"),g.headerCellTemplate=b.get("ui-grid/expandableTopRowHeader"),f.grid.addRowHeaderColumn(g)}a.initializeGrid(f.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGrid",["uiGridExpandableService","$templateCache",function(a,b){return{replace:!0,priority:599,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,b,c,d){d.grid.api.core.on.renderingComplete(a,function(){a.row&&a.row.grid&&a.row.grid.options&&a.row.grid.options.enableExpandable&&(d.grid.parentRow=a.row)})},post:function(a,b,c,d){}}}}}]),a.directive("uiGridExpandableRow",["uiGridExpandableService","$timeout","$compile","uiGridConstants","gridUtil","$interval","$log",function(a,b,c,d,e,f,g){return{replace:!1,priority:0,scope:!1,compile:function(){return{pre:function(a,b,d,f){e.getTemplate(a.grid.options.expandableRowTemplate).then(function(d){if(a.grid.options.expandableRowScope){var e=a.grid.options.expandableRowScope;for(var f in e)e.hasOwnProperty(f)&&(a[f]=e[f])}var g=c(d)(a);b.append(g),a.row.expandedRendered=!0})},post:function(a,b,c,d){a.$on("$destroy",function(){a.row.expandedRendered=!1})}}}}}]),a.directive("uiGridRow",["$compile","gridUtil","$templateCache",function(a,b,c){return{priority:-200,scope:!1,compile:function(a,b){return{pre:function(a,b,c,d){a.expandableRow={},a.expandableRow.shouldRenderExpand=function(){var b="body"===a.colContainer.name&&a.grid.options.enableExpandable!==!1&&a.row.isExpanded&&(!a.grid.isScrollingVertically||a.row.expandedRendered);return b},a.expandableRow.shouldRenderFiller=function(){var b=a.row.isExpanded&&("body"!==a.colContainer.name||a.grid.isScrollingVertically&&!a.row.expandedRendered);return b}},post:function(a,b,c,d){}}}}}]),a.directive("uiGridViewport",["$compile","gridUtil","$templateCache",function(a,b,c){return{priority:-200,scope:!1,compile:function(a,b){var d=angular.element(a.children().children()[0]),e=c.get("ui-grid/expandableScrollFiller"),f=c.get("ui-grid/expandableRow");return d.append(f),d.append(e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.exporter",["ui.grid"]);a.constant("uiGridExporterConstants",{featureName:"exporter",ALL:"all",VISIBLE:"visible",SELECTED:"selected",CSV_CONTENT:"CSV_CONTENT",BUTTON_LABEL:"BUTTON_LABEL",FILE_NAME:"FILE_NAME"}),a.service("uiGridExporterService",["$q","uiGridExporterConstants","gridUtil","$compile","$interval","i18nService",function(a,b,c,d,e,f){var g={delay:100,initializeGrid:function(a){a.exporter={},this.defaultGridOptions(a.options);var b={events:{exporter:{}},methods:{exporter:{csvExport:function(b,c){g.csvExport(a,b,c)},pdfExport:function(b,c){g.pdfExport(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods),a.api.core.addToGridMenu?g.addToMenu(a):e(function(){a.api.core.addToGridMenu&&g.addToMenu(a)},this.delay,1)},defaultGridOptions:function(a){a.exporterSuppressMenu=a.exporterSuppressMenu===!0,a.exporterMenuLabel=a.exporterMenuLabel?a.exporterMenuLabel:"Export",a.exporterSuppressColumns=a.exporterSuppressColumns?a.exporterSuppressColumns:[],a.exporterCsvColumnSeparator=a.exporterCsvColumnSeparator?a.exporterCsvColumnSeparator:",",a.exporterCsvFilename=a.exporterCsvFilename?a.exporterCsvFilename:"download.csv",a.exporterPdfFilename=a.exporterPdfFilename?a.exporterPdfFilename:"download.pdf",a.exporterOlderExcelCompatibility=a.exporterOlderExcelCompatibility===!0,a.exporterPdfDefaultStyle=a.exporterPdfDefaultStyle?a.exporterPdfDefaultStyle:{fontSize:11},a.exporterPdfTableStyle=a.exporterPdfTableStyle?a.exporterPdfTableStyle:{margin:[0,5,0,15]},a.exporterPdfTableHeaderStyle=a.exporterPdfTableHeaderStyle?a.exporterPdfTableHeaderStyle:{bold:!0,fontSize:12,color:"black"},a.exporterPdfHeader=a.exporterPdfHeader?a.exporterPdfHeader:null,a.exporterPdfFooter=a.exporterPdfFooter?a.exporterPdfFooter:null,a.exporterPdfOrientation=a.exporterPdfOrientation?a.exporterPdfOrientation:"landscape",a.exporterPdfPageSize=a.exporterPdfPageSize?a.exporterPdfPageSize:"A4",a.exporterPdfMaxGridWidth=a.exporterPdfMaxGridWidth?a.exporterPdfMaxGridWidth:720,a.exporterMenuAllData=void 0!==a.exporterMenuAllData?a.exporterMenuAllData:!0,a.exporterMenuVisibleData=void 0!==a.exporterMenuVisibleData?a.exporterMenuVisibleData:!0,a.exporterMenuSelectedData=void 0!==a.exporterMenuSelectedData?a.exporterMenuSelectedData:!0,a.exporterMenuCsv=void 0!==a.exporterMenuCsv?a.exporterMenuCsv:!0,a.exporterMenuPdf=void 0!==a.exporterMenuPdf?a.exporterMenuPdf:!0,a.exporterPdfCustomFormatter=a.exporterPdfCustomFormatter&&"function"==typeof a.exporterPdfCustomFormatter?a.exporterPdfCustomFormatter:function(a){return a},a.exporterHeaderFilterUseName=a.exporterHeaderFilterUseName===!0,a.exporterFieldCallback=a.exporterFieldCallback?a.exporterFieldCallback:function(a,b,c,d){return d},a.exporterAllDataFn=a.exporterAllDataFn?a.exporterAllDataFn:null,null==a.exporterAllDataFn&&a.exporterAllDataPromise&&(a.exporterAllDataFn=a.exporterAllDataPromise)},addToMenu:function(a){a.api.core.addToGridMenu(a,[{title:f.getSafeText("gridMenu.exporterAllAsCsv"),action:function(a){this.grid.api.exporter.csvExport(b.ALL,b.ALL)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuAllData},order:200},{title:f.getSafeText("gridMenu.exporterVisibleAsCsv"),action:function(a){this.grid.api.exporter.csvExport(b.VISIBLE,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuVisibleData},order:201},{title:f.getSafeText("gridMenu.exporterSelectedAsCsv"),action:function(a){this.grid.api.exporter.csvExport(b.SELECTED,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuSelectedData&&this.grid.api.selection&&this.grid.api.selection.getSelectedRows().length>0},order:202},{title:f.getSafeText("gridMenu.exporterAllAsPdf"),action:function(a){this.grid.api.exporter.pdfExport(b.ALL,b.ALL)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuAllData},order:203},{title:f.getSafeText("gridMenu.exporterVisibleAsPdf"),action:function(a){this.grid.api.exporter.pdfExport(b.VISIBLE,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuVisibleData},order:204},{title:f.getSafeText("gridMenu.exporterSelectedAsPdf"),action:function(a){this.grid.api.exporter.pdfExport(b.SELECTED,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuSelectedData&&this.grid.api.selection&&this.grid.api.selection.getSelectedRows().length>0},order:205}])},csvExport:function(a,b,c){var d=this;this.loadAllDataIfNeeded(a,b,c).then(function(){var e=a.options.showHeader?d.getColumnHeaders(a,c):[],f=d.getData(a,b,c),g=d.formatAsCsv(e,f,a.options.exporterCsvColumnSeparator);d.downloadFile(a.options.exporterCsvFilename,g,a.options.exporterOlderExcelCompatibility)})},loadAllDataIfNeeded:function(c,d,e){if(d===b.ALL&&c.rows.length!==c.options.totalItems&&c.options.exporterAllDataFn)return c.options.exporterAllDataFn().then(function(){c.modifyRows(c.options.data)});var f=a.defer();return f.resolve(),f.promise},getColumnHeaders:function(a,c){var d,e=[];if(c===b.ALL)d=a.columns;else{var f=a.renderContainers.left?a.renderContainers.left.visibleColumnCache.filter(function(a){return a.visible}):[],g=a.renderContainers.body?a.renderContainers.body.visibleColumnCache.filter(function(a){return a.visible}):[],h=a.renderContainers.right?a.renderContainers.right.visibleColumnCache.filter(function(a){return a.visible}):[];d=f.concat(g,h)}return d.forEach(function(b,c){b.colDef.exporterSuppressExport!==!0&&-1===a.options.exporterSuppressColumns.indexOf(b.name)&&e.push({name:b.field,displayName:a.options.exporterHeaderFilter?a.options.exporterHeaderFilterUseName?a.options.exporterHeaderFilter(b.name):a.options.exporterHeaderFilter(b.displayName):b.displayName,width:b.drawnWidth?b.drawnWidth:b.width,align:"number"===b.colDef.type?"right":"left"})}),e},getData:function(a,d,e,f){var g,h,i=[];switch(d){case b.ALL:g=a.rows;break;case b.VISIBLE:g=a.getVisibleRows();break;case b.SELECTED:a.api.selection?g=a.api.selection.getSelectedGridRows():c.logError("selection feature must be enabled to allow selected rows to be exported")}if(e===b.ALL)h=a.columns;else{var j=a.renderContainers.left?a.renderContainers.left.visibleColumnCache.filter(function(a){return a.visible}):[],k=a.renderContainers.body?a.renderContainers.body.visibleColumnCache.filter(function(a){return a.visible}):[],l=a.renderContainers.right?a.renderContainers.right.visibleColumnCache.filter(function(a){return a.visible}):[];h=j.concat(k,l)}return g.forEach(function(c,d){if(c.exporterEnableExporting!==!1){var g=[];h.forEach(function(d,h){if((d.visible||e===b.ALL)&&d.colDef.exporterSuppressExport!==!0&&-1===a.options.exporterSuppressColumns.indexOf(d.name)){var i=f?a.getCellDisplayValue(c,d):a.getCellValue(c,d),j={value:a.options.exporterFieldCallback(a,c,d,i)};d.colDef.exporterPdfAlign&&(j.alignment=d.colDef.exporterPdfAlign),g.push(j)}}),i.push(g)}}),i},formatAsCsv:function(a,b,c){var d=this,e=a.map(function(a){return{value:a.displayName}}),f=e.length>0?d.formatRowAsCsv(this,c)(e)+"\n":"";return f+=b.map(this.formatRowAsCsv(this,c)).join("\n")},formatRowAsCsv:function(a,b){return function(c){return c.map(a.formatFieldAsCsv).join(b)}},formatFieldAsCsv:function(a){return null==a.value?"":"number"==typeof a.value?a.value:"boolean"==typeof a.value?a.value?"TRUE":"FALSE":"string"==typeof a.value?'"'+a.value.replace(/"/g,'""')+'"':JSON.stringify(a.value)},isIE:function(){var a=navigator.userAgent.search(/(?:Edge|MSIE|Trident\/.*; rv:)/),b=!1;return-1!==a&&(b=!0),b},downloadFile:function(a,b,c){var d,e,f=document,g=f.createElement("a"),h="application/octet-stream;charset=utf-8";if(e=this.isIE(),e&&10>e){var i=f.createElement("iframe");return document.body.appendChild(i),i.contentWindow.document.open("text/html","replace"),i.contentWindow.document.write("sep=,\r\n"+b),i.contentWindow.document.close(),i.contentWindow.focus(),i.contentWindow.document.execCommand("SaveAs",!0,a),document.body.removeChild(i),!0}if(navigator.msSaveBlob)return navigator.msSaveOrOpenBlob(new Blob([c?"\ufeff":"",b],{type:h}),a);if("download"in g){var j=new Blob([c?"\ufeff":"",b],{type:h});d=URL.createObjectURL(j),g.setAttribute("download",a)}else d="data:"+h+","+encodeURIComponent(b),g.setAttribute("target","_blank");g.href=d,g.setAttribute("style","display:none;"),f.body.appendChild(g),setTimeout(function(){if(g.click)g.click();else if(document.createEvent){var a=document.createEvent("MouseEvents");a.initEvent("click",!0,!0),g.dispatchEvent(a)}f.body.removeChild(g)},this.delay)},pdfExport:function(a,b,c){var d=this;this.loadAllDataIfNeeded(a,b,c).then(function(){var e=d.getColumnHeaders(a,c),f=d.getData(a,b,c),g=d.prepareAsPdf(a,e,f);d.isIE()||-1!==navigator.appVersion.indexOf("Edge")?d.downloadPDF(a.options.exporterPdfFilename,g):pdfMake.createPdf(g).open()})},downloadPDF:function(a,b){var c,d=document;d.createElement("a");c=this.isIE();var e,f=pdfMake.createPdf(b);f.getBuffer(function(b){if(e=new Blob([b]),navigator.msSaveBlob)return navigator.msSaveBlob(e,a);if(c){var f=d.createElement("iframe");return document.body.appendChild(f),f.contentWindow.document.open("text/html","replace"),f.contentWindow.document.write(e),f.contentWindow.document.close(),f.contentWindow.focus(),f.contentWindow.document.execCommand("SaveAs",!0,a),document.body.removeChild(f),!0}})},prepareAsPdf:function(a,b,c){var d=this.calculatePdfHeaderWidths(a,b),e=b.map(function(a){return{text:a.displayName,style:"tableHeader"}}),f=c.map(this.formatRowAsPdf(this)),g=[e].concat(f),h={
-pageOrientation:a.options.exporterPdfOrientation,pageSize:a.options.exporterPdfPageSize,content:[{style:"tableStyle",table:{headerRows:1,widths:d,body:g}}],styles:{tableStyle:a.options.exporterPdfTableStyle,tableHeader:a.options.exporterPdfTableHeaderStyle},defaultStyle:a.options.exporterPdfDefaultStyle};return a.options.exporterPdfLayout&&(h.layout=a.options.exporterPdfLayout),a.options.exporterPdfHeader&&(h.header=a.options.exporterPdfHeader),a.options.exporterPdfFooter&&(h.footer=a.options.exporterPdfFooter),a.options.exporterPdfCustomFormatter&&(h=a.options.exporterPdfCustomFormatter(h)),h},calculatePdfHeaderWidths:function(a,b){var c=0;b.forEach(function(a){"number"==typeof a.width&&(c+=a.width)});var d=0;b.forEach(function(a){if("*"===a.width&&(d+=100),"string"==typeof a.width&&a.width.match(/(\d)*%/)){var b=parseInt(a.width.match(/(\d)*%/)[0]);a.width=c*b/100,d+=a.width}});var e=c+d;return b.map(function(b){return"*"===b.width?b.width:b.width*a.options.exporterPdfMaxGridWidth/e})},formatRowAsPdf:function(a){return function(b){return b.map(a.formatFieldAsPdfString)}},formatFieldAsPdfString:function(a){var b;return b=null==a.value?"":"number"==typeof a.value?a.value.toString():"boolean"==typeof a.value?a.value?"TRUE":"FALSE":"string"==typeof a.value?a.value.replace(/"/g,'""'):JSON.stringify(a.value).replace(/^"/,"").replace(/"$/,""),a.alignment&&"string"==typeof a.alignment&&(b={text:b,alignment:a.alignment}),b}};return g}]),a.directive("uiGridExporter",["uiGridExporterConstants","uiGridExporterService","gridUtil","$compile",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(a,c,d,e){b.initializeGrid(e.grid),e.grid.exporter.$scope=a}}}])}(),function(){"use strict";var a=angular.module("ui.grid.grouping",["ui.grid","ui.grid.treeBase"]);a.constant("uiGridGroupingConstants",{featureName:"grouping",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),a.service("uiGridGroupingService",["$q","uiGridGroupingConstants","gridUtil","rowSorter","GridRow","gridClassFactory","i18nService","uiGridConstants","uiGridTreeBaseService",function(a,b,c,d,e,f,g,h,i){var j={initializeGrid:function(a,b){i.initializeGrid(a,b),a.grouping={},a.grouping.groupHeaderCache={},j.defaultGridOptions(a.options),a.registerRowsProcessor(j.groupRows,400),a.registerColumnBuilder(j.groupingColumnBuilder),a.registerColumnsProcessor(j.groupingColumnProcessor,400);var c={events:{grouping:{aggregationChanged:{},groupingChanged:{}}},methods:{grouping:{getGrouping:function(b){var c=j.getGrouping(a);return c.grouping.forEach(function(a){a.colName=a.col.name,delete a.col}),c.aggregations.forEach(function(a){a.colName=a.col.name,delete a.col}),c.aggregations=c.aggregations.filter(function(a){return!a.aggregation.source||"grouping"!==a.aggregation.source}),b&&(c.rowExpandedStates=j.getRowExpandedStates(a.grouping.groupingHeaderCache)),c},setGrouping:function(b){j.setGrouping(a,b)},groupColumn:function(b){var c=a.getColumn(b);j.groupColumn(a,c)},ungroupColumn:function(b){var c=a.getColumn(b);j.ungroupColumn(a,c)},clearGrouping:function(){j.clearGrouping(a)},aggregateColumn:function(b,c,d){var e=a.getColumn(b);j.aggregateColumn(a,e,c,d)}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods),a.api.core.on.sortChanged(b,j.tidyPriorities)},defaultGridOptions:function(a){a.enableGrouping=a.enableGrouping!==!1,a.groupingShowCounts=a.groupingShowCounts!==!1,a.groupingNullLabel="undefined"==typeof a.groupingNullLabel?"Null":a.groupingNullLabel,a.enableGroupHeaderSelection=a.enableGroupHeaderSelection===!0},groupingColumnBuilder:function(a,d,e){if(a.enableGrouping!==!1){"undefined"==typeof d.grouping&&"undefined"!=typeof a.grouping?(d.grouping=angular.copy(a.grouping),"undefined"!=typeof d.grouping.groupPriority&&d.grouping.groupPriority>-1&&(d.treeAggregationFn=i.nativeAggregations()[b.aggregation.COUNT].aggregationFn,d.treeAggregationFinalizerFn=j.groupedFinalizerFn)):"undefined"==typeof d.grouping&&(d.grouping={}),"undefined"!=typeof d.grouping&&"undefined"!=typeof d.grouping.groupPriority&&d.grouping.groupPriority>=0&&(d.suppressRemoveSort=!0);var f={name:"ui.grid.grouping.group",title:g.get().grouping.group,icon:"ui-grid-icon-indent-right",shown:function(){return"undefined"==typeof this.context.col.grouping||"undefined"==typeof this.context.col.grouping.groupPriority||this.context.col.grouping.groupPriority<0},action:function(){j.groupColumn(this.context.col.grid,this.context.col)}},h={name:"ui.grid.grouping.ungroup",title:g.get().grouping.ungroup,icon:"ui-grid-icon-indent-left",shown:function(){return"undefined"!=typeof this.context.col.grouping&&"undefined"!=typeof this.context.col.grouping.groupPriority&&this.context.col.grouping.groupPriority>=0},action:function(){j.ungroupColumn(this.context.col.grid,this.context.col)}},k={name:"ui.grid.grouping.aggregateRemove",title:g.get().grouping.aggregate_remove,shown:function(){return"undefined"!=typeof this.context.col.treeAggregationFn},action:function(){j.aggregateColumn(this.context.col.grid,this.context.col,null)}},l=function(a,b){b=b||g.get().grouping["aggregate_"+a]||a;var e={name:"ui.grid.grouping.aggregate"+a,title:b,shown:function(){return"undefined"==typeof this.context.col.treeAggregation||"undefined"==typeof this.context.col.treeAggregation.type||this.context.col.treeAggregation.type!==a},action:function(){j.aggregateColumn(this.context.col.grid,this.context.col,a)}};c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.aggregate"+a)||d.menuItems.push(e)};d.colDef.groupingShowGroupingMenu!==!1&&(c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.group")||d.menuItems.push(f),c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.ungroup")||d.menuItems.push(h)),d.colDef.groupingShowAggregationMenu!==!1&&(angular.forEach(i.nativeAggregations(),function(a,b){l(b)}),angular.forEach(e.treeCustomAggregations,function(a,b){l(b,a.menuTitle)}),c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.aggregateRemove")||d.menuItems.push(k))}},groupingColumnProcessor:function(a,b){return a=j.moveGroupColumns(this,a,b)},groupedFinalizerFn:function(a){var b=this;"undefined"!=typeof a.groupVal?(a.rendered=a.groupVal,b.grid.options.groupingShowCounts&&"date"!==b.colDef.type&&(a.rendered+=" ("+a.value+")")):a.rendered=null},moveGroupColumns:function(a,b,c){return a.options.moveGroupColumns===!1?b:(b.forEach(function(a,b){a.groupingPosition=b}),b.sort(function(a,b){var c,d;return c=a.isRowHeader?-1e3:"undefined"==typeof a.grouping||"undefined"==typeof a.grouping.groupPriority||a.grouping.groupPriority<0?null:a.grouping.groupPriority,d=b.isRowHeader?-1e3:"undefined"==typeof b.grouping||"undefined"==typeof b.grouping.groupPriority||b.grouping.groupPriority<0?null:b.grouping.groupPriority,null!==c&&null===d?-1:null!==d&&null===c?1:null!==c&&null!==d?c-d:a.groupingPosition-b.groupingPosition}),b.forEach(function(a,b){delete a.groupingPosition}),b)},groupColumn:function(a,c){"undefined"==typeof c.grouping&&(c.grouping={});var d=j.getGrouping(a);c.grouping.groupPriority=d.grouping.length,c.sort?("undefined"==typeof c.sort.direction||null===c.sort.direction)&&(c.sort.direction=h.ASC):c.sort={direction:h.ASC},c.treeAggregation={type:b.aggregation.COUNT,source:"grouping"},c.treeAggregationFn=i.nativeAggregations()[b.aggregation.COUNT].aggregationFn,c.treeAggregationFinalizerFn=j.groupedFinalizerFn,a.api.grouping.raise.groupingChanged(c),a.api.core.raise.sortChanged(a,a.getColumnSorting()),a.queueGridRefresh()},ungroupColumn:function(a,b){"undefined"!=typeof b.grouping&&(delete b.grouping.groupPriority,delete b.treeAggregation,delete b.customTreeAggregationFinalizer,j.tidyPriorities(a),a.api.grouping.raise.groupingChanged(b),a.queueGridRefresh())},aggregateColumn:function(a,b,c){"undefined"!=typeof b.grouping&&"undefined"!=typeof b.grouping.groupPriority&&b.grouping.groupPriority>=0&&j.ungroupColumn(a,b);var d={};"undefined"!=typeof a.options.treeCustomAggregations[c]?d=a.options.treeCustomAggregations[c]:"undefined"!=typeof i.nativeAggregations()[c]&&(d=i.nativeAggregations()[c]),b.treeAggregation={type:c,label:g.get().aggregation[d.label]||d.label},b.treeAggregationFn=d.aggregationFn,b.treeAggregationFinalizerFn=d.finalizerFn,a.api.grouping.raise.aggregationChanged(b),a.queueGridRefresh()},setGrouping:function(a,b){"undefined"!=typeof b&&(j.clearGrouping(a),b.grouping&&b.grouping.length&&b.grouping.length>0&&b.grouping.forEach(function(b){var c=a.getColumn(b.colName);c&&j.groupColumn(a,c)}),b.aggregations&&b.aggregations.length&&b.aggregations.forEach(function(b){var c=a.getColumn(b.colName);c&&j.aggregateColumn(a,c,b.aggregation.type)}),b.rowExpandedStates&&j.applyRowExpandedStates(a.grouping.groupingHeaderCache,b.rowExpandedStates))},clearGrouping:function(a){var b=j.getGrouping(a);b.grouping.length>0&&b.grouping.forEach(function(b){b.col||(b.col=a.getColumn(b.colName)),j.ungroupColumn(a,b.col)}),b.aggregations.length>0&&b.aggregations.forEach(function(b){b.col||(b.col=a.getColumn(b.colName)),j.aggregateColumn(a,b.col,null)})},tidyPriorities:function(a){"undefined"!=typeof a&&"undefined"==typeof a.grid||"undefined"==typeof this.grid||(a=this.grid);var b=[],c=[];a.columns.forEach(function(a,d){"undefined"!=typeof a.grouping&&"undefined"!=typeof a.grouping.groupPriority&&a.grouping.groupPriority>=0?b.push(a):"undefined"!=typeof a.sort&&"undefined"!=typeof a.sort.priority&&a.sort.priority>=0&&c.push(a)}),b.sort(function(a,b){return a.grouping.groupPriority-b.grouping.groupPriority}),b.forEach(function(a,b){a.grouping.groupPriority=b,a.suppressRemoveSort=!0,"undefined"==typeof a.sort&&(a.sort={}),a.sort.priority=b});var d=b.length;c.sort(function(a,b){return a.sort.priority-b.sort.priority}),c.forEach(function(a,b){a.sort.priority=d,a.suppressRemoveSort=a.colDef.suppressRemoveSort,d++})},groupRows:function(a){if(0===a.length)return a;var b=this;b.grouping.oldGroupingHeaderCache=b.grouping.groupingHeaderCache||{},b.grouping.groupingHeaderCache={};for(var c=j.initialiseProcessingState(b),e=function(e,h){var i=b.getCellValue(g,e.col);e.initialised&&0===d.getSortFn(b,e.col,a)(i,e.currentValue)||(j.insertGroupHeader(b,a,f,c,h),f++)},f=0;f<a.length;f++){var g=a[f];g.visible&&c.forEach(e)}return delete b.grouping.oldGroupingHeaderCache,a},initialiseProcessingState:function(a){var b=[],c=j.getGrouping(a);return c.grouping.forEach(function(a,c){b.push({fieldName:a.field,col:a.col,initialised:!1,currentValue:null,currentRow:null})}),b},getGrouping:function(a){var b=[],c=[];return a.columns.forEach(function(a,d){a.grouping&&"undefined"!=typeof a.grouping.groupPriority&&a.grouping.groupPriority>=0&&b.push({field:a.field,col:a,groupPriority:a.grouping.groupPriority,grouping:a.grouping}),a.treeAggregation&&a.treeAggregation.type&&c.push({field:a.field,col:a,aggregation:a.treeAggregation})}),b.sort(function(a,b){return a.groupPriority-b.groupPriority}),b.forEach(function(a,b){a.grouping.groupPriority=b,a.groupPriority=b,delete a.grouping}),{grouping:b,aggregations:c}},insertGroupHeader:function(a,b,c,d,g){var h=(d[g].fieldName,d[g].col),i=a.getCellValue(b[c],h),k=i;("undefined"==typeof i||null===i)&&(k=a.options.groupingNullLabel);for(var l=function(a){return angular.isObject(a)?JSON.stringify(a):a},m=a.grouping.oldGroupingHeaderCache,n=0;g>n;n++)m&&m[l(d[n].currentValue)]&&(m=m[l(d[n].currentValue)].children);var o;for(m&&m[l(i)]?(o=m[l(i)].row,o.entity={}):(o=new e({},null,a),f.rowTemplateAssigner.call(a,o)),o.entity["$$"+d[g].col.uid]={groupVal:k},o.treeLevel=g,o.groupHeader=!0,o.internalRow=!0,o.enableCellEdit=!1,o.enableSelection=a.options.enableGroupHeaderSelection,d[g].initialised=!0,d[g].currentValue=i,d[g].currentRow=o,j.finaliseProcessingState(d,g+1),b.splice(c,0,o),m=a.grouping.groupingHeaderCache,n=0;g>n;n++)m=m[l(d[n].currentValue)].children;m[l(i)]={row:o,children:{}}},finaliseProcessingState:function(a,b){for(var c=b;c<a.length;c++)a[c].initialised=!1,a[c].currentRow=null,a[c].currentValue=null},getRowExpandedStates:function(a){if("undefined"==typeof a)return{};var b={};return angular.forEach(a,function(a,c){b[c]={state:a.row.treeNode.state},a.children?b[c].children=j.getRowExpandedStates(a.children):b[c].children={}}),b},applyRowExpandedStates:function(a,b){"undefined"!=typeof b&&angular.forEach(b,function(b,c){a[c]&&(a[c].row.treeNode.state=b.state,b.children&&a[c].children&&j.applyRowExpandedStates(a[c].children,b.children))})}};return j}]),a.directive("uiGridGrouping",["uiGridGroupingConstants","uiGridGroupingService","$templateCache",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){e.grid.options.enableGrouping!==!1&&b.initializeGrid(e.grid,a)},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.importer",["ui.grid"]);a.constant("uiGridImporterConstants",{featureName:"importer"}),a.service("uiGridImporterService",["$q","uiGridConstants","uiGridImporterConstants","gridUtil","$compile","$interval","i18nService","$window",function(a,b,c,d,e,f,g,h){var i={initializeGrid:function(a,b){b.importer={$scope:a},this.defaultGridOptions(b.options);var c={events:{importer:{}},methods:{importer:{importFile:function(a){i.importThisFile(b,a)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.options.enableImporter&&b.options.importerShowMenu&&(b.api.core.addToGridMenu?i.addToMenu(b):f(function(){b.api.core.addToGridMenu&&i.addToMenu(b)},100,1))},defaultGridOptions:function(a){a.enableImporter||void 0===a.enableImporter?h.hasOwnProperty("File")&&h.hasOwnProperty("FileReader")&&h.hasOwnProperty("FileList")&&h.hasOwnProperty("Blob")?a.enableImporter=!0:(d.logError("The File APIs are not fully supported in this browser, grid importer cannot be used."),a.enableImporter=!1):a.enableImporter=!1,a.importerProcessHeaders=a.importerProcessHeaders||i.processHeaders,a.importerHeaderFilter=a.importerHeaderFilter||function(a){return a},a.importerErrorCallback&&"function"==typeof a.importerErrorCallback||delete a.importerErrorCallback,a.enableImporter!==!0||a.importerDataAddCallback||(d.logError("You have not set an importerDataAddCallback, importer is disabled"),a.enableImporter=!1),a.importerShowMenu=a.importerShowMenu!==!1,a.importerObjectCallback=a.importerObjectCallback||function(a,b){return b}},addToMenu:function(a){a.api.core.addToGridMenu(a,[{title:g.getSafeText("gridMenu.importerTitle"),order:150},{templateUrl:"ui-grid/importerMenuItemContainer",action:function(b){this.grid.api.importer.importAFile(a)},order:151}])},importThisFile:function(a,b){if(!b)return void d.logError("No file object provided to importThisFile, should be impossible, aborting");var c=new FileReader;switch(b.type){case"application/json":c.onload=i.importJsonClosure(a);break;default:c.onload=i.importCsvClosure(a)}c.readAsText(b)},importJsonClosure:function(a){return function(b){var c,d=[],e=i.parseJson(a,b);null!==e&&(e.forEach(function(b,e){c=i.newObject(a),angular.extend(c,b),c=a.options.importerObjectCallback(a,c),d.push(c)}),i.addObjects(a,d))}},parseJson:function(a,b){var c;try{c=JSON.parse(b.target.result)}catch(d){return void i.alertError(a,"importer.invalidJson","File could not be processed, is it valid json? Content was: ",b.target.result)}return Array.isArray(c)?c:(i.alertError(a,"importer.jsonNotarray","Import failed, file is not an array, file was: ",b.target.result),[])},importCsvClosure:function(a){return function(b){var c=i.parseCsv(b);if(!c||c.length<1)return void i.alertError(a,"importer.invalidCsv","File could not be processed, is it valid csv? Content was: ",b.target.result);var d=i.createCsvObjects(a,c);return d&&0!==d.length?void i.addObjects(a,d):void i.alertError(a,"importer.noObjects","Objects were not able to be derived, content was: ",b.target.result)}},parseCsv:function(a){var b=a.target.result;return CSV.parse(b)},createCsvObjects:function(a,b){var c=a.options.importerProcessHeaders(a,b.shift());if(!c||0===c.length)return i.alertError(a,"importer.noHeaders","Column names could not be derived, content was: ",b),[];var d,e=[];return b.forEach(function(b,f){d=i.newObject(a),null!==b&&b.forEach(function(a,b){null!==c[b]&&(d[c[b]]=a)}),d=a.options.importerObjectCallback(a,d),e.push(d)}),e},processHeaders:function(a,b){var c=[];if(a.options.columnDefs&&0!==a.options.columnDefs.length){var d=i.flattenColumnDefs(a,a.options.columnDefs);return b.forEach(function(a,b){d[a]?c.push(d[a]):d[a.toLowerCase()]?c.push(d[a.toLowerCase()]):c.push(null)}),c}return b.forEach(function(a,b){c.push(a.replace(/[^0-9a-zA-Z\-_]/g,"_"))}),c},flattenColumnDefs:function(a,b){var c={};return b.forEach(function(b,d){b.name&&(c[b.name]=b.field||b.name,c[b.name.toLowerCase()]=b.field||b.name),b.field&&(c[b.field]=b.field||b.name,c[b.field.toLowerCase()]=b.field||b.name),b.displayName&&(c[b.displayName]=b.field||b.name,c[b.displayName.toLowerCase()]=b.field||b.name),b.displayName&&a.options.importerHeaderFilter&&(c[a.options.importerHeaderFilter(b.displayName)]=b.field||b.name,c[a.options.importerHeaderFilter(b.displayName).toLowerCase()]=b.field||b.name)}),c},addObjects:function(a,c,d){if(a.api.rowEdit){var e=a.registerDataChangeCallback(function(){a.api.rowEdit.setRowsDirty(c),e()},[b.dataChange.ROW]);a.importer.$scope.$on("$destroy",e)}a.importer.$scope.$apply(a.options.importerDataAddCallback(a,c))},newObject:function(a){return"undefined"!=typeof a.options&&"undefined"!=typeof a.options.importerNewObject?new a.options.importerNewObject:{}},alertError:function(a,b,c,e){a.options.importerErrorCallback?a.options.importerErrorCallback(a,b,c,e):(h.alert(g.getSafeText(b)),d.logError(c+e))}};return i}]),a.directive("uiGridImporter",["uiGridImporterConstants","uiGridImporterService","gridUtil","$compile",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(a,c,d,e){b.initializeGrid(a,e.grid)}}}]),a.directive("uiGridImporterMenuItem",["uiGridImporterConstants","uiGridImporterService","gridUtil","$compile",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,templateUrl:"ui-grid/importerMenuItem",link:function(a,d,e,f){var g=function(a){var c=a.srcElement||a.target;if(c&&c.files&&1===c.files.length){var d=c.files[0];b.importThisFile(i,d),c.form.reset()}},h=d[0].querySelectorAll(".ui-grid-importer-file-chooser"),i=f.grid;1!==h.length?c.logError("Found > 1 or < 1 file choosers within the menu item, error, cannot continue"):h[0].addEventListener("change",g,!1)}}}])}(),function(){"use strict";var a=angular.module("ui.grid.infiniteScroll",["ui.grid"]);a.service("uiGridInfiniteScrollService",["gridUtil","$compile","$timeout","uiGridConstants","ScrollEvent","$q",function(a,b,c,d,e,f){var g={initializeGrid:function(a,b){if(g.defaultGridOptions(a.options),a.options.enableInfiniteScroll){a.infiniteScroll={dataLoading:!1},g.setScrollDirections(a,a.options.infiniteScrollUp,a.options.infiniteScrollDown),a.api.core.on.scrollEnd(b,g.handleScroll);var c={events:{infiniteScroll:{needLoadMoreData:function(a,b){},needLoadMoreDataTop:function(a,b){}}},methods:{infiniteScroll:{dataLoaded:function(b,c){g.setScrollDirections(a,b,c);var d=g.adjustScroll(a).then(function(){a.infiniteScroll.dataLoading=!1});return d},resetScroll:function(b,c){return g.setScrollDirections(a,b,c),g.adjustInfiniteScrollPosition(a,0)},saveScrollPercentage:function(){a.infiniteScroll.prevScrollTop=a.renderContainers.body.prevScrollTop,a.infiniteScroll.previousVisibleRows=a.getVisibleRowCount()},dataRemovedTop:function(b,c){g.dataRemovedTop(a,b,c)},dataRemovedBottom:function(b,c){g.dataRemovedBottom(a,b,c)},setScrollDirections:function(b,c){g.setScrollDirections(a,b,c)}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)}},defaultGridOptions:function(a){a.enableInfiniteScroll=a.enableInfiniteScroll!==!1,a.infiniteScrollRowsFromEnd=a.infiniteScrollRowsFromEnd||20,a.infiniteScrollUp=a.infiniteScrollUp===!0,a.infiniteScrollDown=a.infiniteScrollDown!==!1},setScrollDirections:function(a,b,c){a.infiniteScroll.scrollUp=b===!0,a.suppressParentScrollUp=b===!0,a.infiniteScroll.scrollDown=c!==!1,a.suppressParentScrollDown=c!==!1},handleScroll:function(a){if(!(a.grid.infiniteScroll&&a.grid.infiniteScroll.dataLoading||"ui.grid.adjustInfiniteScrollPosition"===a.source)&&a.y){var b,c=a.grid.options.infiniteScrollRowsFromEnd/a.grid.renderContainers.body.visibleRowCache.length;a.grid.scrollDirection===d.scrollDirection.UP?(b=a.y.percentage,c>=b&&g.loadData(a.grid)):a.grid.scrollDirection===d.scrollDirection.DOWN&&(b=1-a.y.percentage,c>=b&&g.loadData(a.grid))}},loadData:function(a){a.infiniteScroll.previousVisibleRows=a.renderContainers.body.visibleRowCache.length,a.infiniteScroll.direction=a.scrollDirection,delete a.infiniteScroll.prevScrollTop,a.scrollDirection===d.scrollDirection.UP&&a.infiniteScroll.scrollUp?(a.infiniteScroll.dataLoading=!0,a.api.infiniteScroll.raise.needLoadMoreDataTop()):a.scrollDirection===d.scrollDirection.DOWN&&a.infiniteScroll.scrollDown&&(a.infiniteScroll.dataLoading=!0,a.api.infiniteScroll.raise.needLoadMoreData())},adjustScroll:function(a){var b=f.defer();return c(function(){var e,f,h,i,j;e=a.getViewportHeight()+a.headerHeight-a.renderContainers.body.headerHeight-a.scrollbarHeight,f=a.options.rowHeight,void 0===a.infiniteScroll.direction&&g.adjustInfiniteScrollPosition(a,0),h=a.getVisibleRowCount();var k=f*h;a.infiniteScroll.scrollDown&&e>k&&a.api.infiniteScroll.raise.needLoadMoreData(),a.infiniteScroll.direction===d.scrollDirection.UP&&(i=a.infiniteScroll.prevScrollTop||0,j=i+(h-a.infiniteScroll.previousVisibleRows)*f,g.adjustInfiniteScrollPosition(a,j),c(function(){b.resolve()})),a.infiniteScroll.direction===d.scrollDirection.DOWN&&(j=a.infiniteScroll.prevScrollTop||a.infiniteScroll.previousVisibleRows*f-e,g.adjustInfiniteScrollPosition(a,j),c(function(){b.resolve()}))},0),b.promise},adjustInfiniteScrollPosition:function(a,b){var c=new e(a,null,null,"ui.grid.adjustInfiniteScrollPosition"),d=a.getVisibleRowCount(),f=a.getViewportHeight()+a.headerHeight-a.renderContainers.body.headerHeight-a.scrollbarHeight,g=a.options.rowHeight,h=d*g-f;0===b&&a.infiniteScroll.scrollUp?c.y={percentage:1/h}:c.y={percentage:b/h},a.scrollContainers("",c)},dataRemovedTop:function(a,b,c){var d,e,f,h;return g.setScrollDirections(a,b,c),d=a.renderContainers.body.visibleRowCache.length,e=a.infiniteScroll.prevScrollTop,h=a.options.rowHeight,f=e-(a.infiniteScroll.previousVisibleRows-d)*h,g.adjustInfiniteScrollPosition(a,f)},dataRemovedBottom:function(a,b,c){var d;return g.setScrollDirections(a,b,c),d=a.infiniteScroll.prevScrollTop,g.adjustInfiniteScrollPosition(a,d)}};return g}]),a.directive("uiGridInfiniteScroll",["uiGridInfiniteScrollService",function(a){return{priority:-200,scope:!1,require:"^uiGrid",compile:function(b,c,d){return{pre:function(b,c,d,e){a.initializeGrid(e.grid,b)},post:function(a,b,c){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.moveColumns",["ui.grid"]);a.service("uiGridMoveColumnService",["$q","$timeout","$log","ScrollEvent","uiGridConstants","gridUtil",function(a,b,c,d,e,f){var g={initializeGrid:function(a){var b=this;this.registerPublicApi(a),this.defaultGridOptions(a.options),a.moveColumns={orderCache:[]},a.registerColumnBuilder(b.movableColumnBuilder),a.registerDataChangeCallback(b.verifyColumnOrder,[e.dataChange.COLUMN])},registerPublicApi:function(a){var b=this,c={events:{colMovable:{columnPositionChanged:function(a,b,c){}}},methods:{colMovable:{moveColumn:function(c,d){var e=a.columns;if(!angular.isNumber(c)||!angular.isNumber(d))return void f.logError("MoveColumn: Please provide valid values for originalPosition and finalPosition");for(var g=0,h=0;h<e.length;h++)(angular.isDefined(e[h].colDef.visible)&&e[h].colDef.visible===!1||e[h].isRowHeader===!0)&&g++;if(c>=e.length-g||d>=e.length-g)return void f.logError("MoveColumn: Invalid values for originalPosition, finalPosition");var i=function(a){for(var b=a,c=0;b>=c;c++)angular.isDefined(e[c])&&(angular.isDefined(e[c].colDef.visible)&&e[c].colDef.visible===!1||e[c].isRowHeader===!0)&&b++;return b};b.redrawColumnAtPosition(a,i(c),i(d))}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.enableColumnMoving=a.enableColumnMoving!==!1},movableColumnBuilder:function(b,c,d){var e=[];return b.enableColumnMoving=void 0===b.enableColumnMoving?d.enableColumnMoving:b.enableColumnMoving,a.all(e)},updateColumnCache:function(a){a.moveColumns.orderCache=a.getOnlyDataColumns()},verifyColumnOrder:function(a){var b,c=a.rowHeaderColumns.length;angular.forEach(a.moveColumns.orderCache,function(d,e){if(b=a.columns.indexOf(d),-1!==b&&b-c!==e){var f=a.columns.splice(b,1)[0];a.columns.splice(e+c,0,f)}})},redrawColumnAtPosition:function(a,c,d){if(c!==d){var f=a.columns,h=f[c];if(h.colDef.enableColumnMoving){if(c>d)for(var i=c;i>d;i--)f[i]=f[i-1];else if(d>c)for(var j=c;d>j;j++)f[j]=f[j+1];f[d]=h,g.updateColumnCache(a),a.queueGridRefresh(),b(function(){a.api.core.notifyDataChange(e.dataChange.COLUMN),a.api.colMovable.raise.columnPositionChanged(h.colDef,c,d)})}}}};return g}]),a.directive("uiGridMoveColumns",["uiGridMoveColumnService",function(a){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(b,c,d,e){a.initializeGrid(e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridHeaderCell",["$q","gridUtil","uiGridMoveColumnService","$document","$log","uiGridConstants","ScrollEvent",function(a,b,c,d,e,f,g){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(a,b,e,f){if(a.col.colDef.enableColumnMoving){var h,i,j,k,l,m,n=angular.element(b[0].querySelectorAll(".ui-grid-cell-contents")),o=!1,p=!1,q=function(b){h=a.grid.element[0].getBoundingClientRect().left,a.grid.hasLeftContainer()&&(h+=a.grid.renderContainers.left.header[0].getBoundingClientRect().width),i=b.pageX,j=0,k=h+a.grid.getViewportWidth(),"mousedown"===b.type?(d.on("mousemove",r),d.on("mouseup",s)):"touchstart"===b.type&&(d.on("touchmove",r),d.on("touchend",s))},r=function(a){var b=a.pageX-i;0!==b&&(document.onselectstart=function(){return!1},p=!0,o?o&&(w(b),i=a.pageX):v())},s=function(b){if(document.onselectstart=null,l&&(l.remove(),o=!1),u(),t(),p){for(var d=a.grid.columns,e=0,f=0;f<d.length&&d[f].colDef.name!==a.col.colDef.name;f++)e++;if(0>j){for(var g=0,h=e-1;h>=0;h--)if((angular.isUndefined(d[h].colDef.visible)||d[h].colDef.visible===!0)&&(g+=d[h].drawnWidth||d[h].width||d[h].colDef.width,g>Math.abs(j))){c.redrawColumnAtPosition(a.grid,e,h+1);break}g<Math.abs(j)&&c.redrawColumnAtPosition(a.grid,e,0)}else if(j>0){for(var i=0,k=e+1;k<d.length;k++)if((angular.isUndefined(d[k].colDef.visible)||d[k].colDef.visible===!0)&&(i+=d[k].drawnWidth||d[k].width||d[k].colDef.width,i>j)){c.redrawColumnAtPosition(a.grid,e,k-1);break}j>i&&c.redrawColumnAtPosition(a.grid,e,d.length-1)}}},t=function(){n.on("touchstart",q),n.on("mousedown",q)},u=function(){n.off("touchstart",q),n.off("mousedown",q),d.off("mousemove",r),d.off("touchmove",r),d.off("mouseup",s),d.off("touchend",s)};t();var v=function(){o=!0,l=b.clone(),b.parent().append(l),l.addClass("movingColumn");var c={};c.left=b[0].offsetLeft+"px";var d=a.grid.element[0].getBoundingClientRect().right,e=b[0].getBoundingClientRect().right;e>d&&(m=a.col.drawnWidth+(d-e),c.width=m+"px"),l.css(c)},w=function(b){for(var c=a.grid.columns,d=0,e=0;e<c.length;e++)(angular.isUndefined(c[e].colDef.visible)||c[e].colDef.visible===!0)&&(d+=c[e].drawnWidth||c[e].width||c[e].colDef.width);var i,n=l[0].getBoundingClientRect().left-1,o=l[0].getBoundingClientRect().right;if(i=n-h+b,i=k>i?i:k,(n>=h||b>0)&&(k>=o||0>b))l.css({visibility:"visible",left:l[0].offsetLeft+(k>i?b:k-n)+"px"});else if(d>Math.ceil(f.grid.gridWidth)){b*=8;var p=new g(a.col.grid,null,null,"uiGridHeaderCell.moveElement");p.x={pixels:b},p.grid.scrollContainers("",p)}for(var q=0,r=0;r<c.length;r++)if(angular.isUndefined(c[r].colDef.visible)||c[r].colDef.visible===!0){if(c[r].colDef.name===a.col.colDef.name)break;q+=c[r].drawnWidth||c[r].width||c[r].colDef.width}void 0===a.newScrollLeft?j+=b:j=a.newScrollLeft+i-q,m<a.col.drawnWidth&&(m+=Math.abs(b),l.css({width:m+"px"}))}}}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.pagination",["ng","ui.grid"]);a.service("uiGridPaginationService",["gridUtil",function(a){var b={initializeGrid:function(a){b.defaultGridOptions(a.options);var c={events:{pagination:{paginationChanged:function(a,b){}}},methods:{pagination:{getPage:function(){return a.options.enablePagination?a.options.paginationCurrentPage:null},getTotalPages:function(){return a.options.enablePagination?0===a.options.totalItems?1:Math.ceil(a.options.totalItems/a.options.paginationPageSize):null},nextPage:function(){a.options.enablePagination&&(a.options.totalItems>0?a.options.paginationCurrentPage=Math.min(a.options.paginationCurrentPage+1,c.methods.pagination.getTotalPages()):a.options.paginationCurrentPage++)},previousPage:function(){a.options.enablePagination&&(a.options.paginationCurrentPage=Math.max(a.options.paginationCurrentPage-1,1))},seek:function(b){if(a.options.enablePagination){if(!angular.isNumber(b)||1>b)throw"Invalid page number: "+b;a.options.paginationCurrentPage=Math.min(b,c.methods.pagination.getTotalPages())}}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods);var d=function(b){if(a.options.useExternalPagination||!a.options.enablePagination)return b;var c=parseInt(a.options.paginationPageSize,10),d=parseInt(a.options.paginationCurrentPage,10),e=b.filter(function(a){return a.visible});a.options.totalItems=e.length;var f=(d-1)*c;return f>e.length&&(d=a.options.paginationCurrentPage=1,f=(d-1)*c),e.slice(f,f+c)};a.registerRowsProcessor(d,900)},defaultGridOptions:function(b){b.enablePagination=b.enablePagination!==!1,b.enablePaginationControls=b.enablePaginationControls!==!1,b.useExternalPagination=b.useExternalPagination===!0,a.isNullOrUndefined(b.totalItems)&&(b.totalItems=0),a.isNullOrUndefined(b.paginationPageSizes)&&(b.paginationPageSizes=[250,500,1e3]),a.isNullOrUndefined(b.paginationPageSize)&&(b.paginationPageSizes.length>0?b.paginationPageSize=b.paginationPageSizes[0]:b.paginationPageSize=0),a.isNullOrUndefined(b.paginationCurrentPage)&&(b.paginationCurrentPage=1),a.isNullOrUndefined(b.paginationTemplate)&&(b.paginationTemplate="ui-grid/pagination")},onPaginationChanged:function(a,b,c){a.api.pagination.raise.paginationChanged(b,c),a.options.useExternalPagination||a.queueGridRefresh()}};return b}]),a.directive("uiGridPagination",["gridUtil","uiGridPaginationService",function(a,b){return{priority:-200,scope:!1,require:"uiGrid",link:{pre:function(c,d,e,f){b.initializeGrid(f.grid),a.getTemplate(f.grid.options.paginationTemplate).then(function(a){var b=angular.element(a);d.append(b),f.innerCompile(b)})}}}}]),a.directive("uiGridPager",["uiGridPaginationService","uiGridConstants","gridUtil","i18nService",function(a,b,c,d){return{priority:-200,scope:!0,require:"^uiGrid",link:function(e,f,g,h){var i=".ui-grid-pager-control-input";e.aria=d.getSafeText("pagination.aria"),e.paginationApi=h.grid.api.pagination,e.sizesLabel=d.getSafeText("pagination.sizes"),e.totalItemsLabel=d.getSafeText("pagination.totalItems"),e.paginationOf=d.getSafeText("pagination.of"),e.paginationThrough=d.getSafeText("pagination.through");var j=h.grid.options;h.grid.renderContainers.body.registerViewportAdjuster(function(a){return a.height=a.height-c.elementHeight(f,"padding"),a});var k=h.grid.registerDataChangeCallback(function(a){a.options.useExternalPagination||(a.options.totalItems=a.rows.length)},[b.dataChange.ROW]);e.$on("$destroy",k);var l=function(){e.showingLow=(j.paginationCurrentPage-1)*j.paginationPageSize+1,e.showingHigh=Math.min(j.paginationCurrentPage*j.paginationPageSize,j.totalItems);
-},m=e.$watch("grid.options.totalItems + grid.options.paginationPageSize",l),n=e.$watch("grid.options.paginationCurrentPage + grid.options.paginationPageSize",function(b,c){if(b!==c&&void 0!==c){if(!angular.isNumber(j.paginationCurrentPage)||j.paginationCurrentPage<1)return void(j.paginationCurrentPage=1);if(j.totalItems>0&&j.paginationCurrentPage>e.paginationApi.getTotalPages())return void(j.paginationCurrentPage=e.paginationApi.getTotalPages());l(),a.onPaginationChanged(e.grid,j.paginationCurrentPage,j.paginationPageSize)}});e.$on("$destroy",function(){m(),n()}),e.cantPageForward=function(){return j.totalItems>0?j.paginationCurrentPage>=e.paginationApi.getTotalPages():j.data.length<1},e.cantPageToLast=function(){return j.totalItems>0?e.cantPageForward():!0},e.cantPageBackward=function(){return j.paginationCurrentPage<=1};var o=function(a){a&&c.focus.bySelector(f,i)};e.pageFirstPageClick=function(){e.paginationApi.seek(1),o(e.cantPageBackward())},e.pagePreviousPageClick=function(){e.paginationApi.previousPage(),o(e.cantPageBackward())},e.pageNextPageClick=function(){e.paginationApi.nextPage(),o(e.cantPageForward())},e.pageLastPageClick=function(){e.paginationApi.seek(e.paginationApi.getTotalPages()),o(e.cantPageToLast())}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.pinning",["ui.grid"]);a.constant("uiGridPinningConstants",{container:{LEFT:"left",RIGHT:"right",NONE:""}}),a.service("uiGridPinningService",["gridUtil","GridRenderContainer","i18nService","uiGridPinningConstants",function(a,b,c,d){var e={initializeGrid:function(a){e.defaultGridOptions(a.options),a.registerColumnBuilder(e.pinningColumnBuilder);var b={events:{pinning:{columnPinned:function(a,b){}}},methods:{pinning:{pinColumn:function(b,c){e.pinColumn(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.enablePinning=a.enablePinning!==!1},pinningColumnBuilder:function(b,f,g){if(b.enablePinning=void 0===b.enablePinning?g.enablePinning:b.enablePinning,b.pinnedLeft?(f.renderContainer="left",f.grid.createLeftContainer()):b.pinnedRight&&(f.renderContainer="right",f.grid.createRightContainer()),b.enablePinning){var h={name:"ui.grid.pinning.pinLeft",title:c.get().pinning.pinLeft,icon:"ui-grid-icon-left-open",shown:function(){return"undefined"==typeof this.context.col.renderContainer||!this.context.col.renderContainer||"left"!==this.context.col.renderContainer},action:function(){e.pinColumn(this.context.col.grid,this.context.col,d.container.LEFT)}},i={name:"ui.grid.pinning.pinRight",title:c.get().pinning.pinRight,icon:"ui-grid-icon-right-open",shown:function(){return"undefined"==typeof this.context.col.renderContainer||!this.context.col.renderContainer||"right"!==this.context.col.renderContainer},action:function(){e.pinColumn(this.context.col.grid,this.context.col,d.container.RIGHT)}},j={name:"ui.grid.pinning.unpin",title:c.get().pinning.unpin,icon:"ui-grid-icon-cancel",shown:function(){return"undefined"!=typeof this.context.col.renderContainer&&null!==this.context.col.renderContainer&&"body"!==this.context.col.renderContainer},action:function(){e.pinColumn(this.context.col.grid,this.context.col,d.container.UNPIN)}};a.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.pinLeft")||f.menuItems.push(h),a.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.pinRight")||f.menuItems.push(i),a.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.unpin")||f.menuItems.push(j)}},pinColumn:function(a,b,c){c===d.container.NONE?b.renderContainer=null:(b.renderContainer=c,c===d.container.LEFT?a.createLeftContainer():c===d.container.RIGHT&&a.createRightContainer()),a.refresh().then(function(){a.api.pinning.raise.columnPinned(b.colDef,c)})}};return e}]),a.directive("uiGridPinning",["gridUtil","uiGridPinningService",function(a,b){return{require:"uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.resizeColumns",["ui.grid"]);a.service("uiGridResizeColumnsService",["gridUtil","$q","$timeout",function(a,b,c){var d={defaultGridOptions:function(a){a.enableColumnResizing=a.enableColumnResizing!==!1,a.enableColumnResize===!1&&(a.enableColumnResizing=!1)},colResizerColumnBuilder:function(a,c,d){var e=[];return a.enableColumnResizing=void 0===a.enableColumnResizing?d.enableColumnResizing:a.enableColumnResizing,a.enableColumnResize===!1&&(a.enableColumnResizing=!1),b.all(e)},registerPublicApi:function(a){var b={events:{colResizable:{columnSizeChanged:function(a,b){}}}};a.api.registerEventsFromObject(b.events)},fireColumnSizeChanged:function(b,d,e){c(function(){b.api.colResizable?b.api.colResizable.raise.columnSizeChanged(d,e):a.logError("The resizeable api is not registered, this may indicate that you've included the module but not added the 'ui-grid-resize-columns' directive to your grid definition.  Cannot raise any events.")})},findTargetCol:function(a,b,c){var d=a.getRenderContainer();if("left"===b){var e=d.visibleColumnCache.indexOf(a);return d.visibleColumnCache[e-1*c]}return a}};return d}]),a.directive("uiGridResizeColumns",["gridUtil","uiGridResizeColumnsService",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.defaultGridOptions(e.grid.options),e.grid.registerColumnBuilder(b.colResizerColumnBuilder),b.registerPublicApi(e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridHeaderCell",["gridUtil","$templateCache","$compile","$q","uiGridResizeColumnsService","uiGridConstants","$timeout",function(a,b,c,d,e,f,g){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(a,d,h,i){var j=i.grid;if(j.options.enableColumnResizing){var k=b.get("ui-grid/columnResizer"),l=1;j.isRTL()&&(a.position="left",l=-1);var m=function(){for(var b=d[0].getElementsByClassName("ui-grid-column-resizer"),f=0;f<b.length;f++)angular.element(b[f]).remove();var g=e.findTargetCol(a.col,"left",l),h=a.col.getRenderContainer();if(g&&0!==h.visibleColumnCache.indexOf(a.col)&&g.colDef.enableColumnResizing!==!1){var i=angular.element(k).clone();i.attr("position","left"),d.prepend(i),c(i)(a)}if(a.col.colDef.enableColumnResizing!==!1){var j=angular.element(k).clone();j.attr("position","right"),d.append(j),c(j)(a)}};m();var n=function(){g(m)},o=j.registerDataChangeCallback(n,[f.dataChange.COLUMN]);a.$on("$destroy",o)}}}}}}]),a.directive("uiGridColumnResizer",["$document","gridUtil","uiGridConstants","uiGridResizeColumnsService",function(a,b,c,d){var e=angular.element('<div class="ui-grid-resize-overlay"></div>'),f={priority:0,scope:{col:"=",position:"@",renderIndex:"="},require:"?^uiGrid",link:function(f,g,h,i){function j(a){i.grid.refreshCanvas(!0).then(function(){i.grid.queueGridRefresh()})}function k(a,b){var c=b;return a.minWidth&&c<a.minWidth?c=a.minWidth:a.maxWidth&&c>a.maxWidth&&(c=a.maxWidth),c}function l(a,b){a.originalEvent&&(a=a.originalEvent),a.preventDefault(),o=(a.targetTouches?a.targetTouches[0]:a).clientX-p,0>o?o=0:o>i.grid.gridWidth&&(o=i.grid.gridWidth);var g=d.findTargetCol(f.col,f.position,q);if(g.colDef.enableColumnResizing!==!1){i.grid.element.hasClass("column-resizing")||i.grid.element.addClass("column-resizing");var h=o-n,j=parseInt(g.drawnWidth+h*q,10);o+=(k(g,j)-j)*q,e.css({left:o+"px"}),i.fireEvent(c.events.ITEM_DRAGGING)}}function m(a,b){a.originalEvent&&(a=a.originalEvent),a.preventDefault(),i.grid.element.removeClass("column-resizing"),e.remove(),o=(a.changedTouches?a.changedTouches[0]:a).clientX-p;var c=o-n;if(0===c)return t(),void s();var g=d.findTargetCol(f.col,f.position,q);if(g.colDef.enableColumnResizing!==!1){var h=parseInt(g.drawnWidth+c*q,10);g.width=k(g,h),g.hasCustomWidth=!0,j(c),d.fireColumnSizeChanged(i.grid,g.colDef,c),t(),s()}}var n=0,o=0,p=0,q=1;i.grid.isRTL()&&(f.position="left",q=-1),"left"===f.position?g.addClass("left"):"right"===f.position&&g.addClass("right");var r=function(b,c){b.originalEvent&&(b=b.originalEvent),b.stopPropagation(),p=i.grid.element[0].getBoundingClientRect().left,n=(b.targetTouches?b.targetTouches[0]:b).clientX-p,i.grid.element.append(e),e.css({left:n}),"touchstart"===b.type?(a.on("touchend",m),a.on("touchmove",l),g.off("mousedown",r)):(a.on("mouseup",m),a.on("mousemove",l),g.off("touchstart",r))},s=function(){g.on("mousedown",r),g.on("touchstart",r)},t=function(){a.off("mouseup",m),a.off("touchend",m),a.off("mousemove",l),a.off("touchmove",l),g.off("mousedown",r),g.off("touchstart",r)};s();var u=function(a,e){a.stopPropagation();var h=d.findTargetCol(f.col,f.position,q);if(h.colDef.enableColumnResizing!==!1){var l=0,m=0,n=b.closestElm(g,".ui-grid-render-container"),o=n.querySelectorAll("."+c.COL_CLASS_PREFIX+h.uid+" .ui-grid-cell-contents");Array.prototype.forEach.call(o,function(a){var c;angular.element(a).parent().hasClass("ui-grid-header-cell")&&(c=angular.element(a).parent()[0].querySelectorAll(".ui-grid-column-menu-button")),b.fakeElement(a,{},function(a){var d=angular.element(a);d.attr("style","float: left");var e=b.elementWidth(d);if(c){var f=b.elementWidth(c);e+=f}e>l&&(l=e,m=l-e)})}),h.width=k(h,l),h.hasCustomWidth=!0,j(m),d.fireColumnSizeChanged(i.grid,h.colDef,m)}};g.on("dblclick",u),g.on("$destroy",function(){g.off("dblclick",u),t()})}};return f}])}(),function(){"use strict";var a=angular.module("ui.grid.rowEdit",["ui.grid","ui.grid.edit","ui.grid.cellNav"]);a.constant("uiGridRowEditConstants",{}),a.service("uiGridRowEditService",["$interval","$q","uiGridConstants","uiGridRowEditConstants","gridUtil",function(a,b,c,d,e){var f={initializeGrid:function(a,b){b.rowEdit={};var c={events:{rowEdit:{saveRow:function(a){}}},methods:{rowEdit:{setSavePromise:function(a,c){f.setSavePromise(b,a,c)},getDirtyRows:function(){return b.rowEdit.dirtyRows?b.rowEdit.dirtyRows:[]},getErrorRows:function(){return b.rowEdit.errorRows?b.rowEdit.errorRows:[]},flushDirtyRows:function(){return f.flushDirtyRows(b)},setRowsDirty:function(a){f.setRowsDirty(b,a)},setRowsClean:function(a){f.setRowsClean(b,a)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.api.core.on.renderingComplete(a,function(c){b.api.edit.on.afterCellEdit(a,f.endEditCell),b.api.edit.on.beginCellEdit(a,f.beginEditCell),b.api.edit.on.cancelCellEdit(a,f.cancelEditCell),b.api.cellNav&&b.api.cellNav.on.navigate(a,f.navigate)})},defaultGridOptions:function(a){},saveRow:function(a,b){var c=this;return function(){if(b.isSaving=!0,b.rowEditSavePromise)return b.rowEditSavePromise;var d=a.api.rowEdit.raise.saveRow(b.entity);return b.rowEditSavePromise?b.rowEditSavePromise.then(c.processSuccessPromise(a,b),c.processErrorPromise(a,b)):e.logError("A promise was not returned when saveRow event was raised, either nobody is listening to event, or event handler did not return a promise"),d}},setSavePromise:function(a,b,c){var d=a.getRow(b);d.rowEditSavePromise=c},processSuccessPromise:function(a,b){var c=this;return function(){delete b.isSaving,delete b.isDirty,delete b.isError,delete b.rowEditSaveTimer,delete b.rowEditSavePromise,c.removeRow(a.rowEdit.errorRows,b),c.removeRow(a.rowEdit.dirtyRows,b)}},processErrorPromise:function(a,b){return function(){delete b.isSaving,delete b.rowEditSaveTimer,delete b.rowEditSavePromise,b.isError=!0,a.rowEdit.errorRows||(a.rowEdit.errorRows=[]),f.isRowPresent(a.rowEdit.errorRows,b)||a.rowEdit.errorRows.push(b)}},removeRow:function(a,b){"undefined"!=typeof a&&null!==a&&a.forEach(function(c,d){c.uid===b.uid&&a.splice(d,1)})},isRowPresent:function(a,b){var c=!1;return a.forEach(function(a,d){a.uid===b.uid&&(c=!0)}),c},flushDirtyRows:function(a){var c=[];return a.api.rowEdit.getDirtyRows().forEach(function(b){f.saveRow(a,b)(),c.push(b.rowEditSavePromise)}),b.all(c)},endEditCell:function(a,b,c,d){var g=this.grid,h=g.getRow(a);return h?void((c!==d||h.isDirty)&&(g.rowEdit.dirtyRows||(g.rowEdit.dirtyRows=[]),h.isDirty||(h.isDirty=!0,g.rowEdit.dirtyRows.push(h)),delete h.isError,f.considerSetTimer(g,h))):void e.logError("Unable to find rowEntity in grid data, dirty flag cannot be set")},beginEditCell:function(a,b){var c=this.grid,d=c.getRow(a);return d?void f.cancelTimer(c,d):void e.logError("Unable to find rowEntity in grid data, timer cannot be cancelled")},cancelEditCell:function(a,b){var c=this.grid,d=c.getRow(a);return d?void f.considerSetTimer(c,d):void e.logError("Unable to find rowEntity in grid data, timer cannot be set")},navigate:function(a,b){var c=this.grid;a.row.rowEditSaveTimer&&f.cancelTimer(c,a.row),b&&b.row&&b.row!==a.row&&f.considerSetTimer(c,b.row)},considerSetTimer:function(b,c){if(f.cancelTimer(b,c),c.isDirty&&!c.isSaving&&-1!==b.options.rowEditWaitInterval){var d=b.options.rowEditWaitInterval?b.options.rowEditWaitInterval:2e3;c.rowEditSaveTimer=a(f.saveRow(b,c),d,1)}},cancelTimer:function(b,c){c.rowEditSaveTimer&&!c.isSaving&&(a.cancel(c.rowEditSaveTimer),delete c.rowEditSaveTimer)},setRowsDirty:function(a,b){var c;b.forEach(function(b,d){c=a.getRow(b),c?(a.rowEdit.dirtyRows||(a.rowEdit.dirtyRows=[]),c.isDirty||(c.isDirty=!0,a.rowEdit.dirtyRows.push(c)),delete c.isError,f.considerSetTimer(a,c)):e.logError("requested row not found in rowEdit.setRowsDirty, row was: "+b)})},setRowsClean:function(a,b){var c;b.forEach(function(b,d){c=a.getRow(b),c?(delete c.isDirty,f.removeRow(a.rowEdit.dirtyRows,c),f.cancelTimer(a,c),delete c.isError,f.removeRow(a.rowEdit.errorRows,c)):e.logError("requested row not found in rowEdit.setRowsClean, row was: "+b)})}};return f}]),a.directive("uiGridRowEdit",["gridUtil","uiGridRowEditService","uiGridEditConstants",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(a,e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","gridUtil","$parse",function(a,b,c,d){return{priority:-200,scope:!1,compile:function(a,b){var c=angular.element(a.children().children()[0]),d=c.attr("ng-class"),e="";return e=d?d.slice(0,-1)+", 'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}":"{'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}",c.attr("ng-class",e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.saveState",["ui.grid","ui.grid.selection","ui.grid.cellNav","ui.grid.grouping","ui.grid.pinning","ui.grid.treeView"]);a.constant("uiGridSaveStateConstants",{featureName:"saveState"}),a.service("uiGridSaveStateService",["$q","uiGridSaveStateConstants","gridUtil","$compile","$interval","uiGridConstants",function(a,b,c,d,e,f){var g={initializeGrid:function(a){a.saveState={},this.defaultGridOptions(a.options);var b={events:{saveState:{}},methods:{saveState:{save:function(){return g.save(a)},restore:function(b,c){g.restore(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.saveWidths=a.saveWidths!==!1,a.saveOrder=a.saveOrder!==!1,a.saveScroll=a.saveScroll===!0,a.saveFocus=a.saveScroll!==!0&&a.saveFocus!==!1,a.saveVisible=a.saveVisible!==!1,a.saveSort=a.saveSort!==!1,a.saveFilter=a.saveFilter!==!1,a.saveSelection=a.saveSelection!==!1,a.saveGrouping=a.saveGrouping!==!1,a.saveGroupingExpandedStates=a.saveGroupingExpandedStates===!0,a.savePinning=a.savePinning!==!1,a.saveTreeView=a.saveTreeView!==!1},save:function(a){var b={};return b.columns=g.saveColumns(a),b.scrollFocus=g.saveScrollFocus(a),b.selection=g.saveSelection(a),b.grouping=g.saveGrouping(a),b.treeView=g.saveTreeView(a),b},restore:function(a,b,c){c.columns&&g.restoreColumns(a,c.columns),c.scrollFocus&&g.restoreScrollFocus(a,b,c.scrollFocus),c.selection&&g.restoreSelection(a,c.selection),c.grouping&&g.restoreGrouping(a,c.grouping),c.treeView&&g.restoreTreeView(a,c.treeView),a.refresh()},saveColumns:function(a){var b=[];return a.getOnlyDataColumns().forEach(function(c){var d={};d.name=c.name,a.options.saveVisible&&(d.visible=c.visible),a.options.saveWidths&&(d.width=c.width),a.options.saveSort&&(d.sort=angular.copy(c.sort)),a.options.saveFilter&&(d.filters=[],c.filters.forEach(function(a){var b={};angular.forEach(a,function(a,c){"condition"!==c&&"$$hashKey"!==c&&"placeholder"!==c&&(b[c]=a)}),d.filters.push(b)})),a.api.pinning&&a.options.savePinning&&(d.pinned=c.renderContainer?c.renderContainer:""),b.push(d)}),b},saveScrollFocus:function(a){if(!a.api.cellNav)return{};var b={};if(a.options.saveFocus){b.focus=!0;var c=a.api.cellNav.getFocusedCell();null!==c&&(null!==c.col&&(b.colName=c.col.colDef.name),null!==c.row&&(b.rowVal=g.getRowVal(a,c.row)))}return(a.options.saveScroll||a.options.saveFocus&&!b.colName&&!b.rowVal)&&(b.focus=!1,a.renderContainers.body.prevRowScrollIndex&&(b.rowVal=g.getRowVal(a,a.renderContainers.body.visibleRowCache[a.renderContainers.body.prevRowScrollIndex])),a.renderContainers.body.prevColScrollIndex&&(b.colName=a.renderContainers.body.visibleColumnCache[a.renderContainers.body.prevColScrollIndex].name)),b},saveSelection:function(a){if(!a.api.selection||!a.options.saveSelection)return[];var b=a.api.selection.getSelectedGridRows().map(function(b){return g.getRowVal(a,b)});return b},saveGrouping:function(a){return a.api.grouping&&a.options.saveGrouping?a.api.grouping.getGrouping(a.options.saveGroupingExpandedStates):{}},saveTreeView:function(a){return a.api.treeView&&a.options.saveTreeView?a.api.treeView.getTreeView():{}},getRowVal:function(a,b){if(!b)return null;var c={};return a.options.saveRowIdentity?(c.identity=!0,c.row=a.options.saveRowIdentity(b.entity)):(c.identity=!1,c.row=a.renderContainers.body.visibleRowCache.indexOf(b)),c},restoreColumns:function(a,b){var c=!1;b.forEach(function(b,d){var e=a.getColumn(b.name);if(e&&!a.isRowHeaderColumn(e)){!a.options.saveVisible||e.visible===b.visible&&e.colDef.visible===b.visible||(e.visible=b.visible,e.colDef.visible=b.visible,a.api.core.raise.columnVisibilityChanged(e)),a.options.saveWidths&&(e.width=b.width),!a.options.saveSort||angular.equals(e.sort,b.sort)||void 0===e.sort&&angular.isEmpty(b.sort)||(e.sort=angular.copy(b.sort),c=!0),a.options.saveFilter&&!angular.equals(e.filters,b.filters)&&(b.filters.forEach(function(a,b){angular.extend(e.filters[b],a),("undefined"==typeof a.term||null===a.term)&&delete e.filters[b].term}),a.api.core.raise.filterChanged()),a.api.pinning&&a.options.savePinning&&e.renderContainer!==b.pinned&&a.api.pinning.pinColumn(e,b.pinned);var f=a.getOnlyDataColumns().indexOf(e);if(-1!==f&&a.options.saveOrder&&f!==d){var g=a.columns.splice(f+a.rowHeaderColumns.length,1)[0];a.columns.splice(d+a.rowHeaderColumns.length,0,g)}}}),c&&a.api.core.raise.sortChanged(a,a.getColumnSorting())},restoreScrollFocus:function(a,b,c){if(a.api.cellNav){var d,e;if(c.colName){var f=a.options.columnDefs.filter(function(a){return a.name===c.colName});f.length>0&&(d=f[0])}c.rowVal&&c.rowVal.row&&(e=c.rowVal.identity?g.findRowByIdentity(a,c.rowVal):a.renderContainers.body.visibleRowCache[c.rowVal.row]);var h=e&&e.entity?e.entity:null;(d||h)&&(c.focus?a.api.cellNav.scrollToFocus(h,d):a.scrollTo(h,d))}},restoreSelection:function(a,b){a.api.selection&&(a.api.selection.clearSelectedRows(),b.forEach(function(b){if(b.identity){var c=g.findRowByIdentity(a,b);c&&a.api.selection.selectRow(c.entity)}else a.api.selection.selectRowByVisibleIndex(b.row)}))},restoreGrouping:function(a,b){a.api.grouping&&"undefined"!=typeof b&&null!==b&&!angular.equals(b,{})&&a.api.grouping.setGrouping(b)},restoreTreeView:function(a,b){a.api.treeView&&"undefined"!=typeof b&&null!==b&&!angular.equals(b,{})&&a.api.treeView.setTreeView(b)},findRowByIdentity:function(a,b){if(!a.options.saveRowIdentity)return null;var c=a.rows.filter(function(c){return a.options.saveRowIdentity(c.entity)===b.row?!0:!1});return c.length>0?c[0]:null}};return g}]),a.directive("uiGridSaveState",["uiGridSaveStateConstants","uiGridSaveStateService","gridUtil","$compile",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(a,c,d,e){b.initializeGrid(e.grid)}}}])}(),function(){"use strict";var a=angular.module("ui.grid.selection",["ui.grid"]);a.constant("uiGridSelectionConstants",{featureName:"selection",selectionRowHeaderColName:"selectionRowHeaderCol"}),angular.module("ui.grid").config(["$provide",function(a){a.decorator("GridRow",["$delegate",function(a){return a.prototype.setSelected=function(a){this.isSelected=a,a?this.grid.selection.selectedCount++:this.grid.selection.selectedCount--},a}])}]),a.service("uiGridSelectionService",["$q","$templateCache","uiGridSelectionConstants","gridUtil",function(a,b,c,d){var e={initializeGrid:function(a){a.selection={},a.selection.lastSelectedRow=null,a.selection.selectAll=!1,a.selection.selectedCount=0,e.defaultGridOptions(a.options);var b={events:{selection:{rowSelectionChanged:function(a,b,c){},rowSelectionChangedBatch:function(a,b,c){}}},methods:{selection:{toggleRowSelection:function(b,c){var d=a.getRow(b);null!==d&&e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},selectRow:function(b,c){var d=a.getRow(b);null===d||d.isSelected||e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},selectRowByVisibleIndex:function(b,c){var d=a.renderContainers.body.visibleRowCache[b];null===d||"undefined"==typeof d||d.isSelected||e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},unSelectRow:function(b,c){var d=a.getRow(b);null!==d&&d.isSelected&&e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},selectAllRows:function(b){if(a.options.multiSelect!==!1){var c=[];a.rows.forEach(function(d){d.isSelected||d.enableSelection===!1||(d.setSelected(!0),e.decideRaiseSelectionEvent(a,d,c,b))}),e.decideRaiseSelectionBatchEvent(a,c,b),a.selection.selectAll=!0}},selectAllVisibleRows:function(b){if(a.options.multiSelect!==!1){var c=[];a.rows.forEach(function(d){d.visible?d.isSelected||d.enableSelection===!1||(d.setSelected(!0),e.decideRaiseSelectionEvent(a,d,c,b)):d.isSelected&&(d.setSelected(!1),e.decideRaiseSelectionEvent(a,d,c,b))}),e.decideRaiseSelectionBatchEvent(a,c,b),a.selection.selectAll=!0}},clearSelectedRows:function(b){e.clearSelectedRows(a,b)},getSelectedRows:function(){return e.getSelectedRows(a).map(function(a){return a.entity})},getSelectedGridRows:function(){return e.getSelectedRows(a)},getSelectedCount:function(){return a.selection.selectedCount},setMultiSelect:function(b){a.options.multiSelect=b},setModifierKeysToMultiSelect:function(b){a.options.modifierKeysToMultiSelect=b},getSelectAllState:function(){return a.selection.selectAll}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.enableRowSelection=a.enableRowSelection!==!1,a.multiSelect=a.multiSelect!==!1,a.noUnselect=a.noUnselect===!0,a.modifierKeysToMultiSelect=a.modifierKeysToMultiSelect===!0,a.enableRowHeaderSelection=a.enableRowHeaderSelection!==!1,"undefined"==typeof a.enableFullRowSelection&&(a.enableFullRowSelection=!a.enableRowHeaderSelection),a.enableSelectAll=a.enableSelectAll!==!1,a.enableSelectionBatchEvent=a.enableSelectionBatchEvent!==!1,a.selectionRowHeaderWidth=angular.isDefined(a.selectionRowHeaderWidth)?a.selectionRowHeaderWidth:30,a.enableFooterTotalSelected=a.enableFooterTotalSelected!==!1,a.isRowSelectable=angular.isDefined(a.isRowSelectable)?a.isRowSelectable:angular.noop},toggleRowSelection:function(a,b,c,d,f){var g=b.isSelected;if(b.enableSelection!==!1||g){var h;d||g?!d&&g&&(h=e.getSelectedRows(a),h.length>1&&(g=!1,e.clearSelectedRows(a,c))):e.clearSelectedRows(a,c),g&&f||(b.setSelected(!g),b.isSelected===!0&&(a.selection.lastSelectedRow=b),h=e.getSelectedRows(a),a.selection.selectAll=a.rows.length===h.length,a.api.selection.raise.rowSelectionChanged(b,c))}},shiftSelect:function(a,b,c,d){if(d){var f=e.getSelectedRows(a),g=f.length>0?a.renderContainers.body.visibleRowCache.indexOf(a.selection.lastSelectedRow):0,h=a.renderContainers.body.visibleRowCache.indexOf(b);if(g>h){var i=g;g=h,h=i}for(var j=[],k=g;h>=k;k++){var l=a.renderContainers.body.visibleRowCache[k];l&&(l.isSelected||l.enableSelection===!1||(l.setSelected(!0),a.selection.lastSelectedRow=l,e.decideRaiseSelectionEvent(a,l,j,c)))}e.decideRaiseSelectionBatchEvent(a,j,c)}},getSelectedRows:function(a){return a.rows.filter(function(a){return a.isSelected})},clearSelectedRows:function(a,b){var c=[];e.getSelectedRows(a).forEach(function(d){d.isSelected&&(d.setSelected(!1),e.decideRaiseSelectionEvent(a,d,c,b))}),e.decideRaiseSelectionBatchEvent(a,c,b),a.selection.selectAll=!1,a.selection.selectedCount=0},decideRaiseSelectionEvent:function(a,b,c,d){a.options.enableSelectionBatchEvent?c.push(b):a.api.selection.raise.rowSelectionChanged(b,d)},decideRaiseSelectionBatchEvent:function(a,b,c){b.length>0&&a.api.selection.raise.rowSelectionChangedBatch(b,c)}};return e}]),a.directive("uiGridSelection",["uiGridSelectionConstants","uiGridSelectionService","$templateCache","uiGridConstants",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(c,e,f,g){if(b.initializeGrid(g.grid),g.grid.options.enableRowHeaderSelection){var h={name:a.selectionRowHeaderColName,displayName:"",width:g.grid.options.selectionRowHeaderWidth,minWidth:10,cellTemplate:"ui-grid/selectionRowHeader",headerCellTemplate:"ui-grid/selectionHeaderCell",enableColumnResizing:!1,enableColumnMenu:!1,exporterSuppressExport:!0,allowCellFocus:!0};g.grid.addRowHeaderColumn(h)}var i=!1,j=function(a){return a.forEach(function(a){a.enableSelection=g.grid.options.isRowSelectable(a)}),a},k=function(){g.grid.options.isRowSelectable!==angular.noop&&i!==!0&&(g.grid.registerRowsProcessor(j,500),i=!0)};k();var l=g.grid.registerDataChangeCallback(k,[d.dataChange.OPTIONS]);c.$on("$destroy",l)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridSelectionRowHeaderButtons",["$templateCache","uiGridSelectionService","gridUtil",function(a,b,c){return{replace:!0,restrict:"E",template:a.get("ui-grid/selectionRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(a,d,e,f){function g(a,c){c.stopPropagation(),c.shiftKey?b.shiftSelect(i,a,c,i.options.multiSelect):c.ctrlKey||c.metaKey?b.toggleRowSelection(i,a,c,i.options.multiSelect,i.options.noUnselect):b.toggleRowSelection(i,a,c,i.options.multiSelect&&!i.options.modifierKeysToMultiSelect,i.options.noUnselect)}function h(a){(a.ctrlKey||a.shiftKey)&&(a.target.onselectstart=function(){return!1},window.setTimeout(function(){a.target.onselectstart=null},0))}var i=f.grid;a.selectButtonClick=g,"ie"===c.detectBrowser()&&d.on("mousedown",h)}}}]),a.directive("uiGridSelectionSelectAllButtons",["$templateCache","uiGridSelectionService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/selectionSelectAllButtons"),scope:!1,link:function(a,c,d,e){var f=a.col.grid;a.headerButtonClick=function(a,c){f.selection.selectAll?(b.clearSelectedRows(f,c),f.options.noUnselect&&f.api.selection.selectRowByVisibleIndex(0,c),f.selection.selectAll=!1):f.options.multiSelect&&(f.api.selection.selectAllVisibleRows(c),f.selection.selectAll=!0)}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","uiGridSelectionConstants","gridUtil","$parse","uiGridSelectionService",function(a,b,c,d,e,f){return{priority:-200,scope:!1,compile:function(a,b){var c=angular.element(a.children().children()[0]),d=c.attr("ng-class"),e="";return e=d?d.slice(0,-1)+",'ui-grid-row-selected': row.isSelected}":"{'ui-grid-row-selected': row.isSelected}",c.attr("ng-class",e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}]),a.directive("uiGridCell",["$compile","uiGridConstants","uiGridSelectionConstants","gridUtil","$parse","uiGridSelectionService","$timeout",function(a,b,c,d,e,f,g){return{priority:-200,restrict:"A",require:"?^uiGrid",scope:!1,link:function(a,c,d,e){function h(){a.grid.options.enableRowSelection&&a.grid.options.enableFullRowSelection&&(c.addClass("ui-grid-disable-selection"),c.on("touchstart",m),c.on("touchend",n),c.on("click",l),a.registered=!0)}function i(){a.registered&&(c.removeClass("ui-grid-disable-selection"),c.off("touchstart",m),c.off("touchend",n),c.off("click",l),a.registered=!1)}var j=0,k=300;e.grid.api.cellNav&&e.grid.api.cellNav.on.viewPortKeyDown(a,function(b,c){null!==c&&c.row===a.row&&c.col===a.col&&32===b.keyCode&&"selectionRowHeaderCol"===a.col.colDef.name&&(f.toggleRowSelection(a.grid,a.row,b,a.grid.options.multiSelect&&!a.grid.options.modifierKeysToMultiSelect,a.grid.options.noUnselect),a.$apply())});var l=function(b){c.off("touchend",n),b.shiftKey?f.shiftSelect(a.grid,a.row,b,a.grid.options.multiSelect):b.ctrlKey||b.metaKey?f.toggleRowSelection(a.grid,a.row,b,a.grid.options.multiSelect,a.grid.options.noUnselect):f.toggleRowSelection(a.grid,a.row,b,a.grid.options.multiSelect&&!a.grid.options.modifierKeysToMultiSelect,a.grid.options.noUnselect),a.$apply(),g(function(){c.on("touchend",n)},k)},m=function(a){j=(new Date).getTime(),c.off("click",l)},n=function(a){var b=(new Date).getTime(),d=b-j;k>d&&l(a),g(function(){c.on("click",l)},k)};h();var o=a.grid.registerDataChangeCallback(function(){a.grid.options.enableRowSelection&&a.grid.options.enableFullRowSelection&&!a.registered?h():a.grid.options.enableRowSelection&&a.grid.options.enableFullRowSelection||!a.registered||i()},[b.dataChange.OPTIONS]);c.on("$destroy",o)}}}]),a.directive("uiGridGridFooter",["$compile","uiGridConstants","gridUtil",function(a,b,c){return{restrict:"EA",replace:!0,priority:-1e3,require:"^uiGrid",scope:!0,compile:function(b,d){return{pre:function(b,d,e,f){f.grid.options.showGridFooter&&c.getTemplate("ui-grid/gridFooterSelectedItems").then(function(c){var e=angular.element(c),f=a(e)(b);angular.element(d[0].getElementsByClassName("ui-grid-grid-footer")[0]).append(f)})},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.treeBase",["ui.grid"]);a.constant("uiGridTreeBaseConstants",{featureName:"treeBase",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),a.service("uiGridTreeBaseService",["$q","uiGridTreeBaseConstants","gridUtil","GridRow","gridClassFactory","i18nService","uiGridConstants","rowSorter",function(a,b,c,d,e,f,g,h){var i={initializeGrid:function(a,b){a.treeBase={},a.treeBase.numberLevels=0,a.treeBase.expandAll=!1,a.treeBase.tree=[],i.defaultGridOptions(a.options),a.registerRowsProcessor(i.treeRows,410),a.registerColumnBuilder(i.treeBaseColumnBuilder),i.createRowHeader(a);var c={events:{treeBase:{rowExpanded:{},rowCollapsed:{}}},methods:{treeBase:{expandAllRows:function(){i.expandAllRows(a)},collapseAllRows:function(){i.collapseAllRows(a)},toggleRowTreeState:function(b){i.toggleRowTreeState(a,b)},expandRow:function(b){i.expandRow(a,b)},expandRowChildren:function(b){i.expandRowChildren(a,b)},collapseRow:function(b){i.collapseRow(a,b)},collapseRowChildren:function(b){i.collapseRowChildren(a,b)},getTreeExpandedState:function(){return{expandedState:i.getTreeState(a)}},setTreeState:function(b){i.setTreeState(a,b)},getRowChildren:function(a){return a.treeNode.children.map(function(a){return a.row})}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.treeRowHeaderBaseWidth=a.treeRowHeaderBaseWidth||30,a.treeIndent=a.treeIndent||10,a.showTreeRowHeader=a.showTreeRowHeader!==!1,a.showTreeExpandNoChildren=a.showTreeExpandNoChildren!==!1,a.treeRowHeaderAlwaysVisible=a.treeRowHeaderAlwaysVisible!==!1,a.treeCustomAggregations=a.treeCustomAggregations||{}},treeBaseColumnBuilder:function(a,b,c){"undefined"!=typeof a.customTreeAggregationFn&&(b.treeAggregationFn=a.customTreeAggregationFn),"undefined"!=typeof a.treeAggregationType&&(b.treeAggregation={type:a.treeAggregationType},"undefined"!=typeof c.treeCustomAggregations[a.treeAggregationType]?(b.treeAggregationFn=c.treeCustomAggregations[a.treeAggregationType].aggregationFn,
-b.treeAggregationFinalizerFn=c.treeCustomAggregations[a.treeAggregationType].finalizerFn,b.treeAggregation.label=c.treeCustomAggregations[a.treeAggregationType].label):"undefined"!=typeof i.nativeAggregations()[a.treeAggregationType]&&(b.treeAggregationFn=i.nativeAggregations()[a.treeAggregationType].aggregationFn,b.treeAggregation.label=i.nativeAggregations()[a.treeAggregationType].label)),"undefined"!=typeof a.treeAggregationLabel&&("undefined"==typeof b.treeAggregation&&(b.treeAggregation={}),b.treeAggregation.label=a.treeAggregationLabel),b.treeAggregationUpdateEntity=a.treeAggregationUpdateEntity!==!1,"undefined"==typeof b.customTreeAggregationFinalizerFn&&(b.customTreeAggregationFinalizerFn=a.customTreeAggregationFinalizerFn)},createRowHeader:function(a){var c={name:b.rowHeaderColName,displayName:"",width:a.options.treeRowHeaderBaseWidth,minWidth:10,cellTemplate:"ui-grid/treeBaseRowHeader",headerCellTemplate:"ui-grid/treeBaseHeaderCell",enableColumnResizing:!1,enableColumnMenu:!1,exporterSuppressExport:!0,allowCellFocus:!0};c.visible=a.options.treeRowHeaderAlwaysVisible,a.addRowHeaderColumn(c)},expandAllRows:function(a){a.treeBase.tree.forEach(function(c){i.setAllNodes(a,c,b.EXPANDED)}),a.treeBase.expandAll=!0,a.queueGridRefresh()},collapseAllRows:function(a){a.treeBase.tree.forEach(function(c){i.setAllNodes(a,c,b.COLLAPSED)}),a.treeBase.expandAll=!1,a.queueGridRefresh()},setAllNodes:function(a,c,d){"undefined"!=typeof c.state&&c.state!==d&&(c.state=d,d===b.EXPANDED?a.api.treeBase.raise.rowExpanded(c.row):a.api.treeBase.raise.rowCollapsed(c.row)),c.children&&c.children.forEach(function(b){i.setAllNodes(a,b,d)})},toggleRowTreeState:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||(c.treeNode.state===b.EXPANDED?i.collapseRow(a,c):i.expandRow(a,c),a.queueGridRefresh())},expandRow:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||c.treeNode.state!==b.EXPANDED&&(c.treeNode.state=b.EXPANDED,a.api.treeBase.raise.rowExpanded(c),a.treeBase.expandAll=i.allExpanded(a.treeBase.tree),a.queueGridRefresh())},expandRowChildren:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||(i.setAllNodes(a,c.treeNode,b.EXPANDED),a.treeBase.expandAll=i.allExpanded(a.treeBase.tree),a.queueGridRefresh())},collapseRow:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||c.treeNode.state!==b.COLLAPSED&&(c.treeNode.state=b.COLLAPSED,a.treeBase.expandAll=!1,a.api.treeBase.raise.rowCollapsed(c),a.queueGridRefresh())},collapseRowChildren:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||(i.setAllNodes(a,c.treeNode,b.COLLAPSED),a.treeBase.expandAll=!1,a.queueGridRefresh())},allExpanded:function(a){var b=!0;return a.forEach(function(a){i.allExpandedInternal(a)||(b=!1)}),b},allExpandedInternal:function(a){if(a.children&&a.children.length>0){if(a.state===b.COLLAPSED)return!1;var c=!0;return a.children.forEach(function(a){i.allExpandedInternal(a)||(c=!1)}),c}return!0},treeRows:function(a){if(0===a.length)return a;var c=this;b.EXPANDED;return c.treeBase.tree=i.createTree(c,a),i.updateRowHeaderWidth(c),i.sortTree(c),i.fixFilter(c),i.renderTree(c.treeBase.tree)},updateRowHeaderWidth:function(a){var c=a.getColumn(b.rowHeaderColName),d=a.options.treeRowHeaderBaseWidth+a.options.treeIndent*Math.max(a.treeBase.numberLevels-1,0);c&&d!==c.width&&(c.width=d,a.queueRefresh());var e=!0;a.options.showTreeRowHeader===!1&&(e=!1),a.options.treeRowHeaderAlwaysVisible===!1&&a.treeBase.numberLevels<=0&&(e=!1),c.visible!==e&&(c.visible=e,c.colDef.visible=e,a.queueGridRefresh())},renderTree:function(a){var c=[];return a.forEach(function(a){a.row.visible&&c.push(a.row),a.state===b.EXPANDED&&a.children&&a.children.length>0&&(c=c.concat(i.renderTree(a.children)))}),c},createTree:function(a,c){var d,e=-1,f=[];a.treeBase.tree=[],a.treeBase.numberLevels=0;var g=i.getAggregations(a),h=function(c){if("undefined"!=typeof c.entity.$$treeLevel&&c.treeLevel!==c.entity.$$treeLevel&&(c.treeLevel=c.entity.$$treeLevel),c.treeLevel<=e){for(;c.treeLevel<=e;){var h=f.pop();i.finaliseAggregations(h),e--}d=f.length>0?i.setCurrentState(f):b.EXPANDED}("undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0)&&c.visible&&i.aggregate(a,c,f),i.addOrUseNode(a,c,f,g),"undefined"!=typeof c.treeLevel&&null!==c.treeLevel&&c.treeLevel>=0&&(f.push(c),e++,d=i.setCurrentState(f)),a.treeBase.numberLevels<c.treeLevel+1&&(a.treeBase.numberLevels=c.treeLevel+1)};for(c.forEach(h);f.length>0;){var j=f.pop();i.finaliseAggregations(j)}return a.treeBase.tree},addOrUseNode:function(a,c,d,e){var f=[];e.forEach(function(a){f.push(i.buildAggregationObject(a.col))});var g={state:b.COLLAPSED,row:c,parentRow:null,aggregations:f,children:[]};c.treeNode&&(g.state=c.treeNode.state),d.length>0&&(g.parentRow=d[d.length-1]),c.treeNode=g,0===d.length?a.treeBase.tree.push(g):d[d.length-1].treeNode.children.push(g)},setCurrentState:function(a){var c=b.EXPANDED;return a.forEach(function(a){a.treeNode.state===b.COLLAPSED&&(c=b.COLLAPSED)}),c},sortTree:function(a){a.columns.forEach(function(a){a.sort&&a.sort.ignoreSort&&delete a.sort.ignoreSort}),a.treeBase.tree=i.sortInternal(a,a.treeBase.tree)},sortInternal:function(a,c){var d=c.map(function(a){return a.row});d=h.sort(a,d,a.columns);var e=d.map(function(a){return a.treeNode});return e.forEach(function(c){c.state===b.EXPANDED&&c.children&&c.children.length>0&&(c.children=i.sortInternal(a,c.children))}),e},fixFilter:function(a){var b;a.treeBase.tree.forEach(function(a){a.children&&a.children.length>0&&(b=a.row.visible,i.fixFilterInternal(a.children,b))})},fixFilterInternal:function(a,b){return a.forEach(function(a){a.row.visible&&!b&&(i.setParentsVisible(a),b=!0),a.children&&a.children.length>0&&i.fixFilterInternal(a.children,b&&a.row.visible)&&(b=!0)}),b},setParentsVisible:function(a){for(;a.parentRow;)a.parentRow.visible=!0,a=a.parentRow.treeNode},buildAggregationObject:function(a){var b={col:a};return a.treeAggregation&&a.treeAggregation.type&&(b.type=a.treeAggregation.type),a.treeAggregation&&a.treeAggregation.label&&(b.label=a.treeAggregation.label),b},getAggregations:function(a){var b=[];return a.columns.forEach(function(c){"undefined"!=typeof c.treeAggregationFn&&(b.push(i.buildAggregationObject(c)),a.options.showColumnFooter&&"undefined"==typeof c.colDef.aggregationType&&c.treeAggregation&&(c.treeFooterAggregation=i.buildAggregationObject(c),c.aggregationType=i.treeFooterAggregationType))}),b},aggregate:function(a,b,c){0===c.length&&b.treeNode&&b.treeNode.aggregations&&b.treeNode.aggregations.forEach(function(c){if("undefined"!=typeof c.col.treeFooterAggregation){var d=a.getCellValue(b,c.col),e=Number(d);c.col.treeAggregationFn(c.col.treeFooterAggregation,d,e,b)}}),c.forEach(function(c,d){c.treeNode.aggregations&&c.treeNode.aggregations.forEach(function(c){var e=a.getCellValue(b,c.col),f=Number(e);c.col.treeAggregationFn(c,e,f,b),0===d&&"undefined"!=typeof c.col.treeFooterAggregation&&c.col.treeAggregationFn(c.col.treeFooterAggregation,e,f,b)})})},nativeAggregations:function(){var a={count:{label:f.get().aggregation.count,menuTitle:f.get().grouping.aggregate_count,aggregationFn:function(a,b,c){"undefined"==typeof a.value?a.value=1:a.value++}},sum:{label:f.get().aggregation.sum,menuTitle:f.get().grouping.aggregate_sum,aggregationFn:function(a,b,c){isNaN(c)||("undefined"==typeof a.value?a.value=c:a.value+=c)}},min:{label:f.get().aggregation.min,menuTitle:f.get().grouping.aggregate_min,aggregationFn:function(a,b,c){"undefined"==typeof a.value?a.value=b:"undefined"!=typeof b&&null!==b&&(b<a.value||null===a.value)&&(a.value=b)}},max:{label:f.get().aggregation.max,menuTitle:f.get().grouping.aggregate_max,aggregationFn:function(a,b,c){"undefined"==typeof a.value?a.value=b:"undefined"!=typeof b&&null!==b&&(b>a.value||null===a.value)&&(a.value=b)}},avg:{label:f.get().aggregation.avg,menuTitle:f.get().grouping.aggregate_avg,aggregationFn:function(a,b,c){"undefined"==typeof a.count?a.count=1:a.count++,isNaN(c)||("undefined"==typeof a.value||"undefined"==typeof a.sum?(a.value=c,a.sum=c):(a.sum+=c,a.value=a.sum/a.count))}}};return a},finaliseAggregation:function(a,b){b.col.treeAggregationUpdateEntity&&"undefined"!=typeof a&&"undefined"!=typeof a.entity["$$"+b.col.uid]&&angular.extend(b,a.entity["$$"+b.col.uid]),"function"==typeof b.col.treeAggregationFinalizerFn&&b.col.treeAggregationFinalizerFn(b),"function"==typeof b.col.customTreeAggregationFinalizerFn&&b.col.customTreeAggregationFinalizerFn(b),"undefined"==typeof b.rendered&&(b.rendered=b.label?b.label+b.value:b.value)},finaliseAggregations:function(a){"undefined"!=typeof a.treeNode.aggregations&&a.treeNode.aggregations.forEach(function(b){if(i.finaliseAggregation(a,b),b.col.treeAggregationUpdateEntity){var c={};angular.forEach(b,function(a,d){b.hasOwnProperty(d)&&"col"!==d&&(c[d]=a)}),a.entity["$$"+b.col.uid]=c}})},treeFooterAggregationType:function(a,b){return i.finaliseAggregation(void 0,b.treeFooterAggregation),"undefined"==typeof b.treeFooterAggregation.value||null===b.treeFooterAggregation.rendered?"":b.treeFooterAggregation.rendered}};return i}]),a.directive("uiGridTreeBaseRowHeaderButtons",["$templateCache","uiGridTreeBaseService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/treeBaseRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(a,c,d,e){var f=e.grid;a.treeButtonClick=function(a,c){b.toggleRowTreeState(f,a,c)}}}}]),a.directive("uiGridTreeBaseExpandAllButtons",["$templateCache","uiGridTreeBaseService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/treeBaseExpandAllButtons"),scope:!1,link:function(a,c,d,e){var f=a.col.grid;a.headerButtonClick=function(a,c){f.treeBase.expandAll?b.collapseAllRows(f,c):b.expandAllRows(f,c)}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","gridUtil","$parse",function(a,b,c,d){return{priority:-200,scope:!1,compile:function(a,b){var c=angular.element(a.children().children()[0]),d=c.attr("ng-class"),e="";return e=d?d.slice(0,-1)+",'ui-grid-tree-header-row': row.treeLevel > -1}":"{'ui-grid-tree-header-row': row.treeLevel > -1}",c.attr("ng-class",e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.treeView",["ui.grid","ui.grid.treeBase"]);a.constant("uiGridTreeViewConstants",{featureName:"treeView",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),a.service("uiGridTreeViewService",["$q","uiGridTreeViewConstants","uiGridTreeBaseConstants","uiGridTreeBaseService","gridUtil","GridRow","gridClassFactory","i18nService","uiGridConstants",function(a,b,c,d,e,f,g,h,i){var j={initializeGrid:function(a,b){d.initializeGrid(a,b),a.treeView={},a.registerRowsProcessor(j.adjustSorting,60);var c={events:{treeView:{}},methods:{treeView:{}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.enableTreeView=a.enableTreeView!==!1},adjustSorting:function(a){var b=this;return b.columns.forEach(function(a){a.sort&&(a.sort.ignoreSort=!0)}),a}};return j}]),a.directive("uiGridTreeView",["uiGridTreeViewConstants","uiGridTreeViewService","$templateCache",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){e.grid.options.enableTreeView!==!1&&b.initializeGrid(e.grid,a)},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.validate",["ui.grid"]);a.service("uiGridValidateService",["$sce","$q","$http","i18nService","uiGridConstants",function(a,b,c,d,e){var f={validatorFactories:{},setExternalFactoryFunction:function(a){f.externalFactoryFunction=a},clearExternalFactory:function(){delete f.externalFactoryFunction},getValidatorFromExternalFactory:function(a,b){return f.externalFactoryFunction(a,b).validatorFactory(b)},getMessageFromExternalFactory:function(a,b){return f.externalFactoryFunction(a,b).messageFunction(b)},setValidator:function(a,b,c){f.validatorFactories[a]={validatorFactory:b,messageFunction:c}},getValidator:function(a,b){if(f.externalFactoryFunction){var c=f.getValidatorFromExternalFactory(a,b);if(c)return c}if(!f.validatorFactories[a])throw"Invalid validator name: "+a;return f.validatorFactories[a].validatorFactory(b)},getMessage:function(a,b){if(f.externalFactoryFunction){var c=f.getMessageFromExternalFactory(a,b);if(c)return c}return f.validatorFactories[a].messageFunction(b)},isInvalid:function(a,b){return a["$$invalid"+b.name]},setInvalid:function(a,b){a["$$invalid"+b.name]=!0},setValid:function(a,b){delete a["$$invalid"+b.name]},setError:function(a,b,c){a["$$errors"+b.name]||(a["$$errors"+b.name]={}),a["$$errors"+b.name][c]=!0},clearError:function(a,b,c){a["$$errors"+b.name]&&c in a["$$errors"+b.name]&&delete a["$$errors"+b.name][c]},getErrorMessages:function(a,b){var c=[];return a["$$errors"+b.name]&&0!==Object.keys(a["$$errors"+b.name]).length?(Object.keys(a["$$errors"+b.name]).sort().forEach(function(a){c.push(f.getMessage(a,b.validators[a]))}),c):c},getFormattedErrors:function(b,c){var e="",g=f.getErrorMessages(b,c);return g.length?(g.forEach(function(a){e+=a+"<br/>"}),a.trustAsHtml("<p><b>"+d.getSafeText("validate.error")+"</b></p>"+e)):void 0},getTitleFormattedErrors:function(b,c){var e="\n",g="",h=f.getErrorMessages(b,c);return h.length?(h.forEach(function(a){g+=a+e}),a.trustAsHtml(d.getSafeText("validate.error")+e+g)):void 0},runValidators:function(a,c,d,e,g){if(d!==e){if("undefined"==typeof c.name||!c.name)throw new Error("colDef.name is required to perform validation");f.setValid(a,c);var h=function(a,b,c){return function(h){h||(f.setInvalid(a,b),f.setError(a,b,c),g&&g.api.validate.raise.validationFailed(a,b,d,e))}};for(var i in c.validators){f.clearError(a,c,i);var j=f.getValidator(i,c.validators[i]);b.when(j(e,d,a,c)).then(h(a,c,i))}}},createDefaultValidators:function(){f.setValidator("minLength",function(a){return function(b,c,d,e){return void 0===c||null===c||""===c?!0:c.length>=a}},function(a){return d.getSafeText("validate.minLength").replace("THRESHOLD",a)}),f.setValidator("maxLength",function(a){return function(b,c,d,e){return void 0===c||null===c||""===c?!0:c.length<=a}},function(a){return d.getSafeText("validate.maxLength").replace("THRESHOLD",a)}),f.setValidator("required",function(a){return function(b,c,d,e){return a?!(void 0===c||null===c||""===c):!0}},function(a){return d.getSafeText("validate.required")})},initializeGrid:function(a,b){b.validate={isInvalid:f.isInvalid,getFormattedErrors:f.getFormattedErrors,getTitleFormattedErrors:f.getTitleFormattedErrors,runValidators:f.runValidators};var c={events:{validate:{validationFailed:function(a,b,c,d){}}},methods:{validate:{isInvalid:function(a,c){return b.validate.isInvalid(a,c)},getErrorMessages:function(a,c){return b.validate.getErrorMessages(a,c)},getFormattedErrors:function(a,c){return b.validate.getFormattedErrors(a,c)},getTitleFormattedErrors:function(a,c){return b.validate.getTitleFormattedErrors(a,c)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.edit&&b.api.edit.on.afterCellEdit(a,function(a,c,d,e){b.validate.runValidators(a,c,d,e,b)}),f.createDefaultValidators()}};return f}]),a.directive("uiGridValidate",["gridUtil","uiGridValidateService",function(a,b){return{priority:0,replace:!0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(a,e.grid)},post:function(a,b,c,d){}}}}}])}(),angular.module("ui.grid").run(["$templateCache",function(a){"use strict";a.put("ui-grid/ui-grid-filter",'<div class="ui-grid-filter-container" ng-repeat="colFilter in col.filters" ng-class="{\'ui-grid-filter-cancel-button-hidden\' : colFilter.disableCancelFilterButton === true }"><div ng-if="colFilter.type !== \'select\'"><input type="text" class="ui-grid-filter-input ui-grid-filter-input-{{$index}}" ng-model="colFilter.term" ng-attr-placeholder="{{colFilter.placeholder || \'\'}}" aria-label="{{colFilter.ariaLabel || aria.defaultFilterLabel}}"><div role="button" class="ui-grid-filter-button" ng-click="removeFilter(colFilter, $index)" ng-if="!colFilter.disableCancelFilterButton" ng-disabled="colFilter.term === undefined || colFilter.term === null || colFilter.term === \'\'" ng-show="colFilter.term !== undefined && colFilter.term !== null && colFilter.term !== \'\'"><i class="ui-grid-icon-cancel" ui-grid-one-bind-aria-label="aria.removeFilter">&nbsp;</i></div></div><div ng-if="colFilter.type === \'select\'"><select class="ui-grid-filter-select ui-grid-filter-input-{{$index}}" ng-model="colFilter.term" ng-attr-placeholder="{{colFilter.placeholder || aria.defaultFilterLabel}}" aria-label="{{colFilter.ariaLabel || \'\'}}" ng-options="option.value as option.label for option in colFilter.selectOptions"><option value=""></option></select><div role="button" class="ui-grid-filter-button-select" ng-click="removeFilter(colFilter, $index)" ng-if="!colFilter.disableCancelFilterButton" ng-disabled="colFilter.term === undefined || colFilter.term === null || colFilter.term === \'\'" ng-show="colFilter.term !== undefined && colFilter.term != null"><i class="ui-grid-icon-cancel" ui-grid-one-bind-aria-label="aria.removeFilter">&nbsp;</i></div></div></div>'),a.put("ui-grid/ui-grid-footer",'<div class="ui-grid-footer-panel ui-grid-footer-aggregates-row"><!-- tfooter --><div class="ui-grid-footer ui-grid-footer-viewport"><div class="ui-grid-footer-canvas"><div class="ui-grid-footer-cell-wrapper" ng-style="colContainer.headerCellWrapperStyle()"><div role="row" class="ui-grid-footer-cell-row"><div ui-grid-footer-cell role="gridcell" ng-repeat="col in colContainer.renderedColumns track by col.uid" col="col" render-index="$index" class="ui-grid-footer-cell ui-grid-clearfix"></div></div></div></div></div></div>'),a.put("ui-grid/ui-grid-grid-footer",'<div class="ui-grid-footer-info ui-grid-grid-footer"><span>{{\'search.totalItems\' | t}} {{grid.rows.length}}</span> <span ng-if="grid.renderContainers.body.visibleRowCache.length !== grid.rows.length" class="ngLabel">({{"search.showingItems" | t}} {{grid.renderContainers.body.visibleRowCache.length}})</span></div>'),a.put("ui-grid/ui-grid-group-panel",'<div class="ui-grid-group-panel"><div ui-t="groupPanel.description" class="description" ng-show="groupings.length == 0"></div><ul ng-show="groupings.length > 0" class="ngGroupList"><li class="ngGroupItem" ng-repeat="group in configGroups"><span class="ngGroupElement"><span class="ngGroupName">{{group.displayName}} <span ng-click="removeGroup($index)" class="ngRemoveGroup">x</span></span> <span ng-hide="$last" class="ngGroupArrow"></span></span></li></ul></div>'),a.put("ui-grid/ui-grid-header",'<div role="rowgroup" class="ui-grid-header"><!-- theader --><div class="ui-grid-top-panel"><div class="ui-grid-header-viewport"><div class="ui-grid-header-canvas"><div class="ui-grid-header-cell-wrapper" ng-style="colContainer.headerCellWrapperStyle()"><div role="row" class="ui-grid-header-cell-row"><div class="ui-grid-header-cell ui-grid-clearfix" ng-repeat="col in colContainer.renderedColumns track by col.uid" ui-grid-header-cell col="col" render-index="$index"></div></div></div></div></div></div></div>'),a.put("ui-grid/ui-grid-menu-button",'<div class="ui-grid-menu-button"><div role="button" ui-grid-one-bind-id-grid="\'grid-menu\'" class="ui-grid-icon-container" ng-click="toggleMenu()" aria-haspopup="true"><i class="ui-grid-icon-menu" ui-grid-one-bind-aria-label="i18n.aria.buttonLabel">&nbsp;</i></div><div ui-grid-menu menu-items="menuItems"></div></div>'),a.put("ui-grid/ui-grid-no-header",'<div class="ui-grid-top-panel"></div>'),a.put("ui-grid/ui-grid-row","<div ng-repeat=\"(colRenderIndex, col) in colContainer.renderedColumns track by col.uid\" ui-grid-one-bind-id-grid=\"rowRenderIndex + '-' + col.uid + '-cell'\" class=\"ui-grid-cell\" ng-class=\"{ 'ui-grid-row-header-cell': col.isRowHeader }\" role=\"{{col.isRowHeader ? 'rowheader' : 'gridcell'}}\" ui-grid-cell></div>"),a.put("ui-grid/ui-grid",'<div ui-i18n="en" class="ui-grid"><!-- TODO (c0bra): add "scoped" attr here, eventually? --><style ui-grid-style>.grid{{ grid.id }} {\n      /* Styles for the grid */\n    }\n\n    .grid{{ grid.id }} .ui-grid-row, .grid{{ grid.id }} .ui-grid-cell, .grid{{ grid.id }} .ui-grid-cell .ui-grid-vertical-bar {\n      height: {{ grid.options.rowHeight }}px;\n    }\n\n    .grid{{ grid.id }} .ui-grid-row:last-child .ui-grid-cell {\n      border-bottom-width: {{ ((grid.getTotalRowHeight() < grid.getViewportHeight()) && \'1\') || \'0\' }}px;\n    }\n\n    {{ grid.verticalScrollbarStyles }}\n    {{ grid.horizontalScrollbarStyles }}\n\n    /*\n    .ui-grid[dir=rtl] .ui-grid-viewport {\n      padding-left: {{ grid.verticalScrollbarWidth }}px;\n    }\n    */\n\n    {{ grid.customStyles }}</style><div class="ui-grid-contents-wrapper"><div ui-grid-menu-button ng-if="grid.options.enableGridMenu"></div><div ng-if="grid.hasLeftContainer()" style="width: 0" ui-grid-pinned-container="\'left\'"></div><div ui-grid-render-container container-id="\'body\'" col-container-name="\'body\'" row-container-name="\'body\'" bind-scroll-horizontal="true" bind-scroll-vertical="true" enable-horizontal-scrollbar="grid.options.enableHorizontalScrollbar" enable-vertical-scrollbar="grid.options.enableVerticalScrollbar"></div><div ng-if="grid.hasRightContainer()" style="width: 0" ui-grid-pinned-container="\'right\'"></div><div ui-grid-grid-footer ng-if="grid.options.showGridFooter"></div><div ui-grid-column-menu ng-if="grid.options.enableColumnMenus"></div><div ng-transclude></div></div></div>'),a.put("ui-grid/uiGridCell",'<div class="ui-grid-cell-contents" title="TOOLTIP">{{COL_FIELD CUSTOM_FILTERS}}</div>'),a.put("ui-grid/uiGridColumnMenu",'<div class="ui-grid-column-menu"><div ui-grid-menu menu-items="menuItems"><!-- <div class="ui-grid-column-menu">\n    <div class="inner" ng-show="menuShown">\n      <ul>\n        <div ng-show="grid.options.enableSorting">\n          <li ng-click="sortColumn($event, asc)" ng-class="{ \'selected\' : col.sort.direction == asc }"><i class="ui-grid-icon-sort-alt-up"></i> Sort Ascending</li>\n          <li ng-click="sortColumn($event, desc)" ng-class="{ \'selected\' : col.sort.direction == desc }"><i class="ui-grid-icon-sort-alt-down"></i> Sort Descending</li>\n          <li ng-show="col.sort.direction" ng-click="unsortColumn()"><i class="ui-grid-icon-cancel"></i> Remove Sort</li>\n        </div>\n      </ul>\n    </div>\n  </div> --></div></div>'),a.put("ui-grid/uiGridFooterCell",'<div class="ui-grid-cell-contents" col-index="renderIndex"><div>{{ col.getAggregationText() + ( col.getAggregationValue() CUSTOM_FILTERS ) }}</div></div>'),a.put("ui-grid/uiGridHeaderCell",'<div role="columnheader" ng-class="{ \'sortable\': sortable }" ui-grid-one-bind-aria-labelledby-grid="col.uid + \'-header-text \' + col.uid + \'-sortdir-text\'" aria-sort="{{col.sort.direction == asc ? \'ascending\' : ( col.sort.direction == desc ? \'descending\' : (!col.sort.direction ? \'none\' : \'other\'))}}"><div role="button" tabindex="0" class="ui-grid-cell-contents ui-grid-header-cell-primary-focus" col-index="renderIndex" title="TOOLTIP"><span class="ui-grid-header-cell-label" ui-grid-one-bind-id-grid="col.uid + \'-header-text\'">{{ col.displayName CUSTOM_FILTERS }}</span> <span ui-grid-one-bind-id-grid="col.uid + \'-sortdir-text\'" ui-grid-visible="col.sort.direction" aria-label="{{getSortDirectionAriaLabel()}}"><i ng-class="{ \'ui-grid-icon-up-dir\': col.sort.direction == asc, \'ui-grid-icon-down-dir\': col.sort.direction == desc, \'ui-grid-icon-blank\': !col.sort.direction }" title="{{isSortPriorityVisible() ? i18n.headerCell.priority + \' \' + col.sort.priority : null}}" aria-hidden="true"></i> <sub ui-grid-visible="isSortPriorityVisible()" class="ui-grid-sort-priority-number">{{col.sort.priority}}</sub></span></div><div role="button" tabindex="0" ui-grid-one-bind-id-grid="col.uid + \'-menu-button\'" class="ui-grid-column-menu-button" ng-if="grid.options.enableColumnMenus && !col.isRowHeader  && col.colDef.enableColumnMenu !== false" ng-click="toggleMenu($event)" ng-class="{\'ui-grid-column-menu-button-last-col\': isLastCol}" ui-grid-one-bind-aria-label="i18n.headerCell.aria.columnMenuButtonLabel" aria-haspopup="true"><i class="ui-grid-icon-angle-down" aria-hidden="true">&nbsp;</i></div><div ui-grid-filter></div></div>'),a.put("ui-grid/uiGridMenu",'<div class="ui-grid-menu" ng-if="shown"><style ui-grid-style>{{dynamicStyles}}</style><div class="ui-grid-menu-mid" ng-show="shownMid"><div class="ui-grid-menu-inner"><button type="button" ng-focus="focus=true" ng-blur="focus=false" class="ui-grid-menu-close-button" ng-class="{\'ui-grid-sr-only\': (!focus)}"><i class="ui-grid-icon-cancel" ui-grid-one-bind-aria-label="i18n.close"></i></button><ul role="menu" class="ui-grid-menu-items"><li ng-repeat="item in menuItems" role="menuitem" ui-grid-menu-item ui-grid-one-bind-id="\'menuitem-\'+$index" action="item.action" name="item.title" active="item.active" icon="item.icon" shown="item.shown" context="item.context" template-url="item.templateUrl" leave-open="item.leaveOpen" screen-reader-only="item.screenReaderOnly"></li></ul></div></div></div>'),a.put("ui-grid/uiGridMenuItem",'<button type="button" class="ui-grid-menu-item" ng-click="itemAction($event, title)" ng-show="itemShown()" ng-class="{ \'ui-grid-menu-item-active\': active(), \'ui-grid-sr-only\': (!focus && screenReaderOnly) }" aria-pressed="{{active()}}" tabindex="0" ng-focus="focus=true" ng-blur="focus=false"><i ng-class="icon" aria-hidden="true">&nbsp;</i> {{ name }}</button>'),a.put("ui-grid/uiGridRenderContainer","<div role=\"grid\" ui-grid-one-bind-id-grid=\"'grid-container'\" class=\"ui-grid-render-container\" ng-style=\"{ 'margin-left': colContainer.getMargin('left') + 'px', 'margin-right': colContainer.getMargin('right') + 'px' }\"><!-- All of these dom elements are replaced in place --><div ui-grid-header></div><div ui-grid-viewport></div><div ng-if=\"colContainer.needsHScrollbarPlaceholder()\" class=\"ui-grid-scrollbar-placeholder\" ng-style=\"{height:colContainer.grid.scrollbarHeight + 'px'}\"></div><ui-grid-footer ng-if=\"grid.options.showColumnFooter\"></ui-grid-footer></div>"),a.put("ui-grid/uiGridViewport",'<div role="rowgroup" class="ui-grid-viewport" ng-style="colContainer.getViewportStyle()"><!-- tbody --><div class="ui-grid-canvas"><div ng-repeat="(rowRenderIndex, row) in rowContainer.renderedRows track by $index" class="ui-grid-row" ng-style="Viewport.rowStyle(rowRenderIndex)"><div role="row" ui-grid-row="row" row-render-index="rowRenderIndex"></div></div></div></div>'),a.put("ui-grid/cellEditor",'<div><form name="inputForm"><input type="INPUT_TYPE" ng-class="\'colt\' + col.uid" ui-grid-editor ng-model="MODEL_COL_FIELD"></form></div>'),a.put("ui-grid/dropdownEditor",'<div><form name="inputForm"><select ng-class="\'colt\' + col.uid" ui-grid-edit-dropdown ng-model="MODEL_COL_FIELD" ng-options="field[editDropdownIdLabel] as field[editDropdownValueLabel] CUSTOM_FILTERS for field in editDropdownOptionsArray"></select></form></div>'),a.put("ui-grid/fileChooserEditor",'<div><form name="inputForm"><input ng-class="\'colt\' + col.uid" ui-grid-edit-file-chooser type="file" id="files" name="files[]" ng-model="MODEL_COL_FIELD"></form></div>'),a.put("ui-grid/expandableRow",'<div ui-grid-expandable-row ng-if="expandableRow.shouldRenderExpand()" class="expandableRow" style="float:left; margin-top: 1px; margin-bottom: 1px" ng-style="{width: (grid.renderContainers.body.getCanvasWidth()) + \'px\', height: row.expandedRowHeight + \'px\'}"></div>'),a.put("ui-grid/expandableRowHeader",'<div class="ui-grid-row-header-cell ui-grid-expandable-buttons-cell"><div class="ui-grid-cell-contents"><i ng-class="{ \'ui-grid-icon-plus-squared\' : !row.isExpanded, \'ui-grid-icon-minus-squared\' : row.isExpanded }" ng-click="grid.api.expandable.toggleRowExpansion(row.entity)"></i></div></div>'),a.put("ui-grid/expandableScrollFiller","<div ng-if=\"expandableRow.shouldRenderFiller()\" ng-class=\"{scrollFiller:true, scrollFillerClass:(colContainer.name === 'body')}\" ng-style=\"{ width: (grid.getViewportWidth()) + 'px', height: row.expandedRowHeight + 2 + 'px', 'margin-left': grid.options.rowHeader.rowHeaderWidth + 'px' }\"><i class=\"ui-grid-icon-spin5 ui-grid-animate-spin\" ng-style=\"{'margin-top': ( row.expandedRowHeight/2 - 5) + 'px', 'margin-left' : ((grid.getViewportWidth() - grid.options.rowHeader.rowHeaderWidth)/2 - 5) + 'px'}\"></i></div>"),a.put("ui-grid/expandableTopRowHeader",'<div class="ui-grid-row-header-cell ui-grid-expandable-buttons-cell"><div class="ui-grid-cell-contents"><i ng-class="{ \'ui-grid-icon-plus-squared\' : !grid.expandable.expandedAll, \'ui-grid-icon-minus-squared\' : grid.expandable.expandedAll }" ng-click="grid.api.expandable.toggleAllRows()"></i></div></div>'),a.put("ui-grid/csvLink",'<span class="ui-grid-exporter-csv-link-span"><a href="data:text/csv;charset=UTF-8,CSV_CONTENT" download="FILE_NAME">LINK_LABEL</a></span>'),a.put("ui-grid/importerMenuItem",'<li class="ui-grid-menu-item"><form><input class="ui-grid-importer-file-chooser" type="file" id="files" name="files[]"></form></li>'),a.put("ui-grid/importerMenuItemContainer","<div ui-grid-importer-menu-item></div>"),a.put("ui-grid/pagination",'<div role="contentinfo" class="ui-grid-pager-panel" ui-grid-pager ng-show="grid.options.enablePaginationControls"><div role="navigation" class="ui-grid-pager-container"><div role="menubar" class="ui-grid-pager-control"><button type="button" role="menuitem" class="ui-grid-pager-first" ui-grid-one-bind-title="aria.pageToFirst" ui-grid-one-bind-aria-label="aria.pageToFirst" ng-click="pageFirstPageClick()" ng-disabled="cantPageBackward()"><div class="first-triangle"><div class="first-bar"></div></div></button> <button type="button" role="menuitem" class="ui-grid-pager-previous" ui-grid-one-bind-title="aria.pageBack" ui-grid-one-bind-aria-label="aria.pageBack" ng-click="pagePreviousPageClick()" ng-disabled="cantPageBackward()"><div class="first-triangle prev-triangle"></div></button> <input type="number" ui-grid-one-bind-title="aria.pageSelected" ui-grid-one-bind-aria-label="aria.pageSelected" class="ui-grid-pager-control-input" ng-model="grid.options.paginationCurrentPage" min="1" max="{{ paginationApi.getTotalPages() }}" required> <span class="ui-grid-pager-max-pages-number" ng-show="paginationApi.getTotalPages() > 0"><abbr ui-grid-one-bind-title="paginationOf">/</abbr> {{ paginationApi.getTotalPages() }}</span> <button type="button" role="menuitem" class="ui-grid-pager-next" ui-grid-one-bind-title="aria.pageForward" ui-grid-one-bind-aria-label="aria.pageForward" ng-click="pageNextPageClick()" ng-disabled="cantPageForward()"><div class="last-triangle next-triangle"></div></button> <button type="button" role="menuitem" class="ui-grid-pager-last" ui-grid-one-bind-title="aria.pageToLast" ui-grid-one-bind-aria-label="aria.pageToLast" ng-click="pageLastPageClick()" ng-disabled="cantPageToLast()"><div class="last-triangle"><div class="last-bar"></div></div></button></div><div class="ui-grid-pager-row-count-picker" ng-if="grid.options.paginationPageSizes.length > 1"><select ui-grid-one-bind-aria-labelledby-grid="\'items-per-page-label\'" ng-model="grid.options.paginationPageSize" ng-options="o as o for o in grid.options.paginationPageSizes"></select><span ui-grid-one-bind-id-grid="\'items-per-page-label\'" class="ui-grid-pager-row-count-label">&nbsp;{{sizesLabel}}</span></div><span ng-if="grid.options.paginationPageSizes.length <= 1" class="ui-grid-pager-row-count-label">{{grid.options.paginationPageSize}}&nbsp;{{sizesLabel}}</span></div><div class="ui-grid-pager-count-container"><div class="ui-grid-pager-count"><span ng-show="grid.options.totalItems > 0">{{showingLow}} <abbr ui-grid-one-bind-title="paginationThrough">-</abbr> {{showingHigh}} {{paginationOf}} {{grid.options.totalItems}} {{totalItemsLabel}}</span></div></div></div>'),
-a.put("ui-grid/columnResizer",'<div ui-grid-column-resizer ng-if="grid.options.enableColumnResizing" class="ui-grid-column-resizer" col="col" position="right" render-index="renderIndex" unselectable="on"></div>'),a.put("ui-grid/gridFooterSelectedItems",'<span ng-if="grid.selection.selectedCount !== 0 && grid.options.enableFooterTotalSelected">({{"search.selectedItems" | t}} {{grid.selection.selectedCount}})</span>'),a.put("ui-grid/selectionHeaderCell",'<div><!-- <div class="ui-grid-vertical-bar">&nbsp;</div> --><div class="ui-grid-cell-contents" col-index="renderIndex"><ui-grid-selection-select-all-buttons ng-if="grid.options.enableSelectAll"></ui-grid-selection-select-all-buttons></div></div>'),a.put("ui-grid/selectionRowHeader",'<div class="ui-grid-disable-selection"><div class="ui-grid-cell-contents"><ui-grid-selection-row-header-buttons></ui-grid-selection-row-header-buttons></div></div>'),a.put("ui-grid/selectionRowHeaderButtons",'<div class="ui-grid-selection-row-header-buttons ui-grid-icon-ok" ng-class="{\'ui-grid-row-selected\': row.isSelected}" ng-click="selectButtonClick(row, $event)">&nbsp;</div>'),a.put("ui-grid/selectionSelectAllButtons",'<div class="ui-grid-selection-row-header-buttons ui-grid-icon-ok" ng-class="{\'ui-grid-all-selected\': grid.selection.selectAll}" ng-click="headerButtonClick($event)"></div>'),a.put("ui-grid/treeBaseExpandAllButtons",'<div class="ui-grid-tree-base-row-header-buttons" ng-class="{\'ui-grid-icon-minus-squared\': grid.treeBase.numberLevels > 0 && grid.treeBase.expandAll, \'ui-grid-icon-plus-squared\': grid.treeBase.numberLevels > 0 && !grid.treeBase.expandAll}" ng-click="headerButtonClick($event)"></div>'),a.put("ui-grid/treeBaseHeaderCell",'<div><div class="ui-grid-cell-contents" col-index="renderIndex"><ui-grid-tree-base-expand-all-buttons></ui-grid-tree-base-expand-all-buttons></div></div>'),a.put("ui-grid/treeBaseRowHeader",'<div class="ui-grid-cell-contents"><ui-grid-tree-base-row-header-buttons></ui-grid-tree-base-row-header-buttons></div>'),a.put("ui-grid/treeBaseRowHeaderButtons","<div class=\"ui-grid-tree-base-row-header-buttons\" ng-class=\"{'ui-grid-tree-base-header': row.treeLevel > -1 }\" ng-click=\"treeButtonClick(row, $event)\"><i ng-class=\"{'ui-grid-icon-minus-squared': ( ( grid.options.showTreeExpandNoChildren && row.treeLevel > -1 ) || ( row.treeNode.children && row.treeNode.children.length > 0 ) ) && row.treeNode.state === 'expanded', 'ui-grid-icon-plus-squared': ( ( grid.options.showTreeExpandNoChildren && row.treeLevel > -1 ) || ( row.treeNode.children && row.treeNode.children.length > 0 ) ) && row.treeNode.state === 'collapsed'}\" ng-style=\"{'padding-left': grid.options.treeIndent * row.treeLevel + 'px'}\"></i> &nbsp;</div>"),a.put("ui-grid/cellTitleValidator",'<div class="ui-grid-cell-contents" ng-class="{invalid:grid.validate.isInvalid(row.entity,col.colDef)}" title="{{grid.validate.getTitleFormattedErrors(row.entity,col.colDef)}}">{{COL_FIELD CUSTOM_FILTERS}}</div>'),a.put("ui-grid/cellTooltipValidator",'<div class="ui-grid-cell-contents" ng-class="{invalid:grid.validate.isInvalid(row.entity,col.colDef)}" tooltip-html-unsafe="{{grid.validate.getFormattedErrors(row.entity,col.colDef)}}" tooltip-enable="grid.validate.isInvalid(row.entity,col.colDef)" tooltip-append-to-body="true" tooltip-placement="top" title="TOOLTIP">{{COL_FIELD CUSTOM_FILTERS}}</div>')}]),function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){(function(b){a.exports=b.pdfMake=c(1)}).call(b,function(){return this}())},function(a,b,c){(function(b){"use strict";function d(a,b,c){this.docDefinition=a,this.fonts=b||h,this.vfs=c}var e=c(6),f=c(105),g=f.saveAs,h={Roboto:{normal:"Roboto-Regular.ttf",bold:"Roboto-Medium.ttf",italics:"Roboto-Italic.ttf",bolditalics:"Roboto-Italic.ttf"}};d.prototype._createDoc=function(a,c){var d=new e(this.fonts);d.fs.bindFS(this.vfs);var f,g=d.createPdfKitDocument(this.docDefinition,a),h=[];g.on("data",function(a){h.push(a)}),g.on("end",function(){f=b.concat(h),c(f,g._pdfMakePages)}),g.end()},d.prototype._getPages=function(a,b){if(!b)throw"getBuffer is an async method and needs a callback argument";this._createDoc(a,function(a,c){b(c)})},d.prototype.open=function(a){var b=window.open("","_blank");try{this.getDataUrl(function(a){b.location.href=a})}catch(c){throw b.close(),c}},d.prototype.print=function(){this.getDataUrl(function(a){var b=document.createElement("iframe");b.style.position="absolute",b.style.left="-99999px",b.src=a,b.onload=function(){function a(){document.body.removeChild(b),document.removeEventListener("click",a)}document.addEventListener("click",a,!1)},document.body.appendChild(b)},{autoPrint:!0})},d.prototype.download=function(a,b){"function"==typeof a&&(b=a,a=null),a=a||"file.pdf",this.getBuffer(function(c){var d;try{d=new Blob([c],{type:"application/pdf"})}catch(e){if("InvalidStateError"==e.name){var f=new Uint8Array(c);d=new Blob([f.buffer],{type:"application/pdf"})}}if(!d)throw"Could not generate blob";g(d,a),"function"==typeof b&&b()})},d.prototype.getBase64=function(a,b){if(!a)throw"getBase64 is an async method and needs a callback argument";this._createDoc(b,function(b){a(b.toString("base64"))})},d.prototype.getDataUrl=function(a,b){if(!a)throw"getDataUrl is an async method and needs a callback argument";this._createDoc(b,function(b){a("data:application/pdf;base64,"+b.toString("base64"))})},d.prototype.getBuffer=function(a,b){if(!a)throw"getBuffer is an async method and needs a callback argument";this._createDoc(b,function(b){a(b)})},a.exports={createPdf:function(a){return new d(a,window.pdfMake.fonts,window.pdfMake.vfs)}}}).call(b,c(2).Buffer)},function(a,b,c){(function(a,d){function e(){function a(){}try{var b=new Uint8Array(1);return b.foo=function(){return 42},b.constructor=a,42===b.foo()&&b.constructor===a&&"function"==typeof b.subarray&&0===b.subarray(1,1).byteLength}catch(c){return!1}}function f(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(b){return this instanceof a?(this.length=0,this.parent=void 0,"number"==typeof b?g(this,b):"string"==typeof b?h(this,b,arguments.length>1?arguments[1]:"utf8"):i(this,b)):arguments.length>1?new a(b,arguments[1]):new a(b)}function g(b,c){if(b=p(b,0>c?0:0|q(c)),!a.TYPED_ARRAY_SUPPORT)for(var d=0;c>d;d++)b[d]=0;return b}function h(a,b,c){("string"!=typeof c||""===c)&&(c="utf8");var d=0|s(b,c);return a=p(a,d),a.write(b,c),a}function i(b,c){if(a.isBuffer(c))return j(b,c);if(Y(c))return k(b,c);if(null==c)throw new TypeError("must start with number, buffer, array or string");if("undefined"!=typeof ArrayBuffer){if(c.buffer instanceof ArrayBuffer)return l(b,c);if(c instanceof ArrayBuffer)return m(b,c)}return c.length?n(b,c):o(b,c)}function j(a,b){var c=0|q(b.length);return a=p(a,c),b.copy(a,0,0,c),a}function k(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function l(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function m(b,c){return a.TYPED_ARRAY_SUPPORT?(c.byteLength,b=a._augment(new Uint8Array(c))):b=l(b,new Uint8Array(c)),b}function n(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function o(a,b){var c,d=0;"Buffer"===b.type&&Y(b.data)&&(c=b.data,d=0|q(c.length)),a=p(a,d);for(var e=0;d>e;e+=1)a[e]=255&c[e];return a}function p(b,c){a.TYPED_ARRAY_SUPPORT?(b=a._augment(new Uint8Array(c)),b.__proto__=a.prototype):(b.length=c,b._isBuffer=!0);var d=0!==c&&c<=a.poolSize>>>1;return d&&(b.parent=Z),b}function q(a){if(a>=f())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+f().toString(16)+" bytes");return 0|a}function r(b,c){if(!(this instanceof r))return new r(b,c);var d=new a(b,c);return delete d.parent,d}function s(a,b){"string"!=typeof a&&(a=""+a);var c=a.length;if(0===c)return 0;for(var d=!1;;)switch(b){case"ascii":case"binary":case"raw":case"raws":return c;case"utf8":case"utf-8":return R(a).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*c;case"hex":return c>>>1;case"base64":return U(a).length;default:if(d)return R(a).length;b=(""+b).toLowerCase(),d=!0}}function t(a,b,c){var d=!1;if(b=0|b,c=void 0===c||c===1/0?this.length:0|c,a||(a="utf8"),0>b&&(b=0),c>this.length&&(c=this.length),b>=c)return"";for(;;)switch(a){case"hex":return F(this,b,c);case"utf8":case"utf-8":return B(this,b,c);case"ascii":return D(this,b,c);case"binary":return E(this,b,c);case"base64":return A(this,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G(this,b,c);default:if(d)throw new TypeError("Unknown encoding: "+a);a=(a+"").toLowerCase(),d=!0}}function u(a,b,c,d){c=Number(c)||0;var e=a.length-c;d?(d=Number(d),d>e&&(d=e)):d=e;var f=b.length;if(f%2!==0)throw new Error("Invalid hex string");d>f/2&&(d=f/2);for(var g=0;d>g;g++){var h=parseInt(b.substr(2*g,2),16);if(isNaN(h))throw new Error("Invalid hex string");a[c+g]=h}return g}function v(a,b,c,d){return V(R(b,a.length-c),a,c,d)}function w(a,b,c,d){return V(S(b),a,c,d)}function x(a,b,c,d){return w(a,b,c,d)}function y(a,b,c,d){return V(U(b),a,c,d)}function z(a,b,c,d){return V(T(b,a.length-c),a,c,d)}function A(a,b,c){return 0===b&&c===a.length?W.fromByteArray(a):W.fromByteArray(a.slice(b,c))}function B(a,b,c){c=Math.min(a.length,c);for(var d=[],e=b;c>e;){var f=a[e],g=null,h=f>239?4:f>223?3:f>191?2:1;if(c>=e+h){var i,j,k,l;switch(h){case 1:128>f&&(g=f);break;case 2:i=a[e+1],128===(192&i)&&(l=(31&f)<<6|63&i,l>127&&(g=l));break;case 3:i=a[e+1],j=a[e+2],128===(192&i)&&128===(192&j)&&(l=(15&f)<<12|(63&i)<<6|63&j,l>2047&&(55296>l||l>57343)&&(g=l));break;case 4:i=a[e+1],j=a[e+2],k=a[e+3],128===(192&i)&&128===(192&j)&&128===(192&k)&&(l=(15&f)<<18|(63&i)<<12|(63&j)<<6|63&k,l>65535&&1114112>l&&(g=l))}}null===g?(g=65533,h=1):g>65535&&(g-=65536,d.push(g>>>10&1023|55296),g=56320|1023&g),d.push(g),e+=h}return C(d)}function C(a){var b=a.length;if($>=b)return String.fromCharCode.apply(String,a);for(var c="",d=0;b>d;)c+=String.fromCharCode.apply(String,a.slice(d,d+=$));return c}function D(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(127&a[e]);return d}function E(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(a[e]);return d}function F(a,b,c){var d=a.length;(!b||0>b)&&(b=0),(!c||0>c||c>d)&&(c=d);for(var e="",f=b;c>f;f++)e+=Q(a[f]);return e}function G(a,b,c){for(var d=a.slice(b,c),e="",f=0;f<d.length;f+=2)e+=String.fromCharCode(d[f]+256*d[f+1]);return e}function H(a,b,c){if(a%1!==0||0>a)throw new RangeError("offset is not uint");if(a+b>c)throw new RangeError("Trying to access beyond buffer length")}function I(b,c,d,e,f,g){if(!a.isBuffer(b))throw new TypeError("buffer must be a Buffer instance");if(c>f||g>c)throw new RangeError("value is out of bounds");if(d+e>b.length)throw new RangeError("index out of range")}function J(a,b,c,d){0>b&&(b=65535+b+1);for(var e=0,f=Math.min(a.length-c,2);f>e;e++)a[c+e]=(b&255<<8*(d?e:1-e))>>>8*(d?e:1-e)}function K(a,b,c,d){0>b&&(b=4294967295+b+1);for(var e=0,f=Math.min(a.length-c,4);f>e;e++)a[c+e]=b>>>8*(d?e:3-e)&255}function L(a,b,c,d,e,f){if(b>e||f>b)throw new RangeError("value is out of bounds");if(c+d>a.length)throw new RangeError("index out of range");if(0>c)throw new RangeError("index out of range")}function M(a,b,c,d,e){return e||L(a,b,c,4,3.4028234663852886e38,-3.4028234663852886e38),X.write(a,b,c,d,23,4),c+4}function N(a,b,c,d,e){return e||L(a,b,c,8,1.7976931348623157e308,-1.7976931348623157e308),X.write(a,b,c,d,52,8),c+8}function O(a){if(a=P(a).replace(aa,""),a.length<2)return"";for(;a.length%4!==0;)a+="=";return a}function P(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function Q(a){return 16>a?"0"+a.toString(16):a.toString(16)}function R(a,b){b=b||1/0;for(var c,d=a.length,e=null,f=[],g=0;d>g;g++){if(c=a.charCodeAt(g),c>55295&&57344>c){if(!e){if(c>56319){(b-=3)>-1&&f.push(239,191,189);continue}if(g+1===d){(b-=3)>-1&&f.push(239,191,189);continue}e=c;continue}if(56320>c){(b-=3)>-1&&f.push(239,191,189),e=c;continue}c=e-55296<<10|c-56320|65536}else e&&(b-=3)>-1&&f.push(239,191,189);if(e=null,128>c){if((b-=1)<0)break;f.push(c)}else if(2048>c){if((b-=2)<0)break;f.push(c>>6|192,63&c|128)}else if(65536>c){if((b-=3)<0)break;f.push(c>>12|224,c>>6&63|128,63&c|128)}else{if(!(1114112>c))throw new Error("Invalid code point");if((b-=4)<0)break;f.push(c>>18|240,c>>12&63|128,c>>6&63|128,63&c|128)}}return f}function S(a){for(var b=[],c=0;c<a.length;c++)b.push(255&a.charCodeAt(c));return b}function T(a,b){for(var c,d,e,f=[],g=0;g<a.length&&!((b-=2)<0);g++)c=a.charCodeAt(g),d=c>>8,e=c%256,f.push(e),f.push(d);return f}function U(a){return W.toByteArray(O(a))}function V(a,b,c,d){for(var e=0;d>e&&!(e+c>=b.length||e>=a.length);e++)b[e+c]=a[e];return e}var W=c(3),X=c(4),Y=c(5);b.Buffer=a,b.SlowBuffer=r,b.INSPECT_MAX_BYTES=50,a.poolSize=8192;var Z={};a.TYPED_ARRAY_SUPPORT=void 0!==d.TYPED_ARRAY_SUPPORT?d.TYPED_ARRAY_SUPPORT:e(),a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array),a.isBuffer=function(a){return!(null==a||!a._isBuffer)},a.compare=function(b,c){if(!a.isBuffer(b)||!a.isBuffer(c))throw new TypeError("Arguments must be Buffers");if(b===c)return 0;for(var d=b.length,e=c.length,f=0,g=Math.min(d,e);g>f&&b[f]===c[f];)++f;return f!==g&&(d=b[f],e=c[f]),e>d?-1:d>e?1:0},a.isEncoding=function(a){switch(String(a).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(b,c){if(!Y(b))throw new TypeError("list argument must be an Array of Buffers.");if(0===b.length)return new a(0);var d;if(void 0===c)for(c=0,d=0;d<b.length;d++)c+=b[d].length;var e=new a(c),f=0;for(d=0;d<b.length;d++){var g=b[d];g.copy(e,f),f+=g.length}return e},a.byteLength=s,a.prototype.length=void 0,a.prototype.parent=void 0,a.prototype.toString=function(){var a=0|this.length;return 0===a?"":0===arguments.length?B(this,0,a):t.apply(this,arguments)},a.prototype.equals=function(b){if(!a.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?!0:0===a.compare(this,b)},a.prototype.inspect=function(){var a="",c=b.INSPECT_MAX_BYTES;return this.length>0&&(a=this.toString("hex",0,c).match(/.{2}/g).join(" "),this.length>c&&(a+=" ... ")),"<Buffer "+a+">"},a.prototype.compare=function(b){if(!a.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?0:a.compare(this,b)},a.prototype.indexOf=function(b,c){function d(a,b,c){for(var d=-1,e=0;c+e<a.length;e++)if(a[c+e]===b[-1===d?0:e-d]){if(-1===d&&(d=e),e-d+1===b.length)return c+d}else d=-1;return-1}if(c>2147483647?c=2147483647:-2147483648>c&&(c=-2147483648),c>>=0,0===this.length)return-1;if(c>=this.length)return-1;if(0>c&&(c=Math.max(this.length+c,0)),"string"==typeof b)return 0===b.length?-1:String.prototype.indexOf.call(this,b,c);if(a.isBuffer(b))return d(this,b,c);if("number"==typeof b)return a.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,b,c):d(this,[b],c);throw new TypeError("val must be string, number or Buffer")},a.prototype.get=function(a){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(a)},a.prototype.set=function(a,b){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(a,b)},a.prototype.write=function(a,b,c,d){if(void 0===b)d="utf8",c=this.length,b=0;else if(void 0===c&&"string"==typeof b)d=b,c=this.length,b=0;else if(isFinite(b))b=0|b,isFinite(c)?(c=0|c,void 0===d&&(d="utf8")):(d=c,c=void 0);else{var e=d;d=b,b=0|c,c=e}var f=this.length-b;if((void 0===c||c>f)&&(c=f),a.length>0&&(0>c||0>b)||b>this.length)throw new RangeError("attempt to write outside buffer bounds");d||(d="utf8");for(var g=!1;;)switch(d){case"hex":return u(this,a,b,c);case"utf8":case"utf-8":return v(this,a,b,c);case"ascii":return w(this,a,b,c);case"binary":return x(this,a,b,c);case"base64":return y(this,a,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return z(this,a,b,c);default:if(g)throw new TypeError("Unknown encoding: "+d);d=(""+d).toLowerCase(),g=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var $=4096;a.prototype.slice=function(b,c){var d=this.length;b=~~b,c=void 0===c?d:~~c,0>b?(b+=d,0>b&&(b=0)):b>d&&(b=d),0>c?(c+=d,0>c&&(c=0)):c>d&&(c=d),b>c&&(c=b);var e;if(a.TYPED_ARRAY_SUPPORT)e=a._augment(this.subarray(b,c));else{var f=c-b;e=new a(f,void 0);for(var g=0;f>g;g++)e[g]=this[g+b]}return e.length&&(e.parent=this.parent||this),e},a.prototype.readUIntLE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f<b&&(e*=256);)d+=this[a+f]*e;return d},a.prototype.readUIntBE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a+--b],e=1;b>0&&(e*=256);)d+=this[a+--b]*e;return d},a.prototype.readUInt8=function(a,b){return b||H(a,1,this.length),this[a]},a.prototype.readUInt16LE=function(a,b){return b||H(a,2,this.length),this[a]|this[a+1]<<8},a.prototype.readUInt16BE=function(a,b){return b||H(a,2,this.length),this[a]<<8|this[a+1]},a.prototype.readUInt32LE=function(a,b){return b||H(a,4,this.length),(this[a]|this[a+1]<<8|this[a+2]<<16)+16777216*this[a+3]},a.prototype.readUInt32BE=function(a,b){return b||H(a,4,this.length),16777216*this[a]+(this[a+1]<<16|this[a+2]<<8|this[a+3])},a.prototype.readIntLE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f<b&&(e*=256);)d+=this[a+f]*e;return e*=128,d>=e&&(d-=Math.pow(2,8*b)),d},a.prototype.readIntBE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=b,e=1,f=this[a+--d];d>0&&(e*=256);)f+=this[a+--d]*e;return e*=128,f>=e&&(f-=Math.pow(2,8*b)),f},a.prototype.readInt8=function(a,b){return b||H(a,1,this.length),128&this[a]?-1*(255-this[a]+1):this[a]},a.prototype.readInt16LE=function(a,b){b||H(a,2,this.length);var c=this[a]|this[a+1]<<8;return 32768&c?4294901760|c:c},a.prototype.readInt16BE=function(a,b){b||H(a,2,this.length);var c=this[a+1]|this[a]<<8;return 32768&c?4294901760|c:c},a.prototype.readInt32LE=function(a,b){return b||H(a,4,this.length),this[a]|this[a+1]<<8|this[a+2]<<16|this[a+3]<<24},a.prototype.readInt32BE=function(a,b){return b||H(a,4,this.length),this[a]<<24|this[a+1]<<16|this[a+2]<<8|this[a+3]},a.prototype.readFloatLE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!0,23,4)},a.prototype.readFloatBE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!1,23,4)},a.prototype.readDoubleLE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!0,52,8)},a.prototype.readDoubleBE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!1,52,8)},a.prototype.writeUIntLE=function(a,b,c,d){a=+a,b=0|b,c=0|c,d||I(this,a,b,c,Math.pow(2,8*c),0);var e=1,f=0;for(this[b]=255&a;++f<c&&(e*=256);)this[b+f]=a/e&255;return b+c},a.prototype.writeUIntBE=function(a,b,c,d){a=+a,b=0|b,c=0|c,d||I(this,a,b,c,Math.pow(2,8*c),0);var e=c-1,f=1;for(this[b+e]=255&a;--e>=0&&(f*=256);)this[b+e]=a/f&255;return b+c},a.prototype.writeUInt8=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,1,255,0),a.TYPED_ARRAY_SUPPORT||(b=Math.floor(b)),this[c]=255&b,c+1},a.prototype.writeUInt16LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[c]=255&b,this[c+1]=b>>>8):J(this,b,c,!0),c+2},a.prototype.writeUInt16BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>8,this[c+1]=255&b):J(this,b,c,!1),c+2},a.prototype.writeUInt32LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[c+3]=b>>>24,this[c+2]=b>>>16,this[c+1]=b>>>8,this[c]=255&b):K(this,b,c,!0),c+4},a.prototype.writeUInt32BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>24,this[c+1]=b>>>16,this[c+2]=b>>>8,this[c+3]=255&b):K(this,b,c,!1),c+4},a.prototype.writeIntLE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=0,g=1,h=0>a?1:0;for(this[b]=255&a;++f<c&&(g*=256);)this[b+f]=(a/g>>0)-h&255;return b+c},a.prototype.writeIntBE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=c-1,g=1,h=0>a?1:0;for(this[b+f]=255&a;--f>=0&&(g*=256);)this[b+f]=(a/g>>0)-h&255;return b+c},a.prototype.writeInt8=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,1,127,-128),a.TYPED_ARRAY_SUPPORT||(b=Math.floor(b)),0>b&&(b=255+b+1),this[c]=255&b,c+1},a.prototype.writeInt16LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[c]=255&b,this[c+1]=b>>>8):J(this,b,c,!0),c+2},a.prototype.writeInt16BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>8,this[c+1]=255&b):J(this,b,c,!1),c+2},a.prototype.writeInt32LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[c]=255&b,this[c+1]=b>>>8,this[c+2]=b>>>16,this[c+3]=b>>>24):K(this,b,c,!0),c+4},a.prototype.writeInt32BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,2147483647,-2147483648),0>b&&(b=4294967295+b+1),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>24,this[c+1]=b>>>16,this[c+2]=b>>>8,this[c+3]=255&b):K(this,b,c,!1),c+4},a.prototype.writeFloatLE=function(a,b,c){return M(this,a,b,!0,c)},a.prototype.writeFloatBE=function(a,b,c){return M(this,a,b,!1,c)},a.prototype.writeDoubleLE=function(a,b,c){return N(this,a,b,!0,c)},a.prototype.writeDoubleBE=function(a,b,c){return N(this,a,b,!1,c)},a.prototype.copy=function(b,c,d,e){if(d||(d=0),e||0===e||(e=this.length),c>=b.length&&(c=b.length),c||(c=0),e>0&&d>e&&(e=d),e===d)return 0;if(0===b.length||0===this.length)return 0;if(0>c)throw new RangeError("targetStart out of bounds");if(0>d||d>=this.length)throw new RangeError("sourceStart out of bounds");if(0>e)throw new RangeError("sourceEnd out of bounds");e>this.length&&(e=this.length),b.length-c<e-d&&(e=b.length-c+d);var f,g=e-d;if(this===b&&c>d&&e>c)for(f=g-1;f>=0;f--)b[f+c]=this[f+d];else if(1e3>g||!a.TYPED_ARRAY_SUPPORT)for(f=0;g>f;f++)b[f+c]=this[f+d];else b._set(this.subarray(d,d+g),c);return g},a.prototype.fill=function(a,b,c){if(a||(a=0),b||(b=0),c||(c=this.length),b>c)throw new RangeError("end < start");if(c!==b&&0!==this.length){if(0>b||b>=this.length)throw new RangeError("start out of bounds");if(0>c||c>this.length)throw new RangeError("end out of bounds");var d;if("number"==typeof a)for(d=b;c>d;d++)this[d]=a;else{var e=R(a.toString()),f=e.length;for(d=b;c>d;d++)this[d]=e[d%f]}return this}},a.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(a.TYPED_ARRAY_SUPPORT)return new a(this).buffer;for(var b=new Uint8Array(this.length),c=0,d=b.length;d>c;c+=1)b[c]=this[c];return b.buffer}throw new TypeError("Buffer.toArrayBuffer not supported in this browser")};var _=a.prototype;a._augment=function(b){return b.constructor=a,b._isBuffer=!0,b._set=b.set,b.get=_.get,b.set=_.set,b.write=_.write,b.toString=_.toString,b.toLocaleString=_.toString,b.toJSON=_.toJSON,b.equals=_.equals,b.compare=_.compare,b.indexOf=_.indexOf,b.copy=_.copy,b.slice=_.slice,b.readUIntLE=_.readUIntLE,b.readUIntBE=_.readUIntBE,b.readUInt8=_.readUInt8,b.readUInt16LE=_.readUInt16LE,b.readUInt16BE=_.readUInt16BE,b.readUInt32LE=_.readUInt32LE,b.readUInt32BE=_.readUInt32BE,b.readIntLE=_.readIntLE,b.readIntBE=_.readIntBE,b.readInt8=_.readInt8,b.readInt16LE=_.readInt16LE,b.readInt16BE=_.readInt16BE,b.readInt32LE=_.readInt32LE,b.readInt32BE=_.readInt32BE,b.readFloatLE=_.readFloatLE,b.readFloatBE=_.readFloatBE,b.readDoubleLE=_.readDoubleLE,b.readDoubleBE=_.readDoubleBE,b.writeUInt8=_.writeUInt8,b.writeUIntLE=_.writeUIntLE,b.writeUIntBE=_.writeUIntBE,b.writeUInt16LE=_.writeUInt16LE,b.writeUInt16BE=_.writeUInt16BE,b.writeUInt32LE=_.writeUInt32LE,b.writeUInt32BE=_.writeUInt32BE,b.writeIntLE=_.writeIntLE,b.writeIntBE=_.writeIntBE,b.writeInt8=_.writeInt8,b.writeInt16LE=_.writeInt16LE,b.writeInt16BE=_.writeInt16BE,b.writeInt32LE=_.writeInt32LE,b.writeInt32BE=_.writeInt32BE,b.writeFloatLE=_.writeFloatLE,b.writeFloatBE=_.writeFloatBE,b.writeDoubleLE=_.writeDoubleLE,b.writeDoubleBE=_.writeDoubleBE,b.fill=_.fill,b.inspect=_.inspect,b.toArrayBuffer=_.toArrayBuffer,b};var aa=/[^+\/0-9A-Za-z-_]/g}).call(b,c(2).Buffer,function(){return this}())},function(a,b,c){var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(a){"use strict";function b(a){var b=a.charCodeAt(0);return b===g||b===l?62:b===h||b===m?63:i>b?-1:i+10>b?b-i+26+26:k+26>b?b-k:j+26>b?b-j+26:void 0}function c(a){function c(a){j[l++]=a}var d,e,g,h,i,j;if(a.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var k=a.length;i="="===a.charAt(k-2)?2:"="===a.charAt(k-1)?1:0,j=new f(3*a.length/4-i),g=i>0?a.length-4:a.length;var l=0;for(d=0,e=0;g>d;d+=4,e+=3)h=b(a.charAt(d))<<18|b(a.charAt(d+1))<<12|b(a.charAt(d+2))<<6|b(a.charAt(d+3)),c((16711680&h)>>16),c((65280&h)>>8),c(255&h);return 2===i?(h=b(a.charAt(d))<<2|b(a.charAt(d+1))>>4,c(255&h)):1===i&&(h=b(a.charAt(d))<<10|b(a.charAt(d+1))<<4|b(a.charAt(d+2))>>2,c(h>>8&255),c(255&h)),j}function e(a){function b(a){return d.charAt(a)}function c(a){return b(a>>18&63)+b(a>>12&63)+b(a>>6&63)+b(63&a)}var e,f,g,h=a.length%3,i="";for(e=0,g=a.length-h;g>e;e+=3)f=(a[e]<<16)+(a[e+1]<<8)+a[e+2],i+=c(f);switch(h){case 1:f=a[a.length-1],i+=b(f>>2),i+=b(f<<4&63),i+="==";break;case 2:f=(a[a.length-2]<<8)+a[a.length-1],i+=b(f>>10),i+=b(f>>4&63),i+=b(f<<2&63),i+="="}return i}var f="undefined"!=typeof Uint8Array?Uint8Array:Array,g="+".charCodeAt(0),h="/".charCodeAt(0),i="0".charCodeAt(0),j="a".charCodeAt(0),k="A".charCodeAt(0),l="-".charCodeAt(0),m="_".charCodeAt(0);a.toByteArray=c,a.fromByteArray=e}(b)},function(a,b){b.read=function(a,b,c,d,e){var f,g,h=8*e-d-1,i=(1<<h)-1,j=i>>1,k=-7,l=c?e-1:0,m=c?-1:1,n=a[b+l];for(l+=m,f=n&(1<<-k)-1,n>>=-k,k+=h;k>0;f=256*f+a[b+l],l+=m,k-=8);for(g=f&(1<<-k)-1,f>>=-k,k+=d;k>0;g=256*g+a[b+l],l+=m,k-=8);if(0===f)f=1-j;else{if(f===i)return g?NaN:(n?-1:1)*(1/0);g+=Math.pow(2,d),f-=j}return(n?-1:1)*g*Math.pow(2,f-d)},b.write=function(a,b,c,d,e,f){var g,h,i,j=8*f-e-1,k=(1<<j)-1,l=k>>1,m=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,n=d?0:f-1,o=d?1:-1,p=0>b||0===b&&0>1/b?1:0;for(b=Math.abs(b),isNaN(b)||b===1/0?(h=isNaN(b)?1:0,g=k):(g=Math.floor(Math.log(b)/Math.LN2),b*(i=Math.pow(2,-g))<1&&(g--,i*=2),b+=g+l>=1?m/i:m*Math.pow(2,1-l),b*i>=2&&(g++,i/=2),g+l>=k?(h=0,g=k):g+l>=1?(h=(b*i-1)*Math.pow(2,e),g+=l):(h=b*Math.pow(2,l-1)*Math.pow(2,e),g=0));e>=8;a[c+n]=255&h,n+=o,h/=256,e-=8);for(g=g<<e|h,j+=e;j>0;a[c+n]=255&g,n+=o,g/=256,j-=8);a[c+n-o]|=128*p}},function(a,b){var c=Array.isArray,d=Object.prototype.toString;a.exports=c||function(a){return!!a&&"[object Array]"==d.call(a)}},function(a,b,c){"use strict";function d(a){this.fontDescriptors=a}function e(a){if(!a)return null;if("number"==typeof a||a instanceof Number)a={left:a,right:a,top:a,bottom:a};else if(a instanceof Array)if(2===a.length)a={left:a[0],top:a[1],right:a[0],bottom:a[1]};else{if(4!==a.length)throw"Invalid pageMargins definition";a={left:a[0],top:a[1],right:a[2],bottom:a[3]}}return a}function f(a){a.registerTableLayouts({noBorders:{hLineWidth:function(a){return 0},vLineWidth:function(a){return 0},paddingLeft:function(a){return a&&4||0},paddingRight:function(a,b){return a<b.table.widths.length-1?4:0}},headerLineOnly:{hLineWidth:function(a,b){return 0===a||a===b.table.body.length?0:a===b.table.headerRows?2:0},vLineWidth:function(a){return 0},paddingLeft:function(a){return 0===a?0:8},paddingRight:function(a,b){return a===b.table.widths.length-1?0:8}},lightHorizontalLines:{hLineWidth:function(a,b){return 0===a||a===b.table.body.length?0:a===b.table.headerRows?2:1},vLineWidth:function(a){return 0},hLineColor:function(a){return 1===a?"black":"#aaa"},paddingLeft:function(a){return 0===a?0:8},paddingRight:function(a,b){return a===b.table.widths.length-1?0:8}}})}function g(a){if("string"==typeof a||a instanceof String){var b=q[a.toUpperCase()];if(!b)throw"Page size "+a+" not recognized";return{width:b[0],height:b[1]}}return a}function h(a,b){var c=b.options.size[0]>b.options.size[1]?"landscape":"portrait";if(a.pageSize.orientation!==c){var d=b.options.size[0],e=b.options.size[1];b.options.size=[e,d]}}function i(a,b,c){c._pdfMakePages=a;for(var d=0;d<a.length;d++){d>0&&(h(a[d],c),c.addPage(c.options));for(var e=a[d],f=0,g=e.items.length;g>f;f++){var i=e.items[f];switch(i.type){case"vector":l(i.item,c);break;case"line":j(i.item,i.item.x,i.item.y,c);break;case"image":m(i.item,i.item.x,i.item.y,c)}}e.watermark&&k(e,c),b.setFontRefsToPdfDoc()}}function j(a,b,c,d){b=b||0,c=c||0;var e=a.getHeight(),f=a.getAscenderHeight();s.drawBackground(a,b,c,d);for(var g=0,h=a.inlines.length;h>g;g++){var i=a.inlines[g];d.fill(i.color||"black"),d.save(),d.transform(1,0,0,-1,0,d.page.height);var j=i.font.encode(i.text);d.addContent("BT"),d.addContent(""+(b+i.x)+" "+(d.page.height-c-f)+" Td"),d.addContent("/"+j.fontId+" "+i.fontSize+" Tf"),d.addContent("<"+j.encodedText+"> Tj"),d.addContent("ET"),i.link&&d.link(b+i.x,d.page.height-c-e,i.width,e,i.link),d.restore()}s.drawDecorations(a,b,c,d)}function k(a,b){var c=a.watermark;b.fill("black"),b.opacity(.6),b.save(),b.transform(1,0,0,-1,0,b.page.height);var d=180*Math.atan2(b.page.height,b.page.width)/Math.PI;b.rotate(d,{origin:[b.page.width/2,b.page.height/2]});var e=c.font.encode(c.text);b.addContent("BT"),b.addContent(""+(b.page.width/2-c.size.size.width/2)+" "+(b.page.height/2-c.size.size.height/4)+" Td"),b.addContent("/"+e.fontId+" "+c.size.fontSize+" Tf"),b.addContent("<"+e.encodedText+"> Tj"),b.addContent("ET"),b.restore()}function l(a,b){switch(b.lineWidth(a.lineWidth||1),a.dash?b.dash(a.dash.length,{space:a.dash.space||a.dash.length}):b.undash(),b.fillOpacity(a.fillOpacity||1),b.strokeOpacity(a.strokeOpacity||1),b.lineJoin(a.lineJoin||"miter"),a.type){case"ellipse":b.ellipse(a.x,a.y,a.r1,a.r2);break;case"rect":a.r?b.roundedRect(a.x,a.y,a.w,a.h,a.r):b.rect(a.x,a.y,a.w,a.h);break;case"line":b.moveTo(a.x1,a.y1),b.lineTo(a.x2,a.y2);break;case"polyline":if(0===a.points.length)break;b.moveTo(a.points[0].x,a.points[0].y);for(var c=1,d=a.points.length;d>c;c++)b.lineTo(a.points[c].x,a.points[c].y);if(a.points.length>1){var e=a.points[0],f=a.points[a.points.length-1];(a.closePath||e.x===f.x&&e.y===f.y)&&b.closePath()}}a.color&&a.lineColor?b.fillAndStroke(a.color,a.lineColor):a.color?b.fill(a.color):b.stroke(a.lineColor||"black")}function m(a,b,c,d){d.image(a.image,a.x,a.y,{width:a._width,height:a._height})}var n=(c(7),c(9)),o=c(11),p=c(24),q=(c(46),c(102)),r=c(103),s=c(104),n=c(9);d.prototype.createPdfKitDocument=function(a,b){b=b||{};var c=g(a.pageSize||"a4");if("landscape"===a.pageOrientation&&(c={width:c.height,height:c.width}),c.orientation="landscape"===a.pageOrientation?a.pageOrientation:"portrait",this.pdfKitDoc=new p({size:[c.width,c.height],compress:!1}),this.pdfKitDoc.info.Producer="pdfmake",this.pdfKitDoc.info.Creator="pdfmake",a.info){a.info;this.pdfKitDoc.info.Title=a.info.title?a.info.title:null,this.pdfKitDoc.info.Author=a.info.author?a.info.author:null,this.pdfKitDoc.info.Subject=a.info.subject?a.info.subject:null,this.pdfKitDoc.info.Keywords=a.info.keywords?a.info.keywords:null}this.fontProvider=new n(this.fontDescriptors,this.pdfKitDoc),a.images=a.images||{};var d=new o(c,e(a.pageMargins||40),new r(this.pdfKitDoc,a.images));f(d),b.tableLayouts&&d.registerTableLayouts(b.tableLayouts);var h=d.layoutDocument(a.content,this.fontProvider,a.styles||{},a.defaultStyle||{fontSize:12,font:"Roboto"},a.background,a.header,a.footer,a.images,a.watermark,a.pageBreakBefore);if(i(h,this.fontProvider,this.pdfKitDoc),b.autoPrint){var j=this.pdfKitDoc.ref({Type:"Action",S:"Named",N:"Print"});this.pdfKitDoc._root.data.OpenAction=j,j.end()}return this.pdfKitDoc};a.exports=d,d.prototype.fs=c(44)},function(a,b,c){var d;(function(a,e){(function(){function f(a,b){if(a!==b){var c=null===a,d=a===B,e=a===a,f=null===b,g=b===B,h=b===b;if(a>b&&!f||!e||c&&!g&&h||d&&h)return 1;
-if(b>a&&!c||!h||f&&!d&&e||g&&e)return-1}return 0}function g(a,b,c){for(var d=a.length,e=c?d:-1;c?e--:++e<d;)if(b(a[e],e,a))return e;return-1}function h(a,b,c){if(b!==b)return s(a,c);for(var d=c-1,e=a.length;++d<e;)if(a[d]===b)return d;return-1}function i(a){return"function"==typeof a||!1}function j(a){return null==a?"":a+""}function k(a,b){for(var c=-1,d=a.length;++c<d&&b.indexOf(a.charAt(c))>-1;);return c}function l(a,b){for(var c=a.length;c--&&b.indexOf(a.charAt(c))>-1;);return c}function m(a,b){return f(a.criteria,b.criteria)||a.index-b.index}function n(a,b,c){for(var d=-1,e=a.criteria,g=b.criteria,h=e.length,i=c.length;++d<h;){var j=f(e[d],g[d]);if(j){if(d>=i)return j;var k=c[d];return j*("asc"===k||k===!0?1:-1)}}return a.index-b.index}function o(a){return Ua[a]}function p(a){return Va[a]}function q(a,b,c){return b?a=Ya[a]:c&&(a=Za[a]),"\\"+a}function r(a){return"\\"+Za[a]}function s(a,b,c){for(var d=a.length,e=b+(c?0:-1);c?e--:++e<d;){var f=a[e];if(f!==f)return e}return-1}function t(a){return!!a&&"object"==typeof a}function u(a){return 160>=a&&a>=9&&13>=a||32==a||160==a||5760==a||6158==a||a>=8192&&(8202>=a||8232==a||8233==a||8239==a||8287==a||12288==a||65279==a)}function v(a,b){for(var c=-1,d=a.length,e=-1,f=[];++c<d;)a[c]===b&&(a[c]=U,f[++e]=c);return f}function w(a,b){for(var c,d=-1,e=a.length,f=-1,g=[];++d<e;){var h=a[d],i=b?b(h,d,a):h;d&&c===i||(c=i,g[++f]=h)}return g}function x(a){for(var b=-1,c=a.length;++b<c&&u(a.charCodeAt(b)););return b}function y(a){for(var b=a.length;b--&&u(a.charCodeAt(b)););return b}function z(a){return Wa[a]}function A(a){function b(a){if(t(a)&&!Ch(a)&&!(a instanceof e)){if(a instanceof d)return a;if(ag.call(a,"__chain__")&&ag.call(a,"__wrapped__"))return md(a)}return new d(a)}function c(){}function d(a,b,c){this.__wrapped__=a,this.__actions__=c||[],this.__chain__=!!b}function e(a){this.__wrapped__=a,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Bg,this.__views__=[]}function u(){var a=new e(this.__wrapped__);return a.__actions__=ab(this.__actions__),a.__dir__=this.__dir__,a.__filtered__=this.__filtered__,a.__iteratees__=ab(this.__iteratees__),a.__takeCount__=this.__takeCount__,a.__views__=ab(this.__views__),a}function _(){if(this.__filtered__){var a=new e(this);a.__dir__=-1,a.__filtered__=!0}else a=this.clone(),a.__dir__*=-1;return a}function da(){var a=this.__wrapped__.value(),b=this.__dir__,c=Ch(a),d=0>b,e=c?a.length:0,f=Tc(0,e,this.__views__),g=f.start,h=f.end,i=h-g,j=d?h:g-1,k=this.__iteratees__,l=k.length,m=0,n=wg(i,this.__takeCount__);if(!c||Q>e||e==i&&n==i)return cc(d&&c?a.reverse():a,this.__actions__);var o=[];a:for(;i--&&n>m;){j+=b;for(var p=-1,q=a[j];++p<l;){var r=k[p],s=r.iteratee,t=r.type,u=s(q);if(t==S)q=u;else if(!u){if(t==R)continue a;break a}}o[m++]=q}return o}function fa(){this.__data__={}}function Ua(a){return this.has(a)&&delete this.__data__[a]}function Va(a){return"__proto__"==a?B:this.__data__[a]}function Wa(a){return"__proto__"!=a&&ag.call(this.__data__,a)}function Xa(a,b){return"__proto__"!=a&&(this.__data__[a]=b),this}function Ya(a){var b=a?a.length:0;for(this.data={hash:qg(null),set:new kg};b--;)this.push(a[b])}function Za(a,b){var c=a.data,d="string"==typeof b||He(b)?c.set.has(b):c.hash[b];return d?0:-1}function $a(a){var b=this.data;"string"==typeof a||He(a)?b.set.add(a):b.hash[a]=!0}function _a(a,b){for(var c=-1,d=a.length,e=-1,f=b.length,g=Of(d+f);++c<d;)g[c]=a[c];for(;++e<f;)g[c++]=b[e];return g}function ab(a,b){var c=-1,d=a.length;for(b||(b=Of(d));++c<d;)b[c]=a[c];return b}function bb(a,b){for(var c=-1,d=a.length;++c<d&&b(a[c],c,a)!==!1;);return a}function cb(a,b){for(var c=a.length;c--&&b(a[c],c,a)!==!1;);return a}function fb(a,b){for(var c=-1,d=a.length;++c<d;)if(!b(a[c],c,a))return!1;return!0}function gb(a,b,c,d){for(var e=-1,f=a.length,g=d,h=g;++e<f;){var i=a[e],j=+b(i);c(j,g)&&(g=j,h=i)}return h}function hb(a,b){for(var c=-1,d=a.length,e=-1,f=[];++c<d;){var g=a[c];b(g,c,a)&&(f[++e]=g)}return f}function ib(a,b){for(var c=-1,d=a.length,e=Of(d);++c<d;)e[c]=b(a[c],c,a);return e}function jb(a,b){for(var c=-1,d=b.length,e=a.length;++c<d;)a[e+c]=b[c];return a}function kb(a,b,c,d){var e=-1,f=a.length;for(d&&f&&(c=a[++e]);++e<f;)c=b(c,a[e],e,a);return c}function lb(a,b,c,d){var e=a.length;for(d&&e&&(c=a[--e]);e--;)c=b(c,a[e],e,a);return c}function mb(a,b){for(var c=-1,d=a.length;++c<d;)if(b(a[c],c,a))return!0;return!1}function nb(a,b){for(var c=a.length,d=0;c--;)d+=+b(a[c])||0;return d}function ob(a,b){return a===B?b:a}function pb(a,b,c,d){return a!==B&&ag.call(d,c)?a:b}function qb(a,b,c){for(var d=-1,e=Nh(b),f=e.length;++d<f;){var g=e[d],h=a[g],i=c(h,b[g],g,a,b);(i===i?i===h:h!==h)&&(h!==B||g in a)||(a[g]=i)}return a}function rb(a,b){return null==b?a:tb(b,Nh(b),a)}function sb(a,b){for(var c=-1,d=null==a,e=!d&&Yc(a),f=e?a.length:0,g=b.length,h=Of(g);++c<g;){var i=b[c];e?h[c]=Zc(i,f)?a[i]:B:h[c]=d?B:a[i]}return h}function tb(a,b,c){c||(c={});for(var d=-1,e=b.length;++d<e;){var f=b[d];c[f]=a[f]}return c}function ub(a,b,c){var d=typeof a;return"function"==d?b===B?a:fc(a,b,c):null==a?Bf:"object"==d?Nb(a):b===B?Hf(a):Ob(a,b)}function vb(a,b,c,d,e,f,g){var h;if(c&&(h=e?c(a,d,e):c(a)),h!==B)return h;if(!He(a))return a;var i=Ch(a);if(i){if(h=Uc(a),!b)return ab(a,h)}else{var j=cg.call(a),k=j==$;if(j!=ba&&j!=V&&(!k||e))return Ta[j]?Wc(a,j,b):e?a:{};if(h=Vc(k?{}:a),!b)return rb(h,a)}f||(f=[]),g||(g=[]);for(var l=f.length;l--;)if(f[l]==a)return g[l];return f.push(a),g.push(h),(i?bb:Fb)(a,function(d,e){h[e]=vb(d,b,c,e,a,f,g)}),h}function wb(a,b,c){if("function"!=typeof a)throw new Xf(T);return lg(function(){a.apply(B,c)},b)}function xb(a,b){var c=a?a.length:0,d=[];if(!c)return d;var e=-1,f=Qc(),g=f==h,i=g&&b.length>=Q?oc(b):null,j=b.length;i&&(f=Za,g=!1,b=i);a:for(;++e<c;){var k=a[e];if(g&&k===k){for(var l=j;l--;)if(b[l]===k)continue a;d.push(k)}else f(b,k,0)<0&&d.push(k)}return d}function yb(a,b){var c=!0;return Jg(a,function(a,d,e){return c=!!b(a,d,e)}),c}function zb(a,b,c,d){var e=d,f=e;return Jg(a,function(a,g,h){var i=+b(a,g,h);(c(i,e)||i===d&&i===f)&&(e=i,f=a)}),f}function Ab(a,b,c,d){var e=a.length;for(c=null==c?0:+c||0,0>c&&(c=-c>e?0:e+c),d=d===B||d>e?e:+d||0,0>d&&(d+=e),e=c>d?0:d>>>0,c>>>=0;e>c;)a[c++]=b;return a}function Bb(a,b){var c=[];return Jg(a,function(a,d,e){b(a,d,e)&&c.push(a)}),c}function Cb(a,b,c,d){var e;return c(a,function(a,c,f){return b(a,c,f)?(e=d?c:a,!1):void 0}),e}function Db(a,b,c,d){d||(d=[]);for(var e=-1,f=a.length;++e<f;){var g=a[e];t(g)&&Yc(g)&&(c||Ch(g)||ye(g))?b?Db(g,b,c,d):jb(d,g):c||(d[d.length]=g)}return d}function Eb(a,b){return Lg(a,b,_e)}function Fb(a,b){return Lg(a,b,Nh)}function Gb(a,b){return Mg(a,b,Nh)}function Hb(a,b){for(var c=-1,d=b.length,e=-1,f=[];++c<d;){var g=b[c];Ge(a[g])&&(f[++e]=g)}return f}function Ib(a,b,c){if(null!=a){c!==B&&c in kd(a)&&(b=[c]);for(var d=0,e=b.length;null!=a&&e>d;)a=a[b[d++]];return d&&d==e?a:B}}function Jb(a,b,c,d,e,f){return a===b?!0:null==a||null==b||!He(a)&&!t(b)?a!==a&&b!==b:Kb(a,b,Jb,c,d,e,f)}function Kb(a,b,c,d,e,f,g){var h=Ch(a),i=Ch(b),j=W,k=W;h||(j=cg.call(a),j==V?j=ba:j!=ba&&(h=Qe(a))),i||(k=cg.call(b),k==V?k=ba:k!=ba&&(i=Qe(b)));var l=j==ba,m=k==ba,n=j==k;if(n&&!h&&!l)return Mc(a,b,j);if(!e){var o=l&&ag.call(a,"__wrapped__"),p=m&&ag.call(b,"__wrapped__");if(o||p)return c(o?a.value():a,p?b.value():b,d,e,f,g)}if(!n)return!1;f||(f=[]),g||(g=[]);for(var q=f.length;q--;)if(f[q]==a)return g[q]==b;f.push(a),g.push(b);var r=(h?Lc:Nc)(a,b,c,d,e,f,g);return f.pop(),g.pop(),r}function Lb(a,b,c){var d=b.length,e=d,f=!c;if(null==a)return!e;for(a=kd(a);d--;){var g=b[d];if(f&&g[2]?g[1]!==a[g[0]]:!(g[0]in a))return!1}for(;++d<e;){g=b[d];var h=g[0],i=a[h],j=g[1];if(f&&g[2]){if(i===B&&!(h in a))return!1}else{var k=c?c(i,j,h):B;if(!(k===B?Jb(j,i,c,!0):k))return!1}}return!0}function Mb(a,b){var c=-1,d=Yc(a)?Of(a.length):[];return Jg(a,function(a,e,f){d[++c]=b(a,e,f)}),d}function Nb(a){var b=Rc(a);if(1==b.length&&b[0][2]){var c=b[0][0],d=b[0][1];return function(a){return null==a?!1:a[c]===d&&(d!==B||c in kd(a))}}return function(a){return Lb(a,b)}}function Ob(a,b){var c=Ch(a),d=_c(a)&&cd(b),e=a+"";return a=ld(a),function(f){if(null==f)return!1;var g=e;if(f=kd(f),(c||!d)&&!(g in f)){if(f=1==a.length?f:Ib(f,Wb(a,0,-1)),null==f)return!1;g=zd(a),f=kd(f)}return f[g]===b?b!==B||g in f:Jb(b,f[g],B,!0)}}function Pb(a,b,c,d,e){if(!He(a))return a;var f=Yc(b)&&(Ch(b)||Qe(b)),g=f?B:Nh(b);return bb(g||b,function(h,i){if(g&&(i=h,h=b[i]),t(h))d||(d=[]),e||(e=[]),Qb(a,b,i,Pb,c,d,e);else{var j=a[i],k=c?c(j,h,i,a,b):B,l=k===B;l&&(k=h),k===B&&(!f||i in a)||!l&&(k===k?k===j:j!==j)||(a[i]=k)}}),a}function Qb(a,b,c,d,e,f,g){for(var h=f.length,i=b[c];h--;)if(f[h]==i)return void(a[c]=g[h]);var j=a[c],k=e?e(j,i,c,a,b):B,l=k===B;l&&(k=i,Yc(i)&&(Ch(i)||Qe(i))?k=Ch(j)?j:Yc(j)?ab(j):[]:Ne(i)||ye(i)?k=ye(j)?Ve(j):Ne(j)?j:{}:l=!1),f.push(i),g.push(k),l?a[c]=d(k,i,e,f,g):(k===k?k!==j:j===j)&&(a[c]=k)}function Rb(a){return function(b){return null==b?B:b[a]}}function Sb(a){var b=a+"";return a=ld(a),function(c){return Ib(c,a,b)}}function Tb(a,b){for(var c=a?b.length:0;c--;){var d=b[c];if(d!=e&&Zc(d)){var e=d;mg.call(a,d,1)}}return a}function Ub(a,b){return a+rg(zg()*(b-a+1))}function Vb(a,b,c,d,e){return e(a,function(a,e,f){c=d?(d=!1,a):b(c,a,e,f)}),c}function Wb(a,b,c){var d=-1,e=a.length;b=null==b?0:+b||0,0>b&&(b=-b>e?0:e+b),c=c===B||c>e?e:+c||0,0>c&&(c+=e),e=b>c?0:c-b>>>0,b>>>=0;for(var f=Of(e);++d<e;)f[d]=a[d+b];return f}function Xb(a,b){var c;return Jg(a,function(a,d,e){return c=b(a,d,e),!c}),!!c}function Yb(a,b){var c=a.length;for(a.sort(b);c--;)a[c]=a[c].value;return a}function Zb(a,b,c){var d=Oc(),e=-1;b=ib(b,function(a){return d(a)});var f=Mb(a,function(a){var c=ib(b,function(b){return b(a)});return{criteria:c,index:++e,value:a}});return Yb(f,function(a,b){return n(a,b,c)})}function $b(a,b){var c=0;return Jg(a,function(a,d,e){c+=+b(a,d,e)||0}),c}function _b(a,b){var c=-1,d=Qc(),e=a.length,f=d==h,g=f&&e>=Q,i=g?oc():null,j=[];i?(d=Za,f=!1):(g=!1,i=b?[]:j);a:for(;++c<e;){var k=a[c],l=b?b(k,c,a):k;if(f&&k===k){for(var m=i.length;m--;)if(i[m]===l)continue a;b&&i.push(l),j.push(k)}else d(i,l,0)<0&&((b||g)&&i.push(l),j.push(k))}return j}function ac(a,b){for(var c=-1,d=b.length,e=Of(d);++c<d;)e[c]=a[b[c]];return e}function bc(a,b,c,d){for(var e=a.length,f=d?e:-1;(d?f--:++f<e)&&b(a[f],f,a););return c?Wb(a,d?0:f,d?f+1:e):Wb(a,d?f+1:0,d?e:f)}function cc(a,b){var c=a;c instanceof e&&(c=c.value());for(var d=-1,f=b.length;++d<f;){var g=b[d];c=g.func.apply(g.thisArg,jb([c],g.args))}return c}function dc(a,b,c){var d=0,e=a?a.length:d;if("number"==typeof b&&b===b&&Eg>=e){for(;e>d;){var f=d+e>>>1,g=a[f];(c?b>=g:b>g)&&null!==g?d=f+1:e=f}return e}return ec(a,b,Bf,c)}function ec(a,b,c,d){b=c(b);for(var e=0,f=a?a.length:0,g=b!==b,h=null===b,i=b===B;f>e;){var j=rg((e+f)/2),k=c(a[j]),l=k!==B,m=k===k;if(g)var n=m||d;else n=h?m&&l&&(d||null!=k):i?m&&(d||l):null==k?!1:d?b>=k:b>k;n?e=j+1:f=j}return wg(f,Dg)}function fc(a,b,c){if("function"!=typeof a)return Bf;if(b===B)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 3:return function(c,d,e){return a.call(b,c,d,e)};case 4:return function(c,d,e,f){return a.call(b,c,d,e,f)};case 5:return function(c,d,e,f,g){return a.call(b,c,d,e,f,g)}}return function(){return a.apply(b,arguments)}}function gc(a){var b=new fg(a.byteLength),c=new ng(b);return c.set(new ng(a)),b}function hc(a,b,c){for(var d=c.length,e=-1,f=vg(a.length-d,0),g=-1,h=b.length,i=Of(h+f);++g<h;)i[g]=b[g];for(;++e<d;)i[c[e]]=a[e];for(;f--;)i[g++]=a[e++];return i}function ic(a,b,c){for(var d=-1,e=c.length,f=-1,g=vg(a.length-e,0),h=-1,i=b.length,j=Of(g+i);++f<g;)j[f]=a[f];for(var k=f;++h<i;)j[k+h]=b[h];for(;++d<e;)j[k+c[d]]=a[f++];return j}function jc(a,b){return function(c,d,e){var f=b?b():{};if(d=Oc(d,e,3),Ch(c))for(var g=-1,h=c.length;++g<h;){var i=c[g];a(f,i,d(i,g,c),c)}else Jg(c,function(b,c,e){a(f,b,d(b,c,e),e)});return f}}function kc(a){return qe(function(b,c){var d=-1,e=null==b?0:c.length,f=e>2?c[e-2]:B,g=e>2?c[2]:B,h=e>1?c[e-1]:B;for("function"==typeof f?(f=fc(f,h,5),e-=2):(f="function"==typeof h?h:B,e-=f?1:0),g&&$c(c[0],c[1],g)&&(f=3>e?B:f,e=1);++d<e;){var i=c[d];i&&a(b,i,f)}return b})}function lc(a,b){return function(c,d){var e=c?Pg(c):0;if(!bd(e))return a(c,d);for(var f=b?e:-1,g=kd(c);(b?f--:++f<e)&&d(g[f],f,g)!==!1;);return c}}function mc(a){return function(b,c,d){for(var e=kd(b),f=d(b),g=f.length,h=a?g:-1;a?h--:++h<g;){var i=f[h];if(c(e[i],i,e)===!1)break}return b}}function nc(a,b){function c(){var e=this&&this!==db&&this instanceof c?d:a;return e.apply(b,arguments)}var d=qc(a);return c}function oc(a){return qg&&kg?new Ya(a):null}function pc(a){return function(b){for(var c=-1,d=yf(kf(b)),e=d.length,f="";++c<e;)f=a(f,d[c],c);return f}}function qc(a){return function(){var b=arguments;switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3]);case 5:return new a(b[0],b[1],b[2],b[3],b[4]);case 6:return new a(b[0],b[1],b[2],b[3],b[4],b[5]);case 7:return new a(b[0],b[1],b[2],b[3],b[4],b[5],b[6])}var c=Ig(a.prototype),d=a.apply(c,b);return He(d)?d:c}}function rc(a){function b(c,d,e){e&&$c(c,d,e)&&(d=B);var f=Kc(c,a,B,B,B,B,B,d);return f.placeholder=b.placeholder,f}return b}function sc(a,b){return qe(function(c){var d=c[0];return null==d?d:(c.push(b),a.apply(B,c))})}function tc(a,b){return function(c,d,e){if(e&&$c(c,d,e)&&(d=B),d=Oc(d,e,3),1==d.length){c=Ch(c)?c:jd(c);var f=gb(c,d,a,b);if(!c.length||f!==b)return f}return zb(c,d,a,b)}}function uc(a,b){return function(c,d,e){if(d=Oc(d,e,3),Ch(c)){var f=g(c,d,b);return f>-1?c[f]:B}return Cb(c,d,a)}}function vc(a){return function(b,c,d){return b&&b.length?(c=Oc(c,d,3),g(b,c,a)):-1}}function wc(a){return function(b,c,d){return c=Oc(c,d,3),Cb(b,c,a,!0)}}function xc(a){return function(){for(var b,c=arguments.length,e=a?c:-1,f=0,g=Of(c);a?e--:++e<c;){var h=g[f++]=arguments[e];if("function"!=typeof h)throw new Xf(T);!b&&d.prototype.thru&&"wrapper"==Pc(h)&&(b=new d([],!0))}for(e=b?-1:c;++e<c;){h=g[e];var i=Pc(h),j="wrapper"==i?Og(h):B;b=j&&ad(j[0])&&j[1]==(K|G|I|L)&&!j[4].length&&1==j[9]?b[Pc(j[0])].apply(b,j[3]):1==h.length&&ad(h)?b[i]():b.thru(h)}return function(){var a=arguments,d=a[0];if(b&&1==a.length&&Ch(d)&&d.length>=Q)return b.plant(d).value();for(var e=0,f=c?g[e].apply(this,a):d;++e<c;)f=g[e].call(this,f);return f}}}function yc(a,b){return function(c,d,e){return"function"==typeof d&&e===B&&Ch(c)?a(c,d):b(c,fc(d,e,3))}}function zc(a){return function(b,c,d){return("function"!=typeof c||d!==B)&&(c=fc(c,d,3)),a(b,c,_e)}}function Ac(a){return function(b,c,d){return("function"!=typeof c||d!==B)&&(c=fc(c,d,3)),a(b,c)}}function Bc(a){return function(b,c,d){var e={};return c=Oc(c,d,3),Fb(b,function(b,d,f){var g=c(b,d,f);d=a?g:d,b=a?b:g,e[d]=b}),e}}function Cc(a){return function(b,c,d){return b=j(b),(a?b:"")+Gc(b,c,d)+(a?"":b)}}function Dc(a){var b=qe(function(c,d){var e=v(d,b.placeholder);return Kc(c,a,B,d,e)});return b}function Ec(a,b){return function(c,d,e,f){var g=arguments.length<3;return"function"==typeof d&&f===B&&Ch(c)?a(c,d,e,g):Vb(c,Oc(d,f,4),e,g,b)}}function Fc(a,b,c,d,e,f,g,h,i,j){function k(){for(var s=arguments.length,t=s,u=Of(s);t--;)u[t]=arguments[t];if(d&&(u=hc(u,d,e)),f&&(u=ic(u,f,g)),o||q){var w=k.placeholder,x=v(u,w);if(s-=x.length,j>s){var y=h?ab(h):B,z=vg(j-s,0),A=o?x:B,C=o?B:x,F=o?u:B,G=o?B:u;b|=o?I:J,b&=~(o?J:I),p||(b&=~(D|E));var H=[a,b,c,F,A,G,C,y,i,z],K=Fc.apply(B,H);return ad(a)&&Qg(K,H),K.placeholder=w,K}}var L=m?c:this,M=n?L[a]:a;return h&&(u=hd(u,h)),l&&i<u.length&&(u.length=i),this&&this!==db&&this instanceof k&&(M=r||qc(a)),M.apply(L,u)}var l=b&K,m=b&D,n=b&E,o=b&G,p=b&F,q=b&H,r=n?B:qc(a);return k}function Gc(a,b,c){var d=a.length;if(b=+b,d>=b||!tg(b))return"";var e=b-d;return c=null==c?" ":c+"",qf(c,pg(e/c.length)).slice(0,e)}function Hc(a,b,c,d){function e(){for(var b=-1,h=arguments.length,i=-1,j=d.length,k=Of(j+h);++i<j;)k[i]=d[i];for(;h--;)k[i++]=arguments[++b];var l=this&&this!==db&&this instanceof e?g:a;return l.apply(f?c:this,k)}var f=b&D,g=qc(a);return e}function Ic(a){var b=Sf[a];return function(a,c){return c=c===B?0:+c||0,c?(c=ig(10,c),b(a*c)/c):b(a)}}function Jc(a){return function(b,c,d,e){var f=Oc(d);return null==d&&f===ub?dc(b,c,a):ec(b,c,f(d,e,1),a)}}function Kc(a,b,c,d,e,f,g,h){var i=b&E;if(!i&&"function"!=typeof a)throw new Xf(T);var j=d?d.length:0;if(j||(b&=~(I|J),d=e=B),j-=e?e.length:0,b&J){var k=d,l=e;d=e=B}var m=i?B:Og(a),n=[a,b,c,d,e,k,l,f,g,h];if(m&&(dd(n,m),b=n[1],h=n[9]),n[9]=null==h?i?0:a.length:vg(h-j,0)||0,b==D)var o=nc(n[0],n[2]);else o=b!=I&&b!=(D|I)||n[4].length?Fc.apply(B,n):Hc.apply(B,n);var p=m?Ng:Qg;return p(o,n)}function Lc(a,b,c,d,e,f,g){var h=-1,i=a.length,j=b.length;if(i!=j&&!(e&&j>i))return!1;for(;++h<i;){var k=a[h],l=b[h],m=d?d(e?l:k,e?k:l,h):B;if(m!==B){if(m)continue;return!1}if(e){if(!mb(b,function(a){return k===a||c(k,a,d,e,f,g)}))return!1}else if(k!==l&&!c(k,l,d,e,f,g))return!1}return!0}function Mc(a,b,c){switch(c){case X:case Y:return+a==+b;case Z:return a.name==b.name&&a.message==b.message;case aa:return a!=+a?b!=+b:a==+b;case ca:case ea:return a==b+""}return!1}function Nc(a,b,c,d,e,f,g){var h=Nh(a),i=h.length,j=Nh(b),k=j.length;if(i!=k&&!e)return!1;for(var l=i;l--;){var m=h[l];if(!(e?m in b:ag.call(b,m)))return!1}for(var n=e;++l<i;){m=h[l];var o=a[m],p=b[m],q=d?d(e?p:o,e?o:p,m):B;if(!(q===B?c(o,p,d,e,f,g):q))return!1;n||(n="constructor"==m)}if(!n){var r=a.constructor,s=b.constructor;if(r!=s&&"constructor"in a&&"constructor"in b&&!("function"==typeof r&&r instanceof r&&"function"==typeof s&&s instanceof s))return!1}return!0}function Oc(a,c,d){var e=b.callback||zf;return e=e===zf?ub:e,d?e(a,c,d):e}function Pc(a){for(var b=a.name,c=Hg[b],d=c?c.length:0;d--;){var e=c[d],f=e.func;if(null==f||f==a)return e.name}return b}function Qc(a,c,d){var e=b.indexOf||xd;return e=e===xd?h:e,a?e(a,c,d):e}function Rc(a){for(var b=af(a),c=b.length;c--;)b[c][2]=cd(b[c][1]);return b}function Sc(a,b){var c=null==a?B:a[b];return Ke(c)?c:B}function Tc(a,b,c){for(var d=-1,e=c.length;++d<e;){var f=c[d],g=f.size;switch(f.type){case"drop":a+=g;break;case"dropRight":b-=g;break;case"take":b=wg(b,a+g);break;case"takeRight":a=vg(a,b-g)}}return{start:a,end:b}}function Uc(a){var b=a.length,c=new a.constructor(b);return b&&"string"==typeof a[0]&&ag.call(a,"index")&&(c.index=a.index,c.input=a.input),c}function Vc(a){var b=a.constructor;return"function"==typeof b&&b instanceof b||(b=Uf),new b}function Wc(a,b,c){var d=a.constructor;switch(b){case ga:return gc(a);case X:case Y:return new d(+a);case ha:case ia:case ja:case ka:case la:case ma:case na:case oa:case pa:var e=a.buffer;return new d(c?gc(e):e,a.byteOffset,a.length);case aa:case ea:return new d(a);case ca:var f=new d(a.source,Ia.exec(a));f.lastIndex=a.lastIndex}return f}function Xc(a,b,c){null==a||_c(b,a)||(b=ld(b),a=1==b.length?a:Ib(a,Wb(b,0,-1)),b=zd(b));var d=null==a?a:a[b];return null==d?B:d.apply(a,c)}function Yc(a){return null!=a&&bd(Pg(a))}function Zc(a,b){return a="number"==typeof a||La.test(a)?+a:-1,b=null==b?Fg:b,a>-1&&a%1==0&&b>a}function $c(a,b,c){if(!He(c))return!1;var d=typeof b;if("number"==d?Yc(c)&&Zc(b,c.length):"string"==d&&b in c){var e=c[b];return a===a?a===e:e!==e}return!1}function _c(a,b){var c=typeof a;if("string"==c&&Ba.test(a)||"number"==c)return!0;if(Ch(a))return!1;var d=!Aa.test(a);return d||null!=b&&a in kd(b)}function ad(a){var c=Pc(a);if(!(c in e.prototype))return!1;var d=b[c];if(a===d)return!0;var f=Og(d);return!!f&&a===f[0]}function bd(a){return"number"==typeof a&&a>-1&&a%1==0&&Fg>=a}function cd(a){return a===a&&!He(a)}function dd(a,b){var c=a[1],d=b[1],e=c|d,f=K>e,g=d==K&&c==G||d==K&&c==L&&a[7].length<=b[8]||d==(K|L)&&c==G;if(!f&&!g)return a;d&D&&(a[2]=b[2],e|=c&D?0:F);var h=b[3];if(h){var i=a[3];a[3]=i?hc(i,h,b[4]):ab(h),a[4]=i?v(a[3],U):ab(b[4])}return h=b[5],h&&(i=a[5],a[5]=i?ic(i,h,b[6]):ab(h),a[6]=i?v(a[5],U):ab(b[6])),h=b[7],h&&(a[7]=ab(h)),d&K&&(a[8]=null==a[8]?b[8]:wg(a[8],b[8])),null==a[9]&&(a[9]=b[9]),a[0]=b[0],a[1]=e,a}function ed(a,b){return a===B?b:Dh(a,b,ed)}function fd(a,b){a=kd(a);for(var c=-1,d=b.length,e={};++c<d;){var f=b[c];f in a&&(e[f]=a[f])}return e}function gd(a,b){var c={};return Eb(a,function(a,d,e){b(a,d,e)&&(c[d]=a)}),c}function hd(a,b){for(var c=a.length,d=wg(b.length,c),e=ab(a);d--;){var f=b[d];a[d]=Zc(f,c)?e[f]:B}return a}function id(a){for(var b=_e(a),c=b.length,d=c&&a.length,e=!!d&&bd(d)&&(Ch(a)||ye(a)),f=-1,g=[];++f<c;){var h=b[f];(e&&Zc(h,d)||ag.call(a,h))&&g.push(h)}return g}function jd(a){return null==a?[]:Yc(a)?He(a)?a:Uf(a):ef(a)}function kd(a){return He(a)?a:Uf(a)}function ld(a){if(Ch(a))return a;var b=[];return j(a).replace(Ca,function(a,c,d,e){b.push(d?e.replace(Ga,"$1"):c||a)}),b}function md(a){return a instanceof e?a.clone():new d(a.__wrapped__,a.__chain__,ab(a.__actions__))}function nd(a,b,c){b=(c?$c(a,b,c):null==b)?1:vg(rg(b)||1,1);for(var d=0,e=a?a.length:0,f=-1,g=Of(pg(e/b));e>d;)g[++f]=Wb(a,d,d+=b);return g}function od(a){for(var b=-1,c=a?a.length:0,d=-1,e=[];++b<c;){var f=a[b];f&&(e[++d]=f)}return e}function pd(a,b,c){var d=a?a.length:0;return d?((c?$c(a,b,c):null==b)&&(b=1),Wb(a,0>b?0:b)):[]}function qd(a,b,c){var d=a?a.length:0;return d?((c?$c(a,b,c):null==b)&&(b=1),b=d-(+b||0),Wb(a,0,0>b?0:b)):[]}function rd(a,b,c){return a&&a.length?bc(a,Oc(b,c,3),!0,!0):[]}function sd(a,b,c){return a&&a.length?bc(a,Oc(b,c,3),!0):[]}function td(a,b,c,d){var e=a?a.length:0;return e?(c&&"number"!=typeof c&&$c(a,b,c)&&(c=0,d=e),Ab(a,b,c,d)):[]}function ud(a){return a?a[0]:B}function vd(a,b,c){var d=a?a.length:0;return c&&$c(a,b,c)&&(b=!1),d?Db(a,b):[]}function wd(a){var b=a?a.length:0;return b?Db(a,!0):[]}function xd(a,b,c){var d=a?a.length:0;if(!d)return-1;if("number"==typeof c)c=0>c?vg(d+c,0):c;else if(c){var e=dc(a,b);return d>e&&(b===b?b===a[e]:a[e]!==a[e])?e:-1}return h(a,b,c||0)}function yd(a){return qd(a,1)}function zd(a){var b=a?a.length:0;return b?a[b-1]:B}function Ad(a,b,c){var d=a?a.length:0;if(!d)return-1;var e=d;if("number"==typeof c)e=(0>c?vg(d+c,0):wg(c||0,d-1))+1;else if(c){e=dc(a,b,!0)-1;var f=a[e];return(b===b?b===f:f!==f)?e:-1}if(b!==b)return s(a,e,!0);for(;e--;)if(a[e]===b)return e;return-1}function Bd(){var a=arguments,b=a[0];if(!b||!b.length)return b;for(var c=0,d=Qc(),e=a.length;++c<e;)for(var f=0,g=a[c];(f=d(b,g,f))>-1;)mg.call(b,f,1);return b}function Cd(a,b,c){var d=[];if(!a||!a.length)return d;var e=-1,f=[],g=a.length;for(b=Oc(b,c,3);++e<g;){var h=a[e];b(h,e,a)&&(d.push(h),f.push(e))}return Tb(a,f),d}function Dd(a){return pd(a,1)}function Ed(a,b,c){var d=a?a.length:0;return d?(c&&"number"!=typeof c&&$c(a,b,c)&&(b=0,c=d),Wb(a,b,c)):[]}function Fd(a,b,c){var d=a?a.length:0;return d?((c?$c(a,b,c):null==b)&&(b=1),Wb(a,0,0>b?0:b)):[]}function Gd(a,b,c){var d=a?a.length:0;return d?((c?$c(a,b,c):null==b)&&(b=1),b=d-(+b||0),Wb(a,0>b?0:b)):[]}function Hd(a,b,c){return a&&a.length?bc(a,Oc(b,c,3),!1,!0):[]}function Id(a,b,c){return a&&a.length?bc(a,Oc(b,c,3)):[]}function Jd(a,b,c,d){var e=a?a.length:0;if(!e)return[];null!=b&&"boolean"!=typeof b&&(d=c,c=$c(a,b,d)?B:b,b=!1);var f=Oc();return(null!=c||f!==ub)&&(c=f(c,d,3)),b&&Qc()==h?w(a,c):_b(a,c)}function Kd(a){if(!a||!a.length)return[];var b=-1,c=0;a=hb(a,function(a){return Yc(a)?(c=vg(a.length,c),!0):void 0});for(var d=Of(c);++b<c;)d[b]=ib(a,Rb(b));return d}function Ld(a,b,c){var d=a?a.length:0;if(!d)return[];var e=Kd(a);return null==b?e:(b=fc(b,c,4),ib(e,function(a){return kb(a,b,B,!0)}))}function Md(){for(var a=-1,b=arguments.length;++a<b;){var c=arguments[a];if(Yc(c))var d=d?jb(xb(d,c),xb(c,d)):c}return d?_b(d):[]}function Nd(a,b){var c=-1,d=a?a.length:0,e={};for(!d||b||Ch(a[0])||(b=[]);++c<d;){var f=a[c];b?e[f]=b[c]:f&&(e[f[0]]=f[1])}return e}function Od(a){var c=b(a);return c.__chain__=!0,c}function Pd(a,b,c){return b.call(c,a),a}function Qd(a,b,c){return b.call(c,a)}function Rd(){return Od(this)}function Sd(){return new d(this.value(),this.__chain__)}function Td(a){for(var b,d=this;d instanceof c;){var e=md(d);b?f.__wrapped__=e:b=e;var f=e;d=d.__wrapped__}return f.__wrapped__=a,b}function Ud(){var a=this.__wrapped__,b=function(a){return c&&c.__dir__<0?a:a.reverse()};if(a instanceof e){var c=a;return this.__actions__.length&&(c=new e(this)),c=c.reverse(),c.__actions__.push({func:Qd,args:[b],thisArg:B}),new d(c,this.__chain__)}return this.thru(b)}function Vd(){return this.value()+""}function Wd(){return cc(this.__wrapped__,this.__actions__)}function Xd(a,b,c){var d=Ch(a)?fb:yb;return c&&$c(a,b,c)&&(b=B),("function"!=typeof b||c!==B)&&(b=Oc(b,c,3)),d(a,b)}function Yd(a,b,c){var d=Ch(a)?hb:Bb;return b=Oc(b,c,3),d(a,b)}function Zd(a,b){return dh(a,Nb(b))}function $d(a,b,c,d){var e=a?Pg(a):0;return bd(e)||(a=ef(a),e=a.length),c="number"!=typeof c||d&&$c(b,c,d)?0:0>c?vg(e+c,0):c||0,"string"==typeof a||!Ch(a)&&Pe(a)?e>=c&&a.indexOf(b,c)>-1:!!e&&Qc(a,b,c)>-1}function _d(a,b,c){var d=Ch(a)?ib:Mb;return b=Oc(b,c,3),d(a,b)}function ae(a,b){return _d(a,Hf(b))}function be(a,b,c){var d=Ch(a)?hb:Bb;return b=Oc(b,c,3),d(a,function(a,c,d){return!b(a,c,d)})}function ce(a,b,c){if(c?$c(a,b,c):null==b){a=jd(a);var d=a.length;return d>0?a[Ub(0,d-1)]:B}var e=-1,f=Ue(a),d=f.length,g=d-1;for(b=wg(0>b?0:+b||0,d);++e<b;){var h=Ub(e,g),i=f[h];f[h]=f[e],f[e]=i}return f.length=b,f}function de(a){return ce(a,Bg)}function ee(a){var b=a?Pg(a):0;return bd(b)?b:Nh(a).length}function fe(a,b,c){var d=Ch(a)?mb:Xb;return c&&$c(a,b,c)&&(b=B),("function"!=typeof b||c!==B)&&(b=Oc(b,c,3)),d(a,b)}function ge(a,b,c){if(null==a)return[];c&&$c(a,b,c)&&(b=B);var d=-1;b=Oc(b,c,3);var e=Mb(a,function(a,c,e){return{criteria:b(a,c,e),index:++d,value:a}});return Yb(e,m)}function he(a,b,c,d){return null==a?[]:(d&&$c(b,c,d)&&(c=B),Ch(b)||(b=null==b?[]:[b]),Ch(c)||(c=null==c?[]:[c]),Zb(a,b,c))}function ie(a,b){return Yd(a,Nb(b))}function je(a,b){if("function"!=typeof b){if("function"!=typeof a)throw new Xf(T);var c=a;a=b,b=c}return a=tg(a=+a)?a:0,function(){return--a<1?b.apply(this,arguments):void 0}}function ke(a,b,c){return c&&$c(a,b,c)&&(b=B),b=a&&null==b?a.length:vg(+b||0,0),Kc(a,K,B,B,B,B,b)}function le(a,b){var c;if("function"!=typeof b){if("function"!=typeof a)throw new Xf(T);var d=a;a=b,b=d}return function(){return--a>0&&(c=b.apply(this,arguments)),1>=a&&(b=B),c}}function me(a,b,c){function d(){n&&gg(n),j&&gg(j),p=0,j=n=o=B}function e(b,c){c&&gg(c),j=n=o=B,b&&(p=oh(),k=a.apply(m,i),n||j||(i=m=B))}function f(){var a=b-(oh()-l);0>=a||a>b?e(o,j):n=lg(f,a)}function g(){e(r,n)}function h(){if(i=arguments,l=oh(),m=this,o=r&&(n||!s),q===!1)var c=s&&!n;else{j||s||(p=l);var d=q-(l-p),e=0>=d||d>q;e?(j&&(j=gg(j)),p=l,k=a.apply(m,i)):j||(j=lg(g,d))}return e&&n?n=gg(n):n||b===q||(n=lg(f,b)),c&&(e=!0,k=a.apply(m,i)),!e||n||j||(i=m=B),k}var i,j,k,l,m,n,o,p=0,q=!1,r=!0;if("function"!=typeof a)throw new Xf(T);if(b=0>b?0:+b||0,c===!0){var s=!0;r=!1}else He(c)&&(s=!!c.leading,q="maxWait"in c&&vg(+c.maxWait||0,b),r="trailing"in c?!!c.trailing:r);return h.cancel=d,h}function ne(a,b){if("function"!=typeof a||b&&"function"!=typeof b)throw new Xf(T);var c=function(){var d=arguments,e=b?b.apply(this,d):d[0],f=c.cache;if(f.has(e))return f.get(e);var g=a.apply(this,d);return c.cache=f.set(e,g),g};return c.cache=new ne.Cache,c}function oe(a){if("function"!=typeof a)throw new Xf(T);return function(){return!a.apply(this,arguments)}}function pe(a){return le(2,a)}function qe(a,b){if("function"!=typeof a)throw new Xf(T);return b=vg(b===B?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,e=vg(c.length-b,0),f=Of(e);++d<e;)f[d]=c[b+d];switch(b){case 0:return a.call(this,f);case 1:return a.call(this,c[0],f);case 2:return a.call(this,c[0],c[1],f)}var g=Of(b+1);for(d=-1;++d<b;)g[d]=c[d];return g[b]=f,a.apply(this,g)}}function re(a){if("function"!=typeof a)throw new Xf(T);return function(b){return a.apply(this,b)}}function se(a,b,c){var d=!0,e=!0;if("function"!=typeof a)throw new Xf(T);return c===!1?d=!1:He(c)&&(d="leading"in c?!!c.leading:d,e="trailing"in c?!!c.trailing:e),me(a,b,{leading:d,maxWait:+b,trailing:e})}function te(a,b){return b=null==b?Bf:b,Kc(b,I,B,[a],[])}function ue(a,b,c,d){return b&&"boolean"!=typeof b&&$c(a,b,c)?b=!1:"function"==typeof b&&(d=c,c=b,b=!1),"function"==typeof c?vb(a,b,fc(c,d,1)):vb(a,b)}function ve(a,b,c){return"function"==typeof b?vb(a,!0,fc(b,c,1)):vb(a,!0)}function we(a,b){return a>b}function xe(a,b){return a>=b}function ye(a){return t(a)&&Yc(a)&&ag.call(a,"callee")&&!jg.call(a,"callee")}function ze(a){return a===!0||a===!1||t(a)&&cg.call(a)==X}function Ae(a){return t(a)&&cg.call(a)==Y}function Be(a){return!!a&&1===a.nodeType&&t(a)&&!Ne(a)}function Ce(a){return null==a?!0:Yc(a)&&(Ch(a)||Pe(a)||ye(a)||t(a)&&Ge(a.splice))?!a.length:!Nh(a).length}function De(a,b,c,d){c="function"==typeof c?fc(c,d,3):B;var e=c?c(a,b):B;return e===B?Jb(a,b,c):!!e}function Ee(a){return t(a)&&"string"==typeof a.message&&cg.call(a)==Z}function Fe(a){return"number"==typeof a&&tg(a)}function Ge(a){return He(a)&&cg.call(a)==$}function He(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}function Ie(a,b,c,d){return c="function"==typeof c?fc(c,d,3):B,Lb(a,Rc(b),c)}function Je(a){return Me(a)&&a!=+a}function Ke(a){return null==a?!1:Ge(a)?eg.test(_f.call(a)):t(a)&&Ka.test(a)}function Le(a){return null===a}function Me(a){return"number"==typeof a||t(a)&&cg.call(a)==aa}function Ne(a){var b;if(!t(a)||cg.call(a)!=ba||ye(a)||!ag.call(a,"constructor")&&(b=a.constructor,"function"==typeof b&&!(b instanceof b)))return!1;var c;return Eb(a,function(a,b){c=b}),c===B||ag.call(a,c)}function Oe(a){return He(a)&&cg.call(a)==ca}function Pe(a){return"string"==typeof a||t(a)&&cg.call(a)==ea}function Qe(a){return t(a)&&bd(a.length)&&!!Sa[cg.call(a)]}function Re(a){return a===B}function Se(a,b){return b>a}function Te(a,b){return b>=a}function Ue(a){var b=a?Pg(a):0;return bd(b)?b?ab(a):[]:ef(a)}function Ve(a){return tb(a,_e(a))}function We(a,b,c){var d=Ig(a);return c&&$c(a,b,c)&&(b=B),b?rb(d,b):d}function Xe(a){return Hb(a,_e(a))}function Ye(a,b,c){var d=null==a?B:Ib(a,ld(b),b+"");return d===B?c:d}function Ze(a,b){if(null==a)return!1;var c=ag.call(a,b);if(!c&&!_c(b)){if(b=ld(b),a=1==b.length?a:Ib(a,Wb(b,0,-1)),null==a)return!1;b=zd(b),c=ag.call(a,b)}return c||bd(a.length)&&Zc(b,a.length)&&(Ch(a)||ye(a))}function $e(a,b,c){c&&$c(a,b,c)&&(b=B);for(var d=-1,e=Nh(a),f=e.length,g={};++d<f;){var h=e[d],i=a[h];b?ag.call(g,i)?g[i].push(h):g[i]=[h]:g[i]=h}return g}function _e(a){if(null==a)return[];He(a)||(a=Uf(a));var b=a.length;b=b&&bd(b)&&(Ch(a)||ye(a))&&b||0;for(var c=a.constructor,d=-1,e="function"==typeof c&&c.prototype===a,f=Of(b),g=b>0;++d<b;)f[d]=d+"";for(var h in a)g&&Zc(h,b)||"constructor"==h&&(e||!ag.call(a,h))||f.push(h);return f}function af(a){a=kd(a);for(var b=-1,c=Nh(a),d=c.length,e=Of(d);++b<d;){var f=c[b];e[b]=[f,a[f]]}return e}function bf(a,b,c){var d=null==a?B:a[b];return d===B&&(null==a||_c(b,a)||(b=ld(b),a=1==b.length?a:Ib(a,Wb(b,0,-1)),d=null==a?B:a[zd(b)]),d=d===B?c:d),Ge(d)?d.call(a):d}function cf(a,b,c){if(null==a)return a;var d=b+"";b=null!=a[d]||_c(b,a)?[d]:ld(b);for(var e=-1,f=b.length,g=f-1,h=a;null!=h&&++e<f;){var i=b[e];He(h)&&(e==g?h[i]=c:null==h[i]&&(h[i]=Zc(b[e+1])?[]:{})),h=h[i]}return a}function df(a,b,c,d){var e=Ch(a)||Qe(a);if(b=Oc(b,d,4),null==c)if(e||He(a)){var f=a.constructor;c=e?Ch(a)?new f:[]:Ig(Ge(f)?f.prototype:B)}else c={};return(e?bb:Fb)(a,function(a,d,e){return b(c,a,d,e)}),c}function ef(a){return ac(a,Nh(a))}function ff(a){return ac(a,_e(a))}function gf(a,b,c){return b=+b||0,c===B?(c=b,b=0):c=+c||0,a>=wg(b,c)&&a<vg(b,c)}function hf(a,b,c){c&&$c(a,b,c)&&(b=c=B);var d=null==a,e=null==b;if(null==c&&(e&&"boolean"==typeof a?(c=a,a=1):"boolean"==typeof b&&(c=b,e=!0)),d&&e&&(b=1,e=!1),a=+a||0,e?(b=a,a=0):b=+b||0,c||a%1||b%1){var f=zg();return wg(a+f*(b-a+hg("1e-"+((f+"").length-1))),b)}return Ub(a,b)}function jf(a){return a=j(a),a&&a.charAt(0).toUpperCase()+a.slice(1)}function kf(a){return a=j(a),a&&a.replace(Ma,o).replace(Fa,"")}function lf(a,b,c){a=j(a),b+="";var d=a.length;return c=c===B?d:wg(0>c?0:+c||0,d),c-=b.length,
-c>=0&&a.indexOf(b,c)==c}function mf(a){return a=j(a),a&&wa.test(a)?a.replace(ua,p):a}function nf(a){return a=j(a),a&&Ea.test(a)?a.replace(Da,q):a||"(?:)"}function of(a,b,c){a=j(a),b=+b;var d=a.length;if(d>=b||!tg(b))return a;var e=(b-d)/2,f=rg(e),g=pg(e);return c=Gc("",g,c),c.slice(0,f)+a+c}function pf(a,b,c){return(c?$c(a,b,c):null==b)?b=0:b&&(b=+b),a=tf(a),yg(a,b||(Ja.test(a)?16:10))}function qf(a,b){var c="";if(a=j(a),b=+b,1>b||!a||!tg(b))return c;do b%2&&(c+=a),b=rg(b/2),a+=a;while(b);return c}function rf(a,b,c){return a=j(a),c=null==c?0:wg(0>c?0:+c||0,a.length),a.lastIndexOf(b,c)==c}function sf(a,c,d){var e=b.templateSettings;d&&$c(a,c,d)&&(c=d=B),a=j(a),c=qb(rb({},d||c),e,pb);var f,g,h=qb(rb({},c.imports),e.imports,pb),i=Nh(h),k=ac(h,i),l=0,m=c.interpolate||Na,n="__p += '",o=Vf((c.escape||Na).source+"|"+m.source+"|"+(m===za?Ha:Na).source+"|"+(c.evaluate||Na).source+"|$","g"),p="//# sourceURL="+("sourceURL"in c?c.sourceURL:"lodash.templateSources["+ ++Ra+"]")+"\n";a.replace(o,function(b,c,d,e,h,i){return d||(d=e),n+=a.slice(l,i).replace(Oa,r),c&&(f=!0,n+="' +\n__e("+c+") +\n'"),h&&(g=!0,n+="';\n"+h+";\n__p += '"),d&&(n+="' +\n((__t = ("+d+")) == null ? '' : __t) +\n'"),l=i+b.length,b}),n+="';\n";var q=c.variable;q||(n="with (obj) {\n"+n+"\n}\n"),n=(g?n.replace(qa,""):n).replace(ra,"$1").replace(sa,"$1;"),n="function("+(q||"obj")+") {\n"+(q?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(f?", __e = _.escape":"")+(g?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+n+"return __p\n}";var s=Yh(function(){return Rf(i,p+"return "+n).apply(B,k)});if(s.source=n,Ee(s))throw s;return s}function tf(a,b,c){var d=a;return(a=j(a))?(c?$c(d,b,c):null==b)?a.slice(x(a),y(a)+1):(b+="",a.slice(k(a,b),l(a,b)+1)):a}function uf(a,b,c){var d=a;return a=j(a),a?(c?$c(d,b,c):null==b)?a.slice(x(a)):a.slice(k(a,b+"")):a}function vf(a,b,c){var d=a;return a=j(a),a?(c?$c(d,b,c):null==b)?a.slice(0,y(a)+1):a.slice(0,l(a,b+"")+1):a}function wf(a,b,c){c&&$c(a,b,c)&&(b=B);var d=M,e=N;if(null!=b)if(He(b)){var f="separator"in b?b.separator:f;d="length"in b?+b.length||0:d,e="omission"in b?j(b.omission):e}else d=+b||0;if(a=j(a),d>=a.length)return a;var g=d-e.length;if(1>g)return e;var h=a.slice(0,g);if(null==f)return h+e;if(Oe(f)){if(a.slice(g).search(f)){var i,k,l=a.slice(0,g);for(f.global||(f=Vf(f.source,(Ia.exec(f)||"")+"g")),f.lastIndex=0;i=f.exec(l);)k=i.index;h=h.slice(0,null==k?g:k)}}else if(a.indexOf(f,g)!=g){var m=h.lastIndexOf(f);m>-1&&(h=h.slice(0,m))}return h+e}function xf(a){return a=j(a),a&&va.test(a)?a.replace(ta,z):a}function yf(a,b,c){return c&&$c(a,b,c)&&(b=B),a=j(a),a.match(b||Pa)||[]}function zf(a,b,c){return c&&$c(a,b,c)&&(b=B),t(a)?Cf(a):ub(a,b)}function Af(a){return function(){return a}}function Bf(a){return a}function Cf(a){return Nb(vb(a,!0))}function Df(a,b){return Ob(a,vb(b,!0))}function Ef(a,b,c){if(null==c){var d=He(b),e=d?Nh(b):B,f=e&&e.length?Hb(b,e):B;(f?f.length:d)||(f=!1,c=b,b=a,a=this)}f||(f=Hb(b,Nh(b)));var g=!0,h=-1,i=Ge(a),j=f.length;c===!1?g=!1:He(c)&&"chain"in c&&(g=c.chain);for(;++h<j;){var k=f[h],l=b[k];a[k]=l,i&&(a.prototype[k]=function(b){return function(){var c=this.__chain__;if(g||c){var d=a(this.__wrapped__),e=d.__actions__=ab(this.__actions__);return e.push({func:b,args:arguments,thisArg:a}),d.__chain__=c,d}return b.apply(a,jb([this.value()],arguments))}}(l))}return a}function Ff(){return db._=dg,this}function Gf(){}function Hf(a){return _c(a)?Rb(a):Sb(a)}function If(a){return function(b){return Ib(a,ld(b),b+"")}}function Jf(a,b,c){c&&$c(a,b,c)&&(b=c=B),a=+a||0,c=null==c?1:+c||0,null==b?(b=a,a=0):b=+b||0;for(var d=-1,e=vg(pg((b-a)/(c||1)),0),f=Of(e);++d<e;)f[d]=a,a+=c;return f}function Kf(a,b,c){if(a=rg(a),1>a||!tg(a))return[];var d=-1,e=Of(wg(a,Cg));for(b=fc(b,c,1);++d<a;)Cg>d?e[d]=b(d):b(d);return e}function Lf(a){var b=++bg;return j(a)+b}function Mf(a,b){return(+a||0)+(+b||0)}function Nf(a,b,c){return c&&$c(a,b,c)&&(b=B),b=Oc(b,c,3),1==b.length?nb(Ch(a)?a:jd(a),b):$b(a,b)}a=a?eb.defaults(db.Object(),a,eb.pick(db,Qa)):db;var Of=a.Array,Pf=a.Date,Qf=a.Error,Rf=a.Function,Sf=a.Math,Tf=a.Number,Uf=a.Object,Vf=a.RegExp,Wf=a.String,Xf=a.TypeError,Yf=Of.prototype,Zf=Uf.prototype,$f=Wf.prototype,_f=Rf.prototype.toString,ag=Zf.hasOwnProperty,bg=0,cg=Zf.toString,dg=db._,eg=Vf("^"+_f.call(ag).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),fg=a.ArrayBuffer,gg=a.clearTimeout,hg=a.parseFloat,ig=Sf.pow,jg=Zf.propertyIsEnumerable,kg=Sc(a,"Set"),lg=a.setTimeout,mg=Yf.splice,ng=a.Uint8Array,og=Sc(a,"WeakMap"),pg=Sf.ceil,qg=Sc(Uf,"create"),rg=Sf.floor,sg=Sc(Of,"isArray"),tg=a.isFinite,ug=Sc(Uf,"keys"),vg=Sf.max,wg=Sf.min,xg=Sc(Pf,"now"),yg=a.parseInt,zg=Sf.random,Ag=Tf.NEGATIVE_INFINITY,Bg=Tf.POSITIVE_INFINITY,Cg=4294967295,Dg=Cg-1,Eg=Cg>>>1,Fg=9007199254740991,Gg=og&&new og,Hg={};b.support={};b.templateSettings={escape:xa,evaluate:ya,interpolate:za,variable:"",imports:{_:b}};var Ig=function(){function a(){}return function(b){if(He(b)){a.prototype=b;var c=new a;a.prototype=B}return c||{}}}(),Jg=lc(Fb),Kg=lc(Gb,!0),Lg=mc(),Mg=mc(!0),Ng=Gg?function(a,b){return Gg.set(a,b),a}:Bf,Og=Gg?function(a){return Gg.get(a)}:Gf,Pg=Rb("length"),Qg=function(){var a=0,b=0;return function(c,d){var e=oh(),f=P-(e-b);if(b=e,f>0){if(++a>=O)return c}else a=0;return Ng(c,d)}}(),Rg=qe(function(a,b){return t(a)&&Yc(a)?xb(a,Db(b,!1,!0)):[]}),Sg=vc(),Tg=vc(!0),Ug=qe(function(a){for(var b=a.length,c=b,d=Of(l),e=Qc(),f=e==h,g=[];c--;){var i=a[c]=Yc(i=a[c])?i:[];d[c]=f&&i.length>=120?oc(c&&i):null}var j=a[0],k=-1,l=j?j.length:0,m=d[0];a:for(;++k<l;)if(i=j[k],(m?Za(m,i):e(g,i,0))<0){for(var c=b;--c;){var n=d[c];if((n?Za(n,i):e(a[c],i,0))<0)continue a}m&&m.push(i),g.push(i)}return g}),Vg=qe(function(a,b){b=Db(b);var c=sb(a,b);return Tb(a,b.sort(f)),c}),Wg=Jc(),Xg=Jc(!0),Yg=qe(function(a){return _b(Db(a,!1,!0))}),Zg=qe(function(a,b){return Yc(a)?xb(a,b):[]}),$g=qe(Kd),_g=qe(function(a){var b=a.length,c=b>2?a[b-2]:B,d=b>1?a[b-1]:B;return b>2&&"function"==typeof c?b-=2:(c=b>1&&"function"==typeof d?(--b,d):B,d=B),a.length=b,Ld(a,c,d)}),ah=qe(function(a){return a=Db(a),this.thru(function(b){return _a(Ch(b)?b:[kd(b)],a)})}),bh=qe(function(a,b){return sb(a,Db(b))}),ch=jc(function(a,b,c){ag.call(a,c)?++a[c]:a[c]=1}),dh=uc(Jg),eh=uc(Kg,!0),fh=yc(bb,Jg),gh=yc(cb,Kg),hh=jc(function(a,b,c){ag.call(a,c)?a[c].push(b):a[c]=[b]}),ih=jc(function(a,b,c){a[c]=b}),jh=qe(function(a,b,c){var d=-1,e="function"==typeof b,f=_c(b),g=Yc(a)?Of(a.length):[];return Jg(a,function(a){var h=e?b:f&&null!=a?a[b]:B;g[++d]=h?h.apply(a,c):Xc(a,b,c)}),g}),kh=jc(function(a,b,c){a[c?0:1].push(b)},function(){return[[],[]]}),lh=Ec(kb,Jg),mh=Ec(lb,Kg),nh=qe(function(a,b){if(null==a)return[];var c=b[2];return c&&$c(b[0],b[1],c)&&(b.length=1),Zb(a,Db(b),[])}),oh=xg||function(){return(new Pf).getTime()},ph=qe(function(a,b,c){var d=D;if(c.length){var e=v(c,ph.placeholder);d|=I}return Kc(a,d,b,c,e)}),qh=qe(function(a,b){b=b.length?Db(b):Xe(a);for(var c=-1,d=b.length;++c<d;){var e=b[c];a[e]=Kc(a[e],D,a)}return a}),rh=qe(function(a,b,c){var d=D|E;if(c.length){var e=v(c,rh.placeholder);d|=I}return Kc(b,d,a,c,e)}),sh=rc(G),th=rc(H),uh=qe(function(a,b){return wb(a,1,b)}),vh=qe(function(a,b,c){return wb(a,b,c)}),wh=xc(),xh=xc(!0),yh=qe(function(a,b){if(b=Db(b),"function"!=typeof a||!fb(b,i))throw new Xf(T);var c=b.length;return qe(function(d){for(var e=wg(d.length,c);e--;)d[e]=b[e](d[e]);return a.apply(this,d)})}),zh=Dc(I),Ah=Dc(J),Bh=qe(function(a,b){return Kc(a,L,B,B,B,Db(b))}),Ch=sg||function(a){return t(a)&&bd(a.length)&&cg.call(a)==W},Dh=kc(Pb),Eh=kc(function(a,b,c){return c?qb(a,b,c):rb(a,b)}),Fh=sc(Eh,ob),Gh=sc(Dh,ed),Hh=wc(Fb),Ih=wc(Gb),Jh=zc(Lg),Kh=zc(Mg),Lh=Ac(Fb),Mh=Ac(Gb),Nh=ug?function(a){var b=null==a?B:a.constructor;return"function"==typeof b&&b.prototype===a||"function"!=typeof a&&Yc(a)?id(a):He(a)?ug(a):[]}:id,Oh=Bc(!0),Ph=Bc(),Qh=qe(function(a,b){if(null==a)return{};if("function"!=typeof b[0]){var b=ib(Db(b),Wf);return fd(a,xb(_e(a),b))}var c=fc(b[0],b[1],3);return gd(a,function(a,b,d){return!c(a,b,d)})}),Rh=qe(function(a,b){return null==a?{}:"function"==typeof b[0]?gd(a,fc(b[0],b[1],3)):fd(a,Db(b))}),Sh=pc(function(a,b,c){return b=b.toLowerCase(),a+(c?b.charAt(0).toUpperCase()+b.slice(1):b)}),Th=pc(function(a,b,c){return a+(c?"-":"")+b.toLowerCase()}),Uh=Cc(),Vh=Cc(!0),Wh=pc(function(a,b,c){return a+(c?"_":"")+b.toLowerCase()}),Xh=pc(function(a,b,c){return a+(c?" ":"")+(b.charAt(0).toUpperCase()+b.slice(1))}),Yh=qe(function(a,b){try{return a.apply(B,b)}catch(c){return Ee(c)?c:new Qf(c)}}),Zh=qe(function(a,b){return function(c){return Xc(c,a,b)}}),$h=qe(function(a,b){return function(c){return Xc(a,c,b)}}),_h=Ic("ceil"),ai=Ic("floor"),bi=tc(we,Ag),ci=tc(Se,Bg),di=Ic("round");return b.prototype=c.prototype,d.prototype=Ig(c.prototype),d.prototype.constructor=d,e.prototype=Ig(c.prototype),e.prototype.constructor=e,fa.prototype["delete"]=Ua,fa.prototype.get=Va,fa.prototype.has=Wa,fa.prototype.set=Xa,Ya.prototype.push=$a,ne.Cache=fa,b.after=je,b.ary=ke,b.assign=Eh,b.at=bh,b.before=le,b.bind=ph,b.bindAll=qh,b.bindKey=rh,b.callback=zf,b.chain=Od,b.chunk=nd,b.compact=od,b.constant=Af,b.countBy=ch,b.create=We,b.curry=sh,b.curryRight=th,b.debounce=me,b.defaults=Fh,b.defaultsDeep=Gh,b.defer=uh,b.delay=vh,b.difference=Rg,b.drop=pd,b.dropRight=qd,b.dropRightWhile=rd,b.dropWhile=sd,b.fill=td,b.filter=Yd,b.flatten=vd,b.flattenDeep=wd,b.flow=wh,b.flowRight=xh,b.forEach=fh,b.forEachRight=gh,b.forIn=Jh,b.forInRight=Kh,b.forOwn=Lh,b.forOwnRight=Mh,b.functions=Xe,b.groupBy=hh,b.indexBy=ih,b.initial=yd,b.intersection=Ug,b.invert=$e,b.invoke=jh,b.keys=Nh,b.keysIn=_e,b.map=_d,b.mapKeys=Oh,b.mapValues=Ph,b.matches=Cf,b.matchesProperty=Df,b.memoize=ne,b.merge=Dh,b.method=Zh,b.methodOf=$h,b.mixin=Ef,b.modArgs=yh,b.negate=oe,b.omit=Qh,b.once=pe,b.pairs=af,b.partial=zh,b.partialRight=Ah,b.partition=kh,b.pick=Rh,b.pluck=ae,b.property=Hf,b.propertyOf=If,b.pull=Bd,b.pullAt=Vg,b.range=Jf,b.rearg=Bh,b.reject=be,b.remove=Cd,b.rest=Dd,b.restParam=qe,b.set=cf,b.shuffle=de,b.slice=Ed,b.sortBy=ge,b.sortByAll=nh,b.sortByOrder=he,b.spread=re,b.take=Fd,b.takeRight=Gd,b.takeRightWhile=Hd,b.takeWhile=Id,b.tap=Pd,b.throttle=se,b.thru=Qd,b.times=Kf,b.toArray=Ue,b.toPlainObject=Ve,b.transform=df,b.union=Yg,b.uniq=Jd,b.unzip=Kd,b.unzipWith=Ld,b.values=ef,b.valuesIn=ff,b.where=ie,b.without=Zg,b.wrap=te,b.xor=Md,b.zip=$g,b.zipObject=Nd,b.zipWith=_g,b.backflow=xh,b.collect=_d,b.compose=xh,b.each=fh,b.eachRight=gh,b.extend=Eh,b.iteratee=zf,b.methods=Xe,b.object=Nd,b.select=Yd,b.tail=Dd,b.unique=Jd,Ef(b,b),b.add=Mf,b.attempt=Yh,b.camelCase=Sh,b.capitalize=jf,b.ceil=_h,b.clone=ue,b.cloneDeep=ve,b.deburr=kf,b.endsWith=lf,b.escape=mf,b.escapeRegExp=nf,b.every=Xd,b.find=dh,b.findIndex=Sg,b.findKey=Hh,b.findLast=eh,b.findLastIndex=Tg,b.findLastKey=Ih,b.findWhere=Zd,b.first=ud,b.floor=ai,b.get=Ye,b.gt=we,b.gte=xe,b.has=Ze,b.identity=Bf,b.includes=$d,b.indexOf=xd,b.inRange=gf,b.isArguments=ye,b.isArray=Ch,b.isBoolean=ze,b.isDate=Ae,b.isElement=Be,b.isEmpty=Ce,b.isEqual=De,b.isError=Ee,b.isFinite=Fe,b.isFunction=Ge,b.isMatch=Ie,b.isNaN=Je,b.isNative=Ke,b.isNull=Le,b.isNumber=Me,b.isObject=He,b.isPlainObject=Ne,b.isRegExp=Oe,b.isString=Pe,b.isTypedArray=Qe,b.isUndefined=Re,b.kebabCase=Th,b.last=zd,b.lastIndexOf=Ad,b.lt=Se,b.lte=Te,b.max=bi,b.min=ci,b.noConflict=Ff,b.noop=Gf,b.now=oh,b.pad=of,b.padLeft=Uh,b.padRight=Vh,b.parseInt=pf,b.random=hf,b.reduce=lh,b.reduceRight=mh,b.repeat=qf,b.result=bf,b.round=di,b.runInContext=A,b.size=ee,b.snakeCase=Wh,b.some=fe,b.sortedIndex=Wg,b.sortedLastIndex=Xg,b.startCase=Xh,b.startsWith=rf,b.sum=Nf,b.template=sf,b.trim=tf,b.trimLeft=uf,b.trimRight=vf,b.trunc=wf,b.unescape=xf,b.uniqueId=Lf,b.words=yf,b.all=Xd,b.any=fe,b.contains=$d,b.eq=De,b.detect=dh,b.foldl=lh,b.foldr=mh,b.head=ud,b.include=$d,b.inject=lh,Ef(b,function(){var a={};return Fb(b,function(c,d){b.prototype[d]||(a[d]=c)}),a}(),!1),b.sample=ce,b.prototype.sample=function(a){return this.__chain__||null!=a?this.thru(function(b){return ce(b,a)}):ce(this.value())},b.VERSION=C,bb(["bind","bindKey","curry","curryRight","partial","partialRight"],function(a){b[a].placeholder=b}),bb(["drop","take"],function(a,b){e.prototype[a]=function(c){var d=this.__filtered__;if(d&&!b)return new e(this);c=null==c?1:vg(rg(c)||0,0);var f=this.clone();return d?f.__takeCount__=wg(f.__takeCount__,c):f.__views__.push({size:c,type:a+(f.__dir__<0?"Right":"")}),f},e.prototype[a+"Right"]=function(b){return this.reverse()[a](b).reverse()}}),bb(["filter","map","takeWhile"],function(a,b){var c=b+1,d=c!=S;e.prototype[a]=function(a,b){var e=this.clone();return e.__iteratees__.push({iteratee:Oc(a,b,1),type:c}),e.__filtered__=e.__filtered__||d,e}}),bb(["first","last"],function(a,b){var c="take"+(b?"Right":"");e.prototype[a]=function(){return this[c](1).value()[0]}}),bb(["initial","rest"],function(a,b){var c="drop"+(b?"":"Right");e.prototype[a]=function(){return this.__filtered__?new e(this):this[c](1)}}),bb(["pluck","where"],function(a,b){var c=b?"filter":"map",d=b?Nb:Hf;e.prototype[a]=function(a){return this[c](d(a))}}),e.prototype.compact=function(){return this.filter(Bf)},e.prototype.reject=function(a,b){return a=Oc(a,b,1),this.filter(function(b){return!a(b)})},e.prototype.slice=function(a,b){a=null==a?0:+a||0;var c=this;return c.__filtered__&&(a>0||0>b)?new e(c):(0>a?c=c.takeRight(-a):a&&(c=c.drop(a)),b!==B&&(b=+b||0,c=0>b?c.dropRight(-b):c.take(b-a)),c)},e.prototype.takeRightWhile=function(a,b){return this.reverse().takeWhile(a,b).reverse()},e.prototype.toArray=function(){return this.take(Bg)},Fb(e.prototype,function(a,c){var f=/^(?:filter|map|reject)|While$/.test(c),g=/^(?:first|last)$/.test(c),h=b[g?"take"+("last"==c?"Right":""):c];h&&(b.prototype[c]=function(){var b=g?[1]:arguments,c=this.__chain__,i=this.__wrapped__,j=!!this.__actions__.length,k=i instanceof e,l=b[0],m=k||Ch(i);m&&f&&"function"==typeof l&&1!=l.length&&(k=m=!1);var n=function(a){return g&&c?h(a,1)[0]:h.apply(B,jb([a],b))},o={func:Qd,args:[n],thisArg:B},p=k&&!j;if(g&&!c)return p?(i=i.clone(),i.__actions__.push(o),a.call(i)):h.call(B,this.value())[0];if(!g&&m){i=p?i:new e(this);var q=a.apply(i,b);return q.__actions__.push(o),new d(q,c)}return this.thru(n)})}),bb(["join","pop","push","replace","shift","sort","splice","split","unshift"],function(a){var c=(/^(?:replace|split)$/.test(a)?$f:Yf)[a],d=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",e=/^(?:join|pop|replace|shift)$/.test(a);b.prototype[a]=function(){var a=arguments;return e&&!this.__chain__?c.apply(this.value(),a):this[d](function(b){return c.apply(b,a)})}}),Fb(e.prototype,function(a,c){var d=b[c];if(d){var e=d.name,f=Hg[e]||(Hg[e]=[]);f.push({name:c,func:d})}}),Hg[Fc(B,E).name]=[{name:"wrapper",func:B}],e.prototype.clone=u,e.prototype.reverse=_,e.prototype.value=da,b.prototype.chain=Rd,b.prototype.commit=Sd,b.prototype.concat=ah,b.prototype.plant=Td,b.prototype.reverse=Ud,b.prototype.toString=Vd,b.prototype.run=b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=Wd,b.prototype.collect=b.prototype.map,b.prototype.head=b.prototype.first,b.prototype.select=b.prototype.filter,b.prototype.tail=b.prototype.rest,b}var B,C="3.10.1",D=1,E=2,F=4,G=8,H=16,I=32,J=64,K=128,L=256,M=30,N="...",O=150,P=16,Q=200,R=1,S=2,T="Expected a function",U="__lodash_placeholder__",V="[object Arguments]",W="[object Array]",X="[object Boolean]",Y="[object Date]",Z="[object Error]",$="[object Function]",_="[object Map]",aa="[object Number]",ba="[object Object]",ca="[object RegExp]",da="[object Set]",ea="[object String]",fa="[object WeakMap]",ga="[object ArrayBuffer]",ha="[object Float32Array]",ia="[object Float64Array]",ja="[object Int8Array]",ka="[object Int16Array]",la="[object Int32Array]",ma="[object Uint8Array]",na="[object Uint8ClampedArray]",oa="[object Uint16Array]",pa="[object Uint32Array]",qa=/\b__p \+= '';/g,ra=/\b(__p \+=) '' \+/g,sa=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ta=/&(?:amp|lt|gt|quot|#39|#96);/g,ua=/[&<>"'`]/g,va=RegExp(ta.source),wa=RegExp(ua.source),xa=/<%-([\s\S]+?)%>/g,ya=/<%([\s\S]+?)%>/g,za=/<%=([\s\S]+?)%>/g,Aa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,Ba=/^\w*$/,Ca=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,Da=/^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,Ea=RegExp(Da.source),Fa=/[\u0300-\u036f\ufe20-\ufe23]/g,Ga=/\\(\\)?/g,Ha=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ia=/\w*$/,Ja=/^0[xX]/,Ka=/^\[object .+?Constructor\]$/,La=/^\d+$/,Ma=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Na=/($^)/,Oa=/['\n\r\u2028\u2029\\]/g,Pa=function(){var a="[A-Z\\xc0-\\xd6\\xd8-\\xde]",b="[a-z\\xdf-\\xf6\\xf8-\\xff]+";return RegExp(a+"+(?="+a+b+")|"+a+"?"+b+"|"+a+"+|[0-9]+","g")}(),Qa=["Array","ArrayBuffer","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Math","Number","Object","RegExp","Set","String","_","clearTimeout","isFinite","parseFloat","parseInt","setTimeout","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap"],Ra=-1,Sa={};Sa[ha]=Sa[ia]=Sa[ja]=Sa[ka]=Sa[la]=Sa[ma]=Sa[na]=Sa[oa]=Sa[pa]=!0,Sa[V]=Sa[W]=Sa[ga]=Sa[X]=Sa[Y]=Sa[Z]=Sa[$]=Sa[_]=Sa[aa]=Sa[ba]=Sa[ca]=Sa[da]=Sa[ea]=Sa[fa]=!1;var Ta={};Ta[V]=Ta[W]=Ta[ga]=Ta[X]=Ta[Y]=Ta[ha]=Ta[ia]=Ta[ja]=Ta[ka]=Ta[la]=Ta[aa]=Ta[ba]=Ta[ca]=Ta[ea]=Ta[ma]=Ta[na]=Ta[oa]=Ta[pa]=!0,Ta[Z]=Ta[$]=Ta[_]=Ta[da]=Ta[fa]=!1;var Ua={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},Va={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},Wa={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&#96;":"`"},Xa={"function":!0,object:!0},Ya={0:"x30",1:"x31",2:"x32",3:"x33",4:"x34",5:"x35",6:"x36",7:"x37",8:"x38",9:"x39",A:"x41",B:"x42",C:"x43",D:"x44",E:"x45",F:"x46",a:"x61",b:"x62",c:"x63",d:"x64",e:"x65",f:"x66",n:"x6e",r:"x72",t:"x74",u:"x75",v:"x76",x:"x78"},Za={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},$a=Xa[typeof b]&&b&&!b.nodeType&&b,_a=Xa[typeof a]&&a&&!a.nodeType&&a,ab=$a&&_a&&"object"==typeof e&&e&&e.Object&&e,bb=Xa[typeof self]&&self&&self.Object&&self,cb=Xa[typeof window]&&window&&window.Object&&window,db=(_a&&_a.exports===$a&&$a,ab||cb!==(this&&this.window)&&cb||bb||this),eb=A();db._=eb,d=function(){return eb}.call(b,c,b,a),!(d!==B&&(a.exports=d))}).call(this)}).call(b,c(8)(a),function(){return this}())},function(a,b){a.exports=function(a){return a.webpackPolyfill||(a.deprecate=function(){},a.paths=[],a.children=[],a.webpackPolyfill=1),a}},function(a,b,c){"use strict";function d(a,b){var c="normal";return a&&b?c="bolditalics":a?c="bold":b&&(c="italics"),c}function e(a,b){this.fonts={},this.pdfDoc=b,this.fontWrappers={};for(var c in a)if(a.hasOwnProperty(c)){var d=a[c];this.fonts[c]={normal:d.normal,bold:d.bold,italics:d.italics,bolditalics:d.bolditalics}}}var f=c(7),g=c(10);e.prototype.provideFont=function(a,b,c){var e=d(b,c);if(!this.fonts[a]||!this.fonts[a][e])throw new Error("Font '"+a+"' in style '"+e+"' is not defined in the font section of the document definition.");return this.fontWrappers[a]=this.fontWrappers[a]||{},this.fontWrappers[a][e]||(this.fontWrappers[a][e]=new g(this.pdfDoc,this.fonts[a][e],a+"("+e+")")),this.fontWrappers[a][e]},e.prototype.setFontRefsToPdfDoc=function(){var a=this;f.each(a.fontWrappers,function(b){f.each(b,function(b){f.each(b.pdfFonts,function(b){a.pdfDoc.page.fonts[b.id]||(a.pdfDoc.page.fonts[b.id]=b.ref())})})})},a.exports=e},function(a,b,c){"use strict";function d(a,b,c){this.MAX_CHAR_TYPES=92,this.pdfkitDoc=a,this.path=b,this.pdfFonts=[],this.charCatalogue=[],this.name=c,Object.defineProperty(this,"ascender",{get:function(){var a=this.getFont(0);return a.ascender}}),Object.defineProperty(this,"decender",{get:function(){var a=this.getFont(0);return a.decender}})}var e=c(7);d.prototype.getFont=function(a){if(!this.pdfFonts[a]){var b=this.name+a;this.postscriptName&&delete this.pdfkitDoc._fontFamilies[this.postscriptName],this.pdfFonts[a]=this.pdfkitDoc.font(this.path,b)._font,this.postscriptName||(this.postscriptName=this.pdfFonts[a].name)}return this.pdfFonts[a]},d.prototype.widthOfString=function(){var a=this.getFont(0);return a.widthOfString.apply(a,arguments)},d.prototype.lineHeight=function(){var a=this.getFont(0);return a.lineHeight.apply(a,arguments)},d.prototype.ref=function(){var a=this.getFont(0);return a.ref.apply(a,arguments)};var f=function(a){return a.charCodeAt(0)};d.prototype.encode=function(a){var b=this,c=e.chain(a.split("")).map(f).uniq().value();if(c.length>b.MAX_CHAR_TYPES)throw new Error("Inline has more than "+b.MAX_CHAR_TYPES+": "+a+" different character types and therefore cannot be properly embedded into pdf.");var d=function(a){return e.uniq(a.concat(c)).length<=b.MAX_CHAR_TYPES},g=e.findIndex(b.charCatalogue,d);0>g&&(g=b.charCatalogue.length,b.charCatalogue[g]=[]);var h=b.getFont(g);h.use(a),e.each(c,function(a){e.includes(b.charCatalogue[g],a)||b.charCatalogue[g].push(a)});var i=e.map(h.encode(a),function(a){return a.charCodeAt(0).toString(16)}).join("");return{encodedText:i,fontId:h.id}},a.exports=d},function(a,b,c){"use strict";function d(a,b){g.each(b,function(b){a.push(b)})}function e(a,b,c){this.pageSize=a,this.pageMargins=b,this.tracker=new h,this.imageMeasure=c,this.tableLayouts={}}function f(a){var b=a.x,c=a.y;a.positions=[],g.each(a.canvas,function(a){var b=a.x,c=a.y,d=a.x1,e=a.y1,f=a.x2,g=a.y2;a.resetXY=function(){a.x=b,a.y=c,a.x1=d,a.y1=e,a.x2=f,a.y2=g}}),a.resetXY=function(){a.x=b,a.y=c,g.each(a.canvas,function(a){a.resetXY()})}}var g=c(7),h=c(12),i=c(13),j=c(19),k=c(20),l=c(16),m=c(23),n=c(22),o=c(17).pack,p=c(17).offsetVector,q=c(17).fontStringify,r=c(17).isFunction,s=c(14),t=c(15);e.prototype.registerTableLayouts=function(a){this.tableLayouts=o(this.tableLayouts,a)},e.prototype.layoutDocument=function(a,b,c,d,e,f,h,j,k,l){function m(a,b){return r(l)?(a=g.reject(a,function(a){return g.isEmpty(a.positions)}),g.each(a,function(a){var c=g.pick(a,["id","text","ul","ol","table","image","qr","canvas","columns","headlineLevel","style","pageBreak","pageOrientation","width","height"]);c.startPosition=g.first(a.positions),c.pageNumbers=g.chain(a.positions).map("pageNumber").uniq().value(),c.pages=b.length,c.stack=g.isArray(a.stack),a.nodeInfo=c}),g.any(a,function(a,b,c){if("before"!==a.pageBreak&&!a.pageBreakCalculated){a.pageBreakCalculated=!0;var d=g.first(a.nodeInfo.pageNumbers),e=g.chain(c).drop(b+1).filter(function(a){return g.contains(a.nodeInfo.pageNumbers,d)}).value(),f=g.chain(c).drop(b+1).filter(function(a){return g.contains(a.nodeInfo.pageNumbers,d+1)}).value(),h=g.chain(c).take(b).filter(function(a){return g.contains(a.nodeInfo.pageNumbers,d)}).value();if(l(a.nodeInfo,g.map(e,"nodeInfo"),g.map(f,"nodeInfo"),g.map(h,"nodeInfo")))return a.pageBreak="before",!0}})):!1}function n(a){g.each(a.linearNodeList,function(a){a.resetXY()})}this.docMeasure=new i(b,c,d,this.imageMeasure,this.tableLayouts,j);for(var o=this.tryLayoutDocument(a,b,c,d,e,f,h,j,k);m(o.linearNodeList,o.pages);)n(o),o=this.tryLayoutDocument(a,b,c,d,e,f,h,j,k);return o.pages},e.prototype.tryLayoutDocument=function(a,b,c,d,e,f,g,h,i,l){this.linearNodeList=[],a=this.docMeasure.measureDocument(a),this.writer=new k(new j(this.pageSize,this.pageMargins),this.tracker);var m=this;return this.writer.context().tracker.startTracking("pageAdded",function(){m.addBackground(e)}),this.addBackground(e),this.processNode(a),this.addHeadersAndFooters(f,g),null!=i&&this.addWatermark(i,b),{pages:this.writer.context().pages,linearNodeList:this.linearNodeList}},e.prototype.addBackground=function(a){var b=r(a)?a:function(){return a},c=b(this.writer.context().page+1);if(c){var d=this.writer.context().getCurrentPage().pageSize;this.writer.beginUnbreakableBlock(d.width,d.height),this.processNode(this.docMeasure.measureDocument(c)),this.writer.commitUnbreakableBlock(0,0)}},e.prototype.addStaticRepeatable=function(a,b){this.addDynamicRepeatable(function(){return a},b)},e.prototype.addDynamicRepeatable=function(a,b){for(var c=this.writer.context().pages,d=0,e=c.length;e>d;d++){this.writer.context().page=d;var f=a(d+1,e);if(f){var g=b(this.writer.context().getCurrentPage().pageSize,this.pageMargins);this.writer.beginUnbreakableBlock(g.width,g.height),this.processNode(this.docMeasure.measureDocument(f)),this.writer.commitUnbreakableBlock(g.x,g.y)}}},e.prototype.addHeadersAndFooters=function(a,b){var c=function(a,b){return{x:0,y:0,width:a.width,height:b.top}},d=function(a,b){return{x:0,y:a.height-b.bottom,width:a.width,height:b.bottom}};r(a)?this.addDynamicRepeatable(a,c):a&&this.addStaticRepeatable(a,c),r(b)?this.addDynamicRepeatable(b,d):b&&this.addStaticRepeatable(b,d)},e.prototype.addWatermark=function(a,b){function c(a,b,c){for(var d,e=a.width,f=a.height,g=.8*Math.sqrt(e*e+f*f),h=new s(c),i=new t,j=0,k=1e3,l=(j+k)/2;Math.abs(j-k)>1;)i.push({fontSize:l}),d=h.sizeOfString(b,i),d.width>g?(k=l,l=(j+k)/2):d.width<g&&(j=l,l=(j+k)/2),i.pop();return{size:d,fontSize:l}}for(var d=Object.getOwnPropertyNames(b.fonts)[0],e={text:a,font:b.provideFont(b[d],!1,!1),size:c(this.pageSize,a,b)},f=this.writer.context().pages,g=0,h=f.length;h>g;g++)f[g].watermark=e},e.prototype.processNode=function(a){function b(b){var d=a._margin;"before"===a.pageBreak&&c.writer.moveToNextPage(a.pageOrientation),d&&(c.writer.context().moveDown(d[1]),c.writer.context().addMargin(d[0],d[2])),b(),d&&(c.writer.context().addMargin(-d[0],-d[2]),c.writer.context().moveDown(d[3])),"after"===a.pageBreak&&c.writer.moveToNextPage(a.pageOrientation)}var c=this;this.linearNodeList.push(a),f(a),b(function(){var b=a.absolutePosition;if(b&&(c.writer.context().beginDetachedBlock(),c.writer.context().moveTo(b.x||0,b.y||0)),a.stack)c.processVerticalContainer(a);else if(a.columns)c.processColumns(a);else if(a.ul)c.processList(!1,a);else if(a.ol)c.processList(!0,a);else if(a.table)c.processTable(a);else if(void 0!==a.text)c.processLeaf(a);else if(a.image)c.processImage(a);else if(a.canvas)c.processCanvas(a);else if(a.qr)c.processQr(a);else if(!a._span)throw"Unrecognized document structure: "+JSON.stringify(a,q);b&&c.writer.context().endDetachedBlock()})},e.prototype.processVerticalContainer=function(a){var b=this;a.stack.forEach(function(c){b.processNode(c),d(a.positions,c.positions)})},e.prototype.processColumns=function(a){function b(a){if(!a)return null;var b=[];b.push(0);for(var d=c.length-1;d>0;d--)b.push(a);return b}var c=a.columns,e=this.writer.context().availableWidth,f=b(a._gap);f&&(e-=(f.length-1)*a._gap),l.buildColumnWidths(c,e);var g=this.processRow(c,c,f);d(a.positions,g.positions)},e.prototype.processRow=function(a,b,c,e,f){function g(a){for(var b,c=0,d=k.length;d>c;c++){var e=k[c];if(e.prevPage===a.prevPage){b=e;break}}b||(b=a,k.push(b)),b.prevY=Math.max(b.prevY,a.prevY),b.y=Math.min(b.y,a.y)}function h(a){return c&&c.length>a?c[a]:0}function i(a,b){if(a.rowSpan&&a.rowSpan>1){var c=f+a.rowSpan-1;if(c>=e.length)throw"Row span for column "+b+" (with indexes starting from 0) exceeded row count";return e[c][b]}return null}var j=this,k=[],l=[];return this.tracker.auto("pageChanged",g,function(){b=b||a,j.writer.context().beginColumnGroup();for(var e=0,f=a.length;f>e;e++){var g=a[e],k=b[e]._calcWidth,m=h(e);if(g.colSpan&&g.colSpan>1)for(var n=1;n<g.colSpan;n++)k+=b[++e]._calcWidth+c[e];j.writer.context().beginColumn(k,m,i(g,e)),g._span?g._columnEndingContext&&j.writer.context().markEnding(g):(j.processNode(g),d(l,g.positions))}j.writer.context().completeColumnGroup()}),{pageBreaks:k,positions:l}},e.prototype.processList=function(a,b){function c(a){if(h){var b=h;if(h=null,b.canvas){var c=b.canvas[0];p(c,-b._minWidth,0),e.writer.addVector(c)}else{var d=new n(e.pageSize.width);d.addInline(b._inlines[0]),d.x=-b._minWidth,d.y=a.getAscenderHeight()-d.getAscenderHeight(),e.writer.addLine(d,!0)}}}var e=this,f=a?b.ol:b.ul,g=b._gapSize;this.writer.context().addMargin(g.width);var h;this.tracker.auto("lineAdded",c,function(){f.forEach(function(a){h=a.listMarker,e.processNode(a),d(b.positions,a.positions)})}),this.writer.context().addMargin(-g.width)},e.prototype.processTable=function(a){var b=new m(a);b.beginTable(this.writer);for(var c=0,e=a.table.body.length;e>c;c++){b.beginRow(c,this.writer);var f=this.processRow(a.table.body[c],a.table.widths,a._offsets.offsets,a.table.body,c);d(a.positions,f.positions),b.endRow(c,this.writer,f.pageBreaks)}b.endTable(this.writer)},e.prototype.processLeaf=function(a){for(var b=this.buildNextLine(a),c=b?b.getHeight():0,d=a.maxHeight||-1;b&&(-1===d||d>c);){var e=this.writer.addLine(b);a.positions.push(e),b=this.buildNextLine(a),b&&(c+=b.getHeight())}},e.prototype.buildNextLine=function(a){if(!a._inlines||0===a._inlines.length)return null;for(var b=new n(this.writer.context().availableWidth);a._inlines&&a._inlines.length>0&&b.hasEnoughSpaceForInline(a._inlines[0]);)b.addInline(a._inlines.shift());return b.lastLineInParagraph=0===a._inlines.length,b},e.prototype.processImage=function(a){var b=this.writer.addImage(a);a.positions.push(b)},e.prototype.processCanvas=function(a){var b=a._minHeight;this.writer.context().availableHeight<b&&this.writer.moveToNextPage(),a.canvas.forEach(function(b){var c=this.writer.addVector(b);a.positions.push(c)},this),this.writer.context().moveDown(b)},e.prototype.processQr=function(a){var b=this.writer.addQr(a);a.positions.push(b)},a.exports=e},function(a,b){"use strict";function c(){this.events={}}c.prototype.startTracking=function(a,b){var c=this.events[a]||(this.events[a]=[]);c.indexOf(b)<0&&c.push(b)},c.prototype.stopTracking=function(a,b){var c=this.events[a];if(c){var d=c.indexOf(b);d>=0&&c.splice(d,1)}},c.prototype.emit=function(a){var b=Array.prototype.slice.call(arguments,1),c=this.events[a];c&&c.forEach(function(a){a.apply(this,b)})},c.prototype.auto=function(a,b,c){this.startTracking(a,b),c(),this.stopTracking(a,b)},a.exports=c},function(a,b,c){"use strict";function d(a,b,c,d,g,h){this.textTools=new e(a),this.styleStack=new f(b,c),this.imageMeasure=d,this.tableLayouts=g,this.images=h,this.autoImageIndex=1}var e=c(14),f=c(15),g=c(16),h=c(17).fontStringify,i=c(17).pack,j=c(18);d.prototype.measureDocument=function(a){return this.measureNode(a)},d.prototype.measureNode=function(a){function b(a){var b=a._margin;return b&&(a._minWidth+=b[0]+b[2],a._maxWidth+=b[0]+b[2]),a}function c(){function b(a,b){return a.marginLeft||a.marginTop||a.marginRight||a.marginBottom?[a.marginLeft||b[0]||0,a.marginTop||b[1]||0,a.marginRight||b[2]||0,a.marginBottom||b[3]||0]:b}function c(a){for(var b={},c=a.length-1;c>=0;c--){var e=a[c],f=d.styleStack.styleDictionary[e];for(var g in f)f.hasOwnProperty(g)&&(b[g]=f[g])}return b}function e(a){return"number"==typeof a||a instanceof Number?a=[a,a,a,a]:a instanceof Array&&2===a.length&&(a=[a[0],a[1],a[0],a[1]]),a}var f=[void 0,void 0,void 0,void 0];if(a.style){var g=a.style instanceof Array?a.style:[a.style],h=c(g);h&&(f=b(h,f)),h.margin&&(f=e(h.margin))}return f=b(a,f),a.margin&&(f=e(a.margin)),void 0===f[0]&&void 0===f[1]&&void 0===f[2]&&void 0===f[3]?null:f}a instanceof Array?a={stack:a}:("string"==typeof a||a instanceof String)&&(a={text:a}),0===Object.keys(a).length&&(a={text:""});var d=this;return this.styleStack.auto(a,function(){if(a._margin=c(a),a.columns)return b(d.measureColumns(a));if(a.stack)return b(d.measureVerticalContainer(a));if(a.ul)return b(d.measureList(!1,a));if(a.ol)return b(d.measureList(!0,a));if(a.table)return b(d.measureTable(a));if(void 0!==a.text)return b(d.measureLeaf(a));if(a.image)return b(d.measureImage(a));if(a.canvas)return b(d.measureCanvas(a));if(a.qr)return b(d.measureQr(a));throw"Unrecognized document structure: "+JSON.stringify(a,h);
+this._data.core.rtl="rtl"===this.element.css("direction"),this.element[this._data.core.rtl?"addClass":"removeClass"]("jstree-rtl"),this.element.attr("role","tree"),this.settings.core.multiple&&this.element.attr("aria-multiselectable",!0),this.element.attr("tabindex")||this.element.attr("tabindex","0"),this.bind(),this.trigger("init"),this._data.core.original_container_html=this.element.find(" > ul > li").clone(!0),this._data.core.original_container_html.find("li").addBack().contents().filter(function(){return 3===this.nodeType&&(!this.nodeValue||/^\s+$/.test(this.nodeValue))}).remove(),this.element.html("<ul class='jstree-container-ul jstree-children' role='group'><li id='j"+this._id+"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='tree-item'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading"),this._data.core.li_height=this.get_container_ul().children("li").first().height()||24,this.trigger("loading"),this.load_node(a.jstree.root)},destroy:function(a){if(this._wrk)try{window.URL.revokeObjectURL(this._wrk),this._wrk=null}catch(b){}a||this.element.empty(),this.teardown()},teardown:function(){this.unbind(),this.element.removeClass("jstree").removeData("jstree").find("[class^='jstree']").addBack().attr("class",function(){return this.className.replace(/jstree[^ ]*|$/gi,"")}),this.element=null},bind:function(){var b="",c=null,d=0;this.element.on("dblclick.jstree",function(a){if(a.target.tagName&&"input"===a.target.tagName.toLowerCase())return!0;if(k.selection&&k.selection.empty)k.selection.empty();else if(window.getSelection){var b=window.getSelection();try{b.removeAllRanges(),b.collapse()}catch(c){}}}).on("mousedown.jstree",a.proxy(function(a){a.target===this.element[0]&&(a.preventDefault(),d=+new Date)},this)).on("mousedown.jstree",".jstree-ocl",function(a){a.preventDefault()}).on("click.jstree",".jstree-ocl",a.proxy(function(a){this.toggle_node(a.target)},this)).on("dblclick.jstree",".jstree-anchor",a.proxy(function(a){return a.target.tagName&&"input"===a.target.tagName.toLowerCase()?!0:void(this.settings.core.dblclick_toggle&&this.toggle_node(a.target))},this)).on("click.jstree",".jstree-anchor",a.proxy(function(b){b.preventDefault(),b.currentTarget!==k.activeElement&&a(b.currentTarget).focus(),this.activate_node(b.currentTarget,b)},this)).on("keydown.jstree",".jstree-anchor",a.proxy(function(b){if(b.target.tagName&&"input"===b.target.tagName.toLowerCase())return!0;if(32!==b.which&&13!==b.which&&(b.shiftKey||b.ctrlKey||b.altKey||b.metaKey))return!0;var c=null;switch(this._data.core.rtl&&(37===b.which?b.which=39:39===b.which&&(b.which=37)),b.which){case 32:b.ctrlKey&&(b.type="click",a(b.currentTarget).trigger(b));break;case 13:b.type="click",a(b.currentTarget).trigger(b);break;case 37:b.preventDefault(),this.is_open(b.currentTarget)?this.close_node(b.currentTarget):(c=this.get_parent(b.currentTarget),c&&c.id!==a.jstree.root&&this.get_node(c,!0).children(".jstree-anchor").focus());break;case 38:b.preventDefault(),c=this.get_prev_dom(b.currentTarget),c&&c.length&&c.children(".jstree-anchor").focus();break;case 39:b.preventDefault(),this.is_closed(b.currentTarget)?this.open_node(b.currentTarget,function(a){this.get_node(a,!0).children(".jstree-anchor").focus()}):this.is_open(b.currentTarget)&&(c=this.get_node(b.currentTarget,!0).children(".jstree-children")[0],c&&a(this._firstChild(c)).children(".jstree-anchor").focus());break;case 40:b.preventDefault(),c=this.get_next_dom(b.currentTarget),c&&c.length&&c.children(".jstree-anchor").focus();break;case 106:this.open_all();break;case 36:b.preventDefault(),c=this._firstChild(this.get_container_ul()[0]),c&&a(c).children(".jstree-anchor").filter(":visible").focus();break;case 35:b.preventDefault(),this.element.find(".jstree-anchor").filter(":visible").last().focus()}},this)).on("load_node.jstree",a.proxy(function(b,c){c.status&&(c.node.id!==a.jstree.root||this._data.core.loaded||(this._data.core.loaded=!0,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.trigger("loaded")),this._data.core.ready||setTimeout(a.proxy(function(){if(this.element&&!this.get_container_ul().find(".jstree-loading").length){if(this._data.core.ready=!0,this._data.core.selected.length){if(this.settings.core.expand_selected_onload){var b,c,d=[];for(b=0,c=this._data.core.selected.length;c>b;b++)d=d.concat(this._model.data[this._data.core.selected[b]].parents);for(d=a.vakata.array_unique(d),b=0,c=d.length;c>b;b++)this.open_node(d[b],!1,0)}this.trigger("changed",{action:"ready",selected:this._data.core.selected})}this.trigger("ready")}},this),0))},this)).on("keypress.jstree",a.proxy(function(d){if(d.target.tagName&&"input"===d.target.tagName.toLowerCase())return!0;c&&clearTimeout(c),c=setTimeout(function(){b=""},500);var e=String.fromCharCode(d.which).toLowerCase(),f=this.element.find(".jstree-anchor").filter(":visible"),g=f.index(k.activeElement)||0,h=!1;if(b+=e,b.length>1){if(f.slice(g).each(a.proxy(function(c,d){return 0===a(d).text().toLowerCase().indexOf(b)?(a(d).focus(),h=!0,!1):void 0},this)),h)return;if(f.slice(0,g).each(a.proxy(function(c,d){return 0===a(d).text().toLowerCase().indexOf(b)?(a(d).focus(),h=!0,!1):void 0},this)),h)return}if(new RegExp("^"+e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")+"+$").test(b)){if(f.slice(g+1).each(a.proxy(function(b,c){return a(c).text().toLowerCase().charAt(0)===e?(a(c).focus(),h=!0,!1):void 0},this)),h)return;if(f.slice(0,g+1).each(a.proxy(function(b,c){return a(c).text().toLowerCase().charAt(0)===e?(a(c).focus(),h=!0,!1):void 0},this)),h)return}},this)).on("init.jstree",a.proxy(function(){var a=this.settings.core.themes;this._data.core.themes.dots=a.dots,this._data.core.themes.stripes=a.stripes,this._data.core.themes.icons=a.icons,this.set_theme(a.name||"default",a.url),this.set_theme_variant(a.variant)},this)).on("loading.jstree",a.proxy(function(){this[this._data.core.themes.dots?"show_dots":"hide_dots"](),this[this._data.core.themes.icons?"show_icons":"hide_icons"](),this[this._data.core.themes.stripes?"show_stripes":"hide_stripes"]()},this)).on("blur.jstree",".jstree-anchor",a.proxy(function(b){this._data.core.focused=null,a(b.currentTarget).filter(".jstree-hovered").mouseleave(),this.element.attr("tabindex","0")},this)).on("focus.jstree",".jstree-anchor",a.proxy(function(b){var c=this.get_node(b.currentTarget);c&&c.id&&(this._data.core.focused=c.id),this.element.find(".jstree-hovered").not(b.currentTarget).mouseleave(),a(b.currentTarget).mouseenter(),this.element.attr("tabindex","-1")},this)).on("focus.jstree",a.proxy(function(){if(+new Date-d>500&&!this._data.core.focused){d=0;var a=this.get_node(this.element.attr("aria-activedescendant"),!0);a&&a.find("> .jstree-anchor").focus()}},this)).on("mouseenter.jstree",".jstree-anchor",a.proxy(function(a){this.hover_node(a.currentTarget)},this)).on("mouseleave.jstree",".jstree-anchor",a.proxy(function(a){this.dehover_node(a.currentTarget)},this))},unbind:function(){this.element.off(".jstree"),a(k).off(".jstree-"+this._id)},trigger:function(a,b){b||(b={}),b.instance=this,this.element.triggerHandler(a.replace(".jstree","")+".jstree",b)},get_container:function(){return this.element},get_container_ul:function(){return this.element.children(".jstree-children").first()},get_string:function(b){var c=this.settings.core.strings;return a.isFunction(c)?c.call(this,b):c&&c[b]?c[b]:b},_firstChild:function(a){for(a=a?a.firstChild:null;null!==a&&1!==a.nodeType;)a=a.nextSibling;return a},_nextSibling:function(a){for(a=a?a.nextSibling:null;null!==a&&1!==a.nodeType;)a=a.nextSibling;return a},_previousSibling:function(a){for(a=a?a.previousSibling:null;null!==a&&1!==a.nodeType;)a=a.previousSibling;return a},get_node:function(b,c){b&&b.id&&(b=b.id);var d;try{if(this._model.data[b])b=this._model.data[b];else if("string"==typeof b&&this._model.data[b.replace(/^#/,"")])b=this._model.data[b.replace(/^#/,"")];else if("string"==typeof b&&(d=a("#"+b.replace(a.jstree.idregex,"\\$&"),this.element)).length&&this._model.data[d.closest(".jstree-node").attr("id")])b=this._model.data[d.closest(".jstree-node").attr("id")];else if((d=a(b,this.element)).length&&this._model.data[d.closest(".jstree-node").attr("id")])b=this._model.data[d.closest(".jstree-node").attr("id")];else{if(!(d=a(b,this.element)).length||!d.hasClass("jstree"))return!1;b=this._model.data[a.jstree.root]}return c&&(b=b.id===a.jstree.root?this.element:a("#"+b.id.replace(a.jstree.idregex,"\\$&"),this.element)),b}catch(e){return!1}},get_path:function(b,c,d){if(b=b.parents?b:this.get_node(b),!b||b.id===a.jstree.root||!b.parents)return!1;var e,f,g=[];for(g.push(d?b.id:b.text),e=0,f=b.parents.length;f>e;e++)g.push(d?b.parents[e]:this.get_text(b.parents[e]));return g=g.reverse().slice(1),c?g.join(c):g},get_next_dom:function(b,c){var d;if(b=this.get_node(b,!0),b[0]===this.element[0]){for(d=this._firstChild(this.get_container_ul()[0]);d&&0===d.offsetHeight;)d=this._nextSibling(d);return d?a(d):!1}if(!b||!b.length)return!1;if(c){d=b[0];do d=this._nextSibling(d);while(d&&0===d.offsetHeight);return d?a(d):!1}if(b.hasClass("jstree-open")){for(d=this._firstChild(b.children(".jstree-children")[0]);d&&0===d.offsetHeight;)d=this._nextSibling(d);if(null!==d)return a(d)}d=b[0];do d=this._nextSibling(d);while(d&&0===d.offsetHeight);return null!==d?a(d):b.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first()},get_prev_dom:function(b,c){var d;if(b=this.get_node(b,!0),b[0]===this.element[0]){for(d=this.get_container_ul()[0].lastChild;d&&0===d.offsetHeight;)d=this._previousSibling(d);return d?a(d):!1}if(!b||!b.length)return!1;if(c){d=b[0];do d=this._previousSibling(d);while(d&&0===d.offsetHeight);return d?a(d):!1}d=b[0];do d=this._previousSibling(d);while(d&&0===d.offsetHeight);if(null!==d){for(b=a(d);b.hasClass("jstree-open");)b=b.children(".jstree-children").first().children(".jstree-node:visible:last");return b}return d=b[0].parentNode.parentNode,d&&d.className&&-1!==d.className.indexOf("jstree-node")?a(d):!1},get_parent:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.parent:!1},get_children_dom:function(a){return a=this.get_node(a,!0),a[0]===this.element[0]?this.get_container_ul().children(".jstree-node"):a&&a.length?a.children(".jstree-children").children(".jstree-node"):!1},is_parent:function(a){return a=this.get_node(a),a&&(a.state.loaded===!1||a.children.length>0)},is_loaded:function(a){return a=this.get_node(a),a&&a.state.loaded},is_loading:function(a){return a=this.get_node(a),a&&a.state&&a.state.loading},is_open:function(a){return a=this.get_node(a),a&&a.state.opened},is_closed:function(a){return a=this.get_node(a),a&&this.is_parent(a)&&!a.state.opened},is_leaf:function(a){return!this.is_parent(a)},load_node:function(b,c){var d,e,f,g,h;if(a.isArray(b))return this._load_nodes(b.slice(),c),!0;if(b=this.get_node(b),!b)return c&&c.call(this,b,!1),!1;if(b.state.loaded){for(b.state.loaded=!1,d=0,e=b.children_d.length;e>d;d++){for(f=0,g=b.parents.length;g>f;f++)this._model.data[b.parents[f]].children_d=a.vakata.array_remove_item(this._model.data[b.parents[f]].children_d,b.children_d[d]);this._model.data[b.children_d[d]].state.selected&&(h=!0,this._data.core.selected=a.vakata.array_remove_item(this._data.core.selected,b.children_d[d])),delete this._model.data[b.children_d[d]]}b.children=[],b.children_d=[],h&&this.trigger("changed",{action:"load_node",node:b,selected:this._data.core.selected})}return b.state.failed=!1,b.state.loading=!0,this.get_node(b,!0).addClass("jstree-loading").attr("aria-busy",!0),this._load_node(b,a.proxy(function(a){b=this._model.data[b.id],b.state.loading=!1,b.state.loaded=a,b.state.failed=!b.state.loaded;var d=this.get_node(b,!0),e=0,f=0,g=this._model.data,h=!1;for(e=0,f=b.children.length;f>e;e++)if(g[b.children[e]]&&!g[b.children[e]].state.hidden){h=!0;break}b.state.loaded&&!h&&d&&d.length&&!d.hasClass("jstree-leaf")&&d.removeClass("jstree-closed jstree-open").addClass("jstree-leaf"),d.removeClass("jstree-loading").attr("aria-busy",!1),this.trigger("load_node",{node:b,status:a}),c&&c.call(this,b,a)},this)),!0},_load_nodes:function(a,b,c){var d,e,f=!0,g=function(){this._load_nodes(a,b,!0)},h=this._model.data,i=[];for(d=0,e=a.length;e>d;d++)!h[a[d]]||(h[a[d]].state.loaded||h[a[d]].state.failed)&&c||(this.is_loading(a[d])||this.load_node(a[d],g),f=!1);if(f){for(d=0,e=a.length;e>d;d++)h[a[d]]&&h[a[d]].state.loaded&&i.push(a[d]);b&&!b.done&&(b.call(this,i),b.done=!0)}},load_all:function(b,c){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var d,e,f=[],g=this._model.data,h=g[b.id].children_d;for(b.state&&!b.state.loaded&&f.push(b.id),d=0,e=h.length;e>d;d++)g[h[d]]&&g[h[d]].state&&!g[h[d]].state.loaded&&f.push(h[d]);f.length?this._load_nodes(f,function(){this.load_all(b,c)}):(c&&c.call(this,b),this.trigger("load_all",{node:b}))},_load_node:function(b,c){var d,e=this.settings.core.data;return e?a.isFunction(e)?e.call(this,b,a.proxy(function(d){d===!1&&c.call(this,!1),this["string"==typeof d?"_append_html_data":"_append_json_data"](b,"string"==typeof d?a(a.parseHTML(d)).filter(function(){return 3!==this.nodeType}):d,function(a){c.call(this,a)})},this)):"object"==typeof e?e.url?(e=a.extend(!0,{},e),a.isFunction(e.url)&&(e.url=e.url.call(this,b)),a.isFunction(e.data)&&(e.data=e.data.call(this,b)),a.ajax(e).done(a.proxy(function(d,e,f){var g=f.getResponseHeader("Content-Type");return g&&-1!==g.indexOf("json")||"object"==typeof d?this._append_json_data(b,d,function(a){c.call(this,a)}):g&&-1!==g.indexOf("html")||"string"==typeof d?this._append_html_data(b,a(a.parseHTML(d)).filter(function(){return 3!==this.nodeType}),function(a){c.call(this,a)}):(this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:b.id,xhr:f})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1))},this)).fail(a.proxy(function(a){c.call(this,!1),this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:b.id,xhr:a})},this.settings.core.error.call(this,this._data.core.last_error)},this))):(d=a.isArray(e)||a.isPlainObject(e)?JSON.parse(JSON.stringify(e)):e,b.id===a.jstree.root?this._append_json_data(b,d,function(a){c.call(this,a)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_05",reason:"Could not load node",data:JSON.stringify({id:b.id})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1))):"string"==typeof e?b.id===a.jstree.root?this._append_html_data(b,a(a.parseHTML(e)).filter(function(){return 3!==this.nodeType}),function(a){c.call(this,a)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_06",reason:"Could not load node",data:JSON.stringify({id:b.id})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1)):c.call(this,!1):b.id===a.jstree.root?this._append_html_data(b,this._data.core.original_container_html.clone(!0),function(a){c.call(this,a)}):c.call(this,!1)},_node_changed:function(a){a=this.get_node(a),a&&this._model.changed.push(a.id)},_append_html_data:function(b,c,d){b=this.get_node(b),b.children=[],b.children_d=[];var e,f,g,h=c.is("ul")?c.children():c,i=b.id,j=[],k=[],l=this._model.data,m=l[i],n=this._data.core.selected.length;for(h.each(a.proxy(function(b,c){e=this._parse_model_from_html(a(c),i,m.parents.concat()),e&&(j.push(e),k.push(e),l[e].children_d.length&&(k=k.concat(l[e].children_d)))},this)),m.children=j,m.children_d=k,f=0,g=m.parents.length;g>f;f++)l[m.parents[f]].children_d=l[m.parents[f]].children_d.concat(k);this.trigger("model",{nodes:k,parent:i}),i!==a.jstree.root?(this._node_changed(i),this.redraw()):(this.get_container_ul().children(".jstree-initial-node").remove(),this.redraw(!0)),this._data.core.selected.length!==n&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),d.call(this,!0)},_append_json_data:function(b,c,d,e){if(null!==this.element){b=this.get_node(b),b.children=[],b.children_d=[],c.d&&(c=c.d,"string"==typeof c&&(c=JSON.parse(c))),a.isArray(c)||(c=[c]);var f=null,g={df:this._model.default_state,dat:c,par:b.id,m:this._model.data,t_id:this._id,t_cnt:this._cnt,sel:this._data.core.selected},h=function(a,b){a.data&&(a=a.data);var c,d,e,f,g=a.dat,h=a.par,i=[],j=[],k=[],l=a.df,m=a.t_id,n=a.t_cnt,o=a.m,p=o[h],q=a.sel,r=function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e,f,g,h,i=a.id.toString(),j={id:i,text:a.text||"",icon:a.icon!==b?a.icon:!0,parent:c,parents:d,children:a.children||[],children_d:a.children_d||[],data:a.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(e in l)l.hasOwnProperty(e)&&(j.state[e]=l[e]);if(a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(j.icon=a.data.jstree.icon),j.icon!==b&&null!==j.icon&&""!==j.icon||(j.icon=!0),a&&a.data&&(j.data=a.data,a.data.jstree))for(e in a.data.jstree)a.data.jstree.hasOwnProperty(e)&&(j.state[e]=a.data.jstree[e]);if(a&&"object"==typeof a.state)for(e in a.state)a.state.hasOwnProperty(e)&&(j.state[e]=a.state[e]);if(a&&"object"==typeof a.li_attr)for(e in a.li_attr)a.li_attr.hasOwnProperty(e)&&(j.li_attr[e]=a.li_attr[e]);if(j.li_attr.id||(j.li_attr.id=i),a&&"object"==typeof a.a_attr)for(e in a.a_attr)a.a_attr.hasOwnProperty(e)&&(j.a_attr[e]=a.a_attr[e]);for(a&&a.children&&a.children===!0&&(j.state.loaded=!1,j.children=[],j.children_d=[]),o[j.id]=j,e=0,f=j.children.length;f>e;e++)g=r(o[j.children[e]],j.id,d),h=o[g],j.children_d.push(g),h.children_d.length&&(j.children_d=j.children_d.concat(h.children_d));return delete a.data,delete a.children,o[j.id].original=a,j.state.selected&&k.push(j.id),j.id},s=function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e,f,g,h,i,j=!1;do j="j"+m+"_"+ ++n;while(o[j]);i={id:!1,text:"string"==typeof a?a:"",icon:"object"==typeof a&&a.icon!==b?a.icon:!0,parent:c,parents:d,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(e in l)l.hasOwnProperty(e)&&(i.state[e]=l[e]);if(a&&a.id&&(i.id=a.id.toString()),a&&a.text&&(i.text=a.text),a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(i.icon=a.data.jstree.icon),i.icon!==b&&null!==i.icon&&""!==i.icon||(i.icon=!0),a&&a.data&&(i.data=a.data,a.data.jstree))for(e in a.data.jstree)a.data.jstree.hasOwnProperty(e)&&(i.state[e]=a.data.jstree[e]);if(a&&"object"==typeof a.state)for(e in a.state)a.state.hasOwnProperty(e)&&(i.state[e]=a.state[e]);if(a&&"object"==typeof a.li_attr)for(e in a.li_attr)a.li_attr.hasOwnProperty(e)&&(i.li_attr[e]=a.li_attr[e]);if(i.li_attr.id&&!i.id&&(i.id=i.li_attr.id.toString()),i.id||(i.id=j),i.li_attr.id||(i.li_attr.id=i.id),a&&"object"==typeof a.a_attr)for(e in a.a_attr)a.a_attr.hasOwnProperty(e)&&(i.a_attr[e]=a.a_attr[e]);if(a&&a.children&&a.children.length){for(e=0,f=a.children.length;f>e;e++)g=s(a.children[e],i.id,d),h=o[g],i.children.push(g),h.children_d.length&&(i.children_d=i.children_d.concat(h.children_d));i.children_d=i.children_d.concat(i.children)}return a&&a.children&&a.children===!0&&(i.state.loaded=!1,i.children=[],i.children_d=[]),delete a.data,delete a.children,i.original=a,o[i.id]=i,i.state.selected&&k.push(i.id),i.id};if(g.length&&g[0].id!==b&&g[0].parent!==b){for(d=0,e=g.length;e>d;d++)g[d].children||(g[d].children=[]),o[g[d].id.toString()]=g[d];for(d=0,e=g.length;e>d;d++)o[g[d].parent.toString()].children.push(g[d].id.toString()),p.children_d.push(g[d].id.toString());for(d=0,e=p.children.length;e>d;d++)c=r(o[p.children[d]],h,p.parents.concat()),j.push(c),o[c].children_d.length&&(j=j.concat(o[c].children_d));for(d=0,e=p.parents.length;e>d;d++)o[p.parents[d]].children_d=o[p.parents[d]].children_d.concat(j);f={cnt:n,mod:o,sel:q,par:h,dpc:j,add:k}}else{for(d=0,e=g.length;e>d;d++)c=s(g[d],h,p.parents.concat()),c&&(i.push(c),j.push(c),o[c].children_d.length&&(j=j.concat(o[c].children_d)));for(p.children=i,p.children_d=j,d=0,e=p.parents.length;e>d;d++)o[p.parents[d]].children_d=o[p.parents[d]].children_d.concat(j);f={cnt:n,mod:o,sel:q,par:h,dpc:j,add:k}}return"undefined"!=typeof window&&"undefined"!=typeof window.document?f:void postMessage(f)},i=function(b,c){if(null!==this.element){if(this._cnt=b.cnt,this._model.data=b.mod,c){var e,f,g=b.add,h=b.sel,i=this._data.core.selected.slice(),j=this._model.data;if(h.length!==i.length||a.vakata.array_unique(h.concat(i)).length!==h.length){for(e=0,f=h.length;f>e;e++)-1===a.inArray(h[e],g)&&-1===a.inArray(h[e],i)&&(j[h[e]].state.selected=!1);for(e=0,f=i.length;f>e;e++)-1===a.inArray(i[e],h)&&(j[i[e]].state.selected=!0)}}b.add.length&&(this._data.core.selected=this._data.core.selected.concat(b.add)),this.trigger("model",{nodes:b.dpc,parent:b.par}),b.par!==a.jstree.root?(this._node_changed(b.par),this.redraw()):this.redraw(!0),b.add.length&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),d.call(this,!0)}};if(this.settings.core.worker&&window.Blob&&window.URL&&window.Worker)try{null===this._wrk&&(this._wrk=window.URL.createObjectURL(new window.Blob(["self.onmessage = "+h.toString()],{type:"text/javascript"}))),!this._data.core.working||e?(this._data.core.working=!0,f=new window.Worker(this._wrk),f.onmessage=a.proxy(function(a){i.call(this,a.data,!0);try{f.terminate(),f=null}catch(b){}this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1},this),g.par?f.postMessage(g):this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1):this._data.core.worker_queue.push([b,c,d,!0])}catch(j){i.call(this,h(g),!1),this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1}else i.call(this,h(g),!1)}},_parse_model_from_html:function(c,d,e){e=e?[].concat(e):[],d&&e.unshift(d);var f,g,h,i,j,k=this._model.data,l={id:!1,text:!1,icon:!0,parent:d,parents:e,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(h in this._model.default_state)this._model.default_state.hasOwnProperty(h)&&(l.state[h]=this._model.default_state[h]);if(i=a.vakata.attributes(c,!0),a.each(i,function(b,c){return c=a.trim(c),c.length?(l.li_attr[b]=c,void("id"===b&&(l.id=c.toString()))):!0}),i=c.children("a").first(),i.length&&(i=a.vakata.attributes(i,!0),a.each(i,function(b,c){c=a.trim(c),c.length&&(l.a_attr[b]=c)})),i=c.children("a").first().length?c.children("a").first().clone():c.clone(),i.children("ins, i, ul").remove(),i=i.html(),i=a("<div />").html(i),l.text=this.settings.core.force_text?i.text():i.html(),i=c.data(),l.data=i?a.extend(!0,{},i):null,l.state.opened=c.hasClass("jstree-open"),l.state.selected=c.children("a").hasClass("jstree-clicked"),l.state.disabled=c.children("a").hasClass("jstree-disabled"),l.data&&l.data.jstree)for(h in l.data.jstree)l.data.jstree.hasOwnProperty(h)&&(l.state[h]=l.data.jstree[h]);i=c.children("a").children(".jstree-themeicon"),i.length&&(l.icon=i.hasClass("jstree-themeicon-hidden")?!1:i.attr("rel")),l.state.icon!==b&&(l.icon=l.state.icon),l.icon!==b&&null!==l.icon&&""!==l.icon||(l.icon=!0),i=c.children("ul").children("li");do j="j"+this._id+"_"+ ++this._cnt;while(k[j]);return l.id=l.li_attr.id?l.li_attr.id.toString():j,i.length?(i.each(a.proxy(function(b,c){f=this._parse_model_from_html(a(c),l.id,e),g=this._model.data[f],l.children.push(f),g.children_d.length&&(l.children_d=l.children_d.concat(g.children_d))},this)),l.children_d=l.children_d.concat(l.children)):c.hasClass("jstree-closed")&&(l.state.loaded=!1),l.li_attr["class"]&&(l.li_attr["class"]=l.li_attr["class"].replace("jstree-closed","").replace("jstree-open","")),l.a_attr["class"]&&(l.a_attr["class"]=l.a_attr["class"].replace("jstree-clicked","").replace("jstree-disabled","")),k[l.id]=l,l.state.selected&&this._data.core.selected.push(l.id),l.id},_parse_model_from_flat_json:function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e,f,g,h,i=a.id.toString(),j=this._model.data,k=this._model.default_state,l={id:i,text:a.text||"",icon:a.icon!==b?a.icon:!0,parent:c,parents:d,children:a.children||[],children_d:a.children_d||[],data:a.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(e in k)k.hasOwnProperty(e)&&(l.state[e]=k[e]);if(a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(l.icon=a.data.jstree.icon),l.icon!==b&&null!==l.icon&&""!==l.icon||(l.icon=!0),a&&a.data&&(l.data=a.data,a.data.jstree))for(e in a.data.jstree)a.data.jstree.hasOwnProperty(e)&&(l.state[e]=a.data.jstree[e]);if(a&&"object"==typeof a.state)for(e in a.state)a.state.hasOwnProperty(e)&&(l.state[e]=a.state[e]);if(a&&"object"==typeof a.li_attr)for(e in a.li_attr)a.li_attr.hasOwnProperty(e)&&(l.li_attr[e]=a.li_attr[e]);if(l.li_attr.id||(l.li_attr.id=i),a&&"object"==typeof a.a_attr)for(e in a.a_attr)a.a_attr.hasOwnProperty(e)&&(l.a_attr[e]=a.a_attr[e]);for(a&&a.children&&a.children===!0&&(l.state.loaded=!1,l.children=[],l.children_d=[]),j[l.id]=l,e=0,f=l.children.length;f>e;e++)g=this._parse_model_from_flat_json(j[l.children[e]],l.id,d),h=j[g],l.children_d.push(g),h.children_d.length&&(l.children_d=l.children_d.concat(h.children_d));return delete a.data,delete a.children,j[l.id].original=a,l.state.selected&&this._data.core.selected.push(l.id),l.id},_parse_model_from_json:function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e,f,g,h,i,j=!1,k=this._model.data,l=this._model.default_state;do j="j"+this._id+"_"+ ++this._cnt;while(k[j]);i={id:!1,text:"string"==typeof a?a:"",icon:"object"==typeof a&&a.icon!==b?a.icon:!0,parent:c,parents:d,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(e in l)l.hasOwnProperty(e)&&(i.state[e]=l[e]);if(a&&a.id&&(i.id=a.id.toString()),a&&a.text&&(i.text=a.text),a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(i.icon=a.data.jstree.icon),i.icon!==b&&null!==i.icon&&""!==i.icon||(i.icon=!0),a&&a.data&&(i.data=a.data,a.data.jstree))for(e in a.data.jstree)a.data.jstree.hasOwnProperty(e)&&(i.state[e]=a.data.jstree[e]);if(a&&"object"==typeof a.state)for(e in a.state)a.state.hasOwnProperty(e)&&(i.state[e]=a.state[e]);if(a&&"object"==typeof a.li_attr)for(e in a.li_attr)a.li_attr.hasOwnProperty(e)&&(i.li_attr[e]=a.li_attr[e]);if(i.li_attr.id&&!i.id&&(i.id=i.li_attr.id.toString()),i.id||(i.id=j),i.li_attr.id||(i.li_attr.id=i.id),a&&"object"==typeof a.a_attr)for(e in a.a_attr)a.a_attr.hasOwnProperty(e)&&(i.a_attr[e]=a.a_attr[e]);if(a&&a.children&&a.children.length){for(e=0,f=a.children.length;f>e;e++)g=this._parse_model_from_json(a.children[e],i.id,d),h=k[g],i.children.push(g),h.children_d.length&&(i.children_d=i.children_d.concat(h.children_d));i.children_d=i.children_d.concat(i.children)}return a&&a.children&&a.children===!0&&(i.state.loaded=!1,i.children=[],i.children_d=[]),delete a.data,delete a.children,i.original=a,k[i.id]=i,i.state.selected&&this._data.core.selected.push(i.id),i.id},_redraw:function(){var b,c,d,e=this._model.force_full_redraw?this._model.data[a.jstree.root].children.concat([]):this._model.changed.concat([]),f=k.createElement("UL"),g=this._data.core.focused;for(c=0,d=e.length;d>c;c++)b=this.redraw_node(e[c],!0,this._model.force_full_redraw),b&&this._model.force_full_redraw&&f.appendChild(b);this._model.force_full_redraw&&(f.className=this.get_container_ul()[0].className,f.setAttribute("role","group"),this.element.empty().append(f)),null!==g&&(b=this.get_node(g,!0),b&&b.length&&b.children(".jstree-anchor")[0]!==k.activeElement?b.children(".jstree-anchor").focus():this._data.core.focused=null),this._model.force_full_redraw=!1,this._model.changed=[],this.trigger("redraw",{nodes:e})},redraw:function(a){a&&(this._model.force_full_redraw=!0),this._redraw()},draw_children:function(b){var c=this.get_node(b),d=!1,e=!1,f=!1,g=k;if(!c)return!1;if(c.id===a.jstree.root)return this.redraw(!0);if(b=this.get_node(b,!0),!b||!b.length)return!1;if(b.children(".jstree-children").remove(),b=b[0],c.children.length&&c.state.loaded){for(f=g.createElement("UL"),f.setAttribute("role","group"),f.className="jstree-children",d=0,e=c.children.length;e>d;d++)f.appendChild(this.redraw_node(c.children[d],!0,!0));b.appendChild(f)}},redraw_node:function(b,c,d,e){var f=this.get_node(b),g=!1,h=!1,i=!1,j=!1,m=!1,n=!1,o="",p=k,q=this._model.data,r=!1,s=null,t=0,u=0,v=!1,w=!1;if(!f)return!1;if(f.id===a.jstree.root)return this.redraw(!0);if(c=c||0===f.children.length,b=k.querySelector?this.element[0].querySelector("#"+(-1!=="0123456789".indexOf(f.id[0])?"\\3"+f.id[0]+" "+f.id.substr(1).replace(a.jstree.idregex,"\\$&"):f.id.replace(a.jstree.idregex,"\\$&"))):k.getElementById(f.id))b=a(b),d||(g=b.parent().parent()[0],g===this.element[0]&&(g=null),h=b.index()),c||!f.children.length||b.children(".jstree-children").length||(c=!0),c||(i=b.children(".jstree-children")[0]),r=b.children(".jstree-anchor")[0]===k.activeElement,b.remove();else if(c=!0,!d){if(g=f.parent!==a.jstree.root?a("#"+f.parent.replace(a.jstree.idregex,"\\$&"),this.element)[0]:null,!(null===g||g&&q[f.parent].state.opened))return!1;h=a.inArray(f.id,null===g?q[a.jstree.root].children:q[f.parent].children)}b=l.cloneNode(!0),o="jstree-node ";for(j in f.li_attr)if(f.li_attr.hasOwnProperty(j)){if("id"===j)continue;"class"!==j?b.setAttribute(j,f.li_attr[j]):o+=f.li_attr[j]}for(f.a_attr.id||(f.a_attr.id=f.id+"_anchor"),b.setAttribute("aria-selected",!!f.state.selected),b.setAttribute("aria-level",f.parents.length),b.setAttribute("aria-labelledby",f.a_attr.id),f.state.disabled&&b.setAttribute("aria-disabled",!0),j=0,m=f.children.length;m>j;j++)if(!q[f.children[j]].state.hidden){v=!0;break}if(null!==f.parent&&q[f.parent]&&!f.state.hidden&&(j=a.inArray(f.id,q[f.parent].children),w=f.id,-1!==j))for(j++,m=q[f.parent].children.length;m>j&&(q[q[f.parent].children[j]].state.hidden||(w=q[f.parent].children[j]),w===f.id);j++);f.state.hidden&&(o+=" jstree-hidden"),f.state.loaded&&!v?o+=" jstree-leaf":(o+=f.state.opened&&f.state.loaded?" jstree-open":" jstree-closed",b.setAttribute("aria-expanded",f.state.opened&&f.state.loaded)),w===f.id&&(o+=" jstree-last"),b.id=f.id,b.className=o,o=(f.state.selected?" jstree-clicked":"")+(f.state.disabled?" jstree-disabled":"");for(m in f.a_attr)if(f.a_attr.hasOwnProperty(m)){if("href"===m&&"#"===f.a_attr[m])continue;"class"!==m?b.childNodes[1].setAttribute(m,f.a_attr[m]):o+=" "+f.a_attr[m]}if(o.length&&(b.childNodes[1].className="jstree-anchor "+o),(f.icon&&f.icon!==!0||f.icon===!1)&&(f.icon===!1?b.childNodes[1].childNodes[0].className+=" jstree-themeicon-hidden":-1===f.icon.indexOf("/")&&-1===f.icon.indexOf(".")?b.childNodes[1].childNodes[0].className+=" "+f.icon+" jstree-themeicon-custom":(b.childNodes[1].childNodes[0].style.backgroundImage="url("+f.icon+")",b.childNodes[1].childNodes[0].style.backgroundPosition="center center",b.childNodes[1].childNodes[0].style.backgroundSize="auto",b.childNodes[1].childNodes[0].className+=" jstree-themeicon-custom")),this.settings.core.force_text?b.childNodes[1].appendChild(p.createTextNode(f.text)):b.childNodes[1].innerHTML+=f.text,c&&f.children.length&&(f.state.opened||e)&&f.state.loaded){for(n=p.createElement("UL"),n.setAttribute("role","group"),n.className="jstree-children",j=0,m=f.children.length;m>j;j++)n.appendChild(this.redraw_node(f.children[j],c,!0));b.appendChild(n)}if(i&&b.appendChild(i),!d){for(g||(g=this.element[0]),j=0,m=g.childNodes.length;m>j;j++)if(g.childNodes[j]&&g.childNodes[j].className&&-1!==g.childNodes[j].className.indexOf("jstree-children")){s=g.childNodes[j];break}s||(s=p.createElement("UL"),s.setAttribute("role","group"),s.className="jstree-children",g.appendChild(s)),g=s,h<g.childNodes.length?g.insertBefore(b,g.childNodes[h]):g.appendChild(b),r&&(t=this.element[0].scrollTop,u=this.element[0].scrollLeft,b.childNodes[1].focus(),this.element[0].scrollTop=t,this.element[0].scrollLeft=u)}return f.state.opened&&!f.state.loaded&&(f.state.opened=!1,
+setTimeout(a.proxy(function(){this.open_node(f.id,!1,0)},this),0)),b},open_node:function(c,d,e){var f,g,h,i;if(a.isArray(c)){for(c=c.slice(),f=0,g=c.length;g>f;f++)this.open_node(c[f],d,e);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?(e=e===b?this.settings.core.animation:e,this.is_closed(c)?this.is_loaded(c)?(h=this.get_node(c,!0),i=this,h.length&&(e&&h.children(".jstree-children").length&&h.children(".jstree-children").stop(!0,!0),c.children.length&&!this._firstChild(h.children(".jstree-children")[0])&&this.draw_children(c),e?(this.trigger("before_open",{node:c}),h.children(".jstree-children").css("display","none").end().removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded",!0).children(".jstree-children").stop(!0,!0).slideDown(e,function(){this.style.display="",i.trigger("after_open",{node:c})})):(this.trigger("before_open",{node:c}),h[0].className=h[0].className.replace("jstree-closed","jstree-open"),h[0].setAttribute("aria-expanded",!0))),c.state.opened=!0,d&&d.call(this,c,!0),h.length||this.trigger("before_open",{node:c}),this.trigger("open_node",{node:c}),e&&h.length||this.trigger("after_open",{node:c}),!0):this.is_loading(c)?setTimeout(a.proxy(function(){this.open_node(c,d,e)},this),500):void this.load_node(c,function(a,b){return b?this.open_node(a,d,e):d?d.call(this,a,!1):!1}):(d&&d.call(this,c,!1),!1)):!1},_open_to:function(b){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var c,d,e=b.parents;for(c=0,d=e.length;d>c;c+=1)c!==a.jstree.root&&this.open_node(e[c],!1,0);return a("#"+b.id.replace(a.jstree.idregex,"\\$&"),this.element)},close_node:function(c,d){var e,f,g,h;if(a.isArray(c)){for(c=c.slice(),e=0,f=c.length;f>e;e++)this.close_node(c[e],d);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?this.is_closed(c)?!1:(d=d===b?this.settings.core.animation:d,g=this,h=this.get_node(c,!0),h.length&&(d?h.children(".jstree-children").attr("style","display:block !important").end().removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded",!1).children(".jstree-children").stop(!0,!0).slideUp(d,function(){this.style.display="",h.children(".jstree-children").remove(),g.trigger("after_close",{node:c})}):(h[0].className=h[0].className.replace("jstree-open","jstree-closed"),h.attr("aria-expanded",!1).children(".jstree-children").remove())),c.state.opened=!1,this.trigger("close_node",{node:c}),void(d&&h.length||this.trigger("after_close",{node:c}))):!1},toggle_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.toggle_node(b[c]);return!0}return this.is_closed(b)?this.open_node(b):this.is_open(b)?this.close_node(b):void 0},open_all:function(b,c,d){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var e,f,g,h=b.id===a.jstree.root?this.get_container_ul():this.get_node(b,!0);if(!h.length){for(e=0,f=b.children_d.length;f>e;e++)this.is_closed(this._model.data[b.children_d[e]])&&(this._model.data[b.children_d[e]].state.opened=!0);return this.trigger("open_all",{node:b})}d=d||h,g=this,h=this.is_closed(b)?h.find(".jstree-closed").addBack():h.find(".jstree-closed"),h.each(function(){g.open_node(this,function(a,b){b&&this.is_parent(a)&&this.open_all(a,c,d)},c||0)}),0===d.find(".jstree-closed").length&&this.trigger("open_all",{node:this.get_node(d)})},close_all:function(b,c){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var d,e,f=b.id===a.jstree.root?this.get_container_ul():this.get_node(b,!0),g=this;for(f.length&&(f=this.is_open(b)?f.find(".jstree-open").addBack():f.find(".jstree-open"),a(f.get().reverse()).each(function(){g.close_node(this,c||0)})),d=0,e=b.children_d.length;e>d;d++)this._model.data[b.children_d[d]].state.opened=!1;this.trigger("close_all",{node:b})},is_disabled:function(a){return a=this.get_node(a),a&&a.state&&a.state.disabled},enable_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.enable_node(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.state.disabled=!1,this.get_node(b,!0).children(".jstree-anchor").removeClass("jstree-disabled").attr("aria-disabled",!1),void this.trigger("enable_node",{node:b})):!1},disable_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.disable_node(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.state.disabled=!0,this.get_node(b,!0).children(".jstree-anchor").addClass("jstree-disabled").attr("aria-disabled",!0),void this.trigger("disable_node",{node:b})):!1},hide_node:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.hide_node(b[d],!0);return this.redraw(),!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?void(b.state.hidden||(b.state.hidden=!0,this._node_changed(b.parent),c||this.redraw(),this.trigger("hide_node",{node:b}))):!1},show_node:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.show_node(b[d],!0);return this.redraw(),!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?void(b.state.hidden&&(b.state.hidden=!1,this._node_changed(b.parent),c||this.redraw(),this.trigger("show_node",{node:b}))):!1},hide_all:function(b){var c,d=this._model.data,e=[];for(c in d)d.hasOwnProperty(c)&&c!==a.jstree.root&&!d[c].state.hidden&&(d[c].state.hidden=!0,e.push(c));return this._model.force_full_redraw=!0,b||this.redraw(),this.trigger("hide_all",{nodes:e}),e},show_all:function(b){var c,d=this._model.data,e=[];for(c in d)d.hasOwnProperty(c)&&c!==a.jstree.root&&d[c].state.hidden&&(d[c].state.hidden=!1,e.push(c));return this._model.force_full_redraw=!0,b||this.redraw(),this.trigger("show_all",{nodes:e}),e},activate_node:function(a,c){if(this.is_disabled(a))return!1;if(c&&"object"==typeof c||(c={}),this._data.core.last_clicked=this._data.core.last_clicked&&this._data.core.last_clicked.id!==b?this.get_node(this._data.core.last_clicked.id):null,this._data.core.last_clicked&&!this._data.core.last_clicked.state.selected&&(this._data.core.last_clicked=null),!this._data.core.last_clicked&&this._data.core.selected.length&&(this._data.core.last_clicked=this.get_node(this._data.core.selected[this._data.core.selected.length-1])),this.settings.core.multiple&&(c.metaKey||c.ctrlKey||c.shiftKey)&&(!c.shiftKey||this._data.core.last_clicked&&this.get_parent(a)&&this.get_parent(a)===this._data.core.last_clicked.parent))if(c.shiftKey){var d,e,f=this.get_node(a).id,g=this._data.core.last_clicked.id,h=this.get_node(this._data.core.last_clicked.parent).children,i=!1;for(d=0,e=h.length;e>d;d+=1)h[d]===f&&(i=!i),h[d]===g&&(i=!i),this.is_disabled(h[d])||!i&&h[d]!==f&&h[d]!==g?this.deselect_node(h[d],!0,c):this.select_node(h[d],!0,!1,c);this.trigger("changed",{action:"select_node",node:this.get_node(a),selected:this._data.core.selected,event:c})}else this.is_selected(a)?this.deselect_node(a,!1,c):this.select_node(a,!1,!1,c);else!this.settings.core.multiple&&(c.metaKey||c.ctrlKey||c.shiftKey)&&this.is_selected(a)?this.deselect_node(a,!1,c):(this.deselect_all(!0),this.select_node(a,!1,!1,c),this._data.core.last_clicked=this.get_node(a));this.trigger("activate_node",{node:this.get_node(a),event:c})},hover_node:function(a){if(a=this.get_node(a,!0),!a||!a.length||a.children(".jstree-hovered").length)return!1;var b=this.element.find(".jstree-hovered"),c=this.element;b&&b.length&&this.dehover_node(b),a.children(".jstree-anchor").addClass("jstree-hovered"),this.trigger("hover_node",{node:this.get_node(a)}),setTimeout(function(){c.attr("aria-activedescendant",a[0].id)},0)},dehover_node:function(a){return a=this.get_node(a,!0),a&&a.length&&a.children(".jstree-hovered").length?(a.children(".jstree-anchor").removeClass("jstree-hovered"),void this.trigger("dehover_node",{node:this.get_node(a)})):!1},select_node:function(b,c,d,e){var f,g,h;if(a.isArray(b)){for(b=b.slice(),g=0,h=b.length;h>g;g++)this.select_node(b[g],c,d,e);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=this.get_node(b,!0),void(b.state.selected||(b.state.selected=!0,this._data.core.selected.push(b.id),d||(f=this._open_to(b)),f&&f.length&&f.attr("aria-selected",!0).children(".jstree-anchor").addClass("jstree-clicked"),this.trigger("select_node",{node:b,selected:this._data.core.selected,event:e}),c||this.trigger("changed",{action:"select_node",node:b,selected:this._data.core.selected,event:e})))):!1},deselect_node:function(b,c,d){var e,f,g;if(a.isArray(b)){for(b=b.slice(),e=0,f=b.length;f>e;e++)this.deselect_node(b[e],c,d);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(g=this.get_node(b,!0),void(b.state.selected&&(b.state.selected=!1,this._data.core.selected=a.vakata.array_remove_item(this._data.core.selected,b.id),g.length&&g.attr("aria-selected",!1).children(".jstree-anchor").removeClass("jstree-clicked"),this.trigger("deselect_node",{node:b,selected:this._data.core.selected,event:d}),c||this.trigger("changed",{action:"deselect_node",node:b,selected:this._data.core.selected,event:d})))):!1},select_all:function(b){var c,d,e=this._data.core.selected.concat([]);for(this._data.core.selected=this._model.data[a.jstree.root].children_d.concat(),c=0,d=this._data.core.selected.length;d>c;c++)this._model.data[this._data.core.selected[c]]&&(this._model.data[this._data.core.selected[c]].state.selected=!0);this.redraw(!0),this.trigger("select_all",{selected:this._data.core.selected}),b||this.trigger("changed",{action:"select_all",selected:this._data.core.selected,old_selection:e})},deselect_all:function(a){var b,c,d=this._data.core.selected.concat([]);for(b=0,c=this._data.core.selected.length;c>b;b++)this._model.data[this._data.core.selected[b]]&&(this._model.data[this._data.core.selected[b]].state.selected=!1);this._data.core.selected=[],this.element.find(".jstree-clicked").removeClass("jstree-clicked").parent().attr("aria-selected",!1),this.trigger("deselect_all",{selected:this._data.core.selected,node:d}),a||this.trigger("changed",{action:"deselect_all",selected:this._data.core.selected,old_selection:d})},is_selected:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.state.selected:!1},get_selected:function(b){return b?a.map(this._data.core.selected,a.proxy(function(a){return this.get_node(a)},this)):this._data.core.selected.slice()},get_top_selected:function(b){var c,d,e,f,g=this.get_selected(!0),h={};for(c=0,d=g.length;d>c;c++)h[g[c].id]=g[c];for(c=0,d=g.length;d>c;c++)for(e=0,f=g[c].children_d.length;f>e;e++)h[g[c].children_d[e]]&&delete h[g[c].children_d[e]];g=[];for(c in h)h.hasOwnProperty(c)&&g.push(c);return b?a.map(g,a.proxy(function(a){return this.get_node(a)},this)):g},get_bottom_selected:function(b){var c,d,e=this.get_selected(!0),f=[];for(c=0,d=e.length;d>c;c++)e[c].children.length||f.push(e[c].id);return b?a.map(f,a.proxy(function(a){return this.get_node(a)},this)):f},get_state:function(){var b,c={core:{open:[],scroll:{left:this.element.scrollLeft(),top:this.element.scrollTop()},selected:[]}};for(b in this._model.data)this._model.data.hasOwnProperty(b)&&b!==a.jstree.root&&(this._model.data[b].state.opened&&c.core.open.push(b),this._model.data[b].state.selected&&c.core.selected.push(b));return c},set_state:function(c,d){if(c){if(c.core){var e,f;if(c.core.open)return a.isArray(c.core.open)&&c.core.open.length?this._load_nodes(c.core.open,function(a){this.open_node(a,!1,0),delete c.core.open,this.set_state(c,d)},!0):(delete c.core.open,this.set_state(c,d)),!1;if(c.core.scroll)return c.core.scroll&&c.core.scroll.left!==b&&this.element.scrollLeft(c.core.scroll.left),c.core.scroll&&c.core.scroll.top!==b&&this.element.scrollTop(c.core.scroll.top),delete c.core.scroll,this.set_state(c,d),!1;if(c.core.selected)return e=this,this.deselect_all(),a.each(c.core.selected,function(a,b){e.select_node(b,!1,!0)}),delete c.core.selected,this.set_state(c,d),!1;for(f in c)c.hasOwnProperty(f)&&"core"!==f&&-1===a.inArray(f,this.settings.plugins)&&delete c[f];if(a.isEmptyObject(c.core))return delete c.core,this.set_state(c,d),!1}return a.isEmptyObject(c)?(c=null,d&&d.call(this),this.trigger("set_state"),!1):!0}return!1},refresh:function(b,c){this._data.core.state=c===!0?{}:this.get_state(),c&&a.isFunction(c)&&(this._data.core.state=c.call(this,this._data.core.state)),this._cnt=0,this._model.data={},this._model.data[a.jstree.root]={id:a.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this._data.core.selected=[],this._data.core.last_clicked=null,this._data.core.focused=null;var d=this.get_container_ul()[0].className;b||(this.element.html("<ul class='"+d+"' role='group'><li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading")),this.load_node(a.jstree.root,function(b,c){c&&(this.get_container_ul()[0].className=d,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.set_state(a.extend(!0,{},this._data.core.state),function(){this.trigger("refresh")})),this._data.core.state=null})},refresh_node:function(b){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var c=[],d=[];this._data.core.selected.concat([]);d.push(b.id),b.state.opened===!0&&c.push(b.id),this.get_node(b,!0).find(".jstree-open").each(function(){c.push(this.id)}),this._load_nodes(d,a.proxy(function(a){this.open_node(c,!1,0),this.select_node(this._data.core.selected),this.trigger("refresh_node",{node:b,nodes:a})},this))},set_id:function(b,c){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var d,e,f=this._model.data;for(c=c.toString(),f[b.parent].children[a.inArray(b.id,f[b.parent].children)]=c,d=0,e=b.parents.length;e>d;d++)f[b.parents[d]].children_d[a.inArray(b.id,f[b.parents[d]].children_d)]=c;for(d=0,e=b.children.length;e>d;d++)f[b.children[d]].parent=c;for(d=0,e=b.children_d.length;e>d;d++)f[b.children_d[d]].parents[a.inArray(b.id,f[b.children_d[d]].parents)]=c;return d=a.inArray(b.id,this._data.core.selected),-1!==d&&(this._data.core.selected[d]=c),d=this.get_node(b.id,!0),d&&(d.attr("id",c).children(".jstree-anchor").attr("id",c+"_anchor").end().attr("aria-labelledby",c+"_anchor"),this.element.attr("aria-activedescendant")===b.id&&this.element.attr("aria-activedescendant",c)),delete f[b.id],b.id=c,b.li_attr.id=c,f[c]=b,!0},get_text:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.text:!1},set_text:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.set_text(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.text=c,this.get_node(b,!0).length&&this.redraw_node(b.id),this.trigger("set_text",{obj:b,text:c}),!0):!1},get_json:function(b,c,d){if(b=this.get_node(b||a.jstree.root),!b)return!1;c&&c.flat&&!d&&(d=[]);var e,f,g={id:b.id,text:b.text,icon:this.get_icon(b),li_attr:a.extend(!0,{},b.li_attr),a_attr:a.extend(!0,{},b.a_attr),state:{},data:c&&c.no_data?!1:a.extend(!0,{},b.data)};if(c&&c.flat?g.parent=b.parent:g.children=[],!c||!c.no_state)for(e in b.state)b.state.hasOwnProperty(e)&&(g.state[e]=b.state[e]);if(c&&c.no_id&&(delete g.id,g.li_attr&&g.li_attr.id&&delete g.li_attr.id,g.a_attr&&g.a_attr.id&&delete g.a_attr.id),c&&c.flat&&b.id!==a.jstree.root&&d.push(g),!c||!c.no_children)for(e=0,f=b.children.length;f>e;e++)c&&c.flat?this.get_json(b.children[e],c,d):g.children.push(this.get_json(b.children[e],c));return c&&c.flat?d:b.id===a.jstree.root?g.children:g},create_node:function(c,d,e,f,g){if(null===c&&(c=a.jstree.root),c=this.get_node(c),!c)return!1;if(e=e===b?"last":e,!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(c))return this.load_node(c,function(){this.create_node(c,d,e,f,!0)});d||(d={text:this.get_string("New node")}),"string"==typeof d&&(d={text:d}),d.text===b&&(d.text=this.get_string("New node"));var h,i,j,k;switch(c.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":h=this.get_node(c.parent),e=a.inArray(c.id,h.children),c=h;break;case"after":h=this.get_node(c.parent),e=a.inArray(c.id,h.children)+1,c=h;break;case"inside":case"first":e=0;break;case"last":e=c.children.length;break;default:e||(e=0)}if(e>c.children.length&&(e=c.children.length),d.id||(d.id=!0),!this.check("create_node",d,c,e))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(d.id===!0&&delete d.id,d=this._parse_model_from_json(d,c.id,c.parents.concat()),!d)return!1;for(h=this.get_node(d),i=[],i.push(d),i=i.concat(h.children_d),this.trigger("model",{nodes:i,parent:c.id}),c.children_d=c.children_d.concat(i),j=0,k=c.parents.length;k>j;j++)this._model.data[c.parents[j]].children_d=this._model.data[c.parents[j]].children_d.concat(i);for(d=h,h=[],j=0,k=c.children.length;k>j;j++)h[j>=e?j+1:j]=c.children[j];return h[e]=d.id,c.children=h,this.redraw_node(c,!0),f&&f.call(this,this.get_node(d)),this.trigger("create_node",{node:this.get_node(d),parent:c.id,position:e}),d.id},rename_node:function(b,c){var d,e,f;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.rename_node(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=b.text,this.check("rename_node",b,this.get_parent(b),c)?(this.set_text(b,c),this.trigger("rename_node",{node:b,text:c,old:f}),!0):(this.settings.core.error.call(this,this._data.core.last_error),!1)):!1},delete_node:function(b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.delete_node(b[c]);return!0}if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;if(e=this.get_node(b.parent),f=a.inArray(b.id,e.children),l=!1,!this.check("delete_node",b,e,f))return this.settings.core.error.call(this,this._data.core.last_error),!1;for(-1!==f&&(e.children=a.vakata.array_remove(e.children,f)),g=b.children_d.concat([]),g.push(b.id),j=0,k=g.length;k>j;j++){for(h=0,i=b.parents.length;i>h;h++)f=a.inArray(g[j],this._model.data[b.parents[h]].children_d),-1!==f&&(this._model.data[b.parents[h]].children_d=a.vakata.array_remove(this._model.data[b.parents[h]].children_d,f));this._model.data[g[j]].state.selected&&(l=!0,f=a.inArray(g[j],this._data.core.selected),-1!==f&&(this._data.core.selected=a.vakata.array_remove(this._data.core.selected,f)))}for(this.trigger("delete_node",{node:b,parent:e.id}),l&&this.trigger("changed",{action:"delete_node",node:b,selected:this._data.core.selected,parent:e.id}),j=0,k=g.length;k>j;j++)delete this._model.data[g[j]];return-1!==a.inArray(this._data.core.focused,g)&&(this._data.core.focused=null,m=this.element[0].scrollTop,n=this.element[0].scrollLeft,e.id===a.jstree.root?this.get_node(this._model.data[a.jstree.root].children[0],!0).children(".jstree-anchor").focus():this.get_node(e,!0).children(".jstree-anchor").focus(),this.element[0].scrollTop=m,this.element[0].scrollLeft=n),this.redraw_node(e,!0),!0},check:function(b,c,d,e,f){c=c&&c.id?c:this.get_node(c),d=d&&d.id?d:this.get_node(d);var g=b.match(/^move_node|copy_node|create_node$/i)?d:c,h=this.settings.core.check_callback;return"move_node"!==b&&"copy_node"!==b||f&&f.is_multi||c.id!==d.id&&a.inArray(c.id,d.children)!==e&&-1===a.inArray(d.id,c.children_d)?(g&&g.data&&(g=g.data),g&&g.functions&&(g.functions[b]===!1||g.functions[b]===!0)?(g.functions[b]===!1&&(this._data.core.last_error={error:"check",plugin:"core",id:"core_02",reason:"Node data prevents function: "+b,data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})}),g.functions[b]):h===!1||a.isFunction(h)&&h.call(this,b,c,d,e,f)===!1||h&&h[b]===!1?(this._data.core.last_error={error:"check",plugin:"core",id:"core_03",reason:"User config for core.check_callback prevents function: "+b,data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})},!1):!0):(this._data.core.last_error={error:"check",plugin:"core",id:"core_01",reason:"Moving parent inside child",data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})},!1)},last_error:function(){return this._data.core.last_error},move_node:function(c,d,e,f,g,h,i){var j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(d=this.get_node(d),e=e===b?0:e,!d)return!1;if(!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(d))return this.load_node(d,function(){this.move_node(c,d,e,f,!0,!1,i)});if(a.isArray(c)){if(1!==c.length){for(j=0,k=c.length;k>j;j++)(r=this.move_node(c[j],d,e,f,g,!1,i))&&(d=r,e="after");return this.redraw(),!0}c=c[0]}if(c=c&&c.id?c:this.get_node(c),!c||c.id===a.jstree.root)return!1;if(l=(c.parent||a.jstree.root).toString(),n=e.toString().match(/^(before|after)$/)&&d.id!==a.jstree.root?this.get_node(d.parent):d,o=i?i:this._model.data[c.id]?this:a.jstree.reference(c.id),p=!o||!o._id||this._id!==o._id,m=o&&o._id&&l&&o._model.data[l]&&o._model.data[l].children?a.inArray(c.id,o._model.data[l].children):-1,o&&o._id&&(c=o._model.data[c.id]),p)return(r=this.copy_node(c,d,e,f,g,!1,i))?(o&&o.delete_node(c),r):!1;switch(d.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":e=a.inArray(d.id,n.children);break;case"after":e=a.inArray(d.id,n.children)+1;break;case"inside":case"first":e=0;break;case"last":e=n.children.length;break;default:e||(e=0)}if(e>n.children.length&&(e=n.children.length),!this.check("move_node",c,n,e,{core:!0,origin:i,is_multi:o&&o._id&&o._id!==this._id,is_foreign:!o||!o._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(c.parent===n.id){for(q=n.children.concat(),r=a.inArray(c.id,q),-1!==r&&(q=a.vakata.array_remove(q,r),e>r&&e--),r=[],s=0,t=q.length;t>s;s++)r[s>=e?s+1:s]=q[s];r[e]=c.id,n.children=r,this._node_changed(n.id),this.redraw(n.id===a.jstree.root)}else{for(r=c.children_d.concat(),r.push(c.id),s=0,t=c.parents.length;t>s;s++){for(q=[],w=o._model.data[c.parents[s]].children_d,u=0,v=w.length;v>u;u++)-1===a.inArray(w[u],r)&&q.push(w[u]);o._model.data[c.parents[s]].children_d=q}for(o._model.data[l].children=a.vakata.array_remove_item(o._model.data[l].children,c.id),s=0,t=n.parents.length;t>s;s++)this._model.data[n.parents[s]].children_d=this._model.data[n.parents[s]].children_d.concat(r);for(q=[],s=0,t=n.children.length;t>s;s++)q[s>=e?s+1:s]=n.children[s];for(q[e]=c.id,n.children=q,n.children_d.push(c.id),n.children_d=n.children_d.concat(c.children_d),c.parent=n.id,r=n.parents.concat(),r.unshift(n.id),w=c.parents.length,c.parents=r,r=r.concat(),s=0,t=c.children_d.length;t>s;s++)this._model.data[c.children_d[s]].parents=this._model.data[c.children_d[s]].parents.slice(0,-1*w),Array.prototype.push.apply(this._model.data[c.children_d[s]].parents,r);l!==a.jstree.root&&n.id!==a.jstree.root||(this._model.force_full_redraw=!0),this._model.force_full_redraw||(this._node_changed(l),this._node_changed(n.id)),h||this.redraw()}return f&&f.call(this,c,n,e),this.trigger("move_node",{node:c,parent:n.id,position:e,old_parent:l,old_position:m,is_multi:o&&o._id&&o._id!==this._id,is_foreign:!o||!o._id,old_instance:o,new_instance:this}),c.id},copy_node:function(c,d,e,f,g,h,i){var j,k,l,m,n,o,p,q,r,s,t;if(d=this.get_node(d),e=e===b?0:e,!d)return!1;if(!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(d))return this.load_node(d,function(){this.copy_node(c,d,e,f,!0,!1,i)});if(a.isArray(c)){if(1!==c.length){for(j=0,k=c.length;k>j;j++)(m=this.copy_node(c[j],d,e,f,g,!0,i))&&(d=m,e="after");return this.redraw(),!0}c=c[0]}if(c=c&&c.id?c:this.get_node(c),!c||c.id===a.jstree.root)return!1;switch(q=(c.parent||a.jstree.root).toString(),r=e.toString().match(/^(before|after)$/)&&d.id!==a.jstree.root?this.get_node(d.parent):d,s=i?i:this._model.data[c.id]?this:a.jstree.reference(c.id),t=!s||!s._id||this._id!==s._id,s&&s._id&&(c=s._model.data[c.id]),d.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":e=a.inArray(d.id,r.children);break;case"after":e=a.inArray(d.id,r.children)+1;break;case"inside":case"first":e=0;break;case"last":e=r.children.length;break;default:e||(e=0)}if(e>r.children.length&&(e=r.children.length),!this.check("copy_node",c,r,e,{core:!0,origin:i,is_multi:s&&s._id&&s._id!==this._id,is_foreign:!s||!s._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(p=s?s.get_json(c,{no_id:!0,no_data:!0,no_state:!0}):c,!p)return!1;if(p.id===!0&&delete p.id,p=this._parse_model_from_json(p,r.id,r.parents.concat()),!p)return!1;for(m=this.get_node(p),c&&c.state&&c.state.loaded===!1&&(m.state.loaded=!1),l=[],l.push(p),l=l.concat(m.children_d),this.trigger("model",{nodes:l,parent:r.id}),n=0,o=r.parents.length;o>n;n++)this._model.data[r.parents[n]].children_d=this._model.data[r.parents[n]].children_d.concat(l);for(l=[],n=0,o=r.children.length;o>n;n++)l[n>=e?n+1:n]=r.children[n];return l[e]=m.id,r.children=l,r.children_d.push(m.id),r.children_d=r.children_d.concat(m.children_d),r.id===a.jstree.root&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||this._node_changed(r.id),h||this.redraw(r.id===a.jstree.root),f&&f.call(this,m,r,e),this.trigger("copy_node",{node:m,original:c,parent:r.id,position:e,old_parent:q,old_position:s&&s._id&&q&&s._model.data[q]&&s._model.data[q].children?a.inArray(c.id,s._model.data[q].children):-1,is_multi:s&&s._id&&s._id!==this._id,is_foreign:!s||!s._id,old_instance:s,new_instance:this}),m.id},cut:function(b){if(b||(b=this._data.core.selected.concat()),a.isArray(b)||(b=[b]),!b.length)return!1;var c,d,e,i=[];for(d=0,e=b.length;e>d;d++)c=this.get_node(b[d]),c&&c.id&&c.id!==a.jstree.root&&i.push(c);return i.length?(f=i,h=this,g="move_node",void this.trigger("cut",{node:b})):!1},copy:function(b){if(b||(b=this._data.core.selected.concat()),a.isArray(b)||(b=[b]),!b.length)return!1;var c,d,e,i=[];for(d=0,e=b.length;e>d;d++)c=this.get_node(b[d]),c&&c.id&&c.id!==a.jstree.root&&i.push(c);return i.length?(f=i,h=this,g="copy_node",void this.trigger("copy",{node:b})):!1},get_buffer:function(){return{mode:g,node:f,inst:h}},can_paste:function(){return g!==!1&&f!==!1},paste:function(a,b){return a=this.get_node(a),a&&g&&g.match(/^(copy_node|move_node)$/)&&f?(this[g](f,a,b,!1,!1,!1,h)&&this.trigger("paste",{parent:a.id,node:f,mode:g}),f=!1,g=!1,void(h=!1)):!1},clear_buffer:function(){f=!1,g=!1,h=!1,this.trigger("clear_buffer")},edit:function(b,c,d){var e,f,g,h,i,j,k,l,m,n=!1;return(b=this.get_node(b))?this.settings.core.check_callback===!1?(this._data.core.last_error={error:"check",plugin:"core",id:"core_07",reason:"Could not edit node because of check_callback"},this.settings.core.error.call(this,this._data.core.last_error),!1):(m=b,c="string"==typeof c?c:b.text,this.set_text(b,""),b=this._open_to(b),m.text=c,e=this._data.core.rtl,f=this.element.width(),this._data.core.focused=m.id,g=b.children(".jstree-anchor").focus(),h=a("<span>"),i=c,j=a("<div />",{css:{position:"absolute",top:"-200px",left:e?"0px":"-1000px",visibility:"hidden"}}).appendTo("body"),k=a("<input />",{value:i,"class":"jstree-rename-input",css:{padding:"0",border:"1px solid silver","box-sizing":"border-box",display:"inline-block",height:this._data.core.li_height+"px",lineHeight:this._data.core.li_height+"px",width:"150px"},blur:a.proxy(function(c){c.stopImmediatePropagation(),c.preventDefault();var e,f=h.children(".jstree-rename-input"),k=f.val(),l=this.settings.core.force_text;""===k&&(k=i),j.remove(),h.replaceWith(g),h.remove(),i=l?i:a("<div></div>").append(a.parseHTML(i)).html(),this.set_text(b,i),e=!!this.rename_node(b,l?a("<div></div>").text(k).text():a("<div></div>").append(a.parseHTML(k)).html()),e||this.set_text(b,i),this._data.core.focused=m.id,setTimeout(a.proxy(function(){var a=this.get_node(m.id,!0);a.length&&(this._data.core.focused=m.id,a.children(".jstree-anchor").focus())},this),0),d&&d.call(this,m,e,n)},this),keydown:function(a){var b=a.which;27===b&&(n=!0,this.value=i),27!==b&&13!==b&&37!==b&&38!==b&&39!==b&&40!==b&&32!==b||a.stopImmediatePropagation(),27!==b&&13!==b||(a.preventDefault(),this.blur())},click:function(a){a.stopImmediatePropagation()},mousedown:function(a){a.stopImmediatePropagation()},keyup:function(a){k.width(Math.min(j.text("pW"+this.value).width(),f))},keypress:function(a){return 13===a.which?!1:void 0}}),l={fontFamily:g.css("fontFamily")||"",fontSize:g.css("fontSize")||"",fontWeight:g.css("fontWeight")||"",fontStyle:g.css("fontStyle")||"",fontStretch:g.css("fontStretch")||"",fontVariant:g.css("fontVariant")||"",letterSpacing:g.css("letterSpacing")||"",wordSpacing:g.css("wordSpacing")||""},h.attr("class",g.attr("class")).append(g.contents().clone()).append(k),g.replaceWith(h),j.css(l),void k.css(l).width(Math.min(j.text("pW"+k[0].value).width(),f))[0].select()):!1},set_theme:function(b,c){if(!b)return!1;if(c===!0){var d=this.settings.core.themes.dir;d||(d=a.jstree.path+"/themes"),c=d+"/"+b+"/style.css"}c&&-1===a.inArray(c,i)&&(a("head").append('<link rel="stylesheet" href="'+c+'" type="text/css" />'),i.push(c)),this._data.core.themes.name&&this.element.removeClass("jstree-"+this._data.core.themes.name),this._data.core.themes.name=b,this.element.addClass("jstree-"+b),this.element[this.settings.core.themes.responsive?"addClass":"removeClass"]("jstree-"+b+"-responsive"),this.trigger("set_theme",{theme:b})},get_theme:function(){return this._data.core.themes.name},set_theme_variant:function(a){this._data.core.themes.variant&&this.element.removeClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant),this._data.core.themes.variant=a,a&&this.element.addClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant)},get_theme_variant:function(){return this._data.core.themes.variant},show_stripes:function(){this._data.core.themes.stripes=!0,this.get_container_ul().addClass("jstree-striped")},hide_stripes:function(){this._data.core.themes.stripes=!1,this.get_container_ul().removeClass("jstree-striped")},toggle_stripes:function(){this._data.core.themes.stripes?this.hide_stripes():this.show_stripes()},show_dots:function(){this._data.core.themes.dots=!0,this.get_container_ul().removeClass("jstree-no-dots")},hide_dots:function(){this._data.core.themes.dots=!1,this.get_container_ul().addClass("jstree-no-dots")},toggle_dots:function(){this._data.core.themes.dots?this.hide_dots():this.show_dots()},show_icons:function(){this._data.core.themes.icons=!0,this.get_container_ul().removeClass("jstree-no-icons")},hide_icons:function(){this._data.core.themes.icons=!1,this.get_container_ul().addClass("jstree-no-icons")},toggle_icons:function(){this._data.core.themes.icons?this.hide_icons():this.show_icons()},set_icon:function(c,d){var e,f,g,h;if(a.isArray(c)){for(c=c.slice(),e=0,f=c.length;f>e;e++)this.set_icon(c[e],d);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?(h=c.icon,c.icon=d===!0||null===d||d===b||""===d?!0:d,g=this.get_node(c,!0).children(".jstree-anchor").children(".jstree-themeicon"),d===!1?this.hide_icon(c):d===!0||null===d||d===b||""===d?(g.removeClass("jstree-themeicon-custom "+h).css("background","").removeAttr("rel"),h===!1&&this.show_icon(c)):-1===d.indexOf("/")&&-1===d.indexOf(".")?(g.removeClass(h).css("background",""),g.addClass(d+" jstree-themeicon-custom").attr("rel",d),h===!1&&this.show_icon(c)):(g.removeClass(h).css("background",""),g.addClass("jstree-themeicon-custom").css("background","url('"+d+"') center center no-repeat").attr("rel",d),h===!1&&this.show_icon(c)),!0):!1},get_icon:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.icon:!1},hide_icon:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.hide_icon(b[c]);return!0}return b=this.get_node(b),b&&b!==a.jstree.root?(b.icon=!1,this.get_node(b,!0).children(".jstree-anchor").children(".jstree-themeicon").addClass("jstree-themeicon-hidden"),!0):!1},show_icon:function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.show_icon(b[c]);return!0}return b=this.get_node(b),b&&b!==a.jstree.root?(e=this.get_node(b,!0),b.icon=e.length?e.children(".jstree-anchor").children(".jstree-themeicon").attr("rel"):!0,b.icon||(b.icon=!0),e.children(".jstree-anchor").children(".jstree-themeicon").removeClass("jstree-themeicon-hidden"),
+!0):!1}},a.vakata={},a.vakata.attributes=function(b,c){b=a(b)[0];var d=c?{}:[];return b&&b.attributes&&a.each(b.attributes,function(b,e){-1===a.inArray(e.name.toLowerCase(),["style","contenteditable","hasfocus","tabindex"])&&null!==e.value&&""!==a.trim(e.value)&&(c?d[e.name]=e.value:d.push(e.name))}),d},a.vakata.array_unique=function(a){var c,d,e=[],f={};for(c=0,d=a.length;d>c;c++)f[a[c]]===b&&(e.push(a[c]),f[a[c]]=!0);return e},a.vakata.array_remove=function(a,b,c){var d=a.slice((c||b)+1||a.length);return a.length=0>b?a.length+b:b,a.push.apply(a,d),a},a.vakata.array_remove_item=function(b,c){var d=a.inArray(c,b);return-1!==d?a.vakata.array_remove(b,d):b},a.jstree.plugins.changed=function(a,b){var c=[];this.trigger=function(a,d){var e,f;if(d||(d={}),"changed"===a.replace(".jstree","")){d.changed={selected:[],deselected:[]};var g={};for(e=0,f=c.length;f>e;e++)g[c[e]]=1;for(e=0,f=d.selected.length;f>e;e++)g[d.selected[e]]?g[d.selected[e]]=2:d.changed.selected.push(d.selected[e]);for(e=0,f=c.length;f>e;e++)1===g[c[e]]&&d.changed.deselected.push(c[e]);c=d.selected.slice()}b.trigger.call(this,a,d)},this.refresh=function(a,d){return c=[],b.refresh.apply(this,arguments)}};var m=k.createElement("I");m.className="jstree-icon jstree-checkbox",m.setAttribute("role","presentation"),a.jstree.defaults.checkbox={visible:!0,three_state:!0,whole_node:!0,keep_selected_style:!0,cascade:"",tie_selection:!0},a.jstree.plugins.checkbox=function(c,d){this.bind=function(){d.bind.call(this),this._data.checkbox.uto=!1,this._data.checkbox.selected=[],this.settings.checkbox.three_state&&(this.settings.checkbox.cascade="up+down+undetermined"),this.element.on("init.jstree",a.proxy(function(){this._data.checkbox.visible=this.settings.checkbox.visible,this.settings.checkbox.keep_selected_style||this.element.addClass("jstree-checkbox-no-clicked"),this.settings.checkbox.tie_selection&&this.element.addClass("jstree-checkbox-selection")},this)).on("loading.jstree",a.proxy(function(){this[this._data.checkbox.visible?"show_checkboxes":"hide_checkboxes"]()},this)),-1!==this.settings.checkbox.cascade.indexOf("undetermined")&&this.element.on("changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree",a.proxy(function(){this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(a.proxy(this._undetermined,this),50)},this)),this.settings.checkbox.tie_selection||this.element.on("model.jstree",a.proxy(function(a,b){var c,d,e=this._model.data,f=(e[b.parent],b.nodes);for(c=0,d=f.length;d>c;c++)e[f[c]].state.checked=e[f[c]].state.checked||e[f[c]].original&&e[f[c]].original.state&&e[f[c]].original.state.checked,e[f[c]].state.checked&&this._data.checkbox.selected.push(f[c])},this)),-1===this.settings.checkbox.cascade.indexOf("up")&&-1===this.settings.checkbox.cascade.indexOf("down")||this.element.on("model.jstree",a.proxy(function(b,c){var d,e,f,g,h,i,j=this._model.data,k=j[c.parent],l=c.nodes,m=[],n=this.settings.checkbox.cascade,o=this.settings.checkbox.tie_selection;if(-1!==n.indexOf("down"))if(k.state[o?"selected":"checked"]){for(e=0,f=l.length;f>e;e++)j[l[e]].state[o?"selected":"checked"]=!0;this._data[o?"core":"checkbox"].selected=this._data[o?"core":"checkbox"].selected.concat(l)}else for(e=0,f=l.length;f>e;e++)if(j[l[e]].state[o?"selected":"checked"]){for(g=0,h=j[l[e]].children_d.length;h>g;g++)j[j[l[e]].children_d[g]].state[o?"selected":"checked"]=!0;this._data[o?"core":"checkbox"].selected=this._data[o?"core":"checkbox"].selected.concat(j[l[e]].children_d)}if(-1!==n.indexOf("up")){for(e=0,f=k.children_d.length;f>e;e++)j[k.children_d[e]].children.length||m.push(j[k.children_d[e]].parent);for(m=a.vakata.array_unique(m),g=0,h=m.length;h>g;g++)for(k=j[m[g]];k&&k.id!==a.jstree.root;){for(d=0,e=0,f=k.children.length;f>e;e++)d+=j[k.children[e]].state[o?"selected":"checked"];if(d!==f)break;k.state[o?"selected":"checked"]=!0,this._data[o?"core":"checkbox"].selected.push(k.id),i=this.get_node(k,!0),i&&i.length&&i.attr("aria-selected",!0).children(".jstree-anchor").addClass(o?"jstree-clicked":"jstree-checked"),k=this.get_node(k.parent)}}this._data[o?"core":"checkbox"].selected=a.vakata.array_unique(this._data[o?"core":"checkbox"].selected)},this)).on(this.settings.checkbox.tie_selection?"select_node.jstree":"check_node.jstree",a.proxy(function(b,c){var d,e,f,g,h=c.node,i=this._model.data,j=this.get_node(h.parent),k=this.get_node(h,!0),l=this.settings.checkbox.cascade,m=this.settings.checkbox.tie_selection;if(-1!==l.indexOf("down"))for(this._data[m?"core":"checkbox"].selected=a.vakata.array_unique(this._data[m?"core":"checkbox"].selected.concat(h.children_d)),d=0,e=h.children_d.length;e>d;d++)g=i[h.children_d[d]],g.state[m?"selected":"checked"]=!0,g&&g.original&&g.original.state&&g.original.state.undetermined&&(g.original.state.undetermined=!1);if(-1!==l.indexOf("up"))for(;j&&j.id!==a.jstree.root;){for(f=0,d=0,e=j.children.length;e>d;d++)f+=i[j.children[d]].state[m?"selected":"checked"];if(f!==e)break;j.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(j.id),g=this.get_node(j,!0),g&&g.length&&g.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"),j=this.get_node(j.parent)}-1!==l.indexOf("down")&&k.length&&k.find(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked").parent().attr("aria-selected",!0)},this)).on(this.settings.checkbox.tie_selection?"deselect_all.jstree":"uncheck_all.jstree",a.proxy(function(b,c){var d,e,f,g=this.get_node(a.jstree.root),h=this._model.data;for(d=0,e=g.children_d.length;e>d;d++)f=h[g.children_d[d]],f&&f.original&&f.original.state&&f.original.state.undetermined&&(f.original.state.undetermined=!1)},this)).on(this.settings.checkbox.tie_selection?"deselect_node.jstree":"uncheck_node.jstree",a.proxy(function(b,c){var d,e,f,g=c.node,h=this.get_node(g,!0),i=this.settings.checkbox.cascade,j=this.settings.checkbox.tie_selection;if(g&&g.original&&g.original.state&&g.original.state.undetermined&&(g.original.state.undetermined=!1),-1!==i.indexOf("down"))for(d=0,e=g.children_d.length;e>d;d++)f=this._model.data[g.children_d[d]],f.state[j?"selected":"checked"]=!1,f&&f.original&&f.original.state&&f.original.state.undetermined&&(f.original.state.undetermined=!1);if(-1!==i.indexOf("up"))for(d=0,e=g.parents.length;e>d;d++)f=this._model.data[g.parents[d]],f.state[j?"selected":"checked"]=!1,f&&f.original&&f.original.state&&f.original.state.undetermined&&(f.original.state.undetermined=!1),f=this.get_node(g.parents[d],!0),f&&f.length&&f.attr("aria-selected",!1).children(".jstree-anchor").removeClass(j?"jstree-clicked":"jstree-checked");for(f=[],d=0,e=this._data[j?"core":"checkbox"].selected.length;e>d;d++)-1!==i.indexOf("down")&&-1!==a.inArray(this._data[j?"core":"checkbox"].selected[d],g.children_d)||-1!==i.indexOf("up")&&-1!==a.inArray(this._data[j?"core":"checkbox"].selected[d],g.parents)||f.push(this._data[j?"core":"checkbox"].selected[d]);this._data[j?"core":"checkbox"].selected=a.vakata.array_unique(f),-1!==i.indexOf("down")&&h.length&&h.find(".jstree-anchor").removeClass(j?"jstree-clicked":"jstree-checked").parent().attr("aria-selected",!1)},this)),-1!==this.settings.checkbox.cascade.indexOf("up")&&this.element.on("delete_node.jstree",a.proxy(function(b,c){for(var d,e,f,g,h=this.get_node(c.parent),i=this._model.data,j=this.settings.checkbox.tie_selection;h&&h.id!==a.jstree.root&&!h.state[j?"selected":"checked"];){for(f=0,d=0,e=h.children.length;e>d;d++)f+=i[h.children[d]].state[j?"selected":"checked"];if(!(e>0&&f===e))break;h.state[j?"selected":"checked"]=!0,this._data[j?"core":"checkbox"].selected.push(h.id),g=this.get_node(h,!0),g&&g.length&&g.attr("aria-selected",!0).children(".jstree-anchor").addClass(j?"jstree-clicked":"jstree-checked"),h=this.get_node(h.parent)}},this)).on("move_node.jstree",a.proxy(function(b,c){var d,e,f,g,h,i=c.is_multi,j=c.old_parent,k=this.get_node(c.parent),l=this._model.data,m=this.settings.checkbox.tie_selection;if(!i)for(d=this.get_node(j);d&&d.id!==a.jstree.root&&!d.state[m?"selected":"checked"];){for(e=0,f=0,g=d.children.length;g>f;f++)e+=l[d.children[f]].state[m?"selected":"checked"];if(!(g>0&&e===g))break;d.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(d.id),h=this.get_node(d,!0),h&&h.length&&h.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"),d=this.get_node(d.parent)}for(d=k;d&&d.id!==a.jstree.root;){for(e=0,f=0,g=d.children.length;g>f;f++)e+=l[d.children[f]].state[m?"selected":"checked"];if(e===g)d.state[m?"selected":"checked"]||(d.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(d.id),h=this.get_node(d,!0),h&&h.length&&h.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"));else{if(!d.state[m?"selected":"checked"])break;d.state[m?"selected":"checked"]=!1,this._data[m?"core":"checkbox"].selected=a.vakata.array_remove_item(this._data[m?"core":"checkbox"].selected,d.id),h=this.get_node(d,!0),h&&h.length&&h.attr("aria-selected",!1).children(".jstree-anchor").removeClass(m?"jstree-clicked":"jstree-checked")}d=this.get_node(d.parent)}},this))},this._undetermined=function(){if(null!==this.element){var c,d,e,f,g={},h=this._model.data,i=this.settings.checkbox.tie_selection,j=this._data[i?"core":"checkbox"].selected,k=[],l=this;for(c=0,d=j.length;d>c;c++)if(h[j[c]]&&h[j[c]].parents)for(e=0,f=h[j[c]].parents.length;f>e;e++)g[h[j[c]].parents[e]]===b&&h[j[c]].parents[e]!==a.jstree.root&&(g[h[j[c]].parents[e]]=!0,k.push(h[j[c]].parents[e]));for(this.element.find(".jstree-closed").not(":has(.jstree-children)").each(function(){var i,j=l.get_node(this);if(j.state.loaded){for(c=0,d=j.children_d.length;d>c;c++)if(i=h[j.children_d[c]],!i.state.loaded&&i.original&&i.original.state&&i.original.state.undetermined&&i.original.state.undetermined===!0)for(g[i.id]===b&&i.id!==a.jstree.root&&(g[i.id]=!0,k.push(i.id)),e=0,f=i.parents.length;f>e;e++)g[i.parents[e]]===b&&i.parents[e]!==a.jstree.root&&(g[i.parents[e]]=!0,k.push(i.parents[e]))}else if(j.original&&j.original.state&&j.original.state.undetermined&&j.original.state.undetermined===!0)for(g[j.id]===b&&j.id!==a.jstree.root&&(g[j.id]=!0,k.push(j.id)),e=0,f=j.parents.length;f>e;e++)g[j.parents[e]]===b&&j.parents[e]!==a.jstree.root&&(g[j.parents[e]]=!0,k.push(j.parents[e]))}),this.element.find(".jstree-undetermined").removeClass("jstree-undetermined"),c=0,d=k.length;d>c;c++)h[k[c]].state[i?"selected":"checked"]||(j=this.get_node(k[c],!0),j&&j.length&&j.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-undetermined"))}},this.redraw_node=function(b,c,e,f){if(b=d.redraw_node.apply(this,arguments)){var g,h,i=null,j=null;for(g=0,h=b.childNodes.length;h>g;g++)if(b.childNodes[g]&&b.childNodes[g].className&&-1!==b.childNodes[g].className.indexOf("jstree-anchor")){i=b.childNodes[g];break}i&&(!this.settings.checkbox.tie_selection&&this._model.data[b.id].state.checked&&(i.className+=" jstree-checked"),j=m.cloneNode(!1),this._model.data[b.id].state.checkbox_disabled&&(j.className+=" jstree-checkbox-disabled"),i.insertBefore(j,i.childNodes[0]))}return e||-1===this.settings.checkbox.cascade.indexOf("undetermined")||(this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(a.proxy(this._undetermined,this),50)),b},this.show_checkboxes=function(){this._data.core.themes.checkboxes=!0,this.get_container_ul().removeClass("jstree-no-checkboxes")},this.hide_checkboxes=function(){this._data.core.themes.checkboxes=!1,this.get_container_ul().addClass("jstree-no-checkboxes")},this.toggle_checkboxes=function(){this._data.core.themes.checkboxes?this.hide_checkboxes():this.show_checkboxes()},this.is_undetermined=function(b){b=this.get_node(b);var c,d,e=this.settings.checkbox.cascade,f=this.settings.checkbox.tie_selection,g=this._data[f?"core":"checkbox"].selected,h=this._model.data;if(!b||b.state[f?"selected":"checked"]===!0||-1===e.indexOf("undetermined")||-1===e.indexOf("down")&&-1===e.indexOf("up"))return!1;if(!b.state.loaded&&b.original.state.undetermined===!0)return!0;for(c=0,d=b.children_d.length;d>c;c++)if(-1!==a.inArray(b.children_d[c],g)||!h[b.children_d[c]].state.loaded&&h[b.children_d[c]].original.state.undetermined)return!0;return!1},this.disable_checkbox=function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.disable_checkbox(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(e=this.get_node(b,!0),void(b.state.checkbox_disabled||(b.state.checkbox_disabled=!0,e&&e.length&&e.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-checkbox-disabled"),this.trigger("disable_checkbox",{node:b})))):!1},this.enable_checkbox=function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.enable_checkbox(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(e=this.get_node(b,!0),void(b.state.checkbox_disabled&&(b.state.checkbox_disabled=!1,e&&e.length&&e.children(".jstree-anchor").children(".jstree-checkbox").removeClass("jstree-checkbox-disabled"),this.trigger("enable_checkbox",{node:b})))):!1},this.activate_node=function(b,c){return a(c.target).hasClass("jstree-checkbox-disabled")?!1:(this.settings.checkbox.tie_selection&&(this.settings.checkbox.whole_node||a(c.target).hasClass("jstree-checkbox"))&&(c.ctrlKey=!0),this.settings.checkbox.tie_selection||!this.settings.checkbox.whole_node&&!a(c.target).hasClass("jstree-checkbox")?d.activate_node.call(this,b,c):this.is_disabled(b)?!1:(this.is_checked(b)?this.uncheck_node(b,c):this.check_node(b,c),void this.trigger("activate_node",{node:this.get_node(b)})))},this.check_node=function(b,c){if(this.settings.checkbox.tie_selection)return this.select_node(b,!1,!0,c);var d,e,f;if(a.isArray(b)){for(b=b.slice(),e=0,f=b.length;f>e;e++)this.check_node(b[e],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(d=this.get_node(b,!0),void(b.state.checked||(b.state.checked=!0,this._data.checkbox.selected.push(b.id),d&&d.length&&d.children(".jstree-anchor").addClass("jstree-checked"),this.trigger("check_node",{node:b,selected:this._data.checkbox.selected,event:c})))):!1},this.uncheck_node=function(b,c){if(this.settings.checkbox.tie_selection)return this.deselect_node(b,!1,c);var d,e,f;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.uncheck_node(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=this.get_node(b,!0),void(b.state.checked&&(b.state.checked=!1,this._data.checkbox.selected=a.vakata.array_remove_item(this._data.checkbox.selected,b.id),f.length&&f.children(".jstree-anchor").removeClass("jstree-checked"),this.trigger("uncheck_node",{node:b,selected:this._data.checkbox.selected,event:c})))):!1},this.check_all=function(){if(this.settings.checkbox.tie_selection)return this.select_all();var b,c;this._data.checkbox.selected.concat([]);for(this._data.checkbox.selected=this._model.data[a.jstree.root].children_d.concat(),b=0,c=this._data.checkbox.selected.length;c>b;b++)this._model.data[this._data.checkbox.selected[b]]&&(this._model.data[this._data.checkbox.selected[b]].state.checked=!0);this.redraw(!0),this.trigger("check_all",{selected:this._data.checkbox.selected})},this.uncheck_all=function(){if(this.settings.checkbox.tie_selection)return this.deselect_all();var a,b,c=this._data.checkbox.selected.concat([]);for(a=0,b=this._data.checkbox.selected.length;b>a;a++)this._model.data[this._data.checkbox.selected[a]]&&(this._model.data[this._data.checkbox.selected[a]].state.checked=!1);this._data.checkbox.selected=[],this.element.find(".jstree-checked").removeClass("jstree-checked"),this.trigger("uncheck_all",{selected:this._data.checkbox.selected,node:c})},this.is_checked=function(b){return this.settings.checkbox.tie_selection?this.is_selected(b):(b=this.get_node(b),b&&b.id!==a.jstree.root?b.state.checked:!1)},this.get_checked=function(b){return this.settings.checkbox.tie_selection?this.get_selected(b):b?a.map(this._data.checkbox.selected,a.proxy(function(a){return this.get_node(a)},this)):this._data.checkbox.selected},this.get_top_checked=function(b){if(this.settings.checkbox.tie_selection)return this.get_top_selected(b);var c,d,e,f,g=this.get_checked(!0),h={};for(c=0,d=g.length;d>c;c++)h[g[c].id]=g[c];for(c=0,d=g.length;d>c;c++)for(e=0,f=g[c].children_d.length;f>e;e++)h[g[c].children_d[e]]&&delete h[g[c].children_d[e]];g=[];for(c in h)h.hasOwnProperty(c)&&g.push(c);return b?a.map(g,a.proxy(function(a){return this.get_node(a)},this)):g},this.get_bottom_checked=function(b){if(this.settings.checkbox.tie_selection)return this.get_bottom_selected(b);var c,d,e=this.get_checked(!0),f=[];for(c=0,d=e.length;d>c;c++)e[c].children.length||f.push(e[c].id);return b?a.map(f,a.proxy(function(a){return this.get_node(a)},this)):f},this.load_node=function(b,c){var e,f,g,h;if(!a.isArray(b)&&!this.settings.checkbox.tie_selection&&(h=this.get_node(b),h&&h.state.loaded))for(e=0,f=h.children_d.length;f>e;e++)this._model.data[h.children_d[e]].state.checked&&(g=!0,this._data.checkbox.selected=a.vakata.array_remove_item(this._data.checkbox.selected,h.children_d[e]));return d.load_node.apply(this,arguments)},this.get_state=function(){var a=d.get_state.apply(this,arguments);return this.settings.checkbox.tie_selection?a:(a.checkbox=this._data.checkbox.selected.slice(),a)},this.set_state=function(b,c){var e=d.set_state.apply(this,arguments);if(e&&b.checkbox){if(!this.settings.checkbox.tie_selection){this.uncheck_all();var f=this;a.each(b.checkbox,function(a,b){f.check_node(b)})}return delete b.checkbox,this.set_state(b,c),!1}return e},this.refresh=function(a,b){return this.settings.checkbox.tie_selection||(this._data.checkbox.selected=[]),d.refresh.apply(this,arguments)}},a.jstree.defaults.conditionalselect=function(){return!0},a.jstree.plugins.conditionalselect=function(a,b){this.activate_node=function(a,c){this.settings.conditionalselect.call(this,this.get_node(a),c)&&b.activate_node.call(this,a,c)}},a.jstree.defaults.contextmenu={select_node:!0,show_at_node:!0,items:function(b,c){return{create:{separator_before:!1,separator_after:!0,_disabled:!1,label:"Create",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.create_node(d,{},"last",function(a){setTimeout(function(){c.edit(a)},0)})}},rename:{separator_before:!1,separator_after:!1,_disabled:!1,label:"Rename",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.edit(d)}},remove:{separator_before:!1,icon:!1,separator_after:!1,_disabled:!1,label:"Delete",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.delete_node(c.get_selected()):c.delete_node(d)}},ccp:{separator_before:!0,icon:!1,separator_after:!1,label:"Edit",action:!1,submenu:{cut:{separator_before:!1,separator_after:!1,label:"Cut",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.cut(c.get_top_selected()):c.cut(d)}},copy:{separator_before:!1,icon:!1,separator_after:!1,label:"Copy",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.copy(c.get_top_selected()):c.copy(d)}},paste:{separator_before:!1,icon:!1,_disabled:function(b){return!a.jstree.reference(b.reference).can_paste()},separator_after:!1,label:"Paste",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.paste(d)}}}}}}},a.jstree.plugins.contextmenu=function(c,d){this.bind=function(){d.bind.call(this);var b,c,e=0,f=null;this.element.on("contextmenu.jstree",".jstree-anchor",a.proxy(function(a,b){a.preventDefault(),e=a.ctrlKey?+new Date:0,(b||f)&&(e=+new Date+1e4),f&&clearTimeout(f),this.is_loading(a.currentTarget)||this.show_contextmenu(a.currentTarget,a.pageX,a.pageY,a)},this)).on("click.jstree",".jstree-anchor",a.proxy(function(b){this._data.contextmenu.visible&&(!e||+new Date-e>250)&&a.vakata.context.hide(),e=0},this)).on("touchstart.jstree",".jstree-anchor",function(d){d.originalEvent&&d.originalEvent.changedTouches&&d.originalEvent.changedTouches[0]&&(b=d.pageX,c=d.pageY,f=setTimeout(function(){a(d.currentTarget).trigger("contextmenu",!0)},750))}).on("touchmove.vakata.jstree",function(a){f&&a.originalEvent&&a.originalEvent.changedTouches&&a.originalEvent.changedTouches[0]&&(Math.abs(b-a.pageX)>50||Math.abs(c-a.pageY)>50)&&clearTimeout(f)}).on("touchend.vakata.jstree",function(a){f&&clearTimeout(f)}),a(k).on("context_hide.vakata.jstree",a.proxy(function(){this._data.contextmenu.visible=!1},this))},this.teardown=function(){this._data.contextmenu.visible&&a.vakata.context.hide(),d.teardown.call(this)},this.show_contextmenu=function(c,d,e,f){if(c=this.get_node(c),!c||c.id===a.jstree.root)return!1;var g=this.settings.contextmenu,h=this.get_node(c,!0),i=h.children(".jstree-anchor"),j=!1,k=!1;(g.show_at_node||d===b||e===b)&&(j=i.offset(),d=j.left,e=j.top+this._data.core.li_height),this.settings.contextmenu.select_node&&!this.is_selected(c)&&this.activate_node(c,f),k=g.items,a.isFunction(k)&&(k=k.call(this,c,a.proxy(function(a){this._show_contextmenu(c,d,e,a)},this))),a.isPlainObject(k)&&this._show_contextmenu(c,d,e,k)},this._show_contextmenu=function(b,c,d,e){var f=this.get_node(b,!0),g=f.children(".jstree-anchor");a(k).one("context_show.vakata.jstree",a.proxy(function(b,c){var d="jstree-contextmenu jstree-"+this.get_theme()+"-contextmenu";a(c.element).addClass(d)},this)),this._data.contextmenu.visible=!0,a.vakata.context.show(g,{x:c,y:d},e),this.trigger("show_contextmenu",{node:b,x:c,y:d})}},function(a){var b=!1,c={element:!1,reference:!1,position_x:0,position_y:0,items:[],html:"",is_visible:!1};a.vakata.context={settings:{hide_onmouseleave:0,icons:!0},_trigger:function(b){a(k).triggerHandler("context_"+b+".vakata",{reference:c.reference,element:c.element,position:{x:c.position_x,y:c.position_y}})},_execute:function(b){return b=c.items[b],b&&(!b._disabled||a.isFunction(b._disabled)&&!b._disabled({item:b,reference:c.reference,element:c.element}))&&b.action?b.action.call(null,{item:b,reference:c.reference,element:c.element,position:{x:c.position_x,y:c.position_y}}):!1},_parse:function(b,d){if(!b)return!1;d||(c.html="",c.items=[]);var e,f="",g=!1;return d&&(f+="<ul>"),a.each(b,function(b,d){return d?(c.items.push(d),!g&&d.separator_before&&(f+="<li class='vakata-context-separator'><a href='#' "+(a.vakata.context.settings.icons?"":'style="margin-left:0px;"')+">&#160;</a></li>"),g=!1,f+="<li class='"+(d._class||"")+(d._disabled===!0||a.isFunction(d._disabled)&&d._disabled({item:d,reference:c.reference,element:c.element})?" vakata-contextmenu-disabled ":"")+"' "+(d.shortcut?" data-shortcut='"+d.shortcut+"' ":"")+">",f+="<a href='#' rel='"+(c.items.length-1)+"'>",a.vakata.context.settings.icons&&(f+="<i ",d.icon&&(f+=-1!==d.icon.indexOf("/")||-1!==d.icon.indexOf(".")?" style='background:url(\""+d.icon+"\") center center no-repeat' ":" class='"+d.icon+"' "),f+="></i><span class='vakata-contextmenu-sep'>&#160;</span>"),f+=(a.isFunction(d.label)?d.label({item:b,reference:c.reference,element:c.element}):d.label)+(d.shortcut?' <span class="vakata-contextmenu-shortcut vakata-contextmenu-shortcut-'+d.shortcut+'">'+(d.shortcut_label||"")+"</span>":"")+"</a>",d.submenu&&(e=a.vakata.context._parse(d.submenu,!0),e&&(f+=e)),f+="</li>",void(d.separator_after&&(f+="<li class='vakata-context-separator'><a href='#' "+(a.vakata.context.settings.icons?"":'style="margin-left:0px;"')+">&#160;</a></li>",g=!0))):!0}),f=f.replace(/<li class\='vakata-context-separator'\><\/li\>$/,""),d&&(f+="</ul>"),d||(c.html=f,a.vakata.context._trigger("parse")),f.length>10?f:!1},_show_submenu:function(c){if(c=a(c),c.length&&c.children("ul").length){var d=c.children("ul"),e=c.offset().left+c.outerWidth(),f=c.offset().top,g=d.width(),h=d.height(),i=a(window).width()+a(window).scrollLeft(),j=a(window).height()+a(window).scrollTop();b?c[e-(g+10+c.outerWidth())<0?"addClass":"removeClass"]("vakata-context-left"):c[e+g+10>i?"addClass":"removeClass"]("vakata-context-right"),f+h+10>j&&d.css("bottom","-1px"),d.show()}},show:function(d,e,f){var g,h,i,j,k,l,m,n,o=!0;switch(c.element&&c.element.length&&c.element.width(""),o){case!e&&!d:return!1;case!!e&&!!d:c.reference=d,c.position_x=e.x,c.position_y=e.y;break;case!e&&!!d:c.reference=d,g=d.offset(),c.position_x=g.left+d.outerHeight(),c.position_y=g.top;break;case!!e&&!d:c.position_x=e.x,c.position_y=e.y}d&&!f&&a(d).data("vakata_contextmenu")&&(f=a(d).data("vakata_contextmenu")),a.vakata.context._parse(f)&&c.element.html(c.html),c.items.length&&(c.element.appendTo("body"),h=c.element,i=c.position_x,j=c.position_y,k=h.width(),l=h.height(),m=a(window).width()+a(window).scrollLeft(),n=a(window).height()+a(window).scrollTop(),b&&(i-=h.outerWidth()-a(d).outerWidth(),i<a(window).scrollLeft()+20&&(i=a(window).scrollLeft()+20)),i+k+20>m&&(i=m-(k+20)),j+l+20>n&&(j=n-(l+20)),c.element.css({left:i,top:j}).show().find("a").first().focus().parent().addClass("vakata-context-hover"),c.is_visible=!0,a.vakata.context._trigger("show"))},hide:function(){c.is_visible&&(c.element.hide().find("ul").hide().end().find(":focus").blur().end().detach(),c.is_visible=!1,a.vakata.context._trigger("hide"))}},a(function(){b="rtl"===a("body").css("direction");var d=!1;c.element=a("<ul class='vakata-context'></ul>"),c.element.on("mouseenter","li",function(b){b.stopImmediatePropagation(),a.contains(this,b.relatedTarget)||(d&&clearTimeout(d),c.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(),a(this).siblings().find("ul").hide().end().end().parentsUntil(".vakata-context","li").addBack().addClass("vakata-context-hover"),a.vakata.context._show_submenu(this))}).on("mouseleave","li",function(b){a.contains(this,b.relatedTarget)||a(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover")}).on("mouseleave",function(b){a(this).find(".vakata-context-hover").removeClass("vakata-context-hover"),a.vakata.context.settings.hide_onmouseleave&&(d=setTimeout(function(b){return function(){a.vakata.context.hide()}}(this),a.vakata.context.settings.hide_onmouseleave))}).on("click","a",function(b){b.preventDefault(),a(this).blur().parent().hasClass("vakata-context-disabled")||a.vakata.context._execute(a(this).attr("rel"))===!1||a.vakata.context.hide()}).on("keydown","a",function(b){var d=null;switch(b.which){case 13:case 32:b.type="mouseup",b.preventDefault(),a(b.currentTarget).trigger(b);break;case 37:c.is_visible&&(c.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 38:c.is_visible&&(d=c.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(),d.length||(d=c.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last()),d.addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 39:c.is_visible&&(c.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 40:c.is_visible&&(d=c.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(),d.length||(d=c.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first()),d.addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 27:a.vakata.context.hide(),b.preventDefault()}}).on("keydown",function(a){a.preventDefault();var b=c.element.find(".vakata-contextmenu-shortcut-"+a.which).parent();b.parent().not(".vakata-context-disabled")&&b.click()}),a(k).on("mousedown.vakata.jstree",function(b){c.is_visible&&!a.contains(c.element[0],b.target)&&a.vakata.context.hide()}).on("context_show.vakata.jstree",function(a,d){c.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"),b&&c.element.addClass("vakata-context-rtl").css("direction","rtl"),c.element.find("ul").hide().end()})})}(a),a.jstree.defaults.dnd={copy:!0,open_timeout:500,is_draggable:!0,check_while_dragging:!0,always_copy:!1,inside_pos:0,drag_selection:!0,touch:!0,large_drop_target:!1,large_drag_target:!1},a.jstree.plugins.dnd=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("mousedown.jstree touchstart.jstree",this.settings.dnd.large_drag_target?".jstree-node":".jstree-anchor",a.proxy(function(b){if(this.settings.dnd.large_drag_target&&a(b.target).closest(".jstree-node")[0]!==b.currentTarget)return!0;if("touchstart"===b.type&&(!this.settings.dnd.touch||"selected"===this.settings.dnd.touch&&!a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").hasClass("jstree-clicked")))return!0;var c=this.get_node(b.target),d=this.is_selected(c)&&this.settings.dnd.drag_selection?this.get_top_selected().length:1,e=d>1?d+" "+this.get_string("nodes"):this.get_text(b.currentTarget);return this.settings.core.force_text&&(e=a.vakata.html.escape(e)),c&&c.id&&c.id!==a.jstree.root&&(1===b.which||"touchstart"===b.type)&&(this.settings.dnd.is_draggable===!0||a.isFunction(this.settings.dnd.is_draggable)&&this.settings.dnd.is_draggable.call(this,d>1?this.get_top_selected(!0):[c],b))?(this.element.trigger("mousedown.jstree"),a.vakata.dnd.start(b,{jstree:!0,origin:this,obj:this.get_node(c,!0),nodes:d>1?this.get_top_selected():[c.id]},'<div id="jstree-dnd" class="jstree-'+this.get_theme()+" jstree-"+this.get_theme()+"-"+this.get_theme_variant()+" "+(this.settings.core.themes.responsive?" jstree-dnd-responsive":"")+'"><i class="jstree-icon jstree-er"></i>'+e+'<ins class="jstree-copy" style="display:none;">+</ins></div>')):void 0},this))}},a(function(){var b=!1,c=!1,d=!1,e=!1,f=a('<div id="jstree-marker">&#160;</div>').hide();a(k).on("dnd_start.vakata.jstree",function(a,c){b=!1,d=!1,c&&c.data&&c.data.jstree&&f.appendTo("body")}).on("dnd_move.vakata.jstree",function(g,h){if(e&&clearTimeout(e),h&&h.data&&h.data.jstree&&(!h.event.target.id||"jstree-marker"!==h.event.target.id)){d=h.event;var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w=a.jstree.reference(h.event.target),x=!1,y=!1,z=!1;if(w&&w._data&&w._data.dnd)if(f.attr("class","jstree-"+w.get_theme()+(w.settings.core.themes.responsive?" jstree-dnd-responsive":"")),h.helper.children().attr("class","jstree-"+w.get_theme()+" jstree-"+w.get_theme()+"-"+w.get_theme_variant()+" "+(w.settings.core.themes.responsive?" jstree-dnd-responsive":"")).find(".jstree-copy").first()[h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"show":"hide"](),h.event.target!==w.element[0]&&h.event.target!==w.get_container_ul()[0]||0!==w.get_container_ul().children().length){if(x=w.settings.dnd.large_drop_target?a(h.event.target).closest(".jstree-node").children(".jstree-anchor"):a(h.event.target).closest(".jstree-anchor"),x&&x.length&&x.parent().is(".jstree-closed, .jstree-open, .jstree-leaf")&&(y=x.offset(),z=h.event.pageY-y.top,k=x.outerHeight(),n=k/3>z?["b","i","a"]:z>k-k/3?["a","i","b"]:z>k/2?["i","a","b"]:["i","b","a"],a.each(n,function(d,g){switch(g){case"b":i=y.left-6,j=y.top,l=w.get_parent(x),m=x.parent().index();break;case"i":u=w.settings.dnd.inside_pos,v=w.get_node(x.parent()),i=y.left-2,j=y.top+k/2+1,l=v.id,m="first"===u?0:"last"===u?v.children.length:Math.min(u,v.children.length);break;case"a":i=y.left-6,j=y.top+k,l=w.get_parent(x),m=x.parent().index()+1}for(o=!0,p=0,q=h.data.nodes.length;q>p;p++)if(r=h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"copy_node":"move_node",
+s=m,"move_node"===r&&"a"===g&&h.data.origin&&h.data.origin===w&&l===w.get_parent(h.data.nodes[p])&&(t=w.get_node(l),s>a.inArray(h.data.nodes[p],t.children)&&(s-=1)),o=o&&(w&&w.settings&&w.settings.dnd&&w.settings.dnd.check_while_dragging===!1||w.check(r,h.data.origin&&h.data.origin!==w?h.data.origin.get_node(h.data.nodes[p]):h.data.nodes[p],l,s,{dnd:!0,ref:w.get_node(x.parent()),pos:g,origin:h.data.origin,is_multi:h.data.origin&&h.data.origin!==w,is_foreign:!h.data.origin})),!o){w&&w.last_error&&(c=w.last_error());break}return"i"===g&&x.parent().is(".jstree-closed")&&w.settings.dnd.open_timeout&&(e=setTimeout(function(a,b){return function(){a.open_node(b)}}(w,x),w.settings.dnd.open_timeout)),o?(b={ins:w,par:l,pos:"i"!==g||"last"!==u||0!==m||w.is_loaded(v)?m:"last"},f.css({left:i+"px",top:j+"px"}).show(),h.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),c={},n=!0,!1):void 0}),n===!0))return}else{for(o=!0,p=0,q=h.data.nodes.length;q>p&&(o=o&&w.check(h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"copy_node":"move_node",h.data.origin&&h.data.origin!==w?h.data.origin.get_node(h.data.nodes[p]):h.data.nodes[p],a.jstree.root,"last",{dnd:!0,ref:w.get_node(a.jstree.root),pos:"i",origin:h.data.origin,is_multi:h.data.origin&&h.data.origin!==w,is_foreign:!h.data.origin}),o);p++);if(o)return b={ins:w,par:a.jstree.root,pos:"last"},f.hide(),void h.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok")}b=!1,h.helper.find(".jstree-icon").removeClass("jstree-ok").addClass("jstree-er"),f.hide()}}).on("dnd_scroll.vakata.jstree",function(a,c){c&&c.data&&c.data.jstree&&(f.hide(),b=!1,d=!1,c.helper.find(".jstree-icon").first().removeClass("jstree-ok").addClass("jstree-er"))}).on("dnd_stop.vakata.jstree",function(g,h){if(e&&clearTimeout(e),h&&h.data&&h.data.jstree){f.hide().detach();var i,j,k=[];if(b){for(i=0,j=h.data.nodes.length;j>i;i++)k[i]=h.data.origin?h.data.origin.get_node(h.data.nodes[i]):h.data.nodes[i];b.ins[h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"copy_node":"move_node"](k,b.par,b.pos,!1,!1,!1,h.data.origin)}else i=a(h.event.target).closest(".jstree"),i.length&&c&&c.error&&"check"===c.error&&(i=i.jstree(!0),i&&i.settings.core.error.call(this,c));d=!1,b=!1}}).on("keyup.jstree keydown.jstree",function(b,c){c=a.vakata.dnd._get(),c&&c.data&&c.data.jstree&&(c.helper.find(".jstree-copy").first()[c.data.origin&&(c.data.origin.settings.dnd.always_copy||c.data.origin.settings.dnd.copy&&(b.metaKey||b.ctrlKey))?"show":"hide"](),d&&(d.metaKey=b.metaKey,d.ctrlKey=b.ctrlKey,a.vakata.dnd._trigger("move",d)))})}),function(a){a.vakata.html={div:a("<div />"),escape:function(b){return a.vakata.html.div.text(b).html()},strip:function(b){return a.vakata.html.div.empty().append(a.parseHTML(b)).text()}};var b={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1};a.vakata.dnd={settings:{scroll_speed:10,scroll_proximity:20,helper_left:5,helper_top:10,threshold:5,threshold_touch:50},_trigger:function(b,c){var d=a.vakata.dnd._get();d.event=c,a(k).triggerHandler("dnd_"+b+".vakata",d)},_get:function(){return{data:b.data,element:b.element,helper:b.helper}},_clean:function(){b.helper&&b.helper.remove(),b.scroll_i&&(clearInterval(b.scroll_i),b.scroll_i=!1),b={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1},a(k).off("mousemove.vakata.jstree touchmove.vakata.jstree",a.vakata.dnd.drag),a(k).off("mouseup.vakata.jstree touchend.vakata.jstree",a.vakata.dnd.stop)},_scroll:function(c){if(!b.scroll_e||!b.scroll_l&&!b.scroll_t)return b.scroll_i&&(clearInterval(b.scroll_i),b.scroll_i=!1),!1;if(!b.scroll_i)return b.scroll_i=setInterval(a.vakata.dnd._scroll,100),!1;if(c===!0)return!1;var d=b.scroll_e.scrollTop(),e=b.scroll_e.scrollLeft();b.scroll_e.scrollTop(d+b.scroll_t*a.vakata.dnd.settings.scroll_speed),b.scroll_e.scrollLeft(e+b.scroll_l*a.vakata.dnd.settings.scroll_speed),d===b.scroll_e.scrollTop()&&e===b.scroll_e.scrollLeft()||a.vakata.dnd._trigger("scroll",b.scroll_e)},start:function(c,d,e){"touchstart"===c.type&&c.originalEvent&&c.originalEvent.changedTouches&&c.originalEvent.changedTouches[0]&&(c.pageX=c.originalEvent.changedTouches[0].pageX,c.pageY=c.originalEvent.changedTouches[0].pageY,c.target=k.elementFromPoint(c.originalEvent.changedTouches[0].pageX-window.pageXOffset,c.originalEvent.changedTouches[0].pageY-window.pageYOffset)),b.is_drag&&a.vakata.dnd.stop({});try{c.currentTarget.unselectable="on",c.currentTarget.onselectstart=function(){return!1},c.currentTarget.style&&(c.currentTarget.style.MozUserSelect="none")}catch(f){}return b.init_x=c.pageX,b.init_y=c.pageY,b.data=d,b.is_down=!0,b.element=c.currentTarget,b.target=c.target,b.is_touch="touchstart"===c.type,e!==!1&&(b.helper=a("<div id='vakata-dnd'></div>").html(e).css({display:"block",margin:"0",padding:"0",position:"absolute",top:"-2000px",lineHeight:"16px",zIndex:"10000"})),a(k).on("mousemove.vakata.jstree touchmove.vakata.jstree",a.vakata.dnd.drag),a(k).on("mouseup.vakata.jstree touchend.vakata.jstree",a.vakata.dnd.stop),!1},drag:function(c){if("touchmove"===c.type&&c.originalEvent&&c.originalEvent.changedTouches&&c.originalEvent.changedTouches[0]&&(c.pageX=c.originalEvent.changedTouches[0].pageX,c.pageY=c.originalEvent.changedTouches[0].pageY,c.target=k.elementFromPoint(c.originalEvent.changedTouches[0].pageX-window.pageXOffset,c.originalEvent.changedTouches[0].pageY-window.pageYOffset)),b.is_down){if(!b.is_drag){if(!(Math.abs(c.pageX-b.init_x)>(b.is_touch?a.vakata.dnd.settings.threshold_touch:a.vakata.dnd.settings.threshold)||Math.abs(c.pageY-b.init_y)>(b.is_touch?a.vakata.dnd.settings.threshold_touch:a.vakata.dnd.settings.threshold)))return;b.helper&&(b.helper.appendTo("body"),b.helper_w=b.helper.outerWidth()),b.is_drag=!0,a.vakata.dnd._trigger("start",c)}var d=!1,e=!1,f=!1,g=!1,h=!1,i=!1,j=!1,l=!1,m=!1,n=!1;return b.scroll_t=0,b.scroll_l=0,b.scroll_e=!1,a(a(c.target).parentsUntil("body").addBack().get().reverse()).filter(function(){return/^auto|scroll$/.test(a(this).css("overflow"))&&(this.scrollHeight>this.offsetHeight||this.scrollWidth>this.offsetWidth)}).each(function(){var d=a(this),e=d.offset();return this.scrollHeight>this.offsetHeight&&(e.top+d.height()-c.pageY<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_t=1),c.pageY-e.top<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_t=-1)),this.scrollWidth>this.offsetWidth&&(e.left+d.width()-c.pageX<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_l=1),c.pageX-e.left<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_l=-1)),b.scroll_t||b.scroll_l?(b.scroll_e=a(this),!1):void 0}),b.scroll_e||(d=a(k),e=a(window),f=d.height(),g=e.height(),h=d.width(),i=e.width(),j=d.scrollTop(),l=d.scrollLeft(),f>g&&c.pageY-j<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_t=-1),f>g&&g-(c.pageY-j)<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_t=1),h>i&&c.pageX-l<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_l=-1),h>i&&i-(c.pageX-l)<a.vakata.dnd.settings.scroll_proximity&&(b.scroll_l=1),(b.scroll_t||b.scroll_l)&&(b.scroll_e=d)),b.scroll_e&&a.vakata.dnd._scroll(!0),b.helper&&(m=parseInt(c.pageY+a.vakata.dnd.settings.helper_top,10),n=parseInt(c.pageX+a.vakata.dnd.settings.helper_left,10),f&&m+25>f&&(m=f-50),h&&n+b.helper_w>h&&(n=h-(b.helper_w+2)),b.helper.css({left:n+"px",top:m+"px"})),a.vakata.dnd._trigger("move",c),!1}},stop:function(c){if("touchend"===c.type&&c.originalEvent&&c.originalEvent.changedTouches&&c.originalEvent.changedTouches[0]&&(c.pageX=c.originalEvent.changedTouches[0].pageX,c.pageY=c.originalEvent.changedTouches[0].pageY,c.target=k.elementFromPoint(c.originalEvent.changedTouches[0].pageX-window.pageXOffset,c.originalEvent.changedTouches[0].pageY-window.pageYOffset)),b.is_drag)a.vakata.dnd._trigger("stop",c);else if("touchend"===c.type&&c.target===b.target){var d=setTimeout(function(){a(c.target).click()},100);a(c.target).one("click",function(){d&&clearTimeout(d)})}return a.vakata.dnd._clean(),!1}}}(a),a.jstree.defaults.massload=null,a.jstree.plugins.massload=function(b,c){this.init=function(a,b){c.init.call(this,a,b),this._data.massload={}},this._load_nodes=function(b,d,e){var f=this.settings.massload;return e&&!a.isEmptyObject(this._data.massload)?c._load_nodes.call(this,b,d,e):a.isFunction(f)?f.call(this,b,a.proxy(function(a){if(a)for(var f in a)a.hasOwnProperty(f)&&(this._data.massload[f]=a[f]);c._load_nodes.call(this,b,d,e)},this)):"object"==typeof f&&f&&f.url?(f=a.extend(!0,{},f),a.isFunction(f.url)&&(f.url=f.url.call(this,b)),a.isFunction(f.data)&&(f.data=f.data.call(this,b)),a.ajax(f).done(a.proxy(function(a,f,g){if(a)for(var h in a)a.hasOwnProperty(h)&&(this._data.massload[h]=a[h]);c._load_nodes.call(this,b,d,e)},this)).fail(a.proxy(function(a){c._load_nodes.call(this,b,d,e)},this))):c._load_nodes.call(this,b,d,e)},this._load_node=function(b,d){var e=this._data.massload[b.id];return e?this["string"==typeof e?"_append_html_data":"_append_json_data"](b,"string"==typeof e?a(a.parseHTML(e)).filter(function(){return 3!==this.nodeType}):e,function(a){d.call(this,a),delete this._data.massload[b.id]}):c._load_node.call(this,b,d)}},a.jstree.defaults.search={ajax:!1,fuzzy:!1,case_sensitive:!1,show_only_matches:!1,show_only_matches_children:!1,close_opened_onclear:!0,search_leaves_only:!1,search_callback:!1},a.jstree.plugins.search=function(c,d){this.bind=function(){d.bind.call(this),this._data.search.str="",this._data.search.dom=a(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=!1,this._data.search.smc=!1,this._data.search.hdn=[],this.element.on("search.jstree",a.proxy(function(b,c){if(this._data.search.som&&c.res.length){var d,e,f=this._model.data,g=[];for(d=0,e=c.res.length;e>d;d++)f[c.res[d]]&&!f[c.res[d]].state.hidden&&(g.push(c.res[d]),g=g.concat(f[c.res[d]].parents),this._data.search.smc&&(g=g.concat(f[c.res[d]].children_d)));g=a.vakata.array_remove_item(a.vakata.array_unique(g),a.jstree.root),this._data.search.hdn=this.hide_all(!0),this.show_node(g)}},this)).on("clear_search.jstree",a.proxy(function(a,b){this._data.search.som&&b.res.length&&this.show_node(this._data.search.hdn)},this))},this.search=function(c,d,e,f,g,h){if(c===!1||""===a.trim(c.toString()))return this.clear_search();f=this.get_node(f),f=f&&f.id?f.id:null,c=c.toString();var i,j,k=this.settings.search,l=k.ajax?k.ajax:!1,m=this._model.data,n=null,o=[],p=[];if(this._data.search.res.length&&!g&&this.clear_search(),e===b&&(e=k.show_only_matches),h===b&&(h=k.show_only_matches_children),!d&&l!==!1)return a.isFunction(l)?l.call(this,c,a.proxy(function(b){b&&b.d&&(b=b.d),this._load_nodes(a.isArray(b)?a.vakata.array_unique(b):[],function(){this.search(c,!0,e,f,g)},!0)},this),f):(l=a.extend({},l),l.data||(l.data={}),l.data.str=c,f&&(l.data.inside=f),a.ajax(l).fail(a.proxy(function(){this._data.core.last_error={error:"ajax",plugin:"search",id:"search_01",reason:"Could not load search parents",data:JSON.stringify(l)},this.settings.core.error.call(this,this._data.core.last_error)},this)).done(a.proxy(function(b){b&&b.d&&(b=b.d),this._load_nodes(a.isArray(b)?a.vakata.array_unique(b):[],function(){this.search(c,!0,e,f,g)},!0)},this)));if(g||(this._data.search.str=c,this._data.search.dom=a(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=e,this._data.search.smc=h),n=new a.vakata.search(c,!0,{caseSensitive:k.case_sensitive,fuzzy:k.fuzzy}),a.each(m[f?f:a.jstree.root].children_d,function(a,b){var d=m[b];d.text&&(!k.search_leaves_only||d.state.loaded&&0===d.children.length)&&(k.search_callback&&k.search_callback.call(this,c,d)||!k.search_callback&&n.search(d.text).isMatch)&&(o.push(b),p=p.concat(d.parents))}),o.length){for(p=a.vakata.array_unique(p),i=0,j=p.length;j>i;i++)p[i]!==a.jstree.root&&m[p[i]]&&this.open_node(p[i],null,0)===!0&&this._data.search.opn.push(p[i]);g?(this._data.search.dom=this._data.search.dom.add(a(this.element[0].querySelectorAll("#"+a.map(o,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #")))),this._data.search.res=a.vakata.array_unique(this._data.search.res.concat(o))):(this._data.search.dom=a(this.element[0].querySelectorAll("#"+a.map(o,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.res=o),this._data.search.dom.children(".jstree-anchor").addClass("jstree-search")}this.trigger("search",{nodes:this._data.search.dom,str:c,res:this._data.search.res,show_only_matches:e})},this.clear_search=function(){this.settings.search.close_opened_onclear&&this.close_node(this._data.search.opn,0),this.trigger("clear_search",{nodes:this._data.search.dom,str:this._data.search.str,res:this._data.search.res}),this._data.search.res.length&&(this._data.search.dom=a(this.element[0].querySelectorAll("#"+a.map(this._data.search.res,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search")),this._data.search.str="",this._data.search.res=[],this._data.search.opn=[],this._data.search.dom=a()},this.redraw_node=function(b,c,e,f){if(b=d.redraw_node.apply(this,arguments),b&&-1!==a.inArray(b.id,this._data.search.res)){var g,h,i=null;for(g=0,h=b.childNodes.length;h>g;g++)if(b.childNodes[g]&&b.childNodes[g].className&&-1!==b.childNodes[g].className.indexOf("jstree-anchor")){i=b.childNodes[g];break}i&&(i.className+=" jstree-search")}return b}},function(a){a.vakata.search=function(b,c,d){d=d||{},d=a.extend({},a.vakata.search.defaults,d),d.fuzzy!==!1&&(d.fuzzy=!0),b=d.caseSensitive?b:b.toLowerCase();var e,f,g,h,i=d.location,j=d.distance,k=d.threshold,l=b.length;return l>32&&(d.fuzzy=!1),d.fuzzy&&(e=1<<l-1,f=function(){var a={},c=0;for(c=0;l>c;c++)a[b.charAt(c)]=0;for(c=0;l>c;c++)a[b.charAt(c)]|=1<<l-c-1;return a}(),g=function(a,b){var c=a/l,d=Math.abs(i-b);return j?c+d/j:d?1:c}),h=function(a){if(a=d.caseSensitive?a:a.toLowerCase(),b===a||-1!==a.indexOf(b))return{isMatch:!0,score:0};if(!d.fuzzy)return{isMatch:!1,score:1};var c,h,j,m,n,o,p,q,r,s=a.length,t=k,u=a.indexOf(b,i),v=l+s,w=1,x=[];for(-1!==u&&(t=Math.min(g(0,u),t),u=a.lastIndexOf(b,i+l),-1!==u&&(t=Math.min(g(0,u),t))),u=-1,c=0;l>c;c++){for(j=0,m=v;m>j;)g(c,i+m)<=t?j=m:v=m,m=Math.floor((v-j)/2+j);for(v=m,o=Math.max(1,i-m+1),p=Math.min(i+m,s)+l,q=new Array(p+2),q[p+1]=(1<<c)-1,h=p;h>=o;h--)if(r=f[a.charAt(h-1)],0===c?q[h]=(q[h+1]<<1|1)&r:q[h]=(q[h+1]<<1|1)&r|((n[h+1]|n[h])<<1|1)|n[h+1],q[h]&e&&(w=g(c,h-1),t>=w)){if(t=w,u=h-1,x.push(u),!(u>i))break;o=Math.max(1,2*i-u)}if(g(c+1,i)>t)break;n=q}return{isMatch:u>=0,score:w}},c===!0?{search:h}:h(c)},a.vakata.search.defaults={location:0,distance:100,threshold:.6,fuzzy:!1,caseSensitive:!1}}(a),a.jstree.defaults.sort=function(a,b){return this.get_text(a)>this.get_text(b)?1:-1},a.jstree.plugins.sort=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("model.jstree",a.proxy(function(a,b){this.sort(b.parent,!0)},this)).on("rename_node.jstree create_node.jstree",a.proxy(function(a,b){this.sort(b.parent||b.node.parent,!1),this.redraw_node(b.parent||b.node.parent,!0)},this)).on("move_node.jstree copy_node.jstree",a.proxy(function(a,b){this.sort(b.parent,!1),this.redraw_node(b.parent,!0)},this))},this.sort=function(b,c){var d,e;if(b=this.get_node(b),b&&b.children&&b.children.length&&(b.children.sort(a.proxy(this.settings.sort,this)),c))for(d=0,e=b.children_d.length;e>d;d++)this.sort(b.children_d[d],!1)}};var n=!1;a.jstree.defaults.state={key:"jstree",events:"changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree",ttl:!1,filter:!1},a.jstree.plugins.state=function(b,c){this.bind=function(){c.bind.call(this);var b=a.proxy(function(){this.element.on(this.settings.state.events,a.proxy(function(){n&&clearTimeout(n),n=setTimeout(a.proxy(function(){this.save_state()},this),100)},this)),this.trigger("state_ready")},this);this.element.on("ready.jstree",a.proxy(function(a,c){this.element.one("restore_state.jstree",b),this.restore_state()||b()},this))},this.save_state=function(){var b={state:this.get_state(),ttl:this.settings.state.ttl,sec:+new Date};a.vakata.storage.set(this.settings.state.key,JSON.stringify(b))},this.restore_state=function(){var b=a.vakata.storage.get(this.settings.state.key);if(b)try{b=JSON.parse(b)}catch(c){return!1}return b&&b.ttl&&b.sec&&+new Date-b.sec>b.ttl?!1:(b&&b.state&&(b=b.state),b&&a.isFunction(this.settings.state.filter)&&(b=this.settings.state.filter.call(this,b)),b?(this.element.one("set_state.jstree",function(c,d){d.instance.trigger("restore_state",{state:a.extend(!0,{},b)})}),this.set_state(b),!0):!1)},this.clear_state=function(){return a.vakata.storage.del(this.settings.state.key)}},function(a,b){a.vakata.storage={set:function(a,b){return window.localStorage.setItem(a,b)},get:function(a){return window.localStorage.getItem(a)},del:function(a){return window.localStorage.removeItem(a)}}}(a),a.jstree.defaults.types={"default":{}},a.jstree.defaults.types[a.jstree.root]={},a.jstree.plugins.types=function(c,d){this.init=function(c,e){var f,g;if(e&&e.types&&e.types["default"])for(f in e.types)if("default"!==f&&f!==a.jstree.root&&e.types.hasOwnProperty(f))for(g in e.types["default"])e.types["default"].hasOwnProperty(g)&&e.types[f][g]===b&&(e.types[f][g]=e.types["default"][g]);d.init.call(this,c,e),this._model.data[a.jstree.root].type=a.jstree.root},this.refresh=function(b,c){d.refresh.call(this,b,c),this._model.data[a.jstree.root].type=a.jstree.root},this.bind=function(){this.element.on("model.jstree",a.proxy(function(c,d){var e,f,g=this._model.data,h=d.nodes,i=this.settings.types,j="default";for(e=0,f=h.length;f>e;e++)j="default",g[h[e]].original&&g[h[e]].original.type&&i[g[h[e]].original.type]&&(j=g[h[e]].original.type),g[h[e]].data&&g[h[e]].data.jstree&&g[h[e]].data.jstree.type&&i[g[h[e]].data.jstree.type]&&(j=g[h[e]].data.jstree.type),g[h[e]].type=j,g[h[e]].icon===!0&&i[j].icon!==b&&(g[h[e]].icon=i[j].icon);g[a.jstree.root].type=a.jstree.root},this)),d.bind.call(this)},this.get_json=function(b,c,e){var f,g,h=this._model.data,i=c?a.extend(!0,{},c,{no_id:!1}):{},j=d.get_json.call(this,b,i,e);if(j===!1)return!1;if(a.isArray(j))for(f=0,g=j.length;g>f;f++)j[f].type=j[f].id&&h[j[f].id]&&h[j[f].id].type?h[j[f].id].type:"default",c&&c.no_id&&(delete j[f].id,j[f].li_attr&&j[f].li_attr.id&&delete j[f].li_attr.id,j[f].a_attr&&j[f].a_attr.id&&delete j[f].a_attr.id);else j.type=j.id&&h[j.id]&&h[j.id].type?h[j.id].type:"default",c&&c.no_id&&(j=this._delete_ids(j));return j},this._delete_ids=function(b){if(a.isArray(b)){for(var c=0,d=b.length;d>c;c++)b[c]=this._delete_ids(b[c]);return b}return delete b.id,b.li_attr&&b.li_attr.id&&delete b.li_attr.id,b.a_attr&&b.a_attr.id&&delete b.a_attr.id,b.children&&a.isArray(b.children)&&(b.children=this._delete_ids(b.children)),b},this.check=function(c,e,f,g,h){if(d.check.call(this,c,e,f,g,h)===!1)return!1;e=e&&e.id?e:this.get_node(e),f=f&&f.id?f:this.get_node(f);var i,j,k,l,m=e&&e.id?h&&h.origin?h.origin:a.jstree.reference(e.id):null;switch(m=m&&m._model&&m._model.data?m._model.data:null,c){case"create_node":case"move_node":case"copy_node":if("move_node"!==c||-1===a.inArray(e.id,f.children)){if(i=this.get_rules(f),i.max_children!==b&&-1!==i.max_children&&i.max_children===f.children.length)return this._data.core.last_error={error:"check",plugin:"types",id:"types_01",reason:"max_children prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;if(i.valid_children!==b&&-1!==i.valid_children&&-1===a.inArray(e.type||"default",i.valid_children))return this._data.core.last_error={error:"check",plugin:"types",id:"types_02",reason:"valid_children prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;if(m&&e.children_d&&e.parents){for(j=0,k=0,l=e.children_d.length;l>k;k++)j=Math.max(j,m[e.children_d[k]].parents.length);j=j-e.parents.length+1}(0>=j||j===b)&&(j=1);do{if(i.max_depth!==b&&-1!==i.max_depth&&i.max_depth<j)return this._data.core.last_error={error:"check",plugin:"types",id:"types_03",reason:"max_depth prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;f=this.get_node(f.parent),i=this.get_rules(f),j++}while(f)}}return!0},this.get_rules=function(a){if(a=this.get_node(a),!a)return!1;var c=this.get_type(a,!0);return c.max_depth===b&&(c.max_depth=-1),c.max_children===b&&(c.max_children=-1),c.valid_children===b&&(c.valid_children=-1),c},this.get_type=function(b,c){return b=this.get_node(b),b?c?a.extend({type:b.type},this.settings.types[b.type]):b.type:!1},this.set_type=function(c,d){var e,f,g,h,i;if(a.isArray(c)){for(c=c.slice(),f=0,g=c.length;g>f;f++)this.set_type(c[f],d);return!0}return e=this.settings.types,c=this.get_node(c),e[d]&&c?(h=c.type,i=this.get_icon(c),c.type=d,(i===!0||e[h]&&e[h].icon!==b&&i===e[h].icon)&&this.set_icon(c,e[d].icon!==b?e[d].icon:!0),!0):!1}},a.jstree.defaults.unique={case_sensitive:!1,duplicate:function(a,b){return a+" ("+b+")"}},a.jstree.plugins.unique=function(c,d){this.check=function(b,c,e,f,g){if(d.check.call(this,b,c,e,f,g)===!1)return!1;if(c=c&&c.id?c:this.get_node(c),e=e&&e.id?e:this.get_node(e),!e||!e.children)return!0;var h,i,j="rename_node"===b?f:c.text,k=[],l=this.settings.unique.case_sensitive,m=this._model.data;for(h=0,i=e.children.length;i>h;h++)k.push(l?m[e.children[h]].text:m[e.children[h]].text.toLowerCase());switch(l||(j=j.toLowerCase()),b){case"delete_node":return!0;case"rename_node":return h=-1===a.inArray(j,k)||c.text&&c.text[l?"toString":"toLowerCase"]()===j,h||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_01",reason:"Child with name "+j+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),h;case"create_node":return h=-1===a.inArray(j,k),h||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_04",reason:"Child with name "+j+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),h;case"copy_node":return h=-1===a.inArray(j,k),h||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_02",reason:"Child with name "+j+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),h;case"move_node":return h=c.parent===e.id&&(!g||!g.is_multi)||-1===a.inArray(j,k),h||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_03",reason:"Child with name "+j+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),h}return!0},this.create_node=function(c,e,f,g,h){if(!e||e.text===b){if(null===c&&(c=a.jstree.root),c=this.get_node(c),!c)return d.create_node.call(this,c,e,f,g,h);if(f=f===b?"last":f,!f.toString().match(/^(before|after)$/)&&!h&&!this.is_loaded(c))return d.create_node.call(this,c,e,f,g,h);e||(e={});var i,j,k,l,m,n=this._model.data,o=this.settings.unique.case_sensitive,p=this.settings.unique.duplicate;for(j=i=this.get_string("New node"),k=[],l=0,m=c.children.length;m>l;l++)k.push(o?n[c.children[l]].text:n[c.children[l]].text.toLowerCase());for(l=1;-1!==a.inArray(o?j:j.toLowerCase(),k);)j=p.call(this,i,++l).toString();e.text=j}return d.create_node.call(this,c,e,f,g,h)}};var o=k.createElement("DIV");if(o.setAttribute("unselectable","on"),o.setAttribute("role","presentation"),o.className="jstree-wholerow",o.innerHTML="&#160;",a.jstree.plugins.wholerow=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("ready.jstree set_state.jstree",a.proxy(function(){this.hide_dots()},this)).on("init.jstree loading.jstree ready.jstree",a.proxy(function(){this.get_container_ul().addClass("jstree-wholerow-ul")},this)).on("deselect_all.jstree",a.proxy(function(a,b){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked")},this)).on("changed.jstree",a.proxy(function(a,b){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked");var c,d,e=!1;for(c=0,d=b.selected.length;d>c;c++)e=this.get_node(b.selected[c],!0),e&&e.length&&e.children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("open_node.jstree",a.proxy(function(a,b){this.get_node(b.node,!0).find(".jstree-clicked").parent().children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("hover_node.jstree dehover_node.jstree",a.proxy(function(a,b){"hover_node"===a.type&&this.is_disabled(b.node)||this.get_node(b.node,!0).children(".jstree-wholerow")["hover_node"===a.type?"addClass":"removeClass"]("jstree-wholerow-hovered")},this)).on("contextmenu.jstree",".jstree-wholerow",a.proxy(function(b){b.preventDefault();var c=a.Event("contextmenu",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey,pageX:b.pageX,pageY:b.pageY});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c)},this)).on("click.jstree",".jstree-wholerow",function(b){b.stopImmediatePropagation();var c=a.Event("click",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c).focus()}).on("click.jstree",".jstree-leaf > .jstree-ocl",a.proxy(function(b){b.stopImmediatePropagation();var c=a.Event("click",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c).focus()},this)).on("mouseover.jstree",".jstree-wholerow, .jstree-icon",a.proxy(function(a){return a.stopImmediatePropagation(),this.is_disabled(a.currentTarget)||this.hover_node(a.currentTarget),!1},this)).on("mouseleave.jstree",".jstree-node",a.proxy(function(a){this.dehover_node(a.currentTarget)},this))},this.teardown=function(){this.settings.wholerow&&this.element.find(".jstree-wholerow").remove(),c.teardown.call(this)},this.redraw_node=function(b,d,e,f){if(b=c.redraw_node.apply(this,arguments)){var g=o.cloneNode(!0);-1!==a.inArray(b.id,this._data.core.selected)&&(g.className+=" jstree-wholerow-clicked"),this._data.core.focused&&this._data.core.focused===b.id&&(g.className+=" jstree-wholerow-hovered"),b.insertBefore(g,b.childNodes[0])}return b}},k.registerElement&&Object&&Object.create){var p=Object.create(HTMLElement.prototype);p.createdCallback=function(){var b,c={core:{},plugins:[]};for(b in a.jstree.plugins)a.jstree.plugins.hasOwnProperty(b)&&this.attributes[b]&&(c.plugins.push(b),this.getAttribute(b)&&JSON.parse(this.getAttribute(b))&&(c[b]=JSON.parse(this.getAttribute(b))));for(b in a.jstree.defaults.core)a.jstree.defaults.core.hasOwnProperty(b)&&this.attributes[b]&&(c.core[b]=JSON.parse(this.getAttribute(b))||this.getAttribute(b));a(this).jstree(c)};try{k.registerElement("vakata-jstree",{prototype:p})}catch(q){}}}}),function(a){"use strict";function b(){var b=1,c=this;c.nodesFingerprint=function(a){return a.__uiNodeId||(a.__uiNodeId=b++),""+a.__uiNodeId+(a.id||"")+(a.text||"")+(a.type||"")},c.changeWatcher=function(b,c){var d,e=function(){var d,e,f=[];if(b)for(var h=a.isFunction(b)?b():b,i=0,j=h.length;j>i;i++)e=h[i],d=c(e),g[d]=e,f.push(d);return f},f=function(a,b){var c,d,e=[],f={};for(c=0,d=b.length;d>c;c++)f[b[c]]=!0;for(c=0,d=a.length;d>c;c++)f[a[c]]||e.push(a[c]);return e},g={},h=function(a,b){var e,h,i,j,k={},l=f(b,a);for(e=0,h=l.length;h>e;e++){var m=l[e];i=g[m],delete g[m];var n=c(i);n===m?d.onRemoved(i):(k[n]=m,d.onChanged(i))}var o=f(a,b);for(e=0,h=o.length;h>e;e++)j=o[e],i=g[j],k[j]||d.onAdded(i)};return d={subscribe:function(a,b){a.$watch(e,function(a,c){b&&b(a,c)===!1||h(a,c)},!0)},onAdded:a.noop,onChanged:a.noop,onRemoved:a.noop}}}function c(){return{restrict:"A",scope:{treeData:"=ngModel",treeEventsObj:"=?treeEventsObj",shouldApply:"&"},controller:"jsTreeCtrl",link:function(b,c,d,e){function f(b,c,d){if(d.treeEvents){for(var e=d.treeEvents.split(";"),f=0;f<e.length;f++)if(e[f].length>0){var g=e[f].split(":")[0],h=g+".jstree",i=e[f].split(":")[1];b.tree.on(h,b.$parent.$eval(i))}}else a.isObject(b.treeEventsObj)&&a.forEach(b.treeEventsObj,function(a,c){var d=c+".jstree";b.tree.on(d,a)})}function g(){var c=d.jsTree?b.$parent.$eval(d.jsTree):{};h={},a.copy(c,h);var e=JSON.stringify(h);return h.core?h.core.data=b.treeData:h.core={data:b.treeData},e}var h=null,i=e.changeWatcher(b.treeData,e.nodesFingerprint),j=!1;b.destroy=function(){if(d.tree)if(-1!==d.tree.indexOf(".")){for(var a=d.tree.split("."),e=a.pop(),f=b.$parent,g=0;g<a.length;g++)f=f[a[g]];b.tree=f[e]=c}else b.tree=b.$parent[d.tree]=c;else b.tree=c;b.tree.jstree("destroy")},b.init=function(){b.tree.jstree(h),f(b,c,d)},i.onChanged=function(c){a.isDefined(b.tree.jstree(!0).set_type)&&b.tree.jstree(!0).set_type(c.id,c.type),b.tree.jstree(!0).rename_node(c.id,c.text)},i.onAdded=function(a){for(;j;);j=!0;var c=b.tree.jstree(!0).get_node(a.parent),d=b.tree.jstree(!0).create_node(c,a,"inside",function(){j=!1});d||(j=!1)},i.onRemoved=function(a){b.tree.jstree(!0).delete_node(a.id)},i.subscribe(b,function(){return b.shouldApply?b.shouldApply():!0}),b.$watch(g,function(){b.destroy(),b.init()})}}}var d=a.module("ngJsTree",[]);d.controller("jsTreeCtrl",b),d.directive("jsTree",c)}(angular),function(a){"use strict";if(a.URL=a.URL||a.webkitURL,a.Blob&&a.URL)try{return void new Blob}catch(b){}var c=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||function(a){var b=function(a){return Object.prototype.toString.call(a).match(/^\[object\s(.*)\]$/)[1]},c=function(){this.data=[]},d=function(a,b,c){this.data=a,this.size=a.length,this.type=b,this.encoding=c},e=c.prototype,f=d.prototype,g=a.FileReaderSync,h=function(a){this.code=this[this.name=a]},i="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),j=i.length,k=a.URL||a.webkitURL||a,l=k.createObjectURL,m=k.revokeObjectURL,n=k,o=a.btoa,p=a.atob,q=a.ArrayBuffer,r=a.Uint8Array,s=/^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;for(d.fake=f.fake=!0;j--;)h.prototype[i[j]]=j+1;return k.createObjectURL||(n=a.URL=function(a){var b,c=document.createElementNS("http://www.w3.org/1999/xhtml","a");return c.href=a,"origin"in c||("data:"===c.protocol.toLowerCase()?c.origin=null:(b=a.match(s),c.origin=b&&b[1])),c}),n.createObjectURL=function(a){var b,c=a.type;return null===c&&(c="application/octet-stream"),a instanceof d?(b="data:"+c,"base64"===a.encoding?b+";base64,"+a.data:"URI"===a.encoding?b+","+decodeURIComponent(a.data):o?b+";base64,"+o(a.data):b+","+encodeURIComponent(a.data)):l?l.call(k,a):void 0},n.revokeObjectURL=function(a){"data:"!==a.substring(0,5)&&m&&m.call(k,a)},e.append=function(a){var c=this.data;if(r&&(a instanceof q||a instanceof r)){for(var e="",f=new r(a),i=0,j=f.length;j>i;i++)e+=String.fromCharCode(f[i]);c.push(e)}else if("Blob"===b(a)||"File"===b(a)){if(!g)throw new h("NOT_READABLE_ERR");var k=new g;c.push(k.readAsBinaryString(a))}else a instanceof d?"base64"===a.encoding&&p?c.push(p(a.data)):"URI"===a.encoding?c.push(decodeURIComponent(a.data)):"raw"===a.encoding&&c.push(a.data):("string"!=typeof a&&(a+=""),c.push(unescape(encodeURIComponent(a))))},e.getBlob=function(a){return arguments.length||(a=null),new d(this.data.join(""),a,"raw")},e.toString=function(){return"[object BlobBuilder]"},f.slice=function(a,b,c){var e=arguments.length;return 3>e&&(c=null),new d(this.data.slice(a,e>1?b:this.data.length),c,this.encoding)},f.toString=function(){return"[object Blob]"},f.close=function(){this.size=0,delete this.data},c}(a);a.Blob=function(a,b){var d=b?b.type||"":"",e=new c;
+if(a)for(var f=0,g=a.length;g>f;f++)Uint8Array&&a[f]instanceof Uint8Array?e.append(a[f].buffer):e.append(a[f]);var h=e.getBlob(d);return!h.slice&&h.webkitSlice&&(h.slice=h.webkitSlice),h};var d=Object.getPrototypeOf||function(a){return a.__proto__};a.Blob.prototype=d(new a.Blob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this);var saveAs=saveAs||function(a){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=b.createElementNS("http://www.w3.org/1999/xhtml","a"),e="download"in d,f=function(c){var d=b.createEvent("MouseEvents");d.initMouseEvent("click",!0,!1,a,0,0,0,0,0,!1,!1,!1,!1,0,null),c.dispatchEvent(d)},g=a.webkitRequestFileSystem,h=a.requestFileSystem||g||a.mozRequestFileSystem,i=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},j="application/octet-stream",k=0,l=500,m=function(b){var d=function(){"string"==typeof b?c().revokeObjectURL(b):b.remove()};a.chrome?d():setTimeout(d,l)},n=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(f){i(f)}}},o=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},p=function(b,i){b=o(b);var l,p,q,r=this,s=b.type,t=!1,u=function(){n(r,"writestart progress write writeend".split(" "))},v=function(){if(!t&&l||(l=c().createObjectURL(b)),p)p.location.href=l;else{var d=a.open(l,"_blank");void 0==d&&"undefined"!=typeof safari&&(a.location.href=l)}r.readyState=r.DONE,u(),m(l)},w=function(a){return function(){return r.readyState!==r.DONE?a.apply(this,arguments):void 0}},x={create:!0,exclusive:!1};return r.readyState=r.INIT,i||(i="download"),e?(l=c().createObjectURL(b),d.href=l,d.download=i,f(d),r.readyState=r.DONE,u(),void m(l)):(a.chrome&&s&&s!==j&&(q=b.slice||b.webkitSlice,b=q.call(b,0,b.size,j),t=!0),g&&"download"!==i&&(i+=".download"),(s===j||g)&&(p=a),h?(k+=b.size,void h(a.TEMPORARY,k,w(function(a){a.root.getDirectory("saved",x,w(function(a){var c=function(){a.getFile(i,x,w(function(a){a.createWriter(w(function(c){c.onwriteend=function(b){p.location.href=a.toURL(),r.readyState=r.DONE,n(r,"writeend",b),m(a)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&v()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=r["on"+a]}),c.write(b),r.abort=function(){c.abort(),r.readyState=r.DONE},r.readyState=r.WRITING}),v)}),v)};a.getFile(i,{create:!1},w(function(a){a.remove(),c()}),w(function(a){a.code===a.NOT_FOUND_ERR?c():v()}))}),v)}),v)):void v())},q=p.prototype,r=function(a,b){return new p(a,b)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(a,b){return navigator.msSaveOrOpenBlob(o(a),b)}:(q.abort=function(){var a=this;a.readyState=a.DONE,n(a,"abort")},q.readyState=q.INIT=0,q.WRITING=1,q.DONE=2,q.error=q.onwritestart=q.onprogress=q.onwrite=q.onabort=q.onerror=q.onwriteend=null,r)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof module&&module.exports?module.exports.saveAs=saveAs:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return saveAs}),function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){!function(a){"use strict";if(a.URL=a.URL||a.webkitURL,a.Blob&&a.URL)try{return void new Blob}catch(b){}var c=a.BlobBuilder||a.WebKitBlobBuilder||a.MozBlobBuilder||function(a){var b=function(a){return Object.prototype.toString.call(a).match(/^\[object\s(.*)\]$/)[1]},c=function(){this.data=[]},d=function(a,b,c){this.data=a,this.size=a.length,this.type=b,this.encoding=c},e=c.prototype,f=d.prototype,g=a.FileReaderSync,h=function(a){this.code=this[this.name=a]},i="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),j=i.length,k=a.URL||a.webkitURL||a,l=k.createObjectURL,m=k.revokeObjectURL,n=k,o=a.btoa,p=a.atob,q=a.ArrayBuffer,r=a.Uint8Array,s=/^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/;for(d.fake=f.fake=!0;j--;)h.prototype[i[j]]=j+1;return k.createObjectURL||(n=a.URL=function(a){var b,c=document.createElementNS("http://www.w3.org/1999/xhtml","a");return c.href=a,"origin"in c||("data:"===c.protocol.toLowerCase()?c.origin=null:(b=a.match(s),c.origin=b&&b[1])),c}),n.createObjectURL=function(a){var b,c=a.type;return null===c&&(c="application/octet-stream"),a instanceof d?(b="data:"+c,"base64"===a.encoding?b+";base64,"+a.data:"URI"===a.encoding?b+","+decodeURIComponent(a.data):o?b+";base64,"+o(a.data):b+","+encodeURIComponent(a.data)):l?l.call(k,a):void 0},n.revokeObjectURL=function(a){"data:"!==a.substring(0,5)&&m&&m.call(k,a)},e.append=function(a){var c=this.data;if(r&&(a instanceof q||a instanceof r)){for(var e="",f=new r(a),i=0,j=f.length;j>i;i++)e+=String.fromCharCode(f[i]);c.push(e)}else if("Blob"===b(a)||"File"===b(a)){if(!g)throw new h("NOT_READABLE_ERR");var k=new g;c.push(k.readAsBinaryString(a))}else a instanceof d?"base64"===a.encoding&&p?c.push(p(a.data)):"URI"===a.encoding?c.push(decodeURIComponent(a.data)):"raw"===a.encoding&&c.push(a.data):("string"!=typeof a&&(a+=""),c.push(unescape(encodeURIComponent(a))))},e.getBlob=function(a){return arguments.length||(a=null),new d(this.data.join(""),a,"raw")},e.toString=function(){return"[object BlobBuilder]"},f.slice=function(a,b,c){var e=arguments.length;return 3>e&&(c=null),new d(this.data.slice(a,e>1?b:this.data.length),c,this.encoding)},f.toString=function(){return"[object Blob]"},f.close=function(){this.size=0,delete this.data},c}(a);a.Blob=function(a,b){var d=b?b.type||"":"",e=new c;if(a)for(var f=0,g=a.length;g>f;f++)Uint8Array&&a[f]instanceof Uint8Array?e.append(a[f].buffer):e.append(a[f]);var h=e.getBlob(d);return!h.slice&&h.webkitSlice&&(h.slice=h.webkitSlice),h};var d=Object.getPrototypeOf||function(a){return a.__proto__};a.Blob.prototype=d(new a.Blob)}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content||this)},{}],2:[function(a,b,c){var d=d||function(a){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=b.createElementNS("http://www.w3.org/1999/xhtml","a"),e="download"in d,f=function(a){var b=new MouseEvent("click");a.dispatchEvent(b)},g=/Version\/[\d\.]+.*Safari/.test(navigator.userAgent),h=a.webkitRequestFileSystem,i=a.requestFileSystem||h||a.mozRequestFileSystem,j=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},k="application/octet-stream",l=0,m=500,n=function(b){var d=function(){"string"==typeof b?c().revokeObjectURL(b):b.remove()};a.chrome?d():setTimeout(d,m)},o=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(f){j(f)}}},p=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},q=function(b,j,m){m||(b=p(b));var q,r,s,t=this,u=b.type,v=!1,w=function(){o(t,"writestart progress write writeend".split(" "))},x=function(){if(r&&g&&"undefined"!=typeof FileReader){var d=new FileReader;return d.onloadend=function(){var a=d.result;r.location.href="data:attachment/file"+a.slice(a.search(/[,;]/)),t.readyState=t.DONE,w()},d.readAsDataURL(b),void(t.readyState=t.INIT)}if(!v&&q||(q=c().createObjectURL(b)),r)r.location.href=q;else{var e=a.open(q,"_blank");void 0==e&&g&&(a.location.href=q)}t.readyState=t.DONE,w(),n(q)},y=function(a){return function(){return t.readyState!==t.DONE?a.apply(this,arguments):void 0}},z={create:!0,exclusive:!1};return t.readyState=t.INIT,j||(j="download"),e?(q=c().createObjectURL(b),void setTimeout(function(){d.href=q,d.download=j,f(d),w(),n(q),t.readyState=t.DONE})):(a.chrome&&u&&u!==k&&(s=b.slice||b.webkitSlice,b=s.call(b,0,b.size,k),v=!0),h&&"download"!==j&&(j+=".download"),(u===k||h)&&(r=a),i?(l+=b.size,void i(a.TEMPORARY,l,y(function(a){a.root.getDirectory("saved",z,y(function(a){var c=function(){a.getFile(j,z,y(function(a){a.createWriter(y(function(c){c.onwriteend=function(b){r.location.href=a.toURL(),t.readyState=t.DONE,o(t,"writeend",b),n(a)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&x()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=t["on"+a]}),c.write(b),t.abort=function(){c.abort(),t.readyState=t.DONE},t.readyState=t.WRITING}),x)}),x)};a.getFile(j,{create:!1},y(function(a){a.remove(),c()}),y(function(a){a.code===a.NOT_FOUND_ERR?c():x()}))}),x)}),x)):void x())},r=q.prototype,s=function(a,b,c){return new q(a,b,c)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(a,b,c){return c||(a=p(a)),navigator.msSaveOrOpenBlob(a,b||"download")}:(r.abort=function(){var a=this;a.readyState=a.DONE,o(a,"abort")},r.readyState=r.INIT=0,r.WRITING=1,r.DONE=2,r.error=r.onwritestart=r.onprogress=r.onwrite=r.onabort=r.onerror=r.onwriteend=null,s)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof b&&b.exports?b.exports.saveAs=d:"undefined"!=typeof define&&null!==define&&null!=define.amd&&define([],function(){return d})},{}],3:[function(a,b,c){"use strict";b.exports="ngFileSaver",angular.module("ngFileSaver",[]).factory("FileSaver",["Blob","SaveAs","FileSaverUtils",a("./angular-file-saver.service")]).factory("FileSaverUtils",[a("./utils/utils.service.js")]).factory("Blob",["$window",a("./dependencies/blob-bundle.service.js")]).factory("SaveAs",[a("./dependencies/file-saver-bundle.service.js")])},{"./angular-file-saver.service":4,"./dependencies/blob-bundle.service.js":5,"./dependencies/file-saver-bundle.service.js":6,"./utils/utils.service.js":7}],4:[function(a,b,c){"use strict";b.exports=function(a,b,c){function d(a,d,e){try{b(a,d,e)}catch(f){c.handleErrors(f.message)}}return{saveAs:function(a,b,e){return c.isBlobInstance(a)||c.handleErrors("Data argument should be a blob instance"),c.isString(b)||c.handleErrors("Filename argument should be a string"),d(a,b,e)}}}},{}],5:[function(a,b,c){"use strict";a("Blob.js"),b.exports=function(a){return a.Blob}},{"Blob.js":1}],6:[function(a,b,c){"use strict";b.exports=function(){return a("FileSaver.js").saveAs||function(){}}},{"FileSaver.js":2}],7:[function(a,b,c){"use strict";b.exports=function(){return{handleErrors:function(a){throw new Error(a)},isString:function(a){return"string"==typeof a||a instanceof String},isUndefined:function(a){return"undefined"==typeof a},isBlobInstance:function(a){return a instanceof Blob}}}},{}]},{},[3]),function(a){function b(a,b,c){switch(arguments.length){case 2:return null!=a?a:b;case 3:return null!=a?a:null!=b?b:c;default:throw new Error("Implement me")}}function c(a,b){return Ba.call(a,b)}function d(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function e(a){va.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+a)}function f(a,b){var c=!0;return o(function(){return c&&(e(a),c=!1),b.apply(this,arguments)},b)}function g(a,b){sb[a]||(e(b),sb[a]=!0)}function h(a,b){return function(c){return r(a.call(this,c),b)}}function i(a,b){return function(c){return this.localeData().ordinal(a.call(this,c),b)}}function j(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,"months");return 0>b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)}function k(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function l(){}function m(a,b){b!==!1&&H(a),p(this,a),this._d=new Date(+a._d),ub===!1&&(ub=!0,va.updateOffset(this),ub=!1)}function n(a){var b=A(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._milliseconds=+k+1e3*j+6e4*i+36e5*h,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=va.localeData(),this._bubble()}function o(a,b){for(var d in b)c(b,d)&&(a[d]=b[d]);return c(b,"toString")&&(a.toString=b.toString),c(b,"valueOf")&&(a.valueOf=b.valueOf),a}function p(a,b){var c,d,e;if("undefined"!=typeof b._isAMomentObject&&(a._isAMomentObject=b._isAMomentObject),"undefined"!=typeof b._i&&(a._i=b._i),"undefined"!=typeof b._f&&(a._f=b._f),"undefined"!=typeof b._l&&(a._l=b._l),"undefined"!=typeof b._strict&&(a._strict=b._strict),"undefined"!=typeof b._tzm&&(a._tzm=b._tzm),"undefined"!=typeof b._isUTC&&(a._isUTC=b._isUTC),"undefined"!=typeof b._offset&&(a._offset=b._offset),"undefined"!=typeof b._pf&&(a._pf=b._pf),"undefined"!=typeof b._locale&&(a._locale=b._locale),Ka.length>0)for(c in Ka)d=Ka[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function q(a){return 0>a?Math.ceil(a):Math.floor(a)}function r(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.length<b;)d="0"+d;return(e?c?"+":"":"-")+d}function s(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function t(a,b){var c;return b=M(b,a),a.isBefore(b)?c=s(a,b):(c=s(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function u(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(g(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=va.duration(c,d),v(this,e,a),this}}function v(a,b,c,d){var e=b._milliseconds,f=b._days,g=b._months;d=null==d?!0:d,e&&a._d.setTime(+a._d+e*c),f&&pa(a,"Date",oa(a,"Date")+f*c),g&&na(a,oa(a,"Month")+g*c),d&&va.updateOffset(a,f||g)}function w(a){return"[object Array]"===Object.prototype.toString.call(a)}function x(a){return"[object Date]"===Object.prototype.toString.call(a)||a instanceof Date}function y(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&C(a[d])!==C(b[d]))&&g++;return g+f}function z(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=lb[a]||mb[b]||b}return a}function A(a){var b,d,e={};for(d in a)c(a,d)&&(b=z(d),b&&(e[b]=a[d]));return e}function B(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}va[b]=function(e,f){var g,h,i=va._locale[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=va().utc().set(d,a);return i.call(va._locale,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function C(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function D(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function E(a,b,c){return ja(va([a,11,31+b-c]),b,c).week}function F(a){return G(a)?366:365}function G(a){return a%4===0&&a%100!==0||a%400===0}function H(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[Da]<0||a._a[Da]>11?Da:a._a[Ea]<1||a._a[Ea]>D(a._a[Ca],a._a[Da])?Ea:a._a[Fa]<0||a._a[Fa]>24||24===a._a[Fa]&&(0!==a._a[Ga]||0!==a._a[Ha]||0!==a._a[Ia])?Fa:a._a[Ga]<0||a._a[Ga]>59?Ga:a._a[Ha]<0||a._a[Ha]>59?Ha:a._a[Ia]<0||a._a[Ia]>999?Ia:-1,a._pf._overflowDayOfYear&&(Ca>b||b>Ea)&&(b=Ea),a._pf.overflow=b)}function I(b){return null==b._isValid&&(b._isValid=!isNaN(b._d.getTime())&&b._pf.overflow<0&&!b._pf.empty&&!b._pf.invalidMonth&&!b._pf.nullInput&&!b._pf.invalidFormat&&!b._pf.userInvalidated,b._strict&&(b._isValid=b._isValid&&0===b._pf.charsLeftOver&&0===b._pf.unusedTokens.length&&b._pf.bigHour===a)),b._isValid}function J(a){return a?a.toLowerCase().replace("_","-"):a}function K(a){for(var b,c,d,e,f=0;f<a.length;){for(e=J(a[f]).split("-"),b=e.length,c=J(a[f+1]),c=c?c.split("-"):null;b>0;){if(d=L(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&y(e,c,!0)>=b-1)break;b--}f++}return null}function L(a){var b=null;if(!Ja[a]&&La)try{b=va.locale(),require("./locale/"+a),va.locale(b)}catch(c){}return Ja[a]}function M(a,b){var c,d;return b._isUTC?(c=b.clone(),d=(va.isMoment(a)||x(a)?+a:+va(a))-+c,c._d.setTime(+c._d+d),va.updateOffset(c,!1),c):va(a).local()}function N(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function O(a){var b,c,d=a.match(Pa);for(b=0,c=d.length;c>b;b++)rb[d[b]]?d[b]=rb[d[b]]:d[b]=N(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function P(a,b){return a.isValid()?(b=Q(b,a.localeData()),nb[b]||(nb[b]=O(b)),nb[b](a)):a.localeData().invalidDate()}function Q(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Qa.lastIndex=0;d>=0&&Qa.test(a);)a=a.replace(Qa,c),Qa.lastIndex=0,d-=1;return a}function R(a,b){var c,d=b._strict;switch(a){case"Q":return _a;case"DDDD":return bb;case"YYYY":case"GGGG":case"gggg":return d?cb:Ta;case"Y":case"G":case"g":return eb;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?db:Ua;case"S":if(d)return _a;case"SS":if(d)return ab;case"SSS":if(d)return bb;case"DDD":return Sa;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Wa;case"a":case"A":return b._locale._meridiemParse;case"x":return Za;case"X":return $a;case"Z":case"ZZ":return Xa;case"T":return Ya;case"SSSS":return Va;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?ab:Ra;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Ra;case"Do":return d?b._locale._ordinalParse:b._locale._ordinalParseLenient;default:return c=new RegExp($(Z(a.replace("\\","")),"i"))}}function S(a){a=a||"";var b=a.match(Xa)||[],c=b[b.length-1]||[],d=(c+"").match(jb)||["-",0,0],e=+(60*d[1])+C(d[2]);return"+"===d[0]?e:-e}function T(a,b,c){var d,e=c._a;switch(a){case"Q":null!=b&&(e[Da]=3*(C(b)-1));break;case"M":case"MM":null!=b&&(e[Da]=C(b)-1);break;case"MMM":case"MMMM":d=c._locale.monthsParse(b,a,c._strict),null!=d?e[Da]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[Ea]=C(b));break;case"Do":null!=b&&(e[Ea]=C(parseInt(b.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=C(b));break;case"YY":e[Ca]=va.parseTwoDigitYear(b);break;case"YYYY":case"YYYYY":case"YYYYYY":e[Ca]=C(b);break;case"a":case"A":c._meridiem=b;break;case"h":case"hh":c._pf.bigHour=!0;case"H":case"HH":e[Fa]=C(b);break;case"m":case"mm":e[Ga]=C(b);break;case"s":case"ss":e[Ha]=C(b);break;case"S":case"SS":case"SSS":case"SSSS":e[Ia]=C(1e3*("0."+b));break;case"x":c._d=new Date(C(b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=S(b);break;case"dd":case"ddd":case"dddd":d=c._locale.weekdaysParse(b),null!=d?(c._w=c._w||{},c._w.d=d):c._pf.invalidWeekday=b;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":a=a.substr(0,1);case"gggg":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=C(b));break;case"gg":case"GG":c._w=c._w||{},c._w[a]=va.parseTwoDigitYear(b)}}function U(a){var c,d,e,f,g,h,i;c=a._w,null!=c.GG||null!=c.W||null!=c.E?(g=1,h=4,d=b(c.GG,a._a[Ca],ja(va(),1,4).year),e=b(c.W,1),f=b(c.E,1)):(g=a._locale._week.dow,h=a._locale._week.doy,d=b(c.gg,a._a[Ca],ja(va(),g,h).year),e=b(c.w,1),null!=c.d?(f=c.d,g>f&&++e):f=null!=c.e?c.e+g:g),i=ka(d,e,f,h,g),a._a[Ca]=i.year,a._dayOfYear=i.dayOfYear}function V(a){var c,d,e,f,g=[];if(!a._d){for(e=X(a),a._w&&null==a._a[Ea]&&null==a._a[Da]&&U(a),a._dayOfYear&&(f=b(a._a[Ca],e[Ca]),a._dayOfYear>F(f)&&(a._pf._overflowDayOfYear=!0),d=fa(f,0,a._dayOfYear),a._a[Da]=d.getUTCMonth(),a._a[Ea]=d.getUTCDate()),c=0;3>c&&null==a._a[c];++c)a._a[c]=g[c]=e[c];for(;7>c;c++)a._a[c]=g[c]=null==a._a[c]?2===c?1:0:a._a[c];24===a._a[Fa]&&0===a._a[Ga]&&0===a._a[Ha]&&0===a._a[Ia]&&(a._nextDay=!0,a._a[Fa]=0),a._d=(a._useUTC?fa:ea).apply(null,g),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[Fa]=24)}}function W(a){var b;a._d||(b=A(a._i),a._a=[b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],V(a))}function X(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function Y(b){if(b._f===va.ISO_8601)return void aa(b);b._a=[],b._pf.empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,j=0;for(e=Q(b._f,b._locale).match(Pa)||[],c=0;c<e.length;c++)f=e[c],d=(h.match(R(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length>0&&b._pf.unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),rb[f]?(d?b._pf.empty=!1:b._pf.unusedTokens.push(f),T(f,d,b)):b._strict&&!d&&b._pf.unusedTokens.push(f);b._pf.charsLeftOver=i-j,h.length>0&&b._pf.unusedInput.push(h),b._pf.bigHour===!0&&b._a[Fa]<=12&&(b._pf.bigHour=a),b._a[Fa]=k(b._locale,b._a[Fa],b._meridiem),V(b),H(b)}function Z(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function $(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function _(a){var b,c,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,void(a._d=new Date(NaN));for(f=0;f<a._f.length;f++)g=0,b=p({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._pf=d(),b._f=a._f[f],Y(b),I(b)&&(g+=b._pf.charsLeftOver,g+=10*b._pf.unusedTokens.length,b._pf.score=g,(null==e||e>g)&&(e=g,c=b));o(a,c||b)}function aa(a){var b,c,d=a._i,e=fb.exec(d);if(e){for(a._pf.iso=!0,b=0,c=hb.length;c>b;b++)if(hb[b][1].exec(d)){a._f=hb[b][0]+(e[6]||" ");break}for(b=0,c=ib.length;c>b;b++)if(ib[b][1].exec(d)){a._f+=ib[b][0];break}d.match(Xa)&&(a._f+="Z"),Y(a)}else a._isValid=!1}function ba(a){aa(a),a._isValid===!1&&(delete a._isValid,va.createFromInputFallback(a))}function ca(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function da(b){var c,d=b._i;d===a?b._d=new Date:x(d)?b._d=new Date(+d):null!==(c=Ma.exec(d))?b._d=new Date(+c[1]):"string"==typeof d?ba(b):w(d)?(b._a=ca(d.slice(0),function(a){return parseInt(a,10)}),V(b)):"object"==typeof d?W(b):"number"==typeof d?b._d=new Date(d):va.createFromInputFallback(b)}function ea(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function fa(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function ga(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function ha(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function ia(a,b,c){var d=va.duration(a).abs(),e=Aa(d.as("s")),f=Aa(d.as("m")),g=Aa(d.as("h")),h=Aa(d.as("d")),i=Aa(d.as("M")),j=Aa(d.as("y")),k=e<ob.s&&["s",e]||1===f&&["m"]||f<ob.m&&["mm",f]||1===g&&["h"]||g<ob.h&&["hh",g]||1===h&&["d"]||h<ob.d&&["dd",h]||1===i&&["M"]||i<ob.M&&["MM",i]||1===j&&["y"]||["yy",j];return k[2]=b,k[3]=+a>0,k[4]=c,ha.apply({},k)}function ja(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=va(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ka(a,b,c,d,e){var f,g,h=fa(a,0,1).getUTCDay();return h=0===h?7:h,c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:F(a-1)+g}}function la(b){var c,d=b._i,e=b._f;return b._locale=b._locale||va.localeData(b._l),null===d||e===a&&""===d?va.invalid({nullInput:!0}):("string"==typeof d&&(b._i=d=b._locale.preparse(d)),va.isMoment(d)?new m(d,!0):(e?w(e)?_(b):Y(b):da(b),c=new m(b),c._nextDay&&(c.add(1,"d"),c._nextDay=a),c))}function ma(a,b){var c,d;if(1===b.length&&w(b[0])&&(b=b[0]),!b.length)return va();for(c=b[0],d=1;d<b.length;++d)b[d][a](c)&&(c=b[d]);return c}function na(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),D(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function oa(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function pa(a,b,c){return"Month"===b?na(a,c):a._d["set"+(a._isUTC?"UTC":"")+b](c)}function qa(a,b){return function(c){return null!=c?(pa(this,a,c),va.updateOffset(this,b),this):oa(this,a)}}function ra(a){return 400*a/146097}function sa(a){return 146097*a/400}function ta(a){va.duration.fn[a]=function(){return this._data[a]}}function ua(a){"undefined"==typeof ender&&(wa=za.moment,a?za.moment=f("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.",va):za.moment=va)}for(var va,wa,xa,ya="2.9.0",za="undefined"==typeof global||"undefined"!=typeof window&&window!==global.window?this:global,Aa=Math.round,Ba=Object.prototype.hasOwnProperty,Ca=0,Da=1,Ea=2,Fa=3,Ga=4,Ha=5,Ia=6,Ja={},Ka=[],La="undefined"!=typeof module&&module&&module.exports,Ma=/^\/?Date\((\-?\d+)/i,Na=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Oa=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,Pa=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g,Qa=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ra=/\d\d?/,Sa=/\d{1,3}/,Ta=/\d{1,4}/,Ua=/[+\-]?\d{1,6}/,Va=/\d+/,Wa=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Xa=/Z|[\+\-]\d\d:?\d\d/gi,Ya=/T/i,Za=/[\+\-]?\d+/,$a=/[\+\-]?\d+(\.\d{1,3})?/,_a=/\d/,ab=/\d\d/,bb=/\d{3}/,cb=/\d{4}/,db=/[+-]?\d{6}/,eb=/[+-]?\d+/,fb=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,gb="YYYY-MM-DDTHH:mm:ssZ",hb=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],ib=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],jb=/([\+\-]|\d\d)/gi,kb=("Date|Hours|Minutes|Seconds|Milliseconds".split("|"),{Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6}),lb={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",Q:"quarter",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},mb={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},nb={},ob={s:45,m:45,h:22,d:26,M:11},pb="DDD w W M D d".split(" "),qb="M D H h m s w W".split(" "),rb={M:function(){return this.month()+1},MMM:function(a){return this.localeData().monthsShort(this,a)},MMMM:function(a){return this.localeData().months(this,a)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.localeData().weekdaysMin(this,a)},ddd:function(a){return this.localeData().weekdaysShort(this,a)},dddd:function(a){return this.localeData().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return r(this.year()%100,2)},YYYY:function(){return r(this.year(),4)},YYYYY:function(){return r(this.year(),5)},YYYYYY:function(){var a=this.year(),b=a>=0?"+":"-";return b+r(Math.abs(a),6)},gg:function(){return r(this.weekYear()%100,2)},gggg:function(){return r(this.weekYear(),4)},ggggg:function(){return r(this.weekYear(),5)},GG:function(){return r(this.isoWeekYear()%100,2)},GGGG:function(){return r(this.isoWeekYear(),4)},GGGGG:function(){return r(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return C(this.milliseconds()/100)},SS:function(){return r(C(this.milliseconds()/10),2)},SSS:function(){return r(this.milliseconds(),3)},SSSS:function(){return r(this.milliseconds(),3)},Z:function(){var a=this.utcOffset(),b="+";return 0>a&&(a=-a,b="-"),b+r(C(a/60),2)+":"+r(C(a)%60,2)},ZZ:function(){var a=this.utcOffset(),b="+";return 0>a&&(a=-a,b="-"),b+r(C(a/60),2)+r(C(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},sb={},tb=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"],ub=!1;pb.length;)xa=pb.pop(),rb[xa+"o"]=i(rb[xa],xa);for(;qb.length;)xa=qb.pop(),rb[xa+xa]=h(rb[xa],2);rb.DDDD=h(rb.DDD,3),o(l.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a,b,c){var d,e,f;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;12>d;d++){if(e=va.utc([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=va([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b,c){var d=this._calendar[a];return"function"==typeof d?d.apply(b,[c]):d},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",_ordinalParse:/\d{1,2}/,preparse:function(a){return a},
+postformat:function(a){return a},week:function(a){return ja(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},firstDayOfWeek:function(){return this._week.dow},firstDayOfYear:function(){return this._week.doy},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),va=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=b,g._f=c,g._l=e,g._strict=f,g._isUTC=!1,g._pf=d(),la(g)},va.suppressDeprecationWarnings=!1,va.createFromInputFallback=f("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),va.min=function(){var a=[].slice.call(arguments,0);return ma("isBefore",a)},va.max=function(){var a=[].slice.call(arguments,0);return ma("isAfter",a)},va.utc=function(b,c,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=b,g._f=c,g._strict=f,g._pf=d(),la(g).utc()},va.unix=function(a){return va(1e3*a)},va.duration=function(a,b){var d,e,f,g,h=a,i=null;return va.isDuration(a)?h={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(h={},b?h[b]=a:h.milliseconds=a):(i=Na.exec(a))?(d="-"===i[1]?-1:1,h={y:0,d:C(i[Ea])*d,h:C(i[Fa])*d,m:C(i[Ga])*d,s:C(i[Ha])*d,ms:C(i[Ia])*d}):(i=Oa.exec(a))?(d="-"===i[1]?-1:1,f=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*d},h={y:f(i[2]),M:f(i[3]),d:f(i[4]),h:f(i[5]),m:f(i[6]),s:f(i[7]),w:f(i[8])}):null==h?h={}:"object"==typeof h&&("from"in h||"to"in h)&&(g=t(va(h.from),va(h.to)),h={},h.ms=g.milliseconds,h.M=g.months),e=new n(h),va.isDuration(a)&&c(a,"_locale")&&(e._locale=a._locale),e},va.version=ya,va.defaultFormat=gb,va.ISO_8601=function(){},va.momentProperties=Ka,va.updateOffset=function(){},va.relativeTimeThreshold=function(b,c){return ob[b]===a?!1:c===a?ob[b]:(ob[b]=c,!0)},va.lang=f("moment.lang is deprecated. Use moment.locale instead.",function(a,b){return va.locale(a,b)}),va.locale=function(a,b){var c;return a&&(c="undefined"!=typeof b?va.defineLocale(a,b):va.localeData(a),c&&(va.duration._locale=va._locale=c)),va._locale._abbr},va.defineLocale=function(a,b){return null!==b?(b.abbr=a,Ja[a]||(Ja[a]=new l),Ja[a].set(b),va.locale(a),Ja[a]):(delete Ja[a],null)},va.langData=f("moment.langData is deprecated. Use moment.localeData instead.",function(a){return va.localeData(a)}),va.localeData=function(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return va._locale;if(!w(a)){if(b=L(a))return b;a=[a]}return K(a)},va.isMoment=function(a){return a instanceof m||null!=a&&c(a,"_isAMomentObject")},va.isDuration=function(a){return a instanceof n};for(xa=tb.length-1;xa>=0;--xa)B(tb[xa]);va.normalizeUnits=function(a){return z(a)},va.invalid=function(a){var b=va.utc(NaN);return null!=a?o(b._pf,a):b._pf.userInvalidated=!0,b},va.parseZone=function(){return va.apply(null,arguments).parseZone()},va.parseTwoDigitYear=function(a){return C(a)+(C(a)>68?1900:2e3)},va.isDate=x,o(va.fn=m.prototype,{clone:function(){return va(this)},valueOf:function(){return+this._d-6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=va(this).utc();return 0<a.year()&&a.year()<=9999?"function"==typeof Date.prototype.toISOString?this.toDate().toISOString():P(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):P(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var a=this;return[a.year(),a.month(),a.date(),a.hours(),a.minutes(),a.seconds(),a.milliseconds()]},isValid:function(){return I(this)},isDSTShifted:function(){return this._a?this.isValid()&&y(this._a,(this._isUTC?va.utc(this._a):va(this._a)).toArray())>0:!1},parsingFlags:function(){return o({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(a){return this.utcOffset(0,a)},local:function(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(this._dateUtcOffset(),"m")),this},format:function(a){var b=P(this,a||va.defaultFormat);return this.localeData().postformat(b)},add:u(1,"add"),subtract:u(-1,"subtract"),diff:function(a,b,c){var d,e,f=M(a,this),g=6e4*(f.utcOffset()-this.utcOffset());return b=z(b),"year"===b||"month"===b||"quarter"===b?(e=j(this,f),"quarter"===b?e/=3:"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:q(e)},from:function(a,b){return va.duration({to:this,from:a}).locale(this.locale()).humanize(!b)},fromNow:function(a){return this.from(va(),a)},calendar:function(a){var b=a||va(),c=M(b,this).startOf("day"),d=this.diff(c,"days",!0),e=-6>d?"sameElse":-1>d?"lastWeek":0>d?"lastDay":1>d?"sameDay":2>d?"nextDay":7>d?"nextWeek":"sameElse";return this.format(this.localeData().calendar(e,this,va(b)))},isLeapYear:function(){return G(this.year())},isDST:function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=ga(a,this.localeData()),this.add(a-b,"d")):b},month:qa("Month",!0),startOf:function(a){switch(a=z(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a?this.weekday(0):"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(b){return b=z(b),b===a||"millisecond"===b?this:this.startOf(b).add(1,"isoWeek"===b?"week":b).subtract(1,"ms")},isAfter:function(a,b){var c;return b=z("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=va.isMoment(a)?a:va(a),+this>+a):(c=va.isMoment(a)?+a:+va(a),c<+this.clone().startOf(b))},isBefore:function(a,b){var c;return b=z("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=va.isMoment(a)?a:va(a),+a>+this):(c=va.isMoment(a)?+a:+va(a),+this.clone().endOf(b)<c)},isBetween:function(a,b,c){return this.isAfter(a,c)&&this.isBefore(b,c)},isSame:function(a,b){var c;return b=z(b||"millisecond"),"millisecond"===b?(a=va.isMoment(a)?a:va(a),+this===+a):(c=+va(a),+this.clone().startOf(b)<=c&&c<=+this.clone().endOf(b))},min:f("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(a){return a=va.apply(null,arguments),this>a?this:a}),max:f("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(a){return a=va.apply(null,arguments),a>this?this:a}),zone:f("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",function(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}),utcOffset:function(a,b){var c,d=this._offset||0;return null!=a?("string"==typeof a&&(a=S(a)),Math.abs(a)<16&&(a=60*a),!this._isUTC&&b&&(c=this._dateUtcOffset()),this._offset=a,this._isUTC=!0,null!=c&&this.add(c,"m"),d!==a&&(!b||this._changeInProgress?v(this,va.duration(a-d,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,va.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?d:this._dateUtcOffset()},isLocal:function(){return!this._isUTC},isUtcOffset:function(){return this._isUTC},isUtc:function(){return this._isUTC&&0===this._offset},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(S(this._i)),this},hasAlignedHourOffset:function(a){return a=a?va(a).utcOffset():0,(this.utcOffset()-a)%60===0},daysInMonth:function(){return D(this.year(),this.month())},dayOfYear:function(a){var b=Aa((va(this).startOf("day")-va(this).startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")},quarter:function(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)},weekYear:function(a){var b=ja(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==a?b:this.add(a-b,"y")},isoWeekYear:function(a){var b=ja(this,1,4).year;return null==a?b:this.add(a-b,"y")},week:function(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")},isoWeek:function(a){var b=ja(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")},weekday:function(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},isoWeeksInYear:function(){return E(this.year(),1,4)},weeksInYear:function(){var a=this.localeData()._week;return E(this.year(),a.dow,a.doy)},get:function(a){return a=z(a),this[a]()},set:function(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else a=z(a),"function"==typeof this[a]&&this[a](b);return this},locale:function(b){var c;return b===a?this._locale._abbr:(c=va.localeData(b),null!=c&&(this._locale=c),this)},lang:f("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(b){return b===a?this.localeData():this.locale(b)}),localeData:function(){return this._locale},_dateUtcOffset:function(){return 15*-Math.round(this._d.getTimezoneOffset()/15)}}),va.fn.millisecond=va.fn.milliseconds=qa("Milliseconds",!1),va.fn.second=va.fn.seconds=qa("Seconds",!1),va.fn.minute=va.fn.minutes=qa("Minutes",!1),va.fn.hour=va.fn.hours=qa("Hours",!0),va.fn.date=qa("Date",!0),va.fn.dates=f("dates accessor is deprecated. Use date instead.",qa("Date",!0)),va.fn.year=qa("FullYear",!0),va.fn.years=f("years accessor is deprecated. Use year instead.",qa("FullYear",!0)),va.fn.days=va.fn.day,va.fn.months=va.fn.month,va.fn.weeks=va.fn.week,va.fn.isoWeeks=va.fn.isoWeek,va.fn.quarters=va.fn.quarter,va.fn.toJSON=va.fn.toISOString,va.fn.isUTC=va.fn.isUtc,o(va.duration.fn=n.prototype,{_bubble:function(){var a,b,c,d=this._milliseconds,e=this._days,f=this._months,g=this._data,h=0;g.milliseconds=d%1e3,a=q(d/1e3),g.seconds=a%60,b=q(a/60),g.minutes=b%60,c=q(b/60),g.hours=c%24,e+=q(c/24),h=q(ra(e)),e-=q(sa(h)),f+=q(e/30),e%=30,h+=q(f/12),f%=12,g.days=e,g.months=f,g.years=h},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return q(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*C(this._months/12)},humanize:function(a){var b=ia(this,!a,this.localeData());return a&&(b=this.localeData().pastFuture(+this,b)),this.localeData().postformat(b)},add:function(a,b){var c=va.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=va.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=z(a),this[a.toLowerCase()+"s"]()},as:function(a){var b,c;if(a=z(a),"month"===a||"year"===a)return b=this._days+this._milliseconds/864e5,c=this._months+12*ra(b),"month"===a?c:c/12;switch(b=this._days+Math.round(sa(this._months/12)),a){case"week":return b/7+this._milliseconds/6048e5;case"day":return b+this._milliseconds/864e5;case"hour":return 24*b+this._milliseconds/36e5;case"minute":return 24*b*60+this._milliseconds/6e4;case"second":return 24*b*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(24*b*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+a)}},lang:va.fn.lang,locale:va.fn.locale,toIsoString:f("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"},localeData:function(){return this._locale},toJSON:function(){return this.toISOString()}}),va.duration.fn.toString=va.duration.fn.toISOString;for(xa in kb)c(kb,xa)&&ta(xa.toLowerCase());va.duration.fn.asMilliseconds=function(){return this.as("ms")},va.duration.fn.asSeconds=function(){return this.as("s")},va.duration.fn.asMinutes=function(){return this.as("m")},va.duration.fn.asHours=function(){return this.as("h")},va.duration.fn.asDays=function(){return this.as("d")},va.duration.fn.asWeeks=function(){return this.as("weeks")},va.duration.fn.asMonths=function(){return this.as("M")},va.duration.fn.asYears=function(){return this.as("y")},va.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===C(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),La?module.exports=va:"function"==typeof define&&define.amd?(define(function(a,b,c){return c.config&&c.config()&&c.config().noGlobal===!0&&(za.moment=wa),va}),ua(!0)):ua()}.call(this),function(a,b){if("function"==typeof define&&define.amd)define(["moment","jquery","exports"],function(c,d,e){a.daterangepicker=b(a,e,c,d)});else if("undefined"!=typeof exports){var c,d=require("moment");try{c=require("jquery")}catch(e){if(c=window.jQuery,!c)throw new Error("jQuery dependency not found")}b(a,exports,d,c)}else a.daterangepicker=b(a,{},a.moment,a.jQuery||a.Zepto||a.ender||a.$)}(this,function(a,b,c,d){var e=function(a,b,c){this.parentEl="body",this.element=d(a),this.isShowing=!1;var e='<div class="daterangepicker dropdown-menu"><div class="calendar first left"></div><div class="calendar second right"></div><div class="ranges"><div class="range_inputs"><div class="daterangepicker_start_input"><label for="daterangepicker_start"></label><input class="input-mini" type="text" name="daterangepicker_start" value="" /></div><div class="daterangepicker_end_input"><label for="daterangepicker_end"></label><input class="input-mini" type="text" name="daterangepicker_end" value="" /></div><button class="applyBtn" disabled="disabled"></button>&nbsp;<button class="cancelBtn"></button></div></div></div>';"object"==typeof b&&null!==b||(b={}),this.parentEl=d("object"==typeof b&&b.parentEl&&d(b.parentEl).length?b.parentEl:this.parentEl),this.container=d(e).appendTo(this.parentEl),this.setOptions(b,c);var f=this.container;d.each(this.buttonClasses,function(a,b){f.find("button").addClass(b)}),this.container.find(".daterangepicker_start_input label").html(this.locale.fromLabel),this.container.find(".daterangepicker_end_input label").html(this.locale.toLabel),this.applyClass.length&&this.container.find(".applyBtn").addClass(this.applyClass),this.cancelClass.length&&this.container.find(".cancelBtn").addClass(this.cancelClass),this.container.find(".applyBtn").html(this.locale.applyLabel),this.container.find(".cancelBtn").html(this.locale.cancelLabel),this.container.find(".calendar").on("click.daterangepicker",".prev",d.proxy(this.clickPrev,this)).on("click.daterangepicker",".next",d.proxy(this.clickNext,this)).on("click.daterangepicker","td.available",d.proxy(this.clickDate,this)).on("mouseenter.daterangepicker","td.available",d.proxy(this.hoverDate,this)).on("mouseleave.daterangepicker","td.available",d.proxy(this.updateFormInputs,this)).on("change.daterangepicker","select.yearselect",d.proxy(this.updateMonthYear,this)).on("change.daterangepicker","select.monthselect",d.proxy(this.updateMonthYear,this)).on("change.daterangepicker","select.hourselect,select.minuteselect,select.secondselect,select.ampmselect",d.proxy(this.updateTime,this)),this.container.find(".ranges").on("click.daterangepicker","button.applyBtn",d.proxy(this.clickApply,this)).on("click.daterangepicker","button.cancelBtn",d.proxy(this.clickCancel,this)).on("click.daterangepicker",".daterangepicker_start_input,.daterangepicker_end_input",d.proxy(this.showCalendars,this)).on("change.daterangepicker",".daterangepicker_start_input,.daterangepicker_end_input",d.proxy(this.inputsChanged,this)).on("keydown.daterangepicker",".daterangepicker_start_input,.daterangepicker_end_input",d.proxy(this.inputsKeydown,this)).on("click.daterangepicker","li",d.proxy(this.clickRange,this)).on("mouseenter.daterangepicker","li",d.proxy(this.enterRange,this)).on("mouseleave.daterangepicker","li",d.proxy(this.updateFormInputs,this)),this.element.is("input")?this.element.on({"click.daterangepicker":d.proxy(this.show,this),"focus.daterangepicker":d.proxy(this.show,this),"keyup.daterangepicker":d.proxy(this.updateFromControl,this)}):this.element.on("click.daterangepicker",d.proxy(this.toggle,this))};e.prototype={constructor:e,setOptions:function(a,b){if(this.startDate=c().startOf("day"),this.endDate=c().endOf("day"),this.timeZone=c().zone(),this.minDate=!1,this.maxDate=!1,this.dateLimit=!1,this.showDropdowns=!1,this.showWeekNumbers=!1,this.timePicker=!1,this.timePickerSeconds=!1,this.timePickerIncrement=30,this.timePicker12Hour=!0,this.singleDatePicker=!1,this.ranges={},this.opens="right",this.element.hasClass("pull-right")&&(this.opens="left"),this.buttonClasses=["btn","btn-small btn-sm"],this.applyClass="btn-success",this.cancelClass="btn-default",this.format="MM/DD/YYYY",this.separator=" - ",this.locale={applyLabel:"Apply",cancelLabel:"Cancel",fromLabel:"From",toLabel:"To",weekLabel:"W",customRangeLabel:"Custom Range",daysOfWeek:c.weekdaysMin(),monthNames:c.monthsShort(),firstDay:c.localeData()._week.dow},this.cb=function(){},"string"==typeof a.format&&(this.format=a.format),"string"==typeof a.separator&&(this.separator=a.separator),"string"==typeof a.startDate&&(this.startDate=c(a.startDate,this.format)),"string"==typeof a.endDate&&(this.endDate=c(a.endDate,this.format)),"string"==typeof a.minDate&&(this.minDate=c(a.minDate,this.format)),"string"==typeof a.maxDate&&(this.maxDate=c(a.maxDate,this.format)),"object"==typeof a.startDate&&(this.startDate=c(a.startDate)),"object"==typeof a.endDate&&(this.endDate=c(a.endDate)),"object"==typeof a.minDate&&(this.minDate=c(a.minDate)),"object"==typeof a.maxDate&&(this.maxDate=c(a.maxDate)),"string"==typeof a.applyClass&&(this.applyClass=a.applyClass),"string"==typeof a.cancelClass&&(this.cancelClass=a.cancelClass),"object"==typeof a.dateLimit&&(this.dateLimit=a.dateLimit),"object"==typeof a.locale&&("object"==typeof a.locale.daysOfWeek&&(this.locale.daysOfWeek=a.locale.daysOfWeek.slice()),"object"==typeof a.locale.monthNames&&(this.locale.monthNames=a.locale.monthNames.slice()),"number"==typeof a.locale.firstDay&&(this.locale.firstDay=a.locale.firstDay),"string"==typeof a.locale.applyLabel&&(this.locale.applyLabel=a.locale.applyLabel),"string"==typeof a.locale.cancelLabel&&(this.locale.cancelLabel=a.locale.cancelLabel),"string"==typeof a.locale.fromLabel&&(this.locale.fromLabel=a.locale.fromLabel),"string"==typeof a.locale.toLabel&&(this.locale.toLabel=a.locale.toLabel),"string"==typeof a.locale.weekLabel&&(this.locale.weekLabel=a.locale.weekLabel),"string"==typeof a.locale.customRangeLabel&&(this.locale.customRangeLabel=a.locale.customRangeLabel)),"string"==typeof a.opens&&(this.opens=a.opens),"boolean"==typeof a.showWeekNumbers&&(this.showWeekNumbers=a.showWeekNumbers),"string"==typeof a.buttonClasses&&(this.buttonClasses=[a.buttonClasses]),"object"==typeof a.buttonClasses&&(this.buttonClasses=a.buttonClasses),"boolean"==typeof a.showDropdowns&&(this.showDropdowns=a.showDropdowns),"boolean"==typeof a.singleDatePicker&&(this.singleDatePicker=a.singleDatePicker,this.singleDatePicker&&(this.endDate=this.startDate.clone())),"boolean"==typeof a.timePicker&&(this.timePicker=a.timePicker),"boolean"==typeof a.timePickerSeconds&&(this.timePickerSeconds=a.timePickerSeconds),"number"==typeof a.timePickerIncrement&&(this.timePickerIncrement=a.timePickerIncrement),"boolean"==typeof a.timePicker12Hour&&(this.timePicker12Hour=a.timePicker12Hour),0!=this.locale.firstDay)for(var e=this.locale.firstDay;e>0;)this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()),e--;var f,g,h;if("undefined"==typeof a.startDate&&"undefined"==typeof a.endDate&&d(this.element).is("input[type=text]")){var i=d(this.element).val(),j=i.split(this.separator);f=g=null,2==j.length?(f=c(j[0],this.format),g=c(j[1],this.format)):this.singleDatePicker&&""!==i&&(f=c(i,this.format),g=c(i,this.format)),null!==f&&null!==g&&(this.startDate=f,this.endDate=g)}if("string"==typeof a.timeZone||"number"==typeof a.timeZone?(this.timeZone=a.timeZone,this.startDate.zone(this.timeZone),this.endDate.zone(this.timeZone)):this.timeZone=c(this.startDate).zone(),"object"==typeof a.ranges){for(h in a.ranges)f="string"==typeof a.ranges[h][0]?c(a.ranges[h][0],this.format):c(a.ranges[h][0]),g="string"==typeof a.ranges[h][1]?c(a.ranges[h][1],this.format):c(a.ranges[h][1]),this.minDate&&f.isBefore(this.minDate)&&(f=c(this.minDate)),this.maxDate&&g.isAfter(this.maxDate)&&(g=c(this.maxDate)),this.minDate&&g.isBefore(this.minDate)||this.maxDate&&f.isAfter(this.maxDate)||(this.ranges[h]=[f,g]);var k="<ul>";for(h in this.ranges)k+="<li>"+h+"</li>";k+="<li>"+this.locale.customRangeLabel+"</li>",k+="</ul>",this.container.find(".ranges ul").remove(),this.container.find(".ranges").prepend(k)}if("function"==typeof b&&(this.cb=b),this.timePicker||(this.startDate=this.startDate.startOf("day"),this.endDate=this.endDate.endOf("day")),this.singleDatePicker?(this.opens="right",this.container.addClass("single"),this.container.find(".calendar.right").show(),this.container.find(".calendar.left").hide(),this.timePicker?this.container.find(".ranges .daterangepicker_start_input, .ranges .daterangepicker_end_input").hide():this.container.find(".ranges").hide(),this.container.find(".calendar.right").hasClass("single")||this.container.find(".calendar.right").addClass("single")):(this.container.removeClass("single"),this.container.find(".calendar.right").removeClass("single"),this.container.find(".ranges").show()),this.oldStartDate=this.startDate.clone(),this.oldEndDate=this.endDate.clone(),this.oldChosenLabel=this.chosenLabel,this.leftCalendar={month:c([this.startDate.year(),this.startDate.month(),1,this.startDate.hour(),this.startDate.minute(),this.startDate.second()]),calendar:[]},this.rightCalendar={month:c([this.endDate.year(),this.endDate.month(),1,this.endDate.hour(),this.endDate.minute(),this.endDate.second()]),calendar:[]},"right"==this.opens||"center"==this.opens){var l=this.container.find(".calendar.first"),m=this.container.find(".calendar.second");m.hasClass("single")&&(m.removeClass("single"),l.addClass("single")),l.removeClass("left").addClass("right"),m.removeClass("right").addClass("left"),this.singleDatePicker&&(l.show(),m.hide())}"undefined"!=typeof a.ranges||this.singleDatePicker||this.container.addClass("show-calendar"),this.container.addClass("opens"+this.opens),this.updateView(),this.updateCalendars()},setStartDate:function(a){"string"==typeof a&&(this.startDate=c(a,this.format).zone(this.timeZone)),"object"==typeof a&&(this.startDate=c(a)),this.timePicker||(this.startDate=this.startDate.startOf("day")),this.oldStartDate=this.startDate.clone(),this.updateView(),this.updateCalendars(),this.updateInputText()},setEndDate:function(a){"string"==typeof a&&(this.endDate=c(a,this.format).zone(this.timeZone)),"object"==typeof a&&(this.endDate=c(a)),this.timePicker||(this.endDate=this.endDate.endOf("day")),this.oldEndDate=this.endDate.clone(),this.updateView(),this.updateCalendars(),this.updateInputText()},updateView:function(){this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()),this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()),this.updateFormInputs()},updateFormInputs:function(){this.container.find("input[name=daterangepicker_start]").val(this.startDate.format(this.format)),this.container.find("input[name=daterangepicker_end]").val(this.endDate.format(this.format)),this.startDate.isSame(this.endDate)||this.startDate.isBefore(this.endDate)?this.container.find("button.applyBtn").removeAttr("disabled"):this.container.find("button.applyBtn").attr("disabled","disabled")},updateFromControl:function(){if(this.element.is("input")&&this.element.val().length){var a=this.element.val().split(this.separator),b=null,d=null;2===a.length&&(b=c(a[0],this.format).zone(this.timeZone),d=c(a[1],this.format).zone(this.timeZone)),(this.singleDatePicker||null===b||null===d)&&(b=c(this.element.val(),this.format).zone(this.timeZone),d=b),d.isBefore(b)||(this.oldStartDate=this.startDate.clone(),this.oldEndDate=this.endDate.clone(),this.startDate=b,this.endDate=d,this.startDate.isSame(this.oldStartDate)&&this.endDate.isSame(this.oldEndDate)||this.notify(),this.updateCalendars())}},notify:function(){this.updateView(),this.cb(this.startDate,this.endDate,this.chosenLabel)},move:function(){var a={top:0,left:0},b=d(window).width();this.parentEl.is("body")||(a={top:this.parentEl.offset().top-this.parentEl.scrollTop(),left:this.parentEl.offset().left-this.parentEl.scrollLeft()},b=this.parentEl[0].clientWidth+this.parentEl.offset().left),"left"==this.opens?(this.container.css({top:this.element.offset().top+this.element.outerHeight()-a.top,right:b-this.element.offset().left-this.element.outerWidth(),left:"auto"}),this.container.offset().left<0&&this.container.css({right:"auto",left:9})):"center"==this.opens?(this.container.css({top:this.element.offset().top+this.element.outerHeight()-a.top,left:this.element.offset().left-a.left+this.element.outerWidth()/2-this.container.outerWidth()/2,right:"auto"}),this.container.offset().left<0&&this.container.css({right:"auto",left:9})):(this.container.css({top:this.element.offset().top+this.element.outerHeight()-a.top,left:this.element.offset().left-a.left,right:"auto"}),this.container.offset().left+this.container.outerWidth()>d(window).width()&&this.container.css({left:"auto",right:0}))},toggle:function(a){this.element.hasClass("active")?this.hide():this.show()},show:function(a){this.isShowing||(this.element.addClass("active"),this.container.show(),this.move(),this._outsideClickProxy=d.proxy(function(a){this.outsideClick(a)},this),d(document).on("mousedown.daterangepicker",this._outsideClickProxy).on("touchend.daterangepicker",this._outsideClickProxy).on("click.daterangepicker","[data-toggle=dropdown]",this._outsideClickProxy).on("focusin.daterangepicker",this._outsideClickProxy),this.isShowing=!0,this.element.trigger("show.daterangepicker",this))},outsideClick:function(a){var b=d(a.target);"focusin"==a.type||b.closest(this.element).length||b.closest(this.container).length||b.closest(".calendar-date").length||this.hide()},hide:function(a){this.isShowing&&(d(document).off(".daterangepicker"),this.element.removeClass("active"),this.container.hide(),this.startDate.isSame(this.oldStartDate)&&this.endDate.isSame(this.oldEndDate)||this.notify(),this.oldStartDate=this.startDate.clone(),this.oldEndDate=this.endDate.clone(),this.isShowing=!1,this.element.trigger("hide.daterangepicker",this))},enterRange:function(a){var b=a.target.innerHTML;if(b==this.locale.customRangeLabel)this.updateView();else{var c=this.ranges[b];this.container.find("input[name=daterangepicker_start]").val(c[0].format(this.format)),this.container.find("input[name=daterangepicker_end]").val(c[1].format(this.format))}},showCalendars:function(){this.container.addClass("show-calendar"),this.move(),this.element.trigger("showCalendar.daterangepicker",this)},hideCalendars:function(){this.container.removeClass("show-calendar"),this.element.trigger("hideCalendar.daterangepicker",this)},inputsChanged:function(a){var b=d(a.target),e=c(b.val(),this.format);if(e.isValid()){var f,g;"daterangepicker_start"===b.attr("name")?(f=e,g=this.endDate):(f=this.startDate,g=e),this.setCustomDates(f,g)}},inputsKeydown:function(a){13===a.keyCode&&(this.inputsChanged(a),this.notify())},updateInputText:function(){this.element.is("input")&&!this.singleDatePicker?this.element.val(this.startDate.format(this.format)+this.separator+this.endDate.format(this.format)):this.element.is("input")&&this.element.val(this.endDate.format(this.format))},clickRange:function(a){var b=a.target.innerHTML;if(this.chosenLabel=b,b==this.locale.customRangeLabel)this.showCalendars();else{var c=this.ranges[b];this.startDate=c[0],this.endDate=c[1],this.timePicker||(this.startDate.startOf("day"),this.endDate.endOf("day")),this.leftCalendar.month.month(this.startDate.month()).year(this.startDate.year()).hour(this.startDate.hour()).minute(this.startDate.minute()),this.rightCalendar.month.month(this.endDate.month()).year(this.endDate.year()).hour(this.endDate.hour()).minute(this.endDate.minute()),this.updateCalendars(),this.updateInputText(),this.hideCalendars(),this.hide(),this.element.trigger("apply.daterangepicker",this)}},clickPrev:function(a){var b=d(a.target).parents(".calendar");b.hasClass("left")?this.leftCalendar.month.subtract(1,"month"):this.rightCalendar.month.subtract(1,"month"),this.updateCalendars()},clickNext:function(a){var b=d(a.target).parents(".calendar");b.hasClass("left")?this.leftCalendar.month.add(1,"month"):this.rightCalendar.month.add(1,"month"),this.updateCalendars()},hoverDate:function(a){var b=d(a.target).attr("data-title"),c=b.substr(1,1),e=b.substr(3,1),f=d(a.target).parents(".calendar");f.hasClass("left")?this.container.find("input[name=daterangepicker_start]").val(this.leftCalendar.calendar[c][e].format(this.format)):this.container.find("input[name=daterangepicker_end]").val(this.rightCalendar.calendar[c][e].format(this.format))},setCustomDates:function(a,b){if(this.chosenLabel=this.locale.customRangeLabel,a.isAfter(b)){var d=this.endDate.diff(this.startDate);b=c(a).add(d,"ms")}this.startDate=a,this.endDate=b,this.updateView(),this.updateCalendars()},clickDate:function(a){var b,e,f=d(a.target).attr("data-title"),g=f.substr(1,1),h=f.substr(3,1),i=d(a.target).parents(".calendar");if(i.hasClass("left")){if(b=this.leftCalendar.calendar[g][h],e=this.endDate,"object"==typeof this.dateLimit){var j=c(b).add(this.dateLimit).startOf("day");e.isAfter(j)&&(e=j)}}else if(b=this.startDate,e=this.rightCalendar.calendar[g][h],"object"==typeof this.dateLimit){var k=c(e).subtract(this.dateLimit).startOf("day");b.isBefore(k)&&(b=k)}this.singleDatePicker&&i.hasClass("left")?e=b.clone():this.singleDatePicker&&i.hasClass("right")&&(b=e.clone()),i.find("td").removeClass("active"),d(a.target).addClass("active"),this.setCustomDates(b,e),this.timePicker||e.endOf("day"),this.singleDatePicker&&!this.timePicker&&this.clickApply()},clickApply:function(a){this.updateInputText(),this.hide(),this.element.trigger("apply.daterangepicker",this)},clickCancel:function(a){this.startDate=this.oldStartDate,this.endDate=this.oldEndDate,this.chosenLabel=this.oldChosenLabel,this.updateView(),this.updateCalendars(),this.hide(),this.element.trigger("cancel.daterangepicker",this)},updateMonthYear:function(a){var b=d(a.target).closest(".calendar").hasClass("left"),c=b?"left":"right",e=this.container.find(".calendar."+c),f=parseInt(e.find(".monthselect").val(),10),g=e.find(".yearselect").val();this[c+"Calendar"].month.month(f).year(g),this.updateCalendars()},updateTime:function(a){var b=d(a.target).closest(".calendar"),c=b.hasClass("left"),e=parseInt(b.find(".hourselect").val(),10),f=parseInt(b.find(".minuteselect").val(),10),g=0;if(this.timePickerSeconds&&(g=parseInt(b.find(".secondselect").val(),10)),
+this.timePicker12Hour){var h=b.find(".ampmselect").val();"PM"===h&&12>e&&(e+=12),"AM"===h&&12===e&&(e=0)}if(c){var i=this.startDate.clone();i.hour(e),i.minute(f),i.second(g),this.startDate=i,this.leftCalendar.month.hour(e).minute(f).second(g),this.singleDatePicker&&(this.endDate=i.clone())}else{var j=this.endDate.clone();j.hour(e),j.minute(f),j.second(g),this.endDate=j,this.singleDatePicker&&(this.startDate=j.clone()),this.rightCalendar.month.hour(e).minute(f).second(g)}this.updateView(),this.updateCalendars()},updateCalendars:function(){this.leftCalendar.calendar=this.buildCalendar(this.leftCalendar.month.month(),this.leftCalendar.month.year(),this.leftCalendar.month.hour(),this.leftCalendar.month.minute(),this.leftCalendar.month.second(),"left"),this.rightCalendar.calendar=this.buildCalendar(this.rightCalendar.month.month(),this.rightCalendar.month.year(),this.rightCalendar.month.hour(),this.rightCalendar.month.minute(),this.rightCalendar.month.second(),"right"),this.container.find(".calendar.left").empty().html(this.renderCalendar(this.leftCalendar.calendar,this.startDate,this.minDate,this.maxDate,"left")),this.container.find(".calendar.right").empty().html(this.renderCalendar(this.rightCalendar.calendar,this.endDate,this.singleDatePicker?this.minDate:this.startDate,this.maxDate,"right")),this.container.find(".ranges li").removeClass("active");var a=!0,b=0;for(var c in this.ranges)this.timePicker?this.startDate.isSame(this.ranges[c][0])&&this.endDate.isSame(this.ranges[c][1])&&(a=!1,this.chosenLabel=this.container.find(".ranges li:eq("+b+")").addClass("active").html()):this.startDate.format("YYYY-MM-DD")==this.ranges[c][0].format("YYYY-MM-DD")&&this.endDate.format("YYYY-MM-DD")==this.ranges[c][1].format("YYYY-MM-DD")&&(a=!1,this.chosenLabel=this.container.find(".ranges li:eq("+b+")").addClass("active").html()),b++;a&&(this.chosenLabel=this.container.find(".ranges li:last").addClass("active").html(),this.showCalendars())},buildCalendar:function(a,b,d,e,f,g){var h,i=c([b,a]).daysInMonth(),j=c([b,a,1]),k=c([b,a,i]),l=c(j).subtract(1,"month").month(),m=c(j).subtract(1,"month").year(),n=c([m,l]).daysInMonth(),o=j.day(),p=[];for(p.firstDay=j,p.lastDay=k,h=0;6>h;h++)p[h]=[];var q=n-o+this.locale.firstDay+1;q>n&&(q-=7),o==this.locale.firstDay&&(q=n-6);var r,s,t=c([m,l,q,12,e,f]).zone(this.timeZone);for(h=0,r=0,s=0;42>h;h++,r++,t=c(t).add(24,"hour"))h>0&&r%7===0&&(r=0,s++),p[s][r]=t.clone().hour(d),t.hour(12),this.minDate&&p[s][r].format("YYYY-MM-DD")==this.minDate.format("YYYY-MM-DD")&&p[s][r].isBefore(this.minDate)&&"left"==g&&(p[s][r]=this.minDate.clone()),this.maxDate&&p[s][r].format("YYYY-MM-DD")==this.maxDate.format("YYYY-MM-DD")&&p[s][r].isAfter(this.maxDate)&&"right"==g&&(p[s][r]=this.maxDate.clone());return p},renderDropdowns:function(a,b,c){for(var d=a.month(),e=a.year(),f=c&&c.year()||e+5,g=b&&b.year()||e-50,h='<select class="monthselect">',i=e==g,j=e==f,k=0;12>k;k++)(!i||k>=b.month())&&(!j||k<=c.month())&&(h+="<option value='"+k+"'"+(k===d?" selected='selected'":"")+">"+this.locale.monthNames[k]+"</option>");h+="</select>";for(var l='<select class="yearselect">',m=g;f>=m;m++)l+='<option value="'+m+'"'+(m===e?' selected="selected"':"")+">"+m+"</option>";return l+="</select>",h+l},renderCalendar:function(a,b,c,e,f){var g='<div class="calendar-date">';g+='<table class="table-condensed">',g+="<thead>",g+="<tr>",this.showWeekNumbers&&(g+="<th></th>"),g+=!c||c.isBefore(a.firstDay)?'<th class="prev available"><i class="fa fa-arrow-left icon-arrow-left glyphicon glyphicon-arrow-left"></i></th>':"<th></th>";var h=this.locale.monthNames[a[1][1].month()]+a[1][1].format(" YYYY");this.showDropdowns&&(h=this.renderDropdowns(a[1][1],c,e)),g+='<th colspan="5" class="month">'+h+"</th>",g+=!e||e.isAfter(a.lastDay)?'<th class="next available"><i class="fa fa-arrow-right icon-arrow-right glyphicon glyphicon-arrow-right"></i></th>':"<th></th>",g+="</tr>",g+="<tr>",this.showWeekNumbers&&(g+='<th class="week">'+this.locale.weekLabel+"</th>"),d.each(this.locale.daysOfWeek,function(a,b){g+="<th>"+b+"</th>"}),g+="</tr>",g+="</thead>",g+="<tbody>";for(var i=0;6>i;i++){g+="<tr>",this.showWeekNumbers&&(g+='<td class="week">'+a[i][0].week()+"</td>");for(var j=0;7>j;j++){var k="available ";k+=a[i][j].month()==a[1][1].month()?"":"off",c&&a[i][j].isBefore(c,"day")||e&&a[i][j].isAfter(e,"day")?k=" off disabled ":a[i][j].format("YYYY-MM-DD")==b.format("YYYY-MM-DD")?(k+=" active ",a[i][j].format("YYYY-MM-DD")==this.startDate.format("YYYY-MM-DD")&&(k+=" start-date "),a[i][j].format("YYYY-MM-DD")==this.endDate.format("YYYY-MM-DD")&&(k+=" end-date ")):a[i][j]>=this.startDate&&a[i][j]<=this.endDate&&(k+=" in-range ",a[i][j].isSame(this.startDate)&&(k+=" start-date "),a[i][j].isSame(this.endDate)&&(k+=" end-date "));var l="r"+i+"c"+j;g+='<td class="'+k.replace(/\s+/g," ").replace(/^\s?(.*?)\s?$/,"$1")+'" data-title="'+l+'">'+a[i][j].date()+"</td>"}g+="</tr>"}g+="</tbody>",g+="</table>",g+="</div>";var m;if(this.timePicker){g+='<div class="calendar-time">',g+='<select class="hourselect">';var n=0,o=23;c&&("left"==f||this.singleDatePicker)&&b.format("YYYY-MM-DD")==c.format("YYYY-MM-DD")&&(n=c.hour(),b.hour()<n&&b.hour(n),this.timePicker12Hour&&n>=12&&b.hour()>=12&&(n-=12),this.timePicker12Hour&&12==n&&(n=1)),e&&("right"==f||this.singleDatePicker)&&b.format("YYYY-MM-DD")==e.format("YYYY-MM-DD")&&(o=e.hour(),b.hour()>o&&b.hour(o),this.timePicker12Hour&&o>=12&&b.hour()>=12&&(o-=12));var p=0,q=23,r=b.hour();for(this.timePicker12Hour&&(p=1,q=12,r>=12&&(r-=12),0===r&&(r=12)),m=p;q>=m;m++)g+=m==r?'<option value="'+m+'" selected="selected">'+m+"</option>":n>m||m>o?'<option value="'+m+'" disabled="disabled" class="disabled">'+m+"</option>":'<option value="'+m+'">'+m+"</option>";g+="</select> : ",g+='<select class="minuteselect">';var s=0,t=59;for(c&&("left"==f||this.singleDatePicker)&&b.format("YYYY-MM-DD h A")==c.format("YYYY-MM-DD h A")&&(s=c.minute(),b.minute()<s&&b.minute(s)),e&&("right"==f||this.singleDatePicker)&&b.format("YYYY-MM-DD h A")==e.format("YYYY-MM-DD h A")&&(t=e.minute(),b.minute()>t&&b.minute(t)),m=0;60>m;m+=this.timePickerIncrement){var u=m;10>u&&(u="0"+u),g+=m==b.minute()?'<option value="'+m+'" selected="selected">'+u+"</option>":s>m||m>t?'<option value="'+m+'" disabled="disabled" class="disabled">'+u+"</option>":'<option value="'+m+'">'+u+"</option>"}if(g+="</select> ",this.timePickerSeconds){for(g+=': <select class="secondselect">',m=0;60>m;m+=this.timePickerIncrement){var u=m;10>u&&(u="0"+u),g+=m==b.second()?'<option value="'+m+'" selected="selected">'+u+"</option>":'<option value="'+m+'">'+u+"</option>"}g+="</select>"}if(this.timePicker12Hour){g+='<select class="ampmselect">';var v="",w="";c&&("left"==f||this.singleDatePicker)&&b.format("YYYY-MM-DD")==c.format("YYYY-MM-DD")&&c.hour()>=12&&(v=' disabled="disabled" class="disabled"'),e&&("right"==f||this.singleDatePicker)&&b.format("YYYY-MM-DD")==e.format("YYYY-MM-DD")&&e.hour()<12&&(w=' disabled="disabled" class="disabled"'),g+=b.hour()>=12?'<option value="AM"'+v+'>AM</option><option value="PM" selected="selected"'+w+">PM</option>":'<option value="AM" selected="selected"'+v+'>AM</option><option value="PM"'+w+">PM</option>",g+="</select>"}g+="</div>"}return g},remove:function(){this.container.remove(),this.element.off(".daterangepicker"),this.element.removeData("daterangepicker")}},d.fn.daterangepicker=function(a,b){return this.each(function(){var c=d(this);c.data("daterangepicker")&&c.data("daterangepicker").remove(),c.data("daterangepicker",new e(c,a,b))}),this}}),function(a){"use strict";a.module("ngBootstrap",[]).directive("input",["$compile","$parse","$filter",function(b,c,d){return{restrict:"E",require:"?ngModel",link:function(b,e,f,g){function h(a){return moment.isMoment(a)?a.toDate():a}function i(a){return moment.isMoment(a)?a:moment(a)}function j(a){return d("date")(h(a),l.format.replace(/Y/g,"y").replace(/D/g,"d"))}function k(a){return[j(a.startDate),j(a.endDate)].join(l.separator)}if("daterange"===f.type&&null!==g){var l={};l.format=f.format||"YYYY-MM-DD",l.separator=f.separator||" - ",l.minDate=f.minDate&&moment(f.minDate),l.maxDate=f.maxDate&&moment(f.maxDate),l.dateLimit=f.limit&&moment.duration.apply(this,f.limit.split(" ").map(function(a,b){return 0===b&&parseInt(a,10)||a})),l.ranges=f.ranges&&c(f.ranges)(b),l.locale=f.locale&&c(f.locale)(b),l.opens=f.opens||c(f.opens)(b),f.enabletimepicker&&(l.timePicker=!0,a.extend(l,c(f.enabletimepicker)(b))),g.$render=function(){g.$viewValue&&g.$viewValue.startDate&&e.val(k(g.$viewValue))},b.$watch(function(){return f.ngModel},function(a,c){return b[a]&&b[a].startDate?void(c===a&&(e.data("daterangepicker").startDate=i(b[a].startDate),e.data("daterangepicker").endDate=i(b[a].endDate),e.data("daterangepicker").updateView(),e.data("daterangepicker").updateCalendars(),e.data("daterangepicker").updateInputText())):void g.$setViewValue({startDate:moment().startOf("day"),endDate:moment().startOf("day")})}),e.daterangepicker(l,function(c,d,e){var f=g.$viewValue;a.equals(c,f.startDate)&&a.equals(d,f.endDate)||b.$apply(function(){g.$setViewValue({startDate:moment.isMoment(f.startDate)?c:c.toDate(),endDate:moment.isMoment(f.endDate)?d:d.toDate()}),g.$render()})})}}}}])}(angular),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.debounce","ui.bootstrap.dropdown","ui.bootstrap.stackedMap","ui.bootstrap.modal","ui.bootstrap.paging","ui.bootstrap.pager","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["uib/template/accordion/accordion-group.html","uib/template/accordion/accordion.html","uib/template/alert/alert.html","uib/template/carousel/carousel.html","uib/template/carousel/slide.html","uib/template/datepicker/datepicker.html","uib/template/datepicker/day.html","uib/template/datepicker/month.html","uib/template/datepicker/popup.html","uib/template/datepicker/year.html","uib/template/modal/backdrop.html","uib/template/modal/window.html","uib/template/pager/pager.html","uib/template/pagination/pagination.html","uib/template/tooltip/tooltip-html-popup.html","uib/template/tooltip/tooltip-popup.html","uib/template/tooltip/tooltip-template-popup.html","uib/template/popover/popover-html.html","uib/template/popover/popover-template.html","uib/template/popover/popover.html","uib/template/progressbar/bar.html","uib/template/progressbar/progress.html","uib/template/progressbar/progressbar.html","uib/template/rating/rating.html","uib/template/tabs/tab.html","uib/template/tabs/tabset.html","uib/template/timepicker/timepicker.html","uib/template/typeahead/typeahead-match.html","uib/template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.collapse",[]).directive("uibCollapse",["$animate","$injector",function(a,b){var c=b.has("$animateCss")?b.get("$animateCss"):null;return{link:function(b,d,e){function f(){d.removeClass("collapse").addClass("collapsing").attr("aria-expanded",!0).attr("aria-hidden",!1),c?c(d,{addClass:"in",easing:"ease",to:{height:d[0].scrollHeight+"px"}}).start()["finally"](g):a.addClass(d,"in",{to:{height:d[0].scrollHeight+"px"}}).then(g)}function g(){d.removeClass("collapsing").addClass("collapse").css({height:"auto"})}function h(){return d.hasClass("collapse")||d.hasClass("in")?(d.css({height:d[0].scrollHeight+"px"}).removeClass("collapse").addClass("collapsing").attr("aria-expanded",!1).attr("aria-hidden",!0),void(c?c(d,{removeClass:"in",to:{height:"0"}}).start()["finally"](i):a.removeClass(d,"in",{to:{height:"0"}}).then(i))):i()}function i(){d.css({height:"0"}),d.removeClass("collapsing").addClass("collapse")}b.$eval(e.uibCollapse)||d.addClass("in").addClass("collapse").css({height:"auto"}),b.$watch(e.uibCollapse,function(a){a?h():f()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("uibAccordionConfig",{closeOthers:!0}).controller("UibAccordionController",["$scope","$attrs","uibAccordionConfig",function(a,b,c){this.groups=[],this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var b=this;this.groups.push(a),a.$on("$destroy",function(c){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(b,1)}}]).directive("uibAccordion",function(){return{controller:"UibAccordionController",controllerAs:"accordion",transclude:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/accordion/accordion.html"}}}).directive("uibAccordionGroup",function(){return{require:"^uibAccordion",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/accordion/accordion-group.html"},scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(a,b,c,d){d.addGroup(a),a.openClass=c.openClass||"panel-open",a.panelClass=c.panelClass||"panel-default",a.$watch("isOpen",function(c){b.toggleClass(a.openClass,!!c),c&&d.closeOthers(a)}),a.toggleOpen=function(b){a.isDisabled||b&&32!==b.which||(a.isOpen=!a.isOpen)}}}}).directive("uibAccordionHeading",function(){return{transclude:!0,template:"",replace:!0,require:"^uibAccordionGroup",link:function(a,b,c,d,e){d.setHeading(e(a,angular.noop))}}}).directive("uibAccordionTransclude",function(){return{require:"^uibAccordionGroup",link:function(a,b,c,d){a.$watch(function(){return d[c.uibAccordionTransclude]},function(a){a&&(b.find("span").html(""),b.find("span").append(a))})}}}),angular.module("ui.bootstrap.alert",[]).controller("UibAlertController",["$scope","$attrs","$interpolate","$timeout",function(a,b,c,d){a.closeable=!!b.close;var e=angular.isDefined(b.dismissOnTimeout)?c(b.dismissOnTimeout)(a.$parent):null;e&&d(function(){a.close()},parseInt(e,10))}]).directive("uibAlert",function(){return{controller:"UibAlertController",controllerAs:"alert",templateUrl:function(a,b){return b.templateUrl||"uib/template/alert/alert.html"},transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}),angular.module("ui.bootstrap.buttons",[]).constant("uibButtonConfig",{activeClass:"active",toggleEvent:"click"}).controller("UibButtonsController",["uibButtonConfig",function(a){this.activeClass=a.activeClass||"active",this.toggleEvent=a.toggleEvent||"click"}]).directive("uibBtnRadio",["$parse",function(a){return{require:["uibBtnRadio","ngModel"],controller:"UibButtonsController",controllerAs:"buttons",link:function(b,c,d,e){var f=e[0],g=e[1],h=a(d.uibUncheckable);c.find("input").css({display:"none"}),g.$render=function(){c.toggleClass(f.activeClass,angular.equals(g.$modelValue,b.$eval(d.uibBtnRadio)))},c.on(f.toggleEvent,function(){if(!d.disabled){var a=c.hasClass(f.activeClass);a&&!angular.isDefined(d.uncheckable)||b.$apply(function(){g.$setViewValue(a?null:b.$eval(d.uibBtnRadio)),g.$render()})}}),d.uibUncheckable&&b.$watch(h,function(a){d.$set("uncheckable",a?"":null)})}}}]).directive("uibBtnCheckbox",function(){return{require:["uibBtnCheckbox","ngModel"],controller:"UibButtonsController",controllerAs:"button",link:function(a,b,c,d){function e(){return g(c.btnCheckboxTrue,!0)}function f(){return g(c.btnCheckboxFalse,!1)}function g(b,c){return angular.isDefined(b)?a.$eval(b):c}var h=d[0],i=d[1];b.find("input").css({display:"none"}),i.$render=function(){b.toggleClass(h.activeClass,angular.equals(i.$modelValue,e()))},b.on(h.toggleEvent,function(){c.disabled||a.$apply(function(){i.$setViewValue(b.hasClass(h.activeClass)?f():e()),i.$render()})})}}}),angular.module("ui.bootstrap.carousel",[]).controller("UibCarouselController",["$scope","$element","$interval","$timeout","$animate",function(a,b,c,d,e){function f(){for(;s.length;)s.shift()}function g(a){if(angular.isUndefined(p[a].index))return p[a];for(var b=0,c=p.length;c>b;++b)if(p[b].index===a)return p[b]}function h(c,d,g){t||(angular.extend(c,{direction:g,active:!0}),angular.extend(o.currentSlide||{},{direction:g,active:!1}),e.enabled(b)&&!a.$currentTransition&&c.$element&&o.slides.length>1&&(c.$element.data(q,c.direction),o.currentSlide&&o.currentSlide.$element&&o.currentSlide.$element.data(q,c.direction),a.$currentTransition=!0,e.on("addClass",c.$element,function(b,c){if("close"===c&&(a.$currentTransition=null,e.off("addClass",b),s.length)){var d=s.pop(),g=a.indexOfSlide(d),i=g>o.getCurrentIndex()?"next":"prev";f(),h(d,g,i)}})),o.currentSlide=c,r=d,k())}function i(){m&&(c.cancel(m),m=null)}function j(b){b.length||(a.$currentTransition=null,f())}function k(){i();var b=+a.interval;!isNaN(b)&&b>0&&(m=c(l,b))}function l(){var b=+a.interval;n&&!isNaN(b)&&b>0&&p.length?a.next():a.pause()}var m,n,o=this,p=o.slides=a.slides=[],q="uib-slideDirection",r=-1,s=[];o.currentSlide=null;var t=!1;o.addSlide=function(b,c){b.$element=c,p.push(b),1===p.length||b.active?(a.$currentTransition&&(a.$currentTransition=null),o.select(p[p.length-1]),1===p.length&&a.play()):b.active=!1},o.getCurrentIndex=function(){return o.currentSlide&&angular.isDefined(o.currentSlide.index)?+o.currentSlide.index:r},o.next=a.next=function(){var b=(o.getCurrentIndex()+1)%p.length;return 0===b&&a.noWrap()?void a.pause():o.select(g(b),"next")},o.prev=a.prev=function(){var b=o.getCurrentIndex()-1<0?p.length-1:o.getCurrentIndex()-1;return a.noWrap()&&b===p.length-1?void a.pause():o.select(g(b),"prev")},o.removeSlide=function(a){angular.isDefined(a.index)&&p.sort(function(a,b){return+a.index>+b.index});var b=s.indexOf(a);-1!==b&&s.splice(b,1);var c=p.indexOf(a);p.splice(c,1),d(function(){p.length>0&&a.active?c>=p.length?o.select(p[c-1]):o.select(p[c]):r>c&&r--}),0===p.length&&(o.currentSlide=null,f())},o.select=a.select=function(b,c){var d=a.indexOfSlide(b);void 0===c&&(c=d>o.getCurrentIndex()?"next":"prev"),b&&b!==o.currentSlide&&!a.$currentTransition?h(b,d,c):b&&b!==o.currentSlide&&a.$currentTransition&&(s.push(b),b.active=!1)},a.indexOfSlide=function(a){return angular.isDefined(a.index)?+a.index:p.indexOf(a)},a.isActive=function(a){return o.currentSlide===a},a.pause=function(){a.noPause||(n=!1,i())},a.play=function(){n||(n=!0,k())},a.$on("$destroy",function(){t=!0,i()}),a.$watch("noTransition",function(a){e.enabled(b,!a)}),a.$watch("interval",k),a.$watchCollection("slides",j)}]).directive("uibCarousel",function(){return{transclude:!0,replace:!0,controller:"UibCarouselController",controllerAs:"carousel",templateUrl:function(a,b){return b.templateUrl||"uib/template/carousel/carousel.html"},scope:{interval:"=",noTransition:"=",noPause:"=",noWrap:"&"}}}).directive("uibSlide",function(){return{require:"^uibCarousel",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/carousel/slide.html"},scope:{active:"=?",actual:"=?",index:"=?"},link:function(a,b,c,d){d.addSlide(a,b),a.$on("$destroy",function(){d.removeSlide(a)}),a.$watch("active",function(b){b&&d.select(a)})}}}).animation(".item",["$animateCss",function(a){function b(a,b,c){a.removeClass(b),c&&c()}var c="uib-slideDirection";return{beforeAddClass:function(d,e,f){if("active"===e){var g=!1,h=d.data(c),i="next"===h?"left":"right",j=b.bind(this,d,i+" "+h,f);return d.addClass(h),a(d,{addClass:i}).start().done(j),function(){g=!0}}f()},beforeRemoveClass:function(d,e,f){if("active"===e){var g=!1,h=d.data(c),i="next"===h?"left":"right",j=b.bind(this,d,i,f);return a(d,{addClass:i}).start().done(j),function(){g=!0}}f()}}}]),angular.module("ui.bootstrap.dateparser",[]).service("uibDateParser",["$log","$locale","orderByFilter",function(a,b,c){function d(a){var b=[],d=a.split(""),e=a.indexOf("'");if(e>-1){var f=!1;a=a.split("");for(var g=e;g<a.length;g++)f?("'"===a[g]&&(g+1<a.length&&"'"===a[g+1]?(a[g+1]="$",d[g+1]=""):(d[g]="",f=!1)),a[g]="$"):"'"===a[g]&&(a[g]="$",d[g]="",f=!0);a=a.join("")}return angular.forEach(m,function(c){var e=a.indexOf(c.key);if(e>-1){a=a.split(""),d[e]="("+c.regex+")",a[e]="$";for(var f=e+1,g=e+c.key.length;g>f;f++)d[f]="",a[f]="$";a=a.join(""),b.push({index:e,apply:c.apply,matcher:c.regex})}}),{regex:new RegExp("^"+d.join("")+"$"),map:c(b,"index")}}function e(a,b,c){return 1>c?!1:1===b&&c>28?29===c&&(a%4===0&&a%100!==0||a%400===0):3===b||5===b||8===b||10===b?31>c:!0}function f(a){return parseInt(a,10)}function g(a,b){return a&&b?k(a,b):a}function h(a,b){return a&&b?k(a,b,!0):a}function i(a,b){var c=Date.parse("Jan 01, 1970 00:00:00 "+a)/6e4;return isNaN(c)?b:c}function j(a,b){return a=new Date(a.getTime()),a.setMinutes(a.getMinutes()+b),a}function k(a,b,c){c=c?-1:1;var d=i(b,a.getTimezoneOffset());return j(a,c*(d-a.getTimezoneOffset()))}var l,m,n=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;this.init=function(){l=b.id,this.parsers={},m=[{key:"yyyy",regex:"\\d{4}",apply:function(a){this.year=+a}},{key:"yy",regex:"\\d{2}",apply:function(a){this.year=+a+2e3}},{key:"y",regex:"\\d{1,4}",apply:function(a){this.year=+a}},{key:"M!",regex:"0?[1-9]|1[0-2]",apply:function(a){this.month=a-1}},{key:"MMMM",regex:b.DATETIME_FORMATS.MONTH.join("|"),apply:function(a){this.month=b.DATETIME_FORMATS.MONTH.indexOf(a)}},{key:"MMM",regex:b.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(a){this.month=b.DATETIME_FORMATS.SHORTMONTH.indexOf(a)}},{key:"MM",regex:"0[1-9]|1[0-2]",apply:function(a){this.month=a-1}},{key:"M",regex:"[1-9]|1[0-2]",apply:function(a){this.month=a-1}},{key:"d!",regex:"[0-2]?[0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},{key:"dd",regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},{key:"d",regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(a){this.date=+a}},{key:"EEEE",regex:b.DATETIME_FORMATS.DAY.join("|")},{key:"EEE",regex:b.DATETIME_FORMATS.SHORTDAY.join("|")},{key:"HH",regex:"(?:0|1)[0-9]|2[0-3]",apply:function(a){this.hours=+a}},{key:"hh",regex:"0[0-9]|1[0-2]",apply:function(a){this.hours=+a}},{key:"H",regex:"1?[0-9]|2[0-3]",apply:function(a){this.hours=+a}},{key:"h",regex:"[0-9]|1[0-2]",apply:function(a){this.hours=+a}},{key:"mm",regex:"[0-5][0-9]",apply:function(a){this.minutes=+a}},{key:"m",regex:"[0-9]|[1-5][0-9]",apply:function(a){this.minutes=+a}},{key:"sss",regex:"[0-9][0-9][0-9]",apply:function(a){this.milliseconds=+a}},{key:"ss",regex:"[0-5][0-9]",apply:function(a){this.seconds=+a}},{key:"s",regex:"[0-9]|[1-5][0-9]",apply:function(a){this.seconds=+a}},{key:"a",regex:b.DATETIME_FORMATS.AMPMS.join("|"),apply:function(a){12===this.hours&&(this.hours=0),"PM"===a&&(this.hours+=12)}},{key:"Z",regex:"[+-]\\d{4}",apply:function(a){var b=a.match(/([+-])(\d{2})(\d{2})/),c=b[1],d=b[2],e=b[3];this.hours+=f(c+d),this.minutes+=f(c+e)}},{key:"ww",regex:"[0-4][0-9]|5[0-3]"},{key:"w",regex:"[0-9]|[1-4][0-9]|5[0-3]"},{key:"GGGG",regex:b.DATETIME_FORMATS.ERANAMES.join("|").replace(/\s/g,"\\s")},{key:"GGG",regex:b.DATETIME_FORMATS.ERAS.join("|")},{key:"GG",regex:b.DATETIME_FORMATS.ERAS.join("|")},{key:"G",regex:b.DATETIME_FORMATS.ERAS.join("|")}]},this.init(),this.parse=function(c,f,g){if(!angular.isString(c)||!f)return c;f=b.DATETIME_FORMATS[f]||f,f=f.replace(n,"\\$&"),b.id!==l&&this.init(),this.parsers[f]||(this.parsers[f]=d(f));var h=this.parsers[f],i=h.regex,j=h.map,k=c.match(i),m=!1;if(k&&k.length){var o,p;angular.isDate(g)&&!isNaN(g.getTime())?o={year:g.getFullYear(),month:g.getMonth(),date:g.getDate(),hours:g.getHours(),minutes:g.getMinutes(),seconds:g.getSeconds(),milliseconds:g.getMilliseconds()}:(g&&a.warn("dateparser:","baseDate is not a valid date"),o={year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0});for(var q=1,r=k.length;r>q;q++){var s=j[q-1];"Z"===s.matcher&&(m=!0),s.apply&&s.apply.call(o,k[q])}var t=m?Date.prototype.setUTCFullYear:Date.prototype.setFullYear,u=m?Date.prototype.setUTCHours:Date.prototype.setHours;return e(o.year,o.month,o.date)&&(!angular.isDate(g)||isNaN(g.getTime())||m?(p=new Date(0),t.call(p,o.year,o.month,o.date),u.call(p,o.hours||0,o.minutes||0,o.seconds||0,o.milliseconds||0)):(p=new Date(g),t.call(p,o.year,o.month,o.date),u.call(p,o.hours,o.minutes,o.seconds,o.milliseconds))),p}},this.toTimezone=g,this.fromTimezone=h,this.timezoneToOffset=i,this.addDateMinutes=j,this.convertTimezoneToLocal=k}]),angular.module("ui.bootstrap.isClass",[]).directive("uibIsClass",["$animate",function(a){var b=/^\s*([\s\S]+?)\s+on\s+([\s\S]+?)\s*$/,c=/^\s*([\s\S]+?)\s+for\s+([\s\S]+?)\s*$/;return{restrict:"A",compile:function(d,e){function f(a,b,c){i.push(a),j.push({scope:a,element:b}),o.forEach(function(b,c){g(b,a)}),a.$on("$destroy",h)}function g(b,d){var e=b.match(c),f=d.$eval(e[1]),g=e[2],h=k[b];if(!h){var i=function(b){var c=null;j.some(function(a){var d=a.scope.$eval(m);return d===b?(c=a,!0):void 0}),h.lastActivated!==c&&(h.lastActivated&&a.removeClass(h.lastActivated.element,f),c&&a.addClass(c.element,f),h.lastActivated=c)};k[b]=h={lastActivated:null,scope:d,watchFn:i,compareWithExp:g,watcher:d.$watch(g,i)}}h.watchFn(d.$eval(g))}function h(a){var b=a.targetScope,c=i.indexOf(b);if(i.splice(c,1),j.splice(c,1),i.length){var d=i[0];angular.forEach(k,function(a){a.scope===b&&(a.watcher=d.$watch(a.compareWithExp,a.watchFn),a.scope=d)})}else k={}}var i=[],j=[],k={},l=e.uibIsClass.match(b),m=l[2],n=l[1],o=n.split(",");return f}}}]),angular.module("ui.bootstrap.position",[]).factory("$uibPosition",["$document","$window",function(a,b){var c,d={normal:/(auto|scroll)/,hidden:/(auto|scroll|hidden)/},e={auto:/\s?auto?\s?/i,primary:/^(top|bottom|left|right)$/,secondary:/^(top|bottom|left|right|center)$/,vertical:/^(top|bottom)$/};return{getRawNode:function(a){return a[0]||a},parseStyle:function(a){return a=parseFloat(a),isFinite(a)?a:0},offsetParent:function(c){function d(a){return"static"===(b.getComputedStyle(a).position||"static")}c=this.getRawNode(c);for(var e=c.offsetParent||a[0].documentElement;e&&e!==a[0].documentElement&&d(e);)e=e.offsetParent;return e||a[0].documentElement},scrollbarWidth:function(){if(angular.isUndefined(c)){var b=angular.element('<div style="position: absolute; top: -9999px; width: 50px; height: 50px; overflow: scroll;"></div>');a.find("body").append(b),c=b[0].offsetWidth-b[0].clientWidth,c=isFinite(c)?c:0,b.remove()}return c},scrollParent:function(c,e){c=this.getRawNode(c);var f=e?d.hidden:d.normal,g=a[0].documentElement,h=b.getComputedStyle(c),i="absolute"===h.position,j=c.parentElement||g;if(j===g||"fixed"===h.position)return g;for(;j.parentElement&&j!==g;){var k=b.getComputedStyle(j);if(i&&"static"!==k.position&&(i=!1),!i&&f.test(k.overflow+k.overflowY+k.overflowX))break;j=j.parentElement}return j},position:function(c,d){c=this.getRawNode(c);var e=this.offset(c);if(d){var f=b.getComputedStyle(c);e.top-=this.parseStyle(f.marginTop),e.left-=this.parseStyle(f.marginLeft)}var g=this.offsetParent(c),h={top:0,left:0};return g!==a[0].documentElement&&(h=this.offset(g),h.top+=g.clientTop-g.scrollTop,h.left+=g.clientLeft-g.scrollLeft),{width:Math.round(angular.isNumber(e.width)?e.width:c.offsetWidth),height:Math.round(angular.isNumber(e.height)?e.height:c.offsetHeight),top:Math.round(e.top-h.top),left:Math.round(e.left-h.left)}},offset:function(c){c=this.getRawNode(c);var d=c.getBoundingClientRect();return{width:Math.round(angular.isNumber(d.width)?d.width:c.offsetWidth),height:Math.round(angular.isNumber(d.height)?d.height:c.offsetHeight),top:Math.round(d.top+(b.pageYOffset||a[0].documentElement.scrollTop)),left:Math.round(d.left+(b.pageXOffset||a[0].documentElement.scrollLeft))}},viewportOffset:function(c,d,e){c=this.getRawNode(c),e=e!==!1;var f=c.getBoundingClientRect(),g={top:0,left:0,bottom:0,right:0},h=d?a[0].documentElement:this.scrollParent(c),i=h.getBoundingClientRect();if(g.top=i.top+h.clientTop,g.left=i.left+h.clientLeft,h===a[0].documentElement&&(g.top+=b.pageYOffset,g.left+=b.pageXOffset),g.bottom=g.top+h.clientHeight,g.right=g.left+h.clientWidth,e){var j=b.getComputedStyle(h);g.top+=this.parseStyle(j.paddingTop),g.bottom-=this.parseStyle(j.paddingBottom),g.left+=this.parseStyle(j.paddingLeft),g.right-=this.parseStyle(j.paddingRight)}return{top:Math.round(f.top-g.top),bottom:Math.round(g.bottom-f.bottom),left:Math.round(f.left-g.left),right:Math.round(g.right-f.right)}},parsePlacement:function(a){var b=e.auto.test(a);return b&&(a=a.replace(e.auto,"")),a=a.split("-"),a[0]=a[0]||"top",e.primary.test(a[0])||(a[0]="top"),a[1]=a[1]||"center",e.secondary.test(a[1])||(a[1]="center"),b?a[2]=!0:a[2]=!1,a},positionElements:function(a,c,d,f){a=this.getRawNode(a),c=this.getRawNode(c);var g=angular.isDefined(c.offsetWidth)?c.offsetWidth:c.prop("offsetWidth"),h=angular.isDefined(c.offsetHeight)?c.offsetHeight:c.prop("offsetHeight");d=this.parsePlacement(d);var i=f?this.offset(a):this.position(a),j={top:0,left:0,placement:""};if(d[2]){var k=this.viewportOffset(a),l=b.getComputedStyle(c),m={width:g+Math.round(Math.abs(this.parseStyle(l.marginLeft)+this.parseStyle(l.marginRight))),height:h+Math.round(Math.abs(this.parseStyle(l.marginTop)+this.parseStyle(l.marginBottom)))};if(d[0]="top"===d[0]&&m.height>k.top&&m.height<=k.bottom?"bottom":"bottom"===d[0]&&m.height>k.bottom&&m.height<=k.top?"top":"left"===d[0]&&m.width>k.left&&m.width<=k.right?"right":"right"===d[0]&&m.width>k.right&&m.width<=k.left?"left":d[0],d[1]="top"===d[1]&&m.height-i.height>k.bottom&&m.height-i.height<=k.top?"bottom":"bottom"===d[1]&&m.height-i.height>k.top&&m.height-i.height<=k.bottom?"top":"left"===d[1]&&m.width-i.width>k.right&&m.width-i.width<=k.left?"right":"right"===d[1]&&m.width-i.width>k.left&&m.width-i.width<=k.right?"left":d[1],"center"===d[1])if(e.vertical.test(d[0])){var n=i.width/2-g/2;k.left+n<0&&m.width-i.width<=k.right?d[1]="left":k.right+n<0&&m.width-i.width<=k.left&&(d[1]="right")}else{var o=i.height/2-m.height/2;k.top+o<0&&m.height-i.height<=k.bottom?d[1]="top":k.bottom+o<0&&m.height-i.height<=k.top&&(d[1]="bottom")}}switch(d[0]){case"top":j.top=i.top-h;break;case"bottom":j.top=i.top+i.height;break;case"left":j.left=i.left-g;break;case"right":j.left=i.left+i.width}switch(d[1]){case"top":j.top=i.top;break;case"bottom":j.top=i.top+i.height-h;break;case"left":j.left=i.left;break;case"right":j.left=i.left+i.width-g;break;case"center":e.vertical.test(d[0])?j.left=i.left+i.width/2-g/2:j.top=i.top+i.height/2-h/2}return j.top=Math.round(j.top),j.left=Math.round(j.left),j.placement="center"===d[1]?d[0]:d[0]+"-"+d[1],j},positionArrow:function(a,c){a=this.getRawNode(a);var d=!0,f=a.querySelector(".tooltip-inner");if(f||(d=!1,f=a.querySelector(".popover-inner")),f){var g=d?a.querySelector(".tooltip-arrow"):a.querySelector(".arrow");if(g){if(c=this.parsePlacement(c),"center"===c[1])return void angular.element(g).css({top:"",bottom:"",right:"",left:"",margin:""});var h="border-"+c[0]+"-width",i=b.getComputedStyle(g)[h],j="border-";j+=e.vertical.test(c[0])?c[0]+"-"+c[1]:c[1]+"-"+c[0],j+="-radius";var k=b.getComputedStyle(d?f:a)[j],l={top:"auto",bottom:"auto",left:"auto",right:"auto",margin:0};switch(c[0]){case"top":l.bottom=d?"0":"-"+i;break;case"bottom":l.top=d?"0":"-"+i;break;case"left":l.right=d?"0":"-"+i;break;case"right":l.left=d?"0":"-"+i}l[c[1]]=k,angular.element(g).css(l)}}}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.position"]).value("$datepickerSuppressError",!1).constant("uibDatepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRows:4,yearColumns:5,minDate:null,maxDate:null,shortcutPropagation:!1,ngModelOptions:{}}).controller("UibDatepickerController",["$scope","$attrs","$parse","$interpolate","$log","dateFilter","uibDatepickerConfig","$datepickerSuppressError","uibDateParser",function(a,b,c,d,e,f,g,h,i){var j=this,k={$setViewValue:angular.noop},l={};this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle"],function(c){
+j[c]=angular.isDefined(b[c])?d(b[c])(a.$parent):g[c]}),angular.forEach(["showWeeks","startingDay","yearRows","yearColumns","shortcutPropagation"],function(c){j[c]=angular.isDefined(b[c])?a.$parent.$eval(b[c]):g[c]}),angular.forEach(["minDate","maxDate"],function(c){b[c]?a.$parent.$watch(b[c],function(a){j[c]=a?angular.isDate(a)?i.fromTimezone(new Date(a),l.timezone):new Date(f(a,"medium")):null,j.refreshView()}):j[c]=g[c]?i.fromTimezone(new Date(g[c]),l.timezone):null}),angular.forEach(["minMode","maxMode"],function(c){b[c]?a.$parent.$watch(b[c],function(d){j[c]=a[c]=angular.isDefined(d)?d:b[c],("minMode"===c&&j.modes.indexOf(a.datepickerMode)<j.modes.indexOf(j[c])||"maxMode"===c&&j.modes.indexOf(a.datepickerMode)>j.modes.indexOf(j[c]))&&(a.datepickerMode=j[c])}):j[c]=a[c]=g[c]||null}),a.datepickerMode=a.datepickerMode||g.datepickerMode,a.uniqueId="datepicker-"+a.$id+"-"+Math.floor(1e4*Math.random()),angular.isDefined(b.initDate)?(this.activeDate=i.fromTimezone(a.$parent.$eval(b.initDate),l.timezone)||new Date,a.$parent.$watch(b.initDate,function(a){a&&(k.$isEmpty(k.$modelValue)||k.$invalid)&&(j.activeDate=i.fromTimezone(a,l.timezone),j.refreshView())})):this.activeDate=new Date,a.disabled=angular.isDefined(b.disabled)||!1,angular.isDefined(b.ngDisabled)&&a.$parent.$watch(b.ngDisabled,function(b){a.disabled=b,j.refreshView()}),a.isActive=function(b){return 0===j.compare(b.date,j.activeDate)?(a.activeDateId=b.uid,!0):!1},this.init=function(a){k=a,l=a.$options||g.ngModelOptions,k.$modelValue&&(this.activeDate=k.$modelValue),k.$render=function(){j.render()}},this.render=function(){if(k.$viewValue){var a=new Date(k.$viewValue),b=!isNaN(a);b?this.activeDate=i.fromTimezone(a,l.timezone):h||e.error('Datepicker directive: "ng-model" value must be a Date object')}this.refreshView()},this.refreshView=function(){if(this.element){a.selectedDt=null,this._refreshView(),a.activeDt&&(a.activeDateId=a.activeDt.uid);var b=k.$viewValue?new Date(k.$viewValue):null;b=i.fromTimezone(b,l.timezone),k.$setValidity("dateDisabled",!b||this.element&&!this.isDisabled(b))}},this.createDateObject=function(b,c){var d=k.$viewValue?new Date(k.$viewValue):null;d=i.fromTimezone(d,l.timezone);var e={date:b,label:f(b,c.replace(/d!/,"dd")).replace(/M!/,"MM"),selected:d&&0===this.compare(b,d),disabled:this.isDisabled(b),current:0===this.compare(b,new Date),customClass:this.customClass(b)||null};return d&&0===this.compare(b,d)&&(a.selectedDt=e),j.activeDate&&0===this.compare(e.date,j.activeDate)&&(a.activeDt=e),e},this.isDisabled=function(c){return a.disabled||this.minDate&&this.compare(c,this.minDate)<0||this.maxDate&&this.compare(c,this.maxDate)>0||b.dateDisabled&&a.dateDisabled({date:c,mode:a.datepickerMode})},this.customClass=function(b){return a.customClass({date:b,mode:a.datepickerMode})},this.split=function(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c},a.select=function(b){if(a.datepickerMode===j.minMode){var c=k.$viewValue?i.fromTimezone(new Date(k.$viewValue),l.timezone):new Date(0,0,0,0,0,0,0);c.setFullYear(b.getFullYear(),b.getMonth(),b.getDate()),c=i.toTimezone(c,l.timezone),k.$setViewValue(c),k.$render()}else j.activeDate=b,a.datepickerMode=j.modes[j.modes.indexOf(a.datepickerMode)-1]},a.move=function(a){var b=j.activeDate.getFullYear()+a*(j.step.years||0),c=j.activeDate.getMonth()+a*(j.step.months||0);j.activeDate.setFullYear(b,c,1),j.refreshView()},a.toggleMode=function(b){b=b||1,a.datepickerMode===j.maxMode&&1===b||a.datepickerMode===j.minMode&&-1===b||(a.datepickerMode=j.modes[j.modes.indexOf(a.datepickerMode)+b])},a.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var m=function(){j.element[0].focus()};a.$on("uib:datepicker.focus",m),a.keydown=function(b){var c=a.keys[b.which];if(c&&!b.shiftKey&&!b.altKey&&!a.disabled)if(b.preventDefault(),j.shortcutPropagation||b.stopPropagation(),"enter"===c||"space"===c){if(j.isDisabled(j.activeDate))return;a.select(j.activeDate)}else!b.ctrlKey||"up"!==c&&"down"!==c?(j.handleKeyDown(c,b),j.refreshView()):a.toggleMode("up"===c?1:-1)}}]).controller("UibDaypickerController",["$scope","$element","dateFilter",function(a,b,c){function d(a,b){return 1!==b||a%4!==0||a%100===0&&a%400!==0?f[b]:29}function e(a){var b=new Date(a);b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1}var f=[31,28,31,30,31,30,31,31,30,31,30,31];this.step={months:1},this.element=b,this.init=function(b){angular.extend(b,this),a.showWeeks=b.showWeeks,b.refreshView()},this.getDates=function(a,b){for(var c,d=new Array(b),e=new Date(a),f=0;b>f;)c=new Date(e),d[f++]=c,e.setDate(e.getDate()+1);return d},this._refreshView=function(){var b=this.activeDate.getFullYear(),d=this.activeDate.getMonth(),f=new Date(this.activeDate);f.setFullYear(b,d,1);var g=this.startingDay-f.getDay(),h=g>0?7-g:-g,i=new Date(f);h>0&&i.setDate(-h+1);for(var j=this.getDates(i,42),k=0;42>k;k++)j[k]=angular.extend(this.createDateObject(j[k],this.formatDay),{secondary:j[k].getMonth()!==d,uid:a.uniqueId+"-"+k});a.labels=new Array(7);for(var l=0;7>l;l++)a.labels[l]={abbr:c(j[l].date,this.formatDayHeader),full:c(j[l].date,"EEEE")};if(a.title=c(this.activeDate,this.formatDayTitle),a.rows=this.split(j,7),a.showWeeks){a.weekNumbers=[];for(var m=(11-this.startingDay)%7,n=a.rows.length,o=0;n>o;o++)a.weekNumbers.push(e(a.rows[o][m].date))}},this.compare=function(a,b){var c=new Date(a.getFullYear(),a.getMonth(),a.getDate()),d=new Date(b.getFullYear(),b.getMonth(),b.getDate());return c.setFullYear(a.getFullYear()),d.setFullYear(b.getFullYear()),c-d},this.handleKeyDown=function(a,b){var c=this.activeDate.getDate();if("left"===a)c-=1;else if("up"===a)c-=7;else if("right"===a)c+=1;else if("down"===a)c+=7;else if("pageup"===a||"pagedown"===a){var e=this.activeDate.getMonth()+("pageup"===a?-1:1);this.activeDate.setMonth(e,1),c=Math.min(d(this.activeDate.getFullYear(),this.activeDate.getMonth()),c)}else"home"===a?c=1:"end"===a&&(c=d(this.activeDate.getFullYear(),this.activeDate.getMonth()));this.activeDate.setDate(c)}}]).controller("UibMonthpickerController",["$scope","$element","dateFilter",function(a,b,c){this.step={years:1},this.element=b,this.init=function(a){angular.extend(a,this),a.refreshView()},this._refreshView=function(){for(var b,d=new Array(12),e=this.activeDate.getFullYear(),f=0;12>f;f++)b=new Date(this.activeDate),b.setFullYear(e,f,1),d[f]=angular.extend(this.createDateObject(b,this.formatMonth),{uid:a.uniqueId+"-"+f});a.title=c(this.activeDate,this.formatMonthTitle),a.rows=this.split(d,3)},this.compare=function(a,b){var c=new Date(a.getFullYear(),a.getMonth()),d=new Date(b.getFullYear(),b.getMonth());return c.setFullYear(a.getFullYear()),d.setFullYear(b.getFullYear()),c-d},this.handleKeyDown=function(a,b){var c=this.activeDate.getMonth();if("left"===a)c-=1;else if("up"===a)c-=3;else if("right"===a)c+=1;else if("down"===a)c+=3;else if("pageup"===a||"pagedown"===a){var d=this.activeDate.getFullYear()+("pageup"===a?-1:1);this.activeDate.setFullYear(d)}else"home"===a?c=0:"end"===a&&(c=11);this.activeDate.setMonth(c)}}]).controller("UibYearpickerController",["$scope","$element","dateFilter",function(a,b,c){function d(a){return parseInt((a-1)/f,10)*f+1}var e,f;this.element=b,this.yearpickerInit=function(){e=this.yearColumns,f=this.yearRows*e,this.step={years:f}},this._refreshView=function(){for(var b,c=new Array(f),g=0,h=d(this.activeDate.getFullYear());f>g;g++)b=new Date(this.activeDate),b.setFullYear(h+g,0,1),c[g]=angular.extend(this.createDateObject(b,this.formatYear),{uid:a.uniqueId+"-"+g});a.title=[c[0].label,c[f-1].label].join(" - "),a.rows=this.split(c,e),a.columns=e},this.compare=function(a,b){return a.getFullYear()-b.getFullYear()},this.handleKeyDown=function(a,b){var c=this.activeDate.getFullYear();"left"===a?c-=1:"up"===a?c-=e:"right"===a?c+=1:"down"===a?c+=e:"pageup"===a||"pagedown"===a?c+=("pageup"===a?-1:1)*f:"home"===a?c=d(this.activeDate.getFullYear()):"end"===a&&(c=d(this.activeDate.getFullYear())+f-1),this.activeDate.setFullYear(c)}}]).directive("uibDatepicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/datepicker.html"},scope:{datepickerMode:"=?",dateDisabled:"&",customClass:"&",shortcutPropagation:"&?"},require:["uibDatepicker","^ngModel"],controller:"UibDatepickerController",controllerAs:"datepicker",link:function(a,b,c,d){var e=d[0],f=d[1];e.init(f)}}}).directive("uibDaypicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/day.html"},require:["^uibDatepicker","uibDaypicker"],controller:"UibDaypickerController",link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive("uibMonthpicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/month.html"},require:["^uibDatepicker","uibMonthpicker"],controller:"UibMonthpickerController",link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive("uibYearpicker",function(){return{replace:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/year.html"},require:["^uibDatepicker","uibYearpicker"],controller:"UibYearpickerController",link:function(a,b,c,d){var e=d[0];angular.extend(e,d[1]),e.yearpickerInit(),e.refreshView()}}}).constant("uibDatepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",datepickerPopupTemplateUrl:"uib/template/datepicker/popup.html",datepickerTemplateUrl:"uib/template/datepicker/datepicker.html",html5Types:{date:"yyyy-MM-dd","datetime-local":"yyyy-MM-ddTHH:mm:ss.sss",month:"yyyy-MM"},currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0,onOpenFocus:!0,altInputFormats:[]}).controller("UibDatepickerPopupController",["$scope","$element","$attrs","$compile","$parse","$document","$rootScope","$uibPosition","dateFilter","uibDateParser","uibDatepickerPopupConfig","$timeout","uibDatepickerConfig",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function o(b){var c=j.parse(b,t,a.date);if(isNaN(c))for(var d=0;d<E.length;d++)if(c=j.parse(b,E[d],a.date),!isNaN(c))return c;return c}function p(a){if(angular.isNumber(a)&&(a=new Date(a)),!a)return null;if(angular.isDate(a)&&!isNaN(a))return a;if(angular.isString(a)){var b=o(a);if(!isNaN(b))return j.toTimezone(b,C.timezone)}return B.$options&&B.$options.allowInvalid?a:void 0}function q(a,b){var d=a||b;return c.ngRequired||d?(angular.isNumber(d)&&(d=new Date(d)),d?angular.isDate(d)&&!isNaN(d)?!0:angular.isString(d)?!isNaN(o(b)):!1:!0):!0}function r(c){if(a.isOpen||!a.disabled){var d=D[0],e=b[0].contains(c.target),f=void 0!==d.contains&&d.contains(c.target);!a.isOpen||e||f||a.$apply(function(){a.isOpen=!1})}}function s(c){27===c.which&&a.isOpen?(c.preventDefault(),c.stopPropagation(),a.$apply(function(){a.isOpen=!1}),b[0].focus()):40!==c.which||a.isOpen||(c.preventDefault(),c.stopPropagation(),a.$apply(function(){a.isOpen=!0}))}var t,u,v,w,x,y,z,A,B,C,D,E,F={},G=!1;a.watchData={},this.init=function(h){if(B=h,C=h.$options||m.ngModelOptions,u=angular.isDefined(c.closeOnDateSelection)?a.$parent.$eval(c.closeOnDateSelection):k.closeOnDateSelection,v=angular.isDefined(c.datepickerAppendToBody)?a.$parent.$eval(c.datepickerAppendToBody):k.appendToBody,w=angular.isDefined(c.onOpenFocus)?a.$parent.$eval(c.onOpenFocus):k.onOpenFocus,x=angular.isDefined(c.datepickerPopupTemplateUrl)?c.datepickerPopupTemplateUrl:k.datepickerPopupTemplateUrl,y=angular.isDefined(c.datepickerTemplateUrl)?c.datepickerTemplateUrl:k.datepickerTemplateUrl,E=angular.isDefined(c.altInputFormats)?a.$parent.$eval(c.altInputFormats):k.altInputFormats,a.showButtonBar=angular.isDefined(c.showButtonBar)?a.$parent.$eval(c.showButtonBar):k.showButtonBar,k.html5Types[c.type]?(t=k.html5Types[c.type],G=!0):(t=c.uibDatepickerPopup||k.datepickerPopup,c.$observe("uibDatepickerPopup",function(a,b){var c=a||k.datepickerPopup;if(c!==t&&(t=c,B.$modelValue=null,!t))throw new Error("uibDatepickerPopup must have a date format specified.")})),!t)throw new Error("uibDatepickerPopup must have a date format specified.");if(G&&c.uibDatepickerPopup)throw new Error("HTML5 date input types do not support custom formats.");if(z=angular.element("<div uib-datepicker-popup-wrap><div uib-datepicker></div></div>"),a.ngModelOptions=angular.copy(C),a.ngModelOptions.timezone=null,z.attr({"ng-model":"date","ng-model-options":"ngModelOptions","ng-change":"dateSelection(date)","template-url":x}),A=angular.element(z.children()[0]),A.attr("template-url",y),G&&"month"===c.type&&(A.attr("datepicker-mode",'"month"'),A.attr("min-mode","month")),c.datepickerOptions){var l=a.$parent.$eval(c.datepickerOptions);l&&l.initDate&&(a.initDate=j.fromTimezone(l.initDate,C.timezone),A.attr("init-date","initDate"),delete l.initDate),angular.forEach(l,function(a,b){A.attr(n(b),a)})}angular.forEach(["minMode","maxMode"],function(b){c[b]&&(a.$parent.$watch(function(){return c[b]},function(c){a.watchData[b]=c}),A.attr(n(b),"watchData."+b))}),angular.forEach(["datepickerMode","shortcutPropagation"],function(b){if(c[b]){var d=e(c[b]),f={get:function(){return d(a.$parent)}};if(A.attr(n(b),"watchData."+b),"datepickerMode"===b){var g=d.assign;f.set=function(b){g(a.$parent,b)}}Object.defineProperty(a.watchData,b,f)}}),angular.forEach(["minDate","maxDate","initDate"],function(b){if(c[b]){var d=e(c[b]);a.$parent.$watch(d,function(c){"minDate"!==b&&"maxDate"!==b||(F[b]=angular.isDate(c)?j.fromTimezone(new Date(c),C.timezone):new Date(i(c,"medium"))),a.watchData[b]=F[b]||j.fromTimezone(new Date(c),C.timezone)}),A.attr(n(b),"watchData."+b)}}),c.dateDisabled&&A.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","showWeeks","startingDay","yearRows","yearColumns"],function(a){angular.isDefined(c[a])&&A.attr(n(a),c[a])}),c.customClass&&A.attr("custom-class","customClass({ date: date, mode: mode })"),G?B.$formatters.push(function(b){return a.date=j.fromTimezone(b,C.timezone),b}):(B.$$parserName="date",B.$validators.date=q,B.$parsers.unshift(p),B.$formatters.push(function(b){return B.$isEmpty(b)?(a.date=b,b):(a.date=j.fromTimezone(b,C.timezone),t=t.replace(/M!/,"MM").replace(/d!/,"dd"),i(a.date,t))})),B.$viewChangeListeners.push(function(){a.date=o(B.$viewValue)}),b.bind("keydown",s),D=d(z)(a),z.remove(),v?f.find("body").append(D):b.after(D),a.$on("$destroy",function(){a.isOpen===!0&&(g.$$phase||a.$apply(function(){a.isOpen=!1})),D.remove(),b.unbind("keydown",s),f.unbind("click",r)})},a.getText=function(b){return a[b+"Text"]||k[b+"Text"]},a.isDisabled=function(b){return"today"===b&&(b=new Date),a.watchData.minDate&&a.compare(b,F.minDate)<0||a.watchData.maxDate&&a.compare(b,F.maxDate)>0},a.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},a.dateSelection=function(c){angular.isDefined(c)&&(a.date=c);var d=a.date?i(a.date,t):null;b.val(d),B.$setViewValue(d),u&&(a.isOpen=!1,b[0].focus())},a.keydown=function(c){27===c.which&&(c.stopPropagation(),a.isOpen=!1,b[0].focus())},a.select=function(b){if("today"===b){var c=new Date;angular.isDate(a.date)?(b=new Date(a.date),b.setFullYear(c.getFullYear(),c.getMonth(),c.getDate())):b=new Date(c.setHours(0,0,0,0))}a.dateSelection(b)},a.close=function(){a.isOpen=!1,b[0].focus()},a.disabled=angular.isDefined(c.disabled)||!1,c.ngDisabled&&a.$parent.$watch(e(c.ngDisabled),function(b){a.disabled=b}),a.$watch("isOpen",function(c){c?a.disabled?a.isOpen=!1:(a.position=v?h.offset(b):h.position(b),a.position.top=a.position.top+b.prop("offsetHeight"),l(function(){w&&a.$broadcast("uib:datepicker.focus"),f.bind("click",r)},0,!1)):f.unbind("click",r)})}]).directive("uibDatepickerPopup",function(){return{require:["ngModel","uibDatepickerPopup"],controller:"UibDatepickerPopupController",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&",customClass:"&"},link:function(a,b,c,d){var e=d[0],f=d[1];f.init(e)}}}).directive("uibDatepickerPopupWrap",function(){return{replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/datepicker/popup.html"}}}),angular.module("ui.bootstrap.debounce",[]).factory("$$debounce",["$timeout",function(a){return function(b,c){var d;return function(){var e=this,f=Array.prototype.slice.call(arguments);d&&a.cancel(d),d=a(function(){b.apply(e,f)},c)}}}]),angular.module("ui.bootstrap.dropdown",["ui.bootstrap.position"]).constant("uibDropdownConfig",{appendToOpenClass:"uib-dropdown-open",openClass:"open"}).service("uibDropdownService",["$document","$rootScope",function(a,b){var c=null;this.open=function(b){c||(a.on("click",d),a.on("keydown",e)),c&&c!==b&&(c.isOpen=!1),c=b},this.close=function(b){c===b&&(c=null,a.off("click",d),a.off("keydown",e))};var d=function(a){if(c&&!(a&&"disabled"===c.getAutoClose()||a&&3===a.which)){var d=c.getToggleElement();if(!(a&&d&&d[0].contains(a.target))){var e=c.getDropdownElement();a&&"outsideClick"===c.getAutoClose()&&e&&e[0].contains(a.target)||(c.isOpen=!1,b.$$phase||c.$apply())}}},e=function(a){27===a.which?(c.focusToggleElement(),d()):c.isKeynavEnabled()&&-1!==[38,40].indexOf(a.which)&&c.isOpen&&(a.preventDefault(),a.stopPropagation(),c.focusDropdownEntry(a.which))}}]).controller("UibDropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest",function(a,b,c,d,e,f,g,h,i,j,k){var l,m,n=this,o=a.$new(),p=e.appendToOpenClass,q=e.openClass,r=angular.noop,s=c.onToggle?d(c.onToggle):angular.noop,t=!1,u=null,v=!1,w=i.find("body");b.addClass("dropdown"),this.init=function(){if(c.isOpen&&(m=d(c.isOpen),r=m.assign,a.$watch(m,function(a){o.isOpen=!!a})),angular.isDefined(c.dropdownAppendTo)){var e=d(c.dropdownAppendTo)(o);e&&(u=angular.element(e))}t=angular.isDefined(c.dropdownAppendToBody),v=angular.isDefined(c.keyboardNav),t&&!u&&(u=w),u&&n.dropdownMenu&&(u.append(n.dropdownMenu),b.on("$destroy",function(){n.dropdownMenu.remove()}))},this.toggle=function(a){return o.isOpen=arguments.length?!!a:!o.isOpen},this.isOpen=function(){return o.isOpen},o.getToggleElement=function(){return n.toggleElement},o.getAutoClose=function(){return c.autoClose||"always"},o.getElement=function(){return b},o.isKeynavEnabled=function(){return v},o.focusDropdownEntry=function(a){var c=n.dropdownMenu?angular.element(n.dropdownMenu).find("a"):b.find("ul").eq(0).find("a");switch(a){case 40:angular.isNumber(n.selectedOption)?n.selectedOption=n.selectedOption===c.length-1?n.selectedOption:n.selectedOption+1:n.selectedOption=0;break;case 38:angular.isNumber(n.selectedOption)?n.selectedOption=0===n.selectedOption?0:n.selectedOption-1:n.selectedOption=c.length-1}c[n.selectedOption].focus()},o.getDropdownElement=function(){return n.dropdownMenu},o.focusToggleElement=function(){n.toggleElement&&n.toggleElement[0].focus()},o.$watch("isOpen",function(c,d){if(u&&n.dropdownMenu){var e,i,m=h.positionElements(b,n.dropdownMenu,"bottom-left",!0);if(e={top:m.top+"px",display:c?"block":"none"},i=n.dropdownMenu.hasClass("dropdown-menu-right"),i?(e.left="auto",e.right=window.innerWidth-(m.left+b.prop("offsetWidth"))+"px"):(e.left=m.left+"px",e.right="auto"),!t){var v=h.offset(u);e.top=m.top-v.top+"px",i?e.right=window.innerWidth-(m.left-v.left+b.prop("offsetWidth"))+"px":e.left=m.left-v.left+"px"}n.dropdownMenu.css(e)}var w=u?u:b;if(g[c?"addClass":"removeClass"](w,u?p:q).then(function(){angular.isDefined(c)&&c!==d&&s(a,{open:!!c})}),c)n.dropdownMenuTemplateUrl&&k(n.dropdownMenuTemplateUrl).then(function(a){l=o.$new(),j(a.trim())(l,function(a){var b=a;n.dropdownMenu.replaceWith(b),n.dropdownMenu=b})}),o.focusToggleElement(),f.open(o);else{if(n.dropdownMenuTemplateUrl){l&&l.$destroy();var x=angular.element('<ul class="dropdown-menu"></ul>');n.dropdownMenu.replaceWith(x),n.dropdownMenu=x}f.close(o),n.selectedOption=null}angular.isFunction(r)&&r(a,c)}),a.$on("$locationChangeSuccess",function(){"disabled"!==o.getAutoClose()&&(o.isOpen=!1)})}]).directive("uibDropdown",function(){return{controller:"UibDropdownController",link:function(a,b,c,d){d.init()}}}).directive("uibDropdownMenu",function(){return{restrict:"A",require:"?^uibDropdown",link:function(a,b,c,d){if(d&&!angular.isDefined(c.dropdownNested)){b.addClass("dropdown-menu");var e=c.templateUrl;e&&(d.dropdownMenuTemplateUrl=e),d.dropdownMenu||(d.dropdownMenu=b)}}}}).directive("uibDropdownToggle",function(){return{require:"?^uibDropdown",link:function(a,b,c,d){if(d){b.addClass("dropdown-toggle"),d.toggleElement=b;var e=function(e){e.preventDefault(),b.hasClass("disabled")||c.disabled||a.$apply(function(){d.toggle()})};b.bind("click",e),b.attr({"aria-haspopup":!0,"aria-expanded":!1}),a.$watch(d.isOpen,function(a){b.attr("aria-expanded",!!a)}),a.$on("$destroy",function(){b.unbind("click",e)})}}}}),angular.module("ui.bootstrap.stackedMap",[]).factory("$$stackedMap",function(){return{createNew:function(){var a=[];return{add:function(b,c){a.push({key:b,value:c})},get:function(b){for(var c=0;c<a.length;c++)if(b===a[c].key)return a[c]},keys:function(){for(var b=[],c=0;c<a.length;c++)b.push(a[c].key);return b},top:function(){return a[a.length-1]},remove:function(b){for(var c=-1,d=0;d<a.length;d++)if(b===a[d].key){c=d;break}return a.splice(c,1)[0]},removeTop:function(){return a.splice(a.length-1,1)[0]},length:function(){return a.length}}}}}),angular.module("ui.bootstrap.modal",["ui.bootstrap.stackedMap"]).factory("$$multiMap",function(){return{createNew:function(){var a={};return{entries:function(){return Object.keys(a).map(function(b){return{key:b,value:a[b]}})},get:function(b){return a[b]},hasKey:function(b){return!!a[b]},keys:function(){return Object.keys(a)},put:function(b,c){a[b]||(a[b]=[]),a[b].push(c)},remove:function(b,c){var d=a[b];if(d){var e=d.indexOf(c);-1!==e&&d.splice(e,1),d.length||delete a[b]}}}}}}).provider("$uibResolve",function(){var a=this;this.resolver=null,this.setResolver=function(a){this.resolver=a},this.$get=["$injector","$q",function(b,c){var d=a.resolver?b.get(a.resolver):null;return{resolve:function(a,e,f,g){if(d)return d.resolve(a,e,f,g);var h=[];return angular.forEach(a,function(a){angular.isFunction(a)||angular.isArray(a)?h.push(c.resolve(b.invoke(a))):angular.isString(a)?h.push(c.resolve(b.get(a))):h.push(c.resolve(a))}),c.all(h).then(function(b){var c={},d=0;return angular.forEach(a,function(a,e){c[e]=b[d++]}),c})}}}]}).directive("uibModalBackdrop",["$animateCss","$injector","$uibModalStack",function(a,b,c){function d(b,d,e){e.modalInClass&&(a(d,{addClass:e.modalInClass}).start(),b.$on(c.NOW_CLOSING_EVENT,function(c,f){var g=f();b.modalOptions.animation?a(d,{removeClass:e.modalInClass}).start().then(g):g()}))}return{replace:!0,templateUrl:"uib/template/modal/backdrop.html",compile:function(a,b){return a.addClass(b.backdropClass),d}}}]).directive("uibModalWindow",["$uibModalStack","$q","$animate","$animateCss","$document",function(a,b,c,d,e){return{scope:{index:"@"},replace:!0,transclude:!0,templateUrl:function(a,b){return b.templateUrl||"uib/template/modal/window.html"},link:function(f,g,h){g.addClass(h.windowClass||""),g.addClass(h.windowTopClass||""),f.size=h.size,f.close=function(b){var c=a.getTop();c&&c.value.backdrop&&"static"!==c.value.backdrop&&b.target===b.currentTarget&&(b.preventDefault(),b.stopPropagation(),a.dismiss(c.key,"backdrop click"))},g.on("click",f.close),f.$isRendered=!0;var i=b.defer();h.$observe("modalRender",function(a){"true"===a&&i.resolve()}),i.promise.then(function(){var i=null;h.modalInClass&&(i=d(g,{addClass:h.modalInClass}).start(),f.$on(a.NOW_CLOSING_EVENT,function(a,b){var e=b();d?d(g,{removeClass:h.modalInClass}).start().then(e):c.removeClass(g,h.modalInClass).then(e)})),b.when(i).then(function(){if(!e[0].activeElement||!g[0].contains(e[0].activeElement)){var a=g[0].querySelector("[autofocus]");a?a.focus():g[0].focus()}});var j=a.getTop();j&&a.modalRendered(j.key)})}}}]).directive("uibModalAnimationClass",function(){return{compile:function(a,b){b.modalAnimation&&a.addClass(b.uibModalAnimationClass)}}}).directive("uibModalTransclude",function(){return{link:function(a,b,c,d,e){e(a.$parent,function(a){b.empty(),b.append(a)})}}}).factory("$uibModalStack",["$animate","$animateCss","$document","$compile","$rootScope","$q","$$multiMap","$$stackedMap",function(a,b,c,d,e,f,g,h){function i(){for(var a=-1,b=t.keys(),c=0;c<b.length;c++)t.get(b[c]).value.backdrop&&(a=c);return a}function j(a,b){var c=t.get(a).value,d=c.appendTo;t.remove(a),m(c.modalDomEl,c.modalScope,function(){var b=c.openedClass||s;u.remove(b,a),d.toggleClass(b,u.hasKey(b)),k(!0)}),l(),b&&b.focus?b.focus():d.focus&&d.focus()}function k(a){var b;t.length()>0&&(b=t.top().value,b.modalDomEl.toggleClass(b.windowTopClass||"",a))}function l(){if(p&&-1===i()){var a=q;m(p,q,function(){a=null}),p=void 0,q=void 0}}function m(a,c,d,e){function g(){g.done||(g.done=!0,b(a,{event:"leave"}).start().then(function(){a.remove(),e&&e.resolve()}),c.$destroy(),d&&d())}var h,i=null,j=function(){return h||(h=f.defer(),i=h.promise),function(){h.resolve()}};return c.$broadcast(v.NOW_CLOSING_EVENT,j),f.when(i).then(g)}function n(a){if(a.isDefaultPrevented())return a;var b=t.top();if(b)switch(a.which){case 27:b.value.keyboard&&(a.preventDefault(),e.$apply(function(){v.dismiss(b.key,"escape key press")}));break;case 9:v.loadFocusElementList(b);var c=!1;a.shiftKey?v.isFocusInFirstItem(a)&&(c=v.focusLastFocusableElement()):v.isFocusInLastItem(a)&&(c=v.focusFirstFocusableElement()),c&&(a.preventDefault(),a.stopPropagation())}}function o(a,b,c){return!a.value.modalScope.$broadcast("modal.closing",b,c).defaultPrevented}var p,q,r,s="modal-open",t=h.createNew(),u=g.createNew(),v={NOW_CLOSING_EVENT:"modal.stack.now-closing"},w=0,x="a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]";return e.$watch(i,function(a){q&&(q.index=a)}),c.on("keydown",n),e.$on("$destroy",function(){c.off("keydown",n)}),v.open=function(b,f){var g=c[0].activeElement,h=f.openedClass||s;k(!1),t.add(b,{deferred:f.deferred,renderDeferred:f.renderDeferred,closedDeferred:f.closedDeferred,modalScope:f.scope,backdrop:f.backdrop,keyboard:f.keyboard,openedClass:f.openedClass,windowTopClass:f.windowTopClass,animation:f.animation,appendTo:f.appendTo}),u.put(h,b);var j=f.appendTo,l=i();if(!j.length)throw new Error("appendTo element not found. Make sure that the element passed is in DOM.");l>=0&&!p&&(q=e.$new(!0),q.modalOptions=f,q.index=l,p=angular.element('<div uib-modal-backdrop="modal-backdrop"></div>'),p.attr("backdrop-class",f.backdropClass),f.animation&&p.attr("modal-animation","true"),d(p)(q),a.enter(p,j));var m=angular.element('<div uib-modal-window="modal-window"></div>');m.attr({"template-url":f.windowTemplateUrl,"window-class":f.windowClass,"window-top-class":f.windowTopClass,size:f.size,index:t.length()-1,animate:"animate"}).html(f.content),f.animation&&m.attr("modal-animation","true"),a.enter(m,j).then(function(){d(m)(f.scope),a.addClass(j,h)}),t.top().value.modalDomEl=m,t.top().value.modalOpener=g,v.clearFocusListCache()},v.close=function(a,b){var c=t.get(a);return c&&o(c,b,!0)?(c.value.modalScope.$$uibDestructionScheduled=!0,c.value.deferred.resolve(b),j(a,c.value.modalOpener),!0):!c},v.dismiss=function(a,b){var c=t.get(a);return c&&o(c,b,!1)?(c.value.modalScope.$$uibDestructionScheduled=!0,c.value.deferred.reject(b),j(a,c.value.modalOpener),!0):!c},v.dismissAll=function(a){for(var b=this.getTop();b&&this.dismiss(b.key,a);)b=this.getTop()},v.getTop=function(){return t.top()},v.modalRendered=function(a){var b=t.get(a);b&&b.value.renderDeferred.resolve()},v.focusFirstFocusableElement=function(){return r.length>0?(r[0].focus(),!0):!1},v.focusLastFocusableElement=function(){return r.length>0?(r[r.length-1].focus(),!0):!1},v.isFocusInFirstItem=function(a){return r.length>0?(a.target||a.srcElement)===r[0]:!1},v.isFocusInLastItem=function(a){return r.length>0?(a.target||a.srcElement)===r[r.length-1]:!1},v.clearFocusListCache=function(){r=[],w=0},v.loadFocusElementList=function(a){if((void 0===r||!r.length)&&a){var b=a.value.modalDomEl;b&&b.length&&(r=b[0].querySelectorAll(x))}},v}]).provider("$uibModal",function(){var a={options:{animation:!0,backdrop:!0,keyboard:!0},$get:["$rootScope","$q","$document","$templateRequest","$controller","$uibResolve","$uibModalStack",function(b,c,d,e,f,g,h){function i(a){return a.template?c.when(a.template):e(angular.isFunction(a.templateUrl)?a.templateUrl():a.templateUrl)}var j={},k=null;return j.getPromiseChain=function(){return k},j.open=function(e){function j(){return r}var l=c.defer(),m=c.defer(),n=c.defer(),o=c.defer(),p={result:l.promise,opened:m.promise,closed:n.promise,rendered:o.promise,close:function(a){return h.close(p,a)},dismiss:function(a){return h.dismiss(p,a)}};if(e=angular.extend({},a.options,e),e.resolve=e.resolve||{},e.appendTo=e.appendTo||d.find("body").eq(0),!e.template&&!e.templateUrl)throw new Error("One of template or templateUrl options is required.");var q,r=c.all([i(e),g.resolve(e.resolve,{},null,null)]);return q=k=c.all([k]).then(j,j).then(function(a){var c=e.scope||b,d=c.$new();d.$close=p.close,d.$dismiss=p.dismiss,d.$on("$destroy",function(){d.$$uibDestructionScheduled||d.$dismiss("$uibUnscheduledDestruction")});var g,i={};e.controller&&(i.$scope=d,i.$uibModalInstance=p,angular.forEach(a[1],function(a,b){i[b]=a}),g=f(e.controller,i),e.controllerAs&&(e.bindToController&&(g.$close=d.$close,g.$dismiss=d.$dismiss,angular.extend(g,c)),d[e.controllerAs]=g)),h.open(p,{scope:d,deferred:l,renderDeferred:o,closedDeferred:n,content:a[0],animation:e.animation,backdrop:e.backdrop,keyboard:e.keyboard,backdropClass:e.backdropClass,windowTopClass:e.windowTopClass,windowClass:e.windowClass,windowTemplateUrl:e.windowTemplateUrl,size:e.size,openedClass:e.openedClass,appendTo:e.appendTo}),m.resolve(!0)},function(a){m.reject(a),l.reject(a)})["finally"](function(){k===q&&(k=null)}),p},j}]};return a}),angular.module("ui.bootstrap.paging",[]).factory("uibPaging",["$parse",function(a){return{create:function(b,c,d){b.setNumPages=d.numPages?a(d.numPages).assign:angular.noop,b.ngModelCtrl={$setViewValue:angular.noop},b.init=function(e,f){b.ngModelCtrl=e,b.config=f,e.$render=function(){b.render()},d.itemsPerPage?c.$parent.$watch(a(d.itemsPerPage),function(a){b.itemsPerPage=parseInt(a,10),c.totalPages=b.calculateTotalPages(),b.updatePage()}):b.itemsPerPage=f.itemsPerPage,c.$watch("totalItems",function(a,d){(angular.isDefined(a)||a!==d)&&(c.totalPages=b.calculateTotalPages(),b.updatePage())})},b.calculateTotalPages=function(){var a=b.itemsPerPage<1?1:Math.ceil(c.totalItems/b.itemsPerPage);return Math.max(a||0,1)},b.render=function(){c.page=parseInt(b.ngModelCtrl.$viewValue,10)||1},c.selectPage=function(a,d){d&&d.preventDefault();var e=!c.ngDisabled||!d;e&&c.page!==a&&a>0&&a<=c.totalPages&&(d&&d.target&&d.target.blur(),b.ngModelCtrl.$setViewValue(a),b.ngModelCtrl.$render())},c.getText=function(a){return c[a+"Text"]||b.config[a+"Text"]},c.noPrevious=function(){return 1===c.page},c.noNext=function(){return c.page===c.totalPages},b.updatePage=function(){b.setNumPages(c.$parent,c.totalPages),c.page>c.totalPages?c.selectPage(c.totalPages):b.ngModelCtrl.$render()}}}}]),angular.module("ui.bootstrap.pager",["ui.bootstrap.paging"]).controller("UibPagerController",["$scope","$attrs","uibPaging","uibPagerConfig",function(a,b,c,d){a.align=angular.isDefined(b.align)?a.$parent.$eval(b.align):d.align,c.create(this,a,b)}]).constant("uibPagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("uibPager",["uibPagerConfig",function(a){return{scope:{totalItems:"=",previousText:"@",nextText:"@",ngDisabled:"="},require:["uibPager","?ngModel"],
+controller:"UibPagerController",controllerAs:"pager",templateUrl:function(a,b){return b.templateUrl||"uib/template/pager/pager.html"},replace:!0,link:function(b,c,d,e){var f=e[0],g=e[1];g&&f.init(g,a)}}}]),angular.module("ui.bootstrap.pagination",["ui.bootstrap.paging"]).controller("UibPaginationController",["$scope","$attrs","$parse","uibPaging","uibPaginationConfig",function(a,b,c,d,e){function f(a,b,c){return{number:a,text:b,active:c}}function g(a,b){var c=[],d=1,e=b,g=angular.isDefined(i)&&b>i;g&&(j?(d=Math.max(a-Math.floor(i/2),1),e=d+i-1,e>b&&(e=b,d=e-i+1)):(d=(Math.ceil(a/i)-1)*i+1,e=Math.min(d+i-1,b)));for(var h=d;e>=h;h++){var m=f(h,h,h===a);c.push(m)}if(g&&i>0&&(!j||k||l)){if(d>1){if(!l||d>3){var n=f(d-1,"...",!1);c.unshift(n)}if(l){if(3===d){var o=f(2,"2",!1);c.unshift(o)}var p=f(1,"1",!1);c.unshift(p)}}if(b>e){if(!l||b-2>e){var q=f(e+1,"...",!1);c.push(q)}if(l){if(e===b-2){var r=f(b-1,b-1,!1);c.push(r)}var s=f(b,b,!1);c.push(s)}}}return c}var h=this,i=angular.isDefined(b.maxSize)?a.$parent.$eval(b.maxSize):e.maxSize,j=angular.isDefined(b.rotate)?a.$parent.$eval(b.rotate):e.rotate,k=angular.isDefined(b.forceEllipses)?a.$parent.$eval(b.forceEllipses):e.forceEllipses,l=angular.isDefined(b.boundaryLinkNumbers)?a.$parent.$eval(b.boundaryLinkNumbers):e.boundaryLinkNumbers;a.boundaryLinks=angular.isDefined(b.boundaryLinks)?a.$parent.$eval(b.boundaryLinks):e.boundaryLinks,a.directionLinks=angular.isDefined(b.directionLinks)?a.$parent.$eval(b.directionLinks):e.directionLinks,d.create(this,a,b),b.maxSize&&a.$parent.$watch(c(b.maxSize),function(a){i=parseInt(a,10),h.render()});var m=this.render;this.render=function(){m(),a.page>0&&a.page<=a.totalPages&&(a.pages=g(a.page,a.totalPages))}}]).constant("uibPaginationConfig",{itemsPerPage:10,boundaryLinks:!1,boundaryLinkNumbers:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0,forceEllipses:!1}).directive("uibPagination",["$parse","uibPaginationConfig",function(a,b){return{scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@",ngDisabled:"="},require:["uibPagination","?ngModel"],controller:"UibPaginationController",controllerAs:"pagination",templateUrl:function(a,b){return b.templateUrl||"uib/template/pagination/pagination.html"},replace:!0,link:function(a,c,d,e){var f=e[0],g=e[1];g&&f.init(g,b)}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.stackedMap"]).provider("$uibTooltip",function(){function a(a){var b=/[A-Z]/g,c="-";return a.replace(b,function(a,b){return(b?c:"")+a.toLowerCase()})}var b={placement:"top",placementClassPrefix:"",animation:!0,popupDelay:0,popupCloseDelay:0,useContentExp:!1},c={mouseenter:"mouseleave",click:"click",outsideClick:"outsideClick",focus:"blur",none:""},d={};this.options=function(a){angular.extend(d,a)},this.setTriggers=function(a){angular.extend(c,a)},this.$get=["$window","$compile","$timeout","$document","$uibPosition","$interpolate","$rootScope","$parse","$$stackedMap",function(e,f,g,h,i,j,k,l,m){function n(a){if(27===a.which){var b=o.top();b&&(b.value.close(),o.removeTop(),b=null)}}var o=m.createNew();return h.on("keypress",n),k.$on("$destroy",function(){h.off("keypress",n)}),function(e,k,m,n){function p(a){var b=(a||n.trigger||m).split(" "),d=b.map(function(a){return c[a]||a});return{show:b,hide:d}}n=angular.extend({},b,d,n);var q=a(e),r=j.startSymbol(),s=j.endSymbol(),t="<div "+q+'-popup title="'+r+"title"+s+'" '+(n.useContentExp?'content-exp="contentExp()" ':'content="'+r+"content"+s+'" ')+'placement="'+r+"placement"+s+'" popup-class="'+r+"popupClass"+s+'" animation="animation" is-open="isOpen"origin-scope="origScope" style="visibility: hidden; display: block; top: -9999px; left: -9999px;"></div>';return{compile:function(a,b){var c=f(t);return function(a,b,d,f){function j(){M.isOpen?q():m()}function m(){L&&!a.$eval(d[k+"Enable"])||(u(),x(),M.popupDelay?G||(G=g(r,M.popupDelay,!1)):r())}function q(){s(),M.popupCloseDelay?H||(H=g(t,M.popupCloseDelay,!1)):t()}function r(){return s(),u(),M.content?(v(),void M.$evalAsync(function(){M.isOpen=!0,y(!0),R()})):angular.noop}function s(){G&&(g.cancel(G),G=null),I&&(g.cancel(I),I=null)}function t(){M&&M.$evalAsync(function(){M.isOpen=!1,y(!1),M.animation?F||(F=g(w,150,!1)):w()})}function u(){H&&(g.cancel(H),H=null),F&&(g.cancel(F),F=null)}function v(){D||(E=M.$new(),D=c(E,function(a){J?h.find("body").append(a):b.after(a)}),z())}function w(){s(),u(),A(),D&&(D.remove(),D=null),E&&(E.$destroy(),E=null)}function x(){M.title=d[k+"Title"],P?M.content=P(a):M.content=d[e],M.popupClass=d[k+"Class"],M.placement=angular.isDefined(d[k+"Placement"])?d[k+"Placement"]:n.placement;var b=parseInt(d[k+"PopupDelay"],10),c=parseInt(d[k+"PopupCloseDelay"],10);M.popupDelay=isNaN(b)?n.popupDelay:b,M.popupCloseDelay=isNaN(c)?n.popupCloseDelay:c}function y(b){O&&angular.isFunction(O.assign)&&O.assign(a,b)}function z(){Q.length=0,P?(Q.push(a.$watch(P,function(a){M.content=a,!a&&M.isOpen&&t()})),Q.push(E.$watch(function(){N||(N=!0,E.$$postDigest(function(){N=!1,M&&M.isOpen&&R()}))}))):Q.push(d.$observe(e,function(a){M.content=a,!a&&M.isOpen?t():R()})),Q.push(d.$observe(k+"Title",function(a){M.title=a,M.isOpen&&R()})),Q.push(d.$observe(k+"Placement",function(a){M.placement=a?a:n.placement,M.isOpen&&R()}))}function A(){Q.length&&(angular.forEach(Q,function(a){a()}),Q.length=0)}function B(a){M&&M.isOpen&&D&&(b[0].contains(a.target)||D[0].contains(a.target)||q())}function C(){var a=d[k+"Trigger"];S(),K=p(a),"none"!==K.show&&K.show.forEach(function(a,c){"outsideClick"===a?(b.on("click",j),h.on("click",B)):a===K.hide[c]?b.on(a,j):a&&(b.on(a,m),b.on(K.hide[c],q)),b.on("keypress",function(a){27===a.which&&q()})})}var D,E,F,G,H,I,J=angular.isDefined(n.appendToBody)?n.appendToBody:!1,K=p(void 0),L=angular.isDefined(d[k+"Enable"]),M=a.$new(!0),N=!1,O=angular.isDefined(d[k+"IsOpen"])?l(d[k+"IsOpen"]):!1,P=n.useContentExp?l(d[e]):!1,Q=[],R=function(){D&&D.html()&&(I||(I=g(function(){D.css({top:0,left:0});var a=i.positionElements(b,D,M.placement,J);D.css({top:a.top+"px",left:a.left+"px",visibility:"visible"}),n.placementClassPrefix&&D.removeClass("top bottom left right"),D.removeClass(n.placementClassPrefix+"top "+n.placementClassPrefix+"top-left "+n.placementClassPrefix+"top-right "+n.placementClassPrefix+"bottom "+n.placementClassPrefix+"bottom-left "+n.placementClassPrefix+"bottom-right "+n.placementClassPrefix+"left "+n.placementClassPrefix+"left-top "+n.placementClassPrefix+"left-bottom "+n.placementClassPrefix+"right "+n.placementClassPrefix+"right-top "+n.placementClassPrefix+"right-bottom");var c=a.placement.split("-");D.addClass(c[0],n.placementClassPrefix+a.placement),i.positionArrow(D,a.placement),I=null},0,!1)))};M.origScope=a,M.isOpen=!1,o.add(M,{close:t}),M.contentExp=function(){return M.content},d.$observe("disabled",function(a){a&&s(),a&&M.isOpen&&t()}),O&&a.$watch(O,function(a){M&&!a===M.isOpen&&j()});var S=function(){K.show.forEach(function(a){"outsideClick"===a?b.off("click",j):(b.off(a,m),b.off(a,j))}),K.hide.forEach(function(a){"outsideClick"===a?h.off("click",B):b.off(a,q)})};C();var T=a.$eval(d[k+"Animation"]);M.animation=angular.isDefined(T)?!!T:n.animation;var U,V=k+"AppendToBody";U=V in d&&void 0===d[V]?!0:a.$eval(d[V]),J=angular.isDefined(U)?U:J,J&&a.$on("$locationChangeSuccess",function(){M.isOpen&&t()}),a.$on("$destroy",function(){S(),w(),o.remove(M),M=null})}}}}}]}).directive("uibTooltipTemplateTransclude",["$animate","$sce","$compile","$templateRequest",function(a,b,c,d){return{link:function(e,f,g){var h,i,j,k=e.$eval(g.tooltipTemplateTranscludeScope),l=0,m=function(){i&&(i.remove(),i=null),h&&(h.$destroy(),h=null),j&&(a.leave(j).then(function(){i=null}),i=j,j=null)};e.$watch(b.parseAsResourceUrl(g.uibTooltipTemplateTransclude),function(b){var g=++l;b?(d(b,!0).then(function(d){if(g===l){var e=k.$new(),i=d,n=c(i)(e,function(b){m(),a.enter(b,f)});h=e,j=n,h.$emit("$includeContentLoaded",b)}},function(){g===l&&(m(),e.$emit("$includeContentError",b))}),e.$emit("$includeContentRequested",b)):m()}),e.$on("$destroy",m)}}}]).directive("uibTooltipClasses",["$uibPosition",function(a){return{restrict:"A",link:function(b,c,d){if(b.placement){var e=a.parsePlacement(b.placement);c.addClass(e[0])}else c.addClass("top");b.popupClass&&c.addClass(b.popupClass),b.animation()&&c.addClass(d.tooltipAnimationClass)}}}]).directive("uibTooltipPopup",function(){return{replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-popup.html"}}).directive("uibTooltip",["$uibTooltip",function(a){return a("uibTooltip","tooltip","mouseenter")}]).directive("uibTooltipTemplatePopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/tooltip/tooltip-template-popup.html"}}).directive("uibTooltipTemplate",["$uibTooltip",function(a){return a("uibTooltipTemplate","tooltip","mouseenter",{useContentExp:!0})}]).directive("uibTooltipHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-html-popup.html"}}).directive("uibTooltipHtml",["$uibTooltip",function(a){return a("uibTooltipHtml","tooltip","mouseenter",{useContentExp:!0})}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("uibPopoverTemplatePopup",function(){return{replace:!0,scope:{title:"@",contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/popover/popover-template.html"}}).directive("uibPopoverTemplate",["$uibTooltip",function(a){return a("uibPopoverTemplate","popover","click",{useContentExp:!0})}]).directive("uibPopoverHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",title:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover-html.html"}}).directive("uibPopoverHtml",["$uibTooltip",function(a){return a("uibPopoverHtml","popover","click",{useContentExp:!0})}]).directive("uibPopoverPopup",function(){return{replace:!0,scope:{title:"@",content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover.html"}}).directive("uibPopover",["$uibTooltip",function(a){return a("uibPopover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("uibProgressConfig",{animate:!0,max:100}).controller("UibProgressController",["$scope","$attrs","uibProgressConfig",function(a,b,c){var d=this,e=angular.isDefined(b.animate)?a.$parent.$eval(b.animate):c.animate;this.bars=[],a.max=angular.isDefined(a.max)?a.max:c.max,this.addBar=function(b,c,f){e||c.css({transition:"none"}),this.bars.push(b),b.max=a.max,b.title=f&&angular.isDefined(f.title)?f.title:"progressbar",b.$watch("value",function(a){b.recalculatePercentage()}),b.recalculatePercentage=function(){var a=d.bars.reduce(function(a,b){return b.percent=+(100*b.value/b.max).toFixed(2),a+b.percent},0);a>100&&(b.percent-=a-100)},b.$on("$destroy",function(){c=null,d.removeBar(b)})},this.removeBar=function(a){this.bars.splice(this.bars.indexOf(a),1),this.bars.forEach(function(a){a.recalculatePercentage()})},a.$watch("max",function(b){d.bars.forEach(function(b){b.max=a.max,b.recalculatePercentage()})})}]).directive("uibProgress",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",require:"uibProgress",scope:{max:"=?"},templateUrl:"uib/template/progressbar/progress.html"}}).directive("uibBar",function(){return{replace:!0,transclude:!0,require:"^uibProgress",scope:{value:"=",type:"@"},templateUrl:"uib/template/progressbar/bar.html",link:function(a,b,c,d){d.addBar(a,b,c)}}}).directive("uibProgressbar",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",scope:{value:"=",max:"=?",type:"@"},templateUrl:"uib/template/progressbar/progressbar.html",link:function(a,b,c,d){d.addBar(a,angular.element(b.children()[0]),{title:c.title})}}}),angular.module("ui.bootstrap.rating",[]).constant("uibRatingConfig",{max:5,stateOn:null,stateOff:null,titles:["one","two","three","four","five"]}).controller("UibRatingController",["$scope","$attrs","uibRatingConfig",function(a,b,c){var d={$setViewValue:angular.noop};this.init=function(e){d=e,d.$render=this.render,d.$formatters.push(function(a){return angular.isNumber(a)&&a<<0!==a&&(a=Math.round(a)),a}),this.stateOn=angular.isDefined(b.stateOn)?a.$parent.$eval(b.stateOn):c.stateOn,this.stateOff=angular.isDefined(b.stateOff)?a.$parent.$eval(b.stateOff):c.stateOff;var f=angular.isDefined(b.titles)?a.$parent.$eval(b.titles):c.titles;this.titles=angular.isArray(f)&&f.length>0?f:c.titles;var g=angular.isDefined(b.ratingStates)?a.$parent.$eval(b.ratingStates):new Array(angular.isDefined(b.max)?a.$parent.$eval(b.max):c.max);a.range=this.buildTemplateObjects(g)},this.buildTemplateObjects=function(a){for(var b=0,c=a.length;c>b;b++)a[b]=angular.extend({index:b},{stateOn:this.stateOn,stateOff:this.stateOff,title:this.getTitle(b)},a[b]);return a},this.getTitle=function(a){return a>=this.titles.length?a+1:this.titles[a]},a.rate=function(b){!a.readonly&&b>=0&&b<=a.range.length&&(d.$setViewValue(d.$viewValue===b?0:b),d.$render())},a.enter=function(b){a.readonly||(a.value=b),a.onHover({value:b})},a.reset=function(){a.value=d.$viewValue,a.onLeave()},a.onKeydown=function(b){/(37|38|39|40)/.test(b.which)&&(b.preventDefault(),b.stopPropagation(),a.rate(a.value+(38===b.which||39===b.which?1:-1)))},this.render=function(){a.value=d.$viewValue}}]).directive("uibRating",function(){return{require:["uibRating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"UibRatingController",templateUrl:"uib/template/rating/rating.html",replace:!0,link:function(a,b,c,d){var e=d[0],f=d[1];e.init(f)}}}),angular.module("ui.bootstrap.tabs",[]).controller("UibTabsetController",["$scope",function(a){var b=this,c=b.tabs=a.tabs=[];b.select=function(a){angular.forEach(c,function(b){b.active&&b!==a&&(b.active=!1,b.onDeselect(),a.selectCalled=!1)}),a.active=!0,a.selectCalled||(a.onSelect(),a.selectCalled=!0)},b.addTab=function(a){c.push(a),1===c.length&&a.active!==!1?a.active=!0:a.active?b.select(a):a.active=!1},b.removeTab=function(a){var e=c.indexOf(a);if(a.active&&c.length>1&&!d){var f=e===c.length-1?e-1:e+1;b.select(c[f])}c.splice(e,1)};var d;a.$on("$destroy",function(){d=!0})}]).directive("uibTabset",function(){return{transclude:!0,replace:!0,scope:{type:"@"},controller:"UibTabsetController",templateUrl:"uib/template/tabs/tabset.html",link:function(a,b,c){a.vertical=angular.isDefined(c.vertical)?a.$parent.$eval(c.vertical):!1,a.justified=angular.isDefined(c.justified)?a.$parent.$eval(c.justified):!1}}}).directive("uibTab",["$parse",function(a){return{require:"^uibTabset",replace:!0,templateUrl:"uib/template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},controllerAs:"tab",link:function(b,c,d,e,f){b.$watch("active",function(a){a&&e.select(b)}),b.disabled=!1,d.disable&&b.$parent.$watch(a(d.disable),function(a){b.disabled=!!a}),b.select=function(){b.disabled||(b.active=!0)},e.addTab(b),b.$on("$destroy",function(){e.removeTab(b)}),b.$transcludeFn=f}}}]).directive("uibTabHeadingTransclude",function(){return{restrict:"A",require:"^uibTab",link:function(a,b){a.$watch("headingElement",function(a){a&&(b.html(""),b.append(a))})}}}).directive("uibTabContentTransclude",function(){function a(a){return a.tagName&&(a.hasAttribute("uib-tab-heading")||a.hasAttribute("data-uib-tab-heading")||a.hasAttribute("x-uib-tab-heading")||"uib-tab-heading"===a.tagName.toLowerCase()||"data-uib-tab-heading"===a.tagName.toLowerCase()||"x-uib-tab-heading"===a.tagName.toLowerCase())}return{restrict:"A",require:"^uibTabset",link:function(b,c,d){var e=b.$eval(d.uibTabContentTransclude);e.$transcludeFn(e.$parent,function(b){angular.forEach(b,function(b){a(b)?e.headingElement=b:c.append(b)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("uibTimepickerConfig",{hourStep:1,minuteStep:1,secondStep:1,showMeridian:!0,showSeconds:!1,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0,templateUrl:"uib/template/timepicker/timepicker.html"}).controller("UibTimepickerController",["$scope","$element","$attrs","$parse","$log","$locale","uibTimepickerConfig",function(a,b,c,d,e,f,g){function h(){var b=+a.hours,c=a.showMeridian?b>0&&13>b:b>=0&&24>b;return c?(a.showMeridian&&(12===b&&(b=0),a.meridian===t[1]&&(b+=12)),b):void 0}function i(){var b=+a.minutes;return b>=0&&60>b?b:void 0}function j(){var b=+a.seconds;return b>=0&&60>b?b:void 0}function k(a){return null===a?"":angular.isDefined(a)&&a.toString().length<2?"0"+a:a.toString()}function l(a){m(),s.$setViewValue(new Date(r)),n(a)}function m(){s.$setValidity("time",!0),a.invalidHours=!1,a.invalidMinutes=!1,a.invalidSeconds=!1}function n(b){if(s.$modelValue){var c=r.getHours(),d=r.getMinutes(),e=r.getSeconds();a.showMeridian&&(c=0===c||12===c?12:c%12),a.hours="h"===b?c:k(c),"m"!==b&&(a.minutes=k(d)),a.meridian=r.getHours()<12?t[0]:t[1],"s"!==b&&(a.seconds=k(e)),a.meridian=r.getHours()<12?t[0]:t[1]}else a.hours=null,a.minutes=null,a.seconds=null,a.meridian=t[0]}function o(a){r=q(r,a),l()}function p(a,b){return q(a,60*b)}function q(a,b){var c=new Date(a.getTime()+1e3*b),d=new Date(a);return d.setHours(c.getHours(),c.getMinutes(),c.getSeconds()),d}var r=new Date,s={$setViewValue:angular.noop},t=angular.isDefined(c.meridians)?a.$parent.$eval(c.meridians):g.meridians||f.DATETIME_FORMATS.AMPMS;a.tabindex=angular.isDefined(c.tabindex)?c.tabindex:0,b.removeAttr("tabindex"),this.init=function(b,d){s=b,s.$render=this.render,s.$formatters.unshift(function(a){return a?new Date(a):null});var e=d.eq(0),f=d.eq(1),h=d.eq(2),i=angular.isDefined(c.mousewheel)?a.$parent.$eval(c.mousewheel):g.mousewheel;i&&this.setupMousewheelEvents(e,f,h);var j=angular.isDefined(c.arrowkeys)?a.$parent.$eval(c.arrowkeys):g.arrowkeys;j&&this.setupArrowkeyEvents(e,f,h),a.readonlyInput=angular.isDefined(c.readonlyInput)?a.$parent.$eval(c.readonlyInput):g.readonlyInput,this.setupInputEvents(e,f,h)};var u=g.hourStep;c.hourStep&&a.$parent.$watch(d(c.hourStep),function(a){u=+a});var v=g.minuteStep;c.minuteStep&&a.$parent.$watch(d(c.minuteStep),function(a){v=+a});var w;a.$parent.$watch(d(c.min),function(a){var b=new Date(a);w=isNaN(b)?void 0:b});var x;a.$parent.$watch(d(c.max),function(a){var b=new Date(a);x=isNaN(b)?void 0:b});var y=!1;c.ngDisabled&&a.$parent.$watch(d(c.ngDisabled),function(a){y=a}),a.noIncrementHours=function(){var a=p(r,60*u);return y||a>x||r>a&&w>a},a.noDecrementHours=function(){var a=p(r,60*-u);return y||w>a||a>r&&a>x},a.noIncrementMinutes=function(){var a=p(r,v);return y||a>x||r>a&&w>a},a.noDecrementMinutes=function(){var a=p(r,-v);return y||w>a||a>r&&a>x},a.noIncrementSeconds=function(){var a=q(r,z);return y||a>x||r>a&&w>a},a.noDecrementSeconds=function(){var a=q(r,-z);return y||w>a||a>r&&a>x},a.noToggleMeridian=function(){return r.getHours()<12?y||p(r,720)>x:y||p(r,-720)<w};var z=g.secondStep;c.secondStep&&a.$parent.$watch(d(c.secondStep),function(a){z=+a}),a.showSeconds=g.showSeconds,c.showSeconds&&a.$parent.$watch(d(c.showSeconds),function(b){a.showSeconds=!!b}),a.showMeridian=g.showMeridian,c.showMeridian&&a.$parent.$watch(d(c.showMeridian),function(b){if(a.showMeridian=!!b,s.$error.time){var c=h(),d=i();angular.isDefined(c)&&angular.isDefined(d)&&(r.setHours(c),l())}else n()}),this.setupMousewheelEvents=function(b,c,d){var e=function(a){a.originalEvent&&(a=a.originalEvent);var b=a.wheelDelta?a.wheelDelta:-a.deltaY;return a.detail||b>0};b.bind("mousewheel wheel",function(b){y||a.$apply(e(b)?a.incrementHours():a.decrementHours()),b.preventDefault()}),c.bind("mousewheel wheel",function(b){y||a.$apply(e(b)?a.incrementMinutes():a.decrementMinutes()),b.preventDefault()}),d.bind("mousewheel wheel",function(b){y||a.$apply(e(b)?a.incrementSeconds():a.decrementSeconds()),b.preventDefault()})},this.setupArrowkeyEvents=function(b,c,d){b.bind("keydown",function(b){y||(38===b.which?(b.preventDefault(),a.incrementHours(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementHours(),a.$apply()))}),c.bind("keydown",function(b){y||(38===b.which?(b.preventDefault(),a.incrementMinutes(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementMinutes(),a.$apply()))}),d.bind("keydown",function(b){y||(38===b.which?(b.preventDefault(),a.incrementSeconds(),a.$apply()):40===b.which&&(b.preventDefault(),a.decrementSeconds(),a.$apply()))})},this.setupInputEvents=function(b,c,d){if(a.readonlyInput)return a.updateHours=angular.noop,a.updateMinutes=angular.noop,void(a.updateSeconds=angular.noop);var e=function(b,c,d){s.$setViewValue(null),s.$setValidity("time",!1),angular.isDefined(b)&&(a.invalidHours=b),angular.isDefined(c)&&(a.invalidMinutes=c),angular.isDefined(d)&&(a.invalidSeconds=d)};a.updateHours=function(){var a=h(),b=i();s.$setDirty(),angular.isDefined(a)&&angular.isDefined(b)?(r.setHours(a),r.setMinutes(b),w>r||r>x?e(!0):l("h")):e(!0)},b.bind("blur",function(b){s.$setTouched(),null===a.hours||""===a.hours?e(!0):!a.invalidHours&&a.hours<10&&a.$apply(function(){a.hours=k(a.hours)})}),a.updateMinutes=function(){var a=i(),b=h();s.$setDirty(),angular.isDefined(a)&&angular.isDefined(b)?(r.setHours(b),r.setMinutes(a),w>r||r>x?e(void 0,!0):l("m")):e(void 0,!0)},c.bind("blur",function(b){s.$setTouched(),null===a.minutes?e(void 0,!0):!a.invalidMinutes&&a.minutes<10&&a.$apply(function(){a.minutes=k(a.minutes)})}),a.updateSeconds=function(){var a=j();s.$setDirty(),angular.isDefined(a)?(r.setSeconds(a),l("s")):e(void 0,void 0,!0)},d.bind("blur",function(b){!a.invalidSeconds&&a.seconds<10&&a.$apply(function(){a.seconds=k(a.seconds)})})},this.render=function(){var b=s.$viewValue;isNaN(b)?(s.$setValidity("time",!1),e.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(b&&(r=b),w>r||r>x?(s.$setValidity("time",!1),a.invalidHours=!0,a.invalidMinutes=!0):m(),n())},a.showSpinners=angular.isDefined(c.showSpinners)?a.$parent.$eval(c.showSpinners):g.showSpinners,a.incrementHours=function(){a.noIncrementHours()||o(60*u*60)},a.decrementHours=function(){a.noDecrementHours()||o(60*-u*60)},a.incrementMinutes=function(){a.noIncrementMinutes()||o(60*v)},a.decrementMinutes=function(){a.noDecrementMinutes()||o(60*-v)},a.incrementSeconds=function(){a.noIncrementSeconds()||o(z)},a.decrementSeconds=function(){a.noDecrementSeconds()||o(-z)},a.toggleMeridian=function(){var b=i(),c=h();a.noToggleMeridian()||(angular.isDefined(b)&&angular.isDefined(c)?o(720*(r.getHours()<12?60:-60)):a.meridian=a.meridian===t[0]?t[1]:t[0])},a.blur=function(){s.$setTouched()}}]).directive("uibTimepicker",["uibTimepickerConfig",function(a){return{require:["uibTimepicker","?^ngModel"],controller:"UibTimepickerController",controllerAs:"timepicker",replace:!0,scope:{},templateUrl:function(b,c){return c.templateUrl||a.templateUrl},link:function(a,b,c,d){var e=d[0],f=d[1];f&&e.init(f,b.find("input"))}}}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.debounce","ui.bootstrap.position"]).factory("uibTypeaheadParser",["$parse",function(a){var b=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(c){var d=c.match(b);if(!d)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+c+'".');return{itemName:d[3],source:a(d[4]),viewMapper:a(d[2]||d[1]),modelMapper:a(d[1])}}}}]).controller("UibTypeaheadController",["$scope","$element","$attrs","$compile","$parse","$q","$timeout","$document","$window","$rootScope","$$debounce","$uibPosition","uibTypeaheadParser",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){N.moveInProgress||(N.moveInProgress=!0,N.$digest()),Y()}function o(){N.position=D?l.offset(b):l.position(b),N.position.top+=b.prop("offsetHeight")}var p,q,r=[9,13,27,38,40],s=200,t=a.$eval(c.typeaheadMinLength);t||0===t||(t=1);var u=a.$eval(c.typeaheadWaitMs)||0,v=a.$eval(c.typeaheadEditable)!==!1;a.$watch(c.typeaheadEditable,function(a){v=a!==!1});var w,x,y=e(c.typeaheadLoading).assign||angular.noop,z=e(c.typeaheadOnSelect),A=angular.isDefined(c.typeaheadSelectOnBlur)?a.$eval(c.typeaheadSelectOnBlur):!1,B=e(c.typeaheadNoResults).assign||angular.noop,C=c.typeaheadInputFormatter?e(c.typeaheadInputFormatter):void 0,D=c.typeaheadAppendToBody?a.$eval(c.typeaheadAppendToBody):!1,E=c.typeaheadAppendTo?a.$eval(c.typeaheadAppendTo):null,F=a.$eval(c.typeaheadFocusFirst)!==!1,G=c.typeaheadSelectOnExact?a.$eval(c.typeaheadSelectOnExact):!1,H=e(c.typeaheadIsOpen).assign||angular.noop,I=a.$eval(c.typeaheadShowHint)||!1,J=e(c.ngModel),K=e(c.ngModel+"($$$p)"),L=function(b,c){return angular.isFunction(J(a))&&q&&q.$options&&q.$options.getterSetter?K(b,{$$$p:c}):J.assign(b,c)},M=m.parse(c.uibTypeahead),N=a.$new(),O=a.$on("$destroy",function(){N.$destroy()});N.$on("$destroy",O);var P="typeahead-"+N.$id+"-"+Math.floor(1e4*Math.random());b.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":P});var Q,R;I&&(Q=angular.element("<div></div>"),Q.css("position","relative"),b.after(Q),R=b.clone(),R.attr("placeholder",""),R.val(""),R.css({position:"absolute",top:"0px",left:"0px","border-color":"transparent","box-shadow":"none",opacity:1,background:"none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255)",color:"#999"}),b.css({position:"relative","vertical-align":"top","background-color":"transparent"}),Q.append(R),R.after(b));var S=angular.element("<div uib-typeahead-popup></div>");S.attr({id:P,matches:"matches",active:"activeIdx",select:"select(activeIdx, evt)","move-in-progress":"moveInProgress",query:"query",position:"position","assign-is-open":"assignIsOpen(isOpen)",debounce:"debounceUpdate"}),angular.isDefined(c.typeaheadTemplateUrl)&&S.attr("template-url",c.typeaheadTemplateUrl),angular.isDefined(c.typeaheadPopupTemplateUrl)&&S.attr("popup-template-url",c.typeaheadPopupTemplateUrl);var T=function(){I&&R.val("")},U=function(){N.matches=[],N.activeIdx=-1,b.attr("aria-expanded",!1),T()},V=function(a){return P+"-option-"+a};N.$watch("activeIdx",function(a){0>a?b.removeAttr("aria-activedescendant"):b.attr("aria-activedescendant",V(a))});var W=function(a,b){return N.matches.length>b&&a?a.toUpperCase()===N.matches[b].label.toUpperCase():!1},X=function(c,d){var e={$viewValue:c};y(a,!0),B(a,!1),f.when(M.source(a,e)).then(function(f){var g=c===p.$viewValue;if(g&&w)if(f&&f.length>0){N.activeIdx=F?0:-1,B(a,!1),N.matches.length=0;for(var h=0;h<f.length;h++)e[M.itemName]=f[h],N.matches.push({id:V(h),label:M.viewMapper(N,e),model:f[h]});if(N.query=c,o(),b.attr("aria-expanded",!0),G&&1===N.matches.length&&W(c,0)&&(angular.isNumber(N.debounceUpdate)||angular.isObject(N.debounceUpdate)?k(function(){N.select(0,d)},angular.isNumber(N.debounceUpdate)?N.debounceUpdate:N.debounceUpdate["default"]):N.select(0,d)),I){var i=N.matches[0].label;c.length>0&&i.slice(0,c.length).toUpperCase()===c.toUpperCase()?R.val(c+i.slice(c.length)):R.val("")}}else U(),B(a,!0);g&&y(a,!1)},function(){U(),y(a,!1),B(a,!0)})};D&&(angular.element(i).on("resize",n),h.find("body").on("scroll",n));var Y=k(function(){N.matches.length&&o(),N.moveInProgress=!1},s);N.moveInProgress=!1,N.query=void 0;var Z,$=function(a){Z=g(function(){X(a)},u)},_=function(){Z&&g.cancel(Z)};U(),N.assignIsOpen=function(b){H(a,b)},N.select=function(d,e){var f,h,i={};x=!0,i[M.itemName]=h=N.matches[d].model,f=M.modelMapper(a,i),L(a,f),p.$setValidity("editable",!0),p.$setValidity("parse",!0),z(a,{$item:h,$model:f,$label:M.viewMapper(a,i),$event:e}),U(),N.$eval(c.typeaheadFocusOnSelect)!==!1&&g(function(){b[0].focus()},0,!1)},b.on("keydown",function(a){if(0!==N.matches.length&&-1!==r.indexOf(a.which)){if(-1===N.activeIdx&&(9===a.which||13===a.which))return U(),void N.$digest();a.preventDefault();var b;switch(a.which){case 9:case 13:N.$apply(function(){angular.isNumber(N.debounceUpdate)||angular.isObject(N.debounceUpdate)?k(function(){N.select(N.activeIdx,a)},angular.isNumber(N.debounceUpdate)?N.debounceUpdate:N.debounceUpdate["default"]):N.select(N.activeIdx,a)});break;case 27:a.stopPropagation(),U(),N.$digest();break;case 38:N.activeIdx=(N.activeIdx>0?N.activeIdx:N.matches.length)-1,N.$digest(),b=S.find("li")[N.activeIdx],b.parentNode.scrollTop=b.offsetTop;break;case 40:N.activeIdx=(N.activeIdx+1)%N.matches.length,N.$digest(),b=S.find("li")[N.activeIdx],b.parentNode.scrollTop=b.offsetTop}}}),b.bind("focus",function(a){w=!0,0!==t||p.$viewValue||g(function(){X(p.$viewValue,a)},0)}),b.bind("blur",function(a){A&&N.matches.length&&-1!==N.activeIdx&&!x&&(x=!0,N.$apply(function(){angular.isObject(N.debounceUpdate)&&angular.isNumber(N.debounceUpdate.blur)?k(function(){N.select(N.activeIdx,a)},N.debounceUpdate.blur):N.select(N.activeIdx,a)})),!v&&p.$error.editable&&(p.$viewValue="",b.val("")),w=!1,x=!1});var aa=function(a){b[0]!==a.target&&3!==a.which&&0!==N.matches.length&&(U(),j.$$phase||N.$digest())};h.on("click",aa),a.$on("$destroy",function(){h.off("click",aa),(D||E)&&ba.remove(),D&&(angular.element(i).off("resize",n),h.find("body").off("scroll",n)),S.remove(),I&&Q.remove()});var ba=d(S)(N);D?h.find("body").append(ba):E?angular.element(E).eq(0).append(ba):b.after(ba),this.init=function(b,c){p=b,q=c,N.debounceUpdate=p.$options&&e(p.$options.debounce)(a),p.$parsers.unshift(function(b){return w=!0,0===t||b&&b.length>=t?u>0?(_(),$(b)):X(b):(y(a,!1),_(),U()),v?b:b?void p.$setValidity("editable",!1):(p.$setValidity("editable",!0),null)}),p.$formatters.push(function(b){var c,d,e={};return v||p.$setValidity("editable",!0),C?(e.$model=b,C(a,e)):(e[M.itemName]=b,c=M.viewMapper(a,e),e[M.itemName]=void 0,d=M.viewMapper(a,e),c!==d?c:b)})}}]).directive("uibTypeahead",function(){return{controller:"UibTypeaheadController",require:["ngModel","^?ngModelOptions","uibTypeahead"],link:function(a,b,c,d){d[2].init(d[0],d[1])}}}).directive("uibTypeaheadPopup",["$$debounce",function(a){return{scope:{matches:"=",query:"=",active:"=",position:"&",moveInProgress:"=",select:"&",assignIsOpen:"&",debounce:"&"},replace:!0,templateUrl:function(a,b){return b.popupTemplateUrl||"uib/template/typeahead/typeahead-popup.html"},link:function(b,c,d){b.templateUrl=d.templateUrl,b.isOpen=function(){var a=b.matches.length>0;return b.assignIsOpen({isOpen:a}),a},b.isActive=function(a){return b.active===a},b.selectActive=function(a){b.active=a},b.selectMatch=function(c,d){var e=b.debounce();angular.isNumber(e)||angular.isObject(e)?a(function(){b.select({activeIdx:c,evt:d})},angular.isNumber(e)?e:e["default"]):b.select({activeIdx:c,evt:d})}}}}]).directive("uibTypeaheadMatch",["$templateRequest","$compile","$parse",function(a,b,c){return{scope:{index:"=",match:"=",query:"="},link:function(d,e,f){var g=c(f.templateUrl)(d.$parent)||"uib/template/typeahead/typeahead-match.html";a(g).then(function(a){var c=angular.element(a.trim());e.replaceWith(c),b(c)(d)})}}}]).filter("uibTypeaheadHighlight",["$sce","$injector","$log",function(a,b,c){function d(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function e(a){return/<.*>/g.test(a)}var f;return f=b.has("$sanitize"),function(b,g){return!f&&e(b)&&c.warn("Unsafe use of typeahead please use ngSanitize"),b=g?(""+b).replace(new RegExp(d(g),"gi"),"<strong>$&</strong>"):b,f||(b=a.trustAsHtml(b)),b}}]),angular.module("uib/template/accordion/accordion-group.html",[]).run(["$templateCache",function(a){a.put("uib/template/accordion/accordion-group.html",'<div class="panel" ng-class="panelClass || \'panel-default\'">\n  <div class="panel-heading" ng-keypress="toggleOpen($event)">\n    <h4 class="panel-title">\n      <div tabindex="0" class="accordion-toggle" ng-click="toggleOpen()" uib-accordion-transclude="heading"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></div>\n    </h4>\n  </div>\n  <div class="panel-collapse collapse" uib-collapse="!isOpen">\n   <div class="panel-body" ng-transclude></div>\n  </div>\n</div>\n');
+}]),angular.module("uib/template/accordion/accordion.html",[]).run(["$templateCache",function(a){a.put("uib/template/accordion/accordion.html",'<div class="panel-group" ng-transclude></div>')}]),angular.module("uib/template/alert/alert.html",[]).run(["$templateCache",function(a){a.put("uib/template/alert/alert.html",'<div class="alert" ng-class="[\'alert-\' + (type || \'warning\'), closeable ? \'alert-dismissible\' : null]" role="alert">\n    <button ng-show="closeable" type="button" class="close" ng-click="close({$event: $event})">\n        <span aria-hidden="true">&times;</span>\n        <span class="sr-only">Close</span>\n    </button>\n    <div ng-transclude></div>\n</div>\n')}]),angular.module("uib/template/carousel/carousel.html",[]).run(["$templateCache",function(a){a.put("uib/template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n  <div class="carousel-inner" ng-transclude></div>\n  <a role="button" href class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1">\n    <span aria-hidden="true" class="glyphicon glyphicon-chevron-left"></span>\n    <span class="sr-only">previous</span>\n  </a>\n  <a role="button" href class="right carousel-control" ng-click="next()" ng-show="slides.length > 1">\n    <span aria-hidden="true" class="glyphicon glyphicon-chevron-right"></span>\n    <span class="sr-only">next</span>\n  </a>\n  <ol class="carousel-indicators" ng-show="slides.length > 1">\n    <li ng-repeat="slide in slides | orderBy:indexOfSlide track by $index" ng-class="{ active: isActive(slide) }" ng-click="select(slide)">\n      <span class="sr-only">slide {{ $index + 1 }} of {{ slides.length }}<span ng-if="isActive(slide)">, currently active</span></span>\n    </li>\n  </ol>\n</div>')}]),angular.module("uib/template/carousel/slide.html",[]).run(["$templateCache",function(a){a.put("uib/template/carousel/slide.html",'<div ng-class="{\n    \'active\': active\n  }" class="item text-center" ng-transclude></div>\n')}]),angular.module("uib/template/datepicker/datepicker.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/datepicker.html",'<div class="uib-datepicker" ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n  <uib-daypicker ng-switch-when="day" tabindex="0"></uib-daypicker>\n  <uib-monthpicker ng-switch-when="month" tabindex="0"></uib-monthpicker>\n  <uib-yearpicker ng-switch-when="year" tabindex="0"></uib-yearpicker>\n</div>')}]),angular.module("uib/template/datepicker/day.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/day.html",'<table class="uib-daypicker" role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th colspan="{{::5 + showWeeks}}"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n    <tr>\n      <th ng-if="showWeeks" class="text-center"></th>\n      <th ng-repeat="label in ::labels track by $index" class="text-center"><small aria-label="{{::label.full}}">{{::label.abbr}}</small></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr class="uib-weeks" ng-repeat="row in rows track by $index">\n      <td ng-if="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>\n      <td ng-repeat="dt in row" class="uib-day text-center" role="gridcell"\n        id="{{::dt.uid}}"\n        ng-class="::dt.customClass">\n        <button type="button" style="min-width:100%;" class="btn btn-default btn-sm"\n          uib-is-class="\n            \'btn-info\' for selectedDt,\n            \'active\' for activeDt\n            on dt"\n          ng-click="select(dt.date)"\n          ng-disabled="::dt.disabled"\n          tabindex="-1"><span ng-class="::{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{::dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("uib/template/datepicker/month.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/month.html",'<table class="uib-monthpicker" role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr class="uib-months" ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row" class="uib-month text-center" role="gridcell"\n        id="{{::dt.uid}}"\n        ng-class="::dt.customClass">\n        <button type="button" style="min-width:100%;" class="btn btn-default"\n          uib-is-class="\n            \'btn-info\' for selectedDt,\n            \'active\' for activeDt\n            on dt"\n          ng-click="select(dt.date)"\n          ng-disabled="::dt.disabled"\n          tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("uib/template/datepicker/popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/popup.html",'<ul class="uib-datepicker-popup dropdown-menu" dropdown-nested ng-if="isOpen" style="display: block" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)" ng-click="$event.stopPropagation()">\n     <li ng-transclude></li>\n       <li ng-if="showButtonBar" style="padding:10px 9px 2px" class="uib-button-bar">\n                <span class="btn-group pull-left">\n                    <button type="button" class="btn btn-sm btn-info uib-datepicker-current" ng-click="select(\'today\')" ng-disabled="isDisabled(\'today\')">{{ getText(\'current\') }}</button>\n                 <button type="button" class="btn btn-sm btn-danger uib-clear" ng-click="select(null)">{{ getText(\'clear\') }}</button>\n               </span>\n               <button type="button" class="btn btn-sm btn-success pull-right uib-close" ng-click="close()">{{ getText(\'close\') }}</button>\n        </li>\n</ul>\n')}]),angular.module("uib/template/datepicker/year.html",[]).run(["$templateCache",function(a){a.put("uib/template/datepicker/year.html",'<table class="uib-yearpicker" role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th colspan="{{::columns - 2}}"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr class="uib-years" ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row" class="uib-year text-center" role="gridcell"\n        id="{{::dt.uid}}"\n        ng-class="::dt.customClass">\n        <button type="button" style="min-width:100%;" class="btn btn-default"\n          uib-is-class="\n            \'btn-info\' for selectedDt,\n            \'active\' for activeDt\n            on dt"\n          ng-click="select(dt.date)"\n          ng-disabled="::dt.disabled"\n          tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("uib/template/modal/backdrop.html",[]).run(["$templateCache",function(a){a.put("uib/template/modal/backdrop.html",'<div class="modal-backdrop"\n     uib-modal-animation-class="fade"\n     modal-in-class="in"\n     ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n')}]),angular.module("uib/template/modal/window.html",[]).run(["$templateCache",function(a){a.put("uib/template/modal/window.html",'<div modal-render="{{$isRendered}}" tabindex="-1" role="dialog" class="modal"\n    uib-modal-animation-class="fade"\n    modal-in-class="in"\n    ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}">\n    <div class="modal-dialog" ng-class="size ? \'modal-\' + size : \'\'"><div class="modal-content" uib-modal-transclude></div></div>\n</div>\n')}]),angular.module("uib/template/pager/pager.html",[]).run(["$templateCache",function(a){a.put("uib/template/pager/pager.html",'<ul class="pager">\n  <li ng-class="{disabled: noPrevious()||ngDisabled, previous: align}"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n  <li ng-class="{disabled: noNext()||ngDisabled, next: align}"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n</ul>\n')}]),angular.module("uib/template/pagination/pagination.html",[]).run(["$templateCache",function(a){a.put("uib/template/pagination/pagination.html",'<ul class="pagination">\n  <li ng-if="::boundaryLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-first"><a href ng-click="selectPage(1, $event)">{{::getText(\'first\')}}</a></li>\n  <li ng-if="::directionLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-prev"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n  <li ng-repeat="page in pages track by $index" ng-class="{active: page.active,disabled: ngDisabled&&!page.active}" class="pagination-page"><a href ng-click="selectPage(page.number, $event)">{{page.text}}</a></li>\n  <li ng-if="::directionLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-next"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n  <li ng-if="::boundaryLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-last"><a href ng-click="selectPage(totalPages, $event)">{{::getText(\'last\')}}</a></li>\n</ul>\n')}]),angular.module("uib/template/tooltip/tooltip-html-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/tooltip/tooltip-html-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" ng-bind-html="contentExp()"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(a){a.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" bind-html-unsafe="content"></div>\n</div>\n')}]),angular.module("uib/template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/tooltip/tooltip-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]),angular.module("uib/template/tooltip/tooltip-template-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/tooltip/tooltip-template-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner"\n    uib-tooltip-template-transclude="contentExp()"\n    tooltip-template-transclude-scope="originScope()"></div>\n</div>\n')}]),angular.module("uib/template/popover/popover-html.html",[]).run(["$templateCache",function(a){a.put("uib/template/popover/popover-html.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n      <div class="popover-content" ng-bind-html="contentExp()"></div>\n  </div>\n</div>\n')}]),angular.module("uib/template/popover/popover-template.html",[]).run(["$templateCache",function(a){a.put("uib/template/popover/popover-template.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n      <div class="popover-content"\n        uib-tooltip-template-transclude="contentExp()"\n        tooltip-template-transclude-scope="originScope()"></div>\n  </div>\n</div>\n')}]),angular.module("uib/template/popover/popover.html",[]).run(["$templateCache",function(a){a.put("uib/template/popover/popover.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n      <div class="popover-content" ng-bind="content"></div>\n  </div>\n</div>\n')}]),angular.module("uib/template/progressbar/bar.html",[]).run(["$templateCache",function(a){a.put("uib/template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" aria-labelledby="{{::title}}" ng-transclude></div>\n')}]),angular.module("uib/template/progressbar/progress.html",[]).run(["$templateCache",function(a){a.put("uib/template/progressbar/progress.html",'<div class="progress" ng-transclude aria-labelledby="{{::title}}"></div>')}]),angular.module("uib/template/progressbar/progressbar.html",[]).run(["$templateCache",function(a){a.put("uib/template/progressbar/progressbar.html",'<div class="progress">\n  <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" aria-labelledby="{{::title}}" ng-transclude></div>\n</div>\n')}]),angular.module("uib/template/rating/rating.html",[]).run(["$templateCache",function(a){a.put("uib/template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}">\n    <span ng-repeat-start="r in range track by $index" class="sr-only">({{ $index < value ? \'*\' : \' \' }})</span>\n    <i ng-repeat-end ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')" ng-attr-title="{{r.title}}" aria-valuetext="{{r.title}}"></i>\n</span>\n')}]),angular.module("uib/template/tabs/tab.html",[]).run(["$templateCache",function(a){a.put("uib/template/tabs/tab.html",'<li ng-class="{active: active, disabled: disabled}" class="uib-tab">\n  <div ng-click="select()" uib-tab-heading-transclude>{{heading}}</div>\n</li>\n')}]),angular.module("uib/template/tabs/tabset.html",[]).run(["$templateCache",function(a){a.put("uib/template/tabs/tabset.html",'<div>\n  <ul class="nav nav-{{type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude></ul>\n  <div class="tab-content">\n    <div class="tab-pane" \n         ng-repeat="tab in tabs" \n         ng-class="{active: tab.active}"\n         uib-tab-content-transclude="tab">\n    </div>\n  </div>\n</div>\n')}]),angular.module("uib/template/timepicker/timepicker.html",[]).run(["$templateCache",function(a){a.put("uib/template/timepicker/timepicker.html",'<table class="uib-timepicker">\n  <tbody>\n    <tr class="text-center" ng-show="::showSpinners">\n      <td class="uib-increment hours"><a ng-click="incrementHours()" ng-class="{disabled: noIncrementHours()}" class="btn btn-link" ng-disabled="noIncrementHours()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n      <td>&nbsp;</td>\n      <td class="uib-increment minutes"><a ng-click="incrementMinutes()" ng-class="{disabled: noIncrementMinutes()}" class="btn btn-link" ng-disabled="noIncrementMinutes()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n      <td ng-show="showSeconds">&nbsp;</td>\n      <td ng-show="showSeconds" class="uib-increment seconds"><a ng-click="incrementSeconds()" ng-class="{disabled: noIncrementSeconds()}" class="btn btn-link" ng-disabled="noIncrementSeconds()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n      <td ng-show="showMeridian"></td>\n    </tr>\n    <tr>\n      <td class="form-group uib-time hours" ng-class="{\'has-error\': invalidHours}">\n        <input style="width:50px;" type="text" placeholder="HH" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementHours()" ng-blur="blur()">\n      </td>\n      <td class="uib-separator">:</td>\n      <td class="form-group uib-time minutes" ng-class="{\'has-error\': invalidMinutes}">\n        <input style="width:50px;" type="text" placeholder="MM" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementMinutes()" ng-blur="blur()">\n      </td>\n      <td ng-show="showSeconds" class="uib-separator">:</td>\n      <td class="form-group uib-time seconds" ng-class="{\'has-error\': invalidSeconds}" ng-show="showSeconds">\n        <input style="width:50px;" type="text" ng-model="seconds" ng-change="updateSeconds()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementSeconds()" ng-blur="blur()">\n      </td>\n      <td ng-show="showMeridian" class="uib-time am-pm"><button type="button" ng-class="{disabled: noToggleMeridian()}" class="btn btn-default text-center" ng-click="toggleMeridian()" ng-disabled="noToggleMeridian()" tabindex="{{::tabindex}}">{{meridian}}</button></td>\n    </tr>\n    <tr class="text-center" ng-show="::showSpinners">\n      <td class="uib-decrement hours"><a ng-click="decrementHours()" ng-class="{disabled: noDecrementHours()}" class="btn btn-link" ng-disabled="noDecrementHours()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n      <td>&nbsp;</td>\n      <td class="uib-decrement minutes"><a ng-click="decrementMinutes()" ng-class="{disabled: noDecrementMinutes()}" class="btn btn-link" ng-disabled="noDecrementMinutes()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n      <td ng-show="showSeconds">&nbsp;</td>\n      <td ng-show="showSeconds" class="uib-decrement seconds"><a ng-click="decrementSeconds()" ng-class="{disabled: noDecrementSeconds()}" class="btn btn-link" ng-disabled="noDecrementSeconds()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n      <td ng-show="showMeridian"></td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("uib/template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(a){a.put("uib/template/typeahead/typeahead-match.html",'<a href tabindex="-1" ng-bind-html="match.label | uibTypeaheadHighlight:query"></a>\n')}]),angular.module("uib/template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(a){a.put("uib/template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-show="isOpen() && !moveInProgress" ng-style="{top: position().top+\'px\', left: position().left+\'px\'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">\n    <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index, $event)" role="option" id="{{::match.id}}">\n        <div uib-typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>\n    </li>\n</ul>\n')}]),angular.module("ui.bootstrap.carousel").run(function(){!angular.$$csp().noInlineStyle&&angular.element(document).find("head").prepend('<style type="text/css">.ng-animate.item:not(.left):not(.right){-webkit-transition:0s ease-in-out left;transition:0s ease-in-out left}</style>')}),angular.module("ui.bootstrap.tabs").run(function(){!angular.$$csp().noInlineStyle&&angular.element(document).find("head").prepend('<style type="text/css">.uib-tab > div{position:relative;display:block;padding:10px 15px;outline:0;color:#337ab7;}.uib-tab > div:focus,.uib-tab > div:hover{background-color:#eee;color:#23527c;}.uib-tab.disabled > div{color:#777;}.uib-tab.disabled > div:focus,.uib-tab.disabled > div:hover{color:#777;cursor:not-allowed;background-color:transparent;}.nav-tabs > .uib-tab > div{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0;}.nav-tabs > .uib-tab > div:hover{border-color:#eee #eee #ddd;}.nav-tabs > .uib-tab.active > div,.nav-tabs > .uib-tab.active > div:focus,.nav-tabs > .uib-tab.active > div:hover{color:#555;cursor:default;background-color:#fff;border-color:#ddd #ddd transparent #ddd;}.nav-pills > .uib-tab > div{border-radius:4px;}.nav-pills > .uib-tab.active > div,.nav-pills > .uib-tab.active > div:focus,.nav-pills > .uib-tab.active > div:hover{color:#fff;background-color:#337ab7;}</style>')}),function(a){"use strict";"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a():"undefined"!=typeof Package?Sortable=a():window.Sortable=a()}(function(){"use strict";function a(a,b){if(!a||!a.nodeType||1!==a.nodeType)throw"Sortable: `el` must be HTMLElement, and not "+{}.toString.call(a);this.el=a,this.options=b=r({},b),a[L]=this;var c={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(a.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",ignore:"a, img",filter:null,animation:0,setData:function(a,b){a.setData("Text",b.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1};for(var d in c)!(d in b)&&(b[d]=c[d]);V(b);for(var f in this)"_"===f.charAt(0)&&(this[f]=this[f].bind(this));this.nativeDraggable=b.forceFallback?!1:P,e(a,"mousedown",this._onTapStart),e(a,"touchstart",this._onTapStart),this.nativeDraggable&&(e(a,"dragover",this),e(a,"dragenter",this)),T.push(this._onDragOver),b.store&&this.sort(b.store.get(this))}function b(a){v&&v.state!==a&&(h(v,"display",a?"none":""),!a&&v.state&&w.insertBefore(v,s),v.state=a)}function c(a,b,c){if(a){c=c||N,b=b.split(".");var d=b.shift().toUpperCase(),e=new RegExp("\\s("+b.join("|")+")(?=\\s)","g");do if(">*"===d&&a.parentNode===c||(""===d||a.nodeName.toUpperCase()==d)&&(!b.length||((" "+a.className+" ").match(e)||[]).length==b.length))return a;while(a!==c&&(a=a.parentNode))}return null}function d(a){a.dataTransfer&&(a.dataTransfer.dropEffect="move"),a.preventDefault()}function e(a,b,c){a.addEventListener(b,c,!1)}function f(a,b,c){a.removeEventListener(b,c,!1)}function g(a,b,c){if(a)if(a.classList)a.classList[c?"add":"remove"](b);else{var d=(" "+a.className+" ").replace(K," ").replace(" "+b+" "," ");a.className=(d+(c?" "+b:"")).replace(K," ")}}function h(a,b,c){var d=a&&a.style;if(d){if(void 0===c)return N.defaultView&&N.defaultView.getComputedStyle?c=N.defaultView.getComputedStyle(a,""):a.currentStyle&&(c=a.currentStyle),void 0===b?c:c[b];b in d||(b="-webkit-"+b),d[b]=c+("string"==typeof c?"":"px")}}function i(a,b,c){if(a){var d=a.getElementsByTagName(b),e=0,f=d.length;if(c)for(;f>e;e++)c(d[e],e);return d}return[]}function j(a,b,c,d,e,f,g){var h=N.createEvent("Event"),i=(a||b[L]).options,j="on"+c.charAt(0).toUpperCase()+c.substr(1);h.initEvent(c,!0,!0),h.to=b,h.from=e||b,h.item=d||b,h.clone=v,h.oldIndex=f,h.newIndex=g,b.dispatchEvent(h),i[j]&&i[j].call(a,h)}function k(a,b,c,d,e,f){var g,h,i=a[L],j=i.options.onMove;return g=N.createEvent("Event"),g.initEvent("move",!0,!0),g.to=b,g.from=a,g.dragged=c,g.draggedRect=d,g.related=e||b,g.relatedRect=f||b.getBoundingClientRect(),a.dispatchEvent(g),j&&(h=j.call(i,g)),h}function l(a){a.draggable=!1}function m(){R=!1}function n(a,b){var c=a.lastElementChild,d=c.getBoundingClientRect();return(b.clientY-(d.top+d.height)>5||b.clientX-(d.right+d.width)>5)&&c}function o(a){for(var b=a.tagName+a.className+a.src+a.href+a.textContent,c=b.length,d=0;c--;)d+=b.charCodeAt(c);return d.toString(36)}function p(a){var b=0;if(!a||!a.parentNode)return-1;for(;a&&(a=a.previousElementSibling);)"TEMPLATE"!==a.nodeName.toUpperCase()&&b++;return b}function q(a,b){var c,d;return function(){void 0===c&&(c=arguments,d=this,setTimeout(function(){1===c.length?a.call(d,c[0]):a.apply(d,c),c=void 0},b))}}function r(a,b){if(a&&b)for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J={},K=/\s+/g,L="Sortable"+(new Date).getTime(),M=window,N=M.document,O=M.parseInt,P=!!("draggable"in N.createElement("div")),Q=function(a){return a=N.createElement("x"),a.style.cssText="pointer-events:auto","auto"===a.style.pointerEvents}(),R=!1,S=Math.abs,T=([].slice,[]),U=q(function(a,b,c){if(c&&b.scroll){var d,e,f,g,h=b.scrollSensitivity,i=b.scrollSpeed,j=a.clientX,k=a.clientY,l=window.innerWidth,m=window.innerHeight;if(z!==c&&(y=b.scroll,z=c,y===!0)){y=c;do if(y.offsetWidth<y.scrollWidth||y.offsetHeight<y.scrollHeight)break;while(y=y.parentNode)}y&&(d=y,e=y.getBoundingClientRect(),f=(S(e.right-j)<=h)-(S(e.left-j)<=h),g=(S(e.bottom-k)<=h)-(S(e.top-k)<=h)),f||g||(f=(h>=l-j)-(h>=j),g=(h>=m-k)-(h>=k),(f||g)&&(d=M)),J.vx===f&&J.vy===g&&J.el===d||(J.el=d,J.vx=f,J.vy=g,clearInterval(J.pid),d&&(J.pid=setInterval(function(){d===M?M.scrollTo(M.pageXOffset+f*i,M.pageYOffset+g*i):(g&&(d.scrollTop+=g*i),f&&(d.scrollLeft+=f*i))},24)))}},30),V=function(a){var b=a.group;b&&"object"==typeof b||(b=a.group={name:b}),["pull","put"].forEach(function(a){a in b||(b[a]=!0)}),a.groups=" "+b.name+(b.put.join?" "+b.put.join(" "):"")+" "};return a.prototype={constructor:a,_onTapStart:function(a){var b=this,d=this.el,e=this.options,f=a.type,g=a.touches&&a.touches[0],h=(g||a).target,i=h,k=e.filter;if(!("mousedown"===f&&0!==a.button||e.disabled)&&(h=c(h,e.draggable,d))){if(D=p(h),"function"==typeof k){if(k.call(this,a,h,this))return j(b,i,"filter",h,d,D),void a.preventDefault()}else if(k&&(k=k.split(",").some(function(a){return a=c(i,a.trim(),d),a?(j(b,a,"filter",h,d,D),!0):void 0})))return void a.preventDefault();e.handle&&!c(i,e.handle,d)||this._prepareDragStart(a,g,h)}},_prepareDragStart:function(a,b,c){var d,f=this,h=f.el,j=f.options,k=h.ownerDocument;c&&!s&&c.parentNode===h&&(G=a,w=h,s=c,t=s.parentNode,x=s.nextSibling,F=j.group,d=function(){f._disableDelayedDrag(),s.draggable=!0,g(s,f.options.chosenClass,!0),f._triggerDragStart(b)},j.ignore.split(",").forEach(function(a){i(s,a.trim(),l)}),e(k,"mouseup",f._onDrop),e(k,"touchend",f._onDrop),e(k,"touchcancel",f._onDrop),j.delay?(e(k,"mouseup",f._disableDelayedDrag),e(k,"touchend",f._disableDelayedDrag),e(k,"touchcancel",f._disableDelayedDrag),e(k,"mousemove",f._disableDelayedDrag),e(k,"touchmove",f._disableDelayedDrag),f._dragStartTimer=setTimeout(d,j.delay)):d())},_disableDelayedDrag:function(){var a=this.el.ownerDocument;clearTimeout(this._dragStartTimer),f(a,"mouseup",this._disableDelayedDrag),f(a,"touchend",this._disableDelayedDrag),f(a,"touchcancel",this._disableDelayedDrag),f(a,"mousemove",this._disableDelayedDrag),f(a,"touchmove",this._disableDelayedDrag)},_triggerDragStart:function(a){a?(G={target:s,clientX:a.clientX,clientY:a.clientY},this._onDragStart(G,"touch")):this.nativeDraggable?(e(s,"dragend",this),e(w,"dragstart",this._onDragStart)):this._onDragStart(G,!0);try{N.selection?N.selection.empty():window.getSelection().removeAllRanges()}catch(b){}},_dragStarted:function(){w&&s&&(g(s,this.options.ghostClass,!0),a.active=this,j(this,w,"start",s,w,D))},_emulateDragOver:function(){if(H){if(this._lastX===H.clientX&&this._lastY===H.clientY)return;this._lastX=H.clientX,this._lastY=H.clientY,Q||h(u,"display","none");var a=N.elementFromPoint(H.clientX,H.clientY),b=a,c=" "+this.options.group.name,d=T.length;if(b)do{if(b[L]&&b[L].options.groups.indexOf(c)>-1){for(;d--;)T[d]({clientX:H.clientX,clientY:H.clientY,target:a,rootEl:b});break}a=b}while(b=b.parentNode);Q||h(u,"display","")}},_onTouchMove:function(b){if(G){a.active||this._dragStarted(),this._appendGhost();var c=b.touches?b.touches[0]:b,d=c.clientX-G.clientX,e=c.clientY-G.clientY,f=b.touches?"translate3d("+d+"px,"+e+"px,0)":"translate("+d+"px,"+e+"px)";I=!0,H=c,h(u,"webkitTransform",f),h(u,"mozTransform",f),h(u,"msTransform",f),h(u,"transform",f),b.preventDefault()}},_appendGhost:function(){if(!u){var a,b=s.getBoundingClientRect(),c=h(s),d=this.options;u=s.cloneNode(!0),g(u,d.ghostClass,!1),g(u,d.fallbackClass,!0),h(u,"top",b.top-O(c.marginTop,10)),h(u,"left",b.left-O(c.marginLeft,10)),h(u,"width",b.width),h(u,"height",b.height),h(u,"opacity","0.8"),h(u,"position","fixed"),h(u,"zIndex","100000"),h(u,"pointerEvents","none"),d.fallbackOnBody&&N.body.appendChild(u)||w.appendChild(u),a=u.getBoundingClientRect(),h(u,"width",2*b.width-a.width),h(u,"height",2*b.height-a.height)}},_onDragStart:function(a,b){var c=a.dataTransfer,d=this.options;this._offUpEvents(),"clone"==F.pull&&(v=s.cloneNode(!0),h(v,"display","none"),w.insertBefore(v,s)),b?("touch"===b?(e(N,"touchmove",this._onTouchMove),e(N,"touchend",this._onDrop),e(N,"touchcancel",this._onDrop)):(e(N,"mousemove",this._onTouchMove),e(N,"mouseup",this._onDrop)),this._loopId=setInterval(this._emulateDragOver,50)):(c&&(c.effectAllowed="move",d.setData&&d.setData.call(this,c,s)),e(N,"drop",this),setTimeout(this._dragStarted,0))},_onDragOver:function(a){var d,e,f,g=this.el,i=this.options,j=i.group,l=j.put,o=F===j,p=i.sort;if(void 0!==a.preventDefault&&(a.preventDefault(),!i.dragoverBubble&&a.stopPropagation()),I=!0,F&&!i.disabled&&(o?p||(f=!w.contains(s)):F.pull&&l&&(F.name===j.name||l.indexOf&&~l.indexOf(F.name)))&&(void 0===a.rootEl||a.rootEl===this.el)){if(U(a,i,this.el),R)return;if(d=c(a.target,i.draggable,g),e=s.getBoundingClientRect(),f)return b(!0),void(v||x?w.insertBefore(s,v||x):p||w.appendChild(s));if(0===g.children.length||g.children[0]===u||g===a.target&&(d=n(g,a))){if(d){if(d.animated)return;r=d.getBoundingClientRect()}b(o),k(w,g,s,e,d,r)!==!1&&(s.contains(g)||(g.appendChild(s),t=g),this._animate(e,s),d&&this._animate(r,d));
+}else if(d&&!d.animated&&d!==s&&void 0!==d.parentNode[L]){A!==d&&(A=d,B=h(d),C=h(d.parentNode));var q,r=d.getBoundingClientRect(),y=r.right-r.left,z=r.bottom-r.top,D=/left|right|inline/.test(B.cssFloat+B.display)||"flex"==C.display&&0===C["flex-direction"].indexOf("row"),E=d.offsetWidth>s.offsetWidth,G=d.offsetHeight>s.offsetHeight,H=(D?(a.clientX-r.left)/y:(a.clientY-r.top)/z)>.5,J=d.nextElementSibling,K=k(w,g,s,e,d,r);if(K!==!1){if(R=!0,setTimeout(m,30),b(o),1===K||-1===K)q=1===K;else if(D){var M=s.offsetTop,N=d.offsetTop;q=M===N?d.previousElementSibling===s&&!E||H&&E:N>M}else q=J!==s&&!G||H&&G;s.contains(g)||(q&&!J?g.appendChild(s):d.parentNode.insertBefore(s,q?J:d)),t=s.parentNode,this._animate(e,s),this._animate(r,d)}}}},_animate:function(a,b){var c=this.options.animation;if(c){var d=b.getBoundingClientRect();h(b,"transition","none"),h(b,"transform","translate3d("+(a.left-d.left)+"px,"+(a.top-d.top)+"px,0)"),b.offsetWidth,h(b,"transition","all "+c+"ms"),h(b,"transform","translate3d(0,0,0)"),clearTimeout(b.animated),b.animated=setTimeout(function(){h(b,"transition",""),h(b,"transform",""),b.animated=!1},c)}},_offUpEvents:function(){var a=this.el.ownerDocument;f(N,"touchmove",this._onTouchMove),f(a,"mouseup",this._onDrop),f(a,"touchend",this._onDrop),f(a,"touchcancel",this._onDrop)},_onDrop:function(b){var c=this.el,d=this.options;clearInterval(this._loopId),clearInterval(J.pid),clearTimeout(this._dragStartTimer),f(N,"mousemove",this._onTouchMove),this.nativeDraggable&&(f(N,"drop",this),f(c,"dragstart",this._onDragStart)),this._offUpEvents(),b&&(I&&(b.preventDefault(),!d.dropBubble&&b.stopPropagation()),u&&u.parentNode.removeChild(u),s&&(this.nativeDraggable&&f(s,"dragend",this),l(s),g(s,this.options.ghostClass,!1),g(s,this.options.chosenClass,!1),w!==t?(E=p(s),E>=0&&(j(null,t,"sort",s,w,D,E),j(this,w,"sort",s,w,D,E),j(null,t,"add",s,w,D,E),j(this,w,"remove",s,w,D,E))):(v&&v.parentNode.removeChild(v),s.nextSibling!==x&&(E=p(s),E>=0&&(j(this,w,"update",s,w,D,E),j(this,w,"sort",s,w,D,E)))),a.active&&(null!==E&&-1!==E||(E=D),j(this,w,"end",s,w,D,E),this.save())),w=s=t=u=x=v=y=z=G=H=I=E=A=B=F=a.active=null)},handleEvent:function(a){var b=a.type;"dragover"===b||"dragenter"===b?s&&(this._onDragOver(a),d(a)):"drop"!==b&&"dragend"!==b||this._onDrop(a)},toArray:function(){for(var a,b=[],d=this.el.children,e=0,f=d.length,g=this.options;f>e;e++)a=d[e],c(a,g.draggable,this.el)&&b.push(a.getAttribute(g.dataIdAttr)||o(a));return b},sort:function(a){var b={},d=this.el;this.toArray().forEach(function(a,e){var f=d.children[e];c(f,this.options.draggable,d)&&(b[a]=f)},this),a.forEach(function(a){b[a]&&(d.removeChild(b[a]),d.appendChild(b[a]))})},save:function(){var a=this.options.store;a&&a.set(this)},closest:function(a,b){return c(a,b||this.options.draggable,this.el)},option:function(a,b){var c=this.options;return void 0===b?c[a]:(c[a]=b,void("group"===a&&V(c)))},destroy:function(){var a=this.el;a[L]=null,f(a,"mousedown",this._onTapStart),f(a,"touchstart",this._onTapStart),this.nativeDraggable&&(f(a,"dragover",this),f(a,"dragenter",this)),Array.prototype.forEach.call(a.querySelectorAll("[draggable]"),function(a){a.removeAttribute("draggable")}),T.splice(T.indexOf(this._onDragOver),1),this._onDrop(),this.el=a=null}},a.utils={on:e,off:f,css:h,find:i,is:function(a,b){return!!c(a,b,a)},extend:r,throttle:q,closest:c,toggleClass:g,index:p},a.create=function(b,c){return new a(b,c)},a.version="1.4.2",a}),function(a){"use strict";"function"==typeof define&&define.amd?define(["angular","./Sortable"],a):"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?(require("angular"),a(angular,require("./Sortable")),module.exports="ng-sortable"):window.angular&&window.Sortable&&a(angular,Sortable)}(function(a,b){"use strict";var c="Sortable:ng-sortable";a.module("ng-sortable",[]).constant("ngSortableVersion","0.4.0").constant("ngSortableConfig",{}).directive("ngSortable",["$parse","ngSortableConfig",function(d,e){var f,g,h=function(a,b){var c=[].filter.call(a.childNodes,function(a){return 8===a.nodeType&&-1!==a.nodeValue.indexOf("ngRepeat:")})[0];if(!c)return function(){return null};c=c.nodeValue.match(/ngRepeat:\s*(?:\(.*?,\s*)?([^\s)]+)[\s)]+in\s+([^\s|]+)/);var e=d(c[2]);return function(){return e(b.$parent)||[]}};return{restrict:"AC",scope:{ngSortable:"=?"},link:function(d,i){function j(a,b){var c="on"+a.type.charAt(0).toUpperCase()+a.type.substr(1),d=p();n[c]&&n[c]({model:b||d[a.newIndex],models:d,oldIndex:a.oldIndex,newIndex:a.newIndex})}function k(e){var h=p();if(h){var i=e.oldIndex,j=e.newIndex;if(m!==e.from){var k=e.from[c]();f=k[i],e.clone?(f=a.copy(f),k.splice(b.utils.index(e.clone),0,k.splice(i,1)[0]),e.from.removeChild(e.clone)):k.splice(i,1),h.splice(j,0,f),e.from.insertBefore(e.item,g)}else h.splice(j,0,h.splice(i,1)[0]);d.$apply()}}var l,m=i[0],n=a.extend(d.ngSortable||{},e),o=[],p=h(m,d);m[c]=p,l=b.create(m,Object.keys(n).reduce(function(a,b){return a[b]=a[b]||n[b],a},{onStart:function(a){g=a.item.nextSibling,j(a),d.$apply()},onEnd:function(a){j(a,f),d.$apply()},onAdd:function(a){k(a),j(a,f),d.$apply()},onUpdate:function(a){k(a),j(a)},onRemove:function(a){j(a,f)},onSort:function(a){j(a)}})),i.on("$destroy",function(){a.forEach(o,function(a){a()}),l.destroy(),m[c]=null,m=null,o=null,l=null,g=null}),a.forEach(["sort","disabled","draggable","handle","animation","group","ghostClass","filter","onStart","onEnd","onAdd","onUpdate","onRemove","onSort"],function(a){o.push(d.$watch("ngSortable."+a,function(b){void 0!==b&&(n[a]=b,/^on[A-Z]/.test(a)||l.option(a,b))}))})}}}])}),function(a){"use strict";"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=a(require("./Sortable")):"function"==typeof define&&define.amd?define(["./Sortable"],a):window.SortableMixin=a(Sortable)}(function(a){"use strict";function b(a){return a.sortableOptions&&a.sortableOptions.model||g.model}function c(a){var c=b(a),d=a.state&&a.state[c]||a.props[c];return d.slice()}function d(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}var e,f,g={ref:"list",model:"items",animation:100,onStart:"handleStart",onEnd:"handleEnd",onAdd:"handleAdd",onUpdate:"handleUpdate",onRemove:"handleRemove",onSort:"handleSort",onFilter:"handleFilter",onMove:"handleMove"},h={sortableMixinVersion:"0.1.1",_sortableInstance:null,componentDidMount:function(){var h,i=d(d({},g),this.sortableOptions||{}),j=d({},i),k=function(a,b){var c=this[i[a]];c&&c.call(this,b,this._sortableInstance)}.bind(this);"onStart onEnd onAdd onSort onUpdate onRemove onFilter onMove".split(" ").forEach(function(a){j[a]=function(d){if("onStart"===a)e=d.item.nextElementSibling,f=this;else if("onAdd"===a||"onUpdate"===a){d.from.insertBefore(d.item,e);var g,h,i={},l={},m=d.oldIndex,n=d.newIndex,o=c(this);"onAdd"===a?(g=c(f),h=g.splice(m,1)[0],o.splice(n,0,h),l[b(f)]=g):o.splice(n,0,o.splice(m,1)[0]),i[b(this)]=o,j.stateHandler?this[j.stateHandler](i):this.setState(i),this!==f&&f.setState(l)}setTimeout(function(){k(a,d)},0)}.bind(this)},this),h=this.getDOMNode()?(this.refs[i.ref]||this).getDOMNode():this.refs[i.ref]||this,this._sortableInstance=a.create(h,j)},componentWillReceiveProps:function(a){var c={},d=b(this),e=a[d];e&&(c[d]=e,this.setState(c))},componentWillUnmount:function(){this._sortableInstance.destroy(),this._sortableInstance=null}};return h}),function(a,b){"use strict";angular.module("adf",["adf.provider","ui.bootstrap"]).value("adfTemplatePath","../src/templates/").value("rowTemplate",'<adf-dashboard-row row="row" adf-model="adfModel" options="options" edit-mode="editMode" ng-repeat="row in column.rows" />').value("columnTemplate",'<adf-dashboard-column column="column" adf-model="adfModel" options="options" edit-mode="editMode" ng-repeat="column in row.columns" />').value("adfVersion","0.11.0"),angular.module("adf").directive("adfDashboardColumn",["$log","$compile","$rootScope","adfTemplatePath","rowTemplate","dashboard",function(a,b,c,d,e,f){function g(a,b,d){var e=b.widgets;a.$apply(function(){e.splice(d.newIndex,0,e.splice(d.oldIndex,1)[0]),c.$broadcast("adfWidgetMovedInColumn")})}function h(a,b){for(var c=null,d=0;d<a.widgets.length;d++){var e=a.widgets[d];if(f.idEquals(e.wid,b)){c=e;break}}return c}function i(a,b){for(var c=null,d=0;d<a.rows.length;d++){for(var e=a.rows[d],g=0;g<e.columns.length;g++){var h=e.columns[g];if(f.idEquals(h.cid,b)){c=h;break}h.rows&&(c=i(h,b))}if(c)break}return c}function j(a){var b=a.getAttribute("adf-id");return b?b:"-1"}function k(b,d,e,f){var g=j(f.from),k=i(d,g);if(k){var l=j(f.item),m=h(k,l);m?b.$apply(function(){e.widgets||(e.widgets=[]),e.widgets.splice(f.newIndex,0,m),c.$broadcast("adfWidgetAddedToColumn")}):a.warn("could not find widget with id "+l)}else a.warn("could not find column with id "+g)}function l(a,b,d){a.$apply(function(){b.widgets.splice(d.oldIndex,1),c.$broadcast("adfWidgetRemovedFromColumn")})}function m(a,b,c,d){var e=b[0],f=Sortable.create(e,{group:"widgets",handle:".adf-move",ghostClass:"placeholder",animation:150,onAdd:function(b){k(a,c,d,b)},onRemove:function(b){l(a,d,b)},onUpdate:function(b){g(a,d,b)}});b.on("$destroy",function(){f.el&&f.destroy()})}return{restrict:"E",replace:!0,scope:{column:"=",editMode:"=",continuousEditMode:"=",adfModel:"=",options:"="},templateUrl:d+"dashboard-column.html",link:function(a,c){var d=a.column;d.cid||(d.cid=f.id()),angular.isDefined(d.rows)&&angular.isArray(d.rows)?b(e)(a,function(a){c.append(a)}):m(a,c,a.adfModel,d)}}}]),angular.module("adf").directive("adfDashboard",["$rootScope","$log","$timeout","$uibModal","dashboard","adfTemplatePath",function(a,b,c,d,e,f){function g(a){switch(angular.isDefined(a)?a.toLowerCase():null){case"true":case"yes":case"1":return!0;case"false":case"no":case"0":case null:return!1;default:return Boolean(a)}}function h(a,b){if(a.widgets&&a.widgets.length>0)for(var c=a.widgets.shift();c;)b.widgets.push(c),c=a.widgets.shift()}function i(a,b,c){return c=c||0,angular.isDefined(a.rows)&&angular.forEach(a.rows,function(a){angular.forEach(a.columns,function(a){a.widgets||(a.widgets=[]),angular.isDefined(b[c])&&(angular.isDefined(a.rows)||(h(b[c],a),c++)),c=i(a,b,c)})}),c}function j(a,b){return b=b||[],angular.isDefined(a.rows)&&angular.forEach(a.rows,function(a){angular.forEach(a.columns,function(a){b.push(a),j(a,b)})}),b}function k(a,b){var c=j(a),d=0;for(a.rows=angular.copy(b.rows);d<c.length;)d=i(a,c,d)}function l(a){var b={},c=e.widgets[a].config;return c&&(b=angular.copy(c)),b}function m(a){var c=null;if(!angular.isArray(a.rows))return b.error("model does not have any rows"),null;for(var d=0;d<a.rows.length;d++){var e=a.rows[d];if(angular.isArray(e.columns))for(var f=0;f<e.columns.length;f++){var g=e.columns[f];if(!g.rows){c=g;break}}if(c)break}return c}function n(c,d,e){if(c){var f=m(c);f?(f.widgets||(f.widgets=[]),f.widgets.unshift(d),a.$broadcast("adfWidgetAdded",e,c,d)):b.error("could not find first widget column")}else b.error("model is undefined")}function o(a){var b=e.widgets[a];return b&&b.edit&&b.edit.immediate}function p(a,b){c(function(){a.$broadcast("adfWidgetEnterEditMode",b)},200)}return{replace:!0,restrict:"EA",transclude:!1,scope:{structure:"@",name:"@",collapsible:"@",editable:"@",editMode:"@",continuousEditMode:"=",maximizable:"@",adfModel:"=",adfWidgetFilter:"="},controller:["$scope",function(c){var g={},h={},i=null,j={},m=c.name;c.$watch("adfModel",function(a,d){(null!==d||null===a&&null===d)&&(g=c.adfModel,i=c.adfWidgetFilter,g&&g.rows||(j=c.structure,h=e.structures[j],h?(g?g.rows=angular.copy(h).rows:g=angular.copy(h),g.structure=j):b.error("could not find structure "+j)),g?(g.title||(g.title="Dashboard"),g.titleTemplateUrl||(g.titleTemplateUrl=f+"dashboard-title.html"),c.model=g):b.error("could not find or create model"))},!0),c.editMode=!1,c.editClass="",c.toggleEditMode=function(){c.editMode=!c.editMode,c.editMode&&(c.continuousEditMode||(c.modelCopy=angular.copy(c.adfModel,{}),a.$broadcast("adfIsEditMode"))),c.editMode||a.$broadcast("adfDashboardChanged",m,g)},c.$on("adfToggleEditMode",function(){c.toggleEditMode()}),c.collapseAll=function(b){a.$broadcast("adfDashboardCollapseExpand",{collapseExpandStatus:b})},c.cancelEditMode=function(){c.editMode=!1,c.continuousEditMode||(c.modelCopy=angular.copy(c.modelCopy,c.adfModel)),a.$broadcast("adfDashboardEditsCancelled")},c.editDashboardDialog=function(){var a=c.$new();a.copy={title:g.title},a.structures=e.structures;var h=f+"dashboard-edit.html";g.editTemplateUrl&&(h=g.editTemplateUrl);var i=d.open({scope:a,templateUrl:h,backdrop:"static"});a.changeStructure=function(a,c){b.info("change structure to "+a),k(g,c)},a.closeDialog=function(){g.title=a.copy.title,i.close(),a.$destroy()}},c.addWidgetDialog=function(){var a,b=c.$new(),g=c.model;angular.isFunction(i)?(a={},angular.forEach(e.widgets,function(b,c){i(b,c,g)&&(a[c]=b)})):a=e.widgets,b.widgets=a;var h=f+"widget-add.html";g.addTemplateUrl&&(h=g.addTemplateUrl);var j={scope:b,templateUrl:h,backdrop:"static"},k=d.open(j);b.addWidget=function(a){var d={type:a,config:l(a)};n(g,d,m),k.close(),b.$destroy(),o(a)&&p(c,d)},b.closeDialog=function(){k.close(),b.$destroy()}},c.addNewWidgetToModel=n}],link:function(a,b,c){var d={name:c.name,editable:!0,enableConfirmDelete:g(c.enableconfirmdelete),maximizable:g(c.maximizable),collapsible:g(c.collapsible)};angular.isDefined(c.editable)&&(d.editable=g(c.editable)),a.options=d},templateUrl:f+"dashboard.html"}}]),angular.module("adf.provider",[]).provider("dashboard",function(){var a={},b="",c={},d='<div class="alert alert-danger">{}</div>',e='      <div class="progress progress-striped active">\n        <div class="progress-bar" role="progressbar" style="width: 100%">\n          <span class="sr-only">loading ...</span>\n        </div>\n      </div>',f=function(){return!0};this.widget=function(b,c){var d=angular.extend({reload:!1,frameless:!1},c);if(d.edit){var e={reload:!0,immediate:!1,apply:f};angular.extend(e,d.edit),d.edit=e}return a[b]=d,this},this.widgetsPath=function(a){return b=a,this},this.structure=function(a,b){return c[a]=b,this},this.messageTemplate=function(a){return d=a,this},this.loadingTemplate=function(a){return e=a,this},this.$get=function(){var f=0;return{widgets:a,widgetsPath:b,structures:c,messageTemplate:d,loadingTemplate:e,id:function(){return(new Date).getTime()+"-"+ ++f},idEquals:function(a,b){return a&&b&&a.toString()===b.toString()}}}}),angular.module("adf").directive("adfDashboardRow",["$compile","adfTemplatePath","columnTemplate",function(a,b,c){return{restrict:"E",replace:!0,scope:{row:"=",adfModel:"=",editMode:"=",continuousEditMode:"=",options:"="},templateUrl:b+"dashboard-row.html",link:function(b,d){angular.isDefined(b.row.columns)&&angular.isArray(b.row.columns)&&a(c)(b,function(a){d.append(a)})}}}]),angular.module("adf").directive("adfWidgetContent",["$log","$q","$sce","$http","$templateCache","$compile","$controller","$injector","dashboard",function(a,b,c,d,e,f,g,h,i){function j(a){var b=a;return a.indexOf("{widgetsPath}")>=0&&(b=a.replace("{widgetsPath}",i.widgetsPath).replace("//","/"),0===b.indexOf("/")&&(b=b.substring(1))),b}function k(a){var f=b.defer();if(a.template)f.resolve(a.template);else if(a.templateUrl){var g=e.get(a.templateUrl);if(g)f.resolve(g);else{var h=c.getTrustedResourceUrl(j(a.templateUrl));d.get(h).success(function(b){e.put(a.templateUrl,b),f.resolve(b)}).error(function(){f.reject("could not load template")})}}return f.promise}function l(c,d,e){var j=c.model,l=c.content;d.html(i.loadingTemplate);var m=c.$new();j.config||(j.config={}),m.config=j.config;var n={$scope:m,widget:j,config:j.config},o={};return o.$tpl=k(l),l.resolve&&angular.forEach(l.resolve,function(a,b){angular.isString(a)?o[b]=h.get(a):o[b]=h.invoke(a,a,n)}),b.all(o).then(function(a){angular.extend(a,n);var b=a.$tpl;if(d.html(b),l.controller){var c=g(l.controller,a);l.controllerAs&&(m[l.controllerAs]=c),d.children().data("$ngControllerController",c)}f(d.contents())(m)},function(b){var c="Could not resolve all promises";b&&(c+=": "+b),a.warn(c),d.html(i.messageTemplate.replace(/{}/g,c))}),e&&e.$destroy(),m}return{replace:!0,restrict:"EA",transclude:!1,scope:{model:"=",content:"="},link:function(a,b){var c=l(a,b,null);a.$on("widgetConfigChanged",function(){c=l(a,b,c)}),a.$on("widgetReload",function(){c=l(a,b,c)})}}}]),angular.module("adf").directive("adfWidget",["$injector","$q","$log","$uibModal","$rootScope","dashboard","adfTemplatePath",function(a,b,c,d,e,f,g){function h(a){var b=a.definition;if(b){var d=f.widgets[b.type];if(d){b.title||(b.title=d.title),b.titleTemplateUrl||(b.titleTemplateUrl=g+"widget-title.html",d.titleTemplateUrl&&(b.titleTemplateUrl=d.titleTemplateUrl)),b.titleTemplateUrl||(b.frameless=d.frameless),b.styleClass||(b.styleClass=d.styleClass),b.wid||(b.wid=f.id()),a.widget=angular.copy(d);var e=b.config;e?angular.isString(e)&&(e=angular.fromJson(e)):e={},a.config=e,a.widgetState||(a.widgetState={},a.widgetState.isCollapsed=d.collapsed===!0?d.collapsed:!1)}else c.warn("could not find widget "+b.type)}else c.debug("definition not specified, widget was probably removed")}function i(f,h){var i=f.definition;if(i){var j=function(){var a=f.col;if(a){var b=a.widgets.indexOf(i);b>=0&&a.widgets.splice(b,1)}h.remove(),e.$broadcast("adfWidgetRemovedFromColumn")};f.remove=function(){if(f.options.enableConfirmDelete){var a=f.$new(),b=g+"widget-delete.html";i.deleteTemplateUrl&&(b=i.deleteTemplateUrl);var c={scope:a,templateUrl:b,backdrop:"static"},e=d.open(c);a.closeDialog=function(){e.close(),a.$destroy()},a.deleteDialog=function(){j(),a.closeDialog()}}else j()},f.reload=function(){f.$broadcast("widgetReload")},f.edit=function(){function c(a){var c;if("boolean"==typeof a){var d=b.defer();a?d.resolve():d.reject(),c=d.promise}else c=b.when(a);return c}var e=f.$new();e.definition=angular.copy(i);var h=g+"widget-edit.html";i.editTemplateUrl&&(h=i.editTemplateUrl);var j={scope:e,templateUrl:h,backdrop:"static"},k=d.open(j);e.closeDialog=function(){k.close(),e.$destroy()},e.saveDialog=function(){e.validationError=null;var b=f.widget,d=b.edit.apply,g={widget:b,definition:e.definition,config:e.definition.config},h=a.invoke(d,d,g);c(h).then(function(){i.title=e.definition.title,angular.extend(i.config,e.definition.config),b.edit&&b.edit.reload&&f.$broadcast("widgetConfigChanged"),e.closeDialog()},function(a){a?e.validationError=a:e.validationError="Validation durring apply failed"})}}}else c.debug("widget not found")}return{replace:!0,restrict:"EA",transclude:!1,templateUrl:g+"widget.html",scope:{definition:"=",col:"=column",editMode:"=",options:"=",widgetState:"="},controller:["$scope",function(a){a.$on("adfDashboardCollapseExpand",function(b,c){a.widgetState.isCollapsed=c.collapseExpandStatus}),a.$on("adfWidgetEnterEditMode",function(b,c){f.idEquals(a.definition.wid,c.wid)&&a.edit()}),a.widgetClasses=function(b,c){var d=c.styleClass||"";return b.frameless&&!a.editMode||(d+=" panel panel-default"),d},a.openFullScreen=function(){var b=a.definition,c=a.$new(),e={scope:c,templateUrl:g+"widget-fullscreen.html",size:b.modalSize||"lg",backdrop:"static",windowClass:b.fullScreen?"dashboard-modal widget-fullscreen":"dashboard-modal"},f=d.open(e);c.closeDialog=function(){f.close(),c.$destroy()}}}],compile:function(){return{pre:h,post:i}}}}]),angular.module("adf").run(["$templateCache",function(a){a.put("../src/templates/dashboard-column.html",'<div adf-id={{column.cid}} class=column ng-class=column.styleClass ng-model=column.widgets> <adf-widget ng-repeat="definition in column.widgets" definition=definition column=column edit-mode=editMode options=options widget-state=widgetState>  </adf-widget></div> '),a.put("../src/templates/dashboard-edit.html",'<div class=modal-header> <button type=button class=close ng-click=closeDialog() aria-hidden=true>&times;</button> <h4 class=modal-title>Edit Dashboard</h4> </div> <div class=modal-body> <form role=form> <div class=form-group> <label for=dashboardTitle>Title</label> <input type=text class=form-control id=dashboardTitle ng-model=copy.title required> </div> <div class=form-group> <label>Structure</label> <div class=radio ng-repeat="(key, structure) in structures"> <label> <input type=radio value={{key}} ng-model=model.structure ng-change="changeStructure(key, structure)"> {{key}} </label> </div> </div> </form> </div> <div class=modal-footer> <button type=button class="btn btn-primary" ng-click=closeDialog()>Close</button> </div> '),a.put("../src/templates/dashboard-row.html","<div class=row ng-class=row.styleClass>  </div> "),a.put("../src/templates/dashboard-title.html",'<h1> {{model.title}} <span style="font-size: 16px" class=pull-right> <a href ng-if=editMode title="add new widget" ng-click=addWidgetDialog()> <i class="glyphicon glyphicon-plus-sign"></i> </a> <a href ng-if=editMode title="edit dashboard" ng-click=editDashboardDialog()> <i class="glyphicon glyphicon-cog"></i> </a> <a href ng-if=options.editable title="{{editMode ? \'save changes\' : \'enable edit mode\'}}" ng-click=toggleEditMode()> <i class=glyphicon x-ng-class="{\'glyphicon-edit\' : !editMode, \'glyphicon-save\' : editMode}"></i> </a> <a href ng-if=editMode title="undo changes" ng-click=cancelEditMode()> <i class="glyphicon glyphicon-repeat adf-flip"></i> </a> </span> </h1> '),a.put("../src/templates/dashboard.html",'<div class=dashboard-container> <div ng-include src=model.titleTemplateUrl></div> <div class=dashboard x-ng-class="{\'edit\' : editMode}"> <adf-dashboard-row row=row adf-model=model options=options ng-repeat="row in model.rows" edit-mode=editMode continuous-edit-mode=continuousEditMode> </adf-dashboard-row></div> </div> '),a.put("../src/templates/widget-add.html",'<div class=modal-header> <button type=button class=close ng-click=closeDialog() aria-hidden=true>&times;</button> <h4 class=modal-title>Add new widget</h4> </div> <div class=modal-body> <div style="display: inline-block;"> <dl class=dl-horizontal> <dt ng-repeat-start="(key, widget) in widgets"> <a href ng-click=addWidget(key)> {{widget.title}} </a> </dt> <dd ng-repeat-end ng-if=widget.description> {{widget.description}} </dd> </dl> </div> </div> <div class=modal-footer> <button type=button class="btn btn-primary" ng-click=closeDialog()>Close</button> </div>'),a.put("../src/templates/widget-delete.html",'<div class=modal-header> <h4 class=modal-title>Delete {{widget.title}}</h4> </div> <div class=modal-body> <form role=form> <div class=form-group> <label for=widgetTitle>Are you sure you want to delete this widget ?</label> </div> </form> </div> <div class=modal-footer> <button type=button class="btn btn-default" ng-click=closeDialog()>Close</button> <button type=button class="btn btn-primary" ng-click=deleteDialog()>Delete</button> </div> '),a.put("../src/templates/widget-edit.html",'<form name=widgetEditForm novalidate role=form ng-submit=saveDialog()> <div class=modal-header> <button type=button class=close ng-click=closeDialog() aria-hidden=true>&times;</button> <h4 class=modal-title>{{widget.title}}</h4> </div> <div class=modal-body> <div class="alert alert-danger" role=alert ng-show=validationError> <strong>Apply error:</strong> {{validationError}} </div> <div class=form-group> <label for=widgetTitle>Title</label> <input type=text class=form-control id=widgetTitle ng-model=definition.title placeholder="Enter title" required> </div> <div ng-if=widget.edit> <adf-widget-content model=definition content=widget.edit> </adf-widget-content></div> </div> <div class=modal-footer> <button type=button class="btn btn-default" ng-click=closeDialog()>Cancel</button> <input type=submit class="btn btn-primary" ng-disabled=widgetEditForm.$invalid value=Apply> </div> </form> '),a.put("../src/templates/widget-fullscreen.html",'<div class=modal-header> <div class="pull-right widget-icons"> <a href title="Reload Widget Content" ng-if=widget.reload ng-click=reload()> <i class="glyphicon glyphicon-refresh"></i> </a> <a href title=close ng-click=closeDialog()> <i class="glyphicon glyphicon-remove"></i> </a> </div> <h4 class=modal-title>{{definition.title}}</h4> </div> <div class=modal-body> <adf-widget-content model=definition content=widget> </adf-widget-content></div> <div class=modal-footer> <button type=button class="btn btn-primary" ng-click=closeDialog()>Close</button> </div> '),a.put("../src/templates/widget-title.html",'<h3 class=panel-title> {{definition.title}} <span class=pull-right> <a href title="reload widget content" ng-if=widget.reload ng-click=reload()> <i class="glyphicon glyphicon-refresh"></i> </a>  <a href title="change widget location" class=adf-move ng-if=editMode> <i class="glyphicon glyphicon-move"></i> </a>  <a href title="collapse widget" ng-show="options.collapsible && !widgetState.isCollapsed" ng-click="widgetState.isCollapsed = !widgetState.isCollapsed"> <i class="glyphicon glyphicon-minus"></i> </a>  <a href title="expand widget" ng-show="options.collapsible && widgetState.isCollapsed" ng-click="widgetState.isCollapsed = !widgetState.isCollapsed"> <i class="glyphicon glyphicon-plus"></i> </a>  <a href title="edit widget configuration" ng-click=edit() ng-if=editMode> <i class="glyphicon glyphicon-cog"></i> </a> <a href title="fullscreen widget" ng-click=openFullScreen() ng-show=options.maximizable> <i class="glyphicon glyphicon-fullscreen"></i> </a>  <a href title="remove widget" ng-click=remove() ng-if=editMode> <i class="glyphicon glyphicon-remove"></i> </a> </span> </h3> '),a.put("../src/templates/widget.html",'<div adf-id={{definition.wid}} adf-widget-type={{definition.type}} ng-class="widgetClasses(widget, definition)" class=widget> <div class="panel-heading clearfix" ng-if="!widget.frameless || editMode"> <div ng-include src=definition.titleTemplateUrl></div> </div> <div ng-class="{\'panel-body\':!widget.frameless || editMode}" uib-collapse=widgetState.isCollapsed> <adf-widget-content model=definition content=widget> </adf-widget-content></div> </div> ')}])}(window),angular.module("adf.structures.base",["adf"]).config(["dashboardProvider",function(a){a.structure("6-6",{rows:[{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]}]}).structure("4-8",{rows:[{columns:[{styleClass:"col-md-4",widgets:[]},{styleClass:"col-md-8",widgets:[]}]}]}).structure("12/4-4-4",{rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-4"},{styleClass:"col-md-4"},{styleClass:"col-md-4"}]}]}).structure("12/6-6",{rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]}]}).structure("12/6-6/12",{rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]},{columns:[{styleClass:"col-md-12"}]}]}).structure("3-9 (12/6-6)",{rows:[{columns:[{styleClass:"col-md-3"},{styleClass:"col-md-9",rows:[{columns:[{styleClass:"col-md-12"}]},{columns:[{styleClass:"col-md-6"},{styleClass:"col-md-6"}]}]}]}]})}]),function(a,b){"use strict";angular.module("adf.widget.clock",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("clock",{title:"Clock",description:"Displays date and time",templateUrl:"{widgetsPath}/clock/src/view.html",controller:"clockController",controllerAs:"clock",config:{timePattern:"HH:mm:ss",datePattern:"YYYY-MM-DD"},edit:{templateUrl:"{widgetsPath}/clock/src/edit.html"}})}]).controller("clockController",["$scope","$interval","config",function(a,b,c){function d(){var a=new moment;e.time=a.format(c.timePattern),e.date=a.format(c.datePattern)}var e=this;d();var f=b(d,1e3);a.$on("$destroy",function(){b.cancel(f)})}]),angular.module("adf.widget.clock").run(["$templateCache",function(a){a.put("{widgetsPath}/clock/src/edit.html",'<form role=form><div class=form-group><label for=time>Time pattern</label> <input type=text class=form-control id=time ng-model=config.timePattern></div><div class=form-group><label for=date>Date pattern</label> <input type=text class=form-control id=date ng-model=config.datePattern></div><p class=text-info>For the list of possible patterns, please have a look at <a target=_blank href="http://momentjs.com/docs/#/displaying/">moment.js documentation</a></p></form>'),a.put("{widgetsPath}/clock/src/view.html","<div class=clock><div class=clock-time>{{clock.time}}</div><div class=clock-date>{{clock.date}}</div></div>")}])}(window),function(a,b){"use strict";angular.module("adf.widget.iframe",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("iframe",{title:"iframe",description:"Embed an external page into the dashboard",templateUrl:"{widgetsPath}/iframe/src/view.html",controller:"iframeController",controllerAs:"iframe",edit:{templateUrl:"{widgetsPath}/iframe/src/edit.html"},config:{height:"420px"}})}]).controller("iframeController",["$sce","config",function(a,b){b.url&&(this.url=a.trustAsResourceUrl(b.url))}]),angular.module("adf.widget.iframe").run(["$templateCache",function(a){a.put("{widgetsPath}/iframe/src/edit.html","<form role=form><div class=form-group><label for=url>URL</label> <input type=url class=form-control id=url ng-model=config.url placeholder=http://www.example.com></div><div class=form-group><label for=url>Height</label> <input type=text class=form-control id=url ng-model=config.height></div></form>"),a.put("{widgetsPath}/iframe/src/view.html",'<div><div class="alert alert-info" ng-if=!config.url>Please insert a url in the widget configuration</div><iframe ng-if=iframe.url class=adf-iframe style="height: {{config.height}}" src={{iframe.url}}></iframe></div>')}])}(window),function(){"use strict";angular.module("ui.grid.i18n",[]),angular.module("ui.grid",["ui.grid.i18n"])}(),function(){"use strict";angular.module("ui.grid").constant("uiGridConstants",{LOG_DEBUG_MESSAGES:!0,LOG_WARN_MESSAGES:!0,LOG_ERROR_MESSAGES:!0,CUSTOM_FILTERS:/CUSTOM_FILTERS/g,COL_FIELD:/COL_FIELD/g,MODEL_COL_FIELD:/MODEL_COL_FIELD/g,TOOLTIP:/title=\"TOOLTIP\"/g,DISPLAY_CELL_TEMPLATE:/DISPLAY_CELL_TEMPLATE/g,TEMPLATE_REGEXP:/<.+>/,FUNC_REGEXP:/(\([^)]*\))?$/,DOT_REGEXP:/\./g,APOS_REGEXP:/'/g,BRACKET_REGEXP:/^(.*)((?:\s*\[\s*\d+\s*\]\s*)|(?:\s*\[\s*"(?:[^"\\]|\\.)*"\s*\]\s*)|(?:\s*\[\s*'(?:[^'\\]|\\.)*'\s*\]\s*))(.*)$/,COL_CLASS_PREFIX:"ui-grid-col",events:{GRID_SCROLL:"uiGridScroll",COLUMN_MENU_SHOWN:"uiGridColMenuShown",ITEM_DRAGGING:"uiGridItemDragStart",COLUMN_HEADER_CLICK:"uiGridColumnHeaderClick"},keymap:{TAB:9,STRG:17,CAPSLOCK:20,CTRL:17,CTRLRIGHT:18,CTRLR:18,SHIFT:16,RETURN:13,ENTER:13,BACKSPACE:8,BCKSP:8,ALT:18,ALTR:17,ALTRIGHT:17,SPACE:32,WIN:91,MAC:91,FN:null,PG_UP:33,PG_DOWN:34,UP:38,DOWN:40,LEFT:37,RIGHT:39,ESC:27,DEL:46,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123},ASC:"asc",DESC:"desc",filter:{STARTS_WITH:2,ENDS_WITH:4,EXACT:8,CONTAINS:16,GREATER_THAN:32,GREATER_THAN_OR_EQUAL:64,LESS_THAN:128,LESS_THAN_OR_EQUAL:256,NOT_EQUAL:512,SELECT:"select",INPUT:"input"},aggregationTypes:{sum:2,count:4,avg:8,min:16,max:32},CURRENCY_SYMBOLS:["ƒ","$","£","$","¤","¥","៛","₩","₱","฿","₫"],scrollDirection:{UP:"up",DOWN:"down",LEFT:"left",RIGHT:"right",NONE:"none"},dataChange:{ALL:"all",EDIT:"edit",ROW:"row",COLUMN:"column",OPTIONS:"options"},scrollbars:{NEVER:0,ALWAYS:1}})}(),angular.module("ui.grid").directive("uiGridCell",["$compile","$parse","gridUtil","uiGridConstants",function(a,b,c,d){var e={priority:0,scope:!1,require:"?^uiGrid",compile:function(){return{pre:function(b,e,f,g){function h(){var a=b.col.compiledElementFn;a(b,function(a,b){e.append(a)})}if(g&&b.col.compiledElementFn)h();else if(g&&!b.col.compiledElementFn)b.col.getCompiledElementFn().then(function(a){a(b,function(a,b){e.append(a)})});else{var i=b.col.cellTemplate.replace(d.MODEL_COL_FIELD,"row.entity."+c.preEval(b.col.field)).replace(d.COL_FIELD,"grid.getCellValue(row, col)"),j=a(i)(b);e.append(j)}},post:function(a,b,c,e){var f=a.col.getColClass(!1);b.addClass(f);var g,h=function(c){var d=b;g&&(d.removeClass(g),g=null),g=angular.isFunction(a.col.cellClass)?a.col.cellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.cellClass,d.addClass(g)};a.col.cellClass&&h();var i=a.grid.registerDataChangeCallback(h,[d.dataChange.COLUMN,d.dataChange.EDIT]),j=function(c,d){
+if(c!==d){(g||a.col.cellClass)&&h();var e=a.col.getColClass(!1);e!==f&&(b.removeClass(f),b.addClass(e),f=e)}},k=a.$watch("row",j),l=function(){i(),k()};a.$on("$destroy",l),b.on("$destroy",l)}}}};return e}]),function(){angular.module("ui.grid").service("uiGridColumnMenuService",["i18nService","uiGridConstants","gridUtil",function(a,b,c){var d={initialize:function(a,b){a.grid=b.grid,b.columnMenuScope=a,a.menuShown=!1},setColMenuItemWatch:function(a){var b=a.$watch("col.menuItems",function(b){"undefined"!=typeof b&&b&&angular.isArray(b)?(b.forEach(function(b){"undefined"!=typeof b.context&&b.context||(b.context={}),b.context.col=a.col}),a.menuItems=a.defaultMenuItems.concat(b)):a.menuItems=a.defaultMenuItems});a.$on("$destroy",b)},sortable:function(a){return!!(a.grid.options.enableSorting&&"undefined"!=typeof a.col&&a.col&&a.col.enableSorting)},isActiveSort:function(a,b){return"undefined"!=typeof a.col&&"undefined"!=typeof a.col.sort&&"undefined"!=typeof a.col.sort.direction&&a.col.sort.direction===b},suppressRemoveSort:function(a){return!(!a.col||!a.col.suppressRemoveSort)},hideable:function(a){return"undefined"==typeof a.col||!a.col||!a.col.colDef||a.col.colDef.enableHiding!==!1},getDefaultMenuItems:function(c){return[{title:a.getSafeText("sort.ascending"),icon:"ui-grid-icon-sort-alt-up",action:function(a){a.stopPropagation(),c.sortColumn(a,b.ASC)},shown:function(){return d.sortable(c)},active:function(){return d.isActiveSort(c,b.ASC)}},{title:a.getSafeText("sort.descending"),icon:"ui-grid-icon-sort-alt-down",action:function(a){a.stopPropagation(),c.sortColumn(a,b.DESC)},shown:function(){return d.sortable(c)},active:function(){return d.isActiveSort(c,b.DESC)}},{title:a.getSafeText("sort.remove"),icon:"ui-grid-icon-cancel",action:function(a){a.stopPropagation(),c.unsortColumn()},shown:function(){return d.sortable(c)&&"undefined"!=typeof c.col&&"undefined"!=typeof c.col.sort&&"undefined"!=typeof c.col.sort.direction&&null!==c.col.sort.direction&&!d.suppressRemoveSort(c)}},{title:a.getSafeText("column.hide"),icon:"ui-grid-icon-cancel",shown:function(){return d.hideable(c)},action:function(a){a.stopPropagation(),c.hideColumn()}}]},getColumnElementPosition:function(a,b,d){var e={};return e.left=d[0].offsetLeft,e.top=d[0].offsetTop,e.parentLeft=d[0].offsetParent.offsetLeft,e.offset=0,b.grid.options.offsetLeft&&(e.offset=b.grid.options.offsetLeft),e.height=c.elementHeight(d,!0),e.width=c.elementWidth(d,!0),e},repositionMenu:function(a,b,d,e,f){var g=e[0].querySelectorAll(".ui-grid-menu"),h=c.closestElm(f,".ui-grid-render-container"),i=h.getBoundingClientRect().left-a.grid.element[0].getBoundingClientRect().left,j=h.querySelectorAll(".ui-grid-viewport")[0].scrollLeft,k=b.lastMenuWidth?b.lastMenuWidth:a.lastMenuWidth?a.lastMenuWidth:170,l=b.lastMenuPaddingRight?b.lastMenuPaddingRight:a.lastMenuPaddingRight?a.lastMenuPaddingRight:10;if(0!==g.length){var m=g[0].querySelectorAll(".ui-grid-menu-mid");0===m.length||angular.element(m).hasClass("ng-hide")||(k=c.elementWidth(g,!0),a.lastMenuWidth=k,b.lastMenuWidth=k,l=parseInt(c.getStyles(angular.element(g)[0]).paddingRight,10),a.lastMenuPaddingRight=l,b.lastMenuPaddingRight=l)}var n=d.left+i-j+d.parentLeft+d.width-k+l;n<d.offset&&(n=d.offset),e.css("left",n+"px"),e.css("top",d.top+d.height+"px")}};return d}]).directive("uiGridColumnMenu",["$timeout","gridUtil","uiGridConstants","uiGridColumnMenuService","$document",function(a,b,c,d,e){var f={priority:0,scope:!0,require:"^uiGrid",templateUrl:"ui-grid/uiGridColumnMenu",replace:!0,link:function(f,g,h,i){d.initialize(f,i),f.defaultMenuItems=d.getDefaultMenuItems(f),f.menuItems=f.defaultMenuItems,d.setColMenuItemWatch(f),f.showMenu=function(a,b,c){f.col=a;var e=d.getColumnElementPosition(f,a,b);f.menuShown?(f.colElement=b,f.colElementPosition=e,f.hideThenShow=!0,f.$broadcast("hide-menu",{originalEvent:c})):(f.menuShown=!0,d.repositionMenu(f,a,e,g,b),f.colElement=b,f.colElementPosition=e,f.$broadcast("show-menu",{originalEvent:c}))},f.hideMenu=function(a){f.menuShown=!1,a||f.$broadcast("hide-menu")},f.$on("menu-hidden",function(){f.hideThenShow?(delete f.hideThenShow,d.repositionMenu(f,f.col,f.colElementPosition,g,f.colElement),f.$broadcast("show-menu"),f.menuShown=!0):(f.hideMenu(!0),f.col&&b.focus.bySelector(e,".ui-grid-header-cell."+f.col.getColClass()+" .ui-grid-column-menu-button",f.col.grid,!1))}),f.$on("menu-shown",function(){a(function(){d.repositionMenu(f,f.col,f.colElementPosition,g,f.colElement),b.focus.bySelector(e,".ui-grid-menu-items .ui-grid-menu-item",!0),delete f.colElementPosition,delete f.columnElement},200)}),f.sortColumn=function(a,b){a.stopPropagation(),f.grid.sortColumn(f.col,b,!0).then(function(){f.grid.refresh(),f.hideMenu()})},f.unsortColumn=function(){f.col.unsort(),f.grid.refresh(),f.hideMenu()};var j=function(){a(function(){var a,c=function(){return b.focus.byId("grid-menu",f.grid)};f.grid.columns.some(function(b,c){return angular.equals(b,f.col)?(a=c,!0):void 0});var d;if(f.grid.columns.some(function(b,c){if(!b.visible)return!1;if(a>c)d=b;else{if(c>a&&!d)return d=b,!0;if(c>a&&d)return!0}}),d){var g=d.getColClass();b.focus.bySelector(e,".ui-grid-header-cell."+g+" .ui-grid-header-cell-primary-focus",!0).then(angular.noop,function(a){return"canceled"!==a?c():void 0})}else c()})};f.hideColumn=function(){f.col.colDef.visible=!1,f.col.visible=!1,f.grid.queueGridRefresh(),f.hideMenu(),f.grid.api.core.notifyDataChange(c.dataChange.COLUMN),f.grid.api.core.raise.columnVisibilityChanged(f.col),j()}},controller:["$scope",function(a){var b=this;a.$watch("menuItems",function(a){b.menuItems=a})}]};return f}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFilter",["$compile","$templateCache","i18nService","gridUtil",function(a,b,c,d){return{compile:function(){return{pre:function(b,c,d,e){b.col.updateFilters=function(d){if(c.children().remove(),d){var e=b.col.filterHeaderTemplate;c.append(a(e)(b))}},b.$on("$destroy",function(){delete b.col.updateFilters})},post:function(a,b,e,f){a.aria=c.getSafeText("headerCell.aria"),a.removeFilter=function(a,c){a.term=null,d.focus.bySelector(b,".ui-grid-filter-input-"+c)}}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFooterCell",["$timeout","gridUtil","uiGridConstants","$compile",function(a,b,c,d){var e={priority:0,scope:{col:"=",row:"=",renderIndex:"="},replace:!0,require:"^uiGrid",compile:function(a,b,e){return{pre:function(a,b,c,e){var f=d(a.col.footerCellTemplate)(a);b.append(f)},post:function(a,b,d,e){a.grid=e.grid;var f=a.col.getColClass(!1);b.addClass(f);var g,h=function(c){var d=b;g&&(d.removeClass(g),g=null),g=angular.isFunction(a.col.footerCellClass)?a.col.footerCellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.footerCellClass,d.addClass(g)};a.col.footerCellClass&&h(),a.col.updateAggregationValue();var i=a.grid.registerDataChangeCallback(h,[c.dataChange.COLUMN]);a.grid.api.core.on.rowsRendered(a,a.col.updateAggregationValue),a.grid.api.core.on.rowsRendered(a,h),a.$on("$destroy",i)}}}};return e}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFooter",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(a,b,c,d,e){return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(a,c){return{pre:function(a,c,e,f){var g=f[0],h=f[1];a.grid=g.grid,a.colContainer=h.colContainer,h.footer=c;var i=a.grid.options.footerTemplate;d.getTemplate(i).then(function(d){var e=angular.element(d),f=b(e)(a);if(c.append(f),h){var g=c[0].getElementsByClassName("ui-grid-footer-viewport")[0];g&&(h.footerViewport=g)}})},post:function(a,b,c,e){var f=e[0],g=e[1];f.grid;d.disableAnimations(b),g.footer=b;var h=b[0].getElementsByClassName("ui-grid-footer-viewport")[0];h&&(g.footerViewport=h)}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridGridFooter",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(a,b,c,d,e){return{restrict:"EA",replace:!0,require:"^uiGrid",scope:!0,compile:function(a,c){return{pre:function(a,c,e,f){a.grid=f.grid;var g=a.grid.options.gridFooterTemplate;d.getTemplate(g).then(function(d){var e=angular.element(d),f=b(e)(a);c.append(f)})},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridGroupPanel",["$compile","uiGridConstants","gridUtil",function(a,b,c){var d="ui-grid/ui-grid-group-panel";return{restrict:"EA",replace:!0,require:"?^uiGrid",scope:!1,compile:function(b,e){return{pre:function(b,e,f,g){var h=b.grid.options.groupPanelTemplate||d;c.getTemplate(h).then(function(c){var d=angular.element(c),f=a(d)(b);e.append(f)})},post:function(a,b,c,d){b.bind("$destroy",function(){})}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeaderCell",["$compile","$timeout","$window","$document","gridUtil","uiGridConstants","ScrollEvent","i18nService",function(a,b,c,d,e,f,g,h){var i=500,j=500,k={priority:0,scope:{col:"=",row:"=",renderIndex:"="},require:["^uiGrid","^uiGridRenderContainer"],replace:!0,compile:function(){return{pre:function(b,c,d){var e=a(b.col.headerCellTemplate)(b);c.append(e)},post:function(a,c,e,g){var k=g[0],l=g[1];a.i18n={headerCell:h.getSafeText("headerCell"),sort:h.getSafeText("sort")},a.isSortPriorityVisible=function(){return angular.isNumber(a.col.sort.priority)&&a.grid.columns.some(function(b,c){return angular.isNumber(b.sort.priority)&&b!==a.col})},a.getSortDirectionAriaLabel=function(){var b=a.col,c=b.sort.direction===f.ASC?a.i18n.sort.ascending:b.sort.direction===f.DESC?a.i18n.sort.descending:a.i18n.sort.none,d=c;return a.isSortPriorityVisible()&&(d=d+". "+a.i18n.headerCell.priority+" "+b.sort.priority),d},a.grid=k.grid,a.renderContainer=k.grid.renderContainers[l.containerId];var m=a.col.getColClass(!1);c.addClass(m),a.menuShown=!1,a.asc=f.ASC,a.desc=f.DESC;var n,o,p=(angular.element(c[0].querySelectorAll(".ui-grid-header-cell-menu")),angular.element(c[0].querySelectorAll(".ui-grid-cell-contents"))),q=[];a.downFn=function(e){e.stopPropagation(),"undefined"!=typeof e.originalEvent&&void 0!==e.originalEvent&&(e=e.originalEvent),e.button&&0!==e.button||(o=e.pageX,a.mousedownStartTime=(new Date).getTime(),a.mousedownTimeout=b(function(){},i),a.mousedownTimeout.then(function(){a.colMenu&&k.columnMenuScope.showMenu(a.col,c,e)}),k.fireEvent(f.events.COLUMN_HEADER_CLICK,{event:e,columnName:a.col.colDef.name}),a.offAllEvents(),"touchstart"===e.type?(d.on("touchend",a.upFn),d.on("touchmove",a.moveFn)):"mousedown"===e.type&&(d.on("mouseup",a.upFn),d.on("mousemove",a.moveFn)))},a.upFn=function(c){c.stopPropagation(),b.cancel(a.mousedownTimeout),a.offAllEvents(),a.onDownEvents(c.type);var d=(new Date).getTime(),e=d-a.mousedownStartTime;e>i||a.sortable&&a.handleClick(c)},a.moveFn=function(c){var d=c.pageX-o;0!==d&&(b.cancel(a.mousedownTimeout),a.offAllEvents(),a.onDownEvents(c.type))},a.clickFn=function(b){b.stopPropagation(),p.off("click",a.clickFn)},a.offAllEvents=function(){p.off("touchstart",a.downFn),p.off("mousedown",a.downFn),d.off("touchend",a.upFn),d.off("mouseup",a.upFn),d.off("touchmove",a.moveFn),d.off("mousemove",a.moveFn),p.off("click",a.clickFn)},a.onDownEvents=function(c){switch(c){case"touchmove":case"touchend":p.on("click",a.clickFn),p.on("touchstart",a.downFn),b(function(){p.on("mousedown",a.downFn)},j);break;case"mousemove":case"mouseup":p.on("click",a.clickFn),p.on("mousedown",a.downFn),b(function(){p.on("touchstart",a.downFn)},j);break;default:p.on("click",a.clickFn),p.on("touchstart",a.downFn),p.on("mousedown",a.downFn)}};var r=function(d){var e=c;n&&(e.removeClass(n),n=null),n=angular.isFunction(a.col.headerCellClass)?a.col.headerCellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.headerCellClass,e.addClass(n),b(function(){var b=a.grid.renderContainers.right?a.grid.renderContainers.right:a.grid.renderContainers.body;a.isLastCol=a.col===b.visibleColumnCache[b.visibleColumnCache.length-1]}),k.grid.options.enableSorting&&a.col.enableSorting?a.sortable=!0:a.sortable=!1;var g=a.filterable;k.grid.options.enableFiltering&&a.col.enableFiltering?a.filterable=!0:a.filterable=!1,g!==a.filterable&&("undefined"!=typeof a.col.updateFilters&&a.col.updateFilters(a.filterable),a.filterable?(a.col.filters.forEach(function(b,c){q.push(a.$watch("col.filters["+c+"].term",function(a,b){a!==b&&(k.grid.api.core.raise.filterChanged(),k.grid.api.core.notifyDataChange(f.dataChange.COLUMN),k.grid.queueGridRefresh())}))}),a.$on("$destroy",function(){q.forEach(function(a){a()})})):q.forEach(function(a){a()})),a.col.grid.options&&a.col.grid.options.enableColumnMenus!==!1&&a.col.colDef&&a.col.colDef.enableColumnMenu!==!1?a.colMenu=!0:a.colMenu=!1,a.offAllEvents(),(a.sortable||a.colMenu)&&(a.onDownEvents(),a.$on("$destroy",function(){a.offAllEvents()}))};r();var s=a.grid.registerDataChangeCallback(r,[f.dataChange.COLUMN]);a.$on("$destroy",s),a.handleClick=function(b){var c=!1;b.shiftKey&&(c=!0),k.grid.sortColumn(a.col,c).then(function(){k.columnMenuScope&&k.columnMenuScope.hideMenu(),k.grid.refresh()})},a.toggleMenu=function(b){b.stopPropagation(),k.columnMenuScope.menuShown&&k.columnMenuScope.col===a.col?k.columnMenuScope.hideMenu():k.columnMenuScope.showMenu(a.col,c)}}}}};return k}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeader",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout","ScrollEvent",function(a,b,c,d,e,f){var g="ui-grid/ui-grid-header",h="ui-grid/ui-grid-no-header";return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(a,c){return{pre:function(a,c,e,i){function j(){m.header=m.colContainer.header=c;var a=c[0].getElementsByClassName("ui-grid-header-canvas");a.length>0?m.headerCanvas=m.colContainer.headerCanvas=a[0]:m.headerCanvas=null}function k(a){if(!l.grid.isScrollingHorizontally){var b=d.normalizeScrollLeft(m.headerViewport,l.grid),c=m.colContainer.scrollHorizontal(b),e=new f(l.grid,null,m.colContainer,f.Sources.ViewPortScroll);e.newScrollLeft=b,c>-1&&(e.x={percentage:c}),l.grid.scrollContainers(null,e)}}var l=i[0],m=i[1];a.grid=l.grid,a.colContainer=m.colContainer,j();var n;n=a.grid.options.showHeader?a.grid.options.headerTemplate?a.grid.options.headerTemplate:g:h,d.getTemplate(n).then(function(d){var e=angular.element(d),f=b(e)(a);if(c.replaceWith(f),c=f,j(),m){var g=c[0].getElementsByClassName("ui-grid-header-viewport")[0];g&&(m.headerViewport=g,angular.element(g).on("scroll",k),a.$on("$destroy",function(){angular.element(g).off("scroll",k)}))}a.grid.queueRefresh()})},post:function(a,b,c,e){function f(){var a=h.colContainer.visibleColumnCache,b="",c=0;return a.forEach(function(a){b+=a.getColClassDefinition(),c+=a.drawnWidth}),h.colContainer.canvasWidth=c,b}var g=e[0],h=e[1];g.grid;d.disableAnimations(b),h.header=b;var i=b[0].getElementsByClassName("ui-grid-header-viewport")[0];i&&(h.headerViewport=i),g&&g.grid.registerStyleComputation({priority:15,func:f})}}}}}])}(),function(){angular.module("ui.grid").service("uiGridGridMenuService",["gridUtil","i18nService","uiGridConstants",function(a,b,c){var d={initialize:function(a,b){b.gridMenuScope=a,a.grid=b,a.registeredMenuItems=[],a.$on("$destroy",function(){a.grid&&a.grid.gridMenuScope&&(a.grid.gridMenuScope=null),a.grid&&(a.grid=null),a.registeredMenuItems&&(a.registeredMenuItems=null)}),a.registeredMenuItems=[],b.api.registerMethod("core","addToGridMenu",d.addToGridMenu),b.api.registerMethod("core","removeFromGridMenu",d.removeFromGridMenu)},addToGridMenu:function(b,c){angular.isArray(c)?b.gridMenuScope?(b.gridMenuScope.registeredMenuItems=b.gridMenuScope.registeredMenuItems?b.gridMenuScope.registeredMenuItems:[],b.gridMenuScope.registeredMenuItems=b.gridMenuScope.registeredMenuItems.concat(c)):a.logError("Asked to addToGridMenu, but gridMenuScope not present.  Timing issue?  Please log issue with ui-grid"):a.logError("addToGridMenu: menuItems must be an array, and is not, not adding any items")},removeFromGridMenu:function(b,c){var d=-1;b&&b.gridMenuScope&&b.gridMenuScope.registeredMenuItems.forEach(function(b,e){b.id===c&&(d>-1?a.logError("removeFromGridMenu: found multiple items with the same id, removing only the last"):d=e)}),d>-1&&b.gridMenuScope.registeredMenuItems.splice(d,1)},getMenuItems:function(c){var e=[];c.grid.options.gridMenuCustomItems&&(angular.isArray(c.grid.options.gridMenuCustomItems)?e=e.concat(c.grid.options.gridMenuCustomItems):a.logError("gridOptions.gridMenuCustomItems must be an array, and is not"));var f=[{title:b.getSafeText("gridMenu.clearAllFilters"),action:function(a){c.grid.clearAllFilters(void 0,!0,void 0)},shown:function(){return c.grid.options.enableFiltering},order:100}];return e=e.concat(f),e=e.concat(c.registeredMenuItems),c.grid.options.gridMenuShowHideColumns!==!1&&(e=e.concat(d.showHideColumns(c))),e.sort(function(a,b){return a.order-b.order}),e},showHideColumns:function(a){var c=[];return a.grid.options.columnDefs&&0!==a.grid.options.columnDefs.length&&0!==a.grid.columns.length?(c.push({title:b.getSafeText("gridMenu.columns"),order:300}),a.grid.options.gridMenuTitleFilter=a.grid.options.gridMenuTitleFilter?a.grid.options.gridMenuTitleFilter:function(a){return a},a.grid.options.columnDefs.forEach(function(b,e){if(b.enableHiding!==!1){var f={icon:"ui-grid-icon-ok",action:function(a){a.stopPropagation(),d.toggleColumnVisibility(this.context.gridCol)},shown:function(){return this.context.gridCol.colDef.visible===!0||void 0===this.context.gridCol.colDef.visible},context:{gridCol:a.grid.getColumn(b.name||b.field)},leaveOpen:!0,order:301+2*e};d.setMenuItemTitle(f,b,a.grid),c.push(f),f={icon:"ui-grid-icon-cancel",action:function(a){a.stopPropagation(),d.toggleColumnVisibility(this.context.gridCol)},shown:function(){return!(this.context.gridCol.colDef.visible===!0||void 0===this.context.gridCol.colDef.visible)},context:{gridCol:a.grid.getColumn(b.name||b.field)},leaveOpen:!0,order:301+2*e+1},d.setMenuItemTitle(f,b,a.grid),c.push(f)}}),c):c},setMenuItemTitle:function(b,c,d){var e=d.options.gridMenuTitleFilter(c.displayName||a.readableColumnName(c.name)||c.field);"string"==typeof e?b.title=e:e.then?(b.title="",e.then(function(a){b.title=a},function(a){b.title=a})):(a.logError("Expected gridMenuTitleFilter to return a string or a promise, it has returned neither, bad config"),b.title="badconfig")},toggleColumnVisibility:function(a){a.colDef.visible=!(a.colDef.visible===!0||void 0===a.colDef.visible),a.grid.refresh(),a.grid.api.core.notifyDataChange(c.dataChange.COLUMN),a.grid.api.core.raise.columnVisibilityChanged(a)}};return d}]).directive("uiGridMenuButton",["gridUtil","uiGridConstants","uiGridGridMenuService","i18nService",function(a,b,c,d){return{priority:0,scope:!0,require:["^uiGrid"],templateUrl:"ui-grid/ui-grid-menu-button",replace:!0,link:function(b,e,f,g){var h=g[0];b.i18n={aria:d.getSafeText("gridMenu.aria")},c.initialize(b,h.grid),b.shown=!1,b.toggleMenu=function(){b.shown?(b.$broadcast("hide-menu"),b.shown=!1):(b.menuItems=c.getMenuItems(b),b.$broadcast("show-menu"),b.shown=!0)},b.$on("menu-hidden",function(){b.shown=!1,a.focus.bySelector(e,".ui-grid-icon-container")})}}}])}(),function(){angular.module("ui.grid").directive("uiGridMenu",["$compile","$timeout","$window","$document","gridUtil","uiGridConstants","i18nService",function(a,b,c,d,e,f,g){var h={priority:0,scope:{menuItems:"=",autoHide:"=?"},require:"?^uiGrid",templateUrl:"ui-grid/uiGridMenu",replace:!1,link:function(a,d,h,i){var j;a.dynamicStyles="",i&&(j=i.grid.gridHeight-30,a.dynamicStyles=[".grid"+i.grid.id+" .ui-grid-menu-mid {","max-height: "+j+"px;","}"].join(" ")),a.i18n={close:g.getSafeText("columnMenu.close")},a.showMenu=function(c,f){a.shown?a.shownMid||(a.shownMid=!0,a.$emit("menu-shown")):(a.shown=!0,b(function(){a.shownMid=!0,a.$emit("menu-shown")}));var g="click";f&&f.originalEvent&&f.originalEvent.type&&"touchstart"===f.originalEvent.type&&(g=f.originalEvent.type),angular.element(document).off("click touchstart",k),d.off("keyup",l),d.off("keydown",m),b(function(){angular.element(document).on(g,k),d.on("keyup",l),d.on("keydown",m)}),e.focus.bySelector(d,"button[type=button]",!0)},a.hideMenu=function(c){a.shown&&(a.shownMid=!1,b(function(){a.shownMid||(a.shown=!1,a.$emit("menu-hidden"))},200)),angular.element(document).off("click touchstart",k),d.off("keyup",l),d.off("keydown",m)},a.$on("hide-menu",function(b,c){a.hideMenu(b,c)}),a.$on("show-menu",function(b,c){a.showMenu(b,c)});var k=function(){a.shown&&a.$apply(function(){a.hideMenu()})},l=function(b){27===b.keyCode&&a.hideMenu()},m=function(a){var b=function(b){return b.focus(),a.preventDefault(),!1};if(9===a.keyCode){var c,e,f=d[0].querySelectorAll("button:not(.ng-hide)");f.length>0&&(c=f[0],e=f[f.length-1],a.target!==e||a.shiftKey?a.target===c&&a.shiftKey&&b(e):b(c))}};"undefined"!=typeof a.autoHide&&void 0!==a.autoHide||(a.autoHide=!0),a.autoHide&&angular.element(c).on("resize",k),a.$on("$destroy",function(){angular.element(document).off("click touchstart",k)}),a.$on("$destroy",function(){angular.element(c).off("resize",k)}),i&&a.$on("$destroy",i.grid.api.core.on.scrollBegin(a,k)),a.$on("$destroy",a.$on(f.events.ITEM_DRAGGING,k))}};return h}]).directive("uiGridMenuItem",["gridUtil","$compile","i18nService",function(a,b,c){var d={priority:0,scope:{name:"=",active:"=",action:"=",icon:"=",shown:"=",context:"=",templateUrl:"=",leaveOpen:"=",screenReaderOnly:"="},require:["?^uiGrid"],templateUrl:"ui-grid/uiGridMenuItem",replace:!1,compile:function(){return{pre:function(c,d){c.templateUrl&&a.getTemplate(c.templateUrl).then(function(a){var e=angular.element(a),f=b(e)(c);d.replaceWith(f)})},post:function(b,d,e,f){var g=f[0];"undefined"!=typeof b.shown&&null!==b.shown||(b.shown=function(){return!0}),b.itemShown=function(){var a={};return b.context&&(a.context=b.context),"undefined"!=typeof g&&g&&(a.grid=g.grid),b.shown.call(a)},b.itemAction=function(c,e){if(a.logDebug("itemAction"),c.stopPropagation(),"function"==typeof b.action){var f={};b.context&&(f.context=b.context),"undefined"!=typeof g&&g&&(f.grid=g.grid),b.action.call(f,c,e),b.leaveOpen?a.focus.bySelector(angular.element(a.closestElm(d,".ui-grid-menu-items")),"button[type=button]",!0):b.$emit("hide-menu")}},b.i18n=c.get()}}}};return d}])}(),function(){"use strict";var a=angular.module("ui.grid");angular.forEach([{tag:"Src",method:"attr"},{tag:"Text",method:"text"},{tag:"Href",method:"attr"},{tag:"Class",method:"addClass"},{tag:"Html",method:"html"},{tag:"Alt",method:"attr"},{tag:"Style",method:"css"},{tag:"Value",method:"attr"},{tag:"Id",method:"attr"},{tag:"Id",directiveName:"IdGrid",method:"attr",appendGridId:!0},{tag:"Title",method:"attr"},{tag:"Label",method:"attr",aria:!0},{tag:"Labelledby",method:"attr",aria:!0},{tag:"Labelledby",directiveName:"LabelledbyGrid",appendGridId:!0,method:"attr",aria:!0},{tag:"Describedby",method:"attr",aria:!0},{tag:"Describedby",directiveName:"DescribedbyGrid",appendGridId:!0,method:"attr",aria:!0}],function(b){var c="uiGridOneBind",d=(b.aria?c+"Aria":c)+(b.directiveName?b.directiveName:b.tag);a.directive(d,["gridUtil",function(a){return{restrict:"A",require:["?uiGrid","?^uiGrid"],link:function(c,e,f,g){var h=function(b){var e;if(c.grid)e=c.grid;else if(c.col&&c.col.grid)e=c.col.grid;else if(!g.some(function(a){return a&&a.grid?(e=a.grid,!0):void 0}))throw a.logError("["+d+"] A valid grid could not be found to bind id. Are you using this directive within the correct scope? Trying to generate id: [gridID]-"+b),new Error("No valid grid could be found");if(e){var f=new RegExp(e.id.toString());f.test(b)||(b=e.id.toString()+"-"+b)}return b},i=c.$watch(f[d],function(a){if(a){if(b.appendGridId){var c=null;angular.forEach(a.split(" "),function(a){c=(c?c+" ":"")+h(a)}),a=c}switch(b.method){case"attr":b.aria?e[b.method]("aria-"+b.tag.toLowerCase(),a):e[b.method](b.tag.toLowerCase(),a);break;case"addClass":if(angular.isObject(a)&&!angular.isArray(a)){var d=[],f=!1;if(angular.forEach(a,function(a,b){null!==a&&"undefined"!=typeof a&&(f=!0,a&&d.push(b))}),!f)return;a=d}if(!a)return;e.addClass(angular.isArray(a)?a.join(" "):a);break;default:e[b.method](a)}i()}},!0)}}}])})}(),function(){"use strict";var a=angular.module("ui.grid");a.directive("uiGridRenderContainer",["$timeout","$document","uiGridConstants","gridUtil","ScrollEvent",function(a,b,c,d,e){return{replace:!0,transclude:!0,templateUrl:"ui-grid/uiGridRenderContainer",require:["^uiGrid","uiGridRenderContainer"],scope:{containerId:"=",rowContainerName:"=",colContainerName:"=",bindScrollHorizontal:"=",bindScrollVertical:"=",enableVerticalScrollbar:"=",enableHorizontalScrollbar:"="},controller:"uiGridRenderContainer as RenderContainer",compile:function(){return{pre:function(a,b,c,d){var e=d[0],f=d[1],g=a.grid=e.grid;if(!a.rowContainerName)throw"No row render container name specified";if(!a.colContainerName)throw"No column render container name specified";if(!g.renderContainers[a.rowContainerName])throw"Row render container '"+a.rowContainerName+"' is not registered.";if(!g.renderContainers[a.colContainerName])throw"Column render container '"+a.colContainerName+"' is not registered.";var h=a.rowContainer=g.renderContainers[a.rowContainerName],i=a.colContainer=g.renderContainers[a.colContainerName];f.containerId=a.containerId,f.rowContainer=h,f.colContainer=i},post:function(a,b,c,f){function g(){var b="",c=l.canvasWidth,d=l.getViewportWidth(),e=k.getCanvasHeight(),f=k.getViewportHeight();l.needsHScrollbarPlaceholder()&&(f-=j.scrollbarHeight);var g,i;return g=i=l.getHeaderViewportWidth(),b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-canvas { width: "+c+"px; height: "+e+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-canvas { width: "+(c+j.scrollbarWidth)+"px; }",b+=o.explicitHeaderCanvasHeight?"\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-canvas { height: "+o.explicitHeaderCanvasHeight+"px; }":"\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-canvas { height: inherit; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-viewport { width: "+d+"px; height: "+f+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-header-viewport { width: "+g+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-footer-canvas { width: "+(c+j.scrollbarWidth)+"px; }",b+="\n .grid"+h.grid.id+" .ui-grid-render-container-"+a.containerId+" .ui-grid-footer-viewport { width: "+i+"px; }"}var h=f[0],i=f[1],j=h.grid,k=i.rowContainer,l=i.colContainer,m=null,n=null,o=j.renderContainers[a.containerId];b.addClass("ui-grid-render-container-"+a.containerId),d.on.mousewheel(b,function(a){var b=new e(j,k,l,e.Sources.RenderContainerMouseWheel);if(0!==a.deltaY){var c=-1*a.deltaY*a.deltaFactor;m=i.viewport[0].scrollTop,b.verticalScrollLength=k.getVerticalScrollLength();var f=(m+c)/b.verticalScrollLength;f>=1&&m<b.verticalScrollLength&&(i.viewport[0].scrollTop=b.verticalScrollLength),0>f?f=0:f>1&&(f=1),b.y={percentage:f,pixels:c}}if(0!==a.deltaX){var g=a.deltaX*a.deltaFactor;n=d.normalizeScrollLeft(i.viewport,j),b.horizontalScrollLength=l.getCanvasWidth()-l.getViewportWidth();var h=(n+g)/b.horizontalScrollLength;0>h?h=0:h>1&&(h=1),b.x={percentage:h,pixels:g}}0!==a.deltaY&&(b.atTop(m)||b.atBottom(m))||0!==a.deltaX&&(b.atLeft(n)||b.atRight(n))||(a.preventDefault(),a.stopPropagation(),b.fireThrottledScrollingEvent("",b))}),b.bind("$destroy",function(){b.unbind("keydown"),["touchstart","touchmove","touchend","keydown","wheel","mousewheel","DomMouseScroll","MozMousePixelScroll"].forEach(function(a){b.unbind(a)})}),h.grid.registerStyleComputation({priority:6,func:g})}}}}}]),a.controller("uiGridRenderContainer",["$scope","gridUtil",function(a,b){}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridRow",["gridUtil",function(a){return{replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:{row:"=uiGridRow",rowRenderIndex:"="},compile:function(){return{pre:function(a,b,c,d){function e(){a.row.getRowTemplateFn.then(function(c){var d=a.$new();c(d,function(a,c){h&&(h.remove(),i.$destroy()),b.empty().append(a),h=a,i=d})})}var f=d[0],g=d[1];f.grid;a.grid=f.grid,a.colContainer=g.colContainer;var h,i;e(),a.$watch("row.getRowTemplateFn",function(a,b){a!==b&&e()})},post:function(a,b,c,d){}}}}}])}(),function(){angular.module("ui.grid").directive("uiGridStyle",["gridUtil","$interpolate",function(a,b){return{link:function(a,c,d,e){var f=b(c.text(),!0);f&&a.$watch(f,function(a){c.text(a)})}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridViewport",["gridUtil","ScrollEvent","uiGridConstants","$log",function(a,b,c,d){return{replace:!0,scope:{},controllerAs:"Viewport",templateUrl:"ui-grid/uiGridViewport",require:["^uiGrid","^uiGridRenderContainer"],link:function(c,d,e,f){function g(e){var f=d[0].scrollTop,g=a.normalizeScrollLeft(d,p),h=n.scrollVertical(f),i=o.scrollHorizontal(g),j=new b(p,n,o,b.Sources.ViewPortScroll);j.newScrollLeft=g,j.newScrollTop=f,i>-1&&(j.x={percentage:i}),h>-1&&(j.y={percentage:h}),p.scrollContainers(c.$parent.containerId,j)}function h(a){m.prevScrollArgs=a;var b=a.getNewScrollTop(n,m.viewport);d[0].scrollTop=b}function i(b){m.prevScrollArgs=b;var c=b.getNewScrollLeft(o,m.viewport);d[0].scrollLeft=a.denormalizeScrollLeft(m.viewport,c,p)}function j(b){var c=b.getNewScrollLeft(o,m.viewport);m.headerViewport&&(m.headerViewport.scrollLeft=a.denormalizeScrollLeft(m.viewport,c,p))}function k(b){var c=b.getNewScrollLeft(o,m.viewport);m.footerViewport&&(m.footerViewport.scrollLeft=a.denormalizeScrollLeft(m.viewport,c,p))}var l=f[0],m=f[1];c.containerCtrl=m;var n=m.rowContainer,o=m.colContainer,p=l.grid;c.grid=l.grid,c.rowContainer=m.rowContainer,c.colContainer=m.colContainer,m.viewport=d,d.on("scroll",g);c.$parent.bindScrollVertical&&p.addVerticalScrollSync(c.$parent.containerId,h),c.$parent.bindScrollHorizontal&&(p.addHorizontalScrollSync(c.$parent.containerId,i),p.addHorizontalScrollSync(c.$parent.containerId+"header",j),p.addHorizontalScrollSync(c.$parent.containerId+"footer",k))},controller:["$scope",function(a){this.rowStyle=function(b){var c=a.rowContainer,d=a.colContainer,e={};if(0===b&&0!==c.currentTopRow){var f=c.currentTopRow*c.grid.options.rowHeight;e["margin-top"]=f+"px"}return 0!==d.currentFirstColumn&&(d.grid.isRTL()?e["margin-right"]=d.columnOffset+"px":e["margin-left"]=d.columnOffset+"px"),e}}]}}])}(),function(){angular.module("ui.grid").directive("uiGridVisible",function(){return function(a,b,c){a.$watch(c.uiGridVisible,function(a){b[a?"removeClass":"addClass"]("ui-grid-invisible")})}})}(),function(){"use strict";function a(a,b,c,d,e,f){return{templateUrl:"ui-grid/ui-grid",scope:{uiGrid:"="},replace:!0,transclude:!0,controller:"uiGridController",compile:function(){return{post:function(a,b,g,h){function i(){b[0].offsetWidth<=0&&p>q?(setTimeout(i,o),q++):c(k)}function j(){angular.element(d).on("resize",m),b.on("$destroy",function(){angular.element(d).off("resize",m)}),a.$watch(function(){return n.hasLeftContainer()},function(a,b){a!==b&&n.refreshCanvas(!0)}),a.$watch(function(){return n.hasRightContainer()},function(a,b){a!==b&&n.refreshCanvas(!0)})}function k(){n.gridWidth=a.gridWidth=e.elementWidth(b),n.canvasWidth=h.grid.gridWidth,n.gridHeight=a.gridHeight=e.elementHeight(b),n.gridHeight<=n.options.rowHeight&&n.options.enableMinHeightCheck&&l(),n.refreshCanvas(!0)}function l(){var c=n.options.minRowsToShow*n.options.rowHeight,d=n.options.showHeader?n.options.headerRowHeight:0,g=n.calcFooterHeight(),h=0;n.options.enableHorizontalScrollbar===f.scrollbars.ALWAYS&&(h=e.getScrollbarWidth());var i=0;if(angular.forEach(n.options.columnDefs,function(a){a.hasOwnProperty("filter")?1>i&&(i=1):a.hasOwnProperty("filters")&&i<a.filters.length&&(i=a.filters.length)}),n.options.enableFiltering&&!i){var j=n.options.columnDefs.length&&n.options.columnDefs.every(function(a){
+return a.enableFiltering===!1});j||(i=1)}var k=i*d,l=d+c+g+h+k;b.css("height",l+"px"),n.gridHeight=a.gridHeight=e.elementHeight(b)}function m(c){n.gridWidth=a.gridWidth=e.elementWidth(b),n.gridHeight=a.gridHeight=e.elementHeight(b),n.refreshCanvas(!0)}var n=h.grid;h.scrollbars=[],n.element=b;var o=100,p=20,q=0;j(),k(),n.renderingComplete(),i()}}}}}angular.module("ui.grid").controller("uiGridController",["$scope","$element","$attrs","gridUtil","$q","uiGridConstants","$templateCache","gridClassFactory","$timeout","$parse","$compile",function(a,b,c,d,e,f,g,h,i,j,k){function l(b,c){b&&b!==c&&(n.grid.options.columnDefs=a.uiGrid.columnDefs,n.grid.buildColumns({orderByColumnDefs:!0}).then(function(){n.grid.preCompileCellTemplates(),n.grid.callDataChangeCallbacks(f.dataChange.COLUMN)}))}function m(b){var d=[];if(n.grid.options.fastWatch&&(b=angular.isString(a.uiGrid.data)?n.grid.appScope[a.uiGrid.data]:a.uiGrid.data),p=b,b){var g=n.grid.columns.length>(n.grid.rowHeaderColumns?n.grid.rowHeaderColumns.length:0);!g&&!c.uiGridColumns&&0===n.grid.options.columnDefs.length&&b.length>0&&n.grid.buildColumnDefsFromData(b),!g&&(n.grid.options.columnDefs.length>0||b.length>0)&&d.push(n.grid.buildColumns().then(function(){n.grid.preCompileCellTemplates()})),e.all(d).then(function(){n.grid.modifyRows(p).then(function(){n.grid.redrawInPlace(!0),a.$evalAsync(function(){n.grid.refreshCanvas(!0),n.grid.callDataChangeCallbacks(f.dataChange.ROW)})})})}}var n=this;n.grid=h.createGrid(a.uiGrid),n.grid.appScope=n.grid.appScope||a.$parent,b.addClass("grid"+n.grid.id),n.grid.rtl="rtl"===d.getStyles(b[0]).direction,a.grid=n.grid,c.uiGridColumns&&c.$observe("uiGridColumns",function(a){n.grid.options.columnDefs=a,n.grid.buildColumns().then(function(){n.grid.preCompileCellTemplates(),n.grid.refreshCanvas(!0)})});var o=[];n.grid.options.fastWatch?(n.uiGrid=a.uiGrid,angular.isString(a.uiGrid.data)?(o.push(a.$parent.$watch(a.uiGrid.data,m)),o.push(a.$parent.$watch(function(){return n.grid.appScope[a.uiGrid.data]?n.grid.appScope[a.uiGrid.data].length:void 0},m))):(o.push(a.$parent.$watch(function(){return a.uiGrid.data},m)),o.push(a.$parent.$watch(function(){return a.uiGrid.data.length},function(){m(a.uiGrid.data)}))),o.push(a.$parent.$watch(function(){return a.uiGrid.columnDefs},l)),o.push(a.$parent.$watch(function(){return a.uiGrid.columnDefs.length},function(){l(a.uiGrid.columnDefs)}))):(angular.isString(a.uiGrid.data)?o.push(a.$parent.$watchCollection(a.uiGrid.data,m)):o.push(a.$parent.$watchCollection(function(){return a.uiGrid.data},m)),o.push(a.$parent.$watchCollection(function(){return a.uiGrid.columnDefs},l)));var p,q=a.$watch(function(){return n.grid.styleComputations},function(){n.grid.refreshCanvas(!0)});a.$on("$destroy",function(){o.forEach(function(a){a()}),q()}),n.fireEvent=function(b,c){"undefined"!=typeof c&&void 0!==c||(c={}),"undefined"!=typeof c.grid&&void 0!==c.grid||(c.grid=n.grid),a.$broadcast(b,c)},n.innerCompile=function(b){k(b)(a)}}]),angular.module("ui.grid").directive("uiGrid",a),a.$inject=["$compile","$templateCache","$timeout","$window","gridUtil","uiGridConstants"]}(),function(){"use strict";angular.module("ui.grid").directive("uiGridPinnedContainer",["gridUtil",function(a){return{restrict:"EA",replace:!0,template:'<div class="ui-grid-pinned-container"><div ui-grid-render-container container-id="side" row-container-name="\'body\'" col-container-name="side" bind-scroll-vertical="true" class="{{ side }} ui-grid-render-container-{{ side }}"></div></div>',scope:{side:"=uiGridPinnedContainer"},require:"^uiGrid",compile:function(){return{post:function(a,b,c,d){function e(){var a=this,b=0;a.visibleColumnCache.forEach(function(a){b+=a.drawnWidth});var c=a.getViewportAdjustment();return b+=c.width}function f(){if("left"===a.side||"right"===a.side){for(var b=h.renderContainers[a.side].visibleColumnCache,c=0,d=0;d<b.length;d++){var e=b[d];c+=e.drawnWidth||e.width||0}return c}}function g(){var c="";return"left"!==a.side&&"right"!==a.side||(i=f(),b.attr("style",null),c+=".grid"+h.id+" .ui-grid-pinned-container-"+a.side+", .grid"+h.id+" .ui-grid-pinned-container-"+a.side+" .ui-grid-render-container-"+a.side+" .ui-grid-viewport { width: "+i+"px; } "),c}var h=d.grid,i=0;b.addClass("ui-grid-pinned-container-"+a.side),"left"!==a.side&&"right"!==a.side||(h.renderContainers[a.side].getViewportWidth=e),h.renderContainers.body.registerViewportAdjuster(function(b){return i=f(),b.width-=i,b.side=a.side,b}),h.registerStyleComputation({priority:15,func:g})}}}}}])}(),function(){angular.module("ui.grid").factory("Grid",["$q","$compile","$parse","gridUtil","uiGridConstants","GridOptions","GridColumn","GridRow","GridApi","rowSorter","rowSearcher","GridRenderContainer","$timeout","ScrollEvent",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){function o(){}var p=function(a){function b(a){g.isScrollingVertically=!1,g.api.core.raise.scrollEnd(a),g.scrollDirection=e.scrollDirection.NONE}function c(a){g.isScrollingHorizontally=!1,g.api.core.raise.scrollEnd(a),g.scrollDirection=e.scrollDirection.NONE}var g=this;if(void 0===a||"undefined"==typeof a.id||!a.id)throw new Error("No ID provided. An ID must be given when creating a grid.");if(!/^[_a-zA-Z0-9-]+$/.test(a.id))throw new Error("Grid id '"+a.id+'" is invalid. It must follow CSS selector syntax rules.');g.id=a.id,delete a.id,g.options=f.initialize(a),g.appScope=g.options.appScopeProvider,g.headerHeight=g.options.headerRowHeight,g.footerHeight=g.calcFooterHeight(),g.columnFooterHeight=g.calcColumnFooterHeight(),g.rtl=!1,g.gridHeight=0,g.gridWidth=0,g.columnBuilders=[],g.rowBuilders=[],g.rowsProcessors=[],g.columnsProcessors=[],g.styleComputations=[],g.viewportAdjusters=[],g.rowHeaderColumns=[],g.dataChangeCallbacks={},g.verticalScrollSyncCallBackFns={},g.horizontalScrollSyncCallBackFns={},g.renderContainers={},g.renderContainers.body=new l("body",g),g.cellValueGetterCache={},g.getRowTemplateFn=null,g.rows=[],g.columns=[],g.isScrollingVertically=!1,g.isScrollingHorizontally=!1,g.scrollDirection=e.scrollDirection.NONE,g.disableScrolling=!1;var h=d.debounce(b,g.options.scrollDebounce),k=d.debounce(b,0),m=d.debounce(c,g.options.scrollDebounce),n=d.debounce(c,0);g.flagScrollingVertically=function(a){g.isScrollingVertically||g.isScrollingHorizontally||g.api.core.raise.scrollBegin(a),g.isScrollingVertically=!0,0!==g.options.scrollDebounce&&a.withDelay?h(a):k(a)},g.flagScrollingHorizontally=function(a){g.isScrollingVertically||g.isScrollingHorizontally||g.api.core.raise.scrollBegin(a),g.isScrollingHorizontally=!0,0!==g.options.scrollDebounce&&a.withDelay?m(a):n(a)},g.scrollbarHeight=0,g.scrollbarWidth=0,g.options.enableHorizontalScrollbar===e.scrollbars.ALWAYS&&(g.scrollbarHeight=d.getScrollbarWidth()),g.options.enableVerticalScrollbar===e.scrollbars.ALWAYS&&(g.scrollbarWidth=d.getScrollbarWidth()),g.api=new i(g),g.api.registerMethod("core","refresh",this.refresh),g.api.registerMethod("core","queueGridRefresh",this.queueGridRefresh),g.api.registerMethod("core","refreshRows",this.refreshRows),g.api.registerMethod("core","queueRefresh",this.queueRefresh),g.api.registerMethod("core","handleWindowResize",this.handleWindowResize),g.api.registerMethod("core","addRowHeaderColumn",this.addRowHeaderColumn),g.api.registerMethod("core","scrollToIfNecessary",function(a,b){return g.scrollToIfNecessary(a,b)}),g.api.registerMethod("core","scrollTo",function(a,b){return g.scrollTo(a,b)}),g.api.registerMethod("core","registerRowsProcessor",this.registerRowsProcessor),g.api.registerMethod("core","registerColumnsProcessor",this.registerColumnsProcessor),g.api.registerMethod("core","sortHandleNulls",j.handleNulls),g.api.registerEvent("core","sortChanged"),g.api.registerEvent("core","columnVisibilityChanged"),g.api.registerMethod("core","notifyDataChange",this.notifyDataChange),g.api.registerMethod("core","clearAllFilters",this.clearAllFilters),g.registerDataChangeCallback(g.columnRefreshCallback,[e.dataChange.COLUMN]),g.registerDataChangeCallback(g.processRowsCallback,[e.dataChange.EDIT]),g.registerDataChangeCallback(g.updateFooterHeightCallback,[e.dataChange.OPTIONS]),g.registerStyleComputation({priority:10,func:g.getFooterStyles})};return p.prototype.calcFooterHeight=function(){if(!this.hasFooter())return 0;var a=0;return this.options.showGridFooter&&(a+=this.options.gridFooterHeight),a+=this.calcColumnFooterHeight()},p.prototype.calcColumnFooterHeight=function(){var a=0;return this.options.showColumnFooter&&(a+=this.options.columnFooterHeight),a},p.prototype.getFooterStyles=function(){var a=".grid"+this.id+" .ui-grid-footer-aggregates-row { height: "+this.options.columnFooterHeight+"px; }";return a+=" .grid"+this.id+" .ui-grid-footer-info { height: "+this.options.gridFooterHeight+"px; }"},p.prototype.hasFooter=function(){return this.options.showGridFooter||this.options.showColumnFooter},p.prototype.isRTL=function(){return this.rtl},p.prototype.registerColumnBuilder=function(a){this.columnBuilders.push(a)},p.prototype.buildColumnDefsFromData=function(a){this.options.columnDefs=d.getColumnsFromData(a,this.options.excludeProperties)},p.prototype.registerRowBuilder=function(a){this.rowBuilders.push(a)},p.prototype.registerDataChangeCallback=function(a,b,c){var f=d.nextUid();b||(b=[e.dataChange.ALL]),Array.isArray(b)||d.logError("Expected types to be an array or null in registerDataChangeCallback, value passed was: "+b),this.dataChangeCallbacks[f]={callback:a,types:b,_this:c};var g=this,h=function(){delete g.dataChangeCallbacks[f]};return h},p.prototype.callDataChangeCallbacks=function(a,b){angular.forEach(this.dataChangeCallbacks,function(b,c){-1===b.types.indexOf(e.dataChange.ALL)&&-1===b.types.indexOf(a)&&a!==e.dataChange.ALL||(b._this?b.callback.apply(b._this,this):b.callback(this))},this)},p.prototype.notifyDataChange=function(a){var b=e.dataChange;a===b.ALL||a===b.COLUMN||a===b.EDIT||a===b.ROW||a===b.OPTIONS?this.callDataChangeCallbacks(a):d.logError("Notified of a data change, but the type was not recognised, so no action taken, type was: "+a)},p.prototype.columnRefreshCallback=function(a){a.buildColumns(),a.queueGridRefresh()},p.prototype.processRowsCallback=function(a){a.queueGridRefresh()},p.prototype.updateFooterHeightCallback=function(a){a.footerHeight=a.calcFooterHeight(),a.columnFooterHeight=a.calcColumnFooterHeight()},p.prototype.getColumn=function(a){var b=this.columns.filter(function(b){return b.colDef.name===a});return b.length>0?b[0]:null},p.prototype.getColDef=function(a){var b=this.options.columnDefs.filter(function(b){return b.name===a});return b.length>0?b[0]:null},p.prototype.assignTypes=function(){var a=this;a.options.columnDefs.forEach(function(b,c){if(!b.type){var e=new g(b,c,a),f=a.rows.length>0?a.rows[0]:null;f?b.type=d.guessType(a.getCellValue(f,e)):b.type="string"}})},p.prototype.isRowHeaderColumn=function(a){return-1!==this.rowHeaderColumns.indexOf(a)},p.prototype.addRowHeaderColumn=function(a){var b=this,c=new g(a,d.nextUid(),b);c.isRowHeader=!0,b.isRTL()?(b.createRightContainer(),c.renderContainer="right"):(b.createLeftContainer(),c.renderContainer="left"),b.columnBuilders[0](a,c,b.options).then(function(){c.enableFiltering=!1,c.enableSorting=!1,c.enableHiding=!1,b.rowHeaderColumns.push(c),b.buildColumns().then(function(){b.preCompileCellTemplates(),b.queueGridRefresh()})})},p.prototype.getOnlyDataColumns=function(){var a=this,b=[];return a.columns.forEach(function(c){-1===a.rowHeaderColumns.indexOf(c)&&b.push(c)}),b},p.prototype.buildColumns=function(b){var c={orderByColumnDefs:!1};angular.extend(c,b);var e,f=this,h=[],i=f.rowHeaderColumns.length;for(e=0;e<f.columns.length;e++)f.getColDef(f.columns[e].name)||(f.columns.splice(e,1),e--);if(f.rowHeaderColumns.forEach(function(a){f.columns.unshift(a)}),f.options.columnDefs.forEach(function(a,b){f.preprocessColDef(a);var c=f.getColumn(a.name);c?c.updateColumnDef(a,!1):(c=new g(a,d.nextUid(),f),f.columns.splice(b+i,0,c)),f.columnBuilders.forEach(function(b){h.push(b.call(f,a,c,f.options))})}),c.orderByColumnDefs){var j=f.columns.slice(0),k=Math.min(f.options.columnDefs.length,f.columns.length);for(e=0;k>e;e++)f.columns[e+i].name!==f.options.columnDefs[e].name?j[e+i]=f.getColumn(f.options.columnDefs[e].name):j[e+i]=f.columns[e+i];f.columns.length=0,Array.prototype.splice.apply(f.columns,[0,0].concat(j))}return a.all(h).then(function(){f.rows.length>0&&f.assignTypes()})},p.prototype.preCompileCellTemplates=function(){var a=this,c=function(c){var d=c.cellTemplate.replace(e.MODEL_COL_FIELD,a.getQualifiedColField(c));d=d.replace(e.COL_FIELD,"grid.getCellValue(row, col)");var f=b(d);c.compiledElementFn=f,c.compiledElementFnDefer&&c.compiledElementFnDefer.resolve(c.compiledElementFn)};this.columns.forEach(function(a){a.cellTemplate?c(a):a.cellTemplatePromise&&a.cellTemplatePromise.then(function(){c(a)})})},p.prototype.getQualifiedColField=function(a){return"row.entity."+d.preEval(a.field)},p.prototype.createLeftContainer=function(){this.hasLeftContainer()||(this.renderContainers.left=new l("left",this,{disableColumnOffset:!0}))},p.prototype.createRightContainer=function(){this.hasRightContainer()||(this.renderContainers.right=new l("right",this,{disableColumnOffset:!0}))},p.prototype.hasLeftContainer=function(){return void 0!==this.renderContainers.left},p.prototype.hasRightContainer=function(){return void 0!==this.renderContainers.right},p.prototype.preprocessColDef=function(a){var b=this;if(!a.field&&!a.name)throw new Error("colDef.name or colDef.field property is required");if(void 0===a.name&&void 0!==a.field){for(var c=a.field,d=2;b.getColumn(c);)c=a.field+d.toString(),d++;a.name=c}},p.prototype.newInN=function(a,b,c,d){for(var e=this,f=[],g=0;g<b.length;g++){for(var h=d?b[g][d]:b[g],i=!1,j=0;j<a.length;j++){var k=c?a[j][c]:a[j];if(e.options.rowEquality(h,k)){i=!0;break}}i||f.push(h)}return f},p.prototype.getRow=function(a,b){var c=this;b="undefined"==typeof b?c.rows:b;var d=b.filter(function(b){return c.options.rowEquality(b.entity,a)});return d.length>0?d[0]:null},p.prototype.modifyRows=function(b){var c=this,d=c.rows.slice(0),e=c.rowHashMap||c.createRowHashMap();c.rowHashMap=c.createRowHashMap(),c.rows.length=0,b.forEach(function(a,b){var f;f=c.options.enableRowHashing?e.get(a):c.getRow(a,d),f||(f=c.processRowBuilders(new h(a,b,c))),c.rows.push(f),c.rowHashMap.put(a,f)}),c.assignTypes();var f=a.when(c.processRowsProcessors(c.rows)).then(function(a){return c.setVisibleRows(a)}),g=a.when(c.processColumnsProcessors(c.columns)).then(function(a){return c.setVisibleColumns(a)});return a.all([f,g])},p.prototype.addRows=function(a){for(var b=this,c=b.rows.length,d=0;d<a.length;d++){var e=b.processRowBuilders(new h(a[d],d+c,b));if(b.options.enableRowHashing){var f=b.rowHashMap.get(e.entity);f&&(f.row=e)}b.rows.push(e)}},p.prototype.processRowBuilders=function(a){var b=this;return b.rowBuilders.forEach(function(c){c.call(b,a,b.options)}),a},p.prototype.registerStyleComputation=function(a){this.styleComputations.push(a)},p.prototype.registerRowsProcessor=function(a,b){if(!angular.isFunction(a))throw"Attempt to register non-function rows processor: "+a;this.rowsProcessors.push({processor:a,priority:b}),this.rowsProcessors.sort(function(a,b){return a.priority-b.priority})},p.prototype.removeRowsProcessor=function(a){var b=-1;this.rowsProcessors.forEach(function(c,d){c.processor===a&&(b=d)}),-1!==b&&this.rowsProcessors.splice(b,1)},p.prototype.processRowsProcessors=function(b){function c(b,e){var g=d.rowsProcessors[b].processor;return a.when(g.call(d,e,d.columns)).then(function(a){if(!a)throw"Processor at index "+b+" did not return a set of renderable rows";if(!angular.isArray(a))throw"Processor at index "+b+" did not return an array";return b++,b<=d.rowsProcessors.length-1?c(b,a):void f.resolve(a)})}var d=this,e=b.slice(0);if(0===d.rowsProcessors.length)return a.when(e);var f=a.defer();return c(0,e),f.promise},p.prototype.setVisibleRows=function(a){var b=this;for(var c in b.renderContainers){var d=b.renderContainers[c];d.canvasHeightShouldUpdate=!0,"undefined"==typeof d.visibleRowCache?d.visibleRowCache=[]:d.visibleRowCache.length=0}for(var e=0;e<a.length;e++){var f=a[e],g="undefined"!=typeof f.renderContainer&&f.renderContainer?f.renderContainer:"body";f.visible&&b.renderContainers[g].visibleRowCache.push(f)}b.api.core.raise.rowsRendered(this.api)},p.prototype.registerColumnsProcessor=function(a,b){if(!angular.isFunction(a))throw"Attempt to register non-function rows processor: "+a;this.columnsProcessors.push({processor:a,priority:b}),this.columnsProcessors.sort(function(a,b){return a.priority-b.priority})},p.prototype.removeColumnsProcessor=function(a){var b=this.columnsProcessors.indexOf(a);"undefined"!=typeof b&&void 0!==b&&this.columnsProcessors.splice(b,1)},p.prototype.processColumnsProcessors=function(b){function c(b,g){var h=d.columnsProcessors[b].processor;return a.when(h.call(d,g,d.rows)).then(function(a){if(!a)throw"Processor at index "+b+" did not return a set of renderable rows";if(!angular.isArray(a))throw"Processor at index "+b+" did not return an array";return b++,b<=d.columnsProcessors.length-1?c(b,e):void f.resolve(e)})}var d=this,e=b.slice(0);if(0===d.columnsProcessors.length)return a.when(e);var f=a.defer();return c(0,e),f.promise},p.prototype.setVisibleColumns=function(a){var b=this;for(var c in b.renderContainers){var d=b.renderContainers[c];d.visibleColumnCache.length=0}for(var e=0;e<a.length;e++){var f=a[e];f.visible&&("undefined"!=typeof f.renderContainer&&f.renderContainer?b.renderContainers[f.renderContainer].visibleColumnCache.push(f):b.renderContainers.body.visibleColumnCache.push(f))}},p.prototype.handleWindowResize=function(a){var b=this;return b.gridWidth=d.elementWidth(b.element),b.gridHeight=d.elementHeight(b.element),b.queueRefresh()},p.prototype.queueRefresh=function(){var a=this;return a.refreshCanceller&&m.cancel(a.refreshCanceller),a.refreshCanceller=m(function(){a.refreshCanvas(!0)}),a.refreshCanceller.then(function(){a.refreshCanceller=null}),a.refreshCanceller},p.prototype.queueGridRefresh=function(){var a=this;return a.gridRefreshCanceller&&m.cancel(a.gridRefreshCanceller),a.gridRefreshCanceller=m(function(){a.refresh(!0)}),a.gridRefreshCanceller.then(function(){a.gridRefreshCanceller=null}),a.gridRefreshCanceller},p.prototype.updateCanvasHeight=function(){var a=this;for(var b in a.renderContainers)if(a.renderContainers.hasOwnProperty(b)){var c=a.renderContainers[b];c.canvasHeightShouldUpdate=!0}},p.prototype.buildStyles=function(){var a=this;a.customStyles="",a.styleComputations.sort(function(a,b){return null===a.priority?1:null===b.priority?-1:null===a.priority&&null===b.priority?0:a.priority-b.priority}).forEach(function(b){var c=b.func.call(a);angular.isString(c)&&(a.customStyles+="\n"+c)})},p.prototype.minColumnsToRender=function(){var a=this,b=this.getViewportWidth(),c=0,d=0;return a.columns.forEach(function(e,f){if(b>d)d+=e.drawnWidth,c++;else{for(var g=0,h=f;h>=f-c;h--)g+=a.columns[h].drawnWidth;b>g&&c++}}),c},p.prototype.getBodyHeight=function(){var a=this.getViewportHeight();return a},p.prototype.getViewportHeight=function(){var a=this,b=this.gridHeight-this.headerHeight-this.footerHeight,c=a.getViewportAdjustment();return b+=c.height},p.prototype.getViewportWidth=function(){var a=this,b=this.gridWidth,c=a.getViewportAdjustment();return b+=c.width},p.prototype.getHeaderViewportWidth=function(){var a=this.getViewportWidth();return a},p.prototype.addVerticalScrollSync=function(a,b){this.verticalScrollSyncCallBackFns[a]=b},p.prototype.addHorizontalScrollSync=function(a,b){this.horizontalScrollSyncCallBackFns[a]=b},p.prototype.scrollContainers=function(a,b){if(b.y){var c=["body","left","right"];this.flagScrollingVertically(b),"body"===a?c=["left","right"]:"left"===a?c=["body","right"]:"right"===a&&(c=["body","left"]);for(var d=0;d<c.length;d++){var e=c[d];this.verticalScrollSyncCallBackFns[e]&&this.verticalScrollSyncCallBackFns[e](b)}}if(b.x){var f=["body","bodyheader","bodyfooter"];this.flagScrollingHorizontally(b),"body"===a&&(f=["bodyheader","bodyfooter"]);for(var g=0;g<f.length;g++){var h=f[g];this.horizontalScrollSyncCallBackFns[h]&&this.horizontalScrollSyncCallBackFns[h](b)}}},p.prototype.registerViewportAdjuster=function(a){this.viewportAdjusters.push(a)},p.prototype.removeViewportAdjuster=function(a){var b=this.viewportAdjusters.indexOf(a);"undefined"!=typeof b&&void 0!==b&&this.viewportAdjusters.splice(b,1)},p.prototype.getViewportAdjustment=function(){var a=this,b={height:0,width:0};return a.viewportAdjusters.forEach(function(a){b=a.call(this,b)}),b},p.prototype.getVisibleRowCount=function(){return this.renderContainers.body.visibleRowCache.length},p.prototype.getVisibleRows=function(){return this.renderContainers.body.visibleRowCache},p.prototype.getVisibleColumnCount=function(){return this.renderContainers.body.visibleColumnCache.length},p.prototype.searchRows=function(a){return k.search(this,a,this.columns)},p.prototype.sortByColumn=function(a){return j.sort(this,a,this.columns)},p.prototype.getCellValue=function(a,b){return"undefined"!=typeof a.entity["$$"+b.uid]?a.entity["$$"+b.uid].rendered:this.options.flatEntityAccess&&"undefined"!=typeof b.field?a.entity[b.field]:(b.cellValueGetterCache||(b.cellValueGetterCache=c(a.getEntityQualifiedColField(b))),b.cellValueGetterCache(a))},p.prototype.getCellDisplayValue=function(a,b){if(!b.cellDisplayGetterCache){var d=b.cellFilter?" | "+b.cellFilter:"";"undefined"!=typeof a.entity["$$"+b.uid]?b.cellDisplayGetterCache=c(a.entity["$$"+b.uid].rendered+d):this.options.flatEntityAccess&&"undefined"!=typeof b.field?b.cellDisplayGetterCache=c(a.entity[b.field]+d):b.cellDisplayGetterCache=c(a.getEntityQualifiedColField(b)+d)}return b.cellDisplayGetterCache(a)},p.prototype.getNextColumnSortPriority=function(){var a=this,b=0;return a.columns.forEach(function(a){a.sort&&void 0!==a.sort.priority&&a.sort.priority>=b&&(b=a.sort.priority+1)}),b},p.prototype.resetColumnSorting=function(a){var b=this;b.columns.forEach(function(b){b===a||b.suppressRemoveSort||(b.sort={})})},p.prototype.getColumnSorting=function(){var a,b=this,c=[];return a=b.columns.slice(0),a.sort(j.prioritySort).forEach(function(a){a.sort&&"undefined"!=typeof a.sort.direction&&a.sort.direction&&(a.sort.direction===e.ASC||a.sort.direction===e.DESC)&&c.push(a)}),c},p.prototype.sortColumn=function(b,c,d){var e=this,f=null;if("undefined"==typeof b||!b)throw new Error("No column parameter provided");if("boolean"==typeof c?d=c:f=c,d?b.sort.priority||(b.sort.priority=e.getNextColumnSortPriority()):(e.resetColumnSorting(b),b.sort.priority=void 0,b.sort.priority=e.getNextColumnSortPriority()),f)b.sort.direction=f;else{var g=b.sortDirectionCycle.indexOf(b.sort.direction?b.sort.direction:null);g=(g+1)%b.sortDirectionCycle.length,b.colDef&&b.suppressRemoveSort&&!b.sortDirectionCycle[g]&&(g=(g+1)%b.sortDirectionCycle.length),b.sortDirectionCycle[g]?b.sort.direction=b.sortDirectionCycle[g]:b.sort={}}return e.api.core.raise.sortChanged(e,e.getColumnSorting()),a.when(b)},p.prototype.renderingComplete=function(){angular.isFunction(this.options.onRegisterApi)&&this.options.onRegisterApi(this.api),this.api.core.raise.renderingComplete(this.api)},p.prototype.createRowHashMap=function(){var a=this,b=new o;return b.grid=a,b},p.prototype.refresh=function(b){var c=this,d=c.processRowsProcessors(c.rows).then(function(a){c.setVisibleRows(a)}),e=c.processColumnsProcessors(c.columns).then(function(a){c.setVisibleColumns(a)});return a.all([d,e]).then(function(){c.redrawInPlace(b),c.refreshCanvas(!0)})},p.prototype.refreshRows=function(){var a=this;return a.processRowsProcessors(a.rows).then(function(b){a.setVisibleRows(b),a.redrawInPlace(),a.refreshCanvas(!0)})},p.prototype.refreshCanvas=function(b){var c=this;b&&c.buildStyles();var e=a.defer(),f=[];for(var g in c.renderContainers)if(c.renderContainers.hasOwnProperty(g)){var h=c.renderContainers[g];if(null===h.canvasWidth||isNaN(h.canvasWidth))continue;(h.header||h.headerCanvas)&&(h.explicitHeaderHeight=h.explicitHeaderHeight||null,h.explicitHeaderCanvasHeight=h.explicitHeaderCanvasHeight||null,f.push(h))}return f.length>0?(b&&c.buildStyles(),m(function(){var a,g,h=!1,i=0,j=0,k=function(a,b){return a!==b&&(h=!0),b};for(a=0;a<f.length;a++)if(g=f[a],null!==g.canvasWidth&&!isNaN(g.canvasWidth)){if(g.header){var l=g.headerHeight=k(g.headerHeight,parseInt(d.outerElementHeight(g.header),10)),m=d.getBorderSize(g.header,"top"),n=d.getBorderSize(g.header,"bottom"),o=parseInt(l-m-n,10);o=0>o?0:o,g.innerHeaderHeight=o,!g.explicitHeaderHeight&&o>i&&(i=o)}if(g.headerCanvas){var p=g.headerCanvasHeight=k(g.headerCanvasHeight,parseInt(d.outerElementHeight(g.headerCanvas),10));!g.explicitHeaderCanvasHeight&&p>j&&(j=p)}}for(a=0;a<f.length;a++)g=f[a],i>0&&"undefined"!=typeof g.headerHeight&&null!==g.headerHeight&&(g.explicitHeaderHeight||g.headerHeight<i)&&(g.explicitHeaderHeight=k(g.explicitHeaderHeight,i)),j>0&&"undefined"!=typeof g.headerCanvasHeight&&null!==g.headerCanvasHeight&&(g.explicitHeaderCanvasHeight||g.headerCanvasHeight<j)&&(g.explicitHeaderCanvasHeight=k(g.explicitHeaderCanvasHeight,j));b&&h&&c.buildStyles(),e.resolve()})):m(function(){e.resolve()}),e.promise},p.prototype.redrawInPlace=function(a){var b=this;for(var c in b.renderContainers){var d=b.renderContainers[c];a?(d.adjustRows(d.prevScrollTop,null),d.adjustColumns(d.prevScrollLeft,null)):(d.adjustRows(null,d.prevScrolltopPercentage),d.adjustColumns(null,d.prevScrollleftPercentage))}},p.prototype.hasLeftContainerColumns=function(){return this.hasLeftContainer()&&this.renderContainers.left.renderedColumns.length>0},p.prototype.hasRightContainerColumns=function(){return this.hasRightContainer()&&this.renderContainers.right.renderedColumns.length>0},p.prototype.scrollToIfNecessary=function(b,c){var d=this,e=new n(d,"uiGrid.scrollToIfNecessary"),f=d.renderContainers.body.visibleRowCache,g=d.renderContainers.body.visibleColumnCache,h=d.renderContainers.body.prevScrollTop+d.headerHeight;h=0>h?0:h;var i=d.renderContainers.body.prevScrollLeft,j=d.renderContainers.body.prevScrollTop+d.gridHeight-d.renderContainers.body.headerHeight-d.footerHeight-d.scrollbarWidth,k=d.renderContainers.body.prevScrollLeft+Math.ceil(d.renderContainers.body.getViewportWidth());if(null!==b){var l=f.indexOf(b),m=d.renderContainers.body.getCanvasHeight()-d.renderContainers.body.getViewportHeight(),o=l*d.options.rowHeight+d.headerHeight;o=0>o?0:o;var p,q;h>o?(p=d.renderContainers.body.prevScrollTop-(h-o),q=p/m,e.y={percentage:q}):o>j&&(p=o-j+d.renderContainers.body.prevScrollTop,q=p/m,e.y={percentage:q})}if(null!==c){for(var r=g.indexOf(c),s=d.renderContainers.body.getCanvasWidth()-d.renderContainers.body.getViewportWidth(),t=0,u=0;r>u;u++){var v=g[u];t+=v.drawnWidth}t=0>t?0:t;var w=t+c.drawnWidth;w=0>w?0:w;var x,y;i>t?(x=d.renderContainers.body.prevScrollLeft-(i-t),y=x/s,y=y>1?1:y,e.x={percentage:y}):w>k&&(x=w-k+d.renderContainers.body.prevScrollLeft,y=x/s,y=y>1?1:y,e.x={percentage:y})}var z=a.defer();if(e.y||e.x){e.withDelay=!1,d.scrollContainers("",e);var A=d.api.core.on.scrollEnd(null,function(){z.resolve(e),A()})}else z.resolve();return z.promise},p.prototype.scrollTo=function(a,b){var c=null,d=null;return null!==a&&"undefined"!=typeof a&&(c=this.getRow(a)),null!==b&&"undefined"!=typeof b&&(d=this.getColumn(b.name?b.name:b.field)),this.scrollToIfNecessary(c,d)},p.prototype.clearAllFilters=function(a,b,c){return void 0===a&&(a=!0),void 0===b&&(b=!1),void 0===c&&(c=!1),this.columns.forEach(function(a){a.filters.forEach(function(a){a.term=void 0,b&&(a.condition=void 0),c&&(a.flags=void 0)})}),a?this.refreshRows():void 0},o.prototype={put:function(a,b){this[this.grid.options.rowIdentity(a)]=b},get:function(a){return this[this.grid.options.rowIdentity(a)]},remove:function(a){var b=this[a=this.grid.options.rowIdentity(a)];return delete this[a],b}},p}])}(),function(){angular.module("ui.grid").factory("GridApi",["$q","$rootScope","gridUtil","uiGridConstants","GridRow","uiGridGridMenuService",function(a,b,c,d,e,f){function g(a,c,d,e){return b.$on(a,function(a){var b=Array.prototype.slice.call(arguments);b.splice(0,1),c.apply(e?e:d.api,b)})}var h=function(a){this.grid=a,this.listeners=[],this.registerEvent("core","renderingComplete"),this.registerEvent("core","filterChanged"),this.registerMethod("core","setRowInvisible",e.prototype.setRowInvisible),this.registerMethod("core","clearRowInvisible",e.prototype.clearRowInvisible),this.registerMethod("core","getVisibleRows",this.grid.getVisibleRows),this.registerEvent("core","rowsVisibleChanged"),this.registerEvent("core","rowsRendered"),this.registerEvent("core","scrollBegin"),this.registerEvent("core","scrollEnd"),this.registerEvent("core","canvasHeightChanged")};return h.prototype.suppressEvents=function(a,b){var c=this,d=angular.isArray(a)?a:[a],e=c.listeners.filter(function(a){return d.some(function(b){return a.handler===b})});e.forEach(function(a){a.dereg()}),b(),e.forEach(function(a){a.dereg=g(a.eventId,a.handler,c.grid,a._this)})},h.prototype.registerEvent=function(a,d){var e=this;e[a]||(e[a]={});var f=e[a];f.on||(f.on={},f.raise={});var h=e.grid.id+a+d;f.raise[d]=function(){b.$emit.apply(b,[h].concat(Array.prototype.slice.call(arguments)))},f.on[d]=function(b,f,i){if(null!==b&&"undefined"==typeof b.$on)return void c.logError("asked to listen on "+a+".on."+d+" but scope wasn't passed in the input parameters.  It is legitimate to pass null, but you've passed something else, so you probably forgot to provide scope rather than did it deliberately, not registering");var j=g(h,f,e.grid,i),k={handler:f,dereg:j,eventId:h,scope:b,_this:i};e.listeners.push(k);var l=function(){k.dereg();var a=e.listeners.indexOf(k);e.listeners.splice(a,1)};return b&&b.$on("$destroy",function(){l()}),l}},h.prototype.registerEventsFromObject=function(a){var b=this,c=[];angular.forEach(a,function(a,b){var d={name:b,events:[]};angular.forEach(a,function(a,b){d.events.push(b)}),c.push(d)}),c.forEach(function(a){a.events.forEach(function(c){b.registerEvent(a.name,c)})})},h.prototype.registerMethod=function(a,b,d,e){this[a]||(this[a]={});var f=this[a];f[b]=c.createBoundedWrapper(e||this.grid,d)},h.prototype.registerMethodsFromObject=function(a,b){var c=this,d=[];angular.forEach(a,function(a,b){var c={name:b,methods:[]};angular.forEach(a,function(a,b){c.methods.push({name:b,fn:a})}),d.push(c)}),d.forEach(function(a){a.methods.forEach(function(d){c.registerMethod(a.name,d.name,d.fn,b)})})},h}])}(),function(){angular.module("ui.grid").factory("GridColumn",["gridUtil","uiGridConstants","i18nService",function(a,b,c){function d(a,c,d){var e=this;e.grid=d,e.uid=c,e.updateColumnDef(a,!0),e.aggregationValue=void 0,e.updateAggregationValue=function(){if(!e.aggregationType)return void(e.aggregationValue=void 0);var a=0,c=e.grid.getVisibleRows(),d=function(){var a=[];return c.forEach(function(b){var c=e.grid.getCellValue(b,e),d=Number(c);isNaN(d)||a.push(d)}),a};angular.isFunction(e.aggregationType)?e.aggregationValue=e.aggregationType(c,e):e.aggregationType===b.aggregationTypes.count?e.aggregationValue=e.grid.getVisibleRowCount():e.aggregationType===b.aggregationTypes.sum?(d().forEach(function(b){a+=b}),e.aggregationValue=a):e.aggregationType===b.aggregationTypes.avg?(d().forEach(function(b){a+=b}),a/=d().length,e.aggregationValue=a):e.aggregationType===b.aggregationTypes.min?e.aggregationValue=Math.min.apply(null,d()):e.aggregationType===b.aggregationTypes.max?e.aggregationValue=Math.max.apply(null,d()):e.aggregationValue=" "},this.getAggregationValue=function(){return e.aggregationValue}}return d.prototype.hideColumn=function(){this.colDef.visible=!1},d.prototype.setPropertyOrDefault=function(a,b,c){var d=this;"undefined"!=typeof a[b]&&a[b]?d[b]=a[b]:"undefined"!=typeof d[b]?d[b]=d[b]:d[b]=c?c:{}},d.prototype.updateColumnDef=function(c,d){var e=this;if(e.colDef=c,void 0===c.name)throw new Error("colDef.name is required for column at index "+e.grid.options.columnDefs.indexOf(c));if(e.displayName=void 0===c.displayName?a.readableColumnName(c.name):c.displayName,
+!angular.isNumber(e.width)||!e.hasCustomWidth||c.allowCustomWidthOverride){var f=c.width,g="Cannot parse column width '"+f+"' for column named '"+c.name+"'";if(e.hasCustomWidth=!1,angular.isString(f)||angular.isNumber(f))if(angular.isString(f))if(a.endsWith(f,"%")){var h=f.replace(/%/g,""),i=parseInt(h,10);if(isNaN(i))throw new Error(g);e.width=f}else if(f.match(/^(\d+)$/))e.width=parseInt(f.match(/^(\d+)$/)[1],10);else{if(!f.match(/^\*+$/))throw new Error(g);e.width=f}else e.width=f;else e.width="*"}["minWidth","maxWidth"].forEach(function(a){var b=c[a],d="Cannot parse column "+a+" '"+b+"' for column named '"+c.name+"'";if(angular.isString(b)||angular.isNumber(b))if(angular.isString(b)){if(!b.match(/^(\d+)$/))throw new Error(d);e[a]=parseInt(b.match(/^(\d+)$/)[1],10)}else e[a]=b;else e[a]="minWidth"===a?30:9e3}),e.field=void 0===c.field?c.name:c.field,"string"!=typeof e.field&&a.logError("Field is not a string, this is likely to break the code, Field is: "+e.field),e.name=c.name,e.displayName=void 0===c.displayName?a.readableColumnName(c.name):c.displayName,e.aggregationType=angular.isDefined(c.aggregationType)?c.aggregationType:null,e.footerCellTemplate=angular.isDefined(c.footerCellTemplate)?c.footerCellTemplate:null,"undefined"==typeof c.cellTooltip||c.cellTooltip===!1?e.cellTooltip=!1:c.cellTooltip===!0?e.cellTooltip=function(a,b){return e.grid.getCellValue(a,b)}:"function"==typeof c.cellTooltip?e.cellTooltip=c.cellTooltip:e.cellTooltip=function(a,b){return b.colDef.cellTooltip},"undefined"==typeof c.headerTooltip||c.headerTooltip===!1?e.headerTooltip=!1:c.headerTooltip===!0?e.headerTooltip=function(a){return a.displayName}:"function"==typeof c.headerTooltip?e.headerTooltip=c.headerTooltip:e.headerTooltip=function(a){return a.colDef.headerTooltip},e.footerCellClass=c.footerCellClass,e.cellClass=c.cellClass,e.headerCellClass=c.headerCellClass,e.cellFilter=c.cellFilter?c.cellFilter:"",e.sortCellFiltered=!!c.sortCellFiltered,e.filterCellFiltered=!!c.filterCellFiltered,e.headerCellFilter=c.headerCellFilter?c.headerCellFilter:"",e.footerCellFilter=c.footerCellFilter?c.footerCellFilter:"",e.visible=a.isNullOrUndefined(c.visible)||c.visible,e.headerClass=c.headerClass,e.enableSorting="undefined"!=typeof c.enableSorting?c.enableSorting:!0,e.sortingAlgorithm=c.sortingAlgorithm,e.sortDirectionCycle="undefined"!=typeof c.sortDirectionCycle?c.sortDirectionCycle:[null,b.ASC,b.DESC],"undefined"==typeof e.suppressRemoveSort&&(e.suppressRemoveSort="undefined"!=typeof c.suppressRemoveSort?c.suppressRemoveSort:!1),e.enableFiltering="undefined"!=typeof c.enableFiltering?c.enableFiltering:!0,e.setPropertyOrDefault(c,"menuItems",[]),d&&e.setPropertyOrDefault(c,"sort");var j=[];c.filter?j.push(c.filter):c.filters?j=c.filters:j.push({}),d?(e.setPropertyOrDefault(c,"filter"),e.setPropertyOrDefault(c,"filters",j)):e.filters.length===j.length&&e.filters.forEach(function(a,b){"undefined"!=typeof j[b].placeholder&&(a.placeholder=j[b].placeholder),"undefined"!=typeof j[b].ariaLabel&&(a.ariaLabel=j[b].ariaLabel),"undefined"!=typeof j[b].flags&&(a.flags=j[b].flags),"undefined"!=typeof j[b].type&&(a.type=j[b].type),"undefined"!=typeof j[b].selectOptions&&(a.selectOptions=j[b].selectOptions)})},d.prototype.unsort=function(){this.sort={},this.grid.api.core.raise.sortChanged(this.grid,this.grid.getColumnSorting())},d.prototype.getColClass=function(a){var c=b.COL_CLASS_PREFIX+this.uid;return a?"."+c:c},d.prototype.isPinnedLeft=function(){return"left"===this.renderContainer},d.prototype.isPinnedRight=function(){return"right"===this.renderContainer},d.prototype.getColClassDefinition=function(){return" .grid"+this.grid.id+" "+this.getColClass(!0)+" { min-width: "+this.drawnWidth+"px; max-width: "+this.drawnWidth+"px; }"},d.prototype.getRenderContainer=function(){var a=this,b=a.renderContainer;return null!==b&&""!==b&&void 0!==b||(b="body"),a.grid.renderContainers[b]},d.prototype.showColumn=function(){this.colDef.visible=!0},d.prototype.getAggregationText=function(){var a=this;if(a.colDef.aggregationHideLabel)return"";if(a.colDef.aggregationLabel)return a.colDef.aggregationLabel;switch(a.colDef.aggregationType){case b.aggregationTypes.count:return c.getSafeText("aggregation.count");case b.aggregationTypes.sum:return c.getSafeText("aggregation.sum");case b.aggregationTypes.avg:return c.getSafeText("aggregation.avg");case b.aggregationTypes.min:return c.getSafeText("aggregation.min");case b.aggregationTypes.max:return c.getSafeText("aggregation.max");default:return""}},d.prototype.getCellTemplate=function(){var a=this;return a.cellTemplatePromise},d.prototype.getCompiledElementFn=function(){var a=this;return a.compiledElementFnDefer.promise},d}])}(),function(){angular.module("ui.grid").factory("GridOptions",["gridUtil","uiGridConstants",function(a,b){return{initialize:function(c){return c.onRegisterApi=c.onRegisterApi||angular.noop(),c.data=c.data||[],c.columnDefs=c.columnDefs||[],c.excludeProperties=c.excludeProperties||["$$hashKey"],c.enableRowHashing=c.enableRowHashing!==!1,c.rowIdentity=c.rowIdentity||function(b){return a.hashKey(b)},c.getRowIdentity=c.getRowIdentity||function(a){return a.$$hashKey},c.flatEntityAccess=c.flatEntityAccess===!0,c.showHeader="undefined"!=typeof c.showHeader?c.showHeader:!0,c.showHeader?c.headerRowHeight="undefined"!=typeof c.headerRowHeight?c.headerRowHeight:30:c.headerRowHeight=0,c.rowHeight=c.rowHeight||30,c.minRowsToShow="undefined"!=typeof c.minRowsToShow?c.minRowsToShow:10,c.showGridFooter=c.showGridFooter===!0,c.showColumnFooter=c.showColumnFooter===!0,c.columnFooterHeight="undefined"!=typeof c.columnFooterHeight?c.columnFooterHeight:30,c.gridFooterHeight="undefined"!=typeof c.gridFooterHeight?c.gridFooterHeight:30,c.columnWidth="undefined"!=typeof c.columnWidth?c.columnWidth:50,c.maxVisibleColumnCount="undefined"!=typeof c.maxVisibleColumnCount?c.maxVisibleColumnCount:200,c.virtualizationThreshold="undefined"!=typeof c.virtualizationThreshold?c.virtualizationThreshold:20,c.columnVirtualizationThreshold="undefined"!=typeof c.columnVirtualizationThreshold?c.columnVirtualizationThreshold:10,c.excessRows="undefined"!=typeof c.excessRows?c.excessRows:4,c.scrollThreshold="undefined"!=typeof c.scrollThreshold?c.scrollThreshold:4,c.excessColumns="undefined"!=typeof c.excessColumns?c.excessColumns:4,c.horizontalScrollThreshold="undefined"!=typeof c.horizontalScrollThreshold?c.horizontalScrollThreshold:2,c.aggregationCalcThrottle="undefined"!=typeof c.aggregationCalcThrottle?c.aggregationCalcThrottle:500,c.wheelScrollThrottle="undefined"!=typeof c.wheelScrollThrottle?c.wheelScrollThrottle:70,c.scrollDebounce="undefined"!=typeof c.scrollDebounce?c.scrollDebounce:300,c.enableSorting=c.enableSorting!==!1,c.enableFiltering=c.enableFiltering===!0,c.enableColumnMenus=c.enableColumnMenus!==!1,c.enableVerticalScrollbar="undefined"!=typeof c.enableVerticalScrollbar?c.enableVerticalScrollbar:b.scrollbars.ALWAYS,c.enableHorizontalScrollbar="undefined"!=typeof c.enableHorizontalScrollbar?c.enableHorizontalScrollbar:b.scrollbars.ALWAYS,c.enableMinHeightCheck=c.enableMinHeightCheck!==!1,c.minimumColumnSize="undefined"!=typeof c.minimumColumnSize?c.minimumColumnSize:10,c.rowEquality=c.rowEquality||function(a,b){return a===b},c.headerTemplate=c.headerTemplate||null,c.footerTemplate=c.footerTemplate||"ui-grid/ui-grid-footer",c.gridFooterTemplate=c.gridFooterTemplate||"ui-grid/ui-grid-grid-footer",c.rowTemplate=c.rowTemplate||"ui-grid/ui-grid-row",c.appScopeProvider=c.appScopeProvider||null,c}}}])}(),function(){angular.module("ui.grid").factory("GridRenderContainer",["gridUtil","uiGridConstants",function(a,b){function c(a,b,c){var d=this;d.name=a,d.grid=b,d.visibleRowCache=[],d.visibleColumnCache=[],d.renderedRows=[],d.renderedColumns=[],d.prevScrollTop=0,d.prevScrolltopPercentage=0,d.prevRowScrollIndex=0,d.prevScrollLeft=0,d.prevScrollleftPercentage=0,d.prevColumnScrollIndex=0,d.columnStyles="",d.viewportAdjusters=[],d.hasHScrollbar=!1,d.hasVScrollbar=!1,d.canvasHeightShouldUpdate=!0,d.$$canvasHeight=0,c&&angular.isObject(c)&&angular.extend(d,c),b.registerStyleComputation({priority:5,func:function(){return d.updateColumnWidths(),d.columnStyles}})}return c.prototype.reset=function(){this.visibleColumnCache.length=0,this.visibleRowCache.length=0,this.renderedRows.length=0,this.renderedColumns.length=0},c.prototype.containsColumn=function(a){return-1!==this.visibleColumnCache.indexOf(a)},c.prototype.minRowsToRender=function(){for(var a=this,b=0,c=0,d=a.getViewportHeight(),e=a.visibleRowCache.length-1;d>c&&e>=0;e--)c+=a.visibleRowCache[e].height,b++;return b},c.prototype.minColumnsToRender=function(){for(var a=this,b=this.getViewportWidth(),c=0,d=0,e=0;e<a.visibleColumnCache.length;e++){var f=a.visibleColumnCache[e];if(b>d)d+=f.drawnWidth?f.drawnWidth:0,c++;else{for(var g=0,h=e;h>=e-c;h--)g+=a.visibleColumnCache[h].drawnWidth?a.visibleColumnCache[h].drawnWidth:0;b>g&&c++}}return c},c.prototype.getVisibleRowCount=function(){return this.visibleRowCache.length},c.prototype.registerViewportAdjuster=function(a){this.viewportAdjusters.push(a)},c.prototype.removeViewportAdjuster=function(a){var b=this.viewportAdjusters.indexOf(a);b>-1&&this.viewportAdjusters.splice(b,1)},c.prototype.getViewportAdjustment=function(){var a=this,b={height:0,width:0};return a.viewportAdjusters.forEach(function(a){b=a.call(this,b)}),b},c.prototype.getMargin=function(a){var b=this,c=0;return b.viewportAdjusters.forEach(function(b){var d=b.call(this,{height:0,width:0});d.side&&d.side===a&&(c+=-1*d.width)}),c},c.prototype.getViewportHeight=function(){var a=this,b=a.headerHeight?a.headerHeight:a.grid.headerHeight,c=a.grid.gridHeight-b-a.grid.footerHeight,d=a.getViewportAdjustment();return c+=d.height},c.prototype.getViewportWidth=function(){var a=this,b=a.grid.gridWidth,c=a.getViewportAdjustment();return b+=c.width},c.prototype.getHeaderViewportWidth=function(){var a=this.getViewportWidth();return a},c.prototype.getCanvasHeight=function(){var a=this;if(!a.canvasHeightShouldUpdate)return a.$$canvasHeight;var b=a.$$canvasHeight;return a.$$canvasHeight=0,a.visibleRowCache.forEach(function(b){a.$$canvasHeight+=b.height}),a.canvasHeightShouldUpdate=!1,a.grid.api.core.raise.canvasHeightChanged(b,a.$$canvasHeight),a.$$canvasHeight},c.prototype.getVerticalScrollLength=function(){return this.getCanvasHeight()-this.getViewportHeight()+this.grid.scrollbarHeight},c.prototype.getCanvasWidth=function(){var a=this,b=a.canvasWidth;return b},c.prototype.setRenderedRows=function(a){this.renderedRows.length=a.length;for(var b=0;b<a.length;b++)this.renderedRows[b]=a[b]},c.prototype.setRenderedColumns=function(a){this.renderedColumns.length=a.length;for(var b=0;b<a.length;b++)this.renderedColumns[b]=a[b];this.updateColumnOffset()},c.prototype.updateColumnOffset=function(){for(var a=0,b=0;b<this.currentFirstColumn;b++)a+=this.visibleColumnCache[b].drawnWidth;this.columnOffset=a},c.prototype.scrollVertical=function(a){var c=-1;if(a!==this.prevScrollTop){var d=a-this.prevScrollTop;d>0&&(this.grid.scrollDirection=b.scrollDirection.DOWN),0>d&&(this.grid.scrollDirection=b.scrollDirection.UP);var e=this.getVerticalScrollLength();return c=a/e,c>1&&(c=1),0>c&&(c=0),this.adjustScrollVertical(a,c),c}},c.prototype.scrollHorizontal=function(a){var c=-1;if(a!==this.prevScrollLeft){var d=a-this.prevScrollLeft;d>0&&(this.grid.scrollDirection=b.scrollDirection.RIGHT),0>d&&(this.grid.scrollDirection=b.scrollDirection.LEFT);var e=this.canvasWidth-this.getViewportWidth();return c=0!==e?a/e:0,this.adjustScrollHorizontal(a,c),c}},c.prototype.adjustScrollVertical=function(a,b,c){(this.prevScrollTop!==a||c)&&("undefined"!=typeof a&&void 0!==a&&null!==a||(a=(this.getCanvasHeight()-this.getViewportHeight())*b),this.adjustRows(a,b,!1),this.prevScrollTop=a,this.prevScrolltopPercentage=b,this.grid.queueRefresh())},c.prototype.adjustScrollHorizontal=function(a,b,c){(this.prevScrollLeft!==a||c)&&("undefined"!=typeof a&&void 0!==a&&null!==a||(a=(this.getCanvasWidth()-this.getViewportWidth())*b),this.adjustColumns(a,b),this.prevScrollLeft=a,this.prevScrollleftPercentage=b,this.grid.queueRefresh())},c.prototype.adjustRows=function(a,b,c){var d=this,e=d.minRowsToRender(),f=d.visibleRowCache,g=f.length-e;"undefined"!=typeof b&&null!==b||!a||(b=a/d.getVerticalScrollLength());var h=Math.ceil(Math.min(g,g*b));h>g&&(h=g);var i=[];if(f.length>d.grid.options.virtualizationThreshold){if("undefined"!=typeof a&&null!==a){if(!d.grid.suppressParentScrollDown&&d.prevScrollTop<a&&h<d.prevRowScrollIndex+d.grid.options.scrollThreshold&&g>h)return;if(!d.grid.suppressParentScrollUp&&d.prevScrollTop>a&&h>d.prevRowScrollIndex-d.grid.options.scrollThreshold&&g>h)return}var j={},k={};j=Math.max(0,h-d.grid.options.excessRows),k=Math.min(f.length,h+e+d.grid.options.excessRows),i=[j,k]}else{var l=d.visibleRowCache.length;i=[0,Math.max(l,e+d.grid.options.excessRows)]}d.updateViewableRowRange(i),d.prevRowScrollIndex=h},c.prototype.adjustColumns=function(a,b){var c=this,d=c.minColumnsToRender(),e=c.visibleColumnCache,f=e.length-d;if(("undefined"==typeof b||null===b)&&a){var g=c.getCanvasWidth()-c.getViewportWidth();b=a/g}var h=Math.ceil(Math.min(f,f*b));h>f&&(h=f);var i=[];if(e.length>c.grid.options.columnVirtualizationThreshold&&c.getCanvasWidth()>c.getViewportWidth()){var j=Math.max(0,h-c.grid.options.excessColumns),k=Math.min(e.length,h+d+c.grid.options.excessColumns);i=[j,k]}else{var l=c.visibleColumnCache.length;i=[0,Math.max(l,d+c.grid.options.excessColumns)]}c.updateViewableColumnRange(i),c.prevColumnScrollIndex=h},c.prototype.updateViewableRowRange=function(a){var b=this.visibleRowCache.slice(a[0],a[1]);this.currentTopRow=a[0],this.setRenderedRows(b)},c.prototype.updateViewableColumnRange=function(a){var b=this.visibleColumnCache.slice(a[0],a[1]);this.currentFirstColumn=a[0],this.setRenderedColumns(b)},c.prototype.headerCellWrapperStyle=function(){var a=this;if(0!==a.currentFirstColumn){var b=a.columnOffset;return a.grid.isRTL()?{"margin-right":b+"px"}:{"margin-left":b+"px"}}return null},c.prototype.updateColumnWidths=function(){var b=this,c=[],d=0,e=0,f="",g=b.grid.getViewportWidth()-b.grid.scrollbarWidth,h=[];angular.forEach(b.grid.renderContainers,function(a,b){h=h.concat(a.visibleColumnCache)}),h.forEach(function(b,f){var h=0;b.visible&&(angular.isNumber(b.width)?(h=parseInt(b.width,10),e+=h,b.drawnWidth=h):a.endsWith(b.width,"%")?(h=parseInt(parseInt(b.width.replace(/%/g,""),10)/100*g),h>b.maxWidth&&(h=b.maxWidth),h<b.minWidth&&(h=b.minWidth),e+=h,b.drawnWidth=h):angular.isString(b.width)&&-1!==b.width.indexOf("*")&&(d+=b.width.length,c.push(b)))});var i=g-e;if(c.length>0){var j=i/d;c.forEach(function(a){var b=parseInt(a.width.length*j,10);b>a.maxWidth&&(b=a.maxWidth),b<a.minWidth&&(b=a.minWidth),e+=b,a.drawnWidth=b})}for(var k=function(a){a.drawnWidth<a.maxWidth&&l>0&&(a.drawnWidth++,e++,l--,m=!0)},l=g-e,m=!0;l>0&&m;)m=!1,c.forEach(k);var n=function(a){a.drawnWidth>a.minWidth&&o>0&&(a.drawnWidth--,e--,o--,m=!0)},o=e-g;for(m=!0;o>0&&m;)m=!1,c.forEach(n);var p=0;b.visibleColumnCache.forEach(function(a){a.visible&&(p+=a.drawnWidth)}),h.forEach(function(a){f+=a.getColClassDefinition()}),b.canvasWidth=p,this.columnStyles=f},c.prototype.needsHScrollbarPlaceholder=function(){return this.grid.options.enableHorizontalScrollbar&&!this.hasHScrollbar&&!this.grid.disableScrolling},c.prototype.getViewportStyle=function(){var a=this,c={};return a.hasHScrollbar=!1,a.hasVScrollbar=!1,a.grid.disableScrolling?(c["overflow-x"]="hidden",c["overflow-y"]="hidden",c):("body"===a.name?(a.hasHScrollbar=a.grid.options.enableHorizontalScrollbar!==b.scrollbars.NEVER,a.grid.isRTL()?a.grid.hasLeftContainerColumns()||(a.hasVScrollbar=a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER):a.grid.hasRightContainerColumns()||(a.hasVScrollbar=a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER)):"left"===a.name?a.hasVScrollbar=a.grid.isRTL()?a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER:!1:a.hasVScrollbar=a.grid.isRTL()?!1:a.grid.options.enableVerticalScrollbar!==b.scrollbars.NEVER,c["overflow-x"]=a.hasHScrollbar?"scroll":"hidden",c["overflow-y"]=a.hasVScrollbar?"scroll":"hidden",c)},c}])}(),function(){angular.module("ui.grid").factory("GridRow",["gridUtil",function(a){function b(b,c,d){this.grid=d,this.entity=b,this.uid=a.nextUid(),this.visible=!0,this.$$height=d.options.rowHeight}return Object.defineProperty(b.prototype,"height",{get:function(){return this.$$height},set:function(a){a!==this.$$height&&(this.grid.updateCanvasHeight(),this.$$height=a)}}),b.prototype.getQualifiedColField=function(a){return"row."+this.getEntityQualifiedColField(a)},b.prototype.getEntityQualifiedColField=function(b){return a.preEval("entity."+b.field)},b.prototype.setRowInvisible=function(a){a&&a.setThisRowInvisible&&a.setThisRowInvisible("user")},b.prototype.clearRowInvisible=function(a){a&&a.clearThisRowInvisible&&a.clearThisRowInvisible("user")},b.prototype.setThisRowInvisible=function(a,b){this.invisibleReason||(this.invisibleReason={}),this.invisibleReason[a]=!0,this.evaluateRowVisibility(b)},b.prototype.clearThisRowInvisible=function(a,b){"undefined"!=typeof this.invisibleReason&&delete this.invisibleReason[a],this.evaluateRowVisibility(b)},b.prototype.evaluateRowVisibility=function(a){var b=!0;"undefined"!=typeof this.invisibleReason&&angular.forEach(this.invisibleReason,function(a,c){a&&(b=!1)}),"undefined"!=typeof this.visible&&this.visible===b||(this.visible=b,a||(this.grid.queueGridRefresh(),this.grid.api.core.raise.rowsVisibleChanged(this)))},b}])}(),function(){"use strict";angular.module("ui.grid").factory("GridRowColumn",["$parse","$filter",function(a,b){var c=function d(a,b){if(!(this instanceof d))throw"Using GridRowColumn as a function insead of as a constructor. Must be called with `new` keyword";this.row=a,this.col=b};return c.prototype.getIntersectionValueRaw=function(){var b=a(this.row.getEntityQualifiedColField(this.col)),c=this.row;return b(c)},c.prototype.getIntersectionValueFiltered=function(){var a=this.getIntersectionValueRaw();if(this.col.cellFilter&&""!==this.col.cellFilter){var c=function(a){try{return b(a)}catch(c){return null}},d=c(this.col.cellFilter);if(d)a=d(a);else{var e,f=/([^:]*):([^:]*):?([\s\S]+)?/;null!==(e=f.exec(this.col.cellFilter))&&(a=b(e[1])(a,e[2],e[3]))}}return a},c}])}(),function(){angular.module("ui.grid").factory("ScrollEvent",["gridUtil",function(a){function b(b,c,d,e){var f=this;if(!b)throw new Error("grid argument is required");f.grid=b,f.source=e,f.withDelay=!0,f.sourceRowContainer=c,f.sourceColContainer=d,f.newScrollLeft=null,f.newScrollTop=null,f.x=null,f.y=null,f.verticalScrollLength=-9999999,f.horizontalScrollLength=-999999,f.fireThrottledScrollingEvent=a.throttle(function(a){f.grid.scrollContainers(a,f)},f.grid.options.wheelScrollThrottle,{trailing:!0})}return b.prototype.getNewScrollLeft=function(b,c){var d=this;if(!d.newScrollLeft){var e,f=b.getCanvasWidth()-b.getViewportWidth(),g=a.normalizeScrollLeft(c,d.grid);if("undefined"!=typeof d.x.percentage&&void 0!==d.x.percentage)e=d.x.percentage;else{if("undefined"==typeof d.x.pixels||void 0===d.x.pixels)throw new Error("No percentage or pixel value provided for scroll event X axis");e=d.x.percentage=(g+d.x.pixels)/f}return Math.max(0,e*f)}return d.newScrollLeft},b.prototype.getNewScrollTop=function(a,b){var c=this;if(!c.newScrollTop){var d,e=a.getVerticalScrollLength(),f=b[0].scrollTop;if("undefined"!=typeof c.y.percentage&&void 0!==c.y.percentage)d=c.y.percentage;else{if("undefined"==typeof c.y.pixels||void 0===c.y.pixels)throw new Error("No percentage or pixel value provided for scroll event Y axis");d=c.y.percentage=(f+c.y.pixels)/e}return Math.max(0,d*e)}return c.newScrollTop},b.prototype.atTop=function(a){return this.y&&(0===this.y.percentage||this.verticalScrollLength<0)&&0===a},b.prototype.atBottom=function(a){return this.y&&(1===this.y.percentage||0===this.verticalScrollLength)&&a>0},b.prototype.atLeft=function(a){return this.x&&(0===this.x.percentage||this.horizontalScrollLength<0)&&0===a},b.prototype.atRight=function(a){return this.x&&(1===this.x.percentage||0===this.horizontalScrollLength)&&a>0},b.Sources={ViewPortScroll:"ViewPortScroll",RenderContainerMouseWheel:"RenderContainerMouseWheel",RenderContainerTouchMove:"RenderContainerTouchMove",Other:99},b}])}(),function(){"use strict";angular.module("ui.grid").service("gridClassFactory",["gridUtil","$q","$compile","$templateCache","uiGridConstants","Grid","GridColumn","GridRow",function(a,b,c,d,e,f,g,h){var i={createGrid:function(d){d="undefined"!=typeof d?d:{},d.id=a.newId();var e=new f(d);if(e.options.rowTemplate){var g=b.defer();e.getRowTemplateFn=g.promise,a.getTemplate(e.options.rowTemplate).then(function(a){var b=c(a);g.resolve(b)},function(a){throw new Error("Couldn't fetch/use row template '"+e.options.rowTemplate+"'")})}return e.registerColumnBuilder(i.defaultColumnBuilder),e.registerRowBuilder(i.rowTemplateAssigner),e.registerRowsProcessor(function(a){return a.forEach(function(a){a.evaluateRowVisibility(!0)},50),a}),e.registerColumnsProcessor(function(a){return a.forEach(function(a){a.visible=!0}),a},50),e.registerColumnsProcessor(function(a){return a.forEach(function(a){a.colDef.visible===!1&&(a.visible=!1)}),a},50),e.registerRowsProcessor(e.searchRows,100),e.options.externalSort&&angular.isFunction(e.options.externalSort)?e.registerRowsProcessor(e.options.externalSort,200):e.registerRowsProcessor(e.sortByColumn,200),e},defaultColumnBuilder:function(c,d,f){var g=[],h=function(b,f,h,i,j){c[b]?d[f]=c[b]:d[f]=h,g.push(a.getTemplate(d[f]).then(function(a){angular.isFunction(a)&&(a=a());var c="cellTooltip"===j?"col.cellTooltip(row,col)":"col.headerTooltip(col)";j&&d[j]===!1?a=a.replace(e.TOOLTIP,""):j&&d[j]&&(a=a.replace(e.TOOLTIP,'title="{{'+c+' CUSTOM_FILTERS }}"')),i?d[b]=a.replace(e.CUSTOM_FILTERS,function(){return d[i]?"|"+d[i]:""}):d[b]=a},function(a){throw new Error("Couldn't fetch/use colDef."+b+" '"+c[b]+"'")}))};return h("cellTemplate","providedCellTemplate","ui-grid/uiGridCell","cellFilter","cellTooltip"),d.cellTemplatePromise=g[0],h("headerCellTemplate","providedHeaderCellTemplate","ui-grid/uiGridHeaderCell","headerCellFilter","headerTooltip"),h("footerCellTemplate","providedFooterCellTemplate","ui-grid/uiGridFooterCell","footerCellFilter"),h("filterHeaderTemplate","providedFilterHeaderTemplate","ui-grid/ui-grid-filter"),d.compiledElementFnDefer=b.defer(),b.all(g)},rowTemplateAssigner:function(d){var e=this;if(d.rowTemplate){var f=b.defer();d.getRowTemplateFn=f.promise,a.getTemplate(d.rowTemplate).then(function(a){var b=c(a);f.resolve(b)},function(a){throw new Error("Couldn't fetch/use row template '"+d.rowTemplate+"'")})}else d.rowTemplate=e.options.rowTemplate,d.getRowTemplateFn=e.getRowTemplateFn;return d.getRowTemplateFn}};return i}])}(),function(){function a(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var b=angular.module("ui.grid");b.service("rowSearcher",["gridUtil","uiGridConstants",function(b,c){var d=c.filter.CONTAINS,e={};return e.getTerm=function(a){if("undefined"==typeof a.term)return a.term;var b=a.term;return"string"==typeof b&&(b=b.trim()),b},e.stripTerm=function(b){var c=e.getTerm(b);return"string"==typeof c?a(c.replace(/(^\*|\*$)/g,"")):c},e.guessCondition=function(a){if("undefined"==typeof a.term||!a.term)return d;var b=e.getTerm(a);if(/\*/.test(b)){var c="";a.flags&&a.flags.caseSensitive||(c+="i");var f=b.replace(/(\\)?\*/g,function(a,b){return b?a:"[\\s\\S]*?"});return new RegExp("^"+f+"$",c)}return d},e.setupFilters=function(a){for(var d=[],f=a.length,g=0;f>g;g++){var h=a[g];if(h.noTerm||!b.isNullOrUndefined(h.term)){var i={},j="";h.flags&&h.flags.caseSensitive||(j+="i"),b.isNullOrUndefined(h.term)||(i.term=e.stripTerm(h)),h.condition?i.condition=h.condition:i.condition=e.guessCondition(h),i.flags=angular.extend({caseSensitive:!1,date:!1},h.flags),i.condition===c.filter.STARTS_WITH&&(i.startswithRE=new RegExp("^"+i.term,j)),i.condition===c.filter.ENDS_WITH&&(i.endswithRE=new RegExp(i.term+"$",j)),i.condition===c.filter.CONTAINS&&(i.containsRE=new RegExp(i.term,j)),i.condition===c.filter.EXACT&&(i.exactRE=new RegExp("^"+i.term+"$",j)),d.push(i)}}return d},e.runColumnFilter=function(a,b,d,e){var f,g=typeof e.condition,h=e.term;if(f=d.filterCellFiltered?a.getCellDisplayValue(b,d):a.getCellValue(b,d),e.condition instanceof RegExp)return e.condition.test(f);if("function"===g)return e.condition(h,f,b,d);if(e.startswithRE)return e.startswithRE.test(f);if(e.endswithRE)return e.endswithRE.test(f);if(e.containsRE)return e.containsRE.test(f);if(e.exactRE)return e.exactRE.test(f);if(e.condition===c.filter.NOT_EQUAL){var i=new RegExp("^"+h+"$");return!i.exec(f)}if("number"==typeof f&&"string"==typeof h){var j=parseFloat(h.replace(/\\\./,".").replace(/\\\-/,"-"));isNaN(j)||(h=j)}return e.flags.date===!0&&(f=new Date(f),h=new Date(h.replace(/\\/g,""))),e.condition===c.filter.GREATER_THAN?f>h:e.condition===c.filter.GREATER_THAN_OR_EQUAL?f>=h:e.condition===c.filter.LESS_THAN?h>f:e.condition===c.filter.LESS_THAN_OR_EQUAL?h>=f:!0},e.searchColumn=function(a,b,c,d){if(a.options.useExternalFiltering)return!0;for(var f=d.length,g=0;f>g;g++){var h=d[g],i=e.runColumnFilter(a,b,c,h);if(!i)return!1}return!0},e.search=function(a,c,d){if(c){if(!a.options.enableFiltering)return c;for(var f=[],g=d.length,h=function(a){var c=!1;return a.forEach(function(a){(!b.isNullOrUndefined(a.term)&&""!==a.term||a.noTerm)&&(c=!0)}),c},i=0;g>i;i++){var j=d[i];"undefined"!=typeof j.filters&&h(j.filters)&&f.push({col:j,filters:e.setupFilters(j.filters)})}if(f.length>0){for(var k=function(a,b,c,d){b.visible&&!e.searchColumn(a,b,c,d)&&(b.visible=!1)},l=function(a,b){for(var d=c.length,e=0;d>e;e++)k(a,c[e],b.col,b.filters)},m=f.length,n=0;m>n;n++)l(a,f[n]);a.api.core.raise.rowsVisibleChanged&&a.api.core.raise.rowsVisibleChanged()}return c}},e}])}(),function(){var a=angular.module("ui.grid");a.service("rowSorter",["$parse","uiGridConstants",function(a,b){var c="("+b.CURRENCY_SYMBOLS.map(function(a){return"\\"+a}).join("|")+")?",d=(new RegExp("^[-+]?"+c+"[\\d,.]+"+c+"%?$"),{colSortFnCache:{}});return d.guessSortFn=function(a){switch(a){case"number":return d.sortNumber;case"numberStr":return d.sortNumberStr;case"boolean":return d.sortBool;case"string":return d.sortAlpha;case"date":return d.sortDate;case"object":return d.basicSort;default:throw new Error("No sorting function found for type:"+a)}},d.handleNulls=function(a,b){if(!a&&0!==a&&a!==!1||!b&&0!==b&&b!==!1){if(!a&&0!==a&&a!==!1&&!b&&0!==b&&b!==!1)return 0;if(!a&&0!==a&&a!==!1)return 1;if(!b&&0!==b&&b!==!1)return-1}return null},d.basicSort=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a===b?0:b>a?-1:1},d.sortNumber=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a-b},d.sortNumberStr=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;var e,f,g=!1,h=!1;return e=parseFloat(a.replace(/[^0-9.-]/g,"")),isNaN(e)&&(g=!0),f=parseFloat(b.replace(/[^0-9.-]/g,"")),isNaN(f)&&(h=!0),g&&h?0:g?1:h?-1:e-f},d.sortAlpha=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;var e=a.toString().toLowerCase(),f=b.toString().toLowerCase();return e===f?0:e.localeCompare(f)},d.sortDate=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;a instanceof Date||(a=new Date(a)),b instanceof Date||(b=new Date(b));var e=a.getTime(),f=b.getTime();return e===f?0:f>e?-1:1},d.sortBool=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a&&b?0:a||b?a?1:-1:0},d.getSortFn=function(a,b,c){var e;return d.colSortFnCache[b.colDef.name]?e=d.colSortFnCache[b.colDef.name]:void 0!==b.sortingAlgorithm?(e=b.sortingAlgorithm,d.colSortFnCache[b.colDef.name]=b.sortingAlgorithm):b.sortCellFiltered&&b.cellFilter?(e=d.sortAlpha,d.colSortFnCache[b.colDef.name]=e):(e=d.guessSortFn(b.colDef.type),e?d.colSortFnCache[b.colDef.name]=e:e=d.sortAlpha),e},d.prioritySort=function(a,b){return void 0!==a.sort.priority&&void 0!==b.sort.priority?a.sort.priority<b.sort.priority?-1:a.sort.priority===b.sort.priority?0:1:a.sort.priority||void 0===a.sort.priority?-1:b.sort.priority||void 0===b.sort.priority?1:0},d.sort=function(a,c,e){if(c){if(a.options.useExternalSorting)return c;var f=[];if(e.forEach(function(a){!a.sort||a.sort.ignoreSort||!a.sort.direction||a.sort.direction!==b.ASC&&a.sort.direction!==b.DESC||f.push(a)}),f=f.sort(d.prioritySort),0===f.length)return c;var g,h,i=function(a,b){a.entity.$$uiGridIndex=b};c.forEach(i);var j=c.slice(0),k=function(c,e){for(var i,k=0,l=0;0===k&&l<f.length;){g=f[l],h=f[l].sort.direction,i=d.getSortFn(a,g,j);var m,n;g.sortCellFiltered?(m=a.getCellDisplayValue(c,g),n=a.getCellDisplayValue(e,g)):(m=a.getCellValue(c,g),n=a.getCellValue(e,g)),k=i(m,n,c,e,h),l++}return 0===k?c.entity.$$uiGridIndex-e.entity.$$uiGridIndex:h===b.ASC?k:0-k},l=c.sort(k),m=function(a,b){delete a.entity.$$uiGridIndex};return c.forEach(m),l}},d}])}(),function(){function a(a){var b=a;return"undefined"!=typeof b.length&&b.length&&(b=a[0]),b.ownerDocument.defaultView.getComputedStyle(b,null)}function b(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0,h=["Top","Right","Bottom","Left"];4>f;f+=2){var i=h[f];if("margin"===c){var j=parseFloat(e[c+i]);isNaN(j)||(g+=j)}if(d){if("content"===c){var k=parseFloat(e["padding"+i]);isNaN(k)||(g-=k)}if("margin"!==c){var l=parseFloat(e["border"+i+"Width"]);isNaN(l)||(g-=l)}}else{var m=parseFloat(e["padding"+i]);if(isNaN(m)||(g+=m),"padding"!==c){var n=parseFloat(e["border"+i+"Width"]);isNaN(n)||(g+=n)}}}return g}function c(c,d,e){var f,h=!0,i=a(c),j="border-box"===i.boxSizing;if(0>=f||null==f){if(f=i[d],(0>f||null==f)&&(f=c.style[d]),g.test(f))return f;h=j&&!0,f=parseFloat(f)||0}var k=f+b(c,d,e||(j?"border":"content"),h,i);return k}function d(b){b=angular.element(b)[0];var c=b.parentElement;return c||(c=document.getElementsByTagName("body")[0]),parseInt(a(c).fontSize)||parseInt(a(b).fontSize)||16}var e,f=angular.module("ui.grid");"function"!=typeof Function.prototype.bind&&(e=function(){var a=Array.prototype.slice;return function(b){var c=this,d=a.call(arguments,1);return d.length?function(){return arguments.length?c.apply(b,d.concat(a.call(arguments))):c.apply(b,d)}:function(){return arguments.length?c.apply(b,arguments):c.call(b)}}});var g=new RegExp("^("+/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source+")(?!px)[a-z%]+$","i"),h=/^(block|none|table(?!-c[ea]).+)/,i={position:"absolute",visibility:"hidden",display:"block"},j=["0","0","0","0"],k="uiGrid-";f.service("gridUtil",["$log","$window","$document","$http","$templateCache","$timeout","$interval","$injector","$q","$interpolate","uiGridConstants",function(f,g,l,m,n,o,p,q,r,s,t){function u(a,b){var c=angular.element(this),d=0,e=0,f=0,g=0;if(b.originalEvent&&(b=b.originalEvent),"detail"in b&&(f=-1*b.detail),"wheelDelta"in b&&(f=b.wheelDelta),"wheelDeltaY"in b&&(f=b.wheelDeltaY),"wheelDeltaX"in b&&(e=-1*b.wheelDeltaX),"axis"in b&&b.axis===b.HORIZONTAL_AXIS&&(e=-1*f,f=0),d=0===f?e:f,"deltaY"in b&&(f=-1*b.deltaY,d=f),"deltaX"in b&&(e=b.deltaX,0===f&&(d=-1*e)),0!==f||0!==e){if(1===b.deltaMode){var h=c.data("mousewheel-line-height");d*=h,f*=h,e*=h}else if(2===b.deltaMode){var i=c.data("mousewheel-page-height");d*=i,f*=i,e*=i}g=Math.max(Math.abs(f),Math.abs(e)),(!z||z>g)&&(z=g,w(b,g)&&(z/=40)),d=Math[d>=1?"floor":"ceil"](d/z),e=Math[e>=1?"floor":"ceil"](e/z),f=Math[f>=1?"floor":"ceil"](f/z),b.deltaMode=0;var j={originalEvent:b,deltaX:e,deltaY:f,deltaFactor:z,preventDefault:function(){b.preventDefault()},stopPropagation:function(){b.stopPropagation()}};y&&clearTimeout(y),y=setTimeout(v,200),a.call(c[0],j)}}function v(){z=null}function w(a,b){return"mousewheel"===a.type&&b%120===0}var x={augmentWidthOrHeight:b,getStyles:a,createBoundedWrapper:function(a,b){return function(){return b.apply(a,arguments)}},readableColumnName:function(a){return"undefined"==typeof a||void 0===a||null===a?a:("string"!=typeof a&&(a=String(a)),a.replace(/_+/g," ").replace(/^[A-Z]+$/,function(a){return angular.lowercase(angular.uppercase(a.charAt(0))+a.slice(1));
+}).replace(/([\w\u00C0-\u017F]+)/g,function(a){return angular.uppercase(a.charAt(0))+a.slice(1)}).replace(/(\w+?(?=[A-Z]))/g,"$1 "))},getColumnsFromData:function(a,b){var c=[];if(!a||"undefined"==typeof a[0]||void 0===a[0])return[];angular.isUndefined(b)&&(b=[]);var d=a[0];return angular.forEach(d,function(a,d){-1===b.indexOf(d)&&c.push({name:d})}),c},newId:function(){var a=(new Date).getTime();return function(){return a+=1}}(),getTemplate:function(a){if(n.get(a))return x.postProcessTemplate(n.get(a));if(a.hasOwnProperty("then"))return a.then(x.postProcessTemplate);try{if(angular.element(a).length>0)return r.when(a).then(x.postProcessTemplate)}catch(b){}return x.logDebug("fetching url",a),m({method:"GET",url:a}).then(function(b){var c=b.data.trim();return n.put(a,c),c},function(b){throw new Error("Could not get template "+a+": "+b)}).then(x.postProcessTemplate)},postProcessTemplate:function(a){var b=s.startSymbol(),c=s.endSymbol();return"{{"===b&&"}}"===c||(a=a.replace(/\{\{/g,b),a=a.replace(/\}\}/g,c)),r.when(a)},guessType:function(a){var b=typeof a;switch(b){case"number":case"boolean":case"string":return b;default:return angular.isDate(a)?"date":"object"}},elementWidth:function(a){},elementHeight:function(a){},getScrollbarWidth:function(){var a=document.createElement("div");a.style.visibility="hidden",a.style.width="100px",a.style.msOverflowStyle="scrollbar",document.body.appendChild(a);var b=a.offsetWidth;a.style.overflow="scroll";var c=document.createElement("div");c.style.width="100%",a.appendChild(c);var d=c.offsetWidth;return a.parentNode.removeChild(a),b-d},swap:function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},fakeElement:function(a,b,c,d){var e,f,g=angular.element(a).clone()[0];for(f in b)g.style[f]=b[f];return angular.element(document.body).append(g),e=c.call(g,g),angular.element(g).remove(),e},normalizeWheelEvent:function(a){var b,c,d,e=a||window.event,f=([].slice.call(arguments,1),0),g=0,h=0,i=0,j=0;return e.originalEvent&&(e=e.originalEvent),e.wheelDelta&&(f=e.wheelDelta),e.detail&&(f=-1*e.detail),h=f,void 0!==e.axis&&e.axis===e.HORIZONTAL_AXIS&&(h=0,g=-1*f),e.deltaY&&(h=-1*e.deltaY,f=h),e.deltaX&&(g=e.deltaX,f=-1*g),void 0!==e.wheelDeltaY&&(h=e.wheelDeltaY),void 0!==e.wheelDeltaX&&(g=e.wheelDeltaX),i=Math.abs(f),(!b||b>i)&&(b=i),j=Math.max(Math.abs(h),Math.abs(g)),(!c||c>j)&&(c=j),d=f>0?"floor":"ceil",f=Math[d](f/b),g=Math[d](g/c),h=Math[d](h/c),{delta:f,deltaX:g,deltaY:h}},isTouchEnabled:function(){var a;return("ontouchstart"in g||g.DocumentTouch&&l instanceof DocumentTouch)&&(a=!0),a},isNullOrUndefined:function(a){return void 0===a||null===a},endsWith:function(a,b){return a&&b&&"string"==typeof a?-1!==a.indexOf(b,a.length-b.length):!1},arrayContainsObjectWithProperty:function(a,b,c){var d=!1;return angular.forEach(a,function(a){a[b]===c&&(d=!0)}),d},numericAndNullSort:function(a,b){return null===a?1:null===b?-1:null===a&&null===b?0:a-b},disableAnimations:function(a){var b;try{b=q.get("$animate"),angular.version.major>1||1===angular.version.major&&angular.version.minor>=4?b.enabled(a,!1):b.enabled(!1,a)}catch(c){}},enableAnimations:function(a){var b;try{return b=q.get("$animate"),angular.version.major>1||1===angular.version.major&&angular.version.minor>=4?b.enabled(a,!0):b.enabled(!0,a),b}catch(c){}},nextUid:function(){for(var a,b=j.length;b;){if(b--,a=j[b].charCodeAt(0),57===a)return j[b]="A",k+j.join("");if(90!==a)return j[b]=String.fromCharCode(a+1),k+j.join("");j[b]="0"}return j.unshift("0"),k+j.join("")},hashKey:function(a){var b,c=typeof a;return"object"===c&&null!==a?"function"==typeof(b=a.$$hashKey)?b=a.$$hashKey():"undefined"!=typeof a.$$hashKey&&a.$$hashKey?b=a.$$hashKey:void 0===b&&(b=a.$$hashKey=x.nextUid()):b=a,c+":"+b},resetUids:function(){j=["0","0","0"]},logError:function(a){t.LOG_ERROR_MESSAGES&&f.error(a)},logWarn:function(a){t.LOG_WARN_MESSAGES&&f.warn(a)},logDebug:function(){t.LOG_DEBUG_MESSAGES&&f.debug.apply(f,arguments)}};x.focus={queue:[],byId:function(a,b){this._purgeQueue();var c=o(function(){var c=(b&&b.id?b.id+"-":"")+a,d=g.document.getElementById(c);d?d.focus():x.logWarn("[focus.byId] Element id "+c+" was not found.")});return this.queue.push(c),c},byElement:function(a){if(!angular.isElement(a))return x.logWarn("Trying to focus on an element that isn't an element."),r.reject("not-element");a=angular.element(a),this._purgeQueue();var b=o(function(){a&&a[0].focus()});return this.queue.push(b),b},bySelector:function(a,b,c){var d=this;if(!angular.isElement(a))throw new Error("The parent element is not an element.");a=angular.element(a);var e=function(){var c=a[0].querySelector(b);return d.byElement(c)};if(this._purgeQueue(),c){var f=o(e);return this.queue.push(o(e)),f}return e()},_purgeQueue:function(){this.queue.forEach(function(a){o.cancel(a)}),this.queue=[]}},["width","height"].forEach(function(b){var d=angular.uppercase(b.charAt(0))+b.substr(1);x["element"+d]=function(d,e){var f=d;if(f&&"undefined"!=typeof f.length&&f.length&&(f=d[0]),f){var g=a(f);return 0===f.offsetWidth&&h.test(g.display)?x.swap(f,i,function(){return c(f,b,e)}):c(f,b,e)}return null},x["outerElement"+d]=function(a,b){return a?x["element"+d].call(this,a,b?"margin":"border"):null}}),x.closestElm=function(a,b){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var c;["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"].some(function(a){return"function"==typeof document.body[a]?(c=a,!0):!1});for(var d;null!==a;){if(d=a.parentElement,null!==d&&d[c](b))return d;a=d}return null},x.type=function(a){var b=Function.prototype.toString.call(a.constructor);return b.match(/function (.*?)\(/)[1]},x.getBorderSize=function(b,c){"undefined"!=typeof b.length&&b.length&&(b=b[0]);var d=a(b);c=c?"border"+c.charAt(0).toUpperCase()+c.slice(1):"border",c+="Width";var e=parseInt(d[c],10);return isNaN(e)?0:e},x.detectBrowser=function(){var a=g.navigator.userAgent,b={chrome:/chrome/i,safari:/safari/i,firefox:/firefox/i,ie:/internet explorer|trident\//i};for(var c in b)if(b[c].test(a))return c;return"unknown"},x.rtlScrollType=function B(){if(B.type)return B.type;var a=angular.element('<div dir="rtl" style="font-size: 14px; width: 1px; height: 1px; position: absolute; top: -1000px; overflow: scroll">A</div>')[0],b="reverse";return document.body.appendChild(a),a.scrollLeft>0?b="default":(a.scrollLeft=1,0===a.scrollLeft&&(b="negative")),angular.element(a).remove(),B.type=b,b},x.normalizeScrollLeft=function(a,b){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var c=a.scrollLeft;if(b.isRTL())switch(x.rtlScrollType()){case"default":return a.scrollWidth-c-a.clientWidth;case"negative":return Math.abs(c);case"reverse":return c}return c},x.denormalizeScrollLeft=function(a,b,c){if("undefined"!=typeof a.length&&a.length&&(a=a[0]),c.isRTL())switch(x.rtlScrollType()){case"default":var d=a.scrollWidth-a.clientWidth;return d-b;case"negative":return-1*b;case"reverse":return b}return b},x.preEval=function(a){var b=t.BRACKET_REGEXP.exec(a);if(b)return(b[1]?x.preEval(b[1]):b[1])+b[2]+(b[3]?x.preEval(b[3]):b[3]);a=a.replace(t.APOS_REGEXP,"\\'");var c=a.split(t.DOT_REGEXP),d=[c.shift()];return angular.forEach(c,function(a){d.push(a.replace(t.FUNC_REGEXP,"']$1"))}),d.join("['")},x.debounce=function(a,b,c){function d(){g=this,f=arguments;var d=function(){e=null,c||(h=a.apply(g,f))},i=c&&!e;return e&&o.cancel(e),e=o(d,b,!1),i&&(h=a.apply(g,f)),h}var e,f,g,h;return d.cancel=function(){o.cancel(e),e=null},d},x.throttle=function(a,b,c){function d(b){g=+new Date,a.apply(e,f),p(function(){h=null},0,1,!1)}c=c||{};var e,f,g=0,h=null;return function(){if(e=this,f=arguments,null===h){var a=+new Date-g;a>b?d():c.trailing&&(h=p(d,b-a,1,!1))}}},x.on={},x.off={},x._events={},x.addOff=function(a){x.off[a]=function(b,c){var d=x._events[a].indexOf(c);d>0&&x._events[a].removeAt(d)}};var y,z,A="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"];return x.on.mousewheel=function(a,b){if(a&&b){var c=angular.element(a);c.data("mousewheel-line-height",d(c)),c.data("mousewheel-page-height",x.elementHeight(c)),c.data("mousewheel-callbacks")||c.data("mousewheel-callbacks",{});var f=c.data("mousewheel-callbacks");f[b]=(Function.prototype.bind||e).call(u,c[0],b);for(var g=A.length;g;)c.on(A[--g],f[b])}},x.off.mousewheel=function(a,b){var c=angular.element(a),d=c.data("mousewheel-callbacks"),e=d[b];if(e)for(var f=A.length;f;)c.off(A[--f],e);delete d[b],0===Object.keys(d).length&&(c.removeData("mousewheel-line-height"),c.removeData("mousewheel-page-height"),c.removeData("mousewheel-callbacks"))},x}]),f.filter("px",function(){return function(a){return a.match(/^[\d\.]+$/)?a+"px":a}})}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){var b={aggregate:{label:"položky"},groupPanel:{description:"Přesuňte záhlaví zde pro vytvoření skupiny dle sloupce."},search:{placeholder:"Hledat...",showingItems:"Zobrazuji položky:",selectedItems:"Vybrané položky:",totalItems:"Celkem položek:",size:"Velikost strany:",first:"První strana",next:"Další strana",previous:"Předchozí strana",last:"Poslední strana"},menu:{text:"Vyberte sloupec:"},sort:{ascending:"Seřadit od A-Z",descending:"Seřadit od Z-A",remove:"Odebrat seřazení"},column:{hide:"Schovat sloupec"},aggregation:{count:"celkem řádků: ",sum:"celkem: ",avg:"avg: ",min:"min.: ",max:"max.: "},pinning:{pinLeft:"Zamknout vlevo",pinRight:"Zamknout vpravo",unpin:"Odemknout"},gridMenu:{columns:"Sloupce:",importerTitle:"Importovat soubor",exporterAllAsCsv:"Exportovat všechna data do csv",exporterVisibleAsCsv:"Exportovat viditelná data do csv",exporterSelectedAsCsv:"Exportovat vybraná data do csv",exporterAllAsPdf:"Exportovat všechna data do pdf",exporterVisibleAsPdf:"Exportovat viditelná data do pdf",exporterSelectedAsPdf:"Exportovat vybraná data do pdf",clearAllFilters:"Odstranit všechny filtry"},importer:{noHeaders:"Názvy sloupců se nepodařilo získat, obsahuje soubor záhlaví?",noObjects:"Data se nepodařilo zpracovat, obsahuje soubor řádky mimo záhlaví?",invalidCsv:"Soubor nelze zpracovat, jedná se o CSV?",invalidJson:"Soubor nelze zpracovat, je to JSON?",jsonNotArray:"Soubor musí obsahovat json. Ukončuji.."},pagination:{sizes:"položek na stránku",totalItems:"položek"},grouping:{group:"Seskupit",ungroup:"Odebrat seskupení",aggregate_count:"Agregace: Count",aggregate_sum:"Agregace: Sum",aggregate_max:"Agregace: Max",aggregate_min:"Agregace: Min",aggregate_avg:"Agregace: Avg",aggregate_remove:"Agregace: Odebrat"}};return a.add("cs",b),a.add("cz",b),a.add("cs-cz",b),a.add("cs-CZ",b),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("da",{aggregate:{label:"artikler"},groupPanel:{description:"Grupér rækker udfra en kolonne ved at trække dens overskift hertil."},search:{placeholder:"Søg...",showingItems:"Viste rækker:",selectedItems:"Valgte rækker:",totalItems:"Rækker totalt:",size:"Side størrelse:",first:"Første side",next:"Næste side",previous:"Forrige side",last:"Sidste side"},menu:{text:"Vælg kolonner:"},sort:{ascending:"Sorter stigende",descending:"Sorter faldende",none:"Sorter ingen",remove:"Fjern sortering"},column:{hide:"Skjul kolonne"},aggregation:{count:"antal rækker: ",sum:"sum: ",avg:"gns: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("de",{headerCell:{aria:{defaultFilterLabel:"Filter für Spalte",removeFilter:"Filter löschen",columnMenuButtonLabel:"Spaltenmenü"},priority:"Priorität:",filterLabel:"Filter für Spalte: "},aggregate:{label:"Eintrag"},groupPanel:{description:"Ziehen Sie eine Spaltenüberschrift hierhin, um nach dieser Spalte zu gruppieren."},search:{placeholder:"Suche...",showingItems:"Zeige Einträge:",selectedItems:"Ausgewählte Einträge:",totalItems:"Einträge gesamt:",size:"Einträge pro Seite:",first:"Erste Seite",next:"Nächste Seite",previous:"Vorherige Seite",last:"Letzte Seite"},menu:{text:"Spalten auswählen:"},sort:{ascending:"aufsteigend sortieren",descending:"absteigend sortieren",none:"keine Sortierung",remove:"Sortierung zurücksetzen"},column:{hide:"Spalte ausblenden"},aggregation:{count:"Zeilen insgesamt: ",sum:"gesamt: ",avg:"Durchschnitt: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Links anheften",pinRight:"Rechts anheften",unpin:"Lösen"},columnMenu:{close:"Schließen"},gridMenu:{aria:{buttonLabel:"Tabellenmenü"},columns:"Spalten:",importerTitle:"Datei importieren",exporterAllAsCsv:"Alle Daten als CSV exportieren",exporterVisibleAsCsv:"sichtbare Daten als CSV exportieren",exporterSelectedAsCsv:"markierte Daten als CSV exportieren",exporterAllAsPdf:"Alle Daten als PDF exportieren",exporterVisibleAsPdf:"sichtbare Daten als PDF exportieren",exporterSelectedAsPdf:"markierte Daten als CSV exportieren",clearAllFilters:"Alle Filter zurücksetzen"},importer:{noHeaders:"Es konnten keine Spaltennamen ermittelt werden. Sind in der Datei Spaltendefinitionen enthalten?",noObjects:"Es konnten keine Zeileninformationen gelesen werden, Sind in der Datei außer den Spaltendefinitionen auch Daten enthalten?",invalidCsv:"Die Datei konnte nicht eingelesen werden, ist es eine gültige CSV-Datei?",invalidJson:"Die Datei konnte nicht eingelesen werden. Enthält sie gültiges JSON?",jsonNotArray:"Die importierte JSON-Datei muß ein Array enthalten. Breche Import ab."},pagination:{aria:{pageToFirst:"Zum Anfang",pageBack:"Seite zurück",pageSelected:"Ausgwählte Seite",pageForward:"Seite vor",pageToLast:"Zum Ende"},sizes:"Einträge pro Seite",totalItems:"Einträge",through:"bis",of:"von"},grouping:{group:"Gruppieren",ungroup:"Gruppierung aufheben",aggregate_count:"Agg: Anzahl",aggregate_sum:"Agg: Summe",aggregate_max:"Agg: Maximum",aggregate_min:"Agg: Minimum",aggregate_avg:"Agg: Mittelwert",aggregate_remove:"Aggregation entfernen"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("en",{headerCell:{aria:{defaultFilterLabel:"Filter for column",removeFilter:"Remove Filter",columnMenuButtonLabel:"Column Menu"},priority:"Priority:",filterLabel:"Filter for column: "},aggregate:{label:"items"},groupPanel:{description:"Drag a column header here and drop it to group by that column."},search:{placeholder:"Search...",showingItems:"Showing Items:",selectedItems:"Selected Items:",totalItems:"Total Items:",size:"Page Size:",first:"First Page",next:"Next Page",previous:"Previous Page",last:"Last Page"},menu:{text:"Choose Columns:"},sort:{ascending:"Sort Ascending",descending:"Sort Descending",none:"Sort None",remove:"Remove Sort"},column:{hide:"Hide Column"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Pin Left",pinRight:"Pin Right",unpin:"Unpin"},columnMenu:{close:"Close"},gridMenu:{aria:{buttonLabel:"Grid Menu"},columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."},pagination:{aria:{pageToFirst:"Page to first",pageBack:"Page back",pageSelected:"Selected page",pageForward:"Page forward",pageToLast:"Page to last"},sizes:"items per page",totalItems:"items",through:"through",of:"of"},grouping:{group:"Group",ungroup:"Ungroup",aggregate_count:"Agg: Count",aggregate_sum:"Agg: Sum",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Avg",aggregate_remove:"Agg: Remove"},validate:{error:"Error:",minLength:"Value should be at least THRESHOLD characters long.",maxLength:"Value should be at most THRESHOLD characters long.",required:"A value is needed."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("es",{aggregate:{label:"Artículos"},groupPanel:{description:"Arrastre un encabezado de columna aquí y suéltelo para agrupar por esa columna."},search:{placeholder:"Buscar...",showingItems:"Artículos Mostrados:",selectedItems:"Artículos Seleccionados:",totalItems:"Artículos Totales:",size:"Tamaño de Página:",first:"Primera Página",next:"Página Siguiente",previous:"Página Anterior",last:"Última Página"},menu:{text:"Elegir columnas:"},sort:{ascending:"Orden Ascendente",descending:"Orden Descendente",remove:"Sin Ordenar"},column:{hide:"Ocultar la columna"},aggregation:{count:"filas totales: ",sum:"total: ",avg:"media: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fijar a la Izquierda",pinRight:"Fijar a la Derecha",unpin:"Quitar Fijación"},gridMenu:{columns:"Columnas:",importerTitle:"Importar archivo",exporterAllAsCsv:"Exportar todo como csv",exporterVisibleAsCsv:"Exportar vista como csv",exporterSelectedAsCsv:"Exportar selección como csv",exporterAllAsPdf:"Exportar todo como pdf",exporterVisibleAsPdf:"Exportar vista como pdf",exporterSelectedAsPdf:"Exportar selección como pdf",clearAllFilters:"Limpiar todos los filtros"},importer:{noHeaders:"No fue posible derivar los nombres de las columnas, ¿tiene encabezados el archivo?",noObjects:"No fue posible obtener registros, ¿contiene datos el archivo, aparte de los encabezados?",invalidCsv:"No fue posible procesar el archivo, ¿es un CSV válido?",invalidJson:"No fue posible procesar el archivo, ¿es un Json válido?",jsonNotArray:"El archivo json importado debe contener un array, abortando."},pagination:{sizes:"registros por página",totalItems:"registros",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Cont",aggregate_sum:"Agr: Sum",aggregate_max:"Agr: Máx",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Prom",aggregate_remove:"Agr: Quitar"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fa",{aggregate:{label:"قلم"},groupPanel:{description:"عنوان یک ستون را بگیر و به گروهی از آن ستون رها کن."},search:{placeholder:"جستجو...",showingItems:"نمایش اقلام:",selectedItems:"قلم\200cهای انتخاب شده:",totalItems:"مجموع اقلام:",size:"اندازه\200cی صفحه:",first:"اولین صفحه",next:"صفحه\200cی\200cبعدی",previous:"صفحه\200cی\200c قبلی",last:"آخرین صفحه"},menu:{text:"ستون\200cهای انتخابی:"},sort:{ascending:"ترتیب صعودی",descending:"ترتیب نزولی",remove:"حذف مرتب کردن"},column:{hide:"پنهان\200cکردن ستون"},aggregation:{count:"تعداد: ",sum:"مجموع: ",avg:"میانگین: ",min:"کمترین: ",max:"بیشترین: "},pinning:{pinLeft:"پین کردن سمت چپ",pinRight:"پین کردن سمت راست",unpin:"حذف پین"},gridMenu:{columns:"ستون\200cها:",importerTitle:"وارد کردن فایل",exporterAllAsCsv:"خروجی تمام داده\200cها در فایل csv",exporterVisibleAsCsv:"خروجی داده\200cهای قابل مشاهده در فایل csv",exporterSelectedAsCsv:"خروجی داده\200cهای انتخاب\200cشده در فایل csv",exporterAllAsPdf:"خروجی تمام داده\200cها در فایل pdf",exporterVisibleAsPdf:"خروجی داده\200cهای قابل مشاهده در فایل pdf",exporterSelectedAsPdf:"خروجی داده\200cهای انتخاب\200cشده در فایل pdf",clearAllFilters:"پاک کردن تمام فیلتر"},importer:{noHeaders:"نام ستون قابل استخراج نیست. آیا فایل عنوان دارد؟",noObjects:"اشیا قابل استخراج نیستند. آیا به جز عنوان\200cها در فایل داده وجود دارد؟",invalidCsv:"فایل قابل پردازش نیست. آیا فرمت  csv  معتبر است؟",invalidJson:"فایل قابل پردازش نیست. آیا فرمت json   معتبر است؟",jsonNotArray:"فایل json وارد شده باید حاوی آرایه باشد. عملیات ساقط شد."},pagination:{sizes:"اقلام در هر صفحه",totalItems:"اقلام",of:"از"},grouping:{group:"گروه\200cبندی",ungroup:"حذف گروه\200cبندی",aggregate_count:"Agg: تعداد",aggregate_sum:"Agg: جمع",aggregate_max:"Agg: بیشینه",aggregate_min:"Agg: کمینه",aggregate_avg:"Agg: میانگین",aggregate_remove:"Agg: حذف"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fi",{aggregate:{label:"rivit"},groupPanel:{description:"Raahaa ja pudota otsikko tähän ryhmittääksesi sarakkeen mukaan."},search:{placeholder:"Hae...",showingItems:"Näytetään rivejä:",selectedItems:"Valitut rivit:",totalItems:"Rivejä yht.:",size:"Näytä:",first:"Ensimmäinen sivu",next:"Seuraava sivu",previous:"Edellinen sivu",last:"Viimeinen sivu"},menu:{text:"Valitse sarakkeet:"},sort:{ascending:"Järjestä nouseva",descending:"Järjestä laskeva",remove:"Poista järjestys"},column:{hide:"Piilota sarake"},aggregation:{count:"Rivejä yht.: ",sum:"Summa: ",avg:"K.a.: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Lukitse vasemmalle",pinRight:"Lukitse oikealle",unpin:"Poista lukitus"},gridMenu:{columns:"Sarakkeet:",importerTitle:"Tuo tiedosto",exporterAllAsCsv:"Vie tiedot csv-muodossa",exporterVisibleAsCsv:"Vie näkyvä tieto csv-muodossa",exporterSelectedAsCsv:"Vie valittu tieto csv-muodossa",exporterAllAsPdf:"Vie tiedot pdf-muodossa",exporterVisibleAsPdf:"Vie näkyvä tieto pdf-muodossa",exporterSelectedAsPdf:"Vie valittu tieto pdf-muodossa",clearAllFilters:"Puhdista kaikki suodattimet"},importer:{noHeaders:"Sarakkeen nimiä ei voitu päätellä, onko tiedostossa otsikkoriviä?",noObjects:"Tietoja ei voitu lukea, onko tiedostossa muuta kuin otsikkot?",invalidCsv:"Tiedostoa ei voitu käsitellä, oliko se CSV-muodossa?",invalidJson:"Tiedostoa ei voitu käsitellä, oliko se JSON-muodossa?",jsonNotArray:"Tiedosto ei sisältänyt taulukkoa, lopetetaan."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fr",{aggregate:{label:"éléments"},groupPanel:{description:"Faites glisser une en-tête de colonne ici pour créer un groupe de colonnes."},search:{placeholder:"Recherche...",showingItems:"Affichage des éléments :",selectedItems:"Éléments sélectionnés :",totalItems:"Nombre total d'éléments:",size:"Taille de page:",first:"Première page",next:"Page Suivante",previous:"Page précédente",last:"Dernière page"},menu:{text:"Choisir des colonnes :"},sort:{ascending:"Trier par ordre croissant",descending:"Trier par ordre décroissant",remove:"Enlever le tri"},column:{hide:"Cacher la colonne"},aggregation:{count:"lignes totales: ",sum:"total: ",avg:"moy: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Épingler à gauche",pinRight:"Épingler à droite",unpin:"Détacher"},gridMenu:{columns:"Colonnes:",importerTitle:"Importer un fichier",exporterAllAsCsv:"Exporter toutes les données en CSV",exporterVisibleAsCsv:"Exporter les données visibles en CSV",exporterSelectedAsCsv:"Exporter les données sélectionnées en CSV",exporterAllAsPdf:"Exporter toutes les données en PDF",exporterVisibleAsPdf:"Exporter les données visibles en PDF",exporterSelectedAsPdf:"Exporter les données sélectionnées en PDF",clearAllFilters:"Nettoyez tous les filtres"},importer:{noHeaders:"Impossible de déterminer le nom des colonnes, le fichier possède-t-il une en-tête ?",noObjects:"Aucun objet trouvé, le fichier possède-t-il des données autres que l'en-tête ?",invalidCsv:"Le fichier n'a pas pu être traité, le CSV est-il valide ?",invalidJson:"Le fichier n'a pas pu être traité, le JSON est-il valide ?",jsonNotArray:"Le fichier JSON importé doit contenir un tableau, abandon."},pagination:{sizes:"éléments par page",totalItems:"éléments",of:"sur"},grouping:{group:"Grouper",ungroup:"Dégrouper",aggregate_count:"Agg: Compte",aggregate_sum:"Agg: Somme",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Moy",aggregate_remove:"Agg: Retirer"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("he",{aggregate:{label:"items"},groupPanel:{description:"גרור עמודה לכאן ושחרר בכדי לקבץ עמודה זו."},search:{placeholder:"חפש...",showingItems:"מציג:",selectedItems:'סה"כ נבחרו:',totalItems:'סה"כ רשומות:',size:"תוצאות בדף:",first:"דף ראשון",next:"דף הבא",previous:"דף קודם",last:"דף אחרון"},menu:{text:"בחר עמודות:"},sort:{ascending:"סדר עולה",descending:"סדר יורד",remove:"בטל"},column:{hide:"טור הסתר"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clean all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("hy",{aggregate:{label:"տվյալներ"},groupPanel:{description:"Ըստ սյան խմբավորելու համար քաշեք և գցեք վերնագիրն այստեղ։"},search:{placeholder:"Փնտրում...",showingItems:"Ցուցադրված տվյալներ՝",selectedItems:"Ընտրված:",totalItems:"Ընդամենը՝",size:"Տողերի քանակը էջում՝",first:"Առաջին էջ",next:"Հաջորդ էջ",previous:"Նախորդ էջ",last:"Վերջին էջ"},menu:{text:"Ընտրել սյուները:"},sort:{ascending:"Աճման կարգով",descending:"Նվազման կարգով",remove:"Հանել "},column:{hide:"Թաքցնել սյունը"},aggregation:{count:"ընդամենը տող՝ ",sum:"ընդամենը՝ ",avg:"միջին՝ ",min:"մին՝ ",max:"մաքս՝ "},pinning:{pinLeft:"Կպցնել ձախ կողմում",pinRight:"Կպցնել աջ կողմում",unpin:"Արձակել"},gridMenu:{columns:"Սյուներ:",importerTitle:"Ներմուծել ֆայլ",exporterAllAsCsv:"Արտահանել ամբողջը CSV",exporterVisibleAsCsv:"Արտահանել երևացող տվյալները CSV",exporterSelectedAsCsv:"Արտահանել ընտրված տվյալները CSV",exporterAllAsPdf:"Արտահանել PDF",exporterVisibleAsPdf:"Արտահանել երևացող տվյալները PDF",exporterSelectedAsPdf:"Արտահանել ընտրված տվյալները PDF",clearAllFilters:"Մաքրել բոլոր ֆիլտրերը"},importer:{noHeaders:"Հնարավոր չեղավ որոշել սյան վերնագրերը։ Արդյո՞ք ֆայլը ունի վերնագրեր։",noObjects:"Հնարավոր չեղավ կարդալ տվյալները։ Արդյո՞ք ֆայլում կան տվյալներ։",invalidCsv:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր CSV է։",invalidJson:"Հնարավոր չեղավ մշակել ֆայլը։ Արդյո՞ք այն վավեր Json է։",jsonNotArray:"Ներմուծված json ֆայլը պետք է պարունակի զանգված, կասեցվում է։"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("it",{aggregate:{label:"elementi"},groupPanel:{description:"Trascina un'intestazione all'interno del gruppo della colonna."},search:{placeholder:"Ricerca...",showingItems:"Mostra:",selectedItems:"Selezionati:",totalItems:"Totali:",size:"Tot Pagine:",first:"Prima",next:"Prossima",previous:"Precedente",last:"Ultima"},menu:{text:"Scegli le colonne:"},sort:{ascending:"Asc.",descending:"Desc.",remove:"Annulla ordinamento"},column:{hide:"Nascondi"},aggregation:{count:"righe totali: ",sum:"tot: ",avg:"media: ",min:"minimo: ",max:"massimo: "},pinning:{pinLeft:"Blocca a sx",pinRight:"Blocca a dx",unpin:"Blocca in alto"},gridMenu:{columns:"Colonne:",importerTitle:"Importa",exporterAllAsCsv:"Esporta tutti i dati in CSV",exporterVisibleAsCsv:"Esporta i dati visibili in CSV",exporterSelectedAsCsv:"Esporta i dati selezionati in CSV",exporterAllAsPdf:"Esporta tutti i dati in PDF",exporterVisibleAsPdf:"Esporta i dati visibili in PDF",exporterSelectedAsPdf:"Esporta i dati selezionati in PDF",clearAllFilters:"Pulire tutti i filtri"},importer:{noHeaders:"Impossibile reperire i nomi delle colonne, sicuro che siano indicati all'interno del file?",noObjects:"Impossibile reperire gli oggetti, sicuro che siano indicati all'interno del file?",invalidCsv:"Impossibile elaborare il file, sicuro che sia un CSV?",invalidJson:"Impossibile elaborare il file, sicuro che sia un JSON valido?",jsonNotArray:"Errore! Il file JSON da importare deve contenere un array."},grouping:{group:"Raggruppa",ungroup:"Separa",aggregate_count:"Agg: N. Elem.",aggregate_sum:"Agg: Somma",aggregate_max:"Agg: Massimo",aggregate_min:"Agg: Minimo",aggregate_avg:"Agg: Media",aggregate_remove:"Agg: Rimuovi"},validate:{error:"Errore:",minLength:"Lunghezza minima pari a THRESHOLD caratteri.",maxLength:"Lunghezza massima pari a THRESHOLD caratteri.",required:"Necessario inserire un valore."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ja",{aggregate:{label:"項目"},groupPanel:{description:"ここに列ヘッダをドラッグアンドドロップして、その列でグループ化します。"},search:{placeholder:"検索...",showingItems:"表示中の項目:",selectedItems:"選択した項目:",totalItems:"項目の総数:",size:"ページサイズ:",first:"最初のページ",next:"次のページ",previous:"前のページ",last:"前のページ"},menu:{text:"列の選択:"},sort:{ascending:"昇順に並べ替え",descending:"降順に並べ替え",remove:"並べ替えの解除"},column:{hide:"列の非表示"},aggregation:{count:"合計行数: ",sum:"合計: ",avg:"平均: ",min:"最小: ",max:"最大: "},pinning:{pinLeft:"左に固定",pinRight:"右に固定",unpin:"固定解除"},gridMenu:{columns:"列:",importerTitle:"ファイルのインポート",exporterAllAsCsv:"すべてのデータをCSV形式でエクスポート",exporterVisibleAsCsv:"表示中のデータをCSV形式でエクスポート",exporterSelectedAsCsv:"選択したデータをCSV形式でエクスポート",exporterAllAsPdf:"すべてのデータをPDF形式でエクスポート",exporterVisibleAsPdf:"表示中のデータをPDF形式でエクスポート",exporterSelectedAsPdf:"選択したデータをPDF形式でエクスポート",clearAllFilters:"すべてのフィルタを清掃してください"},importer:{noHeaders:"列名を取得できません。ファイルにヘッダが含まれていることを確認してください。",noObjects:"オブジェクトを取得できません。ファイルにヘッダ以外のデータが含まれていることを確認してください。",invalidCsv:"ファイルを処理できません。ファイルが有効なCSV形式であることを確認してください。",invalidJson:"ファイルを処理できません。ファイルが有効なJSON形式であることを確認してください。",jsonNotArray:"インポートしたJSONファイルには配列が含まれている必要があります。処理を中止します。"},pagination:{aria:{pageToFirst:"最初のページ",pageBack:"前のページ",pageSelected:"現在のページ",pageForward:"次のページ",pageToLast:"最後のページ"},sizes:"項目/ページ",totalItems:"項目",through:"から",of:"項目/全"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ko",{aggregate:{label:"아이템"},groupPanel:{description:"컬럼으로 그룹핑하기 위해서는 컬럼 헤더를 끌어 떨어뜨려 주세요."},search:{placeholder:"검색...",showingItems:"항목 보여주기:",selectedItems:"선택 항목:",totalItems:"전체 항목:",size:"페이지 크기:",first:"첫번째 페이지",next:"다음 페이지",previous:"이전 페이지",last:"마지막 페이지"},menu:{text:"컬럼을 선택하세요:"},sort:{ascending:"오름차순 정렬",descending:"내림차순 정렬",remove:"소팅 제거"},column:{hide:"컬럼 제거"},aggregation:{count:"전체 갯수: ",sum:"전체: ",avg:"평균: ",min:"최소: ",max:"최대: "},pinning:{pinLeft:"왼쪽 핀",pinRight:"오른쪽 핀",unpin:"핀 제거"},gridMenu:{columns:"컬럼:",importerTitle:"파일 가져오기",exporterAllAsCsv:"csv로 모든 데이터 내보내기",exporterVisibleAsCsv:"csv로 보이는 데이터 내보내기",exporterSelectedAsCsv:"csv로 선택된 데이터 내보내기",exporterAllAsPdf:"pdf로 모든 데이터 내보내기",exporterVisibleAsPdf:"pdf로 보이는 데이터 내보내기",
+exporterSelectedAsPdf:"pdf로 선택 데이터 내보내기",clearAllFilters:"모든 필터를 청소"},importer:{noHeaders:"컬럼명이 지정되어 있지 않습니다. 파일에 헤더가 명시되어 있는지 확인해 주세요.",noObjects:"데이터가 지정되어 있지 않습니다. 데이터가 파일에 있는지 확인해 주세요.",invalidCsv:"파일을 처리할 수 없습니다. 올바른 csv인지 확인해 주세요.",invalidJson:"파일을 처리할 수 없습니다. 올바른 json인지 확인해 주세요.",jsonNotArray:"json 파일은 배열을 포함해야 합니다."},pagination:{sizes:"페이지당 항목",totalItems:"전체 항목"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("nl",{aggregate:{label:"items"},groupPanel:{description:"Sleep hier een kolomnaam heen om op te groeperen."},search:{placeholder:"Zoeken...",showingItems:"Getoonde items:",selectedItems:"Geselecteerde items:",totalItems:"Totaal aantal items:",size:"Items per pagina:",first:"Eerste pagina",next:"Volgende pagina",previous:"Vorige pagina",last:"Laatste pagina"},menu:{text:"Kies kolommen:"},sort:{ascending:"Sorteer oplopend",descending:"Sorteer aflopend",remove:"Verwijder sortering"},column:{hide:"Verberg kolom"},aggregation:{count:"Aantal rijen: ",sum:"Som: ",avg:"Gemiddelde: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Zet links vast",pinRight:"Zet rechts vast",unpin:"Maak los"},gridMenu:{columns:"Kolommen:",importerTitle:"Importeer bestand",exporterAllAsCsv:"Exporteer alle data als csv",exporterVisibleAsCsv:"Exporteer zichtbare data als csv",exporterSelectedAsCsv:"Exporteer geselecteerde data als csv",exporterAllAsPdf:"Exporteer alle data als pdf",exporterVisibleAsPdf:"Exporteer zichtbare data als pdf",exporterSelectedAsPdf:"Exporteer geselecteerde data als pdf",clearAllFilters:"Reinig alle filters"},importer:{noHeaders:"Kolomnamen kunnen niet worden afgeleid. Heeft het bestand een header?",noObjects:"Objecten kunnen niet worden afgeleid. Bevat het bestand data naast de headers?",invalidCsv:"Het bestand kan niet verwerkt worden. Is het een valide csv bestand?",invalidJson:"Het bestand kan niet verwerkt worden. Is het valide json?",jsonNotArray:"Het json bestand moet een array bevatten. De actie wordt geannuleerd."},pagination:{sizes:"items per pagina",totalItems:"items",of:"van de"},grouping:{group:"Groepeer",ungroup:"Groepering opheffen",aggregate_count:"Agg: Aantal",aggregate_sum:"Agg: Som",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Gem",aggregate_remove:"Agg: Verwijder"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pl",{headerCell:{aria:{defaultFilterLabel:"Filter dla kolumny",removeFilter:"Usuń filter",columnMenuButtonLabel:"Menu kolumny"},priority:"Prioritet:",filterLabel:"Filtr dla kolumny: "},aggregate:{label:"pozycji"},groupPanel:{description:"Przeciągnij nagłówek kolumny tutaj, aby pogrupować według niej."},search:{placeholder:"Szukaj...",showingItems:"Widoczne pozycje:",selectedItems:"Zaznaczone pozycje:",totalItems:"Wszystkich pozycji:",size:"Rozmiar strony:",first:"Pierwsza strona",next:"Następna strona",previous:"Poprzednia strona",last:"Ostatnia strona"},menu:{text:"Wybierz kolumny:"},sort:{ascending:"Sortuj rosnąco",descending:"Sortuj malejąco",none:"Brak sortowania",remove:"Wyłącz sortowanie"},column:{hide:"Ukryj kolumne"},aggregation:{count:"Razem pozycji: ",sum:"Razem: ",avg:"Średnia: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Przypnij do lewej",pinRight:"Przypnij do prawej",unpin:"Odepnij"},columnMenu:{close:"Zamknij"},gridMenu:{aria:{buttonLabel:"Menu Grida"},columns:"Kolumny:",importerTitle:"Importuj plik",exporterAllAsCsv:"Eksportuj wszystkie dane do csv",exporterVisibleAsCsv:"Eksportuj widoczne dane do csv",exporterSelectedAsCsv:"Eksportuj zaznaczone dane do csv",exporterAllAsPdf:"Eksportuj wszystkie dane do pdf",exporterVisibleAsPdf:"Eksportuj widoczne dane do pdf",exporterSelectedAsPdf:"Eksportuj zaznaczone dane do pdf",clearAllFilters:"Wyczyść filtry"},importer:{noHeaders:"Nie udało się wczytać nazw kolumn. Czy plik posiada nagłówek?",noObjects:"Nie udalo się wczytać pozycji. Czy plik zawiera dane??",invalidCsv:"Nie udało się przetworzyć pliku, jest to prawidlowy plik CSV??",invalidJson:"Nie udało się przetworzyć pliku, jest to prawidlowy plik Json?",jsonNotArray:"Importowany plik json musi zawierać tablicę, importowanie przerwane."},pagination:{aria:{pageToFirst:"Pierwsza strona",pageBack:"Poprzednia strona",pageSelected:"Wybrana strona",pageForward:"Następna strona",pageToLast:"Ostatnia strona"},sizes:"pozycji na stronę",totalItems:"pozycji",through:"do",of:"z"},grouping:{group:"Grupuj",ungroup:"Rozgrupuj",aggregate_count:"Zbiorczo: Razem",aggregate_sum:"Zbiorczo: Suma",aggregate_max:"Zbiorczo: Max",aggregate_min:"Zbiorczo: Min",aggregate_avg:"Zbiorczo: Średnia",aggregate_remove:"Zbiorczo: Usuń"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt-br",{headerCell:{aria:{defaultFilterLabel:"Filtro por coluna",removeFilter:"Remover filtro",columnMenuButtonLabel:"Menu coluna"},priority:"Prioridade:",filterLabel:"Filtro por coluna: "},aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Items Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",none:"Nenhuma Ordem",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},columnMenu:{close:"Fechar"},gridMenu:{aria:{buttonLabel:"Menu Grid"},columns:"Colunas:",importerTitle:"Importar arquivo",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O arquivo tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no arquivo, além dos cabeçalhos?",invalidCsv:"Arquivo não pode ser processado. É um CSV válido?",invalidJson:"Arquivo não pode ser processado. É um Json válido?",jsonNotArray:"Arquivo json importado tem que conter um array. Abortando."},pagination:{aria:{pageToFirst:"Primeira página",pageBack:"Página anterior",pageSelected:"Página Selecionada",pageForward:"Proxima",pageToLast:"Anterior"},sizes:"itens por página",totalItems:"itens",through:"através dos",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt",{headerCell:{aria:{defaultFilterLabel:"Filtro por coluna",removeFilter:"Remover filtro",columnMenuButtonLabel:"Menu coluna"},priority:"Prioridade:",filterLabel:"Filtro por coluna: "},aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Itens Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",none:"Nenhuma Ordem",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},columnMenu:{close:"Fechar"},gridMenu:{aria:{buttonLabel:"Menu Grid"},columns:"Colunas:",importerTitle:"Importar ficheiro",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf",clearAllFilters:"Limpar todos os filtros"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O ficheiro tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no ficheiro, além dos cabeçalhos?",invalidCsv:"Ficheiro não pode ser processado. É um CSV válido?",invalidJson:"Ficheiro não pode ser processado. É um Json válido?",jsonNotArray:"Ficheiro json importado tem que conter um array. Interrompendo."},pagination:{aria:{pageToFirst:"Primeira página",pageBack:"Página anterior",pageSelected:"Página Selecionada",pageForward:"Próxima",pageToLast:"Anterior"},sizes:"itens por página",totalItems:"itens",through:"através dos",of:"de"},grouping:{group:"Agrupar",ungroup:"Desagrupar",aggregate_count:"Agr: Contar",aggregate_sum:"Agr: Soma",aggregate_max:"Agr: Max",aggregate_min:"Agr: Min",aggregate_avg:"Agr: Med",aggregate_remove:"Agr: Remover"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ro",{headerCell:{aria:{defaultFilterLabel:"Filtru pentru coloana",removeFilter:"Sterge filtru",columnMenuButtonLabel:"Column Menu"},priority:"Prioritate:",filterLabel:"Filtru pentru coloana:"},aggregate:{label:"Elemente"},groupPanel:{description:"Trage un cap de coloana aici pentru a grupa elementele dupa coloana respectiva"},search:{placeholder:"Cauta...",showingItems:"Arata elementele:",selectedItems:"Elementele selectate:",totalItems:"Total elemente:",size:"Marime pagina:",first:"Prima pagina",next:"Pagina urmatoare",previous:"Pagina anterioara",last:"Ultima pagina"},menu:{text:"Alege coloane:"},sort:{ascending:"Ordoneaza crescator",descending:"Ordoneaza descrescator",none:"Fara ordonare",remove:"Sterge ordonarea"},column:{hide:"Ascunde coloana"},aggregation:{count:"total linii: ",sum:"total: ",avg:"medie: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Pin la stanga",pinRight:"Pin la dreapta",unpin:"Sterge pinul"},columnMenu:{close:"Inchide"},gridMenu:{aria:{buttonLabel:"Grid Menu"},columns:"Coloane:",importerTitle:"Incarca fisier",exporterAllAsCsv:"Exporta toate datele ca csv",exporterVisibleAsCsv:"Exporta datele vizibile ca csv",exporterSelectedAsCsv:"Exporta datele selectate ca csv",exporterAllAsPdf:"Exporta toate datele ca pdf",exporterVisibleAsPdf:"Exporta datele vizibile ca pdf",exporterSelectedAsPdf:"Exporta datele selectate ca csv pdf",clearAllFilters:"Sterge toate filtrele"},importer:{noHeaders:"Numele coloanelor nu a putut fi incarcat, acest fisier are un header?",noObjects:"Datele nu au putut fi incarcate, exista date in fisier in afara numelor de coloane?",invalidCsv:"Fisierul nu a putut fi procesat, ati incarcat un CSV valid ?",invalidJson:"Fisierul nu a putut fi procesat, ati incarcat un Json valid?",jsonNotArray:"Json-ul incarcat trebuie sa contina un array, inchidere."},pagination:{aria:{pageToFirst:"Prima pagina",pageBack:"O pagina inapoi",pageSelected:"Pagina selectata",pageForward:"O pagina inainte",pageToLast:"Ultima pagina"},sizes:"Elemente per pagina",totalItems:"elemente",through:"prin",of:"of"},grouping:{group:"Grupeaza",ungroup:"Opreste gruparea",aggregate_count:"Agg: Count",aggregate_sum:"Agg: Sum",aggregate_max:"Agg: Max",aggregate_min:"Agg: Min",aggregate_avg:"Agg: Avg",aggregate_remove:"Agg: Remove"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ru",{headerCell:{aria:{defaultFilterLabel:"Фильтр столбца",removeFilter:"Удалить фильтр",columnMenuButtonLabel:"Меню столбца"},priority:"Приоритет:",filterLabel:"Фильтр столбца: "},aggregate:{label:"элементы"},groupPanel:{description:"Для группировки по столбцу перетащите сюда его название."},search:{placeholder:"Поиск...",showingItems:"Показать элементы:",selectedItems:"Выбранные элементы:",totalItems:"Всего элементов:",size:"Размер страницы:",first:"Первая страница",next:"Следующая страница",previous:"Предыдущая страница",last:"Последняя страница"},menu:{text:"Выбрать столбцы:"},sort:{ascending:"По возрастанию",descending:"По убыванию",none:"Без сортировки",remove:"Убрать сортировку"},column:{hide:"Спрятать столбец"},aggregation:{count:"всего строк: ",sum:"итого: ",avg:"среднее: ",min:"мин: ",max:"макс: "},pinning:{pinLeft:"Закрепить слева",pinRight:"Закрепить справа",unpin:"Открепить"},columnMenu:{close:"Закрыть"},gridMenu:{aria:{buttonLabel:"Меню"},columns:"Столбцы:",importerTitle:"Импортировать файл",exporterAllAsCsv:"Экспортировать всё в CSV",exporterVisibleAsCsv:"Экспортировать видимые данные в CSV",exporterSelectedAsCsv:"Экспортировать выбранные данные в CSV",exporterAllAsPdf:"Экспортировать всё в PDF",exporterVisibleAsPdf:"Экспортировать видимые данные в PDF",exporterSelectedAsPdf:"Экспортировать выбранные данные в PDF",clearAllFilters:"Очистите все фильтры"},importer:{noHeaders:"Не удалось получить названия столбцов, есть ли в файле заголовок?",noObjects:"Не удалось получить данные, есть ли в файле строки кроме заголовка?",invalidCsv:"Не удалось обработать файл, это правильный CSV-файл?",invalidJson:"Не удалось обработать файл, это правильный JSON?",jsonNotArray:"Импортируемый JSON-файл должен содержать массив, операция отменена."},pagination:{aria:{pageToFirst:"Первая страница",pageBack:"Предыдущая страница",pageSelected:"Выбранная страница",pageForward:"Следующая страница",pageToLast:"Последняя страница"},sizes:"строк на страницу",totalItems:"строк",through:"по",of:"из"},grouping:{group:"Группировать",ungroup:"Разгруппировать",aggregate_count:"Группировать: Count",aggregate_sum:"Для группы: Сумма",aggregate_max:"Для группы: Максимум",aggregate_min:"Для группы: Минимум",aggregate_avg:"Для группы: Среднее",aggregate_remove:"Для группы: Пусто"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sk",{aggregate:{label:"items"},groupPanel:{description:"Pretiahni sem názov stĺpca pre zoskupenie podľa toho stĺpca."},search:{placeholder:"Hľadaj...",showingItems:"Zobrazujem položky:",selectedItems:"Vybraté položky:",totalItems:"Počet položiek:",size:"Počet:",first:"Prvá strana",next:"Ďalšia strana",previous:"Predchádzajúca strana",last:"Posledná strana"},menu:{text:"Vyberte stĺpce:"},sort:{ascending:"Zotriediť vzostupne",descending:"Zotriediť zostupne",remove:"Vymazať triedenie"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sv",{aggregate:{label:"Artiklar"},groupPanel:{description:"Dra en kolumnrubrik hit och släpp den för att gruppera efter den kolumnen."},search:{placeholder:"Sök...",showingItems:"Visar artiklar:",selectedItems:"Valda artiklar:",totalItems:"Antal artiklar:",size:"Sidstorlek:",first:"Första sidan",next:"Nästa sida",previous:"Föregående sida",last:"Sista sidan"},menu:{text:"Välj kolumner:"},sort:{ascending:"Sortera stigande",descending:"Sortera fallande",remove:"Inaktivera sortering"},column:{hide:"Göm kolumn"},aggregation:{count:"Antal rader: ",sum:"Summa: ",avg:"Genomsnitt: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Fäst vänster",pinRight:"Fäst höger",unpin:"Lösgör"},gridMenu:{columns:"Kolumner:",importerTitle:"Importera fil",exporterAllAsCsv:"Exportera all data som CSV",exporterVisibleAsCsv:"Exportera synlig data som CSV",exporterSelectedAsCsv:"Exportera markerad data som CSV",exporterAllAsPdf:"Exportera all data som PDF",exporterVisibleAsPdf:"Exportera synlig data som PDF",exporterSelectedAsPdf:"Exportera markerad data som PDF",clearAllFilters:"Rengör alla filter"},importer:{noHeaders:"Kolumnnamn kunde inte härledas. Har filen ett sidhuvud?",noObjects:"Objekt kunde inte härledas. Har filen data undantaget sidhuvud?",invalidCsv:"Filen kunde inte behandlas, är den en giltig CSV?",invalidJson:"Filen kunde inte behandlas, är den en giltig JSON?",jsonNotArray:"Importerad JSON-fil måste innehålla ett fält. Import avbruten."},pagination:{sizes:"Artiklar per sida",totalItems:"Artiklar"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ta",{aggregate:{label:"உருப்படிகள்"},groupPanel:{description:"ஒரு பத்தியை குழுவாக அமைக்க அப்பத்தியின் தலைப்பை இங்கே  இழுத்து வரவும் "},search:{placeholder:"தேடல் ...",showingItems:"உருப்படிகளை காண்பித்தல்:",selectedItems:"தேர்ந்தெடுக்கப்பட்ட  உருப்படிகள்:",totalItems:"மொத்த உருப்படிகள்:",size:"பக்க அளவு: ",first:"முதல் பக்கம்",next:"அடுத்த பக்கம்",previous:"முந்தைய பக்கம் ",last:"இறுதி பக்கம்"},menu:{text:"பத்திகளை தேர்ந்தெடு:"},sort:{ascending:"மேலிருந்து கீழாக",descending:"கீழிருந்து மேலாக",remove:"வரிசையை நீக்கு"},column:{hide:"பத்தியை மறைத்து வை "},aggregation:{count:"மொத்த வரிகள்:",sum:"மொத்தம்: ",avg:"சராசரி: ",min:"குறைந்தபட்ச: ",max:"அதிகபட்ச: "},pinning:{pinLeft:"இடதுபுறமாக தைக்க ",pinRight:"வலதுபுறமாக தைக்க",unpin:"பிரி"},gridMenu:{columns:"பத்திகள்:",importerTitle:"கோப்பு : படித்தல்",exporterAllAsCsv:"எல்லா தரவுகளையும் கோப்பாக்கு: csv",exporterVisibleAsCsv:"இருக்கும் தரவுகளை கோப்பாக்கு: csv",exporterSelectedAsCsv:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: csv",exporterAllAsPdf:"எல்லா தரவுகளையும் கோப்பாக்கு: pdf",exporterVisibleAsPdf:"இருக்கும் தரவுகளை கோப்பாக்கு: pdf",exporterSelectedAsPdf:"தேர்ந்தெடுத்த தரவுகளை கோப்பாக்கு: pdf",clearAllFilters:"Clear all filters"},importer:{noHeaders:"பத்தியின் தலைப்புகளை பெற இயலவில்லை, கோப்பிற்கு தலைப்பு உள்ளதா?",noObjects:"இலக்குகளை உருவாக்க முடியவில்லை, கோப்பில் தலைப்புகளை தவிர தரவு ஏதேனும் உள்ளதா? ",invalidCsv:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - csv",invalidJson:"சரிவர நடைமுறை படுத்த இயலவில்லை, கோப்பு சரிதானா? - json",jsonNotArray:"படித்த கோப்பில் வரிசைகள் உள்ளது, நடைமுறை ரத்து செய் : json"},pagination:{sizes:"உருப்படிகள் / பக்கம்",totalItems:"உருப்படிகள் "},grouping:{group:"குழு",ungroup:"பிரி",aggregate_count:"மதிப்பீட்டு : எண்ணு",aggregate_sum:"மதிப்பீட்டு : கூட்டல்",aggregate_max:"மதிப்பீட்டு : அதிகபட்சம்",aggregate_min:"மதிப்பீட்டு : குறைந்தபட்சம்",aggregate_avg:"மதிப்பீட்டு : சராசரி",aggregate_remove:"மதிப்பீட்டு : நீக்கு"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("tr",{headerCell:{aria:{defaultFilterLabel:"Sütun için filtre",removeFilter:"Filtreyi Kaldır",columnMenuButtonLabel:"Sütun Menüsü"},priority:"Öncelik:",filterLabel:"Sütun için filtre: "},aggregate:{label:"kayıtlar"},groupPanel:{description:"Sütuna göre gruplamak için sütun başlığını buraya sürükleyin ve bırakın."},search:{placeholder:"Arama...",showingItems:"Gösterilen Kayıt:",selectedItems:"Seçili Kayıt:",totalItems:"Toplam Kayıt:",size:"Sayfa Boyutu:",first:"İlk Sayfa",next:"Sonraki Sayfa",previous:"Önceki Sayfa",last:"Son Sayfa"},menu:{text:"Sütunları Seç:"},sort:{ascending:"Artan Sırada Sırala",descending:"Azalan Sırada Sırala",none:"Sıralama Yapma",remove:"Sıralamayı Kaldır"},column:{hide:"Sütunu Gizle"},aggregation:{count:"toplam satır: ",sum:"toplam: ",avg:"ort: ",min:"min: ",max:"maks: "},pinning:{pinLeft:"Sola Sabitle",pinRight:"Sağa Sabitle",unpin:"Sabitlemeyi Kaldır"},columnMenu:{close:"Kapat"},gridMenu:{aria:{buttonLabel:"Tablo Menü"},columns:"Sütunlar:",importerTitle:"Dosya içeri aktar",exporterAllAsCsv:"Bütün veriyi CSV olarak dışarı aktar",exporterVisibleAsCsv:"Görünen veriyi CSV olarak dışarı aktar",exporterSelectedAsCsv:"Seçili veriyi CSV olarak dışarı aktar",exporterAllAsPdf:"Bütün veriyi PDF olarak dışarı aktar",exporterVisibleAsPdf:"Görünen veriyi PDF olarak dışarı aktar",exporterSelectedAsPdf:"Seçili veriyi PDF olarak dışarı aktar",clearAllFilters:"Bütün filtreleri kaldır"},importer:{noHeaders:"Sütun isimleri üretilemiyor, dosyanın bir başlığı var mı?",noObjects:"Nesneler üretilemiyor, dosyada başlıktan başka bir veri var mı?",invalidCsv:"Dosya işlenemedi, geçerli bir CSV dosyası mı?",invalidJson:"Dosya işlenemedi, geçerli bir Json dosyası mı?",jsonNotArray:"Alınan Json dosyasında bir dizi bulunmalıdır, işlem iptal ediliyor."},pagination:{aria:{pageToFirst:"İlk sayfaya",pageBack:"Geri git",pageSelected:"Seçili sayfa",pageForward:"İleri git",pageToLast:"Sona git"},sizes:"Sayfadaki nesne sayısı",totalItems:"kayıtlar",through:"",of:""},grouping:{group:"Grupla",ungroup:"Gruplama",aggregate_count:"Yekun: Sayı",aggregate_sum:"Yekun: Toplam",aggregate_max:"Yekun: Maks",aggregate_min:"Yekun: Min",aggregate_avg:"Yekun: Ort",aggregate_remove:"Yekun: Sil"}}),a}])}])}(),function(){var a=["uiT","uiTranslate"],b=["t","uiTranslate"],c=angular.module("ui.grid.i18n");c.constant("i18nConstants",{MISSING:"[MISSING]",UPDATE_EVENT:"$uiI18n",LOCALE_DIRECTIVE_ALIAS:"uiI18n",DEFAULT_LANG:"en"}),c.service("i18nService",["$log","i18nConstants","$rootScope",function(a,b,c){var d={_langs:{},current:null,get:function(a){return this._langs[a.toLowerCase()]},add:function(a,b){var c=a.toLowerCase();this._langs[c]||(this._langs[c]={}),angular.extend(this._langs[c],b)},getAllLangs:function(){var a=[];if(!this._langs)return a;for(var b in this._langs)a.push(b);return a},setCurrent:function(a){this.current=a.toLowerCase()},getCurrentLang:function(){return this.current}},e={add:function(a,b){"object"==typeof a?angular.forEach(a,function(a){a&&d.add(a,b)}):d.add(a,b)},getAllLangs:function(){return d.getAllLangs()},get:function(a){var b=a?a:e.getCurrentLang();return d.get(b)},getSafeText:function(a,c){var f=c?c:e.getCurrentLang(),g=d.get(f);if(!g)return b.MISSING;for(var h=a.split("."),i=g,j=0;j<h.length;++j){if(void 0===i[h[j]]||null===i[h[j]])return b.MISSING;i=i[h[j]]}return i},setCurrentLang:function(a){a&&(d.setCurrent(a),c.$broadcast(b.UPDATE_EVENT))},getCurrentLang:function(){var a=d.getCurrentLang();return a||(a=b.DEFAULT_LANG,d.setCurrent(a)),a}};return e}]);var d=function(a,b){return{compile:function(){return{pre:function(c,d,e){var f=b.LOCALE_DIRECTIVE_ALIAS,g=c.$eval(e[f]);g?c.$watch(e[f],function(){a.setCurrentLang(g)}):e.$$observers&&e.$observe(f,function(){a.setCurrentLang(e[f]||b.DEFAULT_LANG)})}}}}};c.directive("uiI18n",["i18nService","i18nConstants",d]);var e=function(b,c,d){return{restrict:"EA",compile:function(){return{pre:function(e,f,g){var h,i=a[0],j=a[1],k=g[i]||g[j]||f.html(),l=d.MISSING+k;if(g.$$observers){var m=g[i]?i:j;h=g.$observe(m,function(a){a&&f.html(b(a)(c.getCurrentLang())||l)})}var n=b(k),o=e.$on(d.UPDATE_EVENT,function(a){h?h(g[i]||g[j]):f.html(n(c.get())||l)});e.$on("$destroy",o),f.html(n(c.get())||l)}}}}};angular.forEach(a,function(a){c.directive(a,["$parse","i18nService","i18nConstants",e])});var f=function(a,b,c){return function(d){var e=a(d);return e(b.get())||c.MISSING+d}};angular.forEach(b,function(a){c.filter(a,["$parse","i18nService","i18nConstants",f])})}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("zh-cn",{headerCell:{aria:{defaultFilterLabel:"列过滤器",removeFilter:"移除过滤器",columnMenuButtonLabel:"列菜单"},priority:"优先级:",filterLabel:"列过滤器: "},aggregate:{label:"行"},groupPanel:{description:"拖曳表头到此处进行分组"},search:{placeholder:"查找",showingItems:"已显示行数:",selectedItems:"已选择行数:",totalItems:"总行数:",size:"每页显示行数:",first:"首页",next:"下一页",previous:"上一页",last:"末页"},menu:{text:"选择列:"},sort:{ascending:"升序",descending:"降序",none:"无序",remove:"取消排序"},column:{hide:"隐藏列"},aggregation:{count:"计数:",sum:"求和:",avg:"均值:",min:"最小值:",max:"最大值:"},pinning:{pinLeft:"左侧固定",pinRight:"右侧固定",unpin:"取消固定"},columnMenu:{close:"关闭"},gridMenu:{aria:{buttonLabel:"表格菜单"},columns:"列:",importerTitle:"导入文件",exporterAllAsCsv:"导出全部数据到CSV",exporterVisibleAsCsv:"导出可见数据到CSV",exporterSelectedAsCsv:"导出已选数据到CSV",exporterAllAsPdf:"导出全部数据到PDF",exporterVisibleAsPdf:"导出可见数据到PDF",exporterSelectedAsPdf:"导出已选数据到PDF",clearAllFilters:"清除所有过滤器"},importer:{noHeaders:"无法获取列名,确定文件包含表头?",noObjects:"无法获取数据,确定文件包含数据?",invalidCsv:"无法处理文件,确定是合法的CSV文件?",invalidJson:"无法处理文件,确定是合法的JSON文件?",jsonNotArray:"导入的文件不是JSON数组!"},pagination:{aria:{pageToFirst:"第一页",pageBack:"上一页",pageSelected:"当前页",pageForward:"下一页",pageToLast:"最后一页"},sizes:"行每页",totalItems:"行",through:"至",of:"共"},grouping:{group:"分组",ungroup:"取消分组",aggregate_count:"合计: 计数",aggregate_sum:"合计: 求和",aggregate_max:"合计: 最大",aggregate_min:"合计: 最小",aggregate_avg:"合计: 平均",aggregate_remove:"合计: 移除"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("zh-tw",{aggregate:{label:"行"},groupPanel:{description:"拖曳表頭到此處進行分組"},search:{placeholder:"查找",showingItems:"已顯示行數:",selectedItems:"已選擇行數:",totalItems:"總行數:",size:"每頁顯示行數:",first:"首頁",next:"下壹頁",previous:"上壹頁",last:"末頁"},menu:{text:"選擇列:"},sort:{ascending:"升序",descending:"降序",remove:"取消排序"},column:{hide:"隱藏列"},aggregation:{count:"計數:",sum:"求和:",avg:"均值:",min:"最小值:",max:"最大值:"},pinning:{pinLeft:"左側固定",pinRight:"右側固定",unpin:"取消固定"},gridMenu:{columns:"列:",importerTitle:"導入文件",exporterAllAsCsv:"導出全部數據到CSV",exporterVisibleAsCsv:"導出可見數據到CSV",exporterSelectedAsCsv:"導出已選數據到CSV",exporterAllAsPdf:"導出全部數據到PDF",exporterVisibleAsPdf:"導出可見數據到PDF",exporterSelectedAsPdf:"導出已選數據到PDF",clearAllFilters:"清除所有过滤器"},importer:{noHeaders:"無法獲取列名,確定文件包含表頭?",noObjects:"無法獲取數據,確定文件包含數據?",invalidCsv:"無法處理文件,確定是合法的CSV文件?",invalidJson:"無法處理文件,確定是合法的JSON文件?",jsonNotArray:"導入的文件不是JSON數組!"},pagination:{sizes:"行每頁",totalItems:"行"}}),a}])}])}(),function(){"use strict";var a=angular.module("ui.grid.autoResize",["ui.grid"]);a.directive("uiGridAutoResize",["$timeout","gridUtil",function(a,b){return{require:"uiGrid",scope:!1,link:function(a,c,d,e){function f(){i=b.elementHeight(c),h=b.elementWidth(c)}function g(){clearTimeout(j),j=setTimeout(function(){var d=b.elementHeight(c),j=b.elementWidth(c);d!==i||j!==h?(e.grid.gridHeight=d,e.grid.gridWidth=j,a.$apply(function(){e.grid.refresh().then(function(){f(),g()})})):g()},250)}var h,i;f();var j;g(),a.$on("$destroy",function(){clearTimeout(j)})}}}])}(),function(){"use strict";var a=angular.module("ui.grid.cellNav",["ui.grid"]);a.constant("uiGridCellNavConstants",{FEATURE_NAME:"gridCellNav",CELL_NAV_EVENT:"cellNav",direction:{LEFT:0,RIGHT:1,UP:2,DOWN:3,PG_UP:4,PG_DOWN:5},EVENT_TYPE:{KEYDOWN:0,CLICK:1,CLEAR:2}}),a.factory("uiGridCellNavFactory",["gridUtil","uiGridConstants","uiGridCellNavConstants","GridRowColumn","$q",function(a,b,c,d,e){var f=function(a,b,c,d){this.rows=a.visibleRowCache,this.columns=b.visibleColumnCache,this.leftColumns=c?c.visibleColumnCache:[],this.rightColumns=d?d.visibleColumnCache:[],this.bodyContainer=a};return f.prototype.getFocusableCols=function(){var a=this.leftColumns.concat(this.columns,this.rightColumns);return a.filter(function(a){return a.colDef.allowCellFocus})},f.prototype.getFocusableRows=function(){return this.rows.filter(function(a){return a.allowCellFocus!==!1})},f.prototype.getNextRowCol=function(a,b,d){switch(a){case c.direction.LEFT:return this.getRowColLeft(b,d);case c.direction.RIGHT:return this.getRowColRight(b,d);case c.direction.UP:return this.getRowColUp(b,d);case c.direction.DOWN:return this.getRowColDown(b,d);case c.direction.PG_UP:return this.getRowColPageUp(b,d);case c.direction.PG_DOWN:return this.getRowColPageDown(b,d)}},f.prototype.initializeSelection=function(){var a=this.getFocusableCols(),b=this.getFocusableRows();if(0===a.length||0===b.length)return null;return new d(b[0],a[0])},f.prototype.getRowColLeft=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=1);var h=0===f?c.length-1:f-1;return h>f?0===g?new d(a,c[h]):new d(e[g-1],c[h]):new d(a,c[h])},f.prototype.getRowColRight=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=f===c.length-1?0:f+1;return f>h?g===e.length-1?new d(a,c[h]):new d(e[g+1],c[h]):new d(a,c[h])},f.prototype.getRowColDown=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);return-1===f&&(f=0),g===e.length-1?new d(a,c[f]):new d(e[g+1],c[f])},f.prototype.getRowColPageDown=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=this.bodyContainer.minRowsToRender();return g>=e.length-h?new d(e[e.length-1],c[f]):new d(e[g+h],c[f])},f.prototype.getRowColUp=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);return-1===f&&(f=0),0===g?new d(a,c[f]):new d(e[g-1],c[f])},f.prototype.getRowColPageUp=function(a,b){var c=this.getFocusableCols(),e=this.getFocusableRows(),f=c.indexOf(b),g=e.indexOf(a);-1===f&&(f=0);var h=this.bodyContainer.minRowsToRender();return 0>g-h?new d(e[0],c[f]):new d(e[g-h],c[f])},f}]),a.service("uiGridCellNavService",["gridUtil","uiGridConstants","uiGridCellNavConstants","$q","uiGridCellNavFactory","GridRowColumn","ScrollEvent",function(a,b,c,d,e,f,g){var h={initializeGrid:function(a){a.registerColumnBuilder(h.cellNavColumnBuilder),a.cellNav={},a.cellNav.lastRowCol=null,a.cellNav.focusedCells=[],h.defaultGridOptions(a.options);var b={events:{cellNav:{navigate:function(a,b){},viewPortKeyDown:function(a,b){},viewPortKeyPress:function(a,b){}}},methods:{cellNav:{scrollToFocus:function(b,c){return h.scrollToFocus(a,b,c)},getFocusedCell:function(){return a.cellNav.lastRowCol},getCurrentSelection:function(){return a.cellNav.focusedCells},rowColSelectIndex:function(b){for(var c=-1,d=0;d<a.cellNav.focusedCells.length;d++)if(a.cellNav.focusedCells[d].col.uid===b.col.uid&&a.cellNav.focusedCells[d].row.uid===b.row.uid){c=d;break}return c}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.modifierKeysToMultiSelectCells=a.modifierKeysToMultiSelectCells===!0},decorateRenderContainers:function(a){var b=a.hasRightContainer()?a.renderContainers.right:null,c=a.hasLeftContainer()?a.renderContainers.left:null;null!==c&&(a.renderContainers.left.cellNav=new e(a.renderContainers.body,c,b,a.renderContainers.body)),null!==b&&(a.renderContainers.right.cellNav=new e(a.renderContainers.body,b,a.renderContainers.body,c)),a.renderContainers.body.cellNav=new e(a.renderContainers.body,a.renderContainers.body,c,b)},getDirection:function(a){return a.keyCode===b.keymap.LEFT||a.keyCode===b.keymap.TAB&&a.shiftKey?c.direction.LEFT:a.keyCode===b.keymap.RIGHT||a.keyCode===b.keymap.TAB?c.direction.RIGHT:a.keyCode===b.keymap.UP||a.keyCode===b.keymap.ENTER&&a.shiftKey?c.direction.UP:a.keyCode===b.keymap.PG_UP?c.direction.PG_UP:a.keyCode===b.keymap.DOWN||a.keyCode===b.keymap.ENTER&&!a.ctrlKey&&!a.altKey?c.direction.DOWN:a.keyCode===b.keymap.PG_DOWN?c.direction.PG_DOWN:null;
+},cellNavColumnBuilder:function(a,b,c){var e=[];return a.allowCellFocus=void 0===a.allowCellFocus?!0:a.allowCellFocus,d.all(e)},scrollToFocus:function(a,b,c){var d=null,e=null;return"undefined"!=typeof b&&null!==b&&(d=a.getRow(b)),"undefined"!=typeof c&&null!==c&&(e=a.getColumn(c.name?c.name:c.field)),a.api.core.scrollToIfNecessary(d,e).then(function(){var b={row:d,col:e};null!==d&&null!==e&&a.cellNav.broadcastCellNav(b)})},getLeftWidth:function(a,b){var c=0;if(!b)return c;var d=a.renderContainers.body.visibleColumnCache.indexOf(b);a.renderContainers.body.visibleColumnCache.forEach(function(a,b){d>b&&(c+=a.drawnWidth)});var e=0===d?0:(d+1)/a.renderContainers.body.visibleColumnCache.length;return c+=b.drawnWidth*e}};return h}]),a.directive("uiGridCellnav",["gridUtil","uiGridCellNavService","uiGridCellNavConstants","uiGridConstants","GridRowColumn","$timeout","$compile",function(a,b,c,d,e,f,g){return{replace:!0,priority:-150,require:"^uiGrid",scope:!1,controller:function(){},compile:function(){return{pre:function(a,f,g,h){var i=a,j=h.grid;b.initializeGrid(j),h.cellNav={},h.cellNav.makeRowCol=function(a){return a instanceof e||(a=new e(a.row,a.col)),a},h.cellNav.getActiveCell=function(){var a=f[0].getElementsByClassName("ui-grid-cell-focus");return a.length>0?a[0]:void 0},h.cellNav.broadcastCellNav=j.cellNav.broadcastCellNav=function(a,b,d){b=!(void 0===b||!b),a=h.cellNav.makeRowCol(a),h.cellNav.broadcastFocus(a,b,d),i.$broadcast(c.CELL_NAV_EVENT,a,b,d)},h.cellNav.clearFocus=j.cellNav.clearFocus=function(){j.cellNav.focusedCells=[],i.$broadcast(c.CELL_NAV_EVENT)},h.cellNav.broadcastFocus=function(a,b,c){b=!(void 0===b||!b),a=h.cellNav.makeRowCol(a);var d=a.row,f=a.col,g=h.grid.api.cellNav.rowColSelectIndex(a);if(null===j.cellNav.lastRowCol||-1===g){var i=new e(d,f);null!==j.cellNav.lastRowCol&&j.cellNav.lastRowCol.row===i.row&&j.cellNav.lastRowCol.col===i.col||(j.api.cellNav.raise.navigate(i,j.cellNav.lastRowCol),j.cellNav.lastRowCol=i),h.grid.options.modifierKeysToMultiSelectCells&&b?j.cellNav.focusedCells.push(a):j.cellNav.focusedCells=[a]}else j.options.modifierKeysToMultiSelectCells&&b&&g>=0&&j.cellNav.focusedCells.splice(g,1)},h.cellNav.handleKeyDown=function(a){var e=b.getDirection(a);if(null===e)return null;var f="body";a.uiGridTargetRenderContainerId&&(f=a.uiGridTargetRenderContainerId);var g=h.grid.api.cellNav.getFocusedCell();if(g){var i=h.grid.renderContainers[f].cellNav.getNextRowCol(e,g.row,g.col),k=h.grid.renderContainers[f].cellNav.getFocusableCols(),l=h.grid.api.cellNav.rowColSelectIndex(i);return e===c.direction.LEFT&&i.col===k[k.length-1]&&i.row===g.row&&a.keyCode===d.keymap.TAB&&a.shiftKey?(j.cellNav.focusedCells.splice(l,1),h.cellNav.clearFocus(),!0):e!==c.direction.RIGHT||i.col!==k[0]||i.row!==g.row||a.keyCode!==d.keymap.TAB||a.shiftKey?(j.scrollToIfNecessary(i.row,i.col).then(function(){h.cellNav.broadcastCellNav(i)}),a.stopPropagation(),a.preventDefault(),!1):(j.cellNav.focusedCells.splice(l,1),h.cellNav.clearFocus(),!0)}}},post:function(a,b,d,e){function f(){var d='<div id="'+h.id+'-aria-speakable" class="ui-grid-a11y-ariascreenreader-speakable ui-grid-offscreen" aria-live="assertive" role="region" aria-atomic="true" aria-hidden="false" aria-relevant="additions" >&nbsp;</div>',e=g(d)(a);b.prepend(e),a.$on(c.CELL_NAV_EVENT,function(a,b,c,d){function f(a){a!==e.text()&&(e[0].style.clip="rect(0px,0px,0px,0px)",e[0].innerHTML="",e[0].style.visibility="hidden",e[0].style.visibility="visible",""!==a&&(e[0].style.clip="auto",e[0].appendChild(document.createTextNode(a+" ")),e[0].style.visibility="hidden",e[0].style.visibility="visible"))}if(!d||"focus"!==d.type){for(var g=[],i=h.api.cellNav.getCurrentSelection(),j=0;j<i.length;j++)g.push(i[j].getIntersectionValueFiltered());var k=g.toString();f(k)}})}var h=e.grid;f()}}}}}]),a.directive("uiGridRenderContainer",["$timeout","$document","gridUtil","uiGridConstants","uiGridCellNavService","$compile","uiGridCellNavConstants",function(a,b,c,d,e,f,g){return{replace:!0,priority:-99999,require:["^uiGrid","uiGridRenderContainer","?^uiGridCellnav"],scope:!1,compile:function(){return{post:function(b,d,h,i){var j=i[0],k=i[1],l=i[2];if(j.grid.api.cellNav){var m=k.containerId,n=j.grid;if(e.decorateRenderContainers(n),"body"===m){j.grid.options.modifierKeysToMultiSelectCells?d.attr("aria-multiselectable",!0):d.attr("aria-multiselectable",!1);var o=f('<div class="ui-grid-focuser" role="region" aria-live="assertive" aria-atomic="false" tabindex="0" aria-controls="'+n.id+"-aria-speakable "+n.id+'-grid-container" aria-owns="'+n.id+'-grid-container"></div>')(b);d.append(o),o.on("focus",function(a){a.uiGridTargetRenderContainerId=m;var b=j.grid.api.cellNav.getFocusedCell();null===b&&(b=j.grid.renderContainers[m].cellNav.getNextRowCol(g.direction.DOWN,null,null),b.row&&b.col&&j.cellNav.broadcastCellNav(b))}),l.setAriaActivedescendant=function(a){d.attr("aria-activedescendant",a)},l.removeAriaActivedescendant=function(a){d.attr("aria-activedescendant")===a&&d.attr("aria-activedescendant","")},j.focus=function(){c.focus.byElement(o[0])};var p=null;o.on("keydown",function(a){a.uiGridTargetRenderContainerId=m;var b=j.grid.api.cellNav.getFocusedCell(),c=j.cellNav.handleKeyDown(a);null===c&&(j.grid.api.cellNav.raise.viewPortKeyDown(a,b),p=b)}),o.on("keypress",function(b){p&&(a(function(){j.grid.api.cellNav.raise.viewPortKeyPress(b,p)},4),p=null)}),b.$on("$destroy",function(){o.off()})}}}}}}}]),a.directive("uiGridViewport",["$timeout","$document","gridUtil","uiGridConstants","uiGridCellNavService","uiGridCellNavConstants","$log","$compile",function(a,b,c,d,e,f,g,h){return{replace:!0,priority:-99999,require:["^uiGrid","^uiGridRenderContainer","?^uiGridCellnav"],scope:!1,compile:function(){return{pre:function(a,b,c,d){},post:function(a,b,c,d){var e=d[0],f=d[1];if(e.grid.api.cellNav){var g=f.containerId;if("body"===g){var h=e.grid;h.api.core.on.scrollBegin(a,function(a){var b=e.grid.api.cellNav.getFocusedCell();null!==b&&f.colContainer.containsColumn(b.col)&&e.cellNav.clearFocus()}),h.api.core.on.scrollEnd(a,function(a){var b=e.grid.api.cellNav.getFocusedCell();null!==b&&f.colContainer.containsColumn(b.col)&&e.cellNav.broadcastCellNav(b)}),h.api.cellNav.on.navigate(a,function(){e.focus()})}}}}}}}]),a.directive("uiGridCell",["$timeout","$document","uiGridCellNavService","gridUtil","uiGridCellNavConstants","uiGridConstants","GridRowColumn",function(a,b,c,d,e,f,g){return{priority:-150,restrict:"A",require:["^uiGrid","?^uiGridCellnav"],scope:!1,link:function(a,b,c,d){function f(a){a.preventDefault()}function h(){if(!a.focused){var c=b.find("div");c.addClass("ui-grid-cell-focus"),b.attr("aria-selected",!0),k.setAriaActivedescendant(b.attr("id")),a.focused=!0}}function i(){if(a.focused){var c=b.find("div");c.removeClass("ui-grid-cell-focus"),b.attr("aria-selected",!1),k.removeAriaActivedescendant(b.attr("id")),a.focused=!1}}var j=d[0],k=d[1];if(j.grid.api.cellNav&&a.col.colDef.allowCellFocus){var l=j.grid;a.focused=!1,b.attr("tabindex",-1),b.find("div").on("click",function(b){j.cellNav.broadcastCellNav(new g(a.row,a.col),b.ctrlKey||b.metaKey,b),b.stopPropagation(),a.$apply()}),b.on("mousedown",f),j.grid.api.edit&&(j.grid.api.edit.on.beginCellEdit(a,function(){b.off("mousedown",f)}),j.grid.api.edit.on.afterCellEdit(a,function(){b.on("mousedown",f)}),j.grid.api.edit.on.cancelCellEdit(a,function(){b.on("mousedown",f)})),b.on("focus",function(b){j.cellNav.broadcastCellNav(new g(a.row,a.col),!1,b),b.stopPropagation(),a.$apply()}),a.$on(e.CELL_NAV_EVENT,function(b,c,d){var e=l.cellNav.focusedCells.some(function(b,c){return b.row===a.row&&b.col===a.col});e?h():i()}),a.$on("$destroy",function(){b.find("div").off(),b.off()})}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.edit",["ui.grid"]);a.constant("uiGridEditConstants",{EDITABLE_CELL_TEMPLATE:/EDITABLE_CELL_TEMPLATE/g,EDITABLE_CELL_DIRECTIVE:/editable_cell_directive/g,events:{BEGIN_CELL_EDIT:"uiGridEventBeginCellEdit",END_CELL_EDIT:"uiGridEventEndCellEdit",CANCEL_CELL_EDIT:"uiGridEventCancelCellEdit"}}),a.service("uiGridEditService",["$q","uiGridConstants","gridUtil",function(a,b,c){var d={initializeGrid:function(a){d.defaultGridOptions(a.options),a.registerColumnBuilder(d.editColumnBuilder),a.edit={};var b={events:{edit:{afterCellEdit:function(a,b,c,d){},beginCellEdit:function(a,b,c){},cancelCellEdit:function(a,b){}}},methods:{edit:{}}};a.api.registerEventsFromObject(b.events)},defaultGridOptions:function(a){a.cellEditableCondition=void 0===a.cellEditableCondition?!0:a.cellEditableCondition,a.enableCellEditOnFocus=void 0===a.enableCellEditOnFocus?!1:a.enableCellEditOnFocus},editColumnBuilder:function(b,d,e){var f=[];return b.enableCellEdit=void 0===b.enableCellEdit?void 0===e.enableCellEdit?"object"!==b.type:e.enableCellEdit:b.enableCellEdit,b.cellEditableCondition=void 0===b.cellEditableCondition?e.cellEditableCondition:b.cellEditableCondition,b.enableCellEdit&&(b.editableCellTemplate=b.editableCellTemplate||e.editableCellTemplate||"ui-grid/cellEditor",f.push(c.getTemplate(b.editableCellTemplate).then(function(a){d.editableCellTemplate=a},function(a){throw new Error("Couldn't fetch/use colDef.editableCellTemplate '"+b.editableCellTemplate+"'")}))),b.enableCellEditOnFocus=void 0===b.enableCellEditOnFocus?e.enableCellEditOnFocus:b.enableCellEditOnFocus,a.all(f)},isStartEditKey:function(a){return!(a.metaKey||a.keyCode===b.keymap.ESC||a.keyCode===b.keymap.SHIFT||a.keyCode===b.keymap.CTRL||a.keyCode===b.keymap.ALT||a.keyCode===b.keymap.WIN||a.keyCode===b.keymap.CAPSLOCK||a.keyCode===b.keymap.LEFT||a.keyCode===b.keymap.TAB&&a.shiftKey||a.keyCode===b.keymap.RIGHT||a.keyCode===b.keymap.TAB||a.keyCode===b.keymap.UP||a.keyCode===b.keymap.ENTER&&a.shiftKey||a.keyCode===b.keymap.DOWN||a.keyCode===b.keymap.ENTER)}};return d}]),a.directive("uiGridEdit",["gridUtil","uiGridEditService",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridViewport",["uiGridEditConstants",function(a){return{replace:!0,priority:-99998,require:["^uiGrid","^uiGridRenderContainer"],scope:!1,compile:function(){return{post:function(b,c,d,e){var f=e[0];if(f.grid.api.edit&&f.grid.api.cellNav){var g=e[1].containerId;"body"===g&&(b.$on(a.events.CANCEL_CELL_EDIT,function(){f.focus()}),b.$on(a.events.END_CELL_EDIT,function(){f.focus()}))}}}}}}]),a.directive("uiGridCell",["$compile","$injector","$timeout","uiGridConstants","uiGridEditConstants","gridUtil","$parse","uiGridEditService","$rootScope","$q",function(a,b,c,d,e,f,g,h,i,j){var k=500;if(b.has("uiGridCellNavService")){b.get("uiGridCellNavService")}return{priority:-100,restrict:"A",scope:!1,require:"?^uiGrid",link:function(b,l,m,n){function o(){l.on("dblclick",u),l.on("touchstart",p),n&&n.grid.api.cellNav&&(G=n.grid.api.cellNav.on.viewPortKeyDown(b,function(a,c){null!==c&&(c.row!==b.row||c.col!==b.col||b.col.colDef.enableCellEditOnFocus||s(a))}),F=n.grid.api.cellNav.on.navigate(b,function(a,d){b.col.colDef.enableCellEditOnFocus&&(d&&a.row===d.row&&a.col===d.col||a.row!==b.row||a.col!==b.col||c(function(){u()}))})),b.beginEditEventsWired=!0}function p(a){"undefined"!=typeof a.originalEvent&&void 0!==a.originalEvent&&(a=a.originalEvent),l.on("touchend",q),C=c(function(){},k),C.then(function(){setTimeout(u,0),l.off("touchend",q)})}function q(a){c.cancel(C),l.off("touchend",q)}function r(){l.off("dblclick",u),l.off("keydown",s),l.off("touchstart",p),F(),G(),b.beginEditEventsWired=!1}function s(a){h.isStartEditKey(a)&&u(a)}function t(a,c){return!c.isSaving&&(angular.isFunction(a.colDef.cellEditableCondition)?a.colDef.cellEditableCondition(b):a.colDef.cellEditableCondition)}function u(a){b.grid.api.core.scrollToIfNecessary(b.row,b.col).then(function(){v(a)})}function v(h){if(!E&&t(b.col,b.row)){B=g(b.row.getQualifiedColField(b.col)),A=B(b),z=b.col.editableCellTemplate,z=b.col.colDef.editModelField?z.replace(d.MODEL_COL_FIELD,f.preEval("row.entity."+b.col.colDef.editModelField)):z.replace(d.MODEL_COL_FIELD,b.row.getQualifiedColField(b.col)),z=z.replace(d.COL_FIELD,"grid.getCellValue(row, col)");var k=b.col.colDef.editDropdownFilter?"|"+b.col.colDef.editDropdownFilter:"";z=z.replace(d.CUSTOM_FILTERS,k);var m="text";switch(b.col.colDef.type){case"boolean":m="checkbox";break;case"number":m="number";break;case"date":m="date"}z=z.replace("INPUT_TYPE",m);var n=b.col.colDef.editDropdownOptionsFunction;if(n)j.when(n(b.row.entity,b.col.colDef)).then(function(a){b.editDropdownOptionsArray=a});else{var o=b.col.colDef.editDropdownRowEntityOptionsArrayPath;o?b.editDropdownOptionsArray=y(b.row.entity,o):b.editDropdownOptionsArray=b.col.colDef.editDropdownOptionsArray}b.editDropdownIdLabel=b.col.colDef.editDropdownIdLabel?b.col.colDef.editDropdownIdLabel:"id",b.editDropdownValueLabel=b.col.colDef.editDropdownValueLabel?b.col.colDef.editDropdownValueLabel:"value";var p=function(){E=!0,r();var c=angular.element(z);l.append(c),D=b.$new(),a(c)(D);var d=angular.element(l.children()[0]);d.addClass("ui-grid-cell-contents-hidden")};i.$$phase?p():b.$apply(p);var q=b.col.grid.api.core.on.scrollBegin(b,function(){b.grid.disableScrolling||(w(),b.grid.api.edit.raise.afterCellEdit(b.row.entity,b.col.colDef,B(b),A),q(),s(),u())}),s=b.$on(e.events.END_CELL_EDIT,function(){w(),b.grid.api.edit.raise.afterCellEdit(b.row.entity,b.col.colDef,B(b),A),s(),q(),u()}),u=b.$on(e.events.CANCEL_CELL_EDIT,function(){x(),u(),q(),s()});b.$broadcast(e.events.BEGIN_CELL_EDIT,h),c(function(){b.grid.api.edit.raise.beginCellEdit(b.row.entity,b.col.colDef,h)})}}function w(){if(b.grid.disableScrolling=!1,E){n&&n.grid.api.cellNav&&n.focus();var a=angular.element(l.children()[0]);D.$destroy(),angular.element(l.children()[1]).remove(),a.removeClass("ui-grid-cell-contents-hidden"),E=!1,o(),b.grid.api.core.notifyDataChange(d.dataChange.EDIT)}}function x(){b.grid.disableScrolling=!1,E&&(B.assign(b,A),b.$apply(),b.grid.api.edit.raise.cancelCellEdit(b.row.entity,b.col.colDef),w())}function y(a,b){b=b.replace(/\[(\w+)\]/g,".$1"),b=b.replace(/^\./,"");for(var c=b.split(".");c.length;){var d=c.shift();if(!(d in a))return;a=a[d]}return a}var z,A,B,C,D,E=!1;if(b.col.colDef.enableCellEdit){var F=function(){},G=function(){},H=function(){b.col.colDef.enableCellEdit&&b.row.enableCellEdit!==!1?b.beginEditEventsWired||o():b.beginEditEventsWired&&r()};H();var I=b.$watch("row",function(a,b){a!==b&&H()});b.$on("$destroy",I)}}}}]),a.directive("uiGridEditor",["gridUtil","uiGridConstants","uiGridEditConstants","$timeout","uiGridEditService",function(a,b,c,d,e){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer","ngModel"],compile:function(){return{pre:function(a,b,c){},post:function(a,f,g,h){var i,j,k;h[0]&&(i=h[0]),h[1]&&(j=h[1]),h[2]&&(k=h[2]),a.$on(c.events.BEGIN_CELL_EDIT,function(b,c){if(d(function(){if(f[0].focus(),f[0].select&&a.col.colDef.enableCellEditOnFocus||!i||!i.grid.api.cellNav)f[0].select();else try{f[0].setSelectionRange(f[0].value.length,f[0].value.length)}catch(b){}}),i&&i.grid.api.cellNav)var g=i.grid.api.cellNav.on.viewPortKeyPress(a,function(a,b){e.isStartEditKey(a)&&(k.$setViewValue(String.fromCharCode("number"==typeof a.which?a.which:a.keyCode),a),k.$render()),g()});f.on("blur",function(b){a.stopEdit(b)})}),a.deepEdit=!1,a.stopEdit=function(b){a.inputForm&&!a.inputForm.$valid?(b.stopPropagation(),a.$emit(c.events.CANCEL_CELL_EDIT)):a.$emit(c.events.END_CELL_EDIT),a.deepEdit=!1},f.on("click",function(b){"checkbox"!==f[0].type&&(a.deepEdit=!0,d(function(){a.grid.disableScrolling=!0}))}),f.on("keydown",function(d){switch(d.keyCode){case b.keymap.ESC:d.stopPropagation(),a.$emit(c.events.CANCEL_CELL_EDIT)}if(!a.deepEdit||d.keyCode!==b.keymap.LEFT&&d.keyCode!==b.keymap.RIGHT&&d.keyCode!==b.keymap.UP&&d.keyCode!==b.keymap.DOWN)if(i&&i.grid.api.cellNav)d.uiGridTargetRenderContainerId=j.containerId,null!==i.cellNav.handleKeyDown(d)&&a.stopEdit(d);else switch(d.keyCode){case b.keymap.ENTER:case b.keymap.TAB:d.stopPropagation(),d.preventDefault(),a.stopEdit(d)}else d.stopPropagation();return!0})}}}}}]),a.directive("uiGridEditor",["$filter",function(a){function b(a){if("undefined"==typeof a||""===a)return null;var b=a.split("-");if(3!==b.length)return null;var c=parseInt(b[0],10),d=parseInt(b[1],10),e=parseInt(b[2],10);return 1>d||1>c||1>e?null:new Date(c,d-1,e)}return{priority:-100,require:"?ngModel",link:function(c,d,e,f){2===angular.version.minor&&e.type&&"date"===e.type&&f&&(f.$formatters.push(function(b){return f.$setValidity(null,!b||!isNaN(b.getTime())),a("date")(b,"yyyy-MM-dd")}),f.$parsers.push(function(a){if(a&&a.length>0){var c=b(a);return f.$setValidity(null,c&&!isNaN(c.getTime())),c}return f.$setValidity(null,!0),null}))}}}]),a.directive("uiGridEditDropdown",["uiGridConstants","uiGridEditConstants",function(a,b){return{require:["?^uiGrid","?^uiGridRenderContainer"],scope:!0,compile:function(){return{pre:function(a,b,c){},post:function(c,d,e,f){var g=f[0],h=f[1];c.$on(b.events.BEGIN_CELL_EDIT,function(){d[0].focus(),d[0].style.width=d[0].parentElement.offsetWidth-1+"px",d.on("blur",function(a){c.stopEdit(a)})}),c.stopEdit=function(a){c.$emit(b.events.END_CELL_EDIT)},d.on("keydown",function(d){switch(d.keyCode){case a.keymap.ESC:d.stopPropagation(),c.$emit(b.events.CANCEL_CELL_EDIT)}if(g&&g.grid.api.cellNav)d.uiGridTargetRenderContainerId=h.containerId,null!==g.cellNav.handleKeyDown(d)&&c.stopEdit(d);else switch(d.keyCode){case a.keymap.ENTER:case a.keymap.TAB:d.stopPropagation(),d.preventDefault(),c.stopEdit(d)}return!0})}}}}}]),a.directive("uiGridEditFileChooser",["gridUtil","uiGridConstants","uiGridEditConstants","$timeout",function(a,b,c,d){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer"],compile:function(){return{pre:function(a,b,c){},post:function(b,d,e,f){var g,h;f[0]&&(g=f[0]),f[1]&&(h=f[1]);var i=(g.grid,function(d){var e=d.srcElement||d.target;e&&e.files&&e.files.length>0?("function"==typeof b.col.colDef.editFileChooserCallback?b.col.colDef.editFileChooserCallback(b.row,b.col,e.files):a.logError("You need to set colDef.editFileChooserCallback to use the file chooser"),e.form.reset(),b.$emit(c.events.END_CELL_EDIT)):b.$emit(c.events.CANCEL_CELL_EDIT)});d[0].addEventListener("change",i,!1),b.$on(c.events.BEGIN_CELL_EDIT,function(){d[0].focus(),d[0].select(),d.on("blur",function(a){b.$emit(c.events.END_CELL_EDIT)})})}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.expandable",["ui.grid"]);a.service("uiGridExpandableService",["gridUtil","$compile",function(a,b){var c={initializeGrid:function(b){b.expandable={},b.expandable.expandedAll=!1,b.options.enableExpandable=b.options.enableExpandable!==!1,b.options.expandableRowHeight=b.options.expandableRowHeight||150,b.options.expandableRowHeaderWidth=b.options.expandableRowHeaderWidth||40,b.options.enableExpandable&&!b.options.expandableRowTemplate&&(a.logError("You have not set the expandableRowTemplate, disabling expandable module"),b.options.enableExpandable=!1);var d={events:{expandable:{rowExpandedBeforeStateChanged:function(a,b){},rowExpandedStateChanged:function(a,b){}}},methods:{expandable:{toggleRowExpansion:function(a){var d=b.getRow(a);null!==d&&c.toggleRowExpansion(b,d)},expandAllRows:function(){c.expandAllRows(b)},collapseAllRows:function(){c.collapseAllRows(b)},toggleAllRows:function(){c.toggleAllRows(b)},expandRow:function(a){var d=b.getRow(a);null===d||d.isExpanded||c.toggleRowExpansion(b,d)},collapseRow:function(a){var d=b.getRow(a);null!==d&&d.isExpanded&&c.toggleRowExpansion(b,d)},getExpandedRows:function(){return c.getExpandedRows(b).map(function(a){return a.entity})}}}};b.api.registerEventsFromObject(d.events),b.api.registerMethodsFromObject(d.methods)},toggleRowExpansion:function(a,b){a.api.expandable.raise.rowExpandedBeforeStateChanged(b),b.isExpanded=!b.isExpanded,angular.isUndefined(b.expandedRowHeight)&&(b.expandedRowHeight=a.options.expandableRowHeight),b.isExpanded?b.height=b.grid.options.rowHeight+b.expandedRowHeight:(b.height=b.grid.options.rowHeight,a.expandable.expandedAll=!1),a.api.expandable.raise.rowExpandedStateChanged(b)},expandAllRows:function(a,b){a.renderContainers.body.visibleRowCache.forEach(function(b){b.isExpanded||c.toggleRowExpansion(a,b)}),a.expandable.expandedAll=!0,a.queueGridRefresh()},collapseAllRows:function(a){a.renderContainers.body.visibleRowCache.forEach(function(b){b.isExpanded&&c.toggleRowExpansion(a,b)}),a.expandable.expandedAll=!1,a.queueGridRefresh()},toggleAllRows:function(a){a.expandable.expandedAll?c.collapseAllRows(a):c.expandAllRows(a)},getExpandedRows:function(a){return a.rows.filter(function(a){return a.isExpanded})}};return c}]),a.directive("uiGridExpandable",["uiGridExpandableService","$templateCache",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(c,d,e,f){if(f.grid.options.enableExpandableRowHeader!==!1){var g={name:"expandableButtons",displayName:"",exporterSuppressExport:!0,enableColumnResizing:!1,enableColumnMenu:!1,width:f.grid.options.expandableRowHeaderWidth||40};g.cellTemplate=b.get("ui-grid/expandableRowHeader"),g.headerCellTemplate=b.get("ui-grid/expandableTopRowHeader"),f.grid.addRowHeaderColumn(g)}a.initializeGrid(f.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGrid",["uiGridExpandableService","$templateCache",function(a,b){return{replace:!0,priority:599,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,b,c,d){d.grid.api.core.on.renderingComplete(a,function(){a.row&&a.row.grid&&a.row.grid.options&&a.row.grid.options.enableExpandable&&(d.grid.parentRow=a.row)})},post:function(a,b,c,d){}}}}}]),a.directive("uiGridExpandableRow",["uiGridExpandableService","$timeout","$compile","uiGridConstants","gridUtil","$interval","$log",function(a,b,c,d,e,f,g){return{replace:!1,priority:0,scope:!1,compile:function(){return{pre:function(a,b,d,f){e.getTemplate(a.grid.options.expandableRowTemplate).then(function(d){if(a.grid.options.expandableRowScope){var e=a.grid.options.expandableRowScope;for(var f in e)e.hasOwnProperty(f)&&(a[f]=e[f])}var g=c(d)(a);b.append(g),a.row.expandedRendered=!0})},post:function(a,b,c,d){a.$on("$destroy",function(){a.row.expandedRendered=!1})}}}}}]),a.directive("uiGridRow",["$compile","gridUtil","$templateCache",function(a,b,c){return{priority:-200,scope:!1,compile:function(a,b){return{pre:function(a,b,c,d){a.expandableRow={},a.expandableRow.shouldRenderExpand=function(){var b="body"===a.colContainer.name&&a.grid.options.enableExpandable!==!1&&a.row.isExpanded&&(!a.grid.isScrollingVertically||a.row.expandedRendered);return b},a.expandableRow.shouldRenderFiller=function(){var b=a.row.isExpanded&&("body"!==a.colContainer.name||a.grid.isScrollingVertically&&!a.row.expandedRendered);return b}},post:function(a,b,c,d){}}}}}]),a.directive("uiGridViewport",["$compile","gridUtil","$templateCache",function(a,b,c){return{priority:-200,scope:!1,compile:function(a,b){var d=angular.element(a.children().children()[0]),e=c.get("ui-grid/expandableScrollFiller"),f=c.get("ui-grid/expandableRow");return d.append(f),d.append(e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.exporter",["ui.grid"]);a.constant("uiGridExporterConstants",{featureName:"exporter",ALL:"all",VISIBLE:"visible",SELECTED:"selected",CSV_CONTENT:"CSV_CONTENT",BUTTON_LABEL:"BUTTON_LABEL",FILE_NAME:"FILE_NAME"}),a.service("uiGridExporterService",["$q","uiGridExporterConstants","gridUtil","$compile","$interval","i18nService",function(a,b,c,d,e,f){var g={delay:100,initializeGrid:function(a){a.exporter={},this.defaultGridOptions(a.options);var b={events:{exporter:{}},methods:{exporter:{csvExport:function(b,c){g.csvExport(a,b,c)},pdfExport:function(b,c){g.pdfExport(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods),a.api.core.addToGridMenu?g.addToMenu(a):e(function(){a.api.core.addToGridMenu&&g.addToMenu(a)},this.delay,1)},defaultGridOptions:function(a){a.exporterSuppressMenu=a.exporterSuppressMenu===!0,a.exporterMenuLabel=a.exporterMenuLabel?a.exporterMenuLabel:"Export",a.exporterSuppressColumns=a.exporterSuppressColumns?a.exporterSuppressColumns:[],a.exporterCsvColumnSeparator=a.exporterCsvColumnSeparator?a.exporterCsvColumnSeparator:",",a.exporterCsvFilename=a.exporterCsvFilename?a.exporterCsvFilename:"download.csv",a.exporterPdfFilename=a.exporterPdfFilename?a.exporterPdfFilename:"download.pdf",a.exporterOlderExcelCompatibility=a.exporterOlderExcelCompatibility===!0,a.exporterPdfDefaultStyle=a.exporterPdfDefaultStyle?a.exporterPdfDefaultStyle:{fontSize:11},a.exporterPdfTableStyle=a.exporterPdfTableStyle?a.exporterPdfTableStyle:{margin:[0,5,0,15]},a.exporterPdfTableHeaderStyle=a.exporterPdfTableHeaderStyle?a.exporterPdfTableHeaderStyle:{bold:!0,fontSize:12,color:"black"},a.exporterPdfHeader=a.exporterPdfHeader?a.exporterPdfHeader:null,a.exporterPdfFooter=a.exporterPdfFooter?a.exporterPdfFooter:null,a.exporterPdfOrientation=a.exporterPdfOrientation?a.exporterPdfOrientation:"landscape",a.exporterPdfPageSize=a.exporterPdfPageSize?a.exporterPdfPageSize:"A4",a.exporterPdfMaxGridWidth=a.exporterPdfMaxGridWidth?a.exporterPdfMaxGridWidth:720,a.exporterMenuAllData=void 0!==a.exporterMenuAllData?a.exporterMenuAllData:!0,a.exporterMenuVisibleData=void 0!==a.exporterMenuVisibleData?a.exporterMenuVisibleData:!0,a.exporterMenuSelectedData=void 0!==a.exporterMenuSelectedData?a.exporterMenuSelectedData:!0,a.exporterMenuCsv=void 0!==a.exporterMenuCsv?a.exporterMenuCsv:!0,a.exporterMenuPdf=void 0!==a.exporterMenuPdf?a.exporterMenuPdf:!0,a.exporterPdfCustomFormatter=a.exporterPdfCustomFormatter&&"function"==typeof a.exporterPdfCustomFormatter?a.exporterPdfCustomFormatter:function(a){return a},a.exporterHeaderFilterUseName=a.exporterHeaderFilterUseName===!0,a.exporterFieldCallback=a.exporterFieldCallback?a.exporterFieldCallback:function(a,b,c,d){return d},a.exporterAllDataFn=a.exporterAllDataFn?a.exporterAllDataFn:null,null==a.exporterAllDataFn&&a.exporterAllDataPromise&&(a.exporterAllDataFn=a.exporterAllDataPromise)},addToMenu:function(a){a.api.core.addToGridMenu(a,[{title:f.getSafeText("gridMenu.exporterAllAsCsv"),action:function(a){this.grid.api.exporter.csvExport(b.ALL,b.ALL)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuAllData},order:200},{title:f.getSafeText("gridMenu.exporterVisibleAsCsv"),action:function(a){this.grid.api.exporter.csvExport(b.VISIBLE,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuVisibleData},order:201},{title:f.getSafeText("gridMenu.exporterSelectedAsCsv"),action:function(a){this.grid.api.exporter.csvExport(b.SELECTED,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.options.exporterMenuSelectedData&&this.grid.api.selection&&this.grid.api.selection.getSelectedRows().length>0},order:202},{title:f.getSafeText("gridMenu.exporterAllAsPdf"),action:function(a){this.grid.api.exporter.pdfExport(b.ALL,b.ALL)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuAllData},order:203},{title:f.getSafeText("gridMenu.exporterVisibleAsPdf"),action:function(a){this.grid.api.exporter.pdfExport(b.VISIBLE,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuVisibleData},order:204},{title:f.getSafeText("gridMenu.exporterSelectedAsPdf"),action:function(a){this.grid.api.exporter.pdfExport(b.SELECTED,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.options.exporterMenuSelectedData&&this.grid.api.selection&&this.grid.api.selection.getSelectedRows().length>0},order:205}])},csvExport:function(a,b,c){var d=this;this.loadAllDataIfNeeded(a,b,c).then(function(){var e=a.options.showHeader?d.getColumnHeaders(a,c):[],f=d.getData(a,b,c),g=d.formatAsCsv(e,f,a.options.exporterCsvColumnSeparator);d.downloadFile(a.options.exporterCsvFilename,g,a.options.exporterOlderExcelCompatibility)})},loadAllDataIfNeeded:function(c,d,e){if(d===b.ALL&&c.rows.length!==c.options.totalItems&&c.options.exporterAllDataFn)return c.options.exporterAllDataFn().then(function(){c.modifyRows(c.options.data)});var f=a.defer();return f.resolve(),f.promise},getColumnHeaders:function(a,c){var d,e=[];if(c===b.ALL)d=a.columns;else{var f=a.renderContainers.left?a.renderContainers.left.visibleColumnCache.filter(function(a){return a.visible}):[],g=a.renderContainers.body?a.renderContainers.body.visibleColumnCache.filter(function(a){return a.visible}):[],h=a.renderContainers.right?a.renderContainers.right.visibleColumnCache.filter(function(a){return a.visible}):[];d=f.concat(g,h)}return d.forEach(function(b,c){b.colDef.exporterSuppressExport!==!0&&-1===a.options.exporterSuppressColumns.indexOf(b.name)&&e.push({name:b.field,displayName:a.options.exporterHeaderFilter?a.options.exporterHeaderFilterUseName?a.options.exporterHeaderFilter(b.name):a.options.exporterHeaderFilter(b.displayName):b.displayName,width:b.drawnWidth?b.drawnWidth:b.width,align:"number"===b.colDef.type?"right":"left"})}),e},getData:function(a,d,e,f){var g,h,i=[];switch(d){case b.ALL:g=a.rows;break;case b.VISIBLE:g=a.getVisibleRows();break;case b.SELECTED:a.api.selection?g=a.api.selection.getSelectedGridRows():c.logError("selection feature must be enabled to allow selected rows to be exported")}if(e===b.ALL)h=a.columns;else{var j=a.renderContainers.left?a.renderContainers.left.visibleColumnCache.filter(function(a){return a.visible}):[],k=a.renderContainers.body?a.renderContainers.body.visibleColumnCache.filter(function(a){return a.visible}):[],l=a.renderContainers.right?a.renderContainers.right.visibleColumnCache.filter(function(a){return a.visible}):[];h=j.concat(k,l)}return g.forEach(function(c,d){if(c.exporterEnableExporting!==!1){var g=[];h.forEach(function(d,h){if((d.visible||e===b.ALL)&&d.colDef.exporterSuppressExport!==!0&&-1===a.options.exporterSuppressColumns.indexOf(d.name)){var i=f?a.getCellDisplayValue(c,d):a.getCellValue(c,d),j={value:a.options.exporterFieldCallback(a,c,d,i)};d.colDef.exporterPdfAlign&&(j.alignment=d.colDef.exporterPdfAlign),g.push(j)}}),i.push(g)}}),i},formatAsCsv:function(a,b,c){var d=this,e=a.map(function(a){return{value:a.displayName}}),f=e.length>0?d.formatRowAsCsv(this,c)(e)+"\n":"";return f+=b.map(this.formatRowAsCsv(this,c)).join("\n")},formatRowAsCsv:function(a,b){return function(c){return c.map(a.formatFieldAsCsv).join(b)}},formatFieldAsCsv:function(a){return null==a.value?"":"number"==typeof a.value?a.value:"boolean"==typeof a.value?a.value?"TRUE":"FALSE":"string"==typeof a.value?'"'+a.value.replace(/"/g,'""')+'"':JSON.stringify(a.value)},isIE:function(){var a=navigator.userAgent.search(/(?:Edge|MSIE|Trident\/.*; rv:)/),b=!1;return-1!==a&&(b=!0),b},downloadFile:function(a,b,c){var d,e,f=document,g=f.createElement("a"),h="application/octet-stream;charset=utf-8";if(e=this.isIE(),e&&10>e){var i=f.createElement("iframe");return document.body.appendChild(i),i.contentWindow.document.open("text/html","replace"),i.contentWindow.document.write("sep=,\r\n"+b),i.contentWindow.document.close(),i.contentWindow.focus(),i.contentWindow.document.execCommand("SaveAs",!0,a),document.body.removeChild(i),!0}if(navigator.msSaveBlob)return navigator.msSaveOrOpenBlob(new Blob([c?"\ufeff":"",b],{type:h}),a);if("download"in g){var j=new Blob([c?"\ufeff":"",b],{type:h});d=URL.createObjectURL(j),g.setAttribute("download",a)}else d="data:"+h+","+encodeURIComponent(b),g.setAttribute("target","_blank");g.href=d,g.setAttribute("style","display:none;"),f.body.appendChild(g),setTimeout(function(){if(g.click)g.click();else if(document.createEvent){var a=document.createEvent("MouseEvents");a.initEvent("click",!0,!0),g.dispatchEvent(a)}f.body.removeChild(g)},this.delay)},pdfExport:function(a,b,c){var d=this;this.loadAllDataIfNeeded(a,b,c).then(function(){var e=d.getColumnHeaders(a,c),f=d.getData(a,b,c),g=d.prepareAsPdf(a,e,f);d.isIE()||-1!==navigator.appVersion.indexOf("Edge")?d.downloadPDF(a.options.exporterPdfFilename,g):pdfMake.createPdf(g).open();
+})},downloadPDF:function(a,b){var c,d=document;d.createElement("a");c=this.isIE();var e,f=pdfMake.createPdf(b);f.getBuffer(function(b){if(e=new Blob([b]),navigator.msSaveBlob)return navigator.msSaveBlob(e,a);if(c){var f=d.createElement("iframe");return document.body.appendChild(f),f.contentWindow.document.open("text/html","replace"),f.contentWindow.document.write(e),f.contentWindow.document.close(),f.contentWindow.focus(),f.contentWindow.document.execCommand("SaveAs",!0,a),document.body.removeChild(f),!0}})},prepareAsPdf:function(a,b,c){var d=this.calculatePdfHeaderWidths(a,b),e=b.map(function(a){return{text:a.displayName,style:"tableHeader"}}),f=c.map(this.formatRowAsPdf(this)),g=[e].concat(f),h={pageOrientation:a.options.exporterPdfOrientation,pageSize:a.options.exporterPdfPageSize,content:[{style:"tableStyle",table:{headerRows:1,widths:d,body:g}}],styles:{tableStyle:a.options.exporterPdfTableStyle,tableHeader:a.options.exporterPdfTableHeaderStyle},defaultStyle:a.options.exporterPdfDefaultStyle};return a.options.exporterPdfLayout&&(h.layout=a.options.exporterPdfLayout),a.options.exporterPdfHeader&&(h.header=a.options.exporterPdfHeader),a.options.exporterPdfFooter&&(h.footer=a.options.exporterPdfFooter),a.options.exporterPdfCustomFormatter&&(h=a.options.exporterPdfCustomFormatter(h)),h},calculatePdfHeaderWidths:function(a,b){var c=0;b.forEach(function(a){"number"==typeof a.width&&(c+=a.width)});var d=0;b.forEach(function(a){if("*"===a.width&&(d+=100),"string"==typeof a.width&&a.width.match(/(\d)*%/)){var b=parseInt(a.width.match(/(\d)*%/)[0]);a.width=c*b/100,d+=a.width}});var e=c+d;return b.map(function(b){return"*"===b.width?b.width:b.width*a.options.exporterPdfMaxGridWidth/e})},formatRowAsPdf:function(a){return function(b){return b.map(a.formatFieldAsPdfString)}},formatFieldAsPdfString:function(a){var b;return b=null==a.value?"":"number"==typeof a.value?a.value.toString():"boolean"==typeof a.value?a.value?"TRUE":"FALSE":"string"==typeof a.value?a.value.replace(/"/g,'""'):JSON.stringify(a.value).replace(/^"/,"").replace(/"$/,""),a.alignment&&"string"==typeof a.alignment&&(b={text:b,alignment:a.alignment}),b}};return g}]),a.directive("uiGridExporter",["uiGridExporterConstants","uiGridExporterService","gridUtil","$compile",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(a,c,d,e){b.initializeGrid(e.grid),e.grid.exporter.$scope=a}}}])}(),function(){"use strict";var a=angular.module("ui.grid.grouping",["ui.grid","ui.grid.treeBase"]);a.constant("uiGridGroupingConstants",{featureName:"grouping",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),a.service("uiGridGroupingService",["$q","uiGridGroupingConstants","gridUtil","rowSorter","GridRow","gridClassFactory","i18nService","uiGridConstants","uiGridTreeBaseService",function(a,b,c,d,e,f,g,h,i){var j={initializeGrid:function(a,b){i.initializeGrid(a,b),a.grouping={},a.grouping.groupHeaderCache={},j.defaultGridOptions(a.options),a.registerRowsProcessor(j.groupRows,400),a.registerColumnBuilder(j.groupingColumnBuilder),a.registerColumnsProcessor(j.groupingColumnProcessor,400);var c={events:{grouping:{aggregationChanged:{},groupingChanged:{}}},methods:{grouping:{getGrouping:function(b){var c=j.getGrouping(a);return c.grouping.forEach(function(a){a.colName=a.col.name,delete a.col}),c.aggregations.forEach(function(a){a.colName=a.col.name,delete a.col}),c.aggregations=c.aggregations.filter(function(a){return!a.aggregation.source||"grouping"!==a.aggregation.source}),b&&(c.rowExpandedStates=j.getRowExpandedStates(a.grouping.groupingHeaderCache)),c},setGrouping:function(b){j.setGrouping(a,b)},groupColumn:function(b){var c=a.getColumn(b);j.groupColumn(a,c)},ungroupColumn:function(b){var c=a.getColumn(b);j.ungroupColumn(a,c)},clearGrouping:function(){j.clearGrouping(a)},aggregateColumn:function(b,c,d){var e=a.getColumn(b);j.aggregateColumn(a,e,c,d)}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods),a.api.core.on.sortChanged(b,j.tidyPriorities)},defaultGridOptions:function(a){a.enableGrouping=a.enableGrouping!==!1,a.groupingShowCounts=a.groupingShowCounts!==!1,a.groupingNullLabel="undefined"==typeof a.groupingNullLabel?"Null":a.groupingNullLabel,a.enableGroupHeaderSelection=a.enableGroupHeaderSelection===!0},groupingColumnBuilder:function(a,d,e){if(a.enableGrouping!==!1){"undefined"==typeof d.grouping&&"undefined"!=typeof a.grouping?(d.grouping=angular.copy(a.grouping),"undefined"!=typeof d.grouping.groupPriority&&d.grouping.groupPriority>-1&&(d.treeAggregationFn=i.nativeAggregations()[b.aggregation.COUNT].aggregationFn,d.treeAggregationFinalizerFn=j.groupedFinalizerFn)):"undefined"==typeof d.grouping&&(d.grouping={}),"undefined"!=typeof d.grouping&&"undefined"!=typeof d.grouping.groupPriority&&d.grouping.groupPriority>=0&&(d.suppressRemoveSort=!0);var f={name:"ui.grid.grouping.group",title:g.get().grouping.group,icon:"ui-grid-icon-indent-right",shown:function(){return"undefined"==typeof this.context.col.grouping||"undefined"==typeof this.context.col.grouping.groupPriority||this.context.col.grouping.groupPriority<0},action:function(){j.groupColumn(this.context.col.grid,this.context.col)}},h={name:"ui.grid.grouping.ungroup",title:g.get().grouping.ungroup,icon:"ui-grid-icon-indent-left",shown:function(){return"undefined"!=typeof this.context.col.grouping&&"undefined"!=typeof this.context.col.grouping.groupPriority&&this.context.col.grouping.groupPriority>=0},action:function(){j.ungroupColumn(this.context.col.grid,this.context.col)}},k={name:"ui.grid.grouping.aggregateRemove",title:g.get().grouping.aggregate_remove,shown:function(){return"undefined"!=typeof this.context.col.treeAggregationFn},action:function(){j.aggregateColumn(this.context.col.grid,this.context.col,null)}},l=function(a,b){b=b||g.get().grouping["aggregate_"+a]||a;var e={name:"ui.grid.grouping.aggregate"+a,title:b,shown:function(){return"undefined"==typeof this.context.col.treeAggregation||"undefined"==typeof this.context.col.treeAggregation.type||this.context.col.treeAggregation.type!==a},action:function(){j.aggregateColumn(this.context.col.grid,this.context.col,a)}};c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.aggregate"+a)||d.menuItems.push(e)};d.colDef.groupingShowGroupingMenu!==!1&&(c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.group")||d.menuItems.push(f),c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.ungroup")||d.menuItems.push(h)),d.colDef.groupingShowAggregationMenu!==!1&&(angular.forEach(i.nativeAggregations(),function(a,b){l(b)}),angular.forEach(e.treeCustomAggregations,function(a,b){l(b,a.menuTitle)}),c.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.grouping.aggregateRemove")||d.menuItems.push(k))}},groupingColumnProcessor:function(a,b){return a=j.moveGroupColumns(this,a,b)},groupedFinalizerFn:function(a){var b=this;"undefined"!=typeof a.groupVal?(a.rendered=a.groupVal,b.grid.options.groupingShowCounts&&"date"!==b.colDef.type&&(a.rendered+=" ("+a.value+")")):a.rendered=null},moveGroupColumns:function(a,b,c){return a.options.moveGroupColumns===!1?b:(b.forEach(function(a,b){a.groupingPosition=b}),b.sort(function(a,b){var c,d;return c=a.isRowHeader?-1e3:"undefined"==typeof a.grouping||"undefined"==typeof a.grouping.groupPriority||a.grouping.groupPriority<0?null:a.grouping.groupPriority,d=b.isRowHeader?-1e3:"undefined"==typeof b.grouping||"undefined"==typeof b.grouping.groupPriority||b.grouping.groupPriority<0?null:b.grouping.groupPriority,null!==c&&null===d?-1:null!==d&&null===c?1:null!==c&&null!==d?c-d:a.groupingPosition-b.groupingPosition}),b.forEach(function(a,b){delete a.groupingPosition}),b)},groupColumn:function(a,c){"undefined"==typeof c.grouping&&(c.grouping={});var d=j.getGrouping(a);c.grouping.groupPriority=d.grouping.length,c.sort?"undefined"!=typeof c.sort.direction&&null!==c.sort.direction||(c.sort.direction=h.ASC):c.sort={direction:h.ASC},c.treeAggregation={type:b.aggregation.COUNT,source:"grouping"},c.treeAggregationFn=i.nativeAggregations()[b.aggregation.COUNT].aggregationFn,c.treeAggregationFinalizerFn=j.groupedFinalizerFn,a.api.grouping.raise.groupingChanged(c),a.api.core.raise.sortChanged(a,a.getColumnSorting()),a.queueGridRefresh()},ungroupColumn:function(a,b){"undefined"!=typeof b.grouping&&(delete b.grouping.groupPriority,delete b.treeAggregation,delete b.customTreeAggregationFinalizer,j.tidyPriorities(a),a.api.grouping.raise.groupingChanged(b),a.queueGridRefresh())},aggregateColumn:function(a,b,c){"undefined"!=typeof b.grouping&&"undefined"!=typeof b.grouping.groupPriority&&b.grouping.groupPriority>=0&&j.ungroupColumn(a,b);var d={};"undefined"!=typeof a.options.treeCustomAggregations[c]?d=a.options.treeCustomAggregations[c]:"undefined"!=typeof i.nativeAggregations()[c]&&(d=i.nativeAggregations()[c]),b.treeAggregation={type:c,label:g.get().aggregation[d.label]||d.label},b.treeAggregationFn=d.aggregationFn,b.treeAggregationFinalizerFn=d.finalizerFn,a.api.grouping.raise.aggregationChanged(b),a.queueGridRefresh()},setGrouping:function(a,b){"undefined"!=typeof b&&(j.clearGrouping(a),b.grouping&&b.grouping.length&&b.grouping.length>0&&b.grouping.forEach(function(b){var c=a.getColumn(b.colName);c&&j.groupColumn(a,c)}),b.aggregations&&b.aggregations.length&&b.aggregations.forEach(function(b){var c=a.getColumn(b.colName);c&&j.aggregateColumn(a,c,b.aggregation.type)}),b.rowExpandedStates&&j.applyRowExpandedStates(a.grouping.groupingHeaderCache,b.rowExpandedStates))},clearGrouping:function(a){var b=j.getGrouping(a);b.grouping.length>0&&b.grouping.forEach(function(b){b.col||(b.col=a.getColumn(b.colName)),j.ungroupColumn(a,b.col)}),b.aggregations.length>0&&b.aggregations.forEach(function(b){b.col||(b.col=a.getColumn(b.colName)),j.aggregateColumn(a,b.col,null)})},tidyPriorities:function(a){"undefined"!=typeof a&&"undefined"==typeof a.grid||"undefined"==typeof this.grid||(a=this.grid);var b=[],c=[];a.columns.forEach(function(a,d){"undefined"!=typeof a.grouping&&"undefined"!=typeof a.grouping.groupPriority&&a.grouping.groupPriority>=0?b.push(a):"undefined"!=typeof a.sort&&"undefined"!=typeof a.sort.priority&&a.sort.priority>=0&&c.push(a)}),b.sort(function(a,b){return a.grouping.groupPriority-b.grouping.groupPriority}),b.forEach(function(a,b){a.grouping.groupPriority=b,a.suppressRemoveSort=!0,"undefined"==typeof a.sort&&(a.sort={}),a.sort.priority=b});var d=b.length;c.sort(function(a,b){return a.sort.priority-b.sort.priority}),c.forEach(function(a,b){a.sort.priority=d,a.suppressRemoveSort=a.colDef.suppressRemoveSort,d++})},groupRows:function(a){if(0===a.length)return a;var b=this;b.grouping.oldGroupingHeaderCache=b.grouping.groupingHeaderCache||{},b.grouping.groupingHeaderCache={};for(var c=j.initialiseProcessingState(b),e=function(e,h){var i=b.getCellValue(g,e.col);e.initialised&&0===d.getSortFn(b,e.col,a)(i,e.currentValue)||(j.insertGroupHeader(b,a,f,c,h),f++)},f=0;f<a.length;f++){var g=a[f];g.visible&&c.forEach(e)}return delete b.grouping.oldGroupingHeaderCache,a},initialiseProcessingState:function(a){var b=[],c=j.getGrouping(a);return c.grouping.forEach(function(a,c){b.push({fieldName:a.field,col:a.col,initialised:!1,currentValue:null,currentRow:null})}),b},getGrouping:function(a){var b=[],c=[];return a.columns.forEach(function(a,d){a.grouping&&"undefined"!=typeof a.grouping.groupPriority&&a.grouping.groupPriority>=0&&b.push({field:a.field,col:a,groupPriority:a.grouping.groupPriority,grouping:a.grouping}),a.treeAggregation&&a.treeAggregation.type&&c.push({field:a.field,col:a,aggregation:a.treeAggregation})}),b.sort(function(a,b){return a.groupPriority-b.groupPriority}),b.forEach(function(a,b){a.grouping.groupPriority=b,a.groupPriority=b,delete a.grouping}),{grouping:b,aggregations:c}},insertGroupHeader:function(a,b,c,d,g){var h=(d[g].fieldName,d[g].col),i=a.getCellValue(b[c],h),k=i;"undefined"!=typeof i&&null!==i||(k=a.options.groupingNullLabel);for(var l=function(a){return angular.isObject(a)?JSON.stringify(a):a},m=a.grouping.oldGroupingHeaderCache,n=0;g>n;n++)m&&m[l(d[n].currentValue)]&&(m=m[l(d[n].currentValue)].children);var o;for(m&&m[l(i)]?(o=m[l(i)].row,o.entity={}):(o=new e({},null,a),f.rowTemplateAssigner.call(a,o)),o.entity["$$"+d[g].col.uid]={groupVal:k},o.treeLevel=g,o.groupHeader=!0,o.internalRow=!0,o.enableCellEdit=!1,o.enableSelection=a.options.enableGroupHeaderSelection,d[g].initialised=!0,d[g].currentValue=i,d[g].currentRow=o,j.finaliseProcessingState(d,g+1),b.splice(c,0,o),m=a.grouping.groupingHeaderCache,n=0;g>n;n++)m=m[l(d[n].currentValue)].children;m[l(i)]={row:o,children:{}}},finaliseProcessingState:function(a,b){for(var c=b;c<a.length;c++)a[c].initialised=!1,a[c].currentRow=null,a[c].currentValue=null},getRowExpandedStates:function(a){if("undefined"==typeof a)return{};var b={};return angular.forEach(a,function(a,c){b[c]={state:a.row.treeNode.state},a.children?b[c].children=j.getRowExpandedStates(a.children):b[c].children={}}),b},applyRowExpandedStates:function(a,b){"undefined"!=typeof b&&angular.forEach(b,function(b,c){a[c]&&(a[c].row.treeNode.state=b.state,b.children&&a[c].children&&j.applyRowExpandedStates(a[c].children,b.children))})}};return j}]),a.directive("uiGridGrouping",["uiGridGroupingConstants","uiGridGroupingService","$templateCache",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){e.grid.options.enableGrouping!==!1&&b.initializeGrid(e.grid,a)},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.importer",["ui.grid"]);a.constant("uiGridImporterConstants",{featureName:"importer"}),a.service("uiGridImporterService",["$q","uiGridConstants","uiGridImporterConstants","gridUtil","$compile","$interval","i18nService","$window",function(a,b,c,d,e,f,g,h){var i={initializeGrid:function(a,b){b.importer={$scope:a},this.defaultGridOptions(b.options);var c={events:{importer:{}},methods:{importer:{importFile:function(a){i.importThisFile(b,a)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.options.enableImporter&&b.options.importerShowMenu&&(b.api.core.addToGridMenu?i.addToMenu(b):f(function(){b.api.core.addToGridMenu&&i.addToMenu(b)},100,1))},defaultGridOptions:function(a){a.enableImporter||void 0===a.enableImporter?h.hasOwnProperty("File")&&h.hasOwnProperty("FileReader")&&h.hasOwnProperty("FileList")&&h.hasOwnProperty("Blob")?a.enableImporter=!0:(d.logError("The File APIs are not fully supported in this browser, grid importer cannot be used."),a.enableImporter=!1):a.enableImporter=!1,a.importerProcessHeaders=a.importerProcessHeaders||i.processHeaders,a.importerHeaderFilter=a.importerHeaderFilter||function(a){return a},a.importerErrorCallback&&"function"==typeof a.importerErrorCallback||delete a.importerErrorCallback,a.enableImporter!==!0||a.importerDataAddCallback||(d.logError("You have not set an importerDataAddCallback, importer is disabled"),a.enableImporter=!1),a.importerShowMenu=a.importerShowMenu!==!1,a.importerObjectCallback=a.importerObjectCallback||function(a,b){return b}},addToMenu:function(a){a.api.core.addToGridMenu(a,[{title:g.getSafeText("gridMenu.importerTitle"),order:150},{templateUrl:"ui-grid/importerMenuItemContainer",action:function(b){this.grid.api.importer.importAFile(a)},order:151}])},importThisFile:function(a,b){if(!b)return void d.logError("No file object provided to importThisFile, should be impossible, aborting");var c=new FileReader;switch(b.type){case"application/json":c.onload=i.importJsonClosure(a);break;default:c.onload=i.importCsvClosure(a)}c.readAsText(b)},importJsonClosure:function(a){return function(b){var c,d=[],e=i.parseJson(a,b);null!==e&&(e.forEach(function(b,e){c=i.newObject(a),angular.extend(c,b),c=a.options.importerObjectCallback(a,c),d.push(c)}),i.addObjects(a,d))}},parseJson:function(a,b){var c;try{c=JSON.parse(b.target.result)}catch(d){return void i.alertError(a,"importer.invalidJson","File could not be processed, is it valid json? Content was: ",b.target.result)}return Array.isArray(c)?c:(i.alertError(a,"importer.jsonNotarray","Import failed, file is not an array, file was: ",b.target.result),[])},importCsvClosure:function(a){return function(b){var c=i.parseCsv(b);if(!c||c.length<1)return void i.alertError(a,"importer.invalidCsv","File could not be processed, is it valid csv? Content was: ",b.target.result);var d=i.createCsvObjects(a,c);return d&&0!==d.length?void i.addObjects(a,d):void i.alertError(a,"importer.noObjects","Objects were not able to be derived, content was: ",b.target.result)}},parseCsv:function(a){var b=a.target.result;return CSV.parse(b)},createCsvObjects:function(a,b){var c=a.options.importerProcessHeaders(a,b.shift());if(!c||0===c.length)return i.alertError(a,"importer.noHeaders","Column names could not be derived, content was: ",b),[];var d,e=[];return b.forEach(function(b,f){d=i.newObject(a),null!==b&&b.forEach(function(a,b){null!==c[b]&&(d[c[b]]=a)}),d=a.options.importerObjectCallback(a,d),e.push(d)}),e},processHeaders:function(a,b){var c=[];if(a.options.columnDefs&&0!==a.options.columnDefs.length){var d=i.flattenColumnDefs(a,a.options.columnDefs);return b.forEach(function(a,b){d[a]?c.push(d[a]):d[a.toLowerCase()]?c.push(d[a.toLowerCase()]):c.push(null)}),c}return b.forEach(function(a,b){c.push(a.replace(/[^0-9a-zA-Z\-_]/g,"_"))}),c},flattenColumnDefs:function(a,b){var c={};return b.forEach(function(b,d){b.name&&(c[b.name]=b.field||b.name,c[b.name.toLowerCase()]=b.field||b.name),b.field&&(c[b.field]=b.field||b.name,c[b.field.toLowerCase()]=b.field||b.name),b.displayName&&(c[b.displayName]=b.field||b.name,c[b.displayName.toLowerCase()]=b.field||b.name),b.displayName&&a.options.importerHeaderFilter&&(c[a.options.importerHeaderFilter(b.displayName)]=b.field||b.name,c[a.options.importerHeaderFilter(b.displayName).toLowerCase()]=b.field||b.name)}),c},addObjects:function(a,c,d){if(a.api.rowEdit){var e=a.registerDataChangeCallback(function(){a.api.rowEdit.setRowsDirty(c),e()},[b.dataChange.ROW]);a.importer.$scope.$on("$destroy",e)}a.importer.$scope.$apply(a.options.importerDataAddCallback(a,c))},newObject:function(a){return"undefined"!=typeof a.options&&"undefined"!=typeof a.options.importerNewObject?new a.options.importerNewObject:{}},alertError:function(a,b,c,e){a.options.importerErrorCallback?a.options.importerErrorCallback(a,b,c,e):(h.alert(g.getSafeText(b)),d.logError(c+e))}};return i}]),a.directive("uiGridImporter",["uiGridImporterConstants","uiGridImporterService","gridUtil","$compile",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(a,c,d,e){b.initializeGrid(a,e.grid)}}}]),a.directive("uiGridImporterMenuItem",["uiGridImporterConstants","uiGridImporterService","gridUtil","$compile",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,templateUrl:"ui-grid/importerMenuItem",link:function(a,d,e,f){var g=function(a){var c=a.srcElement||a.target;if(c&&c.files&&1===c.files.length){var d=c.files[0];b.importThisFile(i,d),c.form.reset()}},h=d[0].querySelectorAll(".ui-grid-importer-file-chooser"),i=f.grid;1!==h.length?c.logError("Found > 1 or < 1 file choosers within the menu item, error, cannot continue"):h[0].addEventListener("change",g,!1)}}}])}(),function(){"use strict";var a=angular.module("ui.grid.infiniteScroll",["ui.grid"]);a.service("uiGridInfiniteScrollService",["gridUtil","$compile","$timeout","uiGridConstants","ScrollEvent","$q",function(a,b,c,d,e,f){var g={initializeGrid:function(a,b){if(g.defaultGridOptions(a.options),a.options.enableInfiniteScroll){a.infiniteScroll={dataLoading:!1},g.setScrollDirections(a,a.options.infiniteScrollUp,a.options.infiniteScrollDown),a.api.core.on.scrollEnd(b,g.handleScroll);var c={events:{infiniteScroll:{needLoadMoreData:function(a,b){},needLoadMoreDataTop:function(a,b){}}},methods:{infiniteScroll:{dataLoaded:function(b,c){g.setScrollDirections(a,b,c);var d=g.adjustScroll(a).then(function(){a.infiniteScroll.dataLoading=!1});return d},resetScroll:function(b,c){return g.setScrollDirections(a,b,c),g.adjustInfiniteScrollPosition(a,0)},saveScrollPercentage:function(){a.infiniteScroll.prevScrollTop=a.renderContainers.body.prevScrollTop,a.infiniteScroll.previousVisibleRows=a.getVisibleRowCount()},dataRemovedTop:function(b,c){g.dataRemovedTop(a,b,c)},dataRemovedBottom:function(b,c){g.dataRemovedBottom(a,b,c)},setScrollDirections:function(b,c){g.setScrollDirections(a,b,c)}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)}},defaultGridOptions:function(a){a.enableInfiniteScroll=a.enableInfiniteScroll!==!1,a.infiniteScrollRowsFromEnd=a.infiniteScrollRowsFromEnd||20,a.infiniteScrollUp=a.infiniteScrollUp===!0,a.infiniteScrollDown=a.infiniteScrollDown!==!1},setScrollDirections:function(a,b,c){a.infiniteScroll.scrollUp=b===!0,a.suppressParentScrollUp=b===!0,a.infiniteScroll.scrollDown=c!==!1,a.suppressParentScrollDown=c!==!1},handleScroll:function(a){if(!(a.grid.infiniteScroll&&a.grid.infiniteScroll.dataLoading||"ui.grid.adjustInfiniteScrollPosition"===a.source)&&a.y){var b,c=a.grid.options.infiniteScrollRowsFromEnd/a.grid.renderContainers.body.visibleRowCache.length;a.grid.scrollDirection===d.scrollDirection.UP?(b=a.y.percentage,c>=b&&g.loadData(a.grid)):a.grid.scrollDirection===d.scrollDirection.DOWN&&(b=1-a.y.percentage,c>=b&&g.loadData(a.grid))}},loadData:function(a){a.infiniteScroll.previousVisibleRows=a.renderContainers.body.visibleRowCache.length,a.infiniteScroll.direction=a.scrollDirection,delete a.infiniteScroll.prevScrollTop,a.scrollDirection===d.scrollDirection.UP&&a.infiniteScroll.scrollUp?(a.infiniteScroll.dataLoading=!0,a.api.infiniteScroll.raise.needLoadMoreDataTop()):a.scrollDirection===d.scrollDirection.DOWN&&a.infiniteScroll.scrollDown&&(a.infiniteScroll.dataLoading=!0,a.api.infiniteScroll.raise.needLoadMoreData())},adjustScroll:function(a){var b=f.defer();return c(function(){var e,f,h,i,j;e=a.getViewportHeight()+a.headerHeight-a.renderContainers.body.headerHeight-a.scrollbarHeight,f=a.options.rowHeight,void 0===a.infiniteScroll.direction&&g.adjustInfiniteScrollPosition(a,0),h=a.getVisibleRowCount();var k=f*h;a.infiniteScroll.scrollDown&&e>k&&a.api.infiniteScroll.raise.needLoadMoreData(),a.infiniteScroll.direction===d.scrollDirection.UP&&(i=a.infiniteScroll.prevScrollTop||0,j=i+(h-a.infiniteScroll.previousVisibleRows)*f,g.adjustInfiniteScrollPosition(a,j),c(function(){b.resolve()})),a.infiniteScroll.direction===d.scrollDirection.DOWN&&(j=a.infiniteScroll.prevScrollTop||a.infiniteScroll.previousVisibleRows*f-e,g.adjustInfiniteScrollPosition(a,j),c(function(){b.resolve()}))},0),b.promise},adjustInfiniteScrollPosition:function(a,b){var c=new e(a,null,null,"ui.grid.adjustInfiniteScrollPosition"),d=a.getVisibleRowCount(),f=a.getViewportHeight()+a.headerHeight-a.renderContainers.body.headerHeight-a.scrollbarHeight,g=a.options.rowHeight,h=d*g-f;0===b&&a.infiniteScroll.scrollUp?c.y={percentage:1/h}:c.y={percentage:b/h},a.scrollContainers("",c)},dataRemovedTop:function(a,b,c){var d,e,f,h;return g.setScrollDirections(a,b,c),d=a.renderContainers.body.visibleRowCache.length,e=a.infiniteScroll.prevScrollTop,h=a.options.rowHeight,f=e-(a.infiniteScroll.previousVisibleRows-d)*h,g.adjustInfiniteScrollPosition(a,f)},dataRemovedBottom:function(a,b,c){var d;return g.setScrollDirections(a,b,c),d=a.infiniteScroll.prevScrollTop,g.adjustInfiniteScrollPosition(a,d)}};return g}]),a.directive("uiGridInfiniteScroll",["uiGridInfiniteScrollService",function(a){return{priority:-200,scope:!1,require:"^uiGrid",compile:function(b,c,d){return{pre:function(b,c,d,e){a.initializeGrid(e.grid,b)},post:function(a,b,c){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.moveColumns",["ui.grid"]);a.service("uiGridMoveColumnService",["$q","$timeout","$log","ScrollEvent","uiGridConstants","gridUtil",function(a,b,c,d,e,f){var g={initializeGrid:function(a){var b=this;this.registerPublicApi(a),this.defaultGridOptions(a.options),a.moveColumns={orderCache:[]},a.registerColumnBuilder(b.movableColumnBuilder),a.registerDataChangeCallback(b.verifyColumnOrder,[e.dataChange.COLUMN])},registerPublicApi:function(a){var b=this,c={events:{colMovable:{columnPositionChanged:function(a,b,c){}}},methods:{colMovable:{moveColumn:function(c,d){var e=a.columns;if(!angular.isNumber(c)||!angular.isNumber(d))return void f.logError("MoveColumn: Please provide valid values for originalPosition and finalPosition");for(var g=0,h=0;h<e.length;h++)(angular.isDefined(e[h].colDef.visible)&&e[h].colDef.visible===!1||e[h].isRowHeader===!0)&&g++;if(c>=e.length-g||d>=e.length-g)return void f.logError("MoveColumn: Invalid values for originalPosition, finalPosition");var i=function(a){for(var b=a,c=0;b>=c;c++)angular.isDefined(e[c])&&(angular.isDefined(e[c].colDef.visible)&&e[c].colDef.visible===!1||e[c].isRowHeader===!0)&&b++;return b};b.redrawColumnAtPosition(a,i(c),i(d))}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.enableColumnMoving=a.enableColumnMoving!==!1},movableColumnBuilder:function(b,c,d){var e=[];return b.enableColumnMoving=void 0===b.enableColumnMoving?d.enableColumnMoving:b.enableColumnMoving,a.all(e)},updateColumnCache:function(a){a.moveColumns.orderCache=a.getOnlyDataColumns()},verifyColumnOrder:function(a){var b,c=a.rowHeaderColumns.length;angular.forEach(a.moveColumns.orderCache,function(d,e){if(b=a.columns.indexOf(d),-1!==b&&b-c!==e){var f=a.columns.splice(b,1)[0];a.columns.splice(e+c,0,f)}})},redrawColumnAtPosition:function(a,c,d){if(c!==d){var f=a.columns,h=f[c];if(h.colDef.enableColumnMoving){if(c>d)for(var i=c;i>d;i--)f[i]=f[i-1];else if(d>c)for(var j=c;d>j;j++)f[j]=f[j+1];f[d]=h,g.updateColumnCache(a),a.queueGridRefresh(),b(function(){a.api.core.notifyDataChange(e.dataChange.COLUMN),a.api.colMovable.raise.columnPositionChanged(h.colDef,c,d)})}}}};return g}]),a.directive("uiGridMoveColumns",["uiGridMoveColumnService",function(a){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(b,c,d,e){a.initializeGrid(e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridHeaderCell",["$q","gridUtil","uiGridMoveColumnService","$document","$log","uiGridConstants","ScrollEvent",function(a,b,c,d,e,f,g){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(a,b,e,f){if(a.col.colDef.enableColumnMoving){var h,i,j,k,l,m,n=angular.element(b[0].querySelectorAll(".ui-grid-cell-contents")),o=!1,p=!1,q=function(b){h=a.grid.element[0].getBoundingClientRect().left,a.grid.hasLeftContainer()&&(h+=a.grid.renderContainers.left.header[0].getBoundingClientRect().width),i=b.pageX,j=0,k=h+a.grid.getViewportWidth(),"mousedown"===b.type?(d.on("mousemove",r),d.on("mouseup",s)):"touchstart"===b.type&&(d.on("touchmove",r),d.on("touchend",s))},r=function(a){var b=a.pageX-i;0!==b&&(document.onselectstart=function(){return!1},p=!0,o?o&&(w(b),i=a.pageX):v())},s=function(b){if(document.onselectstart=null,l&&(l.remove(),o=!1),u(),t(),p){for(var d=a.grid.columns,e=0,f=0;f<d.length&&d[f].colDef.name!==a.col.colDef.name;f++)e++;var g;if(0>j){var h,i=0;if(a.grid.isRTL()){for(h=e+1;h<d.length;h++)if((angular.isUndefined(d[h].colDef.visible)||d[h].colDef.visible===!0)&&(i+=d[h].drawnWidth||d[h].width||d[h].colDef.width,i>Math.abs(j))){c.redrawColumnAtPosition(a.grid,e,h-1);break}}else for(h=e-1;h>=0;h--)if((angular.isUndefined(d[h].colDef.visible)||d[h].colDef.visible===!0)&&(i+=d[h].drawnWidth||d[h].width||d[h].colDef.width,i>Math.abs(j))){c.redrawColumnAtPosition(a.grid,e,h+1);break}i<Math.abs(j)&&(g=0,a.grid.isRTL()&&(g=d.length-1),c.redrawColumnAtPosition(a.grid,e,g))}else if(j>0){var k,m=0;if(a.grid.isRTL()){for(k=e-1;k>0;k--)if((angular.isUndefined(d[k].colDef.visible)||d[k].colDef.visible===!0)&&(m+=d[k].drawnWidth||d[k].width||d[k].colDef.width,m>j)){c.redrawColumnAtPosition(a.grid,e,k);break}}else for(k=e+1;k<d.length;k++)if((angular.isUndefined(d[k].colDef.visible)||d[k].colDef.visible===!0)&&(m+=d[k].drawnWidth||d[k].width||d[k].colDef.width,m>j)){c.redrawColumnAtPosition(a.grid,e,k-1);break}j>m&&(g=d.length-1,a.grid.isRTL()&&(g=0),c.redrawColumnAtPosition(a.grid,e,g))}}},t=function(){n.on("touchstart",q),n.on("mousedown",q)},u=function(){n.off("touchstart",q),n.off("mousedown",q),d.off("mousemove",r),d.off("touchmove",r),d.off("mouseup",s),d.off("touchend",s)};t();var v=function(){o=!0,l=b.clone(),b.parent().append(l),l.addClass("movingColumn");var c={};c.left=b[0].offsetLeft+"px";var d=a.grid.element[0].getBoundingClientRect().right,e=b[0].getBoundingClientRect().right;e>d&&(m=a.col.drawnWidth+(d-e),c.width=m+"px"),l.css(c)},w=function(b){for(var c=a.grid.columns,d=0,e=0;e<c.length;e++)(angular.isUndefined(c[e].colDef.visible)||c[e].colDef.visible===!0)&&(d+=c[e].drawnWidth||c[e].width||c[e].colDef.width);var i,n=l[0].getBoundingClientRect().left-1,o=l[0].getBoundingClientRect().right;if(i=n-h+b,i=k>i?i:k,(n>=h||b>0)&&(k>=o||0>b))l.css({visibility:"visible",left:l[0].offsetLeft+(k>i?b:k-n)+"px"});else if(d>Math.ceil(f.grid.gridWidth)){b*=8;var p=new g(a.col.grid,null,null,"uiGridHeaderCell.moveElement");p.x={pixels:b},p.grid.scrollContainers("",p)}for(var q=0,r=0;r<c.length;r++)if(angular.isUndefined(c[r].colDef.visible)||c[r].colDef.visible===!0){if(c[r].colDef.name===a.col.colDef.name)break;q+=c[r].drawnWidth||c[r].width||c[r].colDef.width}void 0===a.newScrollLeft?j+=b:j=a.newScrollLeft+i-q,m<a.col.drawnWidth&&(m+=Math.abs(b),l.css({width:m+"px"}))}}}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.pagination",["ng","ui.grid"]);a.service("uiGridPaginationService",["gridUtil",function(a){var b={initializeGrid:function(a){b.defaultGridOptions(a.options);var c={events:{pagination:{paginationChanged:function(a,b){}}},methods:{pagination:{getPage:function(){return a.options.enablePagination?a.options.paginationCurrentPage:null},getTotalPages:function(){return a.options.enablePagination?0===a.options.totalItems?1:Math.ceil(a.options.totalItems/a.options.paginationPageSize):null},nextPage:function(){a.options.enablePagination&&(a.options.totalItems>0?a.options.paginationCurrentPage=Math.min(a.options.paginationCurrentPage+1,c.methods.pagination.getTotalPages()):a.options.paginationCurrentPage++)},previousPage:function(){a.options.enablePagination&&(a.options.paginationCurrentPage=Math.max(a.options.paginationCurrentPage-1,1))},seek:function(b){if(a.options.enablePagination){if(!angular.isNumber(b)||1>b)throw"Invalid page number: "+b;a.options.paginationCurrentPage=Math.min(b,c.methods.pagination.getTotalPages())}}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods);var d=function(b){if(a.options.useExternalPagination||!a.options.enablePagination)return b;var c=parseInt(a.options.paginationPageSize,10),d=parseInt(a.options.paginationCurrentPage,10),e=b.filter(function(a){return a.visible});a.options.totalItems=e.length;var f=(d-1)*c;return f>e.length&&(d=a.options.paginationCurrentPage=1,f=(d-1)*c),e.slice(f,f+c)};a.registerRowsProcessor(d,900)},defaultGridOptions:function(b){b.enablePagination=b.enablePagination!==!1,b.enablePaginationControls=b.enablePaginationControls!==!1,b.useExternalPagination=b.useExternalPagination===!0,a.isNullOrUndefined(b.totalItems)&&(b.totalItems=0),a.isNullOrUndefined(b.paginationPageSizes)&&(b.paginationPageSizes=[250,500,1e3]),a.isNullOrUndefined(b.paginationPageSize)&&(b.paginationPageSizes.length>0?b.paginationPageSize=b.paginationPageSizes[0]:b.paginationPageSize=0),a.isNullOrUndefined(b.paginationCurrentPage)&&(b.paginationCurrentPage=1),a.isNullOrUndefined(b.paginationTemplate)&&(b.paginationTemplate="ui-grid/pagination")},onPaginationChanged:function(a,b,c){a.api.pagination.raise.paginationChanged(b,c),a.options.useExternalPagination||a.queueGridRefresh()}};return b}]),a.directive("uiGridPagination",["gridUtil","uiGridPaginationService",function(a,b){
+return{priority:-200,scope:!1,require:"uiGrid",link:{pre:function(c,d,e,f){b.initializeGrid(f.grid),a.getTemplate(f.grid.options.paginationTemplate).then(function(a){var b=angular.element(a);d.append(b),f.innerCompile(b)})}}}}]),a.directive("uiGridPager",["uiGridPaginationService","uiGridConstants","gridUtil","i18nService",function(a,b,c,d){return{priority:-200,scope:!0,require:"^uiGrid",link:function(e,f,g,h){var i=".ui-grid-pager-control-input";e.aria=d.getSafeText("pagination.aria"),e.paginationApi=h.grid.api.pagination,e.sizesLabel=d.getSafeText("pagination.sizes"),e.totalItemsLabel=d.getSafeText("pagination.totalItems"),e.paginationOf=d.getSafeText("pagination.of"),e.paginationThrough=d.getSafeText("pagination.through");var j=h.grid.options;h.grid.renderContainers.body.registerViewportAdjuster(function(a){return a.height=a.height-c.elementHeight(f,"padding"),a});var k=h.grid.registerDataChangeCallback(function(a){a.options.useExternalPagination||(a.options.totalItems=a.rows.length)},[b.dataChange.ROW]);e.$on("$destroy",k);var l=function(){e.showingLow=(j.paginationCurrentPage-1)*j.paginationPageSize+1,e.showingHigh=Math.min(j.paginationCurrentPage*j.paginationPageSize,j.totalItems)},m=e.$watch("grid.options.totalItems + grid.options.paginationPageSize",l),n=e.$watch("grid.options.paginationCurrentPage + grid.options.paginationPageSize",function(b,c){if(b!==c&&void 0!==c){if(!angular.isNumber(j.paginationCurrentPage)||j.paginationCurrentPage<1)return void(j.paginationCurrentPage=1);if(j.totalItems>0&&j.paginationCurrentPage>e.paginationApi.getTotalPages())return void(j.paginationCurrentPage=e.paginationApi.getTotalPages());l(),a.onPaginationChanged(e.grid,j.paginationCurrentPage,j.paginationPageSize)}});e.$on("$destroy",function(){m(),n()}),e.cantPageForward=function(){return j.totalItems>0?j.paginationCurrentPage>=e.paginationApi.getTotalPages():j.data.length<1},e.cantPageToLast=function(){return j.totalItems>0?e.cantPageForward():!0},e.cantPageBackward=function(){return j.paginationCurrentPage<=1};var o=function(a){a&&c.focus.bySelector(f,i)};e.pageFirstPageClick=function(){e.paginationApi.seek(1),o(e.cantPageBackward())},e.pagePreviousPageClick=function(){e.paginationApi.previousPage(),o(e.cantPageBackward())},e.pageNextPageClick=function(){e.paginationApi.nextPage(),o(e.cantPageForward())},e.pageLastPageClick=function(){e.paginationApi.seek(e.paginationApi.getTotalPages()),o(e.cantPageToLast())}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.pinning",["ui.grid"]);a.constant("uiGridPinningConstants",{container:{LEFT:"left",RIGHT:"right",NONE:""}}),a.service("uiGridPinningService",["gridUtil","GridRenderContainer","i18nService","uiGridPinningConstants",function(a,b,c,d){var e={initializeGrid:function(a){e.defaultGridOptions(a.options),a.registerColumnBuilder(e.pinningColumnBuilder);var b={events:{pinning:{columnPinned:function(a,b){}}},methods:{pinning:{pinColumn:function(b,c){e.pinColumn(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.enablePinning=a.enablePinning!==!1},pinningColumnBuilder:function(b,f,g){if(b.enablePinning=void 0===b.enablePinning?g.enablePinning:b.enablePinning,b.pinnedLeft?(f.renderContainer="left",f.grid.createLeftContainer()):b.pinnedRight&&(f.renderContainer="right",f.grid.createRightContainer()),b.enablePinning){var h={name:"ui.grid.pinning.pinLeft",title:c.get().pinning.pinLeft,icon:"ui-grid-icon-left-open",shown:function(){return"undefined"==typeof this.context.col.renderContainer||!this.context.col.renderContainer||"left"!==this.context.col.renderContainer},action:function(){e.pinColumn(this.context.col.grid,this.context.col,d.container.LEFT)}},i={name:"ui.grid.pinning.pinRight",title:c.get().pinning.pinRight,icon:"ui-grid-icon-right-open",shown:function(){return"undefined"==typeof this.context.col.renderContainer||!this.context.col.renderContainer||"right"!==this.context.col.renderContainer},action:function(){e.pinColumn(this.context.col.grid,this.context.col,d.container.RIGHT)}},j={name:"ui.grid.pinning.unpin",title:c.get().pinning.unpin,icon:"ui-grid-icon-cancel",shown:function(){return"undefined"!=typeof this.context.col.renderContainer&&null!==this.context.col.renderContainer&&"body"!==this.context.col.renderContainer},action:function(){e.pinColumn(this.context.col.grid,this.context.col,d.container.NONE)}};a.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.pinLeft")||f.menuItems.push(h),a.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.pinRight")||f.menuItems.push(i),a.arrayContainsObjectWithProperty(f.menuItems,"name","ui.grid.pinning.unpin")||f.menuItems.push(j)}},pinColumn:function(a,b,c){c===d.container.NONE?(b.renderContainer=null,b.colDef.pinnedLeft=b.colDef.pinnedRight=!1):(b.renderContainer=c,c===d.container.LEFT?a.createLeftContainer():c===d.container.RIGHT&&a.createRightContainer()),a.refresh().then(function(){a.api.pinning.raise.columnPinned(b.colDef,c)})}};return e}]),a.directive("uiGridPinning",["gridUtil","uiGridPinningService",function(a,b){return{require:"uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.resizeColumns",["ui.grid"]);a.service("uiGridResizeColumnsService",["gridUtil","$q","$timeout",function(a,b,c){var d={defaultGridOptions:function(a){a.enableColumnResizing=a.enableColumnResizing!==!1,a.enableColumnResize===!1&&(a.enableColumnResizing=!1)},colResizerColumnBuilder:function(a,c,d){var e=[];return a.enableColumnResizing=void 0===a.enableColumnResizing?d.enableColumnResizing:a.enableColumnResizing,a.enableColumnResize===!1&&(a.enableColumnResizing=!1),b.all(e)},registerPublicApi:function(a){var b={events:{colResizable:{columnSizeChanged:function(a,b){}}}};a.api.registerEventsFromObject(b.events)},fireColumnSizeChanged:function(b,d,e){c(function(){b.api.colResizable?b.api.colResizable.raise.columnSizeChanged(d,e):a.logError("The resizeable api is not registered, this may indicate that you've included the module but not added the 'ui-grid-resize-columns' directive to your grid definition.  Cannot raise any events.")})},findTargetCol:function(a,b,c){var d=a.getRenderContainer();if("left"===b){var e=d.visibleColumnCache.indexOf(a);return d.visibleColumnCache[e-1*c]}return a}};return d}]),a.directive("uiGridResizeColumns",["gridUtil","uiGridResizeColumnsService",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.defaultGridOptions(e.grid.options),e.grid.registerColumnBuilder(b.colResizerColumnBuilder),b.registerPublicApi(e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridHeaderCell",["gridUtil","$templateCache","$compile","$q","uiGridResizeColumnsService","uiGridConstants","$timeout",function(a,b,c,d,e,f,g){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(a,d,h,i){var j=i.grid;if(j.options.enableColumnResizing){var k=b.get("ui-grid/columnResizer"),l=1;j.isRTL()&&(a.position="left",l=-1);var m=function(){for(var b=d[0].getElementsByClassName("ui-grid-column-resizer"),f=0;f<b.length;f++)angular.element(b[f]).remove();var g=e.findTargetCol(a.col,"left",l),h=a.col.getRenderContainer();if(g&&0!==h.visibleColumnCache.indexOf(a.col)&&g.colDef.enableColumnResizing!==!1){var i=angular.element(k).clone();i.attr("position","left"),d.prepend(i),c(i)(a)}if(a.col.colDef.enableColumnResizing!==!1){var j=angular.element(k).clone();j.attr("position","right"),d.append(j),c(j)(a)}};m();var n=function(){g(m)},o=j.registerDataChangeCallback(n,[f.dataChange.COLUMN]);a.$on("$destroy",o)}}}}}}]),a.directive("uiGridColumnResizer",["$document","gridUtil","uiGridConstants","uiGridResizeColumnsService",function(a,b,c,d){var e=angular.element('<div class="ui-grid-resize-overlay"></div>'),f={priority:0,scope:{col:"=",position:"@",renderIndex:"="},require:"?^uiGrid",link:function(f,g,h,i){function j(a){i.grid.refreshCanvas(!0).then(function(){i.grid.queueGridRefresh()})}function k(a,b){var c=b;return a.minWidth&&c<a.minWidth?c=a.minWidth:a.maxWidth&&c>a.maxWidth&&(c=a.maxWidth),c}function l(a,b){a.originalEvent&&(a=a.originalEvent),a.preventDefault(),o=(a.targetTouches?a.targetTouches[0]:a).clientX-p,0>o?o=0:o>i.grid.gridWidth&&(o=i.grid.gridWidth);var g=d.findTargetCol(f.col,f.position,q);if(g.colDef.enableColumnResizing!==!1){i.grid.element.hasClass("column-resizing")||i.grid.element.addClass("column-resizing");var h=o-n,j=parseInt(g.drawnWidth+h*q,10);o+=(k(g,j)-j)*q,e.css({left:o+"px"}),i.fireEvent(c.events.ITEM_DRAGGING)}}function m(a,b){a.originalEvent&&(a=a.originalEvent),a.preventDefault(),i.grid.element.removeClass("column-resizing"),e.remove(),o=(a.changedTouches?a.changedTouches[0]:a).clientX-p;var c=o-n;if(0===c)return t(),void s();var g=d.findTargetCol(f.col,f.position,q);if(g.colDef.enableColumnResizing!==!1){var h=parseInt(g.drawnWidth+c*q,10);g.width=k(g,h),g.hasCustomWidth=!0,j(c),d.fireColumnSizeChanged(i.grid,g.colDef,c),t(),s()}}var n=0,o=0,p=0,q=1;i.grid.isRTL()&&(f.position="left",q=-1),"left"===f.position?g.addClass("left"):"right"===f.position&&g.addClass("right");var r=function(b,c){b.originalEvent&&(b=b.originalEvent),b.stopPropagation(),p=i.grid.element[0].getBoundingClientRect().left,n=(b.targetTouches?b.targetTouches[0]:b).clientX-p,i.grid.element.append(e),e.css({left:n}),"touchstart"===b.type?(a.on("touchend",m),a.on("touchmove",l),g.off("mousedown",r)):(a.on("mouseup",m),a.on("mousemove",l),g.off("touchstart",r))},s=function(){g.on("mousedown",r),g.on("touchstart",r)},t=function(){a.off("mouseup",m),a.off("touchend",m),a.off("mousemove",l),a.off("touchmove",l),g.off("mousedown",r),g.off("touchstart",r)};s();var u=function(a,e){a.stopPropagation();var h=d.findTargetCol(f.col,f.position,q);if(h.colDef.enableColumnResizing!==!1){var l=0,m=0,n=b.closestElm(g,".ui-grid-render-container"),o=n.querySelectorAll("."+c.COL_CLASS_PREFIX+h.uid+" .ui-grid-cell-contents");Array.prototype.forEach.call(o,function(a){var c;angular.element(a).parent().hasClass("ui-grid-header-cell")&&(c=angular.element(a).parent()[0].querySelectorAll(".ui-grid-column-menu-button")),b.fakeElement(a,{},function(a){var d=angular.element(a);d.attr("style","float: left");var e=b.elementWidth(d);if(c){var f=b.elementWidth(c);e+=f}e>l&&(l=e,m=l-e)})}),h.width=k(h,l),h.hasCustomWidth=!0,j(m),d.fireColumnSizeChanged(i.grid,h.colDef,m)}};g.on("dblclick",u),g.on("$destroy",function(){g.off("dblclick",u),t()})}};return f}])}(),function(){"use strict";var a=angular.module("ui.grid.rowEdit",["ui.grid","ui.grid.edit","ui.grid.cellNav"]);a.constant("uiGridRowEditConstants",{}),a.service("uiGridRowEditService",["$interval","$q","uiGridConstants","uiGridRowEditConstants","gridUtil",function(a,b,c,d,e){var f={initializeGrid:function(a,b){b.rowEdit={};var c={events:{rowEdit:{saveRow:function(a){}}},methods:{rowEdit:{setSavePromise:function(a,c){f.setSavePromise(b,a,c)},getDirtyRows:function(){return b.rowEdit.dirtyRows?b.rowEdit.dirtyRows:[]},getErrorRows:function(){return b.rowEdit.errorRows?b.rowEdit.errorRows:[]},flushDirtyRows:function(){return f.flushDirtyRows(b)},setRowsDirty:function(a){f.setRowsDirty(b,a)},setRowsClean:function(a){f.setRowsClean(b,a)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.api.core.on.renderingComplete(a,function(c){b.api.edit.on.afterCellEdit(a,f.endEditCell),b.api.edit.on.beginCellEdit(a,f.beginEditCell),b.api.edit.on.cancelCellEdit(a,f.cancelEditCell),b.api.cellNav&&b.api.cellNav.on.navigate(a,f.navigate)})},defaultGridOptions:function(a){},saveRow:function(a,b){var c=this;return function(){if(b.isSaving=!0,b.rowEditSavePromise)return b.rowEditSavePromise;var d=a.api.rowEdit.raise.saveRow(b.entity);return b.rowEditSavePromise?b.rowEditSavePromise.then(c.processSuccessPromise(a,b),c.processErrorPromise(a,b)):e.logError("A promise was not returned when saveRow event was raised, either nobody is listening to event, or event handler did not return a promise"),d}},setSavePromise:function(a,b,c){var d=a.getRow(b);d.rowEditSavePromise=c},processSuccessPromise:function(a,b){var c=this;return function(){delete b.isSaving,delete b.isDirty,delete b.isError,delete b.rowEditSaveTimer,delete b.rowEditSavePromise,c.removeRow(a.rowEdit.errorRows,b),c.removeRow(a.rowEdit.dirtyRows,b)}},processErrorPromise:function(a,b){return function(){delete b.isSaving,delete b.rowEditSaveTimer,delete b.rowEditSavePromise,b.isError=!0,a.rowEdit.errorRows||(a.rowEdit.errorRows=[]),f.isRowPresent(a.rowEdit.errorRows,b)||a.rowEdit.errorRows.push(b)}},removeRow:function(a,b){"undefined"!=typeof a&&null!==a&&a.forEach(function(c,d){c.uid===b.uid&&a.splice(d,1)})},isRowPresent:function(a,b){var c=!1;return a.forEach(function(a,d){a.uid===b.uid&&(c=!0)}),c},flushDirtyRows:function(a){var c=[];return a.api.rowEdit.getDirtyRows().forEach(function(b){f.saveRow(a,b)(),c.push(b.rowEditSavePromise)}),b.all(c)},endEditCell:function(a,b,c,d){var g=this.grid,h=g.getRow(a);return h?void((c!==d||h.isDirty)&&(g.rowEdit.dirtyRows||(g.rowEdit.dirtyRows=[]),h.isDirty||(h.isDirty=!0,g.rowEdit.dirtyRows.push(h)),delete h.isError,f.considerSetTimer(g,h))):void e.logError("Unable to find rowEntity in grid data, dirty flag cannot be set")},beginEditCell:function(a,b){var c=this.grid,d=c.getRow(a);return d?void f.cancelTimer(c,d):void e.logError("Unable to find rowEntity in grid data, timer cannot be cancelled")},cancelEditCell:function(a,b){var c=this.grid,d=c.getRow(a);return d?void f.considerSetTimer(c,d):void e.logError("Unable to find rowEntity in grid data, timer cannot be set")},navigate:function(a,b){var c=this.grid;a.row.rowEditSaveTimer&&f.cancelTimer(c,a.row),b&&b.row&&b.row!==a.row&&f.considerSetTimer(c,b.row)},considerSetTimer:function(b,c){if(f.cancelTimer(b,c),c.isDirty&&!c.isSaving&&-1!==b.options.rowEditWaitInterval){var d=b.options.rowEditWaitInterval?b.options.rowEditWaitInterval:2e3;c.rowEditSaveTimer=a(f.saveRow(b,c),d,1)}},cancelTimer:function(b,c){c.rowEditSaveTimer&&!c.isSaving&&(a.cancel(c.rowEditSaveTimer),delete c.rowEditSaveTimer)},setRowsDirty:function(a,b){var c;b.forEach(function(b,d){c=a.getRow(b),c?(a.rowEdit.dirtyRows||(a.rowEdit.dirtyRows=[]),c.isDirty||(c.isDirty=!0,a.rowEdit.dirtyRows.push(c)),delete c.isError,f.considerSetTimer(a,c)):e.logError("requested row not found in rowEdit.setRowsDirty, row was: "+b)})},setRowsClean:function(a,b){var c;b.forEach(function(b,d){c=a.getRow(b),c?(delete c.isDirty,f.removeRow(a.rowEdit.dirtyRows,c),f.cancelTimer(a,c),delete c.isError,f.removeRow(a.rowEdit.errorRows,c)):e.logError("requested row not found in rowEdit.setRowsClean, row was: "+b)})}};return f}]),a.directive("uiGridRowEdit",["gridUtil","uiGridRowEditService","uiGridEditConstants",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(a,e.grid)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","gridUtil","$parse",function(a,b,c,d){return{priority:-200,scope:!1,compile:function(a,b){var c=angular.element(a.children().children()[0]),d=c.attr("ng-class"),e="";return e=d?d.slice(0,-1)+", 'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}":"{'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}",c.attr("ng-class",e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.saveState",["ui.grid","ui.grid.selection","ui.grid.cellNav","ui.grid.grouping","ui.grid.pinning","ui.grid.treeView"]);a.constant("uiGridSaveStateConstants",{featureName:"saveState"}),a.service("uiGridSaveStateService",["$q","uiGridSaveStateConstants","gridUtil","$compile","$interval","uiGridConstants",function(a,b,c,d,e,f){var g={initializeGrid:function(a){a.saveState={},this.defaultGridOptions(a.options);var b={events:{saveState:{}},methods:{saveState:{save:function(){return g.save(a)},restore:function(b,c){g.restore(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.saveWidths=a.saveWidths!==!1,a.saveOrder=a.saveOrder!==!1,a.saveScroll=a.saveScroll===!0,a.saveFocus=a.saveScroll!==!0&&a.saveFocus!==!1,a.saveVisible=a.saveVisible!==!1,a.saveSort=a.saveSort!==!1,a.saveFilter=a.saveFilter!==!1,a.saveSelection=a.saveSelection!==!1,a.saveGrouping=a.saveGrouping!==!1,a.saveGroupingExpandedStates=a.saveGroupingExpandedStates===!0,a.savePinning=a.savePinning!==!1,a.saveTreeView=a.saveTreeView!==!1},save:function(a){var b={};return b.columns=g.saveColumns(a),b.scrollFocus=g.saveScrollFocus(a),b.selection=g.saveSelection(a),b.grouping=g.saveGrouping(a),b.treeView=g.saveTreeView(a),b.pagination=g.savePagination(a),b},restore:function(a,b,c){c.columns&&g.restoreColumns(a,c.columns),c.scrollFocus&&g.restoreScrollFocus(a,b,c.scrollFocus),c.selection&&g.restoreSelection(a,c.selection),c.grouping&&g.restoreGrouping(a,c.grouping),c.treeView&&g.restoreTreeView(a,c.treeView),c.pagination&&g.restorePagination(a,c.pagination),a.refresh()},saveColumns:function(a){var b=[];return a.getOnlyDataColumns().forEach(function(c){var d={};d.name=c.name,a.options.saveVisible&&(d.visible=c.visible),a.options.saveWidths&&(d.width=c.width),a.options.saveSort&&(d.sort=angular.copy(c.sort)),a.options.saveFilter&&(d.filters=[],c.filters.forEach(function(a){var b={};angular.forEach(a,function(a,c){"condition"!==c&&"$$hashKey"!==c&&"placeholder"!==c&&(b[c]=a)}),d.filters.push(b)})),a.api.pinning&&a.options.savePinning&&(d.pinned=c.renderContainer?c.renderContainer:""),b.push(d)}),b},saveScrollFocus:function(a){if(!a.api.cellNav)return{};var b={};if(a.options.saveFocus){b.focus=!0;var c=a.api.cellNav.getFocusedCell();null!==c&&(null!==c.col&&(b.colName=c.col.colDef.name),null!==c.row&&(b.rowVal=g.getRowVal(a,c.row)))}return(a.options.saveScroll||a.options.saveFocus&&!b.colName&&!b.rowVal)&&(b.focus=!1,a.renderContainers.body.prevRowScrollIndex&&(b.rowVal=g.getRowVal(a,a.renderContainers.body.visibleRowCache[a.renderContainers.body.prevRowScrollIndex])),a.renderContainers.body.prevColScrollIndex&&(b.colName=a.renderContainers.body.visibleColumnCache[a.renderContainers.body.prevColScrollIndex].name)),b},saveSelection:function(a){if(!a.api.selection||!a.options.saveSelection)return[];var b=a.api.selection.getSelectedGridRows().map(function(b){return g.getRowVal(a,b)});return b},saveGrouping:function(a){return a.api.grouping&&a.options.saveGrouping?a.api.grouping.getGrouping(a.options.saveGroupingExpandedStates):{}},savePagination:function(a){return a.api.pagination&&a.options.paginationPageSize?{paginationCurrentPage:a.options.paginationCurrentPage,paginationPageSize:a.options.paginationPageSize}:{}},saveTreeView:function(a){return a.api.treeView&&a.options.saveTreeView?a.api.treeView.getTreeView():{}},getRowVal:function(a,b){if(!b)return null;var c={};return a.options.saveRowIdentity?(c.identity=!0,c.row=a.options.saveRowIdentity(b.entity)):(c.identity=!1,c.row=a.renderContainers.body.visibleRowCache.indexOf(b)),c},restoreColumns:function(a,b){var c=!1;b.forEach(function(b,d){var e=a.getColumn(b.name);if(e&&!a.isRowHeaderColumn(e)){!a.options.saveVisible||e.visible===b.visible&&e.colDef.visible===b.visible||(e.visible=b.visible,e.colDef.visible=b.visible,a.api.core.raise.columnVisibilityChanged(e)),a.options.saveWidths&&e.width!==b.width&&(e.width=b.width,e.hasCustomWidth=!0),!a.options.saveSort||angular.equals(e.sort,b.sort)||void 0===e.sort&&angular.isEmpty(b.sort)||(e.sort=angular.copy(b.sort),c=!0),a.options.saveFilter&&!angular.equals(e.filters,b.filters)&&(b.filters.forEach(function(a,b){angular.extend(e.filters[b],a),"undefined"!=typeof a.term&&null!==a.term||delete e.filters[b].term}),a.api.core.raise.filterChanged()),a.api.pinning&&a.options.savePinning&&e.renderContainer!==b.pinned&&a.api.pinning.pinColumn(e,b.pinned);var f=a.getOnlyDataColumns().indexOf(e);if(-1!==f&&a.options.saveOrder&&f!==d){var g=a.columns.splice(f+a.rowHeaderColumns.length,1)[0];a.columns.splice(d+a.rowHeaderColumns.length,0,g)}}}),c&&a.api.core.raise.sortChanged(a,a.getColumnSorting())},restoreScrollFocus:function(a,b,c){if(a.api.cellNav){var d,e;if(c.colName){var f=a.options.columnDefs.filter(function(a){return a.name===c.colName});f.length>0&&(d=f[0])}c.rowVal&&c.rowVal.row&&(e=c.rowVal.identity?g.findRowByIdentity(a,c.rowVal):a.renderContainers.body.visibleRowCache[c.rowVal.row]);var h=e&&e.entity?e.entity:null;(d||h)&&(c.focus?a.api.cellNav.scrollToFocus(h,d):a.scrollTo(h,d))}},restoreSelection:function(a,b){a.api.selection&&(a.api.selection.clearSelectedRows(),b.forEach(function(b){if(b.identity){var c=g.findRowByIdentity(a,b);c&&a.api.selection.selectRow(c.entity)}else a.api.selection.selectRowByVisibleIndex(b.row)}))},restoreGrouping:function(a,b){a.api.grouping&&"undefined"!=typeof b&&null!==b&&!angular.equals(b,{})&&a.api.grouping.setGrouping(b)},restoreTreeView:function(a,b){a.api.treeView&&"undefined"!=typeof b&&null!==b&&!angular.equals(b,{})&&a.api.treeView.setTreeView(b)},restorePagination:function(a,b){a.api.pagination&&a.options.paginationPageSize&&(a.options.paginationCurrentPage=b.paginationCurrentPage,a.options.paginationPageSize=b.paginationPageSize)},findRowByIdentity:function(a,b){if(!a.options.saveRowIdentity)return null;var c=a.rows.filter(function(c){return a.options.saveRowIdentity(c.entity)===b.row});return c.length>0?c[0]:null}};return g}]),a.directive("uiGridSaveState",["uiGridSaveStateConstants","uiGridSaveStateService","gridUtil","$compile",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(a,c,d,e){b.initializeGrid(e.grid)}}}])}(),function(){"use strict";var a=angular.module("ui.grid.selection",["ui.grid"]);a.constant("uiGridSelectionConstants",{featureName:"selection",selectionRowHeaderColName:"selectionRowHeaderCol"}),angular.module("ui.grid").config(["$provide",function(a){a.decorator("GridRow",["$delegate",function(a){return a.prototype.setSelected=function(a){this.isSelected=a,a?this.grid.selection.selectedCount++:this.grid.selection.selectedCount--},a}])}]),a.service("uiGridSelectionService",["$q","$templateCache","uiGridSelectionConstants","gridUtil",function(a,b,c,d){var e={initializeGrid:function(a){a.selection={},a.selection.lastSelectedRow=null,a.selection.selectAll=!1,a.selection.selectedCount=0,e.defaultGridOptions(a.options);var b={events:{selection:{rowSelectionChanged:function(a,b,c){},rowSelectionChangedBatch:function(a,b,c){}}},methods:{selection:{toggleRowSelection:function(b,c){var d=a.getRow(b);null!==d&&e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},selectRow:function(b,c){var d=a.getRow(b);null===d||d.isSelected||e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},selectRowByVisibleIndex:function(b,c){var d=a.renderContainers.body.visibleRowCache[b];null===d||"undefined"==typeof d||d.isSelected||e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},unSelectRow:function(b,c){var d=a.getRow(b);null!==d&&d.isSelected&&e.toggleRowSelection(a,d,c,a.options.multiSelect,a.options.noUnselect)},selectAllRows:function(b){if(a.options.multiSelect!==!1){var c=[];a.rows.forEach(function(d){d.isSelected||d.enableSelection===!1||(d.setSelected(!0),e.decideRaiseSelectionEvent(a,d,c,b))}),e.decideRaiseSelectionBatchEvent(a,c,b),a.selection.selectAll=!0}},selectAllVisibleRows:function(b){if(a.options.multiSelect!==!1){var c=[];a.rows.forEach(function(d){d.visible?d.isSelected||d.enableSelection===!1||(d.setSelected(!0),e.decideRaiseSelectionEvent(a,d,c,b)):d.isSelected&&(d.setSelected(!1),e.decideRaiseSelectionEvent(a,d,c,b))}),e.decideRaiseSelectionBatchEvent(a,c,b),a.selection.selectAll=!0}},clearSelectedRows:function(b){e.clearSelectedRows(a,b)},getSelectedRows:function(){return e.getSelectedRows(a).map(function(a){return a.entity})},getSelectedGridRows:function(){return e.getSelectedRows(a)},getSelectedCount:function(){return a.selection.selectedCount},setMultiSelect:function(b){a.options.multiSelect=b},setModifierKeysToMultiSelect:function(b){a.options.modifierKeysToMultiSelect=b},getSelectAllState:function(){return a.selection.selectAll}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.enableRowSelection=a.enableRowSelection!==!1,a.multiSelect=a.multiSelect!==!1,a.noUnselect=a.noUnselect===!0,a.modifierKeysToMultiSelect=a.modifierKeysToMultiSelect===!0,a.enableRowHeaderSelection=a.enableRowHeaderSelection!==!1,"undefined"==typeof a.enableFullRowSelection&&(a.enableFullRowSelection=!a.enableRowHeaderSelection),a.enableSelectAll=a.enableSelectAll!==!1,a.enableSelectionBatchEvent=a.enableSelectionBatchEvent!==!1,a.selectionRowHeaderWidth=angular.isDefined(a.selectionRowHeaderWidth)?a.selectionRowHeaderWidth:30,a.enableFooterTotalSelected=a.enableFooterTotalSelected!==!1,a.isRowSelectable=angular.isDefined(a.isRowSelectable)?a.isRowSelectable:angular.noop},toggleRowSelection:function(a,b,c,d,f){var g=b.isSelected;if(b.enableSelection!==!1||g){var h;d||g?!d&&g&&(h=e.getSelectedRows(a),h.length>1&&(g=!1,e.clearSelectedRows(a,c))):e.clearSelectedRows(a,c),g&&f||(b.setSelected(!g),b.isSelected===!0&&(a.selection.lastSelectedRow=b),h=e.getSelectedRows(a),a.selection.selectAll=a.rows.length===h.length,a.api.selection.raise.rowSelectionChanged(b,c))}},shiftSelect:function(a,b,c,d){if(d){var f=e.getSelectedRows(a),g=f.length>0?a.renderContainers.body.visibleRowCache.indexOf(a.selection.lastSelectedRow):0,h=a.renderContainers.body.visibleRowCache.indexOf(b);if(g>h){var i=g;g=h,h=i}for(var j=[],k=g;h>=k;k++){var l=a.renderContainers.body.visibleRowCache[k];l&&(l.isSelected||l.enableSelection===!1||(l.setSelected(!0),a.selection.lastSelectedRow=l,e.decideRaiseSelectionEvent(a,l,j,c)))}e.decideRaiseSelectionBatchEvent(a,j,c)}},getSelectedRows:function(a){return a.rows.filter(function(a){return a.isSelected})},clearSelectedRows:function(a,b){var c=[];e.getSelectedRows(a).forEach(function(d){d.isSelected&&(d.setSelected(!1),e.decideRaiseSelectionEvent(a,d,c,b))}),e.decideRaiseSelectionBatchEvent(a,c,b),a.selection.selectAll=!1,a.selection.selectedCount=0},decideRaiseSelectionEvent:function(a,b,c,d){a.options.enableSelectionBatchEvent?c.push(b):a.api.selection.raise.rowSelectionChanged(b,d)},decideRaiseSelectionBatchEvent:function(a,b,c){b.length>0&&a.api.selection.raise.rowSelectionChangedBatch(b,c)}};return e}]),a.directive("uiGridSelection",["uiGridSelectionConstants","uiGridSelectionService","$templateCache","uiGridConstants",function(a,b,c,d){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(c,e,f,g){if(b.initializeGrid(g.grid),g.grid.options.enableRowHeaderSelection){var h={name:a.selectionRowHeaderColName,displayName:"",width:g.grid.options.selectionRowHeaderWidth,minWidth:10,cellTemplate:"ui-grid/selectionRowHeader",headerCellTemplate:"ui-grid/selectionHeaderCell",enableColumnResizing:!1,enableColumnMenu:!1,exporterSuppressExport:!0,allowCellFocus:!0};g.grid.addRowHeaderColumn(h)}var i=!1,j=function(a){return a.forEach(function(a){a.enableSelection=g.grid.options.isRowSelectable(a)}),a},k=function(){g.grid.options.isRowSelectable!==angular.noop&&i!==!0&&(g.grid.registerRowsProcessor(j,500),i=!0)};k();var l=g.grid.registerDataChangeCallback(k,[d.dataChange.OPTIONS]);c.$on("$destroy",l)},post:function(a,b,c,d){}}}}}]),a.directive("uiGridSelectionRowHeaderButtons",["$templateCache","uiGridSelectionService","gridUtil",function(a,b,c){return{replace:!0,restrict:"E",template:a.get("ui-grid/selectionRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(a,d,e,f){function g(a,c){c.stopPropagation(),c.shiftKey?b.shiftSelect(i,a,c,i.options.multiSelect):c.ctrlKey||c.metaKey?b.toggleRowSelection(i,a,c,i.options.multiSelect,i.options.noUnselect):b.toggleRowSelection(i,a,c,i.options.multiSelect&&!i.options.modifierKeysToMultiSelect,i.options.noUnselect)}function h(a){(a.ctrlKey||a.shiftKey)&&(a.target.onselectstart=function(){return!1},window.setTimeout(function(){a.target.onselectstart=null},0))}var i=f.grid;a.selectButtonClick=g,"ie"===c.detectBrowser()&&d.on("mousedown",h)}}}]),a.directive("uiGridSelectionSelectAllButtons",["$templateCache","uiGridSelectionService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/selectionSelectAllButtons"),scope:!1,link:function(a,c,d,e){var f=a.col.grid;a.headerButtonClick=function(a,c){f.selection.selectAll?(b.clearSelectedRows(f,c),f.options.noUnselect&&f.api.selection.selectRowByVisibleIndex(0,c),f.selection.selectAll=!1):f.options.multiSelect&&(f.api.selection.selectAllVisibleRows(c),f.selection.selectAll=!0)}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","uiGridSelectionConstants","gridUtil","$parse","uiGridSelectionService",function(a,b,c,d,e,f){return{priority:-200,scope:!1,compile:function(a,b){var c=angular.element(a.children().children()[0]),d=c.attr("ng-class"),e="";return e=d?d.slice(0,-1)+",'ui-grid-row-selected': row.isSelected}":"{'ui-grid-row-selected': row.isSelected}",c.attr("ng-class",e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}]),a.directive("uiGridCell",["$compile","uiGridConstants","uiGridSelectionConstants","gridUtil","$parse","uiGridSelectionService","$timeout",function(a,b,c,d,e,f,g){return{priority:-200,restrict:"A",require:"?^uiGrid",scope:!1,link:function(a,c,d,e){function h(){a.grid.options.enableRowSelection&&a.grid.options.enableFullRowSelection&&(c.addClass("ui-grid-disable-selection"),c.on("touchstart",m),c.on("touchend",n),c.on("click",l),a.registered=!0)}function i(){a.registered&&(c.removeClass("ui-grid-disable-selection"),c.off("touchstart",m),c.off("touchend",n),c.off("click",l),a.registered=!1)}var j=0,k=300;e.grid.api.cellNav&&e.grid.api.cellNav.on.viewPortKeyDown(a,function(b,c){null!==c&&c.row===a.row&&c.col===a.col&&32===b.keyCode&&"selectionRowHeaderCol"===a.col.colDef.name&&(f.toggleRowSelection(a.grid,a.row,b,a.grid.options.multiSelect&&!a.grid.options.modifierKeysToMultiSelect,a.grid.options.noUnselect),a.$apply())});var l=function(b){c.off("touchend",n),b.shiftKey?f.shiftSelect(a.grid,a.row,b,a.grid.options.multiSelect):b.ctrlKey||b.metaKey?f.toggleRowSelection(a.grid,a.row,b,a.grid.options.multiSelect,a.grid.options.noUnselect):f.toggleRowSelection(a.grid,a.row,b,a.grid.options.multiSelect&&!a.grid.options.modifierKeysToMultiSelect,a.grid.options.noUnselect),a.$apply(),g(function(){c.on("touchend",n)},k)},m=function(a){j=(new Date).getTime(),c.off("click",l)},n=function(a){var b=(new Date).getTime(),d=b-j;k>d&&l(a),g(function(){c.on("click",l)},k)};h();var o=a.grid.registerDataChangeCallback(function(){a.grid.options.enableRowSelection&&a.grid.options.enableFullRowSelection&&!a.registered?h():a.grid.options.enableRowSelection&&a.grid.options.enableFullRowSelection||!a.registered||i()},[b.dataChange.OPTIONS]);c.on("$destroy",o)}}}]),a.directive("uiGridGridFooter",["$compile","uiGridConstants","gridUtil",function(a,b,c){return{restrict:"EA",replace:!0,priority:-1e3,require:"^uiGrid",scope:!0,compile:function(b,d){return{pre:function(b,d,e,f){f.grid.options.showGridFooter&&c.getTemplate("ui-grid/gridFooterSelectedItems").then(function(c){var e=angular.element(c),f=a(e)(b);angular.element(d[0].getElementsByClassName("ui-grid-grid-footer")[0]).append(f)})},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.treeBase",["ui.grid"]);a.constant("uiGridTreeBaseConstants",{featureName:"treeBase",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),a.service("uiGridTreeBaseService",["$q","uiGridTreeBaseConstants","gridUtil","GridRow","gridClassFactory","i18nService","uiGridConstants","rowSorter",function(a,b,c,d,e,f,g,h){
+var i={initializeGrid:function(a,b){a.treeBase={},a.treeBase.numberLevels=0,a.treeBase.expandAll=!1,a.treeBase.tree=[],i.defaultGridOptions(a.options),a.registerRowsProcessor(i.treeRows,410),a.registerColumnBuilder(i.treeBaseColumnBuilder),i.createRowHeader(a);var c={events:{treeBase:{rowExpanded:{},rowCollapsed:{}}},methods:{treeBase:{expandAllRows:function(){i.expandAllRows(a)},collapseAllRows:function(){i.collapseAllRows(a)},toggleRowTreeState:function(b){i.toggleRowTreeState(a,b)},expandRow:function(b){i.expandRow(a,b)},expandRowChildren:function(b){i.expandRowChildren(a,b)},collapseRow:function(b){i.collapseRow(a,b)},collapseRowChildren:function(b){i.collapseRowChildren(a,b)},getTreeExpandedState:function(){return{expandedState:i.getTreeState(a)}},setTreeState:function(b){i.setTreeState(a,b)},getRowChildren:function(a){return a.treeNode.children.map(function(a){return a.row})}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.treeRowHeaderBaseWidth=a.treeRowHeaderBaseWidth||30,a.treeIndent=a.treeIndent||10,a.showTreeRowHeader=a.showTreeRowHeader!==!1,a.showTreeExpandNoChildren=a.showTreeExpandNoChildren!==!1,a.treeRowHeaderAlwaysVisible=a.treeRowHeaderAlwaysVisible!==!1,a.treeCustomAggregations=a.treeCustomAggregations||{},a.enableExpandAll=a.enableExpandAll!==!1},treeBaseColumnBuilder:function(a,b,c){"undefined"!=typeof a.customTreeAggregationFn&&(b.treeAggregationFn=a.customTreeAggregationFn),"undefined"!=typeof a.treeAggregationType&&(b.treeAggregation={type:a.treeAggregationType},"undefined"!=typeof c.treeCustomAggregations[a.treeAggregationType]?(b.treeAggregationFn=c.treeCustomAggregations[a.treeAggregationType].aggregationFn,b.treeAggregationFinalizerFn=c.treeCustomAggregations[a.treeAggregationType].finalizerFn,b.treeAggregation.label=c.treeCustomAggregations[a.treeAggregationType].label):"undefined"!=typeof i.nativeAggregations()[a.treeAggregationType]&&(b.treeAggregationFn=i.nativeAggregations()[a.treeAggregationType].aggregationFn,b.treeAggregation.label=i.nativeAggregations()[a.treeAggregationType].label)),"undefined"!=typeof a.treeAggregationLabel&&("undefined"==typeof b.treeAggregation&&(b.treeAggregation={}),b.treeAggregation.label=a.treeAggregationLabel),b.treeAggregationUpdateEntity=a.treeAggregationUpdateEntity!==!1,"undefined"==typeof b.customTreeAggregationFinalizerFn&&(b.customTreeAggregationFinalizerFn=a.customTreeAggregationFinalizerFn)},createRowHeader:function(a){var c={name:b.rowHeaderColName,displayName:"",width:a.options.treeRowHeaderBaseWidth,minWidth:10,cellTemplate:"ui-grid/treeBaseRowHeader",headerCellTemplate:"ui-grid/treeBaseHeaderCell",enableColumnResizing:!1,enableColumnMenu:!1,exporterSuppressExport:!0,allowCellFocus:!0};c.visible=a.options.treeRowHeaderAlwaysVisible,a.addRowHeaderColumn(c)},expandAllRows:function(a){a.treeBase.tree.forEach(function(c){i.setAllNodes(a,c,b.EXPANDED)}),a.treeBase.expandAll=!0,a.queueGridRefresh()},collapseAllRows:function(a){a.treeBase.tree.forEach(function(c){i.setAllNodes(a,c,b.COLLAPSED)}),a.treeBase.expandAll=!1,a.queueGridRefresh()},setAllNodes:function(a,c,d){"undefined"!=typeof c.state&&c.state!==d&&(c.state=d,d===b.EXPANDED?a.api.treeBase.raise.rowExpanded(c.row):a.api.treeBase.raise.rowCollapsed(c.row)),c.children&&c.children.forEach(function(b){i.setAllNodes(a,b,d)})},toggleRowTreeState:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||(c.treeNode.state===b.EXPANDED?i.collapseRow(a,c):i.expandRow(a,c),a.queueGridRefresh())},expandRow:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||c.treeNode.state!==b.EXPANDED&&(c.treeNode.state=b.EXPANDED,a.api.treeBase.raise.rowExpanded(c),a.treeBase.expandAll=i.allExpanded(a.treeBase.tree),a.queueGridRefresh())},expandRowChildren:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||(i.setAllNodes(a,c.treeNode,b.EXPANDED),a.treeBase.expandAll=i.allExpanded(a.treeBase.tree),a.queueGridRefresh())},collapseRow:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||c.treeNode.state!==b.COLLAPSED&&(c.treeNode.state=b.COLLAPSED,a.treeBase.expandAll=!1,a.api.treeBase.raise.rowCollapsed(c),a.queueGridRefresh())},collapseRowChildren:function(a,c){"undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0||(i.setAllNodes(a,c.treeNode,b.COLLAPSED),a.treeBase.expandAll=!1,a.queueGridRefresh())},allExpanded:function(a){var b=!0;return a.forEach(function(a){i.allExpandedInternal(a)||(b=!1)}),b},allExpandedInternal:function(a){if(a.children&&a.children.length>0){if(a.state===b.COLLAPSED)return!1;var c=!0;return a.children.forEach(function(a){i.allExpandedInternal(a)||(c=!1)}),c}return!0},treeRows:function(a){if(0===a.length)return a;var c=this;b.EXPANDED;return c.treeBase.tree=i.createTree(c,a),i.updateRowHeaderWidth(c),i.sortTree(c),i.fixFilter(c),i.renderTree(c.treeBase.tree)},updateRowHeaderWidth:function(a){var c=a.getColumn(b.rowHeaderColName),d=a.options.treeRowHeaderBaseWidth+a.options.treeIndent*Math.max(a.treeBase.numberLevels-1,0);c&&d!==c.width&&(c.width=d,a.queueRefresh());var e=!0;a.options.showTreeRowHeader===!1&&(e=!1),a.options.treeRowHeaderAlwaysVisible===!1&&a.treeBase.numberLevels<=0&&(e=!1),c.visible!==e&&(c.visible=e,c.colDef.visible=e,a.queueGridRefresh())},renderTree:function(a){var c=[];return a.forEach(function(a){a.row.visible&&c.push(a.row),a.state===b.EXPANDED&&a.children&&a.children.length>0&&(c=c.concat(i.renderTree(a.children)))}),c},createTree:function(a,c){var d,e=-1,f=[];a.treeBase.tree=[],a.treeBase.numberLevels=0;var g=i.getAggregations(a),h=function(c){if("undefined"!=typeof c.entity.$$treeLevel&&c.treeLevel!==c.entity.$$treeLevel&&(c.treeLevel=c.entity.$$treeLevel),c.treeLevel<=e){for(;c.treeLevel<=e;){var h=f.pop();i.finaliseAggregations(h),e--}d=f.length>0?i.setCurrentState(f):b.EXPANDED}("undefined"==typeof c.treeLevel||null===c.treeLevel||c.treeLevel<0)&&c.visible&&i.aggregate(a,c,f),i.addOrUseNode(a,c,f,g),"undefined"!=typeof c.treeLevel&&null!==c.treeLevel&&c.treeLevel>=0&&(f.push(c),e++,d=i.setCurrentState(f)),a.treeBase.numberLevels<c.treeLevel+1&&(a.treeBase.numberLevels=c.treeLevel+1)};for(c.forEach(h);f.length>0;){var j=f.pop();i.finaliseAggregations(j)}return a.treeBase.tree},addOrUseNode:function(a,c,d,e){var f=[];e.forEach(function(a){f.push(i.buildAggregationObject(a.col))});var g={state:b.COLLAPSED,row:c,parentRow:null,aggregations:f,children:[]};c.treeNode&&(g.state=c.treeNode.state),d.length>0&&(g.parentRow=d[d.length-1]),c.treeNode=g,0===d.length?a.treeBase.tree.push(g):d[d.length-1].treeNode.children.push(g)},setCurrentState:function(a){var c=b.EXPANDED;return a.forEach(function(a){a.treeNode.state===b.COLLAPSED&&(c=b.COLLAPSED)}),c},sortTree:function(a){a.columns.forEach(function(a){a.sort&&a.sort.ignoreSort&&delete a.sort.ignoreSort}),a.treeBase.tree=i.sortInternal(a,a.treeBase.tree)},sortInternal:function(a,c){var d=c.map(function(a){return a.row});d=h.sort(a,d,a.columns);var e=d.map(function(a){return a.treeNode});return e.forEach(function(c){c.state===b.EXPANDED&&c.children&&c.children.length>0&&(c.children=i.sortInternal(a,c.children))}),e},fixFilter:function(a){var b;a.treeBase.tree.forEach(function(a){a.children&&a.children.length>0&&(b=a.row.visible,i.fixFilterInternal(a.children,b))})},fixFilterInternal:function(a,b){return a.forEach(function(a){a.row.visible&&!b&&(i.setParentsVisible(a),b=!0),a.children&&a.children.length>0&&i.fixFilterInternal(a.children,b&&a.row.visible)&&(b=!0)}),b},setParentsVisible:function(a){for(;a.parentRow;)a.parentRow.visible=!0,a=a.parentRow.treeNode},buildAggregationObject:function(a){var b={col:a};return a.treeAggregation&&a.treeAggregation.type&&(b.type=a.treeAggregation.type),a.treeAggregation&&a.treeAggregation.label&&(b.label=a.treeAggregation.label),b},getAggregations:function(a){var b=[];return a.columns.forEach(function(c){"undefined"!=typeof c.treeAggregationFn&&(b.push(i.buildAggregationObject(c)),a.options.showColumnFooter&&"undefined"==typeof c.colDef.aggregationType&&c.treeAggregation&&(c.treeFooterAggregation=i.buildAggregationObject(c),c.aggregationType=i.treeFooterAggregationType))}),b},aggregate:function(a,b,c){0===c.length&&b.treeNode&&b.treeNode.aggregations&&b.treeNode.aggregations.forEach(function(c){if("undefined"!=typeof c.col.treeFooterAggregation){var d=a.getCellValue(b,c.col),e=Number(d);c.col.treeAggregationFn(c.col.treeFooterAggregation,d,e,b)}}),c.forEach(function(c,d){c.treeNode.aggregations&&c.treeNode.aggregations.forEach(function(c){var e=a.getCellValue(b,c.col),f=Number(e);c.col.treeAggregationFn(c,e,f,b),0===d&&"undefined"!=typeof c.col.treeFooterAggregation&&c.col.treeAggregationFn(c.col.treeFooterAggregation,e,f,b)})})},nativeAggregations:function(){var a={count:{label:f.get().aggregation.count,menuTitle:f.get().grouping.aggregate_count,aggregationFn:function(a,b,c){"undefined"==typeof a.value?a.value=1:a.value++}},sum:{label:f.get().aggregation.sum,menuTitle:f.get().grouping.aggregate_sum,aggregationFn:function(a,b,c){isNaN(c)||("undefined"==typeof a.value?a.value=c:a.value+=c)}},min:{label:f.get().aggregation.min,menuTitle:f.get().grouping.aggregate_min,aggregationFn:function(a,b,c){"undefined"==typeof a.value?a.value=b:"undefined"!=typeof b&&null!==b&&(b<a.value||null===a.value)&&(a.value=b)}},max:{label:f.get().aggregation.max,menuTitle:f.get().grouping.aggregate_max,aggregationFn:function(a,b,c){"undefined"==typeof a.value?a.value=b:"undefined"!=typeof b&&null!==b&&(b>a.value||null===a.value)&&(a.value=b)}},avg:{label:f.get().aggregation.avg,menuTitle:f.get().grouping.aggregate_avg,aggregationFn:function(a,b,c){"undefined"==typeof a.count?a.count=1:a.count++,isNaN(c)||("undefined"==typeof a.value||"undefined"==typeof a.sum?(a.value=c,a.sum=c):(a.sum+=c,a.value=a.sum/a.count))}}};return a},finaliseAggregation:function(a,b){b.col.treeAggregationUpdateEntity&&"undefined"!=typeof a&&"undefined"!=typeof a.entity["$$"+b.col.uid]&&angular.extend(b,a.entity["$$"+b.col.uid]),"function"==typeof b.col.treeAggregationFinalizerFn&&b.col.treeAggregationFinalizerFn(b),"function"==typeof b.col.customTreeAggregationFinalizerFn&&b.col.customTreeAggregationFinalizerFn(b),"undefined"==typeof b.rendered&&(b.rendered=b.label?b.label+b.value:b.value)},finaliseAggregations:function(a){"undefined"!=typeof a.treeNode.aggregations&&a.treeNode.aggregations.forEach(function(b){if(i.finaliseAggregation(a,b),b.col.treeAggregationUpdateEntity){var c={};angular.forEach(b,function(a,d){b.hasOwnProperty(d)&&"col"!==d&&(c[d]=a)}),a.entity["$$"+b.col.uid]=c}})},treeFooterAggregationType:function(a,b){return i.finaliseAggregation(void 0,b.treeFooterAggregation),"undefined"==typeof b.treeFooterAggregation.value||null===b.treeFooterAggregation.rendered?"":b.treeFooterAggregation.rendered}};return i}]),a.directive("uiGridTreeBaseRowHeaderButtons",["$templateCache","uiGridTreeBaseService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/treeBaseRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(a,c,d,e){var f=e.grid;a.treeButtonClick=function(a,c){b.toggleRowTreeState(f,a,c)}}}}]),a.directive("uiGridTreeBaseExpandAllButtons",["$templateCache","uiGridTreeBaseService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/treeBaseExpandAllButtons"),scope:!1,link:function(a,c,d,e){var f=a.col.grid;a.headerButtonClick=function(a,c){f.treeBase.expandAll?b.collapseAllRows(f,c):b.expandAllRows(f,c)}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","gridUtil","$parse",function(a,b,c,d){return{priority:-200,scope:!1,compile:function(a,b){var c=angular.element(a.children().children()[0]),d=c.attr("ng-class"),e="";return e=d?d.slice(0,-1)+",'ui-grid-tree-header-row': row.treeLevel > -1}":"{'ui-grid-tree-header-row': row.treeLevel > -1}",c.attr("ng-class",e),{pre:function(a,b,c,d){},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.treeView",["ui.grid","ui.grid.treeBase"]);a.constant("uiGridTreeViewConstants",{featureName:"treeView",rowHeaderColName:"treeBaseRowHeaderCol",EXPANDED:"expanded",COLLAPSED:"collapsed",aggregation:{COUNT:"count",SUM:"sum",MAX:"max",MIN:"min",AVG:"avg"}}),a.service("uiGridTreeViewService",["$q","uiGridTreeViewConstants","uiGridTreeBaseConstants","uiGridTreeBaseService","gridUtil","GridRow","gridClassFactory","i18nService","uiGridConstants",function(a,b,c,d,e,f,g,h,i){var j={initializeGrid:function(a,b){d.initializeGrid(a,b),a.treeView={},a.registerRowsProcessor(j.adjustSorting,60);var c={events:{treeView:{}},methods:{treeView:{}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.enableTreeView=a.enableTreeView!==!1},adjustSorting:function(a){var b=this;return b.columns.forEach(function(a){a.sort&&(a.sort.ignoreSort=!0)}),a}};return j}]),a.directive("uiGridTreeView",["uiGridTreeViewConstants","uiGridTreeViewService","$templateCache",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){e.grid.options.enableTreeView!==!1&&b.initializeGrid(e.grid,a)},post:function(a,b,c,d){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.validate",["ui.grid"]);a.service("uiGridValidateService",["$sce","$q","$http","i18nService","uiGridConstants",function(a,b,c,d,e){var f={validatorFactories:{},setExternalFactoryFunction:function(a){f.externalFactoryFunction=a},clearExternalFactory:function(){delete f.externalFactoryFunction},getValidatorFromExternalFactory:function(a,b){return f.externalFactoryFunction(a,b).validatorFactory(b)},getMessageFromExternalFactory:function(a,b){return f.externalFactoryFunction(a,b).messageFunction(b)},setValidator:function(a,b,c){f.validatorFactories[a]={validatorFactory:b,messageFunction:c}},getValidator:function(a,b){if(f.externalFactoryFunction){var c=f.getValidatorFromExternalFactory(a,b);if(c)return c}if(!f.validatorFactories[a])throw"Invalid validator name: "+a;return f.validatorFactories[a].validatorFactory(b)},getMessage:function(a,b){if(f.externalFactoryFunction){var c=f.getMessageFromExternalFactory(a,b);if(c)return c}return f.validatorFactories[a].messageFunction(b)},isInvalid:function(a,b){return a["$$invalid"+b.name]},setInvalid:function(a,b){a["$$invalid"+b.name]=!0},setValid:function(a,b){delete a["$$invalid"+b.name]},setError:function(a,b,c){a["$$errors"+b.name]||(a["$$errors"+b.name]={}),a["$$errors"+b.name][c]=!0},clearError:function(a,b,c){a["$$errors"+b.name]&&c in a["$$errors"+b.name]&&delete a["$$errors"+b.name][c]},getErrorMessages:function(a,b){var c=[];return a["$$errors"+b.name]&&0!==Object.keys(a["$$errors"+b.name]).length?(Object.keys(a["$$errors"+b.name]).sort().forEach(function(a){c.push(f.getMessage(a,b.validators[a]))}),c):c},getFormattedErrors:function(b,c){var e="",g=f.getErrorMessages(b,c);return g.length?(g.forEach(function(a){e+=a+"<br/>"}),a.trustAsHtml("<p><b>"+d.getSafeText("validate.error")+"</b></p>"+e)):void 0},getTitleFormattedErrors:function(b,c){var e="\n",g="",h=f.getErrorMessages(b,c);return h.length?(h.forEach(function(a){g+=a+e}),a.trustAsHtml(d.getSafeText("validate.error")+e+g)):void 0},runValidators:function(a,c,d,e,g){if(d!==e){if("undefined"==typeof c.name||!c.name)throw new Error("colDef.name is required to perform validation");f.setValid(a,c);var h=function(a,b,c){return function(h){h||(f.setInvalid(a,b),f.setError(a,b,c),g&&g.api.validate.raise.validationFailed(a,b,d,e))}};for(var i in c.validators){f.clearError(a,c,i);var j=f.getValidator(i,c.validators[i]);b.when(j(e,d,a,c)).then(h(a,c,i))}}},createDefaultValidators:function(){f.setValidator("minLength",function(a){return function(b,c,d,e){return void 0===c||null===c||""===c?!0:c.length>=a}},function(a){return d.getSafeText("validate.minLength").replace("THRESHOLD",a)}),f.setValidator("maxLength",function(a){return function(b,c,d,e){return void 0===c||null===c||""===c?!0:c.length<=a}},function(a){return d.getSafeText("validate.maxLength").replace("THRESHOLD",a)}),f.setValidator("required",function(a){return function(b,c,d,e){return a?!(void 0===c||null===c||""===c):!0}},function(a){return d.getSafeText("validate.required")})},initializeGrid:function(a,b){b.validate={isInvalid:f.isInvalid,getFormattedErrors:f.getFormattedErrors,getTitleFormattedErrors:f.getTitleFormattedErrors,runValidators:f.runValidators};var c={events:{validate:{validationFailed:function(a,b,c,d){}}},methods:{validate:{isInvalid:function(a,c){return b.validate.isInvalid(a,c)},getErrorMessages:function(a,c){return b.validate.getErrorMessages(a,c)},getFormattedErrors:function(a,c){return b.validate.getFormattedErrors(a,c)},getTitleFormattedErrors:function(a,c){return b.validate.getTitleFormattedErrors(a,c)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.edit&&b.api.edit.on.afterCellEdit(a,function(a,c,d,e){b.validate.runValidators(a,c,d,e,b)}),f.createDefaultValidators()}};return f}]),a.directive("uiGridValidate",["gridUtil","uiGridValidateService",function(a,b){return{priority:0,replace:!0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(a,e.grid)},post:function(a,b,c,d){}}}}}])}(),angular.module("ui.grid").run(["$templateCache",function(a){"use strict";a.put("ui-grid/ui-grid-filter",'<div class="ui-grid-filter-container" ng-repeat="colFilter in col.filters" ng-class="{\'ui-grid-filter-cancel-button-hidden\' : colFilter.disableCancelFilterButton === true }"><div ng-if="colFilter.type !== \'select\'"><input type="text" class="ui-grid-filter-input ui-grid-filter-input-{{$index}}" ng-model="colFilter.term" ng-attr-placeholder="{{colFilter.placeholder || \'\'}}" aria-label="{{colFilter.ariaLabel || aria.defaultFilterLabel}}"><div role="button" class="ui-grid-filter-button" ng-click="removeFilter(colFilter, $index)" ng-if="!colFilter.disableCancelFilterButton" ng-disabled="colFilter.term === undefined || colFilter.term === null || colFilter.term === \'\'" ng-show="colFilter.term !== undefined && colFilter.term !== null && colFilter.term !== \'\'"><i class="ui-grid-icon-cancel" ui-grid-one-bind-aria-label="aria.removeFilter">&nbsp;</i></div></div><div ng-if="colFilter.type === \'select\'"><select class="ui-grid-filter-select ui-grid-filter-input-{{$index}}" ng-model="colFilter.term" ng-attr-placeholder="{{colFilter.placeholder || aria.defaultFilterLabel}}" aria-label="{{colFilter.ariaLabel || \'\'}}" ng-options="option.value as option.label for option in colFilter.selectOptions"><option value=""></option></select><div role="button" class="ui-grid-filter-button-select" ng-click="removeFilter(colFilter, $index)" ng-if="!colFilter.disableCancelFilterButton" ng-disabled="colFilter.term === undefined || colFilter.term === null || colFilter.term === \'\'" ng-show="colFilter.term !== undefined && colFilter.term != null"><i class="ui-grid-icon-cancel" ui-grid-one-bind-aria-label="aria.removeFilter">&nbsp;</i></div></div></div>'),a.put("ui-grid/ui-grid-footer",'<div class="ui-grid-footer-panel ui-grid-footer-aggregates-row"><!-- tfooter --><div class="ui-grid-footer ui-grid-footer-viewport"><div class="ui-grid-footer-canvas"><div class="ui-grid-footer-cell-wrapper" ng-style="colContainer.headerCellWrapperStyle()"><div role="row" class="ui-grid-footer-cell-row"><div ui-grid-footer-cell role="gridcell" ng-repeat="col in colContainer.renderedColumns track by col.uid" col="col" render-index="$index" class="ui-grid-footer-cell ui-grid-clearfix"></div></div></div></div></div></div>'),a.put("ui-grid/ui-grid-grid-footer",'<div class="ui-grid-footer-info ui-grid-grid-footer"><span>{{\'search.totalItems\' | t}} {{grid.rows.length}}</span> <span ng-if="grid.renderContainers.body.visibleRowCache.length !== grid.rows.length" class="ngLabel">({{"search.showingItems" | t}} {{grid.renderContainers.body.visibleRowCache.length}})</span></div>'),a.put("ui-grid/ui-grid-group-panel",'<div class="ui-grid-group-panel"><div ui-t="groupPanel.description" class="description" ng-show="groupings.length == 0"></div><ul ng-show="groupings.length > 0" class="ngGroupList"><li class="ngGroupItem" ng-repeat="group in configGroups"><span class="ngGroupElement"><span class="ngGroupName">{{group.displayName}} <span ng-click="removeGroup($index)" class="ngRemoveGroup">x</span></span> <span ng-hide="$last" class="ngGroupArrow"></span></span></li></ul></div>'),a.put("ui-grid/ui-grid-header",'<div role="rowgroup" class="ui-grid-header"><!-- theader --><div class="ui-grid-top-panel"><div class="ui-grid-header-viewport"><div class="ui-grid-header-canvas"><div class="ui-grid-header-cell-wrapper" ng-style="colContainer.headerCellWrapperStyle()"><div role="row" class="ui-grid-header-cell-row"><div class="ui-grid-header-cell ui-grid-clearfix" ng-repeat="col in colContainer.renderedColumns track by col.uid" ui-grid-header-cell col="col" render-index="$index"></div></div></div></div></div></div></div>'),a.put("ui-grid/ui-grid-menu-button",'<div class="ui-grid-menu-button"><div role="button" ui-grid-one-bind-id-grid="\'grid-menu\'" class="ui-grid-icon-container" ng-click="toggleMenu()" aria-haspopup="true"><i class="ui-grid-icon-menu" ui-grid-one-bind-aria-label="i18n.aria.buttonLabel">&nbsp;</i></div><div ui-grid-menu menu-items="menuItems"></div></div>'),a.put("ui-grid/ui-grid-no-header",'<div class="ui-grid-top-panel"></div>'),a.put("ui-grid/ui-grid-row","<div ng-repeat=\"(colRenderIndex, col) in colContainer.renderedColumns track by col.uid\" ui-grid-one-bind-id-grid=\"rowRenderIndex + '-' + col.uid + '-cell'\" class=\"ui-grid-cell\" ng-class=\"{ 'ui-grid-row-header-cell': col.isRowHeader }\" role=\"{{col.isRowHeader ? 'rowheader' : 'gridcell'}}\" ui-grid-cell></div>"),a.put("ui-grid/ui-grid",'<div ui-i18n="en" class="ui-grid"><!-- TODO (c0bra): add "scoped" attr here, eventually? --><style ui-grid-style>.grid{{ grid.id }} {\n      /* Styles for the grid */\n    }\n\n    .grid{{ grid.id }} .ui-grid-row, .grid{{ grid.id }} .ui-grid-cell, .grid{{ grid.id }} .ui-grid-cell .ui-grid-vertical-bar {\n      height: {{ grid.options.rowHeight }}px;\n    }\n\n    .grid{{ grid.id }} .ui-grid-row:last-child .ui-grid-cell {\n      border-bottom-width: {{ ((grid.getTotalRowHeight() < grid.getViewportHeight()) && \'1\') || \'0\' }}px;\n    }\n\n    {{ grid.verticalScrollbarStyles }}\n    {{ grid.horizontalScrollbarStyles }}\n\n    /*\n    .ui-grid[dir=rtl] .ui-grid-viewport {\n      padding-left: {{ grid.verticalScrollbarWidth }}px;\n    }\n    */\n\n    {{ grid.customStyles }}</style><div class="ui-grid-contents-wrapper"><div ui-grid-menu-button ng-if="grid.options.enableGridMenu"></div><div ng-if="grid.hasLeftContainer()" style="width: 0" ui-grid-pinned-container="\'left\'"></div><div ui-grid-render-container container-id="\'body\'" col-container-name="\'body\'" row-container-name="\'body\'" bind-scroll-horizontal="true" bind-scroll-vertical="true" enable-horizontal-scrollbar="grid.options.enableHorizontalScrollbar" enable-vertical-scrollbar="grid.options.enableVerticalScrollbar"></div><div ng-if="grid.hasRightContainer()" style="width: 0" ui-grid-pinned-container="\'right\'"></div><div ui-grid-grid-footer ng-if="grid.options.showGridFooter"></div><div ui-grid-column-menu ng-if="grid.options.enableColumnMenus"></div><div ng-transclude></div></div></div>'),a.put("ui-grid/uiGridCell",'<div class="ui-grid-cell-contents" title="TOOLTIP">{{COL_FIELD CUSTOM_FILTERS}}</div>'),a.put("ui-grid/uiGridColumnMenu",'<div class="ui-grid-column-menu"><div ui-grid-menu menu-items="menuItems"><!-- <div class="ui-grid-column-menu">\n    <div class="inner" ng-show="menuShown">\n      <ul>\n        <div ng-show="grid.options.enableSorting">\n          <li ng-click="sortColumn($event, asc)" ng-class="{ \'selected\' : col.sort.direction == asc }"><i class="ui-grid-icon-sort-alt-up"></i> Sort Ascending</li>\n          <li ng-click="sortColumn($event, desc)" ng-class="{ \'selected\' : col.sort.direction == desc }"><i class="ui-grid-icon-sort-alt-down"></i> Sort Descending</li>\n          <li ng-show="col.sort.direction" ng-click="unsortColumn()"><i class="ui-grid-icon-cancel"></i> Remove Sort</li>\n        </div>\n      </ul>\n    </div>\n  </div> --></div></div>'),a.put("ui-grid/uiGridFooterCell",'<div class="ui-grid-cell-contents" col-index="renderIndex"><div>{{ col.getAggregationText() + ( col.getAggregationValue() CUSTOM_FILTERS ) }}</div></div>'),a.put("ui-grid/uiGridHeaderCell",'<div role="columnheader" ng-class="{ \'sortable\': sortable }" ui-grid-one-bind-aria-labelledby-grid="col.uid + \'-header-text \' + col.uid + \'-sortdir-text\'" aria-sort="{{col.sort.direction == asc ? \'ascending\' : ( col.sort.direction == desc ? \'descending\' : (!col.sort.direction ? \'none\' : \'other\'))}}"><div role="button" tabindex="0" class="ui-grid-cell-contents ui-grid-header-cell-primary-focus" col-index="renderIndex" title="TOOLTIP"><span class="ui-grid-header-cell-label" ui-grid-one-bind-id-grid="col.uid + \'-header-text\'">{{ col.displayName CUSTOM_FILTERS }}</span> <span ui-grid-one-bind-id-grid="col.uid + \'-sortdir-text\'" ui-grid-visible="col.sort.direction" aria-label="{{getSortDirectionAriaLabel()}}"><i ng-class="{ \'ui-grid-icon-up-dir\': col.sort.direction == asc, \'ui-grid-icon-down-dir\': col.sort.direction == desc, \'ui-grid-icon-blank\': !col.sort.direction }" title="{{isSortPriorityVisible() ? i18n.headerCell.priority + \' \' + ( col.sort.priority + 1 )  : null}}" aria-hidden="true"></i> <sub ui-grid-visible="isSortPriorityVisible()" class="ui-grid-sort-priority-number">{{col.sort.priority + 1}}</sub></span></div><div role="button" tabindex="0" ui-grid-one-bind-id-grid="col.uid + \'-menu-button\'" class="ui-grid-column-menu-button" ng-if="grid.options.enableColumnMenus && !col.isRowHeader  && col.colDef.enableColumnMenu !== false" ng-click="toggleMenu($event)" ng-class="{\'ui-grid-column-menu-button-last-col\': isLastCol}" ui-grid-one-bind-aria-label="i18n.headerCell.aria.columnMenuButtonLabel" aria-haspopup="true"><i class="ui-grid-icon-angle-down" aria-hidden="true">&nbsp;</i></div><div ui-grid-filter></div></div>'),a.put("ui-grid/uiGridMenu",'<div class="ui-grid-menu" ng-if="shown"><style ui-grid-style>{{dynamicStyles}}</style><div class="ui-grid-menu-mid" ng-show="shownMid"><div class="ui-grid-menu-inner"><ul role="menu" class="ui-grid-menu-items"><li ng-repeat="item in menuItems" role="menuitem" ui-grid-menu-item ui-grid-one-bind-id="\'menuitem-\'+$index" action="item.action" name="item.title" active="item.active" icon="item.icon" shown="item.shown" context="item.context" template-url="item.templateUrl" leave-open="item.leaveOpen" screen-reader-only="item.screenReaderOnly"></li></ul></div></div></div>'),a.put("ui-grid/uiGridMenuItem",'<button type="button" class="ui-grid-menu-item" ng-click="itemAction($event, title)" ng-show="itemShown()" ng-class="{ \'ui-grid-menu-item-active\': active(), \'ui-grid-sr-only\': (!focus && screenReaderOnly) }" aria-pressed="{{active()}}" tabindex="0" ng-focus="focus=true" ng-blur="focus=false"><i ng-class="icon" aria-hidden="true">&nbsp;</i> {{ name }}</button>'),a.put("ui-grid/uiGridRenderContainer","<div role=\"grid\" ui-grid-one-bind-id-grid=\"'grid-container'\" class=\"ui-grid-render-container\" ng-style=\"{ 'margin-left': colContainer.getMargin('left') + 'px', 'margin-right': colContainer.getMargin('right') + 'px' }\"><!-- All of these dom elements are replaced in place --><div ui-grid-header></div><div ui-grid-viewport></div><div ng-if=\"colContainer.needsHScrollbarPlaceholder()\" class=\"ui-grid-scrollbar-placeholder\" ng-style=\"{height:colContainer.grid.scrollbarHeight + 'px'}\"></div><ui-grid-footer ng-if=\"grid.options.showColumnFooter\"></ui-grid-footer></div>"),a.put("ui-grid/uiGridViewport",'<div role="rowgroup" class="ui-grid-viewport" ng-style="colContainer.getViewportStyle()"><!-- tbody --><div class="ui-grid-canvas"><div ng-repeat="(rowRenderIndex, row) in rowContainer.renderedRows track by $index" class="ui-grid-row" ng-style="Viewport.rowStyle(rowRenderIndex)"><div role="row" ui-grid-row="row" row-render-index="rowRenderIndex"></div></div></div></div>'),a.put("ui-grid/cellEditor",'<div><form name="inputForm"><input type="INPUT_TYPE" ng-class="\'colt\' + col.uid" ui-grid-editor ng-model="MODEL_COL_FIELD"></form></div>'),a.put("ui-grid/dropdownEditor",'<div><form name="inputForm"><select ng-class="\'colt\' + col.uid" ui-grid-edit-dropdown ng-model="MODEL_COL_FIELD" ng-options="field[editDropdownIdLabel] as field[editDropdownValueLabel] CUSTOM_FILTERS for field in editDropdownOptionsArray"></select></form></div>'),a.put("ui-grid/fileChooserEditor",'<div><form name="inputForm"><input ng-class="\'colt\' + col.uid" ui-grid-edit-file-chooser type="file" id="files" name="files[]" ng-model="MODEL_COL_FIELD"></form></div>'),a.put("ui-grid/expandableRow",'<div ui-grid-expandable-row ng-if="expandableRow.shouldRenderExpand()" class="expandableRow" style="float:left; margin-top: 1px; margin-bottom: 1px" ng-style="{width: (grid.renderContainers.body.getCanvasWidth()) + \'px\', height: row.expandedRowHeight + \'px\'}"></div>'),a.put("ui-grid/expandableRowHeader",'<div class="ui-grid-row-header-cell ui-grid-expandable-buttons-cell"><div class="ui-grid-cell-contents"><i ng-class="{ \'ui-grid-icon-plus-squared\' : !row.isExpanded, \'ui-grid-icon-minus-squared\' : row.isExpanded }" ng-click="grid.api.expandable.toggleRowExpansion(row.entity)"></i></div></div>'),a.put("ui-grid/expandableScrollFiller","<div ng-if=\"expandableRow.shouldRenderFiller()\" ng-class=\"{scrollFiller:true, scrollFillerClass:(colContainer.name === 'body')}\" ng-style=\"{ width: (grid.getViewportWidth()) + 'px', height: row.expandedRowHeight + 2 + 'px', 'margin-left': grid.options.rowHeader.rowHeaderWidth + 'px' }\"><i class=\"ui-grid-icon-spin5 ui-grid-animate-spin\" ng-style=\"{'margin-top': ( row.expandedRowHeight/2 - 5) + 'px', 'margin-left' : ((grid.getViewportWidth() - grid.options.rowHeader.rowHeaderWidth)/2 - 5) + 'px'}\"></i></div>"),a.put("ui-grid/expandableTopRowHeader",'<div class="ui-grid-row-header-cell ui-grid-expandable-buttons-cell"><div class="ui-grid-cell-contents"><i ng-class="{ \'ui-grid-icon-plus-squared\' : !grid.expandable.expandedAll, \'ui-grid-icon-minus-squared\' : grid.expandable.expandedAll }" ng-click="grid.api.expandable.toggleAllRows()"></i></div></div>'),a.put("ui-grid/csvLink",'<span class="ui-grid-exporter-csv-link-span"><a href="data:text/csv;charset=UTF-8,CSV_CONTENT" download="FILE_NAME">LINK_LABEL</a></span>'),a.put("ui-grid/importerMenuItem",'<li class="ui-grid-menu-item"><form><input class="ui-grid-importer-file-chooser" type="file" id="files" name="files[]"></form></li>'),a.put("ui-grid/importerMenuItemContainer","<div ui-grid-importer-menu-item></div>"),a.put("ui-grid/pagination",'<div role="contentinfo" class="ui-grid-pager-panel" ui-grid-pager ng-show="grid.options.enablePaginationControls"><div role="navigation" class="ui-grid-pager-container"><div role="menubar" class="ui-grid-pager-control"><button type="button" role="menuitem" class="ui-grid-pager-first" ui-grid-one-bind-title="aria.pageToFirst" ui-grid-one-bind-aria-label="aria.pageToFirst" ng-click="pageFirstPageClick()" ng-disabled="cantPageBackward()"><div ng-class="grid.isRTL() ? \'last-triangle\' : \'first-triangle\'"><div ng-class="grid.isRTL() ? \'last-bar-rtl\' : \'first-bar\'"></div></div></button> <button type="button" role="menuitem" class="ui-grid-pager-previous" ui-grid-one-bind-title="aria.pageBack" ui-grid-one-bind-aria-label="aria.pageBack" ng-click="pagePreviousPageClick()" ng-disabled="cantPageBackward()"><div ng-class="grid.isRTL() ? \'last-triangle prev-triangle\' : \'first-triangle prev-triangle\'"></div></button> <input type="number" ui-grid-one-bind-title="aria.pageSelected" ui-grid-one-bind-aria-label="aria.pageSelected" class="ui-grid-pager-control-input" ng-model="grid.options.paginationCurrentPage" min="1" max="{{ paginationApi.getTotalPages() }}" required> <span class="ui-grid-pager-max-pages-number" ng-show="paginationApi.getTotalPages() > 0"><abbr ui-grid-one-bind-title="paginationOf">/</abbr> {{ paginationApi.getTotalPages() }}</span> <button type="button" role="menuitem" class="ui-grid-pager-next" ui-grid-one-bind-title="aria.pageForward" ui-grid-one-bind-aria-label="aria.pageForward" ng-click="pageNextPageClick()" ng-disabled="cantPageForward()"><div ng-class="grid.isRTL() ? \'first-triangle next-triangle\' : \'last-triangle next-triangle\'"></div></button> <button type="button" role="menuitem" class="ui-grid-pager-last" ui-grid-one-bind-title="aria.pageToLast" ui-grid-one-bind-aria-label="aria.pageToLast" ng-click="pageLastPageClick()" ng-disabled="cantPageToLast()"><div ng-class="grid.isRTL() ? \'first-triangle\' : \'last-triangle\'"><div ng-class="grid.isRTL() ? \'first-bar-rtl\' : \'last-bar\'"></div></div></button></div><div class="ui-grid-pager-row-count-picker" ng-if="grid.options.paginationPageSizes.length > 1"><select ui-grid-one-bind-aria-labelledby-grid="\'items-per-page-label\'" ng-model="grid.options.paginationPageSize" ng-options="o as o for o in grid.options.paginationPageSizes"></select><span ui-grid-one-bind-id-grid="\'items-per-page-label\'" class="ui-grid-pager-row-count-label">&nbsp;{{sizesLabel}}</span></div><span ng-if="grid.options.paginationPageSizes.length <= 1" class="ui-grid-pager-row-count-label">{{grid.options.paginationPageSize}}&nbsp;{{sizesLabel}}</span></div><div class="ui-grid-pager-count-container"><div class="ui-grid-pager-count"><span ng-show="grid.options.totalItems > 0">{{showingLow}} <abbr ui-grid-one-bind-title="paginationThrough">-</abbr> {{showingHigh}} {{paginationOf}} {{grid.options.totalItems}} {{totalItemsLabel}}</span></div></div></div>'),
+a.put("ui-grid/columnResizer",'<div ui-grid-column-resizer ng-if="grid.options.enableColumnResizing" class="ui-grid-column-resizer" col="col" position="right" render-index="renderIndex" unselectable="on"></div>'),a.put("ui-grid/gridFooterSelectedItems",'<span ng-if="grid.selection.selectedCount !== 0 && grid.options.enableFooterTotalSelected">({{"search.selectedItems" | t}} {{grid.selection.selectedCount}})</span>'),a.put("ui-grid/selectionHeaderCell",'<div><!-- <div class="ui-grid-vertical-bar">&nbsp;</div> --><div class="ui-grid-cell-contents" col-index="renderIndex"><ui-grid-selection-select-all-buttons ng-if="grid.options.enableSelectAll"></ui-grid-selection-select-all-buttons></div></div>'),a.put("ui-grid/selectionRowHeader",'<div class="ui-grid-disable-selection"><div class="ui-grid-cell-contents"><ui-grid-selection-row-header-buttons></ui-grid-selection-row-header-buttons></div></div>'),a.put("ui-grid/selectionRowHeaderButtons",'<div class="ui-grid-selection-row-header-buttons ui-grid-icon-ok" ng-class="{\'ui-grid-row-selected\': row.isSelected}" ng-click="selectButtonClick(row, $event)">&nbsp;</div>'),a.put("ui-grid/selectionSelectAllButtons",'<div class="ui-grid-selection-row-header-buttons ui-grid-icon-ok" ng-class="{\'ui-grid-all-selected\': grid.selection.selectAll}" ng-click="headerButtonClick($event)"></div>'),a.put("ui-grid/treeBaseExpandAllButtons",'<div class="ui-grid-tree-base-row-header-buttons" ng-class="{\'ui-grid-icon-minus-squared\': grid.treeBase.numberLevels > 0 && grid.treeBase.expandAll, \'ui-grid-icon-plus-squared\': grid.treeBase.numberLevels > 0 && !grid.treeBase.expandAll}" ng-click="headerButtonClick($event)"></div>'),a.put("ui-grid/treeBaseHeaderCell",'<div><div class="ui-grid-cell-contents" col-index="renderIndex"><ui-grid-tree-base-expand-all-buttons ng-if="grid.options.enableExpandAll"></ui-grid-tree-base-expand-all-buttons></div></div>'),a.put("ui-grid/treeBaseRowHeader",'<div class="ui-grid-cell-contents"><ui-grid-tree-base-row-header-buttons></ui-grid-tree-base-row-header-buttons></div>'),a.put("ui-grid/treeBaseRowHeaderButtons","<div class=\"ui-grid-tree-base-row-header-buttons\" ng-class=\"{'ui-grid-tree-base-header': row.treeLevel > -1 }\" ng-click=\"treeButtonClick(row, $event)\"><i ng-class=\"{'ui-grid-icon-minus-squared': ( ( grid.options.showTreeExpandNoChildren && row.treeLevel > -1 ) || ( row.treeNode.children && row.treeNode.children.length > 0 ) ) && row.treeNode.state === 'expanded', 'ui-grid-icon-plus-squared': ( ( grid.options.showTreeExpandNoChildren && row.treeLevel > -1 ) || ( row.treeNode.children && row.treeNode.children.length > 0 ) ) && row.treeNode.state === 'collapsed'}\" ng-style=\"{'padding-left': grid.options.treeIndent * row.treeLevel + 'px'}\"></i> &nbsp;</div>"),a.put("ui-grid/cellTitleValidator",'<div class="ui-grid-cell-contents" ng-class="{invalid:grid.validate.isInvalid(row.entity,col.colDef)}" title="{{grid.validate.getTitleFormattedErrors(row.entity,col.colDef)}}">{{COL_FIELD CUSTOM_FILTERS}}</div>'),a.put("ui-grid/cellTooltipValidator",'<div class="ui-grid-cell-contents" ng-class="{invalid:grid.validate.isInvalid(row.entity,col.colDef)}" tooltip-html-unsafe="{{grid.validate.getFormattedErrors(row.entity,col.colDef)}}" tooltip-enable="grid.validate.isInvalid(row.entity,col.colDef)" tooltip-append-to-body="true" tooltip-placement="top" title="TOOLTIP">{{COL_FIELD CUSTOM_FILTERS}}</div>')}]),function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){(function(b){a.exports=b.pdfMake=c(1)}).call(b,function(){return this}())},function(a,b,c){(function(b){"use strict";function d(a,b,c){this.docDefinition=a,this.fonts=b||h,this.vfs=c}var e=c(6),f=c(105),g=f.saveAs,h={Roboto:{normal:"Roboto-Regular.ttf",bold:"Roboto-Medium.ttf",italics:"Roboto-Italic.ttf",bolditalics:"Roboto-Italic.ttf"}};d.prototype._createDoc=function(a,c){var d=new e(this.fonts);d.fs.bindFS(this.vfs);var f,g=d.createPdfKitDocument(this.docDefinition,a),h=[];g.on("data",function(a){h.push(a)}),g.on("end",function(){f=b.concat(h),c(f,g._pdfMakePages)}),g.end()},d.prototype._getPages=function(a,b){if(!b)throw"getBuffer is an async method and needs a callback argument";this._createDoc(a,function(a,c){b(c)})},d.prototype.open=function(a){var b=window.open("","_blank");try{this.getDataUrl(function(a){b.location.href=a})}catch(c){throw b.close(),c}},d.prototype.print=function(){this.getDataUrl(function(a){var b=document.createElement("iframe");b.style.position="absolute",b.style.left="-99999px",b.src=a,b.onload=function(){function a(){document.body.removeChild(b),document.removeEventListener("click",a)}document.addEventListener("click",a,!1)},document.body.appendChild(b)},{autoPrint:!0})},d.prototype.download=function(a,b){"function"==typeof a&&(b=a,a=null),a=a||"file.pdf",this.getBuffer(function(c){var d;try{d=new Blob([c],{type:"application/pdf"})}catch(e){if("InvalidStateError"==e.name){var f=new Uint8Array(c);d=new Blob([f.buffer],{type:"application/pdf"})}}if(!d)throw"Could not generate blob";g(d,a),"function"==typeof b&&b()})},d.prototype.getBase64=function(a,b){if(!a)throw"getBase64 is an async method and needs a callback argument";this._createDoc(b,function(b){a(b.toString("base64"))})},d.prototype.getDataUrl=function(a,b){if(!a)throw"getDataUrl is an async method and needs a callback argument";this._createDoc(b,function(b){a("data:application/pdf;base64,"+b.toString("base64"))})},d.prototype.getBuffer=function(a,b){if(!a)throw"getBuffer is an async method and needs a callback argument";this._createDoc(b,function(b){a(b)})},a.exports={createPdf:function(a){return new d(a,window.pdfMake.fonts,window.pdfMake.vfs)}}}).call(b,c(2).Buffer)},function(a,b,c){(function(a,d){function e(){function a(){}try{var b=new Uint8Array(1);return b.foo=function(){return 42},b.constructor=a,42===b.foo()&&b.constructor===a&&"function"==typeof b.subarray&&0===b.subarray(1,1).byteLength}catch(c){return!1}}function f(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(b){return this instanceof a?(this.length=0,this.parent=void 0,"number"==typeof b?g(this,b):"string"==typeof b?h(this,b,arguments.length>1?arguments[1]:"utf8"):i(this,b)):arguments.length>1?new a(b,arguments[1]):new a(b)}function g(b,c){if(b=p(b,0>c?0:0|q(c)),!a.TYPED_ARRAY_SUPPORT)for(var d=0;c>d;d++)b[d]=0;return b}function h(a,b,c){"string"==typeof c&&""!==c||(c="utf8");var d=0|s(b,c);return a=p(a,d),a.write(b,c),a}function i(b,c){if(a.isBuffer(c))return j(b,c);if(Y(c))return k(b,c);if(null==c)throw new TypeError("must start with number, buffer, array or string");if("undefined"!=typeof ArrayBuffer){if(c.buffer instanceof ArrayBuffer)return l(b,c);if(c instanceof ArrayBuffer)return m(b,c)}return c.length?n(b,c):o(b,c)}function j(a,b){var c=0|q(b.length);return a=p(a,c),b.copy(a,0,0,c),a}function k(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function l(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function m(b,c){return a.TYPED_ARRAY_SUPPORT?(c.byteLength,b=a._augment(new Uint8Array(c))):b=l(b,new Uint8Array(c)),b}function n(a,b){var c=0|q(b.length);a=p(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d];return a}function o(a,b){var c,d=0;"Buffer"===b.type&&Y(b.data)&&(c=b.data,d=0|q(c.length)),a=p(a,d);for(var e=0;d>e;e+=1)a[e]=255&c[e];return a}function p(b,c){a.TYPED_ARRAY_SUPPORT?(b=a._augment(new Uint8Array(c)),b.__proto__=a.prototype):(b.length=c,b._isBuffer=!0);var d=0!==c&&c<=a.poolSize>>>1;return d&&(b.parent=Z),b}function q(a){if(a>=f())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+f().toString(16)+" bytes");return 0|a}function r(b,c){if(!(this instanceof r))return new r(b,c);var d=new a(b,c);return delete d.parent,d}function s(a,b){"string"!=typeof a&&(a=""+a);var c=a.length;if(0===c)return 0;for(var d=!1;;)switch(b){case"ascii":case"binary":case"raw":case"raws":return c;case"utf8":case"utf-8":return R(a).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*c;case"hex":return c>>>1;case"base64":return U(a).length;default:if(d)return R(a).length;b=(""+b).toLowerCase(),d=!0}}function t(a,b,c){var d=!1;if(b=0|b,c=void 0===c||c===1/0?this.length:0|c,a||(a="utf8"),0>b&&(b=0),c>this.length&&(c=this.length),b>=c)return"";for(;;)switch(a){case"hex":return F(this,b,c);case"utf8":case"utf-8":return B(this,b,c);case"ascii":return D(this,b,c);case"binary":return E(this,b,c);case"base64":return A(this,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return G(this,b,c);default:if(d)throw new TypeError("Unknown encoding: "+a);a=(a+"").toLowerCase(),d=!0}}function u(a,b,c,d){c=Number(c)||0;var e=a.length-c;d?(d=Number(d),d>e&&(d=e)):d=e;var f=b.length;if(f%2!==0)throw new Error("Invalid hex string");d>f/2&&(d=f/2);for(var g=0;d>g;g++){var h=parseInt(b.substr(2*g,2),16);if(isNaN(h))throw new Error("Invalid hex string");a[c+g]=h}return g}function v(a,b,c,d){return V(R(b,a.length-c),a,c,d)}function w(a,b,c,d){return V(S(b),a,c,d)}function x(a,b,c,d){return w(a,b,c,d)}function y(a,b,c,d){return V(U(b),a,c,d)}function z(a,b,c,d){return V(T(b,a.length-c),a,c,d)}function A(a,b,c){return 0===b&&c===a.length?W.fromByteArray(a):W.fromByteArray(a.slice(b,c))}function B(a,b,c){c=Math.min(a.length,c);for(var d=[],e=b;c>e;){var f=a[e],g=null,h=f>239?4:f>223?3:f>191?2:1;if(c>=e+h){var i,j,k,l;switch(h){case 1:128>f&&(g=f);break;case 2:i=a[e+1],128===(192&i)&&(l=(31&f)<<6|63&i,l>127&&(g=l));break;case 3:i=a[e+1],j=a[e+2],128===(192&i)&&128===(192&j)&&(l=(15&f)<<12|(63&i)<<6|63&j,l>2047&&(55296>l||l>57343)&&(g=l));break;case 4:i=a[e+1],j=a[e+2],k=a[e+3],128===(192&i)&&128===(192&j)&&128===(192&k)&&(l=(15&f)<<18|(63&i)<<12|(63&j)<<6|63&k,l>65535&&1114112>l&&(g=l))}}null===g?(g=65533,h=1):g>65535&&(g-=65536,d.push(g>>>10&1023|55296),g=56320|1023&g),d.push(g),e+=h}return C(d)}function C(a){var b=a.length;if($>=b)return String.fromCharCode.apply(String,a);for(var c="",d=0;b>d;)c+=String.fromCharCode.apply(String,a.slice(d,d+=$));return c}function D(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(127&a[e]);return d}function E(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(a[e]);return d}function F(a,b,c){var d=a.length;(!b||0>b)&&(b=0),(!c||0>c||c>d)&&(c=d);for(var e="",f=b;c>f;f++)e+=Q(a[f]);return e}function G(a,b,c){for(var d=a.slice(b,c),e="",f=0;f<d.length;f+=2)e+=String.fromCharCode(d[f]+256*d[f+1]);return e}function H(a,b,c){if(a%1!==0||0>a)throw new RangeError("offset is not uint");if(a+b>c)throw new RangeError("Trying to access beyond buffer length")}function I(b,c,d,e,f,g){if(!a.isBuffer(b))throw new TypeError("buffer must be a Buffer instance");if(c>f||g>c)throw new RangeError("value is out of bounds");if(d+e>b.length)throw new RangeError("index out of range")}function J(a,b,c,d){0>b&&(b=65535+b+1);for(var e=0,f=Math.min(a.length-c,2);f>e;e++)a[c+e]=(b&255<<8*(d?e:1-e))>>>8*(d?e:1-e)}function K(a,b,c,d){0>b&&(b=4294967295+b+1);for(var e=0,f=Math.min(a.length-c,4);f>e;e++)a[c+e]=b>>>8*(d?e:3-e)&255}function L(a,b,c,d,e,f){if(b>e||f>b)throw new RangeError("value is out of bounds");if(c+d>a.length)throw new RangeError("index out of range");if(0>c)throw new RangeError("index out of range")}function M(a,b,c,d,e){return e||L(a,b,c,4,3.4028234663852886e38,-3.4028234663852886e38),X.write(a,b,c,d,23,4),c+4}function N(a,b,c,d,e){return e||L(a,b,c,8,1.7976931348623157e308,-1.7976931348623157e308),X.write(a,b,c,d,52,8),c+8}function O(a){if(a=P(a).replace(aa,""),a.length<2)return"";for(;a.length%4!==0;)a+="=";return a}function P(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function Q(a){return 16>a?"0"+a.toString(16):a.toString(16)}function R(a,b){b=b||1/0;for(var c,d=a.length,e=null,f=[],g=0;d>g;g++){if(c=a.charCodeAt(g),c>55295&&57344>c){if(!e){if(c>56319){(b-=3)>-1&&f.push(239,191,189);continue}if(g+1===d){(b-=3)>-1&&f.push(239,191,189);continue}e=c;continue}if(56320>c){(b-=3)>-1&&f.push(239,191,189),e=c;continue}c=e-55296<<10|c-56320|65536}else e&&(b-=3)>-1&&f.push(239,191,189);if(e=null,128>c){if((b-=1)<0)break;f.push(c)}else if(2048>c){if((b-=2)<0)break;f.push(c>>6|192,63&c|128)}else if(65536>c){if((b-=3)<0)break;f.push(c>>12|224,c>>6&63|128,63&c|128)}else{if(!(1114112>c))throw new Error("Invalid code point");if((b-=4)<0)break;f.push(c>>18|240,c>>12&63|128,c>>6&63|128,63&c|128)}}return f}function S(a){for(var b=[],c=0;c<a.length;c++)b.push(255&a.charCodeAt(c));return b}function T(a,b){for(var c,d,e,f=[],g=0;g<a.length&&!((b-=2)<0);g++)c=a.charCodeAt(g),d=c>>8,e=c%256,f.push(e),f.push(d);return f}function U(a){return W.toByteArray(O(a))}function V(a,b,c,d){for(var e=0;d>e&&!(e+c>=b.length||e>=a.length);e++)b[e+c]=a[e];return e}var W=c(3),X=c(4),Y=c(5);b.Buffer=a,b.SlowBuffer=r,b.INSPECT_MAX_BYTES=50,a.poolSize=8192;var Z={};a.TYPED_ARRAY_SUPPORT=void 0!==d.TYPED_ARRAY_SUPPORT?d.TYPED_ARRAY_SUPPORT:e(),a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array),a.isBuffer=function(a){return!(null==a||!a._isBuffer)},a.compare=function(b,c){if(!a.isBuffer(b)||!a.isBuffer(c))throw new TypeError("Arguments must be Buffers");if(b===c)return 0;for(var d=b.length,e=c.length,f=0,g=Math.min(d,e);g>f&&b[f]===c[f];)++f;return f!==g&&(d=b[f],e=c[f]),e>d?-1:d>e?1:0},a.isEncoding=function(a){switch(String(a).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(b,c){if(!Y(b))throw new TypeError("list argument must be an Array of Buffers.");if(0===b.length)return new a(0);var d;if(void 0===c)for(c=0,d=0;d<b.length;d++)c+=b[d].length;var e=new a(c),f=0;for(d=0;d<b.length;d++){var g=b[d];g.copy(e,f),f+=g.length}return e},a.byteLength=s,a.prototype.length=void 0,a.prototype.parent=void 0,a.prototype.toString=function(){var a=0|this.length;return 0===a?"":0===arguments.length?B(this,0,a):t.apply(this,arguments)},a.prototype.equals=function(b){if(!a.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?!0:0===a.compare(this,b)},a.prototype.inspect=function(){var a="",c=b.INSPECT_MAX_BYTES;return this.length>0&&(a=this.toString("hex",0,c).match(/.{2}/g).join(" "),this.length>c&&(a+=" ... ")),"<Buffer "+a+">"},a.prototype.compare=function(b){if(!a.isBuffer(b))throw new TypeError("Argument must be a Buffer");return this===b?0:a.compare(this,b)},a.prototype.indexOf=function(b,c){function d(a,b,c){for(var d=-1,e=0;c+e<a.length;e++)if(a[c+e]===b[-1===d?0:e-d]){if(-1===d&&(d=e),e-d+1===b.length)return c+d}else d=-1;return-1}if(c>2147483647?c=2147483647:-2147483648>c&&(c=-2147483648),c>>=0,0===this.length)return-1;if(c>=this.length)return-1;if(0>c&&(c=Math.max(this.length+c,0)),"string"==typeof b)return 0===b.length?-1:String.prototype.indexOf.call(this,b,c);if(a.isBuffer(b))return d(this,b,c);if("number"==typeof b)return a.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,b,c):d(this,[b],c);throw new TypeError("val must be string, number or Buffer")},a.prototype.get=function(a){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(a)},a.prototype.set=function(a,b){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(a,b)},a.prototype.write=function(a,b,c,d){if(void 0===b)d="utf8",c=this.length,b=0;else if(void 0===c&&"string"==typeof b)d=b,c=this.length,b=0;else if(isFinite(b))b=0|b,isFinite(c)?(c=0|c,void 0===d&&(d="utf8")):(d=c,c=void 0);else{var e=d;d=b,b=0|c,c=e}var f=this.length-b;if((void 0===c||c>f)&&(c=f),a.length>0&&(0>c||0>b)||b>this.length)throw new RangeError("attempt to write outside buffer bounds");d||(d="utf8");for(var g=!1;;)switch(d){case"hex":return u(this,a,b,c);case"utf8":case"utf-8":return v(this,a,b,c);case"ascii":return w(this,a,b,c);case"binary":return x(this,a,b,c);case"base64":return y(this,a,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return z(this,a,b,c);default:if(g)throw new TypeError("Unknown encoding: "+d);d=(""+d).toLowerCase(),g=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var $=4096;a.prototype.slice=function(b,c){var d=this.length;b=~~b,c=void 0===c?d:~~c,0>b?(b+=d,0>b&&(b=0)):b>d&&(b=d),0>c?(c+=d,0>c&&(c=0)):c>d&&(c=d),b>c&&(c=b);var e;if(a.TYPED_ARRAY_SUPPORT)e=a._augment(this.subarray(b,c));else{var f=c-b;e=new a(f,void 0);for(var g=0;f>g;g++)e[g]=this[g+b]}return e.length&&(e.parent=this.parent||this),e},a.prototype.readUIntLE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f<b&&(e*=256);)d+=this[a+f]*e;return d},a.prototype.readUIntBE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a+--b],e=1;b>0&&(e*=256);)d+=this[a+--b]*e;return d},a.prototype.readUInt8=function(a,b){return b||H(a,1,this.length),this[a]},a.prototype.readUInt16LE=function(a,b){return b||H(a,2,this.length),this[a]|this[a+1]<<8},a.prototype.readUInt16BE=function(a,b){return b||H(a,2,this.length),this[a]<<8|this[a+1]},a.prototype.readUInt32LE=function(a,b){return b||H(a,4,this.length),(this[a]|this[a+1]<<8|this[a+2]<<16)+16777216*this[a+3]},a.prototype.readUInt32BE=function(a,b){return b||H(a,4,this.length),16777216*this[a]+(this[a+1]<<16|this[a+2]<<8|this[a+3])},a.prototype.readIntLE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=this[a],e=1,f=0;++f<b&&(e*=256);)d+=this[a+f]*e;return e*=128,d>=e&&(d-=Math.pow(2,8*b)),d},a.prototype.readIntBE=function(a,b,c){a=0|a,b=0|b,c||H(a,b,this.length);for(var d=b,e=1,f=this[a+--d];d>0&&(e*=256);)f+=this[a+--d]*e;return e*=128,f>=e&&(f-=Math.pow(2,8*b)),f},a.prototype.readInt8=function(a,b){return b||H(a,1,this.length),128&this[a]?-1*(255-this[a]+1):this[a]},a.prototype.readInt16LE=function(a,b){b||H(a,2,this.length);var c=this[a]|this[a+1]<<8;return 32768&c?4294901760|c:c},a.prototype.readInt16BE=function(a,b){b||H(a,2,this.length);var c=this[a+1]|this[a]<<8;return 32768&c?4294901760|c:c},a.prototype.readInt32LE=function(a,b){return b||H(a,4,this.length),this[a]|this[a+1]<<8|this[a+2]<<16|this[a+3]<<24},a.prototype.readInt32BE=function(a,b){return b||H(a,4,this.length),this[a]<<24|this[a+1]<<16|this[a+2]<<8|this[a+3]},a.prototype.readFloatLE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!0,23,4)},a.prototype.readFloatBE=function(a,b){return b||H(a,4,this.length),X.read(this,a,!1,23,4)},a.prototype.readDoubleLE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!0,52,8)},a.prototype.readDoubleBE=function(a,b){return b||H(a,8,this.length),X.read(this,a,!1,52,8)},a.prototype.writeUIntLE=function(a,b,c,d){a=+a,b=0|b,c=0|c,d||I(this,a,b,c,Math.pow(2,8*c),0);var e=1,f=0;for(this[b]=255&a;++f<c&&(e*=256);)this[b+f]=a/e&255;return b+c},a.prototype.writeUIntBE=function(a,b,c,d){a=+a,b=0|b,c=0|c,d||I(this,a,b,c,Math.pow(2,8*c),0);var e=c-1,f=1;for(this[b+e]=255&a;--e>=0&&(f*=256);)this[b+e]=a/f&255;return b+c},a.prototype.writeUInt8=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,1,255,0),a.TYPED_ARRAY_SUPPORT||(b=Math.floor(b)),this[c]=255&b,c+1},a.prototype.writeUInt16LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[c]=255&b,this[c+1]=b>>>8):J(this,b,c,!0),c+2},a.prototype.writeUInt16BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>8,this[c+1]=255&b):J(this,b,c,!1),c+2},a.prototype.writeUInt32LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[c+3]=b>>>24,this[c+2]=b>>>16,this[c+1]=b>>>8,this[c]=255&b):K(this,b,c,!0),c+4},a.prototype.writeUInt32BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>24,this[c+1]=b>>>16,this[c+2]=b>>>8,this[c+3]=255&b):K(this,b,c,!1),c+4},a.prototype.writeIntLE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=0,g=1,h=0>a?1:0;for(this[b]=255&a;++f<c&&(g*=256);)this[b+f]=(a/g>>0)-h&255;return b+c},a.prototype.writeIntBE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);I(this,a,b,c,e-1,-e)}var f=c-1,g=1,h=0>a?1:0;for(this[b+f]=255&a;--f>=0&&(g*=256);)this[b+f]=(a/g>>0)-h&255;return b+c},a.prototype.writeInt8=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,1,127,-128),a.TYPED_ARRAY_SUPPORT||(b=Math.floor(b)),0>b&&(b=255+b+1),this[c]=255&b,c+1},a.prototype.writeInt16LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[c]=255&b,this[c+1]=b>>>8):J(this,b,c,!0),c+2},a.prototype.writeInt16BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>8,this[c+1]=255&b):J(this,b,c,!1),c+2},a.prototype.writeInt32LE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[c]=255&b,this[c+1]=b>>>8,this[c+2]=b>>>16,this[c+3]=b>>>24):K(this,b,c,!0),c+4},a.prototype.writeInt32BE=function(b,c,d){return b=+b,c=0|c,d||I(this,b,c,4,2147483647,-2147483648),0>b&&(b=4294967295+b+1),a.TYPED_ARRAY_SUPPORT?(this[c]=b>>>24,this[c+1]=b>>>16,this[c+2]=b>>>8,this[c+3]=255&b):K(this,b,c,!1),c+4},a.prototype.writeFloatLE=function(a,b,c){return M(this,a,b,!0,c)},a.prototype.writeFloatBE=function(a,b,c){return M(this,a,b,!1,c)},a.prototype.writeDoubleLE=function(a,b,c){return N(this,a,b,!0,c)},a.prototype.writeDoubleBE=function(a,b,c){return N(this,a,b,!1,c)},a.prototype.copy=function(b,c,d,e){if(d||(d=0),e||0===e||(e=this.length),c>=b.length&&(c=b.length),c||(c=0),e>0&&d>e&&(e=d),e===d)return 0;if(0===b.length||0===this.length)return 0;if(0>c)throw new RangeError("targetStart out of bounds");if(0>d||d>=this.length)throw new RangeError("sourceStart out of bounds");if(0>e)throw new RangeError("sourceEnd out of bounds");e>this.length&&(e=this.length),b.length-c<e-d&&(e=b.length-c+d);var f,g=e-d;if(this===b&&c>d&&e>c)for(f=g-1;f>=0;f--)b[f+c]=this[f+d];else if(1e3>g||!a.TYPED_ARRAY_SUPPORT)for(f=0;g>f;f++)b[f+c]=this[f+d];else b._set(this.subarray(d,d+g),c);return g},a.prototype.fill=function(a,b,c){if(a||(a=0),b||(b=0),c||(c=this.length),b>c)throw new RangeError("end < start");if(c!==b&&0!==this.length){if(0>b||b>=this.length)throw new RangeError("start out of bounds");if(0>c||c>this.length)throw new RangeError("end out of bounds");var d;if("number"==typeof a)for(d=b;c>d;d++)this[d]=a;else{var e=R(a.toString()),f=e.length;for(d=b;c>d;d++)this[d]=e[d%f]}return this}},a.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(a.TYPED_ARRAY_SUPPORT)return new a(this).buffer;for(var b=new Uint8Array(this.length),c=0,d=b.length;d>c;c+=1)b[c]=this[c];return b.buffer}throw new TypeError("Buffer.toArrayBuffer not supported in this browser")};var _=a.prototype;a._augment=function(b){return b.constructor=a,b._isBuffer=!0,b._set=b.set,b.get=_.get,b.set=_.set,b.write=_.write,b.toString=_.toString,b.toLocaleString=_.toString,b.toJSON=_.toJSON,b.equals=_.equals,b.compare=_.compare,b.indexOf=_.indexOf,b.copy=_.copy,b.slice=_.slice,b.readUIntLE=_.readUIntLE,b.readUIntBE=_.readUIntBE,b.readUInt8=_.readUInt8,b.readUInt16LE=_.readUInt16LE,b.readUInt16BE=_.readUInt16BE,b.readUInt32LE=_.readUInt32LE,b.readUInt32BE=_.readUInt32BE,b.readIntLE=_.readIntLE,b.readIntBE=_.readIntBE,b.readInt8=_.readInt8,b.readInt16LE=_.readInt16LE,b.readInt16BE=_.readInt16BE,b.readInt32LE=_.readInt32LE,b.readInt32BE=_.readInt32BE,b.readFloatLE=_.readFloatLE,b.readFloatBE=_.readFloatBE,b.readDoubleLE=_.readDoubleLE,b.readDoubleBE=_.readDoubleBE,b.writeUInt8=_.writeUInt8,b.writeUIntLE=_.writeUIntLE,b.writeUIntBE=_.writeUIntBE,b.writeUInt16LE=_.writeUInt16LE,b.writeUInt16BE=_.writeUInt16BE,b.writeUInt32LE=_.writeUInt32LE,b.writeUInt32BE=_.writeUInt32BE,b.writeIntLE=_.writeIntLE,b.writeIntBE=_.writeIntBE,b.writeInt8=_.writeInt8,b.writeInt16LE=_.writeInt16LE,b.writeInt16BE=_.writeInt16BE,b.writeInt32LE=_.writeInt32LE,b.writeInt32BE=_.writeInt32BE,b.writeFloatLE=_.writeFloatLE,b.writeFloatBE=_.writeFloatBE,b.writeDoubleLE=_.writeDoubleLE,b.writeDoubleBE=_.writeDoubleBE,b.fill=_.fill,b.inspect=_.inspect,b.toArrayBuffer=_.toArrayBuffer,b};var aa=/[^+\/0-9A-Za-z-_]/g}).call(b,c(2).Buffer,function(){return this}())},function(a,b,c){var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(a){"use strict";function b(a){var b=a.charCodeAt(0);return b===g||b===l?62:b===h||b===m?63:i>b?-1:i+10>b?b-i+26+26:k+26>b?b-k:j+26>b?b-j+26:void 0}function c(a){function c(a){j[l++]=a}var d,e,g,h,i,j;if(a.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var k=a.length;i="="===a.charAt(k-2)?2:"="===a.charAt(k-1)?1:0,j=new f(3*a.length/4-i),g=i>0?a.length-4:a.length;var l=0;for(d=0,e=0;g>d;d+=4,e+=3)h=b(a.charAt(d))<<18|b(a.charAt(d+1))<<12|b(a.charAt(d+2))<<6|b(a.charAt(d+3)),c((16711680&h)>>16),c((65280&h)>>8),c(255&h);return 2===i?(h=b(a.charAt(d))<<2|b(a.charAt(d+1))>>4,c(255&h)):1===i&&(h=b(a.charAt(d))<<10|b(a.charAt(d+1))<<4|b(a.charAt(d+2))>>2,c(h>>8&255),c(255&h)),j}function e(a){function b(a){return d.charAt(a)}function c(a){return b(a>>18&63)+b(a>>12&63)+b(a>>6&63)+b(63&a)}var e,f,g,h=a.length%3,i="";for(e=0,g=a.length-h;g>e;e+=3)f=(a[e]<<16)+(a[e+1]<<8)+a[e+2],i+=c(f);switch(h){case 1:f=a[a.length-1],i+=b(f>>2),i+=b(f<<4&63),i+="==";break;case 2:f=(a[a.length-2]<<8)+a[a.length-1],i+=b(f>>10),i+=b(f>>4&63),i+=b(f<<2&63),i+="="}return i}var f="undefined"!=typeof Uint8Array?Uint8Array:Array,g="+".charCodeAt(0),h="/".charCodeAt(0),i="0".charCodeAt(0),j="a".charCodeAt(0),k="A".charCodeAt(0),l="-".charCodeAt(0),m="_".charCodeAt(0);a.toByteArray=c,a.fromByteArray=e}(b)},function(a,b){b.read=function(a,b,c,d,e){var f,g,h=8*e-d-1,i=(1<<h)-1,j=i>>1,k=-7,l=c?e-1:0,m=c?-1:1,n=a[b+l];for(l+=m,f=n&(1<<-k)-1,n>>=-k,k+=h;k>0;f=256*f+a[b+l],l+=m,k-=8);for(g=f&(1<<-k)-1,f>>=-k,k+=d;k>0;g=256*g+a[b+l],l+=m,k-=8);if(0===f)f=1-j;else{if(f===i)return g?NaN:(n?-1:1)*(1/0);g+=Math.pow(2,d),f-=j}return(n?-1:1)*g*Math.pow(2,f-d)},b.write=function(a,b,c,d,e,f){var g,h,i,j=8*f-e-1,k=(1<<j)-1,l=k>>1,m=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,n=d?0:f-1,o=d?1:-1,p=0>b||0===b&&0>1/b?1:0;for(b=Math.abs(b),isNaN(b)||b===1/0?(h=isNaN(b)?1:0,g=k):(g=Math.floor(Math.log(b)/Math.LN2),b*(i=Math.pow(2,-g))<1&&(g--,i*=2),b+=g+l>=1?m/i:m*Math.pow(2,1-l),b*i>=2&&(g++,i/=2),g+l>=k?(h=0,g=k):g+l>=1?(h=(b*i-1)*Math.pow(2,e),g+=l):(h=b*Math.pow(2,l-1)*Math.pow(2,e),g=0));e>=8;a[c+n]=255&h,n+=o,h/=256,e-=8);for(g=g<<e|h,j+=e;j>0;a[c+n]=255&g,n+=o,g/=256,j-=8);a[c+n-o]|=128*p}},function(a,b){var c=Array.isArray,d=Object.prototype.toString;a.exports=c||function(a){return!!a&&"[object Array]"==d.call(a)}},function(a,b,c){"use strict";function d(a){this.fontDescriptors=a}function e(a){if(!a)return null;if("number"==typeof a||a instanceof Number)a={left:a,right:a,top:a,bottom:a};else if(a instanceof Array)if(2===a.length)a={left:a[0],top:a[1],right:a[0],bottom:a[1]};else{if(4!==a.length)throw"Invalid pageMargins definition";a={left:a[0],top:a[1],right:a[2],bottom:a[3]}}return a}function f(a){a.registerTableLayouts({noBorders:{hLineWidth:function(a){return 0},vLineWidth:function(a){return 0},paddingLeft:function(a){return a&&4||0},paddingRight:function(a,b){return a<b.table.widths.length-1?4:0}},headerLineOnly:{hLineWidth:function(a,b){return 0===a||a===b.table.body.length?0:a===b.table.headerRows?2:0},vLineWidth:function(a){return 0},paddingLeft:function(a){return 0===a?0:8},paddingRight:function(a,b){return a===b.table.widths.length-1?0:8}},lightHorizontalLines:{hLineWidth:function(a,b){return 0===a||a===b.table.body.length?0:a===b.table.headerRows?2:1},vLineWidth:function(a){return 0},hLineColor:function(a){return 1===a?"black":"#aaa"},paddingLeft:function(a){return 0===a?0:8},paddingRight:function(a,b){return a===b.table.widths.length-1?0:8}}})}function g(a){if("string"==typeof a||a instanceof String){var b=q[a.toUpperCase()];if(!b)throw"Page size "+a+" not recognized";return{width:b[0],height:b[1]}}return a}function h(a,b){var c=b.options.size[0]>b.options.size[1]?"landscape":"portrait";if(a.pageSize.orientation!==c){var d=b.options.size[0],e=b.options.size[1];b.options.size=[e,d]}}function i(a,b,c){c._pdfMakePages=a;for(var d=0;d<a.length;d++){d>0&&(h(a[d],c),c.addPage(c.options));for(var e=a[d],f=0,g=e.items.length;g>f;f++){var i=e.items[f];switch(i.type){case"vector":l(i.item,c);break;case"line":j(i.item,i.item.x,i.item.y,c);break;case"image":m(i.item,i.item.x,i.item.y,c)}}e.watermark&&k(e,c),b.setFontRefsToPdfDoc()}}function j(a,b,c,d){b=b||0,c=c||0;var e=a.getHeight(),f=a.getAscenderHeight();s.drawBackground(a,b,c,d);for(var g=0,h=a.inlines.length;h>g;g++){var i=a.inlines[g];d.fill(i.color||"black"),d.save(),d.transform(1,0,0,-1,0,d.page.height);var j=i.font.encode(i.text);d.addContent("BT"),d.addContent(""+(b+i.x)+" "+(d.page.height-c-f)+" Td"),d.addContent("/"+j.fontId+" "+i.fontSize+" Tf"),d.addContent("<"+j.encodedText+"> Tj"),d.addContent("ET"),i.link&&d.link(b+i.x,d.page.height-c-e,i.width,e,i.link),d.restore()}s.drawDecorations(a,b,c,d)}function k(a,b){var c=a.watermark;b.fill("black"),b.opacity(.6),b.save(),b.transform(1,0,0,-1,0,b.page.height);var d=180*Math.atan2(b.page.height,b.page.width)/Math.PI;b.rotate(d,{origin:[b.page.width/2,b.page.height/2]});var e=c.font.encode(c.text);b.addContent("BT"),b.addContent(""+(b.page.width/2-c.size.size.width/2)+" "+(b.page.height/2-c.size.size.height/4)+" Td"),b.addContent("/"+e.fontId+" "+c.size.fontSize+" Tf"),b.addContent("<"+e.encodedText+"> Tj"),b.addContent("ET"),b.restore()}function l(a,b){switch(b.lineWidth(a.lineWidth||1),a.dash?b.dash(a.dash.length,{space:a.dash.space||a.dash.length}):b.undash(),b.fillOpacity(a.fillOpacity||1),b.strokeOpacity(a.strokeOpacity||1),b.lineJoin(a.lineJoin||"miter"),a.type){case"ellipse":b.ellipse(a.x,a.y,a.r1,a.r2);break;case"rect":a.r?b.roundedRect(a.x,a.y,a.w,a.h,a.r):b.rect(a.x,a.y,a.w,a.h);break;case"line":b.moveTo(a.x1,a.y1),b.lineTo(a.x2,a.y2);break;case"polyline":if(0===a.points.length)break;b.moveTo(a.points[0].x,a.points[0].y);for(var c=1,d=a.points.length;d>c;c++)b.lineTo(a.points[c].x,a.points[c].y);if(a.points.length>1){var e=a.points[0],f=a.points[a.points.length-1];(a.closePath||e.x===f.x&&e.y===f.y)&&b.closePath()}}a.color&&a.lineColor?b.fillAndStroke(a.color,a.lineColor):a.color?b.fill(a.color):b.stroke(a.lineColor||"black")}function m(a,b,c,d){d.image(a.image,a.x,a.y,{width:a._width,height:a._height})}var n=(c(7),c(9)),o=c(11),p=c(24),q=(c(46),c(102)),r=c(103),s=c(104),n=c(9);d.prototype.createPdfKitDocument=function(a,b){b=b||{};var c=g(a.pageSize||"a4");if("landscape"===a.pageOrientation&&(c={width:c.height,height:c.width}),c.orientation="landscape"===a.pageOrientation?a.pageOrientation:"portrait",this.pdfKitDoc=new p({size:[c.width,c.height],compress:!1}),this.pdfKitDoc.info.Producer="pdfmake",this.pdfKitDoc.info.Creator="pdfmake",a.info){a.info;this.pdfKitDoc.info.Title=a.info.title?a.info.title:null,this.pdfKitDoc.info.Author=a.info.author?a.info.author:null,this.pdfKitDoc.info.Subject=a.info.subject?a.info.subject:null,this.pdfKitDoc.info.Keywords=a.info.keywords?a.info.keywords:null}this.fontProvider=new n(this.fontDescriptors,this.pdfKitDoc),a.images=a.images||{};var d=new o(c,e(a.pageMargins||40),new r(this.pdfKitDoc,a.images));f(d),b.tableLayouts&&d.registerTableLayouts(b.tableLayouts);var h=d.layoutDocument(a.content,this.fontProvider,a.styles||{},a.defaultStyle||{fontSize:12,font:"Roboto"},a.background,a.header,a.footer,a.images,a.watermark,a.pageBreakBefore);if(i(h,this.fontProvider,this.pdfKitDoc),b.autoPrint){var j=this.pdfKitDoc.ref({Type:"Action",S:"Named",N:"Print"});this.pdfKitDoc._root.data.OpenAction=j,j.end()}return this.pdfKitDoc};a.exports=d,d.prototype.fs=c(44)},function(a,b,c){var d;(function(a,e){(function(){function f(a,b){if(a!==b){var c=null===a,d=a===B,e=a===a,f=null===b,g=b===B,h=b===b;
+if(a>b&&!f||!e||c&&!g&&h||d&&h)return 1;if(b>a&&!c||!h||f&&!d&&e||g&&e)return-1}return 0}function g(a,b,c){for(var d=a.length,e=c?d:-1;c?e--:++e<d;)if(b(a[e],e,a))return e;return-1}function h(a,b,c){if(b!==b)return s(a,c);for(var d=c-1,e=a.length;++d<e;)if(a[d]===b)return d;return-1}function i(a){return"function"==typeof a||!1}function j(a){return null==a?"":a+""}function k(a,b){for(var c=-1,d=a.length;++c<d&&b.indexOf(a.charAt(c))>-1;);return c}function l(a,b){for(var c=a.length;c--&&b.indexOf(a.charAt(c))>-1;);return c}function m(a,b){return f(a.criteria,b.criteria)||a.index-b.index}function n(a,b,c){for(var d=-1,e=a.criteria,g=b.criteria,h=e.length,i=c.length;++d<h;){var j=f(e[d],g[d]);if(j){if(d>=i)return j;var k=c[d];return j*("asc"===k||k===!0?1:-1)}}return a.index-b.index}function o(a){return Ua[a]}function p(a){return Va[a]}function q(a,b,c){return b?a=Ya[a]:c&&(a=Za[a]),"\\"+a}function r(a){return"\\"+Za[a]}function s(a,b,c){for(var d=a.length,e=b+(c?0:-1);c?e--:++e<d;){var f=a[e];if(f!==f)return e}return-1}function t(a){return!!a&&"object"==typeof a}function u(a){return 160>=a&&a>=9&&13>=a||32==a||160==a||5760==a||6158==a||a>=8192&&(8202>=a||8232==a||8233==a||8239==a||8287==a||12288==a||65279==a)}function v(a,b){for(var c=-1,d=a.length,e=-1,f=[];++c<d;)a[c]===b&&(a[c]=U,f[++e]=c);return f}function w(a,b){for(var c,d=-1,e=a.length,f=-1,g=[];++d<e;){var h=a[d],i=b?b(h,d,a):h;d&&c===i||(c=i,g[++f]=h)}return g}function x(a){for(var b=-1,c=a.length;++b<c&&u(a.charCodeAt(b)););return b}function y(a){for(var b=a.length;b--&&u(a.charCodeAt(b)););return b}function z(a){return Wa[a]}function A(a){function b(a){if(t(a)&&!Ch(a)&&!(a instanceof e)){if(a instanceof d)return a;if(ag.call(a,"__chain__")&&ag.call(a,"__wrapped__"))return md(a)}return new d(a)}function c(){}function d(a,b,c){this.__wrapped__=a,this.__actions__=c||[],this.__chain__=!!b}function e(a){this.__wrapped__=a,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Bg,this.__views__=[]}function u(){var a=new e(this.__wrapped__);return a.__actions__=ab(this.__actions__),a.__dir__=this.__dir__,a.__filtered__=this.__filtered__,a.__iteratees__=ab(this.__iteratees__),a.__takeCount__=this.__takeCount__,a.__views__=ab(this.__views__),a}function _(){if(this.__filtered__){var a=new e(this);a.__dir__=-1,a.__filtered__=!0}else a=this.clone(),a.__dir__*=-1;return a}function da(){var a=this.__wrapped__.value(),b=this.__dir__,c=Ch(a),d=0>b,e=c?a.length:0,f=Tc(0,e,this.__views__),g=f.start,h=f.end,i=h-g,j=d?h:g-1,k=this.__iteratees__,l=k.length,m=0,n=wg(i,this.__takeCount__);if(!c||Q>e||e==i&&n==i)return cc(d&&c?a.reverse():a,this.__actions__);var o=[];a:for(;i--&&n>m;){j+=b;for(var p=-1,q=a[j];++p<l;){var r=k[p],s=r.iteratee,t=r.type,u=s(q);if(t==S)q=u;else if(!u){if(t==R)continue a;break a}}o[m++]=q}return o}function fa(){this.__data__={}}function Ua(a){return this.has(a)&&delete this.__data__[a]}function Va(a){return"__proto__"==a?B:this.__data__[a]}function Wa(a){return"__proto__"!=a&&ag.call(this.__data__,a)}function Xa(a,b){return"__proto__"!=a&&(this.__data__[a]=b),this}function Ya(a){var b=a?a.length:0;for(this.data={hash:qg(null),set:new kg};b--;)this.push(a[b])}function Za(a,b){var c=a.data,d="string"==typeof b||He(b)?c.set.has(b):c.hash[b];return d?0:-1}function $a(a){var b=this.data;"string"==typeof a||He(a)?b.set.add(a):b.hash[a]=!0}function _a(a,b){for(var c=-1,d=a.length,e=-1,f=b.length,g=Of(d+f);++c<d;)g[c]=a[c];for(;++e<f;)g[c++]=b[e];return g}function ab(a,b){var c=-1,d=a.length;for(b||(b=Of(d));++c<d;)b[c]=a[c];return b}function bb(a,b){for(var c=-1,d=a.length;++c<d&&b(a[c],c,a)!==!1;);return a}function cb(a,b){for(var c=a.length;c--&&b(a[c],c,a)!==!1;);return a}function fb(a,b){for(var c=-1,d=a.length;++c<d;)if(!b(a[c],c,a))return!1;return!0}function gb(a,b,c,d){for(var e=-1,f=a.length,g=d,h=g;++e<f;){var i=a[e],j=+b(i);c(j,g)&&(g=j,h=i)}return h}function hb(a,b){for(var c=-1,d=a.length,e=-1,f=[];++c<d;){var g=a[c];b(g,c,a)&&(f[++e]=g)}return f}function ib(a,b){for(var c=-1,d=a.length,e=Of(d);++c<d;)e[c]=b(a[c],c,a);return e}function jb(a,b){for(var c=-1,d=b.length,e=a.length;++c<d;)a[e+c]=b[c];return a}function kb(a,b,c,d){var e=-1,f=a.length;for(d&&f&&(c=a[++e]);++e<f;)c=b(c,a[e],e,a);return c}function lb(a,b,c,d){var e=a.length;for(d&&e&&(c=a[--e]);e--;)c=b(c,a[e],e,a);return c}function mb(a,b){for(var c=-1,d=a.length;++c<d;)if(b(a[c],c,a))return!0;return!1}function nb(a,b){for(var c=a.length,d=0;c--;)d+=+b(a[c])||0;return d}function ob(a,b){return a===B?b:a}function pb(a,b,c,d){return a!==B&&ag.call(d,c)?a:b}function qb(a,b,c){for(var d=-1,e=Nh(b),f=e.length;++d<f;){var g=e[d],h=a[g],i=c(h,b[g],g,a,b);(i===i?i===h:h!==h)&&(h!==B||g in a)||(a[g]=i)}return a}function rb(a,b){return null==b?a:tb(b,Nh(b),a)}function sb(a,b){for(var c=-1,d=null==a,e=!d&&Yc(a),f=e?a.length:0,g=b.length,h=Of(g);++c<g;){var i=b[c];e?h[c]=Zc(i,f)?a[i]:B:h[c]=d?B:a[i]}return h}function tb(a,b,c){c||(c={});for(var d=-1,e=b.length;++d<e;){var f=b[d];c[f]=a[f]}return c}function ub(a,b,c){var d=typeof a;return"function"==d?b===B?a:fc(a,b,c):null==a?Bf:"object"==d?Nb(a):b===B?Hf(a):Ob(a,b)}function vb(a,b,c,d,e,f,g){var h;if(c&&(h=e?c(a,d,e):c(a)),h!==B)return h;if(!He(a))return a;var i=Ch(a);if(i){if(h=Uc(a),!b)return ab(a,h)}else{var j=cg.call(a),k=j==$;if(j!=ba&&j!=V&&(!k||e))return Ta[j]?Wc(a,j,b):e?a:{};if(h=Vc(k?{}:a),!b)return rb(h,a)}f||(f=[]),g||(g=[]);for(var l=f.length;l--;)if(f[l]==a)return g[l];return f.push(a),g.push(h),(i?bb:Fb)(a,function(d,e){h[e]=vb(d,b,c,e,a,f,g)}),h}function wb(a,b,c){if("function"!=typeof a)throw new Xf(T);return lg(function(){a.apply(B,c)},b)}function xb(a,b){var c=a?a.length:0,d=[];if(!c)return d;var e=-1,f=Qc(),g=f==h,i=g&&b.length>=Q?oc(b):null,j=b.length;i&&(f=Za,g=!1,b=i);a:for(;++e<c;){var k=a[e];if(g&&k===k){for(var l=j;l--;)if(b[l]===k)continue a;d.push(k)}else f(b,k,0)<0&&d.push(k)}return d}function yb(a,b){var c=!0;return Jg(a,function(a,d,e){return c=!!b(a,d,e)}),c}function zb(a,b,c,d){var e=d,f=e;return Jg(a,function(a,g,h){var i=+b(a,g,h);(c(i,e)||i===d&&i===f)&&(e=i,f=a)}),f}function Ab(a,b,c,d){var e=a.length;for(c=null==c?0:+c||0,0>c&&(c=-c>e?0:e+c),d=d===B||d>e?e:+d||0,0>d&&(d+=e),e=c>d?0:d>>>0,c>>>=0;e>c;)a[c++]=b;return a}function Bb(a,b){var c=[];return Jg(a,function(a,d,e){b(a,d,e)&&c.push(a)}),c}function Cb(a,b,c,d){var e;return c(a,function(a,c,f){return b(a,c,f)?(e=d?c:a,!1):void 0}),e}function Db(a,b,c,d){d||(d=[]);for(var e=-1,f=a.length;++e<f;){var g=a[e];t(g)&&Yc(g)&&(c||Ch(g)||ye(g))?b?Db(g,b,c,d):jb(d,g):c||(d[d.length]=g)}return d}function Eb(a,b){return Lg(a,b,_e)}function Fb(a,b){return Lg(a,b,Nh)}function Gb(a,b){return Mg(a,b,Nh)}function Hb(a,b){for(var c=-1,d=b.length,e=-1,f=[];++c<d;){var g=b[c];Ge(a[g])&&(f[++e]=g)}return f}function Ib(a,b,c){if(null!=a){c!==B&&c in kd(a)&&(b=[c]);for(var d=0,e=b.length;null!=a&&e>d;)a=a[b[d++]];return d&&d==e?a:B}}function Jb(a,b,c,d,e,f){return a===b?!0:null==a||null==b||!He(a)&&!t(b)?a!==a&&b!==b:Kb(a,b,Jb,c,d,e,f)}function Kb(a,b,c,d,e,f,g){var h=Ch(a),i=Ch(b),j=W,k=W;h||(j=cg.call(a),j==V?j=ba:j!=ba&&(h=Qe(a))),i||(k=cg.call(b),k==V?k=ba:k!=ba&&(i=Qe(b)));var l=j==ba,m=k==ba,n=j==k;if(n&&!h&&!l)return Mc(a,b,j);if(!e){var o=l&&ag.call(a,"__wrapped__"),p=m&&ag.call(b,"__wrapped__");if(o||p)return c(o?a.value():a,p?b.value():b,d,e,f,g)}if(!n)return!1;f||(f=[]),g||(g=[]);for(var q=f.length;q--;)if(f[q]==a)return g[q]==b;f.push(a),g.push(b);var r=(h?Lc:Nc)(a,b,c,d,e,f,g);return f.pop(),g.pop(),r}function Lb(a,b,c){var d=b.length,e=d,f=!c;if(null==a)return!e;for(a=kd(a);d--;){var g=b[d];if(f&&g[2]?g[1]!==a[g[0]]:!(g[0]in a))return!1}for(;++d<e;){g=b[d];var h=g[0],i=a[h],j=g[1];if(f&&g[2]){if(i===B&&!(h in a))return!1}else{var k=c?c(i,j,h):B;if(!(k===B?Jb(j,i,c,!0):k))return!1}}return!0}function Mb(a,b){var c=-1,d=Yc(a)?Of(a.length):[];return Jg(a,function(a,e,f){d[++c]=b(a,e,f)}),d}function Nb(a){var b=Rc(a);if(1==b.length&&b[0][2]){var c=b[0][0],d=b[0][1];return function(a){return null==a?!1:a[c]===d&&(d!==B||c in kd(a))}}return function(a){return Lb(a,b)}}function Ob(a,b){var c=Ch(a),d=_c(a)&&cd(b),e=a+"";return a=ld(a),function(f){if(null==f)return!1;var g=e;if(f=kd(f),(c||!d)&&!(g in f)){if(f=1==a.length?f:Ib(f,Wb(a,0,-1)),null==f)return!1;g=zd(a),f=kd(f)}return f[g]===b?b!==B||g in f:Jb(b,f[g],B,!0)}}function Pb(a,b,c,d,e){if(!He(a))return a;var f=Yc(b)&&(Ch(b)||Qe(b)),g=f?B:Nh(b);return bb(g||b,function(h,i){if(g&&(i=h,h=b[i]),t(h))d||(d=[]),e||(e=[]),Qb(a,b,i,Pb,c,d,e);else{var j=a[i],k=c?c(j,h,i,a,b):B,l=k===B;l&&(k=h),k===B&&(!f||i in a)||!l&&(k===k?k===j:j!==j)||(a[i]=k)}}),a}function Qb(a,b,c,d,e,f,g){for(var h=f.length,i=b[c];h--;)if(f[h]==i)return void(a[c]=g[h]);var j=a[c],k=e?e(j,i,c,a,b):B,l=k===B;l&&(k=i,Yc(i)&&(Ch(i)||Qe(i))?k=Ch(j)?j:Yc(j)?ab(j):[]:Ne(i)||ye(i)?k=ye(j)?Ve(j):Ne(j)?j:{}:l=!1),f.push(i),g.push(k),l?a[c]=d(k,i,e,f,g):(k===k?k!==j:j===j)&&(a[c]=k)}function Rb(a){return function(b){return null==b?B:b[a]}}function Sb(a){var b=a+"";return a=ld(a),function(c){return Ib(c,a,b)}}function Tb(a,b){for(var c=a?b.length:0;c--;){var d=b[c];if(d!=e&&Zc(d)){var e=d;mg.call(a,d,1)}}return a}function Ub(a,b){return a+rg(zg()*(b-a+1))}function Vb(a,b,c,d,e){return e(a,function(a,e,f){c=d?(d=!1,a):b(c,a,e,f)}),c}function Wb(a,b,c){var d=-1,e=a.length;b=null==b?0:+b||0,0>b&&(b=-b>e?0:e+b),c=c===B||c>e?e:+c||0,0>c&&(c+=e),e=b>c?0:c-b>>>0,b>>>=0;for(var f=Of(e);++d<e;)f[d]=a[d+b];return f}function Xb(a,b){var c;return Jg(a,function(a,d,e){return c=b(a,d,e),!c}),!!c}function Yb(a,b){var c=a.length;for(a.sort(b);c--;)a[c]=a[c].value;return a}function Zb(a,b,c){var d=Oc(),e=-1;b=ib(b,function(a){return d(a)});var f=Mb(a,function(a){var c=ib(b,function(b){return b(a)});return{criteria:c,index:++e,value:a}});return Yb(f,function(a,b){return n(a,b,c)})}function $b(a,b){var c=0;return Jg(a,function(a,d,e){c+=+b(a,d,e)||0}),c}function _b(a,b){var c=-1,d=Qc(),e=a.length,f=d==h,g=f&&e>=Q,i=g?oc():null,j=[];i?(d=Za,f=!1):(g=!1,i=b?[]:j);a:for(;++c<e;){var k=a[c],l=b?b(k,c,a):k;if(f&&k===k){for(var m=i.length;m--;)if(i[m]===l)continue a;b&&i.push(l),j.push(k)}else d(i,l,0)<0&&((b||g)&&i.push(l),j.push(k))}return j}function ac(a,b){for(var c=-1,d=b.length,e=Of(d);++c<d;)e[c]=a[b[c]];return e}function bc(a,b,c,d){for(var e=a.length,f=d?e:-1;(d?f--:++f<e)&&b(a[f],f,a););return c?Wb(a,d?0:f,d?f+1:e):Wb(a,d?f+1:0,d?e:f)}function cc(a,b){var c=a;c instanceof e&&(c=c.value());for(var d=-1,f=b.length;++d<f;){var g=b[d];c=g.func.apply(g.thisArg,jb([c],g.args))}return c}function dc(a,b,c){var d=0,e=a?a.length:d;if("number"==typeof b&&b===b&&Eg>=e){for(;e>d;){var f=d+e>>>1,g=a[f];(c?b>=g:b>g)&&null!==g?d=f+1:e=f}return e}return ec(a,b,Bf,c)}function ec(a,b,c,d){b=c(b);for(var e=0,f=a?a.length:0,g=b!==b,h=null===b,i=b===B;f>e;){var j=rg((e+f)/2),k=c(a[j]),l=k!==B,m=k===k;if(g)var n=m||d;else n=h?m&&l&&(d||null!=k):i?m&&(d||l):null==k?!1:d?b>=k:b>k;n?e=j+1:f=j}return wg(f,Dg)}function fc(a,b,c){if("function"!=typeof a)return Bf;if(b===B)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 3:return function(c,d,e){return a.call(b,c,d,e)};case 4:return function(c,d,e,f){return a.call(b,c,d,e,f)};case 5:return function(c,d,e,f,g){return a.call(b,c,d,e,f,g)}}return function(){return a.apply(b,arguments)}}function gc(a){var b=new fg(a.byteLength),c=new ng(b);return c.set(new ng(a)),b}function hc(a,b,c){for(var d=c.length,e=-1,f=vg(a.length-d,0),g=-1,h=b.length,i=Of(h+f);++g<h;)i[g]=b[g];for(;++e<d;)i[c[e]]=a[e];for(;f--;)i[g++]=a[e++];return i}function ic(a,b,c){for(var d=-1,e=c.length,f=-1,g=vg(a.length-e,0),h=-1,i=b.length,j=Of(g+i);++f<g;)j[f]=a[f];for(var k=f;++h<i;)j[k+h]=b[h];for(;++d<e;)j[k+c[d]]=a[f++];return j}function jc(a,b){return function(c,d,e){var f=b?b():{};if(d=Oc(d,e,3),Ch(c))for(var g=-1,h=c.length;++g<h;){var i=c[g];a(f,i,d(i,g,c),c)}else Jg(c,function(b,c,e){a(f,b,d(b,c,e),e)});return f}}function kc(a){return qe(function(b,c){var d=-1,e=null==b?0:c.length,f=e>2?c[e-2]:B,g=e>2?c[2]:B,h=e>1?c[e-1]:B;for("function"==typeof f?(f=fc(f,h,5),e-=2):(f="function"==typeof h?h:B,e-=f?1:0),g&&$c(c[0],c[1],g)&&(f=3>e?B:f,e=1);++d<e;){var i=c[d];i&&a(b,i,f)}return b})}function lc(a,b){return function(c,d){var e=c?Pg(c):0;if(!bd(e))return a(c,d);for(var f=b?e:-1,g=kd(c);(b?f--:++f<e)&&d(g[f],f,g)!==!1;);return c}}function mc(a){return function(b,c,d){for(var e=kd(b),f=d(b),g=f.length,h=a?g:-1;a?h--:++h<g;){var i=f[h];if(c(e[i],i,e)===!1)break}return b}}function nc(a,b){function c(){var e=this&&this!==db&&this instanceof c?d:a;return e.apply(b,arguments)}var d=qc(a);return c}function oc(a){return qg&&kg?new Ya(a):null}function pc(a){return function(b){for(var c=-1,d=yf(kf(b)),e=d.length,f="";++c<e;)f=a(f,d[c],c);return f}}function qc(a){return function(){var b=arguments;switch(b.length){case 0:return new a;case 1:return new a(b[0]);case 2:return new a(b[0],b[1]);case 3:return new a(b[0],b[1],b[2]);case 4:return new a(b[0],b[1],b[2],b[3]);case 5:return new a(b[0],b[1],b[2],b[3],b[4]);case 6:return new a(b[0],b[1],b[2],b[3],b[4],b[5]);case 7:return new a(b[0],b[1],b[2],b[3],b[4],b[5],b[6])}var c=Ig(a.prototype),d=a.apply(c,b);return He(d)?d:c}}function rc(a){function b(c,d,e){e&&$c(c,d,e)&&(d=B);var f=Kc(c,a,B,B,B,B,B,d);return f.placeholder=b.placeholder,f}return b}function sc(a,b){return qe(function(c){var d=c[0];return null==d?d:(c.push(b),a.apply(B,c))})}function tc(a,b){return function(c,d,e){if(e&&$c(c,d,e)&&(d=B),d=Oc(d,e,3),1==d.length){c=Ch(c)?c:jd(c);var f=gb(c,d,a,b);if(!c.length||f!==b)return f}return zb(c,d,a,b)}}function uc(a,b){return function(c,d,e){if(d=Oc(d,e,3),Ch(c)){var f=g(c,d,b);return f>-1?c[f]:B}return Cb(c,d,a)}}function vc(a){return function(b,c,d){return b&&b.length?(c=Oc(c,d,3),g(b,c,a)):-1}}function wc(a){return function(b,c,d){return c=Oc(c,d,3),Cb(b,c,a,!0)}}function xc(a){return function(){for(var b,c=arguments.length,e=a?c:-1,f=0,g=Of(c);a?e--:++e<c;){var h=g[f++]=arguments[e];if("function"!=typeof h)throw new Xf(T);!b&&d.prototype.thru&&"wrapper"==Pc(h)&&(b=new d([],!0))}for(e=b?-1:c;++e<c;){h=g[e];var i=Pc(h),j="wrapper"==i?Og(h):B;b=j&&ad(j[0])&&j[1]==(K|G|I|L)&&!j[4].length&&1==j[9]?b[Pc(j[0])].apply(b,j[3]):1==h.length&&ad(h)?b[i]():b.thru(h)}return function(){var a=arguments,d=a[0];if(b&&1==a.length&&Ch(d)&&d.length>=Q)return b.plant(d).value();for(var e=0,f=c?g[e].apply(this,a):d;++e<c;)f=g[e].call(this,f);return f}}}function yc(a,b){return function(c,d,e){return"function"==typeof d&&e===B&&Ch(c)?a(c,d):b(c,fc(d,e,3))}}function zc(a){return function(b,c,d){return"function"==typeof c&&d===B||(c=fc(c,d,3)),a(b,c,_e)}}function Ac(a){return function(b,c,d){return"function"==typeof c&&d===B||(c=fc(c,d,3)),a(b,c)}}function Bc(a){return function(b,c,d){var e={};return c=Oc(c,d,3),Fb(b,function(b,d,f){var g=c(b,d,f);d=a?g:d,b=a?b:g,e[d]=b}),e}}function Cc(a){return function(b,c,d){return b=j(b),(a?b:"")+Gc(b,c,d)+(a?"":b)}}function Dc(a){var b=qe(function(c,d){var e=v(d,b.placeholder);return Kc(c,a,B,d,e)});return b}function Ec(a,b){return function(c,d,e,f){var g=arguments.length<3;return"function"==typeof d&&f===B&&Ch(c)?a(c,d,e,g):Vb(c,Oc(d,f,4),e,g,b)}}function Fc(a,b,c,d,e,f,g,h,i,j){function k(){for(var s=arguments.length,t=s,u=Of(s);t--;)u[t]=arguments[t];if(d&&(u=hc(u,d,e)),f&&(u=ic(u,f,g)),o||q){var w=k.placeholder,x=v(u,w);if(s-=x.length,j>s){var y=h?ab(h):B,z=vg(j-s,0),A=o?x:B,C=o?B:x,F=o?u:B,G=o?B:u;b|=o?I:J,b&=~(o?J:I),p||(b&=~(D|E));var H=[a,b,c,F,A,G,C,y,i,z],K=Fc.apply(B,H);return ad(a)&&Qg(K,H),K.placeholder=w,K}}var L=m?c:this,M=n?L[a]:a;return h&&(u=hd(u,h)),l&&i<u.length&&(u.length=i),this&&this!==db&&this instanceof k&&(M=r||qc(a)),M.apply(L,u)}var l=b&K,m=b&D,n=b&E,o=b&G,p=b&F,q=b&H,r=n?B:qc(a);return k}function Gc(a,b,c){var d=a.length;if(b=+b,d>=b||!tg(b))return"";var e=b-d;return c=null==c?" ":c+"",qf(c,pg(e/c.length)).slice(0,e)}function Hc(a,b,c,d){function e(){for(var b=-1,h=arguments.length,i=-1,j=d.length,k=Of(j+h);++i<j;)k[i]=d[i];for(;h--;)k[i++]=arguments[++b];var l=this&&this!==db&&this instanceof e?g:a;return l.apply(f?c:this,k)}var f=b&D,g=qc(a);return e}function Ic(a){var b=Sf[a];return function(a,c){return c=c===B?0:+c||0,c?(c=ig(10,c),b(a*c)/c):b(a)}}function Jc(a){return function(b,c,d,e){var f=Oc(d);return null==d&&f===ub?dc(b,c,a):ec(b,c,f(d,e,1),a)}}function Kc(a,b,c,d,e,f,g,h){var i=b&E;if(!i&&"function"!=typeof a)throw new Xf(T);var j=d?d.length:0;if(j||(b&=~(I|J),d=e=B),j-=e?e.length:0,b&J){var k=d,l=e;d=e=B}var m=i?B:Og(a),n=[a,b,c,d,e,k,l,f,g,h];if(m&&(dd(n,m),b=n[1],h=n[9]),n[9]=null==h?i?0:a.length:vg(h-j,0)||0,b==D)var o=nc(n[0],n[2]);else o=b!=I&&b!=(D|I)||n[4].length?Fc.apply(B,n):Hc.apply(B,n);var p=m?Ng:Qg;return p(o,n)}function Lc(a,b,c,d,e,f,g){var h=-1,i=a.length,j=b.length;if(i!=j&&!(e&&j>i))return!1;for(;++h<i;){var k=a[h],l=b[h],m=d?d(e?l:k,e?k:l,h):B;if(m!==B){if(m)continue;return!1}if(e){if(!mb(b,function(a){return k===a||c(k,a,d,e,f,g)}))return!1}else if(k!==l&&!c(k,l,d,e,f,g))return!1}return!0}function Mc(a,b,c){switch(c){case X:case Y:return+a==+b;case Z:return a.name==b.name&&a.message==b.message;case aa:return a!=+a?b!=+b:a==+b;case ca:case ea:return a==b+""}return!1}function Nc(a,b,c,d,e,f,g){var h=Nh(a),i=h.length,j=Nh(b),k=j.length;if(i!=k&&!e)return!1;for(var l=i;l--;){var m=h[l];if(!(e?m in b:ag.call(b,m)))return!1}for(var n=e;++l<i;){m=h[l];var o=a[m],p=b[m],q=d?d(e?p:o,e?o:p,m):B;if(!(q===B?c(o,p,d,e,f,g):q))return!1;n||(n="constructor"==m)}if(!n){var r=a.constructor,s=b.constructor;if(r!=s&&"constructor"in a&&"constructor"in b&&!("function"==typeof r&&r instanceof r&&"function"==typeof s&&s instanceof s))return!1}return!0}function Oc(a,c,d){var e=b.callback||zf;return e=e===zf?ub:e,d?e(a,c,d):e}function Pc(a){for(var b=a.name,c=Hg[b],d=c?c.length:0;d--;){var e=c[d],f=e.func;if(null==f||f==a)return e.name}return b}function Qc(a,c,d){var e=b.indexOf||xd;return e=e===xd?h:e,a?e(a,c,d):e}function Rc(a){for(var b=af(a),c=b.length;c--;)b[c][2]=cd(b[c][1]);return b}function Sc(a,b){var c=null==a?B:a[b];return Ke(c)?c:B}function Tc(a,b,c){for(var d=-1,e=c.length;++d<e;){var f=c[d],g=f.size;switch(f.type){case"drop":a+=g;break;case"dropRight":b-=g;break;case"take":b=wg(b,a+g);break;case"takeRight":a=vg(a,b-g)}}return{start:a,end:b}}function Uc(a){var b=a.length,c=new a.constructor(b);return b&&"string"==typeof a[0]&&ag.call(a,"index")&&(c.index=a.index,c.input=a.input),c}function Vc(a){var b=a.constructor;return"function"==typeof b&&b instanceof b||(b=Uf),new b}function Wc(a,b,c){var d=a.constructor;switch(b){case ga:return gc(a);case X:case Y:return new d(+a);case ha:case ia:case ja:case ka:case la:case ma:case na:case oa:case pa:var e=a.buffer;return new d(c?gc(e):e,a.byteOffset,a.length);case aa:case ea:return new d(a);case ca:var f=new d(a.source,Ia.exec(a));f.lastIndex=a.lastIndex}return f}function Xc(a,b,c){null==a||_c(b,a)||(b=ld(b),a=1==b.length?a:Ib(a,Wb(b,0,-1)),b=zd(b));var d=null==a?a:a[b];return null==d?B:d.apply(a,c)}function Yc(a){return null!=a&&bd(Pg(a))}function Zc(a,b){return a="number"==typeof a||La.test(a)?+a:-1,b=null==b?Fg:b,a>-1&&a%1==0&&b>a}function $c(a,b,c){if(!He(c))return!1;var d=typeof b;if("number"==d?Yc(c)&&Zc(b,c.length):"string"==d&&b in c){var e=c[b];return a===a?a===e:e!==e}return!1}function _c(a,b){var c=typeof a;if("string"==c&&Ba.test(a)||"number"==c)return!0;if(Ch(a))return!1;var d=!Aa.test(a);return d||null!=b&&a in kd(b)}function ad(a){var c=Pc(a);if(!(c in e.prototype))return!1;var d=b[c];if(a===d)return!0;var f=Og(d);return!!f&&a===f[0]}function bd(a){return"number"==typeof a&&a>-1&&a%1==0&&Fg>=a}function cd(a){return a===a&&!He(a)}function dd(a,b){var c=a[1],d=b[1],e=c|d,f=K>e,g=d==K&&c==G||d==K&&c==L&&a[7].length<=b[8]||d==(K|L)&&c==G;if(!f&&!g)return a;d&D&&(a[2]=b[2],e|=c&D?0:F);var h=b[3];if(h){var i=a[3];a[3]=i?hc(i,h,b[4]):ab(h),a[4]=i?v(a[3],U):ab(b[4])}return h=b[5],h&&(i=a[5],a[5]=i?ic(i,h,b[6]):ab(h),a[6]=i?v(a[5],U):ab(b[6])),h=b[7],h&&(a[7]=ab(h)),d&K&&(a[8]=null==a[8]?b[8]:wg(a[8],b[8])),null==a[9]&&(a[9]=b[9]),a[0]=b[0],a[1]=e,a}function ed(a,b){return a===B?b:Dh(a,b,ed)}function fd(a,b){a=kd(a);for(var c=-1,d=b.length,e={};++c<d;){var f=b[c];f in a&&(e[f]=a[f])}return e}function gd(a,b){var c={};return Eb(a,function(a,d,e){b(a,d,e)&&(c[d]=a)}),c}function hd(a,b){for(var c=a.length,d=wg(b.length,c),e=ab(a);d--;){var f=b[d];a[d]=Zc(f,c)?e[f]:B}return a}function id(a){for(var b=_e(a),c=b.length,d=c&&a.length,e=!!d&&bd(d)&&(Ch(a)||ye(a)),f=-1,g=[];++f<c;){var h=b[f];(e&&Zc(h,d)||ag.call(a,h))&&g.push(h)}return g}function jd(a){return null==a?[]:Yc(a)?He(a)?a:Uf(a):ef(a)}function kd(a){return He(a)?a:Uf(a)}function ld(a){if(Ch(a))return a;var b=[];return j(a).replace(Ca,function(a,c,d,e){b.push(d?e.replace(Ga,"$1"):c||a)}),b}function md(a){return a instanceof e?a.clone():new d(a.__wrapped__,a.__chain__,ab(a.__actions__))}function nd(a,b,c){b=(c?$c(a,b,c):null==b)?1:vg(rg(b)||1,1);for(var d=0,e=a?a.length:0,f=-1,g=Of(pg(e/b));e>d;)g[++f]=Wb(a,d,d+=b);return g}function od(a){for(var b=-1,c=a?a.length:0,d=-1,e=[];++b<c;){var f=a[b];f&&(e[++d]=f)}return e}function pd(a,b,c){var d=a?a.length:0;return d?((c?$c(a,b,c):null==b)&&(b=1),Wb(a,0>b?0:b)):[]}function qd(a,b,c){var d=a?a.length:0;return d?((c?$c(a,b,c):null==b)&&(b=1),b=d-(+b||0),Wb(a,0,0>b?0:b)):[]}function rd(a,b,c){return a&&a.length?bc(a,Oc(b,c,3),!0,!0):[]}function sd(a,b,c){return a&&a.length?bc(a,Oc(b,c,3),!0):[]}function td(a,b,c,d){var e=a?a.length:0;return e?(c&&"number"!=typeof c&&$c(a,b,c)&&(c=0,d=e),Ab(a,b,c,d)):[]}function ud(a){return a?a[0]:B}function vd(a,b,c){var d=a?a.length:0;return c&&$c(a,b,c)&&(b=!1),d?Db(a,b):[]}function wd(a){var b=a?a.length:0;return b?Db(a,!0):[]}function xd(a,b,c){var d=a?a.length:0;if(!d)return-1;if("number"==typeof c)c=0>c?vg(d+c,0):c;else if(c){var e=dc(a,b);return d>e&&(b===b?b===a[e]:a[e]!==a[e])?e:-1}return h(a,b,c||0)}function yd(a){return qd(a,1)}function zd(a){var b=a?a.length:0;return b?a[b-1]:B}function Ad(a,b,c){var d=a?a.length:0;if(!d)return-1;var e=d;if("number"==typeof c)e=(0>c?vg(d+c,0):wg(c||0,d-1))+1;else if(c){e=dc(a,b,!0)-1;var f=a[e];return(b===b?b===f:f!==f)?e:-1}if(b!==b)return s(a,e,!0);for(;e--;)if(a[e]===b)return e;return-1}function Bd(){var a=arguments,b=a[0];if(!b||!b.length)return b;for(var c=0,d=Qc(),e=a.length;++c<e;)for(var f=0,g=a[c];(f=d(b,g,f))>-1;)mg.call(b,f,1);return b}function Cd(a,b,c){var d=[];if(!a||!a.length)return d;var e=-1,f=[],g=a.length;for(b=Oc(b,c,3);++e<g;){var h=a[e];b(h,e,a)&&(d.push(h),f.push(e))}return Tb(a,f),d}function Dd(a){return pd(a,1)}function Ed(a,b,c){var d=a?a.length:0;return d?(c&&"number"!=typeof c&&$c(a,b,c)&&(b=0,c=d),Wb(a,b,c)):[]}function Fd(a,b,c){var d=a?a.length:0;return d?((c?$c(a,b,c):null==b)&&(b=1),Wb(a,0,0>b?0:b)):[]}function Gd(a,b,c){var d=a?a.length:0;return d?((c?$c(a,b,c):null==b)&&(b=1),b=d-(+b||0),Wb(a,0>b?0:b)):[]}function Hd(a,b,c){return a&&a.length?bc(a,Oc(b,c,3),!1,!0):[]}function Id(a,b,c){return a&&a.length?bc(a,Oc(b,c,3)):[]}function Jd(a,b,c,d){var e=a?a.length:0;if(!e)return[];null!=b&&"boolean"!=typeof b&&(d=c,c=$c(a,b,d)?B:b,b=!1);var f=Oc();return null==c&&f===ub||(c=f(c,d,3)),b&&Qc()==h?w(a,c):_b(a,c)}function Kd(a){if(!a||!a.length)return[];var b=-1,c=0;a=hb(a,function(a){return Yc(a)?(c=vg(a.length,c),!0):void 0});for(var d=Of(c);++b<c;)d[b]=ib(a,Rb(b));return d}function Ld(a,b,c){var d=a?a.length:0;if(!d)return[];var e=Kd(a);return null==b?e:(b=fc(b,c,4),ib(e,function(a){return kb(a,b,B,!0)}))}function Md(){for(var a=-1,b=arguments.length;++a<b;){var c=arguments[a];if(Yc(c))var d=d?jb(xb(d,c),xb(c,d)):c}return d?_b(d):[]}function Nd(a,b){var c=-1,d=a?a.length:0,e={};for(!d||b||Ch(a[0])||(b=[]);++c<d;){var f=a[c];b?e[f]=b[c]:f&&(e[f[0]]=f[1])}return e}function Od(a){var c=b(a);return c.__chain__=!0,c}function Pd(a,b,c){return b.call(c,a),a}function Qd(a,b,c){return b.call(c,a)}function Rd(){return Od(this)}function Sd(){return new d(this.value(),this.__chain__)}function Td(a){for(var b,d=this;d instanceof c;){var e=md(d);b?f.__wrapped__=e:b=e;var f=e;d=d.__wrapped__}return f.__wrapped__=a,b}function Ud(){var a=this.__wrapped__,b=function(a){return c&&c.__dir__<0?a:a.reverse()};if(a instanceof e){var c=a;return this.__actions__.length&&(c=new e(this)),c=c.reverse(),c.__actions__.push({func:Qd,args:[b],thisArg:B}),new d(c,this.__chain__)}return this.thru(b)}function Vd(){return this.value()+""}function Wd(){return cc(this.__wrapped__,this.__actions__)}function Xd(a,b,c){var d=Ch(a)?fb:yb;return c&&$c(a,b,c)&&(b=B),"function"==typeof b&&c===B||(b=Oc(b,c,3)),d(a,b)}function Yd(a,b,c){var d=Ch(a)?hb:Bb;return b=Oc(b,c,3),d(a,b)}function Zd(a,b){return dh(a,Nb(b))}function $d(a,b,c,d){var e=a?Pg(a):0;return bd(e)||(a=ef(a),e=a.length),c="number"!=typeof c||d&&$c(b,c,d)?0:0>c?vg(e+c,0):c||0,"string"==typeof a||!Ch(a)&&Pe(a)?e>=c&&a.indexOf(b,c)>-1:!!e&&Qc(a,b,c)>-1}function _d(a,b,c){var d=Ch(a)?ib:Mb;return b=Oc(b,c,3),d(a,b)}function ae(a,b){return _d(a,Hf(b))}function be(a,b,c){var d=Ch(a)?hb:Bb;return b=Oc(b,c,3),d(a,function(a,c,d){return!b(a,c,d)})}function ce(a,b,c){if(c?$c(a,b,c):null==b){a=jd(a);var d=a.length;return d>0?a[Ub(0,d-1)]:B}var e=-1,f=Ue(a),d=f.length,g=d-1;for(b=wg(0>b?0:+b||0,d);++e<b;){var h=Ub(e,g),i=f[h];f[h]=f[e],f[e]=i}return f.length=b,f}function de(a){return ce(a,Bg)}function ee(a){var b=a?Pg(a):0;return bd(b)?b:Nh(a).length}function fe(a,b,c){var d=Ch(a)?mb:Xb;return c&&$c(a,b,c)&&(b=B),"function"==typeof b&&c===B||(b=Oc(b,c,3)),d(a,b)}function ge(a,b,c){if(null==a)return[];c&&$c(a,b,c)&&(b=B);var d=-1;b=Oc(b,c,3);var e=Mb(a,function(a,c,e){return{criteria:b(a,c,e),index:++d,value:a}});return Yb(e,m)}function he(a,b,c,d){return null==a?[]:(d&&$c(b,c,d)&&(c=B),Ch(b)||(b=null==b?[]:[b]),Ch(c)||(c=null==c?[]:[c]),Zb(a,b,c))}function ie(a,b){return Yd(a,Nb(b))}function je(a,b){if("function"!=typeof b){if("function"!=typeof a)throw new Xf(T);var c=a;a=b,b=c}return a=tg(a=+a)?a:0,function(){return--a<1?b.apply(this,arguments):void 0}}function ke(a,b,c){return c&&$c(a,b,c)&&(b=B),b=a&&null==b?a.length:vg(+b||0,0),Kc(a,K,B,B,B,B,b)}function le(a,b){var c;if("function"!=typeof b){if("function"!=typeof a)throw new Xf(T);var d=a;a=b,b=d}return function(){return--a>0&&(c=b.apply(this,arguments)),1>=a&&(b=B),c}}function me(a,b,c){function d(){n&&gg(n),j&&gg(j),p=0,j=n=o=B}function e(b,c){c&&gg(c),j=n=o=B,b&&(p=oh(),k=a.apply(m,i),n||j||(i=m=B))}function f(){var a=b-(oh()-l);0>=a||a>b?e(o,j):n=lg(f,a)}function g(){e(r,n)}function h(){if(i=arguments,l=oh(),m=this,o=r&&(n||!s),q===!1)var c=s&&!n;else{j||s||(p=l);var d=q-(l-p),e=0>=d||d>q;e?(j&&(j=gg(j)),p=l,k=a.apply(m,i)):j||(j=lg(g,d))}return e&&n?n=gg(n):n||b===q||(n=lg(f,b)),c&&(e=!0,k=a.apply(m,i)),!e||n||j||(i=m=B),k}var i,j,k,l,m,n,o,p=0,q=!1,r=!0;if("function"!=typeof a)throw new Xf(T);if(b=0>b?0:+b||0,c===!0){var s=!0;r=!1}else He(c)&&(s=!!c.leading,q="maxWait"in c&&vg(+c.maxWait||0,b),r="trailing"in c?!!c.trailing:r);return h.cancel=d,h}function ne(a,b){if("function"!=typeof a||b&&"function"!=typeof b)throw new Xf(T);var c=function(){var d=arguments,e=b?b.apply(this,d):d[0],f=c.cache;if(f.has(e))return f.get(e);var g=a.apply(this,d);return c.cache=f.set(e,g),g};return c.cache=new ne.Cache,c}function oe(a){if("function"!=typeof a)throw new Xf(T);return function(){return!a.apply(this,arguments)}}function pe(a){return le(2,a)}function qe(a,b){if("function"!=typeof a)throw new Xf(T);return b=vg(b===B?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,e=vg(c.length-b,0),f=Of(e);++d<e;)f[d]=c[b+d];switch(b){case 0:return a.call(this,f);case 1:return a.call(this,c[0],f);case 2:return a.call(this,c[0],c[1],f)}var g=Of(b+1);for(d=-1;++d<b;)g[d]=c[d];return g[b]=f,a.apply(this,g)}}function re(a){if("function"!=typeof a)throw new Xf(T);return function(b){return a.apply(this,b)}}function se(a,b,c){var d=!0,e=!0;if("function"!=typeof a)throw new Xf(T);return c===!1?d=!1:He(c)&&(d="leading"in c?!!c.leading:d,e="trailing"in c?!!c.trailing:e),me(a,b,{leading:d,maxWait:+b,trailing:e})}function te(a,b){return b=null==b?Bf:b,Kc(b,I,B,[a],[])}function ue(a,b,c,d){return b&&"boolean"!=typeof b&&$c(a,b,c)?b=!1:"function"==typeof b&&(d=c,c=b,b=!1),"function"==typeof c?vb(a,b,fc(c,d,1)):vb(a,b)}function ve(a,b,c){return"function"==typeof b?vb(a,!0,fc(b,c,1)):vb(a,!0)}function we(a,b){return a>b}function xe(a,b){return a>=b}function ye(a){return t(a)&&Yc(a)&&ag.call(a,"callee")&&!jg.call(a,"callee")}function ze(a){return a===!0||a===!1||t(a)&&cg.call(a)==X}function Ae(a){return t(a)&&cg.call(a)==Y}function Be(a){return!!a&&1===a.nodeType&&t(a)&&!Ne(a)}function Ce(a){return null==a?!0:Yc(a)&&(Ch(a)||Pe(a)||ye(a)||t(a)&&Ge(a.splice))?!a.length:!Nh(a).length}function De(a,b,c,d){c="function"==typeof c?fc(c,d,3):B;var e=c?c(a,b):B;return e===B?Jb(a,b,c):!!e}function Ee(a){return t(a)&&"string"==typeof a.message&&cg.call(a)==Z}function Fe(a){return"number"==typeof a&&tg(a)}function Ge(a){return He(a)&&cg.call(a)==$}function He(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}function Ie(a,b,c,d){return c="function"==typeof c?fc(c,d,3):B,Lb(a,Rc(b),c)}function Je(a){return Me(a)&&a!=+a}function Ke(a){return null==a?!1:Ge(a)?eg.test(_f.call(a)):t(a)&&Ka.test(a)}function Le(a){return null===a}function Me(a){return"number"==typeof a||t(a)&&cg.call(a)==aa}function Ne(a){var b;if(!t(a)||cg.call(a)!=ba||ye(a)||!ag.call(a,"constructor")&&(b=a.constructor,"function"==typeof b&&!(b instanceof b)))return!1;var c;return Eb(a,function(a,b){c=b}),c===B||ag.call(a,c)}function Oe(a){return He(a)&&cg.call(a)==ca}function Pe(a){return"string"==typeof a||t(a)&&cg.call(a)==ea}function Qe(a){return t(a)&&bd(a.length)&&!!Sa[cg.call(a)]}function Re(a){return a===B}function Se(a,b){return b>a}function Te(a,b){return b>=a}function Ue(a){var b=a?Pg(a):0;return bd(b)?b?ab(a):[]:ef(a)}function Ve(a){return tb(a,_e(a))}function We(a,b,c){var d=Ig(a);return c&&$c(a,b,c)&&(b=B),b?rb(d,b):d}function Xe(a){return Hb(a,_e(a))}function Ye(a,b,c){var d=null==a?B:Ib(a,ld(b),b+"");return d===B?c:d}function Ze(a,b){if(null==a)return!1;var c=ag.call(a,b);if(!c&&!_c(b)){if(b=ld(b),a=1==b.length?a:Ib(a,Wb(b,0,-1)),null==a)return!1;b=zd(b),c=ag.call(a,b)}return c||bd(a.length)&&Zc(b,a.length)&&(Ch(a)||ye(a))}function $e(a,b,c){c&&$c(a,b,c)&&(b=B);for(var d=-1,e=Nh(a),f=e.length,g={};++d<f;){var h=e[d],i=a[h];b?ag.call(g,i)?g[i].push(h):g[i]=[h]:g[i]=h}return g}function _e(a){if(null==a)return[];He(a)||(a=Uf(a));var b=a.length;b=b&&bd(b)&&(Ch(a)||ye(a))&&b||0;for(var c=a.constructor,d=-1,e="function"==typeof c&&c.prototype===a,f=Of(b),g=b>0;++d<b;)f[d]=d+"";for(var h in a)g&&Zc(h,b)||"constructor"==h&&(e||!ag.call(a,h))||f.push(h);return f}function af(a){a=kd(a);for(var b=-1,c=Nh(a),d=c.length,e=Of(d);++b<d;){var f=c[b];e[b]=[f,a[f]]}return e}function bf(a,b,c){var d=null==a?B:a[b];return d===B&&(null==a||_c(b,a)||(b=ld(b),a=1==b.length?a:Ib(a,Wb(b,0,-1)),d=null==a?B:a[zd(b)]),d=d===B?c:d),Ge(d)?d.call(a):d}function cf(a,b,c){if(null==a)return a;var d=b+"";b=null!=a[d]||_c(b,a)?[d]:ld(b);for(var e=-1,f=b.length,g=f-1,h=a;null!=h&&++e<f;){var i=b[e];He(h)&&(e==g?h[i]=c:null==h[i]&&(h[i]=Zc(b[e+1])?[]:{})),h=h[i]}return a}function df(a,b,c,d){var e=Ch(a)||Qe(a);if(b=Oc(b,d,4),null==c)if(e||He(a)){var f=a.constructor;c=e?Ch(a)?new f:[]:Ig(Ge(f)?f.prototype:B)}else c={};return(e?bb:Fb)(a,function(a,d,e){return b(c,a,d,e)}),c}function ef(a){return ac(a,Nh(a))}function ff(a){return ac(a,_e(a))}function gf(a,b,c){return b=+b||0,c===B?(c=b,b=0):c=+c||0,a>=wg(b,c)&&a<vg(b,c)}function hf(a,b,c){c&&$c(a,b,c)&&(b=c=B);var d=null==a,e=null==b;if(null==c&&(e&&"boolean"==typeof a?(c=a,a=1):"boolean"==typeof b&&(c=b,e=!0)),d&&e&&(b=1,e=!1),a=+a||0,e?(b=a,a=0):b=+b||0,c||a%1||b%1){var f=zg();return wg(a+f*(b-a+hg("1e-"+((f+"").length-1))),b)}return Ub(a,b)}function jf(a){return a=j(a),a&&a.charAt(0).toUpperCase()+a.slice(1)}function kf(a){return a=j(a),a&&a.replace(Ma,o).replace(Fa,"")}function lf(a,b,c){a=j(a),b+="";var d=a.length;return c=c===B?d:wg(0>c?0:+c||0,d),
+c-=b.length,c>=0&&a.indexOf(b,c)==c}function mf(a){return a=j(a),a&&wa.test(a)?a.replace(ua,p):a}function nf(a){return a=j(a),a&&Ea.test(a)?a.replace(Da,q):a||"(?:)"}function of(a,b,c){a=j(a),b=+b;var d=a.length;if(d>=b||!tg(b))return a;var e=(b-d)/2,f=rg(e),g=pg(e);return c=Gc("",g,c),c.slice(0,f)+a+c}function pf(a,b,c){return(c?$c(a,b,c):null==b)?b=0:b&&(b=+b),a=tf(a),yg(a,b||(Ja.test(a)?16:10))}function qf(a,b){var c="";if(a=j(a),b=+b,1>b||!a||!tg(b))return c;do b%2&&(c+=a),b=rg(b/2),a+=a;while(b);return c}function rf(a,b,c){return a=j(a),c=null==c?0:wg(0>c?0:+c||0,a.length),a.lastIndexOf(b,c)==c}function sf(a,c,d){var e=b.templateSettings;d&&$c(a,c,d)&&(c=d=B),a=j(a),c=qb(rb({},d||c),e,pb);var f,g,h=qb(rb({},c.imports),e.imports,pb),i=Nh(h),k=ac(h,i),l=0,m=c.interpolate||Na,n="__p += '",o=Vf((c.escape||Na).source+"|"+m.source+"|"+(m===za?Ha:Na).source+"|"+(c.evaluate||Na).source+"|$","g"),p="//# sourceURL="+("sourceURL"in c?c.sourceURL:"lodash.templateSources["+ ++Ra+"]")+"\n";a.replace(o,function(b,c,d,e,h,i){return d||(d=e),n+=a.slice(l,i).replace(Oa,r),c&&(f=!0,n+="' +\n__e("+c+") +\n'"),h&&(g=!0,n+="';\n"+h+";\n__p += '"),d&&(n+="' +\n((__t = ("+d+")) == null ? '' : __t) +\n'"),l=i+b.length,b}),n+="';\n";var q=c.variable;q||(n="with (obj) {\n"+n+"\n}\n"),n=(g?n.replace(qa,""):n).replace(ra,"$1").replace(sa,"$1;"),n="function("+(q||"obj")+") {\n"+(q?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(f?", __e = _.escape":"")+(g?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+n+"return __p\n}";var s=Yh(function(){return Rf(i,p+"return "+n).apply(B,k)});if(s.source=n,Ee(s))throw s;return s}function tf(a,b,c){var d=a;return(a=j(a))?(c?$c(d,b,c):null==b)?a.slice(x(a),y(a)+1):(b+="",a.slice(k(a,b),l(a,b)+1)):a}function uf(a,b,c){var d=a;return a=j(a),a?(c?$c(d,b,c):null==b)?a.slice(x(a)):a.slice(k(a,b+"")):a}function vf(a,b,c){var d=a;return a=j(a),a?(c?$c(d,b,c):null==b)?a.slice(0,y(a)+1):a.slice(0,l(a,b+"")+1):a}function wf(a,b,c){c&&$c(a,b,c)&&(b=B);var d=M,e=N;if(null!=b)if(He(b)){var f="separator"in b?b.separator:f;d="length"in b?+b.length||0:d,e="omission"in b?j(b.omission):e}else d=+b||0;if(a=j(a),d>=a.length)return a;var g=d-e.length;if(1>g)return e;var h=a.slice(0,g);if(null==f)return h+e;if(Oe(f)){if(a.slice(g).search(f)){var i,k,l=a.slice(0,g);for(f.global||(f=Vf(f.source,(Ia.exec(f)||"")+"g")),f.lastIndex=0;i=f.exec(l);)k=i.index;h=h.slice(0,null==k?g:k)}}else if(a.indexOf(f,g)!=g){var m=h.lastIndexOf(f);m>-1&&(h=h.slice(0,m))}return h+e}function xf(a){return a=j(a),a&&va.test(a)?a.replace(ta,z):a}function yf(a,b,c){return c&&$c(a,b,c)&&(b=B),a=j(a),a.match(b||Pa)||[]}function zf(a,b,c){return c&&$c(a,b,c)&&(b=B),t(a)?Cf(a):ub(a,b)}function Af(a){return function(){return a}}function Bf(a){return a}function Cf(a){return Nb(vb(a,!0))}function Df(a,b){return Ob(a,vb(b,!0))}function Ef(a,b,c){if(null==c){var d=He(b),e=d?Nh(b):B,f=e&&e.length?Hb(b,e):B;(f?f.length:d)||(f=!1,c=b,b=a,a=this)}f||(f=Hb(b,Nh(b)));var g=!0,h=-1,i=Ge(a),j=f.length;c===!1?g=!1:He(c)&&"chain"in c&&(g=c.chain);for(;++h<j;){var k=f[h],l=b[k];a[k]=l,i&&(a.prototype[k]=function(b){return function(){var c=this.__chain__;if(g||c){var d=a(this.__wrapped__),e=d.__actions__=ab(this.__actions__);return e.push({func:b,args:arguments,thisArg:a}),d.__chain__=c,d}return b.apply(a,jb([this.value()],arguments))}}(l))}return a}function Ff(){return db._=dg,this}function Gf(){}function Hf(a){return _c(a)?Rb(a):Sb(a)}function If(a){return function(b){return Ib(a,ld(b),b+"")}}function Jf(a,b,c){c&&$c(a,b,c)&&(b=c=B),a=+a||0,c=null==c?1:+c||0,null==b?(b=a,a=0):b=+b||0;for(var d=-1,e=vg(pg((b-a)/(c||1)),0),f=Of(e);++d<e;)f[d]=a,a+=c;return f}function Kf(a,b,c){if(a=rg(a),1>a||!tg(a))return[];var d=-1,e=Of(wg(a,Cg));for(b=fc(b,c,1);++d<a;)Cg>d?e[d]=b(d):b(d);return e}function Lf(a){var b=++bg;return j(a)+b}function Mf(a,b){return(+a||0)+(+b||0)}function Nf(a,b,c){return c&&$c(a,b,c)&&(b=B),b=Oc(b,c,3),1==b.length?nb(Ch(a)?a:jd(a),b):$b(a,b)}a=a?eb.defaults(db.Object(),a,eb.pick(db,Qa)):db;var Of=a.Array,Pf=a.Date,Qf=a.Error,Rf=a.Function,Sf=a.Math,Tf=a.Number,Uf=a.Object,Vf=a.RegExp,Wf=a.String,Xf=a.TypeError,Yf=Of.prototype,Zf=Uf.prototype,$f=Wf.prototype,_f=Rf.prototype.toString,ag=Zf.hasOwnProperty,bg=0,cg=Zf.toString,dg=db._,eg=Vf("^"+_f.call(ag).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),fg=a.ArrayBuffer,gg=a.clearTimeout,hg=a.parseFloat,ig=Sf.pow,jg=Zf.propertyIsEnumerable,kg=Sc(a,"Set"),lg=a.setTimeout,mg=Yf.splice,ng=a.Uint8Array,og=Sc(a,"WeakMap"),pg=Sf.ceil,qg=Sc(Uf,"create"),rg=Sf.floor,sg=Sc(Of,"isArray"),tg=a.isFinite,ug=Sc(Uf,"keys"),vg=Sf.max,wg=Sf.min,xg=Sc(Pf,"now"),yg=a.parseInt,zg=Sf.random,Ag=Tf.NEGATIVE_INFINITY,Bg=Tf.POSITIVE_INFINITY,Cg=4294967295,Dg=Cg-1,Eg=Cg>>>1,Fg=9007199254740991,Gg=og&&new og,Hg={};b.support={};b.templateSettings={escape:xa,evaluate:ya,interpolate:za,variable:"",imports:{_:b}};var Ig=function(){function a(){}return function(b){if(He(b)){a.prototype=b;var c=new a;a.prototype=B}return c||{}}}(),Jg=lc(Fb),Kg=lc(Gb,!0),Lg=mc(),Mg=mc(!0),Ng=Gg?function(a,b){return Gg.set(a,b),a}:Bf,Og=Gg?function(a){return Gg.get(a)}:Gf,Pg=Rb("length"),Qg=function(){var a=0,b=0;return function(c,d){var e=oh(),f=P-(e-b);if(b=e,f>0){if(++a>=O)return c}else a=0;return Ng(c,d)}}(),Rg=qe(function(a,b){return t(a)&&Yc(a)?xb(a,Db(b,!1,!0)):[]}),Sg=vc(),Tg=vc(!0),Ug=qe(function(a){for(var b=a.length,c=b,d=Of(l),e=Qc(),f=e==h,g=[];c--;){var i=a[c]=Yc(i=a[c])?i:[];d[c]=f&&i.length>=120?oc(c&&i):null}var j=a[0],k=-1,l=j?j.length:0,m=d[0];a:for(;++k<l;)if(i=j[k],(m?Za(m,i):e(g,i,0))<0){for(var c=b;--c;){var n=d[c];if((n?Za(n,i):e(a[c],i,0))<0)continue a}m&&m.push(i),g.push(i)}return g}),Vg=qe(function(a,b){b=Db(b);var c=sb(a,b);return Tb(a,b.sort(f)),c}),Wg=Jc(),Xg=Jc(!0),Yg=qe(function(a){return _b(Db(a,!1,!0))}),Zg=qe(function(a,b){return Yc(a)?xb(a,b):[]}),$g=qe(Kd),_g=qe(function(a){var b=a.length,c=b>2?a[b-2]:B,d=b>1?a[b-1]:B;return b>2&&"function"==typeof c?b-=2:(c=b>1&&"function"==typeof d?(--b,d):B,d=B),a.length=b,Ld(a,c,d)}),ah=qe(function(a){return a=Db(a),this.thru(function(b){return _a(Ch(b)?b:[kd(b)],a)})}),bh=qe(function(a,b){return sb(a,Db(b))}),ch=jc(function(a,b,c){ag.call(a,c)?++a[c]:a[c]=1}),dh=uc(Jg),eh=uc(Kg,!0),fh=yc(bb,Jg),gh=yc(cb,Kg),hh=jc(function(a,b,c){ag.call(a,c)?a[c].push(b):a[c]=[b]}),ih=jc(function(a,b,c){a[c]=b}),jh=qe(function(a,b,c){var d=-1,e="function"==typeof b,f=_c(b),g=Yc(a)?Of(a.length):[];return Jg(a,function(a){var h=e?b:f&&null!=a?a[b]:B;g[++d]=h?h.apply(a,c):Xc(a,b,c)}),g}),kh=jc(function(a,b,c){a[c?0:1].push(b)},function(){return[[],[]]}),lh=Ec(kb,Jg),mh=Ec(lb,Kg),nh=qe(function(a,b){if(null==a)return[];var c=b[2];return c&&$c(b[0],b[1],c)&&(b.length=1),Zb(a,Db(b),[])}),oh=xg||function(){return(new Pf).getTime()},ph=qe(function(a,b,c){var d=D;if(c.length){var e=v(c,ph.placeholder);d|=I}return Kc(a,d,b,c,e)}),qh=qe(function(a,b){b=b.length?Db(b):Xe(a);for(var c=-1,d=b.length;++c<d;){var e=b[c];a[e]=Kc(a[e],D,a)}return a}),rh=qe(function(a,b,c){var d=D|E;if(c.length){var e=v(c,rh.placeholder);d|=I}return Kc(b,d,a,c,e)}),sh=rc(G),th=rc(H),uh=qe(function(a,b){return wb(a,1,b)}),vh=qe(function(a,b,c){return wb(a,b,c)}),wh=xc(),xh=xc(!0),yh=qe(function(a,b){if(b=Db(b),"function"!=typeof a||!fb(b,i))throw new Xf(T);var c=b.length;return qe(function(d){for(var e=wg(d.length,c);e--;)d[e]=b[e](d[e]);return a.apply(this,d)})}),zh=Dc(I),Ah=Dc(J),Bh=qe(function(a,b){return Kc(a,L,B,B,B,Db(b))}),Ch=sg||function(a){return t(a)&&bd(a.length)&&cg.call(a)==W},Dh=kc(Pb),Eh=kc(function(a,b,c){return c?qb(a,b,c):rb(a,b)}),Fh=sc(Eh,ob),Gh=sc(Dh,ed),Hh=wc(Fb),Ih=wc(Gb),Jh=zc(Lg),Kh=zc(Mg),Lh=Ac(Fb),Mh=Ac(Gb),Nh=ug?function(a){var b=null==a?B:a.constructor;return"function"==typeof b&&b.prototype===a||"function"!=typeof a&&Yc(a)?id(a):He(a)?ug(a):[]}:id,Oh=Bc(!0),Ph=Bc(),Qh=qe(function(a,b){if(null==a)return{};if("function"!=typeof b[0]){var b=ib(Db(b),Wf);return fd(a,xb(_e(a),b))}var c=fc(b[0],b[1],3);return gd(a,function(a,b,d){return!c(a,b,d)})}),Rh=qe(function(a,b){return null==a?{}:"function"==typeof b[0]?gd(a,fc(b[0],b[1],3)):fd(a,Db(b))}),Sh=pc(function(a,b,c){return b=b.toLowerCase(),a+(c?b.charAt(0).toUpperCase()+b.slice(1):b)}),Th=pc(function(a,b,c){return a+(c?"-":"")+b.toLowerCase()}),Uh=Cc(),Vh=Cc(!0),Wh=pc(function(a,b,c){return a+(c?"_":"")+b.toLowerCase()}),Xh=pc(function(a,b,c){return a+(c?" ":"")+(b.charAt(0).toUpperCase()+b.slice(1))}),Yh=qe(function(a,b){try{return a.apply(B,b)}catch(c){return Ee(c)?c:new Qf(c)}}),Zh=qe(function(a,b){return function(c){return Xc(c,a,b)}}),$h=qe(function(a,b){return function(c){return Xc(a,c,b)}}),_h=Ic("ceil"),ai=Ic("floor"),bi=tc(we,Ag),ci=tc(Se,Bg),di=Ic("round");return b.prototype=c.prototype,d.prototype=Ig(c.prototype),d.prototype.constructor=d,e.prototype=Ig(c.prototype),e.prototype.constructor=e,fa.prototype["delete"]=Ua,fa.prototype.get=Va,fa.prototype.has=Wa,fa.prototype.set=Xa,Ya.prototype.push=$a,ne.Cache=fa,b.after=je,b.ary=ke,b.assign=Eh,b.at=bh,b.before=le,b.bind=ph,b.bindAll=qh,b.bindKey=rh,b.callback=zf,b.chain=Od,b.chunk=nd,b.compact=od,b.constant=Af,b.countBy=ch,b.create=We,b.curry=sh,b.curryRight=th,b.debounce=me,b.defaults=Fh,b.defaultsDeep=Gh,b.defer=uh,b.delay=vh,b.difference=Rg,b.drop=pd,b.dropRight=qd,b.dropRightWhile=rd,b.dropWhile=sd,b.fill=td,b.filter=Yd,b.flatten=vd,b.flattenDeep=wd,b.flow=wh,b.flowRight=xh,b.forEach=fh,b.forEachRight=gh,b.forIn=Jh,b.forInRight=Kh,b.forOwn=Lh,b.forOwnRight=Mh,b.functions=Xe,b.groupBy=hh,b.indexBy=ih,b.initial=yd,b.intersection=Ug,b.invert=$e,b.invoke=jh,b.keys=Nh,b.keysIn=_e,b.map=_d,b.mapKeys=Oh,b.mapValues=Ph,b.matches=Cf,b.matchesProperty=Df,b.memoize=ne,b.merge=Dh,b.method=Zh,b.methodOf=$h,b.mixin=Ef,b.modArgs=yh,b.negate=oe,b.omit=Qh,b.once=pe,b.pairs=af,b.partial=zh,b.partialRight=Ah,b.partition=kh,b.pick=Rh,b.pluck=ae,b.property=Hf,b.propertyOf=If,b.pull=Bd,b.pullAt=Vg,b.range=Jf,b.rearg=Bh,b.reject=be,b.remove=Cd,b.rest=Dd,b.restParam=qe,b.set=cf,b.shuffle=de,b.slice=Ed,b.sortBy=ge,b.sortByAll=nh,b.sortByOrder=he,b.spread=re,b.take=Fd,b.takeRight=Gd,b.takeRightWhile=Hd,b.takeWhile=Id,b.tap=Pd,b.throttle=se,b.thru=Qd,b.times=Kf,b.toArray=Ue,b.toPlainObject=Ve,b.transform=df,b.union=Yg,b.uniq=Jd,b.unzip=Kd,b.unzipWith=Ld,b.values=ef,b.valuesIn=ff,b.where=ie,b.without=Zg,b.wrap=te,b.xor=Md,b.zip=$g,b.zipObject=Nd,b.zipWith=_g,b.backflow=xh,b.collect=_d,b.compose=xh,b.each=fh,b.eachRight=gh,b.extend=Eh,b.iteratee=zf,b.methods=Xe,b.object=Nd,b.select=Yd,b.tail=Dd,b.unique=Jd,Ef(b,b),b.add=Mf,b.attempt=Yh,b.camelCase=Sh,b.capitalize=jf,b.ceil=_h,b.clone=ue,b.cloneDeep=ve,b.deburr=kf,b.endsWith=lf,b.escape=mf,b.escapeRegExp=nf,b.every=Xd,b.find=dh,b.findIndex=Sg,b.findKey=Hh,b.findLast=eh,b.findLastIndex=Tg,b.findLastKey=Ih,b.findWhere=Zd,b.first=ud,b.floor=ai,b.get=Ye,b.gt=we,b.gte=xe,b.has=Ze,b.identity=Bf,b.includes=$d,b.indexOf=xd,b.inRange=gf,b.isArguments=ye,b.isArray=Ch,b.isBoolean=ze,b.isDate=Ae,b.isElement=Be,b.isEmpty=Ce,b.isEqual=De,b.isError=Ee,b.isFinite=Fe,b.isFunction=Ge,b.isMatch=Ie,b.isNaN=Je,b.isNative=Ke,b.isNull=Le,b.isNumber=Me,b.isObject=He,b.isPlainObject=Ne,b.isRegExp=Oe,b.isString=Pe,b.isTypedArray=Qe,b.isUndefined=Re,b.kebabCase=Th,b.last=zd,b.lastIndexOf=Ad,b.lt=Se,b.lte=Te,b.max=bi,b.min=ci,b.noConflict=Ff,b.noop=Gf,b.now=oh,b.pad=of,b.padLeft=Uh,b.padRight=Vh,b.parseInt=pf,b.random=hf,b.reduce=lh,b.reduceRight=mh,b.repeat=qf,b.result=bf,b.round=di,b.runInContext=A,b.size=ee,b.snakeCase=Wh,b.some=fe,b.sortedIndex=Wg,b.sortedLastIndex=Xg,b.startCase=Xh,b.startsWith=rf,b.sum=Nf,b.template=sf,b.trim=tf,b.trimLeft=uf,b.trimRight=vf,b.trunc=wf,b.unescape=xf,b.uniqueId=Lf,b.words=yf,b.all=Xd,b.any=fe,b.contains=$d,b.eq=De,b.detect=dh,b.foldl=lh,b.foldr=mh,b.head=ud,b.include=$d,b.inject=lh,Ef(b,function(){var a={};return Fb(b,function(c,d){b.prototype[d]||(a[d]=c)}),a}(),!1),b.sample=ce,b.prototype.sample=function(a){return this.__chain__||null!=a?this.thru(function(b){return ce(b,a)}):ce(this.value())},b.VERSION=C,bb(["bind","bindKey","curry","curryRight","partial","partialRight"],function(a){b[a].placeholder=b}),bb(["drop","take"],function(a,b){e.prototype[a]=function(c){var d=this.__filtered__;if(d&&!b)return new e(this);c=null==c?1:vg(rg(c)||0,0);var f=this.clone();return d?f.__takeCount__=wg(f.__takeCount__,c):f.__views__.push({size:c,type:a+(f.__dir__<0?"Right":"")}),f},e.prototype[a+"Right"]=function(b){return this.reverse()[a](b).reverse()}}),bb(["filter","map","takeWhile"],function(a,b){var c=b+1,d=c!=S;e.prototype[a]=function(a,b){var e=this.clone();return e.__iteratees__.push({iteratee:Oc(a,b,1),type:c}),e.__filtered__=e.__filtered__||d,e}}),bb(["first","last"],function(a,b){var c="take"+(b?"Right":"");e.prototype[a]=function(){return this[c](1).value()[0]}}),bb(["initial","rest"],function(a,b){var c="drop"+(b?"":"Right");e.prototype[a]=function(){return this.__filtered__?new e(this):this[c](1)}}),bb(["pluck","where"],function(a,b){var c=b?"filter":"map",d=b?Nb:Hf;e.prototype[a]=function(a){return this[c](d(a))}}),e.prototype.compact=function(){return this.filter(Bf)},e.prototype.reject=function(a,b){return a=Oc(a,b,1),this.filter(function(b){return!a(b)})},e.prototype.slice=function(a,b){a=null==a?0:+a||0;var c=this;return c.__filtered__&&(a>0||0>b)?new e(c):(0>a?c=c.takeRight(-a):a&&(c=c.drop(a)),b!==B&&(b=+b||0,c=0>b?c.dropRight(-b):c.take(b-a)),c)},e.prototype.takeRightWhile=function(a,b){return this.reverse().takeWhile(a,b).reverse()},e.prototype.toArray=function(){return this.take(Bg)},Fb(e.prototype,function(a,c){var f=/^(?:filter|map|reject)|While$/.test(c),g=/^(?:first|last)$/.test(c),h=b[g?"take"+("last"==c?"Right":""):c];h&&(b.prototype[c]=function(){var b=g?[1]:arguments,c=this.__chain__,i=this.__wrapped__,j=!!this.__actions__.length,k=i instanceof e,l=b[0],m=k||Ch(i);m&&f&&"function"==typeof l&&1!=l.length&&(k=m=!1);var n=function(a){return g&&c?h(a,1)[0]:h.apply(B,jb([a],b))},o={func:Qd,args:[n],thisArg:B},p=k&&!j;if(g&&!c)return p?(i=i.clone(),i.__actions__.push(o),a.call(i)):h.call(B,this.value())[0];if(!g&&m){i=p?i:new e(this);var q=a.apply(i,b);return q.__actions__.push(o),new d(q,c)}return this.thru(n)})}),bb(["join","pop","push","replace","shift","sort","splice","split","unshift"],function(a){var c=(/^(?:replace|split)$/.test(a)?$f:Yf)[a],d=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",e=/^(?:join|pop|replace|shift)$/.test(a);b.prototype[a]=function(){var a=arguments;return e&&!this.__chain__?c.apply(this.value(),a):this[d](function(b){return c.apply(b,a)})}}),Fb(e.prototype,function(a,c){var d=b[c];if(d){var e=d.name,f=Hg[e]||(Hg[e]=[]);f.push({name:c,func:d})}}),Hg[Fc(B,E).name]=[{name:"wrapper",func:B}],e.prototype.clone=u,e.prototype.reverse=_,e.prototype.value=da,b.prototype.chain=Rd,b.prototype.commit=Sd,b.prototype.concat=ah,b.prototype.plant=Td,b.prototype.reverse=Ud,b.prototype.toString=Vd,b.prototype.run=b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=Wd,b.prototype.collect=b.prototype.map,b.prototype.head=b.prototype.first,b.prototype.select=b.prototype.filter,b.prototype.tail=b.prototype.rest,b}var B,C="3.10.1",D=1,E=2,F=4,G=8,H=16,I=32,J=64,K=128,L=256,M=30,N="...",O=150,P=16,Q=200,R=1,S=2,T="Expected a function",U="__lodash_placeholder__",V="[object Arguments]",W="[object Array]",X="[object Boolean]",Y="[object Date]",Z="[object Error]",$="[object Function]",_="[object Map]",aa="[object Number]",ba="[object Object]",ca="[object RegExp]",da="[object Set]",ea="[object String]",fa="[object WeakMap]",ga="[object ArrayBuffer]",ha="[object Float32Array]",ia="[object Float64Array]",ja="[object Int8Array]",ka="[object Int16Array]",la="[object Int32Array]",ma="[object Uint8Array]",na="[object Uint8ClampedArray]",oa="[object Uint16Array]",pa="[object Uint32Array]",qa=/\b__p \+= '';/g,ra=/\b(__p \+=) '' \+/g,sa=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ta=/&(?:amp|lt|gt|quot|#39|#96);/g,ua=/[&<>"'`]/g,va=RegExp(ta.source),wa=RegExp(ua.source),xa=/<%-([\s\S]+?)%>/g,ya=/<%([\s\S]+?)%>/g,za=/<%=([\s\S]+?)%>/g,Aa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,Ba=/^\w*$/,Ca=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,Da=/^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g,Ea=RegExp(Da.source),Fa=/[\u0300-\u036f\ufe20-\ufe23]/g,Ga=/\\(\\)?/g,Ha=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ia=/\w*$/,Ja=/^0[xX]/,Ka=/^\[object .+?Constructor\]$/,La=/^\d+$/,Ma=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,Na=/($^)/,Oa=/['\n\r\u2028\u2029\\]/g,Pa=function(){var a="[A-Z\\xc0-\\xd6\\xd8-\\xde]",b="[a-z\\xdf-\\xf6\\xf8-\\xff]+";return RegExp(a+"+(?="+a+b+")|"+a+"?"+b+"|"+a+"+|[0-9]+","g")}(),Qa=["Array","ArrayBuffer","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Math","Number","Object","RegExp","Set","String","_","clearTimeout","isFinite","parseFloat","parseInt","setTimeout","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap"],Ra=-1,Sa={};Sa[ha]=Sa[ia]=Sa[ja]=Sa[ka]=Sa[la]=Sa[ma]=Sa[na]=Sa[oa]=Sa[pa]=!0,Sa[V]=Sa[W]=Sa[ga]=Sa[X]=Sa[Y]=Sa[Z]=Sa[$]=Sa[_]=Sa[aa]=Sa[ba]=Sa[ca]=Sa[da]=Sa[ea]=Sa[fa]=!1;var Ta={};Ta[V]=Ta[W]=Ta[ga]=Ta[X]=Ta[Y]=Ta[ha]=Ta[ia]=Ta[ja]=Ta[ka]=Ta[la]=Ta[aa]=Ta[ba]=Ta[ca]=Ta[ea]=Ta[ma]=Ta[na]=Ta[oa]=Ta[pa]=!0,Ta[Z]=Ta[$]=Ta[_]=Ta[da]=Ta[fa]=!1;var Ua={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss"},Va={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},Wa={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&#96;":"`"},Xa={"function":!0,object:!0},Ya={0:"x30",1:"x31",2:"x32",3:"x33",4:"x34",5:"x35",6:"x36",7:"x37",8:"x38",9:"x39",A:"x41",B:"x42",C:"x43",D:"x44",E:"x45",F:"x46",a:"x61",b:"x62",c:"x63",d:"x64",e:"x65",f:"x66",n:"x6e",r:"x72",t:"x74",u:"x75",v:"x76",x:"x78"},Za={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},$a=Xa[typeof b]&&b&&!b.nodeType&&b,_a=Xa[typeof a]&&a&&!a.nodeType&&a,ab=$a&&_a&&"object"==typeof e&&e&&e.Object&&e,bb=Xa[typeof self]&&self&&self.Object&&self,cb=Xa[typeof window]&&window&&window.Object&&window,db=(_a&&_a.exports===$a&&$a,ab||cb!==(this&&this.window)&&cb||bb||this),eb=A();db._=eb,d=function(){return eb}.call(b,c,b,a),!(d!==B&&(a.exports=d))}).call(this)}).call(b,c(8)(a),function(){return this}())},function(a,b){a.exports=function(a){return a.webpackPolyfill||(a.deprecate=function(){},a.paths=[],a.children=[],a.webpackPolyfill=1),a}},function(a,b,c){"use strict";function d(a,b){var c="normal";return a&&b?c="bolditalics":a?c="bold":b&&(c="italics"),c}function e(a,b){this.fonts={},this.pdfDoc=b,this.fontWrappers={};for(var c in a)if(a.hasOwnProperty(c)){var d=a[c];this.fonts[c]={normal:d.normal,bold:d.bold,italics:d.italics,bolditalics:d.bolditalics}}}var f=c(7),g=c(10);e.prototype.provideFont=function(a,b,c){var e=d(b,c);if(!this.fonts[a]||!this.fonts[a][e])throw new Error("Font '"+a+"' in style '"+e+"' is not defined in the font section of the document definition.");return this.fontWrappers[a]=this.fontWrappers[a]||{},this.fontWrappers[a][e]||(this.fontWrappers[a][e]=new g(this.pdfDoc,this.fonts[a][e],a+"("+e+")")),this.fontWrappers[a][e]},e.prototype.setFontRefsToPdfDoc=function(){var a=this;f.each(a.fontWrappers,function(b){f.each(b,function(b){f.each(b.pdfFonts,function(b){a.pdfDoc.page.fonts[b.id]||(a.pdfDoc.page.fonts[b.id]=b.ref())})})})},a.exports=e},function(a,b,c){"use strict";function d(a,b,c){this.MAX_CHAR_TYPES=92,this.pdfkitDoc=a,this.path=b,this.pdfFonts=[],this.charCatalogue=[],this.name=c,Object.defineProperty(this,"ascender",{get:function(){var a=this.getFont(0);return a.ascender}}),Object.defineProperty(this,"decender",{get:function(){var a=this.getFont(0);return a.decender}})}var e=c(7);d.prototype.getFont=function(a){if(!this.pdfFonts[a]){var b=this.name+a;this.postscriptName&&delete this.pdfkitDoc._fontFamilies[this.postscriptName],this.pdfFonts[a]=this.pdfkitDoc.font(this.path,b)._font,this.postscriptName||(this.postscriptName=this.pdfFonts[a].name)}return this.pdfFonts[a]},d.prototype.widthOfString=function(){var a=this.getFont(0);return a.widthOfString.apply(a,arguments)},d.prototype.lineHeight=function(){var a=this.getFont(0);return a.lineHeight.apply(a,arguments)},d.prototype.ref=function(){var a=this.getFont(0);return a.ref.apply(a,arguments)};var f=function(a){return a.charCodeAt(0)};d.prototype.encode=function(a){var b=this,c=e.chain(a.split("")).map(f).uniq().value();if(c.length>b.MAX_CHAR_TYPES)throw new Error("Inline has more than "+b.MAX_CHAR_TYPES+": "+a+" different character types and therefore cannot be properly embedded into pdf.");var d=function(a){return e.uniq(a.concat(c)).length<=b.MAX_CHAR_TYPES},g=e.findIndex(b.charCatalogue,d);0>g&&(g=b.charCatalogue.length,b.charCatalogue[g]=[]);var h=b.getFont(g);h.use(a),e.each(c,function(a){e.includes(b.charCatalogue[g],a)||b.charCatalogue[g].push(a)});var i=e.map(h.encode(a),function(a){return a.charCodeAt(0).toString(16)}).join("");return{encodedText:i,fontId:h.id}},a.exports=d},function(a,b,c){"use strict";function d(a,b){g.each(b,function(b){a.push(b)})}function e(a,b,c){this.pageSize=a,this.pageMargins=b,this.tracker=new h,this.imageMeasure=c,this.tableLayouts={}}function f(a){var b=a.x,c=a.y;a.positions=[],g.each(a.canvas,function(a){var b=a.x,c=a.y,d=a.x1,e=a.y1,f=a.x2,g=a.y2;a.resetXY=function(){a.x=b,a.y=c,a.x1=d,a.y1=e,a.x2=f,a.y2=g}}),a.resetXY=function(){a.x=b,a.y=c,g.each(a.canvas,function(a){a.resetXY()})}}var g=c(7),h=c(12),i=c(13),j=c(19),k=c(20),l=c(16),m=c(23),n=c(22),o=c(17).pack,p=c(17).offsetVector,q=c(17).fontStringify,r=c(17).isFunction,s=c(14),t=c(15);e.prototype.registerTableLayouts=function(a){this.tableLayouts=o(this.tableLayouts,a)},e.prototype.layoutDocument=function(a,b,c,d,e,f,h,j,k,l){function m(a,b){return r(l)?(a=g.reject(a,function(a){return g.isEmpty(a.positions)}),g.each(a,function(a){var c=g.pick(a,["id","text","ul","ol","table","image","qr","canvas","columns","headlineLevel","style","pageBreak","pageOrientation","width","height"]);c.startPosition=g.first(a.positions),c.pageNumbers=g.chain(a.positions).map("pageNumber").uniq().value(),c.pages=b.length,c.stack=g.isArray(a.stack),a.nodeInfo=c}),g.any(a,function(a,b,c){if("before"!==a.pageBreak&&!a.pageBreakCalculated){a.pageBreakCalculated=!0;var d=g.first(a.nodeInfo.pageNumbers),e=g.chain(c).drop(b+1).filter(function(a){return g.contains(a.nodeInfo.pageNumbers,d)}).value(),f=g.chain(c).drop(b+1).filter(function(a){return g.contains(a.nodeInfo.pageNumbers,d+1)}).value(),h=g.chain(c).take(b).filter(function(a){return g.contains(a.nodeInfo.pageNumbers,d)}).value();if(l(a.nodeInfo,g.map(e,"nodeInfo"),g.map(f,"nodeInfo"),g.map(h,"nodeInfo")))return a.pageBreak="before",!0}})):!1}function n(a){g.each(a.linearNodeList,function(a){a.resetXY()})}this.docMeasure=new i(b,c,d,this.imageMeasure,this.tableLayouts,j);for(var o=this.tryLayoutDocument(a,b,c,d,e,f,h,j,k);m(o.linearNodeList,o.pages);)n(o),o=this.tryLayoutDocument(a,b,c,d,e,f,h,j,k);return o.pages},e.prototype.tryLayoutDocument=function(a,b,c,d,e,f,g,h,i,l){this.linearNodeList=[],a=this.docMeasure.measureDocument(a),this.writer=new k(new j(this.pageSize,this.pageMargins),this.tracker);var m=this;return this.writer.context().tracker.startTracking("pageAdded",function(){m.addBackground(e)}),this.addBackground(e),this.processNode(a),this.addHeadersAndFooters(f,g),null!=i&&this.addWatermark(i,b),{pages:this.writer.context().pages,linearNodeList:this.linearNodeList}},e.prototype.addBackground=function(a){var b=r(a)?a:function(){return a},c=b(this.writer.context().page+1);if(c){var d=this.writer.context().getCurrentPage().pageSize;this.writer.beginUnbreakableBlock(d.width,d.height),this.processNode(this.docMeasure.measureDocument(c)),this.writer.commitUnbreakableBlock(0,0)}},e.prototype.addStaticRepeatable=function(a,b){this.addDynamicRepeatable(function(){return a},b)},e.prototype.addDynamicRepeatable=function(a,b){for(var c=this.writer.context().pages,d=0,e=c.length;e>d;d++){this.writer.context().page=d;var f=a(d+1,e);if(f){var g=b(this.writer.context().getCurrentPage().pageSize,this.pageMargins);this.writer.beginUnbreakableBlock(g.width,g.height),this.processNode(this.docMeasure.measureDocument(f)),this.writer.commitUnbreakableBlock(g.x,g.y)}}},e.prototype.addHeadersAndFooters=function(a,b){var c=function(a,b){return{x:0,y:0,width:a.width,height:b.top}},d=function(a,b){return{x:0,y:a.height-b.bottom,width:a.width,height:b.bottom}};r(a)?this.addDynamicRepeatable(a,c):a&&this.addStaticRepeatable(a,c),r(b)?this.addDynamicRepeatable(b,d):b&&this.addStaticRepeatable(b,d)},e.prototype.addWatermark=function(a,b){function c(a,b,c){for(var d,e=a.width,f=a.height,g=.8*Math.sqrt(e*e+f*f),h=new s(c),i=new t,j=0,k=1e3,l=(j+k)/2;Math.abs(j-k)>1;)i.push({fontSize:l}),d=h.sizeOfString(b,i),d.width>g?(k=l,l=(j+k)/2):d.width<g&&(j=l,l=(j+k)/2),i.pop();return{size:d,fontSize:l}}for(var d=Object.getOwnPropertyNames(b.fonts)[0],e={text:a,font:b.provideFont(b[d],!1,!1),size:c(this.pageSize,a,b)},f=this.writer.context().pages,g=0,h=f.length;h>g;g++)f[g].watermark=e},e.prototype.processNode=function(a){function b(b){var d=a._margin;"before"===a.pageBreak&&c.writer.moveToNextPage(a.pageOrientation),d&&(c.writer.context().moveDown(d[1]),c.writer.context().addMargin(d[0],d[2])),b(),d&&(c.writer.context().addMargin(-d[0],-d[2]),c.writer.context().moveDown(d[3])),"after"===a.pageBreak&&c.writer.moveToNextPage(a.pageOrientation)}var c=this;this.linearNodeList.push(a),f(a),b(function(){var b=a.absolutePosition;if(b&&(c.writer.context().beginDetachedBlock(),c.writer.context().moveTo(b.x||0,b.y||0)),a.stack)c.processVerticalContainer(a);else if(a.columns)c.processColumns(a);else if(a.ul)c.processList(!1,a);else if(a.ol)c.processList(!0,a);else if(a.table)c.processTable(a);else if(void 0!==a.text)c.processLeaf(a);else if(a.image)c.processImage(a);else if(a.canvas)c.processCanvas(a);else if(a.qr)c.processQr(a);else if(!a._span)throw"Unrecognized document structure: "+JSON.stringify(a,q);b&&c.writer.context().endDetachedBlock()})},e.prototype.processVerticalContainer=function(a){var b=this;a.stack.forEach(function(c){b.processNode(c),d(a.positions,c.positions)})},e.prototype.processColumns=function(a){function b(a){if(!a)return null;var b=[];b.push(0);for(var d=c.length-1;d>0;d--)b.push(a);return b}var c=a.columns,e=this.writer.context().availableWidth,f=b(a._gap);f&&(e-=(f.length-1)*a._gap),l.buildColumnWidths(c,e);var g=this.processRow(c,c,f);d(a.positions,g.positions)},e.prototype.processRow=function(a,b,c,e,f){function g(a){for(var b,c=0,d=k.length;d>c;c++){var e=k[c];if(e.prevPage===a.prevPage){b=e;break}}b||(b=a,k.push(b)),b.prevY=Math.max(b.prevY,a.prevY),b.y=Math.min(b.y,a.y)}function h(a){return c&&c.length>a?c[a]:0}function i(a,b){if(a.rowSpan&&a.rowSpan>1){var c=f+a.rowSpan-1;if(c>=e.length)throw"Row span for column "+b+" (with indexes starting from 0) exceeded row count";return e[c][b]}return null}var j=this,k=[],l=[];return this.tracker.auto("pageChanged",g,function(){b=b||a,j.writer.context().beginColumnGroup();for(var e=0,f=a.length;f>e;e++){var g=a[e],k=b[e]._calcWidth,m=h(e);if(g.colSpan&&g.colSpan>1)for(var n=1;n<g.colSpan;n++)k+=b[++e]._calcWidth+c[e];j.writer.context().beginColumn(k,m,i(g,e)),g._span?g._columnEndingContext&&j.writer.context().markEnding(g):(j.processNode(g),d(l,g.positions))}j.writer.context().completeColumnGroup()}),{pageBreaks:k,positions:l}},e.prototype.processList=function(a,b){function c(a){if(h){var b=h;if(h=null,b.canvas){var c=b.canvas[0];p(c,-b._minWidth,0),e.writer.addVector(c)}else{var d=new n(e.pageSize.width);d.addInline(b._inlines[0]),d.x=-b._minWidth,d.y=a.getAscenderHeight()-d.getAscenderHeight(),e.writer.addLine(d,!0)}}}var e=this,f=a?b.ol:b.ul,g=b._gapSize;this.writer.context().addMargin(g.width);var h;this.tracker.auto("lineAdded",c,function(){f.forEach(function(a){h=a.listMarker,e.processNode(a),d(b.positions,a.positions)})}),this.writer.context().addMargin(-g.width)},e.prototype.processTable=function(a){var b=new m(a);b.beginTable(this.writer);for(var c=0,e=a.table.body.length;e>c;c++){b.beginRow(c,this.writer);var f=this.processRow(a.table.body[c],a.table.widths,a._offsets.offsets,a.table.body,c);d(a.positions,f.positions),b.endRow(c,this.writer,f.pageBreaks)}b.endTable(this.writer)},e.prototype.processLeaf=function(a){for(var b=this.buildNextLine(a),c=b?b.getHeight():0,d=a.maxHeight||-1;b&&(-1===d||d>c);){var e=this.writer.addLine(b);a.positions.push(e),b=this.buildNextLine(a),b&&(c+=b.getHeight())}},e.prototype.buildNextLine=function(a){if(!a._inlines||0===a._inlines.length)return null;for(var b=new n(this.writer.context().availableWidth);a._inlines&&a._inlines.length>0&&b.hasEnoughSpaceForInline(a._inlines[0]);)b.addInline(a._inlines.shift());return b.lastLineInParagraph=0===a._inlines.length,b},e.prototype.processImage=function(a){var b=this.writer.addImage(a);a.positions.push(b)},e.prototype.processCanvas=function(a){var b=a._minHeight;this.writer.context().availableHeight<b&&this.writer.moveToNextPage(),a.canvas.forEach(function(b){var c=this.writer.addVector(b);a.positions.push(c)},this),this.writer.context().moveDown(b)},e.prototype.processQr=function(a){var b=this.writer.addQr(a);a.positions.push(b)},a.exports=e},function(a,b){"use strict";function c(){this.events={}}c.prototype.startTracking=function(a,b){var c=this.events[a]||(this.events[a]=[]);c.indexOf(b)<0&&c.push(b)},c.prototype.stopTracking=function(a,b){var c=this.events[a];if(c){var d=c.indexOf(b);d>=0&&c.splice(d,1)}},c.prototype.emit=function(a){var b=Array.prototype.slice.call(arguments,1),c=this.events[a];c&&c.forEach(function(a){a.apply(this,b)})},c.prototype.auto=function(a,b,c){this.startTracking(a,b),c(),this.stopTracking(a,b)},a.exports=c},function(a,b,c){"use strict";function d(a,b,c,d,g,h){this.textTools=new e(a),this.styleStack=new f(b,c),this.imageMeasure=d,this.tableLayouts=g,this.images=h,this.autoImageIndex=1}var e=c(14),f=c(15),g=c(16),h=c(17).fontStringify,i=c(17).pack,j=c(18);d.prototype.measureDocument=function(a){return this.measureNode(a)},d.prototype.measureNode=function(a){function b(a){var b=a._margin;return b&&(a._minWidth+=b[0]+b[2],a._maxWidth+=b[0]+b[2]),a}function c(){function b(a,b){return a.marginLeft||a.marginTop||a.marginRight||a.marginBottom?[a.marginLeft||b[0]||0,a.marginTop||b[1]||0,a.marginRight||b[2]||0,a.marginBottom||b[3]||0]:b}function c(a){for(var b={},c=a.length-1;c>=0;c--){var e=a[c],f=d.styleStack.styleDictionary[e];for(var g in f)f.hasOwnProperty(g)&&(b[g]=f[g])}return b}function e(a){return"number"==typeof a||a instanceof Number?a=[a,a,a,a]:a instanceof Array&&2===a.length&&(a=[a[0],a[1],a[0],a[1]]),a}var f=[void 0,void 0,void 0,void 0];if(a.style){var g=a.style instanceof Array?a.style:[a.style],h=c(g);h&&(f=b(h,f)),h.margin&&(f=e(h.margin))}return f=b(a,f),a.margin&&(f=e(a.margin)),void 0===f[0]&&void 0===f[1]&&void 0===f[2]&&void 0===f[3]?null:f}a instanceof Array?a={stack:a}:("string"==typeof a||a instanceof String)&&(a={text:a}),0===Object.keys(a).length&&(a={text:""});var d=this;return this.styleStack.auto(a,function(){if(a._margin=c(a),a.columns)return b(d.measureColumns(a));if(a.stack)return b(d.measureVerticalContainer(a));if(a.ul)return b(d.measureList(!1,a));if(a.ol)return b(d.measureList(!0,a));if(a.table)return b(d.measureTable(a));if(void 0!==a.text)return b(d.measureLeaf(a));if(a.image)return b(d.measureImage(a));if(a.canvas)return b(d.measureCanvas(a));if(a.qr)return b(d.measureQr(a));throw"Unrecognized document structure: "+JSON.stringify(a,h);
 })},d.prototype.convertIfBase64Image=function(a){if(/^data:image\/(jpeg|jpg|png);base64,/.test(a.image)){var b="$$pdfmake$$"+this.autoImageIndex++;this.images[b]=a.image,a.image=b}},d.prototype.measureImage=function(a){this.images&&this.convertIfBase64Image(a);var b=this.imageMeasure.measureImage(a.image);if(a.fit){var c=b.width/b.height>a.fit[0]/a.fit[1]?a.fit[0]/b.width:a.fit[1]/b.height;a._width=a._minWidth=a._maxWidth=b.width*c,a._height=b.height*c}else a._width=a._minWidth=a._maxWidth=a.width||b.width,a._height=a.height||b.height*a._width/b.width;return a._alignment=this.styleStack.getProperty("alignment"),a},d.prototype.measureLeaf=function(a){var b=this.styleStack.clone();b.push(a);var c=this.textTools.buildInlines(a.text,b);return a._inlines=c.items,a._minWidth=c.minWidth,a._maxWidth=c.maxWidth,a},d.prototype.measureVerticalContainer=function(a){var b=a.stack;a._minWidth=0,a._maxWidth=0;for(var c=0,d=b.length;d>c;c++)b[c]=this.measureNode(b[c]),a._minWidth=Math.max(a._minWidth,b[c]._minWidth),a._maxWidth=Math.max(a._maxWidth,b[c]._maxWidth);return a},d.prototype.gapSizeForList=function(a,b){if(a){var c=b.length.toString().replace(/./g,"9");return this.textTools.sizeOfString(c+". ",this.styleStack)}return this.textTools.sizeOfString("9. ",this.styleStack)},d.prototype.buildMarker=function(a,b,c,d){var e;if(a)e={_inlines:this.textTools.buildInlines(b,c).items};else{var f=d.fontSize/6;e={canvas:[{x:f,y:d.height/d.lineHeight+d.decender-d.fontSize/3,r1:f,r2:f,type:"ellipse",color:"black"}]}}return e._minWidth=e._maxWidth=d.width,e._minHeight=e._maxHeight=d.height,e},d.prototype.measureList=function(a,b){var c=this.styleStack.clone(),d=a?b.ol:b.ul;b._gapSize=this.gapSizeForList(a,d),b._minWidth=0,b._maxWidth=0;for(var e=1,f=0,g=d.length;g>f;f++){var h=d[f]=this.measureNode(d[f]),i=e++ +". ";h.ol||h.ul||(h.listMarker=this.buildMarker(a,h.counter||i,c,b._gapSize)),b._minWidth=Math.max(b._minWidth,d[f]._minWidth+b._gapSize.width),b._maxWidth=Math.max(b._maxWidth,d[f]._maxWidth+b._gapSize.width)}return b},d.prototype.measureColumns=function(a){var b=a.columns;a._gap=this.styleStack.getProperty("columnGap")||0;for(var c=0,d=b.length;d>c;c++)b[c]=this.measureNode(b[c]);var e=g.measureMinMax(b);return a._minWidth=e.min+a._gap*(b.length-1),a._maxWidth=e.max+a._gap*(b.length-1),a},d.prototype.measureTable=function(a){function b(a,b){return function(){return null!==b&&"object"==typeof b&&(b.fillColor=a.styleStack.getProperty("fillColor")),a.measureNode(b)}}function c(b){var c=a.layout;("string"==typeof a.layout||a instanceof String)&&(c=b[c]);var d={hLineWidth:function(a,b){return 1},vLineWidth:function(a,b){return 1},hLineColor:function(a,b){return"black"},vLineColor:function(a,b){return"black"},paddingLeft:function(a,b){return 4},paddingRight:function(a,b){return 4},paddingTop:function(a,b){return 2},paddingBottom:function(a,b){return 2}};return i(d,c)}function d(b){for(var c=[],d=0,e=0,f=0,g=a.table.widths.length;g>f;f++){var h=e+b.vLineWidth(f,a)+b.paddingLeft(f,a);c.push(h),d+=h,e=b.paddingRight(f,a)}return d+=e+b.vLineWidth(a.table.widths.length,a),{total:d,offsets:c}}function e(){for(var b,c,d=0,e=p.length;e>d;d++){var g=p[d],h=f(g.col,g.span,a._offsets),i=g.minWidth-h.minWidth,j=g.maxWidth-h.maxWidth;if(i>0)for(b=i/g.span,c=0;c<g.span;c++)a.table.widths[g.col+c]._minWidth+=b;if(j>0)for(b=j/g.span,c=0;c<g.span;c++)a.table.widths[g.col+c]._maxWidth+=b}}function f(b,c,d){for(var e={minWidth:0,maxWidth:0},f=0;c>f;f++)e.minWidth+=a.table.widths[b+f]._minWidth+(f?d.offsets[b+f]:0),e.maxWidth+=a.table.widths[b+f]._maxWidth+(f?d.offsets[b+f]:0);return e}function h(a,b,c){for(var d=1;c>d;d++)a[b+d]={_span:!0,_minWidth:0,_maxWidth:0,rowSpan:a[b].rowSpan}}function j(a,b,c,d){for(var e=1;d>e;e++)a.body[b+e][c]={_span:!0,_minWidth:0,_maxWidth:0,fillColor:a.body[b][c].fillColor}}function k(a){if(a.table.widths||(a.table.widths="auto"),"string"==typeof a.table.widths||a.table.widths instanceof String)for(a.table.widths=[a.table.widths];a.table.widths.length<a.table.body[0].length;)a.table.widths.push(a.table.widths[a.table.widths.length-1]);for(var b=0,c=a.table.widths.length;c>b;b++){var d=a.table.widths[b];("number"==typeof d||d instanceof Number||"string"==typeof d||d instanceof String)&&(a.table.widths[b]={width:d})}}k(a),a._layout=c(this.tableLayouts),a._offsets=d(a._layout);var l,m,n,o,p=[];for(l=0,n=a.table.body[0].length;n>l;l++){var q=a.table.widths[l];for(q._minWidth=0,q._maxWidth=0,m=0,o=a.table.body.length;o>m;m++){var r=a.table.body[m],s=r[l];if(!s._span){s=r[l]=this.styleStack.auto(s,b(this,s)),s.colSpan&&s.colSpan>1?(h(r,l,s.colSpan),p.push({col:l,span:s.colSpan,minWidth:s._minWidth,maxWidth:s._maxWidth})):(q._minWidth=Math.max(q._minWidth,s._minWidth),q._maxWidth=Math.max(q._maxWidth,s._maxWidth))}s.rowSpan&&s.rowSpan>1&&j(a.table,m,l,s.rowSpan)}}e();var t=g.measureMinMax(a.table.widths);return a._minWidth=t.min+a._offsets.total,a._maxWidth=t.max+a._offsets.total,a},d.prototype.measureCanvas=function(a){for(var b=0,c=0,d=0,e=a.canvas.length;e>d;d++){var f=a.canvas[d];switch(f.type){case"ellipse":b=Math.max(b,f.x+f.r1),c=Math.max(c,f.y+f.r2);break;case"rect":b=Math.max(b,f.x+f.w),c=Math.max(c,f.y+f.h);break;case"line":b=Math.max(b,f.x1,f.x2),c=Math.max(c,f.y1,f.y2);break;case"polyline":for(var g=0,h=f.points.length;h>g;g++)b=Math.max(b,f.points[g].x),c=Math.max(c,f.points[g].y)}}return a._minWidth=a._maxWidth=b,a._minHeight=a._maxHeight=c,a},d.prototype.measureQr=function(a){return a=j.measure(a),a._alignment=this.styleStack.getProperty("alignment"),a},a.exports=d},function(a,b){"use strict";function c(a){this.fontProvider=a}function d(a,b){var c=[];a=a.replace("  ","    ");var d;d=b?[a,""]:a.match(j);for(var e=0,f=d.length;f-1>e;e++){var g=d[e],h=0===g.length;if(h){var i=0===c.length||c[c.length-1].lineEnd;i?c.push({text:"",lineEnd:!0}):c[c.length-1].lineEnd=!0}else c.push({text:g})}return c}function e(a,b){b=b||{},a=a||{};for(var c in a)"text"!=c&&a.hasOwnProperty(c)&&(b[c]=a[c]);return b}function f(a){var b=[];("string"==typeof a||a instanceof String)&&(a=[a]);for(var c=0,f=a.length;f>c;c++){var g,h=a[c],i=null;"string"==typeof h||h instanceof String?g=d(h):(g=d(h.text,h.noWrap),i=e(h));for(var j=0,k=g.length;k>j;j++){var l={text:g[j].text};g[j].lineEnd&&(l.lineEnd=!0),e(i,l),b.push(l)}}return b}function g(a){return a.replace(/[^A-Za-z0-9\[\] ]/g,function(a){return m[a]||a})}function h(a,b,c,d){var e;return void 0!==a[c]&&null!==a[c]?a[c]:b?(b.auto(a,function(){e=b.getProperty(c)}),null!==e&&void 0!==e?e:d):d}function i(a,b,c){var d=f(b);return d.forEach(function(b){var d=h(b,c,"font","Roboto"),e=h(b,c,"fontSize",12),f=h(b,c,"bold",!1),i=h(b,c,"italics",!1),j=h(b,c,"color","black"),m=h(b,c,"decoration",null),n=h(b,c,"decorationColor",null),o=h(b,c,"decorationStyle",null),p=h(b,c,"background",null),q=h(b,c,"lineHeight",1),r=a.provideFont(d,f,i);b.width=r.widthOfString(g(b.text),e),b.height=r.lineHeight(e)*q;var s=b.text.match(k),t=b.text.match(l);s?b.leadingCut=r.widthOfString(s[0],e):b.leadingCut=0,t?b.trailingCut=r.widthOfString(t[0],e):b.trailingCut=0,b.alignment=h(b,c,"alignment","left"),b.font=r,b.fontSize=e,b.color=j,b.decoration=m,b.decorationColor=n,b.decorationStyle=o,b.background=p}),d}var j=/([^ ,\/!.?:;\-\n]*[ ,\/!.?:;\-]*)|\n/g,k=/^(\s)+/g,l=/(\s)+$/g;c.prototype.buildInlines=function(a,b){function c(a){return Math.max(0,a.width-a.leadingCut-a.trailingCut)}var d,e=i(this.fontProvider,a,b),f=0,g=0;return e.forEach(function(a){f=Math.max(f,a.width-a.leadingCut-a.trailingCut),d||(d={width:0,leadingCut:a.leadingCut,trailingCut:0}),d.width+=a.width,d.trailingCut=a.trailingCut,g=Math.max(g,c(d)),a.lineEnd&&(d=null)}),h({},b,"noWrap",!1)&&(f=g),{items:e,minWidth:f,maxWidth:g}},c.prototype.sizeOfString=function(a,b){a=a.replace("       ","    ");var c=h({},b,"font","Roboto"),d=h({},b,"fontSize",12),e=h({},b,"bold",!1),f=h({},b,"italics",!1),i=h({},b,"lineHeight",1),j=this.fontProvider.provideFont(c,e,f);return{width:j.widthOfString(g(a),d),height:j.lineHeight(d)*i,fontSize:d,lineHeight:i,ascender:j.ascender/1e3*d,decender:j.decender/1e3*d}};var m={"Ą":"A","Ć":"C","Ę":"E","Ł":"L","Ń":"N","Ó":"O","Ś":"S","Ź":"Z","Ż":"Z","ą":"a","ć":"c","ę":"e","ł":"l","ń":"n","ó":"o","ś":"s","ź":"z","ż":"z"};a.exports=c},function(a,b){"use strict";function c(a,b){this.defaultStyle=b||{},this.styleDictionary=a,this.styleOverrides=[]}c.prototype.clone=function(){var a=new c(this.styleDictionary,this.defaultStyle);return this.styleOverrides.forEach(function(b){a.styleOverrides.push(b)}),a},c.prototype.push=function(a){this.styleOverrides.push(a)},c.prototype.pop=function(a){for(a=a||1;a-- >0;)this.styleOverrides.pop()},c.prototype.autopush=function(a){if("string"==typeof a||a instanceof String)return 0;var b=[];a.style&&(b=a.style instanceof Array?a.style:[a.style]);for(var c=0,d=b.length;d>c;c++)this.push(b[c]);var e={},f=!1;return["font","fontSize","bold","italics","alignment","color","columnGap","fillColor","decoration","decorationStyle","decorationColor","background","lineHeight","noWrap"].forEach(function(b){void 0!==a[b]&&null!==a[b]&&(e[b]=a[b],f=!0)}),f&&this.push(e),b.length+(f?1:0)},c.prototype.auto=function(a,b){var c=this.autopush(a),d=b();return c>0&&this.pop(c),d},c.prototype.getProperty=function(a){if(this.styleOverrides)for(var b=this.styleOverrides.length-1;b>=0;b--){var c=this.styleOverrides[b];if("string"==typeof c||c instanceof String){var d=this.styleDictionary[c];if(d&&null!==d[a]&&void 0!==d[a])return d[a]}else if(void 0!==c[a]&&null!==c[a])return c[a]}return this.defaultStyle&&this.defaultStyle[a]},a.exports=c},function(a,b){"use strict";function c(a,b){var c=[],f=0,g=0,h=[],i=0,j=0,k=[],l=b;a.forEach(function(a){d(a)?(c.push(a),f+=a._minWidth,g+=a._maxWidth):e(a)?(h.push(a),i=Math.max(i,a._minWidth),j=Math.max(j,a._maxWidth)):k.push(a)}),k.forEach(function(a){"string"==typeof a.width&&/\d+%/.test(a.width)&&(a.width=parseFloat(a.width)*l/100),a.width<a._minWidth&&a.elasticWidth?a._calcWidth=a._minWidth:a._calcWidth=a.width,b-=a._calcWidth});var m=f+i*h.length,n=g+j*h.length;if(m>=b)c.forEach(function(a){a._calcWidth=a._minWidth}),h.forEach(function(a){a._calcWidth=i});else{if(b>n)c.forEach(function(a){a._calcWidth=a._maxWidth,b-=a._calcWidth});else{var o=b-m,p=n-m;c.forEach(function(a){var c=a._maxWidth-a._minWidth;a._calcWidth=a._minWidth+c*o/p,b-=a._calcWidth})}if(h.length>0){var q=b/h.length;h.forEach(function(a){a._calcWidth=q})}}}function d(a){return"auto"===a.width}function e(a){return null===a.width||void 0===a.width||"*"===a.width||"star"===a.width}function f(a){for(var b={min:0,max:0},c={min:0,max:0},f=0,g=0,h=a.length;h>g;g++){var i=a[g];e(i)?(c.min=Math.max(c.min,i._minWidth),c.max=Math.max(c.max,i._maxWidth),f++):d(i)?(b.min+=i._minWidth,b.max+=i._maxWidth):(b.min+=void 0!==i.width&&i.width||i._minWidth,b.max+=void 0!==i.width&&i.width||i._maxWidth)}return f&&(b.min+=f*c.min,b.max+=f*c.max),b}a.exports={buildColumnWidths:c,measureMinMax:f,isAutoColumn:d,isStarColumn:e}},function(a,b){"use strict";function c(){for(var a={},b=0,c=arguments.length;c>b;b++){var d=arguments[b];if(d)for(var e in d)d.hasOwnProperty(e)&&(a[e]=d[e])}return a}function d(a,b,c){switch(a.type){case"ellipse":case"rect":a.x+=b,a.y+=c;break;case"line":a.x1+=b,a.x2+=b,a.y1+=c,a.y2+=c;break;case"polyline":for(var d=0,e=a.points.length;e>d;d++)a.points[d].x+=b,a.points[d].y+=c}}function e(a,b){return"font"===a?"font":b}function f(a){var b={};return a&&"[object Function]"===b.toString.call(a)}a.exports={pack:c,fontStringify:e,offsetVector:d,isFunction:f}},function(a,b){"use strict";function c(a,b){var c={numeric:h,alphanumeric:i,octet:j},d={L:o,M:p,Q:q,H:r};b=b||{};var e=b.version||-1,f=d[(b.eccLevel||"L").toUpperCase()],g=b.mode?c[b.mode.toLowerCase()]:-1,k="mask"in b?b.mask:-1;if(0>g)g="string"==typeof a?a.match(l)?h:a.match(n)?i:j:j;else if(g!=h&&g!=i&&g!=j)throw"invalid or unsupported mode";if(a=K(g,a),null===a)throw"invalid data format";if(0>f||f>3)throw"invalid ECC level";if(0>e){for(e=1;40>=e&&!(a.length<=J(e,g,f));++e);if(e>40)throw"too large data for the Qr format"}else if(1>e||e>40)throw"invalid Qr version! should be between 1 and 40";if(-1!=k&&(0>k||k>8))throw"invalid mask";return U(a,e,g,f,k)}function d(a,b){var d=[],e=a.background||"#fff",f=a.foreground||"#000",g=c(a,b),h=g.length,i=Math.floor(b.fit?b.fit/h:5),j=h*i;d.push({type:"rect",x:0,y:0,w:j,h:j,lineWidth:0,color:e});for(var k=0;h>k;++k)for(var l=0;h>l;++l)g[k][l]&&d.push({type:"rect",x:i*k,y:i*l,w:i,h:i,lineWidth:0,color:f});return{canvas:d,size:j}}function e(a){var b=d(a.qr,a);return a._canvas=b.canvas,a._width=a._height=a._minWidth=a._maxWidth=a._minHeight=a._maxHeight=b.size,a}for(var f=[null,[[10,7,17,13],[1,1,1,1],[]],[[16,10,28,22],[1,1,1,1],[4,16]],[[26,15,22,18],[1,1,2,2],[4,20]],[[18,20,16,26],[2,1,4,2],[4,24]],[[24,26,22,18],[2,1,4,4],[4,28]],[[16,18,28,24],[4,2,4,4],[4,32]],[[18,20,26,18],[4,2,5,6],[4,20,36]],[[22,24,26,22],[4,2,6,6],[4,22,40]],[[22,30,24,20],[5,2,8,8],[4,24,44]],[[26,18,28,24],[5,4,8,8],[4,26,48]],[[30,20,24,28],[5,4,11,8],[4,28,52]],[[22,24,28,26],[8,4,11,10],[4,30,56]],[[22,26,22,24],[9,4,16,12],[4,32,60]],[[24,30,24,20],[9,4,16,16],[4,24,44,64]],[[24,22,24,30],[10,6,18,12],[4,24,46,68]],[[28,24,30,24],[10,6,16,17],[4,24,48,72]],[[28,28,28,28],[11,6,19,16],[4,28,52,76]],[[26,30,28,28],[13,6,21,18],[4,28,54,80]],[[26,28,26,26],[14,7,25,21],[4,28,56,84]],[[26,28,28,30],[16,8,25,20],[4,32,60,88]],[[26,28,30,28],[17,8,25,23],[4,26,48,70,92]],[[28,28,24,30],[17,9,34,23],[4,24,48,72,96]],[[28,30,30,30],[18,9,30,25],[4,28,52,76,100]],[[28,30,30,30],[20,10,32,27],[4,26,52,78,104]],[[28,26,30,30],[21,12,35,29],[4,30,56,82,108]],[[28,28,30,28],[23,12,37,34],[4,28,56,84,112]],[[28,30,30,30],[25,12,40,34],[4,32,60,88,116]],[[28,30,30,30],[26,13,42,35],[4,24,48,72,96,120]],[[28,30,30,30],[28,14,45,38],[4,28,52,76,100,124]],[[28,30,30,30],[29,15,48,40],[4,24,50,76,102,128]],[[28,30,30,30],[31,16,51,43],[4,28,54,80,106,132]],[[28,30,30,30],[33,17,54,45],[4,32,58,84,110,136]],[[28,30,30,30],[35,18,57,48],[4,28,56,84,112,140]],[[28,30,30,30],[37,19,60,51],[4,32,60,88,116,144]],[[28,30,30,30],[38,19,63,53],[4,28,52,76,100,124,148]],[[28,30,30,30],[40,20,66,56],[4,22,48,74,100,126,152]],[[28,30,30,30],[43,21,70,59],[4,26,52,78,104,130,156]],[[28,30,30,30],[45,22,74,62],[4,30,56,82,108,134,160]],[[28,30,30,30],[47,24,77,65],[4,24,52,80,108,136,164]],[[28,30,30,30],[49,25,81,68],[4,28,56,84,112,140,168]]],g=0,h=1,i=2,j=4,k=8,l=/^\d*$/,m=/^[A-Za-z0-9 $%*+\-.\/:]*$/,n=/^[A-Z0-9 $%*+\-.\/:]*$/,o=1,p=0,q=3,r=2,s=[],t=[-1],u=0,v=1;255>u;++u)s.push(v),t[v]=u,v=2*v^(v>=128?285:0);for(var w=[[]],u=0;30>u;++u){for(var x=w[u],y=[],z=0;u>=z;++z){var A=u>z?s[x[z]]:0,B=s[(u+(x[z-1]||0))%255];y.push(t[A^B])}w.push(y)}for(var C={},u=0;45>u;++u)C["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".charAt(u)]=u;var D=[function(a,b){return(a+b)%2===0},function(a,b){return a%2===0},function(a,b){return b%3===0},function(a,b){return(a+b)%3===0},function(a,b){return((a/2|0)+(b/3|0))%2===0},function(a,b){return a*b%2+a*b%3===0},function(a,b){return(a*b%2+a*b%3)%2===0},function(a,b){return((a+b)%2+a*b%3)%2===0}],E=function(a){return a>6},F=function(a){return 4*a+17},G=function(a){var b=f[a],c=16*a*a+128*a+64;return E(a)&&(c-=36),b[2].length&&(c-=25*b[2].length*b[2].length-10*b[2].length-55),c},H=function(a,b){var c=-8&G(a),d=f[a];return c-=8*d[0][b]*d[1][b]},I=function(a,b){switch(b){case h:return 10>a?10:27>a?12:14;case i:return 10>a?9:27>a?11:13;case j:return 10>a?8:16;case k:return 10>a?8:27>a?10:12}},J=function(a,b,c){var d=H(a,c)-4-I(a,b);switch(b){case h:return 3*(d/10|0)+(4>d%10?0:7>d%10?1:2);case i:return 2*(d/11|0)+(6>d%11?0:1);case j:return d/8|0;case k:return d/13|0}},K=function(a,b){switch(a){case h:return b.match(l)?b:null;case i:return b.match(m)?b.toUpperCase():null;case j:if("string"==typeof b){for(var c=[],d=0;d<b.length;++d){var e=b.charCodeAt(d);128>e?c.push(e):2048>e?c.push(192|e>>6,128|63&e):65536>e?c.push(224|e>>12,128|e>>6&63,128|63&e):c.push(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)}return c}return b}},L=function(a,b,c,d){var e=[],f=0,k=8,l=c.length,m=function(a,b){if(b>=k){for(e.push(f|a>>(b-=k));b>=8;)e.push(a>>(b-=8)&255);f=0,k=8}b>0&&(f|=(a&(1<<b)-1)<<(k-=b))},n=I(a,b);switch(m(b,4),m(l,n),b){case h:for(var o=2;l>o;o+=3)m(parseInt(c.substring(o-2,o+1),10),10);m(parseInt(c.substring(o-2),10),[0,4,7][l%3]);break;case i:for(var o=1;l>o;o+=2)m(45*C[c.charAt(o-1)]+C[c.charAt(o)],11);l%2==1&&m(C[c.charAt(o-1)],6);break;case j:for(var o=0;l>o;++o)m(c[o],8)}for(m(g,4),8>k&&e.push(f);e.length+1<d;)e.push(236,17);return e.length<d&&e.push(236),e},M=function(a,b){for(var c=a.slice(0),d=a.length,e=b.length,f=0;e>f;++f)c.push(0);for(var f=0;d>f;){var g=t[c[f++]];if(g>=0)for(var h=0;e>h;++h)c[f+h]^=s[(g+b[h])%255]}return c.slice(d)},N=function(a,b,c){for(var d=[],e=a.length/b|0,f=0,g=b-a.length%b,h=0;g>h;++h)d.push(f),f+=e;for(var h=g;b>h;++h)d.push(f),f+=e+1;d.push(f);for(var i=[],h=0;b>h;++h)i.push(M(a.slice(d[h],d[h+1]),c));for(var j=[],k=a.length/b|0,h=0;k>h;++h)for(var l=0;b>l;++l)j.push(a[d[l]+h]);for(var l=g;b>l;++l)j.push(a[d[l+1]-1]);for(var h=0;h<c.length;++h)for(var l=0;b>l;++l)j.push(i[l][h]);return j},O=function(a,b,c,d){for(var e=a<<d,f=b-1;f>=0;--f)e>>d+f&1&&(e^=c<<f);return a<<d|e},P=function(a){for(var b=f[a],c=F(a),d=[],e=[],g=0;c>g;++g)d.push([]),e.push([]);var h=function(a,b,c,f,g){for(var h=0;c>h;++h)for(var i=0;f>i;++i)d[a+h][b+i]=g[h]>>i&1,e[a+h][b+i]=1};h(0,0,9,9,[127,65,93,93,93,65,383,0,64]),h(c-8,0,8,9,[256,127,65,93,93,93,65,127]),h(0,c-8,9,8,[254,130,186,186,186,130,254,0,0]);for(var g=9;c-8>g;++g)d[6][g]=d[g][6]=1&~g,e[6][g]=e[g][6]=1;for(var i=b[2],j=i.length,g=0;j>g;++g)for(var k=0===g||g===j-1?1:0,l=0===g?j-1:j,m=k;l>m;++m)h(i[g],i[m],5,5,[31,17,21,17,31]);if(E(a))for(var n=O(a,6,7973,12),o=0,g=0;6>g;++g)for(var m=0;3>m;++m)d[g][c-11+m]=d[c-11+m][g]=n>>o++&1,e[g][c-11+m]=e[c-11+m][g]=1;return{matrix:d,reserved:e}},Q=function(a,b,c){for(var d=a.length,e=0,f=-1,g=d-1;g>=0;g-=2){6==g&&--g;for(var h=0>f?d-1:0,i=0;d>i;++i){for(var j=g;j>g-2;--j)b[h][j]||(a[h][j]=c[e>>3]>>(7&~e)&1,++e);h+=f}f=-f}return a},R=function(a,b,c){for(var d=D[c],e=a.length,f=0;e>f;++f)for(var g=0;e>g;++g)b[f][g]||(a[f][g]^=d(f,g));return a},S=function(a,b,c,d){for(var e=a.length,f=21522^O(c<<3|d,5,1335,10),g=0;15>g;++g){var h=[0,1,2,3,4,5,7,8,e-7,e-6,e-5,e-4,e-3,e-2,e-1][g],i=[e-1,e-2,e-3,e-4,e-5,e-6,e-7,e-8,7,5,4,3,2,1,0][g];a[h][8]=a[8][i]=f>>g&1}return a},T=function(a){for(var b=3,c=3,d=40,e=10,f=function(a){for(var c=0,e=0;e<a.length;++e)a[e]>=5&&(c+=b+(a[e]-5));for(var e=5;e<a.length;e+=2){var f=a[e];a[e-1]==f&&a[e-2]==3*f&&a[e-3]==f&&a[e-4]==f&&(a[e-5]>=4*f||a[e+1]>=4*f)&&(c+=d)}return c},g=a.length,h=0,i=0,j=0;g>j;++j){var k,l=a[j];k=[0];for(var m=0;g>m;){var n;for(n=0;g>m&&l[m];++n)++m;for(k.push(n),n=0;g>m&&!l[m];++n)++m;k.push(n)}h+=f(k),k=[0];for(var m=0;g>m;){var n;for(n=0;g>m&&a[m][j];++n)++m;for(k.push(n),n=0;g>m&&!a[m][j];++n)++m;k.push(n)}h+=f(k);var o=a[j+1]||[];i+=l[0];for(var m=1;g>m;++m){var p=l[m];i+=p,l[m-1]==p&&o[m]===p&&o[m-1]===p&&(h+=c)}}return h+=e*(Math.abs(i/g/g-.5)/.05|0)},U=function(a,b,c,d,e){var g=f[b],h=L(b,c,a,H(b,d)>>3);h=N(h,g[1][d],w[g[0][d]]);var i=P(b),j=i.matrix,k=i.reserved;if(Q(j,k,h),0>e){R(j,k,0),S(j,k,d,0);var l=0,m=T(j);for(R(j,k,0),e=1;8>e;++e){R(j,k,e),S(j,k,d,e);var n=T(j);m>n&&(m=n,l=e),R(j,k,e)}e=l}return R(j,k,e),S(j,k,d,e),j};a.exports={measure:e}},function(a,b,c){"use strict";function d(a,b){this.pages=[],this.pageMargins=b,this.x=b.left,this.availableWidth=a.width-b.left-b.right,this.availableHeight=0,this.page=-1,this.snapshots=[],this.endingCell=null,this.tracker=new g,this.addPage(a)}function e(a,b){return void 0===a?b:"landscape"===a?"landscape":"portrait"}function f(a,b){var c;return c=a.page>b.page?a:b.page>a.page?b:a.y>b.y?a:b,{page:c.page,x:c.x,y:c.y,availableHeight:c.availableHeight,availableWidth:c.availableWidth}}var g=c(12);d.prototype.beginColumnGroup=function(){this.snapshots.push({x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,page:this.page,bottomMost:{y:this.y,page:this.page},endingCell:this.endingCell,lastColumnWidth:this.lastColumnWidth}),this.lastColumnWidth=0},d.prototype.beginColumn=function(a,b,c){var d=this.snapshots[this.snapshots.length-1];this.calculateBottomMost(d),this.endingCell=c,this.page=d.page,this.x=this.x+this.lastColumnWidth+(b||0),this.y=d.y,this.availableWidth=a,this.availableHeight=d.availableHeight,this.lastColumnWidth=a},d.prototype.calculateBottomMost=function(a){this.endingCell?(this.saveContextInEndingCell(this.endingCell),this.endingCell=null):a.bottomMost=f(this,a.bottomMost)},d.prototype.markEnding=function(a){this.page=a._columnEndingContext.page,this.x=a._columnEndingContext.x,this.y=a._columnEndingContext.y,this.availableWidth=a._columnEndingContext.availableWidth,this.availableHeight=a._columnEndingContext.availableHeight,this.lastColumnWidth=a._columnEndingContext.lastColumnWidth},d.prototype.saveContextInEndingCell=function(a){a._columnEndingContext={page:this.page,x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,lastColumnWidth:this.lastColumnWidth}},d.prototype.completeColumnGroup=function(){var a=this.snapshots.pop();this.calculateBottomMost(a),this.endingCell=null,this.x=a.x,this.y=a.bottomMost.y,this.page=a.bottomMost.page,this.availableWidth=a.availableWidth,this.availableHeight=a.bottomMost.availableHeight,this.lastColumnWidth=a.lastColumnWidth},d.prototype.addMargin=function(a,b){this.x+=a,this.availableWidth-=a+(b||0)},d.prototype.moveDown=function(a){return this.y+=a,this.availableHeight-=a,this.availableHeight>0},d.prototype.initializePage=function(){this.y=this.pageMargins.top,this.availableHeight=this.getCurrentPage().pageSize.height-this.pageMargins.top-this.pageMargins.bottom,this.pageSnapshot().availableWidth=this.getCurrentPage().pageSize.width-this.pageMargins.left-this.pageMargins.right},d.prototype.pageSnapshot=function(){return this.snapshots[0]?this.snapshots[0]:this},d.prototype.moveTo=function(a,b){void 0!==a&&null!==a&&(this.x=a,this.availableWidth=this.getCurrentPage().pageSize.width-this.x-this.pageMargins.right),void 0!==b&&null!==b&&(this.y=b,this.availableHeight=this.getCurrentPage().pageSize.height-this.y-this.pageMargins.bottom)},d.prototype.beginDetachedBlock=function(){this.snapshots.push({x:this.x,y:this.y,availableHeight:this.availableHeight,availableWidth:this.availableWidth,page:this.page,endingCell:this.endingCell,lastColumnWidth:this.lastColumnWidth})},d.prototype.endDetachedBlock=function(){var a=this.snapshots.pop();this.x=a.x,this.y=a.y,this.availableWidth=a.availableWidth,this.availableHeight=a.availableHeight,this.page=a.page,this.endingCell=a.endingCell,this.lastColumnWidth=a.lastColumnWidth};var h=function(a,b){return b=e(b,a.pageSize.orientation),b!==a.pageSize.orientation?{orientation:b,width:a.pageSize.height,height:a.pageSize.width}:{orientation:a.pageSize.orientation,width:a.pageSize.width,height:a.pageSize.height}};d.prototype.moveToNextPage=function(a){var b=this.page+1,c=this.page,d=this.y,e=b>=this.pages.length;return e?this.addPage(h(this.getCurrentPage(),a)):(this.page=b,this.initializePage()),{newPageCreated:e,prevPage:c,prevY:d,y:this.y}},d.prototype.addPage=function(a){var b={items:[],pageSize:a};return this.pages.push(b),this.page=this.pages.length-1,this.initializePage(),this.tracker.emit("pageAdded"),b},d.prototype.getCurrentPage=function(){return this.page<0||this.page>=this.pages.length?null:this.pages[this.page]},d.prototype.getCurrentPosition=function(){var a=this.getCurrentPage().pageSize,b=a.height-this.pageMargins.top-this.pageMargins.bottom,c=a.width-this.pageMargins.left-this.pageMargins.right;return{pageNumber:this.page+1,pageOrientation:a.orientation,pageInnerHeight:b,pageInnerWidth:c,left:this.x,top:this.y,verticalRatio:(this.y-this.pageMargins.top)/b,horizontalRatio:(this.x-this.pageMargins.left)/c}},a.exports=d},function(a,b,c){"use strict";function d(a,b){this.transactionLevel=0,this.repeatables=[],this.tracker=b,this.writer=new f(a,b)}function e(a,b){var c=b(a);return c||(a.moveToNextPage(),c=b(a)),c}var f=c(21);d.prototype.addLine=function(a,b,c){return e(this,function(d){return d.writer.addLine(a,b,c)})},d.prototype.addImage=function(a,b){return e(this,function(c){return c.writer.addImage(a,b)})},d.prototype.addQr=function(a,b){return e(this,function(c){return c.writer.addQr(a,b)})},d.prototype.addVector=function(a,b,c,d){return this.writer.addVector(a,b,c,d)},d.prototype.addFragment=function(a,b,c,d){this.writer.addFragment(a,b,c,d)||(this.moveToNextPage(),this.writer.addFragment(a,b,c,d))},d.prototype.moveToNextPage=function(a){var b=this.writer.context.moveToNextPage(a);b.newPageCreated?this.repeatables.forEach(function(a){this.writer.addFragment(a,!0)},this):this.repeatables.forEach(function(a){this.writer.context.moveDown(a.height)},this),this.writer.tracker.emit("pageChanged",{prevPage:b.prevPage,prevY:b.prevY,y:b.y})},d.prototype.beginUnbreakableBlock=function(a,b){0===this.transactionLevel++&&(this.originalX=this.writer.context.x,this.writer.pushContext(a,b))},d.prototype.commitUnbreakableBlock=function(a,b){if(0===--this.transactionLevel){var c=this.writer.context;this.writer.popContext();var d=c.pages.length;if(d>0){var e=c.pages[0];if(e.xOffset=a,e.yOffset=b,d>1)if(void 0!==a||void 0!==b)e.height=c.getCurrentPage().pageSize.height-c.pageMargins.top-c.pageMargins.bottom;else{e.height=this.writer.context.getCurrentPage().pageSize.height-this.writer.context.pageMargins.top-this.writer.context.pageMargins.bottom;for(var f=0,g=this.repeatables.length;g>f;f++)e.height-=this.repeatables[f].height}else e.height=c.y;void 0!==a||void 0!==b?this.writer.addFragment(e,!0,!0,!0):this.addFragment(e)}}},d.prototype.currentBlockToRepeatable=function(){var a=this.writer.context,b={items:[]};return a.pages[0].items.forEach(function(a){b.items.push(a)}),b.xOffset=this.originalX,b.height=a.y,b},d.prototype.pushToRepeatables=function(a){this.repeatables.push(a)},d.prototype.popFromRepeatables=function(){this.repeatables.pop()},d.prototype.context=function(){return this.writer.context},a.exports=d},function(a,b,c){"use strict";function d(a,b){this.context=a,this.contextStack=[],this.tracker=b}function e(a,b,c){null===c||void 0===c||0>c||c>a.items.length?a.items.push(b):a.items.splice(c,0,b)}function f(a){var b=new g(a.maxWidth);for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}var g=c(22),h=c(17).pack,i=c(17).offsetVector,j=c(19);d.prototype.addLine=function(a,b,c){var d=a.getHeight(),f=this.context,g=f.getCurrentPage(),h=this.getCurrentPositionOnPage();return f.availableHeight<d||!g?!1:(a.x=f.x+(a.x||0),a.y=f.y+(a.y||0),this.alignLine(a),e(g,{type:"line",item:a},c),this.tracker.emit("lineAdded",a),b||f.moveDown(d),h)},d.prototype.alignLine=function(a){var b=this.context.availableWidth,c=a.getWidth(),d=a.inlines&&a.inlines.length>0&&a.inlines[0].alignment,e=0;switch(d){case"right":e=b-c;break;case"center":e=(b-c)/2}if(e&&(a.x=(a.x||0)+e),"justify"===d&&!a.newLineForced&&!a.lastLineInParagraph&&a.inlines.length>1)for(var f=(b-c)/(a.inlines.length-1),g=1,h=a.inlines.length;h>g;g++)e=g*f,a.inlines[g].x+=e},d.prototype.addImage=function(a,b){var c=this.context,d=c.getCurrentPage(),f=this.getCurrentPositionOnPage();return c.availableHeight<a._height||!d?!1:(a.x=c.x+(a.x||0),a.y=c.y,this.alignImage(a),e(d,{type:"image",item:a},b),c.moveDown(a._height),f)},d.prototype.addQr=function(a,b){var c=this.context,d=c.getCurrentPage(),e=this.getCurrentPositionOnPage();if(c.availableHeight<a._height||!d)return!1;a.x=c.x+(a.x||0),a.y=c.y,this.alignImage(a);for(var f=0,g=a._canvas.length;g>f;f++){var h=a._canvas[f];h.x+=a.x,h.y+=a.y,this.addVector(h,!0,!0,b)}return c.moveDown(a._height),e},d.prototype.alignImage=function(a){var b=this.context.availableWidth,c=a._minWidth,d=0;switch(a._alignment){case"right":d=b-c;break;case"center":d=(b-c)/2}d&&(a.x=(a.x||0)+d)},d.prototype.addVector=function(a,b,c,d){var f=this.context,g=f.getCurrentPage(),h=this.getCurrentPositionOnPage();return g?(i(a,b?0:f.x,c?0:f.y),e(g,{type:"vector",item:a},d),h):void 0},d.prototype.addFragment=function(a,b,c,d){var e=this.context,g=e.getCurrentPage();return!b&&a.height>e.availableHeight?!1:(a.items.forEach(function(d){switch(d.type){case"line":var j=f(d.item);j.x=(j.x||0)+(b?a.xOffset||0:e.x),j.y=(j.y||0)+(c?a.yOffset||0:e.y),g.items.push({type:"line",item:j});break;case"vector":var k=h(d.item);i(k,b?a.xOffset||0:e.x,c?a.yOffset||0:e.y),g.items.push({type:"vector",item:k});break;case"image":var l=h(d.item);l.x=(l.x||0)+(b?a.xOffset||0:e.x),l.y=(l.y||0)+(c?a.yOffset||0:e.y),g.items.push({type:"image",item:l})}}),d||e.moveDown(a.height),!0)},d.prototype.pushContext=function(a,b){void 0===a&&(b=this.context.getCurrentPage().height-this.context.pageMargins.top-this.context.pageMargins.bottom,a=this.context.availableWidth),("number"==typeof a||a instanceof Number)&&(a=new j({width:a,height:b},{left:0,right:0,top:0,bottom:0})),this.contextStack.push(this.context),this.context=a},d.prototype.popContext=function(){this.context=this.contextStack.pop()},d.prototype.getCurrentPositionOnPage=function(){return(this.contextStack[0]||this.context).getCurrentPosition()},a.exports=d},function(a,b){"use strict";function c(a){this.maxWidth=a,this.leadingCut=0,this.trailingCut=0,this.inlineWidths=0,this.inlines=[]}c.prototype.getAscenderHeight=function(){var a=0;return this.inlines.forEach(function(b){a=Math.max(a,b.font.ascender/1e3*b.fontSize)}),a},c.prototype.hasEnoughSpaceForInline=function(a){return 0===this.inlines.length?!0:this.newLineForced?!1:this.inlineWidths+a.width-this.leadingCut-(a.trailingCut||0)<=this.maxWidth},c.prototype.addInline=function(a){0===this.inlines.length&&(this.leadingCut=a.leadingCut||0),this.trailingCut=a.trailingCut||0,a.x=this.inlineWidths-this.leadingCut,this.inlines.push(a),this.inlineWidths+=a.width,a.lineEnd&&(this.newLineForced=!0)},c.prototype.getWidth=function(){return this.inlineWidths-this.leadingCut-this.trailingCut},c.prototype.getHeight=function(){var a=0;return this.inlines.forEach(function(b){a=Math.max(a,b.height||0)}),a},a.exports=c},function(a,b,c){"use strict";function d(a){this.tableNode=a}var e=c(16);d.prototype.beginTable=function(a){function b(){var a=0;return d.table.widths.forEach(function(b){a+=b._calcWidth}),a}function c(){var a=[],b=0,c=0;a.push({left:0,rowSpan:0});for(var d=0,e=g.tableNode.table.body[0].length;e>d;d++){var f=g.layout.paddingLeft(d,g.tableNode)+g.layout.paddingRight(d,g.tableNode),h=g.layout.vLineWidth(d,g.tableNode);c=f+h+g.tableNode.table.widths[d]._calcWidth,a[a.length-1].width=c,b+=c,a.push({left:b,rowSpan:0,width:0})}return a}var d,f,g=this;d=this.tableNode,this.offsets=d._offsets,this.layout=d._layout,f=a.context().availableWidth-this.offsets.total,e.buildColumnWidths(d.table.widths,f),this.tableWidth=d._offsets.total+b(),this.rowSpanData=c(),this.cleanUpRepeatables=!1,this.headerRows=d.table.headerRows||0,this.rowsWithoutPageBreak=this.headerRows+(d.table.keepWithHeaderRows||0),this.dontBreakRows=d.table.dontBreakRows||!1,this.rowsWithoutPageBreak&&a.beginUnbreakableBlock(),this.drawHorizontalLine(0,a)},d.prototype.onRowBreak=function(a,b){var c=this;return function(){var a=c.rowPaddingTop+(c.headerRows?0:c.topLineWidth);b.context().moveDown(a)}},d.prototype.beginRow=function(a,b){this.topLineWidth=this.layout.hLineWidth(a,this.tableNode),this.rowPaddingTop=this.layout.paddingTop(a,this.tableNode),this.bottomLineWidth=this.layout.hLineWidth(a+1,this.tableNode),this.rowPaddingBottom=this.layout.paddingBottom(a,this.tableNode),this.rowCallback=this.onRowBreak(a,b),b.tracker.startTracking("pageChanged",this.rowCallback),this.dontBreakRows&&b.beginUnbreakableBlock(),this.rowTopY=b.context().y,this.reservedAtBottom=this.bottomLineWidth+this.rowPaddingBottom,b.context().availableHeight-=this.reservedAtBottom,b.context().moveDown(this.rowPaddingTop);
 },d.prototype.drawHorizontalLine=function(a,b,c){var d=this.layout.hLineWidth(a,this.tableNode);if(d){for(var e=d/2,f=null,g=0,h=this.rowSpanData.length;h>g;g++){var i=this.rowSpanData[g],j=!i.rowSpan;!f&&j&&(f={left:i.left,width:0}),j&&(f.width+=i.width||0);var k=(c||0)+e;j&&g!==h-1||f&&(b.addVector({type:"line",x1:f.left,x2:f.left+f.width,y1:k,y2:k,lineWidth:d,lineColor:"function"==typeof this.layout.hLineColor?this.layout.hLineColor(a,this.tableNode):this.layout.hLineColor},!1,c),f=null)}b.context().moveDown(d)}},d.prototype.drawVerticalLine=function(a,b,c,d,e){var f=this.layout.vLineWidth(d,this.tableNode);0!==f&&e.addVector({type:"line",x1:a+f/2,x2:a+f/2,y1:b,y2:c,lineWidth:f,lineColor:"function"==typeof this.layout.vLineColor?this.layout.vLineColor(d,this.tableNode):this.layout.vLineColor},!1,!0)},d.prototype.endTable=function(a){this.cleanUpRepeatables&&a.popFromRepeatables()},d.prototype.endRow=function(a,b,c){function d(){for(var b=[],c=0,d=0,e=g.tableNode.table.body[a].length;e>d;d++){if(!c){b.push({x:g.rowSpanData[d].left,index:d});var f=g.tableNode.table.body[a][d];c=f._colSpan||f.colSpan||0}c>0&&c--}return b.push({x:g.rowSpanData[g.rowSpanData.length-1].left,index:g.rowSpanData.length-1}),b}var e,f,g=this;b.tracker.stopTracking("pageChanged",this.rowCallback),b.context().moveDown(this.layout.paddingBottom(a,this.tableNode)),b.context().availableHeight+=this.reservedAtBottom;var h=b.context().page,i=b.context().y,j=d(),k=[],l=c&&c.length>0;if(k.push({y0:this.rowTopY,page:l?c[0].prevPage:h}),l)for(f=0,e=c.length;e>f;f++){var m=c[f];k[k.length-1].y1=m.prevY,k.push({y0:m.y,page:m.prevPage+1})}k[k.length-1].y1=i;for(var n=k[0].y1-k[0].y0===this.rowPaddingTop,o=n?1:0,p=k.length;p>o;o++){var q=o<k.length-1,r=o>0&&!this.headerRows,s=r?0:this.topLineWidth,t=k[o].y0,u=k[o].y1;for(q&&(u+=this.rowPaddingBottom),b.context().page!=k[o].page&&(b.context().page=k[o].page,this.reservedAtBottom=0),f=0,e=j.length;e>f;f++)if(this.drawVerticalLine(j[f].x,t-s,u+this.bottomLineWidth,j[f].index,b),e-1>f){var v=j[f].index,w=this.tableNode.table.body[a][v].fillColor;if(w){var x=this.layout.vLineWidth(v,this.tableNode),y=j[f].x+x,z=t-s;b.addVector({type:"rect",x:y,y:z,w:j[f+1].x-y,h:u+this.bottomLineWidth-z,lineWidth:0,color:w},!1,!0,0)}}q&&this.layout.hLineWhenBroken!==!1&&this.drawHorizontalLine(a+1,b,u),r&&this.layout.hLineWhenBroken!==!1&&this.drawHorizontalLine(a,b,t)}b.context().page=h,b.context().y=i;var A=this.tableNode.table.body[a];for(f=0,e=A.length;e>f;f++){if(A[f].rowSpan&&(this.rowSpanData[f].rowSpan=A[f].rowSpan,A[f].colSpan&&A[f].colSpan>1))for(var B=1;B<A[f].rowSpan;B++)this.tableNode.table.body[a+B][f]._colSpan=A[f].colSpan;this.rowSpanData[f].rowSpan>0&&this.rowSpanData[f].rowSpan--}this.drawHorizontalLine(a+1,b),this.headerRows&&a===this.headerRows-1&&(this.headerRepeatable=b.currentBlockToRepeatable()),this.dontBreakRows&&b.tracker.auto("pageChanged",function(){g.drawHorizontalLine(a,b)},function(){b.commitUnbreakableBlock(),g.drawHorizontalLine(a,b)}),!this.headerRepeatable||a!==this.rowsWithoutPageBreak-1&&a!==this.tableNode.table.body.length-1||(b.commitUnbreakableBlock(),b.pushToRepeatables(this.headerRepeatable),this.cleanUpRepeatables=!0,this.headerRepeatable=null)},a.exports=d},function(a,b,c){(function(b){(function(){var d,e,f,g,h,i,j={}.hasOwnProperty,k=function(a,b){function c(){this.constructor=a}for(var d in b)j.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};i=c(25),h=c(44),e=c(45),g=c(46),f=c(64),d=function(a){function d(a){var b,c,e,f;if(this.options=null!=a?a:{},d.__super__.constructor.apply(this,arguments),this.version=1.3,this.compress=null!=(e=this.options.compress)?e:!0,this._pageBuffer=[],this._pageBufferStart=0,this._offsets=[],this._waiting=0,this._ended=!1,this._offset=0,this._root=this.ref({Type:"Catalog",Pages:this.ref({Type:"Pages",Count:0,Kids:[]})}),this.page=null,this.initColor(),this.initVector(),this.initFonts(),this.initText(),this.initImages(),this.info={Producer:"PDFKit",Creator:"PDFKit",CreationDate:new Date},this.options.info){f=this.options.info;for(b in f)c=f[b],this.info[b]=c}this._write("%PDF-"+this.version),this._write("%ÿÿÿÿ"),this.addPage()}var i;return k(d,a),i=function(a){var b,c,e;e=[];for(c in a)b=a[c],e.push(d.prototype[c]=b);return e},i(c(65)),i(c(67)),i(c(69)),i(c(89)),i(c(96)),i(c(101)),d.prototype.addPage=function(a){var b;return null==a&&(a=this.options),this.options.bufferPages||this.flushPages(),this.page=new f(this,a),this._pageBuffer.push(this.page),b=this._root.data.Pages.data,b.Kids.push(this.page.dictionary),b.Count++,this.x=this.page.margins.left,this.y=this.page.margins.top,this._ctm=[1,0,0,1,0,0],this.transform(1,0,0,-1,0,this.page.height),this},d.prototype.bufferedPageRange=function(){return{start:this._pageBufferStart,count:this._pageBuffer.length}},d.prototype.switchToPage=function(a){var b;if(!(b=this._pageBuffer[a-this._pageBufferStart]))throw new Error("switchToPage("+a+") out of bounds, current buffer covers pages "+this._pageBufferStart+" to "+(this._pageBufferStart+this._pageBuffer.length-1));return this.page=b},d.prototype.flushPages=function(){var a,b,c,d;for(b=this._pageBuffer,this._pageBuffer=[],this._pageBufferStart+=b.length,c=0,d=b.length;d>c;c++)a=b[c],a.end()},d.prototype.ref=function(a){var b;return b=new g(this,this._offsets.length+1,a),this._offsets.push(null),this._waiting++,b},d.prototype._read=function(){},d.prototype._write=function(a){return b.isBuffer(a)||(a=new b(a+"\n","binary")),this.push(a),this._offset+=a.length},d.prototype.addContent=function(a){return this.page.write(a),this},d.prototype._refEnd=function(a){return this._offsets[a.id-1]=a.offset,0===--this._waiting&&this._ended?(this._finalize(),this._ended=!1):void 0},d.prototype.write=function(a,b){var c;return c=new Error("PDFDocument#write is deprecated, and will be removed in a future version of PDFKit. Please pipe the document into a Node stream."),console.warn(c.stack),this.pipe(h.createWriteStream(a)),this.end(),this.once("end",b)},d.prototype.output=function(a){throw new Error("PDFDocument#output is deprecated, and has been removed from PDFKit. Please pipe the document into a Node stream.")},d.prototype.end=function(){var a,b,c,d,e,f;this.flushPages(),this._info=this.ref(),e=this.info;for(b in e)d=e[b],"string"==typeof d&&(d=new String(d)),this._info.data[b]=d;this._info.end(),f=this._fontFamilies;for(c in f)a=f[c],a.embed();return this._root.end(),this._root.data.Pages.end(),0===this._waiting?this._finalize():this._ended=!0},d.prototype._finalize=function(a){var b,c,d,f,g;for(c=this._offset,this._write("xref"),this._write("0 "+(this._offsets.length+1)),this._write("0000000000 65535 f "),g=this._offsets,d=0,f=g.length;f>d;d++)b=g[d],b=("0000000000"+b).slice(-10),this._write(b+" 00000 n ");return this._write("trailer"),this._write(e.convert({Size:this._offsets.length+1,Root:this._root,Info:this._info})),this._write("startxref"),this._write(""+c),this._write("%%EOF"),this.push(null)},d.prototype.toString=function(){return"[object PDFDocument]"},d}(i.Readable),a.exports=d}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){function d(){e.call(this)}a.exports=d;var e=c(26).EventEmitter,f=c(27);f(d,e),d.Readable=c(28),d.Writable=c(40),d.Duplex=c(41),d.Transform=c(42),d.PassThrough=c(43),d.Stream=d,d.prototype.pipe=function(a,b){function c(b){a.writable&&!1===a.write(b)&&j.pause&&j.pause()}function d(){j.readable&&j.resume&&j.resume()}function f(){k||(k=!0,a.end())}function g(){k||(k=!0,"function"==typeof a.destroy&&a.destroy())}function h(a){if(i(),0===e.listenerCount(this,"error"))throw a}function i(){j.removeListener("data",c),a.removeListener("drain",d),j.removeListener("end",f),j.removeListener("close",g),j.removeListener("error",h),a.removeListener("error",h),j.removeListener("end",i),j.removeListener("close",i),a.removeListener("close",i)}var j=this;j.on("data",c),a.on("drain",d),a._isStdio||b&&b.end===!1||(j.on("end",f),j.on("close",g));var k=!1;return j.on("error",h),a.on("error",h),j.on("end",i),j.on("close",i),a.on("close",i),a.emit("pipe",j),a}},function(a,b){function c(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function d(a){return"function"==typeof a}function e(a){return"number"==typeof a}function f(a){return"object"==typeof a&&null!==a}function g(a){return void 0===a}a.exports=c,c.EventEmitter=c,c.prototype._events=void 0,c.prototype._maxListeners=void 0,c.defaultMaxListeners=10,c.prototype.setMaxListeners=function(a){if(!e(a)||0>a||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},c.prototype.emit=function(a){var b,c,e,h,i,j;if(this._events||(this._events={}),"error"===a&&(!this._events.error||f(this._events.error)&&!this._events.error.length)){if(b=arguments[1],b instanceof Error)throw b;throw TypeError('Uncaught, unspecified "error" event.')}if(c=this._events[a],g(c))return!1;if(d(c))switch(arguments.length){case 1:c.call(this);break;case 2:c.call(this,arguments[1]);break;case 3:c.call(this,arguments[1],arguments[2]);break;default:h=Array.prototype.slice.call(arguments,1),c.apply(this,h)}else if(f(c))for(h=Array.prototype.slice.call(arguments,1),j=c.slice(),e=j.length,i=0;e>i;i++)j[i].apply(this,h);return!0},c.prototype.addListener=function(a,b){var e;if(!d(b))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,d(b.listener)?b.listener:b),this._events[a]?f(this._events[a])?this._events[a].push(b):this._events[a]=[this._events[a],b]:this._events[a]=b,f(this._events[a])&&!this._events[a].warned&&(e=g(this._maxListeners)?c.defaultMaxListeners:this._maxListeners,e&&e>0&&this._events[a].length>e&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())),this},c.prototype.on=c.prototype.addListener,c.prototype.once=function(a,b){function c(){this.removeListener(a,c),e||(e=!0,b.apply(this,arguments))}if(!d(b))throw TypeError("listener must be a function");var e=!1;return c.listener=b,this.on(a,c),this},c.prototype.removeListener=function(a,b){var c,e,g,h;if(!d(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],g=c.length,e=-1,c===b||d(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(f(c)){for(h=g;h-- >0;)if(c[h]===b||c[h].listener&&c[h].listener===b){e=h;break}if(0>e)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(e,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},c.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],d(c))this.removeListener(a,c);else if(c)for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},c.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?d(this._events[a])?[this._events[a]]:this._events[a].slice():[]},c.prototype.listenerCount=function(a){if(this._events){var b=this._events[a];if(d(b))return 1;if(b)return b.length}return 0},c.listenerCount=function(a,b){return a.listenerCount(b)}},function(a,b){"function"==typeof Object.create?a.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:a.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},function(a,b,c){b=a.exports=c(29),b.Stream=c(25),b.Readable=b,b.Writable=c(36),b.Duplex=c(35),b.Transform=c(38),b.PassThrough=c(39)},function(a,b,c){(function(b){function d(a,b){var d=c(35);a=a||{};var e=a.highWaterMark,f=a.objectMode?16:16384;this.highWaterMark=e||0===e?e:f,this.highWaterMark=~~this.highWaterMark,this.buffer=[],this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.objectMode=!!a.objectMode,b instanceof d&&(this.objectMode=this.objectMode||!!a.readableObjectMode),this.defaultEncoding=a.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,a.encoding&&(C||(C=c(37).StringDecoder),this.decoder=new C(a.encoding),this.encoding=a.encoding)}function e(a){c(35);return this instanceof e?(this._readableState=new d(a,this),this.readable=!0,void A.call(this)):new e(a)}function f(a,b,c,d,e){var f=j(b,c);if(f)a.emit("error",f);else if(B.isNullOrUndefined(c))b.reading=!1,b.ended||k(a,b);else if(b.objectMode||c&&c.length>0)if(b.ended&&!e){var h=new Error("stream.push() after EOF");a.emit("error",h)}else if(b.endEmitted&&e){var h=new Error("stream.unshift() after end event");a.emit("error",h)}else!b.decoder||e||d||(c=b.decoder.write(c)),e||(b.reading=!1),b.flowing&&0===b.length&&!b.sync?(a.emit("data",c),a.read(0)):(b.length+=b.objectMode?1:c.length,e?b.buffer.unshift(c):b.buffer.push(c),b.needReadable&&l(a)),n(a,b);else e||(b.reading=!1);return g(b)}function g(a){return!a.ended&&(a.needReadable||a.length<a.highWaterMark||0===a.length)}function h(a){if(a>=E)a=E;else{a--;for(var b=1;32>b;b<<=1)a|=a>>b;a++}return a}function i(a,b){return 0===b.length&&b.ended?0:b.objectMode?0===a?0:1:isNaN(a)||B.isNull(a)?b.flowing&&b.buffer.length?b.buffer[0].length:b.length:0>=a?0:(a>b.highWaterMark&&(b.highWaterMark=h(a)),a>b.length?b.ended?b.length:(b.needReadable=!0,0):a)}function j(a,b){var c=null;return B.isBuffer(b)||B.isString(b)||B.isNullOrUndefined(b)||a.objectMode||(c=new TypeError("Invalid non-string/buffer chunk")),c}function k(a,b){if(b.decoder&&!b.ended){var c=b.decoder.end();c&&c.length&&(b.buffer.push(c),b.length+=b.objectMode?1:c.length)}b.ended=!0,l(a)}function l(a){var c=a._readableState;c.needReadable=!1,c.emittedReadable||(D("emitReadable",c.flowing),c.emittedReadable=!0,c.sync?b.nextTick(function(){m(a)}):m(a))}function m(a){D("emit readable"),a.emit("readable"),s(a)}function n(a,c){c.readingMore||(c.readingMore=!0,b.nextTick(function(){o(a,c)}))}function o(a,b){for(var c=b.length;!b.reading&&!b.flowing&&!b.ended&&b.length<b.highWaterMark&&(D("maybeReadMore read 0"),a.read(0),c!==b.length);)c=b.length;b.readingMore=!1}function p(a){return function(){var b=a._readableState;D("pipeOnDrain",b.awaitDrain),b.awaitDrain&&b.awaitDrain--,0===b.awaitDrain&&z.listenerCount(a,"data")&&(b.flowing=!0,s(a))}}function q(a,c){c.resumeScheduled||(c.resumeScheduled=!0,b.nextTick(function(){r(a,c)}))}function r(a,b){b.resumeScheduled=!1,a.emit("resume"),s(a),b.flowing&&!b.reading&&a.read(0)}function s(a){var b=a._readableState;if(D("flow",b.flowing),b.flowing)do var c=a.read();while(null!==c&&b.flowing)}function t(a,b){var c,d=b.buffer,e=b.length,f=!!b.decoder,g=!!b.objectMode;if(0===d.length)return null;if(0===e)c=null;else if(g)c=d.shift();else if(!a||a>=e)c=f?d.join(""):y.concat(d,e),d.length=0;else if(a<d[0].length){var h=d[0];c=h.slice(0,a),d[0]=h.slice(a)}else if(a===d[0].length)c=d.shift();else{c=f?"":new y(a);for(var i=0,j=0,k=d.length;k>j&&a>i;j++){var h=d[0],l=Math.min(a-i,h.length);f?c+=h.slice(0,l):h.copy(c,i,0,l),l<h.length?d[0]=h.slice(l):d.shift(),i+=l}}return c}function u(a){var c=a._readableState;if(c.length>0)throw new Error("endReadable called on non-empty stream");c.endEmitted||(c.ended=!0,b.nextTick(function(){c.endEmitted||0!==c.length||(c.endEmitted=!0,a.readable=!1,a.emit("end"))}))}function v(a,b){for(var c=0,d=a.length;d>c;c++)b(a[c],c)}function w(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1}a.exports=e;var x=c(31),y=c(2).Buffer;e.ReadableState=d;var z=c(26).EventEmitter;z.listenerCount||(z.listenerCount=function(a,b){return a.listeners(b).length});var A=c(25),B=c(32);B.inherits=c(33);var C,D=c(34);D=D&&D.debuglog?D.debuglog("stream"):function(){},B.inherits(e,A),e.prototype.push=function(a,b){var c=this._readableState;return B.isString(a)&&!c.objectMode&&(b=b||c.defaultEncoding,b!==c.encoding&&(a=new y(a,b),b="")),f(this,c,a,b,!1)},e.prototype.unshift=function(a){var b=this._readableState;return f(this,b,a,"",!0)},e.prototype.setEncoding=function(a){return C||(C=c(37).StringDecoder),this._readableState.decoder=new C(a),this._readableState.encoding=a,this};var E=8388608;e.prototype.read=function(a){D("read",a);var b=this._readableState,c=a;if((!B.isNumber(a)||a>0)&&(b.emittedReadable=!1),0===a&&b.needReadable&&(b.length>=b.highWaterMark||b.ended))return D("read: emitReadable",b.length,b.ended),0===b.length&&b.ended?u(this):l(this),null;if(a=i(a,b),0===a&&b.ended)return 0===b.length&&u(this),null;var d=b.needReadable;D("need readable",d),(0===b.length||b.length-a<b.highWaterMark)&&(d=!0,D("length less than watermark",d)),(b.ended||b.reading)&&(d=!1,D("reading or ended",d)),d&&(D("do read"),b.reading=!0,b.sync=!0,0===b.length&&(b.needReadable=!0),this._read(b.highWaterMark),b.sync=!1),d&&!b.reading&&(a=i(c,b));var e;return e=a>0?t(a,b):null,B.isNull(e)&&(b.needReadable=!0,a=0),b.length-=a,0!==b.length||b.ended||(b.needReadable=!0),c!==a&&b.ended&&0===b.length&&u(this),B.isNull(e)||this.emit("data",e),e},e.prototype._read=function(a){this.emit("error",new Error("not implemented"))},e.prototype.pipe=function(a,c){function d(a){D("onunpipe"),a===l&&f()}function e(){D("onend"),a.end()}function f(){D("cleanup"),a.removeListener("close",i),a.removeListener("finish",j),a.removeListener("drain",q),a.removeListener("error",h),a.removeListener("unpipe",d),l.removeListener("end",e),l.removeListener("end",f),l.removeListener("data",g),!m.awaitDrain||a._writableState&&!a._writableState.needDrain||q()}function g(b){D("ondata");var c=a.write(b);!1===c&&(D("false write response, pause",l._readableState.awaitDrain),l._readableState.awaitDrain++,l.pause())}function h(b){D("onerror",b),k(),a.removeListener("error",h),0===z.listenerCount(a,"error")&&a.emit("error",b)}function i(){a.removeListener("finish",j),k()}function j(){D("onfinish"),a.removeListener("close",i),k()}function k(){D("unpipe"),l.unpipe(a)}var l=this,m=this._readableState;switch(m.pipesCount){case 0:m.pipes=a;break;case 1:m.pipes=[m.pipes,a];break;default:m.pipes.push(a)}m.pipesCount+=1,D("pipe count=%d opts=%j",m.pipesCount,c);var n=(!c||c.end!==!1)&&a!==b.stdout&&a!==b.stderr,o=n?e:f;m.endEmitted?b.nextTick(o):l.once("end",o),a.on("unpipe",d);var q=p(l);return a.on("drain",q),l.on("data",g),a._events&&a._events.error?x(a._events.error)?a._events.error.unshift(h):a._events.error=[h,a._events.error]:a.on("error",h),a.once("close",i),a.once("finish",j),a.emit("pipe",l),m.flowing||(D("pipe resume"),l.resume()),a},e.prototype.unpipe=function(a){var b=this._readableState;if(0===b.pipesCount)return this;if(1===b.pipesCount)return a&&a!==b.pipes?this:(a||(a=b.pipes),b.pipes=null,b.pipesCount=0,b.flowing=!1,a&&a.emit("unpipe",this),this);if(!a){var c=b.pipes,d=b.pipesCount;b.pipes=null,b.pipesCount=0,b.flowing=!1;for(var e=0;d>e;e++)c[e].emit("unpipe",this);return this}var e=w(b.pipes,a);return-1===e?this:(b.pipes.splice(e,1),b.pipesCount-=1,1===b.pipesCount&&(b.pipes=b.pipes[0]),a.emit("unpipe",this),this)},e.prototype.on=function(a,c){var d=A.prototype.on.call(this,a,c);if("data"===a&&!1!==this._readableState.flowing&&this.resume(),"readable"===a&&this.readable){var e=this._readableState;if(!e.readableListening)if(e.readableListening=!0,e.emittedReadable=!1,e.needReadable=!0,e.reading)e.length&&l(this,e);else{var f=this;b.nextTick(function(){D("readable nexttick read 0"),f.read(0)})}}return d},e.prototype.addListener=e.prototype.on,e.prototype.resume=function(){var a=this._readableState;return a.flowing||(D("resume"),a.flowing=!0,a.reading||(D("resume read 0"),this.read(0)),q(this,a)),this},e.prototype.pause=function(){return D("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(D("pause"),this._readableState.flowing=!1,this.emit("pause")),this},e.prototype.wrap=function(a){var b=this._readableState,c=!1,d=this;a.on("end",function(){if(D("wrapped end"),b.decoder&&!b.ended){var a=b.decoder.end();a&&a.length&&d.push(a)}d.push(null)}),a.on("data",function(e){if(D("wrapped data"),b.decoder&&(e=b.decoder.write(e)),e&&(b.objectMode||e.length)){var f=d.push(e);f||(c=!0,a.pause())}});for(var e in a)B.isFunction(a[e])&&B.isUndefined(this[e])&&(this[e]=function(b){return function(){return a[b].apply(a,arguments)}}(e));var f=["error","close","destroy","pause","resume"];return v(f,function(b){a.on(b,d.emit.bind(d,b))}),d._read=function(b){D("wrapped _read",b),c&&(c=!1,a.resume())},d},e._fromList=t}).call(b,c(30))},function(a,b){function c(){j=!1,g.length?i=g.concat(i):k=-1,i.length&&d()}function d(){if(!j){var a=setTimeout(c);j=!0;for(var b=i.length;b;){for(g=i,i=[];++k<b;)g&&g[k].run();k=-1,b=i.length}g=null,j=!1,clearTimeout(a)}}function e(a,b){this.fun=a,this.array=b}function f(){}var g,h=a.exports={},i=[],j=!1,k=-1;h.nextTick=function(a){var b=new Array(arguments.length-1);if(arguments.length>1)for(var c=1;c<arguments.length;c++)b[c-1]=arguments[c];i.push(new e(a,b)),1!==i.length||j||setTimeout(d,0)},e.prototype.run=function(){this.fun.apply(null,this.array)},h.title="browser",h.browser=!0,h.env={},h.argv=[],h.version="",h.versions={},h.on=f,h.addListener=f,h.once=f,h.off=f,h.removeListener=f,h.removeAllListeners=f,h.emit=f,h.binding=function(a){throw new Error("process.binding is not supported")},h.cwd=function(){return"/"},h.chdir=function(a){throw new Error("process.chdir is not supported")},h.umask=function(){return 0}},function(a,b){a.exports=Array.isArray||function(a){return"[object Array]"==Object.prototype.toString.call(a)}},function(a,b,c){(function(a){function c(a){return Array.isArray(a)}function d(a){return"boolean"==typeof a}function e(a){return null===a}function f(a){return null==a}function g(a){return"number"==typeof a}function h(a){return"string"==typeof a}function i(a){return"symbol"==typeof a}function j(a){return void 0===a}function k(a){return l(a)&&"[object RegExp]"===r(a)}function l(a){return"object"==typeof a&&null!==a}function m(a){return l(a)&&"[object Date]"===r(a)}function n(a){return l(a)&&("[object Error]"===r(a)||a instanceof Error)}function o(a){return"function"==typeof a}function p(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function q(b){return a.isBuffer(b)}function r(a){return Object.prototype.toString.call(a)}b.isArray=c,b.isBoolean=d,b.isNull=e,b.isNullOrUndefined=f,b.isNumber=g,b.isString=h,b.isSymbol=i,b.isUndefined=j,b.isRegExp=k,b.isObject=l,b.isDate=m,b.isError=n,b.isFunction=o,b.isPrimitive=p,b.isBuffer=q}).call(b,c(2).Buffer)},function(a,b){"function"==typeof Object.create?a.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:a.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},function(a,b){},function(a,b,c){(function(b){function d(a){return this instanceof d?(i.call(this,a),j.call(this,a),a&&a.readable===!1&&(this.readable=!1),a&&a.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,a&&a.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",e)):new d(a)}function e(){this.allowHalfOpen||this._writableState.ended||b.nextTick(this.end.bind(this))}function f(a,b){for(var c=0,d=a.length;d>c;c++)b(a[c],c)}a.exports=d;var g=Object.keys||function(a){var b=[];for(var c in a)b.push(c);return b},h=c(32);h.inherits=c(33);var i=c(29),j=c(36);h.inherits(d,i),f(g(j.prototype),function(a){d.prototype[a]||(d.prototype[a]=j.prototype[a])})}).call(b,c(30))},function(a,b,c){(function(b){function d(a,b,c){this.chunk=a,this.encoding=b,this.callback=c}function e(a,b){var d=c(35);a=a||{};var e=a.highWaterMark,f=a.objectMode?16:16384;this.highWaterMark=e||0===e?e:f,this.objectMode=!!a.objectMode,b instanceof d&&(this.objectMode=this.objectMode||!!a.writableObjectMode),this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var g=a.decodeStrings===!1;this.decodeStrings=!g,this.defaultEncoding=a.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){n(b,a)},this.writecb=null,this.writelen=0,this.buffer=[],this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1}function f(a){var b=c(35);return this instanceof f||this instanceof b?(this._writableState=new e(a,this),this.writable=!0,void x.call(this)):new f(a)}function g(a,c,d){var e=new Error("write after end");a.emit("error",e),b.nextTick(function(){d(e)})}function h(a,c,d,e){var f=!0;if(!(w.isBuffer(d)||w.isString(d)||w.isNullOrUndefined(d)||c.objectMode)){var g=new TypeError("Invalid non-string/buffer chunk");a.emit("error",g),b.nextTick(function(){e(g)}),f=!1}return f}function i(a,b,c){return!a.objectMode&&a.decodeStrings!==!1&&w.isString(b)&&(b=new v(b,c)),b}function j(a,b,c,e,f){c=i(b,c,e),w.isBuffer(c)&&(e="buffer");var g=b.objectMode?1:c.length;b.length+=g;var h=b.length<b.highWaterMark;return h||(b.needDrain=!0),b.writing||b.corked?b.buffer.push(new d(c,e,f)):k(a,b,!1,g,c,e,f),h}function k(a,b,c,d,e,f,g){b.writelen=d,b.writecb=g,b.writing=!0,b.sync=!0,c?a._writev(e,b.onwrite):a._write(e,f,b.onwrite),b.sync=!1}function l(a,c,d,e,f){d?b.nextTick(function(){c.pendingcb--,f(e)}):(c.pendingcb--,f(e)),a._writableState.errorEmitted=!0,a.emit("error",e)}function m(a){a.writing=!1,a.writecb=null,a.length-=a.writelen,a.writelen=0}function n(a,c){var d=a._writableState,e=d.sync,f=d.writecb;if(m(d),c)l(a,d,e,c,f);else{var g=r(a,d);g||d.corked||d.bufferProcessing||!d.buffer.length||q(a,d),e?b.nextTick(function(){o(a,d,g,f)}):o(a,d,g,f)}}function o(a,b,c,d){c||p(a,b),b.pendingcb--,d(),t(a,b)}function p(a,b){0===b.length&&b.needDrain&&(b.needDrain=!1,a.emit("drain"))}function q(a,b){if(b.bufferProcessing=!0,a._writev&&b.buffer.length>1){for(var c=[],d=0;d<b.buffer.length;d++)c.push(b.buffer[d].callback);b.pendingcb++,k(a,b,!0,b.length,b.buffer,"",function(a){for(var d=0;d<c.length;d++)b.pendingcb--,c[d](a)}),b.buffer=[]}else{for(var d=0;d<b.buffer.length;d++){var e=b.buffer[d],f=e.chunk,g=e.encoding,h=e.callback,i=b.objectMode?1:f.length;if(k(a,b,!1,i,f,g,h),b.writing){d++;break}}d<b.buffer.length?b.buffer=b.buffer.slice(d):b.buffer.length=0}b.bufferProcessing=!1}function r(a,b){return b.ending&&0===b.length&&!b.finished&&!b.writing}function s(a,b){b.prefinished||(b.prefinished=!0,a.emit("prefinish"))}function t(a,b){var c=r(a,b);return c&&(0===b.pendingcb?(s(a,b),b.finished=!0,a.emit("finish")):s(a,b)),c}function u(a,c,d){c.ending=!0,t(a,c),d&&(c.finished?b.nextTick(d):a.once("finish",d)),c.ended=!0}a.exports=f;var v=c(2).Buffer;f.WritableState=e;var w=c(32);w.inherits=c(33);var x=c(25);w.inherits(f,x),f.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe. Not readable."))},f.prototype.write=function(a,b,c){var d=this._writableState,e=!1;return w.isFunction(b)&&(c=b,b=null),w.isBuffer(a)?b="buffer":b||(b=d.defaultEncoding),w.isFunction(c)||(c=function(){}),d.ended?g(this,d,c):h(this,d,a,c)&&(d.pendingcb++,e=j(this,d,a,b,c)),e},f.prototype.cork=function(){var a=this._writableState;a.corked++},f.prototype.uncork=function(){var a=this._writableState;a.corked&&(a.corked--,a.writing||a.corked||a.finished||a.bufferProcessing||!a.buffer.length||q(this,a))},f.prototype._write=function(a,b,c){c(new Error("not implemented"))},f.prototype._writev=null,f.prototype.end=function(a,b,c){var d=this._writableState;w.isFunction(a)?(c=a,a=null,b=null):w.isFunction(b)&&(c=b,b=null),w.isNullOrUndefined(a)||this.write(a,b),d.corked&&(d.corked=1,this.uncork()),d.ending||d.finished||u(this,d,c)}}).call(b,c(30))},function(a,b,c){function d(a){if(a&&!i(a))throw new Error("Unknown encoding: "+a)}function e(a){return a.toString(this.encoding)}function f(a){this.charReceived=a.length%2,this.charLength=this.charReceived?2:0}function g(a){this.charReceived=a.length%3,this.charLength=this.charReceived?3:0}var h=c(2).Buffer,i=h.isEncoding||function(a){switch(a&&a.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},j=b.StringDecoder=function(a){switch(this.encoding=(a||"utf8").toLowerCase().replace(/[-_]/,""),d(a),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=f;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=g;break;default:return void(this.write=e)}this.charBuffer=new h(6),this.charReceived=0,this.charLength=0};j.prototype.write=function(a){for(var b="";this.charLength;){var c=a.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:a.length;if(a.copy(this.charBuffer,this.charReceived,0,c),this.charReceived+=c,this.charReceived<this.charLength)return"";a=a.slice(c,a.length),b=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var d=b.charCodeAt(b.length-1);if(!(d>=55296&&56319>=d)){if(this.charReceived=this.charLength=0,0===a.length)return b;break}this.charLength+=this.surrogateSize,b=""}this.detectIncompleteChar(a);var e=a.length;this.charLength&&(a.copy(this.charBuffer,0,a.length-this.charReceived,e),e-=this.charReceived),b+=a.toString(this.encoding,0,e);var e=b.length-1,d=b.charCodeAt(e);if(d>=55296&&56319>=d){var f=this.surrogateSize;return this.charLength+=f,this.charReceived+=f,this.charBuffer.copy(this.charBuffer,f,0,f),a.copy(this.charBuffer,0,0,f),b.substring(0,e)}return b},j.prototype.detectIncompleteChar=function(a){for(var b=a.length>=3?3:a.length;b>0;b--){var c=a[a.length-b];if(1==b&&c>>5==6){this.charLength=2;break}if(2>=b&&c>>4==14){this.charLength=3;break}if(3>=b&&c>>3==30){this.charLength=4;break}}this.charReceived=b},j.prototype.end=function(a){var b="";if(a&&a.length&&(b=this.write(a)),this.charReceived){var c=this.charReceived,d=this.charBuffer,e=this.encoding;b+=d.slice(0,c).toString(e)}return b}},function(a,b,c){function d(a,b){this.afterTransform=function(a,c){return e(b,a,c)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null}function e(a,b,c){var d=a._transformState;d.transforming=!1;var e=d.writecb;if(!e)return a.emit("error",new Error("no writecb in Transform class"));d.writechunk=null,d.writecb=null,i.isNullOrUndefined(c)||a.push(c),e&&e(b);var f=a._readableState;f.reading=!1,(f.needReadable||f.length<f.highWaterMark)&&a._read(f.highWaterMark)}function f(a){if(!(this instanceof f))return new f(a);h.call(this,a),this._transformState=new d(a,this);var b=this;this._readableState.needReadable=!0,this._readableState.sync=!1,this.once("prefinish",function(){i.isFunction(this._flush)?this._flush(function(a){g(b,a)}):g(b)})}function g(a,b){if(b)return a.emit("error",b);var c=a._writableState,d=a._transformState;if(c.length)throw new Error("calling transform done when ws.length != 0");if(d.transforming)throw new Error("calling transform done when still transforming");return a.push(null)}a.exports=f;var h=c(35),i=c(32);i.inherits=c(33),i.inherits(f,h),f.prototype.push=function(a,b){return this._transformState.needTransform=!1,h.prototype.push.call(this,a,b)},f.prototype._transform=function(a,b,c){throw new Error("not implemented")},f.prototype._write=function(a,b,c){var d=this._transformState;if(d.writecb=c,d.writechunk=a,d.writeencoding=b,!d.transforming){var e=this._readableState;(d.needTransform||e.needReadable||e.length<e.highWaterMark)&&this._read(e.highWaterMark);
-}},f.prototype._read=function(a){var b=this._transformState;i.isNull(b.writechunk)||!b.writecb||b.transforming?b.needTransform=!0:(b.transforming=!0,this._transform(b.writechunk,b.writeencoding,b.afterTransform))}},function(a,b,c){function d(a){return this instanceof d?void e.call(this,a):new d(a)}a.exports=d;var e=c(38),f=c(32);f.inherits=c(33),f.inherits(d,e),d.prototype._transform=function(a,b,c){c(null,a)}},function(a,b,c){a.exports=c(36)},function(a,b,c){a.exports=c(35)},function(a,b,c){a.exports=c(38)},function(a,b,c){a.exports=c(39)},function(a,b,c){(function(b,c){"use strict";function d(){this.fileSystem={},this.baseSystem={}}function e(a){return 0===a.indexOf(c)&&(a=a.substring(c.length)),0===a.indexOf("/")&&(a=a.substring(1)),a}d.prototype.readFileSync=function(a){a=e(a);var c=this.baseSystem[a];return c?new b(c,"base64"):this.fileSystem[a]},d.prototype.writeFileSync=function(a,b){this.fileSystem[e(a)]=b},d.prototype.bindFS=function(a){this.baseSystem=a},a.exports=new d}).call(b,c(2).Buffer,"/")},function(a,b,c){(function(b){(function(){var d,e;d=function(){function a(){}var c,d,f,g;return f=function(a,b){return(Array(b+1).join("0")+a).slice(-b)},d=/[\n\r\t\b\f\(\)\\]/g,c={"\n":"\\n","\r":"\\r","      ":"\\t","\b":"\\b","\f":"\\f","\\":"\\\\","(":"\\(",")":"\\)"},g=function(a){var b,c,d,e,f;if(d=a.length,1&d)throw new Error("Buffer length must be even");for(c=e=0,f=d-1;f>e;c=e+=2)b=a[c],a[c]=a[c+1],a[c+1]=b;return a},a.convert=function(h){var i,j,k,l,m,n,o,p,q,r;if("string"==typeof h)return"/"+h;if(h instanceof String){for(o=h.replace(d,function(a){return c[a]}),k=!1,j=q=0,r=o.length;r>q;j=q+=1)if(o.charCodeAt(j)>127){k=!0;break}return k&&(o=g(new b("\ufeff"+o,"utf16le")).toString("binary")),"("+o+")"}if(b.isBuffer(h))return"<"+h.toString("hex")+">";if(h instanceof e)return h.toString();if(h instanceof Date)return"(D:"+f(h.getUTCFullYear(),4)+f(h.getUTCMonth(),2)+f(h.getUTCDate(),2)+f(h.getUTCHours(),2)+f(h.getUTCMinutes(),2)+f(h.getUTCSeconds(),2)+"Z)";if(Array.isArray(h))return l=function(){var b,c,d;for(d=[],b=0,c=h.length;c>b;b++)i=h[b],d.push(a.convert(i));return d}().join(" "),"["+l+"]";if("[object Object]"==={}.toString.call(h)){n=["<<"];for(m in h)p=h[m],n.push("/"+m+" "+a.convert(p));return n.push(">>"),n.join("\n")}return""+h},a}(),a.exports=d,e=c(46)}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(b){(function(){var d,e,f,g=function(a,b){return function(){return a.apply(b,arguments)}};f=c(47),e=function(){function a(a,b,c){this.document=a,this.id=b,this.data=null!=c?c:{},this.finalize=g(this.finalize,this),this.gen=0,this.deflate=null,this.compress=this.document.compress&&!this.data.Filter,this.uncompressedLength=0,this.chunks=[]}return a.prototype.initDeflate=function(){return this.data.Filter="FlateDecode",this.deflate=f.createDeflate(),this.deflate.on("data",function(a){return function(b){return a.chunks.push(b),a.data.Length+=b.length}}(this)),this.deflate.on("end",this.finalize)},a.prototype.write=function(a){var c;return b.isBuffer(a)||(a=new b(a+"\n","binary")),this.uncompressedLength+=a.length,null==(c=this.data).Length&&(c.Length=0),this.compress?(this.deflate||this.initDeflate(),this.deflate.write(a)):(this.chunks.push(a),this.data.Length+=a.length)},a.prototype.end=function(a){return("string"==typeof a||b.isBuffer(a))&&this.write(a),this.deflate?this.deflate.end():this.finalize()},a.prototype.finalize=function(){var a,b,c,e;if(this.offset=this.document._offset,this.document._write(""+this.id+" "+this.gen+" obj"),this.document._write(d.convert(this.data)),this.chunks.length){for(this.document._write("stream"),e=this.chunks,b=0,c=e.length;c>b;b++)a=e[b],this.document._write(a);this.chunks.length=0,this.document._write("\nendstream")}return this.document._write("endobj"),this.document._refEnd(this)},a.prototype.toString=function(){return""+this.id+" "+this.gen+" R"},a}(),a.exports=e,d=c(45)}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(a,d){function e(b,c,d){function e(){for(var a;null!==(a=b.read());)h.push(a),i+=a.length;b.once("readable",e)}function f(a){b.removeListener("end",g),b.removeListener("readable",e),d(a)}function g(){var c=a.concat(h,i);h=[],d(null,c),b.close()}var h=[],i=0;b.on("error",f),b.on("end",g),b.end(c),e()}function f(b,c){if("string"==typeof c&&(c=new a(c)),!a.isBuffer(c))throw new TypeError("Not a string or buffer");var d=p.Z_FINISH;return b._processChunk(c,d)}function g(a){return this instanceof g?void n.call(this,a,p.DEFLATE):new g(a)}function h(a){return this instanceof h?void n.call(this,a,p.INFLATE):new h(a)}function i(a){return this instanceof i?void n.call(this,a,p.GZIP):new i(a)}function j(a){return this instanceof j?void n.call(this,a,p.GUNZIP):new j(a)}function k(a){return this instanceof k?void n.call(this,a,p.DEFLATERAW):new k(a)}function l(a){return this instanceof l?void n.call(this,a,p.INFLATERAW):new l(a)}function m(a){return this instanceof m?void n.call(this,a,p.UNZIP):new m(a)}function n(c,d){if(this._opts=c=c||{},this._chunkSize=c.chunkSize||b.Z_DEFAULT_CHUNK,o.call(this,c),c.flush&&c.flush!==p.Z_NO_FLUSH&&c.flush!==p.Z_PARTIAL_FLUSH&&c.flush!==p.Z_SYNC_FLUSH&&c.flush!==p.Z_FULL_FLUSH&&c.flush!==p.Z_FINISH&&c.flush!==p.Z_BLOCK)throw new Error("Invalid flush flag: "+c.flush);if(this._flushFlag=c.flush||p.Z_NO_FLUSH,c.chunkSize&&(c.chunkSize<b.Z_MIN_CHUNK||c.chunkSize>b.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+c.chunkSize);if(c.windowBits&&(c.windowBits<b.Z_MIN_WINDOWBITS||c.windowBits>b.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+c.windowBits);if(c.level&&(c.level<b.Z_MIN_LEVEL||c.level>b.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+c.level);if(c.memLevel&&(c.memLevel<b.Z_MIN_MEMLEVEL||c.memLevel>b.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+c.memLevel);if(c.strategy&&c.strategy!=b.Z_FILTERED&&c.strategy!=b.Z_HUFFMAN_ONLY&&c.strategy!=b.Z_RLE&&c.strategy!=b.Z_FIXED&&c.strategy!=b.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+c.strategy);if(c.dictionary&&!a.isBuffer(c.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new p.Zlib(d);var e=this;this._hadError=!1,this._binding.onerror=function(a,c){e._binding=null,e._hadError=!0;var d=new Error(a);d.errno=c,d.code=b.codes[c],e.emit("error",d)};var f=b.Z_DEFAULT_COMPRESSION;"number"==typeof c.level&&(f=c.level);var g=b.Z_DEFAULT_STRATEGY;"number"==typeof c.strategy&&(g=c.strategy),this._binding.init(c.windowBits||b.Z_DEFAULT_WINDOWBITS,f,c.memLevel||b.Z_DEFAULT_MEMLEVEL,g,c.dictionary),this._buffer=new a(this._chunkSize),this._offset=0,this._closed=!1,this._level=f,this._strategy=g,this.once("end",this.close)}var o=c(42),p=c(48),q=c(60),r=c(63).ok;p.Z_MIN_WINDOWBITS=8,p.Z_MAX_WINDOWBITS=15,p.Z_DEFAULT_WINDOWBITS=15,p.Z_MIN_CHUNK=64,p.Z_MAX_CHUNK=1/0,p.Z_DEFAULT_CHUNK=16384,p.Z_MIN_MEMLEVEL=1,p.Z_MAX_MEMLEVEL=9,p.Z_DEFAULT_MEMLEVEL=8,p.Z_MIN_LEVEL=-1,p.Z_MAX_LEVEL=9,p.Z_DEFAULT_LEVEL=p.Z_DEFAULT_COMPRESSION,Object.keys(p).forEach(function(a){a.match(/^Z/)&&(b[a]=p[a])}),b.codes={Z_OK:p.Z_OK,Z_STREAM_END:p.Z_STREAM_END,Z_NEED_DICT:p.Z_NEED_DICT,Z_ERRNO:p.Z_ERRNO,Z_STREAM_ERROR:p.Z_STREAM_ERROR,Z_DATA_ERROR:p.Z_DATA_ERROR,Z_MEM_ERROR:p.Z_MEM_ERROR,Z_BUF_ERROR:p.Z_BUF_ERROR,Z_VERSION_ERROR:p.Z_VERSION_ERROR},Object.keys(b.codes).forEach(function(a){b.codes[b.codes[a]]=a}),b.Deflate=g,b.Inflate=h,b.Gzip=i,b.Gunzip=j,b.DeflateRaw=k,b.InflateRaw=l,b.Unzip=m,b.createDeflate=function(a){return new g(a)},b.createInflate=function(a){return new h(a)},b.createDeflateRaw=function(a){return new k(a)},b.createInflateRaw=function(a){return new l(a)},b.createGzip=function(a){return new i(a)},b.createGunzip=function(a){return new j(a)},b.createUnzip=function(a){return new m(a)},b.deflate=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new g(b),a,c)},b.deflateSync=function(a,b){return f(new g(b),a)},b.gzip=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new i(b),a,c)},b.gzipSync=function(a,b){return f(new i(b),a)},b.deflateRaw=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new k(b),a,c)},b.deflateRawSync=function(a,b){return f(new k(b),a)},b.unzip=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new m(b),a,c)},b.unzipSync=function(a,b){return f(new m(b),a)},b.inflate=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new h(b),a,c)},b.inflateSync=function(a,b){return f(new h(b),a)},b.gunzip=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new j(b),a,c)},b.gunzipSync=function(a,b){return f(new j(b),a)},b.inflateRaw=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new l(b),a,c)},b.inflateRawSync=function(a,b){return f(new l(b),a)},q.inherits(n,o),n.prototype.params=function(a,c,e){if(a<b.Z_MIN_LEVEL||a>b.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+a);if(c!=b.Z_FILTERED&&c!=b.Z_HUFFMAN_ONLY&&c!=b.Z_RLE&&c!=b.Z_FIXED&&c!=b.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+c);if(this._level!==a||this._strategy!==c){var f=this;this.flush(p.Z_SYNC_FLUSH,function(){f._binding.params(a,c),f._hadError||(f._level=a,f._strategy=c,e&&e())})}else d.nextTick(e)},n.prototype.reset=function(){return this._binding.reset()},n.prototype._flush=function(b){this._transform(new a(0),"",b)},n.prototype.flush=function(b,c){var e=this._writableState;if(("function"==typeof b||void 0===b&&!c)&&(c=b,b=p.Z_FULL_FLUSH),e.ended)c&&d.nextTick(c);else if(e.ending)c&&this.once("end",c);else if(e.needDrain){var f=this;this.once("drain",function(){f.flush(c)})}else this._flushFlag=b,this.write(new a(0),"",c)},n.prototype.close=function(a){if(a&&d.nextTick(a),!this._closed){this._closed=!0,this._binding.close();var b=this;d.nextTick(function(){b.emit("close")})}},n.prototype._transform=function(b,c,d){var e,f=this._writableState,g=f.ending||f.ended,h=g&&(!b||f.length===b.length);if(null===!b&&!a.isBuffer(b))return d(new Error("invalid input"));h?e=p.Z_FINISH:(e=this._flushFlag,b.length>=f.length&&(this._flushFlag=this._opts.flush||p.Z_NO_FLUSH));this._processChunk(b,e,d)},n.prototype._processChunk=function(b,c,d){function e(k,n){if(!i._hadError){var o=g-n;if(r(o>=0,"have should not go down"),o>0){var p=i._buffer.slice(i._offset,i._offset+o);i._offset+=o,j?i.push(p):(l.push(p),m+=p.length)}if((0===n||i._offset>=i._chunkSize)&&(g=i._chunkSize,i._offset=0,i._buffer=new a(i._chunkSize)),0===n){if(h+=f-k,f=k,!j)return!0;var q=i._binding.write(c,b,h,f,i._buffer,i._offset,i._chunkSize);return q.callback=e,void(q.buffer=b)}return j?void d():!1}}var f=b&&b.length,g=this._chunkSize-this._offset,h=0,i=this,j="function"==typeof d;if(!j){var k,l=[],m=0;this.on("error",function(a){k=a});do var n=this._binding.writeSync(c,b,h,f,this._buffer,this._offset,g);while(!this._hadError&&e(n[0],n[1]));if(this._hadError)throw k;var o=a.concat(l,m);return this.close(),o}var p=this._binding.write(c,b,h,f,this._buffer,this._offset,g);p.buffer=b,p.callback=e},q.inherits(g,n),q.inherits(h,n),q.inherits(i,n),q.inherits(j,n),q.inherits(k,n),q.inherits(l,n),q.inherits(m,n)}).call(b,c(2).Buffer,c(30))},function(a,b,c){(function(a,d){function e(a){if(a<b.DEFLATE||a>b.UNZIP)throw new TypeError("Bad argument");this.mode=a,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function f(a,b){for(var c=0;c<a.length;c++)this[b+c]=a[c]}var g=c(49),h=c(50),i=c(51),j=c(56),k=c(59);for(var l in k)b[l]=k[l];b.NONE=0,b.DEFLATE=1,b.INFLATE=2,b.GZIP=3,b.GUNZIP=4,b.DEFLATERAW=5,b.INFLATERAW=6,b.UNZIP=7,e.prototype.init=function(a,c,d,e,f){switch(this.windowBits=a,this.level=c,this.memLevel=d,this.strategy=e,(this.mode===b.GZIP||this.mode===b.GUNZIP)&&(this.windowBits+=16),this.mode===b.UNZIP&&(this.windowBits+=32),(this.mode===b.DEFLATERAW||this.mode===b.INFLATERAW)&&(this.windowBits=-this.windowBits),this.strm=new h,this.mode){case b.DEFLATE:case b.GZIP:case b.DEFLATERAW:var g=i.deflateInit2(this.strm,this.level,b.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case b.INFLATE:case b.GUNZIP:case b.INFLATERAW:case b.UNZIP:var g=j.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}return g!==b.Z_OK?void this._error(g):(this.write_in_progress=!1,void(this.init_done=!0))},e.prototype.params=function(){throw new Error("deflateParams Not supported")},e.prototype._writeCheck=function(){if(!this.init_done)throw new Error("write before init");if(this.mode===b.NONE)throw new Error("already finalized");if(this.write_in_progress)throw new Error("write already in progress");if(this.pending_close)throw new Error("close is pending")},e.prototype.write=function(b,c,d,e,f,g,h){this._writeCheck(),this.write_in_progress=!0;var i=this;return a.nextTick(function(){i.write_in_progress=!1;var a=i._write(b,c,d,e,f,g,h);i.callback(a[0],a[1]),i.pending_close&&i.close()}),this},e.prototype.writeSync=function(a,b,c,d,e,f,g){return this._writeCheck(),this._write(a,b,c,d,e,f,g)},e.prototype._write=function(a,c,e,g,h,k,l){if(this.write_in_progress=!0,a!==b.Z_NO_FLUSH&&a!==b.Z_PARTIAL_FLUSH&&a!==b.Z_SYNC_FLUSH&&a!==b.Z_FULL_FLUSH&&a!==b.Z_FINISH&&a!==b.Z_BLOCK)throw new Error("Invalid flush value");null==c&&(c=new d(0),g=0,e=0),h._set?h.set=h._set:h.set=f;var m=this.strm;switch(m.avail_in=g,m.input=c,m.next_in=e,m.avail_out=l,m.output=h,m.next_out=k,this.mode){case b.DEFLATE:case b.GZIP:case b.DEFLATERAW:var n=i.deflate(m,a);break;case b.UNZIP:case b.INFLATE:case b.GUNZIP:case b.INFLATERAW:var n=j.inflate(m,a);break;default:throw new Error("Unknown mode "+this.mode)}return n!==b.Z_STREAM_END&&n!==b.Z_OK&&this._error(n),this.write_in_progress=!1,[m.avail_in,m.avail_out]},e.prototype.close=function(){return this.write_in_progress?void(this.pending_close=!0):(this.pending_close=!1,this.mode===b.DEFLATE||this.mode===b.GZIP||this.mode===b.DEFLATERAW?i.deflateEnd(this.strm):j.inflateEnd(this.strm),void(this.mode=b.NONE))},e.prototype.reset=function(){switch(this.mode){case b.DEFLATE:case b.DEFLATERAW:var a=i.deflateReset(this.strm);break;case b.INFLATE:case b.INFLATERAW:var a=j.inflateReset(this.strm)}a!==b.Z_OK&&this._error(a)},e.prototype._error=function(a){this.onerror(g[a]+": "+this.strm.msg,a),this.write_in_progress=!1,this.pending_close&&this.close()},b.Zlib=e}).call(b,c(30),c(2).Buffer)},function(a,b){"use strict";a.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(a,b){"use strict";function c(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}a.exports=c},function(a,b,c){"use strict";function d(a,b){return a.msg=G[b],b}function e(a){return(a<<1)-(a>4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(C.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){D._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,C.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=E(a.adler,b,e,c):2===a.state.wrap&&(a.adler=F(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-ja?a.strstart-(a.w_size-ja):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ia,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&m>f);if(d=ia-(m-f),f=m-ia,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-ja)){C.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=ha)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+1])&a.hash_mask;a.insert&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+ha-1])&a.hash_mask,a.prev[f&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=f,f++,a.insert--,!(a.lookahead+a.insert<ha)););}while(a.lookahead<ja&&0!==a.strm.avail_in)}function n(a,b){var c=65535;for(c>a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===H)return sa;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return sa;if(a.strstart-a.block_start>=a.w_size-ja&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?sa:sa}function o(a,b){for(var c,d;;){if(a.lookahead<ja){if(m(a),a.lookahead<ja&&b===H)return sa;if(0===a.lookahead)break}if(c=0,a.lookahead>=ha&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ha-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),0!==c&&a.strstart-c<=a.w_size-ja&&(a.match_length=l(a,c)),a.match_length>=ha)if(d=D._tr_tally(a,a.strstart-a.match_start,a.match_length-ha),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=ha){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ha-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart;while(0!==--a.match_length);a.strstart++}else a.strstart+=a.match_length,a.match_length=0,a.ins_h=a.window[a.strstart],a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+1])&a.hash_mask;else d=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(d&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=a.strstart<ha-1?a.strstart:ha-1,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sa:ta}function p(a,b){for(var c,d,e;;){if(a.lookahead<ja){if(m(a),a.lookahead<ja&&b===H)return sa;if(0===a.lookahead)break}if(c=0,a.lookahead>=ha&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ha-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),a.prev_length=a.match_length,a.prev_match=a.match_start,a.match_length=ha-1,0!==c&&a.prev_length<a.max_lazy_match&&a.strstart-c<=a.w_size-ja&&(a.match_length=l(a,c),a.match_length<=5&&(a.strategy===S||a.match_length===ha&&a.strstart-a.match_start>4096)&&(a.match_length=ha-1)),a.prev_length>=ha&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-ha,d=D._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-ha),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ha-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart);while(0!==--a.prev_length);if(a.match_available=0,a.match_length=ha-1,a.strstart++,d&&(h(a,!1),0===a.strm.avail_out))return sa}else if(a.match_available){if(d=D._tr_tally(a,0,a.window[a.strstart-1]),d&&h(a,!1),a.strstart++,a.lookahead--,0===a.strm.avail_out)return sa}else a.match_available=1,a.strstart++,a.lookahead--}return a.match_available&&(d=D._tr_tally(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<ha-1?a.strstart:ha-1,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sa:ta}function q(a,b){for(var c,d,e,f,g=a.window;;){if(a.lookahead<=ia){if(m(a),a.lookahead<=ia&&b===H)return sa;if(0===a.lookahead)break}if(a.match_length=0,a.lookahead>=ha&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ia;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&f>e);a.match_length=ia-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=ha?(c=D._tr_tally(a,1,a.match_length-ha),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sa:ta}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===H)return sa;break}if(a.match_length=0,c=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sa:ta}function s(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=B[a.level].max_lazy,a.good_match=B[a.level].good_length,a.nice_match=B[a.level].nice_length,a.max_chain_length=B[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=ha-1,a.match_available=0,a.ins_h=0}function t(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Y,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new C.Buf16(2*fa),this.dyn_dtree=new C.Buf16(2*(2*da+1)),this.bl_tree=new C.Buf16(2*(2*ea+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new C.Buf16(ga+1),this.heap=new C.Buf16(2*ca+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new C.Buf16(2*ca+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function u(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=X,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?la:qa,a.adler=2===b.wrap?0:1,b.last_flush=H,D._tr_init(b),M):d(a,O)}function v(a){var b=u(a);return b===M&&s(a.state),b}function w(a,b){return a&&a.state?2!==a.state.wrap?O:(a.state.gzhead=b,M):O}function x(a,b,c,e,f,g){if(!a)return O;var h=1;if(b===R&&(b=6),0>e?(h=0,e=-e):e>15&&(h=2,e-=16),1>f||f>Z||c!==Y||8>e||e>15||0>b||b>9||0>g||g>V)return d(a,O);8===e&&(e=9);var i=new t;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<<i.w_bits,i.w_mask=i.w_size-1,i.hash_bits=f+7,i.hash_size=1<<i.hash_bits,i.hash_mask=i.hash_size-1,i.hash_shift=~~((i.hash_bits+ha-1)/ha),i.window=new C.Buf8(2*i.w_size),i.head=new C.Buf16(i.hash_size),i.prev=new C.Buf16(i.w_size),i.lit_bufsize=1<<f+6,i.pending_buf_size=4*i.lit_bufsize,i.pending_buf=new C.Buf8(i.pending_buf_size),i.d_buf=i.lit_bufsize>>1,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,v(a)}function y(a,b){return x(a,b,Y,$,_,W)}function z(a,b){var c,h,k,l;if(!a||!a.state||b>L||0>b)return a?d(a,O):O;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===ra&&b!==K)return d(a,0===a.avail_out?Q:O);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===la)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=T||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=F(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=ma):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=T||h.level<2?4:0),i(h,wa),h.status=qa);else{var m=Y+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=T||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=ka),m+=31-m%31,h.status=qa,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===ma)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=na)}else h.status=na;if(h.status===na)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.name.length?255&h.gzhead.name.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=oa)}else h.status=oa;if(h.status===oa)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.comment.length?255&h.gzhead.comment.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=pa)}else h.status=pa;if(h.status===pa&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=qa)):h.status=qa),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,M}else if(0===a.avail_in&&e(b)<=e(c)&&b!==K)return d(a,Q);if(h.status===ra&&0!==a.avail_in)return d(a,Q);if(0!==a.avail_in||0!==h.lookahead||b!==H&&h.status!==ra){var o=h.strategy===T?r(h,b):h.strategy===U?q(h,b):B[h.level].func(h,b);if((o===ua||o===va)&&(h.status=ra),o===sa||o===ua)return 0===a.avail_out&&(h.last_flush=-1),M;if(o===ta&&(b===I?D._tr_align(h):b!==L&&(D._tr_stored_block(h,0,0,!1),b===J&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,M}return b!==K?M:h.wrap<=0?N:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?M:N)}function A(a){var b;return a&&a.state?(b=a.state.status,b!==la&&b!==ma&&b!==na&&b!==oa&&b!==pa&&b!==qa&&b!==ra?d(a,O):(a.state=null,b===qa?d(a,P):M)):O}var B,C=c(52),D=c(53),E=c(54),F=c(55),G=c(49),H=0,I=1,J=3,K=4,L=5,M=0,N=1,O=-2,P=-3,Q=-5,R=-1,S=1,T=2,U=3,V=4,W=0,X=2,Y=8,Z=9,$=15,_=8,aa=29,ba=256,ca=ba+1+aa,da=30,ea=19,fa=2*ca+1,ga=15,ha=3,ia=258,ja=ia+ha+1,ka=32,la=42,ma=69,na=73,oa=91,pa=103,qa=113,ra=666,sa=1,ta=2,ua=3,va=4,wa=3,xa=function(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e};B=[new xa(0,0,0,0,n),new xa(4,4,8,4,o),new xa(4,5,16,8,o),new xa(4,6,32,32,o),new xa(4,4,16,16,p),new xa(8,16,32,32,p),new xa(8,16,128,128,p),new xa(8,32,128,256,p),new xa(32,128,258,1024,p),new xa(32,258,258,4096,p)],b.deflateInit=y,b.deflateInit2=x,b.deflateReset=v,b.deflateResetKeep=u,b.deflateSetHeader=w,b.deflate=z,b.deflateEnd=A,b.deflateInfo="pako deflate (from Nodeca project)"},function(a,b){"use strict";var c="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;b.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},b.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var d={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;c>b;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;c>b;b++)f=a[b],g.set(f,e),e+=f.length;return g}},e={arraySet:function(a,b,c,d,e){for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};b.setTyped=function(a){a?(b.Buf8=Uint8Array,b.Buf16=Uint16Array,b.Buf32=Int32Array,b.assign(b,d)):(b.Buf8=Array,b.Buf16=Array,b.Buf32=Array,b.assign(b,e))},b.setTyped(c)},function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a){return 256>a?ga[a]:ga[256+(a>>>7)]}function f(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function g(a,b,c){a.bi_valid>V-c?(a.bi_buf|=b<<a.bi_valid&65535,f(a,a.bi_buf),a.bi_buf=b>>V-a.bi_valid,a.bi_valid+=c-V):(a.bi_buf|=b<<a.bi_valid&65535,a.bi_valid+=c)}function h(a,b,c){g(a,c[2*b],c[2*b+1])}function i(a,b){var c=0;do c|=1&a,a>>>=1,c<<=1;while(--b>0);return c>>>1}function j(a){16===a.bi_valid?(f(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function k(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;U>=f;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,c=a.heap_max+1;T>c;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function l(a,b,c){var d,e,f=new Array(U+1),g=0;for(d=1;U>=d;d++)f[d]=g=g+c[d-1]<<1;for(e=0;b>=e;e++){var h=a[2*e+1];0!==h&&(a[2*e]=i(f[h]++,h))}}function m(){var a,b,c,d,e,f=new Array(U+1);for(c=0,d=0;O-1>d;d++)for(ia[d]=c,a=0;a<1<<_[d];a++)ha[c++]=d;for(ha[c-1]=d,e=0,d=0;16>d;d++)for(ja[d]=e,a=0;a<1<<aa[d];a++)ga[e++]=d;for(e>>=7;R>d;d++)for(ja[d]=e<<7,a=0;a<1<<aa[d]-7;a++)ga[256+e++]=d;for(b=0;U>=b;b++)f[b]=0;for(a=0;143>=a;)ea[2*a+1]=8,a++,f[8]++;for(;255>=a;)ea[2*a+1]=9,a++,f[9]++;for(;279>=a;)ea[2*a+1]=7,a++,f[7]++;for(;287>=a;)ea[2*a+1]=8,a++,f[8]++;for(l(ea,Q+1,f),a=0;R>a;a++)fa[2*a+1]=5,fa[2*a]=i(a,5);ka=new na(ea,_,P+1,Q,U),la=new na(fa,aa,0,R,U),ma=new na(new Array(0),ba,0,S,W)}function n(a){var b;for(b=0;Q>b;b++)a.dyn_ltree[2*b]=0;for(b=0;R>b;b++)a.dyn_dtree[2*b]=0;for(b=0;S>b;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*X]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function o(a){a.bi_valid>8?f(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function p(a,b,c,d){o(a),d&&(f(a,c),f(a,~c)),E.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function q(a,b,c,d){var e=2*b,f=2*c;return a[e]<a[f]||a[e]===a[f]&&d[b]<=d[c]}function r(a,b,c){for(var d=a.heap[c],e=c<<1;e<=a.heap_len&&(e<a.heap_len&&q(b,a.heap[e+1],a.heap[e],a.depth)&&e++,
-!q(b,d,a.heap[e],a.depth));)a.heap[c]=a.heap[e],c=e,e<<=1;a.heap[c]=d}function s(a,b,c){var d,f,i,j,k=0;if(0!==a.last_lit)do d=a.pending_buf[a.d_buf+2*k]<<8|a.pending_buf[a.d_buf+2*k+1],f=a.pending_buf[a.l_buf+k],k++,0===d?h(a,f,b):(i=ha[f],h(a,i+P+1,b),j=_[i],0!==j&&(f-=ia[i],g(a,f,j)),d--,i=e(d),h(a,i,c),j=aa[i],0!==j&&(d-=ja[i],g(a,d,j)));while(k<a.last_lit);h(a,X,b)}function t(a,b){var c,d,e,f=b.dyn_tree,g=b.stat_desc.static_tree,h=b.stat_desc.has_stree,i=b.stat_desc.elems,j=-1;for(a.heap_len=0,a.heap_max=T,c=0;i>c;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=2>j?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)r(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],r(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,r(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],k(a,b),l(f,j,a.bl_count)}function u(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;c>=d;d++)e=g,g=b[2*(d+1)+1],++h<i&&e===g||(j>h?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*Y]++):10>=h?a.bl_tree[2*Z]++:a.bl_tree[2*$]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function v(a,b,c){var d,e,f=-1,i=b[1],j=0,k=7,l=4;for(0===i&&(k=138,l=3),d=0;c>=d;d++)if(e=i,i=b[2*(d+1)+1],!(++j<k&&e===i)){if(l>j){do h(a,e,a.bl_tree);while(0!==--j)}else 0!==e?(e!==f&&(h(a,e,a.bl_tree),j--),h(a,Y,a.bl_tree),g(a,j-3,2)):10>=j?(h(a,Z,a.bl_tree),g(a,j-3,3)):(h(a,$,a.bl_tree),g(a,j-11,7));j=0,f=e,0===i?(k=138,l=3):e===i?(k=6,l=3):(k=7,l=4)}}function w(a){var b;for(u(a,a.dyn_ltree,a.l_desc.max_code),u(a,a.dyn_dtree,a.d_desc.max_code),t(a,a.bl_desc),b=S-1;b>=3&&0===a.bl_tree[2*ca[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function x(a,b,c,d){var e;for(g(a,b-257,5),g(a,c-1,5),g(a,d-4,4),e=0;d>e;e++)g(a,a.bl_tree[2*ca[e]+1],3);v(a,a.dyn_ltree,b-1),v(a,a.dyn_dtree,c-1)}function y(a){var b,c=4093624447;for(b=0;31>=b;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return G;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return H;for(b=32;P>b;b++)if(0!==a.dyn_ltree[2*b])return H;return G}function z(a){pa||(m(),pa=!0),a.l_desc=new oa(a.dyn_ltree,ka),a.d_desc=new oa(a.dyn_dtree,la),a.bl_desc=new oa(a.bl_tree,ma),a.bi_buf=0,a.bi_valid=0,n(a)}function A(a,b,c,d){g(a,(J<<1)+(d?1:0),3),p(a,b,c,!0)}function B(a){g(a,K<<1,3),h(a,X,ea),j(a)}function C(a,b,c,d){var e,f,h=0;a.level>0?(a.strm.data_type===I&&(a.strm.data_type=y(a)),t(a,a.l_desc),t(a,a.d_desc),h=w(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,e>=f&&(e=f)):e=f=c+5,e>=c+4&&-1!==b?A(a,b,c,d):a.strategy===F||f===e?(g(a,(K<<1)+(d?1:0),3),s(a,ea,fa)):(g(a,(L<<1)+(d?1:0),3),x(a,a.l_desc.max_code+1,a.d_desc.max_code+1,h+1),s(a,a.dyn_ltree,a.dyn_dtree)),n(a),d&&o(a)}function D(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ha[c]+P+1)]++,a.dyn_dtree[2*e(b)]++),a.last_lit===a.lit_bufsize-1}var E=c(52),F=4,G=0,H=1,I=2,J=0,K=1,L=2,M=3,N=258,O=29,P=256,Q=P+1+O,R=30,S=19,T=2*Q+1,U=15,V=16,W=7,X=256,Y=16,Z=17,$=18,_=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],aa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ba=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],da=512,ea=new Array(2*(Q+2));d(ea);var fa=new Array(2*R);d(fa);var ga=new Array(da);d(ga);var ha=new Array(N-M+1);d(ha);var ia=new Array(O);d(ia);var ja=new Array(R);d(ja);var ka,la,ma,na=function(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length},oa=function(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b},pa=!1;b._tr_init=z,b._tr_stored_block=A,b._tr_flush_block=C,b._tr_tally=D,b._tr_align=B},function(a,b){"use strict";function c(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0}a.exports=c},function(a,b){"use strict";function c(){for(var a,b=[],c=0;256>c;c++){a=c;for(var d=0;8>d;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function d(a,b,c,d){var f=e,g=d+c;a=-1^a;for(var h=d;g>h;h++)a=a>>>8^f[255&(a^b[h])];return-1^a}var e=c();a.exports=d},function(a,b,c){"use strict";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=K,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new r.Buf32(oa),b.distcode=b.distdyn=new r.Buf32(pa),b.sane=1,b.back=-1,C):F}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):F}function h(a,b){var c,d;return a&&a.state?(d=a.state,0>b?(c=0,b=-b):(c=(b>>4)+1,48>b&&(b&=15)),b&&(8>b||b>15)?F:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):F}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==C&&(a.state=null),c):F}function j(a){return i(a,ra)}function k(a){if(sa){var b;for(p=new r.Buf32(512),q=new r.Buf32(32),b=0;144>b;)a.lens[b++]=8;for(;256>b;)a.lens[b++]=9;for(;280>b;)a.lens[b++]=7;for(;288>b;)a.lens[b++]=8;for(v(x,a.lens,0,288,p,0,a.work,{bits:9}),b=0;32>b;)a.lens[b++]=5;v(y,a.lens,0,32,q,0,a.work,{bits:5}),sa=!1}a.lencode=p,a.lenbits=9,a.distcode=q,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<<f.wbits,f.wnext=0,f.whave=0,f.window=new r.Buf8(f.wsize)),d>=f.wsize?(r.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),r.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(r.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whave<f.wsize&&(f.whave+=e))),0}function m(a,b){var c,e,f,g,h,i,j,m,n,o,p,q,oa,pa,qa,ra,sa,ta,ua,va,wa,xa,ya,za,Aa=0,Ba=new r.Buf8(4),Ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!a||!a.state||!a.output||!a.input&&0!==a.avail_in)return F;c=a.state,c.mode===V&&(c.mode=W),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,o=i,p=j,xa=C;a:for(;;)switch(c.mode){case K:if(0===c.wrap){c.mode=W;break}for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(2&c.wrap&&35615===m){c.check=0,Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=t(c.check,Ba,2,0),m=0,n=0,c.mode=L;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=la;break}if((15&m)!==J){a.msg="unknown compression method",c.mode=la;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg="invalid window size",c.mode=la;break}c.dmax=1<<wa,a.adler=c.check=1,c.mode=512&m?T:V,m=0,n=0;break;case L:for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.flags=m,(255&c.flags)!==J){a.msg="unknown compression method",c.mode=la;break}if(57344&c.flags){a.msg="unknown header flags set",c.mode=la;break}c.head&&(c.head.text=m>>8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=t(c.check,Ba,2,0)),m=0,n=0,c.mode=M;case M:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.time=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=t(c.check,Ba,4,0)),m=0,n=0,c.mode=N;case N:for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.xflags=255&m,c.head.os=m>>8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=t(c.check,Ba,2,0)),m=0,n=0,c.mode=O;case O:if(1024&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length=m,c.head&&(c.head.extra_len=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=t(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=P;case P:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),r.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=Q;case Q:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&i>q);if(512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=R;case R:if(4096&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.comment+=String.fromCharCode(wa));while(wa&&i>q);if(512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.comment=null);c.mode=S;case S:if(512&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(65535&c.check)){a.msg="header crc mismatch",c.mode=la;break}m=0,n=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=V;break;case T:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}a.adler=c.check=d(m),m=0,n=0,c.mode=U;case U:if(0===c.havedict)return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,E;a.adler=c.check=1,c.mode=V;case V:if(b===A||b===B)break a;case W:if(c.last){m>>>=7&n,n-=7&n,c.mode=ia;break}for(;3>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}switch(c.last=1&m,m>>>=1,n-=1,3&m){case 0:c.mode=X;break;case 1:if(k(c),c.mode=ba,b===B){m>>>=2,n-=2;break a}break;case 2:c.mode=$;break;case 3:a.msg="invalid block type",c.mode=la}m>>>=2,n-=2;break;case X:for(m>>>=7&n,n-=7&n;32>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if((65535&m)!==(m>>>16^65535)){a.msg="invalid stored block lengths",c.mode=la;break}if(c.length=65535&m,m=0,n=0,c.mode=Y,b===B)break a;case Y:c.mode=Z;case Z:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;r.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=V;break;case $:for(;14>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.nlen=(31&m)+257,m>>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=la;break}c.have=0,c.mode=_;case _:for(;c.have<c.ncode;){for(;3>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.lens[Ca[c.have++]]=7&m,m>>>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=v(w,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid code lengths set",c.mode=la;break}c.have=0,c.mode=aa;case aa:for(;c.have<c.nlen+c.ndist;){for(;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(16>sa)m>>>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;za>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m>>>=qa,n-=qa,0===c.have){a.msg="invalid bit length repeat",c.mode=la;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;za>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;za>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=la;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===la)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=la;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=v(x,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid literal/lengths set",c.mode=la;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=v(y,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg="invalid distances set",c.mode=la;break}if(c.mode=ba,b===B)break a;case ba:c.mode=ca;case ca:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,u(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===V&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(ra&&0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.lencode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=ta+qa);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ha;break}if(32&ra){c.back=-1,c.mode=V;break}if(64&ra){a.msg="invalid literal/length code",c.mode=la;break}c.extra=15&ra,c.mode=da;case da:if(c.extra){for(za=c.extra;za>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=ea;case ea:for(;Aa=c.distcode[m&(1<<c.distbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.distcode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=ta+qa);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg="invalid distance code",c.mode=la;break}c.offset=sa,c.extra=15&ra,c.mode=fa;case fa:if(c.extra){for(za=c.extra;za>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.offset+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=la;break}c.mode=ga;case ga:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=la;break}q>c.wnext?(q-=c.wnext,oa=c.wsize-q):oa=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,oa=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[oa++];while(--q);0===c.length&&(c.mode=ca);break;case ha:if(0===j)break a;f[h++]=c.length,j--,c.mode=ca;break;case ia:if(c.wrap){for(;32>n;){if(0===i)break a;i--,m|=e[g++]<<n,n+=8}if(p-=j,a.total_out+=p,c.total+=p,p&&(a.adler=c.check=c.flags?t(c.check,f,p,h-p):s(c.check,f,p,h-p)),p=j,(c.flags?m:d(m))!==c.check){a.msg="incorrect data check",c.mode=la;break}m=0,n=0}c.mode=ja;case ja:if(c.wrap&&c.flags){for(;32>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(4294967295&c.total)){a.msg="incorrect length check",c.mode=la;break}m=0,n=0}c.mode=ka;case ka:xa=D;break a;case la:xa=G;break a;case ma:return H;case na:default:return F}return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,(c.wsize||p!==a.avail_out&&c.mode<la&&(c.mode<ia||b!==z))&&l(a,a.output,a.next_out,p-a.avail_out)?(c.mode=ma,H):(o-=a.avail_in,p-=a.avail_out,a.total_in+=o,a.total_out+=p,c.total+=p,c.wrap&&p&&(a.adler=c.check=c.flags?t(c.check,f,p,a.next_out-p):s(c.check,f,p,a.next_out-p)),a.data_type=c.bits+(c.last?64:0)+(c.mode===V?128:0)+(c.mode===ba||c.mode===Y?256:0),(0===o&&0===p||b===z)&&xa===C&&(xa=I),xa)}function n(a){if(!a||!a.state)return F;var b=a.state;return b.window&&(b.window=null),a.state=null,C}function o(a,b){var c;return a&&a.state?(c=a.state,0===(2&c.wrap)?F:(c.head=b,b.done=!1,C)):F}var p,q,r=c(52),s=c(54),t=c(55),u=c(57),v=c(58),w=0,x=1,y=2,z=4,A=5,B=6,C=0,D=1,E=2,F=-2,G=-3,H=-4,I=-5,J=8,K=1,L=2,M=3,N=4,O=5,P=6,Q=7,R=8,S=9,T=10,U=11,V=12,W=13,X=14,Y=15,Z=16,$=17,_=18,aa=19,ba=20,ca=21,da=22,ea=23,fa=24,ga=25,ha=26,ia=27,ja=28,ka=29,la=30,ma=31,na=32,oa=852,pa=592,qa=15,ra=qa,sa=!0;b.inflateReset=g,b.inflateReset2=h,b.inflateResetKeep=f,b.inflateInit=j,b.inflateInit2=i,b.inflate=m,b.inflateEnd=n,b.inflateGetHeader=o,b.inflateInfo="pako inflate (from Nodeca project)"},function(a,b){"use strict";var c=30,d=12;a.exports=function(a,b){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C;e=a.state,f=a.next_in,B=a.input,g=f+(a.avail_in-5),h=a.next_out,C=a.output,i=h-(b-a.avail_out),j=h+(a.avail_out-257),k=e.dmax,l=e.wsize,m=e.whave,n=e.wnext,o=e.window,p=e.hold,q=e.bits,r=e.lencode,s=e.distcode,t=(1<<e.lenbits)-1,u=(1<<e.distbits)-1;a:do{15>q&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=r[p&t];b:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<<w)-1)];continue b}if(32&w){e.mode=d;break a}a.msg="invalid literal/length code",e.mode=c;break a}x=65535&v,w&=15,w&&(w>q&&(p+=B[f++]<<q,q+=8),x+=p&(1<<w)-1,p>>>=w,q-=w),15>q&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=s[p&u];c:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<<w)-1)];continue c}a.msg="invalid distance code",e.mode=c;break a}if(y=65535&v,w&=15,w>q&&(p+=B[f++]<<q,q+=8,w>q&&(p+=B[f++]<<q,q+=8)),y+=p&(1<<w)-1,y>k){a.msg="invalid distance too far back",e.mode=c;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&e.sane){a.msg="invalid distance too far back",e.mode=c;break a}if(z=0,A=o,0===n){if(z+=l-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(w>n){if(z+=l+n-w,w-=n,x>w){x-=w;do C[h++]=o[z++];while(--w);if(z=0,x>n){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(g>f&&j>h);x=q>>3,f-=x,q-=x<<3,p&=(1<<q)-1,a.next_in=f,a.next_out=h,a.avail_in=g>f?5+(g-f):5-(f-g),a.avail_out=j>h?257+(j-h):257-(h-j),e.hold=p,e.bits=q}},function(a,b,c){"use strict";var d=c(52),e=15,f=852,g=592,h=0,i=1,j=2,k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],l=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],n=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];a.exports=function(a,b,c,o,p,q,r,s){var t,u,v,w,x,y,z,A,B,C=s.bits,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=null,O=0,P=new d.Buf16(e+1),Q=new d.Buf16(e+1),R=null,S=0;for(D=0;e>=D;D++)P[D]=0;for(E=0;o>E;E++)P[b[c+E]]++;for(H=C,G=e;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;G>F&&0===P[F];F++);for(F>H&&(H=F),K=1,D=1;e>=D;D++)if(K<<=1,K-=P[D],0>K)return-1;if(K>0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;e>D;D++)Q[D+1]=Q[D]+P[D];for(E=0;o>E;E++)0!==b[c+E]&&(r[Q[b[c+E]]++]=E);if(a===h?(N=R=r,y=19):a===i?(N=k,O-=257,R=l,S-=257,y=256):(N=m,R=n,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<<H,w=L-1,a===i&&L>f||a===j&&L>g)return 1;for(var T=0;;){T++,z=D-J,r[E]<y?(A=0,B=r[E]):r[E]>y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<<D-J,u=1<<I,F=u;do u-=t,p[x+(M>>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<<D-1;M&t;)t>>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<<I;G>I+J&&(K-=P[I+J],!(0>=K));)I++,K<<=1;if(L+=1<<I,a===i&&L>f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},function(a,b){a.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(a,b,c){(function(a,d){function e(a,c){var d={seen:[],stylize:g};return arguments.length>=3&&(d.depth=arguments[2]),arguments.length>=4&&(d.colors=arguments[3]),p(c)?d.showHidden=c:c&&b._extend(d,c),v(d.showHidden)&&(d.showHidden=!1),v(d.depth)&&(d.depth=2),v(d.colors)&&(d.colors=!1),v(d.customInspect)&&(d.customInspect=!0),d.colors&&(d.stylize=f),i(d,a,d.depth)}function f(a,b){var c=e.styles[b];return c?"\e["+e.colors[c][0]+"m"+a+"\e["+e.colors[c][1]+"m":a}function g(a,b){return a}function h(a){var b={};return a.forEach(function(a,c){b[a]=!0}),b}function i(a,c,d){if(a.customInspect&&c&&A(c.inspect)&&c.inspect!==b.inspect&&(!c.constructor||c.constructor.prototype!==c)){var e=c.inspect(d,a);return t(e)||(e=i(a,e,d)),e}var f=j(a,c);if(f)return f;var g=Object.keys(c),p=h(g);if(a.showHidden&&(g=Object.getOwnPropertyNames(c)),z(c)&&(g.indexOf("message")>=0||g.indexOf("description")>=0))return k(c);if(0===g.length){if(A(c)){var q=c.name?": "+c.name:"";return a.stylize("[Function"+q+"]","special")}if(w(c))return a.stylize(RegExp.prototype.toString.call(c),"regexp");if(y(c))return a.stylize(Date.prototype.toString.call(c),"date");if(z(c))return k(c)}var r="",s=!1,u=["{","}"];if(o(c)&&(s=!0,u=["[","]"]),A(c)){var v=c.name?": "+c.name:"";r=" [Function"+v+"]"}if(w(c)&&(r=" "+RegExp.prototype.toString.call(c)),y(c)&&(r=" "+Date.prototype.toUTCString.call(c)),z(c)&&(r=" "+k(c)),0===g.length&&(!s||0==c.length))return u[0]+r+u[1];if(0>d)return w(c)?a.stylize(RegExp.prototype.toString.call(c),"regexp"):a.stylize("[Object]","special");a.seen.push(c);var x;return x=s?l(a,c,d,p,g):g.map(function(b){return m(a,c,d,p,b,s)}),a.seen.pop(),n(x,r,u)}function j(a,b){if(v(b))return a.stylize("undefined","undefined");if(t(b)){var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string")}return s(b)?a.stylize(""+b,"number"):p(b)?a.stylize(""+b,"boolean"):q(b)?a.stylize("null","null"):void 0}function k(a){return"["+Error.prototype.toString.call(a)+"]"}function l(a,b,c,d,e){for(var f=[],g=0,h=b.length;h>g;++g)F(b,String(g))?f.push(m(a,b,c,d,String(g),!0)):f.push("");return e.forEach(function(e){e.match(/^\d+$/)||f.push(m(a,b,c,d,e,!0))}),f}function m(a,b,c,d,e,f){var g,h,j;if(j=Object.getOwnPropertyDescriptor(b,e)||{value:b[e]},j.get?h=j.set?a.stylize("[Getter/Setter]","special"):a.stylize("[Getter]","special"):j.set&&(h=a.stylize("[Setter]","special")),F(d,e)||(g="["+e+"]"),h||(a.seen.indexOf(j.value)<0?(h=q(c)?i(a,j.value,null):i(a,j.value,c-1),h.indexOf("\n")>-1&&(h=f?h.split("\n").map(function(a){return"  "+a}).join("\n").substr(2):"\n"+h.split("\n").map(function(a){return"   "+a}).join("\n"))):h=a.stylize("[Circular]","special")),v(g)){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function n(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.replace(/\u001b\[\d\d?m/g,"").length+1},0);return e>60?c[0]+(""===b?"":b+"\n ")+" "+a.join(",\n  ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function o(a){return Array.isArray(a)}function p(a){return"boolean"==typeof a}function q(a){return null===a}function r(a){return null==a}function s(a){return"number"==typeof a}function t(a){return"string"==typeof a}function u(a){return"symbol"==typeof a}function v(a){return void 0===a}function w(a){return x(a)&&"[object RegExp]"===C(a)}function x(a){return"object"==typeof a&&null!==a}function y(a){return x(a)&&"[object Date]"===C(a)}function z(a){return x(a)&&("[object Error]"===C(a)||a instanceof Error)}function A(a){return"function"==typeof a}function B(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function C(a){return Object.prototype.toString.call(a)}function D(a){return 10>a?"0"+a.toString(10):a.toString(10)}function E(){var a=new Date,b=[D(a.getHours()),D(a.getMinutes()),D(a.getSeconds())].join(":");return[a.getDate(),J[a.getMonth()],b].join(" ")}function F(a,b){return Object.prototype.hasOwnProperty.call(a,b)}var G=/%[sdj%]/g;b.format=function(a){if(!t(a)){for(var b=[],c=0;c<arguments.length;c++)b.push(e(arguments[c]));return b.join(" ")}for(var c=1,d=arguments,f=d.length,g=String(a).replace(G,function(a){if("%%"===a)return"%";if(c>=f)return a;switch(a){case"%s":return String(d[c++]);case"%d":return Number(d[c++]);case"%j":try{return JSON.stringify(d[c++])}catch(b){return"[Circular]"}default:return a}}),h=d[c];f>c;h=d[++c])g+=q(h)||!x(h)?" "+h:" "+e(h);return g},b.deprecate=function(c,e){function f(){if(!g){if(d.throwDeprecation)throw new Error(e);d.traceDeprecation?console.trace(e):console.error(e),g=!0}return c.apply(this,arguments)}if(v(a.process))return function(){return b.deprecate(c,e).apply(this,arguments)};if(d.noDeprecation===!0)return c;var g=!1;return f};var H,I={};b.debuglog=function(a){if(v(H)&&(H=d.env.NODE_DEBUG||""),a=a.toUpperCase(),!I[a])if(new RegExp("\\b"+a+"\\b","i").test(H)){var c=d.pid;I[a]=function(){var d=b.format.apply(b,arguments);console.error("%s %d: %s",a,c,d)}}else I[a]=function(){};return I[a]},b.inspect=e,e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},b.isArray=o,b.isBoolean=p,b.isNull=q,b.isNullOrUndefined=r,b.isNumber=s,b.isString=t,b.isSymbol=u,b.isUndefined=v,b.isRegExp=w,b.isObject=x,b.isDate=y,b.isError=z,b.isFunction=A,b.isPrimitive=B,b.isBuffer=c(61);var J=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];b.log=function(){console.log("%s - %s",E(),b.format.apply(b,arguments))},b.inherits=c(62),b._extend=function(a,b){if(!b||!x(b))return a;for(var c=Object.keys(b),d=c.length;d--;)a[c[d]]=b[c[d]];return a}}).call(b,function(){return this}(),c(30))},function(a,b){a.exports=function(a){return a&&"object"==typeof a&&"function"==typeof a.copy&&"function"==typeof a.fill&&"function"==typeof a.readUInt8}},function(a,b){"function"==typeof Object.create?a.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:a.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},function(a,b,c){function d(a,b){return n.isUndefined(b)?""+b:n.isNumber(b)&&!isFinite(b)?b.toString():n.isFunction(b)||n.isRegExp(b)?b.toString():b}function e(a,b){return n.isString(a)?a.length<b?a:a.slice(0,b):a}function f(a){return e(JSON.stringify(a.actual,d),128)+" "+a.operator+" "+e(JSON.stringify(a.expected,d),128)}function g(a,b,c,d,e){throw new q.AssertionError({message:c,actual:a,expected:b,operator:d,stackStartFunction:e})}function h(a,b){a||g(a,!0,b,"==",q.ok)}function i(a,b){if(a===b)return!0;if(n.isBuffer(a)&&n.isBuffer(b)){if(a.length!=b.length)return!1;for(var c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}return n.isDate(a)&&n.isDate(b)?a.getTime()===b.getTime():n.isRegExp(a)&&n.isRegExp(b)?a.source===b.source&&a.global===b.global&&a.multiline===b.multiline&&a.lastIndex===b.lastIndex&&a.ignoreCase===b.ignoreCase:n.isObject(a)||n.isObject(b)?k(a,b):a==b}function j(a){return"[object Arguments]"==Object.prototype.toString.call(a)}function k(a,b){if(n.isNullOrUndefined(a)||n.isNullOrUndefined(b))return!1;if(a.prototype!==b.prototype)return!1;if(n.isPrimitive(a)||n.isPrimitive(b))return a===b;var c=j(a),d=j(b);if(c&&!d||!c&&d)return!1;if(c)return a=o.call(a),b=o.call(b),i(a,b);var e,f,g=r(a),h=r(b);if(g.length!=h.length)return!1;for(g.sort(),h.sort(),f=g.length-1;f>=0;f--)if(g[f]!=h[f])return!1;for(f=g.length-1;f>=0;f--)if(e=g[f],!i(a[e],b[e]))return!1;return!0}function l(a,b){return a&&b?"[object RegExp]"==Object.prototype.toString.call(b)?b.test(a):a instanceof b?!0:b.call({},a)===!0?!0:!1:!1}function m(a,b,c,d){var e;n.isString(c)&&(d=c,c=null);try{b()}catch(f){e=f}if(d=(c&&c.name?" ("+c.name+").":".")+(d?" "+d:"."),a&&!e&&g(e,c,"Missing expected exception"+d),!a&&l(e,c)&&g(e,c,"Got unwanted exception"+d),a&&e&&c&&!l(e,c)||!a&&e)throw e}var n=c(60),o=Array.prototype.slice,p=Object.prototype.hasOwnProperty,q=a.exports=h;q.AssertionError=function(a){this.name="AssertionError",this.actual=a.actual,this.expected=a.expected,this.operator=a.operator,a.message?(this.message=a.message,this.generatedMessage=!1):(this.message=f(this),this.generatedMessage=!0);var b=a.stackStartFunction||g;if(Error.captureStackTrace)Error.captureStackTrace(this,b);else{var c=new Error;if(c.stack){var d=c.stack,e=b.name,h=d.indexOf("\n"+e);if(h>=0){var i=d.indexOf("\n",h+1);d=d.substring(i+1)}this.stack=d}}},n.inherits(q.AssertionError,Error),q.fail=g,q.ok=h,q.equal=function(a,b,c){a!=b&&g(a,b,c,"==",q.equal)},q.notEqual=function(a,b,c){a==b&&g(a,b,c,"!=",q.notEqual)},q.deepEqual=function(a,b,c){i(a,b)||g(a,b,c,"deepEqual",q.deepEqual)},q.notDeepEqual=function(a,b,c){i(a,b)&&g(a,b,c,"notDeepEqual",q.notDeepEqual)},q.strictEqual=function(a,b,c){a!==b&&g(a,b,c,"===",q.strictEqual)},q.notStrictEqual=function(a,b,c){a===b&&g(a,b,c,"!==",q.notStrictEqual)},q["throws"]=function(a,b,c){m.apply(this,[!0].concat(o.call(arguments)))},q.doesNotThrow=function(a,b){m.apply(this,[!1].concat(o.call(arguments)))},q.ifError=function(a){if(a)throw a};var r=Object.keys||function(a){var b=[];for(var c in a)p.call(a,c)&&b.push(c);return b}},function(a,b){(function(){var b;b=function(){function a(a,d){var e;this.document=a,null==d&&(d={}),this.size=d.size||"letter",this.layout=d.layout||"portrait","number"==typeof d.margin?this.margins={top:d.margin,left:d.margin,bottom:d.margin,right:d.margin}:this.margins=d.margins||b,e=Array.isArray(this.size)?this.size:c[this.size.toUpperCase()],this.width=e["portrait"===this.layout?0:1],this.height=e["portrait"===this.layout?1:0],this.content=this.document.ref(),this.resources=this.document.ref({ProcSet:["PDF","Text","ImageB","ImageC","ImageI"]}),Object.defineProperties(this,{fonts:{get:function(a){return function(){var b;return null!=(b=a.resources.data).Font?b.Font:b.Font={}}}(this)},xobjects:{get:function(a){return function(){var b;return null!=(b=a.resources.data).XObject?b.XObject:b.XObject={}}}(this)},ext_gstates:{get:function(a){return function(){var b;return null!=(b=a.resources.data).ExtGState?b.ExtGState:b.ExtGState={}}}(this)},patterns:{get:function(a){return function(){var b;return null!=(b=a.resources.data).Pattern?b.Pattern:b.Pattern={}}}(this)},annotations:{get:function(a){return function(){var b;return null!=(b=a.dictionary.data).Annots?b.Annots:b.Annots=[]}}(this)}}),this.dictionary=this.document.ref({Type:"Page",Parent:this.document._root.data.Pages,MediaBox:[0,0,this.width,this.height],Contents:this.content,Resources:this.resources})}var b,c;return a.prototype.maxY=function(){return this.height-this.margins.bottom},a.prototype.write=function(a){return this.content.write(a)},a.prototype.end=function(){return this.dictionary.end(),this.resources.end(),this.content.end()},b={top:72,left:72,bottom:72,right:72},c={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],
-EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],LETTER:[612,792],TABLOID:[792,1224]},a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f,g;g=c(66),b=g.PDFGradient,d=g.PDFLinearGradient,e=g.PDFRadialGradient,a.exports={initColor:function(){return this._opacityRegistry={},this._opacityCount=0,this._gradCount=0},_normalizeColor:function(a){var c,d;return a instanceof b?a:("string"==typeof a&&("#"===a.charAt(0)?(4===a.length&&(a=a.replace(/#([0-9A-F])([0-9A-F])([0-9A-F])/i,"#$1$1$2$2$3$3")),c=parseInt(a.slice(1),16),a=[c>>16,c>>8&255,255&c]):f[a]&&(a=f[a])),Array.isArray(a)?(3===a.length?a=function(){var b,c,e;for(e=[],b=0,c=a.length;c>b;b++)d=a[b],e.push(d/255);return e}():4===a.length&&(a=function(){var b,c,e;for(e=[],b=0,c=a.length;c>b;b++)d=a[b],e.push(d/100);return e}()),a):null)},_setColor:function(a,c){var d,e,f,g;return(a=this._normalizeColor(a))?(this._sMasked&&(d=this.ref({Type:"ExtGState",SMask:"None"}),d.end(),e="Gs"+ ++this._opacityCount,this.page.ext_gstates[e]=d,this.addContent("/"+e+" gs"),this._sMasked=!1),f=c?"SCN":"scn",a instanceof b?(this._setColorSpace("Pattern",c),a.apply(f)):(g=4===a.length?"DeviceCMYK":"DeviceRGB",this._setColorSpace(g,c),a=a.join(" "),this.addContent(""+a+" "+f)),!0):!1},_setColorSpace:function(a,b){var c;return c=b?"CS":"cs",this.addContent("/"+a+" "+c)},fillColor:function(a,b){var c;return null==b&&(b=1),c=this._setColor(a,!1),c&&this.fillOpacity(b),this._fillColor=[a,b],this},strokeColor:function(a,b){var c;return null==b&&(b=1),c=this._setColor(a,!0),c&&this.strokeOpacity(b),this},opacity:function(a){return this._doOpacity(a,a),this},fillOpacity:function(a){return this._doOpacity(a,null),this},strokeOpacity:function(a){return this._doOpacity(null,a),this},_doOpacity:function(a,b){var c,d,e,f,g;if(null!=a||null!=b)return null!=a&&(a=Math.max(0,Math.min(1,a))),null!=b&&(b=Math.max(0,Math.min(1,b))),e=""+a+"_"+b,this._opacityRegistry[e]?(g=this._opacityRegistry[e],c=g[0],f=g[1]):(c={Type:"ExtGState"},null!=a&&(c.ca=a),null!=b&&(c.CA=b),c=this.ref(c),c.end(),d=++this._opacityCount,f="Gs"+d,this._opacityRegistry[e]=[c,f]),this.page.ext_gstates[f]=c,this.addContent("/"+f+" gs")},linearGradient:function(a,b,c,e){return new d(this,a,b,c,e)},radialGradient:function(a,b,c,d,f,g){return new e(this,a,b,c,d,f,g)}},f={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}).call(this)},function(a,b){(function(){var b,c,d,e={}.hasOwnProperty,f=function(a,b){function c(){this.constructor=a}for(var d in b)e.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};b=function(){function a(a){this.doc=a,this.stops=[],this.embedded=!1,this.transform=[1,0,0,1,0,0],this._colorSpace="DeviceRGB"}return a.prototype.stop=function(a,b,c){return null==c&&(c=1),c=Math.max(0,Math.min(1,c)),this.stops.push([a,this.doc._normalizeColor(b),c]),this},a.prototype.embed=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J;if(!this.embedded&&0!==this.stops.length){for(this.embedded=!0,k=this.stops[this.stops.length-1],k[0]<1&&this.stops.push([1,k[1],k[2]]),a=[],d=[],C=[],j=E=0,H=this.stops.length-1;H>=0?H>E:E>H;j=H>=0?++E:--E)d.push(0,1),j+2!==this.stops.length&&a.push(this.stops[j+1][0]),e=this.doc.ref({FunctionType:2,Domain:[0,1],C0:this.stops[j+0][1],C1:this.stops[j+1][1],N:1}),C.push(e),e.end();if(1===C.length?e=C[0]:(e=this.doc.ref({FunctionType:3,Domain:[0,1],Functions:C,Bounds:a,Encode:d}),e.end()),this.id="Sh"+ ++this.doc._gradCount,l=this.doc._ctm.slice(),m=l[0],n=l[1],q=l[2],t=l[3],u=l[4],v=l[5],I=this.transform,o=I[0],p=I[1],r=I[2],s=I[3],b=I[4],c=I[5],l[0]=m*o+q*p,l[1]=n*o+t*p,l[2]=m*r+q*s,l[3]=n*r+t*s,l[4]=m*b+q*c+u,l[5]=n*b+t*c+v,A=this.shader(e),A.end(),x=this.doc.ref({Type:"Pattern",PatternType:2,Shading:A,Matrix:function(){var a,b,c;for(c=[],a=0,b=l.length;b>a;a++)D=l[a],c.push(+D.toFixed(5));return c}()}),this.doc.page.patterns[this.id]=x,x.end(),this.stops.some(function(a){return a[2]<1})){for(g=this.opacityGradient(),g._colorSpace="DeviceGray",J=this.stops,F=0,G=J.length;G>F;F++)B=J[F],g.stop(B[0],[B[2]]);g=g.embed(),h=this.doc.ref({Type:"Group",S:"Transparency",CS:"DeviceGray"}),h.end(),y=this.doc.ref({ProcSet:["PDF","Text","ImageB","ImageC","ImageI"],Shading:{Sh1:g.data.Shading}}),y.end(),f=this.doc.ref({Type:"XObject",Subtype:"Form",FormType:1,BBox:[0,0,this.doc.page.width,this.doc.page.height],Group:h,Resources:y}),f.end("/Sh1 sh"),z=this.doc.ref({Type:"Mask",S:"Luminosity",G:f}),z.end(),i=this.doc.ref({Type:"ExtGState",SMask:z}),this.opacity_id=++this.doc._opacityCount,w="Gs"+this.opacity_id,this.doc.page.ext_gstates[w]=i,i.end()}return x}},a.prototype.apply=function(a){return this.embedded||this.embed(),this.doc.addContent("/"+this.id+" "+a),this.opacity_id?(this.doc.addContent("/Gs"+this.opacity_id+" gs"),this.doc._sMasked=!0):void 0},a}(),c=function(a){function b(a,c,d,e,f){this.doc=a,this.x1=c,this.y1=d,this.x2=e,this.y2=f,b.__super__.constructor.apply(this,arguments)}return f(b,a),b.prototype.shader=function(a){return this.doc.ref({ShadingType:2,ColorSpace:this._colorSpace,Coords:[this.x1,this.y1,this.x2,this.y2],Function:a,Extend:[!0,!0]})},b.prototype.opacityGradient=function(){return new b(this.doc,this.x1,this.y1,this.x2,this.y2)},b}(b),d=function(a){function b(a,c,d,e,f,g,h){this.doc=a,this.x1=c,this.y1=d,this.r1=e,this.x2=f,this.y2=g,this.r2=h,b.__super__.constructor.apply(this,arguments)}return f(b,a),b.prototype.shader=function(a){return this.doc.ref({ShadingType:3,ColorSpace:this._colorSpace,Coords:[this.x1,this.y1,this.r1,this.x2,this.y2,this.r2],Function:a,Extend:[!0,!0]})},b.prototype.opacityGradient=function(){return new b(this.doc,this.x1,this.y1,this.r1,this.x2,this.y2,this.r2)},b}(b),a.exports={PDFGradient:b,PDFLinearGradient:c,PDFRadialGradient:d}}).call(this)},function(a,b,c){(function(){var b,d,e=[].slice;d=c(68),b=4*((Math.sqrt(2)-1)/3),a.exports={initVector:function(){return this._ctm=[1,0,0,1,0,0],this._ctmStack=[]},save:function(){return this._ctmStack.push(this._ctm.slice()),this.addContent("q")},restore:function(){return this._ctm=this._ctmStack.pop()||[1,0,0,1,0,0],this.addContent("Q")},closePath:function(){return this.addContent("h")},lineWidth:function(a){return this.addContent(""+a+" w")},_CAP_STYLES:{BUTT:0,ROUND:1,SQUARE:2},lineCap:function(a){return"string"==typeof a&&(a=this._CAP_STYLES[a.toUpperCase()]),this.addContent(""+a+" J")},_JOIN_STYLES:{MITER:0,ROUND:1,BEVEL:2},lineJoin:function(a){return"string"==typeof a&&(a=this._JOIN_STYLES[a.toUpperCase()]),this.addContent(""+a+" j")},miterLimit:function(a){return this.addContent(""+a+" M")},dash:function(a,b){var c,d,e;return null==b&&(b={}),null==a?this:(d=null!=(e=b.space)?e:a,c=b.phase||0,this.addContent("["+a+" "+d+"] "+c+" d"))},undash:function(){return this.addContent("[] 0 d")},moveTo:function(a,b){return this.addContent(""+a+" "+b+" m")},lineTo:function(a,b){return this.addContent(""+a+" "+b+" l")},bezierCurveTo:function(a,b,c,d,e,f){return this.addContent(""+a+" "+b+" "+c+" "+d+" "+e+" "+f+" c")},quadraticCurveTo:function(a,b,c,d){return this.addContent(""+a+" "+b+" "+c+" "+d+" v")},rect:function(a,b,c,d){return this.addContent(""+a+" "+b+" "+c+" "+d+" re")},roundedRect:function(a,b,c,d,e){return null==e&&(e=0),this.moveTo(a+e,b),this.lineTo(a+c-e,b),this.quadraticCurveTo(a+c,b,a+c,b+e),this.lineTo(a+c,b+d-e),this.quadraticCurveTo(a+c,b+d,a+c-e,b+d),this.lineTo(a+e,b+d),this.quadraticCurveTo(a,b+d,a,b+d-e),this.lineTo(a,b+e),this.quadraticCurveTo(a,b,a+e,b)},ellipse:function(a,c,d,e){var f,g,h,i,j,k;return null==e&&(e=d),a-=d,c-=e,f=d*b,g=e*b,h=a+2*d,j=c+2*e,i=a+d,k=c+e,this.moveTo(a,k),this.bezierCurveTo(a,k-g,i-f,c,i,c),this.bezierCurveTo(i+f,c,h,k-g,h,k),this.bezierCurveTo(h,k+g,i+f,j,i,j),this.bezierCurveTo(i-f,j,a,k+g,a,k),this.closePath()},circle:function(a,b,c){return this.ellipse(a,b,c)},polygon:function(){var a,b,c,d;for(b=1<=arguments.length?e.call(arguments,0):[],this.moveTo.apply(this,b.shift()),c=0,d=b.length;d>c;c++)a=b[c],this.lineTo.apply(this,a);return this.closePath()},path:function(a){return d.apply(this,a),this},_windingRule:function(a){return/even-?odd/.test(a)?"*":""},fill:function(a,b){return/(even-?odd)|(non-?zero)/.test(a)&&(b=a,a=null),a&&this.fillColor(a),this.addContent("f"+this._windingRule(b))},stroke:function(a){return a&&this.strokeColor(a),this.addContent("S")},fillAndStroke:function(a,b,c){var d;return null==b&&(b=a),d=/(even-?odd)|(non-?zero)/,d.test(a)&&(c=a,a=null),d.test(b)&&(c=b,b=a),a&&(this.fillColor(a),this.strokeColor(b)),this.addContent("B"+this._windingRule(c))},clip:function(a){return this.addContent("W"+this._windingRule(a)+" n")},transform:function(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o;return g=this._ctm,h=g[0],i=g[1],j=g[2],k=g[3],l=g[4],m=g[5],g[0]=h*a+j*b,g[1]=i*a+k*b,g[2]=h*c+j*d,g[3]=i*c+k*d,g[4]=h*e+j*f+l,g[5]=i*e+k*f+m,o=function(){var g,h,i,j;for(i=[a,b,c,d,e,f],j=[],g=0,h=i.length;h>g;g++)n=i[g],j.push(+n.toFixed(5));return j}().join(" "),this.addContent(""+o+" cm")},translate:function(a,b){return this.transform(1,0,0,1,a,b)},rotate:function(a,b){var c,d,e,f,g,h,i,j;return null==b&&(b={}),d=a*Math.PI/180,c=Math.cos(d),e=Math.sin(d),f=h=0,null!=b.origin&&(j=b.origin,f=j[0],h=j[1],g=f*c-h*e,i=f*e+h*c,f-=g,h-=i),this.transform(c,e,-e,c,f,h)},scale:function(a,b,c){var d,e,f;return null==b&&(b=a),null==c&&(c={}),2===arguments.length&&(b=a,c=b),d=e=0,null!=c.origin&&(f=c.origin,d=f[0],e=f[1],d-=a*d,e-=b*e),this.transform(a,0,0,b,d,e)}}}).call(this)},function(a,b){(function(){var b;b=function(){function a(){}var b,c,d,e,f,g,h,i,j,k,l,m,n;return a.apply=function(a,c){var d;return d=g(c),b(d,a)},f={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0},g=function(a){var b,c,d,e,g,h,i,j,k;for(i=[],b=[],e="",g=!1,h=0,j=0,k=a.length;k>j;j++)if(c=a[j],null!=f[c])h=f[c],d&&(e.length>0&&(b[b.length]=+e),i[i.length]={cmd:d,args:b},b=[],e="",g=!1),d=c;else if(" "===c||","===c||"-"===c&&e.length>0&&"e"!==e[e.length-1]||"."===c&&g){if(0===e.length)continue;b.length===h?(i[i.length]={cmd:d,args:b},b=[+e],"M"===d&&(d="L"),"m"===d&&(d="l")):b[b.length]=+e,g="."===c,e="-"===c||"."===c?c:""}else e+=c,"."===c&&(g=!0);return e.length>0&&(b.length===h?(i[i.length]={cmd:d,args:b},b=[+e],"M"===d&&(d="L"),"m"===d&&(d="l")):b[b.length]=+e),i[i.length]={cmd:d,args:b},i},d=e=h=i=m=n=0,b=function(a,b){var c,f,g,k,l;for(d=e=h=i=m=n=0,f=g=0,k=a.length;k>g;f=++g)c=a[f],"function"==typeof j[l=c.cmd]&&j[l](b,c.args);return d=e=h=i=0},j={M:function(a,b){return d=b[0],e=b[1],h=i=null,m=d,n=e,a.moveTo(d,e)},m:function(a,b){return d+=b[0],e+=b[1],h=i=null,m=d,n=e,a.moveTo(d,e)},C:function(a,b){return d=b[4],e=b[5],h=b[2],i=b[3],a.bezierCurveTo.apply(a,b)},c:function(a,b){return a.bezierCurveTo(b[0]+d,b[1]+e,b[2]+d,b[3]+e,b[4]+d,b[5]+e),h=d+b[2],i=e+b[3],d+=b[4],e+=b[5]},S:function(a,b){return null===h&&(h=d,i=e),a.bezierCurveTo(d-(h-d),e-(i-e),b[0],b[1],b[2],b[3]),h=b[0],i=b[1],d=b[2],e=b[3]},s:function(a,b){return null===h&&(h=d,i=e),a.bezierCurveTo(d-(h-d),e-(i-e),d+b[0],e+b[1],d+b[2],e+b[3]),h=d+b[0],i=e+b[1],d+=b[2],e+=b[3]},Q:function(a,b){return h=b[0],i=b[1],d=b[2],e=b[3],a.quadraticCurveTo(b[0],b[1],d,e)},q:function(a,b){return a.quadraticCurveTo(b[0]+d,b[1]+e,b[2]+d,b[3]+e),h=d+b[0],i=e+b[1],d+=b[2],e+=b[3]},T:function(a,b){return null===h?(h=d,i=e):(h=d-(h-d),i=e-(i-e)),a.quadraticCurveTo(h,i,b[0],b[1]),h=d-(h-d),i=e-(i-e),d=b[0],e=b[1]},t:function(a,b){return null===h?(h=d,i=e):(h=d-(h-d),i=e-(i-e)),a.quadraticCurveTo(h,i,d+b[0],e+b[1]),d+=b[0],e+=b[1]},A:function(a,b){return l(a,d,e,b),d=b[5],e=b[6]},a:function(a,b){return b[5]+=d,b[6]+=e,l(a,d,e,b),d=b[5],e=b[6]},L:function(a,b){return d=b[0],e=b[1],h=i=null,a.lineTo(d,e)},l:function(a,b){return d+=b[0],e+=b[1],h=i=null,a.lineTo(d,e)},H:function(a,b){return d=b[0],h=i=null,a.lineTo(d,e)},h:function(a,b){return d+=b[0],h=i=null,a.lineTo(d,e)},V:function(a,b){return e=b[0],h=i=null,a.lineTo(d,e)},v:function(a,b){return e+=b[0],h=i=null,a.lineTo(d,e)},Z:function(a){return a.closePath(),d=m,e=n},z:function(a){return a.closePath(),d=m,e=n}},l=function(a,b,d,e){var f,g,h,i,j,l,m,n,o,p,q,r,s;for(l=e[0],m=e[1],j=e[2],i=e[3],p=e[4],g=e[5],h=e[6],o=c(g,h,l,m,i,p,j,b,d),s=[],q=0,r=o.length;r>q;q++)n=o[q],f=k.apply(null,n),s.push(a.bezierCurveTo.apply(a,f));return s},c=function(a,b,c,d,e,f,g,j,k){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K;for(y=g*(Math.PI/180),x=Math.sin(y),p=Math.cos(y),c=Math.abs(c),d=Math.abs(d),h=p*(j-a)*.5+x*(k-b)*.5,i=p*(k-b)*.5-x*(j-a)*.5,s=h*h/(c*c)+i*i/(d*d),s>1&&(s=Math.sqrt(s),c*=s,d*=s),l=p/c,m=x/c,n=-x/d,o=p/d,E=l*j+m*k,H=n*j+o*k,F=l*a+m*b,I=n*a+o*b,q=(F-E)*(F-E)+(I-H)*(I-H),w=1/q-.25,0>w&&(w=0),v=Math.sqrt(w),f===e&&(v=-v),G=.5*(E+F)-v*(I-H),J=.5*(H+I)+v*(F-E),z=Math.atan2(H-J,E-G),A=Math.atan2(I-J,F-G),D=A-z,0>D&&1===f?D+=2*Math.PI:D>0&&0===f&&(D-=2*Math.PI),u=Math.ceil(Math.abs(D/(.5*Math.PI+.001))),t=[],r=K=0;u>=0?u>K:K>u;r=u>=0?++K:--K)B=z+r*D/u,C=z+(r+1)*D/u,t[r]=[G,J,B,C,c,d,x,p];return t},k=function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s,t;return i=h*e,j=-g*f,k=g*e,l=h*f,n=.5*(d-c),m=8/3*Math.sin(.5*n)*Math.sin(.5*n)/Math.sin(n),o=a+Math.cos(c)-m*Math.sin(c),r=b+Math.sin(c)+m*Math.cos(c),q=a+Math.cos(d),t=b+Math.sin(d),p=q+m*Math.sin(d),s=t-m*Math.cos(d),[i*o+j*r,k*o+l*r,i*p+j*s,k*p+l*s,i*q+j*t,k*q+l*t]},a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b;b=c(70),a.exports={initFonts:function(){this._fontFamilies={},this._fontCount=0,this._fontSize=12,this._font=null,this._registeredFonts={}},font:function(a,c,d){var e,f,g,h;return"number"==typeof c&&(d=c,c=null),"string"==typeof a&&this._registeredFonts[a]?(e=a,h=this._registeredFonts[a],a=h.src,c=h.family):(e=c||a,"string"!=typeof e&&(e=null)),null!=d&&this.fontSize(d),(f=this._fontFamilies[e])?(this._font=f,this):(g="F"+ ++this._fontCount,this._font=new b(this,a,c,g),(f=this._fontFamilies[this._font.name])?(this._font=f,this):(e&&(this._fontFamilies[e]=this._font),this._fontFamilies[this._font.name]=this._font,this))},fontSize:function(a){return this._fontSize=a,this},currentLineHeight:function(a){return null==a&&(a=!1),this._font.lineHeight(this._fontSize,a)},registerFont:function(a,b,c){return this._registeredFonts[a]={src:b,family:c},this}}}).call(this)},function(a,b,c){(function(b,d){(function(){var e,f,g,h,i;h=c(71),e=c(87),g=c(88),i=c(44),f=function(){function a(a,d,f,i){if(this.document=a,this.id=i,"string"==typeof d){if(d in c)return this.isAFM=!0,this.font=new e(c[d]()),void this.registerAFM(d);if(/\.(ttf|ttc)$/i.test(d))this.font=h.open(d,f);else{if(!/\.dfont$/i.test(d))throw new Error("Not a supported font format or standard PDF font.");this.font=h.fromDFont(d,f)}}else if(b.isBuffer(d))this.font=h.fromBuffer(d,f);else if(d instanceof Uint8Array)this.font=h.fromBuffer(new b(d),f);else{if(!(d instanceof ArrayBuffer))throw new Error("Not a supported font format or standard PDF font.");this.font=h.fromBuffer(new b(new Uint8Array(d)),f)}this.subset=new g(this.font),this.registerTTF()}var c,f;return c={Courier:function(){return i.readFileSync(d+"/font/data/Courier.afm","utf8")},"Courier-Bold":function(){return i.readFileSync(d+"/font/data/Courier-Bold.afm","utf8")},"Courier-Oblique":function(){return i.readFileSync(d+"/font/data/Courier-Oblique.afm","utf8")},"Courier-BoldOblique":function(){return i.readFileSync(d+"/font/data/Courier-BoldOblique.afm","utf8")},Helvetica:function(){return i.readFileSync(d+"/font/data/Helvetica.afm","utf8")},"Helvetica-Bold":function(){return i.readFileSync(d+"/font/data/Helvetica-Bold.afm","utf8")},"Helvetica-Oblique":function(){return i.readFileSync(d+"/font/data/Helvetica-Oblique.afm","utf8")},"Helvetica-BoldOblique":function(){return i.readFileSync(d+"/font/data/Helvetica-BoldOblique.afm","utf8")},"Times-Roman":function(){return i.readFileSync(d+"/font/data/Times-Roman.afm","utf8")},"Times-Bold":function(){return i.readFileSync(d+"/font/data/Times-Bold.afm","utf8")},"Times-Italic":function(){return i.readFileSync(d+"/font/data/Times-Italic.afm","utf8")},"Times-BoldItalic":function(){return i.readFileSync(d+"/font/data/Times-BoldItalic.afm","utf8")},Symbol:function(){return i.readFileSync(d+"/font/data/Symbol.afm","utf8")},ZapfDingbats:function(){return i.readFileSync(d+"/font/data/ZapfDingbats.afm","utf8")}},a.prototype.use=function(a){var b;return null!=(b=this.subset)?b.use(a):void 0},a.prototype.embed=function(){return this.embedded||null==this.dictionary?void 0:(this.isAFM?this.embedAFM():this.embedTTF(),this.embedded=!0)},a.prototype.encode=function(a){var b;return this.isAFM?this.font.encodeText(a):(null!=(b=this.subset)?b.encodeText(a):void 0)||a},a.prototype.ref=function(){return null!=this.dictionary?this.dictionary:this.dictionary=this.document.ref()},a.prototype.registerTTF=function(){var a,b,c,d,e;if(this.name=this.font.name.postscriptName,this.scaleFactor=1e3/this.font.head.unitsPerEm,this.bbox=function(){var b,c,d,e;for(d=this.font.bbox,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(Math.round(a*this.scaleFactor));return e}.call(this),this.stemV=0,this.font.post.exists?(d=this.font.post.italic_angle,b=d>>16,c=255&d,b&!0&&(b=-((65535^b)+1)),this.italicAngle=+(""+b+"."+c)):this.italicAngle=0,this.ascender=Math.round(this.font.ascender*this.scaleFactor),this.decender=Math.round(this.font.decender*this.scaleFactor),this.lineGap=Math.round(this.font.lineGap*this.scaleFactor),this.capHeight=this.font.os2.exists&&this.font.os2.capHeight||this.ascender,this.xHeight=this.font.os2.exists&&this.font.os2.xHeight||0,this.familyClass=(this.font.os2.exists&&this.font.os2.familyClass||0)>>8,this.isSerif=1===(e=this.familyClass)||2===e||3===e||4===e||5===e||7===e,this.isScript=10===this.familyClass,this.flags=0,this.font.post.isFixedPitch&&(this.flags|=1),this.isSerif&&(this.flags|=2),this.isScript&&(this.flags|=8),0!==this.italicAngle&&(this.flags|=64),this.flags|=32,!this.font.cmap.unicode)throw new Error("No unicode cmap for font")},a.prototype.embedTTF=function(){var a,b,c,d,e,g,h,i;return d=this.subset.encode(),h=this.document.ref(),h.write(d),h.data.Length1=h.uncompressedLength,h.end(),e=this.document.ref({Type:"FontDescriptor",FontName:this.subset.postscriptName,FontFile2:h,FontBBox:this.bbox,Flags:this.flags,StemV:this.stemV,ItalicAngle:this.italicAngle,Ascent:this.ascender,Descent:this.decender,CapHeight:this.capHeight,XHeight:this.xHeight}),e.end(),g=+Object.keys(this.subset.cmap)[0],a=function(){var a,b;a=this.subset.cmap,b=[];for(c in a)i=a[c],b.push(Math.round(this.font.widthOfGlyph(i)));return b}.call(this),b=this.document.ref(),b.end(f(this.subset.subset)),this.dictionary.data={Type:"Font",BaseFont:this.subset.postscriptName,Subtype:"TrueType",FontDescriptor:e,FirstChar:g,LastChar:g+a.length-1,Widths:a,Encoding:"MacRomanEncoding",ToUnicode:b},this.dictionary.end()},f=function(a){var b,c,d,e,f,g,h;for(f="/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo <<\n  /Registry (Adobe)\n  /Ordering (UCS)\n  /Supplement 0\n>> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<00><ff>\nendcodespacerange",c=Object.keys(a).sort(function(a,b){return a-b}),d=[],g=0,h=c.length;h>g;g++)b=c[g],d.length>=100&&(f+="\n"+d.length+" beginbfchar\n"+d.join("\n")+"\nendbfchar",d=[]),e=("0000"+a[b].toString(16)).slice(-4),b=(+b).toString(16),d.push("<"+b+"><"+e+">");return d.length&&(f+="\n"+d.length+" beginbfchar\n"+d.join("\n")+"\nendbfchar\n"),f+="endcmap\nCMapName currentdict /CMap defineresource pop\nend\nend"},a.prototype.registerAFM=function(a){var b;return this.name=a,b=this.font,this.ascender=b.ascender,this.decender=b.decender,this.bbox=b.bbox,this.lineGap=b.lineGap,b},a.prototype.embedAFM=function(){return this.dictionary.data={Type:"Font",BaseFont:this.name,Subtype:"Type1",Encoding:"WinAnsiEncoding"},this.dictionary.end()},a.prototype.widthOfString=function(a,b){var c,d,e,f,g,h;for(a=""+a,f=0,d=g=0,h=a.length;h>=0?h>g:g>h;d=h>=0?++g:--g)c=a.charCodeAt(d),f+=this.font.widthOfGlyph(this.font.characterToGlyph(c))||0;return e=b/1e3,f*e},a.prototype.lineHeight=function(a,b){var c;return null==b&&(b=!1),c=b?this.lineGap:0,(this.ascender+c-this.decender)/1e3*a},a}(),a.exports=f}).call(this)}).call(b,c(2).Buffer,"/")},function(a,b,c){(function(){var b,d,e,f,g,h,i,j,k,l,m,n,o,p,q;q=c(44),e=c(72),d=c(73),f=c(74),m=c(75),h=c(78),b=c(79),j=c(80),i=c(81),l=c(82),o=c(83),n=c(84),k=c(85),g=c(86),p=function(){function a(a,b){var c,d,f,g,h,i,j,k,l;if(this.rawData=a,c=this.contents=new e(this.rawData),"ttcf"===c.readString(4)){if(!b)throw new Error("Must specify a font name for TTC files.");for(i=c.readInt(),f=c.readInt(),h=[],d=j=0;f>=0?f>j:j>f;d=f>=0?++j:--j)h[d]=c.readInt();for(d=k=0,l=h.length;l>k;d=++k)if(g=h[d],c.pos=g,this.parse(),this.name.postscriptName===b)return;throw new Error("Font "+b+" not found in TTC file.")}c.pos=0,this.parse()}return a.open=function(b,c){var d;return d=q.readFileSync(b),new a(d,c)},a.fromDFont=function(b,c){var e;return e=d.open(b),new a(e.getNamedFont(c))},a.fromBuffer=function(b,c){var e,f,g;try{if(g=new a(b,c),!(g.head.exists&&g.name.exists&&g.cmap.exists||(e=new d(b),g=new a(e.getNamedFont(c)),g.head.exists&&g.name.exists&&g.cmap.exists)))throw new Error("Invalid TTF file in DFont");return g}catch(h){throw f=h,new Error("Unknown font format in buffer: "+f.message)}},a.prototype.parse=function(){return this.directory=new f(this.contents),this.head=new h(this),this.name=new m(this),this.cmap=new b(this),this.hhea=new i(this),this.maxp=new l(this),this.hmtx=new j(this),this.post=new o(this),this.os2=new n(this),this.loca=new k(this),this.glyf=new g(this),this.ascender=this.os2.exists&&this.os2.ascender||this.hhea.ascender,this.decender=this.os2.exists&&this.os2.decender||this.hhea.decender,this.lineGap=this.os2.exists&&this.os2.lineGap||this.hhea.lineGap,this.bbox=[this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax]},a.prototype.characterToGlyph=function(a){var b;return(null!=(b=this.cmap.unicode)?b.codeMap[a]:void 0)||0},a.prototype.widthOfGlyph=function(a){var b;return b=1e3/this.head.unitsPerEm,this.hmtx.forGlyph(a).advance*b},a}(),a.exports=p}).call(this)},function(a,b){(function(){var b;b=function(){function a(a){this.data=null!=a?a:[],this.pos=0,this.length=this.data.length}return a.prototype.readByte=function(){return this.data[this.pos++]},a.prototype.writeByte=function(a){return this.data[this.pos++]=a},a.prototype.byteAt=function(a){return this.data[a]},a.prototype.readBool=function(){return!!this.readByte()},a.prototype.writeBool=function(a){return this.writeByte(a?1:0)},a.prototype.readUInt32=function(){var a,b,c,d;return a=16777216*this.readByte(),b=this.readByte()<<16,c=this.readByte()<<8,d=this.readByte(),a+b+c+d},a.prototype.writeUInt32=function(a){return this.writeByte(a>>>24&255),this.writeByte(a>>16&255),this.writeByte(a>>8&255),this.writeByte(255&a)},a.prototype.readInt32=function(){var a;return a=this.readUInt32(),a>=2147483648?a-4294967296:a},a.prototype.writeInt32=function(a){return 0>a&&(a+=4294967296),this.writeUInt32(a)},a.prototype.readUInt16=function(){var a,b;return a=this.readByte()<<8,b=this.readByte(),a|b},a.prototype.writeUInt16=function(a){return this.writeByte(a>>8&255),this.writeByte(255&a)},a.prototype.readInt16=function(){var a;return a=this.readUInt16(),a>=32768?a-65536:a},a.prototype.writeInt16=function(a){return 0>a&&(a+=65536),this.writeUInt16(a)},a.prototype.readString=function(a){var b,c,d;for(c=[],b=d=0;a>=0?a>d:d>a;b=a>=0?++d:--d)c[b]=String.fromCharCode(this.readByte());return c.join("")},a.prototype.writeString=function(a){var b,c,d,e;for(e=[],b=c=0,d=a.length;d>=0?d>c:c>d;b=d>=0?++c:--c)e.push(this.writeByte(a.charCodeAt(b)));return e},a.prototype.stringAt=function(a,b){return this.pos=a,this.readString(b)},a.prototype.readShort=function(){return this.readInt16()},a.prototype.writeShort=function(a){return this.writeInt16(a)},a.prototype.readLongLong=function(){var a,b,c,d,e,f,g,h;return a=this.readByte(),b=this.readByte(),c=this.readByte(),d=this.readByte(),e=this.readByte(),f=this.readByte(),g=this.readByte(),h=this.readByte(),128&a?-1*(72057594037927940*(255^a)+281474976710656*(255^b)+1099511627776*(255^c)+4294967296*(255^d)+16777216*(255^e)+65536*(255^f)+256*(255^g)+(255^h)+1):72057594037927940*a+281474976710656*b+1099511627776*c+4294967296*d+16777216*e+65536*f+256*g+h},a.prototype.writeLongLong=function(a){var b,c;return b=Math.floor(a/4294967296),c=4294967295&a,this.writeByte(b>>24&255),this.writeByte(b>>16&255),this.writeByte(b>>8&255),this.writeByte(255&b),this.writeByte(c>>24&255),this.writeByte(c>>16&255),this.writeByte(c>>8&255),this.writeByte(255&c)},a.prototype.readInt=function(){return this.readInt32()},a.prototype.writeInt=function(a){return this.writeInt32(a)},a.prototype.slice=function(a,b){return this.data.slice(a,b)},a.prototype.read=function(a){var b,c,d;for(b=[],c=d=0;a>=0?a>d:d>a;c=a>=0?++d:--d)b.push(this.readByte());return b},a.prototype.write=function(a){var b,c,d,e;for(e=[],c=0,d=a.length;d>c;c++)b=a[c],e.push(this.writeByte(b));return e},a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f,g;g=c(44),d=c(72),e=c(74),f=c(75),b=function(){function a(a){this.contents=new d(a),this.parse(this.contents)}return a.open=function(b){var c;return c=g.readFileSync(b),new a(c)},a.prototype.parse=function(a){var b,c,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G;for(j=a.readInt(),u=a.readInt(),i=a.readInt(),t=a.readInt(),this.map={},a.pos=u+24,E=a.readShort()+u,y=a.readShort()+u,a.pos=E,v=a.readShort(),o=F=0;v>=F;o=F+=1){for(D=a.readString(4),w=a.readShort(),C=a.readShort(),this.map[D]={list:[],named:{}},B=a.pos,a.pos=E+C,q=G=0;w>=G;q=G+=1)p=a.readShort(),z=a.readShort(),b=a.readByte(),c=a.readByte()<<16,g=a.readByte()<<8,h=a.readByte(),k=j+(0|c|g|h),n=a.readUInt32(),l={id:p,attributes:b,offset:k,handle:n},A=a.pos,-1!==z&&u+t>y+z?(a.pos=y+z,r=a.readByte(),l.name=a.readString(r)):"sfnt"===D&&(a.pos=l.offset,s=a.readUInt32(),m={},m.contents=new d(a.slice(a.pos,a.pos+s)),m.directory=new e(m.contents),x=new f(m),l.name=x.fontName[0].raw),a.pos=A,this.map[D].list.push(l),l.name&&(this.map[D].named[l.name]=l);a.pos=B}},a.prototype.getNamedFont=function(a){var b,c,d,e,f,g;if(b=this.contents,e=b.pos,c=null!=(g=this.map.sfnt)?g.named[a]:void 0,!c)throw new Error("Font "+a+" not found in DFont file.");return b.pos=c.offset,d=b.readUInt32(),f=b.slice(b.pos,b.pos+d),b.pos=e,f},a}(),a.exports=b}).call(this)},function(a,b,c){(function(b){(function(){var d,e,f=[].slice;d=c(72),e=function(){function a(a){var b,c,d,e;for(this.scalarType=a.readInt(),this.tableCount=a.readShort(),this.searchRange=a.readShort(),this.entrySelector=a.readShort(),this.rangeShift=a.readShort(),this.tables={},c=d=0,e=this.tableCount;e>=0?e>d:d>e;c=e>=0?++d:--d)b={tag:a.readString(4),checksum:a.readInt(),offset:a.readInt(),length:a.readInt()},this.tables[b.tag]=b}var c;return a.prototype.encode=function(a){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;p=Object.keys(a).length,j=Math.log(2),m=16*Math.floor(Math.log(p)/j),h=Math.floor(m/j),l=16*p-m,f=new d,f.writeInt(this.scalarType),f.writeShort(p),f.writeShort(m),f.writeShort(h),f.writeShort(l),g=16*p,k=f.pos+g,i=null,q=[];for(r in a)for(o=a[r],f.writeString(r),f.writeInt(c(o)),f.writeInt(k),f.writeInt(o.length),q=q.concat(o),"head"===r&&(i=k),k+=o.length;k%4;)q.push(0),k++;return f.write(q),n=c(f.data),e=2981146554-n,f.pos=i+8,f.writeUInt32(e),new b(f.data)},c=function(a){var b,c,e,g,h;for(a=f.call(a);a.length%4;)a.push(0);for(e=new d(a),c=0,b=g=0,h=a.length;h>g;b=g+=4)c+=e.readUInt32();return 4294967295&c},a}(),a.exports=e}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(){var b,d,e,f,g,h={}.hasOwnProperty,i=function(a,b){function c(){this.constructor=a}for(var d in b)h.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};f=c(76),b=c(72),g=c(77),e=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}var e;return i(c,a),c.prototype.tag="name",c.prototype.parse=function(a){var b,c,e,f,g,h,i,j,k,l,m,n,o;for(a.pos=this.offset,f=a.readShort(),b=a.readShort(),i=a.readShort(),c=[],g=l=0;b>=0?b>l:l>b;g=b>=0?++l:--l)c.push({platformID:a.readShort(),encodingID:a.readShort(),languageID:a.readShort(),nameID:a.readShort(),length:a.readShort(),offset:this.offset+i+a.readShort()});for(j={},g=m=0,n=c.length;n>m;g=++m)e=c[g],a.pos=e.offset,k=a.readString(e.length),h=new d(k,e),null==j[o=e.nameID]&&(j[o]=[]),j[e.nameID].push(h);return this.strings=j,this.copyright=j[0],this.fontFamily=j[1],this.fontSubfamily=j[2],this.uniqueSubfamily=j[3],this.fontName=j[4],this.version=j[5],this.postscriptName=j[6][0].raw.replace(/[\x00-\x19\x80-\xff]/g,""),
-this.trademark=j[7],this.manufacturer=j[8],this.designer=j[9],this.description=j[10],this.vendorUrl=j[11],this.designerUrl=j[12],this.license=j[13],this.licenseUrl=j[14],this.preferredFamily=j[15],this.preferredSubfamily=j[17],this.compatibleFull=j[18],this.sampleText=j[19]},e="AAAAAA",c.prototype.encode=function(){var a,c,f,h,i,j,k,l,m,n,o,p,q,r;m={},r=this.strings;for(a in r)o=r[a],m[a]=o;i=new d(""+e+"+"+this.postscriptName,{platformID:1,encodingID:0,languageID:0}),m[6]=[i],e=g.successorOf(e),j=0;for(a in m)c=m[a],null!=c&&(j+=c.length);n=new b,k=new b,n.writeShort(0),n.writeShort(j),n.writeShort(6+12*j);for(f in m)if(c=m[f],null!=c)for(p=0,q=c.length;q>p;p++)l=c[p],n.writeShort(l.platformID),n.writeShort(l.encodingID),n.writeShort(l.languageID),n.writeShort(f),n.writeShort(l.length),n.writeShort(k.pos),k.writeString(l.raw);return h={postscriptName:i.raw,table:n.data.concat(k.data)}},c}(f),a.exports=e,d=function(){function a(a,b){this.raw=a,this.length=this.raw.length,this.platformID=b.platformID,this.encodingID=b.encodingID,this.languageID=b.languageID}return a}()}).call(this)},function(a,b){(function(){var b;b=function(){function a(a){var b;this.file=a,b=this.file.directory.tables[this.tag],this.exists=!!b,b&&(this.offset=b.offset,this.length=b.length,this.parse(this.file.contents))}return a.prototype.parse=function(){},a.prototype.encode=function(){},a.prototype.raw=function(){return this.exists?(this.file.contents.pos=this.offset,this.file.contents.read(this.length)):null},a}(),a.exports=b}).call(this)},function(a,b){(function(){b.successorOf=function(a){var b,c,d,e,f,g,h,i,j,k;for(c="abcdefghijklmnopqrstuvwxyz",i=c.length,k=a,e=a.length;e>=0;){if(h=a.charAt(--e),isNaN(h)){if(f=c.indexOf(h.toLowerCase()),-1===f)j=h,d=!0;else if(j=c.charAt((f+1)%i),g=h===h.toUpperCase(),g&&(j=j.toUpperCase()),d=f+1>=i,d&&0===e){b=g?"A":"a",k=b+j+k.slice(1);break}}else if(j=+h+1,d=j>9,d&&(j=0),d&&0===e){k="1"+j+k.slice(1);break}if(k=k.slice(0,e)+j+k.slice(e+1),!d)break}return k},b.invert=function(a){var b,c,d;c={};for(b in a)d=a[b],c[d]=b;return c}}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="head",c.prototype.parse=function(a){return a.pos=this.offset,this.version=a.readInt(),this.revision=a.readInt(),this.checkSumAdjustment=a.readInt(),this.magicNumber=a.readInt(),this.flags=a.readShort(),this.unitsPerEm=a.readShort(),this.created=a.readLongLong(),this.modified=a.readLongLong(),this.xMin=a.readShort(),this.yMin=a.readShort(),this.xMax=a.readShort(),this.yMax=a.readShort(),this.macStyle=a.readShort(),this.lowestRecPPEM=a.readShort(),this.fontDirectionHint=a.readShort(),this.indexToLocFormat=a.readShort(),this.glyphDataFormat=a.readShort()},c.prototype.encode=function(a){var c;return c=new b,c.writeInt(this.version),c.writeInt(this.revision),c.writeInt(this.checkSumAdjustment),c.writeInt(this.magicNumber),c.writeShort(this.flags),c.writeShort(this.unitsPerEm),c.writeLongLong(this.created),c.writeLongLong(this.modified),c.writeShort(this.xMin),c.writeShort(this.yMin),c.writeShort(this.xMax),c.writeShort(this.yMax),c.writeShort(this.macStyle),c.writeShort(this.lowestRecPPEM),c.writeShort(this.fontDirectionHint),c.writeShort(a.type),c.writeShort(this.glyphDataFormat),c.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f,g={}.hasOwnProperty,h=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};f=c(76),e=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return h(c,a),c.prototype.tag="cmap",c.prototype.parse=function(a){var c,d,e,f;for(a.pos=this.offset,this.version=a.readUInt16(),e=a.readUInt16(),this.tables=[],this.unicode=null,d=f=0;e>=0?e>f:f>e;d=e>=0?++f:--f)c=new b(a,this.offset),this.tables.push(c),c.isUnicode&&null==this.unicode&&(this.unicode=c);return!0},c.encode=function(a,c){var d,f;return null==c&&(c="macroman"),d=b.encode(a,c),f=new e,f.writeUInt16(0),f.writeUInt16(1),d.table=f.data.concat(d.subtable),d},c}(f),b=function(){function a(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;switch(this.platformID=a.readUInt16(),this.encodingID=a.readShort(),this.offset=b+a.readInt(),l=a.pos,a.pos=this.offset,this.format=a.readUInt16(),this.length=a.readUInt16(),this.language=a.readUInt16(),this.isUnicode=3===this.platformID&&1===this.encodingID&&4===this.format||0===this.platformID&&4===this.format,this.codeMap={},this.format){case 0:for(h=r=0;256>r;h=++r)this.codeMap[h]=a.readByte();break;case 4:for(n=a.readUInt16(),m=n/2,a.pos+=6,e=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),a.pos+=2,p=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),i=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),j=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),d=(this.length-a.pos+this.offset)/2,g=function(){var b,c;for(c=[],h=b=0;d>=0?d>b:b>d;h=d>=0?++b:--b)c.push(a.readUInt16());return c}(),h=s=0,u=e.length;u>s;h=++s)for(q=e[h],o=p[h],c=t=o;q>=o?q>=t:t>=q;c=q>=o?++t:--t)0===j[h]?f=c+i[h]:(k=j[h]/2+(c-o)-(m-h),f=g[k]||0,0!==f&&(f+=i[h])),this.codeMap[c]=65535&f}a.pos=l}return a.encode=function(a,b){var c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X;switch(F=new e,g=Object.keys(a).sort(function(a,b){return a-b}),b){case"macroman":for(p=0,q=function(){var a,b;for(b=[],o=a=0;256>a;o=++a)b.push(0);return b}(),s={0:0},f={},G=0,K=g.length;K>G;G++)d=g[G],null==s[U=a[d]]&&(s[U]=++p),f[d]={old:a[d],"new":s[a[d]]},q[d]=s[a[d]];return F.writeUInt16(1),F.writeUInt16(0),F.writeUInt32(12),F.writeUInt16(0),F.writeUInt16(262),F.writeUInt16(0),F.write(q),y={charMap:f,subtable:F.data,maxGlyphID:p+1};case"unicode":for(D=[],l=[],t=0,s={},c={},r=j=null,H=0,L=g.length;L>H;H++)d=g[H],v=a[d],null==s[v]&&(s[v]=++t),c[d]={old:v,"new":s[v]},h=s[v]-d,(null==r||h!==j)&&(r&&l.push(r),D.push(d),j=h),r=d;for(r&&l.push(r),l.push(65535),D.push(65535),A=D.length,B=2*A,z=2*Math.pow(Math.log(A)/Math.LN2,2),m=Math.log(z/2)/Math.LN2,x=2*A-z,i=[],w=[],n=[],o=I=0,M=D.length;M>I;o=++I){if(C=D[o],k=l[o],65535===C){i.push(0),w.push(0);break}if(E=c[C]["new"],C-E>=32768)for(i.push(0),w.push(2*(n.length+A-o)),d=J=C;k>=C?k>=J:J>=k;d=k>=C?++J:--J)n.push(c[d]["new"]);else i.push(E-C),w.push(0)}for(F.writeUInt16(3),F.writeUInt16(1),F.writeUInt32(12),F.writeUInt16(4),F.writeUInt16(16+8*A+2*n.length),F.writeUInt16(0),F.writeUInt16(B),F.writeUInt16(z),F.writeUInt16(m),F.writeUInt16(x),S=0,N=l.length;N>S;S++)d=l[S],F.writeUInt16(d);for(F.writeUInt16(0),T=0,O=D.length;O>T;T++)d=D[T],F.writeUInt16(d);for(V=0,P=i.length;P>V;V++)h=i[V],F.writeUInt16(h);for(W=0,Q=w.length;Q>W;W++)u=w[W],F.writeUInt16(u);for(X=0,R=n.length;R>X;X++)p=n[X],F.writeUInt16(p);return y={charMap:c,subtable:F.data,maxGlyphID:t+1}}},a}(),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="hmtx",c.prototype.parse=function(a){var b,c,d,e,f,g,h,i;for(a.pos=this.offset,this.metrics=[],b=f=0,h=this.file.hhea.numberOfMetrics;h>=0?h>f:f>h;b=h>=0?++f:--f)this.metrics.push({advance:a.readUInt16(),lsb:a.readInt16()});for(d=this.file.maxp.numGlyphs-this.file.hhea.numberOfMetrics,this.leftSideBearings=function(){var c,e;for(e=[],b=c=0;d>=0?d>c:c>d;b=d>=0?++c:--c)e.push(a.readInt16());return e}(),this.widths=function(){var a,b,c,d;for(c=this.metrics,d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(e.advance);return d}.call(this),c=this.widths[this.widths.length-1],i=[],b=g=0;d>=0?d>g:g>d;b=d>=0?++g:--g)i.push(this.widths.push(c));return i},c.prototype.forGlyph=function(a){var b;return a in this.metrics?this.metrics[a]:b={advance:this.metrics[this.metrics.length-1].advance,lsb:this.leftSideBearings[a-this.metrics.length]}},c.prototype.encode=function(a){var c,d,e,f,g;for(e=new b,f=0,g=a.length;g>f;f++)c=a[f],d=this.forGlyph(c),e.writeUInt16(d.advance),e.writeUInt16(d.lsb);return e.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="hhea",c.prototype.parse=function(a){return a.pos=this.offset,this.version=a.readInt(),this.ascender=a.readShort(),this.decender=a.readShort(),this.lineGap=a.readShort(),this.advanceWidthMax=a.readShort(),this.minLeftSideBearing=a.readShort(),this.minRightSideBearing=a.readShort(),this.xMaxExtent=a.readShort(),this.caretSlopeRise=a.readShort(),this.caretSlopeRun=a.readShort(),this.caretOffset=a.readShort(),a.pos+=8,this.metricDataFormat=a.readShort(),this.numberOfMetrics=a.readUInt16()},c.prototype.encode=function(a){var c,d,e,f;for(d=new b,d.writeInt(this.version),d.writeShort(this.ascender),d.writeShort(this.decender),d.writeShort(this.lineGap),d.writeShort(this.advanceWidthMax),d.writeShort(this.minLeftSideBearing),d.writeShort(this.minRightSideBearing),d.writeShort(this.xMaxExtent),d.writeShort(this.caretSlopeRise),d.writeShort(this.caretSlopeRun),d.writeShort(this.caretOffset),c=e=0,f=8;f>=0?f>e:e>f;c=f>=0?++e:--e)d.writeByte(0);return d.writeShort(this.metricDataFormat),d.writeUInt16(a.length),d.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="maxp",c.prototype.parse=function(a){return a.pos=this.offset,this.version=a.readInt(),this.numGlyphs=a.readUInt16(),this.maxPoints=a.readUInt16(),this.maxContours=a.readUInt16(),this.maxCompositePoints=a.readUInt16(),this.maxComponentContours=a.readUInt16(),this.maxZones=a.readUInt16(),this.maxTwilightPoints=a.readUInt16(),this.maxStorage=a.readUInt16(),this.maxFunctionDefs=a.readUInt16(),this.maxInstructionDefs=a.readUInt16(),this.maxStackElements=a.readUInt16(),this.maxSizeOfInstructions=a.readUInt16(),this.maxComponentElements=a.readUInt16(),this.maxComponentDepth=a.readUInt16()},c.prototype.encode=function(a){var c;return c=new b,c.writeInt(this.version),c.writeUInt16(a.length),c.writeUInt16(this.maxPoints),c.writeUInt16(this.maxContours),c.writeUInt16(this.maxCompositePoints),c.writeUInt16(this.maxComponentContours),c.writeUInt16(this.maxZones),c.writeUInt16(this.maxTwilightPoints),c.writeUInt16(this.maxStorage),c.writeUInt16(this.maxFunctionDefs),c.writeUInt16(this.maxInstructionDefs),c.writeUInt16(this.maxStackElements),c.writeUInt16(this.maxSizeOfInstructions),c.writeUInt16(this.maxComponentElements),c.writeUInt16(this.maxComponentDepth),c.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}var d;return g(c,a),c.prototype.tag="post",c.prototype.parse=function(a){var b,c,d,e,f;switch(a.pos=this.offset,this.format=a.readInt(),this.italicAngle=a.readInt(),this.underlinePosition=a.readShort(),this.underlineThickness=a.readShort(),this.isFixedPitch=a.readInt(),this.minMemType42=a.readInt(),this.maxMemType42=a.readInt(),this.minMemType1=a.readInt(),this.maxMemType1=a.readInt(),this.format){case 65536:break;case 131072:for(d=a.readUInt16(),this.glyphNameIndex=[],b=e=0;d>=0?d>e:e>d;b=d>=0?++e:--e)this.glyphNameIndex.push(a.readUInt16());for(this.names=[],f=[];a.pos<this.offset+this.length;)c=a.readByte(),f.push(this.names.push(a.readString(c)));return f;case 151552:return d=a.readUInt16(),this.offsets=a.read(d);case 196608:break;case 262144:return this.map=function(){var c,d,e;for(e=[],b=c=0,d=this.file.maxp.numGlyphs;d>=0?d>c:c>d;b=d>=0?++c:--c)e.push(a.readUInt32());return e}.call(this)}},c.prototype.glyphFor=function(a){var b;switch(this.format){case 65536:return d[a]||".notdef";case 131072:return b=this.glyphNameIndex[a],257>=b?d[b]:this.names[b-258]||".notdef";case 151552:return d[a+this.offsets[a]]||".notdef";case 196608:return".notdef";case 262144:return this.map[a]||65535}},c.prototype.encode=function(a){var c,e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(!this.exists)return null;if(i=this.raw(),196608===this.format)return i;for(l=new b(i.slice(0,32)),l.writeUInt32(131072),l.pos=32,f=[],k=[],m=0,p=a.length;p>m;m++)c=a[m],h=this.glyphFor(c),g=d.indexOf(h),-1!==g?f.push(g):(f.push(257+k.length),k.push(h));for(l.writeUInt16(Object.keys(a).length),n=0,q=f.length;q>n;n++)e=f[n],l.writeUInt16(e);for(o=0,r=k.length;r>o;o++)j=k[o],l.writeByte(j.length),l.writeString(j);return l.data},d=".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\nzero one two three four five six seven eight nine colon semicolon less equal greater\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\nbracketleft backslash bracketright asciicircum underscore grave\na b c d e f g h i j k l m n o p q r s t u v w x y z\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\nsterling section bullet paragraph germandbls registered copyright trademark acute\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\nCacute cacute Ccaron ccaron dcroat".split(/\s+/g),c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e={}.hasOwnProperty,f=function(a,b){function c(){this.constructor=a}for(var d in b)e.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};d=c(76),b=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}return f(b,a),b.prototype.tag="OS/2",b.prototype.parse=function(a){var b;return a.pos=this.offset,this.version=a.readUInt16(),this.averageCharWidth=a.readShort(),this.weightClass=a.readUInt16(),this.widthClass=a.readUInt16(),this.type=a.readShort(),this.ySubscriptXSize=a.readShort(),this.ySubscriptYSize=a.readShort(),this.ySubscriptXOffset=a.readShort(),this.ySubscriptYOffset=a.readShort(),this.ySuperscriptXSize=a.readShort(),this.ySuperscriptYSize=a.readShort(),this.ySuperscriptXOffset=a.readShort(),this.ySuperscriptYOffset=a.readShort(),this.yStrikeoutSize=a.readShort(),this.yStrikeoutPosition=a.readShort(),this.familyClass=a.readShort(),this.panose=function(){var c,d;for(d=[],b=c=0;10>c;b=++c)d.push(a.readByte());return d}(),this.charRange=function(){var c,d;for(d=[],b=c=0;4>c;b=++c)d.push(a.readInt());return d}(),this.vendorID=a.readString(4),this.selection=a.readShort(),this.firstCharIndex=a.readShort(),this.lastCharIndex=a.readShort(),this.version>0&&(this.ascent=a.readShort(),this.descent=a.readShort(),this.lineGap=a.readShort(),this.winAscent=a.readShort(),this.winDescent=a.readShort(),this.codePageRange=function(){var c,d;for(d=[],b=c=0;2>c;b=++c)d.push(a.readInt());return d}(),this.version>1)?(this.xHeight=a.readShort(),this.capHeight=a.readShort(),this.defaultChar=a.readShort(),this.breakChar=a.readShort(),this.maxContext=a.readShort()):void 0},b.prototype.encode=function(){return this.raw()},b}(d),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="loca",c.prototype.parse=function(a){var b,c;return a.pos=this.offset,b=this.file.head.indexToLocFormat,0===b?this.offsets=function(){var b,d,e;for(e=[],c=b=0,d=this.length;d>b;c=b+=2)e.push(2*a.readUInt16());return e}.call(this):this.offsets=function(){var b,d,e;for(e=[],c=b=0,d=this.length;d>b;c=b+=4)e.push(a.readUInt32());return e}.call(this)},c.prototype.indexOf=function(a){return this.offsets[a]},c.prototype.lengthOf=function(a){return this.offsets[a+1]-this.offsets[a]},c.prototype.encode=function(a){var c,d,e,f,g,h,i,j,k,l,m;for(f=new b,g=0,j=a.length;j>g;g++)if(d=a[g],d>65535){for(m=this.offsets,h=0,k=m.length;k>h;h++)c=m[h],f.writeUInt32(c);return e={format:1,table:f.data}}for(i=0,l=a.length;l>i;i++)c=a[i],f.writeUInt16(c/2);return e={format:0,table:f.data}},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f,g,h={}.hasOwnProperty,i=function(a,b){function c(){this.constructor=a}for(var d in b)h.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},j=[].slice;g=c(76),d=c(72),e=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return i(c,a),c.prototype.tag="glyf",c.prototype.parse=function(a){return this.cache={}},c.prototype.glyphFor=function(a){var c,e,g,h,i,j,k,l,m,n;return a in this.cache?this.cache[a]:(h=this.file.loca,c=this.file.contents,e=h.indexOf(a),g=h.lengthOf(a),0===g?this.cache[a]=null:(c.pos=this.offset+e,j=new d(c.read(g)),i=j.readShort(),l=j.readShort(),n=j.readShort(),k=j.readShort(),m=j.readShort(),-1===i?this.cache[a]=new b(j,l,n,k,m):this.cache[a]=new f(j,i,l,n,k,m),this.cache[a]))},c.prototype.encode=function(a,b,c){var d,e,f,g,h,i;for(g=[],f=[],h=0,i=b.length;i>h;h++)e=b[h],d=a[e],f.push(g.length),d&&(g=g.concat(d.encode(c)));return f.push(g.length),{table:g,offsets:f}},c}(g),f=function(){function a(a,b,c,d,e,f){this.raw=a,this.numberOfContours=b,this.xMin=c,this.yMin=d,this.xMax=e,this.yMax=f,this.compound=!1}return a.prototype.encode=function(){return this.raw.data},a}(),b=function(){function a(a,d,h,i,j){var k,l;for(this.raw=a,this.xMin=d,this.yMin=h,this.xMax=i,this.yMax=j,this.compound=!0,this.glyphIDs=[],this.glyphOffsets=[],k=this.raw;;){if(l=k.readShort(),this.glyphOffsets.push(k.pos),this.glyphIDs.push(k.readShort()),!(l&c))break;l&b?k.pos+=4:k.pos+=2,l&g?k.pos+=8:l&e?k.pos+=4:l&f&&(k.pos+=2)}}var b,c,e,f,g,h;return b=1,f=8,c=32,e=64,g=128,h=256,a.prototype.encode=function(a){var b,c,e,f,g,h;for(e=new d(j.call(this.raw.data)),h=this.glyphIDs,b=f=0,g=h.length;g>f;b=++f)c=h[b],e.pos=this.glyphOffsets[b],e.writeShort(a[c]);return e.data},a}(),a.exports=e}).call(this)},function(a,b,c){(function(){var b,d;d=c(44),b=function(){function a(a){var b,d;this.contents=a,this.attributes={},this.glyphWidths={},this.boundingBoxes={},this.parse(),this.charWidths=function(){var a,b;for(b=[],d=a=0;255>=a;d=++a)b.push(this.glyphWidths[c[d]]);return b}.call(this),this.bbox=function(){var a,c,d,e;for(d=this.attributes.FontBBox.split(/\s+/),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(+b);return e}.call(this),this.ascender=+(this.attributes.Ascender||0),this.decender=+(this.attributes.Descender||0),this.lineGap=this.bbox[3]-this.bbox[1]-(this.ascender-this.decender)}var b,c;return a.open=function(b){return new a(d.readFileSync(b,"utf8"))},a.prototype.parse=function(){var a,b,c,d,e,f,g,h,i,j;for(f="",j=this.contents.split("\n"),h=0,i=j.length;i>h;h++)if(c=j[h],d=c.match(/^Start(\w+)/))f=d[1];else if(d=c.match(/^End(\w+)/))f="";else switch(f){case"FontMetrics":d=c.match(/(^\w+)\s+(.*)/),b=d[1],g=d[2],(a=this.attributes[b])?(Array.isArray(a)||(a=this.attributes[b]=[a]),a.push(g)):this.attributes[b]=g;break;case"CharMetrics":if(!/^CH?\s/.test(c))continue;e=c.match(/\bN\s+(\.?\w+)\s*;/)[1],this.glyphWidths[e]=+c.match(/\bWX\s+(\d+)\s*;/)[1]}},b={402:131,8211:150,8212:151,8216:145,8217:146,8218:130,8220:147,8221:148,8222:132,8224:134,8225:135,8226:149,8230:133,8364:128,8240:137,8249:139,8250:155,710:136,8482:153,338:140,339:156,732:152,352:138,353:154,376:159,381:142,382:158},a.prototype.encodeText=function(a){var c,d,e,f,g;for(e="",d=f=0,g=a.length;g>=0?g>f:f>g;d=g>=0?++f:--f)c=a.charCodeAt(d),c=b[c]||c,e+=String.fromCharCode(c);return e},a.prototype.characterToGlyph=function(a){return c[b[a]||a]},a.prototype.widthOfGlyph=function(a){return this.glyphWidths[a]},c=".notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n\nspace         exclam         quotedbl       numbersign\ndollar        percent        ampersand      quotesingle\nparenleft     parenright     asterisk       plus\ncomma         hyphen         period         slash\nzero          one            two            three\nfour          five           six            seven\neight         nine           colon          semicolon\nless          equal          greater        question\n\nat            A              B              C\nD             E              F              G\nH             I              J              K\nL             M              N              O\nP             Q              R              S\nT             U              V              W\nX             Y              Z              bracketleft\nbackslash     bracketright   asciicircum    underscore\n\ngrave         a              b              c\nd             e              f              g\nh             i              j              k\nl             m              n              o\np             q              r              s\nt             u              v              w\nx             y              z              braceleft\nbar           braceright     asciitilde     .notdef\n\nEuro          .notdef        quotesinglbase florin\nquotedblbase  ellipsis       dagger         daggerdbl\ncircumflex    perthousand    Scaron         guilsinglleft\nOE            .notdef        Zcaron         .notdef\n.notdef       quoteleft      quoteright     quotedblleft\nquotedblright bullet         endash         emdash\ntilde         trademark      scaron         guilsinglright\noe            .notdef        zcaron         ydieresis\n\nspace         exclamdown     cent           sterling\ncurrency      yen            brokenbar      section\ndieresis      copyright      ordfeminine    guillemotleft\nlogicalnot    hyphen         registered     macron\ndegree        plusminus      twosuperior    threesuperior\nacute         mu             paragraph      periodcentered\ncedilla       onesuperior    ordmasculine   guillemotright\nonequarter    onehalf        threequarters  questiondown\n\nAgrave        Aacute         Acircumflex    Atilde\nAdieresis     Aring          AE             Ccedilla\nEgrave        Eacute         Ecircumflex    Edieresis\nIgrave        Iacute         Icircumflex    Idieresis\nEth           Ntilde         Ograve         Oacute\nOcircumflex   Otilde         Odieresis      multiply\nOslash        Ugrave         Uacute         Ucircumflex\nUdieresis     Yacute         Thorn          germandbls\n\nagrave        aacute         acircumflex    atilde\nadieresis     aring          ae             ccedilla\negrave        eacute         ecircumflex    edieresis\nigrave        iacute         icircumflex    idieresis\neth           ntilde         ograve         oacute\nocircumflex   otilde         odieresis      divide\noslash        ugrave         uacute         ucircumflex\nudieresis     yacute         thorn          ydieresis".split(/\s+/),a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=c(79),e=c(77),d=function(){function a(a){this.font=a,this.subset={},this.unicodes={},this.next=33}return a.prototype.use=function(a){var b,c,d;{if("string"!=typeof a)return this.unicodes[a]?void 0:(this.subset[this.next]=a,this.unicodes[a]=this.next++);for(b=c=0,d=a.length;d>=0?d>c:c>d;b=d>=0?++c:--c)this.use(a.charCodeAt(b))}},a.prototype.encodeText=function(a){var b,c,d,e,f;for(d="",c=e=0,f=a.length;f>=0?f>e:e>f;c=f>=0?++e:--e)b=this.unicodes[a.charCodeAt(c)],d+=String.fromCharCode(b);return d},a.prototype.generateCmap=function(){var a,b,c,d,e;d=this.font.cmap.tables[0].codeMap,a={},e=this.subset;for(b in e)c=e[b],a[b]=d[c];return a},a.prototype.glyphIDs=function(){var a,b,c,d,e,g;d=this.font.cmap.tables[0].codeMap,a=[0],g=this.subset;for(b in g)c=g[b],e=d[c],null!=e&&f.call(a,e)<0&&a.push(e);return a.sort()},a.prototype.glyphsFor=function(a){var b,c,d,e,f,g,h;for(d={},f=0,g=a.length;g>f;f++)e=a[f],d[e]=this.font.glyf.glyphFor(e);b=[];for(e in d)c=d[e],(null!=c?c.compound:void 0)&&b.push.apply(b,c.glyphIDs);if(b.length>0){h=this.glyphsFor(b);for(e in h)c=h[e],d[e]=c}return d},a.prototype.encode=function(){var a,c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s;a=b.encode(this.generateCmap(),"unicode"),f=this.glyphsFor(this.glyphIDs()),n={0:0},r=a.charMap;for(c in r)h=r[c],n[h.old]=h["new"];m=a.maxGlyphID;for(o in f)o in n||(n[o]=m++);k=e.invert(n),l=Object.keys(k).sort(function(a,b){return a-b}),p=function(){var a,b,c;for(c=[],a=0,b=l.length;b>a;a++)g=l[a],c.push(k[g]);return c}(),d=this.font.glyf.encode(f,p,n),i=this.font.loca.encode(d.offsets),j=this.font.name.encode(),this.postscriptName=j.postscriptName,this.cmap={},s=a.charMap;for(c in s)h=s[c],this.cmap[c]=h.old;return q={cmap:a.table,glyf:d.table,loca:i.table,hmtx:this.font.hmtx.encode(p),hhea:this.font.hhea.encode(p),maxp:this.font.maxp.encode(p),post:this.font.post.encode(p),name:j.table,head:this.font.head.encode(i)},this.font.os2.exists&&(q["OS/2"]=this.font.os2.raw()),this.font.directory.encode(q)},a}(),a.exports=d}).call(this)},function(a,b,c){(function(){var b;b=c(90),a.exports={initText:function(){return this.x=0,this.y=0,this._lineGap=0},lineGap:function(a){return this._lineGap=a,this},moveDown:function(a){return null==a&&(a=1),this.y+=this.currentLineHeight(!0)*a+this._lineGap,this},moveUp:function(a){return null==a&&(a=1),this.y-=this.currentLineHeight(!0)*a+this._lineGap,this},_text:function(a,c,d,e,f){var g,h,i,j,k;if(e=this._initOptions(c,d,e),a=""+a,e.wordSpacing&&(a=a.replace(/\s{2,}/g," ")),e.width)h=this._wrapper,h||(h=new b(this,e),h.on("line",f)),this._wrapper=e.continued?h:null,this._textOptions=e.continued?e:null,h.wrap(a,e);else for(k=a.split("\n"),i=0,j=k.length;j>i;i++)g=k[i],f(g,e);return this},text:function(a,b,c,d){return this._text(a,b,c,d,this._line.bind(this))},widthOfString:function(a,b){return null==b&&(b={}),this._font.widthOfString(a,this._fontSize)+(b.characterSpacing||0)*(a.length-1)},heightOfString:function(a,b){var c,d,e,f;return null==b&&(b={}),e=this.x,f=this.y,b=this._initOptions(b),b.height=1/0,d=b.lineGap||this._lineGap||0,this._text(a,this.x,this.y,b,function(a){return function(b,c){return a.y+=a.currentLineHeight(!0)+d}}(this)),c=this.y-f,this.x=e,this.y=f,c},list:function(a,c,d,e,f){var g,h,i,j,k,l,m,n;return e=this._initOptions(c,d,e),n=Math.round(this._font.ascender/1e3*this._fontSize/3),i=e.textIndent||5*n,j=e.bulletIndent||8*n,l=1,k=[],m=[],g=function(a){var b,c,d,e,f;for(f=[],b=d=0,e=a.length;e>d;b=++d)c=a[b],Array.isArray(c)?(l++,g(c),f.push(l--)):(k.push(c),f.push(m.push(l)));return f},g(a),f=new b(this,e),f.on("line",this._line.bind(this)),l=1,h=0,f.on("firstLine",function(a){return function(){var b,c;return(c=m[h++])!==l&&(b=j*(c-l),a.x+=b,f.lineWidth-=b,l=c),a.circle(a.x-i+n,a.y+n+n/2,n),a.fill()}}(this)),f.on("sectionStart",function(a){return function(){var b;return b=i+j*(l-1),a.x+=b,f.lineWidth-=b}}(this)),f.on("sectionEnd",function(a){return function(){var b;return b=i+j*(l-1),a.x-=b,f.lineWidth+=b}}(this)),f.wrap(k.join("\n"),e),this},_initOptions:function(a,b,c){var d,e,f,g;if(null==a&&(a={}),null==c&&(c={}),"object"==typeof a&&(c=a,a=null),c=function(){var a,b,d;b={};for(a in c)d=c[a],b[a]=d;return b}(),this._textOptions){g=this._textOptions;for(d in g)f=g[d],"continued"!==d&&null==c[d]&&(c[d]=f)}return null!=a&&(this.x=a),null!=b&&(this.y=b),c.lineBreak!==!1&&(e=this.page.margins,null==c.width&&(c.width=this.page.width-this.x-e.right)),c.columns||(c.columns=0),null==c.columnGap&&(c.columnGap=18),c},_line:function(a,b,c){var d;return null==b&&(b={}),this._fragment(a,this.x,this.y,b),d=b.lineGap||this._lineGap||0,c?this.y+=this.currentLineHeight(!0)+d:this.x+=this.widthOfString(a)},_fragment:function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(a=""+a,0!==a.length){if(e=d.align||"left",r=d.wordSpacing||0,f=d.characterSpacing||0,d.width)switch(e){case"right":p=this.widthOfString(a.replace(/\s+$/,""),d),b+=d.lineWidth-p;break;case"center":b+=d.lineWidth/2-d.textWidth/2;break;case"justify":s=a.trim().split(/\s+/),p=this.widthOfString(a.replace(/\s+/g,""),d),o=this.widthOfString(" ")+f,r=Math.max(0,(d.lineWidth-p)/Math.max(1,s.length-1)-o)}if(n=d.textWidth+r*(d.wordCount-1)+f*(a.length-1),d.link&&this.link(b,c,n,this.currentLineHeight(),d.link),(d.underline||d.strike)&&(this.save(),d.stroke||this.strokeColor.apply(this,this._fillColor),k=this._fontSize<10?.5:Math.floor(this._fontSize/10),this.lineWidth(k),h=d.underline?1:2,l=c+this.currentLineHeight()/h,d.underline&&(l-=k),this.moveTo(b,l),this.lineTo(b+n,l),this.stroke(),this.restore()),this.save(),this.transform(1,0,0,-1,0,this.page.height),c=this.page.height-c-this._font.ascender/1e3*this._fontSize,null==(t=this.page.fonts)[w=this._font.id]&&(t[w]=this._font.ref()),this._font.use(a),this.addContent("BT"),this.addContent(""+b+" "+c+" Td"),this.addContent("/"+this._font.id+" "+this._fontSize+" Tf"),m=d.fill&&d.stroke?2:d.stroke?1:0,m&&this.addContent(""+m+" Tr"),f&&this.addContent(""+f+" Tc"),r){for(s=a.trim().split(/\s+/),r+=this.widthOfString(" ")+f,r*=1e3/this._fontSize,g=[],u=0,v=s.length;v>u;u++)q=s[u],i=this._font.encode(q),i=function(){var a,b,c;for(c=[],j=a=0,b=i.length;b>a;j=a+=1)c.push(i.charCodeAt(j).toString(16));return c}().join(""),g.push("<"+i+"> "+-r);this.addContent("["+g.join(" ")+"] TJ")}else i=this._font.encode(a),i=function(){var a,b,c;for(c=[],j=a=0,b=i.length;b>a;j=a+=1)c.push(i.charCodeAt(j).toString(16));
-return c}().join(""),this.addContent("<"+i+"> Tj");return this.addContent("ET"),this.restore()}}}}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};b=c(26).EventEmitter,d=c(91),e=function(a){function b(a,b){var c;this.document=a,this.indent=b.indent||0,this.characterSpacing=b.characterSpacing||0,this.wordSpacing=0===b.wordSpacing,this.columns=b.columns||1,this.columnGap=null!=(c=b.columnGap)?c:18,this.lineWidth=(b.width-this.columnGap*(this.columns-1))/this.columns,this.spaceLeft=this.lineWidth,this.startX=this.document.x,this.startY=this.document.y,this.column=1,this.ellipsis=b.ellipsis,this.continuedX=0,null!=b.height?(this.height=b.height,this.maxY=this.startY+b.height):this.maxY=this.document.page.maxY(),this.on("firstLine",function(a){return function(b){var c;return c=a.continuedX||a.indent,a.document.x+=c,a.lineWidth-=c,a.once("line",function(){return a.document.x-=c,a.lineWidth+=c,b.continued&&!a.continuedX&&(a.continuedX=a.indent),b.continued?void 0:a.continuedX=0})}}(this)),this.on("lastLine",function(a){return function(b){var c;return c=b.align,"justify"===c&&(b.align="left"),a.lastLine=!0,a.once("line",function(){return a.document.y+=b.paragraphGap||0,b.align=c,a.lastLine=!1})}}(this))}return g(b,a),b.prototype.wordWidth=function(a){return this.document.widthOfString(a,this)+this.characterSpacing+this.wordSpacing},b.prototype.eachWord=function(a,b){var c,e,f,g,h,i,j,k,l,m;for(e=new d(a),h=null,m={};c=e.nextBreak();){if(l=a.slice((null!=h?h.position:void 0)||0,c.position),k=null!=m[l]?m[l]:m[l]=this.wordWidth(l),k>this.lineWidth+this.continuedX)for(i=h,f={};l.length;){for(g=l.length;k>this.spaceLeft;)k=this.wordWidth(l.slice(0,--g));if(f.required=g<l.length,j=b(l.slice(0,g),k,f,i),i={required:!1},l=l.slice(g),k=this.wordWidth(l),j===!1)break}else j=b(l,k,c,h);if(j===!1)break;h=c}},b.prototype.wrap=function(a,b){var c,d,e,f,g,h,i;return null!=b.indent&&(this.indent=b.indent),null!=b.characterSpacing&&(this.characterSpacing=b.characterSpacing),null!=b.wordSpacing&&(this.wordSpacing=b.wordSpacing),null!=b.ellipsis&&(this.ellipsis=b.ellipsis),f=this.document.y+this.document.currentLineHeight(!0),(this.document.y>this.maxY||f>this.maxY)&&this.nextSection(),c="",g=0,h=0,e=0,i=this.document.y,d=function(a){return function(){return b.textWidth=g+a.wordSpacing*(h-1),b.wordCount=h,b.lineWidth=a.lineWidth,i=a.document.y,a.emit("line",c,b,a),e++}}(this),this.emit("sectionStart",b,this),this.eachWord(a,function(a){return function(e,f,i,j){var k,l;if((null==j||j.required)&&(a.emit("firstLine",b,a),a.spaceLeft=a.lineWidth),f<=a.spaceLeft&&(c+=e,g+=f,h++),i.required||f>a.spaceLeft){if(i.required&&a.emit("lastLine",b,a),k=a.document.currentLineHeight(!0),null!=a.height&&a.ellipsis&&a.document.y+2*k>a.maxY&&a.column>=a.columns){for(a.ellipsis===!0&&(a.ellipsis="…"),c=c.replace(/\s+$/,""),g=a.wordWidth(c+a.ellipsis);g>a.lineWidth;)c=c.slice(0,-1).replace(/\s+$/,""),g=a.wordWidth(c+a.ellipsis);c+=a.ellipsis}return d(),a.document.y+k>a.maxY&&(l=a.nextSection(),!l)?(h=0,c="",!1):i.required?(f>a.spaceLeft&&(c=e,g=f,h=1,d()),a.spaceLeft=a.lineWidth,c="",g=0,h=0):(a.spaceLeft=a.lineWidth-f,c=e,g=f,h=1)}return a.spaceLeft-=f}}(this)),h>0&&(this.emit("lastLine",b,this),d()),this.emit("sectionEnd",b,this),b.continued===!0?(e>1&&(this.continuedX=0),this.continuedX+=b.textWidth,this.document.y=i):this.document.x=this.startX},b.prototype.nextSection=function(a){var b;if(this.emit("sectionEnd",a,this),++this.column>this.columns){if(null!=this.height)return!1;this.document.addPage(),this.column=1,this.startY=this.document.page.margins.top,this.maxY=this.document.page.maxY(),this.document.x=this.startX,this.document._fillColor&&(b=this.document).fillColor.apply(b,this.document._fillColor),this.emit("pageBreak",a,this)}else this.document.x+=this.lineWidth+this.columnGap,this.document.y=this.startY,this.emit("columnBreak",a,this);return this.emit("sectionStart",a,this),!0},b}(b),a.exports=e}).call(this)},function(a,b,c){(function(){var b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D;w=c(92),A=new w(c(93)),C=c(94),f=C.BK,k=C.CR,o=C.LF,q=C.NL,g=C.CB,e=C.BA,v=C.SP,x=C.WJ,v=C.SP,f=C.BK,o=C.LF,q=C.NL,b=C.AI,d=C.AL,t=C.SA,u=C.SG,y=C.XX,i=C.CJ,m=C.ID,r=C.NS,z=C.characterClasses,D=c(95),l=D.DI_BRK,n=D.IN_BRK,h=D.CI_BRK,j=D.CP_BRK,s=D.PR_BRK,B=D.pairTable,p=function(){function a(a){this.string=a,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null}var c,m,p;return a.prototype.nextCodePoint=function(){var a,b;return a=this.string.charCodeAt(this.pos++),b=this.string.charCodeAt(this.pos),a>=55296&&56319>=a&&b>=56320&&57343>=b?(this.pos++,1024*(a-55296)+(b-56320)+65536):a},m=function(a){switch(a){case b:return d;case t:case u:case y:return d;case i:return r;default:return a}},p=function(a){switch(a){case o:case q:return f;case g:return e;case v:return x;default:return a}},a.prototype.nextCharClass=function(a){return null==a&&(a=!1),m(A.get(this.nextCodePoint()))},c=function(){function a(a,b){this.position=a,this.required=null!=b?b:!1}return a}(),a.prototype.nextBreak=function(){var a,b,d;for(null==this.curClass&&(this.curClass=p(this.nextCharClass()));this.pos<this.string.length;){if(this.lastPos=this.pos,b=this.nextClass,this.nextClass=this.nextCharClass(),this.curClass===f||this.curClass===k&&this.nextClass!==o)return this.curClass=p(m(this.nextClass)),new c(this.lastPos,!0);if(a=function(){switch(this.nextClass){case v:return this.curClass;case f:case o:case q:return f;case k:return k;case g:return e}}.call(this),null==a){switch(d=!1,B[this.curClass][this.nextClass]){case l:d=!0;break;case n:d=b===v;break;case h:if(d=b===v,!d)continue;break;case j:if(b!==v)continue}if(this.curClass=this.nextClass,d)return new c(this.lastPos)}else if(this.curClass=a,this.nextClass===g)return new c(this.lastPos)}return this.pos>=this.string.length?this.lastPos<this.string.length?(this.lastPos=this.string.length,new c(this.string.length)):null:void 0},a}(),a.exports=p}).call(this)},function(a,b){var c,d=[].slice;c=function(){function a(a){var b,c;null==a&&(a={}),this.data=a.data||[],this.highStart=null!=(b=a.highStart)?b:0,this.errorValue=null!=(c=a.errorValue)?c:-1}var b,c,e,f,g,h,i,j,k,l,m,n,o,p,q,r;return n=11,p=5,o=n-p,m=65536>>n,g=1<<o,i=g-1,j=2,b=1<<p,e=b-1,l=65536>>p,k=1024>>p,h=l+k,r=h,q=32,f=r+q,c=1<<j,a.prototype.get=function(a){var b;return 0>a||a>1114111?this.errorValue:55296>a||a>56319&&65535>=a?(b=(this.data[a>>p]<<j)+(a&e),this.data[b]):65535>=a?(b=(this.data[l+(a-55296>>p)]<<j)+(a&e),this.data[b]):a<this.highStart?(b=this.data[f-m+(a>>n)],b=this.data[b+(a>>p&i)],b=(b<<j)+(a&e),this.data[b]):this.data[this.data.length-c]},a.prototype.toJSON=function(){var a;return a={data:d.call(this.data),highStart:this.highStart,errorValue:this.errorValue}},a}(),a.exports=c},function(a,b){a.exports={data:[1961,1969,1977,1985,2025,2033,2041,2049,2057,2065,2073,2081,2089,2097,2105,2113,2121,2129,2137,2145,2153,2161,2169,2177,2185,2193,2201,2209,2217,2225,2233,2241,2249,2257,2265,2273,2281,2289,2297,2305,2313,2321,2329,2337,2345,2353,2361,2369,2377,2385,2393,2401,2409,2417,2425,2433,2441,2449,2457,2465,2473,2481,2489,2497,2505,2513,2521,2529,2529,2537,2009,2545,2553,2561,2569,2577,2585,2593,2601,2609,2617,2625,2633,2641,2649,2657,2665,2673,2681,2689,2697,2705,2713,2721,2729,2737,2745,2753,2761,2769,2777,2785,2793,2801,2809,2817,2825,2833,2841,2849,2857,2865,2873,2881,2889,2009,2897,2905,2913,2009,2921,2929,2937,2945,2953,2961,2969,2009,2977,2977,2985,2993,3001,3009,3009,3009,3017,3017,3017,3025,3025,3033,3041,3041,3049,3049,3049,3049,3049,3049,3049,3049,3049,3049,3057,3065,3073,3073,3073,3081,3089,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3105,3113,3113,3121,3129,3137,3145,3153,3161,3161,3169,3177,3185,3193,3193,3193,3193,3201,3209,3209,3217,3225,3233,3241,3241,3241,3249,3257,3265,3273,3273,3281,3289,3297,2009,2009,3305,3313,3321,3329,3337,3345,3353,3361,3369,3377,3385,3393,2009,2009,3401,3409,3417,3417,3417,3417,3417,3417,3425,3425,3433,3433,3433,3433,3433,3433,3433,3433,3433,3433,3433,3433,3433,3433,3433,3441,3449,3457,3465,3473,3481,3489,3497,3505,3513,3521,3529,3537,3545,3553,3561,3569,3577,3585,3593,3601,3609,3617,3625,3625,3633,3641,3649,3649,3649,3649,3649,3657,3665,3665,3673,3681,3681,3681,3681,3689,3697,3697,3705,3713,3721,3729,3737,3745,3753,3761,3769,3777,3785,3793,3801,3809,3817,3825,3833,3841,3849,3857,3865,3873,3881,3881,3881,3881,3881,3881,3881,3881,3881,3881,3881,3881,3889,3897,3905,3913,3921,3921,3921,3921,3921,3921,3921,3921,3921,3921,3929,2009,2009,2009,2009,2009,3937,3937,3937,3937,3937,3937,3937,3945,3953,3953,3953,3961,3969,3969,3977,3985,3993,4001,2009,2009,4009,4009,4009,4009,4009,4009,4009,4009,4009,4009,4009,4009,4017,4025,4033,4041,4049,4057,4065,4073,4081,4081,4081,4081,4081,4081,4081,4089,4097,4097,4105,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4121,4121,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4137,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4153,4161,4169,4169,4169,4169,4169,4169,4169,4169,4177,4185,4193,4201,4209,4217,4217,4225,4233,4233,4233,4233,4233,4233,4233,4233,4241,4249,4257,4265,4273,4281,4289,4297,4305,4313,4321,4329,4337,4345,4353,4361,4361,4369,4377,4385,4385,4385,4385,4393,4401,4409,4409,4409,4409,4409,4409,4417,4425,4433,4441,4449,4457,4465,4473,4481,4489,4497,4505,4513,4521,4529,4537,4545,4553,4561,4569,4577,4585,4593,4601,4609,4617,4625,4633,4641,4649,4657,4665,4673,4681,4689,4697,4705,4713,4721,4729,4737,4745,4753,4761,4769,4777,4785,4793,4801,4809,4817,4825,4833,4841,4849,4857,4865,4873,4881,4889,4897,4905,4913,4921,4929,4937,4945,4953,4961,4969,4977,4985,4993,5001,5009,5017,5025,5033,5041,5049,5057,5065,5073,5081,5089,5097,5105,5113,5121,5129,5137,5145,5153,5161,5169,5177,5185,5193,5201,5209,5217,5225,5233,5241,5249,5257,5265,5273,5281,5289,5297,5305,5313,5321,5329,5337,5345,5353,5361,5369,5377,5385,5393,5401,5409,5417,5425,5433,5441,5449,5457,5465,5473,5481,5489,5497,5505,5513,5521,5529,5537,5545,5553,5561,5569,5577,5585,5593,5601,5609,5617,5625,5633,5641,5649,5657,5665,5673,5681,5689,5697,5705,5713,5721,5729,5737,5745,5753,5761,5769,5777,5785,5793,5801,5809,5817,5825,5833,5841,5849,5857,5865,5873,5881,5889,5897,5905,5913,5921,5929,5937,5945,5953,5961,5969,5977,5985,5993,6001,6009,6017,6025,6033,6041,6049,6057,6065,6073,6081,6089,6097,6105,6113,6121,6129,6137,6145,6153,6161,6169,6177,6185,6193,6201,6209,6217,6225,6233,6241,6249,6257,6265,6273,6281,6289,6297,6305,6313,6321,6329,6337,6345,6353,6361,6369,6377,6385,6393,6401,6409,6417,6425,6433,6441,6449,6457,6465,6473,6481,6489,6497,6505,6513,6521,6529,6537,6545,6553,6561,6569,6577,6585,6593,6601,6609,6617,6625,6633,6641,6649,6657,6665,6673,6681,6689,6697,6705,6713,6721,6729,6737,6745,6753,6761,6769,6777,6785,6793,6801,6809,6817,6825,6833,6841,6849,6857,6865,6873,6881,6889,6897,6905,6913,6921,6929,6937,6945,6953,6961,6969,6977,6985,6993,7001,7009,7017,7025,7033,7041,7049,7057,7065,7073,7081,7089,7097,7105,7113,7121,7129,7137,7145,7153,7161,7169,7177,7185,7193,7201,7209,7217,7225,7233,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7257,7265,7273,7281,7281,7281,7281,7281,7281,7281,7281,7281,7281,7281,7281,7281,7281,7289,7297,7305,7305,7305,7305,7313,7321,7329,7337,7345,7353,7353,7353,7361,7369,7377,7385,7393,7401,7409,7417,7425,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7972,7972,8100,8164,8228,8292,8356,8420,8484,8548,8612,8676,8740,8804,8868,8932,8996,9060,9124,9188,9252,9316,9380,9444,9508,9572,9636,9700,9764,9828,9892,9956,2593,2657,2721,2529,2785,2529,2849,2913,2977,3041,3105,3169,3233,3297,2529,2529,2529,2529,2529,2529,2529,2529,3361,2529,2529,2529,3425,2529,2529,3489,3553,2529,3617,3681,3745,3809,3873,3937,4001,4065,4129,4193,4257,4321,4385,4449,4513,4577,4641,4705,4769,4833,4897,4961,5025,5089,5153,5217,5281,5345,5409,5473,5537,5601,5665,5729,5793,5857,5921,5985,6049,6113,6177,6241,6305,6369,6433,6497,6561,6625,6689,6753,6817,6881,6945,7009,7073,7137,7201,7265,7329,7393,7457,7521,7585,7649,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,7713,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7433,7433,7433,7433,7433,7433,7433,7441,7449,7457,7457,7457,7457,7457,7457,7465,2009,2009,2009,2009,7473,7473,7473,7473,7473,7473,7473,7473,7481,7489,7497,7505,7505,7505,7505,7505,7513,7521,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7529,7529,7537,7545,7545,7545,7545,7545,7553,7561,7561,7561,7561,7561,7561,7561,7569,7577,7585,7593,7593,7593,7593,7593,7593,7601,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7617,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7625,7633,7641,7649,7657,7665,7673,7681,7689,7697,7705,2009,7713,7721,7729,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7737,7745,7753,2009,2009,2009,2009,2009,2009,2009,2009,2009,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7769,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7785,7793,7801,7809,7809,7809,7809,7809,7809,7817,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7833,7841,7849,2009,2009,2009,7857,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7865,7865,7865,7865,7865,7865,7865,7865,7865,7865,7865,7873,7881,7889,7897,7897,7897,7897,7905,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7921,7929,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7937,7937,7937,7937,7937,7937,7937,7945,2009,2009,2009,2009,2009,2009,2009,2009,7953,7953,7953,7953,7953,7953,7953,2009,7961,7969,7977,7985,7993,2009,2009,8001,8009,8009,8009,8009,8009,8009,8009,8009,8009,8009,8009,8009,8009,8017,8025,8025,8025,8025,8025,8025,8025,8033,8041,8049,8057,8065,8073,8081,8081,8081,8081,8081,8081,8081,8081,8081,8081,8081,8089,2009,8097,8097,8097,8105,2009,2009,2009,2009,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8121,8129,8137,8137,8137,8137,8137,8137,8137,8137,8137,8137,8137,8137,8137,8137,8145,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,67496,67496,67496,21,21,21,21,21,21,21,21,21,17,34,30,30,33,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,38,6,3,12,9,10,12,3,0,2,12,9,8,16,8,7,11,11,11,11,11,11,11,11,11,11,8,8,12,12,12,6,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,9,2,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,17,1,12,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,21,21,35,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,4,0,10,9,9,9,12,29,29,12,29,3,12,17,12,12,10,9,29,29,18,12,29,29,29,29,29,3,29,29,29,0,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,18,29,29,29,18,29,12,12,29,12,12,12,12,12,12,12,29,29,29,29,12,29,12,18,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,4,21,21,21,21,21,21,21,21,21,21,21,21,4,4,4,4,4,4,4,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,8,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,8,17,39,39,39,39,9,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,17,21,12,21,21,12,21,21,6,21,39,39,39,39,39,39,39,39,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,10,10,8,8,12,12,21,21,21,21,21,21,21,21,21,21,21,6,6,6,6,6,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,11,11,11,11,11,11,11,11,11,11,10,11,11,12,12,12,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,6,12,21,21,21,21,21,21,21,12,12,21,21,21,21,21,21,12,12,21,21,12,21,21,21,21,12,12,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,12,39,39,39,39,39,39,39,39,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,12,12,12,12,8,6,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,12,21,21,21,21,21,21,21,21,21,12,21,21,21,12,21,21,21,21,21,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,21,21,17,17,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,21,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,21,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,39,39,39,39,39,39,39,39,21,39,39,39,39,12,12,12,12,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,12,12,10,10,12,12,12,12,12,10,12,9,39,39,39,39,39,21,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,12,12,12,12,12,12,39,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,21,21,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,21,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,12,9,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,21,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,12,12,12,12,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,12,39,39,39,39,39,39,21,39,39,39,39,39,39,39,39,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,9,12,39,39,39,39,39,39,21,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,12,12,12,12,12,12,12,12,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,39,39,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,21,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,12,12,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,39,12,12,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,39,39,39,39,39,39,39,39,21,39,39,39,39,39,39,39,39,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,39,39,39,10,12,12,12,12,12,12,39,39,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,39,39,39,39,39,39,39,39,39,39,39,39,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,39,39,39,39,9,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,12,11,11,11,11,11,11,11,11,11,11,17,17,39,39,39,39,39,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,39,39,11,11,11,11,11,11,11,11,11,11,39,39,36,36,36,36,12,18,18,18,18,12,18,18,4,18,18,17,4,6,6,6,6,6,4,12,6,12,12,12,21,21,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,17,21,12,21,12,21,0,1,0,1,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,17,21,21,21,21,21,17,21,21,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,17,17,12,12,12,12,12,12,21,12,12,12,12,12,12,12,12,12,18,18,17,18,12,12,12,12,12,4,4,39,39,39,39,39,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,11,11,11,11,11,11,11,11,11,11,17,17,12,12,12,12,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,11,11,11,11,11,11,11,11,11,11,36,36,36,36,36,36,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,21,21,21,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,17,17,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,21,21,39,39,39,39,39,39,39,39,39,39,39,39,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,17,17,5,36,17,12,17,9,36,36,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,6,6,17,17,18,12,6,6,12,21,21,21,4,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,12,39,39,39,6,6,11,11,11,11,11,11,11,11,11,11,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,36,36,36,36,36,36,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,39,39,12,12,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,39,39,21,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,36,36,36,36,36,36,36,36,36,36,36,36,36,36,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,39,39,39,39,11,11,11,11,11,11,11,11,11,11,17,17,12,17,17,17,17,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,39,39,39,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,17,17,17,17,17,11,11,11,11,11,11,11,11,11,11,39,39,39,12,12,12,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,21,21,21,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,21,12,12,12,12,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,18,12,39,17,17,17,17,17,17,17,4,17,17,17,20,21,21,21,21,17,4,17,17,19,29,29,12,3,3,0,3,3,3,0,3,29,29,12,12,15,15,15,17,30,30,21,21,21,21,21,4,10,10,10,10,10,10,10,10,12,3,3,29,5,5,12,12,12,12,12,12,8,0,1,5,5,5,12,12,12,12,12,12,12,12,12,12,12,12,17,12,17,17,17,17,12,17,17,17,22,12,12,12,12,39,39,39,39,39,21,21,21,21,21,21,12,12,39,39,29,12,12,12,12,12,12,12,12,0,1,29,12,29,29,29,29,12,12,12,12,12,12,12,12,0,1,39,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,9,9,9,9,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,10,12,29,12,12,12,10,12,12,12,12,12,12,12,12,12,29,12,12,9,12,12,12,12,12,12,12,12,12,12,29,29,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,12,12,12,12,12,29,12,12,29,12,29,29,29,29,29,29,29,29,29,29,29,29,12,12,12,12,29,29,29,29,29,29,29,29,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,29,29,12,12,12,29,29,12,12,29,12,12,12,29,12,29,9,9,12,29,12,12,12,12,29,12,12,29,29,29,29,12,12,29,12,29,12,29,29,29,29,29,29,12,29,12,12,12,12,12,29,29,29,29,12,12,12,12,29,29,12,12,12,12,12,12,12,12,12,12,29,12,12,12,29,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,12,12,29,29,29,29,12,12,29,29,12,12,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,12,12,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,12,12,12,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,12,12,12,12,12,12,12,12,12,12,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,12,29,29,29,29,12,12,12,12,12,12,12,12,12,12,29,29,12,29,29,29,29,29,29,29,12,12,12,12,12,12,12,12,29,29,12,12,29,29,12,12,12,12,29,29,12,12,29,29,12,12,12,12,29,29,29,12,12,29,12,12,29,29,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,29,29,12,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,12,29,29,12,12,29,12,12,12,12,29,29,12,12,12,12,14,14,29,29,14,12,14,14,14,14,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,12,12,12,12,29,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,12,29,29,29,12,29,14,29,29,12,29,29,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,29,29,29,29,14,12,14,14,14,29,14,14,29,29,29,14,14,29,29,14,29,29,14,14,14,12,29,12,12,12,12,29,29,14,29,29,29,29,29,29,14,14,14,14,14,29,14,14,14,14,29,29,14,14,14,14,14,14,14,14,12,12,12,14,14,14,14,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,3,3,3,3,12,12,12,6,6,12,12,12,12,0,1,0,1,0,1,0,1,0,1,0,1,0,1,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,0,1,0,1,0,1,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,29,29,29,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,12,12,39,39,39,39,39,6,17,17,17,12,6,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3,3,3,3,3,3,3,3,3,3,3,3,3,3,17,17,17,17,17,17,17,17,12,17,0,17,12,12,3,3,12,12,3,3,0,1,0,1,0,1,0,1,17,17,17,17,6,12,17,17,12,17,17,12,12,12,12,12,19,19,39,39,39,39,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,1,1,14,14,5,14,14,0,1,0,1,0,1,0,1,0,1,14,14,0,1,0,1,0,1,0,1,5,0,1,1,14,14,14,14,14,14,14,14,14,14,21,21,21,21,21,21,14,14,14,14,14,14,14,14,14,14,14,5,5,14,14,14,39,32,14,32,14,32,14,32,14,32,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,32,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,32,14,32,14,32,14,14,14,14,14,14,32,14,14,14,14,14,14,32,32,39,39,21,21,5,5,5,5,14,5,32,14,32,14,32,14,32,14,32,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,32,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,32,14,32,14,32,14,14,14,14,14,14,32,14,14,14,14,14,14,32,32,14,14,14,14,5,32,5,5,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,39,39,39,39,39,39,39,39,39,39,39,39,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,29,29,29,29,29,29,29,29,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,5,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,6,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,12,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,12,17,17,17,17,17,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,12,12,12,21,12,12,12,12,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,18,18,6,6,39,39,39,39,39,39,39,39,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,39,17,17,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,39,39,39,39,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,17,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,39,39,39,12,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,39,39,39,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,17,17,17,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,39,12,12,12,21,12,12,12,12,12,12,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,39,39,12,17,17,17,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,17,17,12,12,12,21,21,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,17,21,21,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,39,39,39,39,39,39,39,39,39,39,39,39,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,39,39,39,39,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,39,39,39,39,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,13,21,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,12,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,8,1,1,8,8,6,6,0,1,15,39,39,39,39,39,39,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,39,14,14,14,14,14,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,14,14,0,1,14,14,14,14,14,14,14,1,14,1,39,5,5,6,6,14,0,1,0,1,0,1,14,14,14,14,14,14,14,14,14,14,9,10,14,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,22,39,6,14,14,9,10,14,14,0,1,14,14,1,14,1,14,14,14,14,14,14,14,14,14,14,14,5,5,14,14,14,6,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,14,1,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,14,1,14,0,1,1,0,1,1,5,12,32,32,32,32,32,32,32,32,32,32,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,5,5,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,10,9,14,14,14,9,9,39,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,21,21,21,31,29,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,17,17,17,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,17,17,17,17,17,17,17,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,17,17,17,17,17,17,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,17,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,12,12,12,17,17,17,17,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,11,11,11,11,11,11,11,11,11,11,17,17,17,17,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,17,17,12,17,39,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,39,39,17,17,17,17,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,12,12,12,0,1,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,39,39,39,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,39,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,12,39,39,39,39,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,39,39,39,39,39,39,39,39,39,39,39,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,14,14,14,14,14,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,14,12,14,12,14,14,14,14,14,14,14,14,14,14,12,14,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,39,39,39,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,39,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,39,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39],
-highStart:919552,errorValue:0}},function(a,b){(function(){var a,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O;b.OP=D=0,b.CL=j=1,b.CP=l=2,b.QU=G=3,b.GL=o=4,b.NS=B=5,b.EX=n=6,b.SY=L=7,b.IS=v=8,b.PR=F=9,b.PO=E=10,b.NU=C=11,b.AL=c=12,b.HL=r=13,b.ID=t=14,b.IN=u=15,b.HY=s=16,b.BA=e=17,b.BB=f=18,b.B2=d=19,b.ZW=O=20,b.CM=k=21,b.WJ=M=22,b.H2=p=23,b.H3=q=24,b.JL=w=25,b.JV=y=26,b.JT=x=27,b.RI=H=28,b.AI=a=29,b.BK=g=30,b.CB=h=31,b.CJ=i=32,b.CR=m=33,b.LF=z=34,b.NL=A=35,b.SA=I=36,b.SG=J=37,b.SP=K=38,b.XX=N=39}).call(this)},function(a,b){(function(){var a,c,d,e,f;b.DI_BRK=d=0,b.IN_BRK=e=1,b.CI_BRK=a=2,b.CP_BRK=c=3,b.PR_BRK=f=4,b.pairTable=[[f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,c,f,f,f,f,f,f,f],[d,f,f,e,e,f,f,f,f,e,e,d,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,e,f,f,f,f,e,e,e,e,e,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[f,f,f,e,e,e,f,f,f,e,e,e,e,e,e,e,e,e,e,e,f,a,f,e,e,e,e,e,e],[e,f,f,e,e,e,f,f,f,e,e,e,e,e,e,e,e,e,e,e,f,a,f,e,e,e,e,e,e],[d,f,f,e,e,e,f,f,f,d,d,d,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,e,e,f,f,f,d,d,d,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,e,e,f,f,f,d,d,e,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,e,e,f,f,f,d,d,e,e,e,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,d,d,e,e,e,e,d,e,e,d,d,f,a,f,e,e,e,e,e,d],[e,f,f,e,e,e,f,f,f,d,d,e,e,e,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,e,e,e,e,e,d,e,e,e,d,d,f,a,f,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,d,d,e,e,e,d,e,e,e,d,d,f,a,f,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,d,d,e,e,e,d,e,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,e,e,f,f,f,d,e,d,d,d,d,e,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,e,e,f,f,f,d,d,d,d,d,d,e,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,d,e,f,f,f,d,d,e,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,d,e,f,f,f,d,d,d,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,e,e,e,e,e,e,e,e,e,e,e,f,a,f,e,e,e,e,e,e],[d,f,f,e,e,e,f,f,f,d,d,d,d,d,d,d,e,e,d,f,f,a,f,d,d,d,d,d,d],[d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,f,d,d,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,d,d,e,e,e,d,e,e,e,d,d,f,a,f,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,e,e,e,e,e,e,e,e,e,e,e,f,a,f,e,e,e,e,e,e],[d,f,f,e,e,e,f,f,f,d,e,d,d,d,d,e,e,e,d,d,f,a,f,d,d,d,e,e,d],[d,f,f,e,e,e,f,f,f,d,e,d,d,d,d,e,e,e,d,d,f,a,f,d,d,d,d,e,d],[d,f,f,e,e,e,f,f,f,d,e,d,d,d,d,e,e,e,d,d,f,a,f,e,e,e,e,d,d],[d,f,f,e,e,e,f,f,f,d,e,d,d,d,d,e,e,e,d,d,f,a,f,d,d,d,e,e,d],[d,f,f,e,e,e,f,f,f,d,e,d,d,d,d,e,e,e,d,d,f,a,f,d,d,d,d,e,d],[d,f,f,e,e,e,f,f,f,d,d,d,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,e]]}).call(this)},function(a,b,c){(function(b){(function(){var d;d=c(97),a.exports={initImages:function(){return this._imageRegistry={},this._imageCount=0},image:function(a,c,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t;return null==f&&(f={}),"object"==typeof c&&(f=c,c=null),c=null!=(r=null!=c?c:f.x)?r:this.x,e=null!=(s=null!=e?e:f.y)?s:this.y,b.isBuffer(a)||(l=this._imageRegistry[a]),l||(l=d.open(a,"I"+ ++this._imageCount),l.embed(this),b.isBuffer(a)||(this._imageRegistry[a]=l)),null==(p=this.page.xobjects)[q=l.label]&&(p[q]=l.obj),n=f.width||l.width,j=f.height||l.height,f.width&&!f.height?(o=n/l.width,n=l.width*o,j=l.height*o):f.height&&!f.width?(k=j/l.height,n=l.width*k,j=l.height*k):f.scale?(n=l.width*f.scale,j=l.height*f.scale):f.fit&&(t=f.fit,i=t[0],g=t[1],h=i/g,m=l.width/l.height,m>h?(n=i,j=i/m):(j=g,n=g*m),"center"===f.align?c=c+i/2-n/2:"right"===f.align&&(c=c+i-n),"center"===f.valign?e=e+g/2-j/2:"bottom"===f.valign&&(e=e+g-j)),this.y===e&&(this.y+=j),this.save(),this.transform(n,0,0,-j,c,e+j),this.addContent("/"+l.label+" Do"),this.restore(),this}}}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(b){(function(){var d,e,f,g,h;h=c(44),d=c(72),e=c(98),g=c(99),f=function(){function a(){}return a.open=function(a,c){var d,f;if(b.isBuffer(a))d=a;else if(f=/^data:.+;base64,(.*)$/.exec(a))d=new b(f[1],"base64");else if(d=h.readFileSync(a),!d)return;if(255===d[0]&&216===d[1])return new e(d,c);if(137===d[0]&&"PNG"===d.toString("ascii",1,4))return new g(d,c);throw new Error("Unknown image format.")},a}(),a.exports=f}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(){var b,d,e=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};d=c(44),b=function(){function a(a,c){var d,f,g;if(this.data=a,this.label=c,65496!==this.data.readUInt16BE(0))throw"SOI not found in JPEG";for(g=2;g<this.data.length&&(f=this.data.readUInt16BE(g),g+=2,!(e.call(b,f)>=0));)g+=this.data.readUInt16BE(g);if(e.call(b,f)<0)throw"Invalid JPEG.";g+=2,this.bits=this.data[g++],this.height=this.data.readUInt16BE(g),g+=2,this.width=this.data.readUInt16BE(g),g+=2,d=this.data[g++],this.colorSpace=function(){switch(d){case 1:return"DeviceGray";case 3:return"DeviceRGB";case 4:return"DeviceCMYK"}}(),this.obj=null}var b;return b=[65472,65473,65474,65475,65477,65478,65479,65480,65481,65482,65483,65484,65485,65486,65487],a.prototype.embed=function(a){return this.obj?void 0:(this.obj=a.ref({Type:"XObject",Subtype:"Image",BitsPerComponent:this.bits,Width:this.width,Height:this.height,ColorSpace:this.colorSpace,Filter:"DCTDecode"}),"DeviceCMYK"===this.colorSpace&&(this.obj.data.Decode=[1,0,1,0,1,0,1,0]),this.obj.end(this.data),this.data=null)},a}(),a.exports=b}).call(this)},function(a,b,c){(function(b){(function(){var d,e,f;f=c(47),d=c(100),e=function(){function a(a,b){this.label=b,this.image=new d(a),this.width=this.image.width,this.height=this.image.height,this.imgData=this.image.imgData,this.obj=null}return a.prototype.embed=function(a){var c,d,e,f,g,h,i,j;if(this.document=a,!this.obj){if(this.obj=a.ref({Type:"XObject",Subtype:"Image",BitsPerComponent:this.image.bits,Width:this.width,Height:this.height,Filter:"FlateDecode"}),this.image.hasAlphaChannel||(e=a.ref({Predictor:15,Colors:this.image.colors,BitsPerComponent:this.image.bits,Columns:this.width}),this.obj.data.DecodeParms=e,e.end()),0===this.image.palette.length?this.obj.data.ColorSpace=this.image.colorSpace:(d=a.ref(),d.end(new b(this.image.palette)),this.obj.data.ColorSpace=["Indexed","DeviceRGB",this.image.palette.length/3-1,d]),this.image.transparency.grayscale)return g=this.image.transparency.greyscale,this.obj.data.Mask=[g,g];if(this.image.transparency.rgb){for(f=this.image.transparency.rgb,c=[],i=0,j=f.length;j>i;i++)h=f[i],c.push(h,h);return this.obj.data.Mask=c}return this.image.transparency.indexed?this.loadIndexedAlphaChannel():this.image.hasAlphaChannel?this.splitAlphaChannel():this.finalize()}},a.prototype.finalize=function(){var a;return this.alphaChannel&&(a=this.document.ref({Type:"XObject",Subtype:"Image",Height:this.height,Width:this.width,BitsPerComponent:8,Filter:"FlateDecode",ColorSpace:"DeviceGray",Decode:[0,1]}),a.end(this.alphaChannel),this.obj.data.SMask=a),this.obj.end(this.imgData),this.image=null,this.imgData=null},a.prototype.splitAlphaChannel=function(){return this.image.decodePixels(function(a){return function(c){var d,e,g,h,i,j,k,l,m;for(g=a.image.colors*a.image.bits/8,m=a.width*a.height,j=new b(m*g),e=new b(m),i=l=d=0,k=c.length;k>i;)j[l++]=c[i++],j[l++]=c[i++],j[l++]=c[i++],e[d++]=c[i++];return h=0,f.deflate(j,function(b,c){if(a.imgData=c,b)throw b;return 2===++h?a.finalize():void 0}),f.deflate(e,function(b,c){if(a.alphaChannel=c,b)throw b;return 2===++h?a.finalize():void 0})}}(this))},a.prototype.loadIndexedAlphaChannel=function(a){var c;return c=this.image.transparency.indexed,this.image.decodePixels(function(a){return function(d){var e,g,h,i,j;for(e=new b(a.width*a.height),g=0,h=i=0,j=d.length;j>i;h=i+=1)e[g++]=c[d[h]];return f.deflate(e,function(b,c){if(a.alphaChannel=c,b)throw b;return a.finalize()})}}(this))},a}(),a.exports=e}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(b){(function(){var d,e,f;e=c(44),f=c(47),a.exports=d=function(){function a(a){var c,d,e,f,g,h,i,j,k,l,m;for(this.data=a,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.text={};;){switch(c=this.readUInt32(),h=function(){var a,b;for(b=[],e=a=0;4>a;e=++a)b.push(String.fromCharCode(this.data[this.pos++]));return b}.call(this).join("")){case"IHDR":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case"PLTE":this.palette=this.read(c);break;case"IDAT":for(e=k=0;c>k;e=k+=1)this.imgData.push(this.data[this.pos++]);break;case"tRNS":switch(this.transparency={},this.colorType){case 3:if(this.transparency.indexed=this.read(c),i=255-this.transparency.indexed.length,i>0)for(e=l=0;i>=0?i>l:l>i;e=i>=0?++l:--l)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(c)[0];break;case 2:this.transparency.rgb=this.read(c)}break;case"tEXt":j=this.read(c),f=j.indexOf(0),g=String.fromCharCode.apply(String,j.slice(0,f)),this.text[g]=String.fromCharCode.apply(String,j.slice(f+1));break;case"IEND":return this.colors=function(){switch(this.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3}}.call(this),this.hasAlphaChannel=4===(m=this.colorType)||6===m,d=this.colors+(this.hasAlphaChannel?1:0),this.pixelBitlength=this.bits*d,this.colorSpace=function(){switch(this.colors){case 1:return"DeviceGray";case 3:return"DeviceRGB"}}.call(this),void(this.imgData=new b(this.imgData));default:this.pos+=c}if(this.pos+=4,this.pos>this.data.length)throw new Error("Incomplete or corrupt PNG file")}}return a.decode=function(b,c){return e.readFile(b,function(b,d){var e;return e=new a(d),e.decode(function(a){return c(a)})})},a.load=function(b){var c;return c=e.readFileSync(b),new a(c)},a.prototype.read=function(a){var b,c,d;for(d=[],b=c=0;a>=0?a>c:c>a;b=a>=0?++c:--c)d.push(this.data[this.pos++]);return d},a.prototype.readUInt32=function(){var a,b,c,d;return a=this.data[this.pos++]<<24,b=this.data[this.pos++]<<16,c=this.data[this.pos++]<<8,d=this.data[this.pos++],a|b|c|d},a.prototype.readUInt16=function(){var a,b;return a=this.data[this.pos++]<<8,b=this.data[this.pos++],a|b},a.prototype.decodePixels=function(a){var c=this;return f.inflate(this.imgData,function(d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B;if(d)throw d;for(q=c.pixelBitlength/8,u=q*c.width,r=new b(u*c.height),k=e.length,t=0,s=0,g=0;k>s;){switch(e[s++]){case 0:for(i=x=0;u>x;i=x+=1)r[g++]=e[s++];break;case 1:for(i=y=0;u>y;i=y+=1)f=e[s++],j=q>i?0:r[g-q],r[g++]=(f+j)%256;break;case 2:for(i=z=0;u>z;i=z+=1)f=e[s++],h=(i-i%q)/q,v=t&&r[(t-1)*u+h*q+i%q],r[g++]=(v+f)%256;break;case 3:for(i=A=0;u>A;i=A+=1)f=e[s++],h=(i-i%q)/q,j=q>i?0:r[g-q],v=t&&r[(t-1)*u+h*q+i%q],r[g++]=(f+Math.floor((j+v)/2))%256;break;case 4:for(i=B=0;u>B;i=B+=1)f=e[s++],h=(i-i%q)/q,j=q>i?0:r[g-q],0===t?v=w=0:(v=r[(t-1)*u+h*q+i%q],w=h&&r[(t-1)*u+(h-1)*q+i%q]),l=j+v-w,m=Math.abs(l-j),o=Math.abs(l-v),p=Math.abs(l-w),n=o>=m&&p>=m?j:p>=o?v:w,r[g++]=(f+n)%256;break;default:throw new Error("Invalid filter algorithm: "+e[s-1])}t++}return a(r)})},a.prototype.decodePalette=function(){var a,c,d,e,f,g,h,i,j,k;for(e=this.palette,h=this.transparency.indexed||[],g=new b(h.length+e.length),f=0,d=e.length,a=0,c=i=0,j=e.length;j>i;c=i+=3)g[f++]=e[c],g[f++]=e[c+1],g[f++]=e[c+2],g[f++]=null!=(k=h[a++])?k:255;return g},a.prototype.copyToImageData=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(d=this.colors,k=null,c=this.hasAlphaChannel,this.palette.length&&(k=null!=(m=this._decodedPalette)?m:this._decodedPalette=this.decodePalette(),d=4,c=!0),e=(null!=a?a.data:void 0)||a,j=e.length,g=k||b,f=h=0,1===d)for(;j>f;)i=k?4*b[f/4]:h,l=g[i++],e[f++]=l,e[f++]=l,e[f++]=l,e[f++]=c?g[i++]:255,h=i;else for(;j>f;)i=k?4*b[f/4]:h,e[f++]=g[i++],e[f++]=g[i++],e[f++]=g[i++],e[f++]=c?g[i++]:255,h=i},a.prototype.decode=function(a){var c,d=this;return c=new b(this.width*this.height*4),this.decodePixels(function(b){return d.copyToImageData(c,b),a(c)})},a}()}).call(this)}).call(b,c(2).Buffer)},function(a,b){(function(){a.exports={annotate:function(a,b,c,d,e){var f,g,h;e.Type="Annot",e.Rect=this._convertRect(a,b,c,d),e.Border=[0,0,0],"Link"!==e.Subtype&&null==e.C&&(e.C=this._normalizeColor(e.color||[0,0,0])),delete e.color,"string"==typeof e.Dest&&(e.Dest=new String(e.Dest));for(f in e)h=e[f],e[f[0].toUpperCase()+f.slice(1)]=h;return g=this.ref(e),this.page.annotations.push(g),g.end(),this},note:function(a,b,c,d,e,f){return null==f&&(f={}),f.Subtype="Text",f.Contents=new String(e),f.Name="Comment",null==f.color&&(f.color=[243,223,92]),this.annotate(a,b,c,d,f)},link:function(a,b,c,d,e,f){return null==f&&(f={}),f.Subtype="Link",f.A=this.ref({S:"URI",URI:new String(e)}),f.A.end(),this.annotate(a,b,c,d,f)},_markup:function(a,b,c,d,e){var f,g,h,i,j;return null==e&&(e={}),j=this._convertRect(a,b,c,d),f=j[0],h=j[1],g=j[2],i=j[3],e.QuadPoints=[f,i,g,i,f,h,g,h],e.Contents=new String,this.annotate(a,b,c,d,e)},highlight:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Highlight",null==e.color&&(e.color=[241,238,148]),this._markup(a,b,c,d,e)},underline:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Underline",this._markup(a,b,c,d,e)},strike:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="StrikeOut",this._markup(a,b,c,d,e)},lineAnnotation:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Line",e.Contents=new String,e.L=[a,this.page.height-b,c,this.page.height-d],this.annotate(a,b,c,d,e)},rectAnnotation:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Square",e.Contents=new String,this.annotate(a,b,c,d,e)},ellipseAnnotation:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Circle",e.Contents=new String,this.annotate(a,b,c,d,e)},textAnnotation:function(a,b,c,d,e,f){return null==f&&(f={}),f.Subtype="FreeText",f.Contents=new String(e),f.DA=new String,this.annotate(a,b,c,d,f)},_convertRect:function(a,b,c,d){var e,f,g,h,i,j,k,l,m;return l=b,b+=d,k=a+c,m=this._ctm,e=m[0],f=m[1],g=m[2],h=m[3],i=m[4],j=m[5],a=e*a+g*b+i,b=f*a+h*b+j,k=e*k+g*l+i,l=f*k+h*l+j,[a,b,k,l]}}}).call(this)},function(a,b){a.exports={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],LETTER:[612,792],TABLOID:[792,1224]}},function(a,b,c){(function(b){"use strict";function d(a,b){this.pdfDoc=a,this.imageDictionary=b||{}}var e=(c(24),c(97));d.prototype.measureImage=function(a){function c(a){var c=g.imageDictionary[a];if(!c)return a;var d=c.indexOf("base64,");if(0>d)throw"invalid image format, images dictionary should contain dataURL entries";return new b(c.substring(d+7),"base64")}var d,f,g=this;return this.pdfDoc._imageRegistry[a]?d=this.pdfDoc._imageRegistry[a]:(f="I"+ ++this.pdfDoc._imageCount,d=e.open(c(a),f),d.embed(this.pdfDoc),this.pdfDoc._imageRegistry[a]=d),{width:d.width,height:d.height}},a.exports=d}).call(b,c(2).Buffer)},function(a,b){"use strict";function c(a){for(var b=[],c=null,d=0,e=a.inlines.length;e>d;d++){var f=a.inlines[d],g=f.decoration;if(g){var h=f.decorationColor||f.color||"black",i=f.decorationStyle||"solid";g=Array.isArray(g)?g:[g];for(var j=0,k=g.length;k>j;j++){var l=g[j];c&&l===c.decoration&&i===c.decorationStyle&&h===c.decorationColor&&"lineThrough"!==l?c.inlines.push(f):(c={line:a,decoration:l,decorationColor:h,decorationStyle:i,inlines:[f]},b.push(c))}}else c=null}return b}function d(a,b,c,d){function e(){for(var b=0,c=0,d=a.inlines.length;d>c;c++){var e=a.inlines[c];b=e.fontSize>b?c:b}return a.inlines[b]}function f(){for(var b=0,c=0,d=a.inlines.length;d>c;c++)b+=a.inlines[c].width;return b}var g=a.inlines[0],h=e(),i=f(),j=a.line.getAscenderHeight(),k=h.font.ascender/1e3*h.fontSize,l=h.height,m=l-k,n=.5+.12*Math.floor(Math.max(h.fontSize-8,0)/2);switch(a.decoration){case"underline":c+=j+.45*m;break;case"overline":c+=j-.85*k;break;case"lineThrough":c+=j-.25*k;break;default:throw"Unkown decoration : "+a.decoration}if(d.save(),"double"===a.decorationStyle){var o=Math.max(.5,2*n);d.fillColor(a.decorationColor).rect(b+g.x,c-n/2,i,n/2).fill().rect(b+g.x,c+o-n/2,i,n/2).fill()}else if("dashed"===a.decorationStyle){var p=Math.ceil(i/6.8),q=b+g.x;d.rect(q,c,i,n).clip(),d.fillColor(a.decorationColor);for(var r=0;p>r;r++)d.rect(q,c-n/2,3.96,n).fill(),q+=6.8}else if("dotted"===a.decorationStyle){var s=Math.ceil(i/(3*n)),t=b+g.x;d.rect(t,c,i,n).clip(),d.fillColor(a.decorationColor);for(var u=0;s>u;u++)d.rect(t,c-n/2,n,n).fill(),t+=3*n}else if("wavy"===a.decorationStyle){var v=.7,w=1,x=Math.ceil(i/(2*v))+1,y=b+g.x-1;d.rect(b+g.x,c-w,i,c+w).clip(),d.lineWidth(.24),d.moveTo(y,c);for(var z=0;x>z;z++)d.bezierCurveTo(y+v,c-w,y+2*v,c-w,y+3*v,c).bezierCurveTo(y+4*v,c+w,y+5*v,c+w,y+6*v,c),y+=6*v;d.stroke(a.decorationColor)}else d.fillColor(a.decorationColor).rect(b+g.x,c-n/2,i,n).fill();d.restore()}function e(a,b,e,f){for(var g=c(a),h=0,i=g.length;i>h;h++)d(g[h],b,e,f)}function f(a,b,c,d){for(var e=a.getHeight(),f=0,g=a.inlines.length;g>f;f++){var h=a.inlines[f];h.background&&d.fillColor(h.background).rect(b+h.x,c,h.width,e).fill()}}a.exports={drawBackground:f,drawDecorations:e}},function(a,b,c){var d,e,f=f||function(a){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=b.createElementNS("http://www.w3.org/1999/xhtml","a"),e="download"in d,f=function(a){var b=new MouseEvent("click");a.dispatchEvent(b)},g=a.webkitRequestFileSystem,h=a.requestFileSystem||g||a.mozRequestFileSystem,i=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},j="application/octet-stream",k=0,l=500,m=function(b){var d=function(){"string"==typeof b?c().revokeObjectURL(b):b.remove()};a.chrome?d():setTimeout(d,l)},n=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(f){i(f)}}},o=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},p=function(b,i,l){l||(b=o(b));var p,q,r,s=this,t=b.type,u=!1,v=function(){n(s,"writestart progress write writeend".split(" "))},w=function(){if((u||!p)&&(p=c().createObjectURL(b)),q)q.location.href=p;else{var d=a.open(p,"_blank");void 0==d&&"undefined"!=typeof safari&&(a.location.href=p)}s.readyState=s.DONE,v(),m(p)},x=function(a){return function(){return s.readyState!==s.DONE?a.apply(this,arguments):void 0}},y={create:!0,exclusive:!1};return s.readyState=s.INIT,i||(i="download"),e?(p=c().createObjectURL(b),d.href=p,d.download=i,void setTimeout(function(){f(d),v(),m(p),s.readyState=s.DONE})):(a.chrome&&t&&t!==j&&(r=b.slice||b.webkitSlice,b=r.call(b,0,b.size,j),u=!0),g&&"download"!==i&&(i+=".download"),(t===j||g)&&(q=a),h?(k+=b.size,void h(a.TEMPORARY,k,x(function(a){a.root.getDirectory("saved",y,x(function(a){var c=function(){a.getFile(i,y,x(function(a){a.createWriter(x(function(c){c.onwriteend=function(b){q.location.href=a.toURL(),s.readyState=s.DONE,n(s,"writeend",b),m(a)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&w()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=s["on"+a]}),c.write(b),s.abort=function(){c.abort(),s.readyState=s.DONE},s.readyState=s.WRITING}),w)}),w)};a.getFile(i,{create:!1},x(function(a){a.remove(),c()}),x(function(a){a.code===a.NOT_FOUND_ERR?c():w()}))}),w)}),w)):void w())},q=p.prototype,r=function(a,b,c){return new p(a,b,c)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(a,b,c){return c||(a=o(a)),navigator.msSaveOrOpenBlob(a,b||"download")}:(q.abort=function(){var a=this;a.readyState=a.DONE,n(a,"abort")},q.readyState=q.INIT=0,q.WRITING=1,q.DONE=2,q.error=q.onwritestart=q.onprogress=q.onwrite=q.onabort=q.onerror=q.onwriteend=null,r)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof a&&a.exports?a.exports.saveAs=f:null!==c(106)&&null!=c(107)&&(d=[],e=function(){return f}.apply(b,d),!(void 0!==e&&(a.exports=e)))},function(a,b){a.exports=function(){throw new Error("define cannot be used indirect")}},function(a,b){(function(b){a.exports=b}).call(b,{})}]),window.pdfMake=window.pdfMake||{},window.pdfMake.vfs={"LICENSE.txt":"DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNA0KICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLw0KDQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04NCg0KICAgMS4gRGVmaW5pdGlvbnMuDQoNCiAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sDQogICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4NCg0KICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkNCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4NCg0KICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbA0KICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbg0KICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwNCiAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQ0KICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3INCiAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQ0KICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4NCg0KICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQ0KICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4NCg0KICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsDQogICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uDQogICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLg0KDQogICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbA0KICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dA0KICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLA0KICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLg0KDQogICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcg0KICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQ0KICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrDQogICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLg0KDQogICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0DQogICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlDQogICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zDQogICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3Nlcw0KICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluDQogICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsDQogICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLg0KDQogICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZw0KICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucw0KICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5DQogICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyDQogICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YNCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIg0KICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudA0KICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8NCiAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsDQogICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQ0KICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0DQogICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQ0KICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iDQoNCiAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5DQogICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQNCiAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLg0KDQogICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YNCiAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwNCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlDQogICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwNCiAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQ0KICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4NCg0KICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mDQogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsDQogICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQ0KICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsDQogICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywNCiAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlDQogICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcg0KICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQ0KICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UNCiAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhDQogICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrDQogICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdA0KICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcw0KICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlDQogICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuDQoNCiAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlDQogICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQNCiAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91DQogICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNCg0KICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3INCiAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZA0KDQogICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzDQogICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kDQoNCiAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3Jrcw0KICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQNCiAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLA0KICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YNCiAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kDQoNCiAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cw0KICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QNCiAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQNCiAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QNCiAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUNCiAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZA0KICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3INCiAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwNCiAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kDQogICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzDQogICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZA0KICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uDQogICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUNCiAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQNCiAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQNCiAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuDQoNCiAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZA0KICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucw0KICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcg0KICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsDQogICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgNCiAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuDQoNCiAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwNCiAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaw0KICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YNCiAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLg0KICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQ0KICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQNCiAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4NCg0KICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQ0KICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLA0KICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlDQogICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4NCg0KICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yDQogICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoDQogICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywNCiAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcg0KICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMNCiAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEENCiAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQ0KICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55DQogICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuDQoNCiAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LA0KICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsDQogICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQ0KICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUNCiAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwNCiAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQ0KICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQ0KICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLA0KICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwNCiAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3INCiAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4NCg0KICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZw0KICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwNCiAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksDQogICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcw0KICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkNCiAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmDQogICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksDQogICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkNCiAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24NCiAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5Lg0KDQogICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMNCg0KICAgQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLg0KDQogICAgICBUbyBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2luZw0KICAgICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIg0KICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUNCiAgICAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlDQogICAgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGENCiAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUNCiAgICAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcg0KICAgICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLg0KDQogICBDb3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0NCg0KICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQogICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQogICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCg0KICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KDQogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQogICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQogICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCg==",
+}},f.prototype._read=function(a){var b=this._transformState;i.isNull(b.writechunk)||!b.writecb||b.transforming?b.needTransform=!0:(b.transforming=!0,this._transform(b.writechunk,b.writeencoding,b.afterTransform))}},function(a,b,c){function d(a){return this instanceof d?void e.call(this,a):new d(a)}a.exports=d;var e=c(38),f=c(32);f.inherits=c(33),f.inherits(d,e),d.prototype._transform=function(a,b,c){c(null,a)}},function(a,b,c){a.exports=c(36)},function(a,b,c){a.exports=c(35)},function(a,b,c){a.exports=c(38)},function(a,b,c){a.exports=c(39)},function(a,b,c){(function(b,c){"use strict";function d(){this.fileSystem={},this.baseSystem={}}function e(a){return 0===a.indexOf(c)&&(a=a.substring(c.length)),0===a.indexOf("/")&&(a=a.substring(1)),a}d.prototype.readFileSync=function(a){a=e(a);var c=this.baseSystem[a];return c?new b(c,"base64"):this.fileSystem[a]},d.prototype.writeFileSync=function(a,b){this.fileSystem[e(a)]=b},d.prototype.bindFS=function(a){this.baseSystem=a},a.exports=new d}).call(b,c(2).Buffer,"/")},function(a,b,c){(function(b){(function(){var d,e;d=function(){function a(){}var c,d,f,g;return f=function(a,b){return(Array(b+1).join("0")+a).slice(-b)},d=/[\n\r\t\b\f\(\)\\]/g,c={"\n":"\\n","\r":"\\r","      ":"\\t","\b":"\\b","\f":"\\f","\\":"\\\\","(":"\\(",")":"\\)"},g=function(a){var b,c,d,e,f;if(d=a.length,1&d)throw new Error("Buffer length must be even");for(c=e=0,f=d-1;f>e;c=e+=2)b=a[c],a[c]=a[c+1],a[c+1]=b;return a},a.convert=function(h){var i,j,k,l,m,n,o,p,q,r;if("string"==typeof h)return"/"+h;if(h instanceof String){for(o=h.replace(d,function(a){return c[a]}),k=!1,j=q=0,r=o.length;r>q;j=q+=1)if(o.charCodeAt(j)>127){k=!0;break}return k&&(o=g(new b("\ufeff"+o,"utf16le")).toString("binary")),"("+o+")"}if(b.isBuffer(h))return"<"+h.toString("hex")+">";if(h instanceof e)return h.toString();if(h instanceof Date)return"(D:"+f(h.getUTCFullYear(),4)+f(h.getUTCMonth(),2)+f(h.getUTCDate(),2)+f(h.getUTCHours(),2)+f(h.getUTCMinutes(),2)+f(h.getUTCSeconds(),2)+"Z)";if(Array.isArray(h))return l=function(){var b,c,d;for(d=[],b=0,c=h.length;c>b;b++)i=h[b],d.push(a.convert(i));return d}().join(" "),"["+l+"]";if("[object Object]"==={}.toString.call(h)){n=["<<"];for(m in h)p=h[m],n.push("/"+m+" "+a.convert(p));return n.push(">>"),n.join("\n")}return""+h},a}(),a.exports=d,e=c(46)}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(b){(function(){var d,e,f,g=function(a,b){return function(){return a.apply(b,arguments)}};f=c(47),e=function(){function a(a,b,c){this.document=a,this.id=b,this.data=null!=c?c:{},this.finalize=g(this.finalize,this),this.gen=0,this.deflate=null,this.compress=this.document.compress&&!this.data.Filter,this.uncompressedLength=0,this.chunks=[]}return a.prototype.initDeflate=function(){return this.data.Filter="FlateDecode",this.deflate=f.createDeflate(),this.deflate.on("data",function(a){return function(b){return a.chunks.push(b),a.data.Length+=b.length}}(this)),this.deflate.on("end",this.finalize)},a.prototype.write=function(a){var c;return b.isBuffer(a)||(a=new b(a+"\n","binary")),this.uncompressedLength+=a.length,null==(c=this.data).Length&&(c.Length=0),this.compress?(this.deflate||this.initDeflate(),this.deflate.write(a)):(this.chunks.push(a),this.data.Length+=a.length)},a.prototype.end=function(a){return("string"==typeof a||b.isBuffer(a))&&this.write(a),this.deflate?this.deflate.end():this.finalize()},a.prototype.finalize=function(){var a,b,c,e;if(this.offset=this.document._offset,this.document._write(""+this.id+" "+this.gen+" obj"),this.document._write(d.convert(this.data)),this.chunks.length){for(this.document._write("stream"),e=this.chunks,b=0,c=e.length;c>b;b++)a=e[b],this.document._write(a);this.chunks.length=0,this.document._write("\nendstream")}return this.document._write("endobj"),this.document._refEnd(this)},a.prototype.toString=function(){return""+this.id+" "+this.gen+" R"},a}(),a.exports=e,d=c(45)}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(a,d){function e(b,c,d){function e(){for(var a;null!==(a=b.read());)h.push(a),i+=a.length;b.once("readable",e)}function f(a){b.removeListener("end",g),b.removeListener("readable",e),d(a)}function g(){var c=a.concat(h,i);h=[],d(null,c),b.close()}var h=[],i=0;b.on("error",f),b.on("end",g),b.end(c),e()}function f(b,c){if("string"==typeof c&&(c=new a(c)),!a.isBuffer(c))throw new TypeError("Not a string or buffer");var d=p.Z_FINISH;return b._processChunk(c,d)}function g(a){return this instanceof g?void n.call(this,a,p.DEFLATE):new g(a)}function h(a){return this instanceof h?void n.call(this,a,p.INFLATE):new h(a)}function i(a){return this instanceof i?void n.call(this,a,p.GZIP):new i(a)}function j(a){return this instanceof j?void n.call(this,a,p.GUNZIP):new j(a)}function k(a){return this instanceof k?void n.call(this,a,p.DEFLATERAW):new k(a)}function l(a){return this instanceof l?void n.call(this,a,p.INFLATERAW):new l(a)}function m(a){return this instanceof m?void n.call(this,a,p.UNZIP):new m(a)}function n(c,d){if(this._opts=c=c||{},this._chunkSize=c.chunkSize||b.Z_DEFAULT_CHUNK,o.call(this,c),c.flush&&c.flush!==p.Z_NO_FLUSH&&c.flush!==p.Z_PARTIAL_FLUSH&&c.flush!==p.Z_SYNC_FLUSH&&c.flush!==p.Z_FULL_FLUSH&&c.flush!==p.Z_FINISH&&c.flush!==p.Z_BLOCK)throw new Error("Invalid flush flag: "+c.flush);if(this._flushFlag=c.flush||p.Z_NO_FLUSH,c.chunkSize&&(c.chunkSize<b.Z_MIN_CHUNK||c.chunkSize>b.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+c.chunkSize);if(c.windowBits&&(c.windowBits<b.Z_MIN_WINDOWBITS||c.windowBits>b.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+c.windowBits);if(c.level&&(c.level<b.Z_MIN_LEVEL||c.level>b.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+c.level);if(c.memLevel&&(c.memLevel<b.Z_MIN_MEMLEVEL||c.memLevel>b.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+c.memLevel);if(c.strategy&&c.strategy!=b.Z_FILTERED&&c.strategy!=b.Z_HUFFMAN_ONLY&&c.strategy!=b.Z_RLE&&c.strategy!=b.Z_FIXED&&c.strategy!=b.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+c.strategy);if(c.dictionary&&!a.isBuffer(c.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new p.Zlib(d);var e=this;this._hadError=!1,this._binding.onerror=function(a,c){e._binding=null,e._hadError=!0;var d=new Error(a);d.errno=c,d.code=b.codes[c],e.emit("error",d)};var f=b.Z_DEFAULT_COMPRESSION;"number"==typeof c.level&&(f=c.level);var g=b.Z_DEFAULT_STRATEGY;"number"==typeof c.strategy&&(g=c.strategy),this._binding.init(c.windowBits||b.Z_DEFAULT_WINDOWBITS,f,c.memLevel||b.Z_DEFAULT_MEMLEVEL,g,c.dictionary),this._buffer=new a(this._chunkSize),this._offset=0,this._closed=!1,this._level=f,this._strategy=g,this.once("end",this.close)}var o=c(42),p=c(48),q=c(60),r=c(63).ok;p.Z_MIN_WINDOWBITS=8,p.Z_MAX_WINDOWBITS=15,p.Z_DEFAULT_WINDOWBITS=15,p.Z_MIN_CHUNK=64,p.Z_MAX_CHUNK=1/0,p.Z_DEFAULT_CHUNK=16384,p.Z_MIN_MEMLEVEL=1,p.Z_MAX_MEMLEVEL=9,p.Z_DEFAULT_MEMLEVEL=8,p.Z_MIN_LEVEL=-1,p.Z_MAX_LEVEL=9,p.Z_DEFAULT_LEVEL=p.Z_DEFAULT_COMPRESSION,Object.keys(p).forEach(function(a){a.match(/^Z/)&&(b[a]=p[a])}),b.codes={Z_OK:p.Z_OK,Z_STREAM_END:p.Z_STREAM_END,Z_NEED_DICT:p.Z_NEED_DICT,Z_ERRNO:p.Z_ERRNO,Z_STREAM_ERROR:p.Z_STREAM_ERROR,Z_DATA_ERROR:p.Z_DATA_ERROR,Z_MEM_ERROR:p.Z_MEM_ERROR,Z_BUF_ERROR:p.Z_BUF_ERROR,Z_VERSION_ERROR:p.Z_VERSION_ERROR},Object.keys(b.codes).forEach(function(a){b.codes[b.codes[a]]=a}),b.Deflate=g,b.Inflate=h,b.Gzip=i,b.Gunzip=j,b.DeflateRaw=k,b.InflateRaw=l,b.Unzip=m,b.createDeflate=function(a){return new g(a)},b.createInflate=function(a){return new h(a)},b.createDeflateRaw=function(a){return new k(a)},b.createInflateRaw=function(a){return new l(a)},b.createGzip=function(a){return new i(a)},b.createGunzip=function(a){return new j(a)},b.createUnzip=function(a){return new m(a)},b.deflate=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new g(b),a,c)},b.deflateSync=function(a,b){return f(new g(b),a)},b.gzip=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new i(b),a,c)},b.gzipSync=function(a,b){return f(new i(b),a)},b.deflateRaw=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new k(b),a,c)},b.deflateRawSync=function(a,b){return f(new k(b),a)},b.unzip=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new m(b),a,c)},b.unzipSync=function(a,b){return f(new m(b),a)},b.inflate=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new h(b),a,c)},b.inflateSync=function(a,b){return f(new h(b),a)},b.gunzip=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new j(b),a,c)},b.gunzipSync=function(a,b){return f(new j(b),a)},b.inflateRaw=function(a,b,c){return"function"==typeof b&&(c=b,b={}),e(new l(b),a,c)},b.inflateRawSync=function(a,b){return f(new l(b),a)},q.inherits(n,o),n.prototype.params=function(a,c,e){if(a<b.Z_MIN_LEVEL||a>b.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+a);if(c!=b.Z_FILTERED&&c!=b.Z_HUFFMAN_ONLY&&c!=b.Z_RLE&&c!=b.Z_FIXED&&c!=b.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+c);if(this._level!==a||this._strategy!==c){var f=this;this.flush(p.Z_SYNC_FLUSH,function(){f._binding.params(a,c),f._hadError||(f._level=a,f._strategy=c,e&&e())})}else d.nextTick(e)},n.prototype.reset=function(){return this._binding.reset()},n.prototype._flush=function(b){this._transform(new a(0),"",b)},n.prototype.flush=function(b,c){var e=this._writableState;if(("function"==typeof b||void 0===b&&!c)&&(c=b,b=p.Z_FULL_FLUSH),e.ended)c&&d.nextTick(c);else if(e.ending)c&&this.once("end",c);else if(e.needDrain){var f=this;this.once("drain",function(){f.flush(c)})}else this._flushFlag=b,this.write(new a(0),"",c)},n.prototype.close=function(a){if(a&&d.nextTick(a),!this._closed){this._closed=!0,this._binding.close();var b=this;d.nextTick(function(){b.emit("close")})}},n.prototype._transform=function(b,c,d){var e,f=this._writableState,g=f.ending||f.ended,h=g&&(!b||f.length===b.length);if(null===!b&&!a.isBuffer(b))return d(new Error("invalid input"));h?e=p.Z_FINISH:(e=this._flushFlag,b.length>=f.length&&(this._flushFlag=this._opts.flush||p.Z_NO_FLUSH));this._processChunk(b,e,d)},n.prototype._processChunk=function(b,c,d){function e(k,n){if(!i._hadError){var o=g-n;if(r(o>=0,"have should not go down"),o>0){var p=i._buffer.slice(i._offset,i._offset+o);i._offset+=o,j?i.push(p):(l.push(p),m+=p.length)}if((0===n||i._offset>=i._chunkSize)&&(g=i._chunkSize,i._offset=0,i._buffer=new a(i._chunkSize)),0===n){if(h+=f-k,f=k,!j)return!0;var q=i._binding.write(c,b,h,f,i._buffer,i._offset,i._chunkSize);return q.callback=e,void(q.buffer=b)}return j?void d():!1}}var f=b&&b.length,g=this._chunkSize-this._offset,h=0,i=this,j="function"==typeof d;if(!j){var k,l=[],m=0;this.on("error",function(a){k=a});do var n=this._binding.writeSync(c,b,h,f,this._buffer,this._offset,g);while(!this._hadError&&e(n[0],n[1]));if(this._hadError)throw k;var o=a.concat(l,m);return this.close(),o}var p=this._binding.write(c,b,h,f,this._buffer,this._offset,g);p.buffer=b,p.callback=e},q.inherits(g,n),q.inherits(h,n),q.inherits(i,n),q.inherits(j,n),q.inherits(k,n),q.inherits(l,n),q.inherits(m,n)}).call(b,c(2).Buffer,c(30))},function(a,b,c){(function(a,d){function e(a){if(a<b.DEFLATE||a>b.UNZIP)throw new TypeError("Bad argument");this.mode=a,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}function f(a,b){for(var c=0;c<a.length;c++)this[b+c]=a[c]}var g=c(49),h=c(50),i=c(51),j=c(56),k=c(59);for(var l in k)b[l]=k[l];b.NONE=0,b.DEFLATE=1,b.INFLATE=2,b.GZIP=3,b.GUNZIP=4,b.DEFLATERAW=5,b.INFLATERAW=6,b.UNZIP=7,e.prototype.init=function(a,c,d,e,f){switch(this.windowBits=a,this.level=c,this.memLevel=d,this.strategy=e,this.mode!==b.GZIP&&this.mode!==b.GUNZIP||(this.windowBits+=16),this.mode===b.UNZIP&&(this.windowBits+=32),this.mode!==b.DEFLATERAW&&this.mode!==b.INFLATERAW||(this.windowBits=-this.windowBits),this.strm=new h,this.mode){case b.DEFLATE:case b.GZIP:case b.DEFLATERAW:var g=i.deflateInit2(this.strm,this.level,b.Z_DEFLATED,this.windowBits,this.memLevel,this.strategy);break;case b.INFLATE:case b.GUNZIP:case b.INFLATERAW:case b.UNZIP:var g=j.inflateInit2(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}return g!==b.Z_OK?void this._error(g):(this.write_in_progress=!1,void(this.init_done=!0))},e.prototype.params=function(){throw new Error("deflateParams Not supported")},e.prototype._writeCheck=function(){if(!this.init_done)throw new Error("write before init");if(this.mode===b.NONE)throw new Error("already finalized");if(this.write_in_progress)throw new Error("write already in progress");if(this.pending_close)throw new Error("close is pending")},e.prototype.write=function(b,c,d,e,f,g,h){this._writeCheck(),this.write_in_progress=!0;var i=this;return a.nextTick(function(){i.write_in_progress=!1;var a=i._write(b,c,d,e,f,g,h);i.callback(a[0],a[1]),i.pending_close&&i.close()}),this},e.prototype.writeSync=function(a,b,c,d,e,f,g){return this._writeCheck(),this._write(a,b,c,d,e,f,g)},e.prototype._write=function(a,c,e,g,h,k,l){if(this.write_in_progress=!0,a!==b.Z_NO_FLUSH&&a!==b.Z_PARTIAL_FLUSH&&a!==b.Z_SYNC_FLUSH&&a!==b.Z_FULL_FLUSH&&a!==b.Z_FINISH&&a!==b.Z_BLOCK)throw new Error("Invalid flush value");null==c&&(c=new d(0),g=0,e=0),h._set?h.set=h._set:h.set=f;var m=this.strm;switch(m.avail_in=g,m.input=c,m.next_in=e,m.avail_out=l,m.output=h,m.next_out=k,this.mode){case b.DEFLATE:case b.GZIP:case b.DEFLATERAW:var n=i.deflate(m,a);break;case b.UNZIP:case b.INFLATE:case b.GUNZIP:case b.INFLATERAW:var n=j.inflate(m,a);break;default:throw new Error("Unknown mode "+this.mode)}return n!==b.Z_STREAM_END&&n!==b.Z_OK&&this._error(n),this.write_in_progress=!1,[m.avail_in,m.avail_out]},e.prototype.close=function(){return this.write_in_progress?void(this.pending_close=!0):(this.pending_close=!1,this.mode===b.DEFLATE||this.mode===b.GZIP||this.mode===b.DEFLATERAW?i.deflateEnd(this.strm):j.inflateEnd(this.strm),void(this.mode=b.NONE))},e.prototype.reset=function(){switch(this.mode){case b.DEFLATE:case b.DEFLATERAW:var a=i.deflateReset(this.strm);break;case b.INFLATE:case b.INFLATERAW:var a=j.inflateReset(this.strm)}a!==b.Z_OK&&this._error(a)},e.prototype._error=function(a){this.onerror(g[a]+": "+this.strm.msg,a),this.write_in_progress=!1,this.pending_close&&this.close()},b.Zlib=e}).call(b,c(30),c(2).Buffer)},function(a,b){"use strict";a.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},function(a,b){"use strict";function c(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}a.exports=c},function(a,b,c){"use strict";function d(a,b){return a.msg=G[b],b}function e(a){return(a<<1)-(a>4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(C.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){D._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,C.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=E(a.adler,b,e,c):2===a.state.wrap&&(a.adler=F(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-ja?a.strstart-(a.w_size-ja):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ia,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&m>f);if(d=ia-(m-f),f=m-ia,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-ja)){C.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=ha)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+1])&a.hash_mask;a.insert&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+ha-1])&a.hash_mask,a.prev[f&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=f,f++,a.insert--,!(a.lookahead+a.insert<ha)););}while(a.lookahead<ja&&0!==a.strm.avail_in)}function n(a,b){var c=65535;for(c>a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===H)return sa;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return sa;if(a.strstart-a.block_start>=a.w_size-ja&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?sa:sa}function o(a,b){for(var c,d;;){if(a.lookahead<ja){if(m(a),a.lookahead<ja&&b===H)return sa;if(0===a.lookahead)break}if(c=0,a.lookahead>=ha&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ha-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),0!==c&&a.strstart-c<=a.w_size-ja&&(a.match_length=l(a,c)),a.match_length>=ha)if(d=D._tr_tally(a,a.strstart-a.match_start,a.match_length-ha),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=ha){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ha-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart;while(0!==--a.match_length);a.strstart++}else a.strstart+=a.match_length,a.match_length=0,a.ins_h=a.window[a.strstart],a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+1])&a.hash_mask;else d=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(d&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=a.strstart<ha-1?a.strstart:ha-1,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sa:ta}function p(a,b){for(var c,d,e;;){if(a.lookahead<ja){if(m(a),a.lookahead<ja&&b===H)return sa;if(0===a.lookahead)break}if(c=0,a.lookahead>=ha&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ha-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),a.prev_length=a.match_length,a.prev_match=a.match_start,a.match_length=ha-1,0!==c&&a.prev_length<a.max_lazy_match&&a.strstart-c<=a.w_size-ja&&(a.match_length=l(a,c),a.match_length<=5&&(a.strategy===S||a.match_length===ha&&a.strstart-a.match_start>4096)&&(a.match_length=ha-1)),a.prev_length>=ha&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-ha,d=D._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-ha),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ha-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart);while(0!==--a.prev_length);if(a.match_available=0,a.match_length=ha-1,a.strstart++,d&&(h(a,!1),0===a.strm.avail_out))return sa}else if(a.match_available){if(d=D._tr_tally(a,0,a.window[a.strstart-1]),d&&h(a,!1),a.strstart++,a.lookahead--,0===a.strm.avail_out)return sa}else a.match_available=1,a.strstart++,a.lookahead--}return a.match_available&&(d=D._tr_tally(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<ha-1?a.strstart:ha-1,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sa:ta}function q(a,b){for(var c,d,e,f,g=a.window;;){if(a.lookahead<=ia){if(m(a),a.lookahead<=ia&&b===H)return sa;if(0===a.lookahead)break}if(a.match_length=0,a.lookahead>=ha&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ia;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&f>e);a.match_length=ia-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=ha?(c=D._tr_tally(a,1,a.match_length-ha),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sa:ta}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===H)return sa;break}if(a.match_length=0,c=D._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return sa}return a.insert=0,b===K?(h(a,!0),0===a.strm.avail_out?ua:va):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?sa:ta}function s(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=B[a.level].max_lazy,a.good_match=B[a.level].good_length,a.nice_match=B[a.level].nice_length,a.max_chain_length=B[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=ha-1,a.match_available=0,a.ins_h=0}function t(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Y,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new C.Buf16(2*fa),this.dyn_dtree=new C.Buf16(2*(2*da+1)),this.bl_tree=new C.Buf16(2*(2*ea+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new C.Buf16(ga+1),this.heap=new C.Buf16(2*ca+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new C.Buf16(2*ca+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function u(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=X,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?la:qa,a.adler=2===b.wrap?0:1,b.last_flush=H,D._tr_init(b),M):d(a,O)}function v(a){var b=u(a);return b===M&&s(a.state),b}function w(a,b){return a&&a.state?2!==a.state.wrap?O:(a.state.gzhead=b,M):O}function x(a,b,c,e,f,g){if(!a)return O;var h=1;if(b===R&&(b=6),0>e?(h=0,e=-e):e>15&&(h=2,e-=16),1>f||f>Z||c!==Y||8>e||e>15||0>b||b>9||0>g||g>V)return d(a,O);8===e&&(e=9);var i=new t;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<<i.w_bits,i.w_mask=i.w_size-1,i.hash_bits=f+7,i.hash_size=1<<i.hash_bits,i.hash_mask=i.hash_size-1,i.hash_shift=~~((i.hash_bits+ha-1)/ha),i.window=new C.Buf8(2*i.w_size),i.head=new C.Buf16(i.hash_size),i.prev=new C.Buf16(i.w_size),i.lit_bufsize=1<<f+6,i.pending_buf_size=4*i.lit_bufsize,i.pending_buf=new C.Buf8(i.pending_buf_size),i.d_buf=i.lit_bufsize>>1,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,v(a)}function y(a,b){return x(a,b,Y,$,_,W)}function z(a,b){var c,h,k,l;if(!a||!a.state||b>L||0>b)return a?d(a,O):O;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===ra&&b!==K)return d(a,0===a.avail_out?Q:O);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===la)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=T||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=F(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=ma):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=T||h.level<2?4:0),i(h,wa),h.status=qa);else{var m=Y+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=T||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=ka),m+=31-m%31,h.status=qa,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===ma)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=na)}else h.status=na;if(h.status===na)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.name.length?255&h.gzhead.name.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=oa)}else h.status=oa;if(h.status===oa)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.comment.length?255&h.gzhead.comment.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=F(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=pa)}else h.status=pa;if(h.status===pa&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=qa)):h.status=qa),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,M}else if(0===a.avail_in&&e(b)<=e(c)&&b!==K)return d(a,Q);if(h.status===ra&&0!==a.avail_in)return d(a,Q);if(0!==a.avail_in||0!==h.lookahead||b!==H&&h.status!==ra){var o=h.strategy===T?r(h,b):h.strategy===U?q(h,b):B[h.level].func(h,b);if(o!==ua&&o!==va||(h.status=ra),o===sa||o===ua)return 0===a.avail_out&&(h.last_flush=-1),M;if(o===ta&&(b===I?D._tr_align(h):b!==L&&(D._tr_stored_block(h,0,0,!1),b===J&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,M}return b!==K?M:h.wrap<=0?N:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?M:N)}function A(a){var b;return a&&a.state?(b=a.state.status,b!==la&&b!==ma&&b!==na&&b!==oa&&b!==pa&&b!==qa&&b!==ra?d(a,O):(a.state=null,b===qa?d(a,P):M)):O}var B,C=c(52),D=c(53),E=c(54),F=c(55),G=c(49),H=0,I=1,J=3,K=4,L=5,M=0,N=1,O=-2,P=-3,Q=-5,R=-1,S=1,T=2,U=3,V=4,W=0,X=2,Y=8,Z=9,$=15,_=8,aa=29,ba=256,ca=ba+1+aa,da=30,ea=19,fa=2*ca+1,ga=15,ha=3,ia=258,ja=ia+ha+1,ka=32,la=42,ma=69,na=73,oa=91,pa=103,qa=113,ra=666,sa=1,ta=2,ua=3,va=4,wa=3,xa=function(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e};B=[new xa(0,0,0,0,n),new xa(4,4,8,4,o),new xa(4,5,16,8,o),new xa(4,6,32,32,o),new xa(4,4,16,16,p),new xa(8,16,32,32,p),new xa(8,16,128,128,p),new xa(8,32,128,256,p),new xa(32,128,258,1024,p),new xa(32,258,258,4096,p)],b.deflateInit=y,b.deflateInit2=x,b.deflateReset=v,b.deflateResetKeep=u,b.deflateSetHeader=w,b.deflate=z,b.deflateEnd=A,b.deflateInfo="pako deflate (from Nodeca project)"},function(a,b){"use strict";var c="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;b.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},b.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var d={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;c>b;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;c>b;b++)f=a[b],g.set(f,e),e+=f.length;return g}},e={arraySet:function(a,b,c,d,e){for(var f=0;d>f;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};b.setTyped=function(a){a?(b.Buf8=Uint8Array,b.Buf16=Uint16Array,b.Buf32=Int32Array,b.assign(b,d)):(b.Buf8=Array,b.Buf16=Array,b.Buf32=Array,b.assign(b,e))},b.setTyped(c)},function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a){return 256>a?ga[a]:ga[256+(a>>>7)]}function f(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function g(a,b,c){a.bi_valid>V-c?(a.bi_buf|=b<<a.bi_valid&65535,f(a,a.bi_buf),a.bi_buf=b>>V-a.bi_valid,a.bi_valid+=c-V):(a.bi_buf|=b<<a.bi_valid&65535,a.bi_valid+=c)}function h(a,b,c){g(a,c[2*b],c[2*b+1])}function i(a,b){var c=0;do c|=1&a,a>>>=1,c<<=1;while(--b>0);return c>>>1}function j(a){16===a.bi_valid?(f(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function k(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;U>=f;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,c=a.heap_max+1;T>c;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function l(a,b,c){var d,e,f=new Array(U+1),g=0;for(d=1;U>=d;d++)f[d]=g=g+c[d-1]<<1;for(e=0;b>=e;e++){var h=a[2*e+1];0!==h&&(a[2*e]=i(f[h]++,h))}}function m(){var a,b,c,d,e,f=new Array(U+1);for(c=0,d=0;O-1>d;d++)for(ia[d]=c,a=0;a<1<<_[d];a++)ha[c++]=d;for(ha[c-1]=d,e=0,d=0;16>d;d++)for(ja[d]=e,a=0;a<1<<aa[d];a++)ga[e++]=d;for(e>>=7;R>d;d++)for(ja[d]=e<<7,a=0;a<1<<aa[d]-7;a++)ga[256+e++]=d;for(b=0;U>=b;b++)f[b]=0;for(a=0;143>=a;)ea[2*a+1]=8,a++,f[8]++;for(;255>=a;)ea[2*a+1]=9,a++,f[9]++;for(;279>=a;)ea[2*a+1]=7,a++,f[7]++;for(;287>=a;)ea[2*a+1]=8,a++,f[8]++;for(l(ea,Q+1,f),a=0;R>a;a++)fa[2*a+1]=5,fa[2*a]=i(a,5);ka=new na(ea,_,P+1,Q,U),la=new na(fa,aa,0,R,U),ma=new na(new Array(0),ba,0,S,W)}function n(a){var b;for(b=0;Q>b;b++)a.dyn_ltree[2*b]=0;for(b=0;R>b;b++)a.dyn_dtree[2*b]=0;for(b=0;S>b;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*X]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function o(a){a.bi_valid>8?f(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function p(a,b,c,d){o(a),d&&(f(a,c),f(a,~c)),E.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function q(a,b,c,d){var e=2*b,f=2*c;return a[e]<a[f]||a[e]===a[f]&&d[b]<=d[c]}function r(a,b,c){for(var d=a.heap[c],e=c<<1;e<=a.heap_len&&(e<a.heap_len&&q(b,a.heap[e+1],a.heap[e],a.depth)&&e++,!q(b,d,a.heap[e],a.depth));)a.heap[c]=a.heap[e],
+c=e,e<<=1;a.heap[c]=d}function s(a,b,c){var d,f,i,j,k=0;if(0!==a.last_lit)do d=a.pending_buf[a.d_buf+2*k]<<8|a.pending_buf[a.d_buf+2*k+1],f=a.pending_buf[a.l_buf+k],k++,0===d?h(a,f,b):(i=ha[f],h(a,i+P+1,b),j=_[i],0!==j&&(f-=ia[i],g(a,f,j)),d--,i=e(d),h(a,i,c),j=aa[i],0!==j&&(d-=ja[i],g(a,d,j)));while(k<a.last_lit);h(a,X,b)}function t(a,b){var c,d,e,f=b.dyn_tree,g=b.stat_desc.static_tree,h=b.stat_desc.has_stree,i=b.stat_desc.elems,j=-1;for(a.heap_len=0,a.heap_max=T,c=0;i>c;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=2>j?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)r(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],r(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,r(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],k(a,b),l(f,j,a.bl_count)}function u(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;c>=d;d++)e=g,g=b[2*(d+1)+1],++h<i&&e===g||(j>h?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*Y]++):10>=h?a.bl_tree[2*Z]++:a.bl_tree[2*$]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function v(a,b,c){var d,e,f=-1,i=b[1],j=0,k=7,l=4;for(0===i&&(k=138,l=3),d=0;c>=d;d++)if(e=i,i=b[2*(d+1)+1],!(++j<k&&e===i)){if(l>j){do h(a,e,a.bl_tree);while(0!==--j)}else 0!==e?(e!==f&&(h(a,e,a.bl_tree),j--),h(a,Y,a.bl_tree),g(a,j-3,2)):10>=j?(h(a,Z,a.bl_tree),g(a,j-3,3)):(h(a,$,a.bl_tree),g(a,j-11,7));j=0,f=e,0===i?(k=138,l=3):e===i?(k=6,l=3):(k=7,l=4)}}function w(a){var b;for(u(a,a.dyn_ltree,a.l_desc.max_code),u(a,a.dyn_dtree,a.d_desc.max_code),t(a,a.bl_desc),b=S-1;b>=3&&0===a.bl_tree[2*ca[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function x(a,b,c,d){var e;for(g(a,b-257,5),g(a,c-1,5),g(a,d-4,4),e=0;d>e;e++)g(a,a.bl_tree[2*ca[e]+1],3);v(a,a.dyn_ltree,b-1),v(a,a.dyn_dtree,c-1)}function y(a){var b,c=4093624447;for(b=0;31>=b;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return G;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return H;for(b=32;P>b;b++)if(0!==a.dyn_ltree[2*b])return H;return G}function z(a){pa||(m(),pa=!0),a.l_desc=new oa(a.dyn_ltree,ka),a.d_desc=new oa(a.dyn_dtree,la),a.bl_desc=new oa(a.bl_tree,ma),a.bi_buf=0,a.bi_valid=0,n(a)}function A(a,b,c,d){g(a,(J<<1)+(d?1:0),3),p(a,b,c,!0)}function B(a){g(a,K<<1,3),h(a,X,ea),j(a)}function C(a,b,c,d){var e,f,h=0;a.level>0?(a.strm.data_type===I&&(a.strm.data_type=y(a)),t(a,a.l_desc),t(a,a.d_desc),h=w(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,e>=f&&(e=f)):e=f=c+5,e>=c+4&&-1!==b?A(a,b,c,d):a.strategy===F||f===e?(g(a,(K<<1)+(d?1:0),3),s(a,ea,fa)):(g(a,(L<<1)+(d?1:0),3),x(a,a.l_desc.max_code+1,a.d_desc.max_code+1,h+1),s(a,a.dyn_ltree,a.dyn_dtree)),n(a),d&&o(a)}function D(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ha[c]+P+1)]++,a.dyn_dtree[2*e(b)]++),a.last_lit===a.lit_bufsize-1}var E=c(52),F=4,G=0,H=1,I=2,J=0,K=1,L=2,M=3,N=258,O=29,P=256,Q=P+1+O,R=30,S=19,T=2*Q+1,U=15,V=16,W=7,X=256,Y=16,Z=17,$=18,_=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],aa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ba=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],da=512,ea=new Array(2*(Q+2));d(ea);var fa=new Array(2*R);d(fa);var ga=new Array(da);d(ga);var ha=new Array(N-M+1);d(ha);var ia=new Array(O);d(ia);var ja=new Array(R);d(ja);var ka,la,ma,na=function(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length},oa=function(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b},pa=!1;b._tr_init=z,b._tr_stored_block=A,b._tr_flush_block=C,b._tr_tally=D,b._tr_align=B},function(a,b){"use strict";function c(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0}a.exports=c},function(a,b){"use strict";function c(){for(var a,b=[],c=0;256>c;c++){a=c;for(var d=0;8>d;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function d(a,b,c,d){var f=e,g=d+c;a=-1^a;for(var h=d;g>h;h++)a=a>>>8^f[255&(a^b[h])];return-1^a}var e=c();a.exports=d},function(a,b,c){"use strict";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=K,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new r.Buf32(oa),b.distcode=b.distdyn=new r.Buf32(pa),b.sane=1,b.back=-1,C):F}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):F}function h(a,b){var c,d;return a&&a.state?(d=a.state,0>b?(c=0,b=-b):(c=(b>>4)+1,48>b&&(b&=15)),b&&(8>b||b>15)?F:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):F}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==C&&(a.state=null),c):F}function j(a){return i(a,ra)}function k(a){if(sa){var b;for(p=new r.Buf32(512),q=new r.Buf32(32),b=0;144>b;)a.lens[b++]=8;for(;256>b;)a.lens[b++]=9;for(;280>b;)a.lens[b++]=7;for(;288>b;)a.lens[b++]=8;for(v(x,a.lens,0,288,p,0,a.work,{bits:9}),b=0;32>b;)a.lens[b++]=5;v(y,a.lens,0,32,q,0,a.work,{bits:5}),sa=!1}a.lencode=p,a.lenbits=9,a.distcode=q,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<<f.wbits,f.wnext=0,f.whave=0,f.window=new r.Buf8(f.wsize)),d>=f.wsize?(r.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),r.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(r.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whave<f.wsize&&(f.whave+=e))),0}function m(a,b){var c,e,f,g,h,i,j,m,n,o,p,q,oa,pa,qa,ra,sa,ta,ua,va,wa,xa,ya,za,Aa=0,Ba=new r.Buf8(4),Ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!a||!a.state||!a.output||!a.input&&0!==a.avail_in)return F;c=a.state,c.mode===V&&(c.mode=W),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,o=i,p=j,xa=C;a:for(;;)switch(c.mode){case K:if(0===c.wrap){c.mode=W;break}for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(2&c.wrap&&35615===m){c.check=0,Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=t(c.check,Ba,2,0),m=0,n=0,c.mode=L;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=la;break}if((15&m)!==J){a.msg="unknown compression method",c.mode=la;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg="invalid window size",c.mode=la;break}c.dmax=1<<wa,a.adler=c.check=1,c.mode=512&m?T:V,m=0,n=0;break;case L:for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.flags=m,(255&c.flags)!==J){a.msg="unknown compression method",c.mode=la;break}if(57344&c.flags){a.msg="unknown header flags set",c.mode=la;break}c.head&&(c.head.text=m>>8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=t(c.check,Ba,2,0)),m=0,n=0,c.mode=M;case M:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.time=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=t(c.check,Ba,4,0)),m=0,n=0,c.mode=N;case N:for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.xflags=255&m,c.head.os=m>>8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=t(c.check,Ba,2,0)),m=0,n=0,c.mode=O;case O:if(1024&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length=m,c.head&&(c.head.extra_len=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=t(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=P;case P:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),r.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=Q;case Q:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&i>q);if(512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=R;case R:if(4096&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.comment+=String.fromCharCode(wa));while(wa&&i>q);if(512&c.flags&&(c.check=t(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.comment=null);c.mode=S;case S:if(512&c.flags){for(;16>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(65535&c.check)){a.msg="header crc mismatch",c.mode=la;break}m=0,n=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=V;break;case T:for(;32>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}a.adler=c.check=d(m),m=0,n=0,c.mode=U;case U:if(0===c.havedict)return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,E;a.adler=c.check=1,c.mode=V;case V:if(b===A||b===B)break a;case W:if(c.last){m>>>=7&n,n-=7&n,c.mode=ia;break}for(;3>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}switch(c.last=1&m,m>>>=1,n-=1,3&m){case 0:c.mode=X;break;case 1:if(k(c),c.mode=ba,b===B){m>>>=2,n-=2;break a}break;case 2:c.mode=$;break;case 3:a.msg="invalid block type",c.mode=la}m>>>=2,n-=2;break;case X:for(m>>>=7&n,n-=7&n;32>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if((65535&m)!==(m>>>16^65535)){a.msg="invalid stored block lengths",c.mode=la;break}if(c.length=65535&m,m=0,n=0,c.mode=Y,b===B)break a;case Y:c.mode=Z;case Z:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;r.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=V;break;case $:for(;14>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.nlen=(31&m)+257,m>>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=la;break}c.have=0,c.mode=_;case _:for(;c.have<c.ncode;){for(;3>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.lens[Ca[c.have++]]=7&m,m>>>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=v(w,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid code lengths set",c.mode=la;break}c.have=0,c.mode=aa;case aa:for(;c.have<c.nlen+c.ndist;){for(;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(16>sa)m>>>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;za>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m>>>=qa,n-=qa,0===c.have){a.msg="invalid bit length repeat",c.mode=la;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;za>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;za>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=la;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===la)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=la;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=v(x,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid literal/lengths set",c.mode=la;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=v(y,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg="invalid distances set",c.mode=la;break}if(c.mode=ba,b===B)break a;case ba:c.mode=ca;case ca:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,u(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===V&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(ra&&0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.lencode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=ta+qa);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ha;break}if(32&ra){c.back=-1,c.mode=V;break}if(64&ra){a.msg="invalid literal/length code",c.mode=la;break}c.extra=15&ra,c.mode=da;case da:if(c.extra){for(za=c.extra;za>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=ea;case ea:for(;Aa=c.distcode[m&(1<<c.distbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=qa);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.distcode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(n>=ta+qa);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg="invalid distance code",c.mode=la;break}c.offset=sa,c.extra=15&ra,c.mode=fa;case fa:if(c.extra){for(za=c.extra;za>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.offset+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=la;break}c.mode=ga;case ga:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=la;break}q>c.wnext?(q-=c.wnext,oa=c.wsize-q):oa=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,oa=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[oa++];while(--q);0===c.length&&(c.mode=ca);break;case ha:if(0===j)break a;f[h++]=c.length,j--,c.mode=ca;break;case ia:if(c.wrap){for(;32>n;){if(0===i)break a;i--,m|=e[g++]<<n,n+=8}if(p-=j,a.total_out+=p,c.total+=p,p&&(a.adler=c.check=c.flags?t(c.check,f,p,h-p):s(c.check,f,p,h-p)),p=j,(c.flags?m:d(m))!==c.check){a.msg="incorrect data check",c.mode=la;break}m=0,n=0}c.mode=ja;case ja:if(c.wrap&&c.flags){for(;32>n;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(4294967295&c.total)){a.msg="incorrect length check",c.mode=la;break}m=0,n=0}c.mode=ka;case ka:xa=D;break a;case la:xa=G;break a;case ma:return H;case na:default:return F}return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,(c.wsize||p!==a.avail_out&&c.mode<la&&(c.mode<ia||b!==z))&&l(a,a.output,a.next_out,p-a.avail_out)?(c.mode=ma,H):(o-=a.avail_in,p-=a.avail_out,a.total_in+=o,a.total_out+=p,c.total+=p,c.wrap&&p&&(a.adler=c.check=c.flags?t(c.check,f,p,a.next_out-p):s(c.check,f,p,a.next_out-p)),a.data_type=c.bits+(c.last?64:0)+(c.mode===V?128:0)+(c.mode===ba||c.mode===Y?256:0),(0===o&&0===p||b===z)&&xa===C&&(xa=I),xa)}function n(a){if(!a||!a.state)return F;var b=a.state;return b.window&&(b.window=null),a.state=null,C}function o(a,b){var c;return a&&a.state?(c=a.state,0===(2&c.wrap)?F:(c.head=b,b.done=!1,C)):F}var p,q,r=c(52),s=c(54),t=c(55),u=c(57),v=c(58),w=0,x=1,y=2,z=4,A=5,B=6,C=0,D=1,E=2,F=-2,G=-3,H=-4,I=-5,J=8,K=1,L=2,M=3,N=4,O=5,P=6,Q=7,R=8,S=9,T=10,U=11,V=12,W=13,X=14,Y=15,Z=16,$=17,_=18,aa=19,ba=20,ca=21,da=22,ea=23,fa=24,ga=25,ha=26,ia=27,ja=28,ka=29,la=30,ma=31,na=32,oa=852,pa=592,qa=15,ra=qa,sa=!0;b.inflateReset=g,b.inflateReset2=h,b.inflateResetKeep=f,b.inflateInit=j,b.inflateInit2=i,b.inflate=m,b.inflateEnd=n,b.inflateGetHeader=o,b.inflateInfo="pako inflate (from Nodeca project)"},function(a,b){"use strict";var c=30,d=12;a.exports=function(a,b){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C;e=a.state,f=a.next_in,B=a.input,g=f+(a.avail_in-5),h=a.next_out,C=a.output,i=h-(b-a.avail_out),j=h+(a.avail_out-257),k=e.dmax,l=e.wsize,m=e.whave,n=e.wnext,o=e.window,p=e.hold,q=e.bits,r=e.lencode,s=e.distcode,t=(1<<e.lenbits)-1,u=(1<<e.distbits)-1;a:do{15>q&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=r[p&t];b:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<<w)-1)];continue b}if(32&w){e.mode=d;break a}a.msg="invalid literal/length code",e.mode=c;break a}x=65535&v,w&=15,w&&(w>q&&(p+=B[f++]<<q,q+=8),x+=p&(1<<w)-1,p>>>=w,q-=w),15>q&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=s[p&u];c:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<<w)-1)];continue c}a.msg="invalid distance code",e.mode=c;break a}if(y=65535&v,w&=15,w>q&&(p+=B[f++]<<q,q+=8,w>q&&(p+=B[f++]<<q,q+=8)),y+=p&(1<<w)-1,y>k){a.msg="invalid distance too far back",e.mode=c;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&e.sane){a.msg="invalid distance too far back",e.mode=c;break a}if(z=0,A=o,0===n){if(z+=l-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(w>n){if(z+=l+n-w,w-=n,x>w){x-=w;do C[h++]=o[z++];while(--w);if(z=0,x>n){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,x>w){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(g>f&&j>h);x=q>>3,f-=x,q-=x<<3,p&=(1<<q)-1,a.next_in=f,a.next_out=h,a.avail_in=g>f?5+(g-f):5-(f-g),a.avail_out=j>h?257+(j-h):257-(h-j),e.hold=p,e.bits=q}},function(a,b,c){"use strict";var d=c(52),e=15,f=852,g=592,h=0,i=1,j=2,k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],l=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],n=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];a.exports=function(a,b,c,o,p,q,r,s){var t,u,v,w,x,y,z,A,B,C=s.bits,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=null,O=0,P=new d.Buf16(e+1),Q=new d.Buf16(e+1),R=null,S=0;for(D=0;e>=D;D++)P[D]=0;for(E=0;o>E;E++)P[b[c+E]]++;for(H=C,G=e;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;G>F&&0===P[F];F++);for(F>H&&(H=F),K=1,D=1;e>=D;D++)if(K<<=1,K-=P[D],0>K)return-1;if(K>0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;e>D;D++)Q[D+1]=Q[D]+P[D];for(E=0;o>E;E++)0!==b[c+E]&&(r[Q[b[c+E]]++]=E);if(a===h?(N=R=r,y=19):a===i?(N=k,O-=257,R=l,S-=257,y=256):(N=m,R=n,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<<H,w=L-1,a===i&&L>f||a===j&&L>g)return 1;for(var T=0;;){T++,z=D-J,r[E]<y?(A=0,B=r[E]):r[E]>y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<<D-J,u=1<<I,F=u;do u-=t,p[x+(M>>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<<D-1;M&t;)t>>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<<I;G>I+J&&(K-=P[I+J],!(0>=K));)I++,K<<=1;if(L+=1<<I,a===i&&L>f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},function(a,b){a.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},function(a,b,c){(function(a,d){function e(a,c){var d={seen:[],stylize:g};return arguments.length>=3&&(d.depth=arguments[2]),arguments.length>=4&&(d.colors=arguments[3]),p(c)?d.showHidden=c:c&&b._extend(d,c),v(d.showHidden)&&(d.showHidden=!1),v(d.depth)&&(d.depth=2),v(d.colors)&&(d.colors=!1),v(d.customInspect)&&(d.customInspect=!0),d.colors&&(d.stylize=f),i(d,a,d.depth)}function f(a,b){var c=e.styles[b];return c?"\e["+e.colors[c][0]+"m"+a+"\e["+e.colors[c][1]+"m":a}function g(a,b){return a}function h(a){var b={};return a.forEach(function(a,c){b[a]=!0}),b}function i(a,c,d){if(a.customInspect&&c&&A(c.inspect)&&c.inspect!==b.inspect&&(!c.constructor||c.constructor.prototype!==c)){var e=c.inspect(d,a);return t(e)||(e=i(a,e,d)),e}var f=j(a,c);if(f)return f;var g=Object.keys(c),p=h(g);if(a.showHidden&&(g=Object.getOwnPropertyNames(c)),z(c)&&(g.indexOf("message")>=0||g.indexOf("description")>=0))return k(c);if(0===g.length){if(A(c)){var q=c.name?": "+c.name:"";return a.stylize("[Function"+q+"]","special")}if(w(c))return a.stylize(RegExp.prototype.toString.call(c),"regexp");if(y(c))return a.stylize(Date.prototype.toString.call(c),"date");if(z(c))return k(c)}var r="",s=!1,u=["{","}"];if(o(c)&&(s=!0,u=["[","]"]),A(c)){var v=c.name?": "+c.name:"";r=" [Function"+v+"]"}if(w(c)&&(r=" "+RegExp.prototype.toString.call(c)),y(c)&&(r=" "+Date.prototype.toUTCString.call(c)),z(c)&&(r=" "+k(c)),0===g.length&&(!s||0==c.length))return u[0]+r+u[1];if(0>d)return w(c)?a.stylize(RegExp.prototype.toString.call(c),"regexp"):a.stylize("[Object]","special");a.seen.push(c);var x;return x=s?l(a,c,d,p,g):g.map(function(b){return m(a,c,d,p,b,s)}),a.seen.pop(),n(x,r,u)}function j(a,b){if(v(b))return a.stylize("undefined","undefined");if(t(b)){var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string")}return s(b)?a.stylize(""+b,"number"):p(b)?a.stylize(""+b,"boolean"):q(b)?a.stylize("null","null"):void 0}function k(a){return"["+Error.prototype.toString.call(a)+"]"}function l(a,b,c,d,e){for(var f=[],g=0,h=b.length;h>g;++g)F(b,String(g))?f.push(m(a,b,c,d,String(g),!0)):f.push("");return e.forEach(function(e){e.match(/^\d+$/)||f.push(m(a,b,c,d,e,!0))}),f}function m(a,b,c,d,e,f){var g,h,j;if(j=Object.getOwnPropertyDescriptor(b,e)||{value:b[e]},j.get?h=j.set?a.stylize("[Getter/Setter]","special"):a.stylize("[Getter]","special"):j.set&&(h=a.stylize("[Setter]","special")),F(d,e)||(g="["+e+"]"),h||(a.seen.indexOf(j.value)<0?(h=q(c)?i(a,j.value,null):i(a,j.value,c-1),h.indexOf("\n")>-1&&(h=f?h.split("\n").map(function(a){return"  "+a}).join("\n").substr(2):"\n"+h.split("\n").map(function(a){return"   "+a}).join("\n"))):h=a.stylize("[Circular]","special")),v(g)){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function n(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.replace(/\u001b\[\d\d?m/g,"").length+1},0);return e>60?c[0]+(""===b?"":b+"\n ")+" "+a.join(",\n  ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function o(a){return Array.isArray(a)}function p(a){return"boolean"==typeof a}function q(a){return null===a}function r(a){return null==a}function s(a){return"number"==typeof a}function t(a){return"string"==typeof a}function u(a){return"symbol"==typeof a}function v(a){return void 0===a}function w(a){return x(a)&&"[object RegExp]"===C(a)}function x(a){return"object"==typeof a&&null!==a}function y(a){return x(a)&&"[object Date]"===C(a)}function z(a){return x(a)&&("[object Error]"===C(a)||a instanceof Error)}function A(a){return"function"==typeof a}function B(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function C(a){return Object.prototype.toString.call(a)}function D(a){return 10>a?"0"+a.toString(10):a.toString(10)}function E(){var a=new Date,b=[D(a.getHours()),D(a.getMinutes()),D(a.getSeconds())].join(":");return[a.getDate(),J[a.getMonth()],b].join(" ")}function F(a,b){return Object.prototype.hasOwnProperty.call(a,b)}var G=/%[sdj%]/g;b.format=function(a){if(!t(a)){for(var b=[],c=0;c<arguments.length;c++)b.push(e(arguments[c]));return b.join(" ")}for(var c=1,d=arguments,f=d.length,g=String(a).replace(G,function(a){if("%%"===a)return"%";if(c>=f)return a;switch(a){case"%s":return String(d[c++]);case"%d":return Number(d[c++]);case"%j":try{return JSON.stringify(d[c++])}catch(b){return"[Circular]"}default:return a}}),h=d[c];f>c;h=d[++c])g+=q(h)||!x(h)?" "+h:" "+e(h);return g},b.deprecate=function(c,e){function f(){if(!g){if(d.throwDeprecation)throw new Error(e);d.traceDeprecation?console.trace(e):console.error(e),g=!0}return c.apply(this,arguments)}if(v(a.process))return function(){return b.deprecate(c,e).apply(this,arguments)};if(d.noDeprecation===!0)return c;var g=!1;return f};var H,I={};b.debuglog=function(a){if(v(H)&&(H=d.env.NODE_DEBUG||""),a=a.toUpperCase(),!I[a])if(new RegExp("\\b"+a+"\\b","i").test(H)){var c=d.pid;I[a]=function(){var d=b.format.apply(b,arguments);console.error("%s %d: %s",a,c,d)}}else I[a]=function(){};return I[a]},b.inspect=e,e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},b.isArray=o,b.isBoolean=p,b.isNull=q,b.isNullOrUndefined=r,b.isNumber=s,b.isString=t,b.isSymbol=u,b.isUndefined=v,b.isRegExp=w,b.isObject=x,b.isDate=y,b.isError=z,b.isFunction=A,b.isPrimitive=B,b.isBuffer=c(61);var J=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];b.log=function(){console.log("%s - %s",E(),b.format.apply(b,arguments))},b.inherits=c(62),b._extend=function(a,b){if(!b||!x(b))return a;for(var c=Object.keys(b),d=c.length;d--;)a[c[d]]=b[c[d]];return a}}).call(b,function(){return this}(),c(30))},function(a,b){a.exports=function(a){return a&&"object"==typeof a&&"function"==typeof a.copy&&"function"==typeof a.fill&&"function"==typeof a.readUInt8}},function(a,b){"function"==typeof Object.create?a.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:a.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},function(a,b,c){function d(a,b){return n.isUndefined(b)?""+b:n.isNumber(b)&&!isFinite(b)?b.toString():n.isFunction(b)||n.isRegExp(b)?b.toString():b}function e(a,b){return n.isString(a)?a.length<b?a:a.slice(0,b):a}function f(a){return e(JSON.stringify(a.actual,d),128)+" "+a.operator+" "+e(JSON.stringify(a.expected,d),128)}function g(a,b,c,d,e){throw new q.AssertionError({message:c,actual:a,expected:b,operator:d,stackStartFunction:e})}function h(a,b){a||g(a,!0,b,"==",q.ok)}function i(a,b){if(a===b)return!0;if(n.isBuffer(a)&&n.isBuffer(b)){if(a.length!=b.length)return!1;for(var c=0;c<a.length;c++)if(a[c]!==b[c])return!1;return!0}return n.isDate(a)&&n.isDate(b)?a.getTime()===b.getTime():n.isRegExp(a)&&n.isRegExp(b)?a.source===b.source&&a.global===b.global&&a.multiline===b.multiline&&a.lastIndex===b.lastIndex&&a.ignoreCase===b.ignoreCase:n.isObject(a)||n.isObject(b)?k(a,b):a==b}function j(a){return"[object Arguments]"==Object.prototype.toString.call(a)}function k(a,b){if(n.isNullOrUndefined(a)||n.isNullOrUndefined(b))return!1;if(a.prototype!==b.prototype)return!1;if(n.isPrimitive(a)||n.isPrimitive(b))return a===b;var c=j(a),d=j(b);if(c&&!d||!c&&d)return!1;if(c)return a=o.call(a),b=o.call(b),i(a,b);var e,f,g=r(a),h=r(b);if(g.length!=h.length)return!1;for(g.sort(),h.sort(),f=g.length-1;f>=0;f--)if(g[f]!=h[f])return!1;for(f=g.length-1;f>=0;f--)if(e=g[f],!i(a[e],b[e]))return!1;return!0}function l(a,b){return a&&b?"[object RegExp]"==Object.prototype.toString.call(b)?b.test(a):a instanceof b?!0:b.call({},a)===!0:!1}function m(a,b,c,d){var e;n.isString(c)&&(d=c,c=null);try{b()}catch(f){e=f}if(d=(c&&c.name?" ("+c.name+").":".")+(d?" "+d:"."),a&&!e&&g(e,c,"Missing expected exception"+d),!a&&l(e,c)&&g(e,c,"Got unwanted exception"+d),a&&e&&c&&!l(e,c)||!a&&e)throw e}var n=c(60),o=Array.prototype.slice,p=Object.prototype.hasOwnProperty,q=a.exports=h;q.AssertionError=function(a){this.name="AssertionError",this.actual=a.actual,this.expected=a.expected,this.operator=a.operator,a.message?(this.message=a.message,this.generatedMessage=!1):(this.message=f(this),this.generatedMessage=!0);var b=a.stackStartFunction||g;if(Error.captureStackTrace)Error.captureStackTrace(this,b);else{var c=new Error;if(c.stack){var d=c.stack,e=b.name,h=d.indexOf("\n"+e);if(h>=0){var i=d.indexOf("\n",h+1);d=d.substring(i+1)}this.stack=d}}},n.inherits(q.AssertionError,Error),q.fail=g,q.ok=h,q.equal=function(a,b,c){a!=b&&g(a,b,c,"==",q.equal)},q.notEqual=function(a,b,c){a==b&&g(a,b,c,"!=",q.notEqual)},q.deepEqual=function(a,b,c){i(a,b)||g(a,b,c,"deepEqual",q.deepEqual)},q.notDeepEqual=function(a,b,c){i(a,b)&&g(a,b,c,"notDeepEqual",q.notDeepEqual)},q.strictEqual=function(a,b,c){a!==b&&g(a,b,c,"===",q.strictEqual)},q.notStrictEqual=function(a,b,c){a===b&&g(a,b,c,"!==",q.notStrictEqual)},q["throws"]=function(a,b,c){m.apply(this,[!0].concat(o.call(arguments)))},q.doesNotThrow=function(a,b){m.apply(this,[!1].concat(o.call(arguments)))},q.ifError=function(a){if(a)throw a};var r=Object.keys||function(a){var b=[];for(var c in a)p.call(a,c)&&b.push(c);return b}},function(a,b){(function(){var b;b=function(){function a(a,d){var e;this.document=a,null==d&&(d={}),this.size=d.size||"letter",this.layout=d.layout||"portrait","number"==typeof d.margin?this.margins={top:d.margin,left:d.margin,bottom:d.margin,right:d.margin}:this.margins=d.margins||b,e=Array.isArray(this.size)?this.size:c[this.size.toUpperCase()],this.width=e["portrait"===this.layout?0:1],this.height=e["portrait"===this.layout?1:0],this.content=this.document.ref(),this.resources=this.document.ref({ProcSet:["PDF","Text","ImageB","ImageC","ImageI"]}),Object.defineProperties(this,{fonts:{get:function(a){return function(){var b;return null!=(b=a.resources.data).Font?b.Font:b.Font={}}}(this)},xobjects:{get:function(a){return function(){var b;return null!=(b=a.resources.data).XObject?b.XObject:b.XObject={}}}(this)},ext_gstates:{get:function(a){return function(){var b;return null!=(b=a.resources.data).ExtGState?b.ExtGState:b.ExtGState={}}}(this)},patterns:{get:function(a){return function(){var b;return null!=(b=a.resources.data).Pattern?b.Pattern:b.Pattern={}}}(this)},annotations:{get:function(a){return function(){var b;return null!=(b=a.dictionary.data).Annots?b.Annots:b.Annots=[]}}(this)}}),this.dictionary=this.document.ref({Type:"Page",Parent:this.document._root.data.Pages,MediaBox:[0,0,this.width,this.height],Contents:this.content,Resources:this.resources})}var b,c;return a.prototype.maxY=function(){return this.height-this.margins.bottom},a.prototype.write=function(a){return this.content.write(a)},a.prototype.end=function(){return this.dictionary.end(),this.resources.end(),this.content.end()},b={top:72,left:72,bottom:72,right:72},c={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],
+LETTER:[612,792],TABLOID:[792,1224]},a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f,g;g=c(66),b=g.PDFGradient,d=g.PDFLinearGradient,e=g.PDFRadialGradient,a.exports={initColor:function(){return this._opacityRegistry={},this._opacityCount=0,this._gradCount=0},_normalizeColor:function(a){var c,d;return a instanceof b?a:("string"==typeof a&&("#"===a.charAt(0)?(4===a.length&&(a=a.replace(/#([0-9A-F])([0-9A-F])([0-9A-F])/i,"#$1$1$2$2$3$3")),c=parseInt(a.slice(1),16),a=[c>>16,c>>8&255,255&c]):f[a]&&(a=f[a])),Array.isArray(a)?(3===a.length?a=function(){var b,c,e;for(e=[],b=0,c=a.length;c>b;b++)d=a[b],e.push(d/255);return e}():4===a.length&&(a=function(){var b,c,e;for(e=[],b=0,c=a.length;c>b;b++)d=a[b],e.push(d/100);return e}()),a):null)},_setColor:function(a,c){var d,e,f,g;return(a=this._normalizeColor(a))?(this._sMasked&&(d=this.ref({Type:"ExtGState",SMask:"None"}),d.end(),e="Gs"+ ++this._opacityCount,this.page.ext_gstates[e]=d,this.addContent("/"+e+" gs"),this._sMasked=!1),f=c?"SCN":"scn",a instanceof b?(this._setColorSpace("Pattern",c),a.apply(f)):(g=4===a.length?"DeviceCMYK":"DeviceRGB",this._setColorSpace(g,c),a=a.join(" "),this.addContent(""+a+" "+f)),!0):!1},_setColorSpace:function(a,b){var c;return c=b?"CS":"cs",this.addContent("/"+a+" "+c)},fillColor:function(a,b){var c;return null==b&&(b=1),c=this._setColor(a,!1),c&&this.fillOpacity(b),this._fillColor=[a,b],this},strokeColor:function(a,b){var c;return null==b&&(b=1),c=this._setColor(a,!0),c&&this.strokeOpacity(b),this},opacity:function(a){return this._doOpacity(a,a),this},fillOpacity:function(a){return this._doOpacity(a,null),this},strokeOpacity:function(a){return this._doOpacity(null,a),this},_doOpacity:function(a,b){var c,d,e,f,g;if(null!=a||null!=b)return null!=a&&(a=Math.max(0,Math.min(1,a))),null!=b&&(b=Math.max(0,Math.min(1,b))),e=""+a+"_"+b,this._opacityRegistry[e]?(g=this._opacityRegistry[e],c=g[0],f=g[1]):(c={Type:"ExtGState"},null!=a&&(c.ca=a),null!=b&&(c.CA=b),c=this.ref(c),c.end(),d=++this._opacityCount,f="Gs"+d,this._opacityRegistry[e]=[c,f]),this.page.ext_gstates[f]=c,this.addContent("/"+f+" gs")},linearGradient:function(a,b,c,e){return new d(this,a,b,c,e)},radialGradient:function(a,b,c,d,f,g){return new e(this,a,b,c,d,f,g)}},f={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}).call(this)},function(a,b){(function(){var b,c,d,e={}.hasOwnProperty,f=function(a,b){function c(){this.constructor=a}for(var d in b)e.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};b=function(){function a(a){this.doc=a,this.stops=[],this.embedded=!1,this.transform=[1,0,0,1,0,0],this._colorSpace="DeviceRGB"}return a.prototype.stop=function(a,b,c){return null==c&&(c=1),c=Math.max(0,Math.min(1,c)),this.stops.push([a,this.doc._normalizeColor(b),c]),this},a.prototype.embed=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J;if(!this.embedded&&0!==this.stops.length){for(this.embedded=!0,k=this.stops[this.stops.length-1],k[0]<1&&this.stops.push([1,k[1],k[2]]),a=[],d=[],C=[],j=E=0,H=this.stops.length-1;H>=0?H>E:E>H;j=H>=0?++E:--E)d.push(0,1),j+2!==this.stops.length&&a.push(this.stops[j+1][0]),e=this.doc.ref({FunctionType:2,Domain:[0,1],C0:this.stops[j+0][1],C1:this.stops[j+1][1],N:1}),C.push(e),e.end();if(1===C.length?e=C[0]:(e=this.doc.ref({FunctionType:3,Domain:[0,1],Functions:C,Bounds:a,Encode:d}),e.end()),this.id="Sh"+ ++this.doc._gradCount,l=this.doc._ctm.slice(),m=l[0],n=l[1],q=l[2],t=l[3],u=l[4],v=l[5],I=this.transform,o=I[0],p=I[1],r=I[2],s=I[3],b=I[4],c=I[5],l[0]=m*o+q*p,l[1]=n*o+t*p,l[2]=m*r+q*s,l[3]=n*r+t*s,l[4]=m*b+q*c+u,l[5]=n*b+t*c+v,A=this.shader(e),A.end(),x=this.doc.ref({Type:"Pattern",PatternType:2,Shading:A,Matrix:function(){var a,b,c;for(c=[],a=0,b=l.length;b>a;a++)D=l[a],c.push(+D.toFixed(5));return c}()}),this.doc.page.patterns[this.id]=x,x.end(),this.stops.some(function(a){return a[2]<1})){for(g=this.opacityGradient(),g._colorSpace="DeviceGray",J=this.stops,F=0,G=J.length;G>F;F++)B=J[F],g.stop(B[0],[B[2]]);g=g.embed(),h=this.doc.ref({Type:"Group",S:"Transparency",CS:"DeviceGray"}),h.end(),y=this.doc.ref({ProcSet:["PDF","Text","ImageB","ImageC","ImageI"],Shading:{Sh1:g.data.Shading}}),y.end(),f=this.doc.ref({Type:"XObject",Subtype:"Form",FormType:1,BBox:[0,0,this.doc.page.width,this.doc.page.height],Group:h,Resources:y}),f.end("/Sh1 sh"),z=this.doc.ref({Type:"Mask",S:"Luminosity",G:f}),z.end(),i=this.doc.ref({Type:"ExtGState",SMask:z}),this.opacity_id=++this.doc._opacityCount,w="Gs"+this.opacity_id,this.doc.page.ext_gstates[w]=i,i.end()}return x}},a.prototype.apply=function(a){return this.embedded||this.embed(),this.doc.addContent("/"+this.id+" "+a),this.opacity_id?(this.doc.addContent("/Gs"+this.opacity_id+" gs"),this.doc._sMasked=!0):void 0},a}(),c=function(a){function b(a,c,d,e,f){this.doc=a,this.x1=c,this.y1=d,this.x2=e,this.y2=f,b.__super__.constructor.apply(this,arguments)}return f(b,a),b.prototype.shader=function(a){return this.doc.ref({ShadingType:2,ColorSpace:this._colorSpace,Coords:[this.x1,this.y1,this.x2,this.y2],Function:a,Extend:[!0,!0]})},b.prototype.opacityGradient=function(){return new b(this.doc,this.x1,this.y1,this.x2,this.y2)},b}(b),d=function(a){function b(a,c,d,e,f,g,h){this.doc=a,this.x1=c,this.y1=d,this.r1=e,this.x2=f,this.y2=g,this.r2=h,b.__super__.constructor.apply(this,arguments)}return f(b,a),b.prototype.shader=function(a){return this.doc.ref({ShadingType:3,ColorSpace:this._colorSpace,Coords:[this.x1,this.y1,this.r1,this.x2,this.y2,this.r2],Function:a,Extend:[!0,!0]})},b.prototype.opacityGradient=function(){return new b(this.doc,this.x1,this.y1,this.r1,this.x2,this.y2,this.r2)},b}(b),a.exports={PDFGradient:b,PDFLinearGradient:c,PDFRadialGradient:d}}).call(this)},function(a,b,c){(function(){var b,d,e=[].slice;d=c(68),b=4*((Math.sqrt(2)-1)/3),a.exports={initVector:function(){return this._ctm=[1,0,0,1,0,0],this._ctmStack=[]},save:function(){return this._ctmStack.push(this._ctm.slice()),this.addContent("q")},restore:function(){return this._ctm=this._ctmStack.pop()||[1,0,0,1,0,0],this.addContent("Q")},closePath:function(){return this.addContent("h")},lineWidth:function(a){return this.addContent(""+a+" w")},_CAP_STYLES:{BUTT:0,ROUND:1,SQUARE:2},lineCap:function(a){return"string"==typeof a&&(a=this._CAP_STYLES[a.toUpperCase()]),this.addContent(""+a+" J")},_JOIN_STYLES:{MITER:0,ROUND:1,BEVEL:2},lineJoin:function(a){return"string"==typeof a&&(a=this._JOIN_STYLES[a.toUpperCase()]),this.addContent(""+a+" j")},miterLimit:function(a){return this.addContent(""+a+" M")},dash:function(a,b){var c,d,e;return null==b&&(b={}),null==a?this:(d=null!=(e=b.space)?e:a,c=b.phase||0,this.addContent("["+a+" "+d+"] "+c+" d"))},undash:function(){return this.addContent("[] 0 d")},moveTo:function(a,b){return this.addContent(""+a+" "+b+" m")},lineTo:function(a,b){return this.addContent(""+a+" "+b+" l")},bezierCurveTo:function(a,b,c,d,e,f){return this.addContent(""+a+" "+b+" "+c+" "+d+" "+e+" "+f+" c")},quadraticCurveTo:function(a,b,c,d){return this.addContent(""+a+" "+b+" "+c+" "+d+" v")},rect:function(a,b,c,d){return this.addContent(""+a+" "+b+" "+c+" "+d+" re")},roundedRect:function(a,b,c,d,e){return null==e&&(e=0),this.moveTo(a+e,b),this.lineTo(a+c-e,b),this.quadraticCurveTo(a+c,b,a+c,b+e),this.lineTo(a+c,b+d-e),this.quadraticCurveTo(a+c,b+d,a+c-e,b+d),this.lineTo(a+e,b+d),this.quadraticCurveTo(a,b+d,a,b+d-e),this.lineTo(a,b+e),this.quadraticCurveTo(a,b,a+e,b)},ellipse:function(a,c,d,e){var f,g,h,i,j,k;return null==e&&(e=d),a-=d,c-=e,f=d*b,g=e*b,h=a+2*d,j=c+2*e,i=a+d,k=c+e,this.moveTo(a,k),this.bezierCurveTo(a,k-g,i-f,c,i,c),this.bezierCurveTo(i+f,c,h,k-g,h,k),this.bezierCurveTo(h,k+g,i+f,j,i,j),this.bezierCurveTo(i-f,j,a,k+g,a,k),this.closePath()},circle:function(a,b,c){return this.ellipse(a,b,c)},polygon:function(){var a,b,c,d;for(b=1<=arguments.length?e.call(arguments,0):[],this.moveTo.apply(this,b.shift()),c=0,d=b.length;d>c;c++)a=b[c],this.lineTo.apply(this,a);return this.closePath()},path:function(a){return d.apply(this,a),this},_windingRule:function(a){return/even-?odd/.test(a)?"*":""},fill:function(a,b){return/(even-?odd)|(non-?zero)/.test(a)&&(b=a,a=null),a&&this.fillColor(a),this.addContent("f"+this._windingRule(b))},stroke:function(a){return a&&this.strokeColor(a),this.addContent("S")},fillAndStroke:function(a,b,c){var d;return null==b&&(b=a),d=/(even-?odd)|(non-?zero)/,d.test(a)&&(c=a,a=null),d.test(b)&&(c=b,b=a),a&&(this.fillColor(a),this.strokeColor(b)),this.addContent("B"+this._windingRule(c))},clip:function(a){return this.addContent("W"+this._windingRule(a)+" n")},transform:function(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o;return g=this._ctm,h=g[0],i=g[1],j=g[2],k=g[3],l=g[4],m=g[5],g[0]=h*a+j*b,g[1]=i*a+k*b,g[2]=h*c+j*d,g[3]=i*c+k*d,g[4]=h*e+j*f+l,g[5]=i*e+k*f+m,o=function(){var g,h,i,j;for(i=[a,b,c,d,e,f],j=[],g=0,h=i.length;h>g;g++)n=i[g],j.push(+n.toFixed(5));return j}().join(" "),this.addContent(""+o+" cm")},translate:function(a,b){return this.transform(1,0,0,1,a,b)},rotate:function(a,b){var c,d,e,f,g,h,i,j;return null==b&&(b={}),d=a*Math.PI/180,c=Math.cos(d),e=Math.sin(d),f=h=0,null!=b.origin&&(j=b.origin,f=j[0],h=j[1],g=f*c-h*e,i=f*e+h*c,f-=g,h-=i),this.transform(c,e,-e,c,f,h)},scale:function(a,b,c){var d,e,f;return null==b&&(b=a),null==c&&(c={}),2===arguments.length&&(b=a,c=b),d=e=0,null!=c.origin&&(f=c.origin,d=f[0],e=f[1],d-=a*d,e-=b*e),this.transform(a,0,0,b,d,e)}}}).call(this)},function(a,b){(function(){var b;b=function(){function a(){}var b,c,d,e,f,g,h,i,j,k,l,m,n;return a.apply=function(a,c){var d;return d=g(c),b(d,a)},f={A:7,a:7,C:6,c:6,H:1,h:1,L:2,l:2,M:2,m:2,Q:4,q:4,S:4,s:4,T:2,t:2,V:1,v:1,Z:0,z:0},g=function(a){var b,c,d,e,g,h,i,j,k;for(i=[],b=[],e="",g=!1,h=0,j=0,k=a.length;k>j;j++)if(c=a[j],null!=f[c])h=f[c],d&&(e.length>0&&(b[b.length]=+e),i[i.length]={cmd:d,args:b},b=[],e="",g=!1),d=c;else if(" "===c||","===c||"-"===c&&e.length>0&&"e"!==e[e.length-1]||"."===c&&g){if(0===e.length)continue;b.length===h?(i[i.length]={cmd:d,args:b},b=[+e],"M"===d&&(d="L"),"m"===d&&(d="l")):b[b.length]=+e,g="."===c,e="-"===c||"."===c?c:""}else e+=c,"."===c&&(g=!0);return e.length>0&&(b.length===h?(i[i.length]={cmd:d,args:b},b=[+e],"M"===d&&(d="L"),"m"===d&&(d="l")):b[b.length]=+e),i[i.length]={cmd:d,args:b},i},d=e=h=i=m=n=0,b=function(a,b){var c,f,g,k,l;for(d=e=h=i=m=n=0,f=g=0,k=a.length;k>g;f=++g)c=a[f],"function"==typeof j[l=c.cmd]&&j[l](b,c.args);return d=e=h=i=0},j={M:function(a,b){return d=b[0],e=b[1],h=i=null,m=d,n=e,a.moveTo(d,e)},m:function(a,b){return d+=b[0],e+=b[1],h=i=null,m=d,n=e,a.moveTo(d,e)},C:function(a,b){return d=b[4],e=b[5],h=b[2],i=b[3],a.bezierCurveTo.apply(a,b)},c:function(a,b){return a.bezierCurveTo(b[0]+d,b[1]+e,b[2]+d,b[3]+e,b[4]+d,b[5]+e),h=d+b[2],i=e+b[3],d+=b[4],e+=b[5]},S:function(a,b){return null===h&&(h=d,i=e),a.bezierCurveTo(d-(h-d),e-(i-e),b[0],b[1],b[2],b[3]),h=b[0],i=b[1],d=b[2],e=b[3]},s:function(a,b){return null===h&&(h=d,i=e),a.bezierCurveTo(d-(h-d),e-(i-e),d+b[0],e+b[1],d+b[2],e+b[3]),h=d+b[0],i=e+b[1],d+=b[2],e+=b[3]},Q:function(a,b){return h=b[0],i=b[1],d=b[2],e=b[3],a.quadraticCurveTo(b[0],b[1],d,e)},q:function(a,b){return a.quadraticCurveTo(b[0]+d,b[1]+e,b[2]+d,b[3]+e),h=d+b[0],i=e+b[1],d+=b[2],e+=b[3]},T:function(a,b){return null===h?(h=d,i=e):(h=d-(h-d),i=e-(i-e)),a.quadraticCurveTo(h,i,b[0],b[1]),h=d-(h-d),i=e-(i-e),d=b[0],e=b[1]},t:function(a,b){return null===h?(h=d,i=e):(h=d-(h-d),i=e-(i-e)),a.quadraticCurveTo(h,i,d+b[0],e+b[1]),d+=b[0],e+=b[1]},A:function(a,b){return l(a,d,e,b),d=b[5],e=b[6]},a:function(a,b){return b[5]+=d,b[6]+=e,l(a,d,e,b),d=b[5],e=b[6]},L:function(a,b){return d=b[0],e=b[1],h=i=null,a.lineTo(d,e)},l:function(a,b){return d+=b[0],e+=b[1],h=i=null,a.lineTo(d,e)},H:function(a,b){return d=b[0],h=i=null,a.lineTo(d,e)},h:function(a,b){return d+=b[0],h=i=null,a.lineTo(d,e)},V:function(a,b){return e=b[0],h=i=null,a.lineTo(d,e)},v:function(a,b){return e+=b[0],h=i=null,a.lineTo(d,e)},Z:function(a){return a.closePath(),d=m,e=n},z:function(a){return a.closePath(),d=m,e=n}},l=function(a,b,d,e){var f,g,h,i,j,l,m,n,o,p,q,r,s;for(l=e[0],m=e[1],j=e[2],i=e[3],p=e[4],g=e[5],h=e[6],o=c(g,h,l,m,i,p,j,b,d),s=[],q=0,r=o.length;r>q;q++)n=o[q],f=k.apply(null,n),s.push(a.bezierCurveTo.apply(a,f));return s},c=function(a,b,c,d,e,f,g,j,k){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K;for(y=g*(Math.PI/180),x=Math.sin(y),p=Math.cos(y),c=Math.abs(c),d=Math.abs(d),h=p*(j-a)*.5+x*(k-b)*.5,i=p*(k-b)*.5-x*(j-a)*.5,s=h*h/(c*c)+i*i/(d*d),s>1&&(s=Math.sqrt(s),c*=s,d*=s),l=p/c,m=x/c,n=-x/d,o=p/d,E=l*j+m*k,H=n*j+o*k,F=l*a+m*b,I=n*a+o*b,q=(F-E)*(F-E)+(I-H)*(I-H),w=1/q-.25,0>w&&(w=0),v=Math.sqrt(w),f===e&&(v=-v),G=.5*(E+F)-v*(I-H),J=.5*(H+I)+v*(F-E),z=Math.atan2(H-J,E-G),A=Math.atan2(I-J,F-G),D=A-z,0>D&&1===f?D+=2*Math.PI:D>0&&0===f&&(D-=2*Math.PI),u=Math.ceil(Math.abs(D/(.5*Math.PI+.001))),t=[],r=K=0;u>=0?u>K:K>u;r=u>=0?++K:--K)B=z+r*D/u,C=z+(r+1)*D/u,t[r]=[G,J,B,C,c,d,x,p];return t},k=function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s,t;return i=h*e,j=-g*f,k=g*e,l=h*f,n=.5*(d-c),m=8/3*Math.sin(.5*n)*Math.sin(.5*n)/Math.sin(n),o=a+Math.cos(c)-m*Math.sin(c),r=b+Math.sin(c)+m*Math.cos(c),q=a+Math.cos(d),t=b+Math.sin(d),p=q+m*Math.sin(d),s=t-m*Math.cos(d),[i*o+j*r,k*o+l*r,i*p+j*s,k*p+l*s,i*q+j*t,k*q+l*t]},a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b;b=c(70),a.exports={initFonts:function(){this._fontFamilies={},this._fontCount=0,this._fontSize=12,this._font=null,this._registeredFonts={}},font:function(a,c,d){var e,f,g,h;return"number"==typeof c&&(d=c,c=null),"string"==typeof a&&this._registeredFonts[a]?(e=a,h=this._registeredFonts[a],a=h.src,c=h.family):(e=c||a,"string"!=typeof e&&(e=null)),null!=d&&this.fontSize(d),(f=this._fontFamilies[e])?(this._font=f,this):(g="F"+ ++this._fontCount,this._font=new b(this,a,c,g),(f=this._fontFamilies[this._font.name])?(this._font=f,this):(e&&(this._fontFamilies[e]=this._font),this._fontFamilies[this._font.name]=this._font,this))},fontSize:function(a){return this._fontSize=a,this},currentLineHeight:function(a){return null==a&&(a=!1),this._font.lineHeight(this._fontSize,a)},registerFont:function(a,b,c){return this._registeredFonts[a]={src:b,family:c},this}}}).call(this)},function(a,b,c){(function(b,d){(function(){var e,f,g,h,i;h=c(71),e=c(87),g=c(88),i=c(44),f=function(){function a(a,d,f,i){if(this.document=a,this.id=i,"string"==typeof d){if(d in c)return this.isAFM=!0,this.font=new e(c[d]()),void this.registerAFM(d);if(/\.(ttf|ttc)$/i.test(d))this.font=h.open(d,f);else{if(!/\.dfont$/i.test(d))throw new Error("Not a supported font format or standard PDF font.");this.font=h.fromDFont(d,f)}}else if(b.isBuffer(d))this.font=h.fromBuffer(d,f);else if(d instanceof Uint8Array)this.font=h.fromBuffer(new b(d),f);else{if(!(d instanceof ArrayBuffer))throw new Error("Not a supported font format or standard PDF font.");this.font=h.fromBuffer(new b(new Uint8Array(d)),f)}this.subset=new g(this.font),this.registerTTF()}var c,f;return c={Courier:function(){return i.readFileSync(d+"/font/data/Courier.afm","utf8")},"Courier-Bold":function(){return i.readFileSync(d+"/font/data/Courier-Bold.afm","utf8")},"Courier-Oblique":function(){return i.readFileSync(d+"/font/data/Courier-Oblique.afm","utf8")},"Courier-BoldOblique":function(){return i.readFileSync(d+"/font/data/Courier-BoldOblique.afm","utf8")},Helvetica:function(){return i.readFileSync(d+"/font/data/Helvetica.afm","utf8")},"Helvetica-Bold":function(){return i.readFileSync(d+"/font/data/Helvetica-Bold.afm","utf8")},"Helvetica-Oblique":function(){return i.readFileSync(d+"/font/data/Helvetica-Oblique.afm","utf8")},"Helvetica-BoldOblique":function(){return i.readFileSync(d+"/font/data/Helvetica-BoldOblique.afm","utf8")},"Times-Roman":function(){return i.readFileSync(d+"/font/data/Times-Roman.afm","utf8")},"Times-Bold":function(){return i.readFileSync(d+"/font/data/Times-Bold.afm","utf8")},"Times-Italic":function(){return i.readFileSync(d+"/font/data/Times-Italic.afm","utf8")},"Times-BoldItalic":function(){return i.readFileSync(d+"/font/data/Times-BoldItalic.afm","utf8")},Symbol:function(){return i.readFileSync(d+"/font/data/Symbol.afm","utf8")},ZapfDingbats:function(){return i.readFileSync(d+"/font/data/ZapfDingbats.afm","utf8")}},a.prototype.use=function(a){var b;return null!=(b=this.subset)?b.use(a):void 0},a.prototype.embed=function(){return this.embedded||null==this.dictionary?void 0:(this.isAFM?this.embedAFM():this.embedTTF(),this.embedded=!0)},a.prototype.encode=function(a){var b;return this.isAFM?this.font.encodeText(a):(null!=(b=this.subset)?b.encodeText(a):void 0)||a},a.prototype.ref=function(){return null!=this.dictionary?this.dictionary:this.dictionary=this.document.ref()},a.prototype.registerTTF=function(){var a,b,c,d,e;if(this.name=this.font.name.postscriptName,this.scaleFactor=1e3/this.font.head.unitsPerEm,this.bbox=function(){var b,c,d,e;for(d=this.font.bbox,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(Math.round(a*this.scaleFactor));return e}.call(this),this.stemV=0,this.font.post.exists?(d=this.font.post.italic_angle,b=d>>16,c=255&d,b&!0&&(b=-((65535^b)+1)),this.italicAngle=+(""+b+"."+c)):this.italicAngle=0,this.ascender=Math.round(this.font.ascender*this.scaleFactor),this.decender=Math.round(this.font.decender*this.scaleFactor),this.lineGap=Math.round(this.font.lineGap*this.scaleFactor),this.capHeight=this.font.os2.exists&&this.font.os2.capHeight||this.ascender,this.xHeight=this.font.os2.exists&&this.font.os2.xHeight||0,this.familyClass=(this.font.os2.exists&&this.font.os2.familyClass||0)>>8,this.isSerif=1===(e=this.familyClass)||2===e||3===e||4===e||5===e||7===e,this.isScript=10===this.familyClass,this.flags=0,this.font.post.isFixedPitch&&(this.flags|=1),this.isSerif&&(this.flags|=2),this.isScript&&(this.flags|=8),0!==this.italicAngle&&(this.flags|=64),this.flags|=32,!this.font.cmap.unicode)throw new Error("No unicode cmap for font")},a.prototype.embedTTF=function(){var a,b,c,d,e,g,h,i;return d=this.subset.encode(),h=this.document.ref(),h.write(d),h.data.Length1=h.uncompressedLength,h.end(),e=this.document.ref({Type:"FontDescriptor",FontName:this.subset.postscriptName,FontFile2:h,FontBBox:this.bbox,Flags:this.flags,StemV:this.stemV,ItalicAngle:this.italicAngle,Ascent:this.ascender,Descent:this.decender,CapHeight:this.capHeight,XHeight:this.xHeight}),e.end(),g=+Object.keys(this.subset.cmap)[0],a=function(){var a,b;a=this.subset.cmap,b=[];for(c in a)i=a[c],b.push(Math.round(this.font.widthOfGlyph(i)));return b}.call(this),b=this.document.ref(),b.end(f(this.subset.subset)),this.dictionary.data={Type:"Font",BaseFont:this.subset.postscriptName,Subtype:"TrueType",FontDescriptor:e,FirstChar:g,LastChar:g+a.length-1,Widths:a,Encoding:"MacRomanEncoding",ToUnicode:b},this.dictionary.end()},f=function(a){var b,c,d,e,f,g,h;for(f="/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo <<\n  /Registry (Adobe)\n  /Ordering (UCS)\n  /Supplement 0\n>> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<00><ff>\nendcodespacerange",c=Object.keys(a).sort(function(a,b){return a-b}),d=[],g=0,h=c.length;h>g;g++)b=c[g],d.length>=100&&(f+="\n"+d.length+" beginbfchar\n"+d.join("\n")+"\nendbfchar",d=[]),e=("0000"+a[b].toString(16)).slice(-4),b=(+b).toString(16),d.push("<"+b+"><"+e+">");return d.length&&(f+="\n"+d.length+" beginbfchar\n"+d.join("\n")+"\nendbfchar\n"),f+="endcmap\nCMapName currentdict /CMap defineresource pop\nend\nend"},a.prototype.registerAFM=function(a){var b;return this.name=a,b=this.font,this.ascender=b.ascender,this.decender=b.decender,this.bbox=b.bbox,this.lineGap=b.lineGap,b},a.prototype.embedAFM=function(){return this.dictionary.data={Type:"Font",BaseFont:this.name,Subtype:"Type1",Encoding:"WinAnsiEncoding"},this.dictionary.end()},a.prototype.widthOfString=function(a,b){var c,d,e,f,g,h;for(a=""+a,f=0,d=g=0,h=a.length;h>=0?h>g:g>h;d=h>=0?++g:--g)c=a.charCodeAt(d),f+=this.font.widthOfGlyph(this.font.characterToGlyph(c))||0;return e=b/1e3,f*e},a.prototype.lineHeight=function(a,b){var c;return null==b&&(b=!1),c=b?this.lineGap:0,(this.ascender+c-this.decender)/1e3*a},a}(),a.exports=f}).call(this)}).call(b,c(2).Buffer,"/")},function(a,b,c){(function(){var b,d,e,f,g,h,i,j,k,l,m,n,o,p,q;q=c(44),e=c(72),d=c(73),f=c(74),m=c(75),h=c(78),b=c(79),j=c(80),i=c(81),l=c(82),o=c(83),n=c(84),k=c(85),g=c(86),p=function(){function a(a,b){var c,d,f,g,h,i,j,k,l;if(this.rawData=a,c=this.contents=new e(this.rawData),"ttcf"===c.readString(4)){if(!b)throw new Error("Must specify a font name for TTC files.");for(i=c.readInt(),f=c.readInt(),h=[],d=j=0;f>=0?f>j:j>f;d=f>=0?++j:--j)h[d]=c.readInt();for(d=k=0,l=h.length;l>k;d=++k)if(g=h[d],c.pos=g,this.parse(),this.name.postscriptName===b)return;throw new Error("Font "+b+" not found in TTC file.")}c.pos=0,this.parse()}return a.open=function(b,c){var d;return d=q.readFileSync(b),new a(d,c)},a.fromDFont=function(b,c){var e;return e=d.open(b),new a(e.getNamedFont(c))},a.fromBuffer=function(b,c){var e,f,g;try{if(g=new a(b,c),!(g.head.exists&&g.name.exists&&g.cmap.exists||(e=new d(b),g=new a(e.getNamedFont(c)),g.head.exists&&g.name.exists&&g.cmap.exists)))throw new Error("Invalid TTF file in DFont");return g}catch(h){throw f=h,new Error("Unknown font format in buffer: "+f.message)}},a.prototype.parse=function(){return this.directory=new f(this.contents),this.head=new h(this),this.name=new m(this),this.cmap=new b(this),this.hhea=new i(this),this.maxp=new l(this),this.hmtx=new j(this),this.post=new o(this),this.os2=new n(this),this.loca=new k(this),this.glyf=new g(this),this.ascender=this.os2.exists&&this.os2.ascender||this.hhea.ascender,this.decender=this.os2.exists&&this.os2.decender||this.hhea.decender,this.lineGap=this.os2.exists&&this.os2.lineGap||this.hhea.lineGap,this.bbox=[this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax]},a.prototype.characterToGlyph=function(a){var b;return(null!=(b=this.cmap.unicode)?b.codeMap[a]:void 0)||0},a.prototype.widthOfGlyph=function(a){var b;return b=1e3/this.head.unitsPerEm,this.hmtx.forGlyph(a).advance*b},a}(),a.exports=p}).call(this)},function(a,b){(function(){var b;b=function(){function a(a){this.data=null!=a?a:[],this.pos=0,this.length=this.data.length}return a.prototype.readByte=function(){return this.data[this.pos++]},a.prototype.writeByte=function(a){return this.data[this.pos++]=a},a.prototype.byteAt=function(a){return this.data[a]},a.prototype.readBool=function(){return!!this.readByte()},a.prototype.writeBool=function(a){return this.writeByte(a?1:0)},a.prototype.readUInt32=function(){var a,b,c,d;return a=16777216*this.readByte(),b=this.readByte()<<16,c=this.readByte()<<8,d=this.readByte(),a+b+c+d},a.prototype.writeUInt32=function(a){return this.writeByte(a>>>24&255),this.writeByte(a>>16&255),this.writeByte(a>>8&255),this.writeByte(255&a)},a.prototype.readInt32=function(){var a;return a=this.readUInt32(),a>=2147483648?a-4294967296:a},a.prototype.writeInt32=function(a){return 0>a&&(a+=4294967296),this.writeUInt32(a)},a.prototype.readUInt16=function(){var a,b;return a=this.readByte()<<8,b=this.readByte(),a|b},a.prototype.writeUInt16=function(a){return this.writeByte(a>>8&255),this.writeByte(255&a)},a.prototype.readInt16=function(){var a;return a=this.readUInt16(),a>=32768?a-65536:a},a.prototype.writeInt16=function(a){return 0>a&&(a+=65536),this.writeUInt16(a)},a.prototype.readString=function(a){var b,c,d;for(c=[],b=d=0;a>=0?a>d:d>a;b=a>=0?++d:--d)c[b]=String.fromCharCode(this.readByte());return c.join("")},a.prototype.writeString=function(a){var b,c,d,e;for(e=[],b=c=0,d=a.length;d>=0?d>c:c>d;b=d>=0?++c:--c)e.push(this.writeByte(a.charCodeAt(b)));return e},a.prototype.stringAt=function(a,b){return this.pos=a,this.readString(b)},a.prototype.readShort=function(){return this.readInt16()},a.prototype.writeShort=function(a){return this.writeInt16(a)},a.prototype.readLongLong=function(){var a,b,c,d,e,f,g,h;return a=this.readByte(),b=this.readByte(),c=this.readByte(),d=this.readByte(),e=this.readByte(),f=this.readByte(),g=this.readByte(),h=this.readByte(),128&a?-1*(72057594037927940*(255^a)+281474976710656*(255^b)+1099511627776*(255^c)+4294967296*(255^d)+16777216*(255^e)+65536*(255^f)+256*(255^g)+(255^h)+1):72057594037927940*a+281474976710656*b+1099511627776*c+4294967296*d+16777216*e+65536*f+256*g+h},a.prototype.writeLongLong=function(a){var b,c;return b=Math.floor(a/4294967296),c=4294967295&a,this.writeByte(b>>24&255),this.writeByte(b>>16&255),this.writeByte(b>>8&255),this.writeByte(255&b),this.writeByte(c>>24&255),this.writeByte(c>>16&255),this.writeByte(c>>8&255),this.writeByte(255&c)},a.prototype.readInt=function(){return this.readInt32()},a.prototype.writeInt=function(a){return this.writeInt32(a)},a.prototype.slice=function(a,b){return this.data.slice(a,b)},a.prototype.read=function(a){var b,c,d;for(b=[],c=d=0;a>=0?a>d:d>a;c=a>=0?++d:--d)b.push(this.readByte());return b},a.prototype.write=function(a){var b,c,d,e;for(e=[],c=0,d=a.length;d>c;c++)b=a[c],e.push(this.writeByte(b));return e},a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f,g;g=c(44),d=c(72),e=c(74),f=c(75),b=function(){function a(a){this.contents=new d(a),this.parse(this.contents)}return a.open=function(b){var c;return c=g.readFileSync(b),new a(c)},a.prototype.parse=function(a){var b,c,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G;for(j=a.readInt(),u=a.readInt(),i=a.readInt(),t=a.readInt(),this.map={},a.pos=u+24,E=a.readShort()+u,y=a.readShort()+u,a.pos=E,v=a.readShort(),o=F=0;v>=F;o=F+=1){for(D=a.readString(4),w=a.readShort(),C=a.readShort(),this.map[D]={list:[],named:{}},B=a.pos,a.pos=E+C,q=G=0;w>=G;q=G+=1)p=a.readShort(),z=a.readShort(),b=a.readByte(),c=a.readByte()<<16,g=a.readByte()<<8,h=a.readByte(),k=j+(0|c|g|h),n=a.readUInt32(),l={id:p,attributes:b,offset:k,handle:n},A=a.pos,-1!==z&&u+t>y+z?(a.pos=y+z,r=a.readByte(),l.name=a.readString(r)):"sfnt"===D&&(a.pos=l.offset,s=a.readUInt32(),m={},m.contents=new d(a.slice(a.pos,a.pos+s)),m.directory=new e(m.contents),x=new f(m),l.name=x.fontName[0].raw),a.pos=A,this.map[D].list.push(l),l.name&&(this.map[D].named[l.name]=l);a.pos=B}},a.prototype.getNamedFont=function(a){var b,c,d,e,f,g;if(b=this.contents,e=b.pos,c=null!=(g=this.map.sfnt)?g.named[a]:void 0,!c)throw new Error("Font "+a+" not found in DFont file.");return b.pos=c.offset,d=b.readUInt32(),f=b.slice(b.pos,b.pos+d),b.pos=e,f},a}(),a.exports=b}).call(this)},function(a,b,c){(function(b){(function(){var d,e,f=[].slice;d=c(72),e=function(){function a(a){var b,c,d,e;for(this.scalarType=a.readInt(),this.tableCount=a.readShort(),this.searchRange=a.readShort(),this.entrySelector=a.readShort(),this.rangeShift=a.readShort(),this.tables={},c=d=0,e=this.tableCount;e>=0?e>d:d>e;c=e>=0?++d:--d)b={tag:a.readString(4),checksum:a.readInt(),offset:a.readInt(),length:a.readInt()},this.tables[b.tag]=b}var c;return a.prototype.encode=function(a){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;p=Object.keys(a).length,j=Math.log(2),m=16*Math.floor(Math.log(p)/j),h=Math.floor(m/j),l=16*p-m,f=new d,f.writeInt(this.scalarType),f.writeShort(p),f.writeShort(m),f.writeShort(h),f.writeShort(l),g=16*p,k=f.pos+g,i=null,q=[];for(r in a)for(o=a[r],f.writeString(r),f.writeInt(c(o)),f.writeInt(k),f.writeInt(o.length),q=q.concat(o),"head"===r&&(i=k),k+=o.length;k%4;)q.push(0),k++;return f.write(q),n=c(f.data),e=2981146554-n,f.pos=i+8,f.writeUInt32(e),new b(f.data)},c=function(a){var b,c,e,g,h;for(a=f.call(a);a.length%4;)a.push(0);for(e=new d(a),c=0,b=g=0,h=a.length;h>g;b=g+=4)c+=e.readUInt32();return 4294967295&c},a}(),a.exports=e}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(){var b,d,e,f,g,h={}.hasOwnProperty,i=function(a,b){function c(){this.constructor=a}for(var d in b)h.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};f=c(76),b=c(72),g=c(77),e=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}var e;return i(c,a),c.prototype.tag="name",c.prototype.parse=function(a){var b,c,e,f,g,h,i,j,k,l,m,n,o;for(a.pos=this.offset,f=a.readShort(),b=a.readShort(),i=a.readShort(),c=[],g=l=0;b>=0?b>l:l>b;g=b>=0?++l:--l)c.push({platformID:a.readShort(),encodingID:a.readShort(),languageID:a.readShort(),nameID:a.readShort(),length:a.readShort(),offset:this.offset+i+a.readShort()});for(j={},g=m=0,n=c.length;n>m;g=++m)e=c[g],a.pos=e.offset,k=a.readString(e.length),h=new d(k,e),null==j[o=e.nameID]&&(j[o]=[]),j[e.nameID].push(h);return this.strings=j,this.copyright=j[0],this.fontFamily=j[1],this.fontSubfamily=j[2],this.uniqueSubfamily=j[3],this.fontName=j[4],this.version=j[5],this.postscriptName=j[6][0].raw.replace(/[\x00-\x19\x80-\xff]/g,""),this.trademark=j[7],this.manufacturer=j[8],this.designer=j[9],
+this.description=j[10],this.vendorUrl=j[11],this.designerUrl=j[12],this.license=j[13],this.licenseUrl=j[14],this.preferredFamily=j[15],this.preferredSubfamily=j[17],this.compatibleFull=j[18],this.sampleText=j[19]},e="AAAAAA",c.prototype.encode=function(){var a,c,f,h,i,j,k,l,m,n,o,p,q,r;m={},r=this.strings;for(a in r)o=r[a],m[a]=o;i=new d(""+e+"+"+this.postscriptName,{platformID:1,encodingID:0,languageID:0}),m[6]=[i],e=g.successorOf(e),j=0;for(a in m)c=m[a],null!=c&&(j+=c.length);n=new b,k=new b,n.writeShort(0),n.writeShort(j),n.writeShort(6+12*j);for(f in m)if(c=m[f],null!=c)for(p=0,q=c.length;q>p;p++)l=c[p],n.writeShort(l.platformID),n.writeShort(l.encodingID),n.writeShort(l.languageID),n.writeShort(f),n.writeShort(l.length),n.writeShort(k.pos),k.writeString(l.raw);return h={postscriptName:i.raw,table:n.data.concat(k.data)}},c}(f),a.exports=e,d=function(){function a(a,b){this.raw=a,this.length=this.raw.length,this.platformID=b.platformID,this.encodingID=b.encodingID,this.languageID=b.languageID}return a}()}).call(this)},function(a,b){(function(){var b;b=function(){function a(a){var b;this.file=a,b=this.file.directory.tables[this.tag],this.exists=!!b,b&&(this.offset=b.offset,this.length=b.length,this.parse(this.file.contents))}return a.prototype.parse=function(){},a.prototype.encode=function(){},a.prototype.raw=function(){return this.exists?(this.file.contents.pos=this.offset,this.file.contents.read(this.length)):null},a}(),a.exports=b}).call(this)},function(a,b){(function(){b.successorOf=function(a){var b,c,d,e,f,g,h,i,j,k;for(c="abcdefghijklmnopqrstuvwxyz",i=c.length,k=a,e=a.length;e>=0;){if(h=a.charAt(--e),isNaN(h)){if(f=c.indexOf(h.toLowerCase()),-1===f)j=h,d=!0;else if(j=c.charAt((f+1)%i),g=h===h.toUpperCase(),g&&(j=j.toUpperCase()),d=f+1>=i,d&&0===e){b=g?"A":"a",k=b+j+k.slice(1);break}}else if(j=+h+1,d=j>9,d&&(j=0),d&&0===e){k="1"+j+k.slice(1);break}if(k=k.slice(0,e)+j+k.slice(e+1),!d)break}return k},b.invert=function(a){var b,c,d;c={};for(b in a)d=a[b],c[d]=b;return c}}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="head",c.prototype.parse=function(a){return a.pos=this.offset,this.version=a.readInt(),this.revision=a.readInt(),this.checkSumAdjustment=a.readInt(),this.magicNumber=a.readInt(),this.flags=a.readShort(),this.unitsPerEm=a.readShort(),this.created=a.readLongLong(),this.modified=a.readLongLong(),this.xMin=a.readShort(),this.yMin=a.readShort(),this.xMax=a.readShort(),this.yMax=a.readShort(),this.macStyle=a.readShort(),this.lowestRecPPEM=a.readShort(),this.fontDirectionHint=a.readShort(),this.indexToLocFormat=a.readShort(),this.glyphDataFormat=a.readShort()},c.prototype.encode=function(a){var c;return c=new b,c.writeInt(this.version),c.writeInt(this.revision),c.writeInt(this.checkSumAdjustment),c.writeInt(this.magicNumber),c.writeShort(this.flags),c.writeShort(this.unitsPerEm),c.writeLongLong(this.created),c.writeLongLong(this.modified),c.writeShort(this.xMin),c.writeShort(this.yMin),c.writeShort(this.xMax),c.writeShort(this.yMax),c.writeShort(this.macStyle),c.writeShort(this.lowestRecPPEM),c.writeShort(this.fontDirectionHint),c.writeShort(a.type),c.writeShort(this.glyphDataFormat),c.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f,g={}.hasOwnProperty,h=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};f=c(76),e=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return h(c,a),c.prototype.tag="cmap",c.prototype.parse=function(a){var c,d,e,f;for(a.pos=this.offset,this.version=a.readUInt16(),e=a.readUInt16(),this.tables=[],this.unicode=null,d=f=0;e>=0?e>f:f>e;d=e>=0?++f:--f)c=new b(a,this.offset),this.tables.push(c),c.isUnicode&&null==this.unicode&&(this.unicode=c);return!0},c.encode=function(a,c){var d,f;return null==c&&(c="macroman"),d=b.encode(a,c),f=new e,f.writeUInt16(0),f.writeUInt16(1),d.table=f.data.concat(d.subtable),d},c}(f),b=function(){function a(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;switch(this.platformID=a.readUInt16(),this.encodingID=a.readShort(),this.offset=b+a.readInt(),l=a.pos,a.pos=this.offset,this.format=a.readUInt16(),this.length=a.readUInt16(),this.language=a.readUInt16(),this.isUnicode=3===this.platformID&&1===this.encodingID&&4===this.format||0===this.platformID&&4===this.format,this.codeMap={},this.format){case 0:for(h=r=0;256>r;h=++r)this.codeMap[h]=a.readByte();break;case 4:for(n=a.readUInt16(),m=n/2,a.pos+=6,e=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),a.pos+=2,p=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),i=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),j=function(){var b,c;for(c=[],h=b=0;m>=0?m>b:b>m;h=m>=0?++b:--b)c.push(a.readUInt16());return c}(),d=(this.length-a.pos+this.offset)/2,g=function(){var b,c;for(c=[],h=b=0;d>=0?d>b:b>d;h=d>=0?++b:--b)c.push(a.readUInt16());return c}(),h=s=0,u=e.length;u>s;h=++s)for(q=e[h],o=p[h],c=t=o;q>=o?q>=t:t>=q;c=q>=o?++t:--t)0===j[h]?f=c+i[h]:(k=j[h]/2+(c-o)-(m-h),f=g[k]||0,0!==f&&(f+=i[h])),this.codeMap[c]=65535&f}a.pos=l}return a.encode=function(a,b){var c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X;switch(F=new e,g=Object.keys(a).sort(function(a,b){return a-b}),b){case"macroman":for(p=0,q=function(){var a,b;for(b=[],o=a=0;256>a;o=++a)b.push(0);return b}(),s={0:0},f={},G=0,K=g.length;K>G;G++)d=g[G],null==s[U=a[d]]&&(s[U]=++p),f[d]={old:a[d],"new":s[a[d]]},q[d]=s[a[d]];return F.writeUInt16(1),F.writeUInt16(0),F.writeUInt32(12),F.writeUInt16(0),F.writeUInt16(262),F.writeUInt16(0),F.write(q),y={charMap:f,subtable:F.data,maxGlyphID:p+1};case"unicode":for(D=[],l=[],t=0,s={},c={},r=j=null,H=0,L=g.length;L>H;H++)d=g[H],v=a[d],null==s[v]&&(s[v]=++t),c[d]={old:v,"new":s[v]},h=s[v]-d,null!=r&&h===j||(r&&l.push(r),D.push(d),j=h),r=d;for(r&&l.push(r),l.push(65535),D.push(65535),A=D.length,B=2*A,z=2*Math.pow(Math.log(A)/Math.LN2,2),m=Math.log(z/2)/Math.LN2,x=2*A-z,i=[],w=[],n=[],o=I=0,M=D.length;M>I;o=++I){if(C=D[o],k=l[o],65535===C){i.push(0),w.push(0);break}if(E=c[C]["new"],C-E>=32768)for(i.push(0),w.push(2*(n.length+A-o)),d=J=C;k>=C?k>=J:J>=k;d=k>=C?++J:--J)n.push(c[d]["new"]);else i.push(E-C),w.push(0)}for(F.writeUInt16(3),F.writeUInt16(1),F.writeUInt32(12),F.writeUInt16(4),F.writeUInt16(16+8*A+2*n.length),F.writeUInt16(0),F.writeUInt16(B),F.writeUInt16(z),F.writeUInt16(m),F.writeUInt16(x),S=0,N=l.length;N>S;S++)d=l[S],F.writeUInt16(d);for(F.writeUInt16(0),T=0,O=D.length;O>T;T++)d=D[T],F.writeUInt16(d);for(V=0,P=i.length;P>V;V++)h=i[V],F.writeUInt16(h);for(W=0,Q=w.length;Q>W;W++)u=w[W],F.writeUInt16(u);for(X=0,R=n.length;R>X;X++)p=n[X],F.writeUInt16(p);return y={charMap:c,subtable:F.data,maxGlyphID:t+1}}},a}(),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="hmtx",c.prototype.parse=function(a){var b,c,d,e,f,g,h,i;for(a.pos=this.offset,this.metrics=[],b=f=0,h=this.file.hhea.numberOfMetrics;h>=0?h>f:f>h;b=h>=0?++f:--f)this.metrics.push({advance:a.readUInt16(),lsb:a.readInt16()});for(d=this.file.maxp.numGlyphs-this.file.hhea.numberOfMetrics,this.leftSideBearings=function(){var c,e;for(e=[],b=c=0;d>=0?d>c:c>d;b=d>=0?++c:--c)e.push(a.readInt16());return e}(),this.widths=function(){var a,b,c,d;for(c=this.metrics,d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(e.advance);return d}.call(this),c=this.widths[this.widths.length-1],i=[],b=g=0;d>=0?d>g:g>d;b=d>=0?++g:--g)i.push(this.widths.push(c));return i},c.prototype.forGlyph=function(a){var b;return a in this.metrics?this.metrics[a]:b={advance:this.metrics[this.metrics.length-1].advance,lsb:this.leftSideBearings[a-this.metrics.length]}},c.prototype.encode=function(a){var c,d,e,f,g;for(e=new b,f=0,g=a.length;g>f;f++)c=a[f],d=this.forGlyph(c),e.writeUInt16(d.advance),e.writeUInt16(d.lsb);return e.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="hhea",c.prototype.parse=function(a){return a.pos=this.offset,this.version=a.readInt(),this.ascender=a.readShort(),this.decender=a.readShort(),this.lineGap=a.readShort(),this.advanceWidthMax=a.readShort(),this.minLeftSideBearing=a.readShort(),this.minRightSideBearing=a.readShort(),this.xMaxExtent=a.readShort(),this.caretSlopeRise=a.readShort(),this.caretSlopeRun=a.readShort(),this.caretOffset=a.readShort(),a.pos+=8,this.metricDataFormat=a.readShort(),this.numberOfMetrics=a.readUInt16()},c.prototype.encode=function(a){var c,d,e,f;for(d=new b,d.writeInt(this.version),d.writeShort(this.ascender),d.writeShort(this.decender),d.writeShort(this.lineGap),d.writeShort(this.advanceWidthMax),d.writeShort(this.minLeftSideBearing),d.writeShort(this.minRightSideBearing),d.writeShort(this.xMaxExtent),d.writeShort(this.caretSlopeRise),d.writeShort(this.caretSlopeRun),d.writeShort(this.caretOffset),c=e=0,f=8;f>=0?f>e:e>f;c=f>=0?++e:--e)d.writeByte(0);return d.writeShort(this.metricDataFormat),d.writeUInt16(a.length),d.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="maxp",c.prototype.parse=function(a){return a.pos=this.offset,this.version=a.readInt(),this.numGlyphs=a.readUInt16(),this.maxPoints=a.readUInt16(),this.maxContours=a.readUInt16(),this.maxCompositePoints=a.readUInt16(),this.maxComponentContours=a.readUInt16(),this.maxZones=a.readUInt16(),this.maxTwilightPoints=a.readUInt16(),this.maxStorage=a.readUInt16(),this.maxFunctionDefs=a.readUInt16(),this.maxInstructionDefs=a.readUInt16(),this.maxStackElements=a.readUInt16(),this.maxSizeOfInstructions=a.readUInt16(),this.maxComponentElements=a.readUInt16(),this.maxComponentDepth=a.readUInt16()},c.prototype.encode=function(a){var c;return c=new b,c.writeInt(this.version),c.writeUInt16(a.length),c.writeUInt16(this.maxPoints),c.writeUInt16(this.maxContours),c.writeUInt16(this.maxCompositePoints),c.writeUInt16(this.maxComponentContours),c.writeUInt16(this.maxZones),c.writeUInt16(this.maxTwilightPoints),c.writeUInt16(this.maxStorage),c.writeUInt16(this.maxFunctionDefs),c.writeUInt16(this.maxInstructionDefs),c.writeUInt16(this.maxStackElements),c.writeUInt16(this.maxSizeOfInstructions),c.writeUInt16(this.maxComponentElements),c.writeUInt16(this.maxComponentDepth),c.data},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}var d;return g(c,a),c.prototype.tag="post",c.prototype.parse=function(a){var b,c,d,e,f;switch(a.pos=this.offset,this.format=a.readInt(),this.italicAngle=a.readInt(),this.underlinePosition=a.readShort(),this.underlineThickness=a.readShort(),this.isFixedPitch=a.readInt(),this.minMemType42=a.readInt(),this.maxMemType42=a.readInt(),this.minMemType1=a.readInt(),this.maxMemType1=a.readInt(),this.format){case 65536:break;case 131072:for(d=a.readUInt16(),this.glyphNameIndex=[],b=e=0;d>=0?d>e:e>d;b=d>=0?++e:--e)this.glyphNameIndex.push(a.readUInt16());for(this.names=[],f=[];a.pos<this.offset+this.length;)c=a.readByte(),f.push(this.names.push(a.readString(c)));return f;case 151552:return d=a.readUInt16(),this.offsets=a.read(d);case 196608:break;case 262144:return this.map=function(){var c,d,e;for(e=[],b=c=0,d=this.file.maxp.numGlyphs;d>=0?d>c:c>d;b=d>=0?++c:--c)e.push(a.readUInt32());return e}.call(this)}},c.prototype.glyphFor=function(a){var b;switch(this.format){case 65536:return d[a]||".notdef";case 131072:return b=this.glyphNameIndex[a],257>=b?d[b]:this.names[b-258]||".notdef";case 151552:return d[a+this.offsets[a]]||".notdef";case 196608:return".notdef";case 262144:return this.map[a]||65535}},c.prototype.encode=function(a){var c,e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(!this.exists)return null;if(i=this.raw(),196608===this.format)return i;for(l=new b(i.slice(0,32)),l.writeUInt32(131072),l.pos=32,f=[],k=[],m=0,p=a.length;p>m;m++)c=a[m],h=this.glyphFor(c),g=d.indexOf(h),-1!==g?f.push(g):(f.push(257+k.length),k.push(h));for(l.writeUInt16(Object.keys(a).length),n=0,q=f.length;q>n;n++)e=f[n],l.writeUInt16(e);for(o=0,r=k.length;r>o;o++)j=k[o],l.writeByte(j.length),l.writeString(j);return l.data},d=".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent\nampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash\nzero one two three four five six seven eight nine colon semicolon less equal greater\nquestion at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\nbracketleft backslash bracketright asciicircum underscore grave\na b c d e f g h i j k l m n o p q r s t u v w x y z\nbraceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis\nUdieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave\necircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve\nocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent\nsterling section bullet paragraph germandbls registered copyright trademark acute\ndieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu\npartialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash\nquestiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft\nguillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash\nquotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis\nfraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered\nquotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis\nEgrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute\nUcircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla\nhungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth\neth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior\nonehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla\nCacute cacute Ccaron ccaron dcroat".split(/\s+/g),c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e={}.hasOwnProperty,f=function(a,b){function c(){this.constructor=a}for(var d in b)e.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};d=c(76),b=function(a){function b(){return b.__super__.constructor.apply(this,arguments)}return f(b,a),b.prototype.tag="OS/2",b.prototype.parse=function(a){var b;return a.pos=this.offset,this.version=a.readUInt16(),this.averageCharWidth=a.readShort(),this.weightClass=a.readUInt16(),this.widthClass=a.readUInt16(),this.type=a.readShort(),this.ySubscriptXSize=a.readShort(),this.ySubscriptYSize=a.readShort(),this.ySubscriptXOffset=a.readShort(),this.ySubscriptYOffset=a.readShort(),this.ySuperscriptXSize=a.readShort(),this.ySuperscriptYSize=a.readShort(),this.ySuperscriptXOffset=a.readShort(),this.ySuperscriptYOffset=a.readShort(),this.yStrikeoutSize=a.readShort(),this.yStrikeoutPosition=a.readShort(),this.familyClass=a.readShort(),this.panose=function(){var c,d;for(d=[],b=c=0;10>c;b=++c)d.push(a.readByte());return d}(),this.charRange=function(){var c,d;for(d=[],b=c=0;4>c;b=++c)d.push(a.readInt());return d}(),this.vendorID=a.readString(4),this.selection=a.readShort(),this.firstCharIndex=a.readShort(),this.lastCharIndex=a.readShort(),this.version>0&&(this.ascent=a.readShort(),this.descent=a.readShort(),this.lineGap=a.readShort(),this.winAscent=a.readShort(),this.winDescent=a.readShort(),this.codePageRange=function(){var c,d;for(d=[],b=c=0;2>c;b=++c)d.push(a.readInt());return d}(),this.version>1)?(this.xHeight=a.readShort(),this.capHeight=a.readShort(),this.defaultChar=a.readShort(),this.breakChar=a.readShort(),this.maxContext=a.readShort()):void 0},b.prototype.encode=function(){return this.raw()},b}(d),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};e=c(76),b=c(72),d=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return g(c,a),c.prototype.tag="loca",c.prototype.parse=function(a){var b,c;return a.pos=this.offset,b=this.file.head.indexToLocFormat,0===b?this.offsets=function(){var b,d,e;for(e=[],c=b=0,d=this.length;d>b;c=b+=2)e.push(2*a.readUInt16());return e}.call(this):this.offsets=function(){var b,d,e;for(e=[],c=b=0,d=this.length;d>b;c=b+=4)e.push(a.readUInt32());return e}.call(this)},c.prototype.indexOf=function(a){return this.offsets[a]},c.prototype.lengthOf=function(a){return this.offsets[a+1]-this.offsets[a]},c.prototype.encode=function(a){var c,d,e,f,g,h,i,j,k,l,m;for(f=new b,g=0,j=a.length;j>g;g++)if(d=a[g],d>65535){for(m=this.offsets,h=0,k=m.length;k>h;h++)c=m[h],f.writeUInt32(c);return e={format:1,table:f.data}}for(i=0,l=a.length;l>i;i++)c=a[i],f.writeUInt16(c/2);return e={format:0,table:f.data}},c}(e),a.exports=d}).call(this)},function(a,b,c){(function(){var b,d,e,f,g,h={}.hasOwnProperty,i=function(a,b){function c(){this.constructor=a}for(var d in b)h.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},j=[].slice;g=c(76),d=c(72),e=function(a){function c(){return c.__super__.constructor.apply(this,arguments)}return i(c,a),c.prototype.tag="glyf",c.prototype.parse=function(a){return this.cache={}},c.prototype.glyphFor=function(a){var c,e,g,h,i,j,k,l,m,n;return a in this.cache?this.cache[a]:(h=this.file.loca,c=this.file.contents,e=h.indexOf(a),g=h.lengthOf(a),0===g?this.cache[a]=null:(c.pos=this.offset+e,j=new d(c.read(g)),i=j.readShort(),l=j.readShort(),n=j.readShort(),k=j.readShort(),m=j.readShort(),-1===i?this.cache[a]=new b(j,l,n,k,m):this.cache[a]=new f(j,i,l,n,k,m),this.cache[a]))},c.prototype.encode=function(a,b,c){var d,e,f,g,h,i;for(g=[],f=[],h=0,i=b.length;i>h;h++)e=b[h],d=a[e],f.push(g.length),d&&(g=g.concat(d.encode(c)));return f.push(g.length),{table:g,offsets:f}},c}(g),f=function(){function a(a,b,c,d,e,f){this.raw=a,this.numberOfContours=b,this.xMin=c,this.yMin=d,this.xMax=e,this.yMax=f,this.compound=!1}return a.prototype.encode=function(){return this.raw.data},a}(),b=function(){function a(a,d,h,i,j){var k,l;for(this.raw=a,this.xMin=d,this.yMin=h,this.xMax=i,this.yMax=j,this.compound=!0,this.glyphIDs=[],this.glyphOffsets=[],k=this.raw;;){if(l=k.readShort(),this.glyphOffsets.push(k.pos),this.glyphIDs.push(k.readShort()),!(l&c))break;l&b?k.pos+=4:k.pos+=2,l&g?k.pos+=8:l&e?k.pos+=4:l&f&&(k.pos+=2)}}var b,c,e,f,g,h;return b=1,f=8,c=32,e=64,g=128,h=256,a.prototype.encode=function(a){var b,c,e,f,g,h;for(e=new d(j.call(this.raw.data)),h=this.glyphIDs,b=f=0,g=h.length;g>f;b=++f)c=h[b],e.pos=this.glyphOffsets[b],e.writeShort(a[c]);return e.data},a}(),a.exports=e}).call(this)},function(a,b,c){(function(){var b,d;d=c(44),b=function(){function a(a){var b,d;this.contents=a,this.attributes={},this.glyphWidths={},this.boundingBoxes={},this.parse(),this.charWidths=function(){var a,b;for(b=[],d=a=0;255>=a;d=++a)b.push(this.glyphWidths[c[d]]);return b}.call(this),this.bbox=function(){var a,c,d,e;for(d=this.attributes.FontBBox.split(/\s+/),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(+b);return e}.call(this),this.ascender=+(this.attributes.Ascender||0),this.decender=+(this.attributes.Descender||0),this.lineGap=this.bbox[3]-this.bbox[1]-(this.ascender-this.decender)}var b,c;return a.open=function(b){return new a(d.readFileSync(b,"utf8"))},a.prototype.parse=function(){var a,b,c,d,e,f,g,h,i,j;for(f="",j=this.contents.split("\n"),h=0,i=j.length;i>h;h++)if(c=j[h],d=c.match(/^Start(\w+)/))f=d[1];else if(d=c.match(/^End(\w+)/))f="";else switch(f){case"FontMetrics":d=c.match(/(^\w+)\s+(.*)/),b=d[1],g=d[2],(a=this.attributes[b])?(Array.isArray(a)||(a=this.attributes[b]=[a]),a.push(g)):this.attributes[b]=g;break;case"CharMetrics":if(!/^CH?\s/.test(c))continue;e=c.match(/\bN\s+(\.?\w+)\s*;/)[1],this.glyphWidths[e]=+c.match(/\bWX\s+(\d+)\s*;/)[1]}},b={402:131,8211:150,8212:151,8216:145,8217:146,8218:130,8220:147,8221:148,8222:132,8224:134,8225:135,8226:149,8230:133,8364:128,8240:137,8249:139,8250:155,710:136,8482:153,338:140,339:156,732:152,352:138,353:154,376:159,381:142,382:158},a.prototype.encodeText=function(a){var c,d,e,f,g;for(e="",d=f=0,g=a.length;g>=0?g>f:f>g;d=g>=0?++f:--f)c=a.charCodeAt(d),c=b[c]||c,e+=String.fromCharCode(c);return e},a.prototype.characterToGlyph=function(a){return c[b[a]||a]},a.prototype.widthOfGlyph=function(a){return this.glyphWidths[a]},c=".notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n.notdef       .notdef        .notdef        .notdef\n\nspace         exclam         quotedbl       numbersign\ndollar        percent        ampersand      quotesingle\nparenleft     parenright     asterisk       plus\ncomma         hyphen         period         slash\nzero          one            two            three\nfour          five           six            seven\neight         nine           colon          semicolon\nless          equal          greater        question\n\nat            A              B              C\nD             E              F              G\nH             I              J              K\nL             M              N              O\nP             Q              R              S\nT             U              V              W\nX             Y              Z              bracketleft\nbackslash     bracketright   asciicircum    underscore\n\ngrave         a              b              c\nd             e              f              g\nh             i              j              k\nl             m              n              o\np             q              r              s\nt             u              v              w\nx             y              z              braceleft\nbar           braceright     asciitilde     .notdef\n\nEuro          .notdef        quotesinglbase florin\nquotedblbase  ellipsis       dagger         daggerdbl\ncircumflex    perthousand    Scaron         guilsinglleft\nOE            .notdef        Zcaron         .notdef\n.notdef       quoteleft      quoteright     quotedblleft\nquotedblright bullet         endash         emdash\ntilde         trademark      scaron         guilsinglright\noe            .notdef        zcaron         ydieresis\n\nspace         exclamdown     cent           sterling\ncurrency      yen            brokenbar      section\ndieresis      copyright      ordfeminine    guillemotleft\nlogicalnot    hyphen         registered     macron\ndegree        plusminus      twosuperior    threesuperior\nacute         mu             paragraph      periodcentered\ncedilla       onesuperior    ordmasculine   guillemotright\nonequarter    onehalf        threequarters  questiondown\n\nAgrave        Aacute         Acircumflex    Atilde\nAdieresis     Aring          AE             Ccedilla\nEgrave        Eacute         Ecircumflex    Edieresis\nIgrave        Iacute         Icircumflex    Idieresis\nEth           Ntilde         Ograve         Oacute\nOcircumflex   Otilde         Odieresis      multiply\nOslash        Ugrave         Uacute         Ucircumflex\nUdieresis     Yacute         Thorn          germandbls\n\nagrave        aacute         acircumflex    atilde\nadieresis     aring          ae             ccedilla\negrave        eacute         ecircumflex    edieresis\nigrave        iacute         icircumflex    idieresis\neth           ntilde         ograve         oacute\nocircumflex   otilde         odieresis      divide\noslash        ugrave         uacute         ucircumflex\nudieresis     yacute         thorn          ydieresis".split(/\s+/),a}(),a.exports=b}).call(this)},function(a,b,c){(function(){var b,d,e,f=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=c(79),e=c(77),d=function(){function a(a){this.font=a,this.subset={},this.unicodes={},this.next=33}return a.prototype.use=function(a){var b,c,d;{if("string"!=typeof a)return this.unicodes[a]?void 0:(this.subset[this.next]=a,this.unicodes[a]=this.next++);for(b=c=0,d=a.length;d>=0?d>c:c>d;b=d>=0?++c:--c)this.use(a.charCodeAt(b))}},a.prototype.encodeText=function(a){var b,c,d,e,f;for(d="",c=e=0,f=a.length;f>=0?f>e:e>f;c=f>=0?++e:--e)b=this.unicodes[a.charCodeAt(c)],d+=String.fromCharCode(b);return d},a.prototype.generateCmap=function(){var a,b,c,d,e;d=this.font.cmap.tables[0].codeMap,a={},e=this.subset;for(b in e)c=e[b],a[b]=d[c];return a},a.prototype.glyphIDs=function(){var a,b,c,d,e,g;d=this.font.cmap.tables[0].codeMap,a=[0],g=this.subset;for(b in g)c=g[b],e=d[c],null!=e&&f.call(a,e)<0&&a.push(e);return a.sort()},a.prototype.glyphsFor=function(a){var b,c,d,e,f,g,h;for(d={},f=0,g=a.length;g>f;f++)e=a[f],d[e]=this.font.glyf.glyphFor(e);b=[];for(e in d)c=d[e],(null!=c?c.compound:void 0)&&b.push.apply(b,c.glyphIDs);if(b.length>0){h=this.glyphsFor(b);for(e in h)c=h[e],d[e]=c}return d},a.prototype.encode=function(){var a,c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s;a=b.encode(this.generateCmap(),"unicode"),f=this.glyphsFor(this.glyphIDs()),n={0:0},r=a.charMap;for(c in r)h=r[c],n[h.old]=h["new"];m=a.maxGlyphID;for(o in f)o in n||(n[o]=m++);k=e.invert(n),l=Object.keys(k).sort(function(a,b){return a-b}),p=function(){var a,b,c;for(c=[],a=0,b=l.length;b>a;a++)g=l[a],c.push(k[g]);return c}(),d=this.font.glyf.encode(f,p,n),i=this.font.loca.encode(d.offsets),j=this.font.name.encode(),this.postscriptName=j.postscriptName,this.cmap={},s=a.charMap;for(c in s)h=s[c],this.cmap[c]=h.old;return q={cmap:a.table,glyf:d.table,loca:i.table,hmtx:this.font.hmtx.encode(p),hhea:this.font.hhea.encode(p),maxp:this.font.maxp.encode(p),post:this.font.post.encode(p),name:j.table,head:this.font.head.encode(i)},this.font.os2.exists&&(q["OS/2"]=this.font.os2.raw()),this.font.directory.encode(q)},a}(),a.exports=d}).call(this)},function(a,b,c){(function(){var b;b=c(90),a.exports={initText:function(){return this.x=0,this.y=0,this._lineGap=0},lineGap:function(a){return this._lineGap=a,this},moveDown:function(a){return null==a&&(a=1),this.y+=this.currentLineHeight(!0)*a+this._lineGap,this},moveUp:function(a){return null==a&&(a=1),this.y-=this.currentLineHeight(!0)*a+this._lineGap,this},_text:function(a,c,d,e,f){var g,h,i,j,k;if(e=this._initOptions(c,d,e),a=""+a,e.wordSpacing&&(a=a.replace(/\s{2,}/g," ")),e.width)h=this._wrapper,h||(h=new b(this,e),h.on("line",f)),this._wrapper=e.continued?h:null,this._textOptions=e.continued?e:null,h.wrap(a,e);else for(k=a.split("\n"),i=0,j=k.length;j>i;i++)g=k[i],f(g,e);return this},text:function(a,b,c,d){return this._text(a,b,c,d,this._line.bind(this))},widthOfString:function(a,b){return null==b&&(b={}),this._font.widthOfString(a,this._fontSize)+(b.characterSpacing||0)*(a.length-1)},heightOfString:function(a,b){var c,d,e,f;return null==b&&(b={}),e=this.x,f=this.y,b=this._initOptions(b),b.height=1/0,d=b.lineGap||this._lineGap||0,this._text(a,this.x,this.y,b,function(a){return function(b,c){return a.y+=a.currentLineHeight(!0)+d}}(this)),c=this.y-f,this.x=e,this.y=f,c},list:function(a,c,d,e,f){var g,h,i,j,k,l,m,n;return e=this._initOptions(c,d,e),n=Math.round(this._font.ascender/1e3*this._fontSize/3),i=e.textIndent||5*n,j=e.bulletIndent||8*n,l=1,k=[],m=[],g=function(a){var b,c,d,e,f;for(f=[],b=d=0,e=a.length;e>d;b=++d)c=a[b],Array.isArray(c)?(l++,g(c),f.push(l--)):(k.push(c),f.push(m.push(l)));return f},g(a),f=new b(this,e),f.on("line",this._line.bind(this)),l=1,h=0,f.on("firstLine",function(a){return function(){var b,c;return(c=m[h++])!==l&&(b=j*(c-l),a.x+=b,f.lineWidth-=b,l=c),a.circle(a.x-i+n,a.y+n+n/2,n),a.fill()}}(this)),f.on("sectionStart",function(a){return function(){var b;return b=i+j*(l-1),a.x+=b,f.lineWidth-=b}}(this)),f.on("sectionEnd",function(a){return function(){var b;return b=i+j*(l-1),a.x-=b,f.lineWidth+=b}}(this)),f.wrap(k.join("\n"),e),this},_initOptions:function(a,b,c){var d,e,f,g;if(null==a&&(a={}),null==c&&(c={}),"object"==typeof a&&(c=a,a=null),c=function(){var a,b,d;b={};for(a in c)d=c[a],b[a]=d;return b}(),this._textOptions){g=this._textOptions;for(d in g)f=g[d],"continued"!==d&&null==c[d]&&(c[d]=f)}return null!=a&&(this.x=a),null!=b&&(this.y=b),c.lineBreak!==!1&&(e=this.page.margins,null==c.width&&(c.width=this.page.width-this.x-e.right)),c.columns||(c.columns=0),null==c.columnGap&&(c.columnGap=18),c},_line:function(a,b,c){var d;return null==b&&(b={}),this._fragment(a,this.x,this.y,b),d=b.lineGap||this._lineGap||0,c?this.y+=this.currentLineHeight(!0)+d:this.x+=this.widthOfString(a)},_fragment:function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(a=""+a,0!==a.length){if(e=d.align||"left",r=d.wordSpacing||0,f=d.characterSpacing||0,d.width)switch(e){case"right":p=this.widthOfString(a.replace(/\s+$/,""),d),b+=d.lineWidth-p;break;case"center":b+=d.lineWidth/2-d.textWidth/2;break;case"justify":s=a.trim().split(/\s+/),p=this.widthOfString(a.replace(/\s+/g,""),d),o=this.widthOfString(" ")+f,r=Math.max(0,(d.lineWidth-p)/Math.max(1,s.length-1)-o)}if(n=d.textWidth+r*(d.wordCount-1)+f*(a.length-1),d.link&&this.link(b,c,n,this.currentLineHeight(),d.link),(d.underline||d.strike)&&(this.save(),d.stroke||this.strokeColor.apply(this,this._fillColor),k=this._fontSize<10?.5:Math.floor(this._fontSize/10),this.lineWidth(k),h=d.underline?1:2,l=c+this.currentLineHeight()/h,d.underline&&(l-=k),this.moveTo(b,l),this.lineTo(b+n,l),this.stroke(),this.restore()),this.save(),this.transform(1,0,0,-1,0,this.page.height),c=this.page.height-c-this._font.ascender/1e3*this._fontSize,null==(t=this.page.fonts)[w=this._font.id]&&(t[w]=this._font.ref()),this._font.use(a),this.addContent("BT"),this.addContent(""+b+" "+c+" Td"),this.addContent("/"+this._font.id+" "+this._fontSize+" Tf"),m=d.fill&&d.stroke?2:d.stroke?1:0,m&&this.addContent(""+m+" Tr"),f&&this.addContent(""+f+" Tc"),r){for(s=a.trim().split(/\s+/),r+=this.widthOfString(" ")+f,r*=1e3/this._fontSize,g=[],u=0,v=s.length;v>u;u++)q=s[u],i=this._font.encode(q),i=function(){var a,b,c;for(c=[],j=a=0,b=i.length;b>a;j=a+=1)c.push(i.charCodeAt(j).toString(16));return c}().join(""),g.push("<"+i+"> "+-r);this.addContent("["+g.join(" ")+"] TJ")}else i=this._font.encode(a),i=function(){var a,b,c;for(c=[],j=a=0,b=i.length;b>a;j=a+=1)c.push(i.charCodeAt(j).toString(16));return c}().join(""),
+this.addContent("<"+i+"> Tj");return this.addContent("ET"),this.restore()}}}}).call(this)},function(a,b,c){(function(){var b,d,e,f={}.hasOwnProperty,g=function(a,b){function c(){this.constructor=a}for(var d in b)f.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a};b=c(26).EventEmitter,d=c(91),e=function(a){function b(a,b){var c;this.document=a,this.indent=b.indent||0,this.characterSpacing=b.characterSpacing||0,this.wordSpacing=0===b.wordSpacing,this.columns=b.columns||1,this.columnGap=null!=(c=b.columnGap)?c:18,this.lineWidth=(b.width-this.columnGap*(this.columns-1))/this.columns,this.spaceLeft=this.lineWidth,this.startX=this.document.x,this.startY=this.document.y,this.column=1,this.ellipsis=b.ellipsis,this.continuedX=0,null!=b.height?(this.height=b.height,this.maxY=this.startY+b.height):this.maxY=this.document.page.maxY(),this.on("firstLine",function(a){return function(b){var c;return c=a.continuedX||a.indent,a.document.x+=c,a.lineWidth-=c,a.once("line",function(){return a.document.x-=c,a.lineWidth+=c,b.continued&&!a.continuedX&&(a.continuedX=a.indent),b.continued?void 0:a.continuedX=0})}}(this)),this.on("lastLine",function(a){return function(b){var c;return c=b.align,"justify"===c&&(b.align="left"),a.lastLine=!0,a.once("line",function(){return a.document.y+=b.paragraphGap||0,b.align=c,a.lastLine=!1})}}(this))}return g(b,a),b.prototype.wordWidth=function(a){return this.document.widthOfString(a,this)+this.characterSpacing+this.wordSpacing},b.prototype.eachWord=function(a,b){var c,e,f,g,h,i,j,k,l,m;for(e=new d(a),h=null,m={};c=e.nextBreak();){if(l=a.slice((null!=h?h.position:void 0)||0,c.position),k=null!=m[l]?m[l]:m[l]=this.wordWidth(l),k>this.lineWidth+this.continuedX)for(i=h,f={};l.length;){for(g=l.length;k>this.spaceLeft;)k=this.wordWidth(l.slice(0,--g));if(f.required=g<l.length,j=b(l.slice(0,g),k,f,i),i={required:!1},l=l.slice(g),k=this.wordWidth(l),j===!1)break}else j=b(l,k,c,h);if(j===!1)break;h=c}},b.prototype.wrap=function(a,b){var c,d,e,f,g,h,i;return null!=b.indent&&(this.indent=b.indent),null!=b.characterSpacing&&(this.characterSpacing=b.characterSpacing),null!=b.wordSpacing&&(this.wordSpacing=b.wordSpacing),null!=b.ellipsis&&(this.ellipsis=b.ellipsis),f=this.document.y+this.document.currentLineHeight(!0),(this.document.y>this.maxY||f>this.maxY)&&this.nextSection(),c="",g=0,h=0,e=0,i=this.document.y,d=function(a){return function(){return b.textWidth=g+a.wordSpacing*(h-1),b.wordCount=h,b.lineWidth=a.lineWidth,i=a.document.y,a.emit("line",c,b,a),e++}}(this),this.emit("sectionStart",b,this),this.eachWord(a,function(a){return function(e,f,i,j){var k,l;if((null==j||j.required)&&(a.emit("firstLine",b,a),a.spaceLeft=a.lineWidth),f<=a.spaceLeft&&(c+=e,g+=f,h++),i.required||f>a.spaceLeft){if(i.required&&a.emit("lastLine",b,a),k=a.document.currentLineHeight(!0),null!=a.height&&a.ellipsis&&a.document.y+2*k>a.maxY&&a.column>=a.columns){for(a.ellipsis===!0&&(a.ellipsis="…"),c=c.replace(/\s+$/,""),g=a.wordWidth(c+a.ellipsis);g>a.lineWidth;)c=c.slice(0,-1).replace(/\s+$/,""),g=a.wordWidth(c+a.ellipsis);c+=a.ellipsis}return d(),a.document.y+k>a.maxY&&(l=a.nextSection(),!l)?(h=0,c="",!1):i.required?(f>a.spaceLeft&&(c=e,g=f,h=1,d()),a.spaceLeft=a.lineWidth,c="",g=0,h=0):(a.spaceLeft=a.lineWidth-f,c=e,g=f,h=1)}return a.spaceLeft-=f}}(this)),h>0&&(this.emit("lastLine",b,this),d()),this.emit("sectionEnd",b,this),b.continued===!0?(e>1&&(this.continuedX=0),this.continuedX+=b.textWidth,this.document.y=i):this.document.x=this.startX},b.prototype.nextSection=function(a){var b;if(this.emit("sectionEnd",a,this),++this.column>this.columns){if(null!=this.height)return!1;this.document.addPage(),this.column=1,this.startY=this.document.page.margins.top,this.maxY=this.document.page.maxY(),this.document.x=this.startX,this.document._fillColor&&(b=this.document).fillColor.apply(b,this.document._fillColor),this.emit("pageBreak",a,this)}else this.document.x+=this.lineWidth+this.columnGap,this.document.y=this.startY,this.emit("columnBreak",a,this);return this.emit("sectionStart",a,this),!0},b}(b),a.exports=e}).call(this)},function(a,b,c){(function(){var b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D;w=c(92),A=new w(c(93)),C=c(94),f=C.BK,k=C.CR,o=C.LF,q=C.NL,g=C.CB,e=C.BA,v=C.SP,x=C.WJ,v=C.SP,f=C.BK,o=C.LF,q=C.NL,b=C.AI,d=C.AL,t=C.SA,u=C.SG,y=C.XX,i=C.CJ,m=C.ID,r=C.NS,z=C.characterClasses,D=c(95),l=D.DI_BRK,n=D.IN_BRK,h=D.CI_BRK,j=D.CP_BRK,s=D.PR_BRK,B=D.pairTable,p=function(){function a(a){this.string=a,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null}var c,m,p;return a.prototype.nextCodePoint=function(){var a,b;return a=this.string.charCodeAt(this.pos++),b=this.string.charCodeAt(this.pos),a>=55296&&56319>=a&&b>=56320&&57343>=b?(this.pos++,1024*(a-55296)+(b-56320)+65536):a},m=function(a){switch(a){case b:return d;case t:case u:case y:return d;case i:return r;default:return a}},p=function(a){switch(a){case o:case q:return f;case g:return e;case v:return x;default:return a}},a.prototype.nextCharClass=function(a){return null==a&&(a=!1),m(A.get(this.nextCodePoint()))},c=function(){function a(a,b){this.position=a,this.required=null!=b?b:!1}return a}(),a.prototype.nextBreak=function(){var a,b,d;for(null==this.curClass&&(this.curClass=p(this.nextCharClass()));this.pos<this.string.length;){if(this.lastPos=this.pos,b=this.nextClass,this.nextClass=this.nextCharClass(),this.curClass===f||this.curClass===k&&this.nextClass!==o)return this.curClass=p(m(this.nextClass)),new c(this.lastPos,!0);if(a=function(){switch(this.nextClass){case v:return this.curClass;case f:case o:case q:return f;case k:return k;case g:return e}}.call(this),null==a){switch(d=!1,B[this.curClass][this.nextClass]){case l:d=!0;break;case n:d=b===v;break;case h:if(d=b===v,!d)continue;break;case j:if(b!==v)continue}if(this.curClass=this.nextClass,d)return new c(this.lastPos)}else if(this.curClass=a,this.nextClass===g)return new c(this.lastPos)}return this.pos>=this.string.length?this.lastPos<this.string.length?(this.lastPos=this.string.length,new c(this.string.length)):null:void 0},a}(),a.exports=p}).call(this)},function(a,b){var c,d=[].slice;c=function(){function a(a){var b,c;null==a&&(a={}),this.data=a.data||[],this.highStart=null!=(b=a.highStart)?b:0,this.errorValue=null!=(c=a.errorValue)?c:-1}var b,c,e,f,g,h,i,j,k,l,m,n,o,p,q,r;return n=11,p=5,o=n-p,m=65536>>n,g=1<<o,i=g-1,j=2,b=1<<p,e=b-1,l=65536>>p,k=1024>>p,h=l+k,r=h,q=32,f=r+q,c=1<<j,a.prototype.get=function(a){var b;return 0>a||a>1114111?this.errorValue:55296>a||a>56319&&65535>=a?(b=(this.data[a>>p]<<j)+(a&e),this.data[b]):65535>=a?(b=(this.data[l+(a-55296>>p)]<<j)+(a&e),this.data[b]):a<this.highStart?(b=this.data[f-m+(a>>n)],b=this.data[b+(a>>p&i)],b=(b<<j)+(a&e),this.data[b]):this.data[this.data.length-c]},a.prototype.toJSON=function(){var a;return a={data:d.call(this.data),highStart:this.highStart,errorValue:this.errorValue}},a}(),a.exports=c},function(a,b){a.exports={data:[1961,1969,1977,1985,2025,2033,2041,2049,2057,2065,2073,2081,2089,2097,2105,2113,2121,2129,2137,2145,2153,2161,2169,2177,2185,2193,2201,2209,2217,2225,2233,2241,2249,2257,2265,2273,2281,2289,2297,2305,2313,2321,2329,2337,2345,2353,2361,2369,2377,2385,2393,2401,2409,2417,2425,2433,2441,2449,2457,2465,2473,2481,2489,2497,2505,2513,2521,2529,2529,2537,2009,2545,2553,2561,2569,2577,2585,2593,2601,2609,2617,2625,2633,2641,2649,2657,2665,2673,2681,2689,2697,2705,2713,2721,2729,2737,2745,2753,2761,2769,2777,2785,2793,2801,2809,2817,2825,2833,2841,2849,2857,2865,2873,2881,2889,2009,2897,2905,2913,2009,2921,2929,2937,2945,2953,2961,2969,2009,2977,2977,2985,2993,3001,3009,3009,3009,3017,3017,3017,3025,3025,3033,3041,3041,3049,3049,3049,3049,3049,3049,3049,3049,3049,3049,3057,3065,3073,3073,3073,3081,3089,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3097,3105,3113,3113,3121,3129,3137,3145,3153,3161,3161,3169,3177,3185,3193,3193,3193,3193,3201,3209,3209,3217,3225,3233,3241,3241,3241,3249,3257,3265,3273,3273,3281,3289,3297,2009,2009,3305,3313,3321,3329,3337,3345,3353,3361,3369,3377,3385,3393,2009,2009,3401,3409,3417,3417,3417,3417,3417,3417,3425,3425,3433,3433,3433,3433,3433,3433,3433,3433,3433,3433,3433,3433,3433,3433,3433,3441,3449,3457,3465,3473,3481,3489,3497,3505,3513,3521,3529,3537,3545,3553,3561,3569,3577,3585,3593,3601,3609,3617,3625,3625,3633,3641,3649,3649,3649,3649,3649,3657,3665,3665,3673,3681,3681,3681,3681,3689,3697,3697,3705,3713,3721,3729,3737,3745,3753,3761,3769,3777,3785,3793,3801,3809,3817,3825,3833,3841,3849,3857,3865,3873,3881,3881,3881,3881,3881,3881,3881,3881,3881,3881,3881,3881,3889,3897,3905,3913,3921,3921,3921,3921,3921,3921,3921,3921,3921,3921,3929,2009,2009,2009,2009,2009,3937,3937,3937,3937,3937,3937,3937,3945,3953,3953,3953,3961,3969,3969,3977,3985,3993,4001,2009,2009,4009,4009,4009,4009,4009,4009,4009,4009,4009,4009,4009,4009,4017,4025,4033,4041,4049,4057,4065,4073,4081,4081,4081,4081,4081,4081,4081,4089,4097,4097,4105,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4113,4121,4121,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4129,4137,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4145,4153,4161,4169,4169,4169,4169,4169,4169,4169,4169,4177,4185,4193,4201,4209,4217,4217,4225,4233,4233,4233,4233,4233,4233,4233,4233,4241,4249,4257,4265,4273,4281,4289,4297,4305,4313,4321,4329,4337,4345,4353,4361,4361,4369,4377,4385,4385,4385,4385,4393,4401,4409,4409,4409,4409,4409,4409,4417,4425,4433,4441,4449,4457,4465,4473,4481,4489,4497,4505,4513,4521,4529,4537,4545,4553,4561,4569,4577,4585,4593,4601,4609,4617,4625,4633,4641,4649,4657,4665,4673,4681,4689,4697,4705,4713,4721,4729,4737,4745,4753,4761,4769,4777,4785,4793,4801,4809,4817,4825,4833,4841,4849,4857,4865,4873,4881,4889,4897,4905,4913,4921,4929,4937,4945,4953,4961,4969,4977,4985,4993,5001,5009,5017,5025,5033,5041,5049,5057,5065,5073,5081,5089,5097,5105,5113,5121,5129,5137,5145,5153,5161,5169,5177,5185,5193,5201,5209,5217,5225,5233,5241,5249,5257,5265,5273,5281,5289,5297,5305,5313,5321,5329,5337,5345,5353,5361,5369,5377,5385,5393,5401,5409,5417,5425,5433,5441,5449,5457,5465,5473,5481,5489,5497,5505,5513,5521,5529,5537,5545,5553,5561,5569,5577,5585,5593,5601,5609,5617,5625,5633,5641,5649,5657,5665,5673,5681,5689,5697,5705,5713,5721,5729,5737,5745,5753,5761,5769,5777,5785,5793,5801,5809,5817,5825,5833,5841,5849,5857,5865,5873,5881,5889,5897,5905,5913,5921,5929,5937,5945,5953,5961,5969,5977,5985,5993,6001,6009,6017,6025,6033,6041,6049,6057,6065,6073,6081,6089,6097,6105,6113,6121,6129,6137,6145,6153,6161,6169,6177,6185,6193,6201,6209,6217,6225,6233,6241,6249,6257,6265,6273,6281,6289,6297,6305,6313,6321,6329,6337,6345,6353,6361,6369,6377,6385,6393,6401,6409,6417,6425,6433,6441,6449,6457,6465,6473,6481,6489,6497,6505,6513,6521,6529,6537,6545,6553,6561,6569,6577,6585,6593,6601,6609,6617,6625,6633,6641,6649,6657,6665,6673,6681,6689,6697,6705,6713,6721,6729,6737,6745,6753,6761,6769,6777,6785,6793,6801,6809,6817,6825,6833,6841,6849,6857,6865,6873,6881,6889,6897,6905,6913,6921,6929,6937,6945,6953,6961,6969,6977,6985,6993,7001,7009,7017,7025,7033,7041,7049,7057,7065,7073,7081,7089,7097,7105,7113,7121,7129,7137,7145,7153,7161,7169,7177,7185,7193,7201,7209,7217,7225,7233,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7249,7257,7265,7273,7281,7281,7281,7281,7281,7281,7281,7281,7281,7281,7281,7281,7281,7281,7289,7297,7305,7305,7305,7305,7313,7321,7329,7337,7345,7353,7353,7353,7361,7369,7377,7385,7393,7401,7409,7417,7425,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7241,7972,7972,8100,8164,8228,8292,8356,8420,8484,8548,8612,8676,8740,8804,8868,8932,8996,9060,9124,9188,9252,9316,9380,9444,9508,9572,9636,9700,9764,9828,9892,9956,2593,2657,2721,2529,2785,2529,2849,2913,2977,3041,3105,3169,3233,3297,2529,2529,2529,2529,2529,2529,2529,2529,3361,2529,2529,2529,3425,2529,2529,3489,3553,2529,3617,3681,3745,3809,3873,3937,4001,4065,4129,4193,4257,4321,4385,4449,4513,4577,4641,4705,4769,4833,4897,4961,5025,5089,5153,5217,5281,5345,5409,5473,5537,5601,5665,5729,5793,5857,5921,5985,6049,6113,6177,6241,6305,6369,6433,6497,6561,6625,6689,6753,6817,6881,6945,7009,7073,7137,7201,7265,7329,7393,7457,7521,7585,7649,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,2529,7713,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7433,7433,7433,7433,7433,7433,7433,7441,7449,7457,7457,7457,7457,7457,7457,7465,2009,2009,2009,2009,7473,7473,7473,7473,7473,7473,7473,7473,7481,7489,7497,7505,7505,7505,7505,7505,7513,7521,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7529,7529,7537,7545,7545,7545,7545,7545,7553,7561,7561,7561,7561,7561,7561,7561,7569,7577,7585,7593,7593,7593,7593,7593,7593,7601,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7609,7617,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7625,7633,7641,7649,7657,7665,7673,7681,7689,7697,7705,2009,7713,7721,7729,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7737,7745,7753,2009,2009,2009,2009,2009,2009,2009,2009,2009,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7761,7769,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7777,7785,7793,7801,7809,7809,7809,7809,7809,7809,7817,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7825,7833,7841,7849,2009,2009,2009,7857,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7865,7865,7865,7865,7865,7865,7865,7865,7865,7865,7865,7873,7881,7889,7897,7897,7897,7897,7905,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7913,7921,7929,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,7937,7937,7937,7937,7937,7937,7937,7945,2009,2009,2009,2009,2009,2009,2009,2009,7953,7953,7953,7953,7953,7953,7953,2009,7961,7969,7977,7985,7993,2009,2009,8001,8009,8009,8009,8009,8009,8009,8009,8009,8009,8009,8009,8009,8009,8017,8025,8025,8025,8025,8025,8025,8025,8033,8041,8049,8057,8065,8073,8081,8081,8081,8081,8081,8081,8081,8081,8081,8081,8081,8089,2009,8097,8097,8097,8105,2009,2009,2009,2009,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8113,8121,8129,8137,8137,8137,8137,8137,8137,8137,8137,8137,8137,8137,8137,8137,8137,8145,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,2009,67496,67496,67496,21,21,21,21,21,21,21,21,21,17,34,30,30,33,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,38,6,3,12,9,10,12,3,0,2,12,9,8,16,8,7,11,11,11,11,11,11,11,11,11,11,8,8,12,12,12,6,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,9,2,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,17,1,12,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,21,21,35,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,4,0,10,9,9,9,12,29,29,12,29,3,12,17,12,12,10,9,29,29,18,12,29,29,29,29,29,3,29,29,29,0,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,18,29,29,29,18,29,12,12,29,12,12,12,12,12,12,12,29,29,29,29,12,29,12,18,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,4,21,21,21,21,21,21,21,21,21,21,21,21,4,4,4,4,4,4,4,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,8,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,8,17,39,39,39,39,9,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,17,21,12,21,21,12,21,21,6,21,39,39,39,39,39,39,39,39,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,10,10,8,8,12,12,21,21,21,21,21,21,21,21,21,21,21,6,6,6,6,6,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,11,11,11,11,11,11,11,11,11,11,10,11,11,12,12,12,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,6,12,21,21,21,21,21,21,21,12,12,21,21,21,21,21,21,12,12,21,21,12,21,21,21,21,12,12,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,12,39,39,39,39,39,39,39,39,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,12,12,12,12,8,6,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,12,21,21,21,21,21,21,21,21,21,12,21,21,21,12,21,21,21,21,21,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,21,21,17,17,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,21,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,21,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,39,39,39,39,39,39,39,39,21,39,39,39,39,12,12,12,12,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,12,12,10,10,12,12,12,12,12,10,12,9,39,39,39,39,39,21,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,12,12,12,12,12,12,39,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,21,21,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,21,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,12,9,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,21,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,12,12,12,12,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,12,39,39,39,39,39,39,21,39,39,39,39,39,39,39,39,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,9,12,39,39,39,39,39,39,21,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,12,12,12,12,12,12,12,12,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,39,39,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,21,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,12,12,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,39,12,12,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,39,39,39,39,39,39,39,39,21,39,39,39,39,39,39,39,39,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,39,39,39,10,12,12,12,12,12,12,39,39,21,21,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,39,39,39,39,39,39,39,39,39,39,39,39,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,39,39,39,39,9,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,12,11,11,11,11,11,11,11,11,11,11,17,17,39,39,39,39,39,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,39,39,11,11,11,11,11,11,11,11,11,11,39,39,36,36,36,36,12,18,18,18,18,12,18,18,4,18,18,17,4,6,6,6,6,6,4,12,6,12,12,12,21,21,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,17,21,12,21,12,21,0,1,0,1,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,17,21,21,21,21,21,17,21,21,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,17,17,12,12,12,12,12,12,21,12,12,12,12,12,12,12,12,12,18,18,17,18,12,12,12,12,12,4,4,39,39,39,39,39,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,11,11,11,11,11,11,11,11,11,11,17,17,12,12,12,12,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,11,11,11,11,11,11,11,11,11,11,36,36,36,36,36,36,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,21,21,21,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,17,17,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,21,21,39,39,39,39,39,39,39,39,39,39,39,39,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,17,17,5,36,17,12,17,9,36,36,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,6,6,17,17,18,12,6,6,12,21,21,21,4,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,12,39,39,39,6,6,11,11,11,11,11,11,11,11,11,11,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,36,36,36,36,36,36,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,39,39,12,12,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,39,39,21,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,36,36,36,36,36,36,36,36,36,36,36,36,36,36,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,39,39,39,39,11,11,11,11,11,11,11,11,11,11,17,17,12,17,17,17,17,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,39,39,39,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,17,17,17,17,17,11,11,11,11,11,11,11,11,11,11,39,39,39,12,12,12,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,21,21,21,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,21,12,12,12,12,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,18,12,39,17,17,17,17,17,17,17,4,17,17,17,20,21,21,21,21,17,4,17,17,19,29,29,12,3,3,0,3,3,3,0,3,29,29,12,12,15,15,15,17,30,30,21,21,21,21,21,4,10,10,10,10,10,10,10,10,12,3,3,29,5,5,12,12,12,12,12,12,8,0,1,5,5,5,12,12,12,12,12,12,12,12,12,12,12,12,17,12,17,17,17,17,12,17,17,17,22,12,12,12,12,39,39,39,39,39,21,21,21,21,21,21,12,12,39,39,29,12,12,12,12,12,12,12,12,0,1,29,12,29,29,29,29,12,12,12,12,12,12,12,12,0,1,39,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,9,9,9,9,9,9,9,10,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,9,9,9,9,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,10,12,29,12,12,12,10,12,12,12,12,12,12,12,12,12,29,12,12,9,12,12,12,12,12,12,12,12,12,12,29,29,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,12,12,12,12,12,29,12,12,29,12,29,29,29,29,29,29,29,29,29,29,29,29,12,12,12,12,29,29,29,29,29,29,29,29,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,29,29,12,12,12,29,29,12,12,29,12,12,12,29,12,29,9,9,12,29,12,12,12,12,29,12,12,29,29,29,29,12,12,29,12,29,12,29,29,29,29,29,29,12,29,12,12,12,12,12,29,29,29,29,12,12,12,12,29,29,12,12,12,12,12,12,12,12,12,12,29,12,12,12,29,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,12,12,29,29,29,29,12,12,29,29,12,12,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,12,12,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,12,12,12,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,12,12,12,12,12,12,12,12,12,12,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,12,29,29,29,29,12,12,12,12,12,12,12,12,12,12,29,29,12,29,29,29,29,29,29,29,12,12,12,12,12,12,12,12,29,29,12,12,29,29,12,12,12,12,29,29,12,12,29,29,12,12,12,12,29,29,29,12,12,29,12,12,29,29,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,29,29,12,12,12,12,12,12,12,12,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,12,29,29,12,12,29,12,12,12,12,29,29,12,12,12,12,14,14,29,29,14,12,14,14,14,14,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,12,12,12,12,29,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,12,29,29,29,12,29,14,29,29,12,29,29,12,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,29,29,29,29,14,12,14,14,14,29,14,14,29,29,29,14,14,29,29,14,29,29,14,14,14,12,29,12,12,12,12,29,29,14,29,29,29,29,29,29,14,14,14,14,14,29,14,14,14,14,29,29,14,14,14,14,14,14,14,14,12,12,12,14,14,14,14,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,12,12,12,3,3,3,3,12,12,12,6,6,12,12,12,12,0,1,0,1,0,1,0,1,0,1,0,1,0,1,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,0,1,0,1,0,1,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,29,29,29,29,29,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,12,12,39,39,39,39,39,6,17,17,17,12,6,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,3,3,3,3,3,3,3,3,3,3,3,3,3,3,17,17,17,17,17,17,17,17,12,17,0,17,12,12,3,3,12,12,3,3,0,1,0,1,0,1,0,1,17,17,17,17,6,12,17,17,12,17,17,12,12,12,12,12,19,19,39,39,39,39,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,1,1,14,14,5,14,14,0,1,0,1,0,1,0,1,0,1,14,14,0,1,0,1,0,1,0,1,5,0,1,1,14,14,14,14,14,14,14,14,14,14,21,21,21,21,21,21,14,14,14,14,14,14,14,14,14,14,14,5,5,14,14,14,39,32,14,32,14,32,14,32,14,32,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,32,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,32,14,32,14,32,14,14,14,14,14,14,32,14,14,14,14,14,14,32,32,39,39,21,21,5,5,5,5,14,5,32,14,32,14,32,14,32,14,32,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,32,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,32,14,32,14,32,14,14,14,14,14,14,32,14,14,14,14,14,14,32,32,14,14,14,14,5,32,5,5,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,39,39,39,39,39,39,39,39,39,39,39,39,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,29,29,29,29,29,29,29,29,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,5,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,6,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,12,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,12,17,17,17,17,17,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,12,12,12,21,12,12,12,12,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,18,18,6,6,39,39,39,39,39,39,39,39,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,39,17,17,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,39,39,39,39,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,17,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,39,39,39,12,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,39,39,39,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,17,17,17,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,39,12,12,12,21,12,12,12,12,12,12,12,12,21,21,39,39,11,11,11,11,11,11,11,11,11,11,39,39,12,17,17,17,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,17,17,12,12,12,21,21,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,17,21,21,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,39,39,39,39,39,39,39,39,39,39,39,39,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,39,39,39,39,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,39,39,39,39,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,13,21,13,13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,10,12,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,8,1,1,8,8,6,6,0,1,15,39,39,39,39,39,39,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,39,14,14,14,14,14,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,14,14,0,1,14,14,14,14,14,14,14,1,14,1,39,5,5,6,6,14,0,1,0,1,0,1,14,14,14,14,14,14,14,14,14,14,9,10,14,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,22,39,6,14,14,9,10,14,14,0,1,14,14,1,14,1,14,14,14,14,14,14,14,14,14,14,14,5,5,14,14,14,6,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,14,1,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,14,1,14,0,1,1,0,1,1,5,12,32,32,32,32,32,32,32,32,32,32,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,5,5,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,10,9,14,14,14,9,9,39,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,21,21,21,31,29,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,17,17,17,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,17,17,17,17,17,17,17,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,17,17,17,17,17,17,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,17,17,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,12,12,12,17,17,17,17,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,11,11,11,11,11,11,11,11,11,11,17,17,17,17,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,17,17,12,17,39,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,11,11,11,11,11,11,11,11,11,11,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,39,39,17,17,17,17,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,1,1,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,12,12,12,0,1,0,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,1,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,21,12,12,12,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,12,12,21,21,21,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,21,21,21,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,39,39,39,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,39,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,12,12,39,39,39,39,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,39,39,39,39,39,39,39,39,39,39,39,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,14,14,14,14,14,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,14,12,14,12,14,14,14,14,14,14,14,14,14,14,12,14,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,39,39,39,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,39,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,39,39,39,39,39,39,39,39,39,39,39,39,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,39,39,39,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39],
+highStart:919552,errorValue:0}},function(a,b){(function(){var a,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O;b.OP=D=0,b.CL=j=1,b.CP=l=2,b.QU=G=3,b.GL=o=4,b.NS=B=5,b.EX=n=6,b.SY=L=7,b.IS=v=8,b.PR=F=9,b.PO=E=10,b.NU=C=11,b.AL=c=12,b.HL=r=13,b.ID=t=14,b.IN=u=15,b.HY=s=16,b.BA=e=17,b.BB=f=18,b.B2=d=19,b.ZW=O=20,b.CM=k=21,b.WJ=M=22,b.H2=p=23,b.H3=q=24,b.JL=w=25,b.JV=y=26,b.JT=x=27,b.RI=H=28,b.AI=a=29,b.BK=g=30,b.CB=h=31,b.CJ=i=32,b.CR=m=33,b.LF=z=34,b.NL=A=35,b.SA=I=36,b.SG=J=37,b.SP=K=38,b.XX=N=39}).call(this)},function(a,b){(function(){var a,c,d,e,f;b.DI_BRK=d=0,b.IN_BRK=e=1,b.CI_BRK=a=2,b.CP_BRK=c=3,b.PR_BRK=f=4,b.pairTable=[[f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,c,f,f,f,f,f,f,f],[d,f,f,e,e,f,f,f,f,e,e,d,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,e,f,f,f,f,e,e,e,e,e,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[f,f,f,e,e,e,f,f,f,e,e,e,e,e,e,e,e,e,e,e,f,a,f,e,e,e,e,e,e],[e,f,f,e,e,e,f,f,f,e,e,e,e,e,e,e,e,e,e,e,f,a,f,e,e,e,e,e,e],[d,f,f,e,e,e,f,f,f,d,d,d,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,e,e,f,f,f,d,d,d,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,e,e,f,f,f,d,d,e,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,e,e,f,f,f,d,d,e,e,e,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,d,d,e,e,e,e,d,e,e,d,d,f,a,f,e,e,e,e,e,d],[e,f,f,e,e,e,f,f,f,d,d,e,e,e,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,e,e,e,e,e,d,e,e,e,d,d,f,a,f,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,d,d,e,e,e,d,e,e,e,d,d,f,a,f,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,d,d,e,e,e,d,e,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,e,e,f,f,f,d,e,d,d,d,d,e,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,e,e,f,f,f,d,d,d,d,d,d,e,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,d,e,f,f,f,d,d,e,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[d,f,f,e,d,e,f,f,f,d,d,d,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,e,e,e,e,e,e,e,e,e,e,e,f,a,f,e,e,e,e,e,e],[d,f,f,e,e,e,f,f,f,d,d,d,d,d,d,d,e,e,d,f,f,a,f,d,d,d,d,d,d],[d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,d,f,d,d,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,d,d,e,e,e,d,e,e,e,d,d,f,a,f,d,d,d,d,d,d],[e,f,f,e,e,e,f,f,f,e,e,e,e,e,e,e,e,e,e,e,f,a,f,e,e,e,e,e,e],[d,f,f,e,e,e,f,f,f,d,e,d,d,d,d,e,e,e,d,d,f,a,f,d,d,d,e,e,d],[d,f,f,e,e,e,f,f,f,d,e,d,d,d,d,e,e,e,d,d,f,a,f,d,d,d,d,e,d],[d,f,f,e,e,e,f,f,f,d,e,d,d,d,d,e,e,e,d,d,f,a,f,e,e,e,e,d,d],[d,f,f,e,e,e,f,f,f,d,e,d,d,d,d,e,e,e,d,d,f,a,f,d,d,d,e,e,d],[d,f,f,e,e,e,f,f,f,d,e,d,d,d,d,e,e,e,d,d,f,a,f,d,d,d,d,e,d],[d,f,f,e,e,e,f,f,f,d,d,d,d,d,d,d,e,e,d,d,f,a,f,d,d,d,d,d,e]]}).call(this)},function(a,b,c){(function(b){(function(){var d;d=c(97),a.exports={initImages:function(){return this._imageRegistry={},this._imageCount=0},image:function(a,c,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t;return null==f&&(f={}),"object"==typeof c&&(f=c,c=null),c=null!=(r=null!=c?c:f.x)?r:this.x,e=null!=(s=null!=e?e:f.y)?s:this.y,b.isBuffer(a)||(l=this._imageRegistry[a]),l||(l=d.open(a,"I"+ ++this._imageCount),l.embed(this),b.isBuffer(a)||(this._imageRegistry[a]=l)),null==(p=this.page.xobjects)[q=l.label]&&(p[q]=l.obj),n=f.width||l.width,j=f.height||l.height,f.width&&!f.height?(o=n/l.width,n=l.width*o,j=l.height*o):f.height&&!f.width?(k=j/l.height,n=l.width*k,j=l.height*k):f.scale?(n=l.width*f.scale,j=l.height*f.scale):f.fit&&(t=f.fit,i=t[0],g=t[1],h=i/g,m=l.width/l.height,m>h?(n=i,j=i/m):(j=g,n=g*m),"center"===f.align?c=c+i/2-n/2:"right"===f.align&&(c=c+i-n),"center"===f.valign?e=e+g/2-j/2:"bottom"===f.valign&&(e=e+g-j)),this.y===e&&(this.y+=j),this.save(),this.transform(n,0,0,-j,c,e+j),this.addContent("/"+l.label+" Do"),this.restore(),this}}}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(b){(function(){var d,e,f,g,h;h=c(44),d=c(72),e=c(98),g=c(99),f=function(){function a(){}return a.open=function(a,c){var d,f;if(b.isBuffer(a))d=a;else if(f=/^data:.+;base64,(.*)$/.exec(a))d=new b(f[1],"base64");else if(d=h.readFileSync(a),!d)return;if(255===d[0]&&216===d[1])return new e(d,c);if(137===d[0]&&"PNG"===d.toString("ascii",1,4))return new g(d,c);throw new Error("Unknown image format.")},a}(),a.exports=f}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(){var b,d,e=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};d=c(44),b=function(){function a(a,c){var d,f,g;if(this.data=a,this.label=c,65496!==this.data.readUInt16BE(0))throw"SOI not found in JPEG";for(g=2;g<this.data.length&&(f=this.data.readUInt16BE(g),g+=2,!(e.call(b,f)>=0));)g+=this.data.readUInt16BE(g);if(e.call(b,f)<0)throw"Invalid JPEG.";g+=2,this.bits=this.data[g++],this.height=this.data.readUInt16BE(g),g+=2,this.width=this.data.readUInt16BE(g),g+=2,d=this.data[g++],this.colorSpace=function(){switch(d){case 1:return"DeviceGray";case 3:return"DeviceRGB";case 4:return"DeviceCMYK"}}(),this.obj=null}var b;return b=[65472,65473,65474,65475,65477,65478,65479,65480,65481,65482,65483,65484,65485,65486,65487],a.prototype.embed=function(a){return this.obj?void 0:(this.obj=a.ref({Type:"XObject",Subtype:"Image",BitsPerComponent:this.bits,Width:this.width,Height:this.height,ColorSpace:this.colorSpace,Filter:"DCTDecode"}),"DeviceCMYK"===this.colorSpace&&(this.obj.data.Decode=[1,0,1,0,1,0,1,0]),this.obj.end(this.data),this.data=null)},a}(),a.exports=b}).call(this)},function(a,b,c){(function(b){(function(){var d,e,f;f=c(47),d=c(100),e=function(){function a(a,b){this.label=b,this.image=new d(a),this.width=this.image.width,this.height=this.image.height,this.imgData=this.image.imgData,this.obj=null}return a.prototype.embed=function(a){var c,d,e,f,g,h,i,j;if(this.document=a,!this.obj){if(this.obj=a.ref({Type:"XObject",Subtype:"Image",BitsPerComponent:this.image.bits,Width:this.width,Height:this.height,Filter:"FlateDecode"}),this.image.hasAlphaChannel||(e=a.ref({Predictor:15,Colors:this.image.colors,BitsPerComponent:this.image.bits,Columns:this.width}),this.obj.data.DecodeParms=e,e.end()),0===this.image.palette.length?this.obj.data.ColorSpace=this.image.colorSpace:(d=a.ref(),d.end(new b(this.image.palette)),this.obj.data.ColorSpace=["Indexed","DeviceRGB",this.image.palette.length/3-1,d]),this.image.transparency.grayscale)return g=this.image.transparency.greyscale,this.obj.data.Mask=[g,g];if(this.image.transparency.rgb){for(f=this.image.transparency.rgb,c=[],i=0,j=f.length;j>i;i++)h=f[i],c.push(h,h);return this.obj.data.Mask=c}return this.image.transparency.indexed?this.loadIndexedAlphaChannel():this.image.hasAlphaChannel?this.splitAlphaChannel():this.finalize()}},a.prototype.finalize=function(){var a;return this.alphaChannel&&(a=this.document.ref({Type:"XObject",Subtype:"Image",Height:this.height,Width:this.width,BitsPerComponent:8,Filter:"FlateDecode",ColorSpace:"DeviceGray",Decode:[0,1]}),a.end(this.alphaChannel),this.obj.data.SMask=a),this.obj.end(this.imgData),this.image=null,this.imgData=null},a.prototype.splitAlphaChannel=function(){return this.image.decodePixels(function(a){return function(c){var d,e,g,h,i,j,k,l,m;for(g=a.image.colors*a.image.bits/8,m=a.width*a.height,j=new b(m*g),e=new b(m),i=l=d=0,k=c.length;k>i;)j[l++]=c[i++],j[l++]=c[i++],j[l++]=c[i++],e[d++]=c[i++];return h=0,f.deflate(j,function(b,c){if(a.imgData=c,b)throw b;return 2===++h?a.finalize():void 0}),f.deflate(e,function(b,c){if(a.alphaChannel=c,b)throw b;return 2===++h?a.finalize():void 0})}}(this))},a.prototype.loadIndexedAlphaChannel=function(a){var c;return c=this.image.transparency.indexed,this.image.decodePixels(function(a){return function(d){var e,g,h,i,j;for(e=new b(a.width*a.height),g=0,h=i=0,j=d.length;j>i;h=i+=1)e[g++]=c[d[h]];return f.deflate(e,function(b,c){if(a.alphaChannel=c,b)throw b;return a.finalize()})}}(this))},a}(),a.exports=e}).call(this)}).call(b,c(2).Buffer)},function(a,b,c){(function(b){(function(){var d,e,f;e=c(44),f=c(47),a.exports=d=function(){function a(a){var c,d,e,f,g,h,i,j,k,l,m;for(this.data=a,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.text={};;){switch(c=this.readUInt32(),h=function(){var a,b;for(b=[],e=a=0;4>a;e=++a)b.push(String.fromCharCode(this.data[this.pos++]));return b}.call(this).join("")){case"IHDR":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case"PLTE":this.palette=this.read(c);break;case"IDAT":for(e=k=0;c>k;e=k+=1)this.imgData.push(this.data[this.pos++]);break;case"tRNS":switch(this.transparency={},this.colorType){case 3:if(this.transparency.indexed=this.read(c),i=255-this.transparency.indexed.length,i>0)for(e=l=0;i>=0?i>l:l>i;e=i>=0?++l:--l)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(c)[0];break;case 2:this.transparency.rgb=this.read(c)}break;case"tEXt":j=this.read(c),f=j.indexOf(0),g=String.fromCharCode.apply(String,j.slice(0,f)),this.text[g]=String.fromCharCode.apply(String,j.slice(f+1));break;case"IEND":return this.colors=function(){switch(this.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3}}.call(this),this.hasAlphaChannel=4===(m=this.colorType)||6===m,d=this.colors+(this.hasAlphaChannel?1:0),this.pixelBitlength=this.bits*d,this.colorSpace=function(){switch(this.colors){case 1:return"DeviceGray";case 3:return"DeviceRGB"}}.call(this),void(this.imgData=new b(this.imgData));default:this.pos+=c}if(this.pos+=4,this.pos>this.data.length)throw new Error("Incomplete or corrupt PNG file")}}return a.decode=function(b,c){return e.readFile(b,function(b,d){var e;return e=new a(d),e.decode(function(a){return c(a)})})},a.load=function(b){var c;return c=e.readFileSync(b),new a(c)},a.prototype.read=function(a){var b,c,d;for(d=[],b=c=0;a>=0?a>c:c>a;b=a>=0?++c:--c)d.push(this.data[this.pos++]);return d},a.prototype.readUInt32=function(){var a,b,c,d;return a=this.data[this.pos++]<<24,b=this.data[this.pos++]<<16,c=this.data[this.pos++]<<8,d=this.data[this.pos++],a|b|c|d},a.prototype.readUInt16=function(){var a,b;return a=this.data[this.pos++]<<8,b=this.data[this.pos++],a|b},a.prototype.decodePixels=function(a){var c=this;return f.inflate(this.imgData,function(d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B;if(d)throw d;for(q=c.pixelBitlength/8,u=q*c.width,r=new b(u*c.height),k=e.length,t=0,s=0,g=0;k>s;){switch(e[s++]){case 0:for(i=x=0;u>x;i=x+=1)r[g++]=e[s++];break;case 1:for(i=y=0;u>y;i=y+=1)f=e[s++],j=q>i?0:r[g-q],r[g++]=(f+j)%256;break;case 2:for(i=z=0;u>z;i=z+=1)f=e[s++],h=(i-i%q)/q,v=t&&r[(t-1)*u+h*q+i%q],r[g++]=(v+f)%256;break;case 3:for(i=A=0;u>A;i=A+=1)f=e[s++],h=(i-i%q)/q,j=q>i?0:r[g-q],v=t&&r[(t-1)*u+h*q+i%q],r[g++]=(f+Math.floor((j+v)/2))%256;break;case 4:for(i=B=0;u>B;i=B+=1)f=e[s++],h=(i-i%q)/q,j=q>i?0:r[g-q],0===t?v=w=0:(v=r[(t-1)*u+h*q+i%q],w=h&&r[(t-1)*u+(h-1)*q+i%q]),l=j+v-w,m=Math.abs(l-j),o=Math.abs(l-v),p=Math.abs(l-w),n=o>=m&&p>=m?j:p>=o?v:w,r[g++]=(f+n)%256;break;default:throw new Error("Invalid filter algorithm: "+e[s-1])}t++}return a(r)})},a.prototype.decodePalette=function(){var a,c,d,e,f,g,h,i,j,k;for(e=this.palette,h=this.transparency.indexed||[],g=new b(h.length+e.length),f=0,d=e.length,a=0,c=i=0,j=e.length;j>i;c=i+=3)g[f++]=e[c],g[f++]=e[c+1],g[f++]=e[c+2],g[f++]=null!=(k=h[a++])?k:255;return g},a.prototype.copyToImageData=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(d=this.colors,k=null,c=this.hasAlphaChannel,this.palette.length&&(k=null!=(m=this._decodedPalette)?m:this._decodedPalette=this.decodePalette(),d=4,c=!0),e=(null!=a?a.data:void 0)||a,j=e.length,g=k||b,f=h=0,1===d)for(;j>f;)i=k?4*b[f/4]:h,l=g[i++],e[f++]=l,e[f++]=l,e[f++]=l,e[f++]=c?g[i++]:255,h=i;else for(;j>f;)i=k?4*b[f/4]:h,e[f++]=g[i++],e[f++]=g[i++],e[f++]=g[i++],e[f++]=c?g[i++]:255,h=i},a.prototype.decode=function(a){var c,d=this;return c=new b(this.width*this.height*4),this.decodePixels(function(b){return d.copyToImageData(c,b),a(c)})},a}()}).call(this)}).call(b,c(2).Buffer)},function(a,b){(function(){a.exports={annotate:function(a,b,c,d,e){var f,g,h;e.Type="Annot",e.Rect=this._convertRect(a,b,c,d),e.Border=[0,0,0],"Link"!==e.Subtype&&null==e.C&&(e.C=this._normalizeColor(e.color||[0,0,0])),delete e.color,"string"==typeof e.Dest&&(e.Dest=new String(e.Dest));for(f in e)h=e[f],e[f[0].toUpperCase()+f.slice(1)]=h;return g=this.ref(e),this.page.annotations.push(g),g.end(),this},note:function(a,b,c,d,e,f){return null==f&&(f={}),f.Subtype="Text",f.Contents=new String(e),f.Name="Comment",null==f.color&&(f.color=[243,223,92]),this.annotate(a,b,c,d,f)},link:function(a,b,c,d,e,f){return null==f&&(f={}),f.Subtype="Link",f.A=this.ref({S:"URI",URI:new String(e)}),f.A.end(),this.annotate(a,b,c,d,f)},_markup:function(a,b,c,d,e){var f,g,h,i,j;return null==e&&(e={}),j=this._convertRect(a,b,c,d),f=j[0],h=j[1],g=j[2],i=j[3],e.QuadPoints=[f,i,g,i,f,h,g,h],e.Contents=new String,this.annotate(a,b,c,d,e)},highlight:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Highlight",null==e.color&&(e.color=[241,238,148]),this._markup(a,b,c,d,e)},underline:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Underline",this._markup(a,b,c,d,e)},strike:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="StrikeOut",this._markup(a,b,c,d,e)},lineAnnotation:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Line",e.Contents=new String,e.L=[a,this.page.height-b,c,this.page.height-d],this.annotate(a,b,c,d,e)},rectAnnotation:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Square",e.Contents=new String,this.annotate(a,b,c,d,e)},ellipseAnnotation:function(a,b,c,d,e){return null==e&&(e={}),e.Subtype="Circle",e.Contents=new String,this.annotate(a,b,c,d,e)},textAnnotation:function(a,b,c,d,e,f){return null==f&&(f={}),f.Subtype="FreeText",f.Contents=new String(e),f.DA=new String,this.annotate(a,b,c,d,f)},_convertRect:function(a,b,c,d){var e,f,g,h,i,j,k,l,m;return l=b,b+=d,k=a+c,m=this._ctm,e=m[0],f=m[1],g=m[2],h=m[3],i=m[4],j=m[5],a=e*a+g*b+i,b=f*a+h*b+j,k=e*k+g*l+i,l=f*k+h*l+j,[a,b,k,l]}}}).call(this)},function(a,b){a.exports={"4A0":[4767.87,6740.79],"2A0":[3370.39,4767.87],A0:[2383.94,3370.39],A1:[1683.78,2383.94],A2:[1190.55,1683.78],A3:[841.89,1190.55],A4:[595.28,841.89],A5:[419.53,595.28],A6:[297.64,419.53],A7:[209.76,297.64],A8:[147.4,209.76],A9:[104.88,147.4],A10:[73.7,104.88],B0:[2834.65,4008.19],B1:[2004.09,2834.65],B2:[1417.32,2004.09],B3:[1000.63,1417.32],B4:[708.66,1000.63],B5:[498.9,708.66],B6:[354.33,498.9],B7:[249.45,354.33],B8:[175.75,249.45],B9:[124.72,175.75],B10:[87.87,124.72],C0:[2599.37,3676.54],C1:[1836.85,2599.37],C2:[1298.27,1836.85],C3:[918.43,1298.27],C4:[649.13,918.43],C5:[459.21,649.13],C6:[323.15,459.21],C7:[229.61,323.15],C8:[161.57,229.61],C9:[113.39,161.57],C10:[79.37,113.39],RA0:[2437.8,3458.27],RA1:[1729.13,2437.8],RA2:[1218.9,1729.13],RA3:[864.57,1218.9],RA4:[609.45,864.57],SRA0:[2551.18,3628.35],SRA1:[1814.17,2551.18],SRA2:[1275.59,1814.17],SRA3:[907.09,1275.59],SRA4:[637.8,907.09],EXECUTIVE:[521.86,756],FOLIO:[612,936],LEGAL:[612,1008],LETTER:[612,792],TABLOID:[792,1224]}},function(a,b,c){(function(b){"use strict";function d(a,b){this.pdfDoc=a,this.imageDictionary=b||{}}var e=(c(24),c(97));d.prototype.measureImage=function(a){function c(a){var c=g.imageDictionary[a];if(!c)return a;var d=c.indexOf("base64,");if(0>d)throw"invalid image format, images dictionary should contain dataURL entries";return new b(c.substring(d+7),"base64")}var d,f,g=this;return this.pdfDoc._imageRegistry[a]?d=this.pdfDoc._imageRegistry[a]:(f="I"+ ++this.pdfDoc._imageCount,d=e.open(c(a),f),d.embed(this.pdfDoc),this.pdfDoc._imageRegistry[a]=d),{width:d.width,height:d.height}},a.exports=d}).call(b,c(2).Buffer)},function(a,b){"use strict";function c(a){for(var b=[],c=null,d=0,e=a.inlines.length;e>d;d++){var f=a.inlines[d],g=f.decoration;if(g){var h=f.decorationColor||f.color||"black",i=f.decorationStyle||"solid";g=Array.isArray(g)?g:[g];for(var j=0,k=g.length;k>j;j++){var l=g[j];c&&l===c.decoration&&i===c.decorationStyle&&h===c.decorationColor&&"lineThrough"!==l?c.inlines.push(f):(c={line:a,decoration:l,decorationColor:h,decorationStyle:i,inlines:[f]},b.push(c))}}else c=null}return b}function d(a,b,c,d){function e(){for(var b=0,c=0,d=a.inlines.length;d>c;c++){var e=a.inlines[c];b=e.fontSize>b?c:b}return a.inlines[b]}function f(){for(var b=0,c=0,d=a.inlines.length;d>c;c++)b+=a.inlines[c].width;return b}var g=a.inlines[0],h=e(),i=f(),j=a.line.getAscenderHeight(),k=h.font.ascender/1e3*h.fontSize,l=h.height,m=l-k,n=.5+.12*Math.floor(Math.max(h.fontSize-8,0)/2);switch(a.decoration){case"underline":c+=j+.45*m;break;case"overline":c+=j-.85*k;break;case"lineThrough":c+=j-.25*k;break;default:throw"Unkown decoration : "+a.decoration}if(d.save(),"double"===a.decorationStyle){var o=Math.max(.5,2*n);d.fillColor(a.decorationColor).rect(b+g.x,c-n/2,i,n/2).fill().rect(b+g.x,c+o-n/2,i,n/2).fill()}else if("dashed"===a.decorationStyle){var p=Math.ceil(i/6.8),q=b+g.x;d.rect(q,c,i,n).clip(),d.fillColor(a.decorationColor);for(var r=0;p>r;r++)d.rect(q,c-n/2,3.96,n).fill(),q+=6.8}else if("dotted"===a.decorationStyle){var s=Math.ceil(i/(3*n)),t=b+g.x;d.rect(t,c,i,n).clip(),d.fillColor(a.decorationColor);for(var u=0;s>u;u++)d.rect(t,c-n/2,n,n).fill(),t+=3*n}else if("wavy"===a.decorationStyle){var v=.7,w=1,x=Math.ceil(i/(2*v))+1,y=b+g.x-1;d.rect(b+g.x,c-w,i,c+w).clip(),d.lineWidth(.24),d.moveTo(y,c);for(var z=0;x>z;z++)d.bezierCurveTo(y+v,c-w,y+2*v,c-w,y+3*v,c).bezierCurveTo(y+4*v,c+w,y+5*v,c+w,y+6*v,c),y+=6*v;d.stroke(a.decorationColor)}else d.fillColor(a.decorationColor).rect(b+g.x,c-n/2,i,n).fill();d.restore()}function e(a,b,e,f){for(var g=c(a),h=0,i=g.length;i>h;h++)d(g[h],b,e,f)}function f(a,b,c,d){for(var e=a.getHeight(),f=0,g=a.inlines.length;g>f;f++){var h=a.inlines[f];h.background&&d.fillColor(h.background).rect(b+h.x,c,h.width,e).fill()}}a.exports={drawBackground:f,drawDecorations:e}},function(a,b,c){var d,e,f=f||function(a){"use strict";if("undefined"==typeof navigator||!/MSIE [1-9]\./.test(navigator.userAgent)){var b=a.document,c=function(){return a.URL||a.webkitURL||a},d=b.createElementNS("http://www.w3.org/1999/xhtml","a"),e="download"in d,f=function(a){var b=new MouseEvent("click");a.dispatchEvent(b)},g=a.webkitRequestFileSystem,h=a.requestFileSystem||g||a.mozRequestFileSystem,i=function(b){(a.setImmediate||a.setTimeout)(function(){throw b},0)},j="application/octet-stream",k=0,l=500,m=function(b){var d=function(){"string"==typeof b?c().revokeObjectURL(b):b.remove()};a.chrome?d():setTimeout(d,l)},n=function(a,b,c){b=[].concat(b);for(var d=b.length;d--;){var e=a["on"+b[d]];if("function"==typeof e)try{e.call(a,c||a)}catch(f){i(f)}}},o=function(a){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\ufeff",a],{type:a.type}):a},p=function(b,i,l){l||(b=o(b));var p,q,r,s=this,t=b.type,u=!1,v=function(){n(s,"writestart progress write writeend".split(" "))},w=function(){if(!u&&p||(p=c().createObjectURL(b)),q)q.location.href=p;else{var d=a.open(p,"_blank");void 0==d&&"undefined"!=typeof safari&&(a.location.href=p)}s.readyState=s.DONE,v(),m(p)},x=function(a){return function(){return s.readyState!==s.DONE?a.apply(this,arguments):void 0}},y={create:!0,exclusive:!1};return s.readyState=s.INIT,i||(i="download"),e?(p=c().createObjectURL(b),d.href=p,d.download=i,void setTimeout(function(){f(d),v(),m(p),s.readyState=s.DONE})):(a.chrome&&t&&t!==j&&(r=b.slice||b.webkitSlice,b=r.call(b,0,b.size,j),u=!0),g&&"download"!==i&&(i+=".download"),(t===j||g)&&(q=a),h?(k+=b.size,void h(a.TEMPORARY,k,x(function(a){a.root.getDirectory("saved",y,x(function(a){var c=function(){a.getFile(i,y,x(function(a){a.createWriter(x(function(c){c.onwriteend=function(b){q.location.href=a.toURL(),s.readyState=s.DONE,n(s,"writeend",b),m(a)},c.onerror=function(){var a=c.error;a.code!==a.ABORT_ERR&&w()},"writestart progress write abort".split(" ").forEach(function(a){c["on"+a]=s["on"+a]}),c.write(b),s.abort=function(){c.abort(),s.readyState=s.DONE},s.readyState=s.WRITING}),w)}),w)};a.getFile(i,{create:!1},x(function(a){a.remove(),c()}),x(function(a){a.code===a.NOT_FOUND_ERR?c():w()}))}),w)}),w)):void w())},q=p.prototype,r=function(a,b,c){return new p(a,b,c)};return"undefined"!=typeof navigator&&navigator.msSaveOrOpenBlob?function(a,b,c){return c||(a=o(a)),navigator.msSaveOrOpenBlob(a,b||"download")}:(q.abort=function(){var a=this;a.readyState=a.DONE,n(a,"abort")},q.readyState=q.INIT=0,q.WRITING=1,q.DONE=2,q.error=q.onwritestart=q.onprogress=q.onwrite=q.onabort=q.onerror=q.onwriteend=null,r)}}("undefined"!=typeof self&&self||"undefined"!=typeof window&&window||this.content);"undefined"!=typeof a&&a.exports?a.exports.saveAs=f:null!==c(106)&&null!=c(107)&&(d=[],e=function(){return f}.apply(b,d),!(void 0!==e&&(a.exports=e)))},function(a,b){a.exports=function(){throw new Error("define cannot be used indirect")}},function(a,b){(function(b){a.exports=b}).call(b,{})}]),window.pdfMake=window.pdfMake||{},window.pdfMake.vfs={"LICENSE.txt":"DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNA0KICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLw0KDQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04NCg0KICAgMS4gRGVmaW5pdGlvbnMuDQoNCiAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sDQogICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4NCg0KICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkNCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4NCg0KICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbA0KICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbg0KICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwNCiAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQ0KICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3INCiAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQ0KICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4NCg0KICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQ0KICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4NCg0KICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsDQogICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uDQogICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLg0KDQogICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbA0KICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dA0KICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLA0KICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLg0KDQogICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcg0KICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQ0KICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrDQogICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLg0KDQogICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0DQogICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlDQogICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zDQogICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3Nlcw0KICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluDQogICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsDQogICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLg0KDQogICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZw0KICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucw0KICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5DQogICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyDQogICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YNCiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIg0KICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudA0KICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8NCiAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsDQogICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQ0KICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0DQogICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQ0KICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iDQoNCiAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5DQogICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQNCiAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLg0KDQogICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YNCiAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwNCiAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlDQogICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwNCiAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQ0KICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4NCg0KICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mDQogICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsDQogICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQ0KICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsDQogICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywNCiAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlDQogICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcg0KICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQ0KICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UNCiAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhDQogICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrDQogICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdA0KICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcw0KICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlDQogICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuDQoNCiAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlDQogICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQNCiAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91DQogICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNCg0KICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3INCiAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZA0KDQogICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzDQogICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kDQoNCiAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3Jrcw0KICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQNCiAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLA0KICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YNCiAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kDQoNCiAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cw0KICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QNCiAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQNCiAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QNCiAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUNCiAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZA0KICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3INCiAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwNCiAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kDQogICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzDQogICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZA0KICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uDQogICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUNCiAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQNCiAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQNCiAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuDQoNCiAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZA0KICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucw0KICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcg0KICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsDQogICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgNCiAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuDQoNCiAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwNCiAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaw0KICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YNCiAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLg0KICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQ0KICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQNCiAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4NCg0KICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQ0KICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLA0KICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlDQogICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4NCg0KICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yDQogICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoDQogICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywNCiAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcg0KICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMNCiAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEENCiAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQ0KICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55DQogICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuDQoNCiAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LA0KICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsDQogICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQ0KICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUNCiAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwNCiAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQ0KICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQ0KICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLA0KICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwNCiAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3INCiAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4NCg0KICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZw0KICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwNCiAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksDQogICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcw0KICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkNCiAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmDQogICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksDQogICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkNCiAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24NCiAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5Lg0KDQogICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMNCg0KICAgQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLg0KDQogICAgICBUbyBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2luZw0KICAgICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIg0KICAgICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBpZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUNCiAgICAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlDQogICAgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGENCiAgICAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBpbmNsdWRlZCBvbiB0aGUNCiAgICAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcg0KICAgICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLg0KDQogICBDb3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0NCg0KICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQogICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQogICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCg0KICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KDQogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQogICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQogICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCg==",
 "Roboto-Italic.ttf":"AAEAAAAOAIAAAwBgR0RFRgsuCy8AATmYAAAASEdQT1OC3T4oAAE54AAAkPhHU1VCeolvLwABytgAAANsT1MvMrivKS4AAAFoAAAAYFZETVhu6nZPAAASPAAABeBjbWFwg/CFnwAAGBwAAA7yZ2x5ZqugYnAAACcQAADhjGhlYWQVl+THAAAA7AAAADZoaGVhK3TmIgAAASQAAAAkaG10eH7tDo8AAAHIAAAQdGxvY2H/CzayAAEInAAACDxtYXhwBDwA9gAAAUgAAAAgbmFtZW3ArcAAARDYAAAEb3Bvc3QJy9dbAAEVSAAAJE0AAQAAAAEAAERFNtJfDzz1AAkIAAAAAADE8BEuAAAAAM2Cslz6t9PdKU8IYgACAAkAAgAAAAAAAAABAAAHbP4MAAAJA/q32vUpTwABAAAAAAAAAAAAAAAAAAAEHQABAAAEHQCWABYAXgAFAAEAAAAAAAAAAAAAAAAAAwABAAMEQQGQAAUAAAWaBTMAAAEfBZoFMwAAA9EAZgIAAAAAAAAAAAAAAAAA4AAC/1AAIFsAAAAgAAAAAHB5cnMAAQAA//0GAP4AAGYHmgIAIAABn08BAAAEOgWwAAAAIAACAeMAAAAAAAAB4wAAAeMAAAJ1AMUErABDBDoARwV7ANMErAAbAVcAxgKBAFcCiP+MA0AAoQRCAHIBgf+YAhUAPgIGAEYDH/+mBDoAUAQ6AXAEOgAtBDoANQQ6ACcEOgBoBDoAZwQ6ANgEOgA1BDoAfwHpAEYB8f/GA9EAZQQ6AI4D7gBWA5IAwga0ABME/v/VBMsAWATBAGIE8ABYBGIAWARfAFgFJgBoBVgAWAIkAGIEJQAPBH4APgQgAFgGkgBYBVkAWAUcAF4EzQBYBTsAXgT4AFcEjQBDBHoA7AUSAGcE3QDNBpUA7AS9//wEpgDuBDIAIAIKABIDHAD3Agr/lwMnAHwDa/+WAl0A8wQgADoERAA1A/wARwREAEQD+QBHApsAigRDADcERAA1AegARAH2/x0D2QA2AegARAaLADUERAA1BEQARgRE/+IERABEAqQANQPuADsCaQBvBEQAWgPIAJcFrACyA8j/6QPI/7wDyAAIApEAUQHhADYCkf+pBRgAggHh/+sEHQBXBGAALQVVACYEjgBxAdkAAQSc/8gDvwEnBd4AUgNeAMIDjABwBCsApgXfAFIDewEDAtABBQQGAE4DMQCnAzgAqgJoAPsERP/rA7EAhwH/AMMB4//OAg8BBANtAM8DiwA1BdUBDgY7ARsGgQC6A7f/8wcF/54EBABIBR0AJgRvAEgEeQAwBlIABARnACYESgBqBEUATARY/+sFRABVAegAPgQxAD4D8wBJAhEARwUwAEYERAA1BygATwbHAEQB6ABEApb/ZgUjAFkETgBGBToAZwSuAFoB7/8bA/kAPAOWAUgDYgFeAzgBCwINAUECkQEiAhP/twOXAQgCzwEHAnoAHQAK/fIACv5BAAr9WAAK/kYACv1LAAr83AHzAWQD1AFBAgAAwwQuAFcFS//MBR0ATwTs/94ETQAiBVoAWARN//EFXwBXBS8AigUAAB0EPwBABHL/9QPIALMERABBBAsAKQPsAIsERAA1BEYAVgJ5AH4EKv/RA7AAOgR6AHAERP/iBAsASQREAEMD7gC3BBwAWgVNAD8FRABDBisAXQSiAFoD/wCzBeEAZAWfANsFEgBmCAj/3ggTAFcGGgDyBVoAVwS7AEgFqv+WBtP/ygR0ACAFWQBYBU//3gS3AKMF0QBbBX8AVwUnANEHDgBXB0cAVwWrAMkGggBXBLkASAURAIcGrABiBM4ADAQnAEQETgBAAygAPgSQ/5oFvP/DA9IAHgRaAEAEFQBABFv/1QWSAEAEWQBABFoAQAOfAJAFbwBABHkAQAQYAH8GEgBABjoANQSlAIYF2ABABBYAQAQLADMGHgBABCH/1QRFADUEDABRBlj/1QZzAEAERQA1BFoAQAaRAGgFtwBFBBQAPga2AGMFmQA8BIb/2AQF/7wGmAB0BaoAXQZrADoFigA6CHsAYgddAD4D5f/HA5//xgUdAF0ERQBGBL4A6APIALMFHQBPBEUARgaLAGwFtwBIBpIAaAW4AEUE5ABkBAgASgSyAFUACv09AAr9ZAAK/m8ACv6QAAr6twAK+tYEFAA+BMsAVwRD/+IEHwBIA1wANQSXAFcDyQA1BL0ASAQ+AD4GJADzBTQApQdEAFcFVQA1B6kAVwaGADUFjQBlBIkATga/AOgFCwCIBR0A0QQmAJcFHQDQBc8ArgR0ACUEvQBIBBsAPgVYAFcERAA1BSsARgRgADYEYP/tBHIACgMY//sEtQA2BjQANgZzAEAF7wDoBNkAiAQIAM8DywC8B0H/8QYM/+wHfQBOBjUANQSoAGAD3gBGBVIA1wTPAKwFEQBqA9UAAAehAAAD1QAAB6EAAAKSAAAB7wAAAU4AAAQ4AAACEwAAAY8AAADMAAAACgAABS8A6QYSAQADb/9oAY0A1gGNALEBjP+kAY7/YQK7ANYCwgC9Aqn/pAQkAJUESQAQApAArwOPAEcFDABHByYArgJGAIACRgAhA24ACQN0AIsDLgCjBGAALQYmAEkD/gBgBYkA4wOXAGcIOABOBLQBIwTGAHwGUAD+BtwArAcIAKoGbQEeBFkAJgU/ADkEZ/+7BEoAzwSIAGgHqABJAfL/OwQ7AFAD7wCOA/YASAP9AEcDyQBnAjYAjwJ1AJQB7f/mBC0AaAAKAAAHq/+1B6wAhwPfAB8DXAAnBDoAUQLg/+AB6P8dAhH/egF+/8IDbQE3A2wBNwNsATcDyAEPA9ABCwPIAF8DxwEXA20BDQHrAS8Eb//UBDIAPgRJAE0EYAA+BAQAPgPfAD4EhgBKBKsAPgHoAD4DzwALBBwAPgOEAD4FlwA+BMoAPgR/AE0ElQBNBGMAPgQrACMD7gC9BLMAWARwAL4FoQDUBEH/4wQcALUD/v/5BDMASgJNAKwDqQAPA9YAIAQjACUEJQAeA+8ATgOEAL0D7gAjA+cAbQIPAH8DKAAiAzgAJQLTAO0DRwArA0gAQALjAI8DTwAuAzgAZANtAD4DZwC5ApEBKwMbAPUEOgAuBDoAJwQ6AGEESwBkA/n/kQQBAOsEMP/OBDoANQR7AEAERABBBPAAWAQgADcE3gBXBNMAWAPZADYE7ABYA9gANgQ6AH0EMgA+AzgBCwHjAAACFQA+BTMAXgUzAF4EYgBTBHoA7AJpAAcE/v/VBP7/1QT+/9UE/v/VBP7/1QT+/9UE/v/VBMsAYgRiAFgEYgBYBGIAWARiAFgCJABiAiQAYgIkAGICJABiBVkAWAU7AF4FOwBeBTsAXgU7AF4FOwBeBRIAZwUSAGcFEgBnBRIAZwSmAO4EIAA6BCAAOgQgADoEIAA6BCAAOgQgADoEIAA6A/wARwP5AEcD+QBHA/kARwP5AEcB6AA+AegAPgHoAD4B6AA+BEQANQREAEYERABGBEQARgREAEYERABGBEQAWgREAFoERABaBEQAWgPI/7wDyP+8BP7/1QQgADoE/v/VBCAAOgT+/9UEIAA6BMsAYgP8AEcEywBiA/wARwTLAGID/ABHBMsAYgP8AEcFFQBYBNoARARiAFgD+QBHBGIAWAP5AEcEYgBYA/kARwRiAFgD+QBHBGIAWAP5AEcFJgBoBEMANwUmAGgEQwA3BSYAaARDADcFJgBoBEMANwVYAFgERAA1AiQAYgHoAD4CJABiAegAPgIkAGIB6AA+AiT/mgHo/3sCJABiBkkAYgPeAEQEJQAPAe//GwTTAD4D2QA2BCAAWAHoAEQEIABYAej/qAQgAFgCfgBEBCAAWALEAEQFWQBYBEQANQVZAFgERAA1BVkAWAREADUERAA1BTsAXgREAEYFOwBeBEQARgU7AF4ERABGBPgAVwKkADUE+ABXAqT/pgT4AFcCpAA1BJgAQwPuADsEmABDA+4AOwSYAEMD7gA7BJgAQwPuADsEmABDA+4AOwR6AOwCaQBFBHoA7AJpAG8EegDsApEAbwUSAGcERABaBRIAZwREAFoFEgBnBEQAWgUSAGcERABaBRIAZwREAFoFEgBnBEQAWgaVAOwFrACyBKYA7gPI/7wEpgDuBH0AIAPIAAgEfQAgA8gACAR9ACADyAAIBwX/ngZSAAQFHQAmBEUATARgAAsEYAALA+4AvQRv/9QEb//UBG//1ARv/9QEb//UBG//1ARv/9QESQBNBAQAPgQEAD4EBAA+BAQAPgHoAD4B6AA+AegAPgHoAD4EygA+BH8ATQR/AE0EfwBNBH8ATQR/AE0EswBYBLMAWASzAFgEswBYBBwAtQRv/9QEb//UBG//1ARJAE0ESQBNBEkATQRJAE0EYAA+BAQAPgQEAD4EBAA+BAQAPgQEAD4EhgBKBIYASgSGAEoEhgBKBKsAPgHoAD4B6AA+AegAPgHo/3MB6AA+A88ACwQcAD4DhAA+A4QAPgOEAD4DhAA+BMoAPgTKAD4EygA+BH8ATQR/AE0EfwBNBGMAPgRjAD4EYwA+BCsAIwQrACMEKwAjBCsAIwPuAJcD7gC9BLMAWASzAFgEswBYBLMAWASzAFgEswBYBaEA1AQcALUEHAC1A/7/+QP+//kD/v/5CFYAIwT+/9UExgCbBbwAvAKIAMYFTwByBQoASQUUADECeQBsBP7/1QTLAFgEYgBYBH0AIAVYAFgCJABiBNMAPgaSAFgFWQBYBTsAXgTNAFgEegDsBKYA7gS9//wCJABiBKYA7gQ/AEAECwApBEQANQJ5AH4EHABaBDEAPgREAEYERP/rA8gAlwPI/+kCeQB+BBwAWgREAEYEHABaBisAXQRiAFgELgBXBJgAQwIkAGICJABiBCUADwTTAD4E0wA+BLcAowT+/9UEywBYBC4AVwRiAFgFWQBYBpIAWAVYAFgFOwBeBVoAWATNAFgEywBiBHoA7AS9//wEIAA6A/kARwRaAEAERABGBET/4gP8AEcDyP+8A8j/6QP5AEcDKAA+A+4AOwHoAEQB6AA+Afb/HQQVAEADyP+8BpUA7AWsALIGlQDsBawAsgaVAOwFrACyBKYA7gPI/7wBVwDGAnUAxQP6AE8EgwCKAe//GwGNALEGkgBYBosANQT+/9UEIAA6BTsAAQbIAIoHHgCKBGIAWAVZAFgD+QBHBFoAQAUvAIoFRABDBL4A6APIALMIDABGCQMAXgR0ACAD0gAeBMsAYgP8AEcEpgDuA8gAswIkAGIG0//KBbz/wwIkAGIE/v/VBCAAOgT+/9UEIAA6BwX/ngZSAAQEYgBYA/kARwUrAEYD+QA8A/kAPAbT/8oFvP/DBHQAIAPSAB4FWQBYBFoAQAVZAFgEWgBABTsAXgREAEYFHQBdBEUARgUdAF0ERQBGBREAhwQLADMEtwCjA8j/vAS3AKMDyP+8BLcAowPI/7wFJwDRBBgAfwaCAFcF2ABABL3//API/+kERABEBU//3gRb/9UE/v/VBCAAOgT+/9UEIAA6BP7/1QQgADoE/v/VBCAAOgT+/9UEIAA6BP7/1QQgADoE/v/VBCAAOgT+/9UEIAA6BP7/1QQgADoE/v/VBCAAOgT+/9UEIAA6BP7/1QQgADoEYgBYA/kARwRiAFgD+QBHBGIAWAP5AEcEYgBYA/kARwRiAFgD+QBHBGIAWAP5AEcEYgBYA/kARwRiAFgD+QBHAiQAYgHoAD4CJAAXAej/+gU7AF4ERABGBTsAXgREAEYFOwBeBEQARgU7AF4ERABGBTsAXgREAEYFOwBeBEQARgU7AF4ERABGBSMAWQROAEYFIwBZBE4ARgUjAFkETgBGBSMAWQROAEYFIwBZBE4ARgUSAGcERABaBRIAZwREAFoFOgBnBK4AWgU6AGcErgBaBToAZwSuAFoFOgBnBK4AWgU6AGcErgBaBKYA7gPI/7wEpgDuA8j/vASmAO4DyP+8BGIARARiABME0wA+BBUAQAVYAFgEWQBABHoA7AOfAJAEvf/8A8j/6QUnANEEGAB/BScA0QQYAH8ELgBXAygAPgbT/8oFvP/DBc8ArgR0ACUERAA1BLkASAS5AEgELgA0AygACgTnAFID7QBKBVkAWARaAEAFWABYBFkAQAaSAFgFkgBABU//3gRb/9UEpgDuA8gAbQS9//wDyP/pBAsAKQRf//wGEgEAAAoAAAAKAAAB/QBPAAAAAQABAQEBAQAMAPgI/wAIAAj//gAJAAn//QAKAAr//QALAAv//QAMAAz//QANAA3//AAOAA7//AAPAA///AAQABD//AARABH/+wASABL/+wATABP/+wAUABT/+wAVABT/+gAWABX/+gAXABb/+gAYABf/+gAZABj/+QAaABn/+QAbABr/+QAcABv/+QAdABz/+AAeAB3/+AAfAB7/+AAgAB//+AAhACD/9wAiACH/9wAjACL/9wAkACP/9wAlACT/9gAmACX/9gAnACb/9gAoACf/9gApACf/9QAqACj/9QArACn/9QAsACr/9QAtACv/9AAuACz/9AAvAC3/9AAwAC7/9AAxAC//8wAyADD/8wAzADH/8wA0ADL/8wA1ADP/8gA2ADT/8gA3ADX/8gA4ADb/8gA5ADf/8QA6ADj/8QA7ADn/8QA8ADr/8QA9ADr/8AA+ADv/8AA/ADz/8ABAAD3/8ABBAD7/7wBCAD//7wBDAED/7wBEAEH/7wBFAEL/7gBGAEP/7gBHAET/7gBIAEX/7gBJAEb/7QBKAEf/7QBLAEj/7QBMAEn/7QBNAEr/7ABOAEv/7ABPAEz/7ABQAE3/7ABRAE3/6wBSAE7/6wBTAE//6wBUAFD/6wBVAFH/6gBWAFL/6gBXAFP/6gBYAFT/6gBZAFX/6QBaAFb/6QBbAFf/6QBcAFj/6QBdAFn/6ABeAFr/6ABfAFv/6ABgAFz/6ABhAF3/5wBiAF7/5wBjAF//5wBkAGD/5wBlAGD/5gBmAGH/5gBnAGL/5gBoAGP/5gBpAGT/5QBqAGX/5QBrAGb/5QBsAGf/5QBtAGj/5ABuAGn/5ABvAGr/5ABwAGv/5ABxAGz/4wByAG3/4wBzAG7/4wB0AG//4wB1AHD/4gB2AHH/4gB3AHL/4gB4AHP/4gB5AHP/4QB6AHT/4QB7AHX/4QB8AHb/4QB9AHf/4AB+AHj/4AB/AHn/4ACAAHr/4ACBAHv/3wCCAHz/3wCDAH3/3wCEAH7/3wCFAH//3gCGAID/3gCHAIH/3gCIAIL/3gCJAIP/3QCKAIT/3QCLAIX/3QCMAIb/3QCNAIb/3ACOAIf/3ACPAIj/3ACQAIn/3ACRAIr/2wCSAIv/2wCTAIz/2wCUAI3/2wCVAI7/2gCWAI//2gCXAJD/2gCYAJH/2gCZAJL/2QCaAJP/2QCbAJT/2QCcAJX/2QCdAJb/2ACeAJf/2ACfAJj/2ACgAJn/2AChAJn/1wCiAJr/1wCjAJv/1wCkAJz/1wClAJ3/1gCmAJ7/1gCnAJ//1gCoAKD/1gCpAKH/1QCqAKL/1QCrAKP/1QCsAKT/1QCtAKX/1ACuAKb/1ACvAKf/1ACwAKj/1ACxAKn/0wCyAKr/0wCzAKv/0wC0AKz/0wC1AKz/0gC2AK3/0gC3AK7/0gC4AK//0gC5ALD/0QC6ALH/0QC7ALL/0QC8ALP/0QC9ALT/0AC+ALX/0AC/ALb/0ADAALf/0ADBALj/zwDCALn/zwDDALr/zwDEALv/zwDFALz/zgDGAL3/zgDHAL7/zgDIAL//zgDJAL//zQDKAMD/zQDLAMH/zQDMAML/zQDNAMP/zADOAMT/zADPAMX/zADQAMb/zADRAMf/ywDSAMj/ywDTAMn/ywDUAMr/ywDVAMv/ygDWAMz/ygDXAM3/ygDYAM7/ygDZAM//yQDaAND/yQDbANH/yQDcANL/yQDdANL/yADeANP/yADfANT/yADgANX/yADhANb/xwDiANf/xwDjANj/xwDkANn/xwDlANr/xgDmANv/xgDnANz/xgDoAN3/xgDpAN7/xQDqAN//xQDrAOD/xQDsAOH/xQDtAOL/xADuAOP/xADvAOT/xADwAOX/xADxAOX/wwDyAOb/wwDzAOf/wwD0AOj/wwD1AOn/wgD2AOr/wgD3AOv/wgD4AOz/wgD5AO3/wQD6AO7/wQD7AO//wQD8APD/wQD9APH/wAD+APL/wAD/APP/wAAAAAMAAAADAAAIjAABAAAAAAAcAAMAAQAAAiYABgIKAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAABAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAADBBwABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAAAH1AfYB+AH6AgECBgIKAg0CDAIOAhACDwIRAhMCFQIUAhYCFwIZAhgCGgIbAhwCHgIdAh8CIQIgAiMCIgIkAiUBbABvAGIAYwBnAW4AdQCDAG0AaQF9AHMAaAGLAH8AgQGIAHABjAGNAGUAdAGDAYUBhADBAYkAagB5ALUAhACHAH4AYQBsAYcAkwGKAK0AawB6AXAAAwHxAfQCBQCQAJEBYgFjAWkBagFlAWYAhgGOAicClgF0AXkBcgFzAZIDUAFtAHYBZwFrAXEB8wH7AfIB/AH5Af4B/wIAAf0CAwIEAAACAgIIAgkCBwCKAJoAoABuAJwAnQCeAHcAoQCfAJsABAZmAAAA7ACAAAYAbAAAAAIACQANACEAfgCgAKwArQC/AMYAzwDmAO8A/gEPAREBJQEnATABOAFAAVMBXwFnAX4BfwGSAaEBsAHwAfsB/wIZAhsCNwJZArwCxwLJAt0C8wMBAwMDCQMPAyMDigOMA5IDoQOwA7kDyQPOA9ID1gQlBC8ERQRPBGIEbwR5BIYEzgTXBOEE9QUBBRAFEx4BHj8ehR7xHvMe+R9NIAsgFSAeICIgJiAwIDMgOiA8IEQgdCB/IKQgpyCsIQUhEyEWISIhJiEuIV4iAiIGIg8iEiIaIh4iKyJIImAiZSXK7gL2w/sE/v///f//AAAAAAACAAkADQAgACIAoAChAK0ArgDAAMcA0ADnAPAA/wEQARIBJgEoATEBOQFBAVQBYAFoAX8BkgGgAa8B8AH6AfwCGAIaAjcCWQK8AsYCyQLYAvMDAAMDAwkDDwMjA4QDjAOOA5MDowOxA7oDygPRA9YEAAQmBDAERgRQBGMEcAR6BIgEzwTYBOIE9gUCBREeAB4+HoAeoB7yHvQfTSAAIBMgFyAgICUgMCAyIDkgPCBEIHQgfyCjIKcgqyEFIRMhFiEiISYhLiFbIgIiBiIPIhEiGiIeIisiSCJgImQlyu4B9sP7Af7///z//wABBBgEEv/1AAD/4gAA/8AAAP+/AAABMQAAASwAAAEoAAABJgAAASQAAAEiAAABHAAAAR4AAP8B/vT+5wFhAAAAoQBkAGb+Yf5AAJb91P2l/cT9r/2j/aL9nf2Y/YUAAP9w/28AAAAA/QUAAP9Q/Pn89gAA/LUAAPytAAD8ogAA/JwAAP6eAAD+mwAA/EUAAOVV5RXkxeT45Fnk9uQK4VYAAOFN4UzhSuFB4xvhOeMT4TDhAeD3AADg0QAA4HXgaOBm4Fvfj+BQ4CTfgd6n33XfdN9t32rfXt9C3yvfKNvEE44KzgAAApQBmAABAAAAAAAAAAAA5AAAAOQAAADiAAAA4AAAAOoAAAEUAAABLgAAAS4AAAEuAAABOgAAAVwAAAFoAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAFMAWgAAAGAAAAAAAAAAZgAAAHgAAACCAAAAioAAAI6AAACxAAAAtQAAALoAAAAAAAAAAAAAAAAAAAAAALcAAAAAAAAAAAAAAAAAAAAAAAAAAACzAAAAswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqYAAAAAAAAAAwQcAeoB6wHxAfIB8wH0AfUB9gB/Ae0CAQICAgMCBAIFAgYAgACBAgcCCAIJAgoCCwCCAIMCDAINAg4CDwIQAhEAhACFAhwCHQIeAh8CIAIhAIYAhwIiAiMCJAIlAiYAiAHsA/AAiQHuAIoCVQJWAlcCWAJZAloAiwCMAI0CYwJkAmUCZgJnAmgCaQCOAI8CagJrAmwCbQJuAm8AkACRAn4CfwKCAoMChAKFAe8B8ACSAfcCEgCpAKoC+ACrAvkC+gL7AKwArQMCAwMDBACuAwUDBgCvAwcDCACwAwkAsQMKALIDCwMMALMDDQC0ALUDDgMPAxADEQMSAxMDFAMVAL8DFwMYAMADFgDBAMIAwwDEAMUAxgDHAxkAyADJA1oDHwDNAyAAzgMhAyIDIwMkAM8A0ADRAyYDWwMnANIDKADTAykDKgDUAysA1QDWANcDLAMlANgDLQMuAy8DMAMxAzIDMwDZANoDNAM1AOUA5gDnAOgDNgDpAOoA6wM3AOwA7QDuAO8DOADwAzkDOgDxAzsA8gM8A1wDPQD9Az4A/gM/A0ADQQNCAP8BAAEBA0MDXQNEAQIBAwEEBAYDXgNfARIBEwEUARUDYANhA2MDYgEjASQECwQMBAUBJQEmAScBKAEpBAcECAEqASsEAAQBA2QDZQPyA/MBLAEtBAkECgEuAS8D9AP1ATABMQEyATMBNAE1A2YDZwP2A/cDaANpBBMEFAP4A/kBNgE3A/oD+wE4ATkBOgQEATsBPAQCBAMDagNrA2wBPQE+BBEEEgE/AUAEDQQOA/wD/QQPBBABQQN3A3YDeAN5A3oDewN8AUIBQwP+A/8DkQOSAUQBRQOTA5QEFQQWAUYDlQQXA5YDlwFiAWMEGQQYAXcD8QF5AZIDUANYA1kABAZmAAAA7ACAAAYAbAAAAAIACQANACEAfgCgAKwArQC/AMYAzwDmAO8A/gEPAREBJQEnATABOAFAAVMBXwFnAX4BfwGSAaEBsAHwAfsB/wIZAhsCNwJZArwCxwLJAt0C8wMBAwMDCQMPAyMDigOMA5IDoQOwA7kDyQPOA9ID1gQlBC8ERQRPBGIEbwR5BIYEzgTXBOEE9QUBBRAFEx4BHj8ehR7xHvMe+R9NIAsgFSAeICIgJiAwIDMgOiA8IEQgdCB/IKQgpyCsIQUhEyEWISIhJiEuIV4iAiIGIg8iEiIaIh4iKyJIImAiZSXK7gL2w/sE/v///f//AAAAAAACAAkADQAgACIAoAChAK0ArgDAAMcA0ADnAPAA/wEQARIBJgEoATEBOQFBAVQBYAFoAX8BkgGgAa8B8AH6AfwCGAIaAjcCWQK8AsYCyQLYAvMDAAMDAwkDDwMjA4QDjAOOA5MDowOxA7oDygPRA9YEAAQmBDAERgRQBGMEcAR6BIgEzwTYBOIE9gUCBREeAB4+HoAeoB7yHvQfTSAAIBMgFyAgICUgMCAyIDkgPCBEIHQgfyCjIKcgqyEFIRMhFiEiISYhLiFbIgIiBiIPIhEiGiIeIisiSCJgImQlyu4B9sP7Af7///z//wABBBgEEv/1AAD/4gAA/8AAAP+/AAABMQAAASwAAAEoAAABJgAAASQAAAEiAAABHAAAAR4AAP8B/vT+5wFhAAAAoQBkAGb+Yf5AAJb91P2l/cT9r/2j/aL9nf2Y/YUAAP9w/28AAAAA/QUAAP9Q/Pn89gAA/LUAAPytAAD8ogAA/JwAAP6eAAD+mwAA/EUAAOVV5RXkxeT45Fnk9uQK4VYAAOFN4UzhSuFB4xvhOeMT4TDhAeD3AADg0QAA4HXgaOBm4Fvfj+BQ4CTfgd6n33XfdN9t32rfXt9C3yvfKNvEE44KzgAAApQBmAABAAAAAAAAAAAA5AAAAOQAAADiAAAA4AAAAOoAAAEUAAABLgAAAS4AAAEuAAABOgAAAVwAAAFoAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAFMAWgAAAGAAAAAAAAAAZgAAAHgAAACCAAAAioAAAI6AAACxAAAAtQAAALoAAAAAAAAAAAAAAAAAAAAAALcAAAAAAAAAAAAAAAAAAAAAAAAAAACzAAAAswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqYAAAAAAAAAAwQcAeoB6wHxAfIB8wH0AfUB9gB/Ae0CAQICAgMCBAIFAgYAgACBAgcCCAIJAgoCCwCCAIMCDAINAg4CDwIQAhEAhACFAhwCHQIeAh8CIAIhAIYAhwIiAiMCJAIlAiYAiAHsA/AAiQHuAIoCVQJWAlcCWAJZAloAiwCMAI0CYwJkAmUCZgJnAmgCaQCOAI8CagJrAmwCbQJuAm8AkACRAn4CfwKCAoMChAKFAe8B8ACSAfcCEgCpAKoC+ACrAvkC+gL7AKwArQMCAwMDBACuAwUDBgCvAwcDCACwAwkAsQMKALIDCwMMALMDDQC0ALUDDgMPAxADEQMSAxMDFAMVAL8DFwMYAMADFgDBAMIAwwDEAMUAxgDHAxkAyADJA1oDHwDNAyAAzgMhAyIDIwMkAM8A0ADRAyYDWwMnANIDKADTAykDKgDUAysA1QDWANcDLAMlANgDLQMuAy8DMAMxAzIDMwDZANoDNAM1AOUA5gDnAOgDNgDpAOoA6wM3AOwA7QDuAO8DOADwAzkDOgDxAzsA8gM8A1wDPQD9Az4A/gM/A0ADQQNCAP8BAAEBA0MDXQNEAQIBAwEEBAYDXgNfARIBEwEUARUDYANhA2MDYgEjASQECwQMBAUBJQEmAScBKAEpBAcECAEqASsEAAQBA2QDZQPyA/MBLAEtBAkECgEuAS8D9AP1ATABMQEyATMBNAE1A2YDZwP2A/cDaANpBBMEFAP4A/kBNgE3A/oD+wE4ATkBOgQEATsBPAQCBAMDagNrA2wBPQE+BBEEEgE/AUAEDQQOA/wD/QQPBBABQQN3A3YDeAN5A3oDewN8AUIBQwP+A/8DkQOSAUQBRQOTA5QEFQQWAUYDlQQXA5YDlwFiAWMEGQQYAXcD8QF5AZIDUANYA1kAAAACAMUEFAK9BhgABQALAAABAyMTNzMFAyMTNzMBiGpZOhiIAQdrWjwXiQWN/ocBcJSL/ocBd40AAAIAQwAABM8FsAAbAB8AAAEjAyMTIzczEyM3IRMzAzMTMwMzByMDMwcjAyMDMxMjApnvnIuc3Bv1ie8bAQifi5/vn4yfuRvTic8b552MHu6J7gGa/mYBmocBZokBoP5gAaD+YIn+mof+ZgIhAWYAAAABAEf/MAQ+BpsAKwAAATYmJy4BNz4BPwEzBx4BByM2JiMiBgcGFhceAQcOAQ8BIzcuATczBhYzMjYDEQ9fhbacHBvNoiORJJaIILQYWG1rhhERW4+4lRse2LAekR6brSK1G3lvdp4BdmF6NT/Gra3IFNrcGuvJkqJ+bGhzOUS/rLXCEr/AE9TVpnx+AAUA0//rBTAFxQANABsAKQA3ADsAABM+ATMyFg8BDgEjIiY3MwYWMzI2PwE2JiMiBgcBPgEzMhYPAQ4BIyImNzMGFjMyNj8BNiYjIgYHBScBF/wbtIR5fBkPHLODen0ahxE2SUFiEA8QNEhCZA8BZRu1g3l8GQ8cs4N6fRqHETZJQmIQDxA1SEJkD/4BWAN6WASYiqOuf02Koa1+UWNpS01RZWtL/M2Jo65+TouhrX9SY2lMTlFkakv2QQRyQQAAAAMAG//rBIQFxQAgACsAOAAAEz4BNy4BNz4BMzIWBw4BDwETPgE3Mw4BBxcjJw4BIyImBTI2NwEHDgEHBhYTBhYXNz4BNzYmIyIGORSdmDwuDh3Lo5CeFRFycHX8M0IPohZpVYzYQFa7YsbQAa1Di0P+8yljSQkTa5YJHymQPDIKC0pLS2UBhoGuX2aZVLKss4BohUxT/mNCmlqL1lrkaD4/404yMgG4HUl7NXiOA+k4ckVhJ1g4QltxAAAAAQDGBCMBqAYYAAUAAAEDIxM3MwGWd1k8FZEFqP57AXWAAAAAAQBX/ioDHwZqAA8AABMSADcXBgADBwISFwcmAhOZQgF0vxGT/vo4AjtuczaZzEACTwGfAhJqeGz+K/6gDv6R/j14b2cCJAGQAAAAAAH/jP4qAlUGagAPAAABAgAHJzYAEzcSAic3FhIDAhRD/oy9FJEBCTkCOnZrOJfMPwJF/l/98GpvbAHdAWEOAWoBzHRvZ/3Z/nMAAAABAKECYgOgBbAADgAAASU3FxMzAyUXBRMHCwEnAaP+/kv9PJVPASYP/tR/jG/daAPYW5RwAVn+oXCWXP7wXQEh/uZaAAEAcgCSBDUEtgALAAABIQchAyMTITchEzMCwAF1I/6MXLZc/oojAXVWtgMLrP4zAc2sAasAAAAAAf+Y/swBAADaAAkAADcOAQcnPgE/ATPiFn9eVzxGER+2RmvHSEhKkFWXAAABAD4CIQIjArYAAwAAASE3IQIF/jkeAccCIZUAAQBGAAABIwDFAAMAADMjNzP8tie2xQAAAf+m/4MDsQWwAAMAABcjATNBmwNymX0GLQAAAAIAUP/rBGEFxQANABsAAAECACMiAhsBEgAzMhIDJzYmIyIGBwMGFjMyNjcD5T3+7dC/tjhFPAEV0L+0N60pV39zrSZUKll+dKsnAiz+0P7vASoBFwFXAS4BFP7V/uko0bPEwP5b0bXEwgAAAAEBcAAAA14FsAAFAAAhIxMFNyUCO7X5/vEYAdYE3Ah3ZQAAAAEALQAABDMFxQAYAAApATcBPgE3NiYjIgYHIzYkMzIWBw4BBwEhA5r8kxUCEZFsDxNdZYqiF7UhARPcsrkcFaGU/lICk4MCE5GnW3aQnI/L9uKzf+CT/lcAAAAAAQA1/+sEKAXFACoAAAE/ATMyNjc2JiMiBgcjNiQzMhYHDgEHHgEHBgQjIiY3MwYWMzI2NzYmKwEBmQsHn3h/ExVddWqZErUcAQbAucAgEYBwc0wSIv7xw7fUH7YUandznRYXXoSfAsNGJ4Z2hX6Jc7Te1chirS8ttnLT19e/fIWJiJF6AAAAAAIAJwAABBwFsAAKAA8AAAEzByMDIxMhNwEzASETJwcDWrweu0S0RP2eFQMhv/zrAZ+MAyAB6JX+rQFTawPy/DgCvAE6AAAAAAEAaP/rBD4FsAAfAAAbASEHIQMXPgE3NhIHDgEjIiY3MwYWMzI2NzYmIyIGB8vOAqUb/fRuAy1vR7+pJSb716nJIasVaGpyoBoYY3ZqcCMCkQMfqf5gASItAgL+++To/cnLgH+xnZetSEoAAAIAZ//rBBkFxQAaACcAAAEyFhcHLgEjIgYPAT4BMzISBwYAIyICGwESABMiBg8BBhYzMjY3NiYDHkWFKD4pXkWO3SAERaFbsq8hJv71xcPYLi4uAVA4XpExEiN5fG+hGRlmBcUiG5EaHvjLGDc7/vTS7v7xATIBGwEfASYBSP1zVEl118/Ompy0AAAAAQDYAAAEhAWwAAwAAAEAAgMHIzcSABMhNyEEbP7T9WAntidgATPy/R8YA5QFGv7F/iH+mZmZAWICGAEHlgAAAAMANf/rBFgFxQAXACMALwAAAQ4BBx4BBwYEIyImNz4BNy4BNz4BMzIWATYmIyIGBwYWMzI2EzYmIyIGBwYWMzI2BDIalXBraBct/u/Mv9EpGqyEXVYXKvu9q7/+whpxdW61GBtvfG2xexdfZF+ZFxleaFyaBDV+pigvt3rbw9TKiLYpLadx0b/Q/JiEkZt6iIWQAyF3h4tze36IAAIAf//rBDcFxQAbACgAACUyNj8BJw4BIyICNzYAMzISCwECACMiJic3HgETMjY/ATYmIyIGBwYWAa6ExiQFAzaSV8G/JiYBHbTQyyw5MP7R3EePNzM1cLVlmCwYIGaIZLEaG2OA2NghAUVDAQbu8QEW/uf+6v6c/tX+5BwfkB0ZAd9jTpjNus6jp7j//wBGAAAB1AQ6ACYAEAAAAAcAEACxA3X////G/swB1QQ6ACcAEACyA3UABgAOLgAAAQBlAMUDxQRJAAoAAAEPARcFBwE/AQEHAWVPAUgB2yf9VBcGA0MmApsVAxTpwQF7ch0BesEAAAACAI4BkAQIA80AAwAHAAABITchAyE3IQPo/PkgAwdz/PkgAwcDL579w54AAAEAVgDGA9oESgALAAATNwEPAgE3JTc1J+QmAtAGEQb8mSUCX1JJA4+7/oYdVR3+hbzyFQMWAAAAAgDCAAAD5gXFABkAHQAAAT4BNz4BNzYmIyIGByM+ATMyFgcOAQcOAQcDIzczAU0eQHN7XxMXT2ZSjxO3JPyrrqskHJySPSYSTL4pvgGZk2lef3VddmtnYqnAybONu4A2VF7+Z8sAAAACABP+OwbGBZYAMwBDAAABBgAjIiYnDgEjIiY3EgAzMhYXBzMDBhYzMjY3EgIhIAADAhIhMjY3Fw4BIyAAExIAISAAAQYWMzI2Nz4BNxMuASMiBgZgNf760kFTBkGTW3BVOEsBDpxcdTgEBaMgKDBsvixd0P7B/u7+OFhe3QEqT7NCD0rGXf6v/tJnaAINAWEBUAEm+9koHkc6cDgCBgSXFzEecKwB99v+z1VOVE/xxAEIATM2NAT9uHNS5rEBhwGj/jH+jP6A/lArI2grLgHzAbABsAII/g39/ZKVNEQMGQ8CHQwO3QAAAv/VAAAEfwWwAAcACwAAASEDIwEzEyMBIQMnA5H9ztK4Ay+b4Ln96gHNXAMBhP58BbD6UAIZAqABAAAAAwBYAAAE0AWwAA8AGAAhAAAzASEyFgcOAQcVHgEHBgQjCwEhMjY3NiYjJSEyNjc2JiMhWAEjAbjL0icWjGV0YRss/vLXtWsBPnitGRtWff7FASljnRcab4r+/QWwxMVqlCIDG8eI2cECrf3oh3yMiZV6b4JtAAAAAQBi/+sE+AXFABsAAAEGBCMiABsBEgAzMhIHIzYmIyICBwMGEjMyNjcEdUP+89/f/vs2MzsBNezZ+Be3C4qZkNooMyyYoouhNwG/4PQBagELAQEBKAE8/vLgo7X+/8v+/dj++JinAAACAFgAAAUdBbAACQATAAAzASEgAAMHAgAhCwEhMhI/ATYCI1gBIwF6AQABKDcnPv6s/u8K5wEPsfMrKCy/xwWw/pT+7cX+zf7HBRr7ewEB1sjeAQgAAAAAAQBYAAAE8gWwAAsAAAEhAyEHIQEhByEDIQQC/ZJpAswe/H8BIwN3Hv0+YAJuAqb975UFsJb+IgABAFgAAAT5BbAACQAAASEDIwEhByEDIQP5/ZWBtQEjA34e/TdmAmsCiP14BbCW/gQAAAAAAQBo/+sFDwXFAB8AACUGBCMiABsBEgAzMhYHIzYmIyIGBwMGFjMyNjcTITchBFtA/vvC6P78NTs5AV3z2NYLtQJ0mpT6Jjwrn6ttqidD/tUeAeC/UYMBTwEKASkBIAE48smInf3D/tXV70QqAVCVAAEAWAAABXkFsAALAAAhIxMhAyMBMwMhEzMEVrWB/WyBtQEjtYQClIS1Aob9egWw/WsClQABAGIAAAI6BbAAAwAAISMBMwEXtQEjtQWwAAAAAQAP/+sEUgWwAA8AAAEzAwYEIyImNzMGFjMyNjcDnbXSK/74vrvFKrUeYnthoxoFsPvk1NXW0JZ7ln4AAQA+AAAFNQWwAAwAAAEjAyMBMwMzATMJASMCAomEtwEjt3+TAiPm/WsBhM8Clf1rBbD9hAJ8/Sj9KAAAAQBYAAADrQWwAAUAACUhByEBMwErAoIe/MkBI7WVlQWwAAAAAQBYAAAGswWwABEAAAETMwEzASMbAScBIwMjCwEjAQJkwgMCouj+3bV1iQP9WnnOA2R1tQEjBbD7UwSt+lACRwJUAftkBJj9r/25BbAAAAABAFgAAAV6BbAACwAAISMBIwMjATMBMxMzBFe2/lID47UBI7UBrgPjtgRw+5AFsPuRBG8AAgBe/+sFNgXFAA0AGwAAAQIAIyIAGwESADMyAAMnNiYjIgYHAwYWMzI2NwTOPP6y/eX+/DYzOwFE9OwBEDW0K6qzl98pMy2gqqHoKgJO/tr+wwFrAQoBAQEmAT7+k/73Atr++M7+/dz+99EAAgBYAAAFGAWwAAoAEwAAAQMjASEyFgcGBCMlITI2NzYmIyEBgnW1ASMCBM7LJyv+7OH+zwFPg7EZGmaP/rECSv22BbDww9bdlaN5hZoAAAACAF7/DAU2BcUAEwAhAAABDgEHFwcnDgEjIgAbARIAMzIAAyc2JiMiBgcDBhYzMjY3BM4kl3Kqk8MrVS7l/vw2MzsBRPTsARA1tCuqs5ffKTMtoKqh6CoCTrH9TtNz9gsMAWsBCgEBASYBPv6T/vcC2v74zv793P730QAAAgBXAAAFAgWvABoAIwAAAQMjASEyFgcOAQceAQ8BBhYXByMmNj8BNiYjJSEyNjc2JiMhAYt+tgEjAerUyikZkHlmRhkbDwccBbseBQ8bGWBx/s0BI5OrGxtnk/7MAnr9hgWv08p8oC8prn2JSWYjGCN+S4WCh5WDgod/AAEAQ//rBMAFxQAlAAABNiYnLgE3NiQzMhYHIzYmIyIGBwYWFx4BBwYEIyIkNzMGFjMyNgN+GHCz1rEoIwEFw9jpKrYciZJpnREaZrvbsCcl/vXM2f7jMLUjuJpqqwFMd4RCSMvGsbLs1ouhdFd/d0dPx8O4q9brq4FyAAABAOwAAAULBbAABwAAASEBIwEhNyEE7f5a/vu1AQX+Wh4EAQUa+uYFGpYAAAEAZ//rBVcFsAARAAABAwIEIyImNxMzAwYWMzI2NxMFV8U0/r7y1u0wxbbFJYqWkeIixQWw/CX+/ef87gPb/CW2n62oA9sAAAEAzQAABVcFsAAJAAABHwE3ATMBIwEzAkAMAzMCEcT9IJ3+88QBXnIBcwRS+lAFsAAAAAABAOwAAAbsBbAAFQAAAQczNwEzEx8BNwEzASMDJyMHASMDMwHDBANGAZOhYQgDOwFUtf3homkEAy/+TqJMtQHvv78Dwfw/wAHBA8H6UAP9iYn8AwWwAAAAAf/8AAAFHQWwAAsAAAkBMwkBIwMBIwkBMwKnAZvb/d4BQtfr/l3cAi3+xtkDcwI9/S79IgJI/bgC3gLSAAAAAAEA7gAABVMFsAAIAAAJATMBAyMTATMCjQH3z/1oZ7Rp/uXQAs0C4/xU/fwCDwOhAAEAIAAABFsFsAAJAAA3IQchNwEhNyEH+QK0HvyRCQNE/ZAeA0AblZWNBI2WiAAAAAEAEv7IArQGgAAHAAABIwEzByEBIQKcr/70rxj+mgE8AWYF6vl0lge4AAAAAQD3/4MCnAWwAAMAABMzEyP3rPmsBbD50wAAAAH/l/7IAjkGgAAHAAATIQEhNzMBI9MBZv7E/poYsQEMsQaA+EiWBowAAAAAAQB8AtkDIgWwAAkAAAEjATMTIwMnIwcBJKgBp3uEp0YCAx8C2QLX/SkBqkxMAAAAAf+W/2sDDQAAAAMAAAUhNyEC7/ynHgNZlZUAAAEA8wS7AkgFxQADAAABIwMzAkiTwtsEuwEKAAACADr/7AP3BE4AIAArAAAhNDY3Jw4BIyImNzYkOwE3NiYjIgYHIzYkMzIWBwMOARclMjY/ASMiBgcGFgKgBAUDQq5dlokeIgEB0L4WFVdnWI4OtRsBALaktSJoDQkE/jlXrS8ow2ukEBFBMz4fAUhdrJaoom5paWRGhbu7r/32PWY3i2BEyXtTUE8AAAIANf/rBCcGGAASACAAAAEOASMiJicHIwEzAxc+ATMyEgMjNiYjIgYHAx4BMzI2NwPvM+i+WY0rM50BOLZ0AziOV7GnM7UnXIdPfTJgGW9ae5chAeL/+GBWoQYY/b0BPD7+rP79yvNeUf4gS1W3pgABAEf/7AP7BE4AGwAAJTI2NzMGBCMiAj8BNgAzMhYHIzYmIyIGDwEGFgHxWqAPrBn+8qbXuyUHJwER4a7BGqwQameNpBoHHFWBeFyazwEy6ir1ASfeqmyG4qQqsdYAAAACAET/6wSVBhgAEgAgAAATGgEzMhYXEzMBIzcnDgEjIgI3MwYWMzI2NxMuASMiBgd3OO7BV4greLX+yJ0JAzyQWLCuL7YkYYlMdTNlG2tUfJ8mAh4BHAEUSEQCVvnoaAI/QAE06rPRU08B+kRP2b0AAgBH/+wD6wROABUAHQAABSICPwE2ADMyEg8BIQYWMzI2NxcOAQMiBgchNzYmAePOzicHJwEptMerIxP9bBhrh1qXPDNAuQFaoCkB2gQTWRQBKvEt9QEl/vvdea3FOTJ7OksDzKqGGn2ZAAAAAQCKAAADhwYtABcAADMTIzczNz4BMzIWFwcuASMiBg8BMwcjA4q8nRydHCXFnB5AJTMQLRtNaBMc0hzSvAOtjYu7rQsKkQUGamOLjfxTAAACADf+SwQ9BE4AHgAsAAATGgEzMhYXNzMDBgQjIiYnNx4BMzI2PwEnDgEjIgI3MwYWMzI2NxMuASMiBgd6OPHCXIwrLJnVLv752kWkOUwsg0V+oRwPAziKU7GxL7UkZYlNdjNkG2tVfaMlAh4BHAEUUEyI+9Tk3ysklB8kmItNATg5ATXpstJUUAH2RVDavAABADUAAAQZBhgAFAAAARc+ATMyFgcDIxM2JiMiBgcDIwEzAaoDQKRem48rh7WIHk9vSY85nrYBOLYDuwJITdDZ/VsCp5Z3VEj86AYYAAAAAAIARAAAAjEGGAADAAcAADMjEzMTIzcz+bXYtTi1KLUEOgEYxgAAAAAC/x3+SwI5BhgADwATAAABAw4BIyImJzceATMyNjcbASM3MwHe6iW5lRswGSsNMQ48WhXq6bYntgQ6+222pgkJlgUIW2YEkwEcwgAAAQA2AAAEKAYYAAwAAAEjAyMBMwMzATMJASMByHhktgE4trZ2AW7W/kMBFtYB9v4KBhj8dQGt/hP9swAAAQBEAAACMQYYAAMAADMjATP5tQE4tQYYAAAAAAEANQAABlsETgAkAAABFz4BMzIWFz4BMzIWBwMjEzYmIw4BBxUDIxM2JiMiBgcDIxMzAaECQKVmXn0UQq9vk4stgraCI0hqY5AgiraDIUtpUn4unbbYowOyAUxRYmNeZ+Dk/XYCi7F4AZFuA/1PAo2ngFNL/OoEOgAAAAABADUAAAQYBE4AFAAAARc+ATMyFgcDIxM2JiMiBgcDIxMzAZ8CQaZkm5EqibaIIE5xTI04nLbYowOoAVJVzNf9VQKnn25ZTfzyBDoAAgBG/+wEHAROAA0AGwAAEzYAMzISDwEGACMiAjczBhYzMjY/ATYmIyIGB3EpARrWzcUmBCn+5tbNxie2HmOJga4cBB1jiIGvGwIo/gEo/szyGP/+2wEx87fY4a4YtdvkrAAAAAL/4v5gBCYETgASACAAAAEOASMiJicDIwEzBxc+ATMyEgMjNiYjIgYHAx4BMzI2NwPuM+i+W4starYBK5wIAzuUWrKnNLYoYolJdjBqG2tWfJ8hAeH/90RD/e4F2m4BQEP+rP78yfVSSP3xQ0i8pQACAET+YAQrBE4AEgAgAAATGgEzMhYXNzMBIxMnDgEjIgI3MwYWMzI2NxMuASMiBgd3OO7BWYcsJZz+1bVjAzeETrCuL7YkYIlGbzJtHGhQfJ8mAh4BHAEURUR1+iYB8gI0NQE06rTVTUcCIj1F3L4AAQA1AAADDQROABAAAAEnIgYHAyMTMwcXPgEzMhYXAtJnR3QsmbbYow0DOYxVFC4LA5MGUEr9AQQ6jgFPVAcEAAEAO//sA8kETgAlAAABNiYnLgE3PgEzMhYHIzYmIyIGBwYWFx4BBw4BIyImNzMGFjMyNgK8C01/s58VFuesrLYXtQ1cX19yCgxGgLueFBnttbzBGLUMd11hfwEeRlIgLI+Bi7HBkE1uXkJFRx8tlIGXqNCQbF9WAAEAb//sAqQFQQAXAAABAzMHIwMGFjMyNjcHDgEjIiY3EyM3MxMCGjW/HL+EEiQrFDMTAhxdLGNjIISNHI01BUH++Y39alY5CAWDERWPnAKWjQEHAAEAWv/sBDsEOgAUAAAhNycOASMiJjcTMwMGFjMyNjcTMwMCwRICP6RknZMwf7Z/JkNpX5Mzm7XYkQFSVOHwAn39gb53W1MDBvvGAAABAJcAAAQKBDoACQAAARczNwEzASMDMwHFBQMgAWS5/eCJyrkBOlNTAwD7xgQ6AAABALIAAAX6BDoAFQAAAQcXNwEzExUzNwEzASMDLwEHASMDMwGEBQM4AVOSPwM8ASm0/gSSPgYDT/67k0y1AYaKAYsCtP1Mm5sCtPvGApu7Abz9ZQQ6AAAAAf/pAAAD8QQ6AAsAAAkBMwETIwMBIwEDMwIGARjT/mT40J7+3dMBqfLRAqcBk/3p/d0Bnv5iAiMCFwAAAf+8/ksEKgQ6ABUAAAEfAQEzAQ4BIyImJzcmFjMyNj8BAzMBtwcDAZ7L/V8/qXsVQhMxJGkLOEw+RaTLAYaFAQM6+x9vnwsFlQMIT2d1BCQAAAAAAQAIAAAD3wQ6AAkAADchByE3ASE3IQf7Akoe/OEbAsP94h4C+RmVlYUDHpeBAAAAAQBR/pADHAY9AB8AAAEuAT8BNiYjPwEyNj8BPgE3Fw4BDwEOAQceAQ8BBhYXAc+wcB0hEkhmEwRhdBMhHLnEEm5yFSETZlpJNxAhFzhj/pA4667Pd3h4F3xy0LTkOXEls4jQcJ4rL51nz4ytJgAAAAEANv7yAdwFsAADAAATIwEzyJIBFJL+8ga+AAAB/6n+kAJ2Bj0AHwAABz4BPwE+ATcuAT8BNiYnNx4BDwEGFjMPASIGDwEOAQdXbnIXIRJsYVE9EiEWOWI4r28cIRNJZxIFYnUSIR64wv4lsojPcpwqK51s0IyvJXE46q/QeHZwH35xz7TlOAABAIIBkwTMAyEAGQAAAQ4BIyImJy4BIyIGByc+ATMyFhceATMyNjcEzBe8fVF+Ry9QMD5rDIAXuX5Qg0MvUDE8bg0C5JDBQkoyMGtOEo+4RkY0LnNQAAAAAv/r/ooBxAQ6AAMABwAAEyMTMxMjNzOhtsS2N7Yotv6KA9IBEswAAAEAV/8LBAAFJgAhAAAlMjY3Mw4BDwEjNyYCPwE2Ej8BMwceAQcjNiYjIgYPAQYWAftaoA+sF+OWLbYwmX0fByPpwC22LoCCFawQameNpBoHHFWBeFyLxhTl8SsBHMUq3QEeG97lI8uNbIbipCqx1gABAC0AAAR/BcUAIQAAAQcOAQchByE3Mz4BPwEjNzMTPgEzMhYHIzYmIyIGBwMhBwG7GRU8JwKsH/x2HgkwUxYZmR2ULSz1tbGtI7caW2FYjhsuAYUdAmqYY6A6lZUNxWuYlQER3djTsIRpl4j+75UAAgAm/+UFjATxACMALwAAJQ4BIyImJwcnNy4BNz4BNyc3Fz4BMzIWFzcXBx4BBw4BBxcHAQYWMzIANzYmIyIAA8dWt2NbmT2bZaQiERUVWEJommVSsF5Vlj6rZrEkExQWUjtkm/0vK6qnlwEeJymppZn+4Wc+PUNCi4WTT7BjbrtPkoaONzlAO5qHoFC0ZmuyTIyGAnvQ+wEMv876/vUAAAEAcQAABS4FsAAWAAAJATMBIQchByEHIQMjEyE3ITchNyEDMwKLAdPQ/egBJRj+myIBZRj+m0G1Qf6iGAFeIv6iGAEk+NADGwKV/S94q3b+ugFGdqt4AtEAAAAAAgAB/vICEAWwAAMABwAAGwEzAxMjEzMBnraewraXtv7yAxb86gPIAvYAAAAC/8j+EQTBBcUAMQBDAAABDgEHHgEHBgQjIiY/AQYWMzI2NzYmJy4BNz4BNy4BNzYkMzIWByM2JiMiBgcGFhceASUuAScOAQcGFhceARc+ATc2JgQxFnFbOCYUJv7u2sf4LbchlIZ5sRMTabrWqiQUcFs3IxQkARbZz9AptRpyh4GqEhdiwtmn/hgpRR9IXQ0XY8AoQx5JYg8TawGvZ4gmM4VjurTN4gKge3ldZVxBQbO0Y4koM4dis7vhzoKXelxtWj1Fr1QLGA4UY0ZvXD8OFwwVY0ZkYgACAScE7APFBbAAAwAHAAABIzczBSM3MwOmyh/K/i3LH8sE7MTExAAAAwBS/+sF4AXEABsAJwAzAAABDgEjIiY/AT4BMzIWByM2JiMiBg8BBhYzMjY3JQIAMzIAExIAIyIAAxIAISAAAwIAISAABC4at5eSkB0THcuZj44YjhBEV1Z5EhMVR1tTYxD9VS4BAuzfAYArLP7/6+H+gZk1AboBHQEMAUIyNv5F/ub+8f6+AlSkltOwd7fMnptnU490eH6HWGSF/uX+ogFsAQ0BGQFc/pb+9QFOAZ3+U/7C/rH+YQGvAAACAMICtAN+BcUAIAArAAABJjQ3Jw4BIyImNz4BOwE3NiYjIgYHJz4BMzIWBwMOARclMjY/ASMiBgcGFgJ3AwMDKXFJaWYWF62cgQsOJzk8UwqbFrKHd3obPwsFBP67LXEbF4BDXwkKKwLCFi4WAS47e2l2bzVHQTg0Dm57job+xjVSLnk7JXNDLzMu//8AcAB3A5MDkQAmAXLw3QAHAXIBJv/dAAEApgF4A84DHwAHAAABBwMjEyE3IQO/ETW2Nf2uIAMIAtVV/vgBCJ8AAAAABABS/+sF4AXEAAsAFwAyADsAABMSACEgAAMCACEgABMCADMyABMSACMiAAEDIxMhMhYHDgEHHgEPAQ4BFwcjJjY/ATYmIyczPgE3NiYrAYY1AboBHAENAUIyNv5F/uX+8v6+oy4BAezgAX8rLP7/6+H+ggFpNoqIAQSLjRMLTEM6KAwJBwMGAo0GCQcIDTJKgI0+XQoMPV56AtkBTgGd/lP+wv6x/mEBrwE//uX+ogFsAQ0BGQFc/pb+rP6sA1KBf0JbIBxoSjgrPxUQFlIoNk5AfgE/O084AAAAAAEBAwUjA7gFsAADAAABITchA6H9YhcCngUjjQACAQUDwQMIBcUACwAXAAABPgEzMhYHDgEjIiY3BhYzMjY3NiYjIgYBGhemZlxvFRihZF5zjgw1My5TDAwyMi9XBMFzkZpqdYuVaz1FSjg9SE0AAAACAE4ACQP4BPMACwAPAAABIQchAyMTITchEzMTITchAqkBTxj+sUKjQv6eGAFiQ6Nq/PgeAwgDVpb+YQGflgGd+xaVAAEApwKbA1EFxwAZAAABITcBPgE3NiYjIgYHIz4BMzIWBw4BDwEXIQLM/dsZAU1ONwkLJzk8VQqdFrOIeHoXEl6LsAEBVQKbfgEIPkosNzxCNHCFf3RXYnCPAwAAAQCqAo8DYwXGACkAAAEzMjY3NiYjIgYHIz4BMzIWBw4BBx4BBw4BIyImNzMGFjMyNjc2JisBNwGjeztKCwo2QzFPCJ8VsHuAixYNUUA7NAwZuI1ymBefCjk+QF0KDTZGexEEbzs1MTczKWxvd248WhgaXEN5cnV0NDc8MkU1VQABAPsEvAKsBcYAAwAAATMBIwHR2/7XiAXG/vYAAf/r/mAEMwQ6ABcAAAEDNwYWMzI2NxMzAyM3Jw4BIyImJwMjAQHLfQEqSmVagS+fttijCwI0f1FBXiBetQErBDr9jwLRek9OAx37xmEBPDsjKP4qBdoAAAEAhwAAA9wFsAAKAAAhEyMiAjc2JDMhAQIDaE7PxyosARrhAQT+3QIIAQTQ4PT6UAAAAAABAMMCcAGkA0EAAwAAASM3MwF6tyq3AnDRAAAAAf/O/k0BIwAAAA8AADMHHgEHDgEjNzI2NzYmJze/Fzw/EBWjjQ5AXwsKOFQ5NQtQUmdqajIyNSMHhgAAAQEEApkCRgXFAAUAAAEjEwc3JQGkoIR3GgEbApkClAGCFwAAAgDPArMDowXFAA0AGwAAAT4BMzIWDwEOASMiJjczBhYzMjY/ATYmIyIGBwEEIMyXjJAdFyDLmIyRHp8UPFNKbRIXEjtSS20RBHagr7uUdaKsupRhZW1ZdV1nb1UAAAD//wA1AJkDYQO0ACYBcxQAAAcBcwFUAAD//wEOAAAFYAXEACcByQDXApgAJwF0AQUACAAHAZcCiQAAAAD//wEbAAAFvQXEACcBdAESAAgAJwHJANcCmAAHAcoC8QAAAAD//wC6AAAGEQXHACcBdAGyAAgAJwGXAzoAAAAHAcsAlQKbAAAAAv/z/nYDFgQ7ABkAHQAAAQ4BBw4BBwYWMzI2NzMOASMiJjc+ATc+ATcTMwcjAo0gQHJ8XxIYUGZRkBS1JPyqr6okHJySPSYTTL4pvgKhlGpcgHVbdmtnYqnAybOLvIA1VF8BmswAAAAC/54AAAd1BbAADwATAAApARMhASMBIQchAyEHIQMhARMnAQaL/MI5/fr+/N4EVgOBHv19TAIkHf3hVgKP/Ph0A/3tAWL+ngWwlv4mlf3qAXkC0AH9LwAAAQBIAOIEFwR2AAsAABMBAzcTARcBEwcDAUgBde+N7QFzXP6K8I3u/o0BXAFQAVB6/rMBTXr+sP6wegFN/rMAAAMAJv+jBWsF7AAZACQALwAAAQIAIyImJwcjNy4BNxMSADMyFhc3MwceAQcBBhYXAS4BIyICByE2JicBHgEzMgA3BNA6/pL9TYA1eYq3PigbMzkBZPRUjzttiq05JBj8RBMFFgK/J2pGmP0nAtQPAxL9RSNdPKEBBykCV/7j/rEsLaH0WOOFAQEBHAFRNjOQ5lfaff7/WpM8A6YqK/71xFCHOvxfIyEBCscAAAACAEgAAAR6BbAADAAVAAABAzMyFgcGBCsBAyMBEwMzMjY3NiYjAiE7+83MJCn+6t/7P7YBI11u/IGxFxlmjgWw/trtu83b/sYFsP5F/dqgcX2YAAABADD/7AQrBg8AJwAAMyMTPgEzMhYHDgEHBgAHDgEjIiYnNx4BMzI2NzYANz4BNzYmIyIGB+W12DD/s46gIRqhCxMBDRwl2a1IoR9IIm47YXYRE/7zHhKtEBRIQV6bHwQ68OWrpYPOOl7+8Iy0misdmR0vYFBhARKSXNJMZmSmmgAAAAADAAT/6wZgBE4ALAA3AD8AAAUiJicOASMiJjc+ATsBNzYmIyIGByc+ATMyFhc+ATMyEg8BIQYWMzI2NxcOASUyNj8BIyIGBwYWASIGByE3NiYEQXirL0XjmpeSHyLt1dYRF0VfXY0QsB7xuWOQI0uyZL6sLRf9ZSBnl1uUSyM6u/yoRK01LNRrmhARSQPIZKYsAeEGGk8VZF5Tb6+VrKBVdnJwUBKaqk9NTU/+/eN1s8A7MIUuTZVYOt90UlNYAzitix+GkwAAAAIAJv/rBKsF7QAgAC4AAAEWEg8BAgAjIgI3NgAzMhYXNzYmJwUnJS4BJzceARc3FwEuASMiBgcGFjMyNj8BA8hLKCkTNf7E0cHWKjEBLs9MgCsDBSst/tw0AQgfQiZWQm4v9TP+vBSCcXXHHh1vh3fRIxQFCHv+us9h/vb+3gEYzvkBB0U6AXKpQKBjkRglEJ4XRTCGY/0rPU/Tl5DB57BjAAAAAwBqALcELgSvAAMABwALAAABITchJSM3MwMjNzMECvxgJAOg/ri2KLbLtie2Alq02sf8CMcAAAADAEz/eQQ4BLkAGQAkAC8AABM2ADMyFhc3MwceAQ8BBgAjIiYnByM3LgE3MwYWFwEuASMiBgchNiYnAR4BMzI2N3EpARrWPGQrbHeZPy0VBCn+5tYzVydmdo1MOBi2DwseAb0bQyqBrxsCGQwGEv5OFzUjga4cAij+ASgdHKTnTdmEGP/+2xQUm9ZL5pBfljUCpBYY5KxPhDX9bA4N4a4AAv/r/mAELwYYABUAIwAAAQ4BIyImJwMjEzcbATMDFz4BMzISAyM2JiMiBgcDHgEzMjY3A/cz6L5biy1qtlMQyGC1cwM6jFWypzS2KGKJSXYwaRpqV3yfIQHh//dEQv3vAaBTA+cB3v3EATg7/qz+/Mn1UUj98EJJvKUAAAIAVQAABcMFsAATABcAAAEzByMDIxMhAyMTIzczEzMDIRMzASE3IQU8hxyHzbWB/WyBtcyHHIc7tToCkzu1/DMClC39bQSNjfwAAob9egQAjQEj/t0BI/1r5QAAAQA+AAABzQQ6AAMAADMjEzP1t9i3BDoAAQA+AAAEYAQ6AAwAAAEjAyMTMwMzATMJASMBrl5ctti2XFABxdv97wFY5AHP/jEEOv41Acv9+P3OAAAAAQBJAAADngWwAA0AAAElBwUDIQchEwc/ARMzAaYBDB/+82oCgh78yXx8IHyHtQNJVp9W/euVAmwnnycCpQAAAAEARwAAAlMGGAALAAABNw8BAyMTBz8BEzMBu5ggmI61f5AgkJm1A2g6oDr9OAJ+N6A3AvoAAAAAAQBG/ksFaQWwABgAAAkBDgEjIiYnNx4BMzI2PwEBIwMjATMBMxMFaf7LJbuVHC8aKgw9EDZYExL+TwPgtgEjtgGwA+EFsPn3tacJCZEFCGldWQRj+50FsPudBGMAAAAAAQA1/ksEEAROACAAAAEXPgEzMhYHAw4BIyImJzceATMyNjcTNiYjIgYHAyMTMwGgAkCiYZuQK5olupQcMhktDDwSN1QTmSBOck6CM6G22KMDsQFOUM3Y/P61pwkJmgUHYFwC/qBvSUP82AQ6AAAAAAIAT//rB4MFxQAXACUAACkBDgEjIgIbARIAMzIWFyEHIQMhByEDIQUyNjcTLgEjIgYHAwYWBmr8vVl5P97pNT05AVPyPYhGAzke/T5gAm4e/ZJpAsz7rDBqOOk0ZDWX6is9L4UKCwFLAQoBMAEgATUMCZb+Ipb97xUICQSOCAnn1/7O69UAAAADAET/6wbVBE4AIQAvADcAABMSADMyFhc+ATMyEg8BIQYWMzI2NxcOASMiJicOASMiAjczBhYzMjY/ATYmIyIGBwEiBgchNzYmeTQBI9dyoytQy2zBpisY/WsgZIdYnTwwQr2AdKUsTs9/x74xtSZZin28IwQlWYp9vCIEIlipLgHZBRlSAigBBQEhbmRmbP7523mwwzoyeztLamNmZwE08bvV5KwYudfmqgGQq4UagJYAAAABAEQAAANBBi0ADwAAMxM+ATMyFhcHLgEjIgYHA0T0JsSdHUEkMhMmGE5wE/QExbutDAmMBQZvY/s7AAAB/2b+SwNHBi0AIwAAASMDDgEjIiYnNx4BMzI2NxMjNzM3PgEzMhYXBy4BIyIGDwEzAoy2pR23kxwvGSQMPBA3URClnhaeFh3Amx8/Ji4QLhpQXxAWtgOt+/qxqwkJkQUIaV0EBo2LtrILCpEFBmlkiwAAAAIAWf/rBiUGNgAXACUAAAECACMiAhsBEgAzMhYXPgE3Mw4BBx4BByc2JiMiAgcDBhYzMgA3BMw6/pL94O41MzkBZPRpqT1XcRmjI5uAHgwStCqTr5j9JzQsiaahAQcpAlf+4/6xAWYBBgEBARwBUVJLCYl8r7wdTKtfAtb5/vXE/v3Y+QEKxwACAEb/7AUJBLAAFwAlAAATNgAzMhYXMjY3Mw4BBx4BDwEGACMiAjczBhYzMjY/ATYmIyIGB3EpARrWX5EyWVoZkSKFfhYJDQQp/ubWzcYnth5jiYGuHAQdY4iBrxsCKP4BKEhEd3ekpRNCllQY//7bATHzt9jhrhi12+SsAAAAAAEAZ//rBqUGDQAZAAABBz4BNzMOAQcDAgQjIiY3EzMDBhYzMjY3EwVXKFVkGqMqvKyBNP6+8tbtMMW2xSWKlpHiIsUFsMoakXzRzhT9e/795/zuA9v8JbafragD2wAAAAEAWv/sBVcEkQAcAAABDgEHAyM3Jw4BIyImNxMzAwYWMzI2NxMzBz4BNwVXJI2cp6ISAj+kZJ2TMH+2fyZDaV+TM5u1HFVLFwSRsJEI/LiRAVJU4fACff2BvndbUwMGigpmcQAB/xv+SwHcBDoADwAAAQMOASMiJic3HgEzMjY3EwHc6iW5lRowGioNPA83VhPqBDr7bbamCQmRBQhpXQSTAAAAAgA8/+wD9gRPABUAHQAAATISDwEGACciAj8BITYmIyIGByc+AQMyNjchBwYWAmnGxy8JM/7OtcKmLBkClR1jhVqdPC5BvSZXqi/+JwUaUgRP/tLuLf3+4wEBBtt5r8Q8MXw6TPwzqYYZgZUAAQFIBOQDhwXpAAgAAAEHIycHIzclMwOHBZRrppUFARZuBPwYlpYZ7AAAAAABAV4E5AOpBekACAAAATczBwUjJzczAmamnQT+4G26BJkFU5YS8/EUAAAAAAEBCwSlA08FsAANAAABDgEjIiY3MwYWMzI2NwNPFKuEfoMUkwsxR0JRCwWwf4ySeUZQVEIAAAAAAQFBBOoCMQWwAAMAAAEjNzMCCsknyQTqxgAAAAIBIgRfAsEF4AALABcAAAE+ATMyFgcOASMiJjcGFjMyNjc2JiMiBgEzEYJUS1wQE35TTV5wCSwpJUYJCSopJ0cFHlpob1NcY2pVLzg7LDA5PQAAAAH/t/5QAScANwATAAAhDgEHBhYzMjY3Bw4BIyImNz4BNwEnV2IJBhsoGTAXByBMMk9XDg+OjD5kPCUlEQt4ExljWlmVPAAAAAEBCATiA68F8QATAAABDgEjIiYjIgYHJz4BMzIWMzI2NwOvEIBWQIAyJkIHYA9/VzONMiZDCAXSYnxfQi8aYoFgQTEAAgEHBOQD7wXuAAQACAAAATMXASMDMwEjAxjWAf6xpBLJ/uWRBe4D/vkBCv72AAAAAgAd/ocBV/+rAAsAFwAAFz4BMzIWBw4BIyImNwYWMzI2NzYmIyIGKg5jPzhFDQ5ePjpJYAYdHBcrBgYaGhou6UVPVEBETFE/HSMlGyAkJgAB/fIEuv7KBhMAAwAAASMDM/7KeGCsBLoBWQAAAf5BBLv/owYUAAMAAAEzAyP++6jzbwYU/qcA///9WATi//8F8QAHAKD8UAAAAAAAAf5GBNn/lQZzAA8AAAE3PgE3NiYjNzIWBw4BDwH+Rh1NPwcJTUIcjnsTDl5BDwTZlwUdKSgnaV5dSEgJRgAAAAL9SwTk/8sF7gADAAcAAAEjAzMBIwMz/tak59sBpZGuyATkAQr+9gEKAAAAAfzc/rH9y/92AAMAAAEjNzP9pMgnyP6xxQAAAAEBZAT4AqoGeAADAAABMwMjAenB8FYGeP6AAAADAUEE7QP5BogAAwAHAAsAAAEjNzMFIzczNzMDIwPStye3/gG5J7mdyqqCBO3Dw8PY/vj//wDDAnABpANBAAYAdgAAAAEAVwAABLkFsAAFAAABIQEjASEEm/13/vu2ASMDPwUa+uYFsAAAAAAC/8wAAAS+BbAAAwAHAAABEyEJASEDIwPJ9fsOA2H9sAMQpAMFsPpQBbD65QQkAAADAE//6wUnBcUAAwARAB8AAAEhNyEXAgAjIgAbARIAMzIAAyc2JiMiBgcDBhYzMjY3A7D+JR4B2/E8/rL95f78NjM7AUT07AEQNbQrqrOX3ykzLaCqoegqApSW3P7a/sMBawEKAQEBJgE+/pP+9wLa/vjO/v3c/vfRAAAAAf/eAAAEXQWwAAcAAAEnASMBMxMjAwoD/ZG6AxSdzroEmAH7ZwWw+lAAAAADACIAAAShBbAAAwAHAAsAADchByETIQchEyEHIUADZx78mfQCwx79PU4DWx78pZWVAzyWAwqWAAEAWAAABXsFsAAHAAAhIwEhASMBIQRYtQEF/Wr++7UBIwQABRr65gWwAAAAAf/xAAAEoAWwAAwAAAkBIQchNwkBNyEHIQEDAP3nAuIe/EYcAjX+thwDjB79TQE2As79yJaOAk0CR46W/c0AAAMAVwAABX0FsAAVAB4AJwAAATMyEgcCACsBByM3IyICNxIAOwE3MwEiBgcGFjsBEzMDMzI2NzYmIwOzBdH0LzX+qeUFI7YjB9LyMTMBVuUHJbb/AJjhIyiApQeftp8HluElJ4GjBPb+zu/++/7hsbEBMfEBAwEguv6x2LbHxgMb/OXYt8TIAAABAIoAAAWSBbAAFwAAAT4BNxMzAwIABwMjEyYCNxMzAwYWFxMzAvKO0SJqtWo1/sfnSLZIyMsxarRqJm6EvbYCAxvUrAIS/e7+9v7rFf6WAWscASXyAhL97rvKFwOuAAABAB0AAAUIBcUAKAAAJT8BNhITNzYmIyIGDwECEhcPAiE3MyYCPwESADMyEgMHBgIHFzMHIQJjFwGLyTQXM4Cll+0uFzhbhwEXB/4zHt9ZOyMXPQFY8d3lOBclrXkB2B7+MyJzBhsBGwECdv7o/Op2/uz+9xsGcyKVYwEvrHQBNAFK/p7+5HS2/thdA5UAAAACAED/6wQ0BE4AHAAqAAABAwYWMzI2NwcOASMiJicOASMiAj8BEgAzMhYXNwEGFjMyNjcTLgEjIgYHBDSdExgjBxIGBSA5IkBIBEKeY6+gLwQ4AQTCWn0kLv2LJVSHT4E5XBRbUH22JQQ6/OxdOwMDiBMOS1RQTwEg6hUBGwEpU1CP/bu1wGBYAc1VXvK8AAAC//X+fwRwBcQAFAArAAABMhYHDgEHHgEHBgQjIiYnAyMBNiQDPwEzMjY3NiYjIgYHAx4BMzI2NzYmIwMLrLkiFHleZFcYLv7zxEqFMFy3ASMkAR04EA5MbIwXFFdqYKgWqB93VXOxGhhWbAXE261kli0vwH/i2S8w/jQFsbXf/P9QRXxsaIaRbfy6NDWggnulAAAAAQCz/mAEJgQ6AAsAAAEzAQMjEwMzExczNwNtuf3XYLZhlblXAQMkBDr8BP4iAeQD9v0AU1MAAAACAEH/7AQqBhwAIQAvAAABPgEzMhYXBy4BIyIGBwYWFxYSDwEGACMiAj8BPgE/AS4BAwYWMzI2PwE2JiciBgcBfB3TrEONQkIxfkRKawwLRXG6iSkEM/7f18jBLwQm1o0GU0dCJVyKfLkhBB1ldn28IAT2k5MtKIAXJEk/NlosS/7uzhf8/uwBKOgXvOsjCyeM/WGyytikF5HSGtyhAAAAAQAp/+0D/QRMACkAABM+ATcuATc+ATMyFgcjNiYjIgYHBhY7AQ8BIyIGBwYWMzI2NzMGBCMiJkgTeWZKRQ8h7sSizhy1D2phaIsNEFFwwggVwmyIERFpc2SjELUk/u+0tNABMGR9HyV2SKOWsI9OXmJEUlEmaldZUl9yTrSerAABAIv+gQRYBbAAIAAAAQcBDgEHBhYfAR4BBw4BByc+ATc2Ji8BLgE3NhI3ASE3BFgX/mualBwWKUpzhlcVEYpGTzk7Cgc3SU6aXCEauK0BRf2vHgWwdv5Snd6QalsTJixDbUqpM1M3Uy0nLxYXL56hgAEvrwFAlgABADX+YQQSBE4AFAAAARc+ATMyFgcDIxM2JiMiBgcDIxMzAaACQKJhno8t27XaIE5yToEzorbYowOxAU5QxOH7uAREoHNKRPzWBDoAAwBW/+sEZwXFAA0AFgAfAAABAgAjIgIbARIAMzISAwUhNzYmIyIGBwEhBwYWMzI2NwPrPf7t0L+2OEU8ARXQv7Q3/UQB8xwpV39zrSYBuf4NGipZfnSrJwIs/tD+7wEqARcBVwEuART+1f7pY4vRs8TA/uCF0bXEwgAAAAEAfv/rAfwEOQAPAAABAwYWMzI2NxcOASMiJjcTAfSiESUtFTAWDjBUM2tcIaAEOfzUVDQOC4AeFY6eAyIAAAAB/9H/8AO3Be4AIQAAMyMBJy4BIyIGIzc+ATMyFhcTHgEzOgE3Bw4BIyImJwMjB5vKAjgsCiUnCRwIHBFGGVVPCbsHHx8LEQgZDikVVVYTZAMzBALuOi4CjAQIU1X7qDUrApQFB1F9Al5zAAABADr+dwQbBcMAMwAAAS4BIyIGBwYWOwEHMwcjIgYHBhYfAR4BBw4BByc+ATc2Ji8BLgE3PgE3NS4BNzYkMzIWFwPjOF4zgqgQFnSfhAgBF4So3CAcbW1jgF4VEYlGTz8yDAk1TjLIpSsgvZVjXhQiAQ7cPIEoBQoRE21QcWsnb6CjiYsdFyNKbUmmNFM8RjcuJxMNNMDUosErAyuUXa+nFxAAAAEAcP/rBJcEOgAXAAABIwMGFjMyNjcXDgEjIiY3EyEDIxMjNyEEeXGEESUtFTAWDjBUM2tcIYL+jbq2unceA8YDpP1pVDQOC4AeFY6eAo38XAOklgAAAAAC/+L+YAQmBE4AEAAeAAABCgEjIiYnAyMTNRIkMzISAyM2JiMiBgcDHgEzMjY3A+0z+b9YgCpotsc1ARm8yao1tSlJh22uGz4XXlN8siEB9f8A/vc/QP31A+ICAQz+/sP++c7g64v+zUVJz6UAAAAAAQBJ/ooD/wROACEAAAEyFgcjNiYjIgYPAQYWFx4BBw4BByc+ATc2JicuAT8BNgACoae3JKsXVW96uB8IH3ihiWQWEIpGTj4yDAkzUNmtKwgxASAETtG3c3/qnCqWrTEsTW5IqDNTPUQ3MCcUNP7WKvYBJgACAEP/7ASzBDoAEAAeAAABIR4BDwEGACMiAj8BNgA3IQEGFjMyNj8BNiYjIgYHBJX+/EwzGgUu/trUx78xBDIBIdcCEfx3JlmKfbwjBCNciX26IAOjStGFF+X+5QE08Bj7ARYB/da71OOsGK/M2qEAAQC3/+sEHgQ6ABMAAAEhAwYWMzI2NxcOASMiJjcTITchBAH+qoQRJS0VMBYOMFQza1whgv7BHQNKA6b9Z1Q0DguAHhWOngKPlAAAAAEAWv/rA/QEOgAVAAABAwYWMzISNzYmJzMeAQcCACMiJjcTAcGDIkRZds8iFgkYvhsGHzb+5N+rny6DBDr9b6iBAQmogfuNbf2f/vT+xtvlAo8AAAIAP/4iBUAEOgAZACMAAAUmAjc+ATcXDgEHBhYXEz4BMzISBwYABQMjAT4BNzYmIyIGBwHq7b4vJKSNSV5vGyNnoZAWlXG01y0y/tP+7Fy2ATCo2R4cYYEaKAUQHAFB5rf2WoNKyHKq5hwC0XBy/svl9f7bF/4zAmYc6ZOh4ikcAAAAAAEAQ/4pBS4EOgAbAAABAz4BNzYmJzMeAQcCAAUDIxMmAhsBMwMGFhcTA3O9qNsgFgoavRwKHzX+1f7oWrZb2sU5YbZhL3GMvQQ5/E8f9ZyA+4ds+pz+/P7PFf47AcgcASwBGwHm/hjm0BYDswAAAAABAF3/6wXsBDoAKQAAAQ4BBwYWMzI2NxMzAwYWMzI2NzYCJzMeAQcKASMiJi8BDgEjIgI3PgE3AjNZeB0qMGpYkCQ8tzwnSmFglScWEiO/IxEfOOjFaIERAz2sdbZ6MiJxUwQ6iP+EzuGkswEr/tXClfG+hAEAh2/9n/7u/s51cgF4cAFJ+6vwcAAAAAIAWv/rBQoFxQAZACQAACUyNjcuAT8BPgEzMhYHAwIAIyICGwE3AwYWAQYWFxM2JiMiBgcCJZPoK8DNJg0l0JKLhyNmPf6y8NPZNoS3hSx0AYwbaoFIFyxEO2IVhvDTCvq/Pry/yrH+Av7T/swBWQEIApgC/Wba7AOEhZkIAWZ4Z3BvAAEAswAABNgFuwAjAAABPgEzMhYXBy4BIyIGBwEDIxMDLgEjIgYHNz4BMzIWFxMXMzcDW0mETR4vFjQFEwweOxn+aXS0dJYIKx8OFgQJGTAgR2EYVQQDIgTXfmYKDpIDBSUs/X79ugJEAoQtJAUDkg4KZ33+aEpKAAIAZP/rBjQEOgAXAC0AAAEjFgYHCgEjIiYvAQ4BIyICNz4BNyM3IQE2JichDgEHBhYzMjY/ATMHBhYzMjYGFn4MBRU42LFpgBADPat1pGgyFkEtaR4FZf6gEAEP/Qs2ShQqIFZXkSQztzMnSWJNgwOjVLZq/u/+zXZyAXlwAUn7cbJRl/31XbdgYrZczeKks/z8wpXyAAAAAQDb//UFfwWwABsAAAEhAz4BMzIWBwYEIzcyNjc2JiMiBgcDIwEhNyEE9/4eXVGQM9rZLC/+8+kaj6ocHHWYN5RIibYBBf58HgQcBRr+LRcd8Nvn1I+ckJaWGhb9VAUalgAAAAEAZv/sBPwFxgAfAAABBgQjIgAbARIAMzISByM2JiMiAg8BIQchBwYSMzI2NwR5Q/7z39/++zYzOwE17Nn4F7cLipmQ2igLAhke/ecKLJiii6E3AcDg9AFqAQsBAQEoATz+8uCjtf7/yzmVNdj++JinAAAAAv/eAAAH4wWwABYAHwAAAQMhMhYHBgQjIQEhAwIAKwE3MzISGwEBAyEyNjc2JiMFcXIBTs3JJyv+6t/9+wEF/itrVf717TEeJoW6RokCsXUBToG0GRpmjQWw/cX3xNbkBRr96/5k/peVAR8BUQKr/TD9tax7gqIAAgBXAAAH6AWwABIAGwAAASETMwMhMhYHBgQjIRMhAyMBMwEDITI2NzYmIwGxApV/tnwBT87MJSn+7OD9/Ib9a4a2ASO2ArJqAU6DrxcYaI8DNwJ5/Zbku8zbAqL9XgWw/QH97phye40AAAAAAQDyAAAFqgWwABcAAAEhAz4BMzIWBwMjEzYmIyIGBwMjASE3IQUP/hRZT5Rh1sYvW7VbJGSWT6FUjrUBBf6EHgQdBRr+RRQU0+3+OQHHtnQWFP05BRqWAAEAV/6aBXsFsAALAAABMwEhATMBIQMjEyEBerb++wKVAQW2/t3+YUi1SP5TBbD65QUb+lD+mgFmAAAAAAIASAAABKoFsAAMABYAAAEhAyEyFgcGBCMhASEBBwMhMjY3NiYjBIz9d1oBTs/MJyv+7eH9/AEjAz/84R9QAU6DsBkZZ48FGv4+5sLU3AWw/ROe/nCjeoCRAAAAAv+W/poFhQWwAA4AFQAAASMTIQMjEzM2EhsBIQEzAQYCByETIQTTtUf8Lki1ZnNaukKTAy3++7j9RDqnZQKV5/41/psBZf6aAftYAVABLQJG+uUC1fj+lnMEhQAB/8oAAAddBbAAFQAAASMDIxMjASMJATMTMxMzAzMBMwkBIwSJkIa1hpX9/uMCYf7o1OKZf7V/kgHg1P3VAS7iAp/9YQKf/WEDAQKv/YQCfP2EAnz9U/z9AAAAAAEAIP/rBLAFxQApAAABDgEHHgEHBgQjIiY3MwYWMzI2NzYmKwE/ATMyNjc2JiMiBgcjNiQzMhYEiReUdGxcGCz+zei7+Cu1GoKJjc0YHXqdmA0RmIqsFxh1l3DBFbUnASjK098EJ3CjLSyqfNnR1tN/lZd6k3c/V4Z0e4mQbMXN1wAAAAEAWAAABXoFsAALAAABMwEjEycBIwEzAxcExLb+3bbgA/yPtQEjteADBbD6UARfAfugBbD7oQEAAf/eAAAFcQWwAA8AAAkBIwEhAwoBKwE3MzISGwEFcf7dtwEF/iR5YfjgMB4lealPmwWw+lAFGv3r/l7+nZUBGQFXAqsAAAAAAQCj/+sFRQWwABUAAAEXMwEzAQ4BIyImJzceATMyNj8BAzMCbB8DAeTT/TNVlo8WPgchCT0QPlAyNu7LAvu4A237QIZ/BgOQAgJOTlQEQAADAFv/xAX2BewAFQAeACcAAAEzMgADAgArAQcjNyMiABMSADsBNzMBIgYHBhY7ARMzAzMyNjc2JiMD+RngAQQzOP6R9BontSca4f79NDcBbvUbKbX+6aj5Jy2OuBuvta8bpvgpK461BR7+uP8A/uj+zMbGAUgBAgEWATTO/p3ux9zZA2r8lu3K2NsAAAEAV/6hBXoFsAALAAABMwEhATMBMwMjEyEBerX++wKWAQW1/vuNd6FG/CcFsPrlBRv66f4IAV8AAQDRAAAFSAWwABMAAAkBIxMOASMiJjcTMwMGFjMyNjcTBUj+3bV6Yqdy18cwW7dbJWOXW71jiwWw+lACYR0a0u4Bxv46t3McHAK4AAEAVwAABzAFsAALAAAJASEBMwEhATMBIQECMP77AcwBBbX++wHJAQW2/t36SgEjBbD65QUb+uUFG/pQBbAAAAABAFf+oQcwBbAADwAACQEhATMBIQEzATMDIxMhAQIw/vsBzAEFtf77AckBBbb++5B2o0b6bwEjBbD65QUb+uUFG/rl/gwBXwWwAAAAAgDJAAAFgQWwAAwAFQAAEyEDITIWBwYEIyEBIQEDITI2NzYmI+cCKXgBTs/MJyv+7eH9/AEF/o0BsW8BToOwGRlnjwWw/ajmwtTcBRv9qP3So3qAkQAAAAMAVwAABqIFsAAKABMAFwAAASEyFgcGBCMhATMLASEyNjc2JiMBIwEzAbgBTs/MJyv+7eH9/AEjtpZvAU6DsBkZZ48Cl7UBI7UDWObC1NwFsP0T/dKjeoCR/T0FsAAAAAIASAAABJIFsAAKABMAAAEhMhYHBgQjIQEzCwEhMjY3NiYjAakBTs/MJyv+7eH9/AEjtpZvAU6DsBkZZ48DWObC1NwFsP0T/dKjeoCRAAAAAQCH/+wFNAXGAB8AAAE2ADMyEgsBAgAjIgI3MwYWMzISPwEhNyE3NiYjIgYHAR0tAUDr2+Q2Mzv+qO/c5i21I4GgkfUpC/3oHgIXCyt+n5PTHwPf4wEE/qD+8/7//tv+uQEF36qlAQzJOJU22/y0nQAAAAACAGL/6wblBcUAFQAjAAABAgAjIgATNyMDIwEzAzM3EgAzMgADJzYmIyIGBwMGFjMyNjcGfTz+sv3l/vw2BrN/tQEjtYayEDsBRPTsARA1tCuqs5ffKTMtoKqh6CoCTv7a/sMBawEKH/2BBbD9ZE0BJgE+/pP+9wLa/vjO/v3c/vfRAAACAAwAAATxBbAADQAWAAAzIwEuATc2JDMhASMTIQEjIgYHBhY7Ac3BAbt+XyApATbWAbL+3bdy/tEBwvuXrh0bf4j8Am82upvR5fpQAjwC3o2RhKYAAAAAAgBE/+sEUAYRABwAKgAAATISDwEGACMiAj8CEgA3PgE3Mw4BBw4BBxc+ARciBg8BBhYzMjY/ATYmAqG8uCIEKP7o1szJJgEVNgEo4H11DJQerriDzTcCS68kgKoXBBxjiYGuGwQYaAP7/u/YGPX+5gEm6QiAAVYBaiwZQEq4aCAYpKQBQEuVw5EYrc3VpRiaugAAAAMAQAAABCoEOgAPABgAIQAAMxMhMhYHDgEHFR4BBw4BIwsBITI2NzYmIyczPgE3NiYrAUDYAYy/xx4RaFRYSxIh4sG3QgEWYn8QEVVr+eFshhARZHvWBDqUlVJzHQMYh1qkjwHc/rdWT1VPkgFNTFVJAAAAAQA+AAADlQQ6AAUAAAEhAyMTIQN3/je6ttgCfwOj/F0EOgAAAv+a/sIETgQ6AA4AFQAANz4BNxMhAzMDIxMhAyMTAQ4BByETIUhieTtgApC7hl61QP1KQLZfAhovflAByZn+05VizuABlfxb/i0BPv7CAdMCELv8WQL8AAH/wwAABgEEOgAVAAABIwMjEyMBIwEDMxMzEzMDMwEzARMjA7R1XrZedf6U5QHd5Nugclq2WnMBVNv+UPjlAdj+KAHY/igCPgH8/j8Bwf4/AcH+A/3DAAABAB7/7QPEBEwAKwAAATMyNjc2JiMiBgcjPgEzMhYHDgEHHgEHDgEjIiY3MwYWMzI2NzYmKwE/AgFtr1xpEA9KZVOQDrQf+aqorh4QaVNOQxIh8bme0iK1EmNlX4kPE01rrwgJBQJ1UkxLW2RInKOil1F3IiJ9WqSfq6dUbGVMYUoqLRgAAAAAAQBAAAAERwQ6AAsAAAEzAyMTJwEjEzMDFwORtti2mwP9pLXYtZsDBDr7xgMJAfz2BDr89wEAAAABAEAAAARhBDoADAAAASMDIxMzAzMBMwkBIwHKeFy22LZcbAGp2v4JAT/mAc/+MQQ6/jUBy/36/cwAAAAB/9UAAARJBDoADwAAAQMjEyEDCgErAT8BMjYbAQRJ2Le6/rZKUse+NCQmW3M+bgQ6+8YDo/7H/rH+5aIBxwEAAdAAAAEAQAAABX8EOgAOAAAlATMDIxMnASMDIwMjEzMCpwH149i1mAL+LX2jA5y22OvyA0j7xgL8Af0DAwv89QQ6AAABAEAAAARGBDoACwAAISMTIQMjEzMDIRMzA262XP4+XLbYtl4Bwl62AdD+MAQ6/ioB1gAAAQBAAAAERwQ6AAcAACEjEyEDIxMhA2+2uv49urbYAy8Do/xdBDoAAAEAkAAAA/cEOgAHAAABIQMjEyE3IQPa/rK6tbr+uR0DSgOm/FoDppQAAAAAAwBA/mAFVwYYAB8ALQA7AAATGgEzMhYXEzMDPgEzMhIDBwoBIyImJwMjEw4BIyICNyU2JiMiBgcDHgEzMjY3IQYWMzI2NxMuASMiBgdzOfK3JkAbYrViI0wtqIg1BDPttSxIHlW1VCFFKKaNLwP9KUR+HDEXnhMuH3OjIfy9JUN9Gi0WnhIrGXOjJgIKAR0BJw8OAef+Fw8Q/sL++hX/AP72ERD+VAGlDQ0BHuwVzeELCfzrCAfPpre+CAgDGQcI8L4AAAEAQP6/BEcEOgALAAABMwMhEzMDMwMjEyEBGLa6AcO6trt7cKJA/QsEOvxbA6X8W/4qAUEAAAAAAQB/AAAEBgQ7ABMAACEjEw4BIyImNxMzAwYWMzI2NxMzAy62TjlwQa+uKj+1Px5ObDp0PWu2AYgQD8zMATr+xpFwEBACGgAAAQBAAAAGAgQ6AAsAAAEDIRMzAyETMwMhEwHOugFkura6AWS6ttj7FtgEOvxbA6X8WwOl+8YEOgABADX+vwX3BDoADwAAAQMhEzMDIRMzAzMDIxMhEwHDugFkura6AWS6truRcKFA+znYBDr8WwOl/FsDpfxb/ioBQQQ6AAIAhgAABIEEOgAMABUAABMhAzMyFgcOASMhEyEBAzMyNjc2JiOjAd1L+6qnHiPmuP5Quv7aAZFR+l97ERJEZwQ6/orDm6q8A6X+iv5mdVVbdQAAAAMAQAAABasEOgAKAA4AFwAAATMyFgcOASMhEzMBIxMzAQMzMjY3NiYjAYP7qqceI+a4/lDYtgMFt9i3+7pR+l97ERJEZwLEw5uqvAQ6+8YEOv31/mZ1VVt1AAAAAgBAAAADzwQ6AAoAEwAAATMyFgcOASMhEzMLATMyNjc2JiMBg/uqpx4j5rj+UNi2aVH6X3sREkRnAsTDm6q8BDr99f5mdVVbdQAAAAEAM//rA+kETgAdAAABIgYHIzYkMzISDwEGACMiJjczBhYzMjY3ITchNiYCUlOhEq0fARGhwbgtCDL+4NKjuiKtF2Bjb68o/pIeAW0SWQO4eluezf7G4ir4/tvfqHCCypKVlLMAAAAAAgBA/+wF9QROABMAIQAAATM2JDMyEg8BBgAjIgI3IwMjEzMBBhYzMjY/ATYmIyIGBwFz5TUBEMbNxSYEKf7m1sDHFOpet9i3AS0eY4mBrhwEHWOIga8bAm7h//7M8hj//tsBDt7+KAQ6/da32OGuGLXb5KwAAAAAAv/VAAAEDgQ6AA0AFgAAAQMjEyMBIwEuATc+ATMBBhYzIRMjIgYEDti2VPf+vMQBXFhMFh/pu/7zEEVeAQZJ8mCCBDr7xgGm/loBxSibaJ2t/rRRYgFrbgAAAAABADX+SwQZBhgALAAAASEHFz4BMzIWDwEzAw4BIyImJzceATMyNj8BEzc2JiMiBgcDIxMjNzM3MwchAt7+/zMDQKRem48rLQJtJbqUHTMXLAs9EDZXExJbLR5Pb0mPOZ628pwenCi2KAEBBLr/AkhN0Nnf/eG1pwgJkgUJal1ZAcbhlndUSPzoBLqVyckAAAABAFH/7AQFBE4AHQAAJTI2NzMGBCMiAj8BNgAzMhYHIzYmIyIGByEHIQYWAftaoA+sGf7ypte7JQcnARHhrsEarBBqZ4GfIQFxHv6VEV6BeFyazwEy6ir1ASfeqmyGvpOVm7YAAv/VAAAGIQQ6ABYAHwAAAQMzMhYHDgEjIRMhAwoBKwE/ATI2NxMBAzMyNjc2JiMEJVP7qqodIOW4/k+6/tc+RtTHMyEnX4UyXAIlSvpefBAPR2cEOv5juZKgsgOj/sf+qf7tmAHb9gHQ/c7+i3NOUWMAAAACAEAAAAZCBDoAEgAbAAABIRMzAzMyFgcOASMhEyEDIxMzAQMzMjY3NiYjAXwBwlK2U/uqqh0g5Ln+UGj+Pmi22LYCB0r6XnwQD0dnAqABmv5iuJKgsgIM/fQEOv3O/otzTlFjAAAAAAEANQAABBkGGAAcAAABIQMXPgEzMhYHAyMTNiYjIgYHAyMTIzczNzMHIQL1/uk0A0CkXpuPK4e1iB5Pb0mPOZ6284Yehie2JwEXBL/+/AJITdDZ/VsCp5Z3VEj86AS/lcTEAAABAED+nARHBDoACwAAAQMhEzMDIQMjEyETAc66AcO6ttj+xke2R/7B2AQ6/FsDpfvG/pwBZAQ6AAEAaP/rBskFsAAgAAABAw4BIyImJw4BIyImNxMzAwYWMzI2NxMzAwYWMzI2NxMGydQt9LVgih5Bs3GhqSnUttQdTFphmhvUu9QdVmNYkBvUBbD72dzCVlhcUtPLBCf72Y18h4IEJ/vZjXyHggQnAAABAEX/6wXIBDoAIAAAAQMOASMiJicOASMiJjcTMwMGFjMyNjcTMwMGFjMyNjcTBciRKN6kUngdOptikpgmkbWRGTxKUIIXkbaRGUZSSHgXkQQ6/SnIsEdITEO/uQLX/Sl5anNwAtf9KXlqc3AC1wAAAgA+AAAD1AYYABIAGwAAASEDMzIWBw4BIyETIzczEzMDIQEDMzI2NzYmIwL3/tZD+aumISTouf5Q2LAesEK3QgEq/ldZ+V99ExNCZwQ6/q7MpLLGBDqVAUn+t/2E/kJ/XWKAAAEAY//sBp8FxgAnAAABMzcSADMyEgcjNiYjIgIPASEHIQcGEjMyNjczBgQjIgATNyMDIwEzAb6tBzsBNezZ+Be3C4qZkNooBwIBHv3/DiyYoouhN7dD/vPf3/77Ng6tiLUBI7UDQCIBKAE8/vLgo7X+/8sklknY/viYp+D0AWoBC0n9VgWwAAABADz/7AWRBE4AIwAAATM2ADMyFgcjNiYjIgYHIQchBhYzMjY3MwYEIyICNyMDIxMzAW6lMAEL1K7BGqwQameBnyEBlx7+bxFeiVqgD6wZ/vKmyb4Tq1232LcCZ98BCN6qbIa+k5Wbtnhcms8BD9f+LgQ6AAL/2AAABDsFsAALAA8AAAEjAyMTIwMjATMTIwEhAyMDTpdYtFiL57kDDJu8uf5IAXJCAwG6/kYBuv5GBbD6UAJYAjwAAv+8AAADjgQ6AAsAEQAAASMDIxMjAyMBMxMjASEDJyMHAqBkO7U7aam5AnKcxLr+nwETNgQDIgEr/tUBK/7VBDr7xgHBAT1KSgAAAAIAdAAABicFsAATABcAAAEhATMTIwMjAyMTIwMjEyEDIwEzASEDIwGhAWUBypu8uTSXWLRYi+e57f7QWLUBI7UBawFxQgMCWQNX+lABuv5GAbr+RgG6/kYFsPyoAjwAAAIAXQAABS4EOgATABkAAAEzATMTIwMjAyMTIwMjEyMDIxMzASEDJyMHAW3zAW6cxLo0ZDu1O2mpua26O7fYtwEnARM2BAMiAcECefvGASv+1QEr/tUBK/7VBDr9hwE9SkoAAAACADoAAAY8BbAAIQAlAAABMzchATMyFgcDIxM2JisBBwMjEycjIgYHAyMTNiQ7AQMzEzMBIQKtAwMDif4QGdXGL0q1SiNjlW8efLV/CnuJoCBKtkoyAQHqJu7Q3wQBcf3gBaMN/XvO6f6MAXSxcCj9kwJ7Gn6j/owBdPy7AoX9ewHvAAACADoAAAUOBDoAGwAeAAABHgEPASM3NiYrAQcDIxMnIyIGDwEjNz4BNwMhARMhA6KwnyshtiEjUoEuDle1WQM4d44gIbYhMOXJrAOB/eHo/rECWgrP3KWlsXAS/kwBvgh+o6Wl9LwGAd/+JwFDAAAAAgBiAAAISgWwACkALQAAIRM+ATchAyMBMwMhOwEDMxczNyEBMzIWBwMjEzYmKwEHAyMTJyMiBgcDATMBIQJIShM9Lf6MhLUBI7WBAuEVJu7QBAMDA4n+EBnVxi9KtUojY5VvHny1fwp7iaAgSgKYBAFx/eABdGGNNP1qBbD9ewKFDQ39e87p/owBdLFwKP2TAnsafqP+jAMrAe8AAgA+AAAG4gQ6ACIAJQAAITc+ATchAyMTMwMhAyEBHgEPASM3NiYrAQcDIxMnIw4BDwEBEyECDiETOyr+qFq32LdgAp+rA4H+lLCfKyG2ISNSgS4OV7VZA0NzhyAhAf/o/rGlYYw0/joEOv4iAd7+IArP3KWlsXAS/kwBvggDf5+lAmEBQwAAAAL/x/5HBEcHcAAtADYAAAEyFgcOAQceAQcGBCsBIgYHBhYXBy4BNz4BOwEyNjc2JisBPwEzMjY3NiYjITcBNzMHBSMnNzMCZbzXJBeXd25gGSv+6M0vRE8KEEM7YV9vFRy2nSdzsRgdepqFBxaFiaoXF2iG/uYeAbmmnQT+4G26BJkFsNS1caEqLKx92NE8NUxOIHsvn3CKc5d5kn0jcoJzcX+VASqWEvPxFAAC/8b+RwO+BhsALQA2AAABMhYHDgEHHgEHDgErASIGBwYWFwcuATc+ATsBMjY3NiYrAT8BMzI2NzYmIyE3ATczBwUjJzczAhiqyxwRdV9aURAh+rstRFAKEEM8YV9vFRy1nSZijxAScIeFBxeFdo0QDmBw/uceAXymnQT+4G26BJkEOqaOUXUiI3dUo6A8NUxNIXsvn3CKc15MW0wjclZMSFKWAUuWEvPxFAAAAwBd/+sFNwXFAA0AFgAfAAABAgAjIgIbARIAMzISAwUhNzYmIyICBwUhBwYWMzIANwTQOv6S/eDuNTM5AWT06Pk0/GsC1A0qk6+Y/ScCqf0sCSyJpqEBBykCV/7j/rEBZgEGAQEBHAFR/pn++j5A1vn+9cTWLdj5AQrHAAMARv/sBBwETgANABQAGwAAEzYAMzISDwEGACMiAjcBMjY3IQYWEyIGByE2JnEpARrWzcUmBCn+5tbNxicBhHWmJf3rEGf/dKQlAhMLZwIo/gEo/szyGP/+2wEx8/5xvpmgtwM3uJOZsgAAAAEA6AAABVwFxAARAAABFzM3AT4BMxcHIyIGBwEjAzMCFQcDOQGRTpBmLyIMLUcq/aqbt8QBcXt7AzSegQGjP1T7cwWwAAAAAAEAswAABEsETQAVAAABFzM3Ez4BMzIWFwcuASMiBgcBIwMzAa4CAyT5QY5NHS8TMQUSDB1CFf5Eioq5ATpVVQIjfnIKDpIDBTIr/LIEOgAABABP/3MFJwY1AAMABwAVACMAAAEjEzMBIxMzAQIAIyIAGwESADMyAAMnNiYjIgYHAwYWMzI2NwOFtU21/qa1TrUB+Tz+sv3l/vw2MzsBRPTsARA1tCuqs5ffKTMtoKqh6CoEtQGA+T4BiQFS/tr+wwFrAQoBAQEmAT7+k/73Atr++M7+/dz+99EAAAAEAEb/iAQcBLYAAwAHABUAIwAAASMTMwEjEzMBNgAzMhIPAQYAIyICNzMGFjMyNj8BNiYjIgYHAtC1SbX+97VJtf4YKQEa1s3FJgQp/ubWzcYnth5jiYGuHAQdY4iBrxsDSAFu+tIBbgEy/gEo/szyGP/+2wEx87fY4a4YtdvkrAAAAAADAGz/6waVB1QALAA+AEQAAAEyFgcDDgEjIiYnDgEjIiY3Ez4BMwciBgcDBhYzMjY3EzMDBhYzMjY3EzYmIxMHIyIkIyIGDwEjNz4BMzIWMwEnPwEzBwVRn6UrczHurmSRIUGxcKGlLHMv77AeUosdcyBIWmGaG1e2Vx1ea1GLHnMfSFm4GStw/v0rLUQKBHsIFoNuPfpt/g89TRytGQWv59v9wO7UVVZbUObcAkDt1ZWak/3AoI2HggG0/kyNfJmUAkCfjgG7fX85NhIkdWV//lJAdIx8AAADAEj/6wWfBfEALAA+AEQAAAEyFgcDDgEjIiYnDgEjIiY3Ez4BMwciBgcDBhYzMjY/ATMHBhYzMjY3EzYmIxMHIyIkIyIGDwEjNz4BMzIWMwUHJz8BMwR6kJUoOizXnld/IDqcYpKUKTor158dRHIZOhw4SlCCFy+1LxhPWUJxGjobN0j7GStx/v4qLUQKBHwHF4NvPPpu/s7APk4brgRE08n+39vBSElNRNLKASHZw5WHgP7fjXpzcOvreWqFggEhjHsBwn1/ODYSI3VmgOrEQHSMAAIAaP/rBskHAwAHACgAAAE3IQchByM3BQMOASMiJjcTIwMOASMiJjcTIwMGFjMyNjceATMyNjcTArcVAvsV/s0ZpRkCOtQbkFhjVh3Uu9QbmmFaTB3UttQpqaFxs0EeimC19C3UBplqan196fvZgod8jQQn+9mCh3yNBCf72cvTUlxYVsLcBCcAAAAAAgBF/+sFyAWxAAcAKAAAATchByEHIzcBAw4BIyImNxMjAw4BIyImNxMjAwYWMzI2Nx4BMzI2NxMCIRUC+hL+yhmkGQHPkRd4SFJGGZG2kReCUEo8GZG1kSaYkmKbOh14UqTeKJEFR2pqgID+8/0pcHNqeQLX/Slwc2p5Atf9Kbm/Q0xIR7DIAtcAAAABAGT+gwUNBcUAGAAAASMTJgI3ExIAMzISByM2JiMiAgcDBhY7AQJDtUm8tzIzOwFZ79vmLLYigJ+S9Sg0LICgav6DAW4fAVL1AQEBJQFI/vneqab+88j+/dv8AAEASv6DA/sETgAYAAABIxMmAj8BNgAzMhYHIzYmIyIGDwEGFjsBAdu2SpyJKQgxASHUobkhqxZiYHq5HwgjUodi/oMBciIBKMkq9gEm4advg+qcKq7aAAABAFUAAATCBT4AEwAAARcHJwMjASc3FwEnNxcTMwEXBycCOuta7emgASHrWe8BBetc7e6e/trtXekBvax5qv6+AY6reasBb6t7qwFN/mereKoAAAAB/T0EpwAcBfsABwAAAQcnNyE3Fwf9+BmiMAH5FKIrBSV+AedsAdUAAf1kBRcAQwYVABEAAAEyJDMyFg8BIzc2JiMiBCsBN/2mbQErPG9aFgd8AwstLSv+zHArGQWVgGZ1IxI2OH99AAH+bwUY/zcGWAAFAAABNzMHFwf+bxmsHB9XBdx8jHRAAAAAAAH+kAUY/6cGWAAFAAABJz8BMwf+zT1NG68ZBRhAdIx8AAAAAAj6t/7EAdoFrwANABsAKQA3AEUAUwBhAG8AAAE+ATMyFgcjNiYjIgYHAT4BMzIWByM2JiMiBgcDPgEzMhYHIzYmIyIGBwE+ATMyFgcjNiYjIgYHAT4BMzIWByM2JiMiBgcBPgEzMhYHIzYmIyIGBwE+ATMyFgcjNiYjIgYHAz4BMzIWByM2JiMiBgf+DBN5XVZZEWgKIDErOwkBhRJ6XFZaEGkJITErOgghEnpdVlkQaQkfMSw7CP56EnlcVlkQaAkgMSs6Cf1HE3ldVloRaAkgMSs7Cf6DE3pdVlkRaAohMSs5Cv6NE3pcV1kRaQofMis7CTYSe1xWWxFpCiAyKzoJBPNaYmlTLzY6K/7rWmJpUy82Oiv+CVpiaVMvNjor/flaYmlTLzY7Kv7kW2FoVDA1OisFGlpiaVMvNjor/glaYmlTLzY6K/35WmJpUy82OyoAAAAI+tb+YwGOBcYABAAJAA4AEwAZAB4AIwAoAAAFFwMjGwEnEzMDATcFByUFByU3BQE3JRcGBQEHBSclEycDNxMBFxMHA/4YB7VaibcJtlmIAZQPAR0U/sz7vA/+4xQBMwOxBgFHMyj+7/x5Bf63MgE6bBBISn0CghBKTHs8Dv6tAWEEog4BUv6g/hEMfGJHOwx8YkcBrhCZRBex/I4RmUXIAuQCAUZF/tX84wL+u0cBKwAAAAACAD4AAAPUBnAAEgAbAAABIQMzMhYHDgEjIQEjNzM3MwchAQMzMjY3NiYjAyT+1nD5q6YhJOi5/lABBbAesCe3JwEq/ipZ+V99ExNCZwUa/c7MpLLGBRqWwMD8o/5Cf11igAAAAwBXAAAFFwWwAAMADgAXAAABBwE3AQMjASEyFgcGBCMlITI2NzYmIyEEr3/+9n/93HW1ASMCBM7LJyv+7OH+zwFPg7EZGmaP/rECPmQBk2X+eP22BbDww9bdlaN5hZoAA//i/mAEJgROAAMAFgAkAAAlBwM3JQ4BIyImJwMjATMHFz4BMzISAyM2JiMiBgcDHgEzMjY3A5OA7n8BSjPovluLLWq2ASucCAM7lFqypzS2KGKJSXYwahtrVnyfIQ1lAXVlX//3REP97gXabgFAQ/6s/vzJ9VJI/fFDSLylAAABAEgAAATwBwEACQAAASMVIQEjASETMwSOAv13/vu2ASMCjES1BRsB+uYFsAFRAAABADUAAAPRBXgACQAAASMVIQMjEyETMwNzBf43urbYAc5AtgOkAfxdBDoBPgAAAAABAFf+3gS5BbAAFQAAASEDMzISAwIAIzcyNjc2JisBAyMBIQSb/Xdfqvv0Njj+8N8bhasmKY2/qoa2ASMDPwUa/ib+0P7v/uf++JHSvtLQ/V8FsAABADX+5QOMBDoAFQAAASEDMzIWBwYCByc+ATc2JisBAyMTIQNu/jc5aMnfLB7ovBOChxcdfYdoYbbYAn8Do/7i/t2M/uskkCKedZmj/hoEOgAAAAABAEgAAAVQBbAAFAAACQIjAyMHIzcjAyMBMwMzEzMDMwEFUP4CAQLiu0gxkTFchLYBI7aBXDSRNEYBqgWw/U/9AQKV9/f9awWw/XoBAv7+AoYAAAABAD4AAASfBDoAFAAACQETIwMjByM3IwMjEzMDMzczBzMBBJ/+XevloCknkCdZXLbYtlxZK5ArJAFHBDr9//3HAc/ExP4xBDr+NdbWAcsAAAEA8wAABoYFsAAOAAABIwMjASE3IQMzATMJASMDU4mEtwEF/l8eAlh/kwIj5v1rAYTPApX9awUblf2EAnz9KP0oAAAAAQClAAAFjAQ6AA4AAAEjAyMTITchAzMBMwkBIwL1eFy2uv6AHgI2XGwBqdr+CQE/5gHP/jEDpJb+NQHL/fr9zAAAAAABAFcAAAfIBbAADQAAASETIQchASMTIQMjATMBqwKUhAMFHv2w/vu1gf1sgbUBI7UDGwKVlfrlAob9egWwAAAAAQA1AAAFjgQ6AA0AAAEhEyEHIQMjEyEDIxMzAWUBwl4CCR7+rbq2XP4+XLbYtgJkAdaW/FwB0P4wBDoAAQBX/t8HWgWwABcAAAEzMhIDAgAjNzI2NzYmKwEDIwEhASMBIQT9bvv0Njj+8N8bhasmKY2/boa1AQX9av77tQEjBAADQf7Q/u/+5/74kdK+0tD9XgUa+uYFsAABADX+5QY8BDoAFwAAATMyFgcGAgcnPgE3NiYrAQMjEyEDIxMhA+Sd0uksHui9EoKGFx2GkJxhtrr+Pbq22AMvAoX+3Yz+6ySQIp51maP+GgOj/F0EOgAAAgBl/+IFxAXFACkANwAABSImJw4BIyICEzcSADMHIgIPAQISMzI2NyYCPwE2ADMyEg8BBgIHHgEzAQYWFz4BPwE2JiMiBgcE4GCoSkudVfL6PCI6ASfDHmq+KCM0lrgiRCJkSyIuMgEJsKOdMDIimXIsYjz+ISE4WWyUHTMlP2FXnyAeJSYiIAGOASyqASUBUZz+9Mys/v/+4gkLZQERqOb/AST+zvH6q/74XQ0KAjmk5khL5o/9vMrgpgACAE7/6wR8BE8AKQA4AAAFIiYnDgEjIgITNzYSMwciBg8BBhYzMjY3LgE/AT4BMzIWDwEOAQceATMDNzYmIyIGDwEGFhc+ATcD+1mTPj16P9S5OAsp9IsfRm4eDCdseRQnFEcuHBUl2IGMbSoVF2dLJFIvkRUZHjQ6VhoVFSo8NUkUDBwdISEBOgETO80BDpummD289gQFTdaKZ73v7tNpcL9NDg0Bl2x+pYqFa2ejOzeXYgABAOj+oQZkBbAADwAAASE3IQchAyEBMwEzAyMTIQJG/qIeA3ce/pznApYBBbX++413oUb8JwUblZX7egUb+un+CAFfAAEAiP6/BM8EOwAPAAABIzchByMDIRMzAzMDIxMhAYL6HgKTHuOcAcO6trt7cKJA/QsDppWV/O8Dpfxb/ioBQQACANEAAAVIBbAAAwAXAAABIxMzCQEjEw4BIyImNxMzAwYWMzI2NxMC1ZGMkQHn/t21emKnctfHMFu3WyVjl1u9Y4sBQAK8AbT6UAJhHRrS7gHG/jq3cxwcArgAAAIAlwAABB4EOwADABcAACUjEzMTIxMOASMiJjcTMwMGFjMyNjcTMwI3kXGRnrZOOXBBr64qP7U/Hk5sOnQ9a7bmAjX85QGIEA/MzAE6/saRcBAQAhoAAAABANAAAAVGBbAAEwAAMwEzAz4BMzIWBwMjEzYmIyIGBwPQASO1el+odNbHL1u3WyRjll27Y4sFsP2eHBzT7f46Aca2dB0b/UgAAAAAAgCu/+kF7gXDAB4AJwAABSACEzcuATczBhYXNxIAMzISAwchBwYWMzI2NxcOAQEhNzYmIyICBwNa/v74OBaJdyCRFTJMAjsBXd3qxT0V/McULonOX6VGEza9/psChAYtY7CO6igXAVgBGWwXwZtldhIHASYBSv6e/sttZeX3MSaGJkADWSHh6f7wygACACX/7ARRBE4AHAAkAAAFIgI/AS4BNzMGFhc2JDMyEg8BIQYWMzI2NxcOAQMiBgchNzYmAknOzicCYk8akA4SIz0BEJzHqyMT/WwYa4dalzwzQLkBWqApAdoEE1kUASrxECGpgUdcGcXj/vvdea3FOTJ7OksDzKqGGn2ZAAAAAAEASP7ZBVAFsAAWAAAzIwEzAzMBMwEWEgcCACM3MjY3NiYrAf62ASO2fncCY9P9ktrKMjn+8d8bhawmKI3A9wWw/YsCdf2HGP7X/P7n/viR0r7R0AAAAAABAD7+/QRfBDoAFgAAAR4BBwYCByc+ATc2JisBAyMTMwMzATMCgKOiJR3luxKAhBcciJOdXLbYtlxQAcXaAmIf3LmH/vkjkCGSbpaL/jEEOv41AcsAAAAAAQBX/ksFegWwABcAAAEDIRMzAQ4BIyImJzceATMyNjcTIQMjAQIwhAKThLf+yyW7lBwwGisMPBE2VhOT/W2BtgEjBbD9awKV+fe1pwkJkQUIaV0C3/16BbAAAAABADX+SwQ7BDoAFwAAAQMhEzMDDgEjIiYnNx4BMzI2NxMhAyMTAcNeAcJetuolupUcMBorDDwRNlcTb/4+XbbYBDr+KgHW+221pwkJkQUIaV0CKf4wBDoAAgBG/+sFQAXFABYAHgAAASAAAwcCACMgAhM3ITc2AiMiBgcnPgEDMhI3IQcGFgMmARMBBzshQP6L7f7z7z4WA6oMMZngZK5KEjfGN5n/Mf0NBy2FBcX+j/7Vo/7D/qIBYAE2bzn4AQ4yJYYlQvq7ARfWI+LoAAAAAQA2/+sEhQWwABsAAAkBITchBwEeAQcGBCMiJjczBhYzMjY3NiYrATcB0wG//a0eAygW/hzDvSgs/uDVrOArtxpsdnu5GCF1nIcdA1MBx5Z1/hEO4sfZ0dbTf5WXeqqDkAAAAAH/7f51BDoEOgAcAAAJASE3IQcBHgEHBgQjIiY3MwYWMzI2NzYmKwE/AQGGAa39wR4DKBb+Kb21Jyv+39Ws3im3Gmx2e7kYInadiAcWAdwBx5d1/g8R4cTX0tfRfZWXeKqDI20AAAD//wAK/ksE/QWwACYArEQAACYB08BAAAcBmgDtAAAAAP////v+SwPkBDoAJgDnTwAAJgHTnY4ABwGaAN4AAAAAAAIANgAABPMFsAAKABMAAAETMwEhIiY3NiQzGwEhIgYHBhYzA8p0tf7d/f3PyCcrARHjvXP+soSwFxxljwNsAkT6UPXF1d39KQJCpHeHoAAAAgA2AAAGCwWwABgAIQAAISImNzYkMyETMwE3PgE3PgEnMx4BBwYEIycTISIGBwYWMwHNz8gnKwER4wFOdLX++lBlhh0RBAywCgMRLv75puZz/rKEsBccZY/1xdXdAkT65AEBjIJOpVJpkkrP1ZUCQqR3h6AAAAAAAgBA/+kGMAYYACIAMwAAExIAMzIWFxMzAwYWMz4BNz4BJzcWBgcCACMGJicOASMiAjcBLgEjIgYPAQYWMzI2Nz4BN3M4AQTCUnUmdrbzFjxKgbEpFQsIrwcFFDn+zMFxgxVEpGmvoC8C0RhcS322JQQkU4hMfTQCAwMCCgEbASlDQQJO+0FkdQHRv2TGaAF6u17+8f7pAlReWVcBIOoBPj1E77sVtLxMRhUcEQAAAAABAOj/6AWbBbAALQAAATc2JisBNzMyNjc2JiMhNyEyFgcOAQceAQ8BBhYzPgE3PgEnMxYGBwIAIwYmNwJ7DRpgcLIef5OsGxpolP6zHgFN1MwoGox3ZUQZDhE3QG6hKBULCLAGBBM6/t+xmIEcATJBgoiWgIWEfpbSyH6gLymufUVQYAHVu2THaIawXf7z/ucDmq4AAQCI/+MEpQQ6AC4AACUGFjM+ATc+ASczHgEHBgQjBiY/ATYmKwE3MzI2NzYmKwE3MzIWBw4BBxUeAQ8BApIKGi1miiAPBAywCwQQMf71p4NnFA8PT1/EG6tqgBARVHPzF/m2uR4SbGBTPREP1i0vApmOTqFQbItI2+IDb4RMT0qUVk5YW5Sql1ltIgMceVZOAAAAAAIAz/7EA7sFsAAhACsAABM3MzI2NzYmKwE3MzIWBw4BBx4BDwEGFhcHIyY2PwE2JiMBDgEHJz4BPwEzzx6WlasbG2aU/x7/08soGot4ZUYZGw8IHAW6HwUPGxlgcQGuFn9eVzxGER+2AnqWgoKIf5XUyX2fLymvfYhJZSQZJHxNhIKH/cRrx0hISpBVlwAAAAIAvP61A20EOgAiACwAABM3MzI2NzYmIyE3ITIWBw4BBxUeAQ8BBhYXByMmNj8BNiYjAQ4BByc+AT8BM7wew2t/EBJTdP77HAEGtrgeEm5iVD0SFAoKHAS7HgILExFOYAGcFn9eVzxGER+2AbqUVk9aWZSomFtuIgMeg15hMVIWExdjM19YVv51a8dISEqQVZcAAAAB//H/6AcfBbAAIQAAASEDAgArATczMhIbASEDBhYzPgE3PgEnNxYGBwIAIwYmNwSQ/kdrV/7+8TEeJoS8QokDJN4VPEqAsSkVCwivBwUUOf7MwKKFHgUa/eb+Uv6ulQEiAUkCsPupZXQB0b9kxmgBerte/vH+6QOtxAAAAf/s/+gF8wQ6ACEAAAEDBhYzPgE3PgEnMxYGBwYAIwYmNxMhAwoBKwE/ATI2NxMEMpMVO0llkSUUCQmvBwITNf7vqKCGH3X+4D5F1MY1IyhfhDFcBDr9H2R1AbmpXrxjeK1Y+P8AA63EAkr+y/6o/uqiAdf0AcwAAQBO/+gHJgWwAB0AAAEDBhYzPgE3PgEnNxYGBwIAIwYmNxMhAyMBMwMhEwVq3hU7SoGxKhQLB68HBBQ6/svBoIYfPP1ygbYBI7aEAo6EBbD7qWR1AdG/Y8ZpAXy5Xv7x/ukDrcQBLf16BbD9awKVAAEANf/oBgUEOgAdAAABIQMjEzMDIRMzAwYWMz4BNz4BJzMWBgcGACMGJjcDEv40XLXYtV4BzF62kxU7SWaRJRMJCK4HARM1/u+poIYfAc/+MQQ6/ikB1/0fZHUBualdvGR7qlj4/wADrcQAAAEAYP/rBJsFxQAhAAAFIgIbARIAMzIWFwcuASMiAAcDBhYzPgE3PgEnMxYGBwYEAjXk8TU1OgFj+WOhN1M4flCc/wAnNSyLqoGnHxILBLABAxEw/tYVAV4BDAEGASIBSC0qgyIi/vPF/vjZ/AGajlWxY518UNziAAEARv/rA5oETgAhAAAlPgE3PgE3Mw4BBw4BIyICPwE2ADMyFhcHLgEjIgYPAQYWAfJbWRQMDQOvAQoLJNqdy8MuCDEBINNTgiVGJ2pBebkfCCNcgAFVVz1zPEVxNqKgATviKvQBKCMfjRse7JoqrNwAAAAAAQDX/+gFJAWwABkAAAEhNyEHIQMGFjM+ATc+ASc3FgYHAgAjBiY3Ao7+SR4ELx7+PsAWPEqBsCsUCwivBwQVOf7MwaCGHgUalpb8P2R1AdG/Y8ZpAX24Xv7x/ukDrcQAAQCs/+gEfAQ6ABkAAAEhNyEHIQMGFjM+ATc+ASczHgEHBgQjBiY3AfT+uB0DTB3+snUWO0xliiAQBgyuCwQRMP71qKGGHgOmlJT9s2tuAZuPUKZQaJRK3eMDrcQAAAAAAQBq/+sFQwXFAC0AAAEHIyIGBwYWMzI2NzMGBCMiJDc+ATcuATc2JDMyFgcjNiYjIgYHBhY7AQczDwEDgAaqoswbG5qsi+EYtS7+tN3l/vsoG6WMZ2EVKgEx+cf9JLYXlYqdzRcZfaqqBwEKBwK7IIOHhI2fdeTF4siLqCcxo2TYxt21dYeTcX58Ii8lAAD//wDpAowFAAMhAEYBhtwAUzNAAP//AQACjAYJAyEARgGGtQBmZkAA////aP5uAxEAAAAnAEH/0v8DAAYAQQQAAAEA1gQCAkUGKwAJAAATPgE3Fw4BDwEj+RV/X1k9SBEktQSxa8dIR0qQVrIAAQCxA+cCIAYYAAkAAAEOAQcnPgE/ATMB+xV+X1g7RxIltgVhbMdHSEiRVroAAAAAAf+k/tYBEAD6AAkAADcOAQcnPgE/ATPuFn9eVztGEiO2T2vHR0dIkVauAP///2ED5wDQBhgARwFmAYEAAMABQAAAAP//ANYEAgNyBisAJgFlAAAABwFlAS0AAP//AL0D5wNSBhgAJgFmDAAABwFmATIAAAAC/6T+1gItAPoACQATAAA3DgEHJz4BPwEzFw4BByc+AT8BM+4Wf15XO0YSI7b7Fn9fVztHEiO2T2vHR0dIkVauq2vHR0dJkVWuAAAAAQCVAAAERgWwAAsAAAEhAyMTITchEzMDIQQu/oyVtpX+kRgBbzy2PAF0A6P8XQOjlwF2/ooAAAABABD+YARVBbAAEwAAKQEDIxMhNyETITchEzMDIQchAyEDqP6LQrZC/pMYAW1+/pIYAW48tjwBdBj+jH4Bdf5gAaCVAw6XAXb+ipf88gAAAAEArwIYAl8D3gANAAATPgEzMhYPAQ4BIyImN80Se1tUVhEMFHhcU1gSAxheaG9XPV9kbFcAAAD//wBHAAACvgDFACYAEAEAAAcAEAGbAAD//wBHAAAERADFACYAEAEAACcAEAGbAAAABwAQAyEAAAAGAK7/6wbhBcUAGQAnADUAQwBRAFUAAAE+ATMyFhc+ATMyFg8BDgEjIiYnDgEjIiY3AT4BMzIWDwEOASMiJjcBBhYzMjY/ATYmIyIGBwUGFjMyNj8BNiYjIgYHAQYWMzI2PwE2JiMiBgcTJwEXAvEbtYNBXhoteEp5fBkPHLODQl8ZLnhIen0a/fUbtIR5fBkPHLODen0aAqERNklCYhAPEDVIQmQPAZkRNklBYxAPEDVIQmQP/C8RNklCYhAPEDVIQmQPElgDelgBZYmjPzc5Pa5+TouhPTg5PK1/A4GKo65/TYqhrX78zFJjaUxOUWRqS05SY2lMTlFkaksC5lFjaUtNUmRrS/vXQQRyQQAAAAEAgACaAm0DtAAHAAABEyMDPwEBMwEvn4jGAwEBYYgCJ/5zAYQNBgGDAAAAAQAhAJkCDQO0AAgAAAETBzMHASMBAwFJxAIBA/6hiQE8nQO0/nwGDf58AY0BjgAAAQAJAG8D2wUiAAMAADcnARdhWAN6WG9BBHJBAAIAiwIwA3UFxQAKAA8AAAEzByMHIzchNwEzATMTJwcC6osZiyWfJf5ZDwImo/3t+04DFANmfbm5XgJ+/aEBhgIeAAAAAQCjAosDewW6ABQAAAEfAT4BMzIWBwMjEzYmIyIGBwMjEwHABAMsckVtZB9mpmAWLkAwUR5wpqAFq28BPkGWnf4EAd1xUzs1/c8DIAAAAAABAC0AAAR/BcUAJwAAAQ4BByEHITczPgE3IzczNyM3Mzc+ATMyFgcjNiYjIgYPASEHIQchBwGeFTkmAqwf/HYeCS5PGJ8emhiUHo4ZLPW1sa0jtxpbYViOGxkBiB7+fRkBfx4Bvl2VN5WVDbJqlpGWld3Y07CEaZeIlZaRlgAAAAMASf/sBiEFsAAKABMAKwAAAQMjASEyFgcGBCMnMzI2NzYmKwElAzMHIwMGFjMyNjcHDgEjIiY3EyM3MxMBb3G1ASMBSc3KJyv+6eB2lIKzGRtljpQDlDW/HL+EEiQrFDMTAhxdLGNjIISNHI01Ajb9ygWw+MXX5pareoakJv75jf1qVjkIBYMRFY+cApaNAQcAAAABAGD/6wRiBcUAKQAAASEGFjMyNjcHDgEjIgI3IzczNyM3MzcSADMyFhcHLgEjIgYPASEHIQchA2n+NSd2jjNtNAw6cjrN2TKJGIkhiBiIBDUBNN81bDsxMGM2g84jBAHLGP41IgHLAgK/wxERmA8QASL1eKl6EQEJAQ4QD5oQE9CvE3qpAAAABADj/+sFMAXFABsAKQA3ADsAAAEOASMiJj8BPgEzMhYHIzYmIyIGDwEGFjMyNjcTBhYzMjY/ATYmIyIGBzM+ATMyFg8BDgEjIiY3AScBFwL/FrBvfWocDxm3cXpuF4cMMzo/VBAPEDE7PU0MYRp9eoOzHA8ZfHmDtRuHD2RCSDUQDxBiQkk2EQF/WPyGWAQebJKhik1/rot0OU9kUk1Kakw7/Pl/raGLTn6uo4lLamRRTkxpY1IDykH7jkEAAAAAAgBn/+sD6wXFABoAJgAABSImPwEOASM3MjY3Ez4BMzIWDwEGAA8BBhYzEzc2JiMiBgcDPgE3AkjEjS4DMF8yIzReL2AjwXt2ax8IIP8AthQdQminCQ8bIDJCF01lfhgV3+UQDg2uDA0B37HKn50qm/66aWaRmAPXLE9RZnn+gErQeQAABABOAAAIaQXAAAMAEQAfACsAAAEhNyEBPgEzMhYPAQ4BIyImNzMGFjMyNj8BNiYjIgYHASMBIwMjATMBMxMzB3X9+RwCB/46IMuYjI8dFyDLl42QHp8UPFRJbRIXEjxRS2wS/eO2/lID47UBI7UBrgPjtgFrjQJ5oa67lHWirLmVYWRtWHVeZm5W+48EcPuQBbD7kQRvAAACASMDlwTkBbAADgAWAAABEzMDIxMnAyMDIwMjEzMHIwMjEyM3IQOU6mZrVkUC1S9KA0lXa2zEh1tXW4cQAWUEIAGQ/ecBXwH+oAFs/pQCGVH+OAHIUQAAAgB8/+wEjwROABUAHgAAJQ4BIyICNzYAMzISDwEhAx4BMzI2NwMiBgcDIRMuAQOQXrdaweQuMQFjw7fXLgn9NkIrdElUvl20QpRBNwH2OShyXjg6AUno9gE7/srnL/64Njg8PgMqQTn+6wEeNjsA//8A/v/1BgUFsgAnAckAjgKGACcBdAD1AAAABwHQAxAAAAAA//8ArP/1BpAFwAAnAcsAhwKUACcBdAGfAAAABwHQA5sAAAAA//8Aqv/1Br0FrwAnAc0AfwKOACcBdAHTAAAABwHQA8gAAAAA//8BHv/1BiMFrwAnAc8AjwKOACcBdAEhAAAABwHQAy4AAAAAAAIAJv/rBFoF7QAUACEAAAEWEgMHAgAjIgI3NgAzMhYXNzYmJwMyNj8BLgEjIgYHBhYCpOvLRRY1/sTRwdYqMgEV01KNLgMJoJVvd9EjFRGJeXmuHx1vBe1L/j3+qHD+9v7eARjO/QEDQTsB2eM9+zHnsGpRac2dkMEAAAABADn/KgVBBbAABwAABSMTIQMjASEENrXz/W7ztgELA/3WBfD6EAaGAAAAAAH/u/7zBOQFsAAMAAAJASEHITcJATchByEBA1z9UgNEHvvnHALH/locA9Ae/QQBlwJB/UiWjQLOAtSOlv1AAAABAM8CjAP1AyEAAwAAASE3IQPX/PgeAwgCjJUAAQBoAAAFKQWwAAsAAAEVFzcBMwEjAyM3IQH1AyUCU7n834lqrR4BMAFPWAFZBGH6UAJ1lwAAAAADAEn/6weABE4AGQAnADUAAAEGACMiJicGBCMiAj8BNgAzMhYXNiQzMhIHBQYWMzIAPwEmAiMiBgchNiYjIgAPARYSMzI2NwdGMf7nxZGyMWr++J23tC0OMAEYxpGzMWwBB5+0syz51yVRe3gBBy8IBoqEb6shBWYjUHd6/vkwCAWKhG+rIgH68/7k2p+g2QEw30TyAR7cnqDa/s7eRLfDASBoKmwBGtOntcX+4Wcqb/7n0akAAAAAAf87/ksDHQYtABwAAAUOASMiJic3HgEzMjY3Ez4BMzIWFwcuASMiBgcDAQUdtZQbMBkkDTwPOFEQ0R3Amx9AJS4RJxlPaRDRWbGrCQmRBQhpXQUetrILCowFBm5k+uIAAgBQARoEPgP7ABsANwAAEz4BMzYWFx4BMzI2NxcHDgEjIiYnLgEHIgYHJwM+ATM2FhceATMyNjcXBw4BIyImJy4BByIGByfFPIA+QTNWSjU+OYQ4Axg8gDw6Q0FUNUE6hTYDRzyAPUE0Vk4wPjmFNwMXPYA9OkBCWy5COoQ2AwNoRkwBFzMuF0xCAaNHSxwpMhgBTUEB/vpGTAEXMzAWTUIBpEdLHCk2FQFNQgEAAAABAI4ApAQIBN8AEwAAATMHIQMhByEHJzcjNyETITchExcDS70g/vWyAYog/iikR3u/IAENs/5zIAHav0cDzZ7+/57sOrKeAQGeARI7AAAA//8ASAACBDkEjQBnAB4AdACyQAA5mgAHAYb/ef12AAD//wBHAAAEEgSgAGcAIAA4AMRAADmaAAcBhv94/XQAAAACAGcAAAPaBbAABQAPAAABMxMBIwMhAy8BBwETHwE3Am2I5f38ieYCuokGAx7+sIkGAx4FsP0n/SkC1wIDNwE4/f39/jcBOP//AI8AsgIbBOsAJwAQAEkAsgAHABAA+AQmAAAAAgCUAnoCngQ6AAMABwAAASMTMxMjEzMBHYlZic+JWYkCegHA/kABwAAAAAAB/+b/LwEjAOwACQAAJQ4BByc+AT8BMwEOFGpSWDA6EBatgGKvQEg/e0xvAAIAaAAABBcGLQAXABsAADMTIzczNz4BMzIWFwcuASMiBg8BMwcjAyEjEzNovJ4cnhgn5Lc7ekc+LGk8aHsWGMkcybwCIbbYtgOtjXfFtyAdmhYda213jfxTBDoAFv+1/nIIMwWuAA0AHQArADsAQQBHAE0AUwBcAGAAZABoAGwAcAB0AH0AgQCFAIkAjQCRAJUAAAE2JiMiBg8BBhYzMjY3FzI2NzYmLwE+ATc2JisBAycOASMiJj8BPgEzMhYHBQ4BIyImNyMGFjMyNjcTIwETMwczByE3MzczAwETIQcjByU3IQMjNwEyFgcOASsBNwE3IQchNyEHITchBxM3IQchNyEHITchBwEzMhYHDgEHIwUjNzM3IzczAyM3MyUjNzM3IzczAyM3MwMkE2RaZIkVFhRjXWKJFt9abBEJIicBJzEJD1xar25oD1Y4QDQPFg1YOT40DgNYCT8kMSgLVhFVUk9wEUxW+UM/aSi2FwTMF7koZz/6LzkBHxe2IgWkFwEgOWci/GkxJggIPC11IgHgFwECF/2LFwEBF/2MFwEAF4oXAQIX/YsXAQEX/YwXAQAXAY5XOywICDwvYf0KaTNpGWkyaclpMmkGu2czZxlnMmfJZzJnAkRge3JpcGJ5cWrYSFMtRA0DDjorS0v929hFTkhLcERPSUqbLDYpMlJSVlUBevtPATvKcXHK/sUGHwEddKmpdP7jqfy2KysoK6kDSnR0dHR0dPk4cXFxcXFxBFsdKiYpAZb8fvr8Ffl+/H76/BX5AAAABQCH/dUHfAhiAAMAHQAhACUAKQAACQMFPgE3PgE3NiYjIgYHMz4BMzIWBw4BBw4BBxcjBzMDMwcjATMHIwTDArn7wf1KA5ULIixMcBEbe456vBy9C0ApMCwKCzswVUcTqrwivNAEAQQCGgQBBAZS/DH8MQPP8To3GyiAUIyLg4c0M0A0NkgdOVZaW6r9TAQKjQQAAAEAH//vA84EjQAeAAAbASEHIQM+ATc2FgcOASMiJj8BBhYzMjY3NiYjIgYHk8YCdSD+KF4pcDatkiYn4tKgxiG4E1xhaYkXF01iW24gAfkClJ7+wRomAgPGvMHDoaIOXWF+cXZ2PDUAAgAnAAAC1wMhAAoADwAAATMHIwcjNyE3ATMBMxMnBwJhdhl2H50f/nwMAfag/hjjQAMUARh+mppiAiX99wFCARsAAAACAFH/6wRiBcUADQAbAAABAgAjIgIbARIAMzISAyc2JiMiBgcDBhYzMjY3A+Y9/uzQvrY4RTwBFNDAtDeuKVd/c6wmVCpYfnSrJwIs/tH+7gEqARcBVwEuART+1f7pKNGzxMD+W9G1xcEAAAAB/+D+3wKzA0EADwAAETMyEgMCACM3MjY3NiYrAcT79DY4/vDfG4WrJimNv8QDQf7Q/u/+5/74kdK+0tAAAAAAAf8d/ksBJACYAA8AACUHDgEjIiYnNx4BMzI2PwEBJDAluZUbMBksDDsROFMTMJjxtqYJCZoFB2Bc8QAAAf96/mYBPgBAABMAADceAQcOASMiJic3HgEzMjY3NiYnpFhCDxaKYzpZHzYdLB82PwkKLDJANIxNaWQaEncMDzEpNk8zAAAAAf/C/pkA3wCaAAMAABMjEzN4tme2/pkCAQAAAAIBNwTZA6EGzgANACEAAAEOASMiJjczBhYzMjY3Ew4BIyImIyIGByc+ATMyFjMyNjcDdRWog3mFE5MMMUY/UQu+EWpFMGcoHjcHSw9qRSdvKR04CAWuaG12XzhARDQBCVFiTDQlFU5nTDMmAAIBNwTgA2wHAgANAB0AAAEOASMiJjcjBhYzMjY3JTc+ATc2JiM3MhYHDgEPAQLdClA+RjILjhOEeIGkFP68GEg8BwZLPxeIeQ4LVj0OBbAzQT03XXNrZRB8AxcgHx1QSEc3Ngg+AAAAAgE3BN8DgQaJAA0AEQAAAQ4BIyImNzMGFjMyNjcnMwcjA4EUq4Z9iBOUCzRIQFMKK5S/YwWwZWxzXjc+QjPZxgAAAAACAQ8E5APABtIABwAbAAABIycHIyclMzcOASMiJiMiBgcnPgEzMhYzMjY3A8Ckl9eeAQFIf+EOaUAtXSUcPAVFDWpAI2clGzoGBOSfnwPw5URYSDAcE0JeRiwdAAIBCwTkBKkGzgAGABYAAAEjATM3FzMnNz4BNzYmIzcyFgcOAQ8BAvW2/syj3ZGkNxlCNQgGQjcWemsQDVA3DQXp/vu6uomDBRYkIiFcUVA/Pgc8AAIAXwTSA70GgAAHAAsAAAEjJwcjJwEzBSMDMwO9v3y8uQEBQZL+kIeJwgTSn58DAQJYAQEAAAAAAgEXBOQFHgaSAAcACwAAATMTIycHIycBMwMjAlqT2796vLsBA0TD8IkF6f77n58DAav+/wAAAAACAQ0EpwOfBnkADQARAAABDgEjIiY3MwYWMzI2NwcjJzMDnxrCloqWGJIOQFxSZw5ckZzRBbCBiJJ3R01TQQXOAAAAAAEBLwSQAkYGFwAFAAABNzMPASMBTKBaRxu1BSP0/YoAAv/UAAAD6ASNAAcACwAAASEDIwEzEyMBIQMnAwH+J5i8Ap6ry7v+TQFwUQMBEP7wBI37cwGkAfsBAAAAAwA+AAAEGgSNAA8AGAAhAAAzEyEyFgcOAQcVHgEHDgEjCwEzMjY3NiYjJzMyNjc2JisBPukBcrzFHxNtVlpKEyTjv5JM+2GAExNSaeC7b48SEl9/uwSNnp9bfh4DGZJjsJgCC/6IYFpgXolbV19BAAEATf/vBEIEnQAbAAABBgQjIgI/ATYAMzIWByM2JiMiBg8BBhYzMjY3A9w4/vPAuNIuIzABMMi5wxu2DV92bskeIyJteG6aKgGO0M8BH+Ks9AEN0suKf9GbrarEgooAAAIAPgAABEkEjQAJABMAADMTITISDwEGBCMLATMyNj8BNiYjPukBiLrgKiou/svMBq7RcNAcKx18egSN/vPR0uT5A/n8mr2N05eyAAABAD4AAAQdBI0ACwAAASEDIQchEyEHIQMhA0/+EE0CPx39CukC9h79wUMB7wIV/n6TBI2U/rAAAAEAPgAABB8EjQAJAAABIQMjEyEHIQMhA0r+EGW36QL4Hv2/SAHwAfj+CASNlP6UAAEASv/vBF4EnQAfAAAlDgEjIgI/ATYkMzIWDwE2JiMiBg8BBhYzMjY/ASM3IQPNOPKrzeEqMS0BN9rBuhG0CGV2fdMbMSB9jl2QITLxHgGlnUJsAQnV8+X4xqQBbWq7jfScry0c/JUAAQA+AAAEpASNAAsAACEjEyEDIxMzAyETMwO7tmP98GO36bdpAhBptgHu/hIEjf31AgsAAAEAPgAAAd0EjQADAAAzIxMz9LbptgSNAAEAC//vA9EEjQAPAAABMwMOASMiJjczBhYzMjY3Ax20oiXxqa63I7YXV2lPihUEjfzUuLqyr3Fde2QAAAEAPgAABHEEjQAMAAABIwMjEzMDMwEzCQEjAbRaZbfpt2ZOAdHa/eQBU+UB+P4IBI3+AgH+/dH9ogAAAAEAPgAAAvsEjQAFAAAlIQchEzMBEgHpHf1g6beTkwSNAAAAAAEAPgAABY4EjQAPAAAlFwEzAyMTJwEjAyMDIxMzAqQDAgTj6bWkA/4ifZcDp7fp6/cBA5f7cwM1AfzKA0T8vASNAAAAAQA+AAAEvgSNAAsAACEjASMDIxMzATMTMwPVtP6EA6236bcBewOutANh/J8EjfydA2MAAAIATf/vBG8EnQANABsAAAEGACMiAj8BNgAzMhIHJzYmIyIGDwEGFjMyNjcEHzL+09jH1C4jMQEu2MbULbUlb4t+xCIjJm+Lf8MjAfD6/vkBG+as+AEJ/uTlAbqywautvLLBrQACAE3/iwRvBJ0AEwAhAAABDgEHFwcnDgEjIgI/ATYAMzISByc2JiMiBg8BBhYzMjY3BB8WUTx7knw7f0fH1C4jMQEu2MbULbUlb4t+xCIjJm+Lf8MjAfBsp0Gib6AfHQEb5qz4AQn+5OUBurLBq628ssGtAAIAPgAABD8EjQAaACMAAAEDIxMhMhYHDgEHHgEPAQ4BFwcjJjY/ATYmIyczMjY3NiYrAQFVYLfpAa21tiAVcmVYPhQUDAETBLsSCQwUE0tf9fZrgRIUUXT2AeL+HgSNs6JjeCYgjmdlNlwYExppO2NjXpVhWWRkAAEAI//vBDIEnQAlAAABNiYnLgE3PgEzMhYHIzYmIyIGBwYWFx4BBwYEIyImNzMGFjMyNgMAD12Wx5weIPrHusAitRRhc2+RDxBWpMGbHSL+/tO25Sa1GIF0dKEBL05RLDuRl5+hu6xlbmBLUEsuO5eTp5qqvXhcYQAAAAABAL0AAAQlBI0ABwAAASEDIxMhNyEEB/6zy7XL/rgeA0oD+fwHA/mUAAAAAAEAWP/vBLwEjQARAAABAwYEIyImNxMzAwYWMzI2NxMEvJkr/t/ZxeEombSZHH+Ee78amQSN/QHVytzDAv/9AYiEjn4C/wAAAAEAvgAABMoEjQAJAAABHwE3ATMBIwMzAf0GAycB28L9ZanIwwEgVQFUA2/7cwSNAAEA1AAABfIEjQATAAABNzMHATMTNzMHATMBIwMjASMDMwGMAgICAYGpGgICAgFbw/4FqCcD/n6mKcIBCQkHA4L8fAkHA4L7cwNd/KMEjQAAAf/jAAAEhQSNAAsAAAkBMwETIwMBIwEDMwJTAVzW/iH/1LT+ntgB7fzWAtcBtv2//bQBv/5BAkwCQQAAAQC1AAAEgQSNAAgAAAkBMwEDIxMDMwIoAY7L/dtStVT0ywJNAkD9Dv5lAaUC6AAAAf/5AAAEFgSNAAkAADchByE3ASE3IQfvAnEd/LYXAw79xh4DFBaTk3IDh5RuAAAAAgBK/+8EIASdAA0AGwAAAQYEIyImNxM2JDMyFgcnNiYjIgYHAwYWMzI2NwO0K/76w7TCKEUqAQjEssEntRtecWijGUUcYXFnohkBm9fV58UBV9TX58QBiY2Yfv6oio+ZgAAAAAEArAAAAk0EnQAFAAAhIxMHNyUBYbXEwBsBggPTA4hFAAAAAAEADwAAA6YEnQAYAAApATcBPgE3NiYjIgYHIz4BMzIWBw4BBwEhAuX9Kh0BzHVVDRI9VFuGEbYg8bSbniIYd8X+3QH1kwGYZXFAXWt1VqC/tqh3f7D++gABACD/7wPJBJ0AKQAAATMyNjc2JiMiBgcjPgEzMhYHDgEHHgEHDgEjIiY3MwYWMzI2NzYmKwE3AXWcXHUSEE9lTIQOtR/uo6mzHxNyWVJHEyP3upfHIrQRWF5fjxIWUmucFQKaYlVUZGJKnaOroFmDJCWHYa+nq6hXaW9UbVhpAAIAJQAAA8kEjQAKAA4AAAEzByMHIzchNwEzARMnAQMStx63L7Uv/eYUArq7/q9pA/5EAYKV7e12Ayr89QIJAf32AAAAAQAeAAAEVQXFABgAACkBNwE+ATc2JiMiBgcjNiQzMhYHDgEHASEDi/yTGgIml3MTF1Zmhq0btSkBGt6ttCMapp3+QQKTgwITkadbeY2ejdDx5LGC2pb+VwAAAAACAE7/7wO7BJ0AGwAoAAABMhYXBy4BIyIGDwEXPgEzMhYHDgEjIiY3EzYkEyIGDwEGFjMyNjc2JgLBO4c4OjJjRmu4GRQDNoxUpJojJf24prwnPyoBIitPgSgIHFpkXZcUF08EnRsYjxkVpYBhAjE0x7K5xfjEATfU5/20Qjoqip+IY3RwAAAAAQC9AAADwwSNAAwAAAEGAgMHIzcSADchNyEDpePUOCW1JTsBAsT9ux4C6AP57f7I/uW5uQEpAVbBlAAAAwAj/+8D3wSdABcAIwAvAAABDgEHHgEHDgEjIiY3PgE3LgE3PgEzMhYBNiYjIgYHBhYzMjYTNiYjIgYHBhYzMjYDwBR2W1hVEyP+tKzRIRSObk5JESHwr5m4/uESaF5epBAUb2hYmVsQWFBTixASYFlKhQNdYIEjKYxesKe1omiNJCeBVqaap/1UXWpxVmFnbgJpU11gUFZeZQAAAgBt/+8DyASdABsAKAAAJTI2PwEnDgEjIiY3NiQzMhYHAwYEIyImJzceARMyNj8BNiYjIgYHBhYBhmCqFxUDMXxFrawjJAECt6S2JkUo/vC8PIc5ODRlq02GJQsbWGFamhMXUIKXcGoCLy3PrrXS98T+qMXWGhiQGhUBpU03N4mell1wfwAAAAEAfwAAAcEDLAAFAAAhIxMHNyUBH6CEdxoBGwKUAYIXAAAAAAEAIgAAAswDLAAZAAApATcBPgE3NiYjIgYHIz4BMzIWBw4BDwEXIQJH/dsZAU1ONwkLJzk8VQqdFrOIeHoXEl6LsAEBVX4BCD5KLDc8QjRwhX90V2JwjwMAAAAAAQAl//UC3gMsACkAAAEzMjY3NiYjIgYHIz4BMzIWBw4BBx4BBw4BIyImNzMGFjMyNjc2JisBNwEeeztKCwo2QzFPCJ8VsHuAixYNUUA7NAwZuI1ymBefCjk+QF0KDTZGexEB1Ts1MTczKWxvd248WhgaXEN5cnV0NDc8MkU1VQABAO0AAALSBbAABQAAISMTBTclAa+1+f76GAHNBNwId2UAAAABACv/9QLoAyEAHgAAGwEhByEHPgE3NhYHDgEjIiY/AQYWMzI2NzYmIyIGB32LAeAa/qw8Hk4pfmwaG6igepsXnwxBQ0ZYDg41QTpKFAFaAceBvxIZAQKOgoSGbm8LNzNHREpMJB8AAAIAQP/1AscDLAAbACgAAAEyFhcHLgEjIgYPARc+ATMyFgcOASMiJj8BPgETIgYPAQYWMzI2NzYmAg4vZCQzI0cxSXoQDAMlYz11chgZvot9kBsrHdcpOVkXARI9Qj9hDA41AywTEHsQD2BQOwIgIox6f4iqh9aTnf5ZLygIVl1NPEdCAAEAjwAAAswDIQAMAAABDgEPASM3PgE3ITchArOgjiUZnhkotnL+fRkCJAKioca8f3/I92R/AAAAAwAu//UC9QMsABcAIwAvAAABDgEHHgEHDgEjIiY3PgE3LgE3PgEzMhYDNiYjIgYHBhYzMjYTNiYjIgYHBhYzMjYC4A1VQj8+DBi8iYKgFw1mTzk1DBezhHSO5AtGPz5rCwxMRjpjOgo6NjZYCQtAOjBUAlBBWRkdYT56cnxwRWEbHFg6cmpz/i46P0Q1Ojo+AZczMjUwMzc6AAAAAgBk//UC5gMsABsAKAAAJTI2PwEnDgEjIiY3PgEzMhYPAQ4BIyImJzceARMyNj8BNiYjIgYHBhYBQUBuDgwDIFEugYIZGMCKeo0aLxvMji1lKzIlSX01VxMFETxAPGAKDzVzVkU/Ah4ckHp8kayG64eTEhB7Eg0BGDMlF1VeVTlITAAAAgA+//UDGAMsAA0AGwAAAQ4BIyImPwE+ATMyFgcnNiYjIgYPAQYWMzI2NwLPHsWSh5UcLx3EkoeVGqAQQEtGZw8vEkBNRGcRARuTk56I65GVoIYBVFJYTuxXUVhQAAAAAQC5AowDKgMhAAMAAAEhNyEDDP2tHgJTAoyVAAMBKwRCAz0GcwAEABAAHAAAATMXByMHPgEzMhYHDgEjIiY3BhYzMjY3NiYjIgYCirIB8G6lD29HPksOD2pEQVFhCCYjHTkHCCIhIDwGcwO1101ZX0dNVVtHJy0wJCgwMwAAAAACAPUEcANuBdYABQAPAAABEzMHASMnPgE3Fw4BDwEjAgWpwAT+7VX8EnBeOzI4DhCkBIMBQhX+wlRchS86LmdHUAAAAAEALv/rBEsFxQArAAABPwIzMjY3NiYjIgYHIzYkMzIWBw4BBx4BBwYEIyImNzMGFjMyNjc2JisBAaYLAwifdIkYG1h2Z6EXtSQBDMK0vCcVh3RuSBUs/uzFstAmthpmeHClGx5ZhZ8CwzcPJ4d1iHuKcrja1sdlrS4utm/Y0ti+f4KKh5V2AAACACcAAAQcBbAACgAPAAABMwcjAyMTITcBMwEhEycHA1q8HrtEtET9nhUDIb/86wGfjAMgAeiV/q0BU2sD8vw4ArwBOgAAAAABAGH/6wRpBbAAHwAAGwEhByEDFz4BNzYSBwYEIyImNzMGFjMyNjc2JiMiBgfW7gKlIv30fwMwcEe+ny0w/v3ZpMUpqxtja2+pIB9cd2d2JQKRAx+p/mABIywCAv775O34ysqEe7Kcm6lJSQACAGT/6wQ5BcUAGwAoAAABMhYXBy4BIyIGDwEXPgEzMhIHBgAjIgIbARIAEyIGDwEGFjMyNjc2JgNKQ4YmQylcRYvqKAQDRKJbrKspMf7tx77QOTk8AVkgXJczFyxxfWutHx9eBcUjGpEaHvnKEgE0Of7y0PP+9gE0ARkBHwEtAUH9c1ZKctzK0JigsAAAAAAD/5H+SgRTBE4ALwA/AE0AAAEjHgEPAQYEIyImJw4BBwYWOwEyFgcGBCMiJjc+ATcuATc+ATcuAT8BPgEzMhYXIQEiJicOAQcGFjMyNjc2JiMDBhYzMjY/ATYmIyIGBwQ4lhUNCgUh/wC1JkIeGyUHCjU6oLKyHhz+yefC0BcUc1MWEQkPUDxFOhMFIf65Iz8gAWH84xQjEDNNCxBsgYjRDg9KdLESYmVamBEFEmFkXZgQA6orYTYWo8IKDBQ0JDEjkpOIzKJ0ZH8nFjsmTl8lMpVYFqm9Cgr79AIEF109TVd6RU9BAqRadn1TFl1zelYAAAAAAQDrAAAEiwWwAAwAAAEIAQMHIzcSABMhNyEEbf7Q/wBtLbYtbQFA8/0xHgOCBRr+xf4i/piZmQFhAhgBCJYAAAH/zv5MBFoESQAjAAABMhYfAQEzARMeATMyNjcHDgEjIiYnAwEjAQMuASMiBiM3PgEBRW9ZGjMBSrb+LGIPLCkMDBQhCyMNY10eQP6QwAIETQ08OQo0AhwWOQRJlHf7Aff9L/4hS00CA5wGCX+QAT39yQMTAYFUZAWSBQoAAAAAAwA1/+sEWAXFABcAIwAvAAABDgEHHgEHBgQjIiY3PgE3LgE3PgEzMhYBNiYjIgYHBhYzMjYTNiYjIgYHBhYzMjYEMhqVcGtoFy3+78y/0SkarIRdVhcq+72rv/7CGnF1brUYG298bbF7F19kX5kXGV5oXJoENX6mKC+3etvD1MqItiktp3HRv9D8mISRm3qIhZADIXeHi3N7fogAAgBA/+sEkQROABQAIgAAJScOASMiAj8BEgAzMhYXMzczCwEjAQYWMzI2PwE2JiMiBgcDHwNJw4GvoC8EOAEEwneRHQNMrNACrP4SJVSHZalCCApPbX22JeABeX0BIOoVARsBKYB55f3i/eQB9bXA2LAmrN7yvAAAAgBB090pTwWwABoAKwAAAQchFgABFhIPAQYAIyICPwE2JDc6ARcmAic3AwYWMzI2PwE2JicuASMiBgcERR3+Xg8mutnNiXMfBDP+39jHwS8EKQEO0ggPCgbXKheIJVyKfLshBBk6PhMnGIbDHwWwkh3O3DB8nv73nhj9/uwBKegYzPkZAQcBBUFy/EyyytmjGH2qNgYG0JkAAAAAAgBYAAAE+QWwAAkAEwAAMwEhIBIDBwIAIRMDMzI2PwE2JiNYASMBXgEu8jwxQv62/rZc56nX/i4xMZTqBbD+z/7S8/62/uwFGvt74+b2988AAAAAAgA3/+sD/QROACAAKwAAITQ2NycOASMiJjc+ATsBNzYmIyIGByM+ATMyFgcDDgEXJTI2PwEjIgYHBhYCoAMDAkGtXZqIIST/2bUcFFdsZYAPtRzi07WqI20NCQT+OVerLC67e5sTEDosNxsBQFSgobaWiWZRYUmOsp+w/ds9ZjeKUTnkbmJTSwAAAAACAFcAAATuBa8ADgAXAAABDgEHEwcjAyEDIwEhMhYBITI2NzYmIyEExh2efcQEy6v+sHu2ASMB2NLK/LgBJIGsGhtnkf7eBAuLuy/9fBICav2WBa/a/iqOgIiFAAEAWAAABVgFsAANAAABBwMjATMDFzcBMwkBIwIuu2a1ASO1kAO4Ai3Q/WkBtuMCq63+AgWw/TECrQIk/YP8zQABADYAAAQxBhgADQAAAQcDIwEzAxc3ATMJASMBvIVLtgE4tr4DdgF52f4bATXWAfB4/ogGGPxLAXIBZv45/Y0AAQBYAAAFVgWwAAsAAAEDIwEzAzMBMwkBIwGXirUBI7WCDAK74f0JAfrfArL9TgWw/XgCiP05/RcAAAAAAQA2AAAEFAYYAAwAAAEjAyMBMwMXATMJASMBVARktgE4trUDAbfr/eoBZt8B9P4MBhj8eAEBq/4O/bgAAgB9/+sEVwXFABsAKAAAJTI2PwEnDgEjIgI3NgAzMhILAQIAIyImJzceARMyNj8BNiYjIgYHBhYBpYDTKwYDOZNXvLowMQEktsvENkg+/svfRZA1ODRwx2KeMB4qX4liuyAjWoDZ1x0BREABCOz3ARD+5f7s/pz+zf7sHB+QHRkB32RNmNK1z6KsswACAD4AAARDBI0ACgATAAABAyMTITIWBw4BIyczMjY3NiYrAQFJVLfpAbKyuCAl98Pe/GiQEhRUcfsBpv5aBI3QpLPAlIJbZX0AAAD//wELBKUDTwWwAgYAnAAA//8AAAAAAAAAAAIGAAMAAP//AD4CIQIjArYCBgAPAAAAAgBeAAAFOwWwAA0AGwAAMxMjNzMTISAAAwcCACETIQMhMhI/ATYCKwEDIXaFnR6dgAF6AQABKDcnPv6s/u93/v9nAQ+x8ysoLL/HxWIBAQKalQKB/pT+7cX+zf7HApr9+wEB1sjeAQj+FQAAAgBeAAAFOwWwAA0AGwAAMxMjNzMTISAAAwcCACETIQMhMhI/ATYCKwEDIXaFnR6dgAF6AQABKDcnPv6s/u93/v9nAQ+x8ysoLL/HxWIBAQKalQKB/pT+7cX+zf7HApr9+wEB1sjeAQj+FQAAAQBTAAAENwYYABwAAAEjAxc+ATMyFgcDIxM2JiMiBgcDIxMjNzM3MwczAvz8OANApF6bjyuHtYgeT29JjzmetvehHqAktiT9BNL+6QJITdDZ/VsCp5Z3VEj86ATSlbGxAAAAAAEA7AAABQsFsAAPAAABIwMjEyM3MxMhNyEHIQMzA7HLpLWk0x7TQ/5aHgQBHv5aQ8sDNvzKAzaVAU+Wlv6xAAABAAf/7AKkBUEAHwAAAQMzByMHMwcjAwYWMzI2NwcOASMiJjcTIzczNyM3MxMCGjW/HL8m1R7VQBIkKxQzEwIcXSxjYyBAyB7IJo0cjTUFQf75jb6V/r1WOQgFgxEVj5wBQ5W+jQEH////1QAABH8HIgImACMAAAAHAEIBawFd////1QAABMMHHwImACMAAAAHAHMCFwFZ////1QAABI0HRgImACMAAAAHAJoBBgFd////1QAABNQHUQImACMAAAAHAKABJQFg////1QAABMwHDAImACMAAAAHAGgBBwFc////1QAABH8HiAImACMAAAAHAJ4BkgGo////1QAABMYHnwImACMAAAAHAdQBiQEs//8AYv5EBPgFxQAmACUAAAAHAHcBt//3//8AWAAABPIHIgImACcAAAAHAEIBNwFd//8AWAAABPIHHwImACcAAAAHAHMB4wFZ//8AWAAABPIHRgImACcAAAAHAJoA0gFd//8AWAAABPIHDAImACcAAAAHAGgA0wFc//8AYgAAAkQHIgImACsAAAAHAEL//AFd//8AYgAAA1MHHwImACsAAAAHAHMApwFZ//8AYgAAAx4HRgImACsAAAAHAJr/lwFd//8AYgAAA10HDAImACsAAAAHAGj/mAFc//8AWAAABXoHUQImADAAAAAHAKABTgFg//8AXv/rBTYHNwAmADEAAAAHAEIBjAFy//8AXv/rBTYHNAAmADEAAAAHAHMCOAFu//8AXv/rBTYHWwAmADEAAAAHAJoBJwFy//8AXv/rBTYHZgAmADEAAAAHAKABRgF1//8AXv/rBTYHIQAmADEAAAAHAGgBKAFx//8AZ//rBVcHIgImADcAAAAHAEIBdwFd//8AZ//rBVcHHwImADcAAAAHAHMCIwFZ//8AZ//rBVcHRgImADcAAAAHAJoBEgFd//8AZ//rBVcHDAImADcAAAAHAGgBEwFc//8A7gAABVMHHQImADsAAAAHAHMB6QFX//8AOv/sA/cF4AImAEMAAAAHAEIAswAb//8AOv/sBAsF3QImAEMAAAAHAHMBXwAX//8AOv/sA/cGBAImAEMAAAAGAJpOGwAA//8AOv/sBBwGDwImAEMAAAAGAKBtHgAA//8AOv/sBBQFygImAEMAAAAGAGhPGgAA//8AOv/sA/cGRgImAEMAAAAHAJ4A2gBm//8AOv/sBA4GXgImAEMAAAAHAdQA0f/r//8AR/5EA/sETgImAEUAAAAHAHcBOf/3//8AR//sA+sF4QImAEcAAAAHAEIAkQAc//8AR//sA+sF3gImAEcAAAAHAHMBPQAY//8AR//sA+sGBQImAEcAAAAGAJosHAAA//8AR//sA/IFywImAEcAAAAGAGgtGwAA//8APgAAAd0FywImAIoAAAAGAEKVBgAA//8APgAAAuwFyAImAIoAAAAGAHNAAgAA//8APgAAArcF7wImAIoAAAAHAJr/MAAG//8APgAAAvYFtQImAIoAAAAHAGj/MQAF//8ANQAABDIGDwImAFAAAAAHAKAAgwAe//8ARv/sBBwF4AImAFEAAAAHAEIApwAb//8ARv/sBBwF3QImAFEAAAAHAHMBUwAX//8ARv/sBBwGBAImAFEAAAAGAJpCGwAA//8ARv/sBBwGDwImAFEAAAAGAKBhHgAA//8ARv/sBBwFygImAFEAAAAGAGhDGgAA//8AWv/sBDsFywImAFcAAAAHAEIAxgAG//8AWv/sBDsFyAImAFcAAAAHAHMBcgAC//8AWv/sBDsF7wImAFcAAAAGAJphBgAA//8AWv/sBDsFtQImAFcAAAAGAGhiBQAA////vP5LBCoFyAImAFsAAAAHAHMBNQAC////vP5LBCoFtQImAFsAAAAGAGglBQAA////1QAABN4G+gImACMAAAAHAG4BJgFK//8AOv/sBCYFuAImAEMAAAAGAG5uCAAA////1QAABLAHTAImACMAAAAHAJwBYQGc//8AOv/sA/gGCgImAEMAAAAHAJwAqQBaAAL/1f5QBH8FsAAaAB4AAAEzEyMOAQcGFjMyNjcHDgEjIiY3PgE3AyEDIwEhAycDBJvgJVdiCQYbKBkwFwcgTDJPWA8LY180/c7SuAHbAc1cAwWw+lA+ZDwlJRELeBMZY1pJfTYBe/58AhkCoAEAAAACADr+UAP3BE4ANAA/AAAhNDY3Jw4BIyImNzYkOwE3NiYjIgYHIzYkMzIWBwMOARcjDgEHBhYzMjY3Bw4BIyImNz4BNyUyNj8BIyIGBwYWAqAEBQNCrl2WiR4iAQHQvhYVV2dYjg61GwEAtqS1ImgNCQQTV2IJBhsoGTAXByBMMk9YDwtbWP7wV60vKMNrpBARQTM+HwFIXayWqKJuaWlkRoW7u6/99j1mNz5kPCUlEQt4ExljWkZ5NItgRMl7U1BPAAD//wBi/+sE+Ac0ACYAJQAAAAcAcwIhAW7//wBH/+wD+wXdAiYARQAAAAcAcwEqABf//wBi/+sE+AdbACYAJQAAAAcAmgEQAXL//wBH/+wD+wYEAiYARQAAAAYAmhkbAAD//wBi/+sE+AciACYAJQAAAAcAnQHRAXL//wBH/+wD+wXLAiYARQAAAAcAnQDaABv//wBi/+sE+AdcACYAJQAAAAcAmwEmAXP//wBH/+wD+wYFAiYARQAAAAYAmy8cAAD//wBYAAAFHQdHACYAJgAAAAcAmwDgAV7//wBE/+sFwwYYACYARgAAAAcBkQSgBSz//wBYAAAE8gb6AiYAJwAAAAcAbgDyAUr//wBH/+wEBAW5AiYARwAAAAYAbkwJAAD//wBYAAAE8gdMAiYAJwAAAAcAnAEtAZz//wBH/+wD6wYLAiYARwAAAAcAnACHAFv//wBYAAAE8gcNAiYAJwAAAAcAnQGTAV3//wBH/+wD6wXMAiYARwAAAAcAnQDtABwAAQBY/lAE8gWwACAAAAEhAyEHIw4BBwYWMzI2NwcOASMiJjc+ATcnIQEhByEDIQQC/ZJpAsweNFdiCQYbKBkwFwcgTDJPWA8LWlQB/V0BIwN3Hv0+YAJuAqb975U+ZDwlJRELeBMZY1pGeDIDBbCW/iIAAAACAEf+ZAPrBE4AKQAxAAAlDgEHDgEHBhYzMjY3Bw4BIyImNz4BNycmAj8BNgAzMhIPASEGFjMyNjcDIgYHITc2JgNbIVM0U14IBhsoGTAXByBMMk9YDwg/OQHIyicHJwEptMerIxP9bBhrh1qXPMdaoCkB2gQTWXEeMxI7YjslJRELeBMZY1o5YywDAwEp7y31ASX++915rcU5MgLMqoYafZkA//8AWAAABPIHRwImACcAAAAHAJsA6AFe//8AR//sA+sGBgImAEcAAAAGAJtCHQAA//8AaP/rBQ8HWwImACkAAAAHAJoBBgFy//8AN/5LBD0GBAImAEkAAAAGAJpWGwAA//8AaP/rBQ8HYQImACkAAAAHAJwBYQGx//8AN/5LBD0GCgImAEkAAAAHAJwAsQBa//8AaP/rBQ8HIgImACkAAAAHAJ0BxwFy//8AN/5LBD0FywImAEkAAAAHAJ0BFwAb//8AaP3lBQ8FxQImACkAAAAHAZEBRv62//8AN/5LBD0GbQImAEkAAAAHAaUBKABW//8AWAAABXkHRgImACoAAAAHAJoBKQFd//8ANQAABBkHRQImAEoAAAAHAJoAYwFc//8AYgAAA2UHUQImACsAAAAHAKD/tgFg//8APgAAAv4F+gImAIoAAAAHAKD/TwAJ//8AYgAAA28G+gImACsAAAAHAG7/twFK//8APgAAAwgFpAImAIoAAAAHAG7/UP/0//8AYgAAA0EHTAImACsAAAAHAJz/8gGc//8APgAAAtoF9QImAIoAAAAGAJyLRQAA////mv5YAjoFsAImACsAAAAGAJ/jCAAA////e/5QAjEGGAImAEsAAAAGAJ/EAAAA//8AYgAAAogHDQImACsAAAAHAJ0AVwFd//8AYv/rBnYFsAAmACsAAAAHACwCJAAA//8ARP5LBCEGGAAmAEsAAAAHAEwB6AAA//8AD//rBSwHOQImACwAAAAHAJoBpQFQ////G/5LAsQF3AImAJgAAAAHAJr/Pf/z//8APv31BTUFsAAmAC0AAAAHAZEBIP7G//8ANv33BCgGGAImAE0AAAAHAZEAxP7I//8AWAAAA60G4AImAC4AAAAHAHMAjwEa//8ARAAAA0MHXAImAE4AAAAHAHMAlwGW//8AWP33A60FsAImAC4AAAAHAZEBGv7I////qP33AjEGGAImAE4AAAAHAZH/wv7I//8AWAAAA9UFsQImAC4AAAAHAZECsgTF//8ARAAAA3IGGAAmAE4AAAAHAZECTwUs//8AWAAAA60FsAImAC4AAAAHAJ0BNP3F//8ARAAAAukGGAAmAE4AAAAHAJ0AuP23//8AWAAABXoHHwImADAAAAAHAHMCQAFZ//8ANQAABCEF3QImAFAAAAAHAHMBdQAX//8AWP33BXoFsAImADAAAAAHAZEBd/7I//8ANf33BBgETgImAFAAAAAHAZEA7P7I//8AWAAABXoHRwImADAAAAAHAJsBRQFe//8ANQAABCMGBQImAFAAAAAGAJt6HAAA//8ANQAABBgGGAImAFAAAAAHAZEAiwUs//8AXv/rBTYHDwAmADEAAAAHAG4BRwFf//8ARv/sBBwFuAImAFEAAAAGAG5iCAAA//8AXv/rBTYHYQAmADEAAAAHAJwBggGx//8ARv/sBBwGCgImAFEAAAAHAJwAnQBa//8AXv/rBZkHYAAmADEAAAAHAKEBqgFy//8ARv/sBLQGCQImAFEAAAAHAKEAxQAb//8AVwAABQIHHwImADQAAAAHAHMB3AFZ//8ANQAAA4cF3QImAFQAAAAHAHMA2wAX//8AV/33BQIFrwImADQAAAAHAZEBE/7I////pv33Aw0ETgImAFQAAAAHAZH/wP7I//8AVwAABQIHRwImADQAAAAHAJsA4QFe//8ANQAAA4oGBQImAFQAAAAGAJvhHAAA//8AQ//rBMAHNAAmADUAAAAHAHMB1gFu//8AO//sA9MF3QImAFUAAAAHAHMBJwAX//8AQ//rBMAHWwAmADUAAAAHAJoAxQFy//8AO//sA8kGBAImAFUAAAAGAJoWGwAA//8AQ/5EBMAFxQAmADUAAAAHAHcBbP/3//8AO/5FA8kETgImAFUAAAAHAHcBN//4//8AQ/3jBMAFxQAmADUAAAAHAZEBBP60//8AO/3kA8kETgImAFUAAAAHAZEAz/61//8AQ//rBMAHXAAmADUAAAAHAJsA2wFz//8AO//sA9UGBQImAFUAAAAGAJssHAAA//8A7P31BQsFsAImADYAAAAHAZEBDP7G//8ARf3tAqQFQQImAFYAAAAHAZEAX/6+//8A7P5VBQsFsAImADYAAAAHAHcBdAAI//8Ab/5NAqQFQQImAFYAAAAHAHcAxwAA//8A7AAABQsHRgImADYAAAAHAJsA2gFd//8Ab//sA7QGMQAmAFYAAAAHAZECkQVF//8AZ//rBVcHUQImADcAAAAHAKABMQFg//8AWv/sBDsF+gImAFcAAAAHAKAAgAAJ//8AZ//rBVcG+gImADcAAAAHAG4BMgFK//8AWv/sBDsFpAImAFcAAAAHAG4Agf/0//8AZ//rBVcHTAImADcAAAAHAJwBbQGc//8AWv/sBDsF9QImAFcAAAAHAJwAvABF//8AZ//rBVcHiAImADcAAAAHAJ4BngGo//8AWv/sBDsGMQImAFcAAAAHAJ4A7QBR//8AZ//rBYQHSwImADcAAAAHAKEBlQFd//8AWv/sBNMF9AImAFcAAAAHAKEA5AAGAAEAZ/5uBVcFsAAoAAABAw4BBw4BBwYWMzI2NwcOASMiJjc+ATcnIgYjIiY3EzMDBhYzMjY3EwVXxSW4jE5cCQYbKBkwFwcgTDJPWA8IOTQBBBYG1u0wxbbFJYqWkeIixQWw/CW22jI3YzklJRELeBMZY1o2XioDAfzuA9v8JbafragD2wAAAAABAFr+UAQ7BDoAJwAAIQ4BBwYWMzI2NwcOASMiJjc+AT8BJw4BIyImNxMzAwYWMzI2NxMzAwNiV2IJBhsoGTAXByBMMk9YDwpeWRIDP6JlnZMwf7Z/JkNpX5Mzm7XYPmQ8JSURC3gTGWNaRno1jwFSVOHwAn39gb53W1MDBvvG//8A7AAABuwHRgImADkAAAAHAJoBnAFd//8AsgAABfoF7wImAFkAAAAHAJoBFQAG//8A7gAABVMHRAImADsAAAAHAJoA2AFb////vP5LBCoF7wImAFsAAAAGAJokBgAA//8A7gAABVMHCgImADsAAAAHAGgA2QFa//8AIAAABH0HHwAmADwAAAAHAHMB0QFZ//8ACAAAA+oFyAImAFwAAAAHAHMBPgAC//8AIAAABFsHDQAmADwAAAAHAJ0BgQFd//8ACAAAA98FtgImAFwAAAAHAJ0A7gAG//8AIAAABH8HRwAmADwAAAAHAJsA1gFe//8ACAAAA+wF8AImAFwAAAAGAJtDBwAA////ngAAB3UHHwImAH8AAAAHAHMDAQFZ//8ABP/rBmAF3gImAIQAAAAHAHMCegAY//8AJv+jBWsHXQImAIEAAAAHAHMCMQGX//8ATP95BDgF3AImAIcAAAAHAHMBUAAW//8ACwAABEkEjQImAakAAAAHAdP/Uv97//8ACwAABEkEjQImAakAAAAHAdP/Uv97//8AvQAABCUEjQImAbgAAAAGAdMo9wAA////1AAAA+gF3wImAaYAAAAHAEIA2QAa////1AAABDEF3AImAaYAAAAHAHMBhQAW////1AAAA/sGAwImAaYAAAAGAJp0GgAA////1AAABEIGDgImAaYAAAAHAKAAkwAd////1AAABDoFyQImAaYAAAAGAGh1GQAA////1AAAA+gGRQImAaYAAAAHAJ4BAABl////1AAABDQGXQImAaYAAAAHAdQA9//q//8ATf5HBEIEnQImAagAAAAHAHcBU//6//8APgAABB0F3wImAaoAAAAHAEIAqgAa//8APgAABB0F3AImAaoAAAAHAHMBVgAW//8APgAABB0GAwImAaoAAAAGAJpFGgAA//8APgAABB0FyQImAaoAAAAGAGhGGQAA//8APgAAAd8F3wImAa4AAAAGAEKXGgAA//8APgAAAu4F3AImAa4AAAAGAHNCFgAA//8APgAAArkGAwImAa4AAAAHAJr/MgAa//8APgAAAvgFyQImAa4AAAAHAGj/MwAZ//8APgAABL4GDgImAbMAAAAHAKAAsQAd//8ATf/vBG8F7wImAbQAAAAHAEIA3QAq//8ATf/vBG8F7AImAbQAAAAHAHMBiQAm//8ATf/vBG8GEwImAbQAAAAGAJp4KgAA//8ATf/vBG8GHgImAbQAAAAHAKAAlwAt//8ATf/vBG8F2QImAbQAAAAGAGh5KQAA//8AWP/vBLwF4AImAbkAAAAHAEIA9QAb//8AWP/vBLwF3QImAbkAAAAHAHMBoQAX//8AWP/vBLwGBAImAbkAAAAHAJoAkAAb//8AWP/vBLwFygImAbkAAAAHAGgAkQAa//8AtQAABIEF2wImAb0AAAAHAHMBWAAV////1AAABEwFtwImAaYAAAAHAG4AlAAH////1AAABB4GCQImAaYAAAAHAJwAzwBZAAL/1P5QA+gEjQAaAB4AAAETIw4BBwYWMzI2NwcOASMiJjc+ATcnIQMjAQMhAycDHcs3V2IJBhsoGTAXByBMMk9YDwtqZin+J5i8Ap74AXBRAwSN+3M+ZDwlJRELeBMZY1pMgDj//vAEjf0XAfsBAP//AE3/7wRCBewCJgGoAAAABwBzAXoAJv//AE3/7wRCBhMCJgGoAAAABgCaaSoAAP//AE3/7wRCBdoCJgGoAAAABwCdASoAKv//AE3/7wRCBhQCJgGoAAAABgCbfysAAP//AD4AAARJBgQCJgGpAAAABgCbLhsAAP//AD4AAAQdBbcCJgGqAAAABgBuZQcAAP//AD4AAAQdBgkCJgGqAAAABwCcAKAAWf//AD4AAAQdBcoCJgGqAAAABwCdAQYAGgABAD7+UAQdBI0AIAAAASEDIQcjDgEHBhYzMjY3Bw4BIyImNz4BNychEyEHIQMhA0/+EE0CPx1CV2IJBhsoGTAXByBMMk9YDwtaVAH99ukC9h79wUMB7wIV/n6TPmQ8JSURC3gTGWNaRngyAwSNlP6wAAAA//8APgAABB0GBAImAaoAAAAGAJtbGwAA//8ASv/vBF4GEwImAawAAAAGAJpzKgAA//8ASv/vBF4GGQImAawAAAAHAJwAzgBp//8ASv/vBF4F2gImAawAAAAHAJ0BNAAq//8ASv3nBF4EnQImAawAAAAHAZEA9/64//8APgAABKQGAwImAa0AAAAGAJp7GgAA//8APgAAAwAGDgImAa4AAAAHAKD/UQAd//8APgAAAwoFtwImAa4AAAAHAG7/UgAH//8APgAAAtwGCQImAa4AAAAGAJyNWQAA////c/5QAd0EjQImAa4AAAAGAJ+8AAAA//8APgAAAiQFygImAa4AAAAGAJ3zGgAA//8AC//vBKYF+QImAa8AAAAHAJoBHwAQ//8APv3zBHEEjQImAbAAAAAHAZEArP7E//8APgAAAvsFwQImAbEAAAAGAHND+wAA//8APv31AvsEjQImAbEAAAAHAZEAjP7G//8APgAAAxAEjgImAbEAAAAHAZEB7QOi//8APgAAAvsEjQImAbEAAAAHAJ0Aif0m//8APgAABL4F3AImAbMAAAAHAHMBowAW//8APv31BL4EjQImAbMAAAAHAZEBGv7G//8APgAABL4GBAImAbMAAAAHAJsAqAAb//8ATf/vBG8FxwImAbQAAAAHAG4AmAAX//8ATf/vBG8GGQImAbQAAAAHAJwA0wBp//8ATf/vBOoGGAImAbQAAAAHAKEA+wAq//8APgAABD8F3AImAbYAAAAHAHMBOQAW//8APv31BD8EjQImAbYAAAAHAZEAsP7G//8APgAABD8GBAImAbYAAAAGAJs+GwAA//8AI//vBDIF7AImAbcAAAAHAHMBZAAm//8AI//vBDIGEwImAbcAAAAGAJpTKgAA//8AI/5HBDIEnQImAbcAAAAHAHcBPf/6//8AI//vBDIGFAImAbcAAAAGAJtpKwAA//8Al/31BCUEjQImAbgAAAAHAZEAsf7G//8AvQAABCUGAwImAbgAAAAGAJs/GgAA//8AWP/vBLwGDwImAbkAAAAHAKAArwAe//8AWP/vBLwFuAImAbkAAAAHAG4AsAAI//8AWP/vBLwGCgImAbkAAAAHAJwA6wBa//8AWP/vBLwGRgImAbkAAAAHAJ4BHABm//8AWP/vBQIGCQImAbkAAAAHAKEBEwAbAAEAWP57BLwEjQAoAAABAw4BBw4BBwYWMzI2NwcOASMiJjc+ATcnIgYjIiY3EzMDBhYzMjY3EwS8mR2QcFBbCAYbKBkwFwcgTDJPWA8HNC4BBQ0LxeEombSZHH+Ee78amQSN/QGLszA5YDolJRELeBMZY1ozWigDAdzDAv/9AYiEjn4C/wAAAP//ANQAAAXyBgMCJgG7AAAABwCaAQwAGv//ALUAAASBBgICJgG9AAAABgCaRxkAAP//ALUAAASBBcgCJgG9AAAABgBoSBgAAP////kAAAQWBdwCJgG+AAAABwBzATcAFv////kAAAQWBcoCJgG+AAAABwCdAOcAGv////kAAAQWBgQCJgG+AAAABgCbPBsAAP//ACP/7whdBJ0AJgG3AAAABwG3BCsAAP///9UAAAR/BngCJgAjAAAABgCpPAAAAP//AJsAAAVWBnoAJgAnZAAABwCp/zcAAv//ALwAAAXdBnoAJgAqZAAABwCp/2MAAv//AMYAAAKeBnkAJgArZAAABwCp/2cAAf//AHL/6wVKBngAJgAxFAAABgCpmgAAAP//AEkAAAW3BngAJgA7ZAAABwCp/uUAAP//ADEAAAUcBngAJgC1FAAABgCphAAAAP//AGz/6wMkBj8CJgC+AAAABwCq/yv/t////9UAAAR/BbACBgAjAAD//wBYAAAE0AWwAgYAJAAA//8AWAAABPIFsAIGACcAAP//ACAAAARbBbAABgA8AAD//wBYAAAFeQWwAgYAKgAA//8AYgAAAjoFsAIGACsAAP//AD4AAAU1BbAABgAtAAD//wBYAAAGswWwAgYALwAA//8AWAAABXoFsAIGADAAAP//AF7/6wU2BcUABgAxAAD//wBYAAAFGAWwAgYAMgAA//8A7AAABQsFsAIGADYAAP//AO4AAAVTBbACBgA7AAD////8AAAFHQWwAgYAOgAA//8AYgAAA10HDAImACsAAAAHAGj/mAFc//8A7gAABVMHCgImADsAAAAHAGgA2QFa//8AQP/rBDQGegImALYAAAAHAKkBWwAC//8AKf/tA/0GeQImALoAAAAHAKkBFgAB//8ANf5hBBIGegImALwAAAAHAKkBMAAC//8Afv/rAtQGZgImAL4AAAAGAKkq7gAA//8AWv/rBAUGPwImAMYAAAAGAKoMtwAA//8APgAABGAEOgIGAIsAAP//AEb/7AQcBE4CBgBRAAD////r/mAEMwQ6AgYAdAAA//8AlwAABAoEOgIGAFgAAP///+kAAAPxBDoCBgBaAAD//wB+/+sDJQW1AiYAvgAAAAcAaP9gAAX//wBa/+sEBgW1AiYAxgAAAAYAaEEFAAD//wBG/+wEHAZ6AiYAUQAAAAcAqQEOAAL//wBa/+sD9AZmAiYAxgAAAAcAqQEM/+7//wBd/+sF7AZjAiYAyQAAAAcAqQIj/+v//wBYAAAE8gcMAiYAJwAAAAcAaADTAVz//wBXAAAEuQcfAiYArAAAAAcAcwHhAVkAAQBD/+sEwAXFACUAAAE2JicuATc2JDMyFgcjNiYjIgYHBhYXHgEHBgQjIiQ3MwYWMzI2A34YcLPWsSgjAQXD2OkqthyJkmmdERpmu9uwJyX+9czZ/uMwtSO4mmqrAUx3hEJIy8axsuzWi6F0V393R0/Hw7ir1uurgXIA//8AYgAAAjoFsAIGACsAAP//AGIAAANdBwwCJgArAAAABwBo/5gBXP//AA//6wRSBbACBgAsAAD//wA+AAAFNQWwAAYALQAA//8APgAABTUGxwAmAC0AAAAHAHMBxQEB//8Ao//rBUUHTAImANkAAAAHAJwBPgGc////1QAABH8FsAIGACMAAP//AFgAAATQBbACBgAkAAD//wBXAAAEuQWwAgYArAAA//8AWAAABPIFsAIGACcAAP//AFgAAAV6B0wCJgDXAAAABwCcAY4BnP//AFgAAAazBbACBgAvAAD//wBYAAAFeQWwAgYAKgAA//8AXv/rBTYFxQAGADEAAP//AFgAAAV7BbACBgCxAAD//wBYAAAFGAWwAgYAMgAA//8AYv/rBPgFxQAGACUAAP//AOwAAAULBbACBgA2AAD////8AAAFHQWwAgYAOgAA//8AOv/sA/cETgIGAEMAAP//AEf/7APrBE4CBgBHAAD//wBAAAAERwX1AiYA6wAAAAcAnADIAEX//wBG/+wEHAROAgYAUQAA////4v5gBCYETgIGAFIAAAABAEf/7AP7BE4AGwAAJTI2NzMGBCMiAj8BNgAzMhYHIzYmIyIGDwEGFgHxWqAPrBn+8qbXuyUHJwER4a7BGqwQameNpBoHHFWBeFyazwEy6ir1ASfeqmyG4qQqsdYAAP///7z+SwQqBDoCBgBbAAD////pAAAD8QQ6AgYAWgAA//8AR//sA/IFywImAEcAAAAGAGgtGwAA//8APgAAA5UFyAImAOcAAAAHAHMA5wAC//8AO//sA8kETgIGAFUAAP//AEQAAAIxBhgCBgBLAAD//wA+AAAC9gW1AiYAigAAAAcAaP8xAAX///8d/ksCOQYYAgYATAAA//8AQAAABGEFxwImAOwAAAAHAHMBTQAB////vP5LBCoF9QImAFsAAAAGAJx/RQAA//8A7AAABuwHIgImADkAAAAHAEICAQFd//8AsgAABfoFywImAFkAAAAHAEIBegAG//8A7AAABuwHHwImADkAAAAHAHMCrQFZ//8AsgAABfoFyAImAFkAAAAHAHMCJgAC//8A7AAABuwHDAImADkAAAAHAGgBnQFc//8AsgAABfoFtQImAFkAAAAHAGgBFgAF//8A7gAABVMHIAImADsAAAAHAEIBPQFb////vP5LBCoFywImAFsAAAAHAEIAiQAG//8AxgQjAagGGAIGAAkAAP//AMUEFAK9BhgCBgAEAAD//wBPAAAEJQWwACYEHAAAAAcEHAH9AAD//wCKAAAEzAYtACYASAAAAAcATgKbAAD///8b/ksC/AXdAiYAmAAAAAcAm/9T//T//wCxA+cCIAYYAgYBZgAA//8AWAAABrMHHwImAC8AAAAHAHMC3wFZ//8ANQAABlsF3QImAE8AAAAHAHMCrwAX////1f6HBH8FsAImACMAAAAHAKIBOQAA//8AOv6HA/cETgImAEMAAAAHAKIAkgAA//8AAf/rBTYGogAmADEAAAAHAdX/DADM//8AigAABrIGLQAmAEgAAAAHAZICmwAA//8AigAAB2cGLQAmAEgAAAAnAEgCmwAAAAcATgU2AAD//wBYAAAE8gciAiYAJwAAAAcAQgE3AV3//wBYAAAFegciAiYA1wAAAAcAQgGYAV3//wBH/+wD6wXhAiYARwAAAAcAQgCRABz//wBAAAAERwXLAiYA6wAAAAcAQgDSAAb//wCKAAAFkgWwAgYAtAAA//8AQ/4pBS4EOgIGAMgAAP//AOgAAAVcB0cCJgEUAAAABwCnBDEBWf//ALMAAARLBh8CJgEVAAAABwCnA5gAMf//AEb+SwhuBE4AJgBRAAAABwBbBEQAAP//AF7+SwllBcUAJgAxAAAABwBbBTsAAP//ACD+UQSwBcUCJgDWAAAABwGcAXD/uP//AB7+UgPEBEwCJgDqAAAABwGcASD/uf//AGL+UQT4BcUAJgAlAAAABwGcAb//uP//AEf+UQP7BE4CJgBFAAAABwGcAUH/uP//AO4AAAVTBbACBgA7AAD//wCz/mAEJgQ6AgYAuAAA//8AYgAAAjoFsAIGACsAAP///8oAAAddB0wCJgDVAAAABwCcAkwBnP///8MAAAYBBfUCJgDpAAAABwCcAaQARf//AGIAAAI6BbACBgArAAD////VAAAEsAdMAiYAIwAAAAcAnAFhAZz//wA6/+wD+AYKAiYAQwAAAAcAnACpAFr////VAAAEzAcMAiYAIwAAAAcAaAEHAVz//wA6/+wEFAXKAiYAQwAAAAYAaE8aAAD///+eAAAHdQWwAgYAfwAA//8ABP/rBmAETgIGAIQAAP//AFgAAATyB0wCJgAnAAAABwCcAS0BnP//AEf/7APrBgsCJgBHAAAABwCcAIcAW///AEb/6wVABt4CJgFBAAAABwBoAMsBLv//ADz/7AP2BE8CBgCZAAD//wA8/+wEFgXLAiYAmQAAAAYAaFEbAAD////KAAAHXQcMAiYA1QAAAAcAaAHyAVz////DAAAGAQW1AiYA6QAAAAcAaAFKAAX//wAg/+sEsAchAiYA1gAAAAcAaADCAXH//wAe/+0D8gXJAiYA6gAAAAYAaC0ZAAD//wBYAAAFegb6AiYA1wAAAAcAbgFTAUr//wBAAAAERwWkAiYA6wAAAAcAbgCN//T//wBYAAAFegcMAiYA1wAAAAcAaAE0AVz//wBAAAAERwW1AiYA6wAAAAYAaG4FAAD//wBe/+sFNgchACYAMQAAAAcAaAEoAXH//wBG/+wEHAXKAiYAUQAAAAYAaEMaAAD//wBd/+sFNwXFAgYBEgAA//8ARv/sBBwETgIGARMAAP//AF3/6wU3BwcCJgESAAAABwBoAScBV///AEb/7AQeBeYCJgETAAAABgBoWTYAAP//AIf/7AU0ByICJgDiAAAABwBoARQBcv//ADP/6wQNBcoCJgD6AAAABgBoSBoAAP//AKP/6wVFBvoCJgDZAAAABwBuAQMBSv///7z+SwQqBaQCJgBbAAAABgBuRPQAAP//AKP/6wVFBwwCJgDZAAAABwBoAOQBXP///7z+SwQqBbUCJgBbAAAABgBoJQUAAP//AKP/6wVVB0sCJgDZAAAABwChAWYBXf///7z+SwSWBfQCJgBbAAAABwChAKcABv//ANEAAAVIBwwCJgDcAAAABwBoAQsBXP//AH8AAAQGBbUCJgD0AAAABgBoLwUAAP//AFcAAAaiBwwAJgDhDwAAJwArBGgAAAAHAGgByAFc//8AQAAABasFtQAmAPkAAAAnAIoD3gAAAAcAaAEjAAX////8/ksFHQWwAiYAOgAAAAcBmgN+AAD////p/ksD8QQ6AiYAWgAAAAcBmgKWAAD//wBE/+sElQYYAgYARgAA////3v5LBXEFsAImANgAAAAHAZoD/AAA////1f5LBEkEOgImAO0AAAAHAZoDHwAA////1f6xBH8FsAImACMAAAAHAKgErAAA//8AOv6xA/cETgImAEMAAAAHAKgEBQAA////1QAABH8HxgImACMAAAAHAKYE5QFT//8AOv/sA/cGhAImAEMAAAAHAKYELQAR////1QAABg4HqAImACMAAAAHAaMA8AEW//8AOv/sBVYGZwImAEMAAAAGAaM41QAA////1QAABLcHpQImACMAAAAHAaIA+gEl//8AOv/sA/8GZAImAEMAAAAGAaJC5AAA////1QAABZ4H2wImACMAAAAHAaEA9QEN//8AOv/sBOYGmgImAEMAAAAGAaE9zAAA////1QAABLYH5QImACMAAAAHAaAA9gET//8AOv/sA/4GpAImAEMAAAAGAaA+0gAA////1f6xBI0HRgImACMAAAAnAJoBBgFdAAcAqASsAAD//wA6/rED9wYEAiYAQwAAACYAmk4bAAcAqAQFAAAAAP///9UAAASqB90CJgAjAAAABwGfASkBVP//ADr/7AP3BpsCJgBDAAAABgGfcRIAAP///9UAAATOB+ACJgAjAAAABwGkAS8BZ///ADr/7AQWBp4CJgBDAAAABgGkdyUAAP///9UAAASVCEsCJgAjAAAABwGeASkBSf//ADr/7AP3BwkCJgBDAAAABgGecQcAAP///9UAAATMCB8CJgAjAAAABwGdASsBUf//ADr/7AQUBt0CJgBDAAAABgGdcw8AAP///9X+sQSwB0wCJgAjAAAAJwCcAWEBnAAHAKgErAAA//8AOv6xA/gGCgImAEMAAAAnAJwAqQBaAAcAqAQFAAD//wBY/rsE8gWwAiYAJwAAAAcAqAR3AAr//wBH/rED6wROAiYARwAAAAcAqARRAAD//wBYAAAE8gfGAiYAJwAAAAcApgSxAVP//wBH/+wD6waFAiYARwAAAAcApgQLABL//wBYAAAE8gdRAiYAJwAAAAcAoADxAWD//wBH/+wD+gYQAiYARwAAAAYAoEsfAAD//wBYAAAF2geoAiYAJwAAAAcBowC8ARb//wBH/+wFNAZoAiYARwAAAAYBoxbWAAD//wBYAAAE8gelAiYAJwAAAAcBogDGASX//wBH/+wD6wZlAiYARwAAAAYBoiDlAAD//wBYAAAFagfbAiYAJwAAAAcBoQDBAQ3//wBH/+wExAabAiYARwAAAAYBoRvNAAD//wBYAAAE8gflAiYAJwAAAAcBoADCARP//wBH/+wD6walAiYARwAAAAYBoBzTAAD//wBY/rsE8gdGAiYAJwAAACcAmgDSAV0ABwCoBHcACv//AEf+sQPrBgUCJgBHAAAAJgCaLBwABwCoBFEAAAAA//8AYgAAAwoHxgImACsAAAAHAKYDdQFT//8APgAAAqMGcAImAIoAAAAHAKYDDv/9//8AF/65AjoFsAImACsAAAAHAKgDOwAI////+v67AjEGGAImAEsAAAAHAKgDHgAK//8AXv6pBTYFxQAmADEAAAAHAKgEw//4//8ARv6oBBwETgImAFEAAAAHAKgEV//3//8AXv/rBTYH2wAmADEAAAAHAKYFBgFo//8ARv/sBBwGhAImAFEAAAAHAKYEIQAR//8AXv/rBi8HvQAmADEAAAAHAaMBEQEr//8ARv/sBUoGZwImAFEAAAAGAaMs1QAA//8AXv/rBTYHugAmADEAAAAHAaIBGwE6//8ARv/sBBwGZAImAFEAAAAGAaI25AAA//8AXv/rBb8H8AAmADEAAAAHAaEBFgEi//8ARv/sBNoGmgImAFEAAAAGAaExzAAA//8AXv/rBTYH+gAmADEAAAAHAaABFwEo//8ARv/sBBwGpAImAFEAAAAGAaAy0gAA//8AXv6pBTYHWwAmADEAAAAnAJoBJwFyAAcAqATD//j//wBG/qgEHAYEAiYAUQAAACYAmkIbAAcAqARX//cAAP//AFn/6wYlBw8CJgCUAAAABwBzAiQBSf//AEb/7AUJBd0CJgCVAAAABwBzAXgAF///AFn/6wYlBxICJgCUAAAABwBCAXgBTf//AEb/7AUJBeACJgCVAAAABwBCAMwAG///AFn/6wYlB7YCJgCUAAAABwCmBPIBQ///AEb/7AUJBoQCJgCVAAAABwCmBEYAEf//AFn/6wYlB0ECJgCUAAAABwCgATIBUP//AEb/7AUJBg8CJgCVAAAABwCgAIYAHv//AFn+sQYlBjYCJgCUAAAABwCoBLEAAP//AEb+qAUJBLACJgCVAAAABwCoBEj/9///AGf+qgVXBbACJgA3AAAABwCoBLL/+f//AFr+sQQ7BDoCJgBXAAAABwCoBAsAAP//AGf/6wVXB8YCJgA3AAAABwCmBPEBU///AFr/7AQ7BnACJgBXAAAABwCmBED//f//AGf/6walBx8CJgCWAAAABwBzAiIBWf//AFr/7AVXBcgCJgCXAAAABwBzAXIAAv//AGf/6walByICJgCWAAAABwBCAXYBXf//AFr/7AVXBcsCJgCXAAAABwBCAMYABv//AGf/6walB8YCJgCWAAAABwCmBPABU///AFr/7AVXBnACJgCXAAAABwCmBED//f//AGf/6walB1ECJgCWAAAABwCgATABYP//AFr/7AVXBfoCJgCXAAAABwCgAIAACf//AGf+qQalBg0CJgCWAAAABwCoBLH/+P//AFr+sQVXBJECJgCXAAAABwCoBAsAAP//AO7+uwVTBbACJgA7AAAABwCoBH0ACv///7z+FAQqBDoCJgBbAAAABwCoBKj/Y///AO4AAAVTB8QCJgA7AAAABwCmBLcBUf///7z+SwQqBnACJgBbAAAABwCmBAP//f//AO4AAAVTB08CJgA7AAAABwCgAPcBXv///7z+SwQqBfoCJgBbAAAABgCgQwkAAAACAET/6wUmBhgAGgAoAAABIwMjNycOASMiAj8BGgEzMhYXEyM3MzczBzMBBhYzMjY3Ey4BIyIGBwUItPedCQM8kFiwri8EOO7BWIcrN+oe6SS1JLX8AyRhiUx1M2Uba1R8nyYE0vsuaAI/QAE06hUBHAEUSEUBEZWxsfyis9FTTwH6RE/ZvQD//wAT/u4FJgYYACYARgAAACcB0wH8AkYABgBBfYMAAP//AD7+mQU1BbAAJgAtAAAABwGcA/QAAP//AED+mQRhBDoCJgDsAAAABwGcAxMAAP//AFj+mQV5BbACJgAqAAAABwGcBBwAAP//AED+mQRGBDoCJgDvAAAABwGcAzQAAP//AOz+mQULBbACJgA2AAAABwGcAggAAP//AJD+mQP3BDoCJgDxAAAABwGcAZgAAP////z+mQUdBbACJgA6AAAABwGcA5YAAP///+n+mQPxBDoCJgBaAAAABwGcAq4AAP//ANH+mQVIBbACJgDcAAAABwGcA+sAAP//AH/+mQQGBDsCJgD0AAAABwGcAvMAAP//ANH+mQVIBbACJgDcAAAABwGcAt8AAP//AH/+mQQGBDsCJgD0AAAABwGcAeYAAP//AFf+mQS5BbACJgCsAAAABwGcANMAAP//AD7+mQOVBDoCJgDnAAAABwGcAJsAAP///8r+mQddBbACJgDVAAAABwGcBeEAAP///8P+mQYBBDoCJgDpAAAABwGcBKoAAP//AK7+VAXuBcMCJgE7AAAABwGcAsn/u///ACX+WARRBE4CJgE8AAAABwGcAdL/v///ADUAAAQZBhgCBgBKAAAAAgBIAAAEkgWwABIAGwAAASMHITIWBwYEIyETIzczNzMHMwEDITI2NzYmIwKv1TEBTs/MJyv+7eH9/NzIHsgptinV/r5vAU6DsBkZZ48EUPjmwtTcBFCVy8v93v3So3qAkQAAAAIASAAABJIFsAASABsAAAEjByEyFgcGBCMhEyM3MzczBzMBAyEyNjc2JiMCr9UxAU7PzCcr/u3h/fzcyB7IKbYp1f6+bwFOg7AZGWePBFD45sLU3ARQlcvL/d790qN6gJEAAAABADQAAAS5BbAADQAAASMDIxMjNzMTIQchAzMCh/KItoirHqt9Az8e/Xdf8gKs/VQCrJUCb5b+JwAAAAABAAoAAAOVBDoADQAAASEDIxMjNzMTIQchAyECXf72X7Zfkx6TWwJ/Hv43PQEKAd/+IQHflQHGl/7RAAABAFIAAAVJBbAAFAAAASMDIxMjNzM3MwczByMDMwEzCQEjAhaJhLfnrB6sHrce8B7wRJQCI+b9awGEzwKV/WsEhZWWlpX+rwJ8/Sj9KAAAAAEASgAABDwGGAAUAAABIwMjEyM3MzczBzMHIwMzATMJASMB3HhktvPGHsYntifXHtdxdgFu1v5DARbWAfb+CgTBlcLClf3MAa3+E/2zAAD//wBY/ooFegdMAiYA1wAAACcAnAGOAZwABwAOBCz/vv//AED+igRHBfUCJgDrAAAAJwCcAMgARQAHAA4DRP++//8AWP6KBXkFsAImACoAAAAHAA4EK/++//8AQP6KBEYEOgImAO8AAAAHAA4DQ/++//8AWP6KBrMFsAImAC8AAAAHAA4FZf++//8AQP6KBX8EOgImAO4AAAAHAA4EfP++////3v6KBXEFsAImANgAAAAHAA4EI/++////1f6KBEkEOgImAO0AAAAHAA4DRv++AAEA7gAABVMFsAAQAAAJATMBMwcjBwMjEycjNzMDMwKNAffP/dpyHr0JZ7RqAdsekO7QAs0C4/z2lQ39/AIQAZUDCgAAAQBt/mAEJgQ6ABEAAAUjAyMTIzczAzMTFzM3ATMBMwLA0lG2Ucses4u5VwEDJAGCuf3/uQz+bAGUlQOx/QBTUwMA/E8AAAAAAf/8AAAFHQWwABEAAAEjASMDASMBIzczATMTATMBMwO0nQEm1+v+XdwB/Jcehf7r2d8Bm9v+HpcCnv1iAkj9uAKelQJ9/cMCPf2DAAH/6QAAA/EEOgARAAABIxMjAwEjASM3MwMzEwEzATMDDpva0J7+3dMBdaMek8zRlQEY0/6klwHh/h8Bnv5iAeGVAcT+bQGT/jwAAP//ACn/7QP9BEwCBgC6AAD////8AAAE+QWwAiYAKAAAAAcB0/9D/n7//wEAAowGCQMhAEYBhrUAZmZAAAACAE8AAAIoBbAAAwAHAAABIxMzASM3MwFltsO2/t22KLYB3gPS+lDIAAAAAAAAAAAAAAAAAAAcAFQAmgD6AVgBagGQAbYB2AH0AgoCGAIkAjICaAJ6AqgC7AMQA0YDjAOsA/oEQARMBFgEdASKBKYE2gVOBWwFqAXcBggGJAY+BnYGkAaeBrwG2gbsBxQHLgdkB4wHyggICEYIXAiACJoIxgjmCP4JFgksCToJUAloCXYJhAnKCgIKMgpqCqAKyAsQCzgLTAtyC5ALngvcDAIMNAxsDKQMxA0ADSoNUA1oDZQNsg3cDfQOLA46DnAOnA6wDugPIA9wD54PtBAgEDQQkhDYEOQQ+hFoEXYRoBHCEfASMBI+EmoShBKSErASwhLyEv4TEBMiEzQTaBOUE7QUChQ0FHYU2hUsFUgVmBXWFgQWEBYuFk4WahaaFtIXFhdwF44XyBgMGEwYfBiuGM4ZBBkaGTAZTBlaGYQZqBnKGeIaChoYGiYaMBpQGmYadBqCGpwapBq4GtAbDhskG0AbVht2G7ob6hwyHHocxBzgHTAdcB2sHdIeEB4wHmYeuB7kHxwfVh+OH7Qf3iAgIFggniDgIRwhaCGaIdQiECJGInIikCK+IuwjGiNcI3gjnCPEJAokJiRMJGwkkiS+JO4lFiVQJZIlviYIJkImVCaAJqwm8CcMJyonTCdsJ4YnmiewKBIoLihSKG4okCi6KOgpDilCKX4prCn0KiYqYCqUKsYq4isaK1IrhCvILAIsJCxKLHosrCzuLSYtdC24Lg4uZC6iLtgu/C8kL2ovrDAYMIIwyDEOMTwxaDGSMaYxxjHYMeoylDLuMyAzUDOQM6gzwDPqNBQ0PjRmNIg0qjTKNOg1FjVCNaA1+jYcNjw2ajaWNrw3AjdCN243mjfIN/Q4MDhiOJY4pji2ON45GjlyObw6BjpOOpg61jsSO0o7gDu8O/Y8JjxWPJ48njyePJ48njyePJ48njyePJ48njyePJ48qDyyPL481DzsPQI9Dj0aPSY9TD1oPZA9rD24Pcg+UD5mPn4+jD6uPtY/Fj9gP6RABEBGQJJAvkD2QQhBGkEsQT5BfEGSQbJBwEHcQjhCaELAQuhC+EMIQyxDOkNQQ2ZDlEOURIpE1EUIRSpFYEWARZ5FwkXQRgZGOkZcRopGtEbQRuxHDkceRzxHdEekR8pH5kf+SDJITEhYSHZIlEimSMhI4kkUSU5JiknISd5KAkoaSkJKYEp4SpBKwkrUSwBLQEtiS5BL1EvyTEBMhEyWTMRNBE0WTUpNjE2oTfZOOE5oTnZOqE7KTw5PMk9oT7BQKlBKUIpQ2FEUUWJRjFHSUgBSIFJAUl5SfFLCUuhS8FL4UwBTNlNsU55TvlPyU/5UClQWVCJULlQ6VEZUUlReVGpUdlSCVI5UmlSmVLJUvlTKVNZU4lTuVPpVBlUSVR5VKlU2VUJVTlVaVWZVclV+VYpVllWiVa5VulXGVdJV3lXqVfZWAlYOVhpWJlYyVj5WSlZWVmJWblZ6VoZWklaeVqpWtlbuV1BXXFdoV3RXgFeMV5hXpFewV7xXyFfUV+BX7Ff4WARYEFhKWJxYqFi0WMBYzFjYWORY8Fj8WQhZFFkgWSxZOFlEWVBZXFloWXRZgFmMWZhZpFmwWbxZyFnUWeBZ7Fn4WgRaEFocWihaNFpAWkxaWFpkWnBafFqIWpRaoFqsWrhaxFrQWtxa6Fr0WwBbDFsYWyRbMFs8W0hbVFtgW2xbeFuEW5BbnFuoW7RbwFvMW9hb5FvwW/xcCFwUXCBcLFw4XERcUFxcXKBc4FzsXPhdBF0QXRxdKF00XUBdTF1YXWRdcF18XYhdlF2gXaxduF3EXdBd3F3oXfReAF4MXhheJF4wXjxeSF5UXmBebF54XoRekF6cXqhetF7AXsxe2F7kXvBe/F8IXxRfTF9YX2RfcF98X4hflF+gX6xf5l/yX/5gCmAWYCJgLmA6YEZgUmBeYGpgdmCCYI5gmmCmYLJgvmDKYNZg4mDuYPphBmESYR5hKmE2YUJhTmFaYWZhcmF+YYphlmGiYeZh8mH+YgpiFmIiYi5iOmJGYlJiXmJqYnZigmKOYppiomKqYrJiumLCYspi0mLaYuJi6mLyYvpjAmMKYxZjImMuYzpjRmNSY15jZmNuY3ZjfmOGY5JjnmOqY7ZjwmPOY9pkGGQgZCxkNGQ8ZEhkVGRcZGRkbGR0ZIBkiGSQZJhkoGSoZLBkuGTAZMhk0GTcZORk7GUcZSRlLGU4ZURlTGVUZWBlaGV0ZYBljGWYZaRlsGW8Zchl1GXgZehl8GX8ZghmFGYcZihmNGZAZkxmWGZkZnRmgGaMZphmpGasZrRmwGbMZthm5GbwZvxnCGcUZxxnJGcsZzhnRGdMZ1hnZGdwZ3xnhGeMZ5hnpGewZ7hnxGfQZ9xn6Gf0aABoDGgYaCRoMGg8aERoTGhYaGRocGh8aIholGigaKxouGjEaNBo3GjsaPxpCGkUaRxpKGk0aUBpTGlYaWRpcGl8aYhplGmgaaxpuGnEadRp5GnwafxqCGoUaiBqLGo4akRqVGpkanBqfGqIapRqoGqsarhqxGrQatxq6Gr0awBrDGscayxrOGtEa1BrXGtoa3RrgGuMa5hrpGuwa7xryGvUa+Br7Gv8bAxsGGwkbDBsPGxIbFRsYGxsbHhshGyQbJxsqGy0bMBszGzYbORs8Gz8bQhtFG0gbSxtOG1EbVBtXG1obXRtuG3IbdRt4G3sbfhuBG4QbhxuKG40bkBuTG5YbmRucG58bohulG6gbqhu2m8MbypvSG9wb5hvqG+4b8Rv0G/cb+hv9HAAcCJwRnBscJJwmnCmcLBwsHCwcMYAAAAbAUoAAQAAAAAAAAAfAAAAAQAAAAAAAQAGAB8AAQAAAAAAAgAGACUAAQAAAAAAAwASACsAAQAAAAAABAANAD0AAQAAAAAABQAWAEoAAQAAAAAABgANAGAAAQAAAAAABwAgAG0AAQAAAAAACQAGAI0AAQAAAAAACwAKAJMAAQAAAAAADAATAJ0AAQAAAAAADQAuALAAAQAAAAAADgAqAN4AAQAAAAAAEgANAQgAAwABBAkAAAA+ARUAAwABBAkAAQAMAVMAAwABBAkAAgAMAV8AAwABBAkAAwAkAWsAAwABBAkABAAaAY8AAwABBAkABQAsAakAAwABBAkABgAaAdUAAwABBAkABwBAAe8AAwABBAkACQAMAi8AAwABBAkACwAUAjsAAwABBAkADAAmAk8AAwABBAkADQBcAnUAAwABBAkADgBUAtFGb250IGRhdGEgY29weXJpZ2h0IEdvb2dsZSAyMDEzUm9ib3RvSXRhbGljR29vZ2xlOlJvYm90bzoyMDEzUm9ib3RvIEl0YWxpY1ZlcnNpb24gMS4yMDAzMTA7IDIwMTNSb2JvdG8tSXRhbGljUm9ib3RvIGlzIGEgdHJhZGVtYXJrIG9mIEdvb2dsZS5Hb29nbGVHb29nbGUuY29tQ2hyaXN0aWFuIFJvYmVydHNvbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBSb2JvdG8gSXRhbGljAEYAbwBuAHQAIABkAGEAdABhACAAYwBvAHAAeQByAGkAZwBoAHQAIABHAG8AbwBnAGwAZQAgADIAMAAxADMAUgBvAGIAbwB0AG8ASQB0AGEAbABpAGMARwBvAG8AZwBsAGUAOgBSAG8AYgBvAHQAbwA6ADIAMAAxADMAUgBvAGIAbwB0AG8AIABJAHQAYQBsAGkAYwBWAGUAcgBzAGkAbwBuACAAMQAuADIAMAAwADMAMQAwADsAIAAyADAAMQAzAFIAbwBiAG8AdABvAC0ASQB0AGEAbABpAGMAUgBvAGIAbwB0AG8AIABpAHMAIABhACAAdAByAGEAZABlAG0AYQByAGsAIABvAGYAIABHAG8AbwBnAGwAZQAuAEcAbwBvAGcAbABlAEcAbwBvAGcAbABlAC4AYwBvAG0AQwBoAHIAaQBzAHQAaQBhAG4AIABSAG8AYgBlAHIAdABzAG8AbgBMAGkAYwBlAG4AcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAEEAcABhAGMAaABlACAATABpAGMAZQBuAHMAZQAsACAAVgBlAHIAcwBpAG8AbgAgADIALgAwAGgAdAB0AHAAOgAvAC8AdwB3AHcALgBhAHAAYQBjAGgAZQAuAG8AcgBnAC8AbABpAGMAZQBuAHMAZQBzAC8ATABJAEMARQBOAFMARQAtADIALgAwAAACAAAAAAAA/2oAZAAAAAAAAAAAAAAAAAAAAAAAAAAABB0AAAECAAIAAwAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQCjAIQAhQC9AJYA6ACGAI4AiwCdAKkApACKAQMAgwCTAPIA8wCNAJcAiAEEAN4A8QCeAKoA9QD0APYAogCQAPAAkQDtAIkAoADqALgAoQDuAQUA1wEGAOIA4wEHAQgAsACxAQkApgEKAQsBDAENAQ4BDwDYAOEA2wDcAN0A4ADZAN8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgCfASMBJAElASYBJwEoASkBKgErASwBLQCbAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0AsgCzAc4AtgC3AMQBzwC0ALUAxQCCAMIAhwHQAKsAxgC+AL8AvAHRAdIB0wHUAdUB1gHXAdgAjAHZAdoB2wHcAd0AmACaAJkA7wClAJIAnACnAI8AlACVALkB3gHfAeAAwAHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwCsAjgCOQDpAjoCOwI8AK0AyQDHAK4AYgBjAj0AZADLAGUAyADKAM8AzADNAM4AZgDTANAA0QCvAGcA1gDUANUAaADrAGoAaQBrAG0AbABuAj4AbwBxAHAAcgBzAHUAdAB2AHcAeAB6AHkAewB9AHwAfwB+AIAAgQDsALoCPwJAAkECQgJDAkQA/QD+AkUCRgJHAkgA/wEAAkkCSgJLAkwCTQJOAk8CUAJRAlICUwJUAlUCVgD4APkCVwJYAlkCWgJbAlwCXQJeAl8CYAJhAmICYwJkAmUCZgJnAmgCaQJqAmsCbAJtAm4CbwJwAnECcgJzAnQCdQJ2AncCeAJ5AnoCewJ8An0CfgJ/AoACgQKCAoMChAKFAoYChwKIAokCigD7APwCiwKMAOQA5QKNAo4CjwKQApECkgKTApQClQKWApcCmAKZApoCmwKcAp0CngKfAqACoQKiALsCowKkAqUCpgDmAOcCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CvwLAAsECwgLDAsQCxQLGAscCyALJAsoCywLMAs0CzgLPAtAC0QLSAtMC1ALVAtYC1wLYAtkC2gLbAtwC3QLeAt8C4ALhAuIC4wLkAuUC5gLnAugC6QLqAusC7ALtAu4C7wLwAvEC8gLzAvQC9QL2AvcC+AL5AvoC+wL8Av0C/gL/AwADAQMCAwMDBAMFAwYDBwMIAwkDCgMLAwwDDQMOAw8DEAMRAxIDEwMUAxUDFgMXAxgDGQMaAxsDHAMdAx4DHwMgAyEDIgMjAyQDJQMmAycDKAMpAyoDKwMsAy0DLgMvAzADMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTANNA04DTwNQA1EDUgNTA1QDVQNWA1cDWANZA1oDWwNcA10DXgNfA2ADYQNiA2MDZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UDdgN3A3gDeQN6A3sDfAN9A34DfwOAA4EDggODA4QDhQOGA4cDiAOJA4oDiwOMA40DjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOeA58DoAOhA6IDowOkA6UDpgOnA6gDqQOqA6sDrAOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA8MDxAPFA8YDxwPIA8kDygPLA8wDzQPOA88D0APRA9ID0wPUA9UD1gPXA9gD2QPaA9sD3APdA94D3wPgA+ED4gPjA+QD5QPmA+cD6APpA+oD6wPsA+0D7gPvA/AD8QPyA/MD9AP1A/YD9wP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBgQHBAgECQQKBAsEDAQNBA4EDwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQD3BCIEIwQkAAQETlVMTAZtYWNyb24OcGVyaW9kY2VudGVyZWQESGJhcgxrZ3JlZW5sYW5kaWMDRW5nA2VuZwVsb25ncwVPaG9ybgVvaG9ybgVVaG9ybgV1aG9ybgd1bmkwMjM3BXNjaHdhB3VuaTAyRjMJZ3JhdmVjb21iCWFjdXRlY29tYgl0aWxkZWNvbWIEaG9vawd1bmkwMzBGCGRvdGJlbG93BXRvbm9zDWRpZXJlc2lzdG9ub3MJYW5vdGVsZWlhBUdhbW1hBURlbHRhBVRoZXRhBkxhbWJkYQJYaQJQaQVTaWdtYQNQaGkDUHNpBWFscGhhBGJldGEFZ2FtbWEFZGVsdGEHZXBzaWxvbgR6ZXRhA2V0YQV0aGV0YQRpb3RhBmxhbWJkYQJ4aQNyaG8Gc2lnbWExBXNpZ21hA3RhdQd1cHNpbG9uA3BoaQNwc2kFb21lZ2EHdW5pMDNEMQd1bmkwM0QyB3VuaTAzRDYHdW5pMDQwMgd1bmkwNDA0B3VuaTA0MDkHdW5pMDQwQQd1bmkwNDBCB3VuaTA0MEYHdW5pMDQxMQd1bmkwNDE0B3VuaTA0MTYHdW5pMDQxNwd1bmkwNDE4B3VuaTA0MUIHdW5pMDQyMwd1bmkwNDI0B3VuaTA0MjYHdW5pMDQyNwd1bmkwNDI4B3VuaTA0MjkHdW5pMDQyQQd1bmkwNDJCB3VuaTA0MkMHdW5pMDQyRAd1bmkwNDJFB3VuaTA0MkYHdW5pMDQzMQd1bmkwNDMyB3VuaTA0MzMHdW5pMDQzNAd1bmkwNDM2B3VuaTA0MzcHdW5pMDQzOAd1bmkwNDNBB3VuaTA0M0IHdW5pMDQzQwd1bmkwNDNEB3VuaTA0M0YHdW5pMDQ0Mgd1bmkwNDQ0B3VuaTA0NDYHdW5pMDQ0Nwd1bmkwNDQ4B3VuaTA0NDkHdW5pMDQ0QQd1bmkwNDRCB3VuaTA0NEMHdW5pMDQ0RAd1bmkwNDRFB3VuaTA0NEYHdW5pMDQ1Mgd1bmkwNDU0B3VuaTA0NTkHdW5pMDQ1QQd1bmkwNDVCB3VuaTA0NUYHdW5pMDQ2MAd1bmkwNDYxB3VuaTA0NjMHdW5pMDQ2NAd1bmkwNDY1B3VuaTA0NjYHdW5pMDQ2Nwd1bmkwNDY4B3VuaTA0NjkHdW5pMDQ2QQd1bmkwNDZCB3VuaTA0NkMHdW5pMDQ2RAd1bmkwNDZFB3VuaTA0NkYHdW5pMDQ3Mgd1bmkwNDczB3VuaTA0NzQHdW5pMDQ3NQd1bmkwNDdBB3VuaTA0N0IHdW5pMDQ3Qwd1bmkwNDdEB3VuaTA0N0UHdW5pMDQ3Rgd1bmkwNDgwB3VuaTA0ODEHdW5pMDQ4Mgd1bmkwNDgzB3VuaTA0ODQHdW5pMDQ4NQd1bmkwNDg2B3VuaTA0ODgHdW5pMDQ4OQd1bmkwNDhEB3VuaTA0OEUHdW5pMDQ4Rgd1bmkwNDkwB3VuaTA0OTEHdW5pMDQ5NAd1bmkwNDk1B3VuaTA0OUMHdW5pMDQ5RAd1bmkwNEEwB3VuaTA0QTEHdW5pMDRBNAd1bmkwNEE1B3VuaTA0QTYHdW5pMDRBNwd1bmkwNEE4B3VuaTA0QTkHdW5pMDRCNAd1bmkwNEI1B3VuaTA0QjgHdW5pMDRCOQd1bmkwNEJBB3VuaTA0QkMHdW5pMDRCRAd1bmkwNEMzB3VuaTA0QzQHdW5pMDRDNwd1bmkwNEM4B3VuaTA0RDgHdW5pMDRFMAd1bmkwNEUxB3VuaTA0RkEHdW5pMDRGQgd1bmkwNTAwB3VuaTA1MDIHdW5pMDUwMwd1bmkwNTA0B3VuaTA1MDUHdW5pMDUwNgd1bmkwNTA3B3VuaTA1MDgHdW5pMDUwOQd1bmkwNTBBB3VuaTA1MEIHdW5pMDUwQwd1bmkwNTBEB3VuaTA1MEUHdW5pMDUwRgd1bmkwNTEwB3VuaTIwMDAHdW5pMjAwMQd1bmkyMDAyB3VuaTIwMDMHdW5pMjAwNAd1bmkyMDA1B3VuaTIwMDYHdW5pMjAwNwd1bmkyMDA4B3VuaTIwMDkHdW5pMjAwQQd1bmkyMDBCDXVuZGVyc2NvcmVkYmwNcXVvdGVyZXZlcnNlZAd1bmkyMDI1B3VuaTIwNzQJbnN1cGVyaW9yBGxpcmEGcGVzZXRhBEV1cm8HdW5pMjEwNQd1bmkyMTEzB3VuaTIxMTYJZXN0aW1hdGVkCW9uZWVpZ2h0aAx0aHJlZWVpZ2h0aHMLZml2ZWVpZ2h0aHMMc2V2ZW5laWdodGhzCmNvbG9uLmxudW0JcXVvdGVkYmx4C2NvbW1hYWNjZW50B3VuaUZFRkYHdW5pRkZGQwd1bmlGRkZECWZpdmUuc21jcAhmb3VyLnN1cAl6ZXJvLmxudW0ObGFyZ2VyaWdodGhvb2sMY3lyaWxsaWNob29rEGN5cmlsbGljaG9va2xlZnQLY3lyaWxsaWN0aWMOYnJldmV0aWxkZWNvbWINYnJldmVob29rY29tYg5icmV2ZWFjdXRlY29tYhNjaXJjdW1mbGV4dGlsZGVjb21iEmNpcmN1bWZsZXhob29rY29tYhNjaXJjdW1mbGV4Z3JhdmVjb21iE2NpcmN1bWZsZXhhY3V0ZWNvbWIOYnJldmVncmF2ZWNvbWIRY29tbWFhY2NlbnRyb3RhdGUGQS5zbWNwBkIuc21jcAZDLnNtY3AGRC5zbWNwBkUuc21jcAZGLnNtY3AGRy5zbWNwBkguc21jcAZJLnNtY3AGSi5zbWNwBksuc21jcAZMLnNtY3AGTS5zbWNwBk4uc21jcAZPLnNtY3AGUS5zbWNwBlIuc21jcAZTLnNtY3AGVC5zbWNwBlUuc21jcAZWLnNtY3AGVy5zbWNwBlguc21jcAZZLnNtY3AGWi5zbWNwCXplcm8uc21jcAhvbmUuc21jcAh0d28uc21jcAp0aHJlZS5zbWNwCWZvdXIuc21jcAh0d28ubG51bQhzaXguc21jcApzZXZlbi5zbWNwCmVpZ2h0LnNtY3AJbmluZS5zbWNwB29uZS5zdXAHdHdvLnN1cAl0aHJlZS5zdXAIb25lLmxudW0IZml2ZS5zdXAHc2l4LnN1cAlzZXZlbi5zdXAJZWlnaHQuc3VwCG5pbmUuc3VwCHplcm8uc3VwCGNyb3NzYmFyCXJpbmdhY3V0ZQlkYXNpYW94aWEKdGhyZWUubG51bQlmb3VyLmxudW0JZml2ZS5sbnVtCHNpeC5sbnVtBWcuYWx0CnNldmVuLmxudW0HY2hpLmFsdAplaWdodC5sbnVtCWFscGhhLmFsdAlkZWx0YS5hbHQERC5jbgRhLmNuBVIuYWx0BUsuYWx0BWsuYWx0BksuYWx0MgZrLmFsdDIJbmluZS5sbnVtBlAuc21jcA1jeXJpbGxpY2JyZXZlB3VuaTAwQUQGRGNyb2F0BGhiYXIEVGJhcgR0YmFyCkFyaW5nYWN1dGUKYXJpbmdhY3V0ZQdBbWFjcm9uB2FtYWNyb24GQWJyZXZlBmFicmV2ZQdBb2dvbmVrB2FvZ29uZWsLQ2NpcmN1bWZsZXgLY2NpcmN1bWZsZXgHdW5pMDEwQQd1bmkwMTBCBkRjYXJvbgZkY2Fyb24HRW1hY3JvbgdlbWFjcm9uBkVicmV2ZQZlYnJldmUKRWRvdGFjY2VudAplZG90YWNjZW50B0VvZ29uZWsHZW9nb25lawZFY2Fyb24GZWNhcm9uC0djaXJjdW1mbGV4C2djaXJjdW1mbGV4B3VuaTAxMjAHdW5pMDEyMQxHY29tbWFhY2NlbnQMZ2NvbW1hYWNjZW50C0hjaXJjdW1mbGV4C2hjaXJjdW1mbGV4Bkl0aWxkZQZpdGlsZGUHSW1hY3JvbgdpbWFjcm9uBklicmV2ZQZpYnJldmUHSW9nb25lawdpb2dvbmVrCklkb3RhY2NlbnQCSUoCaWoLSmNpcmN1bWZsZXgLamNpcmN1bWZsZXgMS2NvbW1hYWNjZW50DGtjb21tYWFjY2VudAZMYWN1dGUGbGFjdXRlDExjb21tYWFjY2VudAxsY29tbWFhY2NlbnQGTGNhcm9uBmxjYXJvbgRMZG90BGxkb3QGTmFjdXRlBm5hY3V0ZQxOY29tbWFhY2NlbnQMbmNvbW1hYWNjZW50Bk5jYXJvbgZuY2Fyb24LbmFwb3N0cm9waGUHT21hY3JvbgdvbWFjcm9uBk9icmV2ZQZvYnJldmUNT2h1bmdhcnVtbGF1dA1vaHVuZ2FydW1sYXV0BlJhY3V0ZQZyYWN1dGUMUmNvbW1hYWNjZW50DHJjb21tYWFjY2VudAZSY2Fyb24GcmNhcm9uBlNhY3V0ZQZzYWN1dGULU2NpcmN1bWZsZXgLc2NpcmN1bWZsZXgHdW5pMDIxOAd1bmkwMjE5B3VuaTAyMUEHdW5pMDIxQgd1bmkwMTYyB3VuaTAxNjMGVGNhcm9uBnRjYXJvbgZVdGlsZGUGdXRpbGRlB1VtYWNyb24HdW1hY3JvbgZVYnJldmUGdWJyZXZlBVVyaW5nBXVyaW5nDVVodW5nYXJ1bWxhdXQNdWh1bmdhcnVtbGF1dAdVb2dvbmVrB3VvZ29uZWsLV2NpcmN1bWZsZXgLd2NpcmN1bWZsZXgLWWNpcmN1bWZsZXgLeWNpcmN1bWZsZXgGWmFjdXRlBnphY3V0ZQpaZG90YWNjZW50Cnpkb3RhY2NlbnQHQUVhY3V0ZQdhZWFjdXRlC09zbGFzaGFjdXRlC29zbGFzaGFjdXRlC0Rjcm9hdC5zbWNwCEV0aC5zbWNwCVRiYXIuc21jcAtBZ3JhdmUuc21jcAtBYWN1dGUuc21jcBBBY2lyY3VtZmxleC5zbWNwC0F0aWxkZS5zbWNwDkFkaWVyZXNpcy5zbWNwCkFyaW5nLnNtY3APQXJpbmdhY3V0ZS5zbWNwDUNjZWRpbGxhLnNtY3ALRWdyYXZlLnNtY3ALRWFjdXRlLnNtY3AQRWNpcmN1bWZsZXguc21jcA5FZGllcmVzaXMuc21jcAtJZ3JhdmUuc21jcAtJYWN1dGUuc21jcBBJY2lyY3VtZmxleC5zbWNwDklkaWVyZXNpcy5zbWNwC050aWxkZS5zbWNwC09ncmF2ZS5zbWNwC09hY3V0ZS5zbWNwEE9jaXJjdW1mbGV4LnNtY3ALT3RpbGRlLnNtY3AOT2RpZXJlc2lzLnNtY3ALVWdyYXZlLnNtY3ALVWFjdXRlLnNtY3AQVWNpcmN1bWZsZXguc21jcA5VZGllcmVzaXMuc21jcAtZYWN1dGUuc21jcAxBbWFjcm9uLnNtY3ALQWJyZXZlLnNtY3AMQW9nb25lay5zbWNwC0NhY3V0ZS5zbWNwEENjaXJjdW1mbGV4LnNtY3AMdW5pMDEwQS5zbWNwC0NjYXJvbi5zbWNwC0RjYXJvbi5zbWNwDEVtYWNyb24uc21jcAtFYnJldmUuc21jcA9FZG90YWNjZW50LnNtY3AMRW9nb25lay5zbWNwC0VjYXJvbi5zbWNwEEdjaXJjdW1mbGV4LnNtY3ALR2JyZXZlLnNtY3AMdW5pMDEyMC5zbWNwEUdjb21tYWFjY2VudC5zbWNwEEhjaXJjdW1mbGV4LnNtY3ALSXRpbGRlLnNtY3AMSW1hY3Jvbi5zbWNwC0licmV2ZS5zbWNwDElvZ29uZWsuc21jcA9JZG90YWNjZW50LnNtY3AQSmNpcmN1bWZsZXguc21jcBFLY29tbWFhY2NlbnQuc21jcAtMYWN1dGUuc21jcBFMY29tbWFhY2NlbnQuc21jcAtMY2Fyb24uc21jcAlMZG90LnNtY3ALTmFjdXRlLnNtY3ARTmNvbW1hYWNjZW50LnNtY3ALTmNhcm9uLnNtY3AMT21hY3Jvbi5zbWNwC09icmV2ZS5zbWNwEk9odW5nYXJ1bWxhdXQuc21jcAtSYWN1dGUuc21jcBFSY29tbWFhY2NlbnQuc21jcAtSY2Fyb24uc21jcAtTYWN1dGUuc21jcBBTY2lyY3VtZmxleC5zbWNwDVNjZWRpbGxhLnNtY3ALU2Nhcm9uLnNtY3ARVGNvbW1hYWNjZW50LnNtY3ALVGNhcm9uLnNtY3ALVXRpbGRlLnNtY3AMVW1hY3Jvbi5zbWNwC1VicmV2ZS5zbWNwClVyaW5nLnNtY3ASVWh1bmdhcnVtbGF1dC5zbWNwDFVvZ29uZWsuc21jcBBXY2lyY3VtZmxleC5zbWNwEFljaXJjdW1mbGV4LnNtY3AOWWRpZXJlc2lzLnNtY3ALWmFjdXRlLnNtY3APWmRvdGFjY2VudC5zbWNwC1pjYXJvbi5zbWNwD2dlcm1hbmRibHMuc21jcApBbHBoYXRvbm9zDEVwc2lsb250b25vcwhFdGF0b25vcwlJb3RhdG9ub3MMT21pY3JvbnRvbm9zDFVwc2lsb250b25vcwpPbWVnYXRvbm9zEWlvdGFkaWVyZXNpc3Rvbm9zBUFscGhhBEJldGEHRXBzaWxvbgRaZXRhA0V0YQRJb3RhBUthcHBhAk11Ak51B09taWNyb24DUmhvA1RhdQdVcHNpbG9uA0NoaQxJb3RhZGllcmVzaXMPVXBzaWxvbmRpZXJlc2lzCmFscGhhdG9ub3MMZXBzaWxvbnRvbm9zCGV0YXRvbm9zCWlvdGF0b25vcxR1cHNpbG9uZGllcmVzaXN0b25vcwVrYXBwYQdvbWljcm9uB3VuaTAzQkMCbnUDY2hpDGlvdGFkaWVyZXNpcw91cHNpbG9uZGllcmVzaXMMb21pY3JvbnRvbm9zDHVwc2lsb250b25vcwpvbWVnYXRvbm9zB3VuaTA0MDEHdW5pMDQwMwd1bmkwNDA1B3VuaTA0MDYHdW5pMDQwNwd1bmkwNDA4B3VuaTA0MUEHdW5pMDQwQwd1bmkwNDBFB3VuaTA0MTAHdW5pMDQxMgd1bmkwNDEzB3VuaTA0MTUHdW5pMDQxOQd1bmkwNDFDB3VuaTA0MUQHdW5pMDQxRQd1bmkwNDFGB3VuaTA0MjAHdW5pMDQyMQd1bmkwNDIyB3VuaTA0MjUHdW5pMDQzMAd1bmkwNDM1B3VuaTA0MzkHdW5pMDQzRQd1bmkwNDQwB3VuaTA0NDEHdW5pMDQ0Mwd1bmkwNDQ1B3VuaTA0NTEHdW5pMDQ1Mwd1bmkwNDU1B3VuaTA0NTYHdW5pMDQ1Nwd1bmkwNDU4B3VuaTA0NUMHdW5pMDQ1RQZXZ3JhdmUGd2dyYXZlBldhY3V0ZQZ3YWN1dGUJV2RpZXJlc2lzCXdkaWVyZXNpcwZZZ3JhdmUGeWdyYXZlBm1pbnV0ZQZzZWNvbmQJZXhjbGFtZGJsB3VuaUZCMDIHdW5pMDFGMAd1bmkwMkJDB3VuaTFFM0UHdW5pMUUzRgd1bmkxRTAwB3VuaTFFMDEHdW5pMUY0RAd1bmlGQjAzB3VuaUZCMDQHdW5pMDQwMAd1bmkwNDBEB3VuaTA0NTAHdW5pMDQ1RAd1bmkwNDcwB3VuaTA0NzEHdW5pMDQ3Ngd1bmkwNDc3B3VuaTA0NzkHdW5pMDQ3OAd1bmkwNDk4B3VuaTA0OTkHdW5pMDRBQQd1bmkwNEFCB3VuaTA0QUUHdW5pMDRBRgd1bmkwNEMwB3VuaTA0QzEHdW5pMDRDMgd1bmkwNENGB3VuaTA0RDAHdW5pMDREMQd1bmkwNEQyB3VuaTA0RDMHdW5pMDRENAd1bmkwNEQ1B3VuaTA0RDYHdW5pMDRENwd1bmkwNERBB3VuaTA0RDkHdW5pMDREQgd1bmkwNERDB3VuaTA0REQHdW5pMDRERQd1bmkwNERGB3VuaTA0RTIHdW5pMDRFMwd1bmkwNEU0B3VuaTA0RTUHdW5pMDRFNgd1bmkwNEU3B3VuaTA0RTgHdW5pMDRFOQd1bmkwNEVBB3VuaTA0RUIHdW5pMDRFQwd1bmkwNEVEB3VuaTA0RUUHdW5pMDRFRgd1bmkwNEYwB3VuaTA0RjEHdW5pMDRGMgd1bmkwNEYzB3VuaTA0RjQHdW5pMDRGNQd1bmkwNEY4B3VuaTA0RjkHdW5pMDRGQwd1bmkwNEZEB3VuaTA1MDEHdW5pMDUxMgd1bmkwNTEzB3VuaTFFQTAHdW5pMUVBMQd1bmkxRUEyB3VuaTFFQTMHdW5pMUVBNAd1bmkxRUE1B3VuaTFFQTYHdW5pMUVBNwd1bmkxRUE4B3VuaTFFQTkHdW5pMUVBQQd1bmkxRUFCB3VuaTFFQUMHdW5pMUVBRAd1bmkxRUFFB3VuaTFFQUYHdW5pMUVCMAd1bmkxRUIxB3VuaTFFQjIHdW5pMUVCMwd1bmkxRUI0B3VuaTFFQjUHdW5pMUVCNgd1bmkxRUI3B3VuaTFFQjgHdW5pMUVCOQd1bmkxRUJBB3VuaTFFQkIHdW5pMUVCQwd1bmkxRUJEB3VuaTFFQkUHdW5pMUVCRgd1bmkxRUMwB3VuaTFFQzEHdW5pMUVDMgd1bmkxRUMzB3VuaTFFQzQHdW5pMUVDNQd1bmkxRUM2B3VuaTFFQzcHdW5pMUVDOAd1bmkxRUM5B3VuaTFFQ0EHdW5pMUVDQgd1bmkxRUNDB3VuaTFFQ0QHdW5pMUVDRQd1bmkxRUNGB3VuaTFFRDAHdW5pMUVEMQd1bmkxRUQyB3VuaTFFRDMHdW5pMUVENAd1bmkxRUQ1B3VuaTFFRDYHdW5pMUVENwd1bmkxRUQ4B3VuaTFFRDkHdW5pMUVEQQd1bmkxRURCB3VuaTFFREMHdW5pMUVERAd1bmkxRURFB3VuaTFFREYHdW5pMUVFMAd1bmkxRUUxB3VuaTFFRTIHdW5pMUVFMwd1bmkxRUU0B3VuaTFFRTUHdW5pMUVFNgd1bmkxRUU3B3VuaTFFRTgHdW5pMUVFOQd1bmkxRUVBB3VuaTFFRUIHdW5pMUVFQwd1bmkxRUVEB3VuaTFFRUUHdW5pMUVFRgd1bmkxRUYwB3VuaTFFRjEHdW5pMUVGNAd1bmkxRUY1B3VuaTFFRjYHdW5pMUVGNwd1bmkxRUY4B3VuaTFFRjkGZGNyb2F0B3VuaTIwQUIHdW5pMDQ5QQd1bmkwNDlCB3VuaTA0QTIHdW5pMDRBMwd1bmkwNEFDB3VuaTA0QUQHdW5pMDRCMgd1bmkwNEIzB3VuaTA0QjYHdW5pMDRCNwd1bmkwNENCB3VuaTA0Q0MHdW5pMDRGNgd1bmkwNEY3B3VuaTA0OTYHdW5pMDQ5Nwd1bmkwNEJFB3VuaTA0QkYHdW5pMDRCQgd1bmkwNDhDB3VuaTA0NjIHdW5pMDQ5Mgd1bmkwNDkzB3VuaTA0OUUHdW5pMDQ5Rgd1bmkwNDhBB3VuaTA0OEIHdW5pMDRDOQd1bmkwNENBB3VuaTA0Q0QHdW5pMDRDRQd1bmkwNEM1B3VuaTA0QzYHdW5pMDRCMAd1bmkwNEIxB3VuaTA0RkUHdW5pMDRGRgd1bmkwNTExB3VuaTIwMTUHdW5pMDAwMgd1bmkwMDA5AAAAAAEAAAAMAAAAAAAAAAIACADKAMoAAQEeASQAAQFWAWEAAQF2AXYAAQF7AXwAAQF+AX4AAQGTAZUAAQHVAdUAAQAAAAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAA//8AAQAAAAFrZXJuAAgAAAABAAAAAQAEAAIAAAAEAA5NaFUGc1wAAXrYAAQAAAGtA2QDagNwA3YD6APyBAQEKgRABEoEbASOBJQE4gUQBTIFVAV6BaAFpgaMBpIGuAbeB0AH0gf0CBIILAgyCEAIRghMCFIIeAiSCKAIvgjECOII/AkCCcQKNgpcCs4K1AreCuQK6grwCw4LHAtGC0wLYgt8C4ILnAuiC6gL3gvkC+4MHAxCDGgMigysDM4M/A1eDXQNlg24DgIOJA5GDngOng7EDs4O2A7yDwQPDg8oDy4PRA+SD6wPxg/cD/4QIBA6EEAQYhCEEKYRGBE+EWQRghGcEl4SaBK2EwQTDhMUExoTIBMmEywTUhNcE2ITdBOeE7QTxhPYE/4UBBQaFCQUNhRcFHIUeBR+FJgUnhTEFOoV0BZCFrQXJheYGAoYfBjuGQAZFhksGUIZWBl6GZwZvhngGgIaKBpOGnQamhrAGsYazBrSGtgbahuIG6YbxBviHAAcHhw8HEIcSBxOHFQcWhyAHKYczBzyHRgdNh1UHcYd5B5WHnQe5h8EHxYfKB86H0wfch+IH44fpB+qH8Afxh/cH+If+B/+ICAgJiBIIGogjCCuINAg1iEkIVIhgCGuIdwh/iIEIiYiLCJOIlQiWiKAIqYizCLyIxgjPiNMI1ojaCROJTQmGiYgJiYmLCYyJjgmPiZkJvYnFCemJ8gn6igMKH4olCi2KNgo/imQKgIqDCoiKkQqZiqIKtYq+CsaK0ArZixMLN4tQC1iLfQt+i4gLj4uZC56LzwvXi+AL4Yv1DAiMGww3jDoMaoxwDHiMgQyKjJQMmIzSDOqM8gzzjP0NA40LDQyNDg0QjRgNIY0rDTSNWQ1gjWINY41lDW2Nbw2LjZMNnI2iDaONrQ20jbkN3Y3lDe2OBg4HjhAOLI40DlCOWA5djl8OYI5iDnqOfA6Fjo8OmI6fDrGOuQ7LjtMO5Y7tDwWPBw8jjysPR49PD2uPcw+Pj5cPs4+7D9eP3w/7kAMQH5AnEEOQSxBnkG8Qi5CTEK+QtxC8kL4Qw5DFEMqQzBDRkNMQ2JDaEN+Q4RDmkOgQ7ZDvEPeRABEJkRMRHJEmES+RORFCkUwRVZFfEWiRchF7kYURjpGQEZGRthG9keIR6ZIOEhWSKRIxkmsSg5KFErWSuBLQktIS05LdEw2TIRMpkzIAAEAWQALAAEAWQALAAEAEf8gABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAIBDAALAVP/5gAEAAv/5gA///QAX//vATz/7QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AACAFT/5gGn/8AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAaf/6wATAFn/wQCz/8UAxf+0AOX/1wDx/7kBBP+yARf/0gEb/8gBL/+gATn/xQFB/+QBSv/MAUz/zAFU/8sBVf/vAan/6AGt/+YBtf/nAbb/5wALAFn/pAGnABMBqf/zAa3/8QG1//IBtv/xAbn/OwG6/9oBu/9UAbz/kQG+/z8ACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAVgAOAH//nwC//94Awv/lANT/qADo/8oBRv/jAaf/xgHf//UAAQGnAA4AOQBU/7UAWf/HAGv+uAB6/ygAf/9NAIT/jgCH/6EAs/+uALr/fgC+/2cAwf+HAML/ZQDF/54Ax/9qAMj/cwDJ/14A1P+lAOEADwDl/+QA5v+gAOj/dADq/4AA8f+yAPj/fQD6/4AA/P95AQL/fQEE/38BF/+YARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBp/+vAan/uQGt/7kBtf+5Abb/uQG4/7wBuf/xAbz/8QG9/+0B3P+pAd//yQABAaf/6wAJAAsAFAA/ABEAVP/iAF8AEwGn/7QBqf/ZAa3/2QG1/9kBtv/ZAAkACwAPAD8ADABU/+sAXwAOAaf/ywGp/+kBrf/nAbX/5wG2/+cAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAgAWf/lALP/ywDI/+QBpwANAan/7QGt/+sBtf/sAbb/7AAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAGAMX/6gDo/+4A8f+wAS//7AFU/+wB3P/oAAEA8f/1AAMACwAUAD8AEgBfABMAAQDx/8AAAQDx/8AAAQDx/8AACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAGAMX/6gDo/+4A8f+wAS//7AFU/+wB3P/oAAMASAAPAFYAIABZABEABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAAQEX//EABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UABgDF/+oA6P/uAPH/sAEv/+wBVP/sAdz/6AABAPH/9QAwAFT/bQBZ/4wAa/2/AHr+fQB//rwAhP8rAIf/SwCz/2EAuv8PAL7+6ADB/x8Awv7lAMX/RgDH/u0AyP79AMn+2QDU/1IA4QAFAOX/vQDm/0kA6P7+AOr/EwDx/2gA+P8OAPr/EwD8/wcBAv8OAQT/EQEX/zwBG/+sASf/FQEp/zwBLf8OAS//agEz/0kBOf8MATv/PwE8/vEBQf/AAUb+7wFK/zEBTP9fAVD/CgFTAAUBVP8wAVX/1QHc/1kB3/+PABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAAQC/AA0AAgCz/8IAvwAQAAEAv//iAAEAwv/yAAEAvwAOAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAMAxf/tAPH/wAHc/+wACgC6/+YAvf/rAL7/6QDA//AAwf/nAMX/4wDH/84AyP/UAMn/2wHf/+4AAQDx/8AABQC9/+wAvwAPAMH/6gDF/8QAx//nAAYASP/pAL3/7gC/ABAAwf/sAMX/IAHc/9oAAQC/AA8ABgDF/+oA6P/uAPH/qwEv/+wBVP/sAdz/6AABAPH/1QABAMUACwANAEgADADBAAsAxQAMAaf/vwGp/+4Brf/sAbX/7QG2/+wBuP/1AbkADgG7AA0BvgANAd//7QABAPH/2AACAPH/qgHc/+EACwDh/9QA8f/JAQT/5QEb/+MBL//EATj/4QFJ/9QBSv/1AUv/5wFT/9IBVP/JAAkA4f/DAPH/zwEv/84BOP/nATv/3wFJ/9EBS//sAVP/oAFU/9EACQDh/8MA8f/PAS//zgE4/+cBO//fAUn/0QFL/+wBU/+gAVT/0QAIAOH/yQDx/98BBP/tARv/6wEv/98BO//pAUr/9QFU/+AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA4f/mAPH/0AEv/84BOP/oAUn/5wFL/+0BU//mAVT/0AALANQAFADh/+AA6AATATj/4QE5/+ABPP/hAUH/6QFJ/98BS//eAVP/3wFV//IAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AAFABn/8gDh//EBSf/yAUv/8gFT//IACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QADADUABMA4f/mAOL/9ADoABIA8f/nAS//5wE4/+UBOf/oAUn/5gFL/+YBU//mAVT/5wAJAOH/wwDx/88BL//OATj/5wE7/98BSf/RAUv/7AFT/6ABVP/RAAkA4f/DAPH/zwEv/84BOP/nATv/3wFJ/9EBS//sAVP/oAFU/9EAAgDU/+IBU//kAAIA1P/hAOj/5AAGAOj/7gDx/+4BBP/0ARv/8QEv/+8BVP/vAAQA8f/0AQT/9QEv//UBVP/1AAIA6P/JARf/7gAGAOgAFADx/+0A9//iAS//7QE5/+0BVP/tAAEBF//xAAUBF//rAan/6wGt/+kBtf/rAbb/6wATAEgADQDC/6sAw//AAMf/1QDo/6oBF//iARsADAFKAAsBTAALAaf/vwGp/+4Brf/sAbX/7QG2/+wBuP/1AbkADgG7AA0BvgANAd//sAAGAMX/6gDo/+4A8f+wAS//7AFU/+wB3P/oAAYA6AAUAPH/8AD8AAwBL//wATn/5gFU//AABQDoADoA8f/jAS//4gE5/+MBVP/jAAgA8f+6AQT/zwEb/9sBL/9QATn/nQFK//ABTP/yAVT/TAAIAPH/ugEE/88BG//bAS//UAE5/50BSv/wAUz/8gFU/0wABgDF/+oA6P/uAPH/sAEv/+wBVP/sAdz/6AABAOj/7wAIAPH/ugEE/88BG//bAS//UAE5/50BSv/wAUz/8gFU/0wACADx/7oBBP/PARv/2wEv/1ABOf+dAUr/8AFM//IBVP9MAAgA8f+6AQT/zwEb/9sBL/9QATn/nQFK//ABTP/yAVT/TAAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkACwAUAD8AEQBU/+IAXwATAaf/tAGp/9kBrf/ZAbX/2QG2/9kABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UABgDF/+oA6P/uAPH/sAEv/+wBVP/sAdz/6AAwAFT/bQBZ/4wAa/2/AHr+fQB//rwAhP8rAIf/SwCz/2EAuv8PAL7+6ADB/x8Awv7lAMX/RgDH/u0AyP79AMn+2QDU/1IA4QAFAOX/vQDm/0kA6P7+AOr/EwDx/2gA+P8OAPr/EwD8/wcBAv8OAQT/EQEX/zwBG/+sASf/FQEp/zwBLf8OAS//agEz/0kBOf8MATv/PwE8/vEBQf/AAUb+7wFK/zEBTP9fAVD/CgFTAAUBVP8wAVX/1QHc/1kB3/+PAAIA6P/JARf/7gATAFn/wQCz/8UAxf+0AOX/1wDx/7kBBP+yARf/0gEb/8gBL/+gATn/xQFB/+QBSv/MAUz/zAFU/8sBVf/vAan/6AGt/+YBtf/nAbb/5wATAFn/wQCz/8UAxf+0AOX/1wDx/7kBBP+yARf/0gEb/8gBL/+gATn/xQFB/+QBSv/MAUz/zAFU/8sBVf/vAan/6AGt/+YBtf/nAbb/5wACAOj/yQEX/+4AAQBZAAsAAQBZAAsAAQBZAAsAAQBZAAsAAQBZAAsACQGp//IBrf/yAbX/8gG2//IBuf/AAbr/7AG7/8cBvP/YAb7/vwACAbv/7gG8//UAAQGn/9IABAGp/+sBrf/pAbX/6wG2/+sACgGnABEBqf/wAa3/7gG1/+8Btv/wAbn/uwG6/+wBu/+3Abz/1QG+/7QABQGn//MBuf/uAbv/8QG9/+wBvv/qAAQBuf/pAbv/6wG8//EBvv/lAAQBuf/yAbv/8QG8//UBvv/uAAkBp/+/Aan/7gGt/+wBtf/tAbb/7AG4//UBuQAOAbsADQG+AA0AAQGn/+8ABQGn/8cBqf/yAa3/8AG1//ABtv/wAAIBp//cAbkADgAEAan/7QGt/+sBtf/rAbb/6wAJAaf/wAGp/+0Brf/rAbX/6wG2/+sBuQAPAbsAEAG8AA0BvgAQAAUBpwAMAan/8AGt//ABtf/wAbb/8AABAdf/agABAdf/FQAGAEgACwC6//IAx//xAMn/7wHcAA8B3//uAAEBp//VAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QA5AFT/tQBZ/8cAa/64AHr/KAB//00AhP+OAIf/oQCz/64Auv9+AL7/ZwDB/4cAwv9lAMX/ngDH/2oAyP9zAMn/XgDU/6UA4QAPAOX/5ADm/6AA6P90AOr/gADx/7IA+P99APr/gAD8/3kBAv99AQT/fwEX/5gBG//aASf/gQEp/5gBLf99AS//swEz/6ABOf98ATv/mgE8/2wBQf/mAUb/awFK/5IBTP+tAVD/ewFTAA8BVP+RAVX/8gGn/68Bqf+5Aa3/uQG1/7kBtv+5Abj/vAG5//EBvP/xAb3/7QHc/6kB3//JABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAQAC//mAD//9ABf/+8BPP/tAAUASP/uAFn/6gG7//ABvP/tAb7/8AAFAEj/7gBZ/+oBu//wAbz/7QG+//AABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAUASP/uAFn/6gG7//ABvP/tAb7/8AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QABAaf/6wABAaf/6wABAaf/6wABAaf/6wAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAEA8f/1AAEA8f/1AAEA8f/1AAEA8f/1AAEA8f/AAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAEAAv/5gA///QAX//vATz/7QAEAAv/5gA///QAX//vATz/7QAEAAv/5gA///QAX//vATz/7QAEAAv/5gA///QAX//vATz/7QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEA8f/AAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQGn/+sAEwBZ/8EAs//FAMX/tADl/9cA8f+5AQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGp/+gBrf/mAbX/5wG2/+cACwBZ/6QBpwATAan/8wGt//EBtf/yAbb/8QG5/zsBuv/aAbv/VAG8/5EBvv8/AAsAWf+kAacAEwGp//MBrf/xAbX/8gG2//EBuf87Abr/2gG7/1QBvP+RAb7/PwALAFn/pAGnABMBqf/zAa3/8QG1//IBtv/xAbn/OwG6/9oBu/9UAbz/kQG+/z8ACwBZ/6QBpwATAan/8wGt//EBtf/yAbb/8QG5/zsBuv/aAbv/VAG8/5EBvv8/AAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAPH/wAAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/8AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEA8f/AAAEA8f/AAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAMASAAPAFYAIABZABEAAwBIAA8AVgAgAFkAEQADAEgADwBWACAAWQARADkAVP+1AFn/xwBr/rgAev8oAH//TQCE/44Ah/+hALP/rgC6/34Avv9nAMH/hwDC/2UAxf+eAMf/agDI/3MAyf9eANT/pQDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+v+AAPz/eQEC/30BBP9/ARf/mAEb/9oBJ/+BASn/mAEt/30BL/+zATP/oAE5/3wBO/+aATz/bAFB/+YBRv9rAUr/kgFM/60BUP97AVMADwFU/5EBVf/yAaf/rwGp/7kBrf+5AbX/uQG2/7kBuP+8Abn/8QG8//EBvf/tAdz/qQHf/8kAOQBU/7UAWf/HAGv+uAB6/ygAf/9NAIT/jgCH/6EAs/+uALr/fgC+/2cAwf+HAML/ZQDF/54Ax/9qAMj/cwDJ/14A1P+lAOEADwDl/+QA5v+gAOj/dADq/4AA8f+yAPj/fQD6/4AA/P95AQL/fQEE/38BF/+YARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBp/+vAan/uQGt/7kBtf+5Abb/uQG4/7wBuf/xAbz/8QG9/+0B3P+pAd//yQA5AFT/tQBZ/8cAa/64AHr/KAB//00AhP+OAIf/oQCz/64Auv9+AL7/ZwDB/4cAwv9lAMX/ngDH/2oAyP9zAMn/XgDU/6UA4QAPAOX/5ADm/6AA6P90AOr/gADx/7IA+P99APr/gAD8/3kBAv99AQT/fwEX/5gBG//aASf/gQEp/5gBLf99AS//swEz/6ABOf98ATv/mgE8/2wBQf/mAUb/awFK/5IBTP+tAVD/ewFTAA8BVP+RAVX/8gGn/68Bqf+5Aa3/uQG1/7kBtv+5Abj/vAG5//EBvP/xAb3/7QHc/6kB3//JAAEBp//rAAEBp//rAAEBp//rAAEBp//rAAEBp//rAAEBp//rAAkACwAPAD8ADABU/+sAXwAOAaf/ywGp/+kBrf/nAbX/5wG2/+cAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAgAWf/lALP/ywDI/+QBpwANAan/7QGt/+sBtf/sAbb/7AAIAFn/5QCz/8sAyP/kAacADQGp/+0Brf/rAbX/7AG2/+wACABZ/+UAs//LAMj/5AGnAA0Bqf/tAa3/6wG1/+wBtv/sABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAUASP/uAFn/6gG7//ABvP/tAb7/8AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAACAQwACwFT/+YABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAgAWf/lALP/ywDI/+QBpwANAan/7QGt/+sBtf/sAbb/7AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kABMAWf/BALP/xQDF/7QA5f/XAPH/uQEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8Bqf/oAa3/5gG1/+cBtv/nAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAFYADgB//58Av//eAML/5QDU/6gA6P/KAUb/4wGn/8YB3//1ADkAVP+1AFn/xwBr/rgAev8oAH//TQCE/44Ah/+hALP/rgC6/34Avv9nAMH/hwDC/2UAxf+eAMf/agDI/3MAyf9eANT/pQDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+v+AAPz/eQEC/30BBP9/ARf/mAEb/9oBJ/+BASn/mAEt/30BL/+zATP/oAE5/3wBO/+aATz/bAFB/+YBRv9rAUr/kgFM/60BUP97AVMADwFU/5EBVf/yAaf/rwGp/7kBrf+5AbX/uQG2/7kBuP+8Abn/8QG8//EBvf/tAdz/qQHf/8kAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAEA8f/AAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAFAEj/7gBZ/+oBu//wAbz/7QG+//AAMABU/20AWf+MAGv9vwB6/n0Af/68AIT/KwCH/0sAs/9hALr/DwC+/ugAwf8fAML+5QDF/0YAx/7tAMj+/QDJ/tkA1P9SAOEABQDl/70A5v9JAOj+/gDq/xMA8f9oAPj/DgD6/xMA/P8HAQL/DgEE/xEBF/88ARv/rAEn/xUBKf88AS3/DgEv/2oBM/9JATn/DAE7/z8BPP7xAUH/wAFG/u8BSv8xAUz/XwFQ/woBUwAFAVT/MAFV/9UB3P9ZAd//jwAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEBp//rABMAWf/BALP/xQDF/7QA5f/XAPH/uQEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8Bqf/oAa3/5gG1/+cBtv/nABMAWf/BALP/xQDF/7QA5f/XAPH/uQEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8Bqf/oAa3/5gG1/+cBtv/nABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAAgEMAAsBU//mADAAVP9tAFn/jABr/b8Aev59AH/+vACE/ysAh/9LALP/YQC6/w8Avv7oAMH/HwDC/uUAxf9GAMf+7QDI/v0Ayf7ZANT/UgDhAAUA5f+9AOb/SQDo/v4A6v8TAPH/aAD4/w4A+v8TAPz/BwEC/w4BBP8RARf/PAEb/6wBJ/8VASn/PAEt/w4BL/9qATP/SQE5/wwBO/8/ATz+8QFB/8ABRv7vAUr/MQFM/18BUP8KAVMABQFU/zABVf/VAdz/WQHf/48ABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAFYADgB//58Av//eAML/5QDU/6gA6P/KAUb/4wGn/8YB3//1AAQAC//mAD//9ABf/+8BPP/tADkAVP+1AFn/xwBr/rgAev8oAH//TQCE/44Ah/+hALP/rgC6/34Avv9nAMH/hwDC/2UAxf+eAMf/agDI/3MAyf9eANT/pQDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+v+AAPz/eQEC/30BBP9/ARf/mAEb/9oBJ/+BASn/mAEt/30BL/+zATP/oAE5/3wBO/+aATz/bAFB/+YBRv9rAUr/kgFM/60BUP97AVMADwFU/5EBVf/yAaf/rwGp/7kBrf+5AbX/uQG2/7kBuP+8Abn/8QG8//EBvf/tAdz/qQHf/8kAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wABAPH/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAYAxf/qAOj/7gDx/7ABL//sAVT/7AHc/+gABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAAQEX//EAAQDx//UAAgDo/8kBF//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAkACwAPAD8ADABU/+sAXwAOAaf/ywGp/+kBrf/nAbX/5wG2/+cACQALAA8APwAMAFT/6wBfAA4Bp//LAan/6QGt/+cBtf/nAbb/5wAJAAsADwA/AAwAVP/rAF8ADgGn/8sBqf/pAa3/5wG1/+cBtv/nACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAAQBZAAsAAQBZAAsAAQBZAAsACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEA8f/AABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAkACwAUAD8AEQBU/+IAXwATAaf/tAGp/9kBrf/ZAbX/2QG2/9kABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UABAAL/+YAP//0AF//7wE8/+0AJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AABARf/8QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAEA8f/1AAEA8f/1ABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAan/6QGt/+cBtf/nAbb/6QHf//AAAQEX//EACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oABgDF/+oA6P/uAPH/sAEv/+wBVP/sAdz/6AASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAEgDU/64A4QASAOb/4ADo/60A6v/WAPj/3wD8/9IBAv/gARf/zgEn/90BKf/iAS3/4AEz/+ABOf/pATz/2gFG/70BUP/fAVMAEQAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAEBF//xABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gABAaf/6wABAaf/6wAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QATAFn/wQCz/8UAxf+0AOX/1wDx/7kBBP+yARf/0gEb/8gBL/+gATn/xQFB/+QBSv/MAUz/zAFU/8sBVf/vAan/6AGt/+YBtf/nAbb/5wAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAOQBU/7UAWf/HAGv+uAB6/ygAf/9NAIT/jgCH/6EAs/+uALr/fgC+/2cAwf+HAML/ZQDF/54Ax/9qAMj/cwDJ/14A1P+lAOEADwDl/+QA5v+gAOj/dADq/4AA8f+yAPj/fQD6/4AA/P95AQL/fQEE/38BF/+YARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBp/+vAan/uQGt/7kBtf+5Abb/uQG4/7wBuf/xAbz/8QG9/+0B3P+pAd//yQAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAEBF//xADAAVP9tAFn/jABr/b8Aev59AH/+vACE/ysAh/9LALP/YQC6/w8Avv7oAMH/HwDC/uUAxf9GAMf+7QDI/v0Ayf7ZANT/UgDhAAUA5f+9AOb/SQDo/v4A6v8TAPH/aAD4/w4A+v8TAPz/BwEC/w4BBP8RARf/PAEb/6wBJ/8VASn/PAEt/w4BL/9qATP/SQE5/wwBO/8/ATz+8QFB/8ABRv7vAUr/MQFM/18BUP8KAVMABQFU/zABVf/VAdz/WQHf/48AAgDo/8kBF//uABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAan/6QGt/+cBtf/nAbb/6QHf//AAAQEX//EAAQDx/8AACQDh/8MA8f/PAS//zgE4/+cBO//fAUn/0QFL/+wBU/+gAVT/0QAwAFT/bQBZ/4wAa/2/AHr+fQB//rwAhP8rAIf/SwCz/2EAuv8PAL7+6ADB/x8Awv7lAMX/RgDH/u0AyP79AMn+2QDU/1IA4QAFAOX/vQDm/0kA6P7+AOr/EwDx/2gA+P8OAPr/EwD8/wcBAv8OAQT/EQEX/zwBG/+sASf/FQEp/zwBLf8OAS//agEz/0kBOf8MATv/PwE8/vEBQf/AAUb+7wFK/zEBTP9fAVD/CgFTAAUBVP8wAVX/1QHc/1kB3/+PABMAWf/BALP/xQDF/7QA5f/XAPH/uQEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8Bqf/oAa3/5gG1/+cBtv/nAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gABMLIABAAAAAoAHgB0A6YEJASOBNAF7gbkB0IHXAAVADgAFAA5ABIAOwAWARQAFAILABYCkgASApQAFgKWABYC/QAWAwwAFgMPABYDRQASA0cAEgNJABIDSwAWA2AAFANoABYD6gAWA+wAFgPuABYEEwAWAMwADv8WABD/FgAj/1YALP74ADYAFABD/94ARf/rAEb/6wBH/+sASf/rAFH/6wBT/+sAV//qAFj/6ABb/+gAkf/rAJX/6wCX/+oArf9WAK//VgC2/+sAuP/oAMP/6wDE/+sAxv/qAM0AFADRABQA8v/rAP7/6wEI/1YBE//rARX/6AEZ/+sBHf/rAS4AFAE1/+sBNgAUAUf/6wFI/+sBUv/rAWf/FgFr/xYBb/8WAXD/FgHx/1YB8v9WAfP/VgH0/1YB9f9WAfb/VgH3/1YCDP/eAg3/3gIO/94CD//eAhD/3gIR/94CEv/eAhP/6wIU/+sCFf/rAhb/6wIX/+sCHf/rAh7/6wIf/+sCIP/rAiH/6wIi/+oCI//qAiT/6gIl/+oCJv/oAif/6AIo/1YCKf/eAir/VgIr/94CLP9WAi3/3gIv/+sCMf/rAjP/6wI1/+sCN//rAjn/6wI7/+sCPf/rAj//6wJB/+sCQ//rAkX/6wJH/+sCSf/rAlf++AJr/+sCbf/rAm//6wKAABQCggAUAoQAFAKH/+oCif/qAov/6gKN/+oCj//qApH/6gKV/+gC+P9WAwD/VgMQ/+sDFP/qAxb/6wMY/+gDG//qAxz/6wMd/+oDJP74Ayj/VgMzABQDNf/eAzb/6wM4/+sDOv/rAzv/6AM9/+sDRP/oA0z/6ANV/1YDVv/eA1z/6wNh/+gDYv/rA2f/6wNp/+gDbv9WA2//3gNw/1YDcf/eA3X/6wN3/+sDeP/rA4L/6wOE/+sDhv/rA4r/6AOM/+gDjv/oA5X/6wOY/1YDmf/eA5r/VgOb/94DnP9WA53/3gOe/1YDn//eA6D/VgOh/94Dov9WA6P/3gOk/1YDpf/eA6b/VgOn/94DqP9WA6n/3gOq/1YDq//eA6z/VgOt/94Drv9WA6//3gOx/+sDs//rA7X/6wO3/+sDuf/rA7v/6wO9/+sDv//rA8X/6wPH/+sDyf/rA8v/6wPN/+sDz//rA9H/6wPT/+sD1f/rA9f/6wPZ/+sD2//rA93/6gPf/+oD4f/qA+P/6gPl/+oD5//qA+n/6gPr/+gD7f/oA+//6AP2ABQAHwA2/9UAOP/kADn/7AA7/90Azf/VANH/1QEU/+QBLv/VATb/1QIL/90CgP/VAoL/1QKE/9UCkv/sApT/3QKW/90C/f/dAwz/3QMP/90DM//VA0X/7ANH/+wDSf/sA0v/3QNg/+QDaP/dA+r/3QPs/90D7v/dA/b/1QQT/90AGgA2/7AAOP/tADv/0ADN/7AA0f+wART/7QEu/7ABNv+wAgv/0AKA/7ACgv+wAoT/sAKU/9AClv/QAv3/0AMM/9ADD//QAzP/sANL/9ADYP/tA2j/0APq/9AD7P/QA+7/0AP2/7AEE//QABAALP/uADf/7gIH/+4CCP/uAgn/7gIK/+4CV//uAob/7gKI/+4Civ/uAoz/7gKO/+4CkP/uAyT/7gPc/+4D3v/uAEcABAAQAAkAEABF/+gARv/oAEf/6ABJ/+gAU//oAJH/6ACV/+gAtv/oAMP/6ADE/+gA8v/oAP7/6AEZ/+gBHf/oATX/6AFH/+gBSP/oAVL/6AFlABABZgAQAWgAEAFpABABagAQAhP/6AIU/+gCFf/oAhb/6AIX/+gCL//oAjH/6AIz/+gCNf/oAjf/6AI5/+gCO//oAj3/6AI//+gCQf/oAkP/6AJF/+gCR//oAkn/6AMQ/+gDNv/oAzr/6AM9/+gDTQAQA04AEANSABADXP/oA2L/6ANn/+gDdf/oA3f/6AN4/+gDhP/oA5X/6AOx/+gDs//oA7X/6AO3/+gDuf/oA7v/6AO9/+gDv//oA9P/6APV/+gD1//oA9v/6AA9AEX/7ABG/+wAR//sAEn/7ABT/+wAkf/sAJX/7AC2/+wAw//sAMT/7ADy/+wA/v/sARn/7AEd/+wBNf/sAUf/7AFI/+wBUv/sAhP/7AIU/+wCFf/sAhb/7AIX/+wCL//sAjH/7AIz/+wCNf/sAjf/7AI5/+wCO//sAj3/7AI//+wCQf/sAkP/7AJF/+wCR//sAkn/7AMQ/+wDNv/sAzr/7AM9/+wDXP/sA2L/7ANn/+wDdf/sA3f/7AN4/+wDhP/sA5X/7AOx/+wDs//sA7X/7AO3/+wDuf/sA7v/7AO9/+wDv//sA9P/7APV/+wD1//sA9v/7AAXAFH/7AET/+wCHf/sAh7/7AIf/+wCIP/sAiH/7AJr/+wCbf/sAm//7AMW/+wDHP/sAzj/7AOC/+wDhv/sA8X/7APH/+wDyf/sA8v/7APN/+wDz//sA9H/7APZ/+wABgAO/4QAEP+EAWf/hAFr/4QBb/+EAXD/hAAQACz/7AA3/+wCB//sAgj/7AIJ/+wCCv/sAlf/7AKG/+wCiP/sAor/7AKM/+wCjv/sApD/7AMk/+wD3P/sA97/7AABKSwABAAAACIATgDEAaoCkANqBAQGnghkCTYKLAvyDCQMVgzUDroPMBACEhQSyhQwFOoVcBXOFpAXBhcYF0IYlBrSGvQcChyIHLIc3AAdAAT/8gAJ//IAWP/zAFv/8wC4//MBFf/zAWX/8gFm//IBaP/yAWn/8gFq//ICJv/zAif/8wKV//MDGP/zAzv/8wNE//MDTP/zA03/8gNO//IDUv/yA2H/8wNp//MDiv/zA4z/8wOO//MD6//zA+3/8wPv//MAOQAl//MAKf/zADH/8wAz//MAgf/zAJD/8wCU//MArv/zAM7/8wED//MBEv/zARb/8wEY//MBGv/zARz/8wE0//MBUf/zAfj/8wIC//MCA//zAgT/8wIF//MCBv/zAi7/8wIw//MCMv/zAjT/8wJC//MCRP/zAkb/8wJI//MCav/zAmz/8wJu//MCn//zAvz/8wMJ//MDL//zAzL/8wNX//MDY//zA2b/8wOB//MDg//zA4X/8wPE//MDxv/zA8j/8wPK//MDzP/zA87/8wPQ//MD0v/zA9T/8wPW//MD2P/zA9r/8wA5ACX/5gAp/+YAMf/mADP/5gCB/+YAkP/mAJT/5gCu/+YAzv/mAQP/5gES/+YBFv/mARj/5gEa/+YBHP/mATT/5gFR/+YB+P/mAgL/5gID/+YCBP/mAgX/5gIG/+YCLv/mAjD/5gIy/+YCNP/mAkL/5gJE/+YCRv/mAkj/5gJq/+YCbP/mAm7/5gKf/+YC/P/mAwn/5gMv/+YDMv/mA1f/5gNj/+YDZv/mA4H/5gOD/+YDhf/mA8T/5gPG/+YDyP/mA8r/5gPM/+YDzv/mA9D/5gPS/+YD1P/mA9b/5gPY/+YD2v/mADYAI//kADr/0gA7/9MArf/kAK//5ADV/9IBCP/kAfH/5AHy/+QB8//kAfT/5AH1/+QB9v/kAff/5AIL/9MCKP/kAir/5AIs/+QClP/TApb/0wL4/+QC/f/TAwD/5AMM/9MDDf/SAw//0wMo/+QDNP/SA0v/0wNV/+QDaP/TA2v/0gNu/+QDcP/kA3n/0gOT/9IDmP/kA5r/5AOc/+QDnv/kA6D/5AOi/+QDpP/kA6b/5AOo/+QDqv/kA6z/5AOu/+QD6v/TA+z/0wPu/9MD+P/SBAD/0gQT/9MAJgAO/x4AEP8eACP/zQCt/80Ar//NAQj/zQFn/x4Ba/8eAW//HgFw/x4B8f/NAfL/zQHz/80B9P/NAfX/zQH2/80B9//NAij/zQIq/80CLP/NAvj/zQMA/80DKP/NA1X/zQNu/80DcP/NA5j/zQOa/80DnP/NA57/zQOg/80Dov/NA6T/zQOm/80DqP/NA6r/zQOs/80Drv/NAKYARf/cAEb/3ABH/9wASf/cAE//8wBQ//MAUf/WAFL/8wBT/9wAV//dAFj/4QBb/+EAkf/cAJX/3ACX/90Atv/cALj/4QC8//MAw//cAMT/3ADG/90A5//zAOv/8wDs//MA7v/zAO//8wDw//MA8v/cAPP/8wD1//MA9v/zAPn/8wD7//MA/v/cAQD/8wET/9YBFf/hARn/3AEd/9wBMf/zATX/3AFA//MBRf/zAUf/3AFI/9wBUv/cAhP/3AIU/9wCFf/cAhb/3AIX/9wCHP/zAh3/1gIe/9YCH//WAiD/1gIh/9YCIv/dAiP/3QIk/90CJf/dAib/4QIn/+ECL//cAjH/3AIz/9wCNf/cAjf/3AI5/9wCO//cAj3/3AI//9wCQf/cAkP/3AJF/9wCR//cAkn/3AJk//MCZv/zAmj/8wJp//MCa//WAm3/1gJv/9YCh//dAon/3QKL/90Cjf/dAo//3QKR/90Clf/hAxD/3AMS//MDFP/dAxb/1gMY/+EDG//dAxz/1gMd/90DNv/cAzf/8wM4/9YDOf/zAzr/3AM7/+EDPf/cAz7/8wND//MDRP/hA0z/4QNU//MDXP/cA13/8wNh/+EDYv/cA2f/3ANp/+EDdf/cA3f/3AN4/9wDfv/zA4D/8wOC/9YDhP/cA4b/1gOK/+EDjP/hA47/4QOS//MDlf/cA7H/3AOz/9wDtf/cA7f/3AO5/9wDu//cA73/3AO//9wDxf/WA8f/1gPJ/9YDy//WA83/1gPP/9YD0f/WA9P/3APV/9wD1//cA9n/1gPb/9wD3f/dA9//3QPh/90D4//dA+X/3QPn/90D6f/dA+v/4QPt/+ED7//hA/P/8wP1//MD///zBAz/8wQO//MEEP/zAHEABP/aAAn/2gBF//AARv/wAEf/8ABJ//AAU//wAFf/7wBY/9wAW//cAJH/8ACV//AAl//vALb/8AC4/9wAw//wAMT/8ADG/+8A8v/wAP7/8AEV/9wBGf/wAR3/8AE1//ABR//wAUj/8AFS//ABZf/aAWb/2gFo/9oBaf/aAWr/2gIT//ACFP/wAhX/8AIW//ACF//wAiL/7wIj/+8CJP/vAiX/7wIm/9wCJ//cAi//8AIx//ACM//wAjX/8AI3//ACOf/wAjv/8AI9//ACP//wAkH/8AJD//ACRf/wAkf/8AJJ//ACh//vAon/7wKL/+8Cjf/vAo//7wKR/+8Clf/cAxD/8AMU/+8DGP/cAxv/7wMd/+8DNv/wAzr/8AM7/9wDPf/wA0T/3ANM/9wDTf/aA07/2gNS/9oDXP/wA2H/3ANi//ADZ//wA2n/3AN1//ADd//wA3j/8AOE//ADiv/cA4z/3AOO/9wDlf/wA7H/8AOz//ADtf/wA7f/8AO5//ADu//wA73/8AO///AD0//wA9X/8APX//AD2//wA93/7wPf/+8D4f/vA+P/7wPl/+8D5//vA+n/7wPr/9wD7f/cA+//3AA0AAT/oAAJ/6AAV//xAFj/xQBb/8UAl//xALj/xQDG//EBFf/FAWX/oAFm/6ABaP+gAWn/oAFq/6ACIv/xAiP/8QIk//ECJf/xAib/xQIn/8UCh//xAon/8QKL//ECjf/xAo//8QKR//EClf/FAxT/8QMY/8UDG//xAx3/8QM7/8UDRP/FA0z/xQNN/6ADTv+gA1L/oANh/8UDaf/FA4r/xQOM/8UDjv/FA93/8QPf//ED4f/xA+P/8QPl//ED5//xA+n/8QPr/8UD7f/FA+//xQA9AEX/5wBG/+cAR//nAEn/5wBT/+cAkf/nAJX/5wC2/+cAw//nAMT/5wDy/+cA/v/nARn/5wEd/+cBNf/nAUf/5wFI/+cBUv/nAhP/5wIU/+cCFf/nAhb/5wIX/+cCL//nAjH/5wIz/+cCNf/nAjf/5wI5/+cCO//nAj3/5wI//+cCQf/nAkP/5wJF/+cCR//nAkn/5wMQ/+cDNv/nAzr/5wM9/+cDXP/nA2L/5wNn/+cDdf/nA3f/5wN4/+cDhP/nA5X/5wOx/+cDs//nA7X/5wO3/+cDuf/nA7v/5wO9/+cDv//nA9P/5wPV/+cD1//nA9v/5wBxAAQADAAJAAwARf/oAEb/6ABH/+gASf/oAFH/6gBT/+gAWAALAFsACwCR/+gAlf/oALb/6AC4AAsAw//oAMT/6ADy/+gA/v/oARP/6gEVAAsBGf/oAR3/6AE1/+gBR//oAUj/6AFS/+gBZQAMAWYADAFoAAwBaQAMAWoADAIT/+gCFP/oAhX/6AIW/+gCF//oAh3/6gIe/+oCH//qAiD/6gIh/+oCJgALAicACwIv/+gCMf/oAjP/6AI1/+gCN//oAjn/6AI7/+gCPf/oAj//6AJB/+gCQ//oAkX/6AJH/+gCSf/oAmv/6gJt/+oCb//qApUACwMQ/+gDFv/qAxgACwMc/+oDNv/oAzj/6gM6/+gDOwALAz3/6ANEAAsDTAALA00ADANOAAwDUgAMA1z/6ANhAAsDYv/oA2f/6ANpAAsDdf/oA3f/6AN4/+gDgv/qA4T/6AOG/+oDigALA4wACwOOAAsDlf/oA7H/6AOz/+gDtf/oA7f/6AO5/+gDu//oA73/6AO//+gDxf/qA8f/6gPJ/+oDy//qA83/6gPP/+oD0f/qA9P/6APV/+gD1//oA9n/6gPb/+gD6wALA+0ACwPvAAsADABa/+0AXP/tAOn/7QKY/+0Cmv/tApz/7QM8/+0DbP/tA3r/7QOU/+0D+f/tBAH/7QAMAFr/8gBc//IA6f/yApj/8gKa//ICnP/yAzz/8gNs//IDev/yA5T/8gP5//IEAf/yAB8AWP/0AFr/8gBb//QAXP/zALj/9ADp//IBFf/0Aib/9AIn//QClf/0Apj/8wKa//MCnP/zAxj/9AM7//QDPP/yA0T/9ANM//QDYf/0A2n/9ANs//IDev/yA4r/9AOM//QDjv/0A5T/8gPr//QD7f/0A+//9AP5//IEAf/yAHkABP/KAAn/ygA2/9IAOP/UADr/9AA7/9MAT//RAFD/0QBS/9EAWP/mAFr/7wBb/+YAuP/mALz/0QDN/9IA0f/SANX/9ADZ/+0A3P/hAOf/0QDp/+8A6//RAOz/0QDu/9EA7//RAPD/0QDz/9EA9f/RAPb/0QD5/9EA+//RAQD/0QEU/9QBFf/mAS7/0gEx/9EBNv/SAUD/0QFF/9EBZf/KAWb/ygFo/8oBaf/KAWr/ygIL/9MCHP/RAib/5gIn/+YCZP/RAmb/0QJo/9ECaf/RAoD/0gKC/9IChP/SApT/0wKV/+YClv/TAv3/0wMM/9MDDf/0Aw//0wMS/9EDGP/mAyf/7QMz/9IDNP/0Azf/0QM5/9EDO//mAzz/7wM+/9EDQ//RA0T/5gNL/9MDTP/mA03/ygNO/8oDUv/KA1T/0QNd/9EDYP/UA2H/5gNo/9MDaf/mA2v/9ANs/+8Def/0A3r/7wN+/9EDgP/RA4n/7QOK/+YDi//tA4z/5gON/+0Djv/mA4//4QOS/9EDk//0A5T/7wPq/9MD6//mA+z/0wPt/+YD7v/TA+//5gPz/9ED9f/RA/b/0gP4//QD+f/vA/r/4QP8/+ED///RBAD/9AQB/+8EDP/RBA7/0QQQ/9EEE//TAB0ANv++AFj/7wBb/+8AuP/vAM3/vgDR/74BFf/vAS7/vgE2/74CJv/vAif/7wKA/74Cgv++AoT/vgKV/+8DGP/vAzP/vgM7/+8DRP/vA0z/7wNh/+8Daf/vA4r/7wOM/+8Djv/vA+v/7wPt/+8D7//vA/b/vgA0ADb/5gA4/+cAOv/yADv/5wBa//EAzf/mANH/5gDV//IA2f/uANz/6ADp//EBFP/nAS7/5gE2/+YCC//nAoD/5gKC/+YChP/mApT/5wKW/+cC/f/nAwz/5wMN//IDD//nAyf/7gMz/+YDNP/yAzz/8QNL/+cDYP/nA2j/5wNr//IDbP/xA3n/8gN6//EDif/uA4v/7gON/+4Dj//oA5P/8gOU//ED6v/nA+z/5wPu/+cD9v/mA/j/8gP5//ED+v/oA/z/6AQA//IEAf/xBBP/5wCEACMAEAAl/+gAKf/oADH/6AAz/+gANv/gADj/4AA7/98Agf/oAJD/6ACU/+gArQAQAK7/6ACvABAAzf/gAM7/6ADPABAA0f/gANgAEADc/+EA7QAQAPT/4AD/ABABA//oAQgAEAES/+gBFP/gARb/6AEY/+gBGv/oARz/6AEu/+ABNP/oATb/4AFNABABUf/oAfEAEAHyABAB8wAQAfQAEAH1ABAB9gAQAfcAEAH4/+gCAv/oAgP/6AIE/+gCBf/oAgb/6AIL/98CKAAQAioAEAIsABACLv/oAjD/6AIy/+gCNP/oAkL/6AJE/+gCRv/oAkj/6AJq/+gCbP/oAm7/6AKA/+ACgv/gAoT/4AKU/98Clv/fAp//6AL4ABAC/P/oAv3/3wMAABADCf/oAwz/3wMP/98DKAAQAy//6AMy/+gDM//gA0v/3wNVABADV//oA2D/4ANj/+gDZv/oA2j/3wNuABADcAAQA4H/6AOD/+gDhf/oA4//4QOQ/+ADlgAQA5cAEAOYABADmgAQA5wAEAOeABADoAAQA6IAEAOkABADpgAQA6gAEAOqABADrAAQA64AEAPE/+gDxv/oA8j/6APK/+gDzP/oA87/6APQ/+gD0v/oA9T/6APW/+gD2P/oA9r/6APq/98D7P/fA+7/3wP2/+AD+v/hA/v/4AP8/+ED/f/gBBEAEAQSABAEE//fAC0ANv/xADj/9AA6//QAO//wAM3/8QDP//UA0f/xANX/9ADY//UA2f/zART/9AEu//EBNv/xAU3/9QIL//ACgP/xAoL/8QKE//EClP/wApb/8AL9//ADDP/wAw3/9AMP//ADJ//zAzP/8QM0//QDS//wA2D/9ANo//ADa//0A3n/9AOJ//MDi//zA43/8wOT//QDlv/1A+r/8APs//AD7v/wA/b/8QP4//QEAP/0BBH/9QQT//AAWQAjAA8ANv/mADj/5gA6AA4AO//mAK0ADwCvAA8Azf/mAM8ADgDR/+YA1QAOANgADgDZAAsA3P/lAO0ADwD0/+gA/wAPAQgADwEU/+YBLv/mATb/5gFNAA4B8QAPAfIADwHzAA8B9AAPAfUADwH2AA8B9wAPAgv/5gIoAA8CKgAPAiwADwKA/+YCgv/mAoT/5gKU/+YClv/mAvgADwL9/+YDAAAPAwz/5gMNAA4DD//mAycACwMoAA8DM//mAzQADgNL/+YDVQAPA2D/5gNo/+YDawAOA24ADwNwAA8DeQAOA4kACwOLAAsDjQALA4//5QOQ/+gDkwAOA5YADgOXAA8DmAAPA5oADwOcAA8DngAPA6AADwOiAA8DpAAPA6YADwOoAA8DqgAPA6wADwOuAA8D6v/mA+z/5gPu/+YD9v/mA/gADgP6/+UD+//oA/z/5QP9/+gEAAAOBBEADgQSAA8EE//mAC4ANv/jADr/5QA7/+QAzf/jAM//5QDR/+MA1f/lANj/5QDZ/+kA7f/qAP//6gEu/+MBNv/jAU3/5QIL/+QCgP/jAoL/4wKE/+MClP/kApb/5AL9/+QDDP/kAw3/5QMP/+QDJ//pAzP/4wM0/+UDS//kA2j/5ANr/+UDef/lA4n/6QOL/+kDjf/pA5P/5QOW/+UDl//qA+r/5APs/+QD7v/kA/b/4wP4/+UEAP/lBBH/5QQS/+oEE//kACEANv/iADr/5ADN/+IAz//kANH/4gDV/+QA2P/kANn/6QDt/+sA///rAS7/4gE2/+IBTf/kAoD/4gKC/+IChP/iAw3/5AMn/+kDM//iAzT/5ANr/+QDef/kA4n/6QOL/+kDjf/pA5P/5AOW/+QDl//rA/b/4gP4/+QEAP/kBBH/5AQS/+sAFwA2/+sAO//zAM3/6wDR/+sBLv/rATb/6wIL//MCgP/rAoL/6wKE/+sClP/zApb/8wL9//MDDP/zAw//8wMz/+sDS//zA2j/8wPq//MD7P/zA+7/8wP2/+sEE//zADAAT//vAFD/7wBS/+8AWv/wALz/7wDn/+8A6f/wAOv/7wDs/+8A7v/vAO//7wDw/+8A8//vAPX/7wD2/+8A+f/vAPv/7wEA/+8BMf/vAUD/7wFF/+8CHP/vAmT/7wJm/+8CaP/vAmn/7wMS/+8DN//vAzn/7wM8//ADPv/vA0P/7wNU/+8DXf/vA2z/8AN6//ADfv/vA4D/7wOS/+8DlP/wA/P/7wP1/+8D+f/wA///7wQB//AEDP/vBA7/7wQQ/+8AHQAE//IACf/yAFj/9QBb//UAuP/1ARX/9QFl//IBZv/yAWj/8gFp//IBav/yAib/9QIn//UClf/1Axj/9QM7//UDRP/1A0z/9QNN//IDTv/yA1L/8gNh//UDaf/1A4r/9QOM//UDjv/1A+v/9QPt//UD7//1AAQA9P/tA5D/7QP7/+0D/f/tAAoABP/1AAn/9QFl//UBZv/1AWj/9QFp//UBav/1A03/9QNO//UDUv/1AFQARf/wAEb/8ABH//AASf/wAFH/6wBT//AAkf/wAJX/8AC2//AAw//wAMT/8ADy//AA/v/wARP/6wEZ//ABHf/wATX/8AFH//ABSP/wAVL/8AIT//ACFP/wAhX/8AIW//ACF//wAh3/6wIe/+sCH//rAiD/6wIh/+sCL//wAjH/8AIz//ACNf/wAjf/8AI5//ACO//wAj3/8AI///ACQf/wAkP/8AJF//ACR//wAkn/8AJr/+sCbf/rAm//6wMQ//ADFv/rAxz/6wM2//ADOP/rAzr/8AM9//ADXP/wA2L/8ANn//ADdf/wA3f/8AN4//ADgv/rA4T/8AOG/+sDlf/wA7H/8AOz//ADtf/wA7f/8AO5//ADu//wA73/8AO///ADxf/rA8f/6wPJ/+sDy//rA83/6wPP/+sD0f/rA9P/8APV//AD1//wA9n/6wPb//AAjwAEAA0ACQANAEP/8ABF/7AARv+wAEf/sABJ/7AAUf/WAFP/sABYAAsAWwALAJH/sACV/7AAtv+wALgACwDE/7AA7f+vAPL/sAD+/7AA//+vARP/1gEVAAsBGf+wAR3/sAE1/7ABR/+wAUj/sAFS/7ABZQANAWYADQFoAA0BaQANAWoADQIM//ACDf/wAg7/8AIP//ACEP/wAhH/8AIS//ACE/+wAhT/sAIV/7ACFv+wAhf/sAId/9YCHv/WAh//1gIg/9YCIf/WAiYACwInAAsCKf/wAiv/8AIt//ACL/+wAjH/sAIz/7ACNf+wAjf/sAI5/7ACO/+wAj3/sAI//7ACQf+wAkP/sAJF/7ACR/+wAkn/sAJr/9YCbf/WAm//1gKVAAsDEP+wAxb/1gMYAAsDHP/WAzX/8AM2/7ADOP/WAzr/sAM7AAsDPf+wA0QACwNMAAsDTQANA04ADQNSAA0DVv/wA1z/sANhAAsDYv+wA2f/sANpAAsDb//wA3H/8AN1/7ADd/+wA3j/sAOC/9YDhP+wA4b/1gOKAAsDjAALA44ACwOV/7ADl/+vA5n/8AOb//ADnf/wA5//8AOh//ADo//wA6X/8AOn//ADqf/wA6v/8AOt//ADr//wA7H/sAOz/7ADtf+wA7f/sAO5/7ADu/+wA73/sAO//7ADxf/WA8f/1gPJ/9YDy//WA83/1gPP/9YD0f/WA9P/sAPV/7AD1/+wA9n/1gPb/7AD6wALA+0ACwPvAAsEEv+vAAgA7QAQAPT/8AD/ABADkP/wA5cAEAP7//AD/f/wBBIAEABFAEUADABGAAwARwAMAEkADABTAAwAkQAMAJUADAC2AAwAwwAMAMQADADtABgA8gAMAPT/9wD+AAwA/wAYARkADAEdAAwBNQAMAUcADAFIAAwBUgAMAhMADAIUAAwCFQAMAhYADAIXAAwCLwAMAjEADAIzAAwCNQAMAjcADAI5AAwCOwAMAj0ADAI/AAwCQQAMAkMADAJFAAwCRwAMAkkADAMQAAwDNgAMAzoADAM9AAwDXAAMA2IADANnAAwDdQAMA3cADAN4AAwDhAAMA5D/9wOVAAwDlwAYA7EADAOzAAwDtQAMA7cADAO5AAwDuwAMA70ADAO/AAwD0wAMA9UADAPXAAwD2wAMA/v/9wP9//cEEgAYAB8AWP/0AFr/8ABb//QAuP/0AOn/8ADt//MA///zARX/9AIm//QCJ//0ApX/9AMY//QDO//0Azz/8ANE//QDTP/0A2H/9ANp//QDbP/wA3r/8AOK//QDjP/0A47/9AOU//ADl//zA+v/9APt//QD7//0A/n/8AQB//AEEv/zAAoABP/WAAn/1gFl/9YBZv/WAWj/1gFp/9YBav/WA03/1gNO/9YDUv/WAAoABP/1AAn/9QFl//UBZv/1AWj/9QFp//UBav/1A03/9QNO//UDUv/1AF4ABAALAAkACwBF/+sARv/rAEf/6wBJ/+sAUf/pAFP/6wCR/+sAlf/rALb/6wDD/+sAxP/rAPL/6wD+/+sBE//pARn/6wEd/+sBNf/rAUf/6wFI/+sBUv/rAWUACwFmAAsBaAALAWkACwFqAAsCE//rAhT/6wIV/+sCFv/rAhf/6wId/+kCHv/pAh//6QIg/+kCIf/pAi//6wIx/+sCM//rAjX/6wI3/+sCOf/rAjv/6wI9/+sCP//rAkH/6wJD/+sCRf/rAkf/6wJJ/+sCa//pAm3/6QJv/+kDEP/rAxb/6QMc/+kDNv/rAzj/6QM6/+sDPf/rA00ACwNOAAsDUgALA1z/6wNi/+sDZ//rA3X/6wN3/+sDeP/rA4L/6QOE/+sDhv/pA5X/6wOx/+sDs//rA7X/6wO3/+sDuf/rA7v/6wO9/+sDv//rA8X/6QPH/+kDyf/pA8v/6QPN/+kDz//pA9H/6QPT/+sD1f/rA9f/6wPZ/+kD2//rAAILHgAEAAAN5hU6ACEAHQAAABH/zv+PABL/9f/v/4j/9P+7/3//9QAM/6n/ov/JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/lAAAAAP/o/8kAAP/zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAA/+UAEQAAAAAAAAAAAAD/4wAAAAAAAP/k/+QAAAASABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+EAAAAAAAAAAAAAAAAAAAAA/+UAAAAA/+r/1QAAAAD/6//q/5r/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/mAAAAAAAAAAAAAP/tAAAAFP/vAAAAAAAAAAAAAAAAAAAAAAAA/+0AAAAAAAAAAAAAAAAAAAAA/8v/uP98/37/5AAAAAD/nQAPABD/of/EABAAEAAAAAD/sQAA/yYAAP+d/7P/GP+T//D/j/+M/xAAAP+S/3L/DP8P/70AAAAA/0QABQAH/0v/hgAHAAcAAAAA/z4AAP56AAD/RP9q/mL/M//R/yz/JwAAAAAAAAAAAAD/2AAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAD/2P+jAAD/4QAAAAD/5QAAAAD/6QAAAAAAAAAAAAAAAAAAAAAAAP/mAAD/wP/pAAAAAAAAAAAAAAAA/3sAAAAA/7//yv92AAD/cf7t/9QAAP9R/xEAAAAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yQAPAAD/2QAAAAAAAP/zAAAAAAAAAAAAAAAAAAAAAP92/+H+vP/m//MAAAAAAAAAAP/1AAD/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//UAAAAA//MAAAAA/9IAAAAA/+QAAAAAAAAAAAAA/7UAAP8fAAD/1AAA/9sAAAAA/9IAAAAAAAAAEf/h/9EAEf/nAAAAAP/rAAAAAP/rAAAADgAAAAAAAAAAAAAAAAAA/+YAAP/SAAAAAAAAAAAAAAAAAAD/7AAAAAD/4/+gAAD/vwARABH/2f/iABIAEgAAAAD/ogAN/y0AAP+//+n/zP/Y//D/t//G/6AAAAAAAAAAAAAAAAAAAAAA/+EAAAAO/+0AAAAAAAAAAAAA/9UAAP+FAAD/4QAA/8QAAAAA/98AAAAAAAAAAP/lAAAAAP/mAAAAAP/rAAAAAP/tAAAAAAAAAAAAAAANAAAAAAAA/+sAAAAAAAAAAAAAAAAAAAAA/8oAAP/p/7v/6QAAAAD/vQAAABIAAAAAAAAAEgAAAAD/pQAA/m0AAP+9AAD/if+aAAD/kf/SAAAAAAAA//EAAAAAAAAAAP+9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAA//IAAAAA/+MAAAAAAAAAAP/xAAAAAAAAAAAAAAAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAA//MAAAAAAAAAAP/yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAA//AAAAAA/+wAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAA/+sAAAAAAAAAAAAAAAAAAAAAAAAAAP/XAAAAAAAP//EAAAAAAAAAAAAAAAAAAAAAAAAAAP+VAAD/8wAAAAAAAAAA//EAAAAAAAAAAAASAAAAAAAAAAAAEP/sAAAAAAAAAAAAAAAAAAAAAAAAAAD/hQAA/+0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/lf/DAAAAAAAAAAAAAAAAAAAAAP+IAAAAAAAA/8UAAAAA/+wAAP/O/7AAAAAAAAAAAAAAAAAAAAAA/1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/1AAAAAAAAAAAAAP/AAAAAAP71AAAAAP/I/63/5//rAAD/8AAAAAAAAP/JAAAAAAAAAAAAAAAAAAAAAP/d/9kAAAAAAAD/eQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAAAAAAAAACAIgABAAEAAAACQAJAAEAEQARAAIAIwAoAAMAKgAzAAkANgA8ABMAQwBEABoARwBIABwASgBKAB4ATwBSAB8AVABUACMAWABYACQAWgBbACUAiACIACcAmQCZACgArACwACkAsgC0AC4AtgC2ADEAuAC5ADIAuwC8ADQAvgDAADYAwgDHADkAzQDNAD8AzwDZAEAA2wDbAEsA3QDfAEwA4QDjAE8A5QDpAFIA7ADsAFcA8QDzAFgA9gD3AFsA+QD7AF0A/wEAAGABBQEFAGIBCAEIAGMBEwEVAGQBJwEpAGcBLAEsAGoBLgEuAGsBRQFFAGwBZQFmAG0BaAFqAG8BpgGmAHIBqQGpAHMBqwGrAHQBsAGxAHUBtAG2AHcBuAG+AHoBxAHEAIEB2wHcAIIB6AHoAIQB7AHtAIUB7wHvAIcB8QISAIgCFAIXAKoCHAIhAK4CJgIuALQCMAIwAL0CMgIyAL4CNAI0AL8CNgI2AMACOAJBAMECSgJMAMsCTgJOAM4CUAJQAM8CUgJSANACVAJUANECVwJXANICWQJZANMCWwJbANQCXQJdANUCXwJfANYCYQJhANcCYwJvANgCcQJxAOUCcwJzAOYCdQJ1AOcCgAKAAOgCggKCAOkChAKEAOoChgKGAOsCiAKIAOwCigKKAO0CjAKMAO4CjgKOAO8CkAKQAPACkgKSAPEClAKXAPICmQKZAPYCmwKbAPcC+AL9APgDAAMPAP4DEgMSAQ4DFgMWAQ8DGAMYARADHAMcAREDHwMgARIDIgMrARQDLQMvAR4DMQM2ASEDOAM5AScDOwM+ASkDRANFAS0DRwNHAS8DSQNJATADSwNOATEDUgNXATUDWgNaATsDXANcATwDYANhAT0DZgNmAT8DaANxAUADdAN1AUoDdwN6AUwDgQOCAVADhgOGAVIDiAOOAVMDkwOUAVoDmAPAAVwDwgPCAYUDxAPRAYYD2QPZAZQD3APcAZUD3gPeAZYD6gPvAZcD8gPyAZ0D9AP0AZ4D9gP2AZ8D+AP5AaAD/gQBAaIEBAQEAaYEBgQHAacECQQJAakEDQQNAaoEDwQPAasEEwQTAawAAQAKAAoAKAAzADQAPQBIAE0AVgBZAF0AAQAiAJkAsACyALMAtAC7AL4AvwDAAMUAxwDIAMkAzQDRANMA1ADWAN4A4gDjAOQA5QDmAOgA6gDsAPEA8wD2APsA/gEdAdwAAgB2AAQABAAAAAkACQABAA4ADgACABAAEAADACMAJwAEACoAMgAJADYAPAASAEMARQAZAEcARwAcAEoASgAdAE8AUgAeAFQAVAAiAFgAWAAjAFoAXAAkAIgAiAAnAKwArwAoALgAuAAsALwAvAAtAMIAwgAuAM8A0AAvANIA0gAxANUA1QAyANcA2QAzANsA2wA2AN0A3QA3AN8A3wA4AOEA4QA5AOcA5wA6AOkA6QA7APIA8gA8APcA9wA9APkA+gA+AP8BAABAAQUBBQBCAQgBCABDARMBFQBEAScBKQBHASwBLABKAS4BLgBLAUUBRQBMAWUBawBNAW8BcABUAewB7QBWAe8B7wBYAfECFwBZAhwCIQCAAiYCNgCGAjgCQQCXAkoCTAChAk4CTgCkAlACUAClAlICUgCmAlQCVACnAlcCVwCoAlkCWQCpAlsCWwCqAl0CXQCrAl8CXwCsAmECYQCtAmMCbwCuAnECcQC7AnMCcwC8AnUCdQC9AoACgAC+AoICggC/AoQChADAAoYChgDBAogCiADCAooCigDDAowCjADEAo4CjgDFApACkADGApICkgDHApQCnADIAvgC/QDRAwADDwDXAxIDEgDnAxYDFgDoAxgDGADpAxwDHADqAx8DIADrAyIDKwDtAy0DLwD3AzEDNgD6AzgDPgEAA0QDRQEHA0cDRwEJA0kDSQEKA0sDTgELA1IDVwEPA1oDWgEVA1wDXAEWA2ADYQEXA2YDcQEZA3QDdQElA3cDegEnA4EDggErA4YDhgEtA4gDjgEuA5MDlAE1A5gDwAE3A8IDwgFgA8QD0QFhA9kD2QFvA9wD3AFwA94D3gFxA+oD7wFyA/ID8gF4A/QD9AF5A/YD9gF6A/gD+QF7A/4EAQF9BAQEBAGBBAYEBwGCBAkECQGEBA0EDQGFBA8EDwGGBBMEEwGHAAIBOAAEAAQAHQAJAAkAHQAOAA4AHgAQABAAHgAkACQAAQAlACUABAAmACYAAwAnACcABQAqACsAAgAsACwADAAtAC0ACQAuAC4ACgAvADAAAgAxADEAAwAyADIACwA2ADYABgA3ADcADAA4ADgADQA5ADkAEAA6ADoADgA7ADsADwA8ADwAEQBDAEMAEwBEAEQAFQBFAEUAFABHAEcAFgBKAEoAFwBPAFAAFwBRAFEAGABSAFIAFQBUAFQAGgBYAFgAGQBaAFoAGwBbAFsAGQBcAFwAHACIAIgAFQCsAKwABwCuAK4AAwC4ALgAGQC8ALwAFwDCAMIAFQDPANAAHwDSANIAAgDVANUADgDXANgAAgDZANkAEgDbANsAAgDdAN0AAgDfAN8AHwDhAOEAHwDnAOcACADpAOkAGwDyAPIAFQD3APcAIAD5APkAIAD6APoAFQD/AQAAIAEFAQUAIAETARMAGAEUARQADQEVARUAGQEnAScAFQEoASgABwEpASkACAEsASwACQEuAS4ACQFFAUUACAFlAWYAHQFnAWcAHgFoAWoAHQFrAWsAHgFvAXAAHgHsAe0AAwHvAe8ABgH4AfgABAH5AfwABQH9AgEAAgICAgYAAwIHAgoADAILAgsADwIMAhIAEwITAhMAFAIUAhcAFgIcAhwAFwIdAiEAGAImAicAGQIpAikAEwIrAisAEwItAi0AEwIuAi4ABAIvAi8AFAIwAjAABAIxAjEAFAIyAjIABAIzAjMAFAI0AjQABAI1AjUAFAI2AjYAAwI4AjgABQI5AjkAFgI6AjoABQI7AjsAFgI8AjwABQI9Aj0AFgI+Aj4ABQI/Aj8AFgJAAkAABQJBAkEAFgJKAkoAAgJLAksAFwJMAkwAAgJOAk4AAgJQAlAAAgJSAlIAAgJUAlQAAgJXAlcADAJZAlkACQJbAlsACgJdAl0ACgJfAl8ACgJhAmEACgJjAmMAAgJkAmQAFwJlAmUAAgJmAmYAFwJnAmcAAgJoAmkAFwJqAmoAAwJrAmsAGAJsAmwAAwJtAm0AGAJuAm4AAwJvAm8AGAJxAnEAGgJzAnMAGgJ1AnUAGgKAAoAABgKCAoIABgKEAoQABgKGAoYADAKIAogADAKKAooADAKMAowADAKOAo4ADAKQApAADAKSApIAEAKUApQADwKVApUAGQKWApYADwKXApcAEQKYApgAHAKZApkAEQKaApoAHAKbApsAEQKcApwAHAL5AvkABQL6AvsAAgL8AvwAAwL9Av0ADwMBAwEAAQMCAwIABQMDAwMAEQMEAwUAAgMGAwYACQMHAwgAAgMJAwkAAwMKAwoACwMLAwsABgMMAwwADwMNAw0ADgMOAw4AAgMPAw8ADwMSAxIAFwMWAxYAGAMYAxgAGQMcAxwAGAMfAx8ABQMgAyAABwMiAyMAAgMkAyQADAMlAyYACQMnAycAEgMpAykAAQMqAyoABwMrAysABQMtAy4AAgMvAy8AAwMxAzEACwMyAzIABAMzAzMABgM0AzQADgM1AzUAEwM2AzYAFgM4AzgAGAM5AzkAFQM6AzoAFAM7AzsAGQM8AzwAGwM9Az0AFgM+Az4ACANEA0QAGQNFA0UAEANHA0cAEANJA0kAEANLA0sADwNMA0wAGQNNA04AHQNSA1IAHQNTA1MAAgNUA1QAFwNWA1YAEwNXA1cAAwNaA1oABQNcA1wAFgNgA2AADQNhA2EAGQNmA2YABANnA2cAFANoA2gADwNpA2kAGQNqA2oAAgNrA2sADgNsA2wAGwNtA20AAgNvA28AEwNxA3EAEwN0A3QABQN1A3UAFgN3A3gAFgN5A3kADgN6A3oAGwOBA4EAAwOCA4IAGAOGA4YAGAOIA4gAFQOJA4kAEgOKA4oAGQOLA4sAEgOMA4wAGQONA40AEgOOA44AGQOTA5MADgOUA5QAGwOZA5kAEwObA5sAEwOdA50AEwOfA58AEwOhA6EAEwOjA6MAEwOlA6UAEwOnA6cAEwOpA6kAEwOrA6sAEwOtA60AEwOvA68AEwOwA7AABQOxA7EAFgOyA7IABQOzA7MAFgO0A7QABQO1A7UAFgO2A7YABQO3A7cAFgO4A7gABQO5A7kAFgO6A7oABQO7A7sAFgO8A7wABQO9A70AFgO+A74ABQO/A78AFgPAA8AAAgPCA8IAAgPEA8QAAwPFA8UAGAPGA8YAAwPHA8cAGAPIA8gAAwPJA8kAGAPKA8oAAwPLA8sAGAPMA8wAAwPNA80AGAPOA84AAwPPA88AGAPQA9AAAwPRA9EAGAPZA9kAGAPcA9wADAPeA94ADAPqA+oADwPrA+sAGQPsA+wADwPtA+0AGQPuA+4ADwPvA+8AGQPyA/IACQP0A/QAAgP2A/YABgP4A/gADgP5A/kAGwP+A/4ABwP/A/8ACAQABAAADgQBBAEAGwQEBAQAFwQGBAYAHwQHBAcABwQJBAkACQQNBA0AAgQPBA8AAgQTBBMADwABAAQEFgAHAAAAAAAAAAAABwAAAAAAAAAAABMAFwATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAFAAAAAAAAAAUAAAAAABwAAAAAAAAAAAAFAAAABQAAABkACgAGAA0ACQASAA4AFAAAAAAAAAAAAAAAAAAaAAAAFQAVABUAAAAVAAAAAAAAAAAAAAAYABgACAAYABUAAAAbAAAACwACAAAAFgACAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAVAAAAAAAFABUAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEABQARAAAAAAAAAAAAAAAAABUAAAACAAAAAAAAABgAAAAAAAAAAAAAAAAAFQAVAAAACwAAAAAAAAAAAAAAAAAKAAUAAQAAAAoAAAAAAAAAEgAAAAAAAQAQAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABYAAAAYABgABAAYABgAGAAAABUAGAADABgAGAAAAAAAGAAAABgAAAAAABUABAAYAAAAAAAFAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAFAAgADQACAAUAAAAFABUABQAAAAUAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAABgAAAAAAAUAFQAKAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAYAAAAFQAVAAAAAAAAAAAAAQAAAAAAAAAFABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAXAAAABwAHABMABwAHAAcAEwAAAAAAAAATABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAABEAEQARABEAEQARABEABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABgAGAAYABgAOABoAGgAaABoAGgAaABoAFQAVABUAFQAVAAAAAAAAAAAAGAAIAAgACAAIAAgACwALAAsACwACAAIAEQAaABEAGgARABoABQAVAAUAFQAFABUABQAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAUAFQAFABUABQAVAAUAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABgAAAAYABgABQAIAAUACAAFAAgAAAAAAAAAAAAAAAAAGQAbABkAGwAZABsAGQAbABkAGwAKAAAACgAAAAoAAAAGAAsABgALAAYACwAGAAsABgALAAYACwAJAAAADgACAA4AFAAMABQADAAUAAwAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAUADgAAAAAAEQAAAAAAFAAAAAAAAAAAAAAABQAAAAAADgASAAAADgAVAAAAGAAAAAsAAAAIAAAAAgAAAAAACwAIAAsAAAAAAAAAAAAAAAAAHAAAAAAAEAARAAAAAAAAAAAAAAAAAAUAAAAAAAUACgASABoAFQAYAAgAGAAVAAIAFgAVABgAGwAAAAAAAAAYAAIACQAAAAkAAAAJAAAADgACAAcABwAAAAAAAAAHAAAAGAARABoABQAAAAAAAAAAABUAGAAAAAAADQACABUABQAAAAAABQAVAA4AAgAAABIAFgAAABEAGgARABoAAAAAAAAAFQAAABUAFQASABYAAAAAAAAAGAAAABgABQAIAAUAFQAFAAgAAAAAABAAAgAQAAIAEAACAA8AAwAAABgAEgAWABUAAQAEABEAGgARABoAEQAaABEAGgARABoAEQAaABEAGgARABoAEQAaABEAGgARABoAEQAaAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAAAAAAAAAFAAgABQAIAAUACAAFAAgABQAIAAUACAAFAAgABQAVAAUAFQAFABUABQAIAAUAFQAGAAsABgALAAAACwAAAAsAAAALAAAACwAAAAsADgACAA4AAgAOAAIAAAAAAAAAGAAAABgACgAAABIAFgAPAAMADwADAAAAGAASABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGAAAABgAAQAEAA4AAAAAAAAAAAAAABcAAQAAAAoALACOAAFERkxUAAgABAAAAAD//wAIAAAAAQACAAMABAAFAAYABwAIbGlnYQAybG51bQA4c21jcAA+c3MwMQBEc3MwMgBKc3MwMwBQc3MwNABWc3MwNQBcAAAAAQABAAAAAQACAAAAAQAAAAAAAQADAAAAAQAEAAAAAQAFAAAAAQAGAAAAAQAHAAgAEgAaACIAKgAyADoAQgBKAAEAAAABAEAABAAAAAEB9gABAAAAAQIAAAEAAAABAhIAAQAAAAECEAABAAAAAQIOAAEAAAABAgwAAQAAAAECDgACAhAA3AGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAHoAbUBtgG3AbgBuQG6AbsBvAG9Ab4BpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQB6AG1AbYBtwG4AbkBugG7AbwBvQG+AvcCogKhAqICowKjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+AqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+AvMCvwK/AsACwALBAsECwgLCAsMCwwLFAsUCxgLGAscCxwLIAsgCyQLJAsoCygLLAssCzALMAs0CzQLPAs8C0ALQAtEC0QLSAtIC0wLTAtQC1ALVAtYC1gLXAtcC2ALYAtkC2QLaAtoC2wLbAtwC3ALdAt0C3gLeAt8C3wLgAuAC4QLhAuIC4gLjAuMC5ALkAuUC5QLmAuYC5wLnAugC6P////8C6gLqAusC6wLsAuwC7QLtAu4C7gLvAu8C8ALwAvEC8QLyAvIC8wL0AvQC9QL1AvYC9gKhAAEApAABAAgAAQAEAZIAAgBLAAIAmAAKAZgBzAHEAdYB1wHYAdkB2wHdAecAAQCIAZEAAQCIASgAAQCIAa4AAgCIAAIB4wHkAAIAfgACAeUB5gACAA0AIwA8AAAAQwBcABoAgwCDADQAhQCFADUB7AHtADYB7wIxADgCNAJFAHsCSAJUAI0CVwJoAJoCagJ7AKwCfgJ/AL4CggKcAMAD8APwANsAAQABAEgAAgABABIAGwAAAAEAAQBJAAEAAQC2AAEAAQA0AAEAAgAtAE0=",
 "Roboto-Medium.ttf":"AAEAAAAOAIAAAwBgR0RFRgsuCy8AASxgAAAASEdQT1OQeyOPAAEsqAAAl/pHU1VCeolvLwABxKQAAANsT1MvMrkTKcoAAAFoAAAAYFZETVhu6nZPAAASOAAABeBjbWFwf76BZgAAGBgAAA7iZ2x5Zm8zqQ4AACb8AADUQGhlYWT1Pw7VAAAA7AAAADZoaGVhCx4JIwAAASQAAAAkaG10eLpNNCcAAAHIAAAQcGxvY2EEms7QAAD7PAAACDptYXhwBDsA9gAAAUgAAAAgbmFtZb10XwMAAQN4AAAEn3Bvc3Tfb5xiAAEIGAAAJEYAAQAAAAEAAF5SMstfDzz1AAkIAAAAAADE8BEuAAAAAM2CsnL6JP3VCYsIYgAAAAkAAgAAAAAAAAABAAAHbP4MAAAJnfok/V0JiwABAAAAAAAAAAAAAAAAAAAEHAABAAAEHACXABYAXQAFAAEAAAAAAAAAAAAAAAAAAwABAAME3gH0AAUAAAWaBTMAAAEfBZoFMwAAA9EAZgIAAAAAAAAAAAAAAAAA4AAC/1AAIFsAAAAgAAAAAHB5cnMAAAAA//0GAP4AAGYHmgIAIAABn08BAAAEOgWwAAAAIAACAf4AAAAAAAAB/gAAAf4AAAKYAFIE4gA8BIwAZAXgAGQFHQA+AVoAUgK3AIACvAARA38AGwR1AEQBwgAnAqAARwI8AJkDKgACBIwAaASMAMoEjABRBIwATwSMADgEjACBBIwAdASMAEUEjABhBIwAUgIlAJkCIABRBBEAPwSOAJEEKgCAA+QAKQchAEoFQgAaBSAAnwUgAHQFYgCfBKMAnwShAJ8FbQB0BbAAnwJNAK0EfAA6BSgAnwRkAJ8HAgCfBbAAnwWPAHQFKwCfBZAAdAVFAJ8E8wBTBOoANQV0AIYFKwAaBwIARAUUAC8FAwATBMAAWAIxAIQDVwAVAjEADANrADUDnAADApQASgRaAF4EiACABDMAUQSIAFMEPABZAs8AMQSIAFQEiAB9AhMAkAIZ/7AEMACBAhMAkAb1AIAEiAB+BIgAUwSIAIAEiABTAtoAgAQpAFECnQAZBIgAewQOACAF+gAlBA4AIQQOABAEDgBVAq8AOAICAK4CrwAbBVEAdQIeAI8EfQBoBLUAUQWdAF0E4AAaAfwAiAT4AFoEHgCkBkQAVwORAHQD4gBUBG0AfwZEAFcD2wCHAwoAfwRLAF8DYQBtA2MAYQKxAHgEuwCSBBAAPgJCAKACEABtAjUAZAOnAHcD4gBcBgwAmwZmAJMG0wBmBAEAYAeF//YERABNBXoAaQTKAJQE5wCIBsEANAS6ADwEkQBDBIkAUwSXAIcFogAYAhoAjwSYAI4EJAAbAj8AGwWSAJMEiAB+B7QAZQc6AFsCDACLAtD/3QWJAGYEnwBSBaUAhgTyAHsCJv+1BDwAWQPmAJsDsAB5A3wAdQJPAJoCsgCCAk0AKQPYAIADLwB6ApwAqwAA/NsAAP02AAD8eQAA/T4AAPwMAAD9IgJdANcEPACdAkIAoAR1AJ8FvQAaBXsAZgU5ACMEkQBwBbEAnwSRAEcF6wBLBacASAVbAGwEhABWBMYAlgQOACAEiABUBGAAYAQaAGEEiAB+BKIAcwKmAKkEagAWBBMAZAT3AE8EiACABDcAUgSQAFIELgBABGAAgAXQAEQFyQBPBpQAZgUuAHUEdf/uBnEAMwX/ACQFPgByCIoALgiRAJ8GXwA1BasAmQUIAJQGBwAmB5oAGATTAEoFqgCaBakALgUKAD8GYABPBfYAmQWIAI8HmgCeB/oAngYaABgG+QCfBQcAlAU8AIgHVACqBPsALQR9AFsEjwCPA1oAhQT2ACcGdgAXBBYATQSYAIYEbgCPBJoAHwYDAI8ElwCGBJgAhgP1ACMF0wBUBNMAhgRmAF8GjgCGBuwAfgUYAB8GbwCPBGgAjwQ8AFEGhACQBHAAJwSJ/+EEPQBYBtEAHwbkAIYEif/1BJgAhgdDAI0GTwBwBGf/4AcpAKIGAQCGBQcAIARgAAoHQgC2BjYAnQbtAIQF5gCCCTIArQf5AI8EIQApA/AAMwV7AGoEiQBSBRkAEQQOACAFewBqBIkAUwc+AI0GRAB0B0MAjQZQAHAFHQBqBEoAXAT/AG0AAPxmAAD8cwAA/XsAAP2lAAD6JP7p+k0EZ//gBRQAnwSHAIAEagCUA6IAfgS3AJ8EIAB+BSoAlASrAI4GlgA0BaQAPgfRAJ8FqwB+CEcAnwb1AH4GJQBpBP8AYQcyAC4FcQAmBXUAggRzAHQFhwCKBiYAIATE/84FHwCUBHgAjgWwAJ8EiAB+BYgAUwSmAF0EpgBdBMcAOwNTADQFBwBUBusAZgbdAF4GUwA7BSgALwR7AEkEPwB1B74AQwadAD8H/gCYBp4AdwUDAGIELABVBaoAIgUdAEQFVwCHBBQAAAgpAAAEFAAACCkAAAK5AAACCgAAAVwAAAR/AAACMAAAAaIAAADRAAAAAAAABYcArQaBALIDnQAEAcAAYAG8ADMBzgAyAagARwMUAGIDGwBAAwgAMgRdAEAEmQBcAssAiAP6AJwFpgCcB6gASwJyAGwCaQBUA5wALQOpAD8DXABpBLUATwa4AJkETQBLBeUAcQPiAEUIyACYBQkAZAUUAJYGyQBpB2EAageRAGoG7wBqBLsAQwWWAKYE2QBABIMAngSyADsIRQBkAiH/sgSOAGUETACYBEYAqgRLAKAEGgAkAlsAswKYAGMB8QBFBKgAGAAAAAAIMABZCDUAXAQyAE0DiwBNBJMAbAMn/58CEP+wAk0AGAGzAFwDoQB1A6EAdQOhAHUECwB5BAsAdQQL/0wECwB6A6EAWwIFAJAEyAAcBIwAjgSUAGgErwCOBEcAjgQqAI4E2wBoBRIAjgIVAI4EFwAuBHcAjgO9AI4GBgCOBSEAjgTKAGYE3QBoBKgAjgRwAE8EMgA8BQAAfgSxABwGDgA0BIwALARVABMETQBKBIYAbQKFAD4D/wBSBCIATQRlADkEfABRBD0AbQOvADwEQwBSBCoAPwIzAFcDVQBrA2YAYAL9ADgDdgBoA3YAcAMAAFIDgwBoA2YAYAOfAHADuQCXArIAlgNCAGwEjABPBIwAOASMAIEEmAB0BDsACgQ0ADIEYgA+BIwAYQS7AFYEiABTBUkAnwRaAGAFMgCfBSgAnwQwAIEFOgCfBC0AgQSNAFIEjACOA3wAdQH+AAACoABHBYAAJAWAACQEpv/9BOoANQKd/+cFQgAaBUIAGgVCABoFQgAaBUIAGgVCABoFQgAaBSAAdASjAJ8EowCfBKMAnwSjAJ8CTf/MAk0ArQJN/9gCTf+9BbAAnwWPAHQFjwB0BY8AdAWPAHQFjwB0BXQAhgV0AIYFdACGBXQAhgUDABMEWgBeBFoAXgRaAF4EWgBeBFoAXgRaAF4EWgBeBDMAUQQ8AFkEPABZBDwAWQQ8AFkCGv+vAhoAjwIa/7sCGv+gBIgAfgSIAFMEiABTBIgAUwSIAFMEiABTBIgAewSIAHsEiAB7BIgAewQOABAEDgAQBUIAGgRaAF4FQgAaBFoAXgVCABoEWgBeBSAAdAQzAFEFIAB0BDMAUQUgAHQEMwBRBSAAdAQzAFEFYgCfBR4AUwSjAJ8EPABZBKMAnwQ8AFkEowCfBDwAWQSjAJ8EPABZBKMAnwQ8AFkFbQB0BIgAVAVtAHQEiABUBW0AdASIAFQFbQB0BIgAVAWwAJ8EiAB9Ak3/vwIa/6ICTf+/Ahr/ogJN/+UCGv/IAk0AHAIT//4CTQCjBskArQQsAJAEfAA6Aib/tQUoAJ8EMACBBGQAnwITAJAEZACfAhMAWARkAJ8CqQCQBGQAnwLvAJAFsACfBIgAfgWwAJ8EiAB+BbAAnwSIAH4EiP/VBY8AdASIAFMFjwB0BIgAUwWPAHQEiABTBUUAnwLaAIAFRQCfAtoAVgVFAJ8C2gBDBPMAUwQpAFEE8wBTBCkAUQTzAFMEKQBRBPMAUwQpAFEE8wBTBCkAUQTqADUCnQAZBOoANQKdABkE6gA1AsUAGQV0AIYEiAB7BXQAhgSIAHsFdACGBIgAewV0AIYEiAB7BXQAhgSIAHsFdACGBIgAewcCAEQF+gAlBQMAEwQOABAFAwATBMAAWAQOAFUEwABYBA4AVQTAAFgEDgBVB4X/9gbBADQFegBpBIkAUwSv/+oEr//qBDIAPATIABwEyAAcBMgAHATIABwEyAAcBMgAHATIABwElABoBEcAjgRHAI4ERwCOBEcAjgIV/6wCFQCOAhX/uAIV/50FIQCOBMoAZgTKAGYEygBmBMoAZgTKAGYFAAB+BQAAfgUAAH4FAAB+BFUAEwTIABwEyAAcBMgAHASUAGgElABoBJQAaASUAGgErwCOBEcAjgRHAI4ERwCOBEcAjgRHAI4E2wBoBNsAaATbAGgE2wBoBRIAjgIV/58CFf+fAhX/xQIV//kCFQCEBBcALgR3AI4DvQCOA70AjgO9AI4DvQCOBSEAjgUhAI4FIQCOBMoAZgTKAGYEygBmBKgAjgSoAI4EqACOBHAATwRwAE8EcABPBHAATwQyADwEMgA8BQAAfgUAAH4FAAB+BQAAfgUAAH4FAAB+Bg4ANARVABMEVQATBE0ASgRNAEoETQBKCOAATwVCABoFB/+vBhT/3AKx/+MFowAqBWf/ZwVvABMCpv+wBUIAGgUgAJ8EowCfBMAAWAWwAJ8CTQCtBSgAnwcCAJ8FsACfBY8AdAUrAJ8E6gA1BQMAEwUUAC8CTf+9BQMAEwSEAFYEYABgBIgAfgKmAKkEYACABJgAjgSIAFMEuwCSBA4AIAQOACECpv/EBGAAgASIAFMEYACABpQAZgSjAJ8EdQCfBPMAUwJNAK0CTf+9BHwAOgUoAJ8FKACfBQoAPwVCABoFIACfBHUAnwSjAJ8FqgCaBwIAnwWwAJ8FjwB0BbEAnwUrAJ8FIAB0BOoANQUUAC8EWgBeBDwAWQSYAIYEiABTBIgAgAQzAFEEDgAQBA4AIQQ8AFkDWgCFBCkAUQITAJACGv+gAhn/sARuAI8EDgAQBwIARAX6ACUHAgBEBfoAJQcCAEQF+gAlBQMAEwQOABABWgBSApgAUgRKAJoE4gAxAib/tQG8ADMHAgCfBvUAgAVCABoEWgBeBY//PQd3ADEHsQAxBKMAnwWqAJoEPABZBJgAhgWnAEgFyQBPBRkAEQQO/+MIlgBTCZ0AdATTAEoEFgBNBSAAdAQzAFEFAwATBA4AIAJNAK0HmgAYBnYAFwJNAK0FQgAaBFoAXgVCABoEWgBeB4X/9gbBADQEowCfBDwAWQWIAFMEPABZBDwAWQeaABgGdgAXBNMASgQWAE0FqgCaBJgAhgWqAJoEmACGBY8AdASIAFMFewBqBIkAUgV7AGoEiQBSBTwAiAQ8AFEFCgA/BA4AEAUKAD8EDgAQBQoAPwQOABAFiACPBGYAXwb5AJ8GbwCPBRQALwQOACEEiABTBakALgSaAB8FQgAaBFoAXgVCABoEWgBeBUIAGgRaAF4FQgAEBFr/iQVCABoEWgBeBUIAGgRaAF4FQgAaBFoAXgVCABoEWgBeBUIAGgRaAF4FQgAaBFoAXgVCABoEWgBeBUIAGgRaAF4EowCfBDwAWQSjAJ8EPABZBKMAnwQ8AFkEowCfBDwAWQSj/8wEPP+LBKMAnwQ8AFkEowCfBDwAWQSjAJ8EPABZAk0ArQIaAI8CTQCfAhMAggWPAHQEiABTBY8AdASIAFMFjwB0BIgAUwWPACsEiP+mBY8AdASIAFMFjwB0BIgAUwWPAHQEiABTBYkAZgSfAFIFiQBmBJ8AUgWJAGYEnwBSBYkAZgSfAFIFiQBmBJ8AUgV0AIYEiAB7BXQAhgSIAHsFpQCGBPIAewWlAIYE8gB7BaUAhgTyAHsFpQCGBPIAewWlAIYE8gB7BQMAEwQOABAFAwATBA4AEAUDABMEDgAQBKYAUwSmAFMFKACfBG4AjwWwAJ8ElwCGBOoANQP1ACMFFAAvBA4AIQWIAI8EZgBfBYgAjwRmAF8EdQCfA1oAhQeaABgGdgAXBiYAIATE/84EiAB9BQf/1wUH/9cEdf/3A1r/6QU8/90ERP/MBaoAmgSYAIYFsACfBJcAhgcCAJ8GAwCPBakALgSaAB8FAwATBA4AIAUUAC8EDgAhBGAAYAShABYGgQCyAAAAAAIlAJoAAAABAAEBAQEBAAwA+Aj/AAgACP/+AAkACf/9AAoACv/9AAsAC//9AAwADP/9AA0ADf/8AA4ADv/8AA8AD//8ABAAEP/8ABEAEf/7ABIAEv/7ABMAE//7ABQAFP/7ABUAFP/6ABYAFf/6ABcAFv/6ABgAF//6ABkAGP/5ABoAGf/5ABsAGv/5ABwAG//5AB0AHP/4AB4AHf/4AB8AHv/4ACAAH//4ACEAIP/3ACIAIf/3ACMAIv/3ACQAI//3ACUAJP/2ACYAJf/2ACcAJv/2ACgAJ//2ACkAJ//1ACoAKP/1ACsAKf/1ACwAKv/1AC0AK//0AC4ALP/0AC8ALf/0ADAALv/0ADEAL//zADIAMP/zADMAMf/zADQAMv/zADUAM//yADYANP/yADcANf/yADgANv/yADkAN//xADoAOP/xADsAOf/xADwAOv/xAD0AOv/wAD4AO//wAD8APP/wAEAAPf/wAEEAPv/vAEIAP//vAEMAQP/vAEQAQf/vAEUAQv/uAEYAQ//uAEcARP/uAEgARf/uAEkARv/tAEoAR//tAEsASP/tAEwASf/tAE0ASv/sAE4AS//sAE8ATP/sAFAATf/sAFEATf/rAFIATv/rAFMAT//rAFQAUP/rAFUAUf/qAFYAUv/qAFcAU//qAFgAVP/qAFkAVf/pAFoAVv/pAFsAV//pAFwAWP/pAF0AWf/oAF4AWv/oAF8AW//oAGAAXP/oAGEAXf/nAGIAXv/nAGMAX//nAGQAYP/nAGUAYP/mAGYAYf/mAGcAYv/mAGgAY//mAGkAZP/lAGoAZf/lAGsAZv/lAGwAZ//lAG0AaP/kAG4Aaf/kAG8Aav/kAHAAa//kAHEAbP/jAHIAbf/jAHMAbv/jAHQAb//jAHUAcP/iAHYAcf/iAHcAcv/iAHgAc//iAHkAc//hAHoAdP/hAHsAdf/hAHwAdv/hAH0Ad//gAH4AeP/gAH8Aef/gAIAAev/gAIEAe//fAIIAfP/fAIMAff/fAIQAfv/fAIUAf//eAIYAgP/eAIcAgf/eAIgAgv/eAIkAg//dAIoAhP/dAIsAhf/dAIwAhv/dAI0Ahv/cAI4Ah//cAI8AiP/cAJAAif/cAJEAiv/bAJIAi//bAJMAjP/bAJQAjf/bAJUAjv/aAJYAj//aAJcAkP/aAJgAkf/aAJkAkv/ZAJoAk//ZAJsAlP/ZAJwAlf/ZAJ0Alv/YAJ4Al//YAJ8AmP/YAKAAmf/YAKEAmf/XAKIAmv/XAKMAm//XAKQAnP/XAKUAnf/WAKYAnv/WAKcAn//WAKgAoP/WAKkAof/VAKoAov/VAKsAo//VAKwApP/VAK0Apf/UAK4Apv/UAK8Ap//UALAAqP/UALEAqf/TALIAqv/TALMAq//TALQArP/TALUArP/SALYArf/SALcArv/SALgAr//SALkAsP/RALoAsf/RALsAsv/RALwAs//RAL0AtP/QAL4Atf/QAL8Atv/QAMAAt//QAMEAuP/PAMIAuf/PAMMAuv/PAMQAu//PAMUAvP/OAMYAvf/OAMcAvv/OAMgAv//OAMkAv//NAMoAwP/NAMsAwf/NAMwAwv/NAM0Aw//MAM4AxP/MAM8Axf/MANAAxv/MANEAx//LANIAyP/LANMAyf/LANQAyv/LANUAy//KANYAzP/KANcAzf/KANgAzv/KANkAz//JANoA0P/JANsA0f/JANwA0v/JAN0A0v/IAN4A0//IAN8A1P/IAOAA1f/IAOEA1v/HAOIA1//HAOMA2P/HAOQA2f/HAOUA2v/GAOYA2//GAOcA3P/GAOgA3f/GAOkA3v/FAOoA3//FAOsA4P/FAOwA4f/FAO0A4v/EAO4A4//EAO8A5P/EAPAA5f/EAPEA5f/DAPIA5v/DAPMA5//DAPQA6P/DAPUA6f/CAPYA6v/CAPcA6//CAPgA7P/CAPkA7f/BAPoA7v/BAPsA7//BAPwA8P/BAP0A8f/AAP4A8v/AAP8A8//AAAAAAwAAAAMAAAiEAAEAAAAAABwAAwABAAACJgAGAgoAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAEAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAMEGwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYAAAAfUB9gH4AfoCAQIGAgoCDQIMAg4CEAIPAhECEwIVAhQCFgIXAhkCGAIaAhsCHAIeAh0CHwIhAiACIwIiAiQCJQFsAG8AYgBjAGcBbgB1AIMAbQBpAX0AcwBoAYsAfwCBAYgAcAGMAY0AZQB0AYMBhQGEAMEBiQBqAHkAtQCEAIcAfgBhAGwBhwCTAYoArQBrAHoBcAADAfEB9AIFAJAAkQFiAWMBaQFqAWUBZgCGAY4CJwKWAXQBeQFyAXMBkgNQAW0AdgFnAWsBcQHzAfsB8gH8AfkB/gH/AgAB/QIDAgQAAAICAggCCQIHAIoAmgCgAG4AnACdAJ4AdwChAJ8AmwAEBl4AAADqAIAABgBqAAAAAgANACEAfgCgAKwArQC/AMYAzwDmAO8A/gEPAREBJQEnATABOAFAAVMBXwFnAX4BfwGSAaEBsAHwAfsB/wIZAhsCNwJZArwCxwLJAt0C8wMBAwMDCQMPAyMDigOMA5IDoQOwA7kDyQPOA9ID1gQlBC8ERQRPBGIEbwR5BIYEzgTXBOEE9QUBBRAFEx4BHj8ehR7xHvMe+R9NIAsgFSAeICIgJiAwIDMgOiA8IEQgdCB/IKQgpyCsIQUhEyEWISIhJiEuIV4iAiIGIg8iEiIaIh4iKyJIImAiZSXK7gL2w/sE/v///f//AAAAAAACAA0AIAAiAKAAoQCtAK4AwADHANAA5wDwAP8BEAESASYBKAExATkBQQFUAWABaAF/AZIBoAGvAfAB+gH8AhgCGgI3AlkCvALGAskC2ALzAwADAwMJAw8DIwOEA4wDjgOTA6MDsQO6A8oD0QPWBAAEJgQwBEYEUARjBHAEegSIBM8E2ATiBPYFAgURHgAePh6AHqAe8h70H00gACATIBcgICAlIDAgMiA5IDwgRCB0IH8goyCnIKshBSETIRYhIiEmIS4hWyICIgYiDyIRIhoiHiIrIkgiYCJkJcruAfbD+wH+///8//8AAQQY//UAAP/iAAD/wAAA/78AAAExAAABLAAAASgAAAEmAAABJAAAASIAAAEcAAABHgAA/wH+9P7nAWEAAAChAGQAZv5h/kAAlv3U/aX9xP2v/aP9ov2d/Zj9hQAA/3D/bwAAAAD9BQAA/1D8+fz2AAD8tQAA/K0AAPyiAAD8nAAA/p4AAP6bAAD8RQAA5VXlFeTF5PjkWeT25ArhVgAA4U3hTOFK4UHjG+E54xPhMOEB4PcAAODRAADgdeBo4GbgW9+P4FDgJN+B3qffdd90323fat9e30LfK98o28QTjgrOAAAClAGYAAEAAAAAAAAA5AAAAOQAAADiAAAA4AAAAOoAAAEUAAABLgAAAS4AAAEuAAABOgAAAVwAAAFoAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAFMAWgAAAGAAAAAAAAAAZgAAAHgAAACCAAAAioAAAI6AAACxAAAAtQAAALoAAAAAAAAAAAAAAAAAAAAAALcAAAAAAAAAAAAAAAAAAAAAAAAAAACzAAAAswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqYAAAAAAAAAAwQbAeoB6wHxAfIB8wH0AfUB9gB/Ae0CAQICAgMCBAIFAgYAgACBAgcCCAIJAgoCCwCCAIMCDAINAg4CDwIQAhEAhACFAhwCHQIeAh8CIAIhAIYAhwIiAiMCJAIlAiYAiAHsA/AAiQHuAIoCVQJWAlcCWAJZAloAiwCMAI0CYwJkAmUCZgJnAmgCaQCOAI8CagJrAmwCbQJuAm8AkACRAn4CfwKCAoMChAKFAe8B8ACSAfcCEgCpAKoC+ACrAvkC+gL7AKwArQMCAwMDBACuAwUDBgCvAwcDCACwAwkAsQMKALIDCwMMALMDDQC0ALUDDgMPAxADEQMSAxMDFAMVAL8DFwMYAMADFgDBAMIAwwDEAMUAxgDHAxkAyADJA1oDHwDNAyAAzgMhAyIDIwMkAM8A0ADRAyYDWwMnANIDKADTAykDKgDUAysA1QDWANcDLAMlANgDLQMuAy8DMAMxAzIDMwDZANoDNAM1AOUA5gDnAOgDNgDpAOoA6wM3AOwA7QDuAO8DOADwAzkDOgDxAzsA8gM8A1wDPQD9Az4A/gM/A0ADQQNCAP8BAAEBA0MDXQNEAQIBAwEEBAYDXgNfARIBEwEUARUDYANhA2MDYgEjASQECwQMBAUBJQEmAScBKAEpBAcECAEqASsEAAQBA2QDZQPyA/MBLAEtBAkECgEuAS8D9AP1ATABMQEyATMBNAE1A2YDZwP2A/cDaANpBBMEFAP4A/kBNgE3A/oD+wE4ATkBOgQEATsBPAQCBAMDagNrA2wBPQE+BBEEEgE/AUAEDQQOA/wD/QQPBBABQQN3A3YDeAN5A3oDewN8AUIBQwP+A/8DkQOSAUQBRQOTA5QEFQQWAUYDlQQXA5YDlwFiAWMEGQQYAXcD8QF5AZIDUANYA1kABAZeAAAA6gCAAAYAagAAAAIADQAhAH4AoACsAK0AvwDGAM8A5gDvAP4BDwERASUBJwEwATgBQAFTAV8BZwF+AX8BkgGhAbAB8AH7Af8CGQIbAjcCWQK8AscCyQLdAvMDAQMDAwkDDwMjA4oDjAOSA6EDsAO5A8kDzgPSA9YEJQQvBEUETwRiBG8EeQSGBM4E1wThBPUFAQUQBRMeAR4/HoUe8R7zHvkfTSALIBUgHiAiICYgMCAzIDogPCBEIHQgfyCkIKcgrCEFIRMhFiEiISYhLiFeIgIiBiIPIhIiGiIeIisiSCJgImUlyu4C9sP7BP7///3//wAAAAAAAgANACAAIgCgAKEArQCuAMAAxwDQAOcA8AD/ARABEgEmASgBMQE5AUEBVAFgAWgBfwGSAaABrwHwAfoB/AIYAhoCNwJZArwCxgLJAtgC8wMAAwMDCQMPAyMDhAOMA44DkwOjA7EDugPKA9ED1gQABCYEMARGBFAEYwRwBHoEiATPBNgE4gT2BQIFER4AHj4egB6gHvIe9B9NIAAgEyAXICAgJSAwIDIgOSA8IEQgdCB/IKMgpyCrIQUhEyEWISIhJiEuIVsiAiIGIg8iESIaIh4iKyJIImAiZCXK7gH2w/sB/v///P//AAEEGP/1AAD/4gAA/8AAAP+/AAABMQAAASwAAAEoAAABJgAAASQAAAEiAAABHAAAAR4AAP8B/vT+5wFhAAAAoQBkAGb+Yf5AAJb91P2l/cT9r/2j/aL9nf2Y/YUAAP9w/28AAAAA/QUAAP9Q/Pn89gAA/LUAAPytAAD8ogAA/JwAAP6eAAD+mwAA/EUAAOVV5RXkxeT45Fnk9uQK4VYAAOFN4UzhSuFB4xvhOeMT4TDhAeD3AADg0QAA4HXgaOBm4Fvfj+BQ4CTfgd6n33XfdN9t32rfXt9C3yvfKNvEE44KzgAAApQBmAABAAAAAAAAAOQAAADkAAAA4gAAAOAAAADqAAABFAAAAS4AAAEuAAABLgAAAToAAAFcAAABaAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAAAABTAFoAAABgAAAAAAAAAGYAAAB4AAAAggAAAIqAAACOgAAAsQAAALUAAAC6AAAAAAAAAAAAAAAAAAAAAAC3AAAAAAAAAAAAAAAAAAAAAAAAAAAAswAAALMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKmAAAAAAAAAAMEGwHqAesB8QHyAfMB9AH1AfYAfwHtAgECAgIDAgQCBQIGAIAAgQIHAggCCQIKAgsAggCDAgwCDQIOAg8CEAIRAIQAhQIcAh0CHgIfAiACIQCGAIcCIgIjAiQCJQImAIgB7APwAIkB7gCKAlUCVgJXAlgCWQJaAIsAjACNAmMCZAJlAmYCZwJoAmkAjgCPAmoCawJsAm0CbgJvAJAAkQJ+An8CggKDAoQChQHvAfAAkgH3AhIAqQCqAvgAqwL5AvoC+wCsAK0DAgMDAwQArgMFAwYArwMHAwgAsAMJALEDCgCyAwsDDACzAw0AtAC1Aw4DDwMQAxEDEgMTAxQDFQC/AxcDGADAAxYAwQDCAMMAxADFAMYAxwMZAMgAyQNaAx8AzQMgAM4DIQMiAyMDJADPANAA0QMmA1sDJwDSAygA0wMpAyoA1AMrANUA1gDXAywDJQDYAy0DLgMvAzADMQMyAzMA2QDaAzQDNQDlAOYA5wDoAzYA6QDqAOsDNwDsAO0A7gDvAzgA8AM5AzoA8QM7APIDPANcAz0A/QM+AP4DPwNAA0EDQgD/AQABAQNDA10DRAECAQMBBAQGA14DXwESARMBFAEVA2ADYQNjA2IBIwEkBAsEDAQFASUBJgEnASgBKQQHBAgBKgErBAAEAQNkA2UD8gPzASwBLQQJBAoBLgEvA/QD9QEwATEBMgEzATQBNQNmA2cD9gP3A2gDaQQTBBQD+AP5ATYBNwP6A/sBOAE5AToEBAE7ATwEAgQDA2oDawNsAT0BPgQRBBIBPwFABA0EDgP8A/0EDwQQAUEDdwN2A3gDeQN6A3sDfAFCAUMD/gP/A5EDkgFEAUUDkwOUBBUEFgFGA5UEFwOWA5cBYgFjBBkEGAF3A/EBeQGSA1ADWANZAAAAAgBSA/wCPwYYAAQACQAAAQMjETMFAyMRMwEBOHevAT44d68Fj/5tAhyJ/m0CHAAAAgA8AAAEmAWwABsAHwAAASMDIxMjNSETIzUhEzMDMxMzAzMVIwMzFSMDIwMzEyMCq+FMp0znAQU68wERTqdO4E6oTtDuOt37TKd34TrhAZr+ZgGangE5nwGg/mABoP5gn/7Hnv5mAjgBOQAAAQBk/y0EJgabACsAAAE0JicuATU0Njc1MxUeARUjNCYjIgYVFBYXHgEVFAYHFSM1LgE1MxQWMzI2AzNshdfPx7Cgr73ybmRoZGiO18rPuZ+25fOJanF4AXxXbS9JxrOq0RXa3Brty4CPa15YaTJNw7KwyxPDwhPb3pF3agAAAAAFAGT/6wWJBcUADQAbACkANwA7AAATNDYzMhYdARQGIyImNTMUFjMyNj0BNCYjIgYVATQ2MzIWHQEUBiMiJjUzFBYzMjY9ATQmIyIGFQUnARdkopKToqKRk6OpSEVDRkdEREcCE6ORkqOikZKkqUpDR0NIRERH/gV9Asd9BJiDqqqDTYOoqYJCV1dCTUJZWUL8zYKqqoJOg6mpg0FZVUVOQVlZQfhIBHJIAAAAAwA+/+sE+AXFACAAKwA4AAATNDY3LgE1NDYzMhYVFAYPAQE+ATUzFAYHFyEnDgEjIiYFMjY3AQcOARUUFgMUFhc3PgE1NCYjIgY+hYtLRsqzosRlYGQBMSksxUhLyf7nUVO4at79AeJAdzj+uB5KLnwMMDFyOiZURktOAYl6rVxhl1GvwbyKZJZGSP6WQJNWi+Jc7V87OeIgIyQBgxY5ZjFmfgOrMWQ/TCZPMjdUYQABAFIEBAELBhgABAAAAQMjETMBC0J3uQWb/mkCFAAAAAEAgP4xAqIGXwAPAAATEAA3FwYCERUQEhcHJgARgAE1vTCJvLuKML3+ywJQAZECIV2OaP5H/qIU/qL+R2+HXgIfAZIAAQAR/jECOwZfAA8AAAEQAAcnNhIRNRACJzcWABECO/7EvTGHvsKDMb0BPAJA/nP93F6HaAG/AV8UAVoBwWqIXf3Z/nUAAAAAAQAbAk8DYgWwAA4AAAElNwUDMwMlFwUTBwsBJwFF/tY1ASgNrg8BIzX+0cONsa6PA8xZqXUBV/6ic6tY/vZpAR/+6WYAAAAAAQBEAJIEKgS2AAsAAAEhFSERIxEhNSERMwKuAXz+hOz+ggF+7AMh3v5PAbHeAZUAAQAn/qsBZADrAAkAACUUBgcnPgE9ATMBY2hVfyws5Tdn3ElOSJNbvAAAAAABAEcCCQJUAs0AAwAAASE1IQJU/fMCDQIJxAAAAQCZAAABiwDpAAMAACEjNTMBi/Ly6QAAAQAC/4MC/gWwAAMAABcjATPBvwI9v30GLQAAAAIAaP/rBCMFxQANABsAAAEQAiMiAhkBEBIzMhIRJzQmIyIGFREUFjMyNjUEI/vh4f784eH983Z1dXV3dXV0AjH+3v7cASUBIQFNASEBJv7a/t8ltqmptv5ruKmouQAAAAEAygAAAt4FsAAFAAAhIxEhNSUC3vP+3wIUBKCfcQAAAQBRAAAENAXFABgAACkBNQE+ATU0JiMiBhUjNAAzMhYVFAYHASEENPw5Adp2VnBjgnrzAQXq1vCKl/63ApinAgWCn09kgo2BygEH5L+A3qb+pAAAAQBP/+sEFgXFACgAAAEzMjY1NCYjIgYVIzQkMzIWFRQGBx4BFRQEIyIkNTMUFjMyNjU0JisBAYapeWVub2V78wECztn6b2x/cv7x2s7+8POAbnOAdX+pA0ZzbWtxb16v4dTLX6sxLbB2zOHUx2N2eHJ+cgACADgAAARZBbAACgAPAAABMxUjESMRIScBMwEhEScHA6G4uPL9jwYCb/r9hwGHAxcCB8T+vQFDlQPY/FcCVgExAAAAAAEAgf/rBCYFsAAeAAAbASEVIQM+ATc2EhUUAiMiJDU3FBYzMjY1NCYjIgYHnFQDAf3JLCxvSNHk8OvE/vrremVzdXhzZl4XAosDJdL+kyApAgP+/Ora/vTRyQhsdJ2FhqM/PwACAHT/6wRGBcUAGgAnAAABMhYXBy4BIyIGHQE+ATMyEhUUAiMiABkBEAATIgYHFRQWMzI2NTQmAqhQjTouOWdIlK89nWDH3//Y4v7nATy0XX4jkndtd34FxSAcvBgb3cMHODv+89fk/ucBMgEeARYBIgFS/UpAOWi9xLOIhaIAAAEARQAABDMFsAAMAAABAAIDByM3GgE3ITUhBDP/AKsoD/MPJ+bO/P0D7gTt/tP+Mv6ompoBUAIP9MMAAAMAYf/rBCoFxQAXACMALwAAARQGBx4BFRQEIyIkNTQ2Ny4BNTQ2MzIWAzQmIyIGFRQWMzI2AzQmIyIGFRQWMzI2BAV1anqK/vnc3/75iHxqdPHNy/XNh2xug4JxbYQmcF1fbG1gXW4EMHGmLi+1es/T0897tDAtpnHGz8/8o22Eg25wfH0C/WJ5dWZldXUAAAIAUv/rBBcFxQAbACgAACUyNj0BJw4BIyICNTQAMzIAGQEQACMiJic3HgETMjY3NTQmIyIGFRQWAgOFnQMwilXV7AEKy+cBCf7c8EyeRCBAfXhdfSGAemSCdq29vSMBQUIBBPHmASL+3P7k/qv+5v7VHh64GxcB2EY7nLGvt46SpgAA//8AmQAAAYsEOgAmABAAAAAHABAAAANR//8AUf6rAY4EOgAnABD//QNRAAYADioAAAEAPwCkA4QETgAJAAABBxUXBRUBNQEVAUIREQJC/LsDRQJ9BAQE2vMBdcEBdPMAAAIAkQFkA+8D1gADAAcAAAEhNSERITUhA+/8ogNe/KIDXgMMyv2OyQABAIAApQPgBE4ACQAAEzUBFQE1JT8BJ4ADYPygAl0QAREDX+/+jMH+jO/iBAMFAAACACkAAAOgBcUAGQAdAAABPgE3PgE1NCYjIgYVIz4BMzIWFRQGBw4BFRMjNTMBVAE+cFBaZ2NVcvMC8sbW55FyOhwE+PgBnJJ2X06HVmNpWVu5xtPBgdVcM1hY/mTpAAACAEr+OwbTBZAAMwBDAAABBgIjIiYnDgEjIiY3GgEzMhYXBzMDBhYzMjY3EgAhIAADAgAhMjY3Fw4BIyAAExIAISAAAQYWMzI2NzwBNxMuASMiBgbDCeHqTGsZMIdeh44TGeSqcINSAwUzCDMseYwJEf7N/rL+yP6XDxIBRQE8WbFBJkTMZf51/mIREwHLAYMBhgGR+/4KOkc9YSgCLRgzHHl5Afvc/sxST1JN68gBBgEwMzcE/b1nStqtAXcBkv5N/o3+jP5jKCGCKy4B6gG5AbECAf4c/fSIhzBACA8NAgMJC8kAAAAAAgAaAAAFKAWwAAcACwAAASEDIwEzASMBIQMjA7r9z3j3AhfnAhD3/ZsBrNQDAVz+pAWw+lACHwJrAAAAAwCfAAAEvAWwAA8AGAAhAAAzESEyBBUUBgcVHgEVFAQjAREhMjY1NCYjJSEyNjU0JisBnwHo9QEJb2OBiP798f7KATZ+hHB6/rIBD3N+hIf1BbDDymSZJgMcvoHR0QKW/ix0bHZ+tWhlbmcAAQB0/+sE2AXFABsAAAEGACMgABkBEAAhIAAXIy4BIyIGFREUFjMyNjcE1xb+5f3+/f7OATUBAAECARUY8xOPmpirqZqXkRMB2Ob++QFRAREBFQEPAVT+/fCYmOi2/um555SXAAIAnwAABO4FsAAJABMAADMRISAAERUQACEDETMyNj0BNCYjnwHKASoBW/6i/szKw9nNys8FsP6m/uLB/uD+qQTt+9Xqy8PN5gAAAAABAJ8AAAR1BbAACwAAASERIRUhESEVIREhBA/9gwLj/CoDz/0kAn0Cj/4zwgWww/5lAAAAAQCfAAAEcgWwAAkAAAEhESMRIRUhESEEDP2G8wPT/SACegJt/ZMFsMP+QwABAHT/6wTiBcUAHwAAJQYEIyAAGQEQACEgBBcjLgEjIgYVERQWMzI2NxEhNSEE4jz+/NP+8/6yATwBAgEGAQsf7xiPlpq2xaR0iiL+3gIVvlKBAUgBDQEwAQ0BSPTagIvesv7OtN80JQEktgABAJ8AAAUQBbAACwAAISMRIREjETMRIREzBRDy/XTz8wKM8gJt/ZMFsP2AAoAAAAABAK0AAAGgBbAAAwAAISMRMwGg8/MFsAABADr/6wPmBbAADwAAATMRFAQjIiY1MxQWMzI2NQLz8/8A0N/983V0ZncFsPv10OrX239xgnYAAAEAnwAABS8FsAAMAAABIxEjETMRMwEhCQEhAjqo8/OLAckBIP30AjX+1wJ2/YoFsP2XAmn9Sf0HAAAAAAEAnwAABC8FsAAFAAAlIRUhETMBkgKd/HDzwsIFsAAAAQCfAAAGYgWwABAAAAkCIREjERMjASMBIxMRIxEB2gGmAacBO/MZA/5Mo/5OAxnzBbD7mARo+lAB8AKA+5AEbf2D/hAFsAAAAQCfAAAFEAWwAAsAACEjAQcRIxEzATcRMwUQ8v13A/PzAokD8gQrAfvWBbD71gEEKQAAAAIAdP/rBRsFxQANABsAAAEQACEgABkBEAAhIAARJzQmIyIGFREUFjMyNjUFG/61/vH+9v69AUIBCgEPAUzzwKijt7ijqb4CVf7z/qMBXgEMAQYBCwFf/qH+9QK16+q2/vi46+u4AAAAAgCfAAAE2gWwAAoAEwAAAREjESEyBBUUBCMlITI2NTQmIyEBkvMCOfYBDP709v66AUaKhYWK/roCKP3YBbD1z9Hzw45xcZIAAgB0/wkFJwXFABMAIQAAARQGBxcHJQ4BIyAAGQEQACEgABEnNCYjIgYVERQWMzI2NQUbdGvroP7tLFgv/vb+vQFCAQoBDwFM88Coo7e4o6m+AlWZ+1fSj/oLDQFeAQwBBgELAV/+of71ArXr6rb++Ljr67gAAAAAAgCfAAAE8AWwABoAIwAAAREjESEyFhUUBgceAR0BFBYXFSMuAT0BNCYjJSEyNjU0JiMhAZLzAiX3/Ht5fmkfJ/kpFntx/sYBGpWDfon+1QJc/aQFsNXQdp4yKayGeUF0Ihoii0Z1c4HDbnVxegAAAAEAU//rBKAFxQAlAAABNCYnJiQ1NCQzMgAVIzQmIyIGFRQWFx4BFRQEIyIkNTMUFjMyNgOtg676/v4BH+r0ASLzlo+HjZe47+/+4fHp/qzztJaJlAF2XHMuQs6us+H/AL1yiXNdVWsyQdiwudTu24eBawAAAQA1AAAEtQWwAAcAAAEhESMRITUhBLX+OfP+OgSABO37EwTtwwAAAAEAhv/rBPEFsAARAAABERQEISIkNREzERQWMzI2NREE8f7J/vz//s/zqZSZrwWw/DD3/v/2A9D8MJyXl5wD0AABABoAAAUQBbAACQAAARczNwEhASMBIQJ4HAMbAVsBA/355/34AQQBfW1rBDX6UAWwAAAAAQBEAAAGuwWwABMAAAE1MzUBMwEVPwETMwEjASMBIwEzAgMDARnAARwDAc7u/r7c/uQD/uTc/r7uAYQCAQQp+9QDAQUEKfpQBBz75AWwAAABAC8AAATqBbAACwAACQEhCQEhCQEhCQEhAoYBNAEf/kEB0P7d/sP+xP7hAcn+QQEdA5YCGv0u/SICI/3dAt4C0gAAAAEAEwAABO8FsAAIAAAJASEBESMRASECgAFgAQ/+B/L+DwEPAuwCxPxN/gMCDAOkAAEAWAAABHEFsAAJAAAlIRUhNQEhNSEVAXkC+PvnAtv9KwP6wsKYBFXDkgAAAQCE/rwCHAaOAAcAAAEjETMVIREhAhylpf5oAZgF0PmpvQfSAAAAAAEAFf+DA2EFsAADAAATMwEjFewCYOwFsPnTAAABAAz+vAGmBo4ABwAAEyERITUzESMMAZr+ZqenBo74Lr0GVwABADUC2QM1BbAACQAAASMBMwEjAycjBwEDzgErqwEqzaUNBA0C2QLX/SkBnTw8AAABAAP/QQOYAAAAAwAABSE1IQOY/GsDlb+/AAAAAQBKBLwCFwXGAAMAAAEjASECF8T+9wEUBLwBCgAAAAACAF7/7AQBBE4AHwAqAAAhLgEnDgEjIiY1NDY7ATU0JiMiBhUjNDYzMhYVERQWFyUyNjc1IyIGFRQWAwsLDwQ3nGKns/TlsWRgWGTz9cnB5xEV/exUhSK1bXVOIkQkRlirmqCsX1ZfT0CIxL23/h9FeDyvSDa4Z0k/RwAAAgCA/+wENgYYABIAIAAAARQCIyImJwcjETMRFz4BMzISESM0JiMiBgcRHgEzMjY1BDbZzWaRMxTS8wMxiV7P2fNxgVJsICFtUoFvAfny/uVPT4oGGP2sAURH/sn+963MR0H+N0BErZoAAAAAAQBR/+wD9wROABsAACUyNjUzFAQjIgI9ATQSMzIWFSM0JiMiBh0BFBYCO1t85f7/uPT5+fPH8+V1Yotsaq5nUaDaAS7xI/ABMOG3W3rDmiOdwAAAAgBT/+wEAwYYABIAIAAAExASMzIWFzcRMxEjJw4BIyICNTMUFjMyNjcRLgEjIgYVU9rNWocyA/PSFDWPYcva83F/TmkjI2lMf3MCDgEIAThEQQECTvnohExMARzxma5APgHYPULOqwACAFn/7AP4BE8AFQAdAAAFIgA9ATQAFzISHQEhHgEzMjY3Fw4BAyIGByE1NCYCUOr+8wEL0ODk/VYKiX5kiUJHPcKiW3QSAbRnFAEo8CjxATIB/vvjj4eiLy2mNUMDn411GWmAAAAAAAEAMQAAAuAGLQAXAAAzESM1MzU0NjMyFhcHLgEjIgYdATMVIxHWpaW/syRHLRgWLx1RTNzcA4a0fra/Cwq8BAZYVn60/HoAAAIAVP5MBAgETgAeACwAABMQEjMyFhc3MxEUBCMiJic3HgEzMjY9AScOASMiAjUzFBYzMjY3ES4BIyIGFVTezWKPNBTQ/wDsVbdPNEOPTIR+AzKIW8ve83SAUGkhImlNgHYCDgEHATlQTYn73djzLSqwISaNf1MBQEABHfCYrz8+Ado9Qc+qAAABAH0AAAQMBhgAFAAAARc+ATMyFhURIxE0JiMiBgcRIxEzAXADNZdgsL3zZGhJbibz8wOzAUtR1Of9bQKVgnA6NfzoBhgAAAACAJAAAAGDBhgAAwAHAAAhIxEzESM1MwGD8/Pz8wQ6AQnVAAAC/7D+SwGOBhgADwATAAABERQGIyImJzceATMyNjUREyM1MwGOt6klOCEOEjEVP0bt8/MEOvuHt78ICcIFB1NcBHkBDNIAAAABAIEAAAQ1BhgADAAAASMRIxEzETMBIQkBIQHib/LyaQEPARz+nwGP/uYB2f4nBhj8hAGe/hH9tQAAAAABAJAAAAGDBhgAAwAAISMRMwGD8/MGGAABAIAAAAZ1BE4AJgAAARczPgEzMhYXPgEzMhYVESMRNCYjIgYHFBYVESMRNCYjIgYHESMRAV4NAjSda2yVJzOhcKe5815gUGkZAvNgX0tmHvMEOolMUV5iW2Xb5/10Ao2NbVJJDxYK/UMCjYdzODX85gQ6AAEAfgAABAsETgAUAAABHwE+ATMyFhURIxE0JiMiBgcRIxEBXA4CNZ5mrbnzY2lJbSXzBDqXAVJayd39WAKmfWQ+OPzvBDoAAAIAU//sBDQETgANABsAABM0ADMyAB0BFAAjIgA1MxQWMzI2PQE0JiMiBhVTAQTr7QEF/vzs7f7883qEgnx8hIJ6Aif2ATH+0PcV+P7SAS74osLDoRWexsaeAAAAAgCA/mAENAROABIAIAAAARQCIyImJwcRIxEzFz4BMzISESM0JiMiBgcRHgEzMjY1BDTayl6KMgPz2RA0j2HM2/J6f01pICBoUH94Afnx/uQ/PwH99wXagkpM/sj++KnQQDv+Fzo7s5gAAAAAAgBT/mAD/AROABIAIAAAExASMzIWFzczESMRJw4BIyICNTMUFjMyNjcRLgEjIgYVU9rNXos0E9LzAzGEWcva83F/S2YiI2VJf3MCDgEIAThJSH36JgIDATw8ARzxmbI6OAH4NzzRrAABAIAAAALDBE4AEAAAASciBgcRIxEzFzM+ATMyFhcCpnNIXhrz3g8DKX5VGDAPA1wEOjf9EQQ6mFFbBwUAAAAAAQBR/+wDzwROACUAAAE0JicuATU0NjMyFhUjNCYjIgYVFBYXHgEVFAYjIiY1Mx4BMzI2AuBdhsbD47/K5/JkW1paVIjQwe3J1/HrBH5eYGQBJjlIHSqUhIu9wZhEX046OkEbK5WHlbLWk2BTRgAAAAEAGf/sAnAFQQAXAAABETMVIxEUFjMyNjcXDgEjIiY1ESM1MxEBocPDMSsZLBQaIV4xg4+VlQVB/vm0/apFNgcGshAUmasCVrQBBwABAHv/7AQKBDoAFAAAJScOASMiJjURMxEUFjMyNjcRMxEjAyICNJhnssDyWl9ZdSPz2JABUVTY7wKH/XeRbj48Aw77xgAAAAABACAAAAP1BDoACQAAARczNxMzASMBMwH4FAMU1/v+gNP+fvsBbl9fAsz7xgQ6AAABACUAAAXQBDoAFQAAARczNxMzExczNxMzASMDJyMHAyMBMwGzCgMN1bHWDgMPnun+2MfPFwMWzsf+2OkBdkhGAsb9OlNaAr/7xgKbaGf9ZAQ6AAABACEAAAPtBDoACwAAARMhCQEhCwEhCQEhAgTIARf+rAFe/uzR0f7qAV7+rAEUAscBc/3p/d0BfP6EAiMCFwAAAQAQ/ksD/AQ6ABUAAAEXMxMhAQ4BIyImJzceATMyNj8BASEB5xkD7wEK/kAqmpIeRSAbDi4NRUAlKP53AQkBsnEC+fsicaAMCLwBBEBVYgQtAAAAAQBVAAADxAQ6AAkAACUhFSE1ASE1IRUBggJC/JECIv3pA0rCwp8C18SaAAABADj+mAKRBj0AHgAAAS4BPQE0JiM1MjY9ATQ2NxcOAR0BFAYHHgEdARQWFwJhx6FdZGRdoccwZE9UWVlUT2T+mDjsrstqcrJybMuu6ziMIqR/y2qeLjCeaMt/pCIAAAABAK7+8gFVBbAAAwAAASMRMwFVp6f+8ga+AAAAAQAb/pgCdQY9AB4AABc+AT0BNDY3LgE9ATQmJzceAR0BFBYzFSIGHQEUBgcbY1FXX19XUWMwxqJcZmZcosbbIqR/y2udLSyebct/pCKMOOqvy2xysnJqy6/rOAABAHUBgwTcAy8AGQAAARQGIyImJy4BIyIGFSc0NjMyFhceATMyNjUE3K2IWY1VOVUvPVOqqolXlFI3VDA8VQLumtE/SS4sZUoWmcpCRTAqa0wAAAACAI/+igGCBDoAAwAHAAABIxEzESM1MwGC8/Pz8/6KA8QBAesAAAAAAQBo/wsEDgUmACEAACUyNjUzFAYHFSM1JgI9ATQSNzUzFR4BFSM0JiMiBh0BFBYCUlt85caZyL/AwL/Ior3ldWKLbGquZ1GLzBvp6yMBH9Mj0QEhJOLfG9efW3rDmiOdwAAAAAEAUQAABGsFxQAhAAABFxQGByEHITUzPgE1JyM1Myc0NjMyFhUjNCYjIgYVFyEVAecFLCsC1gH8JgowLgWimwnkx9Pi82tXV2EJAYUCV3FTljvCwg2vYHnE7tPp17prY4F47sQAAAAAAgBd/+UFTwTxACMALwAAJQ4BIyImJwcnNy4BNTQ2Nyc3Fz4BMzIWFzcXBx4BFRQGBxcHARQWMzI2NTQmIyIGBD1OtmZntE2BjYcyMjc2kI2OTKxjYq5NkY6UNDcyMIuO/Hjsrq3s7K2v62s/QEA+hJCJTq9kZ7ZQk5CRODs8OZSRl0+0ZmOtTY2RAnu9/v69u/39AAEAGgAABL4FsAAWAAAJASEBIRUhFSEVIREjESE1ITUhNSEBIQJsAUMBD/5zART+nQFj/p3z/psBZf6bAR/+cQEQAzACgP02k4+S/s4BMpKPkwLKAAIAiP7yAW0FsAADAAcAABMRMxkBIxEziOXl5f7yAxv85QPIAvYAAAACAFr+JASMBcUAMQBDAAABFAYHHgEVFAQjIiQ1NxQWMzI2NTQmJy4BNTQ2Ny4BNTQkMzIEFSM0JiMiBhUUFhceASUuAScOARUUFhceARc+ATU0JgSMV1REQ/707Of+0fKofH2Jgr/34FZTREEBDuvzAQnzin+FgXbI+eD9zSpOJTg0eMY2RCE4O4UBx1+HKzOHY7PCx+MBfGxhT09XOUG1slyJLTOIY63K3dFnhGNPWFM1RLQpCxgOFVQ7Wlk4EBULFlQ6UV8AAAIApATkA3kFsAADAAcAAAEjNTMFIzUzA3ny8v4c8fEE5MzMzAAAAAADAFf/6wXiBcQAGwAnADMAAAEUBiMiJj0BNDYzMhYVIzQmIyIGHQEUFjMyNjUlEAAzMgAREAAjIgADEAAhIAAREAAhIAAEXq6hpLm6o6CwnFhcYGNjYFxX/Q8BUvr5AVL+rvn7/q96AZgBLgEsAZn+Z/7U/tL+aAJUnpzRsnew056cX1SIc3h2hlFihf7z/pwBZAENAQwBYv6e/vQBQQGq/lb+v/6+/lQBqwAAAgB0ArQDEQXFAB8AKgAAAS4BJw4BIyImNTQ2OwE1NCYjIgYVJzQ2MzIWFREUFhclMjY3NSMiBhUUFgJgCAoDIm1PeYCmpYk5O0NHraiPiZoLD/6HNGkTiExROQLCFS8aMDx4bHF2Mz9AMzAOaIGMiP7GNFYrgjkkaT8vLCwAAP//AFQAdAOFA5MAJgFy6N0ABwFyAVL/3QABAH8BdgPCAyUABQAAASMRITUhA8LI/YUDQwF2AQSrAAQAV//rBeIFxAALABcAMgA7AAATEAAhIAAREAAhIAATEAAzMgAREAAjIgABESMRITIWFRQGBx4BHQEUFhcVIy4BPQE0JiMnMzI2NTQmKwFXAZgBLgEsAZn+Z/7U/tL+aHoBUvr5AVL+rvn7/q8BvJcBGZqrPDw/NgcKmwkEQU6ej0VdTGOCAtkBQQGq/lb+v/6+/lQBqwFD/vP+nAFkAQ0BDAFi/p7+qP6vA1KDgTxZHx1qTDgqQBUQFk8rNklChjw4SjgAAAAAAQCHBRIDXgWwAAMAAAEhNSEDXv0pAtcFEp4AAAIAfwOwAosFxQALABcAABM0NjMyFhUUBiMiJjcUFjMyNjU0JiMiBn+Zb22Xl21vmYtINTRGRjQ1SAS4cJ2dcHGXmHA2RkU3N0lJAAACAF8AAAPzBQoACwAPAAABIRUhESMRITUhETMBITUhApwBV/6p1/6aAWbXASj8vQNDA4rH/nUBi8cBgPr2xAAAAQBtApsC1wXHABgAAAEhNQE+ATU0JiMiBhUjNDYzMhYVFAYPASEC1/2hATFCJjI3Pj++qpSOmF96iAFnApuRAQA3RCotNzsxbZGAd1Nya3QAAAAAAQBhAo8C7AXGACgAAAEyNjU0JiMiBhUjNDYzMhYVFAYHHgEVFAYjIiY1MxQWMzI2NTQmKwE1AaJCPEA/Nj6/q4WYqUY+R0qxmIq4v0Q+QkpFR3sEczQxKDQsImh4dXA4WRoYXkVyenh3LDIzLjk2gwAAAAABAHgEvAJMBcYAAwAAASEBIwE3ARX+6b0Fxv72AAAAAAEAkv5gBB8EOgAVAAABERQWMzI2NxEzESMnDgEjIiYnESMRAYRiY1lsHvPfBy50TT9gJ/IEOv2UqnU8PQMS+8ZWNjUaHf4+BdoAAAABAD4AAANwBbAACgAAIREjIiY1NBIzIRECfVPu/v/tAUYCCP/V0wEB+lAAAAEAoAJSAZIDQgADAAABIzUzAZLy8gJS8AAAAAABAG3+QQHJAAMADwAAJQceARUUBiMnMjY1NCYnNwE+C0FVpqEHP0pDVCADNgtRUWh3iSwtLSMFiwAAAAABAGQCmQGjBcUABQAAASMRIzUlAaPAfwE/ApkCf5YXAAIAdwKzAywFxQANABsAABM0NjMyFh0BFAYjIiY1MxQWMzI2PQE0JiMiBhV3uaGiubmgorqvVldUVldVVVYEdpe4uJd1mLa2mFdlZVd1VGdnVAAA//8AXACXA5kDtgAmAXMIAAAHAXMBfgAA//8AmwAABccFxAAnAckARAKYACcBdAD8AAgABwGXAqIAAAAA//8AkwAABdkFxAAnAXQBAQAIACcByQA8ApgABwHKAwQAAAAA//8AZgAABoMFxwAnAXQBwgAIACcBlwNeAAAABwHLAAYCmwAAAAIAYP52A9gEOgAZAB0AAAEOAQcOARUUFjMyNjczDgEjIiY1NDY3PgE1AzMVIwKsAj1wUlhmZVNyAvMD88TY5pBzOR4E+PgCnZN1XlGFVWNpWlu6xdLAgdZbMlhZAZ3pAAL/9gAAB1cFsAAPABMAACkBAyEDIQEhFSETIRUhEyEBIQMnB1f8fg/+Crj+3gNDA+D9ehECJP3kFAKX+u0BeRsDAVT+rAWwxf5oxf42AWcCggEAAAEATQDWA+wEhgALAAATCQE3CQEXCQEHCQFNATz+xJQBOwE8lP7EATyU/sT+xQFsAUIBQpb+vgFClv6+/r6WAUH+vwAAAwBp/6EFEAXuABkAJAAvAAABEAAhIiYnByM3LgE1ERAAITIWFzczBx4BFQEUFhcBLgEjIgYVITQmJwEeATMyNjUFEP61/vFVkkFYlIVdYQFCAQphpklRlIJSVvxLISIB+i9wRKO3AsIZGf4NKF44qb4CVf7z/qMmJpbiV+2OAQYBCwFfMS+J3Ffegv76TYM2A1woKuq2PnAy/K8dHeu4AAIAlAAABH4FsAAMABUAAAERMzIEFRQEKwERIxETETMyNjU0JiMBh/b3AQr+9vf28/P2ioSEigWw/ujvx8ju/tQFsP4l/hqJaGqLAAABAIj/7ASbBh8AJwAAISMRNDYzMhYVFAYVFAAVFAYjIiYnNx4BMzI2NTQANTQ2NTQmIyIGFQF68vLOrdh2AUTWyVGoKDEsdkBfXP67fl5AXW0EReX1tLB0yz9F/uiNt7AjG8QaJlFITQERlFbPTVFgkocAAAMANP/rBoQETgAsADcAPwAABSImJw4BIyImNTQ2OwE1NCYjIgYVJzQ2MzIWFz4BMzISHQEhHgEzMjY3Fw4BJTI2NzUjIgYVFBYBIgYHITU0JgTmh8hEPdGYuMHt685bWF5q8u/Nbqc5QKVm2uj9UAiKjmR6U0k6xvxuRZApzG94WQNCanMOAb1kFVdVS2GwnaGpR11lWUITk7hBQUBC/v7ojYufLS+lLku5SDK9YEdCTgLnjnsebH8AAAAAAgA8/+sETgXtACEAMQAAARYSHQEQACMiADU0ADMyFhc3LgEnByc3LgEnNx4BFzM3FwM0JjUuASMiBhUUFjMyNjUDcWty/tjl6P7jAQ3iUIs4AxdQOfxO2CNIJ0tRj0IB2k7YASSOaICRlIJ/lwUDef7ExVf++v6/ARXU5wESNS4CWY86jm16FCENxBVFMXtt/RsDDwQxP7KLe6zYrQAAAAMAQwCqBDcEtgADAAcACwAAASE1ISUjNTMRIzUzBDf8DAP0/oHz8/PzAkbUv9379N0AAAADAFP/dgQ0BLwAGQAkAC8AABM0ADMyFhc3MwceAR0BFAAjIiYnByM3LgE1MxQWFwEuASMiBhUhNCYnAR4BMzI2NVMBBOs2YS5IkGhdYP787DFZKkiQZmVm8x0gASoYNR6CegH8Ghr+2xMtG4J8Aif2ATETEZLTS+WSFfj+0g8Ok89J65lPgDACYAsNxp5Gdy/9qwkHw6EAAAIAh/5gBDsGGAATACEAAAEUAiMiJicHESMRMxEXPgEzMhIRIzQmIyIGBxEeATMyNjUEO9rKXooyA/PzAzGKXMzb8np/TWkgIGhQf3gB+fH+5D8/Af33B7j9sgFBRP7I/vip0EA7/hc6O7OYAAIAGAAABZYFsAATABcAAAEzFSMRIxEhESMRIzUzETMRIREzASE1IQUPh4fy/XTzhobzAozy/IICjP10BKSi+/4Cbf2TBAKiAQz+9AEM/YDSAAAAAAEAjwAAAYIEOgADAAAhIxEzAYLz8wQ6AAEAjgAABGsEOgAMAAABIxEjETMRMwEhCQEhAe9v8vJVAVABLP5cAb7+ywGs/lQEOv5QAbD9+v3MAAAAAAEAGwAABCAFsAANAAABJRUFESEVIREHNTcRMwGDAQL+/gKd/HB1dfMDYU64Tv4ZwgJfI7gjApkAAQAbAAACKAYYAAsAAAE3FQcRIxEHNTcRMwGXkZHziYnzA3s0uDT9PQJtMbgxAvMAAQCT/ksFBAWwABgAAAERFAYjIiYnNx4BMzI2PQEBBxEjETMBNxEFBLipJTkhDhE8FjxA/XgD8/MCiAMFsPoRtsAICb8FCF1WPwQdAfvkBbD74wEEHAAAAAEAfv5LBAYETgAgAAABHwE+ATMyFhURFAYjIiYnNx4BMzI2NRE0JiMiBgcRIxEBXA0DNZtkrbm4qSQ6IQ4SOxY8QGBmTGwk8wQ6kQFPV8vi/SC2wAgJxgUHVlUC3oBoNTL84AQ6AAAAAgBl/+sHVgXFABcAJQAAKQEOASMgABkBEAAhMhYXIRUhESEVIREhBTI2NxEuASMiBhURFBYHVvx1XX9E/vf+wwE7AQlGjFADhP0kAn39gwLj+1U3aTU7ZzWjr7EKCwFGAQ8BMAEOAUcMCcP+ZcP+MxQICAQ0BwnJx/7OyMoAAAADAFv/6wbyBE4AIQAvADcAABM0ADMyFhc+ATMyEh0BIR4BMzI2NxcOASMiJicOASMiADUzFBYzMjY9ATQmIyIGFQEiBgchNTQmWwED7H6/QkK1buDk/VYKiX5kikFPQMSIfsFEQr587f788nuEgnt8g4J7A+FbdBIBtWgCJ/cBMFtWVlv+++OPh6MvLp84SFlVVVkBL/iiw8ShFZ7Gxp4BZI50GWiBAAABAIsAAAKVBi0ADwAAMxE0NjMyFhcHLgEjIgYVEYu/syRHLRkXKRxRUgS4tr8LCrkFBlxW+0gAAAH/3f5LAtMGLQAjAAABIxEUBiMiJic3HgEzMjY1ESM1MzU0NjMyFhcHLgEjIgYdATMChMm3qSU5IA8ROhY7QKWlwLMkRi4ZFDEcUU3JA4b8O7e/CAm/BQhdVgPFtH62vwsKvAQGWFZ+AAAAAAIAZv/rBa8GLgAXACUAAAEQACEgABkBEAAhMhYXPgE1MxQGBx4BFSc0JiMiBhURFBYzMjY1BQ3+tf7x/vb+vQFCAQqB1FNTRrx2eiYo88Coo7e4o6m+AlX+8/6jAV4BDAEGAQsBX1dRDYZ+p8slSJ1XArXr6rb++Ljr67gAAAAAAgBS/+wEvASpABcAJQAAEzQAMzIWFz4BNTMUBgceAR0BFAAjIgA1MxQWMzI2PQE0JiMiBhVSAQTrc7NCQCuoXmkeIP787O3+/PN6hIJ8fISCegIn9gExTUgTcmuQriJCj1EV+P7SAS74osLDoRWexsaeAAABAIb/6wZLBhAAGQAAARU+ATUzFAYHERQEISIkNREzERQWMzI2NREE8V1BvKC6/sn+/P/+z/OplJmvBbDNFo6J0eAV/Zb3/v/2A9D8MJyXl5wD0AABAHv/7AUpBJQAHAAAARQGBxEjLwEOASMiJjURMxEUFjMyNjcRMxU+ATUFKX6h2BACNJhnssDyWl9ZdSPzVDAElKunDvzMkAFRVNjvAof9d5FuPjwDDosNZXMAAAH/tf5LAZMEOgAPAAABERQGIyImJzceATMyNjURAZO3qSQ5IQ8SORY7QQQ6+4e3vwgJvwUIXVYEeQAAAAIAWf/sA/gEUAAVAB0AAAEyAB0BFAAnIgI9ASEuASMiBgcnPgETMjY3IRUUFgIA6gEO/vTP4eMCqgyJfGWJQU8/xaVZdBT+S2cEUP7W8Cjy/tABAQPkj4akMC2fN0r8X4x2GWmAAAAAAQCbBOQDPAXuAAgAAAEVIycHIzUlMwM8vJaVugEIjwT8GJKSGvAAAAEAeQTkAy0F8QAIAAABNzMVBSMlNTMB0ovQ/vSd/vXOBWKPEfz6EwABAHUElQL7BbAADQAAARQGIyImNTMUFjMyNjUC+62Wl6y2Q0pJQwWwgpmZgj9MTD8AAAAAAQCaBNcBnQW2AAMAAAEhNSEBnf79AQME198AAAIAggRUAiYF3AALABcAABM0NjMyFhUUBiMiJjcUFjMyNjU0JiMiBoJ6Wlh4d1lbeW46LCs3NyssOgUWVnBwVldra1csOTgtLjo7AAABACn+UgGhADwAEwAAIQ4BFRQWMzI2NxcOASMiJjU0NjcBjFBRICcaKhYVIU03XnV6hjNcOCEjDQqOExlpYFWROwAAAAEAgATWA1EF9wATAAABFAYjIiYjIgYVJzQ2MzIWMzI2NQNRdlxJojQoNYN1XDqwNSc3BdBhhFlALiNgiVk/LwACAHoE5AObBe4AAwAHAAABIQEjAzMDIwKbAQD+1cpu8vW7Be7+9gEK/vYAAAIAq/5+Afr/uAALABcAABc0NjMyFhUUBiMiJjcUFjMyNjU0JiMiBqthSUZfXkdKYGUnHhsmJhseJ+dGWVlGRVZWRR0mJxwfJycAAAAB/NsEs/4qBf0AAwAAASMDM/4qmbbQBLMBSgAAAf02BLb+hgYBAAMAAAEzAyP9uM6+kgYB/rUA///8eQTW/0oF9wAHAKD7+QAAAAAAAf0+BOb+mQZ/AA8AAAEnPgE1NCYjNzIWFRQGBxX9UQdNPU5IB6mrVUEE5pIEHSMnIXtlW0VHCEUAAAAAAvwMBOT/NAXuAAMABwAAASMBIQEjAzP+B9D+1QEGAiLD9foE5AEK/vYBCgAB/SL+pf4w/4QAAwAAASE1If4w/vIBDv6l3wAAAQDXBPYCDQZwAAMAAAEzAyMBG/LAdgZw/oYAAAMAnQTkA44GpAADAAcACwAAASM1MwUjNTM3MwMjA47a2v3p2tp4+JWSBOTMzMz0/tcAAP//AKACUgGSA0ICBgB2AAAAAQCfAAAENwWwAAUAAAEhESMRIQQ3/VvzA5gE7fsTBbAAAAAAAgAaAAAFmAWwAAMABgAAATMBISUhAQJz5wI++oIBSALy/pAFsPpQwgPOAAADAGb/6wUNBcUAAwARAB8AAAEhNSEFEAAhIAAZARAAISAAESc0JiMiBhURFBYzMjY1A6P+QAHAAWr+tf7x/vb+vQFCAQoBDwFM88Coo7e4o6m+AnnD5/7z/qMBXgEMAQYBCwFf/qH+9QK16+q2/vi46+u4AAEAIwAABREFsAAHAAABIwEjATMBIwKbA/6G+wID5wIE/AR0+4wFsPpQAAAAAwBwAAAELQWwAAMABwALAAA3IRUhEyEVIQMhFSFwA738Q2AC9/0JVgOa/GbCwgNMvwMjwwAAAAABAJ8AAAURBbAABwAAISMRIREjESEFEfL9c/MEcgTt+xMFsAABAEcAAARMBbAADAAACQEhFSE1CQE1IRUhAQMW/m0Cyfv7Ac7+MgPf/V4BkgLP/fTDmAJBAj+Yw/32AAADAEsAAAWjBbAAEQAYAB8AAAEWABUUAAcVIzUmADU0ADc1MwEUFhcRDgEFNCYnET4BA3H5ATn+x/ny/P7IATj88v3JqJ2dqAN5p5uaqAT+BP7S+vr+1AKqqgEBK/r7ATADsv0gprQBAr4CuKeotgP9QgG2AAEASAAABVEFsAAXAAABPgE1ETMREAAHESMRJgAZATMRFBYXETMDQoqS8/7m9fLz/uvykYXyAjgXwakB9/4J/v7+1Rn+jQFyGAErAQQB9/4JpsEZA3cAAAABAGwAAATaBcUAJAAAJTYSPQE0JiMiBh0BFBIXFSE1MzcmAj0BEAAhIAARFRQCBzMVIQLfeYGilZWghHz+DOcBcoMBNQEBAQEBN4Vy8f4LyB0BDPhp1tjY1mn5/vQcyMQDXgEho2cBHAFZ/qf+5Gek/uBhxAAAAAACAFb/6wR5BE4AHAArAAABERQWMzI2NxcOASMiJicOASMiAj0BEBIzMhYXNwEUFjMyNjc1ES4BIyIGFQP9JSQHDgYYHzomUmsaM5Bky9vbzV6KNBP+HHF/TGQiImRKf3MEOf0KTzsCArQRDU1UUVABHfEVAQgBOE1Lg/3AmbNGQw0BukVJ0awAAgCW/ncEagXEABQAKgAAATIWFRQGBx4BFRQGIyImJxEjETQkEzI2NTQmIyIGFREeATMyNjU0JisBNQJp0fBhWnqB8tFQkj3yAQ3CbmRrY2N+KnxPdoR3bHkFxNK4YJoxLbqD1eQoK/44Bai37v2ZbWdXeX5k/OEoKodvbpK5AAABACD+XwP1BDoACwAAATMBESMRATMTFzM3Avr7/o/z/o/73RQDFAQ6+/D+NQHQBAv9NF9fAAAAAAIAVP/sBDgGIAAhAC8AABM0NjMyFhcHLgEjIgYVFBYXFhIdARQAIyIAPQE0Nj8BLgETFBYzMjY9ATQmJyIGFdDRwEyYUiw6h0ZQWFBv5Nn++uru/vqyiQReZXZ/g39/jHKBgQTqk6MsKKMWIj00KlAmUf7s0xTw/tgBJO4UqvMjCymI/X2cwsKcFHjKGMOXAAEAYP/sBAwETQAoAAATNDY3LgE1NDYzMhYVIzQmIyIGFRQWOwEVIyIGFRQWMzI2NTMUBCMiJGBmZVlf9NbA/vJ4W2hoYmfHx25ud2xofPL+8cDW/vkBMlx9IiR3SpmisJY9TlI6QEetSE5AVlpBqqusAAAAAQBh/n4DygWwACAAAAEVAQ4BFRQWHwEeARUOAQcnPgE1NCYvAS4BNTQSNxMhNQPK/qN6ZURRbJt5AX5NfTAtPUlSs5CGkOv9xAWwkf5bjsqLXlkTIC5RcU61PGU2UyQjMBIVL6iejQEoqwEOwwAAAAEAfv5hBAYETgAUAAABHwE+ATMyFhURIxE0JiMiBgcRIxEBXA0DNZtkr7fzYWVMbCTzBDqRAU9Xxej7wAQ+gWs3M/zfBDoAAAMAc//rBC4FxQANABYAHwAAARACIyICGQEQEjMyEhEDIRUUFjMyNjUBITU0JiMiBhUELvvh4f784eH98/4rd3V1dP4rAdV2dXV1AjH+3v7cASUBIQFNASEBJv7a/t/+/Gy4qai5ASprtqmptgAAAAABAKn/6wJ+BDkADwAAAREUFjMyNjcXDgEjIiY1EQGcMC4bKRomL1Y3i44EOfzvRDILC7EZE5qqAwoAAAABABb/7gRKBfQAIQAAKQEBJy4BIyIGByc+ATMyFhcBHgEzOgE3Fw4BIyImJwMjBwEf/vcBgVYWOCsRGAsDGFUhZ2sfAbAULCMMEAcEFDAab3YtzwMXBA7IMSoBAbUGCk5V+8QxLQHABAZYfAIkZwAAAQBk/nYD1AXEADEAAAEuASMiBhUUFjsBFSMiBhUUFh8BHgEVDgEHJz4BNTQmLwEuATU0Njc1LgE1NCQzMhYXA4NKYDeDf4OQko+wr4tyapSCAn9MfTQpO0su7uGck293AQHkUoc9BNsTEVpIWGDGjJFvgBgYIlpzTrY6ZDpJLSkqEQszvtaRwS8DJ41hrb4XFAAAAAEAT//rBOoEOgAXAAABIxEUFjMyNjcXDgEjIiY1ESERIxEjNSEEj4cwLhspGiYvVjeLjv628ooEQAN9/atEMgsLsRkTmqoCTvyDA329AAAAAgCA/mAEMQROAA8AHQAAARQCIyImJxEjETQAMzISESM0JiMiBhURHgEzMjY1BDHYyV2LNfMBAtTp8vNxfXBtIGhQfnUB+fL+5Ts8/f0D3/YBGf7K/vat0MuN/vA6O7KZAAAAAAEAUv6KA+kETgAhAAABMhYVIzQmIyIGHQEUFhceARcOAQcnPgE1NCYnLgE9ATQSAjjG6+RnZn91j5+lfgMBfU1/NCk8RvLl/QRO1sJed8mUI4WZLDBVc062O2U6Si0oKw8699gj7QEzAAAAAAIAUv/sBH0EOgARAB8AAAEhBx4BHQEUACMiAD0BNAAzIQEUFjMyNj0BNCYjIgYVBH3++wFVYf785e3++wEE7AI7/Mh6hX54eX+DegN2A0S/chXb/t4BLvgV7gEl/diiwsOhFZW6upUAAQBA/+sD7QQ6ABMAAAEhERQWMzI2NxcOASMiJjURITUhA+3+lTAuGykaJi9WN4uO/rEDrQN5/a9EMgsLsRkTmqoCSsEAAAAAAQCA/+sECAQ6ABUAAAERFBYzMjY1LgEnMx4BFRACIyImNREBclVMeIoDOjTxND/098nUBDr9bYZ07J1/+4pq/pz+/P651+cCkQAAAAIARP4iBYUEQQAZACMAAAUkADU0EjcXDgEHFBYXETQ2MzIAFRQABREjEz4BNS4BIyIGFQJl/uD+/3t2mExHA4yim3/qARz++P7b8/OmlAOGeh4ZDh8BQvGkAQNVkkm7ZpjUIAKEdZD+x+Hl/ssc/jEClB3IjJTCIhcAAAABAE/+IgV+BDoAGwAAARE+ATUuASczHgEVFAAFESMRJAAZATMRFBYXEQNSpZUDPTXuN0L++/7Z8/7+/vLzlYgEOvx9H9aYfPSGaPeX9f69HP4yAdAeASUBHAHp/hW6wRwDggAAAQBm/+sGLQQ6ACgAAAEOAQcUFjMyNjURMxEUFjMyNjUuASczHgEVEAIjIiYnDgEjIgIRNDY3AeVCSANXYldk+2RXYlcESEDxQE3C3nSiLi+gc+DBTEEEOof8gbDZkKMBRf67o5DYsYD9h2r+nP70/sFvb29vAT8BDJz+agAAAAACAHX/7AThBcQAGQAkAAAlMjY3LgE9ATQ2MzIWFREQACEgABkBNxEUFhMUFhcRNCYjIgYVAqmVpgTJ9rubp7v+zP78/wD+zPqm8nVsODk0PLbHtgzvuVu0zs28/gT+7f7AAU0BBgKlAv1ZsdgDL2WECwFZVlJUVAAB/+4AAASFBcIAIwAAAT4BMzIWFwcuASMiBgcBESMRAS4BIyIGByc+ATMyFhcTFzM3AvI5hWogMxgYBBsNIzcR/tvy/twSNiIPGgMXFzEiaoQ5pRMEEwTEjnAJDMACAysn/W398wISAo4nKwMCwAwJbY7+d1VVAAACADP/6wZUBDoAFgAsAAABIx4BFRACIyImJw4BIyICETQ2NyM1IQEuASchDgEHFBYzMjY9ATMVFBYzMjYGVIAaHbbQeKUtLqV30LUbG28GIf7FAyAe/MYeIAJKVFpp+mdbU0sDg02jXf70/sFxcnJxAT8BDF2kTLf9/FOjV1ekUrDZkKPi4qOQ2AAAAAEAJP/xBbsFsAAbAAABIRE+ATMyBBUUBiEnMjY1LgEjIgYHESMRITUhBJH+D06EOPwBFf/+9QGgeAGPjkKFQ/P+dwRtBO3+ZhMY6d/U8bqIfH2HEBD9bQTtwwAAAQBy/+wE1gXGAB8AAAEGACMgABkBEAAhIAAXIy4BIyIGHQEhFSEVFBYzMjY3BNUW/uX9/v3+zgE1AQABAgEVGPMTj5qYqwIB/f+pmpeREwHZ5v75AVEBEQEVAQ8BVP798JiY6LYmwy6555SXAAAAAAIALgAACEMFsAAWAB8AAAERITIEFRQEIyERIREQAiEjNTMyEhkBAREhMjY1NCYjBQoBNPUBEP7w9f3Z/kDs/vMwKJh3A6UBNImKiYoFsP3r/dHR/ATt/iD+Xf6WwgEDAUgCo/0o/eqac3GYAAIAnwAACEoFsAASABsAAAEhETMRITIEFRQEIyERIREjETMBESEyNjU0JiMBkgKM8wE09gEP/vH2/dn9dPPzA38BNIqJiYoDRAJs/cnwycz0AoH9fwWw/Qb+FIttaooAAAEANQAABcsFsAAXAAABIRE+ATMgBBURIxE0JiMiBgcRIxEhNSEEmP4LQ4xPAQEBCfKClkeQR/P+hQRjBO3+jw4P2vX+NgHKmnEQDv1JBO3DAAAAAAEAmf6YBQsFsAALAAATMxEhETMRIREjESGZ8wKM8/5K8/43BbD7EgTu+lD+mAFoAAIAlAAABMEFsAAMABUAAAEhESEyBBUUBCMhESEBESEyNjU0JiMELP1bATT4AQ7+8ff92QOY/VsBNIqJiIsE7f6Q7M7Q8wWw/Qr+CJFybocAAgAm/pkF2wWwAA4AFQAAASMRIREjAzM2EhsBIREzAQYCByERIQXR6fwx7Ad3T3gIJQOPu/yGCVtLAnv+S/6aAWb+mQIpTgEtAR8CVPsSApro/r5wBCsAAAEAGAAAB4kFsAAVAAABIxEjESMBIQkBIQEzETMRMwEhCQEhBPCi8qn+k/7SAdf+SgEkAWGe8pgBXgEk/k0B1P7SAnv9hQJ7/YUDBwKp/ZwCZP2cAmT9WPz4AAAAAQBK/+sEewXFACgAAAEyNjU0JiMiBhUjNCQzMgQVFAYHHgEVFAQjIiQ1MxQWMzI2NTQmKwE1AmiKgI2NcpTzASDZ+AEVeG58gP7V+Nr+zPOcf5CgjpKqA0dza2F8d1673dTMZqMwLKl/zeDU1WSDgWl9csEAAAAAAQCaAAAFCwWwAAsAAAEzESMRIwEjETMRMwQY8/MD/Xjz8wMFsPpQBBj76AWw++kAAQAuAAAFCgWwAA8AAAERIxEhAwoBKwE1Mz4BGwEFCvP+OREPzvY+KIliDBgFsPpQBO3+IP5W/p3CBfYBUAKjAAEAP//rBNkFsAAVAAABFzMBIQEOASMiJic3HgEzMjY/AQEhAmgzAwEvAQz+Cj6WnxlCDAIKPBFMRCAf/g4BCgMekgMk+1KMiwQCwAICRkpFBC4AAAMAT//EBhkF7AAVAB4AJwAAATMgABEQACEjFSM1IyAAERAAITM1MwEiBhUUFjsBETMRMzI2NTQmIwOvDwELAVD+r/72D/MT/vX+sQFPAQsT8/76r7u6sBPzEa28u64FJv66/vL+9P69v78BQQEMAQ8BR8b+cM6+u8gDD/zxyru9zQAAAAEAmf6hBbYFsAALAAATMxEhETMRMwMjESGZ8wKM86sU3fvUBbD7EgTu+xX93AFfAAEAjwAABOkFsAATAAABESMRDgEjICQ1ETMRFBYzMjY3EQTp81CrYf7+/vfzgZdVs1QFsPpQAkEWFdr1Acv+NZtwFhYCqgAAAAEAngAABvwFsAALAAABESERMxEhETMRIREBkQHF8gHB8/miBbD7EgTu+xIE7vpQBbAAAAABAJ7+oQetBbAADwAAAREhETMRIREzETMDIxEhEQGRAcXyAcHzsRTd+eIFsPsSBO77EgTu+xP93gFfBbAAAAAAAgAYAAAF0wWwAAwAFQAAEyERITIEFRQEIyERIQERITI2NTQmIxgCgQE0+AEO/vH3/dn+cgKBATSKiYiLBbD9zezO0PME7f3N/giRcm6HAAADAJ8AAAZZBbAACgAOABcAAAEhMgQVFAQjIREzASMRMwERITI2NTQmIwGSATT4AQ7+8ff92fMEx/Pz+zkBNIqJiIsDfezO0PMFsPpQBbD9Cv4IkXJuhwAAAgCUAAAEwQWwAAoAEwAAASEyBBUUBCMhETMZASEyNjU0JiMBhwE0+AEO/vH3/dnzATSKiYiLA33sztDzBbD9Cv4IkXJuhwAAAQCI/+wE1wXGAB8AABM0ADMyABkBEAAjIAA1MxQWMzI2PQEhNSE1NCYjIgYViAEj//4BL/7R/v79/uHyl5mVpP3zAg2klZiXA9TkAQ7+rf7w/uv+7/6vAQHulZjmuCnDK7jompUAAAACAKr/6wcABcUAFQAjAAABEAAhIAARNSMRIxEzETM1EAAhIAARJzQmIyIGFREUFjMyNjUHAP61/vH+9v69vPPzvAFCAQoBDwFM88Coo7e4o6m+AlX+8/6jAV4BDAj9owWw/XE6AQsBX/6h/vUCtevqtv74uOvruAACAC0AAARiBbAADQAWAAApAQEuATU0JDMhESMRIQEjIgYVFBY7AQEx/vwBSIOBARL7AeTz/t4BIvGPjI2O8QJsOsGO2eL6UAIlAsiFfICKAAIAW//rBDwGEwAbACkAAAEyEh0BFAAjIgA9ARAANz4BNTMUBgcOAQcXPgEXIgYdARQWMzI2PQE0JgJz2fD+/Ozt/vwBBuN6ZsS0znOfIwNFnzKCenqEgnx9A/7+7d8V7f7hASTvZwFlAY0sFzZDxXojFI+GAjhAw6mGFZW1tZUVhqkAAAMAjwAABDoEOgAPABgAIQAAMxEhMhYVFAYHFR4BFRQGIwERITI2NTQmIyUzMjY1NCYrAY8Bt9vrXFduc9zS/vYBCmBbWmH+9shqZWhrxAQ6lJhNdB8DGIRam5oBzf7zQ0NBRq48PkRAAAAAAAEAhQAAA00EOgAFAAABIREjESEDTf4q8gLIA3b8igQ6AAAAAAIAJ/6+BMUEOgAOABUAADc+ATcTIREzESMRIREjEwEOAQchESGBXE0LCwLvlvL9SvYBAgAJRjwBoP7ww2bHyQGB/Ij9/AFC/r4CBQH2rPNYAqcAAAEAFwAABl8EOgAVAAABIxEjESMDIQkBIRMzETMRMxMhCQEhBDSA84D2/swBb/6rASzycvNz8gEt/qoBb/7LAbP+TQGz/k0CQQH5/lcBqf5XAan+B/2/AAABAE3/7APEBE0AKAAAARQGBx4BFRQGIyIkNTMUFjMyNjU0JisBNTMyNjU0JiMiBhUjNDYzMhYDsFZQXF7yy7j+/vJwYGBiWmKurltOVFxUavLxuMveAxJKdyQhfV2bq6uqQVpVQU9Gr0RCPFBOPZawoQAAAAEAhgAABBIEOgALAAABMxEjEScBIxEzERcDIPLyA/5b8vIDBDr7xgLUAf0rBDr9LgEAAAABAI8AAARlBDoADAAAASMRIxEzETMBIQkBIQH9e/PzawErASz+eQGo/sQBrP5UBDr+UAGw/fr9zAAAAAABAB8AAAQUBDoADwAAAREjESEDCgErATczMjY3EwQU8/7QCw+m3jQBJGY+CxQEOvvGA3b+9/6y/uHNqfcBzQAAAQCPAAAFbwQ6AA4AAAkBIREjEScBIwEHESMRIQL/AUABMPMD/tml/tgD8wEyASsDD/vGAsQB/TsCyQH9OAQ6AAEAhgAABBEEOgALAAAhIxEhESMRMxEhETMEEfP+W/PzAaXzAbX+SwQ6/j0BwwAAAAEAhgAABBIEOgAHAAAhIxEhESMRIQQS8/5a8wOMA3b8igQ6AAEAIwAAA9AEOgAHAAABIREjESE1IQPQ/qHz/qUDrQN5/IcDecEAAAADAFT+YAV/BhgAHwAtADsAABMQEjMyFhcRMxE+ATMyEhEVFAIjIiYnESMRDgEjIgI1JTQmIyIGBxEeATMyNjUhFBYzMjY3ES4BIyIGFVTKwidDIPIgSS3Cy8vALUoh8h9FKMDKBDhqdBgoEhEpGnNp/LpidBclEhIlFXRkAg4BCQE3Dg4B5v4WEBD+yf73FfL+5BAO/lcBpQ0NARzyFazRBwb9OQYEs5mbsQQGAsoEBs+uAAABAIb+vwSlBDoACwAAEzMRIREzETMDIxEhhvMBpvOTFN380gQ6/IgDePyI/f0BQQABAF8AAAPgBDsAEwAAISMRDgEjIiY1ETMRFBYzMjY3ETMD4PMxYjPd6/NlcDVfMvMBaQsLytIBTP60dmILDAIMAAAAAAEAhgAABgMEOgALAAABESERMxEhETMRIREBeQFS8wFT8vqDBDr8iAN4/IgDePvGBDoAAAABAH7+vwa1BDoADwAAAREhETMRIREzETMDIxEhEQFxAVLzAVPyuhTd+roEOvyIA3j8iAN4/Ij9/QFBBDoAAAAAAgAfAAAE6gQ6AAwAFQAAATMyFhUUBiMhESE1IRkBMzI2NTQmIwJK7dDj5M/+IP7IAivtZFxcZALiyKimzAN3w/3l/qNgS0xmAAAAAAMAjwAABckEOgAKAA4AFwAAATMyFhUUBiMhETMBIxEzAREzMjY1NCYjAYLt0OPkz/4g8wRH8/P7ue1kXFxkAuLIqKbMBDr7xgQ6/eX+o2BLTGYAAAIAjwAABCIEOgAKABMAAAEzMhYVFAYjIREzGQEzMjY1NCYjAYLt0OPkz/4g8+1kXFxkAuLIqKbMBDr95f6jYEtMZgAAAQBR/+sD6AROAB0AAAEiBhUjNDYzMhIdARQCIyImNTMUFjMyNjchNSEuAQIBV3Tl/LTo///nw+7lcFxwdQv+rAFTD3MDi2hQn9z+ze0j7v7O4LdbeqKBqHyXAAACAJD/7AYvBE4AEwAhAAABMz4BMzIAHQEUACMiJicjESMRMwEUFjMyNj0BNCYjIgYVAYPRGv3S7QEF/vzs2f8Vz/PzAb56hIJ8fISCegKI0Pb+0PcV+P7S/9n+PAQ6/diiwsOhFZ7Gxp4AAAACACcAAAPfBDoADQAWAAABESMRIwMjEy4BNTQ2MwMUFjsBESMiBgPf8uPn/P9maefPw1tb7eBiYQQ6+8YBjf5zAbUqmmebv/6gQFkBOF4AAAH/4f5LBAwGGAAoAAABIRUXPgEzMhYVERQGIyImJzceATMyNjURNCYjIgYHESMRIzUzNTMVIQJw/wADNZdgsL22qSU6IQ8ROxY7QGRoSW4m85yc8wEABK77AUtR1Of9Lre/CAm/BQhcVwLUgnA6NfzoBK6qwMAAAAEAWP/sA/4ETgAdAAAlMjY1MxQEIyICPQE0EjMyFhUjNCYjIgYHIRUhHgECQlt85f7/uPT5+fPH8+V1YnxwCQFW/qsLbq5nUaDaAS7xI/ABMOG3W3qegqiAlQAAAgAfAAAGmgQ6ABYAHwAAAREzMhYVFAYjIREhERACKwE/ATI2NREBETMyNjU0JiMD+u3Q4+PQ/iD+7b7jNAEkZFkC+e1jXVxkBDr+h7+foMMDdv73/r3+1sUByN8Bzf3F/sFeR0NXAAACAIYAAAaxBDoAEgAbAAABIREzETMyFhUUBiMhESERIxEzAREzMjY1NCYjAXkBpfPt0OPj0P4g/lvz8wKY7WNdXWMCnwGb/oe/n6DDAd3+IwQ6/cX+wV9GQ1cAAAH/9QAABAwGGAAcAAABIREXPgEzMhYVESMRNCYjIgYHESMRIzUzNTMVIQKE/uwDNZdgsL3zZGhJbibziIjzARQEtf7+AUtR1Of9bQKVgnA6NfzoBLWqubkAAAAAAQCG/poEEgQ6AAsAAAERIREzESERIxEhEQF5Aabz/rXz/rIEOvyIA3j7xv6aAWYEOgAAAAEAjf/rBrIFsAAgAAABERQGIyImJw4BIyImNREzERQWMzI2NREzERQWMzI2NREGsvbOcKo2OLBxye/zaVxod/dwY2JvBbD79drgUlRUUuDaBAv79X17en4EC/v1fXt6fgQLAAABAHD/6wXtBDoAIAAAAREUBiMiJicOASMiJjURMxEUFjMyNjURMxEUFjMyNjURBe3du2KVMDSaY7fW81BKV2L0WFNOVwQ6/VHN00ZISEbSzgKv/VFybG1xAq/9UXJsbXECrwAAAv/gAAAEIQYYABIAGwAAASERMzIWFRQGIyERIzUzETMRIQERMzI2NTQmIwKj/t7t0OPj0P4grq7zASL+3u1kXF1jBDn+ytGur9UEOasBNP7M/Vz+gmpUUW8AAAABAKL/7Aa2BcYAJwAAATM1EAAhIAAXIy4BIyIGHQEhFSEVFBYzMjY3MwYAIyAAETUjESMRMwGVvQE1AQABAgEVGPMTj5qYqwHs/hSpmpeRE/MW/uX9/v3+zr3z8wNQEwEPAVT+/fCYmOi2FcQ+ueeUl+b++QFRARE+/XQFsAAAAAEAhv/sBb4ETgAjAAABMzYSMzIWFSM0JiMiBgchFSEeATMyNjUzFAQjIgInIxEjETMBeaES9+HH8+V1YnpwCgF4/ocKb3xbfOX+/7ji9xKh8/MCctcBBeG3W3qaf6uCl2dRoNoBBNf+OQQ6AAIAIAAABQ4FsAALAA8AAAEjESMRIwMjATMBIwEhAyMDhITdd5H7AgfnAgD7/dgBW6sDAaz+VAGs/lQFsPpQAmcB/wAAAgAKAAAERQQ6AAsAEQAAASMRIxEjAyMBMwEjATMDJyMHAuRdw1to9wGp5wGr9/5c+GQXBBcBF/7pARf+6QQ6+8YBxAEGXl4AAgC2AAAHJwWwABMAFwAAASEBMwEjAyMRIxEjAyMTIREjETMBIQMjAakBawEs5wIA+4+E3XeR+5j+2PPzAlsBW6sDAmcDSfpQAaz+VAGs/lQBrP5UBbD8twH/AAACAJ0AAAYYBDoAEwAZAAABMxMzASMDIxEjESMDIxMjESMRMwEzAycjBwGQ/vjnAav3al3DW2j3bbrz8wHt+GQXBBcBxAJ2+8YBF/7pARf+6QEX/ukEOv2KAQZeXgAAAAACAIQAAAZpBbAAHAAfAAABHgEVESMRNCYrAQcRIxEnIyIGFREjETQ2ITMBIQETIQR0+vvzfZBpCfICgJB88/8BAAz+hQTc/ZLy/hwDKwPS8v6cAWSVbRH9qwJjA22V/pwBZPXSAoX9hgG1AAACAIIAAAVkBDoAGgAdAAAzNTQ2NwEhAR4BHQEjNTQmKwEHESMRIyIGHQEBEyGCycr+6wP0/urCxPNmdiQB8i13ZQGFlf7Wqd3MDQHb/iQQzNmpqZBrA/5fAaRrkKkCaQEiAAAAAgCtAAAIrgWwACQAJwAAIRE0NjchESMRMxEhOwEBIQEeARURIxE0JisBBxEjEScjIgYVEQETIQLJGx7+nvPzAxAYDP6FBNz+hPr7832QaQnyAoCQfAIL8v4cAWRRfjT9mQWw/XsChf17A9Ly/pwBZJVtEf2rAmMDbZX+nAM2AbUAAAAAAgCPAAAHdwQ6ACEAJAAAITU0NjchESMRMxEhASEBHgEdASM1NCYrAQcRIxEjIgYdAQETIQKVGhz+t/PzAqT+7QP0/urCxPNmdiQB8i13ZQGFlf7WqVB8M/5YBDr+KAHY/iQQzNmpqZBrA/5fAaRrkKkCaQEiAAAAAgAp/kADqgd4AC0ANgAAATI2NTQmIyE1ITIEFRQGBxUeARUUBCsBIgYVFBYXBy4BJzQ2OwEyNjU0JisBNQE3MxUFIyU1MwGQiH5/gP7lARvmAQx5b4KH/vfgNUU9VkJRhqEBtKkzeIaWlY8BBYvQ/vSd/vXOA05vZFtuxse9caAsAyqqgM7fNjFCSx6ZKbOBjYh8Znp5xwObjxH8+hMAAAIAM/5HA4gGCwAtADYAAAEyNjU0JiMhNSEyFhUUBgcVHgEVFAYrASIGFRQWFwcuASc0NjsBMjY1NCYrATUTNzMVBSMlNTMBl3Rqb2/+5QEb1vpeV2lt880xSUBTPlJ6nwGuoTBreIGAl9eL0P70nf71zgJvS0Q8R7mdlFB2IwMhd1WbqjYxQkseki+ueYWBT0FKSakDDY8R/PoTAAMAav/rBREFxQANABYAHwAAARAAISAAGQEQACEgABEFITU0JiMiBhUFIRUUFjMyNjUFEf61/vH+9v69AUIBCgEPAUz8SwLCwKijtwLC/T64o6m+AlX+8/6jAV4BDAEGAQsBX/6h/vUxM7Xr6rbeKrjr67gAAwBS/+wEMwROAA0AFAAbAAATNAAzMgAdARQAIyIANQEyNjchHgETIgYHIS4BUgEE6+0BBf787O3+/AHxcnoO/gsNenJxeQ4B8w97Aif2ATH+0PcV+P7SAS74/pyXhISXAt2XgICXAAABABEAAATvBcMAEQAAARczNxM+ATMXByMiBgcBIwEhAlwbAxvpNJJ9LgEULzsW/pLn/gwBBAGLcG4C/aiVAdA9RPuPBbAAAAABACAAAAQYBE4AFQAAARczNxM+ATMyFhcHLgEjIgYHASMBMwHjEgQSei6SaSExGBcEGw0jOg3+9tP+kvsBblpaAb6UjgkNwAIENir84gQ6AAQAav92BREGLgADAAcAFQAjAAABIxEzEyMRMwEQACEgABkBEAAhIAARJzQmIyIGFREUFjMyNjUDIMbGAcXFAfD+tf7x/vb+vQFCAQoBDwFM88Coo7e4o6m+BIQBqvlIAbQBK/7z/qMBXgEMAQYBCwFf/qH+9QK16+q2/vi46+u4AAAAAAQAU/+IBDQEtAADAAcAFQAjAAABIxEzAyMRMyU0ADMyAB0BFAAjIgA1MxQWMzI2PQE0JiMiBhUCori4A7e3/bQBBOvtAQX+/Ozt/vzzeoSCfHyEgnoDGwGZ+tQBoP/2ATH+0PcV+P7SAS74osLDoRWexsaeAAAAAAMAjf/rBqcHRAAsAD4ARAAAATIWFREUBiMiJicOASMiJjURNDYzFSIGFREUFjMyNjURMxEUFjMyNjURNCYjExUjIiQjIgYdASM1NDYzMgQzASc3JzMVBO7J8PDJcK03Oa1vye/vyVxpaVxod+x1aVxqalxqJIT+0CoyN4Z4c0gBKnL+N1E6AboFsO/m/eTm7k9RUU/u5gIc5fDDiIr95IuHen4Bi/51fnqHiwIciogB34Z4MjQSJW9qeP5LPXCPfQAAAAADAHT/6wXRBeMALAA+AEQAAAEyFh0BFAYjIiYnDgEjIiY9ATQ2MxUiBh0BFBYzMjY9ATMVFBYzMjY9ATQmIxMVIyIkIyIGHQEjNTQ2MzIEMwUHJzcnMwQ6ud7Ws2GUMTKUX7XU3LtOVk9HUV7sXVNGUFdNvSSF/tAqMjaHeHNJASly/tmiUToBugRH3tb119xHSklI3Nf11t7Dd3r1e3ZtccbGcW13evV6dwHnhngyNBIlb2p48L49b4kAAAIAjf/rBrIHBwAHACgAAAE1IRchFSM1BREUBiMiJjURIxEUBiMiJjURIxEUFjMyNjceATMyNjURAesDVQH+prUCjW9iY3D3d2hcafPvyXGwODaqcM72BpdwcH9/5/v1fnp7fQQL+/V+ent9BAv79drgUlRUUuDaBAsAAAACAHD/6wXtBbEABwAoAAABNSEXIRUjNQERFAYjIiY1ESMRFAYjIiY1ESMRFBYzMjY3HgEzMjY1EQGXAzgF/rG1AipXTlNY9GJXSlDz1rdjmjQwlWK73QVBcHB/f/75/VFxbWxyAq/9UXFtbHICr/1RztJGSEhG080CrwAAAQBq/ooEuAXFABgAAAEjESYCNREQACEgABUjNCYjIgYVERQWOwEDMPLa+gEwAQABAQEd85OYl6enl5b+igFoIAFF9gEVARABU/797ZWY57f+6bnnAAAAAAEAXP6JA/METgAYAAABIxEmAj0BNBIzMhYVIzQmIyIGHQEUFjsBAtXzvcn+6MLv5XBcf3RzgZL+iQFqIQEk0yPtATPitlt6yZQjmMYAAAAAAQBtAAAEkwU+ABMAAAEFByUDIxMlNwUTJTcFEzMDBQclAlsBIUj+3bWv4f7fRwElyv7eSQEjuazkASVM/uABwayAqv7BAY6rgKsBaKuCqwFG/murf6oAAAH8ZgSi/zkF/QAHAAABFSc3IScXFf0XsQECIgGxBSB+Ae5sAdwAAAAB/HMFF/9tBhUAEQAAATIkMzIWHQEjNTQmIyIEKwE1/JV0AS1JdXmIODIr/s2GJAWdeGpvJRI0MniGAAAB/XsFFv5yBmAABQAAATUzBxcH/Xu9ATtSBdyElnBEAAH9pQUW/pwGYAAFAAABJzcnMxX991I7Ab0FFkRwloQACPok/sQBvwWvAA0AGwApADcARQBTAGEAbwAAATQ2MzIWFSM0JiMiBhUBNDYzMhYVIzQmIyIGFRM0NjMyFhUjNCYjIgYVATQ2MzIWFSM0JiMiBhUBNDYzMhYVIzQmIyIGFQE0NjMyFhUjNCYjIgYVATQ2MzIWFSM0JiMiBhUTNDYzMhYVIzQmIyIGFf0RcGJjcHAvNDIvAd5xYGJycS80MS5IcGJicXAvNDMu/stxYGJxcC80MS/9T3BiY3BwLzQyL/1NcWJjcHAvNDIv/t5xYWNwcC41Mi81cWFjcXEuNTIuBPNVZ2dVLDk5LP7rVWdnVSw5OSz+CVVnZ1UsOTks/flVZ2dVLDk5LP7kVmZmVi04OC0FGlVnZ1UsOTks/glVZ2dVLDk5LP35VWdnVSw5OSwAAAAI+k3+YwGMBcYABAAJAA4AEwAZAB4AIwAoAAAFFwMjEwMnEzMDATcFFSUFByU1BQE3JRcGBQEHBSclAycDNxMBFxMHA/5QC3pgRjoMemBGAh0NAU3+pvt1Df6zAVoDnAIBQEQl/wD88wL+wEUBJisRlEHGA2ARlELEPA7+rQFhBKIOAVL+oP4RDHxiRzsMfGJHAa4QmUQXsfyOEZlFyALkAgFGRf7V/OMC/rtHASsAAAL/4AAABCEGYgASABsAAAEhETMyFhUUBiMhESM1MzUzFSEBETMyNjU0JiMCo/7e7dDj49D+IK6u8wEi/t7tZFxdYwUF/f7Rrq/VBQWrsrL8kP6CalRRbwADAJ8AAATaBbAAAwAOABcAAAEHATcBESMRITIEFRQEIyUhMjY1NCYjIQTabv5sbv5M8wI59gEM/vT2/roBRoqFhYr+ugIjZAG/ZP5G/dgFsPXP0fPDjnFxkgAAAAMAgP5gBDQETgADABYAJAAAJQcBNyUUAiMiJicHESMRMxc+ATMyEhEjNCYjIgYHER4BMzI2NQQtb/6XbwFw2speijID89kQNI9hzNvyen9NaSAgaFB/eA1jAaFkSvH+5D8/Af33BdqCSkz+yP74qdBAO/4XOjuzmAAAAAABAJQAAAQ0BxAABwAAASERIxEhETMENP1T8wKt8wTt+xMFsAFgAAAAAQB+AAADXAV0AAcAAAEhESMRIREzA1z+FPIB6/MDdvyKBDoBOgAAAAEAn/7GBJ0FsAAVAAABIREzIAAREAIhJzI2NS4BKwERIxEhBDf9W7EBIAE6+f78AZhzAbC2sfMDmATt/lb+1f7k/vv+z7rKq8PB/YcFsAAAAQB+/uID2wQ6ABUAAAEhFTMyBBUUAgcnPgE1NCYrAREjESEDRv4qU/UBI76+VHVonIlT8gLIA3bl+umL/vAxrSiLbImQ/jkEOgAAAAEAlAAABSwFsAAUAAAJAiEBIxUjNSMRIxEzETM1MxUzAQUE/nsBrf7O/s1Do1rz81qjOwEhBbD9Wfz3AnTq6v2MBbD9lf7+AmsAAAABAI4AAASuBDoAFAAACQIhAyMVIzUjESMRMxEzNTMVMxMElP7EAVb+y9gvm1fy8lebJ88EOv3+/cgBrLKy/lQEOv5Qx8cBsAABADQAAAahBbAADgAAASMRIxEhNSERMwEhCQEhA6yo8/4jAtCLAckBIP30AjX+1wJ2/YoE7cP9lwJp/Un9BwAAAQA+AAAFqQQ6AA4AAAEjESMRITUhETMBIQkBIQNBe/P+awKIawErASz+eQGo/sQBrP5UA3bE/lABsP36/cwAAAEAnwAAB4QFsAANAAABIREhFSERIxEhESMRMwGSAowDZv2M8v108/MDMAKAw/sTAm39kwWwAAAAAQB+AAAFZwQ6AA0AAAEhESEVIREjESERIxEzAXEBpQJR/qLz/lvz8wJ3AcPE/IoBtf5LBDoAAAABAJ/+xAfvBbAAFwAAATMgABEQAiEnMjY1LgErAREjESERIxEhBRGEASABOvn+/AGYcwGwtoTy/XPzBHIDQf7V/uT++/7Pusqrw8H9iQTt+xMFsAABAH7+5Qa7BDoAFwAAATMyBBUUAgcnPgE1LgErAREjESERIxEhBAqE/wEuvr5VdGoBppOE8/5a8wOMApX66Yz+8DGuJ4xsiY/+NgN2/IoEOgAAAAACAGn/6AXMBcUAKQA3AAAFIiYnDgEjIAARNRAAMxUiBh0BFBIzMjY3JgI9ATQSMzISERUUBgceATMBFBYXPgE9ATQmIyIGFQXMcsZaS6Fa/tn+nAEI22181bwYLhhxdOW+xexhXi5kOP2NZmdSVmFdWF8YIyUjIgGEAS+2AREBYMzpurjb/vMEBGMBB6LU8QE0/sb+/9SX/GELCgIdi9VJRs6B5a6ytqMAAAAAAgBh/+sEyQROACkAOAAABSImJw4BIyIAPQE0EjMVDgEdARQWMzI2Ny4BPQE0NjMyFh0BFAYHHgEzATU0JiMiBh0BFBYXPgE1BMlhpEg9g0rv/t7VsEJJlIMIEQxIR7GZm7hCPyZRLv7pOjQ1ODw8MTISGhwdHAFB/EvRAQrKBJN4TabMAQFKum5/vOn+x35rtEgJCAGAgGqIemWEVos1MIRTAAABAC7+oQaxBbAADwAAASE1IRUhESERMxEzAyMRIQGU/poDvf6cAozzqxTd+9QE7cPD+9UE7vsV/dwBXwABACb+vwU6BDsADwAAASM1IRUjESERMxEzAyMRIQEb9QLE3AGm85MU3fzSA3fExP1LA3j8iP39AUEAAAACAIIAAATcBbAAAwAXAAABIxEzAREjEQ4BIyAkNREzERQWMzI2NxEDLqOjAa7zUKth/v7+9/OBl1WzVAEsAtsBqfpQAkEWFdr1Acv+NZtwFhYCqgACAHQAAAP1BDsAAwAXAAAlIxEzASMRDgEjIiY1ETMRFBYzMjY3ETMCjaSkAWjzMWIz3evzZXA1XzLzzAJf/NUBaQsLytIBTP60dmILDAIMAAEAigAABOQFsAATAAAzETMRPgEzIAQVESMRNCYjIgYHEYrzUKthAQEBCvOCllezUgWw/b4VF9v0/jUBy5pxGBT9VgAAAgAg/+kFwAXEAB0AJgAABSAAETUuATUzFBYXEAAXIAARFSEVFBYzMjY3Fw4BASE1NCYjIgYVA+L+yf63oKKyRUsBQfUBEQEX/JW90G6eTzE1xf3hAniPppuoFwFUASJKF86sWnIVARMBWAH+nf6/hDzD6CghvCA4A2kftdHptwAC/87/7AR2BE8AGwAjAAAFIgAnLgE1MxQWFz4BFzISHQEhHgEzMjY3Fw4BAyIGByE1NCYCzub+9AWEhaoyNiH8teDk/VYKiX5kiUJHPcKiW3QSAbRnFAEd6R68l0pjGMXsAf7744+Hoi8tpjVDA5+NdRlpgAAAAAABAJT+xATnBbAAGAAAASMRIxEzETMBIQEWEhUQAiEnMjY1LgErAQGYEfPzcwHCAST+Gu7/+f78AZh0AbG29QJ4/YgFsP2hAl/9ix7+3P7++/7Ousqsw8AAAQCO/uoEQwQ6ABYAAAEeARUUAgcnPgE1LgEnIxEjETMRMwEhAs2tvr2+VXVpAZGGrvLyVQFBAS0CYSnbtYj++S+tJoRnfn4I/lQEOv5QAbAAAAAAAQCf/ksFEAWwABcAAAERIREzERQGIyImJzceATMyNjURIREjEQGSAozyt6klOiAOETsWPEH9dPMFsP2AAoD6EbbACAm/BQhdVgKs/ZMFsAABAH7+SwQJBDoAFwAAAREhETMRFAYjIiYnNx4BMzI2NREhESMRAXEBpfO4qSQ6IQ8ROxY7Qf5b8wQ6/j0Bw/uHtsAICb8FCF1WAfT+SwQ6AAIAU//qBRsFxQAWAB4AAAEgABEVEAAlIAARNSE1NCYjIgYHJz4BEzI2NyEVFBYCcwFKAV7+q/7+/sn+xgPW0uR2p1IxN8/robgL/R6wBcX+lv7Mov7X/o4BAWEBQoQV0/8pILwfOvrx6L0fttAAAAABAF3/6wRGBbAAGgAAARcBHgEVFAQjIiQ1MxQWMzI2NTQmKwE1ASE1BBsB/n/Q2/7o6cz+5POGb3+PlJmOAWr9kAWwm/5FGOPHzeDU1WSDgWmVhasBkcMAAQBd/nUERgQ6ABoAAAEhNSEXAR4BFRQEIyIkNTMUFjMyNjU0JisBNQL0/ZsDjAH+iMzW/ujpzP7k84Zvf4+UmY8DdsSb/kMZ48XL4dTUYoOCZ5WEqwAA//8AO/5LBIkFsAAmAKxSAAAmAdOkKQAHAZoBNQAAAAD//wA0/kkDogQ6ACYA51UAACcB0/+d/3oABwGaAQv//gACAFQAAASABbAACgATAAABETMRISIkNTQkMwERISIGFRQWMwOO8v3Z9v7xAQ73ATX+y4uHiIoDlAIc+lD80dD3/S4CD5Jwc5oAAAAAAgBmAAAGpQWwABgAIQAAISIkNTQkMyERMxE3PgE3NiYnMx4BBwYEIyURISIGFRQWMwJr9v7xAQ73ATXyTGVpBAEfHuwiIwIE/wDB/sL+y4uHiIr80dD3Ahz7EgEBdm9OolBlkknR2MICD5Jwc5oAAAIAXv/pBn4GGAAiADMAABMQEjMyFhcRMxEGFjM+ATc2JiczHgEHAgAjBiYnDgEjIgI1AS4BIyIGHQEUFjMyNjcuATVe2s1UgTPzAk1Ed38EAR4f7CIjAgT+6tOAqiw1l2rL2gKvI2NEf3Nxf0lmIwMDAg4BCAE4PTsCQvtPU2UBuahjyGiBtV3+8f7pAlVgWVoBHfEBJjI2zqsVma86OA8iEwAAAQA7/+gF4QWwAC0AAAE0JisBNTMyNjU0JiMhNSEyBBUUBgcXHgEdAQYWMz4BNzYmJzMeAQcCACMGJicCpntr1JuehYCP/qABYP4BBHx6AYJvAT42anIEAR4f7CMiAgT+9cunsAgBeG2BxW55aXDF0c90ojADJaiARD1KAbipY8hoiK9c/vD+6gOdsQABAC//4gT/BDoALgAAJQYWMz4BNzYmJzMeAQcOASMGJic1NCYrASczMjY1NCYjISchMhYVFAYHFx4BHQEDAQEhLFpfBAEfH+wjIwIF77WjmwhRTukCt2ddXmb++gYBDNbhVlYBZFbrKy0BjYJNoVFoj0jb4wNwhEs8QL1EQ0ZQw6ecUW8jAxp1WT4AAAIASf6sBCQFsAAhACsAABMnMzI2NTQmIyEnITIEFRQGBx4BHQEUFhcVIy4BPQE0JiMBFAYHJz4BPQEzlwHIlYSBiv7gAwEj9wEGc3N+aiAm+ikWfXICmmhVfyws5QJcw291b3vD2M9zoDMorYR4QXgiFyKLR3Rzgf3cZ9xJTkiTW7wAAAIAdf6cBAsEOgAhACsAABM1MzI2NTQmIyEnITIWFRQGBx4BHQEUFhcVIy4BPQE0JiMBFAYHJz4BPQEzs+VpZGZn/uEEASPW61dXYVMXHfsdDmJfAl5oVX8sLOUBnLNJRUdVwa+gUnMoIYJhVSdZFBEUYTFTT1T+jGfcSU5Ik1u8AAAAAAEAQ//oB34FsAAhAAABIREQAiEjNTMyEhkBIREGFjM+ATc2JiczHgEHAgAjBiYnBA3+VN3+9DUpjHcDkQFNRHd+BAEeH+wiIwIE/uvTuMIJBOv+Ff5q/pbEAQUBNwKw+7dUZAG5qGPIaIG1Xf7x/ukDtMsAAQA//+gGWQQ6ACEAAAERBhYzPgE3NiYnMx4BBwYCIwYmJxEhERACKwE/ATI2NREECgFRR11iBAEeH+wiIwIE97u7xgn+/7jfQAQpZFMEOv0tVGQBopZevWJ6q1j7/v4DtMsCDf76/rz+1tMBu98BzAAAAAABAJj/6AeFBbAAHQAAAREGFjM+ATc2JiczHgEHAgAjBiYnESERIxEzESERBQYBTUR4fgQBHx/sIiQCBf7r07fCCf138/MCiQWw+7dTZQG4qWPHaX+2Xv7x/ukDtMsBBv2TBbD9gAKAAAEAd//oBlwEOgAdAAABIREjETMRIREzEQYWMz4BNzYmJzMeAQcGAiMGJicDGv5Q8/MBsPMCUEheYwQBHx7rIyICBPe8usYJAbr+RgQ6/kMBvf0tU2UBopZdvWOBpVf7/v4DtMsAAAAAAQBi/+sEtgXFACEAAAUgABkBEAAhMhYXBy4BIyIGFREUFjM+ATc2JiczHgEHBgQCu/7w/rcBSQEQdK1GP0SOVqe/v6d/hQQBGhnrJhQBBP7jFQFYARIBBgERAVksLbAiIu61/vi57QGFe1OtYqpqTuDlAAABAFX/6wPlBE4AIQAAJT4BNzQmJzMeARUOASMiAD0BNAAzMhYXBy4BIyIGHQEUFgJaU0IDCgnrDQ4E1bL1/vABBupgizAuMHhFgH2GrwFERzdxNkZnMamnATXoKucBNSIgvRwey4wqj8oAAAABACL/6AVYBbAAGQAAASE1IRUhEQYWMz4BNzYmJzMeAQcCACMGJicB5/47BID+OAFNRHd/BAEfH+wjIgIE/uvTt8MJBOvFxfx8U2UBuKljx2l/t13+8f7pA7TLAAEARP/oBMwEOgAZAAABITUhFSERBhYzPgE3NiYnMx4BBw4BIwYmJwGJ/rsDi/6tAVFHXWMEAR8e6yMjAgT4u7rGCgN3w8P98FRkAYF4SptMY4lF2+MDtMsAAAAAAQCH/+sFAQXFACkAAAEiBhUUFjMyNjUzFAQjICQ1NDY3NS4BNTQkITIEFSM0JiMiBhUUFjsBFQLCp6G0pI2v8/656P70/sGGhHSAASoBC+YBNfOpf6KgkqC+AoZyfWmBg2TV1ODNf6krAy6jZszU3bted3xha3PBAAAA//8ArQJtBOoDMQBGAYbgAFMzQAD//wCyAm0F6gMxAEYBhrYAZmZAAP//AAT+PwOZAAAAJwBBAAH+/gAGAEEBAAABAGAD8wGWBjIACQAAEzQ2NxcOAR0BI2BkUoAuK90ErGbYSE1Ik1y7AAAAAAEAMwPWAWkGGAAJAAABFAYHJz4BPQEzAWllUn8tLN0FXGfYR01Hk12+AAAAAQAy/sIBaAENAAkAACUUBgcnPgE9ATMBZ2RSfyws3kdl2EhOSJNbxwAAAP//AEcD1gF9BhgARwFmAbAAAMABQAAAAP//AGID8wLlBjIAJgFlAgAABwFlAU8AAP//AEAD1gLABhgAJgFmDQAABwFmAVcAAAACADL+wgKqAQ0ACQATAAAlFAYHJz4BPQEzBRQGByc+AT0BMwFnZFJ/LCzeAUJlUn8sLN5HZdhITkiTW8fGZdhITkiTW8cAAAABAEAAAAQeBbAACwAAASERIxEhNSERMxEhBB7+iPP+jQFz8wF4A3L8jgNyyAF2/ooAAAAAAQBc/mAEOQWwABMAACkBESMRITUhESE1IREzESEVIREhBDn+iPP+jgFy/o4BcvMBeP6IAXj+YAGgwgK0xAF2/orE/UwAAAAAAQCIAf8CRAP4AA0AABM0NjMyFh0BFAYjIiY1iHZnaHd2aGh2AyFgd3ZhTWF0dGH//wCcAAADWADpACYAEAMAAAcAEAHNAAD//wCcAAAFEQDpACYAEAMAACcAEAHNAAAABwAQA4YAAAAGAEv/6wdgBcUAGQAnADUAQwBRAFUAAAE0NjMyFhc+ATMyFh0BFAYjIiYnDgEjIiY1ATQ2MzIWHQEUBiMiJjUBFBYzMjY9ATQmIyIGFQUUFjMyNj0BNCYjIgYVARQWMzI2PQE0JiMiBhUTJwEXAzClj0tyJiZyTI+mpY5NdCUmcUqRpf0boYyQpaWOjaIDjklER0JHREVGAcdKQ0ZDR0RFRvtNR0ZDR0hERUbqfQLHfQFlgas6NTU6q4FOgqo5NTU5qoIDgYKrq4JNgqmpgvzMQlhVRU5BWVlBTkFZVkROQVlZQQLmQldXQk1CWVlC+9VIBHJIAAAAAAEAbACXAjMDtgAGAAABEyMBNQEzATz3p/7gASCnAib+cQGGEwGGAAABAFQAlwIbA7YABgAAEwEVASMTA/sBIP7gp/f3A7b+ehP+egGPAZAAAQAtAG0DcQUnAAMAADcnAReqfQLHfW1IBHJIAAIAPwIwA1YFxQAKAA4AAAEzFSMVIzUhJwEzAxEnAwLUgoLE/jMEAczJxAP3A3iYsLBwAnX9swFOAf6xAAEAaQKMAv8FugATAAABFz4BMzIWFREjETQmIyIGBxEjEQEBICRuSX6FxUFBNEMTxQWseUFGk6D+BQHJZ1cvKv3SAyAAAQBPAAAEawXFACcAAAEOAQchByE1Mz4BNyM1MycjNTMnNDYzMhYVIzQmIyIGFRchFSEXIRUB6wIgHwLBAfwmCi8tAqehBZ6YBOTH0+Lza1dXYQQBiP5+BQF/AcBNfzLCwg2VXKaAp3zT6de6a2OBeHyngKYAAAAAAwCZ/+wGSQWwAAoAEwArAAABESMRITIEFRQEIyczMjY1NCYrASURMxUjERQWMzI2NxcOASMiJjURIzUzEQGT+gF49wEL/vX3fn6GgoKGfgPnw8MxKxksFBohXjGDj5WVAhz95AWw+c3T+8ySbmyQXf75tP2qRTYHBrIQFJmrAla0AQcAAQBL/+sD4AXFACsAAAEhFRQWMzI2NxcOASMiAD0BIzUzNSM1MzU0ADMyFhcHLgEjIgYdASEVIRUhA5z+NJeIO201FDp4P/L+4JKSkpIBH/E9ckQUN246h5YBzP40AcwB8AKapxERxQ8QARLxAo6cjgz2ARsQD8cQE7CcDo6cAAAEAHH/6wWJBcUAGwApADcAOwAAARQGIyImPQE0NjMyFhUjNCYjIgYdARQWMzI2NQEUFjMyNj0BNCYjIgYVMzQ2MzIWHQEUBiMiJjUTJwEXArGXh4mZmIiImKk9Ojs8PTw5PAEYpJKRoqOSkaOpR0RESENHQ0rBff05fQQlcZSpgk2DqpZxMURZQk1CV0Qv/PKDqamDToKqqoJBWVlBTkVVWUEDyEj7jkgAAAAAAgBF/+sDkAXFABoAJgAABSImPQEOASM1MjY3ETQ2MzIWHQEUAgcVFBYzAzU0JiMiBhURPgE1Atvq5DFiNTdhMLCfi6nPul13MCkiLSxSUhXs2AcLCbsLCwGyxtqxmiqY/sBnRYeBA4osPUJdYf6zR7ZjAAAEAJgAAAhPBcAAAwARAB8AKwAAASE1IQE0NjMyFh0BFAYjIiY1MxQWMzI2PQE0JiMiBhUBIwEHESMRMwE3ETMIEP3GAjr9irmhorm5oKK6r1ZXVFZXVVVW/sDy/XcD8/MCiQPyAXyVAmCXuLiXdZi2tphXZWVXdVRnZ1T7jwQrAfvWBbD71gEEKQAAAAIAZAOUBGIFsAAOABYAAAEnAyMDBxEjETMbATMRIwEjESMRIzUhA/QDhD2JA2+JkJGDbv33inWIAYcE2QH+ugFSAf6vAhz+gwF9/eQBvf5FAbtfAAIAlv/sBJEETgAVAB4AACUOASMiADU0ADMyAB0BIREeATMyNjcBIgYHESERLgEEFFm4Yd7+0gE/zdMBHP0AOYlPYbZZ/pBLizsCHDeIXjg6AUTt5gFL/s7rL/64Njg7PwMqQDr+6wEeNjsA//8Aaf/1Bl8FsgAnAckAEgKGACcBdAEMAAAABwHQA1EAAAAA//8Aav/1BvYFwAAnAcsACgKUACcBdAHFAAAABwHQA+gAAAAA//8Aav/1ByYFrwAnAc0AAgKOACcBdAH9AAAABwHQBBgAAAAA//8Aav/1BoUFrwAnAc8AGAKOACcBdAFCAAAABwHQA3cAAAAAAAIAQ//rBE4F7QAUACIAAAEEABEVFAAjIgA1NBIzMhYXNy4BJwEuASMiBhUUFjMyNj0BAegBGQFN/tjl5f7n+OJSkTkDL9mXAb4llW+AfJB/e5sF7Ub+Nv6kZP3+ywEV1OoBDy8rAqnNMf1rPE6tkHqtz6FmAAAAAAEApv8bBPQFsAAHAAAFIxEhESMRIQT01/1f1gRO5QXU+iwGlQAAAAABAED+8wTBBbAADAAACQEhFSE1CQE1IRUhAQOP/e4DRPt/Ak/9sQRH/PYCEgJD/XPDlwLIAsaYw/1zAAABAJ4CbQPhAzEAAwAAASE1IQPh/L0DQwJtxAAAAQA7AAAEiwWwAAsAAAEXMzcBMwEjAyM1IQIiHQMcAVvS/he+2NEBYwF8hYUENPpQAkHFAAMAZP/rB9kETgAZACcANQAAARQAIyImJw4BIyIAPQE0ADMyFhc+ATMyABUjNCYjIgYHFR4BMzI2NSEUFjMyNjc1LgEjIgYVB9n++uGi409P5KHi/vwBA+Gi5U9O5aPgAQXzeniHuhgVvIZ5e/pxeHuFvBYXu4d5eAH/6/7XwJaWwAEp6zrqASu+k5O+/tXqmrj4YSRi/7WdnbX/YiRg+bebAAAAAf+y/ksCqAYtABwAAAUUBiMiJic3HgEzMjY1ETQ2MzIWFwcuASMiBhURAZC3qSU4IQ8SORY7Qb+zJEctGRcpHFFSP7e/CAm/BQhdVgT3tr8LCrkFBlxW+wkAAAACAGUA/QQiBAEAGwA3AAATPgEzNhYXHgEzMjY3HwEOASMiJicuAQciBgcnBz4BMzYWFx4BMzI2Nx8BDgEjIiYnLgEHIgYHJ28weUNHSl9RTERBeS8DCjF5QkRMUV9KR0J5LgMUMHlDR0pfUUxEQXkvAwoxeUJETFFfSkdCeS4DA21GTAIcLyobSkQBwUdLGyovHAJLQwHtRkwCHC8qG0pEAcFHSxsqLxwCS0MBAAAAAAEAmACBA/YEwgATAAABMxUhByEVIQcnNyM1ITchNSE3FwM6vP7TfAGp/eh+ZFq+AS18/lcCGoNkA9bK38njQaLJ38rsQQAA//8AqgAVBBYErwBnAB4AkgDQQAA5mgAHAYYADP2oAAD//wCgABMEAATDAGcAIAAgAORAADmaAAcBhgAI/aYAAAACACQAAAP5BbAABQAPAAABMwkBIwEhAycjBwMTFzM3AaTSAYP+gNP+fgLZ3BQDFNfdEwMUBbD9J/0pAtcB30FB/iH+IkBAAP//ALMAtgGlBPAAJwAQABoAtgAHABAAGgQHAAAAAgBjAn8CPgQ5AAMABwAAASMRMwEjETMBAJ2dAT6dnQJ/Abr+RgG6AAEARf83AVoBBgAJAAAlFAYHJz4BPQEzAVpQRYAmJsmbYMNBTj9/UHMAAAAAAgAYAAAEFwYtABcAGwAAMxEjNTM1NDYzMhYXBy4BIyIGHQEzFSMRISMRM72lpeLTSopeJT92R3Bj1dUCZ/PzA4a0XMfQHh7JFhpfY1y0/HoEOgAAFgBZ/nIH7AWuAA0AHQArADsAQQBHAE0AUwBdAGEAZQBpAG0AcQB1AH4AggCGAIoAjgCSAJYAAAE0JiMiBh0BFBYzMjY1BTI2NTQmJzU+ATU0JisBEScUBiMiJj0BNDYzMhYVBRQGIyImNSMUFjMyNjURIwERMxUzFSE1MzUzEQERIRUjFSU1IREjNQEzHgEVFAYrATUBNSEVITUhFSE1IRUBNSEVITUhFSE1IRUTMzIWFRQGKwEFIzUzNSM1MxEjNTMlIzUzNSM1MxEjNTMDN39oaH5+amh9ASBeZzQtJSptZ7yfSEFDSUhCQUoDujYpMzVdaF1TaFz5xHHEBSjHb/htATXEBewBNm/82gUwMjQzfgFOARb9WwEV/VwBFAIKARb9WwEV/VwBFLxdPjg6PF388XFxcXFxcQcib29vb29vAkRieXlicGR3d2TYTk0uRA0DDjwoTEr929hHTExHcEVOTkWbLDYsL1NRW1ABevtPATvKcXHK/sUGHwEddKmpdP7jqfy2Ai0nKSqpA0p0dHR0dHT5OHFxcXFxcQRbHygpJ5b8fvr8Ffl+/H76/BX5AAAAAAUAXP3VB9cIYgADAB0AIQAlACkAAAkDBTQ2Nz4BNTQmIyIGBzM+ATMyFhUUBgcOARUXIxUzAzMVIwMzFSMEGAO//EH8RAQPGSlJXaaWi6UCywE6LDc6MitQOsrKyksEBAIEBAZS/DH8MQPP8TY7GyiAUIOUgYk0Mz42Mk0cOVZaW6r9TAQKjQQAAAAAAQBN/+8DygSNAB4AABsBIRUhAz4BNzYWFRQGIyImNTcUFjMyNjU0JiMiBgd8RwLJ/gwdJmo7usrY58L88m9daWNlXFlYFAH4ApXG/vMWIAIDx7u1z6KnEEZTamBday4oAAAAAAIATQAAAyUDIQAKAA8AAAEzFSMVIzUhJwEzATMRIwcCs3Jyv/5jCgGmwP5g4QMPASKRkZF0Ahz+AQEbGAAAAAACAGz/6wQnBcUADQAbAAABEAIjIgIZARASMzISESc0JiMiBhURFBYzMjY1BCf74eH+/OHh/fN2dXV1dnZ1dAIx/t7+3AElASEBTQEhASb+2v7fJbapqbb+a7ipqLkAAAAB/5/+xQLtA0IADwAAAzMgABEQAiEnMjY1LgErAWH0ASABOvn+/AGYcwGwtvQDQv7V/uT++/7Pusqrw8EAAAAAAf+w/ksBjgDNAA8AACURFAYjIiYnNx4BMzI2NREBjrepJTghDhE5FzxAzf70t78ICcYFB1ZVAQwAAAAAAQAY/l8B0wBCABMAACUeARUUBiMiJic3HgEzMjY1NCYnAQ9lX4lsQ1wnIx0vITouOjhCNYtNZ28ZE44KDS0jME0xAAABAFz+mgFPALYAAwAAASMRMwFP8/P+mgIcAAAAAgB1BNAC9wbcAA0AIQAAARQGIyImNTMUFjMyNjUTFAYjIiYjIgYVJzQ2MzIWMzI2NQL3rJWWq69ETkxGkF5IOYEpICloXUktiyseLAWwZ3l6ZjI9PTIBD01pRzIlG0tuRzElAAIAdQTVAvYHCAANAB0AAAEUBiMiJjUjFBYzMjY1JSc+ATU0JiM3MhYVFAYPAQJIR0tNR62ql5Wr/nMIST5NRQecoVJAAQWwMTw8MWV2dmUZdgIWGx0ZYE5GNTUHOgAAAAIAdQTTAwAGfgANABEAAAEUBiMiJjUzFBYzMjY1JzMHIwMAr5aZrbFGT0xHZbapgAWwZXh4ZTI+PjLOwAAAAAACAHkE5wNYBtEACAAcAAABByMnByMnJTM3FAYjIiYjIgYVJzQ2MzIWMzI2NQNYAbyzsrwBASaTulc/M3glHChaVEEogiUbKwTqA46OA+rfP15CLBsYP2FBLRwAAAIAdQTnBAoGywAGABYAAAEjBTM3FzMvAT4BNTQmIzcyFhUUBg8BAka7/urBsrPBXQdBNkQ9B4iNSTgBBeH6oqKGfQQZHSEdaVdNOz0HOwAAAv9MBNoDXAaDAAYACgAAASMnByMlMwUjAzMDXNWfn9QBI6H+h53X3QTajo76XAELAAAAAAIAegTnBIsGkAAGAAoAAAEzBSMnByMBMwMjAZ2hASPUn5/VAzPe2J0F4fqOjgGp/vUAAAACAFsElQMVBpgADQARAAABFAYjIiY1MxQWMzI2NScjJzMDFbuio7q1UFhWUDq/0vsFsIKZmYI7SUk7FdMAAAAAAQCQBGkBhQYMAAUAABM3MwMVI5B3fhvaBQ3//veaAAACABwAAASsBI0ABwAKAAAlIQcjATMBIwEhAwNX/hlW/gHM+AHM/v4KAVes6ekEjftzAasBzQAAAAMAjgAABC4EjQAPABgAIQAAMxEhMhYVFAYHFR4BFRQGIwERITI2NTQmIyUzMjY1NCYrAY4BrdvrYFpxdtzS/wABAGJZWmH/ALtqaWVuuwSNnqNUgCADGo5jpqQB+v7GS01PU6hISE4+AAAAAAEAaP/vBDIEnQAbAAABDgEjIgA9ATQAMzIWFyMuASMiBh0BFBYzMjY3BDEP+NXb/u4BEtvZ9BDzEG1tc4iJcnFoEAGU1NEBFOS+4wEV0dJ3a62Jv4quaXwAAAAAAgCOAAAEQgSNAAkAEwAAMxEhMgAdARQAIwMRMzI2PQE0JiOOAbfeAR/+4d7FxXSWlnQEjf741tLX/voDzPz0oH3Te6EAAAAAAQCOAAADzgSNAAsAAAEhESEVIREhFSERIQN4/ggCTvzAA0D9sgH4Afz+xMAEjcH+8gAAAAEAjgAAA9oEjQAJAAABIREjESEVIREhA4P9/fIDTP2mAgMB3v4iBI3B/tQAAQBo/+8EXwSdAB8AACUOASMiAD0BNAAzMhYXIy4BIyIGHQEUFjMyNjc1IzUhBF8577/v/t8BH+nh7hPyDnNvf5eYhmJ0H+8B4Z9IaAEF2fPXAQbCtF1Ynn30gJ4fF9SxAAAAAAEAjgAABHoEjQALAAAhIxEhESMRMxEhETMEevT9+vLyAgb0Adj+KASN/g0B8wAAAAEAjgAAAYAEjQADAAAhIxEzAYDy8gSNAAEALv/uA4wEjQAPAAABMxEUBiMiJjUzFBYzMjY1Apry6b3P6fNpXE9lBI385bXPubpbWGpaAAAAAQCOAAAEXQSNAAwAAAEjESMRMxEzASEJASEB62vy8lUBQQEt/mQBtv7LAdX+KwSN/iAB4P3V/Z4AAAAAAQCOAAADeQSNAAUAACUhFSERMwGAAfn9FfLAwASNAAABAI4AAAVuBI0ADgAACQEhESMRIwEjASMRIxEhAv4BQAEw8wP+2KX+2APyATIBKwNi+3MC/v0CAwH8/wSNAAAAAQCOAAAEhQSNAAsAACEjAQcRIxEzATcRMwSF8v3wA/LyAhAD8gMeAfzjBI385AEDGwAAAAIAZv/uBGQEnQANABsAAAEUACMiAD0BNAAzMgAVJzQmIyIGHQEUFjMyNjUEZP7p6Of+6AEW6OcBGfOOf4CLjX9/jQHn5f7sARTlvuQBFP7s5AGPp6ePv5GoqJEAAgBo/38ElASdABMAIQAAARQGBxcHJw4BIyIAPQE0ADMyABUnNCYjIgYdARQWMzI2NQRmODacoaE3c0Hn/ugBFujnARnzjn+AjI2Af40B52OlQZ2CoBkYARTlvuQBFP7s5AGPp6aQv5GoqJEAAgCOAAAESQSNABsAJAAAAREjESEyFhUUBgcVHgEdARQWFxUjLgE9ATQmIyczMjY1NCYrAQGA8gHO1uphYGxcERX6FQpgYPDcaWRlaNwBvf5DBI22pl6CKQMejWtWLGYXEBZsOFRWWcJUT05cAAAAAAEAT//uBBkEnQAlAAABNCYnLgE1NDYzMhYVIzQmIyIGFRQWFx4BFRQEIyIkNTMeATMyNgMnbJPlyfLV2u/yam1uZ2Sj28v/AN/d/vLyAYlvd3YBOz5NITSWoJa2v69RXEw+QUgkM5uanrG4uV9STQABADwAAAPpBI0ABwAAASERIxEhNSED6f6g8/6mA60DzPw0A8zBAAAAAQB+/+4EewSNABEAAAERFAQjIiQ1ETMRFBYzMjY1EQR7/uvp6f7q8o5/f40Ejf0KzN3dzAL2/Qpyd3dyAvYAAAEAHAAABIsEjQAJAAABFzM3ASEBIwEhAkARAxEBJQEB/kP3/kUBAQE1R0QDW/tzBI0AAAABADQAAAXXBI0ADwAAATMTIQEjAyMDIwEhEzMTMwQ4A5sBAf7j580DzOf+5AEAnAPK0gFZAzT7cwMM/PQEjfzJAzcAAAEALAAABFEEjQALAAABEyEJASELASEJASECPPEBG/6KAX/+5/n4/uUBgP6JARkC+AGV/b/9tAGd/mMCTAJBAAABABMAAAQ8BI0ACAAACQEhAREjEQEhAigBCQEL/mLz/mgBCwJvAh79Cv5pAaIC6wABAEoAAAPrBI0ACQAAJSEVITUBITUhFQF+Am38XwJZ/cgDcMDAegNSwXUAAAIAbf/vBBMEnQANABsAAAEUBiMiJjURNDYzMhYVJzQmIyIGFREUFjMyNjUEE/3V1v781tX/83dqaXZ3aml2AZvI5OTIAVfH5OTHAWx9fmv+qG5+fW8AAAABAD4AAAHzBJ0ABQAAISMRIzUlAfPzwgG1A6e6PAAAAAEAUgAAA5IEnQAYAAApATUBPgE1NCYjIgYVIzQ2MzIWFRQGDwEhA5L80QGeVkNMTlph8+bIvc6DntMB+8ABg1FrOEZfZE6j0LmteKuNxwAAAQBN/+8DuwSdACgAAAEyNjU0JiMiBhUjNDYzMhYVFAYHHgEVFAYjIiY1MxQWMzI2NTQmKwE1AgZcVFxaTmLy6LPL5F5WYmX2zLP58WpYXWtfY7kCq09LQFdMPpmyqaNSgicjh2Wls6ytQVhdRVpPsQAAAAACADkAAAQYBI0ACgAPAAABMxUjFSM1IScBMwEhEScHA3Gnp/L9xQsCQ/X9yQFFAwIBm8PY2J8DFv0OAboBBAAAAQBRAAAENAXFABgAACkBNQE+ATU0JiMiBhUjNAAzMhYVFAYHASEENPw5Adp2VnBjgnrzAQXq1vCKl/63ApinAgWCn09kgo2BygEH5L+A3qb+pAAAAgBt/+8D8ASdABoAJwAAATIWFwcuASMiBh0BPgEzMhYVFAYjIiY1ETQkEyIGBxUUFjMyNjU0JgJcSotDJzltSHKNModVvcX1zMX9ARexT2sbeV5ba2AEnRoYuhcUi3VWMTTCsrLW+MoBKc71/ZIyLh5wkm5UW2MAAQA8AAADZgSNAAwAAAEGAhEVIzUQEjchNSEDZriW8+OE/bADKgPM5f7e/vS5uQEHAYqCwQAAAAADAFL/7wPnBJ0AFwAjAC8AAAEUBgceARUUBiMiJDU0NjcuATU0NjMyFgM0JiMiBhUUFjMyNgM0JiMiBhUUFjMyNgPEZFlpd/3Fzf76em1eZvC/t+nQeVdgf39hWHcjZElSa21RSWMDXFeCJymMX6W0tKVfjCkngVicpaX9XUlcXElLW1sCREBOTEJBUVEAAAACAD//7wO1BJ0AGgAnAAAlMjY9AQ4BIyImNTQ2MzIWFREUBCMiJic3HgETMjY3NTQmIyIGFRQWAeFify1xQsjb98nA9v79ykiaRyY+c2JKZRt0WllqZa9/YVoqKs20qd75yv62u+YaGLgXEwGUNCpAbY57UFtzAAABAFcAAAGWAywABQAAISMRIzUlAZbAfwE/An+WFwAAAAEAawAAAtUDLAAYAAApATUBPgE1NCYjIgYVIzQ2MzIWFRQGDwEhAtX9oQExQiYyNz4/vqqUjphfeogBZ5EBADdEKi03OzFtkYB3U3JrdAAAAQBg//UC6wMsACgAAAEyNjU0JiMiBhUjNDYzMhYVFAYHHgEVFAYjIiY1MxQWMzI2NTQmKwE1AaFCPEA/Nj6/q4WYqUY+R0qxmIq4v0Q+QkpFR3sB2TQxKDQsImh4dXA4WRoYXkVyenh3LDIzLjk2gwAAAAABADgAAAJGBbAABQAAISMRITUlAkbz/uUCDgSgpmoAAAEAaP/1AwEDIQAeAAAbASEVIQc+ATc2FhUUBiMiJjU3FBYzMjY1NCYjIgYHiTQCFP6VFRxMLIeVoayRu75NQUpERj0+Pw8BWgHHkqoRFgECi4CAj290DC0xPjw/SR4ZAAIAcP/1AwoDLAAaACcAAAEyFhcHLgEjIgYdAT4BMzIWFRQGIyImPQE0NhMiBgcVFBYzMjY1NCYB4DdnLiApTzJRYiViP4iNtpeTus6DNkoSUkBCSUQDLBIRjQ8PWE0zICKHeXuUqo3Ij6n+Sx8cEEtbQTc6PwAAAAEAUgAAAqQDIQAMAAABDgEdASM1NBI3ITUhAqSHaL+aWf5pAlICj6C7tX9/tAELUZIAAAADAGj/9QMOAywAFwAjAC8AAAEUBgceARUUBiMiJjU0NjcuATU0NjMyFgM0JiMiBhUUFjMyNgM0JiMiBhUUFjMyNgL2SUBLVrqSmMJYT0RLs46IraZTPENYWEQ9URpDMjlISjgxQwJQO1obHWFAcnt7ckBhHRtaO2txcf4wMDs7MC82NgGIKC4tKSoyMgAAAAACAGD/9QLwAywAGgAnAAAlMjY9AQ4BIyImNTQ2MzIWHQEUBiMiJic3HgETMjY3NTQmIyIGFRQWAZVEWCBRLZOgs5KRusOYNW40ICtTSzVGD1E+PUdFhk5AOyAfkH91mK2M3oKeERGOEQ4BESUeGUpdSzU7SAAAAAACAHD/9QMkAywADQAbAAABFAYjIiY9ATQ2MzIWFSc0JiMiBh0BFBYzMjY1AyS7n5+7up+evb9SSkpQUEtJUgEnkKKikNGPpaWPAktVVUvTTlNTTgABAJcChwMmAzEAAwAAASE1IQMm/XECjwKHqgAAAwCWBEgCngaVAAQAEAAcAAABMxcHIwc0NjMyFhUUBiMiJjcUFjMyNjU0JiMiBgG84QHxlYJrUU5qaU9Ra2MzJiQwMCQmMwaVA7/eTWVkTk1gYE0mMDAmJzMzAAACAGwEbwLMBdcABQAPAAABEzMVAyMlNDY3Fw4BHQEjAYpv0+Zc/uJbVVAqJbEEhQFAFf7BVlqKLEgpYURSAAAAAQBP/+sEFgXFACgAAAEzMjY1NCYjIgYVIzQkMzIWFRQGBx4BFRQEIyIkNTMUFjMyNjU0JisBAYapeWVub2V78wECztn6b2x/cv7x2s7+8POAbnOAdX+pA0ZzbWtxb16v4dTLX6sxLbB2zOHUx2N2eHJ+cgACADgAAARZBbAACgAPAAABMxUjESMRIScBMwEhEScHA6G4uPL9jwYCb/r9hwGHAxcCB8T+vQFDlQPY/FcCVgExAAAAAAEAgf/rBCYFsAAeAAAbASEVIQM+ATc2EhUUAiMiJDU3FBYzMjY1NCYjIgYHnFQDAf3JLCxvSNHk8OvE/vrremVzdXhzZl4XAosDJdL+kyApAgP+/Ora/vTRyQhsdJ2FhqM/PwACAHT/6wRGBcUAGgAnAAABMhYXBy4BIyIGHQE+ATMyEhUUAiMiABkBEAATIgYHFRQWMzI2NTQmAqhQjTouOWdIlK89nWDH3//Y4v7nATy0XX4jkndtd34FxSAcvBgb3cMHODv+89fk/ucBMgEeARYBIgFS/UpAOWi9xLOIhaIAAAMACv5KBBsETgAvAD8ATQAAASMeAR0BFAYjIiYnDgEVFBY7ATIWFRQEIyImNTQ2Ny4BNTQ2Ny4BPQE0NjMyFhchASImJw4BFRQWMzI2NTQmIwEUFjMyNj0BNCYjIgYVBBuKHB73yipJIxITQj2xxc3+1vno/GNTGRk/Nlxi9s0rTicBcf2GGCoUJy59fZCiUGX+zHNgXXJzXl9yA6AqXzUWnc8IChEoGSsilJWF2552WXwpFzwnQ18mMZxhFqPJCgr73gMEFUYwPlFiPDo7ArRJaGhJFktlZUsAAAABADIAAAP3BbAADAAAAQoBAwcjNxoBNyE1IQP3+KQnD/MPJ9zH/ScDxQTt/tP+NP6mmpoBUgIO88MAAAABAD7+TQREBEoAIwAAEzIWHwETMwETHgEXOgE3Bw4BJy4BLwEDIwEDLgEjIgYHJz4BwYxzPVvh9f6fxRo9KxARDwcTNhdxeT9l+PgBfKccWTwMKA8CH0IESoqGzgHO/Sj+QT1EBQLGBgYBBZST5v4AAwwBgEVRBAG6CAsAAwBh/+sEKgXFABcAIwAvAAABFAYHHgEVFAQjIiQ1NDY3LgE1NDYzMhYDNCYjIgYVFBYzMjYDNCYjIgYVFBYzMjYEBXVqeor++dzf/vmIfGp08c3L9c2HbG6DgnFthCZwXV9sbWBdbgQwcaYuL7V6z9PTz3u0MC2mccbPz/yjbYSDbnB8fQL9Ynl1ZmV1dQAAAgBW/+sEXwROABQAIgAAJScOASMiAj0BEBIzMhYXPwEzAxMjARQWMzI2NzUuASMiBhUDZAM2qn7O397Reqc3AxvdbHPd/cdxf21vFxFzbX9zvwFpbAEd8RUBCAE4bGcBvv3i/eQB+Zmzt5ovm8PRrAAAAAACAFP/6wQ0BbAAGgArAAABFSEeARcWEh0BFAAjIgA9ATQSNzI2My4BJzUTFBYzMjY9ATQmJy4BIyIGFQPD/lQaZzqvs/787Oz+++bHCQwMgZI3b3qEgnxgSBMjFYmABbDBG1gul/77nxXw/t0BHegVwwEHHAF0iD+J/E6ZuLmYFW6pMAQEupUAAgCfAAAEyAWwAAkAEwAAMxEhIAARFRAAIQMRMzI2PQE0JiOfAZ4BUwE4/sj+rauk57i45wWw/tH+z/H+z/7SBO371cXY89XGAAAAAAIAYP/rA/4ETgAfACoAACEuAScOASMiJjU0NjsBNTQmIyIGFSM0NjMyFhURFBYXJTI2NzUjIgYVFBYDCAkMAzefYqys8+qrX2VjWfPd4dHXDxT98lSDIa96bUcdNRw6SaKiqqR6VEZMQ5S4oLn+BEZ4O647K9FdVUJDAAACAJ8AAAT+BbAADgAXAAABFAYHARUhASERIxEhMgQBITI2NTQmIyEEqn93AUr+9f7d/sLzAg34AQb86AEbhoSCif7mBAaGwDX9iBMCS/21BbDa/jh7dXB/AAAAAAEAnwAABS8FsAAMAAABBxEjETMRNwEhCQEhAieV8/OSAasBIP3eAmL+zAKApf4lBbD9X6sB9v2J/McAAAEAgQAABDwGGAANAAABBxEjETMRFzcBIQkBIQHgbfLyA1ABLQEe/m0Bvv7mAc9z/qQGGPxxAWEBUf5A/YYAAAABAJ8AAAURBbAACwAAAREjETMRMwEhCQEhAZLz8wcCJgEt/ZsCiv7TAp/9YQWw/X8Cgf02/RoAAAEAgQAABCIGGAAMAAABBxEjETMRFwEhCQEhAXYD8vIDAVYBKv5QAdz+2wHnAf4aBhj8iAEBm/4M/boAAAIAUv/rBBcFxQAbACgAACUyNj0BJw4BIyICNTQAMzIAGQEQACMiJic3HgETMjY3NTQmIyIGFRQWAgOFnQMwilXV7AEKy+cBCf7c8EyeRCBAfXhdfSGAemSCdq29vSMBQUIBBPHmASL+3P7k/qv+5v7VHh64GxcB2EY7nLGvt46SpgAAAAIAjgAABEAEjQAKABMAAAERIxEhMhYVFAYjJzMyNjU0JisBAYDyAePY9/fY8fFscHBs8QGG/noEjdaur9TCblFTcgD//wB1BJUC+wWwAgYAnAAA//8AAAAAAAAAAAIGAAMAAP//AEcCCQJUAs0CBgAPAAAAAgAkAAAFDAWwAA0AGwAAMxEjNTMRISAAERUQACETIREzMjY9ATQmKwERIb2ZmQHKASoBW/6i/sw5/v3D2c3Kz9ABAwKRqgJ1/qb+4sH+4P6pApH+MerLw83m/k4AAAAAAgAkAAAFDAWwAA0AGwAAMxEjNTMRISAAERUQACETIREzMjY9ATQmKwERIb2ZmQHKASoBW/6i/sw5/v3D2c3Kz9ABAwKRqgJ1/qb+4sH+4P6pApH+MerLw83m/k4AAAAAAf/9AAAEKgYYABwAAAEjERc+ATMyFhURIxE0JiMiBgcRIxEjNTM1MxUzAoz+AzWXYLC982RoSW4m856e8/4Ex/7sAUtR1Of9bQKVgnA6NfzoBMeqp6cAAAEANQAABLUFsAAPAAABIxEjESM1MxEhNSEVIREzA73P883N/joEgP45zwMS/O4DEqoBMcPD/s8AAf/n/+wCdgVBAB8AAAERMxUjFTMVIxEUFjMyNjcXDgEjIiY1ESM1MzUjNTMRAaHDw9XVMSsZLBQaIV4xg4/Hx5WVBUH++bSlqv75RTYHBrIQFJmrAQeqpbQBB///ABoAAAUoByICJgAjAAAABwBCAPwBXP//ABoAAAUoByECJgAjAAAABwBzAbMBW///ABoAAAUoB0cCJgAjAAAABwCaALcBWf//ABoAAAUoB2MCJgAjAAAABwCgALkBbP//ABoAAAUoBw0CJgAjAAAABwBoAJMBXf//ABoAAAUoB48CJgAjAAAABwCeAUwBs///ABoAAAUoB70CJgAjAAAABwHUAVIBKP//AHT+PATYBcUCJgAlAAAABwB3Acb/+///AJ8AAAR1ByICJgAnAAAABwBCAMQBXP//AJ8AAAR1ByECJgAnAAAABwBzAXsBW///AJ8AAAR1B0cCJgAnAAAABwCaAH8BWf//AJ8AAAR1Bw0CJgAnAAAABwBoAFsBXf///8wAAAGgByICJgArAAAABwBC/4IBXP//AK0AAAKEByECJgArAAAABwBzADgBW////9gAAAJ5B0cCJgArAAAABwCa/z0BWf///70AAAKSBw0CJgArAAAABwBo/xkBXf//AJ8AAAUQB2MCJgAwAAAABwCgAO4BbP//AHT/6wUbBzcCJgAxAAAABwBCASMBcf//AHT/6wUbBzYCJgAxAAAABwBzAdoBcP//AHT/6wUbB1wCJgAxAAAABwCaAN4Bbv//AHT/6wUbB3gCJgAxAAAABwCgAOABgf//AHT/6wUbByICJgAxAAAABwBoALoBcv//AIb/6wTxByICJgA3AAAABwBCARcBXP//AIb/6wTxByECJgA3AAAABwBzAc4BW///AIb/6wTxB0cCJgA3AAAABwCaANIBWf//AIb/6wTxBw0CJgA3AAAABwBoAK4BXf//ABMAAATvByECJgA7AAAABwBzAZYBW///AF7/7AQBBeACJgBDAAAABwBCAIEAGv//AF7/7AQBBd8CJgBDAAAABwBzATgAGf//AF7/7AQBBgUCJgBDAAAABgCaPBcAAP//AF7/7AQBBiECJgBDAAAABgCgPioAAP//AF7/7AQBBcsCJgBDAAAABgBoGBsAAP//AF7/7AQBBk0CJgBDAAAABwCeANEAcf//AF7/7AQBBnwCJgBDAAAABwHUANf/5///AFH+PAP3BE4CJgBFAAAABwB3AT7/+///AFn/7AP4BeECJgBHAAAABwBCAIMAG///AFn/7AP4BeACJgBHAAAABwBzAToAGv//AFn/7AP4BgYCJgBHAAAABgCaPhgAAP//AFn/7AP4BcwCJgBHAAAABgBoGhwAAP///68AAAGCBcsCJgCKAAAABwBC/2UABf//AI8AAAJnBcoCJgCKAAAABgBzGwQAAP///7sAAAJcBfACJgCKAAAABwCa/yAAAv///6AAAAJ1BbYCJgCKAAAABwBo/vwABv//AH4AAAQLBiECJgBQAAAABgCgWSoAAP//AFP/7AQ0BeACJgBRAAAABwBCAJ4AGv//AFP/7AQ0Bd8CJgBRAAAABwBzAVUAGf//AFP/7AQ0BgUCJgBRAAAABgCaWRcAAP//AFP/7AQ0BiECJgBRAAAABgCgWyoAAP//AFP/7AQ0BcsCJgBRAAAABgBoNRsAAP//AHv/7AQKBcsCJgBXAAAABwBCAJ0ABf//AHv/7AQKBcoCJgBXAAAABwBzAVQABP//AHv/7AQKBfACJgBXAAAABgCaWAIAAP//AHv/7AQKBbYCJgBXAAAABgBoNAYAAP//ABD+SwP8BcoCJgBbAAAABwBzARgABP//ABD+SwP8BbYCJgBbAAAABgBo+QYAAP//ABoAAAUoBvYCJgAjAAAABwBuALIBRv//AF7/7AQBBbQCJgBDAAAABgBuNwQAAP//ABoAAAUoB1wCJgAjAAAABwCcAOoBrP//AF7/7AQBBhoCJgBDAAAABgCcb2oAAAACABr+UgUoBbAAGgAeAAAJASMOARUUFjMyNjcXDgEjIiY1NDY3AyEDIwEDIQMjAxgCEERQUSAnGioWFSFNN151UVlx/c949wIXZQGs1AMFsPpQM1w4ISMNCo4TGWlgRno1AUz+pAWw/G8CawACAF7+UgQBBE4AMwA+AAAhLgEnDgEjIiY1NDY7ATU0JiMiBhUjNDYzMhYVERQWFyMOARUUFjMyNjcXDgEjIiY1NDY3JTI2NzUjIgYVFBYDCwsPBDecYqez9OWxZGBYZPP1ycHnERUiUFEgJxoqFhUhTTdedUVM/uBUhSK1bXVOIkQkRlirmqCsX1ZfT0CIxL23/h9FeDwzXDghIw0KjhMZaWBBcTOvSDa4Z0k/RwAA//8AdP/rBNgHNgImACUAAAAHAHMBvwFw//8AUf/sA/cF3wImAEUAAAAHAHMBKAAZ//8AdP/rBNgHXAImACUAAAAHAJoAwwFu//8AUf/sA/cGBQImAEUAAAAGAJosFwAA//8AdP/rBNgHNgImACUAAAAHAJ0BkAGA//8AUf/sA/cF3wImAEUAAAAHAJ0A+QAp//8AdP/rBNgHYwImACUAAAAHAJsA2gFy//8AUf/sA/cGDAImAEUAAAAGAJtDGwAA//8AnwAABO4HTgImACYAAAAHAJsAjQFd//8AU//sBVcGGAAmAEYAAAAHAZED/QUS//8AnwAABHUG9gImACcAAAAHAG4AegFG//8AWf/sA/gFtQImAEcAAAAGAG45BQAA//8AnwAABHUHXAImACcAAAAHAJwAsgGs//8AWf/sA/gGGwImAEcAAAAGAJxxawAA//8AnwAABHUHIQImACcAAAAHAJ0BTAFr//8AWf/sA/gF4AImAEcAAAAHAJ0BCwAqAAEAn/5SBHUFsAAgAAABIREhFSMOARUUFjMyNjcXDgEjIiY1NDY3JyERIRUhESEED/2DAuNAUFEgJxoqFhUhTTdedURJAf1BA8/9JAJ9Ao/+M8IzXDghIw0KjhMZaWBAcTEDBbDD/mUAAgBZ/mAD+ARPACkAMQAAJQ4BBzMOARUUFjMyNjcXDgEjIiY1NDY3JgA9ATQAFzISHQEhHgEzMjY3ASIGByE1NCYD1R5OMgFQUSAnGioWFSFNN151MDXh/wABC9Dg5P1WCol+ZIlC/qZbdBIBtGdkGiwQM1w4ISMNCo4TGWlgNmEtCAEk6yjxATIB/vvjj4eiLy0CgY11GWmAAAD//wCfAAAEdQdOAiYAJwAAAAcAmwCWAV3//wBZ/+wD+AYNAiYARwAAAAYAm1UcAAD//wB0/+sE4gdcAiYAKQAAAAcAmgC6AW7//wBU/kwECAYFAiYASQAAAAYAmkYXAAD//wB0/+sE4gdxAiYAKQAAAAcAnADtAcH//wBU/kwECAYaAiYASQAAAAYAnHlqAAD//wB0/+sE4gc2AiYAKQAAAAcAnQGHAYD//wBU/kwECAXfAiYASQAAAAcAnQETACn//wB0/eIE4gXFAiYAKQAAAAcBkQG2/qv//wBU/kwECAaKAiYASQAAAAcBpQEtAH7//wCfAAAFEAdHAiYAKgAAAAcAmgDoAVn//wB9AAAEDAdiAiYASgAAAAcAmgAbAXT///+/AAACkAdjAiYAKwAAAAcAoP8/AWz///+iAAACcwYMAiYAigAAAAcAoP8iABX///+/AAAClgb2AiYAKwAAAAcAbv84AUb///+iAAACeQWgAiYAigAAAAcAbv8b//D////lAAACawdcAiYAKwAAAAcAnP9wAaz////IAAACTgYFAiYAigAAAAcAnP9TAFX//wAc/lwBoAWwAiYAKwAAAAYAn/MKAAD////+/lIBgwYYAiYASwAAAAYAn9UAAAD//wCjAAABpgchAiYAKwAAAAcAnQAJAWv//wCt/+sGMwWwACYAKwAAAAcALAJNAAD//wCQ/ksDoQYYACYASwAAAAcATAITAAD//wA6/+sEsgc/AiYALAAAAAcAmgF2AVH///+1/ksCZAXjAiYAmAAAAAcAmv8o//X//wCf/fAFLwWwAiYALQAAAAcBkQGK/rn//wCB/fIENQYYAiYATQAAAAcBkQEv/rv//wCfAAAELwb4AiYALgAAAAcAcwAqATL//wCQAAACZwdfAiYATgAAAAcAcwAbAZn//wCf/fIELwWwAiYALgAAAAcBkQF1/rv//wBY/fIBgwYYAiYATgAAAAcBkQAT/rv//wCfAAAELwWyAiYALgAAAAcBkQIEBKz//wCQAAAC6AYYACYATgAAAAcBkQGOBRL//wCfAAAELwWwAiYALgAAAAcAnQG7/dT//wCQAAAC9wYYACYATgAAAAcAnQFa/a///wCfAAAFEAchAiYAMAAAAAcAcwHoAVv//wB+AAAECwXfAiYAUAAAAAcAcwFTABn//wCf/fIFEAWwAiYAMAAAAAcBkQHg/rv//wB+/fIECwROAiYAUAAAAAcBkQFL/rv//wCfAAAFEAdOAiYAMAAAAAcAmwEDAV3//wB+AAAECwYMAiYAUAAAAAYAm24bAAD////VAAAECwYYAiYAUAAAAAcBkf+QBRL//wB0/+sFGwcLAiYAMQAAAAcAbgDZAVv//wBT/+wENAW0AiYAUQAAAAYAblQEAAD//wB0/+sFGwdxAiYAMQAAAAcAnAERAcH//wBT/+wENAYaAiYAUQAAAAcAnACMAGr//wB0/+sFGwdgAiYAMQAAAAcAoQFDAXL//wBT/+wEWQYJAiYAUQAAAAcAoQC+ABv//wCfAAAE8AchAiYANAAAAAcAcwGDAVv//wCAAAAC+gXfAiYAVAAAAAcAcwCuABn//wCf/fIE8AWwAiYANAAAAAcBkQF7/rv//wBW/fICwwROAiYAVAAAAAcBkQAR/rv//wCfAAAE8AdOAiYANAAAAAcAmwCeAV3//wBDAAAC9wYMAiYAVAAAAAYAm8obAAD//wBT/+sEoAc2AiYANQAAAAcAcwGBAXD//wBR/+wDzwXfAiYAVQAAAAcAcwEiABn//wBT/+sEoAdcAiYANQAAAAcAmgCFAW7//wBR/+wDzwYFAiYAVQAAAAYAmiYXAAD//wBT/jgEoAXFAiYANQAAAAcAdwGW//f//wBR/jgDzwROAiYAVQAAAAcAdwEv//f//wBT/d4EoAXFAiYANQAAAAcBkQGB/qf//wBR/d4DzwROAiYAVQAAAAcBkQEa/qf//wBT/+sEoAdjAiYANQAAAAcAmwCcAXL//wBR/+wDzwYMAiYAVQAAAAYAmz0bAAD//wA1/fIEtQWwAiYANgAAAAcBkQGB/rv//wAZ/egCcAVBAiYAVgAAAAcBkQC5/rH//wA1/ksEtQWwAiYANgAAAAcAdwGWAAr//wAZ/kEClwVBAiYAVgAAAAcAdwDOAAD//wA1AAAEtQdOAiYANgAAAAcAmwCkAV3//wAZ/+wDLwY2ACYAVgAAAAcBkQHVBTD//wCG/+sE8QdjAiYANwAAAAcAoADUAWz//wB7/+wECgYMAiYAVwAAAAYAoFoVAAD//wCG/+sE8Qb2AiYANwAAAAcAbgDNAUb//wB7/+wECgWgAiYAVwAAAAYAblPwAAD//wCG/+sE8QdcAiYANwAAAAcAnAEFAaz//wB7/+wECgYFAiYAVwAAAAcAnACLAFX//wCG/+sE8QePAiYANwAAAAcAngFnAbP//wB7/+wECgY4AiYAVwAAAAcAngDtAFz//wCG/+sE8QdLAiYANwAAAAcAoQE3AV3//wB7/+wEWAX0AiYAVwAAAAcAoQC9AAYAAQCG/nkE8QWwACcAAAERFAYHDgEVFBYzMjY3Fw4BIyImNTQ2NyIGIyIkNREzERQWMzI2NREE8YyBUFEgJxoqFhUhTTdedSMnBA4D//7P86mUma8FsPwwo9o8M1w4ISMNCo4TGWlgLlQoAf/2A9D8MJyXl5wD0AAAAQB7/lIEEAQ6ACcAACEOARUUFjMyNjcXDgEjIiY1NDY3LwEOASMiJjURMxEUFjMyNjcRMxED+1BRICcaKhYVIU03XnVJUA8CNJhnssDyWl9ZdSPzM1w4ISMNCo4TGWlgQnUziwFRVNjvAof9d5FuPjwDDvvGAAD//wBEAAAGuwdHAiYAOQAAAAcAmgGVAVn//wAlAAAF0AXwAiYAWQAAAAcAmgERAAL//wATAAAE7wdHAiYAOwAAAAcAmgCaAVn//wAQ/ksD/AXwAiYAWwAAAAYAmhwCAAD//wATAAAE7wcNAiYAOwAAAAcAaAB2AV3//wBYAAAEcQciAiYAPAAAAAcAcwFvAVz//wBVAAADxAXKAiYAXAAAAAcAcwEeAAT//wBYAAAEcQciAiYAPAAAAAcAnQFAAWz//wBVAAADxAXKAiYAXAAAAAcAnQDvABT//wBYAAAEcQdPAiYAPAAAAAcAmwCKAV7//wBVAAADxAX3AiYAXAAAAAYAmzkGAAD////2AAAHVwchAiYAfwAAAAcAcwK4AVv//wA0/+sGhAXgAiYAhAAAAAcAcwJuABr//wBp/6EFEAdfAiYAgQAAAAcAcwHSAZn//wBT/3YENAXcAiYAhwAAAAcAcwEuABb////qAAAEQgSNAiYBqQAAAAcB0/9T/3f////qAAAEQgSNAiYBqQAAAAcB0/9T/3f//wA8AAAD6QSNAiYBuAAAAAYB0y3eAAD//wAcAAAErAXfAiYBpgAAAAcAQgC6ABn//wAcAAAErAXeAiYBpgAAAAcAcwFxABj//wAcAAAErAYEAiYBpgAAAAYAmnUWAAD//wAcAAAErAYgAiYBpgAAAAYAoHcpAAD//wAcAAAErAXKAiYBpgAAAAYAaFEaAAD//wAcAAAErAZMAiYBpgAAAAcAngEKAHD//wAcAAAErAZ7AiYBpgAAAAcB1AEQ/+b//wBo/j4EMgSdAiYBqAAAAAcAdwFi//3//wCOAAADzgXfAiYBqgAAAAYAQnsZAAD//wCOAAADzgXeAiYBqgAAAAcAcwEyABj//wCOAAADzgYEAiYBqgAAAAYAmjYWAAD//wCOAAADzgXKAiYBqgAAAAYAaBIaAAD///+sAAABgAXfAiYBrgAAAAcAQv9iABn//wCOAAACZAXeAiYBrgAAAAYAcxgYAAD///+4AAACWQYEAiYBrgAAAAcAmv8dABb///+dAAACcgXKAiYBrgAAAAcAaP75ABr//wCOAAAEhQYgAiYBswAAAAcAoACQACn//wBm/+4EZAXwAiYBtAAAAAcAQgCxACr//wBm/+4EZAXvAiYBtAAAAAcAcwFoACn//wBm/+4EZAYVAiYBtAAAAAYAmmwnAAD//wBm/+4EZAYxAiYBtAAAAAYAoG46AAD//wBm/+4EZAXbAiYBtAAAAAYAaEgrAAD//wB+/+4EewXhAiYBuQAAAAcAQgDKABv//wB+/+4EewXgAiYBuQAAAAcAcwGBABr//wB+/+4EewYGAiYBuQAAAAcAmgCFABj//wB+/+4EewXMAiYBuQAAAAYAaGEcAAD//wATAAAEPAXeAiYBvQAAAAcAcwE4ABj//wAcAAAErAWzAiYBpgAAAAYAbnADAAD//wAcAAAErAYZAiYBpgAAAAcAnACoAGkAAgAc/lIErASNABoAHQAAATMBIw4BFRQWMzI2NxcOASMiJjU0NjcnIQcjASEDAej4AcxQUFEgJxoqFhUhTTdedVNbUP4ZVv4BnAFXrASN+3MzXDghIw0KjhMZaWBHezXX6QGrAc0AAP//AGj/7wQyBe4CJgGoAAAABwBzAVoAKP//AGj/7wQyBhQCJgGoAAAABgCaXiYAAP//AGj/7wQyBe4CJgGoAAAABwCdASsAOP//AGj/7wQyBhsCJgGoAAAABgCbdSoAAP//AI4AAARCBgsCJgGpAAAABgCbJRoAAP//AI4AAAPOBbMCJgGqAAAABgBuMQMAAP//AI4AAAPOBhkCJgGqAAAABgCcaWkAAP//AI4AAAPOBd4CJgGqAAAABwCdAQMAKAABAI7+UgPOBI0AIAAAASERIRUjDgEVFBYzMjY3Fw4BIyImNTQ2NychESEVIREhA3j+CAJOQ1BRICcaKhYVIU03XnVESQH92gNA/bIB+AH8/sTAM1w4ISMNCo4TGWlgQHExAwSNwf7y//8AjgAAA84GCwImAaoAAAAGAJtNGgAA//8AaP/vBF8GFAImAawAAAAGAJpuJgAA//8AaP/vBF8GKQImAawAAAAHAJwAoQB5//8AaP/vBF8F7gImAawAAAAHAJ0BOwA4//8AaP3kBF8EnQImAawAAAAHAZEBaf6t//8AjgAABHoGBAImAa0AAAAHAJoAggAW////nwAAAnAGIAImAa4AAAAHAKD/HwAp////nwAAAnYFswImAa4AAAAHAG7/GAAD////xQAAAksGGQImAa4AAAAHAJz/UABp////+f5SAYAEjQImAa4AAAAGAJ/QAAAA//8AhAAAAYcF3gImAa4AAAAGAJ3qKAAA//8ALv/uBF4GAAImAa8AAAAHAJoBIgAS//8Ajv3uBF0EjQImAbAAAAAHAZEBG/63//8AjgAAA3kFywImAbEAAAAGAHMXBQAA//8Ajv3wA3kEjQImAbEAAAAHAZEA7f65//8AjgAAA3kEjwImAbEAAAAHAZEBkAOJ//8AjgAAA3kEjQImAbEAAAAHAJ0BSv0y//8AjgAABIUF3gImAbMAAAAHAHMBigAY//8Ajv3wBIUEjQImAbMAAAAHAZEBgv65//8AjgAABIUGCwImAbMAAAAHAJsApQAa//8AZv/uBGQFxAImAbQAAAAGAG5nFAAA//8AZv/uBGQGKgImAbQAAAAHAJwAnwB6//8AZv/uBGwGGQImAbQAAAAHAKEA0QAr//8AjgAABEkF3gImAbYAAAAHAHMBIQAY//8Ajv3wBEkEjQImAbYAAAAHAZEBGf65//8AjgAABEkGCwImAbYAAAAGAJs8GgAA//8AT//uBBkF8AImAbcAAAAHAHMBPQAq//8AT//uBBkGFgImAbcAAAAGAJpBKAAA//8AT/47BBkEnQImAbcAAAAHAHcBSv/6//8AT//uBBkGHQImAbcAAAAGAJtYLAAA//8APP3wA+kEjQImAbgAAAAHAZEBFv65//8APAAAA+kGCwImAbgAAAAGAJs5GgAA//8Afv/uBHsGIgImAbkAAAAHAKAAhwAr//8Afv/uBHsFtQImAbkAAAAHAG4AgAAF//8Afv/uBHsGGwImAbkAAAAHAJwAuABr//8Afv/uBHsGTgImAbkAAAAHAJ4BGgBy//8Afv/uBIUGCgImAbkAAAAHAKEA6gAcAAEAfv58BHsEjQAmAAABERQGBzMOARUUFjMyNjcXDgEjIiY1NDY3IyIkNREzERQWMzI2NREEe3NsAVBRICcaKhYVIU03XnUjJgbp/uryjn9/jQSN/QqBtjYzXDghIw0KjhMZaWAuVCfdzAL2/Qpyd3dyAvb//wA0AAAF1wYEAiYBuwAAAAcAmgEWABb//wATAAAEPAYEAiYBvQAAAAYAmjwWAAD//wATAAAEPAXKAiYBvQAAAAYAaBgaAAD//wBKAAAD6wXfAiYBvgAAAAcAcwEoABn//wBKAAAD6wXfAiYBvgAAAAcAnQD5ACn//wBKAAAD6wYMAiYBvgAAAAYAm0MbAAD//wBP/+4IiQSdACYBtwAAAAcBtwRwAAD//wAaAAAFKAZwAiYAIwAAAAYAqeUAAAD///+vAAAE2QZyACYAJ2QAAAcAqf7YAAL////cAAAFdAZwACYAKmQAAAcAqf8FAAD////jAAACBAZyACYAK2QAAAcAqf8MAAL//wAq/+sFLwZwACYAMRQAAAcAqf9TAAD///9nAAAFUwZwACYAO2QAAAcAqf6QAAD//wATAAAE7gZwACYAtRQAAAcAqf88AAD///+w/+sCoQZfAiYAvgAAAAcAqv8T/7v//wAaAAAFKAWwAgYAIwAA//8AnwAABLwFsAIGACQAAP//AJ8AAAR1BbACBgAnAAD//wBYAAAEcQWwAgYAPAAA//8AnwAABRAFsAIGACoAAP//AK0AAAGgBbACBgArAAD//wCfAAAFLwWwAgYALQAA//8AnwAABmIFsAIGAC8AAP//AJ8AAAUQBbACBgAwAAD//wB0/+sFGwXFAgYAMQAA//8AnwAABNoFsAIGADIAAP//ADUAAAS1BbACBgA2AAD//wATAAAE7wWwAgYAOwAA//8ALwAABOoFsAIGADoAAP///70AAAKSBw0CJgArAAAABwBo/xkBXf//ABMAAATvBw0CJgA7AAAABwBoAHYBXf//AFb/6wR5BlwCJgC2AAAABwCpAUT/7P//AGD/7AQMBlsCJgC6AAAABwCpAQ3/6///AH7+YQQGBlwCJgC8AAAABwCpARf/7P//AKn/6wJ+BkYCJgC+AAAABgCpA9YAAP//AID/6wQIBmACJgDGAAAABgCqGLwAAP//AI4AAARrBDoCBgCLAAD//wBT/+wENAROAgYAUQAA//8Akv5gBB8EOgIGAHQAAP//ACAAAAP1BDoCBgBYAAD//wAhAAAD7QQ6AgYAWgAA////xP/rApkFtQImAL4AAAAHAGj/IAAF//8AgP/rBAgFtgImAMYAAAAGAGglBgAA//8AU//sBDQGXAImAFEAAAAHAKkBGf/s//8AgP/rBAgGRwImAMYAAAAHAKkBCf/X//8AZv/rBi0GRQImAMkAAAAHAKkCIf/V//8AnwAABHUHDQImACcAAAAHAGgAWwFd//8AnwAABDcHIQImAKwAAAAHAHMBfQFbAAEAU//rBKAFxQAlAAABNCYnJiQ1NCQzMgAVIzQmIyIGFRQWFx4BFRQEIyIkNTMUFjMyNgOtg676/v4BH+r0ASLzlo+HjZe47+/+4fHp/qzztJaJlAF2XHMuQs6us+H/AL1yiXNdVWsyQdiwudTu24eBawD//wCtAAABoAWwAgYAKwAA////vQAAApIHDQImACsAAAAHAGj/GQFd//8AOv/rA+YFsAIGACwAAP//AJ8AAAUvBbACBgAtAAD//wCfAAAFLwbJAiYALQAAAAcAcwFzAQP//wA//+sE2QdcAiYA2QAAAAcAnADPAaz//wAaAAAFKAWwAgYAIwAA//8AnwAABLwFsAIGACQAAP//AJ8AAAQ3BbACBgCsAAD//wCfAAAEdQWwAgYAJwAA//8AmgAABQsHXAImANcAAAAHAJwBHQGs//8AnwAABmIFsAIGAC8AAP//AJ8AAAUQBbACBgAqAAD//wB0/+sFGwXFAgYAMQAA//8AnwAABREFsAIGALEAAP//AJ8AAATaBbACBgAyAAD//wB0/+sE2AXFAgYAJQAA//8ANQAABLUFsAIGADYAAP//AC8AAATqBbACBgA6AAD//wBe/+wEAQROAgYAQwAA//8AWf/sA/gETwIGAEcAAP//AIYAAAQSBgUCJgDrAAAABwCcAJUAVf//AFP/7AQ0BE4CBgBRAAD//wCA/mAENAROAgYAUgAAAAEAUf/sA/cETgAbAAAlMjY1MxQEIyICPQE0EjMyFhUjNCYjIgYdARQWAjtbfOX+/7j0+fnzx/PldWKLbGquZ1Gg2gEu8SPwATDht1t6w5ojncAA//8AEP5LA/wEOgIGAFsAAP//ACEAAAPtBDoCBgBaAAD//wBZ/+wD+AXMAiYARwAAAAYAaBocAAD//wCFAAADTQXKAiYA5wAAAAcAcwC+AAT//wBR/+wDzwROAgYAVQAA//8AkAAAAYMGGAIGAEsAAP///6AAAAJ1BbYCJgCKAAAABwBo/vwABv///7D+SwGOBhgCBgBMAAD//wCPAAAEZQXJAiYA7AAAAAcAcwE8AAP//wAQ/ksD/AYFAiYAWwAAAAYAnE9VAAD//wBEAAAGuwciAiYAOQAAAAcAQgHaAVz//wAlAAAF0AXLAiYAWQAAAAcAQgFWAAX//wBEAAAGuwchAiYAOQAAAAcAcwKRAVv//wAlAAAF0AXKAiYAWQAAAAcAcwINAAT//wBEAAAGuwcNAiYAOQAAAAcAaAFxAV3//wAlAAAF0AW2AiYAWQAAAAcAaADtAAb//wATAAAE7wciAiYAOwAAAAcAQgDfAVz//wAQ/ksD/AXLAiYAWwAAAAYAQmEFAAD//wBSBAQBCwYYAgYACQAA//8AUgP8Aj8GGAIGAAQAAP//AJoAAAOyBbAAJgQbAAAABwQbAiUAAP//ADEAAARSBi0AJgBIAAAABwBOAs8AAP///7X+SwJsBeoCJgCYAAAABwCb/z//+f//ADMD1gFpBhgCBgFmAAD//wCfAAAGYgchAiYALwAAAAcAcwKSAVv//wCAAAAGdQXfAiYATwAAAAcAcwKhABn//wAa/n4FKAWwAiYAIwAAAAcAogFIAAD//wBe/oUEAQROAiYAQwAAAAcAogCQAAf///89/+sFGwasAiYAMQAAAAcB1f7RANX//wAxAAAG5gYtACYASAAAAAcBkgLPAAD//wAxAAAHIQYtACYASAAAACcASALPAAAABwBOBZ4AAP//AJ8AAAR1ByICJgAnAAAABwBCAMQBXP//AJoAAAULByICJgDXAAAABwBCAS8BXP//AFn/7AP4BeECJgBHAAAABwBCAIMAG///AIYAAAQSBcsCJgDrAAAABwBCAKcABf//AEgAAAVRBbACBgC0AAD//wBP/iIFfgQ6AgYAyAAA//8AEQAABO8HRAImARQAAAAHAKcEOwFW////4wAABBgGMgImARUAAAAHAKcD1wBE//8AU/5LCIQETgAmAFEAAAAHAFsEiAAA//8AdP5LCYsFxQAmADEAAAAHAFsFjwAA//8ASv46BHsFxQImANYAAAAHAZwBkv+g//8ATf47A8QETQImAOoAAAAHAZwBOf+h//8AdP4+BNgFxQImACUAAAAHAZwB0/+k//8AUf4+A/cETgImAEUAAAAHAZwBS/+k//8AEwAABO8FsAIGADsAAP//ACD+XwP1BDoCBgC4AAD//wCtAAABoAWwAgYAKwAA//8AGAAAB4kHXAImANUAAAAHAJwCHAGs//8AFwAABl8GBQImAOkAAAAHAJwBpQBV//8ArQAAAaAFsAIGACsAAP//ABoAAAUoB1wCJgAjAAAABwCcAOoBrP//AF7/7AQBBhoCJgBDAAAABgCcb2oAAP//ABoAAAUoBw0CJgAjAAAABwBoAJMBXf//AF7/7AQBBcsCJgBDAAAABgBoGBsAAP////YAAAdXBbACBgB/AAD//wA0/+sGhAROAgYAhAAA//8AnwAABHUHXAImACcAAAAHAJwAsgGs//8AWf/sA/gGGwImAEcAAAAGAJxxawAA//8AU//qBRsG2gImAUEAAAAHAGgAcwEq//8AWf/sA/gEUAIGAJkAAP//AFn/7AP4BcwCJgCZAAAABgBoGhwAAP//ABgAAAeJBw0CJgDVAAAABwBoAcUBXf//ABcAAAZfBbYCJgDpAAAABwBoAU4ABv//AEr/6wR7ByICJgDWAAAABwBoAFgBcv//AE3/7APEBcoCJgDqAAAABgBoABoAAP//AJoAAAULBvYCJgDXAAAABwBuAOUBRv//AIYAAAQSBaACJgDrAAAABgBuXfAAAP//AJoAAAULBw0CJgDXAAAABwBoAMYBXf//AIYAAAQSBbYCJgDrAAAABgBoPgYAAP//AHT/6wUbByICJgAxAAAABwBoALoBcv//AFP/7AQ0BcsCJgBRAAAABgBoNRsAAP//AGr/6wURBcUCBgESAAD//wBS/+wEMwROAgYBEwAA//8Aav/rBREHCAImARIAAAAHAGgAxgFY//8AUv/sBDMF5wImARMAAAAGAGghNwAA//8AiP/sBNcHIwImAOIAAAAHAGgAjwFz//8AUf/rA+gFywImAPoAAAAGAGgPGwAA//8AP//rBNkG9gImANkAAAAHAG4AlwFG//8AEP5LA/wFoAImAFsAAAAGAG4X8AAA//8AP//rBNkHDQImANkAAAAHAGgAeAFd//8AEP5LA/wFtgImAFsAAAAGAGj5BgAA//8AP//rBNkHSwImANkAAAAHAKEBAQFd//8AEP5LBBwF9AImAFsAAAAHAKEAgQAG//8AjwAABOkHDQImANwAAAAHAGgAwgFd//8AXwAAA+AFtgImAPQAAAAGAGgNBgAA//8AnwAABlkHDQAmAOELAAAnACsEuQAAAAcAaAFuAV3//wCPAAAFyQW2ACYA+QAAACcAigRHAAAABwBoAR8ABv//AC/+SwVUBbACJgA6AAAABwGaA8YAAP//ACH+SwRYBDoCJgBaAAAABwGaAsoAAP//AFP/7AQDBhgCBgBGAAD//wAu/ksF/QWwAiYA2AAAAAcBmgRvAAD//wAf/ksFBwQ6AiYA7QAAAAcBmgN5AAD//wAa/qUFKAWwAiYAIwAAAAcAqAT8AAD//wBe/qwEAQROAiYAQwAAAAcAqAREAAf//wAaAAAFKAfHAiYAIwAAAAcApgT5AUj//wBe/+wEAQaFAiYAQwAAAAcApgR+AAb//wAaAAAFPgejAiYAIwAAAAcBowCzARP//wBe/+wEwwZiAiYAQwAAAAYBozjSAAD//wAEAAAFKAegAiYAIwAAAAcBogC4AR3///+J/+wEAQZfAiYAQwAAAAYBoj3cAAD//wAaAAAFKAfWAiYAIwAAAAcBoQC3AQv//wBe/+wERgaVAiYAQwAAAAYBoTzKAAD//wAaAAAFKAfiAiYAIwAAAAcBoAC4ARH//wBe/+wEAQahAiYAQwAAAAYBoD3QAAD//wAa/qUFKAdHAiYAIwAAACcAmgC3AVkABwCoBPwAAP//AF7+rAQBBgUCJgBDAAAAJgCaPBcABwCoBEQABwAA//8AGgAABSgHzgImACMAAAAHAZ8A4wFQ//8AXv/sBAEGjAImAEMAAAAGAZ9oDgAA//8AGgAABSgIFwImACMAAAAHAaQA6AF///8AXv/sBAEG1QImAEMAAAAGAaRtPQAA//8AGgAABSgISgImACMAAAAHAZ4A4gFC//8AXv/sBAEHCAImAEMAAAAGAZ5nAAAA//8AGgAABSgIJAImACMAAAAHAZ0A5QFI//8AXv/sBAEG4gImAEMAAAAGAZ1qBgAA//8AGv6lBSgHXAImACMAAAAnAJwA6gGsAAcAqAT8AAD//wBe/qwEAQYaAiYAQwAAACYAnG9qAAcAqAREAAcAAP//AJ/+rwR1BbACJgAnAAAABwCoBMAACv//AFn+pQP4BE8CJgBHAAAABwCoBJUAAP//AJ8AAAR1B8cCJgAnAAAABwCmBMEBSP//AFn/7AP4BoYCJgBHAAAABwCmBIAAB///AJ8AAAR1B2MCJgAnAAAABwCgAIEBbP//AFn/7AP4BiICJgBHAAAABgCgQCsAAP//AJ8AAAUGB6MCJgAnAAAABwGjAHsBE///AFn/7ATFBmMCJgBHAAAABgGjOtMAAP///8wAAAR1B6ACJgAnAAAABwGiAIABHf///4v/7AP4BmACJgBHAAAABgGiP90AAP//AJ8AAASJB9YCJgAnAAAABwGhAH8BC///AFn/7ARIBpYCJgBHAAAABgGhPssAAP//AJ8AAAR1B+ICJgAnAAAABwGgAIABEf//AFn/7AP4BqICJgBHAAAABgGgP9EAAP//AJ/+rwR1B0cCJgAnAAAAJwCaAH8BWQAHAKgEwAAK//8AWf6lA/gGBgImAEcAAAAmAJo+GAAHAKgElQAAAAD//wCtAAACFwfHAiYAKwAAAAcApgN+AUj//wCPAAAB+gZxAiYAigAAAAcApgNh//L//wCf/q8BrQWwAiYAKwAAAAcAqAN9AAr//wCC/q8BkAYYAiYASwAAAAcAqANgAAr//wB0/pwFGwXFAiYAMQAAAAcAqAUf//f//wBT/pwENAROAiYAUQAAAAcAqASb//f//wB0/+sFGwfcAiYAMQAAAAcApgUgAV3//wBT/+wENAaFAiYAUQAAAAcApgSbAAb//wB0/+sFZQe4AiYAMQAAAAcBowDaASj//wBT/+wE4AZiAiYAUQAAAAYBo1XSAAD//wAr/+sFGwe1AiYAMQAAAAcBogDfATL///+m/+wENAZfAiYAUQAAAAYBolrcAAD//wB0/+sFGwfrAiYAMQAAAAcBoQDeASD//wBT/+wEYwaVAiYAUQAAAAYBoVnKAAD//wB0/+sFGwf3AiYAMQAAAAcBoADfASb//wBT/+wENAahAiYAUQAAAAYBoFrQAAD//wB0/pwFGwdcAiYAMQAAACcAmgDeAW4ABwCoBR//9///AFP+nAQ0BgUCJgBRAAAAJgCaWRcABwCoBJv/9wAA//8AZv/rBa8HEwImAJQAAAAHAHMB1QFN//8AUv/sBLwF3wImAJUAAAAHAHMBVgAZ//8AZv/rBa8HFAImAJQAAAAHAEIBHgFO//8AUv/sBLwF4AImAJUAAAAHAEIAnwAa//8AZv/rBa8HuQImAJQAAAAHAKYFGwE6//8AUv/sBLwGhQImAJUAAAAHAKYEnAAG//8AZv/rBa8HVQImAJQAAAAHAKAA2wFe//8AUv/sBLwGIQImAJUAAAAGAKBcKgAA//8AZv6lBa8GLgImAJQAAAAHAKgFCwAA//8AUv6cBLwEqQImAJUAAAAHAKgEm//3//8Ahv6cBPEFsAImADcAAAAHAKgFE//3//8Ae/6lBAoEOgImAFcAAAAHAKgERQAA//8Ahv/rBPEHxwImADcAAAAHAKYFFAFI//8Ae//sBAoGcQImAFcAAAAHAKYEmv/y//8Ahv/rBksHIQImAJYAAAAHAHMB1AFb//8Ae//sBSkFygImAJcAAAAHAHMBVAAE//8Ahv/rBksHIgImAJYAAAAHAEIBHQFc//8Ae//sBSkFywImAJcAAAAHAEIAnQAF//8Ahv/rBksHxwImAJYAAAAHAKYFGgFI//8Ae//sBSkGcQImAJcAAAAHAKYEmv/y//8Ahv/rBksHYwImAJYAAAAHAKAA2gFs//8Ae//sBSkGDAImAJcAAAAGAKBaFQAA//8Ahv6cBksGEAImAJYAAAAHAKgFGf/3//8Ae/6lBSkElAImAJcAAAAHAKgERQAA//8AE/6vBO8FsAImADsAAAAHAKgE2wAK//8AEP3/A/wEOgImAFsAAAAHAKgFOv9a//8AEwAABO8HxwImADsAAAAHAKYE3AFI//8AEP5LA/wGcQImAFsAAAAHAKYEXv/y//8AEwAABO8HYwImADsAAAAHAKAAnAFs//8AEP5LA/wGDAImAFsAAAAGAKAeFQAAAAIAU//sBK8GGAAaACgAAAEjESMnDgEjIgI9ARASMzIWFzc1IzUzNTMVMwEUFjMyNjcRLgEjIgYVBK+s0hQ1j2HL2trNWocyA/Dw86z8l3F/TmkjI2lMf3MEyfs3hExMARzxFQEIAThEQQH/qqWl/IaZrkA+Adg9Qs6rAP//AFP+xASvBhgAJgBGAAAAJwHTAYkCQgAHAEEAm/+D//8An/6aBWcFsAImAC0AAAAHAZwEGAAA//8Aj/6aBKEEOgImAOwAAAAHAZwDUgAA//8An/6aBbMFsAImACoAAAAHAZwEZAAA//8Ahv6aBLQEOgImAO8AAAAHAZwDZQAA//8ANf6aBLUFsAImADYAAAAHAZwCQgAA//8AI/6aA9AEOgImAPEAAAAHAZwBxQAA//8AL/6aBQQFsAImADoAAAAHAZwDtQAA//8AIf6aBAgEOgImAFoAAAAHAZwCuQAA//8Aj/6aBYwFsAImANwAAAAHAZwEPQAA//8AX/6aBIMEOwImAPQAAAAHAZwDNAAA//8Aj/6aBOkFsAImANwAAAAHAZwC8QAA//8AX/6aA+AEOwImAPQAAAAHAZwB6AAA//8An/6aBDcFsAImAKwAAAAHAZwA5gAA//8Ahf6aA00EOgImAOcAAAAHAZwApQAA//8AGP6aB+QFsAImANUAAAAHAZwGlQAA//8AF/6aBpMEOgImAOkAAAAHAZwFRAAA//8AIP5DBcAFxAImATsAAAAHAZwC7f+p////zv5HBHYETwImATwAAAAHAZwB9f+t//8AfQAABAwGGAIGAEoAAAAC/9cAAATBBbAAEgAbAAABIxUhMgQVFAQjIREjNTM1MxUzAxEhMjY1NCYjAmbfATT4AQ7+8ff92b2989/fATSKiYiLBEfK7M7Q8wRHqr+//cn+CJFybocAAv/XAAAEwQWwABIAGwAAASMVITIEFRQEIyERIzUzNTMVMwMRITI2NTQmIwJm3wE0+AEO/vH3/dm9vfPf3wE0iomIiwRHyuzO0PMER6q/v/3J/giRcm6HAAH/9wAABDcFsAANAAABIxEjESM1MxEhFSERMwKG9POoqAOY/Vv0Ap/9YQKfqgJnw/5cAAAB/+kAAANNBDoADQAAASERIxEjNTMRIRUhFSECeP7/8pycAsj+KgEBAdH+LwHRqgG/xPsAAf/dAAAFQwWwABQAAAEjESMRIzUzNTMVMxUjETMBIQkBIQJOqPPW1vPGxosByQEg/fQCNf7XAnb9igR6qoyMqv7NAmn9Sf0HAAAAAAH/zAAABEkGGAAUAAABIxEjESM1MzUzFTMVIxEzASEJASEB9m/yycny1NRpAQ8BHP6fAY/+5gHZ/icEu6qzs6r94QGe/hH9tQAAAP//AJr+bwX3B1wCJgDXAAAAJwCcAR0BrAAHAA4Ek//E//8Ahv5vBP4GBQImAOsAAAAnAJwAlQBVAAcADgOa/8T//wCf/m8F/AWwAiYAKgAAAAcADgSY/8T//wCG/m8E/QQ6AiYA7wAAAAcADgOZ/8T//wCf/m8HTgWwAiYALwAAAAcADgXq/8T//wCP/m8GWwQ6AiYA7gAAAAcADgT3/8T//wAu/m8F9gWwAiYA2AAAAAcADgSS/8T//wAf/m8FAAQ6AiYA7QAAAAcADgOc/8QAAQATAAAE7wWwAA8AAAkBIQEzFSMHESMRIzUzASECgAFgAQ/+aWzHB/LPdf5pAQ8C7ALE/QWqDv4DAguqAvsAAAEAIP5fA/UEOgARAAAFIxEjESM1MwEzExczNxMzATMDWdXzx5v+u/vdFAMU1/v+vKgB/mABoKoDkf00X18CzPxvAAAAAQAvAAAE6gWwABEAAAEjASEJASEBIzUzASEJASEBMwPXjwGi/t3+w/7E/uEBm4J0/n0BHQEwATQBH/59gQKV/WsCI/3dApWqAnH95gIa/Y8AAAAAAQAhAAAD7QQ6ABEAAAEjASELASEBIzUzASEbASEBMwNRkgEu/uzR0f7qAS2Mgf7oARTFyAEX/ueHAdf+KQF8/oQB16oBuf6NAXP+RwAAAP//AGD/7AQMBE0CBgC6AAD//wAWAAAEcgWwAiYAKAAAAAcB0/9//m7//wCyAm0F6gMxAEYBhrYAZmZAAAACAJoAAAGNBbAAAwAHAAABIxEzESM1MwGN8/Pz8wHrA8X6UOoAAAAAAAAAAAAAAAAAABgATgCOAOQBPAFMAW4BkgG2Ac4B5AHyAf4CDAI8AkwCdgKwAtIDBANEA2IDqgPsA/gEBAQcBDAESAR4BOwFCgVABXIFmAWyBcgF/gYWBiIGPgZcBmwGkAaqBt4HAgc+B3YHsAfEB+QH/ggmCEgIYAh2CIoImAiqCMII0AjgCR4JVAl+CbIJ5goKCk4KcgqECqgKxgrSCwwLMAteC5QLyAvoDCAMRgxqDIIMrAzMDPYNDA08DUoNeA2iDbYN6A4cDmYOkA6kDwgPHA9yD7IPvg/OEDIQQBBmEIYQsBDqEPoRIBE2EUQRYhFyEZwRqBG6EcwR3hIOEjgSWhKqEtATChNoE7gT0hQeFFQUfhSKFKgUxBTcFQgVPBV8FdAV7BYiFmIWnBbGFvQXEhdGF1oXbheIF5YXvBfeF/4YFBg6GEgYVhhgGH4YlBiiGLAYyhjSGOQY+hk0GUoZZhl4GZYZ0Bn8GjgafBq8GtgbIBtaG5IbthvuHAwcRByOHLYc6B0eHVIddh2cHdoeDB5MHogexB8KHzgfcB+mH9YgACAYIEAgbCCaINYg7iEOITgheiGSIbYh0CHwIhgiRCJoIpwi2CMAI0IjeCOKI7Qj4CQaJDQkUiRyJJIkqiS8JNAlKiVCJWQlfiWeJcQl7iYQJj4mdCacJtgnBic6J2gnliewJ+IoFChCKIIouCjaKP4pLClcKZIpxCoGKkIqkirgKxorTityK5or3CwYLHos2C0WLVQtgC2oLdQt6C4GLhYuJi7ALxgvRC9yL7AvxC/YMAAwJjBMMHAwkDCwMMww6DESMTwxkjHkMgIyIDJKMnIylDLUMxAzPDNmM44ztjPuNBo0RjRWNGY0jDTENRY1XDWiNeQ2JjZgNpo2zjcCNzw3cjegN844DDgMOAw4DDgMOAw4DDgMOAw4DDgMOAw4DDgWOCA4LDhCOFg4bjh6OIY4kji2ONA49DkMORg5KDmkObg5zDnaOfg6GjpWOpg62DsuO2g7rjvYPA48IDwyPEQ8VjySPKY8xDzSPOw9Pj1sPcQ96D34Pgg+LD46Pk4+ZD6OPo4/aD+uP+BAAEAwQFBAbkCQQJ5A0EEAQSBBTkF2QZBBqkHKQdpB9kIsQlpCfkKYQq5C4EL4QwRDIEM+Q05DbkOIQ7ZD7EQkRFxEcESQRKpEzETsRQRFGkVGRVZFfkW4RdhGAkY+RlpGokbeRu5HFkdQR2BHkEfMR+ZILkhqSJRIokjQSPBJKklMSX5JvkosSkpKiErQSwpLTkt0S7JL4Ev+TB5MOkxYTJpMvEzETMxM1E0ETTRNYE18TapNtk3CTc5N2k3mTfJN/k4KThZOIk4uTjpORk5STl5Oak52ToJOjk6aTqZOsk6+TspO1k7iTu5O+k8GTxJPHk8qTzZPQk9OT1pPZk9yT35Pik+WT6JPrk+6T8ZP0k/eT+pP9lACUA5QGlAmUDJQPlBKUFZQYlBuUKRQ/FEIURRRIFEsUThRRFFQUVxRaFF0UYBRjFGYUaRRsFG8UfBSPlJKUlZSYlJuUnpShlKSUp5SqlK2UsJSzlLaUuZS8lL+UwpTFlMiUy5TOlNGU1JTXlNqU3ZTglOOU5pTplOyU75TylPWU+JT7lP6VAZUElQeVCpUNlRCVE5UWlRmVHJUflSKVJZUolSuVLpUxlTSVN5U6lT2VQJVDlUaVSZVMlU+VUpVVlViVW5VelWGVZJVnlWqVbZVwlXOVdpV5lXyVf5WOlZ2VoJWjlaaVqZWsla+VspW1lbiVu5W+lcGVxJXHlcqVzZXQldOV1pXZldyV35XileWV6JXrle6V8ZX0lfeV+pX9lgCWA5YGlgmWDJYPlhKWFZYYlhuWHpYhliSWJ5YqljeWOpY9lkCWQ5ZGlkmWTJZPllyWX5ZilmWWaJZrlm6WcZZ0lneWepZ9loCWg5aGlomWjJaPlpKWlZaYlpuWnpahlqSWp5aqlq2WsJazlraWuZa8lr+WwpbFlsiWy5baFt0W4BbjFuYW6RbsFu8W8hb1FvgW+xb+FwEXBBcHFwkXCxcNFw8XERcTFxUXFxcZFxsXHRcfFyEXIxcmFykXLBcvFzIXNRc4FzoXPBc+F0AXQhdFF0gXSxdOF1EXVBdXF2WXZ5dql2yXbpdxl3SXdpd4l3qXfJd/l4GXg5eFl4eXiZeLl42Xj5eRl5OXlpeYl5qXpRenF6kXrBevF7EXsxe2F7gXuxe+F8EXxBfHF8oXzRfQF9MX1hfYF9oX3RfgF+MX5RfoF+sX7hfxF/QX9xf7F/4YARgEGAcYCRgLGA4YERgUGBcYGhgdGCAYIxglGCcYKRgsGC8YMRg0GDcYOhg9GD8YQRhEGEcYShhMGE8YUhhVGFgYWxheGGEYZBhnGGoYbRhvGHEYdBh3GHoYfRiAGIMYhhiJGIwYjxiSGJUYmRidGKAYoxilGKgYqxiuGLEYtBi3GLoYvRjAGMMYxhjJGMwYzxjTGNcY2hjdGOAY4xjmGOkY7BjvGPMY9xj6GP0ZABkDGQYZCRkMGQ8ZEhkVGRgZGxkeGSEZJRkpGSwZLxkyGTUZOBk7GT4ZQRlEGUcZShlNGVAZUxlWGVkZXRlhGWQZZxlqGW0ZcBlzGXYZeRl8GX8ZghmFGYgZixmOGZEZlBmXGZoZnRmgGaMZphmpGawZrxmyGbUZuBm7GcqZzpnRmdSZ15namd2Z4JnjmeaZ6Znsme+Z8pn1mfiZ+5n+mgGaBJoGmhGaHJojGimaMxo8mkCaRJpHmkqaTZpQmlOaVppemmcacZp7mn2agJqDGoMaiAAAAAAAB0BYgABAAAAAAAAAB8AAAABAAAAAAABAAYAHwABAAAAAAACAAYAJQABAAAAAAADABIAKwABAAAAAAAEAA0APQABAAAAAAAFABYASgABAAAAAAAGAA0AYAABAAAAAAAHACAAbQABAAAAAAAJAAYAjQABAAAAAAALAAoAkwABAAAAAAAMABMAnQABAAAAAAANAC4AsAABAAAAAAAOACoA3gABAAAAAAASAA0BCAADAAEECQAAAD4BFQADAAEECQABAAwBUwADAAEECQACAAwBXwADAAEECQADACQBawADAAEECQAEABoBjwADAAEECQAFACwBqQADAAEECQAGABoB1QADAAEECQAHAEAB7wADAAEECQAJAAwCLwADAAEECQALABQCOwADAAEECQAMACYCTwADAAEECQANAFwCdQADAAEECQAOAFQC0QADAAEECQAQAAwDJQADAAEECQARAAwDMUZvbnQgZGF0YSBjb3B5cmlnaHQgR29vZ2xlIDIwMTNSb2JvdG9NZWRpdW1Hb29nbGU6Um9ib3RvOjIwMTNSb2JvdG8gTWVkaXVtVmVyc2lvbiAxLjIwMDMxMDsgMjAxM1JvYm90by1NZWRpdW1Sb2JvdG8gaXMgYSB0cmFkZW1hcmsgb2YgR29vZ2xlLkdvb2dsZUdvb2dsZS5jb21DaHJpc3RpYW4gUm9iZXJ0c29uTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFJvYm90byBNZWRpdW0ARgBvAG4AdAAgAGQAYQB0AGEAIABjAG8AcAB5AHIAaQBnAGgAdAAgAEcAbwBvAGcAbABlACAAMgAwADEAMwBSAG8AYgBvAHQAbwBNAGUAZABpAHUAbQBHAG8AbwBnAGwAZQA6AFIAbwBiAG8AdABvADoAMgAwADEAMwBSAG8AYgBvAHQAbwAgAE0AZQBkAGkAdQBtAFYAZQByAHMAaQBvAG4AIAAxAC4AMgAwADAAMwAxADAAOwAgADIAMAAxADMAUgBvAGIAbwB0AG8ALQBNAGUAZABpAHUAbQBSAG8AYgBvAHQAbwAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAEcAbwBvAGcAbABlAC4ARwBvAG8AZwBsAGUARwBvAG8AZwBsAGUALgBjAG8AbQBDAGgAcgBpAHMAdABpAGEAbgAgAFIAbwBiAGUAcgB0AHMAbwBuAEwAaQBjAGUAbgBzAGUAZAAgAHUAbgBkAGUAcgAgAHQAaABlACAAQQBwAGEAYwBoAGUAIABMAGkAYwBlAG4AcwBlACwAIABWAGUAcgBzAGkAbwBuACAAMgAuADAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcABhAGMAaABlAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwBMAEkAQwBFAE4AUwBFAC0AMgAuADAAUgBvAGIAbwB0AG8ATQBlAGQAaQB1AG0AAAIAAAAAAAD/agBkAAAAAAAAAAAAAAAAAAAAAAAAAAAEHAAAAQIAAgADAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAKMAhACFAL0AlgDoAIYAjgCLAJ0AqQCkAIoBAwCDAJMA8gDzAI0AlwCIAQQA3gDxAJ4AqgD1APQA9gCiAJAA8ACRAO0AiQCgAOoAuAChAO4BBQDXAQYA4gDjAQcBCACwALEBCQCmAQoBCwEMAQ0BDgEPANgA4QDbANwA3QDgANkA3wEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiAJ8BIwEkASUBJgEnASgBKQEqASsBLAEtAJsBLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQCyALMBzgC2ALcAxAHPALQAtQDFAIIAwgCHAdAAqwDGAL4AvwC8AdEB0gHTAdQB1QHWAdcB2ACMAdkB2gHbAdwB3QCYAJoAmQDvAKUAkgCcAKcAjwCUAJUAuQHeAd8B4ADAAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+Af8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGwIcAh0CHgIfAiACIQIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AKwCOAI5AOkCOgI7AjwArQDJAMcArgBiAGMCPQBkAMsAZQDIAMoAzwDMAM0AzgBmANMA0ADRAK8AZwDWANQA1QBoAOsAagBpAGsAbQBsAG4CPgBvAHEAcAByAHMAdQB0AHYAdwB4AHoAeQB7AH0AfAB/AH4AgACBAOwAugI/AkACQQJCAkMCRAD9AP4CRQJGAkcCSAD/AQACSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAPgA+QJXAlgCWQJaAlsCXAJdAl4CXwJgAmECYgJjAmQCZQJmAmcCaAJpAmoCawJsAm0CbgJvAnACcQJyAnMCdAJ1AnYCdwJ4AnkCegJ7AnwCfQJ+An8CgAKBAoICgwKEAoUChgKHAogCiQKKAPsA/AKLAowA5ADlAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqIAuwKjAqQCpQKmAOYA5wKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC2QLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAC8QLyAvMC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMiAyMDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADgQOCA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDkwOUA5UDlgOXA5gDmQOaA5sDnAOdA54DnwOgA6EDogOjA6QDpQOmA6cDqAOpA6oDqwOsA60DrgOvA7ADsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8IDwwPEA8UDxgPHA8gDyQPKA8sDzAPNA84DzwPQA9ED0gPTA9QD1QPWA9cD2APZA9oD2wPcA90D3gPfA+AD4QPiA+MD5APlA+YD5wPoA+kD6gPrA+wD7QPuA+8D8APxA/ID8wP0A/UD9gP3A/gD+QP6A/sD/AP9A/4D/wQABAEEAgQDBAQEBQQGBAcECAQJBAoECwQMBA0EDgQPBBAEEQQSBBMEFAQVBBYEFwQYBBkEGgQbBBwEHQQeBB8EIAQhAPcEIgQjAAQHdW5pMDAwOQZtYWNyb24OcGVyaW9kY2VudGVyZWQESGJhcgxrZ3JlZW5sYW5kaWMDRW5nA2VuZwVsb25ncwVPaG9ybgVvaG9ybgVVaG9ybgV1aG9ybgd1bmkwMjM3BXNjaHdhB3VuaTAyRjMJZ3JhdmVjb21iCWFjdXRlY29tYgl0aWxkZWNvbWIEaG9vawd1bmkwMzBGCGRvdGJlbG93BXRvbm9zDWRpZXJlc2lzdG9ub3MJYW5vdGVsZWlhBUdhbW1hBURlbHRhBVRoZXRhBkxhbWJkYQJYaQJQaQVTaWdtYQNQaGkDUHNpBWFscGhhBGJldGEFZ2FtbWEFZGVsdGEHZXBzaWxvbgR6ZXRhA2V0YQV0aGV0YQRpb3RhBmxhbWJkYQJ4aQNyaG8Gc2lnbWExBXNpZ21hA3RhdQd1cHNpbG9uA3BoaQNwc2kFb21lZ2EHdW5pMDNEMQd1bmkwM0QyB3VuaTAzRDYHdW5pMDQwMgd1bmkwNDA0B3VuaTA0MDkHdW5pMDQwQQd1bmkwNDBCB3VuaTA0MEYHdW5pMDQxMQd1bmkwNDE0B3VuaTA0MTYHdW5pMDQxNwd1bmkwNDE4B3VuaTA0MUIHdW5pMDQyMwd1bmkwNDI0B3VuaTA0MjYHdW5pMDQyNwd1bmkwNDI4B3VuaTA0MjkHdW5pMDQyQQd1bmkwNDJCB3VuaTA0MkMHdW5pMDQyRAd1bmkwNDJFB3VuaTA0MkYHdW5pMDQzMQd1bmkwNDMyB3VuaTA0MzMHdW5pMDQzNAd1bmkwNDM2B3VuaTA0MzcHdW5pMDQzOAd1bmkwNDNBB3VuaTA0M0IHdW5pMDQzQwd1bmkwNDNEB3VuaTA0M0YHdW5pMDQ0Mgd1bmkwNDQ0B3VuaTA0NDYHdW5pMDQ0Nwd1bmkwNDQ4B3VuaTA0NDkHdW5pMDQ0QQd1bmkwNDRCB3VuaTA0NEMHdW5pMDQ0RAd1bmkwNDRFB3VuaTA0NEYHdW5pMDQ1Mgd1bmkwNDU0B3VuaTA0NTkHdW5pMDQ1QQd1bmkwNDVCB3VuaTA0NUYHdW5pMDQ2MAd1bmkwNDYxB3VuaTA0NjMHdW5pMDQ2NAd1bmkwNDY1B3VuaTA0NjYHdW5pMDQ2Nwd1bmkwNDY4B3VuaTA0NjkHdW5pMDQ2QQd1bmkwNDZCB3VuaTA0NkMHdW5pMDQ2RAd1bmkwNDZFB3VuaTA0NkYHdW5pMDQ3Mgd1bmkwNDczB3VuaTA0NzQHdW5pMDQ3NQd1bmkwNDdBB3VuaTA0N0IHdW5pMDQ3Qwd1bmkwNDdEB3VuaTA0N0UHdW5pMDQ3Rgd1bmkwNDgwB3VuaTA0ODEHdW5pMDQ4Mgd1bmkwNDgzB3VuaTA0ODQHdW5pMDQ4NQd1bmkwNDg2B3VuaTA0ODgHdW5pMDQ4OQd1bmkwNDhEB3VuaTA0OEUHdW5pMDQ4Rgd1bmkwNDkwB3VuaTA0OTEHdW5pMDQ5NAd1bmkwNDk1B3VuaTA0OUMHdW5pMDQ5RAd1bmkwNEEwB3VuaTA0QTEHdW5pMDRBNAd1bmkwNEE1B3VuaTA0QTYHdW5pMDRBNwd1bmkwNEE4B3VuaTA0QTkHdW5pMDRCNAd1bmkwNEI1B3VuaTA0QjgHdW5pMDRCOQd1bmkwNEJBB3VuaTA0QkMHdW5pMDRCRAd1bmkwNEMzB3VuaTA0QzQHdW5pMDRDNwd1bmkwNEM4B3VuaTA0RDgHdW5pMDRFMAd1bmkwNEUxB3VuaTA0RkEHdW5pMDRGQgd1bmkwNTAwB3VuaTA1MDIHdW5pMDUwMwd1bmkwNTA0B3VuaTA1MDUHdW5pMDUwNgd1bmkwNTA3B3VuaTA1MDgHdW5pMDUwOQd1bmkwNTBBB3VuaTA1MEIHdW5pMDUwQwd1bmkwNTBEB3VuaTA1MEUHdW5pMDUwRgd1bmkwNTEwB3VuaTIwMDAHdW5pMjAwMQd1bmkyMDAyB3VuaTIwMDMHdW5pMjAwNAd1bmkyMDA1B3VuaTIwMDYHdW5pMjAwNwd1bmkyMDA4B3VuaTIwMDkHdW5pMjAwQQd1bmkyMDBCDXVuZGVyc2NvcmVkYmwNcXVvdGVyZXZlcnNlZAd1bmkyMDI1B3VuaTIwNzQJbnN1cGVyaW9yBGxpcmEGcGVzZXRhBEV1cm8HdW5pMjEwNQd1bmkyMTEzB3VuaTIxMTYJZXN0aW1hdGVkCW9uZWVpZ2h0aAx0aHJlZWVpZ2h0aHMLZml2ZWVpZ2h0aHMMc2V2ZW5laWdodGhzCmNvbG9uLmxudW0JcXVvdGVkYmx4C2NvbW1hYWNjZW50B3VuaUZFRkYHdW5pRkZGQwd1bmlGRkZECWZpdmUuc21jcAhmb3VyLnN1cAl6ZXJvLmxudW0ObGFyZ2VyaWdodGhvb2sMY3lyaWxsaWNob29rEGN5cmlsbGljaG9va2xlZnQLY3lyaWxsaWN0aWMOYnJldmV0aWxkZWNvbWINYnJldmVob29rY29tYg5icmV2ZWFjdXRlY29tYhNjaXJjdW1mbGV4dGlsZGVjb21iEmNpcmN1bWZsZXhob29rY29tYhNjaXJjdW1mbGV4Z3JhdmVjb21iE2NpcmN1bWZsZXhhY3V0ZWNvbWIOYnJldmVncmF2ZWNvbWIRY29tbWFhY2NlbnRyb3RhdGUGQS5zbWNwBkIuc21jcAZDLnNtY3AGRC5zbWNwBkUuc21jcAZGLnNtY3AGRy5zbWNwBkguc21jcAZJLnNtY3AGSi5zbWNwBksuc21jcAZMLnNtY3AGTS5zbWNwBk4uc21jcAZPLnNtY3AGUS5zbWNwBlIuc21jcAZTLnNtY3AGVC5zbWNwBlUuc21jcAZWLnNtY3AGVy5zbWNwBlguc21jcAZZLnNtY3AGWi5zbWNwCXplcm8uc21jcAhvbmUuc21jcAh0d28uc21jcAp0aHJlZS5zbWNwCWZvdXIuc21jcAh0d28ubG51bQhzaXguc21jcApzZXZlbi5zbWNwCmVpZ2h0LnNtY3AJbmluZS5zbWNwB29uZS5zdXAHdHdvLnN1cAl0aHJlZS5zdXAIb25lLmxudW0IZml2ZS5zdXAHc2l4LnN1cAlzZXZlbi5zdXAJZWlnaHQuc3VwCG5pbmUuc3VwCHplcm8uc3VwCGNyb3NzYmFyCXJpbmdhY3V0ZQlkYXNpYW94aWEKdGhyZWUubG51bQlmb3VyLmxudW0JZml2ZS5sbnVtCHNpeC5sbnVtBWcuYWx0CnNldmVuLmxudW0HY2hpLmFsdAplaWdodC5sbnVtCWFscGhhLmFsdAlkZWx0YS5hbHQERC5jbgRhLmNuBVIuYWx0BUsuYWx0BWsuYWx0BksuYWx0MgZrLmFsdDIJbmluZS5sbnVtBlAuc21jcA1jeXJpbGxpY2JyZXZlB3VuaTAwQUQGRGNyb2F0BGhiYXIEVGJhcgR0YmFyCkFyaW5nYWN1dGUKYXJpbmdhY3V0ZQdBbWFjcm9uB2FtYWNyb24GQWJyZXZlBmFicmV2ZQdBb2dvbmVrB2FvZ29uZWsLQ2NpcmN1bWZsZXgLY2NpcmN1bWZsZXgHdW5pMDEwQQd1bmkwMTBCBkRjYXJvbgZkY2Fyb24HRW1hY3JvbgdlbWFjcm9uBkVicmV2ZQZlYnJldmUKRWRvdGFjY2VudAplZG90YWNjZW50B0VvZ29uZWsHZW9nb25lawZFY2Fyb24GZWNhcm9uC0djaXJjdW1mbGV4C2djaXJjdW1mbGV4B3VuaTAxMjAHdW5pMDEyMQxHY29tbWFhY2NlbnQMZ2NvbW1hYWNjZW50C0hjaXJjdW1mbGV4C2hjaXJjdW1mbGV4Bkl0aWxkZQZpdGlsZGUHSW1hY3JvbgdpbWFjcm9uBklicmV2ZQZpYnJldmUHSW9nb25lawdpb2dvbmVrCklkb3RhY2NlbnQCSUoCaWoLSmNpcmN1bWZsZXgLamNpcmN1bWZsZXgMS2NvbW1hYWNjZW50DGtjb21tYWFjY2VudAZMYWN1dGUGbGFjdXRlDExjb21tYWFjY2VudAxsY29tbWFhY2NlbnQGTGNhcm9uBmxjYXJvbgRMZG90BGxkb3QGTmFjdXRlBm5hY3V0ZQxOY29tbWFhY2NlbnQMbmNvbW1hYWNjZW50Bk5jYXJvbgZuY2Fyb24LbmFwb3N0cm9waGUHT21hY3JvbgdvbWFjcm9uBk9icmV2ZQZvYnJldmUNT2h1bmdhcnVtbGF1dA1vaHVuZ2FydW1sYXV0BlJhY3V0ZQZyYWN1dGUMUmNvbW1hYWNjZW50DHJjb21tYWFjY2VudAZSY2Fyb24GcmNhcm9uBlNhY3V0ZQZzYWN1dGULU2NpcmN1bWZsZXgLc2NpcmN1bWZsZXgHdW5pMDIxOAd1bmkwMjE5B3VuaTAyMUEHdW5pMDIxQgd1bmkwMTYyB3VuaTAxNjMGVGNhcm9uBnRjYXJvbgZVdGlsZGUGdXRpbGRlB1VtYWNyb24HdW1hY3JvbgZVYnJldmUGdWJyZXZlBVVyaW5nBXVyaW5nDVVodW5nYXJ1bWxhdXQNdWh1bmdhcnVtbGF1dAdVb2dvbmVrB3VvZ29uZWsLV2NpcmN1bWZsZXgLd2NpcmN1bWZsZXgLWWNpcmN1bWZsZXgLeWNpcmN1bWZsZXgGWmFjdXRlBnphY3V0ZQpaZG90YWNjZW50Cnpkb3RhY2NlbnQHQUVhY3V0ZQdhZWFjdXRlC09zbGFzaGFjdXRlC29zbGFzaGFjdXRlC0Rjcm9hdC5zbWNwCEV0aC5zbWNwCVRiYXIuc21jcAtBZ3JhdmUuc21jcAtBYWN1dGUuc21jcBBBY2lyY3VtZmxleC5zbWNwC0F0aWxkZS5zbWNwDkFkaWVyZXNpcy5zbWNwCkFyaW5nLnNtY3APQXJpbmdhY3V0ZS5zbWNwDUNjZWRpbGxhLnNtY3ALRWdyYXZlLnNtY3ALRWFjdXRlLnNtY3AQRWNpcmN1bWZsZXguc21jcA5FZGllcmVzaXMuc21jcAtJZ3JhdmUuc21jcAtJYWN1dGUuc21jcBBJY2lyY3VtZmxleC5zbWNwDklkaWVyZXNpcy5zbWNwC050aWxkZS5zbWNwC09ncmF2ZS5zbWNwC09hY3V0ZS5zbWNwEE9jaXJjdW1mbGV4LnNtY3ALT3RpbGRlLnNtY3AOT2RpZXJlc2lzLnNtY3ALVWdyYXZlLnNtY3ALVWFjdXRlLnNtY3AQVWNpcmN1bWZsZXguc21jcA5VZGllcmVzaXMuc21jcAtZYWN1dGUuc21jcAxBbWFjcm9uLnNtY3ALQWJyZXZlLnNtY3AMQW9nb25lay5zbWNwC0NhY3V0ZS5zbWNwEENjaXJjdW1mbGV4LnNtY3AMdW5pMDEwQS5zbWNwC0NjYXJvbi5zbWNwC0RjYXJvbi5zbWNwDEVtYWNyb24uc21jcAtFYnJldmUuc21jcA9FZG90YWNjZW50LnNtY3AMRW9nb25lay5zbWNwC0VjYXJvbi5zbWNwEEdjaXJjdW1mbGV4LnNtY3ALR2JyZXZlLnNtY3AMdW5pMDEyMC5zbWNwEUdjb21tYWFjY2VudC5zbWNwEEhjaXJjdW1mbGV4LnNtY3ALSXRpbGRlLnNtY3AMSW1hY3Jvbi5zbWNwC0licmV2ZS5zbWNwDElvZ29uZWsuc21jcA9JZG90YWNjZW50LnNtY3AQSmNpcmN1bWZsZXguc21jcBFLY29tbWFhY2NlbnQuc21jcAtMYWN1dGUuc21jcBFMY29tbWFhY2NlbnQuc21jcAtMY2Fyb24uc21jcAlMZG90LnNtY3ALTmFjdXRlLnNtY3ARTmNvbW1hYWNjZW50LnNtY3ALTmNhcm9uLnNtY3AMT21hY3Jvbi5zbWNwC09icmV2ZS5zbWNwEk9odW5nYXJ1bWxhdXQuc21jcAtSYWN1dGUuc21jcBFSY29tbWFhY2NlbnQuc21jcAtSY2Fyb24uc21jcAtTYWN1dGUuc21jcBBTY2lyY3VtZmxleC5zbWNwDVNjZWRpbGxhLnNtY3ALU2Nhcm9uLnNtY3ARVGNvbW1hYWNjZW50LnNtY3ALVGNhcm9uLnNtY3ALVXRpbGRlLnNtY3AMVW1hY3Jvbi5zbWNwC1VicmV2ZS5zbWNwClVyaW5nLnNtY3ASVWh1bmdhcnVtbGF1dC5zbWNwDFVvZ29uZWsuc21jcBBXY2lyY3VtZmxleC5zbWNwEFljaXJjdW1mbGV4LnNtY3AOWWRpZXJlc2lzLnNtY3ALWmFjdXRlLnNtY3APWmRvdGFjY2VudC5zbWNwC1pjYXJvbi5zbWNwD2dlcm1hbmRibHMuc21jcApBbHBoYXRvbm9zDEVwc2lsb250b25vcwhFdGF0b25vcwlJb3RhdG9ub3MMT21pY3JvbnRvbm9zDFVwc2lsb250b25vcwpPbWVnYXRvbm9zEWlvdGFkaWVyZXNpc3Rvbm9zBUFscGhhBEJldGEHRXBzaWxvbgRaZXRhA0V0YQRJb3RhBUthcHBhAk11Ak51B09taWNyb24DUmhvA1RhdQdVcHNpbG9uA0NoaQxJb3RhZGllcmVzaXMPVXBzaWxvbmRpZXJlc2lzCmFscGhhdG9ub3MMZXBzaWxvbnRvbm9zCGV0YXRvbm9zCWlvdGF0b25vcxR1cHNpbG9uZGllcmVzaXN0b25vcwVrYXBwYQdvbWljcm9uB3VuaTAzQkMCbnUDY2hpDGlvdGFkaWVyZXNpcw91cHNpbG9uZGllcmVzaXMMb21pY3JvbnRvbm9zDHVwc2lsb250b25vcwpvbWVnYXRvbm9zB3VuaTA0MDEHdW5pMDQwMwd1bmkwNDA1B3VuaTA0MDYHdW5pMDQwNwd1bmkwNDA4B3VuaTA0MUEHdW5pMDQwQwd1bmkwNDBFB3VuaTA0MTAHdW5pMDQxMgd1bmkwNDEzB3VuaTA0MTUHdW5pMDQxOQd1bmkwNDFDB3VuaTA0MUQHdW5pMDQxRQd1bmkwNDFGB3VuaTA0MjAHdW5pMDQyMQd1bmkwNDIyB3VuaTA0MjUHdW5pMDQzMAd1bmkwNDM1B3VuaTA0MzkHdW5pMDQzRQd1bmkwNDQwB3VuaTA0NDEHdW5pMDQ0Mwd1bmkwNDQ1B3VuaTA0NTEHdW5pMDQ1Mwd1bmkwNDU1B3VuaTA0NTYHdW5pMDQ1Nwd1bmkwNDU4B3VuaTA0NUMHdW5pMDQ1RQZXZ3JhdmUGd2dyYXZlBldhY3V0ZQZ3YWN1dGUJV2RpZXJlc2lzCXdkaWVyZXNpcwZZZ3JhdmUGeWdyYXZlBm1pbnV0ZQZzZWNvbmQJZXhjbGFtZGJsB3VuaUZCMDIHdW5pMDFGMAd1bmkwMkJDB3VuaTFFM0UHdW5pMUUzRgd1bmkxRTAwB3VuaTFFMDEHdW5pMUY0RAd1bmlGQjAzB3VuaUZCMDQHdW5pMDQwMAd1bmkwNDBEB3VuaTA0NTAHdW5pMDQ1RAd1bmkwNDcwB3VuaTA0NzEHdW5pMDQ3Ngd1bmkwNDc3B3VuaTA0NzkHdW5pMDQ3OAd1bmkwNDk4B3VuaTA0OTkHdW5pMDRBQQd1bmkwNEFCB3VuaTA0QUUHdW5pMDRBRgd1bmkwNEMwB3VuaTA0QzEHdW5pMDRDMgd1bmkwNENGB3VuaTA0RDAHdW5pMDREMQd1bmkwNEQyB3VuaTA0RDMHdW5pMDRENAd1bmkwNEQ1B3VuaTA0RDYHdW5pMDRENwd1bmkwNERBB3VuaTA0RDkHdW5pMDREQgd1bmkwNERDB3VuaTA0REQHdW5pMDRERQd1bmkwNERGB3VuaTA0RTIHdW5pMDRFMwd1bmkwNEU0B3VuaTA0RTUHdW5pMDRFNgd1bmkwNEU3B3VuaTA0RTgHdW5pMDRFOQd1bmkwNEVBB3VuaTA0RUIHdW5pMDRFQwd1bmkwNEVEB3VuaTA0RUUHdW5pMDRFRgd1bmkwNEYwB3VuaTA0RjEHdW5pMDRGMgd1bmkwNEYzB3VuaTA0RjQHdW5pMDRGNQd1bmkwNEY4B3VuaTA0RjkHdW5pMDRGQwd1bmkwNEZEB3VuaTA1MDEHdW5pMDUxMgd1bmkwNTEzB3VuaTFFQTAHdW5pMUVBMQd1bmkxRUEyB3VuaTFFQTMHdW5pMUVBNAd1bmkxRUE1B3VuaTFFQTYHdW5pMUVBNwd1bmkxRUE4B3VuaTFFQTkHdW5pMUVBQQd1bmkxRUFCB3VuaTFFQUMHdW5pMUVBRAd1bmkxRUFFB3VuaTFFQUYHdW5pMUVCMAd1bmkxRUIxB3VuaTFFQjIHdW5pMUVCMwd1bmkxRUI0B3VuaTFFQjUHdW5pMUVCNgd1bmkxRUI3B3VuaTFFQjgHdW5pMUVCOQd1bmkxRUJBB3VuaTFFQkIHdW5pMUVCQwd1bmkxRUJEB3VuaTFFQkUHdW5pMUVCRgd1bmkxRUMwB3VuaTFFQzEHdW5pMUVDMgd1bmkxRUMzB3VuaTFFQzQHdW5pMUVDNQd1bmkxRUM2B3VuaTFFQzcHdW5pMUVDOAd1bmkxRUM5B3VuaTFFQ0EHdW5pMUVDQgd1bmkxRUNDB3VuaTFFQ0QHdW5pMUVDRQd1bmkxRUNGB3VuaTFFRDAHdW5pMUVEMQd1bmkxRUQyB3VuaTFFRDMHdW5pMUVENAd1bmkxRUQ1B3VuaTFFRDYHdW5pMUVENwd1bmkxRUQ4B3VuaTFFRDkHdW5pMUVEQQd1bmkxRURCB3VuaTFFREMHdW5pMUVERAd1bmkxRURFB3VuaTFFREYHdW5pMUVFMAd1bmkxRUUxB3VuaTFFRTIHdW5pMUVFMwd1bmkxRUU0B3VuaTFFRTUHdW5pMUVFNgd1bmkxRUU3B3VuaTFFRTgHdW5pMUVFOQd1bmkxRUVBB3VuaTFFRUIHdW5pMUVFQwd1bmkxRUVEB3VuaTFFRUUHdW5pMUVFRgd1bmkxRUYwB3VuaTFFRjEHdW5pMUVGNAd1bmkxRUY1B3VuaTFFRjYHdW5pMUVGNwd1bmkxRUY4B3VuaTFFRjkGZGNyb2F0B3VuaTIwQUIHdW5pMDQ5QQd1bmkwNDlCB3VuaTA0QTIHdW5pMDRBMwd1bmkwNEFDB3VuaTA0QUQHdW5pMDRCMgd1bmkwNEIzB3VuaTA0QjYHdW5pMDRCNwd1bmkwNENCB3VuaTA0Q0MHdW5pMDRGNgd1bmkwNEY3B3VuaTA0OTYHdW5pMDQ5Nwd1bmkwNEJFB3VuaTA0QkYHdW5pMDRCQgd1bmkwNDhDB3VuaTA0NjIHdW5pMDQ5Mgd1bmkwNDkzB3VuaTA0OUUHdW5pMDQ5Rgd1bmkwNDhBB3VuaTA0OEIHdW5pMDRDOQd1bmkwNENBB3VuaTA0Q0QHdW5pMDRDRQd1bmkwNEM1B3VuaTA0QzYHdW5pMDRCMAd1bmkwNEIxB3VuaTA0RkUHdW5pMDRGRgd1bmkwNTExB3VuaTIwMTUHdW5pMDAwMgAAAAEAAAAMAAAAAAAAAAIACADKAMoAAQEeASQAAQFWAWEAAQF2AXYAAQF7AXwAAQF+AX4AAQGTAZUAAQHVAdUAAQAAAAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAA//8AAQAAAAFrZXJuAAgAAAABAAAAAQAEAAIAAAAEAA5PUFUOekAAAYG8AAQAAAGtA2QDagNwA3YD7AP2BAgELgREBE4EcASSBJgE6gUYBToFXAWCBagFrgacBqIGyAbuB1AH4ggECCYIRAhKCFgIXghkCGoIkAiuCLwI2gjgCP4JHAkiCewKYgqICv4LBAsOCxQLGgsgCz4LaAtuC4QLiguoC64LtAvuC/QL/gwwDFoMhAyqDMwM8g0gDYINmA26DdwOJg5IDmoOoA7KDvQO/g8IDyYPPA9GD2QPag+AD84P7BAKECgQThB0EJIQnBDCEOgRDhGEEaoR0BHuEgwS1hLgEzIThBOOE5QTmhOgE6YTrBPSE9wT4hP0FB4UNBRGFFgUfhSEFJoUpBS2FNwU8hT4FP4VBBUeFSwVMhVYFX4WbBbiF1gXzhhEGLoZMBmmGbgZzhnkGfoaEBoyGlQadhqYGroa4BsGGywbUht4G34bhBuKG5AcIhxEHGYciByqHMwc7h0QHRYdHB0iHSgdLh1UHXodoB3GHeweCh4oHp4ewB82H1gfzh/wIAIgFCAmIDggXiB0IHogkCCWIKwgsiDIIM4g5CDqIQwhEiE0IVYheCGaIbwhwiIUIkIicCKeIswi7iL0IxYjHCM+I0QjSiNwI5YjvCPiJAgkLiQ8JEokWCVGJjQnIicoJy4nNCc6J0AnRidsJ/4oHCiuKNAo8ikUKYopoCnCKeQqCiqcKxIrHCsyK1QrdiuYK+osDCwuLFQsei1oLfouXC5+LxAvFi88L1ovgC+WMGAwgjCkMKow/DFOMZgyDjIYMuIy+DMaMzwzYjOIM5o0iDTqNQw1EjU4NVY1dDV6NYA1ijWoNc419DYaNqw2yjbQNtY23Db+NwQ3ejecN8I32DfeOAQ4Ijg0OMY45DkGOWg5bjmQOgY6KDqeOsA61jrcOuI66DtKO1A7djucO8I74DwqPEg8kjywPPo9GD16PYA99j4YPo4+sD8mP0g/vj/gQFZAeEDuQRBBhkGoQh5CQEK2QthDTkNwQ+ZECER+RKBEtkS8RNJE2ETuRPRFCkUQRSZFLEVCRUhFXkVkRXpFgEWiRcRF6kYQRjZGXEaCRqhGzkb0RxpHQEdmR4xHskfYR/5IBEgKSJxIuklMSWpJ/EoaSmxKjkt8S95L5EyuTLhNGk0gTSZNUE4aTmxOjk6wAAEAWQALAAEAWQALAAEAEf8IAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAACAQwACwFT/+YABAAL/+YAP//0AF//7wE8/+0ACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAFAEj/7gBZ/+oBuv/wAbv/7QG9//AAAgBU/+YBpv/AAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQGm/+sAFABZ/8EAs//FAMX/tADl/9cA8f+5APn/6QEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8BqP/oAaz/5gG0/+cBtf/nAAsAWf/MAaYAEwGo//MBrP/xAbT/8gG1//IBuP+9Abn/7gG6/7gBu//XAb3/twAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQBWAA4Af/7XAL//mADC/8cA1P8SAOj/UgFG/88Bpv+AAd//1wABAaYADgA7AFT/vwBZ/9EAa/9sAHr/bgB//0MAhP+sAIf/oQCz/7gAuv9+AL7/ewDB/5sAwv95AMX/sgDH/34AyP99AMn/fADU/68A4QAPAOX/5ADm/6AA6P90AOr/gADx/7IA+P99APn/sgD6/4AA/P95AP0AKAEC/30BBP9/ARf/ZgEb/9oBJ/+BASn/mAEt/30BL/+zATP/oAE5/3wBO/+aATz/bAFB/+YBRv9rAUr/kgFM/60BUP97AVMADwFU/5EBVf/yAab/rwGo/7kBrP+5AbT/uQG1/7kBt/+8Abj/8QG7//EBvP/tAdz/swHf//EAAQGm/+sACQALABQAPwARAFT/4gBfABMBpv+0Aaj/2QGs/9kBtP/ZAbX/2QAJAAsADwA/AAwAVP/rAF8ADgGm/8sBqP/pAaz/5wG0/+cBtf/nABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAaj/6QGs/+cBtP/nAbX/6QHf//AAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAab/qwGo/80BrP/LAbT/ywG1/8sBuP/zAbv/8wG8/+8B3P/AAd//7gAIAFn/5QCz/8sAyP/kAaYADQGo/+0BrP/rAbT/7AG1/+wACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAcAxf/qAOj/7gDx/9YA+f/tAS//7AFU/+wB3P/oAAEA8f/1AAMACwAUAD8AEgBfABMAAQDx/9YAAQDx/9YAAQDx/9YACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAHAMX/6gDo/+4A8f/WAPn/7QEv/+wBVP/sAdz/6AADAEgAFABWABgAWQARAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAEBF//xAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAcAxf/qAOj/7gDx/9YA+f/tAS//7AFU/+wB3P/oAAEA8f/1ADIAVP9+AFn/nQBr/vEAev70AH/+qwCE/14Ah/9LALP/cgC6/w8Avv8KAMH/QQDC/wcAxf9oAMf/DwDI/w4Ayf8MANT/YwDhAAUA5f+9AOb/SQDo/v4A6v8TAPH/aAD4/w4A+f9oAPr/EwD8/wcA/QAwAQL/DgEE/xEBF/7nARv/rAEn/xUBKf88AS3/DgEv/2oBM/9JATn/DAE7/z8BPP7xAUH/wAFG/u8BSv8xAUz/XwFQ/woBUwAFAVT/MAFV/9UB3P9qAd//0wAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QAAQC/AA0AAgCz/8IAvwAQAAEAv//iAAEAwv/yAAEAvwAOAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAoAuv/mAL3/6wC+/+kAwP/wAMH/5wDF/+MAx//OAMj/1ADJ/9sB3//uAAEA8f/WAAUAvf/sAL8ADwDB/+oAxf/OAMf/5wABAL8ADwAHAMX/6gDo/+4A8f/VAPn/7QEv/+wBVP/sAdz/6AABAPH/wAABAMUAIAAOAEgADAC//5AAwQALAMUADAGm/78BqP/uAaz/7AG0/+0Btf/sAbf/9QG4AA4BugANAb0ADQHf/+0AAQDx/+IAAgDx/8AB3P/hAAwA4f/UAPH/yQD5/9EBBP/lARv/4wEv/8QBOP/hAUn/1AFK//UBS//nAVP/ZAFU/8kACgDh/8EA8f/NAPn/0gEv/8wBOP/lATv/3wFJ/84BS//qAVP/ngFU/84ACgDh/8IA8f/GAPn/zwEv/8ABOP/hATv/3wFJ/80BS//oAVP/nwFU/8YACQDh/8kA8f/fAPn/4QEE/+0BG//rAS//3wE7/+kBSv/1AVT/4AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQDh/+YA8f/QAPn/1gEv/84BOP/oAUn/5wFL/+0BU//mAVT/0AALANQAFADh/+AA6AATATj/4QE5/+ABPP/hAUH/6QFJ/98BS//eAVP/3wFV//IAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqP/pAaz/5wG0/+cBtf/pAd//8AAFABn/8gDh//EBSf/yAUv/8gFT//IACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QADQDUABMA4f/mAOL/9ADoABIA8f/nAPn/5wEv/+cBOP/lATn/6AFJ/+YBS//mAVP/5gFU/+cACgDh/8QA8f/NAPn/1QEv/8wBOP/mATv/3wFJ/9EBS//sAVP/oQFU/88ACgDh/8MA8f/PAPn/1AEv/84BOP/nATv/3wFJ/9EBS//sAVP/oAFU/9EAAgDU/+IBU//kAAIA1P/hAOj/5AAHAOj/7gDx/+4A+f/vAQT/9AEb//EBL//vAVT/7wAFAPH/9AD5//QBBP/1AS//9QFU//UAAgDo/2gBF//uAAcA6AAUAPH/7QD3/9AA+f/uAS//7QE5/+0BVP/tAAEBF//xAAUBF//rAaj/6wGs/+kBtP/rAbX/6wATAEgADQDC/9YAw//AAMf/1QDo/8gBF//sARsADAFKAAsBTAALAab/vwGo/+4BrP/sAbT/7QG1/+wBt//1AbgADgG6AA0BvQANAd//xAAHAMX/6gDo/+4A8f/WAPn/7QEv/+wBVP/sAdz/6AAHAOgAFADx//AA+f/wAPwAFgEv/+YBOf/cAVT/8AAHAOgAEgDx/+MA9/+4APn/4wEv/7oBOf/ZAVT/4wAJAPH/gAD5//ABBP/bARv/3AEv/0cBOf/uAUoABwFM//QBVP9/AAkA8f9qAPn/xgEE/9kBG//bAS//HgE5/+0BSv/wAUz/8gFU/1YABwDF/+oA6P/uAPH/1gD5/+0BL//sAVT/7AHc/+gAAgDo/+8A+f/uAAkA8f92APn/0wEE/9kBG//bAS//HgE5/+0BSv/wAUz/8gFU/1YACQDx/2QA+f/ZAQT/2QEb/9sBL/8eATn/7QFK//ABTP/yAVT/VgAJAPH/agD5/8YBBP/ZARv/2wEv/x4BOf/tAUr/8AFM//IBVP9WAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkACwAUAD8AEQBU/+IAXwATAab/tAGo/9kBrP/ZAbT/2QG1/9kABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UABwDF/+oA6P/uAPH/1gD5/+0BL//sAVT/7AHc/+gAMgBU/34AWf+dAGv+8QB6/vQAf/6rAIT/XgCH/0sAs/9yALr/DwC+/woAwf9BAML/BwDF/2gAx/8PAMj/DgDJ/wwA1P9jAOEABQDl/70A5v9JAOj+/gDq/xMA8f9oAPj/DgD5/2gA+v8TAPz/BwD9ADABAv8OAQT/EQEX/ucBG/+sASf/FQEp/zwBLf8OAS//agEz/0kBOf8MATv/PwE8/vEBQf/AAUb+7wFK/zEBTP9fAVD/CgFTAAUBVP8wAVX/1QHc/2oB3//TAAIA6P9oARf/7gAUAFn/wQCz/8UAxf+0AOX/1wDx/7kA+f/pAQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGo/+gBrP/mAbT/5wG1/+cAFABZ/8EAs//FAMX/tADl/9cA8f+5APn/6QEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8BqP/oAaz/5gG0/+cBtf/nAAIA6P9oARf/7gABAFkACwABAFkACwABAFkACwABAFkACwABAFkACwAJAaj/8gGs//IBtP/yAbX/8gG4/8ABuf/sAbr/xwG7/9gBvf+/AAIBuv/uAbv/9QABAab/0gAEAaj/6wGs/+kBtP/rAbX/6wAKAaYAEQGo//ABrP/uAbT/7wG1//ABuP+7Abn/7AG6/7cBu//VAb3/tAAFAab/8wG4/+4Buv/xAbz/7AG9/+oABAG4/+kBuv/rAbv/8QG9/+UABAG4//IBuv/xAbv/9QG9/+4ACQGm/78BqP/uAaz/7AG0/+0Btf/sAbf/9QG4AA4BugANAb0ADQABAab/7wAFAab/xwGo//IBrP/wAbT/8AG1//AAAgGm/9wBuAAOAAQBqP/tAaz/6wG0/+sBtf/rAAkBpv/AAaj/7QGs/+sBtP/rAbX/6wG4AA8BugAQAbsADQG9ABAABQGmAAwBqP/wAaz/8AG0//ABtf/wAAEB1//VAAEBxP/VAAEB1/9AAAYASAALALr/8gDH//EAyf/vAdwADwHf/+4AAwDF/+0A8f/VAdz/7AABAab/1QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UAOwBU/78AWf/RAGv/bAB6/24Af/9DAIT/rACH/6EAs/+4ALr/fgC+/3sAwf+bAML/eQDF/7IAx/9+AMj/fQDJ/3wA1P+vAOEADwDl/+QA5v+gAOj/dADq/4AA8f+yAPj/fQD5/7IA+v+AAPz/eQD9ACgBAv99AQT/fwEX/2YBG//aASf/gQEp/5gBLf99AS//swEz/6ABOf98ATv/mgE8/2wBQf/mAUb/awFK/5IBTP+tAVD/ewFTAA8BVP+RAVX/8gGm/68BqP+5Aaz/uQG0/7kBtf+5Abf/vAG4//EBu//xAbz/7QHc/7MB3//xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAEAAv/5gA///QAX//vATz/7QAFAEj/7gBZ/+oBuv/wAbv/7QG9//AABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAUASP/uAFn/6gG6//ABu//tAb3/8AAFAEj/7gBZ/+oBuv/wAbv/7QG9//AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UAAQGm/+sAAQGm/+sAAQGm/+sAAQGm/+sAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAab/qwGo/80BrP/LAbT/ywG1/8sBuP/zAbv/8wG8/+8B3P/AAd//7gAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAAQDx//UAAQDx//UAAQDx//UAAQDx//UAAQDx/9YACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAxf/qAOj/uADx/+IBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAFAEj/7gBZ/+oBuv/wAbv/7QG9//AAAQDx//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/9YACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAab/6wAUAFn/wQCz/8UAxf+0AOX/1wDx/7kA+f/pAQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGo/+gBrP/mAbT/5wG1/+cACwBZ/8wBpgATAaj/8wGs//EBtP/yAbX/8gG4/70Buf/uAbr/uAG7/9cBvf+3AAsAWf/MAaYAEwGo//MBrP/xAbT/8gG1//IBuP+9Abn/7gG6/7gBu//XAb3/twALAFn/zAGmABMBqP/zAaz/8QG0//IBtf/yAbj/vQG5/+4Buv+4Abv/1wG9/7cACwBZ/8wBpgATAaj/8wGs//EBtP/yAbX/8gG4/70Buf/uAbr/uAG7/9cBvf+3AAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAPH/1gAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/9YACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEA8f/WAAEA8f/WAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAxf/qAOj/uADx/+IBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAMASAAUAFYAGABZABEAAwBIABQAVgAYAFkAEQADAEgAFABWABgAWQARADsAVP+/AFn/0QBr/2wAev9uAH//QwCE/6wAh/+hALP/uAC6/34Avv97AMH/mwDC/3kAxf+yAMf/fgDI/30Ayf98ANT/rwDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+f+yAPr/gAD8/3kA/QAoAQL/fQEE/38BF/9mARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBpv+vAaj/uQGs/7kBtP+5AbX/uQG3/7wBuP/xAbv/8QG8/+0B3P+zAd//8QA7AFT/vwBZ/9EAa/9sAHr/bgB//0MAhP+sAIf/oQCz/7gAuv9+AL7/ewDB/5sAwv95AMX/sgDH/34AyP99AMn/fADU/68A4QAPAOX/5ADm/6AA6P90AOr/gADx/7IA+P99APn/sgD6/4AA/P95AP0AKAEC/30BBP9/ARf/ZgEb/9oBJ/+BASn/mAEt/30BL/+zATP/oAE5/3wBO/+aATz/bAFB/+YBRv9rAUr/kgFM/60BUP97AVMADwFU/5EBVf/yAab/rwGo/7kBrP+5AbT/uQG1/7kBt/+8Abj/8QG7//EBvP/tAdz/swHf//EAOwBU/78AWf/RAGv/bAB6/24Af/9DAIT/rACH/6EAs/+4ALr/fgC+/3sAwf+bAML/eQDF/7IAx/9+AMj/fQDJ/3wA1P+vAOEADwDl/+QA5v+gAOj/dADq/4AA8f+yAPj/fQD5/7IA+v+AAPz/eQD9ACgBAv99AQT/fwEX/2YBG//aASf/gQEp/5gBLf99AS//swEz/6ABOf98ATv/mgE8/2wBQf/mAUb/awFK/5IBTP+tAVD/ewFTAA8BVP+RAVX/8gGm/68BqP+5Aaz/uQG0/7kBtf+5Abf/vAG4//EBu//xAbz/7QHc/7MB3//xAAEBpv/rAAEBpv/rAAEBpv/rAAEBpv/rAAEBpv/rAAEBpv/rAAkACwAPAD8ADABU/+sAXwAOAab/ywGo/+kBrP/nAbT/5wG1/+cAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAab/qwGo/80BrP/LAbT/ywG1/8sBuP/zAbv/8wG8/+8B3P/AAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uAAgAWf/lALP/ywDI/+QBpgANAaj/7QGs/+sBtP/sAbX/7AAIAFn/5QCz/8sAyP/kAaYADQGo/+0BrP/rAbT/7AG1/+wACABZ/+UAs//LAMj/5AGmAA0BqP/tAaz/6wG0/+wBtf/sAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAFAEj/7gBZ/+oBuv/wAbv/7QG9//AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1ACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGm/6sBqP/NAaz/ywG0/8sBtf/LAbj/8wG7//MBvP/vAdz/wAHf/+4AHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAIBDAALAVP/5gAFAEj/7gBZ/+oBuv/wAbv/7QG9//AACABZ/+UAs//LAMj/5AGmAA0BqP/tAaz/6wG0/+wBtf/sAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAFABZ/8EAs//FAMX/tADl/9cA8f+5APn/6QEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8BqP/oAaz/5gG0/+cBtf/nAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAFYADgB//tcAv/+YAML/xwDU/xIA6P9SAUb/zwGm/4AB3//XADsAVP+/AFn/0QBr/2wAev9uAH//QwCE/6wAh/+hALP/uAC6/34Avv97AMH/mwDC/3kAxf+yAMf/fgDI/30Ayf98ANT/rwDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+f+yAPr/gAD8/3kA/QAoAQL/fQEE/38BF/9mARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBpv+vAaj/uQGs/7kBtP+5AbX/uQG3/7wBuP/xAbv/8QG8/+0B3P+zAd//8QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAaj/6QGs/+cBtP/nAbX/6QHf//AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGm/6sBqP/NAaz/ywG0/8sBtf/LAbj/8wG7//MBvP/vAdz/wAHf/+4AAQDx/9YACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAUASP/uAFn/6gG6//ABu//tAb3/8AAyAFT/fgBZ/50Aa/7xAHr+9AB//qsAhP9eAIf/SwCz/3IAuv8PAL7/CgDB/0EAwv8HAMX/aADH/w8AyP8OAMn/DADU/2MA4QAFAOX/vQDm/0kA6P7+AOr/EwDx/2gA+P8OAPn/aAD6/xMA/P8HAP0AMAEC/w4BBP8RARf+5wEb/6wBJ/8VASn/PAEt/w4BL/9qATP/SQE5/wwBO/8/ATz+8QFB/8ABRv7vAUr/MQFM/18BUP8KAVMABQFU/zABVf/VAdz/agHf/9MACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAab/6wAUAFn/wQCz/8UAxf+0AOX/1wDx/7kA+f/pAQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGo/+gBrP/mAbT/5wG1/+cAFABZ/8EAs//FAMX/tADl/9cA8f+5APn/6QEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8BqP/oAaz/5gG0/+cBtf/nABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAIBDAALAVP/5gAyAFT/fgBZ/50Aa/7xAHr+9AB//qsAhP9eAIf/SwCz/3IAuv8PAL7/CgDB/0EAwv8HAMX/aADH/w8AyP8OAMn/DADU/2MA4QAFAOX/vQDm/0kA6P7+AOr/EwDx/2gA+P8OAPn/aAD6/xMA/P8HAP0AMAEC/w4BBP8RARf+5wEb/6wBJ/8VASn/PAEt/w4BL/9qATP/SQE5/wwBO/8/ATz+8QFB/8ABRv7vAUr/MQFM/18BUP8KAVMABQFU/zABVf/VAdz/agHf/9MABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAFYADgB//tcAv/+YAML/xwDU/xIA6P9SAUb/zwGm/4AB3//XAAQAC//mAD//9ABf/+8BPP/tADsAVP+/AFn/0QBr/2wAev9uAH//QwCE/6wAh/+hALP/uAC6/34Avv97AMH/mwDC/3kAxf+yAMf/fgDI/30Ayf98ANT/rwDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+f+yAPr/gAD8/3kA/QAoAQL/fQEE/38BF/9mARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBpv+vAaj/uQGs/7kBtP+5AbX/uQG3/7wBuP/xAbv/8QG8/+0B3P+zAd//8QAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGo/+kBrP/nAbT/5wG1/+kB3//wAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QABAPH/9QAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAcAxf/qAOj/7gDx/9YA+f/tAS//7AFU/+wB3P/oAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAEBF//xAAEA8f/1AAIA6P9oARf/7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAJAAsADwA/AAwAVP/rAF8ADgGm/8sBqP/pAaz/5wG0/+cBtf/nAAkACwAPAD8ADABU/+sAXwAOAab/ywGo/+kBrP/nAbT/5wG1/+cACQALAA8APwAMAFT/6wBfAA4Bpv/LAaj/6QGs/+cBtP/nAbX/5wAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAEAWQALAAEAWQALAAEAWQALAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAPH/1gAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAkACwAUAD8AEQBU/+IAXwATAab/tAGo/9kBrP/ZAbT/2QG1/9kABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UABAAL/+YAP//0AF//7wE8/+0AJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAab/qwGo/80BrP/LAbT/ywG1/8sBuP/zAbv/8wG8/+8B3P/AAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqP/pAaz/5wG0/+cBtf/pAd//8AABARf/8QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QABAPH/9QABAPH/9QAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGo/+kBrP/nAbT/5wG1/+kB3//wAAEBF//xAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAcAxf/qAOj/7gDx/9YA+f/tAS//7AFU/+wB3P/oABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAEgDU/64A4QASAOb/4ADo/60A6v/WAPj/3wD8/9IBAv/gARf/zgEn/90BKf/iAS3/4AEz/+ABOf/pATz/2gFG/70BUP/fAVMAEQAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAaj/6QGs/+cBtP/nAbX/6QHf//AAAQEX//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EAHQAh/68AVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAPn/0AEv/4EBOP9lATn/hQE7/2YBPP/dAUH/8gFJ/7EBS//KAVP/qQFU/8gBrP/1AbT/9QG4/8cBuf/xAbr/zQG7/90Bvf/EAAgA8f/wAPn/8AEE//EBG//zAS//8QFK//MBTP/zAVT/8QAdACH/rwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oA+f/QAS//gQE4/2UBOf+FATv/ZgE8/90BQf/yAUn/sQFL/8oBU/+pAVT/yAGs//UBtP/1Abj/xwG5//EBuv/NAbv/3QG9/8QACADx//AA+f/wAQT/8QEb//MBL//xAUr/8wFM//MBVP/xAB0AIf+vAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygD5/9ABL/+BATj/ZQE5/4UBO/9mATz/3QFB//IBSf+xAUv/ygFT/6kBVP/IAaz/9QG0//UBuP/HAbn/8QG6/80Bu//dAb3/xAAIAPH/8AD5//ABBP/xARv/8wEv//EBSv/zAUz/8wFU//EABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAFAEj/7gBZ/+oBuv/wAbv/7QG9//AAAQDx//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAFAEj/7gBZ/+oBuv/wAbv/7QG9//AAAQDx//UABQBI/+4AWf/qAbr/8AG7/+0Bvf/wAAEA8f/1AAUASP/uAFn/6gG6//ABu//tAb3/8AABAPH/9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAxf/qAOj/uADx/+IBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGm/+0BvP/1AAkAxf/qAOj/uADx/+IBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABpv/tAbz/9QAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAab/7QG8//UACQDF/+oA6P+4APH/4gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/iAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAEBpv/rAAEBpv/rACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGm/6sBqP/NAaz/ywG0/8sBtf/LAbj/8wG7//MBvP/vAdz/wAHf/+4ABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAab/qwGo/80BrP/LAbT/ywG1/8sBuP/zAbv/8wG8/+8B3P/AAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABQAWf/BALP/xQDF/7QA5f/XAPH/uQD5/+kBBP+yARf/0gEb/8gBL/+gATn/xQFB/+QBSv/MAUz/zAFU/8sBVf/vAaj/6AGs/+YBtP/nAbX/5wAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAOwBU/78AWf/RAGv/bAB6/24Af/9DAIT/rACH/6EAs/+4ALr/fgC+/3sAwf+bAML/eQDF/7IAx/9+AMj/fQDJ/3wA1P+vAOEADwDl/+QA5v+gAOj/dADq/4AA8f+yAPj/fQD5/7IA+v+AAPz/eQD9ACgBAv99AQT/fwEX/2YBG//aASf/gQEp/5gBLf99AS//swEz/6ABOf98ATv/mgE8/2wBQf/mAUb/awFK/5IBTP+tAVD/ewFTAA8BVP+RAVX/8gGm/68BqP+5Aaz/uQG0/7kBtf+5Abf/vAG4//EBu//xAbz/7QHc/7MB3//xABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAaj/6QGs/+cBtP/nAbX/6QHf//AAAQEX//EAMgBU/34AWf+dAGv+8QB6/vQAf/6rAIT/XgCH/0sAs/9yALr/DwC+/woAwf9BAML/BwDF/2gAx/8PAMj/DgDJ/wwA1P9jAOEABQDl/70A5v9JAOj+/gDq/xMA8f9oAPj/DgD5/2gA+v8TAPz/BwD9ADABAv8OAQT/EQEX/ucBG/+sASf/FQEp/zwBLf8OAS//agEz/0kBOf8MATv/PwE8/vEBQf/AAUb+7wFK/zEBTP9fAVD/CgFTAAUBVP8wAVX/1QHc/2oB3//TAAIA6P9oARf/7gAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGo/+kBrP/nAbT/5wG1/+kB3//wAAEBF//xAAEA8f/WAAoA4f/DAPH/zwD5/9QBL//OATj/5wE7/98BSf/RAUv/7AFT/6ABVP/RADIAVP9+AFn/nQBr/vEAev70AH/+qwCE/14Ah/9LALP/cgC6/w8Avv8KAMH/QQDC/wcAxf9oAMf/DwDI/w4Ayf8MANT/YwDhAAUA5f+9AOb/SQDo/v4A6v8TAPH/aAD4/w4A+f9oAPr/EwD8/wcA/QAwAQL/DgEE/xEBF/7nARv/rAEn/xUBKf88AS3/DgEv/2oBM/9JATn/DAE7/z8BPP7xAUH/wAFG/u8BSv8xAUz/XwFQ/woBUwAFAVT/MAFV/9UB3P9qAd//0wAUAFn/wQCz/8UAxf+0AOX/1wDx/7kA+f/pAQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGo/+gBrP/mAbT/5wG1/+cACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBpv+rAaj/zQGs/8sBtP/LAbX/ywG4//MBu//zAbz/7wHc/8AB3//uAAE1wAAEAAAABgAWAGwDngQcBIYEyAAVADgAFAA5ACYAOwAWARQAFAILABYCkgAmApQAFgKWABYC/QAWAwwAFgMPABYDRQAmA0cAJgNJACYDSwAWA2AAFANoABYD6gAWA+wAFgPuABYEEwAWAMwADv7uABD+7gAj/0AALP8wADYAFABD/94ARf/rAEb/6wBH/+sASf/rAFH/6wBT/+sAV//qAFj/6ABb/+gAkf/rAJX/6wCX/+oArf9AAK//QAC2/+sAuP/oAMP/6wDE/+sAxv/qAM0AFADRABQA8v/rAP7/6wEI/0ABE//rARX/6AEZ/+sBHf/rAS4AFAE1/+sBNgAUAUf/6wFI/+sBUv/rAWf+7gFr/u4Bb/7uAXD+7gHx/0AB8v9AAfP/QAH0/0AB9f9AAfb/QAH3/0ACDP/eAg3/3gIO/94CD//eAhD/3gIR/94CEv/eAhP/6wIU/+sCFf/rAhb/6wIX/+sCHf/rAh7/6wIf/+sCIP/rAiH/6wIi/+oCI//qAiT/6gIl/+oCJv/oAif/6AIo/0ACKf/eAir/QAIr/94CLP9AAi3/3gIv/+sCMf/rAjP/6wI1/+sCN//rAjn/6wI7/+sCPf/rAj//6wJB/+sCQ//rAkX/6wJH/+sCSf/rAlf/MAJr/+sCbf/rAm//6wKAABQCggAUAoQAFAKH/+oCif/qAov/6gKN/+oCj//qApH/6gKV/+gC+P9AAwD/QAMQ/+sDFP/qAxb/6wMY/+gDG//qAxz/6wMd/+oDJP8wAyj/QAMzABQDNf/eAzb/6wM4/+sDOv/rAzv/6AM9/+sDRP/oA0z/6ANV/0ADVv/eA1z/6wNh/+gDYv/rA2f/6wNp/+gDbv9AA2//3gNw/0ADcf/eA3X/6wN3/+sDeP/rA4L/6wOE/+sDhv/rA4r/6AOM/+gDjv/oA5X/6wOY/0ADmf/eA5r/QAOb/94DnP9AA53/3gOe/0ADn//eA6D/QAOh/94Dov9AA6P/3gOk/0ADpf/eA6b/QAOn/94DqP9AA6n/3gOq/0ADq//eA6z/QAOt/94Drv9AA6//3gOx/+sDs//rA7X/6wO3/+sDuf/rA7v/6wO9/+sDv//rA8X/6wPH/+sDyf/rA8v/6wPN/+sDz//rA9H/6wPT/+sD1f/rA9f/6wPZ/+sD2//rA93/6gPf/+oD4f/qA+P/6gPl/+oD5//qA+n/6gPr/+gD7f/oA+//6AP2ABQAHwA2/98AOP/kADn/7AA7/90Azf/fANH/3wEU/+QBLv/fATb/3wIL/90CgP/fAoL/3wKE/98Ckv/sApT/3QKW/90C/f/dAwz/3QMP/90DM//fA0X/7ANH/+wDSf/sA0v/3QNg/+QDaP/dA+r/3QPs/90D7v/dA/b/3wQT/90AGgA2/84AOP/tADv/0ADN/84A0f/OART/7QEu/84BNv/OAgv/0AKA/84Cgv/OAoT/zgKU/9AClv/QAv3/0AMM/9ADD//QAzP/zgNL/9ADYP/tA2j/0APq/9AD7P/QA+7/0AP2/84EE//QABAALP/uADf/7gIH/+4CCP/uAgn/7gIK/+4CV//uAob/7gKI/+4Civ/uAoz/7gKO/+4CkP/uAyT/7gPc/+4D3v/uAD0ARf/oAEb/6ABH/+gASf/oAFP/6ACR/+gAlf/oALb/6ADD/+gAxP/oAPL/6AD+/+gBGf/oAR3/6AE1/+gBR//oAUj/6AFS/+gCE//oAhT/6AIV/+gCFv/oAhf/6AIv/+gCMf/oAjP/6AI1/+gCN//oAjn/6AI7/+gCPf/oAj//6AJB/+gCQ//oAkX/6AJH/+gCSf/oAxD/6AM2/+gDOv/oAz3/6ANc/+gDYv/oA2f/6AN1/+gDd//oA3j/6AOE/+gDlf/oA7H/6AOz/+gDtf/oA7f/6AO5/+gDu//oA73/6AO//+gD0//oA9X/6APX/+gD2//oAAEwEgAEAAAALABiAIwBggHgAfoCPAKyA5gEfgVYBfIIjApSC2ANJg1YDYoOCA9OENgSbhOAFO4XABe2GRwZ0hqMGxIbcBwuHKQdUh18Hs4hDCEuIkQioiMgI0ojfCOOI7gACgAEABAACQAQAWUAEAFmABABaAAQAWkAEAFqABADTQAQA04AEANSABAAPQBF/+wARv/sAEf/7ABJ/+wAU//sAJH/7ACV/+wAtv/sAMP/7ADE/+wA8v/sAP7/7AEZ/+wBHf/sATX/7AFH/+wBSP/sAVL/7AIT/+wCFP/sAhX/7AIW/+wCF//sAi//7AIx/+wCM//sAjX/7AI3/+wCOf/sAjv/7AI9/+wCP//sAkH/7AJD/+wCRf/sAkf/7AJJ/+wDEP/sAzb/7AM6/+wDPf/sA1z/7ANi/+wDZ//sA3X/7AN3/+wDeP/sA4T/7AOV/+wDsf/sA7P/7AO1/+wDt//sA7n/7AO7/+wDvf/sA7//7APT/+wD1f/sA9f/7APb/+wAFwBR/+IBE//iAh3/4gIe/+ICH//iAiD/4gIh/+ICa//iAm3/4gJv/+IDFv/iAxz/4gM4/+IDgv/iA4b/4gPF/+IDx//iA8n/4gPL/+IDzf/iA8//4gPR/+ID2f/iAAYADv+EABD/hAFn/4QBa/+EAW//hAFw/4QAEAAs/+wAN//sAgf/7AII/+wCCf/sAgr/7AJX/+wChv/sAoj/7AKK/+wCjP/sAo7/7AKQ/+wDJP/sA9z/7APe/+wAHQAE//IACf/yAFj/8wBb//MAuP/zARX/8wFl//IBZv/yAWj/8gFp//IBav/yAib/8wIn//MClf/zAxj/8wM7//MDRP/zA0z/8wNN//IDTv/yA1L/8gNh//MDaf/zA4r/8wOM//MDjv/zA+v/8wPt//MD7//zADkAJf/zACn/8wAx//MAM//zAIH/8wCQ//MAlP/zAK7/8wDO//MBA//zARL/8wEW//MBGP/zARr/8wEc//MBNP/zAVH/8wH4//MCAv/zAgP/8wIE//MCBf/zAgb/8wIu//MCMP/zAjL/8wI0//MCQv/zAkT/8wJG//MCSP/zAmr/8wJs//MCbv/zAp//8wL8//MDCf/zAy//8wMy//MDV//zA2P/8wNm//MDgf/zA4P/8wOF//MDxP/zA8b/8wPI//MDyv/zA8z/8wPO//MD0P/zA9L/8wPU//MD1v/zA9j/8wPa//MAOQAl/+YAKf/mADH/5gAz/+YAgf/mAJD/5gCU/+YArv/mAM7/5gED/+YBEv/mARb/5gEY/+YBGv/mARz/5gE0/+YBUf/mAfj/5gIC/+YCA//mAgT/5gIF/+YCBv/mAi7/5gIw/+YCMv/mAjT/5gJC/+YCRP/mAkb/5gJI/+YCav/mAmz/5gJu/+YCn//mAvz/5gMJ/+YDL//mAzL/5gNX/+YDY//mA2b/5gOB/+YDg//mA4X/5gPE/+YDxv/mA8j/5gPK/+YDzP/mA87/5gPQ/+YD0v/mA9T/5gPW/+YD2P/mA9r/5gA2ACP/5AA6/9IAO//TAK3/5ACv/+QA1f/SAQj/5AHx/+QB8v/kAfP/5AH0/+QB9f/kAfb/5AH3/+QCC//TAij/5AIq/+QCLP/kApT/0wKW/9MC+P/kAv3/0wMA/+QDDP/TAw3/0gMP/9MDKP/kAzT/0gNL/9MDVf/kA2j/0wNr/9IDbv/kA3D/5AN5/9IDk//SA5j/5AOa/+QDnP/kA57/5AOg/+QDov/kA6T/5AOm/+QDqP/kA6r/5AOs/+QDrv/kA+r/0wPs/9MD7v/TA/j/0gQA/9IEE//TACYADv9GABD/RgAj/80Arf/NAK//zQEI/80BZ/9GAWv/RgFv/0YBcP9GAfH/zQHy/80B8//NAfT/zQH1/80B9v/NAff/zQIo/80CKv/NAiz/zQL4/80DAP/NAyj/zQNV/80Dbv/NA3D/zQOY/80Dmv/NA5z/zQOe/80DoP/NA6L/zQOk/80Dpv/NA6j/zQOq/80DrP/NA67/zQCmAEX/3ABG/9wAR//cAEn/3ABP/8EAUP/BAFH/1gBS/8EAU//cAFf/3QBY/+EAW//hAJH/3ACV/9wAl//dALb/3AC4/+EAvP/BAMP/3ADE/9wAxv/dAOf/wQDr/8EA7P/BAO7/wQDv/8EA8P/BAPL/3ADz/8EA9f/BAPb/wQD5/8EA+//BAP7/3AEA/8EBE//WARX/4QEZ/9wBHf/cATH/wQE1/9wBQP/BAUX/wQFH/9wBSP/cAVL/3AIT/9wCFP/cAhX/3AIW/9wCF//cAhz/wQId/9YCHv/WAh//1gIg/9YCIf/WAiL/3QIj/90CJP/dAiX/3QIm/+ECJ//hAi//3AIx/9wCM//cAjX/3AI3/9wCOf/cAjv/3AI9/9wCP//cAkH/3AJD/9wCRf/cAkf/3AJJ/9wCZP/BAmb/wQJo/8ECaf/BAmv/1gJt/9YCb//WAof/3QKJ/90Ci//dAo3/3QKP/90Ckf/dApX/4QMQ/9wDEv/BAxT/3QMW/9YDGP/hAxv/3QMc/9YDHf/dAzb/3AM3/8EDOP/WAzn/wQM6/9wDO//hAz3/3AM+/8EDQ//BA0T/4QNM/+EDVP/BA1z/3ANd/8EDYf/hA2L/3ANn/9wDaf/hA3X/3AN3/9wDeP/cA37/wQOA/8EDgv/WA4T/3AOG/9YDiv/hA4z/4QOO/+EDkv/BA5X/3AOx/9wDs//cA7X/3AO3/9wDuf/cA7v/3AO9/9wDv//cA8X/1gPH/9YDyf/WA8v/1gPN/9YDz//WA9H/1gPT/9wD1f/cA9f/3APZ/9YD2//cA93/3QPf/90D4f/dA+P/3QPl/90D5//dA+n/3QPr/+ED7f/hA+//4QPz/8ED9f/BA///wQQM/8EEDv/BBBD/wQBxAAT/2gAJ/9oARf/wAEb/8ABH//AASf/wAFP/8ABX/+8AWP/cAFv/3ACR//AAlf/wAJf/7wC2//AAuP/cAMP/8ADE//AAxv/vAPL/8AD+//ABFf/cARn/8AEd//ABNf/wAUf/8AFI//ABUv/wAWX/2gFm/9oBaP/aAWn/2gFq/9oCE//wAhT/8AIV//ACFv/wAhf/8AIi/+8CI//vAiT/7wIl/+8CJv/cAif/3AIv//ACMf/wAjP/8AI1//ACN//wAjn/8AI7//ACPf/wAj//8AJB//ACQ//wAkX/8AJH//ACSf/wAof/7wKJ/+8Ci//vAo3/7wKP/+8Ckf/vApX/3AMQ//ADFP/vAxj/3AMb/+8DHf/vAzb/8AM6//ADO//cAz3/8ANE/9wDTP/cA03/2gNO/9oDUv/aA1z/8ANh/9wDYv/wA2f/8ANp/9wDdf/wA3f/8AN4//ADhP/wA4r/3AOM/9wDjv/cA5X/8AOx//ADs//wA7X/8AO3//ADuf/wA7v/8AO9//ADv//wA9P/8APV//AD1//wA9v/8APd/+8D3//vA+H/7wPj/+8D5f/vA+f/7wPp/+8D6//cA+3/3APv/9wAQwAOAAwAEAAMAEX/5wBG/+cAR//nAEn/5wBT/+cAkf/nAJX/5wC2/+cAw//nAMT/5wDy/+cA/v/nARn/5wEd/+cBNf/nAUf/5wFI/+cBUv/nAWcADAFrAAwBbwAMAXAADAIT/+cCFP/nAhX/5wIW/+cCF//nAi//5wIx/+cCM//nAjX/5wI3/+cCOf/nAjv/5wI9/+cCP//nAkH/5wJD/+cCRf/nAkf/5wJJ/+cDEP/nAzb/5wM6/+cDPf/nA1z/5wNi/+cDZ//nA3X/5wN3/+cDeP/nA4T/5wOV/+cDsf/nA7P/5wO1/+cDt//nA7n/5wO7/+cDvf/nA7//5wPT/+cD1f/nA9f/5wPb/+cAcQAEAAwACQAMAEX/6ABG/+gAR//oAEn/6ABR/+oAU//oAFgACwBbAAsAkf/oAJX/6AC2/+gAuAALAMP/6ADE/+gA8v/oAP7/6AET/+oBFQALARn/6AEd/+gBNf/oAUf/6AFI/+gBUv/oAWUADAFmAAwBaAAMAWkADAFqAAwCE//oAhT/6AIV/+gCFv/oAhf/6AId/+oCHv/qAh//6gIg/+oCIf/qAiYACwInAAsCL//oAjH/6AIz/+gCNf/oAjf/6AI5/+gCO//oAj3/6AI//+gCQf/oAkP/6AJF/+gCR//oAkn/6AJr/+oCbf/qAm//6gKVAAsDEP/oAxb/6gMYAAsDHP/qAzb/6AM4/+oDOv/oAzsACwM9/+gDRAALA0wACwNNAAwDTgAMA1IADANc/+gDYQALA2L/6ANn/+gDaQALA3X/6AN3/+gDeP/oA4L/6gOE/+gDhv/qA4oACwOMAAsDjgALA5X/6AOx/+gDs//oA7X/6AO3/+gDuf/oA7v/6AO9/+gDv//oA8X/6gPH/+oDyf/qA8v/6gPN/+oDz//qA9H/6gPT/+gD1f/oA9f/6APZ/+oD2//oA+sACwPtAAsD7wALAAwAWv/tAFz/7QDp/+0CmP/tApr/7QKc/+0DPP/tA2z/7QN6/+0DlP/tA/n/7QQB/+0ADABa//IAXP/yAOn/8gKY//ICmv/yApz/8gM8//IDbP/yA3r/8gOU//ID+f/yBAH/8gAfAFj/9ABa//IAW//0AFz/8wC4//QA6f/yARX/9AIm//QCJ//0ApX/9AKY//MCmv/zApz/8wMY//QDO//0Azz/8gNE//QDTP/0A2H/9ANp//QDbP/yA3r/8gOK//QDjP/0A47/9AOU//ID6//0A+3/9APv//QD+f/yBAH/8gBRAAT/ygAJ/8oANv/SADj/1AA6//QAO//TAFj/5gBa/+8AW//mALj/5gDN/9IA0f/SANX/9ADZ/+0A3P/hAOn/7wEU/9QBFf/mAS7/0gE2/9IBZf/KAWb/ygFo/8oBaf/KAWr/ygIL/9MCJv/mAif/5gKA/9ICgv/SAoT/0gKU/9MClf/mApb/0wL9/9MDDP/TAw3/9AMP/9MDGP/mAyf/7QMz/9IDNP/0Azv/5gM8/+8DRP/mA0v/0wNM/+YDTf/KA07/ygNS/8oDYP/UA2H/5gNo/9MDaf/mA2v/9ANs/+8Def/0A3r/7wOJ/+0Div/mA4v/7QOM/+YDjf/tA47/5gOP/+EDk//0A5T/7wPq/9MD6//mA+z/0wPt/+YD7v/TA+//5gP2/9ID+P/0A/n/7wP6/+ED/P/hBAD/9AQB/+8EE//TAGIABP/AAAn/wAA2/50AOP/HADr/8AA7/6sAT//SAFD/0gBS/9IAvP/SAM3/nQDP//UA0f+dANX/8ADY//UA2f/qANz/5QDn/9IA6//SAOz/0gDu/9IA7//SAPD/0gDz/9IA9f/SAPb/0gD7/9IBAP/SART/xwEu/50BMf/SATb/nQFA/9IBRf/SAU3/9QFl/8ABZv/AAWj/wAFp/8ABav/AAgv/qwIc/9ICZP/SAmb/0gJo/9ICaf/SAoD/nQKC/50ChP+dApT/qwKW/6sC/f+rAwz/qwMN//ADD/+rAxL/0gMn/+oDM/+dAzT/8AM3/9IDOf/SAz7/0gND/9IDS/+rA03/wANO/8ADUv/AA1T/0gNd/9IDYP/HA2j/qwNr//ADef/wA37/0gOA/9IDif/qA4v/6gON/+oDj//lA5L/0gOT//ADlv/1A+r/qwPs/6sD7v+rA/P/0gP1/9ID9v+dA/j/8AP6/+UD/P/lA///0gQA//AEDP/SBA7/0gQQ/9IEEf/1BBP/qwBlAAT/sQAJ/7EANv+eADj/xQA6//IAO/+oAE//zwBQ/88AUv/PAFr/7wC8/88Azf+eANH/ngDV//IA2f/sANz/4QDn/88A6f/vAOv/zwDs/88A7v/PAO//zwDw/88A8//PAPX/zwD2/88A+//PAQD/zwEU/8UBLv+eATH/zwE2/54BQP/PAUX/zwFl/7EBZv+xAWj/sQFp/7EBav+xAgv/qAIc/88CZP/PAmb/zwJo/88Caf/PAoD/ngKC/54ChP+eApT/qAKW/6gC/f+oAwz/qAMN//IDD/+oAxL/zwMn/+wDM/+eAzT/8gM3/88DOf/PAzz/7wM+/88DQ//PA0v/qANN/7EDTv+xA1L/sQNU/88DXf/PA2D/xQNo/6gDa//yA2z/7wN5//IDev/vA37/zwOA/88Dif/sA4v/7AON/+wDj//hA5L/zwOT//IDlP/vA+r/qAPs/6gD7v+oA/P/zwP1/88D9v+eA/j/8gP5/+8D+v/hA/z/4QP//88EAP/yBAH/7wQM/88EDv/PBBD/zwQT/6gARAA2/74AT//hAFD/4QBS/+EAWP/vAFv/7wC4/+8AvP/hAM3/vgDR/74A5//hAOv/4QDs/+EA7v/hAO//4QDw/+EA8//hAPX/4QD2/+EA+//hAQD/4QEV/+8BLv++ATH/4QE2/74BQP/hAUX/4QIc/+ECJv/vAif/7wJk/+ECZv/hAmj/4QJp/+ECgP++AoL/vgKE/74Clf/vAxL/4QMY/+8DM/++Azf/4QM5/+EDO//vAz7/4QND/+EDRP/vA0z/7wNU/+EDXf/hA2H/7wNp/+8Dfv/hA4D/4QOK/+8DjP/vA47/7wOS/+ED6//vA+3/7wPv/+8D8//hA/X/4QP2/74D///hBAz/4QQO/+EEEP/hAFsANv/mADj/5wA6//IAO//nAE//1gBQ/9YAUv/WAFr/8QC8/9YAzf/mANH/5gDV//IA2f/uANz/6ADn/9YA6f/xAOv/1gDs/9YA7v/WAO//1gDw/9YA8//WAPX/1gD2/9YA+//WAQD/1gEU/+cBLv/mATH/1gE2/+YBQP/WAUX/1gIL/+cCHP/WAmT/1gJm/9YCaP/WAmn/1gKA/+YCgv/mAoT/5gKU/+cClv/nAv3/5wMM/+cDDf/yAw//5wMS/9YDJ//uAzP/5gM0//IDN//WAzn/1gM8//EDPv/WA0P/1gNL/+cDVP/WA13/1gNg/+cDaP/nA2v/8gNs//EDef/yA3r/8QN+/9YDgP/WA4n/7gOL/+4Djf/uA4//6AOS/9YDk//yA5T/8QPq/+cD7P/nA+7/5wPz/9YD9f/WA/b/5gP4//ID+f/xA/r/6AP8/+gD///WBAD/8gQB//EEDP/WBA7/1gQQ/9YEE//nAIQAIwAQACX/6AAp/+gAMf/oADP/6AA2/+AAOP/gADv/3wCB/+gAkP/oAJT/6ACtABAArv/oAK8AEADN/+AAzv/oAM8AEADR/+AA2AAQANz/4QDtABAA9P/gAP8AEAED/+gBCAAQARL/6AEU/+ABFv/oARj/6AEa/+gBHP/oAS7/4AE0/+gBNv/gAU0AEAFR/+gB8QAQAfIAEAHzABAB9AAQAfUAEAH2ABAB9wAQAfj/6AIC/+gCA//oAgT/6AIF/+gCBv/oAgv/3wIoABACKgAQAiwAEAIu/+gCMP/oAjL/6AI0/+gCQv/oAkT/6AJG/+gCSP/oAmr/6AJs/+gCbv/oAoD/4AKC/+AChP/gApT/3wKW/98Cn//oAvgAEAL8/+gC/f/fAwAAEAMJ/+gDDP/fAw//3wMoABADL//oAzL/6AMz/+ADS//fA1UAEANX/+gDYP/gA2P/6ANm/+gDaP/fA24AEANwABADgf/oA4P/6AOF/+gDj//hA5D/4AOWABADlwAQA5gAEAOaABADnAAQA54AEAOgABADogAQA6QAEAOmABADqAAQA6oAEAOsABADrgAQA8T/6APG/+gDyP/oA8r/6APM/+gDzv/oA9D/6APS/+gD1P/oA9b/6APY/+gD2v/oA+r/3wPs/98D7v/fA/b/4AP6/+ED+//gA/z/4QP9/+AEEQAQBBIAEAQT/98ALQA2//EAOP/0ADr/9AA7//AAzf/xAM//9QDR//EA1f/0ANj/9QDZ//MBFP/0AS7/8QE2//EBTf/1Agv/8AKA//ECgv/xAoT/8QKU//AClv/wAv3/8AMM//ADDf/0Aw//8AMn//MDM//xAzT/9ANL//ADYP/0A2j/8ANr//QDef/0A4n/8wOL//MDjf/zA5P/9AOW//UD6v/wA+z/8APu//AD9v/xA/j/9AQA//QEEf/1BBP/8ABZACMADwA2/+YAOP/mADoADgA7/+YArQAPAK8ADwDN/+YAzwAOANH/5gDVAA4A2AAOANkACwDc/+UA7QAPAPT/6AD/AA8BCAAPART/5gEu/+YBNv/mAU0ADgHxAA8B8gAPAfMADwH0AA8B9QAPAfYADwH3AA8CC//mAigADwIqAA8CLAAPAoD/5gKC/+YChP/mApT/5gKW/+YC+AAPAv3/5gMAAA8DDP/mAw0ADgMP/+YDJwALAygADwMz/+YDNAAOA0v/5gNVAA8DYP/mA2j/5gNrAA4DbgAPA3AADwN5AA4DiQALA4sACwONAAsDj//lA5D/6AOTAA4DlgAOA5cADwOYAA8DmgAPA5wADwOeAA8DoAAPA6IADwOkAA8DpgAPA6gADwOqAA8DrAAPA64ADwPq/+YD7P/mA+7/5gP2/+YD+AAOA/r/5QP7/+gD/P/lA/3/6AQAAA4EEQAOBBIADwQT/+YALQAE/78ACf+/ADb/nwA4/8kAO/+tAM3/nwDR/58A2f/sANz/5gEU/8kBLv+fATb/nwFl/78BZv+/AWj/vwFp/78Bav+/Agv/rQKA/58Cgv+fAoT/nwKU/60Clv+tAv3/rQMM/60DD/+tAyf/7AMz/58DS/+tA03/vwNO/78DUv+/A2D/yQNo/60Dif/sA4v/7AON/+wDj//mA+r/rQPs/60D7v+tA/b/nwP6/+YD/P/mBBP/rQAuADb/4wA6/+UAO//kAM3/4wDP/+UA0f/jANX/5QDY/+UA2f/pAO3/6gD//+oBLv/jATb/4wFN/+UCC//kAoD/4wKC/+MChP/jApT/5AKW/+QC/f/kAwz/5AMN/+UDD//kAyf/6QMz/+MDNP/lA0v/5ANo/+QDa//lA3n/5QOJ/+kDi//pA43/6QOT/+UDlv/lA5f/6gPq/+QD7P/kA+7/5AP2/+MD+P/lBAD/5QQR/+UEEv/qBBP/5AAhADb/4gA6/+QAzf/iAM//5ADR/+IA1f/kANj/5ADZ/+kA7f/rAP//6wEu/+IBNv/iAU3/5AKA/+ICgv/iAoT/4gMN/+QDJ//pAzP/4gM0/+QDa//kA3n/5AOJ/+kDi//pA43/6QOT/+QDlv/kA5f/6wP2/+ID+P/kBAD/5AQR/+QEEv/rABcANv/rADv/8wDN/+sA0f/rAS7/6wE2/+sCC//zAoD/6wKC/+sChP/rApT/8wKW//MC/f/zAwz/8wMP//MDM//rA0v/8wNo//MD6v/zA+z/8wPu//MD9v/rBBP/8wAvAE//7wBQ/+8AUv/vAFr/8AC8/+8A5//vAOn/8ADr/+8A7P/vAO7/7wDv/+8A8P/vAPP/7wD1/+8A9v/vAPv/7wEA/+8BMf/vAUD/7wFF/+8CHP/vAmT/7wJm/+8CaP/vAmn/7wMS/+8DN//vAzn/7wM8//ADPv/vA0P/7wNU/+8DXf/vA2z/8AN6//ADfv/vA4D/7wOS/+8DlP/wA/P/7wP1/+8D+f/wA///7wQB//AEDP/vBA7/7wQQ/+8AHQAE//IACf/yAFj/9QBb//UAuP/1ARX/9QFl//IBZv/yAWj/8gFp//IBav/yAib/9QIn//UClf/1Axj/9QM7//UDRP/1A0z/9QNN//IDTv/yA1L/8gNh//UDaf/1A4r/9QOM//UDjv/1A+v/9QPt//UD7//1ACsAT//uAFD/7gBS/+4AvP/uAOf/7gDr/+4A7P/uAO7/7gDv/+4A8P/uAPP/7gD0/+0A9f/uAPb/7gD7/+4BAP/uATH/7gFA/+4BRf/uAhz/7gJk/+4CZv/uAmj/7gJp/+4DEv/uAzf/7gM5/+4DPv/uA0P/7gNU/+4DXf/uA37/7gOA/+4DkP/tA5L/7gPz/+4D9f/uA/v/7QP9/+0D///uBAz/7gQO/+4EEP/uAAoABP/1AAn/9QFl//UBZv/1AWj/9QFp//UBav/1A03/9QNO//UDUv/1AFQARf/wAEb/8ABH//AASf/wAFH/xwBT//AAkf/wAJX/8AC2//AAw//wAMT/8ADy//AA/v/wARP/xwEZ//ABHf/wATX/8AFH//ABSP/wAVL/8AIT//ACFP/wAhX/8AIW//ACF//wAh3/xwIe/8cCH//HAiD/xwIh/8cCL//wAjH/8AIz//ACNf/wAjf/8AI5//ACO//wAj3/8AI///ACQf/wAkP/8AJF//ACR//wAkn/8AJr/8cCbf/HAm//xwMQ//ADFv/HAxz/xwM2//ADOP/HAzr/8AM9//ADXP/wA2L/8ANn//ADdf/wA3f/8AN4//ADgv/HA4T/8AOG/8cDlf/wA7H/8AOz//ADtf/wA7f/8AO5//ADu//wA73/8AO///ADxf/HA8f/xwPJ/8cDy//HA83/xwPP/8cD0f/HA9P/8APV//AD1//wA9n/xwPb//AAjwAEAA0ACQANAEP/8ABF/8AARv/AAEf/wABJ/8AAUf/iAFP/wABYAAsAWwALAJH/wACV/8AAtv/AALgACwDE/8AA7f/XAPL/wAD+/8AA///XARP/4gEVAAsBGf/AAR3/wAE1/8ABR//AAUj/wAFS/8ABZQANAWYADQFoAA0BaQANAWoADQIM//ACDf/wAg7/8AIP//ACEP/wAhH/8AIS//ACE//AAhT/wAIV/8ACFv/AAhf/wAId/+ICHv/iAh//4gIg/+ICIf/iAiYACwInAAsCKf/wAiv/8AIt//ACL//AAjH/wAIz/8ACNf/AAjf/wAI5/8ACO//AAj3/wAI//8ACQf/AAkP/wAJF/8ACR//AAkn/wAJr/+ICbf/iAm//4gKVAAsDEP/AAxb/4gMYAAsDHP/iAzX/8AM2/8ADOP/iAzr/wAM7AAsDPf/AA0QACwNMAAsDTQANA04ADQNSAA0DVv/wA1z/wANhAAsDYv/AA2f/wANpAAsDb//wA3H/8AN1/8ADd//AA3j/wAOC/+IDhP/AA4b/4gOKAAsDjAALA44ACwOV/8ADl//XA5n/8AOb//ADnf/wA5//8AOh//ADo//wA6X/8AOn//ADqf/wA6v/8AOt//ADr//wA7H/wAOz/8ADtf/AA7f/wAO5/8ADu//AA73/wAO//8ADxf/iA8f/4gPJ/+IDy//iA83/4gPP/+ID0f/iA9P/wAPV/8AD1//AA9n/4gPb/8AD6wALA+0ACwPvAAsEEv/XAAgA7QAQAPT/8AD/ABADkP/wA5cAEAP7//AD/f/wBBIAEABFAEX/7gBG/+4AR//uAEn/7gBT/+4Akf/uAJX/7gC2/+4Aw//uAMT/7gDtAA4A8v/uAPT/4wD+/+4A/wAOARn/7gEd/+4BNf/uAUf/7gFI/+4BUv/uAhP/7gIU/+4CFf/uAhb/7gIX/+4CL//uAjH/7gIz/+4CNf/uAjf/7gI5/+4CO//uAj3/7gI//+4CQf/uAkP/7gJF/+4CR//uAkn/7gMQ/+4DNv/uAzr/7gM9/+4DXP/uA2L/7gNn/+4Ddf/uA3f/7gN4/+4DhP/uA5D/4wOV/+4DlwAOA7H/7gOz/+4Dtf/uA7f/7gO5/+4Du//uA73/7gO//+4D0//uA9X/7gPX/+4D2//uA/v/4wP9/+MEEgAOABcAWP/AAFv/wAC4/8AA9P/uARX/wAIm/8ACJ//AApX/wAMY/8ADO//AA0T/wANM/8ADYf/AA2n/wAOK/8ADjP/AA47/wAOQ/+4D6//AA+3/wAPv/8AD+//uA/3/7gAfAFj/9ABa//AAW//0ALj/9ADp//AA7f/zAP//8wEV//QCJv/0Aif/9AKV//QDGP/0Azv/9AM8//ADRP/0A0z/9ANh//QDaf/0A2z/8AN6//ADiv/0A4z/9AOO//QDlP/wA5f/8wPr//QD7f/0A+//9AP5//AEAf/wBBL/8wAKAAT/1gAJ/9YBZf/WAWb/1gFo/9YBaf/WAWr/1gNN/9YDTv/WA1L/1gAMAFr/4ADp/+AA9P/CAzz/4ANs/+ADev/gA5D/wgOU/+AD+f/gA/v/wgP9/8IEAf/gAAQA9P/SA5D/0gP7/9ID/f/SAAoABP/XAAn/1wFl/9cBZv/XAWj/1wFp/9cBav/XA03/1wNO/9cDUv/XAF4ABAALAAkACwBF/+sARv/rAEf/6wBJ/+sAUf/pAFP/6wCR/+sAlf/rALb/6wDD/+sAxP/rAPL/6wD+/+sBE//pARn/6wEd/+sBNf/rAUf/6wFI/+sBUv/rAWUACwFmAAsBaAALAWkACwFqAAsCE//rAhT/6wIV/+sCFv/rAhf/6wId/+kCHv/pAh//6QIg/+kCIf/pAi//6wIx/+sCM//rAjX/6wI3/+sCOf/rAjv/6wI9/+sCP//rAkH/6wJD/+sCRf/rAkf/6wJJ/+sCa//pAm3/6QJv/+kDEP/rAxb/6QMc/+kDNv/rAzj/6QM6/+sDPf/rA00ACwNOAAsDUgALA1z/6wNi/+sDZ//rA3X/6wN3/+sDeP/rA4L/6QOE/+sDhv/pA5X/6wOx/+sDs//rA7X/6wO3/+sDuf/rA7v/6wO9/+sDv//rA8X/6QPH/+kDyf/pA8v/6QPN/+kDz//pA9H/6QPT/+sD1f/rA9f/6wPZ/+kD2//rAAILPAAEAAAOBBVYACEAHQAAAAwAEf/f//T/zv/1/7P/7//Q/2r/iP+n//X/yf/ZABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/oAAAAAP/JAAD/5QAAAAAAAAAA//MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR/+UAAAAAAAAAAAAAAAD/5AAA/+MAAP/kAAAAEQAAABIAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4QAAAAAAAAAA/+oAAAAA/9UAAP/lAAAAAAAAAAAAAP/r/+r/6f+GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7f/mAAAAAAAAAAAAAAAAABT/7wAAAAAAAAAAAAAAAAAAAAD/7QAAAAAAAAAAAAAAAAAA/8T/y/98/7H/rv/kABAAAP+nABAAAAAQ/78AAAAP/34AAP+TAAAAAP7+/6f/s/+0/vD/8P+t/ygAAP+G/5L/DP9m/2H/vQAHAAD/VQAHAAAAB/9+AAAABf8PAAD/MwAAAAD+Nv9V/2r/a/4e/9H/XwAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2AAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAP+j/+X/2P/hAAAAAAAAAAAAAAAA/+kAAAAAAAAAAAAAAAAAAAAA/+YAAAAA/1wAAAAAAAAAAAAAAAAAAAAA/4X/5/8y/+gAAP7p/v7/M//yAAD/owAAAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9vAAD/8wAPAAAAAAAAAAAAAAAAAAAAAAAAAAD/pwAA/07/zf/c/mz/8wAAAAAAAAAA//X/SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/S//X/8wAAAAAAAAAAAAAAAP/kAAAAAAAAAAD/tQAAAAD/Kf/UAAAAAP9jAAD/0gAAAAAAAAAR/9H/6//h/+cADgAAAAAAAAAAAAD/6wAAAAAAEQAAAAAAAAAAAAD/5gAAAAD/ZAAAAAAAAAAA/+IAAAAA/7//7P/jABL/oP/YABIAAAAR/9kAAAARAAAAAP9qAA0AAP8Z/7//6f/G/2j/8P/B/6AAAAAAAAAAAP/hAAAAAAAAAAAAAAAAAAAADv/tAAAAAAAAAAD/1QAAAAD/cf/hAAAAAP/EAAD/3wAAAAAAAAAAAAD/6//l/+YAAAAAAAAAAAAAAAD/7QAAAAAAAAAAAA0AAAAAAAD/6wAAAAAAAAAAAAAAAAAAAAD/yv/p/70AAP/pAAAAAP+uABIAAAASAAAAAAAA/7sAAP+lAAAAAP53/70AAP/S/zkAAP+vAAAAAAAAAAAAAAAA//EAAAAAAAAAAAAA/+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//EAAAAAAAD/9QAAAAAAAAAAAAD/4wAAAAAAAAAA//IAAAAAAAAAAAAAAAD/8QAAAAAAAAAAAAAAAAAAAAAAAAAA//MAAAAAAAAAAAAA//IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAD/8QAAAAAAAAAAAAD/7AAAAAAAAAAA//AAAAAAAAAAAAAAAAD/6wAAAAAAAAAAAAAAAAAAAAAAAP/xAAAAAAAAAAAAAAAAAA8AAAAAAAAAAP/XAAAAAAAAAAD/Wf/zAAAAAAAAAAD/8QAAAAAAAAAAAAD/7AASAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAA/1P/7QAAAAAAAAAA/+wAAAAAAAAAAAAA/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAD/pQAAAAAAAAAA/+wAAP/bAAAAAAAAAAAAAAAA/4gAAAAAAAD/xQAA/6QAAAAA/84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/IAAAAAP+t/8D/nwAA/+cAAAAA/+sAAAAAAAAAAAAA/8kAAAAAAAAAAAAAAAAAAAAA/+MAAP+1AAAAAAAAAAAAAP95AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/rAAAAAAAAAAAAAAACAIsABAAEAAAACQAJAAEAEQARAAIAIwAoAAMAKgAzAAkANgA8ABMAQwBEABoARwBIABwASgBKAB4ATwBSAB8AVABUACMAWABYACQAWgBbACUAiACIACcAmQCZACgArACwACkAsgC0AC4AtgC2ADEAuAC4ADIAuwC8ADMAvgC+ADUAwADAADYAwgDHADcAzQDNAD0AzwDZAD4A2wDbAEkA3QDfAEoA4QDjAE0A5QDpAFAA7ADsAFUA8QDzAFYA9gD3AFkA+QD7AFsA/wEAAF4BBQEFAGABCAEIAGEBEwEVAGIBJwEpAGUBLAEsAGgBLgEuAGkBRQFFAGoBZQFmAGsBaAFqAG0BpgGmAHABqQGpAHEBqwGrAHIBsAGxAHMBtAG2AHUBuAG+AHgBxAHEAH8B1wHXAIAB2wHcAIEB3wHfAIMB6AHoAIQB7AHtAIUB7wHvAIcB8QISAIgCFAIXAKoCHAIhAK4CJgIuALQCMAIwAL0CMgIyAL4CNAI0AL8CNgI2AMACOAJBAMECSgJMAMsCTgJOAM4CUAJQAM8CUgJSANACVAJUANECVwJXANICWQJZANMCWwJbANQCXQJdANUCXwJfANYCYQJhANcCYwJvANgCcQJxAOUCcwJzAOYCdQJ1AOcCgAKAAOgCggKCAOkChAKEAOoChgKGAOsCiAKIAOwCigKKAO0CjAKMAO4CjgKOAO8CkAKQAPACkgKSAPEClAKXAPICmQKZAPYCmwKbAPcC+AL9APgDAAMPAP4DEgMSAQ4DFgMWAQ8DGAMYARADHAMcAREDHwMgARIDIgMrARQDLQMvAR4DMQM2ASEDOAM5AScDOwM+ASkDRANFAS0DRwNHAS8DSQNJATADSwNOATEDUgNXATUDWgNaATsDXANcATwDYANhAT0DZgNmAT8DaANxAUADdAN1AUoDdwN6AUwDgQOCAVADhgOGAVIDiAOOAVMDkwOUAVoDmAPAAVwDwgPCAYUDxAPRAYYD2QPZAZQD3APcAZUD3gPeAZYD6gPvAZcD8gPyAZ0D9AP0AZ4D9gP2AZ8D+AP5AaAD/gQBAaIEBAQEAaYEBgQHAacECQQJAakEDQQNAaoEDwQPAasEEwQTAawAAQAGAAoAKAAzADQAPQBIAAEALABIAE0AVgBZAF0AmQCwALIAswC0ALsAvgDAAMUAxwDIAMkAzQDPANAA0QDTANQA1gDeAN8A4gDjAOQA5QDmAOgA6gDsAPEA8wD2APcA+wD+AP8BAAEdAdwAAgB2AAQABAAAAAkACQABAA4ADgACABAAEAADACMAJwAEACoAMgAJADYAPAASAEMARQAZAEcARwAcAEoASgAdAE8AUgAeAFQAVAAiAFgAWAAjAFoAXAAkAIgAiAAnAKwArwAoALgAuAAsALwAvAAtAMIAwgAuAM8A0AAvANIA0gAxANUA1QAyANcA2QAzANsA2wA2AN0A3QA3AN8A3wA4AOEA4QA5AOcA5wA6AOkA6QA7APIA8gA8APcA9wA9APkA+gA+AP8BAABAAQUBBQBCAQgBCABDARMBFQBEAScBKQBHASwBLABKAS4BLgBLAUUBRQBMAWUBawBNAW8BcABUAewB7QBWAe8B7wBYAfECFwBZAhwCIQCAAiYCNgCGAjgCQQCXAkoCTAChAk4CTgCkAlACUAClAlICUgCmAlQCVACnAlcCVwCoAlkCWQCpAlsCWwCqAl0CXQCrAl8CXwCsAmECYQCtAmMCbwCuAnECcQC7AnMCcwC8AnUCdQC9AoACgAC+AoICggC/AoQChADAAoYChgDBAogCiADCAooCigDDAowCjADEAo4CjgDFApACkADGApICkgDHApQCnADIAvgC/QDRAwADDwDXAxIDEgDnAxYDFgDoAxgDGADpAxwDHADqAx8DIADrAyIDKwDtAy0DLwD3AzEDNgD6AzgDPgEAA0QDRQEHA0cDRwEJA0kDSQEKA0sDTgELA1IDVwEPA1oDWgEVA1wDXAEWA2ADYQEXA2YDcQEZA3QDdQElA3cDegEnA4EDggErA4YDhgEtA4gDjgEuA5MDlAE1A5gDwAE3A8IDwgFgA8QD0QFhA9kD2QFvA9wD3AFwA94D3gFxA+oD7wFyA/ID8gF4A/QD9AF5A/YD9gF6A/gD+QF7A/4EAQF9BAQEBAGBBAYEBwGCBAkECQGEBA0EDQGFBA8EDwGGBBMEEwGHAAIBOAAEAAQAHQAJAAkAHQAOAA4AHgAQABAAHgAkACQAAQAlACUABAAmACYAAwAnACcABQAqACsAAgAsACwADAAtAC0ACQAuAC4ACgAvADAAAgAxADEAAwAyADIACwA2ADYABgA3ADcADAA4ADgADQA5ADkAEAA6ADoADgA7ADsADwA8ADwAEQBDAEMAEwBEAEQAFQBFAEUAFABHAEcAFgBKAEoAFwBPAFAAFwBRAFEAGABSAFIAFQBUAFQAGgBYAFgAGQBaAFoAGwBbAFsAGQBcAFwAHACIAIgAFQCsAKwABwCuAK4AAwC4ALgAGQC8ALwAFwDCAMIAFQDPANAAHwDSANIAAgDVANUADgDXANgAAgDZANkAEgDbANsAAgDdAN0AAgDfAN8AHwDhAOEAHwDnAOcACADpAOkAGwDyAPIAFQD3APcAIAD5APkAIAD6APoAFQD/AQAAIAEFAQUAIAETARMAGAEUARQADQEVARUAGQEnAScAFQEoASgABwEpASkACAEsASwACQEuAS4ACQFFAUUACAFlAWYAHQFnAWcAHgFoAWoAHQFrAWsAHgFvAXAAHgHsAe0AAwHvAe8ABgH4AfgABAH5AfwABQH9AgEAAgICAgYAAwIHAgoADAILAgsADwIMAhIAEwITAhMAFAIUAhcAFgIcAhwAFwIdAiEAGAImAicAGQIpAikAEwIrAisAEwItAi0AEwIuAi4ABAIvAi8AFAIwAjAABAIxAjEAFAIyAjIABAIzAjMAFAI0AjQABAI1AjUAFAI2AjYAAwI4AjgABQI5AjkAFgI6AjoABQI7AjsAFgI8AjwABQI9Aj0AFgI+Aj4ABQI/Aj8AFgJAAkAABQJBAkEAFgJKAkoAAgJLAksAFwJMAkwAAgJOAk4AAgJQAlAAAgJSAlIAAgJUAlQAAgJXAlcADAJZAlkACQJbAlsACgJdAl0ACgJfAl8ACgJhAmEACgJjAmMAAgJkAmQAFwJlAmUAAgJmAmYAFwJnAmcAAgJoAmkAFwJqAmoAAwJrAmsAGAJsAmwAAwJtAm0AGAJuAm4AAwJvAm8AGAJxAnEAGgJzAnMAGgJ1AnUAGgKAAoAABgKCAoIABgKEAoQABgKGAoYADAKIAogADAKKAooADAKMAowADAKOAo4ADAKQApAADAKSApIAEAKUApQADwKVApUAGQKWApYADwKXApcAEQKYApgAHAKZApkAEQKaApoAHAKbApsAEQKcApwAHAL5AvkABQL6AvsAAgL8AvwAAwL9Av0ADwMBAwEAAQMCAwIABQMDAwMAEQMEAwUAAgMGAwYACQMHAwgAAgMJAwkAAwMKAwoACwMLAwsABgMMAwwADwMNAw0ADgMOAw4AAgMPAw8ADwMSAxIAFwMWAxYAGAMYAxgAGQMcAxwAGAMfAx8ABQMgAyAABwMiAyMAAgMkAyQADAMlAyYACQMnAycAEgMpAykAAQMqAyoABwMrAysABQMtAy4AAgMvAy8AAwMxAzEACwMyAzIABAMzAzMABgM0AzQADgM1AzUAEwM2AzYAFgM4AzgAGAM5AzkAFQM6AzoAFAM7AzsAGQM8AzwAGwM9Az0AFgM+Az4ACANEA0QAGQNFA0UAEANHA0cAEANJA0kAEANLA0sADwNMA0wAGQNNA04AHQNSA1IAHQNTA1MAAgNUA1QAFwNWA1YAEwNXA1cAAwNaA1oABQNcA1wAFgNgA2AADQNhA2EAGQNmA2YABANnA2cAFANoA2gADwNpA2kAGQNqA2oAAgNrA2sADgNsA2wAGwNtA20AAgNvA28AEwNxA3EAEwN0A3QABQN1A3UAFgN3A3gAFgN5A3kADgN6A3oAGwOBA4EAAwOCA4IAGAOGA4YAGAOIA4gAFQOJA4kAEgOKA4oAGQOLA4sAEgOMA4wAGQONA40AEgOOA44AGQOTA5MADgOUA5QAGwOZA5kAEwObA5sAEwOdA50AEwOfA58AEwOhA6EAEwOjA6MAEwOlA6UAEwOnA6cAEwOpA6kAEwOrA6sAEwOtA60AEwOvA68AEwOwA7AABQOxA7EAFgOyA7IABQOzA7MAFgO0A7QABQO1A7UAFgO2A7YABQO3A7cAFgO4A7gABQO5A7kAFgO6A7oABQO7A7sAFgO8A7wABQO9A70AFgO+A74ABQO/A78AFgPAA8AAAgPCA8IAAgPEA8QAAwPFA8UAGAPGA8YAAwPHA8cAGAPIA8gAAwPJA8kAGAPKA8oAAwPLA8sAGAPMA8wAAwPNA80AGAPOA84AAwPPA88AGAPQA9AAAwPRA9EAGAPZA9kAGAPcA9wADAPeA94ADAPqA+oADwPrA+sAGQPsA+wADwPtA+0AGQPuA+4ADwPvA+8AGQPyA/IACQP0A/QAAgP2A/YABgP4A/gADgP5A/kAGwP+A/4ABwP/A/8ACAQABAAADgQBBAEAGwQEBAQAFwQGBAYAHwQHBAcABwQJBAkACQQNBA0AAgQPBA8AAgQTBBMADwABAAQEFgALAAAAAAAAAAAACwAAAAAAAAAAABUAGQAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAGAAAAAAAAAAYAAAAAABwAAAAAAAAAAAAGAAAABgAAABoADAAIAAcADwATAAoAFAAAAAAAAAAAAAAAAAAbAAAAFgAWABYAAAAWAAAAAAAAAAAAAAAJAAkABAAJABYAAAAYAAAADQAFAAAAFwAFAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAWAAAAAAAGABYAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIABgASAAAAAAAAAAAAAAAAABYAAAAFAAAAAAAAAAkAAAAAAAAAAAAAAAAAFgAWAAAADQAAAAAAAAAAAAAAAAAMAAYAAgAAAAwAAAAAAAAAEwAAAAAAAgARAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAABcAAAAJAAkAEAAJAAkACQAAABYACQADAAkACQAAAAAACQAAAAkAAAAAABYAEAAJAAAAAAAGAAAAAAAAAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAGAAQABwAFAAYAAAAGABYABgAAAAYAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAkAAAAAAAYAFgAMAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAJAAAAFgAWAAAAAAAAAAAAAgAAAAAAAAAGABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQAZAAAACwALABUACwALAAsAFQAAAAAAAAAVABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAABIAEgASABIAEgASABIABgAAAAAAAAAAAAAAAAAAAAAAAAAGAAYABgAGAAYACAAIAAgACAAKABsAGwAbABsAGwAbABsAFgAWABYAFgAWAAAAAAAAAAAACQAEAAQABAAEAAQADQANAA0ADQAFAAUAEgAbABIAGwASABsABgAWAAYAFgAGABYABgAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAYAFgAGABYABgAWAAYAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAkAAAAJAAkABgAEAAYABAAGAAQAAAAAAAAAAAAAAAAAGgAYABoAGAAaABgAGgAYABoAGAAMAAAADAAAAAwAAAAIAA0ACAANAAgADQAIAA0ACAANAAgADQAPAAAACgAFAAoAFAABABQAAQAUAAEAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAYACgAAAAAAEgAAAAAAFAAAAAAAAAAAAAAABgAAAAAACgATAAAACgAWAAAACQAAAA0AAAAEAAAABQAAAAAADQAEAA0AAAAAAAAAAAAAAAAAHAAAAAAAEQASAAAAAAAAAAAAAAAAAAYAAAAAAAYADAATABsAFgAJAAQACQAWAAUAFwAWAAkAGAAAAAAAAAAJAAUADwAAAA8AAAAPAAAACgAFAAsACwAAAAAAAAALAAAACQASABsABgAAAAAAAAAAABYACQAAAAAABwAFABYABgAAAAAABgAWAAoABQAAABMAFwAAABIAGwASABsAAAAAAAAAFgAAABYAFgATABcAAAAAAAAACQAAAAkABgAEAAYAFgAGAAQAAAAAABEABQARAAUAEQAFAA4AAwAAAAkAEwAXABYAAgAQABIAGwASABsAEgAbABIAGwASABsAEgAbABIAGwASABsAEgAbABIAGwASABsAEgAbAAAAFgAAABYAAAAWAAAAFgAAABYAAAAWAAAAFgAAABYAAAAAAAAAAAAGAAQABgAEAAYABAAGAAQABgAEAAYABAAGAAQABgAWAAYAFgAGABYABgAEAAYAFgAIAA0ACAANAAAADQAAAA0AAAANAAAADQAAAA0ACgAFAAoABQAKAAUAAAAAAAAACQAAAAkADAAAABMAFwAOAAMADgADAAAACQATABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAACQAAAAkAAgAQAAoAAAAAAAAAAAAAABkAAAABAAAACgAsAI4AAURGTFQACAAEAAAAAP//AAgAAAABAAIAAwAEAAUABgAHAAhsaWdhADJsbnVtADhzbWNwAD5zczAxAERzczAyAEpzczAzAFBzczA0AFZzczA1AFwAAAABAAEAAAABAAIAAAABAAAAAAABAAMAAAABAAQAAAABAAUAAAABAAYAAAABAAcACAASABoAIgAqADIAOgBCAEoAAQAAAAEAQAAEAAAAAQH2AAEAAAABAgAAAQAAAAECEgABAAAAAQIQAAEAAAABAg4AAQAAAAECDAABAAAAAQIOAAICEADcAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AegBtQG2AbcBuAG5AboBuwG8Ab0BvgGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAHoAbUBtgG3AbgBuQG6AbsBvAG9Ab4C9wKiAqECogKjAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4C8wK/Ar8CwALAAsECwQLCAsICwwLDAsUCxQLGAsYCxwLHAsgCyALJAskCygLKAssCywLMAswCzQLNAs8CzwLQAtAC0QLRAtIC0gLTAtMC1ALUAtUC1gLWAtcC1wLYAtgC2QLZAtoC2gLbAtsC3ALcAt0C3QLeAt4C3wLfAuAC4ALhAuEC4gLiAuMC4wLkAuQC5QLlAuYC5gLnAucC6ALo/////wLqAuoC6wLrAuwC7ALtAu0C7gLuAu8C7wLwAvAC8QLxAvIC8gLzAvQC9AL1AvUC9gL2AqEAAQCkAAEACAABAAQBkgACAEsAAgCYAAoBmAHMAcQB1gHXAdgB2QHbAd0B5wABAIgBkQABAIgBKAABAIgBrgACAIgAAgHjAeQAAgB+AAIB5QHmAAIADQAjADwAAABDAFwAGgCDAIMANACFAIUANQHsAe0ANgHvAjEAOAI0AkUAewJIAlQAjQJXAmgAmgJqAnsArAJ+An8AvgKCApwAwAPwA/AA2wABAAEASAACAAEAEgAbAAAAAQABAEkAAQABALYAAQABADQAAQACAC0ATQ==",
 "Roboto-Regular.ttf":"AAEAAAAOAIAAAwBgR0RFRgsuCy8AASx0AAAASEdQT1OC3T4oAAEsvAAAkPhHU1VCeolvLwABvbQAAANsT1MvMrivKcMAAAFoAAAAYFZETVhu6nZPAAASOAAABeBjbWFwf76BZgAAGBgAAA7iZ2x5ZusE9WMAACb8AADUeGhlYWT1kQ7EAAAA7AAAADZoaGVhC3AJkwAAASQAAAAkaG10eJaDaacAAAHIAAAQcGxvY2EvrvnGAAD7dAAACDptYXhwBDsA9gAAAUgAAAAgbmFtZbs83bQAAQOwAAAEeXBvc3Tfb5xiAAEILAAAJEYAAQAAAAEAAHdFsyVfDzz1AAkIAAAAAADE8BEuAAAAAM2CsmH6jf3VCXQIYgAAAAkAAgAAAAAAAAABAAAHbP4MAAAJkvqN/dgJdAABAAAAAAAAAAAAAAAAAAAEHAABAAAEHACXABYAXQAFAAEAAAAAAAAAAAAAAAAAAwABAAMElwGQAAUAAAWaBTMAAAEfBZoFMwAAA9EAZgIAAAAAAAAAAAAAAAAA4AAC/1AAIFsAAAAgAAAAAHB5cnMAQAAA//0GAP4AAGYHmgIAIAABn08BAAAEOgWwAAAAIAACAfsAAAAAAAAB+wAAAfsAAAKPAGkE+wBGBH4AbgXcAGkE+QBEAWUAZwKhAIUCqgAIA3IAHASJAE4BkgAdAjUAJQIbAKIDTAASBH4AcgR+ANcEfgBdBH4AXgR+ADkEfgCaBH4AhwR+AE0EfgBmBH4AVAH4AKACAABKBBEASASAAJgELgCGA8cAOgcvAGEFSgAnBRcAtgUeAIMFaQC2BKoAtgSnALYFfgCFBbMAtgI/AMMEagA/BSQAtgRgALYHAwC2BbQAtgWQAIIFGQC2BZAAggVMALUE4wBaBMYAOwVoAJYFKQAnBw0ASAUJAEEE8gAeBMkAYQIfAJIDSAAoAh8ACQNYAEADnAAEAnkATwRiAHIEiACRBDsAYQSIAGQENwBiAr4AQgSIAGYEiACRAfwAoQIL/7YEEwCSAfwAoQcCAJAEiACRBIgAYASIAJEEiABkAsoAkQQrAGYCjAAdBIgAjQQCAC4GDgAwBAIALgQCABsEAgBeArUAQAHzAK8CtQATBXEAggHzAJAEYQBuBKYARgW0AGkE2AAgAesAkwToAFoD9ACpBkkAWwOTAHoDwQBmBG4AfwZKAFoDqgB4Av0AggRHAGEDXwBxA2gAaQKCAIEEiACaA+kAQgIWAKIB+wB0AiYAXgOjAHoDwABvBjYAtAaWALQG6wB7A+0AcQd6//IERABZBXIAcwS6AKYEwgCLBsEAPQSwAEwEkQBHBIkAYAScAJoFmwAeAfoAmwRzAJoEMwAmAioAIwWLAKQEiACRB6EAaQdEAGEB/ACgArn/5AV/AHEEkwBgBZAAlgTzAI0CA/+0BDcAYgPEAKkDjQCMA2oAgQIhAKACtQCLAioAMgPGAIIC/ABoAp0AtgAA/NoAAP13AAD8kwAA/V4AAPwnAAD9QwINAMMECwChAhcAogRzALUFpAAgBXIAcwU+ADQEkQB6BbUAtgSRAEUFuwBOBYkAXQVSAHIEhQBkBL0AoAQCAC4EiABgBFAAYwQlAG0EiACRBI8AegKXAMMEbgAlA+wAZQTFAE8EiACRBE0AZQSIAGAELABRBF0AjwWjAFcFmgBfBpcAegTwAHQEQv/nBkgASgX/ACsFZQCHCJkAMgikALUGggBABbQAtQULAKYGBAA0B0MAGwS/AFEFtAC2BakAMAUHAFEGLQBTBdkAtAV6AJcHhwC0B8AAtAYSABEG6wC1BQUApgVkALEHJwDDBRgAYwRsAGEEkgCdA1sAmgTUAC4GIAAVBBAAWASeAJwEUgCcBKAAKAXvAJ0EnQCcBJ4AnAPYACgFzQBkBL0AnARZAGcGeACcBp8AkQT3AB4GNgCdBFgAnQRNAGQGiACdBGQALwSJ/+cETgBsBskAJwbkAJwEif/9BJ4AnAcIAJ8GKwCBBFb/3AcsAMQF+QCZBNIAKgRGAA8HDADWBgwAvAbRAJYF4QCWCQUAwwfRAJsEJABQA9sATAVyAHMEjABgBQoAFwQDAC4FcgBzBIkAYAcBAJ8GJAB+BwkAnwYsAIEFMgB4BEcAZAT9AHQAAPxnAAD8cQAA/WYAAP2kAAD6jQAA+qQEVv/cBRsAtQSKAJEEZACmA5AAkQTbALUEBgCRBQkApgR+AJoGjABFBYQAPgfPALUFtACRCDEAtAb0AJEF7gBzBNMAbQctADQFXAAfBXAAlwRrAIMFcACOBi8ARwS+/+MFCQCmBFoAmgWyALUEiACRBYcAXwSoAGkEqABpBLcAOgNJADsE9gBZBpQAWQbkAGQGVgA2BSsAMQRKAFMECAB5B8EARQZ1AD8H+wCtBqEAkAT2AHkEHQBlBa0AJAUgAEYFZACbBBQAAAgpAAAEFAAACCkAAAK5AAACCgAAAVwAAAR/AAACMAAAAaIAAADRAAAAAAAABYgAswZ9ALsDpgANAZkAYAGZADABlwAkAZoAUALUAGAC2wA8AsEAJARpAEYEjwBXArIAigPEAKYFWgCmB6oARAJmAGwCZgBZA6MAOwOrAEgDYAB6BKYARgaRAKcEPgBPBegAewPOAGgIywCrBQEAZgUXAJgGuwBvB1AAawd/AGwG2wBrBKIATAWOAKkErwBFBJIAqATFAD8IOgBrAgz/tASCAGUELQCYBDYAngQ8AJkECAArAkwAxwKPAG4CAwBcBG4AHwAAAAAIMwBbCDUAXAQcAFwDjQBXBIAAcwML/6IB/P+2AiUAGwGRAGcDpACDA54AgQOfAIED9ABtBA4AaQPz/14D7wBuA6QAWwH9AJ8EtQApBHUAmwSPAHIEpgCbBEMAmwQdAJsEzwByBPYAmwH6AJsECwBBBF0AmwO5AJsF9ACbBRkAmwTLAHIE4QByBKkAmwRvAF0ELABHBQIAjAS4ACoGBQBBBIQAOAReACAEPgBOBHcAewJpAEID4QBaBBIAWQRkAEcEaQBdBC0AegO5AEcELQBcBCcASwInAF4DVQBxA2gAaQL8AEoDeQByA3oAewMMAF4DggByA2sAaQOkAHwDlgCPArUAngNHAG8EfgBeBH4AOQR+AJoEjwCHBDoAHgRCADsEbwBaBH4AZgTDAGQEiABgBUQAtgRiAHIFLwC1BSQAtgQTAJIFPQC2BA8AkgR+AFQEdQCbA2oAgQH7AAACNQAlBYcALgWHAC4EpgAGBMYAOwKM/+MFSgAnBUoAJwVKACcFSgAnBUoAJwVKACcFSgAnBR4AgwSqALYEqgC2BKoAtgSqALYCP//cAj8AwwI///ICP//MBbQAtgWQAIIFkACCBZAAggWQAIIFkACCBWgAlgVoAJYFaACWBWgAlgTyAB4EYgByBGIAcgRiAHIEYgByBGIAcgRiAHIEYgByBDsAYQQ3AGIENwBiBDcAYgQ3AGIB+v+1AfoAmwH6/8sB+v+lBIgAkQSIAGAEiABgBIgAYASIAGAEiABgBIgAjQSIAI0EiACNBIgAjQQCABsEAgAbBUoAJwRiAHIFSgAnBGIAcgVKACcEYgByBR4AgwQ7AGEFHgCDBDsAYQUeAIMEOwBhBR4AgwQ7AGEFaQC2BR4AZASqALYENwBiBKoAtgQ3AGIEqgC2BDcAYgSqALYENwBiBKoAtgQ3AGIFfgCFBIgAZgV+AIUEiABmBX4AhQSIAGYFfgCFBIgAZgWzALYEiACRAj//xQH6/54CP/+/Afr/mAI///UB+v/OAj8AIQH8AAACPwC3BqkAwwQHAKEEagA/AgP/tAUkALYEEwCSBGAAtgH8AKEEYAC2AfwAWwRgALYCkgChBGAAtgLYAKEFtAC2BIgAkQW0ALYEiACRBbQAtgSIAJEEiP/SBZAAggSIAGAFkACCBIgAYAWQAIIEiABgBUwAtQLKAJEFTAC1AsoAWAVMALUCygBpBOMAWgQrAGYE4wBaBCsAZgTjAFoEKwBmBOMAWgQrAGYE4wBaBCsAZgTGADsCjAAdBMYAOwKMAB0ExgA7ArQAHQVoAJYEiACNBWgAlgSIAI0FaACWBIgAjQVoAJYEiACNBWgAlgSIAI0FaACWBIgAjQcNAEgGDgAwBPIAHgQCABsE8gAeBMkAYQQCAF4EyQBhBAIAXgTJAGEEAgBeB3r/8gbBAD0FcgBzBIkAYASm//MEpv/zBCwARwS1ACkEtQApBLUAKQS1ACkEtQApBLUAKQS1ACkEjwByBEMAmwRDAJsEQwCbBEMAmwH6/7MB+gCbAfr/yQH6/6MFGQCbBMsAcgTLAHIEywByBMsAcgTLAHIFAgCMBQIAjAUCAIwFAgCMBF4AIAS1ACkEtQApBLUAKQSPAHIEjwByBI8AcgSPAHIEpgCbBEMAmwRDAJsEQwCbBEMAmwRDAJsEzwByBM8AcgTPAHIEzwByBPYAmwH6/5wB+v+WAfr/zAH6//cB+gCPBAsAQQRdAJsDuQCbA7kAmwO5AJsDuQCbBRkAmwUZAJsFGQCbBMsAcgTLAHIEywByBKkAmwSpAJsEqQCbBG8AXQRvAF0EbwBdBG8AXQQsAEcELABHBQIAjAUCAIwFAgCMBQIAjAUCAIwFAgCMBgUAQQReACAEXgAgBD4ATgQ+AE4EPgBOCN4AXQVKACcFDv/mBhcAEwKjABkFpABSBVb/jQVmAD8Cl//IBUoAJwUXALYEqgC2BMkAYQWzALYCPwDDBSQAtgcDALYFtAC2BZAAggUZALYExgA7BPIAHgUJAEECP//MBPIAHgSFAGQEUABjBIgAkQKXAMMEXQCPBHMAmgSIAGAEiACaBAIALgQCAC4Cl//TBF0AjwSIAGAEXQCPBpcAegSqALYEcwC1BOMAWgI/AMMCP//MBGoAPwUkALYFJAC2BQcAUQVKACcFFwC2BHMAtQSqALYFtAC2BwMAtgWzALYFkACCBbUAtgUZALYFHgCDBMYAOwUJAEEEYgByBDcAYgSeAJwEiABgBIgAkQQ7AGEEAgAbBAIALgQ3AGIDWwCaBCsAZgH8AKEB+v+lAgv/tgRSAJwEAgAbBw0ASAYOADAHDQBIBg4AMAcNAEgGDgAwBPIAHgQCABsBZQBnAo8AaQQeAKkEugBCAgP/tAGZADAHAwC2BwIAkAVKACcEYgByBZD/PgcsAEIHeABCBKoAtgW0ALYENwBiBJ4AnAWJAF0FmgBfBQoAFwQD//kIigBgCZIAggS/AFEEEABYBR4AgwQ7AGEE8gAeBAIALgI/AMMHQwAbBiAAFQI/AMMFSgAnBGIAcgVKACcEYgByB3r/8gbBAD0EqgC2BDcAYgWHAF8ENwBiBDcAYgdDABsGIAAVBL8AUQQQAFgFtAC2BJ4AnAW0ALYEngCcBZAAggSIAGAFcgBzBIwAYAVyAHMEjABgBWQAsQRNAGQFBwBRBAIAGwUHAFEEAgAbBQcAUQQCABsFegCXBFkAZwbrALUGNgCdBQkAQQQCAC4EiABkBakAMASgACgFSgAnBGIAcgVKACcEYgByBUoAJwRiAHIFSgAnBGL/rgVKACcEYgByBUoAJwRiAHIFSgAnBGIAcgVKACcEYgByBUoAJwRiAHIFSgAnBGIAcgVKACcEYgByBUoAJwRiAHIEqgC2BDcAYgSqALYENwBiBKoAtgQ3AGIEqgC2BDcAYgSq//gEN/+zBKoAtgQ3AGIEqgC2BDcAYgSqALYENwBiAj8AwwH6AJsCPwC3AfwAlgWQAIIEiABgBZAAggSIAGAFkACCBIgAYAWQAEwEiP/LBZAAggSIAGAFkACCBIgAYAWQAIIEiABgBX8AcQSTAGAFfwBxBJMAYAV/AHEEkwBgBX8AcQSTAGAFfwBxBJMAYAVoAJYEiACNBWgAlgSIAI0FkACWBPMAjQWQAJYE8wCNBZAAlgTzAI0FkACWBPMAjQWQAJYE8wCNBPIAHgQCABsE8gAeBAIAGwTyAB4EAgAbBKYAZASmAGQFJAC2BFIAnAWzALYEnQCcBMYAOwPYACgFCQBBBAIALgV6AJcEWQBnBXoAlwRZAGcEcwC1A1sAmgdDABsGIAAVBi8ARwS+/+MEiACRBQX/1AUF/9QEcwADA1v//AU4//UEJ//YBbQAtgSeAJwFswC2BJ0AnAcDALYF7wCdBakAMASgACgE8gAeBAIALgUJAEEEAgAuBFAAYwSnABsGfQC7AAAAAAIPAKkAAAABAAEBAQEBAAwA+Aj/AAgACP/+AAkACf/9AAoACv/9AAsAC//9AAwADP/9AA0ADf/8AA4ADv/8AA8AD//8ABAAEP/8ABEAEf/7ABIAEv/7ABMAE//7ABQAFP/7ABUAFP/6ABYAFf/6ABcAFv/6ABgAF//6ABkAGP/5ABoAGf/5ABsAGv/5ABwAG//5AB0AHP/4AB4AHf/4AB8AHv/4ACAAH//4ACEAIP/3ACIAIf/3ACMAIv/3ACQAI//3ACUAJP/2ACYAJf/2ACcAJv/2ACgAJ//2ACkAJ//1ACoAKP/1ACsAKf/1ACwAKv/1AC0AK//0AC4ALP/0AC8ALf/0ADAALv/0ADEAL//zADIAMP/zADMAMf/zADQAMv/zADUAM//yADYANP/yADcANf/yADgANv/yADkAN//xADoAOP/xADsAOf/xADwAOv/xAD0AOv/wAD4AO//wAD8APP/wAEAAPf/wAEEAPv/vAEIAP//vAEMAQP/vAEQAQf/vAEUAQv/uAEYAQ//uAEcARP/uAEgARf/uAEkARv/tAEoAR//tAEsASP/tAEwASf/tAE0ASv/sAE4AS//sAE8ATP/sAFAATf/sAFEATf/rAFIATv/rAFMAT//rAFQAUP/rAFUAUf/qAFYAUv/qAFcAU//qAFgAVP/qAFkAVf/pAFoAVv/pAFsAV//pAFwAWP/pAF0AWf/oAF4AWv/oAF8AW//oAGAAXP/oAGEAXf/nAGIAXv/nAGMAX//nAGQAYP/nAGUAYP/mAGYAYf/mAGcAYv/mAGgAY//mAGkAZP/lAGoAZf/lAGsAZv/lAGwAZ//lAG0AaP/kAG4Aaf/kAG8Aav/kAHAAa//kAHEAbP/jAHIAbf/jAHMAbv/jAHQAb//jAHUAcP/iAHYAcf/iAHcAcv/iAHgAc//iAHkAc//hAHoAdP/hAHsAdf/hAHwAdv/hAH0Ad//gAH4AeP/gAH8Aef/gAIAAev/gAIEAe//fAIIAfP/fAIMAff/fAIQAfv/fAIUAf//eAIYAgP/eAIcAgf/eAIgAgv/eAIkAg//dAIoAhP/dAIsAhf/dAIwAhv/dAI0Ahv/cAI4Ah//cAI8AiP/cAJAAif/cAJEAiv/bAJIAi//bAJMAjP/bAJQAjf/bAJUAjv/aAJYAj//aAJcAkP/aAJgAkf/aAJkAkv/ZAJoAk//ZAJsAlP/ZAJwAlf/ZAJ0Alv/YAJ4Al//YAJ8AmP/YAKAAmf/YAKEAmf/XAKIAmv/XAKMAm//XAKQAnP/XAKUAnf/WAKYAnv/WAKcAn//WAKgAoP/WAKkAof/VAKoAov/VAKsAo//VAKwApP/VAK0Apf/UAK4Apv/UAK8Ap//UALAAqP/UALEAqf/TALIAqv/TALMAq//TALQArP/TALUArP/SALYArf/SALcArv/SALgAr//SALkAsP/RALoAsf/RALsAsv/RALwAs//RAL0AtP/QAL4Atf/QAL8Atv/QAMAAt//QAMEAuP/PAMIAuf/PAMMAuv/PAMQAu//PAMUAvP/OAMYAvf/OAMcAvv/OAMgAv//OAMkAv//NAMoAwP/NAMsAwf/NAMwAwv/NAM0Aw//MAM4AxP/MAM8Axf/MANAAxv/MANEAx//LANIAyP/LANMAyf/LANQAyv/LANUAy//KANYAzP/KANcAzf/KANgAzv/KANkAz//JANoA0P/JANsA0f/JANwA0v/JAN0A0v/IAN4A0//IAN8A1P/IAOAA1f/IAOEA1v/HAOIA1//HAOMA2P/HAOQA2f/HAOUA2v/GAOYA2//GAOcA3P/GAOgA3f/GAOkA3v/FAOoA3//FAOsA4P/FAOwA4f/FAO0A4v/EAO4A4//EAO8A5P/EAPAA5f/EAPEA5f/DAPIA5v/DAPMA5//DAPQA6P/DAPUA6f/CAPYA6v/CAPcA6//CAPgA7P/CAPkA7f/BAPoA7v/BAPsA7//BAPwA8P/BAP0A8f/AAP4A8v/AAP8A8//AAAAAAwAAAAMAAAiEAAEAAAAAABwAAwABAAACJgAGAgoAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAEAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAMEGwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYAAAAfUB9gH4AfoCAQIGAgoCDQIMAg4CEAIPAhECEwIVAhQCFgIXAhkCGAIaAhsCHAIeAh0CHwIhAiACIwIiAiQCJQFsAG8AYgBjAGcBbgB1AIMAbQBpAX0AcwBoAYsAfwCBAYgAcAGMAY0AZQB0AYMBhQGEAMEBiQBqAHkAtQCEAIcAfgBhAGwBhwCTAYoArQBrAHoBcAADAfEB9AIFAJAAkQFiAWMBaQFqAWUBZgCGAY4CJwKWAXQBeQFyAXMBkgNQAW0AdgFnAWsBcQHzAfsB8gH8AfkB/gH/AgAB/QIDAgQAAAICAggCCQIHAIoAmgCgAG4AnACdAJ4AdwChAJ8AmwAEBl4AAADqAIAABgBqAAAAAgANACEAfgCgAKwArQC/AMYAzwDmAO8A/gEPAREBJQEnATABOAFAAVMBXwFnAX4BfwGSAaEBsAHwAfsB/wIZAhsCNwJZArwCxwLJAt0C8wMBAwMDCQMPAyMDigOMA5IDoQOwA7kDyQPOA9ID1gQlBC8ERQRPBGIEbwR5BIYEzgTXBOEE9QUBBRAFEx4BHj8ehR7xHvMe+R9NIAsgFSAeICIgJiAwIDMgOiA8IEQgdCB/IKQgpyCsIQUhEyEWISIhJiEuIV4iAiIGIg8iEiIaIh4iKyJIImAiZSXK7gL2w/sE/v///f//AAAAAAACAA0AIAAiAKAAoQCtAK4AwADHANAA5wDwAP8BEAESASYBKAExATkBQQFUAWABaAF/AZIBoAGvAfAB+gH8AhgCGgI3AlkCvALGAskC2ALzAwADAwMJAw8DIwOEA4wDjgOTA6MDsQO6A8oD0QPWBAAEJgQwBEYEUARjBHAEegSIBM8E2ATiBPYFAgURHgAePh6AHqAe8h70H00gACATIBcgICAlIDAgMiA5IDwgRCB0IH8goyCnIKshBSETIRYhIiEmIS4hWyICIgYiDyIRIhoiHiIrIkgiYCJkJcruAfbD+wH+///8//8AAQQY//UAAP/iAAD/wAAA/78AAAExAAABLAAAASgAAAEmAAABJAAAASIAAAEcAAABHgAA/wH+9P7nAWEAAAChAGQAZv5h/kAAlv3U/aX9xP2v/aP9ov2d/Zj9hQAA/3D/bwAAAAD9BQAA/1D8+fz2AAD8tQAA/K0AAPyiAAD8nAAA/p4AAP6bAAD8RQAA5VXlFeTF5PjkWeT25ArhVgAA4U3hTOFK4UHjG+E54xPhMOEB4PcAAODRAADgdeBo4GbgW9+P4FDgJN+B3qffdd90323fat9e30LfK98o28QTjgrOAAAClAGYAAEAAAAAAAAA5AAAAOQAAADiAAAA4AAAAOoAAAEUAAABLgAAAS4AAAEuAAABOgAAAVwAAAFoAAAAAAAAAAABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAAAAFMAWgAAAGAAAAAAAAAAZgAAAHgAAACCAAAAioAAAI6AAACxAAAAtQAAALoAAAAAAAAAAAAAAAAAAAAAALcAAAAAAAAAAAAAAAAAAAAAAAAAAACzAAAAswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqYAAAAAAAAAAwQbAeoB6wHxAfIB8wH0AfUB9gB/Ae0CAQICAgMCBAIFAgYAgACBAgcCCAIJAgoCCwCCAIMCDAINAg4CDwIQAhEAhACFAhwCHQIeAh8CIAIhAIYAhwIiAiMCJAIlAiYAiAHsA/AAiQHuAIoCVQJWAlcCWAJZAloAiwCMAI0CYwJkAmUCZgJnAmgCaQCOAI8CagJrAmwCbQJuAm8AkACRAn4CfwKCAoMChAKFAe8B8ACSAfcCEgCpAKoC+ACrAvkC+gL7AKwArQMCAwMDBACuAwUDBgCvAwcDCACwAwkAsQMKALIDCwMMALMDDQC0ALUDDgMPAxADEQMSAxMDFAMVAL8DFwMYAMADFgDBAMIAwwDEAMUAxgDHAxkAyADJA1oDHwDNAyAAzgMhAyIDIwMkAM8A0ADRAyYDWwMnANIDKADTAykDKgDUAysA1QDWANcDLAMlANgDLQMuAy8DMAMxAzIDMwDZANoDNAM1AOUA5gDnAOgDNgDpAOoA6wM3AOwA7QDuAO8DOADwAzkDOgDxAzsA8gM8A1wDPQD9Az4A/gM/A0ADQQNCAP8BAAEBA0MDXQNEAQIBAwEEBAYDXgNfARIBEwEUARUDYANhA2MDYgEjASQECwQMBAUBJQEmAScBKAEpBAcECAEqASsEAAQBA2QDZQPyA/MBLAEtBAkECgEuAS8D9AP1ATABMQEyATMBNAE1A2YDZwP2A/cDaANpBBMEFAP4A/kBNgE3A/oD+wE4ATkBOgQEATsBPAQCBAMDagNrA2wBPQE+BBEEEgE/AUAEDQQOA/wD/QQPBBABQQN3A3YDeAN5A3oDewN8AUIBQwP+A/8DkQOSAUQBRQOTA5QEFQQWAUYDlQQXA5YDlwFiAWMEGQQYAXcD8QF5AZIDUANYA1kABAZeAAAA6gCAAAYAagAAAAIADQAhAH4AoACsAK0AvwDGAM8A5gDvAP4BDwERASUBJwEwATgBQAFTAV8BZwF+AX8BkgGhAbAB8AH7Af8CGQIbAjcCWQK8AscCyQLdAvMDAQMDAwkDDwMjA4oDjAOSA6EDsAO5A8kDzgPSA9YEJQQvBEUETwRiBG8EeQSGBM4E1wThBPUFAQUQBRMeAR4/HoUe8R7zHvkfTSALIBUgHiAiICYgMCAzIDogPCBEIHQgfyCkIKcgrCEFIRMhFiEiISYhLiFeIgIiBiIPIhIiGiIeIisiSCJgImUlyu4C9sP7BP7///3//wAAAAAAAgANACAAIgCgAKEArQCuAMAAxwDQAOcA8AD/ARABEgEmASgBMQE5AUEBVAFgAWgBfwGSAaABrwHwAfoB/AIYAhoCNwJZArwCxgLJAtgC8wMAAwMDCQMPAyMDhAOMA44DkwOjA7EDugPKA9ED1gQABCYEMARGBFAEYwRwBHoEiATPBNgE4gT2BQIFER4AHj4egB6gHvIe9B9NIAAgEyAXICAgJSAwIDIgOSA8IEQgdCB/IKMgpyCrIQUhEyEWISIhJiEuIVsiAiIGIg8iESIaIh4iKyJIImAiZCXK7gH2w/sB/v///P//AAEEGP/1AAD/4gAA/8AAAP+/AAABMQAAASwAAAEoAAABJgAAASQAAAEiAAABHAAAAR4AAP8B/vT+5wFhAAAAoQBkAGb+Yf5AAJb91P2l/cT9r/2j/aL9nf2Y/YUAAP9w/28AAAAA/QUAAP9Q/Pn89gAA/LUAAPytAAD8ogAA/JwAAP6eAAD+mwAA/EUAAOVV5RXkxeT45Fnk9uQK4VYAAOFN4UzhSuFB4xvhOeMT4TDhAeD3AADg0QAA4HXgaOBm4Fvfj+BQ4CTfgd6n33XfdN9t32rfXt9C3yvfKNvEE44KzgAAApQBmAABAAAAAAAAAOQAAADkAAAA4gAAAOAAAADqAAABFAAAAS4AAAEuAAABLgAAAToAAAFcAAABaAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAAAABTAFoAAABgAAAAAAAAAGYAAAB4AAAAggAAAIqAAACOgAAAsQAAALUAAAC6AAAAAAAAAAAAAAAAAAAAAAC3AAAAAAAAAAAAAAAAAAAAAAAAAAAAswAAALMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKmAAAAAAAAAAMEGwHqAesB8QHyAfMB9AH1AfYAfwHtAgECAgIDAgQCBQIGAIAAgQIHAggCCQIKAgsAggCDAgwCDQIOAg8CEAIRAIQAhQIcAh0CHgIfAiACIQCGAIcCIgIjAiQCJQImAIgB7APwAIkB7gCKAlUCVgJXAlgCWQJaAIsAjACNAmMCZAJlAmYCZwJoAmkAjgCPAmoCawJsAm0CbgJvAJAAkQJ+An8CggKDAoQChQHvAfAAkgH3AhIAqQCqAvgAqwL5AvoC+wCsAK0DAgMDAwQArgMFAwYArwMHAwgAsAMJALEDCgCyAwsDDACzAw0AtAC1Aw4DDwMQAxEDEgMTAxQDFQC/AxcDGADAAxYAwQDCAMMAxADFAMYAxwMZAMgAyQNaAx8AzQMgAM4DIQMiAyMDJADPANAA0QMmA1sDJwDSAygA0wMpAyoA1AMrANUA1gDXAywDJQDYAy0DLgMvAzADMQMyAzMA2QDaAzQDNQDlAOYA5wDoAzYA6QDqAOsDNwDsAO0A7gDvAzgA8AM5AzoA8QM7APIDPANcAz0A/QM+AP4DPwNAA0EDQgD/AQABAQNDA10DRAECAQMBBAQGA14DXwESARMBFAEVA2ADYQNjA2IBIwEkBAsEDAQFASUBJgEnASgBKQQHBAgBKgErBAAEAQNkA2UD8gPzASwBLQQJBAoBLgEvA/QD9QEwATEBMgEzATQBNQNmA2cD9gP3A2gDaQQTBBQD+AP5ATYBNwP6A/sBOAE5AToEBAE7ATwEAgQDA2oDawNsAT0BPgQRBBIBPwFABA0EDgP8A/0EDwQQAUEDdwN2A3gDeQN6A3sDfAFCAUMD/gP/A5EDkgFEAUUDkwOUBBUEFgFGA5UEFwOWA5cBYgFjBBkEGAF3A/EBeQGSA1ADWANZAAAAAgBpBBQCHwYYAAUACgAAAQMjEzUzBQMjETMCHy9eAYz+1i9djAWN/ocBd42L/ocCBAAAAAIARgAABKIFsAAbAB8AAAEhAyMTIzUhEyE1IRMzAyETMwMzFSMDMxUjAyMDIRMhAsz++FCPUO8BCUb+/QEeUY9RAQhRkFHL5kbh+1CQngEIRv74AZr+ZgGahwFmiQGg/mABoP5gif6ah/5mAiEBZgABAG7/MAQRBpsAKwAAATQmJy4BNTQ2NzUzFR4BFSM0JiMiBhUUFhceARUUBgcVIzUuATUzFBYzMjYDWH+bz8m8qpWst7iAeHx5eabRwsu3lLDduaB4hpMBdl1/ND/GrajMFdrbGOnOjKh8bmV3OES/rK/IEr+/EdPZoIJ8AAAAAAUAaf/rBYMFxQANABsAKQA3ADsAABM0NjMyFh0BFAYjIiY1MxQWMzI2PQE0JiMiBhUBNDYzMhYdARQGIyImNTMUFjMyNj0BNCYjIgYVBScBF2mgioqhoImLoYtST01RUk5OUQI6oIqKoaCJi6GLUk9OUVJPTlH+EmgCx2gEmIKrq4JNgaqqgU1nZ01NTWlpTfzNgaurgU6CqqqCTWhnTk5NaGhN9kEEckEAAAADAET/6wTRBcUAIAArADgAABM0NjcuATU0NjMyFhUUBg8BAT4BNTMUBgcXIycOASMiJgUyNjcBBw4BFRQWAxQWFzc+ATU0JiMiBkSMj1BKvayfvmVmcwFcLC+mTEu+3VtTv2zc+wHXTI5A/o8qYTyQDzc4kDopYFJXWQGGfLRgYptUq7OxgmOLS1X+XkSdXIXcW+NsQEHgSzIyAbofSXw0dJID6Td0R2QnWTdAXXAAAAEAZwQjAP0GGAAFAAATAyMTNTP9OV0BlQWo/nsBdYAAAQCF/ioClQZqAA8AABMQADcXBgIRFRASFwcmABGFATW1Jo3KyY4mtv7MAk8BjwInZXhs/iz+nw7+n/4sdW9mAiQBkQABAAj+KgIYBmoADwAAARAAByc2EhE1EAInNxYAEQIY/su0J4vM0oUntAE1AkX+b/3cZm9rAd0BYg4BXAHfb29m/dn+cgAAAAABABwCYgNVBbAADgAAASU3BQMzAyUXBRMHCwEnAUr+0i4BLgmZCgEpLv7Nxny6tH0D2FuUcAFZ/qFwllz+8F0BIf7mWgAAAAABAE4AkgQ0BLYACwAAASEVIREjESE1IREzAp4Blv5quv5qAZa6Awus/jMBzawBqwABAB3+zAE0ANoACQAAJRQGByc+AT0BMwE0XFJpMC65RmTPR0hJkVWXAAAAAAEAJQIhAg0CtgADAAABITUhAg3+GAHoAiGVAAABAKIAAAFeAMUAAwAAISM1MwFevLzFAAABABL/gwMQBbAAAwAAFyMBM7GfAmCefQYtAAAAAgBy/+sEDAXFAA0AGwAAARACIyICGQEQEjMyEhEnNCYjIgYVERQWMzI2NQQM8dva9PLa2/O5i4qJioyJiokCLP7j/twBJQEcAVcBHAEm/tr+5CjEwMDE/lvEwsDGAAAAAQDXAAACuQWwAAUAACEjEQU1JQK5uf7XAeIE3Ah3ZQABAF0AAAQjBcUAGAAAKQE1AT4BNTQmIyIGFSM0NjMyFhUUBgcBIQQj/FYB3YRagXCckbn+6MbljIP+eQLLgwITkqdacpSakcP+4LV56ZD+VwAAAAABAF7/6wP6BcUAKAAAATMyNjU0JiMiBhUjNDYzMhYVFAYHHgEVFAQjIiQ1MxQWMzI2NTQmKwEBhqeKc36BeY659srO6m5wh27/AM7K/vy6koKFkISQpwMwhHiBgoh0reXTyl2wMCu2dcvf1cF3ioeKi4AAAAIAOQAABFEFsAAKAA8AAAEzFSMRIxEhNQEzASERIwcDhM3NuP1tAofE/X0BywMbAeiV/q0BU2sD8vw4AslGAAABAJr/6wQRBbAAHgAAGwEhFSEDPgE3NhIVFAIjIiY1MxQWMzI2NTQmIyIGB7FUAtX9xzAwclHK4+TlvPKvi3SEjI2AemwaApEDH6n+XCUtAgL+++Tg/vvHzXyDr5+Rs0ZMAAAAAgCH/+sEMwXFABoAJwAAATIWFwcuASMiBh0BPgEzMhIVFAIjIgAZARAAEyIGBxUUFjMyNjU0JgKfTJEyKDRpSqC/QaVjx+Pz0Nj+7wEwqWqRJaqGgIqSBcUiG5EaHvXOIjtB/vfV5f7oAS8BHgEfARsBU/1zVUpzztjMnJa6AAABAE0AAAQiBbAADAAAAQACAwcjNxoBEyE1IQQi/ve+KQ+6Dyvw2PziA9UFGv7B/hv+o5mZAWICFwEIlgADAGb/6wQYBcUAGAAkADAAAAEUBgceARUUBCMiJDU0Njc1LgE1NDYzMhYDNCYjIgYVFBYzMjYDNCYjIgYVFBYzMjYD8H9vgZX+/tba/wCRf2166cbD75Gif4Kdm4aBnimKbnCGh3FvhwQ1dakrLbh+zdHQzn65LAMpqXTEzM38lXuamXyAjY4DI3COiXVzhoYAAAAAAgBU/+sD/QXFABsAKAAAJTI2PQEnDgEjIgI1NAAzMgAZARAAIyImJzceARMyNjc1NCYjIgYVFBYB/5auAzCWXtfxAQLA5gEB/uroT5tCHT9+b3KUIZWSdJqOgNbaLAFJSgED8egBH/7q/uf+nP7g/tkcH5AeGAHfYE2cxcLMpaG+AAD//wCgAAABXQQ6ACYAEP4AAAcAEP//A3X//wBK/swBYQQ6ACcAEAAAA3UABgAOLQAAAQBIAMUDegRJAAkAAAEHFRcFFQE1ARUBQk9PAjj8zgMyApsUBBTpwQF7jwF6wQAAAgCYAZAD2gPNAAMABwAAASE1IREhNSED2vy+A0L8vgNCAy+e/cOeAAEAhgDGA9wESgAJAAATNQEVATUlNzUnhgNW/KoCXFJSA4+7/oaP/oW88hUDFgAAAAIAOgAAA28FxQAZAB0AAAE+ATc+ATU0JiMiBhUjPgEzMhYVFAYHDgEVEyM1MwFnAS1mZlRybmGAugLjtsbUiXg4FgjExAGZk2pddn5db3JlZKnAxbeE0HQ2VF7+Z8sAAAIAYf47BtgFlgAzAEMAAAEGAiMiJicOASMiJjcaATMyFhcHMwMGFjMyNjcSACEgAAMCACEyNjcXDgEjIAATEgAhIAABBhYzMjY3PAE3Ey4BIyIGBscJ2d9LaRY0jmKBhxIY4qhqekwEBjMJPzSAlAkR/sP+pv7E/ogQEgFOAURasUAlRctk/n3+aBITAcYBfAGEAYz78AxDT0RuLgIvGzwigYgB99r+zlROU0/tyAEIATMzNwT9uHJT4rUBhwGj/jj+hf6A/lAqJGgrLgHqAbkBrwIJ/hf985KVNUYQFQwCGg0Q2QAAAAACACcAAAUiBbAABwAKAAABIQMjATMBIwEhAwPY/ZuPvQIyoAIpvf1FAfj6AYT+fAWw+lACGQKyAAMAtgAABKkFsAAPABgAIQAAMxEhMhYVFAYHFR4BFRQGIwERITI2NTQmIyUhPgE1NCYjIbYB0+j9eWODlP7h/qUBW42ZgYn+iQFMc4eXlf7mBbDByGSYJAMbx4jLzwKt/eiFfoOSlQN3b3p1AAEAg//rBMkFxQAbAAABBgAjIgAZARAAMzIEFyMuASMiAhURFBIzMjY3BMkY/u/x/P7QATD89QENGLkZo6Wsx8espqIZAc3c/voBWAEUAQEBEwFa/eimqf73zP79zv73pKkAAAACALYAAATnBbAACQATAAAzESEgABEVEAAhAxEzMhI9ATQmI7YBuwEiAVT+qP7Q8PDo5uLaBbD+pv7kxf7i/qkFGvt7AQXbx9//AAAAAQC2AAAEdQWwAAsAAAEhESEVIREhFSERIQQP/WADBvxBA7X9BAKgAqb975UFsJb+IgAAAAEAtgAABHMFsAAJAAABIREjESEVIREhBA39YrkDvfz8Ap4CiP14BbCW/gQAAQCF/+sE2wXFAB8AACUOASMgABkBEAAhMgQXIy4BIyIGFREUFjMyNjcRITUhBNs0/c/+9/6zATcBAPgBCB+5GqOpr87kuIKiI/62AgO/UIQBSgEPASkBDwFJ7c6HnvnH/tXJ+0IsAVCVAAAAAQC2AAAE/QWwAAsAACEjESERIxEzESERMwT9uf0rubkC1bkChv16BbD9awKVAAAAAQDDAAABfAWwAAMAACEjETMBfLm5BbAAAQA//+sDwAWwAA8AAAEzERQGIyImNTMUFjMyNjUDB7nyx9XzuYqFco4FsPvkyOHS1IyFlIAAAAABALYAAAUcBbAADAAAASMRIxEzETMBMwkBIwIfsLm5nwIR1P3DAmbjApT9bAWw/XkCh/0+/RIAAAEAtgAABCUFsAAFAAAlIRUhETMBbwK2/JG5lZUFsAAAAQC2AAAGTQWwABAAAAkCMxEjERMjASMBIxMRIxEBpAHdAd7uuRMD/ht8/hwDE7kFsPtPBLH6UAJHAmP7VgSo/Z/9uQWwAAAAAQC2AAAE/gWwAAsAACEjASMRIxEzATMRMwT+uf0tA7m5AtMDuQR7+4UFsPuGBHoAAgCC/+sFDQXFAA0AGwAAARAAISAAGQEQACEgABEnNAIjIgIVERQSMzISNQUN/rv+9v7+/sYBOgECAQoBRbnavLTPz7S92QJX/vT+oAFgAQwBAQELAWL+nv71AskBBv76yf79y/76AQXMAAAAAgC2AAAExAWwAAoAEwAAAREjESEyFhUUBiMlITI2NTQmIyEBb7kCJO39/e3+lQFrnJWVnP6VAkr9tgWw68jK6ZWffX6hAAAAAgCC/wwFDQXFABMAIQAAARQCBxcHJQ4BIyAAGQEQACEgABEnNAIjIgIVERQSMzISNQUNfHPuf/7yL18z/v7+xgE6AQIBCgFFudq8tM/PtL3ZAleh/vtW3HP9DhABYAEMAQEBCwFi/p7+9QLJAQb++sn+/cv++gEFzAAAAAIAtQAABOIFrwAaACMAAAERIxEhMhYVFAYHHgEdARQWFxUjLgE9ATQmIyUhMjY1NCYjIQFuuQIK8/d5dXtpHiW/KBaMfP6RAT6vlZKf/q8Cev2GBa/PznKkMiirhIlGaSMYI4NGhXqPlYCFf4cAAAABAFr/6wSKBcUAJQAAATQmJy4BNTQkMzIAFSM0JiMiBhUUFhceARUUBCMiJDUzFBYzMjYD0JbH7P4BE+HxARi5rKSboKnI6u3+5evf/rW5056csAFuaIUxONClrd/+/raEnoVuYn8xO9ins9Loz5GRfgAAAAEAOwAABIoFsAAHAAABIREjESE1IQSK/jW5/jUETwUa+uYFGpYAAAABAJb/6wTXBbAAEQAAAREUBCMiJDURMxEUFjMyNjURBNf+0vv0/ty6vaGpxwWw/CXy+PjyA9v8JauqqqsD2wAAAQAnAAAFAgWwAAkAAAEXMzcBMwEjATMCciEEIQGCyP3jof3jyQFednYEUvpQBbAAAQBIAAAGwgWwABUAAAEXMzcBMwEXMzcTMwEjAScjBwEjATMB0x8DLAERpQETKwMhz7r+rqb+2x0DHf7Xpv6vuQHvysoDwfw/zMwDwfpQA/2RkfwDBbAAAAEAQQAABNAFsAALAAAJATMJASMJASMJATMChgFg3/4vAdzc/pb+l+AB3P4v3gNzAj39Lv0iAkj9uALeAtIAAAABAB4AAATTBbAACAAACQEzAREjEQEzAngBh9T9/rj+BdQCvgLy/FL9/gIPA6EAAAABAGEAAARtBbAACQAAJSEVITUBITUhFQE1Azj79AMU/PkD3pWVjQSNlogAAAEAkv7IAgsGgAAHAAABIxEzFSERIQILv7/+hwF5Ber5dJYHuAAAAAABACj/gwM4BbAAAwAAEzMBIyiwAmCwBbD50wAAAQAJ/sgBgwaAAAcAABMhESE1MxEjCQF6/obBwQaA+EiWBowAAQBAAtkDFAWwAAkAABMjATMBIwMnIwfsrAErfwEqq6sTBBMC2QLX/SkBqlVVAAAAAQAE/2sDmAAAAAMAAAUhNSEDmPxsA5SVlQAAAAEATwS7AeQFxQADAAABIwMzAeSY/eIEuwEKAAACAHL/7APsBE4AHwAqAAAhLgEnDgEjIiY1NDY7ATU0JiMiBhUjNDYzMhYVERQWFyUyNjc1IyIGFRQWAy0KCgI6rGerrfjc0XpxaYG57r+73wwQ/flopSXXgZRdM0IkTGGpmZ6sbmNvY0d9w7iy/fY6ajaLYEbHeVVLVAAAAgCR/+wEJQYYABIAIAAAARQCIyImJwcjETMRFz4BMzISESM0JiMiBgcRHgEzMjY1BCXbyW2cNRKgugMylmnL27mKkWF/Jid/YpGIAfXw/udSUpAGGP2gAUpN/sb+9sDqWk/+JVBaxqkAAAAAAQBh/+wD8gROABsAACUyNjczDgEjIgI9ATQSMzIWFyMuASMiBh0BFBYCQ2eXAbAB/6/u9PTuv+8BsAGOcKGHhoF4XJTVAS/tKuwBMNysaIrfpyqr3AAAAAIAZP/sA/AGGAASACAAABMQEjMyFhc3ETMRIycOASMiAjUzFBYzMjY3ES4BIyIGFWTazGSSNAO5oRA2mGnJ27mHkl56KSh8W5OIAgoBCgE6SEYBAlf56IdOTQEa76rFUkwB9khS6sAAAgBi/+wD6QROABUAHQAABSIAPQE0ADMyEh0BIR4BMzI2NxcOAQMiBgchNTQmAk7k/vgBD7/c3f0zBJ2RZZM7STu5pmmRFAIOgBQBJ/Qt7AEu/v7geabMODN7OksDzKmHGnmdAAEAQgAAAs4GLQAXAAAzESM1MzU0NjMyFhcHLgEjIgYdATMVIxHsqqqvoyJDKxcTMh1aVebmA62Ni6+5CwqRBQZoZYuN/FMAAAIAZv5MA/cETgAeACwAABMQEjMyFhc3MxEUBiMiJic3HgEzMjY9AScOASMiAjUzFBYzMjY3ES4BIyIGFWbezWqYNhKc8uRUs00vQpVMk4wDNJRkyt+5ipNeeyknfF2TjAIKAQoBOlJRj/vU1uwsKoohKZ2PaQFGRgEa76nGU04B8EpT678AAAABAJEAAAP6BhgAFAAAARc+ATMyFhURIxE0JiMiBgcRIxEzAUsDN6Jnsbu5dHdXiCy6ugOnAVBYzN39WwKnjYBSSPzmBhgAAAACAKEAAAFaBhgAAwAHAAAhIxEzESM1MwFaubm5uQQ6ARjGAAAC/7b+SwFnBhgADwATAAABERQGIyImJzceATMyNjUREyM1MwFnp5sgMh0ODzURRk+zubkEOvttqrIJCZYFCFpnBJMBHMIAAAABAJIAAAQUBhgADAAAASMRIxEzETMBMwkBIwHNgbq6fgE72/6GAa7bAfb+CgYY/HUBrf4T/bMAAAEAoQAAAVoGGAADAAAhIxEzAVq5uQYYAAEAkAAABnIETgAkAAABHwE+ATMyFhc+ATMyFhURIxE0JiMOAQcVESMRNCYjIgYHESMRATcNAzShcHGaJzSndam7um9xb4ALunJwYXcgugQ6kAFPVmVqYW7c6P12AoulhAGSbwH9TwKNnYpQSvzmBDoAAAAAAQCRAAAD+AROABQAAAEfAT4BMzIWFREjETQmIyIGBxEjEQE4DQM1o2uxvLpxeVuFKboEOqIBV2DI2/1VAqeVeFZN/O8EOgAAAgBg/+wEJwROAA0AGwAAEzQAMzIAHQEUACMiADUzFBYzMjY9ATQmIyIGFWABAOLkAQH/AOPk/wC6lJaUlpeVlJQCKPUBMf7P9Rj2/tIBLvax3t+wGK7i4q4AAAACAJH+YAQkBE4AEgAgAAABFAIjIiYnBxEjETMXPgEzMhIRIzQmIyIGBxEeATMyNjUEJNvJZ5Y1A7qfEjaaa8zbupCTW3smKHldko8B9fD+50NDAf3vBdqKTlD+x/71v+tQRv32R0zLqQAAAAACAGT+YAPmBE4AEgAgAAATEBIzMhYXNzMRIxEnDgEjIgI1MxQWMzI2NxEuASMiBhVk2sxkkzYPoLkDNI5gydu5h5JYdikpd1WTiAIKAQoBOklIffomAgoBQD8BGu+qykpGAhpCS+3BAAEAkQAAArEETgAQAAABJyIGBxEjETMfAT4BMzIWFwKYbFVuHrqmEgMtiFwYLw0DkwZOSfz+BDqdAVReBwQAAAABAGb/7APCBE4AJQAAATQmJy4BNTQ2MzIWFSM0JiMiBhUUFhceARUUBiMiJjUzHgEzMjYDCWSRyMHatsDcuXppbmlaks/D47/R6bkGlGdweQEeRFUfK5CBhra/kkpxXUNDSR8tlIGSrc2TbV5VAAAAAQAd/+wCTgVBABcAAAERMxUjERQWMzI2NxcOASMiJjURIzUzEQFy0NA2LxgxFRkaXS5xgJubBUH++Y39alA/BwaDERWNngKWjQEHAAEAjf/sA/YEOgAUAAAlJw4BIyImNREzERQWMzI2NxEzESMDQwMynm20wrpocXCJJLmmngFXXN30An39gbKDV1MDCvvGAAAAAAEALgAAA98EOgAJAAABFzM3ATMBIwEzAfIWAxcBAL3+cI3+bL0BOl1dAwD7xgQ6AAEAMAAABdgEOgAVAAABHwE3EzMTFzM3EzMBIwMnIwcDIwEzAaAbAyHaltojAyKvuP7GltYvAy3Sl/7GuQGGlgGXArT9TKSkArT7xgKbwcH9ZQQ6AAEALgAAA88EOgALAAABEzMJASMLASMJATMB/PDY/p8BbNX6+tgBbf6e1gKnAZP96f3dAZ7+YgIjAhcAAAEAG/5LA+QEOgAVAAABFzMBMwEOASMiJic3JhYzMjY/AQEzAdkmAwETz/42KZSEGEYUEwNOC0M+LjH+a88BhpADRPsfb58LBZUBBktrdQQkAAAAAAEAXgAAA7gEOgAJAAAlIRUhNQEhNSEVAT4CevymAlH9twMulZWFAx6XgQAAAQBA/pACngY9AB4AAAEuAT0BNCYjNTI2PQE0NjcXDgEdARQGBx4BHQEUFhcCeMSgZm5uZp/FJnNeUldXUl5z/pA4667Pc3yPenTQrus4cSWziNBrni0unmrPh7MlAAAAAQCv/vIBRAWwAAMAAAEjETMBRJWV/vIGvgAAAAEAE/6QAnIGPQAeAAAXPgE9ATQ2Ny4BPQE0Jic3HgEdARQWMxUiBh0BFAYHE3JgV19fV19yJsSgZW9vZaDE/iWzh89unCsqnm/QiLMlcTjqr9B0eo98c8+u6zgAAQCCAZME7wMhABkAAAEUBiMiJicuASMiBhUnNDYzMhYXHgEzMjY1BO+qg1uOWjxhNEZfh6eFWpJXPGA1RWEC5IvGQUsyMGpPEoq9REg1LXJRAAAAAgCQ/ooBTQQ6AAMABwAAASMRMxMjNTMBS7m5Ar29/ooD0gESzAAAAAEAbv8LA/8FJgAhAAAlMjY3Mw4BBxUjNSYCPQE0Ejc1MxUeARcjLgEjIgYdARQWAlBnlwGwAcqWurq8vLq6oMABsAGOcKGHhoF4XILIGOjsIwEfzyrNAR8l494Y0phoit+nKqvcAAAAAQBGAAAEUQXFACEAAAEXFAYHIQchNTM+ATUnIzUzAzQ2MzIWFSM0JiMiBhUTIRUBqQYhIALjAfw2CjQyBqqkCtu+ytW6fWhpdgoBpwJqmF2jPZWVDcVrmJUBEdDlz7R8cZSL/u+VAAACAGn/5QVbBPEAIwAvAAAlDgEjIiYnByc3LgE1NDY3JzcXPgEzMhYXNxcHHgEVFAYHFwcBFBIzMhI1NAIjIgIET0+5aGm3ToaCjDQ1OTiUgpNMsWRksU6VhJg2OTUxj4T8YPS0svT0srT0cEFDQkCIhY5Os2ZpuVGXhpY7PT47mIebULdoZLJOkYYCe8P++AEIw8EBB/75AAEAIAAABKsFsAAWAAAJATMBIRUhFSEVIREjESE1ITUhNSEBMwJmAXHU/loBP/57AYX+e7n+gwF9/oMBPv5Z1QMNAqP9L3irdv66AUZ2q3gC0QAAAAIAk/7yAU0FsAADAAcAABMRMxkBIxEzk7q6uv7yAxb86gPIAvYAAAACAFr+EQR4BcUAMQBDAAABFAYHHgEVFAQjIiQ1NxQWMzI2NTQmJy4BNTQ2Ny4BNTQkMzIEFSM0JiMiBhUUFhceASUuAScOARUUFhceARc+ATU0JgR4YFtJRv785OH+17rDjY+fjdL13l5aR0QBBuPsAQC5oZKZloPa+dv94jROIlBMh9sxTCNPVJIBr2CJKTSFZa7Ay+QClYZ3X19jQEGztF2LKjOHZKjG3dJ7nndfZ2E8Ra9UDRgOE2NJaGU9DhgMFGNIXmoAAAIAqQTsA1IFsAADAAcAAAEjNTMFIzUzA1LT0/4r1NQE7MTExAAAAAADAFv/6wXmBcQAGwAnADMAAAEUBiMiJj0BNDYzMhYVIzQmIyIGHQEUFjMyNjUlEAAzMgAREAAjIgADEAAhIAAREAAhIAAEX62eori4op6ukltfY2dnY19a/QEBVv37AVf+qfv9/qpzAZgBLgEsAZn+Z/7U/tL+aAJUnpzRsnew052cY1eNdnh5jFZmhf7w/pcBaQEQAQ4BZ/6Z/vIBQQGq/lb+v/6+/lQBqwAAAgB6ArQDDwXFAB8AKgAAAS4BJw4BIyImNTQ2OwE1NCYjIgYVJzQ2MzIWFREUFhclMjY3NSMiBhUUFgJqCAoDInBQeYCko5E9P0hMoaeOh5gMDv6LN24TkE9WPALCFTAaMTx4bG92NUNFNzUOaIGMiP7GM1creTsmckIwMDEAAP//AGYAdwNkA5EAJgFy+t0ABwFyAUT/3QABAH8BeAO+Ax8ABQAAASMRITUhA766/XsDPwF4AQifAAQAWv/rBeUFxAALABcAMgA7AAATEAAhIAAREAAhIAATEAAzMgAREAAjIgABESMRITIWFRQGBx4BHQEUFhcVIy4BPQE0JiMnMz4BNTQmKwFaAZgBLgEsAZn+Z/7U/tL+aHMBVv38AVb+qvz9/qoBwI0BFJqoQkBDOgcKkQoEQ1CjnEVbTmeHAtkBQQGq/lb+v/6+/lQBqwFD/vD+lwFpARABDgFn/pn+qf6sA1KAgD9dIBtoTDgqQBUQFk8rNktDfgE/O0w7AAAAAQB4BSMDQgWwAAMAAAEhNSEDQv02AsoFI40AAAIAggPBAnwFxQALABcAABM0NjMyFhUUBiMiJjcUFjMyNjU0JiMiBoKUa2mSkmlrlH1KODdJSTc3SwTBbJiYbG2Tk205SUg6OktMAAACAGEACQP1BPMACwAPAAABIRUhESMRITUhETMBITUhAooBa/6Vp/5+AYKnAUz8vQNDA1aW/mEBn5YBnfsWlQAAAQBxApsCxgXHABgAAAEhNQE+ATU0JiMiBhUjNDYzMhYVFAYPASECxv20AS9ILDo/SEqhpI+IlFd1qAF6Apt+AQg+Siw0P0E1aYx9dlBtbJIAAAAAAQBpAo8C4AXGACgAAAEyNjU0JiMiBhUjNDYzMhYVFAYHHgEVFAYjIiY1MxQWMzI2NTQmKwE1AadIQUlKO0qip4CSo0U/SEqwk4C0o01ETVRKTYMEbzo2LjoyKmV2dXA4WhoYXUZxenR1MTo7M0E5egAAAAABAIEEvAIeBcYAAwAAATMBIwE94f7wjQXG/vYAAQCa/mAD7gQ6ABYAAAERFBYzMjY3ETMRIy8BDgEjIiYnESMRAVNxa2p7ILqmCgMrgVhMbiq5BDr9kcOITUwDIfvGbgFBQyIo/isF2gAAAAABAEIAAAM/BbAACgAAIREjIiY1NBIzIREChVfu/v/tARECCP/V0wEB+lAAAAEAogJwAWEDQQADAAABIzUzAWG/vwJw0QAAAAABAHT+TQGqAAAADwAAIQceARUUBiMnMjY1NCYnNwEdDENWm5QHSlxIWiA1C1BSYXBqMTMyJgeGAAEAXgKZAYQFxQAFAAABIxEHNSUBhKSCASYCmQKUAYIXAAAAAAIAegKzAycFxQANABsAABM0NjMyFh0BFAYjIiY1MxQWMzI2PQE0JiMiBhV6t5+gt7afoLijWltYWltZWVoEdpa5uJd1mLa3l1tra1t1WGxsWAAA//8AbwCZA3gDtAAmAXMWAAAHAXMBagAA//8AtAAABdwFxAAnAckAVgKYACcBdAEVAAgABwGXArgAAAAA//8AtAAABe4FxAAnAXQBIgAIACcByQBWApgABwHKAygAAAAA//8AewAABp0FxwAnAXQB0QAIACcBlwN5AAAABwHLABICmwAAAAIAcf52A6YEOwAZAB0AAAEOAQcOARUUFjMyNjczDgEjIiY1NDY3PgE1AzMVIwJ6Ai1mZ1Nxb2CBAbkD47XH04h5NxcIxMQCoZRpXXd9XG9yZWSpwMW3gtB1NVRfAZrMAAL/8gAAB1cFsAAPABMAACkBAyEDIwEhFSETIRUhEyEBIQMjB1f8jQ/9zM3iA3ADt/1NFAJO/bgXAsD6rQHKHwMBYv6eBbCW/iaV/eoBeQLcAAAAAAEAWQDiA90EdgALAAATCQE3CQEXCQEHCQFZAUr+uHcBSQFJd/63AUt3/rX+tQFcAVEBT3r+sQFPev6x/q96AVH+rwAAAwBz/6ME/gXsABkAJAAvAAABEAAhIiYnByM3LgE1ERAAITIWFzczBx4BFQEUFhcBLgEjIgIVITQmJwEeATMyEjUE/v67/vZWlUJdj4xWWQE6AQJip0lUj4ZOUvwuKSoCLDR9S7TPAxkkIv3XLmtAvdkCV/70/qAqKpzqV+iLAQEBCwFiNTKO4Ffcgf7/WJg9A6UsLv76yU2JO/xhIyMBBcwAAAACAKYAAARdBbAADAAVAAABESEyFhUUBiMhESMRExEhMjY1NCYjAWABFer+/ur+67q6ARWZlZWZBbD+2ujAwef+xgWw/kX92px1dp8AAQCL/+wEagYPACcAACEjETQ2MzIWFRQGFRQAFRQGIyImJzceATMyNjU0ADU0NjU0JiMiBhUBRLniuqHEgAFez7JTsSgrKoNAcmr+oopnRW5/BDrh9Kiod9g8VP7ojqmlKx2ZHS9eUlcBGpRT2U5fa6ScAAADAD3/6wZ8BE4ALAA3AD8AAAUiJicOASMiJjU0NjsBNTQmIyIGFSc0NjMyFhc+ATMyFh0BIR4BMzI2NxcOASUyNjc1IyIGFRQWASIGByE1NCYE7ovKQznao6224d/qaWdvfbjiwnWsMkGuadji/S4EnaNqhkxAObX8SFCnLOiAiWcDZXeNEAIVexVhXVJsq5miqlVweG5SEpC0UlJQVP/ndarJODOFL0yVWDrfcVVOXQM4q40ffpsAAgBM/+sELQXtACAAMAAAARYSHQEUACMiADU0ADMyFhc3LgEnBSc3LgEnNx4BFzcXAzQmNS4BIyIGFRQWMzI2NQNTanD+59rd/u8BDtpXlzkDF1Y+/utJ+iZPKzlMhj3sSbgBJKB7jKOnkoyqBQd8/rvOYfr+zgET0+oBFkA3AWqmQZ5jjxgnEJ4XRTGHY/z2CCIJPVHPm4jJ47QAAwBHALcELQSvAAMABwALAAABITUhJSM1MxEjNTMELfwaA+b+bb29vb0CWrTax/wIxwAAAAMAYP95BCcEuQAZACQALwAAEzQAMzIWFzczBx4BHQEUACMiJicHIzcuATUzFBYXAS4BIyIGFSE0JicBHgEzMjY1YAEA4jpmMEp7aFpe/wDjNVsrSXtkZGW6LC8BVx9EJ5SUAlQnJ/6uGjkjlJYCKPUBMRcVl9JL5JAY9v7SERGVy0nqmWCbNwK3ERLirlaROP1SDQvfsAAAAgCa/mAELQYYABMAIQAAARQCIyImJwcRIxEzERc+ATMyEhEjNCYjIgYHER4BMzI2NQQt28lnljUDurkDNJZmzNu6kJNbeicoeV2SjwH18P7nQ0MB/e8HuP2oAUZJ/sf+9b/rUEb99kdMy6kAAgAeAAAFiQWwABMAFwAAATMVIxEjESERIxEjNTMRMxEhETMBITUhBPeSkrn9K7mSkrkC1bn8cgLV/SsEjY38AAKG/XoEAI0BI/7dASP9a+UAAAAAAQCbAAABVQQ6AAMAACEjETMBVbq6BDoAAQCaAAAEPwQ6AAwAAAEjESMRMxEzATMJASMBvmq6ulsBjd/+NwHt6QHP/jEEOv41Acv9+P3OAAABACYAAAQVBbAADQAAASUVBREhFSERBzU3ETMBXwEU/uwCtvyRgIC5A0dYn1j97ZUCbSifKAKkAAEAIwAAAgsGGAALAAABNxUHESMRBzU3ETMBcZqauZWVuQNnO6A7/TkCgDmgOQL4AAEApP5LBO0FsAAYAAABERQGIyImJzceATMyNj0BASMRIxEzATMRBO2omyAzHQ4OQhJCSP0tA7q6AtMDBbD596qyCQmRBQhnX1kEb/uRBbD7kQRvAAEAkf5LA/AETgAgAAABHwE+ATMyFhURFAYjIiYnNx4BMzI2NRE0JiMiBgcRIxEBNw0DNZ5psbynmyA1Hg4OQxRCR3N5XH0nugQ6lQFRWcnc/P6qsgkJmgUHX10C/pZ5RkH80wQ6AAAAAgBp/+sHOAXFABcAJQAAKQEOASMiABkBEAAzMhYXIRUhESEVIREhBTI2NxEuASMiBhURFBYHOPyCXoFF/f7QAS79R45RA3T9BAKg/WADBvteOHE6OnE6scHDCgsBRgEPATABDgFHDAmW/iKW/e8VCAkEjQgK49v+ztzkAAMAYf/rBwAETgAhAC8ANwAAEzQSMzIWFz4BMzISHQEhHgEzMjY3Fw4BIyImJw4BIyIANTMUFjMyNj0BNCYjIgYVASIGByE1NCZh/+OHyEBCwnHc3f0yBJ2QZ5U4Sjy6iIfMQEHFheT/ALmVlpSVlpWVlAQtapEUAg6AAij1ATFxaGdy/v3feabNOTN7O0ttZ2dtAS/2sd/fsRiv4eKuAZCphxp5nQAAAAEAoAAAAoIGLQAPAAAzETQ2MzIWFwcuASMiBhURoLCjIkMqFxUsGltcBMWwuAsKjAUGbWX7OwAAAf/k/ksCvAYtACMAAAEjERQGIyImJzceATMyNjURIzUzNTQ2MzIWFwcuASMiBh0BMwJgy6ebIDMcDg5AE0FHq6uvoyJDKhYUMhxaVcsDrfv6qrIJCZEFCGdfBAaNi6+5CwqRBQZoZYsAAAAAAgBx/+sFnQY2ABcAJQAAARAAISAAGQEQACEyFhc+ATUzFAYHHgEVJzQCIyICFREUEjMyEjUE/P67/vb+/v7GAToBAnrKUGFUp32ALS+52ry0z8+0vdkCV/70/qABYAEMAQEBCwFiUUwKhn6jwyBMrGACyQEG/vrJ/v3L/voBBcwAAAAAAgBg/+wEugSwABcAJQAAEzQAMzIWFz4BNTMUBgceAR0BFAAjIgA1MxQWMzI2PQE0JiMiBhVgAQDia6hBVziVZHUjI/8A4+T/ALqUlpSWl5WUlAIo9QExR0QIcnOUqRpCmFcY9v7SAS72sd7fsBiu4uKuAAABAJb/6wYmBg0AGQAAARU+ATUzFAYHERQEIyIkNREzERQWMzI2NREE115Kp5+w/tL79P7cur2hqccFsM0WkITG1xb9e/L4+PID2/wlq6qqqwPbAAABAI3/7AUQBJEAHAAAARQGBxEjLwEOASMiJjURMxEUFjMyNjcRMxU+ATUFEHqgpg0DMp5ttMK6aHFwiSS5YDUEkaWbCfy4ngFXXN30An39gbKDV1MDCooJYnYAAAH/tP5LAWUEOgAPAAABERQGIyImJzceATMyNjURAWWnmx8yHg4OQBNBSAQ6+22qsgkJkQUIaF4EkwAAAAIAYv/sA+kETwAVAB0AAAEyAB0BFAAnIgI9ASEuASMiBgcnPgETMjY3IRUUFgH/4gEI/vG/3dwCzQWdjmmUOEk7uqVpkBX9838ET/7X8y3t/tMBAQHgeaXOOjN8Okz8M6eIGXqcAAAAAQCpBOQDBgXpAAgAAAEVIycHIzU3MwMGmZaVmfR0BPwYlpYZ7AAAAAEAjATkAvcF6QAIAAABNzMVByMnNTMBwJWi/nP6ngVTlhLz8RQAAAABAIEEpQLYBbAADQAAARQGIyImNTMUFjMyNjUC2KCLjKCXRk9NSAWwepGRekRSU0MAAAAAAQCgBOoBbwWwAAMAAAEjNTMBb8/PBOrGAAAAAAIAiwRfAhwF4AALABcAABM0NjMyFhUUBiMiJjcUFjMyNjU0JiMiBot0VlRzclVXc2M8Kys5OSsrPAUeVG5uVFZpaVYsOzotLTw8AAABADL+UAGSADcAEwAAIQ4BFRQWMzI2NxcOASMiJjU0NjcBflNYIysdLxgNIEo2V2mAhz1lPCQmEAx4ExliW1aYPAAAAAEAggTiAzQF8QATAAABFAYjIiYjIgYVJzQ2MzIWMzI2NQM0dFtJlzUsOmhyXDukNis8BdJff19BMBpehWBBMQACAGgE5ANIBe4AAwAHAAABMwEjAzMDIwJn4f7OqUfO9pYF7v72AQr+9gAAAAIAtv6HAen/qwALABcAABc0NjMyFhUUBiMiJjcUFjMyNjU0JiMiBrZZQ0BXV0BDWVcnHhsmJhseJ+lBU1NBQFBQQBslJBweJiYAAAAB/NoEuv4HBhMAAwAAASMDM/4HfbCxBLoBWQAAAf13BLv+pAYUAAMAAAEzAyP99625dAYU/qcA///8kwTi/0UF8QAHAKD8EQAAAAAAAf1eBNn+lAZzAA8AAAEnPgE1NCYjNzIWFRQGDwH9dAFQQVpMB5SbVkUBBNmXBR8nKSZpZFdISAlGAAAAAvwnBOT/BwXuAAMABwAAASMBMwEjAzP+Aqn+zuEB/5b2zgTkAQr+9gEKAAAB/UP+sf4S/3YAAwAAASM1M/4Sz8/+scUAAAAAAQDDBPgBygZ4AAMAAAEzAyMBAsitWgZ4/oAAAAMAoQTtA1wGiAADAAcACwAAASM1MwUjNTM3MwMjA1zAwP4GwcF/036FBO3Dw8PY/vgAAP//AKICcAFhA0EABgB2AAAAAQC1AAAEMAWwAAUAAAEhESMRIQQw/T65A3sFGvrmBbAAAAAAAgAgAAAFbQWwAAMABgAAATMBITchAQKJoQJD+rP7A1v+YQWw+lCVBDcAAAADAHP/6wT+BcUAAwARAB8AAAEhNSEFEAAhIAAZARAAISAAESc0AiMiAhURFBIzMhI1A8D9/AIEAT7+u/72/v7+xgE6AQIBCgFFudq8tM/PtL3ZApSW0/70/qABYAEMAQEBCwFi/p7+9QLJAQb++sn+/cv++gEFzAABADQAAAUCBbAABwAAASMBIwEzASMCnQT+Wb4CFqICFr4EqPtYBbD6UAAAAAMAegAABCAFsAADAAcACwAANyEVIRMhFSEDIRUhegOm/FpVAvP9DVMDlvxqlZUDPJYDCpYAAAAAAQC2AAAE/wWwAAcAACEjESERIxEhBP+5/Sm5BEkFGvrmBbAAAQBFAAAERAWwAAwAAAkBIRUhNQkBNSEVIQEC7v46Axz8AQHl/hsDzf0XAcUCzv3Ilo4CTQJHjpb9zQAAAwBOAAAFbAWwABUAHgAnAAABMzIAFRQAKwEVIzUjIgA1NAA7ATUzAyIGFRQWOwERMxEzMjY1NCYjAzoF9AE5/sbzBboH9P7JATf0B7rBtL++tQe6B7LAwLIE9v7T9PX+0bGxAS319AEvuv6x1Lq70gMb/OXUu7nTAAAAAAEAXQAABRgFsAAXAAABPgE1ETMRFAAHESMRJgA1ETMRFBYXETMDD52zuf7n8Lrp/vG4qpa6AgEX1LICEv3u+v7dF/6WAWoYASL6AhL97rHTGQOvAAEAcgAABM0FxQAjAAAlNhIRNTQmIyIGHQEQEhcVITUzJgI9ARAAMzIAERUUAgczFSEC4ZCfw7CxwaOT/hXwc4EBLv38ATGBcvb+FJsbARwBAXbu+Pjudv7//uMam5VjAS+sdAEhAV3+o/7fdKz+0WOVAAAAAgBk/+sEdwROABwAKgAAAREUFjMyNjcXDgEjIiYnDgEjIgI9ARASMzIWFzcBFBYzMjY3ES4BIyIGFQPuKiYJEgcXHTkkSlsUNppsydvazGiYNhH9zIeSXXkpKXlbk4gEOvzsV0EDA4gTDkxYUlIBG+8VAQoBOlFPjP27qstgWgHBWmPtwQAAAAIAoP5/BE0FxAAUACoAAAEyFhUUBgceARUUBiMiJicRIxE0JBMyNjU0JiMiBhURHgEzMjY1NCYrATUCXcXnYll7hPjOVps8ugEDtoF2f3Rxki2QXYmXiHiPBcTXsV2XLyzChNTnLjH+NAWxqur9lHpuYoyPb/zENzydhXWrlQAAAQAu/mAD3wQ6AAsAAAEzAREjEQEzARczNwMivf6Fuv6EvQEHFgMXBDr7//4nAeAD+v0AXV0AAAACAGD/7AQnBhwAIQAvAAATNDYzMhYXBy4BIyIGFRQWFxYSHQEUACMiAD0BNDY/AS4BExQWMzI2PQE0JiciBhXdxrRNm1ApPYxKWGNihdjQ/wDi5f8Au4wEZWk+lJaTlaODlZcE9oqcLSiAGCNIQDNdLEv+7s4X7f7dASPtF7D4Igsni/1iqNTUqBeH3BrXpgABAGP/7QPsBEwAKQAAASIGFRQWMzI2NTMUBCMiJjU0Njc1LgE1NDYzMhYVIzQmIyIGFRQWOwEVAhuBfIx9eJS5/va7zfdlZFdf5M26+bmPa3x7cHvNAeBVW01kcFCpqamaXn0gAyN3S5mgrZJKYmBGTVaQAAEAbf6BA8MFsAAgAAABFQEOARUUFh8BHgEVDgEHJz4BNTQmLwEuATU0EjcBITUDw/6igm5HWYGXbAJvQGIzL0dSWrKHhZIBGf2BBbB2/lKa4JFkYRMmLENtSqg0UzpRLCQyFhcvn6B6ATisAUCWAAABAJH+YQPwBE4AFAAAAR8BPgEzMhYVESMRNCYjIgYHESMRATcNAzWeabS5uXR4XH0nugQ6lQFRWcDl+7gERJd8SEL80gQ6AAADAHr/6wQUBcUADQAWAB8AAAEQAiMiAhkBEBIzMhIRBSE1NCYjIgYVASEVFBYzMjY1BBTx29r08trb8/0fAiiLiomKAij92IyJiokCLP7j/twBJQEcAVcBHAEm/tr+5GOLxMDAxP7ghcTCwMYAAAAAAQDD/+sCawQ5AA8AAAERFBYzMjY3Fw4BIyImNREBfDcyGS4WKS1UNHt4BDn81E85DQyAHhWLoQMiAAAAAQAl//AEOwXuACEAADMjAScuASMiBiMnPgEzMhYXAR4BMzoBNxcOASMiJicDIwfzzgGKYBg0LQocCQERRhplXh0BsxQtJA0SBwYOKhZiZi/vAyAEBes6LgKMBAhQWPuoNSsClAQIT38CZ3wAAQBl/ncDqQXDADEAAAEuASMiBhUUFjsBFSMiBhUUFh8BHgEVDgEHJz4BNTQmLwEuATU0Nj8BLgE1NCQzMhYXA3I/azeal5qrjY3CxJ59a5B0AW9AYjkoRVY35N2hlQF2gAED50SIMQUKERNrUmpylp2mgJUcFyJLbUmkNlNCQTYrKxINNMDUlsYuAymWYaSyFhEAAAEAT//rBM4EOgAXAAABIxEUFjMyNjcXDgEjIiY1ESERIxEjNSEEXX43MhkuFiktVDR7eP5luoIEDgOk/WlPOQ0MgB4Vi6ECjfxcA6SWAAAAAgCR/mAEHwROABEAHwAAARQCIyImJxEjETMnNBIzMhIRIzQmIyIGFREeATMyNjUEH9fIZpc4ugEB+8Tl6rmFkYOCKHldkYwB9fD+5z0//fgD4gL7AQ/+yf7zwuzlkf7SR0zLqQAAAAABAGX+igPhBE4AIQAAATIWFSM0JiMiBh0BFBYXHgEVDgEHJz4BNTQmJy4BPQE0EgI9vuavfneQj661m3oCbj9iOChDWfTw+gROzrpshuWhKo23MCtObkinNFNBQTYtKhQ0/tYq6AE0AAIAYP/sBHkEOgARACAAAAEhBx4BHQEUACMiAD0BNAAzIQEUFjMyNj0BNCYrAQ4BFQR5/usBX2X+/N/k/wABAOICN/yhlJaUlpeVAZSTA6MDSNCFF9j+2AEu9hjsASb91rHe37AYpdYB1aUAAAEAUf/rA9kEOgATAAABIREUFjMyNjcXDgEjIiY1ESE1IQPZ/o03MhkuFiktVDR7eP6kA4gDpv1nTzkNDIAeFYuhAo+UAAAAAAEAj//rA/YEOgAVAAABERQWMzISNS4BJzMeARUUAiMiJjURAUlqX42eA0A4wzM+8OvBywQ6/W+djAEDroH8jG79nv3+t9fpAo8AAAACAFf+IgVMBDoAGQAjAAAFJAI1NBI3Fw4BBxQWFxE0NjMyABUUAAURIxM+ATUuASMiBhUCbP7p/n+BZVdQBKS3iHPMARn+9/7iubm9sQScjCAiERkBO/CsAQNYg0vIcaLwGwLSaHr+z+nn/s0X/jMCZBnnmqHiKRwAAAAAAQBf/ikFQwQ6ABsAAAERPgE1LgEnMx4BFRQABREjESYAGQEzERQWFxEDHL+vA0I6wjVB/vv+3rn8/vi6rZ0EOfxNGvOlgPmJbfmc9v7CFv47AccZASgBIwHm/hjZ2hgDsgAAAAEAev/rBhkEOgApAAABDgEHFBYzMjY1ETMRFBYzMjY1LgEnMx4BFRACIyImJyMOASMiAhE0NjcBxENLA2h0Z3a7dWhzaQRLQsM9SrzPeaIoAymieNC7ST4EOon/g8LtobYBK/7VtqHsw4P/iW/9n/7+/r51dXV1AUIBAp//bQAAAgB0/+sEqQXFABkAJAAAJTI2NyYkPQE0NjMyFhUREAAjIgAZATcRFBYTFBYXETQmIyIGFQKFrL4B3v76uJeesP7X+/D+37q24puPSktGT4br2An2xD6wy8e0/gL+5f66AVQBDQKYAv1mzfkDhH2hCAFmcW5ucQAAAf/nAAAEWQW7ACMAAAE+ATMyFhcHLgEjIgYHAREjEQEuASMiBgcnPgEzMhYXExczNwLsNHhTIjIaFwYXDyQ5FP7XuP7WFTkjEBYFFxgxI1N3NrQXAxcE139lCg6SAwUkLf18/bwCRAKELSQFA5IOCmV//mhUVAAAAgBK/+sGGwQ6ABcALQAAASMeARUQAiMiJicjDgEjIgIRNDY3IzUhAS4BJyEOAQcUFjMyNj0BMxUUFjMyNgYbiR8irLt5oicEKKF4vKshIHUF0f7+Aygk/LwlKAJYYGd1u3RpXlgDo1W1av7+/r52dXV2AUIBAmq1VZf99V23YGK2XMLtobb8/Lah7AABACv/9QWwBbAAGwAAASERPgEzMgQVFAYjJzI2NS4BIyIGBxEjESE1IQSV/fNSmTn4AQz49QKojgKkpUKaSLr+XQRqBRr+LBce7N/Z4o+Zk5aWGhf9VQUalgAAAAEAh//sBM0FxgAfAAABBgAjIgAZARAAMzIEFyMuASMiAh0BIRUhFRQSMzI2NwTNGP7v8fz+0AEw/PUBDRi5GaOlrMcCO/3Fx6ymohkBztz++gFYARQBAQETAVr96Kap/vfMMJU+zv73pKkAAAIAMgAACEUFsAAWAB8AAAERITIWFRQGIyERIQMKASsBNTMyEhsBAREhMjY1NCYjBPQBaOz9/ez93v3/AwTO/zMonIMEBANzAWialpaaBbD9xfLJyfEFGv3r/mP+mJUBFwFZAqv9MP21qH98qAAAAAACALUAAAhPBbAAEgAbAAABIREzESEyFhUUBiMhESERIxEzAREhMjY1NCYjAW4C17kBaO38/ez93/0pubkDkAFonJWVnAM3Ann9lt/AwOcCov1eBbD9Af3ulXV0lAAAAAABAEAAAAXWBbAAFwAAASERPgEzMhYVESMRNCYjIgYHESMRITUhBKv961CeavT0uY6hXKRYuf5jBGsFGv5DFRXP8f45AceqgBYV/ToFGpYAAAEAtf6aBP4FsAALAAATMxEhETMRIREjESG1uQLXuf4/uf4xBbD65QUb+lD+mgFmAAIApgAABLEFsAAMABUAAAEhESEyFhUUBiMhESEBESEyNjU0JiMEIf0+AWju/P3t/d8De/0+AWiclJScBRr+PuHHyOgFsP0T/dKffnmYAAAAAgA0/poFyQWwAA4AFQAAJTMRIxEhESMRMzYSGwEhAQYCByERIQUIwbn73bl5T4MIIANh/ToJaFQC0v4Jlf4GAWX+mgH7WgFOAS0CRv269/6WdASFAAAAAAEAGwAABygFsAAVAAABIxEjESMBIwkBMwEzETMRMwEzCQEjBJ2buaL+XOgB7v472QGGprmfAYbZ/joB7ucCn/1hAp/9YQMAArD9hAJ8/YQCfP1R/P8AAAABAFH/6wRnBcUAKAAAATI2NTQmIyIGFSM0JDMyBBUUBgceARUUBCMiJDUzFBYzMjY1NCYrATUCXqSWoqWErrkBGNPyAQ58coGD/t3z1f7VubOUprenqaUDMYN3dJCObrja08topDArqoHM3tTVd52VfIqAlgAAAAABALYAAAT+BbAACwAAATMRIxEjASMRMxEzBEW5uQP9Lbm5AwWw+lAEb/uRBbD7kgABADAAAAT0BbAADwAAAREjESEDCgErATUzMhIbAQT0uv3xEQ677jMojHEMFgWw+lAFGv3r/l3+npUBEQFfAqsAAQBR/+sEyAWwABQAAAEXATMBDgEjIiYnNx4BMzI2PwEBMwJOSwFY1/38PIiaGUEKBgpAEktCKCr+DtAC+8MDePtAhIEGA5ACAkpSVgQ+AAADAFP/xAXjBewAFQAeACcAAAEzIAAREAAhIxUjNSMgABEQACEzNTMDIgYVFBY7AREzETMyNjU0JiMDeBsBAgFO/rL+/hu5Hf79/rQBTAEDHbnWxtHRxh25HcTS0sQFHv69/vv++f67xsYBQwEHAQUBRc7+nenMzucDavyW6c7L6AAAAAABALT+oQWSBbAACwAAEzMRIREzETMDIxEhtLkC17mVEqX72QWw+uUFG/rp/ggBXwABAJcAAATEBbAAEwAAAREjEQ4BIyImNREzERQWMzI2NxEExLlhsHv187qMomm8ZwWw+lACYR0azvIBxv46q38cHAK4AAEAtAAABtIFsAALAAABESERMxEhETMRIREBbgH6uQH4ufniBbD65QUb+uUFG/pQBbAAAAABALT+oQdrBbAADwAAAREhETMRIREzETMDIxEhEQFuAfq5Afi5mRKm+gEFsPrlBRv65QUb+uX+DAFfBbAAAAAAAgARAAAFuAWwAAwAFQAAEyERITIWFRQGIyERIQERITI2NTQmIxECVQFo7vz97f3f/mQCVQFonJSUnAWw/ajhx8joBRv9qP3Sn355mAAAAAADALUAAAY1BbAACgATABcAAAEhMhYVFAYjIREzGQEhMjY1NCYjASMRMwFuAWju/P3t/d+5AWiclJScA1+5uQNY4cfI6AWw/RP90p9+eZj9PQWwAAACAKYAAASxBbAACgATAAABITIWFRQGIyERMxkBITI2NTQmIwFfAWju/P3t/d+5AWiclJScA1jhx8joBbD9E/3Sn355mAAAAAABALH/7AT2BcYAHwAAEzQAMzIAGQEQACMiADUzFBYzMhI9ASE1ITU0AiMiBhWxAST2+wEw/tD7+/7hubWsq8f9uwJFx6ustQPf1QES/qb+7f7//uz+qAEB46CvAQjNOJU2zgEJsKEAAAIAw//rBt4FxQAVACMAAAEQACEgABE1IxEjETMRMzUQACEgABEnNAIjIgIVERQSMzISNQbe/rv+9v7+/sbXubnXAToBAgEKAUW52ry0z8+0vdkCV/70/qABYAEMKP2BBbD9ZEQBCwFi/p7+9QLJAQb++sn+/cv++gEFzAACAGMAAARnBbAADQAWAAAhIwEuATU0JDMhESMRIQEhIgYVFBYzIQEoxQFVkJABC/UBz7r+qwFV/uujpKSdARsCbzbDktTi+lACPALeloiHowAAAAACAGH/6wQoBhEAGwApAAABMhIdARQAIyIAPQEQADc+ATUzFAYHDgEHFz4BFyIGHQEUFjMyNj0BNCYCZ9Pu/wDj5P8AAQPmhnOYsLqNwx4DRrJFlJSVlZSWlwP7/vLbGOz+3QEj7IgBSgF3KxlASrFxHhipqgJGUZXAlBin09OnGJTAAAADAJ0AAAQpBDoADwAYACEAADMRITIWFRQGBxUeARUUBiMBESEyNjU0JiMlMz4BNTQmKwGdAabY51lUZW/Yyf7OATJ0c3N0/s77fXuChO0EOpKXTnUfAxiHWpqZAdz+t1RRUFSSAUxNUE4AAAABAJoAAANHBDoABQAAASERIxEhA0f+DboCrQOj/F0EOgAAAAACAC7+wgSTBDoADgAVAAA3PgE3EyERMxEjESERIxMBDgEHIREhg1VYDxACuYu5/Q25AQHJC1BCAfT+s5Vkzd8Blfxb/i0BPv7CAdMCELv9WAL8AAABABUAAAYEBDoAFQAAASMRIxEjASMJATMBMxEzETMBMwkBIwPqgbmC/tHqAYz+meABF3+5fgEZ4P6YAYzqAdj+KAHY/igCOwH//j8Bwf4/AcH+Af3FAAAAAQBY/+0DrARMACgAAAEUBgceARUUBiMiJjUzFBYzMjY1NCYrATUzMjY1NCYjIgYVIzQ2MzIWA5hXUl5f5MKz+7iIbnJ6ana5uXBdaXBig7jsscHRAxNLeCQhfV6aqaqoUHBjTltQmlBOSF5jSZGunwAAAAABAJwAAAQBBDoACwAAATMRIxEjASMRMxEzA0i5uQP+ELm5AwQ6+8YDF/zpBDr86gABAJwAAAQ/BDoADAAAASMRIxEzETMBMwkBIwHdh7q6eQFs4P5SAdLrAc/+MQQ6/jUBy/35/c0AAAEAKAAABAMEOgAPAAABESMRIQMKASsBPwEyNhsBBAO6/pEND5fJNgQoaUoNFAQ6+8YDo/7H/rL+5KIBwQEGAdAAAAAAAQCdAAAFUgQ6AA4AACUBMxEjESMBIwEjESMRMwL7AXDnuQP+pYD+ngO58PIDSPvGAwz89AMd/OMEOgAAAQCcAAAEAAQ6AAsAACEjESERIxEzESERMwQAuf4PuroB8bkB0P4wBDr+KgHWAAAAAQCcAAAEAQQ6AAcAACEjESERIxEhBAG5/g66A2UDo/xdBDoAAQAoAAADsAQ6AAcAAAEhESMRITUhA7D+lbn+nAOIA6b8WgOmlAAAAAMAZP5gBWkGGAAfAC0AOwAAExASMzIWFxEzET4BMzISERUUAiMiJicRIxEOASMiAjUlNCYjIgYHER4BMzI2NSEUFjMyNjcRLgEjIgYVZMjBK0khuSJQMsHJyb8yUSO5IUosvskETICHIjYWFjcjh378bXWHHzMXFzIeiHYCCgEMATgPDgHn/hMREv7I/vQV8f7nEQ/+VQGoDg8BGfEVwe0LCfztCQjKq63ICQkDFQgJ6sQAAAEAnP6/BIIEOgALAAATMxEhETMRMwMjESGcugHyuYESpvzSBDr8WwOl/Fv+KgFBAAEAZwAAA70EOwATAAAhIxEOASMiJjURMxEUFjMyNjcRMwO9uj53RcrYuXJ3RXk8ugGKERDI0AE6/saJeBARAhkAAAAAAQCcAAAF4AQ6AAsAAAERIREzESERMxEhEQFWAYy5AYu6+rwEOvxbA6X8WwOl+8YEOgAAAAEAkf6/Bm0EOgAPAAABESERMxEhETMRMwMjESERAUsBjLkBi7qYEqX62wQ6/FsDpfxbA6X8W/4qAUEEOgAAAAACAB4AAAS/BDoADAAVAAATIREhMhYVFAYjIREhAREhMjY1NCYjHgH6ARPD0dLC/jT+vwH6ARNyaGlxBDr+ir+foMYDpf6K/mZyWFZ6AAAAAAMAnQAABX8EOgAKAA4AFwAAASEyFhUUBiMhETMBIxEzAREhMjY1NCYjAVYBE8PR0sL+NLkEKbq6+9cBE3JoaXECxL+foMYEOvvGBDr99f5mclhWegAAAAACAJ0AAAP9BDoACgATAAABITIWFRQGIyERMxkBITI2NTQmIwFWARPD0dLC/jS5ARNyaGlxAsS/n6DGBDr99f5mclhWegAAAAABAGT/6wPgBE4AHQAAASIGFSM0NjMyEh0BFAIjIiY1MxQWMzI2NyE1IS4BAghikrD7qd76+t6567CKaoWNC/5qAZUPjAO4eVyU1/7M6Crp/szcq2mJx5WVjrkAAAIAnf/sBiMETgATACEAAAEhNhIzMgAdARQAIyICJyERIxEzARQWMzI2PQE0JiMiBhUBVwEIE/zQ5AEB/wDj1v0P/vm6ugG/lJaUlpeVlJQCbtkBB/7P9Rj2/tIBDOD+KAQ6/dax3t+wGK7i4q4AAAACAC8AAAPHBDoADQAWAAABESMRIQEjAS4BNTQ2MwMUFjMhESEiBgPHuv7q/wDIARFqbtfE4WNnASH+9nJvBDr7xgGm/loBwSWdbZS2/rRMZwFrawAB/+f+SwP7BhgAKgAAASERFz4BMzIWHQEzERQGIyImJzceATMyNjURNCYjIgYHESMRIzUzNTMVIQJj/ugDN6JnsbsBp5siNRwPDUQTQUd0d1eILLqqqroBGAS6/u0BUFjM3d/94aqyCAmSBQloXwMAjYBSSPzmBLqVyckAAQBs/+wD/QROAB0AACUyNjczDgEjIgI9ATQSMzIWFyMuASMiBgchFSEeAQJOZ5cBsAH/r+709O6/7wGwAY5wk4oKAZD+cQqIgXhclNUBL+0q7AEw3KxoiryVlZe6AAAAAgAnAAAGhgQ6ABYAHwAAAREhMhYVFAYjIREhERACKwE/ATI2NREBESEyNjU0JiMD3wETw9HSwv4z/rCqzjYDKW1cAsMBE3BqaXEEOv5jtZaXuwOj/sf+vP7amAHW+wHQ/c7+i3FQTGgAAAAAAgCcAAAGpwQ6ABIAGwAAASERMxEhMhYVFAYjIREhESMRMwERITI2NTQmIwFWAfG5ARPD0dLC/jT+D7q6AqoBE3BqaXECoAGa/mK0lpe7Agz99AQ6/c7+i3FQTGgAAAAAAf/9AAAD+gYYABwAAAEhERc+ATMyFhURIxE0JiMiBgcRIxEjNTM1MxUhAnn+0gM3omexu7l0d1eILLqUlLoBLgS//ugBUFjM3f1bAqeNgFJI/OYEv5XExAAAAAABAJz+nAQBBDoACwAAAREhETMRIREjESERAVYB8rn+rbn+pwQ6/FsDpfvG/pwBZAQ6AAAAAQCf/+sGaQWwACAAAAERFAYjIiYnDgEjIiY1ETMRFBYzMjY1ETMRFBYzMjY1EQZp4b1xpzAzrnW317pyYnGHv31qaXwFsPvZztBYWlpY0M4EJ/vZhIWFhAQn+9mEhYWEBCcAAAEAgf/rBa0EOgAgAAABERQGIyImJw4BIyImNREzERQWMzI2NREzERQWMzI2NREFrc2rYpEsMJhlpsK5XVJfcrpnWldoBDr9Kbu9SUxMSby8Atf9KXJxcnEC1/0pcnFycQLXAAAC/9wAAAP8BhgAEgAbAAABIREhMhYVFAYjIREjNTMRMxEhAREhMjY1NCYjApb+vwESxNHTwv40v7+6AUH+vwEScmhpcQQ6/q7Jp6jQBDqVAUn+t/2E/kJ8YF2FAAEAxP/sBpEFxgAnAAABMzUQADMyBBcjLgEjIgIdASEVIRUUEjMyNjczBgAjIgARNSMRIxEzAX3OATD89QENGLkZo6WsxwIa/ebHrKaiGbkY/u/x/P7Qzrm5A0AZARMBWv3opqn+98wbllLO/vekqdz++gFYARRS/VYFsAABAJn/7AWnBE4AIwAAATM2EjMyFhcjLgEjIgYHIRUhHgEzMjY3Mw4BIyICJyMRIxEzAVPEDvTfv+8BsAGOcJOKCgGx/lAKiJRnlwGwAf+v4PIPxLq6AmfYAQ/crGiKvJWVl7p4XJTVAQza/i4EOgAAAgAqAAAE3gWwAAsADwAAASMRIxEjAyMBMwEjASEDIwOJrrihmr4CD6ACBb39mAGaygMBuv5GAbr+RgWw+lACWAJNAAACAA8AAAQlBDoACwARAAABIxEjESMDIwEzASMBIQMnIwcC7XW5e3i9AbqfAb2+/hkBMIEWBBYBK/7VASv+1QQ6+8YBwQE9U1MAAAAAAgDWAAAG7wWwABMAFwAAASEBMwEjAyMRIxEjAyMTIREjETMBIQMjAY8BhQE2oAIFvZiuuKGavqD+tLm5AjsBmsoDAlkDV/pQAbr+RgG6/kYBuv5GBbD8qAJNAAACALwAAAXkBDoAEwAZAAABIQEzASMDIxEjESMDIxMjESMRMwEhAycjBwF2AQ8BA58Bvb56dbl7eL160rq6AckBMIEWBBYBwQJ5+8YBK/7VASv+1QEr/tUEOv2HAT1TUwACAJYAAAY7BbAAIQAlAAABNzUhATMyFhURIxE0JisBBxEjEScjIgYVESMRNDY7AQEzATMBIQHzAwPQ/nUf8fC5ip57F7kRh5+Iuu/yK/521QF6EQEi/asFpQEK/XvK7f6MAXSmeyf9kgJ6G3um/owBdO3KAoX9ewHvAAAAAgCWAAAFSwQ6ABsAHwAAAR4BHQEjNTQmKwEHESMRJyMiBh0BIzU0NjcBIQEzEyEDtcnNuniLMwu5Bj6Md7rR0f7fA7/+HgW4/ooCWgnM4KWlpnsT/k0BvQl7pqWl5coGAeD+IQFJAAACAMMAAAhuBbAAKQAtAAAhETQ2NyERIxEzESE7AQEzFzc1IQEzMhYVESMRNCYrAQcRIxEnIyIGFREBMwEhAsknKf5jubkDFxcr/nbVBgMD0P51H/HwuYqeexe5EYefiAIXEQEi/asBdF+NNv1qBbD9ewKFCwEK/XvK7f6MAXSmeyf9kgJ6G3um/owDKwHvAAACAJsAAAc7BDoAIgAmAAAhNTQ2NyERIxEzESEBIQEeAR0BIzU0JisBBxEjEScjIgYdAQETIRMChiQm/oW6ugLS/uADv/7fyc26eIszC7kGPox3Aam5/om5pV6NNv46BDr+IgHe/iAJzOClpaZ7E/5NAb0Je6alAlsBSf63AAAAAAIAUP5HA6oHcAAtADYAAAEyNjU0JiMhNSEyBBUUBgcVHgEVFAQrASIGFRQWFwcuASc0NjsBMjY1NCYrATUBNzMVByMnNTMBoqOVkpL+zgEy2AEGf3OChv742DVQRV5DSm6YAaqjLYqdqKeNAQqVov5z+p4DNn92a4WV0LlpoisDKayDyt86N0dVHnsvoG+BfJV7ioWVA6SWEvPxFAAAAAACAEz+RwN3BhsALQA2AAABMjY1NCYjITUhMhYVFAYHFR4BFRQGKwEiBhUUFhcHLgEnNDY7ATI2NTQmKwE1EzczFQcjJzUzAZqNgH18/tMBLcTvZFpobPHFMFBFXkNKbpgBqqIpdoaRko3BlaL+c/qeAmhUTkRWlqSQS3UjAyB5V5mqOjdHVR57L6BvgXxcTlZRlQMdlhLz8RQAAAADAHP/6wT+BcUADQAWAB8AAAEQACEgABkBEAAhIAARBSE1NAIjIgIVBSEVFBIzMhI1BP7+u/72/v7+xgE6AQIBCgFF/C4DGdq8tM8DGfznz7S92QJX/vT+oAFgAQwBAQELAWL+nv71PkDJAQb++snWLcv++gEFzAADAGD/7AQnBE4ADQAUABsAABM0ADMyAB0BFAAjIgA1ATI2NyEeARMiBgchLgFgAQDi5AEB/wDj5P8AAeSHkw39sQyTh4SSDwJND5QCKPUBMf7P9Rj2/tIBLvb+cbybm7wDN7aVlbYAAAEAFwAABNoFxAARAAABFzM3AT4BMxcHIyIGBwEjATMCPyIDIgEFMYFuLwEMNUEd/nig/gXJAXF+fgM0noEBoz5V+3MFsAAAAAEALgAABAsETQAVAAABFzM3Ez4BMzIWFwcuASMiBgcBIwEzAdsWAxedKX5SIjAYFQUYDSE7D/7Xjf6DvQE6XV0CI35yCg6SAwUxLPyyBDoABABz/3ME/gY1AAMABwAVACMAAAEjETMRIxEzARAAISAAGQEQACEgABEnNAIjIgIVERQSMzISNQMWubm5uQHo/rv+9v7+/sYBOgECAQoBRbnavLTPz7S92QS1AYD5PgGJAVv+9P6gAWABDAEBAQsBYv6e/vUCyQEG/vrJ/v3L/voBBcwABABg/4gEJwS2AAMABwAVACMAAAEjETMRIxEzATQAMzIAHQEUACMiADUzFBYzMjY9ATQmIyIGFQKhubm5uf2/AQDi5AEB/wDj5P8AupSWlJaXlZSUA0gBbvrSAW4BMvUBMf7P9Rj2/tIBLvax3t+wGK7i4q4AAAAAAwCf/+sGZAdUACwAPgBEAAABMhYVERQGIyImJw4BIyImNRE0NjMVIgYVERQWMzI2NREzERQWMzI2NRE0JiMTFSMiJCMiBh0BIzU0NjMyBDMBJzc1MxUE1rbY2LZ1rTM0rXO319e3YnJyYnGHuoVyYXR0YWgshf7dLjY8f3l0SwEec/5BTDq0Ba/k3v3A3+NWWVlW498CQN7klZiV/cCWl4WEAbT+TISFl5YCQJWYAbt9fzg3EiRubH/+UkB0jHwAAwB+/+sFqgXxACwAPgBEAAABMhYVERQGIyImJw4BIyImNRE0NjMVIgYVERQWMzI2PQEzFRQWMzI2NRE0JiMTFSMiJCMiBh0BIzU0NjMyBDMFByc3JzMEQqXDw6VnmS8vmWWmwsKmUl1dUl9yuXJgUF5eUKoshf7dLTc7gHp0SgEedP7ioU07AbQERNDM/t/Nz0pMTErPzQEhzNCVhIP+34SDcnHr63Fyg4QBIYOEAcJ9fzc3EiNubYDqxEB0jAAAAgCf/+sGaQcDAAcAKAAAATUhFyEVIzUFERQGIyImNREjERQGIyImNREjERQWMzI2Nx4BMzI2NREB3QMrAf61qAKafGlqfb+HcWJyute3da4zMKdxveEGmWpqfX3p+9mEhYWEBCf72YSFhYQEJ/vZztBYWlpY0M4EJwAAAAIAgf/rBa0FsQAHACgAAAE1IRchFSM1AREUBiMiJjURIxEUBiMiJjURIxEUFjMyNjceATMyNjURAYgDKwP+s6gCM2hXWme6cl9SXbnCpmWYMCyRYqvNBUdqaoCA/vP9KXFycXIC1/0pcXJxcgLX/Sm8vElMTEm9uwLXAAABAHj+gwS+BcUAGAAAASMRJgA1ERAAMzIAFSM0JiMiAhURFBI7AQMRud3+/QEw/PoBILq1q6zHx6xt/oMBbRwBTv0BAQETAVr+/eKfsP73zP79zv73AAAAAQBk/oMD4AROABgAAAEjESYCPQE0EjMyFhUjNCYjIgYdARQWOwECorm7yvrfuOuvjGiRj46SZf6DAW8fASbRKugBNN2raIrloSqk5AAAAAABAHQAAASQBT4AEwAAAQUHJQMjEyU3BRMlNwUTMwMFByUCWAEhRP7dtqjh/t9EASXN/t5GASO8pecBJUj+4AG9rHmq/r4Bjqt5qwFvq3urAU3+Z6t4qgAAAfxnBKf/JwX7AAcAAAEVJzchJxcV/Q2mAQIbAaUFJX4B52wB1QAAAAH8cQUX/2QGFQARAAABMiQzMhYdASM1NCYjIgQrATX8m3MBHkp0eoA7Ny3+3YUsBZWAbW4jEjc3f30AAAH9ZgUY/lQGWAAFAAABNTMVFwf9ZrM7TQXcfIx0QAAAAf2kBRj+kwZYAAUAAAEnNyczFf3xTTsBtQUYQHSMfAAI+o3+xAIoBa8ADQAbACkANwBFAFMAYQBvAAABNDYzMhYVIzQmIyIGFQE0NjMyFhUjNCYjIgYVEzQ2MzIWFSM0JiMiBhUBNDYzMhYVIzQmIyIGFQE0NjMyFhUjNCYjIgYVATQ2MzIWFSM0JiMiBhUBNDYzMhYVIzQmIyIGFRM0NjMyFhUjNCYjIgYV/XpwYmNwcC80Mi8B3m9iYnJxLzQzLUlwYmJxcC80My7+y29iYnFwLzQzLv1QcGJjcHAvNDIv/U1xYmNwcC80Mi/+3nFhY3BwLjUyLzVxYWNxcS41Mi4E81VnZ1UsOTks/utVZ2dVLDk5LP4JVWdnVSw5OSz9+VVnZ1UsOTks/uRWZmZWLTg4LQUaVWdnVSw5OSz+CVVnZ1UsOTks/flVZ2dVLDk5LAAAAAj6pP5jAeMFxgAEAAkADgATABkAHgAjACgAAAUXAyMTAycTMwMBNwUVJQUHJTUFATclFwYFAQcFJyUDJwM3EwEXEwcD/qcLemBGOgx6YEYCHQ0BTf6m+3UN/rMBWgOcAgFARCX/APzzAv7ARQEmKxGUQcYDXxGVQsQ8Dv6tAWEEog4BUv6g/hEMfGJHOwx8YkcBrhCZRBex/I4RmUXIAuQCAUZF/tX84wL+u0cBKwAAAv/cAAAD/AZwABIAGwAAASERITIWFRQGIyERIzUzNTMVIQERITI2NTQmIwKW/r8BEsTR08L+NL+/ugFB/r8BEnJoaXEFGv3Oyaeo0AUalsDA/KP+QnxgXYUAAAADALUAAATYBbAAAwAOABcAAAEHATcBESMRITIWFRQGIyUhMjY1NCYjIQTYbv6Rbf4GuQIk7f397f6VAWuclZWc/pUCPmQBk2X+eP22BbDryMrplZ99fqEAAwCR/mAEJAROAAMAFgAkAAAlBwE3JRQCIyImJwcRIxEzFz4BMzISESM0JiMiBgcRHgEzMjY1BCNu/rZuAUvbyWeWNQO6nxI2mmvM27qQk1t7Jih5XZKPDWUBdWVz8P7nQ0MB/e8F2opOUP7H/vW/61BG/fZHTMupAAAAAAEApgAABCMHAQAJAAABIxUhESMRIREzBCMC/T65AsS5BRsB+uYFsAFRAAAAAQCRAAADQwV4AAkAAAEjFSERIxEhETMDQwX+DboB+LoDpAH8XQQ6AT4AAAABALX+3gR8BbAAFQAAASERMyAAERACIycyNjUuASsBESMRIQQw/T65AR8BNu/qApyFAcvPubkDewUa/ib+1f7q/vf+6JHNw9HR/V8FsAAAAAEAkf7lA74EOgAVAAABIREzMgQVBgIHJz4BNS4BKwERIxEhAz7+DXTnARgBvcIxh3EBsJV0ugKtA6P+4vrhjP7rJJAinnWZo/4aBDoAAAAAAQCmAAAE+AWwABQAAAkCIwEjFSM1IxEjETMRMxEzETMBBMv+bgG/5/6cUJVpublplU8BRwWw/U79AgKV9/f9awWw/XoBAv7+AoYAAAEAmgAABH8EOgAUAAAJAiMBIxUjNSMRIxEzETM1MxUzAQRa/q0BeOv+6jGUZbq6ZZQqAQMEOv3+/cgBz8TE/jEEOv411tYBywAAAAABAEUAAAaJBbAADgAAASMRIxEhNSERMwEzCQEjA4ywuf4iApefAhHU/cMCZuMClP1sBRuV/XkCh/0+/RIAAAAAAQA+AAAFfAQ6AA4AAAEjESMRITUhETMBMwkBIwMah7r+ZQJVeQFs4P5SAdLrAc/+MQOklv41Acv9+f3NAAAAAAEAtQAAB4QFsAANAAABIREhFSERIxEhESMRMwFuAtUDQf14uf0rubkDGwKVlfrlAob9egWwAAAAAQCRAAAFagQ6AA0AAAEhESEVIREjESERIxEzAUsB8QIu/ou5/g+6ugJkAdaW/FwB0P4wBDoAAAABALT+3wfNBbAAFwAAATMgABEQAiMnMjY1LgErAREjESERIxEhBP17AR8BNu/qApyFAcvPe7n9KbkESQNB/tX+6v73/uiRzcPR0f1eBRr65gWwAAABAJH+5QawBDoAFwAAATMyBBUGAgcnPgE1LgErAREjESERIxEhA/ao8AEiAb3DMIdxAbqeqLn+DroDZQKF+uGM/uskkCKddpmj/hoDo/xdBDoAAAACAHP/4gWaBcUAKQA3AAAFIiYnDgEjIAARNRASMxciAh0BFBIzMjY3JgI9ATQSMzISHQEUAgceATMBFBYXPgE9ATQmIyIGFQWab8FZR5pX/un+sfjOAX6Q5sckQSB+g9+5ut9wajNxQv18eHllaXZqaHceJSUhIAGIATKqARMBY5z++dGs8v7TBwhjARSs5vABM/7T9vqi/vdhDg0COZ/sSknmlP2x1durAAAAAgBt/+sEnARPACkAOAAABSImJw4BIyIAETU0EjMVIgYdARQWMzI2Ny4BPQE0NjMyFh0BFAYHHgEzAzU0JiMiBh0BFBYXPgE1BJxbnEc7gUnf/vPAoE1Zo48YLRdhYqiUk6tCQChYMulGP0FCT080NgwcHSEhAUoBAzvRAQqbsY09wfEFB1DXg2fB6/vGaXPBTgsKAZdsgKOSfWtrpzo5nWEAAAABADT+oQaOBbAADwAAASE1IRUhESERMxEzAyMRIQGw/oQDuf58Ate5lRKl+9kFG5WV+3oFG/rp/ggBXwABAB/+vwUXBDsADwAAASE1IRUjESERMxEzAyMRIQEx/u4CxPgB8rmBEqb80gOmlZX87wOl/Fv+KgFBAAACAJcAAATEBbAAAwAXAAABIxEzAREjEQ4BIyImNREzERQWMzI2NxEDF5WVAa25YbB79fO6jKJpvGcBQAK8AbT6UAJhHRrO8gHG/jqrfxwcArgAAAACAIMAAAPZBDsAAwAXAAAlIxEzASMRDgEjIiY1ETMRFBYzMjY3ETMChpWVAVO6PndFyti5cndFeTy65gI1/OUBihEQyNABOv7GiXgQEQIZAAEAjgAABLsFsAATAAAzETMRPgEzMhYVESMRNCYjIgYHEY65Ya989PS6jaFqvGYFsP2eHBzP8f46AcaqgB0c/UkAAAAAAgBH/+kFwAXDAB4AJwAABSAAETUuATUzFBYXNRAAMyAAERUhFRQSMzI2NxcOAQEhNTQmIyICFQPt/tj+waCflVJYATTpAQwBEfyAz95wnUowOLz9wALHpr6puhcBUgEfaxS/oWB5FAcBFAFc/qX+xG1l2f79LyiGJz8DWSHU9v71zwAAAv/j/+wEWQROABwAJAAABSIAPQEuATUzFBYXPgEzMhIdASEeATMyNjcXDgEDIgYHITU0JgK+5P74eHeUMDQg/qfc3f0zBJ2RZZM7STu5pmmRFAIOgBQBJ/QMHKqJSWEZwu3+/uB5psw4M3s6SwPMqYcaeZ0AAAAAAQCm/tkEywWwABYAAAEWABEQAiMnMjY1LgEjIREjETMRMwEzArr9AQ3u6wKdhQLK0P7wubmHAg3YAzgV/tn+/v73/uiRzcPQ0f1lBbD9iwJ1AAAAAQCa/v0EGQQ6ABYAAAEeARUGAgcnPgE1LgErAREjETMRMwEzAn291gG8wzCHcQG2oqu6ulsBiuACZB3av4f++SOQIZJulov+MQQ6/jUBywABALX+SwT9BbAAFwAAAREhETMRFAYjIiYnNx4BMzI2NREhESMRAW4C1bqomx80HQ4OQhJCR/0ruQWw/WsClfn3qrIJCZEFCGdfAt/9egWwAAEAkf5LA/UEOgAXAAABESERMxEUBiMiJic3HgEzMjY1ESERIxEBSwHxuaibHzQdDw1CEkJI/g+6BDr+KgHW+22qsgkJkQUIZ18CKf4wBDoAAgBf/+sFEAXFABYAHgAAASAAERUQACMgABE1ITU0AiMiBgcnPgETMhI3IRUUFgKCAToBVP60+f7N/scD+OTxdqdOLzrG47XPB/zDyQXF/pb+zqP+1/6OAVoBPG856gEcMCeGJkH6uwES2yPV9QAAAAEAaf/rBCgFsAAaAAABITUhFwEeARUUBCMiJDUzFBYzMjY1NCYrATUDIP10A2UB/mTg6v703sP+7rqbgJGgoaaOBRqWdf4SDd/My9/U1XedlXyfjpUAAAABAGn+dQQoBDoAGgAAASE1IRcBHgEVFAQjIiQ1MxQWMzI2NTQmKwE1Awz9iANlAf5x2eT+9N7D/u66m4CRoKSmjQOjl3X+EBHeyMng1dN1nZV6n46VAAD//wA6/ksEdAWwACYArEQAACYB06tAAAcBmgDwAAAAAP//ADv+SwOWBDoAJgDnTwAAJgHTrI4ABwGaAOEAAAAAAAIAWQAABGMFsAAKABMAAAERMxEhIiY1NDYzAREhIgYVFBYzA6q5/d/t/PvuAWj+mJyUlJwDbAJE+lDxycjq/SkCQqB7f6gAAAIAWQAABl4FsAAYACEAACEiJjU0NjMhETMRNz4BNzYmJzMeAQcOASMlESEiBhUUFjMCQu38++4BaLlab3MEAR8esyEjAgTrsP7t/piclJSc8cnI6gJE+uQBAYyCT6VRZpVKz9WVAkKge3+oAAIAZP/pBm4GGAAjADQAABMQEjMyFhc3ETMRBhYzPgE3NiYnNx4BBwIAIwYmJw4BIyICNQEuASMiBh0BFBYzMjY3LgE1ZNrMXo0zA7kCXFGMlAQBHx+zIiMCBP71znmfKDagccnbAscodlWTiIeSWncpAwICCgEKATpBPgECSPtBZHUB0b9jxmkBfLle/vH+6QJWYVtaARvvAThAR+rAFarGTEcVHBAAAAEANv/oBdIFsAAsAAABNCYrATUzMjY1NCYjITUhMhYVFAYHHgEdAQYWMz4BNzYmJzMeAQcKASMGJicCw4h5v4yslZKh/pkBZ/P5dXR4ZAFSSHqDBAEfH7QjIgIE+b6gqggBc3qQln2IfYWWzsx0pTEorINFUGAB1btjx2mIr1z+8/7nA5quAAABADH/4wTpBDoALgAAJQYWMz4BNzYmJzMeAQcOASMGJic1NCYrASczMjY1NCYjISchMhYVFAYHFR4BHQEC5wEpNXB1BAEgH7QjIwIF7LKLhgZrZ9MCu3tydnv++gYBDNDcXVthVdUtLgKZjk2iUGiPSNviA2+ETEpPlFVPU2CUpptTcSIDHHdaTgAAAAIAU/7EA9AFsAAhACsAABM1MzI2NTQmIyE1ITIWFRQGBx4BHQEUFhcVIy4BPQE0JiMBFAYHJz4BPQEzsKKvlpGg/u0BE/P3dHN7aB8lvikWjHwCRVxSaTAuuQJ6ln+FgIeVz85zpDEorISIRWojGSSCR4R6j/3EZM9HSEmRVZcAAgB5/rUDuQQ6ACIALAAAEzUzMjY1NCYjITUhMhYVFAYHFR4BHQEUFhcVIy4BPQE0JiMBFAYHJz4BPQEzwtR+cnJ+/uMBHc/bXl1kVhoivyQSa2gCBlxSaTAuuQG6lFRRVV6UpZtUcyIDHYFjYS9UFhMXYjRfU1v+dWTPR0hJkVWXAAAAAQBF/+gHbwWwACEAAAERBhYzPgE3NiYnNx4BBwIAIwYmJxEhERACKwE1MzISGQEE5QFcUYyTBAEfH7MiIwIE/vXNqrMI/hnQ+zUpmoQFsPupZHUB0b9jxmkBfLle/vH+6QOtxAPB/eb+av6WlQEbAVACsAABAD//6AY5BDoAIQAAAREGFjM+ATc2JiczHgEHDgEjBiYnESEREAIrAT8BMjY1EQPqAVpQcXYEAR8fsyIjAgTstKiyCP69qsw5AypuWwQ6/R9kdQG5qV68Y3qrWPn/A63EAkr+y/69/tWiAdL5AcwAAQCt/+gHcQWwAB0AAAERBhYzPgE3NiYnNx4BBwIAIwYmJxEhESMRMxEhEQTmAVtRjJQEAR8fsyIkAgX+9c6pswj9Obm5AscFsPupZXQB0b9ixWsBf7Ze/vD+6gOtxAEt/XoFsP1rApUAAAAAAQCQ/+gGTAQ6AB0AAAEhESMRMxEhETMRBhYzPgE3NiYnMx4BBw4BIwYmJwND/ga5uQH6uQFaUHF3BAEfH7IjIwIE7LWosggBz/4xBDr+KQHX/R9kdQG5qV28ZH2pV/n/A63EAAEAef/rBJ0FxQAhAAAFIAAZARAAITIWFwcuASMiAhURFBIzPgE3NiYnMx4BBwYEArn++/7FATsBBXKsRTtEjla20dC3j5YEARoZtCYTAQT+8BUBWAESAQYBEQFZLCuDIiL+98n++M3++AGajlWxY7VlT9ziAAAAAAEAZf/rA8YETgAhAAAlPgE3NCYnMx4BFQ4BIyIAPQE0EjMyFhcHLgEjIgYdARQWAlFnUgMLCbINDgTIqen+/fneX4owLDB3RpCOl4ABVVc5eTpGcDaioAE16CrnATUiII0bHuefKqPlAAAAAAEAJP/oBUUFsAAZAAABITUhFSERBhYzPgE3NiYnNx4BBwIAIwYmJwIC/iIEgP4YAlxRjJQEASAfsyMiAgT+9c2ptAgFGpaW/D9kdQHRv2LGagF/t13+8f7pA63EAAAAAAEARv/oBLgEOgAZAAABITUhFSERBhYzPgE3NiYnMx4BBw4BIwYmJwGs/poDi/6VAVtRcXYEAR8esiMjAgTttKm0CAOmlJT9s2V0AZuPTqVTapJK3eMDrcQAAAAAAQCb/+sFAAXFACkAAAEiBhUUFjMyNjUzFAQjICQ1NDY3NS4BNTQkITIEFSM0JiMiBhUUFjsBFQLMv7nLuqXJuf6+5f76/siKiXmEASMBBeQBL7nGlLq1qbm3ApuAinyVnXfV1N7MgaoqAy6kaMrU2rhujpB0d4OWAAAA//8AswKMBPADIQBGAYbZAFMzQAD//wC7AowF8wMhAEYBhq8AZmZAAP//AA3+bgOhAAAAJwBBAAn/AwAGAEEJAAABAGAEAgF4BisACQAAEzQ2NxcOAR0BI2BcUmoyLbkEsWTPR0dKkFayAAAAAAEAMAPnAUcGGAAJAAABFAYHJz4BPQEzAUdcUmkwLrkFYWXPRkhIkVa6AAAAAQAk/tYBOwD6AAkAACUUBgcnPgE9ATMBO1xSaTAuuU9kz0ZHSZFVrgAAAP//AFAD5wFnBhgARwFmAZcAAMABQAAAAP//AGAEAgKyBisAJgFlAAAABwFlAToAAP//ADwD5wKGBhgAJgFmDAAABwFmAT8AAAACACT+1gJkAPoACQATAAAlFAYHJz4BPQEzBRQGByc+AT0BMwE7XFJpMC65ASldUmkwLrpPZM9GR0mRVa6rZM9GR0mRVa4AAAABAEYAAAQkBbAACwAAASERIxEhNSERMxEhBCT+bLr+cAGQugGUA6P8XQOjlwF2/ooAAAAAAQBX/mAENAWwABMAACkBESMRITUhESE1IREzESEVIREhBDT+arr+cwGN/nMBjboBlv5qAZb+YAGglQMOlwF2/oqX/PIAAAAAAQCKAhgCIgPeAA0AABM0NjMyFh0BFAYjIiY1im1eYG1tX19tAxhZbW1ZPVlqaln//wCmAAADFwDFACYAEAQAAAcAEAG5AAD//wCmAAAEtgDFACYAEAQAACcAEAG5AAAABwAQA1gAAAAGAET/6wdXBcUAGQAnADUAQwBRAFUAAAE0NjMyFhc+ATMyFh0BFAYjIiYnDgEjIiY1ATQ2MzIWHQEUBiMiJjUBFBYzMjY9ATQmIyIGFQUUFjMyNj0BNCYjIgYVARQWMzI2PQE0JiMiBhUTJwEXAzegikx0JiVzTYqhoIlOdCUlc0yLof0NoIqKoZ+Ki6EDflJPTlFST05RAcpST01SUk9OUftDUk9OUVNOTlH8aALHaAFlgatAOTlAq4FOgqo+Ojo+qoIDgYKrq4JNgqmqgfzMTWhnTk5NaGhNTk1oZ05OTWhoTQLmTWdnTU1NaWlN+9dBBHJBAAAAAAEAbACaAiADtAAGAAAJASMBNQEzAR4BAo3+2QEnjQIn/nMBhBMBgwABAFkAmQIOA7QABgAAEwEVASMJAecBJ/7ZjgEC/v4DtP58E/58AY0BjgAAAAEAOwBvA2oFIgADAAA3JwEXo2gCx2hvQQRyQQACAEgCMANSBcUACgAPAAABMxUjFSM1IScBMwEhEScHArqYmKP+NQQByan+QgEbAxEDZn25uV4Cfv2hAYsBIgAAAQB6AosC+AW6ABMAABMXPgEzMhYVESMRNCYjIgYHESMR+h4lbkl+hqpKRjlMFaoFq3pCR5Og/gQB3WpaOTP9ywMgAAABAEYAAARRBcUAJwAAAQ4BByEHITUzPgE3IzUzJyM1Myc0NjMyFhUjNCYjIgYVFyEVIRchFQGvAyAeAuMB/DYKMTIDsKsGpJ4F277K1bp9aGl2BQGm/mAFAZwBvliYOZWVDbNplpGWldDlz7R8cZSLlZaRlgAAAAADAKf/7AYMBbAACgATACsAAAERIxEhMhYVFAYjJzMyNjU0JisBJREzFSMRFBYzMjY3Fw4BIyImNREjNTMRAWC5AV/s/v7spqablZWbpgPQ0NA2LxgxFRkaXS5xgJubAjb9ygWw9MnK85anfn+rJv75jf1qUD8HBoMRFY2eApaNAQcAAAABAE//6wPUBcUAKQAAASEUFjMyNjcXDgEjIgA1IzUzNSM1MzU0ADMyFhcHLgEjIgYdASEVIRUhA5L+DK6ZO201Ejp3Pur+6paWlpYBFOo8cUQSN246mawB9P4MAfQCArTOERGYDxABHfp4qXoR+QEeEA+aEBPMsxN6qQAABAB7/+sFgwXFABsAKQA3ADsAAAEUBiMiJj0BNDYzMhYVIzQmIyIGHQEUFjMyNjUBFBYzMjY9ATQmIyIGFTM0NjMyFh0BFAYjIiY1EycBFwKplX+CmJeBgJaLR0RFSEpFQ0YBEKGLiaChioqgi1FOT1JRTk9Sy2j9OWgEHm6QqoFNgaySbTpOaU1NTGhPOPz5gqqqgk6Bq6uBTWhoTU5OZ2hNA8pB+45BAAAAAAIAaP/rA2oFxQAaACYAAAUiJj0BDgEjNTI2NxE0NjMyFh0BFAIHFRQWMwM1NCYjIgYVET4BNQLMzMgzZTg6ZjCYi3qVx7JhehsuKDY0YGAV7NgPDgyuDg4B3LTHqZMqpP6zZVqVlAPXLFFPbnH+gkzScwAABACrAAAISgXAAAMAEQAfACsAAAEhNSEBNDYzMhYdARQGIyImNTMUFjMyNj0BNCYjIgYVASMBIxEjETMBMxEzCAz90wIt/ZK3n5+3tp6ht6NaW1haW1laWf6yuf0tA7m5AtMDuQFrjQJ5l7i4l3WYtraYW2pqW3VYbGtZ+48Ee/uFBbD7hgR6AAIAZgOXBFwFsAAOABYAAAEjAyMDIxEjETMbATMRIwEjESMRIzUhBAIDmzOgA1pxpadrWv3kkluTAYAE/P6bAXL+jgIZ/nABkP3nAcj+OAHIUQAAAAIAmP/sBJMETgAVAB4AACUOASMiADU0ADMyAB0BIREeATMyNjcBIgYHESERLgEEFlm4Yd7+0gE/zdMBHP0AOYlPYbZZ/pBLizsCHDeIXjg6AUTt5gFL/s7rL/64Njg7PwMqQDr+6wEeNjsA//8Ab//1Bk8FsgAnAckAEQKGACcBdAEJAAAABwHQA0wAAAAA//8Aa//1BuIFwAAnAcsAAgKUACcBdAG8AAAABwHQA98AAAAA//8AbP/1BxIFrwAnAc3/+gKOACcBdAH0AAAABwHQBA8AAAAA//8Aa//1Bm8FrwAnAc8ADQKOACcBdAE3AAAABwHQA2wAAAAAAAIATP/rBC0F7QAUACEAAAEEABEVFAAjIgA1NBIzMhYXNy4BJxMyNj0BLgEjIgYVFBYB6AENATj+59rd/u/13l6jPAMp4qWPjKolrISQiqcF7Uv+Pv6ncPr+zgET0+8BETw5AsnwOPsx47RlUm3JoYjJAAAAAQCp/yoE5QWwAAcAAAUjESERIxEhBOW5/Ta5BDzWBfD6EAaGAAAAAAEARf7zBKsFsAAMAAAJASEVITUJATUhFSEBA2v9uQOH+5oCYf2fBBn8xQJIAkH9SJaNAs4C1I6W/UAAAAEAqAKMA+sDIQADAAABITUhA+v8vQNDAoyVAAABAD8AAASYBbAACwAAARczNwEzASMDIzUhAh4VAxcBjr394o32uAE7AU9iYgRh+lACdZcAAwBr/+sHwgROABkAJwA1AAABFAIjIiYnDgEjIgI9ATQSMzIWFz4BMzISFQUUFjMyEjc1JgIjIgYVITQmIyICBxUWEjMyNjUHwvXRq+tQUOup0/T00arsUVDsq8/1+WKHh5PSHB3Tk4WHBeWIg5XTHBvTlIWIAfrk/tXZoaHZASrlROMBLdqgoNr+0+NErc0BGW8qbQEZz6urz/7nbSpv/ufNrQAB/7T+SwKOBi0AHAAABRQGIyImJzceATMyNjURNDYzMhYXBy4BIyIGFREBZaebIDIdDg5AE0FIr6MiRCoYFCwbWlxZqrIJCZEFCGheBR6vuQsKjAUGbWX64gAAAAIAZQEaBBQD+wAbADcAABM+ATM2FhceATMyNjcfAQ4BIyImJy4BByIGBycDPgEzNhYXHgEzMjY3HwEOASMiJicuAQciBgcnbzB5Q0Y9Z1g/Q0F5LwMJMXlCQz9YZz1GQnkuAxMweUNGPWdbPENBeS8DCTF5QkM/WGs5RkJ5LgMDaEZMARczLRhKRAGjR0sYLTMXAUtDAf76RkwBFzMvF0tEAaRHSxgtNRYBTEMBAAAAAQCYAKQD2gTfABMAAAEzFSEDIRUhByc3IzUhEyE1IRMXAw/L/t2OAbH994NTY8YBHY/+VAIEmFMDzZ7+/57sOrKeAQGeARI7AAAA//8AngACA+YEjQBnAB4AVgCyQAA5mgAHAYb/+/12AAD//wCZAAAD7wSgAGcAIAATAMRAADmaAAcBhv/6/XQAAAACACsAAAPcBbAABQAPAAABMwkBIwEhAScjBwkBFzM3AbyMAZT+cI3+bAL0/vkWAxb/AAEGFgMWBbD9J/0pAtcCAz4+/f39/j8/AAD//wDHALIBgwTrACcAEAAlALIABwAQACUEJgAAAAIAbgJ6AjMEOgADAAcAABMjETMBIxEz+42NATiNjQJ6AcD+QAHAAAABAFz/LwFXAOwACQAAJRQGByc+AT0BMwFXS0dpJiSxgFy2P0g/e0xvAAAAAAIAHwAAA80GLQAXABsAADMRIzUzNTQ2MzIWFwcuASMiBh0BMxUjESEjETPKq6vOvkSCVR83dUJ4aN3dAkm6ugOtjXe5wx8emhYdaHB3jfxTBDoAABYAW/5yB+4FrgANAB0AKwA7AEEARwBNAFMAXQBhAGUAaQBtAHEAdQB+AIIAhgCKAI4AkgCWAAABNCYjIgYdARQWMzI2NQUyNjU0Jic1PgE1NCYrAREnFAYjIiY9ATQ2MzIWFQUUBiMiJjUjFBYzMjY1ESMBETMVMxUhNTM1MxEBESEVIxUlNSERIzUBMx4BFRQGKwE1ATUhFSE1IRUhNSEVATUhFSE1IRUhNSEVEzMyFhUUBisBBSM1MzUjNTMRIzUzJSM1MzUjNTMRIzUzAzl/aGh+fmpofQEgXmc0LSUqbWe8n0hBQ0lIQkFKA7o2KTM1XWhdU2hc+cRxxAUox2/4bQE1xAXsATZv/NoFMDI0M34BTgEW/VsBFf1cARQCCgEW/VsBFf1cARS8XT44Ojxd/PFxcXFxcXEHIm9vb29vbwJEYnl5YnBkd3dk2E5NLkQNAw48KExK/dvYR0xMR3BFTk5Fmyw2LC9TUVtQAXr7TwE7ynFxyv7FBh8BHXSpqXT+46n8tgItJykqqQNKdHR0dHR0+ThxcXFxcXEEWx8oKSeW/H76/BX5fvx++vwV+QAAAAAFAFz91QfXCGIAAwAdACEAJQApAAAJAwU0Njc+ATU0JiMiBgczPgEzMhYVFAYHDgEVFyMVMwMzFSMDMxUjBBgDv/xB/EQEDxkpSV2mloulAssBOiw3OjIrUDrKyspLBAQCBAQGUvwx/DEDz/E2OxsogFCDlIGJNDM+NjJNHDlWWluq/UwECo0EAAAAAAEAXP/vA6QEjQAeAAAbASEVIQM+ATc2FhUUBiMiJjU3FBYzMjY1NCYjIgYHiEcCof4AIyhxP7fIzN216rl9aXx0cmpsZRkB+QKUnv7BGyUCA8a8ts6fpA5XZ3xzb305OAAAAAACAFcAAAMkAyEACgAPAAABMxUjFSM1IScBMwEzEScHAqKCgqH+XQcBpqX+Y/wDEgEYfpqaYgIl/fcBRgEfAAAAAgBz/+sEDQXFAA0AGwAAARACIyICGQEQEjMyEhEnNCYjIgYVERQWMzI2NQQN8dva9PLa2/O6i4mJioyJiYkCLP7j/twBJQEcAVcBHAEm/tr+5CjEwMDE/lvEwsDGAAAAAf+i/t8CzANBAA8AAAMzIAAREAIjJzI2NS4BKwFe1QEfATbv6gKchQHLz9UDQf7V/ur+9/7okc3D0dEAAf+2/ksBZwCYAA8AACUVFAYjIiYnNx4BMzI2PQEBZ6ebIDIdDg4/FEJHmPGqsgkJmgUHX13xAAABABv+ZgHCAEAAEwAANx4BFRQGIyImJzceATMyNjU0Jif4ZmR/ZENbJh8jMCM9NEQ9QDSMTWJrGRN3DQ4wKjJWMAAAAAEAZ/6ZASEAmgADAAABIxEzASG6uv6ZAgEAAAACAIME2QLSBs4ADQAhAAABFAYjIiY1MxQWMzI2NRMUBiMiJiMiBhUnNDYzMhYzMjY1AtKeiYqelkVNS0aNXkg6eSojL1NcSS+DKyIxBa5hdHRhNkJDNQEJTGdMMyYVSmtMMyYAAgCBBOACygcCAA0AHQAAARQGIyImNSMUFjMyNjUlJz4BNTQmIzcyFhUUBg8BAjdGS01GkpyJiJz+pAFMQFdJB4+VU0IBBbA0QEA0X3FxXxB8AxkeHx1QTEM3Nwc+AAAAAgCBBN8C4AaJAA0AEQAAARQGIyImNTMUFjMyNjUnMwcjAuCijY+hmEhQTUlgmaRmBbBgcXFgNUBBNNnGAAAAAAIAbQTkA0IG0gAIABwAAAEHIycHIyclMzcUBiMiJiMiBhUnNDYzMhYzMjY1A0IBpcXFpAEBKYPDXkM2bycgM01dQyt5KB80BOcDn58D8OU/XUgwHBM+YkYsHQAAAgBpBOQD7AbOAAYAFgAAASMBMzcXMy8BPgE1NCYjNzIWFRQGDwECNbz+8KnFxapTAUU3TUAFf4dLOwEF6f77urqJgwQZIiMgXFZLPz4HPAAC/14E0gNGBoAABgAKAAABIycHIwEzBSMDMwNGxaqqxAEimP6PjMjHBNKfnwEFWAEBAAAAAgBuBOQEWAaSAAYACgAAATMBIycHIwEzAyMBkpgBIsWpqsYDIsjJjQXp/vufnwGu/v8AAAIAWwSnAv8GeQANABEAAAEUBiMiJjUzFBYzMjY1ByMnMwL/tZ2etJZYZGFaZ5fS2AWweZCQeUNRUkIFzgAAAAABAJ8EkAFwBhcABQAAEzczBxUjn3NeGLkFI/T9igAAAAIAKQAABIMEjQAHAAoAAAEhAyMBMwEjASEDA1r9+GnAAdavAdW//ccBlswBEP7wBI37cwGkAg0AAwCbAAAECQSNAA8AGAAhAAAzESEyFhUUBgcVHgEVFAYjAREhMjY1NCYjJTMyNjU0JisBmwGK1+dcVmZy2Mf+6wEVc3Jzcv7r0IKDfYjQBI2coVaBIAMYlGKkpAIL/ohfW1pkiVlZWUcAAAAAAQBy/+8EJASdABsAAAEOASMiAD0BNAAzMhYXIy4BIyIGHQEUFjMyNjcEIw70ztL+8QEP0tTvDroOhoOCpaWCg4UOAY7QzwEb5qzlARzOz4p/zZ+toM5/jQAAAAACAJsAAAQtBI0ACQATAAAzESEyAB0BFAAjAxEzMjY9ATQmI5sBotUBG/7l1ejohLKyhASN/vfV0tb++QP5/Jq7j9OOuwAAAAABAJsAAAPHBI0ACwAAASERIRUhESEVIREhA3D95QJy/NQDLP2OAhsCFf5+kwSNlP6wAAAAAQCbAAADyASNAAkAAAEhESMRIRUhESEDcf3kugMt/Y0CHAH4/ggEjZT+lAABAHL/7wRHBJ0AHwAAJQ4BIyIAPQE0ADMyFhcHLgEjIgYdARQWMzI2NzUhNSEERy7st+r+5gEb5N7hErgOh4SSs7GZb4sf/vgBwJ1CbAEF2fPXAQbBqQFtariQ9JO4LB38lQAAAQCbAAAEVQSNAAsAACEjESERIxEzESERMwRVuv26uroCRroB7v4SBI399QILAAAAAQCbAAABVASNAAMAACEjETMBVLm5BI0AAQBB/+8DcQSNAA8AAAEzERQGIyImNTMUFjMyNjUCubjdscXdunZyXXkEjfzUrcWvsmpkeWYAAAABAJsAAARABI0ADAAAASMRIxEzETMBMwkBIwG+abq6WwGN3/4zAfHqAfj+CASN/gIB/v3P/aQAAAEAmwAAA2oEjQAFAAAlIRUhETMBVQIV/TG6k5MEjQAAAQCbAAAFUASNAA4AACUBMxEjEScBIwEHESMRMwL5AXDnuQP+pYD+nwO68PIDm/tzA0YB/LkDWQH8qASNAAAAAAEAmwAABHIEjQALAAAhIwEHESMRMwE3ETMEcrj9ngO6ugJiA7gDbwH8kgSN/JABA28AAAACAHL/7wRXBJ0ADQAbAAABFAAjIgA9ATQAMzIAFSc0JiMiBh0BFBYzMjY1BFf+8ePj/vABD+LjARG5ppWUo6SVlaQB8Ov+6gEX6qzpARj+6OkBr72+rq2wvr2xAAIAcv+LBJoEnQATACEAAAEUBgcXBycOASMiAD0BNAAzMgAVJzQmIyIGHQEUFjMyNjUEVzY0rX+uO4JL4/7wAQ/i4wERuaaVlKOklZWkAfBlp0Kob6ciIQEX6qzpARj+6OkBr72+rq2wvr2xAAIAmwAABDoEjQAbACQAAAERIxEhMhYVFAYHFR4BHQEUFhcVIy4BPQE0JiMlITI2NTQmIyEBVboBy8/bYF9nWBIYvxgMa2f+0AERf3Fyfv7vAeL+HgSNsKVbfSUDHo1rZTNfGBMaazljXWSVXlxfaQABAF3/7wQNBJ0AJQAAATQmJy4BNTQ2MzIWFSM0JiMiBhUUFhceARUUBiMiJDUzFBYzMjYDVHur4sbt0NXouYd9hIByudzH+d3N/vO5pnuKkwEvSVcrPJCXlau4r2BzXk1MUC07l5Ocpai/cGRfAAAAAQBHAAADzwSNAAcAAAEhESMRITUhA8/+lbn+nAOIA/n8BwP5lAAAAAEAjP/vBHAEjQARAAABERQEIyIkNREzERQWMzI2NREEcP7w4uH+77isjpCqBI39AcfY2McC//0BgIyMgAL/AAABACoAAAR9BI0ACQAAARczNwEzASMBMwI6GQMYAUnG/i2u/i7HASBZVwNv+3MEjQABAEEAAAXABI0AEwAAARczNxMzExczNxMzASMDIwMjATMBwwMDA9+t4AMDA7jH/tes6QPqq/7XxgEJFBYDgvx8FBYDgvtzA2z8lASNAAAAAAEAOAAABD4EjQALAAAJATMJASMJASMJATMCOQEg2/51AZXZ/tb+2dwBlv5z2gLXAbb9v/20Ab/+QQJMAkEAAAABACAAAAQwBI0ACAAACQEzAREjEQEzAigBOND+Urn+V9ACQgJL/Q3+ZgGjAuoAAAABAE4AAAPYBI0ACQAAJSEVITUBITUhFQEyAqb8dgKM/ZYDUJOTcgOHlG4AAAIAe//vA/YEnQANABsAAAEUBiMiJjURNDYzMhYVJzQmIyIGFREUFjMyNjUD9vHLzfLwzczyuYp7eoqMenqJAZvJ4+PJAVfI4+THAYGVlYH+qIKXl4IAAAABAEIAAAHLBJ0ABQAAISMRBzUlAcu50AGJA9MDiEUAAAEAWgAAA3AEnQAYAAApATUBPgE1NCYjIgYVIzQ2MzIWFRQGBwEhA3D89QGbaUReXWxzudu9scR0nv74AiOTAZhlcUBYcHNYl8izq2+Wof76AAAAAAEAWf/vA50EnQAoAAABMjY1NCYjIgYVIzQ2MzIWFRQGBx4BFRQGIyImNTMUFjMyNjU0JisBNQH+bmVvb1t1ud+qwNhfV2Nl6cGr77h8ZnF/cXSnAppgV1BoYUuTramiU4MnIohmpLKpqlJubVZmX5AAAAAAAgBHAAAEEQSNAAoADgAAATMVIxUjNSEnATMDEScBA0nIyLn9uwQCQsC5A/6IAYKV7e12Ayr89QIRAf3uAAAAAAEAXQAABCMFxQAYAAApATUBPgE1NCYjIgYVIzQ2MzIWFRQGBwEhBCP8VgHdhFqBcJyRuf7oxuWMg/55AsuDAhOSp1pylJqRw/7gtXnpkP5XAAAAAAIAev/vA9IEnQAaACcAAAEyFhcHLgEjIgYdAT4BMzIWFRQGIyImNRE0JBMiBgcVFBYzMjY1NCYCTUSRQh87b0x+nTOPXL3D6sC98QEKplx9HYhsb4JzBJ0bGI8ZFaOCcTc8w7at0fTIATfH9P20QjoqgqeGZW13AAEARwAAA2MEjQAMAAABBgIRFSM1EBI3ITUhA2PBornkkf2LAxwD+ev+xv7lubkBFQGSmZQAAAAAAwBc/+8DxQSdABcAIwAvAAABFAYHHgEVFAYjIiY1NDY3LgE1NDYzMhYDNCYjIgYVFBYzMjYDNCYjIgYVFBYzMjYDomRZaXfxu8T5eW1dZ+S1rd6XjWdulJNxZ4sjeldifoBiWHcDXVmDJSeOYaSzs6Rhjiclg1mbpaX9Uldwb1hbbW0Cak5iX1FQZGQAAAAAAgBL/+8DnQSdABoAJwAAJTI2PQEOASMiJjU0NjMyFhURFAYjIiYnNx4BEzI2NzU0JiMiBhUUFgHec5IvgE3G1urAvOz6xUSRRB09clxdfRyHaWyCdoKUc3o1Ncyxqt30x/6ouOMaGJAaFQGlSjg5gKeTYGqFAAAAAQBeAAABhAMsAAUAACEjEQc1JQGEpIIBJgKUAYIXAAABAHEAAALGAywAGAAAKQE1AT4BNTQmIyIGFSM0NjMyFhUUBg8BIQLG/bQBL0gsOj9ISqGkj4iUV3WoAXp+AQg+Siw0P0E1aYx9dlBtbJIAAAEAaf/1AuADLAAoAAABMjY1NCYjIgYVIzQ2MzIWFRQGBx4BFRQGIyImNTMUFjMyNjU0JisBNQGnSEFJSjtKoqeAkqNFP0hKsJOAtKNNRE1USk2DAdU6Ni46MipldnVwOFoaGF1GcXp0dTE6OzNBOXoAAAAAAQBKAAACIwWwAAUAACEjEQU1JQIjuf7gAdkE3Ah3ZQABAHL/9QLxAyEAHgAAGwEhFSEHPgE3NhYVFAYjIiY1NxQWMzI2NTQmIyIGB5MzAgD+kBkdUC6Gk5unirOhVEhUTE5HRUUQAVoBx4G/EhkBAo6CfY1tcAszN0VGRVEjIAACAHv/9QMAAywAGgAnAAABMhYXBy4BIyIGHQE+ATMyFhUUBiMiJj0BNDYTIgYHFRQWMzI2NTQmAd02aiwdKFA1V2skZkKGkbGRj7TIgkNWD1lIS1ZMAywTEHsQD19RRyQoiX13kKeK1oqm/lktKApRYks+Q0YAAAABAF4AAAKoAyEADAAAAQ4BHQEjNTQSNyE1IQKoim6imF3+WwJKAqKgx7x/f7sBEVd/AAAAAwBy//UDAwMsABcAIwAvAAABFAYHHgEVFAYjIiY1NDY3LgE1NDYzMhYDNCYjIgYVFBYzMjYDNCYjIgYVFBYzMjYC60hASla0jpS7WE5DSqyJhKeJXkRKY2JMRVwaTTtBUlRAOU4CUDxaGxxiQHJ6enJAYhwbWjxrcXH+LDZDQzY3PT0BmC82NDEwOjoAAAAAAgBp//UC6AMsABoAJwAAJTI2PQEOASMiJjU0NjMyFh0BFAYjIiYnNx4BEzI2NzU0JiMiBhUUFgGWTWEgVjKToLCRi7O+lDNsMxsrU0g/Ug5ZRkdTTXNVRkwjIo58dZipiet/mxERexEOARgwJBtQY1Q6RFAAAAAAAgB8//UDGwMsAA0AGwAAARQGIyImPQE0NjMyFhUnNCYjIgYdARQWMzI2NQMbtpmatrWZmrejXFJSWltTUloBG4qcnIrriZ2diQFPV1dP7FFXV1EAAQCPAowDCwMhAAMAAAEhNSEDC/2EAnwCjJUAAAMAngRCAmsGcwAEABAAHAAAATMXByMHNDYzMhYVFAYjIiY3FBYzMjY1NCYjIgYBsbkB2XKCY0lHYGBHSWNVMiUjMDAjJTIGcwO110heXUlJWVpIJDAwJCYyMwAAAgBvBHACvgXWAAUADwAAARMzFQMjJTQ2NxcOAR0BIwGGdMTfWf7pWlhJLCeoBIMBQhX+wlRXiy46LmdHUAAAAAEAXv/rA/oFxQAoAAABMzI2NTQmIyIGFSM0NjMyFhUUBgceARUUBCMiJDUzFBYzMjY1NCYrAQGGp4pzfoF5jrn2ys7qbnCHbv8Azsr+/LqSgoWQhJCnAzCEeIGCiHSt5dPKXbAwK7Z1y9/VwXeKh4qLgAAAAgA5AAAEUQWwAAoADwAAATMVIxEjESE1ATMBIREjBwOEzc24/W0Ch8T9fQHLAxsB6JX+rQFTawPy/DgCyUYAAAEAmv/rBBEFsAAeAAAbASEVIQM+ATc2EhUUAiMiJjUzFBYzMjY1NCYjIgYHsVQC1f3HMDByUcrj5OW88q+LdISMjYB6bBoCkQMfqf5cJS0CAv775OD++8fNfIOvn5GzRkwAAAACAIf/6wQzBcUAGgAnAAABMhYXBy4BIyIGHQE+ATMyEhUUAiMiABkBEAATIgYHFRQWMzI2NTQmAp9MkTIoNGlKoL9ApWTH4/PQ2P7vATCpapElqoaAipIFxSIbkRoe9c4jPEH+99Xl/ugBLwEeAR8BGwFT/XNVSnPO2MyclroAAAMAHv5KBBEETgAvAD8ATQAAASMeAR0BFAYjIiYnDgEVFBY7ATIWFRQEIyImNTQ2Ny4BNTQ2Ny4BPQE0NjMyFhchASImJw4BFRQWMzI2NTQmIwEUFjMyNj0BNCYjIgYVBBGZHh/tvStJIxkcQzytytH+3PTe8mFSHB0/NVVa68EoSyQBb/2MFSYTNUGLjKC/ZH7+q4dua4aGbW6FA6orYDcWmcwKCxQ0Iy4mj5aA1J54XIEqFzsoRmEmMZdcFp/HCgr79AIEGFw9SFx4R0tFAqRVe3tVFlh4eFgAAAABADsAAAP8BbAADAAAAQoBAwcjNxoBEyE1IQP8/7YnD7oPKefP/PYDwQUa/sH+G/6jmZkBYgIXAQiWAAABAFr+TARHBEkAIwAAEzIWFxsBMwETHgEzMjY3Bw4BIyImJwMBIwEDLgEjIgYjJz4Bwn9uO3P/u/6g0SFBLQ4OFAILJA5vc0KP/ufEAYOoI1M+CzcCARU8BEmJgv74AgT9L/4hS00CA5wGCXmWAUf9vwMQAYRWYgWSBQoAAwBm/+sEGAXFABgAJAAwAAABFAYHHgEVFAQjIiQ1NDY3NS4BNTQ2MzIWAzQmIyIGFRQWMzI2AzQmIyIGFRQWMzI2A/B/b4GV/v7W2v8AkX9teunGw++Ron+CnZuGgZ4pim5whodxb4cENXWpKy24fs3R0M5+uSwDKal0xMzN/JV7mpl8gI2OAyNwjol1c4aGAAAAAAIAZP/rBFgETgAUACIAACUjDgEjIgI9ARASMzIWFz8BMwMTIwEUFjMyNjc1LgEjIgYVA4MDNbeMydvazIm1NQMhsGpxsP11h5J3giIahnmTiOt+ggEb7xUBCgE6gHsB5v3i/eQB9arL07UmrN7twQACAGD/6wQnBbAAGwAsAAABFSEeARcWEh0BFAAjIgA9ATQSNzoBMzcmJCc1ExQWMzI2PQE0JicuASMiBhUDtP40HHRMsbL/AOPk/wDz2gkUCgEW/ug5LJWVlJZnSxcwHJ+gBbCSH2ZAnf73nxjt/twBJO0YwAEGGAIU9kBy/Eyo1NWnGHO1NQYGzJ0AAAIAtgAABLYFsAAJABMAADMRISAAERUQACEDETMyNj0BNCYjtgF3AVgBMf7P/qi+vvnX1/kFsP7W/svz/sv+1wUa+3ve6/bo3gAAAAACAHL/6wPsBE4AHwAqAAAhLgEnDgEjIiY1NDY7ATU0JiMiBhUjNDYzMhYVERQWFyUyNjc1IyIGFRQWAy0JCQI7rGivqfrjyHZ1d3O50dzNzQwQ/flopiTOkoxVKzsfRFadpKuhiWBXX0uFu5yz/ds6ajaKUTvia2VOUAAAAgC1AAAE8gWvAA4AFwAAARQGBwEVIwEhESMRITIWASEyNjU0JiMhBJeHfAFez/7A/ou5Afrv+fzXAUaWlJOc/r8EC4LDMP18EgJq/ZYFr9b+JouDf44AAAEAtgAABR0FsAAMAAABBxEjETMRNwEzCQEjAhanubmoAevV/bwCiugCrbH+BAWw/Sa2AiT9g/zNAAAAAAEAkgAABBQGGAAMAAABBxEjETMRNwEzCQEjAcN3urprAVTe/lQB19sB8nz+igYY/EN5AWb+Of2NAAAAAAEAtgAABPkFsAALAAABESMRMxEzATMJASMBb7m5DAJu5/1jAsbkArf9SQWw/XgCiP08/RQAAAAAAQCSAAAD8QYYAAwAAAEjESMRMxEzATMJASMBUQW6ugEBivD+KgIA5AH0/gwGGPxzAa/+Df25AAACAFT/6wP9BcUAGwAoAAAlMjY9AScOASMiAjU0ADMyABkBEAAjIiYnNx4BEzI2NzU0JiMiBhUUFgH/lq4DMJZe1/EBAsDmAQH+6uhPm0IdP35vcpQhlZJ0mo6A1tosAUlKAQPx6AEf/ur+5/6c/uD+2RwfkB4YAd9gTZzFwsylob4AAAACAJsAAAQZBI0ACgATAAABESMRITIWFRQGIyUhMjY1NCYjIQFVugHPzOPizf7rARV7enp7/usBpv5aBI3Np6nKlH9eYIIAAP//AIEEpQLYBbACBgCcAAD//wAAAAAAAAAAAgYAAwAA//8AJQIhAg0CtgIGAA8AAAACAC4AAAUFBbAADQAbAAAzESM1MxEhIAARFRAAIRMhETMyEj0BNCYjIREh1KamAbsBIgFU/qj+0C3+4/Do5uLa/v4BHQKalQKB/qb+5MX+4v6pApr9+wEF28ff//4VAAACAC4AAAUFBbAADQAbAAAzESM1MxEhIAARFRAAIRMhETMyEj0BNCYjIREh1KamAbsBIgFU/qj+0C3+4/Do5uLa/v4BHQKalQKB/qb+5MX+4v6pApr9+wEF28ff//4VAAABAAYAAAQYBhgAHAAAASERFz4BMzIWFREjETQmIyIGBxEjESM1MzUzFSECgv7nAzeiZ7G7uXR3V4gsuqmpugEZBNL+1QFQWMzd/VsCp42AUkj85gTSlbGxAAAAAAEAOwAABIoFsAAPAAABIxEjESM1MxEhNSEVIREzA5zduebm/jUET/413QM2/MoDNpUBT5aW/rEAAf/j/+wCXwVBAB8AAAERMxUjFTMVIxEUFjMyNjcXDgEjIiY1ESM1MzUjNTMRAXLQ0O3tNi8YMRUZGl0ucYDV1ZubBUH++Y2+lf69UD8HBoMRFY2eAUOVvo0BB///ACcAAAUiByICJgAjAAAABwBCARQBXf//ACcAAAUiBx8CJgAjAAAABwBzAc4BWf//ACcAAAUiB0YCJgAjAAAABwCaANABXf//ACcAAAUiB1ECJgAjAAAABwCgAMoBYP//ACcAAAUiBwwCJgAjAAAABwBoAKoBXP//ACcAAAUiB4gCJgAjAAAABwCeAVEBqP//ACcAAAUiB58CJgAjAAAABwHUAWEBLP//AIP+RATJBcUCJgAlAAAABwB3Adv/9///ALYAAAR1ByICJgAnAAAABwBCAOABXf//ALYAAAR1Bx8CJgAnAAAABwBzAZoBWf//ALYAAAR1B0YCJgAnAAAABwCaAJwBXf//ALYAAAR1BwwCJgAnAAAABwBoAHYBXP///9wAAAF8ByICJgArAAAABwBC/40BXf//AMMAAAJkBx8CJgArAAAABwBzAEYBWf////IAAAJPB0YCJgArAAAABwCa/0kBXf///8wAAAJ1BwwCJgArAAAABwBo/yMBXP//ALYAAAT+B1ECJgAwAAAABwCgAPsBYP//AIL/6wUNBzcCJgAxAAAABwBCATQBcv//AIL/6wUNBzQCJgAxAAAABwBzAe4Bbv//AIL/6wUNB1sCJgAxAAAABwCaAPABcv//AIL/6wUNB2YCJgAxAAAABwCgAOoBdf//AIL/6wUNByECJgAxAAAABwBoAMoBcf//AJb/6wTXByICJgA3AAAABwBCASYBXf//AJb/6wTXBx8CJgA3AAAABwBzAeABWf//AJb/6wTXB0YCJgA3AAAABwCaAOIBXf//AJb/6wTXBwwCJgA3AAAABwBoALwBXP//AB4AAATTBx0CJgA7AAAABwBzAaABV///AHL/7APsBeACJgBDAAAABwBCAJYAG///AHL/7APsBd0CJgBDAAAABwBzAVAAF///AHL/7APsBgQCJgBDAAAABgCaUhsAAP//AHL/7APsBg8CJgBDAAAABgCgTB4AAP//AHL/7APsBcoCJgBDAAAABgBoLBoAAP//AHL/7APsBkYCJgBDAAAABwCeANMAZv//AHL/7APsBl4CJgBDAAAABwHUAOP/6///AGH+RAPyBE4CJgBFAAAABwB3AUX/9///AGL/7APpBeECJgBHAAAABwBCAJsAHP//AGL/7APpBd4CJgBHAAAABwBzAVUAGP//AGL/7APpBgUCJgBHAAAABgCaVxwAAP//AGL/7APpBcsCJgBHAAAABgBoMRsAAP///7UAAAFVBcsCJgCKAAAABwBC/2YABv//AJsAAAI9BcgCJgCKAAAABgBzHwIAAP///8sAAAIoBe8CJgCKAAAABwCa/yIABv///6UAAAJOBbUCJgCKAAAABwBo/vwABf//AJEAAAP4Bg8CJgBQAAAABgCgZR4AAP//AGD/7AQnBeACJgBRAAAABwBCALMAG///AGD/7AQnBd0CJgBRAAAABwBzAW0AF///AGD/7AQnBgQCJgBRAAAABgCabxsAAP//AGD/7AQnBg8CJgBRAAAABgCgaR4AAP//AGD/7AQnBcoCJgBRAAAABgBoSRoAAP//AI3/7AP2BcsCJgBXAAAABwBCALEABv//AI3/7AP2BcgCJgBXAAAABwBzAWsAAv//AI3/7AP2Be8CJgBXAAAABgCabQYAAP//AI3/7AP2BbUCJgBXAAAABgBoRwUAAP//ABv+SwPkBcgCJgBbAAAABwBzASkAAv//ABv+SwPkBbUCJgBbAAAABgBoBQUAAP//ACcAAAUiBvoCJgAjAAAABwBuAM4BSv//AHL/7APsBbgCJgBDAAAABgBuUAgAAP//ACcAAAUiB0wCJgAjAAAABwCcAPsBnP//AHL/7APsBgoCJgBDAAAABgCcfVoAAAACACf+UAUiBbAAGgAdAAABMwEjDgEVFBYzMjY3Fw4BIyImNTQ2NwMhAyMBIQMCWaACKSVTWCMrHS8YDSBKNldpVVuJ/ZuPvQGDAfj6BbD6UD1lPCQmEAx4ExliW0d+NwF7/nwCGQKyAAIAcv5QA+0ETgAzAD4AACEuAScOASMiJjU0NjsBNTQmIyIGFSM0NjMyFhURFBYXIw4BFRQWMzI2NxcOASMiJjU0NjclMjY3NSMiBhUUFgMtCgoCOqxnq6343NF6cWmBue6/u98MEBNTWCMrHS8YDSBKNldpTlP+t2ilJdeBlF0zQiRMYamZnqxuY29jR33DuLL99jpqNj1lPCQmEAx4ExliW0R6NYtgRsd5VUtUAAD//wCD/+sEyQc0AiYAJQAAAAcAcwHXAW7//wBh/+wD8gXdAiYARQAAAAcAcwFBABf//wCD/+sEyQdbAiYAJQAAAAcAmgDZAXL//wBh/+wD8gYEAiYARQAAAAYAmkMbAAD//wCD/+sEyQciAiYAJQAAAAcAnQGoAXL//wBh/+wD8gXLAiYARQAAAAcAnQESABv//wCD/+sEyQdcAiYAJQAAAAcAmwDvAXP//wBh/+wD8gYFAiYARQAAAAYAm1kcAAD//wC2AAAE5wdHAiYAJgAAAAcAmwCoAV7//wBk/+wFMAYYACYARgAAAAcBkQPZBSz//wC2AAAEdQb6AiYAJwAAAAcAbgCaAUr//wBi/+wD6QW5AiYARwAAAAYAblUJAAD//wC2AAAEdQdMAiYAJwAAAAcAnADHAZz//wBi/+wD6QYLAiYARwAAAAcAnACCAFv//wC2AAAEdQcNAiYAJwAAAAcAnQFrAV3//wBi/+wD6QXMAiYARwAAAAcAnQEmABwAAQC2/lAEdQWwACAAAAEhESEVIw4BFRQWMzI2NxcOASMiJjU0NjcnIREhFSERIQQP/WADBjhTWCMrHS8YDSBKNldpTVAB/SkDtf0EAqACpv3vlT1lPCQmEAx4ExliW0N6MwMFsJb+IgACAGL+ZAPpBE4AKQAxAAAFIgA9ATQAMzISHQEhHgEzMjY3Fw4BBw4BFRQWMzI2NxcOASMiJjU0NjcDIgYHITU0JgJO5P74AQ+/3N39MwSdkWWTO0keSzBRVyMrHS8YDSBKNldpNDgkaZEUAg6AFAEn9C3sAS7+/uB5psw4M3sdMRE7ZTwkJhAMeBMZYls3ZS8DzKmHGnmd//8AtgAABHUHRwImACcAAAAHAJsAsgFe//8AYv/sA+kGBgImAEcAAAAGAJttHQAA//8Ahf/rBNsHWwImACkAAAAHAJoA0QFy//8AZv5MA/cGBAImAEkAAAAGAJpdGwAA//8Ahf/rBNsHYQImACkAAAAHAJwA/AGx//8AZv5MA/cGCgImAEkAAAAHAJwAiABa//8Ahf/rBNsHIgImACkAAAAHAJ0BoAFy//8AZv5MA/cFywImAEkAAAAHAJ0BLAAb//8Ahf3lBNsFxQImACkAAAAHAZEBq/62//8AZv5MA/cGbQImAEkAAAAHAaUBMwBW//8AtgAABP0HRgImACoAAAAHAJoA+gFd//8AkQAAA/oHRQImAEoAAAAHAJoAIwFc////xQAAAncHUQImACsAAAAHAKD/QwFg////ngAAAlAF+gImAIoAAAAHAKD/HAAJ////vwAAAokG+gImACsAAAAHAG7/RwFK////mAAAAmIFpAImAIoAAAAHAG7/IP/0////9QAAAkwHTAImACsAAAAHAJz/dAGc////zgAAAiUF9QImAIoAAAAHAJz/TQBF//8AIf5YAYEFsAImACsAAAAGAJ/vCAAA//8AAP5QAWAGGAImAEsAAAAGAJ/OAAAA//8AtwAAAYYHDQImACsAAAAHAJ0AFwFd//8Aw//rBf8FsAAmACsAAAAHACwCPwAA//8Aof5LA2MGGAAmAEsAAAAHAEwB/AAA//8AP//rBIsHOQImACwAAAAHAJoBhQFQ////tP5LAjkF3AImAJgAAAAHAJr/M//z//8Atv31BRwFsAImAC0AAAAHAZEBev7G//8Akv33BBQGGAImAE0AAAAHAZEBGP7I//8AtgAABCUG4AImAC4AAAAHAHMANwEa//8AoQAAAkMHXAImAE4AAAAHAHMAJQGW//8Atv33BCUFsAImAC4AAAAHAZEBdP7I//8AW/33AVoGGAImAE4AAAAHAZH///7I//8AtgAABCUFsQImAC4AAAAHAZEB2QTF//8AoQAAAq0GGAAmAE4AAAAHAZEBVgUs//8AtgAABCUFsAImAC4AAAAHAJ0Bxf3F//8AoQAAAq0GGAAmAE4AAAAHAJ0BPv23//8AtgAABP4HHwImADAAAAAHAHMB/wFZ//8AkQAAA/gF3QImAFAAAAAHAHMBaQAX//8Atv33BP4FsAImADAAAAAHAZEB2P7I//8Akf33A/gETgImAFAAAAAHAZEBQv7I//8AtgAABP4HRwImADAAAAAHAJsBFwFe//8AkQAAA/gGBQImAFAAAAAHAJsAgQAc////0gAAA/gGGAImAFAAAAAHAZH/dgUs//8Agv/rBQ0HDwImADEAAAAHAG4A7gFf//8AYP/sBCcFuAImAFEAAAAGAG5tCAAA//8Agv/rBQ0HYQImADEAAAAHAJwBGwGx//8AYP/sBCcGCgImAFEAAAAHAJwAmgBa//8Agv/rBQ0HYAImADEAAAAHAKEBdwFy//8AYP/sBD4GCQImAFEAAAAHAKEA9gAb//8AtQAABOIHHwImADQAAAAHAHMBkgFZ//8AkQAAAuIF3QImAFQAAAAHAHMAxAAX//8Atf33BOIFrwImADQAAAAHAZEBa/7I//8AWP33ArEETgImAFQAAAAHAZH//P7I//8AtQAABOIHRwImADQAAAAHAJsAqgFe//8AaQAAAtQGBQImAFQAAAAGAJvdHAAA//8AWv/rBIoHNAImADUAAAAHAHMBiQFu//8AZv/sA8IF3QImAFUAAAAHAHMBPAAX//8AWv/rBIoHWwImADUAAAAHAJoAiwFy//8AZv/sA8IGBAImAFUAAAAGAJo+GwAA//8AWv5EBIoFxQImADUAAAAHAHcBjf/3//8AZv5FA8IETgImAFUAAAAHAHcBQP/4//8AWv3jBIoFxQImADUAAAAHAZEBYv60//8AZv3kA8IETgImAFUAAAAHAZEBFf61//8AWv/rBIoHXAImADUAAAAHAJsAoQFz//8AZv/sA8IGBQImAFUAAAAGAJtUHAAA//8AO/31BIoFsAImADYAAAAHAZEBZf7G//8AHf3tAk4FQQImAFYAAAAHAZEArP6+//8AO/5VBIoFsAImADYAAAAHAHcBkAAI//8AHf5NAoEFQQImAFYAAAAHAHcA1wAA//8AOwAABIoHRgImADYAAAAHAJsApAFd//8AHf/sAuwGMQAmAFYAAAAHAZEBlQVF//8Alv/rBNcHUQImADcAAAAHAKAA3AFg//8Ajf/sA/YF+gImAFcAAAAGAKBnCQAA//8Alv/rBNcG+gImADcAAAAHAG4A4AFK//8Ajf/sA/YFpAImAFcAAAAGAG5r9AAA//8Alv/rBNcHTAImADcAAAAHAJwBDQGc//8Ajf/sA/YF9QImAFcAAAAHAJwAmABF//8Alv/rBNcHiAImADcAAAAHAJ4BYwGo//8Ajf/sA/YGMQImAFcAAAAHAJ4A7gBR//8Alv/rBNcHSwImADcAAAAHAKEBaQFd//8Ajf/sBDwF9AImAFcAAAAHAKEA9AAGAAEAlv5uBNcFsAAnAAABERQGBw4BFRQWMzI2NxcOASMiJjU0NjciBiMiJDURMxEUFjMyNjURBNeRhFNYIysdLxgNIEo2V2kuMgcbBvT+3Lq9oanHBbD8JaXaOD1lPCQmEAx4ExliWzRhLAH48gPb/CWrqqqrA9sAAAEAjf5QBAkEOgAnAAAhDgEVFBYzMjY3Fw4BIyImNTQ2Ny8BDgEjIiY1ETMRFBYzMjY3ETMRA/VTWCMrHS8YDSBKNldpUFYMAzKebbTCumhxcIkkuT1lPCQmEAx4ExliW0R8NpsBV1zd9AJ9/YGyg1dTAwr7xgAA//8ASAAABsIHRgImADkAAAAHAJoBrQFd//8AMAAABdgF7wImAFkAAAAHAJoBLgAG//8AHgAABNMHRAImADsAAAAHAJoAogFb//8AG/5LA+QF7wImAFsAAAAGAJorBgAA//8AHgAABNMHCgImADsAAAAHAGgAfAFa//8AYQAABG0HHwImADwAAAAHAHMBiAFZ//8AXgAAA7gFyAImAFwAAAAHAHMBMwAC//8AYQAABG0HDQImADwAAAAHAJ0BWQFd//8AXgAAA7gFtgImAFwAAAAHAJ0BBAAG//8AYQAABG0HRwImADwAAAAHAJsAoAFe//8AXgAAA7gF8AImAFwAAAAGAJtLBwAA////8gAAB1cHHwImAH8AAAAHAHMC0QFZ//8APf/rBnwF3gImAIQAAAAHAHMCggAY//8Ac/+jBP4HXQImAIEAAAAHAHMB4gGX//8AYP95BCcF3AImAIcAAAAHAHMBQAAW////8wAABC0EjQImAakAAAAHAdP/ZP97////8wAABC0EjQImAakAAAAHAdP/ZP97//8ARwAAA88EjQImAbgAAAAGAdMx9wAA//8AKQAABIMF3wImAaYAAAAHAEIAvwAa//8AKQAABIMF3AImAaYAAAAHAHMBeQAW//8AKQAABIMGAwImAaYAAAAGAJp7GgAA//8AKQAABIMGDgImAaYAAAAGAKB1HQAA//8AKQAABIMFyQImAaYAAAAGAGhVGQAA//8AKQAABIMGRQImAaYAAAAHAJ4A/ABl//8AKQAABIMGXQImAaYAAAAHAdQBDP/q//8Acv5HBCQEnQImAagAAAAHAHcBb//6//8AmwAAA8cF3wImAaoAAAAHAEIAjgAa//8AmwAAA8cF3AImAaoAAAAHAHMBSAAW//8AmwAAA8cGAwImAaoAAAAGAJpKGgAA//8AmwAAA8cFyQImAaoAAAAGAGgkGQAA////swAAAVQF3wImAa4AAAAHAEL/ZAAa//8AmwAAAjsF3AImAa4AAAAGAHMdFgAA////yQAAAiYGAwImAa4AAAAHAJr/IAAa////owAAAkwFyQImAa4AAAAHAGj++gAZ//8AmwAABHIGDgImAbMAAAAHAKAAlgAd//8Acv/vBFcF7wImAbQAAAAHAEIAwAAq//8Acv/vBFcF7AImAbQAAAAHAHMBegAm//8Acv/vBFcGEwImAbQAAAAGAJp8KgAA//8Acv/vBFcGHgImAbQAAAAGAKB2LQAA//8Acv/vBFcF2QImAbQAAAAGAGhWKQAA//8AjP/vBHAF4AImAbkAAAAHAEIA4AAb//8AjP/vBHAF3QImAbkAAAAHAHMBmgAX//8AjP/vBHAGBAImAbkAAAAHAJoAnAAb//8AjP/vBHAFygImAbkAAAAGAGh2GgAA//8AIAAABDAF2wImAb0AAAAHAHMBSQAV//8AKQAABIMFtwImAaYAAAAGAG55BwAA//8AKQAABIMGCQImAaYAAAAHAJwApgBZAAIAKf5QBIMEjQAaAB0AAAEzASMOARUUFjMyNjcXDgEjIiY1NDY3JyEDIwEhAwH/rwHVN1NYIysdLxgNIEo2V2lcYWP9+GnAAWIBlswEjftzPWU8JCYQDHgTGWJbSYM4//7wAaQCDQD//wBy/+8EJAXsAiYBqAAAAAcAcwFrACb//wBy/+8EJAYTAiYBqAAAAAYAmm0qAAD//wBy/+8EJAXaAiYBqAAAAAcAnQE8ACr//wBy/+8EJAYUAiYBqAAAAAcAmwCDACv//wCbAAAELQYEAiYBqQAAAAYAmy8bAAD//wCbAAADxwW3AiYBqgAAAAYAbkgHAAD//wCbAAADxwYJAiYBqgAAAAYAnHVZAAD//wCbAAADxwXKAiYBqgAAAAcAnQEZABoAAQCb/lADxwSNACAAAAEhESEVIw4BFRQWMzI2NxcOASMiJjU0NjcnIREhFSERIQNw/eUCckhTWCMrHS8YDSBKNldpTVAB/cwDLP2OAhsCFf5+kz1lPCQmEAx4ExliW0N6MwMEjZT+sP//AJsAAAPHBgQCJgGqAAAABgCbYBsAAP//AHL/7wRHBhMCJgGsAAAABgCadSoAAP//AHL/7wRHBhkCJgGsAAAABwCcAKAAaf//AHL/7wRHBdoCJgGsAAAABwCdAUQAKv//AHL95wRHBJ0CJgGsAAAABwGRAVL+uP//AJsAAARVBgMCJgGtAAAABwCaAIMAGv///5wAAAJOBg4CJgGuAAAABwCg/xoAHf///5YAAAJgBbcCJgGuAAAABwBu/x4AB////8wAAAIjBgkCJgGuAAAABwCc/0sAWf////f+UAFXBI0CJgGuAAAABgCfxQAAAP//AI8AAAFeBcoCJgGuAAAABgCd7xoAAP//AEH/7wQ9BfkCJgGvAAAABwCaATcAEP//AJv98wRABI0CJgGwAAAABwGRAP/+xP//AJsAAANqBcECJgGxAAAABgBzI/sAAP//AJv99QNqBI0CJgGxAAAABwGRANz+xv//AJsAAANqBI4CJgGxAAAABwGRAUUDov//AJsAAANqBI0CJgGxAAAABwCdATH9Jv//AJsAAARyBdwCJgGzAAAABwBzAZoAFv//AJv99QRyBI0CJgGzAAAABwGRAXP+xv//AJsAAARyBgQCJgGzAAAABwCbALIAG///AHL/7wRXBccCJgG0AAAABgBuehcAAP//AHL/7wRXBhkCJgG0AAAABwCcAKcAaf//AHL/7wRXBhgCJgG0AAAABwChAQMAKv//AJsAAAQ6BdwCJgG2AAAABwBzASYAFv//AJv99QQ6BI0CJgG2AAAABwGRAP/+xv//AJsAAAQ6BgQCJgG2AAAABgCbPhsAAP//AF3/7wQNBewCJgG3AAAABwBzAVQAJv//AF3/7wQNBhMCJgG3AAAABgCaVioAAP//AF3+RwQNBJ0CJgG3AAAABwB3AVj/+v//AF3/7wQNBhQCJgG3AAAABgCbbCsAAP//AEf99QPPBI0CJgG4AAAABwGRAQP+xv//AEcAAAPPBgMCJgG4AAAABgCbQhoAAP//AIz/7wRwBg8CJgG5AAAABwCgAJYAHv//AIz/7wRwBbgCJgG5AAAABwBuAJoACP//AIz/7wRwBgoCJgG5AAAABwCcAMcAWv//AIz/7wRwBkYCJgG5AAAABwCeAR0AZv//AIz/7wRwBgkCJgG5AAAABwChASMAGwABAIz+ewRwBI0AJwAAAREUBgcOARUUFjMyNjcXDgEjIiY1NDY3IgYjIiQ1ETMRFBYzMjY1EQRwcGhTWCMrHS8YDSBKNldpKi0HGAbh/u+4rI6QqgSN/QF9sjQ9ZTwkJhAMeBMZYlsyWysB2McC//0BgIyMgAL/AP//AEEAAAXABgMCJgG7AAAABwCaASEAGv//ACAAAAQwBgICJgG9AAAABgCaSxkAAP//ACAAAAQwBcgCJgG9AAAABgBoJRgAAP//AE4AAAPYBdwCJgG+AAAABwBzAScAFv//AE4AAAPYBcoCJgG+AAAABwCdAPgAGv//AE4AAAPYBgQCJgG+AAAABgCbPxsAAP//AF3/7wh8BJ0AJgG3AAAABwG3BG8AAP//ACcAAAUiBngCJgAjAAAABgCpOgAAAP///+YAAATZBnoAJgAnZAAABwCp/yMAAv//ABMAAAVhBnoAJgAqZAAABwCp/1AAAv//ABkAAAHgBnkAJgArZAAABwCp/1YAAf//AFL/6wUhBngAJgAxFAAABgCpjwAAAP///40AAAU3BngAJgA7ZAAABwCp/soAAP//AD8AAAThBngAJgC1FAAABwCp/3wAAP///8j/6wKDBj8CJgC+AAAABwCq/yf/t///ACcAAAUiBbACBgAjAAD//wC2AAAEqQWwAgYAJAAA//8AtgAABHUFsAIGACcAAP//AGEAAARtBbACBgA8AAD//wC2AAAE/QWwAgYAKgAA//8AwwAAAXwFsAIGACsAAP//ALYAAAUcBbACBgAtAAD//wC2AAAGTQWwAgYALwAA//8AtgAABP4FsAIGADAAAP//AIL/6wUNBcUCBgAxAAD//wC2AAAExAWwAgYAMgAA//8AOwAABIoFsAIGADYAAP//AB4AAATTBbACBgA7AAD//wBBAAAE0AWwAgYAOgAA////zAAAAnUHDAImACsAAAAHAGj/IwFc//8AHgAABNMHCgImADsAAAAHAGgAfAFa//8AZP/rBHcGegImALYAAAAHAKkBdQAC//8AY//tA+wGeQImALoAAAAHAKkBKwAB//8Akf5hA/AGegImALwAAAAHAKkBRgAC//8Aw//rAmsGZgImAL4AAAAGAKkq7gAA//8Aj//rA/YGPwImAMYAAAAGAKoetwAA//8AmgAABD8EOgIGAIsAAP//AGD/7AQnBE4CBgBRAAD//wCa/mAD7gQ6AgYAdAAA//8ALgAAA98EOgIGAFgAAP//AC4AAAPPBDoCBgBaAAD////T/+sCfAW1AiYAvgAAAAcAaP8qAAX//wCP/+sD9gW1AiYAxgAAAAYAaCEFAAD//wBg/+wEJwZ6AiYAUQAAAAcAqQFKAAL//wCP/+sD9gZmAiYAxgAAAAcAqQEi/+7//wB6/+sGGQZjAiYAyQAAAAcAqQJT/+v//wC2AAAEdQcMAiYAJwAAAAcAaAB2AVz//wC1AAAEMAcfAiYArAAAAAcAcwGYAVkAAQBa/+sEigXFACUAAAE0JicuATU0JDMyABUjNCYjIgYVFBYXHgEVFAQjIiQ1MxQWMzI2A9CWx+z+ARPh8QEYuaykm6CpyOrt/uXr3/61udOenLABbmiFMTjQpa3f/v62hJ6FbmJ/MTvYp7PS6M+RkX4AAP//AMMAAAF8BbACBgArAAD////MAAACdQcMAiYAKwAAAAcAaP8jAVz//wA//+sDwAWwAgYALAAA//8AtgAABRwFsAIGAC0AAP//ALYAAAUcBscCJgAtAAAABwBzAYwBAf//AFH/6wTIB0wCJgDZAAAABwCcANoBnP//ACcAAAUiBbACBgAjAAD//wC2AAAEqQWwAgYAJAAA//8AtQAABDAFsAIGAKwAAP//ALYAAAR1BbACBgAnAAD//wC2AAAE/gdMAiYA1wAAAAcAnAExAZz//wC2AAAGTQWwAgYALwAA//8AtgAABP0FsAIGACoAAP//AIL/6wUNBcUCBgAxAAD//wC2AAAE/wWwAgYAsQAA//8AtgAABMQFsAIGADIAAP//AIP/6wTJBcUCBgAlAAD//wA7AAAEigWwAgYANgAA//8AQQAABNAFsAIGADoAAP//AHL/7APsBE4CBgBDAAD//wBi/+wD6QROAgYARwAA//8AnAAABAEF9QImAOsAAAAHAJwAogBF//8AYP/sBCcETgIGAFEAAP//AJH+YAQkBE4CBgBSAAAAAQBh/+wD8gROABsAACUyNjczDgEjIgI9ATQSMzIWFyMuASMiBh0BFBYCQ2eXAbAB/6/u9PTuv+8BsAGOcKGHhoF4XJTVAS/tKuwBMNysaIrfpyqr3AAA//8AG/5LA+QEOgIGAFsAAP//AC4AAAPPBDoCBgBaAAD//wBi/+wD6QXLAiYARwAAAAYAaDEbAAD//wCaAAADRwXIAiYA5wAAAAcAcwDVAAL//wBm/+wDwgROAgYAVQAA//8AoQAAAVoGGAIGAEsAAP///6UAAAJOBbUCJgCKAAAABwBo/vwABf///7b+SwFnBhgCBgBMAAD//wCcAAAEPwXHAiYA7AAAAAcAcwFDAAH//wAb/ksD5AX1AiYAWwAAAAYAnFZFAAD//wBIAAAGwgciAiYAOQAAAAcAQgHxAV3//wAwAAAF2AXLAiYAWQAAAAcAQgFyAAb//wBIAAAGwgcfAiYAOQAAAAcAcwKrAVn//wAwAAAF2AXIAiYAWQAAAAcAcwIsAAL//wBIAAAGwgcMAiYAOQAAAAcAaAGHAVz//wAwAAAF2AW1AiYAWQAAAAcAaAEIAAX//wAeAAAE0wcgAiYAOwAAAAcAQgDmAVv//wAb/ksD5AXLAiYAWwAAAAYAQm8GAAD//wBnBCMA/QYYAgYACQAA//8AaQQUAh8GGAIGAAQAAP//AKkAAAN1BbAAJgQbAAAABwQbAg8AAP//AEIAAAQYBi0AJgBIAAAABwBOAr4AAP///7T+SwJABd0CJgCYAAAABwCb/0n/9P//ADAD5wFHBhgCBgFmAAD//wC2AAAGTQcfAiYALwAAAAcAcwKpAVn//wCQAAAGcgXdAiYATwAAAAcAcwK7ABf//wAn/ocFIgWwAiYAIwAAAAcAogFPAAD//wBy/ocD7AROAiYAQwAAAAcAogCeAAD///8+/+sFDQaiAiYAMQAAAAcB1f7PAMz//wBCAAAGiwYtACYASAAAAAcBkgK+AAD//wBCAAAG1gYtACYASAAAACcASAK+AAAABwBOBXwAAP//ALYAAAR1ByICJgAnAAAABwBCAOABXf//ALYAAAT+ByICJgDXAAAABwBCAUoBXf//AGL/7APpBeECJgBHAAAABwBCAJsAHP//AJwAAAQBBcsCJgDrAAAABwBCALsABv//AF0AAAUYBbACBgC0AAD//wBf/ikFQwQ6AgYAyAAA//8AFwAABNoHRwImARQAAAAHAKcENwFZ////+QAABAsGHwImARUAAAAHAKcD0gAx//8AYP5LCGwETgAmAFEAAAAHAFsEiAAA//8Agv5LCXQFxQAmADEAAAAHAFsFkAAA//8AUf5RBGcFxQImANYAAAAHAZwBnP+4//8AWP5SA6wETAImAOoAAAAHAZwBQ/+5//8Ag/5RBMkFxQImACUAAAAHAZwB7v+4//8AYf5RA/IETgImAEUAAAAHAZwBWP+4//8AHgAABNMFsAIGADsAAP//AC7+YAPfBDoCBgC4AAD//wDDAAABfAWwAgYAKwAA//8AGwAABygHTAImANUAAAAHAJwB+AGc//8AFQAABgQF9QImAOkAAAAHAJwBjQBF//8AwwAAAXwFsAIGACsAAP//ACcAAAUiB0wCJgAjAAAABwCcAPsBnP//AHL/7APsBgoCJgBDAAAABgCcfVoAAP//ACcAAAUiBwwCJgAjAAAABwBoAKoBXP//AHL/7APsBcoCJgBDAAAABgBoLBoAAP////IAAAdXBbACBgB/AAD//wA9/+sGfAROAgYAhAAA//8AtgAABHUHTAImACcAAAAHAJwAxwGc//8AYv/sA+kGCwImAEcAAAAHAJwAggBb//8AX//rBRAG3gImAUEAAAAHAGgAfQEu//8AYv/sA+kETwIGAJkAAP//AGL/7APpBcsCJgCZAAAABgBoMRsAAP//ABsAAAcoBwwCJgDVAAAABwBoAacBXP//ABUAAAYEBbUCJgDpAAAABwBoATwABf//AFH/6wRnByECJgDWAAAABwBoAGEBcf//AFj/7QOsBckCJgDqAAAABgBoCBkAAP//ALYAAAT+BvoCJgDXAAAABwBuAQQBSv//AJwAAAQBBaQCJgDrAAAABgBudfQAAP//ALYAAAT+BwwCJgDXAAAABwBoAOABXP//AJwAAAQBBbUCJgDrAAAABgBoUQUAAP//AIL/6wUNByECJgAxAAAABwBoAMoBcf//AGD/7AQnBcoCJgBRAAAABgBoSRoAAP//AHP/6wT+BcUCBgESAAD//wBg/+wEJwROAgYBEwAA//8Ac//rBP4HBwImARIAAAAHAGgA0gFX//8AYP/sBCcF5gImARMAAAAGAGgyNgAA//8Asf/sBPYHIgImAOIAAAAHAGgAtwFy//8AZP/rA+AFygImAPoAAAAGAGgmGgAA//8AUf/rBMgG+gImANkAAAAHAG4ArQFK//8AG/5LA+QFpAImAFsAAAAGAG4p9AAA//8AUf/rBMgHDAImANkAAAAHAGgAiQFc//8AG/5LA+QFtQImAFsAAAAGAGgFBQAA//8AUf/rBMgHSwImANkAAAAHAKEBNgFd//8AG/5LA/oF9AImAFsAAAAHAKEAsgAG//8AlwAABMQHDAImANwAAAAHAGgAswFc//8AZwAAA70FtQImAPQAAAAGAGgOBQAA//8AtQAABjUHDAAmAOEPAAAnACsEuQAAAAcAaAF9AVz//wCdAAAFfwW1ACYA+QAAACcAigQqAAAABwBoARcABf//AEH+SwUXBbACJgA6AAAABwGaA7AAAP//AC7+SwQfBDoCJgBaAAAABwGaArgAAP//AGT/7APwBhgCBgBGAAD//wAw/ksFrAWwAiYA2AAAAAcBmgRFAAD//wAo/ksEuwQ6AiYA7QAAAAcBmgNUAAD//wAn/rEFIgWwAiYAIwAAAAcAqAUBAAD//wBy/rED7AROAiYAQwAAAAcAqARQAAD//wAnAAAFIgfGAiYAIwAAAAcApgT1AVP//wBy/+wD7AaEAiYAQwAAAAcApgR3ABH//wAnAAAFIgeoAiYAIwAAAAcBowDKARb//wBy/+wEpAZnAiYAQwAAAAYBo0zVAAD//wAnAAAFIgelAiYAIwAAAAcBogDOASX///+u/+wD7AZkAiYAQwAAAAYBolDkAAD//wAnAAAFIgfbAiYAIwAAAAcBoQDPAQ3//wBy/+wEPQaaAiYAQwAAAAYBoVHMAAD//wAnAAAFIgflAiYAIwAAAAcBoADOARP//wBy/+wD7AakAiYAQwAAAAYBoFDSAAD//wAn/rEFIgdGAiYAIwAAACcAmgDQAV0ABwCoBQEAAP//AHL+sQPsBgQCJgBDAAAAJgCaUhsABwCoBFAAAAAA//8AJwAABSIH3QImACMAAAAHAZ8A8QFU//8Acv/sA+wGmwImAEMAAAAGAZ9zEgAA//8AJwAABSIH4AImACMAAAAHAaQA9QFn//8Acv/sA+wGngImAEMAAAAGAaR3JQAA//8AJwAABSIISwImACMAAAAHAZ4A9QFJ//8Acv/sA+wHCQImAEMAAAAGAZ53BwAA//8AJwAABSIIHwImACMAAAAHAZ0A9QFR//8Acv/sA+wG3QImAEMAAAAGAZ13DwAA//8AJ/6xBSIHTAImACMAAAAnAJwA+wGcAAcAqAUBAAD//wBy/rED7AYKAiYAQwAAACYAnH1aAAcAqARQAAAAAP//ALb+uwR1BbACJgAnAAAABwCoBMgACv//AGL+sQPpBE4CJgBHAAAABwCoBJIAAP//ALYAAAR1B8YCJgAnAAAABwCmBMEBU///AGL/7APpBoUCJgBHAAAABwCmBHwAEv//ALYAAAR1B1ECJgAnAAAABwCgAJYBYP//AGL/7APpBhACJgBHAAAABgCgUR8AAP//ALYAAATuB6gCJgAnAAAABwGjAJYBFv//AGL/7ASpBmgCJgBHAAAABgGjUdYAAP////gAAAR1B6UCJgAnAAAABwGiAJoBJf///7P/7APpBmUCJgBHAAAABgGiVeUAAP//ALYAAASHB9sCJgAnAAAABwGhAJsBDf//AGL/7ARCBpsCJgBHAAAABgGhVs0AAP//ALYAAAR1B+UCJgAnAAAABwGgAJoBE///AGL/7APpBqUCJgBHAAAABgGgVdMAAP//ALb+uwR1B0YCJgAnAAAAJwCaAJwBXQAHAKgEyAAK//8AYv6xA+kGBQImAEcAAAAmAJpXHAAHAKgEkgAAAAD//wDDAAACAQfGAiYAKwAAAAcApgNtAVP//wCbAAAB2gZwAiYAigAAAAcApgNG//3//wC3/rkBhgWwAiYAKwAAAAcAqAN0AAj//wCW/rsBZQYYAiYASwAAAAcAqANTAAr//wCC/qkFDQXFAiYAMQAAAAcAqAUd//j//wBg/qgEJwROAiYAUQAAAAcAqASb//f//wCC/+sFDQfbAiYAMQAAAAcApgUVAWj//wBg/+wEJwaEAiYAUQAAAAcApgSUABH//wCC/+sFQge9AiYAMQAAAAcBowDqASv//wBg/+wEwQZnAiYAUQAAAAYBo2nVAAD//wBM/+sFDQe6AiYAMQAAAAcBogDuATr////L/+wEJwZkAiYAUQAAAAYBom3kAAD//wCC/+sFDQfwAiYAMQAAAAcBoQDvASL//wBg/+wEWgaaAiYAUQAAAAYBoW7MAAD//wCC/+sFDQf6AiYAMQAAAAcBoADuASj//wBg/+wEJwakAiYAUQAAAAYBoG3SAAD//wCC/qkFDQdbAiYAMQAAACcAmgDwAXIABwCoBR3/+P//AGD+qAQnBgQCJgBRAAAAJgCabxsABwCoBJv/9wAA//8Acf/rBZ0HDwImAJQAAAAHAHMB5gFJ//8AYP/sBLoF3QImAJUAAAAHAHMBbQAX//8Acf/rBZ0HEgImAJQAAAAHAEIBLAFN//8AYP/sBLoF4AImAJUAAAAHAEIAswAb//8Acf/rBZ0HtgImAJQAAAAHAKYFDQFD//8AYP/sBLoGhAImAJUAAAAHAKYElAAR//8Acf/rBZ0HQQImAJQAAAAHAKAA4gFQ//8AYP/sBLoGDwImAJUAAAAGAKBpHgAA//8Acf6xBZ0GNgImAJQAAAAHAKgFCQAA//8AYP6oBLoEsAImAJUAAAAHAKgEm//3//8Alv6qBNcFsAImADcAAAAHAKgFDP/5//8Ajf6xA/YEOgImAFcAAAAHAKgEVwAA//8Alv/rBNcHxgImADcAAAAHAKYFBwFT//8Ajf/sA/YGcAImAFcAAAAHAKYEkv/9//8Alv/rBiYHHwImAJYAAAAHAHMB3QFZ//8Ajf/sBRAFyAImAJcAAAAHAHMBawAC//8Alv/rBiYHIgImAJYAAAAHAEIBIwFd//8Ajf/sBRAFywImAJcAAAAHAEIAsQAG//8Alv/rBiYHxgImAJYAAAAHAKYFBAFT//8Ajf/sBRAGcAImAJcAAAAHAKYEkv/9//8Alv/rBiYHUQImAJYAAAAHAKAA2QFg//8Ajf/sBRAF+gImAJcAAAAGAKBnCQAA//8Alv6pBiYGDQImAJYAAAAHAKgFCf/4//8Ajf6xBRAEkQImAJcAAAAHAKgEVwAA//8AHv67BNMFsAImADsAAAAHAKgEzgAK//8AG/4UA+QEOgImAFsAAAAHAKgFIv9j//8AHgAABNMHxAImADsAAAAHAKYExwFR//8AG/5LA+QGcAImAFsAAAAHAKYEUP/9//8AHgAABNMHTwImADsAAAAHAKAAnAFe//8AG/5LA+QF+gImAFsAAAAGAKAlCQAAAAIAZP/sBLEGGAAaACgAAAEjESMnDgEjIgI9ARASMzIWFzcRITUhNTMVMwEUFjMyNjcRLgEjIgYVBLHBoRA2mGnJ29rMZJI0A/7+AQK5wfxsh5JeeikofFuTiATS+y6HTk0BGu8VAQoBOkhGAQERlbGx/I6qxVJMAfZIUurAAAD//wBk/u4EsQYYACYARgAAACcB0wGmAkYABwBBAKP/g///ALb+mQVbBbACJgAtAAAABwGcBDoAAP//AJz+mQRpBDoCJgDsAAAABwGcA0gAAP//ALb+mQWHBbACJgAqAAAABwGcBGYAAP//AJz+mQSKBDoCJgDvAAAABwGcA2kAAP//ADv+mQSKBbACJgA2AAAABwGcAigAAP//ACj+mQOwBDoCJgDxAAAABwGcAa4AAP//AEH+mQTpBbACJgA6AAAABwGcA8gAAP//AC7+mQPxBDoCJgBaAAAABwGcAtAAAP//AJf+mQVOBbACJgDcAAAABwGcBC0AAP//AGf+mQRGBDsCJgD0AAAABwGcAyUAAP//AJf+mQTEBbACJgDcAAAABwGcAxkAAP//AGf+mQO9BDsCJgD0AAAABwGcAhAAAP//ALX+mQQwBbACJgCsAAAABwGcANcAAP//AJr+mQNHBDoCJgDnAAAABwGcAJ4AAP//ABv+mQdqBbACJgDVAAAABwGcBkkAAP//ABX+mQYlBDoCJgDpAAAABwGcBQQAAP//AEf+VAXABcMCJgE7AAAABwGcAwb/u////+P+WARZBE4CJgE8AAAABwGcAgH/v///AJEAAAP6BhgCBgBKAAAAAv/UAAAEsQWwABIAGwAAASMVITIWFRQGIyERIzUzNTMVMwMRITI2NTQmIwJQ8QFo7vz97f3f0tK58fEBaJyUlJwEUPjhx8joBFCVy8v93v3Sn355mAAAAAL/1AAABLEFsAASABsAAAEjFSEyFhUUBiMhESM1MzUzFTMDESEyNjU0JiMCUPEBaO78/e3939LSufHxAWiclJScBFD44cfI6ARQlcvL/d790p9+eZgAAAABAAMAAAQwBbAADQAAASERIxEjNTMRIRUhESECf/7vubKyA3v9PgERAqz9VAKslQJvlv4nAAAAAAH//AAAA0cEOgANAAABIREjESM1MxEhFSERIQJ4/ty6np4Crf4NASQB3/4hAd+VAcaX/tEAAAAAAf/1AAAFMAWwABQAAAEjESMRIzUzNTMVMxUjETMBMwkBIwIzsLnV1bnu7p8CEdT9wwJm4wKU/WwEhZWWlpX+pAKH/T79EgAAAf/YAAAEKAYYABQAAAEjESMRIzUzNTMVMxUjETMBMwkBIwHhgbrOzrr09H4BO9v+hgGu2wH2/goEwZXCwpX9zAGt/hP9swD//wC2/ooFtwdMAiYA1wAAACcAnAExAZwABwAOBIP/vv//AJz+igS6BfUCJgDrAAAAJwCcAKIARQAHAA4Dhv++//8Atv6KBbYFsAImACoAAAAHAA4Egv++//8AnP6KBLkEOgImAO8AAAAHAA4Dhf++//8Atv6KBwYFsAImAC8AAAAHAA4F0v++//8Anf6KBgsEOgImAO4AAAAHAA4E1/++//8AMP6KBa0FsAImANgAAAAHAA4Eef++//8AKP6KBLwEOgImAO0AAAAHAA4DiP++AAEAHgAABNMFsAAQAAAJATMBMxUjBxEjEScjNTMBMwJ4AYfU/ld+zwi4Aeya/ljUAr4C8vz2lQ/9/gIPApUDCgABAC7+YAPfBDoAEQAABSMRIxEjNTMBMwEXMzcBMwEzA0rmutzB/p+9AQcWAxcBAL3+oskM/mwBlJUDsf0AXl4DAPxPAAEAQQAABNAFsAARAAABIwEjCQEjASM1MwEzCQEzATMDzbABs9z+lv6X4AGyopX+Zt4BXAFg3/5lowKe/WICSP24Ap6VAn39wwI9/YMAAAAAAQAuAAADzwQ6ABEAAAEjASMLASMBIzUzATMbATMBMwM+rwFA1fr62AFBraL+1dbt8Nj+1qQB4f4fAZ7+YgHhlQHE/m0Bk/48AAAA//8AY//tA+wETAIGALoAAP//ABsAAARzBbACJgAoAAAABwHT/4z+fv//ALsCjAXzAyEARgGGrwBmZkAAAAIAqQAAAWYFsAADAAcAAAEjETMTIzUzAWS5uQK9vQHeA9L6UMgAAAAAAAAAAAAAAAAAGgBSAJIA6AFAAVABcgGWAboB0gHoAfYCAgIQAkACUAJ6ArQC1AMGA0YDZAOuA/AD/AQIBCAENARMBHwE8AUMBUIFdAWaBbQFygYABhgGJAZABlwGbAaQBqgG3gcCB0AHeAeyB8YH5gf+CCoISghiCHgIjAiaCKwIxAjSCOAJHglUCYAJtAnmCgoKTgpyCoQKqArECtALCgsuC1wLkgvGC+YMHgxEDGgMgAyqDMgM8g0IDTgNRg10DZ4Nsg3mDhoOZg6QDqQPCA8cD3IPsg++D84QMhBAEGYQhhCwEOoQ+BEgETYRRBFgEXIRnBGoEboRzBHeEg4SOBJaEqwS0hMME2gTthPQFBwUUhR8FIgUpBTAFNgVAhU2FXQVyBXkFhoWXBaWFsAW7hcMF0AXVBdoF4IXkBe2F9gX+BgOGDQYQhhQGFoYeBiOGJwYqhjEGMwY3hj0GTAZRhliGXQZkhnQGfoaNBp4Grga1BscG1YbjhuyG+ocCBw+HIgcsBzkHRgdTh1yHZgd1h4IHkgehB7AHwYfNB9qH6If0h/6IBIgOiBmIJIgziDmIQYhLiFwIYghqiHEIeQiDCI2IloijiLMIvYjOCNuI4AjqiPWJBAkKCREJGYkhCScJK4kwiUcJTQlViVwJZAluCXkJggmNiZuJpgm1icGJzwnbCeaJ7Qn5igYKEYohCi8KN4pBCkyKWIpoCnUKhwqXCqsKvorNitqK44rtiv4LDQslCz0LTItcC2cLcQt8C4ELiIuMi5CLtwvNC9iL44vzC/iL/gwIDBIMG4wlDC0MNQw8DEMMTYxYDG2MggyJjJEMm4yljK4MvozNjNgM4gzsDPYNBA0PDRoNHg0iDSsNOI1NjV6NcA2ADZCNnw2tDbqNxw3WDeON7437DgqOCo4KjgqOCo4KjgqOCo4KjgqOCo4KjgqODQ4PjhKOGA4djiMOJg4pDiwONQ47jkSOSo5NjlGOcI51jnsOfo6Gjo8Ong6ujr4O047iDvMO/Y8LDw+PFA8Yjx0PK48wjzgPO49CD1aPYg94D4GPhY+Jj5MPlo+bj6EPq4+rj+IP85AAEAgQFBAbkCKQKxAukDsQRxBPEFqQZJBrEHGQeZB9kISQkhCdkKaQrRCykL8QxRDIEM8Q1hDaEOIQ6JD0EQGRD5EdkSKRKpEwkTqRQpFIkU4RWRFdEWeRdhF+EYiRl5GekbCRv5HDkc2R3BHgEewR+xIBkhOSIpItEjCSPBJEElKSWpJnEncSkpKaEqmSvBLKEtuS5RL0kv+TBxMOkxWTHJMtEzYTOBM6EzwTSBNUE1+TZpNyE3UTeBN7E34TgROEE4cTihONE5ATkxOWE5kTnBOfE6ITpROoE6sTrhOxE7QTtxO6E70TwBPDE8YTyRPME88T0hPVE9gT2xPeE+ET5BPnE+oT7RPwE/MT9hP5E/wT/xQCFAUUCBQLFA4UERQUFBcUGhQdFCAUIxQwFEYUSRRMFE8UUhRVFFgUWxReFGEUZBRnFGoUbRRwFHMUdhSDFJYUmRScFJ8UohSlFKgUqxSuFLEUtBS3FLoUvRTAFMMUxhTJFMwUzxTSFNUU2BTbFN4U4RTkFOcU6hTtFPAU8xT2FPkU/BT/FQIVBRUIFQsVDhURFRQVFxUaFR0VIBUjFSYVKRUsFS8VMhU1FTgVOxU+FUEVRBVHFUoVTRVQFVMVVhVZFVwVXxViFWUVaBVrFW4VcRV0FXcVehV9FYAVgxWGFZUVpBWnFaoVrRWwFbMVthW5FbwVvxXCFcUVyBXLFc4V0RXUFdcV2hXdFeAV4xXmFekV7BXvFfIV9RX4FfsV/hYBFgQWBxYKFg0WEBYTFhYWGRYcFh8WIhYlFigWKxYuFjEWPhZBFkQWRxZKFk0WUBZTFlYWYxZmFmkWbBZvFnIWdRZ4FnsWfhaBFoQWhxaKFo0WkBaTFpYWmRacFp8WohalFqgWqxauFrEWtBa3FroWvRbAFsMWxhbJFswWzxbSFuEW5BbnFuoW7RbwFvMW9hb5FvwW/xcCFwUXCBcLFw4XEBcSFxQXFhcYFxoXHBceFyAXIhckFyYXKBcqFy0XMBczFzYXORc8Fz8XQRdDF0UXRxdJF0wXTxdSF1UXWBdbF14XbJdul3GXc5d1l3iXe5d9l3+XgZeDl4aXiJeKl4yXjpeQl5KXlJeWl5iXmpedl5+XoZesl66XsJezl7aXuJe6l72Xv5fCl8WXyJfLl86X0ZfUl9eX2pfdl9+X4Zfkl+eX6pfsl++X8pf1l/iX+5f+mAKYBZgImAuYDpgQmBKYFZgYmBuYHpghmCSYJ5gqmCyYLpgwmDOYNpg4mDuYPphBmESYRphImEuYTphRmFOYVphZmFyYX5himGWYaJhrmG6YcZh0mHaYeJh7mH6YgZiEmIeYipiNmJCYk5iWmJmYnJigmKSYp5iqmKyYr5iymLWYuJi7mL6YwZjEmMeYypjNmNCY05jWmNqY3pjhmOSY55jqmO2Y8JjzmPaY+pj+mQGZBJkHmQqZDZkQmROZFpkZmRyZH5kimSWZKJksmTCZM5k2mTmZPJk/mUKZRZlImUuZTplRmVSZV5lamV2ZYJlkmWiZa5lumXGZdJl3mXqZfZmAmYOZhpmJmYyZj5mSmZWZmJmbmZ6ZoZmkmaeZqpmtmbCZs5m2mbmZvJm/mcKZ0pnWmdmZ3JnfmeKZ5ZnomeuZ7pnxmfSZ95n6mf2aAJoDmgaaCZoMmg6aGZokmiuaMpo7mkSaSJpMmk+aUppVmliaW5pemmaabxp5GoKahJqHmooaihqPAAAAAAAGwFKAAEAAAAAAAAAHwAAAAEAAAAAAAEABgAfAAEAAAAAAAIABwAlAAEAAAAAAAMAEgAsAAEAAAAAAAQADgA+AAEAAAAAAAUAFgBMAAEAAAAAAAYADgBiAAEAAAAAAAcAIABwAAEAAAAAAAkABgCQAAEAAAAAAAsACgCWAAEAAAAAAAwAEwCgAAEAAAAAAA0ALgCzAAEAAAAAAA4AKgDhAAEAAAAAABIADgELAAMAAQQJAAAAPgEZAAMAAQQJAAEADAFXAAMAAQQJAAIADgFjAAMAAQQJAAMAJAFxAAMAAQQJAAQAHAGVAAMAAQQJAAUALAGxAAMAAQQJAAYAHAHdAAMAAQQJAAcAQAH5AAMAAQQJAAkADAI5AAMAAQQJAAsAFAJFAAMAAQQJAAwAJgJZAAMAAQQJAA0AXAJ/AAMAAQQJAA4AVALbRm9udCBkYXRhIGNvcHlyaWdodCBHb29nbGUgMjAxM1JvYm90b1JlZ3VsYXJHb29nbGU6Um9ib3RvOjIwMTNSb2JvdG8gUmVndWxhclZlcnNpb24gMS4yMDAzMTA7IDIwMTNSb2JvdG8tUmVndWxhclJvYm90byBpcyBhIHRyYWRlbWFyayBvZiBHb29nbGUuR29vZ2xlR29vZ2xlLmNvbUNocmlzdGlhbiBSb2JlcnRzb25MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4waHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wUm9ib3RvIFJlZ3VsYXIARgBvAG4AdAAgAGQAYQB0AGEAIABjAG8AcAB5AHIAaQBnAGgAdAAgAEcAbwBvAGcAbABlACAAMgAwADEAMwBSAG8AYgBvAHQAbwBSAGUAZwB1AGwAYQByAEcAbwBvAGcAbABlADoAUgBvAGIAbwB0AG8AOgAyADAAMQAzAFIAbwBiAG8AdABvACAAUgBlAGcAdQBsAGEAcgBWAGUAcgBzAGkAbwBuACAAMQAuADIAMAAwADMAMQAwADsAIAAyADAAMQAzAFIAbwBiAG8AdABvAC0AUgBlAGcAdQBsAGEAcgBSAG8AYgBvAHQAbwAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAEcAbwBvAGcAbABlAC4ARwBvAG8AZwBsAGUARwBvAG8AZwBsAGUALgBjAG8AbQBDAGgAcgBpAHMAdABpAGEAbgAgAFIAbwBiAGUAcgB0AHMAbwBuAEwAaQBjAGUAbgBzAGUAZAAgAHUAbgBkAGUAcgAgAHQAaABlACAAQQBwAGEAYwBoAGUAIABMAGkAYwBlAG4AcwBlACwAIABWAGUAcgBzAGkAbwBuACAAMgAuADAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcABhAGMAaABlAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwBMAEkAQwBFAE4AUwBFAC0AMgAuADAAAAAAAgAAAAAAAP9qAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAQcAAABAgACAAMABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAowCEAIUAvQCWAOgAhgCOAIsAnQCpAKQAigEDAIMAkwDyAPMAjQCXAIgBBADeAPEAngCqAPUA9AD2AKIAkADwAJEA7QCJAKAA6gC4AKEA7gEFANcBBgDiAOMBBwEIALAAsQEJAKYBCgELAQwBDQEOAQ8A2ADhANsA3ADdAOAA2QDfARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIAnwEjASQBJQEmAScBKAEpASoBKwEsAS0AmwEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNALIAswHOALYAtwDEAc8AtAC1AMUAggDCAIcB0ACrAMYAvgC/ALwB0QHSAdMB1AHVAdYB1wHYAIwB2QHaAdsB3AHdAJgAmgCZAO8ApQCSAJwApwCPAJQAlQC5Ad4B3wHgAMAB4QHiAeMB5AHlAeYB5wHoAekB6gHrAewB7QHuAe8B8AHxAfIB8wH0AfUB9gH3AfgB+QH6AfsB/AH9Af4B/wIAAgECAgIDAgQCBQIGAgcCCAIJAgoCCwIMAg0CDgIPAhACEQISAhMCFAIVAhYCFwIYAhkCGgIbAhwCHQIeAh8CIAIhAiICIwIkAiUCJgInAigCKQIqAisCLAItAi4CLwIwAjECMgIzAjQCNQI2AjcArAI4AjkA6QI6AjsCPACtAMkAxwCuAGIAYwI9AGQAywBlAMgAygDPAMwAzQDOAGYA0wDQANEArwBnANYA1ADVAGgA6wBqAGkAawBtAGwAbgI+AG8AcQBwAHIAcwB1AHQAdgB3AHgAegB5AHsAfQB8AH8AfgCAAIEA7AC6Aj8CQAJBAkICQwJEAP0A/gJFAkYCRwJIAP8BAAJJAkoCSwJMAk0CTgJPAlACUQJSAlMCVAJVAlYA+AD5AlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooA+wD8AosCjADkAOUCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQKaApsCnAKdAp4CnwKgAqECogC7AqMCpAKlAqYA5gDnAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+Ar8CwALBAsICwwLEAsUCxgLHAsgCyQLKAssCzALNAs4CzwLQAtEC0gLTAtQC1QLWAtcC2ALZAtoC2wLcAt0C3gLfAuAC4QLiAuMC5ALlAuYC5wLoAukC6gLrAuwC7QLuAu8C8ALxAvIC8wL0AvUC9gL3AvgC+QL6AvsC/AL9Av4C/wMAAwEDAgMDAwQDBQMGAwcDCAMJAwoDCwMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGgMbAxwDHQMeAx8DIAMhAyIDIwMkAyUDJgMnAygDKQMqAysDLAMtAy4DLwMwAzEDMgMzAzQDNQM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjA2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1A3YDdwN4A3kDegN7A3wDfQN+A38DgAOBA4IDgwOEA4UDhgOHA4gDiQOKA4sDjAONA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DngOfA6ADoQOiA6MDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPDA8QDxQPGA8cDyAPJA8oDywPMA80DzgPPA9AD0QPSA9MD1APVA9YD1wPYA9kD2gPbA9wD3QPeA98D4APhA+ID4wPkA+UD5gPnA+gD6QPqA+sD7APtA+4D7wPwA/ED8gPzA/QD9QP2A/cD+AP5A/oD+wP8A/0D/gP/BAAEAQQCBAMEBAQFBAYEBwQIBAkECgQLBAwEDQQOBA8EEAQRBBIEEwQUBBUEFgQXBBgEGQQaBBsEHAQdBB4EHwQgBCEA9wQiBCMABAd1bmkwMDA5Bm1hY3Jvbg5wZXJpb2RjZW50ZXJlZARIYmFyDGtncmVlbmxhbmRpYwNFbmcDZW5nBWxvbmdzBU9ob3JuBW9ob3JuBVVob3JuBXVob3JuB3VuaTAyMzcFc2Nod2EHdW5pMDJGMwlncmF2ZWNvbWIJYWN1dGVjb21iCXRpbGRlY29tYgRob29rB3VuaTAzMEYIZG90YmVsb3cFdG9ub3MNZGllcmVzaXN0b25vcwlhbm90ZWxlaWEFR2FtbWEFRGVsdGEFVGhldGEGTGFtYmRhAlhpAlBpBVNpZ21hA1BoaQNQc2kFYWxwaGEEYmV0YQVnYW1tYQVkZWx0YQdlcHNpbG9uBHpldGEDZXRhBXRoZXRhBGlvdGEGbGFtYmRhAnhpA3JobwZzaWdtYTEFc2lnbWEDdGF1B3Vwc2lsb24DcGhpA3BzaQVvbWVnYQd1bmkwM0QxB3VuaTAzRDIHdW5pMDNENgd1bmkwNDAyB3VuaTA0MDQHdW5pMDQwOQd1bmkwNDBBB3VuaTA0MEIHdW5pMDQwRgd1bmkwNDExB3VuaTA0MTQHdW5pMDQxNgd1bmkwNDE3B3VuaTA0MTgHdW5pMDQxQgd1bmkwNDIzB3VuaTA0MjQHdW5pMDQyNgd1bmkwNDI3B3VuaTA0MjgHdW5pMDQyOQd1bmkwNDJBB3VuaTA0MkIHdW5pMDQyQwd1bmkwNDJEB3VuaTA0MkUHdW5pMDQyRgd1bmkwNDMxB3VuaTA0MzIHdW5pMDQzMwd1bmkwNDM0B3VuaTA0MzYHdW5pMDQzNwd1bmkwNDM4B3VuaTA0M0EHdW5pMDQzQgd1bmkwNDNDB3VuaTA0M0QHdW5pMDQzRgd1bmkwNDQyB3VuaTA0NDQHdW5pMDQ0Ngd1bmkwNDQ3B3VuaTA0NDgHdW5pMDQ0OQd1bmkwNDRBB3VuaTA0NEIHdW5pMDQ0Qwd1bmkwNDREB3VuaTA0NEUHdW5pMDQ0Rgd1bmkwNDUyB3VuaTA0NTQHdW5pMDQ1OQd1bmkwNDVBB3VuaTA0NUIHdW5pMDQ1Rgd1bmkwNDYwB3VuaTA0NjEHdW5pMDQ2Mwd1bmkwNDY0B3VuaTA0NjUHdW5pMDQ2Ngd1bmkwNDY3B3VuaTA0NjgHdW5pMDQ2OQd1bmkwNDZBB3VuaTA0NkIHdW5pMDQ2Qwd1bmkwNDZEB3VuaTA0NkUHdW5pMDQ2Rgd1bmkwNDcyB3VuaTA0NzMHdW5pMDQ3NAd1bmkwNDc1B3VuaTA0N0EHdW5pMDQ3Qgd1bmkwNDdDB3VuaTA0N0QHdW5pMDQ3RQd1bmkwNDdGB3VuaTA0ODAHdW5pMDQ4MQd1bmkwNDgyB3VuaTA0ODMHdW5pMDQ4NAd1bmkwNDg1B3VuaTA0ODYHdW5pMDQ4OAd1bmkwNDg5B3VuaTA0OEQHdW5pMDQ4RQd1bmkwNDhGB3VuaTA0OTAHdW5pMDQ5MQd1bmkwNDk0B3VuaTA0OTUHdW5pMDQ5Qwd1bmkwNDlEB3VuaTA0QTAHdW5pMDRBMQd1bmkwNEE0B3VuaTA0QTUHdW5pMDRBNgd1bmkwNEE3B3VuaTA0QTgHdW5pMDRBOQd1bmkwNEI0B3VuaTA0QjUHdW5pMDRCOAd1bmkwNEI5B3VuaTA0QkEHdW5pMDRCQwd1bmkwNEJEB3VuaTA0QzMHdW5pMDRDNAd1bmkwNEM3B3VuaTA0QzgHdW5pMDREOAd1bmkwNEUwB3VuaTA0RTEHdW5pMDRGQQd1bmkwNEZCB3VuaTA1MDAHdW5pMDUwMgd1bmkwNTAzB3VuaTA1MDQHdW5pMDUwNQd1bmkwNTA2B3VuaTA1MDcHdW5pMDUwOAd1bmkwNTA5B3VuaTA1MEEHdW5pMDUwQgd1bmkwNTBDB3VuaTA1MEQHdW5pMDUwRQd1bmkwNTBGB3VuaTA1MTAHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMEINdW5kZXJzY29yZWRibA1xdW90ZXJldmVyc2VkB3VuaTIwMjUHdW5pMjA3NAluc3VwZXJpb3IEbGlyYQZwZXNldGEERXVybwd1bmkyMTA1B3VuaTIxMTMHdW5pMjExNgllc3RpbWF0ZWQJb25lZWlnaHRoDHRocmVlZWlnaHRocwtmaXZlZWlnaHRocwxzZXZlbmVpZ2h0aHMKY29sb24ubG51bQlxdW90ZWRibHgLY29tbWFhY2NlbnQHdW5pRkVGRgd1bmlGRkZDB3VuaUZGRkQJZml2ZS5zbWNwCGZvdXIuc3VwCXplcm8ubG51bQ5sYXJnZXJpZ2h0aG9vawxjeXJpbGxpY2hvb2sQY3lyaWxsaWNob29rbGVmdAtjeXJpbGxpY3RpYw5icmV2ZXRpbGRlY29tYg1icmV2ZWhvb2tjb21iDmJyZXZlYWN1dGVjb21iE2NpcmN1bWZsZXh0aWxkZWNvbWISY2lyY3VtZmxleGhvb2tjb21iE2NpcmN1bWZsZXhncmF2ZWNvbWITY2lyY3VtZmxleGFjdXRlY29tYg5icmV2ZWdyYXZlY29tYhFjb21tYWFjY2VudHJvdGF0ZQZBLnNtY3AGQi5zbWNwBkMuc21jcAZELnNtY3AGRS5zbWNwBkYuc21jcAZHLnNtY3AGSC5zbWNwBkkuc21jcAZKLnNtY3AGSy5zbWNwBkwuc21jcAZNLnNtY3AGTi5zbWNwBk8uc21jcAZRLnNtY3AGUi5zbWNwBlMuc21jcAZULnNtY3AGVS5zbWNwBlYuc21jcAZXLnNtY3AGWC5zbWNwBlkuc21jcAZaLnNtY3AJemVyby5zbWNwCG9uZS5zbWNwCHR3by5zbWNwCnRocmVlLnNtY3AJZm91ci5zbWNwCHR3by5sbnVtCHNpeC5zbWNwCnNldmVuLnNtY3AKZWlnaHQuc21jcAluaW5lLnNtY3AHb25lLnN1cAd0d28uc3VwCXRocmVlLnN1cAhvbmUubG51bQhmaXZlLnN1cAdzaXguc3VwCXNldmVuLnN1cAllaWdodC5zdXAIbmluZS5zdXAIemVyby5zdXAIY3Jvc3NiYXIJcmluZ2FjdXRlCWRhc2lhb3hpYQp0aHJlZS5sbnVtCWZvdXIubG51bQlmaXZlLmxudW0Ic2l4LmxudW0FZy5hbHQKc2V2ZW4ubG51bQdjaGkuYWx0CmVpZ2h0LmxudW0JYWxwaGEuYWx0CWRlbHRhLmFsdARELmNuBGEuY24FUi5hbHQFSy5hbHQFay5hbHQGSy5hbHQyBmsuYWx0MgluaW5lLmxudW0GUC5zbWNwDWN5cmlsbGljYnJldmUHdW5pMDBBRAZEY3JvYXQEaGJhcgRUYmFyBHRiYXIKQXJpbmdhY3V0ZQphcmluZ2FjdXRlB0FtYWNyb24HYW1hY3JvbgZBYnJldmUGYWJyZXZlB0FvZ29uZWsHYW9nb25lawtDY2lyY3VtZmxleAtjY2lyY3VtZmxleAd1bmkwMTBBB3VuaTAxMEIGRGNhcm9uBmRjYXJvbgdFbWFjcm9uB2VtYWNyb24GRWJyZXZlBmVicmV2ZQpFZG90YWNjZW50CmVkb3RhY2NlbnQHRW9nb25lawdlb2dvbmVrBkVjYXJvbgZlY2Fyb24LR2NpcmN1bWZsZXgLZ2NpcmN1bWZsZXgHdW5pMDEyMAd1bmkwMTIxDEdjb21tYWFjY2VudAxnY29tbWFhY2NlbnQLSGNpcmN1bWZsZXgLaGNpcmN1bWZsZXgGSXRpbGRlBml0aWxkZQdJbWFjcm9uB2ltYWNyb24GSWJyZXZlBmlicmV2ZQdJb2dvbmVrB2lvZ29uZWsKSWRvdGFjY2VudAJJSgJpagtKY2lyY3VtZmxleAtqY2lyY3VtZmxleAxLY29tbWFhY2NlbnQMa2NvbW1hYWNjZW50BkxhY3V0ZQZsYWN1dGUMTGNvbW1hYWNjZW50DGxjb21tYWFjY2VudAZMY2Fyb24GbGNhcm9uBExkb3QEbGRvdAZOYWN1dGUGbmFjdXRlDE5jb21tYWFjY2VudAxuY29tbWFhY2NlbnQGTmNhcm9uBm5jYXJvbgtuYXBvc3Ryb3BoZQdPbWFjcm9uB29tYWNyb24GT2JyZXZlBm9icmV2ZQ1PaHVuZ2FydW1sYXV0DW9odW5nYXJ1bWxhdXQGUmFjdXRlBnJhY3V0ZQxSY29tbWFhY2NlbnQMcmNvbW1hYWNjZW50BlJjYXJvbgZyY2Fyb24GU2FjdXRlBnNhY3V0ZQtTY2lyY3VtZmxleAtzY2lyY3VtZmxleAd1bmkwMjE4B3VuaTAyMTkHdW5pMDIxQQd1bmkwMjFCB3VuaTAxNjIHdW5pMDE2MwZUY2Fyb24GdGNhcm9uBlV0aWxkZQZ1dGlsZGUHVW1hY3Jvbgd1bWFjcm9uBlVicmV2ZQZ1YnJldmUFVXJpbmcFdXJpbmcNVWh1bmdhcnVtbGF1dA11aHVuZ2FydW1sYXV0B1VvZ29uZWsHdW9nb25lawtXY2lyY3VtZmxleAt3Y2lyY3VtZmxleAtZY2lyY3VtZmxleAt5Y2lyY3VtZmxleAZaYWN1dGUGemFjdXRlClpkb3RhY2NlbnQKemRvdGFjY2VudAdBRWFjdXRlB2FlYWN1dGULT3NsYXNoYWN1dGULb3NsYXNoYWN1dGULRGNyb2F0LnNtY3AIRXRoLnNtY3AJVGJhci5zbWNwC0FncmF2ZS5zbWNwC0FhY3V0ZS5zbWNwEEFjaXJjdW1mbGV4LnNtY3ALQXRpbGRlLnNtY3AOQWRpZXJlc2lzLnNtY3AKQXJpbmcuc21jcA9BcmluZ2FjdXRlLnNtY3ANQ2NlZGlsbGEuc21jcAtFZ3JhdmUuc21jcAtFYWN1dGUuc21jcBBFY2lyY3VtZmxleC5zbWNwDkVkaWVyZXNpcy5zbWNwC0lncmF2ZS5zbWNwC0lhY3V0ZS5zbWNwEEljaXJjdW1mbGV4LnNtY3AOSWRpZXJlc2lzLnNtY3ALTnRpbGRlLnNtY3ALT2dyYXZlLnNtY3ALT2FjdXRlLnNtY3AQT2NpcmN1bWZsZXguc21jcAtPdGlsZGUuc21jcA5PZGllcmVzaXMuc21jcAtVZ3JhdmUuc21jcAtVYWN1dGUuc21jcBBVY2lyY3VtZmxleC5zbWNwDlVkaWVyZXNpcy5zbWNwC1lhY3V0ZS5zbWNwDEFtYWNyb24uc21jcAtBYnJldmUuc21jcAxBb2dvbmVrLnNtY3ALQ2FjdXRlLnNtY3AQQ2NpcmN1bWZsZXguc21jcAx1bmkwMTBBLnNtY3ALQ2Nhcm9uLnNtY3ALRGNhcm9uLnNtY3AMRW1hY3Jvbi5zbWNwC0VicmV2ZS5zbWNwD0Vkb3RhY2NlbnQuc21jcAxFb2dvbmVrLnNtY3ALRWNhcm9uLnNtY3AQR2NpcmN1bWZsZXguc21jcAtHYnJldmUuc21jcAx1bmkwMTIwLnNtY3ARR2NvbW1hYWNjZW50LnNtY3AQSGNpcmN1bWZsZXguc21jcAtJdGlsZGUuc21jcAxJbWFjcm9uLnNtY3ALSWJyZXZlLnNtY3AMSW9nb25lay5zbWNwD0lkb3RhY2NlbnQuc21jcBBKY2lyY3VtZmxleC5zbWNwEUtjb21tYWFjY2VudC5zbWNwC0xhY3V0ZS5zbWNwEUxjb21tYWFjY2VudC5zbWNwC0xjYXJvbi5zbWNwCUxkb3Quc21jcAtOYWN1dGUuc21jcBFOY29tbWFhY2NlbnQuc21jcAtOY2Fyb24uc21jcAxPbWFjcm9uLnNtY3ALT2JyZXZlLnNtY3AST2h1bmdhcnVtbGF1dC5zbWNwC1JhY3V0ZS5zbWNwEVJjb21tYWFjY2VudC5zbWNwC1JjYXJvbi5zbWNwC1NhY3V0ZS5zbWNwEFNjaXJjdW1mbGV4LnNtY3ANU2NlZGlsbGEuc21jcAtTY2Fyb24uc21jcBFUY29tbWFhY2NlbnQuc21jcAtUY2Fyb24uc21jcAtVdGlsZGUuc21jcAxVbWFjcm9uLnNtY3ALVWJyZXZlLnNtY3AKVXJpbmcuc21jcBJVaHVuZ2FydW1sYXV0LnNtY3AMVW9nb25lay5zbWNwEFdjaXJjdW1mbGV4LnNtY3AQWWNpcmN1bWZsZXguc21jcA5ZZGllcmVzaXMuc21jcAtaYWN1dGUuc21jcA9aZG90YWNjZW50LnNtY3ALWmNhcm9uLnNtY3APZ2VybWFuZGJscy5zbWNwCkFscGhhdG9ub3MMRXBzaWxvbnRvbm9zCEV0YXRvbm9zCUlvdGF0b25vcwxPbWljcm9udG9ub3MMVXBzaWxvbnRvbm9zCk9tZWdhdG9ub3MRaW90YWRpZXJlc2lzdG9ub3MFQWxwaGEEQmV0YQdFcHNpbG9uBFpldGEDRXRhBElvdGEFS2FwcGECTXUCTnUHT21pY3JvbgNSaG8DVGF1B1Vwc2lsb24DQ2hpDElvdGFkaWVyZXNpcw9VcHNpbG9uZGllcmVzaXMKYWxwaGF0b25vcwxlcHNpbG9udG9ub3MIZXRhdG9ub3MJaW90YXRvbm9zFHVwc2lsb25kaWVyZXNpc3Rvbm9zBWthcHBhB29taWNyb24HdW5pMDNCQwJudQNjaGkMaW90YWRpZXJlc2lzD3Vwc2lsb25kaWVyZXNpcwxvbWljcm9udG9ub3MMdXBzaWxvbnRvbm9zCm9tZWdhdG9ub3MHdW5pMDQwMQd1bmkwNDAzB3VuaTA0MDUHdW5pMDQwNgd1bmkwNDA3B3VuaTA0MDgHdW5pMDQxQQd1bmkwNDBDB3VuaTA0MEUHdW5pMDQxMAd1bmkwNDEyB3VuaTA0MTMHdW5pMDQxNQd1bmkwNDE5B3VuaTA0MUMHdW5pMDQxRAd1bmkwNDFFB3VuaTA0MUYHdW5pMDQyMAd1bmkwNDIxB3VuaTA0MjIHdW5pMDQyNQd1bmkwNDMwB3VuaTA0MzUHdW5pMDQzOQd1bmkwNDNFB3VuaTA0NDAHdW5pMDQ0MQd1bmkwNDQzB3VuaTA0NDUHdW5pMDQ1MQd1bmkwNDUzB3VuaTA0NTUHdW5pMDQ1Ngd1bmkwNDU3B3VuaTA0NTgHdW5pMDQ1Qwd1bmkwNDVFBldncmF2ZQZ3Z3JhdmUGV2FjdXRlBndhY3V0ZQlXZGllcmVzaXMJd2RpZXJlc2lzBllncmF2ZQZ5Z3JhdmUGbWludXRlBnNlY29uZAlleGNsYW1kYmwHdW5pRkIwMgd1bmkwMUYwB3VuaTAyQkMHdW5pMUUzRQd1bmkxRTNGB3VuaTFFMDAHdW5pMUUwMQd1bmkxRjREB3VuaUZCMDMHdW5pRkIwNAd1bmkwNDAwB3VuaTA0MEQHdW5pMDQ1MAd1bmkwNDVEB3VuaTA0NzAHdW5pMDQ3MQd1bmkwNDc2B3VuaTA0NzcHdW5pMDQ3OQd1bmkwNDc4B3VuaTA0OTgHdW5pMDQ5OQd1bmkwNEFBB3VuaTA0QUIHdW5pMDRBRQd1bmkwNEFGB3VuaTA0QzAHdW5pMDRDMQd1bmkwNEMyB3VuaTA0Q0YHdW5pMDREMAd1bmkwNEQxB3VuaTA0RDIHdW5pMDREMwd1bmkwNEQ0B3VuaTA0RDUHdW5pMDRENgd1bmkwNEQ3B3VuaTA0REEHdW5pMDREOQd1bmkwNERCB3VuaTA0REMHdW5pMDRERAd1bmkwNERFB3VuaTA0REYHdW5pMDRFMgd1bmkwNEUzB3VuaTA0RTQHdW5pMDRFNQd1bmkwNEU2B3VuaTA0RTcHdW5pMDRFOAd1bmkwNEU5B3VuaTA0RUEHdW5pMDRFQgd1bmkwNEVDB3VuaTA0RUQHdW5pMDRFRQd1bmkwNEVGB3VuaTA0RjAHdW5pMDRGMQd1bmkwNEYyB3VuaTA0RjMHdW5pMDRGNAd1bmkwNEY1B3VuaTA0RjgHdW5pMDRGOQd1bmkwNEZDB3VuaTA0RkQHdW5pMDUwMQd1bmkwNTEyB3VuaTA1MTMHdW5pMUVBMAd1bmkxRUExB3VuaTFFQTIHdW5pMUVBMwd1bmkxRUE0B3VuaTFFQTUHdW5pMUVBNgd1bmkxRUE3B3VuaTFFQTgHdW5pMUVBOQd1bmkxRUFBB3VuaTFFQUIHdW5pMUVBQwd1bmkxRUFEB3VuaTFFQUUHdW5pMUVBRgd1bmkxRUIwB3VuaTFFQjEHdW5pMUVCMgd1bmkxRUIzB3VuaTFFQjQHdW5pMUVCNQd1bmkxRUI2B3VuaTFFQjcHdW5pMUVCOAd1bmkxRUI5B3VuaTFFQkEHdW5pMUVCQgd1bmkxRUJDB3VuaTFFQkQHdW5pMUVCRQd1bmkxRUJGB3VuaTFFQzAHdW5pMUVDMQd1bmkxRUMyB3VuaTFFQzMHdW5pMUVDNAd1bmkxRUM1B3VuaTFFQzYHdW5pMUVDNwd1bmkxRUM4B3VuaTFFQzkHdW5pMUVDQQd1bmkxRUNCB3VuaTFFQ0MHdW5pMUVDRAd1bmkxRUNFB3VuaTFFQ0YHdW5pMUVEMAd1bmkxRUQxB3VuaTFFRDIHdW5pMUVEMwd1bmkxRUQ0B3VuaTFFRDUHdW5pMUVENgd1bmkxRUQ3B3VuaTFFRDgHdW5pMUVEOQd1bmkxRURBB3VuaTFFREIHdW5pMUVEQwd1bmkxRUREB3VuaTFFREUHdW5pMUVERgd1bmkxRUUwB3VuaTFFRTEHdW5pMUVFMgd1bmkxRUUzB3VuaTFFRTQHdW5pMUVFNQd1bmkxRUU2B3VuaTFFRTcHdW5pMUVFOAd1bmkxRUU5B3VuaTFFRUEHdW5pMUVFQgd1bmkxRUVDB3VuaTFFRUQHdW5pMUVFRQd1bmkxRUVGB3VuaTFFRjAHdW5pMUVGMQd1bmkxRUY0B3VuaTFFRjUHdW5pMUVGNgd1bmkxRUY3B3VuaTFFRjgHdW5pMUVGOQZkY3JvYXQHdW5pMjBBQgd1bmkwNDlBB3VuaTA0OUIHdW5pMDRBMgd1bmkwNEEzB3VuaTA0QUMHdW5pMDRBRAd1bmkwNEIyB3VuaTA0QjMHdW5pMDRCNgd1bmkwNEI3B3VuaTA0Q0IHdW5pMDRDQwd1bmkwNEY2B3VuaTA0RjcHdW5pMDQ5Ngd1bmkwNDk3B3VuaTA0QkUHdW5pMDRCRgd1bmkwNEJCB3VuaTA0OEMHdW5pMDQ2Mgd1bmkwNDkyB3VuaTA0OTMHdW5pMDQ5RQd1bmkwNDlGB3VuaTA0OEEHdW5pMDQ4Qgd1bmkwNEM5B3VuaTA0Q0EHdW5pMDRDRAd1bmkwNENFB3VuaTA0QzUHdW5pMDRDNgd1bmkwNEIwB3VuaTA0QjEHdW5pMDRGRQd1bmkwNEZGB3VuaTA1MTEHdW5pMjAxNQd1bmkwMDAyAAAAAQAAAAwAAAAAAAAAAgAIAMoAygABAR4BJAABAVYBYQABAXYBdgABAXsBfAABAX4BfgABAZMBlQABAdUB1QABAAAAAAAAAAAAAQAAAAoAHgAsAAFERkxUAAgABAAAAAD//wABAAAAAWtlcm4ACAAAAAEAAAABAAQAAgAAAAQADk1oVQZzXAABetgABAAAAa0DZANqA3ADdgPoA/IEBAQqBEAESgRsBI4ElATiBRAFMgVUBXoFoAWmBowGkga4Bt4HQAfSB/QIEggsCDIIQAhGCEwIUgh4CJIIoAi+CMQI4gj8CQIJxAo2ClwKzgrUCt4K5ArqCvALDgscC0YLTAtiC3wLggucC6ILqAveC+QL7gwcDEIMaAyKDKwMzgz8DV4NdA2WDbgOAg4kDkYOeA6eDsQOzg7YDvIPBA8ODygPLg9ED5IPrA/GD9wP/hAgEDoQQBBiEIQQphEYET4RZBGCEZwSXhJoErYTBBMOExQTGhMgEyYTLBNSE1wTYhN0E54TtBPGE9gT/hQEFBoUJBQ2FFwUchR4FH4UmBSeFMQU6hXQFkIWtBcmF5gYChh8GO4ZABkWGSwZQhlYGXoZnBm+GeAaAhooGk4adBqaGsAaxhrMGtIa2BtqG4gbphvEG+IcABweHDwcQhxIHE4cVBxaHIAcphzMHPIdGB02HVQdxh3kHlYedB7mHwQfFh8oHzofTB9yH4gfjh+kH6ofwB/GH9wf4h/4H/4gICAmIEggaiCMIK4g0CDWISQhUiGAIa4h3CH+IgQiJiIsIk4iVCJaIoAipiLMIvIjGCM+I0wjWiNoJE4lNCYaJiAmJiYsJjImOCY+JmQm9icUJ6YnyCfqKAwofiiUKLYo2Cj+KZAqAioMKiIqRCpmKogq1ir4KxorQCtmLEws3i1ALWIt9C36LiAuPi5kLnovPC9eL4Avhi/UMCIwbDDeMOgxqjHAMeIyBDIqMlAyYjNIM6ozyDPOM/Q0DjQsNDI0ODRCNGA0hjSsNNI1ZDWCNYg1jjWUNbY1vDYuNkw2cjaINo42tDbSNuQ3djeUN7Y4GDgeOEA4sjjQOUI5YDl2OXw5gjmIOeo58DoWOjw6Yjp8OsY65DsuO0w7lju0PBY8HDyOPKw9Hj08Pa49zD4+Plw+zj7sP14/fD/uQAxAfkCcQQ5BLEGeQbxCLkJMQr5C3ELyQvhDDkMUQypDMENGQ0xDYkNoQ35DhEOaQ6BDtkO8Q95EAEQmRExEckSYRL5E5EUKRTBFVkV8RaJFyEXuRhRGOkZARkZG2Eb2R4hHpkg4SFZIpEjGSaxKDkoUStZK4EtCS0hLTkt0TDZMhEymTMgAAQBZAAsAAQBZAAsAAQAR/yAAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAAgEMAAsBU//mAAQAC//mAD//9ABf/+8BPP/tAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAIAVP/mAaf/wAAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEBp//rABMAWf/BALP/xQDF/7QA5f/XAPH/uQEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8Bqf/oAa3/5gG1/+cBtv/nAAsAWf+kAacAEwGp//MBrf/xAbX/8gG2//EBuf87Abr/2gG7/1QBvP+RAb7/PwAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQBWAA4Af/+fAL//3gDC/+UA1P+oAOj/ygFG/+MBp//GAd//9QABAacADgA5AFT/tQBZ/8cAa/64AHr/KAB//00AhP+OAIf/oQCz/64Auv9+AL7/ZwDB/4cAwv9lAMX/ngDH/2oAyP9zAMn/XgDU/6UA4QAPAOX/5ADm/6AA6P90AOr/gADx/7IA+P99APr/gAD8/3kBAv99AQT/fwEX/5gBG//aASf/gQEp/5gBLf99AS//swEz/6ABOf98ATv/mgE8/2wBQf/mAUb/awFK/5IBTP+tAVD/ewFTAA8BVP+RAVX/8gGn/68Bqf+5Aa3/uQG1/7kBtv+5Abj/vAG5//EBvP/xAb3/7QHc/6kB3//JAAEBp//rAAkACwAUAD8AEQBU/+IAXwATAaf/tAGp/9kBrf/ZAbX/2QG2/9kACQALAA8APwAMAFT/6wBfAA4Bp//LAan/6QGt/+cBtf/nAbb/5wAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ACABZ/+UAs//LAMj/5AGnAA0Bqf/tAa3/6wG1/+wBtv/sAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAYAxf/qAOj/7gDx/7ABL//sAVT/7AHc/+gAAQDx//UAAwALABQAPwASAF8AEwABAPH/wAABAPH/wAABAPH/wAAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAYAxf/qAOj/7gDx/7ABL//sAVT/7AHc/+gAAwBIAA8AVgAgAFkAEQAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QABARf/8QAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAGAMX/6gDo/+4A8f+wAS//7AFU/+wB3P/oAAEA8f/1ADAAVP9tAFn/jABr/b8Aev59AH/+vACE/ysAh/9LALP/YQC6/w8Avv7oAMH/HwDC/uUAxf9GAMf+7QDI/v0Ayf7ZANT/UgDhAAUA5f+9AOb/SQDo/v4A6v8TAPH/aAD4/w4A+v8TAPz/BwEC/w4BBP8RARf/PAEb/6wBJ/8VASn/PAEt/w4BL/9qATP/SQE5/wwBO/8/ATz+8QFB/8ABRv7vAUr/MQFM/18BUP8KAVMABQFU/zABVf/VAdz/WQHf/48AHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAABAL8ADQACALP/wgC/ABAAAQC//+IAAQDC//IAAQC/AA4ABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAAwDF/+0A8f/AAdz/7AAKALr/5gC9/+sAvv/pAMD/8ADB/+cAxf/jAMf/zgDI/9QAyf/bAd//7gABAPH/wAAFAL3/7AC/AA8Awf/qAMX/xADH/+cABgBI/+kAvf/uAL8AEADB/+wAxf8gAdz/2gABAL8ADwAGAMX/6gDo/+4A8f+rAS//7AFU/+wB3P/oAAEA8f/VAAEAxQALAA0ASAAMAMEACwDFAAwBp/+/Aan/7gGt/+wBtf/tAbb/7AG4//UBuQAOAbsADQG+AA0B3//tAAEA8f/YAAIA8f+qAdz/4QALAOH/1ADx/8kBBP/lARv/4wEv/8QBOP/hAUn/1AFK//UBS//nAVP/0gFU/8kACQDh/8MA8f/PAS//zgE4/+cBO//fAUn/0QFL/+wBU/+gAVT/0QAJAOH/wwDx/88BL//OATj/5wE7/98BSf/RAUv/7AFT/6ABVP/RAAgA4f/JAPH/3wEE/+0BG//rAS//3wE7/+kBSv/1AVT/4AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADh/+YA8f/QAS//zgE4/+gBSf/nAUv/7QFT/+YBVP/QAAsA1AAUAOH/4ADoABMBOP/hATn/4AE8/+EBQf/pAUn/3wFL/94BU//fAVX/8gAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAUAGf/yAOH/8QFJ//IBS//yAVP/8gAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAMANQAEwDh/+YA4v/0AOgAEgDx/+cBL//nATj/5QE5/+gBSf/mAUv/5gFT/+YBVP/nAAkA4f/DAPH/zwEv/84BOP/nATv/3wFJ/9EBS//sAVP/oAFU/9EACQDh/8MA8f/PAS//zgE4/+cBO//fAUn/0QFL/+wBU/+gAVT/0QACANT/4gFT/+QAAgDU/+EA6P/kAAYA6P/uAPH/7gEE//QBG//xAS//7wFU/+8ABADx//QBBP/1AS//9QFU//UAAgDo/8kBF//uAAYA6AAUAPH/7QD3/+IBL//tATn/7QFU/+0AAQEX//EABQEX/+sBqf/rAa3/6QG1/+sBtv/rABMASAANAML/qwDD/8AAx//VAOj/qgEX/+IBGwAMAUoACwFMAAsBp/+/Aan/7gGt/+wBtf/tAbb/7AG4//UBuQAOAbsADQG+AA0B3/+wAAYAxf/qAOj/7gDx/7ABL//sAVT/7AHc/+gABgDoABQA8f/wAPwADAEv//ABOf/mAVT/8AAFAOgAOgDx/+MBL//iATn/4wFU/+MACADx/7oBBP/PARv/2wEv/1ABOf+dAUr/8AFM//IBVP9MAAgA8f+6AQT/zwEb/9sBL/9QATn/nQFK//ABTP/yAVT/TAAGAMX/6gDo/+4A8f+wAS//7AFU/+wB3P/oAAEA6P/vAAgA8f+6AQT/zwEb/9sBL/9QATn/nQFK//ABTP/yAVT/TAAIAPH/ugEE/88BG//bAS//UAE5/50BSv/wAUz/8gFU/0wACADx/7oBBP/PARv/2wEv/1ABOf+dAUr/8AFM//IBVP9MABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQALABQAPwARAFT/4gBfABMBp/+0Aan/2QGt/9kBtf/ZAbb/2QAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAGAMX/6gDo/+4A8f+wAS//7AFU/+wB3P/oADAAVP9tAFn/jABr/b8Aev59AH/+vACE/ysAh/9LALP/YQC6/w8Avv7oAMH/HwDC/uUAxf9GAMf+7QDI/v0Ayf7ZANT/UgDhAAUA5f+9AOb/SQDo/v4A6v8TAPH/aAD4/w4A+v8TAPz/BwEC/w4BBP8RARf/PAEb/6wBJ/8VASn/PAEt/w4BL/9qATP/SQE5/wwBO/8/ATz+8QFB/8ABRv7vAUr/MQFM/18BUP8KAVMABQFU/zABVf/VAdz/WQHf/48AAgDo/8kBF//uABMAWf/BALP/xQDF/7QA5f/XAPH/uQEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8Bqf/oAa3/5gG1/+cBtv/nABMAWf/BALP/xQDF/7QA5f/XAPH/uQEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8Bqf/oAa3/5gG1/+cBtv/nAAIA6P/JARf/7gABAFkACwABAFkACwABAFkACwABAFkACwABAFkACwAJAan/8gGt//IBtf/yAbb/8gG5/8ABuv/sAbv/xwG8/9gBvv+/AAIBu//uAbz/9QABAaf/0gAEAan/6wGt/+kBtf/rAbb/6wAKAacAEQGp//ABrf/uAbX/7wG2//ABuf+7Abr/7AG7/7cBvP/VAb7/tAAFAaf/8wG5/+4Bu//xAb3/7AG+/+oABAG5/+kBu//rAbz/8QG+/+UABAG5//IBu//xAbz/9QG+/+4ACQGn/78Bqf/uAa3/7AG1/+0Btv/sAbj/9QG5AA4BuwANAb4ADQABAaf/7wAFAaf/xwGp//IBrf/wAbX/8AG2//AAAgGn/9wBuQAOAAQBqf/tAa3/6wG1/+sBtv/rAAkBp//AAan/7QGt/+sBtf/rAbb/6wG5AA8BuwAQAbwADQG+ABAABQGnAAwBqf/wAa3/8AG1//ABtv/wAAEB1/9qAAEB1/8VAAYASAALALr/8gDH//EAyf/vAdwADwHf/+4AAQGn/9UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1ADkAVP+1AFn/xwBr/rgAev8oAH//TQCE/44Ah/+hALP/rgC6/34Avv9nAMH/hwDC/2UAxf+eAMf/agDI/3MAyf9eANT/pQDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+v+AAPz/eQEC/30BBP9/ARf/mAEb/9oBJ/+BASn/mAEt/30BL/+zATP/oAE5/3wBO/+aATz/bAFB/+YBRv9rAUr/kgFM/60BUP97AVMADwFU/5EBVf/yAaf/rwGp/7kBrf+5AbX/uQG2/7kBuP+8Abn/8QG8//EBvf/tAdz/qQHf/8kAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABAAL/+YAP//0AF//7wE8/+0ABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAUASP/uAFn/6gG7//ABvP/tAb7/8AAFAEj/7gBZ/+oBu//wAbz/7QG+//AABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAEBp//rAAEBp//rAAEBp//rAAEBp//rACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAAQDx//UAAQDx//UAAQDx//UAAQDx//UAAQDx/8AACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAQAC//mAD//9ABf/+8BPP/tAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/8AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAaf/6wATAFn/wQCz/8UAxf+0AOX/1wDx/7kBBP+yARf/0gEb/8gBL/+gATn/xQFB/+QBSv/MAUz/zAFU/8sBVf/vAan/6AGt/+YBtf/nAbb/5wALAFn/pAGnABMBqf/zAa3/8QG1//IBtv/xAbn/OwG6/9oBu/9UAbz/kQG+/z8ACwBZ/6QBpwATAan/8wGt//EBtf/yAbb/8QG5/zsBuv/aAbv/VAG8/5EBvv8/AAsAWf+kAacAEwGp//MBrf/xAbX/8gG2//EBuf87Abr/2gG7/1QBvP+RAb7/PwALAFn/pAGnABMBqf/zAa3/8QG1//IBtv/xAbn/OwG6/9oBu/9UAbz/kQG+/z8ACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAEA8f/AAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AABAPH/wAAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/8AAAQDx/8AACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oAAwBIAA8AVgAgAFkAEQADAEgADwBWACAAWQARAAMASAAPAFYAIABZABEAOQBU/7UAWf/HAGv+uAB6/ygAf/9NAIT/jgCH/6EAs/+uALr/fgC+/2cAwf+HAML/ZQDF/54Ax/9qAMj/cwDJ/14A1P+lAOEADwDl/+QA5v+gAOj/dADq/4AA8f+yAPj/fQD6/4AA/P95AQL/fQEE/38BF/+YARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBp/+vAan/uQGt/7kBtf+5Abb/uQG4/7wBuf/xAbz/8QG9/+0B3P+pAd//yQA5AFT/tQBZ/8cAa/64AHr/KAB//00AhP+OAIf/oQCz/64Auv9+AL7/ZwDB/4cAwv9lAMX/ngDH/2oAyP9zAMn/XgDU/6UA4QAPAOX/5ADm/6AA6P90AOr/gADx/7IA+P99APr/gAD8/3kBAv99AQT/fwEX/5gBG//aASf/gQEp/5gBLf99AS//swEz/6ABOf98ATv/mgE8/2wBQf/mAUb/awFK/5IBTP+tAVD/ewFTAA8BVP+RAVX/8gGn/68Bqf+5Aa3/uQG1/7kBtv+5Abj/vAG5//EBvP/xAb3/7QHc/6kB3//JADkAVP+1AFn/xwBr/rgAev8oAH//TQCE/44Ah/+hALP/rgC6/34Avv9nAMH/hwDC/2UAxf+eAMf/agDI/3MAyf9eANT/pQDhAA8A5f/kAOb/oADo/3QA6v+AAPH/sgD4/30A+v+AAPz/eQEC/30BBP9/ARf/mAEb/9oBJ/+BASn/mAEt/30BL/+zATP/oAE5/3wBO/+aATz/bAFB/+YBRv9rAUr/kgFM/60BUP97AVMADwFU/5EBVf/yAaf/rwGp/7kBrf+5AbX/uQG2/7kBuP+8Abn/8QG8//EBvf/tAdz/qQHf/8kAAQGn/+sAAQGn/+sAAQGn/+sAAQGn/+sAAQGn/+sAAQGn/+sACQALAA8APwAMAFT/6wBfAA4Bp//LAan/6QGt/+cBtf/nAbb/5wAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ACABZ/+UAs//LAMj/5AGnAA0Bqf/tAa3/6wG1/+wBtv/sAAgAWf/lALP/ywDI/+QBpwANAan/7QGt/+sBtf/sAbb/7AAIAFn/5QCz/8sAyP/kAacADQGp/+0Brf/rAbX/7AG2/+wAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uABwAIf/DAFb/7wBZ/98Alv/uALP/5QC0/9EAvwARAMX/yADUABMA4f/FAPH/ygEv/58BOP9RATn/ewE7/8oBPP/dAUH/8gFJ/3UBS//KAVP/TwFU/4wBrf/1AbX/9QG5/8cBuv/xAbv/zQG8/90Bvv/EAAIBDAALAVP/5gAFAEj/7gBZ/+oBu//wAbz/7QG+//AACABZ/+UAs//LAMj/5AGnAA0Bqf/tAa3/6wG1/+wBtv/sAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAEwBZ/8EAs//FAMX/tADl/9cA8f+5AQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGp/+gBrf/mAbX/5wG2/+cACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAVgAOAH//nwC//94Awv/lANT/qADo/8oBRv/jAaf/xgHf//UAOQBU/7UAWf/HAGv+uAB6/ygAf/9NAIT/jgCH/6EAs/+uALr/fgC+/2cAwf+HAML/ZQDF/54Ax/9qAMj/cwDJ/14A1P+lAOEADwDl/+QA5v+gAOj/dADq/4AA8f+yAPj/fQD6/4AA/P95AQL/fQEE/38BF/+YARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBp/+vAan/uQGt/7kBtf+5Abb/uQG4/7wBuf/xAbz/8QG9/+0B3P+pAd//yQAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAan/6QGt/+cBtf/nAbb/6QHf//AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4AAQDx/8AACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAUASP/uAFn/6gG7//ABvP/tAb7/8AAwAFT/bQBZ/4wAa/2/AHr+fQB//rwAhP8rAIf/SwCz/2EAuv8PAL7+6ADB/x8Awv7lAMX/RgDH/u0AyP79AMn+2QDU/1IA4QAFAOX/vQDm/0kA6P7+AOr/EwDx/2gA+P8OAPr/EwD8/wcBAv8OAQT/EQEX/zwBG/+sASf/FQEp/zwBLf8OAS//agEz/0kBOf8MATv/PwE8/vEBQf/AAUb+7wFK/zEBTP9fAVD/CgFTAAUBVP8wAVX/1QHc/1kB3/+PAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQGn/+sAEwBZ/8EAs//FAMX/tADl/9cA8f+5AQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGp/+gBrf/mAbX/5wG2/+cAEwBZ/8EAs//FAMX/tADl/9cA8f+5AQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGp/+gBrf/mAbX/5wG2/+cAEgDU/64A4QASAOb/4ADo/60A6v/WAPj/3wD8/9IBAv/gARf/zgEn/90BKf/iAS3/4AEz/+ABOf/pATz/2gFG/70BUP/fAVMAEQAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAACAQwACwFT/+YAMABU/20AWf+MAGv9vwB6/n0Af/68AIT/KwCH/0sAs/9hALr/DwC+/ugAwf8fAML+5QDF/0YAx/7tAMj+/QDJ/tkA1P9SAOEABQDl/70A5v9JAOj+/gDq/xMA8f9oAPj/DgD6/xMA/P8HAQL/DgEE/xEBF/88ARv/rAEn/xUBKf88AS3/DgEv/2oBM/9JATn/DAE7/z8BPP7xAUH/wAFG/u8BSv8xAUz/XwFQ/woBUwAFAVT/MAFV/9UB3P9ZAd//jwAFAEj/7gBZ/+oBu//wAbz/7QG+//AACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAVgAOAH//nwC//94Awv/lANT/qADo/8oBRv/jAaf/xgHf//UABAAL/+YAP//0AF//7wE8/+0AOQBU/7UAWf/HAGv+uAB6/ygAf/9NAIT/jgCH/6EAs/+uALr/fgC+/2cAwf+HAML/ZQDF/54Ax/9qAMj/cwDJ/14A1P+lAOEADwDl/+QA5v+gAOj/dADq/4AA8f+yAPj/fQD6/4AA/P95AQL/fQEE/38BF/+YARv/2gEn/4EBKf+YAS3/fQEv/7MBM/+gATn/fAE7/5oBPP9sAUH/5gFG/2sBSv+SAUz/rQFQ/3sBUwAPAVT/kQFV//IBp/+vAan/uQGt/7kBtf+5Abb/uQG4/7wBuf/xAbz/8QG9/+0B3P+pAd//yQAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAcA8f/wAQT/8QEb//MBL//xAUr/8wFM/+kBVP/TAAEA8f/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oABgDF/+oA6P/uAPH/sAEv/+wBVP/sAdz/6AAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QABARf/8QABAPH/9QACAOj/yQEX/+4ABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UACQALAA8APwAMAFT/6wBfAA4Bp//LAan/6QGt/+cBtf/nAbb/5wAJAAsADwA/AAwAVP/rAF8ADgGn/8sBqf/pAa3/5wG1/+cBtv/nAAkACwAPAD8ADABU/+sAXwAOAaf/ywGp/+kBrf/nAbX/5wG2/+cAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QABAFkACwABAFkACwABAFkACwAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QAAQDx/8AAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UACQALABQAPwARAFT/4gBfABMBp/+0Aan/2QGt/9kBtf/ZAbb/2QAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAEAAv/5gA///QAX//vATz/7QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1AAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAYALP/1AC9/+0AvwARAMX/4ADH/+cAyP/lAMn/7gDUABIA5f/pAPH/1wEv/9cBOf/TATv/1gE8/8UBQf/nAUkADQFLAAwBVP/WAVX/8gGp/+kBrf/nAbX/5wG2/+kB3//wAAEBF//xAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAcACH/wwBW/+8AWf/fAJb/7gCz/+UAtP/RAL8AEQDF/8gA1AATAOH/xQDx/8oBL/+fATj/UQE5/3sBO//KATz/3QFB//IBSf91AUv/ygFT/08BVP+MAa3/9QG1//UBuf/HAbr/8QG7/80BvP/dAb7/xAAHAPH/8AEE//EBG//zAS//8QFK//MBTP/pAVT/0wAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UAAQDx//UAAQDx//UAGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AABARf/8QAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAGAMX/6gDo/+4A8f+wAS//7AFU/+wB3P/oABIA1P+uAOEAEgDm/+AA6P+tAOr/1gD4/98A/P/SAQL/4AEX/84BJ//dASn/4gEt/+ABM//gATn/6QE8/9oBRv+9AVD/3wFTABEABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAEgDU/64A4QASAOb/4ADo/60A6v/WAPj/3wD8/9IBAv/gARf/zgEn/90BKf/iAS3/4AEz/+ABOf/pATz/2gFG/70BUP/fAVMAEQAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QASANT/rgDhABIA5v/gAOj/rQDq/9YA+P/fAPz/0gEC/+ABF//OASf/3QEp/+IBLf/gATP/4AE5/+kBPP/aAUb/vQFQ/98BUwARAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAan/6QGt/+cBtf/nAbb/6QHf//AAAQEX//EAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MAHAAh/8MAVv/vAFn/3wCW/+4As//lALT/0QC/ABEAxf/IANQAEwDh/8UA8f/KAS//nwE4/1EBOf97ATv/ygE8/90BQf/yAUn/dQFL/8oBU/9PAVT/jAGt//UBtf/1Abn/xwG6//EBu//NAbz/3QG+/8QABwDx//ABBP/xARv/8wEv//EBSv/zAUz/6QFU/9MABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAFAEj/7gBZ/+oBu//wAbz/7QG+//AAAQDx//UABQBI/+4AWf/qAbv/8AG8/+0Bvv/wAAEA8f/1AAUASP/uAFn/6gG7//ABvP/tAb7/8AABAPH/9QAIANQAFQDoABUBOP/kATn/5QE7/+QBSf/jAUv/4gFT/+QACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAH//3wCw//MAsv/wAL//6gDU/98A4f/gAVP/4AGn/+0Bvf/1AAkAxf/qAOj/uADx/+oBBP/wARv/8QEv/+sBSv/1AVT/7AHc/+oACQB//98AsP/zALL/8AC//+oA1P/fAOH/4AFT/+ABp//tAb3/9QAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAkAf//fALD/8wCy//AAv//qANT/3wDh/+ABU//gAaf/7QG9//UACQDF/+oA6P+4APH/6gEE//ABG//xAS//6wFK//UBVP/sAdz/6gAJAMX/6gDo/7gA8f/qAQT/8AEb//EBL//rAUr/9QFU/+wB3P/qAAEBp//rAAEBp//rACQACP/iAAsAFAAM/88APwASAEj/6gBU/9gAVv/qAF8AEwBr/64Aev/NAH//oACE/8EAh//AALP/0AC3/+oAuv/GALsADQC9/+kAvv/WAMH/6ADC/7oAxf/pAMf/ywDI/9oAyf/HAW7/0wGn/6sBqf/NAa3/ywG1/8sBtv/LAbn/8wG8//MBvf/vAdz/6AHf/+4ABwBIAA0AwQALAML/6gDFAAwA6P/IARf/8QHf//UAJAAI/+IACwAUAAz/zwA/ABIASP/qAFT/2ABW/+oAXwATAGv/rgB6/80Af/+gAIT/wQCH/8AAs//QALf/6gC6/8YAuwANAL3/6QC+/9YAwf/oAML/ugDF/+kAx//LAMj/2gDJ/8cBbv/TAaf/qwGp/80Brf/LAbX/ywG2/8sBuf/zAbz/8wG9/+8B3P/oAd//7gAHAEgADQDBAAsAwv/qAMUADADo/8gBF//xAd//9QAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAcASAANAMEACwDC/+oAxQAMAOj/yAEX//EB3//1ABMAWf/BALP/xQDF/7QA5f/XAPH/uQEE/7IBF//SARv/yAEv/6ABOf/FAUH/5AFK/8wBTP/MAVT/ywFV/+8Bqf/oAa3/5gG1/+cBtv/nAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AA5AFT/tQBZ/8cAa/64AHr/KAB//00AhP+OAIf/oQCz/64Auv9+AL7/ZwDB/4cAwv9lAMX/ngDH/2oAyP9zAMn/XgDU/6UA4QAPAOX/5ADm/6AA6P90AOr/gADx/7IA+P99APr/gAD8/3kBAv99AQT/fwEX/5gBG//aASf/gQEp/5gBLf99AS//swEz/6ABOf98ATv/mgE8/2wBQf/mAUb/awFK/5IBTP+tAVD/ewFTAA8BVP+RAVX/8gGn/68Bqf+5Aa3/uQG1/7kBtv+5Abj/vAG5//EBvP/xAb3/7QHc/6kB3//JABgAs//UAL3/7QC/ABEAxf/gAMf/5wDI/+UAyf/uANQAEgDl/+kA8f/XAS//1wE5/9MBO//WATz/xQFB/+cBSQANAUsADAFU/9YBVf/yAan/6QGt/+cBtf/nAbb/6QHf//AAAQEX//EAMABU/20AWf+MAGv9vwB6/n0Af/68AIT/KwCH/0sAs/9hALr/DwC+/ugAwf8fAML+5QDF/0YAx/7tAMj+/QDJ/tkA1P9SAOEABQDl/70A5v9JAOj+/gDq/xMA8f9oAPj/DgD6/xMA/P8HAQL/DgEE/xEBF/88ARv/rAEn/xUBKf88AS3/DgEv/2oBM/9JATn/DAE7/z8BPP7xAUH/wAFG/u8BSv8xAUz/XwFQ/woBUwAFAVT/MAFV/9UB3P9ZAd//jwACAOj/yQEX/+4AGACz/9QAvf/tAL8AEQDF/+AAx//nAMj/5QDJ/+4A1AASAOX/6QDx/9cBL//XATn/0wE7/9YBPP/FAUH/5wFJAA0BSwAMAVT/1gFV//IBqf/pAa3/5wG1/+cBtv/pAd//8AABARf/8QABAPH/wAAJAOH/wwDx/88BL//OATj/5wE7/98BSf/RAUv/7AFT/6ABVP/RADAAVP9tAFn/jABr/b8Aev59AH/+vACE/ysAh/9LALP/YQC6/w8Avv7oAMH/HwDC/uUAxf9GAMf+7QDI/v0Ayf7ZANT/UgDhAAUA5f+9AOb/SQDo/v4A6v8TAPH/aAD4/w4A+v8TAPz/BwEC/w4BBP8RARf/PAEb/6wBJ/8VASn/PAEt/w4BL/9qATP/SQE5/wwBO/8/ATz+8QFB/8ABRv7vAUr/MQFM/18BUP8KAVMABQFU/zABVf/VAdz/WQHf/48AEwBZ/8EAs//FAMX/tADl/9cA8f+5AQT/sgEX/9IBG//IAS//oAE5/8UBQf/kAUr/zAFM/8wBVP/LAVX/7wGp/+gBrf/mAbX/5wG2/+cACADUABUA6AAVATj/5AE5/+UBO//kAUn/4wFL/+IBU//kAAgA1AAVAOgAFQE4/+QBOf/lATv/5AFJ/+MBS//iAVP/5AAkAAj/4gALABQADP/PAD8AEgBI/+oAVP/YAFb/6gBfABMAa/+uAHr/zQB//6AAhP/BAIf/wACz/9AAt//qALr/xgC7AA0Avf/pAL7/1gDB/+gAwv+6AMX/6QDH/8sAyP/aAMn/xwFu/9MBp/+rAan/zQGt/8sBtf/LAbb/ywG5//MBvP/zAb3/7wHc/+gB3//uAAEwsgAEAAAACgAeAHQDpgQkBI4E0AXuBuQHQgdcABUAOAAUADkAEgA7ABYBFAAUAgsAFgKSABIClAAWApYAFgL9ABYDDAAWAw8AFgNFABIDRwASA0kAEgNLABYDYAAUA2gAFgPqABYD7AAWA+4AFgQTABYAzAAO/xYAEP8WACP/VgAs/vgANgAUAEP/3gBF/+sARv/rAEf/6wBJ/+sAUf/rAFP/6wBX/+oAWP/oAFv/6ACR/+sAlf/rAJf/6gCt/1YAr/9WALb/6wC4/+gAw//rAMT/6wDG/+oAzQAUANEAFADy/+sA/v/rAQj/VgET/+sBFf/oARn/6wEd/+sBLgAUATX/6wE2ABQBR//rAUj/6wFS/+sBZ/8WAWv/FgFv/xYBcP8WAfH/VgHy/1YB8/9WAfT/VgH1/1YB9v9WAff/VgIM/94CDf/eAg7/3gIP/94CEP/eAhH/3gIS/94CE//rAhT/6wIV/+sCFv/rAhf/6wId/+sCHv/rAh//6wIg/+sCIf/rAiL/6gIj/+oCJP/qAiX/6gIm/+gCJ//oAij/VgIp/94CKv9WAiv/3gIs/1YCLf/eAi//6wIx/+sCM//rAjX/6wI3/+sCOf/rAjv/6wI9/+sCP//rAkH/6wJD/+sCRf/rAkf/6wJJ/+sCV/74Amv/6wJt/+sCb//rAoAAFAKCABQChAAUAof/6gKJ/+oCi//qAo3/6gKP/+oCkf/qApX/6AL4/1YDAP9WAxD/6wMU/+oDFv/rAxj/6AMb/+oDHP/rAx3/6gMk/vgDKP9WAzMAFAM1/94DNv/rAzj/6wM6/+sDO//oAz3/6wNE/+gDTP/oA1X/VgNW/94DXP/rA2H/6ANi/+sDZ//rA2n/6ANu/1YDb//eA3D/VgNx/94Ddf/rA3f/6wN4/+sDgv/rA4T/6wOG/+sDiv/oA4z/6AOO/+gDlf/rA5j/VgOZ/94Dmv9WA5v/3gOc/1YDnf/eA57/VgOf/94DoP9WA6H/3gOi/1YDo//eA6T/VgOl/94Dpv9WA6f/3gOo/1YDqf/eA6r/VgOr/94DrP9WA63/3gOu/1YDr//eA7H/6wOz/+sDtf/rA7f/6wO5/+sDu//rA73/6wO//+sDxf/rA8f/6wPJ/+sDy//rA83/6wPP/+sD0f/rA9P/6wPV/+sD1//rA9n/6wPb/+sD3f/qA9//6gPh/+oD4//qA+X/6gPn/+oD6f/qA+v/6APt/+gD7//oA/YAFAAfADb/1QA4/+QAOf/sADv/3QDN/9UA0f/VART/5AEu/9UBNv/VAgv/3QKA/9UCgv/VAoT/1QKS/+wClP/dApb/3QL9/90DDP/dAw//3QMz/9UDRf/sA0f/7ANJ/+wDS//dA2D/5ANo/90D6v/dA+z/3QPu/90D9v/VBBP/3QAaADb/sAA4/+0AO//QAM3/sADR/7ABFP/tAS7/sAE2/7ACC//QAoD/sAKC/7AChP+wApT/0AKW/9AC/f/QAwz/0AMP/9ADM/+wA0v/0ANg/+0DaP/QA+r/0APs/9AD7v/QA/b/sAQT/9AAEAAs/+4AN//uAgf/7gII/+4CCf/uAgr/7gJX/+4Chv/uAoj/7gKK/+4CjP/uAo7/7gKQ/+4DJP/uA9z/7gPe/+4ARwAEABAACQAQAEX/6ABG/+gAR//oAEn/6ABT/+gAkf/oAJX/6AC2/+gAw//oAMT/6ADy/+gA/v/oARn/6AEd/+gBNf/oAUf/6AFI/+gBUv/oAWUAEAFmABABaAAQAWkAEAFqABACE//oAhT/6AIV/+gCFv/oAhf/6AIv/+gCMf/oAjP/6AI1/+gCN//oAjn/6AI7/+gCPf/oAj//6AJB/+gCQ//oAkX/6AJH/+gCSf/oAxD/6AM2/+gDOv/oAz3/6ANNABADTgAQA1IAEANc/+gDYv/oA2f/6AN1/+gDd//oA3j/6AOE/+gDlf/oA7H/6AOz/+gDtf/oA7f/6AO5/+gDu//oA73/6AO//+gD0//oA9X/6APX/+gD2//oAD0ARf/sAEb/7ABH/+wASf/sAFP/7ACR/+wAlf/sALb/7ADD/+wAxP/sAPL/7AD+/+wBGf/sAR3/7AE1/+wBR//sAUj/7AFS/+wCE//sAhT/7AIV/+wCFv/sAhf/7AIv/+wCMf/sAjP/7AI1/+wCN//sAjn/7AI7/+wCPf/sAj//7AJB/+wCQ//sAkX/7AJH/+wCSf/sAxD/7AM2/+wDOv/sAz3/7ANc/+wDYv/sA2f/7AN1/+wDd//sA3j/7AOE/+wDlf/sA7H/7AOz/+wDtf/sA7f/7AO5/+wDu//sA73/7AO//+wD0//sA9X/7APX/+wD2//sABcAUf/sARP/7AId/+wCHv/sAh//7AIg/+wCIf/sAmv/7AJt/+wCb//sAxb/7AMc/+wDOP/sA4L/7AOG/+wDxf/sA8f/7APJ/+wDy//sA83/7APP/+wD0f/sA9n/7AAGAA7/hAAQ/4QBZ/+EAWv/hAFv/4QBcP+EABAALP/sADf/7AIH/+wCCP/sAgn/7AIK/+wCV//sAob/7AKI/+wCiv/sAoz/7AKO/+wCkP/sAyT/7APc/+wD3v/sAAEpLAAEAAAAIgBOAMQBqgKQA2oEBAaeCGQJNgosC/IMJAxWDNQOug8wEAISFBLKFDAU6hVwFc4WkBcGFxgXQhiUGtIa9BwKHIgcshzcAB0ABP/yAAn/8gBY//MAW//zALj/8wEV//MBZf/yAWb/8gFo//IBaf/yAWr/8gIm//MCJ//zApX/8wMY//MDO//zA0T/8wNM//MDTf/yA07/8gNS//IDYf/zA2n/8wOK//MDjP/zA47/8wPr//MD7f/zA+//8wA5ACX/8wAp//MAMf/zADP/8wCB//MAkP/zAJT/8wCu//MAzv/zAQP/8wES//MBFv/zARj/8wEa//MBHP/zATT/8wFR//MB+P/zAgL/8wID//MCBP/zAgX/8wIG//MCLv/zAjD/8wIy//MCNP/zAkL/8wJE//MCRv/zAkj/8wJq//MCbP/zAm7/8wKf//MC/P/zAwn/8wMv//MDMv/zA1f/8wNj//MDZv/zA4H/8wOD//MDhf/zA8T/8wPG//MDyP/zA8r/8wPM//MDzv/zA9D/8wPS//MD1P/zA9b/8wPY//MD2v/zADkAJf/mACn/5gAx/+YAM//mAIH/5gCQ/+YAlP/mAK7/5gDO/+YBA//mARL/5gEW/+YBGP/mARr/5gEc/+YBNP/mAVH/5gH4/+YCAv/mAgP/5gIE/+YCBf/mAgb/5gIu/+YCMP/mAjL/5gI0/+YCQv/mAkT/5gJG/+YCSP/mAmr/5gJs/+YCbv/mAp//5gL8/+YDCf/mAy//5gMy/+YDV//mA2P/5gNm/+YDgf/mA4P/5gOF/+YDxP/mA8b/5gPI/+YDyv/mA8z/5gPO/+YD0P/mA9L/5gPU/+YD1v/mA9j/5gPa/+YANgAj/+QAOv/SADv/0wCt/+QAr//kANX/0gEI/+QB8f/kAfL/5AHz/+QB9P/kAfX/5AH2/+QB9//kAgv/0wIo/+QCKv/kAiz/5AKU/9MClv/TAvj/5AL9/9MDAP/kAwz/0wMN/9IDD//TAyj/5AM0/9IDS//TA1X/5ANo/9MDa//SA27/5ANw/+QDef/SA5P/0gOY/+QDmv/kA5z/5AOe/+QDoP/kA6L/5AOk/+QDpv/kA6j/5AOq/+QDrP/kA67/5APq/9MD7P/TA+7/0wP4/9IEAP/SBBP/0wAmAA7/HgAQ/x4AI//NAK3/zQCv/80BCP/NAWf/HgFr/x4Bb/8eAXD/HgHx/80B8v/NAfP/zQH0/80B9f/NAfb/zQH3/80CKP/NAir/zQIs/80C+P/NAwD/zQMo/80DVf/NA27/zQNw/80DmP/NA5r/zQOc/80Dnv/NA6D/zQOi/80DpP/NA6b/zQOo/80Dqv/NA6z/zQOu/80ApgBF/9wARv/cAEf/3ABJ/9wAT//zAFD/8wBR/9YAUv/zAFP/3ABX/90AWP/hAFv/4QCR/9wAlf/cAJf/3QC2/9wAuP/hALz/8wDD/9wAxP/cAMb/3QDn//MA6//zAOz/8wDu//MA7//zAPD/8wDy/9wA8//zAPX/8wD2//MA+f/zAPv/8wD+/9wBAP/zARP/1gEV/+EBGf/cAR3/3AEx//MBNf/cAUD/8wFF//MBR//cAUj/3AFS/9wCE//cAhT/3AIV/9wCFv/cAhf/3AIc//MCHf/WAh7/1gIf/9YCIP/WAiH/1gIi/90CI//dAiT/3QIl/90CJv/hAif/4QIv/9wCMf/cAjP/3AI1/9wCN//cAjn/3AI7/9wCPf/cAj//3AJB/9wCQ//cAkX/3AJH/9wCSf/cAmT/8wJm//MCaP/zAmn/8wJr/9YCbf/WAm//1gKH/90Cif/dAov/3QKN/90Cj//dApH/3QKV/+EDEP/cAxL/8wMU/90DFv/WAxj/4QMb/90DHP/WAx3/3QM2/9wDN//zAzj/1gM5//MDOv/cAzv/4QM9/9wDPv/zA0P/8wNE/+EDTP/hA1T/8wNc/9wDXf/zA2H/4QNi/9wDZ//cA2n/4QN1/9wDd//cA3j/3AN+//MDgP/zA4L/1gOE/9wDhv/WA4r/4QOM/+EDjv/hA5L/8wOV/9wDsf/cA7P/3AO1/9wDt//cA7n/3AO7/9wDvf/cA7//3APF/9YDx//WA8n/1gPL/9YDzf/WA8//1gPR/9YD0//cA9X/3APX/9wD2f/WA9v/3APd/90D3//dA+H/3QPj/90D5f/dA+f/3QPp/90D6//hA+3/4QPv/+ED8//zA/X/8wP///MEDP/zBA7/8wQQ//MAcQAE/9oACf/aAEX/8ABG//AAR//wAEn/8ABT//AAV//vAFj/3ABb/9wAkf/wAJX/8ACX/+8Atv/wALj/3ADD//AAxP/wAMb/7wDy//AA/v/wARX/3AEZ//ABHf/wATX/8AFH//ABSP/wAVL/8AFl/9oBZv/aAWj/2gFp/9oBav/aAhP/8AIU//ACFf/wAhb/8AIX//ACIv/vAiP/7wIk/+8CJf/vAib/3AIn/9wCL//wAjH/8AIz//ACNf/wAjf/8AI5//ACO//wAj3/8AI///ACQf/wAkP/8AJF//ACR//wAkn/8AKH/+8Cif/vAov/7wKN/+8Cj//vApH/7wKV/9wDEP/wAxT/7wMY/9wDG//vAx3/7wM2//ADOv/wAzv/3AM9//ADRP/cA0z/3ANN/9oDTv/aA1L/2gNc//ADYf/cA2L/8ANn//ADaf/cA3X/8AN3//ADeP/wA4T/8AOK/9wDjP/cA47/3AOV//ADsf/wA7P/8AO1//ADt//wA7n/8AO7//ADvf/wA7//8APT//AD1f/wA9f/8APb//AD3f/vA9//7wPh/+8D4//vA+X/7wPn/+8D6f/vA+v/3APt/9wD7//cADQABP+gAAn/oABX//EAWP/FAFv/xQCX//EAuP/FAMb/8QEV/8UBZf+gAWb/oAFo/6ABaf+gAWr/oAIi//ECI//xAiT/8QIl//ECJv/FAif/xQKH//ECif/xAov/8QKN//ECj//xApH/8QKV/8UDFP/xAxj/xQMb//EDHf/xAzv/xQNE/8UDTP/FA03/oANO/6ADUv+gA2H/xQNp/8UDiv/FA4z/xQOO/8UD3f/xA9//8QPh//ED4//xA+X/8QPn//ED6f/xA+v/xQPt/8UD7//FAD0ARf/nAEb/5wBH/+cASf/nAFP/5wCR/+cAlf/nALb/5wDD/+cAxP/nAPL/5wD+/+cBGf/nAR3/5wE1/+cBR//nAUj/5wFS/+cCE//nAhT/5wIV/+cCFv/nAhf/5wIv/+cCMf/nAjP/5wI1/+cCN//nAjn/5wI7/+cCPf/nAj//5wJB/+cCQ//nAkX/5wJH/+cCSf/nAxD/5wM2/+cDOv/nAz3/5wNc/+cDYv/nA2f/5wN1/+cDd//nA3j/5wOE/+cDlf/nA7H/5wOz/+cDtf/nA7f/5wO5/+cDu//nA73/5wO//+cD0//nA9X/5wPX/+cD2//nAHEABAAMAAkADABF/+gARv/oAEf/6ABJ/+gAUf/qAFP/6ABYAAsAWwALAJH/6ACV/+gAtv/oALgACwDD/+gAxP/oAPL/6AD+/+gBE//qARUACwEZ/+gBHf/oATX/6AFH/+gBSP/oAVL/6AFlAAwBZgAMAWgADAFpAAwBagAMAhP/6AIU/+gCFf/oAhb/6AIX/+gCHf/qAh7/6gIf/+oCIP/qAiH/6gImAAsCJwALAi//6AIx/+gCM//oAjX/6AI3/+gCOf/oAjv/6AI9/+gCP//oAkH/6AJD/+gCRf/oAkf/6AJJ/+gCa//qAm3/6gJv/+oClQALAxD/6AMW/+oDGAALAxz/6gM2/+gDOP/qAzr/6AM7AAsDPf/oA0QACwNMAAsDTQAMA04ADANSAAwDXP/oA2EACwNi/+gDZ//oA2kACwN1/+gDd//oA3j/6AOC/+oDhP/oA4b/6gOKAAsDjAALA44ACwOV/+gDsf/oA7P/6AO1/+gDt//oA7n/6AO7/+gDvf/oA7//6APF/+oDx//qA8n/6gPL/+oDzf/qA8//6gPR/+oD0//oA9X/6APX/+gD2f/qA9v/6APrAAsD7QALA+8ACwAMAFr/7QBc/+0A6f/tApj/7QKa/+0CnP/tAzz/7QNs/+0Dev/tA5T/7QP5/+0EAf/tAAwAWv/yAFz/8gDp//ICmP/yApr/8gKc//IDPP/yA2z/8gN6//IDlP/yA/n/8gQB//IAHwBY//QAWv/yAFv/9ABc//MAuP/0AOn/8gEV//QCJv/0Aif/9AKV//QCmP/zApr/8wKc//MDGP/0Azv/9AM8//IDRP/0A0z/9ANh//QDaf/0A2z/8gN6//IDiv/0A4z/9AOO//QDlP/yA+v/9APt//QD7//0A/n/8gQB//IAeQAE/8oACf/KADb/0gA4/9QAOv/0ADv/0wBP/9EAUP/RAFL/0QBY/+YAWv/vAFv/5gC4/+YAvP/RAM3/0gDR/9IA1f/0ANn/7QDc/+EA5//RAOn/7wDr/9EA7P/RAO7/0QDv/9EA8P/RAPP/0QD1/9EA9v/RAPn/0QD7/9EBAP/RART/1AEV/+YBLv/SATH/0QE2/9IBQP/RAUX/0QFl/8oBZv/KAWj/ygFp/8oBav/KAgv/0wIc/9ECJv/mAif/5gJk/9ECZv/RAmj/0QJp/9ECgP/SAoL/0gKE/9IClP/TApX/5gKW/9MC/f/TAwz/0wMN//QDD//TAxL/0QMY/+YDJ//tAzP/0gM0//QDN//RAzn/0QM7/+YDPP/vAz7/0QND/9EDRP/mA0v/0wNM/+YDTf/KA07/ygNS/8oDVP/RA13/0QNg/9QDYf/mA2j/0wNp/+YDa//0A2z/7wN5//QDev/vA37/0QOA/9EDif/tA4r/5gOL/+0DjP/mA43/7QOO/+YDj//hA5L/0QOT//QDlP/vA+r/0wPr/+YD7P/TA+3/5gPu/9MD7//mA/P/0QP1/9ED9v/SA/j/9AP5/+8D+v/hA/z/4QP//9EEAP/0BAH/7wQM/9EEDv/RBBD/0QQT/9MAHQA2/74AWP/vAFv/7wC4/+8Azf++ANH/vgEV/+8BLv++ATb/vgIm/+8CJ//vAoD/vgKC/74ChP++ApX/7wMY/+8DM/++Azv/7wNE/+8DTP/vA2H/7wNp/+8Div/vA4z/7wOO/+8D6//vA+3/7wPv/+8D9v++ADQANv/mADj/5wA6//IAO//nAFr/8QDN/+YA0f/mANX/8gDZ/+4A3P/oAOn/8QEU/+cBLv/mATb/5gIL/+cCgP/mAoL/5gKE/+YClP/nApb/5wL9/+cDDP/nAw3/8gMP/+cDJ//uAzP/5gM0//IDPP/xA0v/5wNg/+cDaP/nA2v/8gNs//EDef/yA3r/8QOJ/+4Di//uA43/7gOP/+gDk//yA5T/8QPq/+cD7P/nA+7/5wP2/+YD+P/yA/n/8QP6/+gD/P/oBAD/8gQB//EEE//nAIQAIwAQACX/6AAp/+gAMf/oADP/6AA2/+AAOP/gADv/3wCB/+gAkP/oAJT/6ACtABAArv/oAK8AEADN/+AAzv/oAM8AEADR/+AA2AAQANz/4QDtABAA9P/gAP8AEAED/+gBCAAQARL/6AEU/+ABFv/oARj/6AEa/+gBHP/oAS7/4AE0/+gBNv/gAU0AEAFR/+gB8QAQAfIAEAHzABAB9AAQAfUAEAH2ABAB9wAQAfj/6AIC/+gCA//oAgT/6AIF/+gCBv/oAgv/3wIoABACKgAQAiwAEAIu/+gCMP/oAjL/6AI0/+gCQv/oAkT/6AJG/+gCSP/oAmr/6AJs/+gCbv/oAoD/4AKC/+AChP/gApT/3wKW/98Cn//oAvgAEAL8/+gC/f/fAwAAEAMJ/+gDDP/fAw//3wMoABADL//oAzL/6AMz/+ADS//fA1UAEANX/+gDYP/gA2P/6ANm/+gDaP/fA24AEANwABADgf/oA4P/6AOF/+gDj//hA5D/4AOWABADlwAQA5gAEAOaABADnAAQA54AEAOgABADogAQA6QAEAOmABADqAAQA6oAEAOsABADrgAQA8T/6APG/+gDyP/oA8r/6APM/+gDzv/oA9D/6APS/+gD1P/oA9b/6APY/+gD2v/oA+r/3wPs/98D7v/fA/b/4AP6/+ED+//gA/z/4QP9/+AEEQAQBBIAEAQT/98ALQA2//EAOP/0ADr/9AA7//AAzf/xAM//9QDR//EA1f/0ANj/9QDZ//MBFP/0AS7/8QE2//EBTf/1Agv/8AKA//ECgv/xAoT/8QKU//AClv/wAv3/8AMM//ADDf/0Aw//8AMn//MDM//xAzT/9ANL//ADYP/0A2j/8ANr//QDef/0A4n/8wOL//MDjf/zA5P/9AOW//UD6v/wA+z/8APu//AD9v/xA/j/9AQA//QEEf/1BBP/8ABZACMADwA2/+YAOP/mADoADgA7/+YArQAPAK8ADwDN/+YAzwAOANH/5gDVAA4A2AAOANkACwDc/+UA7QAPAPT/6AD/AA8BCAAPART/5gEu/+YBNv/mAU0ADgHxAA8B8gAPAfMADwH0AA8B9QAPAfYADwH3AA8CC//mAigADwIqAA8CLAAPAoD/5gKC/+YChP/mApT/5gKW/+YC+AAPAv3/5gMAAA8DDP/mAw0ADgMP/+YDJwALAygADwMz/+YDNAAOA0v/5gNVAA8DYP/mA2j/5gNrAA4DbgAPA3AADwN5AA4DiQALA4sACwONAAsDj//lA5D/6AOTAA4DlgAOA5cADwOYAA8DmgAPA5wADwOeAA8DoAAPA6IADwOkAA8DpgAPA6gADwOqAA8DrAAPA64ADwPq/+YD7P/mA+7/5gP2/+YD+AAOA/r/5QP7/+gD/P/lA/3/6AQAAA4EEQAOBBIADwQT/+YALgA2/+MAOv/lADv/5ADN/+MAz//lANH/4wDV/+UA2P/lANn/6QDt/+oA///qAS7/4wE2/+MBTf/lAgv/5AKA/+MCgv/jAoT/4wKU/+QClv/kAv3/5AMM/+QDDf/lAw//5AMn/+kDM//jAzT/5QNL/+QDaP/kA2v/5QN5/+UDif/pA4v/6QON/+kDk//lA5b/5QOX/+oD6v/kA+z/5APu/+QD9v/jA/j/5QQA/+UEEf/lBBL/6gQT/+QAIQA2/+IAOv/kAM3/4gDP/+QA0f/iANX/5ADY/+QA2f/pAO3/6wD//+sBLv/iATb/4gFN/+QCgP/iAoL/4gKE/+IDDf/kAyf/6QMz/+IDNP/kA2v/5AN5/+QDif/pA4v/6QON/+kDk//kA5b/5AOX/+sD9v/iA/j/5AQA/+QEEf/kBBL/6wAXADb/6wA7//MAzf/rANH/6wEu/+sBNv/rAgv/8wKA/+sCgv/rAoT/6wKU//MClv/zAv3/8wMM//MDD//zAzP/6wNL//MDaP/zA+r/8wPs//MD7v/zA/b/6wQT//MAMABP/+8AUP/vAFL/7wBa//AAvP/vAOf/7wDp//AA6//vAOz/7wDu/+8A7//vAPD/7wDz/+8A9f/vAPb/7wD5/+8A+//vAQD/7wEx/+8BQP/vAUX/7wIc/+8CZP/vAmb/7wJo/+8Caf/vAxL/7wM3/+8DOf/vAzz/8AM+/+8DQ//vA1T/7wNd/+8DbP/wA3r/8AN+/+8DgP/vA5L/7wOU//AD8//vA/X/7wP5//AD///vBAH/8AQM/+8EDv/vBBD/7wAdAAT/8gAJ//IAWP/1AFv/9QC4//UBFf/1AWX/8gFm//IBaP/yAWn/8gFq//ICJv/1Aif/9QKV//UDGP/1Azv/9QNE//UDTP/1A03/8gNO//IDUv/yA2H/9QNp//UDiv/1A4z/9QOO//UD6//1A+3/9QPv//UABAD0/+0DkP/tA/v/7QP9/+0ACgAE//UACf/1AWX/9QFm//UBaP/1AWn/9QFq//UDTf/1A07/9QNS//UAVABF//AARv/wAEf/8ABJ//AAUf/rAFP/8ACR//AAlf/wALb/8ADD//AAxP/wAPL/8AD+//ABE//rARn/8AEd//ABNf/wAUf/8AFI//ABUv/wAhP/8AIU//ACFf/wAhb/8AIX//ACHf/rAh7/6wIf/+sCIP/rAiH/6wIv//ACMf/wAjP/8AI1//ACN//wAjn/8AI7//ACPf/wAj//8AJB//ACQ//wAkX/8AJH//ACSf/wAmv/6wJt/+sCb//rAxD/8AMW/+sDHP/rAzb/8AM4/+sDOv/wAz3/8ANc//ADYv/wA2f/8AN1//ADd//wA3j/8AOC/+sDhP/wA4b/6wOV//ADsf/wA7P/8AO1//ADt//wA7n/8AO7//ADvf/wA7//8APF/+sDx//rA8n/6wPL/+sDzf/rA8//6wPR/+sD0//wA9X/8APX//AD2f/rA9v/8ACPAAQADQAJAA0AQ//wAEX/sABG/7AAR/+wAEn/sABR/9YAU/+wAFgACwBbAAsAkf+wAJX/sAC2/7AAuAALAMT/sADt/68A8v+wAP7/sAD//68BE//WARUACwEZ/7ABHf+wATX/sAFH/7ABSP+wAVL/sAFlAA0BZgANAWgADQFpAA0BagANAgz/8AIN//ACDv/wAg//8AIQ//ACEf/wAhL/8AIT/7ACFP+wAhX/sAIW/7ACF/+wAh3/1gIe/9YCH//WAiD/1gIh/9YCJgALAicACwIp//ACK//wAi3/8AIv/7ACMf+wAjP/sAI1/7ACN/+wAjn/sAI7/7ACPf+wAj//sAJB/7ACQ/+wAkX/sAJH/7ACSf+wAmv/1gJt/9YCb//WApUACwMQ/7ADFv/WAxgACwMc/9YDNf/wAzb/sAM4/9YDOv+wAzsACwM9/7ADRAALA0wACwNNAA0DTgANA1IADQNW//ADXP+wA2EACwNi/7ADZ/+wA2kACwNv//ADcf/wA3X/sAN3/7ADeP+wA4L/1gOE/7ADhv/WA4oACwOMAAsDjgALA5X/sAOX/68Dmf/wA5v/8AOd//ADn//wA6H/8AOj//ADpf/wA6f/8AOp//ADq//wA63/8AOv//ADsf+wA7P/sAO1/7ADt/+wA7n/sAO7/7ADvf+wA7//sAPF/9YDx//WA8n/1gPL/9YDzf/WA8//1gPR/9YD0/+wA9X/sAPX/7AD2f/WA9v/sAPrAAsD7QALA+8ACwQS/68ACADtABAA9P/wAP8AEAOQ//ADlwAQA/v/8AP9//AEEgAQAEUARQAMAEYADABHAAwASQAMAFMADACRAAwAlQAMALYADADDAAwAxAAMAO0AGADyAAwA9P/3AP4ADAD/ABgBGQAMAR0ADAE1AAwBRwAMAUgADAFSAAwCEwAMAhQADAIVAAwCFgAMAhcADAIvAAwCMQAMAjMADAI1AAwCNwAMAjkADAI7AAwCPQAMAj8ADAJBAAwCQwAMAkUADAJHAAwCSQAMAxAADAM2AAwDOgAMAz0ADANcAAwDYgAMA2cADAN1AAwDdwAMA3gADAOEAAwDkP/3A5UADAOXABgDsQAMA7MADAO1AAwDtwAMA7kADAO7AAwDvQAMA78ADAPTAAwD1QAMA9cADAPbAAwD+//3A/3/9wQSABgAHwBY//QAWv/wAFv/9AC4//QA6f/wAO3/8wD///MBFf/0Aib/9AIn//QClf/0Axj/9AM7//QDPP/wA0T/9ANM//QDYf/0A2n/9ANs//ADev/wA4r/9AOM//QDjv/0A5T/8AOX//MD6//0A+3/9APv//QD+f/wBAH/8AQS//MACgAE/9YACf/WAWX/1gFm/9YBaP/WAWn/1gFq/9YDTf/WA07/1gNS/9YACgAE//UACf/1AWX/9QFm//UBaP/1AWn/9QFq//UDTf/1A07/9QNS//UAXgAEAAsACQALAEX/6wBG/+sAR//rAEn/6wBR/+kAU//rAJH/6wCV/+sAtv/rAMP/6wDE/+sA8v/rAP7/6wET/+kBGf/rAR3/6wE1/+sBR//rAUj/6wFS/+sBZQALAWYACwFoAAsBaQALAWoACwIT/+sCFP/rAhX/6wIW/+sCF//rAh3/6QIe/+kCH//pAiD/6QIh/+kCL//rAjH/6wIz/+sCNf/rAjf/6wI5/+sCO//rAj3/6wI//+sCQf/rAkP/6wJF/+sCR//rAkn/6wJr/+kCbf/pAm//6QMQ/+sDFv/pAxz/6QM2/+sDOP/pAzr/6wM9/+sDTQALA04ACwNSAAsDXP/rA2L/6wNn/+sDdf/rA3f/6wN4/+sDgv/pA4T/6wOG/+kDlf/rA7H/6wOz/+sDtf/rA7f/6wO5/+sDu//rA73/6wO//+sDxf/pA8f/6QPJ/+kDy//pA83/6QPP/+kD0f/pA9P/6wPV/+sD1//rA9n/6QPb/+sAAgseAAQAAA3mFToAIQAdAAAAEf/O/48AEv/1/+//iP/0/7v/f//1AAz/qf+i/8kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+UAAAAA/+j/yQAA//MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAD/5QARAAAAAAAAAAAAAP/jAAAAAAAA/+T/5AAAABIAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4QAAAAAAAAAAAAAAAAAAAAD/5QAAAAD/6v/VAAAAAP/r/+r/mv/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+YAAAAAAAAAAAAA/+0AAAAU/+8AAAAAAAAAAAAAAAAAAAAAAAD/7QAAAAAAAAAAAAAAAAAAAAD/y/+4/3z/fv/kAAAAAP+dAA8AEP+h/8QAEAAQAAAAAP+xAAD/JgAA/53/s/8Y/5P/8P+P/4z/EAAA/5L/cv8M/w//vQAAAAD/RAAFAAf/S/+GAAcABwAAAAD/PgAA/noAAP9E/2r+Yv8z/9H/LP8nAAAAAAAAAAAAAP/YAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAP/Y/6MAAP/hAAAAAP/lAAAAAP/pAAAAAAAAAAAAAAAAAAAAAAAA/+YAAP/A/+kAAAAAAAAAAAAAAAD/ewAAAAD/v//K/3YAAP9x/u3/1AAA/1H/EQAAAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/JAA8AAP/ZAAAAAAAA//MAAAAAAAAAAAAAAAAAAAAA/3b/4f68/+b/8wAAAAAAAAAA//UAAP84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAD/8wAAAAD/0gAAAAD/5AAAAAAAAAAAAAD/tQAA/x8AAP/UAAD/2wAAAAD/0gAAAAAAAAAR/+H/0QAR/+cAAAAA/+sAAAAA/+sAAAAOAAAAAAAAAAAAAAAAAAD/5gAA/9IAAAAAAAAAAAAAAAAAAP/sAAAAAP/j/6AAAP+/ABEAEf/Z/+IAEgASAAAAAP+iAA3/LQAA/7//6f/M/9j/8P+3/8b/oAAAAAAAAAAAAAAAAAAAAAD/4QAAAA7/7QAAAAAAAAAAAAD/1QAA/4UAAP/hAAD/xAAAAAD/3wAAAAAAAAAA/+UAAAAA/+YAAAAA/+sAAAAA/+0AAAAAAAAAAAAAAA0AAAAAAAD/6wAAAAAAAAAAAAAAAAAAAAD/ygAA/+n/u//pAAAAAP+9AAAAEgAAAAAAAAASAAAAAP+lAAD+bQAA/70AAP+J/5oAAP+R/9IAAAAAAAD/8QAAAAAAAAAA/70AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/1AAD/8gAAAAD/4wAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAD/8QAAAAAAAAAAAAAAAAAAAAD/8wAAAAAAAAAA//IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/xAAD/8AAAAAD/7AAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAD/6wAAAAAAAAAAAAAAAAAAAAAAAAAA/9cAAAAAAA//8QAAAAAAAAAAAAAAAAAAAAAAAAAA/5UAAP/zAAAAAAAAAAD/8QAAAAAAAAAAABIAAAAAAAAAAAAQ/+wAAAAAAAAAAAAAAAAAAAAAAAAAAP+FAAD/7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+V/8MAAAAAAAAAAAAAAAAAAAAA/4gAAAAAAAD/xQAAAAD/7AAA/87/sAAAAAAAAAAAAAAAAAAAAAD/VgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//UAAAAAAAAAAAAA/8AAAAAA/vUAAAAA/8j/rf/n/+sAAP/wAAAAAAAA/8kAAAAAAAAAAAAAAAAAAAAA/93/2QAAAAAAAP95AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/1AAAAAAAAAAAAAAAAAAIAiAAEAAQAAAAJAAkAAQARABEAAgAjACgAAwAqADMACQA2ADwAEwBDAEQAGgBHAEgAHABKAEoAHgBPAFIAHwBUAFQAIwBYAFgAJABaAFsAJQCIAIgAJwCZAJkAKACsALAAKQCyALQALgC2ALYAMQC4ALkAMgC7ALwANAC+AMAANgDCAMcAOQDNAM0APwDPANkAQADbANsASwDdAN8ATADhAOMATwDlAOkAUgDsAOwAVwDxAPMAWAD2APcAWwD5APsAXQD/AQAAYAEFAQUAYgEIAQgAYwETARUAZAEnASkAZwEsASwAagEuAS4AawFFAUUAbAFlAWYAbQFoAWoAbwGmAaYAcgGpAakAcwGrAasAdAGwAbEAdQG0AbYAdwG4Ab4AegHEAcQAgQHbAdwAggHoAegAhAHsAe0AhQHvAe8AhwHxAhIAiAIUAhcAqgIcAiEArgImAi4AtAIwAjAAvQIyAjIAvgI0AjQAvwI2AjYAwAI4AkEAwQJKAkwAywJOAk4AzgJQAlAAzwJSAlIA0AJUAlQA0QJXAlcA0gJZAlkA0wJbAlsA1AJdAl0A1QJfAl8A1gJhAmEA1wJjAm8A2AJxAnEA5QJzAnMA5gJ1AnUA5wKAAoAA6AKCAoIA6QKEAoQA6gKGAoYA6wKIAogA7AKKAooA7QKMAowA7gKOAo4A7wKQApAA8AKSApIA8QKUApcA8gKZApkA9gKbApsA9wL4Av0A+AMAAw8A/gMSAxIBDgMWAxYBDwMYAxgBEAMcAxwBEQMfAyABEgMiAysBFAMtAy8BHgMxAzYBIQM4AzkBJwM7Az4BKQNEA0UBLQNHA0cBLwNJA0kBMANLA04BMQNSA1cBNQNaA1oBOwNcA1wBPANgA2EBPQNmA2YBPwNoA3EBQAN0A3UBSgN3A3oBTAOBA4IBUAOGA4YBUgOIA44BUwOTA5QBWgOYA8ABXAPCA8IBhQPEA9EBhgPZA9kBlAPcA9wBlQPeA94BlgPqA+8BlwPyA/IBnQP0A/QBngP2A/YBnwP4A/kBoAP+BAEBogQEBAQBpgQGBAcBpwQJBAkBqQQNBA0BqgQPBA8BqwQTBBMBrAABAAoACgAoADMANAA9AEgATQBWAFkAXQABACIAmQCwALIAswC0ALsAvgC/AMAAxQDHAMgAyQDNANEA0wDUANYA3gDiAOMA5ADlAOYA6ADqAOwA8QDzAPYA+wD+AR0B3AACAHYABAAEAAAACQAJAAEADgAOAAIAEAAQAAMAIwAnAAQAKgAyAAkANgA8ABIAQwBFABkARwBHABwASgBKAB0ATwBSAB4AVABUACIAWABYACMAWgBcACQAiACIACcArACvACgAuAC4ACwAvAC8AC0AwgDCAC4AzwDQAC8A0gDSADEA1QDVADIA1wDZADMA2wDbADYA3QDdADcA3wDfADgA4QDhADkA5wDnADoA6QDpADsA8gDyADwA9wD3AD0A+QD6AD4A/wEAAEABBQEFAEIBCAEIAEMBEwEVAEQBJwEpAEcBLAEsAEoBLgEuAEsBRQFFAEwBZQFrAE0BbwFwAFQB7AHtAFYB7wHvAFgB8QIXAFkCHAIhAIACJgI2AIYCOAJBAJcCSgJMAKECTgJOAKQCUAJQAKUCUgJSAKYCVAJUAKcCVwJXAKgCWQJZAKkCWwJbAKoCXQJdAKsCXwJfAKwCYQJhAK0CYwJvAK4CcQJxALsCcwJzALwCdQJ1AL0CgAKAAL4CggKCAL8ChAKEAMAChgKGAMECiAKIAMICigKKAMMCjAKMAMQCjgKOAMUCkAKQAMYCkgKSAMcClAKcAMgC+AL9ANEDAAMPANcDEgMSAOcDFgMWAOgDGAMYAOkDHAMcAOoDHwMgAOsDIgMrAO0DLQMvAPcDMQM2APoDOAM+AQADRANFAQcDRwNHAQkDSQNJAQoDSwNOAQsDUgNXAQ8DWgNaARUDXANcARYDYANhARcDZgNxARkDdAN1ASUDdwN6AScDgQOCASsDhgOGAS0DiAOOAS4DkwOUATUDmAPAATcDwgPCAWADxAPRAWED2QPZAW8D3APcAXAD3gPeAXED6gPvAXID8gPyAXgD9AP0AXkD9gP2AXoD+AP5AXsD/gQBAX0EBAQEAYEEBgQHAYIECQQJAYQEDQQNAYUEDwQPAYYEEwQTAYcAAgE4AAQABAAdAAkACQAdAA4ADgAeABAAEAAeACQAJAABACUAJQAEACYAJgADACcAJwAFACoAKwACACwALAAMAC0ALQAJAC4ALgAKAC8AMAACADEAMQADADIAMgALADYANgAGADcANwAMADgAOAANADkAOQAQADoAOgAOADsAOwAPADwAPAARAEMAQwATAEQARAAVAEUARQAUAEcARwAWAEoASgAXAE8AUAAXAFEAUQAYAFIAUgAVAFQAVAAaAFgAWAAZAFoAWgAbAFsAWwAZAFwAXAAcAIgAiAAVAKwArAAHAK4ArgADALgAuAAZALwAvAAXAMIAwgAVAM8A0AAfANIA0gACANUA1QAOANcA2AACANkA2QASANsA2wACAN0A3QACAN8A3wAfAOEA4QAfAOcA5wAIAOkA6QAbAPIA8gAVAPcA9wAgAPkA+QAgAPoA+gAVAP8BAAAgAQUBBQAgARMBEwAYARQBFAANARUBFQAZAScBJwAVASgBKAAHASkBKQAIASwBLAAJAS4BLgAJAUUBRQAIAWUBZgAdAWcBZwAeAWgBagAdAWsBawAeAW8BcAAeAewB7QADAe8B7wAGAfgB+AAEAfkB/AAFAf0CAQACAgICBgADAgcCCgAMAgsCCwAPAgwCEgATAhMCEwAUAhQCFwAWAhwCHAAXAh0CIQAYAiYCJwAZAikCKQATAisCKwATAi0CLQATAi4CLgAEAi8CLwAUAjACMAAEAjECMQAUAjICMgAEAjMCMwAUAjQCNAAEAjUCNQAUAjYCNgADAjgCOAAFAjkCOQAWAjoCOgAFAjsCOwAWAjwCPAAFAj0CPQAWAj4CPgAFAj8CPwAWAkACQAAFAkECQQAWAkoCSgACAksCSwAXAkwCTAACAk4CTgACAlACUAACAlICUgACAlQCVAACAlcCVwAMAlkCWQAJAlsCWwAKAl0CXQAKAl8CXwAKAmECYQAKAmMCYwACAmQCZAAXAmUCZQACAmYCZgAXAmcCZwACAmgCaQAXAmoCagADAmsCawAYAmwCbAADAm0CbQAYAm4CbgADAm8CbwAYAnECcQAaAnMCcwAaAnUCdQAaAoACgAAGAoICggAGAoQChAAGAoYChgAMAogCiAAMAooCigAMAowCjAAMAo4CjgAMApACkAAMApICkgAQApQClAAPApUClQAZApYClgAPApcClwARApgCmAAcApkCmQARApoCmgAcApsCmwARApwCnAAcAvkC+QAFAvoC+wACAvwC/AADAv0C/QAPAwEDAQABAwIDAgAFAwMDAwARAwQDBQACAwYDBgAJAwcDCAACAwkDCQADAwoDCgALAwsDCwAGAwwDDAAPAw0DDQAOAw4DDgACAw8DDwAPAxIDEgAXAxYDFgAYAxgDGAAZAxwDHAAYAx8DHwAFAyADIAAHAyIDIwACAyQDJAAMAyUDJgAJAycDJwASAykDKQABAyoDKgAHAysDKwAFAy0DLgACAy8DLwADAzEDMQALAzIDMgAEAzMDMwAGAzQDNAAOAzUDNQATAzYDNgAWAzgDOAAYAzkDOQAVAzoDOgAUAzsDOwAZAzwDPAAbAz0DPQAWAz4DPgAIA0QDRAAZA0UDRQAQA0cDRwAQA0kDSQAQA0sDSwAPA0wDTAAZA00DTgAdA1IDUgAdA1MDUwACA1QDVAAXA1YDVgATA1cDVwADA1oDWgAFA1wDXAAWA2ADYAANA2EDYQAZA2YDZgAEA2cDZwAUA2gDaAAPA2kDaQAZA2oDagACA2sDawAOA2wDbAAbA20DbQACA28DbwATA3EDcQATA3QDdAAFA3UDdQAWA3cDeAAWA3kDeQAOA3oDegAbA4EDgQADA4IDggAYA4YDhgAYA4gDiAAVA4kDiQASA4oDigAZA4sDiwASA4wDjAAZA40DjQASA44DjgAZA5MDkwAOA5QDlAAbA5kDmQATA5sDmwATA50DnQATA58DnwATA6EDoQATA6MDowATA6UDpQATA6cDpwATA6kDqQATA6sDqwATA60DrQATA68DrwATA7ADsAAFA7EDsQAWA7IDsgAFA7MDswAWA7QDtAAFA7UDtQAWA7YDtgAFA7cDtwAWA7gDuAAFA7kDuQAWA7oDugAFA7sDuwAWA7wDvAAFA70DvQAWA74DvgAFA78DvwAWA8ADwAACA8IDwgACA8QDxAADA8UDxQAYA8YDxgADA8cDxwAYA8gDyAADA8kDyQAYA8oDygADA8sDywAYA8wDzAADA80DzQAYA84DzgADA88DzwAYA9AD0AADA9ED0QAYA9kD2QAYA9wD3AAMA94D3gAMA+oD6gAPA+sD6wAZA+wD7AAPA+0D7QAZA+4D7gAPA+8D7wAZA/ID8gAJA/QD9AACA/YD9gAGA/gD+AAOA/kD+QAbA/4D/gAHA/8D/wAIBAAEAAAOBAEEAQAbBAQEBAAXBAYEBgAfBAcEBwAHBAkECQAJBA0EDQACBA8EDwACBBMEEwAPAAEABAQWAAcAAAAAAAAAAAAHAAAAAAAAAAAAEwAXABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAUAAAAAAAAABQAAAAAAHAAAAAAAAAAAAAUAAAAFAAAAGQAKAAYADQAJABIADgAUAAAAAAAAAAAAAAAAABoAAAAVABUAFQAAABUAAAAAAAAAAAAAABgAGAAIABgAFQAAABsAAAALAAIAAAAWAAIADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFABUAAAAAAAUAFQAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAFABEAAAAAAAAAAAAAAAAAFQAAAAIAAAAAAAAAGAAAAAAAAAAAAAAAAAAVABUAAAALAAAAAAAAAAAAAAAAAAoABQABAAAACgAAAAAAAAASAAAAAAABABAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAFgAAABgAGAAEABgAGAAYAAAAFQAYAAMAGAAYAAAAAAAYAAAAGAAAAAAAFQAEABgAAAAAAAUAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAUACAANAAIABQAAAAUAFQAFAAAABQAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAGAAAAAAABQAVAAoAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAABgAAAAVABUAAAAAAAAAAAABAAAAAAAAAAUAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXABcAAAAHAAcAEwAHAAcABwATAAAAAAAAABMAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAAAAAAAAAAAAAEQARABEAEQARABEAEQAFAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAGAAYABgAGAA4AGgAaABoAGgAaABoAGgAVABUAFQAVABUAAAAAAAAAAAAYAAgACAAIAAgACAALAAsACwALAAIAAgARABoAEQAaABEAGgAFABUABQAVAAUAFQAFABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUABQAVAAUAFQAFABUABQAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAGAAAABgAGAAFAAgABQAIAAUACAAAAAAAAAAAAAAAAAAZABsAGQAbABkAGwAZABsAGQAbAAoAAAAKAAAACgAAAAYACwAGAAsABgALAAYACwAGAAsABgALAAkAAAAOAAIADgAUAAwAFAAMABQADAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAAAAAABQAOAAAAAAARAAAAAAAUAAAAAAAAAAAAAAAFAAAAAAAOABIAAAAOABUAAAAYAAAACwAAAAgAAAACAAAAAAALAAgACwAAAAAAAAAAAAAAAAAcAAAAAAAQABEAAAAAAAAAAAAAAAAABQAAAAAABQAKABIAGgAVABgACAAYABUAAgAWABUAGAAbAAAAAAAAABgAAgAJAAAACQAAAAkAAAAOAAIABwAHAAAAAAAAAAcAAAAYABEAGgAFAAAAAAAAAAAAFQAYAAAAAAANAAIAFQAFAAAAAAAFABUADgACAAAAEgAWAAAAEQAaABEAGgAAAAAAAAAVAAAAFQAVABIAFgAAAAAAAAAYAAAAGAAFAAgABQAVAAUACAAAAAAAEAACABAAAgAQAAIADwADAAAAGAASABYAFQABAAQAEQAaABEAGgARABoAEQAaABEAGgARABoAEQAaABEAGgARABoAEQAaABEAGgARABoAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAAAAAAAAAAAUACAAFAAgABQAIAAUACAAFAAgABQAIAAUACAAFABUABQAVAAUAFQAFAAgABQAVAAYACwAGAAsAAAALAAAACwAAAAsAAAALAAAACwAOAAIADgACAA4AAgAAAAAAAAAYAAAAGAAKAAAAEgAWAA8AAwAPAAMAAAAYABIAFgAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAYAAAAGAABAAQADgAAAAAAAAAAAAAAFwABAAAACgAsAI4AAURGTFQACAAEAAAAAP//AAgAAAABAAIAAwAEAAUABgAHAAhsaWdhADJsbnVtADhzbWNwAD5zczAxAERzczAyAEpzczAzAFBzczA0AFZzczA1AFwAAAABAAEAAAABAAIAAAABAAAAAAABAAMAAAABAAQAAAABAAUAAAABAAYAAAABAAcACAASABoAIgAqADIAOgBCAEoAAQAAAAEAQAAEAAAAAQH2AAEAAAABAgAAAQAAAAECEgABAAAAAQIQAAEAAAABAg4AAQAAAAECDAABAAAAAQIOAAICEADcAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AegBtQG2AbcBuAG5AboBuwG8Ab0BvgGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAHoAbUBtgG3AbgBuQG6AbsBvAG9Ab4C9wKiAqECogKjAqMCpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CpAKlAqYCpwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4C8wK/Ar8CwALAAsECwQLCAsICwwLDAsUCxQLGAsYCxwLHAsgCyALJAskCygLKAssCywLMAswCzQLNAs8CzwLQAtAC0QLRAtIC0gLTAtMC1ALUAtUC1gLWAtcC1wLYAtgC2QLZAtoC2gLbAtsC3ALcAt0C3QLeAt4C3wLfAuAC4ALhAuEC4gLiAuMC4wLkAuQC5QLlAuYC5gLnAucC6ALo/////wLqAuoC6wLrAuwC7ALtAu0C7gLuAu8C7wLwAvAC8QLxAvIC8gLzAvQC9AL1AvUC9gL2AqEAAQCkAAEACAABAAQBkgACAEsAAgCYAAoBmAHMAcQB1gHXAdgB2QHbAd0B5wABAIgBkQABAIgBKAABAIgBrgACAIgAAgHjAeQAAgB+AAIB5QHmAAIADQAjADwAAABDAFwAGgCDAIMANACFAIUANQHsAe0ANgHvAjEAOAI0AkUAewJIAlQAjQJXAmgAmgJqAnsArAJ+An8AvgKCApwAwAPwA/AA2wABAAEASAACAAEAEgAbAAAAAQABAEkAAQABALYAAQABADQAAQACAC0ATQ==",
 "sampleImage.jpg":"/9j/4RC5RXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAgAAAAcgEyAAIAAAAUAAAAkodpAAQAAAABAAAAqAAAANQACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaAAyMDE0OjAzOjE5IDAzOjAyOjI2AAAAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAregAwAEAAAAAQAAATYAAAAAAAAABgEDAAMAAAABAAYAAAEaAAUAAAABAAABIgEbAAUAAAABAAABKgEoAAMAAAABAAIAAAIBAAQAAAABAAABMgICAAQAAAABAAAPfwAAAAAAAABIAAAAAQAAAEgAAAAB/9j/7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAEcAoAMBIgACEQEDEQH/3QAEAAr/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/AO9gJbfNShKFatpsfcPNRJd31RITEJWpGH2A6Ex4KJPkilqbajYRqikpiPLXxRCxNtTrUjIP+1SG8cBPBT7dPPxStCVrslrQ5jdzBzw6FH7VaHSII7wOFCXARJA8FEiU0RHUBcZHoSn+1vPYfM/3qFmW94iI+CFt7dkmhoI3at7gcoiER0VxyPVmy2sCXyT4awpG9rj7Xlo7hQln5o2jxOqi41xLZJHc8flR4RfVXFpuFw92rnu0/NH96Gbn7uyR3Hkp20veJER5p1AbosnZg615/wByGSTyilkHmfgmhOBC031f/9D0X0H+B/BRNTx2VuJGibXwT/cLEcQae1w7JiPEK9BPITGuSj7ngj2uzS0SA3GByrbDXbu9Mts2OLX7TMOH0mP2/n/yU5YD2R9zwR7Xi0oTbJPCtuobOmiQpEzyUfcCPbLWYGQQ5m49j/BRLY5aFc2tA1H8U2yuZiZ7hLj808GjRI+SaFedTVOg7eJ/vUDUBwJThkC04i1NqYtVr0xPh8UtidxrfbLT2+SW1Wy1zR218lAsPgPkiJoMGtt+acNPafvRjWfBMKXeCPEFcJ7MRXqCYPknOODJbB8giCt4HA+9OGxyhxeK4R7h/9H0oOrJ0BkrKt+tf1aqkftKl7hI21v36jT832/9JXMfJqvxq8tocaLam3ca7Ht9SHfu+1ebV9K+vEAOz8MjQCK6NPvwv3ETKu31WgfyD1nUfrl0+7Dvx8O4tttrc1l5urrLCdBYwsdbZ7Vy7uo51vtyeqeuwGWtOXEGNu7+b/e9T/z3/wAIiYPS/rPvsPUcyl1XpONIx2Ywf62noeo63B/mPper/hFa6hg9XdjbenXVY+UXja+2ui2st2nfU5rsc+n7/f63v/0f+EQ4vGP8v8FRjfSX8v8ACaRynwWtzIaXF4aMsD3kbfUftq99n8tEZ1Tr24OZ1na9rmuaXXeq2AWy2ynaxtjH7bWfS/P/AOCV+vAzgykWuY6wCoXlooAc4N/WfT/Vvb6ln82sf6wvb0+thzzb+sY11eB9nc1hbmNLXm/I+zfY/wBV9F+P+js9f3+p+gTgSSBcde3/AKKigNalp3/9GenwfrK7HuvttvrubkHe6uyyGsf7W7qHbXenV6bPdR9D/DfT9b1bbvrphMfse7Ha/TT1XmZIa2HNoc125zmrygdRyw0l2RcWgSYsfMf5y1s7q31n6DRh05FuMx17C6ptNNZb6Iaz0t7m7avV93vZ6Pqf6W23/BGWMxIF3xfT/vlCYIJqq+r6APrv00jd6uOQYg+q/udjf8B+/wC1IfXfpZBd62PGkn1X95j/AAH8hy5vo3Vep5tIs9VucxzKnPvrqNba7X6ZHT3Ctu227EZsust/4VXWZnWDXW77HZvc6tr2fpJYHu2XWT6fubjs/Su/fTSCP/Ro/wDepsfyjJ12/XXpbo2247p4i1x7Od/oP3a3op+tOGOfRkcgXa/jUsO276xPAqxML1LrC1ostn06w71PWyLfWayt7cVlbLPTsf8ApPU/6zdh59HUbOq3VsuvZWAw2OqbY9lTjUyxtThhBzHOs+n+hZ/hEo2TV19YlE5AC6v/AAZPQdU691HJua7EzqsSoNLRWy2JcfznGH7vd/0FUHVOsguI6n7nd/XHA+hzT+7+6sjo7uo2ZIx2utbn12B11d9gLBjt2/bcd7Mh1lf2raf0T/T3s/01a231dXlxaKg0B4AJoJneDX/g/d+g3MTttLj/AIX/AKKs31qX+D/6Mh/afWWOcaupBhedzybgZMMYHH9D/oq9n+vv1em/WO6jGFebfVlW+oXG02iSwx+i+gz6KoCnqQquFjqha994xnA0FoDh/k9lkV/Srf8Azu7/AMGSNPUzdXHpCsPJtbux5dWai1rWONf0vteyz/i/+20r/rQ/l/gpArpL6/8AozvD609NPMsHjvpP4C5EH1gwHAFpJB1BBq/9Lrna6uoAsNoYWgs9QB1APBFv5jXN/SbHLhupY3Sq+qZdHUaX29QrD7sqyq6prHWemcq30mVYzWbXf8G1C+xifLVI8RIeb7FV1Kq8MNYJFhIafb23fuPf+4im0+C4j6o9Qpoqr6fSPTwcKy9ofY7c8Q9+nsrYxzH22vc36di6L9t9PLnMFji5oBPscNHFwb7nhrfzHJQnoeKtD+CZRNiuz//So9P6t9lyvVZYdzWw7ffW6sHIAxq77La273Mp+0faXv2Pr/R/y61rW9Uof0u7Hq610+nqLg4VZLMkOrYd+5jt17rMj+Y/Ru9n01yHoBzrnfaHO+02ltjHs3F1VTD6LtK9m+2/0/0dLdlf6JZ7sKxtRfXjudYWPEtaT9L2Tua33e1yhjkjKJuUeIa1p6lvuAeP1e8t6i111j6vrBgsqdblvrYchntqupbV0ur/ANp+ZuybP+h6yVPUA2yp1v1gwbK2WYLrWjIr1ZRW5nV2/m/8p3/pK/8AwT0FwFXRszc26rFve1jg8ltDnCB7vptDmtRcfp2f6D/8mPe703kuNNhLvUdWx0kfS+zfTq/cUnCLriG29xTx+Bez+15rcQVH6z9P+0/ZfT9U3sg5H2n7T9r1bu2fsv8AUfo/T/wez9Ms/wDxg9SwModOGFfRlAPySfSsbb6YIx9v8y921/8AXXL4+Pa59RGF61T7W+nc+pzt7WN9F7Q4bGur/wAJsQXYWc1jLnY11eOwBrH+m4Md3cN8bfplKFcUSSB9YolOwRSZr5BG0vEGWjkgCXLR+tVmT9k6WMrqOP1O1oui7Gsa8MZtxvTx7BU1np2Vx+cqbcLIZiW5Ty2p1BINFpDbPaBqa3uZZ+dsbtZ9NaZ+qPT7cfbXlWNc0eqS/wBMQXtrcW27jX6fsZ/hXVqTJmx2JcYIhd0jHA0RXzVTd+p2Zk19IeMO3GpJuyTa3KtrDjb9noHT31Nt2foftf8AP/8ABroreo9R3H0Mrp4b+n27rqp/mK/2d+f/AOWXr/af+62xcfT9TulvL9+Y+ahLmudjVvH0tu6qy93q7q632/on2f8AFItv1J6d6DjXdk7thNbnMqDSfcWOc7d9BRGcJeoSBEtQWQAjStnr6uqZLMtrvtmAynfb7zfUNrPSr+yvd7zu2Zn2p13/AAXpLk+rue/qD3PvryXFtc30P31uOxo3V2sDGv8Ab7PooeJ9UacXJrttuBYJaRsDnOkW0xXTFvrPe70/0Xvs9/p/zivt6J0xtftyrxVUIkY73Na2SYL2VbW+47PejCUAdx9iyYMtK/Fn9V8vp2Jm7svZS8iwtzLbRWxjTWR6T22fo3Otd+et93VunHI3N6vhCo21PFf2lk+m1rhfXs1/nbNrvpf9crXP09N6bh9RpvGbacioE14z8Z1jXkhzJOOaX+t9P9z6f/CLHzvqu9nVMmvD+0XYlBcym9oL3OIDfz6WbPd+k3bNnpv+miZxJNHcVsgAgVWxv5v0v3fS9mOq4LWtbZ1nCL2ioPP2pp9zbN2Q76P+Eo/Rf+fP9Ig3dUrdU9tXX+nMsNdja3m0ECx14ux7CB+ZXgbsR/8AwvvWIei9Nx+nY7jj3WZDy9uTYWXFzWNtG+l7aR6fqOwnbX+33/p/T/SIWTi9Jrvx2YvRbcqm7+dt25bTUJj1Nrm/p2bHb/0aackSdfP5YhNVp4dZF6N/WcM2WFvWunitz8g1t9Yghjwz9nsJ93vxnNt+0O/7YXJZlfW39Qz3MutzK7LLXU5NJcWWNspu9I02e3fW2z0WN/4VJrayBP1WtDy/aW7skkN/0n0Vft6N0H7Xv/ZlrsU1vDpx8wOddvbsfJj2ej6nt/fSM4j/AHop+z7VsCy/p+Hm5OZQ47X3Xem/b7g4Ndv/AEgtY79I51n6Suz+aQXfXLCAhmExsN3Of+jBc1w9P/B4zPT99jXfo0+TV07Ccw4uC4Yz6bqvstldzPVvea/TZ6lm29vq07v8J/N1WqtQOmm7FOR0ZtGM+suyHD1niff6FQ3WHfTvbRY2ytD3IjU6691E+IH1f//T5lv7d/SFpyJIA1Do0+jLWt2/R+h6f5ikLetj2tF4siXEtkxHf2Ljklln2uvB/wA1qa+L1zr+pydzX7dd0tgydNf0f7qeh3Uy57i6xhcRIa0nQfR0LPbYuQSQPtUa4f8Amo1e1st6o4PFrrAOHbqwD/1H/f1Oo9TdYfTdYD/JBBn+wxrVw6SjPt1pw/8ANVr4vbi3qpLQPWEiG+0zHj7Wu9iEcnPEw1xAJDj6cDj3ep7P+qXGpJw9rrX/ADVavZi7Oa6WD3RqGMBdB+ju9n/mCduRcWtc4bdCA19bPLwZ/wCYLi0kvR4X9Favb13Zjmba/olx+gwDXvDhXt3JPuubra1jmtjcHsGzy3abVxCSaeG+n9qtXvqM7Elotx2SeIazU6bYhu5v8hWmWYj90MrAH0hAB/tbfztq83SUc6/RXC/B9JD8cPmptLrB9ICNxJ/ejanDmuZu2NYCBoD7QB2hpe3uvNUkxWr6W5w3htgZvj6RHb5u3KJFjhEsaBHplnh+Z9H6f530l5skiFPojxVuJN1Qsc7RvpSOP+i701EV4wc8NsYbDt3eQn9HG0Nf/VXnqSdqj7H/2f/tF+hQaG90b3Nob3AgMy4wADhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAAAAA4QklNBDoAAAAAAJMAAAAQAAAAAQAAAAAAC3ByaW50T3V0cHV0AAAABQAAAABDbHJTZW51bQAAAABDbHJTAAAAAFJHQkMAAAAASW50ZWVudW0AAAAASW50ZQAAAABDbHJtAAAAAE1wQmxib29sAQAAAA9wcmludFNpeHRlZW5CaXRib29sAAAAAAtwcmludGVyTmFtZVRFWFQAAAABAAAAOEJJTQQ7AAAAAAGyAAAAEAAAAAEAAAAAABJwcmludE91dHB1dE9wdGlvbnMAAAASAAAAAENwdG5ib29sAAAAAABDbGJyYm9vbAAAAAAAUmdzTWJvb2wAAAAAAENybkNib29sAAAAAABDbnRDYm9vbAAAAAAATGJsc2Jvb2wAAAAAAE5ndHZib29sAAAAAABFbWxEYm9vbAAAAAAASW50cmJvb2wAAAAAAEJja2dPYmpjAAAAAQAAAAAAAFJHQkMAAAADAAAAAFJkICBkb3ViQG/gAAAAAAAAAAAAR3JuIGRvdWJAb+AAAAAAAAAAAABCbCAgZG91YkBv4AAAAAAAAAAAAEJyZFRVbnRGI1JsdAAAAAAAAAAAAAAAAEJsZCBVbnRGI1JsdAAAAAAAAAAAAAAAAFJzbHRVbnRGI1B4bEBSAAAAAAAAAAAACnZlY3RvckRhdGFib29sAQAAAABQZ1BzZW51bQAAAABQZ1BzAAAAAFBnUEMAAAAATGVmdFVudEYjUmx0AAAAAAAAAAAAAAAAVG9wIFVudEYjUmx0AAAAAAAAAAAAAAAAU2NsIFVudEYjUHJjQFkAAAAAAAA4QklNA+0AAAAAABAASAAAAAEAAgBIAAAAAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0EAAAAAAAAAgABOEJJTQQCAAAAAAAEAAAAADhCSU0EMAAAAAAAAgEBOEJJTQQtAAAAAAAGAAEAAAACOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA0sAAAAGAAAAAAAAAAAAAAE2AAACtwAAAAsAQgBlAHoAIABuAGEAegB3AHkALQAxAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAK3AAABNgAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAABNgAAAABSZ2h0bG9uZwAAArcAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAATYAAAAAUmdodGxvbmcAAAK3AAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVudW0AAAAPRVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAAEUVTbGljZUJHQ29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91dHNldGxvbmcAAAAAAAAADGJvdHRvbU91dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAAAAAMAAAAAj/wAAAAAAAAOEJJTQQUAAAAAAAEAAAAAjhCSU0EDAAAAAAPmwAAAAEAAACgAAAARwAAAeAAAIUgAAAPfwAYAAH/2P/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgARwCgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A72Alt81KEoVq2mx9w81El3fVEhMQlakYfYDoTHgok+SKWptqNhGqKSmI8tfFELE21OtSMg/7VIbxwE8FPt08/FK0JWuyWtDmN3MHPDoUftVodIgjvA4UJcBEkDwUSJTREdQFxkehKf7W89h8z/eoWZb3iIj4IW3t2SaGgjdq3uByiIRHRXHI9WbLawJfJPhrCkb2uPteWjuFCWfmjaPE6qLjXEtkkdzx+VHhF9VcWm4XD3aue7T80f3oZufu7JHceSnbS94kRHmnUBuiydmDrXn/AHIZJPKKWQeZ+CaE4ELTfV//0PRfQf4H8FE1PHZW4kaJtfBP9wsRxBp7XDsmI8Qr0E8hMa5KPueCPa7NLRIDcYHKtsNdu70y2zY4tftMw4fSY/b+f/JTlgPZH3PBHteLShNsk8K26hs6aJCkTPJR9wI9stZgZBDmbj2P8FEtjloVza0DUfxTbK5mJnuEuPzTwaNEj5JoV51NU6Dt4n+9QNQHAlOGQLTiLU2pi1WvTE+HxS2J3Gt9stPb5JbVbLXNHbXyUCw+A+SImgwa235pw09p+9GNZ8Ewpd4I8QVwnsxFeoJg+Sc44MlsHyCIK3gcD704bHKHF4rhHuH/0fSg6snQGSsq361/VqqR+0qXuEjbW/fqNPzfb/0lcx8mq/Gry2hxotqbdxrse31Id+77V5tX0r68QA7PwyNAIro0+/C/cRMq7fVaB/IPWdR+uXT7sO/Hw7i222tzWXm6ussJ0FjCx1tntXLu6jnW+3J6p67AZa05cQY27v5v971P/Pf/AAiJg9L+s++w9RzKXVek40jHZjB/raeh6jrcH+Y+l6v+EVrqGD1d2Nt6ddVj5ReNr7a6Lay3ad9Tmuxz6fv9/re//R/4RDi8Y/y/wVGN9Jfy/wAJpHKfBa3MhpcXhoywPeRt9R+2r32fy0RnVOvbg5nWdr2ua5pdd6rYBbLbKdrG2MfttZ9L8/8A4JX68DODKRa5jrAKheWigBzg39Z9P9W9vqWfzax/rC9vT62HPNv6xjXV4H2dzWFuY0teb8j7N9j/AFX0X4/6Oz1/f6n6BOBJIFx17f8AoqKA1qWnf/0Z6fB+srse6+22+u5uQd7q7LIax/tbuodtd6dXps91H0P8N9P1vVtu+umEx+x7sdr9NPVeZkhrYc2hzXbnOavKB1HLDSXZFxaBJix8x/nLWzurfWfoNGHTkW4zHXsLqm001lvohrPS3ubtq9X3e9no+p/pbbf8EZYzEgXfF9P++UJggmqr6voA+u/TSN3q45BiD6r+52N/wH7/ALUh9d+lkF3rY8aSfVf3mP8AAfyHLm+jdV6nm0iz1W5zHMqc++uo1trtfpkdPcK27bbsRmy6y3/hVdZmdYNdbvsdm9zq2vZ+klge7ZdZPp+5uOz9K799NII/9Gj/AN6mx/KMnXb9delujbbjuniLXHs53+g/drein604Y59GRyBdr+NSw7bvrE8CrEwvUusLWiy2fTrDvU9bIt9ZrK3txWVss9Ox/wCk9T/rN2Hn0dRs6rdWy69lYDDY6ptj2VONTLG1OGEHMc6z6f6Fn+ESjZNXX1iUTkALq/8ABk9B1Tr3Ucm5rsTOqxKg0tFbLYlx/OcYfu93/QVQdU6yC4jqfud39ccD6HNP7v7qyOju6jZkjHa61ufXYHXV32AsGO3b9tx3syHWV/atp/RP9Pez/TVrbfV1eXFoqDQHgAmgmd4Nf+D936DcxO20uP8Ahf8AoqzfWpf4P/oyH9p9ZY5xq6kGF53PJuBkwxgcf0P+ir2f6+/V6b9Y7qMYV5t9WVb6hcbTaJLDH6L6DPoqgKepCq4WOqFr33jGcDQWgOH+T2WRX9Kt/wDO7v8AwZI09TN1cekKw8m1u7Hl1ZqLWtY41/S+17LP+L/7bSv+tD+X+CkCukvr/wCjO8PrT008yweO+k/gLkQfWDAcAWkkHUEGr/0uudrq6gCw2hhaCz1AHUA8EW/mNc39JscuG6ljdKr6pl0dRpfb1CsPuyrKrqmsdZ6ZyrfSZVjNZtd/wbUL7GJ8tUjxEh5vsVXUqrww1gkWEhp9vbd+49/7iKbT4LiPqj1Cmiqvp9I9PBwrL2h9jtzxD36eytjHMfba9zfp2Lov2308ucwWOLmgE+xw0cXBvueGt/MclCeh4q0P4JlE2K7P/9Kj0/q32XK9Vlh3NbDt99bqwcgDGrvstrbvcyn7R9pe/Y+v9H/LrWtb1Sh/S7serrXT6eouDhVksyQ6th37mO3XusyP5j9G72fTXIegHOud9oc77TaW2MezcXVVMPou0r2b7b/T/R0t2V/olnuwrG1F9eO51hY8S1pP0vZO5rfd7XKGOSMom5R4hrWnqW+4B4/V7y3qLXXWPq+sGCyp1uW+thyGe2q6ltXS6v8A2n5m7Js/6HrJU9QDbKnW/WDBsrZZgutaMivVlFbmdXb+b/ynf+kr/wDBPQXAVdGzNzbqsW97WODyW0OcIHu+m0Oa1Fx+nZ/oP/yY97vTeS402Eu9R1bHSR9L7N9Or9xScIuuIbb3FPH4F7P7XmtxBUfrP0/7T9l9P1TeyDkfaftP2vVu7Z+y/wBR+j9P/B7P0yz/APGD1LAyh04YV9GUA/JJ9KxtvpgjH2/zL3bX/wBdcvj49rn1EYXrVPtb6dz6nO3tY30XtDhsa6v/AAmxBdhZzWMudjXV47AGsf6bgx3dw3xt+mUoVxRJIH1iiU7BFJmvkEbS8QZaOSAJctH61WZP2TpYyuo4/U7Wi6Lsaxrwxm3G9PHsFTWenZXH5yptwshmJblPLanUEg0WkNs9oGpre5ln52xu1n01pn6o9Ptx9teVY1zR6pL/AExBe2txbbuNfp+xn+FdWpMmbHYlxgiF3SMcDRFfNVN36nZmTX0h4w7cakm7JNrcq2sONv2egdPfU23Z+h+1/wA//wAGuit6j1HcfQyunhv6fbuuqn+Yr/Z35/8A5Zev9p/7rbFx9P1O6W8v35j5qEua52NW8fS27qrL3erurrfb+ifZ/wAUi2/Unp3oONd2Tu2E1ucyoNJ9xY5zt30FEZwl6hIES1BZACNK2evq6pksy2u+2YDKd9vvN9Q2s9Kv7K93vO7ZmfanXf8ABekuT6u57+oPc++vJcW1zfQ/fW47GjdXawMa/wBvs+ih4n1Rpxcmu224FglpGwOc6RbTFdMW+s97vT/Re+z3+n/OK+3onTG1+3KvFVQiRjvc1rZJgvZVtb7js96MJQB3H2LJgy0r8Wf1Xy+nYmbuy9lLyLC3MttFbGNNZHpPbZ+jc6135633dW6ccjc3q+EKjbU8V/aWT6bWuF9ezX+ds2u+l/1ytc/T03puH1Gm8ZtpyKgTXjPxnWNeSHMk45pf630/3Pp/8IsfO+q72dUya8P7RdiUFzKb2gvc4gN/PpZs936Tds2em/6aJnEk0dxWyACBVbG/m/S/d9L2Y6rgta1tnWcIvaKg8/amn3Ns3ZDvo/4Sj9F/58/0iDd1St1T21df6cyw12NrebQQLHXi7HsIH5leBuxH/wDC+9Yh6L03H6djuOPdZkPL25NhZcXNY20b6XtpHp+o7Cdtf7ff+n9P9IhZOL0mu/HZi9Ftyqbv523bltNQmPU2ub+nZsdv/RppyRJ18/liE1Wnh1kXo39ZwzZYW9a6eK3PyDW31iCGPDP2ewn3e/Gc237Q7/thclmV9bf1DPcy63MrsstdTk0lxZY2ym70jTZ7d9bbPRY3/hUmtrIE/Va0PL9pbuySQ3/SfRV+3o3Qfte/9mWuxTW8OnHzA5129ux8mPZ6Pqe399IziP8Aein7PtWwLL+n4ebk5lDjtfdd6b9vuDg12/8ASC1jv0jnWfpK7P5pBd9csICGYTGw3c5/6MFzXD0/8HjM9P32Nd+jT5NXTsJzDi4LhjPpuq+y2V3M9W95r9NnqWbb2+rTu/wn83Vaq1A6absU5HRm0Yz6y7IcPWeJ9/oVDdYd9O9tFjbK0PciNTrr3UT4gfV//9PmW/t39IWnIkgDUOjT6Mta3b9H6Hp/mKQt62Pa0XiyJcS2TEd/YuOSWWfa68H/ADWpr4vXOv6nJ3Nft13S2DJ01/R/up6HdTLnuLrGFxEhrSdB9HQs9ti5BJA+1Rrh/wCajV7Wy3qjg8WusA4durAP/Uf9/U6j1N1h9N1gP8kEGf7DGtXDpKM+3WnD/wA1Wvi9uLeqktA9YSIb7TMePta72IRyc8TDXEAkOPpwOPd6ns/6pcaknD2utf8ANVq9mLs5rpYPdGoYwF0H6O72f+YJ25Fxa1zht0IDX1s8vBn/AJguLSS9Hhf0Vq9vXdmOZtr+iXH6DANe8OFe3ck+65utrWOa2NwewbPLdptXEJJp4b6f2q1e+ozsSWi3HZJ4hrNTptiG7m/yFaZZiP3QysAfSEAH+1t/O2rzdJRzr9FcL8H0kPxw+am0usH0gI3En96NqcOa5m7Y1gIGgPtAHaGl7e681STFavpbnDeG2Bm+PpEdvm7cokWOESxoEemWeH5n0fp/nfSXmySIU+iPFW4k3VCxztG+lI4/6LvTURXjBzw2xhsO3d5Cf0cbQ1/9VeepJ2qPsf/ZADhCSU0EIQAAAAAAWQAAAAEBAAAADwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAAABUAQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAIABDAFMANQAuADEAAAABADhCSU0EBgAAAAAABwAEAAAAAQEA/+EN3Gh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjEgNjQuMTQwOTQ5LCAyMDEwLzEyLzA3LTEwOjU3OjAxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgTWFjaW50b3NoIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxNC0wMy0xOVQwMzowMjoyNiswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxNC0wMy0xOVQwMzowMjoyNiswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTQtMDMtMTlUMDM6MDI6MjYrMDE6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDI4MDExNzQwNzIwNjgxMTg3MUY4MTMxRkI2RTY4OTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTg3MUY4MTMxRkI2RTY4OTgiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMTgwMTE3NDA3MjA2ODExODcxRjgxMzFGQjZFNjg5OCIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjAxODAxMTc0MDcyMDY4MTE4NzFGODEzMUZCNkU2ODk4IiBzdEV2dDp3aGVuPSIyMDE0LTAzLTE5VDAzOjAyOjI2KzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgTWFjaW50b3NoIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDowMjgwMTE3NDA3MjA2ODExODcxRjgxMzFGQjZFNjg5OCIgc3RFdnQ6d2hlbj0iMjAxNC0wMy0xOVQwMzowMjoyNiswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/iDFhJQ0NfUFJPRklMRQABAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAABAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////uAA5BZG9iZQBkAAAAAAH/2wCEAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwMDAwMEAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBwcHDQwNGBAQGBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIATYCtwMBEQACEQEDEQH/3QAEAFf/xAGiAAAABwEBAQEBAAAAAAAAAAAEBQMCBgEABwgJCgsBAAICAwEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAgEDAwIEAgYHAwQCBgJzAQIDEQQABSESMUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLxJUM0U5KismNzwjVEJ5OjszYXVGR0w9LiCCaDCQoYGYSURUaktFbTVSga8uPzxNTk9GV1hZWltcXV5fVmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6PgpOUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6EQACAgECAwUFBAUGBAgDA20BAAIRAwQhEjFBBVETYSIGcYGRMqGx8BTB0eEjQhVSYnLxMyQ0Q4IWklMlomOywgdz0jXiRIMXVJMICQoYGSY2RRonZHRVN/Kjs8MoKdPj84SUpLTE1OT0ZXWFlaW1xdXl9UZWZnaGlqa2xtbm9kdXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6Pg5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra6vr/2gAMAwEAAhEDEQA/AO70YnNo6pqrA9cUO5v440rfPxrjSthwdq40l3IdK4KYku2wq0GI2rUYquDKDQgfPpkSGVr/AFSo+EkU+nBwp4nC6lIoW/DHgC8ZaMs/XkTjwhPEWxcSeJ+WPAF4y5rhidjQ48ATxFct01NzjwBeNY0rnrXCIhBkSpcpB+0flkqYEtCWQHrvjwhIkvFzIOorg4AjxFVL4jvTInG2DKrJqFRQ7jIeEy8VSlmDbBvoOSEUEoUlgadMtpoNtFm+nFRa0pKN6U8MKaLvjpu2+FC0hgRU7eIxVsueWxNMSFbaRya128MeFbcxFQRUDwGNJta5NTSowhCwnxJwsbW716nCriD44otbVgeu2KLXiaQH4TTBQTxFxdmNSanCAkEtFqeOKbXLJseu+DhW2jQ9zXwwsVypX9v78BLKlQRU/bGRJZBVBoKc8jTYHDlWof8AHBSEVbyUPxNlUotsSjVMTD7X0ZSQWwFr0oi1akHDbKlX01A61yNp4VJyiHfpkhugrFcNuv3YSGJXiQjtgISCqpNQg1+jIEM7VTdDtvkOBeJYZmY0yQim1prkqQSpujE9SMQqqkZHU4kpc23fAgqbSUB3yQDEyQ8lwQNjXJiLAyQb3NTlwi1GakZ98mIo4mjcLTY48LHiaWSp2bDS2rJKa7A5AhkCUQCxHSn05W2ArubKOv0YKTbYuvfHgRxLXuQcPAvGFM3A8foyXAjjUzOPfJCK8Sm0+S4WBkt9Qk0JJrhpFr1B71wJtplXxxWljcQP44QghT9Q9B0yVKvV/bAQtrmYH2xCkqbsabH78IDFYQw75JBCw07E4UKbuw6ZIBiSos57k5OmNrPWp4n6cNMeJYZHPenthpbcCfHFFv8A/9DvlM2Vuoa4jG1aKjG1aKA4bVaY/DDabdwNcVbo3hjYVaSRvhQ1WvXFXUxQ4DfFbVFlK9hkSGXE2bg9wMeBPGptID+yMIixMlnIV2JB+/JUxBbWVsFJ4my9R0xRxLSRhW1pY0w0qznvhAQ2j0PTAQm0QNxUb+2RLO2mZlWpG2IUlTaSuGmNtCVqUGGk2VpY4aQt5YVaL+2KLdyxRbdcNLa5pKjBS2tWjHfFQqmOMLWtTkbLKgosB2ybArMUOpirsVaIOFWhyGKrgTWmBVwG9anFILjTxwMrXKB3NcSoVUWMAb0r2yBZhUG26iv05Flbfr0Fa0OPDa8Tk1BlIqa4DiXxkYmo7eOVHE2jKpzXyuDko46RLIoJeLHuD9OTOO2HGu/SW/Xrg8JfFVorlm3B28ciYU2CdqyzHvue2Q4WQk01w6ipoBiIp410dyCK8qHEwTxhprhxvXbAIIMm0vPHpicaibbXKkbmnhgEEmaHeVSeuWCLAyCGmmNevXLYxapSUOa+OTphbXMN0/HDS2qJBy3ArXIkqIoqGxjG8n3DKpTLdGPeiQsXRRldkswtZB44VUJ+QHw5OLCSDkkl7jLgGokuSOVxUniMTSAFxQgGprgZUhZZWDEA7ZaItRkpCSU7DfDQRxFF20bFg7E/LK5FsjurTzKppWmRiGZlSibqOnX6clwMTNRe7FdhkhBici360D028cnwLxuW5IwcCOJxuiemPAjiWGZ69cPCjiWNK56tkuFBkVplbxw8K2saUnvkgEWsZmOLElrCxbG+K22KdPngSH//0e+ZsXUF2Kuwq1iyb3xRTsCHYq0Vr1w2q1o6kU2w8SrSrDCtNYUU7FDRAOKKa44qtpvhV2FLqnwxpacKU6Y0tLSBiq0rhtacBTClcrsp2ORpVxkLbNjSrMKrab1wq1Uk+2KGgN8VXFcVdTFFLSMKKdvihoYq3VqdcUupirZFDimnMvh0xQVmKHYq7FXYq3U4q6u+KurTFIK4N41wEJ4lVJlXod8iYshJbI3IeJwgKSohd/bvkmCKV4SoHceGVkFtBDYjhY05EYLKdkPPEUOxqMsibYSipZJrVlmYDbI8IZcS4XEnY4OAMxIrjPUUclsHCvEt9Q9jTwx4Vtf6zUoTtjwp4it9cjv9+PCgyd9ZenWmPAjjWtOfGuHhXiWGUEb7nJAMSVMk+OFja5AOtcBSEwsyOJPanXKJuRjXyTx9iT75ERbDIOW5Aw8CONv6yp2rjwJ4nGQHauPCtrCFPXphtiQGtgaYUFRmYAZKIYSOyAarHbvl4aVa2XiQSMhIsohG8lVdsrbkLMpkNa75OOzXIIWRQvf6MtBaypE5NDqjFFuBwLbeK24nCqw1rhQ1irRG+KrcKtjFFN7YFcOv0Ypf/9LvZzZOqcMUOGKurXFadXFabocCHYq7FXYq7DatUxtVpj8MNopaVIG+FaaoMUU7iMbQ0Vw2rXE4VaK064q1TDaXccVaoMVa474UtFSMbV2KtYVaIPyxVunviinUwWtOGKXUxtXUxtFO4DDaKWkUxtS6hwsab+KmBk0Sx64oa413GFFOKgDrv4YqtxVUCVHbBbKlvpv2GG0UuEZB+Ibd8BKRFeEtyNyQcjZZcIXxwoP2tsBkyEQi4ILd6cqHKZSIbYwCIbSLd0PD4a98h4xDPwgUJNo8iNVDVO/zy0ZwWqWCkIYHjNHUjLRIFrMCGmoPsj78IQs5k98ICCWuKnen04bRTXAYopw2xUFUDLTcYCyC5Xj/AJQcibZWF1YD7e2O62FkypQEEYRaJKDEZNrW7Yq3irRxVsf5jFVT15AKA8R4YOEMhIrDM/c4aRZa9ZvHGk24TNWuNKJLvXf6MeFPEV63L136ZHhCRIr/AKxQeOPCy4lJ5FfxrhApBWoorhRSulAMgWQWNLxrUYRFSaUHnZthsMsEWsyUyK9ckwU2rkgrsKtrgKG8CCtO/wBGSCQ3QnFVpBGKtYq7jXFWiKYq6mK04Yq//9PvebJ1JbwIdTFWqDCm26eBpitu59sCG8CuIGG1dTbFXUxVrFXYq7CrRUHG1Wem3jhVogjqPpxRTqfdhRTVBihxAw2rRG2Nq1TCrRAxVxXFNtU36Y2rRXDaWihGNqtySuwFXYFdireKt4q0cVb3xRTWK03itNbfLDaWiBhtFNcRja03tTpgSvWQjbrgIVt5amoFMFKsDkUwqCuaQt1A+jDSqkOzA7/LISDKKaQXDBQAajwzFlByoyakv6NxphGNZZEHNKHHX7sujGmmUrQcgoeuWtJWqVB3GGkWuafaijGlMlPl49ckAi1nNGYhSCV+0B2xYt1xV1cVtxbFVpJPfbwwrbWKuocVdirvbFXcW8MU0uCeJ3wWkBv0icbTwt/Vx442y4Vph8DhBRTRjUDrhRS0ca9cbTS4CppgSvWIVrgJSAvoAcFq1z7Y0tqErA98mAwkVLJsG8WK0qDhBVopQbYbVobYlW8CuxV2KupjatcRhtWivhjauIrhS1T78VcBvir/AP/U75mxdQ7FXYq4A98VbpgtNOp7YbQ44Fa3FMVbxV2KupXCrqYq1Q4q7FXYq7FVpAwppor4YUUtp9+FiQ7AimsKuIxtWqYbVrCrsVapim3UBxtK3hjatFThVricVdQ4q6uKt4q7FXYq0TirWKuxVvFWsVXBCae+NquaFgadcFppaSw2O4wodyH8owq1yatRtgpVwlevU4KTZbeQt418caW1nI1rhQ0aHrvXCEFYyjsa5IMGqYq7FVqRRoXZFCtIeUhH7RoBU/QMVtdirsVdscVaphVrFXYq2Kk4qiI7UlCT17ZWZtwxu9B++PEogvWBh+z9OAyTwuZHxtNKThhkgxJWUrtXrkmKrLYsq1D8iciJs+BDiFgx5ZLiY0qVAPTfFVrTN0AxAUyU2kbxyVNZKmzMd65IBbW4UN4ot2KHYq7FWqDG1dxxVog4VaOKuxV2KuxVsUxV1BhtXBN8bS//1e+ZsXUOpthTTYHvgWm6YFDgcUu2xV1MUU1XFadihvFLWKHYq7FNOIrhtDqYq1TFWqYUuxV3zxVoouG0U1wxtBC0imKKdhQ1scVdxxtLuGG1pbSmFDsVdtitupittU9sWTVBjatcffG1aIIwq1uMVaxVv3xVrFW6Yq6hwq2CVOBV4farYFWMRTbocKrcVdirsVbxV2KuIw2gtGv3YQxpojFadxHH3wrS2hxQ7FWn5BCVXkwGy1pU+FTirogWUErwYjdSQSD4VG2KaXEUPjihor37Yq4rthTSIt0RSGbK5lsjQR63MAHyyjhLkcYUXuY6/CPpyQgWJyBDtcsx75PhazkUmlJP8MnTHiaRHlNANvHtiTSx3REdooHvkDNsEUR6aEAM4FPHK7LZspSRwAGkgJycSWBpASEA0DZcGklTyTBawrhQt4nCrsKl2BFOwrTsVpviSKjBaadwOC1pv0277Y2tOKEY2tLaZJFNUGK07jitNEYVp1DitOrimm98Uv8A/9bvtN82NuqdvjauwK4HfClvfpgQ1vhV2BV3emKlxGBi0a4Vd9GKXYq7FDWKuxV2KuoMVdTDau4jxxtNraHCtu6Yq7bvitOoMUU1wHbG0ENcSMNrTVDirsVaoMKu4jG0U1xOG1pbQ4UU6mKtUxW3UxTbqYrbuIxRbRQY2tuCjFkuFKdMCLdhtDRFcVdTFXEA42q3ga7YU2tIOKWsVbGKt4q7FXYq7CimjitNcR9GFjS2mKKdTFXCoxV3XFWwK7V38MVDuIp1wsmq++NItqpxRbsVcS3Y4rblIHXFKpHMU6dMBDKMqae5lJNDQYBAJM1Lmx2Jrk6YEtHFCw1PXCrsKuxVsYpapvitN7YFcAtaHG1pWitufQH3yJlSRG0Utivfp4HKzkbBBd9Vjr8I+/BxsuAKTxKu5O2TEmBCHkK7gZMMSpGlDkrYLCD4YbVo18MVdhV2Nq1xGNpbAxV//9f0BTM91Tq0xQ11xV3HG1brih2K21QYrbqDFFu2xV1MUu3xV1MVtojFW6DFVprkgyC0++GkU2DvgpaXYEOocVdirVBhtXUGNq7iMbVojwxS1vhV2KuIU9cUU1xGK01xPbDa00a+GKGiaYVdsfnja0sOFi7CrhXFW+JwLTVMU07FaditOpitOpitOwrTsVp2KHYqt4DG1top4Y2m2uDY2tuoa0wpdvirqbYq7FXYq6gw2inUGNo4XYrwrSCR4YUUs3BwocScVdirWKt4q7FWjvirRGKtYVdirsVcRirXHDauK+GNq1QjemKXYVdQ4FVo1G1QMiSkIiN+PemVkMxsrLLXr08cjTO2nc9sQFtCylyp7DLAGuRQ9NjTc5YwLVKe2Nq6o7b42hxHjjaXbdKYUONAPDFVhpXDauGKv//Q9A75nurprFDsVdirqYrTsVpo4op1DiimqnCtN1ONLTt/DAtO3xWnYrTsU04rXDaQsK4bVuhxtVwpTIodTFFOxV2KupirqYq4jauFWqE9NxjaXe2KGiuG1a442lxBGKtVOFXYq0VBHTFVpSnvkrRS3jhRTfyGBacDU79MLKlSK2eVwqVNfuyEpgM447XvaSxvx6++AZAQyOIhs2rkUNB74PER4ZUzbSg79clxsTByW0jKWHQdceNfDLvQiD7knHiK8Kn6bA7KfbJWjhb9JiPi2xtBisK0+jDbAhrCh2KuxV2KuxW1pB+jG1tor4YbSC4An/PwxTbVD4b4q6h8MVt2KuxVqmG0ENcR4Y2imioxtadww2tNFcNop3A42imuJ8MVp1DitOKkdsbVqmKuC42rXE4q7Crq4q6mKtcRirXD3xtVy1HfAtrubdsaTbfqP44KXiLvWbGk8TYLNtTrhUFxiFTQ/RgtNLTFvvvhtaXJEa7dMBKiKobf+bBxJ4VKSIDY7eGSEkGKlxbwyVop3pt4Y2tO4GvTG1p//9H0MY2rmbbrStMXjjaCFpj98NrTfpjxxtaaKGu2K01Q4UNYq7FaaoMUN4q7FXYq7FXYq7FXYq1TFWxtirq4q7bFXCgxVvbFadTFaaIxWmt8WLqYq4jFXbYq4jw2xtNtFcIK2tIGFXYVpqoxVxI8MVpv0mIqBXHiZcLQA+kYsSitPl4ScSNj0yrKLDdikjXCOzVpXtlI2cjYqErcSVGWRYFCO78wT36jLAGqRc9x8HFdq9TiIsTNQ50NMmwtWBRAD1ORLMELZZgRsPnhEUSkoU2ybSWuOG0OpirWFXYq7FXYq7FXYq7FXVxVriuKtFfDDa2tNRim2q4pdXFXVxV2Ku2xRTqe+G0U1xHXvjau+P54ULa06jFXEjww0hscT3p88CuIGG0reIxWnccUO44VdirYXfwwFQGygAr1xZUtoPDFDa8DtT6cSoX7L075EslhDHocISuVXP0d8BKgKqCh75EskSSpTbqMiyUWUbmlThCCFIxnwpkrRSzgR0GESQQ4K3hhtD//0vRW+ZVuuouKnuMbC8Ja2HbDaaLVBXbG0UXcd/fG1orTGd8NppoIDjxKWim+2StFLTGcbWmiMKKaocUU6mK07FDsUOxV2KuxV2KuxV2KuxV2KuxV2KuxV1CADTY9DgtPCXYUO2xWnUGK01iimqYUuIxBVbxwpb442q6N+PIeORIZiWywg1675NrpyllNQd8BSFVJjy+I9e4yBizjNt2Zj12xASSpMHrU5MMStoK7jDbWQ4KOvTG0NcduuG0hZwamEFWqkYUU4EYKY03itNUxtDVMNq4jG1apirqHFXYVdirsVdirsVcd8VWlFxTbXp4bW3FKdMbW1mKXYq7FWwcVdih1PEYbRTRQYbWncBja06m42xtNONMUFrFDsNrTRUHG0U1xOBNLgMUrginrjaaaZD4fTjaeFeqFhv8ARkSUgKyxADYb5G2XC7hJX2wWmm+mNrTccbkkgYkpiFZYRWhGQMmdNvAOgxEl4VJ4CoyQkgwUinxDbJWw4X//0/TKop6CmWEtFNlBTxyNp4Wgu5/VhtFOMMZ+0BXHiKRAFY0KdsIkgwWG3WlRucPEx4VMwSdKD55LiDHhWm2lUVp065ITDEwKz02PbDbHgbFuxHQU8ceJeBY0TDthEl4Vvpt4YeJFNGJvDDxLwtGI+GNhHCtETnoK4bC8DjGw6g42EGJW/hhRwl1DiinUOKuxV2K06mK06mK06mK07fFI5owEulCKjwHbKXI5oedVVqAUp1yyJtomKU8kxccVcKk7Yq2QQd8bWmiMbWnYq4D2xWl6qgUnjvgtnSwr9+EFjTXAnpvhtNN+i3hg4k8KosRO1RgJZU36Mf7Tfdg4lpaRD0GIJQYhYUU9MmCx4Qs9L4tj9GNrwtFaHbDbExW0PhhtFNFARhtaWhD44bY01uO2K02AT2xRTqHwxWnUPhja06h8MFrTXH2w2inccbWncR44bWnca42tNcDja07icbWncTitNYULtiBgVaUr2w2lrgMUOMftjad1vpnxxtLuB9sNq7ia42i2qHwxtNthSTTpirRFD44q1htXUGNoprjhtadx98bWmwMFrTeKWwCTgVU3GBkFwpTAleCQP14CkFdyr8sDINV3xVf6tBQCmClBWCY8t9wMeFPEiFlDbnbI0ziWyVI64KZWsKpUYbYv/9T0wtRXw98mWndUqDkWVtcPc4qQt4gNuaYSUALqL41yLJsBSNsbQspvQ4rTiCVI8clFiVojWvSpw2ilxjU7FdsFp4VrRLt2w8SOFvglOmG08KlWgPw4bYkOEXJSTsMeJHCpj4PnkrRS5pqihGIVYFVmqV2w2il4gjJoB88TJPCHLbRk1pUYONeANGONagIB74gqYhSdI+pJH0ZMFgYhr6sp+yTiZrwKq20NNwa5HjLIYwse2i5UrQ+GHjKDjC2S2jH2WwiZRwNrG4Witt4YCUiNKbwyHrkhJgYkrDA4FcnxMTBaUI642jhbSoOKgKwNRXjUnIM1jCpJbt0GEFipld+mStFKiRilTvgJZCKoANi3TrTIkswKcyKy1ApgBVuOJQWI6jpiZJAXJFUEtgtIis9Msx8cNopzxKF64iS8KgyEdAcmJMCHem9RtthtABXeltv18MHEnhU2+E0OSYlaXjPVakYQq0lfDCxaoK7Y2vC2VPhjaDF3E1xtFO4Y2oDYjwWy4Xelja8LvTOG14Wiu+NseF3EV/hja03QY2kh1B442xpoqK42kBsqtK0xtaW+mnhhtHC2I17Y2vC16Nehx4k8Nti3wcSRBVEIYU7jBbLgWmzFNsRNeAKMluyioyYk1ygp8WHY/PJWx4XHG0NYq0VBw2rRVRtTG0tEJhtVtBXFXfPFXbYq7FXcj22xVcHPfAq/4O4wMlwKjrX2GKVQfhkWYab2xtBWqW79MKHbV6YqqI4p0yJDYCu5kmgwUydU1rTFX//V9OEE9BiwaCV69sNrwl32Qe+BaaLVyVILW2AoC4FR0xoptx4k74EtgDFQFoWh64qV1AtTihaaHFLioqPDFW+FenTFacVoMILEhaUFKU2yVopZ6APsMPEjhXegtOmDiTTloCRvv3xRTgAuwwEshFzKCNxjxLTXBOvHEyKeELgo8AMILGlwA47AVwFkpmNC3IjfHiY8IaaJD02OESUhrgAaGmStjTRjLDYAe+G00ta3NOuIkxMVH0SOvXwyfExMVhFDuuStgQ4EV6GnyxULvgPiD3wJpaAK7YSildFFNup6nIEtkQvKAilBkbLLhcsagHpiSoC4QioPTAZJ4W2jalB0xtPCp+mVJJ6HDaKX8ErvgtVjqrbDYeOEWghUCxKKAVIwWUgKbx8vDDaCFwtIK147+JwHIUjGFzwQ03UDBGRUwCg8EfbY5aJFgYLFgUGvUfjjxI4XNGKeGESUxUmgr0yXEwMGjEqmhOHiXhbACntjaab4BgSMFrS0xN4bYbQQpvGR16+GEFjS0Jt4ZK0U6gG1cUEN+mp3BwErTYjXxONp4W/RT+bBxJ4Q4hR3xVaWQDwwgK0HOGkO9VhjS8TfrsR0x4V43eu2NI42jMx7bd8NLxLeYJ3xpi3RfDbFVpCfy4bRQWmNCfDCCtLTHTDbGlhQHww2tNemO+Nopb6a+Jw2rvTHjjauCb742rYUdsVdTFkAuBGApVBTrtkWQVFZQCQBXwwUya9TfoMaUFolSOgxCdmggrXavjhJQAvAU5Hdku4qNxjuydXAh//W9OBx2NMNNdrga98DMFo4qWiAaY2xU2AXYfCPHrkgWBDlJ7MGGEoHNsUrkC2NsjHZfvwimJU6srfEemSACLXgqR12wUkF1U6Vx4U2vFKbZFVwOLIFpqHFStKjthtjTRBxWm+LHAmmgp77YbRwt8aYFWk7dMmi2lNe2K8S7I2l2JKttTjgVbXY4QgrCDIcmxXqhUUwWycVr1OIKFJkNaAVOStFLghpja070z36YLQQsENRU98lxIoLvq0fQCmPGU8LvQoaqcHEngWksDTCFLW1cJYhes3I8enuciQyBX8qbE4E2uBU9KHBRStKVOG0LTEw6HHiWm0U/tfRiim+C1674pAXgVyBZguZRhDEhRZAP2voyYKC4RFtxSnjhtDfpIDVjXBakKbIO2StBCm0ZO9ATkrY8KwxnuKZIFHCp8itRTChcHNRttjSuKqevjgQQtEan3w2jhd6KHxx4ikRbMFB8OG08LRRu+/vjaCGuB8MbRwrSntXDaOFaYmOEFFFr0Gr1pjxI4XeicbXhWshGEFBitNfDCx4S754UU4jFVtPfFLRLYULanGlbq3jhCtYVaqBihojFWgDirdMVp1Dilvgx74rTXpsMbTTY5dCMUN74pdyI7VwJbDOdgN8BSF4DE0pgtmAuMeC002kZPUYLSA36e+Npp//1/ThRD1yTCg7ilKdsBSuAFMCWipPQkYqQt4t41+eKKaoR2+7DaKcFB6jAtrq70ofnihorXvhtat3DtXG08LXoDxw8S8K4R075FPC3w98VpumKadQYrTXHeuK07FIbxUhaQT2xYOKjFFO4g4bWmqHCpao3bpkUt8SepxVpkNCMIQXIpB6YSVC/IqspQ5IFXVI7bYkpa3yNrTitevTCCxpb6fauStFLgtNq1OKQ4A1yDJxWo3yQLEhaIkrk7RTjFTpucbWmgxA+JcCFM0rsTkgFbSdgadcTFQVQyq+335GqTamVABwqtHINWu2SKFQF6+I98iWQVRWm/4ZFko8QzkE7VybFc4VRQbnAtKYAJ3JwoXMi02NcbVbwP8ANjaKWtEx/bwiSCFpi+HZt8lbHhWenJXDa8LXFgdzja8LZ8fxwsXAqTscUhs08d8AZW1vSuFebt8UELeGLGm6HtitOp44q7FCw9emSBStNPDCCgtcVPUYbY0704/vxteELTGnhjaCGjEpxteF3pJh4l4GjEPCuIkpgpmHfJcTHhb9Hxx4l4WvRYdseNeFv0tsHEyEWxATsMeJPA36DDtjxLwLvQb6cjxLwLhEwFKY8SRFv0h4YOJPC70RjxMuFxQDalcHEjha4ivSmPEinBRhtk3t0xVokdsVaB3rhV//0PSxcVpTbLGq2hKFGwpjwoBXLMO+AxSCvEynvTHhZW36ifzYOFHE7mvjgpbb5CmCltvDS26oxpILq40m3V9sC26vtim2wCdwDituofA4rbdG8MUWlPmO/wDqukXUkdwIZ0C8SCvIEsB0PzwgIJSZfzJ0c/8AHtcj5hP8nwb/ACsPCkFd/wArH0jvbXP/AAKf5X+V/k48KeJ53aT+Zh+e9zGJ71dNe8RBCJHMHpekWYcalQhPtk5DZqxmyXtGo3sdhYzXkykxwIZGVaciFFaLWm+V022x3/lYujVA9C5qTTZU/m4/zYeFbCYaL5r0/V7praCKWORY/UrIFAI+HYUJ3+LAQtpyQfDAxbofDFDqHwxVrFWmdVUsxAVRVidgAO+KoWy1jSb8stjeQXTJ9oRSK5H3HGlRVSain04q1xxVdiq1hvilbUA0yYVeK0yJQtNe+EBXChNe+FLTmgwsStCVFSTja0taPfbCCpDvRPj9GNsaa4EbHG0tqi1rU42mlxVR742mlveo2xVvk3TApWFO+G0U7iR0NcNoWkPXbDau+OtMdkN/Ecdktd8VdhVpq9sUO+E9RihaeBxBQt+DwyatHjirTNGiszGigVJ8AMBTEXyUbO9s763W5s5kuLd68JomDKaGhoR4HG2UokGir9MbY01yxtBCncXcFvbyTysEjjUu7HYAAV74krAGRpLvLfmfSvMOkrqencxbPJJFSQcWDRNxYEVOIDPNjOOXCU09SKngThprJWkJ442imiF8cIKKa4EnbfDYWm/TfwwcQXhbCHHiWm+D+GDiTTQVxsRXHiWnen3OPGvC2IxgM08LZT2wcS8LqbYeJIi1THiWm8HEmnDDa07Da00dsUU0WAGKrSzeOJKGjkUU7DaKaJqMbULcmCloncZJX//R9KmJvCuW21Ut9GSvTDxLS703Hvgtaa4N4Y2rRjbrTG0UtKMD0Iw7Ip1XHjirhz8ThoK7kw/aI+eCkrg7DviQm16zEHepwGKgrvXXwyPCtvD/AM3PMF/ZecjDbahcWq/VoiIYp3jU1rVuKsB/ssnRaZTNlg7efLtaq3mCUMmxBvnBJ8P7zHhLHjK0efL4gf8AOwTUPU/Xn29v7zBwpEyh7rzLHflhPqf1l5RxIkui9VHahfHhWyprd6epqXXbZf3rbn3+LBwlfEXC904bmdTTc/vm8On2seBj4hRMfmIR3hu49QaO5O7Ti5YP4btyr9nDw2mOSl195vmvIPRutWlmhYgmKS6crUdCQWw+GviFAfpHTBubhNj19c+P+tkfDUzKIttct7WYT218YJlFUljuCrAkEbENjwJGQo7/AB1qtR/ueuCT4Xj0/wCJ4eBPEWv8dasAD+nrkEGh/wBMf/mvBwrxFtvPWtcSRr1yPA/W36f8Fh4UHIzj8sPzssEkbQvM2oAAMfqGpzEmvf0pX35f8VSftfYbIyjTdGVvRb78wvJK2cx/S0MgZGWkQaRviFNlA98AZEGnjH5X3+k+ULrVdSlmBufqbrZRmFvjlqCqnhU9viyRkCURBAe8eU/M1l5i0SDUbd09R1UXUCtyMMvEFo27qd/2v2cr6sqTmorTJUha1K9cFK19O2GkuPHvhVwdR3wEFXcgTirRemGlWE1ySLXK60pvgIW1xYUqN/bGlWl2+WKrTyJxUhrcYUgNlvHAlbXCxJdUDFi2DXFmGicCC1yOLG3V3xQ6rHvhtVtCOuStLXIg79MbVsMuRtUu1nWYbFRGgEl44+CPsB/M/gv/ABLAZKA8nvfOXmmK/njXV3ASVlVOMWw5dKccnHcW0TO6kfO/mwhv9yz+3wRf805JjxIe380eYbaQNFqsoJBJ5cWqfpBxXiXXPnPzRNbmCXVn9OUFZAFiWqmoIqFr0xSMpBsIbRvMes6Hpy6dpeoGC0iZnjiCxsAXPJt2Bb7RxTPNKRs80ePzB82cj/uWqKd44a/8RxphxlY3n3zY6qDqxHLrSOIH7wMFLxlTufOXma5sZLW41ATQP8LBo460rt8VK1wkWoyEGwh9H8za3osEtrpt4sEDu0pj4K9ZH+03xct2xplLNKRs80dF5983pTjqfLkKnlFG2/tUYsfEK7/lYPnUCv6STc0AMEX9MFJ4y4/mF51PKmoq3EV2gip0+WFfELKPy+8069qusTW+p3azQrbmSOMRpH8QcCtVFehwFMZG3oBcUyNtyFs7uWa4u45AFEEiqg6mjRq25Hu2ElF7oqoyKXVGKuLDFVpbCrRceOHhVrkMaW2ua48K27muPCtuDjGkN8gemHdNtVrjurXLbtjZVpmxCreWSVrkcUFrFDVcQruW+HiV/9L05y9sm1u5eIwFXGhxVbTGldQYVd8sKuIJ69MC0tKeGG0UtMbeGG1poxnDa0tKcRVjQeJ2GNoSy98yeX7JS1zqMC8dioYOa+FE5HGwrx/8wPO1tP5wgu7HTry7t4LFreRxGqUb1udR6jLVSoy7HkiBu42XFKRNPOtJ1+Wzso7ebyWt5KXlcXDiDnJzkZ6nkjHYN/NkjniowSoBCW+rSx+ZbrVm8nK9tNbx2qWdIOKSI9S4+DiS32dlweMEjBIAphda8Z7i09Pyd+jzZ3MVzNcQi3LhI6kj4VT7X+tiM0UHBJkX+NlJVf0NfcmFQPTi6D/Z5MZ4NfgSKyy85QpbKraNfkl3AYRxEEs5O3x4DmjaRp5UoXvm23dpz+h76noNExMcWzFgez+GP5iLE6aRVv8AFmnFuJ0W/rQmhhj6f8HkhqAv5WSna+brKNX/ANw99SaQvFSGPcFR/l+2A6iKjTSCWeY/MlteSadLH5fubuKzuWkuLeeKJUflE0YHxFwSGcHpg8eLKOCQKW6zrEF5pd5aQeSfq08sLIswS3rGWBAf4UB29sHjQT4E12laxbwWFpayeR/XmjhRWkKWxLlFAL/Eld/fEZoMjgnfNUh1T/cFrtpF5fubaXU3m+qwQxRGNDJEsaryUqPtKa0XD40GB08zTHNC8u+YtP1fTJUsZv0fzBlBFTbuq1NaVojncA5hznYc7HGnr9hqUtOJJBWnXrmPbkBN4b3kBU7+NcKkK3lbWJ9E8w3l81lPcWtyhT9xJGOTVHEujsu6Ubif8rJxlQYcLMP+VlQU/wCOPe7f5Vv/ANVMPiBh4Tv+Vl25/wClRfD6YP8Aqpj4oXwnD8yLev8AxyL6n/PD/qpj4oXwy5vzItyf+ORe/wDJD/qpkvEivAWx+ZFt30m+H0Qf9VMfEivAVw/Me17aVffdD/1UweJFeErh+Ylt30q++6D/AKq4+JFeAt/8rEsx/wBKq++6H/qrg8QI8Mt/8rEs/wDq13w/2MP/AFVx8QJ4C2PzCs/+rbe/8DD/ANVMPiRXhLh+YNmf+lbe/wDAw/8AVTB4kV4C2PzAsq/8c69/4GL/AKqY+KF4S3/j+w/6t97/AMDF/wBVMfFCeBo+fbE/8eF5/wABH/1Ux8QLwFr/AB7YjpYXn/ARf9VMfECPDLv8fWB62F5/wEf/ADXj4oTwF3+P9PA/3gvf+Aj/AOqmPiBPAWv8f6dXewvvn6af814+IGPAW/8AH2mn/jxvf+Raf814+IF8Mtp570ok1trxKeMa/wAGOHjCOArj520kn+5ut/8Air/m7HxAjhLX+NtKB2iuf+RX9uHxYo4Sv/xxpQG8Nz/yK/tx8SKeEpXL+YF0LidUsZDAVAt3KioavxFhXf4dxlZyMhFh3mTzLczapHaQLPZ2twvK91RlVpgBUFYkr/eN/vw/DH+yuRjKymQoPL79fL6ReZ7eDS7hzcyTHTJJLSWVyrQhVPqlSwPqAmpb/KzaYZxEaLrs0JGdhFQ3fkQRxiTy5NzCryP6NY7gUPbxyZnBr8KSD0qfyZCl0Lvy/M7PdTPATp7vSF2rGvTbiP2f2ceOCnFJfb3Pk9de+sJo0sNn9UMbK2nyAGX1QwPEI37H7WEZIsTjmmF3qHk028ippjcyPhpp0o7+Pp5LxYI8OaodW8iVr+jyP+3dL/1SweLBBxzQkeo+ShOhfTyFBmLE2EvRmBT/AHX4Y+LBfDmvvNU8jNbSrHYnmV+ECwlG/wDyLw+JBPhzVf0p5BJr9S2r/wAsEv8A1Tx8SCBjmk1ld+RkmvzeaVLL6l1I9vILKYj0SF4gUUUoeXw5EzgyMMim9z5F/TaSfoiYWP1ZlkT6nPT1ualTxp/Jy+LETgvBkXajdeSZI7b9H6TNFKl1A7t9TnUeksgMoJI3HD9n9rESxqY5KZ9+WvmfQtL8wawtjp7kX0NsLd1iNvvH6nqAGRV8UJplGfJHo3aeEhzelN59pT/cbKT3BkQZjeKHM4Cg4POZivLq4OmyN67IygTJsFjCGo6dsfFCPDkzGxujdWcNzwMZmRX9M7leQrSoyfNirBxTqMaUF3PDSkrSxxpBaLYVWlziq3kcKu5+OKHcjgS7mfHCttFz4/RirXP54q7meldsaRbRfDS2t9UdsICLd6mPCtteoRh4Vtwkx4Uv/9P0h9YfLaaW/Xf5YeFXeu3jjwq16z+ONJbErHvh4UW4zsoqx4jxOw/HBSbS+880aLZsEuNQhRz0jDhnNP8AJWpxoMeJJbv8y9DiD+iJ7gJsWVOC18AXKk/QuOzLdJ7n80dSccLOxjhciv75zJwX+ZuPAf7GuAkLwlJ7vz75nuWBF4YYifgSBFRpDTsSCwT6cjaQEnu7+9uWdrm6llb/AHdK7syr/kICftYCWQih1DLxVECsBWKM9EH87/5WKUNNHGwqQXjJ6/tTP/zT/n9nBa0oPaqWerAOBW4lGwUdQi/5/wCVgQpfVB8BVAGpS3j/AJR3dsUtfVIgu45Qqdz1Mslf6/58VxQu+pkllLAMRWdx0VR0QH/P+bFQG1tmqhVeLH4YEp9lf5iP8/5cUrGtUAO1YYjuepeSv47/APD4sW/qRPJD9t/inYdFX+UYUgNfViT6oFGk+CBT2X+b+P8AwOBabNogHSsUHTxZ/wDM/wDBYopv6hUiJ92f95cEeHYfLt/qriq9Laqc12eY8IvZfH9bYCkBVEEMdWUfu7cUA8WIw2mkRbRMgSIn4z+8lPvXp9+ApRHMsvJqO0r0jBFaDx+4VwUm1dXhXm1Cqx9SN96VpQ5HhZAoqKVKhQwLEV49DSuKbRMcjDr9GAhKus46UyBCCvV1PhjSrgwHhjSF1Vr2xS3QE1xpWyfAY0ri46HbBS24v02xVxcg0AxV3InxwK3ybrTfvgVcCepHXCq0nsBuMbS2Q1B1wq6jdxirhy32xV1SNqbnFDRJA36eOKtqCy1p1wrS4J4jFFBTkuLSI0eQBv5Qan7hiIkoNBDvqQp+6iJ3pyf4R925yYxljxISa5upK8m4Ab8UFNvmd8sGMMeJDyW6nelSw2Y7n7zkqDElDGI0qdwdmwoIWG3alPD7J8R4Y2ilv1XwNFY1+nG1pY1qxPIncfCflimm/qrmq19x742tNC2NN+/68Fopr6sw69R1wgrTTWxI2O3bCSimvq7bD7t8bWnLCwqKVJO4ONqu9HerD4um/fBa0u+rg9uhw2mkTbx8eYPtWmC1CKDSrTix+/Y/24KDO1wnJJDAH36ffTHgTxKbPqFWEV/cRRtsIlIYKPatNssEyOTUcYJUVtb5hQ6nJU9mUD8emPjS7gvgjvRFuuv24b6vqc6q3XhSn4HIHNLuSMI70Rb6n5mt5RJ+lppOP7EoV16d1ORGUsvCCL/xR5oPW8i9v3CYfFK+EHf4n8z/APLXF9MC/wBcHilPghr/ABP5or/vXFT/AIwL/XHxSjwR3t/4m8zf8tUR/wCeC/1x8Yr4I72v8SeZv+WqE/OBf4HD4xXwR3tHzL5prtdQ/wDIgf8ANWDxivgjvTmy1TVZrWN5blfUI+IrGoB++uUS1EmccIVWub1lNbtx/qhB/wAa5H8xLvZ+DFU0Kad5r9ZZnm4SqI+ZrxUoDQbDvmdpshlHdxM0QJUE155ktTueKtcjhVqpxVsE4LW3/9T0VRa7A5bbU2DthtDq1xtW6YLV5V+c/mfXNMS3j0fW4raK4SSOe2REkkDJSp58uSHfpTAS1E+p5W3nDWpggur95SCSQ5LAkbAnkx6DI0WziUh5r1GkgFx9pvjbiAaV6LQ7bY8PmnjLl84aly5GZQQv7peI4j3pXrjwp8Qr28z6gvGM3FVryc8RVjT9rfBwr4hbXzRqTiQi54yN8NeO6rWnw77YOBfE8lx80agsvH1xxiX4F4ClT3Pxb48HmnxPJYnmrUWVUNz/AHh5THgKnatK8unbHg80eIe5z+adTAlmFyOQHFBwFAKdhyw8PmnxFh803XKNBdDgoLEGMVZtqcvi38ceHzR4nk1/im+KPW7XnI3xsEFQtaUHxbbYBDzXxT3NjzXe8uXrp8C0iX09hXvSuHh80DI2vmi9CIhuFKk8pSU3JpWh3wcA71OU9yofNF+VaQXK+o5IrwFVUDbjvjwp8Qt/4oulkUfWF9OMVUcBu3TffHgXxT3NL5ovDGAbhayNWWiCtK9OvTHhXxGx5pvCZpBcJyA4xDhsBStevjjwr4ionmG6rEhuVKKCx+AVLCnXf3x4V8XyXJ5gvJI243K85Xp/djYVpTr4YOFHiFuXXtbE5EMkDFCkSh1IHxhmJ25fyYCyEyrx3XmMxxj6zaUryaquST1328cCnIvN75jHqn61acjt9l9hTttjunxAq/W/MYkX/SbMBFoq8JKdvpx3XxFovPM3pgG7tKM/I/u5Kn4sd18QLjf+ZQ8h+tWgJUAfBIaUrgT4gcupeaF9JVvbYBVNBwkp0774r4qFbz1q+j30Lau0M+nyzenPLEHDxq2/JVPw8V/a/wAnHhtMc1ml+s2MVxr2oXtx5dudZt7j0TZ3UBRk4LEAwFZU/a/ycyMU4gbtWWEidkjvdBebVtOntvKN/FYQmU30Pwgy8lpGKetvxbfMjxcbQcWVV1bQPW0u6hsPKOowX0kbC2mPEBHI2NRMenywHLjQMORFW2jWyWsKS+TdQedUUSybfE4UBj/fdzg8bGpxZUJpOhTW8moHUPKeo3CTXLSWQG/pwFQAn98OjcsfExp8LIjbfTHTUTJb+W7+zg+pzxMHQvymcqY2A9R/sgN8WHxcaDiyLNN0eIWdvFd+UdSa4SJFnlox5SKoDN/fD7RwHLjTHFl6lB6fod5Deag115V1KWCWcPYp8X7uLiBw/vdvi3wjLjQcWVu90K/k1Owlt/K+px2MRkN7B8Q9QMlE29X9lsfFxKMebvVdT0a7l025isfKuqQXbxsLeX4gFemzf3x6HD4uJRjzd6KttKpawJN5T1Z51jUTOeW7hQGP993OQGTEnw8vehLrQNYk0xIV0PUwv195WgTmkotiDxX1BJ2NPh55bHNhHNicea9ig77ytqTaZOln5f1yPUGU+hK9xMURuxI9Y1/4HDLLg6Moxz9SmcGlzJDEsvlbVmkVFEjAyGrBRyP993OV+JhYnHn70Ho+lX8UNwuo+W9Xmla4leFlMh4wMR6aH96PsjHxMTLw83eqw6Lz18y3nlzXf0P9W4pbwSTRuLnnXmaTD4eG32sicmLozjDL1TVdL0lLzT5NN8u+YLaSK5Vrp7t55oTBxYMpjaaQMeRX9jBx42RhMhNtTLTzejp8EltJEgZ/rCSRKpDBh8NRXkBgOaPINZxz5lDwzeYImXi9uaDYt6h+ffKyLT4pCoup+ZlVTztRU/ytjwr4pd+lfNPxnnbH+UcW8K48JZeN5O/Sfmv4avbe+z74DEo8YNHVPNXpseVtsaDZ/ltjwp8Zr6/5oJofq3TcUbHhScvksi1PzMXX1mtxGepUMWr1HWm2SEGJzeSJ+v6uWaksR8AUPWnzw8CPFLX17WQF/ewmn2vgP9cBgvilo6hrQr8cNR0+A9PvxGNfGLf6Q1jkKyQhT/kHr9+PAvilr9Iazx3khqPtEqen34eBHilpr/WKmkkQP7HwH+uPAnxStbUNX2PqQ8f2vgPX78Hhr4pa/Ses0PxQ1rt8B6ffh4F8UtnU9XqPigp1Hwt1HXvg4EeM1+k9a415wV/a+Bv64eBfG8m11jW15ANBUfZHFv648C+KVzazrpK8Wh413qrf1wcC+M3+mNc6MYOVd/hbp9+HgXxW/wBL64K0MHT4fhb+uPAnxXfpnWqDeGnfZuv348C+K4azrgqawV6nZumDw18Yrhr+v1+1ER+zUMa/fg8IJ8cqcmueZA0ZjitnRfthi61PgaA4DiXxykt7+dXl/S7mWx1a2uRfW7mOcwRhouVK/AzOCdjkfDLkRnYUP+hgPJH++L7/AJFJ/wA14PDLLicP+cgfJHUwX3/IpP8AmvHwyvE3/wBDBeSP98X1P+MSf814fDK8Tv8AoYHyOTX0L7/kUn/NeDwyvEHqnk/zBZa75cs9WsuYtbpS0YkAVwFYqagE9xmHkiQWyErCecvDwytmraEQLvUVP88TfembLSfS4Gp+tOPh8czQ0tbeOFWiQO+BLXIU642hoEeOBX//1fRu3t92WNK2q16YFd8PvirvhrtiryPztqHkzSdfuRrklnZXFwxlQ3KorOh25gkfF0zGyA23YyDskI82/lV/1dNL++L+mV7ttBcPNX5WOKDU9LPtWP8Apg3TQcfMn5XGn+5DTPpMX9MbK8IcPMX5WHf9JaV/wUWG14Wj5h/K7/q46UK9+UWNp4F36e/Kv/q4aV/wUWNlHC79N/lZT4dQ0o/7KLBa8DY1n8rKf73aUT/rRY8S8K4av+Vlf97tJ/4KLDZXhC79LflbX/e3SfnyhxsoEQ2NX/K3/lu0n/g4cbK0Hfpf8rDWt7pO/i0OC14Q1+k/yrp/vbpIH+vDhtPCHfpL8qD/AMfukf8ABw4bRwhv6/8AlVWv1zSNv8uH+uNleENi/wDypJr9c0in+vD/AFxJKOENfX/yqr/vZpFf9eH+uNrwho6h+Vf/AC2aSP8AZw/1xteENNfflXwbheaUTSnwyRV/XiCVlEU8R/x1f2d7dWlusMlrDcSpCx5t8CuQu4bcUzYwxAh18juiofPupPyHpRHl12f5eOW/lwWHEih501djX0IunQCT+uH8sE8a5fOepHb6vHtvWknjXxwHTBHEuPnHUSSfQj8NhJ/XB+V81E3DzfqWx9GPbYDjJ/XH8r5rxpp5VeDzHrcVjq9vG9pR5WUGRDyAAHxE++Y+oxcEbb8FEvVrfyxotnZiC0mnggiUrHGly4CjsAKnMK3M5KdjdSFzbXBrc29A7dOan7MgH+V3/wAvlhSmAlFD74oXrIcVXJP2IrgWmzcrUVNB74rTRv4lYBmAG/fFaXPfQ0DBxU/LAtLF1FQ9GIp0BwJpVW/hJpyH34rRWm/QkgMKAb74rTZvohvyArv1GC1pqTUYwh3BNN9xja06PUYyCAR7bjCtL0uot/iArhWl3rx1FWrXYU3JJ6AUwJR2r6BNaWlnNcyyRXFxzJiRuIRQAQD4vv8AFhDEsQ8y2sWn6Hf6hbScrqJDKObcwxqK1HU1GWwu2udU8wHnjWBT9xbmnT4ZP65ncDr7aPnbWCB+4t69fsyb/jjwIto+dtbqaRW4rt/dvt+OPAkFy+dtaotYoHC9Ko/8Dg4Ftsed9YANYYADufhkH8ceBeJUj8+6lUco7Y0H+X/XAYM4m3p+n3HlWTyzod3fvZQXl5bvJMHlVWLGZwuzty+yNswjI3TmCMatUD+S6/70WX/I2P8A5qw3JeGHk4HyYynjcWTAbAiVKbbdmw+tHDDybY+TQByuLJSTQVmjFT4CrYCZJEYt8PKFP7+zr/xmT/mrD6kVB1PJxr/pNnXoaTJ1/wCCxuSeGPktc+TVoWu7JR2JnQfrbG5LwhsjyeaEXNmQe4mQj/iWNyTwx8myPKFafWLOvgJkrT/gsbkvDFaR5QA5NcWYVdyTMlPxbBckcEfJ1PJ53E9mQe4lTp/wWSuSKj5NV8oA0FxZhvD1krT/AILBck8MfJph5PVam4swOpJmQf8AG2NyXhj5NKfJzDktzZsOlVnQ/qbG5I4Yt08n/wDLRaVPQGZKn/hsfUtR8ncPKVf7+0r/AMZk/wCasfWvDHyaX/B53+sWZHSvrIf+NsfUioNcvJwIBuLIHsDMn4fFj6k1DyWtJ5NA3urMAf8AFyf81Y+peGLyr897TTb7TNH/AEE0N0yzSmdLWRHoGReLNxJ+/LMPFe6ZcIDx0aBrPT6nLt7Zk008QcPL+s9Pqclfl/biniDX+H9aPSzl+4f1wUvEHf4f1v8A5Ypfuw0vEH1J+SE4X8v9PsZCFvLT1RPb1HNA0rsvIDpyG4zW6kHibsB2Pvegh/vzHb1XRWA1C/Feqwt+DDNjpD6XB1P1BOua065l7tDRYUxStJHjitNcl8cVpoOK4Vf/1vRQ33ybS3hVrFWiK9emBXy1/wA5TRrP52tI2Ab09PjoG95HO2XCNhx4mpF4RNpkdSAAD7YPDb+IojR9Mpec6qypx/Fqd8HCAVMjSZzQr9SmAQE8P5R+zCxOW8IabNrorOGOwt1MSsWiRuVB14n/AJqyMQGUpG0MLW3bUg3pr8KoAOI7sckIhHEaU72K3GnykIvLiQCFAp8Z9sJiERkbZr+TP5d6N5lsdSur6KSVoZ0hhCMFH2eR6g+ODHp4S5ss2WUapm3nr8lfK2jeTb3V0SRZ7cwmNXdSvxzIhBHHwbI+BAHZgMuTa2Zw6PpCQLGtjbcVUKv7mPoPoywANc5G1HTtL0r6zqBNlb0+sAU9GPtEnthIDGJNMb/NzTtMh/L7VpYrOCOUCLi6RIrCsq9CBXISqimJPFH3vmPMN2bMfyxsre485aGssSSo9x8aOoZSArGhBqD0y2ADVM830suh6JX/AI51p7fuIv8AmnMkAODZS3Q9G0c6ajfULY8pJjUwxf7+f/Jw0EAlKta0bSW86+WkFlbhCt8zqIowDSFaVAXelcEwKZYzuWS/oHQyP+Oda/P0Iv8AmnHZBtL/AC5o2jfosN+j7U1nudzBGTT6xIB1XBQTZoMG/PjTdMh8v6Wbe0hgdrtwWijRCR6R2PEDIkAs8ciJPUPy6sLNfI2ggQRD/QoSfgXclak9O+V2me5YD+e8MEd/owjRErFOTxolfiTwzIwcmrq8yQkftCvs5y9krrNtvx/4M4oVFlQmnJQf+MhxSvDddx/yMOBUs8w3U1vZLPC/F4pAQQ5NdiKEZj6mNxbcBIkhbTzdVAXnKN0IJIp+OaiWEuzE2V65+ZQ1Xy5Y+ldtHrllN6UskTsrS27KaMeJFfiC8v8AK+LMrTQ33aM8ttkrh8z69IARqF1Sm/7yT/mrM/w49zh8cu9WTzJr/bULr5epJ/zVh8OPcx8SSw+bNaUkfpK5quxo8h3+hsHhx7k+LLvZh+WPnHQ/rupf4t1RFi9KP6mL6Rqcizc+HIntSuYmoiARQcjDO+b0NfMn5Skcvr1ga96n+mY9NtjvbHmX8om2Ooad4Ecjjw+Sb81w8x/k6SFOo6by7Ly3+7GvJbXjX/yhFSL/AE4e9SP4Y15LfmvXX/yiFf8AT9ONepqf6YDHyW3DzL+TXLidT0sOP2S4r9xwcB7k2u/xH+TxFf0nplPdxjwHuW/N36d/KCtf0hpn0OMeA9y35t/4j/KHtqWmmmxpJWlO2AxPcniRNn+Yf5PaJN+km1KxD2itJGkR5SswX7Manq57ZUQTyZgvNfMnnO48+al+m9Sv0t7aK4hj0jREY14GZd3Heo+1X7WZGCB4g1Zcg4SAyTzzpdjHoE0kMCROkikMihTtWoqMzzEOuhIvMiSd6/8AD4bQ7w/5ryQFoJA3LiCKkggePI4Tjl3NQzw7w6oAG/X/AC8g2orTArahaBgGQzxBlLcgQXHbvhgN0T5PTP0fp5be1goP+K0/pmSQHGsvGrG0toPzdkCRqqx6qojUAUUFjsB2GY0YjicycjwPfo0hNCVX7hlhaRLZjWjKiDUFAApqV6dgO87H+OWR5NUuaR/mIqGPy8xAPHWLc1oPfBLmzgTwy9zLSqVNVH3YXHtKdAWPlqo4j/jo3FRQdwh/jhplI7sY/OWCN/LNoSo2vB1A7xtleQCw5OCR3egeS7e3bydojcFJ+o2/Yf77GMhu1h0dpAPOUw4L8Wmx9h+zcP8A1xBSeiG/MG0hPkvW14L/ALySHoOwrjLkzhsUL5UWNvLOkniN7OHt/kDLSHHaWGP/ABXL8I+LT496fyzv/XAAk9EP57t4m8mawOA/3mY9B2IOQkNm3EfUEp/Je3ifyaw4D4buXt7KcIiAGOQ3Msi8xW0SS6O3EVGoRilB+1HIP45IDdhP6SmHopUfCPuGJRRpKfLUMY0114gcLq6XoP8AlofFTzK++ijHmDRDxG7XS1IHeGv/ABrgWXL4p20ERRgUXcEdB4ZA8myPMPGfK3kOTUdIS5SeONfUkUKykn4WI7HMSeYQNU5oxGScD8spa/71xD/Yn+uQ/NDuZ/lyv/5Vi9Km8j/4A/1wfmh3J/Lnvb/5VjMOl1HT/UP9cfzQ7kflz3tj8sZ+puo/+BP9cfzQ7kjTnvZZ5G0u68q/XOJjuvrfCu5Tj6fL2b+bMbNPjbcOMxNsqHmi9DA/VY9v+LD/AM05R4bkcTIfLFw1xczTOoRpYImKqagHkw6kDMzS7CnF1G5BZDTMu2imq74LSA1UY2mmiRjxIpwbfpthtaf/1+1eUvM2m6xYcbS/N/Na0S5laJoWqa8eSsOtB2xojmg0d0+EmHiY8LYYY8S8LjJtjxI4Xz/+a/lbWvNPmRtQ063jUIiwH60y1Kx16ca/tVxjnAKBhPMMHH5R+bCJfUgsieNI/iIo1R19qVwnUjzZeEVGL8n/ADetyjtb2LRApzCyMCVDVNN/DpjLURQMJ6q8/wCVfnNbcpb2tkSY5Iwsz8lUOpSg3b9lvtfzZH8xFgMBbl/KfzUVtVjtbQenCiTcpG+2Bvxofs5IZwEywm1Afk/5t5SSPaWXrMVCESPQIAa13+1yOD8yF8Eqbfk35se3eB7KyIKMFpM/2qfBU16cvtZL8yE+CWcflh5S1nypo9xaXtiv1ma4M1bOYemV4Kor6jcuWxycdUAiWEmk6882/mHXvK13o9nY/vZzHx+syII/3civ8XA8/wBnH8zFgcErCpBD5gFrGJbOk4QeoqshXnTfiSwNMrGoCZYCVK2tNeikuna0P72X1E4mPccVXer9dsl+YFsfyxpbqVhql9p8lnd6NDfQSEFre44MhANd6SDpTlkcmexszx4CDuwTzp+W195hgpp3lqwtb61EcCzRyfV4lCAExlI2HLirU5ZjRmerkmKC8pflN5v0XzBpt8+n2iW1qQ8zpK7yBjGQ3EM1D8TbVy8ZhTXLGS9VaHVhQi3JI9l/5qywagNEtOUHpuna3b2SQyW1JFLkhOJFWct3bwOH8zFj+WkgrzRvMM3mHStRSyDRWUdysjFlDqZlVV4jnRunxVxOpFUmGnkLTZItc5UNo3EHYnhX/iWR/MRX8tJAadp3mS1s0gayAIeVm4utPjldx1avRhXJDURU6aSQ/mL5R8xeY9KtbdbIE20jyuS6ghTGwqlG3blx+1+zg/MjkyjgI5oXyz+dPlfSdA0/Srqzvzd2ECW1x6cKsvqRDi9Dz3HIZZwEtcgxf8x/POl+bL2wl06G5hS0ikWT6zGEqzsCONGbsMyMII5tRjuxNWPv/wACMuQqAt/lU/1Bilurd+X/AAAxVeruPslv+AxVuTQtV19JbGwtHvbkL6ghXihPE/zE5j5yAN23EDa7Rvyc80HUoW1jy7eJpyuPrPpzR8vToalaBj8NMwDIU5gCb+Y4vykg0CCG30u4sLxhcmwnDytIZEbgwmDL8S+oPh5fs4cUpk7BjkApgdtJRRUD/gTmyi4ZR0UgPYf8CckinuH5VQo/k62NBvJcf8nmyiUmBG7zf894kHmu2XahsVP/AA74OY3bIbPX9KUfomyouwt4e3b01yQaSo6fEn+mniP96Zuw8RkmLHdQVP8AlZejMFApp11XYfzDIy3LZH6SyHWFB0e/qBvazdv8g4kMAmMdunox0UABV7e2R4k08hlhiH55MSopXwH/ACyDDQtmSeB6nqcEb6Rd/u1r6EvYf77OJaxyRMMEZtovhH2F6gfyjBxJILHvKiQx33mAlAeOrykrQb/uojTJEWE8iLeX/mymu3+ow3uqtEsPqSxWdlASyRIhFSSQtXb9psxI4qcvx+LkzDy9pWoSeS4Tb2M8xadJIzHEzchHMjNxNKGgGThkALVKEiz+7ez1S0khvbO9itQ6tIHhMRIFdvjpsfHI5M1cmzFgPV5x5hs/LFsI20a9uLlnPxpLHGQo/wBZKfRtk8eQnojJCIS7TfivowRUUOxSnQeObDSAGdOj7YNYPizrTfLVrf8AlrVdTkkdZbJW4RALxaicviqK98zNRnMZiFbSdJo9GMmKWS6ON5paO5hSprUDquaqQ3etx/SEdbXK288Uzq7JFIkjKiVYhWBPH32wA0WUhYZePP2jkk/Vr2n/ABg/5uy3xA0+DJj58gedv8ZDzNHo8p068uItQtVLxLK8DHkCVL/CzL+y2Yo1EQXLOCRi9EW719R/yj17/wAHbf8AVXLDqoFgNNJLLCDzLbteep5fuyJ7ue4Ti9uaLK3IA/vOvjiNXCkS0syUu816J5s1eLTkttBuUazvobpzJJbiqRVqBSQ/FvgOqgmOlkLTwjzEST+gLzc95Lb/AKq5L83BqOimg9MsfM9rJfM+g3JF1dPcR0lttldUWh/edarj+aik6OaWee/LHm7zFo0VjaaNLFLHOsvOaWALQKwI+F2P7WROpi249NKLJvLa+YtM8vadpk+hXDz2dvHDI6TWxUlBSorIDTInUxX8tJEWqan+n31O8064tLYWX1ZRWKVy/qmTlRHICqvi2RnqwOTIaU3u35pt7jU/LV7Y6dZ3VxdXlu8S81iijBdaKxZpPs/6obIx1gPMNn5WuqUaDY+Z9O0SxsJ9Dnaa1hSJ2Sa3KkqKVFZBmR+bg4v5Sdtmz8z/AKaF+NCuPS+q/VyvrW3Ll6nOv95SlMH5uCTpJ7Kev2fmjUdEvtPi0C4WW6heJHea24gsKAmkhOJ1UCyhppA2lv5f6B5x8s6HJp93ok08jztMHhmt+IDKop8Tqa/Dg/NRqkHSyMiU21WDzTe/U/T0C4U211HcNymtt1QMCBSTr8WI1UVOllSK9XzIP+meuv8Akda/9VMkdXBH5SaC0q380WcEsUnl64cyXE8y8Zrb7MshcA1k6iuP5uCPyk7XXlt5pmv9Nuo/L84WykkeQNPbVKvE0dB+88WyP5uNpOklSY/XfMnfy7cnx/f2v/VTAdVFI00nnlvoXnby15W1h75ZLNDKkli6PE4j5v8AH0r9quYs5RnJzIgxBYdqnm7zfb2plj1i45cgD9jof9jl3gxaoZ5Ero/NXm97NZf0zccmTl1TrT/VwHDEMfHlbI/MOu+YI9N0CaDUp4XubBJLhkKj1JNqu232sqxwBJbckyIilkHmDzGfIOo3g1Sb9IwagkSXLcWZYiq/BuKU3wHGOKmeOZIJWfl5feZ/MMV5cat5omtLeEtHEsSxPLzUA82T4f3QrTr8TZXlAi2RlZZUuk3qSqI/Nl5eEipj9H0h16c1ZxlPEGb1vyfG0EixFi5FpHyZjVieR3JPzzI00ubj5hyZOzgfaIHzzKtrpRe9sozR541PuwGC000t7aMKrOhWvUMMbC0tfUbFPtXEY/2QyJkGQionXdLBA9cGvcA0/Vg8QJ8Mv//QmH5GSrLZ60yspKXEcb8TWh4E0Pgd8nlNljEVB6ZLdQQ8PWlWP1GCR82C8mPRRXvldItV5b4aW3F9sC2wMsDK/jyb9ZzHPNyI8lC5llELmAKZuJ9PlXjyptypvTIsqXws/pL6oAfiOdNxWm9MWJC31Lj6yAFQ23Dc1PPnXw6caYpAVWc0biByp8IbpXCqy2knMCG5VVm4gyiMkrX/ACa/FTArriS4AQ26o5ZwJOZIAT9oigPxeGKq3MbV2p92KqSS3H1mUMqfVwq+m4J5E/tVHT5YrS6aWQQyGAKZgpMavUKWptWm9MNquSRzEpkAV6AsF3ANN8UUseW59UCNUMHpklyTy512FP5ae+BNJd5e+vC2uTqDRfWzcymT0QQnYDjy36YpTK3luWVhOioQzcOB5ApX4Sagb0+1htBbuZJ0t3a2VZJgP3auSqk17kAn8MbULxJQb7V64oKmJLj6068F+rcAUcN8Zap5AilKdKb4FCozkK3HdwDxU7AntXG1pq3lkaBDOgSUqDIqnkoam9DQVGFVt44FjOQK/A2/0YRzRLk+OppgdSuzUCs8p+0e7nNxjOzrZBExyjxX58jltsCrowPQrt35nCqopFeq/wDBnFVQMKj4l/4M4quDA919vjOFWdfk7v5qlNQaW7dGJ6svjmDreQcrS8y9ydgIm3oaZrnLfOn53WaS3dnfRQC2gRmhC9DI0lZHcqN0YMOLA5l6Y9GjOHnULgU6f8NmcC4pCLjmA+XzOTtFMl0L8zPNWg6cmnWCWb2sTO0ZlSQv+8YuakMB1OUyxpFMp8s+X7380UvdZ1W++oXNoyWSLZxjgYwvqVPqEnlV8x8kzE03Qx29Tg8q3EVtHAt5URoqBim5CgCvX2yPjlfy4ag8pTx+rS85eq7SGq9OXYb4+OUflx3oK4/LyabWLfVBqbJJbwvAIhGChEhqWNTWuPjFPgbVaLm8j3U0EkTakQsqMjER7gMKVHxYnOWI0w70bH5UugKfXaigH934f7LKjmLMacJH/wAqiQ+ZG199Wl9diG9ARrwFI/ToDXl03yQ1BZeAKpPpfJskts8BvSFkRkLBKkcl4169sTqCxGmConlKVEVBefZAFSvWm3jkfHKfy470BbflvLBLePHqj/6bO1ywMYPFmVVotCPh+Dvh/NFZaUHqvtfyR0vWtatJdYvpbqxtmklkswqosnKnws1S3HKpamRZx08YvRPNFna2a6fa2sKwW0ELJFDGAqKqkUAAyHVu5MT13iNKum41ohNB128MbV4JoWktq93NbRs4aO3muFCVct6QqFpVePKv2v2c2IlQdaRck9H5bayHCjUrCO6ST6v6QujzF2U9T6t9n++9M8+P8uShmo2GGXSicakLCvD5d/MBtGbTLfV4qXSwyXekJLGtysd03CN5SIw3Fjt9v7OSnnMpWWOLRQhAxiKBQS+Q7W2076w+swP6dzJaObblPEHiRWKhlo3ME8XXj8OWYRxk006zMMEQSxiGYOgI29i5yqQot+M2AUfAVIG46fznKZt0eb6IglQ6RotSBXTLXv8A8V5g3u7ADZvlFTqPwwrSFSKVbqaT6wGjfjwhNKLQUND742ghE+rGKVIH0jFab9WIioZfvGBaQgjmF1LN9YDRSABYTSikdSD/AJWG1IV1mjpQkD6RgtivEsRH2l+8YbZUg72Jnk9ZLgqixurQAgq3IdT7jtgtQFPRr+K60u2n4tGrIAFkHBvh+GvE70NKr/k4QWJG6O9SA7h1+8Y2mkPdxtK0LR3HpCNuTKpWjilOJr2wcS0qrKFFGZT7gjCChsTwH9tfvGBKneKs9s8Mdx6DuKCVGHJfcYpdHIEQB5VcgUJqKnFivNxCR9tQfcjCqjehbi3aKO5ELNSkiMvIUNdsFsgG45FVfikRqd+Q3xsIYh+b10ifl5q8kbq0kaIwWoPSRfDJwO6a2L5bfV7u6t3WXdCwNAo2p75nwlbhHGAUyt9YgWzSIxSFgnHYCnT54S1cG7I/Ot7Mvl7ylJCzqHsSDSn7PDxyjF9RciQ9Kpol2W/LTXHlDsY72Fm6Fjy4DBI+sJxjYqf5WIksusA/AGib7XYHft8shqAyx83puhKhhRgCobcBhQj5jMVvZ4muNauktqw5NAEd9vhoa9DksVi2M43SBu9b1C4Yubg79CAAfwGWmSiIQ8V1O0oZpWJPXc9MFppjOi3N23mCUSu7olxKFqWIC8TT22wsTzZb67Dv2wEsqXJOeJ3/AGT+rEckv//RZZajBbys+nXQtzIxJa3k9PkVNCTwI5EZXuyBFJxD5w80QlSmovKFPwiZUmFf9kpP44eIqYpvb/mf5hiUevDbXA7/AAtGfvUkf8Lh40GAZt5W8xvr2mS3bW4tjG5j4h+YNFBqDRfHDxMZQrdIdzU06nMY826PJSIo1D88DJeSB8+wxRTqCu3XEJXcT3G3uMJChoL1C4KRTqAHfqMUruJ8DTCtNItG2G5FcCuKbksOvTFVyqeNACRirVN6d8VQumgmO5YjY3M2/wAmpiVRaqewrTFXFfEb++KFyq3gd++JVpRuaDrirZUdwfbGlbHFQADsOgxKqOocf0fct4RtT7sYndjLk+NnZje3J33mkPQfznN1Dk6+SKiLbfaH0DJsCikLUp8X3DCxVlZuo5e2wyQVcGf/ACtvYYFVAXI/a+4Y2rOvyfD/AOJpia7W56gD9seGYWtOwcrS9XtkpPoNt2Oa4FzXhn598fR05qkNzAO5ApxY9OmZem5uPneRI3v/AMNmc4pV1kPY/wDDZJWpJjTc/L4sBQ9w/wCceJD/AId1Y13N6vev+6lzB1HNysXJ60rimUtjreL0lKh2epLVcliORrTft4YqvaPlIj8mBSvwg0U1/mHfFVcgMhBJFRSo64CUNwj041jBLBQAGY1Y08T3yBZAtlf3wl5tUKV41+Hehrx8cDJc8nKMrUgEUqNiPkcVWRt6cax8i/ABeTGrGm1ST1OKto3GZpBI3xADgT8IpXoO3XfIkJCKg1y4syDbRLLMxCIHNF37k9aDK2SaebNMQ2lrLdSNPcyMQ0lSoA414ooNFXJgMSWF6xp0CWMzJX4RUAs3Y/PJhiXheiatd6VeS3NrIkcrQyQVliLrxkoG2UrvTfNgRs4ANFGt5y1lbtrz17czvqC6xx+ryBfrKwi34/a+xwH/ADdgpkZL/wDHWtvBGGltPrkHpiC/NkfrAELc4/j5U+D7Iqv2ceFPGoap5u1fUo0tzJZ2Nssjy8La0MQaWUfvJXAZvjPjl+HLLGbHVw9XpYZwBLlEpHbqyIBUmnfiMgTe7dGAiKCYQepT9r/gRlM2yPN7t5StLefyLoDzRiSQpdAu4BY8bhgKk+A6ZhEbubA7I86XZnpEn/AjFO639F21aCBT8lGNIsuOmWw2MCj/AGIxpbLf6Mt6f7zr/wACMNLa39G2h/3Qp/2IxpbcdMtB1gUD3UY0vEXfou0O4t1p/qjBS8RabTbUVpAgIr+yKjbGlsqNnptsbG3ZoFqY0JJUd1GGltVGmWpG0Cf8CP6Y0ttnTLXb9wg/2I/pgpC06bbAVMCf8CP6YeFNuGm2h6QIf9iMeFFtHTbTp6CV8OIwUm2jptoKfuE3/wAkf0w0i1w0+zPSFPoUY0rv0ba/74T/AIEYgJtx0+1H+6E2/wAkY0EML/NePRIPK7RX06afb3sn1c3PEGhZS2wp/k4YjfZIGzxRfLvkS59O3/xOGdiEjVI1BJY7dBmSMsnHGMI6fQPJ2mTPYXXmYwTW54PE0Sll2rQ/CcfGkQnwBaa6va+UX8vaIk+vG3sYopIrO44BvXVSFYkFTTiRlcJkFJhYpAtaeXbfyBr9voepnUl5wSzMVK8G9RQB0XqFw2TIJjEAFL/yp2vdWRqb27Hb/UY5LUBhi+p6fpbHitcxHKKbSve+mq2drJdzHb0ohU08T7ZOLFDxWPnebj6fl2ZVYAN6ksScfHqd8bC279Ged6MphsbWVdv3tyHoQDWoQV2OFFqUPl7zcsnNtT06FWHJ0ijmkatNyGJp9qv7OSQbRsehawwQS60OQ6tFbjfan7bEdemNBO6ne6TLaTWrjUbmT6xN6ZSkQReS0+zxrt1+3hCv/9KJR6TfxPbepAT6Aui5FD8UzMVp7/FiJBrMT9iGEV7bWQHGWKWOwKCnKvrVBAFOr4dkm0xgv74amsHrOYjNFGVbccfRZn6+LAZGQFMok29y/LCg8usR+1cv+AUZGLLLyYD5S8v6BqEes32qW0c8tzrGocZZdyI0nMaqCTsq8egzN4A4IkeEbovydZeXojPdaRIhW4MnOJKHgqysF6VbttyzD1EKczTyJG7Ja7e/jmM5CQfmDcNB5I1idWo6W5I3I/aHcZPGLk15pVHZ5h+Umt3F75yihkjRFSCZyV512BH7TMMv1GMAbNemkSTar+fl/d2+u6YLeaSP/Q5HYI7KD+98AfbDp4AjdrzTILOPyemkl8jwzSuXeSedqseRALdKnwynMPW5Y+gPEdM1HU5PNNrEbqYxy36gqZHIobhduvgcy5QAg4eGZ4w9e/PvUbiw8kLPbyNHIbyJeSMVNCHJFRmFjG7fmJY9/wA496vd6lcas9zK0gihhVOTFty7VO/yxzABlivhNpP+Z+qahF5+1BY7mWOBBCvEOwUViWtADQZkYwOFxpzIL0+SeVPyle4Dt6q6OX9Wp5cvQJry61zGPNy8h2eZ+StVvZ/zcsrRruUwRpVoS7FWP1SpLCtPtb4yGzVhJMym3/ORWo39o2gG0uZLfl9Y5+k7JWnCleJFcMeTHLMgp9+QN3c3nk24nuZnuJDfSKrysWNFjj2qcjPYt0CTAPHdf8269H521K1iunWAX0qBSxNB6pFBvl3CKaYzNvefzavp7DyHcXMTFXjmtgCCR1kAIqKdcqxCy2aiRA2Yf+Seu3epa9eJcSFhHakgVJFTIviTlmUU16eRkDb2UEUym3ICG1IkaZdf8YziBuiXJ8qpfaFFIVk0WOZuTepM0jjkanfNgLp10uaFvZ9PlugbO2S2hVACgZjViSaktXMjET1YkNLwA/Y+85axIVFK1pRPvPXCELgy7fZp/rHCqorL1+GnzOKrG1m/0u8tp7G4e2dmZXMMjKWXj0PEjauY+eII3bMUiLIZBpHnLzJfarYW0mo3Qje5QMVmk3XeqnfcHMGWIByceYkpv+e8oa308GvMTNUjYUCsBk9NzZZ3kaknep29xma4xCsGNB1+VRk0IyDRtWurcXFvAXhatH5oOhodjlEswBpbe1/kJYXlnoOpRXKcGkvFYCobb0gO2YuWVlysXJOrD83NButbi0dLS5FxJMLdXb0+HItwr9quQMSoyRJpOPOX5gaV5SFob6CaYXnqemYApp6fGteTL15YxiSspiPNHeXPNtjr+gHW7SKWO2BlBjk48/3P2vskjftvgIo0yiQRaSeXPzf0DXtYtdLtbS6jnuuXpvKI+I4oXNeLE9BkpYyBbCOQE0jvNn5l6L5Xv4LG/imeS4j9VHj4cQORXcswPUZAQJZmQB3TKDzZYTeVv8SKkn1L0WuPTPHnxQlT349vHI8JumfEEq8rfmdonmXU206yt54pkieYtLw4cUKgj4WY1+LJzxGIssIZRI0FLzJ+aOj6Dqs2mXNrPJNAiSO8ZTjSQVFOTA4I4jIWFllETum2q+abPT/LY16WKR7YxxSiJSvOk3HiNzx25ZARJNNnEKtbpfmaO9lXhCQ3pJcKC6t8LnYHj0OQMaKiVor80fM948/lqOG6khilnmjnjhdo0Yek3GpG54kDLcO53a88iI7ML+u3/wBbSNr25uIncIUedmWhPUiv68yJQAi4kMsjJ5kwHI7gePxnMiPJiebR4EUPH2+M5IIdSIbfD/wZyNq2qpTenv8AGcbVE2MNvLeQRyAGOSVFdQ7VKs4BAp7YQN0E7PUh5F8qh/hsmArQfvpv+a8yTCNNMZS72daFZQ2PlbTbWAFYYpb0RKSWopuWIFWJbvmklzLuIfSiajIpY551iWWztlYtxExNFZl/YP8AKRmx7NhGWSpC3A7RyGGOwa3QnkSJYbrUgrMYyLcqrOzgH94CRyJpWgyztTFGEgIjha+zsspxPEbY95ttl+satKEmkmrLxEUjq1aUHEclUcczdNhgcHFW7ianPMZ64qDMdVUy+VlRyWDRQczUgn7Pcb5qNNEHKAXZ55EYiQd6STyraLD5gUpyCNayhl5sVJEkZFQSRXrmf2jijGIoOD2fllKR4jav5gsbKfXJWnj5twjA+JgKcelARh0GKMsdkdWWuzSjMAGhSYeXkdPJ1vGzMWSFlDMSW2ZgNzU9BmszxAyEOwwm4gsU0Syij8w6TPEGVvXkEtGahDQSdQTT7VM2mqxQGAEB1elzSOYglMPzE1zTdIurRryJ5VlhYpwptxbvUr1rmv0kbJdhqiQBSafl/qMGo+XDcwK0cUk8wRH3IoQPE5XnjUqTpzcWBaN5q0641qws/SmjlkuYkVzQiocdaNmXKI4HHBkJsq/NPW4NG0/T7mWAzJJM8ZVG4kHgGruPbMTT1e7kZ74Nl/5X61ZatZX9zaKyRpOiFXpUN6YJpQnDqKvZjpZGt2O6nrWiJqV3DJeQrcLPIhjLUfmHIpTrWuZEAOBoyykMnNmnna4tLXRklupFii+sIhdzReTBgAcxcAHG5WckY7CX+Rbm1nurxraWOVPTh5GNgw+0/hlmpABFNOmkTaA1GKE6tdclBPrPX/gjmVhgDDk055kTO7wv82iy32nxBiIxA6lamhaOeRA1OnKnfK5xADk4CTe7DNHkKatZVOwuIiT8nGUW3S5Mh8/ov+OtV5iqtIhpudii4cPJE+ibaqts/kHy00ilwpuFUBS1Pj9vlgh9TX/Cfev8q/Vj5R82x8SsfpQMQQQaA/f2wS5hljH3L/ypkj/TOpLGfhNtJTr/ACN445zYTj2kHp2myfCuYhchmXk+X/cqBXqjA+PbD0YHmxOL80/NkmneY5p7uC3bSdRgtYZY4V+GGRpVfkG58m+Bfiy44hswyZCDID+EMot7n6xGl0W5tOiSmSlORdQ1ae9cBDKEuIAlWVwFB8K4GSS6h5hmtbyyt4Y0Kz8+TsTVeJUUAFK154bWWwRusbtYH+W6T8QcIQeT/9OJR+do3jSSSNPitzduqlqheVEFKH7dcrIpPH0R9t5ktbmSVHiZGtYkmuQp5FPVHwpSn28x8+YQiDamYHNfb61YTXQt1D+pz9NSQCKqvPrXwy6O8QVjIHkjI/OV7pt7HpdpcMkkkiiOFX41eSlNvfMjHQjbVI8RpJE8lfmBHbmB9L9RjPLNJJ9aQBzLMZOh+eSGpDX4BqmTflP5X1ny+dV/SloLV7t0ePg6yAkci32enXMfPkEuTl4o8MaL0LkP7cptmkHn7T9Q1LyfqWn6dD9YvLmNUii5KtfjUndiB0GSxmjbDLGwwD8r/JPmnRPNRvtW0/6ta/V5Y/UEiP8AG/Ggopr/ADZdmzCQoMMEDG7VPzg8meaPMWu2tzpFkbm2htDC8nqIlHZmNKMQe+OHKIjdhmxmUmY/lppeoaN5Ot7DUIDb3sTTF4aqxozErQqabjKckgZW5I+mnk+iflp56t/Mdjd3WllbaK7jmlf1ojRBKGY0DeAzJnnBjTjYsRErL0f85/LeseZfK8Gm6Rbm4nF2ksihlSiKrCvxEd2zGxEDm25QSdko/JHyZ5i8rS6qNZtvq6XKwC1+JXqEL8vsk0+1jkILLH9O6UfmJ5I856t5o1K703S2kt5mT6vciWJeQWNV3BYGlR3yYls488ZJehXem6k35Zy6PFCzao2lC0W3qoJmMQQrUnj9r3ymPNyZ7jZ5/wCTfInmS0/M+PzBcWbJpSCSP1uSHcQ+l9kHl9sUyyRBDDFGibTP88PJnmfzRNpI0SyNzHapN6780QKZGXiPiI/lxxkUwyRJNp5+S/lzV/LXlJ9O1eD6vd/XJJuFQwKsqAEFSR+zkMhst4+mnkurflJ+YF15rudTXTG+rS3zzqfUiqYzMWBpy/ly7iFNEYkF7J+a+j6rrvkmfTdKt2uLySeBhECq/Cj8mNWIG2VY5cJZ5o8Q2Yl+THk7zH5d1m/n1ize2Se2EcTsyMCwcEj4WJyzNMS5McEDEG3sINem+UFuCH1ZuOl3R/4rOGPNE+T4zmuJprmR0jk4Emg28fnmyjE068x81exLqXLq6liOoHauXwBDAhMFfru33DLEFesj1J3+dBixXiQ9at9wwqqLK5Famg67DCq+HQtX1u8ghsLWa6MPKSZYghZVIoDRmUdffMfUSADZjiTbIdI8i+cLTW7O5bRLmKygmSR2JjdgADU0VqnMIzFN2PCQUT+eMyvHp5U1/et28FINQffDpebbleUpXao27bDM0OOV9T4f8KMkxpF2WrXsUYhW4dIlLUVWKgVNemUSiDugh7n+RF3JcaFqDO5creKoLGp/u1OY2QUdnJwj0vNPLsyH8xLEhhy/SgBFRWvrnLSPS48B62df85AMjNoQcgLW5Jqabfu8hhbdQNmQ/lRMrflpIy0C8r2gHQUByE/qbMX0vKfyem5fmLpAr09bv/xS+ZGWuBoxD1Mk/wCcgh/ud06U0IFpwpUAgmRjWnhkcDLUR3Zfpcn/ACAQGv8A0qpt/wDZPlUvrboj0MG/Iadn86XHL/lhl71/3ZHl2oPpaMA9SH/Ou4KeebxAwUSW1uCe+yHI4JVFdQLls9I84Sov5Ro7fZW0sSd6ftRd8oiam5BHoSj8q9SWeWdTOsi29lCteQPEeq3XDm5oxcmTfmBY6tqFrodxpdlNfpa3EjzGAKaAoy9WKjIYjRZZomQoJBaW3mP9IWpm0a6t7cSqZp5RHxVQOp4uT+GZE5iqcXFhkDZYGeVd+R/2Iy8HZgebjyp0P/AjDaG6tTowI/yRgVsBv8r/AIEYqqwTtDIk/B3MTLJxULVuJBoPuwg0UU9Aj/NfSWbfSNQ3/wAmH/mvJzzLHE9J8u6pFqnlHTL+GGS3jllvAsU1OYpN34kjNXI7uyjyRg3FcCUg85QapLY2/wCjbI30yS1eESJEQpUjlyfbrmXo84xysuJrMByQoITyZBq8Ut2dS05rDmIxGDLHKH48q/Y6Urk9dqY5SCGvRYDiBBSfX7DzS+q3zWujG5tpHYxTi5hTkrDrwPxL9OZWn18YY+EuPqNCZ5OIMn1FL9vLPpW1t618sUIFqXVCWUryXmar2O+a7Fk4cnF0c+eMygYpP5ag8wpqqyahpZsoBE6+r68cvxMVovFNx9nrmVq9XHKKDjaXSnHK3eZ4PMR1cyadpX122MaVl+sRw0YVBXiwr9OHR6wYo0QjWaM5JWE20SG8Xy/HBcwfV7vg4eAurhSzMQA4+E9euYWbIJTJDmaeBjEAsZ0Sy8xjV7WabSxHYJIzC6FwjHhxZVb06cvir/sczsutjLFwU4GPRyjl47VfzI8va5rItBpdotyFjdJS0qxcCWDLswPLpmHgy8Dm5ocQTT8vtP1XTNCFrq0CW90J5H4RsrrxYgihWmRzZOI2uCBiKLzfR/y086WPmG0v5bSI28F4s70uVb92JOVQvEb8e1ct8YGNNZxHitm/5peWNU8yaPZWunRLNLDcGV1eUQgKUK1qVavyynHLhO7dOPFGlD8qPK2seWrHULbVIViNzOk0PpyCUUCcTUgL3GOWYkww4zHmwnzL+VHnG+8z6hqdrBAbee7eeBmnAPEvyFV47fflsMoAphlwkyt6J+Y+gan5k8pSabp6R/XJJoZQkz8FAQkt8QB33ymMwJW3mNxpIvyl8leYfK9xqX6WjhCXaw+m8MnOhiL1BFF/nyeXJxNWHEYm0TfaD5zTWNQmtrO2urSe5ea2eS6MbBGp8JX02pvX9rLsep4Y015tOZTsPJ/zc8kearbTYtc1KK3htrY+gyRTGVi00ryA0KJ/NTE5hIU24sRjby2xbjfW7ntKh+5hlbOXIsm/MdjH50vpBvyELU9zGvXHGdlIsBN5ZkP5eaCzUH+kXKD/AIInDD6muQqJVPJ8iHR/NkddvqkbV7bVwT5hOIb/AAU/yqkDeZL1VNQ9vLQ+PwNgzckw5h6dpkg4rTMQuQmdz5ll8t2E2sRQi4eCg9JmKAhzT7Qrk8cbNMSWNwfm9aJHP6XlfTUFywkuAan1HBJDP8PxNueuZPg+bV4m/Jbcfm3cegLpdNhVXPEwq7KqcTxotB0xGNfErkhz+bt8UamnwjsP3j9PfbHw0+Ig9U88NObC6Foi+kpZRzbcyUqDUdAUxjjRKeyvdfmdql2YS1tBGIZVnUIX3Me/Fia/Cf2skMdI8R//1I1/hfy0kjTSKURI0RyHYj04mDItByP7I7Zg6zNwQJ6lGQiItj2t3mg20sjSTTI17MJrr02CsKDilahabbrH/wALmrxXkIveMXDJEjRKdaT5btbO5t7yK7lmVS8oEgB5euoG/f4QM3GGQMduTmwjQS+X0m/MXTg7KALu3G7U7KfD+OZY+hpgf3r3trq2rT1U/wCCX+uYbmqZubYmolTw+0P64opoTQmo9RP+CGK0uEsAIPqJ/wAEP64lNLnuoCP7xf8Agh/XHmrS3EIG0i0rueQxC00J4t/3iGv+UP64qAv9eLjTmte+4xpSHLLEK/Gv0EY0u7jMh/aB+kYVpeJYgteQ+8YFpaHjJX4huR3GJRVITSZR9RSpH25D18ZGxCaRquo3qPfcY0tO5qd6g777480U2WQLQnfGkUt5D+hwUtODL0xpabDDFO6X6/dJHpVwjGjSRvw360FTjGVSDGfJ8dwSAlqkdT3Pjm6iXXyCLj4+x+k5YGKJUpt9n/gjhpBVFC+K0PucCheOHio2/mOKCqR8OI+zT/WOFD0f8lFB1++IA2t16En9vMHW8g5mm6vbGU8DscwLDl08K/5yMgt47mxZEAdpnBanZYkIH3scyNMd2jKHjKsPD7wcz3HpeGHh+BwhClJHGaniK/I5ExDISL3L/nHo8fLOqAbf6cP+TS5hZebkQeiReXPLkdwtxHpdolwjc1mWGMOGrXkGpWte+Qsp4AjL7StK1H0zf2cN36dfT9eNZOPLrTkDStMbIUi1W0sdPs7Y2tpbRW9seVYI0CoeX2vhApvgSBSlaaBoNpMk9rp1tBNH9iWOFFZaimxABGSJNIEQFW90bRr+RZb6xt7qRRxV5o0dgvgCwO2RshJAKqljYJZfUEt4lsuJT6sEURcTuV4U40yHVQNqULTRNEsZvXsrC2tp6FfUhiRG4nqKqBthJJURAWXmh6HezGe80+3uJyADLLEjtQdBVgTiCQnhCtNZ2Etn9Slt45LOgX6syKY6L0HEim1NsimlGx0bQ7OQm0sbeBpKB/TiReQBqA1AK0OA2tAMuWp09QBsJB0/1TiqW6stNPnPHoh/Vh6q+cWMZ/lJ/wBY5shydcebiV22X/gjihw4Gmyj/ZHFWwY+4X/gjiq5WQHcLv7nBaomGSIdePXxOVzZh7n5EngHkDSOUiKPWvAAWA/3aPHMI83NhyTf6xbV/vo/+CX+uKXGe3p/eoP9kv8AXFId9Yt6U9aP/g1/rirX1m17zRg/66/1wq19as+88X/Br/XAVWteWHVrmEHtWRB/HFaUzqOnjrdwf8jU/rimmhqel1A+uW9f+Msf9cbWkLp+p6YlhAkl5bqyqAwaaMEEbdCcWFK51jRx11C1A954/wDmrJIorTreiA76jaf8j4v+asFlFNPr2hbD9J2n/SRF/wA1YppZ/iDy+Kg6pZ/9JEX/ADViVAK0+ZfLqmn6Wsh/0cRf81YsqWnzN5Zp/wAdayH/AEcw/wDNWKrR5q8rr11ix/6SYf8AmrFNNHzZ5W3/ANzNiP8Ao5h/5qxtSHf4w8ojrrdh/wBJUP8AzVjSKYR+c13p2vfl9d22j3cGo3P1i3dYraVJGoH32Untk4c90XzD53Xyl5hV1YadOKEHcDxy0yDUbIZN578taxqHmGS5tLKaaOSKIc048SyoAepyMJAJN0Fa48s63L5B07T/AKjI13b3ksjwDiGVGBoxqab1xEgJLRVPJ/lXX7XTvMcFxYyQtfWRitVYpV33ouxp374JyCY81b8tvKXmbTPMJnvrF4YGidC5ZD1U/wArHHJKwgDdnlhb3iqoeMgUBrtmOQ3Wo+cz/wA6pqRYGiRq1KVOzDLMWxQXjsWt2yxiscvh9j+3MzicWkUt4j6JNOA3BZCQKfF1HbACit0F+m7cKB6Uu/8Akj+uSJDKkc98F0WG4ZWZeQotKtQse2RBYgWhk1y36enLQgkfCPA++TteF//V5noWm6la6xqd3LE0UCW9nArSKaFQiiULuKEcT8WabtbIOAR6yacxqO/exq8lt18wTuGE1vM5khfkFMQ6kKK9V/ZwYwTjH8JH1OJEWGWeU2vWv7JZDOYRFctIHJ4luSBa/s+JXM3T7Rc/Cdku8z6gLbzBclnPpq1AtW2/dp2HfM6MbDROQEixS6ZhcSXHpCcyAqBMvNaH2Pf3wnE2Qy7JA1lcKe9MBgz41Nobhf5seBImjtB0q41DU4YKkRg85mqQAg65javKMUCUHI7Xw7arOyNUMa1Umnh3w6UXjDHHPZL+MvicyeBnxu4zeJx8NeN37/8Amb7zjwJ40fo1lNe3yxO7iJfikIJGw98x9TPw42xlkoKN9bXlrcNE7k03BVuQofcHJYpCYsLHJYQ4e5/nf7zl3AWXEujN20iIJHBZgAanqTgMF4k082PdjzLqYMjFhcOCQT1BpjwIE0BaJdz3EcfOQhmAbiSSBXfbIZPTG0HImvmc3H1xXilcKqhCoLAgLsCfmMxNEbjRa8eW7tJfVvP9+v8A8Ef65n+G28bvWvP9/Sf8E2Phrxt+te/7+k/4Jv64+GvGqW/6SnlWKKWQuxoByb+uRmBEWUHJTI7ljZWEdikrNcSR0uXLNUtXkB1245rMcjknxdAfS4xyklKbeGQdj9wzoYjZEkZGJRtQ/cMsYKwSTwb7hhtSqqrDqH+4YFCotRuQ4+gYrSZaVe3NstzHHDC4mhdGkmjDuAVpRDWi1/mpkZRtkCkd7NqkHD6rO8UpBBdWaOvw+MZB265RnjYbcMqSs+Z/NMMhX9LXisp/5aJevX+bMThDlCZTfzpr2uX9roialePd8rJbnlLu5kkd0JLfab4I0XLMUaYSNsaV/wDPfMkFrIXhzT28N8LEhosaYCkBN/L/AJ781eXLeW20e9+rQTP6sienG9XoFrV1Y9BmPOLbEpr/AMrn/Mb/AKug/wCREH/NGV8IZWvH51/mQOmpr/yIg/5ox4Qtt/8AK7fzI/6ua/8ASPB/zRg4AttH87PzJ/6ugH/PCD/mjDwrbv8Aldn5lf8AV2H/ACIg/wCaMHAFtr/ldf5l/wDV3/5IQf8AVPHgCeJw/On8y2NP0v1/4og/6p4+GEGbZ/OT8yz/ANLb/khB/wBU8fCC+Itb84/zK76sf+RMH/VPD4ajIjtA/NL8x9Q1WK1/Sx+MMT+5gH2VJ7JkTjCTlKprHmvzu96EudevWod1EroA3YBUAHfI8DA5SifIWseZLzzHDZ3l1c3P+kGVZJJ5TQQox9PiW4MjftDjkjBfFRYZt68q9vs5mDk4Z5uJYn9r7lxQ1WTanP8A4XFW6sBSj/8AC4q4Ox2+P/hcFJDbGanRx92R2ZLLKz1ea6NzY2Ul7LAKbw/WFTl0PGhCtt8JymeIFsjlI2SfUtF1bT7cLqcEtrayTtKZbiJlLSOKEcmoaU/ZyHAs8prZBTTWp5IJVeMfDGWc7Cle4x4GvxSltxRTJwkhaIoaoWq9adtgPlkuAMhlKto0zTR27SyRn06JSQnkd9utdt8jKCZTlacQrpRMhJX1FB22NGHTt0yowYHKUn1axN3cqxoaRqCU6dT45Zig2RmaQ99aPdNH6iIghjEUaRqEUKvsO5O5OXDEg5SoRaQgmSo2DLX78lwI8Qpx5x8u+n5i1SUFWR7uaig1YDmacsx8WSMpcPUMpZKKR/ogV6ZkcCPELX6JHhjwL4hd+iB4fjjwL4pd+iB4Y8CPFLv0QD2pjwL4hd+iF8Pxw8CfFLf6IXw/HBwI8QoqO3jRET0FJReNeRAPXcinvgOK0+KVBNIjruB9+SGNj4hTrS/McXllGAtPXFzQij8ePD6G68shlgzwmzaOb82EJB/Rh2/4u/5syrgcgFVH5wAKB+iqkd/X/wCvePAtrl/OQhq/ogEeHrn/AKp4PCW1Vfzmfto9G8fXr/xoMIwljab+XvzUn1TWLbT49MELXD8BJ6vKhIp04jBLFSRMWmMXne/NoZUsIyEb00VpSCxHUj4cxJZwJiPUsiQDSrrd9d6j5M1aS4gWB/qzURGLbAj2GZEeaebwfk/Dv198yWqhafWLE+WLsDYgn9YOHow/iSIySFVrWm9OuNllwhPpef8AhNCQRQjiaEbc6YOIHkiI3KRo78ht+w3j4HDxMqD/AP/W5Xc+dL6+0DUo54IYJHYRR8GZudTUjce2arWYbyQN7BxtTKwGCSlklinvVWX1FqI42ClT0oRQjtmTGiCIsYgcg9C0jzTNZeX4pUtykK7r8ZkcmvRqgUGa/URkJCMSylkpDG90TVoob68kuI7meQiVIZOKg0p04nwXNhizyiOE7lrlEFIZ4oTK3HjQMePIkmldq++bYbhkAttYYkuY3KI/E1p16DwyMhsyBUbqzgM8tFQDk1APngA2W0XodmFNwIgpd1FSCRQdeozV9pigCeTGRsJJcPAsjpLGrOK8mA3Jr/TMnSHZEOSEuIxHPEvENyQVG/Wv68yJ30bQdlVLZPrLDgFoSKV2yrFIkreylG1qsSlwpbiC1RU19Tp/wOZYpBtNtAljSN6KKymgoDuB1WmaztCNxBYZDtSB1NuUsCFArcgtAKbf5WDS80YeRZD5W0HTLy2unurdZmWXjG5LbAKppsR45dqJEFM5GkJrWl2NrrMMFrCIk/dGgLE8mk9ycniJMSnHIksw1Lyrot1e3lxNaAyM8sjyBn3NSa7EZSJm6RKRBed2Ui213BIQAjLRm+IgciNyBvXwyesiZQpJ3CLvXVb2TmC877AgkjrT4q+2YOG+EVyaoJ7o/lXTJ9Btrqe25zS8mL8mFRX2PhlmXNIGgW2UklXSbR/MC2YjAga4KekGboFJpWtczeM+FdrE2U51vy1pNrp1zJHbBZokUo4ZtizUrucpw5ZGkGSSaXCkLSTBV5RAMr1Pw12yztA+mu9hI7KepSQzTBlkcsoJYnpyNBUd8wcAMQxhySSW7mSXiNuO1Kk/xzYxma5uXGAITXTnZoS70BqKAkjala5lYCSN2mYRYYDf4SfDkcyGtWDJ/k+3xHFK7klADTf/ACjiqtBKoqBxpSg+I4QhK9eNLXkhCsCB8LEnfKc3Jsxc2NkkmpNTmE5bIPNVeGiDw0q3/F5DlmNBSRf898vYFeKf5nFCpGoI32rWm58cxJ5SCxJamWP1GVegA3r3+nJ4iZDdMSaUfTH+ZyzhZ8SvbRQsGDx8+hDciKe22VT2LCcyGpYIhKAoovw8gSe5wRlsVjM0ip7Oz+ru0ScWQDcsSTvTplcZm6YDJK1GCKzCVmWpBINCQfwycpG2UpS6Ie6SNXb09krRR9GSvZnA2ttByuEB9/1YxO7KfJM0toPRDOWLOdqHYbnKpZKLimRtqztIpnkV6mkbstD3DAA/dlhkQLbAU/8AIllF/iu1RSTyjuK8TVtoj098jjJkWMp1ElmR+o3ttLNE84aI8ZoW3lQk03UA5dLEQ0w1MZBJvLssml+Zprjd2tmm4oxNCeJXelPHAI9HJtGGNASKp18DlsRs0nm16ajuv3HDSuVE7so/2JxpDYjTfdf+BOKqdzGos5zUV9J9+Br9k98B5JDEhuoqWpTxP9cxLLa9a/JjWdP0rTNVju5mie6KcGCNJspYN0I/m23zKwYpTGzg6rWY8J9f8Sl+dutabe+ULG1tbl5ZbafkG9No6JxCgVYsa/M5LPp5QFldHr8WU8MOjym65t5Y0mMeoeV1cBTXdyeApWnbMWR9Ic7vSuKAFpBK7oyg9+hHY5T4hBYmS2GEGKMxs4csAxBoOvbCch4me9rri1mhvZIiZFCnduRrxO4JP+UMMp7KU/0a3BZohx+JY+L/ABEsWJFWqTQ5PHmsbhhRZrJ+VWuj/d0G4DUHLuK5MaiLI4ZKL/ljrMKiSW4t0TkBU1G56DIz1MQGPhSQ+p6Feav511OziuI0k9eXjG4PRW6mma/T5AJ3SJxJlSNH5Ua1Wn1mDf8AyWzY/mYpGGS4flNrJ/4+4B/sD/XH81FPgSXj8pdR9Ir9ai9UsCrcTTiBuONetcfzMU+BJaPyj1cj/e2Ef7A/1x/NRXwJO/5VHqx2F5D/AMAf64fzMV8CTv8AlUerkf72Q0Hbgf64PzI7l8CTh+UerHf65EKf5B/rj+ZHcvgSXf8AKo9SrT67Hv8A5H9uP5kdy+BJev5S6hT/AHuT2/d/24fzQ7l8AobUfyWvb1YwdRRClTX069f9l7ZGWpB6MoYpRSu8/JL6hbvdXmrqtvFvIREa0/4LMfNrBGNgM5CQChpX5SWesBn0/VgAv2opI/jXtvRsGDWiQ3G7CMpFMf8AlQ1yDtqaU7Vj/wCbsv8AzA7mRhNsfkXdV31FNv8Aiv8A5ux/MDuR4ck48r/lZFoGsQ6xd6grR2aySrVKAOqMUr1qOVNsyNMRllwkNWWMo0brdi19rrW2qepLxaFwskEEI+AGejOafzb0zQTw+s1zElnM8VvR5PLM13o81qLhFivYSnIVJUOAfppmfCXVyokkWwtvyDQf9LY0J2/db0/4LLvFCKkjbb8mVg0+az/SJZJiavwAIr7Vx8byY+GbtDL+Q1iFHPVJCQasQgG3y3yE8/CLZUVOz8nWGuTS6J9ZkS2tkVIGUhmCqT9o0KjcfZzXaPUEmz/E0gESpMIfyH0RUbnfXDuVZVcFFAJBFSOBr9+bLxW/gL//1+e6loWjaHpd24qbllMkUcnJqGuwFDszdf8AU/181GsyGRjEd7TqgAGHeWNGbW9UntXZlnkjcrKVJTqAd9+gqP2ctnsBTDFh4gnvmPR5dK0KK2nHpdIxFGSVfh0etT1/lbMW5HKCWOWFEKPk7y9puoWU6yyfv4HJ4LIwNGH2iAR+rMsT9TdHEJC0rOzELzABIFAOx983cOTSURp8fqahbRsHIeVFYUWhDMAa4Zckx5rb9FF5cBVdVErhQAtKcjTEDZiCrRXS2WmyyxR8pn+Es5AAqaDbbNF2hEzyCJ+ljM9GKRNNdzyJxqQKFhT6My8MKIpsiKCLudPnnkSSjKY1CkEDsa5nmNqDTcNnOshdgxDVqBTrkceERKTLZBPot2Budv8AVyzhXjCZ6Z6ljaOQvJ4xuzbKKnb8c12vgSAC1ZJWl7SvcXbgMKqQZDQktQ1NK46XGAQyiKCb6frusabDLBaGP0ZXMjepHVqkAda+2ZmTT8RUkHm5Lm/1LVrZ7rjzeSGNSi8RQSDr9+Sji4YllEAHZMtV80a/HqN5DE0XorNKiAx1PHkR1yEcHVZSBKSadBS8jmdeSQJuDUb9jtmP2hA+GxJ2UtTvXF8REoVpwAO9ATU/TmDgxXHfoxhG90bbeY/MdtaR2cEsXoRCiAxVNK13Nc2P5EHdsMgg1utQS5W8Vl+urKZeXD4KkEdPpzI8H08KBIApte6nq915fM9w0fOe5+ryBUI/dxoJBSp+1ybIQwCMlJFJabgQWjs0lK/ZQjr2Ncx9aOKQDXVpMZBIHkA4moAp45VVbNojWyu9i7SrI0cTEdRxcBtu9Dmbjw7JGShSKgWVC9VVATXjGCFFBT9ok5k448LXI2rcm267ewyy2K+rnryNOmww2raliKfER40GDiCd1USkAAV+4YgqnHl7y3a+Y5prW8keOONVcFKA1rTwOY2py8LfhhafH8lvLldrq4/4NP8AmnMHx/JyfDPeitW/K7QrqS2WaeYLa20NrEQwFQicv5TU1b9nJRz10QcZ70sv/wAmbR7crp80sVwSCHmKsvHv8IoanJ/mwx8MpJYflTe3xnEN6I2tpDFIrJUlh1YfENjlePXA82IxkoxfyY1gUI1CP4agfuq7H/Z4yyxO7M4Cibf8orSxheTVriSfnIio1vxjCg1BLAl65IZ65L4JTWL8oPK8oqLm5FfF1/5pw/mivg+aqv5N+XVrxuLk12+2B/xrkJZr6IOFsfkt5cbrLcknYjmP+acRl25MhhV/+VL6F6fEvdcTTo3gf9XB4nkx8ALf+VJ+Xjtyu/EktQb+9MJy+SfB80Drv5QaRZ6bLc2sVxcSoQeDvVd9qkAxk/8ABrko5L2Xw63YfZ+S9Z9cyLoUZWJS7n1iKKNixrPt1ywNMiT0TLT/ACPqF5M0U9hBDCkcsgKyPIRxVm7TjIGIu0RhZ5LbHyXrDzpBbWunrM6soDy3BqtOR/b2+z45MkVSeE9yY+S/Jltd+YYIr1rMI6ScRbPOsvLgaULtQCvX4WxjMQ3DCen448JZxpPkCCxme6Dl7lk4qpclAWALV2BbfJ5NYDs0YOzzDe2rX8u4E1K5vJHHG5SYSqrEkepGeXGop1+zlEsoOznDG0vkIOQ3qmjb7seh38MkNQx8G1w/L9OVWlPGvZ2rTH8ynwHJ+Xyb8pKjvR2x/Mr4Dl/L+Po0p37Bn69u+D8yvgOb8vIpIpIzIaOpXZ377b7+GJ1CjAla/k5ZEGtwa7cd3p71+LK/GCfBKd6H+X40jg1vMheNw6Fw7Lsa7gt45kYdd4YIrYuDrey/GMTdGKd6f+Wuj67qYi11RdW0vqSNCheNeRoQdmrschqe0vEiIhjouxximZk/U8p/NHQLOwlttH0mAwW9neyC1iTlIazJG7k1LM24zGhM9XOyjh2YXPY3MkIkmdJATSOSu1KGvbESDQCKTbyr5bgvtA+tx7X3rmKJxJTiQocVQ/DRt0/2WGc92+BBBRvlfQrG81+5XVYGuIprd5oFYFQxDcV4kUPUcciZsOZpHWfly1tdflt4yUjNzFEqjoq+qRtUnplgl6S2Sju9+13SbSy00yoCbiJxHIxJowC7GnaoGYgkbcrhFMI128jTTGJoEqPVL7KBUHc/s4zFhhPkxvRLa2b8ydamb966kvEFFVQualmJ7/srTBAbtHD6rZ3z+nLm9dyVasa8QKnv74Cl5+Pzh8v2M9zBqQuDKs0gjMMYZfTr8O7Mpw4oGTWJC3H88PJY29O99v3Kf9VMt8KTLjCZ6p+YWm6TZxarepOdPvVgazWONTIPVjMnxAsvYfzZCMLNMrCUf8rz8oCn7m+6/wC+o/8Aqrk/BkjiCbab+aOgX1lc3kMNysNvBLcssiIHZIqcuIDsO/dspP1cKBkBNJL/AMr58qA7WV+R/qQ/9VctGEp4gnflH8ytG80X01jY29zDJDEZmecRheIYLT4XY1q2CeMgLxBlYY1rWop1yq2VMf8AP15Ja+VruRI1kXjSQNXZT+1sD3yjMCaDXk+lhf5Lw3Us9/eyrIIwAiSk0jJO/EDuRl5gAdnGxDfZ6qX3G/ti5q0t1xWleyuXgukkjCFjVKOodfiFPsnJRkQdmMogvnHWrMpeFUjeVg/wotAVVCRTj9qtB/xtlMTubcLJHcl623mkaV5OOrtbCWC1iiEcMTgcgSqH4iDxoxyzELcnDyYkfz8tf2dGk+m4H/VPMjwmfEGUeSfzCTzPBqMqWJtv0eqtRpA5fmGNPsrT7GQnClErlTGIPztt9QkNo2mNbCccPW9cNx96emMp1mnJxmmM8lBE+QPMMUnmg2MMXITRSSGUEV+DcGlK7jr8WY+nwGMbLVH6renpfXSo8SFQj0DbAmg3oD75lW5L/9DnPm689SF42q/rOBcTqQZAvKu3Tb5fs5zkZCWSx0aNSQSmHlKbQrOyS3troPdMOUykmg+g/CoFcyBl6lycU4gKnnO3lv7NYIZF2q5U7V2oCDXvlOXUQEwXH1MwSFHyxYWGjaPcTSNH9auXPqPGakqB8Ip269Ms/NCrZjLGMPexO4j05maCyt55JxyPqsxKmlOR4qOm+Z2n1uQyBkYxi4USTuu0y0uE1K3keOkcE8fqtyPw8WBNc2GTWY4jctgmAVC9hBuJSjK7c2JCuf2jX+OHDq4yYiVoK4/3kmViF5KampYmngMp1Y4qI6FmRaX2UkFqFidxzlqSaHev2d8qxTPFfRv4dkdX4qDifH4jm0EgQ0UV427Lt0+M4bVaSQegP+zONopZPMY7GcIgLOADRiTQZg6zGZEHoGJCV6fCziSYheTbLvQgDrlmniA2SG1IplYdVHv8RzLtrITPysofzLpSMAytdRAqSSD8YyOQjhbMY9SG1Y11W7IAoZ5P2j/McMDswI3XWRSGJp3ViK0UAkj7huc1+vPEKbYQsJM0DPfFnqygFgxBWtTUdcjpwDQU7BEVJ6j/AIY5sxINJDdQN6bd9zhsKmcjD/DEB7G+lpue0Mf9ch/EylyCU3SvLAVWlRvuScpzQ4t0RO6XxAySqiqBwNS3T78xowstpGyZc6UFNvZjmyFAU0t8q9t/mcbC0vDk7fxOFU+8l6MNY1yO34rII19X0iwAkIICx/EQvxMcxNXqI44WeTk6XTyyE0PpZ9qGn+eouIhgmRYzSKOK4gQL/sQyrmrhqMBFm24xyeTFdb0jzBIxj1eH/csE9eICSMlrcGhZirUqpFOuXYNXjB9J9Ky08zGyu/Lm5CahcsaCsa96nqfHMvVmwGvTino6yyyVBPFOzMBX6F/5q/4HMLipyqVuMYvJl7qIlUmlaeih6/TkJzVFAUPJRUjp06+GAmgkCylc9trunzxLp1rBDp8pZ5uL2omckVLVcklgx6H7K/Dmrhk00pESMuNyJ4ssNgNkubV/Ni6grTx8tOd1+rIfQEoK9Vf0zv6i8v8AJRuGXRzYBKsZN/xIhiyyB4hsnGsqbuwihQrFLNJGEEh6tvRfh5fEx+Ff8rNhA2ebRLZMbfSvzFsVa307ywJrLjtcOiNKz1B+Lk47bcczY4hXNwpZZdAsaPz5EJJ9X0oaZAv2JioEYA/35xZyrb9hjkgANizx5T1UJvMV0lrbyxSUZ1Ik27g7VzFFuS3/AIjuZNMmeQqZVniC1H7LJJWgH+qMd1pu3165ayvea/GgiaKgP89Gp9Bw2UUpxajdXFleo8Hqsbd2hjJKgyIQy1NNsQd1IQGiR3Ut1LDeaascNzBLGxWYtU8eSjZVoOS9ckSx4WtB0tFv4zc6fHGkwaGVo5C54yqUOxA8cFhab07y7Y2d/HPFbKpRyCw68SCpoa+B8MBK8KItPK9hp2p+vbjg0DkRkU3A23PywWKRwbp/SO3At05MsSKoYncjiKYgsyrSfCHANQYXYH5o2EHdBCnaF3tYGP2mjQkj3UYCkK4U7bYUu4niaDAinEe22JVwU+GQJK0W+QFCcCRErw4rQkVyMmQiU58tMp1SMBhXi3f2yktjx38zB6Xmb61HP6UttfCRQYfVUkQigPxLtTM/DEVbh5QOJgkegpMfh1MhRWi/VwAP+Hy3gHc0HHae+UNPt9MElj9aNxC9X4vEqjl8NKHkTtxyE4DmzhFuJLldRgv4NSVHtkeGGMWqlAju0hrWT4jykb4sTEMyASnvleeGw1K6v9QlGpvclCsbRJEEKuXJXd+tcryQsbNkeb1TWtbttU8nvq6MIlNRMhI+AryPxHb7OY1UWy9nl1xrGjXMbwTT280Eg4vG8kZDA9tzTLhEtct1CC6tbHzxrsTXSWyrLSkjooZQBQb77ZXwniaSKkyAeYtH6fX7ce5lT+uXcJbbVR5j0RQWOoW3/I5NvxwGJRYeBfmKLceY5vqrpJAatzi+JCzMdw29aimW6YUGFC2M7nxrmUVeiee9Qs7jyZo8UVxG8yRWPOJWBYFbZ1aoG+x65jQB4iz6POt6DMlgzTy0sEnljUZZpY4mt4LlI1aXg7F4tgEG71Y5hTx/vLawPVbCwD4ZmNls+/JzU7DTtfvJL6dLaJ7MqryHiC3qoaD3plWYEjZQd3r/APjTysKf7lIK9/iP9MxeCXc3cQQ175t8oXdpNbTalC0UylGALdCPYZDJiMhTEyCVeUte8r6Ho/1GXULZZFd2bgZD1O3LkPtU8PhyUMUq3a8YEU3bz/5SqK6jF7UD/wDNOTOOXc28YWN+YPlOgrqMfXeiv/zTg4Jdy8YVtO88+WLnVLa2ivlaSaVERQripcgAfZ98RjlfJEph5p5n1HTF80W7x0Yqvp6gGDcao3Fq06/Z3yqUDu4+Y7p35182+W7zypqGnWM4Z3iVYYUidFqsimgHEAdMyMeOQPJuhKIDxf0Zv5G+45lEFjxB6D+VPmDTtFh1hNSkaBbpIhDRGbkVEgboD/MMqyQJTGQBtg9i13bXIkSN67qRQjZtuuHJDijRYSILNPJmu2Ol+a7W8uTILeO1mhkkCl/jZSFUADpyzHxYzwn3oga5vSE/MzytQgyz1od/RfrQ4fBk3cYf/9HnIjiuozOk/CJCysJECkGuwIbbf55yEiYmiN3WHvXW+lTyyOZoViUx1VYmHJviqORUjb/JxnmobFIulIaPrhDPIeMs6kcQxaNAppRqj2/ZwnPj5DlH/TINr7Hy7cfDFNJ6rSHnOkfKgGwpvt2+LI5dUOYQSqyeW9ThuWNhDJC7A1kd0kSn7IAUAhf8nEamBFS3WJIUj5evLkq2rK0yo3P04gUSneo35fZyf5kR+j/ZKAoL5SsrfT5beBGa4lLSNdyVLJGCCFQUpy36Yfz0pSBPIfwqSSiz5E09baKO4iN08Q5RSuzKwr8R4hR3/lIwDtKXEa2BbIyIQB8oaULeJTachGS1xIVcyeKqv7PxH/J+zlo1875szmJKrH5b8h3jRNf6VdW8zNRmgdkQitCWBVu/XMjFrskNieINkcw6o+y/Lz8sZ3Ag+tSBjuWnICgEg1rCOmZMu1Ijns2eJE9Uav5P/lw7sPXuFp1/0pQKnpSsOTHaUO9mJx70Dffll+W9oDxe9lboQLlAFPcn9yP9jlcu1O7dEpjogpvy78ievboi3vpuObH105Ffpj6H9n4crHa1bkNfigFHxfld+XcsBuFW/CKxT0zOnInxA9L+OTPa8atn4sau0R5b/L7yUmtx3VpFfJdWMomiMsqehVDVeRWIH8f9ljh7TE+ey4coJVdR/KXyT6nqXMt291dSHk0My8fUY8jsI24j5nLJ9p4xte4ZGosQ17yPPa3QtdOWRNKXZpiwkIBFSealfir+zxXKf5Qxne7LCWUBf5e8k+WbmQWeqSXLzN0ZJFjRqUrQGNun+thPaNeqlhO+eyZ6v+XPkjTGg+rrc3NzIQ6RNOjJQGlG/drjPtK43EscuSuRSpPKvkuGVo9Rsr6GZQCfQuIilG8VdGYUG5w4+0CRfNhDMOqY3nlDyhBZR2EKXdzbxObpwZQ0itMip+xGg40QHIZO0p36aWeU9EPZfl75RupZK22pJBGGFVmh5M6j9nlH92VnteUa4q3QM+6c235QeRLpG9G7vOYA5xtPCHWvSoMfXtmZj7RhIXbkRMSLBQGo/lf5QsZPhN7cKOXMepETUDelFXpmLPte5VFoyZaOzHl8nyXfBotHeC0LkrIGKTcAftsH5Gn8u2TOvEDvPf8A2LXHIb5siv8A8vvL9m6CGO6uWFGVX9P06gUUuVXfp45Tk7TN1EimWXIRsF2l2V7o7y6lDZlTwWN47RkEpHMMv2K0qe3/AAWY+TUDIOAy5/zmzS6k4jt1ZCdc8wtJwYSrECoaYojAMTv8KjmeP81MojIiNCX+a5w1uM7lj2u3+vXjTyrYzTekvBpn2Do5IqFHGo3PLfLtPwRq5bycTNrJHaPJBeTvL9kmpNeXcVzpptvTlijh4LHKUapDeqwqB/rZszrQBRILHBk7yzfVvNFjBbj6h6ks/Hm8ZVD8INKfC56775RLUg/S2S1A6Iuy1WO8WO9ZWSGVEYFVRiP3YWp+Jd6r/wADkZ5RCV2zGQc0xhv7WOSG4ZnaNGDt8EdGANaU9T9qmVZtWDEi22OYA30QLec/0heSyRaE9hal3KSSegoFDQ8Y4jX4v9X4s5+eilH1eJxSP83ic6famKuqGvtWjkhkdbEtMi1jnAjY1Y8f3dasG4j/ACclhwyEgeL72ufakeAgBIk/MKzstV0r6/aO0Npdwzcq/tQmoBA6jxXOk08snOxQdWNQSd2b3/50SXTo8Gm6t6EqP6UsF3LErAGtQgdaDj+3T/VzPGugOZptOWPehtb893MltBZQ/XjLexBFnaSS8FueaszS+seLEIXIZv8AUymHasJiX8PD/skSlEb2t0zXNLmn+oveNcXKkKJzAilix7qpCrTMUdodTsEwzxJpOJTpiRK55SHoUWNSwPiVrk4doQJq24yAQslzpBcDgVr1aWICn3HBk18Qdi1HPFQvb7SbSBneJnKgFQsZQUI926fRhlrQB5rPOAoQa95daISyTGCXosXxVr23B74jXCrKBqIoix1LQ7uYxxXbRuo5KAGBHHr32OAdoDqmOYFbqFzDZSK1JzCVL+uR8NQeg3O+HNrxHkLTKdJdrvmOOwEbRLNcyzfEVZQDQ7k7A/ZGUfn5TlUaoNGTUUdm5fIujeYI31y5uLqKS5VWYGaSEmi8QFRXC9F8MzRrOGO9NwlYu0ss7HSm8xJdyy3kJ0iIJC/NzFIUUokcimoP2qu2YuPtMg3KqaBmPFudkFF+X3k2eX975l1WG4YqXh5gIGc9E+A/DX7OZmPtTHIcmQzDvTmT8j/LiCsnmbVl+c0f/NOXHXYwN6bfixu/8l/l/Z3aWzeYtalLEKWSSMgE/Ne3fKP5TBO0dmk5hdWn3l3y15Ei0fWbS31+/kS/iSC4a4kjEkXFiwMfw9/5viwz7QiBZDYJiuaUp5D8jRaWdUj1fULuZAQbCSccC4rsSqq/Qcspy9oE49vTMtU5+nYsee30q6QR3Ma2qmhMcTlZFQn4fjJYKxHxfFmPHPkibszcOOeYN2Uw0vyn+W+o6tHpsNzrTSSKWXncQhiAKkhQn2f9lmd+dlz4fS5sNRxHmz3yt5T8k+S9ci1uyn1K4vLdHQQTuGWko4NVQg8f5sjk1sSHIGQDqlGuan5Z1jXLiPUp59Pkeb1FZVSRdl40IahAp3ODFr6jdbOPPODJEaf5U8lXY52+uPISPiXjGCO2+2ZA7QiWUeE9UXF5O8rI7MmpyxmM0JVYt6j3BOR/PRPNmCO9Yvkvyd6iIuqTfF8TOBEKClRuFyGTtGEVuPK1O6tPLeiE2yzT3EbOqvOyxOSJKABW4028PtZg5dZHJMEEsZZRHZOtPTyxLol/o6ajcyWl4CtxG/ANGxUq3E8QOVP9bMyGrgd+TOGUEc2G3P5OeW4KPbX1z6DEHlOi9zRfiXY5LJqJDlIU0yxHnxIjXfImlapqWo6xLLJ6kshYwooLcafDWu1SMxc2vlEcUSEZO+0ptPJHlSURrJNLHI5+GBl+Kv0ZVHtHLL+Joib6psv5UaCyclvXow+IcU798vGsyfz4tvhf0kFcflr5ei4SNdTSRluEnFI34b9wK/qyEtfOJu4rKB70Qn5X+VPS5reM4NKkJH1+Vcme0p19QUQ80Qn5S6BLG00dxL6Y2qVi2p2oT1yyGsyEXxRZeGe9TH5S6IYg31xkUn4eSQb/APDDJR10qsyijwfNRh/LPQZWpFqMzjcOqJBRSDTerrlf5+zdhRDzXp+W3lj1nie7nBipyJWFd2NOPXrjDtCZJFxCBAXzRiflV5aozrPO/HdgphBFfpyz81kP8cWYxX1Xn8tPLYm9JnnLjb7cY7dPtZV+anf1xXwvNGH8ofLhZY0uVdyoYxGYK4r2NaD8cP5jJ/PCfB81Gb8rtGhLyvbTuBUyN6sTj/hWyuepyjnJEsKg3kTyq3BFtpz4jYNQ9xR/iysarJ0kw4AojyN5S9T0nt5lB2H7xamm5254/nMt7yTwea6z8u+RbPV7d42dbu3kSVYmlUHlGwYVBb2yX56Y34jXuYmIvcpZq/ljywsF3qM0LvdBmdmEgCksxbpyrx37ZGWslI7FZ0WIQX+nXssQTTolsjxS4lDFXVq0opqN6DLzLJHnM8TikkJvqI8jWcqJBp17OgAZ5SzKFB7bAr18TkBqc8jtIU2mYTTTdD8lT6WLue0lVpB6kSiQ0ZD0+02xyk9o5I3En1LCYPNA+j5IaV4xZO/w1jdJmA8KMev3Lhjq84FkoEwFkmmeWYFkaa3JC0KLykB+I9BuOW+QGuznYFBmpWVz5cla5A0zi0a86MWIKUIqK5bPPmFermg5N3//0ohF5k0QTOj+msPIsIwlRyG34++cRPS5C67ZJ9W833McxFo8cdsjkh2QK4BoCAcysOjBjUhugSTODzlYXFujSOtOQFFqtQNq+GY89FIGmRkETL5k0y3jWITlvVryCCpUEfD/AC7f8NlcdJM7p2QqeZtNZuEUsqLsGY1FPl1yw6SQQaVTqtk7/urksNquSVIApkPBkOiLCutxYLRri8ZkmBY7gAVNRypkeE8gE2FZNc0aFEj9SrVqKVJqe9TXbB4EzuzEgqNrFojcjcCpHVQSfwGA4ZMCQhH1K1lVjE7STqwI59K9+oOS4JCkGQVIr+2YhXYRPwPNAQVFO1fnjKBKbBWRXfrtVJYwYqGjPQE08R/L2wiBioUdRv4Y4SEMUkrU5RMQVZt8ljgSfJBk5NSt5oGEsKLMq8YyOh4/ZB26YmBCJbpNe6/eRXKtIVZIyGXkKb0oVWh2GZWPAJBjuE80/WLCezWVmRHHwmMcjSgoKMeu5zFyYCDTMSVP0tZD4kuuRX4eDdd/Db9nrkfAPcvErWWp2F0hVp4wsbmiMRUkmtatSpOQlhI6JRlxdWSxhy684x/d7FgB4Gm3+VkBGXQMiVOSTTZAqoOUvLirKwBqu/w164RGTEgLL+XT4UHAxer6n963E9FoadetaZKEZBEqStbu4a/VkCURgBCGCihJHKtcu4BW6IojUrmaG4t04RxggtHKzjiWqOQO+Qx4QQUl1xf3FsAEECBqFmUrXia7mp98MYdEA1yVJPMcENVKxc2FCQQahd6jr8siNMSpLcfmKzPSaOJW+EF6/E/dq/yjE6YrHZx1nTDO0clws5koPT/ZJO1RU8cIwT5opfJqGnszLBwElAFAKgVB3I99sfCkyruUWuIkYMJoEaRQSjOOQC9aVB7nDHEUCJVJtXX0Vhlkio5IYMygU38OnjgGA9Ay5NJqllcK4j9Jo6HkC3Y9qdcJxkLYaWz00uWkto25jisiGjCg+yDXGJlytIIDoZbNbcJCiLDHReIfYAfT4YzEiWRkF9vqMV1KsaMskYFREXBJG/7O32chPEQGHFeylLp+ntLLPMvosikIoYhdzxPQjxwwkaphS1Y7Q8lt26kry9WrUU0DfENuuSkDbIkdFGLSbdKTGKB5BVJHkIZgvTam3tXJnJKqsqEXyQFzI0TBFJWE0VVX+VaeIyoxKbRcj28loqSBY4pR8ILca0HQg77ZAYyDakghDC0sOScE4SkghwNzvsK/LLakgABEfVLz1PVe+V0pu3EKaUIXp/LXBKI7mRsdUKdLnuJ5FF2si9OK7Ny2NOVckDQ5MS4abfqOSz+oI19Liep4n4uW56eGRkR3JJXrpSQ0J4KC3Op4n4m/a3+ziZEsCFCy0xIfVnjuYgi19Z1Cs5HXenv1yUiTzZAJvaxlbeONJSUjHw0+yK7vtvlcgbbRM8rU2jpEGEwJHx/F14/LpXBwMeEIJrjmWjjulAbf0033Pf38ct4O9BKq1u7WpE85WNalkAAb6e/yyG3cxMtqQ0iaZxXmr8IwVAC70O/I/wA3TJAFja0rplxGsYvJY+TVUftDlseu/TJDbdIk5vLUE0Txw3isJqci6BjUEGoZgG7YRmo8mQpExaDb2kkxSdQ0lOcQQ8dhTr8WQlk4uaCFi+WtKuIQzMzKx+LiSA1du3h44RlIRGKx/KumOxlMIaUsBU0AIXalKfZwjUSqrTQKIHlq1EkdwlYp+ZLzKQGNRTiG/ZFP5cAzSqk8KI/RnwBC7NMBTm9CwoKV5EU2yviJK0Vp8u+uknqAMz0HFgNjTryO9TkuMjkjgbstHhtnKC3C8T8NBsaihqNsEpE80xjTo7GSByTIuwJ5Ur8VdiOvviWYQ62gNw/qzmjkqqqdgPeg64CA0rp9HMoj/ec0iIZEZv2gO9Ou+Mdr82VWp/4agaC4nf4jLR5KfZXwIP2h0yfHLaujIQbtNNijRbT1CI670mJHjUchscZ2d2PRMYtHtY4puDMpkasgZi3IDY0PbIEX8GQipppUlamdI4geKqOtO1T1yPCGPCsuoJLOP1mq6R7VA5HhXeg2riMYUgrbA2U8jlJldD8XwbfH4GvxHp8WSMCEA7rrhGkT/RyFlRt1rtWoFSenemAQFsjy2XW8NyIF+syhXc/CoPICSm/TEgA7KCURJ6ckvppyUMo5CgAJ6daYBBPEUHc6Fp7RuJGdVcFTRiDXr277bZOM6Y8K2z0zTAX9ISersJXlJJLDw+jJSkSilZtJDSExTH1EWiKWoCdyK198rBSLX6XpBMjyXgkNSPVRZf5dqAjf/WyQEeZ6JiCTuiLrSLOSUXFm0qxk09NpCxSu25OSkRzDOYrkls0WmQJNHKGAl+Fzzbff26ZGywGQhuOWzhcsKVRaIF6U8BTr0wCJtESirawS6WqAPzX6zHI8gUcR136hqD7GWjGSmiUlNpost09wlvG0przahqq1rUnHjkBVtR5tx2WkSMfrFseAYiOnIg1BB5YiZHJmA1BovlzTrZoLKCWWIuXLAcveu+5AyWTLKZsndSBe26rNa6MYvTaoe54KkTfCWYdPh8aZGyOXRjYQ0h4l4QqBFQqqk7KWXbb/AGORqzaLpAWGk2Md16qWwSJCUkkib9nb7S16++ZE80iKJWUrKa3senmz9UQlkK9K8SeR23OY4Jtl0Q1vcaeySIbUC4RCU32LEfFvt8stIPexf//T4c8N4wAhIaQFuTtQUVT0BzS3Gzbqg208E8YWY0qN2OwJH68iIkHZCIttOWGMjmvE7py7D6PHK55rKktahJCnBSzPQUWnUU+eOIEoU7f0rklreVkII5I4oCPn7ZKdx+oJBKOMEsUikOSd/hB6/PKOIEKVdjMsZWRlao6eAyAq9kIWSS4knKwzKkMY3G1QewHfrloAA3G621ELppf70oVbchq7eIwnhA5LaMWahIDni1KmtTXKTFFqM96to6iSWryHYdqE+PbJxx8Q2DIFb6Uc10twZkZUaiVqRWnXam+GzGNUqJYoVFXVmBFDsd+mVC1Q99fi3RVkLHY0IPQV+eWY8XFyVAJJBeOv76h/Z2Jr/rHLyDAckkUmUMMsQFZeTrUKKUFKUzHlIHoxJU4X1ZJg0oR4qGiqK1Pv4ZKQxkbc1tXVZANlFD8XIdRXwrkLCQVkSgljyYAHjxqBv3O3z64ZFNr1imZQUkLAbFvn3yJkB0Y2oSM8TgOCwagZj238BlgohbXpC0klCxpu3cewyJlQTaIksTyD8i3Aj4Sdqg7ZAZEW2fUWQh4w22xpWlR1ONik8SoJFAP7sFjsRx32yO56otdIC1WQBD4dSPowA0xtqMqCRQlkGzUG5HSmJJTa2SYHZoeRJ2oOnfCB5ptZ6Cs/IghS3TtSlAN8lxGlte6gtyXjXo602P35G0ElTMkyPWKJA46PSlR4DJgDqyBX/WCUHqrwb9oE7V69Dg4d9kEro2Q0HU7swAFBkSEKX7uKUyQsQ5FGcHfr298luRRSNlX1nZgrNVCtfiNSfDY4OFNqhuIEDKQTXoB02yJiSUWoXLQvCCpIkDAluRpSn4ZKGyb2UbNzHC3ryBqUovsa06/LJzFnZFohmtpal5XfiKorN8IJpgG3RNr47ekgJuHCk/D3oeux7YDLyTaJqnGQCVyrCgofv+7Kvgi0uWC+iukk+s/A4JYn22HTLyYmNUto0SzxtyMjRMaV4EknbenzyvhC24zFpVdJnoB8VRTenXp1x4QE2px3MXqmNmARgeQHw15deWHh6qCiYpZoSF9ZUWhCAGhow6YDEdy2hJ0D1EkzMUY1WhNCdqHtvko0Oir44LYc5Y4zzABFKqdvlglM8mNoiK6EcBVnk4n9ksWFfp8KZWRaSV312cssbSSlwKBa7Lt4HAQi2zcIjlkpzSlGZqb9+njkeG02mEGrrEih4fVoAABThQnfc5A4mXEjYZ45i0LyTJb8aBAR33JDAg/DkOGkiaYWvG3URxytO0hBVn6KKjYLtlcrLKJ3Xp+kYbglY+SN4bAKTX33qd/8nEbMuqOhEzfFJwCrWqg7iuwPbGmQBdduEQsGPEnYBRWopvgpBQ8t1bKm8j+owqqg9TXr498kAjiCks6qysPWfkeIB6qDua+IxIRxK884oDHGvqtQoDsa0rucBDIleZFEYfgqt1Kgg9u1cCLCHjjij5tHGGB+MndTXw6nwxJKBSvJPGiFvUPpKRULtyI3IJxBLLjQd3fqkIaGBpTUBoH2NCRuKihyUR3sbCNGowFOYQs1K0rQ1H8cFrxhTGpxPGzxwMkgrVWIArsa8gTikzCg1xbXCFZLdmr1qSQK/I40UcS9LfR7dIwtuIubMW4A1JO5JpvhJJ5sdlGRIFldYRGqgByHFVJDU3yIJSCpGRY5VKNGF3JG5FKePbfDw2GNoqLVoQvPirlaF6LQ7ioFScQGQkF7XySLxEY226/FxHxGhGAimRLRu4yUaRY3G3JVBoK1r07j3xFptCpqpEoRYkElRymI+KhHw0rXvjwkMeKipT61dxrIqwJyWokPKoqaUO3jXfJCLEzWWt7LMgeWMAbVYCo3HYVNMapRO1Ux2MxWR2+JVoF6AbdvY4CuxQWoTCJFkiHJQQoVB9kE0I37UyUBbBfPdwxqqGYBuJqCVqO5FOm2JiSyHkgY9QtbeZXD8wlXMjfEQSOpNN8n4ZLGlzPN65nVSYACzlTRSdievWnIfDgrZatauvfU7tIooDHJJzDlgxqCKkKwpxqP8nJjESLXipWt7i3uTxmYnmOYrTlQDfcGvQf8DkOEhQXCysrluCylFVeK1ovKlRsD8Rw8VLzbtdJtbepS7k4yVEnwAmij4Sa4ZZCeieFEk2VqiqiMY2+Lc/CeWx6CmQJtlwoe3n08SPcCzZwY2JZzsOoqp8cs3Twh/9TjE9xxfglOVTSvY1365z4j3unIU59PjmZC9OJJb1FNOIpvhjlI5JulaGhkihDGRFFefjkJciVUp4GNweYNaGvZhy2GTjLZbULe1hgl9IMQ/E8anfrk5TMhaTJGLUgL6hpX4Sdvpyk+5i3MAkocyckHTcEUI6mmMdxVIU4GieYsK8SD2ou23X2yUgQEuiEVtI5L1JFQNyQD06YJXILTa8lj5UJHXY0NSe/XE81pDX1ks1JGanHvWgJO9OmW4slbJBIX2kBihI9QGIKabd/EYJys+a2rLb3HEOsgWMLyDEgUY5XxDuQh5bKa4hKLJ0apJqeR8N6Uy2OQRKYmm7fTLqKSMswFDxZa0HI9ME80SCtpwljVoy7F0pV9+3htmGcvNBVrWyS15py5jdgpNaZCeQy3VdIbUsYiCWf4hvTYd8A4uaLQ7R2bExrJxrsQepGWAy50i7X/AKNDjlDOYoqbgHxweNXMWUqkcQVqvKvEHiF9/p+WAm+QS2ArPzVixUcgB0I6VOR5BStSP4W9Q78eRHia4Se5gCpw2U4kr6xIO5Fex98lLIK5JJREelSTTLSRkrUniw3K7mhPU7fDkDmAHJlGNqk9vEkJaFJXl9YxCPYsUK15Gnh+1gjIk71w0yOPbZCvcRx8QwoDUKCaE9qjLBAlgApJcR3Sc4w2wpXwPyyRgYmikBpo3jcGKUhhRQO/LwyQLMSAV0g5o3xDkaV8fnlRnTGRtzQyqAoJO+/H2P34bQh7pY+aRzV5yklifs+HU5OBPMIUhHEpeTmxMg4Kp8BSmw22AyZkTspK2Cr1jU0Irx5V6de22Mtt1BXRJcMVJZeNfi5GlPvp4YnhSq/UtUcqAOAPau5H09sHFEKrfUrqCF2dA7V2X2pU5HjBKqRKqHEkXFqgsD0qdgu+Kr60CVhHMV4oKct/ngrzQQow6okhaNkCkA7FgK18NqZOWEjdbR9tJUclj4q3QVBp36DKJCkhWNy05ROAAjJVeIFdzyNfvxpLTq9RxoaA7npvgGyhTWB1lpUEkhSRuSaZK1LS28hYhCGUddh160rhBRTc1sSih6FlOx67Dp0xEkhyQMo+EkA1NRWgp12wcSktCZOfpF2DDcKAaH5k/PExNWhWiZWkT4nVBvQ7jfb6OuRspDkAkZjx5FWNGHcD3OE7MSpzRICOLBnBowpTYb1yQVtYkY8KsisteR78abADE7JC9JZo6ULbA9TsKfLI8KolNSdyGRwnbiDt92RliBZAo2HXXBCer+8I+yTQ+9MrliTxJkuqSoBRuRP7TEUP30yvgZcRVY9RcMxkYfF8Kim47+ODhY8TbXCcVeiPyYmoNCPAFjkSVtUM8pK+pHRmP2gQeK/TTIpVXt+CIyVYvX9qpHXwwkqXOJw/H0y0ZG7AhgdqmqjBYSQ0Udj6gjNWJ4AVIG3th4gilG4S4KenursdyegpWgp/NT/hsFpLUVtcA0kqPSoUY0J6b9NjhkGNFCSOAwtiGKUJ3B38STt3yKKQtlqkLyC2QOpWjKqrWnWtaVH35bKBAtCZFrQyPEJ2UqQZuW3EnfqRkK2Z7KohgRy8cvqCMlGWoruKH7hkaARThZvyUsw9MqSHFANz36kHESTW6mlpDydeXwVHwEbkmpAyQkEUqPaiFEZ1UF/gINKk/s+++DiZGFLf3Mboi/CCvIKOqnfx36YbWlryNIvJUBTmKuDUV67/ADxCOFFLbyrC7NErSAlwincAU8O3I1wlnGNoK6XVmWR4bWP4QzqqniCuyhAB8VeWGNXuWXh2FCwaeZmhngkSWhYuaFAan4UII6ZKUAORauEq9vp1y8TbhEIKsWrsQdqZAFeEr57C9MkTF1KKy+pCVNXTqTt/N/k5IEDmngV5dP0mdi8cC15VFasfs0wcfczq3W2nKLThBaxxpuHjAoCQd9vDBxEsQOiLaJ1Q/Z+GgCU34r/bTBaRCkNcafbytG71QqK812Ox6NhEypAQw0a19WirTaqsTxJPfcDvvhMkCCtJpnp/GT8Sg7nqB1+EZE2yMacbWJo1TmRI5+JjQe+StG6ndWc3oLCFUuzUKdQBSpYVwEqonT4vgdY2rxbmp2/ZPEUrTDxIf//V41erak/bVWq1D8RPXftmghxW6kqSxL6Kcphxp4NSn/A/fhJ3U0q2MUIuAI5izdSaMB8umRy3W6oq7U82KODJStKGlPDplOOuvJiUMyRNx5OiS9qVpX6A2+Wj7E0tuILf6tzW4T6wAtY1EnJg1e/EABP2slDn5JAU/SrabzKBtzIFfi+kYb9SNkRAjegvoSIU8AG+mldsrlV7pKnKqhjV1JpQg8qU7HcZKKlT/ecqbdNzU/0yVBi16bGZKSkEUryDcT49iMdqSLRTiMKKlSKHjXYdTlYClCy+tROdDBtWta09tq5ZER+KNmoUBZBG7CMyfaPLY9ui/qwy865Kio0b0pKutanmfiryrt1HhlRqwqvGs44+m4MfGg+1SvY9MrPD15pKJpcggEqZeI378a9tsrqPwQsCziVW5IdtlbrX22yXppQAl9xGhdDJIBRySo5b+I2HjmRDlsu1pnB6gtE9KhavxDfx98xpAcW5UqJEfKL1Ch3JWv8AN3G+SrnSUTb/AG3MfGtBQDpSuVyG26Gz6vqFmoQQeadgK+JwUKQVsoueElGBHfjXrUUpt4ZKIjswKMtzdiMEKC/da/xymQjfNsCtp3I3hEQIuOD/ABIRXhx+PYj+XI5AOHc7NkLSK7Nvyb1VWo+yVJqT7Uo2ZsAehauq/TBBWcxH9r94orTl33I/Vhy3taV05vQqmMIxB3Wu5+WRiI3uVU7UXRnJcqr7bDkTw964ZCNbIVbo3YRvQUMxIE1DSnv92RiI3uVS29BKL6xVQKemX5Enw7UpXMjGBeyqsZuDbgMAsXYgk99698gRG+e7EoaIXRIrQD4qA18evTLCIqEcIoyq85lWI/b4gkBvoGU382Saxq/KHi1RQUrWvT5eGYprdV1wLkSfaBXYsWr49MEQEoG/DmT4ywlPLdK1B9uIy/EGO6BCt9Xbmx6UTjy5cduR3HKuXbWhRjigBoJyzb8XIcHj32IyciUprpq0T4W5Kft0rQD35DMbKGYRh9WrelT1KniB14967dchtSDyUIHu6kGNTAAAhqKn3/mwkRrnuoVJOAjH2WqfiIJFKnalB9oZGIVZMGD1SjbjkDUCn3YYhSrW5uBCgRVLEncno307ZGQF81XWR1MMTOqMNgASeNd9xXb50xyCPQqi0KG4HIRqNqk+GVUaSW7kERngQ0lfg7b9qVwQG+6EucS8T6Z/eileFaH58RTMgAKW4OJHxgLJv4kV4nwxrfZQ2irQfEpNSDy5bbbnpgkqyWIs4ZJikatUoikhvauWROyUQFgFQrcpiBua0A9qjISu0Ier14qq0q3JifirXbtXGh3qEVMJTAPXZVkrRQvIj5nbIGrVHRc/QFOm9ORNOu/auVTAtUdBzMfwUXcGux7nZq9spoMgioyjbFeA3oQanpvkCEhMYTF6JCCjcqhiSTWmy0pgDPoheUnqEcD6nEfGD8+NQNsjIDvYm1WNnJUsoV6KCKkmm+5ptuOuNBLrh72gM8a8qqI1JNAOJ3/l6UyZA6JKnKlx6WzktyUyEV5V22+EZFibWP6ProDx4hPjZtiTTYEUOTUqGnRWIuC1rMGu6EBCCDuTxIJHQfF1yU7pApXZLAzH1pEW55Dn6oJOx2rUdz/wuV7suu7Xo2Zc/VrhlUMQCA/EtyBJ+z9GE2pV7mFeJZrj91yUhCrfaDCgqB0PfAqlCn72UTO3qjjzJrUgMePbuciQxHNq8jt3uSbmYQychRaM3xjoBtTfv/lYYhlNSmjsfUYCat2JCasG5FeO4oBk+it2KxDn8aMhPwCQNQGu/KoC1riyFplai7+sSm2P78bSg8iDsDVqjpTBRZxvoqrzCMGo0ZBoRUUT4eXvg2tMTKlBfWHIR8CA9eRrU7bgDqMQDbA23HwEu+9UcjqFHWoG3XCQjdDKl0ySESemwIIVwzArT4gNulf9jgARu1YgCesBJJQ8lFaA16EkdMK7rrd9a9N+UY5LUL9kclr1O5pkiB3qOJDRtraFlCiR1ZjzrTnUjYA0Aof9jgqPej1ISZvMPq/vkHpAjkFK/F8VNiP+CyYEK5o9SZqLtZ3qeabGIioPTpTpkJBI4lCdL43C/GFkK/FzDGg79skFNqEolChWYNIKVdeVCe9BTbHZiqypKQtXoApKkh6Up0ag6fPAeagd7cf1urFKenQhweXTx33/AONsI5p3f//Z"
-},function(){function a(a,b){b=b||"";for(var c=1024,d=window.atob(a),e=[],f=0,g=d.length;g>f;f+=c){for(var h=d.slice(f,f+c),i=new Array(h.length),j=0;j<h.length;j++)i[j]=h.charCodeAt(j);var k=new Uint8Array(i);e.push(k)}return new Blob(e,{type:b})}"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=a),exports.base64ToBlob=a):"function"==typeof define&&define.amd?define([],function(){return a}):this.base64ToBlob=a}.call(this),function(){"use strict";angular.module("ui.grid.draggable-rows",["ui.grid"]).constant("uiGridDraggableRowsConstants",{featureName:"draggableRows",ROW_OVER_CLASS:"ui-grid-draggable-row-over",ROW_OVER_ABOVE_CLASS:"ui-grid-draggable-row-over--above",ROW_OVER_BELOW_CLASS:"ui-grid-draggable-row-over--below",POSITION_ABOVE:"above",POSITION_BELOW:"below",publicEvents:{draggableRows:{rowDragged:function(a,b,c){},rowDropped:function(a,b,c){},rowOverRow:function(a,b,c){},rowEnterRow:function(a,b,c){},rowLeavesRow:function(a,b,c){},rowFinishDrag:function(a){}}}}).factory("uiGridDraggableRowsCommon",[function(){return{draggedRow:null,draggedRowEntity:null,position:null,fromIndex:null,toIndex:null}}]).service("uiGridDraggableRowsService",["uiGridDraggableRowsConstants",function(a){this.initializeGrid=function(b,c,d){b.api.registerEventsFromObject(a.publicEvents),b.api.draggableRows.on.rowFinishDrag(c,function(){angular.forEach(d[0].querySelectorAll("."+a.ROW_OVER_CLASS),function(b){b.classList.remove(a.ROW_OVER_CLASS),b.classList.remove(a.ROW_OVER_ABOVE_CLASS),b.classList.remove(a.ROW_OVER_BELOW_CLASS)})})}}]).service("uiGridDraggableRowService",["uiGridDraggableRowsConstants","uiGridDraggableRowsCommon","$parse",function(a,b,c){var d=function(a,b){this.splice(b,0,this.splice(a,1)[0])};this.prepareDraggableRow=function(e,f){var g=e.grid,h=f[0],i=function(){return angular.isString(g.options.data)?c(g.options.data)(g.appScope):g.options.data},j={onDragOverEventListener:function(c){c.preventDefault&&c.preventDefault();var d=c.dataTransfer||c.originalEvent.dataTransfer;d.effectAllowed="copyMove",d.dropEffect="move";var e=c.offsetY||c.layerY||(c.originalEvent?c.originalEvent.offsetY:0);f.addClass(a.ROW_OVER_CLASS),e<this.offsetHeight/2?(b.position=a.POSITION_ABOVE,f.removeClass(a.ROW_OVER_BELOW_CLASS),f.addClass(a.ROW_OVER_ABOVE_CLASS)):(b.position=a.POSITION_BELOW,f.removeClass(a.ROW_OVER_ABOVE_CLASS),f.addClass(a.ROW_OVER_BELOW_CLASS)),g.api.draggableRows.raise.rowOverRow(b,this)},onDragStartEventListener:function(a){this.style.opacity="0.5",a.dataTransfer.setData("Text","move"),b.draggedRow=this,b.draggedRowEntity=e.$parent.$parent.row.entity,b.position=null,b.fromIndex=i().indexOf(b.draggedRowEntity),b.toIndex=null,g.api.draggableRows.raise.rowDragged(b,this)},onDragLeaveEventListener:function(){this.style.opacity="1",this.classList.remove(a.ROW_OVER_CLASS),this.classList.remove(a.ROW_OVER_ABOVE_CLASS),this.classList.remove(a.ROW_OVER_BELOW_CLASS),g.api.draggableRows.raise.rowLeavesRow(b,this)},onDragEnterEventListener:function(){g.api.draggableRows.raise.rowEnterRow(b,this)},onDragEndEventListener:function(){g.api.draggableRows.raise.rowFinishDrag()},onDropEventListener:function(c){var f=b.draggedRow;return c.stopPropagation&&c.stopPropagation(),c.preventDefault&&c.preventDefault(),f===this?!1:(b.toIndex=i().indexOf(e.$parent.$parent.row.entity),b.position===a.POSITION_ABOVE?b.fromIndex<b.toIndex&&(b.toIndex-=1):b.fromIndex>=b.toIndex&&(b.toIndex+=1),e.$apply(function(){d.apply(i(),[b.fromIndex,b.toIndex])}),g.api.draggableRows.raise.rowDropped(b,this),void c.preventDefault())}};h.addEventListener("dragover",j.onDragOverEventListener,!1),h.addEventListener("dragstart",j.onDragStartEventListener,!1),h.addEventListener("dragleave",j.onDragLeaveEventListener,!1),h.addEventListener("dragenter",j.onDragEnterEventListener,!1),h.addEventListener("dragend",j.onDragEndEventListener,!1),h.addEventListener("drop",j.onDropEventListener)}}]).directive("uiGridDraggableRow",["uiGridDraggableRowService",function(a){return{restrict:"ACE",scope:{grid:"="},compile:function(){return{pre:function(b,c){a.prepareDraggableRow(b,c)}}}}}]).directive("uiGridDraggableRows",["uiGridDraggableRowsService",function(a){return{restrict:"A",replace:!0,priority:0,require:"uiGrid",scope:!1,compile:function(){return{pre:function(b,c,d,e){a.initializeGrid(e.grid,b,c)}}}}}])}(),function(a,b){"object"==typeof module&&module.exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return m[e]||(k.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",k.cssRules.length),m[e]=1),e}function d(a,b){var c,d,e=a.style;if(b=b.charAt(0).toUpperCase()+b.slice(1),void 0!==e[b])return b;for(d=0;d<l.length;d++)if(c=l[d]+b,void 0!==e[c])return c}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}k.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.scale*d.width,left:d.scale*d.radius,top:-d.scale*d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.scale*(d.length+d.width),k=2*d.scale*j,l=-(d.width+d.length)*d.scale*2+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k,l=["webkit","Moz","ms","O"],m={},n={lines:12,length:7,width:5,radius:10,scale:1,corners:1,color:"#000",opacity:.25,rotate:0,direction:1,speed:1,trail:100,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",shadow:!1,hwaccel:!1,position:"absolute"};if(h.defaults={},f(h.prototype,{spin:function(b){this.stop();var c=this,d=c.opts,f=c.el=a(null,{className:d.className});if(e(f,{position:d.position,width:0,zIndex:d.zIndex,left:d.left,top:d.top}),b&&b.insertBefore(f,b.firstChild||null),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.scale*(f.length+f.width)+"px",height:f.scale*f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.scale*f.radius+"px,0)",borderRadius:(f.corners*f.scale*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.scale*f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}}),"undefined"!=typeof document){k=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}();var o=e(a("group"),{behavior:"url(#default#VML)"});!d(o,"transform")&&o.adj?i():j=d(o,"animation")}return h}),function(a){"use strict";function b(a,b){return a.module("angularSpinner",[]).constant("SpinJSSpinner",b).provider("usSpinnerConfig",function(){var a={},b={};return{setDefaults:function(b){a=b||a},setTheme:function(a,c){b[a]=c},$get:function(){return{config:a,themes:b}}}}).factory("usSpinnerService",["$rootScope",function(a){var b={};return b.spin=function(b){a.$broadcast("us-spinner:spin",b)},b.stop=function(b){a.$broadcast("us-spinner:stop",b)},b}]).directive("usSpinner",["SpinJSSpinner","usSpinnerConfig",function(b,c){return{scope:!0,link:function(d,e,f){function g(){d.spinner&&d.spinner.stop()}d.spinner=null,d.key=a.isDefined(f.spinnerKey)?f.spinnerKey:!1,d.startActive=a.isDefined(f.spinnerStartActive)?d.$eval(f.spinnerStartActive):d.key?!1:!0,d.spin=function(){d.spinner&&d.spinner.spin(e[0])},d.stop=function(){d.startActive=!1,g()},d.$watch(f.usSpinner,function(h){g(),h=a.extend(c.config,c.themes[f.spinnerTheme],h),d.spinner=new b(h),d.key&&!d.startActive||f.spinnerOn||d.spinner.spin(e[0])},!0),f.spinnerOn&&d.$watch(f.spinnerOn,function(a){a?d.spin():d.stop()}),d.$on("us-spinner:spin",function(a,b){b===d.key&&d.spin()}),d.$on("us-spinner:stop",function(a,b){b===d.key&&d.stop()}),d.$on("$destroy",function(){d.stop(),d.spinner=null})}}}])}"object"==typeof module&&module.exports?module.exports=b(require("angular"),require("spin.js")):"function"==typeof define&&define.amd?define(["angular","spin"],b):b(a.angular,a.Spinner)}(this),function(a,b,c){"use strict";function d(a){var b;if(b=a.match(j)){var c=new Date(0),d=0,f=0;return b[9]&&(d=e(b[9]+b[10]),f=e(b[9]+b[11])),c.setUTCFullYear(e(b[1]),e(b[2])-1,e(b[3])),c.setUTCHours(e(b[4]||0)-d,e(b[5]||0)-f,e(b[6]||0),e(b[7]||0)),c}return a}function e(a){return parseInt(a,10)}function f(a,b,c){var d="";for(0>a&&(d="-",a=-a),a=""+a;a.length<b;)a="0"+a;return c&&(a=a.substr(a.length-b)),d+a}function g(a,d,e){function f(a,c,d,e){return b.isFunction(a)?a:function(){return b.isNumber(a)?[a,c,d,e]:[200,a,c]}}function g(a,f,g,h,j,p,q){function r(a){return b.isString(a)||b.isFunction(a)||a instanceof RegExp?a:b.toJson(a)}function s(b){function d(){var c=b.response(a,f,g,j);t.$$respHeaders=c[2],h(o(c[0]),o(c[1]),t.getAllResponseHeaders(),o(c[3]||""))}function i(){for(var a=0,b=m.length;b>a;a++)if(m[a]===d){m.splice(a,1),h(-1,c,"");break}}return!e&&p&&p.then&&p.then(i),d}var t=new i,u=l[0],v=!1;if(u&&u.match(a,f)){if(!u.matchData(g))throw new Error("Expected "+u+" with different data\nEXPECTED: "+r(u.data)+"\nGOT:      "+g);if(!u.matchHeaders(j))throw new Error("Expected "+u+" with different headers\nEXPECTED: "+r(u.headers)+"\nGOT:      "+r(j));if(l.shift(),u.response)return void m.push(s(u));v=!0}for(var w,x=-1;w=k[++x];)if(w.match(a,f,g,j||{})){if(w.response)(e?e.defer:n)(s(w));else{if(!w.passThrough)throw new Error("No response defined !");d(a,f,g,h,j,p,q)}return}throw v?new Error("No response defined !"):new Error("Unexpected request: "+a+" "+f+"\n"+(u?"Expected "+u:"No more request expected"))}function j(a){b.forEach(["GET","DELETE","JSONP"],function(b){g[a+b]=function(d,e){return g[a](b,d,c,e)}}),b.forEach(["PUT","POST","PATCH"],function(b){g[a+b]=function(c,d,e){return g[a](b,c,d,e)}})}var k=[],l=[],m=[],n=b.bind(m,m.push),o=b.copy;return g.when=function(a,b,c,d){var g=new h(a,b,c,d),i={respond:function(a,b,c,d){g.response=f(a,b,c,d)}};return e&&(i.passThrough=function(){g.passThrough=!0}),k.push(g),i},j("when"),g.expect=function(a,b,c,d){var e=new h(a,b,c,d);return l.push(e),{respond:function(a,b,c,d){e.response=f(a,b,c,d)}}},j("expect"),g.flush=function(c){if(a.$digest(),!m.length)throw new Error("No pending request to flush !");if(b.isDefined(c))for(;c--;){if(!m.length)throw new Error("No more pending request to flush !");m.shift()()}else for(;m.length;)m.shift()();g.verifyNoOutstandingExpectation()},g.verifyNoOutstandingExpectation=function(){if(a.$digest(),l.length)throw new Error("Unsatisfied requests: "+l.join(", "))},g.verifyNoOutstandingRequest=function(){if(m.length)throw new Error("Unflushed requests: "+m.length)},g.resetExpectations=function(){l.length=0,m.length=0},g}function h(a,c,d,e){this.data=d,this.headers=e,this.match=function(c,d,e,f){return a!=c?!1:this.matchUrl(d)?b.isDefined(e)&&!this.matchData(e)?!1:b.isDefined(f)&&!this.matchHeaders(f)?!1:!0:!1},this.matchUrl=function(a){return c?b.isFunction(c.test)?c.test(a):c==a:!0},this.matchHeaders=function(a){return b.isUndefined(e)?!0:b.isFunction(e)?e(a):b.equals(e,a)},this.matchData=function(a){return b.isUndefined(d)?!0:d&&b.isFunction(d.test)?d.test(a):d&&b.isFunction(d)?d(a):d&&!b.isString(d)?b.equals(d,b.fromJson(a)):d==a},this.toString=function(){return a+" "+c}}function i(){i.$$lastInstance=this,this.open=function(a,b,c){this.$$method=a,this.$$url=b,this.$$async=c,this.$$reqHeaders={},this.$$respHeaders={}},this.send=function(a){this.$$data=a},this.setRequestHeader=function(a,b){this.$$reqHeaders[a]=b},this.getResponseHeader=function(a){var d=this.$$respHeaders[a];return d?d:(a=b.lowercase(a),(d=this.$$respHeaders[a])?d:(d=c,b.forEach(this.$$respHeaders,function(c,e){d||b.lowercase(e)!=a||(d=c)}),d))},this.getAllResponseHeaders=function(){var a=[];return b.forEach(this.$$respHeaders,function(b,c){a.push(c+": "+b)}),a.join("\n")},this.abort=b.noop}b.mock={},b.mock.$BrowserProvider=function(){this.$get=function(){return new b.mock.$Browser}},b.mock.$Browser=function(){var a=this;this.isMock=!0,a.$$url="http://server/",a.$$lastUrl=a.$$url,a.pollFns=[],a.$$completeOutstandingRequest=b.noop,a.$$incOutstandingRequestCount=b.noop,a.onUrlChange=function(b){return a.pollFns.push(function(){a.$$lastUrl!=a.$$url&&(a.$$lastUrl=a.$$url,b(a.$$url))}),b},a.cookieHash={},a.lastCookieHash={},a.deferredFns=[],a.deferredNextId=0,a.defer=function(b,c){return c=c||0,a.deferredFns.push({time:a.defer.now+c,fn:b,id:a.deferredNextId}),a.deferredFns.sort(function(a,b){return a.time-b.time}),a.deferredNextId++},a.defer.now=0,a.defer.cancel=function(d){var e;return b.forEach(a.deferredFns,function(a,b){a.id===d&&(e=b)}),e!==c?(a.deferredFns.splice(e,1),!0):!1},a.defer.flush=function(c){if(b.isDefined(c))a.defer.now+=c;else{if(!a.deferredFns.length)throw new Error("No deferred tasks to be flushed");a.defer.now=a.deferredFns[a.deferredFns.length-1].time}for(;a.deferredFns.length&&a.deferredFns[0].time<=a.defer.now;)a.deferredFns.shift().fn()},a.$$baseHref="",a.baseHref=function(){return this.$$baseHref}},b.mock.$Browser.prototype={poll:function(){b.forEach(this.pollFns,function(a){a()})},addPollFn:function(a){return this.pollFns.push(a),a},url:function(a,b){return a?(this.$$url=a,this):this.$$url},cookies:function(a,c){return a?void(b.isUndefined(c)?delete this.cookieHash[a]:b.isString(c)&&c.length<=4096&&(this.cookieHash[a]=c)):(b.equals(this.cookieHash,this.lastCookieHash)||(this.lastCookieHash=b.copy(this.cookieHash),this.cookieHash=b.copy(this.cookieHash)),this.cookieHash)},notifyWhenNoOutstandingRequests:function(a){a()}},b.mock.$ExceptionHandlerProvider=function(){var a;this.mode=function(b){switch(b){case"rethrow":a=function(a){throw a};break;case"log":var c=[];a=function(a){1==arguments.length?c.push(a):c.push([].slice.call(arguments,0))},a.errors=c;break;default:throw new Error("Unknown mode '"+b+"', only 'log'/'rethrow' modes are allowed!")}},this.$get=function(){return a},this.mode("rethrow")},b.mock.$LogProvider=function(){function a(a,b,c){return a.concat(Array.prototype.slice.call(b,c))}var c=!0;this.debugEnabled=function(a){return b.isDefined(a)?(c=a,this):c},this.$get=function(){var d={log:function(){d.log.logs.push(a([],arguments,0))},warn:function(){d.warn.logs.push(a([],arguments,0))},info:function(){d.info.logs.push(a([],arguments,0))},error:function(){d.error.logs.push(a([],arguments,0))},debug:function(){c&&d.debug.logs.push(a([],arguments,0))}};return d.reset=function(){d.log.logs=[],d.info.logs=[],d.warn.logs=[],d.error.logs=[],d.debug.logs=[]},d.assertEmpty=function(){var a=[];if(b.forEach(["error","warn","info","log","debug"],function(c){b.forEach(d[c].logs,function(d){b.forEach(d,function(b){a.push("MOCK $log ("+c+"): "+String(b)+"\n"+(b.stack||""))})})}),a.length)throw a.unshift("Expected $log to be empty! Either a message was logged unexpectedly, or an expected log message was not checked and removed:"),a.push(""),new Error(a.join("\n---------\n"))},d.reset(),d}},b.mock.$IntervalProvider=function(){this.$get=["$rootScope","$q",function(a,d){var e=[],f=0,g=0,h=function(h,i,j,k){function l(){if(m.notify(o++),j>0&&o>=j){var d;m.resolve(o),b.forEach(e,function(a,b){a.id===n.$$intervalId&&(d=b)}),d!==c&&e.splice(d,1)}p||a.$apply()}var m=d.defer(),n=m.promise,o=0,p=b.isDefined(k)&&!k;return j=b.isDefined(j)?j:0,n.then(null,null,h),n.$$intervalId=f,e.push({nextTime:g+i,delay:i,fn:l,id:f,deferred:m}),e.sort(function(a,b){return a.nextTime-b.nextTime}),f++,n};return h.cancel=function(a){if(!a)return!1;var d;return b.forEach(e,function(b,c){b.id===a.$$intervalId&&(d=c)}),d!==c?(e[d].deferred.reject("canceled"),e.splice(d,1),!0):!1},h.flush=function(a){for(g+=a;e.length&&e[0].nextTime<=g;){var b=e[0];b.fn(),b.nextTime+=b.delay,e.sort(function(a,b){return a.nextTime-b.nextTime})}return a},h}]};var j=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?:\:?(\d\d)(?:\:?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/;if(b.mock.TzDate=function(a,c){var e=new Date(0);if(b.isString(c)){var g=c;if(e.origDate=d(c),c=e.origDate.getTime(),isNaN(c))throw{name:"Illegal Argument",message:"Arg '"+g+"' passed into TzDate constructor is not a valid date string"}}else e.origDate=new Date(c);var h=new Date(c).getTimezoneOffset();e.offsetDiff=60*h*1e3-1e3*a*60*60,e.date=new Date(c+e.offsetDiff),e.getTime=function(){return e.date.getTime()-e.offsetDiff},e.toLocaleDateString=function(){return e.date.toLocaleDateString()},e.getFullYear=function(){return e.date.getFullYear()},e.getMonth=function(){return e.date.getMonth()},e.getDate=function(){return e.date.getDate()},e.getHours=function(){return e.date.getHours()},e.getMinutes=function(){return e.date.getMinutes()},e.getSeconds=function(){return e.date.getSeconds()},e.getMilliseconds=function(){return e.date.getMilliseconds()},e.getTimezoneOffset=function(){return 60*a},e.getUTCFullYear=function(){return e.origDate.getUTCFullYear()},e.getUTCMonth=function(){return e.origDate.getUTCMonth()},e.getUTCDate=function(){return e.origDate.getUTCDate()},e.getUTCHours=function(){return e.origDate.getUTCHours()},e.getUTCMinutes=function(){return e.origDate.getUTCMinutes()},e.getUTCSeconds=function(){return e.origDate.getUTCSeconds()},e.getUTCMilliseconds=function(){return e.origDate.getUTCMilliseconds()},e.getDay=function(){return e.date.getDay()},e.toISOString&&(e.toISOString=function(){return f(e.origDate.getUTCFullYear(),4)+"-"+f(e.origDate.getUTCMonth()+1,2)+"-"+f(e.origDate.getUTCDate(),2)+"T"+f(e.origDate.getUTCHours(),2)+":"+f(e.origDate.getUTCMinutes(),2)+":"+f(e.origDate.getUTCSeconds(),2)+"."+f(e.origDate.getUTCMilliseconds(),3)+"Z"});var i=["getUTCDay","getYear","setDate","setFullYear","setHours","setMilliseconds","setMinutes","setMonth","setSeconds","setTime","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","setYear","toDateString","toGMTString","toJSON","toLocaleFormat","toLocaleString","toLocaleTimeString","toSource","toString","toTimeString","toUTCString","valueOf"];return b.forEach(i,function(a){e[a]=function(){throw new Error("Method '"+a+"' is not implemented in the TzDate mock")}}),e},b.mock.TzDate.prototype=Date.prototype,b.mock.animate=b.module("ngAnimateMock",["ng"]).config(["$provide",function(a){var c=[];a.value("$$animateReflow",function(a){var b=c.length;return c.push(a),function(){c.splice(b,1)}}),a.decorator("$animate",["$delegate","$$asyncCallback",function(a,d){var e={queue:[],enabled:a.enabled,triggerCallbacks:function(){d.flush()},triggerReflow:function(){b.forEach(c,function(a){a()}),c=[]}};return b.forEach(["enter","leave","move","addClass","removeClass","setClass"],function(b){e[b]=function(){e.queue.push({event:b,element:arguments[0],args:arguments}),a[b].apply(a,arguments)}}),e}])}]),b.mock.dump=function(a){function c(a){var e;return b.isElement(a)?(a=b.element(a),e=b.element("<div></div>"),b.forEach(a,function(a){e.append(b.element(a).clone())}),e=e.html()):b.isArray(a)?(e=[],b.forEach(a,function(a){e.push(c(a))}),e="[ "+e.join(", ")+" ]"):e=b.isObject(a)?b.isFunction(a.$eval)&&b.isFunction(a.$apply)?d(a):a instanceof Error?a.stack||""+a.name+": "+a.message:b.toJson(a,!0):String(a),e}function d(a,c){c=c||"  ";var e=[c+"Scope("+a.$id+"): {"];for(var f in a)Object.prototype.hasOwnProperty.call(a,f)&&!f.match(/^(\$|this)/)&&e.push("  "+f+": "+b.toJson(a[f]));for(var g=a.$$childHead;g;)e.push(d(g,c+"  ")),g=g.$$nextSibling;return e.push("}"),e.join("\n"+c)}return c(a)},b.mock.$HttpBackendProvider=function(){this.$get=["$rootScope",g]},b.mock.$TimeoutDecorator=function(a,c){function d(a){var c=[];return b.forEach(a,function(a){c.push("{id: "+a.id+", time: "+a.time+"}")}),c.join(", ")}return a.flush=function(a){c.defer.flush(a)},a.verifyNoPendingTasks=function(){if(c.deferredFns.length)throw new Error("Deferred tasks to flush ("+c.deferredFns.length+"): "+d(c.deferredFns))},a},b.mock.$RAFDecorator=function(a){var b=[],c=function(a){var c=b.length;return b.push(a),function(){b.splice(c,1)}};return c.supported=a.supported,c.flush=function(){if(0===b.length)throw new Error("No rAF callbacks present");for(var a=b.length,c=0;a>c;c++)b[c]();b=[]},c},b.mock.$AsyncCallbackDecorator=function(a){var c=[],d=function(a){c.push(a)};return d.flush=function(){b.forEach(c,function(a){a()}),c=[]},d},b.mock.$RootElementProvider=function(){this.$get=function(){return b.element("<div ng-app></div>")}},b.module("ngMock",["ng"]).provider({$browser:b.mock.$BrowserProvider,$exceptionHandler:b.mock.$ExceptionHandlerProvider,$log:b.mock.$LogProvider,$interval:b.mock.$IntervalProvider,$httpBackend:b.mock.$HttpBackendProvider,$rootElement:b.mock.$RootElementProvider}).config(["$provide",function(a){a.decorator("$timeout",b.mock.$TimeoutDecorator),a.decorator("$$rAF",b.mock.$RAFDecorator),a.decorator("$$asyncCallback",b.mock.$AsyncCallbackDecorator)}]),b.module("ngMockE2E",["ng"]).config(["$provide",function(a){a.decorator("$httpBackend",b.mock.e2e.$httpBackendDecorator)}]),b.mock.e2e={},b.mock.e2e.$httpBackendDecorator=["$rootScope","$delegate","$browser",g],b.mock.clearDataCache=function(){var a,c=b.element.cache;for(a in c)if(Object.prototype.hasOwnProperty.call(c,a)){var d=c[a].handle;d&&b.element(d.elem).off(),delete c[a]}},a.jasmine||a.mocha){var k=null,l=function(){return!!k};(a.beforeEach||a.setup)(function(){k=this}),(a.afterEach||a.teardown)(function(){var a=k.$injector;k.$injector=null,k.$modules=null,k=null,a&&(a.get("$rootElement").off(),a.get("$browser").pollFns.length=0),b.mock.clearDataCache(),b.forEach(b.element.fragments,function(a,c){delete b.element.fragments[c]}),i.$$lastInstance=null,b.forEach(b.callbacks,function(a,c){delete b.callbacks[c]}),b.callbacks.counter=0}),a.module=b.mock.module=function(){function a(){if(k.$injector)throw new Error("Injector already created, can not register a module!");var a=k.$modules||(k.$modules=[]);b.forEach(c,function(c){b.isObject(c)&&!b.isArray(c)?a.push(function(a){b.forEach(c,function(b,c){a.value(c,b)})}):a.push(c)})}var c=Array.prototype.slice.call(arguments,0);return l()?a():a};var m=function(a,b){this.message=a.message,this.name=a.name,a.line&&(this.line=a.line),a.sourceId&&(this.sourceId=a.sourceId),a.stack&&b&&(this.stack=a.stack+"\n"+b.stack),a.stackArray&&(this.stackArray=a.stackArray)};m.prototype.toString=Error.prototype.toString,a.inject=b.mock.inject=function(){function a(){var a=k.$modules||[];a.unshift("ngMock"),a.unshift("ng");var e=k.$injector;e||(e=k.$injector=b.injector(a));for(var f=0,g=c.length;g>f;f++)try{e.invoke(c[f]||b.noop,this)}catch(h){if(h.stack&&d)throw new m(h,d);throw h}finally{d=null}}var c=Array.prototype.slice.call(arguments,0),d=new Error("Declaration Location");return l()?a.call(k):a}}}(window,window.angular),function(){var a;a=function(a,b){var c,d;for(c in a)d=a[c],"$$hashKey"!==c&&(b[c]=d)},angular.module("builder.controller",["builder.provider"]).controller("fbFormObjectEditableController",["$scope","$injector",function(b,c){var d;return d=c.get("$builder"),b.setupScope=function(c){var e;return a(c,b),b.optionsText=c.options.join("\n"),b.$watch("[label, description, placeholder, required, options, validation]",function(){return c.label=b.label,c.description=b.description,c.placeholder=b.placeholder,c.required=b.required,c.options=b.options,c.validation=b.validation},!0),b.$watch("optionsText",function(a){var c;return b.options=function(){var b,d,e,f;for(e=a.split("\n"),f=[],b=0,d=e.length;d>b;b++)c=e[b],c.length>0&&f.push(c);return f}(),b.inputText=b.options[0]}),e=d.components[c.component],b.validationOptions=e.validationOptions},b.data={model:null,backup:function(){return this.model={label:b.label,description:b.description,placeholder:b.placeholder,required:b.required,optionsText:b.optionsText,validation:b.validation}},rollback:function(){return this.model?(b.label=this.model.label,b.description=this.model.description,b.placeholder=this.model.placeholder,b.required=this.model.required,b.optionsText=this.model.optionsText,b.validation=this.model.validation):void 0}}}]).controller("fbComponentsController",["$scope","$injector",function(a,b){var c;return c=b.get("$builder"),a.selectGroup=function(b,d){var e,f,g,h;null!=b&&b.preventDefault(),a.activeGroup=d,a.components=[],g=c.components,h=[];for(f in g)e=g[f],e.group===d&&h.push(a.components.push(e));return h},a.groups=c.groups,a.activeGroup=a.groups[0],a.allComponents=c.components,a.$watch("allComponents",function(){return a.selectGroup(null,a.activeGroup)})}]).controller("fbComponentController",["$scope",function(b){return b.copyObjectToScope=function(c){return a(c,b)}}]).controller("fbFormController",["$scope","$injector",function(a,b){var c,d;return c=b.get("$builder"),d=b.get("$timeout"),null==a.input&&(a.input=[]),a.$watch("form",function(){return a.input.length>a.form.length&&a.input.splice(a.form.length),d(function(){return a.$broadcast(c.broadcastChannel.updateInput)})},!0)}]).controller("fbFormObjectController",["$scope","$injector",function(b,c){var d;return d=c.get("$builder"),b.copyObjectToScope=function(c){return a(c,b)},b.updateInput=function(a){var c;return c={id:b.formObject.id,label:b.formObject.label,value:null!=a?a:""},b.$parent.input.splice(b.$index,1,c)}}])}.call(this),function(){angular.module("builder.directive",["builder.provider","builder.controller","builder.drag","validator"]).directive("fbBuilder",["$injector",function(a){var b,c;return b=a.get("$builder"),c=a.get("$drag"),{restrict:"A",scope:{fbBuilder:"="},template:"<div class='form-horizontal'>\n    <div class='fb-form-object-editable' ng-repeat=\"object in formObjects\"\n        fb-form-object-editable=\"object\"></div>\n</div>",link:function(a,d,e){var f,g,h;return a.formName=e.fbBuilder,null==(g=b.forms)[h=a.formName]&&(g[h]=[]),a.formObjects=b.forms[a.formName],f=!0,$(d).addClass("fb-builder"),c.droppable($(d),{move:function(a){var b,c,e,g,h,i,j,k,l,m,n;if(f&&($("div.fb-form-object-editable").popover("hide"),f=!1),e=$(d).find(".fb-form-object-editable:not(.empty,.dragging)"),0===e.length)return void(0===$(d).find(".fb-form-object-editable.empty").length&&$(d).find(">div:first").append($("<div class='fb-form-object-editable empty'></div>")));for(j=[],j.push(-1e3),h=k=0,m=e.length;m>k;h=k+=1)c=$(e[h]),i=c.offset(),g=c.height(),j.push(i.top+g/2);for(j.push(j[j.length-1]+1e3),h=l=1,n=j.length;n>l;h=l+=1)if(a.pageY>j[h-1]&&a.pageY<=j[h]){$(d).find(".empty").remove(),b=$("<div class='fb-form-object-editable empty'></div>"),h-1<e.length?b.insertBefore($(e[h-1])):b.insertAfter($(e[h-2]));break}},out:function(){return f&&($("div.fb-form-object-editable").popover("hide"),f=!1),$(d).find(".empty").remove()},up:function(g,h,i){var j,k,l;return f=!0,c.isMouseMoved()?(h||"drag"!==i.mode?h&&("mirror"===i.mode&&b.insertFormObject(a.formName,$(d).find(".empty").index(".fb-form-object-editable"),{component:i.object.componentName}),"drag"===i.mode&&(l=i.object.formObject.index,k=$(d).find(".empty").index(".fb-form-object-editable"),k>l&&k--,b.updateFormObjectIndex(a.formName,l,k))):(j=i.object.formObject,j.editable&&b.removeFormObject(e.fbBuilder,j.index)),$(d).find(".empty").remove()):void $(d).find(".empty").remove()}})}}}]).directive("fbFormObjectEditable",["$injector",function(a){var b,c,d,e;return b=a.get("$builder"),d=a.get("$drag"),c=a.get("$compile"),e=a.get("$validator"),{restrict:"A",controller:"fbFormObjectEditableController",scope:{formObject:"=fbFormObjectEditable"},link:function(a,f){var g;return a.inputArray=[],a.$component=b.components[a.formObject.component],a.setupScope(a.formObject),a.$watch("$component.template",function(b){var d;if(b)return d=c(b)(a),$(f).html(d)}),$(f).on("click",function(){return!1}),d.draggable($(f),{object:{formObject:a.formObject}}),a.formObject.editable?(g={},a.$watch("$component.popoverTemplate",function(b){return b?($(f).removeClass(g.id),g={id:"fb-"+Math.random().toString().substr(2),isClickedSave:!1,view:null,html:b},g.html=$(g.html).addClass(g.id),g.view=c(g.html)(a),$(f).addClass(g.id),$(f).popover({html:!0,title:a.$component.label,content:g.view,container:"body"})):void 0}),a.popover={save:function(b){b.preventDefault(),e.validate(a).success(function(){return g.isClickedSave=!0,$(f).popover("hide")})},remove:function(c){c.preventDefault(),b.removeFormObject(a.$parent.formName,a.$parent.$index),$(f).popover("hide")},shown:function(){return a.data.backup(),g.isClickedSave=!1},cancel:function(b){a.data.rollback(),b&&(b.preventDefault(),$(f).popover("hide"))}},$(f).on("show.bs.popover",function(){var a,b,c;return d.isMouseMoved()?!1:($("div.fb-form-object-editable:not(."+g.id+")").popover("hide"),a=$("form."+g.id).closest(".popover"),a.length>0?(b=$(f).offset().top+$(f).height()/2,c=b-a.height()/2,a.css({position:"absolute",top:c}),a.show(),setTimeout(function(){return a.addClass("in"),$(f).triggerHandler("shown.bs.popover")},0),!1):void 0)}),$(f).on("shown.bs.popover",function(){$(".popover ."+g.id+" input:first").select(),a.$apply(function(){return a.popover.shown()})}),$(f).on("hide.bs.popover",function(){var b;return b=$("form."+g.id).closest(".popover"),g.isClickedSave||(a.$$phase||a.$root.$$phase?a.popover.cancel():a.$apply(function(){return a.popover.cancel()})),b.removeClass("in"),setTimeout(function(){return b.hide()},300),!1})):void 0}}}]).directive("fbComponents",function(){return{restrict:"A",template:'<ul ng-if="groups.length > 1" class="nav nav-tabs nav-justified">\n    <li ng-repeat="group in groups" ng-class="{active:activeGroup==group}">\n        <a href=\'#\' ng-click="selectGroup($event, group)">{{group}}</a>\n    </li>\n</ul>\n<div class=\'form-horizontal\'>\n    <div class=\'fb-component\' ng-repeat="component in components"\n        fb-component="component"></div>\n</div>',controller:"fbComponentsController"}}).directive("fbComponent",["$injector",function(a){var b,c,d;return b=a.get("$builder"),d=a.get("$drag"),c=a.get("$compile"),{restrict:"A",scope:{component:"=fbComponent"},controller:"fbComponentController",link:function(a,b){return a.copyObjectToScope(a.component),d.draggable($(b),{
+},function(){function a(a,b){b=b||"";for(var c=1024,d=window.atob(a),e=[],f=0,g=d.length;g>f;f+=c){for(var h=d.slice(f,f+c),i=new Array(h.length),j=0;j<h.length;j++)i[j]=h.charCodeAt(j);var k=new Uint8Array(i);e.push(k)}return new Blob(e,{type:b})}"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=a),exports.base64ToBlob=a):"function"==typeof define&&define.amd?define([],function(){return a}):this.base64ToBlob=a}.call(this),function(){"use strict";angular.module("ui.grid.draggable-rows",["ui.grid"]).constant("uiGridDraggableRowsConstants",{featureName:"draggableRows",ROW_OVER_CLASS:"ui-grid-draggable-row-over",ROW_OVER_ABOVE_CLASS:"ui-grid-draggable-row-over--above",ROW_OVER_BELOW_CLASS:"ui-grid-draggable-row-over--below",POSITION_ABOVE:"above",POSITION_BELOW:"below",publicEvents:{draggableRows:{rowDragged:function(a,b,c){},rowDropped:function(a,b,c){},rowOverRow:function(a,b,c){},rowEnterRow:function(a,b,c){},rowLeavesRow:function(a,b,c){},rowFinishDrag:function(a){}}}}).factory("uiGridDraggableRowsCommon",[function(){return{draggedRow:null,draggedRowEntity:null,position:null,fromIndex:null,toIndex:null}}]).service("uiGridDraggableRowsService",["uiGridDraggableRowsConstants",function(a){this.initializeGrid=function(b,c,d){b.api.registerEventsFromObject(a.publicEvents),b.api.draggableRows.on.rowFinishDrag(c,function(){angular.forEach(d[0].querySelectorAll("."+a.ROW_OVER_CLASS),function(b){b.classList.remove(a.ROW_OVER_CLASS),b.classList.remove(a.ROW_OVER_ABOVE_CLASS),b.classList.remove(a.ROW_OVER_BELOW_CLASS)})})}}]).service("uiGridDraggableRowService",["uiGridDraggableRowsConstants","uiGridDraggableRowsCommon","$parse",function(a,b,c){var d=function(a,b){this.splice(b,0,this.splice(a,1)[0])};this.prepareDraggableRow=function(e,f){var g=e.grid,h=f[0],i=function(){return angular.isString(g.options.data)?c(g.options.data)(g.appScope):g.options.data},j={onDragOverEventListener:function(c){c.preventDefault&&c.preventDefault();var d=c.dataTransfer||c.originalEvent.dataTransfer;d.effectAllowed="copyMove",d.dropEffect="move";var e=c.offsetY||c.layerY||(c.originalEvent?c.originalEvent.offsetY:0);f.addClass(a.ROW_OVER_CLASS),e<this.offsetHeight/2?(b.position=a.POSITION_ABOVE,f.removeClass(a.ROW_OVER_BELOW_CLASS),f.addClass(a.ROW_OVER_ABOVE_CLASS)):(b.position=a.POSITION_BELOW,f.removeClass(a.ROW_OVER_ABOVE_CLASS),f.addClass(a.ROW_OVER_BELOW_CLASS)),g.api.draggableRows.raise.rowOverRow(b,this)},onDragStartEventListener:function(a){this.style.opacity="0.5",a.dataTransfer.setData("Text","move"),b.draggedRow=this,b.draggedRowEntity=e.$parent.$parent.row.entity,b.position=null,b.fromIndex=i().indexOf(b.draggedRowEntity),b.toIndex=null,g.api.draggableRows.raise.rowDragged(b,this)},onDragLeaveEventListener:function(){this.style.opacity="1",this.classList.remove(a.ROW_OVER_CLASS),this.classList.remove(a.ROW_OVER_ABOVE_CLASS),this.classList.remove(a.ROW_OVER_BELOW_CLASS),g.api.draggableRows.raise.rowLeavesRow(b,this)},onDragEnterEventListener:function(){g.api.draggableRows.raise.rowEnterRow(b,this)},onDragEndEventListener:function(){g.api.draggableRows.raise.rowFinishDrag()},onDropEventListener:function(c){var f=b.draggedRow;return c.stopPropagation&&c.stopPropagation(),c.preventDefault&&c.preventDefault(),f===this?!1:(b.toIndex=i().indexOf(e.$parent.$parent.row.entity),b.position===a.POSITION_ABOVE?b.fromIndex<b.toIndex&&(b.toIndex-=1):b.fromIndex>=b.toIndex&&(b.toIndex+=1),e.$apply(function(){d.apply(i(),[b.fromIndex,b.toIndex])}),g.api.draggableRows.raise.rowDropped(b,this),void c.preventDefault())}};h.addEventListener("dragover",j.onDragOverEventListener,!1),h.addEventListener("dragstart",j.onDragStartEventListener,!1),h.addEventListener("dragleave",j.onDragLeaveEventListener,!1),h.addEventListener("dragenter",j.onDragEnterEventListener,!1),h.addEventListener("dragend",j.onDragEndEventListener,!1),h.addEventListener("drop",j.onDropEventListener)}}]).directive("uiGridDraggableRow",["uiGridDraggableRowService",function(a){return{restrict:"ACE",scope:{grid:"="},compile:function(){return{pre:function(b,c){a.prepareDraggableRow(b,c)}}}}}]).directive("uiGridDraggableRows",["uiGridDraggableRowsService",function(a){return{restrict:"A",replace:!0,priority:0,require:"uiGrid",scope:!1,compile:function(){return{pre:function(b,c,d,e){a.initializeGrid(e.grid,b,c)}}}}}])}(),function(a,b){"object"==typeof module&&module.exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return m[e]||(k.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",k.cssRules.length),m[e]=1),e}function d(a,b){var c,d,e=a.style;if(b=b.charAt(0).toUpperCase()+b.slice(1),void 0!==e[b])return b;for(d=0;d<l.length;d++)if(c=l[d]+b,void 0!==e[c])return c}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}k.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.scale*d.width,left:d.scale*d.radius,top:-d.scale*d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.scale*(d.length+d.width),k=2*d.scale*j,l=-(d.width+d.length)*d.scale*2+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k,l=["webkit","Moz","ms","O"],m={},n={lines:12,length:7,width:5,radius:10,scale:1,corners:1,color:"#000",opacity:.25,rotate:0,direction:1,speed:1,trail:100,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",shadow:!1,hwaccel:!1,position:"absolute"};if(h.defaults={},f(h.prototype,{spin:function(b){this.stop();var c=this,d=c.opts,f=c.el=a(null,{className:d.className});if(e(f,{position:d.position,width:0,zIndex:d.zIndex,left:d.left,top:d.top}),b&&b.insertBefore(f,b.firstChild||null),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.scale*(f.length+f.width)+"px",height:f.scale*f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.scale*f.radius+"px,0)",borderRadius:(f.corners*f.scale*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.scale*f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}}),"undefined"!=typeof document){k=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}();var o=e(a("group"),{behavior:"url(#default#VML)"});!d(o,"transform")&&o.adj?i():j=d(o,"animation")}return h}),function(a){"use strict";function b(a,b){return a.module("angularSpinner",[]).constant("SpinJSSpinner",b).provider("usSpinnerConfig",function(){var a={},b={};return{setDefaults:function(b){a=b||a},setTheme:function(a,c){b[a]=c},$get:function(){return{config:a,themes:b}}}}).factory("usSpinnerService",["$rootScope",function(a){var b={};return b.spin=function(b){a.$broadcast("us-spinner:spin",b)},b.stop=function(b){a.$broadcast("us-spinner:stop",b)},b}]).directive("usSpinner",["SpinJSSpinner","usSpinnerConfig",function(b,c){return{scope:!0,link:function(d,e,f){function g(){d.spinner&&d.spinner.stop()}d.spinner=null,d.key=a.isDefined(f.spinnerKey)?f.spinnerKey:!1,d.startActive=a.isDefined(f.spinnerStartActive)?d.$eval(f.spinnerStartActive):!d.key,d.spin=function(){d.spinner&&d.spinner.spin(e[0])},d.stop=function(){d.startActive=!1,g()},d.$watch(f.usSpinner,function(h){g(),h=a.extend({},c.config,c.themes[f.spinnerTheme],h),d.spinner=new b(h),d.key&&!d.startActive||f.spinnerOn||d.spinner.spin(e[0])},!0),f.spinnerOn&&d.$watch(f.spinnerOn,function(a){a?d.spin():d.stop()}),d.$on("us-spinner:spin",function(a,b){b===d.key&&d.spin()}),d.$on("us-spinner:stop",function(a,b){b===d.key&&d.stop()}),d.$on("$destroy",function(){d.stop(),d.spinner=null})}}}])}"object"==typeof module&&module.exports?module.exports=b(require("angular"),require("spin.js")):"function"==typeof define&&define.amd?define(["angular","spin"],b):b(a.angular,a.Spinner)}(this),function(a,b,c){"use strict";function d(a){var b;if(b=a.match(j)){var c=new Date(0),d=0,f=0;return b[9]&&(d=e(b[9]+b[10]),f=e(b[9]+b[11])),c.setUTCFullYear(e(b[1]),e(b[2])-1,e(b[3])),c.setUTCHours(e(b[4]||0)-d,e(b[5]||0)-f,e(b[6]||0),e(b[7]||0)),c}return a}function e(a){return parseInt(a,10)}function f(a,b,c){var d="";for(0>a&&(d="-",a=-a),a=""+a;a.length<b;)a="0"+a;return c&&(a=a.substr(a.length-b)),d+a}function g(a,d,e){function f(a,c,d,e){return b.isFunction(a)?a:function(){return b.isNumber(a)?[a,c,d,e]:[200,a,c]}}function g(a,f,g,h,j,p,q){function r(a){return b.isString(a)||b.isFunction(a)||a instanceof RegExp?a:b.toJson(a)}function s(b){function d(){var c=b.response(a,f,g,j);t.$$respHeaders=c[2],h(o(c[0]),o(c[1]),t.getAllResponseHeaders(),o(c[3]||""))}function i(){for(var a=0,b=m.length;b>a;a++)if(m[a]===d){m.splice(a,1),h(-1,c,"");break}}return!e&&p&&p.then&&p.then(i),d}var t=new i,u=l[0],v=!1;if(u&&u.match(a,f)){if(!u.matchData(g))throw new Error("Expected "+u+" with different data\nEXPECTED: "+r(u.data)+"\nGOT:      "+g);if(!u.matchHeaders(j))throw new Error("Expected "+u+" with different headers\nEXPECTED: "+r(u.headers)+"\nGOT:      "+r(j));if(l.shift(),u.response)return void m.push(s(u));v=!0}for(var w,x=-1;w=k[++x];)if(w.match(a,f,g,j||{})){if(w.response)(e?e.defer:n)(s(w));else{if(!w.passThrough)throw new Error("No response defined !");d(a,f,g,h,j,p,q)}return}throw v?new Error("No response defined !"):new Error("Unexpected request: "+a+" "+f+"\n"+(u?"Expected "+u:"No more request expected"))}function j(a){b.forEach(["GET","DELETE","JSONP"],function(b){g[a+b]=function(d,e){return g[a](b,d,c,e)}}),b.forEach(["PUT","POST","PATCH"],function(b){g[a+b]=function(c,d,e){return g[a](b,c,d,e)}})}var k=[],l=[],m=[],n=b.bind(m,m.push),o=b.copy;return g.when=function(a,b,c,d){var g=new h(a,b,c,d),i={respond:function(a,b,c,d){g.response=f(a,b,c,d)}};return e&&(i.passThrough=function(){g.passThrough=!0}),k.push(g),i},j("when"),g.expect=function(a,b,c,d){var e=new h(a,b,c,d);return l.push(e),{respond:function(a,b,c,d){e.response=f(a,b,c,d)}}},j("expect"),g.flush=function(c){if(a.$digest(),!m.length)throw new Error("No pending request to flush !");if(b.isDefined(c))for(;c--;){if(!m.length)throw new Error("No more pending request to flush !");m.shift()()}else for(;m.length;)m.shift()();g.verifyNoOutstandingExpectation()},g.verifyNoOutstandingExpectation=function(){if(a.$digest(),l.length)throw new Error("Unsatisfied requests: "+l.join(", "))},g.verifyNoOutstandingRequest=function(){if(m.length)throw new Error("Unflushed requests: "+m.length)},g.resetExpectations=function(){l.length=0,m.length=0},g}function h(a,c,d,e){this.data=d,this.headers=e,this.match=function(c,d,e,f){return a!=c?!1:this.matchUrl(d)?b.isDefined(e)&&!this.matchData(e)?!1:!b.isDefined(f)||this.matchHeaders(f):!1},this.matchUrl=function(a){return c?b.isFunction(c.test)?c.test(a):c==a:!0},this.matchHeaders=function(a){return b.isUndefined(e)?!0:b.isFunction(e)?e(a):b.equals(e,a)},this.matchData=function(a){return b.isUndefined(d)?!0:d&&b.isFunction(d.test)?d.test(a):d&&b.isFunction(d)?d(a):d&&!b.isString(d)?b.equals(d,b.fromJson(a)):d==a},this.toString=function(){return a+" "+c}}function i(){i.$$lastInstance=this,this.open=function(a,b,c){this.$$method=a,this.$$url=b,this.$$async=c,this.$$reqHeaders={},this.$$respHeaders={}},this.send=function(a){this.$$data=a},this.setRequestHeader=function(a,b){this.$$reqHeaders[a]=b},this.getResponseHeader=function(a){var d=this.$$respHeaders[a];return d?d:(a=b.lowercase(a),(d=this.$$respHeaders[a])?d:(d=c,b.forEach(this.$$respHeaders,function(c,e){d||b.lowercase(e)!=a||(d=c)}),d))},this.getAllResponseHeaders=function(){var a=[];return b.forEach(this.$$respHeaders,function(b,c){a.push(c+": "+b)}),a.join("\n")},this.abort=b.noop}b.mock={},b.mock.$BrowserProvider=function(){this.$get=function(){return new b.mock.$Browser}},b.mock.$Browser=function(){var a=this;this.isMock=!0,a.$$url="http://server/",a.$$lastUrl=a.$$url,a.pollFns=[],a.$$completeOutstandingRequest=b.noop,a.$$incOutstandingRequestCount=b.noop,a.onUrlChange=function(b){return a.pollFns.push(function(){a.$$lastUrl!=a.$$url&&(a.$$lastUrl=a.$$url,b(a.$$url))}),b},a.cookieHash={},a.lastCookieHash={},a.deferredFns=[],a.deferredNextId=0,a.defer=function(b,c){return c=c||0,a.deferredFns.push({time:a.defer.now+c,fn:b,id:a.deferredNextId}),a.deferredFns.sort(function(a,b){return a.time-b.time}),a.deferredNextId++},a.defer.now=0,a.defer.cancel=function(d){var e;return b.forEach(a.deferredFns,function(a,b){a.id===d&&(e=b)}),e!==c?(a.deferredFns.splice(e,1),!0):!1},a.defer.flush=function(c){if(b.isDefined(c))a.defer.now+=c;else{if(!a.deferredFns.length)throw new Error("No deferred tasks to be flushed");a.defer.now=a.deferredFns[a.deferredFns.length-1].time}for(;a.deferredFns.length&&a.deferredFns[0].time<=a.defer.now;)a.deferredFns.shift().fn()},a.$$baseHref="",a.baseHref=function(){return this.$$baseHref}},b.mock.$Browser.prototype={poll:function(){b.forEach(this.pollFns,function(a){a()})},addPollFn:function(a){return this.pollFns.push(a),a},url:function(a,b){return a?(this.$$url=a,this):this.$$url},cookies:function(a,c){return a?void(b.isUndefined(c)?delete this.cookieHash[a]:b.isString(c)&&c.length<=4096&&(this.cookieHash[a]=c)):(b.equals(this.cookieHash,this.lastCookieHash)||(this.lastCookieHash=b.copy(this.cookieHash),this.cookieHash=b.copy(this.cookieHash)),this.cookieHash)},notifyWhenNoOutstandingRequests:function(a){a()}},b.mock.$ExceptionHandlerProvider=function(){var a;this.mode=function(b){switch(b){case"rethrow":a=function(a){throw a};break;case"log":var c=[];a=function(a){1==arguments.length?c.push(a):c.push([].slice.call(arguments,0))},a.errors=c;break;default:throw new Error("Unknown mode '"+b+"', only 'log'/'rethrow' modes are allowed!")}},this.$get=function(){return a},this.mode("rethrow")},b.mock.$LogProvider=function(){function a(a,b,c){return a.concat(Array.prototype.slice.call(b,c))}var c=!0;this.debugEnabled=function(a){return b.isDefined(a)?(c=a,this):c},this.$get=function(){var d={log:function(){d.log.logs.push(a([],arguments,0))},warn:function(){d.warn.logs.push(a([],arguments,0))},info:function(){d.info.logs.push(a([],arguments,0))},error:function(){d.error.logs.push(a([],arguments,0))},debug:function(){c&&d.debug.logs.push(a([],arguments,0))}};return d.reset=function(){d.log.logs=[],d.info.logs=[],d.warn.logs=[],d.error.logs=[],d.debug.logs=[]},d.assertEmpty=function(){var a=[];if(b.forEach(["error","warn","info","log","debug"],function(c){b.forEach(d[c].logs,function(d){b.forEach(d,function(b){a.push("MOCK $log ("+c+"): "+String(b)+"\n"+(b.stack||""))})})}),a.length)throw a.unshift("Expected $log to be empty! Either a message was logged unexpectedly, or an expected log message was not checked and removed:"),a.push(""),new Error(a.join("\n---------\n"))},d.reset(),d}},b.mock.$IntervalProvider=function(){this.$get=["$rootScope","$q",function(a,d){var e=[],f=0,g=0,h=function(h,i,j,k){function l(){if(m.notify(o++),j>0&&o>=j){var d;m.resolve(o),b.forEach(e,function(a,b){a.id===n.$$intervalId&&(d=b)}),d!==c&&e.splice(d,1)}p||a.$apply()}var m=d.defer(),n=m.promise,o=0,p=b.isDefined(k)&&!k;return j=b.isDefined(j)?j:0,n.then(null,null,h),n.$$intervalId=f,e.push({nextTime:g+i,delay:i,fn:l,id:f,deferred:m}),e.sort(function(a,b){return a.nextTime-b.nextTime}),f++,n};return h.cancel=function(a){if(!a)return!1;var d;return b.forEach(e,function(b,c){b.id===a.$$intervalId&&(d=c)}),d!==c?(e[d].deferred.reject("canceled"),e.splice(d,1),!0):!1},h.flush=function(a){for(g+=a;e.length&&e[0].nextTime<=g;){var b=e[0];b.fn(),b.nextTime+=b.delay,e.sort(function(a,b){return a.nextTime-b.nextTime})}return a},h}]};var j=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?:\:?(\d\d)(?:\:?(\d\d)(?:\.(\d{3}))?)?)?(Z|([+-])(\d\d):?(\d\d)))?$/;if(b.mock.TzDate=function(a,c){var e=new Date(0);if(b.isString(c)){var g=c;if(e.origDate=d(c),c=e.origDate.getTime(),isNaN(c))throw{name:"Illegal Argument",message:"Arg '"+g+"' passed into TzDate constructor is not a valid date string"}}else e.origDate=new Date(c);var h=new Date(c).getTimezoneOffset();e.offsetDiff=60*h*1e3-1e3*a*60*60,e.date=new Date(c+e.offsetDiff),e.getTime=function(){return e.date.getTime()-e.offsetDiff},e.toLocaleDateString=function(){return e.date.toLocaleDateString()},e.getFullYear=function(){return e.date.getFullYear()},e.getMonth=function(){return e.date.getMonth()},e.getDate=function(){return e.date.getDate()},e.getHours=function(){return e.date.getHours()},e.getMinutes=function(){return e.date.getMinutes()},e.getSeconds=function(){return e.date.getSeconds()},e.getMilliseconds=function(){return e.date.getMilliseconds()},e.getTimezoneOffset=function(){return 60*a},e.getUTCFullYear=function(){return e.origDate.getUTCFullYear()},e.getUTCMonth=function(){return e.origDate.getUTCMonth()},e.getUTCDate=function(){return e.origDate.getUTCDate()},e.getUTCHours=function(){return e.origDate.getUTCHours()},e.getUTCMinutes=function(){return e.origDate.getUTCMinutes()},e.getUTCSeconds=function(){return e.origDate.getUTCSeconds()},e.getUTCMilliseconds=function(){return e.origDate.getUTCMilliseconds()},e.getDay=function(){return e.date.getDay()},e.toISOString&&(e.toISOString=function(){return f(e.origDate.getUTCFullYear(),4)+"-"+f(e.origDate.getUTCMonth()+1,2)+"-"+f(e.origDate.getUTCDate(),2)+"T"+f(e.origDate.getUTCHours(),2)+":"+f(e.origDate.getUTCMinutes(),2)+":"+f(e.origDate.getUTCSeconds(),2)+"."+f(e.origDate.getUTCMilliseconds(),3)+"Z"});var i=["getUTCDay","getYear","setDate","setFullYear","setHours","setMilliseconds","setMinutes","setMonth","setSeconds","setTime","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","setYear","toDateString","toGMTString","toJSON","toLocaleFormat","toLocaleString","toLocaleTimeString","toSource","toString","toTimeString","toUTCString","valueOf"];return b.forEach(i,function(a){e[a]=function(){throw new Error("Method '"+a+"' is not implemented in the TzDate mock")}}),e},b.mock.TzDate.prototype=Date.prototype,b.mock.animate=b.module("ngAnimateMock",["ng"]).config(["$provide",function(a){var c=[];a.value("$$animateReflow",function(a){var b=c.length;return c.push(a),function(){c.splice(b,1)}}),a.decorator("$animate",["$delegate","$$asyncCallback",function(a,d){var e={queue:[],enabled:a.enabled,triggerCallbacks:function(){d.flush()},triggerReflow:function(){b.forEach(c,function(a){a()}),c=[]}};return b.forEach(["enter","leave","move","addClass","removeClass","setClass"],function(b){e[b]=function(){e.queue.push({event:b,element:arguments[0],args:arguments}),a[b].apply(a,arguments)}}),e}])}]),b.mock.dump=function(a){function c(a){var e;return b.isElement(a)?(a=b.element(a),e=b.element("<div></div>"),b.forEach(a,function(a){e.append(b.element(a).clone())}),e=e.html()):b.isArray(a)?(e=[],b.forEach(a,function(a){e.push(c(a))}),e="[ "+e.join(", ")+" ]"):e=b.isObject(a)?b.isFunction(a.$eval)&&b.isFunction(a.$apply)?d(a):a instanceof Error?a.stack||""+a.name+": "+a.message:b.toJson(a,!0):String(a),e}function d(a,c){c=c||"  ";var e=[c+"Scope("+a.$id+"): {"];for(var f in a)Object.prototype.hasOwnProperty.call(a,f)&&!f.match(/^(\$|this)/)&&e.push("  "+f+": "+b.toJson(a[f]));for(var g=a.$$childHead;g;)e.push(d(g,c+"  ")),g=g.$$nextSibling;return e.push("}"),e.join("\n"+c)}return c(a)},b.mock.$HttpBackendProvider=function(){this.$get=["$rootScope",g]},b.mock.$TimeoutDecorator=function(a,c){function d(a){var c=[];return b.forEach(a,function(a){c.push("{id: "+a.id+", time: "+a.time+"}")}),c.join(", ")}return a.flush=function(a){c.defer.flush(a)},a.verifyNoPendingTasks=function(){if(c.deferredFns.length)throw new Error("Deferred tasks to flush ("+c.deferredFns.length+"): "+d(c.deferredFns))},a},b.mock.$RAFDecorator=function(a){var b=[],c=function(a){var c=b.length;return b.push(a),function(){b.splice(c,1)}};return c.supported=a.supported,c.flush=function(){if(0===b.length)throw new Error("No rAF callbacks present");for(var a=b.length,c=0;a>c;c++)b[c]();b=[]},c},b.mock.$AsyncCallbackDecorator=function(a){var c=[],d=function(a){c.push(a)};return d.flush=function(){b.forEach(c,function(a){a()}),c=[]},d},b.mock.$RootElementProvider=function(){this.$get=function(){return b.element("<div ng-app></div>")}},b.module("ngMock",["ng"]).provider({$browser:b.mock.$BrowserProvider,$exceptionHandler:b.mock.$ExceptionHandlerProvider,$log:b.mock.$LogProvider,$interval:b.mock.$IntervalProvider,$httpBackend:b.mock.$HttpBackendProvider,$rootElement:b.mock.$RootElementProvider}).config(["$provide",function(a){a.decorator("$timeout",b.mock.$TimeoutDecorator),a.decorator("$$rAF",b.mock.$RAFDecorator),a.decorator("$$asyncCallback",b.mock.$AsyncCallbackDecorator)}]),b.module("ngMockE2E",["ng"]).config(["$provide",function(a){a.decorator("$httpBackend",b.mock.e2e.$httpBackendDecorator)}]),b.mock.e2e={},b.mock.e2e.$httpBackendDecorator=["$rootScope","$delegate","$browser",g],b.mock.clearDataCache=function(){var a,c=b.element.cache;for(a in c)if(Object.prototype.hasOwnProperty.call(c,a)){var d=c[a].handle;d&&b.element(d.elem).off(),delete c[a]}},a.jasmine||a.mocha){var k=null,l=function(){return!!k};(a.beforeEach||a.setup)(function(){k=this}),(a.afterEach||a.teardown)(function(){var a=k.$injector;k.$injector=null,k.$modules=null,k=null,a&&(a.get("$rootElement").off(),a.get("$browser").pollFns.length=0),b.mock.clearDataCache(),b.forEach(b.element.fragments,function(a,c){delete b.element.fragments[c]}),i.$$lastInstance=null,b.forEach(b.callbacks,function(a,c){delete b.callbacks[c]}),b.callbacks.counter=0}),a.module=b.mock.module=function(){function a(){if(k.$injector)throw new Error("Injector already created, can not register a module!");var a=k.$modules||(k.$modules=[]);b.forEach(c,function(c){b.isObject(c)&&!b.isArray(c)?a.push(function(a){b.forEach(c,function(b,c){a.value(c,b)})}):a.push(c)})}var c=Array.prototype.slice.call(arguments,0);return l()?a():a};var m=function(a,b){this.message=a.message,this.name=a.name,a.line&&(this.line=a.line),a.sourceId&&(this.sourceId=a.sourceId),a.stack&&b&&(this.stack=a.stack+"\n"+b.stack),a.stackArray&&(this.stackArray=a.stackArray)};m.prototype.toString=Error.prototype.toString,a.inject=b.mock.inject=function(){function a(){var a=k.$modules||[];a.unshift("ngMock"),a.unshift("ng");var e=k.$injector;e||(e=k.$injector=b.injector(a));for(var f=0,g=c.length;g>f;f++)try{e.invoke(c[f]||b.noop,this)}catch(h){if(h.stack&&d)throw new m(h,d);throw h}finally{d=null}}var c=Array.prototype.slice.call(arguments,0),d=new Error("Declaration Location");return l()?a.call(k):a}}}(window,window.angular),function(){var a;a=function(a,b){var c,d;for(c in a)d=a[c],"$$hashKey"!==c&&(b[c]=d)},angular.module("builder.controller",["builder.provider"]).controller("fbFormObjectEditableController",["$scope","$injector",function(b,c){var d;return d=c.get("$builder"),b.setupScope=function(c){var e;return a(c,b),b.optionsText=c.options.join("\n"),b.$watch("[label, description, placeholder, required, options, validation]",function(){return c.label=b.label,c.description=b.description,c.placeholder=b.placeholder,c.required=b.required,c.options=b.options,c.validation=b.validation},!0),b.$watch("optionsText",function(a){var c;return b.options=function(){var b,d,e,f;for(e=a.split("\n"),f=[],b=0,d=e.length;d>b;b++)c=e[b],c.length>0&&f.push(c);return f}(),b.inputText=b.options[0]}),e=d.components[c.component],b.validationOptions=e.validationOptions},b.data={model:null,backup:function(){return this.model={label:b.label,description:b.description,placeholder:b.placeholder,required:b.required,optionsText:b.optionsText,validation:b.validation}},rollback:function(){return this.model?(b.label=this.model.label,b.description=this.model.description,b.placeholder=this.model.placeholder,b.required=this.model.required,b.optionsText=this.model.optionsText,b.validation=this.model.validation):void 0}}}]).controller("fbComponentsController",["$scope","$injector",function(a,b){var c;return c=b.get("$builder"),a.selectGroup=function(b,d){var e,f,g,h;null!=b&&b.preventDefault(),a.activeGroup=d,a.components=[],g=c.components,h=[];for(f in g)e=g[f],e.group===d&&h.push(a.components.push(e));return h},a.groups=c.groups,a.activeGroup=a.groups[0],a.allComponents=c.components,a.$watch("allComponents",function(){return a.selectGroup(null,a.activeGroup)})}]).controller("fbComponentController",["$scope",function(b){return b.copyObjectToScope=function(c){return a(c,b)}}]).controller("fbFormController",["$scope","$injector",function(a,b){var c,d;return c=b.get("$builder"),d=b.get("$timeout"),null==a.input&&(a.input=[]),a.$watch("form",function(){return a.input.length>a.form.length&&a.input.splice(a.form.length),d(function(){return a.$broadcast(c.broadcastChannel.updateInput)})},!0)}]).controller("fbFormObjectController",["$scope","$injector",function(b,c){var d;return d=c.get("$builder"),b.copyObjectToScope=function(c){return a(c,b)},b.updateInput=function(a){var c;return c={id:b.formObject.id,label:b.formObject.label,value:null!=a?a:""},b.$parent.input.splice(b.$index,1,c)}}])}.call(this),function(){angular.module("builder.directive",["builder.provider","builder.controller","builder.drag","validator"]).directive("fbBuilder",["$injector",function(a){var b,c;return b=a.get("$builder"),c=a.get("$drag"),{restrict:"A",scope:{fbBuilder:"="},template:"<div class='form-horizontal'>\n    <div class='fb-form-object-editable' ng-repeat=\"object in formObjects\"\n        fb-form-object-editable=\"object\"></div>\n</div>",link:function(a,d,e){var f,g,h;return a.formName=e.fbBuilder,null==(g=b.forms)[h=a.formName]&&(g[h]=[]),a.formObjects=b.forms[a.formName],f=!0,$(d).addClass("fb-builder"),c.droppable($(d),{move:function(a){var b,c,e,g,h,i,j,k,l,m,n;if(f&&($("div.fb-form-object-editable").popover("hide"),f=!1),e=$(d).find(".fb-form-object-editable:not(.empty,.dragging)"),0===e.length)return void(0===$(d).find(".fb-form-object-editable.empty").length&&$(d).find(">div:first").append($("<div class='fb-form-object-editable empty'></div>")));for(j=[],j.push(-1e3),h=k=0,m=e.length;m>k;h=k+=1)c=$(e[h]),i=c.offset(),g=c.height(),j.push(i.top+g/2);for(j.push(j[j.length-1]+1e3),h=l=1,n=j.length;n>l;h=l+=1)if(a.pageY>j[h-1]&&a.pageY<=j[h]){$(d).find(".empty").remove(),b=$("<div class='fb-form-object-editable empty'></div>"),h-1<e.length?b.insertBefore($(e[h-1])):b.insertAfter($(e[h-2]));break}},out:function(){return f&&($("div.fb-form-object-editable").popover("hide"),f=!1),$(d).find(".empty").remove()},up:function(g,h,i){var j,k,l;return f=!0,c.isMouseMoved()?(h||"drag"!==i.mode?h&&("mirror"===i.mode&&b.insertFormObject(a.formName,$(d).find(".empty").index(".fb-form-object-editable"),{component:i.object.componentName}),"drag"===i.mode&&(l=i.object.formObject.index,k=$(d).find(".empty").index(".fb-form-object-editable"),k>l&&k--,b.updateFormObjectIndex(a.formName,l,k))):(j=i.object.formObject,j.editable&&b.removeFormObject(e.fbBuilder,j.index)),$(d).find(".empty").remove()):void $(d).find(".empty").remove()}})}}}]).directive("fbFormObjectEditable",["$injector",function(a){var b,c,d,e;return b=a.get("$builder"),d=a.get("$drag"),c=a.get("$compile"),e=a.get("$validator"),{restrict:"A",controller:"fbFormObjectEditableController",scope:{formObject:"=fbFormObjectEditable"},link:function(a,f){var g;return a.inputArray=[],a.$component=b.components[a.formObject.component],a.setupScope(a.formObject),a.$watch("$component.template",function(b){var d;if(b)return d=c(b)(a),$(f).html(d)}),$(f).on("click",function(){return!1}),d.draggable($(f),{object:{formObject:a.formObject}}),a.formObject.editable?(g={},a.$watch("$component.popoverTemplate",function(b){return b?($(f).removeClass(g.id),g={id:"fb-"+Math.random().toString().substr(2),isClickedSave:!1,view:null,html:b},g.html=$(g.html).addClass(g.id),g.view=c(g.html)(a),$(f).addClass(g.id),$(f).popover({html:!0,title:a.$component.label,content:g.view,container:"body"})):void 0}),a.popover={save:function(b){b.preventDefault(),e.validate(a).success(function(){return g.isClickedSave=!0,$(f).popover("hide")})},remove:function(c){c.preventDefault(),b.removeFormObject(a.$parent.formName,a.$parent.$index),$(f).popover("hide")},shown:function(){return a.data.backup(),g.isClickedSave=!1},cancel:function(b){a.data.rollback(),b&&(b.preventDefault(),$(f).popover("hide"))}},$(f).on("show.bs.popover",function(){var a,b,c;return d.isMouseMoved()?!1:($("div.fb-form-object-editable:not(."+g.id+")").popover("hide"),a=$("form."+g.id).closest(".popover"),a.length>0?(b=$(f).offset().top+$(f).height()/2,c=b-a.height()/2,a.css({position:"absolute",top:c}),a.show(),setTimeout(function(){return a.addClass("in"),$(f).triggerHandler("shown.bs.popover")},0),!1):void 0)}),$(f).on("shown.bs.popover",function(){$(".popover ."+g.id+" input:first").select(),a.$apply(function(){return a.popover.shown()})}),$(f).on("hide.bs.popover",function(){var b;return b=$("form."+g.id).closest(".popover"),g.isClickedSave||(a.$$phase||a.$root.$$phase?a.popover.cancel():a.$apply(function(){return a.popover.cancel()})),b.removeClass("in"),setTimeout(function(){return b.hide()},300),!1})):void 0}}}]).directive("fbComponents",function(){return{restrict:"A",template:'<ul ng-if="groups.length > 1" class="nav nav-tabs nav-justified">\n    <li ng-repeat="group in groups" ng-class="{active:activeGroup==group}">\n        <a href=\'#\' ng-click="selectGroup($event, group)">{{group}}</a>\n    </li>\n</ul>\n<div class=\'form-horizontal\'>\n    <div class=\'fb-component\' ng-repeat="component in components"\n        fb-component="component"></div>\n</div>',controller:"fbComponentsController"}}).directive("fbComponent",["$injector",function(a){var b,c,d;return b=a.get("$builder"),d=a.get("$drag"),c=a.get("$compile"),{restrict:"A",scope:{component:"=fbComponent"},controller:"fbComponentController",link:function(a,b){return a.copyObjectToScope(a.component),d.draggable($(b),{
 mode:"mirror",defer:!1,object:{componentName:a.component.name}}),a.$watch("component.template",function(d){var e;if(d)return e=c(d)(a),$(b).html(e)})}}}]).directive("fbForm",["$injector",function(a){return{restrict:"A",require:"ngModel",scope:{formName:"@fbForm",input:"=ngModel","default":"=fbDefault"},template:'<div class=\'fb-form-object\' ng-repeat="object in form" fb-form-object="object"></div>',controller:"fbFormController",link:function(b,c,d){var e,f,g;return e=a.get("$builder"),null==(f=e.forms)[g=b.formName]&&(f[g]=[]),b.form=e.forms[b.formName]}}}]).directive("fbFormObject",["$injector",function(a){var b,c,d;return b=a.get("$builder"),c=a.get("$compile"),d=a.get("$parse"),{restrict:"A",controller:"fbFormObjectController",link:function(a,e,f){return a.formObject=d(f.fbFormObject)(a),a.$component=b.components[a.formObject.component],a.$on(b.broadcastChannel.updateInput,function(){return a.updateInput(a.inputText)}),a.$component.arrayToText&&(a.inputArray=[],a.$watch("inputArray",function(b,c){var d,e;if(b!==c){d=[];for(e in a.inputArray)a.inputArray[e]&&d.push(a.options[e]);return a.inputText=d.join(", ")}},!0)),a.$watch("inputText",function(){return a.updateInput(a.inputText)}),a.$watch(f.fbFormObject,function(){return a.copyObjectToScope(a.formObject)},!0),a.$watch("$component.template",function(b){var d,f,g;if(b)return f=$(b),d=f.find("[ng-model='inputText']"),d.attr({validator:"{{validation}}"}),g=c(f)(a),$(e).html(g)}),!a.$component.arrayToText&&a.formObject.options.length>0&&(a.inputText=a.formObject.options[0]),a.$watch("default["+a.formObject.id+"]",function(b){return b?a.$component.arrayToText?a.inputArray=b:a.inputText=b:void 0})}}}])}.call(this),function(){angular.module("builder.drag",[]).provider("$drag",function(){var a,b,c;a=null,b=null,this.data={draggables:{},droppables:{}},this.mouseMoved=!1,this.isMouseMoved=function(a){return function(){return a.mouseMoved}}(this),this.hooks={down:{},move:{},up:{}},this.eventMouseMove=function(){},this.eventMouseUp=function(){},$(function(a){return function(){return $(document).on("mousedown",function(b){var c,d,e;a.mouseMoved=!1,e=a.hooks.down;for(d in e)(c=e[d])(b)}),$(document).on("mousemove",function(b){var c,d,e;a.mouseMoved=!0,e=a.hooks.move;for(d in e)(c=e[d])(b)}),$(document).on("mouseup",function(b){var c,d,e;e=a.hooks.up;for(d in e)(c=e[d])(b)})}}(this)),this.currentId=0,this.getNewId=function(a){return function(){return""+a.currentId++}}(this),this.setupEasing=function(){return jQuery.extend(jQuery.easing,{easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c}})},this.setupProviders=function(c){return a=c,b=a.get("$rootScope")},this.isHover=function(a){return function(a,b){var c,d,e,f,g;return d=a.offset(),e=b.offset(),f={width:a.width(),height:a.height()},g={width:b.width(),height:b.height()},c={x:!1,y:!1},c.x=d.left>e.left&&d.left<e.left+g.width,c.x=c.x||d.left+f.width>e.left&&d.left+f.width<e.left+g.width,c?(c.y=d.top>e.top&&d.top<e.top+g.height,c.y=c.y||d.top+f.height>e.top&&d.top+f.height<e.top+g.height,c.x&&c.y):!1}}(this),c=function(a,b){return setTimeout(function(){return b()},a)},this.autoScroll={up:!1,down:!1,scrolling:!1,scroll:function(a){return function(){return a.autoScroll.scrolling=!0,a.autoScroll.up?($("html, body").dequeue().animate({scrollTop:$(window).scrollTop()-50},100,"easeOutQuad"),c(100,function(){return a.autoScroll.scroll()})):a.autoScroll.down?($("html, body").dequeue().animate({scrollTop:$(window).scrollTop()+50},100,"easeOutQuad"),c(100,function(){return a.autoScroll.scroll()})):a.autoScroll.scrolling=!1}}(this),start:function(a){return function(b){if(b.clientY<50){if(a.autoScroll.up=!0,a.autoScroll.down=!1,!a.autoScroll.scrolling)return a.autoScroll.scroll()}else{if(!(b.clientY>$(window).innerHeight()-50))return a.autoScroll.up=!1,a.autoScroll.down=!1;if(a.autoScroll.up=!1,a.autoScroll.down=!0,!a.autoScroll.scrolling)return a.autoScroll.scroll()}}}(this),stop:function(a){return function(){return a.autoScroll.up=!1,a.autoScroll.down=!1}}(this)},this.dragMirrorMode=function(a){return function(b,c,d){var e;return null==c&&(c=!0),e={id:a.getNewId(),mode:"mirror",maternal:b[0],element:null,object:d},b.on("mousedown",function(d){var f;return d.preventDefault(),f=b.clone(),e.element=f[0],f.addClass("fb-draggable form-horizontal prepare-dragging"),a.hooks.move.drag=function(c,d){var g,h,i,j;if(!f.hasClass("prepare-dragging")||(f.css({width:b.width(),height:b.height()}),f.removeClass("prepare-dragging"),f.addClass("dragging"),!d)){f.offset({left:c.pageX-f.width()/2,top:c.pageY-f.height()/2}),a.autoScroll.start(c),i=a.data.droppables,j=[];for(h in i)g=i[h],a.isHover(f,$(g.element))?j.push(g.move(c,e)):j.push(g.out(c,e));return j}},a.hooks.up.drag=function(b){var c,d,g,h;h=a.data.droppables;for(d in h)c=h[d],g=a.isHover(f,$(c.element)),c.up(b,g,e);return delete a.hooks.move.drag,delete a.hooks.up.drag,e.element=null,f.remove(),a.autoScroll.stop()},$("body").append(f),c?void 0:a.hooks.move.drag(d,c)}),e}}(this),this.dragDragMode=function(a){return function(b,c,d){var e;return null==c&&(c=!0),e={id:a.getNewId(),mode:"drag",maternal:null,element:b[0],object:d},b.addClass("fb-draggable"),b.on("mousedown",function(d){return d.preventDefault(),b.hasClass("dragging")?void 0:(b.addClass("prepare-dragging"),a.hooks.move.drag=function(c,d){var f,g,h;if(!b.hasClass("prepare-dragging")||(b.css({width:b.width(),height:b.height()}),b.removeClass("prepare-dragging"),b.addClass("dragging"),!d)){b.offset({left:c.pageX-b.width()/2,top:c.pageY-b.height()/2}),a.autoScroll.start(c),h=a.data.droppables;for(g in h)f=h[g],a.isHover(b,$(f.element))?f.move(c,e):f.out(c,e)}},a.hooks.up.drag=function(c){var d,f,g,h;h=a.data.droppables;for(f in h)d=h[f],g=a.isHover(b,$(d.element)),d.up(c,g,e);return delete a.hooks.move.drag,delete a.hooks.up.drag,b.css({width:"",height:"",left:"",top:""}),b.removeClass("dragging defer-dragging"),a.autoScroll.stop()},c?void 0:a.hooks.move.drag(d,c))}),e}}(this),this.dropMode=function(a){return function(c,d){var e;return e={id:a.getNewId(),element:c[0],move:function(a,c){return b.$apply(function(){return"function"==typeof d.move?d.move(a,c):void 0})},up:function(a,c,e){return b.$apply(function(){return"function"==typeof d.up?d.up(a,c,e):void 0})},out:function(a,c){return b.$apply(function(){return"function"==typeof d.out?d.out(a,c):void 0})}}}}(this),this.draggable=function(a){return function(b,c){var d,e,f,g,h,i,j;if(null==c&&(c={}),f=[],"mirror"===c.mode)for(g=0,i=b.length;i>g;g++)e=b[g],d=a.dragMirrorMode($(e),c.defer,c.object),f.push(d.id),a.data.draggables[d.id]=d;else for(h=0,j=b.length;j>h;h++)e=b[h],d=a.dragDragMode($(e),c.defer,c.object),f.push(d.id),a.data.draggables[d.id]=d;return f}}(this),this.droppable=function(a){return function(b,c){var d,e,f,g,h;for(null==c&&(c={}),f=[],g=0,h=b.length;h>g;g++)e=b[g],d=a.dropMode($(e),c),f.push(d),a.data.droppables[d.id]=d;return f}}(this),this.get=function(a){return this.setupEasing(),this.setupProviders(a),{isMouseMoved:this.isMouseMoved,data:this.data,draggable:this.draggable,droppable:this.droppable}},this.get.$inject=["$injector"],this.$get=this.get})}.call(this),function(){angular.module("builder",["builder.directive"])}.call(this),function(){var a=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};angular.module("builder.provider",[]).provider("$builder",function(){var b,c,d;c=null,b=null,d=null,this.version="0.0.2",this.components={},this.groups=[],this.broadcastChannel={updateInput:"$updateInput"},this.forms={"default":[]},this.formsId={"default":0},this.convertComponent=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;return c={name:a,group:null!=(d=b.group)?d:"Default",label:null!=(e=b.label)?e:"",description:null!=(f=b.description)?f:"",placeholder:null!=(g=b.placeholder)?g:"",editable:null!=(h=b.editable)?h:!0,required:null!=(i=b.required)?i:!1,validation:null!=(j=b.validation)?j:"/.*/",validationOptions:null!=(k=b.validationOptions)?k:[],options:null!=(l=b.options)?l:[],arrayToText:null!=(m=b.arrayToText)?m:!1,template:b.template,templateUrl:b.templateUrl,popoverTemplate:b.popoverTemplate,popoverTemplateUrl:b.popoverTemplateUrl},c.template||c.templateUrl||console.error("The template is empty."),c.popoverTemplate||c.popoverTemplateUrl||console.error("The popoverTemplate is empty."),c},this.convertFormObject=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(null==b&&(b={}),c=this.components[b.component],null==c)throw"The component "+b.component+" was not registered.";if(b.id){for(d=!1,i=this.forms[a],g=0,h=i.length;h>g;g++)if(e=i[g],b.id<=e.id){b.id=this.formsId[a]++,d=!0;break}d||(this.formsId[a]=b.id+1)}return f={id:null!=(j=b.id)?j:this.formsId[a]++,component:b.component,editable:null!=(k=b.editable)?k:c.editable,index:null!=(l=b.index)?l:0,label:null!=(m=b.label)?m:c.label,description:null!=(n=b.description)?n:c.description,placeholder:null!=(o=b.placeholder)?o:c.placeholder,options:null!=(p=b.options)?p:c.options,required:null!=(q=b.required)?q:c.required,validation:null!=(r=b.validation)?r:c.validation}},this.reindexFormObject=function(a){return function(b){var c,d,e,f;for(c=a.forms[b],d=e=0,f=c.length;f>e;d=e+=1)c[d].index=d}}(this),this.setupProviders=function(a){return function(a){return c=a,b=c.get("$http"),d=c.get("$templateCache")}}(this),this.loadTemplate=function(a){return null==a.template&&b.get(a.templateUrl,{cache:d}).success(function(b){return a.template=b}),null==a.popoverTemplate?b.get(a.popoverTemplateUrl,{cache:d}).success(function(b){return a.popoverTemplate=b}):void 0},this.registerComponent=function(b){return function(d,e){var f,g;null==e&&(e={}),null==b.components[d]?(f=b.convertComponent(d,e),b.components[d]=f,null!=c&&b.loadTemplate(f),g=f.group,a.call(b.groups,g)<0&&b.groups.push(f.group)):console.error("The component "+d+" was registered.")}}(this),this.addFormObject=function(a){return function(b,c){var d;return null==c&&(c={}),null==(d=a.forms)[b]&&(d[b]=[]),a.insertFormObject(b,a.forms[b].length,c)}}(this),this.insertFormObject=function(a){return function(b,c,d){var e,f;return null==d&&(d={}),null==(e=a.forms)[b]&&(e[b]=[]),null==(f=a.formsId)[b]&&(f[b]=0),c>a.forms[b].length?c=a.forms[b].length:0>c&&(c=0),a.forms[b].splice(c,0,a.convertFormObject(b,d)),a.reindexFormObject(b),a.forms[b][c]}}(this),this.removeFormObject=function(a){return function(b,c){var d;return d=a.forms[b],d.splice(c,1),a.reindexFormObject(b)}}(this),this.updateFormObjectIndex=function(a){return function(b,c,d){var e,f;if(c!==d)return f=a.forms[b],e=f.splice(c,1)[0],f.splice(d,0,e),a.reindexFormObject(b)}}(this),this.$get=["$injector",function(a){return function(b){var c,d,e;a.setupProviders(b),e=a.components;for(d in e)c=e[d],a.loadTemplate(c);return{version:a.version,components:a.components,groups:a.groups,forms:a.forms,broadcastChannel:a.broadcastChannel,registerComponent:a.registerComponent,addFormObject:a.addFormObject,insertFormObject:a.insertFormObject,removeFormObject:a.removeFormObject,updateFormObjectIndex:a.updateFormObjectIndex}}}(this)]})}.call(this),function(){angular.module("builder.components",["builder","validator.rules"]).config(["$builderProvider",function(a){return a.registerComponent("textInput",{group:"Default",label:"Text Input",description:"description",placeholder:"placeholder",required:!1,validationOptions:[{label:"none",rule:"/.*/"},{label:"number",rule:"[number]"},{label:"email",rule:"[email]"},{label:"url",rule:"[url]"}],template:'<div class="form-group">\n    <label for="{{formName+index}}" class="col-md-4 control-label" ng-class="{\'fb-required\':required}">{{label}}</label>\n    <div class="col-md-8">\n        <input type="text" ng-model="inputText" validator-required="{{required}}" validator-group="{{formName}}" id="{{formName+index}}" class="form-control" placeholder="{{placeholder}}"/>\n        <p class=\'help-block\'>{{description}}</p>\n    </div>\n</div>',popoverTemplate:"<form>\n    <div class=\"form-group\">\n        <label class='control-label'>Label</label>\n        <input type='text' ng-model=\"label\" validator=\"[required]\" class='form-control'/>\n    </div>\n    <div class=\"form-group\">\n        <label class='control-label'>Description</label>\n        <input type='text' ng-model=\"description\" class='form-control'/>\n    </div>\n    <div class=\"form-group\">\n        <label class='control-label'>Placeholder</label>\n        <input type='text' ng-model=\"placeholder\" class='form-control'/>\n    </div>\n    <div class=\"checkbox\">\n        <label>\n            <input type='checkbox' ng-model=\"required\" />\n            Required</label>\n    </div>\n    <div class=\"form-group\" ng-if=\"validationOptions.length > 0\">\n        <label class='control-label'>Validation</label>\n        <select ng-model=\"$parent.validation\" class='form-control' ng-options=\"option.rule as option.label for option in validationOptions\"></select>\n    </div>\n\n    <hr/>\n    <div class='form-group'>\n        <input type='submit' ng-click=\"popover.save($event)\" class='btn btn-primary' value='Save'/>\n        <input type='button' ng-click=\"popover.cancel($event)\" class='btn btn-default' value='Cancel'/>\n        <input type='button' ng-click=\"popover.remove($event)\" class='btn btn-danger' value='Delete'/>\n    </div>\n</form>"}),a.registerComponent("textArea",{group:"Default",label:"Text Area",description:"description",placeholder:"placeholder",required:!1,template:'<div class="form-group">\n    <label for="{{formName+index}}" class="col-md-4 control-label" ng-class="{\'fb-required\':required}">{{label}}</label>\n    <div class="col-md-8">\n        <textarea type="text" ng-model="inputText" validator-required="{{required}}" validator-group="{{formName}}" id="{{formName+index}}" class="form-control" rows=\'6\' placeholder="{{placeholder}}"/>\n        <p class=\'help-block\'>{{description}}</p>\n    </div>\n</div>',popoverTemplate:"<form>\n    <div class=\"form-group\">\n        <label class='control-label'>Label</label>\n        <input type='text' ng-model=\"label\" validator=\"[required]\" class='form-control'/>\n    </div>\n    <div class=\"form-group\">\n        <label class='control-label'>Description</label>\n        <input type='text' ng-model=\"description\" class='form-control'/>\n    </div>\n    <div class=\"form-group\">\n        <label class='control-label'>Placeholder</label>\n        <input type='text' ng-model=\"placeholder\" class='form-control'/>\n    </div>\n    <div class=\"checkbox\">\n        <label>\n            <input type='checkbox' ng-model=\"required\" />\n            Required</label>\n    </div>\n\n    <hr/>\n    <div class='form-group'>\n        <input type='submit' ng-click=\"popover.save($event)\" class='btn btn-primary' value='Save'/>\n        <input type='button' ng-click=\"popover.cancel($event)\" class='btn btn-default' value='Cancel'/>\n        <input type='button' ng-click=\"popover.remove($event)\" class='btn btn-danger' value='Delete'/>\n    </div>\n</form>"}),a.registerComponent("checkbox",{group:"Default",label:"Checkbox",description:"description",placeholder:"placeholder",required:!1,options:["value one","value two"],arrayToText:!0,template:'<div class="form-group">\n    <label for="{{formName+index}}" class="col-md-4 control-label" ng-class="{\'fb-required\':required}">{{label}}</label>\n    <div class="col-md-8">\n        <input type=\'hidden\' ng-model="inputText" validator-required="{{required}}" validator-group="{{formName}}"/>\n        <div class=\'checkbox\' ng-repeat="item in options track by $index">\n            <label><input type=\'checkbox\' ng-model="$parent.inputArray[$index]" value=\'item\'/>\n                {{item}}\n            </label>\n        </div>\n        <p class=\'help-block\'>{{description}}</p>\n    </div>\n</div>',popoverTemplate:"<form>\n    <div class=\"form-group\">\n        <label class='control-label'>Label</label>\n        <input type='text' ng-model=\"label\" validator=\"[required]\" class='form-control'/>\n    </div>\n    <div class=\"form-group\">\n        <label class='control-label'>Description</label>\n        <input type='text' ng-model=\"description\" class='form-control'/>\n    </div>\n    <div class=\"form-group\">\n        <label class='control-label'>Options</label>\n        <textarea class=\"form-control\" rows=\"3\" ng-model=\"optionsText\"/>\n    </div>\n    <div class=\"checkbox\">\n        <label>\n            <input type='checkbox' ng-model=\"required\" />\n            Required\n        </label>\n    </div>\n\n    <hr/>\n    <div class='form-group'>\n        <input type='submit' ng-click=\"popover.save($event)\" class='btn btn-primary' value='Save'/>\n        <input type='button' ng-click=\"popover.cancel($event)\" class='btn btn-default' value='Cancel'/>\n        <input type='button' ng-click=\"popover.remove($event)\" class='btn btn-danger' value='Delete'/>\n    </div>\n</form>"}),a.registerComponent("radio",{group:"Default",label:"Radio",description:"description",placeholder:"placeholder",required:!1,options:["value one","value two"],template:'<div class="form-group">\n    <label for="{{formName+index}}" class="col-md-4 control-label" ng-class="{\'fb-required\':required}">{{label}}</label>\n    <div class="col-md-8">\n        <div class=\'radio\' ng-repeat="item in options track by $index">\n            <label><input name=\'{{formName+index}}\' ng-model="$parent.inputText" validator-group="{{formName}}" value=\'{{item}}\' type=\'radio\'/>\n                {{item}}\n            </label>\n        </div>\n        <p class=\'help-block\'>{{description}}</p>\n    </div>\n</div>',popoverTemplate:"<form>\n    <div class=\"form-group\">\n        <label class='control-label'>Label</label>\n        <input type='text' ng-model=\"label\" validator=\"[required]\" class='form-control'/>\n    </div>\n    <div class=\"form-group\">\n        <label class='control-label'>Description</label>\n        <input type='text' ng-model=\"description\" class='form-control'/>\n    </div>\n    <div class=\"form-group\">\n        <label class='control-label'>Options</label>\n        <textarea class=\"form-control\" rows=\"3\" ng-model=\"optionsText\"/>\n    </div>\n\n    <hr/>\n    <div class='form-group'>\n        <input type='submit' ng-click=\"popover.save($event)\" class='btn btn-primary' value='Save'/>\n        <input type='button' ng-click=\"popover.cancel($event)\" class='btn btn-default' value='Cancel'/>\n        <input type='button' ng-click=\"popover.remove($event)\" class='btn btn-danger' value='Delete'/>\n    </div>\n</form>"}),a.registerComponent("select",{group:"Default",label:"Select",description:"description",placeholder:"placeholder",required:!1,options:["value one","value two"],template:'<div class="form-group">\n    <label for="{{formName+index}}" class="col-md-4 control-label">{{label}}</label>\n    <div class="col-md-8">\n        <select ng-options="value for value in options" id="{{formName+index}}" class="form-control"\n            ng-model="inputText" ng-init="inputText = options[0]"/>\n        <p class=\'help-block\'>{{description}}</p>\n    </div>\n</div>',popoverTemplate:"<form>\n    <div class=\"form-group\">\n        <label class='control-label'>Label</label>\n        <input type='text' ng-model=\"label\" validator=\"[required]\" class='form-control'/>\n    </div>\n    <div class=\"form-group\">\n        <label class='control-label'>Description</label>\n        <input type='text' ng-model=\"description\" class='form-control'/>\n    </div>\n    <div class=\"form-group\">\n        <label class='control-label'>Options</label>\n        <textarea class=\"form-control\" rows=\"3\" ng-model=\"optionsText\"/>\n    </div>\n\n    <hr/>\n    <div class='form-group'>\n        <input type='submit' ng-click=\"popover.save($event)\" class='btn btn-primary' value='Save'/>\n        <input type='button' ng-click=\"popover.cancel($event)\" class='btn btn-default' value='Cancel'/>\n        <input type='button' ng-click=\"popover.remove($event)\" class='btn btn-danger' value='Delete'/>\n    </div>\n</form>"})}])}.call(this),function(){var a;a=angular.element,angular.module("validator.directive",["validator.provider"]).directive("validator",["$injector",function(b){return{restrict:"A",require:"ngModel",link:function(c,d,e,f){var g,h,i,j,k,l,m,n,o,p;return h=b.get("$validator"),g=b.get("$parse"),j=g(e.ngModel),o=[],p=function(a,g){var h,i,k,l,m,n,p;if(null==g&&(g={}),l=0,h=0,i=function(){var a,h,i;if(++l>=o.length){for(f.$setValidity(e.ngModel,!0),h=0,i=o.length;i>h;h++)a=o[h],a.success(j(c),c,d,e,b);"function"==typeof g.success&&g.success()}},0===o.length)return i();for(m=function(a){return a.validator(j(c),c,d,e,{success:function(){return i()},error:function(){if(a.enableError&&1===++h&&(f.$setValidity(e.ngModel,!1),a.error(j(c),c,d,e,b)),1===("function"==typeof g.error?g.error():void 0)){try{d[0].scrollIntoViewIfNeeded()}catch(i){}return d[0].select()}}})},n=0,p=o.length;p>n;n++){switch(k=o[n],a){case"blur":if("blur"!==k.invoke)continue;k.enableError=!0;break;case"watch":if("watch"!==k.invoke&&!k.enableError){i();continue}break;case"broadcast":k.enableError=!0}m(k)}},m=function(){var a;return a=h.getRule("required"),null==a&&(a=h.convertRule("required",{validator:/^.+$/,invoke:"watch"})),o.push(a)},n=function(a){var f,g,h,i,k;for(k=[],f=g=0,h=o.length;h>g;f=g+=1)(null!=(i=o[f])?i.name:void 0)===a&&(o[f].success(j(c),c,d,e,b),o.splice(f,1),k.push(f--));return k},e.$observe("validator",function(a){var f,g,i,j,l,n,p;if(o.length=0,(k.validatorRequired||k.required)&&m(),f=a.match(/^\/(.*)\/$/))return i=h.convertRule("dynamic",{validator:RegExp(f[1]),invoke:e.validatorInvoke,error:e.validatorError}),void o.push(i);if(f=a.match(/^\[(.+)\]$/)){for(j=f[1].split(","),p=[],l=0,n=j.length;n>l;l++)g=j[l],i=h.getRule(g.replace(/^\s+|\s+$/g,"")),"function"==typeof i.init&&i.init(c,d,e,b),i?p.push(o.push(i)):p.push(void 0);return p}}),e.$observe("validatorError",function(a){var b,c;return b=e.validator.match(/^\/(.*)\/$/),b?(n("dynamic"),c=h.convertRule("dynamic",{validator:RegExp(b[1]),invoke:e.validatorInvoke,error:a}),o.push(c)):void 0}),k={validatorRequired:!1,required:!1},e.$observe("validatorRequired",function(a){return a&&"false"!==a?(m(),k.validatorRequired=!0):k.validatorRequired?(n("required"),k.validatorRequired=!1):void 0}),e.$observe("required",function(a){return a&&"false"!==a?(m(),k.required=!0):k.required?(n("required"),k.required=!1):void 0}),i=function(a,b){var d,f,h,i;return b?e.validatorGroup===b?!0:a.targetScope===c?0===e.ngModel.indexOf(b):(d=function(a,b){var c,e;for(c in a)switch(e=a[c],typeof e){case"string":if("$$hashKey"===c&&e===b)return!0;break;case"object":if(d(e,b))return!0}return!1},f=e.ngModel.indexOf("."),h=f>=0?e.ngModel.substr(0,f):e.ngModel,i=g(h)(c),d(g(b)(a.targetScope),i.$$hashKey)):!0},c.$on(h.broadcastChannel.prepare,function(a,b){return i(a,b.model)?b.accept():void 0}),c.$on(h.broadcastChannel.start,function(a,b){return i(a,b.model)?p("broadcast",{success:b.success,error:b.error}):void 0}),c.$on(h.broadcastChannel.reset,function(a,g){var h,k,l;if(i(a,g.model)){for(k=0,l=o.length;l>k;k++)h=o[k],h.success(j(c),c,d,e,b),"watch"!==h.invoke&&(h.enableError=!1);return f.$setValidity(e.ngModel,!0)}}),c.$watch(e.ngModel,function(a,b){return a!==b?p("watch",{oldValue:b}):void 0}),l=function(){return c.$root.$$phase?p("blur"):c.$apply(function(){return p("blur")})},a(d).bind("blur",l),c.$on("$destroy",function(){return a(d).unbind("blur",l)})}}}])}.call(this),function(){angular.module("validator",["validator.directive"])}.call(this),function(){var a;a=angular.element,angular.module("validator.provider",[]).provider("$validator",function(){var b,c,d;b=null,c=null,d=null,this.rules={},this.broadcastChannel={prepare:"$validatePrepare",start:"$validateStart",reset:"$validateReset"},this.setupProviders=function(a){return b=a,c=b.get("$q"),d=b.get("$timeout")},this.convertError=function(b){var c;return"function"==typeof b?b:(c=b.constructor===String?b:"",function(b,d,e,f){var g,h,i,j,k,l,m;for(i=a(e).parent(),m=[];0!==i.length;){if(i.hasClass("form-group")){for(i.addClass("has-error"),l=i.find("label"),j=0,k=l.length;k>j;j++)h=l[j],a(h).hasClass("error")&&a(h).remove();g=a("<label class='control-label error'>"+c+"</label>"),f.id&&g.attr("for",f.id),a(e).parent().hasClass("input-group")?a(e).parent().parent().append(g):a(e).parent().append(g);break}m.push(i=i.parent())}return m})},this.convertSuccess=function(b){return"function"==typeof b?b:function(b,c,d){var e,f,g,h,i,j;for(f=a(d).parent(),j=[];0!==f.length;){if(f.hasClass("has-error")){for(f.removeClass("has-error"),i=f.find("label"),g=0,h=i.length;h>g;g++)e=i[g],a(e).hasClass("error")&&a(e).remove();break}j.push(f=f.parent())}return j}},this.convertValidator=function(a){var d,e,f;return f=function(){},a.constructor===RegExp?(e=a,f=function(a,b,c,d,f){return null==a&&(a=""),e.test(a)?"function"==typeof f.success?f.success():void 0:"function"==typeof f.error?f.error():void 0}):"function"==typeof a&&(d=a,f=function(a,e,f,g,h){return c.all([d(a,e,f,g,b)]).then(function(a){return a&&a.length>0&&a[0]?"function"==typeof h.success?h.success():void 0:"function"==typeof h.error?h.error():void 0},function(){return"function"==typeof h.error?h.error():void 0})}),f},this.convertRule=function(a){return function(b,c){var d,e,f;return null==c&&(c={}),d={name:b,enableError:"watch"===c.invoke,invoke:c.invoke,init:c.init,validator:null!=(e=c.validator)?e:function(){return!0},error:null!=(f=c.error)?f:"",success:c.success},d.error=a.convertError(d.error),d.success=a.convertSuccess(d.success),d.validator=a.convertValidator(d.validator),d}}(this),this.register=function(a,b){return null==b&&(b={}),this.rules[a]=this.convertRule(a,b)},this.getRule=function(a){return this.rules[a]?angular.copy(this.rules[a]):null},this.validate=function(a){return function(e,f){var g,h,i,j,k;return i=c.defer(),k=i.promise,h={total:0,success:0,error:0},j={promises:{success:[],error:[],then:[]},accept:function(){return h.total++},validatedSuccess:function(){var a,b,c,d,e,f,g;if(++h.success===h.total){for(f=j.promises.success,b=0,d=f.length;d>b;b++)(a=f[b])();for(g=j.promises.then,c=0,e=g.length;e>c;c++)(a=g[c])()}return h.success},validatedError:function(){var a,b,c,d,e,f,g;if(0===h.error++){for(f=j.promises.error,b=0,d=f.length;d>b;b++)(a=f[b])();for(g=j.promises.then,c=0,e=g.length;e>c;c++)(a=g[c])()}return h.error}},k.success=function(a){return j.promises.success.push(a),k},k.error=function(a){return j.promises.error.push(a),k},k.then=function(a){return j.promises.then.push(a),k},g={model:f,accept:j.accept,success:j.validatedSuccess,error:j.validatedError},e.$broadcast(a.broadcastChannel.prepare,g),d(function(){var a,c,d,f,i;{if(0!==h.total)return a=b.get("$validator"),e.$broadcast(a.broadcastChannel.start,g);for(i=j.promises.success,d=0,f=i.length;f>d;d++)(c=i[d])()}}),k}}(this),this.reset=function(a){return function(b,c){return b.$broadcast(a.broadcastChannel.reset,{model:c})}}(this),this.get=function(a){return this.setupProviders(a),{rules:this.rules,broadcastChannel:this.broadcastChannel,register:this.register,convertRule:this.convertRule,getRule:this.getRule,validate:this.validate,reset:this.reset}},this.get.$inject=["$injector"],this.$get=this.get})}.call(this),function(){angular.module("validator.rules",["validator"]).config(["$validatorProvider",function(a){return a.register("required",{invoke:"watch",validator:/.+/,error:"This field is required."}),a.register("number",{invoke:"watch",validator:/^[-+]?[0-9]*[\.]?[0-9]*$/,error:"This field should be the number."}),a.register("email",{invoke:"blur",validator:/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,error:"This field should be the email."}),a.register("url",{invoke:"blur",validator:/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/,error:"This field should be the url."})}])}.call(this),function(a,b){"function"==typeof define&&define.amd?define(["angular"],b):"object"==typeof module&&module.exports?module.exports=b(require("angular")):a.angularClipboard=b(a.angular)}(this,function(a){return a.module("angular-clipboard",[]).factory("clipboard",["$document",function(a){function b(b){var c=a[0].createElement("textarea");return c.style.position="absolute",c.style.left="-10000px",c.textContent=b,c}function c(b){try{a[0].body.style.webkitUserSelect="initial";var c=a[0].getSelection();if(c.removeAllRanges(),b.select(),!a[0].execCommand("copy"))throw"failure copy";c.removeAllRanges()}finally{a[0].body.style.webkitUserSelect=""}}function d(d){var e=b(d);a[0].body.appendChild(e),c(e),a[0].body.removeChild(e)}return{copyText:d}}]).directive("clipboard",["clipboard",function(b){return{restrict:"A",scope:{onCopied:"&",onError:"&",text:"="},link:function(c,d){d.on("click",function(d){try{b.copyText(c.text),a.isFunction(c.onCopied)&&c.$evalAsync(c.onCopied())}catch(e){a.isFunction(c.onError)&&c.$evalAsync(c.onError({err:e}))}})}}}])}),function(a,b,c){"use strict";function d(a){function c(b,c,d){var e=c.find("code"),f=b.$eval(d.lineNumbers)||!1;b.$watch(d.model,function(b){b&&(e.empty(),e.html(a.one(b.replace(/</g,"&lt;").replace(/>/g,"&gt;"),d.lang||"",f)))})}return{restrict:"EAC",compile:function(a,d,e){var g=b.element("<pre></pre>").addClass("prettyprint"),h=b.element("<code></code>").addClass("language-"+f(d.lang));return g.append(h),a.replaceWith(g[0]),c}}}function e(){this.$get=["$window",function(a){return{global:a.prettyPrint,one:a.prettyPrintOne}}]}var f=(b.isDefined,b.isUndefined,b.isFunction,b.isString,b.isNumber,b.isObject,b.isArray,b.forEach,b.extend,b.copy,b.equals,b.lowercase);b.uppercase;b.module("ng-code-mirror.directive",["ng-code-mirror.prettify"]).directive("codeMirror",["prettify",d]),b.module("ng-code-mirror",["ng-code-mirror.directive","ng-code-mirror.prettify"]),b.module("ng-code-mirror.prettify",[]).provider("prettify",e);var g=!0;a.PR_SHOULD_USE_CONTINUATION=!0;var h,i;!function(){function b(a){function b(a){var b=a.charCodeAt(0);if(92!==b)return b;var c=a.charAt(1);return b=l[c],b?b:c>="0"&&"7">=c?parseInt(a.substring(1),8):"u"===c||"x"===c?parseInt(a.substring(2),16):a.charCodeAt(1)}function c(a){if(32>a)return(16>a?"\\x0":"\\x")+a.toString(16);var b=String.fromCharCode(a);return"\\"===b||"-"===b||"]"===b||"^"===b?"\\"+b:b}function d(a){var d=a.substring(1,a.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g")),e=[],f="^"===d[0],g=["["];f&&g.push("^");for(var h=f?1:0,i=d.length;i>h;++h){var j=d[h];if(/\\[bdsw]/i.test(j))g.push(j);else{var k,l=b(j);i>h+2&&"-"===d[h+1]?(k=b(d[h+2]),h+=2):k=l,e.push([l,k]),65>k||l>122||(65>k||l>90||e.push([32|Math.max(65,l),32|Math.min(k,90)]),97>k||l>122||e.push([-33&Math.max(97,l),-33&Math.min(k,122)]))}}e.sort(function(a,b){return a[0]-b[0]||b[1]-a[1]});for(var m=[],n=[],h=0;h<e.length;++h){var o=e[h];o[0]<=n[1]+1?n[1]=Math.max(n[1],o[1]):m.push(n=o)}for(var h=0;h<m.length;++h){var o=m[h];g.push(c(o[0])),o[1]>o[0]&&(o[1]+1>o[0]&&g.push("-"),g.push(c(o[1])))}return g.push("]"),g.join("")}function e(a){for(var b=a.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g")),e=b.length,h=[],i=0,j=0;e>i;++i){var k=b[i];if("("===k)++j;else if("\\"===k.charAt(0)){var l=+k.substring(1);l&&(j>=l?h[l]=-1:b[i]=c(l))}}for(var i=1;i<h.length;++i)-1===h[i]&&(h[i]=++f);for(var i=0,j=0;e>i;++i){var k=b[i];if("("===k)++j,h[j]||(b[i]="(?:");else if("\\"===k.charAt(0)){var l=+k.substring(1);l&&j>=l&&(b[i]="\\"+h[l])}}for(var i=0;e>i;++i)"^"===b[i]&&"^"!==b[i+1]&&(b[i]="");if(a.ignoreCase&&g)for(var i=0;e>i;++i){var k=b[i],m=k.charAt(0);k.length>=2&&"["===m?b[i]=d(k):"\\"!==m&&(b[i]=k.replace(/[a-zA-Z]/g,function(a){
-var b=a.charCodeAt(0);return"["+String.fromCharCode(-33&b,32|b)+"]"}))}return b.join("")}for(var f=0,g=!1,h=!1,i=0,j=a.length;j>i;++i){var k=a[i];if(k.ignoreCase)h=!0;else if(/[a-z]/i.test(k.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){g=!0,h=!1;break}}for(var l={b:8,t:9,n:10,v:11,f:12,r:13},m=[],i=0,j=a.length;j>i;++i){var k=a[i];if(k.global||k.multiline)throw new Error(""+k);m.push("(?:"+e(k)+")")}return new RegExp(m.join("|"),h?"gi":"g")}function d(a,b){function c(a){var i=a.nodeType;if(1==i){if(d.test(a.className))return;for(var j=a.firstChild;j;j=j.nextSibling)c(j);var k=a.nodeName.toLowerCase();("br"===k||"li"===k)&&(e[h]="\n",g[h<<1]=f++,g[h++<<1|1]=a)}else if(3==i||4==i){var l=a.nodeValue;l.length&&(l=b?l.replace(/\r\n?/g,"\n"):l.replace(/[ \t\r\n]+/g," "),e[h]=l,g[h<<1]=f,f+=l.length,g[h++<<1|1]=a)}}var d=/(?:^|\s)nocode(?:\s|$)/,e=[],f=0,g=[],h=0;return c(a),{sourceCode:e.join("").replace(/\n$/,""),spans:g}}function e(a,b,c,d){if(b){var e={sourceCode:b,basePos:a};c(e),d.push.apply(d,e.decorations)}}function f(a){for(var b=c,d=a.firstChild;d;d=d.nextSibling){var e=d.nodeType;b=1===e?b?a:d:3===e&&W.test(d.nodeValue)?a:b}return b===a?c:b}function j(a,c){var d,f={};!function(){for(var e=a.concat(c),g=[],h={},i=0,j=e.length;j>i;++i){var k=e[i],l=k[3];if(l)for(var m=l.length;--m>=0;)f[l.charAt(m)]=k;var n=k[1],o=""+n;h.hasOwnProperty(o)||(g.push(n),h[o]=null)}g.push(/[\0-\uffff]/),d=b(g)}();var g=c.length,h=function(a){for(var b=a.sourceCode,i=a.basePos,j=[i,O],k=0,l=b.match(d)||[],m={},n=0,p=l.length;p>n;++n){var q,r=l[n],s=m[r],t=void 0;if("string"==typeof s)q=!1;else{var u=f[r.charAt(0)];if(u)t=r.match(u[1]),s=u[0];else{for(var v=0;g>v;++v)if(u=c[v],t=r.match(u[1])){s=u[0];break}t||(s=O)}q=s.length>=5&&"lang-"===s.substring(0,5),!q||t&&"string"==typeof t[1]||(q=!1,s=R),q||(m[r]=s)}var w=k;if(k+=r.length,q){var x=t[1],y=r.indexOf(x),z=y+x.length;t[2]&&(z=r.length-t[2].length,y=z-x.length);var A=s.substring(5);e(i+w,r.substring(0,y),h,j),e(i+w+y,x,o(A,x),j),e(i+w+z,r.substring(z),h,j)}else j.push(i+w,s)}a.decorations=j};return h}function k(a){var b=[],c=[];a.tripleQuotedStrings?b.push([I,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""]):a.multiLineStrings?b.push([I,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]):b.push([I,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"]),a.verbatimStrings&&c.push([I,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null]);var d=a.hashComments;d&&(a.cStyleComments?(d>1?b.push([K,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"]):b.push([K,/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"]),c.push([I,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])):b.push([K,/^#[^\r\n]*/,null,"#"])),a.cStyleComments&&(c.push([K,/^\/\/[^\r\n]*/,null]),c.push([K,/^\/\*[\s\S]*?(?:\*\/|$)/,null]));var e=a.regexLiterals;if(e){var f=e>1?"":"\n\r",g=f?".":"[\\S\\s]",h="/(?=[^/*"+f+"])(?:[^/\\x5B\\x5C"+f+"]|\\x5C"+g+"|\\x5B(?:[^\\x5C\\x5D"+f+"]|\\x5C"+g+")*(?:\\x5D|$))+/";c.push(["lang-regex",RegExp("^"+V+"("+h+")")])}var i=a.types;i&&c.push([L,i]);var k=(""+a.keywords).replace(/^ | $/g,"");k.length&&c.push([J,new RegExp("^(?:"+k.replace(/[\s,]+/g,"|")+")\\b"),null]),b.push([O,/^\s+/,null," \r\n   "]);var l="^.[^\\s\\w.$@'\"`/\\\\]*";return a.regexLiterals&&(l+="(?!s*/)"),c.push([M,/^@[a-z_$][a-z_$@0-9]*/i,null],[L,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[O,/^[a-z_$][a-z_$@0-9]*/i,null],[M,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[O,/^\\[\s\S]?/,null],[N,new RegExp(l),null]),j(b,c)}function l(a,b,c){function d(a){var b=a.nodeType;if(1!=b||f.test(a.className)){if((3==b||4==b)&&c){var i=a.nodeValue,j=i.match(g);if(j){var k=i.substring(0,j.index);a.nodeValue=k;var l=i.substring(j.index+j[0].length);if(l){var m=a.parentNode;m.insertBefore(h.createTextNode(l),a.nextSibling)}e(a),k||a.parentNode.removeChild(a)}}}else if("br"===a.nodeName)e(a),a.parentNode&&a.parentNode.removeChild(a);else for(var n=a.firstChild;n;n=n.nextSibling)d(n)}function e(a){function b(a,c){var d=c?a.cloneNode(!1):a,e=a.parentNode;if(e){var f=b(e,1),g=a.nextSibling;f.appendChild(d);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var c,d=b(a.nextSibling,0);(c=d.parentNode)&&1===c.nodeType;)d=c;j.push(d)}for(var f=/(?:^|\s)nocode(?:\s|$)/,g=/\r\n?|\n/,h=a.ownerDocument,i=h.createElement("li");a.firstChild;)i.appendChild(a.firstChild);for(var j=[i],k=0;k<j.length;++k)d(j[k]);b===(0|b)&&j[0].setAttribute("value",b);var l=h.createElement("ol");l.className="linenums";for(var m=Math.max(0,b-1|0)||0,k=0,n=j.length;n>k;++k)i=j[k],i.className="L"+(k+m)%10,i.firstChild||i.appendChild(h.createTextNode(" ")),l.appendChild(i);a.appendChild(l)}function m(a){var b=/\bMSIE\s(\d+)/.exec(navigator.userAgent);b=b&&+b[1]<=8;var c=/\n/g,d=a.sourceCode,e=d.length,f=0,g=a.spans,h=g.length,i=0,j=a.decorations,k=j.length,l=0;j[k]=e;var m,n;for(n=m=0;k>n;)j[n]!==j[n+2]?(j[m++]=j[n++],j[m++]=j[n++]):n+=2;for(k=m,n=m=0;k>n;){for(var o=j[n],p=j[n+1],q=n+2;k>=q+2&&j[q+1]===p;)q+=2;j[m++]=o,j[m++]=p,n=q}k=j.length=m;var r,s=a.sourceNode;s&&(r=s.style.display,s.style.display="none");try{for(;h>i;){var t,u=(g[i],g[i+2]||e),v=j[l+2]||e,q=Math.min(u,v),w=g[i+1];if(1!==w.nodeType&&(t=d.substring(f,q))){b&&(t=t.replace(c,"\r")),w.nodeValue=t;var x=w.ownerDocument,y=x.createElement("span");y.className=j[l+1];var z=w.parentNode;z.replaceChild(y,w),y.appendChild(w),u>f&&(g[i+1]=w=x.createTextNode(d.substring(q,u)),z.insertBefore(w,y.nextSibling))}f=q,f>=u&&(i+=2),f>=v&&(l+=2)}}finally{s&&(s.style.display=r)}}function n(a,b){for(var c=b.length;--c>=0;){var d=b[c];Y.hasOwnProperty(d)?s.console&&console.warn("cannot override language handler %s",d):Y[d]=a}}function o(a,b){return a&&Y.hasOwnProperty(a)||(a=/^\s*</.test(b)?"default-markup":"default-code"),Y[a]}function p(a){var b=a.langExtension;try{var c=d(a.sourceNode,a.pre),e=c.sourceCode;a.sourceCode=e,a.spans=c.spans,a.basePos=0,o(b,e)(a),m(a)}catch(f){s.console&&console.log(f&&f.stack||f)}}function q(a,b,c){var d=document.createElement("div");d.innerHTML="<pre>"+a+"</pre>",d=d.firstChild,c&&l(d,c,!0);var e={langExtension:b,numberLines:c,sourceNode:d,pre:1};return p(e),d.innerHTML}function r(a,b){function c(a){return e.getElementsByTagName(a)}function d(){for(var b=s.PR_SHOULD_USE_CONTINUATION?n.now()+250:1/0;q<i.length&&n.now()<b;q++){for(var c=i[q],e=y,h=c;h=h.previousSibling;){var j=h.nodeType,k=(7===j||8===j)&&h.nodeValue;if(k?!/^\??prettify\b/.test(k):3!==j||/\S/.test(h.nodeValue))break;if(k){e={},k.replace(/\b(\w+)=([\w:.%+-]+)/g,function(a,b,c){e[b]=c});break}}var m=c.className;if((e!==y||t.test(m))&&!u.test(m)){for(var z=!1,A=c.parentNode;A;A=A.parentNode){var B=A.tagName;if(x.test(B)&&A.className&&t.test(A.className)){z=!0;break}}if(!z){c.className+=" prettyprinted";var C=e.lang;if(!C){C=m.match(r);var D;!C&&(D=f(c))&&w.test(D.tagName)&&(C=D.className.match(r)),C&&(C=C[1])}var E;if(v.test(c.tagName))E=1;else{var F=c.currentStyle,G=g.defaultView,H=F?F.whiteSpace:G&&G.getComputedStyle?G.getComputedStyle(c,null).getPropertyValue("white-space"):0;E=H&&"pre"===H.substring(0,3)}var I=e.linenums;(I="true"===I||+I)||(I=m.match(/\blinenums\b(?::(\d+))?/),I=I?I[1]&&I[1].length?+I[1]:!0:!1),I&&l(c,I,E),o={langExtension:C,sourceNode:c,numberLines:I,pre:E},p(o)}}}q<i.length?setTimeout(d,250):"function"==typeof a&&a()}for(var e=b||document.body,g=e.ownerDocument||document,h=[c("pre"),c("code"),c("xmp")],i=[],j=0;j<h.length;++j)for(var k=0,m=h[j].length;m>k;++k)i.push(h[j][k]);h=null;var n=Date;n.now||(n={now:function(){return+new Date}});var o,q=0,r=/\blang(?:uage)?-([\w.]+)(?!\S)/,t=/\bprettyprint\b/,u=/\bprettyprinted\b/,v=/pre|xmp/i,w=/^code$/i,x=/^(?:pre|code|xmp)$/i,y={};d()}var s=a,t=["break,continue,do,else,for,if,return,while"],u=[t,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],v=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],w=[v,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],x=[v,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],y=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],z="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",A=[v,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],B="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",C=[t,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],D=[t,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],E=[t,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],F=[t,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],G=[w,y,A,B,C,D,F],H=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,I="str",J="kwd",K="com",L="typ",M="lit",N="pun",O="pln",P="tag",Q="dec",R="src",S="atn",T="atv",U="nocode",V="(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*",W=/\S/,X=k({keywords:G,hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),Y={};n(X,["default-code"]),n(j([],[[O,/^[^<?]+/],[Q,/^<!\w[^>]*(?:>|$)/],[K,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[N,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]),n(j([[O,/^[\s]+/,null,"  \r\n"],[T,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[P,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[S,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[N,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]),n(j([],[[T,/^[\s\S]+/]]),["uq.val"]),n(k({keywords:w,hashComments:!0,cStyleComments:!0,types:H}),["c","cc","cpp","cxx","cyc","m"]),n(k({keywords:"null,true,false"}),["json"]),n(k({keywords:y,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:H}),["cs"]),n(k({keywords:x,cStyleComments:!0}),["java"]),n(k({keywords:F,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]),n(k({keywords:C,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]),n(k({keywords:B,hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]),n(k({keywords:D,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]),n(k({keywords:A,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]),n(k({keywords:z,hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]),n(k({keywords:E,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]),n(j([],[[I,/^[\s\S]+/]]),["regex"]);var Z=s.PR={createSimpleLexer:j,registerLangHandler:n,sourceDecorator:k,PR_ATTRIB_NAME:S,PR_ATTRIB_VALUE:T,PR_COMMENT:K,PR_DECLARATION:Q,PR_KEYWORD:J,PR_LITERAL:M,PR_NOCODE:U,PR_PLAIN:O,PR_PUNCTUATION:N,PR_SOURCE:R,PR_STRING:I,PR_TAG:P,PR_TYPE:L,prettyPrintOne:g?s.prettyPrintOne=q:h=q,prettyPrint:i=g?s.prettyPrint=r:i=r};"function"==typeof define&&define.amd&&define("google-code-prettify",[],function(){return Z})}()}(window,window.angular),function(){"use strict";var a=angular.module("permission",["ui.router"]);a.config(["$stateProvider",function(a){a.decorator("parent",function(a,b){return a.self.getState=function(){return a},b(a)})}]),a.run(["$rootScope","$state","$q","Authorization","PermissionMap",function(a,b,c,d,e){a.$on("$stateChangeStart",function(c,f,g,h,i,j){function k(a){return angular.isDefined(a.data)&&angular.isDefined(a.data.permissions)}function l(a){f=angular.extend({$$isAuthorizationFinished:a},f)}function m(){return r()||q()}function n(a){var c=new e({redirectTo:a.redirectTo}),d=b.get(f.name).getState().path.slice().reverse();return angular.forEach(d,function(a){k(a)&&c.extendPermissionMap(new e(a.data.permissions))}),c}function o(b){d.authorize(b,g).then(function(){a.$broadcast("$stateChangePermissionAccepted",f,g,j),p(f.name)})["catch"](function(c){a.$broadcast("$stateChangePermissionDenied",f,g,j),b.redirectToState(c)})}function p(c){b.go(c,g,angular.extend({},j,{notify:!1})).then(function(){a.$broadcast("$stateChangeSuccess",f,g,h,i,j)})}function q(){return a.$broadcast("$stateChangeStart",f,g,h,i,j).defaultPrevented}function r(){return a.$broadcast("$stateChangePermissionStart",f,g,j).defaultPrevented}if(!f.$$isAuthorizationFinished&&k(f)&&(c.preventDefault(),l(!0),!m())){var s=n(f.data.permissions);o(s)}})}])}(),function(){"use strict";angular.module("permission").factory("PermissionMap",["$q","$state",function(a,b){function c(a,b,c,d){this.only=g(a.only,b,c,d),this.except=g(a.except,b,c,d),this.redirectTo=a.redirectTo}function d(b,c){a.when(b.call(null,c)).then(function(a){if(!angular.isString(a))throw new TypeError('When used "redirectTo" as function, returned value must be string with state name');f(a)})}function e(a,b){if(!angular.isDefined(a["default"]))throw new ReferenceError('When used "redirectTo" as object, property "default" must be defined');var c=a[b];angular.isDefined(c)||(c=a["default"]),angular.isFunction(c)&&d(c,b),angular.isString(c)&&f(c)}function f(a,c,d){b.go(a,c,d)}function g(a,b,c,d){return angular.isString(a)?[a]:angular.isArray(a)?a:angular.isFunction(a)?a.call(null,b,c,d):[]}return c.prototype.extendPermissionMap=function(a){this.only=this.only.concat(a.only),this.except=this.except.concat(a.except)},c.prototype.redirectToState=function(a){angular.isFunction(this.redirectTo)&&d(this.redirectTo,a),angular.isObject(this.redirectTo)&&e(this.redirectTo,a),angular.isString(this.redirectTo)&&f(this.redirectTo,this.toParams,this.options)},c}])}(),function(){"use strict";angular.module("permission").factory("Permission",["$q",function(a){function b(a,b){d(a,b),this.permissionName=a,this.validationFunction=b}function c(b,c){var d=a.defer();return b?d.resolve(c):d.reject(c),d.promise}function d(a,b){if(!angular.isString(a))throw new TypeError('Parameter "permissionName" name must be String');if(!angular.isFunction(b))throw new TypeError('Parameter "validationFunction" must be Function')}return b.prototype.validatePermission=function(a){var b=this.validationFunction.call(null,a,this.permissionName);return angular.isFunction(b.then)||(b=c(b,this.permissionName)),b},b}])}(),function(){"use strict";angular.module("permission").factory("Role",["$q","PermissionStore",function(a,b){function c(a,c,d){e(a,c,d),this.roleName=a,this.permissionNames=c||[],this.validationFunction=d,d&&b.defineManyPermissions(c,d)}function d(b,c){var d=a.defer();return b?d.resolve(c):d.reject(c),d.promise}function e(a,b,c){if(!angular.isString(a))throw new TypeError('Parameter "roleName" name must be String');if(!angular.isArray(b))throw new TypeError('Parameter "permissionNames" must be Array');if(!b.length&&!angular.isFunction(c))throw new TypeError('Parameter "validationFunction" must be provided for empty "permissionNames" array')}return c.prototype.validateRole=function(c){if(this.permissionNames.length){var e=this.permissionNames.map(function(e){if(b.hasPermissionDefinition(e)){var f=b.getPermissionDefinition(e),g=f.validationFunction.call(null,c,f.permissionName);return angular.isFunction(g.then)||(g=d(g)),g}return a.reject(null)});return a.all(e)}var f=this.validationFunction.call(null,c,this.roleName);return angular.isFunction(f.then)||(f=d(f,this.roleName)),a.resolve(f)},c}])}(),function(){"use strict";angular.module("permission").service("PermissionStore",["Permission",function(a){function b(b,c){i[b]=new a(b,c)}function c(a,c){if(!angular.isArray(a))throw new TypeError('Parameter "permissionNames" name must be Array');angular.forEach(a,function(a){b(a,c)})}function d(a){delete i[a]}function e(a){return angular.isDefined(i[a])}function f(a){return i[a]}function g(){return i}function h(){i={}}var i={};this.definePermission=b,this.defineManyPermissions=c,this.removePermissionDefinition=d,this.hasPermissionDefinition=e,this.getPermissionDefinition=f,this.getStore=g,this.clearStore=h}])}(),function(){"use strict";angular.module("permission").service("RoleStore",["Role",function(a){function b(b,c,d){h[b]=new a(b,c,d)}function c(a){delete h[a]}function d(a){return angular.isDefined(h[a])}function e(a){return h[a]}function f(){return h}function g(){h={}}var h={};this.defineRole=b,this.getRoleDefinition=e,this.hasRoleDefinition=d,this.removeRoleDefinition=c,this.getStore=f,this.clearStore=g}])}(),function(){"use strict";angular.module("permission").directive("permission",["$log","Authorization","PermissionMap",function(a,b,c){return{restrict:"A",bindToController:{only:"=",except:"="},controllerAs:"permission",controller:["$scope","$element",function(d,e){var f=this;d.$watchGroup(["permission.only","permission.except"],function(){try{b.authorize(new c({only:f.only,except:f.except}),null).then(function(){e.removeClass("ng-hide")})["catch"](function(){e.addClass("ng-hide")})}catch(d){e.addClass("ng-hide"),a.error(d.message)}})}]}}])}(),function(){"use strict";angular.module("permission").service("Authorization",["$q","PermissionMap","PermissionStore","RoleStore",function(a,b,c,d){function e(a,b){return f(a,b)}function f(b,c){var d=a.defer(),e=h(b.except,c);return g(e).then(function(a){d.reject(a)})["catch"](function(){b.only.length||d.resolve(null);var a=h(b.only,c);g(a).then(function(a){d.resolve(a)})["catch"](function(a){d.reject(a)})}),d.promise}function g(b){var c=a.defer(),d=0,e=angular.isArray(b)?[]:{};return angular.forEach(b,function(b,f){d++,a.when(b).then(function(a){e.hasOwnProperty(f)||c.resolve(a)})["catch"](function(a){e.hasOwnProperty(f)||(e[f]=a,--d||c.reject(a))})}),0===d&&c.reject(e),c.promise}function h(b,e){return b.map(function(b){return d.hasRoleDefinition(b)?i(b,e):c.hasPermissionDefinition(b)?j(b,e):b?a.reject(b):void 0})}function i(a,b){var c=d.getRoleDefinition(a);return c.validateRole(b)}function j(a,b){var d=c.getPermissionDefinition(a);return d.validatePermission(b)}this.authorize=e}])}(),function(){function a(a){var b=function(a,d){var f=e({},b,d||{});return c(a,f)};return e(b,{language:"en",delimiter:", ",spacer:" ",units:["year","month","week","day","hour","minute","second"],languages:{},halfUnit:!0,round:!1},a)}function b(){return k.apply(k,arguments)}function c(a,b){if(a=Math.abs(a),0===a)return"0";var c=b.languages[b.language]||j[b.language];if(!c)throw new Error("No language "+c+".");for(var e,f,g,h,k=[],l=0,m=b.units.length;m>l;l++){if(e=b.units[l],"s"===e[e.length-1]&&(e=e.substring(0,e.length-1)),f=i[e],0===k.length&&b.halfUnit&&(h=a/f*2,h===Math.floor(h)))return d(h/2,e,c,b.spacer);l+1===m?(g=a/f,b.round&&(g=Math.round(g))):g=Math.floor(a/f),g&&k.push(d(g,e,c,b.spacer)),a-=g*f}return k.join(b.delimiter)}function d(a,b,c,d){var e,f=c[b];return e="function"==typeof f?f(a):f,a+d+e}function e(a){for(var b,c=1;c<arguments.length;c++){b=arguments[c];for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d])}return a}function f(a){return 1===a?0:Math.floor(a)!==a?1:a%10>=2&&4>=a%10&&!(a%100>10&&20>a%100)?2:3}function g(a){return Math.floor(a)!==a?2:0===a||a>=5&&20>=a||a%10>=5&&9>=a%10||a%10===0?0:1===a||a%10===1?1:a>1?2:0}function h(){var a=[];for(var b in j)j.hasOwnProperty(b)&&a.push(b);return a}var i={year:315576e5,month:26298e5,week:6048e5,day:864e5,hour:36e5,minute:6e4,second:1e3,millisecond:1},j={ar:{year:function(a){return 1===a?"سنة":"سنوات"},month:function(a){return 1===a?"شهر":"أشهر"},week:function(a){return 1===a?"أسبوع":"أسابيع"},day:function(a){return 1===a?"يوم":"أيام"},hour:function(a){return 1===a?"ساعة":"ساعات"},minute:function(a){return 1===a?"دقيقة":"دقائق"},second:function(a){return 1===a?"ثانية":"ثواني"},millisecond:function(a){return 1===a?"جزء من الثانية":"أجزاء من الثانية"}},ca:{year:function(a){return"any"+(1!==a?"s":"")},month:function(a){return"mes"+(1!==a?"os":"")},week:function(a){return"setman"+(1!==a?"es":"a")},day:function(a){return"di"+(1!==a?"es":"a")},hour:function(a){return"hor"+(1!==a?"es":"a")},minute:function(a){return"minut"+(1!==a?"s":"")},second:function(a){return"segon"+(1!==a?"s":"")},millisecond:function(a){return"milisegon"+(1!==a?"s":"")}},da:{year:"år",month:function(a){return"måned"+(1!==a?"er":"")},week:function(a){return"uge"+(1!==a?"r":"")},day:function(a){return"dag"+(1!==a?"e":"")},hour:function(a){return"time"+(1!==a?"r":"")},minute:function(a){return"minut"+(1!==a?"ter":"")},second:function(a){return"sekund"+(1!==a?"er":"")},millisecond:function(a){return"millisekund"+(1!==a?"er":"")}},de:{year:function(a){return"Jahr"+(1!==a?"e":"")},month:function(a){return"Monat"+(1!==a?"e":"")},week:function(a){return"Woche"+(1!==a?"n":"")},day:function(a){return"Tag"+(1!==a?"e":"")},hour:function(a){return"Stunde"+(1!==a?"n":"")},minute:function(a){return"Minute"+(1!==a?"n":"")},second:function(a){return"Sekunde"+(1!==a?"n":"")},millisecond:function(a){return"Millisekunde"+(1!==a?"n":"")}},en:{year:function(a){return"year"+(1!==a?"s":"")},month:function(a){return"month"+(1!==a?"s":"")},week:function(a){return"week"+(1!==a?"s":"")},day:function(a){return"day"+(1!==a?"s":"")},hour:function(a){return"hour"+(1!==a?"s":"")},minute:function(a){return"minute"+(1!==a?"s":"")},second:function(a){return"second"+(1!==a?"s":"")},millisecond:function(a){return"millisecond"+(1!==a?"s":"")}},es:{year:function(a){return"año"+(1!==a?"s":"")},month:function(a){return"mes"+(1!==a?"es":"")},week:function(a){return"semana"+(1!==a?"s":"")},day:function(a){return"día"+(1!==a?"s":"")},hour:function(a){return"hora"+(1!==a?"s":"")},minute:function(a){return"minuto"+(1!==a?"s":"")},second:function(a){return"segundo"+(1!==a?"s":"")},millisecond:function(a){return"milisegundo"+(1!==a?"s":"")}},fr:{year:function(a){return"an"+(1!==a?"s":"")},month:"mois",week:function(a){return"semaine"+(1!==a?"s":"")},day:function(a){return"jour"+(1!==a?"s":"")},hour:function(a){return"heure"+(1!==a?"s":"")},minute:function(a){return"minute"+(1!==a?"s":"")},second:function(a){return"seconde"+(1!==a?"s":"")},millisecond:function(a){return"milliseconde"+(1!==a?"s":"")}},hu:{year:"év",month:"hónap",week:"hét",day:"nap",hour:"óra",minute:"perc",second:"másodperc",millisecond:"ezredmásodperc"},it:{year:function(a){return"ann"+(1!==a?"i":"o")},month:function(a){return"mes"+(1!==a?"i":"e")},week:function(a){return"settiman"+(1!==a?"e":"a")},day:function(a){return"giorn"+(1!==a?"i":"o")},hour:function(a){return"or"+(1!==a?"e":"a")},minute:function(a){return"minut"+(1!==a?"i":"o")},second:function(a){return"second"+(1!==a?"i":"o")},millisecond:function(a){return"millisecond"+(1!==a?"i":"o")}},ja:{year:"年",month:"月",week:"週",day:"日",hour:"時間",minute:"分",second:"秒",millisecond:"ミリ秒"},ko:{year:"년",month:"개월",week:"주일",day:"일",hour:"시간",minute:"분",second:"초",millisecond:"밀리 초"},nl:{year:"jaar",month:function(a){return 1===a?"maand":"maanden"},week:function(a){return 1===a?"week":"weken"},day:function(a){return 1===a?"dag":"dagen"},hour:"uur",minute:function(a){return 1===a?"minuut":"minuten"},second:function(a){return 1===a?"seconde":"seconden"},millisecond:function(a){return 1===a?"milliseconde":"milliseconden"}},nob:{year:"år",month:function(a){return"måned"+(1!==a?"er":"")},week:function(a){return"uke"+(1!==a?"r":"")},day:function(a){return"dag"+(1!==a?"er":"")},hour:function(a){return"time"+(1!==a?"r":"")},minute:function(a){return"minutt"+(1!==a?"er":"")},second:function(a){return"sekund"+(1!==a?"er":"")},millisecond:function(a){return"millisekund"+(1!==a?"er":"")}},pl:{year:function(a){return["rok","roku","lata","lat"][f(a)]},month:function(a){return["miesiąc","miesiąca","miesiące","miesięcy"][f(a)]},week:function(a){return["tydzień","tygodnia","tygodnie","tygodni"][f(a)]},day:function(a){return["dzień","dnia","dni","dni"][f(a)]},hour:function(a){return["godzina","godziny","godziny","godzin"][f(a)]},minute:function(a){return["minuta","minuty","minuty","minut"][f(a)]},second:function(a){return["sekunda","sekundy","sekundy","sekund"][f(a)]},millisecond:function(a){return["milisekunda","milisekundy","milisekundy","milisekund"][f(a)]}},pt:{year:function(a){return"ano"+(1!==a?"s":"")},month:function(a){return 1!==a?"meses":"mês"},week:function(a){return"semana"+(1!==a?"s":"")},day:function(a){return"dia"+(1!==a?"s":"")},hour:function(a){return"hora"+(1!==a?"s":"")},minute:function(a){return"minuto"+(1!==a?"s":"")},second:function(a){return"segundo"+(1!==a?"s":"")},millisecond:function(a){return"milissegundo"+(1!==a?"s":"")}},ru:{year:function(a){return["лет","год","года"][g(a)]},month:function(a){return["месяцев","месяц","месяца"][g(a)]},week:function(a){return["недель","неделя","недели"][g(a)]},day:function(a){return["дней","день","дня"][g(a)]},hour:function(a){return["часов","час","часа"][g(a)]},minute:function(a){return["минут","минута","минуты"][g(a)]},second:function(a){return["секунд","секунда","секунды"][g(a)]},millisecond:function(a){return["миллисекунд","миллисекунда","миллисекунды"][g(a)]}},sv:{year:"år",month:function(a){return"månad"+(1!==a?"er":"")},week:function(a){return"veck"+(1!==a?"or":"a")},day:function(a){return"dag"+(1!==a?"ar":"")},hour:function(a){return"timm"+(1!==a?"ar":"e")},minute:function(a){return"minut"+(1!==a?"er":"")},second:function(a){return"sekund"+(1!==a?"er":"")},millisecond:function(a){return"millisekund"+(1!==a?"er":"")}},tr:{year:"yıl",month:"ay",week:"hafta",day:"gün",hour:"saat",minute:"dakika",second:"saniye",millisecond:"milisaniye"},"zh-CN":{year:"年",month:"个月",week:"周",day:"天",hour:"小时",minute:"分钟",second:"秒",millisecond:"毫秒"},"zh-TW":{year:"年",month:"個月",week:"周",day:"天",hour:"小時",minute:"分鐘",second:"秒",millisecond:"毫秒"}},k=a({});b.humanizer=a,b.getSupportedLanguages=h,"function"==typeof define&&define.amd?define(function(){return b}):"undefined"!=typeof module&&module.exports?module.exports=b:this.humanizeDuration=b}();var timerModule=angular.module("timer",[]).directive("timer",["$compile",function(a){return{restrict:"EA",replace:!1,scope:{interval:"=interval",startTimeAttr:"=startTime",endTimeAttr:"=endTime",countdownattr:"=countdown",finishCallback:"&finishCallback",autoStart:"&autoStart",language:"@?",fallback:"@?",maxTimeUnit:"="},controller:["$scope","$element","$attrs","$timeout","I18nService","$interpolate","progressBarService",function(b,c,d,e,f,g,h){function i(){b.timeoutId&&clearTimeout(b.timeoutId)}function j(){var a={};void 0!==d.startTime&&(b.millis=moment().diff(moment(b.startTimeAttr))),a=k.getTimeUnits(b.millis),b.maxTimeUnit&&"day"!==b.maxTimeUnit?"second"===b.maxTimeUnit?(b.seconds=Math.floor(b.millis/1e3),b.minutes=0,b.hours=0,b.days=0,b.months=0,b.years=0):"minute"===b.maxTimeUnit?(b.seconds=Math.floor(b.millis/1e3%60),b.minutes=Math.floor(b.millis/6e4),b.hours=0,b.days=0,b.months=0,b.years=0):"hour"===b.maxTimeUnit?(b.seconds=Math.floor(b.millis/1e3%60),b.minutes=Math.floor(b.millis/6e4%60),b.hours=Math.floor(b.millis/36e5),b.days=0,b.months=0,b.years=0):"month"===b.maxTimeUnit?(b.seconds=Math.floor(b.millis/1e3%60),b.minutes=Math.floor(b.millis/6e4%60),b.hours=Math.floor(b.millis/36e5%24),b.days=Math.floor(b.millis/36e5/24%30),b.months=Math.floor(b.millis/36e5/24/30),b.years=0):"year"===b.maxTimeUnit&&(b.seconds=Math.floor(b.millis/1e3%60),b.minutes=Math.floor(b.millis/6e4%60),b.hours=Math.floor(b.millis/36e5%24),b.days=Math.floor(b.millis/36e5/24%30),b.months=Math.floor(b.millis/36e5/24/30%12),b.years=Math.floor(b.millis/36e5/24/365)):(b.seconds=Math.floor(b.millis/1e3%60),b.minutes=Math.floor(b.millis/6e4%60),b.hours=Math.floor(b.millis/36e5%24),b.days=Math.floor(b.millis/36e5/24),b.months=0,b.years=0),b.secondsS=1===b.seconds?"":"s",b.minutesS=1===b.minutes?"":"s",b.hoursS=1===b.hours?"":"s",b.daysS=1===b.days?"":"s",b.monthsS=1===b.months?"":"s",b.yearsS=1===b.years?"":"s",b.secondUnit=a.seconds,b.minuteUnit=a.minutes,b.hourUnit=a.hours,b.dayUnit=a.days,b.monthUnit=a.months,b.yearUnit=a.years,b.sseconds=b.seconds<10?"0"+b.seconds:b.seconds,b.mminutes=b.minutes<10?"0"+b.minutes:b.minutes,b.hhours=b.hours<10?"0"+b.hours:b.hours,b.ddays=b.days<10?"0"+b.days:b.days,b.mmonths=b.months<10?"0"+b.months:b.months,b.yyears=b.years<10?"0"+b.years:b.years}"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),b.autoStart=d.autoStart||d.autostart,b.language=b.language||"en",b.fallback=b.fallback||"en",b.$watch("language",function(a,c){void 0!==a&&k.init(a,b.fallback)});var k=new f;k.init(b.language,b.fallback),b.displayProgressBar=0,b.displayProgressActive="active",0===c.html().trim().length?c.append(a("<span>"+g.startSymbol()+"millis"+g.endSymbol()+"</span>")(b)):c.append(a(c.contents())(b)),b.startTime=null,b.endTime=null,b.timeoutId=null,b.countdown=b.countdownattr&&parseInt(b.countdownattr,10)>=0?parseInt(b.countdownattr,10):void 0,b.isRunning=!1,b.$on("timer-start",function(){b.start()}),b.$on("timer-resume",function(){b.resume()}),b.$on("timer-stop",function(){b.stop()}),b.$on("timer-clear",function(){b.clear()}),b.$on("timer-reset",function(){b.reset()}),b.$on("timer-set-countdown",function(a,c){b.countdown=c}),b.$watch("startTimeAttr",function(a,c){a!==c&&b.isRunning&&b.start()}),b.$watch("endTimeAttr",function(a,c){a!==c&&b.isRunning&&b.start()}),b.start=c[0].start=function(){b.startTime=b.startTimeAttr?moment(b.startTimeAttr):moment(),b.endTime=b.endTimeAttr?moment(b.endTimeAttr):null,b.countdown||(b.countdown=b.countdownattr&&parseInt(b.countdownattr,10)>0?parseInt(b.countdownattr,10):void 0),i(),l(),b.isRunning=!0},b.resume=c[0].resume=function(){i(),b.countdownattr&&(b.countdown+=1),b.startTime=moment().diff(moment(b.stoppedTime).diff(moment(b.startTime))),l(),b.isRunning=!0},b.stop=b.pause=c[0].stop=c[0].pause=function(){var a=b.timeoutId;b.clear(),b.$emit("timer-stopped",{timeoutId:a,millis:b.millis,seconds:b.seconds,minutes:b.minutes,hours:b.hours,days:b.days})},b.clear=c[0].clear=function(){b.stoppedTime=moment(),i(),b.timeoutId=null,b.isRunning=!1},b.reset=c[0].reset=function(){b.startTime=b.startTimeAttr?moment(b.startTimeAttr):moment(),b.endTime=b.endTimeAttr?moment(b.endTimeAttr):null,b.countdown=b.countdownattr&&parseInt(b.countdownattr,10)>0?parseInt(b.countdownattr,10):void 0,
-i(),l(),b.isRunning=!1,b.clear()},c.bind("$destroy",function(){i(),b.isRunning=!1}),b.countdownattr?(b.millis=1e3*b.countdownattr,b.addCDSeconds=c[0].addCDSeconds=function(a){b.countdown+=a,b.$digest(),b.isRunning||b.start()},b.$on("timer-add-cd-seconds",function(a,c){e(function(){b.addCDSeconds(c)})}),b.$on("timer-set-countdown-seconds",function(a,c){b.isRunning||b.clear(),b.countdown=c,b.millis=1e3*c,j()})):b.millis=0,j();var l=function m(){var a=null;b.millis=moment().diff(b.startTime);var c=b.millis%1e3;return b.endTimeAttr&&(a=b.endTimeAttr,b.millis=moment(b.endTime).diff(moment()),c=b.interval-b.millis%1e3),b.countdownattr&&(a=b.countdownattr,b.millis=1e3*b.countdown),b.millis<0?(b.stop(),b.millis=0,j(),void(b.finishCallback&&b.$eval(b.finishCallback))):(j(),b.timeoutId=setTimeout(function(){m(),b.$digest()},b.interval-c),b.$emit("timer-tick",{timeoutId:b.timeoutId,millis:b.millis}),b.countdown>0?b.countdown--:b.countdown<=0&&(b.stop(),b.finishCallback&&b.$eval(b.finishCallback)),void(null!==a&&(b.progressBar=h.calculateProgressBar(b.startTime,b.millis,b.endTime,b.countdownattr),100===b.progressBar&&(b.displayProgressActive=""))))};(void 0===b.autoStart||b.autoStart===!0)&&b.start()}]}}]);"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports=timerModule);var app=angular.module("timer");app.factory("I18nService",function(){var a=function(){};return a.prototype.language="en",a.prototype.fallback="en",a.prototype.timeHumanizer={},a.prototype.init=function(a,b){var c=humanizeDuration.getSupportedLanguages();this.fallback=void 0!==b?b:"en",-1===c.indexOf(b)&&(this.fallback="en"),this.language=a,-1===c.indexOf(a)&&(this.language=this.fallback),moment.locale(this.language),this.timeHumanizer=humanizeDuration.humanizer({language:this.language,halfUnit:!1})},a.prototype.getTimeUnits=function(a){var b=1e3*Math.round(a/1e3),c={};return"undefined"!=typeof this.timeHumanizer?c={millis:this.timeHumanizer(b,{units:["milliseconds"]}),seconds:this.timeHumanizer(b,{units:["seconds"]}),minutes:this.timeHumanizer(b,{units:["minutes","seconds"]}),hours:this.timeHumanizer(b,{units:["hours","minutes","seconds"]}),days:this.timeHumanizer(b,{units:["days","hours","minutes","seconds"]}),months:this.timeHumanizer(b,{units:["months","days","hours","minutes","seconds"]}),years:this.timeHumanizer(b,{units:["years","months","days","hours","minutes","seconds"]})}:console.error('i18nService has not been initialized. You must call i18nService.init("en") for example'),c},a});var app=angular.module("timer");app.factory("progressBarService",function(){var a=function(){};return a.prototype.calculateProgressBar=function(a,b,c,d){var e,f,g=0;return b/=1e3,null!==c?(e=moment(c),f=e.diff(a,"seconds"),g=100*b/f):g=100*b/d,g=100-g,g=Math.round(10*g)/10,g>100&&(g=100),g},new a}),function(){"use strict";function a(a,b){return a.module("angularMoment",[]).constant("angularMomentConfig",{preprocess:null,timezone:"",format:null,statefulFilters:!0}).constant("moment",b).constant("amTimeAgoConfig",{withoutSuffix:!1,serverTime:null,titleFormat:null,fullDateThreshold:null,fullDateFormat:null}).directive("amTimeAgo",["$window","moment","amMoment","amTimeAgoConfig","angularMomentConfig",function(b,c,d,e,f){return function(g,h,i){function j(){var a;if(p)a=p;else if(e.serverTime){var b=(new Date).getTime(),d=b-w+e.serverTime;a=c(d)}else a=c();return a}function k(){q&&(b.clearTimeout(q),q=null)}function l(a){var c=j().diff(a,"day"),d=u&&c>=u;if(d?h.text(a.format(v)):h.text(a.from(j(),s)),t&&!h.attr("title")&&h.attr("title",a.local().format(t)),!d){var e=Math.abs(j().diff(a,"minute")),f=3600;1>e?f=1:60>e?f=30:180>e&&(f=300),q=b.setTimeout(function(){l(a)},1e3*f)}}function m(a){z&&h.attr("datetime",a)}function n(){if(k(),o){var a=d.preprocessDate(o,x,r);l(a),m(a.toISOString())}}var o,p,q=null,r=f.format,s=e.withoutSuffix,t=e.titleFormat,u=e.fullDateThreshold,v=e.fullDateFormat,w=(new Date).getTime(),x=f.preprocess,y=i.amTimeAgo,z="TIME"===h[0].nodeName.toUpperCase();g.$watch(y,function(a){return"undefined"==typeof a||null===a||""===a?(k(),void(o&&(h.text(""),m(""),o=null))):(o=a,void n())}),a.isDefined(i.amFrom)&&g.$watch(i.amFrom,function(a){p="undefined"==typeof a||null===a||""===a?null:c(a),n()}),a.isDefined(i.amWithoutSuffix)&&g.$watch(i.amWithoutSuffix,function(a){"boolean"==typeof a?(s=a,n()):s=e.withoutSuffix}),i.$observe("amFormat",function(a){"undefined"!=typeof a&&(r=a,n())}),i.$observe("amPreprocess",function(a){x=a,n()}),i.$observe("amFullDateThreshold",function(a){u=a,n()}),i.$observe("amFullDateFormat",function(a){v=a,n()}),g.$on("$destroy",function(){k()}),g.$on("amMoment:localeChanged",function(){n()})}}]).service("amMoment",["moment","$rootScope","$log","angularMomentConfig",function(b,c,d,e){this.preprocessors={utc:b.utc,unix:b.unix},this.changeLocale=function(d,e){var f=b.locale(d,e);return a.isDefined(d)&&c.$broadcast("amMoment:localeChanged"),f},this.changeTimezone=function(a){e.timezone=a,c.$broadcast("amMoment:timezoneChanged")},this.preprocessDate=function(c,f,g){return a.isUndefined(f)&&(f=e.preprocess),this.preprocessors[f]?this.preprocessors[f](c,g):(f&&d.warn("angular-moment: Ignoring unsupported value for preprocess: "+f),!isNaN(parseFloat(c))&&isFinite(c)?b(parseInt(c,10)):b(c,g))},this.applyTimezone=function(a,b){return(b=b||e.timezone)?(b.match(/^Z|[+-]\d\d:?\d\d$/i)?a=a.utcOffset(b):a.tz?a=a.tz(b):d.warn("angular-moment: named timezone specified but moment.tz() is undefined. Did you forget to include moment-timezone.js?"),a):a}}]).filter("amCalendar",["moment","amMoment","angularMomentConfig",function(a,b,c){function d(c,d,e){if("undefined"==typeof c||null===c)return"";c=b.preprocessDate(c,d);var f=a(c);return f.isValid()?b.applyTimezone(f,e).calendar():""}return d.$stateful=c.statefulFilters,d}]).filter("amDifference",["moment","amMoment","angularMomentConfig",function(a,b,c){function d(c,d,e,f,g,h){if("undefined"==typeof c||null===c)return"";c=b.preprocessDate(c,g);var i=a(c);if(!i.isValid())return"";var j;if("undefined"==typeof d||null===d)j=a();else if(d=b.preprocessDate(d,h),j=a(d),!j.isValid())return"";return b.applyTimezone(i).diff(b.applyTimezone(j),e,f)}return d.$stateful=c.statefulFilters,d}]).filter("amDateFormat",["moment","amMoment","angularMomentConfig",function(a,b,c){function d(d,e,f,g,h){var i=h||c.format;if("undefined"==typeof d||null===d)return"";d=b.preprocessDate(d,f,i);var j=a(d);return j.isValid()?b.applyTimezone(j,g).format(e):""}return d.$stateful=c.statefulFilters,d}]).filter("amDurationFormat",["moment","angularMomentConfig",function(a,b){function c(b,c,d){return"undefined"==typeof b||null===b?"":a.duration(b,c).humanize(d)}return c.$stateful=b.statefulFilters,c}]).filter("amTimeAgo",["moment","amMoment","angularMomentConfig",function(a,b,c){function d(c,d,e,f){var g,h;return"undefined"==typeof c||null===c?"":(c=b.preprocessDate(c,d),g=a(c),g.isValid()?(h=a(f),"undefined"!=typeof f&&h.isValid()?b.applyTimezone(g).from(h,e):b.applyTimezone(g).fromNow(e)):"")}return d.$stateful=c.statefulFilters,d}]).filter("amSubtract",["moment","angularMomentConfig",function(a,b){function c(b,c,d){return"undefined"==typeof b||null===b?"":a(b).subtract(parseInt(c,10),d)}return c.$stateful=b.statefulFilters,c}]).filter("amAdd",["moment","angularMomentConfig",function(a,b){function c(b,c,d){return"undefined"==typeof b||null===b?"":a(b).add(parseInt(c,10),d)}return c.$stateful=b.statefulFilters,c}])}"function"==typeof define&&define.amd?define(["angular","moment"],a):"undefined"!=typeof module&&module&&module.exports?(a(angular,require("moment")),module.exports="angularMoment"):a(angular,("undefined"!=typeof global?global:window).moment)}(),function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.io=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){b.exports=a("./lib/")},{"./lib/":2}],2:[function(a,b,c){b.exports=a("./socket"),b.exports.parser=a("engine.io-parser")},{"./socket":3,"engine.io-parser":19}],3:[function(a,b,c){(function(c){function d(a,b){if(!(this instanceof d))return new d(a,b);b=b||{},a&&"object"==typeof a&&(b=a,a=null),a?(a=k(a),b.hostname=a.host,b.secure="https"==a.protocol||"wss"==a.protocol,b.port=a.port,a.query&&(b.query=a.query)):b.host&&(b.hostname=k(b.host).host),this.secure=null!=b.secure?b.secure:c.location&&"https:"==location.protocol,b.hostname&&!b.port&&(b.port=this.secure?"443":"80"),this.agent=b.agent||!1,this.hostname=b.hostname||(c.location?location.hostname:"localhost"),this.port=b.port||(c.location&&location.port?location.port:this.secure?443:80),this.query=b.query||{},"string"==typeof this.query&&(this.query=m.decode(this.query)),this.upgrade=!1!==b.upgrade,this.path=(b.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!b.forceJSONP,this.jsonp=!1!==b.jsonp,this.forceBase64=!!b.forceBase64,this.enablesXDR=!!b.enablesXDR,this.timestampParam=b.timestampParam||"t",this.timestampRequests=b.timestampRequests,this.transports=b.transports||["polling","websocket"],this.readyState="",this.writeBuffer=[],this.policyPort=b.policyPort||843,this.rememberUpgrade=b.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=b.onlyBinaryUpgrades,this.perMessageDeflate=!1!==b.perMessageDeflate?b.perMessageDeflate||{}:!1,!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=b.pfx||null,this.key=b.key||null,this.passphrase=b.passphrase||null,this.cert=b.cert||null,this.ca=b.ca||null,this.ciphers=b.ciphers||null,this.rejectUnauthorized=void 0===b.rejectUnauthorized?null:b.rejectUnauthorized;var e="object"==typeof c&&c;e.global===e&&b.extraHeaders&&Object.keys(b.extraHeaders).length>0&&(this.extraHeaders=b.extraHeaders),this.open()}function e(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}var f=a("./transports"),g=a("component-emitter"),h=a("debug")("engine.io-client:socket"),i=a("indexof"),j=a("engine.io-parser"),k=a("parseuri"),l=a("parsejson"),m=a("parseqs");b.exports=d,d.priorWebsocketSuccess=!1,g(d.prototype),d.protocol=j.protocol,d.Socket=d,d.Transport=a("./transport"),d.transports=a("./transports"),d.parser=a("engine.io-parser"),d.prototype.createTransport=function(a){h('creating transport "%s"',a);var b=e(this.query);b.EIO=j.protocol,b.transport=a,this.id&&(b.sid=this.id);var c=new f[a]({agent:this.agent,hostname:this.hostname,port:this.port,secure:this.secure,path:this.path,query:b,forceJSONP:this.forceJSONP,jsonp:this.jsonp,forceBase64:this.forceBase64,enablesXDR:this.enablesXDR,timestampRequests:this.timestampRequests,timestampParam:this.timestampParam,policyPort:this.policyPort,socket:this,pfx:this.pfx,key:this.key,passphrase:this.passphrase,cert:this.cert,ca:this.ca,ciphers:this.ciphers,rejectUnauthorized:this.rejectUnauthorized,perMessageDeflate:this.perMessageDeflate,extraHeaders:this.extraHeaders});return c},d.prototype.open=function(){var a;if(this.rememberUpgrade&&d.priorWebsocketSuccess&&-1!=this.transports.indexOf("websocket"))a="websocket";else{if(0===this.transports.length){var b=this;return void setTimeout(function(){b.emit("error","No transports available")},0)}a=this.transports[0]}this.readyState="opening";try{a=this.createTransport(a)}catch(c){return this.transports.shift(),void this.open()}a.open(),this.setTransport(a)},d.prototype.setTransport=function(a){h("setting transport %s",a.name);var b=this;this.transport&&(h("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=a,a.on("drain",function(){b.onDrain()}).on("packet",function(a){b.onPacket(a)}).on("error",function(a){b.onError(a)}).on("close",function(){b.onClose("transport close")})},d.prototype.probe=function(a){function b(){if(m.onlyBinaryUpgrades){var b=!this.supportsBinary&&m.transport.supportsBinary;l=l||b}l||(h('probe transport "%s" opened',a),k.send([{type:"ping",data:"probe"}]),k.once("packet",function(b){if(!l)if("pong"==b.type&&"probe"==b.data){if(h('probe transport "%s" pong',a),m.upgrading=!0,m.emit("upgrading",k),!k)return;d.priorWebsocketSuccess="websocket"==k.name,h('pausing current transport "%s"',m.transport.name),m.transport.pause(function(){l||"closed"!=m.readyState&&(h("changing transport and sending upgrade packet"),j(),m.setTransport(k),k.send([{type:"upgrade"}]),m.emit("upgrade",k),k=null,m.upgrading=!1,m.flush())})}else{h('probe transport "%s" failed',a);var c=new Error("probe error");c.transport=k.name,m.emit("upgradeError",c)}}))}function c(){l||(l=!0,j(),k.close(),k=null)}function e(b){var d=new Error("probe error: "+b);d.transport=k.name,c(),h('probe transport "%s" failed because of error: %s',a,b),m.emit("upgradeError",d)}function f(){e("transport closed")}function g(){e("socket closed")}function i(a){k&&a.name!=k.name&&(h('"%s" works - aborting "%s"',a.name,k.name),c())}function j(){k.removeListener("open",b),k.removeListener("error",e),k.removeListener("close",f),m.removeListener("close",g),m.removeListener("upgrading",i)}h('probing transport "%s"',a);var k=this.createTransport(a,{probe:1}),l=!1,m=this;d.priorWebsocketSuccess=!1,k.once("open",b),k.once("error",e),k.once("close",f),this.once("close",g),this.once("upgrading",i),k.open()},d.prototype.onOpen=function(){if(h("socket open"),this.readyState="open",d.priorWebsocketSuccess="websocket"==this.transport.name,this.emit("open"),this.flush(),"open"==this.readyState&&this.upgrade&&this.transport.pause){h("starting upgrade probes");for(var a=0,b=this.upgrades.length;b>a;a++)this.probe(this.upgrades[a])}},d.prototype.onPacket=function(a){if("opening"==this.readyState||"open"==this.readyState)switch(h('socket receive: type "%s", data "%s"',a.type,a.data),this.emit("packet",a),this.emit("heartbeat"),a.type){case"open":this.onHandshake(l(a.data));break;case"pong":this.setPing(),this.emit("pong");break;case"error":var b=new Error("server error");b.code=a.data,this.onError(b);break;case"message":this.emit("data",a.data),this.emit("message",a.data)}else h('packet received with socket readyState "%s"',this.readyState)},d.prototype.onHandshake=function(a){this.emit("handshake",a),this.id=a.sid,this.transport.query.sid=a.sid,this.upgrades=this.filterUpgrades(a.upgrades),this.pingInterval=a.pingInterval,this.pingTimeout=a.pingTimeout,this.onOpen(),"closed"!=this.readyState&&(this.setPing(),this.removeListener("heartbeat",this.onHeartbeat),this.on("heartbeat",this.onHeartbeat))},d.prototype.onHeartbeat=function(a){clearTimeout(this.pingTimeoutTimer);var b=this;b.pingTimeoutTimer=setTimeout(function(){"closed"!=b.readyState&&b.onClose("ping timeout")},a||b.pingInterval+b.pingTimeout)},d.prototype.setPing=function(){var a=this;clearTimeout(a.pingIntervalTimer),a.pingIntervalTimer=setTimeout(function(){h("writing ping packet - expecting pong within %sms",a.pingTimeout),a.ping(),a.onHeartbeat(a.pingTimeout)},a.pingInterval)},d.prototype.ping=function(){var a=this;this.sendPacket("ping",function(){a.emit("ping")})},d.prototype.onDrain=function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emit("drain"):this.flush()},d.prototype.flush=function(){"closed"!=this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(h("flushing %d packets in socket",this.writeBuffer.length),this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emit("flush"))},d.prototype.write=d.prototype.send=function(a,b,c){return this.sendPacket("message",a,b,c),this},d.prototype.sendPacket=function(a,b,c,d){if("function"==typeof b&&(d=b,b=void 0),"function"==typeof c&&(d=c,c=null),"closing"!=this.readyState&&"closed"!=this.readyState){c=c||{},c.compress=!1!==c.compress;var e={type:a,data:b,options:c};this.emit("packetCreate",e),this.writeBuffer.push(e),d&&this.once("flush",d),this.flush()}},d.prototype.close=function(){function a(){d.onClose("forced close"),h("socket closing - telling transport to close"),d.transport.close()}function b(){d.removeListener("upgrade",b),d.removeListener("upgradeError",b),a()}function c(){d.once("upgrade",b),d.once("upgradeError",b)}if("opening"==this.readyState||"open"==this.readyState){this.readyState="closing";var d=this;this.writeBuffer.length?this.once("drain",function(){this.upgrading?c():a()}):this.upgrading?c():a()}return this},d.prototype.onError=function(a){h("socket error %j",a),d.priorWebsocketSuccess=!1,this.emit("error",a),this.onClose("transport error",a)},d.prototype.onClose=function(a,b){if("opening"==this.readyState||"open"==this.readyState||"closing"==this.readyState){h('socket close with reason: "%s"',a);var c=this;clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),this.readyState="closed",this.id=null,this.emit("close",a,b),c.writeBuffer=[],c.prevBufferLen=0}},d.prototype.filterUpgrades=function(a){for(var b=[],c=0,d=a.length;d>c;c++)~i(this.transports,a[c])&&b.push(a[c]);return b}}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{"./transport":4,"./transports":5,"component-emitter":15,debug:17,"engine.io-parser":19,indexof:23,parsejson:26,parseqs:27,parseuri:28}],4:[function(a,b,c){function d(a){this.path=a.path,this.hostname=a.hostname,this.port=a.port,this.secure=a.secure,this.query=a.query,this.timestampParam=a.timestampParam,this.timestampRequests=a.timestampRequests,this.readyState="",this.agent=a.agent||!1,this.socket=a.socket,this.enablesXDR=a.enablesXDR,this.pfx=a.pfx,this.key=a.key,this.passphrase=a.passphrase,this.cert=a.cert,this.ca=a.ca,this.ciphers=a.ciphers,this.rejectUnauthorized=a.rejectUnauthorized,this.extraHeaders=a.extraHeaders}var e=a("engine.io-parser"),f=a("component-emitter");b.exports=d,f(d.prototype),d.prototype.onError=function(a,b){var c=new Error(a);return c.type="TransportError",c.description=b,this.emit("error",c),this},d.prototype.open=function(){return("closed"==this.readyState||""==this.readyState)&&(this.readyState="opening",this.doOpen()),this},d.prototype.close=function(){return("opening"==this.readyState||"open"==this.readyState)&&(this.doClose(),this.onClose()),this},d.prototype.send=function(a){if("open"!=this.readyState)throw new Error("Transport not open");this.write(a)},d.prototype.onOpen=function(){this.readyState="open",this.writable=!0,this.emit("open")},d.prototype.onData=function(a){var b=e.decodePacket(a,this.socket.binaryType);this.onPacket(b)},d.prototype.onPacket=function(a){this.emit("packet",a)},d.prototype.onClose=function(){this.readyState="closed",this.emit("close")}},{"component-emitter":15,"engine.io-parser":19}],5:[function(a,b,c){(function(b){function d(a){var c,d=!1,h=!1,i=!1!==a.jsonp;if(b.location){var j="https:"==location.protocol,k=location.port;k||(k=j?443:80),d=a.hostname!=location.hostname||k!=a.port,h=a.secure!=j}if(a.xdomain=d,a.xscheme=h,c=new e(a),"open"in c&&!a.forceJSONP)return new f(a);if(!i)throw new Error("JSONP disabled");return new g(a)}var e=a("xmlhttprequest-ssl"),f=a("./polling-xhr"),g=a("./polling-jsonp"),h=a("./websocket");c.polling=d,c.websocket=h}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{"./polling-jsonp":6,"./polling-xhr":7,"./websocket":9,"xmlhttprequest-ssl":10}],6:[function(a,b,c){(function(c){function d(){}function e(a){f.call(this,a),this.query=this.query||{},h||(c.___eio||(c.___eio=[]),h=c.___eio),this.index=h.length;var b=this;h.push(function(a){b.onData(a)}),this.query.j=this.index,c.document&&c.addEventListener&&c.addEventListener("beforeunload",function(){b.script&&(b.script.onerror=d)},!1)}var f=a("./polling"),g=a("component-inherit");b.exports=e;var h,i=/\n/g,j=/\\n/g;g(e,f),e.prototype.supportsBinary=!1,e.prototype.doClose=function(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),f.prototype.doClose.call(this)},e.prototype.doPoll=function(){var a=this,b=document.createElement("script");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),b.async=!0,b.src=this.uri(),b.onerror=function(b){a.onError("jsonp poll error",b)};var c=document.getElementsByTagName("script")[0];c?c.parentNode.insertBefore(b,c):(document.head||document.body).appendChild(b),this.script=b;var d="undefined"!=typeof navigator&&/gecko/i.test(navigator.userAgent);d&&setTimeout(function(){var a=document.createElement("iframe");document.body.appendChild(a),document.body.removeChild(a)},100)},e.prototype.doWrite=function(a,b){function c(){d(),b()}function d(){if(e.iframe)try{e.form.removeChild(e.iframe)}catch(a){e.onError("jsonp polling iframe removal error",a)}try{var b='<iframe src="javascript:0" name="'+e.iframeId+'">';f=document.createElement(b)}catch(a){f=document.createElement("iframe"),f.name=e.iframeId,f.src="javascript:0"}f.id=e.iframeId,e.form.appendChild(f),e.iframe=f}var e=this;if(!this.form){var f,g=document.createElement("form"),h=document.createElement("textarea"),k=this.iframeId="eio_iframe_"+this.index;g.className="socketio",g.style.position="absolute",g.style.top="-1000px",g.style.left="-1000px",g.target=k,g.method="POST",g.setAttribute("accept-charset","utf-8"),h.name="d",g.appendChild(h),document.body.appendChild(g),this.form=g,this.area=h}this.form.action=this.uri(),d(),a=a.replace(j,"\\\n"),this.area.value=a.replace(i,"\\n");try{this.form.submit()}catch(l){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){"complete"==e.iframe.readyState&&c()}:this.iframe.onload=c}}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{"./polling":8,"component-inherit":16}],7:[function(a,b,c){(function(c){function d(){}function e(a){if(i.call(this,a),c.location){var b="https:"==location.protocol,d=location.port;d||(d=b?443:80),this.xd=a.hostname!=c.location.hostname||d!=a.port,this.xs=a.secure!=b}else this.extraHeaders=a.extraHeaders}function f(a){this.method=a.method||"GET",this.uri=a.uri,this.xd=!!a.xd,this.xs=!!a.xs,this.async=!1!==a.async,this.data=void 0!=a.data?a.data:null,this.agent=a.agent,this.isBinary=a.isBinary,this.supportsBinary=a.supportsBinary,this.enablesXDR=a.enablesXDR,this.pfx=a.pfx,this.key=a.key,this.passphrase=a.passphrase,this.cert=a.cert,this.ca=a.ca,this.ciphers=a.ciphers,this.rejectUnauthorized=a.rejectUnauthorized,this.extraHeaders=a.extraHeaders,this.create()}function g(){for(var a in f.requests)f.requests.hasOwnProperty(a)&&f.requests[a].abort()}var h=a("xmlhttprequest-ssl"),i=a("./polling"),j=a("component-emitter"),k=a("component-inherit"),l=a("debug")("engine.io-client:polling-xhr");b.exports=e,b.exports.Request=f,k(e,i),e.prototype.supportsBinary=!0,e.prototype.request=function(a){return a=a||{},a.uri=this.uri(),a.xd=this.xd,a.xs=this.xs,a.agent=this.agent||!1,a.supportsBinary=this.supportsBinary,a.enablesXDR=this.enablesXDR,a.pfx=this.pfx,a.key=this.key,a.passphrase=this.passphrase,a.cert=this.cert,a.ca=this.ca,a.ciphers=this.ciphers,a.rejectUnauthorized=this.rejectUnauthorized,a.extraHeaders=this.extraHeaders,new f(a)},e.prototype.doWrite=function(a,b){var c="string"!=typeof a&&void 0!==a,d=this.request({method:"POST",data:a,isBinary:c}),e=this;d.on("success",b),d.on("error",function(a){e.onError("xhr post error",a)}),this.sendXhr=d},e.prototype.doPoll=function(){l("xhr poll");var a=this.request(),b=this;a.on("data",function(a){b.onData(a)}),a.on("error",function(a){b.onError("xhr poll error",a)}),this.pollXhr=a},j(f.prototype),f.prototype.create=function(){var a={agent:this.agent,xdomain:this.xd,xscheme:this.xs,enablesXDR:this.enablesXDR};a.pfx=this.pfx,a.key=this.key,a.passphrase=this.passphrase,a.cert=this.cert,a.ca=this.ca,a.ciphers=this.ciphers,a.rejectUnauthorized=this.rejectUnauthorized;var b=this.xhr=new h(a),d=this;try{l("xhr open %s: %s",this.method,this.uri),b.open(this.method,this.uri,this.async);try{if(this.extraHeaders){b.setDisableHeaderCheck(!0);for(var e in this.extraHeaders)this.extraHeaders.hasOwnProperty(e)&&b.setRequestHeader(e,this.extraHeaders[e])}}catch(g){}if(this.supportsBinary&&(b.responseType="arraybuffer"),"POST"==this.method)try{this.isBinary?b.setRequestHeader("Content-type","application/octet-stream"):b.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(g){}"withCredentials"in b&&(b.withCredentials=!0),this.hasXDR()?(b.onload=function(){d.onLoad()},b.onerror=function(){d.onError(b.responseText)}):b.onreadystatechange=function(){4==b.readyState&&(200==b.status||1223==b.status?d.onLoad():setTimeout(function(){d.onError(b.status)},0))},l("xhr data %s",this.data),b.send(this.data)}catch(g){return void setTimeout(function(){d.onError(g)},0)}c.document&&(this.index=f.requestsCount++,f.requests[this.index]=this)},f.prototype.onSuccess=function(){this.emit("success"),this.cleanup()},f.prototype.onData=function(a){this.emit("data",a),this.onSuccess()},f.prototype.onError=function(a){this.emit("error",a),this.cleanup(!0)},f.prototype.cleanup=function(a){if("undefined"!=typeof this.xhr&&null!==this.xhr){if(this.hasXDR()?this.xhr.onload=this.xhr.onerror=d:this.xhr.onreadystatechange=d,a)try{this.xhr.abort()}catch(b){}c.document&&delete f.requests[this.index],this.xhr=null}},f.prototype.onLoad=function(){var a;try{var b;try{b=this.xhr.getResponseHeader("Content-Type").split(";")[0]}catch(c){}if("application/octet-stream"===b)a=this.xhr.response;else if(this.supportsBinary)try{a=String.fromCharCode.apply(null,new Uint8Array(this.xhr.response))}catch(c){for(var d=new Uint8Array(this.xhr.response),e=[],f=0,g=d.length;g>f;f++)e.push(d[f]);a=String.fromCharCode.apply(null,e)}else a=this.xhr.responseText}catch(c){this.onError(c)}null!=a&&this.onData(a)},f.prototype.hasXDR=function(){return"undefined"!=typeof c.XDomainRequest&&!this.xs&&this.enablesXDR},f.prototype.abort=function(){this.cleanup()},c.document&&(f.requestsCount=0,f.requests={},c.attachEvent?c.attachEvent("onunload",g):c.addEventListener&&c.addEventListener("beforeunload",g,!1))}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{"./polling":8,"component-emitter":15,"component-inherit":16,debug:17,"xmlhttprequest-ssl":10}],8:[function(a,b,c){function d(a){var b=a&&a.forceBase64;(!k||b)&&(this.supportsBinary=!1),e.call(this,a)}var e=a("../transport"),f=a("parseqs"),g=a("engine.io-parser"),h=a("component-inherit"),i=a("yeast"),j=a("debug")("engine.io-client:polling");b.exports=d;var k=function(){var b=a("xmlhttprequest-ssl"),c=new b({xdomain:!1});return null!=c.responseType}();h(d,e),d.prototype.name="polling",d.prototype.doOpen=function(){this.poll()},d.prototype.pause=function(a){function b(){j("paused"),c.readyState="paused",a()}var c=this;if(this.readyState="pausing",this.polling||!this.writable){var d=0;this.polling&&(j("we are currently polling - waiting to pause"),d++,this.once("pollComplete",function(){j("pre-pause polling complete"),--d||b()})),this.writable||(j("we are currently writing - waiting to pause"),d++,this.once("drain",function(){j("pre-pause writing complete"),--d||b()}))}else b()},d.prototype.poll=function(){j("polling"),this.polling=!0,this.doPoll(),this.emit("poll")},d.prototype.onData=function(a){var b=this;j("polling got data %s",a);var c=function(a,c,d){return"opening"==b.readyState&&b.onOpen(),"close"==a.type?(b.onClose(),!1):void b.onPacket(a)};g.decodePayload(a,this.socket.binaryType,c),"closed"!=this.readyState&&(this.polling=!1,this.emit("pollComplete"),"open"==this.readyState?this.poll():j('ignoring poll - transport state "%s"',this.readyState))},d.prototype.doClose=function(){function a(){j("writing close packet"),b.write([{type:"close"}])}var b=this;"open"==this.readyState?(j("transport open - closing"),a()):(j("transport not open - deferring close"),this.once("open",a))},d.prototype.write=function(a){var b=this;this.writable=!1;var c=function(){b.writable=!0,b.emit("drain")},b=this;g.encodePayload(a,this.supportsBinary,function(a){b.doWrite(a,c)})},d.prototype.uri=function(){var a=this.query||{},b=this.secure?"https":"http",c="";!1!==this.timestampRequests&&(a[this.timestampParam]=i()),this.supportsBinary||a.sid||(a.b64=1),a=f.encode(a),this.port&&("https"==b&&443!=this.port||"http"==b&&80!=this.port)&&(c=":"+this.port),a.length&&(a="?"+a);var d=-1!==this.hostname.indexOf(":");return b+"://"+(d?"["+this.hostname+"]":this.hostname)+c+this.path+a}},{"../transport":4,"component-inherit":16,debug:17,"engine.io-parser":19,parseqs:27,"xmlhttprequest-ssl":10,yeast:30}],9:[function(a,b,c){(function(c){function d(a){var b=a&&a.forceBase64;b&&(this.supportsBinary=!1),this.perMessageDeflate=a.perMessageDeflate,e.call(this,a)}var e=a("../transport"),f=a("engine.io-parser"),g=a("parseqs"),h=a("component-inherit"),i=a("yeast"),j=a("debug")("engine.io-client:websocket"),k=c.WebSocket||c.MozWebSocket,l=k;if(!l&&"undefined"==typeof window)try{l=a("ws")}catch(m){}b.exports=d,h(d,e),d.prototype.name="websocket",d.prototype.supportsBinary=!0,d.prototype.doOpen=function(){if(this.check()){var a=this.uri(),b=void 0,c={agent:this.agent,perMessageDeflate:this.perMessageDeflate};c.pfx=this.pfx,c.key=this.key,c.passphrase=this.passphrase,c.cert=this.cert,c.ca=this.ca,c.ciphers=this.ciphers,c.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(c.headers=this.extraHeaders),this.ws=k?new l(a):new l(a,b,c),void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType="buffer"):this.ws.binaryType="arraybuffer",this.addEventListeners()}},d.prototype.addEventListeners=function(){var a=this;this.ws.onopen=function(){a.onOpen()},this.ws.onclose=function(){a.onClose()},this.ws.onmessage=function(b){a.onData(b.data)},this.ws.onerror=function(b){a.onError("websocket error",b)}},"undefined"!=typeof navigator&&/iPad|iPhone|iPod/i.test(navigator.userAgent)&&(d.prototype.onData=function(a){var b=this;setTimeout(function(){e.prototype.onData.call(b,a)},0)}),d.prototype.write=function(a){function b(){d.emit("flush"),setTimeout(function(){d.writable=!0,d.emit("drain")},0)}var d=this;this.writable=!1;for(var e=a.length,g=0,h=e;h>g;g++)!function(a){f.encodePacket(a,d.supportsBinary,function(f){if(!k){var g={};if(a.options&&(g.compress=a.options.compress),d.perMessageDeflate){var h="string"==typeof f?c.Buffer.byteLength(f):f.length;h<d.perMessageDeflate.threshold&&(g.compress=!1)}}try{k?d.ws.send(f):d.ws.send(f,g)}catch(i){j("websocket closed before onclose event")}--e||b()})}(a[g])},d.prototype.onClose=function(){e.prototype.onClose.call(this)},d.prototype.doClose=function(){"undefined"!=typeof this.ws&&this.ws.close()},d.prototype.uri=function(){var a=this.query||{},b=this.secure?"wss":"ws",c="";this.port&&("wss"==b&&443!=this.port||"ws"==b&&80!=this.port)&&(c=":"+this.port),this.timestampRequests&&(a[this.timestampParam]=i()),this.supportsBinary||(a.b64=1),a=g.encode(a),a.length&&(a="?"+a);var d=-1!==this.hostname.indexOf(":");return b+"://"+(d?"["+this.hostname+"]":this.hostname)+c+this.path+a},d.prototype.check=function(){return!(!l||"__initialize"in l&&this.name===d.prototype.name)}}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{});
-},{"../transport":4,"component-inherit":16,debug:17,"engine.io-parser":19,parseqs:27,ws:void 0,yeast:30}],10:[function(a,b,c){var d=a("has-cors");b.exports=function(a){var b=a.xdomain,c=a.xscheme,e=a.enablesXDR;try{if("undefined"!=typeof XMLHttpRequest&&(!b||d))return new XMLHttpRequest}catch(f){}try{if("undefined"!=typeof XDomainRequest&&!c&&e)return new XDomainRequest}catch(f){}if(!b)try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(f){}}},{"has-cors":22}],11:[function(a,b,c){function d(a,b,c){function d(a,e){if(d.count<=0)throw new Error("after called too many times");--d.count,a?(f=!0,b(a),b=c):0!==d.count||f||b(null,e)}var f=!1;return c=c||e,d.count=a,0===a?b():d}function e(){}b.exports=d},{}],12:[function(a,b,c){b.exports=function(a,b,c){var d=a.byteLength;if(b=b||0,c=c||d,a.slice)return a.slice(b,c);if(0>b&&(b+=d),0>c&&(c+=d),c>d&&(c=d),b>=d||b>=c||0===d)return new ArrayBuffer(0);for(var e=new Uint8Array(a),f=new Uint8Array(c-b),g=b,h=0;c>g;g++,h++)f[h]=e[g];return f.buffer}},{}],13:[function(a,b,c){!function(a){"use strict";c.encode=function(b){var c,d=new Uint8Array(b),e=d.length,f="";for(c=0;e>c;c+=3)f+=a[d[c]>>2],f+=a[(3&d[c])<<4|d[c+1]>>4],f+=a[(15&d[c+1])<<2|d[c+2]>>6],f+=a[63&d[c+2]];return e%3===2?f=f.substring(0,f.length-1)+"=":e%3===1&&(f=f.substring(0,f.length-2)+"=="),f},c.decode=function(b){var c,d,e,f,g,h=.75*b.length,i=b.length,j=0;"="===b[b.length-1]&&(h--,"="===b[b.length-2]&&h--);var k=new ArrayBuffer(h),l=new Uint8Array(k);for(c=0;i>c;c+=4)d=a.indexOf(b[c]),e=a.indexOf(b[c+1]),f=a.indexOf(b[c+2]),g=a.indexOf(b[c+3]),l[j++]=d<<2|e>>4,l[j++]=(15&e)<<4|f>>2,l[j++]=(3&f)<<6|63&g;return k}}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")},{}],14:[function(a,b,c){(function(a){function c(a){for(var b=0;b<a.length;b++){var c=a[b];if(c.buffer instanceof ArrayBuffer){var d=c.buffer;if(c.byteLength!==d.byteLength){var e=new Uint8Array(c.byteLength);e.set(new Uint8Array(d,c.byteOffset,c.byteLength)),d=e.buffer}a[b]=d}}}function d(a,b){b=b||{};var d=new f;c(a);for(var e=0;e<a.length;e++)d.append(a[e]);return b.type?d.getBlob(b.type):d.getBlob()}function e(a,b){return c(a),new Blob(a,b||{})}var f=a.BlobBuilder||a.WebKitBlobBuilder||a.MSBlobBuilder||a.MozBlobBuilder,g=function(){try{var a=new Blob(["hi"]);return 2===a.size}catch(b){return!1}}(),h=g&&function(){try{var a=new Blob([new Uint8Array([1,2])]);return 2===a.size}catch(b){return!1}}(),i=f&&f.prototype.append&&f.prototype.getBlob;b.exports=function(){return g?h?a.Blob:e:i?d:void 0}()}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{}],15:[function(a,b,c){function d(a){return a?e(a):void 0}function e(a){for(var b in d.prototype)a[b]=d.prototype[b];return a}b.exports=d,d.prototype.on=d.prototype.addEventListener=function(a,b){return this._callbacks=this._callbacks||{},(this._callbacks[a]=this._callbacks[a]||[]).push(b),this},d.prototype.once=function(a,b){function c(){d.off(a,c),b.apply(this,arguments)}var d=this;return this._callbacks=this._callbacks||{},c.fn=b,this.on(a,c),this},d.prototype.off=d.prototype.removeListener=d.prototype.removeAllListeners=d.prototype.removeEventListener=function(a,b){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var c=this._callbacks[a];if(!c)return this;if(1==arguments.length)return delete this._callbacks[a],this;for(var d,e=0;e<c.length;e++)if(d=c[e],d===b||d.fn===b){c.splice(e,1);break}return this},d.prototype.emit=function(a){this._callbacks=this._callbacks||{};var b=[].slice.call(arguments,1),c=this._callbacks[a];if(c){c=c.slice(0);for(var d=0,e=c.length;e>d;++d)c[d].apply(this,b)}return this},d.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks[a]||[]},d.prototype.hasListeners=function(a){return!!this.listeners(a).length}},{}],16:[function(a,b,c){b.exports=function(a,b){var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},{}],17:[function(a,b,c){function d(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}function e(){var a=arguments,b=this.useColors;if(a[0]=(b?"%c":"")+this.namespace+(b?" %c":" ")+a[0]+(b?"%c ":" ")+"+"+c.humanize(this.diff),!b)return a;var d="color: "+this.color;a=[a[0],d,"color: inherit"].concat(Array.prototype.slice.call(a,1));var e=0,f=0;return a[0].replace(/%[a-z%]/g,function(a){"%%"!==a&&(e++,"%c"===a&&(f=e))}),a.splice(f,0,d),a}function f(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function g(a){try{null==a?c.storage.removeItem("debug"):c.storage.debug=a}catch(b){}}function h(){var a;try{a=c.storage.debug}catch(b){}return a}function i(){try{return window.localStorage}catch(a){}}c=b.exports=a("./debug"),c.log=f,c.formatArgs=e,c.save=g,c.load=h,c.useColors=d,c.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:i(),c.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],c.formatters.j=function(a){return JSON.stringify(a)},c.enable(h())},{"./debug":18}],18:[function(a,b,c){function d(){return c.colors[k++%c.colors.length]}function e(a){function b(){}function e(){var a=e,b=+new Date,f=b-(j||b);a.diff=f,a.prev=j,a.curr=b,j=b,null==a.useColors&&(a.useColors=c.useColors()),null==a.color&&a.useColors&&(a.color=d());var g=Array.prototype.slice.call(arguments);g[0]=c.coerce(g[0]),"string"!=typeof g[0]&&(g=["%o"].concat(g));var h=0;g[0]=g[0].replace(/%([a-z%])/g,function(b,d){if("%%"===b)return b;h++;var e=c.formatters[d];if("function"==typeof e){var f=g[h];b=e.call(a,f),g.splice(h,1),h--}return b}),"function"==typeof c.formatArgs&&(g=c.formatArgs.apply(a,g));var i=e.log||c.log||console.log.bind(console);i.apply(a,g)}b.enabled=!1,e.enabled=!0;var f=c.enabled(a)?e:b;return f.namespace=a,f}function f(a){c.save(a);for(var b=(a||"").split(/[\s,]+/),d=b.length,e=0;d>e;e++)b[e]&&(a=b[e].replace(/\*/g,".*?"),"-"===a[0]?c.skips.push(new RegExp("^"+a.substr(1)+"$")):c.names.push(new RegExp("^"+a+"$")))}function g(){c.enable("")}function h(a){var b,d;for(b=0,d=c.skips.length;d>b;b++)if(c.skips[b].test(a))return!1;for(b=0,d=c.names.length;d>b;b++)if(c.names[b].test(a))return!0;return!1}function i(a){return a instanceof Error?a.stack||a.message:a}c=b.exports=e,c.coerce=i,c.disable=g,c.enable=f,c.enabled=h,c.humanize=a("ms"),c.names=[],c.skips=[],c.formatters={};var j,k=0},{ms:25}],19:[function(a,b,c){(function(b){function d(a,b){var d="b"+c.packets[a.type]+a.data.data;return b(d)}function e(a,b,d){if(!b)return c.encodeBase64Packet(a,d);var e=a.data,f=new Uint8Array(e),g=new Uint8Array(1+e.byteLength);g[0]=r[a.type];for(var h=0;h<f.length;h++)g[h+1]=f[h];return d(g.buffer)}function f(a,b,d){if(!b)return c.encodeBase64Packet(a,d);var e=new FileReader;return e.onload=function(){a.data=e.result,c.encodePacket(a,b,!0,d)},e.readAsArrayBuffer(a.data)}function g(a,b,d){if(!b)return c.encodeBase64Packet(a,d);if(q)return f(a,b,d);var e=new Uint8Array(1);e[0]=r[a.type];var g=new u([e.buffer,a.data]);return d(g)}function h(a,b,c){for(var d=new Array(a.length),e=m(a.length,c),f=function(a,c,e){b(c,function(b,c){d[a]=c,e(b,d)})},g=0;g<a.length;g++)f(g,a[g],e)}var i=a("./keys"),j=a("has-binary"),k=a("arraybuffer.slice"),l=a("base64-arraybuffer"),m=a("after"),n=a("utf8"),o=navigator.userAgent.match(/Android/i),p=/PhantomJS/i.test(navigator.userAgent),q=o||p;c.protocol=3;var r=c.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6},s=i(r),t={type:"error",data:"parser error"},u=a("blob");c.encodePacket=function(a,c,f,h){"function"==typeof c&&(h=c,c=!1),"function"==typeof f&&(h=f,f=null);var i=void 0===a.data?void 0:a.data.buffer||a.data;if(b.ArrayBuffer&&i instanceof ArrayBuffer)return e(a,c,h);if(u&&i instanceof b.Blob)return g(a,c,h);if(i&&i.base64)return d(a,h);var j=r[a.type];return void 0!==a.data&&(j+=f?n.encode(String(a.data)):String(a.data)),h(""+j)},c.encodeBase64Packet=function(a,d){var e="b"+c.packets[a.type];if(u&&a.data instanceof b.Blob){var f=new FileReader;return f.onload=function(){var a=f.result.split(",")[1];d(e+a)},f.readAsDataURL(a.data)}var g;try{g=String.fromCharCode.apply(null,new Uint8Array(a.data))}catch(h){for(var i=new Uint8Array(a.data),j=new Array(i.length),k=0;k<i.length;k++)j[k]=i[k];g=String.fromCharCode.apply(null,j)}return e+=b.btoa(g),d(e)},c.decodePacket=function(a,b,d){if("string"==typeof a||void 0===a){if("b"==a.charAt(0))return c.decodeBase64Packet(a.substr(1),b);if(d)try{a=n.decode(a)}catch(e){return t}var f=a.charAt(0);return Number(f)==f&&s[f]?a.length>1?{type:s[f],data:a.substring(1)}:{type:s[f]}:t}var g=new Uint8Array(a),f=g[0],h=k(a,1);return u&&"blob"===b&&(h=new u([h])),{type:s[f],data:h}},c.decodeBase64Packet=function(a,c){var d=s[a.charAt(0)];if(!b.ArrayBuffer)return{type:d,data:{base64:!0,data:a.substr(1)}};var e=l.decode(a.substr(1));return"blob"===c&&u&&(e=new u([e])),{type:d,data:e}},c.encodePayload=function(a,b,d){function e(a){return a.length+":"+a}function f(a,d){c.encodePacket(a,g?b:!1,!0,function(a){d(null,e(a))})}"function"==typeof b&&(d=b,b=null);var g=j(a);return b&&g?u&&!q?c.encodePayloadAsBlob(a,d):c.encodePayloadAsArrayBuffer(a,d):a.length?void h(a,f,function(a,b){return d(b.join(""))}):d("0:")},c.decodePayload=function(a,b,d){if("string"!=typeof a)return c.decodePayloadAsBinary(a,b,d);"function"==typeof b&&(d=b,b=null);var e;if(""==a)return d(t,0,1);for(var f,g,h="",i=0,j=a.length;j>i;i++){var k=a.charAt(i);if(":"!=k)h+=k;else{if(""==h||h!=(f=Number(h)))return d(t,0,1);if(g=a.substr(i+1,f),h!=g.length)return d(t,0,1);if(g.length){if(e=c.decodePacket(g,b,!0),t.type==e.type&&t.data==e.data)return d(t,0,1);var l=d(e,i+f,j);if(!1===l)return}i+=f,h=""}}return""!=h?d(t,0,1):void 0},c.encodePayloadAsArrayBuffer=function(a,b){function d(a,b){c.encodePacket(a,!0,!0,function(a){return b(null,a)})}return a.length?void h(a,d,function(a,c){var d=c.reduce(function(a,b){var c;return c="string"==typeof b?b.length:b.byteLength,a+c.toString().length+c+2},0),e=new Uint8Array(d),f=0;return c.forEach(function(a){var b="string"==typeof a,c=a;if(b){for(var d=new Uint8Array(a.length),g=0;g<a.length;g++)d[g]=a.charCodeAt(g);c=d.buffer}b?e[f++]=0:e[f++]=1;for(var h=c.byteLength.toString(),g=0;g<h.length;g++)e[f++]=parseInt(h[g]);e[f++]=255;for(var d=new Uint8Array(c),g=0;g<d.length;g++)e[f++]=d[g]}),b(e.buffer)}):b(new ArrayBuffer(0))},c.encodePayloadAsBlob=function(a,b){function d(a,b){c.encodePacket(a,!0,!0,function(a){var c=new Uint8Array(1);if(c[0]=1,"string"==typeof a){for(var d=new Uint8Array(a.length),e=0;e<a.length;e++)d[e]=a.charCodeAt(e);a=d.buffer,c[0]=0}for(var f=a instanceof ArrayBuffer?a.byteLength:a.size,g=f.toString(),h=new Uint8Array(g.length+1),e=0;e<g.length;e++)h[e]=parseInt(g[e]);if(h[g.length]=255,u){var i=new u([c.buffer,h.buffer,a]);b(null,i)}})}h(a,d,function(a,c){return b(new u(c))})},c.decodePayloadAsBinary=function(a,b,d){"function"==typeof b&&(d=b,b=null);for(var e=a,f=[],g=!1;e.byteLength>0;){for(var h=new Uint8Array(e),i=0===h[0],j="",l=1;255!=h[l];l++){if(j.length>310){g=!0;break}j+=h[l]}if(g)return d(t,0,1);e=k(e,2+j.length),j=parseInt(j);var m=k(e,0,j);if(i)try{m=String.fromCharCode.apply(null,new Uint8Array(m))}catch(n){var o=new Uint8Array(m);m="";for(var l=0;l<o.length;l++)m+=String.fromCharCode(o[l])}f.push(m),e=k(e,j)}var p=f.length;f.forEach(function(a,e){d(c.decodePacket(a,b,!0),e,p)})}}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{"./keys":20,after:11,"arraybuffer.slice":12,"base64-arraybuffer":13,blob:14,"has-binary":21,utf8:29}],20:[function(a,b,c){b.exports=Object.keys||function(a){var b=[],c=Object.prototype.hasOwnProperty;for(var d in a)c.call(a,d)&&b.push(d);return b}},{}],21:[function(a,b,c){(function(c){function d(a){function b(a){if(!a)return!1;if(c.Buffer&&c.Buffer.isBuffer(a)||c.ArrayBuffer&&a instanceof ArrayBuffer||c.Blob&&a instanceof Blob||c.File&&a instanceof File)return!0;if(e(a)){for(var d=0;d<a.length;d++)if(b(a[d]))return!0}else if(a&&"object"==typeof a){a.toJSON&&(a=a.toJSON());for(var f in a)if(Object.prototype.hasOwnProperty.call(a,f)&&b(a[f]))return!0}return!1}return b(a)}var e=a("isarray");b.exports=d}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{isarray:24}],22:[function(a,b,c){try{b.exports="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(d){b.exports=!1}},{}],23:[function(a,b,c){var d=[].indexOf;b.exports=function(a,b){if(d)return a.indexOf(b);for(var c=0;c<a.length;++c)if(a[c]===b)return c;return-1}},{}],24:[function(a,b,c){b.exports=Array.isArray||function(a){return"[object Array]"==Object.prototype.toString.call(a)}},{}],25:[function(a,b,c){function d(a){if(a=""+a,!(a.length>1e4)){var b=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(a);if(b){var c=parseFloat(b[1]),d=(b[2]||"ms").toLowerCase();switch(d){case"years":case"year":case"yrs":case"yr":case"y":return c*l;case"days":case"day":case"d":return c*k;case"hours":case"hour":case"hrs":case"hr":case"h":return c*j;case"minutes":case"minute":case"mins":case"min":case"m":return c*i;case"seconds":case"second":case"secs":case"sec":case"s":return c*h;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c}}}}function e(a){return a>=k?Math.round(a/k)+"d":a>=j?Math.round(a/j)+"h":a>=i?Math.round(a/i)+"m":a>=h?Math.round(a/h)+"s":a+"ms"}function f(a){return g(a,k,"day")||g(a,j,"hour")||g(a,i,"minute")||g(a,h,"second")||a+" ms"}function g(a,b,c){return b>a?void 0:1.5*b>a?Math.floor(a/b)+" "+c:Math.ceil(a/b)+" "+c+"s"}var h=1e3,i=60*h,j=60*i,k=24*j,l=365.25*k;b.exports=function(a,b){return b=b||{},"string"==typeof a?d(a):b["long"]?f(a):e(a)}},{}],26:[function(a,b,c){(function(a){var c=/^[\],:{}\s]*$/,d=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,e=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,f=/(?:^|:|,)(?:\s*\[)+/g,g=/^\s+/,h=/\s+$/;b.exports=function(b){return"string"==typeof b&&b?(b=b.replace(g,"").replace(h,""),a.JSON&&JSON.parse?JSON.parse(b):c.test(b.replace(d,"@").replace(e,"]").replace(f,""))?new Function("return "+b)():void 0):null}}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{}],27:[function(a,b,c){c.encode=function(a){var b="";for(var c in a)a.hasOwnProperty(c)&&(b.length&&(b+="&"),b+=encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b},c.decode=function(a){for(var b={},c=a.split("&"),d=0,e=c.length;e>d;d++){var f=c[d].split("=");b[decodeURIComponent(f[0])]=decodeURIComponent(f[1])}return b}},{}],28:[function(a,b,c){var d=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,e=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];b.exports=function(a){var b=a,c=a.indexOf("["),f=a.indexOf("]");-1!=c&&-1!=f&&(a=a.substring(0,c)+a.substring(c,f).replace(/:/g,";")+a.substring(f,a.length));for(var g=d.exec(a||""),h={},i=14;i--;)h[e[i]]=g[i]||"";return-1!=c&&-1!=f&&(h.source=b,h.host=h.host.substring(1,h.host.length-1).replace(/;/g,":"),h.authority=h.authority.replace("[","").replace("]","").replace(/;/g,":"),h.ipv6uri=!0),h}},{}],29:[function(b,c,d){(function(b){!function(e){function f(a){for(var b,c,d=[],e=0,f=a.length;f>e;)b=a.charCodeAt(e++),b>=55296&&56319>=b&&f>e?(c=a.charCodeAt(e++),56320==(64512&c)?d.push(((1023&b)<<10)+(1023&c)+65536):(d.push(b),e--)):d.push(b);return d}function g(a){for(var b,c=a.length,d=-1,e="";++d<c;)b=a[d],b>65535&&(b-=65536,e+=u(b>>>10&1023|55296),b=56320|1023&b),e+=u(b);return e}function h(a){if(a>=55296&&57343>=a)throw Error("Lone surrogate U+"+a.toString(16).toUpperCase()+" is not a scalar value")}function i(a,b){return u(a>>b&63|128)}function j(a){if(0==(4294967168&a))return u(a);var b="";return 0==(4294965248&a)?b=u(a>>6&31|192):0==(4294901760&a)?(h(a),b=u(a>>12&15|224),b+=i(a,6)):0==(4292870144&a)&&(b=u(a>>18&7|240),b+=i(a,12),b+=i(a,6)),b+=u(63&a|128)}function k(a){for(var b,c=f(a),d=c.length,e=-1,g="";++e<d;)b=c[e],g+=j(b);return g}function l(){if(t>=s)throw Error("Invalid byte index");var a=255&r[t];if(t++,128==(192&a))return 63&a;throw Error("Invalid continuation byte")}function m(){var a,b,c,d,e;if(t>s)throw Error("Invalid byte index");if(t==s)return!1;if(a=255&r[t],t++,0==(128&a))return a;if(192==(224&a)){var b=l();if(e=(31&a)<<6|b,e>=128)return e;throw Error("Invalid continuation byte")}if(224==(240&a)){if(b=l(),c=l(),e=(15&a)<<12|b<<6|c,e>=2048)return h(e),e;throw Error("Invalid continuation byte")}if(240==(248&a)&&(b=l(),c=l(),d=l(),e=(15&a)<<18|b<<12|c<<6|d,e>=65536&&1114111>=e))return e;throw Error("Invalid UTF-8 detected")}function n(a){r=f(a),s=r.length,t=0;for(var b,c=[];(b=m())!==!1;)c.push(b);return g(c)}var o="object"==typeof d&&d,p="object"==typeof c&&c&&c.exports==o&&c,q="object"==typeof b&&b;(q.global===q||q.window===q)&&(e=q);var r,s,t,u=String.fromCharCode,v={version:"2.0.0",encode:k,decode:n};if("function"==typeof a&&"object"==typeof a.amd&&a.amd)a(function(){return v});else if(o&&!o.nodeType)if(p)p.exports=v;else{var w={},x=w.hasOwnProperty;for(var y in v)x.call(v,y)&&(o[y]=v[y])}else e.utf8=v}(this)}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{}],30:[function(a,b,c){"use strict";function d(a){var b="";do b=h[a%i]+b,a=Math.floor(a/i);while(a>0);return b}function e(a){var b=0;for(l=0;l<a.length;l++)b=b*i+j[a.charAt(l)];return b}function f(){var a=d(+new Date);return a!==g?(k=0,g=a):a+"."+d(k++)}for(var g,h="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),i=64,j={},k=0,l=0;i>l;l++)j[h[l]]=l;f.encode=d,f.decode=e,b.exports=f},{}],31:[function(a,b,c){function d(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d=e(a),f=d.source,j=d.id,k=d.path,l=i[j]&&k in i[j].nsps,m=b.forceNew||b["force new connection"]||!1===b.multiplex||l;return m?(h("ignoring socket cache for %s",f),c=g(f,b)):(i[j]||(h("new io instance for %s",f),i[j]=g(f,b)),c=i[j]),c.socket(d.path)}var e=a("./url"),f=a("socket.io-parser"),g=a("./manager"),h=a("debug")("socket.io-client");b.exports=c=d;var i=c.managers={};c.protocol=f.protocol,c.connect=d,c.Manager=a("./manager"),c.Socket=a("./socket")},{"./manager":32,"./socket":34,"./url":35,debug:39,"socket.io-parser":47}],32:[function(a,b,c){function d(a,b){return this instanceof d?(a&&"object"==typeof a&&(b=a,a=void 0),b=b||{},b.path=b.path||"/socket.io",this.nsps={},this.subs=[],this.opts=b,this.reconnection(b.reconnection!==!1),this.reconnectionAttempts(b.reconnectionAttempts||1/0),this.reconnectionDelay(b.reconnectionDelay||1e3),this.reconnectionDelayMax(b.reconnectionDelayMax||5e3),this.randomizationFactor(b.randomizationFactor||.5),this.backoff=new m({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==b.timeout?2e4:b.timeout),this.readyState="closed",this.uri=a,this.connecting=[],this.lastPing=null,this.encoding=!1,this.packetBuffer=[],this.encoder=new h.Encoder,this.decoder=new h.Decoder,this.autoConnect=b.autoConnect!==!1,void(this.autoConnect&&this.open())):new d(a,b)}var e=a("engine.io-client"),f=a("./socket"),g=a("component-emitter"),h=a("socket.io-parser"),i=a("./on"),j=a("component-bind"),k=a("debug")("socket.io-client:manager"),l=a("indexof"),m=a("backo2"),n=Object.prototype.hasOwnProperty;b.exports=d,d.prototype.emitAll=function(){this.emit.apply(this,arguments);for(var a in this.nsps)n.call(this.nsps,a)&&this.nsps[a].emit.apply(this.nsps[a],arguments)},d.prototype.updateSocketIds=function(){for(var a in this.nsps)n.call(this.nsps,a)&&(this.nsps[a].id=this.engine.id)},g(d.prototype),d.prototype.reconnection=function(a){return arguments.length?(this._reconnection=!!a,this):this._reconnection},d.prototype.reconnectionAttempts=function(a){return arguments.length?(this._reconnectionAttempts=a,this):this._reconnectionAttempts},d.prototype.reconnectionDelay=function(a){return arguments.length?(this._reconnectionDelay=a,this.backoff&&this.backoff.setMin(a),this):this._reconnectionDelay},d.prototype.randomizationFactor=function(a){return arguments.length?(this._randomizationFactor=a,this.backoff&&this.backoff.setJitter(a),this):this._randomizationFactor},d.prototype.reconnectionDelayMax=function(a){return arguments.length?(this._reconnectionDelayMax=a,this.backoff&&this.backoff.setMax(a),this):this._reconnectionDelayMax},d.prototype.timeout=function(a){return arguments.length?(this._timeout=a,this):this._timeout},d.prototype.maybeReconnectOnOpen=function(){!this.reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()},d.prototype.open=d.prototype.connect=function(a){if(k("readyState %s",this.readyState),~this.readyState.indexOf("open"))return this;k("opening %s",this.uri),this.engine=e(this.uri,this.opts);var b=this.engine,c=this;this.readyState="opening",this.skipReconnect=!1;var d=i(b,"open",function(){c.onopen(),a&&a()}),f=i(b,"error",function(b){if(k("connect_error"),c.cleanup(),c.readyState="closed",c.emitAll("connect_error",b),a){var d=new Error("Connection error");d.data=b,a(d)}else c.maybeReconnectOnOpen()});if(!1!==this._timeout){var g=this._timeout;k("connect attempt will timeout after %d",g);var h=setTimeout(function(){k("connect attempt timed out after %d",g),d.destroy(),b.close(),b.emit("error","timeout"),c.emitAll("connect_timeout",g)},g);this.subs.push({destroy:function(){clearTimeout(h)}})}return this.subs.push(d),this.subs.push(f),this},d.prototype.onopen=function(){k("open"),this.cleanup(),this.readyState="open",this.emit("open");var a=this.engine;this.subs.push(i(a,"data",j(this,"ondata"))),this.subs.push(i(a,"ping",j(this,"onping"))),this.subs.push(i(a,"pong",j(this,"onpong"))),this.subs.push(i(a,"error",j(this,"onerror"))),this.subs.push(i(a,"close",j(this,"onclose"))),this.subs.push(i(this.decoder,"decoded",j(this,"ondecoded")))},d.prototype.onping=function(){this.lastPing=new Date,this.emitAll("ping")},d.prototype.onpong=function(){this.emitAll("pong",new Date-this.lastPing)},d.prototype.ondata=function(a){this.decoder.add(a)},d.prototype.ondecoded=function(a){this.emit("packet",a)},d.prototype.onerror=function(a){k("error",a),this.emitAll("error",a)},d.prototype.socket=function(a){function b(){~l(d.connecting,c)||d.connecting.push(c)}var c=this.nsps[a];if(!c){c=new f(this,a),this.nsps[a]=c;var d=this;c.on("connecting",b),c.on("connect",function(){c.id=d.engine.id}),this.autoConnect&&b()}return c},d.prototype.destroy=function(a){var b=l(this.connecting,a);~b&&this.connecting.splice(b,1),this.connecting.length||this.close()},d.prototype.packet=function(a){k("writing packet %j",a);var b=this;b.encoding?b.packetBuffer.push(a):(b.encoding=!0,this.encoder.encode(a,function(c){for(var d=0;d<c.length;d++)b.engine.write(c[d],a.options);b.encoding=!1,b.processPacketQueue()}))},d.prototype.processPacketQueue=function(){if(this.packetBuffer.length>0&&!this.encoding){var a=this.packetBuffer.shift();this.packet(a)}},d.prototype.cleanup=function(){k("cleanup");for(var a;a=this.subs.shift();)a.destroy();this.packetBuffer=[],this.encoding=!1,this.lastPing=null,this.decoder.destroy()},d.prototype.close=d.prototype.disconnect=function(){k("disconnect"),this.skipReconnect=!0,this.reconnecting=!1,"opening"==this.readyState&&this.cleanup(),this.backoff.reset(),this.readyState="closed",this.engine&&this.engine.close()},d.prototype.onclose=function(a){k("onclose"),this.cleanup(),this.backoff.reset(),this.readyState="closed",this.emit("close",a),this._reconnection&&!this.skipReconnect&&this.reconnect()},d.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var a=this;if(this.backoff.attempts>=this._reconnectionAttempts)k("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var b=this.backoff.duration();k("will wait %dms before reconnect attempt",b),this.reconnecting=!0;var c=setTimeout(function(){a.skipReconnect||(k("attempting reconnect"),a.emitAll("reconnect_attempt",a.backoff.attempts),a.emitAll("reconnecting",a.backoff.attempts),a.skipReconnect||a.open(function(b){b?(k("reconnect attempt error"),a.reconnecting=!1,a.reconnect(),a.emitAll("reconnect_error",b.data)):(k("reconnect success"),a.onreconnect())}))},b);this.subs.push({destroy:function(){clearTimeout(c)}})}},d.prototype.onreconnect=function(){var a=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",a)}},{"./on":33,"./socket":34,backo2:36,"component-bind":37,"component-emitter":38,debug:39,"engine.io-client":1,indexof:42,"socket.io-parser":47}],33:[function(a,b,c){function d(a,b,c){return a.on(b,c),{destroy:function(){a.removeListener(b,c)}}}b.exports=d},{}],34:[function(a,b,c){function d(a,b){this.io=a,this.nsp=b,this.json=this,this.ids=0,this.acks={},this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0,this.io.autoConnect&&this.open()}var e=a("socket.io-parser"),f=a("component-emitter"),g=a("to-array"),h=a("./on"),i=a("component-bind"),j=a("debug")("socket.io-client:socket"),k=a("has-binary");b.exports=c=d;var l={connect:1,connect_error:1,connect_timeout:1,connecting:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1,ping:1,pong:1},m=f.prototype.emit;f(d.prototype),d.prototype.subEvents=function(){if(!this.subs){var a=this.io;this.subs=[h(a,"open",i(this,"onopen")),h(a,"packet",i(this,"onpacket")),h(a,"close",i(this,"onclose"))]}},d.prototype.open=d.prototype.connect=function(){return this.connected?this:(this.subEvents(),this.io.open(),"open"==this.io.readyState&&this.onopen(),this.emit("connecting"),this)},d.prototype.send=function(){var a=g(arguments);return a.unshift("message"),this.emit.apply(this,a),this},d.prototype.emit=function(a){if(l.hasOwnProperty(a))return m.apply(this,arguments),this;var b=g(arguments),c=e.EVENT;k(b)&&(c=e.BINARY_EVENT);var d={type:c,data:b};return d.options={},d.options.compress=!this.flags||!1!==this.flags.compress,"function"==typeof b[b.length-1]&&(j("emitting packet with ack id %d",this.ids),this.acks[this.ids]=b.pop(),d.id=this.ids++),this.connected?this.packet(d):this.sendBuffer.push(d),delete this.flags,this},d.prototype.packet=function(a){a.nsp=this.nsp,this.io.packet(a)},d.prototype.onopen=function(){j("transport is open - connecting"),"/"!=this.nsp&&this.packet({type:e.CONNECT})},d.prototype.onclose=function(a){j("close (%s)",a),this.connected=!1,this.disconnected=!0,delete this.id,this.emit("disconnect",a)},d.prototype.onpacket=function(a){if(a.nsp==this.nsp)switch(a.type){case e.CONNECT:this.onconnect();break;case e.EVENT:this.onevent(a);break;case e.BINARY_EVENT:this.onevent(a);break;case e.ACK:this.onack(a);break;case e.BINARY_ACK:this.onack(a);break;case e.DISCONNECT:this.ondisconnect();break;case e.ERROR:this.emit("error",a.data)}},d.prototype.onevent=function(a){var b=a.data||[];j("emitting event %j",b),null!=a.id&&(j("attaching ack callback to event"),b.push(this.ack(a.id))),this.connected?m.apply(this,b):this.receiveBuffer.push(b)},d.prototype.ack=function(a){var b=this,c=!1;return function(){if(!c){c=!0;var d=g(arguments);j("sending ack %j",d);var f=k(d)?e.BINARY_ACK:e.ACK;b.packet({type:f,id:a,data:d})}}},d.prototype.onack=function(a){var b=this.acks[a.id];"function"==typeof b?(j("calling ack %s with %j",a.id,a.data),b.apply(this,a.data),delete this.acks[a.id]):j("bad ack %s",a.id)},d.prototype.onconnect=function(){this.connected=!0,this.disconnected=!1,this.emit("connect"),this.emitBuffered()},d.prototype.emitBuffered=function(){var a;for(a=0;a<this.receiveBuffer.length;a++)m.apply(this,this.receiveBuffer[a]);for(this.receiveBuffer=[],a=0;a<this.sendBuffer.length;a++)this.packet(this.sendBuffer[a]);this.sendBuffer=[]},d.prototype.ondisconnect=function(){j("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")},d.prototype.destroy=function(){if(this.subs){for(var a=0;a<this.subs.length;a++)this.subs[a].destroy();this.subs=null}this.io.destroy(this)},d.prototype.close=d.prototype.disconnect=function(){return this.connected&&(j("performing disconnect (%s)",this.nsp),this.packet({type:e.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this},d.prototype.compress=function(a){return this.flags=this.flags||{},this.flags.compress=a,this}},{"./on":33,"component-bind":37,"component-emitter":38,debug:39,"has-binary":41,"socket.io-parser":47,"to-array":51}],35:[function(a,b,c){(function(c){function d(a,b){var d=a,b=b||c.location;null==a&&(a=b.protocol+"//"+b.host),"string"==typeof a&&("/"==a.charAt(0)&&(a="/"==a.charAt(1)?b.protocol+a:b.host+a),/^(https?|wss?):\/\//.test(a)||(f("protocol-less url %s",a),a="undefined"!=typeof b?b.protocol+"//"+a:"https://"+a),f("parse %s",a),d=e(a)),d.port||(/^(http|ws)$/.test(d.protocol)?d.port="80":/^(http|ws)s$/.test(d.protocol)&&(d.port="443")),d.path=d.path||"/";var g=-1!==d.host.indexOf(":"),h=g?"["+d.host+"]":d.host;return d.id=d.protocol+"://"+h+":"+d.port,d.href=d.protocol+"://"+h+(b&&b.port==d.port?"":":"+d.port),d}var e=a("parseuri"),f=a("debug")("socket.io-client:url");b.exports=d}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{debug:39,parseuri:45}],36:[function(a,b,c){function d(a){a=a||{},this.ms=a.min||100,this.max=a.max||1e4,this.factor=a.factor||2,this.jitter=a.jitter>0&&a.jitter<=1?a.jitter:0,this.attempts=0}b.exports=d,d.prototype.duration=function(){var a=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var b=Math.random(),c=Math.floor(b*this.jitter*a);a=0==(1&Math.floor(10*b))?a-c:a+c}return 0|Math.min(a,this.max)},d.prototype.reset=function(){this.attempts=0},d.prototype.setMin=function(a){this.ms=a},d.prototype.setMax=function(a){this.max=a},d.prototype.setJitter=function(a){this.jitter=a}},{}],37:[function(a,b,c){var d=[].slice;b.exports=function(a,b){if("string"==typeof b&&(b=a[b]),"function"!=typeof b)throw new Error("bind() requires a function");var c=d.call(arguments,2);return function(){return b.apply(a,c.concat(d.call(arguments)))}}},{}],38:[function(a,b,c){function d(a){return a?e(a):void 0}function e(a){for(var b in d.prototype)a[b]=d.prototype[b];return a}b.exports=d,d.prototype.on=d.prototype.addEventListener=function(a,b){return this._callbacks=this._callbacks||{},(this._callbacks["$"+a]=this._callbacks["$"+a]||[]).push(b),this},d.prototype.once=function(a,b){function c(){this.off(a,c),b.apply(this,arguments)}return c.fn=b,this.on(a,c),this},d.prototype.off=d.prototype.removeListener=d.prototype.removeAllListeners=d.prototype.removeEventListener=function(a,b){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var c=this._callbacks["$"+a];if(!c)return this;if(1==arguments.length)return delete this._callbacks["$"+a],this;for(var d,e=0;e<c.length;e++)if(d=c[e],d===b||d.fn===b){c.splice(e,1);break}return this},d.prototype.emit=function(a){this._callbacks=this._callbacks||{};var b=[].slice.call(arguments,1),c=this._callbacks["$"+a];if(c){c=c.slice(0);for(var d=0,e=c.length;e>d;++d)c[d].apply(this,b)}return this},d.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks["$"+a]||[]},d.prototype.hasListeners=function(a){return!!this.listeners(a).length}},{}],39:[function(a,b,c){arguments[4][17][0].apply(c,arguments)},{"./debug":40,dup:17}],40:[function(a,b,c){
-arguments[4][18][0].apply(c,arguments)},{dup:18,ms:44}],41:[function(a,b,c){(function(c){function d(a){function b(a){if(!a)return!1;if(c.Buffer&&c.Buffer.isBuffer&&c.Buffer.isBuffer(a)||c.ArrayBuffer&&a instanceof ArrayBuffer||c.Blob&&a instanceof Blob||c.File&&a instanceof File)return!0;if(e(a)){for(var d=0;d<a.length;d++)if(b(a[d]))return!0}else if(a&&"object"==typeof a){a.toJSON&&"function"==typeof a.toJSON&&(a=a.toJSON());for(var f in a)if(Object.prototype.hasOwnProperty.call(a,f)&&b(a[f]))return!0}return!1}return b(a)}var e=a("isarray");b.exports=d}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{isarray:43}],42:[function(a,b,c){arguments[4][23][0].apply(c,arguments)},{dup:23}],43:[function(a,b,c){arguments[4][24][0].apply(c,arguments)},{dup:24}],44:[function(a,b,c){arguments[4][25][0].apply(c,arguments)},{dup:25}],45:[function(a,b,c){arguments[4][28][0].apply(c,arguments)},{dup:28}],46:[function(a,b,c){(function(b){var d=a("isarray"),e=a("./is-buffer");c.deconstructPacket=function(a){function b(a){if(!a)return a;if(e(a)){var f={_placeholder:!0,num:c.length};return c.push(a),f}if(d(a)){for(var g=new Array(a.length),h=0;h<a.length;h++)g[h]=b(a[h]);return g}if("object"==typeof a&&!(a instanceof Date)){var g={};for(var i in a)g[i]=b(a[i]);return g}return a}var c=[],f=a.data,g=a;return g.data=b(f),g.attachments=c.length,{packet:g,buffers:c}},c.reconstructPacket=function(a,b){function c(a){if(a&&a._placeholder){var e=b[a.num];return e}if(d(a)){for(var f=0;f<a.length;f++)a[f]=c(a[f]);return a}if(a&&"object"==typeof a){for(var g in a)a[g]=c(a[g]);return a}return a}return a.data=c(a.data),a.attachments=void 0,a},c.removeBlobs=function(a,c){function f(a,i,j){if(!a)return a;if(b.Blob&&a instanceof Blob||b.File&&a instanceof File){g++;var k=new FileReader;k.onload=function(){j?j[i]=this.result:h=this.result,--g||c(h)},k.readAsArrayBuffer(a)}else if(d(a))for(var l=0;l<a.length;l++)f(a[l],l,a);else if(a&&"object"==typeof a&&!e(a))for(var m in a)f(a[m],m,a)}var g=0,h=a;f(h),g||c(h)}}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{"./is-buffer":48,isarray:43}],47:[function(a,b,c){function d(){}function e(a){var b="",d=!1;return b+=a.type,(c.BINARY_EVENT==a.type||c.BINARY_ACK==a.type)&&(b+=a.attachments,b+="-"),a.nsp&&"/"!=a.nsp&&(d=!0,b+=a.nsp),null!=a.id&&(d&&(b+=",",d=!1),b+=a.id),null!=a.data&&(d&&(b+=","),b+=l.stringify(a.data)),k("encoded %j as %s",a,b),b}function f(a,b){function c(a){var c=n.deconstructPacket(a),d=e(c.packet),f=c.buffers;f.unshift(d),b(f)}n.removeBlobs(a,c)}function g(){this.reconstructor=null}function h(a){var b={},d=0;if(b.type=Number(a.charAt(0)),null==c.types[b.type])return j();if(c.BINARY_EVENT==b.type||c.BINARY_ACK==b.type){for(var e="";"-"!=a.charAt(++d)&&(e+=a.charAt(d),d!=a.length););if(e!=Number(e)||"-"!=a.charAt(d))throw new Error("Illegal attachments");b.attachments=Number(e)}if("/"==a.charAt(d+1))for(b.nsp="";++d;){var f=a.charAt(d);if(","==f)break;if(b.nsp+=f,d==a.length)break}else b.nsp="/";var g=a.charAt(d+1);if(""!==g&&Number(g)==g){for(b.id="";++d;){var f=a.charAt(d);if(null==f||Number(f)!=f){--d;break}if(b.id+=a.charAt(d),d==a.length)break}b.id=Number(b.id)}if(a.charAt(++d))try{b.data=l.parse(a.substr(d))}catch(h){return j()}return k("decoded %s as %j",a,b),b}function i(a){this.reconPack=a,this.buffers=[]}function j(a){return{type:c.ERROR,data:"parser error"}}var k=a("debug")("socket.io-parser"),l=a("json3"),m=(a("isarray"),a("component-emitter")),n=a("./binary"),o=a("./is-buffer");c.protocol=4,c.types=["CONNECT","DISCONNECT","EVENT","BINARY_EVENT","ACK","BINARY_ACK","ERROR"],c.CONNECT=0,c.DISCONNECT=1,c.EVENT=2,c.ACK=3,c.ERROR=4,c.BINARY_EVENT=5,c.BINARY_ACK=6,c.Encoder=d,c.Decoder=g,d.prototype.encode=function(a,b){if(k("encoding packet %j",a),c.BINARY_EVENT==a.type||c.BINARY_ACK==a.type)f(a,b);else{var d=e(a);b([d])}},m(g.prototype),g.prototype.add=function(a){var b;if("string"==typeof a)b=h(a),c.BINARY_EVENT==b.type||c.BINARY_ACK==b.type?(this.reconstructor=new i(b),0===this.reconstructor.reconPack.attachments&&this.emit("decoded",b)):this.emit("decoded",b);else{if(!o(a)&&!a.base64)throw new Error("Unknown type: "+a);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");b=this.reconstructor.takeBinaryData(a),b&&(this.reconstructor=null,this.emit("decoded",b))}},g.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},i.prototype.takeBinaryData=function(a){if(this.buffers.push(a),this.buffers.length==this.reconPack.attachments){var b=n.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),b}return null},i.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},{"./binary":46,"./is-buffer":48,"component-emitter":49,debug:39,isarray:43,json3:50}],48:[function(a,b,c){(function(a){function c(b){return a.Buffer&&a.Buffer.isBuffer(b)||a.ArrayBuffer&&b instanceof ArrayBuffer}b.exports=c}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{}],49:[function(a,b,c){arguments[4][15][0].apply(c,arguments)},{dup:15}],50:[function(b,c,d){(function(b){(function(){function e(a,b){function c(a){if(c[a]!==q)return c[a];var e;if("bug-string-char-index"==a)e="a"!="a"[0];else if("json"==a)e=c("json-stringify")&&c("json-parse");else{var g,h='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=b.stringify,k="function"==typeof i&&t;if(k){(g=function(){return 1}).toJSON=g;try{k="0"===i(0)&&"0"===i(new d)&&'""'==i(new f)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(g)&&"[1]"==i([g])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[g,!0,!1,null,"\x00\b\n\f\r       "]})==h&&"1"===i(null,g)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}e=k}if("json-parse"==a){var m=b.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){g=m(h);var n=5==g.a.length&&1===g.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}e=n}}return c[a]=!!e}a||(a=i.Object()),b||(b=i.Object());var d=a.Number||i.Number,f=a.String||i.String,h=a.Object||i.Object,j=a.Date||i.Date,k=a.SyntaxError||i.SyntaxError,l=a.TypeError||i.TypeError,m=a.Math||i.Math,n=a.JSON||i.JSON;"object"==typeof n&&n&&(b.stringify=n.stringify,b.parse=n.parse);var o,p,q,r=h.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!c("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=c("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var c,d,e,f=0;(c=function(){this.valueOf=0}).prototype.valueOf=0,d=new c;for(e in d)o.call(d,e)&&f++;return c=d=null,f?p=2==f?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(d=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var c,e,f=s.call(a)==v,h=!f&&"function"!=typeof a.constructor&&g[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(c in a)f&&"prototype"==c||!h.call(a,c)||b(c);for(e=d.length;c=d[--e];h.call(a,c)&&b(c));}),p(a,b)},!c("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};b.stringify=function(a,b,c){var d,e,f,h;if(g[typeof b]&&b)if((h=s.call(b))==v)e=b;else if(h==z){f={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(f[i]=1));}if(c)if((h=s.call(c))==x){if((c-=c%1)>0)for(d="",c>10&&(c=10);d.length<c;d+=" ");}else h==y&&(d=c.length<=10?c:c.slice(0,10));return K("",(i={},i[""]=a,i),e,f,d,"",[])}}if(!c("json-parse")){var L,M,N=f.fromCharCode,O={92:"\\",34:'"',47:"/",98:"\b",116:"       ",110:"\n",102:"\f",114:"\r"},P=function(){throw L=M=null,k()},Q=function(){for(var a,b,c,d,e,f=M,g=f.length;g>L;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};b.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return b.runInContext=e,b}var f="function"==typeof a&&a.amd,g={"function":!0,object:!0},h=g[typeof d]&&d&&!d.nodeType&&d,i=g[typeof window]&&window||this,j=h&&g[typeof c]&&c&&!c.nodeType&&"object"==typeof b&&b;if(!j||j.global!==j&&j.window!==j&&j.self!==j||(i=j),h&&!f)e(i,h);else{var k=i.JSON,l=i.JSON3,m=!1,n=e(i,i.JSON3={noConflict:function(){return m||(m=!0,i.JSON=k,i.JSON3=l,k=l=null),n}});i.JSON={parse:n.parse,stringify:n.stringify}}f&&a(function(){return n})}).call(this)}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{}],51:[function(a,b,c){function d(a,b){var c=[];b=b||0;for(var d=b||0;d<a.length;d++)c[d-b]=a[d];return c}b.exports=d},{}]},{},[31])(31)});
\ No newline at end of file
+var b=a.charCodeAt(0);return"["+String.fromCharCode(-33&b,32|b)+"]"}))}return b.join("")}for(var f=0,g=!1,h=!1,i=0,j=a.length;j>i;++i){var k=a[i];if(k.ignoreCase)h=!0;else if(/[a-z]/i.test(k.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){g=!0,h=!1;break}}for(var l={b:8,t:9,n:10,v:11,f:12,r:13},m=[],i=0,j=a.length;j>i;++i){var k=a[i];if(k.global||k.multiline)throw new Error(""+k);m.push("(?:"+e(k)+")")}return new RegExp(m.join("|"),h?"gi":"g")}function d(a,b){function c(a){var i=a.nodeType;if(1==i){if(d.test(a.className))return;for(var j=a.firstChild;j;j=j.nextSibling)c(j);var k=a.nodeName.toLowerCase();"br"!==k&&"li"!==k||(e[h]="\n",g[h<<1]=f++,g[h++<<1|1]=a)}else if(3==i||4==i){var l=a.nodeValue;l.length&&(l=b?l.replace(/\r\n?/g,"\n"):l.replace(/[ \t\r\n]+/g," "),e[h]=l,g[h<<1]=f,f+=l.length,g[h++<<1|1]=a)}}var d=/(?:^|\s)nocode(?:\s|$)/,e=[],f=0,g=[],h=0;return c(a),{sourceCode:e.join("").replace(/\n$/,""),spans:g}}function e(a,b,c,d){if(b){var e={sourceCode:b,basePos:a};c(e),d.push.apply(d,e.decorations)}}function f(a){for(var b=c,d=a.firstChild;d;d=d.nextSibling){var e=d.nodeType;b=1===e?b?a:d:3===e&&W.test(d.nodeValue)?a:b}return b===a?c:b}function j(a,c){var d,f={};!function(){for(var e=a.concat(c),g=[],h={},i=0,j=e.length;j>i;++i){var k=e[i],l=k[3];if(l)for(var m=l.length;--m>=0;)f[l.charAt(m)]=k;var n=k[1],o=""+n;h.hasOwnProperty(o)||(g.push(n),h[o]=null)}g.push(/[\0-\uffff]/),d=b(g)}();var g=c.length,h=function(a){for(var b=a.sourceCode,i=a.basePos,j=[i,O],k=0,l=b.match(d)||[],m={},n=0,p=l.length;p>n;++n){var q,r=l[n],s=m[r],t=void 0;if("string"==typeof s)q=!1;else{var u=f[r.charAt(0)];if(u)t=r.match(u[1]),s=u[0];else{for(var v=0;g>v;++v)if(u=c[v],t=r.match(u[1])){s=u[0];break}t||(s=O)}q=s.length>=5&&"lang-"===s.substring(0,5),!q||t&&"string"==typeof t[1]||(q=!1,s=R),q||(m[r]=s)}var w=k;if(k+=r.length,q){var x=t[1],y=r.indexOf(x),z=y+x.length;t[2]&&(z=r.length-t[2].length,y=z-x.length);var A=s.substring(5);e(i+w,r.substring(0,y),h,j),e(i+w+y,x,o(A,x),j),e(i+w+z,r.substring(z),h,j)}else j.push(i+w,s)}a.decorations=j};return h}function k(a){var b=[],c=[];a.tripleQuotedStrings?b.push([I,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""]):a.multiLineStrings?b.push([I,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]):b.push([I,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"]),a.verbatimStrings&&c.push([I,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null]);var d=a.hashComments;d&&(a.cStyleComments?(d>1?b.push([K,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"]):b.push([K,/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"]),c.push([I,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])):b.push([K,/^#[^\r\n]*/,null,"#"])),a.cStyleComments&&(c.push([K,/^\/\/[^\r\n]*/,null]),c.push([K,/^\/\*[\s\S]*?(?:\*\/|$)/,null]));var e=a.regexLiterals;if(e){var f=e>1?"":"\n\r",g=f?".":"[\\S\\s]",h="/(?=[^/*"+f+"])(?:[^/\\x5B\\x5C"+f+"]|\\x5C"+g+"|\\x5B(?:[^\\x5C\\x5D"+f+"]|\\x5C"+g+")*(?:\\x5D|$))+/";c.push(["lang-regex",RegExp("^"+V+"("+h+")")])}var i=a.types;i&&c.push([L,i]);var k=(""+a.keywords).replace(/^ | $/g,"");k.length&&c.push([J,new RegExp("^(?:"+k.replace(/[\s,]+/g,"|")+")\\b"),null]),b.push([O,/^\s+/,null," \r\n     "]);var l="^.[^\\s\\w.$@'\"`/\\\\]*";return a.regexLiterals&&(l+="(?!s*/)"),c.push([M,/^@[a-z_$][a-z_$@0-9]*/i,null],[L,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[O,/^[a-z_$][a-z_$@0-9]*/i,null],[M,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[O,/^\\[\s\S]?/,null],[N,new RegExp(l),null]),j(b,c)}function l(a,b,c){function d(a){var b=a.nodeType;if(1!=b||f.test(a.className)){if((3==b||4==b)&&c){var i=a.nodeValue,j=i.match(g);if(j){var k=i.substring(0,j.index);a.nodeValue=k;var l=i.substring(j.index+j[0].length);if(l){var m=a.parentNode;m.insertBefore(h.createTextNode(l),a.nextSibling)}e(a),k||a.parentNode.removeChild(a)}}}else if("br"===a.nodeName)e(a),a.parentNode&&a.parentNode.removeChild(a);else for(var n=a.firstChild;n;n=n.nextSibling)d(n)}function e(a){function b(a,c){var d=c?a.cloneNode(!1):a,e=a.parentNode;if(e){var f=b(e,1),g=a.nextSibling;f.appendChild(d);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var c,d=b(a.nextSibling,0);(c=d.parentNode)&&1===c.nodeType;)d=c;j.push(d)}for(var f=/(?:^|\s)nocode(?:\s|$)/,g=/\r\n?|\n/,h=a.ownerDocument,i=h.createElement("li");a.firstChild;)i.appendChild(a.firstChild);for(var j=[i],k=0;k<j.length;++k)d(j[k]);b===(0|b)&&j[0].setAttribute("value",b);var l=h.createElement("ol");l.className="linenums";for(var m=Math.max(0,b-1|0)||0,k=0,n=j.length;n>k;++k)i=j[k],i.className="L"+(k+m)%10,i.firstChild||i.appendChild(h.createTextNode(" ")),l.appendChild(i);a.appendChild(l)}function m(a){var b=/\bMSIE\s(\d+)/.exec(navigator.userAgent);b=b&&+b[1]<=8;var c=/\n/g,d=a.sourceCode,e=d.length,f=0,g=a.spans,h=g.length,i=0,j=a.decorations,k=j.length,l=0;j[k]=e;var m,n;for(n=m=0;k>n;)j[n]!==j[n+2]?(j[m++]=j[n++],j[m++]=j[n++]):n+=2;for(k=m,n=m=0;k>n;){for(var o=j[n],p=j[n+1],q=n+2;k>=q+2&&j[q+1]===p;)q+=2;j[m++]=o,j[m++]=p,n=q}k=j.length=m;var r,s=a.sourceNode;s&&(r=s.style.display,s.style.display="none");try{for(;h>i;){var t,u=(g[i],g[i+2]||e),v=j[l+2]||e,q=Math.min(u,v),w=g[i+1];if(1!==w.nodeType&&(t=d.substring(f,q))){b&&(t=t.replace(c,"\r")),w.nodeValue=t;var x=w.ownerDocument,y=x.createElement("span");y.className=j[l+1];var z=w.parentNode;z.replaceChild(y,w),y.appendChild(w),u>f&&(g[i+1]=w=x.createTextNode(d.substring(q,u)),z.insertBefore(w,y.nextSibling))}f=q,f>=u&&(i+=2),f>=v&&(l+=2)}}finally{s&&(s.style.display=r)}}function n(a,b){for(var c=b.length;--c>=0;){var d=b[c];Y.hasOwnProperty(d)?s.console&&console.warn("cannot override language handler %s",d):Y[d]=a}}function o(a,b){return a&&Y.hasOwnProperty(a)||(a=/^\s*</.test(b)?"default-markup":"default-code"),Y[a]}function p(a){var b=a.langExtension;try{var c=d(a.sourceNode,a.pre),e=c.sourceCode;a.sourceCode=e,a.spans=c.spans,a.basePos=0,o(b,e)(a),m(a)}catch(f){s.console&&console.log(f&&f.stack||f)}}function q(a,b,c){var d=document.createElement("div");d.innerHTML="<pre>"+a+"</pre>",d=d.firstChild,c&&l(d,c,!0);var e={langExtension:b,numberLines:c,sourceNode:d,pre:1};return p(e),d.innerHTML}function r(a,b){function c(a){return e.getElementsByTagName(a)}function d(){for(var b=s.PR_SHOULD_USE_CONTINUATION?n.now()+250:1/0;q<i.length&&n.now()<b;q++){for(var c=i[q],e=y,h=c;h=h.previousSibling;){var j=h.nodeType,k=(7===j||8===j)&&h.nodeValue;if(k?!/^\??prettify\b/.test(k):3!==j||/\S/.test(h.nodeValue))break;if(k){e={},k.replace(/\b(\w+)=([\w:.%+-]+)/g,function(a,b,c){e[b]=c});break}}var m=c.className;if((e!==y||t.test(m))&&!u.test(m)){for(var z=!1,A=c.parentNode;A;A=A.parentNode){var B=A.tagName;if(x.test(B)&&A.className&&t.test(A.className)){z=!0;break}}if(!z){c.className+=" prettyprinted";var C=e.lang;if(!C){C=m.match(r);var D;!C&&(D=f(c))&&w.test(D.tagName)&&(C=D.className.match(r)),C&&(C=C[1])}var E;if(v.test(c.tagName))E=1;else{var F=c.currentStyle,G=g.defaultView,H=F?F.whiteSpace:G&&G.getComputedStyle?G.getComputedStyle(c,null).getPropertyValue("white-space"):0;E=H&&"pre"===H.substring(0,3)}var I=e.linenums;(I="true"===I||+I)||(I=m.match(/\blinenums\b(?::(\d+))?/),I=I?I[1]&&I[1].length?+I[1]:!0:!1),I&&l(c,I,E),o={langExtension:C,sourceNode:c,numberLines:I,pre:E},p(o)}}}q<i.length?setTimeout(d,250):"function"==typeof a&&a()}for(var e=b||document.body,g=e.ownerDocument||document,h=[c("pre"),c("code"),c("xmp")],i=[],j=0;j<h.length;++j)for(var k=0,m=h[j].length;m>k;++k)i.push(h[j][k]);h=null;var n=Date;n.now||(n={now:function(){return+new Date}});var o,q=0,r=/\blang(?:uage)?-([\w.]+)(?!\S)/,t=/\bprettyprint\b/,u=/\bprettyprinted\b/,v=/pre|xmp/i,w=/^code$/i,x=/^(?:pre|code|xmp)$/i,y={};d()}var s=a,t=["break,continue,do,else,for,if,return,while"],u=[t,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],v=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],w=[v,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],x=[v,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],y=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],z="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",A=[v,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],B="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",C=[t,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],D=[t,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],E=[t,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],F=[t,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],G=[w,y,A,B,C,D,F],H=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,I="str",J="kwd",K="com",L="typ",M="lit",N="pun",O="pln",P="tag",Q="dec",R="src",S="atn",T="atv",U="nocode",V="(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*",W=/\S/,X=k({keywords:G,hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),Y={};n(X,["default-code"]),n(j([],[[O,/^[^<?]+/],[Q,/^<!\w[^>]*(?:>|$)/],[K,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[N,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]),n(j([[O,/^[\s]+/,null,"  \r\n"],[T,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[P,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[S,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[N,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]),n(j([],[[T,/^[\s\S]+/]]),["uq.val"]),n(k({keywords:w,hashComments:!0,cStyleComments:!0,types:H}),["c","cc","cpp","cxx","cyc","m"]),n(k({keywords:"null,true,false"}),["json"]),n(k({keywords:y,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:H}),["cs"]),n(k({keywords:x,cStyleComments:!0}),["java"]),n(k({keywords:F,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]),n(k({keywords:C,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]),n(k({keywords:B,hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]),n(k({keywords:D,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]),n(k({keywords:A,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]),n(k({keywords:z,hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]),n(k({keywords:E,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]),n(j([],[[I,/^[\s\S]+/]]),["regex"]);var Z=s.PR={createSimpleLexer:j,registerLangHandler:n,sourceDecorator:k,PR_ATTRIB_NAME:S,PR_ATTRIB_VALUE:T,PR_COMMENT:K,PR_DECLARATION:Q,PR_KEYWORD:J,PR_LITERAL:M,PR_NOCODE:U,PR_PLAIN:O,PR_PUNCTUATION:N,PR_SOURCE:R,PR_STRING:I,PR_TAG:P,PR_TYPE:L,prettyPrintOne:g?s.prettyPrintOne=q:h=q,prettyPrint:i=g?s.prettyPrint=r:i=r};"function"==typeof define&&define.amd&&define("google-code-prettify",[],function(){return Z})}()}(window,window.angular),function(){"use strict";var a=angular.module("permission",["ui.router"]);a.config(["$stateProvider",function(a){a.decorator("parent",function(a,b){return a.self.getState=function(){return a},b(a)})}]),a.run(["$rootScope","$state","$q","Authorization","PermissionMap",function(a,b,c,d,e){a.$on("$stateChangeStart",function(c,f,g,h,i,j){function k(a){return angular.isDefined(a.data)&&angular.isDefined(a.data.permissions)}function l(a){angular.extend(f,{$$isAuthorizationFinished:a})}function m(){return f.$$isAuthorizationFinished}function n(){return r()||q()}function o(a){var c=new e({redirectTo:a.redirectTo}),d=b.get(f.name).getState().path.slice().reverse();return angular.forEach(d,function(a){k(a)&&c.extendPermissionMap(new e(a.data.permissions))}),c}function p(c){d.authorize(c,g).then(function(){a.$broadcast("$stateChangePermissionAccepted",f,g,j),b.go(f.name,g,{notify:!1}).then(function(){a.$broadcast("$stateChangeSuccess",f,g)})})["catch"](function(d){return a.$broadcast("$stateChangePermissionDenied",f,g,j),c.resolveRedirectState(d).then(function(a){b.go(a,g)})})["finally"](function(){l(!1)})}function q(){return a.$broadcast("$stateChangeStart",f,g,h,i,j).defaultPrevented}function r(){return a.$broadcast("$stateChangePermissionStart",f,g,j).defaultPrevented}if(!m()&&k(f)&&(c.preventDefault(),l(!0),!n())){var s=o(f.data.permissions);p(s)}})}])}(),function(){"use strict";angular.module("permission").factory("PermissionMap",["$q",function(a){function b(a,b,c,d){this.only=e(a.only,b,c,d),this.except=e(a.except,b,c,d),this.redirectTo=a.redirectTo}function c(b,c){return a.when(b.call(null,c)).then(function(a){if(!angular.isString(a))throw new TypeError('When used "redirectTo" as function, returned value must be string with state name');return a})}function d(b,d){if(!angular.isDefined(b["default"]))throw new ReferenceError('When used "redirectTo" as object, property "default" must be defined');var e=b[d];return angular.isDefined(e)||(e=b["default"]),angular.isFunction(e)?c(e,d):angular.isString(e)?a.resolve(e):void 0}function e(a,b,c,d){return angular.isString(a)?[a]:angular.isArray(a)?a:angular.isFunction(a)?a.call(null,b,c,d):[]}return b.prototype.extendPermissionMap=function(a){this.only=this.only.concat(a.only),this.except=this.except.concat(a.except)},b.prototype.resolveRedirectState=function(b){return angular.isFunction(this.redirectTo)?c(this.redirectTo,b):angular.isObject(this.redirectTo)?d(this.redirectTo,b):angular.isString(this.redirectTo)?a.resolve(this.redirectTo):a.reject(null)},b}])}(),function(){"use strict";angular.module("permission").factory("Permission",["$q",function(a){function b(a,b){d(a,b),this.permissionName=a,this.validationFunction=b}function c(b,c){var d=a.defer();return b?d.resolve(c):d.reject(c),d.promise}function d(a,b){if(!angular.isString(a))throw new TypeError('Parameter "permissionName" name must be String');if(!angular.isFunction(b))throw new TypeError('Parameter "validationFunction" must be Function')}return b.prototype.validatePermission=function(a){var b=this.validationFunction.call(null,a,this.permissionName);return angular.isFunction(b.then)||(b=c(b,this.permissionName)),b},b}])}(),function(){"use strict";angular.module("permission").factory("Role",["$q","PermissionStore",function(a,b){function c(a,c,d){e(a,c,d),this.roleName=a,this.permissionNames=c||[],this.validationFunction=d,d&&b.defineManyPermissions(c,d)}function d(b,c){var d=a.defer();return b?d.resolve(c):d.reject(c),d.promise}function e(a,b,c){if(!angular.isString(a))throw new TypeError('Parameter "roleName" name must be String');if(!angular.isArray(b))throw new TypeError('Parameter "permissionNames" must be Array');if(!b.length&&!angular.isFunction(c))throw new TypeError('Parameter "validationFunction" must be provided for empty "permissionNames" array')}return c.prototype.validateRole=function(c){if(this.permissionNames.length){var e=this.permissionNames.map(function(e){if(b.hasPermissionDefinition(e)){var f=b.getPermissionDefinition(e),g=f.validationFunction.call(null,c,f.permissionName);return angular.isFunction(g.then)||(g=d(g)),g}return a.reject(null)});return a.all(e)}var f=this.validationFunction.call(null,c,this.roleName);return angular.isFunction(f.then)||(f=d(f,this.roleName)),a.resolve(f)},c}])}(),function(){"use strict";angular.module("permission").service("PermissionStore",["Permission",function(a){function b(b,c){i[b]=new a(b,c)}function c(a,c){if(!angular.isArray(a))throw new TypeError('Parameter "permissionNames" name must be Array');angular.forEach(a,function(a){b(a,c)})}function d(a){delete i[a]}function e(a){return angular.isDefined(i[a])}function f(a){return i[a]}function g(){return i}function h(){i={}}var i={};this.definePermission=b,this.defineManyPermissions=c,this.removePermissionDefinition=d,this.hasPermissionDefinition=e,this.getPermissionDefinition=f,this.getStore=g,this.clearStore=h}])}(),function(){"use strict";angular.module("permission").service("RoleStore",["Role",function(a){function b(b,c,d){h[b]=new a(b,c,d)}function c(a){delete h[a]}function d(a){return angular.isDefined(h[a])}function e(a){return h[a]}function f(){return h}function g(){h={}}var h={};this.defineRole=b,this.getRoleDefinition=e,this.hasRoleDefinition=d,this.removeRoleDefinition=c,this.getStore=f,this.clearStore=g}])}(),function(){"use strict";angular.module("permission").directive("permission",["$log","Authorization","PermissionMap",function(a,b,c){return{restrict:"A",scope:!0,bindToController:{only:"=",except:"="},controllerAs:"permission",controller:["$scope","$element",function(d,e){var f=this;d.$watchGroup(["permission.only","permission.except"],function(){try{b.authorize(new c({only:f.only,except:f.except}),null).then(function(){e.removeClass("ng-hide")})["catch"](function(){e.addClass("ng-hide")})}catch(d){e.addClass("ng-hide"),a.error(d.message)}})}]}}])}(),function(){"use strict";angular.module("permission").service("Authorization",["$q","PermissionMap","PermissionStore","RoleStore",function(a,b,c,d){function e(a,b){return f(a,b)}function f(b,c){var d=a.defer(),e=h(b.except,c);return g(e).then(function(a){d.reject(a)})["catch"](function(){b.only.length||d.resolve(null);var a=h(b.only,c);g(a).then(function(a){d.resolve(a)})["catch"](function(a){d.reject(a)})}),d.promise}function g(b){var c=a.defer(),d=0,e=angular.isArray(b)?[]:{};return angular.forEach(b,function(b,f){d++,a.when(b).then(function(a){e.hasOwnProperty(f)||c.resolve(a)})["catch"](function(a){e.hasOwnProperty(f)||(e[f]=a,--d||c.reject(a))})}),0===d&&c.reject(e),c.promise}function h(b,e){return b.map(function(b){if(d.hasRoleDefinition(b)){var f=d.getRoleDefinition(b);return f.validateRole(e)}if(c.hasPermissionDefinition(b)){var g=c.getPermissionDefinition(b);return g.validatePermission(e)}return b?a.reject(b):void 0})}this.authorize=e}])}(),function(){function a(a){var b=function(a,d){var f=e({},b,d||{});return c(a,f)};return e(b,{language:"en",delimiter:", ",spacer:" ",units:["year","month","week","day","hour","minute","second"],languages:{},halfUnit:!0,round:!1},a)}function b(){return k.apply(k,arguments)}function c(a,b){if(a=Math.abs(a),0===a)return"0";var c=b.languages[b.language]||j[b.language];if(!c)throw new Error("No language "+c+".");for(var e,f,g,h,k=[],l=0,m=b.units.length;m>l;l++){if(e=b.units[l],"s"===e[e.length-1]&&(e=e.substring(0,e.length-1)),f=i[e],0===k.length&&b.halfUnit&&(h=a/f*2,h===Math.floor(h)))return d(h/2,e,c,b.spacer);l+1===m?(g=a/f,b.round&&(g=Math.round(g))):g=Math.floor(a/f),g&&k.push(d(g,e,c,b.spacer)),a-=g*f}return k.join(b.delimiter)}function d(a,b,c,d){var e,f=c[b];return e="function"==typeof f?f(a):f,a+d+e}function e(a){for(var b,c=1;c<arguments.length;c++){b=arguments[c];for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d])}return a}function f(a){return 1===a?0:Math.floor(a)!==a?1:a%10>=2&&4>=a%10&&!(a%100>10&&20>a%100)?2:3}function g(a){return Math.floor(a)!==a?2:0===a||a>=5&&20>=a||a%10>=5&&9>=a%10||a%10===0?0:1===a||a%10===1?1:a>1?2:0}function h(){var a=[];for(var b in j)j.hasOwnProperty(b)&&a.push(b);return a}var i={year:315576e5,month:26298e5,week:6048e5,day:864e5,hour:36e5,minute:6e4,second:1e3,millisecond:1},j={ar:{year:function(a){return 1===a?"سنة":"سنوات"},month:function(a){return 1===a?"شهر":"أشهر"},week:function(a){return 1===a?"أسبوع":"أسابيع"},day:function(a){return 1===a?"يوم":"أيام"},hour:function(a){return 1===a?"ساعة":"ساعات"},minute:function(a){return 1===a?"دقيقة":"دقائق"},second:function(a){return 1===a?"ثانية":"ثواني"},millisecond:function(a){return 1===a?"جزء من الثانية":"أجزاء من الثانية"}},ca:{year:function(a){return"any"+(1!==a?"s":"")},month:function(a){return"mes"+(1!==a?"os":"")},week:function(a){return"setman"+(1!==a?"es":"a")},day:function(a){return"di"+(1!==a?"es":"a")},hour:function(a){return"hor"+(1!==a?"es":"a")},minute:function(a){return"minut"+(1!==a?"s":"")},second:function(a){return"segon"+(1!==a?"s":"")},millisecond:function(a){return"milisegon"+(1!==a?"s":"")}},da:{year:"år",month:function(a){return"måned"+(1!==a?"er":"")},week:function(a){return"uge"+(1!==a?"r":"")},day:function(a){return"dag"+(1!==a?"e":"")},hour:function(a){return"time"+(1!==a?"r":"")},minute:function(a){return"minut"+(1!==a?"ter":"")},second:function(a){return"sekund"+(1!==a?"er":"")},millisecond:function(a){return"millisekund"+(1!==a?"er":"")}},de:{year:function(a){return"Jahr"+(1!==a?"e":"")},month:function(a){return"Monat"+(1!==a?"e":"")},week:function(a){return"Woche"+(1!==a?"n":"")},day:function(a){return"Tag"+(1!==a?"e":"")},hour:function(a){return"Stunde"+(1!==a?"n":"")},minute:function(a){return"Minute"+(1!==a?"n":"")},second:function(a){return"Sekunde"+(1!==a?"n":"")},millisecond:function(a){return"Millisekunde"+(1!==a?"n":"")}},en:{year:function(a){return"year"+(1!==a?"s":"")},month:function(a){return"month"+(1!==a?"s":"")},week:function(a){return"week"+(1!==a?"s":"")},day:function(a){return"day"+(1!==a?"s":"")},hour:function(a){return"hour"+(1!==a?"s":"")},minute:function(a){return"minute"+(1!==a?"s":"")},second:function(a){return"second"+(1!==a?"s":"")},millisecond:function(a){return"millisecond"+(1!==a?"s":"")}},es:{year:function(a){return"año"+(1!==a?"s":"")},month:function(a){return"mes"+(1!==a?"es":"")},week:function(a){return"semana"+(1!==a?"s":"")},day:function(a){return"día"+(1!==a?"s":"")},hour:function(a){return"hora"+(1!==a?"s":"")},minute:function(a){return"minuto"+(1!==a?"s":"")},second:function(a){return"segundo"+(1!==a?"s":"")},millisecond:function(a){return"milisegundo"+(1!==a?"s":"")}},fr:{year:function(a){return"an"+(1!==a?"s":"")},month:"mois",week:function(a){return"semaine"+(1!==a?"s":"")},day:function(a){return"jour"+(1!==a?"s":"")},hour:function(a){return"heure"+(1!==a?"s":"")},minute:function(a){return"minute"+(1!==a?"s":"")},second:function(a){return"seconde"+(1!==a?"s":"")},millisecond:function(a){return"milliseconde"+(1!==a?"s":"")}},hu:{year:"év",month:"hónap",week:"hét",day:"nap",hour:"óra",minute:"perc",second:"másodperc",millisecond:"ezredmásodperc"},it:{year:function(a){return"ann"+(1!==a?"i":"o")},month:function(a){return"mes"+(1!==a?"i":"e")},week:function(a){return"settiman"+(1!==a?"e":"a")},day:function(a){return"giorn"+(1!==a?"i":"o")},hour:function(a){return"or"+(1!==a?"e":"a")},minute:function(a){return"minut"+(1!==a?"i":"o")},second:function(a){return"second"+(1!==a?"i":"o")},millisecond:function(a){return"millisecond"+(1!==a?"i":"o")}},ja:{year:"年",month:"月",week:"週",day:"日",hour:"時間",minute:"分",second:"秒",millisecond:"ミリ秒"},ko:{year:"년",month:"개월",week:"주일",day:"일",hour:"시간",minute:"분",second:"초",millisecond:"밀리 초"},nl:{year:"jaar",month:function(a){return 1===a?"maand":"maanden"},week:function(a){return 1===a?"week":"weken"},day:function(a){return 1===a?"dag":"dagen"},hour:"uur",minute:function(a){return 1===a?"minuut":"minuten"},second:function(a){return 1===a?"seconde":"seconden"},millisecond:function(a){return 1===a?"milliseconde":"milliseconden"}},nob:{year:"år",month:function(a){return"måned"+(1!==a?"er":"")},week:function(a){return"uke"+(1!==a?"r":"")},day:function(a){return"dag"+(1!==a?"er":"")},hour:function(a){return"time"+(1!==a?"r":"")},minute:function(a){return"minutt"+(1!==a?"er":"")},second:function(a){return"sekund"+(1!==a?"er":"")},millisecond:function(a){return"millisekund"+(1!==a?"er":"")}},pl:{year:function(a){return["rok","roku","lata","lat"][f(a)]},month:function(a){return["miesiąc","miesiąca","miesiące","miesięcy"][f(a)]},week:function(a){return["tydzień","tygodnia","tygodnie","tygodni"][f(a)]},day:function(a){return["dzień","dnia","dni","dni"][f(a)]},hour:function(a){return["godzina","godziny","godziny","godzin"][f(a)]},minute:function(a){return["minuta","minuty","minuty","minut"][f(a)]},second:function(a){return["sekunda","sekundy","sekundy","sekund"][f(a)]},millisecond:function(a){return["milisekunda","milisekundy","milisekundy","milisekund"][f(a)]}},pt:{year:function(a){return"ano"+(1!==a?"s":"")},month:function(a){return 1!==a?"meses":"mês"},week:function(a){return"semana"+(1!==a?"s":"")},day:function(a){return"dia"+(1!==a?"s":"")},hour:function(a){return"hora"+(1!==a?"s":"")},minute:function(a){return"minuto"+(1!==a?"s":"")},second:function(a){return"segundo"+(1!==a?"s":"")},millisecond:function(a){return"milissegundo"+(1!==a?"s":"")}},ru:{year:function(a){return["лет","год","года"][g(a)]},month:function(a){return["месяцев","месяц","месяца"][g(a)]},week:function(a){return["недель","неделя","недели"][g(a)]},day:function(a){return["дней","день","дня"][g(a)]},hour:function(a){return["часов","час","часа"][g(a)]},minute:function(a){return["минут","минута","минуты"][g(a)]},second:function(a){return["секунд","секунда","секунды"][g(a)]},millisecond:function(a){return["миллисекунд","миллисекунда","миллисекунды"][g(a)]}},sv:{year:"år",month:function(a){return"månad"+(1!==a?"er":"")},week:function(a){return"veck"+(1!==a?"or":"a")},day:function(a){return"dag"+(1!==a?"ar":"")},hour:function(a){return"timm"+(1!==a?"ar":"e")},minute:function(a){return"minut"+(1!==a?"er":"")},second:function(a){return"sekund"+(1!==a?"er":"")},millisecond:function(a){return"millisekund"+(1!==a?"er":"")}},tr:{year:"yıl",month:"ay",week:"hafta",day:"gün",hour:"saat",minute:"dakika",second:"saniye",millisecond:"milisaniye"},"zh-CN":{year:"年",month:"个月",week:"周",day:"天",hour:"小时",minute:"分钟",second:"秒",millisecond:"毫秒"},"zh-TW":{year:"年",month:"個月",week:"周",day:"天",hour:"小時",minute:"分鐘",second:"秒",millisecond:"毫秒"}},k=a({});b.humanizer=a,b.getSupportedLanguages=h,"function"==typeof define&&define.amd?define(function(){return b}):"undefined"!=typeof module&&module.exports?module.exports=b:this.humanizeDuration=b}();var timerModule=angular.module("timer",[]).directive("timer",["$compile",function(a){return{restrict:"EA",replace:!1,scope:{interval:"=interval",startTimeAttr:"=startTime",endTimeAttr:"=endTime",countdownattr:"=countdown",finishCallback:"&finishCallback",autoStart:"&autoStart",language:"@?",fallback:"@?",maxTimeUnit:"="},controller:["$scope","$element","$attrs","$timeout","I18nService","$interpolate","progressBarService",function(b,c,d,e,f,g,h){function i(){b.timeoutId&&clearTimeout(b.timeoutId)}function j(){var a={};void 0!==d.startTime&&(b.millis=moment().diff(moment(b.startTimeAttr))),a=k.getTimeUnits(b.millis),b.maxTimeUnit&&"day"!==b.maxTimeUnit?"second"===b.maxTimeUnit?(b.seconds=Math.floor(b.millis/1e3),b.minutes=0,b.hours=0,b.days=0,b.months=0,b.years=0):"minute"===b.maxTimeUnit?(b.seconds=Math.floor(b.millis/1e3%60),b.minutes=Math.floor(b.millis/6e4),b.hours=0,b.days=0,b.months=0,b.years=0):"hour"===b.maxTimeUnit?(b.seconds=Math.floor(b.millis/1e3%60),b.minutes=Math.floor(b.millis/6e4%60),b.hours=Math.floor(b.millis/36e5),b.days=0,b.months=0,b.years=0):"month"===b.maxTimeUnit?(b.seconds=Math.floor(b.millis/1e3%60),b.minutes=Math.floor(b.millis/6e4%60),b.hours=Math.floor(b.millis/36e5%24),b.days=Math.floor(b.millis/36e5/24%30),b.months=Math.floor(b.millis/36e5/24/30),b.years=0):"year"===b.maxTimeUnit&&(b.seconds=Math.floor(b.millis/1e3%60),b.minutes=Math.floor(b.millis/6e4%60),b.hours=Math.floor(b.millis/36e5%24),b.days=Math.floor(b.millis/36e5/24%30),b.months=Math.floor(b.millis/36e5/24/30%12),b.years=Math.floor(b.millis/36e5/24/365)):(b.seconds=Math.floor(b.millis/1e3%60),b.minutes=Math.floor(b.millis/6e4%60),b.hours=Math.floor(b.millis/36e5%24),b.days=Math.floor(b.millis/36e5/24),b.months=0,b.years=0),b.secondsS=1===b.seconds?"":"s",b.minutesS=1===b.minutes?"":"s",b.hoursS=1===b.hours?"":"s",b.daysS=1===b.days?"":"s",b.monthsS=1===b.months?"":"s",b.yearsS=1===b.years?"":"s",b.secondUnit=a.seconds,b.minuteUnit=a.minutes,b.hourUnit=a.hours,b.dayUnit=a.days,b.monthUnit=a.months,b.yearUnit=a.years,b.sseconds=b.seconds<10?"0"+b.seconds:b.seconds,b.mminutes=b.minutes<10?"0"+b.minutes:b.minutes,b.hhours=b.hours<10?"0"+b.hours:b.hours,b.ddays=b.days<10?"0"+b.days:b.days,b.mmonths=b.months<10?"0"+b.months:b.months,b.yyears=b.years<10?"0"+b.years:b.years}"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),b.autoStart=d.autoStart||d.autostart,b.language=b.language||"en",b.fallback=b.fallback||"en",b.$watch("language",function(a,c){void 0!==a&&k.init(a,b.fallback)});var k=new f;k.init(b.language,b.fallback),b.displayProgressBar=0,b.displayProgressActive="active",0===c.html().trim().length?c.append(a("<span>"+g.startSymbol()+"millis"+g.endSymbol()+"</span>")(b)):c.append(a(c.contents())(b)),b.startTime=null,b.endTime=null,b.timeoutId=null,b.countdown=b.countdownattr&&parseInt(b.countdownattr,10)>=0?parseInt(b.countdownattr,10):void 0,b.isRunning=!1,b.$on("timer-start",function(){b.start()}),b.$on("timer-resume",function(){b.resume()}),b.$on("timer-stop",function(){b.stop()}),b.$on("timer-clear",function(){b.clear()}),b.$on("timer-reset",function(){b.reset()}),b.$on("timer-set-countdown",function(a,c){b.countdown=c}),b.$watch("startTimeAttr",function(a,c){a!==c&&b.isRunning&&b.start()}),b.$watch("endTimeAttr",function(a,c){a!==c&&b.isRunning&&b.start()}),b.start=c[0].start=function(){b.startTime=b.startTimeAttr?moment(b.startTimeAttr):moment(),b.endTime=b.endTimeAttr?moment(b.endTimeAttr):null,b.countdown||(b.countdown=b.countdownattr&&parseInt(b.countdownattr,10)>0?parseInt(b.countdownattr,10):void 0),i(),l(),b.isRunning=!0},b.resume=c[0].resume=function(){i(),b.countdownattr&&(b.countdown+=1),b.startTime=moment().diff(moment(b.stoppedTime).diff(moment(b.startTime))),l(),b.isRunning=!0},b.stop=b.pause=c[0].stop=c[0].pause=function(){var a=b.timeoutId;b.clear(),b.$emit("timer-stopped",{timeoutId:a,millis:b.millis,seconds:b.seconds,minutes:b.minutes,hours:b.hours,days:b.days})},b.clear=c[0].clear=function(){b.stoppedTime=moment(),i(),b.timeoutId=null,b.isRunning=!1},b.reset=c[0].reset=function(){b.startTime=b.startTimeAttr?moment(b.startTimeAttr):moment(),b.endTime=b.endTimeAttr?moment(b.endTimeAttr):null,b.countdown=b.countdownattr&&parseInt(b.countdownattr,10)>0?parseInt(b.countdownattr,10):void 0,
+i(),l(),b.isRunning=!1,b.clear()},c.bind("$destroy",function(){i(),b.isRunning=!1}),b.countdownattr?(b.millis=1e3*b.countdownattr,b.addCDSeconds=c[0].addCDSeconds=function(a){b.countdown+=a,b.$digest(),b.isRunning||b.start()},b.$on("timer-add-cd-seconds",function(a,c){e(function(){b.addCDSeconds(c)})}),b.$on("timer-set-countdown-seconds",function(a,c){b.isRunning||b.clear(),b.countdown=c,b.millis=1e3*c,j()})):b.millis=0,j();var l=function m(){var a=null;b.millis=moment().diff(b.startTime);var c=b.millis%1e3;return b.endTimeAttr&&(a=b.endTimeAttr,b.millis=moment(b.endTime).diff(moment()),c=b.interval-b.millis%1e3),b.countdownattr&&(a=b.countdownattr,b.millis=1e3*b.countdown),b.millis<0?(b.stop(),b.millis=0,j(),void(b.finishCallback&&b.$eval(b.finishCallback))):(j(),b.timeoutId=setTimeout(function(){m(),b.$digest()},b.interval-c),b.$emit("timer-tick",{timeoutId:b.timeoutId,millis:b.millis}),b.countdown>0?b.countdown--:b.countdown<=0&&(b.stop(),b.finishCallback&&b.$eval(b.finishCallback)),void(null!==a&&(b.progressBar=h.calculateProgressBar(b.startTime,b.millis,b.endTime,b.countdownattr),100===b.progressBar&&(b.displayProgressActive=""))))};void 0!==b.autoStart&&b.autoStart!==!0||b.start()}]}}]);"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports=timerModule);var app=angular.module("timer");app.factory("I18nService",function(){var a=function(){};return a.prototype.language="en",a.prototype.fallback="en",a.prototype.timeHumanizer={},a.prototype.init=function(a,b){var c=humanizeDuration.getSupportedLanguages();this.fallback=void 0!==b?b:"en",-1===c.indexOf(b)&&(this.fallback="en"),this.language=a,-1===c.indexOf(a)&&(this.language=this.fallback),moment.locale(this.language),this.timeHumanizer=humanizeDuration.humanizer({language:this.language,halfUnit:!1})},a.prototype.getTimeUnits=function(a){var b=1e3*Math.round(a/1e3),c={};return"undefined"!=typeof this.timeHumanizer?c={millis:this.timeHumanizer(b,{units:["milliseconds"]}),seconds:this.timeHumanizer(b,{units:["seconds"]}),minutes:this.timeHumanizer(b,{units:["minutes","seconds"]}),hours:this.timeHumanizer(b,{units:["hours","minutes","seconds"]}),days:this.timeHumanizer(b,{units:["days","hours","minutes","seconds"]}),months:this.timeHumanizer(b,{units:["months","days","hours","minutes","seconds"]}),years:this.timeHumanizer(b,{units:["years","months","days","hours","minutes","seconds"]})}:console.error('i18nService has not been initialized. You must call i18nService.init("en") for example'),c},a});var app=angular.module("timer");app.factory("progressBarService",function(){var a=function(){};return a.prototype.calculateProgressBar=function(a,b,c,d){var e,f,g=0;return b/=1e3,null!==c?(e=moment(c),f=e.diff(a,"seconds"),g=100*b/f):g=100*b/d,g=100-g,g=Math.round(10*g)/10,g>100&&(g=100),g},new a}),function(){"use strict";function a(a,b){return a.module("angularMoment",[]).constant("angularMomentConfig",{preprocess:null,timezone:"",format:null,statefulFilters:!0}).constant("moment",b).constant("amTimeAgoConfig",{withoutSuffix:!1,serverTime:null,titleFormat:null,fullDateThreshold:null,fullDateFormat:null}).directive("amTimeAgo",["$window","moment","amMoment","amTimeAgoConfig","angularMomentConfig",function(b,c,d,e,f){return function(g,h,i){function j(){var a;if(p)a=p;else if(e.serverTime){var b=(new Date).getTime(),d=b-w+e.serverTime;a=c(d)}else a=c();return a}function k(){q&&(b.clearTimeout(q),q=null)}function l(a){var c=j().diff(a,"day"),d=u&&c>=u;if(d?h.text(a.format(v)):h.text(a.from(j(),s)),t&&!h.attr("title")&&h.attr("title",a.local().format(t)),!d){var e=Math.abs(j().diff(a,"minute")),f=3600;1>e?f=1:60>e?f=30:180>e&&(f=300),q=b.setTimeout(function(){l(a)},1e3*f)}}function m(a){z&&h.attr("datetime",a)}function n(){if(k(),o){var a=d.preprocessDate(o,x,r);l(a),m(a.toISOString())}}var o,p,q=null,r=f.format,s=e.withoutSuffix,t=e.titleFormat,u=e.fullDateThreshold,v=e.fullDateFormat,w=(new Date).getTime(),x=f.preprocess,y=i.amTimeAgo,z="TIME"===h[0].nodeName.toUpperCase();g.$watch(y,function(a){return"undefined"==typeof a||null===a||""===a?(k(),void(o&&(h.text(""),m(""),o=null))):(o=a,void n())}),a.isDefined(i.amFrom)&&g.$watch(i.amFrom,function(a){p="undefined"==typeof a||null===a||""===a?null:c(a),n()}),a.isDefined(i.amWithoutSuffix)&&g.$watch(i.amWithoutSuffix,function(a){"boolean"==typeof a?(s=a,n()):s=e.withoutSuffix}),i.$observe("amFormat",function(a){"undefined"!=typeof a&&(r=a,n())}),i.$observe("amPreprocess",function(a){x=a,n()}),i.$observe("amFullDateThreshold",function(a){u=a,n()}),i.$observe("amFullDateFormat",function(a){v=a,n()}),g.$on("$destroy",function(){k()}),g.$on("amMoment:localeChanged",function(){n()})}}]).service("amMoment",["moment","$rootScope","$log","angularMomentConfig",function(b,c,d,e){this.preprocessors={utc:b.utc,unix:b.unix},this.changeLocale=function(d,e){var f=b.locale(d,e);return a.isDefined(d)&&c.$broadcast("amMoment:localeChanged"),f},this.changeTimezone=function(a){e.timezone=a,c.$broadcast("amMoment:timezoneChanged")},this.preprocessDate=function(c,f,g){return a.isUndefined(f)&&(f=e.preprocess),this.preprocessors[f]?this.preprocessors[f](c,g):(f&&d.warn("angular-moment: Ignoring unsupported value for preprocess: "+f),!isNaN(parseFloat(c))&&isFinite(c)?b(parseInt(c,10)):b(c,g))},this.applyTimezone=function(a,b){return(b=b||e.timezone)?(b.match(/^Z|[+-]\d\d:?\d\d$/i)?a=a.utcOffset(b):a.tz?a=a.tz(b):d.warn("angular-moment: named timezone specified but moment.tz() is undefined. Did you forget to include moment-timezone.js?"),a):a}}]).filter("amCalendar",["moment","amMoment","angularMomentConfig",function(a,b,c){function d(c,d,e){if("undefined"==typeof c||null===c)return"";c=b.preprocessDate(c,d);var f=a(c);return f.isValid()?b.applyTimezone(f,e).calendar():""}return d.$stateful=c.statefulFilters,d}]).filter("amDifference",["moment","amMoment","angularMomentConfig",function(a,b,c){function d(c,d,e,f,g,h){if("undefined"==typeof c||null===c)return"";c=b.preprocessDate(c,g);var i=a(c);if(!i.isValid())return"";var j;if("undefined"==typeof d||null===d)j=a();else if(d=b.preprocessDate(d,h),j=a(d),!j.isValid())return"";return b.applyTimezone(i).diff(b.applyTimezone(j),e,f)}return d.$stateful=c.statefulFilters,d}]).filter("amDateFormat",["moment","amMoment","angularMomentConfig",function(a,b,c){function d(d,e,f,g,h){var i=h||c.format;if("undefined"==typeof d||null===d)return"";d=b.preprocessDate(d,f,i);var j=a(d);return j.isValid()?b.applyTimezone(j,g).format(e):""}return d.$stateful=c.statefulFilters,d}]).filter("amDurationFormat",["moment","angularMomentConfig",function(a,b){function c(b,c,d){return"undefined"==typeof b||null===b?"":a.duration(b,c).humanize(d)}return c.$stateful=b.statefulFilters,c}]).filter("amTimeAgo",["moment","amMoment","angularMomentConfig",function(a,b,c){function d(c,d,e,f){var g,h;return"undefined"==typeof c||null===c?"":(c=b.preprocessDate(c,d),g=a(c),g.isValid()?(h=a(f),"undefined"!=typeof f&&h.isValid()?b.applyTimezone(g).from(h,e):b.applyTimezone(g).fromNow(e)):"")}return d.$stateful=c.statefulFilters,d}]).filter("amSubtract",["moment","angularMomentConfig",function(a,b){function c(b,c,d){return"undefined"==typeof b||null===b?"":a(b).subtract(parseInt(c,10),d)}return c.$stateful=b.statefulFilters,c}]).filter("amAdd",["moment","angularMomentConfig",function(a,b){function c(b,c,d){return"undefined"==typeof b||null===b?"":a(b).add(parseInt(c,10),d)}return c.$stateful=b.statefulFilters,c}])}"function"==typeof define&&define.amd?define(["angular","moment"],a):"undefined"!=typeof module&&module&&module.exports?(a(angular,require("moment")),module.exports="angularMoment"):a(angular,("undefined"!=typeof global?global:window).moment)}(),function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.io=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){b.exports=a("./lib/")},{"./lib/":2}],2:[function(a,b,c){b.exports=a("./socket"),b.exports.parser=a("engine.io-parser")},{"./socket":3,"engine.io-parser":19}],3:[function(a,b,c){(function(c){function d(a,b){if(!(this instanceof d))return new d(a,b);b=b||{},a&&"object"==typeof a&&(b=a,a=null),a?(a=k(a),b.hostname=a.host,b.secure="https"==a.protocol||"wss"==a.protocol,b.port=a.port,a.query&&(b.query=a.query)):b.host&&(b.hostname=k(b.host).host),this.secure=null!=b.secure?b.secure:c.location&&"https:"==location.protocol,b.hostname&&!b.port&&(b.port=this.secure?"443":"80"),this.agent=b.agent||!1,this.hostname=b.hostname||(c.location?location.hostname:"localhost"),this.port=b.port||(c.location&&location.port?location.port:this.secure?443:80),this.query=b.query||{},"string"==typeof this.query&&(this.query=m.decode(this.query)),this.upgrade=!1!==b.upgrade,this.path=(b.path||"/engine.io").replace(/\/$/,"")+"/",this.forceJSONP=!!b.forceJSONP,this.jsonp=!1!==b.jsonp,this.forceBase64=!!b.forceBase64,this.enablesXDR=!!b.enablesXDR,this.timestampParam=b.timestampParam||"t",this.timestampRequests=b.timestampRequests,this.transports=b.transports||["polling","websocket"],this.readyState="",this.writeBuffer=[],this.policyPort=b.policyPort||843,this.rememberUpgrade=b.rememberUpgrade||!1,this.binaryType=null,this.onlyBinaryUpgrades=b.onlyBinaryUpgrades,this.perMessageDeflate=!1!==b.perMessageDeflate?b.perMessageDeflate||{}:!1,!0===this.perMessageDeflate&&(this.perMessageDeflate={}),this.perMessageDeflate&&null==this.perMessageDeflate.threshold&&(this.perMessageDeflate.threshold=1024),this.pfx=b.pfx||null,this.key=b.key||null,this.passphrase=b.passphrase||null,this.cert=b.cert||null,this.ca=b.ca||null,this.ciphers=b.ciphers||null,this.rejectUnauthorized=void 0===b.rejectUnauthorized?null:b.rejectUnauthorized;var e="object"==typeof c&&c;e.global===e&&b.extraHeaders&&Object.keys(b.extraHeaders).length>0&&(this.extraHeaders=b.extraHeaders),this.open()}function e(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}var f=a("./transports"),g=a("component-emitter"),h=a("debug")("engine.io-client:socket"),i=a("indexof"),j=a("engine.io-parser"),k=a("parseuri"),l=a("parsejson"),m=a("parseqs");b.exports=d,d.priorWebsocketSuccess=!1,g(d.prototype),d.protocol=j.protocol,d.Socket=d,d.Transport=a("./transport"),d.transports=a("./transports"),d.parser=a("engine.io-parser"),d.prototype.createTransport=function(a){h('creating transport "%s"',a);var b=e(this.query);b.EIO=j.protocol,b.transport=a,this.id&&(b.sid=this.id);var c=new f[a]({agent:this.agent,hostname:this.hostname,port:this.port,secure:this.secure,path:this.path,query:b,forceJSONP:this.forceJSONP,jsonp:this.jsonp,forceBase64:this.forceBase64,enablesXDR:this.enablesXDR,timestampRequests:this.timestampRequests,timestampParam:this.timestampParam,policyPort:this.policyPort,socket:this,pfx:this.pfx,key:this.key,passphrase:this.passphrase,cert:this.cert,ca:this.ca,ciphers:this.ciphers,rejectUnauthorized:this.rejectUnauthorized,perMessageDeflate:this.perMessageDeflate,extraHeaders:this.extraHeaders});return c},d.prototype.open=function(){var a;if(this.rememberUpgrade&&d.priorWebsocketSuccess&&-1!=this.transports.indexOf("websocket"))a="websocket";else{if(0===this.transports.length){var b=this;return void setTimeout(function(){b.emit("error","No transports available")},0)}a=this.transports[0]}this.readyState="opening";try{a=this.createTransport(a)}catch(c){return this.transports.shift(),void this.open()}a.open(),this.setTransport(a)},d.prototype.setTransport=function(a){h("setting transport %s",a.name);var b=this;this.transport&&(h("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=a,a.on("drain",function(){b.onDrain()}).on("packet",function(a){b.onPacket(a)}).on("error",function(a){b.onError(a)}).on("close",function(){b.onClose("transport close")})},d.prototype.probe=function(a){function b(){if(m.onlyBinaryUpgrades){var b=!this.supportsBinary&&m.transport.supportsBinary;l=l||b}l||(h('probe transport "%s" opened',a),k.send([{type:"ping",data:"probe"}]),k.once("packet",function(b){if(!l)if("pong"==b.type&&"probe"==b.data){if(h('probe transport "%s" pong',a),m.upgrading=!0,m.emit("upgrading",k),!k)return;d.priorWebsocketSuccess="websocket"==k.name,h('pausing current transport "%s"',m.transport.name),m.transport.pause(function(){l||"closed"!=m.readyState&&(h("changing transport and sending upgrade packet"),j(),m.setTransport(k),k.send([{type:"upgrade"}]),m.emit("upgrade",k),k=null,m.upgrading=!1,m.flush())})}else{h('probe transport "%s" failed',a);var c=new Error("probe error");c.transport=k.name,m.emit("upgradeError",c)}}))}function c(){l||(l=!0,j(),k.close(),k=null)}function e(b){var d=new Error("probe error: "+b);d.transport=k.name,c(),h('probe transport "%s" failed because of error: %s',a,b),m.emit("upgradeError",d)}function f(){e("transport closed")}function g(){e("socket closed")}function i(a){k&&a.name!=k.name&&(h('"%s" works - aborting "%s"',a.name,k.name),c())}function j(){k.removeListener("open",b),k.removeListener("error",e),k.removeListener("close",f),m.removeListener("close",g),m.removeListener("upgrading",i)}h('probing transport "%s"',a);var k=this.createTransport(a,{probe:1}),l=!1,m=this;d.priorWebsocketSuccess=!1,k.once("open",b),k.once("error",e),k.once("close",f),this.once("close",g),this.once("upgrading",i),k.open()},d.prototype.onOpen=function(){if(h("socket open"),this.readyState="open",d.priorWebsocketSuccess="websocket"==this.transport.name,this.emit("open"),this.flush(),"open"==this.readyState&&this.upgrade&&this.transport.pause){h("starting upgrade probes");for(var a=0,b=this.upgrades.length;b>a;a++)this.probe(this.upgrades[a])}},d.prototype.onPacket=function(a){if("opening"==this.readyState||"open"==this.readyState)switch(h('socket receive: type "%s", data "%s"',a.type,a.data),this.emit("packet",a),this.emit("heartbeat"),a.type){case"open":this.onHandshake(l(a.data));break;case"pong":this.setPing(),this.emit("pong");break;case"error":var b=new Error("server error");b.code=a.data,this.onError(b);break;case"message":this.emit("data",a.data),this.emit("message",a.data)}else h('packet received with socket readyState "%s"',this.readyState)},d.prototype.onHandshake=function(a){this.emit("handshake",a),this.id=a.sid,this.transport.query.sid=a.sid,this.upgrades=this.filterUpgrades(a.upgrades),this.pingInterval=a.pingInterval,this.pingTimeout=a.pingTimeout,this.onOpen(),"closed"!=this.readyState&&(this.setPing(),this.removeListener("heartbeat",this.onHeartbeat),this.on("heartbeat",this.onHeartbeat))},d.prototype.onHeartbeat=function(a){clearTimeout(this.pingTimeoutTimer);var b=this;b.pingTimeoutTimer=setTimeout(function(){"closed"!=b.readyState&&b.onClose("ping timeout")},a||b.pingInterval+b.pingTimeout)},d.prototype.setPing=function(){var a=this;clearTimeout(a.pingIntervalTimer),a.pingIntervalTimer=setTimeout(function(){h("writing ping packet - expecting pong within %sms",a.pingTimeout),a.ping(),a.onHeartbeat(a.pingTimeout)},a.pingInterval)},d.prototype.ping=function(){var a=this;this.sendPacket("ping",function(){a.emit("ping")})},d.prototype.onDrain=function(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emit("drain"):this.flush()},d.prototype.flush=function(){"closed"!=this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(h("flushing %d packets in socket",this.writeBuffer.length),this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emit("flush"))},d.prototype.write=d.prototype.send=function(a,b,c){return this.sendPacket("message",a,b,c),this},d.prototype.sendPacket=function(a,b,c,d){if("function"==typeof b&&(d=b,b=void 0),"function"==typeof c&&(d=c,c=null),"closing"!=this.readyState&&"closed"!=this.readyState){c=c||{},c.compress=!1!==c.compress;var e={type:a,data:b,options:c};this.emit("packetCreate",e),this.writeBuffer.push(e),d&&this.once("flush",d),this.flush()}},d.prototype.close=function(){function a(){d.onClose("forced close"),h("socket closing - telling transport to close"),d.transport.close()}function b(){d.removeListener("upgrade",b),d.removeListener("upgradeError",b),a()}function c(){d.once("upgrade",b),d.once("upgradeError",b)}if("opening"==this.readyState||"open"==this.readyState){this.readyState="closing";var d=this;this.writeBuffer.length?this.once("drain",function(){this.upgrading?c():a()}):this.upgrading?c():a()}return this},d.prototype.onError=function(a){h("socket error %j",a),d.priorWebsocketSuccess=!1,this.emit("error",a),this.onClose("transport error",a)},d.prototype.onClose=function(a,b){if("opening"==this.readyState||"open"==this.readyState||"closing"==this.readyState){h('socket close with reason: "%s"',a);var c=this;clearTimeout(this.pingIntervalTimer),clearTimeout(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),this.readyState="closed",this.id=null,this.emit("close",a,b),c.writeBuffer=[],c.prevBufferLen=0}},d.prototype.filterUpgrades=function(a){for(var b=[],c=0,d=a.length;d>c;c++)~i(this.transports,a[c])&&b.push(a[c]);return b}}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{"./transport":4,"./transports":5,"component-emitter":15,debug:17,"engine.io-parser":19,indexof:23,parsejson:26,parseqs:27,parseuri:28}],4:[function(a,b,c){function d(a){this.path=a.path,this.hostname=a.hostname,this.port=a.port,this.secure=a.secure,this.query=a.query,this.timestampParam=a.timestampParam,this.timestampRequests=a.timestampRequests,this.readyState="",this.agent=a.agent||!1,this.socket=a.socket,this.enablesXDR=a.enablesXDR,this.pfx=a.pfx,this.key=a.key,this.passphrase=a.passphrase,this.cert=a.cert,this.ca=a.ca,this.ciphers=a.ciphers,this.rejectUnauthorized=a.rejectUnauthorized,this.extraHeaders=a.extraHeaders}var e=a("engine.io-parser"),f=a("component-emitter");b.exports=d,f(d.prototype),d.prototype.onError=function(a,b){var c=new Error(a);return c.type="TransportError",c.description=b,this.emit("error",c),this},d.prototype.open=function(){return"closed"!=this.readyState&&""!=this.readyState||(this.readyState="opening",this.doOpen()),this},d.prototype.close=function(){return"opening"!=this.readyState&&"open"!=this.readyState||(this.doClose(),this.onClose()),this},d.prototype.send=function(a){if("open"!=this.readyState)throw new Error("Transport not open");this.write(a)},d.prototype.onOpen=function(){this.readyState="open",this.writable=!0,this.emit("open")},d.prototype.onData=function(a){var b=e.decodePacket(a,this.socket.binaryType);this.onPacket(b)},d.prototype.onPacket=function(a){this.emit("packet",a)},d.prototype.onClose=function(){this.readyState="closed",this.emit("close")}},{"component-emitter":15,"engine.io-parser":19}],5:[function(a,b,c){(function(b){function d(a){var c,d=!1,h=!1,i=!1!==a.jsonp;if(b.location){var j="https:"==location.protocol,k=location.port;k||(k=j?443:80),d=a.hostname!=location.hostname||k!=a.port,h=a.secure!=j}if(a.xdomain=d,a.xscheme=h,c=new e(a),"open"in c&&!a.forceJSONP)return new f(a);if(!i)throw new Error("JSONP disabled");return new g(a)}var e=a("xmlhttprequest-ssl"),f=a("./polling-xhr"),g=a("./polling-jsonp"),h=a("./websocket");c.polling=d,c.websocket=h}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{"./polling-jsonp":6,"./polling-xhr":7,"./websocket":9,"xmlhttprequest-ssl":10}],6:[function(a,b,c){(function(c){function d(){}function e(a){f.call(this,a),this.query=this.query||{},h||(c.___eio||(c.___eio=[]),h=c.___eio),this.index=h.length;var b=this;h.push(function(a){b.onData(a)}),this.query.j=this.index,c.document&&c.addEventListener&&c.addEventListener("beforeunload",function(){b.script&&(b.script.onerror=d)},!1)}var f=a("./polling"),g=a("component-inherit");b.exports=e;var h,i=/\n/g,j=/\\n/g;g(e,f),e.prototype.supportsBinary=!1,e.prototype.doClose=function(){this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),this.form&&(this.form.parentNode.removeChild(this.form),this.form=null,this.iframe=null),f.prototype.doClose.call(this)},e.prototype.doPoll=function(){var a=this,b=document.createElement("script");this.script&&(this.script.parentNode.removeChild(this.script),this.script=null),b.async=!0,b.src=this.uri(),b.onerror=function(b){a.onError("jsonp poll error",b)};var c=document.getElementsByTagName("script")[0];c?c.parentNode.insertBefore(b,c):(document.head||document.body).appendChild(b),this.script=b;var d="undefined"!=typeof navigator&&/gecko/i.test(navigator.userAgent);d&&setTimeout(function(){var a=document.createElement("iframe");document.body.appendChild(a),document.body.removeChild(a)},100)},e.prototype.doWrite=function(a,b){function c(){d(),b()}function d(){if(e.iframe)try{e.form.removeChild(e.iframe)}catch(a){e.onError("jsonp polling iframe removal error",a)}try{var b='<iframe src="javascript:0" name="'+e.iframeId+'">';f=document.createElement(b)}catch(a){f=document.createElement("iframe"),f.name=e.iframeId,f.src="javascript:0"}f.id=e.iframeId,e.form.appendChild(f),e.iframe=f}var e=this;if(!this.form){var f,g=document.createElement("form"),h=document.createElement("textarea"),k=this.iframeId="eio_iframe_"+this.index;g.className="socketio",g.style.position="absolute",g.style.top="-1000px",g.style.left="-1000px",g.target=k,g.method="POST",g.setAttribute("accept-charset","utf-8"),h.name="d",g.appendChild(h),document.body.appendChild(g),this.form=g,this.area=h}this.form.action=this.uri(),d(),a=a.replace(j,"\\\n"),this.area.value=a.replace(i,"\\n");try{this.form.submit()}catch(l){}this.iframe.attachEvent?this.iframe.onreadystatechange=function(){"complete"==e.iframe.readyState&&c()}:this.iframe.onload=c}}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{"./polling":8,"component-inherit":16}],7:[function(a,b,c){(function(c){function d(){}function e(a){if(i.call(this,a),c.location){var b="https:"==location.protocol,d=location.port;d||(d=b?443:80),this.xd=a.hostname!=c.location.hostname||d!=a.port,this.xs=a.secure!=b}else this.extraHeaders=a.extraHeaders}function f(a){this.method=a.method||"GET",this.uri=a.uri,this.xd=!!a.xd,this.xs=!!a.xs,this.async=!1!==a.async,this.data=void 0!=a.data?a.data:null,this.agent=a.agent,this.isBinary=a.isBinary,this.supportsBinary=a.supportsBinary,this.enablesXDR=a.enablesXDR,this.pfx=a.pfx,this.key=a.key,this.passphrase=a.passphrase,this.cert=a.cert,this.ca=a.ca,this.ciphers=a.ciphers,this.rejectUnauthorized=a.rejectUnauthorized,this.extraHeaders=a.extraHeaders,this.create()}function g(){for(var a in f.requests)f.requests.hasOwnProperty(a)&&f.requests[a].abort()}var h=a("xmlhttprequest-ssl"),i=a("./polling"),j=a("component-emitter"),k=a("component-inherit"),l=a("debug")("engine.io-client:polling-xhr");b.exports=e,b.exports.Request=f,k(e,i),e.prototype.supportsBinary=!0,e.prototype.request=function(a){return a=a||{},a.uri=this.uri(),a.xd=this.xd,a.xs=this.xs,a.agent=this.agent||!1,a.supportsBinary=this.supportsBinary,a.enablesXDR=this.enablesXDR,a.pfx=this.pfx,a.key=this.key,a.passphrase=this.passphrase,a.cert=this.cert,a.ca=this.ca,a.ciphers=this.ciphers,a.rejectUnauthorized=this.rejectUnauthorized,a.extraHeaders=this.extraHeaders,new f(a)},e.prototype.doWrite=function(a,b){var c="string"!=typeof a&&void 0!==a,d=this.request({method:"POST",data:a,isBinary:c}),e=this;d.on("success",b),d.on("error",function(a){e.onError("xhr post error",a)}),this.sendXhr=d},e.prototype.doPoll=function(){l("xhr poll");var a=this.request(),b=this;a.on("data",function(a){b.onData(a)}),a.on("error",function(a){b.onError("xhr poll error",a)}),this.pollXhr=a},j(f.prototype),f.prototype.create=function(){var a={agent:this.agent,xdomain:this.xd,xscheme:this.xs,enablesXDR:this.enablesXDR};a.pfx=this.pfx,a.key=this.key,a.passphrase=this.passphrase,a.cert=this.cert,a.ca=this.ca,a.ciphers=this.ciphers,a.rejectUnauthorized=this.rejectUnauthorized;var b=this.xhr=new h(a),d=this;try{l("xhr open %s: %s",this.method,this.uri),b.open(this.method,this.uri,this.async);try{if(this.extraHeaders){b.setDisableHeaderCheck(!0);for(var e in this.extraHeaders)this.extraHeaders.hasOwnProperty(e)&&b.setRequestHeader(e,this.extraHeaders[e])}}catch(g){}if(this.supportsBinary&&(b.responseType="arraybuffer"),"POST"==this.method)try{this.isBinary?b.setRequestHeader("Content-type","application/octet-stream"):b.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(g){}"withCredentials"in b&&(b.withCredentials=!0),this.hasXDR()?(b.onload=function(){d.onLoad()},b.onerror=function(){d.onError(b.responseText)}):b.onreadystatechange=function(){4==b.readyState&&(200==b.status||1223==b.status?d.onLoad():setTimeout(function(){d.onError(b.status)},0))},l("xhr data %s",this.data),b.send(this.data)}catch(g){return void setTimeout(function(){d.onError(g)},0)}c.document&&(this.index=f.requestsCount++,f.requests[this.index]=this)},f.prototype.onSuccess=function(){this.emit("success"),this.cleanup()},f.prototype.onData=function(a){this.emit("data",a),this.onSuccess()},f.prototype.onError=function(a){this.emit("error",a),this.cleanup(!0)},f.prototype.cleanup=function(a){if("undefined"!=typeof this.xhr&&null!==this.xhr){if(this.hasXDR()?this.xhr.onload=this.xhr.onerror=d:this.xhr.onreadystatechange=d,a)try{this.xhr.abort()}catch(b){}c.document&&delete f.requests[this.index],this.xhr=null}},f.prototype.onLoad=function(){var a;try{var b;try{b=this.xhr.getResponseHeader("Content-Type").split(";")[0]}catch(c){}if("application/octet-stream"===b)a=this.xhr.response;else if(this.supportsBinary)try{a=String.fromCharCode.apply(null,new Uint8Array(this.xhr.response))}catch(c){for(var d=new Uint8Array(this.xhr.response),e=[],f=0,g=d.length;g>f;f++)e.push(d[f]);a=String.fromCharCode.apply(null,e)}else a=this.xhr.responseText}catch(c){this.onError(c)}null!=a&&this.onData(a)},f.prototype.hasXDR=function(){return"undefined"!=typeof c.XDomainRequest&&!this.xs&&this.enablesXDR},f.prototype.abort=function(){this.cleanup()},c.document&&(f.requestsCount=0,f.requests={},c.attachEvent?c.attachEvent("onunload",g):c.addEventListener&&c.addEventListener("beforeunload",g,!1))}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{"./polling":8,"component-emitter":15,"component-inherit":16,debug:17,"xmlhttprequest-ssl":10}],8:[function(a,b,c){function d(a){var b=a&&a.forceBase64;k&&!b||(this.supportsBinary=!1),e.call(this,a)}var e=a("../transport"),f=a("parseqs"),g=a("engine.io-parser"),h=a("component-inherit"),i=a("yeast"),j=a("debug")("engine.io-client:polling");b.exports=d;var k=function(){var b=a("xmlhttprequest-ssl"),c=new b({xdomain:!1});return null!=c.responseType}();h(d,e),d.prototype.name="polling",d.prototype.doOpen=function(){this.poll()},d.prototype.pause=function(a){function b(){j("paused"),c.readyState="paused",a()}var c=this;if(this.readyState="pausing",this.polling||!this.writable){var d=0;this.polling&&(j("we are currently polling - waiting to pause"),d++,this.once("pollComplete",function(){j("pre-pause polling complete"),--d||b()})),this.writable||(j("we are currently writing - waiting to pause"),d++,this.once("drain",function(){j("pre-pause writing complete"),--d||b()}))}else b()},d.prototype.poll=function(){j("polling"),this.polling=!0,this.doPoll(),this.emit("poll")},d.prototype.onData=function(a){var b=this;j("polling got data %s",a);var c=function(a,c,d){return"opening"==b.readyState&&b.onOpen(),"close"==a.type?(b.onClose(),!1):void b.onPacket(a)};g.decodePayload(a,this.socket.binaryType,c),"closed"!=this.readyState&&(this.polling=!1,this.emit("pollComplete"),"open"==this.readyState?this.poll():j('ignoring poll - transport state "%s"',this.readyState))},d.prototype.doClose=function(){function a(){j("writing close packet"),b.write([{type:"close"}])}var b=this;"open"==this.readyState?(j("transport open - closing"),a()):(j("transport not open - deferring close"),this.once("open",a))},d.prototype.write=function(a){var b=this;this.writable=!1;var c=function(){b.writable=!0,b.emit("drain")},b=this;g.encodePayload(a,this.supportsBinary,function(a){b.doWrite(a,c)})},d.prototype.uri=function(){var a=this.query||{},b=this.secure?"https":"http",c="";!1!==this.timestampRequests&&(a[this.timestampParam]=i()),this.supportsBinary||a.sid||(a.b64=1),a=f.encode(a),this.port&&("https"==b&&443!=this.port||"http"==b&&80!=this.port)&&(c=":"+this.port),a.length&&(a="?"+a);var d=-1!==this.hostname.indexOf(":");return b+"://"+(d?"["+this.hostname+"]":this.hostname)+c+this.path+a}},{"../transport":4,"component-inherit":16,debug:17,"engine.io-parser":19,parseqs:27,"xmlhttprequest-ssl":10,yeast:30}],9:[function(a,b,c){(function(c){function d(a){var b=a&&a.forceBase64;b&&(this.supportsBinary=!1),this.perMessageDeflate=a.perMessageDeflate,e.call(this,a)}var e=a("../transport"),f=a("engine.io-parser"),g=a("parseqs"),h=a("component-inherit"),i=a("yeast"),j=a("debug")("engine.io-client:websocket"),k=c.WebSocket||c.MozWebSocket,l=k;if(!l&&"undefined"==typeof window)try{l=a("ws")}catch(m){}b.exports=d,h(d,e),d.prototype.name="websocket",d.prototype.supportsBinary=!0,d.prototype.doOpen=function(){if(this.check()){var a=this.uri(),b=void 0,c={agent:this.agent,perMessageDeflate:this.perMessageDeflate};c.pfx=this.pfx,c.key=this.key,c.passphrase=this.passphrase,c.cert=this.cert,c.ca=this.ca,c.ciphers=this.ciphers,c.rejectUnauthorized=this.rejectUnauthorized,this.extraHeaders&&(c.headers=this.extraHeaders),this.ws=k?new l(a):new l(a,b,c),void 0===this.ws.binaryType&&(this.supportsBinary=!1),this.ws.supports&&this.ws.supports.binary?(this.supportsBinary=!0,this.ws.binaryType="buffer"):this.ws.binaryType="arraybuffer",this.addEventListeners()}},d.prototype.addEventListeners=function(){var a=this;this.ws.onopen=function(){a.onOpen()},this.ws.onclose=function(){a.onClose()},this.ws.onmessage=function(b){a.onData(b.data)},this.ws.onerror=function(b){a.onError("websocket error",b)}},"undefined"!=typeof navigator&&/iPad|iPhone|iPod/i.test(navigator.userAgent)&&(d.prototype.onData=function(a){var b=this;setTimeout(function(){e.prototype.onData.call(b,a)},0)}),d.prototype.write=function(a){function b(){d.emit("flush"),setTimeout(function(){d.writable=!0,d.emit("drain")},0)}var d=this;this.writable=!1;for(var e=a.length,g=0,h=e;h>g;g++)!function(a){f.encodePacket(a,d.supportsBinary,function(f){if(!k){var g={};if(a.options&&(g.compress=a.options.compress),d.perMessageDeflate){var h="string"==typeof f?c.Buffer.byteLength(f):f.length;h<d.perMessageDeflate.threshold&&(g.compress=!1)}}try{k?d.ws.send(f):d.ws.send(f,g)}catch(i){j("websocket closed before onclose event")}--e||b()})}(a[g])},d.prototype.onClose=function(){e.prototype.onClose.call(this)},d.prototype.doClose=function(){"undefined"!=typeof this.ws&&this.ws.close()},d.prototype.uri=function(){var a=this.query||{},b=this.secure?"wss":"ws",c="";this.port&&("wss"==b&&443!=this.port||"ws"==b&&80!=this.port)&&(c=":"+this.port),this.timestampRequests&&(a[this.timestampParam]=i()),this.supportsBinary||(a.b64=1),a=g.encode(a),a.length&&(a="?"+a);var d=-1!==this.hostname.indexOf(":");return b+"://"+(d?"["+this.hostname+"]":this.hostname)+c+this.path+a},d.prototype.check=function(){return!(!l||"__initialize"in l&&this.name===d.prototype.name)}}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{});
+},{"../transport":4,"component-inherit":16,debug:17,"engine.io-parser":19,parseqs:27,ws:void 0,yeast:30}],10:[function(a,b,c){var d=a("has-cors");b.exports=function(a){var b=a.xdomain,c=a.xscheme,e=a.enablesXDR;try{if("undefined"!=typeof XMLHttpRequest&&(!b||d))return new XMLHttpRequest}catch(f){}try{if("undefined"!=typeof XDomainRequest&&!c&&e)return new XDomainRequest}catch(f){}if(!b)try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(f){}}},{"has-cors":22}],11:[function(a,b,c){function d(a,b,c){function d(a,e){if(d.count<=0)throw new Error("after called too many times");--d.count,a?(f=!0,b(a),b=c):0!==d.count||f||b(null,e)}var f=!1;return c=c||e,d.count=a,0===a?b():d}function e(){}b.exports=d},{}],12:[function(a,b,c){b.exports=function(a,b,c){var d=a.byteLength;if(b=b||0,c=c||d,a.slice)return a.slice(b,c);if(0>b&&(b+=d),0>c&&(c+=d),c>d&&(c=d),b>=d||b>=c||0===d)return new ArrayBuffer(0);for(var e=new Uint8Array(a),f=new Uint8Array(c-b),g=b,h=0;c>g;g++,h++)f[h]=e[g];return f.buffer}},{}],13:[function(a,b,c){!function(a){"use strict";c.encode=function(b){var c,d=new Uint8Array(b),e=d.length,f="";for(c=0;e>c;c+=3)f+=a[d[c]>>2],f+=a[(3&d[c])<<4|d[c+1]>>4],f+=a[(15&d[c+1])<<2|d[c+2]>>6],f+=a[63&d[c+2]];return e%3===2?f=f.substring(0,f.length-1)+"=":e%3===1&&(f=f.substring(0,f.length-2)+"=="),f},c.decode=function(b){var c,d,e,f,g,h=.75*b.length,i=b.length,j=0;"="===b[b.length-1]&&(h--,"="===b[b.length-2]&&h--);var k=new ArrayBuffer(h),l=new Uint8Array(k);for(c=0;i>c;c+=4)d=a.indexOf(b[c]),e=a.indexOf(b[c+1]),f=a.indexOf(b[c+2]),g=a.indexOf(b[c+3]),l[j++]=d<<2|e>>4,l[j++]=(15&e)<<4|f>>2,l[j++]=(3&f)<<6|63&g;return k}}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")},{}],14:[function(a,b,c){(function(a){function c(a){for(var b=0;b<a.length;b++){var c=a[b];if(c.buffer instanceof ArrayBuffer){var d=c.buffer;if(c.byteLength!==d.byteLength){var e=new Uint8Array(c.byteLength);e.set(new Uint8Array(d,c.byteOffset,c.byteLength)),d=e.buffer}a[b]=d}}}function d(a,b){b=b||{};var d=new f;c(a);for(var e=0;e<a.length;e++)d.append(a[e]);return b.type?d.getBlob(b.type):d.getBlob()}function e(a,b){return c(a),new Blob(a,b||{})}var f=a.BlobBuilder||a.WebKitBlobBuilder||a.MSBlobBuilder||a.MozBlobBuilder,g=function(){try{var a=new Blob(["hi"]);return 2===a.size}catch(b){return!1}}(),h=g&&function(){try{var a=new Blob([new Uint8Array([1,2])]);return 2===a.size}catch(b){return!1}}(),i=f&&f.prototype.append&&f.prototype.getBlob;b.exports=function(){return g?h?a.Blob:e:i?d:void 0}()}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{}],15:[function(a,b,c){function d(a){return a?e(a):void 0}function e(a){for(var b in d.prototype)a[b]=d.prototype[b];return a}b.exports=d,d.prototype.on=d.prototype.addEventListener=function(a,b){return this._callbacks=this._callbacks||{},(this._callbacks[a]=this._callbacks[a]||[]).push(b),this},d.prototype.once=function(a,b){function c(){d.off(a,c),b.apply(this,arguments)}var d=this;return this._callbacks=this._callbacks||{},c.fn=b,this.on(a,c),this},d.prototype.off=d.prototype.removeListener=d.prototype.removeAllListeners=d.prototype.removeEventListener=function(a,b){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var c=this._callbacks[a];if(!c)return this;if(1==arguments.length)return delete this._callbacks[a],this;for(var d,e=0;e<c.length;e++)if(d=c[e],d===b||d.fn===b){c.splice(e,1);break}return this},d.prototype.emit=function(a){this._callbacks=this._callbacks||{};var b=[].slice.call(arguments,1),c=this._callbacks[a];if(c){c=c.slice(0);for(var d=0,e=c.length;e>d;++d)c[d].apply(this,b)}return this},d.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks[a]||[]},d.prototype.hasListeners=function(a){return!!this.listeners(a).length}},{}],16:[function(a,b,c){b.exports=function(a,b){var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},{}],17:[function(a,b,c){function d(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}function e(){var a=arguments,b=this.useColors;if(a[0]=(b?"%c":"")+this.namespace+(b?" %c":" ")+a[0]+(b?"%c ":" ")+"+"+c.humanize(this.diff),!b)return a;var d="color: "+this.color;a=[a[0],d,"color: inherit"].concat(Array.prototype.slice.call(a,1));var e=0,f=0;return a[0].replace(/%[a-z%]/g,function(a){"%%"!==a&&(e++,"%c"===a&&(f=e))}),a.splice(f,0,d),a}function f(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function g(a){try{null==a?c.storage.removeItem("debug"):c.storage.debug=a}catch(b){}}function h(){var a;try{a=c.storage.debug}catch(b){}return a}function i(){try{return window.localStorage}catch(a){}}c=b.exports=a("./debug"),c.log=f,c.formatArgs=e,c.save=g,c.load=h,c.useColors=d,c.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:i(),c.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],c.formatters.j=function(a){return JSON.stringify(a)},c.enable(h())},{"./debug":18}],18:[function(a,b,c){function d(){return c.colors[k++%c.colors.length]}function e(a){function b(){}function e(){var a=e,b=+new Date,f=b-(j||b);a.diff=f,a.prev=j,a.curr=b,j=b,null==a.useColors&&(a.useColors=c.useColors()),null==a.color&&a.useColors&&(a.color=d());var g=Array.prototype.slice.call(arguments);g[0]=c.coerce(g[0]),"string"!=typeof g[0]&&(g=["%o"].concat(g));var h=0;g[0]=g[0].replace(/%([a-z%])/g,function(b,d){if("%%"===b)return b;h++;var e=c.formatters[d];if("function"==typeof e){var f=g[h];b=e.call(a,f),g.splice(h,1),h--}return b}),"function"==typeof c.formatArgs&&(g=c.formatArgs.apply(a,g));var i=e.log||c.log||console.log.bind(console);i.apply(a,g)}b.enabled=!1,e.enabled=!0;var f=c.enabled(a)?e:b;return f.namespace=a,f}function f(a){c.save(a);for(var b=(a||"").split(/[\s,]+/),d=b.length,e=0;d>e;e++)b[e]&&(a=b[e].replace(/\*/g,".*?"),"-"===a[0]?c.skips.push(new RegExp("^"+a.substr(1)+"$")):c.names.push(new RegExp("^"+a+"$")))}function g(){c.enable("")}function h(a){var b,d;for(b=0,d=c.skips.length;d>b;b++)if(c.skips[b].test(a))return!1;for(b=0,d=c.names.length;d>b;b++)if(c.names[b].test(a))return!0;return!1}function i(a){return a instanceof Error?a.stack||a.message:a}c=b.exports=e,c.coerce=i,c.disable=g,c.enable=f,c.enabled=h,c.humanize=a("ms"),c.names=[],c.skips=[],c.formatters={};var j,k=0},{ms:25}],19:[function(a,b,c){(function(b){function d(a,b){var d="b"+c.packets[a.type]+a.data.data;return b(d)}function e(a,b,d){if(!b)return c.encodeBase64Packet(a,d);var e=a.data,f=new Uint8Array(e),g=new Uint8Array(1+e.byteLength);g[0]=r[a.type];for(var h=0;h<f.length;h++)g[h+1]=f[h];return d(g.buffer)}function f(a,b,d){if(!b)return c.encodeBase64Packet(a,d);var e=new FileReader;return e.onload=function(){a.data=e.result,c.encodePacket(a,b,!0,d)},e.readAsArrayBuffer(a.data)}function g(a,b,d){if(!b)return c.encodeBase64Packet(a,d);if(q)return f(a,b,d);var e=new Uint8Array(1);e[0]=r[a.type];var g=new u([e.buffer,a.data]);return d(g)}function h(a,b,c){for(var d=new Array(a.length),e=m(a.length,c),f=function(a,c,e){b(c,function(b,c){d[a]=c,e(b,d)})},g=0;g<a.length;g++)f(g,a[g],e)}var i=a("./keys"),j=a("has-binary"),k=a("arraybuffer.slice"),l=a("base64-arraybuffer"),m=a("after"),n=a("utf8"),o=navigator.userAgent.match(/Android/i),p=/PhantomJS/i.test(navigator.userAgent),q=o||p;c.protocol=3;var r=c.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6},s=i(r),t={type:"error",data:"parser error"},u=a("blob");c.encodePacket=function(a,c,f,h){"function"==typeof c&&(h=c,c=!1),"function"==typeof f&&(h=f,f=null);var i=void 0===a.data?void 0:a.data.buffer||a.data;if(b.ArrayBuffer&&i instanceof ArrayBuffer)return e(a,c,h);if(u&&i instanceof b.Blob)return g(a,c,h);if(i&&i.base64)return d(a,h);var j=r[a.type];return void 0!==a.data&&(j+=f?n.encode(String(a.data)):String(a.data)),h(""+j)},c.encodeBase64Packet=function(a,d){var e="b"+c.packets[a.type];if(u&&a.data instanceof b.Blob){var f=new FileReader;return f.onload=function(){var a=f.result.split(",")[1];d(e+a)},f.readAsDataURL(a.data)}var g;try{g=String.fromCharCode.apply(null,new Uint8Array(a.data))}catch(h){for(var i=new Uint8Array(a.data),j=new Array(i.length),k=0;k<i.length;k++)j[k]=i[k];g=String.fromCharCode.apply(null,j)}return e+=b.btoa(g),d(e)},c.decodePacket=function(a,b,d){if("string"==typeof a||void 0===a){if("b"==a.charAt(0))return c.decodeBase64Packet(a.substr(1),b);if(d)try{a=n.decode(a)}catch(e){return t}var f=a.charAt(0);return Number(f)==f&&s[f]?a.length>1?{type:s[f],data:a.substring(1)}:{type:s[f]}:t}var g=new Uint8Array(a),f=g[0],h=k(a,1);return u&&"blob"===b&&(h=new u([h])),{type:s[f],data:h}},c.decodeBase64Packet=function(a,c){var d=s[a.charAt(0)];if(!b.ArrayBuffer)return{type:d,data:{base64:!0,data:a.substr(1)}};var e=l.decode(a.substr(1));return"blob"===c&&u&&(e=new u([e])),{type:d,data:e}},c.encodePayload=function(a,b,d){function e(a){return a.length+":"+a}function f(a,d){c.encodePacket(a,g?b:!1,!0,function(a){d(null,e(a))})}"function"==typeof b&&(d=b,b=null);var g=j(a);return b&&g?u&&!q?c.encodePayloadAsBlob(a,d):c.encodePayloadAsArrayBuffer(a,d):a.length?void h(a,f,function(a,b){return d(b.join(""))}):d("0:")},c.decodePayload=function(a,b,d){if("string"!=typeof a)return c.decodePayloadAsBinary(a,b,d);"function"==typeof b&&(d=b,b=null);var e;if(""==a)return d(t,0,1);for(var f,g,h="",i=0,j=a.length;j>i;i++){var k=a.charAt(i);if(":"!=k)h+=k;else{if(""==h||h!=(f=Number(h)))return d(t,0,1);if(g=a.substr(i+1,f),h!=g.length)return d(t,0,1);if(g.length){if(e=c.decodePacket(g,b,!0),t.type==e.type&&t.data==e.data)return d(t,0,1);var l=d(e,i+f,j);if(!1===l)return}i+=f,h=""}}return""!=h?d(t,0,1):void 0},c.encodePayloadAsArrayBuffer=function(a,b){function d(a,b){c.encodePacket(a,!0,!0,function(a){return b(null,a)})}return a.length?void h(a,d,function(a,c){var d=c.reduce(function(a,b){var c;return c="string"==typeof b?b.length:b.byteLength,a+c.toString().length+c+2},0),e=new Uint8Array(d),f=0;return c.forEach(function(a){var b="string"==typeof a,c=a;if(b){for(var d=new Uint8Array(a.length),g=0;g<a.length;g++)d[g]=a.charCodeAt(g);c=d.buffer}b?e[f++]=0:e[f++]=1;for(var h=c.byteLength.toString(),g=0;g<h.length;g++)e[f++]=parseInt(h[g]);e[f++]=255;for(var d=new Uint8Array(c),g=0;g<d.length;g++)e[f++]=d[g]}),b(e.buffer)}):b(new ArrayBuffer(0))},c.encodePayloadAsBlob=function(a,b){function d(a,b){c.encodePacket(a,!0,!0,function(a){var c=new Uint8Array(1);if(c[0]=1,"string"==typeof a){for(var d=new Uint8Array(a.length),e=0;e<a.length;e++)d[e]=a.charCodeAt(e);a=d.buffer,c[0]=0}for(var f=a instanceof ArrayBuffer?a.byteLength:a.size,g=f.toString(),h=new Uint8Array(g.length+1),e=0;e<g.length;e++)h[e]=parseInt(g[e]);if(h[g.length]=255,u){var i=new u([c.buffer,h.buffer,a]);b(null,i)}})}h(a,d,function(a,c){return b(new u(c))})},c.decodePayloadAsBinary=function(a,b,d){"function"==typeof b&&(d=b,b=null);for(var e=a,f=[],g=!1;e.byteLength>0;){for(var h=new Uint8Array(e),i=0===h[0],j="",l=1;255!=h[l];l++){if(j.length>310){g=!0;break}j+=h[l]}if(g)return d(t,0,1);e=k(e,2+j.length),j=parseInt(j);var m=k(e,0,j);if(i)try{m=String.fromCharCode.apply(null,new Uint8Array(m))}catch(n){var o=new Uint8Array(m);m="";for(var l=0;l<o.length;l++)m+=String.fromCharCode(o[l])}f.push(m),e=k(e,j)}var p=f.length;f.forEach(function(a,e){d(c.decodePacket(a,b,!0),e,p)})}}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{"./keys":20,after:11,"arraybuffer.slice":12,"base64-arraybuffer":13,blob:14,"has-binary":21,utf8:29}],20:[function(a,b,c){b.exports=Object.keys||function(a){var b=[],c=Object.prototype.hasOwnProperty;for(var d in a)c.call(a,d)&&b.push(d);return b}},{}],21:[function(a,b,c){(function(c){function d(a){function b(a){if(!a)return!1;if(c.Buffer&&c.Buffer.isBuffer(a)||c.ArrayBuffer&&a instanceof ArrayBuffer||c.Blob&&a instanceof Blob||c.File&&a instanceof File)return!0;if(e(a)){for(var d=0;d<a.length;d++)if(b(a[d]))return!0}else if(a&&"object"==typeof a){a.toJSON&&(a=a.toJSON());for(var f in a)if(Object.prototype.hasOwnProperty.call(a,f)&&b(a[f]))return!0}return!1}return b(a)}var e=a("isarray");b.exports=d}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{isarray:24}],22:[function(a,b,c){try{b.exports="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(d){b.exports=!1}},{}],23:[function(a,b,c){var d=[].indexOf;b.exports=function(a,b){if(d)return a.indexOf(b);for(var c=0;c<a.length;++c)if(a[c]===b)return c;return-1}},{}],24:[function(a,b,c){b.exports=Array.isArray||function(a){return"[object Array]"==Object.prototype.toString.call(a)}},{}],25:[function(a,b,c){function d(a){if(a=""+a,!(a.length>1e4)){var b=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(a);if(b){var c=parseFloat(b[1]),d=(b[2]||"ms").toLowerCase();switch(d){case"years":case"year":case"yrs":case"yr":case"y":return c*l;case"days":case"day":case"d":return c*k;case"hours":case"hour":case"hrs":case"hr":case"h":return c*j;case"minutes":case"minute":case"mins":case"min":case"m":return c*i;case"seconds":case"second":case"secs":case"sec":case"s":return c*h;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c}}}}function e(a){return a>=k?Math.round(a/k)+"d":a>=j?Math.round(a/j)+"h":a>=i?Math.round(a/i)+"m":a>=h?Math.round(a/h)+"s":a+"ms"}function f(a){return g(a,k,"day")||g(a,j,"hour")||g(a,i,"minute")||g(a,h,"second")||a+" ms"}function g(a,b,c){return b>a?void 0:1.5*b>a?Math.floor(a/b)+" "+c:Math.ceil(a/b)+" "+c+"s"}var h=1e3,i=60*h,j=60*i,k=24*j,l=365.25*k;b.exports=function(a,b){return b=b||{},"string"==typeof a?d(a):b["long"]?f(a):e(a)}},{}],26:[function(a,b,c){(function(a){var c=/^[\],:{}\s]*$/,d=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,e=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,f=/(?:^|:|,)(?:\s*\[)+/g,g=/^\s+/,h=/\s+$/;b.exports=function(b){return"string"==typeof b&&b?(b=b.replace(g,"").replace(h,""),a.JSON&&JSON.parse?JSON.parse(b):c.test(b.replace(d,"@").replace(e,"]").replace(f,""))?new Function("return "+b)():void 0):null}}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{}],27:[function(a,b,c){c.encode=function(a){var b="";for(var c in a)a.hasOwnProperty(c)&&(b.length&&(b+="&"),b+=encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b},c.decode=function(a){for(var b={},c=a.split("&"),d=0,e=c.length;e>d;d++){var f=c[d].split("=");b[decodeURIComponent(f[0])]=decodeURIComponent(f[1])}return b}},{}],28:[function(a,b,c){var d=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,e=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];b.exports=function(a){var b=a,c=a.indexOf("["),f=a.indexOf("]");-1!=c&&-1!=f&&(a=a.substring(0,c)+a.substring(c,f).replace(/:/g,";")+a.substring(f,a.length));for(var g=d.exec(a||""),h={},i=14;i--;)h[e[i]]=g[i]||"";return-1!=c&&-1!=f&&(h.source=b,h.host=h.host.substring(1,h.host.length-1).replace(/;/g,":"),h.authority=h.authority.replace("[","").replace("]","").replace(/;/g,":"),h.ipv6uri=!0),h}},{}],29:[function(b,c,d){(function(b){!function(e){function f(a){for(var b,c,d=[],e=0,f=a.length;f>e;)b=a.charCodeAt(e++),b>=55296&&56319>=b&&f>e?(c=a.charCodeAt(e++),56320==(64512&c)?d.push(((1023&b)<<10)+(1023&c)+65536):(d.push(b),e--)):d.push(b);return d}function g(a){for(var b,c=a.length,d=-1,e="";++d<c;)b=a[d],b>65535&&(b-=65536,e+=u(b>>>10&1023|55296),b=56320|1023&b),e+=u(b);return e}function h(a){if(a>=55296&&57343>=a)throw Error("Lone surrogate U+"+a.toString(16).toUpperCase()+" is not a scalar value")}function i(a,b){return u(a>>b&63|128)}function j(a){if(0==(4294967168&a))return u(a);var b="";return 0==(4294965248&a)?b=u(a>>6&31|192):0==(4294901760&a)?(h(a),b=u(a>>12&15|224),b+=i(a,6)):0==(4292870144&a)&&(b=u(a>>18&7|240),b+=i(a,12),b+=i(a,6)),b+=u(63&a|128)}function k(a){for(var b,c=f(a),d=c.length,e=-1,g="";++e<d;)b=c[e],g+=j(b);return g}function l(){if(t>=s)throw Error("Invalid byte index");var a=255&r[t];if(t++,128==(192&a))return 63&a;throw Error("Invalid continuation byte")}function m(){var a,b,c,d,e;if(t>s)throw Error("Invalid byte index");if(t==s)return!1;if(a=255&r[t],t++,0==(128&a))return a;if(192==(224&a)){var b=l();if(e=(31&a)<<6|b,e>=128)return e;throw Error("Invalid continuation byte")}if(224==(240&a)){if(b=l(),c=l(),e=(15&a)<<12|b<<6|c,e>=2048)return h(e),e;throw Error("Invalid continuation byte")}if(240==(248&a)&&(b=l(),c=l(),d=l(),e=(15&a)<<18|b<<12|c<<6|d,e>=65536&&1114111>=e))return e;throw Error("Invalid UTF-8 detected")}function n(a){r=f(a),s=r.length,t=0;for(var b,c=[];(b=m())!==!1;)c.push(b);return g(c)}var o="object"==typeof d&&d,p="object"==typeof c&&c&&c.exports==o&&c,q="object"==typeof b&&b;q.global!==q&&q.window!==q||(e=q);var r,s,t,u=String.fromCharCode,v={version:"2.0.0",encode:k,decode:n};if("function"==typeof a&&"object"==typeof a.amd&&a.amd)a(function(){return v});else if(o&&!o.nodeType)if(p)p.exports=v;else{var w={},x=w.hasOwnProperty;for(var y in v)x.call(v,y)&&(o[y]=v[y])}else e.utf8=v}(this)}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{}],30:[function(a,b,c){"use strict";function d(a){var b="";do b=h[a%i]+b,a=Math.floor(a/i);while(a>0);return b}function e(a){var b=0;for(l=0;l<a.length;l++)b=b*i+j[a.charAt(l)];return b}function f(){var a=d(+new Date);return a!==g?(k=0,g=a):a+"."+d(k++)}for(var g,h="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),i=64,j={},k=0,l=0;i>l;l++)j[h[l]]=l;f.encode=d,f.decode=e,b.exports=f},{}],31:[function(a,b,c){function d(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d=e(a),f=d.source,j=d.id,k=d.path,l=i[j]&&k in i[j].nsps,m=b.forceNew||b["force new connection"]||!1===b.multiplex||l;return m?(h("ignoring socket cache for %s",f),c=g(f,b)):(i[j]||(h("new io instance for %s",f),i[j]=g(f,b)),c=i[j]),c.socket(d.path)}var e=a("./url"),f=a("socket.io-parser"),g=a("./manager"),h=a("debug")("socket.io-client");b.exports=c=d;var i=c.managers={};c.protocol=f.protocol,c.connect=d,c.Manager=a("./manager"),c.Socket=a("./socket")},{"./manager":32,"./socket":34,"./url":35,debug:39,"socket.io-parser":47}],32:[function(a,b,c){function d(a,b){return this instanceof d?(a&&"object"==typeof a&&(b=a,a=void 0),b=b||{},b.path=b.path||"/socket.io",this.nsps={},this.subs=[],this.opts=b,this.reconnection(b.reconnection!==!1),this.reconnectionAttempts(b.reconnectionAttempts||1/0),this.reconnectionDelay(b.reconnectionDelay||1e3),this.reconnectionDelayMax(b.reconnectionDelayMax||5e3),this.randomizationFactor(b.randomizationFactor||.5),this.backoff=new m({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==b.timeout?2e4:b.timeout),this.readyState="closed",this.uri=a,this.connecting=[],this.lastPing=null,this.encoding=!1,this.packetBuffer=[],this.encoder=new h.Encoder,this.decoder=new h.Decoder,this.autoConnect=b.autoConnect!==!1,void(this.autoConnect&&this.open())):new d(a,b)}var e=a("engine.io-client"),f=a("./socket"),g=a("component-emitter"),h=a("socket.io-parser"),i=a("./on"),j=a("component-bind"),k=a("debug")("socket.io-client:manager"),l=a("indexof"),m=a("backo2"),n=Object.prototype.hasOwnProperty;b.exports=d,d.prototype.emitAll=function(){this.emit.apply(this,arguments);for(var a in this.nsps)n.call(this.nsps,a)&&this.nsps[a].emit.apply(this.nsps[a],arguments)},d.prototype.updateSocketIds=function(){for(var a in this.nsps)n.call(this.nsps,a)&&(this.nsps[a].id=this.engine.id)},g(d.prototype),d.prototype.reconnection=function(a){return arguments.length?(this._reconnection=!!a,this):this._reconnection},d.prototype.reconnectionAttempts=function(a){return arguments.length?(this._reconnectionAttempts=a,this):this._reconnectionAttempts},d.prototype.reconnectionDelay=function(a){return arguments.length?(this._reconnectionDelay=a,this.backoff&&this.backoff.setMin(a),this):this._reconnectionDelay},d.prototype.randomizationFactor=function(a){return arguments.length?(this._randomizationFactor=a,this.backoff&&this.backoff.setJitter(a),this):this._randomizationFactor},d.prototype.reconnectionDelayMax=function(a){return arguments.length?(this._reconnectionDelayMax=a,this.backoff&&this.backoff.setMax(a),this):this._reconnectionDelayMax},d.prototype.timeout=function(a){return arguments.length?(this._timeout=a,this):this._timeout},d.prototype.maybeReconnectOnOpen=function(){!this.reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()},d.prototype.open=d.prototype.connect=function(a){if(k("readyState %s",this.readyState),~this.readyState.indexOf("open"))return this;k("opening %s",this.uri),this.engine=e(this.uri,this.opts);var b=this.engine,c=this;this.readyState="opening",this.skipReconnect=!1;var d=i(b,"open",function(){c.onopen(),a&&a()}),f=i(b,"error",function(b){if(k("connect_error"),c.cleanup(),c.readyState="closed",c.emitAll("connect_error",b),a){var d=new Error("Connection error");d.data=b,a(d)}else c.maybeReconnectOnOpen()});if(!1!==this._timeout){var g=this._timeout;k("connect attempt will timeout after %d",g);var h=setTimeout(function(){k("connect attempt timed out after %d",g),d.destroy(),b.close(),b.emit("error","timeout"),c.emitAll("connect_timeout",g)},g);this.subs.push({destroy:function(){clearTimeout(h)}})}return this.subs.push(d),this.subs.push(f),this},d.prototype.onopen=function(){k("open"),this.cleanup(),this.readyState="open",this.emit("open");var a=this.engine;this.subs.push(i(a,"data",j(this,"ondata"))),this.subs.push(i(a,"ping",j(this,"onping"))),this.subs.push(i(a,"pong",j(this,"onpong"))),this.subs.push(i(a,"error",j(this,"onerror"))),this.subs.push(i(a,"close",j(this,"onclose"))),this.subs.push(i(this.decoder,"decoded",j(this,"ondecoded")))},d.prototype.onping=function(){this.lastPing=new Date,this.emitAll("ping")},d.prototype.onpong=function(){this.emitAll("pong",new Date-this.lastPing)},d.prototype.ondata=function(a){this.decoder.add(a)},d.prototype.ondecoded=function(a){this.emit("packet",a)},d.prototype.onerror=function(a){k("error",a),this.emitAll("error",a)},d.prototype.socket=function(a){function b(){~l(d.connecting,c)||d.connecting.push(c)}var c=this.nsps[a];if(!c){c=new f(this,a),this.nsps[a]=c;var d=this;c.on("connecting",b),c.on("connect",function(){c.id=d.engine.id}),this.autoConnect&&b()}return c},d.prototype.destroy=function(a){var b=l(this.connecting,a);~b&&this.connecting.splice(b,1),this.connecting.length||this.close()},d.prototype.packet=function(a){k("writing packet %j",a);var b=this;b.encoding?b.packetBuffer.push(a):(b.encoding=!0,this.encoder.encode(a,function(c){for(var d=0;d<c.length;d++)b.engine.write(c[d],a.options);b.encoding=!1,b.processPacketQueue()}))},d.prototype.processPacketQueue=function(){if(this.packetBuffer.length>0&&!this.encoding){var a=this.packetBuffer.shift();this.packet(a)}},d.prototype.cleanup=function(){k("cleanup");for(var a;a=this.subs.shift();)a.destroy();this.packetBuffer=[],this.encoding=!1,this.lastPing=null,this.decoder.destroy()},d.prototype.close=d.prototype.disconnect=function(){k("disconnect"),this.skipReconnect=!0,this.reconnecting=!1,"opening"==this.readyState&&this.cleanup(),this.backoff.reset(),this.readyState="closed",this.engine&&this.engine.close()},d.prototype.onclose=function(a){k("onclose"),this.cleanup(),this.backoff.reset(),this.readyState="closed",this.emit("close",a),this._reconnection&&!this.skipReconnect&&this.reconnect()},d.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var a=this;if(this.backoff.attempts>=this._reconnectionAttempts)k("reconnect failed"),this.backoff.reset(),this.emitAll("reconnect_failed"),this.reconnecting=!1;else{var b=this.backoff.duration();k("will wait %dms before reconnect attempt",b),this.reconnecting=!0;var c=setTimeout(function(){a.skipReconnect||(k("attempting reconnect"),a.emitAll("reconnect_attempt",a.backoff.attempts),a.emitAll("reconnecting",a.backoff.attempts),a.skipReconnect||a.open(function(b){b?(k("reconnect attempt error"),a.reconnecting=!1,a.reconnect(),a.emitAll("reconnect_error",b.data)):(k("reconnect success"),a.onreconnect())}))},b);this.subs.push({destroy:function(){clearTimeout(c)}})}},d.prototype.onreconnect=function(){var a=this.backoff.attempts;this.reconnecting=!1,this.backoff.reset(),this.updateSocketIds(),this.emitAll("reconnect",a)}},{"./on":33,"./socket":34,backo2:36,"component-bind":37,"component-emitter":38,debug:39,"engine.io-client":1,indexof:42,"socket.io-parser":47}],33:[function(a,b,c){function d(a,b,c){return a.on(b,c),{destroy:function(){a.removeListener(b,c)}}}b.exports=d},{}],34:[function(a,b,c){function d(a,b){this.io=a,this.nsp=b,this.json=this,this.ids=0,this.acks={},this.receiveBuffer=[],this.sendBuffer=[],this.connected=!1,this.disconnected=!0,this.io.autoConnect&&this.open()}var e=a("socket.io-parser"),f=a("component-emitter"),g=a("to-array"),h=a("./on"),i=a("component-bind"),j=a("debug")("socket.io-client:socket"),k=a("has-binary");b.exports=c=d;var l={connect:1,connect_error:1,connect_timeout:1,connecting:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1,ping:1,pong:1},m=f.prototype.emit;f(d.prototype),d.prototype.subEvents=function(){if(!this.subs){var a=this.io;this.subs=[h(a,"open",i(this,"onopen")),h(a,"packet",i(this,"onpacket")),h(a,"close",i(this,"onclose"))]}},d.prototype.open=d.prototype.connect=function(){return this.connected?this:(this.subEvents(),this.io.open(),"open"==this.io.readyState&&this.onopen(),this.emit("connecting"),this)},d.prototype.send=function(){var a=g(arguments);return a.unshift("message"),this.emit.apply(this,a),this},d.prototype.emit=function(a){if(l.hasOwnProperty(a))return m.apply(this,arguments),this;var b=g(arguments),c=e.EVENT;k(b)&&(c=e.BINARY_EVENT);var d={type:c,data:b};return d.options={},d.options.compress=!this.flags||!1!==this.flags.compress,"function"==typeof b[b.length-1]&&(j("emitting packet with ack id %d",this.ids),this.acks[this.ids]=b.pop(),d.id=this.ids++),this.connected?this.packet(d):this.sendBuffer.push(d),delete this.flags,this},d.prototype.packet=function(a){a.nsp=this.nsp,this.io.packet(a)},d.prototype.onopen=function(){j("transport is open - connecting"),"/"!=this.nsp&&this.packet({type:e.CONNECT})},d.prototype.onclose=function(a){j("close (%s)",a),this.connected=!1,this.disconnected=!0,delete this.id,this.emit("disconnect",a)},d.prototype.onpacket=function(a){if(a.nsp==this.nsp)switch(a.type){case e.CONNECT:this.onconnect();break;case e.EVENT:this.onevent(a);break;case e.BINARY_EVENT:this.onevent(a);break;case e.ACK:this.onack(a);break;case e.BINARY_ACK:this.onack(a);break;case e.DISCONNECT:this.ondisconnect();break;case e.ERROR:this.emit("error",a.data)}},d.prototype.onevent=function(a){var b=a.data||[];j("emitting event %j",b),null!=a.id&&(j("attaching ack callback to event"),b.push(this.ack(a.id))),this.connected?m.apply(this,b):this.receiveBuffer.push(b)},d.prototype.ack=function(a){var b=this,c=!1;return function(){if(!c){c=!0;var d=g(arguments);j("sending ack %j",d);var f=k(d)?e.BINARY_ACK:e.ACK;b.packet({type:f,id:a,data:d})}}},d.prototype.onack=function(a){var b=this.acks[a.id];"function"==typeof b?(j("calling ack %s with %j",a.id,a.data),b.apply(this,a.data),delete this.acks[a.id]):j("bad ack %s",a.id)},d.prototype.onconnect=function(){this.connected=!0,this.disconnected=!1,this.emit("connect"),this.emitBuffered()},d.prototype.emitBuffered=function(){var a;for(a=0;a<this.receiveBuffer.length;a++)m.apply(this,this.receiveBuffer[a]);for(this.receiveBuffer=[],a=0;a<this.sendBuffer.length;a++)this.packet(this.sendBuffer[a]);this.sendBuffer=[]},d.prototype.ondisconnect=function(){j("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")},d.prototype.destroy=function(){if(this.subs){for(var a=0;a<this.subs.length;a++)this.subs[a].destroy();this.subs=null}this.io.destroy(this)},d.prototype.close=d.prototype.disconnect=function(){return this.connected&&(j("performing disconnect (%s)",this.nsp),this.packet({type:e.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this},d.prototype.compress=function(a){return this.flags=this.flags||{},this.flags.compress=a,this}},{"./on":33,"component-bind":37,"component-emitter":38,debug:39,"has-binary":41,"socket.io-parser":47,"to-array":51}],35:[function(a,b,c){(function(c){function d(a,b){var d=a,b=b||c.location;null==a&&(a=b.protocol+"//"+b.host),"string"==typeof a&&("/"==a.charAt(0)&&(a="/"==a.charAt(1)?b.protocol+a:b.host+a),/^(https?|wss?):\/\//.test(a)||(f("protocol-less url %s",a),a="undefined"!=typeof b?b.protocol+"//"+a:"https://"+a),f("parse %s",a),d=e(a)),d.port||(/^(http|ws)$/.test(d.protocol)?d.port="80":/^(http|ws)s$/.test(d.protocol)&&(d.port="443")),d.path=d.path||"/";var g=-1!==d.host.indexOf(":"),h=g?"["+d.host+"]":d.host;return d.id=d.protocol+"://"+h+":"+d.port,d.href=d.protocol+"://"+h+(b&&b.port==d.port?"":":"+d.port),d}var e=a("parseuri"),f=a("debug")("socket.io-client:url");b.exports=d}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{debug:39,parseuri:45}],36:[function(a,b,c){function d(a){a=a||{},this.ms=a.min||100,this.max=a.max||1e4,this.factor=a.factor||2,this.jitter=a.jitter>0&&a.jitter<=1?a.jitter:0,this.attempts=0}b.exports=d,d.prototype.duration=function(){var a=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var b=Math.random(),c=Math.floor(b*this.jitter*a);a=0==(1&Math.floor(10*b))?a-c:a+c}return 0|Math.min(a,this.max)},d.prototype.reset=function(){this.attempts=0},d.prototype.setMin=function(a){this.ms=a},d.prototype.setMax=function(a){this.max=a},d.prototype.setJitter=function(a){this.jitter=a}},{}],37:[function(a,b,c){var d=[].slice;b.exports=function(a,b){if("string"==typeof b&&(b=a[b]),"function"!=typeof b)throw new Error("bind() requires a function");var c=d.call(arguments,2);return function(){return b.apply(a,c.concat(d.call(arguments)))}}},{}],38:[function(a,b,c){function d(a){return a?e(a):void 0}function e(a){for(var b in d.prototype)a[b]=d.prototype[b];return a}b.exports=d,d.prototype.on=d.prototype.addEventListener=function(a,b){return this._callbacks=this._callbacks||{},(this._callbacks["$"+a]=this._callbacks["$"+a]||[]).push(b),this},d.prototype.once=function(a,b){function c(){this.off(a,c),b.apply(this,arguments)}return c.fn=b,this.on(a,c),this},d.prototype.off=d.prototype.removeListener=d.prototype.removeAllListeners=d.prototype.removeEventListener=function(a,b){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var c=this._callbacks["$"+a];if(!c)return this;if(1==arguments.length)return delete this._callbacks["$"+a],this;for(var d,e=0;e<c.length;e++)if(d=c[e],d===b||d.fn===b){c.splice(e,1);break}return this},d.prototype.emit=function(a){this._callbacks=this._callbacks||{};var b=[].slice.call(arguments,1),c=this._callbacks["$"+a];if(c){c=c.slice(0);for(var d=0,e=c.length;e>d;++d)c[d].apply(this,b)}return this},d.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks["$"+a]||[]},d.prototype.hasListeners=function(a){return!!this.listeners(a).length}},{}],39:[function(a,b,c){arguments[4][17][0].apply(c,arguments)},{"./debug":40,dup:17}],40:[function(a,b,c){
+arguments[4][18][0].apply(c,arguments)},{dup:18,ms:44}],41:[function(a,b,c){(function(c){function d(a){function b(a){if(!a)return!1;if(c.Buffer&&c.Buffer.isBuffer&&c.Buffer.isBuffer(a)||c.ArrayBuffer&&a instanceof ArrayBuffer||c.Blob&&a instanceof Blob||c.File&&a instanceof File)return!0;if(e(a)){for(var d=0;d<a.length;d++)if(b(a[d]))return!0}else if(a&&"object"==typeof a){a.toJSON&&"function"==typeof a.toJSON&&(a=a.toJSON());for(var f in a)if(Object.prototype.hasOwnProperty.call(a,f)&&b(a[f]))return!0}return!1}return b(a)}var e=a("isarray");b.exports=d}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{isarray:43}],42:[function(a,b,c){arguments[4][23][0].apply(c,arguments)},{dup:23}],43:[function(a,b,c){arguments[4][24][0].apply(c,arguments)},{dup:24}],44:[function(a,b,c){arguments[4][25][0].apply(c,arguments)},{dup:25}],45:[function(a,b,c){arguments[4][28][0].apply(c,arguments)},{dup:28}],46:[function(a,b,c){(function(b){var d=a("isarray"),e=a("./is-buffer");c.deconstructPacket=function(a){function b(a){if(!a)return a;if(e(a)){var f={_placeholder:!0,num:c.length};return c.push(a),f}if(d(a)){for(var g=new Array(a.length),h=0;h<a.length;h++)g[h]=b(a[h]);return g}if("object"==typeof a&&!(a instanceof Date)){var g={};for(var i in a)g[i]=b(a[i]);return g}return a}var c=[],f=a.data,g=a;return g.data=b(f),g.attachments=c.length,{packet:g,buffers:c}},c.reconstructPacket=function(a,b){function c(a){if(a&&a._placeholder){var e=b[a.num];return e}if(d(a)){for(var f=0;f<a.length;f++)a[f]=c(a[f]);return a}if(a&&"object"==typeof a){for(var g in a)a[g]=c(a[g]);return a}return a}return a.data=c(a.data),a.attachments=void 0,a},c.removeBlobs=function(a,c){function f(a,i,j){if(!a)return a;if(b.Blob&&a instanceof Blob||b.File&&a instanceof File){g++;var k=new FileReader;k.onload=function(){j?j[i]=this.result:h=this.result,--g||c(h)},k.readAsArrayBuffer(a)}else if(d(a))for(var l=0;l<a.length;l++)f(a[l],l,a);else if(a&&"object"==typeof a&&!e(a))for(var m in a)f(a[m],m,a)}var g=0,h=a;f(h),g||c(h)}}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{"./is-buffer":48,isarray:43}],47:[function(a,b,c){function d(){}function e(a){var b="",d=!1;return b+=a.type,c.BINARY_EVENT!=a.type&&c.BINARY_ACK!=a.type||(b+=a.attachments,b+="-"),a.nsp&&"/"!=a.nsp&&(d=!0,b+=a.nsp),null!=a.id&&(d&&(b+=",",d=!1),b+=a.id),null!=a.data&&(d&&(b+=","),b+=l.stringify(a.data)),k("encoded %j as %s",a,b),b}function f(a,b){function c(a){var c=n.deconstructPacket(a),d=e(c.packet),f=c.buffers;f.unshift(d),b(f)}n.removeBlobs(a,c)}function g(){this.reconstructor=null}function h(a){var b={},d=0;if(b.type=Number(a.charAt(0)),null==c.types[b.type])return j();if(c.BINARY_EVENT==b.type||c.BINARY_ACK==b.type){for(var e="";"-"!=a.charAt(++d)&&(e+=a.charAt(d),d!=a.length););if(e!=Number(e)||"-"!=a.charAt(d))throw new Error("Illegal attachments");b.attachments=Number(e)}if("/"==a.charAt(d+1))for(b.nsp="";++d;){var f=a.charAt(d);if(","==f)break;if(b.nsp+=f,d==a.length)break}else b.nsp="/";var g=a.charAt(d+1);if(""!==g&&Number(g)==g){for(b.id="";++d;){var f=a.charAt(d);if(null==f||Number(f)!=f){--d;break}if(b.id+=a.charAt(d),d==a.length)break}b.id=Number(b.id)}if(a.charAt(++d))try{b.data=l.parse(a.substr(d))}catch(h){return j()}return k("decoded %s as %j",a,b),b}function i(a){this.reconPack=a,this.buffers=[]}function j(a){return{type:c.ERROR,data:"parser error"}}var k=a("debug")("socket.io-parser"),l=a("json3"),m=(a("isarray"),a("component-emitter")),n=a("./binary"),o=a("./is-buffer");c.protocol=4,c.types=["CONNECT","DISCONNECT","EVENT","BINARY_EVENT","ACK","BINARY_ACK","ERROR"],c.CONNECT=0,c.DISCONNECT=1,c.EVENT=2,c.ACK=3,c.ERROR=4,c.BINARY_EVENT=5,c.BINARY_ACK=6,c.Encoder=d,c.Decoder=g,d.prototype.encode=function(a,b){if(k("encoding packet %j",a),c.BINARY_EVENT==a.type||c.BINARY_ACK==a.type)f(a,b);else{var d=e(a);b([d])}},m(g.prototype),g.prototype.add=function(a){var b;if("string"==typeof a)b=h(a),c.BINARY_EVENT==b.type||c.BINARY_ACK==b.type?(this.reconstructor=new i(b),0===this.reconstructor.reconPack.attachments&&this.emit("decoded",b)):this.emit("decoded",b);else{if(!o(a)&&!a.base64)throw new Error("Unknown type: "+a);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");b=this.reconstructor.takeBinaryData(a),b&&(this.reconstructor=null,this.emit("decoded",b))}},g.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()},i.prototype.takeBinaryData=function(a){if(this.buffers.push(a),this.buffers.length==this.reconPack.attachments){var b=n.reconstructPacket(this.reconPack,this.buffers);return this.finishedReconstruction(),b}return null},i.prototype.finishedReconstruction=function(){this.reconPack=null,this.buffers=[]}},{"./binary":46,"./is-buffer":48,"component-emitter":49,debug:39,isarray:43,json3:50}],48:[function(a,b,c){(function(a){function c(b){return a.Buffer&&a.Buffer.isBuffer(b)||a.ArrayBuffer&&b instanceof ArrayBuffer}b.exports=c}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{}],49:[function(a,b,c){arguments[4][15][0].apply(c,arguments)},{dup:15}],50:[function(b,c,d){(function(b){(function(){function e(a,b){function c(a){if(c[a]!==q)return c[a];var e;if("bug-string-char-index"==a)e="a"!="a"[0];else if("json"==a)e=c("json-stringify")&&c("json-parse");else{var g,h='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=b.stringify,k="function"==typeof i&&t;if(k){(g=function(){return 1}).toJSON=g;try{k="0"===i(0)&&"0"===i(new d)&&'""'==i(new f)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(g)&&"[1]"==i([g])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[g,!0,!1,null,"\x00\b\n\f\r "]})==h&&"1"===i(null,g)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}e=k}if("json-parse"==a){var m=b.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){g=m(h);var n=5==g.a.length&&1===g.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}e=n}}return c[a]=!!e}a||(a=i.Object()),b||(b=i.Object());var d=a.Number||i.Number,f=a.String||i.String,h=a.Object||i.Object,j=a.Date||i.Date,k=a.SyntaxError||i.SyntaxError,l=a.TypeError||i.TypeError,m=a.Math||i.Math,n=a.JSON||i.JSON;"object"==typeof n&&n&&(b.stringify=n.stringify,b.parse=n.parse);var o,p,q,r=h.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!c("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=c("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var c,d,e,f=0;(c=function(){this.valueOf=0}).prototype.valueOf=0,d=new c;for(e in d)o.call(d,e)&&f++;return c=d=null,f?p=2==f?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(d=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var c,e,f=s.call(a)==v,h=!f&&"function"!=typeof a.constructor&&g[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(c in a)f&&"prototype"==c||!h.call(a,c)||b(c);for(e=d.length;c=d[--e];h.call(a,c)&&b(c));}),p(a,b)},!c("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};b.stringify=function(a,b,c){var d,e,f,h;if(g[typeof b]&&b)if((h=s.call(b))==v)e=b;else if(h==z){f={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(f[i]=1));}if(c)if((h=s.call(c))==x){if((c-=c%1)>0)for(d="",c>10&&(c=10);d.length<c;d+=" ");}else h==y&&(d=c.length<=10?c:c.slice(0,10));return K("",(i={},i[""]=a,i),e,f,d,"",[])}}if(!c("json-parse")){var L,M,N=f.fromCharCode,O={92:"\\",34:'"',47:"/",98:"\b",116:"       ",110:"\n",102:"\f",114:"\r"},P=function(){throw L=M=null,k()},Q=function(){for(var a,b,c,d,e,f=M,g=f.length;g>L;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),43!=e&&45!=e||L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),","!=a&&"string"==typeof a&&"@"==(B?a.charAt(0):a[0])&&":"==Q()||P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};b.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return b.runInContext=e,b}var f="function"==typeof a&&a.amd,g={"function":!0,object:!0},h=g[typeof d]&&d&&!d.nodeType&&d,i=g[typeof window]&&window||this,j=h&&g[typeof c]&&c&&!c.nodeType&&"object"==typeof b&&b;if(!j||j.global!==j&&j.window!==j&&j.self!==j||(i=j),h&&!f)e(i,h);else{var k=i.JSON,l=i.JSON3,m=!1,n=e(i,i.JSON3={noConflict:function(){return m||(m=!0,i.JSON=k,i.JSON3=l,k=l=null),n}});i.JSON={parse:n.parse,stringify:n.stringify}}f&&a(function(){return n})}).call(this)}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{})},{}],51:[function(a,b,c){function d(a,b){var c=[];b=b||0;for(var d=b||0;d<a.length;d++)c[d-b]=a[d];return c}b.exports=d},{}]},{},[31])(31)});
\ No newline at end of file
similarity index 94%
rename from public/app/fc48ba87.vendor.css
rename to public/app/75872991.vendor.css
index 0a9cc55..d55f3c3 100644 (file)
@@ -2,11 +2,7 @@
  * Bootstrap v3.3.6 (http://getbootstrap.com)
  * Copyright 2011-2015 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}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}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}sub,sup{position:relative;font-size:75%;line-height:0}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}svg:not(:root){overflow:hidden}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}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{padding:0;border:0}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-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:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.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 td,.table-bordered th{border:1px solid #ddd!important}}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}.img-thumbnail,body{background-color:#fff}@font-face{font-family:'Glyphicons Halflings';src:url(../assets/fonts/glyphicons-halflings-regular.eot);src:url(../assets/fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../assets/fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../assets/fonts/glyphicons-halflings-regular.woff) format('woff'),url(../assets/fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../assets/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro: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,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble: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"}*,:after,:before{-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:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.form-control,.ui-grid-pager-control input{-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;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:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.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}dt,kbd kbd,label{font-weight:700}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.btn,.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}ol,ul{margin-bottom:10px}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dd,dt{line-height:1.42857143}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}#ui-grid-twbs #ui-grid-twbs .btn-group-vertical>.btn-group:after,#ui-grid-twbs #ui-grid-twbs .btn-toolbar:after,#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:after,.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.dropdown-menu>li>a,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after,.ui-grid-clearfix:after,.ui-grid-footer-canvas:after,.ui-grid-header-canvas:after{clear:both}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}.container,.container-fluid{margin-right:auto;margin-left:auto}.table,address{margin-bottom:20px}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-right:15px;padding-left:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}caption{padding-top:8px;padding-bottom:8px;color:#777}.table{width:100%;max-width:100%}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{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>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@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>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{min-width:0;margin:0}legend{display:block;width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch.bootstrap-switch-focused,.form-control:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.form-group-sm .form-control,.input-sm{padding:5px 10px;border-radius:3px;font-size:12px}.input-sm{height:30px;line-height:1.5}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;line-height:1.5}.form-group-lg .form-control,.input-lg{border-radius:6px;padding:10px 16px;font-size:18px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;line-height:1.3333333}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;line-height:1.3333333}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.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}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-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-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{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.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{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.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{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.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{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.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{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.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;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:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{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=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .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{height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.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;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu-right,.dropdown-menu.pull-right{right:0;left:auto}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.42857143;white-space:nowrap}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child,.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child),.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{font-weight:400;color:#333}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{right:auto;left:0}.dropdown-header{font-size:12px;color:#777}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.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{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{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 .btn,.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 .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group{float:left}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .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>.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:first-child:not(:last-child){border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child:not(:first-child){border-radius:0 0 4px 4px}.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-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;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=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{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-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.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-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.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-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.nav>li,.nav>li>a{display:block;position:relative}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn: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:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{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-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-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:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{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{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;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:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;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-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.embed-responsive,.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.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;height:50px;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.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}.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;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.breadcrumb>li,.pagination{display:inline-block}.btn .badge,.btn .label{top:-1px;position:relative}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{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:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{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:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0;border-radius:4px}.pager li,.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.badge,.label{font-weight:700;line-height:1;white-space:nowrap;text-align:center}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.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:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}a.badge:focus,a.badge:hover,a.label:focus,a.label:hover{color:#fff;cursor:pointer;text-decoration:none}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}.label:empty{display:none}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:20px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.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}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.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}}@-o-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{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(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,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-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:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{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{padding-left:0;margin-bottom:20px}.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-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{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: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,.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{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.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:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-title,.panel>.list-group,.panel>.panel-collapse>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-title{margin-top:0;font-size:16px}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.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-bordered>thead>tr:first-child>td,.panel>.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,.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,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom: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-left-radius:3px;border-top-right-radius:3px}.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:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.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:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.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,.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: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:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.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,.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: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:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table: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,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.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,.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{border-bottom-left-radius:3px}.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,.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{border-bottom-right-radius:3px}.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 td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{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:#333;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:#333}.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}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height: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:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.modal-title,.tooltip{line-height:1.42857143}.popover,.tooltip{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;line-break:auto;text-decoration:none}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal{position:fixed;z-index:1050;display:none;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.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;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.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,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;font-weight:400;text-align:left;text-align:start;white-space:normal;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.carousel,.carousel-inner{position:relative}.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{right:5px}.tooltip.top-right .tooltip-arrow{left:5px}.popover.left>.arrow:after,.popover.right>.arrow:after{bottom:-10px;content:" "}.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,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{top:0;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{right:5px;margin-top:-5px}.tooltip.bottom-right .tooltip-arrow{left:5px;margin-top:-5px}.carousel-caption,.carousel-control{color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.toast-message,pre{word-wrap:break-word}.popover.right{margin-left:10px}.popover.left{margin-left:-10px}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{left:1px;border-right-color:#fff;border-left-width:0}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bootstrap-switch,.ui-grid-pager-control input{-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.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;bottom:0;left:0;width:15%;font-size:20px;background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.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%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.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!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.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!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!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}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.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}.hidden-print{display:none!important}}.bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:4px;border:1px solid #ccc;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;border-radius:4px;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block!important;height:100%;padding:6px 12px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on{text-align:center;z-index:1}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#428bca}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#5cb85c}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{background:#f0ad4e;color:#fff}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#d9534f}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#000;background:#eee}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;color:#333;background:#fff}.bootstrap-switch .bootstrap-switch-handle-on{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch .bootstrap-switch-handle-off{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch input[type=radio],.bootstrap-switch input[type=checkbox]{position:absolute!important;top:0;left:0;opacity:0;filter:alpha(opacity=0);z-index:-1}.bootstrap-switch input[type=radio].form-control,.bootstrap-switch input[type=checkbox].form-control{height:auto}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding:1px 5px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding:5px 10px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding:6px 16px;font-size:18px;line-height:1.33}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-indeterminate,.bootstrap-switch.bootstrap-switch-readonly{cursor:default!important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label{opacity:.5;filter:alpha(opacity=50);cursor:default!important}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on{border-radius:0 3px 3px 0}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{border-radius:3px 0 0 3px}.bootstrap-switch.bootstrap-switch-focused{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label{border-bottom-left-radius:3px;border-top-left-radius:3px}.bar-legend,.chart-legend,.doughnut-legend,.line-legend,.pie-legend,.polararea-legend,.radar-legend{list-style-type:none;margin-top:5px;text-align:center;-webkit-padding-start:0;-moz-padding-start:0;padding-left:0}.bar-legend li,.chart-legend li,.doughnut-legend li,.line-legend li,.pie-legend li,.polararea-legend li,.radar-legend li{display:inline-block;white-space:nowrap;position:relative;margin-bottom:4px;border-radius:5px;padding:2px 8px 2px 28px;font-size:smaller;cursor:default}.bar-legend li span,.chart-legend li span,.doughnut-legend li span,.line-legend li span,.pie-legend li span,.polararea-legend li span,.radar-legend li span{display:block;position:absolute;left:0;top:0;width:20px;height:20px;border-radius:5px}.toast-title{font-weight:700}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8}.toast-top-center,.toast-top-full-width{top:0;right:0;width:100%}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:.8}#toast-container>:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4}.toast{opacity:1!important}.toast.ng-enter{opacity:0!important;transition:opacity .3s linear}.toast.ng-enter.ng-enter-active{opacity:1!important}.toast.ng-leave{opacity:1;transition:opacity .3s linear}.toast.ng-leave.ng-leave-active{opacity:0!important}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}.ui-notification{position:fixed;z-index:9999;width:300px;cursor:pointer;-webkit-transition:all ease .5s;-o-transition:all ease .5s;transition:all ease .5s;color:#fff;background:#337ab7;box-shadow:5px 5px 10px rgba(0,0,0,.3)}.ui-notification.killed{-webkit-transition:opacity ease 1s;-o-transition:opacity ease 1s;transition:opacity ease 1s;opacity:0}.ui-notification>h3{font-size:14px;font-weight:700;display:block;margin:10px 10px 0;padding:0 0 5px;text-align:left;border-bottom:1px solid rgba(255,255,255,.3)}.editable-buttons,.editable-wrap,.editable-wrap .editable-input{display:inline-block}.ui-notification a{color:#fff}.ui-notification a:hover{text-decoration:underline}.ui-notification>.message{margin:10px}.editable-bstime .well-small,.editable-wrap .editable-controls,.editable-wrap .editable-controls>input,.editable-wrap .editable-controls>select,.editable-wrap .editable-controls>textarea,.editable-wrap .editable-error,.form-group .bootstrap-select.btn-group,.form-horizontal .bootstrap-select.btn-group,.form-inline .bootstrap-select.btn-group{margin-bottom:0}.ui-notification.warning{color:#fff;background:#f0ad4e}.ui-notification.error{color:#fff;background:#d9534f}.ui-notification.success{color:#fff;background:#5cb85c}.ui-notification.info{color:#fff;background:#5bc0de}.ui-notification:hover{opacity:.7}.steps-indicator li a:before,.steps-indicator:before{background-color:#e6e6e6;content:''}.steps-indicator{right:0;bottom:0;left:0;margin:0;padding:20px 0 0;height:30px;list-style:none}.steps-indicator:before{position:absolute;height:1px}.steps-indicator.steps-2:before{left:calc(100% / 2 / 2);right:calc(100% / 2 / 2)}.steps-indicator.steps-3:before{left:calc(100% / 3 / 2);right:calc(100% / 3 / 2)}.steps-indicator.steps-4:before{left:calc(100% / 4 / 2);right:calc(100% / 4 / 2)}.steps-indicator.steps-5:before{left:calc(100% / 5 / 2);right:calc(100% / 5 / 2)}.steps-indicator.steps-6:before{left:calc(100% / 6 / 2);right:calc(100% / 6 / 2)}.steps-indicator.steps-7:before{left:calc(100% / 7 / 2);right:calc(100% / 7 / 2)}.steps-indicator.steps-8:before{left:calc(100% / 8 / 2);right:calc(100% / 8 / 2)}.steps-indicator.steps-9:before{left:calc(100% / 9 / 2);right:calc(100% / 9 / 2)}.steps-indicator.steps-10:before{left:calc(100% / 10 / 2);right:calc(100% / 10 / 2)}.steps-indicator *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.steps-indicator li{position:relative;float:left;margin:0;padding:10px 0 0;text-align:center;line-height:15px}.steps-indicator li a{color:grey;text-decoration:none;text-transform:uppercase;font-weight:700;transition:.25s;cursor:pointer}.bootstrap-select.btn-group .dropdown-menu li.disabled a,.bootstrap-select.btn-group.disabled,.bootstrap-select.btn-group>.disabled{cursor:not-allowed}.steps-indicator li a:before{position:absolute;top:-7px;left:calc(50% - 7px);width:14px;height:14px;border-radius:100%;transition:.25s}.steps-indicator li a:hover{color:#4d4d4d}.steps-indicator.steps-2 li{width:calc(100% / 2)}.steps-indicator.steps-3 li{width:calc(100% / 3)}.steps-indicator.steps-4 li{width:calc(100% / 4)}.steps-indicator.steps-5 li{width:calc(100% / 5)}.steps-indicator.steps-6 li{width:calc(100% / 6)}.steps-indicator.steps-7 li{width:calc(100% / 7)}.steps-indicator.steps-8 li{width:calc(100% / 8)}.steps-indicator.steps-9 li{width:calc(100% / 9)}.steps-indicator.steps-10 li{width:calc(100% / 10)}.steps-indicator.steps-11 li{width:calc(100% / 11)}.steps-indicator li.default a:hover{color:grey}.steps-indicator li.current a:before{background-color:grey}.steps-indicator li.done a:before{background-color:#393}.steps-indicator li.editing a:before{background-color:red}/*!
-angular-xeditable - 0.1.9
-Edit-in-place for angular.js
-Build date: 2015-03-26 
-*/.editable-wrap{white-space:nowrap;margin:0}.editable-buttons{vertical-align:top}.editable-buttons button{margin-left:5px}.editable-input.editable-has-buttons{width:auto}.editable-bstime .editable-input input[type=text]{width:46px}.editable-bstime .well-small{padding:10px}.editable-range output{display:inline-block;min-width:30px;vertical-align:top;text-align:center}.editable-color input[type=color]{width:50px}.editable-checkbox label span,.editable-checklist label span,.editable-radiolist label span{margin-left:7px;margin-right:10px}.editable-hide{display:none!important}.editable-click,a.editable-click{text-decoration:none;color:#428bca;border-bottom:dashed 1px #428bca}.editable-click:hover,a.editable-click:hover{text-decoration:none;color:#2a6496;border-bottom-color:#2a6496}.editable-empty,.editable-empty:focus,.editable-empty:hover,a.editable-empty,a.editable-empty:focus,a.editable-empty:hover{font-style:italic;color:#D14;text-decoration:none}.bootstrap-select.btn-group .dropdown-menu li.active small,.fa-inverse{color:#fff}/*!
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}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}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}sub,sup{position:relative;font-size:75%;line-height:0}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}svg:not(:root){overflow:hidden}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}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{padding:0;border:0}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-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:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.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 td,.table-bordered th{border:1px solid #ddd!important}}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}.img-thumbnail,body{background-color:#fff}@font-face{font-family:'Glyphicons Halflings';src:url(../assets/fonts/glyphicons-halflings-regular.eot);src:url(../assets/fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../assets/fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../assets/fonts/glyphicons-halflings-regular.woff) format('woff'),url(../assets/fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../assets/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro: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,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble: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"}*,:after,:before{-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:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.form-control,.ui-grid-pager-control input{-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;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:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.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}dt,kbd kbd,label{font-weight:700}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.btn,.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}ol,ul{margin-bottom:10px}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dd,dt{line-height:1.42857143}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}#ui-grid-twbs #ui-grid-twbs .btn-group-vertical>.btn-group:after,#ui-grid-twbs #ui-grid-twbs .btn-toolbar:after,#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:after,.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.dropdown-menu>li>a,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after,.ui-grid-clearfix:after,.ui-grid-footer-canvas:after,.ui-grid-header-canvas:after{clear:both}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}.container,.container-fluid{margin-right:auto;margin-left:auto}.table,address{margin-bottom:20px}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-right:15px;padding-left:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}caption{padding-top:8px;padding-bottom:8px;color:#777}.table{width:100%;max-width:100%}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{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>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@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>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{min-width:0;margin:0}legend{display:block;width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch.bootstrap-switch-focused,.form-control:focus{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.form-group-sm .form-control,.input-sm{padding:5px 10px;border-radius:3px;font-size:12px}.input-sm{height:30px;line-height:1.5}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;line-height:1.5}.form-group-lg .form-control,.input-lg{border-radius:6px;padding:10px 16px;font-size:18px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;line-height:1.3333333}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;line-height:1.3333333}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.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}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-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-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{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.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{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.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{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.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{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.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{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.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;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:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{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=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .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{height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.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;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu-right,.dropdown-menu.pull-right{right:0;left:auto}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.42857143;white-space:nowrap}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child,.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child),.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{font-weight:400;color:#333}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{right:auto;left:0}.dropdown-header{font-size:12px;color:#777}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.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{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{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 .btn,.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 .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group{float:left}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .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>.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:first-child:not(:last-child){border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child:not(:first-child){border-radius:0 0 4px 4px}.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-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;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=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{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-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.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-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.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-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.nav>li,.nav>li>a{display:block;position:relative}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn: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:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{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-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-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:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{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{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;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:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;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-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.embed-responsive,.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.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;height:50px;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.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}.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;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.breadcrumb>li,.pagination{display:inline-block}.btn .badge,.btn .label{top:-1px;position:relative}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{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:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{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:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0;border-radius:4px}.pager li,.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.badge,.label{font-weight:700;line-height:1;white-space:nowrap;text-align:center}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.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:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}a.badge:focus,a.badge:hover,a.label:focus,a.label:hover{color:#fff;cursor:pointer;text-decoration:none}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}.label:empty{display:none}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:20px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.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}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.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}}@-o-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{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(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,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-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:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{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{padding-left:0;margin-bottom:20px}.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-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{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: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,.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{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.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:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-title,.panel>.list-group,.panel>.panel-collapse>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-title{margin-top:0;font-size:16px}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.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-bordered>thead>tr:first-child>td,.panel>.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,.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,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom: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-left-radius:3px;border-top-right-radius:3px}.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:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.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:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.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,.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: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:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.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,.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: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:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table: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,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.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,.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{border-bottom-left-radius:3px}.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,.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{border-bottom-right-radius:3px}.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 td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{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:#333;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:#333}.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}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height: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:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.modal-title,.tooltip{line-height:1.42857143}.popover,.tooltip{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;line-break:auto;text-decoration:none}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal{position:fixed;z-index:1050;display:none;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.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;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.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,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;font-weight:400;text-align:left;text-align:start;white-space:normal;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.carousel,.carousel-inner{position:relative}.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{right:5px}.tooltip.top-right .tooltip-arrow{left:5px}.popover.left>.arrow:after,.popover.right>.arrow:after{bottom:-10px;content:" "}.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,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{top:0;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{right:5px;margin-top:-5px}.tooltip.bottom-right .tooltip-arrow{left:5px;margin-top:-5px}.carousel-caption,.carousel-control{color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.toast-message,pre{word-wrap:break-word}.popover.right{margin-left:10px}.popover.left{margin-left:-10px}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{left:1px;border-right-color:#fff;border-left-width:0}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bootstrap-switch,.ui-grid-pager-control input{-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.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;bottom:0;left:0;width:15%;font-size:20px;background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.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%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.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!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.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!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!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}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.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}.hidden-print{display:none!important}}.bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:4px;border:1px solid #ccc;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;border-radius:4px;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block!important;height:100%;padding:6px 12px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on{text-align:center;z-index:1}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#428bca}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#5cb85c}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{background:#f0ad4e;color:#fff}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#d9534f}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#000;background:#eee}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;color:#333;background:#fff}.bootstrap-switch .bootstrap-switch-handle-on{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch .bootstrap-switch-handle-off{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch input[type=radio],.bootstrap-switch input[type=checkbox]{position:absolute!important;top:0;left:0;opacity:0;filter:alpha(opacity=0);z-index:-1}.bootstrap-switch input[type=radio].form-control,.bootstrap-switch input[type=checkbox].form-control{height:auto}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding:1px 5px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding:5px 10px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding:6px 16px;font-size:18px;line-height:1.33}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-indeterminate,.bootstrap-switch.bootstrap-switch-readonly{cursor:default!important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label{opacity:.5;filter:alpha(opacity=50);cursor:default!important}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on{border-radius:0 3px 3px 0}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{border-radius:3px 0 0 3px}.bootstrap-switch.bootstrap-switch-focused{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label{border-bottom-left-radius:3px;border-top-left-radius:3px}.bar-legend,.chart-legend,.doughnut-legend,.line-legend,.pie-legend,.polararea-legend,.radar-legend{list-style-type:none;margin-top:5px;text-align:center;-webkit-padding-start:0;-moz-padding-start:0;padding-left:0}.bar-legend li,.chart-legend li,.doughnut-legend li,.line-legend li,.pie-legend li,.polararea-legend li,.radar-legend li{display:inline-block;white-space:nowrap;position:relative;margin-bottom:4px;border-radius:5px;padding:2px 8px 2px 28px;font-size:smaller;cursor:default}.bar-legend li span,.chart-legend li span,.doughnut-legend li span,.line-legend li span,.pie-legend li span,.polararea-legend li span,.radar-legend li span{display:block;position:absolute;left:0;top:0;width:20px;height:20px;border-radius:5px}.toast-title{font-weight:700}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8}.toast-top-center,.toast-top-full-width{top:0;right:0;width:100%}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;opacity:.8}#toast-container>:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin:auto}.toast{background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4}.toast{opacity:1!important}.toast.ng-enter{opacity:0!important;transition:opacity .3s linear}.toast.ng-enter.ng-enter-active{opacity:1!important}.toast.ng-leave{opacity:1;transition:opacity .3s linear}.toast.ng-leave.ng-leave-active{opacity:0!important}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}}.ui-notification{position:fixed;z-index:9999;width:300px;cursor:pointer;-webkit-transition:all ease .5s;-o-transition:all ease .5s;transition:all ease .5s;color:#fff;background:#337ab7;box-shadow:5px 5px 10px rgba(0,0,0,.3)}.ui-notification.killed{-webkit-transition:opacity ease 1s;-o-transition:opacity ease 1s;transition:opacity ease 1s;opacity:0}.ui-notification>h3{font-size:14px;font-weight:700;display:block;margin:10px 10px 0;padding:0 0 5px;text-align:left;border-bottom:1px solid rgba(255,255,255,.3)}.editable-buttons,.editable-wrap,.editable-wrap .editable-input{display:inline-block}.ui-notification a{color:#fff}.ui-notification a:hover{text-decoration:underline}.ui-notification>.message{margin:10px}.editable-bstime .well-small,.editable-wrap .editable-controls,.editable-wrap .editable-controls>input,.editable-wrap .editable-controls>select,.editable-wrap .editable-controls>textarea,.editable-wrap .editable-error,.form-group .bootstrap-select.btn-group,.form-horizontal .bootstrap-select.btn-group,.form-inline .bootstrap-select.btn-group{margin-bottom:0}.ui-notification.warning{color:#fff;background:#f0ad4e}.ui-notification.error{color:#fff;background:#d9534f}.ui-notification.success{color:#fff;background:#5cb85c}.ui-notification.info{color:#fff;background:#5bc0de}.ui-notification:hover{opacity:.7}.steps-indicator li a:before,.steps-indicator:before{background-color:#e6e6e6;content:''}.steps-indicator{right:0;bottom:0;left:0;margin:0;padding:20px 0 0;height:30px;list-style:none}.steps-indicator:before{position:absolute;height:1px}.steps-indicator.steps-2:before{left:calc(100% / 2 / 2);right:calc(100% / 2 / 2)}.steps-indicator.steps-3:before{left:calc(100% / 3 / 2);right:calc(100% / 3 / 2)}.steps-indicator.steps-4:before{left:calc(100% / 4 / 2);right:calc(100% / 4 / 2)}.steps-indicator.steps-5:before{left:calc(100% / 5 / 2);right:calc(100% / 5 / 2)}.steps-indicator.steps-6:before{left:calc(100% / 6 / 2);right:calc(100% / 6 / 2)}.steps-indicator.steps-7:before{left:calc(100% / 7 / 2);right:calc(100% / 7 / 2)}.steps-indicator.steps-8:before{left:calc(100% / 8 / 2);right:calc(100% / 8 / 2)}.steps-indicator.steps-9:before{left:calc(100% / 9 / 2);right:calc(100% / 9 / 2)}.steps-indicator.steps-10:before{left:calc(100% / 10 / 2);right:calc(100% / 10 / 2)}.steps-indicator *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.steps-indicator li{position:relative;float:left;margin:0;padding:10px 0 0;text-align:center;line-height:15px}.steps-indicator li a{color:grey;text-decoration:none;text-transform:uppercase;font-weight:700;transition:.25s;cursor:pointer}.bootstrap-select.btn-group .dropdown-menu li.disabled a,.bootstrap-select.btn-group.disabled,.bootstrap-select.btn-group>.disabled{cursor:not-allowed}.steps-indicator li a:before{position:absolute;top:-7px;left:calc(50% - 7px);width:14px;height:14px;border-radius:100%;transition:.25s}.steps-indicator li a:hover{color:#4d4d4d}.steps-indicator.steps-2 li{width:calc(100% / 2)}.steps-indicator.steps-3 li{width:calc(100% / 3)}.steps-indicator.steps-4 li{width:calc(100% / 4)}.steps-indicator.steps-5 li{width:calc(100% / 5)}.steps-indicator.steps-6 li{width:calc(100% / 6)}.steps-indicator.steps-7 li{width:calc(100% / 7)}.steps-indicator.steps-8 li{width:calc(100% / 8)}.steps-indicator.steps-9 li{width:calc(100% / 9)}.steps-indicator.steps-10 li{width:calc(100% / 10)}.steps-indicator.steps-11 li{width:calc(100% / 11)}.steps-indicator li.default a:hover{color:grey}.steps-indicator li.current a:before{background-color:grey}.steps-indicator li.done a:before{background-color:#393}.steps-indicator li.editing a:before{background-color:red}.editable-wrap{white-space:nowrap;margin:0}.editable-buttons{vertical-align:top}.editable-buttons button{margin-left:5px}.editable-input.editable-has-buttons{width:auto}.editable-bstime .editable-input input[type=text]{width:46px}.editable-bstime .well-small{padding:10px}.editable-range output{display:inline-block;min-width:30px;vertical-align:top;text-align:center}.editable-color input[type=color]{width:50px}.editable-checkbox label span,.editable-checklist label span,.editable-radiolist label span{margin-left:7px;margin-right:10px}.editable-hide{display:none!important}.editable-click,a.editable-click{text-decoration:none;color:#428bca;border-bottom:dashed 1px #428bca}.editable-click:hover,a.editable-click:hover{text-decoration:none;color:#2a6496;border-bottom-color:#2a6496}.editable-empty,.editable-empty:focus,.editable-empty:hover,a.editable-empty,a.editable-empty:focus,a.editable-empty:hover{font-style:italic;color:#D14;text-decoration:none}.bootstrap-select.btn-group .dropdown-menu li.active small,.fa-inverse{color:#fff}/*!
 Animate.css - http://daneden.me/animate
 Licensed under the MIT license - http://opensource.org/licenses/MIT
 
@@ -19,7 +15,7 @@ Copyright (c) 2015 Daniel Eden
  */.bootstrap-select{width:220px\9}.bootstrap-select>.dropdown-toggle{width:100%;padding-right:25px}.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle{border-color:#b94a48}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select.btn-group[class*=col-] .dropdown-toggle,.bootstrap-select.form-control:not([class*=col-]),.form-inline .bootstrap-select.btn-group .form-control{width:100%}.bootstrap-select .dropdown-toggle:focus{outline:#333 dotted thin!important;outline:-webkit-focus-ring-color auto 5px!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none}.bootstrap-select.form-control.input-group-btn{z-index:auto}.bootstrap-select.btn-group:not(.input-group-btn),.bootstrap-select.btn-group[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.btn-group.dropdown-menu-right,.bootstrap-select.btn-group[class*=col-].dropdown-menu-right,.row .bootstrap-select.btn-group[class*=col-].dropdown-menu-right{float:right}.form-group-lg .bootstrap-select.btn-group.form-control,.form-group-sm .bootstrap-select.btn-group.form-control{padding:0}.bootstrap-select.btn-group.disabled:focus,.bootstrap-select.btn-group>.disabled:focus{outline:0!important}.bootstrap-select.btn-group.bs-container{position:absolute}.bootstrap-select.btn-group.bs-container .dropdown-menu{z-index:1060}.bootstrap-select.btn-group .dropdown-toggle .filter-option{display:inline-block;overflow:hidden;width:100%;text-align:left}.bootstrap-select.btn-group .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select.btn-group .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select.btn-group .dropdown-menu li{position:relative}.bootstrap-select.btn-group .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select.btn-group .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select.btn-group .dropdown-menu li a span.check-mark{display:none}.bootstrap-select.btn-group .dropdown-menu li a span.text{display:inline-block}.bootstrap-select.btn-group .dropdown-menu li small{padding-left:.5em}.bootstrap-select.btn-group .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select.btn-group .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option{position:static}.bootstrap-select.btn-group.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark{position:absolute;display:inline-block;right:15px;margin-top:5px}.bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before{bottom:auto;top:-3px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after{bottom:auto;top:-3px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton,.mCSB_container_wrapper>.mCSB_container{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}select.bs-select-hidden,select.selectpicker{display:none!important}select.mobile-device{position:absolute!important;top:0;left:0;display:block!important;width:100%;height:100%!important;opacity:0}.fa,.fa-stack{display:inline-block}@-moz-keyframes spinner-loader{0%{-moz-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner-loader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-loader{0%{-moz-transform:rotate(0);-ms-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-loader:not(:required){-moz-animation:spinner-loader 1.5s infinite linear;-webkit-animation:spinner-loader 1.5s infinite linear;animation:spinner-loader 1.5s infinite linear;-moz-border-radius:.5em;-webkit-border-radius:.5em;border-radius:.5em;-moz-box-shadow:rgba(0,0,51,.3) 1.5em 0 0 0,rgba(0,0,51,.3) 1.1em 1.1em 0 0,rgba(0,0,51,.3) 0 1.5em 0 0,rgba(0,0,51,.3) -1.1em 1.1em 0 0,rgba(0,0,51,.3) -1.5em 0 0 0,rgba(0,0,51,.3) -1.1em -1.1em 0 0,rgba(0,0,51,.3) 0 -1.5em 0 0,rgba(0,0,51,.3) 1.1em -1.1em 0 0;-webkit-box-shadow:rgba(0,0,51,.3) 1.5em 0 0 0,rgba(0,0,51,.3) 1.1em 1.1em 0 0,rgba(0,0,51,.3) 0 1.5em 0 0,rgba(0,0,51,.3) -1.1em 1.1em 0 0,rgba(0,0,51,.3) -1.5em 0 0 0,rgba(0,0,51,.3) -1.1em -1.1em 0 0,rgba(0,0,51,.3) 0 -1.5em 0 0,rgba(0,0,51,.3) 1.1em -1.1em 0 0;box-shadow:rgba(0,0,51,.3) 1.5em 0 0 0,rgba(0,0,51,.3) 1.1em 1.1em 0 0,rgba(0,0,51,.3) 0 1.5em 0 0,rgba(0,0,51,.3) -1.1em 1.1em 0 0,rgba(0,0,51,.3) -1.5em 0 0 0,rgba(0,0,51,.3) -1.1em -1.1em 0 0,rgba(0,0,51,.3) 0 -1.5em 0 0,rgba(0,0,51,.3) 1.1em -1.1em 0 0;display:inline-block;font-size:10px;width:1em;height:1em;margin:1.5em;overflow:hidden;text-indent:100%}.fa.fa-pull-left,.fa.pull-left{margin-right:.3em}/*!
  *  Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome
  *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */@font-face{font-family:FontAwesome;src:url(../assets/fonts/fontawesome-webfont.eot?v=4.4.0);src:url(../assets/fonts/fontawesome-webfont.eot?#iefix&v=4.4.0) format('embedded-opentype'),url(../assets/fonts/fontawesome-webfont.woff2?v=4.4.0) format('woff2'),url(../assets/fonts/fontawesome-webfont.woff?v=4.4.0) format('woff'),url(../assets/fonts/fontawesome-webfont.ttf?v=4.4.0) format('truetype'),url(../assets/fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa.fa-pull-right,.fa.pull-right{margin-left:.3em}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.mCustomScrollbar{-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.mCustomScrollbar.mCS_no_scrollbar,.mCustomScrollbar.mCS_touch_action{-ms-touch-action:auto;touch-action:auto}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button,.ui-grid-pager-control button{touch-action:manipulation;-moz-user-select:none;vertical-align:middle;background-image:none}.mCustomScrollBox{position:relative;overflow:hidden;height:100%;max-width:100%;outline:0;direction:ltr}.mCSB_container{overflow:hidden;width:auto;height:auto}.mCSB_inside>.mCSB_container{margin-right:30px}.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container{margin-right:0;margin-left:30px}.mCS-dir-rtl>.mCSB_inside>.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-left:0}.mCSB_scrollTools{position:absolute;width:16px;height:auto;left:auto;top:0;right:0;bottom:0;opacity:.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_outside+.mCSB_scrollTools{right:-26px}.mCS-dir-rtl>.mCSB_inside>.mCSB_scrollTools,.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{right:auto;left:0}.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{left:-26px}.mCSB_scrollTools .mCSB_draggerContainer{position:absolute;top:0;left:0;bottom:0;right:0;height:auto}.mCSB_scrollTools a+.mCSB_draggerContainer{margin:20px 0}.mCSB_scrollTools .mCSB_draggerRail{width:2px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCSB_scrollTools .mCSB_dragger{cursor:pointer;width:100%;height:30px;z-index:1}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{position:relative;width:4px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px;text-align:center}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:12px}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:8px}.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonUp{display:block;position:absolute;height:20px;width:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools .mCSB_buttonDown{bottom:0}.mCSB_horizontal.mCSB_inside>.mCSB_container{margin-right:0;margin-bottom:30px}.mCSB_horizontal.mCSB_outside>.mCSB_container{min-height:100%}.mCSB_horizontal>.mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal{width:auto;height:16px;top:auto;right:0;bottom:0;left:0}.mCustomScrollBox+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:-26px}.mCSB_scrollTools.mCSB_scrollTools_horizontal a+.mCSB_draggerContainer{margin:0 20px}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:2px;margin:7px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{width:30px;height:100%;left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:4px;margin:6px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:12px;margin:2px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:8px;margin:4px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{display:block;position:absolute;width:20px;height:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{right:0}.mCSB_container_wrapper{position:absolute;height:auto;width:auto;overflow:hidden;top:0;left:0;right:0;bottom:0;margin-right:30px;margin-bottom:30px}.mCSB_container_wrapper>.mCSB_container{padding-right:30px;padding-bottom:30px;box-sizing:border-box}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:20px}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:20px}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden+.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:0}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools~.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:0}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:20px}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools~.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container_wrapper{margin-right:0;margin-left:30px}.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden>.mCSB_container{padding-right:0}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden>.mCSB_container{padding-bottom:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0;margin-left:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight,.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{-webkit-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;-moz-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;-o-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;transition:opacity .2s ease-in-out,background-color .2s ease-in-out}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar{-webkit-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;-moz-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;-o-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out}.ne-pdf,.ne-pdf-view button,.ne-video{-webkit-transition:all .5s linear;-moz-transition:all .5s linear;-ms-transition:all .5s linear}.ne-image,.ne-pdf,.ne-pdf-view button,.ne-video{-kthtml-transition:all .5s linear}.mCS-autoHide>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide>.mCustomScrollBox~.mCSB_scrollTools{opacity:0;filter:"alpha(opacity=0)";-ms-filter:"alpha(opacity=0)"}.mCS-autoHide:hover>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide:hover>.mCustomScrollBox~.mCSB_scrollTools,.mCustomScrollBox:hover>.mCSB_scrollTools,.mCustomScrollBox:hover~.mCSB_scrollTools,.mCustomScrollbar>.mCustomScrollBox>.mCSB_scrollTools.mCSB_scrollTools_onDrag,.mCustomScrollbar>.mCustomScrollBox~.mCSB_scrollTools.mCSB_scrollTools_onDrag{opacity:1;filter:"alpha(opacity=100)";-ms-filter:"alpha(opacity=100)"}.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.4);filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.75);filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85);filter:"alpha(opacity=85)";-ms-filter:"alpha(opacity=85)"}.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9);filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight,.mCSB_scrollTools .mCSB_buttonUp{background-image:url(../../assets/images/mCSB_buttons.png);background-repeat:no-repeat;opacity:.4;filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_buttonUp{background-position:0 0}.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -20px}.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -40px}.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -56px}.mCSB_scrollTools .mCSB_buttonDown:hover,.mCSB_scrollTools .mCSB_buttonLeft:hover,.mCSB_scrollTools .mCSB_buttonRight:hover,.mCSB_scrollTools .mCSB_buttonUp:hover{opacity:.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_buttonDown:active,.mCSB_scrollTools .mCSB_buttonLeft:active,.mCSB_scrollTools .mCSB_buttonRight:active,.mCSB_scrollTools .mCSB_buttonUp:active{opacity:.9;filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCS-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:rgba(0,0,0,.85)}.mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:rgba(0,0,0,.9)}.mCS-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px 0}.mCS-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -20px}.mCS-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -40px}.mCS-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -56px}.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail,.mCS-light-2.mCSB_scrollTools .mCSB_draggerRail{width:4px;background-color:#fff;background-color:rgba(255,255,255,.1);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:4px;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:4px;margin:6px auto}.mCS-light-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}.mCS-light-2.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px 0}.mCS-light-2.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -20px}.mCS-light-2.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -40px}.mCS-light-2.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -56px}.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px 0}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -20px}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -40px}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -56px}.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail,.mCS-light-thick.mCSB_scrollTools .mCSB_draggerRail{width:4px;background-color:#fff;background-color:rgba(255,255,255,.1);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:4px;margin:6px 0}.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:6px;margin:5px auto}.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-16px 0}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-16px -20px}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-20px -40px}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-20px -56px}.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-96px 0}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-96px -20px}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-100px -40px}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-100px -56px}.mCS-light-thin.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.1)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:2px}.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%}.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:2px;margin:7px auto}.mCS-dark-thin.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px 0}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -20px}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -40px}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -56px}.mCS-rounded.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.15)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger,.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger,.mCS-rounded.mCSB_scrollTools .mCSB_dragger{height:14px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:14px;margin:0 1px}.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger{width:14px}.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{height:14px;margin:1px 0}.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:16px;height:16px;margin:-1px 0}.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:4px}.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:16px;width:16px;margin:0 -1px}.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:4px;margin:6px 0}.mCS-rounded.mCSB_scrollTools .mCSB_buttonUp{background-position:0 -72px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -92px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -112px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -128px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px -72px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -92px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -112px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -128px}.mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail{width:4px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail{background-color:transparent;background-position:center}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg==);background-repeat:repeat-y;opacity:.3;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail{height:4px;margin:6px 0;background-repeat:repeat-x}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonUp{background-position:-16px -72px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonDown{background-position:-16px -92px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonLeft{background-position:-20px -112px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonRight{background-position:-20px -128px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII=)}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-96px -72px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-96px -92px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-100px -112px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-100px -128px}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-repeat:repeat-y;background-image:-moz-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,.5)),color-stop(100%,rgba(255,255,255,0)));background-image:-webkit-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-o-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-ms-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:linear-gradient(to right,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{background-repeat:repeat-x;background-image:-moz-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(255,255,255,.5)),color-stop(100%,rgba(255,255,255,0)));background-image:-webkit-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-o-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-ms-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:linear-gradient(to bottom,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%)}.mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger,.mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger{height:70px}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger{width:70px}.mCS-3d-dark.mCSB_scrollTools,.mCS-3d.mCSB_scrollTools{opacity:1;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_draggerRail{-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools .mCSB_draggerRail{width:8px;background-color:#000;background-color:rgba(0,0,0,.2);box-shadow:inset 1px 0 1px rgba(0,0,0,.5),inset -1px 0 1px rgba(255,255,255,.2)}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#555}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:8px}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:8px;margin:4px 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.5),inset 0 -1px 1px rgba(255,255,255,.2)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:8px;margin:4px auto}.mCS-3d.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-3d.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-3d.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-3d.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);box-shadow:inset 1px 0 1px rgba(0,0,0,.1)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{box-shadow:inset 0 1px 1px rgba(0,0,0,.1)}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-3d-thick-dark.mCSB_scrollTools,.mCS-3d-thick.mCSB_scrollTools{opacity:1;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-3d-thick-dark.mCSB_scrollTools,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer,.mCS-3d-thick.mCSB_scrollTools,.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mCSB_inside+.mCS-3d-thick-dark.mCSB_scrollTools_vertical,.mCSB_inside+.mCS-3d-thick.mCSB_scrollTools_vertical{right:1px}.mCS-3d-thick-dark.mCSB_scrollTools_vertical,.mCS-3d-thick.mCSB_scrollTools_vertical{box-shadow:inset 1px 0 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.5)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal,.mCS-3d-thick.mCSB_scrollTools_horizontal{bottom:1px;box-shadow:inset 0 1px 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.5)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;box-shadow:inset 1px 0 0 rgba(255,255,255,.4);width:12px;margin:2px;position:absolute;height:auto;top:0;bottom:0;left:0;right:0}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 0 1px 0 rgba(255,255,255,.4);height:12px;width:auto}.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#555}.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{background-color:#000;background-color:rgba(0,0,0,.05);box-shadow:inset 1px 1px 16px rgba(0,0,0,.1)}.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-3d-thick-dark.mCSB_scrollTools{box-shadow:inset 0 0 14px rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal{box-shadow:inset 0 1px 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 1px 0 0 rgba(255,255,255,.4),inset -1px 0 0 rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),inset 0 -1px 0 rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#777}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{background-color:#fff;background-color:rgba(0,0,0,.05);box-shadow:inset 1px 1px 16px rgba(0,0,0,.1)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-minimal.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCSB_outside+.mCS-minimal-dark.mCSB_scrollTools_vertical,.mCSB_outside+.mCS-minimal.mCSB_scrollTools_vertical{right:0;margin:12px 0}.mCustomScrollBox.mCS-minimal+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal-dark+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal-dark+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:0;margin:0 12px}.mCS-dir-rtl>.mCSB_outside+.mCS-minimal-dark.mCSB_scrollTools_vertical,.mCS-dir-rtl>.mCSB_outside+.mCS-minimal.mCSB_scrollTools_vertical{left:0;right:auto}.mCS-minimal-dark.mCSB_scrollTools_vertical .mCSB_dragger,.mCS-minimal.mCSB_scrollTools_vertical .mCSB_dragger{height:50px}.mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-minimal.mCSB_scrollTools_horizontal .mCSB_dragger{width:50px}.mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.2);filter:"alpha(opacity=20)";-ms-filter:"alpha(opacity=20)"}.mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.5);filter:"alpha(opacity=50)";-ms-filter:"alpha(opacity=50)"}.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.2);filter:"alpha(opacity=20)";-ms-filter:"alpha(opacity=20)"}.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.5);filter:"alpha(opacity=50)";-ms-filter:"alpha(opacity=50)"}.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail{width:6px;background-color:#000;background-color:rgba(0,0,0,.2)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px}.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:6px;margin:5px 0}.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:12px}.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:12px;margin:2px 0}.mCS-light-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1)}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset.mCSB_scrollTools .mCSB_draggerRail{width:12px;background-color:#000;background-color:rgba(0,0,0,.2)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px;margin:3px 5px;position:absolute;height:auto;top:0;bottom:0;left:0;right:0}.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{height:6px;margin:5px 3px;position:absolute;width:auto;top:0;bottom:0;left:0;right:0}.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:12px;margin:2px 0}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.ne-image-wrapper,.ne-video-player{background-image:url(../assets/images/loader.svg);background-repeat:no-repeat;background-position:center}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent;border-width:1px;border-style:solid;border-color:#fff;border-color:rgba(255,255,255,.2);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,.ui-grid-cell,.ui-grid-header,.ui-grid-header-cell{box-sizing:border-box}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{border-color:#000;border-color:rgba(0,0,0,.2)}.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.6)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.6)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.75)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}@font-face{font-family:simple-line-icons;src:url(../assets/fonts/Simple-Line-Icons.eot?v=2.2.2);src:url(../assets/fonts/Simple-Line-Icons.eot?#iefix&v=2.2.2) format('embedded-opentype'),url(../assets/fonts/Simple-Line-Icons.ttf?v=2.2.2) format('truetype'),url(../assets/fonts/Simple-Line-Icons.woff2?v=2.2.2) format('woff2'),url(../assets/fonts/Simple-Line-Icons.woff?v=2.2.2) format('woff'),url(../assets/fonts/Simple-Line-Icons.svg?v=2.2.2#simple-line-icons) format('svg');font-weight:400;font-style:normal}.icon-action-redo,.icon-action-undo,.icon-anchor,.icon-arrow-down,.icon-arrow-down-circle,.icon-arrow-left,.icon-arrow-left-circle,.icon-arrow-right,.icon-arrow-right-circle,.icon-arrow-up,.icon-arrow-up-circle,.icon-badge,.icon-bag,.icon-ban,.icon-basket,.icon-basket-loaded,.icon-bell,.icon-book-open,.icon-briefcase,.icon-bubble,.icon-bubbles,.icon-bulb,.icon-calculator,.icon-calendar,.icon-call-end,.icon-call-in,.icon-call-out,.icon-camera,.icon-camrecorder,.icon-chart,.icon-check,.icon-chemistry,.icon-clock,.icon-close,.icon-cloud-download,.icon-cloud-upload,.icon-compass,.icon-control-end,.icon-control-forward,.icon-control-pause,.icon-control-play,.icon-control-rewind,.icon-control-start,.icon-credit-card,.icon-crop,.icon-cup,.icon-cursor,.icon-cursor-move,.icon-diamond,.icon-direction,.icon-directions,.icon-disc,.icon-dislike,.icon-doc,.icon-docs,.icon-drawar,.icon-drop,.icon-earphones,.icon-earphones-alt,.icon-emotsmile,.icon-energy,.icon-envelope,.icon-envelope-letter,.icon-envelope-open,.icon-equalizer,.icon-eye,.icon-eyeglass,.icon-feed,.icon-film,.icon-fire,.icon-flag,.icon-folder,.icon-folder-alt,.icon-frame,.icon-game-controller,.icon-ghost,.icon-globe,.icon-globe-alt,.icon-graduation,.icon-graph,.icon-grid,.icon-handbag,.icon-heart,.icon-home,.icon-hourglass,.icon-info,.icon-key,.icon-layers,.icon-like,.icon-link,.icon-list,.icon-location-pin,.icon-lock,.icon-lock-open,.icon-login,.icon-logout,.icon-loop,.icon-magic-wand,.icon-magnet,.icon-magnifier,.icon-magnifier-add,.icon-magnifier-remove,.icon-map,.icon-menu,.icon-microphone,.icon-mouse,.icon-music-tone,.icon-music-tone-alt,.icon-mustache,.icon-note,.icon-notebook,.icon-options,.icon-options-vertical,.icon-paper-clip,.icon-paper-plane,.icon-paypal,.icon-pencil,.icon-people,.icon-phone,.icon-picture,.icon-pie-chart,.icon-pin,.icon-plane,.icon-playlist,.icon-plus,.icon-power,.icon-present,.icon-printer,.icon-puzzle,.icon-question,.icon-refresh,.icon-reload,.icon-rocket,.icon-screen-desktop,.icon-screen-smartphone,.icon-screen-tablet,.icon-settings,.icon-share,.icon-share-alt,.icon-shield,.icon-shuffle,.icon-size-actual,.icon-size-fullscreen,.icon-social-behance,.icon-social-dribbble,.icon-social-dropbox,.icon-social-facebook,.icon-social-foursqare,.icon-social-github,.icon-social-gplus,.icon-social-instagram,.icon-social-linkedin,.icon-social-pinterest,.icon-social-reddit,.icon-social-skype,.icon-social-soundcloud,.icon-social-spotify,.icon-social-stumbleupon,.icon-social-tumblr,.icon-social-twitter,.icon-social-youtube,.icon-speech,.icon-speedometer,.icon-star,.icon-support,.icon-symble-female,.icon-symbol-male,.icon-tag,.icon-target,.icon-trash,.icon-trophy,.icon-umbrella,.icon-user,.icon-user-female,.icon-user-follow,.icon-user-following,.icon-user-unfollow,.icon-vector,.icon-volume-1,.icon-volume-2,.icon-volume-off,.icon-wallet,.icon-wrench{font-family:simple-line-icons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-user:before{content:"\e005"}.icon-people:before{content:"\e001"}.icon-user-female:before{content:"\e000"}.icon-user-follow:before{content:"\e002"}.icon-user-following:before{content:"\e003"}.icon-user-unfollow:before{content:"\e004"}.icon-login:before{content:"\e066"}.icon-logout:before{content:"\e065"}.icon-emotsmile:before{content:"\e021"}.icon-phone:before{content:"\e600"}.icon-call-end:before{content:"\e048"}.icon-call-in:before{content:"\e047"}.icon-call-out:before{content:"\e046"}.icon-map:before{content:"\e033"}.icon-location-pin:before{content:"\e096"}.icon-direction:before{content:"\e042"}.icon-directions:before{content:"\e041"}.icon-compass:before{content:"\e045"}.icon-layers:before{content:"\e034"}.icon-menu:before{content:"\e601"}.icon-list:before{content:"\e067"}.icon-options-vertical:before{content:"\e602"}.icon-options:before{content:"\e603"}.icon-arrow-down:before{content:"\e604"}.icon-arrow-left:before{content:"\e605"}.icon-arrow-right:before{content:"\e606"}.icon-arrow-up:before{content:"\e607"}.icon-arrow-up-circle:before{content:"\e078"}.icon-arrow-left-circle:before{content:"\e07a"}.icon-arrow-right-circle:before{content:"\e079"}.icon-arrow-down-circle:before{content:"\e07b"}.icon-check:before{content:"\e080"}.icon-clock:before{content:"\e081"}.icon-plus:before{content:"\e095"}.icon-close:before{content:"\e082"}.icon-trophy:before{content:"\e006"}.icon-screen-smartphone:before{content:"\e010"}.icon-screen-desktop:before{content:"\e011"}.icon-plane:before{content:"\e012"}.icon-notebook:before{content:"\e013"}.icon-mustache:before{content:"\e014"}.icon-mouse:before{content:"\e015"}.icon-magnet:before{content:"\e016"}.icon-energy:before{content:"\e020"}.icon-disc:before{content:"\e022"}.icon-cursor:before{content:"\e06e"}.icon-cursor-move:before{content:"\e023"}.icon-crop:before{content:"\e024"}.icon-chemistry:before{content:"\e026"}.icon-speedometer:before{content:"\e007"}.icon-shield:before{content:"\e00e"}.icon-screen-tablet:before{content:"\e00f"}.icon-magic-wand:before{content:"\e017"}.icon-hourglass:before{content:"\e018"}.icon-graduation:before{content:"\e019"}.icon-ghost:before{content:"\e01a"}.icon-game-controller:before{content:"\e01b"}.icon-fire:before{content:"\e01c"}.icon-eyeglass:before{content:"\e01d"}.icon-envelope-open:before{content:"\e01e"}.icon-envelope-letter:before{content:"\e01f"}.icon-bell:before{content:"\e027"}.icon-badge:before{content:"\e028"}.icon-anchor:before{content:"\e029"}.icon-wallet:before{content:"\e02a"}.icon-vector:before{content:"\e02b"}.icon-speech:before{content:"\e02c"}.icon-puzzle:before{content:"\e02d"}.icon-printer:before{content:"\e02e"}.icon-present:before{content:"\e02f"}.icon-playlist:before{content:"\e030"}.icon-pin:before{content:"\e031"}.icon-picture:before{content:"\e032"}.icon-handbag:before{content:"\e035"}.icon-globe-alt:before{content:"\e036"}.icon-globe:before{content:"\e037"}.icon-folder-alt:before{content:"\e039"}.icon-folder:before{content:"\e089"}.icon-film:before{content:"\e03a"}.icon-feed:before{content:"\e03b"}.icon-drop:before{content:"\e03e"}.icon-drawar:before{content:"\e03f"}.icon-docs:before{content:"\e040"}.icon-doc:before{content:"\e085"}.icon-diamond:before{content:"\e043"}.icon-cup:before{content:"\e044"}.icon-calculator:before{content:"\e049"}.icon-bubbles:before{content:"\e04a"}.icon-briefcase:before{content:"\e04b"}.icon-book-open:before{content:"\e04c"}.icon-basket-loaded:before{content:"\e04d"}.icon-basket:before{content:"\e04e"}.icon-bag:before{content:"\e04f"}.icon-action-undo:before{content:"\e050"}.icon-action-redo:before{content:"\e051"}.icon-wrench:before{content:"\e052"}.icon-umbrella:before{content:"\e053"}.icon-trash:before{content:"\e054"}.icon-tag:before{content:"\e055"}.icon-support:before{content:"\e056"}.icon-frame:before{content:"\e038"}.icon-size-fullscreen:before{content:"\e057"}.icon-size-actual:before{content:"\e058"}.icon-shuffle:before{content:"\e059"}.icon-share-alt:before{content:"\e05a"}.icon-share:before{content:"\e05b"}.icon-rocket:before{content:"\e05c"}.icon-question:before{content:"\e05d"}.icon-pie-chart:before{content:"\e05e"}.icon-pencil:before{content:"\e05f"}.icon-note:before{content:"\e060"}.icon-loop:before{content:"\e064"}.icon-home:before{content:"\e069"}.icon-grid:before{content:"\e06a"}.icon-graph:before{content:"\e06b"}.icon-microphone:before{content:"\e063"}.icon-music-tone-alt:before{content:"\e061"}.icon-music-tone:before{content:"\e062"}.icon-earphones-alt:before{content:"\e03c"}.icon-earphones:before{content:"\e03d"}.icon-equalizer:before{content:"\e06c"}.icon-like:before{content:"\e068"}.icon-dislike:before{content:"\e06d"}.icon-control-start:before{content:"\e06f"}.icon-control-rewind:before{content:"\e070"}.icon-control-play:before{content:"\e071"}.icon-control-pause:before{content:"\e072"}.icon-control-forward:before{content:"\e073"}.icon-control-end:before{content:"\e074"}.icon-volume-1:before{content:"\e09f"}.icon-volume-2:before{content:"\e0a0"}.icon-volume-off:before{content:"\e0a1"}.icon-calendar:before{content:"\e075"}.icon-bulb:before{content:"\e076"}.icon-chart:before{content:"\e077"}.icon-ban:before{content:"\e07c"}.icon-bubble:before{content:"\e07d"}.icon-camrecorder:before{content:"\e07e"}.icon-camera:before{content:"\e07f"}.icon-cloud-download:before{content:"\e083"}.icon-cloud-upload:before{content:"\e084"}.icon-envelope:before{content:"\e086"}.icon-eye:before{content:"\e087"}.icon-flag:before{content:"\e088"}.icon-heart:before{content:"\e08a"}.icon-info:before{content:"\e08b"}.icon-key:before{content:"\e08c"}.icon-link:before{content:"\e08d"}.icon-lock:before{content:"\e08e"}.icon-lock-open:before{content:"\e08f"}.icon-magnifier:before{content:"\e090"}.icon-magnifier-add:before{content:"\e091"}.icon-magnifier-remove:before{content:"\e092"}.icon-paper-clip:before{content:"\e093"}.icon-paper-plane:before{content:"\e094"}.icon-power:before{content:"\e097"}.icon-refresh:before{content:"\e098"}.icon-reload:before{content:"\e099"}.icon-settings:before{content:"\e09a"}.icon-star:before{content:"\e09b"}.icon-symble-female:before{content:"\e09c"}.icon-symbol-male:before{content:"\e09d"}.icon-target:before{content:"\e09e"}.icon-credit-card:before{content:"\e025"}.icon-paypal:before{content:"\e608"}.icon-social-tumblr:before{content:"\e00a"}.icon-social-twitter:before{content:"\e009"}.icon-social-facebook:before{content:"\e00b"}.icon-social-instagram:before{content:"\e609"}.icon-social-linkedin:before{content:"\e60a"}.icon-social-pinterest:before{content:"\e60b"}.icon-social-github:before{content:"\e60c"}.icon-social-gplus:before{content:"\e60d"}.icon-social-reddit:before{content:"\e60e"}.icon-social-skype:before{content:"\e60f"}.icon-social-dribbble:before{content:"\e00d"}.icon-social-behance:before{content:"\e610"}.icon-social-foursqare:before{content:"\e611"}.icon-social-soundcloud:before{content:"\e612"}.icon-social-spotify:before{content:"\e613"}.icon-social-stumbleupon:before{content:"\e614"}.icon-social-youtube:before{content:"\e008"}.icon-social-dropbox:before{content:"\e00c"}.ta-hidden-input{width:1px;height:1px;border:none;margin:0;padding:0;position:absolute;top:-10000px;left:-10000px;opacity:0;overflow:hidden}.ta-root.focussed>.ta-scroll-window.form-control{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ta-editor.ta-html,.ta-scroll-window.form-control{min-height:300px;height:auto;overflow:auto;font-family:inherit;font-size:100%}.ta-scroll-window.form-control{position:relative;padding:0}.ta-scroll-window>.ta-bind{height:auto;min-height:300px;padding:6px 12px}.ta-editor:focus{user-select:text}.ta-resizer-handle-overlay{z-index:100;position:absolute;display:none}.ta-resizer-handle-overlay>.ta-resizer-handle-info{position:absolute;bottom:16px;right:16px;border:1px solid #000;background-color:#FFF;padding:0 4px;opacity:.7}.ta-resizer-handle-overlay>.ta-resizer-handle-background{position:absolute;bottom:5px;right:5px;left:5px;top:5px;border:1px solid #000;background-color:rgba(0,0,0,.2)}.ta-resizer-handle-overlay>.ta-resizer-handle-corner{width:10px;height:10px;position:absolute}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tl{top:0;left:0;border-left:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tr{top:0;right:0;border-right:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-bl{bottom:0;left:0;border-left:1px solid #000;border-bottom:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-br{bottom:0;right:0;border:1px solid #000;cursor:se-resize;background-color:#fff}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.bottom{margin-top:10px}.popover-title{padding:8px 14px;margin:0;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{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}/*!
+ */@font-face{font-family:FontAwesome;src:url(../assets/fonts/fontawesome-webfont.eot?v=4.4.0);src:url(../assets/fonts/fontawesome-webfont.eot?#iefix&v=4.4.0) format('embedded-opentype'),url(../assets/fonts/fontawesome-webfont.woff2?v=4.4.0) format('woff2'),url(../assets/fonts/fontawesome-webfont.woff?v=4.4.0) format('woff'),url(../assets/fonts/fontawesome-webfont.ttf?v=4.4.0) format('truetype'),url(../assets/fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa.fa-pull-right,.fa.pull-right{margin-left:.3em}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.mCustomScrollbar{-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.mCustomScrollbar.mCS_no_scrollbar,.mCustomScrollbar.mCS_touch_action{-ms-touch-action:auto;touch-action:auto}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button,.ui-grid-pager-control button{touch-action:manipulation;-moz-user-select:none;vertical-align:middle;background-image:none}.mCustomScrollBox{position:relative;overflow:hidden;height:100%;max-width:100%;outline:0;direction:ltr}.mCSB_container{overflow:hidden;width:auto;height:auto}.mCSB_inside>.mCSB_container{margin-right:30px}.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container{margin-right:0;margin-left:30px}.mCS-dir-rtl>.mCSB_inside>.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-left:0}.mCSB_scrollTools{position:absolute;width:16px;height:auto;left:auto;top:0;right:0;bottom:0;opacity:.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_outside+.mCSB_scrollTools{right:-26px}.mCS-dir-rtl>.mCSB_inside>.mCSB_scrollTools,.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{right:auto;left:0}.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{left:-26px}.mCSB_scrollTools .mCSB_draggerContainer{position:absolute;top:0;left:0;bottom:0;right:0;height:auto}.mCSB_scrollTools a+.mCSB_draggerContainer{margin:20px 0}.mCSB_scrollTools .mCSB_draggerRail{width:2px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCSB_scrollTools .mCSB_dragger{cursor:pointer;width:100%;height:30px;z-index:1}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{position:relative;width:4px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px;text-align:center}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:12px}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:8px}.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonUp{display:block;position:absolute;height:20px;width:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools .mCSB_buttonDown{bottom:0}.mCSB_horizontal.mCSB_inside>.mCSB_container{margin-right:0;margin-bottom:30px}.mCSB_horizontal.mCSB_outside>.mCSB_container{min-height:100%}.mCSB_horizontal>.mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal{width:auto;height:16px;top:auto;right:0;bottom:0;left:0}.mCustomScrollBox+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:-26px}.mCSB_scrollTools.mCSB_scrollTools_horizontal a+.mCSB_draggerContainer{margin:0 20px}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:2px;margin:7px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{width:30px;height:100%;left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:4px;margin:6px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:12px;margin:2px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:8px;margin:4px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{display:block;position:absolute;width:20px;height:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{right:0}.mCSB_container_wrapper{position:absolute;height:auto;width:auto;overflow:hidden;top:0;left:0;right:0;bottom:0;margin-right:30px;margin-bottom:30px}.mCSB_container_wrapper>.mCSB_container{padding-right:30px;padding-bottom:30px;box-sizing:border-box}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:20px}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:20px}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden+.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:0}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools~.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:0}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:20px}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools~.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container_wrapper{margin-right:0;margin-left:30px}.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden>.mCSB_container{padding-right:0}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden>.mCSB_container{padding-bottom:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0;margin-left:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight,.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{-webkit-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;-moz-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;-o-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;transition:opacity .2s ease-in-out,background-color .2s ease-in-out}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar{-webkit-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;-moz-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;-o-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out}.ne-pdf,.ne-pdf-view button,.ne-video{-webkit-transition:all .5s linear;-moz-transition:all .5s linear;-ms-transition:all .5s linear}.ne-image,.ne-pdf,.ne-pdf-view button,.ne-video{-kthtml-transition:all .5s linear}.mCS-autoHide>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide>.mCustomScrollBox~.mCSB_scrollTools{opacity:0;filter:"alpha(opacity=0)";-ms-filter:"alpha(opacity=0)"}.mCS-autoHide:hover>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide:hover>.mCustomScrollBox~.mCSB_scrollTools,.mCustomScrollBox:hover>.mCSB_scrollTools,.mCustomScrollBox:hover~.mCSB_scrollTools,.mCustomScrollbar>.mCustomScrollBox>.mCSB_scrollTools.mCSB_scrollTools_onDrag,.mCustomScrollbar>.mCustomScrollBox~.mCSB_scrollTools.mCSB_scrollTools_onDrag{opacity:1;filter:"alpha(opacity=100)";-ms-filter:"alpha(opacity=100)"}.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.4);filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.75);filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85);filter:"alpha(opacity=85)";-ms-filter:"alpha(opacity=85)"}.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9);filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight,.mCSB_scrollTools .mCSB_buttonUp{background-image:url(../../assets/images/mCSB_buttons.png);background-repeat:no-repeat;opacity:.4;filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_buttonUp{background-position:0 0}.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -20px}.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -40px}.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -56px}.mCSB_scrollTools .mCSB_buttonDown:hover,.mCSB_scrollTools .mCSB_buttonLeft:hover,.mCSB_scrollTools .mCSB_buttonRight:hover,.mCSB_scrollTools .mCSB_buttonUp:hover{opacity:.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_buttonDown:active,.mCSB_scrollTools .mCSB_buttonLeft:active,.mCSB_scrollTools .mCSB_buttonRight:active,.mCSB_scrollTools .mCSB_buttonUp:active{opacity:.9;filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCS-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:rgba(0,0,0,.85)}.mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:rgba(0,0,0,.9)}.mCS-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px 0}.mCS-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -20px}.mCS-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -40px}.mCS-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -56px}.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail,.mCS-light-2.mCSB_scrollTools .mCSB_draggerRail{width:4px;background-color:#fff;background-color:rgba(255,255,255,.1);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:4px;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:4px;margin:6px auto}.mCS-light-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}.mCS-light-2.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px 0}.mCS-light-2.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -20px}.mCS-light-2.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -40px}.mCS-light-2.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -56px}.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px 0}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -20px}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -40px}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -56px}.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail,.mCS-light-thick.mCSB_scrollTools .mCSB_draggerRail{width:4px;background-color:#fff;background-color:rgba(255,255,255,.1);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:4px;margin:6px 0}.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:6px;margin:5px auto}.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-16px 0}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-16px -20px}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-20px -40px}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-20px -56px}.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-96px 0}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-96px -20px}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-100px -40px}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-100px -56px}.mCS-light-thin.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.1)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:2px}.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%}.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:2px;margin:7px auto}.mCS-dark-thin.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px 0}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -20px}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -40px}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -56px}.mCS-rounded.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.15)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger,.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger,.mCS-rounded.mCSB_scrollTools .mCSB_dragger{height:14px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:14px;margin:0 1px}.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger{width:14px}.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{height:14px;margin:1px 0}.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:16px;height:16px;margin:-1px 0}.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:4px}.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:16px;width:16px;margin:0 -1px}.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:4px;margin:6px 0}.mCS-rounded.mCSB_scrollTools .mCSB_buttonUp{background-position:0 -72px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -92px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -112px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -128px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px -72px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -92px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -112px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -128px}.mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail{width:4px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail{background-color:transparent;background-position:center}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg==);background-repeat:repeat-y;opacity:.3;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail{height:4px;margin:6px 0;background-repeat:repeat-x}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonUp{background-position:-16px -72px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonDown{background-position:-16px -92px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonLeft{background-position:-20px -112px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonRight{background-position:-20px -128px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII=)}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-96px -72px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-96px -92px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-100px -112px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-100px -128px}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-repeat:repeat-y;background-image:-moz-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,.5)),color-stop(100%,rgba(255,255,255,0)));background-image:-webkit-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-o-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-ms-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:linear-gradient(to right,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{background-repeat:repeat-x;background-image:-moz-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(255,255,255,.5)),color-stop(100%,rgba(255,255,255,0)));background-image:-webkit-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-o-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-ms-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:linear-gradient(to bottom,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%)}.mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger,.mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger{height:70px}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger{width:70px}.mCS-3d-dark.mCSB_scrollTools,.mCS-3d.mCSB_scrollTools{opacity:1;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_draggerRail{-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools .mCSB_draggerRail{width:8px;background-color:#000;background-color:rgba(0,0,0,.2);box-shadow:inset 1px 0 1px rgba(0,0,0,.5),inset -1px 0 1px rgba(255,255,255,.2)}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#555}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:8px}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:8px;margin:4px 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.5),inset 0 -1px 1px rgba(255,255,255,.2)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:8px;margin:4px auto}.mCS-3d.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-3d.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-3d.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-3d.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);box-shadow:inset 1px 0 1px rgba(0,0,0,.1)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{box-shadow:inset 0 1px 1px rgba(0,0,0,.1)}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-3d-thick-dark.mCSB_scrollTools,.mCS-3d-thick.mCSB_scrollTools{opacity:1;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-3d-thick-dark.mCSB_scrollTools,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer,.mCS-3d-thick.mCSB_scrollTools,.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mCSB_inside+.mCS-3d-thick-dark.mCSB_scrollTools_vertical,.mCSB_inside+.mCS-3d-thick.mCSB_scrollTools_vertical{right:1px}.mCS-3d-thick-dark.mCSB_scrollTools_vertical,.mCS-3d-thick.mCSB_scrollTools_vertical{box-shadow:inset 1px 0 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.5)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal,.mCS-3d-thick.mCSB_scrollTools_horizontal{bottom:1px;box-shadow:inset 0 1px 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.5)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;box-shadow:inset 1px 0 0 rgba(255,255,255,.4);width:12px;margin:2px;position:absolute;height:auto;top:0;bottom:0;left:0;right:0}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 0 1px 0 rgba(255,255,255,.4);height:12px;width:auto}.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#555}.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{background-color:#000;background-color:rgba(0,0,0,.05);box-shadow:inset 1px 1px 16px rgba(0,0,0,.1)}.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-3d-thick-dark.mCSB_scrollTools{box-shadow:inset 0 0 14px rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal{box-shadow:inset 0 1px 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 1px 0 0 rgba(255,255,255,.4),inset -1px 0 0 rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),inset 0 -1px 0 rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#777}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{background-color:#fff;background-color:rgba(0,0,0,.05);box-shadow:inset 1px 1px 16px rgba(0,0,0,.1)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-minimal.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCSB_outside+.mCS-minimal-dark.mCSB_scrollTools_vertical,.mCSB_outside+.mCS-minimal.mCSB_scrollTools_vertical{right:0;margin:12px 0}.mCustomScrollBox.mCS-minimal+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal-dark+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal-dark+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:0;margin:0 12px}.mCS-dir-rtl>.mCSB_outside+.mCS-minimal-dark.mCSB_scrollTools_vertical,.mCS-dir-rtl>.mCSB_outside+.mCS-minimal.mCSB_scrollTools_vertical{left:0;right:auto}.mCS-minimal-dark.mCSB_scrollTools_vertical .mCSB_dragger,.mCS-minimal.mCSB_scrollTools_vertical .mCSB_dragger{height:50px}.mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-minimal.mCSB_scrollTools_horizontal .mCSB_dragger{width:50px}.mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.2);filter:"alpha(opacity=20)";-ms-filter:"alpha(opacity=20)"}.mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.5);filter:"alpha(opacity=50)";-ms-filter:"alpha(opacity=50)"}.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.2);filter:"alpha(opacity=20)";-ms-filter:"alpha(opacity=20)"}.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.5);filter:"alpha(opacity=50)";-ms-filter:"alpha(opacity=50)"}.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail{width:6px;background-color:#000;background-color:rgba(0,0,0,.2)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px}.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:6px;margin:5px 0}.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:12px}.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:12px;margin:2px 0}.mCS-light-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1)}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset.mCSB_scrollTools .mCSB_draggerRail{width:12px;background-color:#000;background-color:rgba(0,0,0,.2)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px;margin:3px 5px;position:absolute;height:auto;top:0;bottom:0;left:0;right:0}.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{height:6px;margin:5px 3px;position:absolute;width:auto;top:0;bottom:0;left:0;right:0}.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:12px;margin:2px 0}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.ne-image-wrapper,.ne-video-player{background-image:url(../assets/images/loader.svg);background-repeat:no-repeat;background-position:center}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent;border-width:1px;border-style:solid;border-color:#fff;border-color:rgba(255,255,255,.2);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,.ui-grid-cell,.ui-grid-header,.ui-grid-header-cell{box-sizing:border-box}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{border-color:#000;border-color:rgba(0,0,0,.2)}.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.6)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.6)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.75)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}@font-face{font-family:simple-line-icons;src:url(../assets/fonts/Simple-Line-Icons.eot?v=2.2.2);src:url(../assets/fonts/Simple-Line-Icons.eot?#iefix&v=2.2.2) format('embedded-opentype'),url(../assets/fonts/Simple-Line-Icons.ttf?v=2.2.2) format('truetype'),url(../assets/fonts/Simple-Line-Icons.woff2?v=2.2.2) format('woff2'),url(../assets/fonts/Simple-Line-Icons.woff?v=2.2.2) format('woff'),url(../assets/fonts/Simple-Line-Icons.svg?v=2.2.2#simple-line-icons) format('svg');font-weight:400;font-style:normal}.icon-action-redo,.icon-action-undo,.icon-anchor,.icon-arrow-down,.icon-arrow-down-circle,.icon-arrow-left,.icon-arrow-left-circle,.icon-arrow-right,.icon-arrow-right-circle,.icon-arrow-up,.icon-arrow-up-circle,.icon-badge,.icon-bag,.icon-ban,.icon-basket,.icon-basket-loaded,.icon-bell,.icon-book-open,.icon-briefcase,.icon-bubble,.icon-bubbles,.icon-bulb,.icon-calculator,.icon-calendar,.icon-call-end,.icon-call-in,.icon-call-out,.icon-camera,.icon-camrecorder,.icon-chart,.icon-check,.icon-chemistry,.icon-clock,.icon-close,.icon-cloud-download,.icon-cloud-upload,.icon-compass,.icon-control-end,.icon-control-forward,.icon-control-pause,.icon-control-play,.icon-control-rewind,.icon-control-start,.icon-credit-card,.icon-crop,.icon-cup,.icon-cursor,.icon-cursor-move,.icon-diamond,.icon-direction,.icon-directions,.icon-disc,.icon-dislike,.icon-doc,.icon-docs,.icon-drawer,.icon-drop,.icon-earphones,.icon-earphones-alt,.icon-emotsmile,.icon-energy,.icon-envelope,.icon-envelope-letter,.icon-envelope-open,.icon-equalizer,.icon-eye,.icon-eyeglass,.icon-feed,.icon-film,.icon-fire,.icon-flag,.icon-folder,.icon-folder-alt,.icon-frame,.icon-game-controller,.icon-ghost,.icon-globe,.icon-globe-alt,.icon-graduation,.icon-graph,.icon-grid,.icon-handbag,.icon-heart,.icon-home,.icon-hourglass,.icon-info,.icon-key,.icon-layers,.icon-like,.icon-link,.icon-list,.icon-location-pin,.icon-lock,.icon-lock-open,.icon-login,.icon-logout,.icon-loop,.icon-magic-wand,.icon-magnet,.icon-magnifier,.icon-magnifier-add,.icon-magnifier-remove,.icon-map,.icon-menu,.icon-microphone,.icon-mouse,.icon-music-tone,.icon-music-tone-alt,.icon-mustache,.icon-note,.icon-notebook,.icon-options,.icon-options-vertical,.icon-paper-clip,.icon-paper-plane,.icon-paypal,.icon-pencil,.icon-people,.icon-phone,.icon-picture,.icon-pie-chart,.icon-pin,.icon-plane,.icon-playlist,.icon-plus,.icon-power,.icon-present,.icon-printer,.icon-puzzle,.icon-question,.icon-refresh,.icon-reload,.icon-rocket,.icon-screen-desktop,.icon-screen-smartphone,.icon-screen-tablet,.icon-settings,.icon-share,.icon-share-alt,.icon-shield,.icon-shuffle,.icon-size-actual,.icon-size-fullscreen,.icon-social-behance,.icon-social-dribbble,.icon-social-dropbox,.icon-social-facebook,.icon-social-foursqare,.icon-social-github,.icon-social-gplus,.icon-social-instagram,.icon-social-linkedin,.icon-social-pinterest,.icon-social-reddit,.icon-social-skype,.icon-social-soundcloud,.icon-social-spotify,.icon-social-stumbleupon,.icon-social-tumblr,.icon-social-twitter,.icon-social-youtube,.icon-speech,.icon-speedometer,.icon-star,.icon-support,.icon-symbol-female,.icon-symbol-male,.icon-tag,.icon-target,.icon-trash,.icon-trophy,.icon-umbrella,.icon-user,.icon-user-female,.icon-user-follow,.icon-user-following,.icon-user-unfollow,.icon-vector,.icon-volume-1,.icon-volume-2,.icon-volume-off,.icon-wallet,.icon-wrench{font-family:simple-line-icons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-user:before{content:"\e005"}.icon-people:before{content:"\e001"}.icon-user-female:before{content:"\e000"}.icon-user-follow:before{content:"\e002"}.icon-user-following:before{content:"\e003"}.icon-user-unfollow:before{content:"\e004"}.icon-login:before{content:"\e066"}.icon-logout:before{content:"\e065"}.icon-emotsmile:before{content:"\e021"}.icon-phone:before{content:"\e600"}.icon-call-end:before{content:"\e048"}.icon-call-in:before{content:"\e047"}.icon-call-out:before{content:"\e046"}.icon-map:before{content:"\e033"}.icon-location-pin:before{content:"\e096"}.icon-direction:before{content:"\e042"}.icon-directions:before{content:"\e041"}.icon-compass:before{content:"\e045"}.icon-layers:before{content:"\e034"}.icon-menu:before{content:"\e601"}.icon-list:before{content:"\e067"}.icon-options-vertical:before{content:"\e602"}.icon-options:before{content:"\e603"}.icon-arrow-down:before{content:"\e604"}.icon-arrow-left:before{content:"\e605"}.icon-arrow-right:before{content:"\e606"}.icon-arrow-up:before{content:"\e607"}.icon-arrow-up-circle:before{content:"\e078"}.icon-arrow-left-circle:before{content:"\e07a"}.icon-arrow-right-circle:before{content:"\e079"}.icon-arrow-down-circle:before{content:"\e07b"}.icon-check:before{content:"\e080"}.icon-clock:before{content:"\e081"}.icon-plus:before{content:"\e095"}.icon-close:before{content:"\e082"}.icon-trophy:before{content:"\e006"}.icon-screen-smartphone:before{content:"\e010"}.icon-screen-desktop:before{content:"\e011"}.icon-plane:before{content:"\e012"}.icon-notebook:before{content:"\e013"}.icon-mustache:before{content:"\e014"}.icon-mouse:before{content:"\e015"}.icon-magnet:before{content:"\e016"}.icon-energy:before{content:"\e020"}.icon-disc:before{content:"\e022"}.icon-cursor:before{content:"\e06e"}.icon-cursor-move:before{content:"\e023"}.icon-crop:before{content:"\e024"}.icon-chemistry:before{content:"\e026"}.icon-speedometer:before{content:"\e007"}.icon-shield:before{content:"\e00e"}.icon-screen-tablet:before{content:"\e00f"}.icon-magic-wand:before{content:"\e017"}.icon-hourglass:before{content:"\e018"}.icon-graduation:before{content:"\e019"}.icon-ghost:before{content:"\e01a"}.icon-game-controller:before{content:"\e01b"}.icon-fire:before{content:"\e01c"}.icon-eyeglass:before{content:"\e01d"}.icon-envelope-open:before{content:"\e01e"}.icon-envelope-letter:before{content:"\e01f"}.icon-bell:before{content:"\e027"}.icon-badge:before{content:"\e028"}.icon-anchor:before{content:"\e029"}.icon-wallet:before{content:"\e02a"}.icon-vector:before{content:"\e02b"}.icon-speech:before{content:"\e02c"}.icon-puzzle:before{content:"\e02d"}.icon-printer:before{content:"\e02e"}.icon-present:before{content:"\e02f"}.icon-playlist:before{content:"\e030"}.icon-pin:before{content:"\e031"}.icon-picture:before{content:"\e032"}.icon-handbag:before{content:"\e035"}.icon-globe-alt:before{content:"\e036"}.icon-globe:before{content:"\e037"}.icon-folder-alt:before{content:"\e039"}.icon-folder:before{content:"\e089"}.icon-film:before{content:"\e03a"}.icon-feed:before{content:"\e03b"}.icon-drop:before{content:"\e03e"}.icon-drawer:before{content:"\e03f"}.icon-docs:before{content:"\e040"}.icon-doc:before{content:"\e085"}.icon-diamond:before{content:"\e043"}.icon-cup:before{content:"\e044"}.icon-calculator:before{content:"\e049"}.icon-bubbles:before{content:"\e04a"}.icon-briefcase:before{content:"\e04b"}.icon-book-open:before{content:"\e04c"}.icon-basket-loaded:before{content:"\e04d"}.icon-basket:before{content:"\e04e"}.icon-bag:before{content:"\e04f"}.icon-action-undo:before{content:"\e050"}.icon-action-redo:before{content:"\e051"}.icon-wrench:before{content:"\e052"}.icon-umbrella:before{content:"\e053"}.icon-trash:before{content:"\e054"}.icon-tag:before{content:"\e055"}.icon-support:before{content:"\e056"}.icon-frame:before{content:"\e038"}.icon-size-fullscreen:before{content:"\e057"}.icon-size-actual:before{content:"\e058"}.icon-shuffle:before{content:"\e059"}.icon-share-alt:before{content:"\e05a"}.icon-share:before{content:"\e05b"}.icon-rocket:before{content:"\e05c"}.icon-question:before{content:"\e05d"}.icon-pie-chart:before{content:"\e05e"}.icon-pencil:before{content:"\e05f"}.icon-note:before{content:"\e060"}.icon-loop:before{content:"\e064"}.icon-home:before{content:"\e069"}.icon-grid:before{content:"\e06a"}.icon-graph:before{content:"\e06b"}.icon-microphone:before{content:"\e063"}.icon-music-tone-alt:before{content:"\e061"}.icon-music-tone:before{content:"\e062"}.icon-earphones-alt:before{content:"\e03c"}.icon-earphones:before{content:"\e03d"}.icon-equalizer:before{content:"\e06c"}.icon-like:before{content:"\e068"}.icon-dislike:before{content:"\e06d"}.icon-control-start:before{content:"\e06f"}.icon-control-rewind:before{content:"\e070"}.icon-control-play:before{content:"\e071"}.icon-control-pause:before{content:"\e072"}.icon-control-forward:before{content:"\e073"}.icon-control-end:before{content:"\e074"}.icon-volume-1:before{content:"\e09f"}.icon-volume-2:before{content:"\e0a0"}.icon-volume-off:before{content:"\e0a1"}.icon-calendar:before{content:"\e075"}.icon-bulb:before{content:"\e076"}.icon-chart:before{content:"\e077"}.icon-ban:before{content:"\e07c"}.icon-bubble:before{content:"\e07d"}.icon-camrecorder:before{content:"\e07e"}.icon-camera:before{content:"\e07f"}.icon-cloud-download:before{content:"\e083"}.icon-cloud-upload:before{content:"\e084"}.icon-envelope:before{content:"\e086"}.icon-eye:before{content:"\e087"}.icon-flag:before{content:"\e088"}.icon-heart:before{content:"\e08a"}.icon-info:before{content:"\e08b"}.icon-key:before{content:"\e08c"}.icon-link:before{content:"\e08d"}.icon-lock:before{content:"\e08e"}.icon-lock-open:before{content:"\e08f"}.icon-magnifier:before{content:"\e090"}.icon-magnifier-add:before{content:"\e091"}.icon-magnifier-remove:before{content:"\e092"}.icon-paper-clip:before{content:"\e093"}.icon-paper-plane:before{content:"\e094"}.icon-power:before{content:"\e097"}.icon-refresh:before{content:"\e098"}.icon-reload:before{content:"\e099"}.icon-settings:before{content:"\e09a"}.icon-star:before{content:"\e09b"}.icon-symbol-female:before{content:"\e09c"}.icon-symbol-male:before{content:"\e09d"}.icon-target:before{content:"\e09e"}.icon-credit-card:before{content:"\e025"}.icon-paypal:before{content:"\e608"}.icon-social-tumblr:before{content:"\e00a"}.icon-social-twitter:before{content:"\e009"}.icon-social-facebook:before{content:"\e00b"}.icon-social-instagram:before{content:"\e609"}.icon-social-linkedin:before{content:"\e60a"}.icon-social-pinterest:before{content:"\e60b"}.icon-social-github:before{content:"\e60c"}.icon-social-gplus:before{content:"\e60d"}.icon-social-reddit:before{content:"\e60e"}.icon-social-skype:before{content:"\e60f"}.icon-social-dribbble:before{content:"\e00d"}.icon-social-behance:before{content:"\e610"}.icon-social-foursqare:before{content:"\e611"}.icon-social-soundcloud:before{content:"\e612"}.icon-social-spotify:before{content:"\e613"}.icon-social-stumbleupon:before{content:"\e614"}.icon-social-youtube:before{content:"\e008"}.icon-social-dropbox:before{content:"\e00c"}.ta-hidden-input{width:1px;height:1px;border:none;margin:0;padding:0;position:absolute;top:-10000px;left:-10000px;opacity:0;overflow:hidden}.ta-root.focussed>.ta-scroll-window.form-control{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ta-editor.ta-html,.ta-scroll-window.form-control{min-height:300px;height:auto;overflow:auto;font-family:inherit;font-size:100%}.ta-scroll-window.form-control{position:relative;padding:0}.ta-scroll-window>.ta-bind{height:auto;min-height:300px;padding:6px 12px}.ta-editor:focus{user-select:text}.ta-resizer-handle-overlay{z-index:100;position:absolute;display:none}.ta-resizer-handle-overlay>.ta-resizer-handle-info{position:absolute;bottom:16px;right:16px;border:1px solid #000;background-color:#FFF;padding:0 4px;opacity:.7}.ta-resizer-handle-overlay>.ta-resizer-handle-background{position:absolute;bottom:5px;right:5px;left:5px;top:5px;border:1px solid #000;background-color:rgba(0,0,0,.2)}.ta-resizer-handle-overlay>.ta-resizer-handle-corner{width:10px;height:10px;position:absolute}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tl{top:0;left:0;border-left:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tr{top:0;right:0;border-right:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-bl{bottom:0;left:0;border-left:1px solid #000;border-bottom:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-br{bottom:0;right:0;border:1px solid #000;cursor:se-resize;background-color:#fff}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.bottom{margin-top:10px}.popover-title{padding:8px 14px;margin:0;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{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}/*!
  * ui-select
  * http://github.com/angular-ui/ui-select
  * Version: 0.13.2 - 2015-10-09T15:34:24.045Z
@@ -33,6 +29,6 @@ Copyright (c) 2015 Daniel Eden
  *
  * Built for http://www.improvely.com
  */.daterangepicker.dropdown-menu{max-width:none;z-index:3000}.daterangepicker.opensleft .calendar,.daterangepicker.opensleft .ranges{float:left;margin:4px}.daterangepicker.openscenter .calendar,.daterangepicker.openscenter .ranges,.daterangepicker.opensright .calendar,.daterangepicker.opensright .ranges{float:right;margin:4px}.daterangepicker.single .calendar,.daterangepicker.single .ranges{float:none}.daterangepicker .ranges{width:160px;text-align:left}.daterangepicker .ranges .range_inputs>div{float:left}.daterangepicker .ranges .range_inputs>div:nth-child(2){padding-left:11px}.daterangepicker .calendar{display:none;max-width:270px}.daterangepicker.show-calendar .calendar{display:block}.daterangepicker .calendar.single .calendar-date{border:none}.daterangepicker .calendar td,.daterangepicker .calendar th{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;white-space:nowrap;text-align:center;min-width:32px}.daterangepicker .daterangepicker_end_input label,.daterangepicker .daterangepicker_start_input label{color:#333;display:block;font-size:11px;font-weight:400;height:20px;line-height:20px;margin-bottom:2px;text-shadow:#fff 1px 1px 0;text-transform:uppercase;width:74px}.daterangepicker .ranges input{font-size:11px}.daterangepicker .ranges .input-mini{border:1px solid #ccc;border-radius:4px;color:#555;display:block;font-size:11px;height:30px;line-height:30px;vertical-align:middle;margin:0 0 10px;padding:0 6px;width:74px}.daterangepicker .ranges ul{list-style:none;margin:0;padding:0}.daterangepicker .ranges li{font-size:13px;background:#f5f5f5;border:1px solid #f5f5f5;color:#08c;padding:3px 12px;margin-bottom:8px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;cursor:pointer}.daterangepicker .ranges li.active,.daterangepicker .ranges li:hover{background:#08c;border:1px solid #08c;color:#fff}.daterangepicker .calendar-date{border:1px solid #ddd;padding:4px;border-radius:4px;background:#fff}.daterangepicker .calendar-time{text-align:center;margin:8px auto 0;line-height:30px}.daterangepicker{position:absolute;background:#fff;top:100px;left:20px;padding:4px;margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.daterangepicker.openscenter:after,.daterangepicker.openscenter:before{left:0;width:0;margin-left:auto;margin-right:auto;display:inline-block;content:'';position:absolute}.daterangepicker.opensleft:before{position:absolute;top:-7px;right:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2);content:''}.daterangepicker.opensleft:after{position:absolute;top:-6px;right:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.daterangepicker.openscenter:before{top:-7px;right:0;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2)}.daterangepicker.openscenter:after{top:-6px;right:0;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent}.daterangepicker.opensright:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2);content:''}.daterangepicker.opensright:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.daterangepicker table{width:100%;margin:0}.daterangepicker td,.daterangepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;white-space:nowrap}.daterangepicker option.disabled,.daterangepicker td.disabled,.daterangepicker td.off{color:#999}.daterangepicker td.available:hover,.daterangepicker th.available:hover{background:#eee}.daterangepicker td.in-range{background:#ebf4f8;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.daterangepicker td.start-date{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.daterangepicker td.end-date{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.daterangepicker td.start-date.end-date{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.daterangepicker td.active,.daterangepicker td.active:hover{background-color:#357ebd;border-color:#3071a9;color:#fff}.daterangepicker td.week,.daterangepicker th.week{font-size:80%;color:#ccc}.daterangepicker select.monthselect,.daterangepicker select.yearselect{font-size:12px;padding:1px;height:auto;margin:0;cursor:default}.daterangepicker select.monthselect{margin-right:2%;width:56%}.daterangepicker select.yearselect{width:40%}.daterangepicker select.ampmselect,.daterangepicker select.hourselect,.daterangepicker select.minuteselect,.daterangepicker select.secondselect{width:50px;margin-bottom:0}.daterangepicker_start_input{float:left}.daterangepicker_end_input{float:left;padding-left:11px}.daterangepicker th.month{width:auto}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.adf-move{cursor:move;cursor:-webkit-grabbing}.edit .column{min-height:120px;border:1px dashed #ccc;padding-top:15px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}pre.edit{margin-top:15px}.column .placeholder{opacity:.4;background:#E8E8E8;border:1px dashed #505050;margin-bottom:15px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.dashboard-container h1 a,.widget h3 a{text-decoration:none}.padding-bottom{padding-bottom:5px}.adf-flip{-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1);filter:FlipH;-ms-filter:"FlipH"}.ui-grid-top-panel,.ui-grid-top-panel-background{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0)}.dashboard-modal.widget-fullscreen .modal-dialog{width:98%}.clock{text-align:center}.clock-time{font-size:3em}.clock-date{font-size:1em}iframe{width:100%;height:100%;min-height:400px;border:1px solid grey}/*!
- * ui-grid - v3.1.0 - 2016-01-19
+ * ui-grid - v3.1.1 - 2016-02-09
  * Copyright (c) 2016 ; License: MIT 
- */.ui-grid{border:1px solid #d4d4d4;box-sizing:content-box;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.ui-grid-vertical-bar{position:absolute;right:0;width:0}.ui-grid-scrollbar-placeholder{background-color:transparent}.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar,.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar{width:1px;background-color:#d4d4d4}.ui-grid-header-cell:last-child .ui-grid-vertical-bar{right:-1px;width:1px;background-color:#d4d4d4}.ui-grid-clearfix:after,.ui-grid-clearfix:before{content:"";display:table}.ui-grid-invisible{visibility:hidden}.ui-grid-contents-wrapper{position:relative;height:100%;width:100%}.ui-grid-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.ui-grid-top-panel-background{background:#f3f3f3;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#eee),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#eee,#fff);background:-moz-linear-gradient(center bottom,#eee 0,#fff 100%);background:-o-linear-gradient(#fff,#eee)}.ui-grid-header{border-bottom:1px solid #d4d4d4}.ui-grid-top-panel{position:relative;overflow:hidden;font-weight:700;background:#f3f3f3;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#eee),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#eee,#fff);background:-moz-linear-gradient(center bottom,#eee 0,#fff 100%);background:-o-linear-gradient(#fff,#eee);-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:-1px -1px 0 0;border-radius:-1px -1px 0 0}.ui-grid-header-viewport{overflow:hidden}.ui-grid-header-canvas:after,.ui-grid-header-canvas:before{content:"";display:table;line-height:0}.ui-grid-header-cell-wrapper{position:relative;display:table;box-sizing:border-box;height:100%}.ui-grid-header-cell-row{display:table-row;position:relative}.ui-grid-header-cell{position:relative;background-color:inherit;border-right:1px solid;border-color:#d4d4d4;display:table-cell;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:0}.ui-grid-header-cell:last-child{border-right:0}.ui-grid-header-cell .sortable{cursor:pointer}.ui-grid-header-cell .ui-grid-sort-priority-number{margin-left:-8px}.ui-grid-header .ui-grid-vertical-bar{top:0;bottom:0}.ui-grid-column-menu-button{position:absolute;right:1px;top:0}.ui-grid-column-menu-button .ui-grid-icon-angle-down{vertical-align:sub}.ui-grid-column-menu-button-last-col{margin-right:25px}.ui-grid-column-menu{position:absolute}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transition:all 50ms linear;-moz-transition:all 50ms linear;-o-transition:all 50ms linear;transition:all 50ms linear;display:block!important}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add.ng-hide-add-active,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transition:all 50ms linear;-moz-transition:all 50ms linear;-o-transition:all 50ms linear;transition:all 50ms linear;display:block!important}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add.ng-hide-add-active,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.ui-grid-filter-container{padding:4px 10px;position:relative}.ui-grid-filter-container .ui-grid-filter-button{position:absolute;top:0;bottom:0;right:0}.ui-grid-filter-container .ui-grid-filter-button [class^=ui-grid-icon]{position:absolute;top:50%;line-height:32px;margin-top:-16px;right:10px;opacity:.66}.ui-grid-filter-container .ui-grid-filter-button [class^=ui-grid-icon]:hover{opacity:1}.ui-grid-filter-container .ui-grid-filter-button-select{position:absolute;top:0;bottom:0;right:0}.ui-grid-filter-container .ui-grid-filter-button-select [class^=ui-grid-icon]{position:absolute;top:50%;line-height:32px;margin-top:-16px;right:0;opacity:.66}.ui-grid-filter-container .ui-grid-filter-button-select [class^=ui-grid-icon]:hover{opacity:1}select.ui-grid-filter-select{padding:0;margin:0;width:90%;border:1px solid #d4d4d4;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:0;border-radius:0}select.ui-grid-filter-select:hover{border:1px solid #d4d4d4}.ui-grid-no-row-overlay,.ui-grid-render-container{-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0}.ui-grid-filter-cancel-button-hidden select.ui-grid-filter-select{width:100%}.ui-grid-render-container{position:inherit;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:0;border-radius:0}.ui-grid-render-container:focus{outline:0}.ui-grid-viewport{min-height:20px;position:relative;overflow-y:scroll;-webkit-overflow-scrolling:touch}.ui-grid-viewport:focus{outline:0!important}.ui-grid-canvas{position:relative;padding-top:1px}.ui-grid-row:nth-child(odd) .ui-grid-cell{background-color:#fdfdfd}.ui-grid-footer-panel-background,.ui-grid-no-row-overlay{background:#f3f3f3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0)}.ui-grid-row:nth-child(even) .ui-grid-cell{background-color:#f3f3f3}.ui-grid-row:last-child .ui-grid-cell{border-bottom-color:#d4d4d4;border-bottom-style:solid}.ui-grid-no-row-overlay{position:absolute;top:0;bottom:0;left:0;right:0;margin:10%;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#eee),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#eee,#fff);background:-moz-linear-gradient(center bottom,#eee 0,#fff 100%);background:-o-linear-gradient(#fff,#eee);-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #d4d4d4;font-size:2em;text-align:center;-webkit-border-radius:0;border-radius:0}.ui-grid-no-row-overlay>*{position:absolute;display:table;margin:auto 0;width:100%;top:0;bottom:0;left:0;right:0;opacity:.66}.ui-grid-cell{overflow:hidden;float:left;background-color:inherit;border-right:1px solid;border-color:#d4d4d4}.ui-grid-cell:last-child{border-right:0}.ui-grid-cell-contents{padding:5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;height:100%}.ui-grid-cell-contents-hidden{visibility:hidden;width:0;height:0;display:none}.ui-grid-row .ui-grid-cell.ui-grid-row-header-cell{background-color:#f0f0ee;border-bottom:solid 1px #d4d4d4}.ui-grid-footer-panel-background{background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#eee),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#eee,#fff);background:-moz-linear-gradient(center bottom,#eee 0,#fff 100%);background:-o-linear-gradient(#fff,#eee)}.ui-grid-footer-panel{position:relative;border-bottom:1px solid #d4d4d4;border-top:1px solid #d4d4d4;overflow:hidden;font-weight:700;background:#f3f3f3;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#eee),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#eee,#fff);background:-moz-linear-gradient(center bottom,#eee 0,#fff 100%);background:-o-linear-gradient(#fff,#eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:-1px -1px 0 0;border-radius:-1px -1px 0 0}.ui-grid-grid-footer{float:left;width:100%}.ui-grid-footer-viewport{overflow:hidden}.ui-grid-footer-canvas{position:relative}.ui-grid-footer-canvas:after,.ui-grid-footer-canvas:before{content:"";display:table;line-height:0}.ui-grid-footer-cell-wrapper{position:relative;display:table;box-sizing:border-box;height:100%}.ui-grid-menu,.ui-grid-menu-button{position:absolute;cursor:pointer;z-index:2}.ui-grid-footer-cell-row{display:table-row}.ui-grid-footer-cell{overflow:hidden;background-color:inherit;border-right:1px solid;border-color:#d4d4d4;box-sizing:border-box;display:table-cell}.ui-grid-footer-cell:last-child{border-right:0}input[type=text].ui-grid-filter-input{padding:0;margin:0;width:100%;border:1px solid #d4d4d4;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:0;border-radius:0}input[type=text].ui-grid-filter-input:hover{border:1px solid #d4d4d4}.ui-grid-menu-button{right:0;top:0;background:#f3f3f3;border:1px solid #d4d4d4;height:31px;font-weight:400}.ui-grid-menu-button .ui-grid-icon-container{margin-top:3px}.ui-grid-menu-button .ui-grid-menu{right:0}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid{overflow:scroll;border:1px solid #d4d4d4}.ui-grid-menu{padding:0 10px 20px;box-sizing:border-box}.ui-grid-menu .ui-grid-menu-inner{background:#f3f3f3;border:1px solid #d4d4d4;position:relative;white-space:nowrap;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 10px 20px rgba(0,0,0,.2),inset 0 12px 12px -14px rgba(0,0,0,.2);-moz-box-shadow:0 10px 20px rgba(0,0,0,.2),inset 0 12px 12px -14px rgba(0,0,0,.2);box-shadow:0 10px 20px rgba(0,0,0,.2),inset 0 12px 12px -14px rgba(0,0,0,.2)}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button{position:absolute;right:0;top:0;display:inline-block;margin-bottom:0;font-weight:400;text-align:center;cursor:pointer;border:1px solid transparent;white-space:nowrap;-webkit-user-select:none;-ms-user-select:none;user-select:none;padding:1px;font-size:10px;line-height:1;border-radius:2px;color:transparent;background-color:transparent}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover{text-decoration:none}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled],fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button,.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover{color:transparent;background-color:rgba(0,0,0,0);border-color:transparent}.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active{background-image:none}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled:active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled],.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled].active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled].focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled]:active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled]:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled]:hover,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover{background-color:transparent;border-color:transparent}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button .badge{color:transparent;background-color:transparent}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button>i{opacity:.75;color:#000}div.ui-grid-cell input,div.ui-grid-cell input:focus{color:inherit;outline:0}.ui-grid-menu .ui-grid-menu-inner ul{margin:0;padding:0;list-style-type:none}.ui-grid-menu .ui-grid-menu-inner ul li{padding:0}.ui-grid-menu .ui-grid-menu-inner ul li button{min-width:100%;padding:8px;text-align:left;background:0 0;border:none}.ui-grid-menu .ui-grid-menu-inner ul li button:focus,.ui-grid-menu .ui-grid-menu-inner ul li button:hover{-webkit-box-shadow:inset 0 0 14px rgba(0,0,0,.2);-moz-box-shadow:inset 0 0 14px rgba(0,0,0,.2);box-shadow:inset 0 0 14px rgba(0,0,0,.2)}.ui-grid-menu .ui-grid-menu-inner ul li button.ui-grid-menu-item-active{-webkit-box-shadow:inset 0 0 14px rgba(0,0,0,.2);-moz-box-shadow:inset 0 0 14px rgba(0,0,0,.2);box-shadow:inset 0 0 14px rgba(0,0,0,.2);background-color:#cecece}.ui-grid-menu .ui-grid-menu-inner ul li:not(:last-child)>button{border-bottom:1px solid #d4d4d4}.ui-grid-sortarrow{right:5px;position:absolute;width:20px;top:0;bottom:0;background-position:center}.ui-grid-sortarrow.down{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}@font-face{font-family:ui-grid;src:url(ui-grid.eot);src:url(ui-grid.eot#iefix) format('embedded-opentype'),url(../../assets/css/global/ui-grid.woff) format('woff'),url(../../assets/css/global/ui-grid.ttf) format('truetype'),url(ui-grid.svg?#ui-grid) format('svg');font-weight:400;font-style:normal}[class*=" ui-grid-icon"]:before,[class^=ui-grid-icon]:before{font-family:ui-grid;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.ui-grid-icon-blank::before{width:1em;content:' '}.ui-grid[dir=rtl] .ui-grid-cell,.ui-grid[dir=rtl] .ui-grid-footer-cell,.ui-grid[dir=rtl] .ui-grid-header-cell{float:right!important}.scrollFiller,.ui-grid-pager-container,.ui-grid-pager-row-count-picker{float:left}.ui-grid[dir=rtl] .ui-grid-column-menu-button{position:absolute;left:1px;top:0;right:inherit}.ui-grid[dir=rtl] .ui-grid-cell:first-child,.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child,.ui-grid[dir=rtl] .ui-grid-header-cell:first-child{border-right:0}.ui-grid[dir=rtl] .ui-grid-cell:last-child,.ui-grid[dir=rtl] .ui-grid-header-cell:last-child{border-right:1px solid #d4d4d4;border-left:0}.ui-grid[dir=rtl] .ui-grid-cell:first-child .ui-grid-vertical-bar,.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child .ui-grid-vertical-bar,.ui-grid[dir=rtl] .ui-grid-header-cell:first-child .ui-grid-vertical-bar{width:0}.ui-grid[dir=rtl] .ui-grid-menu-button{z-index:2;position:absolute;left:0;right:auto;background:#f3f3f3;border:1px solid #d4d4d4;cursor:pointer;min-height:27px;font-weight:400}.ui-grid[dir=rtl] .ui-grid-menu-button .ui-grid-menu{left:0;right:auto}.ui-grid[dir=rtl] .ui-grid-filter-container .ui-grid-filter-button{right:initial;left:0}.ui-grid[dir=rtl] .ui-grid-filter-container .ui-grid-filter-button [class^=ui-grid-icon]{right:initial;left:10px}.ui-grid-animate-spin{-moz-animation:ui-grid-spin 2s infinite linear;-o-animation:ui-grid-spin 2s infinite linear;-webkit-animation:ui-grid-spin 2s infinite linear;animation:ui-grid-spin 2s infinite linear;display:inline-block}@-moz-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.ui-grid-cell-focus{outline:0;background-color:#b3c4c7}.ui-grid-focuser{position:absolute;left:0;top:0;z-index:-1;width:100%;height:100%}.ui-grid-focuser:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ui-grid-offscreen{display:block;position:absolute;left:-10000px;top:-10000px;clip:rect(0,0,0,0)}div.ui-grid-cell input{border-radius:inherit;padding:0;width:100%;height:auto;font:inherit}div.ui-grid-cell input[type=checkbox]{margin:9px 0 0 6px;width:auto}div.ui-grid-cell input.ng-invalid{border:1px solid #fc8f8f}.movingColumn,.scrollFiller,div.ui-grid-cell input.ng-valid{border:1px solid #d4d4d4}.expandableRow .ui-grid-row:nth-child(odd) .ui-grid-cell{background-color:#fdfdfd}.expandableRow .ui-grid-row:nth-child(even) .ui-grid-cell{background-color:#f3f3f3}.ui-grid-expandable-buttons-cell i{pointer-events:all}.movingColumn{position:absolute;top:0;box-shadow:inset 0 0 14px rgba(0,0,0,.2)}.movingColumn .ui-grid-icon-angle-down{display:none}#ui-grid-twbs #ui-grid-twbs .btn-group-vertical>.btn-group:after,#ui-grid-twbs #ui-grid-twbs .btn-group-vertical>.btn-group:before,#ui-grid-twbs #ui-grid-twbs .btn-toolbar:after,#ui-grid-twbs #ui-grid-twbs .btn-toolbar:before,#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:after,#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:before{content:" ";display:table}.ui-grid-pager-panel{position:absolute;left:0;bottom:0;width:100%;padding-top:3px;padding-bottom:3px;box-sizing:content-box}.ui-grid-pager-control{margin-right:10px;margin-left:10px;min-width:135px;float:left}.ui-grid-pager-control button{height:25px;min-width:26px;display:inline-block;margin-bottom:0;font-weight:400;text-align:center;cursor:pointer;border:1px solid #ccc;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-ms-user-select:none;user-select:none;color:#eee;background-color:#f3f3f3}.ui-grid-pager-control input[disabled],.ui-grid-pager-row-count-picker select[disabled],fieldset[disabled] .ui-grid-pager-control input,fieldset[disabled] .ui-grid-pager-row-count-picker select{cursor:not-allowed}.ui-grid-pager-control input,.ui-grid-pager-row-count-picker select{background-image:none;padding:5px 10px;font-size:12px;display:inline}.ui-grid-pager-control button.active.focus,.ui-grid-pager-control button.active:focus,.ui-grid-pager-control button.focus,.ui-grid-pager-control button:active.focus,.ui-grid-pager-control button:active:focus,.ui-grid-pager-control button:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.ui-grid-pager-control button.focus,.ui-grid-pager-control button:focus,.ui-grid-pager-control button:hover{text-decoration:none}.ui-grid-pager-control button.active,.ui-grid-pager-control button:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.ui-grid-pager-control button.disabled,.ui-grid-pager-control button[disabled],fieldset[disabled] .ui-grid-pager-control button{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.ui-grid-pager-control button.disabled,fieldset[disabled] a.ui-grid-pager-control button{pointer-events:none}.ui-grid-pager-control button.focus,.ui-grid-pager-control button:focus{color:#eee;background-color:#dadada;border-color:#8c8c8c}.open>.dropdown-toggle.ui-grid-pager-control button,.ui-grid-pager-control button.active,.ui-grid-pager-control button:active,.ui-grid-pager-control button:hover{color:#eee;background-color:#dadada;border-color:#adadad}.open>.dropdown-toggle.ui-grid-pager-control button.focus,.open>.dropdown-toggle.ui-grid-pager-control button:focus,.open>.dropdown-toggle.ui-grid-pager-control button:hover,.ui-grid-pager-control button.active.focus,.ui-grid-pager-control button.active:focus,.ui-grid-pager-control button.active:hover,.ui-grid-pager-control button:active.focus,.ui-grid-pager-control button:active:focus,.ui-grid-pager-control button:active:hover{color:#eee;background-color:#c8c8c8;border-color:#8c8c8c}.open>.dropdown-toggle.ui-grid-pager-control button,.ui-grid-pager-control button.active,.ui-grid-pager-control button:active{background-image:none}.ui-grid-pager-control button.disabled,.ui-grid-pager-control button.disabled.active,.ui-grid-pager-control button.disabled.focus,.ui-grid-pager-control button.disabled:active,.ui-grid-pager-control button.disabled:focus,.ui-grid-pager-control button.disabled:hover,.ui-grid-pager-control button[disabled],.ui-grid-pager-control button[disabled].active,.ui-grid-pager-control button[disabled].focus,.ui-grid-pager-control button[disabled]:active,.ui-grid-pager-control button[disabled]:focus,.ui-grid-pager-control button[disabled]:hover,fieldset[disabled] .ui-grid-pager-control button,fieldset[disabled] .ui-grid-pager-control button.active,fieldset[disabled] .ui-grid-pager-control button.focus,fieldset[disabled] .ui-grid-pager-control button:active,fieldset[disabled] .ui-grid-pager-control button:focus,fieldset[disabled] .ui-grid-pager-control button:hover{background-color:#f3f3f3;border-color:#ccc}.ui-grid-pager-control button .badge{color:#f3f3f3;background-color:#eee}.ui-grid-pager-control input{color:#555;background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;line-height:1.5;border-radius:3px;height:26px;width:50px;vertical-align:top}.ui-grid-pager-control input:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ui-grid-pager-control input::-moz-placeholder{color:#999;opacity:1}.ui-grid-pager-control input:-ms-input-placeholder{color:#999}.ui-grid-pager-control input::-webkit-input-placeholder{color:#999}.ui-grid-pager-control input[disabled],.ui-grid-pager-control input[readonly],fieldset[disabled] .ui-grid-pager-control input{background-color:#eee;opacity:1}textarea.ui-grid-pager-control input{height:auto}select.ui-grid-pager-control input{height:30px;line-height:30px}select[multiple].ui-grid-pager-control input,textarea.ui-grid-pager-control input{height:auto}.ui-grid-pager-control .ui-grid-pager-max-pages-number{vertical-align:bottom}.ui-grid-pager-control .ui-grid-pager-max-pages-number>*{vertical-align:middle}.ui-grid-pager-control .first-bar{width:10px;border-left:2px solid #4d4d4d;margin-top:-6px;height:12px;margin-left:-3px}.ui-grid-pager-control .first-triangle{width:0;height:0;border-style:solid;border-width:5px 8.7px 5px 0;border-color:transparent #4d4d4d transparent transparent;margin-left:2px}.ui-grid-pager-control .next-triangle{margin-left:1px}.ui-grid-pager-control .prev-triangle{margin-left:0}.ui-grid-pager-control .last-triangle{width:0;height:0;border-style:solid;border-width:5px 0 5px 8.7px;border-color:transparent transparent transparent #4d4d4d;margin-left:-1px}.ui-grid-pager-control .last-bar{width:10px;border-left:2px solid #4d4d4d;margin-top:-6px;height:12px;margin-left:1px}.ui-grid-pager-row-count-picker select{color:#555;background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;line-height:1.5;border-radius:3px;height:26px;width:67px}.ui-grid-pager-row-count-picker select:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ui-grid-pager-row-count-picker select::-moz-placeholder{color:#999;opacity:1}.ui-grid-pager-row-count-picker select:-ms-input-placeholder{color:#999}.ui-grid-pager-row-count-picker select::-webkit-input-placeholder{color:#999}.ui-grid-pager-row-count-picker select[disabled],.ui-grid-pager-row-count-picker select[readonly],fieldset[disabled] .ui-grid-pager-row-count-picker select{background-color:#eee;opacity:1}textarea.ui-grid-pager-row-count-picker select{height:auto}select.ui-grid-pager-row-count-picker select{height:30px;line-height:30px}select[multiple].ui-grid-pager-row-count-picker select,textarea.ui-grid-pager-row-count-picker select{height:auto}.ui-grid-pager-row-count-picker .ui-grid-pager-row-count-label{margin-top:3px}.ui-grid-pager-count-container{float:right;margin-top:4px;min-width:50px}.ui-grid-pager-count-container .ui-grid-pager-count{margin-right:10px;margin-left:10px;float:right}.ui-grid-pinned-container{position:absolute;display:inline;top:0}.ui-grid-pinned-container.ui-grid-pinned-container-left{float:left;left:0}.ui-grid-pinned-container.ui-grid-pinned-container-right{float:right;right:0}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:last-child,.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:last-child{box-sizing:border-box;border-right:1px solid;border-width:1px;border-right-color:#aeaeae}.ui-grid-pinned-container .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar,.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar{width:1px}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#d4d4d4}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#aeaeae}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:last-child .ui-grid-vertical-bar{right:-1px;width:1px;background-color:#aeaeae}.ui-grid-pinned-container.ui-grid-pinned-container-right .ui-grid-cell:first-child,.ui-grid-pinned-container.ui-grid-pinned-container-right .ui-grid-header-cell:first-child{box-sizing:border-box;border-left:1px solid;border-width:1px;border-left-color:#aeaeae}.ui-grid-pinned-container .ui-grid-cell:not(:first-child) .ui-grid-vertical-bar,.ui-grid-pinned-container.ui-grid-pinned-container-right .ui-grid-header-cell:not(:first-child) .ui-grid-vertical-bar{width:1px}.ui-grid-pinned-container.ui-grid-pinned-container-right .ui-grid-header-cell:not(:first-child) .ui-grid-vertical-bar{background-color:#d4d4d4}.ui-grid-pinned-container.ui-grid-pinned-container-right .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#aeaeae}.ui-grid-pinned-container.ui-grid-pinned-container-first .ui-grid-header-cell:first-child .ui-grid-vertical-bar{left:-1px;width:1px;background-color:#aeaeae}.ui-grid-column-resizer{top:0;bottom:0;width:5px;position:absolute;cursor:col-resize}.ui-grid-column-resizer.left{left:0}.ui-grid-column-resizer.right{right:0}.ui-grid-header-cell:last-child .ui-grid-column-resizer.right{border-right:1px solid #d4d4d4}.ui-grid[dir=rtl] .ui-grid-header-cell:last-child .ui-grid-column-resizer.right{border-right:0}.ui-grid[dir=rtl] .ui-grid-header-cell:last-child .ui-grid-column-resizer.left{border-left:1px solid #d4d4d4}.ui-grid.column-resizing{cursor:col-resize}.ui-grid.column-resizing .ui-grid-resize-overlay{position:absolute;top:0;height:100%;width:1px;background-color:#aeaeae}.ui-grid-row-saving .ui-grid-cell{color:#848484!important}.ui-grid-row-dirty .ui-grid-cell{color:#610b38}.ui-grid-row-error .ui-grid-cell{color:red!important}.ui-grid-row.ui-grid-row-selected>[ui-grid-row]>.ui-grid-cell{background-color:#c9dde1}.ui-grid-disable-selection{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.ui-grid-selection-row-header-buttons{cursor:pointer;opacity:.1}.ui-grid-selection-row-header-buttons.ui-grid-all-selected,.ui-grid-selection-row-header-buttons.ui-grid-row-selected{opacity:1}.ui-grid-tree-row-header-buttons.ui-grid-tree-header{cursor:pointer;opacity:1}.fb-component input,.fb-component label,.fb-component select,.fb-component textarea,.fb-form-object-editable.fb-draggable,.fb-form-object-editable.fb-draggable input{cursor:move}.ui-grid-tree-header-row{font-weight:700!important}.ui-grid-tree-header-row .ui-grid-cell.ui-grid-disable-selection.ui-grid-row-header-cell{pointer-events:all}div.ui-grid-cell-contents.invalid{border:1px solid #fc8f8f}.ui-grid-icon-plus-squared:before{content:'\c350'}.ui-grid-icon-minus-squared:before{content:'\c351'}.ui-grid-icon-search:before{content:'\c352'}.ui-grid-icon-cancel:before{content:'\c353'}.ui-grid-icon-info-circled:before{content:'\c354'}.ui-grid-icon-lock:before{content:'\c355'}.ui-grid-icon-lock-open:before{content:'\c356'}.ui-grid-icon-pencil:before{content:'\c357'}.ui-grid-icon-down-dir:before{content:'\c358'}.ui-grid-icon-up-dir:before{content:'\c359'}.ui-grid-icon-left-dir:before{content:'\c35a'}.ui-grid-icon-right-dir:before{content:'\c35b'}.ui-grid-icon-left-open:before{content:'\c35c'}.ui-grid-icon-right-open:before{content:'\c35d'}.ui-grid-icon-angle-down:before{content:'\c35e'}.ui-grid-icon-filter:before{content:'\c35f'}.ui-grid-icon-sort-alt-up:before{content:'\c360'}.ui-grid-icon-sort-alt-down:before{content:'\c361'}.ui-grid-icon-ok:before{content:'\c362'}.ui-grid-icon-menu:before{content:'\c363'}.ui-grid-icon-indent-left:before{content:'\e800'}.ui-grid-icon-indent-right:before{content:'\e801'}.ui-grid-icon-spin5:before{content:'\ea61'}.fb-component{padding:10px;cursor:move}.fb-form-object-editable{padding:10px}.fb-form-object-editable.fb-draggable label{cursor:pointer}.fb-form-object-editable.fb-draggable select,.fb-form-object-editable.fb-draggable textarea{cursor:move}.fb-form-object-editable.empty{cursor:default;margin:6px;height:80px;border:1px dashed #aaa;background-color:#eee}.fb-draggable.dragging{background-color:#fff;position:absolute;z-index:800;-webkit-box-shadow:#666 0 0 20px;-moz-box-shadow:#666 0 0 20px;box-shadow:#666 0 0 20px}.fb-required:after{color:#b94a48;content:' *'}.fb-builder{min-height:250px}.popover .control-label{text-align:left}.popover form{width:240px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}code,pre{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.pln{color:#000}@media screen{.kwd,.tag,.typ{font-weight:700}.str{color:#080}.kwd{color:#008}.com{color:#800;font-style:italic}.typ{color:#606}.lit{color:#066}.clo,.opn,.pun{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
\ No newline at end of file
+ */.ui-grid{border:1px solid #d4d4d4;box-sizing:content-box;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.ui-grid-vertical-bar{position:absolute;right:0;width:0}.ui-grid-scrollbar-placeholder{background-color:transparent}.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar,.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar{width:1px;background-color:#d4d4d4}.ui-grid-header-cell:last-child .ui-grid-vertical-bar{right:-1px;width:1px;background-color:#d4d4d4}.ui-grid-clearfix:after,.ui-grid-clearfix:before{content:"";display:table}.ui-grid-invisible{visibility:hidden}.ui-grid-contents-wrapper{position:relative;height:100%;width:100%}.ui-grid-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.ui-grid-top-panel-background{background:#f3f3f3;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#eee),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#eee,#fff);background:-moz-linear-gradient(center bottom,#eee 0,#fff 100%);background:-o-linear-gradient(#fff,#eee)}.ui-grid-header{border-bottom:1px solid #d4d4d4}.ui-grid-top-panel{position:relative;overflow:hidden;font-weight:700;background:#f3f3f3;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#eee),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#eee,#fff);background:-moz-linear-gradient(center bottom,#eee 0,#fff 100%);background:-o-linear-gradient(#fff,#eee);-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:-1px -1px 0 0;border-radius:-1px -1px 0 0}.ui-grid-header-viewport{overflow:hidden}.ui-grid-header-canvas:after,.ui-grid-header-canvas:before{content:"";display:table;line-height:0}.ui-grid-header-cell-wrapper{position:relative;display:table;box-sizing:border-box;height:100%}.ui-grid-header-cell-row{display:table-row;position:relative}.ui-grid-header-cell{position:relative;background-color:inherit;border-right:1px solid;border-color:#d4d4d4;display:table-cell;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:0}.ui-grid-header-cell:last-child{border-right:0}.ui-grid-header-cell .sortable{cursor:pointer}.ui-grid-header-cell .ui-grid-sort-priority-number{margin-left:-8px}.ui-grid-header .ui-grid-vertical-bar{top:0;bottom:0}.ui-grid-column-menu-button{position:absolute;right:1px;top:0}.ui-grid-column-menu-button .ui-grid-icon-angle-down{vertical-align:sub}.ui-grid-column-menu-button-last-col{margin-right:25px}.ui-grid-column-menu{position:absolute}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transition:all 50ms linear;-moz-transition:all 50ms linear;-o-transition:all 50ms linear;transition:all 50ms linear;display:block!important}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add.ng-hide-add-active,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transition:all 50ms linear;-moz-transition:all 50ms linear;-o-transition:all 50ms linear;transition:all 50ms linear;display:block!important}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add.ng-hide-add-active,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.ui-grid-filter-container{padding:4px 10px;position:relative}.ui-grid-filter-container .ui-grid-filter-button{position:absolute;top:0;bottom:0;right:0}.ui-grid-filter-container .ui-grid-filter-button [class^=ui-grid-icon]{position:absolute;top:50%;line-height:32px;margin-top:-16px;right:10px;opacity:.66}.ui-grid-filter-container .ui-grid-filter-button [class^=ui-grid-icon]:hover{opacity:1}.ui-grid-filter-container .ui-grid-filter-button-select{position:absolute;top:0;bottom:0;right:0}.ui-grid-filter-container .ui-grid-filter-button-select [class^=ui-grid-icon]{position:absolute;top:50%;line-height:32px;margin-top:-16px;right:0;opacity:.66}.ui-grid-filter-container .ui-grid-filter-button-select [class^=ui-grid-icon]:hover{opacity:1}select.ui-grid-filter-select{padding:0;margin:0;width:90%;border:1px solid #d4d4d4;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:0;border-radius:0}select.ui-grid-filter-select:hover{border:1px solid #d4d4d4}.ui-grid-no-row-overlay,.ui-grid-render-container{-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0}.ui-grid-filter-cancel-button-hidden select.ui-grid-filter-select{width:100%}.ui-grid-render-container{position:inherit;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:0;border-radius:0}.ui-grid-render-container:focus{outline:0}.ui-grid-viewport{min-height:20px;position:relative;overflow-y:scroll;-webkit-overflow-scrolling:touch}.ui-grid-viewport:focus{outline:0!important}.ui-grid-canvas{position:relative;padding-top:1px}.ui-grid-row:nth-child(odd) .ui-grid-cell{background-color:#fdfdfd}.ui-grid-footer-panel-background,.ui-grid-no-row-overlay{background:#f3f3f3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0)}.ui-grid-row:nth-child(even) .ui-grid-cell{background-color:#f3f3f3}.ui-grid-row:last-child .ui-grid-cell{border-bottom-color:#d4d4d4;border-bottom-style:solid}.ui-grid-no-row-overlay{position:absolute;top:0;bottom:0;left:0;right:0;margin:10%;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#eee),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#eee,#fff);background:-moz-linear-gradient(center bottom,#eee 0,#fff 100%);background:-o-linear-gradient(#fff,#eee);-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #d4d4d4;font-size:2em;text-align:center;-webkit-border-radius:0;border-radius:0}.ui-grid-no-row-overlay>*{position:absolute;display:table;margin:auto 0;width:100%;top:0;bottom:0;left:0;right:0;opacity:.66}.ui-grid-cell{overflow:hidden;float:left;background-color:inherit;border-right:1px solid;border-color:#d4d4d4}.ui-grid-cell:last-child{border-right:0}.ui-grid-cell-contents{padding:5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;height:100%}.ui-grid-cell-contents-hidden{visibility:hidden;width:0;height:0;display:none}.ui-grid-row .ui-grid-cell.ui-grid-row-header-cell{background-color:#f0f0ee;border-bottom:solid 1px #d4d4d4}.ui-grid-footer-panel-background{background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#eee),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#eee,#fff);background:-moz-linear-gradient(center bottom,#eee 0,#fff 100%);background:-o-linear-gradient(#fff,#eee)}.ui-grid-footer-panel{position:relative;border-bottom:1px solid #d4d4d4;border-top:1px solid #d4d4d4;overflow:hidden;font-weight:700;background:#f3f3f3;background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#eee),color-stop(1,#fff));background:-ms-linear-gradient(bottom,#eee,#fff);background:-moz-linear-gradient(center bottom,#eee 0,#fff 100%);background:-o-linear-gradient(#fff,#eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:-1px -1px 0 0;border-radius:-1px -1px 0 0}.ui-grid-grid-footer{float:left;width:100%}.ui-grid-footer-viewport{overflow:hidden}.ui-grid-footer-canvas{position:relative}.ui-grid-footer-canvas:after,.ui-grid-footer-canvas:before{content:"";display:table;line-height:0}.ui-grid-footer-cell-wrapper{position:relative;display:table;box-sizing:border-box;height:100%}.ui-grid-menu,.ui-grid-menu-button{position:absolute;cursor:pointer;z-index:2}.ui-grid-footer-cell-row{display:table-row}.ui-grid-footer-cell{overflow:hidden;background-color:inherit;border-right:1px solid;border-color:#d4d4d4;box-sizing:border-box;display:table-cell}.ui-grid-footer-cell:last-child{border-right:0}input[type=text].ui-grid-filter-input{padding:0;margin:0;width:100%;border:1px solid #d4d4d4;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;-webkit-border-radius:0;border-radius:0}input[type=text].ui-grid-filter-input:hover{border:1px solid #d4d4d4}.ui-grid-menu-button{right:0;top:0;background:#f3f3f3;border:1px solid #d4d4d4;height:31px;font-weight:400}.ui-grid-menu-button .ui-grid-icon-container{margin-top:3px}.ui-grid-menu-button .ui-grid-menu{right:0}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid{overflow:scroll;border:1px solid #d4d4d4}.ui-grid-menu{padding:0 10px 20px;box-sizing:border-box}.ui-grid-menu .ui-grid-menu-inner{background:#f3f3f3;border:1px solid #d4d4d4;position:relative;white-space:nowrap;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 10px 20px rgba(0,0,0,.2),inset 0 12px 12px -14px rgba(0,0,0,.2);-moz-box-shadow:0 10px 20px rgba(0,0,0,.2),inset 0 12px 12px -14px rgba(0,0,0,.2);box-shadow:0 10px 20px rgba(0,0,0,.2),inset 0 12px 12px -14px rgba(0,0,0,.2)}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button{position:absolute;right:0;top:0;display:inline-block;margin-bottom:0;font-weight:400;text-align:center;cursor:pointer;border:1px solid transparent;white-space:nowrap;-webkit-user-select:none;-ms-user-select:none;user-select:none;padding:1px;font-size:10px;line-height:1;border-radius:2px;color:transparent;background-color:transparent}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover{text-decoration:none}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled],fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button,.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover{color:transparent;background-color:rgba(0,0,0,0);border-color:transparent}.open>.dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active{background-image:none}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled.focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled:hover,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled].focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled]:focus,.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled]:hover,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover{background-color:transparent;border-color:transparent}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button .badge{color:transparent;background-color:transparent}.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button>i{opacity:.75;color:#000}div.ui-grid-cell input,div.ui-grid-cell input:focus{color:inherit;outline:0}.ui-grid-menu .ui-grid-menu-inner ul{margin:0;padding:0;list-style-type:none}.ui-grid-menu .ui-grid-menu-inner ul li{padding:0}.ui-grid-menu .ui-grid-menu-inner ul li button{min-width:100%;padding:8px;text-align:left;background:0 0;border:none}.ui-grid-menu .ui-grid-menu-inner ul li button:focus,.ui-grid-menu .ui-grid-menu-inner ul li button:hover{-webkit-box-shadow:inset 0 0 14px rgba(0,0,0,.2);-moz-box-shadow:inset 0 0 14px rgba(0,0,0,.2);box-shadow:inset 0 0 14px rgba(0,0,0,.2)}.ui-grid-menu .ui-grid-menu-inner ul li button.ui-grid-menu-item-active{-webkit-box-shadow:inset 0 0 14px rgba(0,0,0,.2);-moz-box-shadow:inset 0 0 14px rgba(0,0,0,.2);box-shadow:inset 0 0 14px rgba(0,0,0,.2);background-color:#cecece}.ui-grid-menu .ui-grid-menu-inner ul li:not(:last-child)>button{border-bottom:1px solid #d4d4d4}.ui-grid-sortarrow{right:5px;position:absolute;width:20px;top:0;bottom:0;background-position:center}.ui-grid-sortarrow.down{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}@font-face{font-family:ui-grid;src:url(ui-grid.eot);src:url(ui-grid.eot#iefix) format('embedded-opentype'),url(../../assets/css/global/ui-grid.woff) format('woff'),url(../../assets/css/global/ui-grid.ttf) format('truetype'),url(ui-grid.svg?#ui-grid) format('svg');font-weight:400;font-style:normal}[class*=" ui-grid-icon"]:before,[class^=ui-grid-icon]:before{font-family:ui-grid;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.ui-grid-icon-blank::before{width:1em;content:' '}.ui-grid[dir=rtl] .ui-grid-cell,.ui-grid[dir=rtl] .ui-grid-footer-cell,.ui-grid[dir=rtl] .ui-grid-header-cell{float:right!important}.scrollFiller,.ui-grid-pager-container,.ui-grid-pager-row-count-picker{float:left}.ui-grid[dir=rtl] .ui-grid-column-menu-button{position:absolute;left:1px;top:0;right:inherit}.ui-grid[dir=rtl] .ui-grid-cell:first-child,.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child,.ui-grid[dir=rtl] .ui-grid-header-cell:first-child{border-right:0}.ui-grid[dir=rtl] .ui-grid-cell:last-child,.ui-grid[dir=rtl] .ui-grid-header-cell:last-child{border-right:1px solid #d4d4d4;border-left:0}.ui-grid[dir=rtl] .ui-grid-cell:first-child .ui-grid-vertical-bar,.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child .ui-grid-vertical-bar,.ui-grid[dir=rtl] .ui-grid-header-cell:first-child .ui-grid-vertical-bar{width:0}.ui-grid[dir=rtl] .ui-grid-menu-button{z-index:2;position:absolute;left:0;right:auto;background:#f3f3f3;border:1px solid #d4d4d4;cursor:pointer;min-height:27px;font-weight:400}.ui-grid[dir=rtl] .ui-grid-menu-button .ui-grid-menu{left:0;right:auto}.ui-grid[dir=rtl] .ui-grid-filter-container .ui-grid-filter-button{right:initial;left:0}.ui-grid[dir=rtl] .ui-grid-filter-container .ui-grid-filter-button [class^=ui-grid-icon]{right:initial;left:10px}.ui-grid-animate-spin{-moz-animation:ui-grid-spin 2s infinite linear;-o-animation:ui-grid-spin 2s infinite linear;-webkit-animation:ui-grid-spin 2s infinite linear;animation:ui-grid-spin 2s infinite linear;display:inline-block}@-moz-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes ui-grid-spin{0%{-moz-transform:rotate(0);-o-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.ui-grid-cell-focus{outline:0;background-color:#b3c4c7}.ui-grid-focuser{position:absolute;left:0;top:0;z-index:-1;width:100%;height:100%}.ui-grid-focuser:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ui-grid-offscreen{display:block;position:absolute;left:-10000px;top:-10000px;clip:rect(0,0,0,0)}div.ui-grid-cell input{border-radius:inherit;padding:0;width:100%;height:auto;font:inherit}div.ui-grid-cell input[type=checkbox]{margin:9px 0 0 6px;width:auto}div.ui-grid-cell input.ng-invalid{border:1px solid #fc8f8f}.movingColumn,.scrollFiller,div.ui-grid-cell input.ng-valid{border:1px solid #d4d4d4}.expandableRow .ui-grid-row:nth-child(odd) .ui-grid-cell{background-color:#fdfdfd}.expandableRow .ui-grid-row:nth-child(even) .ui-grid-cell{background-color:#f3f3f3}.ui-grid-expandable-buttons-cell i{pointer-events:all}.movingColumn{position:absolute;top:0;box-shadow:inset 0 0 14px rgba(0,0,0,.2)}.movingColumn .ui-grid-icon-angle-down{display:none}#ui-grid-twbs #ui-grid-twbs .btn-group-vertical>.btn-group:after,#ui-grid-twbs #ui-grid-twbs .btn-group-vertical>.btn-group:before,#ui-grid-twbs #ui-grid-twbs .btn-toolbar:after,#ui-grid-twbs #ui-grid-twbs .btn-toolbar:before,#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:after,#ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:before{content:" ";display:table}.ui-grid-pager-panel{position:absolute;left:0;bottom:0;width:100%;padding-top:3px;padding-bottom:3px;box-sizing:content-box}.ui-grid-pager-control{margin-right:10px;margin-left:10px;min-width:135px;float:left}.ui-grid-pager-control button{height:25px;min-width:26px;display:inline-block;margin-bottom:0;font-weight:400;text-align:center;cursor:pointer;border:1px solid #ccc;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-ms-user-select:none;user-select:none;color:#eee;background-color:#f3f3f3}.ui-grid-pager-control input[disabled],.ui-grid-pager-row-count-picker select[disabled],fieldset[disabled] .ui-grid-pager-control input,fieldset[disabled] .ui-grid-pager-row-count-picker select{cursor:not-allowed}.ui-grid-pager-control input,.ui-grid-pager-row-count-picker select{background-image:none;padding:5px 10px;font-size:12px;display:inline}.ui-grid-pager-control button.active.focus,.ui-grid-pager-control button.active:focus,.ui-grid-pager-control button.focus,.ui-grid-pager-control button:active.focus,.ui-grid-pager-control button:active:focus,.ui-grid-pager-control button:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.ui-grid-pager-control button.focus,.ui-grid-pager-control button:focus,.ui-grid-pager-control button:hover{text-decoration:none}.ui-grid-pager-control button.active,.ui-grid-pager-control button:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.ui-grid-pager-control button.disabled,.ui-grid-pager-control button[disabled],fieldset[disabled] .ui-grid-pager-control button{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.ui-grid-pager-control button.disabled,fieldset[disabled] a.ui-grid-pager-control button{pointer-events:none}.ui-grid-pager-control button.focus,.ui-grid-pager-control button:focus{color:#eee;background-color:#dadada;border-color:#8c8c8c}.open>.dropdown-toggle.ui-grid-pager-control button,.ui-grid-pager-control button.active,.ui-grid-pager-control button:active,.ui-grid-pager-control button:hover{color:#eee;background-color:#dadada;border-color:#adadad}.open>.dropdown-toggle.ui-grid-pager-control button.focus,.open>.dropdown-toggle.ui-grid-pager-control button:focus,.open>.dropdown-toggle.ui-grid-pager-control button:hover,.ui-grid-pager-control button.active.focus,.ui-grid-pager-control button.active:focus,.ui-grid-pager-control button.active:hover,.ui-grid-pager-control button:active.focus,.ui-grid-pager-control button:active:focus,.ui-grid-pager-control button:active:hover{color:#eee;background-color:#c8c8c8;border-color:#8c8c8c}.open>.dropdown-toggle.ui-grid-pager-control button,.ui-grid-pager-control button.active,.ui-grid-pager-control button:active{background-image:none}.ui-grid-pager-control button.disabled.focus,.ui-grid-pager-control button.disabled:focus,.ui-grid-pager-control button.disabled:hover,.ui-grid-pager-control button[disabled].focus,.ui-grid-pager-control button[disabled]:focus,.ui-grid-pager-control button[disabled]:hover,fieldset[disabled] .ui-grid-pager-control button.focus,fieldset[disabled] .ui-grid-pager-control button:focus,fieldset[disabled] .ui-grid-pager-control button:hover{background-color:#f3f3f3;border-color:#ccc}.ui-grid-pager-control button .badge{color:#f3f3f3;background-color:#eee}.ui-grid-pager-control input{color:#555;background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;line-height:1.5;border-radius:3px;height:26px;width:50px;vertical-align:top}.ui-grid-pager-control input:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ui-grid-pager-control input::-moz-placeholder{color:#999;opacity:1}.ui-grid-pager-control input:-ms-input-placeholder{color:#999}.ui-grid-pager-control input::-webkit-input-placeholder{color:#999}.ui-grid-pager-control input::-ms-expand{border:0;background-color:transparent}.ui-grid-pager-control input[disabled],.ui-grid-pager-control input[readonly],fieldset[disabled] .ui-grid-pager-control input{background-color:#eee;opacity:1}textarea.ui-grid-pager-control input{height:auto}select.ui-grid-pager-control input{height:30px;line-height:30px}select[multiple].ui-grid-pager-control input,textarea.ui-grid-pager-control input{height:auto}.ui-grid-pager-control .ui-grid-pager-max-pages-number{vertical-align:bottom}.ui-grid-pager-control .ui-grid-pager-max-pages-number>*{vertical-align:middle}.ui-grid-pager-control .first-bar{width:10px;border-left:2px solid #4d4d4d;margin-top:-6px;height:12px;margin-left:-3px}.ui-grid-pager-control .first-bar-rtl{width:10px;border-left:2px solid #4d4d4d;margin-top:-6px;height:12px;margin-right:-7px}.ui-grid-pager-control .first-triangle{width:0;height:0;border-style:solid;border-width:5px 8.7px 5px 0;border-color:transparent #4d4d4d transparent transparent;margin-left:2px}.ui-grid-pager-control .next-triangle{margin-left:1px}.ui-grid-pager-control .prev-triangle{margin-left:0}.ui-grid-pager-control .last-triangle{width:0;height:0;border-style:solid;border-width:5px 0 5px 8.7px;border-color:transparent transparent transparent #4d4d4d;margin-left:-1px}.ui-grid-pager-control .last-bar{width:10px;border-left:2px solid #4d4d4d;margin-top:-6px;height:12px;margin-left:1px}.ui-grid-pager-control .last-bar-rtl{width:10px;border-left:2px solid #4d4d4d;margin-top:-6px;height:12px;margin-right:-11px}.ui-grid-pager-row-count-picker select{color:#555;background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;line-height:1.5;border-radius:3px;height:26px;width:67px}.ui-grid-pager-row-count-picker select:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ui-grid-pager-row-count-picker select::-moz-placeholder{color:#999;opacity:1}.ui-grid-pager-row-count-picker select:-ms-input-placeholder{color:#999}.ui-grid-pager-row-count-picker select::-webkit-input-placeholder{color:#999}.ui-grid-pager-row-count-picker select::-ms-expand{border:0;background-color:transparent}.ui-grid-pager-row-count-picker select[disabled],.ui-grid-pager-row-count-picker select[readonly],fieldset[disabled] .ui-grid-pager-row-count-picker select{background-color:#eee;opacity:1}textarea.ui-grid-pager-row-count-picker select{height:auto}select.ui-grid-pager-row-count-picker select{height:30px;line-height:30px}select[multiple].ui-grid-pager-row-count-picker select,textarea.ui-grid-pager-row-count-picker select{height:auto}.ui-grid-pager-row-count-picker .ui-grid-pager-row-count-label{margin-top:3px}.ui-grid-pager-count-container{float:right;margin-top:4px;min-width:50px}.ui-grid-pager-count-container .ui-grid-pager-count{margin-right:10px;margin-left:10px;float:right}.ui-grid-pinned-container{position:absolute;display:inline;top:0}.ui-grid-pinned-container.ui-grid-pinned-container-left{float:left;left:0}.ui-grid-pinned-container.ui-grid-pinned-container-right{float:right;right:0}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:last-child,.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:last-child{box-sizing:border-box;border-right:1px solid;border-width:1px;border-right-color:#aeaeae}.ui-grid-pinned-container .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar,.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar{width:1px}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#d4d4d4}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#aeaeae}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:last-child .ui-grid-vertical-bar{right:-1px;width:1px;background-color:#aeaeae}.ui-grid-pinned-container.ui-grid-pinned-container-right .ui-grid-cell:first-child,.ui-grid-pinned-container.ui-grid-pinned-container-right .ui-grid-header-cell:first-child{box-sizing:border-box;border-left:1px solid;border-width:1px;border-left-color:#aeaeae}.ui-grid-pinned-container .ui-grid-cell:not(:first-child) .ui-grid-vertical-bar,.ui-grid-pinned-container.ui-grid-pinned-container-right .ui-grid-header-cell:not(:first-child) .ui-grid-vertical-bar{width:1px}.ui-grid-pinned-container.ui-grid-pinned-container-right .ui-grid-header-cell:not(:first-child) .ui-grid-vertical-bar{background-color:#d4d4d4}.ui-grid-pinned-container.ui-grid-pinned-container-right .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#aeaeae}.ui-grid-pinned-container.ui-grid-pinned-container-first .ui-grid-header-cell:first-child .ui-grid-vertical-bar{left:-1px;width:1px;background-color:#aeaeae}.ui-grid-column-resizer{top:0;bottom:0;width:5px;position:absolute;cursor:col-resize}.ui-grid-column-resizer.left{left:0}.ui-grid-column-resizer.right{right:0}.ui-grid-header-cell:last-child .ui-grid-column-resizer.right{border-right:1px solid #d4d4d4}.ui-grid[dir=rtl] .ui-grid-header-cell:last-child .ui-grid-column-resizer.right{border-right:0}.ui-grid[dir=rtl] .ui-grid-header-cell:last-child .ui-grid-column-resizer.left{border-left:1px solid #d4d4d4}.ui-grid.column-resizing{cursor:col-resize}.ui-grid.column-resizing .ui-grid-resize-overlay{position:absolute;top:0;height:100%;width:1px;background-color:#aeaeae}.ui-grid-row-saving .ui-grid-cell{color:#848484!important}.ui-grid-row-dirty .ui-grid-cell{color:#610b38}.ui-grid-row-error .ui-grid-cell{color:red!important}.ui-grid-row.ui-grid-row-selected>[ui-grid-row]>.ui-grid-cell{background-color:#c9dde1}.ui-grid-disable-selection{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.ui-grid-selection-row-header-buttons{cursor:pointer;opacity:.1}.ui-grid-selection-row-header-buttons.ui-grid-all-selected,.ui-grid-selection-row-header-buttons.ui-grid-row-selected{opacity:1}.ui-grid-tree-row-header-buttons.ui-grid-tree-header{cursor:pointer;opacity:1}.fb-component input,.fb-component label,.fb-component select,.fb-component textarea,.fb-form-object-editable.fb-draggable,.fb-form-object-editable.fb-draggable input{cursor:move}.ui-grid-tree-header-row{font-weight:700!important}.ui-grid-tree-header-row .ui-grid-cell.ui-grid-disable-selection.ui-grid-row-header-cell{pointer-events:all}div.ui-grid-cell-contents.invalid{border:1px solid #fc8f8f}.ui-grid-icon-plus-squared:before{content:'\c350'}.ui-grid-icon-minus-squared:before{content:'\c351'}.ui-grid-icon-search:before{content:'\c352'}.ui-grid-icon-cancel:before{content:'\c353'}.ui-grid-icon-info-circled:before{content:'\c354'}.ui-grid-icon-lock:before{content:'\c355'}.ui-grid-icon-lock-open:before{content:'\c356'}.ui-grid-icon-pencil:before{content:'\c357'}.ui-grid-icon-down-dir:before{content:'\c358'}.ui-grid-icon-up-dir:before{content:'\c359'}.ui-grid-icon-left-dir:before{content:'\c35a'}.ui-grid-icon-right-dir:before{content:'\c35b'}.ui-grid-icon-left-open:before{content:'\c35c'}.ui-grid-icon-right-open:before{content:'\c35d'}.ui-grid-icon-angle-down:before{content:'\c35e'}.ui-grid-icon-filter:before{content:'\c35f'}.ui-grid-icon-sort-alt-up:before{content:'\c360'}.ui-grid-icon-sort-alt-down:before{content:'\c361'}.ui-grid-icon-ok:before{content:'\c362'}.ui-grid-icon-menu:before{content:'\c363'}.ui-grid-icon-indent-left:before{content:'\e800'}.ui-grid-icon-indent-right:before{content:'\e801'}.ui-grid-icon-spin5:before{content:'\ea61'}.fb-component{padding:10px;cursor:move}.fb-form-object-editable{padding:10px}.fb-form-object-editable.fb-draggable label{cursor:pointer}.fb-form-object-editable.fb-draggable select,.fb-form-object-editable.fb-draggable textarea{cursor:move}.fb-form-object-editable.empty{cursor:default;margin:6px;height:80px;border:1px dashed #aaa;background-color:#eee}.fb-draggable.dragging{background-color:#fff;position:absolute;z-index:800;-webkit-box-shadow:#666 0 0 20px;-moz-box-shadow:#666 0 0 20px;box-shadow:#666 0 0 20px}.fb-required:after{color:#b94a48;content:' *'}.fb-builder{min-height:250px}.popover .control-label{text-align:left}.popover form{width:240px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}code,pre{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.pln{color:#000}@media screen{.kwd,.tag,.typ{font-weight:700}.str{color:#080}.kwd{color:#008}.com{color:#800;font-style:italic}.typ{color:#606}.lit{color:#066}.clo,.opn,.pun{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
\ No newline at end of file
similarity index 74%
rename from public/app/a62711dc.app.js
rename to public/app/be15a8f1.app.js
index 86486b8..f60758d 100644 (file)
@@ -1,27 +1,27 @@
-"use strict";angular.module("xCallyShuttleApp",["adf","adf.structures.base","adf.widget.clock","adf.widget.iframe","adf.widget.counter","adf.widget.pie-chart","angular-md5","angular.filter","angularFileUpload","btford.socket-io","chart.js","checklist-model","colorpicker.module","frapontillo.bootstrap-switch","infinite-scroll","LocalStorageModule","mgo-angular-wizard","ng-slide-down","ngAnimate","ngBootstrap","ngCookies","ngCsv","ngFileSaver","ngJsTree","ngMap","ngPapaParse","ngResource","ngSanitize","notification","oc.lazyLoad","pascalprecht.translate","pdf","remoteValidation","smart-table","sprintf","textAngular","timer","toastr","permission","ui-notification","ui.bootstrap.modal","ui.bootstrap.dropdown","ui.bootstrap.popover","ui.bootstrap.timepicker","ui.bootstrap.tooltip","ui.bootstrap.tpls","ui.bootstrap.accordion","ui.bootstrap.progressbar","ui.bootstrap.typeahead","ui.grid","ui.grid.autoResize","ui.grid.draggable-rows","ui.grid.exporter","ui.grid.grouping","ui.grid.moveColumns","ui.grid.pagination","ui.grid.treeView","ui.grid.selection","ui.grid.exporter","ui.grid.resizeColumns","ui.router","ui.navbar","ui.select","ui.sortable","xeditable","ngAudio","truncate","ngScrollbars","ngEmoticons","angularSpinner","builder","builder.components","validator","angular-clipboard","ng-code-mirror","angularMoment"]).config(["$stateProvider","$urlRouterProvider","$locationProvider","$httpProvider","$translateProvider","localStorageServiceProvider","dashboardProvider","ScrollBarsProvider",function(a,b,c,d,e,f,g,h){b.otherwise("/dashboard/voice"),e.useStaticFilesLoader({prefix:"assets/languages/locale-",suffix:".json"}),e.preferredLanguage("en_EN"),e.useLocalStorage(),e.useSanitizeValueStrategy("sanitize"),c.html5Mode(!0),d.interceptors.push("authInterceptor"),g.structure("4-4-4",{rows:[{columns:[{styleClass:"col-md-4"},{styleClass:"col-md-4"},{styleClass:"col-md-4"}]}]}).structure("3-3-3-3",{rows:[{columns:[{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"}]}]}),f.setPrefix("xcally"),h.defaults={scrollButtons:{scrollAmount:"auto",enable:!0},axis:"y"}}]).factory("settings",["$rootScope","$interval","License","localStorageService",function(a,b,c,d){return a.settings={patternName:"[A-Za-z0-9._]+",layout:{pageSidebarClosed:d.get("sidebarClosed")||!1,pageQuickSidebarOpened:!1,pageBodySolid:!1,pageAutoScrollOnLoad:1e3}},c.get(function(b){b.license&&(a.license=b.license,a.soundPath=b.soundPath)}),a.settings}]).factory("authInterceptor",["$rootScope","$q","$cookieStore",function(a,b,c){return{request:function(a){return a.headers=a.headers||{},c.get("token")&&(a.headers.Authorization="Bearer "+c.get("token")),a}}}]).run(["$rootScope","$location","$state","$stateParams","$window","$q","$http","Auth","RoleStore","editableThemes","editableOptions",function(a,b,c,d,e,f,g,h,i,j,k){g.get("/api/settings/1").success(function(b){a.license=b.license}).error(function(a){console.error(a)}),a.$state=c,a.$stateParams=d,j.bs3.inputClass="input-sm",j.bs3.buttonsClass="btn-xs",k.theme="bs3",a.online=navigator.onLine,e.addEventListener("offline",function(){a.$apply(function(){a.online=!1})},!1),e.addEventListener("online",function(){a.$apply(function(){a.online=!0})},!1),a.$on("$stateChangeStart",function(a,c){h.isLoggedInAsync(function(a){c.authenticate&&!a&&b.path("/login")})}),a.updateTableConfig=function(a,b){var c=_.find(a,{name:"All"});c&&(c.value=b)},i.defineRole("admin",[],function(){return h.isAdmin()})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics",{url:"/analytics",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Extracted",["$resource",function(a){return a("/api/analytics/extracted/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.extracted",{url:"/extracted",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnalyticExtractedListCtrl",["$scope","$translate","gridOptions","Extracted",function(a,b,c,d){a.moment=moment,a.Extracted=d,a.initView=function(){var b={exporterCsvFilename:"ExtractedReports.csv",columnDefs:[{name:"name"},{name:"startDate",displayName:"APPLICATION_START_DATE"},{name:"endDate",displayName:"APPLICATION_END_DATE"},{name:"createdAt",displayName:"APPLICATION_RUN_DATE"},{name:"startDate",displayName:"APPLICATION_START_DATE"},{name:"output"},{name:"status"},{name:"action",width:140,buttons:[{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{directive:"<motion-file-download data-ng-show=\"row.entity.status == 'completed'\" resource=\"grid.appScope.Extracted\" params=\"{id:row.entity.id,controller:'download'}\" mimetype=\"'application/'+row.entity.output.toLowerCase()\" filename=\"row.entity.name+'_'+grid.appScope.moment(row.entity.startDate).format('MM-DD-YYYY').toString()+'_'+grid.appScope.moment(row.entity.endDate).format('MM-DD-YYYY').toString()+'.'+row.entity.output.toLowerCase()\"></motion-file-download>"}]}]};a.gridOptions=c.gridOptions(d,b,a,{order:"createdAt DESC"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.extracted.list",{url:"/list",templateUrl:"app/analytic/extracted/list/list.html",controller:"AnalyticExtractedListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.tables=[{name:"Agent Report",value:"report_agent_history"},{name:"Mail Report",value:"report_mail_session_history"},{name:"Queue Report",value:"report_queue_history"},{name:"Integration Report",value:"report_integration_history"},{name:"Chat Report",value:"report_chat_session_history"}],a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricListCtrl",["$scope","xAlert","Modal","$uibModal","$log","gridOptions","Metric","$translate",function(a,b,c,d,e,f,g,h){a.$translate=h,a.initView=function(){var b={exporterCsvFilename:"Metrics.csv",columnDefs:[{name:"name"},{name:"table",cellTemplate:"<div style=\"padding:5px\">{{'APPLICATION_'+row.entity.table.toUpperCase() | translate}}</div>"},{name:"description"},{name:"action",width:125,buttons:[{"class":"{{row.entity.defaultEntry ? 'blue-hoki disabled' : 'blue-hoki'}}",href:"/analytics/metrics/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=f.gridOptions(g,b,a)},a.create=function(){var c=d.open({animation:!0,templateUrl:"app/analytic/metric/list/create.modal.html",controller:"AnalyticMetricListCreateModalCtrl"});c.result.then(function(c){return g.save(c).$promise.then(function(){a.gridOptions.getPage(),b.show(h.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(a.data.message,"danger")})},function(){e.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics.list",{url:"/list",templateUrl:"app/analytic/metric/list/list.html",controller:"AnalyticMetricListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Metric",["$resource",function(a){return a("/api/analytics/metrics/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics",{url:"/metrics",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricViewCtrl",["$scope","xAlert","$translate","$stateParams","$location","Metric",function(a,b,c,d,e,f){a.tables=[{name:"Agent Report",value:"report_agent_history"},{name:"Mail Report",value:"report_mail_session_history"},{name:"Queue Report",value:"report_queue_history"},{name:"Integration Report",value:"report_integration_history"},{name:"Chat Report",value:"report_chat_session_history"}],a.getMetric=function(){return f.get({id:d.id}).$promise.then(function(b){a.metric=b})["catch"](function(a){e.path("/analytics/metrics/list")})},a.updateMetric=function(){return f.update({id:d.id},a.metric).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics.view",{url:"/view/:id",templateUrl:"app/analytic/metric/view/view.html",controller:"AnalyticMetricViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.analytics.metrics.view.settings",{url:"/settings",templateUrl:"app/analytic/metric/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("customReport",["$resource",function(a){return a("/api/analytics/reports/custom/:id/:controller/:action",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("defaultReport",["$resource",function(a){return a("/api/analytics/reports/default/:id/:controller/:action",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ReportListCopyModalCtrl",["$scope","$uibModalInstance","$log","customTreeData",function(a,b,c,d){a.customTreeData=d,a.forms={dashboard:void 0},a.item={},a.customTreeConfig={multiple:!1,animation:!0,core:{error:function(a){c.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0}},a.ac=function(){return!0},a.initCustomScopeTree=function(){a.customTree=a.customTreeInstance.jstree(!0),a.customTree.deselect_all(),a.customTree.open_all()},a.ok=function(){b.close({parent:a.customTree.get_selected(!0).pop().id})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ReportListCreateModalCtrl",["$scope","$uibModalInstance","path",function(a,b,c){a.path=c,a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ReportListExtractModalCtrl",["$scope","$uibModalInstance",function(a,b){a.dates={startDate:moment().subtract(1,"days").startOf("day"),endDate:moment().subtract(1,"days").endOf("day")},a.ranges={Yesterday:[moment().subtract(1,"days").startOf("day"),moment().subtract(1,"days").endOf("day")],"Last 7 days":[moment().subtract(7,"days"),moment()],"Last 30 days":[moment().subtract(30,"days"),moment()],"This month":[moment().startOf("month"),moment().endOf("month")]},a.extract=function(c){var d={startDate:a.dates.startDate.toISOString(),endDate:a.dates.endDate.toISOString(),output:c};b.close(d)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("AnalyticReportListCtrl",["$scope","xAlert","$translate","$location","$log","Modal","$uibModal","FileSaver","Blob","gridOptions","customReport","defaultReport","reportTree",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){var b,c={},d=a.defaultTree.get_selected(),e=a.customTree.get_selected();if(d.length)b=d.pop(),a.selectedNode=a.defaultTree.get_path(b," / "),c={parent:b},a.gridOptions=j.gridOptions(l,o,a,c,!0),a.gridOptions.getPage();else{if(!e.length)return;b=e.pop(),a.selectedNode=a.customTree.get_path(b," / "),c={parent:b},a.gridOptions=j.gridOptions(k,o,a,c,!0),a.gridOptions.getPage()}}var o={exporterCsvFilename:"reports.csv",columnDefs:[{name:"name"},{name:"description"},{name:"manage",buttons:[{"class":"blue-hoki",href:"/analytics/reports/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{"class":"green",name:"copy",onClick:"grid.appScope.copy(row.entity.id)"},{"class":"purple",name:"export",onClick:"grid.appScope.export(row.entity.id)"}]},{name:"actions",buttons:[{"class":"yellow",name:"preview",onClick:"grid.appScope.preview(row.entity.id)"},{"class":"green-turquoise",name:"run",onClick:"grid.appScope.extract(row.entity.id)"}]}]};a.searchField="",a.ac=function(){return!0},a.initDefaultScopeTree=function(){a.defaultTree=a.defaultTreeInstance.jstree(!0),a.defaultTree.deselect_all(),a.defaultTree.close_all(),a.defaultTree.open_node({id:1}),a.defaultTreeReady=!0,a.defaultTreeActive=!0,a.previousDefaultNode=""},a.initCustomScopeTree=function(){a.customTree=a.customTreeInstance.jstree(!0),a.customTree.deselect_all(),a.customTree.close_all(),a.customTree.open_node({id:1}),a.customTreeReady=!0,a.previousCustomNode=""},a.$watchGroup(["defaultTreeReady","customTreeReady"],function(b,c,d){b[0]&&b[1]&&a.defaultTree.select_node({id:"1"})}),a.updateCustomTree=function(){var d={tree:angular.toJson(a.customTree.get_json("#",{flat:!0}))};return m.update({id:2},d).$promise.then(function(a){console.log("Custom Tree Updated")})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.configTrees=function(){a.defaultTreeConfig={multiple:!1,animation:!0,core:{error:function(a){e.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0,themes:{name:"default",url:"../../../assets/css/jstree-metronic/style.css"}},plugins:["search"]},a.customTreeConfig={multiple:!1,animation:!0,core:{error:function(a){e.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0,themes:{name:"default",url:"../../../assets/css/jstree-metronic/style.css"}},plugins:["contextmenu","dnd","search"],contextmenu:{items:function(b,d){var e={create:{label:c.instant("APPLICATION_CREATE"),action:function(c){a.customTree.create_node(b),a.customTree.open_node(b)}},rename:{label:c.instant("APPLICATION_RENAME"),action:function(c){a.customTree.edit(b)}},remove:{label:c.instant("APPLICATION_REMOVE"),action:function(c){console.log(b),a.deleteNode(b.text,b)}}};return"#"===b.parent&&(delete e.rename,delete e.remove),d(e),e}}}},a.deleteNode=f.confirm["delete"](function(b){a.customTree.delete_node(b),a.previousCustomNode==b.id&&a.customTree.select_node({id:b.parent})}),a.searchTrees=function(){a.defaultTree.search(a.searchField),a.customTree.search(a.searchField)},a.selectDefaultNode=function(){if(a.customTreeReady){a.previousCustomNode="";var b=a.defaultTree.get_selected(!0),c=b.pop();if(a.defaultTree.deselect_node(b[0],!0),a.customTree.deselect_all(),a.defaultTree.select_node(c,!0),c.id===a.previousDefaultNode)return void console.log("def");a.previousDefaultNode=c.id,a.defaultTreeActive=!0,n()}},a.selectCustomNode=function(){if(a.defaultTreeReady){a.previousDefaultNode="";var b=a.customTree.get_selected(!0),c=b.pop();if(a.customTree.deselect_node(b[0],!0),a.defaultTree.deselect_all(),a.customTree.select_node(c,!0),c.id===a.previousCustomNode)return void console.log("cus");a.previousCustomNode=c.id,a.defaultTreeActive=!1,n()}},a.getTrees=function(){return m.query().$promise.then(function(b){a.defaultTreeData=JSON.parse(b[0].tree),a.customTreeData=JSON.parse(b[1].tree),a.configTrees()})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.create=function(){var c=g.open({animation:!0,templateUrl:"app/analytic/report/list/create.modal.html",controller:"ReportListCreateModalCtrl",resolve:{path:function(){return a.selectedNode}}});c.result.then(function(c){return c.parent=a.previousCustomNode,k.save(c).$promise.then(function(a){d.path("/analytics/reports/view/"+a.id+"/settings")})["catch"](function(a){b.show(a.message,"danger")})},function(){e.info("Modal dismissed at: "+new Date)})},a.copy=function(d){var f=a.defaultTreeActive?l:k,h=g.open({animation:!0,templateUrl:"app/analytic/report/list/copy.modal.html",controller:"ReportListCopyModalCtrl",resolve:{customTreeData:function(){return a.customTreeData}}});h.result.then(function(e){return f.save({id:d,controller:"copy"},e).$promise.then(function(){a.gridOptions.getPage(),b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message,"danger")})},function(){e.info("Modal dismissed at: "+new Date)})},a["export"]=function(c){var d=a.defaultTreeActive?l:k;return d.get({id:c}).$promise.then(function(a){delete a.id,delete a.createdAt,delete a.updatedAt,delete a.deletedAt,_.forEach(a.Fields,function(a){delete a.id,delete a.CustomReportId,a.Metric&&(delete a.Metric.id,a.Metric.name+="_"+_.random(9999))});var b=new i([angular.toJson(a)],{type:"application/json;charset=utf-8"});h.saveAs(b,a.name+".json")})["catch"](function(a){console.error(data),b.show(a.message,"danger")})},a["import"]=function(d){var e=JSON.parse(d);e.parent=a.previousCustomNode;var f=e.name&&e.parent?!0:!1,g=!0;return _.forEach(e.Fields,function(a){a.field&&a.alias||(g=!1)}),f&&g?k.save({controller:"import"},e).$promise.then(function(){a.gridOptions.getPage(),b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message,"danger")}):void b.show(c.instant("MESSAGE_INVALID_JSON"),"danger")},a.preview=function(b){g.open({animation:!0,templateUrl:"app/analytic/report/list/preview.modal.html",controller:"ReportListPreviewModalCtrl",size:"full",resolve:{report:function(){return{id:b,tree:a.defaultTreeActive?"default":"custom"}}}})},a.extract=function(d){var f=g.open({animation:!0,templateUrl:"app/analytic/report/list/extract.modal.html",controller:"ReportListExtractModalCtrl",size:"md",resolve:{report:function(){return{id:d,tree:a.defaultTreeActive?"default":"custom"}}}});f.result.then(function(e){var f=a.defaultTreeActive?l:k;return f.get({id:d,controller:"extract",action:e.output,startDate:e.startDate,endDate:e.endDate}).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message,"danger")})},function(){e.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports.list",{url:"/list",templateUrl:"app/analytic/report/list/list.html",controller:"AnalyticReportListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ReportListPreviewModalCtrl",["$scope","$uibModalInstance","report","xAlert","$translate","$timeout","customReport","defaultReport",function(a,b,c,d,e,f,g,h){a.forms={dashboard:void 0},a.dates={startDate:moment().subtract(1,"days").startOf("day"),endDate:moment().subtract(1,"days").endOf("day")},a.ranges={Yesterday:[moment().subtract(1,"days").startOf("day"),moment().subtract(1,"days").endOf("day")],"Last 7 days":[moment().subtract(7,"days"),moment()],"Last 30 days":[moment().subtract(30,"days"),moment()],"This month":[moment().startOf("month"),moment().endOf("month")]};var i={pageNumber:1,pageSize:25,sort:null,where:{},order:{}};a.gridOptions={paginationPageSizes:[10,25,50],paginationPageSize:25,useExternalPagination:!0,enableSorting:!1,enableFiltering:!0,useExternalFiltering:!0,enableGrouping:!1,enableColumnMenus:!1,treeRowHeaderAlwaysVisible:!1,gridMenuShowHideColumns:!1,enableGridMenu:!1,onRegisterApi:function(b){a.gridApi=b,b.pagination.on.paginationChanged(a,function(b,c){i.offset=(b-1)*c,i.limit=c,a.getPage()}),b.core.on.filterChanged(a,function(){var b=this.grid,c={};b.columns.forEach(function(a){console.log(a),a.filters[0].term&&(c[a.field]=a.filters[0].term)}),i.where=c,a.getPage()})}},a.getPage=function(){var b={params:{offset:i.offset,limit:i.limit,startDate:a.dates.startDate.toISOString(),endDate:a.dates.endDate.toISOString()}};_.forOwn(i.where,function(a,c){b.params[c]=a}),console.log(b);var f="custom"===c.tree?g:h;return f.get({id:c.id,controller:"preview"},b).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.paginationPageSizes[3]=b.count,a.gridOptions.data=b.rows,a.showResult=!0})["catch"](function(a){d.show(e.instant(a.message),"danger")})},a.cancel=function(){b.dismiss("cancel")},f(function(){a.getPage()})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports",{url:"/reports",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("reportTree",["$resource",function(a){return a("/api/analytics/reports/trees/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("AnalyticReportViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){function g(e){var f=_.find(a.tables,{table:e}).url;b.get(f).success(function(b){a.tableFields=_.map(b,function(a,b){return{name:b,value:b}})}).error(function(a){c.show(d.instant(a.message),"danger")})}function h(e){console.log(e),b.get("/api/analytics/metrics/table",{params:{table:e}}).success(function(b){_.forEach(b,function(b){a.tableFields.push({name:"<strong>Metric.</strong>"+b.name,value:b.metric,MetricId:b.id})})}).error(function(a){c.show(d.instant(a.message),"danger")})}function i(a){return String(a).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function j(a){if(!a)return"";for(var b="(",c=0;c<a.rules.length;c++)c>0&&(b+=" <strong>"+a.operator+"</strong> "),b+=a.rules[c].group?j(a.rules[c].group):a.rules[c].field+" "+i(a.rules[c].condition)+" '"+("like"===a.rules[c].condition?"%"+a.rules[c].value+"%":a.rules[c].value)+"'";return b+")"}a.$translate=d,a.tempReport={},a.tables=[{name:"Agent Report",table:"report_agent_history",url:"/api/report/agents/describe"},{name:"Mail Report",table:"report_mail_session_history",url:"/api/report/mail/sessions/describe"},{name:"Queue Report",table:"report_queue_history",url:"/api/report/queues/describe"},{name:"Chat Report",table:"report_chat_session_history",url:"/api/report/chat/sessions/describe"}];var k={group:{operator:"AND",rules:[]}};a.getReport=function(){a.firstLoad=!0,b.get("/api/analytics/reports/custom/"+e.id).success(function(b){a.report=b,_.forEach(a.report.Fields,function(a){delete a.id}),a.report.conditions=a.report.conditions?JSON.parse(a.report.conditions):_.clone(k,!0),a.getPreview(a.report.Fields.length)}).error(function(a){console.error(a),f.path("/analytics/reports/list")})},a.randomName=function(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")},a.$watch("report.table",function(b,c){console.log(b),b&&(console.log("is newvalue"),g(b),h(b),c&&(console.log("is oldvalue"),a.tempReport[c]={conditions:a.report.conditions,fields:a.report.Fields}),a.firstLoad?a.firstLoad=!1:a.tempReport[b]?(a.report.Fields=a.tempReport[b].fields,a.report.conditions=a.tempReport[b].conditions):(a.report.Fields=[],a.report.conditions=_.clone(k,!0)))},!0),a.setMetricId=function(b,c){a.report.Fields[c].MetricId=b.MetricId?b.MetricId:null},a.groupByField=[{name:"APPLICATION_YES",value:!0},{name:"APPLICATION_NO",value:!1}],a.functions=[{name:"Sum",value:"SUM"},{name:"Count",value:"COUNT"},{name:"Count Distinct",value:"COUNT DISTINCT"},{name:"Maximum",value:"MAX"},{name:"Minimum",value:"MIN"},{name:"Average",value:"AVG"},{name:"Group Concat",value:"GROUP_CONCAT"},{name:"Group Concat(asc)",value:"GROUP_CONCAT ASC"},{name:"Group Concat(desc)",value:"GROUP_CONCAT DESC"}],a.addField=function(){a.report.Fields.push({groupBy:!1})},a.removeField=function(b){a.report.Fields.splice(b,1)},a.sortableOptions={"ui-floating":!0,cancel:".unsortable",handle:".report-field-handle",axis:"y"},a.updateReport=function(){if(a.report.Fields.length){var f=angular.copy(a.report);f.conditions=angular.toJson(f.conditions),b.put("/api/analytics/reports/custom/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),a.getPreview(!0)}).error(function(b){c.show(d.instant(b.message),"danger"),f.conditions=JSON.parse(f.conditions),a.report=f})}else c.show(d.instant("MESSAGE_SELECT_A_FIELD"),"danger")},a.$watch("report.conditions",function(b){a.output=b?j(b.group):"()"},!0),a.gridOptions={enableFiltering:!0,treeRowHeaderAlwaysVisible:!1,enableGridMenu:!0},a.getPreview=function(f){b.get("/api/analytics/reports/custom/"+e.id+"/preview/",{params:{limit:20}}).success(function(b){a.gridOptions.data=b.rows}).error(function(a){f&&c.show(d.instant(a.message||"MESSAGE_QUERY_NOT_VALID"),"warning")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports.view",{url:"/view/:id",templateUrl:"app/analytic/report/view/view.html",controller:"AnalyticReportViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.analytics.reports.view.settings",{url:"/settings",templateUrl:"app/analytic/report/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels",{url:"/channels",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat",{url:"/chat",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("ChatEnquiry",["$resource",function(a){return a("/api/chat/enquiries/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatMessage",["$resource",function(a){return a("/api/chat/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatReport",["$resource",function(a){return a("/api/report/chats/:id/:controller1/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatRoom",["$resource",function(a){return a("/api/chat/rooms/:id/:controller",{id:"@id"},{me:{method:"GET",isArray:!0,params:{id:"me"}},users:{method:"GET",params:{id:"users"}},externals:{method:"GET",isArray:!0,params:{id:"type",controller:"external"}},groups:{method:"GET",isArray:!0,params:{id:"groups"}},update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatVisitor",["$resource",function(a){return a("/api/chat/visitors/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ChatOfflineListCtrl",["$scope","ChatVisitor","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"chat_offline_messages.csv",columnDefs:[{name:"fullname",cellClass:"text-center"},{name:"email",cellClass:"text-center"},{name:"ChatWebsite.name",displayName:"Website",cellClass:"text-center"},{name:"createdAt",displayName:"createdAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><span am-time-ago="row.entity.createdAt"></span></div>'},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/channels/chat/offline/view/{{row.entity.id}}/detail",name:"detail"}]}]};a.gridOptions=c.gridOptions(b,d,a,{origin:"enquiry"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.offline.list",{url:"/list",templateUrl:"app/channels/chat/offline/list/list.html",controller:"ChatOfflineListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.offline",{url:"/offline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatOfflineViewCtrl",["$scope","$stateParams","ChatVisitor",function(a,b,c){a.initView=function(){return c.get({id:b.id}).$promise.then(function(b){a.chatVisitor=b})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.offline.view",{url:"/view/:id",templateUrl:"app/channels/chat/offline/view/view.html",controller:"ChatOfflineViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.chat.offline.view.detail",{url:"/detail",templateUrl:"app/channels/chat/offline/view/view.detail.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/news.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ChatOnlineListCtrl",["$scope","ChatRoom","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"chat_online_messages.csv",columnDefs:[{name:"ChatVisitor.fullname",displayName:"APPLICATION_FULLNAME",cellClass:"text-center"},{name:"ChatVisitor.email",displayName:"APPLICATION_EMAIL",cellClass:"text-center"},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/channels/chat/online/view/{{row.entity.id}}/detail",name:"detail"}]}]};a.gridOptions=c.gridOptions(b,d,a,{type:"external"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.online.list",{url:"/list",templateUrl:"app/channels/chat/online/list/list.html",controller:"ChatOnlineListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.online",{url:"/online",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatOnlineViewCtrl",["$scope","$stateParams","ChatRoom",function(a,b,c){a.initView=function(){return a.config={autoHideScrollbar:!1,theme:"light",advanced:{updateOnContentResize:!0},setHeight:400,scrollInertia:0},c.get({id:b.id}).$promise.then(function(b){a.chatRoom=b})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.online.view",{url:"/view/:id",templateUrl:"app/channels/chat/online/view/view.html",controller:"ChatOnlineViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.chat.online.view.detail",{url:"/detail",templateUrl:"app/channels/chat/online/view/view.detail.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/news.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("PreviewCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").directive("preview",function(){return{templateUrl:"app/channels/chat/preview/preview.html",restrict:"EA",link:function(a,b,c){}}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("preview",{url:"/preview",templateUrl:"app/channels/chat/preview/preview.html",controller:"PreviewCtrl"})}]),angular.module("xCallyShuttleApp").factory("ChatQueue",["$resource",function(a){return a("/api/chat/queues/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ChatQueueListCtrl",["$scope","ChatQueue","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"chat_queues.csv",columnDefs:[{name:"name"},{name:"description"},{name:"strategy"},{name:"timeout"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/chat/queues/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},
-a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/mail/queue/list/list.create.modal.html",controller:"ChatQueueListCreateCtrl"});b.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ChatQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","ChatQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.queues.list",{url:"/list",templateUrl:"app/channels/chat/queue/list/list.html",controller:"ChatQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","ChatQueue","Team",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return f.save({id:a.queue.id,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})},deselect:function(b){return f["delete"]({id:a.queue.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})}}};a.getQueue=function(){b.get("/api/chat/queues/"+e.id).success(function(b){b.penalty=0,a.queue=b}).error(function(a){console.error(a)})},a.updateChatQueue=function(){var f=angular.copy(a.queue);b.put("/api/chat/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){a.queue=f,b.errors.forEach(function(a){c.show(a.message,"danger")})})},a.getTeams=function(){return g.get().$promise.then(function(b){return a.teams=b.rows,f.query({id:e.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindChatQueue(a.teams,_.map(b,function(a){return{id:a.id,penalty:a.UserHasChatQueue.penalty}}),h)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.queues.view",{url:"/view/:id",templateUrl:"app/channels/chat/queue/view/view.html",controller:"ChatQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.chat.queues.view.settings",{url:"/settings",templateUrl:"app/channels/chat/queue/view/view.settings.html"}).state("main.channels.chat.queues.view.agents",{url:"/agents",templateUrl:"app/channels/chat/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","ChatQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.chatPause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_chat_queue:save",function(b){console.log("new queue",b);var c=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),d=a.gridOptions.data.indexOf(c);a.gridOptions.data.splice(d+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.ChatQueueId,agent:b.membername,online:c.online})}),e.socket.on("user_has_chat_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.ChatQueueId})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.chatPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.ChatQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.chatQueues=b.rows,e.syncUpdates("chat_queue",a.chatQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.chatQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"chatPause",width:300,displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.pause != null && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><timer data-ng-if="row.entity.pause" start-time="grid.appScope.moment(row.entity.lastPauseAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span><span data-ng-if="row.entity.pause" class="left-margin">({{row.entity.pauseType}})</span><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor left-margin" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queueId" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queueId)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.chatQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_chat_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"chat"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/chat/realtime/view/agent/queue.modal.add.html",controller:"ChatRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.chatQueues,function(b){return _.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})?!0:!1})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.chatQueues,function(a){return _.includes(b.queues,a.id)}),channel:"chat",data1:e,data3:b.queues.join(","),data4:"chat"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"chat",data1:a,data3:b,data4:"chat"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/chat/realtime/view/agent/agent.modal.info.html",controller:"ChatRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/chat/realtime/view/agent/agent.html",controller:"ChatRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewQueueCtrl",["$scope","$http","socket","ChatQueue","Agent",function(a,b,c,d,e){a.initQueues=function(){a.gridOptions={enableSorting:!1,enableFiltering:!0,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,showTreeExpandNoChildren:!1,columnDefs:[{name:"queueName",displayName:"Queue"},{name:"fullname",displayName:"Agent",cellClass:"text-center"},{name:"online",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><i data-ng-if="row.entity.online != null" class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i></div>'},{name:"chatPause",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><i data-ng-if=\"row.entity.chatPause != null\" data-ng-class=\"row.entity.chatPause ? 'icon-control-pause font-red' : 'icon-control-play font-green'\"></i></div>"},{name:"pauseType",cellClass:"text-center",cellTemplate:'<span data-ng-if="row.entity.chatPause">{{row.entity.pauseType}}</span>'},{name:"lastLoginAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><time data-ng-if="row.entity.lastLoginAt" is="relative-time" datetime="{{row.entity.lastLoginAt}}">April 1, 2014</time></div>'}],onRegisterApi:function(b){a.gridApi=b,a.gridApi.treeBase.on.rowExpanded(a,function(b){var c=_.findIndex(a.gridOptions.data,{$$hashKey:b.entity.$$hashKey});b.entity.Users&&b.entity.Users.forEach(function(b){_.find(a.gridOptions.data,{name:b.name})||a.gridOptions.data.splice(c+1,0,b)})})}},d.get(function(b){a.gridOptions.data=[],b.rows.forEach(function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b),b.Users&&b.Users.forEach(function(b){b.agentName=b.name,a.gridOptions.data.push(b)})}),c.socket.on("agent:save",function(b){var c=_.filter(a.gridOptions.data,{agentName:b.name});c.forEach(function(a){a.online=b.online,a.lastLoginAt=b.lastLoginAt})}),c.socket.on("chat_queue:save",function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b)}),c.socket.on("chat_queue:remove",function(b){_.remov(a.gridOptions.data,{queueName:b.name})}),c.socket.on("user_has_chat_queue:save",function(b){var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.ChatQueueId});e.get({id:b.UserId}).$promise.then(function(b){a.gridOptions.data.splice(c+1,0,{id:b.id,name:b.name,fullname:b.fullname,agentName:b.name,online:b.online,lastLoginAt:b.lastLoginAt})})["catch"](function(a){console.error(a)})}),c.socket.on("user_has_chat_queue:remove",function(b){for(var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.ChatQueueId}),d=c+1;d<a.gridOptions.data.length;d++)a.gridOptions.data[d].id==b.UserId&&a.gridOptions.data.splice(d,1)})},function(a){console.error(a)})},a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initAgents=function(){b.get("/api/report/mails").success(function(b){a.agents=b,c.socket.on("report_mail:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_mail:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view.queues",{url:"/queues",templateUrl:"app/channels/chat/realtime/view/queue/queue.html",controller:"ChatRealtimeViewQueueCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewSessionCtrl",["$scope","$http","socket","uiGridConstants",function(a,b,c,d){a.initSessions=function(){a.gridOptions={enableHorizontalScrollbar:0,enableVerticalScrollbar:0,columnDefs:[{name:"uniqueid",cellClass:"text-center",width:150,enableSorting:!1,enableFiltering:!0},{name:"application",displayName:"APPLICATION_APP",headerCellFilter:"translate",cellClass:"text-center"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center"},{name:"agentname",cellClass:"text-center"},{name:"websitename",displayName:"APPLICATION_WEB_SITE",headerCellFilter:"translate"},{name:"joinAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.joinAt" is="relative-time" datetime="{{row.entity.joinAt}}">April 1, 2014</time>',sort:{direction:d.DESC,priority:1}},{name:"leaveAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.leaveAt" is="relative-time" datetime="{{row.entity.leaveAt}}">April 1, 2014</time>'},{name:"unmanagedAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.unmanagedAt" is="relative-time" datetime="{{row.entity.unmanagedAt}}">April 1, 2014</time>'}],data:[]},b.get("/api/report/chat/sessions").success(function(b){a.gridOptions.data=b.rows,c.socket.on("report_chat_session:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id}),d=a.gridOptions.data.indexOf(c);c?_.merge(a.gridOptions.data[d],b):a.gridOptions.data.unshift(b)})}).error(function(a){console.error(a)})},a.$on("$destroy",function(){c.unsyncUpdates("report_chat:save"),c.unsyncUpdates("report_chat:update")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view.sessions",{url:"/sessions",templateUrl:"app/channels/chat/realtime/view/session/session.html",controller:"ChatRealtimeViewSessionCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"Queues",link:"main.chat.realtime.view.agent.queues"},{name:"Timeline",link:"main.chat.realtime.view.agent.timeline"}],a.sessions=[{name:"Sessions",link:"main.chat.realtime.view.sessions"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view",{url:"/view",templateUrl:"app/channels/chat/realtime/view/view.html",controller:"ChatRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatVisitorListCtrl",["$scope","ChatVisitor","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"chat_visitors.csv",columnDefs:[{name:"fullname",cellClass:"text-center"},{name:"email",cellClass:"text-center"},{name:"origin",cellClass:"text-center"},{name:"createdAt",displayName:"createdAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><span am-time-ago="row.entity.createdAt"></span></div>'},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/channels/chat/visitors/view/{{row.entity.id}}/profile",name:"profile"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.visitors.list",{url:"/list",templateUrl:"app/channels/chat/visitor/list/list.html",controller:"ChatVisitorListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatVisitorViewCtrl",["$scope","$stateParams","ChatVisitor",function(a,b,c){a.initView=function(){return c.get({id:b.id}).$promise.then(function(b){a.chatVisitor=b})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.visitors.view",{url:"/view/:id",templateUrl:"app/channels/chat/visitor/view/view.html",controller:"ChatVisitorViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.chat.visitors.view.profile",{url:"/profile",templateUrl:"app/channels/chat/visitor/view/view.profile.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.visitors",{url:"/visitors",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("ChatApplication",["$resource",function(a){return a("/api/chat/applications/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatWebsite",["$resource",function(a){return a("/api/chat/websites/:websiteId/:controller/:id",{id:"@websiteId"},{update:{method:"PUT"},updateFields:{method:"PUT",isArray:!0}})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteListCtrl",["$scope","gridOptions","ChatWebsite",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"chat_websites.csv",columnDefs:[{name:"name"},{name:"description"},{name:"address"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/chat/websites/view/{{row.entity.id}}/embedding/view",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.list",{url:"/list",templateUrl:"app/channels/chat/website/list/list.html",controller:"ChatWebsiteListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewActionListCtrl",["$scope","gridOptions","ChatWebsite","$http","$translate","$stateParams","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.initActons=function(){var d={draggable:!0,exporterCsvFilename:"chat_applications.csv",columnDefs:[{name:"app",cellClass:"text-center"},{name:"name",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span>{{row.entity.ChatQueue ? row.entity.ChatQueue.name : row.entity.User.name}}</span></div>"},{name:"timeout",cellClass:"text-center"},{name:"interval",cellClass:"text-center"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/chat/websites/view/{{row.entity.ChatWebsiteId}}/actions/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.app, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{websiteId:f.websiteId,controller:"applications"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions.list",{url:"/list",templateUrl:"app/channels/chat/website/view/action/list/list.html",controller:"ChatWebsiteViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval","ChatApplication","ChatQueue","Agent","Interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){return a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],k.get({id:c.actionId}).$promise.then(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})})["catch"](function(a){f.show(d.instant("Something went wrong!"),"danger")})},a.getQueues=function(){return l.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return m.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return n.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.updateItem=function(){var b=["*","*","*","*"],e={app:a.application.app,timeout:a.application.timeout,chatAccountId:c.id};switch(a.application.app){case"agent":e.UserId=a.application.UserId;break;case"queue":e.chatQueueId=a.application.chatQueueId}switch(a.application.intType){case"always":e.interval=b.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(b[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?b[1]="*":b[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?b[2]="*":b[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?b[3]="*":b[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",e.interval=b.join(","),delete a.application.IntervalId;break;case"list":e.IntervalId=a.application.IntervalId}return k.update({id:c.actionId},e).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions.view",{url:"/view/:actionId",templateUrl:"app/channels/chat/website/view/action/view/view.html",controller:"ChatWebsiteViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewActionWizardCtrl",["$scope","$http","Agent","Interval","ChatQueue","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=l.application,a.$stateParams=f,a.$interval=m.interval,a.forms={},a.application={app:"queue",intType:"always",alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){return e.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return c.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return d.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.createItem=function(){var c=["*","*","*","*"],d={app:a.application.app,timeout:a.application.timeout,ChatWebsiteId:f.websiteId};switch(a.application.app){case"agent":d.UserId=a.application.UserId;break;case"queue":d.ChatQueueId=a.application.ChatQueueId}switch(a.application.intType){case"always":d.interval=c.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(c[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?c[1]="*":c[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?c[2]="*":c[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?c[3]="*":c[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",d.interval=c.join(","),delete a.application.IntervalId;break;case"list":d.IntervalId=a.application.IntervalId}b.post("/api/chat/applications",d).success(function(){h.path("/channels/chat/websites/view/"+f.websiteId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){j.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions.wizard",{url:"/wizard",templateUrl:"app/channels/chat/website/view/action/wizard/wizard.html",controller:"ChatWebsiteViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.embedding",{url:"/embedding",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewEmbeddingViewCtrl",["$scope","$stateParams","$translate","clipboard","xAlert","ChatWebsite",function(a,b,c,d,e,f){a.initView=function(){return f.get({websiteId:b.websiteId,controller:"snippet"}).$promise.then(function(b){a.snippetCode=b.html})["catch"](function(a){e.show(a.message,"danger")})},a.copyToClipboard=function(){d.copyText(a.snippetCode),e.show(c.instant("MESSAGE_TEXT_COPIED_CLIPBOARD")+"!","success")}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.embedding.view",{url:"/view",templateUrl:"app/channels/chat/website/view/embedding/view/view.html",controller:"ChatWebsiteViewEmbeddingViewCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.form",{url:"/forms",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewFormViewCtrl",["$scope","$builder","$validator","$stateParams","$translate","ChatWebsite","xAlert",function(a,b,c,d,e,f,g){a.saveForm=function(a){var c=angular.copy(b.forms[a]);return c.length>3?g.show("You can insert at least 3 input elements","danger"):(_.forEach(c,function(a){
+"use strict";angular.module("xCallyShuttleApp",["adf","adf.structures.base","adf.widget.clock","adf.widget.iframe","adf.widget.counter","adf.widget.pie-chart","angular-md5","angular.filter","angularFileUpload","btford.socket-io","chart.js","checklist-model","colorpicker.module","frapontillo.bootstrap-switch","infinite-scroll","LocalStorageModule","mgo-angular-wizard","ng-slide-down","ngAnimate","ngBootstrap","ngCookies","ngCsv","ngFileSaver","ngJsTree","ngMap","ngPapaParse","ngResource","ngSanitize","notification","oc.lazyLoad","pascalprecht.translate","pdf","remoteValidation","smart-table","sprintf","textAngular","timer","toastr","permission","ui-notification","ui.bootstrap.modal","ui.bootstrap.dropdown","ui.bootstrap.popover","ui.bootstrap.timepicker","ui.bootstrap.tooltip","ui.bootstrap.tpls","ui.bootstrap.accordion","ui.bootstrap.progressbar","ui.bootstrap.typeahead","ui.grid","ui.grid.autoResize","ui.grid.draggable-rows","ui.grid.exporter","ui.grid.grouping","ui.grid.moveColumns","ui.grid.pagination","ui.grid.treeView","ui.grid.selection","ui.grid.exporter","ui.grid.resizeColumns","ui.router","ui.navbar","ui.select","ui.sortable","xeditable","ngAudio","truncate","ngScrollbars","ngEmoticons","angularSpinner","builder","builder.components","validator","angular-clipboard","ng-code-mirror","angularMoment"]).config(["$stateProvider","$urlRouterProvider","$locationProvider","$httpProvider","$translateProvider","localStorageServiceProvider","dashboardProvider","ScrollBarsProvider",function(a,b,c,d,e,f,g,h){b.otherwise("/dashboard/voice"),e.useStaticFilesLoader({prefix:"assets/languages/locale-",suffix:".json"}),e.preferredLanguage("en_EN"),e.useLocalStorage(),e.useSanitizeValueStrategy("sanitize"),c.html5Mode(!0),d.interceptors.push("authInterceptor"),g.structure("4-4-4",{rows:[{columns:[{styleClass:"col-md-4"},{styleClass:"col-md-4"},{styleClass:"col-md-4"}]}]}).structure("3-3-3-3",{rows:[{columns:[{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"}]}]}),f.setPrefix("xcally"),h.defaults={scrollButtons:{scrollAmount:"auto",enable:!0},axis:"y"}}]).factory("settings",["$rootScope","$interval","License","localStorageService",function(a,b,c,d){return a.settings={patternName:"[A-Za-z0-9._]+",layout:{pageSidebarClosed:d.get("sidebarClosed")||!1,pageQuickSidebarOpened:!1,pageBodySolid:!1,pageAutoScrollOnLoad:1e3}},c.get(function(b){b.license&&(a.license=b.license,a.soundPath=b.soundPath)}),a.settings}]).factory("authInterceptor",["$rootScope","$q","$cookieStore",function(a,b,c){return{request:function(a){return a.headers=a.headers||{},c.get("token")&&(a.headers.Authorization="Bearer "+c.get("token")),a}}}]).run(["$rootScope","$location","$state","$stateParams","$window","$q","$http","Auth","RoleStore","editableThemes","editableOptions",function(a,b,c,d,e,f,g,h,i,j,k){g.get("/api/settings/1").success(function(b){a.license=b.license}).error(function(a){console.error(a)}),a.$state=c,a.$stateParams=d,j.bs3.inputClass="input-sm",j.bs3.buttonsClass="btn-xs",k.theme="bs3",a.online=navigator.onLine,e.addEventListener("offline",function(){a.$apply(function(){a.online=!1})},!1),e.addEventListener("online",function(){a.$apply(function(){a.online=!0})},!1),a.$on("$stateChangeStart",function(a,c){h.isLoggedInAsync(function(a){c.authenticate&&!a&&b.path("/login")})}),a.updateTableConfig=function(a,b){var c=_.find(a,{name:"All"});c&&(c.value=b)},i.defineRole("admin",[],function(){return h.isAdmin()})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics",{url:"/analytics",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Extracted",["$resource",function(a){return a("/api/analytics/extracted/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.extracted",{url:"/extracted",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnalyticExtractedListCtrl",["$scope","$translate","gridOptions","Extracted",function(a,b,c,d){a.moment=moment,a.Extracted=d,a.initView=function(){var b={exporterCsvFilename:"ExtractedReports.csv",columnDefs:[{name:"name"},{name:"startDate",displayName:"APPLICATION_START_DATE"},{name:"endDate",displayName:"APPLICATION_END_DATE"},{name:"createdAt",displayName:"APPLICATION_RUN_DATE"},{name:"startDate",displayName:"APPLICATION_START_DATE"},{name:"output"},{name:"status"},{name:"action",width:140,buttons:[{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{directive:"<motion-file-download data-ng-show=\"row.entity.status == 'completed'\" resource=\"grid.appScope.Extracted\" params=\"{id:row.entity.id,controller:'download'}\" mimetype=\"'application/'+row.entity.output.toLowerCase()\" filename=\"row.entity.name+'_'+grid.appScope.moment(row.entity.startDate).format('MM-DD-YYYY').toString()+'_'+grid.appScope.moment(row.entity.endDate).format('MM-DD-YYYY').toString()+'.'+row.entity.output.toLowerCase()\"></motion-file-download>"}]}]};a.gridOptions=c.gridOptions(d,b,a,{order:"createdAt DESC"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.extracted.list",{url:"/list",templateUrl:"app/analytic/extracted/list/list.html",controller:"AnalyticExtractedListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.tables=[{name:"Agent Report",value:"report_agent_history"},{name:"Mail Report",value:"report_mail_session_history"},{name:"Queue Report",value:"report_queue_history"},{name:"Integration Report",value:"report_integration_history"},{name:"Chat Report",value:"report_chat_session_history"}],a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricListCtrl",["$scope","xAlert","Modal","$uibModal","$log","gridOptions","Metric","$translate",function(a,b,c,d,e,f,g,h){a.$translate=h,a.initView=function(){var b={exporterCsvFilename:"Metrics.csv",columnDefs:[{name:"name"},{name:"table",cellTemplate:"<div style=\"padding:5px\">{{'APPLICATION_'+row.entity.table.toUpperCase() | translate}}</div>"},{name:"description"},{name:"action",width:125,buttons:[{"class":"{{row.entity.defaultEntry ? 'blue-hoki disabled' : 'blue-hoki'}}",href:"/analytics/metrics/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=f.gridOptions(g,b,a)},a.create=function(){var c=d.open({animation:!0,templateUrl:"app/analytic/metric/list/create.modal.html",controller:"AnalyticMetricListCreateModalCtrl"});c.result.then(function(c){return g.save(c).$promise.then(function(){a.gridOptions.getPage(),b.show(h.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(a.data.message,"danger")})},function(){e.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics.list",{url:"/list",templateUrl:"app/analytic/metric/list/list.html",controller:"AnalyticMetricListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Metric",["$resource",function(a){return a("/api/analytics/metrics/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics",{url:"/metrics",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnalyticMetricViewCtrl",["$scope","xAlert","$translate","$stateParams","$location","Metric",function(a,b,c,d,e,f){a.tables=[{name:"Agent Report",value:"report_agent_history"},{name:"Mail Report",value:"report_mail_session_history"},{name:"Queue Report",value:"report_queue_history"},{name:"Integration Report",value:"report_integration_history"},{name:"Chat Report",value:"report_chat_session_history"}],a.getMetric=function(){return f.get({id:d.id}).$promise.then(function(b){a.metric=b})["catch"](function(a){e.path("/analytics/metrics/list")})},a.updateMetric=function(){return f.update({id:d.id},a.metric).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.metrics.view",{url:"/view/:id",templateUrl:"app/analytic/metric/view/view.html",controller:"AnalyticMetricViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.analytics.metrics.view.settings",{url:"/settings",templateUrl:"app/analytic/metric/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("customReport",["$resource",function(a){return a("/api/analytics/reports/custom/:id/:controller/:action",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("defaultReport",["$resource",function(a){return a("/api/analytics/reports/default/:id/:controller/:action",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ReportListCopyModalCtrl",["$scope","$uibModalInstance","$log","customTreeData",function(a,b,c,d){a.customTreeData=d,a.forms={dashboard:void 0},a.item={},a.customTreeConfig={multiple:!1,animation:!0,core:{error:function(a){c.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0}},a.ac=function(){return!0},a.initCustomScopeTree=function(){a.customTree=a.customTreeInstance.jstree(!0),a.customTree.deselect_all(),a.customTree.open_all()},a.ok=function(){b.close({parent:a.customTree.get_selected(!0).pop().id})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ReportListCreateModalCtrl",["$scope","$uibModalInstance","path",function(a,b,c){a.path=c,a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ReportListExtractModalCtrl",["$scope","$uibModalInstance",function(a,b){a.dates={startDate:moment().subtract(1,"days").startOf("day"),endDate:moment().subtract(1,"days").endOf("day")},a.ranges={Yesterday:[moment().subtract(1,"days").startOf("day"),moment().subtract(1,"days").endOf("day")],"Last 7 days":[moment().subtract(7,"days"),moment()],"Last 30 days":[moment().subtract(30,"days"),moment()],"This month":[moment().startOf("month"),moment().endOf("month")]},a.extract=function(c){var d={startDate:a.dates.startDate.toISOString(),endDate:a.dates.endDate.toISOString(),output:c};b.close(d)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("AnalyticReportListCtrl",["$scope","xAlert","$translate","$location","$log","Modal","$uibModal","FileSaver","Blob","gridOptions","customReport","defaultReport","reportTree",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){var b,c={},d=a.defaultTree.get_selected(),e=a.customTree.get_selected();if(d.length)b=d.pop(),a.selectedNode=a.defaultTree.get_path(b," / "),c={parent:b},a.gridOptions=j.gridOptions(l,o,a,c,!0),a.gridOptions.getPage();else{if(!e.length)return;b=e.pop(),a.selectedNode=a.customTree.get_path(b," / "),c={parent:b},a.gridOptions=j.gridOptions(k,o,a,c,!0),a.gridOptions.getPage()}}var o={exporterCsvFilename:"reports.csv",columnDefs:[{name:"name"},{name:"description"},{name:"manage",buttons:[{"class":"blue-hoki",href:"/analytics/reports/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{"class":"green",name:"copy",onClick:"grid.appScope.copy(row.entity.id)"},{"class":"purple",name:"export",onClick:"grid.appScope.export(row.entity.id)"}]},{name:"actions",buttons:[{"class":"yellow",name:"preview",onClick:"grid.appScope.preview(row.entity.id)"},{"class":"green-turquoise",name:"run",onClick:"grid.appScope.extract(row.entity.id)"}]}]};a.searchField="",a.ac=function(){return!0},a.initDefaultScopeTree=function(){a.defaultTree=a.defaultTreeInstance.jstree(!0),a.defaultTree.deselect_all(),a.defaultTree.close_all(),a.defaultTree.open_node({id:1}),a.defaultTreeReady=!0,a.defaultTreeActive=!0,a.previousDefaultNode=""},a.initCustomScopeTree=function(){a.customTree=a.customTreeInstance.jstree(!0),a.customTree.deselect_all(),a.customTree.close_all(),a.customTree.open_node({id:1}),a.customTreeReady=!0,a.previousCustomNode=""},a.$watchGroup(["defaultTreeReady","customTreeReady"],function(b,c,d){b[0]&&b[1]&&a.defaultTree.select_node({id:"1"})}),a.updateCustomTree=function(){var d={tree:angular.toJson(a.customTree.get_json("#",{flat:!0}))};return m.update({id:2},d).$promise.then(function(a){console.log("Custom Tree Updated")})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.configTrees=function(){a.defaultTreeConfig={multiple:!1,animation:!0,core:{error:function(a){e.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0,themes:{name:"default",url:"../../../assets/css/jstree-metronic/style.css"}},plugins:["search"]},a.customTreeConfig={multiple:!1,animation:!0,core:{error:function(a){e.error("treeCtrl: error from js tree - "+angular.toJson(a))},check_callback:!0,themes:{name:"default",url:"../../../assets/css/jstree-metronic/style.css"}},plugins:["contextmenu","dnd","search"],contextmenu:{items:function(b,d){var e={create:{label:c.instant("APPLICATION_CREATE"),action:function(c){a.customTree.create_node(b),a.customTree.open_node(b)}},rename:{label:c.instant("APPLICATION_RENAME"),action:function(c){a.customTree.edit(b)}},remove:{label:c.instant("APPLICATION_REMOVE"),action:function(c){console.log(b),a.deleteNode(b.text,b)}}};return"#"===b.parent&&(delete e.rename,delete e.remove),d(e),e}}}},a.deleteNode=f.confirm["delete"](function(b){a.customTree.delete_node(b),a.previousCustomNode==b.id&&a.customTree.select_node({id:b.parent})}),a.searchTrees=function(){a.defaultTree.search(a.searchField),a.customTree.search(a.searchField)},a.selectDefaultNode=function(){if(a.customTreeReady){a.previousCustomNode="";var b=a.defaultTree.get_selected(!0),c=b.pop();if(a.defaultTree.deselect_node(b[0],!0),a.customTree.deselect_all(),a.defaultTree.select_node(c,!0),c.id===a.previousDefaultNode)return void console.log("def");a.previousDefaultNode=c.id,a.defaultTreeActive=!0,n()}},a.selectCustomNode=function(){if(a.defaultTreeReady){a.previousDefaultNode="";var b=a.customTree.get_selected(!0),c=b.pop();if(a.customTree.deselect_node(b[0],!0),a.defaultTree.deselect_all(),a.customTree.select_node(c,!0),c.id===a.previousCustomNode)return void console.log("cus");a.previousCustomNode=c.id,a.defaultTreeActive=!1,n()}},a.getTrees=function(){return m.query().$promise.then(function(b){a.defaultTreeData=JSON.parse(b[0].tree),a.customTreeData=JSON.parse(b[1].tree),a.configTrees()})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.create=function(){var c=g.open({animation:!0,templateUrl:"app/analytic/report/list/create.modal.html",controller:"ReportListCreateModalCtrl",resolve:{path:function(){return a.selectedNode}}});c.result.then(function(c){return c.parent=a.previousCustomNode,k.save(c).$promise.then(function(a){d.path("/analytics/reports/view/"+a.id+"/settings")})["catch"](function(a){b.show(a.message,"danger")})},function(){e.info("Modal dismissed at: "+new Date)})},a.copy=function(d){var f=a.defaultTreeActive?l:k,h=g.open({animation:!0,templateUrl:"app/analytic/report/list/copy.modal.html",controller:"ReportListCopyModalCtrl",resolve:{customTreeData:function(){return a.customTreeData}}});h.result.then(function(e){return f.save({id:d,controller:"copy"},e).$promise.then(function(){a.gridOptions.getPage(),b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message,"danger")})},function(){e.info("Modal dismissed at: "+new Date)})},a["export"]=function(c){var d=a.defaultTreeActive?l:k;return d.get({id:c}).$promise.then(function(a){delete a.id,delete a.createdAt,delete a.updatedAt,delete a.deletedAt,_.forEach(a.Fields,function(a){delete a.id,delete a.CustomReportId,a.Metric&&(delete a.Metric.id,a.Metric.name+="_"+_.random(9999))});var b=new i([angular.toJson(a)],{type:"application/json;charset=utf-8"});h.saveAs(b,a.name+".json")})["catch"](function(a){console.error(data),b.show(a.message,"danger")})},a["import"]=function(d){var e=JSON.parse(d);e.parent=a.previousCustomNode;var f=!(!e.name||!e.parent),g=!0;return _.forEach(e.Fields,function(a){a.field&&a.alias||(g=!1)}),f&&g?k.save({controller:"import"},e).$promise.then(function(){a.gridOptions.getPage(),b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message,"danger")}):void b.show(c.instant("MESSAGE_INVALID_JSON"),"danger")},a.preview=function(b){g.open({animation:!0,templateUrl:"app/analytic/report/list/preview.modal.html",controller:"ReportListPreviewModalCtrl",size:"full",resolve:{report:function(){return{id:b,tree:a.defaultTreeActive?"default":"custom"}}}})},a.extract=function(d){var f=g.open({animation:!0,templateUrl:"app/analytic/report/list/extract.modal.html",controller:"ReportListExtractModalCtrl",size:"md",resolve:{report:function(){return{id:d,tree:a.defaultTreeActive?"default":"custom"}}}});f.result.then(function(e){var f=a.defaultTreeActive?l:k;return f.get({id:d,controller:"extract",action:e.output,startDate:e.startDate,endDate:e.endDate}).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){b.show(a.message,"danger")})},function(){e.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports.list",{url:"/list",templateUrl:"app/analytic/report/list/list.html",controller:"AnalyticReportListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ReportListPreviewModalCtrl",["$scope","$uibModalInstance","report","xAlert","$translate","$timeout","customReport","defaultReport",function(a,b,c,d,e,f,g,h){a.forms={dashboard:void 0},a.dates={startDate:moment().subtract(1,"days").startOf("day"),endDate:moment().subtract(1,"days").endOf("day")},a.ranges={Yesterday:[moment().subtract(1,"days").startOf("day"),moment().subtract(1,"days").endOf("day")],"Last 7 days":[moment().subtract(7,"days"),moment()],"Last 30 days":[moment().subtract(30,"days"),moment()],"This month":[moment().startOf("month"),moment().endOf("month")]};var i={pageNumber:1,pageSize:25,sort:null,where:{},order:{}};a.gridOptions={paginationPageSizes:[10,25,50],paginationPageSize:25,useExternalPagination:!0,enableSorting:!1,enableFiltering:!0,useExternalFiltering:!0,enableGrouping:!1,enableColumnMenus:!1,treeRowHeaderAlwaysVisible:!1,gridMenuShowHideColumns:!1,enableGridMenu:!1,onRegisterApi:function(b){a.gridApi=b,b.pagination.on.paginationChanged(a,function(b,c){i.offset=(b-1)*c,i.limit=c,a.getPage()}),b.core.on.filterChanged(a,function(){var b=this.grid,c={};b.columns.forEach(function(a){console.log(a),a.filters[0].term&&(c[a.field]=a.filters[0].term)}),i.where=c,a.getPage()})}},a.getPage=function(){var b={params:{offset:i.offset,limit:i.limit,startDate:a.dates.startDate.toISOString(),endDate:a.dates.endDate.toISOString()}};_.forOwn(i.where,function(a,c){b.params[c]=a}),console.log(b);var f="custom"===c.tree?g:h;return f.get({id:c.id,controller:"preview"},b).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.paginationPageSizes[3]=b.count,a.gridOptions.data=b.rows,a.showResult=!0})["catch"](function(a){d.show(e.instant(a.message),"danger")})},a.cancel=function(){b.dismiss("cancel")},f(function(){a.getPage()})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports",{url:"/reports",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("reportTree",["$resource",function(a){return a("/api/analytics/reports/trees/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("AnalyticReportViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){function g(e){var f=_.find(a.tables,{table:e}).url;b.get(f).success(function(b){a.tableFields=_.map(b,function(a,b){return{name:b,value:b}})}).error(function(a){c.show(d.instant(a.message),"danger")})}function h(e){console.log(e),b.get("/api/analytics/metrics/table",{params:{table:e}}).success(function(b){_.forEach(b,function(b){a.tableFields.push({name:"<strong>Metric.</strong>"+b.name,value:b.metric,MetricId:b.id})})}).error(function(a){c.show(d.instant(a.message),"danger")})}function i(a){return String(a).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function j(a){if(!a)return"";for(var b="(",c=0;c<a.rules.length;c++)c>0&&(b+=" <strong>"+a.operator+"</strong> "),b+=a.rules[c].group?j(a.rules[c].group):a.rules[c].field+" "+i(a.rules[c].condition)+" '"+("like"===a.rules[c].condition?"%"+a.rules[c].value+"%":a.rules[c].value)+"'";return b+")"}a.$translate=d,a.tempReport={},a.tables=[{name:"Agent Report",table:"report_agent_history",url:"/api/report/agents/describe"},{name:"Mail Report",table:"report_mail_session_history",url:"/api/report/mail/sessions/describe"},{name:"Queue Report",table:"report_queue_history",url:"/api/report/queues/describe"},{name:"Chat Report",table:"report_chat_session_history",url:"/api/report/chat/sessions/describe"}];var k={group:{operator:"AND",rules:[]}};a.getReport=function(){a.firstLoad=!0,b.get("/api/analytics/reports/custom/"+e.id).success(function(b){a.report=b,_.forEach(a.report.Fields,function(a){delete a.id}),a.report.conditions=a.report.conditions?JSON.parse(a.report.conditions):_.clone(k,!0),a.getPreview(a.report.Fields.length)}).error(function(a){console.error(a),f.path("/analytics/reports/list")})},a.randomName=function(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")},a.$watch("report.table",function(b,c){console.log(b),b&&(console.log("is newvalue"),g(b),h(b),c&&(console.log("is oldvalue"),a.tempReport[c]={conditions:a.report.conditions,fields:a.report.Fields}),a.firstLoad?a.firstLoad=!1:a.tempReport[b]?(a.report.Fields=a.tempReport[b].fields,a.report.conditions=a.tempReport[b].conditions):(a.report.Fields=[],a.report.conditions=_.clone(k,!0)))},!0),a.setMetricId=function(b,c){a.report.Fields[c].MetricId=b.MetricId?b.MetricId:null},a.groupByField=[{name:"APPLICATION_YES",value:!0},{name:"APPLICATION_NO",value:!1}],a.functions=[{name:"Sum",value:"SUM"},{name:"Count",value:"COUNT"},{name:"Count Distinct",value:"COUNT DISTINCT"},{name:"Maximum",value:"MAX"},{name:"Minimum",value:"MIN"},{name:"Average",value:"AVG"},{name:"Group Concat",value:"GROUP_CONCAT"},{name:"Group Concat(asc)",value:"GROUP_CONCAT ASC"},{name:"Group Concat(desc)",value:"GROUP_CONCAT DESC"}],a.addField=function(){a.report.Fields.push({groupBy:!1})},a.removeField=function(b){a.report.Fields.splice(b,1)},a.sortableOptions={"ui-floating":!0,cancel:".unsortable",handle:".report-field-handle",axis:"y"},a.updateReport=function(){if(a.report.Fields.length){var f=angular.copy(a.report);f.conditions=angular.toJson(f.conditions),b.put("/api/analytics/reports/custom/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),a.getPreview(!0)}).error(function(b){c.show(d.instant(b.message),"danger"),f.conditions=JSON.parse(f.conditions),a.report=f})}else c.show(d.instant("MESSAGE_SELECT_A_FIELD"),"danger")},a.$watch("report.conditions",function(b){a.output=b?j(b.group):"()"},!0),a.gridOptions={enableFiltering:!0,treeRowHeaderAlwaysVisible:!1,enableGridMenu:!0},a.getPreview=function(f){b.get("/api/analytics/reports/custom/"+e.id+"/preview/",{params:{limit:20}}).success(function(b){a.gridOptions.data=b.rows}).error(function(a){f&&c.show(d.instant(a.message||"MESSAGE_QUERY_NOT_VALID"),"warning")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.analytics.reports.view",{url:"/view/:id",templateUrl:"app/analytic/report/view/view.html",controller:"AnalyticReportViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.analytics.reports.view.settings",{url:"/settings",templateUrl:"app/analytic/report/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels",{url:"/channels",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat",{url:"/chat",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("ChatEnquiry",["$resource",function(a){return a("/api/chat/enquiries/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatReport",["$resource",function(a){return a("/api/report/chats/:id/:controller1/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatVisitor",["$resource",function(a){return a("/api/chat/visitors/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatMessage",["$resource",function(a){return a("/api/chat/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatRoom",["$resource",function(a){return a("/api/chat/rooms/:id/:controller",{id:"@id"},{me:{method:"GET",isArray:!0,params:{id:"me"}},users:{method:"GET",params:{id:"users"}},externals:{method:"GET",isArray:!0,params:{id:"type",controller:"external"}},groups:{method:"GET",isArray:!0,params:{id:"groups"}},update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ChatOfflineListCtrl",["$scope","ChatVisitor","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"chat_offline_messages.csv",columnDefs:[{name:"fullname",cellClass:"text-center"},{name:"email",cellClass:"text-center"},{name:"ChatWebsite.name",displayName:"Website",cellClass:"text-center"},{name:"createdAt",displayName:"createdAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><span am-time-ago="row.entity.createdAt"></span></div>'},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/channels/chat/offline/view/{{row.entity.id}}/detail",name:"detail"}]}]};a.gridOptions=c.gridOptions(b,d,a,{origin:"enquiry"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.offline.list",{url:"/list",templateUrl:"app/channels/chat/offline/list/list.html",controller:"ChatOfflineListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.offline",{url:"/offline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatOfflineViewCtrl",["$scope","$stateParams","ChatVisitor",function(a,b,c){a.initView=function(){return c.get({id:b.id}).$promise.then(function(b){a.chatVisitor=b})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.offline.view",{url:"/view/:id",templateUrl:"app/channels/chat/offline/view/view.html",controller:"ChatOfflineViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.chat.offline.view.detail",{url:"/detail",templateUrl:"app/channels/chat/offline/view/view.detail.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/news.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ChatOnlineListCtrl",["$scope","ChatRoom","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"chat_online_messages.csv",columnDefs:[{name:"ChatVisitor.fullname",displayName:"APPLICATION_FULLNAME",cellClass:"text-center"},{name:"ChatVisitor.email",displayName:"APPLICATION_EMAIL",cellClass:"text-center"},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/channels/chat/online/view/{{row.entity.id}}/detail",name:"detail"}]}]};a.gridOptions=c.gridOptions(b,d,a,{type:"external"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.online.list",{url:"/list",templateUrl:"app/channels/chat/online/list/list.html",controller:"ChatOnlineListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.online",{url:"/online",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatOnlineViewCtrl",["$scope","$stateParams","ChatRoom",function(a,b,c){a.initView=function(){return a.config={autoHideScrollbar:!1,theme:"light",advanced:{updateOnContentResize:!0},setHeight:400,scrollInertia:0},c.get({id:b.id}).$promise.then(function(b){a.chatRoom=b})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.online.view",{url:"/view/:id",templateUrl:"app/channels/chat/online/view/view.html",controller:"ChatOnlineViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.chat.online.view.detail",{url:"/detail",templateUrl:"app/channels/chat/online/view/view.detail.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/news.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("PreviewCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").directive("preview",function(){return{templateUrl:"app/channels/chat/preview/preview.html",restrict:"EA",link:function(a,b,c){}}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("preview",{url:"/preview",templateUrl:"app/channels/chat/preview/preview.html",controller:"PreviewCtrl"})}]),angular.module("xCallyShuttleApp").factory("ChatQueue",["$resource",function(a){return a("/api/chat/queues/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ChatQueueListCtrl",["$scope","ChatQueue","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"chat_queues.csv",columnDefs:[{name:"name"},{name:"description"},{name:"strategy"},{name:"timeout"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/chat/queues/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},
+a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/mail/queue/list/list.create.modal.html",controller:"ChatQueueListCreateCtrl"});b.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ChatQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","ChatQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.queues.list",{url:"/list",templateUrl:"app/channels/chat/queue/list/list.html",controller:"ChatQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","ChatQueue","Team",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return f.save({id:a.queue.id,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})},deselect:function(b){return f["delete"]({id:a.queue.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})}}};a.getQueue=function(){b.get("/api/chat/queues/"+e.id).success(function(b){b.penalty=0,a.queue=b}).error(function(a){console.error(a)})},a.updateChatQueue=function(){var f=angular.copy(a.queue);b.put("/api/chat/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){a.queue=f,b.errors.forEach(function(a){c.show(a.message,"danger")})})},a.getTeams=function(){return g.get().$promise.then(function(b){return a.teams=b.rows,f.query({id:e.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindChatQueue(a.teams,_.map(b,function(a){return{id:a.id,penalty:a.UserHasChatQueue.penalty}}),h)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.queues.view",{url:"/view/:id",templateUrl:"app/channels/chat/queue/view/view.html",controller:"ChatQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.chat.queues.view.settings",{url:"/settings",templateUrl:"app/channels/chat/queue/view/view.settings.html"}).state("main.channels.chat.queues.view.agents",{url:"/agents",templateUrl:"app/channels/chat/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","ChatQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.chatPause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_chat_queue:save",function(b){console.log("new queue",b);var c=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),d=a.gridOptions.data.indexOf(c);a.gridOptions.data.splice(d+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.ChatQueueId,agent:b.membername,online:c.online})}),e.socket.on("user_has_chat_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.ChatQueueId})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.chatPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.ChatQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.chatQueues=b.rows,e.syncUpdates("chat_queue",a.chatQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.chatQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"chatPause",width:300,displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.pause != null && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><timer data-ng-if="row.entity.pause" start-time="grid.appScope.moment(row.entity.lastPauseAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span><span data-ng-if="row.entity.pause" class="left-margin">({{row.entity.pauseType}})</span><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor left-margin" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queueId" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queueId)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.chatQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_chat_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"chat"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/chat/realtime/view/agent/queue.modal.add.html",controller:"ChatRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.chatQueues,function(b){return!!_.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.chatQueues,function(a){return _.includes(b.queues,a.id)}),channel:"chat",data1:e,data3:b.queues.join(","),data4:"chat"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"chat",data1:a,data3:b,data4:"chat"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/chat/realtime/view/agent/agent.modal.info.html",controller:"ChatRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/chat/realtime/view/agent/agent.html",controller:"ChatRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewQueueCtrl",["$scope","$http","socket","ChatQueue","Agent",function(a,b,c,d,e){a.initQueues=function(){a.gridOptions={enableSorting:!1,enableFiltering:!0,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,showTreeExpandNoChildren:!1,columnDefs:[{name:"queueName",displayName:"Queue"},{name:"fullname",displayName:"Agent",cellClass:"text-center"},{name:"online",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><i data-ng-if="row.entity.online != null" class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i></div>'},{name:"chatPause",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><i data-ng-if=\"row.entity.chatPause != null\" data-ng-class=\"row.entity.chatPause ? 'icon-control-pause font-red' : 'icon-control-play font-green'\"></i></div>"},{name:"pauseType",cellClass:"text-center",cellTemplate:'<span data-ng-if="row.entity.chatPause">{{row.entity.pauseType}}</span>'},{name:"lastLoginAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><time data-ng-if="row.entity.lastLoginAt" is="relative-time" datetime="{{row.entity.lastLoginAt}}">April 1, 2014</time></div>'}],onRegisterApi:function(b){a.gridApi=b,a.gridApi.treeBase.on.rowExpanded(a,function(b){var c=_.findIndex(a.gridOptions.data,{$$hashKey:b.entity.$$hashKey});b.entity.Users&&b.entity.Users.forEach(function(b){_.find(a.gridOptions.data,{name:b.name})||a.gridOptions.data.splice(c+1,0,b)})})}},d.get(function(b){a.gridOptions.data=[],b.rows.forEach(function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b),b.Users&&b.Users.forEach(function(b){b.agentName=b.name,a.gridOptions.data.push(b)})}),c.socket.on("agent:save",function(b){var c=_.filter(a.gridOptions.data,{agentName:b.name});c.forEach(function(a){a.online=b.online,a.lastLoginAt=b.lastLoginAt})}),c.socket.on("chat_queue:save",function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b)}),c.socket.on("chat_queue:remove",function(b){_.remov(a.gridOptions.data,{queueName:b.name})}),c.socket.on("user_has_chat_queue:save",function(b){var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.ChatQueueId});e.get({id:b.UserId}).$promise.then(function(b){a.gridOptions.data.splice(c+1,0,{id:b.id,name:b.name,fullname:b.fullname,agentName:b.name,online:b.online,lastLoginAt:b.lastLoginAt})})["catch"](function(a){console.error(a)})}),c.socket.on("user_has_chat_queue:remove",function(b){for(var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.ChatQueueId}),d=c+1;d<a.gridOptions.data.length;d++)a.gridOptions.data[d].id==b.UserId&&a.gridOptions.data.splice(d,1)})},function(a){console.error(a)})},a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initAgents=function(){b.get("/api/report/mails").success(function(b){a.agents=b,c.socket.on("report_mail:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_mail:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view.queues",{url:"/queues",templateUrl:"app/channels/chat/realtime/view/queue/queue.html",controller:"ChatRealtimeViewQueueCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewSessionCtrl",["$scope","$http","socket","uiGridConstants",function(a,b,c,d){a.initSessions=function(){a.gridOptions={enableHorizontalScrollbar:0,enableVerticalScrollbar:0,columnDefs:[{name:"uniqueid",cellClass:"text-center",width:150,enableSorting:!1,enableFiltering:!0},{name:"application",displayName:"APPLICATION_APP",headerCellFilter:"translate",cellClass:"text-center"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center"},{name:"agentname",cellClass:"text-center"},{name:"websitename",displayName:"APPLICATION_WEB_SITE",headerCellFilter:"translate"},{name:"joinAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.joinAt" is="relative-time" datetime="{{row.entity.joinAt}}">April 1, 2014</time>',sort:{direction:d.DESC,priority:1}},{name:"leaveAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.leaveAt" is="relative-time" datetime="{{row.entity.leaveAt}}">April 1, 2014</time>'},{name:"unmanagedAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.unmanagedAt" is="relative-time" datetime="{{row.entity.unmanagedAt}}">April 1, 2014</time>'}],data:[]},b.get("/api/report/chat/sessions").success(function(b){a.gridOptions.data=b.rows,c.socket.on("report_chat_session:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id}),d=a.gridOptions.data.indexOf(c);c?_.merge(a.gridOptions.data[d],b):a.gridOptions.data.unshift(b)})}).error(function(a){console.error(a)})},a.$on("$destroy",function(){c.unsyncUpdates("report_chat:save"),c.unsyncUpdates("report_chat:update")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view.sessions",{url:"/sessions",templateUrl:"app/channels/chat/realtime/view/session/session.html",controller:"ChatRealtimeViewSessionCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"Queues",link:"main.chat.realtime.view.agent.queues"},{name:"Timeline",link:"main.chat.realtime.view.agent.timeline"}],a.sessions=[{name:"Sessions",link:"main.chat.realtime.view.sessions"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.realtime.view",{url:"/view",templateUrl:"app/channels/chat/realtime/view/view.html",controller:"ChatRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatVisitorListCtrl",["$scope","ChatVisitor","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"chat_visitors.csv",columnDefs:[{name:"fullname",cellClass:"text-center"},{name:"email",cellClass:"text-center"},{name:"origin",cellClass:"text-center"},{name:"createdAt",displayName:"createdAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><span am-time-ago="row.entity.createdAt"></span></div>'},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/channels/chat/visitors/view/{{row.entity.id}}/profile",name:"profile"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.visitors.list",{url:"/list",templateUrl:"app/channels/chat/visitor/list/list.html",controller:"ChatVisitorListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatVisitorViewCtrl",["$scope","$stateParams","ChatVisitor",function(a,b,c){a.initView=function(){return c.get({id:b.id}).$promise.then(function(b){a.chatVisitor=b})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.visitors.view",{url:"/view/:id",templateUrl:"app/channels/chat/visitor/view/view.html",controller:"ChatVisitorViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.chat.visitors.view.profile",{url:"/profile",templateUrl:"app/channels/chat/visitor/view/view.profile.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.visitors",{url:"/visitors",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("ChatApplication",["$resource",function(a){return a("/api/chat/applications/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("ChatWebsite",["$resource",function(a){return a("/api/chat/websites/:websiteId/:controller/:id",{id:"@websiteId"},{update:{method:"PUT"},updateFields:{method:"PUT",isArray:!0}})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteListCtrl",["$scope","gridOptions","ChatWebsite",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"chat_websites.csv",columnDefs:[{name:"name"},{name:"description"},{name:"address"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/chat/websites/view/{{row.entity.id}}/embedding/view",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.list",{url:"/list",templateUrl:"app/channels/chat/website/list/list.html",controller:"ChatWebsiteListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewActionListCtrl",["$scope","gridOptions","ChatWebsite","$http","$translate","$stateParams","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.initActons=function(){var d={draggable:!0,exporterCsvFilename:"chat_applications.csv",columnDefs:[{name:"app",cellClass:"text-center"},{name:"name",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span>{{row.entity.ChatQueue ? row.entity.ChatQueue.name : row.entity.User.name}}</span></div>"},{name:"timeout",cellClass:"text-center"},{name:"interval",cellClass:"text-center"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/chat/websites/view/{{row.entity.ChatWebsiteId}}/actions/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.app, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{websiteId:f.websiteId,controller:"applications"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions.list",{url:"/list",templateUrl:"app/channels/chat/website/view/action/list/list.html",controller:"ChatWebsiteViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval","ChatApplication","ChatQueue","Agent","Interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){return a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],k.get({id:c.actionId}).$promise.then(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})})["catch"](function(a){f.show(d.instant("Something went wrong!"),"danger")})},a.getQueues=function(){return l.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return m.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return n.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.updateItem=function(){var b=["*","*","*","*"],e={app:a.application.app,timeout:a.application.timeout,chatAccountId:c.id};switch(a.application.app){case"agent":e.UserId=a.application.UserId;break;case"queue":e.chatQueueId=a.application.chatQueueId}switch(a.application.intType){case"always":e.interval=b.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(b[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?b[1]="*":b[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?b[2]="*":b[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?b[3]="*":b[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",e.interval=b.join(","),delete a.application.IntervalId;break;case"list":e.IntervalId=a.application.IntervalId}return k.update({id:c.actionId},e).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions.view",{url:"/view/:actionId",templateUrl:"app/channels/chat/website/view/action/view/view.html",controller:"ChatWebsiteViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewActionWizardCtrl",["$scope","$http","Agent","Interval","ChatQueue","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=l.application,a.$stateParams=f,a.$interval=m.interval,a.forms={},a.application={app:"queue",intType:"always",alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){return e.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return c.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return d.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.createItem=function(){var c=["*","*","*","*"],d={app:a.application.app,timeout:a.application.timeout,ChatWebsiteId:f.websiteId};switch(a.application.app){case"agent":d.UserId=a.application.UserId;break;case"queue":d.ChatQueueId=a.application.ChatQueueId}switch(a.application.intType){case"always":d.interval=c.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(c[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?c[1]="*":c[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?c[2]="*":c[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?c[3]="*":c[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",d.interval=c.join(","),delete a.application.IntervalId;break;case"list":d.IntervalId=a.application.IntervalId}b.post("/api/chat/applications",d).success(function(){h.path("/channels/chat/websites/view/"+f.websiteId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){j.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.actions.wizard",{url:"/wizard",templateUrl:"app/channels/chat/website/view/action/wizard/wizard.html",controller:"ChatWebsiteViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.embedding",{url:"/embedding",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewEmbeddingViewCtrl",["$scope","$stateParams","$translate","clipboard","xAlert","ChatWebsite",function(a,b,c,d,e,f){a.initView=function(){return f.get({websiteId:b.websiteId,controller:"snippet"}).$promise.then(function(b){a.snippetCode=b.html})["catch"](function(a){e.show(a.message,"danger")})},a.copyToClipboard=function(){d.copyText(a.snippetCode),e.show(c.instant("MESSAGE_TEXT_COPIED_CLIPBOARD")+"!","success")}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.embedding.view",{url:"/view",templateUrl:"app/channels/chat/website/view/embedding/view/view.html",controller:"ChatWebsiteViewEmbeddingViewCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.form",{url:"/forms",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewFormViewCtrl",["$scope","$builder","$validator","$stateParams","$translate","ChatWebsite","xAlert",function(a,b,c,d,e,f,g){a.saveForm=function(a){var c=angular.copy(b.forms[a]);return c.length>3?g.show("You can insert at least 3 input elements","danger"):(_.forEach(c,function(a){
 delete a.id}),f.updateFields({websiteId:d.websiteId,controller:"fields",id:a},c).$promise.then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")}))},a.getChatWebsiteFields=function(a){return f.query({websiteId:d.websiteId,controller:"fields",id:a}).$promise.then(function(c){_.forEach(c,function(c){b.addFormObject(a,c)})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.form.view",{url:"/view",templateUrl:"app/channels/chat/website/view/form/view/view.html",controller:"ChatWebsiteViewFormViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewProactiveListCtrl",["$scope","gridOptions","ChatWebsite","$http","$translate","$stateParams","$uibModal",function(a,b,c,d,e,f,g){a.initProactiveActions=function(){var d={exporterCsvFilename:"telephones.csv",columnDefs:[{name:"name"},{name:"type"},{name:"action",width:125,buttons:[{"class":"blue-hoki",onClick:"grid.appScope.createItem(row.entity)",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{websiteId:f.websiteId,controller:"proactive"})},a.createItem=function(b){var c=g.open({animation:!0,templateUrl:"app/channels/chat/website/view/proactive/list/list.create.modal.html",controller:"ChatWebsiteProactiveListCreateCtrl",resolve:{item:b}});c.result.then(function(b){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteProactiveListCreateCtrl",["$scope","$translate","$uibModalInstance","$stateParams","ChatWebsite","xAlert","item",function(a,b,c,d,e,f,g){a.form={},a.item=g||{},a.title=g?b.instant("APPLICATION_EDIT_PROACTIVE_ACTION"):b.instant("APPLICATION_NEW_PROACTIVE_ACTION"),a.possibleType=[{type:"mouseOver",title:"Mouse Over"},{type:"timeout",title:"Timeout"}],a.save=function(){return g?e.update({websiteId:d.websiteId,controller:"proactive",id:a.item.id},a.item).$promise.then(function(a){f.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){f.show(a.data.message,"danger")}):e.save({websiteId:d.websiteId,controller:"proactive"},a.item).$promise.then(function(a){f.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){f.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.proactive.list",{url:"/list",templateUrl:"app/channels/chat/website/view/proactive/list/list.html",controller:"ChatWebsiteViewProactiveListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.proactive",{url:"/proactive",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.snippet",{url:"/snippet",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewSnippetViewCtrl",["$scope","$http","$stateParams","$translate","Template",function(a,b,c,d,e){a.$translate=d,a.statePreview={state:"online"},a.enquirySwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.lang={HeaderCurrentlyChatting:"Live Chat",HeaderOffline:"Contact us",OperatorOfflineMessage:"It appears as if all operators are currently offline.",OfflineMessage:"<strong>We're not online.</strong><br/>It doesn't mean we're not there to help - leave your message below and we'll be in touch as soon as possible.",EnquiryMessagePlaceholder:"Your message...",EnquiryButtonText:"Leave message",EnquirySubmitSuccess:"Your message was sucessfully submitted - we will contact you as soon as possible.",OperatorComposing:"{fullname} is typing...",FirstMessageText:"",ExitChatButtonText:"Exit Chat",ExitChatQuestionText:"Are you sure?",ExitChatButtonConfirmText:"Yes",ExitChatButtonCancelText:"No",MessagePlaceholderText:"Your message...",MessageSendButtonText:"Send",ValidationEmailRequired:"Please enter your email address",ValidationEmailInvalid:"Please enter a valid email address",ValidationEmailMaxLength:"The email address may not exceed 85 characters",ValidationUsernameRequired:"Please enter your name",ValidationUsernameMaxLength:"The name may not exceed 45 characters",ValidationEnquiryRequired:"Please enter your enquiry",ValidationEnquiryMaxLength:"The enquiry may not exceed 1500 characters",ValidationMessageRequired:"Please enter your message",ValidationMessageMaxLength:"The message may not exceed 750 characters"},a.initView=function(){e.get().$promise.then(function(b){console.log(b),a.mailTemplates=b.rows})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view.snippet.view",{url:"/view",templateUrl:"app/channels/chat/website/view/snippet/view/view.html",controller:"ChatWebsiteViewSnippetViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewCtrl",["$scope","xAlert","$http","$location","$stateParams","$translate","WizardHandler","ChatApplication","ChatWebsite",function(a,b,c,d,e,f,g,h,i){a.initApplication=function(){a.forms={},a.application={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.deleteItem=function(a){return h["delete"]({id:a}).$promise.then(function(){b.show(f.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(f.instant("Something went wrong!"),"danger")})},a.initView=function(){return i.get({id:e.websiteId}).$promise.then(function(b){a.chatWebsite=b})["catch"](function(a){b.show(a.message,"danger")})},a.updateItem=function(){return i.update({id:a.chatWebsite.id},a.chatWebsite).$promise.then(function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_SUCCESS")+"!","success")})["catch"](function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.view",{url:"/view/:websiteId",templateUrl:"app/channels/chat/website/view/view.html",controller:"ChatWebsiteViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites",{url:"/websites",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert","ChatWebsite",function(a,b,c,d,e,f,g){a.$translate=d,a.forms={formSetting:void 0,formAppearance:void 0,formLabel:void 0,formFunctionality:void 0},a.next=function(){e.wizard().next()},a.exitValidation=function(a){return a},a.item={},a.createItem=function(){return g.save(a.item).$promise.then(function(){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_SUCCESS"),"success"),c.path("/channels/chat/websites/list")})["catch"](function(a){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.chat.websites.wizard",{url:"/wizard",templateUrl:"app/channels/chat/website/wizard/wizard.html",controller:"ChatWebsiteWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("FaxAccountListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","$log","stResource",function(a,b,c,d,e,f,g,h,i){a.conf={faxAccountsByPage:{name:"10",value:10}},a.faxAccountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.fax_accounts={checked:[]},a.check=function(b,c){c?a.fax_accounts.checked=angular.copy(_.map(a.displayedFaxAccounts,"id")):a.fax_accounts.checked=[]},a.initList=function(b){e.unsyncUpdates("fax_account"),b.url="/api/fax/accounts",i.getPage(b).then(function(c){a.displayedFaxAccounts=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(a.faxAccountsByPage,a.displayedFaxAccounts.length),g.updateTableConfig(a.conf.faxAccountsByPage,a.displayedFaxAccounts.length)}),e.socket.on("fax_account:save",function(){a.initList(b)}),e.socket.on("fax_account:remove",function(c){a.fax_accounts.checked=_.without(a.fax_accounts.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/fax/accounts/"+a).success(function(){c.show(d.instant("MESSAGE_FAX_ACCOUNT_DELETE_SUCCESS"),"success")}).error(function(){c.show(d.instant("MESSAGE_FAX_ACCOUNT_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/fax/accounts",{params:{id:a.fax_accounts.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.getFaxAccounts=function(b){return _.map(a.faxAccountsByPage,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.$on("$destroy",function(){e.unsyncUpdates("fax_account")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.list",{url:"/list",templateUrl:"app/channels/fax/account/list/list.html",controller:"FaxAccountListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.forms={},a.sortableOptions={stop:function(){b.post("api/fax/accounts/"+c.id+"/applications",{applications:_.map(a.faxApplications,"id")}).success(function(b){a.faxApplications=b}).error(function(a){console.error(a)})},"ui-floating":!0},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.initApplication=function(){a.forms={},a.application={}},a.deleteItem=i.confirm["delete"](function(a){b["delete"]("api/fax/applications/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.getAppdata=function(b,c){switch(b){case"agent":return a.agents?_.find(a.agents,{id:c}).name:c;case"queue":return a.faxQueues?_.find(a.faxQueues,{id:c}).name:c}return"UNKNOWN"},a.createItem=function(){switch(a.application.appdata=a.application.appdata.id,a.application.app){case"agent":a.application.UserId=parseInt(a.application.appdata,10);break;case"queue":a.application.FaxQueueId=parseInt(a.application.appdata,10)}a.application.FaxAccountId=c.id,b.post("api/fax/applications",a.application).success(function(){e.path("/channels/fax/accounts/view/"+c.id+"/routes")}).error(function(){h.show("Something went wrong!","danger")})},a.$watch("application.app",function(c){if(c){var d;switch(c){case"agent":d="api/agents";break;case"queue":d="api/fax/queues"}b.get(d).success(function(b){a.items=b.rows})}},!0),a.initView=function(){b.get("/api/trunks").success(function(b){a.trunks=b.rows}).error(function(a){console.log(a)}),b.get("/api/fax/accounts/"+c.id).success(function(b){a.account=b}).error(function(){})},a.getAgents=function(){b.get("api/fax/agents").success(function(b){a.agents=b})},a.getFaxApplications=function(){b.get("/api/fax/applications",{params:{FaxAccountId:c.id}}).success(function(b){a.faxApplications=b,g.socket.on("fax_application:remove",function(b){_.remove(a.faxApplications,{id:b.id})})}),b.get("/api/agents").success(function(b){a.agents=b.rows}),b.get("/api/fax/queues").success(function(b){a.faxQueues=b.rows})},a.updateItemFaxAccount=function(){b.put("/api/fax/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_FAX_ACCOUNT_UPDATE_SUCCESS")+".","success")}).error(function(){h.show(d.instant("MESSAGE_FAX_ACCOUNT_UPDATE_FAILURE")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.view",{url:"/view/:id",templateUrl:"app/channels/fax/account/view/view.html",controller:"FaxAccountViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.channels.fax.accounts.view.settings",{url:"/settings",templateUrl:"app/channels/fax/account/view/view.settings.html",authenticate:!0}).state("main.channels.fax.accounts.view.routes",{url:"/routes",templateUrl:"app/channels/fax/account/view/view.routes.html",authenticate:!0}).state("main.channels.fax.accounts.view.applications",{url:"/applications",templateUrl:"app/channels/fax/account/view/view.applications.html",authenticate:!0})}]),angular.module("xCallyShuttleApp").controller("FaxAccountWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.ecm=!1,a.item.minrate="9600",a.item.maxrate="33600",b.get("/api/trunks").success(function(b){a.trunks=b.rows}).error(function(a){console.error(a)})},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/fax/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_FAX_ACCOUNT_CREATE_SUCCESS")+".","success"),c.path("/channels/fax/accounts/list")}).error(function(){e.show(d.instant("MESSAGE_FAX_ACCOUNT_CREATE_FAILURE")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.accounts.wizard",{url:"/wizard",templateUrl:"app/channels/fax/account/wizard/wizard.html",controller:"FaxAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax",{url:"/fax",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxInboxComposeCtrl",["$scope","$http","FileUploader","$location","Auth","xAlert","$cookieStore","$translate",function(a,b,c,d,e,f,g,h){a.forms={},a.form={to:[],sto:[]},b.get("api/fax/accounts").success(function(b){a.faxAccounts=b.rows}),a.isNewMessageFromEmpty=!0;var i=a.uploader=new c({url:"api/fax/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+g.get("token")}});i.filters.push({name:"pdfFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(b)}}),i.onBeforeUploadItem=function(b){b.formData.push({accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:e.getCurrentUser().id,html:a.form.html?a.form.html:""})},i.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},i.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d)},i.onCompleteAll=function(){i.clearQueue(),f.show(h.instant("MESSAGE_WELL_DONE"),"success"),d.path("/channels/fax/inbox/incoming")},i.onWhenAddingFileFailed=function(){f.show(h.instant("MESSAGE_WRONG_FORMAT"),"danger")},a.sendFax=function(){return a.form.sto.length?void(i.queue.length?i.uploadAll():b.post("api/fax/messages",{accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:e.getCurrentUser().id,html:a.form.html,onlyText:!0}).success(function(){f.show(h.instant("MESSAGE_WELL_DONE"),"success"),d.path("/channels/fax/inbox/incoming")}).error(function(a){f.show(h.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})):(a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0))},a.cancel=function(){a.form.sto=[],delete a.form.from}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.inbox.compose",{url:"/compose",templateUrl:"app/channels/fax/inbox/room/room.html",controller:"FaxInboxComposeCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxInboxCtrl",["$scope","$http","$location","$translate","$timeout","$notification","Auth","socket","$interval",function(a,b,c,d,e,f,g,h,i){a.go=function(a,d,e){e?b.put("/api/fax/rooms/"+d,{status:e}).success(function(){c.path(a)}).error(function(a){console.error(a)}):c.path(a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.inbox",{url:"/inbox",templateUrl:"app/channels/fax/inbox/inbox.html",controller:"FaxInboxCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/inbox.css","assets/css/todo.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxInboxIncomingCtrl",["$scope","$http","$location","socket","Auth","xAlert",function(a,b,c,d,e,f){a.$location=c,a.getRooms=function(){e.isAdmin()?b.get("api/fax/rooms").success(function(b){a.faxRooms=b,d.syncUpdates("fax_room",a.faxRooms)}).error(function(a){console.error(a),f.show($translate.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")}):b.get("api/fax/rooms/agent/"+e.getCurrentUser().id).success(function(b){a.faxRooms=b,d.socket.on("fax_room:update",function(b){b.UserId===e.getCurrentUser().id&&a.faxRooms.push(b)})}).error(function(a){f.show($translate.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.inbox.incoming",{url:"/incoming",templateUrl:"app/channels/fax/inbox/incoming/incoming.html",controller:"FaxInboxIncomingCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxInboxRoomCtrl",["$scope","$http","$stateParams","$location","FileUploader","socket","Auth","xAlert","$translate","$cookieStore",function(a,b,c,d,e,f,g,h,i,j){function k(){a.lastMessage=_.reject(a.faxRoom.FaxMessages,function(a){return"RECEIVED"!==a.status}),a.lastMessage=_.sortByOrder(a.lastMessage,["id"],["desc"])[0],a.lastMessage&&(console.log(a.faxRoom),a.form.from=a.faxRoom.FaxAccount,a.form.to=[a.lastMessage.From.phone],a.form.sto=[a.lastMessage.From.phone])}var l=a.uploader=new e({url:"api/fax/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+j.get("token")}});l.filters.push({name:"pdfFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(b)}}),l.onBeforeUploadItem=function(b){console.log(a.form.from.id,a.form.sto[0],a.isNewMessageFromEmpty,c.id,g.getCurrentUser().id),b.formData.push({accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,roomId:c.id,userId:g.getCurrentUser().id,html:a.form.html}),console.log(b)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",b,c,d)},l.onCompleteAll=function(){l.clearQueue(),h.show(i.instant("MESSAGE_WELL_DONE"),"success")},l.onWhenAddingFileFailed=function(){h.show(i.instant("MESSAGE_WRONG_FORMAT"),"danger")},a.initRoomView=function(){a.isNewMessageFromEmpty=!0,a.Auth=g,a.forms={},a.form={to:[],sto:[]},b.get("api/agents").success(function(b){a.agents=b}),b.get("api/fax/accounts").success(function(b){a.faxAccounts=b.rows}),c.id&&b.get("/api/fax/rooms/"+c.id).success(function(b){a.faxRoom=b,a.isNewMessageFromEmpty=!1,f.syncUpdates("fax_message",[],function(b,c){"created"===b&&c.FaxRoomId===a.faxRoom.id&&(a.faxRoom.FaxMessages.push(c),k())}),k()}).error(function(a){console.error(a),h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.sendFax=function(){return a.form.sto.length?void(l.queue.length?l.uploadAll():b.post("api/fax/messages",{accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:g.getCurrentUser().id,html:a.form.html,onlyText:!0}).success(function(){h.show(i.instant("MESSAGE_WELL_DONE"),"success"),console.log("Fax Message sent")}).error(function(a){h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})):(a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0))},a.assignAgent=function(a){b.put("/api/fax/rooms/"+c.id,{UserId:a}).success(function(){h.show(i.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateStatus=function(d){b.put("/api/fax/rooms/"+c.id,{status:d}).success(function(b){a.faxRoom.status=b.status,h.show(i.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(a){console.error(a),h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.cancel=function(){a.form.sto=[],delete a.form.from,l.clearQueue()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.inbox.room",{url:"/room/:id",templateUrl:"app/channels/fax/inbox/room/room.html",controller:"FaxInboxRoomCtrl"})}]),angular.module("xCallyShuttleApp").factory("FaxQueue",["$resource",function(a){return a("/api/fax/queues/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("FaxQueueListCtrl",["$scope","FaxQueue","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"fax_queues.csv",columnDefs:[{name:"name"},{name:"description"},{name:"strategy"},{name:"timeout"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/fax/queues/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/fax/queue/list/list.create.modal.html",controller:"FaxQueueListCreateCtrl"});b.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("FaxQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","FaxQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.queues.list",{url:"/list",templateUrl:"app/channels/fax/queue/list/list.html",controller:"FaxQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("FaxQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","FaxQueue","Team",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return f.save({id:a.queue.id,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})},deselect:function(b){return f["delete"]({id:a.queue.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})}}};a.getQueue=function(){return f.get({id:d.id}).$promise.then(function(b){b.penalty=0,a.queue=b})["catch"](function(a){e.show(a.message,"danger")})},a.updateFaxQueue=function(){return f.update({id:d.id},{name:a.queue.name,description:a.queue.description,timeout:a.queue.timeout,strategy:a.queue.strategy}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")})},a.getTeams=function(){return g.get().$promise.then(function(b){return a.teams=b.rows,f.query({id:d.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindMailQueue(a.teams,_.map(b,function(a){return{id:a.id,penalty:a.UserHasFaxQueue.penalty}}),h)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.queues.view",{url:"/view/:id",templateUrl:"app/channels/fax/queue/view/view.html",controller:"FaxQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.fax.queues.view.settings",{url:"/settings",templateUrl:"app/channels/fax/queue/view/view.settings.html"}).state("main.channels.fax.queues.view.agents",{url:"/agents",templateUrl:"app/channels/fax/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","FaxQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.faxPause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_fax_queue:save",function(b){console.log("new queue",b);var c=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),d=a.gridOptions.data.indexOf(c);a.gridOptions.data.splice(d+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.FaxQueueId,agent:b.membername,online:c.online})}),e.socket.on("user_has_fax_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.FaxQueueId})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.faxPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.FaxQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.faxQueues=b.rows,e.syncUpdates("fax_queue",a.faxQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.faxQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"faxPause",width:300,displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.pause != null && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><timer data-ng-if="row.entity.pause" start-time="grid.appScope.moment(row.entity.lastPauseAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span><span data-ng-if="row.entity.pause" class="left-margin">({{row.entity.pauseType}})</span><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor left-margin" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queueId" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queueId)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.faxQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,
-enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_fax_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"fax"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/fax/realtime/view/agent/queue.modal.add.html",controller:"FaxRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.faxQueues,function(b){return _.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})?!0:!1})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.faxQueues,function(a){return _.includes(b.queues,a.id)}),channel:"fax",data1:e,data3:b.queues.join(","),data4:"fax"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"fax",data1:a,data3:b,data4:"fax"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/fax/realtime/view/agent/agent.modal.info.html",controller:"FaxRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/fax/realtime/view/agent/agent.html",controller:"FaxRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewCtrl",["$scope","$state",function(a,b){a.agents=[{name:"Queues",link:"main.channels.fax.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.fax.realtime.view.agents.timeline"}],a.sessions=[{name:"Sessions",link:"main.channels.fax.realtime.view.sessions"}],a.tree={queues:[{name:"Queues",link:"main.channels.fax.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.fax.realtime.view.agents.timeline"}],sessions:[{name:"Sessions",link:"main.channels.fax.realtime.view.sessions"}]}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.realtime.view",{url:"/view",templateUrl:"app/channels/fax/realtime/view/view.html",controller:"FaxRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailAccount",["$resource",function(a){return a("/api/mail/accounts/:accountId/:controller/:id",{id:"@accountId"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MailAccountListCtrl",["$scope","gridOptions","MailAccount","$stateParams",function(a,b,c,d){a.initView=function(){var e={exporterCsvFilename:"mail_accounts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"address"},{name:"MailServerIn.state",width:100,cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span class=\"label label-sm\" data-ng-class=\"row.entity.MailServerIn.state === 'CONNECTED' ? 'label-success' : 'label-danger'\">{{row.entity.MailServerIn.state}}</span></div>",displayName:"IMAP",enableSorting:!1,enableFiltering:!1},{name:"MailServerOut.state",width:110,cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span class=\"label label-sm\" data-ng-class=\"row.entity.MailServerOut.state === 'CONNECTED' ? 'label-success' : 'label-danger'\">{{row.entity.MailServerOut.state}}</span></div>",displayName:"SMTP",enableSorting:!1,enableFiltering:!1},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/accounts/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,e,a,{accountId:d.accountId})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.list",{url:"/list",templateUrl:"app/channels/mail/account/list/list.html",controller:"MailAccountListCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailServerIn",["$resource",function(a){return a("/api/mail/servers/in/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailServerOut",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"},{update:{method:"PUT"},test:{method:"GET"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionListCtrl",["$scope","gridOptions","MailAccount","$http","$translate","$stateParams",function(a,b,c,d,e,f){a.initActons=function(){var d={draggable:!0,exporterCsvFilename:"mail_applications.csv",enableSorting:!1,enableFiltering:!1,columnDefs:[{name:"app",cellClass:"text-center"},{name:"name",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span>{{row.entity.MailQueue ? row.entity.MailQueue.name : row.entity.User.name}}</span></div>"},{name:"timeout",cellClass:"text-center"},{name:"interval",cellClass:"text-center"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/accounts/view/{{row.entity.MailAccountId}}/actions/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.app, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{accountId:f.accountId,controller:"applications"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions.list",{url:"/list",templateUrl:"app/channels/mail/account/view/action/list/list.html",controller:"MailAccountViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval","Agent","Interval","MailQueue",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/mail/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){return m.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return k.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return l.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.updateItem=function(){var e=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,MailAccountId:c.id};switch(a.application.app){case"agent":g.UserId=a.application.UserId;break;case"queue":g.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":g.interval=e.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(e[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?e[1]="*":e[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?e[2]="*":e[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?e[3]="*":e[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=e.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}b.put("/api/mail/applications/"+c.actionId,g).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions.view",{url:"/view/:actionId",templateUrl:"app/channels/mail/account/view/action/view/view.html",controller:"MailAccountViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionWizardCtrl",["$scope","$http","Agent","MailQueue","Interval","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=l.application,a.$stateParams=f,a.$interval=m.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){return d.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return c.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return e.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.createItem=function(){var c=["*","*","*","*"],d={app:a.application.app,timeout:a.application.timeout,MailAccountId:f.accountId};switch(a.application.app){case"agent":d.UserId=a.application.UserId;break;case"queue":d.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":d.interval=c.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(c[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?c[1]="*":c[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?c[2]="*":c[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?c[3]="*":c[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",d.interval=c.join(","),delete a.application.IntervalId;break;case"list":d.IntervalId=a.application.IntervalId}b.post("/api/mail/applications",d).success(function(){h.path("/channels/mail/accounts/view/"+f.accountId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){j.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions.wizard",{url:"/wizard",templateUrl:"app/channels/mail/account/view/action/wizard/wizard.html",controller:"MailAccountViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","MailAccount","MailMessage","MailServerIn","MailServerOut","usSpinnerService",function(a,b,c,d,e,f,g,h,i,j,k){a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.initView=function(){return g.get({id:c.accountId}).$promise.then(function(b){a.account=b})["catch"](function(a){f.show(a.message,"danger")})},a.updateItemMailAccount=function(){return g.update({id:c.accountId},{name:a.account.name,description:a.account.description,address:a.account.address,fidelity:a.account.fidelity,timeout:a.account.timeout}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.updateItemMailServerIn=function(){return i.update({id:a.account.MailServerIn.id},a.account.MailServerIn).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.updateItemMailServerOut=function(){return j.update({id:a.account.MailServerOut.id},a.account.MailServerOut).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.test=function(){return k.spin("spinner-grid"),j.test({id:a.account.MailServerOut.id,controller:"test"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),f.show(a.message||a.data.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view",{url:"/view/:accountId",templateUrl:"app/channels/mail/account/view/view.html",controller:"MailAccountViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.channels.mail.accounts.view.settings",{url:"/settings",templateUrl:"app/channels/mail/account/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("MailAccountWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert","MailAccount",function(a,b,c,d,e,f,g){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.forms={},a.item={MailServerIn:{port:993,ssl:!0,"delete":!1,protocol:"IMAP",filter:"UNSEEN",mailbox:"INBOX"},MailServerOut:{port:465,ssl:!0}}},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a},a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/channels/mail/accounts/list")})["catch"](function(a){f.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.wizard",{url:"/wizard",templateUrl:"app/channels/mail/account/wizard/wizard.html",controller:"MailAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.inbox",{url:"/inbox",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailInboxListCtrl",["$scope","$rootScope","MailRoom","gridOptions","uiGridConstants","Auth",function(a,b,c,d,e,f){a.initView=function(){var g={exporterCsvFilename:"mail_rooms.csv",enableRowHeaderSelection:f.isAdmin(),columnDefs:[{name:"id",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span>#{{row.entity.id}}</span></div>",width:75,enableSorting:!1,enableFiltering:!1},{name:"subject"},{name:"from",cellClass:"text-center"},{name:"MailAccount.name",displayName:"Account",cellClass:"text-center",enableSorting:!1,enableFiltering:!1},{name:"users",displayName:"APPLICATION_AGENTS",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{(row.entity.Users | map:'fullname').join(', ')}}</div>",enableSorting:!1,enableFiltering:!1},{name:"status",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span class=\"label label-sm\" data-ng-class=\"{'label-info': row.entity.status === 'OPEN', 'label-danger': row.entity.status === 'NEW','label-success': row.entity.status === 'CLOSED'}\">{{row.entity.status}}</span></div>",filter:{type:e.filter.SELECT,selectOptions:[{value:"NEW",label:"NEW"},{value:"OPEN",label:"OPEN"},{value:"CLOSED",label:"CLOSED"}]},width:100},{name:"createdAt",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><time is="relative-time" datetime="{{row.entity.createdAt}}">April 1, 2014</time></div>',enableSorting:!1,enableFiltering:!1,width:125},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/inbox/view/{{row.entity.id}}/room",name:"open"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.id, row.entity.id)",hide:!f.isAdmin()}]}]};a.gridOptions=d.gridOptions(c,g,a),b.$on("mailMessageEvent",function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.inbox.list",{url:"/list",templateUrl:"app/channels/mail/inbox/list/list.html",controller:"MailInboxListCtrl"})}]),angular.module("xCallyShuttleApp").directive("mail",function(){return{templateUrl:"app/channels/mail/inbox/mail/mail.html",restrict:"EA",scope:{mailMessage:"=message"}}}),angular.module("xCallyShuttleApp").directive("note",function(){return{templateUrl:"app/channels/mail/inbox/note/note.html",restrict:"EA",scope:{mailMessage:"=message"}}}),angular.module("xCallyShuttleApp").controller("MailInboxViewModalAgentCtrl",["$scope","$uibModalInstance","$translate","$stateParams","Agent","MailRoom","xAlert",function(a,b,c,d,e,f,g){a.initModal=function(){a.agents=[],a.item={agents:[]},e.get().$promise.then(function(b){b.rows.forEach(function(b){a.agents.push(b)})})["catch"](function(a){console.error(a)}),f.query({id:d.id,controller:"agents"}).$promise.then(function(b){b.forEach(function(b){a.agents.push(b),a.item.agents.push(b.id)})})["catch"](function(a){console.error(a)}),a.modal={dismissable:!0,title:"APPLICATION_MESSAGE_SEND_RETRY",text:"MESSAGE_MESSAGE_SEND_RETRY",buttons:[{classes:"btn btn-success",text:"APPLICATION_RETRY",click:function(a){b.close(a)}},{classes:"btn default",text:"APPLICATION_CANCEL",click:function(a){b.dismiss(a)}}]}},a.ok=function(){return f.update({id:d.id,controller:"agents",agents:a.item.agents}).$promise.then(function(){g.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close()})["catch"](function(a){console.error(a)})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailInboxViewCtrl",["$scope","$location","$cookieStore","$stateParams","$translate","$uibModal","CannedAnswer","socket","Agent","MailAccount","MailRoom","MailAttachment","MailMessage","FileUploader","Auth","xAlert","usSpinnerService",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){var r,s=[];a.onSelectAnswer=function(b){a.form.html+=b,a.selectedAnswer=""},a.getAnswers=function(a){return g.get({key:a}).$promise.then(function(a){return _.map(a.rows,"value")})},a.initRoom=function(){a.Auth=o,a.config={autoHideScrollbar:!1,theme:"light",advanced:{updateOnContentResize:!0},setHeight:781,scrollInertia:0},a.forms={},a.selectedAnswer="",a.form={disabled:!1,from:[],to:[],sto:[],cc:[],scc:[],html:""},h.socket.on("mail_message:save",function(b){return a.mailRoom&&b.MailRoomId===d.id?m.get({id:b.id}).$promise.then(function(b){a.mailRoom.MailMessages.unshift(b)})["catch"](function(a){console.error(a)}):void 0}),r=a.uploader=new n({url:"api/mail/attachments",autoUpload:!0,withCredentials:!0,headers:{Authorization:"Bearer "+c.get("token")}}),r.removeFromQueue=function(a){var b=this;return l["delete"]({id:a.basename}).$promise.then(function(){var c=b.getIndexOfItem(a),d=b.queue[c];d.isUploading&&d.cancel(),b.queue.splice(c,1),d._destroy(),b.progress=b._getTotalProgress(),s=_.reject(s,{basename:a.basename})})["catch"](function(){p.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},r.onErrorItem=function(){p.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},r.onSuccessItem=function(a,b){var c={size:b.size,path:b.path,name:b.name,basename:b.basename,type:b.type};a=_.merge(a,c),s.push(c)},i.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)}),j.get().$promise.then(function(b){a.mailAccounts=b.rows})["catch"](function(a){console.error(a)}),d.id&&k.get({id:d.id}).$promise.then(function(b){a.mailRoom=b,a.form.from.push(b.MailAccount.address);var c=_.last(a.mailRoom.MailMessages);a.form.to=a.form.cc=a.form.bcc=_.union(c.from,c.to,c.cc,c.bcc),a.form.sto=_.remove(a.form.to,function(a){return a!==b.MailAccount.address}),"NEW"===a.mailRoom.status&&k.update({id:d.id},{status:"OPEN"})})["catch"](function(a){console.error(a)})},a.cancel=function(){a.form.disabled=!1,a.form.from=[],a.form.to=[],a.form.sto=[],a.form.cc=[],a.form.scc=[],delete a.form.subject,delete a.form.html},a.updateStatus=function(a){return k.update({id:d.id},{status:a}).$promise.then(function(){p.show(e.instant("MESSAGE_STATUS_UPDATE_SUCCESS"),"success"),b.path("/channels/mail/inbox/list")})["catch"](function(a){p.show(a.message,"danger")})},a.loadAgents=function(){f.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.agents.modal.html",controller:"MailInboxViewModalAgentCtrl"})},a.loadTemplate=function(){f.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.templates.modal.html",controller:"MailInboxViewModalTemplateCtrl"}).result.then(function(b){a.form.subject=b.template.subject,a.form.html=b.template.html})},a.loadNote=function(){f.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.notes.modal.html",controller:"MailInboxViewModalNoteCtrl"})},a.sendMail=function(){var c={},f={subject:a.mailRoom?a.mailRoom.subject:a.form.subject,from:a.form.from,to:a.form.sto||[],cc:a.form.scc||[],html:a.form.html||null,text:a.form.text||null,inReplyTo:c.messageId||null,status:"SENDING",MailAttachments:s};return q.spin("spinner-grid"),a.form.disabled=!0,a.mailRoom?(c=_.last(a.mailRoom.MailMessages,{status:"RECEIVED"}),f.inReplyTo=c.messageId||null,k.save({id:d.id,controller:"messages"},f).$promise.then(function(){p.show(e.instant("MESSAGE_WELL_DONE"),"success"),b.path("/channels/mail/inbox/list")})["catch"](function(){p.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){q.stop("spinner-grid"),a.form.disabled=!1})):m.save(f).$promise.then(function(){p.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success"),b.path("/channels/mail/inbox/list")})["catch"](function(){p.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){q.stop("spinner-grid"),a.form.disabled=!1})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.inbox.view",{url:"/view",templateUrl:"app/channels/mail/inbox/view/view.html"}).state("main.channels.mail.inbox.view.compose",{url:"/compose",templateUrl:"app/channels/mail/inbox/view/view.room.html",controller:"MailInboxViewCtrl"}).state("main.channels.mail.inbox.view.room",{url:"/:id/room",templateUrl:"app/channels/mail/inbox/view/view.room.html",controller:"MailInboxViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailInboxViewModalNoteCtrl",["$scope","$uibModalInstance","$stateParams","$translate","MailRoom","xAlert",function(a,b,c,d,e,f){a.initModal=function(){a.item={}},a.ok=function(){return e.save({id:c.id,controller:"messages"},{text:a.item.text,status:"NOTE"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(){f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){b.close()})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailInboxViewModalTemplateCtrl",["$scope","$uibModalInstance","Template",function(a,b,c){a.initModal=function(){return a.item={},c.get().$promise.then(function(b){a.templates=b.rows})["catch"](function(a){console.error(a)})},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail",{url:"/mail",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("MailAttachment",["$resource",function(a){return a("/api/mail/attachments/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").factory("MailMessage",["$resource",function(a){return a("/api/mail/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailReport",["$resource",function(a){return a("/api/report/mails/:id/:controller1/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailRoom",["$resource",function(a){return a("/api/mail/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("MailQueueListCtrl",["$scope","MailQueue","gridOptions","$uibModal","xAlert",function(a,b,c,d,e){a.initView=function(){var d={exporterCsvFilename:"voice_queues.csv",columnDefs:[{name:"name"},{name:"description"},{name:"timeout"},{name:"strategy"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/queues/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/mail/queue/list/list.create.modal.html",controller:"MailQueueListCreateCtrl"});b.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("MailQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","MailQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.queues.list",{url:"/list",templateUrl:"app/channels/mail/queue/list/list.html",controller:"MailQueueListCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailQueue",["$resource",function(a){return a("/api/mail/queues/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]},data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MailQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","Team","MailQueue",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return g.save({id:a.queue.id,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})},deselect:function(b){return g["delete"]({id:a.queue.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})}}};a.getQueue=function(){return g.get({id:d.id}).$promise.then(function(b){b.penalty=0,a.queue=b})["catch"](function(a){console.error(a)})},a.updateMailQueue=function(){return g.update({id:d.id},{name:a.queue.name,description:a.queue.description,timeout:a.queue.timeout,strategy:a.queue.strategy}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})},a.getTeams=function(){return f.get().$promise.then(function(b){return a.teams=b.rows,g.query({id:d.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindMailQueue(a.teams,_.map(b,function(a){return{id:a.id,penalty:a.UserHasMailQueue.penalty}}),h)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.queues.view",{url:"/view/:id",templateUrl:"app/channels/mail/queue/view/view.html",controller:"MailQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.mail.queues.view.settings",{url:"/settings",templateUrl:"app/channels/mail/queue/view/view.settings.html"}).state("main.channels.mail.queues.view.agents",{url:"/agents",templateUrl:"app/channels/mail/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]
-})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","MailQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.mailPause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_mail_queue:save",function(b){console.log("new queue",b);var c=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),d=a.gridOptions.data.indexOf(c);a.gridOptions.data.splice(d+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.MailQueueId,agent:b.membername,online:c.online})}),e.socket.on("user_has_mail_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.MailQueueId})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.mailPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.MailQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.mailQueues=b.rows,e.syncUpdates("mail_queue",a.mailQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.mailQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"mailPause",width:300,displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.pause != null && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><timer data-ng-if="row.entity.pause" start-time="grid.appScope.moment(row.entity.lastPauseAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span><span data-ng-if="row.entity.pause" class="left-margin">({{row.entity.pauseType}})</span><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor left-margin" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queueId" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queueId)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.mailQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_mail_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/mail/realtime/view/agent/queue.modal.add.html",controller:"MailRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.mailQueues,function(b){return _.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})?!0:!1})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.mailQueues,function(a){return _.includes(b.queues,a.id)}),channel:"mail",data1:e,data3:b.queues.join(","),data4:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"mail",data1:a,data3:b,data4:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/mail/realtime/view/agent/agent.modal.info.html",controller:"MailRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/mail/realtime/view/agent/agent.html",controller:"MailRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewQueueCtrl",["$scope","$http","socket","MailQueue","Agent",function(a,b,c,d,e){a.initQueues=function(){a.gridOptions={enableSorting:!1,enableFiltering:!0,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,showTreeExpandNoChildren:!1,columnDefs:[{name:"queueName",displayName:"Queue"},{name:"fullname",displayName:"Agent",cellClass:"text-center"},{name:"online",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><i data-ng-if="row.entity.online != null" class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i></div>'},{name:"chatPause",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><i data-ng-if=\"row.entity.mailPause != null\" data-ng-class=\"row.entity.mailPause ? 'icon-control-pause font-red' : 'icon-control-play font-green'\"></i></div>"},{name:"pauseType",cellClass:"text-center",cellTemplate:'<span data-ng-if="row.entity.mailPause">{{row.entity.pauseType}}</span>'},{name:"lastLoginAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><time data-ng-if="row.entity.agentName" is="relative-time" datetime="{{row.entity.lastLoginAt}}">April 1, 2014</time></div>'}],onRegisterApi:function(b){a.gridApi=b,a.gridApi.treeBase.on.rowExpanded(a,function(b){var c=_.findIndex(a.gridOptions.data,{$$hashKey:b.entity.$$hashKey});b.entity.Users&&b.entity.Users.forEach(function(b){_.find(a.gridOptions.data,{name:b.name})||a.gridOptions.data.splice(c+1,0,b)})})}},d.get(function(b){a.gridOptions.data=[],b.rows.forEach(function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b),b.Users&&b.Users.forEach(function(b){b.agentName=b.name,a.gridOptions.data.push(b)})}),c.socket.on("agent:save",function(b){var c=_.filter(a.gridOptions.data,{agentName:b.name});c.forEach(function(a){a.online=b.online,a.lastLoginAt=b.lastLoginAt})}),c.socket.on("mail_queue:save",function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b)}),c.socket.on("mail_queue:remove",function(b){_.remov(a.gridOptions.data,{queueName:b.name})}),c.socket.on("user_has_mail_queue:save",function(b){var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.MailQueueId});e.get({id:b.UserId}).$promise.then(function(b){a.gridOptions.data.splice(c+1,0,{id:b.id,name:b.name,fullname:b.fullname,agentName:b.name,online:b.online,lastLoginAt:b.lastLoginAt})})["catch"](function(a){console.error(a)})}),c.socket.on("user_has_mail_queue:remove",function(b){for(var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.MailQueueId}),d=c+1;d<a.gridOptions.data.length;d++)a.gridOptions.data[d].id==b.UserId&&a.gridOptions.data.splice(d,1)})},function(a){console.error(a)})},a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initAgents=function(){b.get("/api/report/mails").success(function(b){a.agents=b,c.socket.on("report_mail:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_mail:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.queues",{url:"/queues",templateUrl:"app/channels/mail/realtime/view/queue/queue.html",controller:"MailRealtimeViewQueueCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewSessionCtrl",["$scope","$http","socket","uiGridConstants",function(a,b,c,d){a.initSessions=function(){a.gridOptions={enableHorizontalScrollbar:0,enableVerticalScrollbar:0,columnDefs:[{name:"uniqueid",displayName:"",cellClass:"text-center",width:150,enableSorting:!1,enableFiltering:!0},{name:"application",displayName:"APPLICATION_APP",headerCellFilter:"translate",cellClass:"text-center"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center"},{name:"agentname",cellClass:"text-center"},{name:"accountname",displayName:"APPLICATION_ACCOUNT",headerCellFilter:"translate"},{name:"joinAt",displayName:"joinAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.joinAt" is="relative-time" datetime="{{row.entity.joinAt}}">April 1, 2014</time>',sort:{direction:d.DESC,priority:1}},{name:"leaveAt",displayName:"leaveAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.leaveAt" is="relative-time" datetime="{{row.entity.leaveAt}}">April 1, 2014</time>'},{name:"unmanagedAt",displayName:"unmanangedAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.unmanagedAt" is="relative-time" datetime="{{row.entity.unmanagedAt}}">April 1, 2014</time>'}],data:[]},b.get("/api/report/mail/sessions").success(function(b){a.gridOptions.data=b.rows,c.socket.on("report_mail_session:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id}),d=a.gridOptions.data.indexOf(c);c?_.merge(a.gridOptions.data[d],b):a.gridOptions.data.unshift(b)})}).error(function(a){console.error(a)})},a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.sessions",{url:"/sessions",templateUrl:"app/channels/mail/realtime/view/session/session.html",controller:"MailRealtimeViewSessionCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewCtrl",["$scope","$state",function(a,b){a.agents=[{name:"Queues",link:"main.channels.mail.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.mail.realtime.view.agents.timeline"}],a.sessions=[{name:"Sessions",link:"main.channels.mail.realtime.view.sessions"}],a.tree={queues:[{name:"Queues",link:"main.channels.mail.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.mail.realtime.view.agents.timeline"}],sessions:[{name:"Sessions",link:"main.channels.mail.realtime.view.sessions"}]}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view",{url:"/view",templateUrl:"app/channels/mail/realtime/view/view.html",controller:"MailRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").factory("ChanSpy",["$resource",function(a){return a("/api/chanspy/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy",{url:"/chanspy",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChanSpyListCtrl",["$scope","$uibModal","ChanSpy","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"chanspy.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/channels/voice/chanspy/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/channels/voice/chanspy/list/list.create.modal.html",controller:"ChanSpyListCreateCtrl"});c.result.then(function(b){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ChanSpyListCreateCtrl",["$scope","$translate","$uibModalInstance","ChanSpy","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.options=[{name:"APPLICATION_CHANSPY_OPTION_b",value:"b"},{name:"APPLICATION_CHANSPY_OPTION_B",value:"B"},{name:"APPLICATION_CHANSPY_OPTION_E",value:"E"},{name:"APPLICATION_CHANSPY_OPTION_o",value:"o"},{name:"APPLICATION_CHANSPY_OPTION_q",value:"q"},{name:"APPLICATION_CHANSPY_OPTION_s",value:"s"},{name:"APPLICATION_CHANSPY_OPTION_S",value:"S"},{name:"APPLICATION_CHANSPY_OPTION_w",value:"w"},{name:"APPLICATION_CHANSPY_OPTION_W",value:"W"}],a.save=function(){return a.item.options=a.item.options.join(""),d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy.list",{url:"/list",templateUrl:"app/channels/voice/chanspy/list/list.html",controller:"ChanSpyListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChanSpyViewCtrl",["$scope","$translate","$stateParams","xAlert","ChanSpy",function(a,b,c,d,e){a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.options=[{name:"APPLICATION_CHANSPY_OPTION_b",value:"b"},{name:"APPLICATION_CHANSPY_OPTION_B",value:"B"},{name:"APPLICATION_CHANSPY_OPTION_E",value:"E"},{name:"APPLICATION_CHANSPY_OPTION_o",value:"o"},{name:"APPLICATION_CHANSPY_OPTION_q",value:"q"},{name:"APPLICATION_CHANSPY_OPTION_s",value:"s"},{name:"APPLICATION_CHANSPY_OPTION_S",value:"S"},{name:"APPLICATION_CHANSPY_OPTION_w",value:"w"},{name:"APPLICATION_CHANSPY_OPTION_W",value:"W"}],a.getChanSpy=function(){return e.get({id:c.id}).$promise.then(function(b){b.options=b.options.split(""),a.chanspy=b})["catch"](function(a){d.show(a.data.message,"danger")})},a.updateChanSpy=function(){var f=angular.copy(a.chanspy);return f.options=f.options.join(""),e.update({id:c.id},f).$promise.then(function(){d.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy.view",{url:"/view/:id",templateUrl:"app/channels/voice/chanspy/view/view.html",controller:"ChanSpyViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.chanspy.view.settings",{url:"/settings",templateUrl:"app/channels/voice/chanspy/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("VoiceContext",["$resource",function(a){return a("/api/voice/contexts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts",{url:"/contexts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceContextListCtrl",["$scope","VoiceContext","gridOptions","$uibModal","xAlert","$translate",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"voice_contexts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:170,buttons:[{"class":"{{row.entity.defaultEntry ? 'blue-hoki disabled' : 'blue-hoki'}}",href:"/channels/voice/contexts/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var c=d.open({animation:!0,templateUrl:"app/channels/voice/context/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});c.result.then(function(c){return b.save(c).$promise.then(function(){a.gridOptions.getPage(),e.show(f.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){e.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts.list",{url:"/list",templateUrl:"app/channels/voice/context/list/list.html",controller:"VoiceContextListCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceContextViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getContext=function(){b.get("/api/voice/contexts/"+e.id).success(function(b){a.context=b}).error(function(a){console.error(a),f.path("/voice/contexts/list")})},a.updateVoiceContext=function(){var f=angular.copy(a.context);b.put("/api/voice/contexts/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.context=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts.view",{url:"/view/:id",templateUrl:"app/channels/voice/context/view/view.html",controller:"VoiceContextViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.contexts.view.settings",{url:"/settings",templateUrl:"app/channels/voice/context/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceMohListCtrl",["$scope","gridOptions","VoiceMoh","$uibModal","xAlert",function(a,b,c,d,e){a.initView=function(){var d={exporterCsvFilename:"voice_mohs.csv",columnDefs:[{name:"name"},{name:"directory"},{name:"sort"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/voice/mohs/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/voice/moh/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});b.result.then(function(b){return c.save(b).$promise.then(function(){a.gridOptions.getPage()})["catch"](function(a){e.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs.list",{url:"/list",templateUrl:"app/channels/voice/moh/list/list.html",controller:"VoiceMohListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("VoiceMoh",["$resource",function(a){return a("/api/voice/musiconholds/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs",{url:"/mohs",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceMohViewCtrl",["$scope","$http","xAlert","$translate","VoiceMoh","$stateParams","socket","Modal","$sce","$location","Sound",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=d,a.audioSources={},a.sortOptions=[{value:"random",name:"APPLICATION_RANDOM"},{value:"alpha",name:"APPLICATION_ALPHABETICAL"}],a.getMoh=function(){return e.get({id:f.id}).$promise.then(function(b){delete b.stamp,a.moh=b})["catch"](function(a){c.show(a.message,"danger")})},a.updateVoiceMoh=function(){return console.log("update"),e.update({id:f.id},a.moh).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){c.show(a.message,"danger")})},a.addMohs=function(){return e.save({id:f.id,controller:"files"},a.item).$promise.then(function(){j.path("/channels/voice/mohs/view/"+f.id+"/audios")})["catch"](function(a){c.show(a.message,"danger")})},a.getAudioFiles=function(){return e.get({id:f.id,controller:"files"}).$promise.then(function(b){a.audioFiles=b.files,a.mohPath=b.path,a.audioFiles.forEach(function(a){l(a)})})["catch"](function(a){c.show(a.message,"danger")})},a.getSecureSrc=function(a){return i.trustAsResourceUrl(a)},a.getSounds=function(){return a.item={sounds:[]},k.get().$promise.then(function(b){a.soundList=b.rows})["catch"](function(a){c.show(a.message,"danger")})};var l=function(c){b.get("/api/voice/musiconholds/stream",{params:{path:encodeURI(a.mohPath+"/"+c)}}).success(function(b){a.audioSources[c]="data:audio/ogg;base64,"+b}).error(function(a){console.error(a)})};a.deleteItem=h.confirm["delete"](function(e){b["delete"]("/api/voice/musiconholds/"+f.id+"/files",{params:{filename:e}}).success(function(){_.remove(a.audioFiles,function(a){return a===e}),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs.view",{url:"/view/:id",templateUrl:"app/channels/voice/moh/view/view.html",controller:"VoiceMohViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.mohs.view.settings",{url:"/settings",templateUrl:"app/channels/voice/moh/view/view.settings.html"}).state("main.channels.voice.mohs.view.audios",{url:"/audios",templateUrl:"app/channels/voice/moh/view/view.audios.html",cache:!1}).state("main.channels.voice.mohs.view.add",{url:"/add",templateUrl:"app/channels/voice/moh/view/view.addFiles.html",cache:!1})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCtrl",["$scope","$rootScope","VoiceQueue","gridOptions","$uibModal",function(a,b,c,d,e){a.initView=function(){var b={exporterCsvFilename:"voice_queues.csv",primaryKey:"name",columnDefs:[{name:"name"},{name:"strategy"},{name:"description"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/channels/voice/queues/view/{{row.entity.name}}/settings",name:"settings"},{"class":"green-meadow",href:"/channels/voice/queues/view/{{row.entity.name}}/agents",name:"agents"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.name)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var b=e.open({animation:!0,templateUrl:"app/channels/voice/queue/list/list.create.modal.html",controller:"VoiceQueueListCreateCtrl"});b.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","VoiceQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues.list",{url:"/list",templateUrl:"app/channels/voice/queue/list/list.html",controller:"VoiceQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","VoiceQueue","VoiceContext","Team",function(a,b,c,d,e,f,g,h,i,j){a.penalty=0,a.binaryChoices=[{name:"Yes",value:1},{name:"No",value:0}],a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.monitorFormats=[{name:"wav",value:"wav"},{name:"gsm",value:"gsm"},{name:"Inactive",value:""}],a.queueAnnounces=[{display_name:"Default",value:null},{display_name:"Disabled",value:""}];var k=function(){return{select:function(b){return h.save({id:a.queue.name,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})},deselect:function(b){return h["delete"]({id:a.queue.name,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})}}};a.getQueue=function(){return h.get({id:e.id}).$promise.then(function(b){b.joinempty=""===b.joinempty?[]:b.joinempty.split(","),b.leavewhenempty=""===b.leavewhenempty?[]:b.leavewhenempty.split(","),b.periodic_announce=""===b.periodic_announce?[]:b.periodic_announce.split(","),b.penalty=0,a.queue=b})["catch"](function(a){g.path("/channels/voice/queues/list")})},a.updateVoiceQueue=function(){var b=angular.copy(a.queue);return b.joinempty=b.joinempty.join(","),b.leavewhenempty=b.leavewhenempty.join(","),b.periodic_announce=b.periodic_announce.join(","),b.context||(b.context=null),h.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(d.instant(a.data.message),"danger")})},a.getTeams=function(){return j.get().$promise.then(function(b){return a.teams=b.rows,h.query({id:e.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindQueue(a.teams,_.map(b,function(a){return{id:a.id,penalty:a.UserHasVoiceQueue.penalty}}),k)})["catch"](function(a){console.error(a)})},a.getContexts=function(){return i.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){c.show(d.instant(data.message),"danger")})},a.getMohs=function(){b.get("/api/voice/musiconholds").success(function(b){a.voiceMohs=b.rows,f.syncUpdates("voice_musiconhold",a.voiceMohs)}).error(function(a){c.show(a.message,"danger")})},a.getSounds=function(){b.get("/api/sounds").success(function(b){a.queueAnnounces=a.queueAnnounces.concat(b),a.periodicAnnounces=angular.copy(b.rows),b.rows.unshift({display_name:"None",converted_path:null,value:""}),a.sounds=b.rows,f.syncUpdates("sound",a.sounds)}).error(function(a){console.error(a)})},a.returnAnnouncePath=function(a){
-return a.converted_path?a.converted_path+"/"+a.save_name:null===a.value?null:a.value}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues.view",{url:"/view/:id",templateUrl:"app/channels/voice/queue/view/view.html",controller:"VoiceQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.queues.view.settings",{url:"/settings",templateUrl:"app/channels/voice/queue/view/view.settings.html"}).state("main.channels.voice.queues.view.agents",{url:"/agents",templateUrl:"app/channels/voice/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").factory("VoiceQueue",["$resource",function(a){return a("/api/voice/queues/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","VoiceQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.voicePause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].status=b.status,a.gridOptions.data[d].statusAt=b.statusAt,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_voice_queue:save",function(b){console.log("updated queue",b);var c=_.find(a.gridOptions.data,{agentId:b.UserId,queue:b.queue});if(!c&&b.logged){console.log("not found queue and logged");var d=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),e=a.gridOptions.data.indexOf(d);a.gridOptions.data.splice(e+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,agent:b.membername,callstaken:b.callstaken?b.callstaken:0,online:d.online})}else c&&!b.logged?(console.log("found item and not logged"),_.remove(a.gridOptions.data,{agentId:b.UserId,queue:b.queue})):c&&b.logged&&(console.log("found item and logged"),c.callstaken=b.callstaken?b.callstaken:0)}),e.socket.on("user_has_voice_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queue:b.queue})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.voicePause,pauseType:b.pauseType,status:b.status||"UNKNOWN",statusAt:b.statusAt,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.VoiceQueues.forEach(function(c){c.UserHasVoiceQueue.logged&&a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,agent:b.name,callstaken:c.UserHasVoiceQueue.callstaken?c.UserHasVoiceQueue.callstaken:0,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.voiceQueues=b.rows,e.syncUpdates("voice_queue",a.voiceQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.voiceQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"status",displayName:"APPLICATION_PHONE_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div data-ng-if=\"row.entity.isAgent\">{{'APPLICATION_'+row.entity.status | translate}} <span data-ng-if=\"row.entity.statusAt && (row.entity.status === 'BUSY' || row.entity.status === 'ONHOLD' || row.entity.status === 'INUSE')\">(<timer start-time=\"grid.appScope.moment(row.entity.statusAt).unix()*1000\">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></span></div>",filter:{type:m.filter.SELECT,selectOptions:[{value:"UNKNOWN",label:d.instant("APPLICATION_UNKNOWN")},{value:"NOT_INUSE",label:d.instant("APPLICATION_NOT_INUSE")},{value:"INUSE",label:d.instant("APPLICATION_INUSE")},{value:"BUSY",label:d.instant("APPLICATION_BUSY")},{value:"INVALID",label:d.instant("APPLICATION_INVALID")},{value:"UNAVAILABLE",label:d.instant("APPLICATION_UNAVAILABLE")},{value:"RINGING",label:d.instant("APPLICATION_RINGING")},{value:"RINGINUSE",label:d.instant("APPLICATION_RINGINUSE")},{value:"ONHOLD",label:d.instant("APPLICATION_ONHOLD")}]}},{name:"voicePause",width:300,displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.pause != null && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><timer data-ng-if="row.entity.pause" start-time="grid.appScope.moment(row.entity.lastPauseAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span><span data-ng-if="row.entity.pause" class="left-margin">({{row.entity.pauseType}})</span><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor left-margin" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"callstaken",displayName:"APPLICATION_CALLS_TAKEN",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.callstaken !== null">{{row.entity.callstaken}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1,width:100},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queue" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queue)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.voiceQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_voice_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/voice/realtime/view/agent/queue.modal.add.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.voiceQueues,function(b){return _.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})?!0:!1})}}});g.result.then(function(a){return i.save({name:"QueueAdd",agent:e,queues:a.queues,channel:"voice",data1:e,data3:a.queues.join(","),data4:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queue:b,channel:"voice",data1:a,data3:b,data4:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/voice/realtime/view/agent/agent.modal.info.html",controller:"VoiceRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/voice/realtime/view/agent/agent.html",controller:"VoiceRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_agent")}),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.agents=[],b.get("/api/report/agents").success(function(b){a.agents=b,c.syncUpdates("report_agent",a.agents)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewAgentReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_queue")}),a.conf={queuesByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.queues=[],b.get("/api/report/queues").success(function(b){console.log(b),a.queues=b,c.syncUpdates("report_queue",a.queues)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewQueueReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueuePauseModalCtrl",["$scope","$uibModalInstance","items","data",function(a,b,c,d){a.items=c,a.data=d,console.log(d),a.selected={item:a.items[0],queue:_.isArray(d)?a.data[0].queue:a.data.queue,membername:_.isArray(d)?a.data[0].membername:a.data.membername,"interface":_.isArray(d)?a.data[0]["interface"]:a.data["interface"]},a.ok=function(c,e){var f;_.isArray(d)?(f=[],d.forEach(function(b){f.push({action:"QueuePause",queue:b.queue,membername:b.membername,"interface":b["interface"],paused:c,reason:a.selected.item})})):f={action:"QueuePause",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],paused:c,reason:a.selected.item},b.close(f)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueCtrl",["$scope","$http","$log","$uibModal","$translate","socket","xAlert",function(a,b,c,d,e,f,g){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){f.unsyncUpdates("user_has_voice_queue")}),a.groups=[],a.pauses=["pausa1","pausa2","pausa3"],a.pause=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/channels/voice/realtime/view/queue/pause.modal.html",controller:"VoiceRealtimeViewQueuePauseModalCtrl",resolve:{items:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.add=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/channels/voice/realtime/view/queue/queue.modal.add.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){console.log("action",a),b.post("/api/voice/user_has_queues",a).then(function(){a.login?b.post("/api/ami",a).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")}),console.log(a)},function(){c.info("Modal dismissed at: "+new Date)})},a.remove=function(a,f){var h=d.open({animation:!0,size:a,templateUrl:"app/channels/voice/realtime/view/queue/queue.modal.remove.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return null},data:function(){return f}}});h.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initQueues=function(){b.get("/api/voice/user_has_queues").success(function(b){a.queues=b,a.groups=_.map(_.groupBy(a.queues,"queue"),function(a,b){return{queue:b,agents:a}}),console.log("ok"),f.socket.on("user_has_voice_queue:save",function(b){console.log("item",b);var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}}),f.socket.on("user_has_voice_queue:remove",function(b){var c=_.find(a.groups,{queue:b.queue});_.remove(c.agents,{membername:b.membername}),c.agents.length||_.remove(a.groups,{queue:b.queue})}),f.socket.on("report_agent:save",function(b){var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueQueueModalCtrl",["$scope","$uibModalInstance","$http","pauses","data",function(a,b,c,d,e){a.initAdd=function(){a.data=e,a.pauses=d,a.selected={penalty:0,paused:!1,reason:a.pauses[0]},a.$watch("selected.agent",function(b){b&&(a.selected.membername=b.name,a.selected["interface"]="SIP/"+b.name,a.selected.UserId=b.id)}),c.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=_.reject(b.rows,function(b){return _.find(a.data,{membername:b.name})?!0:!1}),a.selected.queue=a.data[0]?a.data[0].queue:null}).error(function(a){console.error(a)})},a.initRemove=function(){a.data=e,console.log(e),_.isArray(e)?a.selected={queue:a.data[0].queue,logout:!1}:a.selected={membername:a.data.membername,"interface":a.data["interface"],queue:a.data.queue,logout:!1,UserId:a.data.UserId}},a.okAdd=function(){var c={action:"QueueAdd",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],penalty:a.selected.penalty,paused:a.selected.paused,UserId:a.selected.UserId};c.paused&&(c.reason=a.selected.reason),b.close(c)},a.okRemove=function(){var c;_.isArray(a.data)?(c=[],a.data.forEach(function(b){c.push({action:"QueueRemove",queue:b.queue,"interface":b["interface"],logout:a.selected.logout,UserId:b.UserId})})):c={action:"QueueRemove",queue:a.selected.queue,logout:a.selected.logout,"interface":a.selected["interface"],UserId:a.selected.UserId},b.close(c)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"View1",link:"main.channels.voice.realtime.view.agents"},{name:"View2",link:"main.channels.voice.realtime.view.areports"}],a.queues=[{name:"View1",link:"main.channels.voice.realtime.view.queues"},{name:"View2",link:"main.channels.voice.realtime.view.qreports"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view",{url:"/view",templateUrl:"app/channels/voice/realtime/view/view.html",controller:"VoiceRealtimeViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRecordingListCtrl",["$scope","$translate","$sce","Recording","gridOptions","xAlert","uiGridConstants",function(a,b,c,d,e,f,g){a.Recording=d;a.updateRating=function(a,c){d.patch({id:a,rating:c}).$promise.then(function(){f.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.initView=function(){var b={exporterCsvFilename:"recordings.csv",rowHeight:30,columnDefs:[{name:"uniqueid"},{name:"calleridnum"},{name:"calleridname"},{name:"connectedlinenum"},{name:"connectedlinename"},{name:"rating",filter:{type:g.filter.SELECT,selectOptions:[{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"},{value:4,label:"4"},{value:5,label:"5"}]},cellClass:"ui-grid-vcenter",width:"100",cellTemplate:'<div><uib-rating data-ng-model="row.entity.rating" data-ng-click="grid.appScope.updateRating(row.entity.uniqueid, row.entity.rating)" aria-labelledby="default-rating"></uib-rating></div>'},{name:"audio",displayName:"",width:225,enableSorting:!1,enableFiltering:!1,buttons:[{directive:'<audio-file-download params="{id:row.entity.uniqueid,controller:\'stream\'}" resource="grid.appScope.Recording"></audio-file-download>'}]},{name:"action",width:150,buttons:[{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.uniqueid, row.entity.uniqueid)"},{directive:'<motion-file-download params="{id:row.entity.uniqueid,controller:\'stream\'}" resource="grid.appScope.Recording" mimetype="audio/wav" btnclass="btn btn-xs blue-hoki" filename="row.entity.uniqueid+\'.wav\'"></motion-file-download>'}]}]};a.gridOptions=e.gridOptions(d,b,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.recordings.list",{url:"/list",templateUrl:"app/channels/voice/recording/list/list.html",controller:"VoiceRecordingListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Recording",["$resource",function(a){return a("/api/voice/recordings/:id/:controller",{id:"@id"},{update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.recordings",{url:"/recordings",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound",{url:"/inbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCreateCtrl",["$scope","$uibModalInstance","Route","application","xAlert","$location","$translate",function(a,b,c,d,e,f,g){a.$application=d.application,a.forms={route:void 0},a.item={type:"inbound",appdata:"Inbound Call",context:"from-voip-provider"},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),f.path("/channels/voice/routes/inbound/view/"+a.id+"/applications")})["catch"](function(a){console.log(a),e.show(g.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"InboundRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_PHONE_NUMBER"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.Applications.length"><span data-ng-repeat="app in row.entity.Applications | limitTo:2">{{app.app}}({{app.appdata[0]}}), </span>...</div><div data-ng-if="!row.entity.Applications.length">{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/inbound/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"inbound"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/inbound/list/create.modal.html",controller:"VoiceRouteInboundListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound.list",{url:"/list",templateUrl:"app/channels/voice/route/inbound/list/list.html",controller:"VoiceRouteInboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundViewCtrl",["$scope","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval","Route","VoiceQueue","Sound","SquareProject","VoiceContext","Interval","VoiceMail",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){function r(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function s(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=b,a.$application=i.application,a.$interval=j.interval,a.gridOptions={rowTemplate:'<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.appdata.join(',')}}</div>",enableSorting:!1,enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"action",enableSorting:!1,enableColumnMenu:!1,displayName:"APPLICATION_ACTION",headerCellFilter:"translate",width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openApplication(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteApp(row.entity.app+\' application\', gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()})}},a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={settings:void 0,interval:void 0},a.application={},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.$watch("interval",function(a){a&&r(a)},!0),a.updateSetAppdata=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.application.appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.updateSetAppdataSettings=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.route.Applications[a.selectedApp].appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.$watch("main.app",function(d){if(d){var e,f;switch(c.appId||(a.application={app:d,interval:a.application.interval||"*,*,*,*",appdata:[]}),d){case"Queue":e=l,f=m;break;case"Playback":e=m;break;case"AGI":e=n;break;case"Goto":e=o;break;case"Voicemail":e=q;break;default:e=null,f=null}if(e)return e.get().$promise.then(function(b){a.items=b.rows}).then(function(){return f?f.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){h.show(b.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,e.path(b)},a.getIntervals=function(){return p.get().$promise.then(function(b){a.Intervals=b.rows,d.syncUpdates("interval",a.Intervals)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:c.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications})["catch"](function(a){e.path("/channels/voice/routes/inbound/list")})},a.getApplication=function(){void 0===a.selectedApp&&e.path("/channels/voice/routes/inbound/list");var b=_.find(a.$application.applications,{value:a.route.Applications[a.selectedApp].app});if(a.main.app=b?b.value:"custom","Set"===a.main.app){var c=a.route.Applications[a.selectedApp].appdata[0].split("=");a.application.variable=c[0],a.application.value=c[1]}if(!b){var d=a.route.Applications[a.selectedApp].appdata.join(",");
-a.route.Applications[a.selectedApp].appdata=[d]}s()},a.openApplication=function(b){a.selectedApp=b,e.path("/channels/voice/routes/inbound/view/"+c.id+"/applications/settings")},a.updateRoute=function(d){return a.selectedApp=void 0,a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(a){h.show(b.instant("MESSAGE_WELL_DONE")+"!","success"),d&&e.path("/channels/voice/routes/inbound/view/"+c.id+"/"+d)})["catch"](function(a){console.log(a),h.show(b.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return o.get().$promise.then(function(b){a.voiceContexts=b.rows,d.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.deleteApp=g.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("applications")},a.goNext=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){d.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound.view",{url:"/view/:id",templateUrl:"app/channels/voice/route/inbound/view/view.html",controller:"VoiceRouteInboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.routes.inbound.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/inbound/view/view.settings.html"}).state("main.channels.voice.routes.inbound.view.applications",{url:"/applications",templateUrl:"app/channels/voice/route/inbound/view/view.applications.html"}).state("main.channels.voice.routes.inbound.view.application",{url:"/application",templateUrl:"app/channels/voice/route/view.application.html"}).state("main.channels.voice.routes.inbound.view.applications.settings",{url:"/settings",templateUrl:"app/channels/voice/route/view.applicationSettings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal",{url:"/internal",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCreateCtrl",["$scope","$uibModalInstance","Route","application","$location","$translate","xAlert",function(a,b,c,d,e,f,g){a.$application=d.application,a.forms={route:void 0},a.item={type:"internal",appdata:"Internal Call",context:"from-sip"},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),e.path("/channels/voice/routes/internal/view/"+a.id+"/applications")})["catch"](function(a){g.show(f.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"InternalRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_PHONE_NUMBER"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.Applications.length"><span data-ng-repeat="app in row.entity.Applications | limitTo:2">{{app.app}}({{app.appdata[0]}}),</span>...</div><div data-ng-if="!row.entity.Applications.length">{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/internal/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"internal"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/internal/list/create.modal.html",controller:"VoiceRouteInternalListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal.list",{url:"/list",templateUrl:"app/channels/voice/route/internal/list/list.html",controller:"VoiceRouteInternalListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalViewCtrl",["$scope","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval","Route","VoiceQueue","Sound","SquareProject","VoiceContext","Interval","VoiceMail",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){function r(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function s(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=b,a.selectedApp=void 0,a.$application=i.application,a.$interval=j.interval,a.gridOptions={rowTemplate:'<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.appdata.join(',')}}</div>",enableSorting:!1,enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"action",displayName:"APPLICATION_ACTION",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1,width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openApplication(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteApp(row.entity.app+\' application\', gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()})}},a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={settings:void 0,interval:void 0},a.application={},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.$watch("interval",function(a){a&&r(a)},!0),a.updateSetAppdata=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.application.appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.updateSetAppdataSettings=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.route.Applications[a.selectedApp].appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.$watch("main.app",function(d){if(d){var e,f;switch(c.appId||(a.application={app:d,interval:a.application.interval||"*,*,*,*",appdata:[]}),d){case"Queue":e=l,f=m;break;case"Playback":e=m;break;case"AGI":e=n;break;case"Goto":e=o;break;case"Voicemail":e=q;break;default:e=null,f=null}if(e)return e.get().$promise.then(function(b){a.items=b.rows}).then(function(){return f?f.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){h.show(b.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,e.path(b)},a.getIntervals=function(){return p.get().$promise.then(function(b){a.Intervals=b.rows,d.syncUpdates("interval",a.Intervals)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:c.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications})["catch"](function(a){e.path("/channels/voice/routes/internal/list")})},a.getApplication=function(){console.log(a.selectedApp),void 0===a.selectedApp&&e.path("/channels/voice/routes/internal/list");var b=_.find(a.$application.applications,{value:a.route.Applications[a.selectedApp].app});if(a.main.app=b?b.value:"custom","Set"===a.main.app){var c=a.route.Applications[a.selectedApp].appdata[0].split("=");a.application.variable=c[0],a.application.value=c[1]}if(!b){var d=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[d]}s()},a.openApplication=function(b){a.selectedApp=b,e.path("/channels/voice/routes/internal/view/"+c.id+"/applications/settings")},a.updateRoute=function(d){return a.selectedApp=void 0,a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(a){h.show(b.instant("MESSAGE_WELL_DONE")+"!","success"),d&&e.path("/channels/voice/routes/internal/view/"+c.id+"/"+d)})["catch"](function(a){h.show(b.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return o.get().$promise.then(function(b){a.voiceContexts=b.rows,d.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.deleteApp=g.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("applications")},a.goNext=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){d.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal.view",{url:"/view/:id",templateUrl:"app/channels/voice/route/internal/view/view.html",controller:"VoiceRouteInternalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.routes.internal.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/internal/view/view.settings.html"}).state("main.channels.voice.routes.internal.view.applications",{url:"/applications",templateUrl:"app/channels/voice/route/internal/view/view.applications.html"}).state("main.channels.voice.routes.internal.view.application",{url:"/application",templateUrl:"app/channels/voice/route/view.application.html"}).state("main.channels.voice.routes.internal.view.applications.settings",{url:"/settings",templateUrl:"app/channels/voice/route/view.applicationSettings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCreateCtrl",["$scope","$uibModalInstance","Route","application","xAlert","$translate","$location","Tag",function(a,b,c,d,e,f,g,h){a.$application=d.application,a.forms={route:void 0},a.item={type:"outbound",appdata:"Outbound Call",context:"from-sip"},a.getTags=function(){return h.get().$promise.then(function(b){b.rows.unshift({name:"--"}),a.tags=b.rows})["catch"](function(a){e.show(f.instant(a.data.translatedMessage),"danger")})},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),g.path("/channels/voice/routes/outbound/view/"+a.id+"/routes")})["catch"](function(a){e.show(f.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"OutboundRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_DESTINATION_PATTERN"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.Applications.length"><span data-ng-repeat="app in row.entity.Applications | limitTo:2">{{app.app}}({{app.appdata[0]}}),</span>...</div><div data-ng-if="!row.entity.Applications.length">{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/outbound/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"outbound"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/outbound/list/create.modal.html",controller:"VoiceRouteOutboundListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.outbound.list",{url:"/list",templateUrl:"app/channels/voice/route/outbound/list/list.html",controller:"VoiceRouteOutboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.outbound",{url:"/outbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundViewCtrl",["$scope","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","application","interval","Route","Trunk","VoiceContext","Interval","Tag",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){function p(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function q(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=c,a.$application=i.application,a.$interval=j.interval,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.gridOptions={rowTemplate:'<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",cellClass:"ui-grid-vcenter",cellTemplate:"<div><span data-ng-if=\"row.entity.app === 'Dial'\">Default</span><span data-ng-if=\"row.entity.app !== 'Dial'\">{{row.entity.app}}</span></div>",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.appdata.join(',')}}</div>",enableSorting:!1,enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"action",displayName:"APPLICATION_ACTION",enableSorting:!1,enableColumnMenu:!1,headerCellFilter:"translate",width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openApplication(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteApp(row.entity.app+\' application\', gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()})}},a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={info:void 0,interval:void 0},a.application={},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""},a.applications=[{name:"Default",value:"Dial"},{name:"Custom",value:"custom"}]},a.$watch("interval",function(a){a&&p(a)},!0),a.$watch("main.app",function(e){if(e){var f,g;switch(d.appId||(a.application={app:e,interval:a.application.interval||"*,*,*,*",appdata:[]}),e){case"Dial":f=l,g=m;break;default:f=null,g=null}if(f)return f.get().$promise.then(function(b){a.items=b.rows}).then(function(){return g?g.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){b.show(c.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,f.path(b)},a.getIntervals=function(){return n.get().$promise.then(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:d.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications})["catch"](function(a){f.path("/channels/voice/routes/outbound/list")})},a.getApplication=function(){void 0===a.selectedApp&&f.path("/channels/voice/routes/outbound/list");var b=_.find(a.applications,{value:a.route.Applications[a.selectedApp].app});if(a.main.app=b?b.value:"custom",!b){var c=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[c]}q()},a.openApplication=function(b){a.selectedApp=b,f.path("/channels/voice/routes/outbound/view/"+d.id+"/routes/settings")},a.updateRoute=function(e){return a.selectedApp=void 0,a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(a){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),e&&f.path("/channels/voice/routes/outbound/view/"+d.id+"/"+e)})["catch"](function(a){b.show(c.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return m.get().$promise.then(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getTags=function(){return o.get().$promise.then(function(b){b.rows.unshift({name:"--"}),a.tags=b.rows})["catch"](function(a){b.show(c.instant(a.data.translatedMessage),"danger")})},a.deleteApp=h.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("routes")},a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.outbound.view",{url:"/view/:id",templateUrl:"app/channels/voice/route/outbound/view/view.html",controller:"VoiceRouteOutboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.routes.outbound.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/outbound/view/view.settings.html"}).state("main.channels.voice.routes.outbound.view.routes",{url:"/routes",templateUrl:"app/channels/voice/route/outbound/view/view.routes.html"}).state("main.channels.voice.routes.outbound.view.route",{url:"/route",templateUrl:"app/channels/voice/route/outbound/view/view.route.html"}).state("main.channels.voice.routes.outbound.view.routes.settings",{url:"/settings",templateUrl:"app/channels/voice/route/outbound/view/view.routeSettings.html"})}]),angular.module("xCallyShuttleApp").factory("Route",["$resource",function(a){return a("/api/voice/extensions/:id",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes",{url:"/routes",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice",{url:"/voice",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailListCtrl",["$scope","VoiceMail","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"voice_mails.csv",primaryKey:"uniqueid",columnDefs:[{name:"mailbox"},{name:"fullname"},{name:"email"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/voice/voicemails/view/{{row.entity.uniqueid}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.mailbox, row.entity.uniqueid)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.list",{url:"/list",templateUrl:"app/channels/voice/voicemail/list/list.html",controller:"VoiceVoicemailListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailViewCtrl",["$scope","VoiceMail","VoiceMailMessage","VoiceContext","$http","xAlert","$translate","$stateParams","socket","$sce","Modal","$location","gridOptions",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){var b={exporterCsvFilename:"voice_mail_messages.csv",primaryKey:"id",columnDefs:[{name:"callerid"},{name:"stamp",displayName:"APPLICATION_DATE",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{grid.appScope.moment(row.entity.stamp).format('YYYY-MM-DD HH:mm:ss')}}</div>"},{name:"duration",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.duration*1000 | date:'mm:ss'}}</div>"},{name:"audio",displayName:"",width:225,enableSorting:!1,enableFiltering:!1,buttons:[{directive:'<audio-file-download params="{id:row.entity.id,controller:\'download\'}" resource="grid.appScope.VoiceMailMessage"></audio-file-download>'}]},{name:"action",width:150,buttons:[{directive:'<motion-file-download params="{id:row.entity.id,controller:\'download\'}" resource="grid.appScope.VoiceMailMessage" mimetype="audio/wav" btnclass="btn btn-xs blue-hoki" filename="row.entity.msg_id+\'.wav\'"></motion-file-download>'},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.id, row.entity.id)"}]}]};a.gridOptions=m.gridOptions(c,b,a,{mailbox:a.voicemail.mailbox,context:a.voicemail.context})}a.moment=moment,a.VoiceMailMessage=c,a.getVoicemail=function(){return b.get({id:h.uniqueid}).$promise.then(function(b){delete b.password,delete b.stamp,a.voicemail=b})["catch"](function(a){l.path("/voice/voicemails/list")})},a.updateVoiceVoicemail=function(){return b.update({id:h.uniqueid},a.voicemail).$promise.then(function(){f.show(g.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(g.instant(a.message),"danger")})},a.getContexts=function(){return d.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){f.show(a.message,"danger")})},a.getMessages=function(){return a.voicemail?void n():b.get({id:h.uniqueid}).$promise.then(function(b){delete b.password,delete b.stamp,a.voicemail=b,n()})["catch"](function(a){l.path("/voice/voicemails/view/"+h.uniqueid+"/settings")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.view",{url:"/view/:uniqueid",templateUrl:"app/channels/voice/voicemail/view/view.html",controller:"VoiceVoicemailViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.voicemails.view.settings",{url:"/settings",templateUrl:"app/channels/voice/voicemail/view/view.settings.html"}).state("main.channels.voice.voicemails.view.messages",{url:"/messages",templateUrl:"app/channels/voice/voicemail/view/view.messages.html"})}]),angular.module("xCallyShuttleApp").factory("VoiceMail",["$resource",function(a){return a("/api/voice/voicemails/:id/:controller",{uniqueid:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails",{url:"/voicemails",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("VoiceMailMessage",["$resource",function(a){return a("/api/voice/voicemails/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailWizardCtrl",["$scope","VoiceMail","xAlert","WizardHandler","$location","Setting",function(a,b,c,d,e,f){a.initWizard=function(){a.form={},a.item={context:"from-voicemail"}},a.next=function(){d.wizard().next()},a.previous=function(){d.wizard().previous()},a.exitValidation=function(a){return a},a.getFirstFreeMailbox=function(){f.get({controller:"mailbox"}).$promise.then(function(b){a.item.mailbox=b.value})["catch"](function(a){c.show(a.data.message,"danger")})},a.createItem=function(){return a.item.customer_id=a.item.mailbox,b.save(a.item).$promise.then(function(){e.path("/channels/voice/voicemails/list")})["catch"](function(a){c.show(data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.wizard",{url:"/wizard",templateUrl:"app/channels/voice/voicemail/wizard/wizard.html",controller:"VoiceVoicemailWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("Company",["$resource",function(a){return a("/api/contactmanager/companies/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies",{url:"/companies",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("CompanyListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerCompanyListCtrl",["$scope","$http","$translate","xAlert","Modal","$uibModal","$log","Company","gridOptions","$location",function(a,b,c,d,e,f,g,h,i,j){a.initView=function(){var b={exporterCsvFilename:"Companies.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",name:"profile",href:"/contactmanager/companies/view/{{row.entity.id}}/settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var a=f.open({animation:!0,templateUrl:"app/contactmanager/company/list/create.modal.html",controller:"CompanyListCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/companies",a).then(function(a){j.path("/contactmanager/companies/view/"+a.id+"/settings")})["catch"](function(a){d.show(a.data.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.list",{url:"/list",templateUrl:"app/contactmanager/company/list/list.html",controller:"ContactManagerCompanyListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ContactManagerCompanyViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getCompany=function(){b.get("/api/contactmanager/companies/"+e.id).success(function(b){a.company=b}).error(function(a){f.path("/contactmanager/companies/list")})},a.updateCompany=function(){var f=angular.copy(a.company);b.put("/api/contactmanager/companies/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),
-a.company=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.view",{url:"/view/:id",templateUrl:"app/contactmanager/company/view/view.html",controller:"ContactManagerCompanyViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.contactmanager.companies.view.settings",{url:"/settings",templateUrl:"app/contactmanager/company/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("Contact",["$resource",function(a){return a("/api/contactmanager/contacts/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts",{url:"/contacts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerListImportModalCtrl",["$scope","$uibModalInstance","indexes","csv","xAlert","socket","$http",function(a,b,c,d,e,f,g){function h(b){if(b>=a.csvLength||a.stopped)return void(a.importing=!1);var c={Phones:[],Emails:[],customFields:{}};_.forOwn(a.item,function(e,f){switch(f){case"Phones":a.item.Phones.forEach(function(a){""!==d[b][a]&&c.Phones.push({phone:d[b][a]})});break;case"Emails":a.item.Emails.forEach(function(a){""!==d[b][a]&&c.Emails.push({email:d[b][a]})});break;case"customFields":_.forOwn(a.item.customFields,function(a,e){c.customFields[e]=d[b][a]});break;case"tags":c.tags=[],a.item.tags.forEach(function(a){""!==d[b][a]&&c.tags.push(d[b][a])});break;default:c[f]=d[b][e]}}),c.tags=c.tags?c.tags.join(","):void 0,_.forOwn(c.customFields,function(a,b){""===a&&delete c.customFields[b]}),c.ServiceId=a.item.ServiceId,c.CompanyId=a.item.CompanyId||null,g.post("/api/contactmanager/contacts",c).success(function(c){a["import"].success+=i,a["import"].succeeded+=1,h(b+1)}).error(function(c){a["import"].fail+=i,a["import"].failed+=1,h(b+1)})}a.indexes=c,a.importing=!1,a.submitted=!1,a.stopped=!1,a["import"]={success:0,fail:0,succeeded:0,failed:0},a.csvLength=d.length;var i=100/a.csvLength;a.forms={dashboard:void 0},a.item={},a.start=function(){a.importing=!0,a.submitted=!0,h(0)},a.getServices=function(){g.get("/api/contactmanager/services/").success(function(b){a.services=b.rows,a.item.ServiceId=1,a.getCustomFields()}).error(function(a){e.show($translate.instant(a.message)+"!","danger")})},a.getCustomFields=function(){g.get("/api/contactmanager/services/"+a.item.ServiceId+"/customfields").success(function(b){a.customFields=b,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),f.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),f.socket.on("custom_field:save",function(b){if(b.ServiceId===a.item.ServiceId){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}})}).error(function(a){console.error(a),e.show(a.message,"danger")})},a.close=function(){b.close()},a.stop=function(){a.stopped=!0}}]),angular.module("xCallyShuttleApp").controller("ContactManagerContactListCtrl",["$scope","$translate","Modal","FileUploader","Papa","$uibModal","$log","Contact","gridOptions",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"Contacts.csv",columnDefs:[{name:"fullname"},{name:"Service.name",displayName:"APPLICATION_SERVICE",field:"Service.name",enableSorting:!1,enableFiltering:!1},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",name:"profile",onClick:"grid.appScope.openContactTab(row.entity)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},d.FileSelect.prototype.isEmptyAfterSelection=function(){return!0};var j=a.uploader=new d({queueLimit:1,clearInputAfterAddedToQueue:!0});j.onAfterAddingFile=function(b){console.log("fileadded"),e.parse(b._file,{header:!0,complete:function(b){a.uploader.clearQueue(),a["import"](b.data)},error:function(a){console.log(a)}})},a["import"]=function(b){var c=f.open({animation:!0,size:"lg",backdrop:"static",keyboard:!1,templateUrl:"app/contactmanager/contact/list/import.modal.html",controller:"ContactManagerListImportModalCtrl",resolve:{indexes:function(){return _.keys(b[0])},csv:function(){return b}}});c.result.then(function(b){a.initView()},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts.list",{url:"/list",templateUrl:"app/contactmanager/contact/list/list.html",controller:"ContactManagerContactListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager",{url:"/contactmanager",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceListCtrl",["$scope","$http","$translate","Modal","xAlert","$uibModal","$log","Service","gridOptions",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"Services.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",name:"profile",href:"/contactmanager/services/view/{{row.entity.id}}/settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var a=f.open({animation:!0,templateUrl:"app/contactmanager/service/list/create.modal.html",controller:"ContactManagerServiceListCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/services/",a).then(function(a){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.services.list",{url:"/list",templateUrl:"app/contactmanager/service/list/list.html",controller:"ContactManagerServiceListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Service",["$resource",function(a){return a("/api/contactmanager/services/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.services",{url:"/services",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceCustomFieldViewCreateModalCtrl",["$scope","$uibModalInstance","$translate",function(a,b,c){a.$translate=c,a.forms={dashboard:void 0},a.item={},a.choices=[{value:""}],a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)},a.types=[{name:"APPLICATION_TEXT",value:"text"},{name:"APPLICATION_SELECT",value:"select"}],a.ok=function(){"select"===a.item.type&&(a.item.values=angular.toJson(a.choices)),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","$uibModal","$log","Modal",function(a,b,c,d,e,f,g,h,i,j){var k=function(){return{select:function(c){b.post("/api/contactmanager/services/"+a.service.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/contactmanager/services/"+a.service.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getService=function(){b.get("/api/contactmanager/services/"+e.id).success(function(b){a.service=b}).error(function(a){console.error(a),g.path("/contactmanager/services/list")})},a.updateService=function(){var f=angular.copy(a.service);b.put("/api/contactmanager/services/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.service=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/contactmanager/user_has_services",method:"GET",params:{service:a.service.id}}).success(function(b){ComponentsDropdowns.bindQueue(a.teams,_.map(b,"UserId"),k)})}).error(function(a){console.error(a)})},a.getServiceCustomFields=function(){b.get("/api/contactmanager/services/"+e.id+"/customfields").success(function(b){a.customFields=b,f.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),f.socket.on("custom_field:save",function(b){if(b.ServiceId===e.id){var c=_.find(a.customFields,{id:b.id});c||a.customFields.push(b)}})}).error(function(a){console.error(a),g.path("/contactmanager/services/view/"+e.id+"/settings")})},a.create=function(){var a=h.open({animation:!0,templateUrl:"app/contactmanager/service/view/create.modal.html",controller:"ContactManagerServiceCustomFieldViewCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/services/"+e.id+"/customfields/",a).then(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})},function(){i.info("Modal dismissed at: "+new Date)})},a.deleteItem=j.confirm["delete"](function(a){b["delete"]("/api/contactmanager/services/customfields/"+a).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(a.message,"danger")})}),a.getCustomField=function(){b.get("/api/contactmanager/services/customfields/"+e.cfId).success(function(b){a.customField=b,"select"===a.customField.type&&(a.choices=JSON.parse(a.customField.values))}).error(function(a){console.error(a),g.path("/contactmanager/customfields/list")})},a.updateCustomField=function(){"select"===a.customField.type&&(a.customField.values=angular.toJson(a.choices));var f=angular.copy(a.customField);b.put("/api/contactmanager/services/customfields/"+e.cfId,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.customField=f})},a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.services.view",{url:"/view/:id",templateUrl:"app/contactmanager/service/view/view.html",controller:"ContactManagerServiceViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.contactmanager.services.view.settings",{url:"/settings",templateUrl:"app/contactmanager/service/view/view.settings.html"}).state("main.contactmanager.services.view.agents",{url:"/agents",templateUrl:"app/contactmanager/service/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}}).state("main.contactmanager.services.view.customfields",{url:"/customfields",templateUrl:"app/contactmanager/service/view/view.customFields.html"}).state("main.contactmanager.services.view.customfields.settings",{url:"/settings/:cfId",templateUrl:"app/contactmanager/service/view/view.customFieldSettings.html",controller:"ContactManagerServiceViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("DashboardCtrl",["$scope","$translate",function(a,b){a.voice=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.voice"}],a.mail=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.mail"}]}]),angular.module("xCallyShuttleApp").factory("Dashboard",["$resource",function(a){return a("/api/dashboards/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.dashboard",{"abstract":!0,url:"/dashboard",templateUrl:"app/dashboard/dashboard.html",controller:"DashboardCtrl"}).state("main.dashboard.voice",{url:"/voice",controller:"DashboardVoiceCtrl",templateUrl:"app/dashboard/voice/voice.html"}).state("main.dashboard.mail",{url:"/mail",controller:"DashboardMailCtrl",templateUrl:"app/dashboard/mail/mail.html"})}]),angular.module("xCallyShuttleApp").controller("DashboardMailCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").controller("DashboardVoiceCtrl",["$scope","$http","xAlert","socket",function(a,b,c,d){function e(b,c){var d;return!b.queuecallerjoinAt||b.queuecallerleaveAt||b.queuecallercompleteAt||b.queuecallerabandonAt?b.queuecallerjoinAt&&b.queuecallerleaveAt&&!b.queuecallercompleteAt&&!b.queuecallerabandonAt?d="activeCalls":b.queuecallerjoinAt&&b.queuecallerleaveAt&&b.queuecallercompleteAt&&!b.queuecallerabandonAt?d="completedCalls":b.queuecallerjoinAt&&b.queuecallerleaveAt&&!b.queuecallercompleteAt&&b.queuecallerabandonAt&&(d="abandonedCalls"):d="waitCalls",c?d:void(d&&a.queueStats[d]++)}a.queueStats={abandonedCalls:0,completedCalls:0,waitCalls:0,activeCalls:0},a.getQueueStats=function(){b.get("/api/report/queues").then(function(b){a.queueReports=b.data,a.queueReports.forEach(function(a){e(a,!1)}),d.socket.on("report_queue:save",function(b){console.log("report save or update");var c=_.find(a.queueReports,{id:b.id}),d=a.queueReports.indexOf(c);if(c){console.log("found item, is an update");var f=e(c,!0);console.log("old item value is "+f+", decrementing..."),f&&a.queueStats[f]--,_.merge(a.queueReports[d],b)}else console.log("item not found in collection, is a create"),a.queueReports.unshift(b);console.log("checking new item type and increasing..."),e(b,!1)})})["catch"](function(a){c.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk",{url:"/desk",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("DeskAccount",["$resource",function(a){return a("/api/desk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("DeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.map(a.displayedDeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedDeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("desk_account"),b.url="/api/desk/accounts",h.getPage(b).then(function(d){a.displayedDeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedDeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedDeskAccounts.length)}),f.socket.on("desk_account:save",function(){a.initList(b)}),f.socket.on("desk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/desk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/desk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/desk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.list",{url:"/list",templateUrl:"app/desk/list/list.html",controller:"DeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("DeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","desk_com",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){g.unsyncUpdates("desk_configuration"),g.unsyncUpdates("desk_field")}),a.initView=function(){b.get("/api/desk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/desk/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/desk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("desk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.deleteConfiguration=i.confirm["delete"](function(a){b["delete"]("api/desk/configurations/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/desk/configurations",a.configuration).success(function(a){e.path("desk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){h.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/desk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=j.fields.concat(b)}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/desk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,g.socket.on("desk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){h.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/desk/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/desk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/desk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/desk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/desk/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(b.customField=_.result(c,"custom",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.data.choices?c.data.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.view",{url:"/view/:id",templateUrl:"app/desk/view/view.html",controller:"DeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.desk.view.account",{url:"/account",templateUrl:"app/desk/view/view.account.html"}).state("main.desk.view.configurations",{url:"/configurations",templateUrl:"app/desk/view/view.configurations.html"}).state("main.desk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/desk/view/view.configurationSettings.html",controller:"DeskViewCtrl"}).state("main.desk.view.configuration",{url:"/configuration",templateUrl:"app/desk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("DeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/desk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/desk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.wizard",{url:"/wizard",templateUrl:"app/desk/wizard/wizard.html",controller:"DeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk",{url:"/freshdesk",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("FreshdeskAccount",["$resource",function(a){return a("/api/freshdesk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("FreshdeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.map(a.displayedFreshdeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedFreshdeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("freshdesk_account"),b.url="/api/freshdesk/accounts",h.getPage(b).then(function(d){a.displayedFreshdeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedFreshdeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedFreshdeskAccounts.length)}),f.socket.on("freshdesk_account:save",function(){a.initList(b)}),f.socket.on("freshdesk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/freshdesk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/freshdesk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/freshdesk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.list",{url:"/list",templateUrl:"app/freshdesk/list/list.html",controller:"FreshdeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FreshdeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("freshdesk_configuration"),h.unsyncUpdates("freshdesk_field")}),a.initView=function(){b.get("/api/freshdesk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/freshdesk/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/freshdesk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("freshdesk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/freshdesk/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/freshdesk/configurations",a.configuration).success(function(a){e.path("freshdesk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/freshdesk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=[],b=f("freshdesk")(b),_.forEach(b,function(b){a.accountFields.push(b.ticket_field)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/freshdesk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("freshdesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/freshdesk/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/freshdesk/fields/"+a.id,a).success(function(){}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.idField){var c=_.find(a.accountFields,"name",b.idField);c&&(b.customField=!_.result(c,"default",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);return c?c.choices.length>0?c.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.view",{url:"/view/:id",templateUrl:"app/freshdesk/view/view.html",controller:"FreshdeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.freshdesk.view.account",{url:"/account",templateUrl:"app/freshdesk/view/view.account.html"}).state("main.freshdesk.view.configurations",{url:"/configurations",templateUrl:"app/freshdesk/view/view.configurations.html"}).state("main.freshdesk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/freshdesk/view/view.configurationSettings.html",controller:"FreshdeskViewCtrl"}).state("main.freshdesk.view.configuration",{url:"/configuration",templateUrl:"app/freshdesk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("FreshdeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/freshdesk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/freshdesk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.wizard",{url:"/wizard",templateUrl:"app/freshdesk/wizard/wizard.html",controller:"FreshdeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations",{url:"/integrations",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Integration",["$resource",function(a){return a("/api/integrations/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").controller("IntegrationListCtrl",["$scope","Modal","socket","FileUploader","Integration","xAlert",function(a,b,c,d,e,f){
-a.integrationsByPage=10;var g=a.uploader=new d({url:"api/integrations",autoUpload:!0,removeAfterUpload:!0});g.filters.push({name:"zipFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|zip|".indexOf(b)}}),g.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(b.name,"success")},g.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),b.errors.forEach(function(a){f.show(a.message,"danger")})},a.deleteItem=b.confirm["delete"](function(a){e["delete"]({id:a},function(){f.show("Integration Removed","success")},function(a){f.show(a.data.errors,"danger")})}),a.initList=function(){a.integrations=e.query({},function(a){c.syncUpdates("integration",a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations.list",{url:"/list",templateUrl:"app/integration/list/list.html",controller:"IntegrationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty",{url:"/jscripty",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("JscriptyProject",["$resource",function(a){return a("/api/jscripty/projects/:id/:controller/:action/:action2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectListCtrl",["$scope","$uibModal","JscriptyProject","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:300,buttons:[{"class":"blue-hoki",href:"/jscripty/projects/view/{{row.entity.id}}",name:"settings"},{"class":"green",name:"start",onClick:"grid.appScope.openJscriptyTab(row.entity)"},{"class":"purple",href:"/jscripty/projects/report/{{row.entity.id}}/sessions",name:"report"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/jscripty/project/list/list.create.modal.html",controller:"JscriptyProjectListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectListCreateCtrl",["$scope","$translate","$uibModalInstance","JscriptyProject","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){console.log(a),e.show(b.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.list",{url:"/list",templateUrl:"app/jscripty/project/list/list.html",controller:"JscriptyProjectListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectReportCtrl",["$scope","$http","$state","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope","gridOptions","JscriptyProject","$location",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.projectStats={started:0,incomplete:0,completed:0},a.projectId=d.id,a.initView=function(){return l.get({id:d.id,controller:"sessions"}).$promise.then(function(b){a.projectId=d.id,console.log(a.projectId);var c=_.groupBy(b.rows,"status");a.projectStats.started=c.started?c.started.length:0,a.projectStats.completed=c.completed?c.completed.length:0,a.projectStats.incomplete=c.incomplete?c.incomplete.length:0})["catch"](function(a){h.show(a.message,"danger")})},a.getProjectSessions=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"projectId",displayName:"APPLICATION_PROJECTID"},{name:"session_id",displayName:"APPLICATION_SESSIONID"},{name:"createdAt",displayName:"APPLICATION_STARTEDAT"},{name:"completedAt",displayName:"APPLICATION_COMPLETEDAT"},{name:"status",displayName:"APPLICATION_STATUS"},{name:"last_question_id",displayName:"APPLICATION_LASTQUESTIONID"},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/jscripty/projects/report/{{row.entity.projectId}}/session/{{row.entity.session_id}}",name:"Detail"}]}]};a.gridOptions=k.gridOptions(l,b,a,{id:d.id,controller:"sessions"})},a.getSessionDetails=function(){console.log(d.sessionId),b.get("/api/jscripty/projects/"+d.id+"/sessions/"+d.sessionId).success(function(b){a.sessionQuestions=b[0],console.log("session",a.sessionQuestions)})["catch"](function(a){h.show(a.message,"danger")})},a.getQuestionSummary=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"question_id",width:150,displayName:"APPLICATION_QUESTIONID"},{name:"question_type",width:150,displayName:"APPLICATION_QUESTIONTYPE"},{name:"question_label",width:200,displayName:"APPLICATION_QUESTIONLABEL"},{name:"question_text",displayName:"APPLICATION_QUESTION"},{name:"count",width:100,displayName:"APPLICATION_COUNT"}]};a.gridOptions=k.gridOptions(l,b,a,{id:d.id,controller:"questions",action:"summary"})},a.getQuestionDetail=function(){b.get("/api/jscripty/projects/"+d.id+"/questions/detail").success(function(b){var c=_.groupBy(b,"question_id");_.forEach(c,function(a,b){c[b]=_.groupBy(a,"question_label"),_.forEach(c[b],function(a,d){c[b][d]=_.groupBy(a,"question_text")})}),a.questionDetail=c,console.log("detail",a.questionDetail)})["catch"](function(a){h.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.report",{url:"/report/:id",templateUrl:"app/jscripty/project/report/report.html",controller:"JscriptyProjectReportCtrl"}).state("main.jscripty.projects.report.sessions",{url:"/sessions",templateUrl:"app/jscripty/project/report/report.sessions.html"}).state("main.jscripty.projects.report.summary",{url:"/summary",templateUrl:"app/jscripty/project/report/report.summary.html"}).state("main.jscripty.projects.report.detail",{url:"/detail",templateUrl:"app/jscripty/project/report/report.detail.html"}).state("main.jscripty.projects.report.sessionDetail",{url:"/session/:sessionId",controller:"JscriptyProjectReportCtrl",templateUrl:"app/jscripty/project/report/report.session.detail.html"})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectViewCtrl",["$scope","$http","$state","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope",function(a,b,c,d,e,f,g,h,i,j){a.jscriptyProject={},a.getProject=function(){b.get("/api/jscripty/projects/"+d.id).success(function(b){a.jscriptyProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!=a&&-1!=a.indexOf("Script error."));else{var d=new Image;d.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(e){}},b.token=f.getToken();var a=new EditorUi(new Editor);a.openString(b.draft,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}}),e.syncUpdates("jscripty_project",[b],function(a,c,d){c.id===b.id})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.view",{url:"/view/:id",templateUrl:"app/jscripty/project/view/view.html",controller:"JscriptyProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/jscripty/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/jscripty/js/Editor.js","assets/plugins/jscripty/js/Graph.js","assets/plugins/jscripty/js/EditorUi.js","assets/plugins/jscripty/js/Actions.js","assets/plugins/jscripty/js/Menus.js","assets/plugins/jscripty/js/Sidebar.js","assets/plugins/jscripty/js/Toolbar.js","assets/plugins/jscripty/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("LoginCtrl",["$scope","Auth","$location","$window","$rootScope",function(a,b,c,d,e){a.year=moment().year(),a.userLogin={},a.userSignUp={},a.loginSubmitted=!1,a.signupSubmitted=!1,a.errorLogin=!1,a.errorSignup=!1,a.errorLog="",a.flagLogin1=!1,a.toogleLogin=function(){a.flagLogin1=!a.flagLogin1},e.bodyLayout="login",a.$on("$viewContentLoaded",function(){Metronic.init(),Layout.init()}),a.login=function(d){a.loginSubmitted=!0,d.$valid?b.login({name:a.userLogin.name,password:a.userLogin.password,remember:a.userLogin.remember}).then(function(){c.path("/dashboard/voice")})["catch"](function(b){a.errorLog=b.message,a.errorLogin=!0}):a.errorLogin=!0},a.signup=function(d){a.signupSubmitted=!0,d.$valid?b.createUser({email:a.userSignUp.email,fullname:a.userSignUp.fullname,name:a.userSignUp.name,password:a.userSignUp.password,role:a.userSignUp.role,online:!0}).then(function(){c.path("/")})["catch"](function(b){a.errorLog=b.message,a.errorSignup=!0}):a.errorSignup=!0},a.loginOauth=function(a){d.location.href="/auth/"+a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("login",{url:"/login",templateUrl:"app/login/login.html",controller:"LoginCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/login.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Action",["$resource",function(a){return a("/api/actions/:name/:controller",{name:"@name"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").directive("actionBuilderTemplate",["$compile","xAlert","$http","$timeout","Template","$translate",function(a,b,c,d,e,f){return{restrict:"E",scope:{element:"=",form:"="},templateUrl:"app/main/template/actionBuilder/template.actionBuilderTemplate.html",compile:function(c,g){var h,i;return h=c.contents().remove(),function(c,g,j){function k(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}c.randomName=k(),d(function(){return e.get().$promise.then(function(a){c.templates=a.rows})["catch"](function(a){b.show(f.instant(a.message),"danger")})}),i||(i=a(h)),g.append(i(c,function(a){return a}))}}}}]).directive("actionBuilderIntegration",["$compile","xAlert","$http","$timeout","Integration","$translate","ZendeskAccount","DeskAccount","SalesforceAccount","FreshdeskAccount","SugarcrmAccount",function(a,b,c,d,e,f,g,h,i,j,k){return{restrict:"E",scope:{element:"=",form:"="},templateUrl:"app/main/template/actionBuilder/template.actionBuilderIntegration.html",compile:function(c,l){var m,n;return m=c.contents().remove(),function(c,l,o){function p(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}c.randomName=p(),d(function(){return e.get({active:1}).$promise.then(function(a){c.integrations=a.rows,c.element.data1&&q()})["catch"](function(a){b.show(f.instant(a.message),"danger")})});var q=function(){var a;switch(c.element.data1){case"zendesk":a=g;break;case"desk":a=h;break;case"salesforce":a=i;break;case"freshdesk":a=j;break;case"sugarcrm":a=k}return a.get().$promise.then(function(a){c.accounts=a.rows,c.element.data2&&r()})["catch"](function(a){b.show(f.instant(a.message),"danger")})},r=function(){c.configurations=_.find(c.accounts,{id:Number(c.element.data2)}).Configurations};c.changeIntegration=function(){c.element.data2="",q()},c.changeAccount=function(){c.element.data3="",r()},n||(n=a(m)),l.append(n(c,function(a){return a}))}}}}]).directive("actionBuilderStatus",["$compile","xAlert","$http","$timeout","$translate",function(a,b,c,d,e){return{restrict:"E",scope:{element:"=",form:"="},templateUrl:"app/main/template/actionBuilder/template.actionBuilderStatus.html",compile:function(b,c){var d,e;return d=b.contents().remove(),function(b,c,f){function g(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}b.randomName=g(),b.states=[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]),angular.module("xCallyShuttleApp").factory("Ami",["$resource",function(a){return a("/api/ami/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ChooseContactModalCtrl",["$scope","$uibModalInstance","eventId","$http","xAlert","$translate",function(a,b,c,d,e,f){a.open=function(a){b.close(a)},a.getContacts=function(){d.get("/api/contactmanager/contacts/"+c+"/checkevent").success(function(b){a.contacts=b}).error(function(a){e.show(f.instant(a.message)+"!","danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("CloseEditedTabModalCtrl",["$scope","$uibModalInstance",function(a,b){a.close=function(){b.close()},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").factory("gridOptions",["Modal","xAlert","$translate","$interval","$q","usSpinnerService",function(a,b,c,d,e,f){return{gridOptions:function(d,g,h,i,j){h.id=[];var k={offset:0,limit:10};g.draggable&&(g.rowTemplate='<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',g.useExternalPagination=!1,g.enablePaginationControls=!1,g.showGridFooter=!1);var l=function(a){var b=a?30*a+120:177;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px")},m=function(){return h.gridOptions.enablePaginationControls||(delete k.offset,delete k.limit),f.spin("spinner-grid"),d.get(i?_.merge(k,i):k).$promise.then(function(a){h.gridOptions.totalItems=a.count,h.gridOptions.data=a.rows,l(a.rows.length)})["catch"](function(a){console.error(a)})["finally"](function(){f.stop("spinner-grid")})};return h.deleteItem=a.confirm["delete"](function(a){var e=i?angular.copy(i):{};return _.merge(e,{id:a}),d.remove(e).$promise.then(function(){m(),b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),h.gridApi.selection.clearSelectedRows(),h.id=[]})["catch"](function(a){b.show(a.message?a.message:a.data.message,"danger")})}),h.deleteItems=a.confirm["delete"](function(){var a=i?angular.copy(i):{};return _.merge(a,{ids:h.id}),d["delete"](a).$promise.then(function(){m(),b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),h.gridApi.selection.clearSelectedRows(),h.id=[]})["catch"](function(a){b.show(a.message?a.message:a.data.message,"danger")})}),g.columnDefs.forEach(function(a){a.hasOwnProperty("displayName")||(a.displayName="APPLICATION_"+a.name.toUpperCase()),a.headerCellFilter="translate",a.hasOwnProperty("buttons")&&(a.displayName="",a.cellClass="ui-grid-vcenter",a.enableSorting=!1,a.enableFiltering=!1,a.enableColumnMenu=!1,a.cellTemplate="<div>",a.buttons.forEach(function(b){b.directive?a.cellTemplate+=b.directive:(a.cellTemplate+="<a",a.cellTemplate+=b.hide?' data-ng-hide="true" ':" ",a.cellTemplate+=b["class"]?' class="btn btn-xs '+b["class"]+'" ':" ",a.cellTemplate+=b.href?' data-ng-href="'+b.href+'" ':" ",a.cellTemplate+=b.onClick?' data-ng-click="'+b.onClick+'" ':" ",a.cellTemplate+=">",a.cellTemplate+="{{'"+(b.displayName||"APPLICATION_"+b.name.toUpperCase())+"' | translate}}",a.cellTemplate+="</a> ")}),a.cellTemplate+="<div>",delete a.buttons)}),_.merge({enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableRowSelection:!0,enableSelectAll:!0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,getPage:m,gridMenuTitleFilter:function(a){var b=e.defer();return b.resolve(c.instant(a)),b.promise},onRegisterApi:function(a){h.gridApi=a,h.gridApi.selection.on.rowSelectionChanged(h,function(a){a.isSelected?h.id.push(h.gridApi.grid.options.primaryKey?a.entity[h.gridApi.grid.options.primaryKey]:a.entity.id):_.pull(h.id,h.gridApi.grid.options.primaryKey?a.entity[h.gridApi.grid.options.primaryKey]:a.entity.id)}),h.gridApi.selection.on.rowSelectionChangedBatch(h,function(a){a[0].isSelected?h.id=_.union(h.id,_.map(a,h.gridApi.grid.options.primaryKey?"entity."+h.gridApi.grid.options.primaryKey:"entity.id")):_.map(a,h.gridApi.grid.options.primaryKey?"entity."+h.gridApi.grid.options.primaryKey:"entity.id").forEach(function(a){_.pull(h.id,a)})}),h.gridApi.core.on.sortChanged(h,function(a,b){0===b.length?k.order=null:k.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),m()}),h.gridApi.pagination.on.paginationChanged(h,function(a,b){k.offset=(a-1)*b,k.limit=b,m()}),h.gridApi.core.on.filterChanged(h,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?k[a.name]=a.filters[0].term:delete k[a.name]}),m()}),h.gridApi.draggableRows.on.rowDropped(h,function(a){a.fromIndex!==a.toIndex&&d.update(i,h.gridOptions.data).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(a.message,"danger")})}),j||m()}},g)}}}]),angular.module("xCallyShuttleApp").controller("MainCtrl",["$scope","$http","$rootScope","$cookies","$translate","$interval","socket","Auth","xAlert","$uibModal","$log","$state",function(a,b,c,d,e,f,g,h,i,j,k,l){a.awesomeThings=[],a.isLoggedIn=h.isLoggedIn,a.isAdmin=h.isAdmin,a.getCurrentUser=h.getCurrentUser,a.workspaces=[],a.mainTab={active:!0},a.closeTab=function(b){if(a.workspaces[b].edited){var c=j.open({animation:!0,templateUrl:"app/main/closeEditedTab.modal.html",controller:"CloseEditedTabModalCtrl"});c.result.then(function(c){a.workspaces.splice(b,1)},function(){k.info("Modal dismissed at: "+new Date)})}else a.workspaces.splice(b,1)},a.createContact=function(c,d){console.log("item tags",d.tags),d.tags=d.tags?d.tags.join(","):void 0,console.log("item tags after",d.tags),_.forOwn(d.customFields,function(a,b){""===a&&delete d.customFields[b]}),b.post("/api/contactmanager/contacts",d).success(function(b){a.workspaces.splice(c,1),a.openContactTab({fullname:b.fullname,id:b.id}),i.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(a.message,"danger")})};var m=function(b){var c=j.open({animation:!0,templateUrl:"app/main/chooseContact.modal.html",controller:"ChooseContactModalCtrl",resolve:{eventId:function(){return b.id}}});c.result.then(function(c){c?a.openContactTab(c):a.newContact(b)},function(){k.info("Modal dismissed at: "+new Date)})};a.updateContact=function(c,d){var f=angular.copy(d);f.tags=f.tags?f.tags.join(","):void 0,f.CompanyId||(f.CompanyId=null),b.put("/api/contactmanager/contacts/"+f.id,f).success(function(){a.workspaces[c].edited=!1,i.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(e.instant(a.message)+"!","danger")})},g.socket.on("report_integration:contactmanager",function(a){console.log("choosecontact"),m(a)}),a.openContactTab=function(b){var c=_.find(a.workspaces,{contactID:b.id});c?c.active=!0:a.workspaces.push({name:b.fullname,type:"contact",contactID:b.id,active:!0})},a.openJscriptyTab=function(b){a.workspaces.push({name:b.name,type:"jscripty",active:!0,data:b})},a.newContact=function(b){a.workspaces.push({name:"New Contact",type:"newContact",active:!0,data:b||null})},a.$on("$viewContentLoaded",function(){Metronic.init()}),c.language=e.use(),a.changeLanguage=function(a){e.use(a).then(function(a){c.language=a,("main.jscripty.projects.view"===l.current.name||"main.square.projects.view"===l.current.name)&&l.go(l.current,{},{reload:!0})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").directive("ngSpinnerBar",["$rootScope",function(a){return{link:function(b,c){c.addClass("hide"),a.$on("$stateChangeStart",function(){"spinner-page"===c[0].id&&c.removeClass("hide")}),a.$on("$stateChangeSuccess",function(){"spinner-page"===c[0].id&&(c.addClass("hide"),$("body").removeClass("page-on-load"),Layout.setSidebarMenuActiveLink("match"),setTimeout(function(){Metronic.scrollTop()},1e3))}),a.$on("$spinnerStart",function(){"spinner-request"===c[0].id&&c.removeClass("hide")}),a.$on("$spinnerStop",function(){"spinner-request"===c[0].id&&c.addClass("hide")}),a.$on("$stateNotFound",function(){"spinner-page"===c[0].id&&c.addClass("hide")}),a.$on("$stateChangeError",function(){"spinner-page"===c[0].id&&c.addClass("hide")})}}}]).directive("a",function(){return{restrict:"E",link:function(a,b,c){(c.ngClick||""===c.href||"#"===c.href)&&b.on("click",function(a){a.preventDefault()})}}}).directive("nxEqual",function(){return{require:"ngModel",link:function(a,b,c,d){return c.nxEqual?(a.$watch(c.nxEqual,function(a){d.$setValidity("nxEqual",a===d.$viewValue)}),void d.$parsers.push(function(b){var e=b===a.$eval(c.nxEqual);return d.$setValidity("nxEqual",e),e?b:void 0})):void console.error("nxEqual expects a model as an argument!")}}}).directive("ngEnter",function(){return function(a,b,c){b.bind("keydown keypress",function(b){13===b.which&&(a.$apply(function(){a.$eval(c.ngEnter)}),b.preventDefault())})}}).directive("dropdownMenuHover",function(){return{link:function(a,b){b.dropdownHover()}}}).directive("uiSelectRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.uiSelectRequired=function(a){return a&&a.length}}}}).directive("rpattern",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a,b){return null==b||""===b||!h||a.test(b)?(d.$setValidity("pattern",!0),b):void d.$setValidity("pattern",!1)}var f,g=c.rpattern,h=!0;g&&(g.match(/^\/(.*)\/$/)?(g=new RegExp(g.substr(1,g.length-2)),f=function(a){return e(g,a)}):f=function(b){var c=a.$eval(g);if(!c||!c.test)throw new Error("Expected "+g+" to be a RegExp but was "+c);return e(c,b)}),d.$formatters.push(f),d.$parsers.push(f),c.$observe("required",function(a){h=a,f(d.$viewValue)})}}}).directive("conditionBuilder",["$compile","xAlert","$http","$timeout",function(a,b,c,d){return{restrict:"E",scope:{element:"=",serviceindex:"=",service:"=",form:"="},templateUrl:"app/main/template/template.conditionBuilder.html",compile:function(c,e){var f,g;return f=c.contents().remove(),function(c,e,h){function i(a){var d=_.find(c.service.services[c.serviceindex].conditions,{value:a});if(d)if(c.elementType=d.type,d.arr)c.values=d.arr;else if(d.resource)return d.resource.get().$promise.then(function(a){c.values=_.map(a.rows,function(a){return{name:a[d.resValue],value:a[d.resValue]}})})["catch"](function(a){b.show($translate.instant(a.message),"danger")})}function j(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}c._=_,c.randomName=j(),d(function(){c.element.field&&i(c.element.field)}),c.checkCondition=function(a){c.element.value="",c.element.operator="",i(a)},g||(g=a(f)),e.append(g(c,function(a){return a}))}}}}]).directive("newContact",["$compile","xAlert","$http","socket","$translate","$timeout",function(a,b,c,d,e,f){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.newContactTab.html",compile:function(a,g){return function(a,g,h){function i(){a.$watch("item",function(b,c){angular.equals(b,c)||(a.workspace.edited=!0)},!0)}a.forms={general:{}},a.firstLoad=!0,a.item={Phones:[],Emails:[],customFields:{}},a.checkboxes={},a.init=function(){a.workspace.data&&(a.item.fullname=a.workspace.data.calleridname?a.workspace.data.calleridname:a.workspace.data.messageId?a.workspace.data.messageId:a.workspace.data.uniqueid?a.workspace.data.uniqueid:"",a.workspace.data.calleridnum&&a.item.Phones.push({phone:a.workspace.data.calleridnum}),a.workspace.data.from&&a.item.Emails.push({email:a.workspace.data.from})),a.getTags(),a.getCompanies(),a.getServices()},a.getServices=function(){c.get("/api/contactmanager/services/").success(function(b){a.services=b.rows,a.item.ServiceId=1,a.getCustomFields()}).error(function(a){b.show(e.instant(a.message)+"!","danger")})},a.getCustomFields=function(){c.get("/api/contactmanager/services/"+a.item.ServiceId+"/customfields").success(function(b){a.customFields=b,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),d.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),d.socket.on("custom_field:save",function(b){if(b.ServiceId===a.item.ServiceId){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}}),!a.firstLoad||a.workspace.data?(a.workspace.edited=!0,a.firstLoad=!1):(a.firstLoad=!1,i())}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){c.get("/api/tags").success(function(b){a.tags=_.map(b.rows,"name")}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){c.get("/api/contactmanager/companies").success(function(b){a.companies=b.rows,d.syncUpdates("company",a.companies)}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.addField=function(b){a.item[b].push({})},a.removeField=function(b,c){a.item[b].splice(c,1)},f(function(){a.init()})}}}}]).directive("contact",["$compile","xAlert","$http","socket","$timeout",function(a,b,c,d,e){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.contactTab.html",compile:function(a,f){return function(a,f,g){function h(){a.$watch("contact",function(b,c){angular.equals(b,c)||(a.workspace.edited=!0)},!0)}a.moment=moment,a.forms={general:{}},a.detail={tab:"main"},a.log={journal:{show:"Phones",type:"Inbounds",detail:"general"},history:{show:"Phones",type:"HistoryInbounds",detail:"general"}},a.columns={Phones:{general:{header:["APPLICATION_SOURCE","APPLICATION_DESTINATION","APPLICATION_DATE"],indexes:["source","destination","createdAt"]},QueueCalls:{header:["APPLICATION_CALLERID","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["calleridnum","queue","createdAt"]},ReportAgents:{header:["APPLICATION_AGENT","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["membername","queue","agentcalledAt"]},HistoryQueueCalls:{header:["APPLICATION_CALLERID","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["calleridnum","queue","createdAt"]},HistoryReportAgents:{header:["APPLICATION_AGENT","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["membername","queue","createdAt"]}},Emails:{general:{header:["APPLICATION_FROM","APPLICATION_TO","APPLICATION_DATE"],indexes:["from","to","createdAt"]}}},a.rows={journal:[],history:[]},a.itemsByPage=15,a._=_,a.getRows=function(b){a.rows[b]=[],_.forEach(a.contact[a.log[b].show],function(c){"general"===a.log[b].detail?a.rows[b]=a.rows[b].concat(c[a.log[b].type]):_.forEach(c[a.log[b].type],function(c){a.rows[b]=a.rows[b].concat(c[a.log[b].detail])})})},a.addField=function(b){a.contact[b].push({})},a.removeField=function(b,c){a.contact[b].splice(c,1)},a.getContact=function(){c.get("/api/contactmanager/contacts/"+a.workspace.contactID).success(function(b){b.tags=b.tags?b.tags.split(","):[],a.contact=b,a.getRows("journal"),a.getRows("history"),a.getCustomFields(b.ServiceId),a.contact.customFields={},a.contact.CustomFields.forEach(function(b){console.log("cfmap"),a.contact.customFields[b.id]=b.ContactHasCustomField.value}),h()}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){c.get("/api/tags").success(function(b){a.tags=_.map(b.rows,"name")}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){c.get("/api/contactmanager/companies").success(function(b){a.companies=b.rows,d.syncUpdates("company",a.companies)}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCustomFields=function(e){c.get("/api/contactmanager/services/"+e+"/customfields").success(function(b){a.customFields=b,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),d.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),d.socket.on("custom_field:save",function(b){if(b.ServiceId===e){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}})}).error(function(a){console.error(a),b.show(a.message,"danger")})},e(function(){a.getTags(),a.getCompanies(),a.getContact()})}}}}]).directive("jscripty",["$compile","xAlert","$http","socket",function(a,b,c,d){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.jscriptyTab.html",compile:function(a,d){return function(a,d,e){a.count=0,a.questions=[];var f=0,g=a.workspace.data.id;c.get("/api/jscripty/projects/"+g+"/download").success(function(b){if(b){c.post("/api/jscripty/projects/"+g+"/sessions",{projectId:g,status:"started"}).success(function(a){f=a.session_id,console.log(a)});var d=mxUtils.parseXml(b),e=new mxCodec(d);a.decObj=e.decode(d.documentElement);a.questions[a.count]=a.currentQuestion=_.find(a.decObj.cells,function(a){return a.vertex&&"start"==a.value.nodeName})}else console.log("No project published!"),alert("No project published!"),a.submit({index:a.index})}),a.next=function(b,c){a.currentQuestion.answer&&a.currentQuestion.answer!=c&&(a.questions=_.take(a.questions,a.count+1)),a.currentQuestion.answer=c,a.questions[a.count]=a.currentQuestion;var d=[];_.forEach(b.edges,function(a,c){if(a.source.id==b.id&&a.value){var e=a.value.split(",");e.length>1&&(_.forEach(e,function(c,d){var e=Object.create(a);e.setValue(c),b.edges.push(e)}),d.push(a))}}),_.forEach(d,function(a){_.remove(b.edges,function(b){return b.value==a.value&&b.id==a.id})}),a.currentQuestion=b,a.count++,a.questions[a.count]=b,a.saveQuestions()},a.end=function(){var d="completed";if("end"!=a.questions[a.questions.length-1].value.nodeName){var d="incomplete";a.saveQuestions()}c.put("/api/jscripty/projects/"+g+"/sessions/"+f,{status:d,completedAt:Date(),last_question_id:a.currentQuestion.id}).success(function(c){b.show("Project Ended","success"),a.submit({index:a.index})})},a.back=function(){a.count--,a.currentQuestion=a.questions[a.count]},a.setCurrentQuestion=function(b){a.count=b,a.currentQuestion=a.questions[a.count]},a.saveQuestions=function(){var b=[],d=[];_.forEach(a.questions,function(a,c){a.children&&_.forEach(a.children,function(a,b){d[b]={input_id:a.id,input_type:a.getAttribute("type",""),input_label:a.getAttribute("label",""),input_value:"checkbox"!=a.getAttribute("type","")||a.answer?a.answer:"Not selected"}}),b[c]={sessionId:f,projectId:g,question_id:a.id,question_type:a.value.nodeName,question_label:a.getAttribute("label",""),question_text:a.getAttribute("question",""),question_other_label:a.getAttribute("other"),question_other_answer:a.otheranswer,question_answer:a.answer,ReportJscriptyInputs:d},d=[]}),c.post("/api/jscripty/projects/"+g+"/sessions/"+f+"/questions/",b).success(function(a){})}}}}}]).directive("reportBuilder",["$compile",function(a){return{restrict:"E",scope:{group:"=",fields:"=",forms:"=",firstCall:"="},templateUrl:"app/main/template/template.reportBuilderView.html",compile:function(b,c){var d,e;return d=b.contents().remove(),function(b,c,f){b.operators=[{name:"AND"},{name:"OR"}],b.conditions=[{name:"="
-},{name:"!="},{name:"<"},{name:"<="},{name:">"},{name:">="},{name:"LIKE"}],b.addCondition=function(){b.group.rules.push({condition:"=",field:"",value:""})},b.removeCondition=function(a){b.group.rules.splice(a,1)},b.addGroup=function(){b.group.rules.push({group:{operator:"AND",rules:[{condition:"=",field:"",value:""}]}})},b.randomName=function(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")},b.removeGroup=function(){b.$parent.group&&b.$parent.group.rules.splice(b.$parent.$index,1)},e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]).directive("dynamicName",["$compile",function(a){return{restrict:"A",terminal:!0,priority:1e3,link:function(b,c,d){c.attr("name",b.$eval(d.dynamicName)),c.removeAttr("dynamic-name"),a(c)(b)}}}]).directive("onReadFile",["$parse",function(a){return{restrict:"A",scope:!1,link:function(b,c,d){var e=a(d.onReadFile);c.on("change",function(a){var c=new FileReader;c.onload=function(a){b.$apply(function(){e(b,{$fileContent:a.target.result})})},c.readAsText((a.srcElement||a.target).files[0])})}}}]).directive("motionFileDownload",["xAlert","$http","$translate","$timeout","$location","FileSaver","$compile",function(a,b,c,d,e,f,g){return{restrict:"E",template:'<a uib-tooltip=\'{{tooltiptext}}\' class="{{btnclass || \'btn default btn-xs blue-hoki\'}}" href="" data-ng-click="download()" ng-bind-html="btncontent || (\'APPLICATION_DOWNLOAD\' | translate)"></a>',scope:{mimetype:"=",filename:"=",resource:"=",params:"=",btnclass:"@",btncontent:"@",tooltiptext:"@"},link:function(b,d,e){var g=d.children()[0];b.$on("download-start",function(){$(g).attr("disabled","disabled")}),b.$on("downloaded",function(a,c){var d=base64ToBlob(c,b.mimetype);f.saveAs(d,b.filename),$(g).attr("disabled",!1)}),b.download=function(){return b.$emit("download-start"),b.resource.get(b.params).$promise.then(function(a){b.$emit("downloaded",a.downloadString)})["catch"](function(d){a.show(c.instant(d.translatedMessage||d.data.translatedMessage||d.message||d.data.message),"danger"),b.download=function(){}})}}}}]).directive("audioFileDownload",["xAlert","$http","$translate","$sce",function(a,b,c,d){return{restrict:"E",template:'<button type="button" class="btn default btn-xs blue-hoki" data-ng-click="download()"><i class="icon-control-play"></i> {{ \'APPLICATION_PREVIEW\' | translate}}</button>',scope:{resource:"=",params:"="},link:function(b,e,f){var g=e.children()[0];b.$on("download-start",function(a,b){$(g).attr("disabled","disabled").html('<i class="icon-refresh"></i> Loading...')}),b.$on("downloaded",function(a,b){var c=new Audio(d.trustAsResourceUrl("data:audio/ogg;base64,"+b));c.controls=!0,$(g).remove(),e.append(c),c.play()}),b.$on("error",function(a,b){$(g).removeClass("blue-stripe").addClass("red-stripe").html('<i class="icon-ban"></i> Error!')}),b.download=function(){return b.$emit("download-start"),b.resource.get(b.params).$promise.then(function(a){b.$emit("downloaded",a.downloadString)})["catch"](function(b){a.show(c.instant(b.translatedMessage||b.data.translatedMessage||b.message||b.data.message),"danger")})}}}}]).directive("uiRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.required=function(a,b){return!(b&&0===b.length&&"true"===c.uiRequired)},c.$observe("uiRequired",function(){d.$setValidity("required",!("true"===c.uiRequired&&d.$viewValue&&0===d.$viewValue.length))})}}}),angular.module("xCallyShuttleApp").filter("propsFilter",function(){return function(a,b){var c=[];return angular.isArray(a)?a.forEach(function(a){for(var d=!1,e=Object.keys(b),f=0;f<e.length;f++){var g=e[f],h=b[g].toLowerCase();if(-1!==a[g].toString().toLowerCase().indexOf(h)){d=!0;break}}d&&c.push(a)}):c=a,c}}).filter("capitalize",function(){return function(a){return a?a.replace(/([^\W_]+[^\s-]*) */g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()}):""}}).filter("salesforce",function(){var a=["CallDisposition","CallDurationInSeconds","CallObject","CallType","IsArchived","Priority","Status","Type"];return function(b){return _.remove(b,function(b){return b.custom===!1&&a.indexOf(b.name)<0}),b}}).filter("sugarcrm",function(){var a=["account_id","account_name","account_name1","assigned_user_name","assigned_user_id","case_number","created_by","created_by_name","date_entered","date_modified","deleted","description","id","modified_by_name","modified_user_id","name"];return function(b){return _.remove(b,function(b){return a.indexOf(b.name)>=0}),b}}).filter("freshdesk",function(){var a=["requester","subject","agent","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.ticket_field.name)>=0}),b}}).filter("zendesk",function(){var a=["subject","assignee","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.type)>=0}),b}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main",{"abstract":!0,templateUrl:"app/main/main.html",controller:"MainCtrl",resolve:{authorization:["$q","Auth","$state","$timeout","$location",function(a,b,c,d,e){return b.getToken()?a.when():(d(function(){e.path("/login")}),a.reject())}],deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/plugins/mxgraph/js/mxClient.js"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("xAlert",["$translate","Notification",function(a,b){return{show:function(c,d){switch(d){case"success":b.success({message:c,title:'<i class="glyphicon glyphicon-ok"></i> <strong>'+a.instant("MESSAGE_SUCCESS")+"!</strong>",delay:5e3});break;case"info":b.info({message:c,title:'<i class="glyphicon glyphicon-info-sign"></i> <strong>'+a.instant("MESSAGE_INFO")+"!</strong>",delay:5e3});break;case"danger":b.error({message:c,title:'<i class="glyphicon glyphicon-exclamation-sign"></i> <strong>'+a.instant("MESSAGE_ERROR")+"!</strong>",delay:1e4});break;case"warning":b.warning({message:c,title:'<i class="glyphicon glyphicon-warning-sign"></i> <strong>'+a.instant("MESSAGE_WARNING")+"!</strong>",delay:1e4});break;default:b.info(c)}}}}]).factory("stResource",["$q","$filter","$timeout","$rootScope","$http","$translate","xAlert",function(a,b,c,d,e,f,g){return{getPage:function(b){var c={page:Math.ceil(b.pagination.start/b.pagination.number),per_page:b.pagination.number};b.sort.predicate&&(c.sort_by=b.sort.predicate,c.sort_order=b.sort.reverse?"DESC":"ASC"),_.forIn(b.search.predicateObject,function(a,b){c[b]=a}),b.search.params&&(c.clientQuery={},_.forIn(b.search.params,function(a,b){c.clientQuery[b]=a})),d.$broadcast("$spinnerStart"),e.get(b.url,{params:c}).success(function(a){h.resolve(a),d.$broadcast("$spinnerStop")}).error(function(a){g.show(f.instant(a.message),"danger"),d.$broadcast("$spinnerStop")});var h=a.defer();return h.promise}}}]),angular.module("xCallyShuttleApp").factory("Widget",["$resource",function(a){return a("/api/widgets/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("MarketCtrl",["$scope","$http","$translate","socket","xAlert","Modal","$timeout",function(a,b,c,d,e,f,g){function h(a,b){return Math.floor(Math.random()*(b-a+1))+a}a.initView=function(){b.get("/api/integrations").success(function(b){a.integrations=b.rows,a.groupedIntegration=_.chunk(a.integrations,4),d.syncUpdates("integration",a.integrations,function(){a.groupedIntegration=_.chunk(a.integrations,4)})}).error(function(a){e.show(a.message,"danger")})},a.isProgressing=!1,a.$on("$destroy",function(){d.unsyncUpdates("integration")}),a.installIntegration=function(d){a.status="Downloading",a.percentage=h(1,50),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!0}).success(function(){g(function(){a.percentage=h(51,99),a.status="Installing"},2500),g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.uninstallIntegration=function(d){a.status="Uninstalling",a.percentage=h(1,99),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!1}).success(function(){g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.market",{url:"/market",templateUrl:"app/market/market.html",controller:"MarketCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MotionbarCtrl",["$scope","$stateParams","$cookieStore","settings","Auth",function(a,b,c,d,e){e.loginWithToken(b.token,b.userId,b.name),a.getCurrentUser=e.getCurrentUser,d.layout.pageQuickSidebarOpened=!0}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("motionbar",{url:"/motionbar",template:"<div ui-view></div>","abstract":!0}).state("motionbar.chat",{url:"/chat?token&userId&name",templateUrl:"app/motionbar/motionbar.chat.html",controller:"MotionbarCtrl"}).state("motionbar.mail",{url:"/mail?token&userId&name",templateUrl:"app/motionbar/motionbar.mail.html",controller:"MotionbarCtrl"})}]),angular.module("xCallyShuttleApp").controller("SalesforceListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.map(a.displayedSalesforceAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedSalesforceAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("salesforce_account"),b.url="/api/salesforce/accounts",h.getPage(b).then(function(d){a.displayedSalesforceAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedSalesforceAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedSalesforceAccounts.length)}),f.socket.on("salesforce_account:save",function(){a.initList(b)}),f.socket.on("salesforce_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/salesforce/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/salesforce/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/salesforce/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.list",{url:"/list",templateUrl:"app/salesforce/list/list.html",controller:"SalesforceListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce",{url:"/salesforce",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("SalesforceAccount",["$resource",function(a){return a("/api/salesforce/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SalesforceViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","$filter",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){g.unsyncUpdates("salesforce_configuration"),g.unsyncUpdates("salesforce_field")}),a.initView=function(){b.get("/api/salesforce/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/salesforce/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/salesforce/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("salesforce_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.deleteConfiguration=i.confirm["delete"](function(a){b["delete"]("api/salesforce/configurations/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/salesforce/configurations",a.configuration).success(function(a){e.path("salesforce/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){h.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/salesforce/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(j("salesforce")(b),"name","asc")}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/salesforce/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,g.socket.on("salesforce_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){h.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/salesforce/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/salesforce/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/salesforce/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/salesforce/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/salesforce/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){b.content="",a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);if(c)switch(c.type){case"picklist":return c.picklistValues;default:return}}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.view",{url:"/view/:id",templateUrl:"app/salesforce/view/view.html",controller:"SalesforceViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.salesforce.view.account",{url:"/account",templateUrl:"app/salesforce/view/view.account.html"}).state("main.salesforce.view.configurations",{url:"/configurations",templateUrl:"app/salesforce/view/view.configurations.html"}).state("main.salesforce.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/salesforce/view/view.configurationSettings.html",controller:"SalesforceViewCtrl"}).state("main.salesforce.view.configuration",{url:"/configuration",templateUrl:"app/salesforce/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SalesforceWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/salesforce/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/salesforce/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.wizard",{url:"/wizard",templateUrl:"app/salesforce/wizard/wizard.html",controller:"SalesforceWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("License",["$resource",function(a){return a("/api/licenses/:id/:controller",{id:"@id"},{request:{method:"POST",params:{id:"request"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license",{url:"/license",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("LicenseViewCtrl",["$scope","$rootScope","$translate","License","xAlert",function(a,b,c,d,e){a.initView=function(){d.get(function(b){a.item=b.license})},a.submitRequest=function(){d.request(a.item,function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")},function(a){switch(a.status){case 304:e.show(a.statusText,"info");break;default:e.show(a.statusText,"danger")}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license.view",{url:"/view",templateUrl:"app/setting/license/view/view.html",controller:"LicenseViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/pricing-tables.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting",{url:"/setting",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Setting",["$resource",function(a){return a("/api/settings/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("Smtp",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp",{url:"/smtp",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SmtpViewCtrl",["$scope","$stateParams","$translate","MailServerOut","xAlert","usSpinnerService",function(a,b,c,d,e,f){a.initView=function(){a.item={},d.get({id:"service"}).$promise.then(function(b){a.item=b})["catch"](function(a){e.show(a.message,"danger")})},a.updateItem=function(){return a.item.id?d.update({id:a.item.id},a.item).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")}):(a.item.service=!0,d.save(a.item).$promise.then(function(b){a.item=b,e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")}))},a.test=function(){return f.spin("spinner-grid"),d.test({id:a.item.id,controller:"test"}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})["finally"](function(){f.stop("spinner-grid")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp.view",{url:"/view",templateUrl:"app/setting/smtp/view/view.html",controller:"SmtpViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("UpdateListCtrl",["$scope","gridOptions","$uibModal","$location","Update",function(a,b,c,d,e){a.initCounter=function(){a.$on("timer-stopped",function(a,b){console.log("Timer Stopped - data = ",b),d.path("/dashboard/voice")})},a.initView=function(){var c={exporterCsvFilename:"updates.csv",enableFiltering:!1,enableSorting:!1,enablePaginationControls:!1,enableSelectAll:!1,columnDefs:[{name:"message"},{width:125,name:"version",cellClass:"text-center ui-grid-vcenter"},{width:125,name:"createdAt",displayName:"APPLICATION_UPDATED_AT",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><span am-time-ago="row.entity.createdAt"></span></div>'}]};a.gridOptions=b.gridOptions(e,c,a)},a.pull=function(){c.open({animation:!0,templateUrl:"app/setting/update/list/list.pull.html",controller:"UpdateListPullCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates.list",{url:"/list",templateUrl:"app/setting/update/list/list.html",controller:"UpdateListCtrl"}).state("main.setting.updates.landing",{url:"/landing",templateUrl:"app/setting/update/list/landing.html",controller:"UpdateListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/error.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("UpdateListPullCtrl",["$scope","$uibModalInstance","$translate","$location","Update",function(a,b,c,d,e){a.modal={dismissable:!0,title:"Confirm Checkout",html:"Are you sure you want to checkout?",buttons:[{classes:"btn btn-success",text:"Checkout",click:function(){return b.dismiss("close"),d.path("/setting/updates/landing"),e.pull()}},{classes:"btn default",text:"Cancel",click:function(){b.dismiss("cancel")}}]}}]),angular.module("xCallyShuttleApp").factory("Update",["$resource",function(a){return a("/api/updates/:id/:controller",{id:"@id"},{pull:{method:"GET",params:{id:"pull"}},checkout:{method:"GET",params:{id:"checkout"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates",{url:"/updates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCtrl",["$scope","$uibModal","$translate","SquareOdbc","gridOptions","xAlert",function(a,b,c,d,e,f){a.initView=function(){var b={exporterCsvFilename:"odbc.csv",columnDefs:[{name:"name"},{name:"dsn",displayName:"APPLICATION_ODBC"},{name:"description"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/square/odbc/view/{{row.entity.id}}/settings",name:"settings"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK_CONNECTION",onClick:"grid.appScope.checkConnection(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=e.gridOptions(d,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/square/odbc/list/list.create.modal.html",controller:"SquareOdbcListCreateCtrl"});c.result.then(function(){a.gridOptions.getPage()})},a.checkConnection=function(a){return d.get({id:a,controller:"check"}).$promise.then(function(){f.show(c.instant("MESSAGE_CONNECTION_VERIFIED"),"success")})["catch"](function(){f.show(c.instant("MESSAGE_CONNECTION_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCreateCtrl",["$scope","$translate","$uibModalInstance","SquareOdbc","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.item.dsn||(a.item.dsn="DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion"),a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc.list",{url:"/list",templateUrl:"app/square/odbc/list/list.html",controller:"SquareOdbcListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc",{url:"/odbc",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SquareOdbc",["$resource",function(a){return a("/api/square/odbc/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcViewCtrl",["$scope","$translate","$stateParams","SquareOdbc","xAlert",function(a,b,c,d,e){a.odbc={},a.getOdbc=function(){return d.get({id:c.id}).$promise.then(function(b){a.odbc=b})["catch"](function(a){e.show(a.data.message,"danger")})},a.updateOdbc=function(){var f=angular.copy(a.odbc);return d.update({id:c.id},f).$promise.then(function(){e.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc.view",{url:"/view/:id",templateUrl:"app/square/odbc/view/view.html",controller:"SquareOdbcViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.square.odbc.view.settings",{url:"/settings",templateUrl:"app/square/odbc/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCtrl",["$scope","$uibModal","SquareProject","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"projects.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/square/projects/view/{{row.entity.id}}",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/square/project/list/list.create.modal.html",controller:"SquareProjectListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCreateCtrl",["$scope","$translate","$uibModalInstance","SquareProject","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.list",{url:"/list",templateUrl:"app/square/project/list/list.html",controller:"SquareProjectListCtrl",authenticate:!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SquareProject",["$resource",function(a){return a("/api/square/projects/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SquareProjectViewCtrl",["$scope","$stateParams","Auth","xAlert","SquareProject",function(a,b,c,d,e){a.squareProject={},a.getProject=function(){return e.get({id:b.id}).$promise.then(function(b){a.squareProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!==a&&-1!==a.indexOf("Script error."));else{var e=new Image;e.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(f){d.show(f,"danger")}},b.token=c.getToken();var a=new EditorUi(new Editor);a.openString(b.preproduction,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}})})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.view",{url:"/view/:id",templateUrl:"app/square/project/view/view.html",controller:"SquareProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/square/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/square/js/Editor.js","assets/plugins/square/js/Graph.js","assets/plugins/square/js/EditorUi.js","assets/plugins/square/js/Actions.js","assets/plugins/square/js/Menus.js","assets/plugins/square/js/Sidebar.js","assets/plugins/square/js/Toolbar.js","assets/plugins/square/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square",{url:"/square",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Agent",["$resource",function(a){return a("/api/agents/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents",{url:"/agents",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AgentListCtrl",["$scope","Agent","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"agents.csv",columnDefs:[{name:"fullname"},{name:"name",displayName:"APPLICATION_USERNAME"},{name:"internal"},{name:"email"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/agents/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.list",{url:"/list",templateUrl:"app/staff/agent/list/list.html",controller:"AgentListCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("AgentViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$cookieStore","Agent","FileUploader","Auth","User",function(a,b,c,d,e,f,g,h,i,j){a.Auth=i,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",
-animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.updatePassword=function(){var b={newPassword:a.agent.newPwd};return i.isAdmin()?b.id=e.id:b.oldPassword=a.agent.currentPwd,j.changePassword(b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})};var k=a.uploader=new h({url:"api/users/"+e.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});k.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),k.onSuccessItem=function(b,e){a.agent.userpic=e.userpic,a.agent.id===i.getCurrentUser().id&&(i.getCurrentUser().userpic=e.userpic),c.show(d.instant("MESSAGE_WELL_DONE"),"success")},k.onErrorItem=function(){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},k.onCompleteAll=function(){k.clearQueue()},a.initView=function(){return g.get({id:e.id}).$promise.then(function(b){a.agent=b,a.agent.transport=a.agent.transport?a.agent.transport.split(","):[],a.agent.allow=a.agent.allow?a.agent.allow.split(";"):[],a.agent.nat=a.agent.nat?a.agent.nat.split(","):[]})["catch"](function(a){c.show(a.message,"danger")})},a.patchItem=function(){return g.patch({id:e.id},{chatCapacity:a.agent.chatCapacity,mailCapacity:a.agent.mailCapacity,faxCapacity:a.agent.faxCapacity}).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.agent);return delete b.password,delete b.md5secret,b.transport=b.transport.join(","),b.allow=b.allow.join(";"),b.nat=b.nat.join(","),g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.view",{url:"/view/:id",templateUrl:"app/staff/agent/view/view.html",controller:"AgentViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.staff.agents.view.account",{url:"/account",templateUrl:"app/staff/agent/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}}).state("main.staff.agents.view.voice",{url:"/voice",templateUrl:"app/staff/agent/view/view.voice.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.chat",{url:"/chat",templateUrl:"app/staff/agent/view/view.chat.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.mail",{url:"/mail",templateUrl:"app/staff/agent/view/view.mail.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.fax",{url:"/fax",templateUrl:"app/staff/agent/view/view.fax.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.phonebar",{url:"/phonebar",templateUrl:"app/staff/agent/view/view.phonebar.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("AgentWizardCtrl",["$scope","$rootScope","Agent","Setting","xAlert","$location","$translate","$http","WizardHandler",function(a,b,c,d,e,f,g,h,i){a.forms={info:void 0,voice:void 0},a.item={role:"agent",allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},a.next=function(){i.wizard().next()},a.exitValidation=function(a){return a},a.getFirstFreeInternal=function(){return d.get({controller:"internal"}).$promise.then(function(b){a.item.internal=b.value})["catch"](function(a){e.show(a.data.message,"danger")})},a.createItem=function(){var b=angular.copy(a.item);return b.transport&&(b.transport=b.transport.join(",")),a.item.allow&&(b.allow=b.allow.join(";")),c.save(b).$promise.then(function(){f.path("/staff/agents/list")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.wizard",{url:"/wizard",templateUrl:"app/staff/agent/wizard/wizard.html",controller:"AgentWizardCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff",{url:"/staff",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TeamCreateCtrl",["$scope","$uibModalInstance","Team","xAlert",function(a,b,c,d){a.form={},a.item={},a.ok=function(){return c.save(a.item).$promise.then(function(){b.close(a.item)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("TeamListCtrl",["$scope","Team","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"teams.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"{{row.entity.defaultEntry ? 'blue-hoki disabled' : 'blue-hoki'}}",href:"/staff/teams/view/{{row.entity.id}}/settings",name:"profile"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){d.open({animation:!0,templateUrl:"app/staff/team/list/create.modal.html",controller:"TeamCreateCtrl"}).result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams.list",{url:"/list",templateUrl:"app/staff/team/list/list.html",controller:"TeamListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Team",["$resource",function(a){return a("/api/teams/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams",{url:"/teams",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TeamViewCtrl",["$scope","$http","$stateParams","$translate","Team","Agent","xAlert",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return console.log("agents",b),e.save({id:a.team.id,controller:"agents"},{agents:b})},deselect:function(b){return e["delete"]({id:a.team.id,controller:"agents",agents:b})}}};a.initView=function(){return e.get({id:c.id}).$promise.then(function(b){a.team=b})["catch"](function(a){g.show(a.message,"danger")})},a.initAgents=function(){return f.get().$promise.then(function(b){return a.agents=b.rows,e.query({id:c.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindTeam(_.map(b,"id"),_.map(a.agents,function(a){return{id:a.id,name:a.name,fullname:a.fullname,internal:a.internal}}),h)})["catch"](function(a){g.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.team);return e.update({id:c.id},b).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams.view",{url:"/view/:id",templateUrl:"app/staff/team/view/view.html",controller:"TeamViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.staff.teams.view.agents",{url:"/agents",templateUrl:"app/staff/team/view/view.agents.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]}])}]}}).state("main.staff.teams.view.settings",{url:"/settings",templateUrl:"app/staff/team/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TelephoneListCtrl",["$scope","Telephone","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"telephones.csv",columnDefs:[{name:"fullname"},{name:"name"},{name:"accountcode"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/telephones/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.list",{url:"/list",templateUrl:"app/staff/telephone/list/list.html",controller:"TelephoneListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Telephone",["$resource",function(a){return a("/api/telephones/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones",{url:"/telephones",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TelephoneViewCtrl",["$scope","$http","$stateParams","$translate","$cookieStore","Auth","xAlert","Telephone",function(a,b,c,d,e,f,g,h){a.initView=function(){a.Auth=f,a.forms={},h.get({id:c.id}).$promise.then(function(b){delete b.password,a.item=b,a.item.transport=a.item.transport?a.item.transport.split(","):[],a.item.allow=a.item.allow?a.item.allow.split(";"):[]})["catch"](function(a){g.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.item);b.transport=b.transport.join(","),b.allow=b.allow.join(";"),h.update(b).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.view",{url:"/view/:id",templateUrl:"app/staff/telephone/view/view.html",controller:"TelephoneViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.staff.telephones.view.account",{url:"/account",templateUrl:"app/staff/telephone/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("TelephoneWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert","$translate","Telephone",function(a,b,c,d,e,f,g){a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.initWizard=function(){return a.forms={},a.item={allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},g.get({id:"internal"}).$promise.then(function(b){a.item.internal=b.internal})["catch"](function(a){console.error(a)})},a.createItem=function(){var b=angular.copy(a.item);return b.transport&&(b.transport=b.transport.join(",")),a.item.allow&&(b.allow=b.allow.join(";")),g.save(b).$promise.then(function(){c.path("/staff/telephones/list")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.wizard",{url:"/wizard",templateUrl:"app/staff/telephone/wizard/wizard.html",controller:"TelephoneWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UserListCtrl",["$scope","User","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"users.csv",columnDefs:[{name:"fullname"},{name:"name",displayName:"APPLICATION_USERNAME"},{name:"email"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/users/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.list",{url:"/list",templateUrl:"app/staff/user/list/list.html",controller:"UserListCtrl"})}]),angular.module("xCallyShuttleApp").factory("User",["$resource",function(a){return a("/api/users/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"},me:{method:"GET",params:{id:"me"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users",{url:"/users",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("UserViewCtrl",["$scope","$stateParams","$cookieStore","$translate","FileUploader","User","Auth","xAlert",function(a,b,c,d,e,f,g,h){a.Auth=g,a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.user=b,a.user.transport=a.user.transport?a.user.transport.split(","):[],a.user.allow=a.user.allow?a.user.allow.split(";"):[]})["catch"](function(a){h.show(a.message,"danger")})},a.updateItem=function(){var c=angular.copy(a.user);return delete c.password,delete c.md5secret,c.transport=c.transport.join(","),c.allow=c.allow.join(";"),f.update({id:b.id},c).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})},a.updatePassword=function(){var c={newPassword:a.user.newPwd};return g.isAdmin()?c.id=b.id:c.oldPassword=a.user.currentPwd,f.changePassword(c).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})};var i=a.uploader=new e({url:"api/users/"+b.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+c.get("token")}});i.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),i.onSuccessItem=function(b,c){a.user.userpic=c.userpic,a.user.id===g.getCurrentUser().id&&(g.getCurrentUser().userpic=c.userpic),h.show(d.instant("MESSAGE_WELL_DONE"),"success")},i.onErrorItem=function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},i.onCompleteAll=function(){i.clearQueue()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.view",{url:"/view/:id",templateUrl:"app/staff/user/view/view.html",controller:"UserViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.staff.users.view.account",{url:"/account",templateUrl:"app/staff/user/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("UserWizardCtrl",["$scope","$location","WizardHandler","xAlert","$translate","User",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"user",host:"dynamic",context:"from-sip"},a.next=function(){c.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){return f.save(a.item).$promise.then(function(){b.path("/staff/users/list")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.wizard",{url:"/wizard",templateUrl:"app/staff/user/wizard/wizard.html",controller:"UserWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("SugarcrmListCtrl",["$scope","SugarcrmAccount","gridOptions","xAlert","$translate","Modal",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"sugarcrm_account.csv",columnDefs:[{name:"name",displayName:"APPLICATION_NAME"},{name:"username"},{name:"remoteUri",displayName:"APPLICATION_REMOTE_ADDRESS"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/sugarcrm/view/{{row.entity.id}}/account",name:"profile"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK_CONNECTION",onClick:"grid.appScope.checkAccount(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.checkAccount=function(a){return b.get({id:a,controller:"check"}).$promise.then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(a){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.list",{url:"/list",templateUrl:"app/sugarcrm/list/list.html",controller:"SugarcrmListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm",{url:"/sugarcrm",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmAccount",["$resource",function(a){return a("/api/sugarcrm/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmConfiguration",["$resource",function(a){return a("/api/sugarcrm/configurations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmField",["$resource",function(a){return a("/api/sugarcrm/fields/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SugarcrmViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("sugarcrm_configuration"),h.unsyncUpdates("sugarcrm_field")}),a.initView=function(){b.get("/api/sugarcrm/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/sugarcrm/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/sugarcrm/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("sugarcrm_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/sugarcrm/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/sugarcrm/configurations",a.configuration).success(function(a){e.path("sugarcrm/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/sugarcrm/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(f("sugarcrm")(_.toArray(b)),"name","asc"),_.forEach(b,function(a){a.options=_.toArray(a.options)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/sugarcrm/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("sugarcrm_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/sugarcrm/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/sugarcrm/fields/"+a.id,a).success(function(){}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){b.content="",a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);return c?c.options.length>0?c.options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.view",{url:"/view/:id",templateUrl:"app/sugarcrm/view/view.html",controller:"SugarcrmViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.sugarcrm.view.account",{url:"/account",templateUrl:"app/sugarcrm/view/view.account.html"}).state("main.sugarcrm.view.configurations",{url:"/configurations",templateUrl:"app/sugarcrm/view/view.configurations.html"}).state("main.sugarcrm.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/sugarcrm/view/view.configurationSettings.html",controller:"SugarcrmViewCtrl"}).state("main.sugarcrm.view.configuration",{url:"/configuration",templateUrl:"app/sugarcrm/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SugarcrmkWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/sugarcrm/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/sugarcrm/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.wizard",{url:"/wizard",templateUrl:"app/sugarcrm/wizard/wizard.html",controller:"SugarcrmkWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("CannedAnswer",["$resource",function(a){return a("/api/answers/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers",{url:"/answers",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnswerListCtrl",["$scope","$uibModal","CannedAnswer","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"answers.csv",columnDefs:[{name:"key",displayName:"APPLICATION_NAME"},{name:"value"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/answers/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.key, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){b.open({animation:!0,templateUrl:"app/tools/answer/list/list.create.modal.html",controller:"AnswerListCreateCtrl"}).result.then(function(b){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("AnswerListCreateCtrl",["$scope","$translate","$uibModalInstance","CannedAnswer","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers.list",{url:"/list",templateUrl:"app/tools/answer/list/list.html",controller:"AnswerListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AnswerViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","CannedAnswer",function(a,b,c,d,e,f,g){a.getAnswer=function(){return g.get({id:e.id}).$promise.then(function(b){a.answer=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updateAnswer=function(){var b=angular.copy(a.answer);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers.view",{url:"/view/:id",templateUrl:"app/tools/answer/view/view.html",controller:"AnswerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.answers.view.settings",{url:"/settings",templateUrl:"app/tools/answer/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("Automation",["$resource",function(a){return a("/api/automations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AutomationListCtrl",["$scope","$http","$translate","xAlert","Automation","gridOptions",function(a,b,c,d,e,f){a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){var b={exporterCsvFilename:"Automations.csv",columnDefs:[{name:"name"},{name:"description"},{name:"channel"},{name:"status",cellTemplate:'<div class="centered-uigrid-td"><input data-ng-change="grid.appScope.updateItem(row.entity)", bs-switch ng-model="row.entity.status" type="checkbox" switch-active="{{ grid.appScope.isActive }}" switch-on-text="{{ grid.appScope.onText }}" switch-off-text="{{ grid.appScope.offText }}" switch-on-color="{{ grid.appScope.onColor }}" switch-off-color="{{ grid.appScope.offColor }}" switch-animate="{{ grid.appScope.animate }}" switch-size="{{ grid.appScope.size }}" switch-label="{{ grid.appScope.label }}" switch-icon="{{ grid.appScope.icon }}" switch-radio-off="{{ grid.appScope.radioOff }}" switch-label-width="{{ grid.appScope.labelWidth }}" switch-handle-width="{{ grid.appScope.handleWidth }}"></div>',width:100,enableFiltering:!1},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/automations/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=f.gridOptions(e,b,a)},a.updateItem=function(a){return e.update({id:a.id},a).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.list",{url:"/list",templateUrl:"app/tools/automation/list/list.html",controller:"AutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AutomationViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","automations","Automation","$location",function(a,b,c,d,e,f,g,h){a.$automations=f,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.forms={general:{}},a.addCondition=function(b){a.automation[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.automation[b].splice(c,1)},a.addAction=function(){a.automation.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.automation.Actions.splice(b,1)},a.initView=function(){return g.get({id:b.id}).$promise.then(function(b){a.automation=b})["catch"](function(a){e.show(a.message,"danger"),h.path("/tools/automations/list")})},a.updateAutomation=function(){return g.update({id:b.id},a.automation).$promise.then(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),e.show(a.message,"danger")})},a.exitValidation=function(b){return console.log(b&&(a.automation.All.length||a.automation.Any.length)&&a.automation.Actions.length),b&&(a.automation.All.length||a.automation.Any.length)&&a.automation.Actions.length?!0:!1}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.view",{url:"/view/:id",templateUrl:"app/tools/automation/view/view.html",controller:"AutomationViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.tools.automations.view.settings",{url:"/settings",templateUrl:"app/tools/automation/view/view.settings.html"}).state("main.tools.automations.view.routes",{url:"/routes",templateUrl:"app/tools/automation/view/view.routes.html"}).state("main.tools.automations.view.application",{url:"/application",templateUrl:"app/tools/automation/view/view.application.html"})}]),
-angular.module("xCallyShuttleApp").controller("AutomationWizardCtrl",["$scope","$http","$location","xAlert","automations","WizardHandler","Automation",function(a,b,c,d,e,f,g){a.$automations=e,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={All:[],Any:[],Actions:[]},a.forms={general:void 0,settings:void 0},a.addCondition=function(b){a.item[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.item[b].splice(c,1)},a.addAction=function(){a.item.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.item.Actions.splice(b,1)},a.$watch("item.channel",function(b,c){c&&(a.tempData[c].All=_.clone(a.item.All,!0),a.tempData[c].Any=_.clone(a.item.Any,!0),a.tempData[c].Actions=_.clone(a.item.Actions,!0)),a.item.All=a.tempData[b].All?a.tempData[b].All:[],a.item.Any=a.tempData[b].Any?a.tempData[b].Any:[],a.item.Actions=a.tempData[b].Actions?a.tempData[b].Actions:[]},!0),a.item.channel="voice",a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/tools/automations/list")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a},a.exitSettingsValidation=function(b){return b&&(a.item.All.length||a.item.Any.length)&&a.item.Actions.length?!0:!1}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.wizard",{url:"/wizard",templateUrl:"app/tools/automation/wizard/wizard.html",controller:"AutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("Interval",["$resource",function(a){return a("/api/intervals/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals",{url:"/intervals",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("IntervalListCtrl",["$scope","$uibModal","Interval","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"intervals.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/intervals/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/interval/list/list.create.modal.html",controller:"IntervalListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("IntervalListCreateCtrl",["$scope","$translate","$uibModalInstance","Interval","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(b.instant(a.data.message),"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals.list",{url:"/list",templateUrl:"app/tools/interval/list/list.html",controller:"IntervalListCtrl"})}]),angular.module("xCallyShuttleApp").controller("IntervalViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","interval",function(a,b,c,d,e,f,g,h,i,j){function k(b){console.log(b);var c,d,e,f;c=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(d=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(d+="-"+b.wd_to)):d="*",b.md_from&&"always"!==b.md_from?(e=b.md_from,b.md_to&&"always"!==b.md_to&&(e+="-"+b.md_to)):e="*",b.m_from&&"always"!==b.m_from?(f=b.m_from,b.m_to&&"always"!==b.m_to&&(f+="-"+b.m_to)):f="*",void 0!==a.selectedSubInterval?a.interval.SubIntervals[a.selectedSubInterval].interval=c+","+d+","+e+","+f:a.subinterval.interval=c+","+d+","+e+","+f}a.$translate=d,a.$interval=j.interval,a.selectedSubInterval=void 0,a.gridOptions={columnDefs:[{name:"name",displayName:"APPLICATION_NAME",headerCellFilter:"translate"},{name:"interval",displayName:"APPLICATION_INTERVAL",headerCellFilter:"translate"},{name:"action",displayName:"APPLICATION_ACTION",headerCellFilter:"translate",width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openSubInterval(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteSubInterval(row.entity.name+\' interval\', gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}]},a.forms={subinterval:void 0,general:void 0},a.initSubInterval=function(b){b&&(a.selectedSubInterval=void 0),a.subinterval={},a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0}},a.next=function(){h.wizard().next()},a.previous=function(){h.wizard().previous()},a.exitValidation=function(a){return a},a.deselectAndRedirect=function(b){a.selectedSubInterval=void 0,g.path(b)},a.getInterval=function(){b.get("/api/intervals/"+e.id).success(function(b){a.interval=b,a.gridOptions.data=b.SubIntervals}).error(function(a){console.error(a),g.path("/tools/intervals/list")})},a.openSubInterval=function(b){a.selectedSubInterval=b,g.path("/tools/intervals/view/"+e.id+"/subintervals/settings")},a.updateInterval=function(f){a.selectedSubInterval=void 0,b.put("/api/intervals/"+e.id,a.interval).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),f&&g.path("/tools/intervals/view/"+e.id+"/"+f)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getSubInterval=function(){void 0===a.selectedSubInterval&&g.path("/tools/intervals/list"),a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date)};var b,c=a.interval.SubIntervals[a.selectedSubInterval]?a.interval.SubIntervals[a.selectedSubInterval].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.splittedInterval.t_from=moment(b[0],"HH:mm"),a.splittedInterval.t_to=moment(b[1],"HH:mm"),a.splittedInterval.alwaysTime=!1):(a.splittedInterval.t_from=moment(new Date),a.splittedInterval.t_to=moment(new Date),a.splittedInterval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.splittedInterval.wd_from=b[0],a.splittedInterval.wd_to=b[1]?b[1]:"always"):(a.splittedInterval.wd_from="always",a.splittedInterval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.splittedInterval.md_from=b[0],a.splittedInterval.md_to=b[1]?b[1]:"always"):(a.splittedInterval.md_from="always",a.splittedInterval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.splittedInterval.m_from=b[0],a.splittedInterval.m_to=b[1]?b[1]:"always"):(a.splittedInterval.m_from="always",a.splittedInterval.m_to="always")}})},a.$watch("splittedInterval",function(a){a&&k(a)},!0),a.addSubInterval=function(){a.interval.SubIntervals.push(a.subinterval),a.updateInterval("subintervals")},a.deleteSubInterval=i.confirm["delete"](function(b){a.interval.SubIntervals.splice(b,1),a.updateInterval()})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals.view",{url:"/view/:id",templateUrl:"app/tools/interval/view/view.html",controller:"IntervalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.intervals.view.settings",{url:"/settings",templateUrl:"app/tools/interval/view/view.settings.html"}).state("main.tools.intervals.view.subintervals",{url:"/subintervals",templateUrl:"app/tools/interval/view/view.subintervals.html"}).state("main.tools.intervals.view.subinterval",{url:"/subinterval",templateUrl:"app/tools/interval/view/view.subinterval.html"}).state("main.tools.intervals.view.subintervals.settings",{url:"/settings",templateUrl:"app/tools/interval/view/view.subintervalSettings.html"})}]),angular.module("xCallyShuttleApp").controller("PauseListCtrl",["$scope","$log","$uibModal","$translate","Pause","gridOptions",function(a,b,c,d,e,f){a.initView=function(){var b={exporterCsvFilename:"pauses.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/pauses/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=f.gridOptions(e,b,a)},a.createItem=function(){var b=c.open({animation:!0,templateUrl:"app/tools/pause/list/list.create.modal.html",controller:"PauseListCreateCtrl"});b.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("PauseListCreateCtrl",["$scope","$translate","$uibModalInstance","Pause","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses.list",{url:"/list",templateUrl:"app/tools/pause/list/list.html",controller:"PauseListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Pause",["$resource",function(a){return a("/api/pauses/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses",{url:"/pauses",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("PauseViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","Pause",function(a,b,c,d,e,f,g){a.getPause=function(){return g.get({id:e.id}).$promise.then(function(b){a.pause=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updatePause=function(){var b=angular.copy(a.pause);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses.view",{url:"/view/:id",templateUrl:"app/tools/pause/view/view.html",controller:"PauseViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.pauses.view.settings",{url:"/settings",templateUrl:"app/tools/pause/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SoundListCtrl",["$scope","$http","socket","Modal","$q","FileUploader","$translate","xAlert","$cookieStore","$sce","Sound",function(a,b,c,d,e,f,g,h,i,j,k){a.Sound=k,a.isCollapsed=!0,a.downloadButtonContent='<i class="icon-cloud-download"></i>',a.downloadButtonClass="btn btn-xs blue-hoki",a["delete"]=d.confirm["delete"](function(a){b["delete"]("/api/sounds/"+a).success(function(a){}).error(function(a){console.log(a)})}),a.updateAudio=function(a,c){var d=e.defer();return b.put("/api/sounds/"+a,c).success(function(a){d.resolve()}).error(function(a){console.log(a.message),d.reject(a.message)}),d.promise},a.$on("$destroy",function(){c.unsyncUpdates("sound")}),a.initList=function(){b.get("/api/sounds").success(function(b){a.sounds=b.rows,b.rows.length||(a.isCollapsed=!1),c.syncUpdates("sound",a.sounds,function(){a.sounds.length||(a.isCollapsed=!1)})}).error(function(a){})};var l=a.uploader=new f({url:"/api/sounds",withCredentials:!0,headers:{Authorization:"Bearer "+i.get("token")}});l.filters.push({name:"customFilter",fn:function(a,b){return this.queue.length<10}}),l.onWhenAddingFileFailed=function(a,b,c){console.info("onWhenAddingFileFailed",a,b,c)},l.onAfterAddingFile=function(a){console.info("onAfterAddingFile",a)},l.onAfterAddingAll=function(a){console.info("onAfterAddingAll",a)},l.onBeforeUploadItem=function(a){console.info("onBeforeUploadItem",a)},l.onProgressItem=function(a,b){console.info("onProgressItem",a,b),a.isUploading=!0},l.onProgressAll=function(a){console.info("onProgressAll",a)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),a.isUploading=!1},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),a.responseMessage=b,a.isUploading=!1},l.onCancelItem=function(a,b,c,d){console.info("onCancelItem",a,b,c,d),a.isUploading=!1},l.onCompleteItem=function(a,b,c,d){console.info("onCompleteItem",a,b,c,d),a.isUploading=!1},l.onCompleteAll=function(){console.info("onCompleteAll")},console.info("uploader",l)}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.sounds.list",{url:"/list",templateUrl:"app/tools/sound/list/list.html",controller:"SoundListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").factory("Sound",["$resource",function(a){return a("/api/sounds/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.sounds",{url:"/sounds",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TagListCtrl",["$scope","$uibModal","Tag","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"tag.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/tags/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/tag/list/list.create.modal.html",controller:"TagListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("TagListCreateCtrl",["$scope","$translate","$uibModalInstance","Tag","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags.list",{url:"/list",templateUrl:"app/tools/tag/list/list.html",controller:"TagListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Tag",["$resource",function(a){return a("/api/tags/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags",{url:"/tags",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TagViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","Tag",function(a,b,c,d,e,f,g){a.getTag=function(){return g.get({id:e.id}).$promise.then(function(b){a.tag=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updateTag=function(){var b=angular.copy(a.tag);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags.view",{url:"/view/:id",templateUrl:"app/tools/tag/view/view.html",controller:"TagViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.tags.view.settings",{url:"/settings",templateUrl:"app/tools/tag/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TemplateListCtrl",["$scope","Template","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"templates.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/tools/templates/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.list",{url:"/list",templateUrl:"app/tools/template/list/list.html",controller:"TemplateListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Template",["$resource",function(a){return a("/api/mail/templates/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates",{url:"/templates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TemplateViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","Template",function(a,b,c,d,e,f){a.initItem=function(){a.form={},a.item={},a.groups=[{title:"Voice",variables:[]},{title:"Chat",variables:["username","email","text","chatWebsite"]},{title:"Mail",variables:[]},{title:"Fax",variables:[]}],a.item=f.get({id:d.id})},a.updateItem=function(){f.update(a.item).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.view",{url:"/view/:id",templateUrl:"app/tools/template/view/view.html",controller:"TemplateViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.templates.view.settings",{url:"/settings",templateUrl:"app/tools/template/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TemplateWizardCtrl",["$scope","$location","$http","WizardHandler","xAlert","Template",function(a,b,c,d,e,f){a.initWizard=function(){a.item={},a.form={},a.groups=[{title:"Voice",variables:[]},{title:"Chat",variables:["username","email","text","chatWebsite"]},{title:"Mail",variables:[]},{title:"Fax",variables:[]}]},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){return f.save({name:a.item.name,description:a.item.description,subject:a.item.subject||null,html:a.item.html||null,text:a.item.text||null}).$promise.then(function(){b.path("/tools/templates/list")})["catch"](function(a){e.show(data.err.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.wizard",{url:"/wizard",templateUrl:"app/tools/template/wizard/wizard.html",controller:"TemplateWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools",{url:"/tools",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TriggerListCtrl",["$scope","$http","$translate","Modal","xAlert","Trigger","gridOptions",function(a,b,c,d,e,f,g){a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){var b={exporterCsvFilename:"Triggers.csv",columnDefs:[{name:"name"},{name:"description"},{name:"channel"},{name:"status",cellTemplate:'<div class="centered-uigrid-td"><input data-ng-change="grid.appScope.updateItem(row.entity)", bs-switch ng-model="row.entity.status" type="checkbox" switch-active="{{ grid.appScope.isActive }}" switch-on-text="{{ grid.appScope.onText }}" switch-off-text="{{ grid.appScope.offText }}" switch-on-color="{{ grid.appScope.onColor }}" switch-off-color="{{ grid.appScope.offColor }}" switch-animate="{{ grid.appScope.animate }}" switch-size="{{ grid.appScope.size }}" switch-label="{{ grid.appScope.label }}" switch-icon="{{ grid.appScope.icon }}" switch-radio-off="{{ grid.appScope.radioOff }}" switch-label-width="{{ grid.appScope.labelWidth }}" switch-handle-width="{{ grid.appScope.handleWidth }}"></div>',width:100,enableFiltering:!1},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/triggers/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=g.gridOptions(f,b,a)},a.updateItem=function(a){return f.update({id:a.id},a).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.list",{url:"/list",templateUrl:"app/tools/trigger/list/list.html",controller:"TriggerListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Trigger",["$resource",function(a){return a("/api/triggers/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers",{url:"/triggers",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TriggerViewCtrl",["$scope","$stateParams","$translate","xAlert","triggers","Trigger","$location",function(a,b,c,d,e,f,g){a.$triggers=e,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.forms={general:{}},a.addCondition=function(b){a.trigger[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.trigger[b].splice(c,1)},a.addAction=function(){a.trigger.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.trigger.Actions.splice(b,1)},a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.trigger=b})["catch"](function(a){d.show(a.message,"danger"),g.path("/tools/triggers/list")})},a.updateTrigger=function(){return f.update({id:b.id},a.trigger).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.exitValidation=function(b){return console.log(b&&(a.trigger.All.length||a.trigger.Any.length)&&a.trigger.Actions.length),b&&(a.trigger.All.length||a.trigger.Any.length)&&a.trigger.Actions.length?!0:!1}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.view",{url:"/view/:id",templateUrl:"app/tools/trigger/view/view.html",controller:"TriggerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.tools.triggers.view.settings",{url:"/settings",templateUrl:"app/tools/trigger/view/view.settings.html"}).state("main.tools.triggers.view.routes",{url:"/routes",templateUrl:"app/tools/trigger/view/view.routes.html"}).state("main.tools.triggers.view.application",{url:"/application",templateUrl:"app/tools/trigger/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("TriggerWizardCtrl",["$scope","$http","$location","xAlert","triggers","WizardHandler","Trigger",function(a,b,c,d,e,f,g){a.$triggers=e,a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={All:[],Any:[],Actions:[]},a.forms={general:void 0,settings:void 0},a.addCondition=function(b){a.item[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.item[b].splice(c,1)},a.addAction=function(){a.item.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.item.Actions.splice(b,1)},a.$watch("item.channel",function(b,c){c&&(a.tempData[c].All=_.clone(a.item.All,!0),a.tempData[c].Any=_.clone(a.item.Any,!0),a.tempData[c].Actions=_.clone(a.item.Actions,!0)),a.item.All=a.tempData[b].All?a.tempData[b].All:[],a.item.Any=a.tempData[b].Any?a.tempData[b].Any:[],a.item.Actions=a.tempData[b].Actions?a.tempData[b].Actions:[]},!0),a.item.channel="voice",a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/tools/triggers/list")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a},a.exitSettingsValidation=function(b){return b&&(a.item.All.length||a.item.Any.length)&&a.item.Actions.length?!0:!1}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.wizard",{url:"/wizard",templateUrl:"app/tools/trigger/wizard/wizard.html",controller:"TriggerWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TrunkListCtrl",["$scope","Trunk","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"Trunks.csv",columnDefs:[{name:"name"},{name:"host"},{name:"context"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/trunks/view/{{row.entity.name}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.name)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.list",{url:"/list",templateUrl:"app/tools/trunk/list/list.html",controller:"TrunkListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Trunk",["$resource",function(a){return a("/api/trunks/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks",{url:"/trunks",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TrunkViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","Trunk","VoiceContext",function(a,b,c,d,e,f,g,h,i){a.initView=function(){return h.get({id:e.id}).$promise.then(function(b){b.nat=b.nat?b.nat.split(","):[],b.allow=b.allow?b.allow.split(";"):[],b.insecure=b.insecure?b.insecure.split(","):[],b.transport=b.transport?b.transport.split(","):[],a.trunk=b})["catch"](function(a){console.error(a),g.path("/tools/trunks/list")})},a.updateTrunk=function(){""===a.trunk.password&&delete a.trunk.password;var b=angular.copy(a.trunk);return b.nat=b.nat.join(","),b.allow=b.allow.join(";"),b.insecure=b.insecure.join(","),b.transport=b.transport.join(","),h.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){c.show(a.data.message,"danger")})},a.getContexts=function(){return i.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.view",{url:"/view/:id",templateUrl:"app/tools/trunk/view/view.html",controller:"TrunkViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.trunks.view.settings",{url:"/settings",templateUrl:"app/tools/trunk/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TrunkWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={context:"from-voip-provider"}},a.next=function(d){d?b.post("/api/trunks/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_TRUNK"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")}):c.wizard().next()},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/trunks/",a.item).success(function(){d.path("/tools/trunks/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.wizard",{url:"/wizard",templateUrl:"app/tools/trunk/wizard/wizard.html",controller:"TrunkWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VariableListCtrl",["$scope","$uibModal","Variable","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"variables.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/variables/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/variable/list/list.create.modal.html",controller:"VariableListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("VariableListCreateCtrl",["$scope","$translate","$uibModalInstance","Variable","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables.list",{url:"/list",templateUrl:"app/tools/variable/list/list.html",controller:"VariableListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Variable",["$resource",function(a){return a("/api/variables/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables",{url:"/variables",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VariableViewCtrl",["$scope","$translate","$stateParams","xAlert","Variable",function(a,b,c,d,e){a.getVariable=function(){return e.get({id:c.id}).$promise.then(function(b){a.variable=b})["catch"](function(a){d.show(a.data.message,"danger")})},a.updateVariable=function(){return e.update({id:c.id},a.variable).$promise.then(function(){d.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables.view",{url:"/view/:id",templateUrl:"app/tools/variable/view/view.html",controller:"VariableViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.variables.view.settings",{
-url:"/settings",templateUrl:"app/tools/variable/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCloneModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCtrl",["$scope","$http","$translate","xAlert","Modal","$uibModal","$log","YourDashboard","gridOptions",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"voice_contexts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:220,buttons:[{"class":"green",href:"/tools/yourdashboards/show/{{row.entity.id}}",name:"view"},{"class":"blue-hoki",href:"/tools/yourdashboards/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{"class":"purple",name:"clone",onClick:"grid.appScope.clone(row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var b=f.open({animation:!0,templateUrl:"app/tools/yourdashboard/list/create.modal.html",controller:"YourdashboardListCreateModalCtrl"});b.result.then(function(b){return h.save(b).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),a.gridOptions.getPage()})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})},a.clone=function(b){var e=f.open({animation:!0,templateUrl:"app/tools/yourdashboard/list/clone.modal.html",controller:"YourdashboardListCloneModalCtrl"});e.result.then(function(e){return h.save({id:b,controller:"clone"},e).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),a.gridOptions.getPage()})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards.list",{url:"/list",templateUrl:"app/tools/yourdashboard/list/list.html",controller:"YourdashboardListCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardShowCtrl",["$scope","localStorageService","$http","xAlert","$translate","Auth","$stateParams","$location",function(a,b,c,d,e,f,g,h){a.Auth=f,a.getDashboard=function(){c.get("/api/dashboards/"+g.id).success(function(b){var c={name:"dashboard",structure:"4-8",enableconfirmdelete:!0,maximizable:!0,collapsible:!0};b.model=JSON.parse(b.model),b.editable=f.isAdmin()&&b.editable?!0:!1,a.dashboard=_.merge(c,b)}).error(function(a){h.path("/tools/yourdashboards/list")})};var i=function(b,f,h){var i=angular.copy(a.dashboard);i.name=a.dashboard.model.title,i.model=JSON.stringify(i.model),c.put("/api/dashboards/"+g.id,i).success(function(){d.show(e.instant("MESSAGE_DASHBOARD_SAVED")+"!","success")}).error(function(b){d.show(b.message,"danger"),i.model=JSON.parse(i.model),i.name="dashboard",a.dashboard=i})};a.$on("adfDashboardChanged",i),a.$on("destroy",function(){console.log("main dashboard")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards.show",{url:"/show/:id",templateUrl:"app/tools/yourdashboard/show/show.html",controller:"YourdashboardShowCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.radioSwitch={isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.getDashboard=function(){b.get("/api/dashboards/"+e.id).success(function(b){delete b.model,a.dashboard=b}).error(function(a){f.path("/tools/yourdashboards/list")})},a.updateDashboard=function(){var f=angular.copy(a.dashboard);b.put("/api/dashboards/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.dashboard=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards.view",{url:"/view/:id",templateUrl:"app/tools/yourdashboard/view/view.html",controller:"YourdashboardViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.yourdashboards.view.settings",{url:"/settings",templateUrl:"app/tools/yourdashboard/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("YourDashboard",["$resource",function(a){return a("/api/dashboards/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards",{url:"/yourdashboards",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskListCtrl",["$scope","ZendeskAccount","gridOptions","xAlert","$translate",function(a,b,c,d,e){a.initView=function(){var d={exporterCsvFilename:"zendesk_account.csv",columnDefs:[{name:"name",displayName:"APPLICATION_NAME"},{name:"username"},{name:"remoteUri",displayName:"APPLICATION_REMOTE_ADDRESS"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/zendesk/view/{{row.entity.id}}/account",name:"profile"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK_CONNECTION",onClick:"grid.appScope.checkAccount(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.checkAccount=function(a){return b.check({id:a}).$promise.then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.list",{url:"/list",templateUrl:"app/zendesk/list/list.html",controller:"ZendeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations",{url:"/configurations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewConfigurationListCtrl",["$scope","$stateParams","$translate","gridOptions","ZendeskConfiguration","$uibModal","xAlert",function(a,b,c,d,e,f,g){a.initView=function(){var c={exporterCsvFilename:"zendesk_configurations.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/zendesk/view/{{row.entity.AccountId}}/configurations/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(e,c,a,{accountId:b.id})},a.createItem=function(){var c=f.open({animation:!0,templateUrl:"app/zendesk/view/configuration/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});c.result.then(function(c){return e.save({accountId:b.id},c).$promise.then(function(){a.gridOptions.getPage()})["catch"](function(a){g.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations.list",{url:"/list",templateUrl:"app/zendesk/view/configuration/list/list.html",controller:"ZendeskViewConfigurationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewConfigurationViewCtrl",["$scope","$stateParams","$filter","$translate","socket","ZendeskConfiguration","xAlert","variable","Variable","ZendeskAccount","Tag","ZendeskField",function(a,b,c,d,e,f,g,h,i,j,k,l){a.$on("$destroy",function(){e.unsyncUpdates("zendesk_field")}),a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:300,scrollInertia:0},a.fieldType=[{type:"string",title:"String"},{type:"variable",title:"Variable"},{type:"customVariable",title:"Custom Variable"}],a.descFieldType=[{type:"string",title:"String"},{type:"keyValue",title:"Key Value"}],a.initView=function(){a.configurationName="",a.subjectConfig=[],a.descriptionConfig=[],a.fieldConfig=[],a.selectedTags={tags:[]},a.variables=h},a.getConfiguration=function(){return f.get({accountId:b.id,id:b.configurationId}).$promise.then(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,a.selectedTags={tags:_.map(b.Tags,function(a){return a.id})},e.socket.on("zendesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})})["catch"](function(a){g.show(a.message,"danger")})},a.getCustomVariables=function(){return i.get().$promise.then(function(b){a.customVariables=b.rows})["catch"](function(a){g.show(a.message,"danger")})},a.getFields=function(){return j.fields({id:b.id}).$promise.then(function(b){a.accountFields=c("zendesk")(b)})["catch"](function(a){g.show(a.message,"danger")})},a.getTags=function(){return k.get().$promise.then(function(b){a.tags=b.rows})["catch"](function(a){g.show(a.message,"danger")})},a.addItem=function(c){switch(c){case"subject":case"description":var d={type:"string",content:""};break;case"field":var d={content:""}}return f.save({accountId:b.id,id:b.configurationId,controller:c},d).$promise.then(function(b){switch(c){case"subject":a.subjectConfig.push(b);break;case"description":a.descriptionConfig.push(b);break;case"field":a.fieldConfig.push(b)}})["catch"](function(a){g.show(a.data.message,"danger")})},a.changeType=function(b){"variable"===b.type?(b.content="",b.variableName=""):"string"===b.type?(b.VariableId=null,b.variableName=""):"customVariable"===b.type&&(b.VariableId=null,b.content=""),a.updateField(b)},a.updateField=function(a){return l.update({accountId:b.id,configurationId:b.configurationId,id:a.id},a).$promise.then(function(){})["catch"](function(){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.removeItem=function(a){return l["delete"]({accountId:b.id,configurationId:b.configurationId,id:a.id}).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.changeDescType=function(b){"keyValue"===b.type?(b.content="","string"===b.keyType?(b.VariableId=null,b.variableName=""):"variable"===b.keyType?(b.keyContent="",b.VariableId=null):"customVariable"===b.keyType&&(b.keyContent="",b.variableName="")):"string"===b.type&&(b.VariableId=null,b.variableName="",b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.variableName="",b.nameField="",b.VariableId=null,b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(c.system_field_options?(b.customField=!1,b.nameField=c.title.toLowerCase()):b.customField=!0)}a.updateField(b)},a.updateTags=function(){return f.update({accountId:b.id,id:b.configurationId,controller:"tags"},a.selectedTags.tags).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE")+".","success")})["catch"](function(a){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.system_field_options?c.system_field_options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations.view",{url:"/view/:configurationId",templateUrl:"app/zendesk/view/configuration/view/view.html",controller:"ZendeskViewConfigurationViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewCtrl",["$scope","$stateParams","$translate","xAlert","Modal","ZendeskAccount",function(a,b,c,d,e,f){a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.account=b})["catch"](function(a){d.show(a.message,"danger")})},a.updateItem=function(){return f.update({id:b.id},a.account).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE")+".","success")})["catch"](function(){d.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view",{url:"/view/:id",templateUrl:"app/zendesk/view/view.html",controller:"ZendeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.zendesk.view.account",{url:"/account",templateUrl:"app/zendesk/view/view.account.html"})}]),angular.module("xCallyShuttleApp").controller("ZendeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler","ZendeskAccount",function(a,b,c,d,e,f,g){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.authType="password"},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){return g.save(a.item).$promise.then(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/zendesk/list")})["catch"](function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.wizard",{url:"/wizard",templateUrl:"app/zendesk/wizard/wizard.html",controller:"ZendeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("ZendeskAccount",["$resource",function(a){return a("/api/zendesk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"},fields:{params:{controller:"fields"},isArray:!0},check:{params:{controller:"check"}}})}]).factory("ZendeskConfiguration",["$resource",function(a){return a("/api/zendesk/accounts/:accountId/configurations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]).factory("ZendeskField",["$resource",function(a){return a("/api/zendesk/accounts/:accountId/configurations/:configurationId/fields/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk",{url:"/zendesk",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").service("application",function(){var a={applications:[{name:"Queue",value:"Queue"},{name:"Playback",value:"Playback"},{name:"Dial",value:"Dial"},{name:"Cally-Square IVR",value:"AGI"},{name:"GoTo",value:"Goto"},{name:"Hangup",value:"Hangup"},{name:"Set",value:"Set"},{name:"Custom",value:"custom"},{name:"VoiceMail",value:"Voicemail"}],queueOptions:[{value:"C",name:"APPLICATION_QUEUE_OPTION_C"},{value:"c",name:"APPLICATION_QUEUE_OPTION_c"},{value:"d",name:"APPLICATION_QUEUE_OPTION_d"},{value:"F",name:"APPLICATION_QUEUE_OPTION_F"},{value:"h",name:"APPLICATION_QUEUE_OPTION_h"},{value:"H",name:"APPLICATION_QUEUE_OPTION_H"},{value:"n",name:"APPLICATION_QUEUE_OPTION_n"},{value:"i",name:"APPLICATION_QUEUE_OPTION_i"},{value:"I",name:"APPLICATION_QUEUE_OPTION_I"},{value:"r",name:"APPLICATION_QUEUE_OPTION_r"},{value:"R",name:"APPLICATION_QUEUE_OPTION_R"},{value:"t",name:"APPLICATION_QUEUE_OPTION_t"},{value:"T",name:"APPLICATION_QUEUE_OPTION_T"},{value:"w",name:"APPLICATION_QUEUE_OPTION_w"},{value:"W",name:"APPLICATION_QUEUE_OPTION_W"},{value:"k",name:"APPLICATION_QUEUE_OPTION_k"},{value:"K",name:"APPLICATION_QUEUE_OPTION_K"},{value:"x",name:"APPLICATION_QUEUE_OPTION_x"},{value:"X",name:"APPLICATION_QUEUE_OPTION_X"}],audioOptions:[{value:"skip",name:"APPLICATION_PLAYBACK_OPTION_SKIP"},{value:"noanswer",name:"APPLICATION_PLAYBACK_OPTION_NOANSWER"},{value:"j",name:"APPLICATION_PLAYBACK_OPTION_J"},{value:"say",name:"APPLICATION_PLAYBACK_OPTION_SAY"}],hangupCauses:[{value:"",name:"--"},{value:"1",name:"APPLICATION_HANGUP_CAUSE_1"},{value:"16",name:"APPLICATION_HANGUP_CAUSE_16"},{value:"17",name:"APPLICATION_HANGUP_CAUSE_17"},{value:"18",name:"APPLICATION_HANGUP_CAUSE_18"},{value:"21",name:"APPLICATION_HANGUP_CAUSE_21"},{value:"22",name:"APPLICATION_HANGUP_CAUSE_22"},{value:"27",name:"APPLICATION_HANGUP_CAUSE_27"},{value:"38",name:"APPLICATION_HANGUP_CAUSE_38"},{value:"41",name:"APPLICATION_HANGUP_CAUSE_41"}],intTypes:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"custom",name:"APPLICATION_CUSTOM"},{value:"list",name:"APPLICATION_FROM_LIST"}],checkUnderscore:function(a){return 0===a.indexOf("_")?a:"_"+a}};return{application:a}}),angular.module("xCallyShuttleApp").factory("Auth",["$location","$rootScope","$http","User","$cookieStore","$q",function(a,b,c,d,e,f){var g={};return e.get("token")&&(g=d.me()),{login:function(a,h){var i=h||angular.noop,j=f.defer();return c.post("/auth/local",{name:a.name,password:a.password,remember:a.remember}).success(function(a){return e.put("role",a.role),e.put("token",a.token),e.put("userId",a.userId),g=d.me({},function(){b.$broadcast("login")}),j.resolve(a),i()}).error(function(a){return this.logout(),j.reject(a),i(a)}.bind(this)),j.promise},loginWithToken:function(a,b,c){e.put("token",a),e.put("userId",b),e.put("name",c),g=d.me()},logout:function(){c.put("/api/users/"+g.id,{online:!1}).success(function(){e.remove("role"),e.remove("token"),e.remove("userId"),g={},b.$broadcast("logout")}).error(function(a){return a})},createUser:function(a,b){var c=b||angular.noop;return d.save(a,function(b){return e.put("token",b.token),g=d.me(),c(a)},function(a){return this.logout(),c(a)}.bind(this)).$promise},changePassword:function(a,b,c){var e=c||angular.noop;return d.changePassword({id:g.id},{oldPassword:a,newPassword:b},function(a){return e(null,a)},function(a){return e(a)}).$promise},getCurrentUser:function(){return g},isLoggedIn:function(){return g.hasOwnProperty("role")},isLoggedInAsync:function(a){g.hasOwnProperty("$promise")?g.$promise.then(function(){a(!0)})["catch"](function(){a(!1)}):a(g.hasOwnProperty("role")?!0:!1)},isAdmin:function(){return"admin"===(e.get("role")||g.role)||"user"===(e.get("role")||g.role)},getRole:function(){return g.role},getToken:function(){return e.get("token")},getUserId:function(){return console.log(e.get("userId")),e.get("userId")},getName:function(){return e.get("name")}}}]),angular.module("xCallyShuttleApp").service("automations",function(){var a={voice:{conditions:[],actions:[]},mail:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]},chat:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]},fax:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]}},b=["voice","mail","chat","fax"];return{services:a,channels:b}}),angular.module("xCallyShuttleApp").service("desk_com",function(){var a=[{id:"priority",label:"Priority",custom:!1,data:{choices:[1,2,3,4,5,6,7,8,9,10]}},{id:"status",label:"Status",custom:!1,data:{choices:["new","open","pending","resolved","closed"]}},{id:"type",label:"Type",custom:!1,data:{choices:["chat","twitter","email","qna","facebook","phone"]}}];return{fields:a}}),angular.module("xCallyShuttleApp").controller("FooterController",["$scope","$http",function(a,b){a.year=moment().year(),a.$on("$includeContentLoaded",function(){Layout.initFooter()}),a.initFooter=function(){b.get("/api/settings/info").success(function(b){a.info=b}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("HeaderController",["$scope","$rootScope","$location","$state","$http","$notification","Auth","xAlert","socket","ngAudio","settings","toastr","localStorageService","MailReport","ChatReport",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){a.toggleQuickSidebar=function(){k.layout.pageQuickSidebarOpened=!k.layout.pageQuickSidebarOpened,k.layout.pageQuickSidebarOpened||m.remove("chatRoomId")},a.toogleSidebar=function(){k.layout.pageSidebarClosed=!k.layout.pageSidebarClosed,m.set("sidebarClosed",k.layout.pageSidebarClosed)},a.initHeader=function(){var c=j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3"),d={};"agent"===g.getCurrentUser().role&&(i.socket.on("report_mail:save",function(a){c.play();var d=f("MAIL CHANNEL",{icon:"assets/images/media/channels/mail64.png",body:"NEW Incoming Mail Message!",delay:1e3*a.timeslot});d.$on("click",function(){return n.get({id:a.id,controller1:"accept",controller2:a.uniqueid}).$promise.then(function(){h.show("Mail properly assigned","success"),b.$broadcast("mailMessageEvent",{message:"Mail properly assigned.."})})["catch"](function(a){h.show(a.data.message,"danger")})})}),i.socket.on("report_chat:save",function(a){c.play(),d[a.uniqueid]&&(d[a.uniqueid].close(),delete d[a.uniqueid]),d[a.uniqueid]=f("CHAT CHANNEL",{icon:"assets/images/media/channels/chat64.png",body:"NEW Incoming Chat Visitor!",delay:1e3*a.timeslot}),d[a.uniqueid].$on("click",function(){return o.get({id:a.id,controller1:"accept",controller2:a.uniqueid}).$promise.then(function(){h.show("Chat properly assigned","success"),b.$broadcast("mailMessageEvent",{message:"Chat properly assigned.."})})["catch"](function(a){h.show(a.data.message,"danger")})})}),i.socket.on("chat_message:save",function(a){c.play();var d=m.get("chatRoomId");if((!d||d!==a.ChatRoomId)&&a.UserId&&a.UserId!==g.getCurrentUser().id){var e=f(a.User.fullname,{icon:"assets/images/media/channels/chat64.png",body:a.body.length>35?a.body.substring(0,35)+"...":a.body,delay:1e4});e.$on("click",function(){b.$broadcast("chatMessageEvent",{chatRoomId:a.ChatRoomId})})}}),i.socket.on("user_has_chat_room:save",function(a){c.play(),b.$broadcast("chatGroupEvent",a)})),e({url:"/api/fax/user_has_queues",method:"GET",params:{UserId:g.getCurrentUser().id}}).success(function(b){a.faxQueues=_.map(b,"FaxQueueId"),a.faxQueues.forEach(function(a){i.socket.on("FAX:QUEUE:"+a,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}),i.socket.on("FAX:AGENT:"+g.getCurrentUser().id,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}).error(function(a){console.error(a)}),i.socket.on("user_has_fax_queue:save",function(b){b=_.map(b,function(a){return a.UserId=parseInt(a.UserId,10),a}),b=_.find(b,{UserId:g.getCurrentUser().id}),b&&-1===_.indexOf(a.faxQueues,b.FaxQueueId)&&(a.faxQueues.push(b.FaxQueueId),i.socket.on("FAX:QUEUE:"+b.FaxQueueId,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})}))}),i.socket.on("user_has_fax_queue:remove",function(b){_.indexOf(b.where.UserId,g.getCurrentUser().id.toString())>=0&&_.indexOf(a.faxQueues,b.where.FaxQueueId)>=0&&(a.faxQueues=_.remove(a.faxQueues,b.where.FaxQueueId),i.socket.removeAllListeners("FAX:QUEUE:"+b.where.FaxQueueId))})},a.logout=function(){e.get("/auth/local/logout").success(function(){g.logout(),c.path("/login")}).error(function(a){console.error(a)})},a.isActive=function(a){return a===c.path()}}]),angular.module("xCallyShuttleApp").service("interval",function(){var a={months:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"jan",name:"APPLICATION_JANUARY"},{value:"feb",name:"APPLICATION_FEBRUARY"},{value:"mar",name:"APPLICATION_MARCH"},{value:"apr",name:"APPLICATION_APRIL"},{value:"may",name:"APPLICATION_MAY"},{value:"jun",name:"APPLICATION_JUNE"},{value:"jul",name:"APPLICATION_JULY"},{value:"aug",name:"APPLICATION_AUGUST"},{value:"sep",name:"APPLICATION_SEPTEMBER"},{value:"oct",name:"APPLICATION_OCTOBER"},{value:"nov",name:"APPLICATION_NOVEMBER"},{value:"dec",name:"APPLICATION_DECEMBER"}],daysOfWeek:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"mon",name:"APPLICATION_MONDAY"},{value:"tue",name:"APPLICATION_TUESDAY"},{value:"wed",name:"APPLICATION_WEDNESDAY"},{value:"thu",name:"APPLICATION_THURSDAY"},{value:"fri",name:"APPLICATION_FRIDAY"},{value:"sat",name:"APPLICATION_SATURDAY"},{value:"sun",name:"APPLICATION_SUNDAY"}],daysOfMonth:["always",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]};return{interval:a}}),angular.module("xCallyShuttleApp").factory("Modal",["$rootScope","$uibModal",function(a,b){function c(c,d){console.log("openModal",d);var e=a.$new();return c=c||{},d=d||"modal-default",angular.extend(e,c),b.open({templateUrl:"components/modal/delete.html",windowClass:d,scope:e})}return{confirm:{"delete":function(a){return a=a||angular.noop,function(){console.log(Array.prototype.slice.call(arguments));var b,d=Array.prototype.slice.call(arguments),e=d.shift();b=c({modal:{dismissable:!0,title:"Confirm Delete",html:"<p>Are you sure you want to delete"+(e?"<strong> "+e+"</strong>":" selected items")+"?</p>",buttons:[{classes:"btn red",text:"Delete",click:function(a){b.close(a)}},{classes:"btn default",text:"Cancel",click:function(a){b.dismiss(a)}}]}},"over-topbar center"),b.result.then(function(b){a.apply(b,d)})}}}}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerAddModal",["$scope","$uibModalInstance","Agent","items",function(a,b,c,d){a.items=d,a.agents=c.get(function(b){a.agents=b,a.items.forEach(function(b){_.remove(a.agents.rows,{id:b.id})})}),a.selected={items:[]},a.modal={title:"APPLICATION_AGENTS_SELECTION"},a.ok=function(){b.close(_.union(_.map(a.selected.items,"id"),_.map(a.items,"id")))},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerCloseModal",["$scope","$uibModalInstance",function(a,b){a.modal={title:"APPLICATION_CONFIRM_CLOSE",text:"MESSAGE_ARE_YOU_SURE_YOU_WANT_TO_CLOSE_THE_CHAT"},a.ok=function(){b.close()},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarController",["$scope","$rootScope","$window","$http","$uibModal","$log","$timeout","$interval","Auth","Agent","User","ChatRoom","ChatMessage","socket","settings","localStorageService","xAlert","$translate","QuickSidebarFactory",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){a.emojiMessage={},a.options=s.options,a.message={body:"",user:""};var t=a.currentUser=i.getCurrentUser(),u=function(b){switch(a.messagesTab=!0,o.layout.pageQuickSidebarOpened=!0,p.set("chatRoomId",b.id),p.set("messagesTab",a.messagesTab),a.chatRoom=b,b.type){case"internal":a.currentTab=0;break;case"external":a.currentTab=2,_.find(a.chatRooms,{id:b.id})||a.chatRooms.push(b)}b.Users.length>2&&(a.currentTab=3),g(function(){angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last")},1500)},v=function(a){console.error(a)};a.$on("$includeContentLoaded",function(){p.get("chatRoomId")&&l.get({id:p.get("chatRoomId")},u,v),p.get("currentTab")&&(a.currentTab=p.get("currentTab"))}),a.agents=j.get({offset:0,limit:1e3},function(){n.syncUpdates("agent",a.agents.rows)}),a.users=k.get({offset:0,limit:1e3},function(){n.syncUpdates("user",a.users.rows)}),a.currentTab=0,a.messagesTab=!1,a.chatRooms=l.me(function(b){a.chatRooms=b},function(a){console.error(a)}),n.socket.on("report_chat:assignment",function(a){a.agentid&&l.get({id:a.chatroomid},u,v)}),n.socket.on("chat_room:save",function(b){if(a.chatRoom&&a.chatRoom.id===b.id){_.merge(a.chatRoom,b);var c=_.find(a.chatRooms,{id:b.id});c&&_.merge(c,b)}}),n.socket.on("chat_message:save",function(b){a.chatRoom&&a.chatRoom.id===b.ChatRoomId&&(a.chatRoom.ChatMessages.push(b),angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last"))}),n.socket.on("user_has_chat_room:save",function(b){var c=_.findIndex(a.chatRooms,{id:b.id});c>=0?a.chatRooms[c]=b:a.chatRooms.push(b)}),b.$on("chatMessageEvent",function(a,b){l.get({id:b.chatRoomId},u,v)}),b.$on("chatGroupEvent",function(b,c){a.currentTab=3,a.messagesTab=!0,o.layout.pageQuickSidebarOpened=!0,a.chatRoom=c}),a.goToTab=function(b){a.currentTab=b,a.messagesTab=!1,a.chatRoom=null,p.set("currentTab",a.currentTab),p.set("messagesTab",a.messagesTab),p.remove("chatRoomId")},a.goToMessage=function(a,b){a?l.users({users:[t.id,a]},u,v):l.get({id:b},u,v)},a.sendMessage=function(){a.message.body.trim().length&&m.save({ChatRoomId:a.chatRoom.id,body:a.message.body},function(){a.message.body=""},function(a){console.error(a)})},a.goBack=function(){a.messagesTab=!1,a.chatRoom=null,p.set("messagesTab",a.messagesTab),p.remove("chatRoomId")},a.closeChatRoom=function(a,b){var c=e.open({animation:!0,size:b,templateUrl:"components/quickSidebar/modal/close.html",controller:"QuickSidebarControllerCloseModal"});c.result.then(function(){l.update({id:a,status:"CLOSED"}).$promise.then(function(){q.show(r.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){q.show(a.data.message,"danger")})})},a.addAgent=function(b,c){var f=e.open({animation:!0,size:c,templateUrl:"components/quickSidebar/modal/add.html",controller:"QuickSidebarControllerAddModal",
-resolve:{items:function(){return _.map(a.chatRoom.Users?a.chatRoom.Users:[],function(a){return{id:a.id,fullname:a.fullname}})}}});f.result.then(function(a){d.put("/api/chat/rooms/"+b+"/users",{users:a}).then(function(){q.show(r.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){q.show(a.data.message,"danger")})})};var w=function(){var b=angular.element(c),d=function(){return{h:b.height(),w:b.width()}};a.$watch(d,function(b){a.style={height:b.h-46-46-46+"px"},a.style2={height:b.h-46-46-46-180+"px"}},!0),b.bind("resize",function(){a.$apply()})};w(),a.$on("$destroy",function(){n.unsyncUpdates("agent"),n.unsyncUpdates("user")})}]),angular.module("xCallyShuttleApp").directive("resizeQuickSidebar",["$window",function(a){return function(b){var c=angular.element(a);b.getWindowDimensions=function(){return{h:c.height(),w:c.width()}},b.$watch(b.getWindowDimensions,function(a){b.style={height:a.h-46-46-46+"px"}},!0),c.bind("resize",function(){b.$apply()})}}]),angular.module("xCallyShuttleApp").factory("QuickSidebarFactory",function(){return{options:{link:!0,linkTarget:"_blank",pdf:{embed:!1},image:{embed:!0},audio:{embed:!0},code:{highlight:!0,lineNumbers:!1},basicVideo:!1,video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,ytAuthKey:"_nkO9h1A7HlVyiUICO17oA"}}}}),angular.module("xCallyShuttleApp").filter("QuickSidebarFilterUsersGreaterThan",function(){return function(a,b){var c=[];return a.forEach(function(a){var d=0;a.ChatVisitor&&d++,d+=a.Users.length,d>b&&c.push(a)}),c}}).filter("QuickSidebarFilterUsersLowerThan",function(){return function(a,b){var c=[];return a.forEach(function(a){a.Users.length<b&&c.push(a)}),c}}),angular.module("xCallyShuttleApp").controller("SidebarController",["$scope","$rootScope","$resource","$location","Auth","$http","xAlert","$stateParams","socket",function(a,b,c,d,e,f,g,h,i){a.Auth=e,a.$stateParams=h,a.$on("$includeContentLoaded",function(){Metronic.init(),Layout.initSidebar()}),a.isAssociated=function(a){if(e.isAdmin())return!0;if(e.getCurrentUser().Modules)for(var b=0;b<e.getCurrentUser().Modules.length;b++)if(e.getCurrentUser().Modules[b].name===a)return!0;return!1},a.getSidebarDashboards=function(){f.get("/api/dashboards").then(function(b){a.dashboards=b.data.rows,i.syncUpdates("dashboard",a.dashboards)})["catch"](function(a){g.show("Error loading your dashboards","danger")})},a.getSidebarIntegrations=function(){f.get("/api/integrations").success(function(b){a.integrations=b.rows,i.syncUpdates("integration",a.integrations)}).error(function(a){g.show(a.message,"danger")})},a.isActive=function(a){return a===d.path()},a.$on("destroy",function(){i.unsyncUpdates("dashboard"),i.unsyncUpdates("integration")})}]),angular.module("xCallyShuttleApp").factory("socket",["$rootScope","$window","socketFactory","Auth",function(a,b,c,d){var e=d.getCurrentUser(),f=io("",{query:"token="+d.getToken()+"&userId="+(e.id||d.getUserId())+"&name="+(e.name||d.getName())+"&role="+(e.role||"agent")+"&source=browser",path:"/socket.io-client"}),g=c({ioSocket:f});return a.$on("logout",function(){g&&(g.disconnect(!0),b.location.reload())}),{socket:g,syncUpdates:function(a,b,c){c=c||angular.noop,g.on(a+":save",function(a){var d=_.find(b,{id:a.id}),e=b.indexOf(d),f="created";d?(_.merge(b[e],a),f="updated"):b.unshift(a),c(f,a,b)}),g.on(a+":remove",function(a){var d="deleted";_.remove(b,{id:a.id}),c(d,a,b)})},unsyncUpdates:function(a){g.removeAllListeners(a+":save"),g.removeAllListeners(a+":remove")},syncUpdatesByAttributes:function(a,b,c,d){d=d||angular.noop,g.on(a+":save",function(a){var e=!0;if(_.forIn(b,function(b,c){return a[c]&&a[c]===b?!0:e=!1}),e){var f=_.find(c,{id:a.id}),g=c.indexOf(f),h="created";f?(_.merge(c[g],a),h="updated"):c.unshift(a),d(h,a,c)}}),g.on(a+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},syncMailMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncMailMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")},syncFaxMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncFaxMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")}}}]),angular.module("xCallyShuttleApp").service("triggers",["VoiceQueue",function(a){var b={voice:{conditions:[{name:"APPLICATION_QUEUE",value:"queue",type:"select",resource:a,resValue:"name",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_CALL_STATUS",value:"lastevent",type:"select",arr:[{name:"called",value:"called"},{name:"connect",value:"connect"},{name:"complete",value:"complete"},{name:"rejected",value:"rejected"},{name:"abandoned",value:"abandoned"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]}],actions:[{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"},{name:"APPLICATION_INTEGRATIONS",value:"integration",propertyField:"select"}]},mail:{conditions:[{name:"APPLICATION_FROM",value:"from",type:"input",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_CC",value:"cc",type:"input",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_SUBJECT",value:"subject",type:"input",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]}],actions:[{name:"APPLICATION_TEMPLATE",value:"template"},{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"}]},chat:{conditions:[],actions:[]},fax:{conditions:[],actions:[]}},c=["voice","mail","chat","fax"];return{services:b,channels:c}}]),angular.module("xCallyShuttleApp").service("variable",function(){var a=[{title:"Unique ID",name:"uniqueid",group:"voice_queue"},{title:"Caller Number",name:"calleridnum",group:"voice_queue"},{title:"Caller Name",name:"calleridname",group:"voice_queue"},{title:"Queue",name:"queue",group:"voice_queue"},{title:"Called Number",name:"destcalleridnum",group:"voice_queue"},{title:"Called Name",name:"destcalleridname",group:"voice_queue"},{title:"Hold Time",name:"holdtime",group:"voice_queue"},{title:"Talk Time",name:"talktime",group:"voice_queue"},{title:"Connected Time",name:"agentconnectAt",group:"voice_queue"},{title:"Called Time",name:"agentcalledAt",group:"voice_queue"},{title:"DNID",name:"destexten",group:"voice_queue"},{title:"Complete Time",name:"agentcompleteAt",group:"voice_queue"},{title:"No Answer Time",name:"agentringnoanswerAt",group:"voice_queue"}];return a}),function(a,b){angular.module("adf.widget.counter",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("counter",{title:"Single Value",description:"Single Value for db results",templateUrl:"{widgetsPath}/counter/src/view.html",controller:"apiwidgetCounterViewCtrl",edit:{templateUrl:"{widgetsPath}/counter/src/edit.html",controller:"apiwidgetCounterEditCtrl"}})}]).service("apiServiceCounter",["Widget",function(a){return{get:function(b){return a.get({select:b.select,condition:encodeURIComponent(b.condition),table:b.report,controller:"counter"}).$promise.then(function(a){return a})["catch"](function(a){console.log(a)})}}}]).controller("apiwidgetCounterEditCtrl",["$scope",function(a){a.config.reportTables=[{name:"Agents",value:"report_agent"},{name:"Calls",value:"report_call"},{name:"Dials",value:"report_dial"},{name:"Queues",value:"report_queue"},{name:"Users",value:"users"},{name:"Chat Sessions",value:"report_chat_session"},{name:"Mail Sessions",value:"report_mail_session"}],a.config.colors=[{name:"Blue",value:"blue-madison"},{name:"Red",value:"red-intense"},{name:"Green",value:"green-haze"},{name:"Purple",value:"purple-plum"},{name:"Orange",value:"yellow-casablanca"},{name:"Yellow",value:"yellow-crusta"}],a.config.icons=[{name:"Talk bubbles",value:"fa-comments"},{name:"Bar Chart",value:"fa-bar-chart"},{name:"Shopping Cart",value:"fa-shopping-cart"},{name:"Globe",value:"fa-globe"}],a.config.select=a.config.select?a.config.select:"COUNT(*)",a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE"}]).controller("apiwidgetCounterViewCtrl",["$scope","$interval","apiServiceCounter",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.condition=a.config.condition?a.config.condition:null,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE",a.counterApiCall=function(){a.config.report&&c.get(a.config).then(function(b){b?b.result&&b.result.length>1||_.keys(b.result[0]).length>1?(a.tooManyResults=!0,a.result=null):(a.tooManyResults=!1,null!==_.values(b.result[0])[0]?a.result=_.values(b.result[0])[0].toString():a.result="--"):a.result=null})},a.counterApiCall();var d=b(function(){a.counterApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.counter").run(["$templateCache",function(a){a.put("{widgetsPath}/counter/src/edit.html","<form role=form><div class=form-group><label for=select>Select</label> <input type=text class=form-control id=condition ng-model=config.select placeholder=Select></div><div class=form-group><label class=control-label>From</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder=From>{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"report.value as report in config.reportTables | filter: $select.search\"><div ng-bind-html=\"report.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>Where</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder=Where></div><div class=form-group><label for=condition>{{'APPLICATION_REFRESH_TIMEOUT' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder=\"{{'APPLICATION_REFRESH_TIMEOUT' | translate}}\" min=1></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_COLOR' | translate}}</label><ui-select data-ng-model=config.color name=color theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_COLOR' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"color.value as color in config.colors | filter: $select.search\"><div ng-bind-html=\"color.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_ICON' | translate}}</label><ui-select data-ng-model=config.icon name=icon theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_ICON' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"icon.value as icon in config.icons | filter: $select.search\"><div ng-bind-html=\"icon.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_DETAILS' | translate}}</label> <input type=text class=form-control id=details ng-model=config.details maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_DETAILS' | translate}}\"></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK' | translate}}</label> <input type=text class=form-control id=link ng-model=config.link placeholder=http://yourlink></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}</label> <input type=text class=form-control id=linkText ng-model=config.linkText maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}\"></div></form>"),a.put("{widgetsPath}/counter/src/view.html",'<div class=dashboard-stat ng-class=config.color ng-if=result><div class=visual><i class=fa ng-class=config.icon></i></div><div class=details><div class=number>{{result}}</div><div class=desc>{{config.details}}</div></div><a class=more href={{config.link}}>{{config.linkText}} <i class="m-icon-swapright m-icon-white"></i></a></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=tooManyResults><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_TOO_MANY_RESULTS\' | translate}}</div><div class="alert alert-danger" role=alert ng-if="!result && !tooManyResults"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_QUERY_NOT_VALID\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.pie-chart",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("pie-chart",{title:"Pie-Chart",description:"Display a pie-chart starting from DB values",templateUrl:"{widgetsPath}/pie-chart/src/view.html",controller:"apiWidgetPieChartViewCtrl",edit:{templateUrl:"{widgetsPath}/pie-chart/src/edit.html",controller:"apiWidgetPieChartEditCtrl"}})}]).service("apiServicePieChart",["Widget",function(a){return{get:function(b){return a.get({condition:encodeURIComponent(b.condition),table:b.report,fields:b.fields,controller:"piechart"}).$promise.then(function(a){return a})["catch"](function(a){console.log(a)})}}}]).controller("apiWidgetPieChartEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"report_agent"},{name:"Calls",value:"report_call"},{name:"Dials",value:"report_dial"},{name:"Queues",value:"report_queue"},{name:"Users",value:"users"},{name:"Chat Sessions",value:"report_chat_session"},{name:"Mail Sessions",value:"report_mail_session"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetPieChartViewCtrl",["$scope","$interval","apiServicePieChart",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.pieChartApiCall=function(){a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){if(b&&b.result&&1===b.result.length){a.labels=[],a.data=[];for(var c in b.result[0])a.labels.push(c),a.data.push(b.result[0][c])}else a.labels=[],a.data=[]})},a.pieChartApiCall();var d=b(function(){a.pieChartApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.pie-chart").run(["$templateCache",function(a){a.put("{widgetsPath}/pie-chart/src/edit.html",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_FIELDS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div></form>'),a.put("{widgetsPath}/pie-chart/src/view.html",'<div ng-if=labels.length ng-style=config.style><canvas id=doughnut class="chart chart-doughnut" chart-data=data chart-labels=labels legend=true></canvas></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_METRIC_AND_CHECK_OTHER\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.table",["adf.provider"]).value("apiServiceUrlTable","/api/widgets/table").config(["dashboardProvider",function(a){a.widget("table",{title:"Table",description:"Show tabbed results from db",templateUrl:"{widgetsPath}/table/src/view.html",controller:"apiWidgetTableViewCtrl",edit:{templateUrl:"{widgetsPath}/table/src/edit.html",controller:"apiWidgetTableEditCtrl"}})}]).service("apiServiceTable",["$q","$http","apiServiceUrlTable",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetTableEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetTableViewCtrl",["$scope","$interval","apiServiceTable",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.style={"max-height":a.config.height+"px",overflow:"scroll"},a.tableApiCall=function(){a.config.condition&&a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){a.results=b})},a.tableApiCall();var d=b(function(){a.tableApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.table").run(["$templateCache",function(a){a.put("{widgetsPath}/table/src/edit.html",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_METRICS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div><div class=form-group><label for=condition>{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}</label> <input type=number class=form-control id=height ng-model=config.height placeholder="{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}" min=350></div></form>'),a.put("{widgetsPath}/table/src/view.html",'<div ng-if=results ng-style=config.style><table st-table=results class="table table-striped table-bordered table-hover"><div class=table-responsive><thead><tr><th colspan={{config.fields.length}}><div class=row><div class=col-md-6></div><div class=col-md-6><div class="input-group input-medium pull-right"><input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class=form-control type=search> <span class=input-group-addon><i class="fa fa-search"></i></span></div></div></div></th></tr><tr><th ng-repeat="field in config.fields">{{field.alias}}</th></tr></thead><tbody><tr data-ng-repeat="result in results" class=animate-repeat><td ng-repeat="field in config.fields">{{result[field.alias]}}</td></tr><tr data-ng-hide=results.length><td colspan={{config.fields.length}} style=text-align:center;><i>{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</i></td></tr></tbody><tfoot><tr><td colspan={{config.fields.length}} class=text-center><div st-pagination class=pagination st-items-by-page=10 st-displayed-pages=3></div></td></tr></tfoot></div></table></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_FIELD_AND_CHECK_OTHER\' | translate}}</div>')}])}(window),function(){angular.module("pdf",[]).directive("ngPdf",["$window",function(a){return{restrict:"E",templateUrl:function(a,b){return b.templateUrl?b.templateUrl:"partials/viewer.html"},link:function(b,c,d){var e=d.pdfUrl,f=null,g=d.page?d.page:1,h=d.scale>0?d.scale:1,i=c.find("canvas"),j=i[0],k=j.getContext("2d"),l=angular.element(a);l.on("scroll",function(){b.$apply(function(){b.scroll=l[0].scrollY})}),PDFJS.disableWorker=!0,b.pageNum=g,b.renderPage=function(a){f.getPage(a).then(function(a){var e,f,g,i={};"page-fit"!==d.scale||h?e=a.getViewport(h):(e=a.getViewport(1),f=c[0].clientWidth/e.width,g=c[0].clientHeight/e.height,h=Math.min(f,g)),j.height=e.height,j.width=e.width,i={canvasContext:k,viewport:e},a.render(i).promise.then(function(){"function"==typeof b.onPageRender&&b.onPageRender()})})},b.goPrevious=function(){b.pageToDisplay<=1||(b.pageNum=parseInt(b.pageNum)-1)},b.goNext=function(){b.pageToDisplay>=f.numPages||(b.pageNum=parseInt(b.pageNum)+1)},b.zoomIn=function(){return h=parseFloat(h)+.2,b.renderPage(b.pageToDisplay),h},b.zoomOut=function(){return h=parseFloat(h)-.2,b.renderPage(b.pageToDisplay),h},b.changePage=function(){b.renderPage(b.pageToDisplay)},b.rotate=function(){"rotate0"===j.getAttribute("class")?j.setAttribute("class","rotate90"):"rotate90"===j.getAttribute("class")?j.setAttribute("class","rotate180"):"rotate180"===j.getAttribute("class")?j.setAttribute("class","rotate270"):j.setAttribute("class","rotate0")},PDFJS.getDocument(e,null,null,b.onProgress).then(function(a){"function"==typeof b.onLoad&&b.onLoad(),f=a,b.renderPage(b.pageToDisplay),b.$apply(function(){b.pageCount=a.numPages})},function(a){a&&"function"==typeof b.onError&&b.onError(a)}),b.$watch("pageNum",function(a){b.pageToDisplay=parseInt(a),null!==f&&b.renderPage(b.pageToDisplay)})}}}])}();var Metronic=function(){var a,b=!1,c=!1,d=!1,e=!1,f=[],g="assets/",h="img/",i="plugins/",j="css/",k={blue:"#89C4F4",red:"#F3565D",green:"#1bbc9b",purple:"#9b59b6",grey:"#95a5a6",yellow:"#F8CB00"},l=function(){"rtl"===$("body").css("direction")&&(b=!0),c=!!navigator.userAgent.match(/MSIE 8.0/),d=!!navigator.userAgent.match(/MSIE 9.0/),e=!!navigator.userAgent.match(/MSIE 10.0/),e&&$("html").addClass("ie10"),(e||d||c)&&$("html").addClass("ie")},m=function(){for(var a=0;a<f.length;a++){var b=f[a];b.call()}},n=function(){var a;if(c){var b;$(window).resize(function(){b!=document.documentElement.clientHeight&&(a&&clearTimeout(a),a=setTimeout(function(){m()},50),b=document.documentElement.clientHeight)})}else $(window).resize(function(){a&&clearTimeout(a),a=setTimeout(function(){m()},50)})},o=function(){$("body").on("click",".portlet > .portlet-title > .tools > a.remove",function(a){a.preventDefault();var b=$(this).closest(".portlet");$("body").hasClass("page-portlet-fullscreen")&&$("body").removeClass("page-portlet-fullscreen"),b.find(".portlet-title .fullscreen").tooltip("destroy"),b.find(".portlet-title > .tools > .reload").tooltip("destroy"),b.find(".portlet-title > .tools > .remove").tooltip("destroy"),b.find(".portlet-title > .tools > .config").tooltip("destroy"),b.find(".portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip("destroy"),b.remove()}),$("body").on("click",".portlet > .portlet-title .fullscreen",function(a){a.preventDefault();var b=$(this).closest(".portlet");if(b.hasClass("portlet-fullscreen"))$(this).removeClass("on"),b.removeClass("portlet-fullscreen"),$("body").removeClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height","auto");else{var c=Metronic.getViewPort().height-b.children(".portlet-title").outerHeight()-parseInt(b.children(".portlet-body").css("padding-top"))-parseInt(b.children(".portlet-body").css("padding-bottom"));$(this).addClass("on"),b.addClass("portlet-fullscreen"),$("body").addClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height",c)}}),$("body").on("click",".portlet > .portlet-title > .tools > a.reload",function(a){a.preventDefault();var b=$(this).closest(".portlet").children(".portlet-body"),c=$(this).attr("data-url"),d=$(this).attr("data-error-display");c?(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),$.ajax({type:"GET",cache:!1,url:c,dataType:"html",success:function(a){Metronic.unblockUI(b),b.html(a)},error:function(a,c,e){Metronic.unblockUI(b);var f="Error on reloading the content. Please check your connection and try again.";"toastr"==d&&toastr?toastr.error(f):"notific8"==d&&$.notific8?($.notific8("zindex",11500),$.notific8(f,{theme:"ruby",life:3e3})):alert(f)}})):(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),window.setTimeout(function(){Metronic.unblockUI(b)},1e3))}),$('.portlet .portlet-title a.reload[data-load="true"]').click(),$("body").on("click",".portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand",function(a){a.preventDefault()})},p=function(){if($().uniform){var a=$("input[type=checkbox]:not(.toggle, .make-switch, .icheck), input[type=radio]:not(.toggle, .star, .make-switch, .icheck)");a.size()>0&&a.each(function(){0===$(this).parents(".checker").size()&&$(this).show()})}},q=function(){$().iCheck&&$(".icheck").each(function(){var a=$(this).attr("data-checkbox")?$(this).attr("data-checkbox"):"icheckbox_minimal-grey",b=$(this).attr("data-radio")?$(this).attr("data-radio"):"iradio_minimal-grey";a.indexOf("_line")>-1||b.indexOf("_line")>-1?$(this).iCheck({checkboxClass:a,radioClass:b,insert:'<div class="icheck_line-icon"></div>'+$(this).attr("data-label")}):$(this).iCheck({checkboxClass:a,radioClass:b})})},r=function(){$().bootstrapSwitch&&$(".make-switch").bootstrapSwitch()},s=function(){$().confirmation&&$("[data-toggle=confirmation]").confirmation({container:"body",btnOkClass:"btn-xs btn-success",btnCancelClass:"btn-xs btn-danger"})},t=function(){$("body").on("shown.bs.collapse",".accordion.scrollable",function(a){Metronic.scrollTo($(a.target))})},u=function(){if(location.hash){var a=location.hash.substr(1);$('a[href="#'+a+'"]').parents(".tab-pane:hidden").each(function(){var a=$(this).attr("id");$('a[href="#'+a+'"]').click()}),$('a[href="#'+a+'"]').click()}},v=function(){$("body").on("hide.bs.modal",function(){$(".modal:visible").size()>1&&$("html").hasClass("modal-open")===!1?$("html").addClass("modal-open"):$(".modal:visible").size()<=1&&$("html").removeClass("modal-open")}),$("body").on("show.bs.modal",".modal",function(){$(this).hasClass("modal-scroll")&&$("body").addClass("modal-open-noscroll")}),$("body").on("hide.bs.modal",".modal",function(){$("body").removeClass("modal-open-noscroll")}),$("body").on("hidden.bs.modal",".modal:not(.modal-cached)",function(){$(this).removeData("bs.modal")})},w=function(){$(".tooltips").tooltip(),$(".portlet > .portlet-title .fullscreen").tooltip({container:"body",title:"Fullscreen"}),$(".portlet > .portlet-title > .tools > .reload").tooltip({container:"body",title:"Reload"}),$(".portlet > .portlet-title > .tools > .remove").tooltip({container:"body",title:"Remove"}),$(".portlet > .portlet-title > .tools > .config").tooltip({container:"body",title:"Settings"}),$(".portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip({container:"body",title:"Collapse/Expand"})},x=function(){$("body").on("click",".dropdown-menu.hold-on-click",function(a){a.stopPropagation()})},y=function(){$("body").on("click",'[data-close="alert"]',function(a){$(this).parent(".alert").hide(),$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-close="note"]',function(a){$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-remove="note"]',function(a){$(this).closest(".note").remove(),
-a.preventDefault()})},z=function(){$('[data-hover="dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")})},A=function(){$(".popovers").popover(),$(document).on("click.bs.popover.data-api",function(b){a&&a.popover("hide")})},B=function(){Metronic.initSlimScroll(".scroller")},C=function(){jQuery.fancybox&&$(".fancybox-button").size()>0&&$(".fancybox-button").fancybox({groupAttr:"data-rel",prevEffect:"none",nextEffect:"none",closeBtn:!0,helpers:{title:{type:"inside"}}})},D=function(){(c||d)&&$("input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)").each(function(){var a=$(this);""===a.val()&&""!==a.attr("placeholder")&&a.addClass("placeholder").val(a.attr("placeholder")),a.focus(function(){a.val()==a.attr("placeholder")&&a.val("")}),a.blur(function(){(""===a.val()||a.val()==a.attr("placeholder"))&&a.val(a.attr("placeholder"))})})},E=function(){$().select2&&$(".select2me").select2({placeholder:"Select"})};return{init:function(){l(),n(),p(),q(),r(),B(),C(),E(),o(),y(),x(),u(),w(),A(),t(),v(),s(),D()},initAjax:function(){p(),q(),r(),z(),B(),E(),C(),x(),w(),A(),t(),s()},initComponents:function(){this.initAjax()},setLastPopedPopover:function(b){a=b},addResizeHandler:function(a){f.push(a)},runResizeHandlers:function(){m()},scrollTo:function(a,b){var c=a&&a.size()>0?a.offset().top:0;a&&($("body").hasClass("page-header-fixed")&&(c-=$(".page-header").height()),c+=b?b:-1*a.height()),$("html,body").animate({scrollTop:c},"slow")},initSlimScroll:function(a){$(a).each(function(){if(!$(this).attr("data-initialized")){var a;a=$(this).attr("data-height")?$(this).attr("data-height"):$(this).css("height"),$(this).slimScroll({allowPageScroll:!0,size:"7px",color:$(this).attr("data-handle-color")?$(this).attr("data-handle-color"):"#bbb",wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",railColor:$(this).attr("data-rail-color")?$(this).attr("data-rail-color"):"#eaeaea",position:b?"left":"right",height:a,alwaysVisible:"1"==$(this).attr("data-always-visible")?!0:!1,railVisible:"1"==$(this).attr("data-rail-visible")?!0:!1,disableFadeOut:!0}),$(this).attr("data-initialized","1")}})},destroySlimScroll:function(a){$(a).each(function(){if("1"===$(this).attr("data-initialized")){$(this).removeAttr("data-initialized"),$(this).removeAttr("style");var a={};$(this).attr("data-handle-color")&&(a["data-handle-color"]=$(this).attr("data-handle-color")),$(this).attr("data-wrapper-class")&&(a["data-wrapper-class"]=$(this).attr("data-wrapper-class")),$(this).attr("data-rail-color")&&(a["data-rail-color"]=$(this).attr("data-rail-color")),$(this).attr("data-always-visible")&&(a["data-always-visible"]=$(this).attr("data-always-visible")),$(this).attr("data-rail-visible")&&(a["data-rail-visible"]=$(this).attr("data-rail-visible")),$(this).slimScroll({wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",destroy:!0});var b=$(this);$.each(a,function(a,c){b.attr(a,c)})}})},scrollTop:function(){Metronic.scrollTo()},blockUI:function(a){a=$.extend(!0,{},a);var b="";if(b=a.animate?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><div class="block-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div></div>':a.iconOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""></div>':a.textOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>":'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>",a.target){var c=$(a.target);c.height()<=$(window).height()&&(a.cenrerY=!0),c.block({message:b,baseZ:a.zIndex?a.zIndex:1e3,centerY:void 0!==a.cenrerY?a.cenrerY:!1,css:{top:"10%",border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})}else $.blockUI({message:b,baseZ:a.zIndex?a.zIndex:1e3,css:{border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})},unblockUI:function(a){a?$(a).unblock({onUnblock:function(){$(a).css("position",""),$(a).css("zoom","")}}):$.unblockUI()},startPageLoading:function(a){a&&a.animate?($(".page-spinner-bar").remove(),$("body").append('<div class="page-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>')):($(".page-loading").remove(),$("body").append('<div class="page-loading"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif"/>&nbsp;&nbsp;<span>'+(a&&a.message?a.message:"Loading...")+"</span></div>"))},stopPageLoading:function(){$(".page-loading, .page-spinner-bar").remove()},alert:function(a){a=$.extend(!0,{container:"",place:"append",type:"success",message:"",close:!0,reset:!0,focus:!0,closeInSeconds:0,icon:""},a);var b=Metronic.getUniqueID("Metronic_alert"),c='<div id="'+b+'" class="Metronic-alerts alert alert-'+a.type+' fade in">'+(a.close?'<button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>':"")+(""!==a.icon?'<i class="fa-lg fa fa-'+a.icon+'"></i>  ':"")+a.message+"</div>";return a.reset&&$(".Metronic-alerts").remove(),a.container?"append"==a.place?$(a.container).append(c):$(a.container).prepend(c):$("body").hasClass("page-container-bg-solid")?$(".page-title").after(c):$(".page-bar").size()>0?$(".page-bar").after(c):$(".page-breadcrumb").after(c),a.focus&&Metronic.scrollTo($("#"+b)),a.closeInSeconds>0&&setTimeout(function(){$("#"+b).remove()},1e3*a.closeInSeconds),b},initUniform:function(a){a?$(a).each(function(){0===$(this).parents(".checker").size()&&($(this).show(),$(this).uniform())}):p()},updateUniform:function(a){$.uniform.update(a)},initFancybox:function(){C()},getActualVal:function(a){return a=$(a),a.val()===a.attr("placeholder")?"":a.val()},getURLParameter:function(a){var b,c,d=window.location.search.substring(1),e=d.split("&");for(b=0;b<e.length;b++)if(c=e[b].split("="),c[0]==a)return unescape(c[1]);return null},isTouchDevice:function(){try{return document.createEvent("TouchEvent"),!0}catch(a){return!1}},getViewPort:function(){var a=window,b="inner";return"innerWidth"in window||(b="client",a=document.documentElement||document.body),{width:a[b+"Width"],height:a[b+"Height"]}},getUniqueID:function(a){return"prefix_"+Math.floor(Math.random()*(new Date).getTime())},isIE8:function(){return c},isIE9:function(){return d},isRTL:function(){return b},isAngularJsApp:function(){return"undefined"==typeof angular?!1:!0},getAssetsPath:function(){return g},setAssetsPath:function(a){g=a},setGlobalImgPath:function(a){h=a},getGlobalImgPath:function(){return g+h},setGlobalPluginsPath:function(a){i=a},getGlobalPluginsPath:function(){return g+i},getGlobalCssPath:function(){return g+j},getBrandColor:function(a){return k[a]?k[a]:""},getResponsiveBreakpoint:function(a){var b={xs:480,sm:768,md:900,lg:1200};return b[a]?b[a]:0}}}(),Layout=function(){var a="img/",b="css/",c=Metronic.getResponsiveBreakpoint("md"),d=function(){var a,b=$(".page-content"),d=$(".page-sidebar"),e=$("body");if(e.hasClass("page-footer-fixed")===!0&&e.hasClass("page-sidebar-fixed")===!1){var f=Metronic.getViewPort().height-$(".page-footer").outerHeight()-$(".page-header").outerHeight();b.height()<f&&b.attr("style","min-height:"+f+"px")}else{if(e.hasClass("page-sidebar-fixed"))a=g(),e.hasClass("page-footer-fixed")===!1&&(a-=$(".page-footer").outerHeight());else{var h=$(".page-header").outerHeight(),i=$(".page-footer").outerHeight();a=Metronic.getViewPort().width<c?Metronic.getViewPort().height-h-i:d.height()+20,a+h+i<=Metronic.getViewPort().height&&(a=Metronic.getViewPort().height-h-i)}b.attr("style","min-height:"+a+"px")}},e=function(a,b){var d=location.hash.toLowerCase(),e=$(".page-sidebar-menu");if("click"===a||"set"===a?b=$(b):"match"===a&&e.find("li > a").each(function(){var a=$(this).attr("href").toLowerCase();return a.length>1&&d.substr(1,a.length-1)==a.substr(1)?void(b=$(this)):void 0}),b&&0!=b.size()&&"javascript:;"!==b.attr("href").toLowerCase()&&"#"!==b.attr("href").toLowerCase()){parseInt(e.data("slide-speed")),e.data("keep-expanded");e.find("li.active").removeClass("active"),e.find("li > a > .selected").remove(),e.hasClass("page-sidebar-menu-hover-submenu")===!1?e.find("li.open").each(function(){0===$(this).children(".sub-menu").size()&&($(this).removeClass("open"),$(this).find("> a > .arrow.open").removeClass("open"))}):e.find("li.open").removeClass("open"),b.parents("li").each(function(){$(this).addClass("active"),$(this).find("> a > span.arrow").addClass("open"),1===$(this).parent("ul.page-sidebar-menu").size()&&$(this).find("> a").append('<span class="selected"></span>'),1===$(this).children("ul.sub-menu").size()&&$(this).addClass("open")}),"click"===a&&Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click()}},f=function(){jQuery(".page-sidebar").on("click","li > a",function(a){var b=$(this).next().hasClass("sub-menu");if(!(Metronic.getViewPort().width>=c&&1===$(this).parents(".page-sidebar-menu-hover-submenu").size())){if(b===!1)return void(Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click());if(!$(this).next().hasClass("sub-menu always-open")){var e=$(this).parent().parent(),f=$(this),g=$(".page-sidebar-menu"),h=jQuery(this).next(),i=g.data("auto-scroll"),j=parseInt(g.data("slide-speed")),k=g.data("keep-expanded");k!==!0&&(e.children("li.open").children("a").children(".arrow").removeClass("open"),e.children("li.open").children(".sub-menu:not(.always-open)").slideUp(j),e.children("li.open").removeClass("open"));var l=-200;h.is(":visible")?(jQuery(".arrow",jQuery(this)).removeClass("open"),jQuery(this).parent().removeClass("open"),h.slideUp(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})):b&&(jQuery(".arrow",jQuery(this)).addClass("open"),jQuery(this).parent().addClass("open"),h.slideDown(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})),a.preventDefault()}}}),jQuery(".page-sidebar").on("click"," li > a.ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=jQuery(".page-sidebar ul"),e=($(".page-content"),$(".page-content .page-content-body"));d.children("li.active").removeClass("active"),d.children("arrow.open").removeClass("open"),$(this).parents("li").each(function(){$(this).addClass("active"),$(this).children("a > span.arrow").addClass("open")}),$(this).parents("li").addClass("active"),Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),Metronic.startPageLoading();var f=$(this);$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){0===f.parents("li.open").size()&&$(".page-sidebar-menu > li.open > a").click(),Metronic.stopPageLoading(),e.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){Metronic.stopPageLoading(),e.html("<h4>Could not load the requested content.</h4>")}})}),jQuery(".page-content").on("click",".ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=($(".page-content"),$(".page-content .page-content-body"));Metronic.startPageLoading(),Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){Metronic.stopPageLoading(),d.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){d.html("<h4>Could not load the requested content.</h4>"),Metronic.stopPageLoading()}})}),i(),$(".page-sidebar").on("click",".sidebar-search .remove",function(a){a.preventDefault(),$(".sidebar-search").removeClass("open")}),$(".page-sidebar .sidebar-search").on("keypress","input.form-control",function(a){return 13==a.which?($(".sidebar-search").submit(),!1):void 0}),0!==$(".sidebar-search").size()&&($(".sidebar-search .input-group").on("click",function(a){a.stopPropagation()}),$("body").on("click",function(){$(".sidebar-search").hasClass("open")&&$(".sidebar-search").removeClass("open")}))},g=function(){var a=Metronic.getViewPort().height-$(".page-header").outerHeight();return $("body").hasClass("page-footer-fixed")&&(a-=$(".page-footer").outerHeight()),a},h=function(){var a=$(".page-sidebar-menu");return Metronic.destroySlimScroll(a),0===$(".page-sidebar-fixed").size()?void d():void(Metronic.getViewPort().width>=c&&(a.attr("data-height",g()),Metronic.initSlimScroll(a),d()))},i=function(){var a=$("body");a.hasClass("page-sidebar-fixed")&&$(".page-sidebar").on("mouseenter",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").removeClass("page-sidebar-menu-closed")}).on("mouseleave",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").addClass("page-sidebar-menu-closed")})},j=function(){$("body");$.cookie&&"1"===$.cookie("sidebar_closed")&&Metronic.getViewPort().width>=c?($("body").addClass("page-sidebar-closed"),$(".page-sidebar-menu").addClass("page-sidebar-menu-closed")):$.cookie&&$.cookie("sidebar_closed","0")},k=function(){$(".page-header").on("click",'.hor-menu a[data-toggle="tab"]',function(a){a.preventDefault();var b=$(".hor-menu .nav"),c=b.find("li.current");$("li.active",c).removeClass("active"),$(".selected",c).remove();var d=$(this).parents("li").last();d.addClass("current"),d.find("a:first").append('<span class="selected"></span>')}),$(".page-header").on("click",".search-form",function(a){$(this).addClass("open"),$(this).find(".form-control").focus(),$(".page-header .search-form .form-control").on("blur",function(a){$(this).closest(".search-form").removeClass("open"),$(this).unbind("blur")})}),$(".page-header").on("keypress",".hor-menu .search-form .form-control",function(a){return 13==a.which?($(this).closest(".search-form").submit(),!1):void 0}),$(".page-header").on("mousedown",".search-form.open .submit",function(a){a.preventDefault(),a.stopPropagation(),$(this).closest(".search-form").submit()}),$('[data-hover="megamenu-dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")}),$(document).on("click",".mega-menu-dropdown .dropdown-menu",function(a){a.stopPropagation()})},l=function(){$("body").on("shown.bs.tab",'a[data-toggle="tab"]',function(){d()})},m=function(){var a=300,b=500;navigator.userAgent.match(/iPhone|iPad|iPod/i)?$(window).bind("touchend touchcancel touchleave",function(c){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}):$(window).scroll(function(){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}),$(".scroll-to-top").click(function(a){return a.preventDefault(),$("html, body").animate({scrollTop:0},b),!1})},n=function(){var a,b=$(".full-height-content");if(a=Metronic.getViewPort().height-$(".page-header").outerHeight(!0)-$(".page-footer").outerHeight(!0)-$(".page-title").outerHeight(!0)-$(".page-bar").outerHeight(!0),b.hasClass("portlet")){var d=b.find(".portlet-body");if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(d.find(".full-height-content-body"));a=a-b.find(".portlet-title").outerHeight(!0)-parseInt(b.find(".portlet-body").css("padding-top"))-parseInt(b.find(".portlet-body").css("padding-bottom"))-2,b.hasClass("full-height-content-scrollable")?(a-=35,d.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(d.find(".full-height-content-body"))):d.css("min-height",a)}else{if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(b.find(".full-height-content-body"));b.hasClass("full-height-content-scrollable")?(a-=35,b.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(b.find(".full-height-content-body"))):b.css("min-height",a)}};return{initHeader:function(){k()},setSidebarMenuActiveLink:function(a,b){e(a,b)},initSidebar:function(){h(),f(),j(),Metronic.isAngularJsApp()&&e("match"),Metronic.addResizeHandler(h)},initContent:function(){n(),l(),Metronic.addResizeHandler(d),Metronic.addResizeHandler(n)},initFooter:function(){m()},init:function(){this.initHeader(),this.initSidebar(),this.initContent(),this.initFooter()},fixContentHeight:function(){d()},initFixedSidebarHoverEffect:function(){i()},initFixedSidebar:function(){h()},getLayoutImgPath:function(){return Metronic.getAssetsPath()+a},getLayoutCssPath:function(){return Metronic.getAssetsPath()+b}}}();angular.module("xCallyShuttleApp").run(["$templateCache",function(a){a.put("app/analytic/extracted/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-file-pdf-o"></i>\n                                      <a href="/analytics/extracted/list">{{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-file-pdf-o font-green-sharp"></i>\n                                     <span class="caption-subject">{{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_METRIC\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.metric" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TABLE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.table.$touched || forms.metric.$submitted) && forms.metric.table.$invalid}">\n      <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.table" name="table" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="table.value as table in tables | filter: $select.search">\n          <div ng-bind-html="table.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.metric.table.$touched || forms.metric.$submitted) && forms.metric.table.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TABLE-->\n\n    <!-- START METRIC -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$invalid}">\n      <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="item.metric" required/></textarea>\n      <span data-ng-show="(forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END METRIC -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.metric.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/metric/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-calculator"></i>\n                                       <a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-calculator font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_METRICS\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_METRIC\' | translate }}\n                                                </button>\n                                     </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMetric()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n                                       <i data-ng-show="metric" class="fa fa-angle-right"></i>\n                               </li>\n                         <li data-ng-show="metric">\n                                    <a href="#">{{metric.name}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/metric.png" class="img-responsive">\n                             </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{metric.name}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.analytics.metrics.view.settings\')}">\n                                                    <a data-ng-href="/analytics/metrics/view/{{metric.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_METRIC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateMetric()" novalidate>\n\n                                                      <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="metric.name" required/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START TABLE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.table.$touched || forms.general.$submitted) && forms.general.table.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="metric.table" name="table" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="table.value as table in tables | filter: $select.search">\n                                                                          <div ng-bind-html="table.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.general.table.$touched || forms.general.$submitted) && forms.general.table.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TABLE-->\n\n                                                   <!-- START METRIC -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="metric.metric" required/></textarea>\n                                                             <span data-ng-show="(forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END METRIC -->\n\n                                                 <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/analytic/report/list/copy.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_COPY_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="portlet light bordered">\n    <div class="portlet-title">\n      <div class="caption font-green-sharp" style="padding-left:10px;">\n        <i class="icon-folder font-green-sharp"></i>\n        <span class="caption-subject">{{ \'APPLICATION_COPY_TO\' | translate }} </span>\n      </div>\n    </div>\n    <div class="portlet-body">\n      <div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;"></div>\n    </div>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-disabled="!customTree.get_selected(true).pop().id" ng-click="ok()" ng-disabled="forms.report.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.report" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_PATH\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_PATH\' | translate}}" class="form-control" data-ng-model="path" disabled/>\n      <span data-ng-show="(forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.report.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),
-a.put("app/analytic/report/list/extract.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_EXTRACT_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body" style="text-align:center;">\n  <form name="forms.report" class="form-inline mbottom20" novalidate>\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DATE_RANGE\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="daterange" name="dates" ranges="ranges" placeholder="{{\'APPLICATION_DATE_RANGE\' | translate}}" class="form-control" data-ng-model="dates" required/>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn default green-jungle" type="button" data-ng-click="extract(\'csv\')"><i class="fa fa-file-excel-o"></i> {{ \'APPLICATION_SAVE_AS_CSV\' | translate }}</button>\n  <button class="btn default red-intense" type="button" data-ng-click="extract(\'pdf\')"><i class="fa fa-file-pdf-o"></i> {{ \'APPLICATION_SAVE_AS_PDF\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTrees()">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-book-open"></i>\n                                        <a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n                <div class="col-fixed">\n                       <!-- BEGIN Portlet PORTLET-->\n                 <div class="portlet light bordered">\n                          <div class="portlet-title">\n                                   <div class="caption font-green-sharp" style="padding-left:10px;">\n                                             <i class="icon-folder font-green-sharp"></i>\n                                          <span class="caption-subject">{{ \'APPLICATION_FOLDERS\' | translate }} </span>\n                                       </div>\n                                        <div class="inputs">\n                                          <div class="portlet-input input-inline input-small">\n                                                  <div class="input-icon right">\n                                                                <i class="icon-magnifier"></i>\n                                                                <input type="text" data-ng-model="searchField" data-ng-change="searchTrees()" class="form-control input-circle" placeholder="search...">\n                                                      </div>\n                                                </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <div js-tree="defaultTreeConfig" ng-model="defaultTreeData" should-apply="ac()" tree="defaultTreeInstance" tree-events="ready:initDefaultScopeTree;select_node:selectDefaultNode;"></div>\n                                     <div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;select_node:selectCustomNode;rename_node:updateCustomTree;delete_node:updateCustomTree;move_node:updateCustomTree;create_node:updateCustomTree;"></div>\n                                </div>\n                        </div>\n                        <!-- END Portlet PORTLET-->\n           </div>\n                <div class="row tree-row">\n                    <div class="col-md-12">\n                               <!-- BEGIN Portlet PORTLET-->\n                         <div class="portlet light bordered">\n                                  <div class="portlet-title">\n                                           <div class="caption font-green-sharp">\n                                                        <i class="icon-book-open font-green-sharp"></i>\n                                                       <span class="caption-subject">{{ \'APPLICATION_REPORTS\' | translate }}<span data-ng-if="selectedNode"> - {{selectedNode}}</span></span>\n                                              </div>\n                                                <div data-ng-if="!defaultTreeActive" class="actions">\n                                                 <div class="btn-group" data-ng-show="id.length">\n                                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                                           </a>\n                                                  </div>\n                                                        <div class="btn-group">\n                                                               <span class="btn default btn-file">\n                                                           <span class="fileinput-new">\n                                                          <i class="icon-cloud-upload"></i> {{\'APPLICATION_IMPORT_FROM_JSON\' | translate}}</span>\n                                                             <input type="file" on-read-file="import($fileContent)"/>\n                                                              </span>\n                                                       </div>\n                                                        <div class="btn-group">\n                                                               <button class="btn green-jungle " ng-click="create()">\n                                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_REPORT\' | translate }}\n                                                                </button>\n                                                     </div>\n                                                </div>\n                                        </div>\n                                        <div class="portlet-body">\n                                            <div ng-slide-down="gridOptions" lazy-render duration="1">\n                                            <!-- START TABLE -->\n                                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                                              </div>\n                                                <!-- END TABLE -->\n                                    </div>\n                                        </div>\n                                </div>\n                                <!-- END Portlet PORTLET-->\n                   </div>\n                </div>\n        </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/report/list/preview.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_REPORT_PREVIEW\' | translate }}</h3>\n</div>\n<div class="modal-body" style="text-align:center;">\n  <form name="forms.report" class="form-inline mbottom20" novalidate>\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DATE_RANGE\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="daterange" name="dates" ranges="ranges" placeholder="{{\'APPLICATION_DATE_RANGE\' | translate}}" class="form-control" data-ng-model="dates" data-ng-change="getPage()" required/>\n    </div>\n  </form>\n  <div ng-slide-down="showResult" lazy-render duration="1">\n    <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-exporter class="grid extract-grid">\n      <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n    </div>\n  </div>\n</div>\n<div class="modal-footer">\n<button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getReport()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-book-open"></i>\n                                        <a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n                                       <i data-ng-show="report" class="fa fa-angle-right"></i>\n                               </li>\n                         <li data-ng-show="report">\n                                    <a href="#">{{report.name}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/report.png" class="img-responsive">\n                             </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{report.name}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.analytics.reports.view.settings\')}">\n                                                    <a data-ng-href="/analytics/reports/view/{{report.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/report/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_REPORT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li>\n                                          <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li class="active">\n                                           <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_BUILD\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab" data-ng-click="showResult = true">{{ \'APPLICATION_TEST_PREVIEW\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n\n                          <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane" id="tab_1_1">\n                                           <form name="forms.general" data-ng-submit="forms.report.$valid && forms.general.$valid && updateReport()" novalidate>\n\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="report.name" required/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="report.description"></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TABLE INPUT -->\n\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n\n                                     </div>\n                                        <!-- END GENERAL TAB -->\n                                      <div class="tab-pane active" id="tab_1_2">\n                                            <form name="forms.report" data-ng-submit="forms.report.$valid && forms.general.$valid && updateReport()" novalidate>\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.report.table.$touched || forms.report.$submitted) && forms.report.table.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="report.table" name="table" theme="bootstrap" required>\n                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="table.table as table in tables | filter: $select.search">\n                                                                  <div ng-bind-html="table.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span class="help-block">\n                                                     </span>\n                                                       <span data-ng-show="(forms.report.table.$touched || forms.report.$submitted) && forms.report.table.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END TABLE INPUT-->\n                                               <div data-ng-if="report.table" class="mbottom20 pbottom20">\n                                           <div class="portlet-title tabbable-line">\n                                                     <div class="caption caption-md">\n                                                              <i class="icon-globe theme-font hide"></i>\n                                                            <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_FIELDS\' | translate}} </span>\n                                                        </div>\n                                                </div>\n                                                                <!-- START TABLE -->\n                                                          <table class="table table-striped table-bordered table-hover">\n                                                                        <thead>\n                                                                               <tr>\n                                                                                  <th>{{ \'APPLICATION_FIELD\' | translate }} / {{ \'APPLICATION_METRIC\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_ALIAS\' | translate }}</th>\n                                                                                      <th>{{ \'APPLICATION_FUNCTION\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_GROUP_BY\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_ORDER_BY\' | translate }}</th>\n                                                                                   <th></th>\n                                                                                     <th></th>\n                                                                             </tr>\n                                                                 </thead>\n                                                                              <tbody ui-sortable="sortableOptions" data-ng-model="report.Fields">\n                                                                                   <tr data-ng-repeat="field in report.Fields">\n                                                                                          <td>\n                                                                                                  <!-- START FIELD -->\n                                                                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.report.$submitted && !field.field}">\n                                                                                                             <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.field" dynamic-name="randomName()" theme="bootstrap" on-select="setMetricId($item,$index)" required>\n                                                                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}"><span ng-bind-html="$select.selected.name"></span></ui-select-match>\n                                                                                                                     <ui-select-choices repeat="tableField.value as tableField in tableFields | filter: $select.search">\n                                                                                                                           <div ng-bind-html="tableField.name | highlight: $select.search"></div>\n                                                                                                                        </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                          <span data-ng-show="forms.report.$submitted && !field.field" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                                                                                                       </div>\n                                                                                                        <!-- END FIELD-->\n                                                                                             </td>\n                                                                                         <td>\n                                                                                                  <!-- START ALIAS -->\n                                                                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.report.$submitted && !field.alias}">\n                                                                                                             <!-- <label class="control-label">{{\'APPLICATION_ALIAS\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <input type="text" dynamic-name="randomName()" placeholder="{{\'APPLICATION_ALIAS\' | translate}}" class="form-control" data-ng-model="field.alias" required/>\n                                                                                                                <span data-ng-show="forms.report.$submitted && !field.alias" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                                                                                                       </div>\n                                                                                                        <!-- END ALIAS -->\n                                                                                            </td>\n                                                                                         <td>\n                                                                                                  <!-- START FUNCTION -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.function" name="function" theme="bootstrap">\n                                                                                                                  <ui-select-match placeholder="{{\'APPLICATION_FUNCTION\' | translate}}" allow-clear>{{$select.selected.name}}</ui-select-match>\n                                                                                                                       <ui-select-choices repeat="function.value as function in functions | filter: $select.search">\n                                                                                                                         <div ng-bind-html="function.name | highlight: $select.search"></div>\n                                                                                                                  </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END FUNCTION-->\n                                                                                          </td>\n                                                                                         <td>\n                                                                                                  <!-- START GROUP_BY -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.groupBy" name="groupBy" theme="bootstrap" required>\n                                                                                                                   <ui-select-match placeholder="{{\'APPLICATION_GROUP_BY\' | translate}}">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                       <ui-select-choices repeat="groupBy.value as groupBy in groupByField | filter: $select.search">\n                                                                                                                                {{$translate.instant(groupBy.name)}}\n                                                                                                                  </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END GROUP_BY-->\n                                                                                          </td>\n                                                                                         <td>\n                                                                                                  <!-- START ORDER_BY -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.orderBy" name="orderBy" theme="bootstrap">\n                                                                                                                    <ui-select-match placeholder="{{\'APPLICATION_ORDER_BY\' | translate}}" allow-clear>{{$select.selected}}</ui-select-match>\n                                                                                                                    <ui-select-choices repeat="orderBy in [\'ASC\',\'DESC\'] | filter: $select.search">\n                                                                                                                           <div ng-bind-html="orderBy | highlight: $select.search"></div>\n                                                                                                                        </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END TABLE INPUT-->\n                                                                                               </td>\n                                                                                         <td class="report-field-remove">\n                                                                                                      <button class="btn red" type="button" data-ng-click="removeField($index)"><i class="fa fa-times"></i></button>\n                                                                                                </td>\n                                                                                         <td class="report-field-handle">\n                                                                                                      <!-- <img data-ng-src="assets/images/move.png" class="img-responsive"> -->\n                                                                                            </td>\n                                                                                 </tr>\n                                                                                 <tr data-ng-hide="report.Fields.length" class="unsortable">\n                                                                                           <td colspan="7" style="text-align:center;">\n                                                                                                   <i>{{ \'MESSAGE_ADD_A_FIELD\' | translate }}</i>\n                                                                                              </td>\n                                                                                 </tr>\n                                                                         </tbody>\n                                                              </table>\n                                                              <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}\n                                                          </button>\n                                                             <!-- END TABLE -->\n                                                    </div>\n                                                                <div data-ng-if="report.Fields.length" class="mbottom20 pbottom20">\n                                                                   <div class="portlet-title tabbable-line">\n                                                                             <div class="caption caption-md">\n                                                                                      <i class="icon-globe theme-font hide"></i>\n                                                                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONDITIONS\' | translate}} </span>\n                                                                            </div>\n                                                                        </div>\n                                                                        <div class="alert alert-info">\n                                                                                        <strong>Output</strong><br>\n                                                                                   <span ng-bind-html="output"></span>\n                                                                   </div>\n\n                                                                      <report-builder group="report.conditions.group" fields="report.Fields" forms="forms" firstCall=\'true\'></report-builder>\n                                                             </div>\n                                                                <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                          </form>\n                                       </div>\n                                        <div class="tab-pane" id="tab_1_3">\n                                           <div ng-slide-down="showResult" lazy-render duration="0.5">\n                                                   <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-move-columns class="grid">\n                                                             <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                                                      </div>\n                                                </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/offline/list/list.html",'<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-login"></i>\n                                            <a href="/channels/chat/offline/list">Offline</a>\n                                     </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-question font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/offline/view/view.detail.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body row" data-ng-init="initView()">\n                              <div class="col-md-6">\n                                        <div class="news-blocks">\n                                             <h3>\n                                                  <a href="#" class="inactive-link">{{\'APPLICATION_MESSAGE\' | translate}}</a>\n                                                 <hr>\n                                          </h3>\n                                         <div class="news-block-tags">\n                                                 <em am-time-ago="chatVisitor.ChatEnquiry.createdAt"></em>\n                                             </div>\n                                                <p>\n                                                   {{chatVisitor.ChatEnquiry.text}}\n                                              </p>\n                                  </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <div class="news-blocks">\n                                             <h3>\n                                                  <a href="#" class="inactive-link">{{\'APPLICATION_VISITOR\' | translate}}</a>\n                                                 <hr>\n                                          </h3>\n                                         <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-user"></i>\n                                                     <a href="#" class="inactive-link">{{chatVisitor.fullname}}</a>\n                                                </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-envelope"></i>\n                                                 <a href="#" class="inactive-link">{{chatVisitor.email}}</a>\n                                           </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-globe"></i>\n                                                    <a href="#" class="inactive-link">{{chatVisitor.remote_address}}</a>\n                                          </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-home"></i>\n                                                     <a href="#" class="inactive-link">{{chatVisitor.referer}} - {{chatVisitor.ChatWebsite.name}}</a>\n                                              </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-cursor"></i>\n                                                   <a href="#" class="inactive-link">{{chatVisitor.browser}}</a>\n                                         </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-screen-desktop"></i>\n                                                   <a href="#" class="inactive-link">{{chatVisitor.os}}</a>\n                                              </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/offline/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-login"></i>\n                                    <a href="/channels/chat/offline/list">Offline</a>\n                             </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/enquiry.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- START USER TITLE -->\n                             <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatVisitor.ChatEnquiry.email}}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatVisitor.ChatEnquiry.username}}\n                                  </div>\n                                </div>\n                                <!-- END USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.offline.view.detail\')}">\n                                                  <a data-ng-href="/channels/chat/offline/view/{{chatVisitor.id}}/detail">\n                                                      <i class="icon-tag"></i>\n                                                      {{ \'APPLICATION_DETAIL\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/online/list/list.html",'<div class="row">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-login"></i>\n                                            <a href="/channels/chat/offline/list">Offline</a>\n                                     </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-question font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/online/view/view.detail.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body row" data-ng-init="initView()">\n                              <div class="col-md-6">\n                                        <div class="news-blocks">\n                                             <h3>\n                                                  <a href="#" class="inactive-link">{{\'APPLICATION_MESSAGES\' | translate}}</a>\n                                                        <!-- <a href="#" data-ng-click="export()" data-ng-show="chatRoom.ChatMessages.length" class="btn btn-sm blue pull-right"><i class="icon-cloud-download"></i> {{\'APPLICATION_EXPORT\' | translate}} CSV </a> -->\n                                                      <a href="api/chat/rooms/{{chatRoom.id}}/export" target="_blank" data-ng-show="chatRoom.ChatMessages.length" class="btn btn-sm blue pull-right"><i class="icon-cloud-download"></i> {{\'APPLICATION_EXPORT\' | translate}} CSV </a>\n                                                    <hr>\n                                          </h3>\n                                         <div class="news-block-tags">\n                                                 <em am-time-ago="chatRoom.ChatVisitor.ChatEnquiry.createdAt"></em>\n                                            </div>\n                                                <p>\n                                                   <div ng-scrollbars ng-scrollbars-config="config">\n                                                             <ul class="chats">\n                                                                    <li data-ng-class="{\'out\': message.User, \'in\':message.ChatVisitor}" data-ng-repeat="message in chatRoom.ChatMessages | orderBy:\'createdAt\'">\n                                                                            <img class="avatar" data-ng-src="api/users/avatar/{{message.User.userpic || \'unknown_avatar\'}}">\n                                                                            <div class="message">\n                                                                                 <span class="arrow">\n                                                                                  </span>\n                                                                                       <a href="#" class="name">\n                                                                                             {{message.User ? message.User.fullname : message.ChatVisitor.fullname}}\n                                                                                       </a>\n                                                                                  <span class="datetime">\n                                                                                               at {{message.createdAt | date: \'medium\'}}\n                                                                                   </span>\n                                                                                       <span class="body">\n                                                                                           {{message.body}}\n                                                                                      </span>\n                                                                               </div>\n                                                                        </li>\n                                                         </ul>\n                                                 </div>\n                                                </div>\n                                        </div>\n                                        <div class="col-md-6">\n                                                <div class="news-blocks">\n                                                     <h3>\n                                                          <a href="#" class="inactive-link">{{\'APPLICATION_VISITOR\' | translate}}</a>\n                                                         <hr>\n                                                  </h3>\n                                                 <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-user"></i>\n                                                             <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.fullname}}</a>\n                                                       </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-envelope"></i>\n                                                         <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.email}}</a>\n                                                  </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-globe"></i>\n                                                            <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.remote_address}}</a>\n                                                 </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-home"></i>\n                                                             <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.referer}} - {{chatRoom.ChatVisitor.ChatWebsite.name}}</a>\n                                                    </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-cursor"></i>\n                                                           <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.browser}}</a>\n                                                        </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-screen-desktop"></i>\n                                                           <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.os}}</a>\n                                                     </div>\n                                                </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n'),a.put("app/channels/chat/online/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-login"></i>\n                                    <a href="/channels/chat/online/list">Online</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/enquiry.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- START USER TITLE -->\n                             <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatRoom.ChatVisitor.email}}\n                                        </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatRoom.ChatVisitor.fullname}}\n                                     </div>\n                                </div>\n                                <!-- END USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.online.view.detail\')}">\n                                                   <a data-ng-href="/channels/chat/online/view/{{chatRoom.id}}/detail">\n                                                  <i class="icon-tag"></i>\n                                                      {{ \'APPLICATION_DETAIL\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/channels/chat/preview/preview.html",'<style>\n.xc_rating {\n  text-align: center;\n}\n.xc_rating_label > input{ /* HIDE RADIO */\n  display:none;\n}\n.xc_rating_label > input + img{ /* IMAGE STYLES */\n  cursor:pointer;\n  border:2px solid transparent;\n}\n.xc_rating_label > input:checked + img{ /* (CHECKED) IMAGE STYLES */\n  /*border:2px solid #f00;*/\n  background-color: #efefef;\n}\n\n.xc_label {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\n\n.xc_online_message,\n.xc_offline_message,\n.xc_rating_message\n{\n  text-align: center;\n}\n\n.xc_div_group {\n  margin: 10px 0 10px 0;\n}\n.xc_footer\n{\n  text-align: center;\n  padding-bottom: 5px;\n}\n\n.xc_powered\n{\n  color: grey;\n  font: 10px/16px "Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;\n  padding-bottom: 5px;\n}\n\n.xc_chat_container\n{\n  //width:379px;\n  //position:fixed;\n  //bottom:0;\n  //right:50px;\n  z-index:9999;\n  background-color:transparent;\n}\n\n.xc_chat_container *\n{\n  font-family:Arial,Helvetica,sans-serif;\n  font-size:13px;\n  margin:0;\n  padding:0;\n}\n\n.xc_chat_container p\n{\n  margin:5px 0;\n}\n\n.xc_signup_wrapper\n{\n  max-height:375px;\n}\n\n.xc_conversation_container\n{\n  max-height:375px;\n  list-style:none;\n  overflow:auto;\n  margin:0;\n  padding:20px 10px;\n}\n\n.xc_conversation_container a\n{\n  color:#036;\n}\n\n.xc_conversation_container a.xc_btn_style\n{\n  color:#fff;\n}\n\ndiv.xc_chat_head\n{\n  color:#fff;\n  background:{{chatWebsite.color}};\n  //border-radius: 20px 20px 0px 0px !important;\n  height:52px;\n  line-height:55px;\n  cursor:pointer;\n}\n\ndiv.xc_chat_head.rounded\n{\n  border-radius: 20px 20px 0px 0px !important;\n}\n\ndiv.xc_chat_head.squared\n{\n  //border-radius: 20px 20px 0px 0px !important;\n}\n\n.xc_chat_head-title\n{\n  margin:5px 0 0 15px;\n  color: #fff;\n}\n\n.xc_header_icon\n{\n  display:block;\n  background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n  width:21px;\n  height:16px;\n  float:right;\n  margin:20px 20px 0 0;\n}\n\n.xc_header_icon span.xc_notification_badge span\n{\n  display:block;\n  height:16px;\n  width:15px;\n  text-align:center;\n  font-size:9px;\n  color:#555;\n  position:relative;\n  top:-20px;\n  left:4px;\n  margin:0;\n  padding:0;\n}\n\n.xc_sub-head-spacer\n{\n  padding:1px;\n}\n\n.xc_conversation\n{\n  display:none;\n  margin:0 12px 0 11px;\n}\n\n.xc_chat_toggle_container\n{\n  /*background:mediumslateblue center 52px;*/\n  background: white;\n  border-style: solid;\n  border-width: 1px;\n  border-color: {{chatWebsite.color}};\n  //display:none;\n}\n\n.xc_signup_wrapper,.xc_notifications_wrapper,.xc_enquiry_wrapper,.xc_rating_wrapper\n{\n  //display:none;\n  display:block;\n  overflow:auto;\n  line-height:1;\n  padding:25px;\n}\n\n.xc_exit_chat_container\n{\n  text-align:right;\n  width:95%;\n  margin:0 auto;\n  padding:5px 1px 0 0;\n}\n\n.xc_exit_chat_container span,.xc_exit_chat_container a\n{\n  font-size:80%;\n  color:#666;\n  text-decoration:none;\n}\n\n.xc_exit_chat_container a:hover\n{\n  color:#333;\n}\n\na.xc_btn_exit_chat_confirm:hover\n{\n  color:red;\n}\n\na.xc_btn_exit_chat_cancel:hover\n{\n  color:#0c0;\n}\n\nform.xc_form_reply\n{\n  position:relative;\n}\n\n.xc_form_reply\n{\n  /*background-color:#e3e3e3;*/\n  text-align:center;\n  /*border-top:1px solid #d3d3d3;*/\n}\n\n.xc_input_message\n{\n  height:100px;\n  margin:10px auto 5px;\n}\n\n.xc_input_enquiry_message,\n.xc_input_rating_message\n{\n  height:100px;\n}\n\n.xc_form_signup,.xc_form_enquiry,.xc_form_rating\n{\n  /*text-align:center;*/\n}\n\n.xc_chat_container textarea,.xc_chat_container input[type=text]\n{\n  width:95%;\n  min-width:95%;\n  max-width:95%;\n  -webkit-box-sizing:border-box;\n  -moz-box-sizing:border-box;\n  box-sizing:border-box;\n  background-color:#fff;\n  border:1px solid #ccc;\n  -webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  -moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  -webkit-transition:border linear .2s, box-shadow linear .2s;\n  -moz-transition:border linear .2s, box-shadow linear .2s;\n  -o-transition:border linear .2s, box-shadow linear .2s;\n  transition:border linear .2s, box-shadow linear .2s;\n  display:inline-block;\n  font-size:14px;\n  line-height:20px;\n  color:#555;\n  -webkit-border-radius:4px;\n  -moz-border-radius:4px;\n  border-radius:4px;\n  vertical-align:middle;\n  margin:3px 0;\n  padding:4px 6px;\n  resize: none;\n}\n\n.xc_chat_container textarea:focus,.xc_chat_container input[type=text]:focus\n{\n  outline: {{chatWebsite.color_focus}} auto 5px;\n}\n\n.xc_chat_container input[type=text]\n{\n  height: 30px;\n}\n\n.xc_message_sending textarea, .xc_enquiry_sending textarea\n{\n  background: #fff url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/loading.gif) 98% 5px no-repeat;\n}\n\n.xc_chatrow\n{\n  display:block;\n  border-top:1px dashed #e3e3e3;\n  margin:5px 0;\n  clear: both;\n}\n\n.xc_chatrow p\n{\n  color:#444;\n  word-wrap:break-word;\n}\n\n.xc_time\n{\n  float:right;\n  font-size:80%;\n  color:#ccc;\n  padding-left:12px;\n  margin:3px;\n}\n\n.xc_submission_pending\n{\n  background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_clock.png) left center norepeat;\n}\n\n.xc_submission_confirmed\n{\n  background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_tick.png) left center norepeat;\n}\n\n.xc_fullname\n{\n  font-weight:700;\n}\n\n.xc_fullname:after\n{\n  content:":";\n}\n\n.xc_avatar\n{\n  float: left;\n  margin: 0 5px 5px 0;\n  display: inline-block;\n  width: 40px;\n  height: 40px;\n  border-radius: 5px;\n  -moz-border-radius: 5px;\n  -webkit-border-radius: 5px;\n}\n\n.xc_smilie\n{\n  background-repeat:no-repeat;\n  display:inline-block;\n  width:18px;\n  height:18px;\n  text-indent:-9999px;\n  white-space:nowrap;\n}\n\n.xc_btn_load_more\n{\n  width:100%!important;\n}\n\n.xc_notifications_wrapper\n{\n  text-shadow:0 1px 0 rgba(255,255,255,0.5);\n}\n\n.xc_notification_success\n{\n  color:#468847;\n}\n\n.xc_notification_error\n{\n  color:#b94a48;\n}\n\n.xc_errorlist\n{\n  margin:0 0 0 25px;\n  padding:0;\n}\n\ni.xc_btn_notifications_close\n{\n  float:right;\n  font-weight:700;\n  font-size:20px;\n  color:#ccc;\n  cursor:pointer;\n  margin:-15px 0 0;\n  padding:0;\n}\n\n.xc_btn_style\n{\n  width:95%;\n  text-align:center;\n  line-height:1.2;\n  font-size:90%;\n  -moz-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  -webkit-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  background:0;\n  background-color:{{chatWebsite.color_button}};\n  -moz-border-radius:4px;\n  -webkit-border-radius:4px;\n  border-radius:4px;\n  border:1px solid {{chatWebsite.color_button}};\n  display:inline-block;\n  color:#fff;\n  font-weight:700;\n  text-decoration:none;\n  text-shadow:1px 1px 0 #000c17;\n  margin:0 auto 5px;\n  padding:2px 0;\n}\n\n.xc_btn_style:hover\n{\n  background:0;\n  background-color:{{chatWebsite.color_button}};\n  color: #fff;\n  text-decoration: none;\n}\n\n.xc_btn_style:active\n{\n  position:relative;\n  top:1px;\n}\n\n.xc_composing_container\n{\n  display: none;\n  width: 95%;\n  margin: 0 auto;\n  background: transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_pencil.png) 6px center no-repeat;\n  padding-left: 19px;\n  font-style: italic;\n}\n\n@media only screen and (max-height: 620px) {\n  .xc_conversation_container\n  {\n    max-height:300px!important;\n  }\n}\n\n@media only screen and (max-height: 545px) {\n  .xc_conversation_container\n  {\n    max-height:200px!important;\n  }\n}\n\n@media only screen and (max-height: 445px) {\n  .xc_conversation_container\n  {\n    max-height:150px!important;\n  }\n}\n\n@media only screen and (max-width: 480px) {\n  .xc_chat_container\n  {\n    width:95%!important;\n    right:auto!important;\n    -webkit-border-top-left-radius:15px;\n    -webkit-border-top-right-radius:15px;\n    -moz-border-radius-topleft:15px;\n    -moz-border-radius-topright:15px;\n    border-top-left-radius:15px;\n    border-top-right-radius:15px;\n    box-shadow:0 0 5px rgba(0,0,0,.5);\n    -webkit-box-shadow:0 0 5px rgba(0,0,0,.5);\n    -moz-box-shadow:0 0 5px rgba(0,0,0,.5);\n  }\n\n  div.xc_chat_head\n  {\n    background-color:#036;\n    background-image:none;\n    line-height:25px;\n    height:auto;\n    -webkit-border-top-left-radius:15px;\n    -webkit-border-top-right-radius:15px;\n    -moz-border-radius-topleft:15px;\n    -moz-border-radius-topright:15px;\n    border-top-left-radius:15px;\n    border-top-right-radius:15px;\n    padding:10px;\n  }\n\n  .xc_chat_toggle_container\n  {\n    background-color:#fff;\n    background-image:none;\n    border-color:#036;\n    border-style:solid;\n    border-width:0 1px;\n  }\n\n  .xc_header_icon\n  {\n    background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n    margin:0;\n  }\n\n  .xc_header_icon span.xc_notification_badge span\n  {\n    top:-5px;\n    left:5px;\n  }\n\n  .xc_notification_success\n  {\n    background-color:#dff0d8;\n    border:1px solid #d6e9c6;\n  }\n\n  .xc_conversation_container\n  {\n    max-height:375px;\n    border-color:#036;\n  }\n\n  .xc_notification_error\n  {\n    background-color:#f2dede;\n    border:1px solid #eed3d7;\n  }\n\n  .xc_sub-head-spacer\n  {\n    display:none;\n    padding:0;\n  }\n\n  .xc_chat_head-title,.xc_conversation\n  {\n    margin:0;\n  }\n}\n</style>\n<div class="xc_chat_container">\n  <div class="xc_chat_head {{chatWebsite.header_shape}}">\n    <i class="xc_header_icon">\n      <span class="xc_notification_badge">\n        <span class="xc_notification_badge_number"></span>\n      </span>\n    </i>\n    <span class="xc_chat_head-title">{{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}</span>\n  </div>\n  <div class="xc_chat_toggle_container">\n    <div class="xc_sub-head-spacer"></div>\n    <!-- <div class="xc_notifications_wrapper">\n    <ul class="xc_errorlist"></ul>\n  </div> -->\n  <div class="xc_enquiry_wrapper" data-ng-show=\'statePreview.state == "offline"\'>\n    <form class="xc_form_enquiry" accept-charset="UTF-8">\n      <p class="xc_offline_message" ng-bind-html=\'chatWebsite.offline_message\'></p>\n      <br>\n      <div ng-if="chatWebsite.enquiry_enable">\n        <div class="xc_div_group">\n          <label for="enquiryFullname" class="xc_label">Name *</label>\n          <input id="enquiryFullname" maxlength="45" data-label="Name" type="text" name="data[Enquiry][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_enquiry_fullname" required/>\n        </div>\n        <br>\n        <div class="xc_div_group">\n          <label for="enquiryEmail" class="xc_label">Email Address *</label>\n          <input id="enquiryEmail" maxlength="85" type="text" data-label="Email Address" name="data[Enquiry][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_enquiry_email" required/>\n        </div>\n        <br>\n        <div class="xc_div_group">\n          <label for="enquiryMessage" class="xc_label">Message*</label>\n          <textarea id="enquiryMessage" data-label="Message" maxlength="1500" placeholder="{{chatWebsite.enquiry_message_placeholder}}" name="data[Enquiry][message]" class="xc_input_enquiry_message" required></textarea>\n        </div>\n        <br>\n        <button type="submit" class="xc_btn_enquiry xc_btn_style">{{chatWebsite.enquiry_button}}</button>\n      </div>\n    </form>\n  </div>\n  <div class="xc_signup_wrapper" data-ng-show=\'statePreview.state == "online"\'>\n    <form class="xc_form_signup" accept-charset="UTF-8">\n      <p class="xc_online_message" ng-bind-html=\'chatWebsite.online_message\'></p>\n      <br>\n      <div class="xc_div_group">\n        <label for="dataFullname" class="xc_label">Fullname *</label>\n        <input maxlength="45" id="dataFullname" data-label="Fullname" type="text" name="data[Discussion][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_fullname" required/>\n      </div>\n      <br>\n      <div class="xc_div_group">\n        <label for="dataEmail" class="xc_label">Email Address *</label>\n        <input maxlength="85" id="dataEmail" data-label="Email Address" type="text" name="data[Discussion][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_email" required/>\n      </div>\n      <br>\n      <input type="hidden" class="xc_input_visitor_time" name="data[Discussion][visitor_time]" />\n      <button type="submit" class="xc_btn_signup xc_btn_style">{{chatWebsite.start_chat_button}}</button>\n    </form>\n  </div>\n  <div class="xc_rating_wrapper" data-ng-show=\'statePreview.state == "rating"\'>\n    <form class="xc_form_rating" accept-charset="UTF-8">\n      <p class="xc_rating_message">{{chatWebsite.rating_message}}</p>\n      <br>\n      <div class="xc_rating">\n        <label class="xc_rating_label" style="padding:30px;">\n          <input type="radio" name="data[Rating][rating]" value="good" />\n          <img src="{{chatWebsite.remote}}/api/xchatty/assets?resource=images/like.png" alt="Good" height="50"/>\n        </label>\n        <label class="xc_rating_label" style="padding:30px;">\n          <input type="radio" name="data[Rating][rating]" value="bad"/>\n          <img src="{{chatWebsite.remote}}/api/xchatty/assets?resource=images/dislike.png" alt="Good" height="50"/>\n        </label>\n      </div>\n      <div class="xc_div_group">\n        <label for="ratingMessage" class="xc_label">Message</label>\n        <textarea id="ratingMessage" data-label="Message" maxlength="1500" name="data[Rating][message]" class="xc_input_rating_message"></textarea>\n      </div>\n      <button type="submit" class="xc_button_rating xc_btn_style">{{chatWebsite.rating_send}}</button>\n      <button type="button" class="xc_button_skip_rating xc_btn_style">{{chatWebsite.rating_skip}}</button>\n    </form>\n  </div>\n  <div class="xc_footer">\n    <div class="xc_powered"><a>Powered by Xenialab | Trademark xCALLY</a></div>\n  </div>\n</div>\n</div>\n'),a.put("app/channels/chat/queue/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid && form.general.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START TIMEOUT -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid}">\n      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="number" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n      <span data-ng-show="(form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid && form.general.timeout.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TIMEOUT -->\n\n    <!-- START HEADER SHAPE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid}">\n      <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n        <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid && form.general.strategy.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END HEADER SHAPE -->\n\n\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/queue/list/list.html",'<div class="row">\n     <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-docs"></i>\n                                             <a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle " href="#"  data-ng-click="createItem()">\n                                          <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }}\n                                 </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <label for="penalty">{{\'APPLICATION_PENALTY\' | translate}}</label>\n                                          <div class="input-group input-small mbottom20">\n                                                       <input type="number" class="spinner-input form-control" maxlength="3" data-ng-model="queue.penalty" readonly>\n                                                 <div class="spinner-buttons input-group-btn btn-group-vertical">\n                                                              <button type="button" class="btn spinner-up btn-xs blue" data-ng-click="queue.penalty=queue.penalty+1">\n                                                                       <i class="fa fa-angle-up"></i>\n                                                                </button>\n                                                             <button type="button" class="btn spinner-down btn-xs blue" data-ng-disabled="!queue.penalty" data-ng-click="queue.penalty=queue.penalty-1">\n                                                                   <i class="fa fa-angle-down"></i>\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                     <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.queues.view.settings\')}">\n                                                 <a data-ng-href="/channels/chat/queues/view/{{queue.id}}/settings">\n                                                   <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.chat.queues.view.agents\')}">\n                                                   <a data-ng-href="/channels/chat/queues/view/{{queue.id}}/agents">\n                                                     <i class="icon-people"></i>\n                                                   {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/queue/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateChatQueue()" novalidate>\n                                     <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_AGENT\' | translate}} {{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                            <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                               <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns  class="ui-grid" ui-grid-tree-view ui-grid-expandable-row ui-grid-pagination auto-resize>\n                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/realtime/view/agent/agent.modal.info.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_INTERFACE_INFO\' | translate }}</h3>\n</div>\n<div class="modal-body">\n<div data-ng-if="agent.ipaddr" class="well">\n  <div>{{agent.ipaddr}}:{{agent.port}}</div>\n  <div>{{agent.fullcontact}}</div>\n  <div>{{agent.useragent}}</div>\n  <div>{{agent.lastms}}</div>\n</div>\n<div data-ng-if="!agent.ipaddr" class="alert alert-danger" role="alert">\n  {{\'MESSAGE_NO_AVAILABLE_INFO\' | translate}}\n</div>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/realtime/view/agent/queue.modal.add.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_JOIN_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <div class="form-group row">\n  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n  <div class="col-md-10">\n    <ui-select multiple ng-model="item.queues" theme="bootstrap" required>\n      <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$item.name}}</ui-select-match>\n      <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n        <div ng-bind-html="queue.name | highlight: $select.search"></div>\n      </ui-select-choices>\n    </ui-select>\n  </div>\n</div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" ui-grid-tree-view auto-resize>\n                     <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initSessions()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" auto-resize>\n                       <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="#">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <div>\n                 <nav class="navbar navbar-default" role="navigation">\n                         <div class="collapse navbar-collapse">\n                                        <ul class="nav navbar-nav">\n                                           <li data-ng-class="{\'active\': $state.is(\'main.channels.chat.realtime.view.agents\')}">\n                                                     <a href="/channels/chat/realtime/view/agents">\n                                                                {{\'APPLICATION_AGENTS\' | translate}}\n                                                        </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                        </nav>\n                </div>\n\n              <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/visitor/list/list.html",'<div class="row">\n      <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-question"></i>\n                                         <a href="/channels/chat/visitors/list">{{ \'APPLICATION_VISITORS\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-question font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/channels/chat/visitor/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-question"></i>\n                                 <a href="/channels/chat/visitors/list">{{ \'APPLICATION_VISITORS\' | translate }}</a>\n                                 <i  class="fa fa-angle-right"></i>\n                            </li>\n                         <li data-ng-show="chatVisitor">\n                                       <a href="#">{{chatVisitor.fullname}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/visitor.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatVisitor.fullname}}\n                                      </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.visitors.view.profile\')}">\n                                                        <a data-ng-href="/channels/chat/visitors/view/{{chatVisitor.id}}/profile">\n                                                    <i class="icon-tag"></i>\n                                                      {{ \'APPLICATION_PROFILE\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/visitor/view/view.profile.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PROFILE\' | translate}}</span>\n                         </div>\n                        </div>\n                        <div class="portlet-body" data-ng-init="initView()">\n                          <div>\n                                 <h4 class="profile-desc-title">{{chatVisitor.email}}</h4>\n                                     <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-magnifier"></i>\n                                                <a href="#" class="inactive-link">{{chatVisitor.origin}}</a>\n                                  </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-globe"></i>\n                                            <a href="#" class="inactive-link">{{chatVisitor.remote_address}}</a>\n                                  </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-user"></i>\n                                             <a href="#" class="inactive-link">{{chatVisitor.user_agent | truncate: 50: \'...\'}}</a>\n                                      </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-flag"></i>\n                                             <a href="#" class="inactive-link">{{chatVisitor.visitor_language}}</a>\n                                        </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-home"></i>\n                                             <a href="#" class="inactive-link">{{chatVisitor.referer}}</a>\n                                 </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-cursor"></i>\n                                           <a href="#" class="inactive-link">{{chatVisitor.browser}}</a>\n                                 </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-screen-desktop"></i>\n                                           <a href="#" class="inactive-link">{{chatVisitor.os}}</a>\n                                      </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/website/list/list.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-globe"></i>\n                                    <a href="#">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n        </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_WEB_SITES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/chat/websites/wizard">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_WEB_SITE\' | translate }}\n                                              </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/website/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/chat/websites/view/{{chatWebsite.id}}/actions/wizard" data-toggle="dropdown">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n                                                </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/website/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n      <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.settings" ng-submit="updateItem()" novalidate>\n                                      <!-- START APP -->\n                                    <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n                                          <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                       </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END APP -->\n\n                                    <!-- START HOST -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                         <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END HOST -->\n\n                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                          <!-- START QUEUE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END QUEUE -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                          <!-- START AGENT -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END AGENT -->\n                                    </div>\n\n                                      <!-- START INTERVAL_TYPE -->\n                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n                                           <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                               {{ intType.name | translate }}\n                                                        </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END INTERVAL_TYPE -->\n\n                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                <!-- START TIME -->\n                                           <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                   <div class="input-group input-large">\n                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                             </fieldset>\n                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                     </div>\n                                                </div>\n                                                <!-- END TIME -->\n\n                                           <!-- START ALWAYS -->\n                                         <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                 <div class="input-group input-large">\n                                                         <label class="control-label pointer-cursor">\n                                                                  <input\n                                                                                bs-switch\n                                                                             data-ng-model="application.alwaysTime"\n                                                                                type="checkbox"\n                                                                               switch-active="{{ isActive }}"\n                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                switch-on-color="{{ onColor }}"\n                                                                               switch-off-color="{{ offColor }}"\n                                                                             switch-animate="{{ animate }}"\n                                                                                switch-size="{{ size }}"\n                                                                              switch-label="{{ label }}"\n                                                                            switch-icon="{{ icon }}"\n                                                                              switch-radio-off="{{ radioOff }}"\n                                                                             switch-label-width="{{ labelWidth }}"\n                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                               </label>\n                                                      </div>\n                                                </div>\n                                                <!-- END ALWAYS -->\n\n                                         <!-- START WEEKDAY -->\n                                                <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                        <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END WEEKDAY -->\n\n                                                <!-- START MONTHDAY -->\n                                               <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                       <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTHDAY -->\n\n                                               <!-- START MONTH -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                  <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTH -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                          <!-- START INTERVALS -->\n                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                    {{ interval.name}}\n                                                            </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVALS -->\n\n                                      </div>\n                                        <button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n                          </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/website/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n        <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n                                           <form name="forms.action" novalidate>\n                                                 <!-- START APP -->\n                                                    <div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n                                                               <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END APP -->\n\n                                                    <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                                         <span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                                          <!-- START QUEUE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                                          <!-- START AGENT -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END AGENT -->\n                                                    </div>\n\n                                                      <!-- START INTERVAL_TYPE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n                                                         <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                               {{ intType.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVAL_TYPE -->\n\n                                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                                <!-- START TIME -->\n                                                           <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                   <div class="input-group input-large">\n                                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                                             </fieldset>\n                                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                                     </div>\n                                                                </div>\n                                                                <!-- END TIME -->\n\n                                                           <!-- START ALWAYS -->\n                                                         <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                                 <div class="input-group input-large">\n                                                                         <label class="control-label pointer-cursor">\n                                                                                  <input\n                                                                                                bs-switch\n                                                                                             data-ng-model="application.alwaysTime"\n                                                                                                type="checkbox"\n                                                                                               switch-active="{{ isActive }}"\n                                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                                switch-on-color="{{ onColor }}"\n                                                                                               switch-off-color="{{ offColor }}"\n                                                                                             switch-animate="{{ animate }}"\n                                                                                                switch-size="{{ size }}"\n                                                                                              switch-label="{{ label }}"\n                                                                                            switch-icon="{{ icon }}"\n                                                                                              switch-radio-off="{{ radioOff }}"\n                                                                                             switch-label-width="{{ labelWidth }}"\n                                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                                               </label>\n                                                                      </div>\n                                                                </div>\n                                                                <!-- END ALWAYS -->\n\n                                                         <!-- START WEEKDAY -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                        <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate}}\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate }}\n                                                                                        </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END WEEKDAY -->\n\n                                                                <!-- START MONTHDAY -->\n                                                               <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                       <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTHDAY -->\n\n                                                               <!-- START MONTH -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                  <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                                          <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                                    {{ interval.name}}\n                                                                            </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n\n                                                      <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n                                         </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n                                              <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                  </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_fax_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"fax"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/fax/realtime/view/agent/queue.modal.add.html",controller:"FaxRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.faxQueues,function(b){return!!_.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.faxQueues,function(a){return _.includes(b.queues,a.id)}),channel:"fax",data1:e,data3:b.queues.join(","),data4:"fax"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"fax",data1:a,data3:b,data4:"fax"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/fax/realtime/view/agent/agent.modal.info.html",controller:"FaxRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/fax/realtime/view/agent/agent.html",controller:"FaxRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("FaxRealtimeViewCtrl",["$scope","$state",function(a,b){a.agents=[{name:"Queues",link:"main.channels.fax.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.fax.realtime.view.agents.timeline"}],a.sessions=[{name:"Sessions",link:"main.channels.fax.realtime.view.sessions"}],a.tree={queues:[{name:"Queues",link:"main.channels.fax.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.fax.realtime.view.agents.timeline"}],sessions:[{name:"Sessions",link:"main.channels.fax.realtime.view.sessions"}]}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.fax.realtime.view",{url:"/view",templateUrl:"app/channels/fax/realtime/view/view.html",controller:"FaxRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailAccount",["$resource",function(a){return a("/api/mail/accounts/:accountId/:controller/:id",{id:"@accountId"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MailAccountListCtrl",["$scope","gridOptions","MailAccount","$stateParams",function(a,b,c,d){a.initView=function(){var e={exporterCsvFilename:"mail_accounts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"address"},{name:"MailServerIn.state",width:100,cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span class=\"label label-sm\" data-ng-class=\"row.entity.MailServerIn.state === 'CONNECTED' ? 'label-success' : 'label-danger'\">{{row.entity.MailServerIn.state}}</span></div>",displayName:"IMAP",enableSorting:!1,enableFiltering:!1},{name:"MailServerOut.state",width:110,cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span class=\"label label-sm\" data-ng-class=\"row.entity.MailServerOut.state === 'CONNECTED' ? 'label-success' : 'label-danger'\">{{row.entity.MailServerOut.state}}</span></div>",displayName:"SMTP",enableSorting:!1,enableFiltering:!1},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/accounts/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,e,a,{accountId:d.accountId})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.list",{url:"/list",templateUrl:"app/channels/mail/account/list/list.html",controller:"MailAccountListCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailServerIn",["$resource",function(a){return a("/api/mail/servers/in/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailServerOut",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"},{update:{method:"PUT"},test:{method:"GET"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionListCtrl",["$scope","gridOptions","MailAccount","$http","$translate","$stateParams",function(a,b,c,d,e,f){a.initActons=function(){var d={draggable:!0,exporterCsvFilename:"mail_applications.csv",enableSorting:!1,enableFiltering:!1,columnDefs:[{name:"app",cellClass:"text-center"},{name:"name",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span>{{row.entity.MailQueue ? row.entity.MailQueue.name : row.entity.User.name}}</span></div>"},{name:"timeout",cellClass:"text-center"},{name:"interval",cellClass:"text-center"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/accounts/view/{{row.entity.MailAccountId}}/actions/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.app, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a,{accountId:f.accountId,controller:"applications"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions.list",{url:"/list",templateUrl:"app/channels/mail/account/view/action/list/list.html",controller:"MailAccountViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval","Agent","Interval","MailQueue",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/mail/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){return m.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return k.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return l.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.updateItem=function(){var e=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,MailAccountId:c.id};switch(a.application.app){case"agent":g.UserId=a.application.UserId;break;case"queue":g.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":g.interval=e.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(e[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?e[1]="*":e[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?e[2]="*":e[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?e[3]="*":e[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=e.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}b.put("/api/mail/applications/"+c.actionId,g).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions.view",{url:"/view/:actionId",templateUrl:"app/channels/mail/account/view/action/view/view.html",controller:"MailAccountViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionWizardCtrl",["$scope","$http","Agent","MailQueue","Interval","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=l.application,a.$stateParams=f,a.$interval=m.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){return d.get().$promise.then(function(b){a.queues=b.rows})["catch"](function(a){console.error(a)})},a.getAgents=function(){return c.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)})},a.getIntervals=function(){return e.get().$promise.then(function(b){a.intervals=b.rows})["catch"](function(a){console.error(a)})},a.createItem=function(){var c=["*","*","*","*"],d={app:a.application.app,timeout:a.application.timeout,MailAccountId:f.accountId};switch(a.application.app){case"agent":d.UserId=a.application.UserId;break;case"queue":d.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":d.interval=c.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(c[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),a.application.wd_from&&a.application.wd_to&&"always"===a.application.wd_from&&"always"===a.application.wd_to?c[1]="*":c[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",a.application.md_from&&a.application.md_to&&"always"===a.application.md_from&&"always"===a.application.md_to?c[2]="*":c[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",a.application.m_from&&a.application.m_to&&"always"===a.application.m_from&&"always"===a.application.m_to?c[3]="*":c[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",d.interval=c.join(","),delete a.application.IntervalId;break;case"list":d.IntervalId=a.application.IntervalId}b.post("/api/mail/applications",d).success(function(){h.path("/channels/mail/accounts/view/"+f.accountId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){j.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view.actions.wizard",{url:"/wizard",templateUrl:"app/channels/mail/account/view/action/wizard/wizard.html",controller:"MailAccountViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","MailAccount","MailMessage","MailServerIn","MailServerOut","usSpinnerService",function(a,b,c,d,e,f,g,h,i,j,k){a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.initView=function(){return g.get({id:c.accountId}).$promise.then(function(b){a.account=b})["catch"](function(a){f.show(a.message,"danger")})},a.updateItemMailAccount=function(){return g.update({id:c.accountId},{name:a.account.name,description:a.account.description,address:a.account.address,fidelity:a.account.fidelity,timeout:a.account.timeout}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.updateItemMailServerIn=function(){return i.update({id:a.account.MailServerIn.id},a.account.MailServerIn).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.updateItemMailServerOut=function(){return j.update({id:a.account.MailServerOut.id},a.account.MailServerOut).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.test=function(){return k.spin("spinner-grid"),j.test({id:a.account.MailServerOut.id,controller:"test"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),f.show(a.message||a.data.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.view",{url:"/view/:accountId",templateUrl:"app/channels/mail/account/view/view.html",controller:"MailAccountViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.channels.mail.accounts.view.settings",{url:"/settings",templateUrl:"app/channels/mail/account/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("MailAccountWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert","MailAccount",function(a,b,c,d,e,f,g){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.forms={},a.item={MailServerIn:{port:993,ssl:!0,"delete":!1,protocol:"IMAP",filter:"UNSEEN",mailbox:"INBOX"},MailServerOut:{port:465,ssl:!0}}},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a},a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/channels/mail/accounts/list")})["catch"](function(a){f.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.accounts.wizard",{url:"/wizard",templateUrl:"app/channels/mail/account/wizard/wizard.html",controller:"MailAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.inbox",{url:"/inbox",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailInboxListCtrl",["$scope","$rootScope","MailRoom","gridOptions","uiGridConstants","Auth",function(a,b,c,d,e,f){a.initView=function(){var g={exporterCsvFilename:"mail_rooms.csv",enableRowHeaderSelection:f.isAdmin(),columnDefs:[{name:"id",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span>#{{row.entity.id}}</span></div>",width:75,enableSorting:!1,enableFiltering:!1},{name:"subject"},{name:"from",cellClass:"text-center"},{name:"MailAccount.name",displayName:"Account",cellClass:"text-center",enableSorting:!1,enableFiltering:!1},{name:"users",displayName:"APPLICATION_AGENTS",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{(row.entity.Users | map:'fullname').join(', ')}}</div>",enableSorting:!1,enableFiltering:!1},{name:"status",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><span class=\"label label-sm\" data-ng-class=\"{'label-info': row.entity.status === 'OPEN', 'label-danger': row.entity.status === 'NEW','label-success': row.entity.status === 'CLOSED'}\">{{row.entity.status}}</span></div>",filter:{type:e.filter.SELECT,selectOptions:[{value:"NEW",label:"NEW"},{value:"OPEN",label:"OPEN"},{value:"CLOSED",label:"CLOSED"}]},width:100},{name:"createdAt",displayName:"",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><time is="relative-time" datetime="{{row.entity.createdAt}}">April 1, 2014</time></div>',enableSorting:!1,enableFiltering:!1,width:125},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/inbox/view/{{row.entity.id}}/room",name:"open"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.id, row.entity.id)",hide:!f.isAdmin()}]}]};a.gridOptions=d.gridOptions(c,g,a),b.$on("mailMessageEvent",function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.inbox.list",{url:"/list",templateUrl:"app/channels/mail/inbox/list/list.html",controller:"MailInboxListCtrl"})}]),angular.module("xCallyShuttleApp").directive("mail",function(){return{templateUrl:"app/channels/mail/inbox/mail/mail.html",restrict:"EA",scope:{mailMessage:"=message"}}}),angular.module("xCallyShuttleApp").directive("note",function(){return{templateUrl:"app/channels/mail/inbox/note/note.html",restrict:"EA",scope:{mailMessage:"=message"}}}),angular.module("xCallyShuttleApp").controller("MailInboxViewModalAgentCtrl",["$scope","$uibModalInstance","$translate","$stateParams","Agent","MailRoom","xAlert",function(a,b,c,d,e,f,g){a.initModal=function(){a.agents=[],a.item={agents:[]},e.get().$promise.then(function(b){b.rows.forEach(function(b){a.agents.push(b)})})["catch"](function(a){console.error(a)}),f.query({id:d.id,controller:"agents"}).$promise.then(function(b){b.forEach(function(b){a.agents.push(b),a.item.agents.push(b.id)})})["catch"](function(a){console.error(a)}),a.modal={dismissable:!0,title:"APPLICATION_MESSAGE_SEND_RETRY",text:"MESSAGE_MESSAGE_SEND_RETRY",buttons:[{classes:"btn btn-success",text:"APPLICATION_RETRY",click:function(a){b.close(a)}},{classes:"btn default",text:"APPLICATION_CANCEL",click:function(a){b.dismiss(a)}}]}},a.ok=function(){return f.update({id:d.id,controller:"agents",agents:a.item.agents}).$promise.then(function(){g.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close()})["catch"](function(a){console.error(a)})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailInboxViewCtrl",["$scope","$location","$cookieStore","$stateParams","$translate","$uibModal","CannedAnswer","socket","Agent","MailAccount","MailRoom","MailAttachment","MailMessage","FileUploader","Auth","xAlert","usSpinnerService",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){var r,s=[];a.onSelectAnswer=function(b){a.form.html+=b,a.selectedAnswer=""},a.getAnswers=function(a){return g.get({key:a}).$promise.then(function(a){return _.map(a.rows,"value")})},a.initRoom=function(){a.Auth=o,a.config={autoHideScrollbar:!1,theme:"light",advanced:{updateOnContentResize:!0},setHeight:781,scrollInertia:0},a.forms={},a.selectedAnswer="",a.form={disabled:!1,from:[],to:[],sto:[],cc:[],scc:[],html:""},h.socket.on("mail_message:save",function(b){return a.mailRoom&&b.MailRoomId===d.id?m.get({id:b.id}).$promise.then(function(b){a.mailRoom.MailMessages.unshift(b)})["catch"](function(a){console.error(a)}):void 0}),r=a.uploader=new n({url:"api/mail/attachments",autoUpload:!0,withCredentials:!0,headers:{Authorization:"Bearer "+c.get("token")}}),r.removeFromQueue=function(a){var b=this;return l["delete"]({id:a.basename}).$promise.then(function(){var c=b.getIndexOfItem(a),d=b.queue[c];d.isUploading&&d.cancel(),b.queue.splice(c,1),d._destroy(),b.progress=b._getTotalProgress(),s=_.reject(s,{basename:a.basename})})["catch"](function(){p.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},r.onErrorItem=function(){p.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},r.onSuccessItem=function(a,b){var c={size:b.size,path:b.path,name:b.name,basename:b.basename,type:b.type};a=_.merge(a,c),s.push(c)},i.get().$promise.then(function(b){a.agents=b.rows})["catch"](function(a){console.error(a)}),j.get().$promise.then(function(b){a.mailAccounts=b.rows})["catch"](function(a){console.error(a)}),d.id&&k.get({id:d.id}).$promise.then(function(b){a.mailRoom=b,a.form.from.push(b.MailAccount.address);var c=_.last(a.mailRoom.MailMessages);a.form.to=a.form.cc=a.form.bcc=_.union(c.from,c.to,c.cc,c.bcc),a.form.sto=_.remove(a.form.to,function(a){return a!==b.MailAccount.address}),"NEW"===a.mailRoom.status&&k.update({id:d.id},{status:"OPEN"})})["catch"](function(a){console.error(a)})},a.cancel=function(){a.form.disabled=!1,a.form.from=[],a.form.to=[],a.form.sto=[],a.form.cc=[],a.form.scc=[],delete a.form.subject,delete a.form.html},a.updateStatus=function(a){return k.update({id:d.id},{status:a}).$promise.then(function(){p.show(e.instant("MESSAGE_STATUS_UPDATE_SUCCESS"),"success"),b.path("/channels/mail/inbox/list")})["catch"](function(a){p.show(a.message,"danger")})},a.loadAgents=function(){f.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.agents.modal.html",controller:"MailInboxViewModalAgentCtrl"})},a.loadTemplate=function(){f.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.templates.modal.html",controller:"MailInboxViewModalTemplateCtrl"}).result.then(function(b){a.form.subject=b.template.subject,a.form.html=b.template.html})},a.loadNote=function(){f.open({animation:!0,templateUrl:"app/channels/mail/inbox/view/view.notes.modal.html",controller:"MailInboxViewModalNoteCtrl"})},a.sendMail=function(){var c={},f={subject:a.mailRoom?a.mailRoom.subject:a.form.subject,from:a.form.from,to:a.form.sto||[],cc:a.form.scc||[],html:a.form.html||null,text:a.form.text||null,inReplyTo:c.messageId||null,status:"SENDING",MailAttachments:s};return q.spin("spinner-grid"),a.form.disabled=!0,a.mailRoom?(c=_.last(a.mailRoom.MailMessages,{status:"RECEIVED"}),f.inReplyTo=c.messageId||null,k.save({id:d.id,controller:"messages"},f).$promise.then(function(){p.show(e.instant("MESSAGE_WELL_DONE"),"success"),b.path("/channels/mail/inbox/list")})["catch"](function(){p.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){q.stop("spinner-grid"),a.form.disabled=!1})):m.save(f).$promise.then(function(){p.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success"),b.path("/channels/mail/inbox/list")})["catch"](function(){p.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){q.stop("spinner-grid"),a.form.disabled=!1})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.inbox.view",{url:"/view",templateUrl:"app/channels/mail/inbox/view/view.html"}).state("main.channels.mail.inbox.view.compose",{url:"/compose",templateUrl:"app/channels/mail/inbox/view/view.room.html",controller:"MailInboxViewCtrl"}).state("main.channels.mail.inbox.view.room",{url:"/:id/room",templateUrl:"app/channels/mail/inbox/view/view.room.html",controller:"MailInboxViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailInboxViewModalNoteCtrl",["$scope","$uibModalInstance","$stateParams","$translate","MailRoom","xAlert",function(a,b,c,d,e,f){a.initModal=function(){a.item={}},a.ok=function(){return e.save({id:c.id,controller:"messages"},{text:a.item.text,status:"NOTE"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(){f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})["finally"](function(){b.close()})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailInboxViewModalTemplateCtrl",["$scope","$uibModalInstance","Template",function(a,b,c){a.initModal=function(){return a.item={},c.get().$promise.then(function(b){a.templates=b.rows})["catch"](function(a){console.error(a)})},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail",{url:"/mail",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("MailReport",["$resource",function(a){return a("/api/report/mails/:id/:controller1/:controller2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailRoom",["$resource",function(a){return a("/api/mail/rooms/:id/:controller",{id:"@id",controller:"@controller"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("MailAttachment",["$resource",function(a){return a("/api/mail/attachments/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").factory("MailMessage",["$resource",function(a){return a("/api/mail/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("MailQueueListCtrl",["$scope","MailQueue","gridOptions","$uibModal","xAlert",function(a,b,c,d,e){a.initView=function(){var d={exporterCsvFilename:"voice_queues.csv",columnDefs:[{name:"name"},{name:"description"},{name:"timeout"},{name:"strategy"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/mail/queues/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/mail/queue/list/list.create.modal.html",controller:"MailQueueListCreateCtrl"});b.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("MailQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","MailQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.queues.list",{url:"/list",templateUrl:"app/channels/mail/queue/list/list.html",controller:"MailQueueListCtrl"})}]),angular.module("xCallyShuttleApp").factory("MailQueue",["$resource",function(a){return a("/api/mail/queues/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]},data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MailQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","Team","MailQueue",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return g.save({id:a.queue.id,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})},deselect:function(b){return g["delete"]({id:a.queue.id,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.error(a)})}}};a.getQueue=function(){return g.get({id:d.id}).$promise.then(function(b){b.penalty=0,a.queue=b})["catch"](function(a){console.error(a)})},a.updateMailQueue=function(){return g.update({id:d.id},{name:a.queue.name,description:a.queue.description,timeout:a.queue.timeout,strategy:a.queue.strategy}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})},a.getTeams=function(){return f.get().$promise.then(function(b){return a.teams=b.rows,g.query({id:d.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindMailQueue(a.teams,_.map(b,function(a){return{id:a.id,penalty:a.UserHasMailQueue.penalty}}),h)})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.queues.view",{url:"/view/:id",templateUrl:"app/channels/mail/queue/view/view.html",controller:"MailQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.mail.queues.view.settings",{url:"/settings",templateUrl:"app/channels/mail/queue/view/view.settings.html"}).state("main.channels.mail.queues.view.agents",{url:"/agents",templateUrl:"app/channels/mail/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]
+})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","MailQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.mailPause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_mail_queue:save",function(b){console.log("new queue",b);var c=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),d=a.gridOptions.data.indexOf(c);a.gridOptions.data.splice(d+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,queueId:b.MailQueueId,agent:b.membername,online:c.online})}),e.socket.on("user_has_mail_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queueId:b.MailQueueId})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.mailPause,pauseType:b.pauseType,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.MailQueues.forEach(function(c){a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,queueId:c.id,agent:b.name,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.mailQueues=b.rows,e.syncUpdates("mail_queue",a.mailQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.mailQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"mailPause",width:300,displayName:"APPLICATION_PAUSE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.pause != null && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><timer data-ng-if="row.entity.pause" start-time="grid.appScope.moment(row.entity.lastPauseAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span><span data-ng-if="row.entity.pause" class="left-margin">({{row.entity.pauseType}})</span><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor left-margin" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"PAUSED"},{value:"false",label:"NOT PAUSED"}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queueId" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queueId)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.mailQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_mail_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/mail/realtime/view/agent/queue.modal.add.html",controller:"MailRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.mailQueues,function(b){return!!_.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})})}}});g.result.then(function(b){return i.save({name:"QueueAdd",agent:e,queues:_.filter(a.mailQueues,function(a){return _.includes(b.queues,a.id)}),channel:"mail",data1:e,data3:b.queues.join(","),data4:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queueId:b,channel:"mail",data1:a,data3:b,data4:"mail"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/mail/realtime/view/agent/agent.modal.info.html",controller:"MailRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/mail/realtime/view/agent/agent.html",controller:"MailRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewQueueCtrl",["$scope","$http","socket","MailQueue","Agent",function(a,b,c,d,e){a.initQueues=function(){a.gridOptions={enableSorting:!1,enableFiltering:!0,enableHorizontalScrollbar:0,enableVerticalScrollbar:0,showTreeExpandNoChildren:!1,columnDefs:[{name:"queueName",displayName:"Queue"},{name:"fullname",displayName:"Agent",cellClass:"text-center"},{name:"online",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><i data-ng-if="row.entity.online != null" class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i></div>'},{name:"chatPause",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div><i data-ng-if=\"row.entity.mailPause != null\" data-ng-class=\"row.entity.mailPause ? 'icon-control-pause font-red' : 'icon-control-play font-green'\"></i></div>"},{name:"pauseType",cellClass:"text-center",cellTemplate:'<span data-ng-if="row.entity.mailPause">{{row.entity.pauseType}}</span>'},{name:"lastLoginAt",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><time data-ng-if="row.entity.agentName" is="relative-time" datetime="{{row.entity.lastLoginAt}}">April 1, 2014</time></div>'}],onRegisterApi:function(b){a.gridApi=b,a.gridApi.treeBase.on.rowExpanded(a,function(b){var c=_.findIndex(a.gridOptions.data,{$$hashKey:b.entity.$$hashKey});b.entity.Users&&b.entity.Users.forEach(function(b){_.find(a.gridOptions.data,{name:b.name})||a.gridOptions.data.splice(c+1,0,b)})})}},d.get(function(b){a.gridOptions.data=[],b.rows.forEach(function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b),b.Users&&b.Users.forEach(function(b){b.agentName=b.name,a.gridOptions.data.push(b)})}),c.socket.on("agent:save",function(b){var c=_.filter(a.gridOptions.data,{agentName:b.name});c.forEach(function(a){a.online=b.online,a.lastLoginAt=b.lastLoginAt})}),c.socket.on("mail_queue:save",function(b){b.$$treeLevel=0,b.queueName=b.name,a.gridOptions.data.push(b)}),c.socket.on("mail_queue:remove",function(b){_.remov(a.gridOptions.data,{queueName:b.name})}),c.socket.on("user_has_mail_queue:save",function(b){var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.MailQueueId});e.get({id:b.UserId}).$promise.then(function(b){a.gridOptions.data.splice(c+1,0,{id:b.id,name:b.name,fullname:b.fullname,agentName:b.name,online:b.online,lastLoginAt:b.lastLoginAt})})["catch"](function(a){console.error(a)})}),c.socket.on("user_has_mail_queue:remove",function(b){for(var c=_.findIndex(a.gridOptions.data,function(a){return a.queueName&&a.id===b.MailQueueId}),d=c+1;d<a.gridOptions.data.length;d++)a.gridOptions.data[d].id==b.UserId&&a.gridOptions.data.splice(d,1)})},function(a){console.error(a)})},a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initAgents=function(){b.get("/api/report/mails").success(function(b){a.agents=b,c.socket.on("report_mail:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_mail:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.queues",{url:"/queues",templateUrl:"app/channels/mail/realtime/view/queue/queue.html",controller:"MailRealtimeViewQueueCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewSessionCtrl",["$scope","$http","socket","uiGridConstants",function(a,b,c,d){a.initSessions=function(){a.gridOptions={enableHorizontalScrollbar:0,enableVerticalScrollbar:0,columnDefs:[{name:"uniqueid",displayName:"",cellClass:"text-center",width:150,enableSorting:!1,enableFiltering:!0},{name:"application",displayName:"APPLICATION_APP",headerCellFilter:"translate",cellClass:"text-center"},{name:"queuename",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center"},{name:"agentname",cellClass:"text-center"},{name:"accountname",displayName:"APPLICATION_ACCOUNT",headerCellFilter:"translate"},{name:"joinAt",displayName:"joinAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.joinAt" is="relative-time" datetime="{{row.entity.joinAt}}">April 1, 2014</time>',sort:{direction:d.DESC,priority:1}},{name:"leaveAt",displayName:"leaveAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.leaveAt" is="relative-time" datetime="{{row.entity.leaveAt}}">April 1, 2014</time>'},{name:"unmanagedAt",displayName:"unmanangedAt",cellClass:"text-center",cellTemplate:'<time data-ng-if="row.entity.unmanagedAt" is="relative-time" datetime="{{row.entity.unmanagedAt}}">April 1, 2014</time>'}],data:[]},b.get("/api/report/mail/sessions").success(function(b){a.gridOptions.data=b.rows,c.socket.on("report_mail_session:save",function(b){var c=_.find(a.gridOptions.data,{id:b.id}),d=a.gridOptions.data.indexOf(c);c?_.merge(a.gridOptions.data[d],b):a.gridOptions.data.unshift(b)})}).error(function(a){console.error(a)})},a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view.sessions",{url:"/sessions",templateUrl:"app/channels/mail/realtime/view/session/session.html",controller:"MailRealtimeViewSessionCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewCtrl",["$scope","$state",function(a,b){a.agents=[{name:"Queues",link:"main.channels.mail.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.mail.realtime.view.agents.timeline"}],a.sessions=[{name:"Sessions",link:"main.channels.mail.realtime.view.sessions"}],a.tree={queues:[{name:"Queues",link:"main.channels.mail.realtime.view.agents.queues"},{name:"Timeline",link:"main.channels.mail.realtime.view.agents.timeline"}],sessions:[{name:"Sessions",link:"main.channels.mail.realtime.view.sessions"}]}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.mail.realtime.view",{url:"/view",templateUrl:"app/channels/mail/realtime/view/view.html",controller:"MailRealtimeViewCtrl"})}]),angular.module("xCallyShuttleApp").factory("ChanSpy",["$resource",function(a){return a("/api/chanspy/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy",{url:"/chanspy",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChanSpyListCtrl",["$scope","$uibModal","ChanSpy","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"chanspy.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/channels/voice/chanspy/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/channels/voice/chanspy/list/list.create.modal.html",controller:"ChanSpyListCreateCtrl"});c.result.then(function(b){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("ChanSpyListCreateCtrl",["$scope","$translate","$uibModalInstance","ChanSpy","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.options=[{name:"APPLICATION_CHANSPY_OPTION_b",value:"b"},{name:"APPLICATION_CHANSPY_OPTION_B",value:"B"},{name:"APPLICATION_CHANSPY_OPTION_E",value:"E"},{name:"APPLICATION_CHANSPY_OPTION_o",value:"o"},{name:"APPLICATION_CHANSPY_OPTION_q",value:"q"},{name:"APPLICATION_CHANSPY_OPTION_s",value:"s"},{name:"APPLICATION_CHANSPY_OPTION_S",value:"S"},{name:"APPLICATION_CHANSPY_OPTION_w",value:"w"},{name:"APPLICATION_CHANSPY_OPTION_W",value:"W"}],a.save=function(){return a.item.options=a.item.options.join(""),d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy.list",{url:"/list",templateUrl:"app/channels/voice/chanspy/list/list.html",controller:"ChanSpyListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChanSpyViewCtrl",["$scope","$translate","$stateParams","xAlert","ChanSpy",function(a,b,c,d,e){a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.options=[{name:"APPLICATION_CHANSPY_OPTION_b",value:"b"},{name:"APPLICATION_CHANSPY_OPTION_B",value:"B"},{name:"APPLICATION_CHANSPY_OPTION_E",value:"E"},{name:"APPLICATION_CHANSPY_OPTION_o",value:"o"},{name:"APPLICATION_CHANSPY_OPTION_q",value:"q"},{name:"APPLICATION_CHANSPY_OPTION_s",value:"s"},{name:"APPLICATION_CHANSPY_OPTION_S",value:"S"},{name:"APPLICATION_CHANSPY_OPTION_w",value:"w"},{name:"APPLICATION_CHANSPY_OPTION_W",value:"W"}],a.getChanSpy=function(){return e.get({id:c.id}).$promise.then(function(b){b.options=b.options.split(""),a.chanspy=b})["catch"](function(a){d.show(a.data.message,"danger")})},a.updateChanSpy=function(){var f=angular.copy(a.chanspy);return f.options=f.options.join(""),e.update({id:c.id},f).$promise.then(function(){d.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.chanspy.view",{url:"/view/:id",templateUrl:"app/channels/voice/chanspy/view/view.html",controller:"ChanSpyViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.chanspy.view.settings",{url:"/settings",templateUrl:"app/channels/voice/chanspy/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("VoiceContext",["$resource",function(a){return a("/api/voice/contexts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts",{url:"/contexts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceContextListCtrl",["$scope","VoiceContext","gridOptions","$uibModal","xAlert","$translate",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"voice_contexts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:170,buttons:[{"class":"{{row.entity.defaultEntry ? 'blue-hoki disabled' : 'blue-hoki'}}",href:"/channels/voice/contexts/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){var c=d.open({animation:!0,templateUrl:"app/channels/voice/context/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});c.result.then(function(c){return b.save(c).$promise.then(function(){a.gridOptions.getPage(),e.show(f.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){e.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts.list",{url:"/list",templateUrl:"app/channels/voice/context/list/list.html",controller:"VoiceContextListCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceContextViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getContext=function(){b.get("/api/voice/contexts/"+e.id).success(function(b){a.context=b}).error(function(a){console.error(a),f.path("/voice/contexts/list")})},a.updateVoiceContext=function(){var f=angular.copy(a.context);b.put("/api/voice/contexts/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.context=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.contexts.view",{url:"/view/:id",templateUrl:"app/channels/voice/context/view/view.html",controller:"VoiceContextViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.contexts.view.settings",{url:"/settings",templateUrl:"app/channels/voice/context/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceMohListCtrl",["$scope","gridOptions","VoiceMoh","$uibModal","xAlert",function(a,b,c,d,e){a.initView=function(){var d={exporterCsvFilename:"voice_mohs.csv",columnDefs:[{name:"name"},{name:"directory"},{name:"sort"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/voice/mohs/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=b.gridOptions(c,d,a)},a.createItem=function(){var b=d.open({animation:!0,templateUrl:"app/channels/voice/moh/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});b.result.then(function(b){return c.save(b).$promise.then(function(){a.gridOptions.getPage()})["catch"](function(a){e.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs.list",{url:"/list",templateUrl:"app/channels/voice/moh/list/list.html",controller:"VoiceMohListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("VoiceMoh",["$resource",function(a){return a("/api/voice/musiconholds/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs",{url:"/mohs",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceMohViewCtrl",["$scope","$http","xAlert","$translate","VoiceMoh","$stateParams","socket","Modal","$sce","$location","Sound",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=d,a.audioSources={},a.sortOptions=[{value:"random",name:"APPLICATION_RANDOM"},{value:"alpha",name:"APPLICATION_ALPHABETICAL"}],a.getMoh=function(){return e.get({id:f.id}).$promise.then(function(b){delete b.stamp,a.moh=b})["catch"](function(a){c.show(a.message,"danger")})},a.updateVoiceMoh=function(){return console.log("update"),e.update({id:f.id},a.moh).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){c.show(a.message,"danger")})},a.addMohs=function(){return e.save({id:f.id,controller:"files"},a.item).$promise.then(function(){j.path("/channels/voice/mohs/view/"+f.id+"/audios")})["catch"](function(a){c.show(a.message,"danger")})},a.getAudioFiles=function(){return e.get({id:f.id,controller:"files"}).$promise.then(function(b){a.audioFiles=b.files,a.mohPath=b.path,a.audioFiles.forEach(function(a){l(a)})})["catch"](function(a){c.show(a.message,"danger")})},a.getSecureSrc=function(a){return i.trustAsResourceUrl(a)},a.getSounds=function(){return a.item={sounds:[]},k.get().$promise.then(function(b){a.soundList=b.rows})["catch"](function(a){c.show(a.message,"danger")})};var l=function(c){b.get("/api/voice/musiconholds/stream",{params:{path:encodeURI(a.mohPath+"/"+c)}}).success(function(b){a.audioSources[c]="data:audio/ogg;base64,"+b}).error(function(a){console.error(a)})};a.deleteItem=h.confirm["delete"](function(e){b["delete"]("/api/voice/musiconholds/"+f.id+"/files",{params:{filename:e}}).success(function(){_.remove(a.audioFiles,function(a){return a===e}),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.mohs.view",{url:"/view/:id",templateUrl:"app/channels/voice/moh/view/view.html",controller:"VoiceMohViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.mohs.view.settings",{url:"/settings",templateUrl:"app/channels/voice/moh/view/view.settings.html"}).state("main.channels.voice.mohs.view.audios",{url:"/audios",templateUrl:"app/channels/voice/moh/view/view.audios.html",cache:!1}).state("main.channels.voice.mohs.view.add",{url:"/add",templateUrl:"app/channels/voice/moh/view/view.addFiles.html",cache:!1})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCtrl",["$scope","$rootScope","VoiceQueue","gridOptions","$uibModal",function(a,b,c,d,e){a.initView=function(){var b={exporterCsvFilename:"voice_queues.csv",primaryKey:"name",columnDefs:[{name:"name"},{name:"strategy"},{name:"description"},{name:"action",width:200,buttons:[{"class":"blue-hoki",href:"/channels/voice/queues/view/{{row.entity.name}}/settings",name:"settings"},{"class":"green-meadow",href:"/channels/voice/queues/view/{{row.entity.name}}/agents",name:"agents"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.name)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var b=e.open({animation:!0,templateUrl:"app/channels/voice/queue/list/list.create.modal.html",controller:"VoiceQueueListCreateCtrl"});b.result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCreateCtrl",["$scope","$uibModalInstance","$translate","xAlert","VoiceQueue",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return e.save(a.item).$promise.then(function(a){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),b.close(a)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues.list",{url:"/list",templateUrl:"app/channels/voice/queue/list/list.html",controller:"VoiceQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","VoiceQueue","VoiceContext","Team",function(a,b,c,d,e,f,g,h,i,j){a.penalty=0,a.binaryChoices=[{name:"Yes",value:1},{name:"No",value:0}],a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.monitorFormats=[{name:"wav",value:"wav"},{name:"gsm",value:"gsm"},{name:"Inactive",value:""}],a.queueAnnounces=[{display_name:"Default",value:null},{display_name:"Disabled",value:""}];var k=function(){return{select:function(b){return h.save({id:a.queue.name,controller:"agents"},{agents:b,penalty:a.queue.penalty}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})},deselect:function(b){return h["delete"]({id:a.queue.name,controller:"agents",agents:b}).$promise.then(function(){a.getTeams()})["catch"](function(a){console.log(a)})}}};a.getQueue=function(){return h.get({id:e.id}).$promise.then(function(b){b.joinempty=""===b.joinempty?[]:b.joinempty.split(","),b.leavewhenempty=""===b.leavewhenempty?[]:b.leavewhenempty.split(","),b.periodic_announce=""===b.periodic_announce?[]:b.periodic_announce.split(","),b.penalty=0,a.queue=b})["catch"](function(a){g.path("/channels/voice/queues/list")})},a.updateVoiceQueue=function(){var b=angular.copy(a.queue);return b.joinempty=b.joinempty.join(","),b.leavewhenempty=b.leavewhenempty.join(","),b.periodic_announce=b.periodic_announce.join(","),b.context||(b.context=null),h.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(d.instant(a.data.message),"danger")})},a.getTeams=function(){return j.get().$promise.then(function(b){return a.teams=b.rows,h.query({id:e.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindQueue(a.teams,_.map(b,function(a){return{id:a.id,penalty:a.UserHasVoiceQueue.penalty}}),k)})["catch"](function(a){console.error(a)})},a.getContexts=function(){return i.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){c.show(d.instant(data.message),"danger")})},a.getMohs=function(){b.get("/api/voice/musiconholds").success(function(b){a.voiceMohs=b.rows,f.syncUpdates("voice_musiconhold",a.voiceMohs)}).error(function(a){c.show(a.message,"danger")})},a.getSounds=function(){b.get("/api/sounds").success(function(b){a.queueAnnounces=a.queueAnnounces.concat(b),a.periodicAnnounces=angular.copy(b.rows),b.rows.unshift({display_name:"None",converted_path:null,value:""}),a.sounds=b.rows,f.syncUpdates("sound",a.sounds)}).error(function(a){console.error(a)})},a.returnAnnouncePath=function(a){
+return a.converted_path?a.converted_path+"/"+a.save_name:null===a.value?null:a.value}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.queues.view",{url:"/view/:id",templateUrl:"app/channels/voice/queue/view/view.html",controller:"VoiceQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.queues.view.settings",{url:"/settings",templateUrl:"app/channels/voice/queue/view/view.settings.html"}).state("main.channels.voice.queues.view.agents",{url:"/agents",templateUrl:"app/channels/voice/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").factory("VoiceQueue",["$resource",function(a){return a("/api/voice/queues/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentCtrl",["$scope","$log","$uibModal","$translate","socket","xAlert","Agent","Pause","Action","VoiceQueue","usSpinnerService","$q","uiGridConstants",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){return k.spin("spinner-grid"),g.get(s).$promise.then(function(b){a.gridOptions.totalItems=b.count,a.gridOptions.data=[],b.rows.forEach(function(a){p(a)})})["catch"](function(a){f.show(a.message,"danger")})["finally"](function(){k.stop("spinner-grid")})}function o(){e.socket.on("agent:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.id,isAgent:!0});if(c){var d=a.gridOptions.data.indexOf(c);a.gridOptions.data[d].online=b.online,a.gridOptions.data[d].lastLoginAt=b.lastLoginAt,a.gridOptions.data[d].pause=b.voicePause,a.gridOptions.data[d].pauseType=b.pauseType,a.gridOptions.data[d].lastPauseAt=b.lastPauseAt,a.gridOptions.data[d].status=b.status,a.gridOptions.data[d].statusAt=b.statusAt,a.gridOptions.data[d].queueStatus=b.queueStatus,a.gridOptions.data[d].queueStatusAt=b.queueStatusAt,a.gridOptions.data[d].lastQueue=b.lastQueue,a.gridOptions.data[d].ipaddr=b.ipaddr,a.gridOptions.data[d].port=b.port,a.gridOptions.data[d].fullcontact=b.fullcontact,a.gridOptions.data[d].useragent=b.useragent,a.gridOptions.data[d].lastms=b.lastms,a.gridOptions.data[d].internal=b.internal,_.map(a.gridOptions.data,function(a){a.isAgent||a.agentId!==b.id||(a.online=b.online)})}}),e.socket.on("agent:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.id})}),e.socket.on("user_has_voice_queue:save",function(b){var c=_.find(a.gridOptions.data,{agentId:b.UserId,queue:b.queue});if(!c&&b.logged){var d=_.find(a.gridOptions.data,{agentId:b.UserId,isAgent:!0}),e=a.gridOptions.data.indexOf(d);a.gridOptions.data.splice(e+1,0,{isAgent:!1,agentId:b.UserId,queue:b.queue,agent:b.membername,callstaken:b.callstaken?b.callstaken:0,online:d.online})}else c&&!b.logged?_.remove(a.gridOptions.data,{agentId:b.UserId,queue:b.queue}):c&&b.logged&&(c.callstaken=b.callstaken?b.callstaken:0)}),e.socket.on("user_has_voice_queue:remove",function(b){_.remove(a.gridOptions.data,{agentId:b.UserId,queue:b.queue})})}function p(b){a.gridOptions.data.push({isAgent:!0,agentId:b.id,agent:b.name,online:b.online,lastLoginAt:b.lastLoginAt,lastPauseAt:b.lastPauseAt,pause:b.voicePause,pauseType:b.pauseType,status:b.status||"UNKNOWN",statusAt:b.statusAt,queueStatus:b.queueStatus||"READY",queueStatusAt:b.queueStatusAt,lastQueue:b.lastQueue,ipaddr:b.ipaddr,port:b.port,fullcontact:b.fullcontact,useragent:b.useragent,lastms:b.lastms,internal:b.internal,$$treeLevel:0}),b.VoiceQueues.forEach(function(c){c.UserHasVoiceQueue.logged&&a.gridOptions.data.push({isAgent:!1,agentId:b.id,queue:c.name,agent:b.name,callstaken:c.UserHasVoiceQueue.callstaken?c.UserHasVoiceQueue.callstaken:0,online:b.online})})}function q(){return h.get().$promise.then(function(b){a.pauses=b.rows,e.syncUpdates("pause",a.pauses)})["catch"](function(a){f.show(a.message,"danger")})}function r(){return j.get().$promise.then(function(b){a.voiceQueues=b.rows,e.syncUpdates("voice_queue",a.voiceQueues)})["catch"](function(a){f.show(a.message,"danger")})}a.voiceQueues=[];var s={offset:0,limit:10};a.moment=moment,a.initAgents=function(){a.gridOptions={enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,showTreeExpandNoChildren:!0,columnDefs:[{name:"name",displayName:"APPLICATION_AGENT",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent">{{row.entity.agent}} &lt;{{row.entity.internal}}&gt;</div>'},{name:"online",displayName:"APPLICATION_ONLINE",width:150,headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.online != null && row.entity.isAgent"><i class="icon-user" data-ng-class="row.entity.online ? \'font-green\' : \'font-red\'"></i> <span data-ng-if="row.entity.online" class="left-margin">(<timer start-time="grid.appScope.moment(row.entity.lastLoginAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"true",label:"ONLINE"},{value:"false",label:"OFFLINE"}]}},{name:"status",displayName:"APPLICATION_PHONE_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:"<div data-ng-if=\"row.entity.isAgent\">{{'APPLICATION_'+row.entity.status | translate}} <span data-ng-if=\"row.entity.statusAt && (row.entity.status === 'BUSY' || row.entity.status === 'ONHOLD' || row.entity.status === 'INUSE')\">(<timer start-time=\"grid.appScope.moment(row.entity.statusAt).unix()*1000\">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>)</span></span></div>",filter:{type:m.filter.SELECT,selectOptions:[{value:"UNKNOWN",label:d.instant("APPLICATION_UNKNOWN")},{value:"NOT_INUSE",label:d.instant("APPLICATION_NOT_INUSE")},{value:"INUSE",label:d.instant("APPLICATION_INUSE")},{value:"BUSY",label:d.instant("APPLICATION_BUSY")},{value:"INVALID",label:d.instant("APPLICATION_INVALID")},{value:"UNAVAILABLE",label:d.instant("APPLICATION_UNAVAILABLE")},{value:"RINGING",label:d.instant("APPLICATION_RINGING")},{value:"RINGINUSE",label:d.instant("APPLICATION_RINGINUSE")},{value:"ONHOLD",label:d.instant("APPLICATION_ONHOLD")}]}},{name:"queueStatus",width:400,displayName:"APPLICATION_QUEUE_STATUS",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.isAgent && row.entity.online" class="ui-grid-vcenter" data-ng-class="{\'paused-agent\':row.entity.pause}"><span class="left-margin">{{\'APPLICATION_\'+row.entity.queueStatus.toUpperCase() | translate}}</span><span data-ng-if="row.entity.queueStatus!==\'complete\' && row.entity.queueStatus!==\'paused\'">({{row.entity.lastQueue}})</span><timer class="left-margin" data-ng-if="row.entity.queueStatusAt && row.entity.queueStatus!==\'complete\'" start-time="grid.appScope.moment(row.entity.queueStatusAt).unix()*1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span><span data-ng-if="row.entity.pause" class="left-margin">({{row.entity.pauseType}})</span><span class="left-margin"><i data-ng-if="row.entity.pause" data-ng-click="grid.appScope.pause(row.entity.agentId,\'unpause\')" class="icon-control-play font-green pointer-cursor" title="{{\'APPLICATION_RESUME\' | translate}}"></i><i class="icon-control-pause font-yellow pointer-cursor" data-ng-click="grid.appScope.pause(row.entity.agentId,\'pause\',\'DEFAULT PAUSE\')" title="{{\'APPLICATION_DEFAULT_PAUSE\' | translate}}"></i></span><select data-ng-if="grid.appScope.pauses.length" class="pause-select pointer-cursor" data-ng-model="grid.appScope.pauseType" data-ng-change="grid.appScope.pause(row.entity.agentId,\'pause\',grid.appScope.pauseType)"><option class="pointer-cursor" data-ng-repeat="pause in grid.appScope.pauses">{{pause.name}}</option></select></div>',filter:{type:m.filter.SELECT,selectOptions:[{value:"paused",label:d.instant("APPLICATION_PAUSED")},{value:"connect",label:d.instant("APPLICATION_CONNECT")},{value:"complete",label:d.instant("APPLICATION_COMPLETE")},{value:"called",label:d.instant("APPLICATION_CALLED")}]},enableSorting:!1,enableColumnMenu:!1},{name:"queue",displayName:"APPLICATION_QUEUE",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"callstaken",displayName:"APPLICATION_CALLS_TAKEN",headerCellFilter:"translate",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.callstaken !== null">{{row.entity.callstaken}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1,width:100},{name:"action",displayName:"",width:170,cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><button data-ng-if="row.entity.queue" class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.leaveQueue(row.entity.agentId,row.entity.queue)"><i class="icon-ban"></i> {{\'APPLICATION_LEAVE\' | translate}}</button><button data-ng-if="row.entity.isAgent && row.treeNode.children.length < grid.appScope.voiceQueues.length" class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.joinQueue(row.entity.agentId)"><i class="icon-plus"></i> {{\'APPLICATION_JOIN_QUEUE\' | translate}}</button> <button data-ng-if="row.entity.isAgent" class="btn btn-xs blue-madison" data-ng-click="grid.appScope.showInfo(row.entity)"><i class="icon-info"></i> {{\'APPLICATION_INFO\' | translate}}</button><div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1}],data:[],gridMenuTitleFilter:function(a){var b=l.defer();return b.resolve(d.instant(a)),b.promise},onRegisterApi:function(b){a.gridApi=b,a.gridApi.grid.registerDataChangeCallback(function(){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length)}),a.gridApi.treeBase.on.rowExpanded(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length+b.treeNode.children.length)}),a.gridApi.treeBase.on.rowCollapsed(a,function(b){t(a.gridApi.core.getVisibleRows(a.gridApi.grid).length-b.treeNode.children.length)}),a.gridApi.core.on.sortChanged(a,function(a,b){0===b.length?s.order=null:s.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),n()}),a.gridApi.pagination.on.paginationChanged(a,function(a,b){s.offset=(a-1)*b,s.limit=b,n()}),a.gridApi.core.on.filterChanged(a,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?s[a.name]=a.filters[0].term:delete s[a.name]}),n()})}},n(),q(),r(),o()};var t=function(a){var b=a?30*a+130:270;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px"),angular.element(document.getElementsByClassName("ui-grid-viewport")).css("height",30*a+"px")};a.$on("$destroy",function(){e.unsyncUpdates("agent"),e.unsyncUpdates("user_has_voice_queue")}),a.pause=function(a,b,c){return i.save({name:b,agent:a,type:c||"DEFAULT PAUSE",data4:c||"DEFAULT PAUSE",channel:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message||a.data.message,"danger")})},a.joinQueue=function(e){var g=c.open({animation:!0,templateUrl:"app/channels/voice/realtime/view/agent/queue.modal.add.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{queues:function(){return _.reject(a.voiceQueues,function(b){return!!_.find(a.gridOptions.data,{queue:b.name,isAgent:!1,agentId:e})})}}});g.result.then(function(a){return i.save({name:"QueueAdd",agent:e,queues:a.queues,channel:"voice",data1:e,data3:a.queues.join(","),data4:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},function(){b.info("Modal dismissed at: "+new Date)})},a.leaveQueue=function(a,b){return i.save({name:"QueueRemove",agent:a,queue:b,channel:"voice",data1:a,data3:b,data4:"voice"}).$promise.then(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.showInfo=function(a){c.open({animation:!0,templateUrl:"app/channels/voice/realtime/view/agent/agent.modal.info.html",controller:"VoiceRealtimeViewAgentInfoModalCtrl",resolve:{agent:a}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view.agents",{url:"/agents",templateUrl:"app/channels/voice/realtime/view/agent/agent.html",controller:"VoiceRealtimeViewAgentCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentInfoModalCtrl",["$scope","$uibModalInstance","$http","agent",function(a,b,c,d){a.agent=d,a.close=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","queues",function(a,b,c,d){a.queues=d,a.item={},a.save=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_agent")}),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.agents=[],b.get("/api/report/agents").success(function(b){a.agents=b,c.syncUpdates("report_agent",a.agents)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewAgentReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_queue")}),a.conf={queuesByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.queues=[],b.get("/api/report/queues").success(function(b){console.log(b),a.queues=b,c.syncUpdates("report_queue",a.queues)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewQueueReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueuePauseModalCtrl",["$scope","$uibModalInstance","items","data",function(a,b,c,d){a.items=c,a.data=d,console.log(d),a.selected={item:a.items[0],queue:_.isArray(d)?a.data[0].queue:a.data.queue,membername:_.isArray(d)?a.data[0].membername:a.data.membername,"interface":_.isArray(d)?a.data[0]["interface"]:a.data["interface"]},a.ok=function(c,e){var f;_.isArray(d)?(f=[],d.forEach(function(b){f.push({action:"QueuePause",queue:b.queue,membername:b.membername,"interface":b["interface"],paused:c,reason:a.selected.item})})):f={action:"QueuePause",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],paused:c,reason:a.selected.item},b.close(f)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueCtrl",["$scope","$http","$log","$uibModal","$translate","socket","xAlert",function(a,b,c,d,e,f,g){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){f.unsyncUpdates("user_has_voice_queue")}),a.groups=[],a.pauses=["pausa1","pausa2","pausa3"],a.pause=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/channels/voice/realtime/view/queue/pause.modal.html",controller:"VoiceRealtimeViewQueuePauseModalCtrl",resolve:{items:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.add=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/channels/voice/realtime/view/queue/queue.modal.add.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){console.log("action",a),b.post("/api/voice/user_has_queues",a).then(function(){a.login?b.post("/api/ami",a).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")}),console.log(a)},function(){c.info("Modal dismissed at: "+new Date)})},a.remove=function(a,f){var h=d.open({animation:!0,size:a,templateUrl:"app/channels/voice/realtime/view/queue/queue.modal.remove.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return null},data:function(){return f}}});h.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initQueues=function(){b.get("/api/voice/user_has_queues").success(function(b){a.queues=b,a.groups=_.map(_.groupBy(a.queues,"queue"),function(a,b){return{queue:b,agents:a}}),console.log("ok"),f.socket.on("user_has_voice_queue:save",function(b){console.log("item",b);var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}}),f.socket.on("user_has_voice_queue:remove",function(b){var c=_.find(a.groups,{queue:b.queue});_.remove(c.agents,{membername:b.membername}),c.agents.length||_.remove(a.groups,{queue:b.queue})}),f.socket.on("report_agent:save",function(b){var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueQueueModalCtrl",["$scope","$uibModalInstance","$http","pauses","data",function(a,b,c,d,e){a.initAdd=function(){a.data=e,a.pauses=d,a.selected={penalty:0,paused:!1,reason:a.pauses[0]},a.$watch("selected.agent",function(b){b&&(a.selected.membername=b.name,a.selected["interface"]="SIP/"+b.name,a.selected.UserId=b.id)}),c.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=_.reject(b.rows,function(b){return!!_.find(a.data,{membername:b.name})}),a.selected.queue=a.data[0]?a.data[0].queue:null}).error(function(a){console.error(a)})},a.initRemove=function(){a.data=e,console.log(e),_.isArray(e)?a.selected={queue:a.data[0].queue,logout:!1}:a.selected={membername:a.data.membername,"interface":a.data["interface"],queue:a.data.queue,logout:!1,UserId:a.data.UserId}},a.okAdd=function(){var c={action:"QueueAdd",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],penalty:a.selected.penalty,paused:a.selected.paused,UserId:a.selected.UserId};c.paused&&(c.reason=a.selected.reason),b.close(c)},a.okRemove=function(){var c;_.isArray(a.data)?(c=[],a.data.forEach(function(b){c.push({action:"QueueRemove",queue:b.queue,"interface":b["interface"],logout:a.selected.logout,UserId:b.UserId})})):c={action:"QueueRemove",queue:a.selected.queue,logout:a.selected.logout,"interface":a.selected["interface"],UserId:a.selected.UserId},b.close(c)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"View1",link:"main.channels.voice.realtime.view.agents"},{name:"View2",link:"main.channels.voice.realtime.view.areports"}],a.queues=[{name:"View1",link:"main.channels.voice.realtime.view.queues"},{name:"View2",link:"main.channels.voice.realtime.view.qreports"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.realtime.view",{url:"/view",templateUrl:"app/channels/voice/realtime/view/view.html",controller:"VoiceRealtimeViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRecordingListCtrl",["$scope","$translate","$sce","Recording","gridOptions","xAlert","uiGridConstants",function(a,b,c,d,e,f,g){a.Recording=d;a.updateRating=function(a,c){d.patch({id:a,rating:c}).$promise.then(function(){f.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.message,"danger")})},a.initView=function(){var b={exporterCsvFilename:"recordings.csv",rowHeight:30,columnDefs:[{name:"uniqueid"},{name:"calleridnum"},{name:"calleridname"},{name:"connectedlinenum"},{name:"connectedlinename"},{name:"rating",filter:{type:g.filter.SELECT,selectOptions:[{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"},{value:4,label:"4"},{value:5,label:"5"}]},cellClass:"ui-grid-vcenter",width:"100",cellTemplate:'<div><uib-rating data-ng-model="row.entity.rating" data-ng-click="grid.appScope.updateRating(row.entity.uniqueid, row.entity.rating)" aria-labelledby="default-rating"></uib-rating></div>'},{name:"audio",displayName:"",width:225,enableSorting:!1,enableFiltering:!1,buttons:[{directive:'<audio-file-download params="{id:row.entity.uniqueid,controller:\'stream\'}" resource="grid.appScope.Recording"></audio-file-download>'}]},{name:"action",width:150,buttons:[{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.uniqueid, row.entity.uniqueid)"},{directive:'<motion-file-download params="{id:row.entity.uniqueid,controller:\'stream\'}" resource="grid.appScope.Recording" mimetype="audio/wav" btnclass="btn btn-xs blue-hoki" filename="row.entity.uniqueid+\'.wav\'"></motion-file-download>'}]}]};a.gridOptions=e.gridOptions(d,b,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.recordings.list",{url:"/list",templateUrl:"app/channels/voice/recording/list/list.html",controller:"VoiceRecordingListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Recording",["$resource",function(a){return a("/api/voice/recordings/:id/:controller",{id:"@id"},{update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.recordings",{url:"/recordings",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound",{url:"/inbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCreateCtrl",["$scope","$uibModalInstance","Route","application","xAlert","$location","$translate",function(a,b,c,d,e,f,g){a.$application=d.application,a.forms={route:void 0},a.item={type:"inbound",appdata:"Inbound Call",context:"from-voip-provider"},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),f.path("/channels/voice/routes/inbound/view/"+a.id+"/applications")})["catch"](function(a){console.log(a),e.show(g.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"InboundRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_PHONE_NUMBER"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.Applications.length"><span data-ng-repeat="app in row.entity.Applications | limitTo:2">{{app.app}}({{app.appdata[0]}}), </span>...</div><div data-ng-if="!row.entity.Applications.length">{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/inbound/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"inbound"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/inbound/list/create.modal.html",controller:"VoiceRouteInboundListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound.list",{url:"/list",templateUrl:"app/channels/voice/route/inbound/list/list.html",controller:"VoiceRouteInboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundViewCtrl",["$scope","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval","Route","VoiceQueue","Sound","SquareProject","VoiceContext","Interval","VoiceMail",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){function r(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function s(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=b,a.$application=i.application,a.$interval=j.interval,a.gridOptions={rowTemplate:'<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.appdata.join(',')}}</div>",enableSorting:!1,enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"action",enableSorting:!1,enableColumnMenu:!1,displayName:"APPLICATION_ACTION",headerCellFilter:"translate",width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openApplication(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteApp(row.entity.app+\' application\', gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()})}},a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={settings:void 0,interval:void 0},a.application={},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.$watch("interval",function(a){a&&r(a)},!0),a.updateSetAppdata=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.application.appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.updateSetAppdataSettings=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.route.Applications[a.selectedApp].appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.$watch("main.app",function(d){if(d){var e,f;switch(c.appId||(a.application={app:d,interval:a.application.interval||"*,*,*,*",appdata:[]}),d){case"Queue":e=l,f=m;break;case"Playback":e=m;break;case"AGI":e=n;break;case"Goto":e=o;break;case"Voicemail":e=q;break;default:e=null,f=null}if(e)return e.get().$promise.then(function(b){a.items=b.rows}).then(function(){return f?f.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){h.show(b.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,e.path(b)},a.getIntervals=function(){return p.get().$promise.then(function(b){a.Intervals=b.rows,d.syncUpdates("interval",a.Intervals)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.getRoute=function(){
+return k.get({id:c.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications})["catch"](function(a){e.path("/channels/voice/routes/inbound/list")})},a.getApplication=function(){void 0===a.selectedApp&&e.path("/channels/voice/routes/inbound/list");var b=_.find(a.$application.applications,{value:a.route.Applications[a.selectedApp].app});if(a.main.app=b?b.value:"custom","Set"===a.main.app){var c=a.route.Applications[a.selectedApp].appdata[0].split("=");a.application.variable=c[0],a.application.value=c[1]}if(!b){var d=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[d]}s()},a.openApplication=function(b){a.selectedApp=b,e.path("/channels/voice/routes/inbound/view/"+c.id+"/applications/settings")},a.updateRoute=function(d){return a.selectedApp=void 0,a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(a){h.show(b.instant("MESSAGE_WELL_DONE")+"!","success"),d&&e.path("/channels/voice/routes/inbound/view/"+c.id+"/"+d)})["catch"](function(a){console.log(a),h.show(b.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return o.get().$promise.then(function(b){a.voiceContexts=b.rows,d.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.deleteApp=g.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("applications")},a.goNext=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){d.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.inbound.view",{url:"/view/:id",templateUrl:"app/channels/voice/route/inbound/view/view.html",controller:"VoiceRouteInboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.routes.inbound.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/inbound/view/view.settings.html"}).state("main.channels.voice.routes.inbound.view.applications",{url:"/applications",templateUrl:"app/channels/voice/route/inbound/view/view.applications.html"}).state("main.channels.voice.routes.inbound.view.application",{url:"/application",templateUrl:"app/channels/voice/route/view.application.html"}).state("main.channels.voice.routes.inbound.view.applications.settings",{url:"/settings",templateUrl:"app/channels/voice/route/view.applicationSettings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal",{url:"/internal",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCreateCtrl",["$scope","$uibModalInstance","Route","application","$location","$translate","xAlert",function(a,b,c,d,e,f,g){a.$application=d.application,a.forms={route:void 0},a.item={type:"internal",appdata:"Internal Call",context:"from-sip"},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),e.path("/channels/voice/routes/internal/view/"+a.id+"/applications")})["catch"](function(a){g.show(f.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"InternalRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_PHONE_NUMBER"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.Applications.length"><span data-ng-repeat="app in row.entity.Applications | limitTo:2">{{app.app}}({{app.appdata[0]}}),</span>...</div><div data-ng-if="!row.entity.Applications.length">{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/internal/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"internal"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/internal/list/create.modal.html",controller:"VoiceRouteInternalListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal.list",{url:"/list",templateUrl:"app/channels/voice/route/internal/list/list.html",controller:"VoiceRouteInternalListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalViewCtrl",["$scope","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval","Route","VoiceQueue","Sound","SquareProject","VoiceContext","Interval","VoiceMail",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){function r(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function s(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=b,a.selectedApp=void 0,a.$application=i.application,a.$interval=j.interval,a.gridOptions={rowTemplate:'<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.appdata.join(',')}}</div>",enableSorting:!1,enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"action",displayName:"APPLICATION_ACTION",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1,width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openApplication(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteApp(row.entity.app+\' application\', gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()})}},a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={settings:void 0,interval:void 0},a.application={},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.$watch("interval",function(a){a&&r(a)},!0),a.updateSetAppdata=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.application.appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.updateSetAppdataSettings=function(){a.application.variable&&a.application.value&&"Set"===a.main.app?a.route.Applications[a.selectedApp].appdata[0]=a.application.variable+"="+a.application.value:a.application.appdata[0]=null},a.$watch("main.app",function(d){if(d){var e,f;switch(c.appId||(a.application={app:d,interval:a.application.interval||"*,*,*,*",appdata:[]}),d){case"Queue":e=l,f=m;break;case"Playback":e=m;break;case"AGI":e=n;break;case"Goto":e=o;break;case"Voicemail":e=q;break;default:e=null,f=null}if(e)return e.get().$promise.then(function(b){a.items=b.rows}).then(function(){return f?f.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){h.show(b.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,e.path(b)},a.getIntervals=function(){return p.get().$promise.then(function(b){a.Intervals=b.rows,d.syncUpdates("interval",a.Intervals)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:c.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications})["catch"](function(a){e.path("/channels/voice/routes/internal/list")})},a.getApplication=function(){console.log(a.selectedApp),void 0===a.selectedApp&&e.path("/channels/voice/routes/internal/list");var b=_.find(a.$application.applications,{value:a.route.Applications[a.selectedApp].app});if(a.main.app=b?b.value:"custom","Set"===a.main.app){var c=a.route.Applications[a.selectedApp].appdata[0].split("=");a.application.variable=c[0],a.application.value=c[1]}if(!b){var d=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[d]}s()},a.openApplication=function(b){a.selectedApp=b,e.path("/channels/voice/routes/internal/view/"+c.id+"/applications/settings")},a.updateRoute=function(d){return a.selectedApp=void 0,a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(a){h.show(b.instant("MESSAGE_WELL_DONE")+"!","success"),d&&e.path("/channels/voice/routes/internal/view/"+c.id+"/"+d)})["catch"](function(a){h.show(b.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return o.get().$promise.then(function(b){a.voiceContexts=b.rows,d.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){h.show(b.instant(a.message),"danger")})},a.deleteApp=g.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("applications")},a.goNext=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){d.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.internal.view",{url:"/view/:id",templateUrl:"app/channels/voice/route/internal/view/view.html",controller:"VoiceRouteInternalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.routes.internal.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/internal/view/view.settings.html"}).state("main.channels.voice.routes.internal.view.applications",{url:"/applications",templateUrl:"app/channels/voice/route/internal/view/view.applications.html"}).state("main.channels.voice.routes.internal.view.application",{url:"/application",templateUrl:"app/channels/voice/route/view.application.html"}).state("main.channels.voice.routes.internal.view.applications.settings",{url:"/settings",templateUrl:"app/channels/voice/route/view.applicationSettings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCreateCtrl",["$scope","$uibModalInstance","Route","application","xAlert","$translate","$location","Tag",function(a,b,c,d,e,f,g,h){a.$application=d.application,a.forms={route:void 0},a.item={type:"outbound",appdata:"Outbound Call",context:"from-sip"},a.getTags=function(){return h.get().$promise.then(function(b){b.rows.unshift({name:"--"}),a.tags=b.rows})["catch"](function(a){e.show(f.instant(a.data.translatedMessage),"danger")})},a.ok=function(){return a.item.exten=a.$application.checkUnderscore(a.item.exten),c.save(a.item).$promise.then(function(a){b.close(a),g.path("/channels/voice/routes/outbound/view/"+a.id+"/routes")})["catch"](function(a){e.show(f.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource","gridOptions","Route","$uibModal","$location","$log",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.initView=function(){var b={exporterCsvFilename:"OutboundRoutes.csv",columnDefs:[{name:"exten",displayName:"APPLICATION_DESTINATION_PATTERN"},{name:"description"},{name:"applications",cellClass:"ui-grid-vcenter",cellTemplate:'<div data-ng-if="row.entity.Applications.length"><span data-ng-repeat="app in row.entity.Applications | limitTo:2">{{app.app}}({{app.appdata[0]}}),</span>...</div><div data-ng-if="!row.entity.Applications.length">{{\'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate}}</div>',enableSorting:!1,enableFiltering:!1,enableColumnMenu:!1},{name:"action",width:170,buttons:[{"class":"blue-hoki",href:"/channels/voice/routes/outbound/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.exten, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(j,b,a,{type:"outbound"})},a.create=function(){k.open({animation:!0,templateUrl:"app/channels/voice/route/outbound/list/create.modal.html",controller:"VoiceRouteOutboundListCreateCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.outbound.list",{url:"/list",templateUrl:"app/channels/voice/route/outbound/list/list.html",controller:"VoiceRouteOutboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.outbound",{url:"/outbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundViewCtrl",["$scope","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","application","interval","Route","Trunk","VoiceContext","Interval","Tag",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){function p(b){var c,d;if("always"===b.intType)c=null,d="*,*,*,*";else if("list"===b.intType)d=b.IntervalId?_.find(a.Intervals,{id:b.IntervalId}).name:"*,*,*,*",c=b.IntervalId||null;else if("custom"===b.intType){c=null;var e,f,g,h;e=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(f=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(f+="-"+b.wd_to)):f="*",b.md_from&&"always"!==b.md_from?(g=b.md_from,b.md_to&&"always"!==b.md_to&&(g+="-"+b.md_to)):g="*",b.m_from&&"always"!==b.m_from?(h=b.m_from,b.m_to&&"always"!==b.m_to&&(h+="-"+b.m_to)):h="*",d=e+","+f+","+g+","+h}void 0===a.selectedApp?(a.application.interval=d,a.application.IntervalId=c):(a.route.Applications[a.selectedApp].interval=d,a.route.Applications[a.selectedApp].IntervalId=c)}function q(){if(a.interval.intType=a.route.Applications[a.selectedApp].IntervalId?"list":"*,*,*,*"===a.route.Applications[a.selectedApp].interval?"always":"custom",a.interval.IntervalId=a.route.Applications[a.selectedApp].IntervalId,!a.route.Applications[a.selectedApp].IntervalId){var b,c=a.route.Applications[a.selectedApp].interval?a.route.Applications[a.selectedApp].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.interval.t_from=moment(b[0],"HH:mm"),a.interval.t_to=moment(b[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.interval.wd_from=b[0],a.interval.wd_to=b[1]?b[1]:"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.interval.md_from=b[0],a.interval.md_to=b[1]?b[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.interval.m_from=b[0],a.interval.m_to=b[1]?b[1]:"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}a.$translate=c,a.$application=i.application,a.$interval=j.interval,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.gridOptions={rowTemplate:'<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',columnDefs:[{name:"app",displayName:"APPLICATION_APPLICATION",cellClass:"ui-grid-vcenter",cellTemplate:"<div><span data-ng-if=\"row.entity.app === 'Dial'\">Default</span><span data-ng-if=\"row.entity.app !== 'Dial'\">{{row.entity.app}}</span></div>",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"appdata",displayName:"APPLICATION_ARGUMENTS",headerCellFilter:"translate",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.appdata.join(',')}}</div>",enableSorting:!1,enableColumnMenu:!1},{name:"interval",displayName:"APPLICATION_TIME",headerCellFilter:"translate",enableSorting:!1,enableColumnMenu:!1},{name:"action",displayName:"APPLICATION_ACTION",enableSorting:!1,enableColumnMenu:!1,headerCellFilter:"translate",width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openApplication(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteApp(row.entity.app+\' application\', gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}],onRegisterApi:function(b){b.draggableRows.on.rowDropped(a,function(b,c){a.updateRoute()})}},a.initApplication=function(b){b&&(a.selectedApp=void 0),a.forms={info:void 0,interval:void 0},a.application={},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""},a.applications=[{name:"Default",value:"Dial"},{name:"Custom",value:"custom"}]},a.$watch("interval",function(a){a&&p(a)},!0),a.$watch("main.app",function(e){if(e){var f,g;switch(d.appId||(a.application={app:e,interval:a.application.interval||"*,*,*,*",appdata:[]}),e){case"Dial":f=l,g=m;break;default:f=null,g=null}if(f)return f.get().$promise.then(function(b){a.items=b.rows}).then(function(){return g?g.get().$promise:void 0}).then(function(b){b&&(a.items2=b.rows)})["catch"](function(a){b.show(c.instant(a.message),"danger")})}},!0),a.deselectAndRedirect=function(b){a.selectedApp=void 0,f.path(b)},a.getIntervals=function(){return n.get().$promise.then(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getRoute=function(){return k.get({id:d.id}).$promise.then(function(b){a.route=b,a.gridOptions.data=b.Applications})["catch"](function(a){f.path("/channels/voice/routes/outbound/list")})},a.getApplication=function(){void 0===a.selectedApp&&f.path("/channels/voice/routes/outbound/list");var b=_.find(a.applications,{value:a.route.Applications[a.selectedApp].app});if(a.main.app=b?b.value:"custom",!b){var c=a.route.Applications[a.selectedApp].appdata.join(",");a.route.Applications[a.selectedApp].appdata=[c]}q()},a.openApplication=function(b){a.selectedApp=b,f.path("/channels/voice/routes/outbound/view/"+d.id+"/routes/settings")},a.updateRoute=function(e){return a.selectedApp=void 0,a.route.exten=a.$application.checkUnderscore(a.route.exten),k.update({id:a.route.id},a.route).$promise.then(function(a){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),e&&f.path("/channels/voice/routes/outbound/view/"+d.id+"/"+e)})["catch"](function(a){b.show(c.instant(a.data.translatedMessage),"danger")})},a.getContexts=function(){return m.get().$promise.then(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)})["catch"](function(a){b.show(c.instant(a.message),"danger")})},a.getTags=function(){return o.get().$promise.then(function(b){b.rows.unshift({name:"--"}),a.tags=b.rows})["catch"](function(a){b.show(c.instant(a.data.translatedMessage),"danger")})},a.deleteApp=h.confirm["delete"](function(b){a.route.Applications.splice(b,1),a.updateRoute()}),a.addApplication=function(){a.route.Applications.push(a.application),a.updateRoute("routes")},a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes.outbound.view",{url:"/view/:id",templateUrl:"app/channels/voice/route/outbound/view/view.html",controller:"VoiceRouteOutboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.routes.outbound.view.settings",{url:"/settings",templateUrl:"app/channels/voice/route/outbound/view/view.settings.html"}).state("main.channels.voice.routes.outbound.view.routes",{url:"/routes",templateUrl:"app/channels/voice/route/outbound/view/view.routes.html"}).state("main.channels.voice.routes.outbound.view.route",{url:"/route",templateUrl:"app/channels/voice/route/outbound/view/view.route.html"}).state("main.channels.voice.routes.outbound.view.routes.settings",{url:"/settings",templateUrl:"app/channels/voice/route/outbound/view/view.routeSettings.html"})}]),angular.module("xCallyShuttleApp").factory("Route",["$resource",function(a){return a("/api/voice/extensions/:id",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.routes",{url:"/routes",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice",{url:"/voice",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailListCtrl",["$scope","VoiceMail","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"voice_mails.csv",primaryKey:"uniqueid",columnDefs:[{name:"mailbox"},{name:"fullname"},{name:"email"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/channels/voice/voicemails/view/{{row.entity.uniqueid}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.mailbox, row.entity.uniqueid)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.list",{url:"/list",templateUrl:"app/channels/voice/voicemail/list/list.html",controller:"VoiceVoicemailListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailViewCtrl",["$scope","VoiceMail","VoiceMailMessage","VoiceContext","$http","xAlert","$translate","$stateParams","socket","$sce","Modal","$location","gridOptions",function(a,b,c,d,e,f,g,h,i,j,k,l,m){function n(){var b={exporterCsvFilename:"voice_mail_messages.csv",primaryKey:"id",columnDefs:[{name:"callerid"},{name:"stamp",displayName:"APPLICATION_DATE",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{grid.appScope.moment(row.entity.stamp).format('YYYY-MM-DD HH:mm:ss')}}</div>"},{name:"duration",cellClass:"ui-grid-vcenter",cellTemplate:"<div>{{row.entity.duration*1000 | date:'mm:ss'}}</div>"},{name:"audio",displayName:"",width:225,enableSorting:!1,enableFiltering:!1,buttons:[{directive:'<audio-file-download params="{id:row.entity.id,controller:\'download\'}" resource="grid.appScope.VoiceMailMessage"></audio-file-download>'}]},{name:"action",width:150,buttons:[{directive:'<motion-file-download params="{id:row.entity.id,controller:\'download\'}" resource="grid.appScope.VoiceMailMessage" mimetype="audio/wav" btnclass="btn btn-xs blue-hoki" filename="row.entity.msg_id+\'.wav\'"></motion-file-download>'},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.id, row.entity.id)"}]}]};a.gridOptions=m.gridOptions(c,b,a,{mailbox:a.voicemail.mailbox,context:a.voicemail.context})}a.moment=moment,a.VoiceMailMessage=c,a.getVoicemail=function(){return b.get({id:h.uniqueid}).$promise.then(function(b){delete b.password,delete b.stamp,a.voicemail=b})["catch"](function(a){l.path("/voice/voicemails/list")})},a.updateVoiceVoicemail=function(){return b.update({id:h.uniqueid},a.voicemail).$promise.then(function(){f.show(g.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(g.instant(a.message),"danger")})},a.getContexts=function(){return d.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){f.show(a.message,"danger")})},a.getMessages=function(){return a.voicemail?void n():b.get({id:h.uniqueid}).$promise.then(function(b){delete b.password,delete b.stamp,a.voicemail=b,n()})["catch"](function(a){l.path("/voice/voicemails/view/"+h.uniqueid+"/settings")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.view",{url:"/view/:uniqueid",templateUrl:"app/channels/voice/voicemail/view/view.html",controller:"VoiceVoicemailViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.channels.voice.voicemails.view.settings",{url:"/settings",templateUrl:"app/channels/voice/voicemail/view/view.settings.html"}).state("main.channels.voice.voicemails.view.messages",{url:"/messages",templateUrl:"app/channels/voice/voicemail/view/view.messages.html"})}]),angular.module("xCallyShuttleApp").factory("VoiceMail",["$resource",function(a){return a("/api/voice/voicemails/:id/:controller",{uniqueid:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails",{url:"/voicemails",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("VoiceMailMessage",["$resource",function(a){return a("/api/voice/voicemails/messages/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailWizardCtrl",["$scope","VoiceMail","xAlert","WizardHandler","$location","Setting",function(a,b,c,d,e,f){a.initWizard=function(){a.form={},a.item={context:"from-voicemail"}},a.next=function(){d.wizard().next()},a.previous=function(){d.wizard().previous()},a.exitValidation=function(a){return a},a.getFirstFreeMailbox=function(){f.get({controller:"mailbox"}).$promise.then(function(b){a.item.mailbox=b.value})["catch"](function(a){c.show(a.data.message,"danger")})},a.createItem=function(){return a.item.customer_id=a.item.mailbox,b.save(a.item).$promise.then(function(){e.path("/channels/voice/voicemails/list")})["catch"](function(a){c.show(data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.channels.voice.voicemails.wizard",{url:"/wizard",templateUrl:"app/channels/voice/voicemail/wizard/wizard.html",controller:"VoiceVoicemailWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("Company",["$resource",function(a){return a("/api/contactmanager/companies/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies",{url:"/companies",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("CompanyListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerCompanyListCtrl",["$scope","$http","$translate","xAlert","Modal","$uibModal","$log","Company","gridOptions","$location",function(a,b,c,d,e,f,g,h,i,j){a.initView=function(){var b={exporterCsvFilename:"Companies.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",name:"profile",href:"/contactmanager/companies/view/{{row.entity.id}}/settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var a=f.open({animation:!0,templateUrl:"app/contactmanager/company/list/create.modal.html",controller:"CompanyListCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/companies",a).then(function(a){j.path("/contactmanager/companies/view/"+a.id+"/settings")})["catch"](function(a){d.show(a.data.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.list",{url:"/list",templateUrl:"app/contactmanager/company/list/list.html",controller:"ContactManagerCompanyListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",
+files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ContactManagerCompanyViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getCompany=function(){b.get("/api/contactmanager/companies/"+e.id).success(function(b){a.company=b}).error(function(a){f.path("/contactmanager/companies/list")})},a.updateCompany=function(){var f=angular.copy(a.company);b.put("/api/contactmanager/companies/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.company=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.companies.view",{url:"/view/:id",templateUrl:"app/contactmanager/company/view/view.html",controller:"ContactManagerCompanyViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.contactmanager.companies.view.settings",{url:"/settings",templateUrl:"app/contactmanager/company/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("Contact",["$resource",function(a){return a("/api/contactmanager/contacts/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts",{url:"/contacts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerListImportModalCtrl",["$scope","$uibModalInstance","indexes","csv","xAlert","socket","$http",function(a,b,c,d,e,f,g){function h(b){if(b>=a.csvLength||a.stopped)return void(a.importing=!1);var c={Phones:[],Emails:[],customFields:{}};_.forOwn(a.item,function(e,f){switch(f){case"Phones":a.item.Phones.forEach(function(a){""!==d[b][a]&&c.Phones.push({phone:d[b][a]})});break;case"Emails":a.item.Emails.forEach(function(a){""!==d[b][a]&&c.Emails.push({email:d[b][a]})});break;case"customFields":_.forOwn(a.item.customFields,function(a,e){c.customFields[e]=d[b][a]});break;case"tags":c.tags=[],a.item.tags.forEach(function(a){""!==d[b][a]&&c.tags.push(d[b][a])});break;default:c[f]=d[b][e]}}),c.tags=c.tags?c.tags.join(","):void 0,_.forOwn(c.customFields,function(a,b){""===a&&delete c.customFields[b]}),c.ServiceId=a.item.ServiceId,c.CompanyId=a.item.CompanyId||null,g.post("/api/contactmanager/contacts",c).success(function(c){a["import"].success+=i,a["import"].succeeded+=1,h(b+1)}).error(function(c){a["import"].fail+=i,a["import"].failed+=1,h(b+1)})}a.indexes=c,a.importing=!1,a.submitted=!1,a.stopped=!1,a["import"]={success:0,fail:0,succeeded:0,failed:0},a.csvLength=d.length;var i=100/a.csvLength;a.forms={dashboard:void 0},a.item={},a.start=function(){a.importing=!0,a.submitted=!0,h(0)},a.getServices=function(){g.get("/api/contactmanager/services/").success(function(b){a.services=b.rows,a.item.ServiceId=1,a.getCustomFields()}).error(function(a){e.show($translate.instant(a.message)+"!","danger")})},a.getCustomFields=function(){g.get("/api/contactmanager/services/"+a.item.ServiceId+"/customfields").success(function(b){a.customFields=b,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),f.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),f.socket.on("custom_field:save",function(b){if(b.ServiceId===a.item.ServiceId){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}})}).error(function(a){console.error(a),e.show(a.message,"danger")})},a.close=function(){b.close()},a.stop=function(){a.stopped=!0}}]),angular.module("xCallyShuttleApp").controller("ContactManagerContactListCtrl",["$scope","$translate","Modal","FileUploader","Papa","$uibModal","$log","Contact","gridOptions",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"Contacts.csv",columnDefs:[{name:"fullname"},{name:"Service.name",displayName:"APPLICATION_SERVICE",field:"Service.name",enableSorting:!1,enableFiltering:!1},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",name:"profile",onClick:"grid.appScope.openContactTab(row.entity)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},d.FileSelect.prototype.isEmptyAfterSelection=function(){return!0};var j=a.uploader=new d({queueLimit:1,clearInputAfterAddedToQueue:!0});j.onAfterAddingFile=function(b){console.log("fileadded"),e.parse(b._file,{header:!0,complete:function(b){a.uploader.clearQueue(),a["import"](b.data)},error:function(a){console.log(a)}})},a["import"]=function(b){var c=f.open({animation:!0,size:"lg",backdrop:"static",keyboard:!1,templateUrl:"app/contactmanager/contact/list/import.modal.html",controller:"ContactManagerListImportModalCtrl",resolve:{indexes:function(){return _.keys(b[0])},csv:function(){return b}}});c.result.then(function(b){a.initView()},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.contacts.list",{url:"/list",templateUrl:"app/contactmanager/contact/list/list.html",controller:"ContactManagerContactListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager",{url:"/contactmanager",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceListCtrl",["$scope","$http","$translate","Modal","xAlert","$uibModal","$log","Service","gridOptions",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"Services.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",name:"profile",href:"/contactmanager/services/view/{{row.entity.id}}/settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var a=f.open({animation:!0,templateUrl:"app/contactmanager/service/list/create.modal.html",controller:"ContactManagerServiceListCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/services/",a).then(function(a){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.services.list",{url:"/list",templateUrl:"app/contactmanager/service/list/list.html",controller:"ContactManagerServiceListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Service",["$resource",function(a){return a("/api/contactmanager/services/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.services",{url:"/services",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceCustomFieldViewCreateModalCtrl",["$scope","$uibModalInstance","$translate",function(a,b,c){a.$translate=c,a.forms={dashboard:void 0},a.item={},a.choices=[{value:""}],a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)},a.types=[{name:"APPLICATION_TEXT",value:"text"},{name:"APPLICATION_SELECT",value:"select"}],a.ok=function(){"select"===a.item.type&&(a.item.values=angular.toJson(a.choices)),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("ContactManagerServiceViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","$uibModal","$log","Modal",function(a,b,c,d,e,f,g,h,i,j){var k=function(){return{select:function(c){b.post("/api/contactmanager/services/"+a.service.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/contactmanager/services/"+a.service.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getService=function(){b.get("/api/contactmanager/services/"+e.id).success(function(b){a.service=b}).error(function(a){console.error(a),g.path("/contactmanager/services/list")})},a.updateService=function(){var f=angular.copy(a.service);b.put("/api/contactmanager/services/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.service=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/contactmanager/user_has_services",method:"GET",params:{service:a.service.id}}).success(function(b){ComponentsDropdowns.bindQueue(a.teams,_.map(b,"UserId"),k)})}).error(function(a){console.error(a)})},a.getServiceCustomFields=function(){b.get("/api/contactmanager/services/"+e.id+"/customfields").success(function(b){a.customFields=b,f.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),f.socket.on("custom_field:save",function(b){if(b.ServiceId===e.id){var c=_.find(a.customFields,{id:b.id});c||a.customFields.push(b)}})}).error(function(a){console.error(a),g.path("/contactmanager/services/view/"+e.id+"/settings")})},a.create=function(){var a=h.open({animation:!0,templateUrl:"app/contactmanager/service/view/create.modal.html",controller:"ContactManagerServiceCustomFieldViewCreateModalCtrl"});a.result.then(function(a){b.post("/api/contactmanager/services/"+e.id+"/customfields/",a).then(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})},function(){i.info("Modal dismissed at: "+new Date)})},a.deleteItem=j.confirm["delete"](function(a){b["delete"]("/api/contactmanager/services/customfields/"+a).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(a.message,"danger")})}),a.getCustomField=function(){b.get("/api/contactmanager/services/customfields/"+e.cfId).success(function(b){a.customField=b,"select"===a.customField.type&&(a.choices=JSON.parse(a.customField.values))}).error(function(a){console.error(a),g.path("/contactmanager/customfields/list")})},a.updateCustomField=function(){"select"===a.customField.type&&(a.customField.values=angular.toJson(a.choices));var f=angular.copy(a.customField);b.put("/api/contactmanager/services/customfields/"+e.cfId,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.customField=f})},a.addField=function(){a.choices.push({})},a.removeField=function(b){a.choices.splice(b,1)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.services.view",{url:"/view/:id",templateUrl:"app/contactmanager/service/view/view.html",controller:"ContactManagerServiceViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.contactmanager.services.view.settings",{url:"/settings",templateUrl:"app/contactmanager/service/view/view.settings.html"}).state("main.contactmanager.services.view.agents",{url:"/agents",templateUrl:"app/contactmanager/service/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}}).state("main.contactmanager.services.view.customfields",{url:"/customfields",templateUrl:"app/contactmanager/service/view/view.customFields.html"}).state("main.contactmanager.services.view.customfields.settings",{url:"/settings/:cfId",templateUrl:"app/contactmanager/service/view/view.customFieldSettings.html",controller:"ContactManagerServiceViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("DashboardCtrl",["$scope","$translate",function(a,b){a.voice=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.voice"}],a.mail=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.mail"}]}]),angular.module("xCallyShuttleApp").factory("Dashboard",["$resource",function(a){return a("/api/dashboards/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.dashboard",{"abstract":!0,url:"/dashboard",templateUrl:"app/dashboard/dashboard.html",controller:"DashboardCtrl"}).state("main.dashboard.voice",{url:"/voice",controller:"DashboardVoiceCtrl",templateUrl:"app/dashboard/voice/voice.html"}).state("main.dashboard.mail",{url:"/mail",controller:"DashboardMailCtrl",templateUrl:"app/dashboard/mail/mail.html"})}]),angular.module("xCallyShuttleApp").controller("DashboardMailCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").controller("DashboardVoiceCtrl",["$scope","$http","xAlert","socket",function(a,b,c,d){function e(b,c){var d;return!b.queuecallerjoinAt||b.queuecallerleaveAt||b.queuecallercompleteAt||b.queuecallerabandonAt?b.queuecallerjoinAt&&b.queuecallerleaveAt&&!b.queuecallercompleteAt&&!b.queuecallerabandonAt?d="activeCalls":b.queuecallerjoinAt&&b.queuecallerleaveAt&&b.queuecallercompleteAt&&!b.queuecallerabandonAt?d="completedCalls":b.queuecallerjoinAt&&b.queuecallerleaveAt&&!b.queuecallercompleteAt&&b.queuecallerabandonAt&&(d="abandonedCalls"):d="waitCalls",c?d:void(d&&a.queueStats[d]++)}a.queueStats={abandonedCalls:0,completedCalls:0,waitCalls:0,activeCalls:0},a.getQueueStats=function(){b.get("/api/report/queues").then(function(b){a.queueReports=b.data,a.queueReports.forEach(function(a){e(a,!1)}),d.socket.on("report_queue:save",function(b){console.log("report save or update");var c=_.find(a.queueReports,{id:b.id}),d=a.queueReports.indexOf(c);if(c){console.log("found item, is an update");var f=e(c,!0);console.log("old item value is "+f+", decrementing..."),f&&a.queueStats[f]--,_.merge(a.queueReports[d],b)}else console.log("item not found in collection, is a create"),a.queueReports.unshift(b);console.log("checking new item type and increasing..."),e(b,!1)})})["catch"](function(a){c.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk",{url:"/desk",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("DeskAccount",["$resource",function(a){return a("/api/desk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("DeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.map(a.displayedDeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedDeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("desk_account"),b.url="/api/desk/accounts",h.getPage(b).then(function(d){a.displayedDeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedDeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedDeskAccounts.length)}),f.socket.on("desk_account:save",function(){a.initList(b)}),f.socket.on("desk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/desk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/desk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/desk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.list",{url:"/list",templateUrl:"app/desk/list/list.html",controller:"DeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("DeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","desk_com",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){g.unsyncUpdates("desk_configuration"),g.unsyncUpdates("desk_field")}),a.initView=function(){b.get("/api/desk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/desk/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/desk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("desk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.deleteConfiguration=i.confirm["delete"](function(a){b["delete"]("api/desk/configurations/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/desk/configurations",a.configuration).success(function(a){e.path("desk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){h.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/desk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=j.fields.concat(b)}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/desk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,g.socket.on("desk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){h.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/desk/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/desk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/desk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/desk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/desk/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(b.customField=_.result(c,"custom",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.data.choices?c.data.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.view",{url:"/view/:id",templateUrl:"app/desk/view/view.html",controller:"DeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.desk.view.account",{url:"/account",templateUrl:"app/desk/view/view.account.html"}).state("main.desk.view.configurations",{url:"/configurations",templateUrl:"app/desk/view/view.configurations.html"}).state("main.desk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/desk/view/view.configurationSettings.html",controller:"DeskViewCtrl"}).state("main.desk.view.configuration",{url:"/configuration",templateUrl:"app/desk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("DeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/desk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/desk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.desk.wizard",{url:"/wizard",templateUrl:"app/desk/wizard/wizard.html",controller:"DeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk",{url:"/freshdesk",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("FreshdeskAccount",["$resource",function(a){return a("/api/freshdesk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("FreshdeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.map(a.displayedFreshdeskAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedFreshdeskAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("freshdesk_account"),b.url="/api/freshdesk/accounts",h.getPage(b).then(function(d){a.displayedFreshdeskAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedFreshdeskAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedFreshdeskAccounts.length)}),f.socket.on("freshdesk_account:save",function(){a.initList(b)}),f.socket.on("freshdesk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/freshdesk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/freshdesk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/freshdesk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.list",{url:"/list",templateUrl:"app/freshdesk/list/list.html",controller:"FreshdeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FreshdeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("freshdesk_configuration"),h.unsyncUpdates("freshdesk_field")}),a.initView=function(){b.get("/api/freshdesk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/freshdesk/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/freshdesk/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("freshdesk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/freshdesk/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/freshdesk/configurations",a.configuration).success(function(a){e.path("freshdesk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/freshdesk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=[],b=f("freshdesk")(b),_.forEach(b,function(b){a.accountFields.push(b.ticket_field)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/freshdesk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("freshdesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/freshdesk/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/freshdesk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/freshdesk/fields/"+a.id,a).success(function(){}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.idField){var c=_.find(a.accountFields,"name",b.idField);c&&(b.customField=!_.result(c,"default",!0))}a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);return c?c.choices.length>0?c.choices:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.view",{url:"/view/:id",templateUrl:"app/freshdesk/view/view.html",controller:"FreshdeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.freshdesk.view.account",{url:"/account",templateUrl:"app/freshdesk/view/view.account.html"}).state("main.freshdesk.view.configurations",{url:"/configurations",templateUrl:"app/freshdesk/view/view.configurations.html"}).state("main.freshdesk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/freshdesk/view/view.configurationSettings.html",controller:"FreshdeskViewCtrl"}).state("main.freshdesk.view.configuration",{url:"/configuration",templateUrl:"app/freshdesk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("FreshdeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/freshdesk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/freshdesk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger");
+})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.freshdesk.wizard",{url:"/wizard",templateUrl:"app/freshdesk/wizard/wizard.html",controller:"FreshdeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations",{url:"/integrations",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Integration",["$resource",function(a){return a("/api/integrations/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").controller("IntegrationListCtrl",["$scope","Modal","socket","FileUploader","Integration","xAlert",function(a,b,c,d,e,f){a.integrationsByPage=10;var g=a.uploader=new d({url:"api/integrations",autoUpload:!0,removeAfterUpload:!0});g.filters.push({name:"zipFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|zip|".indexOf(b)}}),g.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(b.name,"success")},g.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),b.errors.forEach(function(a){f.show(a.message,"danger")})},a.deleteItem=b.confirm["delete"](function(a){e["delete"]({id:a},function(){f.show("Integration Removed","success")},function(a){f.show(a.data.errors,"danger")})}),a.initList=function(){a.integrations=e.query({},function(a){c.syncUpdates("integration",a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations.list",{url:"/list",templateUrl:"app/integration/list/list.html",controller:"IntegrationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty",{url:"/jscripty",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("JscriptyProject",["$resource",function(a){return a("/api/jscripty/projects/:id/:controller/:action/:action2",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectListCtrl",["$scope","$uibModal","JscriptyProject","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:300,buttons:[{"class":"blue-hoki",href:"/jscripty/projects/view/{{row.entity.id}}",name:"settings"},{"class":"green",name:"start",onClick:"grid.appScope.openJscriptyTab(row.entity)"},{"class":"purple",href:"/jscripty/projects/report/{{row.entity.id}}/sessions",name:"report"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/jscripty/project/list/list.create.modal.html",controller:"JscriptyProjectListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectListCreateCtrl",["$scope","$translate","$uibModalInstance","JscriptyProject","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){console.log(a),e.show(b.instant(a.data.translatedMessage),"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.list",{url:"/list",templateUrl:"app/jscripty/project/list/list.html",controller:"JscriptyProjectListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectReportCtrl",["$scope","$http","$state","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope","gridOptions","JscriptyProject","$location",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.projectStats={started:0,incomplete:0,completed:0},a.projectId=d.id,a.initView=function(){return l.get({id:d.id,controller:"sessions"}).$promise.then(function(b){a.projectId=d.id,console.log(a.projectId);var c=_.groupBy(b.rows,"status");a.projectStats.started=c.started?c.started.length:0,a.projectStats.completed=c.completed?c.completed.length:0,a.projectStats.incomplete=c.incomplete?c.incomplete.length:0})["catch"](function(a){h.show(a.message,"danger")})},a.getProjectSessions=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"projectId",displayName:"APPLICATION_PROJECTID"},{name:"session_id",displayName:"APPLICATION_SESSIONID"},{name:"createdAt",displayName:"APPLICATION_STARTEDAT"},{name:"completedAt",displayName:"APPLICATION_COMPLETEDAT"},{name:"status",displayName:"APPLICATION_STATUS"},{name:"last_question_id",displayName:"APPLICATION_LASTQUESTIONID"},{name:"action",width:100,buttons:[{"class":"blue-hoki",href:"/jscripty/projects/report/{{row.entity.projectId}}/session/{{row.entity.session_id}}",name:"Detail"}]}]};a.gridOptions=k.gridOptions(l,b,a,{id:d.id,controller:"sessions"})},a.getSessionDetails=function(){console.log(d.sessionId),b.get("/api/jscripty/projects/"+d.id+"/sessions/"+d.sessionId).success(function(b){a.sessionQuestions=b[0],console.log("session",a.sessionQuestions)})["catch"](function(a){h.show(a.message,"danger")})},a.getQuestionSummary=function(){var b={exporterCsvFilename:"jscriptyProjects.csv",columnDefs:[{name:"question_id",width:150,displayName:"APPLICATION_QUESTIONID"},{name:"question_type",width:150,displayName:"APPLICATION_QUESTIONTYPE"},{name:"question_label",width:200,displayName:"APPLICATION_QUESTIONLABEL"},{name:"question_text",displayName:"APPLICATION_QUESTION"},{name:"count",width:100,displayName:"APPLICATION_COUNT"}]};a.gridOptions=k.gridOptions(l,b,a,{id:d.id,controller:"questions",action:"summary"})},a.getQuestionDetail=function(){b.get("/api/jscripty/projects/"+d.id+"/questions/detail").success(function(b){var c=_.groupBy(b,"question_id");_.forEach(c,function(a,b){c[b]=_.groupBy(a,"question_label"),_.forEach(c[b],function(a,d){c[b][d]=_.groupBy(a,"question_text")})}),a.questionDetail=c,console.log("detail",a.questionDetail)})["catch"](function(a){h.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.report",{url:"/report/:id",templateUrl:"app/jscripty/project/report/report.html",controller:"JscriptyProjectReportCtrl"}).state("main.jscripty.projects.report.sessions",{url:"/sessions",templateUrl:"app/jscripty/project/report/report.sessions.html"}).state("main.jscripty.projects.report.summary",{url:"/summary",templateUrl:"app/jscripty/project/report/report.summary.html"}).state("main.jscripty.projects.report.detail",{url:"/detail",templateUrl:"app/jscripty/project/report/report.detail.html"}).state("main.jscripty.projects.report.sessionDetail",{url:"/session/:sessionId",controller:"JscriptyProjectReportCtrl",templateUrl:"app/jscripty/project/report/report.session.detail.html"})}]),angular.module("xCallyShuttleApp").controller("JscriptyProjectViewCtrl",["$scope","$http","$state","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope",function(a,b,c,d,e,f,g,h,i,j){a.jscriptyProject={},a.getProject=function(){b.get("/api/jscripty/projects/"+d.id).success(function(b){a.jscriptyProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!=a&&-1!=a.indexOf("Script error."));else{var d=new Image;d.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(e){}},b.token=f.getToken();var a=new EditorUi(new Editor);a.openString(b.draft,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}}),e.syncUpdates("jscripty_project",[b],function(a,c,d){c.id===b.id})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.jscripty.projects.view",{url:"/view/:id",templateUrl:"app/jscripty/project/view/view.html",controller:"JscriptyProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/jscripty/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/jscripty/js/Editor.js","assets/plugins/jscripty/js/Graph.js","assets/plugins/jscripty/js/EditorUi.js","assets/plugins/jscripty/js/Actions.js","assets/plugins/jscripty/js/Menus.js","assets/plugins/jscripty/js/Sidebar.js","assets/plugins/jscripty/js/Toolbar.js","assets/plugins/jscripty/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("LoginCtrl",["$scope","Auth","$location","$window","$rootScope",function(a,b,c,d,e){a.year=moment().year(),a.userLogin={},a.userSignUp={},a.loginSubmitted=!1,a.signupSubmitted=!1,a.errorLogin=!1,a.errorSignup=!1,a.errorLog="",a.flagLogin1=!1,a.toogleLogin=function(){a.flagLogin1=!a.flagLogin1},e.bodyLayout="login",a.$on("$viewContentLoaded",function(){Metronic.init(),Layout.init()}),a.login=function(d){a.loginSubmitted=!0,d.$valid?b.login({name:a.userLogin.name,password:a.userLogin.password,remember:a.userLogin.remember}).then(function(){c.path("/dashboard/voice")})["catch"](function(b){a.errorLog=b.message,a.errorLogin=!0}):a.errorLogin=!0},a.signup=function(d){a.signupSubmitted=!0,d.$valid?b.createUser({email:a.userSignUp.email,fullname:a.userSignUp.fullname,name:a.userSignUp.name,password:a.userSignUp.password,role:a.userSignUp.role,online:!0}).then(function(){c.path("/")})["catch"](function(b){a.errorLog=b.message,a.errorSignup=!0}):a.errorSignup=!0},a.loginOauth=function(a){d.location.href="/auth/"+a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("login",{url:"/login",templateUrl:"app/login/login.html",controller:"LoginCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/login.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Action",["$resource",function(a){return a("/api/actions/:name/:controller",{name:"@name"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").directive("actionBuilderTemplate",["$compile","xAlert","$http","$timeout","Template","$translate",function(a,b,c,d,e,f){return{restrict:"E",scope:{element:"=",form:"="},templateUrl:"app/main/template/actionBuilder/template.actionBuilderTemplate.html",compile:function(c,g){var h,i;return h=c.contents().remove(),function(c,g,j){function k(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}c.randomName=k(),d(function(){return e.get().$promise.then(function(a){c.templates=a.rows})["catch"](function(a){b.show(f.instant(a.message),"danger")})}),i||(i=a(h)),g.append(i(c,function(a){return a}))}}}}]).directive("actionBuilderIntegration",["$compile","xAlert","$http","$timeout","Integration","$translate","ZendeskAccount","DeskAccount","SalesforceAccount","FreshdeskAccount","SugarcrmAccount",function(a,b,c,d,e,f,g,h,i,j,k){return{restrict:"E",scope:{element:"=",form:"="},templateUrl:"app/main/template/actionBuilder/template.actionBuilderIntegration.html",compile:function(c,l){var m,n;return m=c.contents().remove(),function(c,l,o){function p(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}c.randomName=p(),d(function(){return e.get({active:1}).$promise.then(function(a){c.integrations=a.rows,c.element.data1&&q()})["catch"](function(a){b.show(f.instant(a.message),"danger")})});var q=function(){var a;switch(c.element.data1){case"zendesk":a=g;break;case"desk":a=h;break;case"salesforce":a=i;break;case"freshdesk":a=j;break;case"sugarcrm":a=k}return a.get().$promise.then(function(a){c.accounts=a.rows,c.element.data2&&r()})["catch"](function(a){b.show(f.instant(a.message),"danger")})},r=function(){c.configurations=_.find(c.accounts,{id:Number(c.element.data2)}).Configurations};c.changeIntegration=function(){c.element.data2="",q()},c.changeAccount=function(){c.element.data3="",r()},n||(n=a(m)),l.append(n(c,function(a){return a}))}}}}]).directive("actionBuilderStatus",["$compile","xAlert","$http","$timeout","$translate",function(a,b,c,d,e){return{restrict:"E",scope:{element:"=",form:"="},templateUrl:"app/main/template/actionBuilder/template.actionBuilderStatus.html",compile:function(b,c){var d,e;return d=b.contents().remove(),function(b,c,f){function g(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}b.randomName=g(),b.states=[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]),angular.module("xCallyShuttleApp").factory("Ami",["$resource",function(a){return a("/api/ami/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("ChooseContactModalCtrl",["$scope","$uibModalInstance","eventId","$http","xAlert","$translate",function(a,b,c,d,e,f){a.open=function(a){b.close(a)},a.getContacts=function(){d.get("/api/contactmanager/contacts/"+c+"/checkevent").success(function(b){a.contacts=b}).error(function(a){e.show(f.instant(a.message)+"!","danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("CloseEditedTabModalCtrl",["$scope","$uibModalInstance",function(a,b){a.close=function(){b.close()},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").factory("gridOptions",["Modal","xAlert","$translate","$interval","$q","usSpinnerService",function(a,b,c,d,e,f){return{gridOptions:function(d,g,h,i,j){h.id=[];var k={offset:0,limit:10};g.draggable&&(g.rowTemplate='<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',g.useExternalPagination=!1,g.enablePaginationControls=!1,g.showGridFooter=!1);var l=function(a){var b=a?30*a+120:177;angular.element(document.getElementsByClassName("ui-grid")[0]).css("height",b+"px")},m=function(){return h.gridOptions.enablePaginationControls||(delete k.offset,delete k.limit),f.spin("spinner-grid"),d.get(i?_.merge(k,i):k).$promise.then(function(a){h.gridOptions.totalItems=a.count,h.gridOptions.data=a.rows,l(a.rows.length)})["catch"](function(a){console.error(a)})["finally"](function(){f.stop("spinner-grid")})};return h.deleteItem=a.confirm["delete"](function(a){var e=i?angular.copy(i):{};return _.merge(e,{id:a}),d.remove(e).$promise.then(function(){m(),b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),h.gridApi.selection.clearSelectedRows(),h.id=[]})["catch"](function(a){b.show(a.message?a.message:a.data.message,"danger")})}),h.deleteItems=a.confirm["delete"](function(){var a=i?angular.copy(i):{};return _.merge(a,{ids:h.id}),d["delete"](a).$promise.then(function(){m(),b.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),h.gridApi.selection.clearSelectedRows(),h.id=[]})["catch"](function(a){b.show(a.message?a.message:a.data.message,"danger")})}),g.columnDefs.forEach(function(a){a.hasOwnProperty("displayName")||(a.displayName="APPLICATION_"+a.name.toUpperCase()),a.headerCellFilter="translate",a.hasOwnProperty("buttons")&&(a.displayName="",a.cellClass="ui-grid-vcenter",a.enableSorting=!1,a.enableFiltering=!1,a.enableColumnMenu=!1,a.cellTemplate="<div>",a.buttons.forEach(function(b){b.directive?a.cellTemplate+=b.directive:(a.cellTemplate+="<a",a.cellTemplate+=b.hide?' data-ng-hide="true" ':" ",a.cellTemplate+=b["class"]?' class="btn btn-xs '+b["class"]+'" ':" ",a.cellTemplate+=b.href?' data-ng-href="'+b.href+'" ':" ",a.cellTemplate+=b.onClick?' data-ng-click="'+b.onClick+'" ':" ",a.cellTemplate+=">",a.cellTemplate+="{{'"+(b.displayName||"APPLICATION_"+b.name.toUpperCase())+"' | translate}}",a.cellTemplate+="</a> ")}),a.cellTemplate+="<div>",delete a.buttons)}),_.merge({enableGridMenu:!0,headerCellFilter:"translate",enableHorizontalScrollbar:0,enableVerticalScrollbar:0,enableRowSelection:!0,enableSelectAll:!0,enableFiltering:!0,showGridFooter:!0,paginationPageSizes:[10,25,50,75],paginationPageSize:10,useExternalPagination:!0,useExternalSorting:!0,useExternalFiltering:!0,multiSelect:!0,getPage:m,gridMenuTitleFilter:function(a){var b=e.defer();return b.resolve(c.instant(a)),b.promise},onRegisterApi:function(a){h.gridApi=a,h.gridApi.selection.on.rowSelectionChanged(h,function(a){a.isSelected?h.id.push(h.gridApi.grid.options.primaryKey?a.entity[h.gridApi.grid.options.primaryKey]:a.entity.id):_.pull(h.id,h.gridApi.grid.options.primaryKey?a.entity[h.gridApi.grid.options.primaryKey]:a.entity.id)}),h.gridApi.selection.on.rowSelectionChangedBatch(h,function(a){a[0].isSelected?h.id=_.union(h.id,_.map(a,h.gridApi.grid.options.primaryKey?"entity."+h.gridApi.grid.options.primaryKey:"entity.id")):_.map(a,h.gridApi.grid.options.primaryKey?"entity."+h.gridApi.grid.options.primaryKey:"entity.id").forEach(function(a){_.pull(h.id,a)})}),h.gridApi.core.on.sortChanged(h,function(a,b){0===b.length?k.order=null:k.order=b[0].name+" "+b[0].sort.direction.toUpperCase(),m()}),h.gridApi.pagination.on.paginationChanged(h,function(a,b){k.offset=(a-1)*b,k.limit=b,m()}),h.gridApi.core.on.filterChanged(h,function(){var a=this.grid;a.columns.forEach(function(a){a.filters[0].term?k[a.name]=a.filters[0].term:delete k[a.name]}),m()}),h.gridApi.draggableRows.on.rowDropped(h,function(a){a.fromIndex!==a.toIndex&&d.update(i,h.gridOptions.data).$promise.then(function(){b.show(c.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){b.show(a.message,"danger")})}),j||m()}},g)}}}]),angular.module("xCallyShuttleApp").controller("MainCtrl",["$scope","$http","$rootScope","$cookies","$translate","$interval","socket","Auth","xAlert","$uibModal","$log","$state",function(a,b,c,d,e,f,g,h,i,j,k,l){a.awesomeThings=[],a.isLoggedIn=h.isLoggedIn,a.isAdmin=h.isAdmin,a.getCurrentUser=h.getCurrentUser,a.workspaces=[],a.mainTab={active:!0},a.closeTab=function(b){if(a.workspaces[b].edited){var c=j.open({animation:!0,templateUrl:"app/main/closeEditedTab.modal.html",controller:"CloseEditedTabModalCtrl"});c.result.then(function(c){a.workspaces.splice(b,1)},function(){k.info("Modal dismissed at: "+new Date)})}else a.workspaces.splice(b,1)},a.createContact=function(c,d){console.log("item tags",d.tags),d.tags=d.tags?d.tags.join(","):void 0,console.log("item tags after",d.tags),_.forOwn(d.customFields,function(a,b){""===a&&delete d.customFields[b]}),b.post("/api/contactmanager/contacts",d).success(function(b){a.workspaces.splice(c,1),a.openContactTab({fullname:b.fullname,id:b.id}),i.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(a.message,"danger")})};var m=function(b){var c=j.open({animation:!0,templateUrl:"app/main/chooseContact.modal.html",controller:"ChooseContactModalCtrl",resolve:{eventId:function(){return b.id}}});c.result.then(function(c){c?a.openContactTab(c):a.newContact(b)},function(){k.info("Modal dismissed at: "+new Date)})};a.updateContact=function(c,d){var f=angular.copy(d);f.tags=f.tags?f.tags.join(","):void 0,f.CompanyId||(f.CompanyId=null),b.put("/api/contactmanager/contacts/"+f.id,f).success(function(){a.workspaces[c].edited=!1,i.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(e.instant(a.message)+"!","danger")})},g.socket.on("report_integration:contactmanager",function(a){console.log("choosecontact"),m(a)}),a.openContactTab=function(b){var c=_.find(a.workspaces,{contactID:b.id});c?c.active=!0:a.workspaces.push({name:b.fullname,type:"contact",contactID:b.id,active:!0})},a.openJscriptyTab=function(b){a.workspaces.push({name:b.name,type:"jscripty",active:!0,data:b})},a.newContact=function(b){a.workspaces.push({name:"New Contact",type:"newContact",active:!0,data:b||null})},a.$on("$viewContentLoaded",function(){Metronic.init()}),c.language=e.use(),a.changeLanguage=function(a){e.use(a).then(function(a){c.language=a,"main.jscripty.projects.view"!==l.current.name&&"main.square.projects.view"!==l.current.name||l.go(l.current,{},{reload:!0})})["catch"](function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").directive("ngSpinnerBar",["$rootScope",function(a){return{link:function(b,c){c.addClass("hide"),a.$on("$stateChangeStart",function(){"spinner-page"===c[0].id&&c.removeClass("hide")}),a.$on("$stateChangeSuccess",function(){"spinner-page"===c[0].id&&(c.addClass("hide"),$("body").removeClass("page-on-load"),Layout.setSidebarMenuActiveLink("match"),setTimeout(function(){Metronic.scrollTop()},1e3))}),a.$on("$spinnerStart",function(){"spinner-request"===c[0].id&&c.removeClass("hide")}),a.$on("$spinnerStop",function(){"spinner-request"===c[0].id&&c.addClass("hide")}),a.$on("$stateNotFound",function(){"spinner-page"===c[0].id&&c.addClass("hide")}),a.$on("$stateChangeError",function(){"spinner-page"===c[0].id&&c.addClass("hide")})}}}]).directive("a",function(){return{restrict:"E",link:function(a,b,c){(c.ngClick||""===c.href||"#"===c.href)&&b.on("click",function(a){a.preventDefault()})}}}).directive("nxEqual",function(){return{require:"ngModel",link:function(a,b,c,d){return c.nxEqual?(a.$watch(c.nxEqual,function(a){d.$setValidity("nxEqual",a===d.$viewValue)}),void d.$parsers.push(function(b){var e=b===a.$eval(c.nxEqual);return d.$setValidity("nxEqual",e),e?b:void 0})):void console.error("nxEqual expects a model as an argument!")}}}).directive("ngEnter",function(){return function(a,b,c){b.bind("keydown keypress",function(b){13===b.which&&(a.$apply(function(){a.$eval(c.ngEnter)}),b.preventDefault())})}}).directive("dropdownMenuHover",function(){return{link:function(a,b){b.dropdownHover()}}}).directive("uiSelectRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.uiSelectRequired=function(a){return a&&a.length}}}}).directive("rpattern",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a,b){return null==b||""===b||!h||a.test(b)?(d.$setValidity("pattern",!0),b):void d.$setValidity("pattern",!1)}var f,g=c.rpattern,h=!0;g&&(g.match(/^\/(.*)\/$/)?(g=new RegExp(g.substr(1,g.length-2)),f=function(a){return e(g,a)}):f=function(b){var c=a.$eval(g);if(!c||!c.test)throw new Error("Expected "+g+" to be a RegExp but was "+c);return e(c,b)}),d.$formatters.push(f),d.$parsers.push(f),c.$observe("required",function(a){h=a,f(d.$viewValue)})}}}).directive("conditionBuilder",["$compile","xAlert","$http","$timeout",function(a,b,c,d){return{restrict:"E",scope:{element:"=",serviceindex:"=",service:"=",form:"="},templateUrl:"app/main/template/template.conditionBuilder.html",compile:function(c,e){var f,g;return f=c.contents().remove(),function(c,e,h){function i(a){var d=_.find(c.service.services[c.serviceindex].conditions,{value:a});if(d)if(c.elementType=d.type,d.arr)c.values=d.arr;else if(d.resource)return d.resource.get().$promise.then(function(a){c.values=_.map(a.rows,function(a){return{name:a[d.resValue],value:a[d.resValue]}})})["catch"](function(a){b.show($translate.instant(a.message),"danger")})}function j(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")}c._=_,c.randomName=j(),d(function(){c.element.field&&i(c.element.field)}),c.checkCondition=function(a){c.element.value="",c.element.operator="",i(a)},g||(g=a(f)),e.append(g(c,function(a){return a}))}}}}]).directive("newContact",["$compile","xAlert","$http","socket","$translate","$timeout",function(a,b,c,d,e,f){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.newContactTab.html",compile:function(a,g){return function(a,g,h){function i(){a.$watch("item",function(b,c){angular.equals(b,c)||(a.workspace.edited=!0)},!0)}a.forms={general:{}},a.firstLoad=!0,a.item={Phones:[],Emails:[],customFields:{}},a.checkboxes={},a.init=function(){a.workspace.data&&(a.item.fullname=a.workspace.data.calleridname?a.workspace.data.calleridname:a.workspace.data.messageId?a.workspace.data.messageId:a.workspace.data.uniqueid?a.workspace.data.uniqueid:"",a.workspace.data.calleridnum&&a.item.Phones.push({phone:a.workspace.data.calleridnum}),a.workspace.data.from&&a.item.Emails.push({email:a.workspace.data.from})),a.getTags(),a.getCompanies(),a.getServices()},a.getServices=function(){c.get("/api/contactmanager/services/").success(function(b){a.services=b.rows,a.item.ServiceId=1,a.getCustomFields()}).error(function(a){b.show(e.instant(a.message)+"!","danger")})},a.getCustomFields=function(){c.get("/api/contactmanager/services/"+a.item.ServiceId+"/customfields").success(function(b){a.customFields=b,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),d.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),d.socket.on("custom_field:save",function(b){if(b.ServiceId===a.item.ServiceId){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}}),!a.firstLoad||a.workspace.data?(a.workspace.edited=!0,a.firstLoad=!1):(a.firstLoad=!1,i())}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){c.get("/api/tags").success(function(b){a.tags=_.map(b.rows,"name")}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){c.get("/api/contactmanager/companies").success(function(b){a.companies=b.rows,d.syncUpdates("company",a.companies)}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.addField=function(b){a.item[b].push({})},a.removeField=function(b,c){a.item[b].splice(c,1)},f(function(){a.init()})}}}}]).directive("contact",["$compile","xAlert","$http","socket","$timeout",function(a,b,c,d,e){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.contactTab.html",compile:function(a,f){return function(a,f,g){function h(){a.$watch("contact",function(b,c){angular.equals(b,c)||(a.workspace.edited=!0)},!0)}a.moment=moment,a.forms={general:{}},a.detail={tab:"main"},a.log={journal:{show:"Phones",type:"Inbounds",detail:"general"},history:{show:"Phones",type:"HistoryInbounds",detail:"general"}},a.columns={Phones:{general:{header:["APPLICATION_SOURCE","APPLICATION_DESTINATION","APPLICATION_DATE"],indexes:["source","destination","createdAt"]},QueueCalls:{header:["APPLICATION_CALLERID","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["calleridnum","queue","createdAt"]},ReportAgents:{header:["APPLICATION_AGENT","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["membername","queue","agentcalledAt"]},HistoryQueueCalls:{header:["APPLICATION_CALLERID","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["calleridnum","queue","createdAt"]},HistoryReportAgents:{header:["APPLICATION_AGENT","APPLICATION_QUEUE","APPLICATION_DATE"],indexes:["membername","queue","createdAt"]}},Emails:{general:{header:["APPLICATION_FROM","APPLICATION_TO","APPLICATION_DATE"],indexes:["from","to","createdAt"]}}},a.rows={journal:[],history:[]},a.itemsByPage=15,a._=_,a.getRows=function(b){a.rows[b]=[],_.forEach(a.contact[a.log[b].show],function(c){"general"===a.log[b].detail?a.rows[b]=a.rows[b].concat(c[a.log[b].type]):_.forEach(c[a.log[b].type],function(c){a.rows[b]=a.rows[b].concat(c[a.log[b].detail])})})},a.addField=function(b){a.contact[b].push({})},a.removeField=function(b,c){a.contact[b].splice(c,1)},a.getContact=function(){c.get("/api/contactmanager/contacts/"+a.workspace.contactID).success(function(b){b.tags=b.tags?b.tags.split(","):[],a.contact=b,a.getRows("journal"),a.getRows("history"),a.getCustomFields(b.ServiceId),a.contact.customFields={},a.contact.CustomFields.forEach(function(b){console.log("cfmap"),a.contact.customFields[b.id]=b.ContactHasCustomField.value}),h()}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getTags=function(){c.get("/api/tags").success(function(b){a.tags=_.map(b.rows,"name")}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCompanies=function(){c.get("/api/contactmanager/companies").success(function(b){a.companies=b.rows,d.syncUpdates("company",a.companies)}).error(function(a){console.error(a),b.show(a.message,"danger")})},a.getCustomFields=function(e){c.get("/api/contactmanager/services/"+e+"/customfields").success(function(b){a.customFields=b,a.customFields.forEach(function(a){a.values=JSON.parse(a.values)}),d.socket.on("custom_field:remove",function(b){_.remove(a.customFields,function(a){return b.id==a.id})}),d.socket.on("custom_field:save",function(b){if(b.ServiceId===e){var c=_.find(a.customFields,{id:b.id});c||("string"==typeof b.values&&(b.values=JSON.parse(b.values)),a.customFields.push(b))}})}).error(function(a){console.error(a),b.show(a.message,"danger")})},e(function(){a.getTags(),a.getCompanies(),a.getContact()})}}}}]).directive("jscripty",["$compile","xAlert","$http","socket",function(a,b,c,d){return{restrict:"E",scope:{workspace:"=",index:"=",submit:"&onSubmit"},templateUrl:"app/main/template/template.jscriptyTab.html",compile:function(a,d){return function(a,d,e){a.count=0,a.questions=[];var f=0,g=a.workspace.data.id;c.get("/api/jscripty/projects/"+g+"/download").success(function(b){if(b){c.post("/api/jscripty/projects/"+g+"/sessions",{projectId:g,status:"started"}).success(function(a){f=a.session_id,console.log(a)});var d=mxUtils.parseXml(b),e=new mxCodec(d);a.decObj=e.decode(d.documentElement);a.questions[a.count]=a.currentQuestion=_.find(a.decObj.cells,function(a){return a.vertex&&"start"==a.value.nodeName})}else console.log("No project published!"),alert("No project published!"),a.submit({index:a.index})}),a.next=function(b,c){a.currentQuestion.answer&&a.currentQuestion.answer!=c&&(a.questions=_.take(a.questions,a.count+1)),a.currentQuestion.answer=c,a.questions[a.count]=a.currentQuestion;var d=[];_.forEach(b.edges,function(a,c){if(a.source.id==b.id&&a.value){var e=a.value.split(",");e.length>1&&(_.forEach(e,function(c,d){var e=Object.create(a);e.setValue(c),b.edges.push(e)}),d.push(a))}}),_.forEach(d,function(a){_.remove(b.edges,function(b){return b.value==a.value&&b.id==a.id})}),a.currentQuestion=b,a.count++,a.questions[a.count]=b,a.saveQuestions()},a.end=function(){var d="completed";if("end"!=a.questions[a.questions.length-1].value.nodeName){var d="incomplete";a.saveQuestions()}c.put("/api/jscripty/projects/"+g+"/sessions/"+f,{status:d,completedAt:Date(),last_question_id:a.currentQuestion.id}).success(function(c){b.show("Project Ended","success"),a.submit({index:a.index})})},a.back=function(){a.count--,a.currentQuestion=a.questions[a.count]},a.setCurrentQuestion=function(b){a.count=b,a.currentQuestion=a.questions[a.count]},a.saveQuestions=function(){var b=[],d=[];_.forEach(a.questions,function(a,c){a.children&&_.forEach(a.children,function(a,b){d[b]={input_id:a.id,input_type:a.getAttribute("type",""),input_label:a.getAttribute("label",""),input_value:"checkbox"!=a.getAttribute("type","")||a.answer?a.answer:"Not selected"
+}}),b[c]={sessionId:f,projectId:g,question_id:a.id,question_type:a.value.nodeName,question_label:a.getAttribute("label",""),question_text:a.getAttribute("question",""),question_other_label:a.getAttribute("other"),question_other_answer:a.otheranswer,question_answer:a.answer,ReportJscriptyInputs:d},d=[]}),c.post("/api/jscripty/projects/"+g+"/sessions/"+f+"/questions/",b).success(function(a){})}}}}}]).directive("reportBuilder",["$compile",function(a){return{restrict:"E",scope:{group:"=",fields:"=",forms:"=",firstCall:"="},templateUrl:"app/main/template/template.reportBuilderView.html",compile:function(b,c){var d,e;return d=b.contents().remove(),function(b,c,f){b.operators=[{name:"AND"},{name:"OR"}],b.conditions=[{name:"="},{name:"!="},{name:"<"},{name:"<="},{name:">"},{name:">="},{name:"LIKE"}],b.addCondition=function(){b.group.rules.push({condition:"=",field:"",value:""})},b.removeCondition=function(a){b.group.rules.splice(a,1)},b.addGroup=function(){b.group.rules.push({group:{operator:"AND",rules:[{condition:"=",field:"",value:""}]}})},b.randomName=function(a,b){var c=[];for(a=a||5,b=b||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";--a;)c.push(b.charAt(Math.floor(Math.random()*b.length)));return c.join("")},b.removeGroup=function(){b.$parent.group&&b.$parent.group.rules.splice(b.$parent.$index,1)},e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]).directive("dynamicName",["$compile",function(a){return{restrict:"A",terminal:!0,priority:1e3,link:function(b,c,d){c.attr("name",b.$eval(d.dynamicName)),c.removeAttr("dynamic-name"),a(c)(b)}}}]).directive("onReadFile",["$parse",function(a){return{restrict:"A",scope:!1,link:function(b,c,d){var e=a(d.onReadFile);c.on("change",function(a){var c=new FileReader;c.onload=function(a){b.$apply(function(){e(b,{$fileContent:a.target.result})})},c.readAsText((a.srcElement||a.target).files[0])})}}}]).directive("motionFileDownload",["xAlert","$http","$translate","$timeout","$location","FileSaver","$compile",function(a,b,c,d,e,f,g){return{restrict:"E",template:'<a uib-tooltip=\'{{tooltiptext}}\' class="{{btnclass || \'btn default btn-xs blue-hoki\'}}" href="" data-ng-click="download()" ng-bind-html="btncontent || (\'APPLICATION_DOWNLOAD\' | translate)"></a>',scope:{mimetype:"=",filename:"=",resource:"=",params:"=",btnclass:"@",btncontent:"@",tooltiptext:"@"},link:function(b,d,e){var g=d.children()[0];b.$on("download-start",function(){$(g).attr("disabled","disabled")}),b.$on("downloaded",function(a,c){var d=base64ToBlob(c,b.mimetype);f.saveAs(d,b.filename),$(g).attr("disabled",!1)}),b.download=function(){return b.$emit("download-start"),b.resource.get(b.params).$promise.then(function(a){b.$emit("downloaded",a.downloadString)})["catch"](function(d){a.show(c.instant(d.translatedMessage||d.data.translatedMessage||d.message||d.data.message),"danger"),b.download=function(){}})}}}}]).directive("audioFileDownload",["xAlert","$http","$translate","$sce",function(a,b,c,d){return{restrict:"E",template:'<button type="button" class="btn default btn-xs blue-hoki" data-ng-click="download()"><i class="icon-control-play"></i> {{ \'APPLICATION_PREVIEW\' | translate}}</button>',scope:{resource:"=",params:"="},link:function(b,e,f){var g=e.children()[0];b.$on("download-start",function(a,b){$(g).attr("disabled","disabled").html('<i class="icon-refresh"></i> Loading...')}),b.$on("downloaded",function(a,b){var c=new Audio(d.trustAsResourceUrl("data:audio/ogg;base64,"+b));c.controls=!0,$(g).remove(),e.append(c),c.play()}),b.$on("error",function(a,b){$(g).removeClass("blue-stripe").addClass("red-stripe").html('<i class="icon-ban"></i> Error!')}),b.download=function(){return b.$emit("download-start"),b.resource.get(b.params).$promise.then(function(a){b.$emit("downloaded",a.downloadString)})["catch"](function(b){a.show(c.instant(b.translatedMessage||b.data.translatedMessage||b.message||b.data.message),"danger")})}}}}]).directive("uiRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.required=function(a,b){return!(b&&0===b.length&&"true"===c.uiRequired)},c.$observe("uiRequired",function(){d.$setValidity("required",!("true"===c.uiRequired&&d.$viewValue&&0===d.$viewValue.length))})}}}),angular.module("xCallyShuttleApp").filter("propsFilter",function(){return function(a,b){var c=[];return angular.isArray(a)?a.forEach(function(a){for(var d=!1,e=Object.keys(b),f=0;f<e.length;f++){var g=e[f],h=b[g].toLowerCase();if(-1!==a[g].toString().toLowerCase().indexOf(h)){d=!0;break}}d&&c.push(a)}):c=a,c}}).filter("capitalize",function(){return function(a){return a?a.replace(/([^\W_]+[^\s-]*) */g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()}):""}}).filter("salesforce",function(){var a=["CallDisposition","CallDurationInSeconds","CallObject","CallType","IsArchived","Priority","Status","Type"];return function(b){return _.remove(b,function(b){return b.custom===!1&&a.indexOf(b.name)<0}),b}}).filter("sugarcrm",function(){var a=["account_id","account_name","account_name1","assigned_user_name","assigned_user_id","case_number","created_by","created_by_name","date_entered","date_modified","deleted","description","id","modified_by_name","modified_user_id","name"];return function(b){return _.remove(b,function(b){return a.indexOf(b.name)>=0}),b}}).filter("freshdesk",function(){var a=["requester","subject","agent","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.ticket_field.name)>=0}),b}}).filter("zendesk",function(){var a=["subject","assignee","description"];return function(b){return _.remove(b,function(b){return a.indexOf(b.type)>=0}),b}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main",{"abstract":!0,templateUrl:"app/main/main.html",controller:"MainCtrl",resolve:{authorization:["$q","Auth","$state","$timeout","$location",function(a,b,c,d,e){return b.getToken()?a.when():(d(function(){e.path("/login")}),a.reject())}],deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/plugins/mxgraph/js/mxClient.js"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("xAlert",["$translate","Notification",function(a,b){return{show:function(c,d){switch(d){case"success":b.success({message:c,title:'<i class="glyphicon glyphicon-ok"></i> <strong>'+a.instant("MESSAGE_SUCCESS")+"!</strong>",delay:5e3});break;case"info":b.info({message:c,title:'<i class="glyphicon glyphicon-info-sign"></i> <strong>'+a.instant("MESSAGE_INFO")+"!</strong>",delay:5e3});break;case"danger":b.error({message:c,title:'<i class="glyphicon glyphicon-exclamation-sign"></i> <strong>'+a.instant("MESSAGE_ERROR")+"!</strong>",delay:1e4});break;case"warning":b.warning({message:c,title:'<i class="glyphicon glyphicon-warning-sign"></i> <strong>'+a.instant("MESSAGE_WARNING")+"!</strong>",delay:1e4});break;default:b.info(c)}}}}]).factory("stResource",["$q","$filter","$timeout","$rootScope","$http","$translate","xAlert",function(a,b,c,d,e,f,g){return{getPage:function(b){var c={page:Math.ceil(b.pagination.start/b.pagination.number),per_page:b.pagination.number};b.sort.predicate&&(c.sort_by=b.sort.predicate,c.sort_order=b.sort.reverse?"DESC":"ASC"),_.forIn(b.search.predicateObject,function(a,b){c[b]=a}),b.search.params&&(c.clientQuery={},_.forIn(b.search.params,function(a,b){c.clientQuery[b]=a})),d.$broadcast("$spinnerStart"),e.get(b.url,{params:c}).success(function(a){h.resolve(a),d.$broadcast("$spinnerStop")}).error(function(a){g.show(f.instant(a.message),"danger"),d.$broadcast("$spinnerStop")});var h=a.defer();return h.promise}}}]),angular.module("xCallyShuttleApp").factory("Widget",["$resource",function(a){return a("/api/widgets/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("MarketCtrl",["$scope","$http","$translate","socket","xAlert","Modal","$timeout",function(a,b,c,d,e,f,g){function h(a,b){return Math.floor(Math.random()*(b-a+1))+a}a.initView=function(){b.get("/api/integrations").success(function(b){a.integrations=b.rows,a.groupedIntegration=_.chunk(a.integrations,4),d.syncUpdates("integration",a.integrations,function(){a.groupedIntegration=_.chunk(a.integrations,4)})}).error(function(a){e.show(a.message,"danger")})},a.isProgressing=!1,a.$on("$destroy",function(){d.unsyncUpdates("integration")}),a.installIntegration=function(d){a.status="Downloading",a.percentage=h(1,50),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!0}).success(function(){g(function(){a.percentage=h(51,99),a.status="Installing"},2500),g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.uninstallIntegration=function(d){a.status="Uninstalling",a.percentage=h(1,99),a.isProgressing=!0,d.downloading=!0,b.put("/api/integrations/"+d.id,{active:!1}).success(function(){g(function(){a.percentage=100,a.isProgressing=!1,a.status="Completed!",d.downloading=!1,e.show(c.instant("MESSAGE_WELL_DONE")+".","success")},5e3)}).error(function(){d.downloading=!1,a.percentage=0,a.isProgressing=!1,e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.market",{url:"/market",templateUrl:"app/market/market.html",controller:"MarketCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("MotionbarCtrl",["$scope","$stateParams","$cookieStore","settings","Auth",function(a,b,c,d,e){e.loginWithToken(b.token,b.userId,b.name),a.getCurrentUser=e.getCurrentUser,d.layout.pageQuickSidebarOpened=!0}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("motionbar",{url:"/motionbar",template:"<div ui-view></div>","abstract":!0}).state("motionbar.chat",{url:"/chat?token&userId&name",templateUrl:"app/motionbar/motionbar.chat.html",controller:"MotionbarCtrl"}).state("motionbar.mail",{url:"/mail?token&userId&name",templateUrl:"app/motionbar/motionbar.mail.html",controller:"MotionbarCtrl"})}]),angular.module("xCallyShuttleApp").controller("SalesforceListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.map(a.displayedSalesforceAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedSalesforceAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("salesforce_account"),b.url="/api/salesforce/accounts",h.getPage(b).then(function(d){a.displayedSalesforceAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedSalesforceAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedSalesforceAccounts.length)}),f.socket.on("salesforce_account:save",function(){a.initList(b)}),f.socket.on("salesforce_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/salesforce/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/salesforce/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/salesforce/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.list",{url:"/list",templateUrl:"app/salesforce/list/list.html",controller:"SalesforceListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce",{url:"/salesforce",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("SalesforceAccount",["$resource",function(a){return a("/api/salesforce/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SalesforceViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal","$filter",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){g.unsyncUpdates("salesforce_configuration"),g.unsyncUpdates("salesforce_field")}),a.initView=function(){b.get("/api/salesforce/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/salesforce/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/salesforce/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("salesforce_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.deleteConfiguration=i.confirm["delete"](function(a){b["delete"]("api/salesforce/configurations/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/salesforce/configurations",a.configuration).success(function(a){e.path("salesforce/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){h.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/salesforce/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(j("salesforce")(b),"name","asc")}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/salesforce/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,g.socket.on("salesforce_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){h.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/salesforce/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/salesforce/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/salesforce/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/salesforce/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/salesforce/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){b.content="",a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);if(c)switch(c.type){case"picklist":return c.picklistValues;default:return}}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.view",{url:"/view/:id",templateUrl:"app/salesforce/view/view.html",controller:"SalesforceViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.salesforce.view.account",{url:"/account",templateUrl:"app/salesforce/view/view.account.html"}).state("main.salesforce.view.configurations",{url:"/configurations",templateUrl:"app/salesforce/view/view.configurations.html"}).state("main.salesforce.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/salesforce/view/view.configurationSettings.html",controller:"SalesforceViewCtrl"}).state("main.salesforce.view.configuration",{url:"/configuration",templateUrl:"app/salesforce/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SalesforceWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){console.log(a.item),b.post("api/salesforce/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/salesforce/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.salesforce.wizard",{url:"/wizard",templateUrl:"app/salesforce/wizard/wizard.html",controller:"SalesforceWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("License",["$resource",function(a){return a("/api/licenses/:id/:controller",{id:"@id"},{request:{method:"POST",params:{id:"request"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license",{url:"/license",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("LicenseViewCtrl",["$scope","$rootScope","$translate","License","xAlert",function(a,b,c,d,e){a.initView=function(){d.get(function(b){a.item=b.license})},a.submitRequest=function(){d.request(a.item,function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")},function(a){switch(a.status){case 304:e.show(a.statusText,"info");break;default:e.show(a.statusText,"danger")}})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.license.view",{url:"/view",templateUrl:"app/setting/license/view/view.html",controller:"LicenseViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/pricing-tables.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting",{url:"/setting",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Setting",["$resource",function(a){return a("/api/settings/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("Smtp",["$resource",function(a){return a("/api/mail/servers/out/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp",{url:"/smtp",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SmtpViewCtrl",["$scope","$stateParams","$translate","MailServerOut","xAlert","usSpinnerService",function(a,b,c,d,e,f){a.initView=function(){a.item={},d.get({id:"service"}).$promise.then(function(b){a.item=b})["catch"](function(a){e.show(a.message,"danger")})},a.updateItem=function(){return a.item.id?d.update({id:a.item.id},a.item).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")}):(a.item.service=!0,d.save(a.item).$promise.then(function(b){a.item=b,e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")}))},a.test=function(){return f.spin("spinner-grid"),d.test({id:a.item.id,controller:"test"}).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})["finally"](function(){f.stop("spinner-grid")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.smtp.view",{url:"/view",templateUrl:"app/setting/smtp/view/view.html",controller:"SmtpViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("UpdateListCtrl",["$scope","gridOptions","$uibModal","$location","Update",function(a,b,c,d,e){a.initCounter=function(){a.$on("timer-stopped",function(a,b){console.log("Timer Stopped - data = ",b),d.path("/dashboard/voice")})},a.initView=function(){var c={exporterCsvFilename:"updates.csv",enableFiltering:!1,enableSorting:!1,enablePaginationControls:!1,enableSelectAll:!1,columnDefs:[{name:"message"},{width:125,name:"version",cellClass:"text-center ui-grid-vcenter"},{width:125,name:"createdAt",displayName:"APPLICATION_UPDATED_AT",cellClass:"text-center ui-grid-vcenter",cellTemplate:'<div><span am-time-ago="row.entity.createdAt"></span></div>'}]};a.gridOptions=b.gridOptions(e,c,a)},a.pull=function(){c.open({animation:!0,templateUrl:"app/setting/update/list/list.pull.html",controller:"UpdateListPullCtrl"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates.list",{url:"/list",templateUrl:"app/setting/update/list/list.html",controller:"UpdateListCtrl"}).state("main.setting.updates.landing",{url:"/landing",templateUrl:"app/setting/update/list/landing.html",controller:"UpdateListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/error.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("UpdateListPullCtrl",["$scope","$uibModalInstance","$translate","$location","Update",function(a,b,c,d,e){a.modal={dismissable:!0,title:"Confirm Checkout",html:"Are you sure you want to checkout?",buttons:[{classes:"btn btn-success",text:"Checkout",click:function(){return b.dismiss("close"),d.path("/setting/updates/landing"),e.pull()}},{classes:"btn default",text:"Cancel",click:function(){b.dismiss("cancel")}}]}}]),angular.module("xCallyShuttleApp").factory("Update",["$resource",function(a){return a("/api/updates/:id/:controller",{id:"@id"},{pull:{method:"GET",params:{id:"pull"}},checkout:{method:"GET",params:{id:"checkout"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.setting.updates",{url:"/updates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCtrl",["$scope","$uibModal","$translate","SquareOdbc","gridOptions","xAlert",function(a,b,c,d,e,f){a.initView=function(){var b={exporterCsvFilename:"odbc.csv",columnDefs:[{name:"name"},{name:"dsn",displayName:"APPLICATION_ODBC"},{name:"description"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/square/odbc/view/{{row.entity.id}}/settings",name:"settings"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK_CONNECTION",onClick:"grid.appScope.checkConnection(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=e.gridOptions(d,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/square/odbc/list/list.create.modal.html",controller:"SquareOdbcListCreateCtrl"});c.result.then(function(){a.gridOptions.getPage()})},a.checkConnection=function(a){return d.get({id:a,controller:"check"}).$promise.then(function(){f.show(c.instant("MESSAGE_CONNECTION_VERIFIED"),"success")})["catch"](function(){f.show(c.instant("MESSAGE_CONNECTION_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCreateCtrl",["$scope","$translate","$uibModalInstance","SquareOdbc","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.item.dsn||(a.item.dsn="DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion"),a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc.list",{url:"/list",templateUrl:"app/square/odbc/list/list.html",controller:"SquareOdbcListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc",{url:"/odbc",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SquareOdbc",["$resource",function(a){return a("/api/square/odbc/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcViewCtrl",["$scope","$translate","$stateParams","SquareOdbc","xAlert",function(a,b,c,d,e){a.odbc={},a.getOdbc=function(){return d.get({id:c.id}).$promise.then(function(b){a.odbc=b})["catch"](function(a){e.show(a.data.message,"danger")})},a.updateOdbc=function(){var f=angular.copy(a.odbc);return d.update({id:c.id},f).$promise.then(function(){e.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbc.view",{url:"/view/:id",templateUrl:"app/square/odbc/view/view.html",controller:"SquareOdbcViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.square.odbc.view.settings",{url:"/settings",templateUrl:"app/square/odbc/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCtrl",["$scope","$uibModal","SquareProject","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"projects.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/square/projects/view/{{row.entity.id}}",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/square/project/list/list.create.modal.html",controller:"SquareProjectListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCreateCtrl",["$scope","$translate","$uibModalInstance","SquareProject","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.list",{url:"/list",templateUrl:"app/square/project/list/list.html",controller:"SquareProjectListCtrl",authenticate:!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("SquareProject",["$resource",function(a){return a("/api/square/projects/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SquareProjectViewCtrl",["$scope","$stateParams","Auth","xAlert","SquareProject",function(a,b,c,d,e){a.squareProject={},a.getProject=function(){return e.get({id:b.id}).$promise.then(function(b){a.squareProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!==a&&-1!==a.indexOf("Script error."));else{var e=new Image;e.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(f){d.show(f,"danger")}},b.token=c.getToken();var a=new EditorUi(new Editor);a.openString(b.preproduction,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}})})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.view",{url:"/view/:id",templateUrl:"app/square/project/view/view.html",controller:"SquareProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/square/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/square/js/Editor.js","assets/plugins/square/js/Graph.js","assets/plugins/square/js/EditorUi.js","assets/plugins/square/js/Actions.js","assets/plugins/square/js/Menus.js","assets/plugins/square/js/Sidebar.js","assets/plugins/square/js/Toolbar.js","assets/plugins/square/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square",{url:"/square",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("Agent",["$resource",function(a){return a("/api/agents/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"},patch:{method:"PATCH"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents",{url:"/agents",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AgentListCtrl",["$scope","Agent","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"agents.csv",columnDefs:[{name:"fullname"},{name:"name",displayName:"APPLICATION_USERNAME"},{name:"internal"},{name:"email"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/agents/view/{{row.entity.id}}/account",
+name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.list",{url:"/list",templateUrl:"app/staff/agent/list/list.html",controller:"AgentListCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("AgentViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$cookieStore","Agent","FileUploader","Auth","User",function(a,b,c,d,e,f,g,h,i,j){a.Auth=i,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.updatePassword=function(){var b={newPassword:a.agent.newPwd};return i.isAdmin()?b.id=e.id:b.oldPassword=a.agent.currentPwd,j.changePassword(b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})};var k=a.uploader=new h({url:"api/users/"+e.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});k.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),k.onSuccessItem=function(b,e){a.agent.userpic=e.userpic,a.agent.id===i.getCurrentUser().id&&(i.getCurrentUser().userpic=e.userpic),c.show(d.instant("MESSAGE_WELL_DONE"),"success")},k.onErrorItem=function(){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},k.onCompleteAll=function(){k.clearQueue()},a.initView=function(){return g.get({id:e.id}).$promise.then(function(b){a.agent=b,a.agent.transport=a.agent.transport?a.agent.transport.split(","):[],a.agent.allow=a.agent.allow?a.agent.allow.split(";"):[],a.agent.nat=a.agent.nat?a.agent.nat.split(","):[]})["catch"](function(a){c.show(a.message,"danger")})},a.patchItem=function(){return g.patch({id:e.id},{chatCapacity:a.agent.chatCapacity,mailCapacity:a.agent.mailCapacity,faxCapacity:a.agent.faxCapacity}).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.agent);return delete b.password,delete b.md5secret,b.transport=b.transport.join(","),b.allow=b.allow.join(";"),b.nat=b.nat.join(","),g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.view",{url:"/view/:id",templateUrl:"app/staff/agent/view/view.html",controller:"AgentViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.staff.agents.view.account",{url:"/account",templateUrl:"app/staff/agent/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}}).state("main.staff.agents.view.voice",{url:"/voice",templateUrl:"app/staff/agent/view/view.voice.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.chat",{url:"/chat",templateUrl:"app/staff/agent/view/view.chat.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.mail",{url:"/mail",templateUrl:"app/staff/agent/view/view.mail.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.fax",{url:"/fax",templateUrl:"app/staff/agent/view/view.fax.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}}).state("main.staff.agents.view.phonebar",{url:"/phonebar",templateUrl:"app/staff/agent/view/view.phonebar.html",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("AgentWizardCtrl",["$scope","$rootScope","Agent","Setting","xAlert","$location","$translate","$http","WizardHandler",function(a,b,c,d,e,f,g,h,i){a.forms={info:void 0,voice:void 0},a.item={role:"agent",allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},a.next=function(){i.wizard().next()},a.exitValidation=function(a){return a},a.getFirstFreeInternal=function(){return d.get({controller:"internal"}).$promise.then(function(b){a.item.internal=b.value})["catch"](function(a){e.show(a.data.message,"danger")})},a.createItem=function(){var b=angular.copy(a.item);return b.transport&&(b.transport=b.transport.join(",")),a.item.allow&&(b.allow=b.allow.join(";")),c.save(b).$promise.then(function(){f.path("/staff/agents/list")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.agents.wizard",{url:"/wizard",templateUrl:"app/staff/agent/wizard/wizard.html",controller:"AgentWizardCtrl",data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff",{url:"/staff",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TeamCreateCtrl",["$scope","$uibModalInstance","Team","xAlert",function(a,b,c,d){a.form={},a.item={},a.ok=function(){return c.save(a.item).$promise.then(function(){b.close(a.item)})["catch"](function(a){d.show(a.data.message,"danger")})},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("TeamListCtrl",["$scope","Team","gridOptions","$uibModal",function(a,b,c,d){a.initView=function(){var d={exporterCsvFilename:"teams.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"{{row.entity.defaultEntry ? 'blue-hoki disabled' : 'blue-hoki'}}",href:"/staff/teams/view/{{row.entity.id}}/settings",name:"profile"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.createItem=function(){d.open({animation:!0,templateUrl:"app/staff/team/list/create.modal.html",controller:"TeamCreateCtrl"}).result.then(function(){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams.list",{url:"/list",templateUrl:"app/staff/team/list/list.html",controller:"TeamListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Team",["$resource",function(a){return a("/api/teams/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams",{url:"/teams",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TeamViewCtrl",["$scope","$http","$stateParams","$translate","Team","Agent","xAlert",function(a,b,c,d,e,f,g){var h=function(){return{select:function(b){return console.log("agents",b),e.save({id:a.team.id,controller:"agents"},{agents:b})},deselect:function(b){return e["delete"]({id:a.team.id,controller:"agents",agents:b})}}};a.initView=function(){return e.get({id:c.id}).$promise.then(function(b){a.team=b})["catch"](function(a){g.show(a.message,"danger")})},a.initAgents=function(){return f.get().$promise.then(function(b){return a.agents=b.rows,e.query({id:c.id,controller:"agents"}).$promise}).then(function(b){ComponentsDropdowns.bindTeam(_.map(b,"id"),_.map(a.agents,function(a){return{id:a.id,name:a.name,fullname:a.fullname,internal:a.internal}}),h)})["catch"](function(a){g.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.team);return e.update({id:c.id},b).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.teams.view",{url:"/view/:id",templateUrl:"app/staff/team/view/view.html",controller:"TeamViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.staff.teams.view.agents",{url:"/agents",templateUrl:"app/staff/team/view/view.agents.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/plugins/jquery-quicksearch/jquery.quicksearch.js","assets/scripts/components-dropdowns.js"]}])}]}}).state("main.staff.teams.view.settings",{url:"/settings",templateUrl:"app/staff/team/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TelephoneListCtrl",["$scope","Telephone","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"telephones.csv",columnDefs:[{name:"fullname"},{name:"name"},{name:"accountcode"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/telephones/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.list",{url:"/list",templateUrl:"app/staff/telephone/list/list.html",controller:"TelephoneListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Telephone",["$resource",function(a){return a("/api/telephones/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones",{url:"/telephones",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TelephoneViewCtrl",["$scope","$http","$stateParams","$translate","$cookieStore","Auth","xAlert","Telephone",function(a,b,c,d,e,f,g,h){a.initView=function(){a.Auth=f,a.forms={},h.get({id:c.id}).$promise.then(function(b){delete b.password,a.item=b,a.item.transport=a.item.transport?a.item.transport.split(","):[],a.item.allow=a.item.allow?a.item.allow.split(";"):[]})["catch"](function(a){g.show(a.message,"danger")})},a.updateItem=function(){var b=angular.copy(a.item);b.transport=b.transport.join(","),b.allow=b.allow.join(";"),h.update(b).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.view",{url:"/view/:id",templateUrl:"app/staff/telephone/view/view.html",controller:"TelephoneViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.staff.telephones.view.account",{url:"/account",templateUrl:"app/staff/telephone/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("TelephoneWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert","$translate","Telephone",function(a,b,c,d,e,f,g){a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.initWizard=function(){return a.forms={},a.item={allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},g.get({id:"internal"}).$promise.then(function(b){a.item.internal=b.internal})["catch"](function(a){console.error(a)})},a.createItem=function(){var b=angular.copy(a.item);return b.transport&&(b.transport=b.transport.join(",")),a.item.allow&&(b.allow=b.allow.join(";")),g.save(b).$promise.then(function(){c.path("/staff/telephones/list")})["catch"](function(a){e.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.telephones.wizard",{url:"/wizard",templateUrl:"app/staff/telephone/wizard/wizard.html",controller:"TelephoneWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UserListCtrl",["$scope","User","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"users.csv",columnDefs:[{name:"fullname"},{name:"name",displayName:"APPLICATION_USERNAME"},{name:"email"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/staff/users/view/{{row.entity.id}}/account",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.fullname, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.list",{url:"/list",templateUrl:"app/staff/user/list/list.html",controller:"UserListCtrl"})}]),angular.module("xCallyShuttleApp").factory("User",["$resource",function(a){return a("/api/users/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"},me:{method:"GET",params:{id:"me"}}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users",{url:"/users",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("UserViewCtrl",["$scope","$stateParams","$cookieStore","$translate","FileUploader","User","Auth","xAlert",function(a,b,c,d,e,f,g,h){a.Auth=g,a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.user=b,a.user.transport=a.user.transport?a.user.transport.split(","):[],a.user.allow=a.user.allow?a.user.allow.split(";"):[]})["catch"](function(a){h.show(a.message,"danger")})},a.updateItem=function(){var c=angular.copy(a.user);return delete c.password,delete c.md5secret,c.transport=c.transport.join(","),c.allow=c.allow.join(";"),f.update({id:b.id},c).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})},a.updatePassword=function(){var c={newPassword:a.user.newPwd};return g.isAdmin()?c.id=b.id:c.oldPassword=a.user.currentPwd,f.changePassword(c).$promise.then(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){h.show(a.message,"danger")})};var i=a.uploader=new e({url:"api/users/"+b.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+c.get("token")}});i.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),i.onSuccessItem=function(b,c){a.user.userpic=c.userpic,a.user.id===g.getCurrentUser().id&&(g.getCurrentUser().userpic=c.userpic),h.show(d.instant("MESSAGE_WELL_DONE"),"success")},i.onErrorItem=function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},i.onCompleteAll=function(){i.clearQueue()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.view",{url:"/view/:id",templateUrl:"app/staff/user/view/view.html",controller:"UserViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.staff.users.view.account",{url:"/account",templateUrl:"app/staff/user/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("UserWizardCtrl",["$scope","$location","WizardHandler","xAlert","$translate","User",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"user",host:"dynamic",context:"from-sip"},a.next=function(){c.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){return f.save(a.item).$promise.then(function(){b.path("/staff/users/list")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.staff.users.wizard",{url:"/wizard",templateUrl:"app/staff/user/wizard/wizard.html",controller:"UserWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("SugarcrmListCtrl",["$scope","SugarcrmAccount","gridOptions","xAlert","$translate","Modal",function(a,b,c,d,e,f){a.initView=function(){var d={exporterCsvFilename:"sugarcrm_account.csv",columnDefs:[{name:"name",displayName:"APPLICATION_NAME"},{name:"username"},{name:"remoteUri",displayName:"APPLICATION_REMOTE_ADDRESS"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/sugarcrm/view/{{row.entity.id}}/account",name:"profile"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK_CONNECTION",onClick:"grid.appScope.checkAccount(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.checkAccount=function(a){return b.get({id:a,controller:"check"}).$promise.then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(a){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.list",{url:"/list",templateUrl:"app/sugarcrm/list/list.html",controller:"SugarcrmListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm",{url:"/sugarcrm",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmAccount",["$resource",function(a){return a("/api/sugarcrm/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmConfiguration",["$resource",function(a){return a("/api/sugarcrm/configurations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").factory("SugarcrmField",["$resource",function(a){return a("/api/sugarcrm/fields/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").controller("SugarcrmViewCtrl",["$scope","$http","$stateParams","$translate","$location","$filter","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){h.unsyncUpdates("sugarcrm_configuration"),h.unsyncUpdates("sugarcrm_field")}),a.initView=function(){b.get("/api/sugarcrm/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){i.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/sugarcrm/accounts/"+c.id,a.account).success(function(){i.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/sugarcrm/configurations",{params:{AccountId:c.id}}).success(function(b){a.configurations=b,h.socket.on("sugarcrm_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.deleteConfiguration=j.confirm["delete"](function(a){b["delete"]("api/sugarcrm/configurations/"+a).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.AccountId=c.id,b.post("api/sugarcrm/configurations",a.configuration).success(function(a){e.path("sugarcrm/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){i.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/sugarcrm/accounts/"+c.id+"/fields").success(function(b){a.accountFields=_.sortByOrder(f("sugarcrm")(_.toArray(b)),"name","asc"),_.forEach(b,function(a){a.options=_.toArray(a.options)})}).error(function(a){i.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/sugarcrm/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,h.socket.on("sugarcrm_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){i.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){i.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/sugarcrm/fields/"+a.id).success(function(){i.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/sugarcrm/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){i.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/sugarcrm/fields/"+a.id,a).success(function(){}).error(function(){i.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){b.content="",a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"name",b);return c?c.options.length>0?c.options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.view",{url:"/view/:id",templateUrl:"app/sugarcrm/view/view.html",controller:"SugarcrmViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.sugarcrm.view.account",{url:"/account",templateUrl:"app/sugarcrm/view/view.account.html"}).state("main.sugarcrm.view.configurations",{url:"/configurations",templateUrl:"app/sugarcrm/view/view.configurations.html"}).state("main.sugarcrm.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/sugarcrm/view/view.configurationSettings.html",controller:"SugarcrmViewCtrl"}).state("main.sugarcrm.view.configuration",{url:"/configuration",templateUrl:"app/sugarcrm/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("SugarcrmkWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={}},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/sugarcrm/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/sugarcrm/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sugarcrm.wizard",{url:"/wizard",templateUrl:"app/sugarcrm/wizard/wizard.html",controller:"SugarcrmkWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("CannedAnswer",["$resource",function(a){return a("/api/answers/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers",{url:"/answers",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AnswerListCtrl",["$scope","$uibModal","CannedAnswer","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"answers.csv",columnDefs:[{name:"key",displayName:"APPLICATION_NAME"},{name:"value"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/answers/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.key, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){b.open({animation:!0,templateUrl:"app/tools/answer/list/list.create.modal.html",controller:"AnswerListCreateCtrl"}).result.then(function(b){a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("AnswerListCreateCtrl",["$scope","$translate","$uibModalInstance","CannedAnswer","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers.list",{url:"/list",templateUrl:"app/tools/answer/list/list.html",controller:"AnswerListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AnswerViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","CannedAnswer",function(a,b,c,d,e,f,g){a.getAnswer=function(){return g.get({id:e.id}).$promise.then(function(b){a.answer=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updateAnswer=function(){var b=angular.copy(a.answer);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.answers.view",{url:"/view/:id",templateUrl:"app/tools/answer/view/view.html",controller:"AnswerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.answers.view.settings",{url:"/settings",templateUrl:"app/tools/answer/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("Automation",["$resource",function(a){return a("/api/automations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AutomationListCtrl",["$scope","$http","$translate","xAlert","Automation","gridOptions",function(a,b,c,d,e,f){a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){var b={exporterCsvFilename:"Automations.csv",columnDefs:[{name:"name"},{name:"description"},{name:"channel"},{name:"status",cellTemplate:'<div class="centered-uigrid-td"><input data-ng-change="grid.appScope.updateItem(row.entity)", bs-switch ng-model="row.entity.status" type="checkbox" switch-active="{{ grid.appScope.isActive }}" switch-on-text="{{ grid.appScope.onText }}" switch-off-text="{{ grid.appScope.offText }}" switch-on-color="{{ grid.appScope.onColor }}" switch-off-color="{{ grid.appScope.offColor }}" switch-animate="{{ grid.appScope.animate }}" switch-size="{{ grid.appScope.size }}" switch-label="{{ grid.appScope.label }}" switch-icon="{{ grid.appScope.icon }}" switch-radio-off="{{ grid.appScope.radioOff }}" switch-label-width="{{ grid.appScope.labelWidth }}" switch-handle-width="{{ grid.appScope.handleWidth }}"></div>',width:100,enableFiltering:!1},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/automations/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=f.gridOptions(e,b,a)},a.updateItem=function(a){return e.update({id:a.id},a).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.list",{url:"/list",templateUrl:"app/tools/automation/list/list.html",controller:"AutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AutomationViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","automations","Automation","$location",function(a,b,c,d,e,f,g,h){a.$automations=f,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.forms={general:{}},a.addCondition=function(b){a.automation[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.automation[b].splice(c,1)},a.addAction=function(){a.automation.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.automation.Actions.splice(b,1)},a.initView=function(){return g.get({id:b.id}).$promise.then(function(b){a.automation=b})["catch"](function(a){e.show(a.message,"danger"),h.path("/tools/automations/list")})},a.updateAutomation=function(){return g.update({id:b.id},a.automation).$promise.then(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),e.show(a.message,"danger")})},a.exitValidation=function(b){return console.log(b&&(a.automation.All.length||a.automation.Any.length)&&a.automation.Actions.length),!(!b||!a.automation.All.length&&!a.automation.Any.length||!a.automation.Actions.length)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){
+a.state("main.tools.automations.view",{url:"/view/:id",templateUrl:"app/tools/automation/view/view.html",controller:"AutomationViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.tools.automations.view.settings",{url:"/settings",templateUrl:"app/tools/automation/view/view.settings.html"}).state("main.tools.automations.view.routes",{url:"/routes",templateUrl:"app/tools/automation/view/view.routes.html"}).state("main.tools.automations.view.application",{url:"/application",templateUrl:"app/tools/automation/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("AutomationWizardCtrl",["$scope","$http","$location","xAlert","automations","WizardHandler","Automation",function(a,b,c,d,e,f,g){a.$automations=e,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={All:[],Any:[],Actions:[]},a.forms={general:void 0,settings:void 0},a.addCondition=function(b){a.item[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.item[b].splice(c,1)},a.addAction=function(){a.item.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.item.Actions.splice(b,1)},a.$watch("item.channel",function(b,c){c&&(a.tempData[c].All=_.clone(a.item.All,!0),a.tempData[c].Any=_.clone(a.item.Any,!0),a.tempData[c].Actions=_.clone(a.item.Actions,!0)),a.item.All=a.tempData[b].All?a.tempData[b].All:[],a.item.Any=a.tempData[b].Any?a.tempData[b].Any:[],a.item.Actions=a.tempData[b].Actions?a.tempData[b].Actions:[]},!0),a.item.channel="voice",a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/tools/automations/list")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a},a.exitSettingsValidation=function(b){return!(!b||!a.item.All.length&&!a.item.Any.length||!a.item.Actions.length)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.automations.wizard",{url:"/wizard",templateUrl:"app/tools/automation/wizard/wizard.html",controller:"AutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("Interval",["$resource",function(a){return a("/api/intervals/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals",{url:"/intervals",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("IntervalListCtrl",["$scope","$uibModal","Interval","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"intervals.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/intervals/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/interval/list/list.create.modal.html",controller:"IntervalListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("IntervalListCreateCtrl",["$scope","$translate","$uibModalInstance","Interval","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(b.instant(a.data.message),"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals.list",{url:"/list",templateUrl:"app/tools/interval/list/list.html",controller:"IntervalListCtrl"})}]),angular.module("xCallyShuttleApp").controller("IntervalViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","interval",function(a,b,c,d,e,f,g,h,i,j){function k(b){console.log(b);var c,d,e,f;c=b.t_from&&b.t_to&&!b.alwaysTime?moment(b.t_from).format("HH:mm")+"-"+moment(b.t_to).format("HH:mm"):"*",b.wd_from&&"always"!==b.wd_from?(d=b.wd_from,b.wd_to&&"always"!==b.wd_to&&(d+="-"+b.wd_to)):d="*",b.md_from&&"always"!==b.md_from?(e=b.md_from,b.md_to&&"always"!==b.md_to&&(e+="-"+b.md_to)):e="*",b.m_from&&"always"!==b.m_from?(f=b.m_from,b.m_to&&"always"!==b.m_to&&(f+="-"+b.m_to)):f="*",void 0!==a.selectedSubInterval?a.interval.SubIntervals[a.selectedSubInterval].interval=c+","+d+","+e+","+f:a.subinterval.interval=c+","+d+","+e+","+f}a.$translate=d,a.$interval=j.interval,a.selectedSubInterval=void 0,a.gridOptions={columnDefs:[{name:"name",displayName:"APPLICATION_NAME",headerCellFilter:"translate"},{name:"interval",displayName:"APPLICATION_INTERVAL",headerCellFilter:"translate"},{name:"action",displayName:"APPLICATION_ACTION",headerCellFilter:"translate",width:125,cellTemplate:'<a class="btn btn-xs blue-hoki" data-ng-click="grid.appScope.openSubInterval(grid.appScope.gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_SETTINGS\' | translate}}</a><a class="btn btn-xs red-sunglo" data-ng-click="grid.appScope.deleteSubInterval(row.entity.name+\' interval\', gridOptions.data.indexOf(row.entity))">{{\'APPLICATION_DELETE\' | translate}}</a>'}]},a.forms={subinterval:void 0,general:void 0},a.initSubInterval=function(b){b&&(a.selectedSubInterval=void 0),a.subinterval={},a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0}},a.next=function(){h.wizard().next()},a.previous=function(){h.wizard().previous()},a.exitValidation=function(a){return a},a.deselectAndRedirect=function(b){a.selectedSubInterval=void 0,g.path(b)},a.getInterval=function(){b.get("/api/intervals/"+e.id).success(function(b){a.interval=b,a.gridOptions.data=b.SubIntervals}).error(function(a){console.error(a),g.path("/tools/intervals/list")})},a.openSubInterval=function(b){a.selectedSubInterval=b,g.path("/tools/intervals/view/"+e.id+"/subintervals/settings")},a.updateInterval=function(f){a.selectedSubInterval=void 0,b.put("/api/intervals/"+e.id,a.interval).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),f&&g.path("/tools/intervals/view/"+e.id+"/"+f)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getSubInterval=function(){void 0===a.selectedSubInterval&&g.path("/tools/intervals/list"),a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date)};var b,c=a.interval.SubIntervals[a.selectedSubInterval]?a.interval.SubIntervals[a.selectedSubInterval].interval.split(","):["*","*","*","*"];c.forEach(function(c,d){switch(d){case 0:"*"!==c?(b=c.split("-"),a.splittedInterval.t_from=moment(b[0],"HH:mm"),a.splittedInterval.t_to=moment(b[1],"HH:mm"),a.splittedInterval.alwaysTime=!1):(a.splittedInterval.t_from=moment(new Date),a.splittedInterval.t_to=moment(new Date),a.splittedInterval.alwaysTime=!0);break;case 1:"*"!==c?(b=c.split("-"),a.splittedInterval.wd_from=b[0],a.splittedInterval.wd_to=b[1]?b[1]:"always"):(a.splittedInterval.wd_from="always",a.splittedInterval.wd_to="always");break;case 2:"*"!==c?(b=c.split("-"),a.splittedInterval.md_from=b[0],a.splittedInterval.md_to=b[1]?b[1]:"always"):(a.splittedInterval.md_from="always",a.splittedInterval.md_to="always");break;case 3:"*"!==c?(b=c.split("-"),a.splittedInterval.m_from=b[0],a.splittedInterval.m_to=b[1]?b[1]:"always"):(a.splittedInterval.m_from="always",a.splittedInterval.m_to="always")}})},a.$watch("splittedInterval",function(a){a&&k(a)},!0),a.addSubInterval=function(){a.interval.SubIntervals.push(a.subinterval),a.updateInterval("subintervals")},a.deleteSubInterval=i.confirm["delete"](function(b){a.interval.SubIntervals.splice(b,1),a.updateInterval()})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.intervals.view",{url:"/view/:id",templateUrl:"app/tools/interval/view/view.html",controller:"IntervalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.intervals.view.settings",{url:"/settings",templateUrl:"app/tools/interval/view/view.settings.html"}).state("main.tools.intervals.view.subintervals",{url:"/subintervals",templateUrl:"app/tools/interval/view/view.subintervals.html"}).state("main.tools.intervals.view.subinterval",{url:"/subinterval",templateUrl:"app/tools/interval/view/view.subinterval.html"}).state("main.tools.intervals.view.subintervals.settings",{url:"/settings",templateUrl:"app/tools/interval/view/view.subintervalSettings.html"})}]),angular.module("xCallyShuttleApp").controller("PauseListCtrl",["$scope","$log","$uibModal","$translate","Pause","gridOptions",function(a,b,c,d,e,f){a.initView=function(){var b={exporterCsvFilename:"pauses.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/pauses/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=f.gridOptions(e,b,a)},a.createItem=function(){var b=c.open({animation:!0,templateUrl:"app/tools/pause/list/list.create.modal.html",controller:"PauseListCreateCtrl"});b.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("PauseListCreateCtrl",["$scope","$translate","$uibModalInstance","Pause","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses.list",{url:"/list",templateUrl:"app/tools/pause/list/list.html",controller:"PauseListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Pause",["$resource",function(a){return a("/api/pauses/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses",{url:"/pauses",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("PauseViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","Pause",function(a,b,c,d,e,f,g){a.getPause=function(){return g.get({id:e.id}).$promise.then(function(b){a.pause=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updatePause=function(){var b=angular.copy(a.pause);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.pauses.view",{url:"/view/:id",templateUrl:"app/tools/pause/view/view.html",controller:"PauseViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.pauses.view.settings",{url:"/settings",templateUrl:"app/tools/pause/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SoundListCtrl",["$scope","$http","socket","Modal","$q","FileUploader","$translate","xAlert","$cookieStore","$sce","Sound",function(a,b,c,d,e,f,g,h,i,j,k){a.Sound=k,a.isCollapsed=!0,a.downloadButtonContent='<i class="icon-cloud-download"></i>',a.downloadButtonClass="btn btn-xs blue-hoki",a["delete"]=d.confirm["delete"](function(a){b["delete"]("/api/sounds/"+a).success(function(a){}).error(function(a){console.log(a)})}),a.updateAudio=function(a,c){var d=e.defer();return b.put("/api/sounds/"+a,c).success(function(a){d.resolve()}).error(function(a){console.log(a.message),d.reject(a.message)}),d.promise},a.$on("$destroy",function(){c.unsyncUpdates("sound")}),a.initList=function(){b.get("/api/sounds").success(function(b){a.sounds=b.rows,b.rows.length||(a.isCollapsed=!1),c.syncUpdates("sound",a.sounds,function(){a.sounds.length||(a.isCollapsed=!1)})}).error(function(a){})};var l=a.uploader=new f({url:"/api/sounds",withCredentials:!0,headers:{Authorization:"Bearer "+i.get("token")}});l.filters.push({name:"customFilter",fn:function(a,b){return this.queue.length<10}}),l.onWhenAddingFileFailed=function(a,b,c){console.info("onWhenAddingFileFailed",a,b,c)},l.onAfterAddingFile=function(a){console.info("onAfterAddingFile",a)},l.onAfterAddingAll=function(a){console.info("onAfterAddingAll",a)},l.onBeforeUploadItem=function(a){console.info("onBeforeUploadItem",a)},l.onProgressItem=function(a,b){console.info("onProgressItem",a,b),a.isUploading=!0},l.onProgressAll=function(a){console.info("onProgressAll",a)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),a.isUploading=!1},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),a.responseMessage=b,a.isUploading=!1},l.onCancelItem=function(a,b,c,d){console.info("onCancelItem",a,b,c,d),a.isUploading=!1},l.onCompleteItem=function(a,b,c,d){console.info("onCompleteItem",a,b,c,d),a.isUploading=!1},l.onCompleteAll=function(){console.info("onCompleteAll")},console.info("uploader",l)}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.sounds.list",{url:"/list",templateUrl:"app/tools/sound/list/list.html",controller:"SoundListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").factory("Sound",["$resource",function(a){return a("/api/sounds/:id/:controller",{name:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.sounds",{url:"/sounds",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TagListCtrl",["$scope","$uibModal","Tag","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"tag.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/tags/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/tag/list/list.create.modal.html",controller:"TagListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("TagListCreateCtrl",["$scope","$translate","$uibModalInstance","Tag","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags.list",{url:"/list",templateUrl:"app/tools/tag/list/list.html",controller:"TagListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Tag",["$resource",function(a){return a("/api/tags/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags",{url:"/tags",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TagViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location","Tag",function(a,b,c,d,e,f,g){a.getTag=function(){return g.get({id:e.id}).$promise.then(function(b){a.tag=b})["catch"](function(a){c.show(a.data.message,"danger")})},a.updateTag=function(){var b=angular.copy(a.tag);return g.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.tags.view",{url:"/view/:id",templateUrl:"app/tools/tag/view/view.html",controller:"TagViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.tags.view.settings",{url:"/settings",templateUrl:"app/tools/tag/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TemplateListCtrl",["$scope","Template","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"templates.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/tools/templates/view/{{row.entity.id}}/settings",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.list",{url:"/list",templateUrl:"app/tools/template/list/list.html",controller:"TemplateListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Template",["$resource",function(a){return a("/api/mail/templates/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates",{url:"/templates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TemplateViewCtrl",["$scope","$http","$translate","$stateParams","xAlert","Template",function(a,b,c,d,e,f){a.initItem=function(){a.form={},a.item={},a.groups=[{title:"Voice",variables:[]},{title:"Chat",variables:["username","email","text","chatWebsite"]},{title:"Mail",variables:[]},{title:"Fax",variables:[]}],a.item=f.get({id:d.id})},a.updateItem=function(){f.update(a.item).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.view",{url:"/view/:id",templateUrl:"app/tools/template/view/view.html",controller:"TemplateViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.templates.view.settings",{url:"/settings",templateUrl:"app/tools/template/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TemplateWizardCtrl",["$scope","$location","$http","WizardHandler","xAlert","Template",function(a,b,c,d,e,f){a.initWizard=function(){a.item={},a.form={},a.groups=[{title:"Voice",variables:[]},{title:"Chat",variables:["username","email","text","chatWebsite"]},{title:"Mail",variables:[]},{title:"Fax",variables:[]}]},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){return f.save({name:a.item.name,description:a.item.description,subject:a.item.subject||null,html:a.item.html||null,text:a.item.text||null}).$promise.then(function(){b.path("/tools/templates/list")})["catch"](function(a){e.show(data.err.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.templates.wizard",{url:"/wizard",templateUrl:"app/tools/template/wizard/wizard.html",controller:"TemplateWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools",{url:"/tools",template:"<div ui-view></div>","abstract":!0,data:{permissions:{only:["admin"],redirectTo:"main.dashboard.voice"}}})}]),angular.module("xCallyShuttleApp").controller("TriggerListCtrl",["$scope","$http","$translate","Modal","xAlert","Trigger","gridOptions",function(a,b,c,d,e,f,g){a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){var b={exporterCsvFilename:"Triggers.csv",columnDefs:[{name:"name"},{name:"description"},{name:"channel"},{name:"status",cellTemplate:'<div class="centered-uigrid-td"><input data-ng-change="grid.appScope.updateItem(row.entity)", bs-switch ng-model="row.entity.status" type="checkbox" switch-active="{{ grid.appScope.isActive }}" switch-on-text="{{ grid.appScope.onText }}" switch-off-text="{{ grid.appScope.offText }}" switch-on-color="{{ grid.appScope.onColor }}" switch-off-color="{{ grid.appScope.offColor }}" switch-animate="{{ grid.appScope.animate }}" switch-size="{{ grid.appScope.size }}" switch-label="{{ grid.appScope.label }}" switch-icon="{{ grid.appScope.icon }}" switch-radio-off="{{ grid.appScope.radioOff }}" switch-label-width="{{ grid.appScope.labelWidth }}" switch-handle-width="{{ grid.appScope.handleWidth }}"></div>',width:100,enableFiltering:!1},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/triggers/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=g.gridOptions(f,b,a)},a.updateItem=function(a){return f.update({id:a.id},a).$promise.then(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.list",{url:"/list",templateUrl:"app/tools/trigger/list/list.html",controller:"TriggerListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Trigger",["$resource",function(a){return a("/api/triggers/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers",{url:"/triggers",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TriggerViewCtrl",["$scope","$stateParams","$translate","xAlert","triggers","Trigger","$location",function(a,b,c,d,e,f,g){a.$triggers=e,a.recordSwitch={onText:"On",offText:"Off",isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.forms={general:{}},a.addCondition=function(b){a.trigger[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.trigger[b].splice(c,1)},a.addAction=function(){a.trigger.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.trigger.Actions.splice(b,1)},a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.trigger=b})["catch"](function(a){d.show(a.message,"danger"),g.path("/tools/triggers/list")})},a.updateTrigger=function(){return f.update({id:b.id},a.trigger).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.exitValidation=function(b){return console.log(b&&(a.trigger.All.length||a.trigger.Any.length)&&a.trigger.Actions.length),!(!b||!a.trigger.All.length&&!a.trigger.Any.length||!a.trigger.Actions.length)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.view",{url:"/view/:id",templateUrl:"app/tools/trigger/view/view.html",controller:"TriggerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.tools.triggers.view.settings",{url:"/settings",templateUrl:"app/tools/trigger/view/view.settings.html"}).state("main.tools.triggers.view.routes",{url:"/routes",templateUrl:"app/tools/trigger/view/view.routes.html"}).state("main.tools.triggers.view.application",{url:"/application",templateUrl:"app/tools/trigger/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("TriggerWizardCtrl",["$scope","$http","$location","xAlert","triggers","WizardHandler","Trigger",function(a,b,c,d,e,f,g){a.$triggers=e,a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={All:[],Any:[],Actions:[]},a.forms={general:void 0,settings:void 0},a.addCondition=function(b){a.item[b].push({field:"",operator:"",value:""})},a.removeCondition=function(b,c){a.item[b].splice(c,1)},a.addAction=function(){a.item.Actions.push({action:"",data1:"",data2:"",data3:"",data4:"",data5:""})},a.resetActionData=function(a){a.data1="",a.data2="",a.data3="",a.data4="",a.data5=""},a.removeAction=function(b){a.item.Actions.splice(b,1)},a.$watch("item.channel",function(b,c){c&&(a.tempData[c].All=_.clone(a.item.All,!0),a.tempData[c].Any=_.clone(a.item.Any,!0),a.tempData[c].Actions=_.clone(a.item.Actions,!0)),a.item.All=a.tempData[b].All?a.tempData[b].All:[],a.item.Any=a.tempData[b].Any?a.tempData[b].Any:[],a.item.Actions=a.tempData[b].Actions?a.tempData[b].Actions:[]},!0),a.item.channel="voice",a.createItem=function(){return g.save(a.item).$promise.then(function(){c.path("/tools/triggers/list")})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a},a.exitSettingsValidation=function(b){return!(!b||!a.item.All.length&&!a.item.Any.length||!a.item.Actions.length)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.triggers.wizard",{url:"/wizard",templateUrl:"app/tools/trigger/wizard/wizard.html",controller:"TriggerWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TrunkListCtrl",["$scope","Trunk","gridOptions",function(a,b,c){a.initView=function(){var d={exporterCsvFilename:"Trunks.csv",columnDefs:[{name:"name"},{name:"host"},{name:"context"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/trunks/view/{{row.entity.name}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.name)"}]}]};a.gridOptions=c.gridOptions(b,d,a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.list",{url:"/list",templateUrl:"app/tools/trunk/list/list.html",controller:"TrunkListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Trunk",["$resource",function(a){return a("/api/trunks/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks",{url:"/trunks",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TrunkViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","Trunk","VoiceContext",function(a,b,c,d,e,f,g,h,i){a.initView=function(){return h.get({id:e.id}).$promise.then(function(b){b.nat=b.nat?b.nat.split(","):[],b.allow=b.allow?b.allow.split(";"):[],b.insecure=b.insecure?b.insecure.split(","):[],b.transport=b.transport?b.transport.split(","):[],a.trunk=b})["catch"](function(a){console.error(a),g.path("/tools/trunks/list")})},a.updateTrunk=function(){""===a.trunk.password&&delete a.trunk.password;var b=angular.copy(a.trunk);return b.nat=b.nat.join(","),b.allow=b.allow.join(";"),b.insecure=b.insecure.join(","),b.transport=b.transport.join(","),h.update({id:e.id},b).$promise.then(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(a){c.show(a.data.message,"danger")})},a.getContexts=function(){return i.get().$promise.then(function(b){a.voiceContexts=b.rows})["catch"](function(a){c.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.view",{url:"/view/:id",templateUrl:"app/tools/trunk/view/view.html",controller:"TrunkViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.trunks.view.settings",{url:"/settings",templateUrl:"app/tools/trunk/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TrunkWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={context:"from-voip-provider"}},a.next=function(d){d?b.post("/api/trunks/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_TRUNK"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")}):c.wizard().next()},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/trunks/",a.item).success(function(){d.path("/tools/trunks/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.trunks.wizard",{url:"/wizard",templateUrl:"app/tools/trunk/wizard/wizard.html",controller:"TrunkWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VariableListCtrl",["$scope","$uibModal","Variable","gridOptions",function(a,b,c,d){a.initView=function(){var b={exporterCsvFilename:"variables.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:160,buttons:[{"class":"blue-hoki",href:"/tools/variables/view/{{row.entity.id}}/settings",name:"settings"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(c,b,a)},a.createItem=function(){var c=b.open({animation:!0,templateUrl:"app/tools/variable/list/list.create.modal.html",controller:"VariableListCreateCtrl"});c.result.then(function(b){console.log(b),a.gridOptions.getPage()})}}]),angular.module("xCallyShuttleApp").controller("VariableListCreateCtrl",["$scope","$translate","$uibModalInstance","Variable","xAlert",function(a,b,c,d,e){a.form={},a.item={},a.save=function(){return d.save(a.item).$promise.then(function(a){e.show(b.instant("MESSAGE_WELL_DONE"),"success"),c.close(a)})["catch"](function(a){e.show(a.data.message,"danger")})},a.cancel=function(){c.dismiss()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables.list",{url:"/list",templateUrl:"app/tools/variable/list/list.html",controller:"VariableListCtrl"})}]),angular.module("xCallyShuttleApp").factory("Variable",["$resource",function(a){return a("/api/variables/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables",{url:"/variables",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VariableViewCtrl",["$scope","$translate","$stateParams","xAlert","Variable",function(a,b,c,d,e){a.getVariable=function(){return e.get({id:c.id}).$promise.then(function(b){a.variable=b})["catch"](function(a){d.show(a.data.message,"danger");
+})},a.updateVariable=function(){return e.update({id:c.id},a.variable).$promise.then(function(){d.show(b.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){d.show(a.data.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.variables.view",{url:"/view/:id",templateUrl:"app/tools/variable/view/view.html",controller:"VariableViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.variables.view.settings",{url:"/settings",templateUrl:"app/tools/variable/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCloneModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCtrl",["$scope","$http","$translate","xAlert","Modal","$uibModal","$log","YourDashboard","gridOptions",function(a,b,c,d,e,f,g,h,i){a.initView=function(){var b={exporterCsvFilename:"voice_contexts.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:220,buttons:[{"class":"green",href:"/tools/yourdashboards/show/{{row.entity.id}}",name:"view"},{"class":"blue-hoki",href:"/tools/yourdashboards/view/{{row.entity.id}}/settings",name:"settings"},{"class":"{{row.entity.defaultEntry ? 'red-sunglo disabled' : 'red-sunglo'}}",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"},{"class":"purple",name:"clone",onClick:"grid.appScope.clone(row.entity.id)"}]}]};a.gridOptions=i.gridOptions(h,b,a)},a.create=function(){var b=f.open({animation:!0,templateUrl:"app/tools/yourdashboard/list/create.modal.html",controller:"YourdashboardListCreateModalCtrl"});b.result.then(function(b){return h.save(b).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),a.gridOptions.getPage()})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})},a.clone=function(b){var e=f.open({animation:!0,templateUrl:"app/tools/yourdashboard/list/clone.modal.html",controller:"YourdashboardListCloneModalCtrl"});e.result.then(function(e){return h.save({id:b,controller:"clone"},e).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE"),"success"),a.gridOptions.getPage()})["catch"](function(a){console.error(a),d.show(a.message,"danger")})},function(){g.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards.list",{url:"/list",templateUrl:"app/tools/yourdashboard/list/list.html",controller:"YourdashboardListCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardShowCtrl",["$scope","localStorageService","$http","xAlert","$translate","Auth","$stateParams","$location",function(a,b,c,d,e,f,g,h){a.Auth=f,a.getDashboard=function(){c.get("/api/dashboards/"+g.id).success(function(b){var c={name:"dashboard",structure:"4-8",enableconfirmdelete:!0,maximizable:!0,collapsible:!0};b.model=JSON.parse(b.model),b.editable=!(!f.isAdmin()||!b.editable),a.dashboard=_.merge(c,b)}).error(function(a){h.path("/tools/yourdashboards/list")})};var i=function(b,f,h){var i=angular.copy(a.dashboard);i.name=a.dashboard.model.title,i.model=JSON.stringify(i.model),c.put("/api/dashboards/"+g.id,i).success(function(){d.show(e.instant("MESSAGE_DASHBOARD_SAVED")+"!","success")}).error(function(b){d.show(b.message,"danger"),i.model=JSON.parse(i.model),i.name="dashboard",a.dashboard=i})};a.$on("adfDashboardChanged",i),a.$on("destroy",function(){console.log("main dashboard")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards.show",{url:"/show/:id",templateUrl:"app/tools/yourdashboard/show/show.html",controller:"YourdashboardShowCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.radioSwitch={isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.getDashboard=function(){b.get("/api/dashboards/"+e.id).success(function(b){delete b.model,a.dashboard=b}).error(function(a){f.path("/tools/yourdashboards/list")})},a.updateDashboard=function(){var f=angular.copy(a.dashboard);b.put("/api/dashboards/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.dashboard=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards.view",{url:"/view/:id",templateUrl:"app/tools/yourdashboard/view/view.html",controller:"YourdashboardViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tools.yourdashboards.view.settings",{url:"/settings",templateUrl:"app/tools/yourdashboard/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").factory("YourDashboard",["$resource",function(a){return a("/api/dashboards/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tools.yourdashboards",{url:"/yourdashboards",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskListCtrl",["$scope","ZendeskAccount","gridOptions","xAlert","$translate",function(a,b,c,d,e){a.initView=function(){var d={exporterCsvFilename:"zendesk_account.csv",columnDefs:[{name:"name",displayName:"APPLICATION_NAME"},{name:"username"},{name:"remoteUri",displayName:"APPLICATION_REMOTE_ADDRESS"},{name:"action",width:250,buttons:[{"class":"blue-hoki",href:"/zendesk/view/{{row.entity.id}}/account",name:"profile"},{"class":"green-jungle",name:"check",displayName:"APPLICATION_CHECK_CONNECTION",onClick:"grid.appScope.checkAccount(row.entity.id)"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=c.gridOptions(b,d,a)},a.checkAccount=function(a){return b.check({id:a}).$promise.then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.list",{url:"/list",templateUrl:"app/zendesk/list/list.html",controller:"ZendeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations",{url:"/configurations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewConfigurationListCtrl",["$scope","$stateParams","$translate","gridOptions","ZendeskConfiguration","$uibModal","xAlert",function(a,b,c,d,e,f,g){a.initView=function(){var c={exporterCsvFilename:"zendesk_configurations.csv",columnDefs:[{name:"name"},{name:"description"},{name:"action",width:125,buttons:[{"class":"blue-hoki",href:"/zendesk/view/{{row.entity.AccountId}}/configurations/view/{{row.entity.id}}",name:"profile"},{"class":"red-sunglo",name:"delete",onClick:"grid.appScope.deleteItem(row.entity.name, row.entity.id)"}]}]};a.gridOptions=d.gridOptions(e,c,a,{accountId:b.id})},a.createItem=function(){var c=f.open({animation:!0,templateUrl:"app/zendesk/view/configuration/list/create.modal.html",controller:["$scope","$uibModalInstance",function(a,b){a.form={},a.item={},a.ok=function(){b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]});c.result.then(function(c){return e.save({accountId:b.id},c).$promise.then(function(){a.gridOptions.getPage()})["catch"](function(a){g.show(a.data.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations.list",{url:"/list",templateUrl:"app/zendesk/view/configuration/list/list.html",controller:"ZendeskViewConfigurationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewConfigurationViewCtrl",["$scope","$stateParams","$filter","$translate","socket","ZendeskConfiguration","xAlert","variable","Variable","ZendeskAccount","Tag","ZendeskField",function(a,b,c,d,e,f,g,h,i,j,k,l){a.$on("$destroy",function(){e.unsyncUpdates("zendesk_field")}),a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:300,scrollInertia:0},a.fieldType=[{type:"string",title:"String"},{type:"variable",title:"Variable"},{type:"customVariable",title:"Custom Variable"}],a.descFieldType=[{type:"string",title:"String"},{type:"keyValue",title:"Key Value"}],a.initView=function(){a.configurationName="",a.subjectConfig=[],a.descriptionConfig=[],a.fieldConfig=[],a.selectedTags={tags:[]},a.variables=h},a.getConfiguration=function(){return f.get({accountId:b.id,id:b.configurationId}).$promise.then(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,a.selectedTags={tags:_.map(b.Tags,function(a){return a.id})},e.socket.on("zendesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})})["catch"](function(a){g.show(a.message,"danger")})},a.getCustomVariables=function(){return i.get().$promise.then(function(b){a.customVariables=b.rows})["catch"](function(a){g.show(a.message,"danger")})},a.getFields=function(){return j.fields({id:b.id}).$promise.then(function(b){a.accountFields=c("zendesk")(b)})["catch"](function(a){g.show(a.message,"danger")})},a.getTags=function(){return k.get().$promise.then(function(b){a.tags=b.rows})["catch"](function(a){g.show(a.message,"danger")})},a.addItem=function(c){switch(c){case"subject":case"description":var d={type:"string",content:""};break;case"field":var d={content:""}}return f.save({accountId:b.id,id:b.configurationId,controller:c},d).$promise.then(function(b){switch(c){case"subject":a.subjectConfig.push(b);break;case"description":a.descriptionConfig.push(b);break;case"field":a.fieldConfig.push(b)}})["catch"](function(a){g.show(a.data.message,"danger")})},a.changeType=function(b){"variable"===b.type?(b.content="",b.variableName=""):"string"===b.type?(b.VariableId=null,b.variableName=""):"customVariable"===b.type&&(b.VariableId=null,b.content=""),a.updateField(b)},a.updateField=function(a){return l.update({accountId:b.id,configurationId:b.configurationId,id:a.id},a).$promise.then(function(){})["catch"](function(){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.removeItem=function(a){return l["delete"]({accountId:b.id,configurationId:b.configurationId,id:a.id}).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE")+"!","success")})["catch"](function(){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.changeDescType=function(b){"keyValue"===b.type?(b.content="","string"===b.keyType?(b.VariableId=null,b.variableName=""):"variable"===b.keyType?(b.keyContent="",b.VariableId=null):"customVariable"===b.keyType&&(b.keyContent="",b.variableName="")):"string"===b.type&&(b.VariableId=null,b.variableName="",b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){if(b.content="",b.variableName="",b.nameField="",b.VariableId=null,b.idField){var c=_.find(a.accountFields,"id",b.idField);c&&(c.system_field_options?(b.customField=!1,b.nameField=c.title.toLowerCase()):b.customField=!0)}a.updateField(b)},a.updateTags=function(){return f.update({accountId:b.id,id:b.configurationId,controller:"tags"},a.selectedTags.tags).$promise.then(function(){g.show(d.instant("MESSAGE_WELL_DONE")+".","success")})["catch"](function(a){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.system_field_options?c.system_field_options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view.configurations.view",{url:"/view/:configurationId",templateUrl:"app/zendesk/view/configuration/view/view.html",controller:"ZendeskViewConfigurationViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewCtrl",["$scope","$stateParams","$translate","xAlert","Modal","ZendeskAccount",function(a,b,c,d,e,f){a.initView=function(){return f.get({id:b.id}).$promise.then(function(b){a.account=b})["catch"](function(a){d.show(a.message,"danger")})},a.updateItem=function(){return f.update({id:b.id},a.account).$promise.then(function(){d.show(c.instant("MESSAGE_WELL_DONE")+".","success")})["catch"](function(){d.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view",{url:"/view/:id",templateUrl:"app/zendesk/view/view.html",controller:"ZendeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.zendesk.view.account",{url:"/account",templateUrl:"app/zendesk/view/view.account.html"})}]),angular.module("xCallyShuttleApp").controller("ZendeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler","ZendeskAccount",function(a,b,c,d,e,f,g){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.authType="password"},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){return g.save(a.item).$promise.then(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/zendesk/list")})["catch"](function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.wizard",{url:"/wizard",templateUrl:"app/zendesk/wizard/wizard.html",controller:"ZendeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").factory("ZendeskAccount",["$resource",function(a){return a("/api/zendesk/accounts/:id/:controller",{id:"@id"},{update:{method:"PUT"},fields:{params:{controller:"fields"},isArray:!0},check:{params:{controller:"check"}}})}]).factory("ZendeskConfiguration",["$resource",function(a){return a("/api/zendesk/accounts/:accountId/configurations/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]).factory("ZendeskField",["$resource",function(a){return a("/api/zendesk/accounts/:accountId/configurations/:configurationId/fields/:id/:controller",{id:"@id"},{update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk",{url:"/zendesk",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").service("application",function(){var a={applications:[{name:"Queue",value:"Queue"},{name:"Playback",value:"Playback"},{name:"Dial",value:"Dial"},{name:"Cally-Square IVR",value:"AGI"},{name:"GoTo",value:"Goto"},{name:"Hangup",value:"Hangup"},{name:"Set",value:"Set"},{name:"Custom",value:"custom"},{name:"VoiceMail",value:"Voicemail"}],queueOptions:[{value:"C",name:"APPLICATION_QUEUE_OPTION_C"},{value:"c",name:"APPLICATION_QUEUE_OPTION_c"},{value:"d",name:"APPLICATION_QUEUE_OPTION_d"},{value:"F",name:"APPLICATION_QUEUE_OPTION_F"},{value:"h",name:"APPLICATION_QUEUE_OPTION_h"},{value:"H",name:"APPLICATION_QUEUE_OPTION_H"},{value:"n",name:"APPLICATION_QUEUE_OPTION_n"},{value:"i",name:"APPLICATION_QUEUE_OPTION_i"},{value:"I",name:"APPLICATION_QUEUE_OPTION_I"},{value:"r",name:"APPLICATION_QUEUE_OPTION_r"},{value:"R",name:"APPLICATION_QUEUE_OPTION_R"},{value:"t",name:"APPLICATION_QUEUE_OPTION_t"},{value:"T",name:"APPLICATION_QUEUE_OPTION_T"},{value:"w",name:"APPLICATION_QUEUE_OPTION_w"},{value:"W",name:"APPLICATION_QUEUE_OPTION_W"},{value:"k",name:"APPLICATION_QUEUE_OPTION_k"},{value:"K",name:"APPLICATION_QUEUE_OPTION_K"},{value:"x",name:"APPLICATION_QUEUE_OPTION_x"},{value:"X",name:"APPLICATION_QUEUE_OPTION_X"}],audioOptions:[{value:"skip",name:"APPLICATION_PLAYBACK_OPTION_SKIP"},{value:"noanswer",name:"APPLICATION_PLAYBACK_OPTION_NOANSWER"},{value:"j",name:"APPLICATION_PLAYBACK_OPTION_J"},{value:"say",name:"APPLICATION_PLAYBACK_OPTION_SAY"}],hangupCauses:[{value:"",name:"--"},{value:"1",name:"APPLICATION_HANGUP_CAUSE_1"},{value:"16",name:"APPLICATION_HANGUP_CAUSE_16"},{value:"17",name:"APPLICATION_HANGUP_CAUSE_17"},{value:"18",name:"APPLICATION_HANGUP_CAUSE_18"},{value:"21",name:"APPLICATION_HANGUP_CAUSE_21"},{value:"22",name:"APPLICATION_HANGUP_CAUSE_22"},{value:"27",name:"APPLICATION_HANGUP_CAUSE_27"},{value:"38",name:"APPLICATION_HANGUP_CAUSE_38"},{value:"41",name:"APPLICATION_HANGUP_CAUSE_41"}],intTypes:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"custom",name:"APPLICATION_CUSTOM"},{value:"list",name:"APPLICATION_FROM_LIST"}],checkUnderscore:function(a){return 0===a.indexOf("_")?a:"_"+a}};return{application:a}}),angular.module("xCallyShuttleApp").factory("Auth",["$location","$rootScope","$http","User","$cookieStore","$q",function(a,b,c,d,e,f){var g={};return e.get("token")&&(g=d.me()),{login:function(a,h){var i=h||angular.noop,j=f.defer();return c.post("/auth/local",{name:a.name,password:a.password,remember:a.remember}).success(function(a){return e.put("role",a.role),e.put("token",a.token),e.put("userId",a.userId),g=d.me({},function(){b.$broadcast("login")}),j.resolve(a),i()}).error(function(a){return this.logout(),j.reject(a),i(a)}.bind(this)),j.promise},loginWithToken:function(a,b,c){e.put("token",a),e.put("userId",b),e.put("name",c),g=d.me()},logout:function(){c.put("/api/users/"+g.id,{online:!1}).success(function(){e.remove("role"),e.remove("token"),e.remove("userId"),g={},b.$broadcast("logout")}).error(function(a){return a})},createUser:function(a,b){var c=b||angular.noop;return d.save(a,function(b){return e.put("token",b.token),g=d.me(),c(a)},function(a){return this.logout(),c(a)}.bind(this)).$promise},changePassword:function(a,b,c){var e=c||angular.noop;return d.changePassword({id:g.id},{oldPassword:a,newPassword:b},function(a){return e(null,a)},function(a){return e(a)}).$promise},getCurrentUser:function(){return g},isLoggedIn:function(){return g.hasOwnProperty("role")},isLoggedInAsync:function(a){g.hasOwnProperty("$promise")?g.$promise.then(function(){a(!0)})["catch"](function(){a(!1)}):a(g.hasOwnProperty("role")?!0:!1)},isAdmin:function(){return"admin"===(e.get("role")||g.role)||"user"===(e.get("role")||g.role)},getRole:function(){return g.role},getToken:function(){return e.get("token")},getUserId:function(){return console.log(e.get("userId")),e.get("userId")},getName:function(){return e.get("name")}}}]),angular.module("xCallyShuttleApp").service("automations",function(){var a={voice:{conditions:[],actions:[]},mail:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]},chat:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]},fax:{conditions:[{name:"APPLICATION_STATUS",value:"status",type:"select",arr:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",type:"input",operators:[{value:"greater_or_equal",name:"APPLICATION_GTE_TO"},{value:"less_or_equal",name:"APPLICATION_LTE_TO"},{value:"greater",name:"APPLICATION_GREATER_THAN"},{value:"less",name:"APPLICATION_LESS_THAN"}]}],actions:[{name:"APPLICATION_STATUS",value:"status"}]}},b=["voice","mail","chat","fax"];return{services:a,channels:b}}),angular.module("xCallyShuttleApp").service("desk_com",function(){var a=[{id:"priority",label:"Priority",custom:!1,data:{choices:[1,2,3,4,5,6,7,8,9,10]}},{id:"status",label:"Status",custom:!1,data:{choices:["new","open","pending","resolved","closed"]}},{id:"type",label:"Type",custom:!1,data:{choices:["chat","twitter","email","qna","facebook","phone"]}}];return{fields:a}}),angular.module("xCallyShuttleApp").controller("FooterController",["$scope","$http",function(a,b){a.year=moment().year(),a.$on("$includeContentLoaded",function(){Layout.initFooter()}),a.initFooter=function(){b.get("/api/settings/info").success(function(b){a.info=b}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("HeaderController",["$scope","$rootScope","$location","$state","$http","$notification","Auth","xAlert","socket","ngAudio","settings","toastr","localStorageService","MailReport","ChatReport",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){a.toggleQuickSidebar=function(){k.layout.pageQuickSidebarOpened=!k.layout.pageQuickSidebarOpened,k.layout.pageQuickSidebarOpened||m.remove("chatRoomId")},a.toogleSidebar=function(){k.layout.pageSidebarClosed=!k.layout.pageSidebarClosed,m.set("sidebarClosed",k.layout.pageSidebarClosed)},a.initHeader=function(){var c=j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3"),d={};"agent"===g.getCurrentUser().role&&(i.socket.on("report_mail:save",function(a){c.play();var d=f("MAIL CHANNEL",{icon:"assets/images/media/channels/mail64.png",body:"NEW Incoming Mail Message!",delay:1e3*a.timeslot});d.$on("click",function(){return n.get({id:a.id,controller1:"accept",controller2:a.uniqueid}).$promise.then(function(){h.show("Mail properly assigned","success"),b.$broadcast("mailMessageEvent",{message:"Mail properly assigned.."})})["catch"](function(a){h.show(a.data.message,"danger")})})}),i.socket.on("report_chat:save",function(a){c.play(),d[a.uniqueid]&&(d[a.uniqueid].close(),delete d[a.uniqueid]),d[a.uniqueid]=f("CHAT CHANNEL",{icon:"assets/images/media/channels/chat64.png",body:"NEW Incoming Chat Visitor!",delay:1e3*a.timeslot}),d[a.uniqueid].$on("click",function(){return o.get({id:a.id,controller1:"accept",controller2:a.uniqueid}).$promise.then(function(){h.show("Chat properly assigned","success"),b.$broadcast("mailMessageEvent",{message:"Chat properly assigned.."})})["catch"](function(a){h.show(a.data.message,"danger")})})}),i.socket.on("chat_message:save",function(a){c.play();var d=m.get("chatRoomId");if((!d||d!==a.ChatRoomId)&&a.UserId&&a.UserId!==g.getCurrentUser().id){var e=f(a.User.fullname,{icon:"assets/images/media/channels/chat64.png",body:a.body.length>35?a.body.substring(0,35)+"...":a.body,delay:1e4});e.$on("click",function(){b.$broadcast("chatMessageEvent",{chatRoomId:a.ChatRoomId})})}}),i.socket.on("user_has_chat_room:save",function(a){c.play(),b.$broadcast("chatGroupEvent",a)})),e({url:"/api/fax/user_has_queues",method:"GET",params:{UserId:g.getCurrentUser().id}}).success(function(b){a.faxQueues=_.map(b,"FaxQueueId"),a.faxQueues.forEach(function(a){i.socket.on("FAX:QUEUE:"+a,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}),i.socket.on("FAX:AGENT:"+g.getCurrentUser().id,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}).error(function(a){console.error(a)}),i.socket.on("user_has_fax_queue:save",function(b){b=_.map(b,function(a){return a.UserId=parseInt(a.UserId,10),a}),b=_.find(b,{UserId:g.getCurrentUser().id}),b&&-1===_.indexOf(a.faxQueues,b.FaxQueueId)&&(a.faxQueues.push(b.FaxQueueId),i.socket.on("FAX:QUEUE:"+b.FaxQueueId,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})}))}),i.socket.on("user_has_fax_queue:remove",function(b){_.indexOf(b.where.UserId,g.getCurrentUser().id.toString())>=0&&_.indexOf(a.faxQueues,b.where.FaxQueueId)>=0&&(a.faxQueues=_.remove(a.faxQueues,b.where.FaxQueueId),i.socket.removeAllListeners("FAX:QUEUE:"+b.where.FaxQueueId))})},a.logout=function(){e.get("/auth/local/logout").success(function(){g.logout(),c.path("/login")}).error(function(a){console.error(a)})},a.isActive=function(a){return a===c.path()}}]),angular.module("xCallyShuttleApp").service("interval",function(){var a={months:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"jan",name:"APPLICATION_JANUARY"},{value:"feb",name:"APPLICATION_FEBRUARY"},{value:"mar",name:"APPLICATION_MARCH"},{value:"apr",name:"APPLICATION_APRIL"},{value:"may",name:"APPLICATION_MAY"},{value:"jun",name:"APPLICATION_JUNE"},{value:"jul",name:"APPLICATION_JULY"},{value:"aug",name:"APPLICATION_AUGUST"},{value:"sep",name:"APPLICATION_SEPTEMBER"},{value:"oct",name:"APPLICATION_OCTOBER"},{value:"nov",name:"APPLICATION_NOVEMBER"},{value:"dec",name:"APPLICATION_DECEMBER"}],daysOfWeek:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"mon",name:"APPLICATION_MONDAY"},{value:"tue",name:"APPLICATION_TUESDAY"},{value:"wed",name:"APPLICATION_WEDNESDAY"},{value:"thu",name:"APPLICATION_THURSDAY"},{value:"fri",name:"APPLICATION_FRIDAY"},{value:"sat",name:"APPLICATION_SATURDAY"},{value:"sun",name:"APPLICATION_SUNDAY"}],daysOfMonth:["always",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]};return{interval:a}}),angular.module("xCallyShuttleApp").factory("Modal",["$rootScope","$uibModal",function(a,b){function c(c,d){console.log("openModal",d);var e=a.$new();return c=c||{},d=d||"modal-default",angular.extend(e,c),b.open({templateUrl:"components/modal/delete.html",windowClass:d,scope:e})}return{confirm:{"delete":function(a){return a=a||angular.noop,function(){console.log(Array.prototype.slice.call(arguments));var b,d=Array.prototype.slice.call(arguments),e=d.shift();b=c({modal:{dismissable:!0,title:"Confirm Delete",html:"<p>Are you sure you want to delete"+(e?"<strong> "+e+"</strong>":" selected items")+"?</p>",buttons:[{classes:"btn red",text:"Delete",click:function(a){b.close(a)}},{classes:"btn default",text:"Cancel",click:function(a){b.dismiss(a)}}]}},"over-topbar center"),b.result.then(function(b){a.apply(b,d)})}}}}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerAddModal",["$scope","$uibModalInstance","Agent","items",function(a,b,c,d){a.items=d,a.agents=c.get(function(b){a.agents=b,a.items.forEach(function(b){_.remove(a.agents.rows,{id:b.id})})}),a.selected={items:[]},a.modal={title:"APPLICATION_AGENTS_SELECTION"},a.ok=function(){b.close(_.union(_.map(a.selected.items,"id"),_.map(a.items,"id")))},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerCloseModal",["$scope","$uibModalInstance",function(a,b){a.modal={title:"APPLICATION_CONFIRM_CLOSE",text:"MESSAGE_ARE_YOU_SURE_YOU_WANT_TO_CLOSE_THE_CHAT"},a.ok=function(){b.close()},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarController",["$scope","$rootScope","$window","$http","$uibModal","$log","$timeout","$interval","Auth","Agent","User","ChatRoom","ChatMessage","socket","settings","localStorageService","xAlert","$translate","QuickSidebarFactory",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){a.emojiMessage={},a.options=s.options,a.message={body:"",user:""};var t=a.currentUser=i.getCurrentUser(),u=function(b){switch(a.messagesTab=!0,o.layout.pageQuickSidebarOpened=!0,p.set("chatRoomId",b.id),p.set("messagesTab",a.messagesTab),a.chatRoom=b,b.type){case"internal":a.currentTab=0;break;case"external":a.currentTab=2,_.find(a.chatRooms,{id:b.id})||a.chatRooms.push(b)}b.Users.length>2&&(a.currentTab=3),g(function(){angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last")},1500)},v=function(a){console.error(a)};a.$on("$includeContentLoaded",function(){p.get("chatRoomId")&&l.get({id:p.get("chatRoomId")},u,v),p.get("currentTab")&&(a.currentTab=p.get("currentTab"))}),a.agents=j.get({offset:0,limit:1e3},function(){n.syncUpdates("agent",a.agents.rows)}),a.users=k.get({offset:0,limit:1e3},function(){n.syncUpdates("user",a.users.rows)}),a.currentTab=0,a.messagesTab=!1,a.chatRooms=l.me(function(b){a.chatRooms=b},function(a){console.error(a)}),n.socket.on("report_chat:assignment",function(a){a.agentid&&l.get({id:a.chatroomid},u,v)}),n.socket.on("chat_room:save",function(b){if(a.chatRoom&&a.chatRoom.id===b.id){_.merge(a.chatRoom,b);var c=_.find(a.chatRooms,{id:b.id});c&&_.merge(c,b)}}),n.socket.on("chat_message:save",function(b){a.chatRoom&&a.chatRoom.id===b.ChatRoomId&&(a.chatRoom.ChatMessages.push(b),angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last"))}),n.socket.on("user_has_chat_room:save",function(b){var c=_.findIndex(a.chatRooms,{id:b.id});c>=0?a.chatRooms[c]=b:a.chatRooms.push(b)}),b.$on("chatMessageEvent",function(a,b){l.get({id:b.chatRoomId},u,v)}),b.$on("chatGroupEvent",function(b,c){a.currentTab=3,a.messagesTab=!0,o.layout.pageQuickSidebarOpened=!0,a.chatRoom=c}),a.goToTab=function(b){a.currentTab=b,a.messagesTab=!1,a.chatRoom=null,p.set("currentTab",a.currentTab),p.set("messagesTab",a.messagesTab),p.remove("chatRoomId")},a.goToMessage=function(a,b){a?l.users({users:[t.id,a]},u,v):l.get({id:b},u,v)},a.sendMessage=function(){a.message.body.trim().length&&m.save({ChatRoomId:a.chatRoom.id,body:a.message.body},function(){
+a.message.body=""},function(a){console.error(a)})},a.goBack=function(){a.messagesTab=!1,a.chatRoom=null,p.set("messagesTab",a.messagesTab),p.remove("chatRoomId")},a.closeChatRoom=function(a,b){var c=e.open({animation:!0,size:b,templateUrl:"components/quickSidebar/modal/close.html",controller:"QuickSidebarControllerCloseModal"});c.result.then(function(){l.update({id:a,status:"CLOSED",completeReason:"agent"}).$promise.then(function(){q.show(r.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){q.show(a.data.message,"danger")})})},a.addAgent=function(b,c){var f=e.open({animation:!0,size:c,templateUrl:"components/quickSidebar/modal/add.html",controller:"QuickSidebarControllerAddModal",resolve:{items:function(){return _.map(a.chatRoom.Users?a.chatRoom.Users:[],function(a){return{id:a.id,fullname:a.fullname}})}}});f.result.then(function(a){d.put("/api/chat/rooms/"+b+"/users",{users:a}).then(function(){q.show(r.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){q.show(a.data.message,"danger")})})};var w=function(){var b=angular.element(c),d=function(){return{h:b.height(),w:b.width()}};a.$watch(d,function(b){a.style={height:b.h-46-46-46+"px"},a.style2={height:b.h-46-46-46-180+"px"}},!0),b.bind("resize",function(){a.$apply()})};w(),a.$on("$destroy",function(){n.unsyncUpdates("agent"),n.unsyncUpdates("user")})}]),angular.module("xCallyShuttleApp").directive("resizeQuickSidebar",["$window",function(a){return function(b){var c=angular.element(a);b.getWindowDimensions=function(){return{h:c.height(),w:c.width()}},b.$watch(b.getWindowDimensions,function(a){b.style={height:a.h-46-46-46+"px"}},!0),c.bind("resize",function(){b.$apply()})}}]),angular.module("xCallyShuttleApp").factory("QuickSidebarFactory",function(){return{options:{link:!0,linkTarget:"_blank",pdf:{embed:!1},image:{embed:!0},audio:{embed:!0},code:{highlight:!0,lineNumbers:!1},basicVideo:!1,video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,ytAuthKey:"_nkO9h1A7HlVyiUICO17oA"}}}}),angular.module("xCallyShuttleApp").filter("QuickSidebarFilterUsersGreaterThan",function(){return function(a,b){var c=[];return a.forEach(function(a){var d=0;a.ChatVisitor&&d++,d+=a.Users.length,d>b&&c.push(a)}),c}}).filter("QuickSidebarFilterUsersLowerThan",function(){return function(a,b){var c=[];return a.forEach(function(a){a.Users.length<b&&c.push(a)}),c}}),angular.module("xCallyShuttleApp").controller("SidebarController",["$scope","$rootScope","$resource","$location","Auth","$http","xAlert","$stateParams","socket",function(a,b,c,d,e,f,g,h,i){a.Auth=e,a.$stateParams=h,a.$on("$includeContentLoaded",function(){Metronic.init(),Layout.initSidebar()}),a.isAssociated=function(a){if(e.isAdmin())return!0;if(e.getCurrentUser().Modules)for(var b=0;b<e.getCurrentUser().Modules.length;b++)if(e.getCurrentUser().Modules[b].name===a)return!0;return!1},a.getSidebarDashboards=function(){f.get("/api/dashboards").then(function(b){a.dashboards=b.data.rows,i.syncUpdates("dashboard",a.dashboards)})["catch"](function(a){g.show("Error loading your dashboards","danger")})},a.getSidebarIntegrations=function(){f.get("/api/integrations").success(function(b){a.integrations=b.rows,i.syncUpdates("integration",a.integrations)}).error(function(a){g.show(a.message,"danger")})},a.isActive=function(a){return a===d.path()},a.$on("destroy",function(){i.unsyncUpdates("dashboard"),i.unsyncUpdates("integration")})}]),angular.module("xCallyShuttleApp").factory("socket",["$rootScope","$window","socketFactory","Auth",function(a,b,c,d){var e=d.getCurrentUser(),f=io("",{query:"token="+d.getToken()+"&userId="+(e.id||d.getUserId())+"&name="+(e.name||d.getName())+"&role="+(e.role||"agent")+"&source=browser",path:"/socket.io-client"}),g=c({ioSocket:f});return a.$on("logout",function(){g&&(g.disconnect(!0),b.location.reload())}),{socket:g,syncUpdates:function(a,b,c){c=c||angular.noop,g.on(a+":save",function(a){var d=_.find(b,{id:a.id}),e=b.indexOf(d),f="created";d?(_.merge(b[e],a),f="updated"):b.unshift(a),c(f,a,b)}),g.on(a+":remove",function(a){var d="deleted";_.remove(b,{id:a.id}),c(d,a,b)})},unsyncUpdates:function(a){g.removeAllListeners(a+":save"),g.removeAllListeners(a+":remove")},syncUpdatesByAttributes:function(a,b,c,d){d=d||angular.noop,g.on(a+":save",function(a){var e=!0;if(_.forIn(b,function(b,c){return a[c]&&a[c]===b?!0:e=!1}),e){var f=_.find(c,{id:a.id}),g=c.indexOf(f),h="created";f?(_.merge(c[g],a),h="updated"):c.unshift(a),d(h,a,c)}}),g.on(a+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},syncMailMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncMailMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")},syncFaxMessageUpdates:function(a,b,c,d){d=d||angular.noop,g.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),g.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncFaxMessageUpdates:function(a,b){g.removeAllListeners(a+":"+b+":save"),g.removeAllListeners(a+":"+b+":remove")}}}]),angular.module("xCallyShuttleApp").service("triggers",["VoiceQueue",function(a){var b={voice:{conditions:[{name:"APPLICATION_QUEUE",value:"queue",type:"select",resource:a,resValue:"name",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_CALL_STATUS",value:"lastevent",type:"select",arr:[{name:"called",value:"called"},{name:"connect",value:"connect"},{name:"complete",value:"complete"},{name:"rejected",value:"rejected"},{name:"abandoned",value:"abandoned"}],operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]}],actions:[{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"},{name:"APPLICATION_INTEGRATIONS",value:"integration",propertyField:"select"}]},mail:{conditions:[{name:"APPLICATION_FROM",value:"from",type:"input",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_CC",value:"cc",type:"input",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]},{name:"APPLICATION_SUBJECT",value:"subject",type:"input",operators:[{value:"equals",name:"APPLICATION_EQUALS_TO"},{value:"not_equals",name:"APPLICATION_NOT_EQUALS_TO"}]}],actions:[{name:"APPLICATION_TEMPLATE",value:"template"},{name:"APPLICATION_CONTACT_MANAGER",value:"contactManager"}]},chat:{conditions:[],actions:[]},fax:{conditions:[],actions:[]}},c=["voice","mail","chat","fax"];return{services:b,channels:c}}]),angular.module("xCallyShuttleApp").service("variable",function(){var a=[{title:"Unique ID",name:"uniqueid",group:"voice_queue"},{title:"Caller Number",name:"calleridnum",group:"voice_queue"},{title:"Caller Name",name:"calleridname",group:"voice_queue"},{title:"Queue",name:"queue",group:"voice_queue"},{title:"Called Number",name:"destcalleridnum",group:"voice_queue"},{title:"Called Name",name:"destcalleridname",group:"voice_queue"},{title:"Hold Time",name:"holdtime",group:"voice_queue"},{title:"Talk Time",name:"talktime",group:"voice_queue"},{title:"Connected Time",name:"agentconnectAt",group:"voice_queue"},{title:"Called Time",name:"agentcalledAt",group:"voice_queue"},{title:"DNID",name:"destexten",group:"voice_queue"},{title:"Complete Time",name:"agentcompleteAt",group:"voice_queue"},{title:"No Answer Time",name:"agentringnoanswerAt",group:"voice_queue"}];return a}),function(a,b){angular.module("adf.widget.counter",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("counter",{title:"Single Value",description:"Single Value for db results",templateUrl:"{widgetsPath}/counter/src/view.html",controller:"apiwidgetCounterViewCtrl",edit:{templateUrl:"{widgetsPath}/counter/src/edit.html",controller:"apiwidgetCounterEditCtrl"}})}]).service("apiServiceCounter",["Widget",function(a){return{get:function(b){return a.get({select:b.select,condition:encodeURIComponent(b.condition),table:b.report,controller:"counter"}).$promise.then(function(a){return a})["catch"](function(a){console.log(a)})}}}]).controller("apiwidgetCounterEditCtrl",["$scope",function(a){a.config.reportTables=[{name:"Agents",value:"report_agent"},{name:"Calls",value:"report_call"},{name:"Dials",value:"report_dial"},{name:"Queues",value:"report_queue"},{name:"Users",value:"users"},{name:"Chat Sessions",value:"report_chat_session"},{name:"Mail Sessions",value:"report_mail_session"}],a.config.colors=[{name:"Blue",value:"blue-madison"},{name:"Red",value:"red-intense"},{name:"Green",value:"green-haze"},{name:"Purple",value:"purple-plum"},{name:"Orange",value:"yellow-casablanca"},{name:"Yellow",value:"yellow-crusta"}],a.config.icons=[{name:"Talk bubbles",value:"fa-comments"},{name:"Bar Chart",value:"fa-bar-chart"},{name:"Shopping Cart",value:"fa-shopping-cart"},{name:"Globe",value:"fa-globe"}],a.config.select=a.config.select?a.config.select:"COUNT(*)",a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE"}]).controller("apiwidgetCounterViewCtrl",["$scope","$interval","apiServiceCounter",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.condition=a.config.condition?a.config.condition:null,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE",a.counterApiCall=function(){a.config.report&&c.get(a.config).then(function(b){b?b.result&&b.result.length>1||_.keys(b.result[0]).length>1?(a.tooManyResults=!0,a.result=null):(a.tooManyResults=!1,null!==_.values(b.result[0])[0]?a.result=_.values(b.result[0])[0].toString():a.result="--"):a.result=null})},a.counterApiCall();var d=b(function(){a.counterApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.counter").run(["$templateCache",function(a){a.put("{widgetsPath}/counter/src/edit.html","<form role=form><div class=form-group><label for=select>Select</label> <input type=text class=form-control id=condition ng-model=config.select placeholder=Select></div><div class=form-group><label class=control-label>From</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder=From>{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"report.value as report in config.reportTables | filter: $select.search\"><div ng-bind-html=\"report.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>Where</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder=Where></div><div class=form-group><label for=condition>{{'APPLICATION_REFRESH_TIMEOUT' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder=\"{{'APPLICATION_REFRESH_TIMEOUT' | translate}}\" min=1></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_COLOR' | translate}}</label><ui-select data-ng-model=config.color name=color theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_COLOR' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"color.value as color in config.colors | filter: $select.search\"><div ng-bind-html=\"color.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_ICON' | translate}}</label><ui-select data-ng-model=config.icon name=icon theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_ICON' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"icon.value as icon in config.icons | filter: $select.search\"><div ng-bind-html=\"icon.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_DETAILS' | translate}}</label> <input type=text class=form-control id=details ng-model=config.details maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_DETAILS' | translate}}\"></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK' | translate}}</label> <input type=text class=form-control id=link ng-model=config.link placeholder=http://yourlink></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}</label> <input type=text class=form-control id=linkText ng-model=config.linkText maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}\"></div></form>"),a.put("{widgetsPath}/counter/src/view.html",'<div class=dashboard-stat ng-class=config.color ng-if=result><div class=visual><i class=fa ng-class=config.icon></i></div><div class=details><div class=number>{{result}}</div><div class=desc>{{config.details}}</div></div><a class=more href={{config.link}}>{{config.linkText}} <i class="m-icon-swapright m-icon-white"></i></a></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=tooManyResults><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_TOO_MANY_RESULTS\' | translate}}</div><div class="alert alert-danger" role=alert ng-if="!result && !tooManyResults"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_QUERY_NOT_VALID\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.pie-chart",["adf.provider"]).config(["dashboardProvider",function(a){a.widget("pie-chart",{title:"Pie-Chart",description:"Display a pie-chart starting from DB values",templateUrl:"{widgetsPath}/pie-chart/src/view.html",controller:"apiWidgetPieChartViewCtrl",edit:{templateUrl:"{widgetsPath}/pie-chart/src/edit.html",controller:"apiWidgetPieChartEditCtrl"}})}]).service("apiServicePieChart",["Widget",function(a){return{get:function(b){return a.get({condition:encodeURIComponent(b.condition),table:b.report,fields:b.fields,controller:"piechart"}).$promise.then(function(a){return a})["catch"](function(a){console.log(a)})}}}]).controller("apiWidgetPieChartEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"report_agent"},{name:"Calls",value:"report_call"},{name:"Dials",value:"report_dial"},{name:"Queues",value:"report_queue"},{name:"Users",value:"users"},{name:"Chat Sessions",value:"report_chat_session"},{name:"Mail Sessions",value:"report_mail_session"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetPieChartViewCtrl",["$scope","$interval","apiServicePieChart",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.pieChartApiCall=function(){a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){if(b&&b.result&&1===b.result.length){a.labels=[],a.data=[];for(var c in b.result[0])a.labels.push(c),a.data.push(b.result[0][c])}else a.labels=[],a.data=[]})},a.pieChartApiCall();var d=b(function(){a.pieChartApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.pie-chart").run(["$templateCache",function(a){a.put("{widgetsPath}/pie-chart/src/edit.html",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_FIELDS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div></form>'),a.put("{widgetsPath}/pie-chart/src/view.html",'<div ng-if=labels.length ng-style=config.style><canvas id=doughnut class="chart chart-doughnut" chart-data=data chart-labels=labels legend=true></canvas></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_METRIC_AND_CHECK_OTHER\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.table",["adf.provider"]).value("apiServiceUrlTable","/api/widgets/table").config(["dashboardProvider",function(a){a.widget("table",{title:"Table",description:"Show tabbed results from db",templateUrl:"{widgetsPath}/table/src/view.html",controller:"apiWidgetTableViewCtrl",edit:{templateUrl:"{widgetsPath}/table/src/edit.html",controller:"apiWidgetTableEditCtrl"}})}]).service("apiServiceTable",["$q","$http","apiServiceUrlTable",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetTableEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetTableViewCtrl",["$scope","$interval","apiServiceTable",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.style={"max-height":a.config.height+"px",overflow:"scroll"},a.tableApiCall=function(){a.config.condition&&a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){a.results=b})},a.tableApiCall();var d=b(function(){a.tableApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.table").run(["$templateCache",function(a){a.put("{widgetsPath}/table/src/edit.html",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_METRICS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div><div class=form-group><label for=condition>{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}</label> <input type=number class=form-control id=height ng-model=config.height placeholder="{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}" min=350></div></form>'),a.put("{widgetsPath}/table/src/view.html",'<div ng-if=results ng-style=config.style><table st-table=results class="table table-striped table-bordered table-hover"><div class=table-responsive><thead><tr><th colspan={{config.fields.length}}><div class=row><div class=col-md-6></div><div class=col-md-6><div class="input-group input-medium pull-right"><input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class=form-control type=search> <span class=input-group-addon><i class="fa fa-search"></i></span></div></div></div></th></tr><tr><th ng-repeat="field in config.fields">{{field.alias}}</th></tr></thead><tbody><tr data-ng-repeat="result in results" class=animate-repeat><td ng-repeat="field in config.fields">{{result[field.alias]}}</td></tr><tr data-ng-hide=results.length><td colspan={{config.fields.length}} style=text-align:center;><i>{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</i></td></tr></tbody><tfoot><tr><td colspan={{config.fields.length}} class=text-center><div st-pagination class=pagination st-items-by-page=10 st-displayed-pages=3></div></td></tr></tfoot></div></table></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_FIELD_AND_CHECK_OTHER\' | translate}}</div>')}])}(window),function(){angular.module("pdf",[]).directive("ngPdf",["$window",function(a){return{restrict:"E",templateUrl:function(a,b){return b.templateUrl?b.templateUrl:"partials/viewer.html"},link:function(b,c,d){var e=d.pdfUrl,f=null,g=d.page?d.page:1,h=d.scale>0?d.scale:1,i=c.find("canvas"),j=i[0],k=j.getContext("2d"),l=angular.element(a);l.on("scroll",function(){b.$apply(function(){b.scroll=l[0].scrollY})}),PDFJS.disableWorker=!0,b.pageNum=g,b.renderPage=function(a){f.getPage(a).then(function(a){var e,f,g,i={};"page-fit"!==d.scale||h?e=a.getViewport(h):(e=a.getViewport(1),f=c[0].clientWidth/e.width,g=c[0].clientHeight/e.height,h=Math.min(f,g)),j.height=e.height,j.width=e.width,i={canvasContext:k,viewport:e},a.render(i).promise.then(function(){"function"==typeof b.onPageRender&&b.onPageRender()})})},b.goPrevious=function(){b.pageToDisplay<=1||(b.pageNum=parseInt(b.pageNum)-1)},b.goNext=function(){b.pageToDisplay>=f.numPages||(b.pageNum=parseInt(b.pageNum)+1)},b.zoomIn=function(){return h=parseFloat(h)+.2,b.renderPage(b.pageToDisplay),h},b.zoomOut=function(){return h=parseFloat(h)-.2,b.renderPage(b.pageToDisplay),h},b.changePage=function(){b.renderPage(b.pageToDisplay)},b.rotate=function(){"rotate0"===j.getAttribute("class")?j.setAttribute("class","rotate90"):"rotate90"===j.getAttribute("class")?j.setAttribute("class","rotate180"):"rotate180"===j.getAttribute("class")?j.setAttribute("class","rotate270"):j.setAttribute("class","rotate0")},PDFJS.getDocument(e,null,null,b.onProgress).then(function(a){"function"==typeof b.onLoad&&b.onLoad(),f=a,b.renderPage(b.pageToDisplay),b.$apply(function(){b.pageCount=a.numPages})},function(a){a&&"function"==typeof b.onError&&b.onError(a)}),b.$watch("pageNum",function(a){b.pageToDisplay=parseInt(a),null!==f&&b.renderPage(b.pageToDisplay)})}}}])}();var Metronic=function(){var a,b=!1,c=!1,d=!1,e=!1,f=[],g="assets/",h="img/",i="plugins/",j="css/",k={blue:"#89C4F4",red:"#F3565D",green:"#1bbc9b",purple:"#9b59b6",grey:"#95a5a6",yellow:"#F8CB00"},l=function(){"rtl"===$("body").css("direction")&&(b=!0),c=!!navigator.userAgent.match(/MSIE 8.0/),d=!!navigator.userAgent.match(/MSIE 9.0/),e=!!navigator.userAgent.match(/MSIE 10.0/),e&&$("html").addClass("ie10"),(e||d||c)&&$("html").addClass("ie")},m=function(){for(var a=0;a<f.length;a++){var b=f[a];b.call()}},n=function(){var a;if(c){var b;$(window).resize(function(){b!=document.documentElement.clientHeight&&(a&&clearTimeout(a),a=setTimeout(function(){m()},50),b=document.documentElement.clientHeight)})}else $(window).resize(function(){a&&clearTimeout(a),a=setTimeout(function(){m()},50)})},o=function(){$("body").on("click",".portlet > .portlet-title > .tools > a.remove",function(a){a.preventDefault();var b=$(this).closest(".portlet");$("body").hasClass("page-portlet-fullscreen")&&$("body").removeClass("page-portlet-fullscreen"),b.find(".portlet-title .fullscreen").tooltip("destroy"),b.find(".portlet-title > .tools > .reload").tooltip("destroy"),b.find(".portlet-title > .tools > .remove").tooltip("destroy"),b.find(".portlet-title > .tools > .config").tooltip("destroy"),b.find(".portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip("destroy"),b.remove()}),$("body").on("click",".portlet > .portlet-title .fullscreen",function(a){a.preventDefault();var b=$(this).closest(".portlet");if(b.hasClass("portlet-fullscreen"))$(this).removeClass("on"),b.removeClass("portlet-fullscreen"),$("body").removeClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height","auto");else{var c=Metronic.getViewPort().height-b.children(".portlet-title").outerHeight()-parseInt(b.children(".portlet-body").css("padding-top"))-parseInt(b.children(".portlet-body").css("padding-bottom"));$(this).addClass("on"),b.addClass("portlet-fullscreen"),$("body").addClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height",c)}}),$("body").on("click",".portlet > .portlet-title > .tools > a.reload",function(a){a.preventDefault();var b=$(this).closest(".portlet").children(".portlet-body"),c=$(this).attr("data-url"),d=$(this).attr("data-error-display");c?(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),$.ajax({type:"GET",cache:!1,url:c,dataType:"html",success:function(a){Metronic.unblockUI(b),b.html(a)},error:function(a,c,e){Metronic.unblockUI(b);var f="Error on reloading the content. Please check your connection and try again.";"toastr"==d&&toastr?toastr.error(f):"notific8"==d&&$.notific8?($.notific8("zindex",11500),$.notific8(f,{theme:"ruby",life:3e3})):alert(f)}})):(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),window.setTimeout(function(){Metronic.unblockUI(b)},1e3))}),$('.portlet .portlet-title a.reload[data-load="true"]').click(),$("body").on("click",".portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand",function(a){a.preventDefault()})},p=function(){if($().uniform){var a=$("input[type=checkbox]:not(.toggle, .make-switch, .icheck), input[type=radio]:not(.toggle, .star, .make-switch, .icheck)");a.size()>0&&a.each(function(){0===$(this).parents(".checker").size()&&$(this).show()})}},q=function(){$().iCheck&&$(".icheck").each(function(){var a=$(this).attr("data-checkbox")?$(this).attr("data-checkbox"):"icheckbox_minimal-grey",b=$(this).attr("data-radio")?$(this).attr("data-radio"):"iradio_minimal-grey";a.indexOf("_line")>-1||b.indexOf("_line")>-1?$(this).iCheck({checkboxClass:a,radioClass:b,insert:'<div class="icheck_line-icon"></div>'+$(this).attr("data-label")}):$(this).iCheck({checkboxClass:a,radioClass:b})})},r=function(){$().bootstrapSwitch&&$(".make-switch").bootstrapSwitch()},s=function(){$().confirmation&&$("[data-toggle=confirmation]").confirmation({container:"body",btnOkClass:"btn-xs btn-success",btnCancelClass:"btn-xs btn-danger"})},t=function(){$("body").on("shown.bs.collapse",".accordion.scrollable",function(a){Metronic.scrollTo($(a.target))})},u=function(){if(location.hash){var a=location.hash.substr(1);$('a[href="#'+a+'"]').parents(".tab-pane:hidden").each(function(){var a=$(this).attr("id");$('a[href="#'+a+'"]').click()}),$('a[href="#'+a+'"]').click()}},v=function(){$("body").on("hide.bs.modal",function(){$(".modal:visible").size()>1&&$("html").hasClass("modal-open")===!1?$("html").addClass("modal-open"):$(".modal:visible").size()<=1&&$("html").removeClass("modal-open")}),$("body").on("show.bs.modal",".modal",function(){$(this).hasClass("modal-scroll")&&$("body").addClass("modal-open-noscroll")}),$("body").on("hide.bs.modal",".modal",function(){$("body").removeClass("modal-open-noscroll")}),$("body").on("hidden.bs.modal",".modal:not(.modal-cached)",function(){$(this).removeData("bs.modal")})},w=function(){$(".tooltips").tooltip(),$(".portlet > .portlet-title .fullscreen").tooltip({container:"body",title:"Fullscreen"}),$(".portlet > .portlet-title > .tools > .reload").tooltip({container:"body",title:"Reload"}),$(".portlet > .portlet-title > .tools > .remove").tooltip({
+container:"body",title:"Remove"}),$(".portlet > .portlet-title > .tools > .config").tooltip({container:"body",title:"Settings"}),$(".portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip({container:"body",title:"Collapse/Expand"})},x=function(){$("body").on("click",".dropdown-menu.hold-on-click",function(a){a.stopPropagation()})},y=function(){$("body").on("click",'[data-close="alert"]',function(a){$(this).parent(".alert").hide(),$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-close="note"]',function(a){$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-remove="note"]',function(a){$(this).closest(".note").remove(),a.preventDefault()})},z=function(){$('[data-hover="dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")})},A=function(){$(".popovers").popover(),$(document).on("click.bs.popover.data-api",function(b){a&&a.popover("hide")})},B=function(){Metronic.initSlimScroll(".scroller")},C=function(){jQuery.fancybox&&$(".fancybox-button").size()>0&&$(".fancybox-button").fancybox({groupAttr:"data-rel",prevEffect:"none",nextEffect:"none",closeBtn:!0,helpers:{title:{type:"inside"}}})},D=function(){(c||d)&&$("input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)").each(function(){var a=$(this);""===a.val()&&""!==a.attr("placeholder")&&a.addClass("placeholder").val(a.attr("placeholder")),a.focus(function(){a.val()==a.attr("placeholder")&&a.val("")}),a.blur(function(){""!==a.val()&&a.val()!=a.attr("placeholder")||a.val(a.attr("placeholder"))})})},E=function(){$().select2&&$(".select2me").select2({placeholder:"Select"})};return{init:function(){l(),n(),p(),q(),r(),B(),C(),E(),o(),y(),x(),u(),w(),A(),t(),v(),s(),D()},initAjax:function(){p(),q(),r(),z(),B(),E(),C(),x(),w(),A(),t(),s()},initComponents:function(){this.initAjax()},setLastPopedPopover:function(b){a=b},addResizeHandler:function(a){f.push(a)},runResizeHandlers:function(){m()},scrollTo:function(a,b){var c=a&&a.size()>0?a.offset().top:0;a&&($("body").hasClass("page-header-fixed")&&(c-=$(".page-header").height()),c+=b?b:-1*a.height()),$("html,body").animate({scrollTop:c},"slow")},initSlimScroll:function(a){$(a).each(function(){if(!$(this).attr("data-initialized")){var a;a=$(this).attr("data-height")?$(this).attr("data-height"):$(this).css("height"),$(this).slimScroll({allowPageScroll:!0,size:"7px",color:$(this).attr("data-handle-color")?$(this).attr("data-handle-color"):"#bbb",wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",railColor:$(this).attr("data-rail-color")?$(this).attr("data-rail-color"):"#eaeaea",position:b?"left":"right",height:a,alwaysVisible:"1"==$(this).attr("data-always-visible"),railVisible:"1"==$(this).attr("data-rail-visible"),disableFadeOut:!0}),$(this).attr("data-initialized","1")}})},destroySlimScroll:function(a){$(a).each(function(){if("1"===$(this).attr("data-initialized")){$(this).removeAttr("data-initialized"),$(this).removeAttr("style");var a={};$(this).attr("data-handle-color")&&(a["data-handle-color"]=$(this).attr("data-handle-color")),$(this).attr("data-wrapper-class")&&(a["data-wrapper-class"]=$(this).attr("data-wrapper-class")),$(this).attr("data-rail-color")&&(a["data-rail-color"]=$(this).attr("data-rail-color")),$(this).attr("data-always-visible")&&(a["data-always-visible"]=$(this).attr("data-always-visible")),$(this).attr("data-rail-visible")&&(a["data-rail-visible"]=$(this).attr("data-rail-visible")),$(this).slimScroll({wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",destroy:!0});var b=$(this);$.each(a,function(a,c){b.attr(a,c)})}})},scrollTop:function(){Metronic.scrollTo()},blockUI:function(a){a=$.extend(!0,{},a);var b="";if(b=a.animate?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><div class="block-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div></div>':a.iconOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""></div>':a.textOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>":'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>",a.target){var c=$(a.target);c.height()<=$(window).height()&&(a.cenrerY=!0),c.block({message:b,baseZ:a.zIndex?a.zIndex:1e3,centerY:void 0!==a.cenrerY?a.cenrerY:!1,css:{top:"10%",border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})}else $.blockUI({message:b,baseZ:a.zIndex?a.zIndex:1e3,css:{border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})},unblockUI:function(a){a?$(a).unblock({onUnblock:function(){$(a).css("position",""),$(a).css("zoom","")}}):$.unblockUI()},startPageLoading:function(a){a&&a.animate?($(".page-spinner-bar").remove(),$("body").append('<div class="page-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>')):($(".page-loading").remove(),$("body").append('<div class="page-loading"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif"/>&nbsp;&nbsp;<span>'+(a&&a.message?a.message:"Loading...")+"</span></div>"))},stopPageLoading:function(){$(".page-loading, .page-spinner-bar").remove()},alert:function(a){a=$.extend(!0,{container:"",place:"append",type:"success",message:"",close:!0,reset:!0,focus:!0,closeInSeconds:0,icon:""},a);var b=Metronic.getUniqueID("Metronic_alert"),c='<div id="'+b+'" class="Metronic-alerts alert alert-'+a.type+' fade in">'+(a.close?'<button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>':"")+(""!==a.icon?'<i class="fa-lg fa fa-'+a.icon+'"></i>  ':"")+a.message+"</div>";return a.reset&&$(".Metronic-alerts").remove(),a.container?"append"==a.place?$(a.container).append(c):$(a.container).prepend(c):$("body").hasClass("page-container-bg-solid")?$(".page-title").after(c):$(".page-bar").size()>0?$(".page-bar").after(c):$(".page-breadcrumb").after(c),a.focus&&Metronic.scrollTo($("#"+b)),a.closeInSeconds>0&&setTimeout(function(){$("#"+b).remove()},1e3*a.closeInSeconds),b},initUniform:function(a){a?$(a).each(function(){0===$(this).parents(".checker").size()&&($(this).show(),$(this).uniform())}):p()},updateUniform:function(a){$.uniform.update(a)},initFancybox:function(){C()},getActualVal:function(a){return a=$(a),a.val()===a.attr("placeholder")?"":a.val()},getURLParameter:function(a){var b,c,d=window.location.search.substring(1),e=d.split("&");for(b=0;b<e.length;b++)if(c=e[b].split("="),c[0]==a)return unescape(c[1]);return null},isTouchDevice:function(){try{return document.createEvent("TouchEvent"),!0}catch(a){return!1}},getViewPort:function(){var a=window,b="inner";return"innerWidth"in window||(b="client",a=document.documentElement||document.body),{width:a[b+"Width"],height:a[b+"Height"]}},getUniqueID:function(a){return"prefix_"+Math.floor(Math.random()*(new Date).getTime())},isIE8:function(){return c},isIE9:function(){return d},isRTL:function(){return b},isAngularJsApp:function(){return"undefined"!=typeof angular},getAssetsPath:function(){return g},setAssetsPath:function(a){g=a},setGlobalImgPath:function(a){h=a},getGlobalImgPath:function(){return g+h},setGlobalPluginsPath:function(a){i=a},getGlobalPluginsPath:function(){return g+i},getGlobalCssPath:function(){return g+j},getBrandColor:function(a){return k[a]?k[a]:""},getResponsiveBreakpoint:function(a){var b={xs:480,sm:768,md:900,lg:1200};return b[a]?b[a]:0}}}(),Layout=function(){var a="img/",b="css/",c=Metronic.getResponsiveBreakpoint("md"),d=function(){var a,b=$(".page-content"),d=$(".page-sidebar"),e=$("body");if(e.hasClass("page-footer-fixed")===!0&&e.hasClass("page-sidebar-fixed")===!1){var f=Metronic.getViewPort().height-$(".page-footer").outerHeight()-$(".page-header").outerHeight();b.height()<f&&b.attr("style","min-height:"+f+"px")}else{if(e.hasClass("page-sidebar-fixed"))a=g(),e.hasClass("page-footer-fixed")===!1&&(a-=$(".page-footer").outerHeight());else{var h=$(".page-header").outerHeight(),i=$(".page-footer").outerHeight();a=Metronic.getViewPort().width<c?Metronic.getViewPort().height-h-i:d.height()+20,a+h+i<=Metronic.getViewPort().height&&(a=Metronic.getViewPort().height-h-i)}b.attr("style","min-height:"+a+"px")}},e=function(a,b){var d=location.hash.toLowerCase(),e=$(".page-sidebar-menu");if("click"===a||"set"===a?b=$(b):"match"===a&&e.find("li > a").each(function(){var a=$(this).attr("href").toLowerCase();return a.length>1&&d.substr(1,a.length-1)==a.substr(1)?void(b=$(this)):void 0}),b&&0!=b.size()&&"javascript:;"!==b.attr("href").toLowerCase()&&"#"!==b.attr("href").toLowerCase()){parseInt(e.data("slide-speed")),e.data("keep-expanded");e.find("li.active").removeClass("active"),e.find("li > a > .selected").remove(),e.hasClass("page-sidebar-menu-hover-submenu")===!1?e.find("li.open").each(function(){0===$(this).children(".sub-menu").size()&&($(this).removeClass("open"),$(this).find("> a > .arrow.open").removeClass("open"))}):e.find("li.open").removeClass("open"),b.parents("li").each(function(){$(this).addClass("active"),$(this).find("> a > span.arrow").addClass("open"),1===$(this).parent("ul.page-sidebar-menu").size()&&$(this).find("> a").append('<span class="selected"></span>'),1===$(this).children("ul.sub-menu").size()&&$(this).addClass("open")}),"click"===a&&Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click()}},f=function(){jQuery(".page-sidebar").on("click","li > a",function(a){var b=$(this).next().hasClass("sub-menu");if(!(Metronic.getViewPort().width>=c&&1===$(this).parents(".page-sidebar-menu-hover-submenu").size())){if(b===!1)return void(Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click());if(!$(this).next().hasClass("sub-menu always-open")){var e=$(this).parent().parent(),f=$(this),g=$(".page-sidebar-menu"),h=jQuery(this).next(),i=g.data("auto-scroll"),j=parseInt(g.data("slide-speed")),k=g.data("keep-expanded");k!==!0&&(e.children("li.open").children("a").children(".arrow").removeClass("open"),e.children("li.open").children(".sub-menu:not(.always-open)").slideUp(j),e.children("li.open").removeClass("open"));var l=-200;h.is(":visible")?(jQuery(".arrow",jQuery(this)).removeClass("open"),jQuery(this).parent().removeClass("open"),h.slideUp(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})):b&&(jQuery(".arrow",jQuery(this)).addClass("open"),jQuery(this).parent().addClass("open"),h.slideDown(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})),a.preventDefault()}}}),jQuery(".page-sidebar").on("click"," li > a.ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=jQuery(".page-sidebar ul"),e=($(".page-content"),$(".page-content .page-content-body"));d.children("li.active").removeClass("active"),d.children("arrow.open").removeClass("open"),$(this).parents("li").each(function(){$(this).addClass("active"),$(this).children("a > span.arrow").addClass("open")}),$(this).parents("li").addClass("active"),Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),Metronic.startPageLoading();var f=$(this);$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){0===f.parents("li.open").size()&&$(".page-sidebar-menu > li.open > a").click(),Metronic.stopPageLoading(),e.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){Metronic.stopPageLoading(),e.html("<h4>Could not load the requested content.</h4>")}})}),jQuery(".page-content").on("click",".ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=($(".page-content"),$(".page-content .page-content-body"));Metronic.startPageLoading(),Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){Metronic.stopPageLoading(),d.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){d.html("<h4>Could not load the requested content.</h4>"),Metronic.stopPageLoading()}})}),i(),$(".page-sidebar").on("click",".sidebar-search .remove",function(a){a.preventDefault(),$(".sidebar-search").removeClass("open")}),$(".page-sidebar .sidebar-search").on("keypress","input.form-control",function(a){return 13==a.which?($(".sidebar-search").submit(),!1):void 0}),0!==$(".sidebar-search").size()&&($(".sidebar-search .input-group").on("click",function(a){a.stopPropagation()}),$("body").on("click",function(){$(".sidebar-search").hasClass("open")&&$(".sidebar-search").removeClass("open")}))},g=function(){var a=Metronic.getViewPort().height-$(".page-header").outerHeight();return $("body").hasClass("page-footer-fixed")&&(a-=$(".page-footer").outerHeight()),a},h=function(){var a=$(".page-sidebar-menu");return Metronic.destroySlimScroll(a),0===$(".page-sidebar-fixed").size()?void d():void(Metronic.getViewPort().width>=c&&(a.attr("data-height",g()),Metronic.initSlimScroll(a),d()))},i=function(){var a=$("body");a.hasClass("page-sidebar-fixed")&&$(".page-sidebar").on("mouseenter",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").removeClass("page-sidebar-menu-closed")}).on("mouseleave",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").addClass("page-sidebar-menu-closed")})},j=function(){$("body");$.cookie&&"1"===$.cookie("sidebar_closed")&&Metronic.getViewPort().width>=c?($("body").addClass("page-sidebar-closed"),$(".page-sidebar-menu").addClass("page-sidebar-menu-closed")):$.cookie&&$.cookie("sidebar_closed","0")},k=function(){$(".page-header").on("click",'.hor-menu a[data-toggle="tab"]',function(a){a.preventDefault();var b=$(".hor-menu .nav"),c=b.find("li.current");$("li.active",c).removeClass("active"),$(".selected",c).remove();var d=$(this).parents("li").last();d.addClass("current"),d.find("a:first").append('<span class="selected"></span>')}),$(".page-header").on("click",".search-form",function(a){$(this).addClass("open"),$(this).find(".form-control").focus(),$(".page-header .search-form .form-control").on("blur",function(a){$(this).closest(".search-form").removeClass("open"),$(this).unbind("blur")})}),$(".page-header").on("keypress",".hor-menu .search-form .form-control",function(a){return 13==a.which?($(this).closest(".search-form").submit(),!1):void 0}),$(".page-header").on("mousedown",".search-form.open .submit",function(a){a.preventDefault(),a.stopPropagation(),$(this).closest(".search-form").submit()}),$('[data-hover="megamenu-dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")}),$(document).on("click",".mega-menu-dropdown .dropdown-menu",function(a){a.stopPropagation()})},l=function(){$("body").on("shown.bs.tab",'a[data-toggle="tab"]',function(){d()})},m=function(){var a=300,b=500;navigator.userAgent.match(/iPhone|iPad|iPod/i)?$(window).bind("touchend touchcancel touchleave",function(c){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}):$(window).scroll(function(){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}),$(".scroll-to-top").click(function(a){return a.preventDefault(),$("html, body").animate({scrollTop:0},b),!1})},n=function(){var a,b=$(".full-height-content");if(a=Metronic.getViewPort().height-$(".page-header").outerHeight(!0)-$(".page-footer").outerHeight(!0)-$(".page-title").outerHeight(!0)-$(".page-bar").outerHeight(!0),b.hasClass("portlet")){var d=b.find(".portlet-body");if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(d.find(".full-height-content-body"));a=a-b.find(".portlet-title").outerHeight(!0)-parseInt(b.find(".portlet-body").css("padding-top"))-parseInt(b.find(".portlet-body").css("padding-bottom"))-2,b.hasClass("full-height-content-scrollable")?(a-=35,d.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(d.find(".full-height-content-body"))):d.css("min-height",a)}else{if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(b.find(".full-height-content-body"));b.hasClass("full-height-content-scrollable")?(a-=35,b.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(b.find(".full-height-content-body"))):b.css("min-height",a)}};return{initHeader:function(){k()},setSidebarMenuActiveLink:function(a,b){e(a,b)},initSidebar:function(){h(),f(),j(),Metronic.isAngularJsApp()&&e("match"),Metronic.addResizeHandler(h)},initContent:function(){n(),l(),Metronic.addResizeHandler(d),Metronic.addResizeHandler(n)},initFooter:function(){m()},init:function(){this.initHeader(),this.initSidebar(),this.initContent(),this.initFooter()},fixContentHeight:function(){d()},initFixedSidebarHoverEffect:function(){i()},initFixedSidebar:function(){h()},getLayoutImgPath:function(){return Metronic.getAssetsPath()+a},getLayoutCssPath:function(){return Metronic.getAssetsPath()+b}}}();angular.module("xCallyShuttleApp").run(["$templateCache",function(a){a.put("app/analytic/extracted/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="fa fa-file-pdf-o"></i>\n                                      <a href="/analytics/extracted/list">{{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="fa fa-file-pdf-o font-green-sharp"></i>\n                                     <span class="caption-subject">{{ \'APPLICATION_EXTRACTED_REPORTS\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_METRIC\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.metric" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.metric.name.$touched || forms.metric.$submitted) && forms.metric.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TABLE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.table.$touched || forms.metric.$submitted) && forms.metric.table.$invalid}">\n      <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.table" name="table" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="table.value as table in tables | filter: $select.search">\n          <div ng-bind-html="table.name | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(forms.metric.table.$touched || forms.metric.$submitted) && forms.metric.table.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TABLE-->\n\n    <!-- START METRIC -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$invalid}">\n      <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="item.metric" required/></textarea>\n      <span data-ng-show="(forms.metric.metric.$touched || forms.metric.$submitted) && forms.metric.metric.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END METRIC -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.metric.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/metric/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-calculator"></i>\n                                       <a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-calculator font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_METRICS\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="create()">\n                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_METRIC\' | translate }}\n                                                </button>\n                                     </div>\n                                        <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMetric()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/analytics/metrics/list">{{ \'APPLICATION_METRICS\' | translate }}</a>\n                                       <i data-ng-show="metric" class="fa fa-angle-right"></i>\n                               </li>\n                         <li data-ng-show="metric">\n                                    <a href="#">{{metric.name}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/metric.png" class="img-responsive">\n                             </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{metric.name}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.analytics.metrics.view.settings\')}">\n                                                    <a data-ng-href="/analytics/metrics/view/{{metric.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/metric/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_METRIC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateMetric()" novalidate>\n\n                                                      <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="metric.name" required/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START TABLE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.table.$touched || forms.general.$submitted) && forms.general.table.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="metric.table" name="table" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="table.value as table in tables | filter: $select.search">\n                                                                          <div ng-bind-html="table.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.general.table.$touched || forms.general.$submitted) && forms.general.table.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TABLE-->\n\n                                                   <!-- START METRIC -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_METRIC\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <textarea type="text" name="metric" placeholder="{{\'APPLICATION_METRIC\' | translate}}" class="form-control" data-ng-model="metric.metric" required/></textarea>\n                                                             <span data-ng-show="(forms.general.metric.$touched || forms.general.$submitted) && forms.general.metric.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END METRIC -->\n\n                                                 <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="metric.description"></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/analytic/report/list/copy.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_COPY_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="portlet light bordered">\n    <div class="portlet-title">\n      <div class="caption font-green-sharp" style="padding-left:10px;">\n        <i class="icon-folder font-green-sharp"></i>\n        <span class="caption-subject">{{ \'APPLICATION_COPY_TO\' | translate }} </span>\n      </div>\n    </div>\n    <div class="portlet-body">\n      <div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;"></div>\n    </div>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-disabled="!customTree.get_selected(true).pop().id" ng-click="ok()" ng-disabled="forms.report.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),
+a.put("app/analytic/report/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.report" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_PATH\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_PATH\' | translate}}" class="form-control" data-ng-model="path" disabled/>\n      <span data-ng-show="(forms.report.name.$touched || forms.report.$submitted) && forms.report.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.report.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/extract.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_EXTRACT_REPORT\' | translate }}</h3>\n</div>\n<div class="modal-body" style="text-align:center;">\n  <form name="forms.report" class="form-inline mbottom20" novalidate>\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DATE_RANGE\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="daterange" name="dates" ranges="ranges" placeholder="{{\'APPLICATION_DATE_RANGE\' | translate}}" class="form-control" data-ng-model="dates" required/>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn default green-jungle" type="button" data-ng-click="extract(\'csv\')"><i class="fa fa-file-excel-o"></i> {{ \'APPLICATION_SAVE_AS_CSV\' | translate }}</button>\n  <button class="btn default red-intense" type="button" data-ng-click="extract(\'pdf\')"><i class="fa fa-file-pdf-o"></i> {{ \'APPLICATION_SAVE_AS_PDF\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTrees()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-book-open"></i>\n                                        <a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n                <div class="col-fixed">\n                       <!-- BEGIN Portlet PORTLET-->\n                 <div class="portlet light bordered">\n                          <div class="portlet-title">\n                                   <div class="caption font-green-sharp" style="padding-left:10px;">\n                                             <i class="icon-folder font-green-sharp"></i>\n                                          <span class="caption-subject">{{ \'APPLICATION_FOLDERS\' | translate }} </span>\n                                       </div>\n                                        <div class="inputs">\n                                          <div class="portlet-input input-inline input-small">\n                                                  <div class="input-icon right">\n                                                                <i class="icon-magnifier"></i>\n                                                                <input type="text" data-ng-model="searchField" data-ng-change="searchTrees()" class="form-control input-circle" placeholder="search...">\n                                                      </div>\n                                                </div>\n                                        </div>\n                                </div>\n                                <div class="portlet-body">\n                                    <div js-tree="defaultTreeConfig" ng-model="defaultTreeData" should-apply="ac()" tree="defaultTreeInstance" tree-events="ready:initDefaultScopeTree;select_node:selectDefaultNode;"></div>\n                                     <div js-tree="customTreeConfig" ng-model="customTreeData" should-apply="ac()" tree="customTreeInstance" tree-events="ready:initCustomScopeTree;select_node:selectCustomNode;rename_node:updateCustomTree;delete_node:updateCustomTree;move_node:updateCustomTree;create_node:updateCustomTree;"></div>\n                                </div>\n                        </div>\n                        <!-- END Portlet PORTLET-->\n           </div>\n                <div class="row tree-row">\n                    <div class="col-md-12">\n                               <!-- BEGIN Portlet PORTLET-->\n                         <div class="portlet light bordered">\n                                  <div class="portlet-title">\n                                           <div class="caption font-green-sharp">\n                                                        <i class="icon-book-open font-green-sharp"></i>\n                                                       <span class="caption-subject">{{ \'APPLICATION_REPORTS\' | translate }}<span data-ng-if="selectedNode"> - {{selectedNode}}</span></span>\n                                              </div>\n                                                <div data-ng-if="!defaultTreeActive" class="actions">\n                                                 <div class="btn-group" data-ng-show="id.length">\n                                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                                           </a>\n                                                  </div>\n                                                        <div class="btn-group">\n                                                               <span class="btn default btn-file">\n                                                           <span class="fileinput-new">\n                                                          <i class="icon-cloud-upload"></i> {{\'APPLICATION_IMPORT_FROM_JSON\' | translate}}</span>\n                                                             <input type="file" on-read-file="import($fileContent)"/>\n                                                              </span>\n                                                       </div>\n                                                        <div class="btn-group">\n                                                               <button class="btn green-jungle " ng-click="create()">\n                                                                        <i class="icon-plus"></i> {{ \'APPLICATION_NEW_REPORT\' | translate }}\n                                                                </button>\n                                                     </div>\n                                                </div>\n                                        </div>\n                                        <div class="portlet-body">\n                                            <div ng-slide-down="gridOptions" lazy-render duration="1">\n                                            <!-- START TABLE -->\n                                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                                              </div>\n                                                <!-- END TABLE -->\n                                    </div>\n                                        </div>\n                                </div>\n                                <!-- END Portlet PORTLET-->\n                   </div>\n                </div>\n        </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/report/list/preview.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_REPORT_PREVIEW\' | translate }}</h3>\n</div>\n<div class="modal-body" style="text-align:center;">\n  <form name="forms.report" class="form-inline mbottom20" novalidate>\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DATE_RANGE\' | translate}}<span class="required" aria-required="true"></span></label>\n      <input type="daterange" name="dates" ranges="ranges" placeholder="{{\'APPLICATION_DATE_RANGE\' | translate}}" class="form-control" data-ng-model="dates" data-ng-change="getPage()" required/>\n    </div>\n  </form>\n  <div ng-slide-down="showResult" lazy-render duration="1">\n    <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-exporter class="grid extract-grid">\n      <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n    </div>\n  </div>\n</div>\n<div class="modal-footer">\n<button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/analytic/report/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getReport()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-book-open"></i>\n                                        <a href="/analytics/reports/list">{{ \'APPLICATION_REPORTS\' | translate }}</a>\n                                       <i data-ng-show="report" class="fa fa-angle-right"></i>\n                               </li>\n                         <li data-ng-show="report">\n                                    <a href="#">{{report.name}}</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/report.png" class="img-responsive">\n                             </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{report.name}}\n                                       </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.analytics.reports.view.settings\')}">\n                                                    <a data-ng-href="/analytics/reports/view/{{report.id}}/settings">\n                                                     <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/analytic/report/view/view.settings.html",'<div class="row">\n   <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_REPORT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                              </div>\n                                <ul class="nav nav-tabs">\n                                     <li>\n                                          <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li class="active">\n                                           <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_BUILD\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab" data-ng-click="showResult = true">{{ \'APPLICATION_TEST_PREVIEW\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n\n                          <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane" id="tab_1_1">\n                                           <form name="forms.general" data-ng-submit="forms.report.$valid && forms.general.$valid && updateReport()" novalidate>\n\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="report.name" required/>\n                                                         <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="report.description"></textarea>\n                                                        </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TABLE INPUT -->\n\n\n                                                        <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n\n                                     </div>\n                                        <!-- END GENERAL TAB -->\n                                      <div class="tab-pane active" id="tab_1_2">\n                                            <form name="forms.report" data-ng-submit="forms.report.$valid && forms.general.$valid && updateReport()" novalidate>\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.report.table.$touched || forms.report.$submitted) && forms.report.table.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_TABLE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="report.table" name="table" theme="bootstrap" required>\n                                                              <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="table.table as table in tables | filter: $select.search">\n                                                                  <div ng-bind-html="table.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span class="help-block">\n                                                     </span>\n                                                       <span data-ng-show="(forms.report.table.$touched || forms.report.$submitted) && forms.report.table.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END TABLE INPUT-->\n                                               <div data-ng-if="report.table" class="mbottom20 pbottom20">\n                                           <div class="portlet-title tabbable-line">\n                                                     <div class="caption caption-md">\n                                                              <i class="icon-globe theme-font hide"></i>\n                                                            <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_FIELDS\' | translate}} </span>\n                                                        </div>\n                                                </div>\n                                                                <!-- START TABLE -->\n                                                          <table class="table table-striped table-bordered table-hover">\n                                                                        <thead>\n                                                                               <tr>\n                                                                                  <th>{{ \'APPLICATION_FIELD\' | translate }} / {{ \'APPLICATION_METRIC\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_ALIAS\' | translate }}</th>\n                                                                                      <th>{{ \'APPLICATION_FUNCTION\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_GROUP_BY\' | translate }}</th>\n                                                                                   <th>{{ \'APPLICATION_ORDER_BY\' | translate }}</th>\n                                                                                   <th></th>\n                                                                                     <th></th>\n                                                                             </tr>\n                                                                 </thead>\n                                                                              <tbody ui-sortable="sortableOptions" data-ng-model="report.Fields">\n                                                                                   <tr data-ng-repeat="field in report.Fields">\n                                                                                          <td>\n                                                                                                  <!-- START FIELD -->\n                                                                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.report.$submitted && !field.field}">\n                                                                                                             <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.field" dynamic-name="randomName()" theme="bootstrap" on-select="setMetricId($item,$index)" required>\n                                                                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}"><span ng-bind-html="$select.selected.name"></span></ui-select-match>\n                                                                                                                     <ui-select-choices repeat="tableField.value as tableField in tableFields | filter: $select.search">\n                                                                                                                           <div ng-bind-html="tableField.name | highlight: $select.search"></div>\n                                                                                                                        </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                          <span data-ng-show="forms.report.$submitted && !field.field" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                                                                                                       </div>\n                                                                                                        <!-- END FIELD-->\n                                                                                             </td>\n                                                                                         <td>\n                                                                                                  <!-- START ALIAS -->\n                                                                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.report.$submitted && !field.alias}">\n                                                                                                             <!-- <label class="control-label">{{\'APPLICATION_ALIAS\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <input type="text" dynamic-name="randomName()" placeholder="{{\'APPLICATION_ALIAS\' | translate}}" class="form-control" data-ng-model="field.alias" required/>\n                                                                                                                <span data-ng-show="forms.report.$submitted && !field.alias" class="help-block help-block-error">\n                                                                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                                         </span>\n                                                                                                       </div>\n                                                                                                        <!-- END ALIAS -->\n                                                                                            </td>\n                                                                                         <td>\n                                                                                                  <!-- START FUNCTION -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.function" name="function" theme="bootstrap">\n                                                                                                                  <ui-select-match placeholder="{{\'APPLICATION_FUNCTION\' | translate}}" allow-clear>{{$select.selected.name}}</ui-select-match>\n                                                                                                                       <ui-select-choices repeat="function.value as function in functions | filter: $select.search">\n                                                                                                                         <div ng-bind-html="function.name | highlight: $select.search"></div>\n                                                                                                                  </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END FUNCTION-->\n                                                                                          </td>\n                                                                                         <td>\n                                                                                                  <!-- START GROUP_BY -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.groupBy" name="groupBy" theme="bootstrap" required>\n                                                                                                                   <ui-select-match placeholder="{{\'APPLICATION_GROUP_BY\' | translate}}">{{$select.selected.name | translate}}</ui-select-match>\n                                                                                                                       <ui-select-choices repeat="groupBy.value as groupBy in groupByField | filter: $select.search">\n                                                                                                                                {{$translate.instant(groupBy.name)}}\n                                                                                                                  </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END GROUP_BY-->\n                                                                                          </td>\n                                                                                         <td>\n                                                                                                  <!-- START ORDER_BY -->\n                                                                                                       <div class="form-group">\n                                                                                                              <!-- <label class="control-label">{{\'APPLICATION_FIELD\' | translate}}<span class="required" aria-required="true">*</span></label> -->\n                                                                                                               <ui-select data-ng-model="field.orderBy" name="orderBy" theme="bootstrap">\n                                                                                                                    <ui-select-match placeholder="{{\'APPLICATION_ORDER_BY\' | translate}}" allow-clear>{{$select.selected}}</ui-select-match>\n                                                                                                                    <ui-select-choices repeat="orderBy in [\'ASC\',\'DESC\'] | filter: $select.search">\n                                                                                                                           <div ng-bind-html="orderBy | highlight: $select.search"></div>\n                                                                                                                        </ui-select-choices>\n                                                                                                          </ui-select>\n                                                                                                  </div>\n                                                                                                        <!-- END TABLE INPUT-->\n                                                                                               </td>\n                                                                                         <td class="report-field-remove">\n                                                                                                      <button class="btn red" type="button" data-ng-click="removeField($index)"><i class="fa fa-times"></i></button>\n                                                                                                </td>\n                                                                                         <td class="report-field-handle">\n                                                                                                      <!-- <img data-ng-src="assets/images/move.png" class="img-responsive"> -->\n                                                                                            </td>\n                                                                                 </tr>\n                                                                                 <tr data-ng-hide="report.Fields.length" class="unsortable">\n                                                                                           <td colspan="7" style="text-align:center;">\n                                                                                                   <i>{{ \'MESSAGE_ADD_A_FIELD\' | translate }}</i>\n                                                                                              </td>\n                                                                                 </tr>\n                                                                         </tbody>\n                                                              </table>\n                                                              <button type="button" class="btn btn-sm green padding-bottom" ng-click="addField()">\n                                                                  <i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}\n                                                          </button>\n                                                             <!-- END TABLE -->\n                                                    </div>\n                                                                <div data-ng-if="report.Fields.length" class="mbottom20 pbottom20">\n                                                                   <div class="portlet-title tabbable-line">\n                                                                             <div class="caption caption-md">\n                                                                                      <i class="icon-globe theme-font hide"></i>\n                                                                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONDITIONS\' | translate}} </span>\n                                                                            </div>\n                                                                        </div>\n                                                                        <div class="alert alert-info">\n                                                                                        <strong>Output</strong><br>\n                                                                                   <span ng-bind-html="output"></span>\n                                                                   </div>\n\n                                                                      <report-builder group="report.conditions.group" fields="report.Fields" forms="forms" firstCall=\'true\'></report-builder>\n                                                             </div>\n                                                                <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                          </form>\n                                       </div>\n                                        <div class="tab-pane" id="tab_1_3">\n                                           <div ng-slide-down="showResult" lazy-render duration="0.5">\n                                                   <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-move-columns class="grid">\n                                                             <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                                                      </div>\n                                                </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/offline/list/list.html",'<div class="row">\n        <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-login"></i>\n                                            <a href="/channels/chat/offline/list">Offline</a>\n                                     </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-question font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/offline/view/view.detail.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body row" data-ng-init="initView()">\n                              <div class="col-md-6">\n                                        <div class="news-blocks">\n                                             <h3>\n                                                  <a href="#" class="inactive-link">{{\'APPLICATION_MESSAGE\' | translate}}</a>\n                                                 <hr>\n                                          </h3>\n                                         <div class="news-block-tags">\n                                                 <em am-time-ago="chatVisitor.ChatEnquiry.createdAt"></em>\n                                             </div>\n                                                <p>\n                                                   {{chatVisitor.ChatEnquiry.text}}\n                                              </p>\n                                  </div>\n                                </div>\n                                <div class="col-md-6">\n                                        <div class="news-blocks">\n                                             <h3>\n                                                  <a href="#" class="inactive-link">{{\'APPLICATION_VISITOR\' | translate}}</a>\n                                                 <hr>\n                                          </h3>\n                                         <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-user"></i>\n                                                     <a href="#" class="inactive-link">{{chatVisitor.fullname}}</a>\n                                                </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-envelope"></i>\n                                                 <a href="#" class="inactive-link">{{chatVisitor.email}}</a>\n                                           </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-globe"></i>\n                                                    <a href="#" class="inactive-link">{{chatVisitor.remote_address}}</a>\n                                          </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-home"></i>\n                                                     <a href="#" class="inactive-link">{{chatVisitor.referer}} - {{chatVisitor.ChatWebsite.name}}</a>\n                                              </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-cursor"></i>\n                                                   <a href="#" class="inactive-link">{{chatVisitor.browser}}</a>\n                                         </div>\n                                                <div class="margin-top-20 profile-desc-link">\n                                                 <i class="icon-screen-desktop"></i>\n                                                   <a href="#" class="inactive-link">{{chatVisitor.os}}</a>\n                                              </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/offline/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-login"></i>\n                                    <a href="/channels/chat/offline/list">Offline</a>\n                             </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/enquiry.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- START USER TITLE -->\n                             <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatVisitor.ChatEnquiry.email}}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatVisitor.ChatEnquiry.username}}\n                                  </div>\n                                </div>\n                                <!-- END USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.offline.view.detail\')}">\n                                                  <a data-ng-href="/channels/chat/offline/view/{{chatVisitor.id}}/detail">\n                                                      <i class="icon-tag"></i>\n                                                      {{ \'APPLICATION_DETAIL\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/online/list/list.html",'<div class="row">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-login"></i>\n                                            <a href="/channels/chat/offline/list">Offline</a>\n                                     </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-question font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/online/view/view.detail.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_DETAIL\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body row" data-ng-init="initView()">\n                              <div class="col-md-6">\n                                        <div class="news-blocks">\n                                             <h3>\n                                                  <a href="#" class="inactive-link">{{\'APPLICATION_MESSAGES\' | translate}}</a>\n                                                        <!-- <a href="#" data-ng-click="export()" data-ng-show="chatRoom.ChatMessages.length" class="btn btn-sm blue pull-right"><i class="icon-cloud-download"></i> {{\'APPLICATION_EXPORT\' | translate}} CSV </a> -->\n                                                      <a href="api/chat/rooms/{{chatRoom.id}}/export" target="_blank" data-ng-show="chatRoom.ChatMessages.length" class="btn btn-sm blue pull-right"><i class="icon-cloud-download"></i> {{\'APPLICATION_EXPORT\' | translate}} CSV </a>\n                                                    <hr>\n                                          </h3>\n                                         <div class="news-block-tags">\n                                                 <em am-time-ago="chatRoom.ChatVisitor.ChatEnquiry.createdAt"></em>\n                                            </div>\n                                                <p>\n                                                   <div ng-scrollbars ng-scrollbars-config="config">\n                                                             <ul class="chats">\n                                                                    <li data-ng-class="{\'out\': message.User, \'in\':message.ChatVisitor}" data-ng-repeat="message in chatRoom.ChatMessages | orderBy:\'createdAt\'">\n                                                                            <img class="avatar" data-ng-src="api/users/avatar/{{message.User.userpic || \'unknown_avatar\'}}">\n                                                                            <div class="message">\n                                                                                 <span class="arrow">\n                                                                                  </span>\n                                                                                       <a href="#" class="name">\n                                                                                             {{message.User ? message.User.fullname : message.ChatVisitor.fullname}}\n                                                                                       </a>\n                                                                                  <span class="datetime">\n                                                                                               at {{message.createdAt | date: \'medium\'}}\n                                                                                   </span>\n                                                                                       <span class="body">\n                                                                                           {{message.body}}\n                                                                                      </span>\n                                                                               </div>\n                                                                        </li>\n                                                         </ul>\n                                                 </div>\n                                                </div>\n                                        </div>\n                                        <div class="col-md-6">\n                                                <div class="news-blocks">\n                                                     <h3>\n                                                          <a href="#" class="inactive-link">{{\'APPLICATION_VISITOR\' | translate}}</a>\n                                                         <hr>\n                                                  </h3>\n                                                 <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-user"></i>\n                                                             <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.fullname}}</a>\n                                                       </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-envelope"></i>\n                                                         <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.email}}</a>\n                                                  </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-globe"></i>\n                                                            <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.remote_address}}</a>\n                                                 </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-home"></i>\n                                                             <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.referer}} - {{chatRoom.ChatVisitor.ChatWebsite.name}}</a>\n                                                    </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-cursor"></i>\n                                                           <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.browser}}</a>\n                                                        </div>\n                                                        <div class="margin-top-20 profile-desc-link">\n                                                         <i class="icon-screen-desktop"></i>\n                                                           <a href="#" class="inactive-link">{{chatRoom.ChatVisitor.os}}</a>\n                                                     </div>\n                                                </div>\n                                        </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n'),
+a.put("app/channels/chat/online/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-login"></i>\n                                    <a href="/channels/chat/online/list">Online</a>\n                               </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/enquiry.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- START USER TITLE -->\n                             <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatRoom.ChatVisitor.email}}\n                                        </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatRoom.ChatVisitor.fullname}}\n                                     </div>\n                                </div>\n                                <!-- END USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.online.view.detail\')}">\n                                                   <a data-ng-href="/channels/chat/online/view/{{chatRoom.id}}/detail">\n                                                  <i class="icon-tag"></i>\n                                                      {{ \'APPLICATION_DETAIL\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/preview/preview.html",'<style>\n.xc_rating {\n  text-align: center;\n}\n.xc_rating_label > input{ /* HIDE RADIO */\n  display:none;\n}\n.xc_rating_label > input + img{ /* IMAGE STYLES */\n  cursor:pointer;\n  border:2px solid transparent;\n}\n.xc_rating_label > input:checked + img{ /* (CHECKED) IMAGE STYLES */\n  /*border:2px solid #f00;*/\n  background-color: #efefef;\n}\n\n.xc_label {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\n\n.xc_online_message,\n.xc_offline_message,\n.xc_rating_message\n{\n  text-align: center;\n}\n\n.xc_div_group {\n  margin: 10px 0 10px 0;\n}\n.xc_footer\n{\n  text-align: center;\n  padding-bottom: 5px;\n}\n\n.xc_powered\n{\n  color: grey;\n  font: 10px/16px "Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;\n  padding-bottom: 5px;\n}\n\n.xc_chat_container\n{\n  //width:379px;\n  //position:fixed;\n  //bottom:0;\n  //right:50px;\n  z-index:9999;\n  background-color:transparent;\n}\n\n.xc_chat_container *\n{\n  font-family:Arial,Helvetica,sans-serif;\n  font-size:13px;\n  margin:0;\n  padding:0;\n}\n\n.xc_chat_container p\n{\n  margin:5px 0;\n}\n\n.xc_signup_wrapper\n{\n  max-height:375px;\n}\n\n.xc_conversation_container\n{\n  max-height:375px;\n  list-style:none;\n  overflow:auto;\n  margin:0;\n  padding:20px 10px;\n}\n\n.xc_conversation_container a\n{\n  color:#036;\n}\n\n.xc_conversation_container a.xc_btn_style\n{\n  color:#fff;\n}\n\ndiv.xc_chat_head\n{\n  color:#fff;\n  background:{{chatWebsite.color}};\n  //border-radius: 20px 20px 0px 0px !important;\n  height:52px;\n  line-height:55px;\n  cursor:pointer;\n}\n\ndiv.xc_chat_head.rounded\n{\n  border-radius: 20px 20px 0px 0px !important;\n}\n\ndiv.xc_chat_head.squared\n{\n  //border-radius: 20px 20px 0px 0px !important;\n}\n\n.xc_chat_head-title\n{\n  margin:5px 0 0 15px;\n  color: #fff;\n}\n\n.xc_header_icon\n{\n  display:block;\n  background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n  width:21px;\n  height:16px;\n  float:right;\n  margin:20px 20px 0 0;\n}\n\n.xc_header_icon span.xc_notification_badge span\n{\n  display:block;\n  height:16px;\n  width:15px;\n  text-align:center;\n  font-size:9px;\n  color:#555;\n  position:relative;\n  top:-20px;\n  left:4px;\n  margin:0;\n  padding:0;\n}\n\n.xc_sub-head-spacer\n{\n  padding:1px;\n}\n\n.xc_conversation\n{\n  display:none;\n  margin:0 12px 0 11px;\n}\n\n.xc_chat_toggle_container\n{\n  /*background:mediumslateblue center 52px;*/\n  background: white;\n  border-style: solid;\n  border-width: 1px;\n  border-color: {{chatWebsite.color}};\n  //display:none;\n}\n\n.xc_signup_wrapper,.xc_notifications_wrapper,.xc_enquiry_wrapper,.xc_rating_wrapper\n{\n  //display:none;\n  display:block;\n  overflow:auto;\n  line-height:1;\n  padding:25px;\n}\n\n.xc_exit_chat_container\n{\n  text-align:right;\n  width:95%;\n  margin:0 auto;\n  padding:5px 1px 0 0;\n}\n\n.xc_exit_chat_container span,.xc_exit_chat_container a\n{\n  font-size:80%;\n  color:#666;\n  text-decoration:none;\n}\n\n.xc_exit_chat_container a:hover\n{\n  color:#333;\n}\n\na.xc_btn_exit_chat_confirm:hover\n{\n  color:red;\n}\n\na.xc_btn_exit_chat_cancel:hover\n{\n  color:#0c0;\n}\n\nform.xc_form_reply\n{\n  position:relative;\n}\n\n.xc_form_reply\n{\n  /*background-color:#e3e3e3;*/\n  text-align:center;\n  /*border-top:1px solid #d3d3d3;*/\n}\n\n.xc_input_message\n{\n  height:100px;\n  margin:10px auto 5px;\n}\n\n.xc_input_enquiry_message,\n.xc_input_rating_message\n{\n  height:100px;\n}\n\n.xc_form_signup,.xc_form_enquiry,.xc_form_rating\n{\n  /*text-align:center;*/\n}\n\n.xc_chat_container textarea,.xc_chat_container input[type=text]\n{\n  width:95%;\n  min-width:95%;\n  max-width:95%;\n  -webkit-box-sizing:border-box;\n  -moz-box-sizing:border-box;\n  box-sizing:border-box;\n  background-color:#fff;\n  border:1px solid #ccc;\n  -webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  -moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  -webkit-transition:border linear .2s, box-shadow linear .2s;\n  -moz-transition:border linear .2s, box-shadow linear .2s;\n  -o-transition:border linear .2s, box-shadow linear .2s;\n  transition:border linear .2s, box-shadow linear .2s;\n  display:inline-block;\n  font-size:14px;\n  line-height:20px;\n  color:#555;\n  -webkit-border-radius:4px;\n  -moz-border-radius:4px;\n  border-radius:4px;\n  vertical-align:middle;\n  margin:3px 0;\n  padding:4px 6px;\n  resize: none;\n}\n\n.xc_chat_container textarea:focus,.xc_chat_container input[type=text]:focus\n{\n  outline: {{chatWebsite.color_focus}} auto 5px;\n}\n\n.xc_chat_container input[type=text]\n{\n  height: 30px;\n}\n\n.xc_message_sending textarea, .xc_enquiry_sending textarea\n{\n  background: #fff url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/loading.gif) 98% 5px no-repeat;\n}\n\n.xc_chatrow\n{\n  display:block;\n  border-top:1px dashed #e3e3e3;\n  margin:5px 0;\n  clear: both;\n}\n\n.xc_chatrow p\n{\n  color:#444;\n  word-wrap:break-word;\n}\n\n.xc_time\n{\n  float:right;\n  font-size:80%;\n  color:#ccc;\n  padding-left:12px;\n  margin:3px;\n}\n\n.xc_submission_pending\n{\n  background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_clock.png) left center norepeat;\n}\n\n.xc_submission_confirmed\n{\n  background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_tick.png) left center norepeat;\n}\n\n.xc_fullname\n{\n  font-weight:700;\n}\n\n.xc_fullname:after\n{\n  content:":";\n}\n\n.xc_avatar\n{\n  float: left;\n  margin: 0 5px 5px 0;\n  display: inline-block;\n  width: 40px;\n  height: 40px;\n  border-radius: 5px;\n  -moz-border-radius: 5px;\n  -webkit-border-radius: 5px;\n}\n\n.xc_smilie\n{\n  background-repeat:no-repeat;\n  display:inline-block;\n  width:18px;\n  height:18px;\n  text-indent:-9999px;\n  white-space:nowrap;\n}\n\n.xc_btn_load_more\n{\n  width:100%!important;\n}\n\n.xc_notifications_wrapper\n{\n  text-shadow:0 1px 0 rgba(255,255,255,0.5);\n}\n\n.xc_notification_success\n{\n  color:#468847;\n}\n\n.xc_notification_error\n{\n  color:#b94a48;\n}\n\n.xc_errorlist\n{\n  margin:0 0 0 25px;\n  padding:0;\n}\n\ni.xc_btn_notifications_close\n{\n  float:right;\n  font-weight:700;\n  font-size:20px;\n  color:#ccc;\n  cursor:pointer;\n  margin:-15px 0 0;\n  padding:0;\n}\n\n.xc_btn_style\n{\n  width:95%;\n  text-align:center;\n  line-height:1.2;\n  font-size:90%;\n  -moz-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  -webkit-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  background:0;\n  background-color:{{chatWebsite.color_button}};\n  -moz-border-radius:4px;\n  -webkit-border-radius:4px;\n  border-radius:4px;\n  border:1px solid {{chatWebsite.color_button}};\n  display:inline-block;\n  color:#fff;\n  font-weight:700;\n  text-decoration:none;\n  text-shadow:1px 1px 0 #000c17;\n  margin:0 auto 5px;\n  padding:2px 0;\n}\n\n.xc_btn_style:hover\n{\n  background:0;\n  background-color:{{chatWebsite.color_button}};\n  color: #fff;\n  text-decoration: none;\n}\n\n.xc_btn_style:active\n{\n  position:relative;\n  top:1px;\n}\n\n.xc_composing_container\n{\n  display: none;\n  width: 95%;\n  margin: 0 auto;\n  background: transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_pencil.png) 6px center no-repeat;\n  padding-left: 19px;\n  font-style: italic;\n}\n\n@media only screen and (max-height: 620px) {\n  .xc_conversation_container\n  {\n    max-height:300px!important;\n  }\n}\n\n@media only screen and (max-height: 545px) {\n  .xc_conversation_container\n  {\n    max-height:200px!important;\n  }\n}\n\n@media only screen and (max-height: 445px) {\n  .xc_conversation_container\n  {\n    max-height:150px!important;\n  }\n}\n\n@media only screen and (max-width: 480px) {\n  .xc_chat_container\n  {\n    width:95%!important;\n    right:auto!important;\n    -webkit-border-top-left-radius:15px;\n    -webkit-border-top-right-radius:15px;\n    -moz-border-radius-topleft:15px;\n    -moz-border-radius-topright:15px;\n    border-top-left-radius:15px;\n    border-top-right-radius:15px;\n    box-shadow:0 0 5px rgba(0,0,0,.5);\n    -webkit-box-shadow:0 0 5px rgba(0,0,0,.5);\n    -moz-box-shadow:0 0 5px rgba(0,0,0,.5);\n  }\n\n  div.xc_chat_head\n  {\n    background-color:#036;\n    background-image:none;\n    line-height:25px;\n    height:auto;\n    -webkit-border-top-left-radius:15px;\n    -webkit-border-top-right-radius:15px;\n    -moz-border-radius-topleft:15px;\n    -moz-border-radius-topright:15px;\n    border-top-left-radius:15px;\n    border-top-right-radius:15px;\n    padding:10px;\n  }\n\n  .xc_chat_toggle_container\n  {\n    background-color:#fff;\n    background-image:none;\n    border-color:#036;\n    border-style:solid;\n    border-width:0 1px;\n  }\n\n  .xc_header_icon\n  {\n    background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n    margin:0;\n  }\n\n  .xc_header_icon span.xc_notification_badge span\n  {\n    top:-5px;\n    left:5px;\n  }\n\n  .xc_notification_success\n  {\n    background-color:#dff0d8;\n    border:1px solid #d6e9c6;\n  }\n\n  .xc_conversation_container\n  {\n    max-height:375px;\n    border-color:#036;\n  }\n\n  .xc_notification_error\n  {\n    background-color:#f2dede;\n    border:1px solid #eed3d7;\n  }\n\n  .xc_sub-head-spacer\n  {\n    display:none;\n    padding:0;\n  }\n\n  .xc_chat_head-title,.xc_conversation\n  {\n    margin:0;\n  }\n}\n</style>\n<div class="xc_chat_container">\n  <div class="xc_chat_head {{chatWebsite.header_shape}}">\n    <i class="xc_header_icon">\n      <span class="xc_notification_badge">\n        <span class="xc_notification_badge_number"></span>\n      </span>\n    </i>\n    <span class="xc_chat_head-title">{{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}</span>\n  </div>\n  <div class="xc_chat_toggle_container">\n    <div class="xc_sub-head-spacer"></div>\n    <!-- <div class="xc_notifications_wrapper">\n    <ul class="xc_errorlist"></ul>\n  </div> -->\n  <div class="xc_enquiry_wrapper" data-ng-show=\'statePreview.state == "offline"\'>\n    <form class="xc_form_enquiry" accept-charset="UTF-8">\n      <p class="xc_offline_message" ng-bind-html=\'chatWebsite.offline_message\'></p>\n      <br>\n      <div ng-if="chatWebsite.enquiry_enable">\n        <div class="xc_div_group">\n          <label for="enquiryFullname" class="xc_label">Name *</label>\n          <input id="enquiryFullname" maxlength="45" data-label="Name" type="text" name="data[Enquiry][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_enquiry_fullname" required/>\n        </div>\n        <br>\n        <div class="xc_div_group">\n          <label for="enquiryEmail" class="xc_label">Email Address *</label>\n          <input id="enquiryEmail" maxlength="85" type="text" data-label="Email Address" name="data[Enquiry][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_enquiry_email" required/>\n        </div>\n        <br>\n        <div class="xc_div_group">\n          <label for="enquiryMessage" class="xc_label">Message*</label>\n          <textarea id="enquiryMessage" data-label="Message" maxlength="1500" placeholder="{{chatWebsite.enquiry_message_placeholder}}" name="data[Enquiry][message]" class="xc_input_enquiry_message" required></textarea>\n        </div>\n        <br>\n        <button type="submit" class="xc_btn_enquiry xc_btn_style">{{chatWebsite.enquiry_button}}</button>\n      </div>\n    </form>\n  </div>\n  <div class="xc_signup_wrapper" data-ng-show=\'statePreview.state == "online"\'>\n    <form class="xc_form_signup" accept-charset="UTF-8">\n      <p class="xc_online_message" ng-bind-html=\'chatWebsite.online_message\'></p>\n      <br>\n      <div class="xc_div_group">\n        <label for="dataFullname" class="xc_label">Fullname *</label>\n        <input maxlength="45" id="dataFullname" data-label="Fullname" type="text" name="data[Discussion][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_fullname" required/>\n      </div>\n      <br>\n      <div class="xc_div_group">\n        <label for="dataEmail" class="xc_label">Email Address *</label>\n        <input maxlength="85" id="dataEmail" data-label="Email Address" type="text" name="data[Discussion][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_email" required/>\n      </div>\n      <br>\n      <input type="hidden" class="xc_input_visitor_time" name="data[Discussion][visitor_time]" />\n      <button type="submit" class="xc_btn_signup xc_btn_style">{{chatWebsite.start_chat_button}}</button>\n    </form>\n  </div>\n  <div class="xc_rating_wrapper" data-ng-show=\'statePreview.state == "rating"\'>\n    <form class="xc_form_rating" accept-charset="UTF-8">\n      <p class="xc_rating_message">{{chatWebsite.rating_message}}</p>\n      <br>\n      <div class="xc_rating">\n        <label class="xc_rating_label" style="padding:30px;">\n          <input type="radio" name="data[Rating][rating]" value="good" />\n          <img src="{{chatWebsite.remote}}/api/xchatty/assets?resource=images/like.png" alt="Good" height="50"/>\n        </label>\n        <label class="xc_rating_label" style="padding:30px;">\n          <input type="radio" name="data[Rating][rating]" value="bad"/>\n          <img src="{{chatWebsite.remote}}/api/xchatty/assets?resource=images/dislike.png" alt="Good" height="50"/>\n        </label>\n      </div>\n      <div class="xc_div_group">\n        <label for="ratingMessage" class="xc_label">Message</label>\n        <textarea id="ratingMessage" data-label="Message" maxlength="1500" name="data[Rating][message]" class="xc_input_rating_message"></textarea>\n      </div>\n      <button type="submit" class="xc_button_rating xc_btn_style">{{chatWebsite.rating_send}}</button>\n      <button type="button" class="xc_button_skip_rating xc_btn_style">{{chatWebsite.rating_skip}}</button>\n    </form>\n  </div>\n  <div class="xc_footer">\n    <div class="xc_powered"><a>Powered by Xenialab | Trademark xCALLY</a></div>\n  </div>\n</div>\n</div>\n'),a.put("app/channels/chat/queue/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid && form.general.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START TIMEOUT -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid}">\n      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="number" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n      <span data-ng-show="(form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid && form.general.timeout.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TIMEOUT -->\n\n    <!-- START HEADER SHAPE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid}">\n      <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n        <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid && form.general.strategy.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END HEADER SHAPE -->\n\n\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/queue/list/list.html",'<div class="row">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-docs"></i>\n                                             <a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle " href="#"  data-ng-click="createItem()">\n                                          <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }}\n                                 </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <label for="penalty">{{\'APPLICATION_PENALTY\' | translate}}</label>\n                                          <div class="input-group input-small mbottom20">\n                                                       <input type="number" class="spinner-input form-control" maxlength="3" data-ng-model="queue.penalty" readonly>\n                                                 <div class="spinner-buttons input-group-btn btn-group-vertical">\n                                                              <button type="button" class="btn spinner-up btn-xs blue" data-ng-click="queue.penalty=queue.penalty+1">\n                                                                       <i class="fa fa-angle-up"></i>\n                                                                </button>\n                                                             <button type="button" class="btn spinner-down btn-xs blue" data-ng-disabled="!queue.penalty" data-ng-click="queue.penalty=queue.penalty-1">\n                                                                   <i class="fa fa-angle-down"></i>\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                     <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.queues.view.settings\')}">\n                                                 <a data-ng-href="/channels/chat/queues/view/{{queue.id}}/settings">\n                                                   <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.chat.queues.view.agents\')}">\n                                                   <a data-ng-href="/channels/chat/queues/view/{{queue.id}}/agents">\n                                                     <i class="icon-people"></i>\n                                                   {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/queue/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateChatQueue()" novalidate>\n                                     <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_AGENT\' | translate}} {{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                            <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                               <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns  class="ui-grid" ui-grid-tree-view ui-grid-expandable-row ui-grid-pagination auto-resize>\n                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/realtime/view/agent/agent.modal.info.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_INTERFACE_INFO\' | translate }}</h3>\n</div>\n<div class="modal-body">\n<div data-ng-if="agent.ipaddr" class="well">\n  <div>{{agent.ipaddr}}:{{agent.port}}</div>\n  <div>{{agent.fullcontact}}</div>\n  <div>{{agent.useragent}}</div>\n  <div>{{agent.lastms}}</div>\n</div>\n<div data-ng-if="!agent.ipaddr" class="alert alert-danger" role="alert">\n  {{\'MESSAGE_NO_AVAILABLE_INFO\' | translate}}\n</div>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/realtime/view/agent/queue.modal.add.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_JOIN_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <div class="form-group row">\n  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n  <div class="col-md-10">\n    <ui-select multiple ng-model="item.queues" theme="bootstrap" required>\n      <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$item.name}}</ui-select-match>\n      <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n        <div ng-bind-html="queue.name | highlight: $select.search"></div>\n      </ui-select-choices>\n    </ui-select>\n  </div>\n</div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" ui-grid-tree-view auto-resize>\n                     <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/channels/chat/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initSessions()">\n    <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" auto-resize>\n                       <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="#">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <div>\n                 <nav class="navbar navbar-default" role="navigation">\n                         <div class="collapse navbar-collapse">\n                                        <ul class="nav navbar-nav">\n                                           <li data-ng-class="{\'active\': $state.is(\'main.channels.chat.realtime.view.agents\')}">\n                                                     <a href="/channels/chat/realtime/view/agents">\n                                                                {{\'APPLICATION_AGENTS\' | translate}}\n                                                        </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                        </nav>\n                </div>\n\n              <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/visitor/list/list.html",'<div class="row">\n      <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-question"></i>\n                                         <a href="/channels/chat/visitors/list">{{ \'APPLICATION_VISITORS\' | translate }}</a>\n                                 </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-question font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/visitor/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-question"></i>\n                                 <a href="/channels/chat/visitors/list">{{ \'APPLICATION_VISITORS\' | translate }}</a>\n                                 <i  class="fa fa-angle-right"></i>\n                            </li>\n                         <li data-ng-show="chatVisitor">\n                                       <a href="#">{{chatVisitor.fullname}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/visitor.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatVisitor.fullname}}\n                                      </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.chat.visitors.view.profile\')}">\n                                                        <a data-ng-href="/channels/chat/visitors/view/{{chatVisitor.id}}/profile">\n                                                    <i class="icon-tag"></i>\n                                                      {{ \'APPLICATION_PROFILE\' | translate}} </a>\n                                         </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/visitor/view/view.profile.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PROFILE\' | translate}}</span>\n                         </div>\n                        </div>\n                        <div class="portlet-body" data-ng-init="initView()">\n                          <div>\n                                 <h4 class="profile-desc-title">{{chatVisitor.email}}</h4>\n                                     <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-magnifier"></i>\n                                                <a href="#" class="inactive-link">{{chatVisitor.origin}}</a>\n                                  </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-globe"></i>\n                                            <a href="#" class="inactive-link">{{chatVisitor.remote_address}}</a>\n                                  </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-user"></i>\n                                             <a href="#" class="inactive-link">{{chatVisitor.user_agent | truncate: 50: \'...\'}}</a>\n                                      </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-flag"></i>\n                                             <a href="#" class="inactive-link">{{chatVisitor.visitor_language}}</a>\n                                        </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-home"></i>\n                                             <a href="#" class="inactive-link">{{chatVisitor.referer}}</a>\n                                 </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-cursor"></i>\n                                           <a href="#" class="inactive-link">{{chatVisitor.browser}}</a>\n                                 </div>\n                                        <div class="margin-top-20 profile-desc-link">\n                                         <i class="icon-screen-desktop"></i>\n                                           <a href="#" class="inactive-link">{{chatVisitor.os}}</a>\n                                      </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/website/list/list.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-globe"></i>\n                                    <a href="#">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                           </li>\n                 </ul>\n         </div>\n        </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_WEB_SITES\' | translate }}</a> </span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/chat/websites/wizard">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_WEB_SITE\' | translate }}\n                                              </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/website/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/chat/websites/view/{{chatWebsite.id}}/actions/wizard" data-toggle="dropdown">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n                                                </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/website/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n      <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.settings" ng-submit="updateItem()" novalidate>\n                                      <!-- START APP -->\n                                    <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n                                          <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                       </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END APP -->\n\n                                    <!-- START HOST -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                         <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END HOST -->\n\n                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                          <!-- START QUEUE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END QUEUE -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                          <!-- START AGENT -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END AGENT -->\n                                    </div>\n\n                                      <!-- START INTERVAL_TYPE -->\n                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n                                           <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                               {{ intType.name | translate }}\n                                                        </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END INTERVAL_TYPE -->\n\n                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                <!-- START TIME -->\n                                           <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                   <div class="input-group input-large">\n                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                             </fieldset>\n                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                     </div>\n                                                </div>\n                                                <!-- END TIME -->\n\n                                           <!-- START ALWAYS -->\n                                         <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                 <div class="input-group input-large">\n                                                         <label class="control-label pointer-cursor">\n                                                                  <input\n                                                                                bs-switch\n                                                                             data-ng-model="application.alwaysTime"\n                                                                                type="checkbox"\n                                                                               switch-active="{{ isActive }}"\n                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                switch-on-color="{{ onColor }}"\n                                                                               switch-off-color="{{ offColor }}"\n                                                                             switch-animate="{{ animate }}"\n                                                                                switch-size="{{ size }}"\n                                                                              switch-label="{{ label }}"\n                                                                            switch-icon="{{ icon }}"\n                                                                              switch-radio-off="{{ radioOff }}"\n                                                                             switch-label-width="{{ labelWidth }}"\n                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                               </label>\n                                                      </div>\n                                                </div>\n                                                <!-- END ALWAYS -->\n\n                                         <!-- START WEEKDAY -->\n                                                <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                        <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END WEEKDAY -->\n\n                                                <!-- START MONTHDAY -->\n                                               <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                       <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTHDAY -->\n\n                                               <!-- START MONTH -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                  <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTH -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                          <!-- START INTERVALS -->\n                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                    {{ interval.name}}\n                                                            </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVALS -->\n\n                                      </div>\n                                        <button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n                          </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/website/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n        <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n                                           <form name="forms.action" novalidate>\n                                                 <!-- START APP -->\n                                                    <div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n                                                               <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END APP -->\n\n                                                    <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                                         <span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                                          <!-- START QUEUE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                                          <!-- START AGENT -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END AGENT -->\n                                                    </div>\n\n                                                      <!-- START INTERVAL_TYPE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n                                                         <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                               {{ intType.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVAL_TYPE -->\n\n                                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                                <!-- START TIME -->\n                                                           <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                   <div class="input-group input-large">\n                                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                                             </fieldset>\n                                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                                     </div>\n                                                                </div>\n                                                                <!-- END TIME -->\n\n                                                           <!-- START ALWAYS -->\n                                                         <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                                 <div class="input-group input-large">\n                                                                         <label class="control-label pointer-cursor">\n                                                                                  <input\n                                                                                                bs-switch\n                                                                                             data-ng-model="application.alwaysTime"\n                                                                                                type="checkbox"\n                                                                                               switch-active="{{ isActive }}"\n                                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                                switch-on-color="{{ onColor }}"\n                                                                                               switch-off-color="{{ offColor }}"\n                                                                                             switch-animate="{{ animate }}"\n                                                                                                switch-size="{{ size }}"\n                                                                                              switch-label="{{ label }}"\n                                                                                            switch-icon="{{ icon }}"\n                                                                                              switch-radio-off="{{ radioOff }}"\n                                                                                             switch-label-width="{{ labelWidth }}"\n                                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                                               </label>\n                                                                      </div>\n                                                                </div>\n                                                                <!-- END ALWAYS -->\n\n                                                         <!-- START WEEKDAY -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                        <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate}}\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate }}\n                                                                                        </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END WEEKDAY -->\n\n                                                                <!-- START MONTHDAY -->\n                                                               <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                       <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTHDAY -->\n\n                                                               <!-- START MONTH -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                  <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                                          <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                                    {{ interval.name}}\n                                                                            </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n\n                                                      <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n                                         </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n                                              <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                  </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/channels/chat/website/view/embedding/view/view.html",'<div class="row" data-ng-init="initView()">\n  <div class="col-md-12">\n    <div class="portlet light">\n      <div class="portlet-title">\n        <div class="caption caption-md">\n          <i class="icon-globe theme-font hide"></i>\n          <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_EMBEDDING\' | translate}}</span>\n        </div>\n        <div class="actions">\n          <div class="btn-group">\n            <a class="btn green-jungle" href="#" data-ng-click="copyToClipboard();">\n              <i class="fa fa-clipboard"></i> {{\'APPLICATION_COPY_TO_CLIPBOARD\' | translate}}\n            </a>\n          </div>\n        </div>\n      </div>\n      <div class="portlet-body">\n        <div class="row">\n          <div class="col-md-12">\n            <h3>{{\'APPLICATION_EMBED_SNIPPET\' | translate}}</h3>\n            <p>\n              {{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n            </p>\n            <div class="form-body">\n              <div class="form-group">\n                <div class="col-md-12">\n                  <code-mirror lang="html" model="snippetCode"></code-mirror>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n'),a.put("app/channels/chat/website/view/form/view/view.html",'<div class="row" data-ng-init="getChatWebsiteFields(\'online\');getChatWebsiteFields(\'offline\');">\n  <div class="col-md-12">\n    <div class="portlet light">\n      <div class="portlet-title tabbable-line">\n        <ul class="nav nav-tabs">\n          <li class="active">\n            <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_ONLINE\' | translate}}</a>\n          </li>\n          <li>\n            <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_OFFLINE\' | translate}}</a>\n          </li>\n        </ul>\n      </div>\n    <div class="portlet-body">\n      <div class="row">\n        <div class="col-md-12">\n          <div class="tab-content">\n            <div class="tab-pane active" id="tab_1_1">\n              <div class="row">\n                <div class="col-md-6">\n                  <div class="portlet">\n                    <div class="portlet-title">\n                      <div class="caption font-green-sharp">\n                        <i class="icon-book-open font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_FIELDS_SELECTED\' | translate }}</span>\n                      </div>\n                      <div class="actions">\n                        <div class="btn-group">\n                          <a class="btn green-jungle" href="#" data-ng-click="saveForm(\'online\');">\n                            <i class="fa fa-check"></i> {{ \'APPLICATION_SAVE\' | translate }}\n                          </a>\n                        </div>\n                      </div>\n                    </div>\n                    <div class="portlet-body">\n                      <div fb-builder="online"></div>\n                    </div>\n                  </div>\n                </div>\n                <div class="col-md-6">\n                  <div class="portlet">\n                    <div class="portlet-title">\n                      <div class="caption font-green-sharp">\n                        <i class="icon-book-open font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_FIELDS_AVAILABLE\' | translate }}</span>\n                      </div>\n                    </div>\n                    <div class="portlet-body">\n                      <div fb-components></div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class="tab-pane" id="tab_1_2">\n              <div class="row">\n                <div class="col-md-6">\n                  <div class="portlet">\n                    <div class="portlet-title">\n                      <div class="caption font-green-sharp">\n                        <i class="icon-book-open font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_FIELDS_SELECTED\' | translate }}</span>\n                      </div>\n                      <div class="actions">\n                        <div class="btn-group">\n                          <a class="btn green-jungle" href="#" data-ng-click="saveForm(\'offline\');">\n                            <i class="fa fa-check"></i> {{ \'APPLICATION_SAVE\' | translate }}\n                          </a>\n                        </div>\n                      </div>\n                    </div>\n                    <div class="portlet-body">\n                      <div fb-builder="offline"></div>\n                    </div>\n                  </div>\n                </div>\n                <div class="col-md-6">\n                  <div class="portlet">\n                    <div class="portlet-title">\n                      <div class="caption font-green-sharp">\n                        <i class="icon-book-open font-green-sharp"></i>\n                        <span class="caption-subject">{{ \'APPLICATION_FIELDS_AVAILABLE\' | translate }}</span>\n                      </div>\n                    </div>\n                    <div class="portlet-body">\n                      <div fb-components></div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n</div>\n'),a.put("app/channels/chat/website/view/proactive/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{title}}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START TYPE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.type.$touched || form.$submitted) && form.type.$invalid}">\n      <label class="control-label">{{\'APPLICATION_TYPE\' | translate}}</label>\n      <ui-select name="type" ng-model="item.type" theme="bootstrap" ng-disabled="disabled">\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n        <ui-select-choices repeat="item.type as item in possibleType | filter: $select.search">\n          <div ng-bind-html="item.title | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n    </div>\n    <!-- END TYPE -->\n\n    <!-- START SELECTOR -->\n    <div class="form-group" data-ng-if="item.type === \'mouseOver\'" data-ng-class="{\'has-error\': (form.selector.$touched || form.$submitted) && form.selector.$invalid}">\n      <label class="control-label">{{\'APPLICATION_SELECTOR\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="selector" placeholder="{{\'APPLICATION_SELECTOR\' | translate}}" class="form-control" data-ng-model="item.selector" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END SELECTOR -->\n\n    <!-- START TIMEOUT -->\n    <div class="form-group" data-ng-if="item.type === \'timeout\'" data-ng-class="{\'has-error\': (form.timeout.$touched || form.$submitted) && form.timeout.$invalid}">\n      <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="item.timeout" min="0" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TIMEOUT -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/chat/website/view/proactive/list/list.html",'<div class="row" data-ng-init="initProactiveActions()">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_PROACTIVE_ACTIONS\' | translate}}</span>\n                               </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-toggle="dropdown" data-ng-click="createItem()">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROACTIVE_ACTION\' | translate }}\n                                              </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/chat/website/view/snippet/view/view.html",'<div class="row" data-ng-init="initView()">\n <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SNIPPET\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_APPEARANCE\' | translate}}</a>\n                                   </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_FORMS\' | translate}}</a>\n                                        </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_LABELS\' | translate}}</a>\n                                       </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_SETTINGS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_5" data-toggle="tab">{{\'APPLICATION_OFFLINE\' | translate}}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="row">\n                                             <div class="col-md-8">\n                                                        <div class="tab-content">\n\n                                                           <!-- APPEARANCE TAB -->\n                                                               <div class="tab-pane active" id="tab_1_1">\n                                                                    <form name="forms.formAppearance" data-ng-submit="forms.formAppearance.$valid && updateItem()" novalidate>\n\n                                                                          <!-- START MAIN COLOR -->\n                                                                             <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                  <input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{chatWebsite.color}}" class="form-control" data-ng-model="chatWebsite.color" required/>\n                                                                                        <span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n                                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END MAIN COLOR -->\n\n                                                                             <!-- START FOCUS COLOR -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                 <input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{chatWebsite.color_focus}}" class="form-control" data-ng-model="chatWebsite.color_focus" required/>\n                                                                                  <span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END FOCUS COLOR -->\n\n                                                                            <!-- START BUTTON COLOR -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                        <input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{chatWebsite.color_button}}" class="form-control" data-ng-model="chatWebsite.color_button" required/>\n                                                                                      <span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END BUTTON COLOR -->\n\n                                                                           <!-- START HEADER SHAPE -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                                        <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                                                       <ui-select data-ng-model="chatWebsite.header_shape" name="headerShape" theme="bootstrap">\n                                                                                             <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n                                                                                                        <div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n                                                                                               </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END HEADER SHAPE -->\n\n                                                                           <!-- START ANIMATION TOGGLE -->\n                                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                                        <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                                                       <ui-select data-ng-model="chatWebsite.animation" name="animationToggle" theme="bootstrap">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                                                <ui-select-choices repeat="animationToggle in [true, false] | filter: $select.search">\n                                                                                                        <div ng-bind-html="animationToggle ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                                             </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END ANIMATION TOGGLE -->\n\n\n                                                                             <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END APPEARANCE TAB -->\n\n                                                         <!-- FORMS TAB -->\n                                                            <div class="tab-pane" id="tab_1_2">\n                                                                   <form name="forms.formFunctionality" data-ng-submit="forms.formFunctionality.$valid && updateItem()" novalidate>\n\n                                                                            <!-- START DOWNLOAD TRANSCRIPT -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n                                                                                      <ui-select data-ng-model="chatWebsite.download_transcript" name="downloadTranscript" theme="bootstrap">\n                                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                                                <ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n                                                                                                     <div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <!-- END DOWNLOAD TRANSCRIPT -->\n\n                                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END FORMS TAB -->\n\n                                                              <!-- STRINGS TAB -->\n                                                          <div class="tab-pane" id="tab_1_3">\n                                                                   <form name="forms.formLabel" data-ng-submit="forms.formLabel.$valid && updateItem()" novalidate>\n\n                                                                            <h4 class="block" data-ng-show="statePreview.state == \'online\'">{{\'APPLICATION_ONLINE_STATE\' | translate}}</h4>\n\n                                                                         <!-- START HEADER ONLINE -->\n                                                                          <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                                                      <label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n                                                                                    <input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_online"/>\n                                                                           </div>\n                                                                                <!-- END HEADER ONLINE -->\n\n                                                                          <!-- START ONLINE MESSAGE-->\n                                                                          <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n                                                                                   <input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.online_message"/>\n                                                                                </div>\n                                                                                <!-- END HEADER ONLINE -->\n\n                                                                          <!-- START USERNAME PLACEHOLDER -->\n                                                                           <div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n                                                                                   <label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n                                                                                     <input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.username_placeholder"/>\n                                                                              </div>\n                                                                                <!-- END USERNAME PLACEHOLDER -->\n\n                                                                           <!-- START EMAIL PLACEHOLDER -->\n                                                                              <div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n                                                                                        <input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.email_placeholder"/>\n                                                                               </div>\n                                                                                <!-- END EMAIL PLACEHOLDER -->\n\n                                                                              <!-- START START CHAT BUTTON -->\n                                                                              <div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n                                                                                        <input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.start_chat_button"/>\n                                                                                </div>\n                                                                                <!-- END START CHAT BUTTON -->\n\n                                                                              <h4 class="block" data-ng-show="statePreview.state == \'rating\'">{{\'APPLICATION_RATING_STATE\' | translate}}</h4>\n\n                                                                         <!-- START RATING MESSAGE -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'rating\'" data-ng-class="{\'has-error\': (forms.formLabel.ratingMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingMessage.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_RATING_MESSAGE\' | translate}}</label>\n                                                                                   <input type="text" name="ratingMessage" placeholder="{{\'APPLICATION_RATING_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.rating_message"/>\n                                                                                </div>\n                                                                                <!-- END RATING MESSAGE -->\n\n                                                                         <!-- START RATING SEND BUTTON -->\n                                                                             <div class="form-group" data-ng-show="statePreview.state == \'rating\'" data-ng-class="{\'has-error\': (forms.formLabel.ratingSend.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingSend.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_RATING_SEND_BUTTON\' | translate}}</label>\n                                                                                       <input type="text" name="ratingSend" placeholder="{{\'APPLICATION_RATING_SEND_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.rating_send"/>\n                                                                          </div>\n                                                                                <!-- END RATING SEND BUTTON -->\n\n                                                                             <!-- START RATING SKIP BUTTON -->\n                                                                             <div class="form-group" data-ng-show="statePreview.state == \'rating\'" data-ng-class="{\'has-error\': (forms.formLabel.ratingSkip.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingSkip.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_RATING_SKIP_BUTTON\' | translate}}</label>\n                                                                                       <input type="text" name="ratingSkip" placeholder="{{\'APPLICATION_RATING_SKIP_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.rating_skip"/>\n                                                                          </div>\n                                                                                <!-- END RATING SKIP BUTTON -->\n\n                                                                             <h4 class="block" data-ng-show="statePreview.state == \'offline\'">{{\'APPLICATION_OFFLINE_STATE\' | translate}}</h4>\n\n                                                                               <!-- START HEADER OFFLINE -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n                                                                                   <input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_offline"/>\n                                                                                </div>\n                                                                                <!-- END HEADER OFFLINE -->\n\n                                                                         <!-- START OFFLINE MESSAGE-->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n                                                                                  <input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.offline_message"/>\n                                                                             </div>\n                                                                                <!-- END OFFLINE MESSAGE -->\n\n                                                                                <!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n                                                                             <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                                       <label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n                                                                                      <input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_message_placeholder"/>\n                                                                          </div>\n                                                                                <!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n                                                                            <!-- START ENQUIRY BUTTON -->\n                                                                         <div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                                 <label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n                                                                                   <input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_button"/>\n                                                                                </div>\n                                                                                <!-- END ENQUIRY BUTTON -->\n\n                                                                         <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END STRINGS TAB -->\n\n                                                            <!-- SETTINGS TAB -->\n                                                         <div class="tab-pane" id="tab_1_4">\n                                                                   <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n\n                                                                                <!-- START NAME -->\n                                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n                                                                                        <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="chatWebsite.name" required/>\n                                                                                    <span data-ng-show="(forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSettings.name.$invalid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END NAME -->\n\n                                                                           <!-- START ADDRESS -->\n                                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                 <input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.address" required/>\n                                                                                        <span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END ADDRESS -->\n\n                                                                                <!-- START REMOTE IP -->\n                                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                                      <input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.remote" required/>\n                                                                                       <span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n                                                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END REMOTE IP -->\n\n                                                                              <!-- START DESCRIPTION -->\n                                                                            <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.description.$touched || forms.formSetting.$submitted) && forms.formSetting.description.$invalid}">\n                                                                                  <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="chatWebsite.description"/>\n                                                                                </div>\n                                                                                <!-- END DESCRIPTION -->\n\n                                                                            <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END SETTINGS TAB -->\n\n                                                           <!-- OFFLINE TAB -->\n                                                          <div class="tab-pane" id="tab_1_5">\n                                                                   <form name="forms.formOffline" data-ng-submit="forms.formOffline.$valid && updateItem()" novalidate>\n\n                                                                                <!-- START ENQUIRY ENABLE -->\n                                                                         <div class="form-group">\n                                                                                      <label class="control-label">{{\'APPLICATION_ENQUIRY_ENABLED\' | translate}}</label></br>\n                                                                                     <input\n                                                                                            bs-switch\n                                                                                                 class="form-control"\n                                                                                      ng-model="chatWebsite.enquiry_enable"\n                                                                                         type="checkbox"\n                                                                                       switch-active="{{ enquirySwitch.isActive }}"\n                                                                                          switch-on-text="{{ enquirySwitch.onText }}"\n                                                                                           switch-off-text="{{ enquirySwitch.offText }}"\n                                                                                         switch-on-color="{{ enquirySwitch.onColor }}"\n                                                                                         switch-off-color="{{ enquirySwitch.offColor }}"\n                                                                                       switch-animate="{{ enquirySwitch.animate }}"\n                                                                                          switch-size="{{ enquirySwitch.size }}"\n                                                                                        switch-label="{{ enquirySwitch.label }}"\n                                                                                      switch-icon="{{ enquirySwitch.icon }}"\n                                                                                        switch-radio-off="{{ enquirySwitch.radioOff }}"\n                                                                                       switch-label-width="{{ enquirySwitch.labelWidth }}"\n                                                                                           switch-handle-width="{{ enquirySwitch.handleWidth }}">\n                                                                            </div>\n                                                                                <!-- END ENQUIRY ENABLE -->\n\n                                                                         <!-- START ENQUIRY FORWARDING -->\n                                                                             <div class="form-group" data-ng-if="chatWebsite.enquiry_enable">\n                                                                                      <label class="control-label">{{\'APPLICATION_ENQUIRY_FORWARDING\' | translate}}</label></br>\n                                                                                  <input\n                                                                                            bs-switch\n                                                                                                 class="form-control"\n                                                                                      ng-model="chatWebsite.enquiry_forwarding"\n                                                                                     type="checkbox"\n                                                                                       switch-active="{{ enquirySwitch.isActive }}"\n                                                                                          switch-on-text="{{ enquirySwitch.onText }}"\n                                                                                           switch-off-text="{{ enquirySwitch.offText }}"\n                                                                                         switch-on-color="{{ enquirySwitch.onColor }}"\n                                                                                         switch-off-color="{{ enquirySwitch.offColor }}"\n                                                                                       switch-animate="{{ enquirySwitch.animate }}"\n                                                                                          switch-size="{{ enquirySwitch.size }}"\n                                                                                        switch-label="{{ enquirySwitch.label }}"\n                                                                                      switch-icon="{{ enquirySwitch.icon }}"\n                                                                                        switch-radio-off="{{ enquirySwitch.radioOff }}"\n                                                                                       switch-label-width="{{ enquirySwitch.labelWidth }}"\n                                                                                           switch-handle-width="{{ enquirySwitch.handleWidth }}">\n                                                                                    <span class="help-block col-md-12">{{\'MESSAGE_REMEMBER_SMTP_SERVICE_ACCOUNT\' | translate}}.</span>\n                                                                          </div>\n                                                                                <!-- END ENQUIRY FORWARDING -->\n\n                                                                             <!-- START REMOTE IP -->\n                                                                              <div class="form-group" data-ng-if="chatWebsite.enquiry_enable && chatWebsite.enquiry_forwarding" data-ng-class="{\'has-error\': (forms.formOffline.forwardingAddress.$touched || forms.formOffline.$submitted) && forms.formSetting.forwardingAddress.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_ENQUIRY_FORWARDING_ADDRESS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                   <input type="text" name="forwardingAddress" placeholder="{{\'APPLICATION_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_forwarding_address" required/>\n                                                                                      <span data-ng-show="(forms.formOffline.forwardingAddress.$touched || forms.formOffline.$submitted) && forms.formOffline.forwardingAddress.$invalid && forms.formOffline.forwardingAddress.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END REMOTE IP -->\n\n                                                                              <!-- START HEADER SHAPE -->\n                                                                           <div class="form-group" data-ng-if="chatWebsite.enquiry_enable && chatWebsite.enquiry_forwarding" data-ng-class="{\'has-error\': (forms.formOffline.OfflineTemplateId.$touched || forms.formOffline.$submitted) && forms.formOffline.OfflineTemplateId.$invalid}">\n                                                                                    <label class="control-label">{{\'APPLICATION_TEMPLATE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                                     <ui-select data-ng-model="chatWebsite.OfflineTemplateId" name="OfflineTemplateId" theme="bootstrap" required>\n                                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="mailTemplate.id as mailTemplate in mailTemplates | filter: $select.search">\n                                                                                                        <div ng-bind-html="mailTemplate.name | highlight: $select.search"></div>\n                                                                                              </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="(forms.formOffline.OfflineTemplateId.$touched || forms.formOffline.$submitted) && forms.formOffline.OfflineTemplateId.$invalid && forms.formOffline.OfflineTemplateId.$error.required" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                                <!-- END HEADER SHAPE -->\n\n                                                                           <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                                  </form>\n                                                               </div>\n                                                                <!-- END OFFLINE TAB -->\n                                                      </div>\n                                                </div>\n                                                <div class="col-md-4">\n                                                        <!-- START STATE -->\n                                                  <div class="form-group">\n                                                              <!-- <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label> -->\n                                                               <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                                               <ui-select data-ng-model="statePreview.state" name="statePreview" theme="bootstrap">\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                   <ui-select-choices repeat="statePreview in [\'online\',\'rating\',\'offline\'] | filter: $select.search">\n                                                                             <div ng-bind-html="statePreview | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END STATE -->\n                                                    <preview></preview>\n                                           </div>\n                                </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/channels/chat/website/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-bubble"></i>\n                                   <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-globe"></i>\n                                    <a href="/channels/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <a href="#">{{chatWebsite.name}}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img src="assets/images/media/website.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chatWebsite.name}}\n                                  </div>\n                                        <div class="profile-usertitle-job">\n                                           {{chatWebsite.address}}\n                                       </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n                               <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.includes(\'main.channels.chat.websites.view.embedding\')}">\n                                                        <a ng-href="/channels/chat/websites/view/{{chatWebsite.id}}/embedding/view">\n                                                  <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_EMBEDDING\' | translate }} </a>\n                                              </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.channels.chat.websites.view.snippet\')}">\n                                                  <a ng-href="/channels/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n                                                    <i class="icon-note"></i>\n                                                     {{ \'APPLICATION_SNIPPET\' | translate }} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.channels.chat.websites.view.form\')}">\n                                                     <a ng-href="/channels/chat/websites/view/{{chatWebsite.id}}/forms/view">\n                                                      <i class="icon-list"></i>\n                                                     {{ \'APPLICATION_FORMS\' | translate }} </a>\n                                          </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.channels.chat.websites.view.proactive\')}">\n                                                        <a ng-href="/channels/chat/websites/view/{{chatWebsite.id}}/proactive/list">\n                                                  <i class="icon-target"></i>\n                                                   {{ \'APPLICATION_PROACTIVE_ACTIONS\' | translate }} </a>\n                                              </li>\n                                         <li data-ng-class="{active: $state.includes(\'main.channels.chat.websites.view.actions\')}">\n                                                  <a ng-href="/channels/chat/websites/view/{{chatWebsite.id}}/actions/list">\n                                                    <i class="icon-directions"></i>\n                                                       {{ \'APPLICATION_ACTIONS\' | translate }} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/chat/website/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-bubble"></i>\n                                           <a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-globe"></i>\n                                            <a href="/channels/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n                                        </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_WEB_SITE\' | translate }} WIZARD</a> </span>\n                           </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_WEB_SITE_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                               <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$touched && !forms.formSettings.name.$valid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                         <input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.address" required/>\n                                                               <span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ADDRESS -->\n\n                                                        <!-- START REMOTE IP -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_MOTION_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                              <input type="url" name="remote" placeholder="{{\'APPLICATION_MOTION_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remote" required/>\n                                                              <span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END REMOTE IP -->\n\n                                                      <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.form.description"/>\n                                                  </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_WEB_SITE_APPEARANCE\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n                                           <form name="forms.formAppearance" novalidate>\n\n                                                       <!-- START MAIN COLOR -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                          <input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{item.color}}" class="form-control" data-ng-model="item.color" required/>\n                                                              <span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MAIN COLOR -->\n\n                                                     <!-- START FOCUS COLOR -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                         <input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{item.color_focus}}" class="form-control" data-ng-model="item.color_focus" required/>\n                                                                <span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FOCUS COLOR -->\n\n                                                    <!-- START BUTTON COLOR -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{item.color_button}}" class="form-control" data-ng-model="item.color_button" required/>\n                                                            <span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END BUTTON COLOR -->\n\n                                                   <!-- START HEADER SHAPE -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_HEADER_SHAPE\' | translate}}</label>\n                                                             <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="item.animation" required/> -->\n                                                              <ui-select data-ng-model="item.header_shape" name="headerShape" theme="bootstrap">\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n                                                                      <ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n                                                                                <div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END HEADER SHAPE -->\n\n                                                   <!-- START ANIMATION TOGGLE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n                                                                <ui-select data-ng-model="item.animation" name="animationToggle" theme="bootstrap">\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected  ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                       <ui-select-choices repeat="filter in [true,false] | filter: $select.search">\n                                                                          <div ng-bind-html="filter ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END ANIMATION TOGGLE -->\n\n\n                                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_LABELS\' | translate}}" canexit="exitValidation(forms.formLabel.$valid)">\n                                             <form name="forms.formLabel" novalidate>\n\n                                                    <!-- START HEADER ONLINE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n                                                            <input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="item.header_online"/>\n                                                  </div>\n                                                        <!-- END HEADER ONLINE -->\n\n                                                  <!-- START ONLINE MESSAGE-->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n                                                           <input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.online_message"/>\n                                                       </div>\n                                                        <!-- END HEADER ONLINE -->\n\n                                                  <!-- START USERNAME PLACEHOLDER -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n                                                             <input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.username_placeholder"/>\n                                                     </div>\n                                                        <!-- END USERNAME PLACEHOLDER -->\n\n                                                   <!-- START EMAIL PLACEHOLDER -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n                                                                <input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.email_placeholder"/>\n                                                      </div>\n                                                        <!-- END EMAIL PLACEHOLDER -->\n\n                                                      <!-- START START CHAT BUTTON -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n                                                                <input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="item.start_chat_button"/>\n                                                       </div>\n                                                        <!-- END START CHAT BUTTON -->\n\n                                                      <!-- START RATING MESSAGE -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.ratingMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingMessage.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_RATING_MESSAGE\' | translate}}</label>\n                                                           <input type="text" name="ratingMessage" placeholder="{{\'APPLICATION_RATING_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.rating_message"/>\n                                                       </div>\n                                                        <!-- END RATING MESSAGE -->\n\n                                                 <!-- START RATING START TEXT -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.ratingSend.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingSend.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_RATING_SEND_BUTTON\' | translate}}</label>\n                                                               <input type="text" name="ratingSend" placeholder="{{\'APPLICATION_RATING_SEND_BUTTON\' | translate}}" class="form-control" data-ng-model="item.rating_send"/>\n                                                 </div>\n                                                        <!-- END RATING START TEXT -->\n\n                                                      <!-- START RATING MESSAGE -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.ratingSkip.$touched || forms.formLabel.$submitted) && forms.formLabel.ratingSkip.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_RATING_SKIP_BUTTON\' | translate}}</label>\n                                                               <input type="text" name="ratingSkip" placeholder="{{\'APPLICATION_RATING_SKIP_BUTTON\' | translate}}" class="form-control" data-ng-model="item.rating_skip"/>\n                                                 </div>\n                                                        <!-- END RATING MESSAGE -->\n\n                                                 <!-- START HEADER OFFLINE -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n                                                           <input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="item.header_offline"/>\n                                                       </div>\n                                                        <!-- END HEADER OFFLINE -->\n\n                                                 <!-- START OFFLINE MESSAGE-->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n                                                          <input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.offline_message"/>\n                                                    </div>\n                                                        <!-- END OFFLINE MESSAGE -->\n\n                                                        <!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n                                                              <input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.enquiry_message_placeholder"/>\n                                                 </div>\n                                                        <!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n                                                    <!-- START ENQUIRY BUTTON -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n                                                           <input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="item.enquiry_button"/>\n                                                       </div>\n                                                        <!-- END ENQUIRY BUTTON -->\n\n                                                 <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_FORMS\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n                                         <form name="forms.formFunctionality" novalidate>\n\n                                                    <!-- START DOWNLOAD TRANSCRIPT -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n                                                              <ui-select data-ng-model="item.download_transcript" name="downloadTranscript" theme="bootstrap">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n                                                                        <ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n                                                                             <div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- END DOWNLOAD TRANSCRIPT -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n                                              </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/account/list/list.html",'<div class="row">\n       <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-notebook"></i>\n                                         <a href="/channels/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                  </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="fax_accounts.checked.length">\n                                            <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/fax/accounts/wizard">\n                                                     <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }}\n                                               </a>\n                                  </div>\n                                        <a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAccounts([\'name\', \'description\', \'phone\'])" csv-header="[\'Name\', \'Description\', \'Phone\']" field-separator=";" filename="fax_accounts.csv">\n                                        <i class="icon-cloud-download"></i></a>\n                                       <!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table st-table="displayedFaxAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n                                     <div class="table-responsive">\n                                          <thead>\n                                                     <tr>\n                                                          <th colspan="5">\n                                                                      <div class="row">\n                                                                             <div class="col-md-6">\n                                                                                        <ui-select class="input-xsmall" ng-model="conf.faxAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                             <ui-select-choices repeat="faxAccountByPage in faxAccountsByPage | filter: $select.search">\n                                                                                                   <div ng-bind-html="faxAccountByPage.name | highlight: $select.search"></div>\n                                                                                          </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                                <div class="col-md-6">\n                                                                                        <div class="input-group input-medium pull-right">\n                                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                         <span class="input-group-addon">\n                                                                                                      <i class="fa fa-search"></i>\n                                                                                          </span>\n                                                                                       </div>\n                                                                                </div>\n                                                                        </div>\n                                                                </th>\n                                                 </tr>\n                                           <tr>\n                                                                <th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAccount, checked)" checklist-model checklist-value="id"></th>\n                                               <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                            <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n                                                          <th st-sort="phone">{{ \'APPLICATION_PHONE\' | translate }}</th>\n                                                              <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                              </tr>\n                                         </thead>\n                                      <tbody>\n                                         <tr data-ng-repeat="faxAccount in displayedFaxAccounts" class="animate-repeat">\n                                                           <td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="fax_accounts.checked" checklist-value="faxAccount.id"></td>\n                                          <td>{{faxAccount.name}}</td>\n                                                            <td>{{faxAccount.description}}</td>\n                                                           <td>{{faxAccount.phone}}</td>\n                                       <td>\n                                            <a class="btn default btn-xs blue-stripe" data-ng-href="/channels/fax/accounts/view/{{faxAccount.id}}/settings">\n                                                                              {{ \'APPLICATION_EDIT\' | translate }}\n                                                </a>\n                                          <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAccount.name,faxAccount.id)">\n                                                                           {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="displayedFaxAccounts.length">\n                                                               <td colspan="5" style="text-align:center;">\n                                                                   <i>No fax account available</i>\n                                                               </td>\n                                                 </tr>\n                                   </tbody>\n                                      <tfoot>\n                                                     <tr>\n                                                          <td></td>\n                                                 <td>\n                                                                      <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                        </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                  </div>\n                                                    </td>\n                                                             <td>\n                                                                  <div class="input-icon right">\n                                                                                <i class="fa fa-search"></i>\n                                                                          <input st-search="phone" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PHONE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                                      </div>\n                                                    </td>\n                                                 <td>\n                                                  </td>\n                                               </tr>\n                                           <tr>\n                                            <td colspan="5" class="text-center">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.faxAccountsByPage.value" st-displayed-pages="7"></div>\n                                         </td>\n                                       </tr>\n                                       </tfoot>\n                            </div>\n                                </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/account/view/view.applications.html",'<div class="row" data-ng-init="initApplication()">\n <div class="col-md-12">\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n             <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                                        <form name="forms.info" novalidate>\n                                                           <!-- START APP -->\n                                                            <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n                                                                      <label class="control-label">{{\'APPLICATION_APPLICATION\' | translate}}</label>\n                                                                      <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                         <ui-select-match placeholder="{{\'APPLICATION_APPLICATION\' | translate}}">{{$select.selected | uppercase}}</ui-select-match>\n                                         <ui-select-choices repeat="filter in [\'queue\', \'agent\'] | filter: $select.search">\n                                          <div ng-bind-html="filter | uppercase | highlight: $select.search"></div>\n                                           </ui-select-choices>\n                                        </ui-select>\n                                                                        <span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APP -->\n\n                                                            <!-- START APPADATA -->\n                                                               <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n                                                                      <label class="control-label">{{\'APPLICATION_ARGUMENTS\' | translate}}</label>\n                                                                        <ui-select data-ng-model="application.appdata" name="appdata" theme="bootstrap" required>\n                                         <ui-select-match placeholder="{{\'APPLICATION_ARGUMENTS\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                          <ui-select-choices repeat="item in items | filter: $select.search">\n                                             <div data-ng-bind-html="item.name | highlight: $select.search"></div>\n                                       </ui-select-choices>\n                                        </ui-select>\n                                                                        <span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END APPADATA -->\n\n                                                               <!-- START TIMEOUT -->\n                                                                <div class="form-group"  data-ng-class="{\'has-error\': (forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid}">\n                                                                      <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                                                  <input type="text" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" required>\n                                                                    <span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END TIMEOUT -->\n\n                                                                <!-- START INTERVAL -->\n                                                               <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_INTERVAL\' | translate}}</label>\n                                                                 <input type="text" name="interval" placeholder="*|*|*|*" class="form-control" data-ng-model="application.interval">\n                                                                   <span data-ng-show="(forms.info.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid && forms.info.interval.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div> -->\n                                                            <!-- END INTERVAL -->\n\n                                                               <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/channels/fax/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-paper-plane"></i>\n                                      <a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/channels/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                  <i class="fa fa-angle-right" data-ng-show="account"></i>\n                              </li>\n                         <li data-ng-show="account">\n                                   <a href="#">{{ account.name || account.description }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/account.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ account.name || account.description }}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{ account.phone }}\n                                   </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.fax.accounts.view.settings\')}">\n                                                        <a href="/channels/fax/accounts/view/{{account.id}}/settings">\n                                                        <i class="icon-settings"></i>\n                                                 {{\'APPLICATION_SETTINGS\' | translate}} </a>\n                                         </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.fax.accounts.view.routes\') || $state.is(\'main.channels.fax.accounts.view.applications\')}">\n                                                   <a href="/channels/fax/accounts/view/{{account.id}}/routes">\n                                                  <i class="icon-directions"></i>\n                                                       {{\'APPLICATION_ROUTES\' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/account/view/view.routes.html",'<div class="row" data-ng-init="getFaxApplications()">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ROUTES\' | translate}}</span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/fax/accounts/view/{{account.id}}/applications" data-toggle="dropdown">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n                                           </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover">\n                                          <thead>\n                                               <tr>\n                                                                <!-- <th width="5%">{{ \'APPLICATION_ID\' | translate }}</th> -->\n                                                 <th>{{\'APPLICATION_APPLICATION\' | translate}}</th>\n                                                  <th>{{\'APPLICATION_ARGUMENTS\' | translate}}</th>\n                                                                <th>{{\'APPLICATION_TIMEOUT\' | translate}}</th>\n                                                  <!-- <th>{{\'APPLICATION_INTERVAL\' | translate}}</th> -->\n                                                                <th width="5%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                           </tr>\n                                         </thead>\n                                            <tbody ui-sortable="sortableOptions" data-ng-model="faxApplications">\n                                     <tr data-ng-repeat="application in faxApplications | orderBy:\'priority\'">\n                                                               <td><span data-ng-class="{\'label-info\': application.app == \'agent\', \'label-success\': application.app == \'queue\'}" class="label label-sm"> {{application.app}} </span></td>\n                                                            <td>{{getAppdata(application.app, application.appdata)}}</td>\n                                                         <td>{{application.timeout}}</td>\n                                                              <!-- <td>{{application.interval}}</td> -->\n                                          <td>\n                                            <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app,application.id)">\n                                                                          {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="faxApplications.length">\n                                                            <td colspan="5" style="text-align:center;">\n                                                                   <i>No applications available</i>\n                                                              </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/fax/account/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItemFaxAccount()" novalidate>\n                                                        <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TRUNKS -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="account.TrunkId" name="trunk" theme="bootstrap" required>\n                                                                   <ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n                                                                             <div data-ng-bind="trunk.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START TRUNKS -->\n\n                                                       <!-- START PHONE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="account.phone" required/>\n                                                             <span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PHONE -->\n\n                                                  <!-- START ECM -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n                                                              <!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="account.ecm" bs-checkbox>{{account.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n                                                          <input\n                                                                        bs-switch\n                                                                     ng-model="account.ecm"\n                                                                        type="checkbox"\n                                                                       switch-active="{{ isActive }}"\n                                                                        switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                                    switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                                  switch-on-color="{{ onColor }}"\n                                                                       switch-off-color="{{ offColor }}"\n                                                                     switch-animate="{{ animate }}"\n                                                                        switch-size="{{ size }}"\n                                                                      switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                                      switch-radio-off="{{ radioOff }}"\n                                                                     switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END ECM -->\n\n                                                    <!-- START FAXHEADER -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="account.faxheader" required/>\n                                                         <span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FAXHEADER -->\n\n                                                      <!-- START LOCALID -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="account.localid" required/>\n                                                               <span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END LOCALID -->\n\n                                                        <!-- START MAXRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="account.maxrate" name="maxrate" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="maxrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MAXRATE -->\n\n                                                      <!-- START MINRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="account.minrate" name="minrate" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="minrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MINRATE -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                            </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/fax/account/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n  <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-notebook"></i>\n                                         <a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                   </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n  <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n                                                <form name="forms.formSetting" novalidate>\n\n                                                  <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                           <span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <!-- START TRUNKS -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="item.TrunkId" name="trunk" theme="bootstrap" required>\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n                                                                             <div data-ng-bind="trunk.name | highlight: $select.search"></div>\n                                                                     </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START TRUNKS -->\n\n                                                       <!-- START PHONE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="item.phone" required/>\n                                                                <span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PHONE -->\n\n                                                  <!-- START ECM -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n                                                              <!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="item.ecm" bs-checkbox>{{item.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n                                                                <input\n                                                                        bs-switch\n                                                                     ng-model="item.ecm"\n                                                                   type="checkbox"\n                                                                       switch-active="{{ isActive }}"\n                                                                        switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n                                                                    switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n                                                                  switch-on-color="{{ onColor }}"\n                                                                       switch-off-color="{{ offColor }}"\n                                                                     switch-animate="{{ animate }}"\n                                                                        switch-size="{{ size }}"\n                                                                      switch-label="{{ label }}"\n                                                                    switch-icon="{{ icon }}"\n                                                                      switch-radio-off="{{ radioOff }}"\n                                                                     switch-label-width="{{ labelWidth }}"\n                                                                 switch-handle-width="{{ handleWidth }}">\n                                                      </div>\n                                                        <!-- END ECM -->\n\n                                                    <!-- START FAXHEADER -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                           <input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="item.faxheader" required/>\n                                                            <span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END FAXHEADER -->\n\n                                                      <!-- START LOCALID -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="item.localid" required/>\n                                                          <span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END LOCALID -->\n\n                                                        <!-- START MAXRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="item.maxrate" name="maxrate" theme="bootstrap" required>\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="maxrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MAXRATE -->\n\n                                                      <!-- START MINRATE -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n                                                          <ui-select data-ng-model="item.minrate" name="minrate" theme="bootstrap" required>\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                 <ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n                                                                             <div data-ng-bind="minrate | highlight: $select.search"></div>\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- START MINRATE -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n                                               </form>\n                                       </wz-step>\n\n                                  <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                 </wz-step>\n\n                          </wizard>\n\n                   </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/inbox/inbox.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-note"></i>\n                                             <a href="/channels/fax/inbox/incoming">{{ \'APPLICATION_INBOX\' | translate }}</a>\n                                    </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n<!-- END PAGE CONTENT-->\n<div class="row inbox">\n     <div class="col-md-12" ui-view>\n       </div>\n</div>\n'),a.put("app/channels/fax/inbox/incoming/incoming.html",'<!-- END PAGE HEADER-->\n<div data-ng-init="getRooms()">\n    <!-- <pre>\n            {{faxRooms | json}}\n   </pre> -->\n    <div class="inbox-header">\n            <h1 class="pull-left">Inbox</h1>\n      </div>\n        <div class="inbox-content">\n           <table class="table table-advance" st-table="displayedFaxRooms" st-safe-src="faxRooms">\n                       <thead>\n                               <tr>\n                                  <th colspan="8" style="background: #eef4f7; border: none; border-bottom: solid 5px #fff;">\n                                            <div class="row">\n                                                     <div class="col-md-6">\n                                                                <input type="checkbox" class="mail-checkbox mail-group-checkbox checker" data-ng-model="checked" data-ng-change="switchCheckbox(displayedFaxRooms, checked)">\n                                                         <div class="btn-group">\n                                                                       <a data-ng-href="/channels/fax/inbox/compose" class="btn btn-sm blue">{{\'APPLICATION_NEW_MESSAGE\' | translate}} <i class="fa fa-plus"></i></a>\n                                                                      <!-- <a class="btn btn-sm blue dropdown-toggle" href="#" data-toggle="dropdown">\n                                                                              {{\'APPLICATION_MORE\' | translate}} <i class="fa fa-angle-down"></i>\n                                                                 </a> -->\n                                                                      <ul class="dropdown-menu">\n                                                                            <li>\n                                                                                  <a href="#" data-ng-click="markAsRead(true)">\n                                                                                 <i class="icon-paper-plane-open"></i> {{\'APPLICATION_MARK_AS_READ\' | translate}} </a>\n                                                                               </li>\n                                                                         <li>\n                                                                                  <a href="#" data-ng-click="markAsRead(false)">\n                                                                                        <i class="icon-paper-plane"></i> {{\'APPLICATION_MARK_AS_UNREAD\' | translate}} </a>\n                                                                          </li>\n                                                                         <li class="divider">\n                                                                          </li>\n                                                                         <li>\n                                                                                  <a href="#" data-ng-click="deleteMessage()">\n                                                                                  <i class="icon-trash"></i> {{\'APPLICATION_DELETE\' | translate}} </a>\n                                                                                </li>\n                                                                 </ul>\n                                                         </div>\n                                                        </div>\n                                                        <div class="col-md-6">\n                                                                <div class="input-group input-medium pull-right">\n                                                                     <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                 <span class="input-group-addon btn green" style="cursor: default;">\n                                                                           <i class="icon-magnifier" style="color: white;"></i>\n                                                                  </span>\n                                                               </div>\n                                                                <ui-select data-ng-model="conf.faxRoomsByPage" theme="bootstrap" style="width: 100px;" class="pull-right margin-right-10">\n                                                                    <ui-select-match placeholder="{{ \'APPLICATION_SEARCH\' | translate }}">{{$select.selected}}</ui-select-match>\n                                                                        <ui-select-choices repeat="p in [10, 20, 35, 50] | filter: $select.search">\n                                                                           <span ng-bind-html="p | highlight: $select.search"></span>\n                                                                    </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                        </th>\n                         </tr>\n                 </thead>\n                      <tbody>\n                               <tr data-ng-repeat="faxRoom in displayedFaxRooms | orderBy:\'-updatedAt\'" data-ng-class="{unread: !faxRoom.read}" data-ng-click="go(\'/fax/inbox/room/\' + faxRoom.id, faxRoom.id, \'OPEN\')" class="animate-repeat">\n                                        <td class="inbox-small-cells" style="border: none;">\n                                          <input type="checkbox" class="checker" checklist-model="checkedMailMessages.id" checklist-value="faxRoom.id">\n                                 </td>\n                                 <!-- <td class="inbox-small-cells" style="border: none;">\n                                             <i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n                                 </td> -->\n                                     <td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n                                              #{{faxRoom.id}}\n                                       </td>\n                                 <!-- <td class="inbox-small-cells" style="border: none;">\n                                             <i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n                                 </td> -->\n                                     <!-- <td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n                                         {{faxRoom.subject}}\n                                   </td> -->\n                                     <td class="view-message" style="cursor:pointer; border:none;">\n                                                {{faxRoom.from}}\n                                      </td>\n                                 <td class="view-message" style="cursor:pointer; border:none;">\n                                                {{faxRoom.MailAccount.description ? faxRoom.MailAccount.description : faxRoom.MailAccount.name}}\n                                      </td>\n                                 <td class="view-message" style="cursor:pointer; border:none;" data-ng-switch="faxRoom.status">\n                                                <span class="badge badge-default" data-ng-class="{\n                                            \'badge-danger\': faxRoom.status == \'NEW\',\n                                          \'badge-warning\': faxRoom.status == \'OPEN\',\n                                                \'badge-info\': faxRoom.status == \'PENDING\',\n                                                \'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n                                     </td>\n                                 <td class="view-message" style="cursor:pointer; border:none;">\n                                                <span class="badge badge-success badge-roundless" data-ng-show="faxRoom.User.fullname"> {{faxRoom.User.fullname}} </span>\n                                             <span class="badge badge-default badge-roundless" data-ng-hide="faxRoom.User.fullname"> {{\'APPLICATION_UNASSIGNED\' | translate}} </span>\n                                    </td>\n                                 <td class="view-message text-right" context-menu="menuOptions" style="border: none;">\n                                         <time is="relative-time" datetime="{{faxRoom.updatedAt}}">\n                                                    April 1, 2014\n                                         </time>\n                                       </td>\n                         </tr>\n                         <tr data-ng-hide="faxRooms.length">\n                                   <td colspan="6" class="text-center">\n                                          <i>{{\'MESSAGE_NO_AVAILABLE_MESSAGES\' | translate}}</i>\n                                      </td>\n                         </tr>\n                         <tr>\n                                  <td colspan="8" class="text-center" style="border: none;">\n                                            <div st-pagination class="pagination" st-items-by-page="conf.faxRoomsByPage" st-displayed-pages="7"></div>\n                                    </td>\n                         </tr>\n                 </tbody>\n              </table>\n      </div>\n</div>\n'),a.put("app/channels/fax/inbox/room/room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoomView()">\n       <div class="portlet light">\n           <!-- PROJECT HEAD -->\n         <div class="portlet-title">\n                   <div class="caption" data-ng-show="faxRoom">\n                          <i class="icon-bar-chart font-green-sharp hide"></i>\n                          <span class="badge badge-default" data-ng-class="{\'badge-error\': faxRoom.status == \'NEW\',\n                         \'badge-warning\': faxRoom.status == \'OPEN\',\n                                \'badge-info\': faxRoom.status == \'PENDING\',\n                                \'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n                     </div>\n                        <div class="actions" data-ng-show="faxRoom">\n                          <div class="btn-group" data-ng-show="Auth.isAdmin()">\n                                 <a class="btn grey-salsa btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                                   {{ \'APPLICATION_ASSIGN\' | translate }} <i class="fa fa-angle-down"></i>\n                                     </a>\n                                  <ul class="dropdown-menu pull-right">\n                                         <li data-ng-repeat="agent in agents">\n                                                 <a href="#" data-ng-click="assignAgent(agent.id)">\n                                                    {{agent.fullname}} <span class="badge badge-default"> {{agent.fullname | uppercase | limitTo : 1}} </span>\n                                                    </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <div class="btn-group">\n                                       <a class="btn green-haze btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n                                   {{ \'APPLICATION_STATUS\' | translate }} <i class="fa fa-angle-down"></i>\n                                     </a>\n                                  <ul class="dropdown-menu pull-right">\n                                         <li>\n                                                  <a href="#" data-ng-click="updateStatus(\'PENDING\')">\n                                                        {{\'STATUS_PENING\' | translate}} <span class="badge badge-danger">\n                                                   P </span>\n                                                     </a>\n                                          </li>\n                                         <li>\n                                                  <a href="#" data-ng-click="updateStatus(\'CLOSED\')">\n                                                 {{\'STATUS_CLOSED\' | translate}} <span class="badge badge-success">\n                                                  C </span>\n                                                     </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                        </div>\n                </div>\n                <!-- end PROJECT HEAD -->\n             <div class="portlet-body">\n                    <div class="row">\n                             <div data-ng-show="faxRoom" data-ng-class="{\'col-md-7 col-sm-7\': faxRoom}">\n                                 <div class="scroller" id="faxMessages" style="height: 500px; overflow-y: scroll; width: auto;" data-always-visible="1" data-rail-visible1="1" data-initialized="1">\n                                           <ul class="chats">\n                                                    <li data-ng-class="{\'in\': faxMessage.status == \'RECEIVED\', \'out\': (faxMessage.status == \'SENT\' || faxMessage.status == \'SENDING\' || faxMessage.status == \'FAILED\' || faxMessage.status == \'NOT SENT\')}" data-ng-repeat="faxMessage in faxRoom.FaxMessages | orderBy:\'createdAt\'">\n                                                     <img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && faxMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n                                                     <div class="message">\n                                                         <span class="arrow">\n                                                          </span>\n                                                               <span class="bold">{{\'APPLICATION_FROM\' | translate}}: </span>\n                                                              <span>{{faxMessage.From.fullname}} </span>\n                                                            <span> &#60;{{faxMessage.From.phone}}&#62; </span>\n                                                            <br>\n                                                          <span class="bold">{{\'APPLICATION_TO\' | translate}}: </span>\n                                                                <span>{{faxMessage.To.fullname}} </span>\n                                                              <span> &#60;{{faxMessage.To.phone}}&#62; </span>\n                                                              <br>\n                                                          <span class="todo-tasklist-date">\n                                                                     <i class="fa fa-calendar"></i>\n                                                                        <time is="relative-time" datetime="{{faxMessage.createdAt}}">\n                                                                         April 1, 2014\n                                                                 </time>\n                                                               </span>\n                                                               <span data-ng-show="faxMessage.status == \'FAILED\' || faxMessage.status == \'SENDING\'" class="badge badge-default" data-ng-class="{\'badge-error\': faxMessage.status == \'FAILED\', \'badge-warning\': faxMessage.status == \'SENDING\'}"> {{faxMessage.status | uppercase}} </span>\n                                                               <br>\n                                                          <br>\n                                                          <span class="body">\n                                                                   <div class="wrapper" ng-controller="FaxInboxRoomCtrl" style="max-height:600px; overflow:auto;">\n                                                 <ng-pdf pdf-url="/api/fax/messages/{{faxMessage.id}}/content" template-url="/assets/plugins/angular-pdf/example/partials/viewer.html" scale="0.5" page=1></ng-pdf>\n                                          </div>\n                                                                </span>\n                                                               <br>\n                                                  </div>\n                                                </li>\n                                         </ul>\n                                 </div>\n                                </div>\n                                <div data-ng-class="{\'col-md-5 col-sm-5\': faxRoom, \'col-md-12 col-sm-12\': !faxRoom}">\n                                     <form name="forms.compose" data-ng-submit="forms.compose.$valid && sendFax()" class="form-horizontal" novalidate>\n                                             <!-- TASK HEAD -->\n                                            <div class="form">\n                                                    <div class="form-group">\n                                                              <div class="col-md-12 col-sm-12">\n                                                                     <div class="todo-taskbody-user">\n                                                                              <img class="todo-userpic pull-left" data-ng-src="api/users/avatar/{{getCurrentUser().userpic ? getCurrentUser().userpic : \'unknown_avatar\'}}" width="50px" height="50px">\n                                                                           <span class="todo-username pull-left">{{ getCurrentUser().fullname }}</span>\n                                                                  </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END TASK HEAD -->\n\n                                                      <!-- FAX FROM -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">{{\'APPLICATION_FROM\' | translate}}:</label>\n                                                                            </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select data-ng-model="form.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n                                                                                           <ui-select-match placeholder="{{\'APPLICATION_FROM\' | translate}}...">{{$select.selected.name}} - {{$select.selected.phone}}</ui-select-match>\n                                                                                               <ui-select-choices repeat="faxAccount in faxAccounts | filter: $select.search">\n                                                                                                       <div ng-bind-html="faxAccount.name | highlight: $select.search"></div>\n                                                                                                        <small ng-bind-html="faxAccount.phone | highlight: $select.search"></small>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                               </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n\n                                                      <!-- FAX TO -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n                                                               <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">{{\'APPLICATION_TO\' | translate}}:</label>\n                                                                              </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select tagging tagging-label="" multiple required data-ng-model="form.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n                                                                                            <ui-select-match placeholder="{{\'APPLICATION_TO\' | translate}}...">{{$item}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="to in form.to | filter:$select.search">\n                                                                                                    {{to}}\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                               </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n\n                                                      <!-- TASK DESC -->\n                                                    <div class="form-group">\n                                                              <div class="col-md-12">\n                                                                       <!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n                                                                       <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n                                                           </div>\n                                                        </div>\n                                                        <!-- END TASK DESC -->\n\n                                                      <!-- START ATTACH -->\n                                                 <div class="form-group">\n                                                              <div class="col-md-6">\n                                                                        <input type="file" nv-file-select uploader="uploader" name="file">\n                                                                    <table class="table" border="0">\n                                                                              <tbody>\n                                                                               <tr data-ng-repeat="item in uploader.queue">\n                                                                                          <td style="border-top-style:none">\n                                                                                                    <strong>\n                                                                                                              {{ item.file.name }}\n                                                                                                  </strong>\n                                                                                             </td>\n                                                                                         <td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n                                                                                                     {{ item.file.size/1024/1024|number:2 }} MB\n                                                                                            </td>\n                                                                                         <td nowrap style="border-top-style:none">\n                                                                                                     <button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n                                                                                                                    <span class="glyphicon glyphicon-trash"></span> Remove\n                                                                                                        </button>\n                                                                                             </td>\n                                                                                 </tr>\n                                                                         </tbody>\n                                                                      </table>\n                                                              </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="form-actions right todo-form-actions">\n                                                                            <button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n                                                                              <input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END ATTACH -->\n\n                                         </div>\n                                        </form>\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n<!-- END TODO CONTENT -->\n'),
 a.put("app/channels/fax/queue/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid && form.general.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START TIMEOUT -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid}">\n      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="number" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n      <span data-ng-show="(form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid && form.general.timeout.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TIMEOUT -->\n\n    <!-- START HEADER SHAPE -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid}">\n      <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n        <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid && form.general.strategy.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END HEADER SHAPE -->\n\n\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/fax/queue/list/list.html",'<div class="row">\n   <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-paper-plane"></i>\n                                              <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                         <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-docs"></i>\n                                             <a href="/channels/fax/queues/lis">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                       </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle " href="#"  data-ng-click="createItem()">\n                                          <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }}\n                                 </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <label for="penalty">{{\'APPLICATION_PENALTY\' | translate}}</label>\n                                          <div class="input-group input-small mbottom20">\n                                                       <input type="number" class="spinner-input form-control" maxlength="3" data-ng-model="queue.penalty" readonly>\n                                                 <div class="spinner-buttons input-group-btn btn-group-vertical">\n                                                              <button type="button" class="btn spinner-up btn-xs blue" data-ng-click="queue.penalty=queue.penalty+1">\n                                                                       <i class="fa fa-angle-up"></i>\n                                                                </button>\n                                                             <button type="button" class="btn spinner-down btn-xs blue" data-ng-disabled="!queue.penalty" data-ng-click="queue.penalty=queue.penalty-1">\n                                                                   <i class="fa fa-angle-down"></i>\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/fax/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-paper-plane"></i>\n                                      <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/fax/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.fax.queues.view.settings\')}">\n                                                  <a data-ng-href="/channels/fax/queues/view/{{queue.id}}/settings">\n                                                    <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.fax.queues.view.agents\')}">\n                                                    <a data-ng-href="/channels/fax/queues/view/{{queue.id}}/agents">\n                                                      <i class="icon-people"></i>\n                                                   {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/queue/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateFaxQueue()" novalidate>\n                                      <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n                                          <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n                                               <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/fax/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns  class="ui-grid" ui-grid-tree-view ui-grid-expandable-row ui-grid-pagination auto-resize>\n                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/fax/realtime/view/agent/agent.modal.info.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_INTERFACE_INFO\' | translate }}</h3>\n</div>\n<div class="modal-body">\n<div data-ng-if="agent.ipaddr" class="well">\n  <div>{{agent.ipaddr}}:{{agent.port}}</div>\n  <div>{{agent.fullcontact}}</div>\n  <div>{{agent.useragent}}</div>\n  <div>{{agent.lastms}}</div>\n</div>\n<div data-ng-if="!agent.ipaddr" class="alert alert-danger" role="alert">\n  {{\'MESSAGE_NO_AVAILABLE_INFO\' | translate}}\n</div>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/channels/fax/realtime/view/agent/queue.modal.add.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_JOIN_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <div class="form-group row">\n  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n  <div class="col-md-10">\n    <ui-select multiple ng-model="item.queues" theme="bootstrap" required>\n      <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$item.name}}</ui-select-match>\n      <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n        <div ng-bind-html="queue.name | highlight: $select.search"></div>\n      </ui-select-choices>\n    </ui-select>\n  </div>\n</div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/fax/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-directions"></i>\n                                       <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n                                 <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="#">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <div>\n                 <nav class="navbar navbar-default" role="navigation">\n                         <div class="collapse navbar-collapse">\n                                        <ul class="nav navbar-nav">\n                                           <li data-ng-class="{\'active\': $state.is(\'channels.fax.realtime.view.agents\')}">\n                                                   <a href="/channels/fax/realtime/view/agents">\n                                                         {{\'APPLICATION_AGENTS\' | translate}}\n                                                        </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                        </nav>\n                </div>\n\n              <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/account/list/list.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="#">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n        </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn btn-default" href="#" data-ng-click="gridOptions.getPage();">\n                                                   <i class="icon-reload"></i>\n                                           </a>\n                                  </div>\n                                        <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/mail/accounts/wizard">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }}\n                                               </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/account/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n                         </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/mail/accounts/view/{{account.id}}/actions/wizard" data-toggle="dropdown">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n                                                </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/mail/account/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n      <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.settings" ng-submit="updateItem()" novalidate>\n                                      <!-- START APP -->\n                                    <div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n                                          <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                       </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END APP -->\n\n                                    <!-- START HOST -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n                                           <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                         <span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END HOST -->\n\n                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                          <!-- START QUEUE -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                             </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END QUEUE -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                          <!-- START AGENT -->\n                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n                                                       <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                         </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n                                                                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END AGENT -->\n                                    </div>\n\n                                      <!-- START INTERVAL_TYPE -->\n                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n                                           <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                               {{ intType.name | translate }}\n                                                        </ui-select-choices>\n                                          </ui-select>\n                                          <span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END INTERVAL_TYPE -->\n\n                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                <!-- START TIME -->\n                                           <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                   <div class="input-group input-large">\n                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                             </fieldset>\n                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                     </div>\n                                                </div>\n                                                <!-- END TIME -->\n\n                                           <!-- START ALWAYS -->\n                                         <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                 <div class="input-group input-large">\n                                                         <label class="control-label pointer-cursor">\n                                                                  <input\n                                                                                bs-switch\n                                                                             data-ng-model="application.alwaysTime"\n                                                                                type="checkbox"\n                                                                               switch-active="{{ isActive }}"\n                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                switch-on-color="{{ onColor }}"\n                                                                               switch-off-color="{{ offColor }}"\n                                                                             switch-animate="{{ animate }}"\n                                                                                switch-size="{{ size }}"\n                                                                              switch-label="{{ label }}"\n                                                                            switch-icon="{{ icon }}"\n                                                                              switch-radio-off="{{ radioOff }}"\n                                                                             switch-label-width="{{ labelWidth }}"\n                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                               </label>\n                                                      </div>\n                                                </div>\n                                                <!-- END ALWAYS -->\n\n                                         <!-- START WEEKDAY -->\n                                                <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                        <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate}}\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                {{ weekDay.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END WEEKDAY -->\n\n                                                <!-- START MONTHDAY -->\n                                               <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                       <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                               {{monthDay}}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTHDAY -->\n\n                                               <!-- START MONTH -->\n                                          <div class="form-group">\n                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                  <div class="input-group input-large">\n                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="input-group-addon">to</span>\n                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                {{ month.name | translate }}\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                </div>\n                                                <!-- END MONTH -->\n                                    </div>\n\n                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                          <!-- START INTERVALS -->\n                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n                                                     <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                    {{ interval.name}}\n                                                            </ui-select-choices>\n                                                  </ui-select>\n                                                  <span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                 </span>\n                                               </div>\n                                                <!-- END INTERVALS -->\n\n                                      </div>\n                                        <button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n                          </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
 a.put("app/channels/mail/account/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n    <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-directions font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n                             </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n                                     <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n                                           <form name="forms.action" novalidate>\n                                                 <!-- START APP -->\n                                                    <div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n                                                               <label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n                                                                                <div ng-bind-html="app.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END APP -->\n\n                                                    <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                             <input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n                                                         <span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n                                                          <!-- START QUEUE -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n                                                                           <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n                                                                                     <div ng-bind-html="queue.name | highlight: $select.search"></div>\n                                                                             </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n                                                          <!-- START AGENT -->\n                                                          <div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n                                                                          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n                                                                                     <div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n                                                                         </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END AGENT -->\n                                                    </div>\n\n                                                      <!-- START INTERVAL_TYPE -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n                                                         <label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                        <ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n                                                                               {{ intType.name | translate }}\n                                                                        </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END INTERVAL_TYPE -->\n\n                                                  <div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n                                                                <!-- START TIME -->\n                                                           <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                                                                   <div class="input-group input-large">\n                                                                         <fieldset class="pull-left" ng-disabled="application.alwaysTime">\n                                                                                     <uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n                                                                             </fieldset>\n                                                                           <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n                                                                                <fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n                                                                              <!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n                                                                     </div>\n                                                                </div>\n                                                                <!-- END TIME -->\n\n                                                           <!-- START ALWAYS -->\n                                                         <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n                                                                 <div class="input-group input-large">\n                                                                         <label class="control-label pointer-cursor">\n                                                                                  <input\n                                                                                                bs-switch\n                                                                                             data-ng-model="application.alwaysTime"\n                                                                                                type="checkbox"\n                                                                                               switch-active="{{ isActive }}"\n                                                                                                switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n                                                                                                switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n                                                                                                switch-on-color="{{ onColor }}"\n                                                                                               switch-off-color="{{ offColor }}"\n                                                                                             switch-animate="{{ animate }}"\n                                                                                                switch-size="{{ size }}"\n                                                                                              switch-label="{{ label }}"\n                                                                                            switch-icon="{{ icon }}"\n                                                                                              switch-radio-off="{{ radioOff }}"\n                                                                                             switch-label-width="{{ labelWidth }}"\n                                                                                         switch-handle-width="{{ handleWidth }}">\n                                                                                      <!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n                                                                               </label>\n                                                                      </div>\n                                                                </div>\n                                                                <!-- END ALWAYS -->\n\n                                                         <!-- START WEEKDAY -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                                                                        <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n                                                                                      <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate}}\n                                                                                 </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n                                                                                  <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                                                                                                {{ weekDay.name | translate }}\n                                                                                        </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END WEEKDAY -->\n\n                                                                <!-- START MONTHDAY -->\n                                                               <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                                                                       <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n                                                                                      <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n                                                                                  <ui-select-match>{{$select.selected}}</ui-select-match>\n                                                                                       <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                                                                                               {{monthDay}}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTHDAY -->\n\n                                                               <!-- START MONTH -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                                                                  <div class="input-group input-large">\n                                                                         <ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n                                                                                        <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                          <span class="input-group-addon">to</span>\n                                                                             <ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n                                                                                    <ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n                                                                                     <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                                                                                                {{ month.name | translate }}\n                                                                                  </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                </div>\n                                                                <!-- END MONTH -->\n                                                    </div>\n\n                                                      <div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n                                                          <!-- START INTERVALS -->\n                                                              <div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                    <ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n                                                                               <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n                                                                                    {{ interval.name}}\n                                                                            </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END INTERVALS -->\n\n                                                      </div>\n\n                                                      <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n                                         </form>\n                                       </wz-step>\n                                    <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                             <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                            <!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n                                              <input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                  </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/channels/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                                 <i class="fa fa-angle-right" data-ng-show="account"></i>\n                              </li>\n                         <li data-ng-show="account">\n                                   <a href="#">{{ account.description || account.name }}</a>\n                             </li>\n                 </ul>\n         </div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n               <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img ng-src="assets/images/media/account.png" class="img-responsive">\n                         </div>\n                                <!-- END SIDEBAR USERPIC -->\n\n                                <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{ account.description || account.name }}\n                                     </div>\n                                        <div class="profile-usertitle-job">\n                                           {{account.email}}\n                                     </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li ng-class="{active: $state.is(\'main.channels.mail.accounts.view.settings\')}">\n                                                    <a href="/channels/mail/accounts/view/{{account.id}}/settings">\n                                                       <i class="icon-settings"></i>\n                                                 {{\'APPLICATION_SETTINGS\' | translate}} </a>\n                                         </li>\n                                         <li ng-class="{active: $state.includes(\'main.channels.mail.accounts.view.actions\')}">\n                                                       <a href="/channels/mail/accounts/view/{{account.id}}/actions/list">\n                                                   <i class="icon-directions"></i>\n                                                       {{\'APPLICATION_ACTIONS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <div ui-view class="profile-content"></div>\n           <!-- END PROFILE CONTENT -->\n  </div>\n<!-- END PAGE CONTENT-->\n</div>\n'),a.put("app/channels/mail/account/view/view.settings.html",'<div class="row">\n     <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">IMAP</a>\n                                 </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">SMTP</a>\n                                 </li>\n                         </ul>\n                 </div>\n                        <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.info" data-ng-submit="forms.info.$valid && updateItemMailAccount()" novalidate>\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n                                                                <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START ADDRESS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_EMAIL_ADDRESS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="address" placeholder="{{\'APPLICATION_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.address" required/>\n                                                               <span data-ng-show="(forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid && forms.info.address.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ADDRESS -->\n\n                                                        <!-- START FIDELITY -->\n                                                       <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_FIDELITY\' | translate}}</label></br>\n                                                            <input\n                                                                bs-switch\n                                                             class="form-control"\n                                                          data-ng-model="account.fidelity"\n                                                              type="checkbox"\n                                                               name="auth"\n                                                           switch-active="{{ recordSwitch.isActive }}"\n                                                           switch-on-text="{{ recordSwitch.onText }}"\n                                                            switch-off-text="{{ recordSwitch.offText }}"\n                                                          switch-on-color="{{ recordSwitch.onColor }}"\n                                                          switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                           switch-size="{{ recordSwitch.size }}"\n                                                         switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                         switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                            switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                 </div>\n                                                        <!-- END FIDELITY -->\n\n                                                       <!-- START TIMEOUT -->\n                                                        <div class="form-group" data-ng-if="account.fidelity" data-ng-class="{\'has-error\': (forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="number" min="0" name="timeout" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.timeout" required/>\n                                                                <span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.number" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END TIMEOUT -->\n\n                                                        <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n                                                    </div>\n                                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n\n                                    <!-- IMAP TAB -->\n                                     <div class="tab-pane" id="tab_1_2">\n                                           <form name="forms.formIn" data-ng-submit="forms.formIn.$valid && updateItemMailServerIn()" novalidate>\n\n                                                      <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.host" required/>\n                                                           <span data-ng-show="(forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid && forms.formIn.host.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <!-- START USERNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.username" required/>\n                                                               <span data-ng-show="(forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid && forms.formIn.username.$error.required"  class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.password" required/>\n                                                           <span data-ng-show="(forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid && forms.formIn.password.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START PORT -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.port" required/>\n                                                         <span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.number" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END PORT -->\n\n                                                   <!-- START MAILBOX -->\n                                                        <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n                                                          <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.mailbox"/>\n                                                   </div>\n                                                        <!-- END MAILBOX -->\n\n                                                        <!-- START SEARCH FILTER -->\n                                                  <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n                                                            <ui-select data-ng-model="account.MailServerIn.filter" name="filter" theme="bootstrap">\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                                                   <ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n                                                                          <div ng-bind-html="filter | highlight: $select.search"></div>\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                  </div>\n                                                        <!-- START SEARCH FILTER -->\n\n                                                        <!-- START DELETE -->\n                                                 <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}</label></br>\n                                                             <input\n                                                                bs-switch\n                                                             class="form-control"\n                                                          data-ng-model="account.MailServerIn.delete"\n                                                           type="checkbox"\n                                                               name="auth"\n                                                           switch-active="{{ recordSwitch.isActive }}"\n                                                           switch-on-text="{{ recordSwitch.onText }}"\n                                                            switch-off-text="{{ recordSwitch.offText }}"\n                                                          switch-on-color="{{ recordSwitch.onColor }}"\n                                                          switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                           switch-size="{{ recordSwitch.size }}"\n                                                         switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                         switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                            switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                 </div>\n                                                        <!-- END DELETE -->\n\n                                                 <!-- START SSL -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">SSL</label></br>\n                                                         <input\n                                                                bs-switch\n                                                             class="form-control"\n                                                          data-ng-model="account.MailServerIn.ssl"\n                                                              type="checkbox"\n                                                               name="auth"\n                                                           switch-active="{{ recordSwitch.isActive }}"\n                                                           switch-on-text="{{ recordSwitch.onText }}"\n                                                            switch-off-text="{{ recordSwitch.offText }}"\n                                                          switch-on-color="{{ recordSwitch.onColor }}"\n                                                          switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                           switch-size="{{ recordSwitch.size }}"\n                                                         switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                         switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                            switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                 </div>\n                                                        <!-- END SSL -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END IMAP TAB -->\n\n                                       <!-- SMTP TAB -->\n                                     <div class="tab-pane" id="tab_1_3">\n                                           <form name="forms.formOut" data-ng-submit="forms.formOut.$valid && updateItemMailServerOut()" novalidate>\n\n                                                   <!-- START HOST -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.host" required/>\n                                                          <span data-ng-show="(forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid && forms.formOut.host.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END HOST -->\n\n                                                   <!-- START USERNAME -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.username" required/>\n                                                              <span data-ng-show="(forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid && forms.formOut.username.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END USERNAME -->\n\n                                                       <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.password" required/>\n                                                          <span data-ng-show="(forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid && forms.formOut.password.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START PORT -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.port.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.port" required/>\n                                                                <span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                               <span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.number" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                          </span>\n                                                       </div>\n                                                        <!-- END PORT -->\n\n                                                   <!-- START SSL -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">SSL</label></br>\n                                                         <input\n                                                                bs-switch\n                                                             class="form-control"\n                                                          data-ng-model="account.MailServerOut.ssl"\n                                                             type="checkbox"\n                                                               name="auth"\n                                                           switch-active="{{ recordSwitch.isActive }}"\n                                                           switch-on-text="{{ recordSwitch.onText }}"\n                                                            switch-off-text="{{ recordSwitch.offText }}"\n                                                          switch-on-color="{{ recordSwitch.onColor }}"\n                                                          switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                           switch-size="{{ recordSwitch.size }}"\n                                                         switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                         switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                            switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                 </div>\n                                                        <!-- END SSL -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                                  <input class="btn blue-madison" type="button" value="Test" data-ng-click="test()"/>\n                                           </form>\n                                       </div>\n                                        <!-- END SMTP TAB -->\n                         </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
-a.put("app/channels/mail/account/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n        <div class="col-md-12">\n               <!-- BEGIN PAGE HEADER-->\n             <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n                <!-- END PAGE HEADER-->\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n             <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                                    <form name="forms.info" novalidate>\n                                                           <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                                   <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n\n                                                           <!-- START ADDRESS -->\n                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid}">\n                                                                       <label class="control-label">{{\'APPLICATION_EMAIL_ADDRESS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="address" placeholder="{{\'APPLICATION_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.address" required/>\n                                                                  <span data-ng-show="(forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid && forms.info.address.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END ADDRESS -->\n\n                                                                <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                               </div>\n                                                                <!-- END DESCRIPTION -->\n                                                              <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="IMAP" canexit="formValidation(forms.in.$valid)">\n                                                      <form name="forms.in" novalidate>\n                                                             <!-- START HOST -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INCOMING_MAIL_SERVER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.host" required/>\n                                                                      <span data-ng-show="(forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid && forms.in.host.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END HOST -->\n\n                                                           <!-- START USERNAME -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.username" name="username" required/>\n                                                                  <span data-ng-show="(forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid && forms.in.username.$error.required"  class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END USERNAME -->\n\n                                                               <!-- START PASSWORD -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.password" required/>\n                                                                      <span data-ng-show="(forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid && forms.in.password.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END PASSWORD -->\n\n                                                               <!-- START PORT -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.port" required/>\n                                                                    <span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                                       <span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.number" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                                  </span>\n                                                               </div>\n                                                                <!-- END PORT -->\n\n                                                           <!-- START MAILBOX -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n                                                                  <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.mailbox"/>\n                                                              </div>\n                                                                <!-- END MAILBOX -->\n\n                                                                <!-- START SEARCH FILTER -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n                                                                    <ui-select data-ng-model="item.MailServerIn.filter" name="filter" theme="bootstrap">\n                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                           <ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n                                            <div data-ng-bind="filter | highlight: $select.search"></div>\n                                       </ui-select-choices>\n                                        </ui-select>\n                                                                        <!-- <input type="text" name="filter" placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}" class="form-control" data-ng-model="in.filter"/> -->\n                                                                </div>\n                                                                <!-- START SEARCH FILTER -->\n\n                                                                <!-- START DELETE -->\n                                                         <div class="form-group row">\n                                                                  <label class="col-md-3">\n                                                                              {{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}\n                                                                       </label>\n                                                                      <label class="col-md-9">\n                                                                                      <input type="checkbox" data-ng-model="item.MailServerIn.delete">\n                                                                      </label>\n                                                              </div>\n                                                                <!-- END DELETE -->\n\n                                                         <!-- START SSL -->\n                                                            <div class="form-group row">\n                                                                  <label class="col-md-3">\n                                                                              SSL\n                                                                   </label>\n                                                                      <label class="col-md-9">\n                                                                                      <input type="checkbox" data-ng-model="item.MailServerIn.ssl">\n                                                                 </label>\n                                                              </div>\n                                                                <!-- END SSL -->\n                                                              <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n                                                    </form>\n                                               </wz-step>\n                                            <wz-step title="SMTP" canexit="formValidation(forms.out.$valid)">\n                                                     <form name="forms.out" novalidate>\n                                                            <!-- START HOST -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_OUTGOING_MAIL_SERVER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.MailServerOut.host" required/>\n                                                                     <span data-ng-show="(forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid && forms.out.host.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END HOST -->\n\n                                                           <!-- START USERNAME -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.MailServerOut.username" required/>\n                                                                 <span data-ng-show="(forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid && forms.out.username.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END USERNAME -->\n\n                                                               <!-- START PASSWORD -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.MailServerOut.password" required/>\n                                                                     <span data-ng-show="(forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid && forms.out.password.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END PASSWORD -->\n\n                                                               <!-- START PORT -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.out.port.$touched || forms.out.$submitted) && forms.out.port.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="item.MailServerOut.port" required/>\n                                                                   <span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                                       <span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.number" class="help-block help-block-error">\n                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                                  </span>\n                                                               </div>\n                                                                <!-- END PORT -->\n\n                                                           <!-- START SSL -->\n                                                            <div class="form-group row">\n                                                                  <label class="col-md-3">\n                                                                              SSL\n                                                                   </label>\n                                                                      <label class="col-md-9">\n                                                                                      <input type="checkbox" data-ng-model="item.MailServerOut.ssl">\n                                                                        </label>\n                                                              </div>\n                                                                <!-- END DELETE -->\n\n                                                         <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n                                                            <input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n                                                   </form>\n                                               </wz-step>\n                                            <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/inbox/list/list.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-note"></i>\n                                     <a href="#">{{ \'APPLICATION_INBOX\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n        </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-note font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_INBOX\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn btn-default" href="#" data-ng-click="gridOptions.getPage();">\n                                                   <i class="icon-reload"></i>\n                                           </a>\n                                  </div>\n                                        <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/mail/inbox/view/compose">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_MESSAGE\' | translate }}\n                                               </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/inbox/mail/mail.html",'<div class="message">\r\n  <div class="row">\r\n    <div class="col-md-6">\r\n      <span class="bold">From: </span>\r\n      <span>{{mailMessage.from}}</span>\r\n      <br>\r\n      <span class="bold">To: </span>\r\n      <span>{{mailMessage.to}} </span>\r\n      <br>\r\n      <span data-ng-if="mailMessage.cc.length" class="bold">Cc: </span>\r\n      <span data-ng-if="mailMessage.cc.length">{{mailMessage.cc}} </span>\r\n    </div>\r\n    <div class="col-md-6">\r\n      <span class="pull-right" data-ng-show="mailMessage.User">{{\'APPLICATION_SENT_BY\' | translate}}: <strong>{{mailMessage.User.fullname}}</strong></span>\r\n    </div>\r\n  </div>\r\n  <br>\r\n  <span class="todo-tasklist-date">\r\n    <span class="pull-right">\r\n      <a data-ng-click="(mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\') && retry(mailMessage.id)" href="#" class="btn default btn-xs inactive-link" data-ng-class="{\'green-stripe\': mailMessage.status == \'SENT\' || mailMessage.status == \'RECEIVED\', \'blue-stripe\': mailMessage.status == \'SENDING\', \'red-stripe\': mailMessage.status == \'FAILED\'}"> {{mailMessage.status | uppercase}}\r\n        <i data-ng-class="{\'fa fa-check\': mailMessage.status == \'SENT\' || mailMessage.status == \'RECEIVED\', \'fa fa-warning\': mailMessage.status == \'SENDING\', \'fa fa-times\': mailMessage.status == \'FAILED\'}"></i>\r\n      </a>\r\n    </span>\r\n    <i class="icon-calendar"></i> <span am-time-ago="mailMessage.updatedAt"></span>\r\n  </span>\r\n  <hr>\r\n  <span class="body text-left" data-ng-bind-html="mailMessage.text" style="white-space: pre-wrap;"></span>\r\n  <hr data-ng-if="mailMessage.MailAttachments.length">\r\n  <div data-ng-repeat="mailAttachment in mailMessage.MailAttachments">\r\n    <strong>{{mailAttachment.name}}</strong>\r\n    <span>\r\n      {{mailAttachment.size}}B </span>\r\n      <a target="_self" download="{{mailAttachment.name}}" href="api/mail/attachments/{{mailAttachment.id}}">\r\n        {{ \'APPLICATION_DOWNLOAD\' | translate }}\r\n      </a>\r\n    </div>\r\n  </div>\r\n'),a.put("app/channels/mail/inbox/note/note.html",'<div class="note">\r\n  <div class="row">\r\n    <div class="col-md-6">\r\n      <i class="icon-calendar"></i> <span am-time-ago="mailMessage.updatedAt"></span>\r\n    </div>\r\n    <div class="col-md-6">\r\n      <span class="pull-right" data-ng-show="mailMessage.User">{{\'APPLICATION_ADD_BY\' | translate}}: <strong>{{mailMessage.User.fullname}}</strong></span>\r\n    </div>\r\n  </div>\r\n  <hr>\r\n  <span class="body text-left" data-ng-bind-html="mailMessage.text" style="white-space: pre-wrap;"></span>\r\n  <hr data-ng-if="mailMessage.MailAttachments.length">\r\n  <div data-ng-repeat="mailAttachment in mailMessage.MailAttachments">\r\n    <strong>{{mailAttachment.name}}</strong>\r\n    <span>\r\n      {{mailAttachment.size}}B </span>\r\n      <a target="_self" download="{{mailAttachment.name}}" href="api/mail/attachments/{{mailAttachment.id}}">\r\n        {{ \'APPLICATION_DOWNLOAD\' | translate }}\r\n      </a>\r\n    </div>\r\n  </div>\r\n'),a.put("app/channels/mail/inbox/view/view.agents.modal.html",'<div class="modal-header" data-ng-init="initModal()">\n  <h3 class="modal-title">{{ \'APPLICATION_AGENTS\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <!-- START TRANSPORT -->\n  <div class="form-group">\n    <form name="form" novalidate>\n      <!-- START TRANSPORT -->\n      <div class="form-group">\n        <ui-select multiple name="agents" data-ng-model="item.agents" theme="bootstrap">\n          <ui-select-match placeholder="{{\'APPLICATION_AGENTS\' | translate}}">{{$item.fullname}}</ui-select-match>\n          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n            {{agent.fullname}}\n          </ui-select-choices>\n        </ui-select>\n      </div>\n      <!-- END TRANSPORT -->\n    </form>\n  </div>\n  <!-- END TRANSPORT -->\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/inbox/view/view.html",'<div class="row">\r\n  <div class="col-md-12">\r\n    <div class="page-bar">\r\n      <ul class="page-breadcrumb">\r\n        <li>\r\n          <i class="icon-rocket"></i>\r\n          <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\r\n          <i class="fa fa-angle-right"></i>\r\n        </li>\r\n        <li>\r\n          <i class="icon-puzzle"></i>\r\n          <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\r\n          <i class="fa fa-angle-right"></i>\r\n        </li>\r\n        <li>\r\n          <i class="icon-envelope"></i>\r\n          <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\r\n          <i class="fa fa-angle-right"></i>\r\n        </li>\r\n        <li>\r\n                                  <i class="icon-note"></i>\r\n                                   <a href="/channels/mail/inbox/list">{{ \'APPLICATION_INBOX\' | translate }}</a>\r\n                             </li>\r\n      </ul>\r\n    </div>\r\n  </div>\r\n</div>\r\n\r\n<!-- BEGIN PAGE CONTENT-->\r\n<div class="row">\r\n     <div class="col-md-12">\r\n    <div ui-view></div>\r\n  </div>\r\n</div>\r\n<!-- END PAGE CONTENT-->\r\n'),a.put("app/channels/mail/inbox/view/view.notes.modal.html",'<div class="modal-header" data-ng-init="initModal()">\n  <h3 class="modal-title">{{ \'APPLICATION_NOTES\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n    <div class="form-group">\n      <textarea data-ng-model="item.text" name="text" rows="10" style="resize: none; width: 100%;"></textarea>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/inbox/view/view.room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoom()">\n  <div class="portlet light">\n           <div class="portlet-title">\n                   <div class="caption" data-ng-show="mailRoom">\n                         <i class="icon-bar-chart font-green-sharp hide"></i>\n                          <span class="label label-sm label-default">{{mailRoom.status}}</span> - <span class="caption-subject font-green-sharp bold uppercase">{{mailRoom.subject}}</span>\n                     </div>\n                        <div class="actions" data-ng-switch="mailRoom.status">\n                                <div class="btn-group btn-group-solid" data-ng-show="mailRoom">\n                                       <button type="button" class="btn yellow" data-ng-click="loadNote()" uib-popover="{{\'APPLICATION_ADD_NOTE\' | translate}}" popover-trigger="mouseenter">N</button>\n                            </div>\n                                <div class="btn-group btn-group-solid" data-ng-show="mailRoom">\n                                       <button type="button" class="btn blue" data-ng-click="loadAgents()" uib-popover="{{\'APPLICATION_ASSING_AGENTS\' | translate}}" popover-trigger="mouseenter">A</button>\n                               </div>\n                                <div class="btn-group btn-group-solid">\n                                       <button type="button" class="btn red" data-ng-click="loadTemplate()" uib-popover="{{\'APPLICATION_LOAD_TEMPLATES\' | translate}}" popover-trigger="mouseenter">T</button>\n                             </div>\n                                <div class="btn-group btn-group-solid">\n                                       <button type="button" class="btn green" data-ng-switch-when="NEW" data-ng-click="updateStatus(\'CLOSED\')" uib-popover="{{\'APPLICATION_CLOSE\' | translate}}" popover-trigger="mouseenter">S</button>\n                                        <button type="button" class="btn green" data-ng-switch-when="OPEN" data-ng-click="updateStatus(\'CLOSED\')" uib-popover="{{\'APPLICATION_CLOSE\' | translate}}" popover-trigger="mouseenter">S</button>\n                                       <button type="button" class="btn green" data-ng-switch-when="CLOSED" data-ng-click="updateStatus(\'OPEN\')" uib-popover="{{\'APPLICATION_OPEN\' | translate}}" popover-trigger="mouseenter">O</button>\n                                </div>\n                        </div>\n                </div>\n                <div class="portlet-body">\n                    <div class="row">\n                             <div data-ng-show="mailRoom" data-ng-class="{\'col-md-6 col-sm-6\': mailRoom}">\n                                       <div ng-scrollbars ng-scrollbars-config="config">\n                                             <ul class="chats">\n                                                    <li data-ng-switch="mailMessage.status" data-ng-class="{\'in\': mailMessage.status == \'RECEIVED\', \'out\': mailMessage.status == \'SENT\' || mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\' || mailMessage.status == \'NOTE\'}" data-ng-repeat="mailMessage in mailRoom.MailMessages | orderBy:\'-createdAt\'">\n                                                              <img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && mailMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n                                                            <note message="mailMessage" ng-switch-when="NOTE"></note>\n                                                             <mail message="mailMessage" ng-switch-default></mail>\n                                                 </li>\n                                         </ul>\n                                 </div>\n                                </div>\n                                <div data-ng-class="{\'col-md-6 col-sm-6\': mailRoom, \'col-md-12 col-sm-12\': !mailRoom}">\n                                   <form name="forms.compose" data-ng-submit="forms.compose.$valid && sendMail()" class="form-horizontal" novalidate>\n                                            <!-- START HEAD -->\n                                           <div class="form">\n                                                    <!-- START FROM -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">From:</label>\n                                                                            </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select data-ng-model="form.from[0]" theme="bootstrap" name="from" required>\n                                                                                               <ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n                                                                                            <ui-select-choices repeat="mailAccount.address as mailAccount in mailAccounts | filter: $select.search">\n                                                                                                      <div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n                                                                                                  <small data-ng-bind-html="mailAccount.address | highlight: $select.search"></small>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END FROM -->\n\n                                                   <!-- MAIL TO -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n                                                               <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">To:</label>\n                                                                              </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select tagging tagging-label multiple data-ng-model="form.sto" theme="bootstrap" name="to">\n                                                                                               <ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="to in form.to | filter:$select.search">\n                                                                                                    {{to}}\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END TO -->\n\n                                                     <!-- START CC -->\n                                                     <div class="form-group">\n                                                              <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">Cc:</label>\n                                                                              </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select tagging tagging-label="" multiple data-ng-model="form.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n                                                                                             <ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="cc in form.cc">\n                                                                                                    {{cc}}\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END CC -->\n\n                                                     <!-- START SUBJECT -->\n                                                        <div data-ng-hide="mailRoom" class="form-group" data-ng-class="{\'has-error\': forms.compose.subject.$invalid && forms.compose.$submitted}">\n                                                          <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">Subject:</label>\n                                                                         </div>\n                                                                                <div class="col-md-11">\n                                                                                       <input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="Subject..." rows="8" data-ng-model="form.subject">\n                                                                                 <span data-ng-show="forms.compose.subject.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END SUJBECT -->\n\n                                                        <!-- START HTML -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.compose.text.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n                                                                   <span data-ng-show="forms.compose.text.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                        <!-- END HTML -->\n\n                                                   <!-- START CANNED -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.compose.subject.$invalid && forms.compose.$submitted}">\n                                                          <div class="col-md-12">\n                                                                       <input type="text"\n                                                                    data-ng-model="selectedAnswer"\n                                                                        placeholder="{{\'APPLICATION_CANNED_ANSWERS\' | translate | lowercase | capitalize}}.."\n                                                                       typeahead-on-select="onSelectAnswer($item)"\n                                                                   uib-typeahead="answer for answer in getAnswers($viewValue)"\n                                                                   typeahead-loading="loadingAnswers"\n                                                                    typeahead-no-results="noResults"\n                                                                      class="form-control">\n                                                                 <span data-ng-show="forms.compose.subject.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                        <!-- END CANNED -->\n\n                                                 <!-- START ATTACH -->\n                                                 <div class="form-group">\n                                                              <div class="col-md-6">\n                                                                        <input type="file" nv-file-select="" uploader="uploader" multiple="">\n                                                                 <table class="table">\n                                                                         <tbody>\n                                                                                       <tr ng-repeat="item in uploader.queue">\n                                                                                               <td style="border-top:none"><strong>{{ item.file.name }}</strong></td>\n                                                                                                <td style="border-top:none" ng-show="uploader.isHTML5" nowrap>{{ item.file.size/1024/1024|number:2 }} MB</td>\n                                                                                         <td style="border-top:none" ng-show="uploader.isHTML5">\n                                                                                                       <div class="progress" style="margin-bottom: 0;">\n                                                                                                              <div class="progress-bar" role="progressbar" ng-style="{ \'width\': item.progress + \'%\' }"></div>\n                                                                                                   </div>\n                                                                                                </td>\n                                                                                         <td style="border-top-style:none" class="text-center">\n                                                                                                        <span ng-show="item.isSuccess"><i class="glyphicon glyphicon-ok"></i></span>\n                                                                                                  <span ng-show="item.isCancel"><i class="glyphicon glyphicon-ban-circle"></i></span>\n                                                                                                   <span ng-show="item.isError"><i class="glyphicon glyphicon-remove"></i></span>\n                                                                                                </td>\n                                                                                         <td style="border-top-style:none" nowrap>\n                                                                                                     <button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n                                                                                                            <span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE\' | translate}}\n                                                                                                        </button>\n                                                                                             </td>\n                                                                                 </tr>\n                                                                         </tbody>\n                                                                      </table>\n                                                                      <div>\n                                                                 </div>\n                                                                </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="form-actions right todo-form-actions" style="border-top: none;">\n                                                                          <input type="submit" value="{{ \'APPLICATION_SEND\' | translate }}" class="btn btn-sm green-meadow" data-ng-disabled="form.disabled || !form.html">\n                                                                           <input type="button" value="{{ \'APPLICATION_CANCEL\' | translate }}"class="btn btn-sm btn-default" data-ng-click="cancel()">\n                                                                 </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END ATTACH -->\n                                           </div>\n                                        </form>\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n<!-- END TODO CONTENT -->\n'),
+a.put("app/channels/mail/account/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n        <div class="col-md-12">\n               <!-- BEGIN PAGE HEADER-->\n             <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-notebook"></i>\n                                 <a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n                          </li>\n                 </ul>\n         </div>\n                <!-- END PAGE HEADER-->\n\n             <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n                            </div>\n                        </div>\n                        <div class="portlet-body">\n                            <wizard on-finish="createItem()">\n             <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n                                                    <form name="forms.info" novalidate>\n                                                           <!-- START NAME -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n                                                                     <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n                                                                   <span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END NAME -->\n\n                                                           <!-- START ADDRESS -->\n                                                                <div class="form-group" data-ng-class="{\'has-error\': (forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid}">\n                                                                       <label class="control-label">{{\'APPLICATION_EMAIL_ADDRESS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="address" placeholder="{{\'APPLICATION_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.address" required/>\n                                                                  <span data-ng-show="(forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid && forms.info.address.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END ADDRESS -->\n\n                                                                <!-- START DESCRIPTION -->\n                                                            <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                                      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n                                                               </div>\n                                                                <!-- END DESCRIPTION -->\n                                                              <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n                                                       </form>\n                                               </wz-step>\n\n                                          <wz-step title="IMAP" canexit="formValidation(forms.in.$valid)">\n                                                      <form name="forms.in" novalidate>\n                                                             <!-- START HOST -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_INCOMING_MAIL_SERVER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.host" required/>\n                                                                      <span data-ng-show="(forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid && forms.in.host.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END HOST -->\n\n                                                           <!-- START USERNAME -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.username" name="username" required/>\n                                                                  <span data-ng-show="(forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid && forms.in.username.$error.required"  class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END USERNAME -->\n\n                                                               <!-- START PASSWORD -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.password" required/>\n                                                                      <span data-ng-show="(forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid && forms.in.password.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END PASSWORD -->\n\n                                                               <!-- START PORT -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid}">\n                                                                   <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.port" required/>\n                                                                    <span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                                       <span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.number" class="help-block help-block-error">\n                                                                            <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                                  </span>\n                                                               </div>\n                                                                <!-- END PORT -->\n\n                                                           <!-- START MAILBOX -->\n                                                                <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n                                                                  <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="item.MailServerIn.mailbox"/>\n                                                              </div>\n                                                                <!-- END MAILBOX -->\n\n                                                                <!-- START SEARCH FILTER -->\n                                                          <div class="form-group">\n                                                                      <label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n                                                                    <ui-select data-ng-model="item.MailServerIn.filter" name="filter" theme="bootstrap">\n                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n                                           <ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n                                            <div data-ng-bind="filter | highlight: $select.search"></div>\n                                       </ui-select-choices>\n                                        </ui-select>\n                                                                        <!-- <input type="text" name="filter" placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}" class="form-control" data-ng-model="in.filter"/> -->\n                                                                </div>\n                                                                <!-- START SEARCH FILTER -->\n\n                                                                <!-- START DELETE -->\n                                                         <div class="form-group row">\n                                                                  <label class="col-md-3">\n                                                                              {{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}\n                                                                       </label>\n                                                                      <label class="col-md-9">\n                                                                                      <input type="checkbox" data-ng-model="item.MailServerIn.delete">\n                                                                      </label>\n                                                              </div>\n                                                                <!-- END DELETE -->\n\n                                                         <!-- START SSL -->\n                                                            <div class="form-group row">\n                                                                  <label class="col-md-3">\n                                                                              SSL\n                                                                   </label>\n                                                                      <label class="col-md-9">\n                                                                                      <input type="checkbox" data-ng-model="item.MailServerIn.ssl">\n                                                                 </label>\n                                                              </div>\n                                                                <!-- END SSL -->\n                                                              <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n                                                    </form>\n                                               </wz-step>\n                                            <wz-step title="SMTP" canexit="formValidation(forms.out.$valid)">\n                                                     <form name="forms.out" novalidate>\n                                                            <!-- START HOST -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_OUTGOING_MAIL_SERVER\' | translate}} <span class="required" aria-required="true">*</span></label>\n                                                                        <input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.MailServerOut.host" required/>\n                                                                     <span data-ng-show="(forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid && forms.out.host.$error.required" class="help-block help-block-error">\n                                                                              <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END HOST -->\n\n                                                           <!-- START USERNAME -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.MailServerOut.username" required/>\n                                                                 <span data-ng-show="(forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid && forms.out.username.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END USERNAME -->\n\n                                                               <!-- START PASSWORD -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.MailServerOut.password" required/>\n                                                                     <span data-ng-show="(forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid && forms.out.password.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END PASSWORD -->\n\n                                                               <!-- START PORT -->\n                                                           <div class="form-group" data-ng-class="{\'has-error\': (forms.out.port.$touched || forms.out.$submitted) && forms.out.port.$invalid}">\n                                                                        <label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                 <input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="item.MailServerOut.port" required/>\n                                                                   <span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.required" class="help-block help-block-error">\n                                                                         <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                                       <span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.number" class="help-block help-block-error">\n                                                                           <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n                                                                  </span>\n                                                               </div>\n                                                                <!-- END PORT -->\n\n                                                           <!-- START SSL -->\n                                                            <div class="form-group row">\n                                                                  <label class="col-md-3">\n                                                                              SSL\n                                                                   </label>\n                                                                      <label class="col-md-9">\n                                                                                      <input type="checkbox" data-ng-model="item.MailServerOut.ssl">\n                                                                        </label>\n                                                              </div>\n                                                                <!-- END DELETE -->\n\n                                                         <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n                                                            <input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n                                                   </form>\n                                               </wz-step>\n                                            <wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n                                                     <p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n                                                    <input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </wz-step>\n                            </wizard>\n                     </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/inbox/list/list.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-note"></i>\n                                     <a href="#">{{ \'APPLICATION_INBOX\' | translate }}</a>\n                               </li>\n                 </ul>\n         </div>\n        </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-note font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_INBOX\' | translate }}</a> </span>\n                             </div>\n                                <div class="actions">\n                                 <div class="btn-group">\n                                               <a class="btn btn-default" href="#" data-ng-click="gridOptions.getPage();">\n                                                   <i class="icon-reload"></i>\n                                           </a>\n                                  </div>\n                                        <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="/channels/mail/inbox/view/compose">\n                                                 <i class="icon-plus"></i> {{ \'APPLICATION_NEW_MESSAGE\' | translate }}\n                                               </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/inbox/mail/mail.html",'<div class="message">\n  <div class="row">\n    <div class="col-md-6">\n      <span class="bold">From: </span>\n      <span>{{mailMessage.from}}</span>\n      <br>\n      <span class="bold">To: </span>\n      <span>{{mailMessage.to}} </span>\n      <br>\n      <span data-ng-if="mailMessage.cc.length" class="bold">Cc: </span>\n      <span data-ng-if="mailMessage.cc.length">{{mailMessage.cc}} </span>\n    </div>\n    <div class="col-md-6">\n      <span class="pull-right" data-ng-show="mailMessage.User">{{\'APPLICATION_SENT_BY\' | translate}}: <strong>{{mailMessage.User.fullname}}</strong></span>\n    </div>\n  </div>\n  <br>\n  <span class="todo-tasklist-date">\n    <span class="pull-right">\n      <a data-ng-click="(mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\') && retry(mailMessage.id)" href="#" class="btn default btn-xs inactive-link" data-ng-class="{\'green-stripe\': mailMessage.status == \'SENT\' || mailMessage.status == \'RECEIVED\', \'blue-stripe\': mailMessage.status == \'SENDING\', \'red-stripe\': mailMessage.status == \'FAILED\'}"> {{mailMessage.status | uppercase}}\n        <i data-ng-class="{\'fa fa-check\': mailMessage.status == \'SENT\' || mailMessage.status == \'RECEIVED\', \'fa fa-warning\': mailMessage.status == \'SENDING\', \'fa fa-times\': mailMessage.status == \'FAILED\'}"></i>\n      </a>\n    </span>\n    <i class="icon-calendar"></i> <span am-time-ago="mailMessage.updatedAt"></span>\n  </span>\n  <hr>\n  <span class="body text-left" data-ng-bind-html="mailMessage.text" style="white-space: pre-wrap;"></span>\n  <hr data-ng-if="mailMessage.MailAttachments.length">\n  <div data-ng-repeat="mailAttachment in mailMessage.MailAttachments">\n    <strong>{{mailAttachment.name}}</strong>\n    <span>\n      {{mailAttachment.size}}B </span>\n      <a target="_self" download="{{mailAttachment.name}}" href="api/mail/attachments/{{mailAttachment.id}}">\n        {{ \'APPLICATION_DOWNLOAD\' | translate }}\n      </a>\n    </div>\n  </div>\n'),a.put("app/channels/mail/inbox/note/note.html",'<div class="note">\n  <div class="row">\n    <div class="col-md-6">\n      <i class="icon-calendar"></i> <span am-time-ago="mailMessage.updatedAt"></span>\n    </div>\n    <div class="col-md-6">\n      <span class="pull-right" data-ng-show="mailMessage.User">{{\'APPLICATION_ADD_BY\' | translate}}: <strong>{{mailMessage.User.fullname}}</strong></span>\n    </div>\n  </div>\n  <hr>\n  <span class="body text-left" data-ng-bind-html="mailMessage.text" style="white-space: pre-wrap;"></span>\n  <hr data-ng-if="mailMessage.MailAttachments.length">\n  <div data-ng-repeat="mailAttachment in mailMessage.MailAttachments">\n    <strong>{{mailAttachment.name}}</strong>\n    <span>\n      {{mailAttachment.size}}B </span>\n      <a target="_self" download="{{mailAttachment.name}}" href="api/mail/attachments/{{mailAttachment.id}}">\n        {{ \'APPLICATION_DOWNLOAD\' | translate }}\n      </a>\n    </div>\n  </div>\n'),a.put("app/channels/mail/inbox/view/view.agents.modal.html",'<div class="modal-header" data-ng-init="initModal()">\n  <h3 class="modal-title">{{ \'APPLICATION_AGENTS\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <!-- START TRANSPORT -->\n  <div class="form-group">\n    <form name="form" novalidate>\n      <!-- START TRANSPORT -->\n      <div class="form-group">\n        <ui-select multiple name="agents" data-ng-model="item.agents" theme="bootstrap">\n          <ui-select-match placeholder="{{\'APPLICATION_AGENTS\' | translate}}">{{$item.fullname}}</ui-select-match>\n          <ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n            {{agent.fullname}}\n          </ui-select-choices>\n        </ui-select>\n      </div>\n      <!-- END TRANSPORT -->\n    </form>\n  </div>\n  <!-- END TRANSPORT -->\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/inbox/view/view.html",'<div class="row">\n  <div class="col-md-12">\n    <div class="page-bar">\n      <ul class="page-breadcrumb">\n        <li>\n          <i class="icon-rocket"></i>\n          <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n          <i class="fa fa-angle-right"></i>\n        </li>\n        <li>\n          <i class="icon-puzzle"></i>\n          <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n          <i class="fa fa-angle-right"></i>\n        </li>\n        <li>\n          <i class="icon-envelope"></i>\n          <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n          <i class="fa fa-angle-right"></i>\n        </li>\n        <li>\n                                      <i class="icon-note"></i>\n                                     <a href="/channels/mail/inbox/list">{{ \'APPLICATION_INBOX\' | translate }}</a>\n                               </li>\n      </ul>\n    </div>\n  </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n    <div ui-view></div>\n      </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/inbox/view/view.notes.modal.html",'<div class="modal-header" data-ng-init="initModal()">\n  <h3 class="modal-title">{{ \'APPLICATION_NOTES\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n    <div class="form-group">\n      <textarea data-ng-model="item.text" name="text" rows="10" style="resize: none; width: 100%;"></textarea>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/inbox/view/view.room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoom()">\n        <div class="portlet light">\n           <div class="portlet-title">\n                   <div class="caption" data-ng-show="mailRoom">\n                         <i class="icon-bar-chart font-green-sharp hide"></i>\n                          <span class="label label-sm label-default">{{mailRoom.status}}</span> - <span class="caption-subject font-green-sharp bold uppercase">{{mailRoom.subject}}</span>\n                     </div>\n                        <div class="actions" data-ng-switch="mailRoom.status">\n                                <div class="btn-group btn-group-solid" data-ng-show="mailRoom">\n                                       <button type="button" class="btn yellow" data-ng-click="loadNote()" uib-popover="{{\'APPLICATION_ADD_NOTE\' | translate}}" popover-trigger="mouseenter">N</button>\n                            </div>\n                                <div class="btn-group btn-group-solid" data-ng-show="mailRoom">\n                                       <button type="button" class="btn blue" data-ng-click="loadAgents()" uib-popover="{{\'APPLICATION_ASSING_AGENTS\' | translate}}" popover-trigger="mouseenter">A</button>\n                               </div>\n                                <div class="btn-group btn-group-solid">\n                                       <button type="button" class="btn red" data-ng-click="loadTemplate()" uib-popover="{{\'APPLICATION_LOAD_TEMPLATES\' | translate}}" popover-trigger="mouseenter">T</button>\n                             </div>\n                                <div class="btn-group btn-group-solid">\n                                       <button type="button" class="btn green" data-ng-switch-when="NEW" data-ng-click="updateStatus(\'CLOSED\')" uib-popover="{{\'APPLICATION_CLOSE\' | translate}}" popover-trigger="mouseenter">S</button>\n                                        <button type="button" class="btn green" data-ng-switch-when="OPEN" data-ng-click="updateStatus(\'CLOSED\')" uib-popover="{{\'APPLICATION_CLOSE\' | translate}}" popover-trigger="mouseenter">S</button>\n                                       <button type="button" class="btn green" data-ng-switch-when="CLOSED" data-ng-click="updateStatus(\'OPEN\')" uib-popover="{{\'APPLICATION_OPEN\' | translate}}" popover-trigger="mouseenter">O</button>\n                                </div>\n                        </div>\n                </div>\n                <div class="portlet-body">\n                    <div class="row">\n                             <div data-ng-show="mailRoom" data-ng-class="{\'col-md-6 col-sm-6\': mailRoom}">\n                                       <div ng-scrollbars ng-scrollbars-config="config">\n                                             <ul class="chats">\n                                                    <li data-ng-switch="mailMessage.status" data-ng-class="{\'in\': mailMessage.status == \'RECEIVED\', \'out\': mailMessage.status == \'SENT\' || mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\' || mailMessage.status == \'NOTE\'}" data-ng-repeat="mailMessage in mailRoom.MailMessages | orderBy:\'-createdAt\'">\n                                                              <img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && mailMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n                                                            <note message="mailMessage" ng-switch-when="NOTE"></note>\n                                                             <mail message="mailMessage" ng-switch-default></mail>\n                                                 </li>\n                                         </ul>\n                                 </div>\n                                </div>\n                                <div data-ng-class="{\'col-md-6 col-sm-6\': mailRoom, \'col-md-12 col-sm-12\': !mailRoom}">\n                                   <form name="forms.compose" data-ng-submit="forms.compose.$valid && sendMail()" class="form-horizontal" novalidate>\n                                            <!-- START HEAD -->\n                                           <div class="form">\n                                                    <!-- START FROM -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">From:</label>\n                                                                            </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select data-ng-model="form.from[0]" theme="bootstrap" name="from" required>\n                                                                                               <ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n                                                                                            <ui-select-choices repeat="mailAccount.address as mailAccount in mailAccounts | filter: $select.search">\n                                                                                                      <div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n                                                                                                  <small data-ng-bind-html="mailAccount.address | highlight: $select.search"></small>\n                                                                                           </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END FROM -->\n\n                                                   <!-- MAIL TO -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n                                                               <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">To:</label>\n                                                                              </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select tagging tagging-label multiple data-ng-model="form.sto" theme="bootstrap" name="to">\n                                                                                               <ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="to in form.to | filter:$select.search">\n                                                                                                    {{to}}\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                                  <span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                               <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END TO -->\n\n                                                     <!-- START CC -->\n                                                     <div class="form-group">\n                                                              <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">Cc:</label>\n                                                                              </div>\n                                                                                <div class="col-md-11">\n                                                                                       <ui-select tagging tagging-label="" multiple data-ng-model="form.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n                                                                                             <ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n                                                                                              <ui-select-choices repeat="cc in form.cc">\n                                                                                                    {{cc}}\n                                                                                                </ui-select-choices>\n                                                                                  </ui-select>\n                                                                          </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END CC -->\n\n                                                     <!-- START SUBJECT -->\n                                                        <div data-ng-hide="mailRoom" class="form-group" data-ng-class="{\'has-error\': forms.compose.subject.$invalid && forms.compose.$submitted}">\n                                                          <div class="col-md-12">\n                                                                       <div class="row">\n                                                                             <div class="col-md-1">\n                                                                                        <label class="control-label">Subject:</label>\n                                                                         </div>\n                                                                                <div class="col-md-11">\n                                                                                       <input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="Subject..." rows="8" data-ng-model="form.subject">\n                                                                                 <span data-ng-show="forms.compose.subject.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                                 </span>\n                                                                               </div>\n                                                                        </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END SUJBECT -->\n\n                                                        <!-- START HTML -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': forms.compose.text.$invalid && forms.compose.$submitted}">\n                                                             <div class="col-md-12">\n                                                                       <div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n                                                                   <span data-ng-show="forms.compose.text.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                             <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                        <!-- END HTML -->\n\n                                                   <!-- START CANNED -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': forms.compose.subject.$invalid && forms.compose.$submitted}">\n                                                          <div class="col-md-12">\n                                                                       <input type="text"\n                                                                    data-ng-model="selectedAnswer"\n                                                                        placeholder="{{\'APPLICATION_CANNED_ANSWERS\' | translate | lowercase | capitalize}}.."\n                                                                       typeahead-on-select="onSelectAnswer($item)"\n                                                                   uib-typeahead="answer for answer in getAnswers($viewValue)"\n                                                                   typeahead-loading="loadingAnswers"\n                                                                    typeahead-no-results="noResults"\n                                                                      class="form-control">\n                                                                 <span data-ng-show="forms.compose.subject.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                        </div>\n                                                        <!-- END CANNED -->\n\n                                                 <!-- START ATTACH -->\n                                                 <div class="form-group">\n                                                              <div class="col-md-6">\n                                                                        <input type="file" nv-file-select="" uploader="uploader" multiple="">\n                                                                 <table class="table">\n                                                                         <tbody>\n                                                                                       <tr ng-repeat="item in uploader.queue">\n                                                                                               <td style="border-top:none"><strong>{{ item.file.name }}</strong></td>\n                                                                                                <td style="border-top:none" ng-show="uploader.isHTML5" nowrap>{{ item.file.size/1024/1024|number:2 }} MB</td>\n                                                                                         <td style="border-top:none" ng-show="uploader.isHTML5">\n                                                                                                       <div class="progress" style="margin-bottom: 0;">\n                                                                                                              <div class="progress-bar" role="progressbar" ng-style="{ \'width\': item.progress + \'%\' }"></div>\n                                                                                                   </div>\n                                                                                                </td>\n                                                                                         <td style="border-top-style:none" class="text-center">\n                                                                                                        <span ng-show="item.isSuccess"><i class="glyphicon glyphicon-ok"></i></span>\n                                                                                                  <span ng-show="item.isCancel"><i class="glyphicon glyphicon-ban-circle"></i></span>\n                                                                                                   <span ng-show="item.isError"><i class="glyphicon glyphicon-remove"></i></span>\n                                                                                                </td>\n                                                                                         <td style="border-top-style:none" nowrap>\n                                                                                                     <button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n                                                                                                            <span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE\' | translate}}\n                                                                                                        </button>\n                                                                                             </td>\n                                                                                 </tr>\n                                                                         </tbody>\n                                                                      </table>\n                                                                      <div>\n                                                                 </div>\n                                                                </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="form-actions right todo-form-actions" style="border-top: none;">\n                                                                          <input type="submit" value="{{ \'APPLICATION_SEND\' | translate }}" class="btn btn-sm green-meadow" data-ng-disabled="form.disabled || !form.html">\n                                                                           <input type="button" value="{{ \'APPLICATION_CANCEL\' | translate }}"class="btn btn-sm btn-default" data-ng-click="cancel()">\n                                                                 </div>\n                                                                </div>\n                                                        </div>\n                                                        <!-- END ATTACH -->\n                                           </div>\n                                        </form>\n                               </div>\n                        </div>\n                </div>\n        </div>\n</div>\n<!-- END TODO CONTENT -->\n'),
 a.put("app/channels/mail/inbox/view/view.templates.modal.html",'<div class="modal-header" data-ng-init="initModal()">\n  <h3 class="modal-title">{{ \'APPLICATION_TEMPLATES\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="note note-info" data-ng-show="!templates.length">\n    <h4 class="block">Info!</h4>\n    <p>\n      {{\'MESSAGE_NO_TEMPLATES_AVAILABLE\' | translate}}\n    </p>\n  </div>\n  <form name="form" data-ng-show="templates.length" novalidate>\n    <div class="form-group">\n      <ui-select data-ng-model="item.template" theme="bootstrap">\n        <ui-select-match placeholder="Select a template in the list or search his name...">{{$select.selected.name}}</ui-select-match>\n        <ui-select-choices repeat="template in templates | propsFilter: {name: $select.search}">\n          <div ng-bind-html="template.name | highlight: $select.search"></div>\n          <small data-ng-show="template.description">\n            {{\'APPLICATION_DESCRIPTION\' | translate}}: {{template.description}}\n          </small>\n        </ui-select-choices>\n      </ui-select>\n    </div>\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-show="templates.length">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/queue/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.general.name.$touched || form.general.$submitted) && form.general.name.$invalid && form.general.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n    </div>\n    <!-- END DESCRIPTION -->\n\n    <!-- START TIMEOUT -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid}">\n      <label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n      <span data-ng-show="(form.general.timeout.$touched || form.general.$submitted) && form.general.timeout.$invalid && form.general.timeout.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END TIMEOUT -->\n\n    <!-- START STRATEGY -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid}">\n      <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n        <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(form.general.strategy.$touched || form.general.$submitted) && form.general.strategy.$invalid && form.general.strategy.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END STRATEGY -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/queue/list/list.html",'<div class="row">\n   <div class="col-md-12">\n                       <div class="page-bar">\n                                <ul class="page-breadcrumb">\n                                  <li>\n                                          <i class="icon-rocket"></i>\n                                           <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                           <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-puzzle"></i>\n                                           <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                            <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-envelope"></i>\n                                         <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                                <i class="fa fa-angle-right"></i>\n                                     </li>\n                                 <li>\n                                          <i class="icon-docs"></i>\n                                             <a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                      </li>\n                         </ul>\n                 </div>\n                </div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n       <div class="col-md-12">\n               <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-ng-click="createItem()">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }}\n                                         </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                          <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="note note-warning" data-ng-hide="teams.length">\n                           <h4 class="block">Warning!</h4>\n                               <p>\n                                    {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n                             </p>\n                  </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <label for="penalty">{{\'APPLICATION_PENALTY\' | translate}}</label>\n                                          <div class="input-group input-small mbottom20">\n                                                       <input type="number" class="spinner-input form-control" maxlength="3" data-ng-model="queue.penalty" readonly>\n                                                 <div class="spinner-buttons input-group-btn btn-group-vertical">\n                                                              <button type="button" class="btn spinner-up btn-xs blue" data-ng-click="queue.penalty=queue.penalty+1">\n                                                                       <i class="fa fa-angle-up"></i>\n                                                                </button>\n                                                             <button type="button" class="btn spinner-down btn-xs blue" data-ng-disabled="!queue.penalty" data-ng-click="queue.penalty=queue.penalty-1">\n                                                                   <i class="fa fa-angle-down"></i>\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/mail/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n    <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                     <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                      {{user.role}}\n                         </div> -->\n                    </div>\n                        <!-- END SIDEBAR USER TITLE -->\n\n                     <!-- SIDEBAR MENU -->\n                 <div class="profile-usermenu">\n                                <ul class="nav">\n                                      <li data-ng-class="{active: $state.is(\'main.channels.mail.queues.view.settings\')}">\n                                         <a data-ng-href="/channels/mail/queues/view/{{queue.id}}/settings">\n                                                   <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.mail.queues.view.agents\')}">\n                                                   <a data-ng-href="/channels/mail/queues/view/{{queue.id}}/agents">\n                                                             <i class="icon-people"></i>\n                                                           {{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                                  </li>\n                                         </ul>\n                                 </div>\n                                        <!-- END MENU -->\n                             </div>\n                                <!-- END PORTLET main.channels -->\n                    </div>\n                        <!-- END BEGIN PROFILE SIDEBAR -->\n                    <!-- BEGIN PROFILE CONTENT -->\n                        <div ui-view class="profile-content">\n                 </div>\n                        <!-- END PROFILE CONTENT -->\n          </div>\n        </div>\n        <!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/queue/view/view.settings.html",'<div class="row">\n       <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateMailQueue()" novalidate>\n                                     <!-- START NAME -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n                                          <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                         </span>\n                                       </div>\n                                        <!-- END NAME -->\n\n                                   <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n                                      </div>\n                                        <!-- END DESCRIPTION -->\n\n                                    <!-- START TIMEOUT -->\n                                        <div class="form-group">\n                                              <label class="control-label">Agent Timeout</label>\n                                            <input type="number" name="timeout" placeholder="Timeout" class="form-control" min="1" data-ng-model="queue.timeout"/>\n                                        </div>\n                                        <!-- END TIMEOUT -->\n\n                                        <!-- START HEADER SHAPE -->\n                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n                                         <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                     <ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n                                                          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                 </ui-select-choices>\n                                          </ui-select>\n                                  </div>\n                                        <!-- END HEADER SHAPE -->\n                                     <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                          </form>\n                       </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/mail/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns  class="ui-grid" ui-grid-tree-view ui-grid-expandable-row ui-grid-pagination auto-resize>\n                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/realtime/view/agent/agent.modal.info.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_INTERFACE_INFO\' | translate }}</h3>\n</div>\n<div class="modal-body">\n<div data-ng-if="agent.ipaddr" class="well">\n  <div>{{agent.ipaddr}}:{{agent.port}}</div>\n  <div>{{agent.fullcontact}}</div>\n  <div>{{agent.useragent}}</div>\n  <div>{{agent.lastms}}</div>\n</div>\n<div data-ng-if="!agent.ipaddr" class="alert alert-danger" role="alert">\n  {{\'MESSAGE_NO_AVAILABLE_INFO\' | translate}}\n</div>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/realtime/view/agent/queue.modal.add.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_JOIN_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <div class="form-group row">\n  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n  <div class="col-md-10">\n    <ui-select multiple ng-model="item.queues" theme="bootstrap" required>\n      <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$item.name}}</ui-select-match>\n      <ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n        <div ng-bind-html="queue.name | highlight: $select.search"></div>\n      </ui-select-choices>\n    </ui-select>\n  </div>\n</div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/mail/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" ui-grid-tree-view auto-resize>\n                     <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initSessions()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns class="ui-grid" auto-resize>\n                       <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-directions"></i>\n                                       <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-envelope"></i>\n                                 <a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n                                        <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-energy"></i>\n                                   <a href="#">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <div>\n                 <nav class="navbar navbar-default" role="navigation">\n                         <div class="collapse navbar-collapse">\n                                        <ul class="nav navbar-nav">\n                                           <li data-ng-class="{\'active\': $state.is(\'channels.mail.realtime.view.agents\')}">\n                                                  <a href="/channels/mail/realtime/view/agents">\n                                                                {{\'APPLICATION_AGENTS\' | translate}}\n                                                        </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                        </nav>\n                </div>\n\n              <div ui-view></div>\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/mail/realtime/view/view.queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n       <div class="col-md-12">\n               <!-- START TABLE -->\n          <div id="grid1" ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-tree-view class="grid">\n                 <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/chanspy/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CHANSPY\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START PREFIX -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.prefix.$touched || form.$submitted) && form.prefix.$invalid}">\n      <label class="control-label">{{\'APPLICATION_PREFIX\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="prefix" placeholder="{{\'APPLICATION_PREFIX\' | translate}}" class="form-control" data-ng-model="item.prefix" required/>\n      <span data-ng-show="(form.prefix.$touched || form.$submitted) && form.prefix.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END PREFIX -->\n\n    <!-- START OPTIONS -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.options.$touched || form.$submitted) && form.options.$invalid}">\n      <label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select multiple data-ng-model="item.options" name="options" theme="bootstrap" ui-required="true">\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.value}}: {{$item.name | translate}}</ui-select-match>\n        <ui-select-choices repeat="option.value as option in options | filter: $select.search">\n          <div ng-bind-html="option.value + \': \' + (option.name | translate) | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span data-ng-show="(form.options.$touched || form.$submitted) && form.options.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END OPTIONS -->\n\n    <!-- START AUTH -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_AUTH\' | translate}}</label></br>\n      <input\n      bs-switch\n      class="form-control"\n      ng-model="item.auth"\n      type="checkbox"\n      name="auth"\n      data-ng-init="item.auth = 0"\n      switch-active="{{ recordSwitch.isActive }}"\n      switch-on-text="{{ recordSwitch.onText }}"\n      switch-off-text="{{ recordSwitch.offText }}"\n      switch-on-color="{{ recordSwitch.onColor }}"\n      switch-off-color="{{ recordSwitch.offColor }}"\n      switch-animate="{{ recordSwitch.animate }}"\n      switch-size="{{ recordSwitch.size }}"\n      switch-label="{{ recordSwitch.label }}"\n      switch-icon="{{ recordSwitch.icon }}"\n      switch-radio-off="{{ recordSwitch.radioOff }}"\n      switch-label-width="{{ recordSwitch.labelWidth }}"\n      switch-handle-width="{{ recordSwitch.handleWidth }}">\n    </div>\n    <!-- END AUTH -->\n\n    <!-- START PASSWORD -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.password.$touched || form.$submitted) && form.password.$invalid}">\n      <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span data-ng-show="item.auth" class="required" aria-required="true">*</span></label>\n      <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" data-ng-disabled="!item.auth" data-ng-required="item.auth"/>\n      <span data-ng-show="(form.password.$touched || form.$submitted) && form.password.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END PASSWORD -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/chanspy/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-wrench"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/channels/voice/chanspys/list">{{ \'APPLICATION_CHANSPY\' | translate }}</a>\n                         </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_CHANSPY\' | translate }}</a> </span>\n                           </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <button class="btn green-jungle " ng-click="createItem()">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CHANSPY\' | translate }}\n                                               </button>\n                                     </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/chanspy/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getChanSpy()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-wrench"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-eye"></i>\n                                      <a href="/channels/voice/chanspys/list">{{ \'APPLICATION_CHANSPY\' | translate }}</a>\n                                 <i data-ng-show="chanspy" class="fa fa-angle-right"></i>\n                              </li>\n                         <li data-ng-show="chanspy">\n                                   <a href="#">{{chanspy.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET MAIN -->\n                 <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/chanspy.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{chanspy.name}}\n                                      </div>\n                                        <!-- <div class="profile-usertitle-job">\n                                              {{user.role}}\n                                 </div> -->\n                            </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.tools.chanspy.view.settings\')}">\n                                                        <a data-ng-href="/tools/chanspy/view/{{chanspy.id}}/settings">\n                                                        <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET MAIN -->\n             </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/chanspy/view/view.settings.html",'<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CHANSPY\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateChanSpy()" novalidate>\n\n                                                     <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="chanspy.name" required/>\n                                                                <span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START PREFIX -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (form.general.prefix.$touched || form.general.$submitted) && form.general.prefix.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_PREFIX\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <input type="text" name="prefix" placeholder="{{\'APPLICATION_PREFIX\' | translate}}" class="form-control" data-ng-model="chanspy.prefix" required/>\n                                                          <span data-ng-show="(form.general.prefix.$touched || form.general.$submitted) && form.general.prefix.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PREFIX -->\n\n                                                 <!-- START OPTIONS -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (form.general.options.$touched || form.general.$submitted) && form.general.options.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <ui-select multiple data-ng-model="chanspy.options" name="options" theme="bootstrap" ui-required="true">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.value}}: {{$item.name | translate}}</ui-select-match>\n                                                                    <ui-select-choices repeat="option.value as option in options | filter: $select.search">\n                                                                               <div ng-bind-html="option.value + \': \' + (option.name | translate) | highlight: $select.search"></div>\n                                                                      </ui-select-choices>\n                                                          </ui-select>\n                                                          <span data-ng-show="(form.general.options.$touched || form.general.$submitted) && form.general.options.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END OPTIONS -->\n\n                                                        <!-- START AUTH -->\n                                                   <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_AUTH\' | translate}}</label></br>\n                                                                <input\n                                                                bs-switch\n                                                             class="form-control"\n                                                          ng-model="chanspy.auth"\n                                                               type="checkbox"\n                                                               name="auth"\n                                                           switch-active="{{ recordSwitch.isActive }}"\n                                                           switch-on-text="{{ recordSwitch.onText }}"\n                                                            switch-off-text="{{ recordSwitch.offText }}"\n                                                          switch-on-color="{{ recordSwitch.onColor }}"\n                                                          switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                           switch-size="{{ recordSwitch.size }}"\n                                                         switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                         switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                            switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                 </div>\n                                                        <!-- END AUTH -->\n\n                                                   <!-- START PASSWORD -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (form.general.password.$touched || form.general.$submitted) && form.general.password.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" data-ng-show="chanspy.auth" aria-required="true">*</span></label>\n                                                         <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="chanspy.password" data-ng-disabled="!chanspy.auth" data-ng-required="chanspy.auth"/>\n                                                                <span data-ng-show="(form.general.password.$touched || form.general.$submitted) && form.general.password.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PASSWORD -->\n\n                                                       <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="chanspy.description"></textarea>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/channels/voice/context/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_CONTEXT\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/context/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="#">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n                            </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_CONTEXTS\' | translate }}</a> </span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle" href="#" data-ng-click="createItem()">\n                                            <i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTEXT\' | translate }}\n                                       </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/context/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getContext()">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n                                        <i data-ng-show="context" class="fa fa-angle-right"></i>\n                              </li>\n                         <li data-ng-show="context">\n                                   <a href="#">{{context.name}}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/context.png" class="img-responsive">\n                            </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{context.name}}\n                                      </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.contexts.view.settings\')}">\n                                                      <a data-ng-href="/channels/voice/contexts/view/{{context.id}}/settings">\n                                                              <i class="icon-settings"></i>\n                                                         {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                        </li>\n                                         </ul>\n                                 </div>\n                                        <!-- END MENU -->\n                             </div>\n                                <!-- END PORTLET main.channels -->\n                    </div>\n                        <!-- END BEGIN PROFILE SIDEBAR -->\n                    <!-- BEGIN PROFILE CONTENT -->\n                        <div ui-view class="profile-content">\n                 </div>\n                        <!-- END PROFILE CONTENT -->\n          </div>\n        </div>\n        <!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/context/view/view.settings.html",'<div class="row">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONTEXT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                             </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body">\n                            <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceContext()" novalidate>\n\n                                                        <!-- START NAME -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="context.name" required readonly/>\n                                                               <span class="help-block">\n                                                                     {{ \'DESCRIPTION_CANT_EDIT_NAME\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END NAME -->\n\n                                                   <!-- START DESCRIPTION -->\n                                                    <div class="form-group">\n                                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="context.description"></textarea>\n                                                       </div>\n                                                        <!-- END DESCRIPTION -->\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/moh/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_MOH_CLASS\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.name.$touched || form.$submitted) && form.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(form.name.$touched || form.$submitted) && form.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/moh/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n     <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-music-tone"></i>\n                                       <a href="#">{{ \'APPLICATION_MOHS\' | translate }}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-music-tone font-green-sharp"></i>\n                                      <span class="caption-subject">{{ \'APPLICATION_MOHS\' | translate }}</a> </span>\n                              </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <div class="btn-group">\n                                               <a class="btn green-jungle" href="#" data-ng-click="createItem()">\n                                                    <i class="icon-plus"></i> {{ \'APPLICATION_NEW_MOH_CLASS\' | translate }}\n                                             </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n                              </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/moh/view/view.addFiles.html",'\n<div class="row" data-ng-init="getSounds()">\n   <div class="col-md-12">\n               <!-- BEGIN  PORTLET-->\n                <div class="portlet light bordered">\n                  <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-notebook font-green-sharp"></i>\n                                        <span class="caption-subject">{{ \'APPLICATION_MOH\' | translate }} {{ \'APPLICATION_ADD_FILES\' | translate }}</a> </span>\n                           </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="note note-warning" data-ng-hide="soundList.length">\n                                       <h4 class="block">Warning!</h4>\n                                       <p>\n                                            {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n                                    </p>\n                                  <p>\n                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/sounds/list">{{\'APPLICATION_SOUNDS\' | translate}}</a>\n                                 </p>\n                          </div>\n            <form name="forms.general" data-ng-submit="(item.sounds.length > 0) && addMohs()" data-ng-show="soundList.length" novalidate>\n\n              <!-- START SOUNDS -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0}">\n                <label class="control-label">{{\'APPLICATION_SOUNDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <ui-select multiple data-ng-model="item.sounds" theme="bootstrap" name="sounds" required>\n                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n                  <ui-select-choices repeat="sound.id as sound in soundList | filter: $select.search">\n                    {{sound.display_name}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="(forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END OPTIONS -->\n\n                                                       <input type="submit" class="btn green-haze" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n                                         </form>\n                       </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/moh/view/view.audios.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getAudioFiles()">\n    <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title  tabbable-line">\n                            <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AUDIOS\' | translate}}</span>\n                          </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="audioFiles">\n                                             <a class="btn green-jungle " href="/channels/voice/mohs/view/{{moh.id}}/add" data-toggle="dropdown">\n                                                  <i class="icon-plus"></i> {{ \'APPLICATION_ADD_FILES\' | translate }}\n                                         </a>\n                                  </div>\n                                </div>\n                        </div>\n                        <div class="portlet-body">\n                            <div class="note note-warning" data-ng-hide="audioFiles">\n                                     <h4 class="block">Warning!</h4>\n                                       <p>\n                                            {{ \'MESSAGE_FOLDER_DOES_NOT_EXIST\' | translate }}\n                                  </p>\n                          </div>\n                                <!-- START TABLE -->\n                          <table class="table table-striped table-bordered table-hover" data-ng-show="audioFiles">\n                                        <thead>\n                                               <tr>\n                                                    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n                                                           <th width="30%">{{ \'APPLICATION_PREVIEW\' | translate }}</th>\n                                                                <th width="10%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n                                                  </tr>\n                                         </thead>\n                                      <tbody data-ng-model="audioFiles">\n                                      <tr data-ng-repeat="audiofile in audioFiles">\n                                                             <td>{{audiofile}}</td>\n                                                                <td>\n                                                                  <audio controls ng-src="{{getSecureSrc(audioSources[audiofile])}}" preload="none">\n                                        Your browser does not support the audio tag.\n                                        </audio></td>\n                                             <td>\n                                            <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(audiofile,audiofile)">\n                                                                             {{ \'APPLICATION_DELETE\' | translate }}\n                                              </a>\n                                        </td>\n                                       </tr>\n                                                     <tr data-ng-hide="audioFiles.length">\n                                                         <td colspan="3" style="text-align:center;">\n                                                                   <i>{{ \'MESSAGE_NO_AUDIOFILES_AVAILABLE\' | translate }}</i>\n                                                          </td>\n                                                 </tr>\n                                   </tbody>\n                            </table>\n                              <!-- END TABLE -->\n                    </div>\n                </div>\n        </div>\n</div>\n</div>\n'),a.put("app/channels/voice/moh/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMoh()">\n       <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-music-tone"></i>\n                                       <a href="/channels/voice/mohs/list">{{ \'APPLICATION_MOH_CLASS\' | translate }}</a>\n                                   <i data-ng-show="moh" class="fa fa-angle-right"></i>\n                          </li>\n                         <li data-ng-show="moh">\n                                       <a href="#">{{moh.name}}</a>\n                          </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/moh.png" class="img-responsive">\n                                </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{moh.name}}\n                                  </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.mohs.view.settings\')}">\n                                                  <a data-ng-href="/channels/voice/mohs/view/{{moh.id}}/settings">\n                                                      <i class="icon-settings"></i>\n                                                 {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                                </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.voice.mohs.view.audios\') || $state.is(\'main.channels.voice.mohs.view.add\')}">\n                                                        <a data-ng-href="/channels/voice/mohs/view/{{moh.id}}/audios">\n                                                        <i class="icon-list"></i>\n                                                     {{ \'APPLICATION_AUDIOS\' | translate}} </a>\n                                          </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET main.channels -->\n            </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/moh/view/view.settings.html",'<div class="row">\n        <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_MOH_CLASS\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n                           </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts();">\n                              <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceMoh()" novalidate>\n\n                <!-- START PATH -->\n                   <div class="form-group" >\n               <label class="control-label">{{\'APPLICATION_PATH\' | translate}}</label>\n                     <input type="text" name="path" class="form-control" data-ng-model="moh.directory" disabled/>\n                </div>\n                <!-- END PATH -->\n\n                   <!-- START SORT -->\n                   <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$invalid}">\n                      <label class="control-label">{{\'APPLICATION_SORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                 <ui-select data-ng-model="moh.sort" theme="bootstrap" name="sort" required>\n                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                  <ui-select-choices repeat="sort.value as sort in sortOptions | filter: $select.search">\n                         {{$translate.instant(sort.name)}}\n                   </ui-select-choices>\n                </ui-select>\n                  <span data-ng-show="(forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$error.required" class="help-block help-block-error">\n                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n               </span>\n             </div>\n                <!-- END SORT -->\n\n                   <!-- START DESCRIPTION -->\n                                      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.description.$invalid}">\n                                        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                      <textarea type="text" name="description" class="form-control" data-ng-model="moh.description"/></textarea>\n                                                            <span data-ng-show="forms.general.$submitted && forms.general.description.$invalid" class="help-block help-block-error">\n                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                       </span>\n                                     </div>\n                                <!-- END DESCRIPTION -->\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                              </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/queue/list/list.create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.queue.name.$touched || form.queue.$submitted) && form.queue.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" data-ng-pattern="settings.patternName" required />\n      <span data-ng-show="(form.queue.name.$touched || form.queue.$submitted) && form.queue.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n      <span data-ng-show="(form.queue.name.$touched || form.queue.$submitted) && form.queue.name.$error.pattern" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_INVALID_PATTERN_NAME\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START STRATEGY -->\n    <div class="form-group" data-ng-class="{\'has-error\': (form.queue.strategy.$touched || form.queue.$submitted) && form.queue.strategy.$invalid}">\n      <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n        <ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n          <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n        </ui-select-choices>\n      </ui-select>\n      <span class="help-block">\n        {{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n      </span>\n      <span data-ng-show="(form.queue.strategy.$touched || form.queue.$submitted) && form.queue.strategy.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END STRATEGY -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/queue/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-earphones-alt"></i>\n                                    <a href="#">{{ \'APPLICATION_VOICE\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                              </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN Portlet PORTLET-->\n         <div class="portlet light bordered" data-ng-init="initView()">\n                        <div class="portlet-title">\n                           <div class="caption font-green-sharp">\n                                        <i class="icon-docs font-green-sharp"></i>\n                                    <span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n                            </div>\n                                <div class="actions">\n                                 <div class="btn-group" data-ng-show="id.length">\n                                              <a class="btn red" href="#" data-ng-click="deleteItems()">\n                                                    <i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n                                           </a>\n                                  </div>\n                                        <a class="btn green-jungle " href="#"  data-ng-click="createItem()">\n                                          <i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }}\n                                 </a>\n                          </div>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- START TABLE -->\n                          <div ui-grid="gridOptions"  ui-grid-resize-columns ui-grid-auto-resize ui-grid-pagination ui-grid-selection ui-grid-exporter ui-grid-draggable-rows class="ui-grid">\n                                  <div class="watermark" ng-show="!gridOptions.data.length">{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</div>\n                            </div>\n                                <!-- END TABLE -->\n                    </div>\n                </div>\n                <!-- END Portlet PORTLET-->\n   </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n                          </div>\n                        </div>\n                        <div class="note note-warning" data-ng-hide="teams.length">\n                           <h4 class="block">Warning!</h4><p>{{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}</p>\n                        </div>\n                        <div class="portlet-body">\n                            <!-- BEGIN FORM-->\n                            <form action="index.html" class="form-horizontal form-row-seperated">\n                                 <div class="form-body">\n                                               <label for="penalty">{{\'APPLICATION_PENALTY\' | translate}}</label>\n                                          <div class="input-group input-small mbottom20">\n                                                       <input type="number" class="spinner-input form-control" maxlength="3" data-ng-model="queue.penalty" readonly>\n                                                 <div class="spinner-buttons input-group-btn btn-group-vertical">\n                                                              <button type="button" class="btn spinner-up btn-xs blue" data-ng-click="queue.penalty=queue.penalty+1">\n                                                                       <i class="fa fa-angle-up"></i>\n                                                                </button>\n                                                             <button type="button" class="btn spinner-down btn-xs blue" data-ng-disabled="!queue.penalty" data-ng-click="queue.penalty=queue.penalty-1">\n                                                                   <i class="fa fa-angle-down"></i>\n                                                              </button>\n                                                     </div>\n                                                </div>\n                                                <div class="form-group last">\n                                                 <div class="col-md-12" id="multi-select-team">\n                                                        </div>\n                                                </div>\n                                        </div>\n                                </form>\n                               <!-- END FORM-->\n                      </div>\n                </div>\n        </div>\n</div>\n'),a.put("app/channels/voice/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n   <div class="col-md-12">\n               <div class="page-bar">\n                        <ul class="page-breadcrumb">\n                          <li>\n                                  <i class="icon-rocket"></i>\n                                   <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n                                   <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-puzzle"></i>\n                                   <a href="#">{{ \'APPLICATION_CHANNELS\' | translate }}</a>\n                                    <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-earphones-alt"></i>\n                                    <a href="#">{{ \'APPLICATION_VOICE\' | translate }}</a>\n                                       <i class="fa fa-angle-right"></i>\n                             </li>\n                         <li>\n                                  <i class="icon-docs"></i>\n                                     <a href="/channels/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n                                    <i data-ng-show="queue" class="fa fa-angle-right"></i>\n                                </li>\n                         <li data-ng-show="queue">\n                                     <a href="#">{{queue.name}}</a>\n                                </li>\n                 </ul>\n         </div>\n\n              <!-- BEGIN PROFILE SIDEBAR -->\n                <div class="profile-sidebar">\n                 <!-- PORTLET main.channels -->\n                        <div class="portlet light profile-sidebar-portlet">\n                           <!-- SIDEBAR USERPIC -->\n                              <div class="profile-image">\n                                   <img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n                              </div>\n                                <!-- END SIDEBAR USERPIC -->\n                          <!-- SIDEBAR USER TITLE -->\n                           <div class="profile-usertitle">\n                                       <div class="profile-usertitle-name">\n                                          {{queue.name}}\n                                        </div>\n                                </div>\n                                <!-- END SIDEBAR USER TITLE -->\n\n                             <!-- SIDEBAR MENU -->\n                         <div class="profile-usermenu">\n                                        <ul class="nav">\n                                              <li data-ng-class="{active: $state.is(\'main.channels.voice.queues.view.settings\')}">\n                                                        <a data-ng-href="/channels/voice/queues/view/{{queue.name}}/settings"> <i class="icon-settings"></i> {{ \'APPLICATION_SETTINGS\' | translate}} </a>\n                                           </li>\n                                         <li data-ng-class="{active: $state.is(\'main.channels.voice.queues.view.agents\')}">\n                                                  <a data-ng-href="/channels/voice/queues/view/{{queue.name}}/agents"><i class="icon-people"></i>{{ \'APPLICATION_AGENTS\' | translate}} </a>\n                                           </li>\n                                 </ul>\n                         </div>\n                                <!-- END MENU -->\n                     </div>\n                        <!-- END PORTLET main.channels -->\n            </div>\n                <!-- END BEGIN PROFILE SIDEBAR -->\n            <!-- BEGIN PROFILE CONTENT -->\n                <div ui-view class="profile-content">\n         </div>\n                <!-- END PROFILE CONTENT -->\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/queue/view/view.settings.html",'<div class="row">\n      <div class="col-md-12">\n               <div class="portlet light">\n                   <div class="portlet-title tabbable-line">\n                             <div class="caption caption-md">\n                                      <i class="icon-globe theme-font hide"></i>\n                                    <span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_QUEUE_SETTINGS\' | translate}}</span>\n                         </div>\n                                <ul class="nav nav-tabs">\n                                     <li class="active">\n                                           <a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n                                     </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}</a>\n                                   </li>\n                                 <li>\n                                          <a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n                                    </li>\n                         </ul>\n                 </div>\n\n                      <div class="portlet-body" data-ng-init="getContexts();getMohs();getSounds();">\n                                <div class="tab-content">\n                                     <!-- GENERAL TAB -->\n                                  <div class="tab-pane active" id="tab_1_1">\n                                            <form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceQueue()" novalidate>\n                                                    <div class="row">\n                                                             <div class="col-md-6">\n                                                        <!-- START STRATEGY -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n                                                                     <ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n                                                                           <div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                      <!-- END STRATEGY -->\n\n                                                 <!-- START MOH -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_MOH\' | translate}}</label>\n                                                              <ui-select data-ng-model="queue.musiconhold" name="musiconhold" theme="bootstrap">\n                                                                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="musiconhold.name as musiconhold in voiceMohs | filter: $select.search">\n                                                                            <div ng-bind-html="musiconhold.name | highlight: $select.search"></div>\n                                                                       </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_VOICE_MOH\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MOH -->\n\n                                                    <!-- START TIMEOUT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n                                                              <label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                              <input type="number" min="0" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="queue.timeout" required/>\n                                                               <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_TIMEOUT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$error.required" class="help-block help-block-error">\n                                                                       <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TIMEOUT -->\n\n                                                        <!-- START MAXLEN -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_MAXLEN\' | translate}}</label>\n                                                           <input type="number" min="0" name="maxlen" placeholder="{{\'APPLICATION_MAXLEN\' | translate}}" class="form-control" data-ng-model="queue.maxlen" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MAXLEN\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MAXLEN -->\n\n                                                 <!-- START RETRY -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_RETRY\' | translate}}</label>\n                                                            <input type="number" min="0" name="retry" placeholder="{{\'APPLICATION_RETRY\' | translate}}" class="form-control" data-ng-model="queue.retry" required/>\n                                                             <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_RETRY\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RETRY -->\n\n                                          </div>\n                                                <div class="col-md-6">\n                                                        <!-- START WRAPUPTIME -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_WRAPUPTIME\' | translate}}</label>\n                                                               <input type="number" min="0" name="wrapuptime" placeholder="{{\'APPLICATION_WRAPUPTIME\' | translate}}" class="form-control" data-ng-model="queue.wrapuptime" required/>\n                                                              <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_WRAPUPTIME\' | translate }}\n                                                            </span>\n                                                               <span data-ng-show="(forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END WRAPUPTIME -->\n\n                                                     <!-- START WEIGHT -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_WEIGHT\' | translate}}</label>\n                                                           <input type="number" min="0" name="weight" placeholder="{{\'APPLICATION_WEIGHT\' | translate}}" class="form-control" data-ng-model="queue.weight" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_WEIGHT\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END WEIGHT -->\n\n                                                 <!-- START JOINEMPTY -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$invalid}">\n                                                          <label class="control-label">{{\'APPLICATION_JOINEMPTY\' | translate}}</label>\n                                                                <ui-select multiple data-ng-model="queue.joinempty" name="joinempty" theme="bootstrap">\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n                                                                           <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_JOINEMPTY\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$error.required" class="help-block help-block-error">\n                                                                   <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END JOINEMPTY -->\n\n                                                      <!-- START LEAVEWHENEMPTY -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$invalid}">\n                                                                <label class="control-label">{{\'APPLICATION_LEAVEWHENEMPTY\' | translate}}</label>\n                                                           <ui-select multiple data-ng-model="queue.leavewhenempty" name="leavewhenempty" theme="bootstrap">\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n                                                                           <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_LEAVEWHENEMPTY\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$error.required" class="help-block help-block-error">\n                                                                 <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END LEAVEWHENEMPTY -->\n\n                                                 <!-- START ANNOUNCE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$invalid}">\n                                                            <label class="control-label">{{\'APPLICATION_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                             <ui-select data-ng-model="queue.announce" name="announce" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in sounds | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$error.required" class="help-block help-block-error">\n                                                                     <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE -->\n                                         </div>\n                                        </div>\n                                        <!-- START DESCRIPTION -->\n                                    <div class="form-group">\n                                              <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n                                              <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"></textarea>\n                                 </div>\n                                        <!-- END DESCRIPTION -->\n\n                                                    <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n\n                                      <div class="tab-pane" id="tab_1_2">\n                                           <form name="forms.announce" data-ng-submit="forms.announce.$valid && updateVoiceQueue()" novalidate>\n                                                  <div class="row">\n                                                             <div class="col-md-12">\n                                                       <!-- START PERIODIC_ANNOUNCE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                            <ui-select multiple data-ng-model="queue.periodic_announce" name="periodic_announce" theme="bootstrap" required data-ng-disabled="!periodicAnnounces.length">\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n                                                                 <ui-select-choices repeat="returnAnnouncePath(announce) as announce in periodicAnnounces | filter: $select.search">\n                                                                           <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <div class="note note-warning" data-ng-hide="periodicAnnounces.length">\n                                                                       <h4 class="block">Warning!</h4>\n                                                                       <p>\n                                                                           {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n                                                                     </p>\n                                                                  <p>\n                                                                           {{\'APPLICATION_GO_TO\' | translate}} <a href="/tools/sounds/list">{{\'APPLICATION_SOUNDS\' | translate}}</a>\n                                                                 </p>\n                                                          </div>\n                                                                <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PERIODIC_ANNOUNCE -->\n                                                </div>\n                                        </div>\n                                                        <div class="row">\n                                                             <div class="col-md-6">\n                                                        <p><h3>{{\'APPLICATION_SETTINGS\' | translate}}</h3></p>\n                                                      <!-- START ANNOUNCE_FREQUENCY -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}</label>\n                                                               <input type="number" min="0" name="announce_frequency" placeholder="{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.announce_frequency" required/>\n                                                              <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE_FREQUENCY\' | translate }}\n                                                            </span>\n                                                               <span data-ng-show="(forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE_FREQUENCY -->\n\n                                                     <!-- START MIN_ANNOUNCE_FREQUENCY -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}</label>\n                                                           <input type="number" min="0" name="min_announce_frequency" placeholder="{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.min_announce_frequency" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MIN_ANNOUNCE_FREQUENCY\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MIN_ANNOUNCE_FREQUENCY -->\n\n                                                 <!-- START PERIODIC_ANNOUNCE_FREQUENCY -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}</label>\n                                                              <input type="number" min="0" name="periodic_announce_frequency" placeholder="{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.periodic_announce_frequency"/>\n                                                            <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE_FREQUENCY\' | translate }}\n                                                           </span>\n                                                               <span data-ng-show="(forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END PERIODIC_ANNOUNCE_FREQUENCY -->\n\n                                                    <!-- START RANDOM_PERIODIC_ANNOUNCE -->\n                                                       <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_RANDOM_PERIODIC_ANNOUNCE\' | translate}}</label>\n                                                         <ui-select data-ng-model="queue.random_periodic_announce" name="random_periodic_announce" theme="bootstrap">\n                                                                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_RANDOM_PERIODIC_ANNOUNCE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RANDOM_PERIODIC_ANNOUNCE -->\n\n                                                       <!-- START ANNOUNCE_HOLDTIME -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_ANNOUNCE_HOLDTIME\' | translate}}</label>\n                                                                <ui-select data-ng-model="queue.announce_holdtime" name="announce_holdtime" theme="bootstrap">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'once\'] | filter: $select.search">\n                                                                               <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                                  </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE_HOLDTIME\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE_HOLDTIME -->\n\n                                                      <!-- START ANNOUNCE_POSITION -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION\' | translate}}</label>\n                                                                <ui-select data-ng-model="queue.announce_position" name="announce_position" theme="bootstrap">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'limit\',\'more\'] | filter: $select.search">\n                                                                             <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE_POSITION -->\n\n                                                      <!-- START ANNOUNCE_POSITION_LIMIT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}</label>\n                                                          <input type="number" min="0" name="announce_position_limit" placeholder="{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}" class="form-control" data-ng-model="queue.announce_position_limit"/>\n                                                                <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION_LIMIT\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ANNOUNCE_POSITION_LIMIT -->\n\n                                                        <!-- START REPORTHOLDTIME -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_REPORTHOLDTIME\' | translate}}</label>\n                                                           <ui-select data-ng-model="queue.reportholdtime" name="reportholdtime" theme="bootstrap">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_REPORTHOLDTIME\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END REPORTHOLDTIME -->\n\n                                         </div>\n                                                        <div class="col-md-6">\n                                                                <p><h3>{{\'APPLICATION_SOUNDS\' | translate}}</h3></p>\n                                                                <!-- START QUEUE_REPORTHOLD -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_QUEUE_REPORTHOLD\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <ui-select data-ng-model="queue.queue_reporthold" name="queue_reporthold" theme="bootstrap" required>\n                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                                      <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                          </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span class="help-block">\n                                                                             {{ \'DESCRIPTION_QUEUE_REPORTHOLD\' | translate }}\n                                                                    </span>\n                                                                       <span data-ng-show="(forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE_REPORTHOLD -->\n\n                                                               <!-- START QUEUE_YOUARENEXT -->\n                                                               <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$invalid}">\n                                                                 <label class="control-label">{{\'APPLICATION_QUEUE_YOUARENEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                     <ui-select data-ng-model="queue.queue_youarenext" name="queue_youarenext" theme="bootstrap" required>\n                                                                         <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                              <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                                      <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                          </ui-select-choices>\n                                                                  </ui-select>\n                                                                  <span class="help-block">\n                                                                             {{ \'DESCRIPTION_QUEUE_YOUARENEXT\' | translate }}\n                                                                    </span>\n                                                                       <span data-ng-show="(forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$error.required" class="help-block help-block-error">\n                                                                          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                                 </span>\n                                                               </div>\n                                                                <!-- END QUEUE_YOUARENEXT -->\n\n                                                       <!-- START QUEUE_THEREARE -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_QUEUE_THEREARE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <ui-select data-ng-model="queue.queue_thereare" name="queue_thereare" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_THEREARE\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_THEREARE -->\n\n                                                 <!-- START QUEUE_CALLSWAITING -->\n                                                     <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_QUEUE_CALLSWAITING\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                           <ui-select data-ng-model="queue.queue_callswaiting" name="queue_callswaiting" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_CALLSWAITING\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_CALLSWAITING -->\n\n                                                     <!-- START QUEUE_HOLDTIME -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_QUEUE_HOLDTIME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <ui-select data-ng-model="queue.queue_holdtime" name="queue_holdtime" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_HOLDTIME\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_HOLDTIME -->\n\n                                                 <!-- START QUEUE_MINUTES -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_QUEUE_MINUTES\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="queue.queue_minutes" name="queue_minutes" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MINUTES\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_MINUTES -->\n\n                                                  <!-- START QUEUE_MINUTE -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$invalid}">\n                                                         <label class="control-label">{{\'APPLICATION_QUEUE_MINUTE\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                         <ui-select data-ng-model="queue.queue_minute" name="queue_minute" theme="bootstrap" required>\n                                                                 <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MINUTE\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$error.required" class="help-block help-block-error">\n                                                                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_MINUTE -->\n\n                                                   <!-- START QUEUE_SECONDS -->\n                                                  <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_QUEUE_SECONDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                                <ui-select data-ng-model="queue.queue_seconds" name="queue_seconds" theme="bootstrap" required>\n                                                                       <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_SECONDS\' | translate }}\n                                                               </span>\n                                                               <span data-ng-show="(forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_SECONDS -->\n\n                                                  <!-- START QUEUE_THANKYOU -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_QUEUE_THANKYOU\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <ui-select data-ng-model="queue.queue_thankyou" name="QUEUE_THANKYOU" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n                                                                              <div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n                                                                  </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_THANKYOU\' | translate }}\n                                                              </span>\n                                                               <span data-ng-show="(forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END QUEUE_THANKYOU -->\n\n                                         </div>\n                                        </div>\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END GENERAL TAB -->\n                                      <!-- ADVANCED TAB -->\n                                 <div class="tab-pane" id="tab_1_3">\n                                           <form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateVoiceQueue()" novalidate>\n\n                                                        <div class="row">\n                                                             <div class="col-md-6">\n\n                                                      <!-- START AUTOPAUSE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_AUTOPAUSE\' | translate}}</label>\n                                                                <ui-select data-ng-model="queue.autopause" name="autopause" theme="bootstrap">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\',\'all\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_AUTOPAUSE\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END AUTOPAUSE -->\n\n                                                      <!-- START RINGINUSE -->\n                                                      <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$invalid}">\n                                                               <label class="control-label">{{\'APPLICATION_RINGINUSE\' | translate}}</label>\n                                                                <ui-select data-ng-model="queue.ringinuse" name="ringinuse" theme="bootstrap">\n                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_RINGINUSE\' | translate }}\n                                                             </span>\n                                                               <span data-ng-show="(forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$error.required" class="help-block help-block-error">\n                                                                        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END RINGINUSE -->\n\n                                                      <!-- START MEMBER_DELAY -->\n                                                   <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_MEMBER_DELAY\' | translate}}</label>\n                                                             <input type="number" min="0" name="memberdelay" placeholder="{{\'APPLICATION_MEMBER_DELAY\' | translate}}" class="form-control" data-ng-model="queue.memberdelay" required/>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MEMBER_DELAY\' | translate }}\n                                                          </span>\n                                                               <span data-ng-show="(forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MEMBER_DELAY -->\n\n                                                   <!-- START ACW -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.acw.$touched || forms.advanced.$submitted) && forms.advanced.acw.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_ACW\' | translate}}</label></br>\n                                                         <input\n                                                                bs-switch\n                                                             class="form-control"\n                                                          ng-model="queue.acw"\n                                                          type="checkbox"\n                                                               switch-active="{{ recordSwitch.isActive }}"\n                                                           switch-on-text="{{ recordSwitch.onText }}"\n                                                            switch-off-text="{{ recordSwitch.offText }}"\n                                                          switch-on-color="{{ recordSwitch.onColor }}"\n                                                          switch-off-color="{{ recordSwitch.offColor }}"\n                                                                switch-animate="{{ recordSwitch.animate }}"\n                                                           switch-size="{{ recordSwitch.size }}"\n                                                         switch-label="{{ recordSwitch.label }}"\n                                                               switch-icon="{{ recordSwitch.icon }}"\n                                                         switch-radio-off="{{ recordSwitch.radioOff }}"\n                                                                switch-label-width="{{ recordSwitch.labelWidth }}"\n                                                            switch-handle-width="{{ recordSwitch.handleWidth }}">\n                                                         <span class="help-block">\n                                                                     {{ \'DESCRIPTION_ACW\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.advanced.acw.$touched || forms.advanced.$submitted) && forms.advanced.acw.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_ACW\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                             </span>\n                                                       </div>\n                                                        <!-- END ACW -->\n\n                                            </div>\n                                                        <div class="col-md-6">\n\n                                                      <!-- START TIMEOUTRESTART -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_TIMEOUTRESTART\' | translate}}</label>\n                                                           <ui-select data-ng-model="queue.timeoutrestart" name="timeoutrestart" theme="bootstrap">\n                                                                      <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                                                                      <ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n                                                                                <div ng-bind-html="item | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_TIMEOUTRESTART\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END TIMEOUTRESTART -->\n\n                                                 <!-- START MONITOR_FORMAT -->\n                                                 <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_MONITOR_FORMAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n                                                               <ui-select data-ng-model="queue.monitor_format" name="monitor_format" theme="bootstrap" required>\n                                                                     <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                      <ui-select-choices repeat="monFormat.value as monFormat in monitorFormats | filter: $select.search">\n                                                                          <div ng-bind-html="monFormat.name | highlight: $select.search"></div>\n                                                                 </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_MONITOR_FORMAT\' | translate }}\n                                                                </span>\n                                                               <span data-ng-show="(forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END MONITOR_FORMAT -->\n\n                                                 <!-- START CONTEXT -->\n                                                        <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$invalid}">\n                                                           <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}</label>\n                                                          <ui-select data-ng-model="queue.context" name="context" theme="bootstrap">\n                                                                    <ui-select-match allow-clear placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                  <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                                                                                <div ng-bind-html="context.name | highlight: $select.search"></div>\n                                                                   </ui-select-choices>\n                                                          </ui-select>\n                                                          <span class="help-block">\n                                                                     {{ \'DESCRIPTION_QUEUE_VOICE_CONTEXT\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$error.required" class="help-block help-block-error">\n                                                                    <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END CONTEXT -->\n\n                                                        <!-- START ACW_TIMEOUT -->\n                                                    <div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.acwTimeout.$touched || forms.advanced.$submitted) && forms.advanced.acwTimeout.$invalid}">\n                                                             <label class="control-label">{{\'APPLICATION_ACW_TIMEOUT\' | translate}}</label>\n                                                              <input type="number" min="0" name="acwTimeout" placeholder="{{\'APPLICATION_ACW_TIMEOUT\' | translate}}" class="form-control" data-ng-model="queue.acwTimeout" required/>\n                                                             <span class="help-block">\n                                                                     {{ \'DESCRIPTION_ACW_TIMEOUT\' | translate }}\n                                                         </span>\n                                                               <span data-ng-show="(forms.advanced.acwTimeout.$touched || forms.advanced.$submitted) && forms.advanced.acwTimeout.$error.required" class="help-block help-block-error">\n                                                                      <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                                                         </span>\n                                                       </div>\n                                                        <!-- END ACW_TIMEOUT -->\n\n                                            </div>\n                                        </div>\n\n                                                      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n                                          </form>\n                                       </div>\n                                        <!-- END ADVANCED TAB -->\n\n                           </div>\n                        </div>\n                </div>\n        </div>\n</div>\n'),
 a.put("app/channels/voice/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n <div class="col-md-12">\n               <!-- START TABLE -->\n          <div ui-grid="gridOptions"  ui-grid-resize-columns  class="ui-grid" ui-grid-tree-view ui-grid-expandable-row ui-grid-pagination auto-resize>\n                  <div class="watermark" ng-show="!gridOptions.data.length">{{\'MESSAGE_NO_RESULTS_AVAILABLE\' | translate}}</div>\n              </div>\n                <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/realtime/view/agent/agent.modal.info.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_INTERFACE_INFO\' | translate }}</h3>\n</div>\n<div class="modal-body">\n<div data-ng-if="agent.ipaddr" class="well">\n  <div>{{agent.ipaddr}}:{{agent.port}}</div>\n  <div>{{agent.fullcontact}}</div>\n  <div>{{agent.useragent}}</div>\n  <div>{{agent.lastms}}</div>\n</div>\n<div data-ng-if="!agent.ipaddr" class="alert alert-danger" role="alert">\n  {{\'MESSAGE_NO_AVAILABLE_INFO\' | translate}}\n</div>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="close()">{{ \'APPLICATION_CLOSE\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/agent/queue.modal.add.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_JOIN_QUEUE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="form" novalidate>\n\n    <div class="form-group row">\n  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n  <div class="col-md-10">\n    <ui-select multiple ng-model="item.queues" theme="bootstrap" required>\n      <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$item.name}}</ui-select-match>\n      <ui-select-choices repeat="queue.name as queue in queues | filter: $select.search">\n        <div ng-bind-html="queue.name | highlight: $select.search"></div>\n      </ui-select-choices>\n    </ui-select>\n  </div>\n</div>\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="save()" ng-disabled="form.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/areport/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initReport()">\n        <div class="col-md-12">\n               <!-- START TABLE -->\n          <table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n                        <div class="table-responsive">\n                          <thead>\n                                     <tr>\n                                          <th colspan="11">\n                                                     <div class="row">\n                                                             <div class="col-md-6">\n                                                                        <ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n                                                                                     <div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n                                                                               </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="input-group input-medium pull-right">\n                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                         <span class="input-group-addon">\n                                                                                      <i class="fa fa-search"></i>\n                                                                          </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                </th>\n                                 </tr>\n                           <tr>\n                                                <th></th>\n                                             <th st-sort="uniqueid">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n                                    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n                              <th st-sort="membername">{{ \'APPLICATION_AGENT\' | translate }}</th>\n                                             <th st-sort="calleridname">{{ \'APPLICATION_CALLER\' | translate }}</th>\n                                              <th st-sort="agentcalledAt">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n                                          <th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n                                              <th st-sort="agentcompleteAt">{{ \'APPLICATION_COMPLETED_AT\' | translate }}</th>\n                                             <th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n                                            <th st-sort="holdtime">{{ \'APPLICATION_HOLDTIME\' | translate }}</th>\n                                    <th st-sort="talktime">{{ \'APPLICATION_TALKTIME\' | translate }}</th>\n                              </tr>\n                         </thead>\n                      <tbody>\n                         <tr data-ng-repeat="agent in displayedAgents">\n                                            <td><span data-ng-class="{\'icon-call-in font-yellow\': agent.lastevent === \'called\',\n                                                       \'icon-phone font-blue\': agent.lastevent === \'connect\',\n                                                    \'icon-call-end font-green\': agent.lastevent === \'complete\',\n                                                       \'icon-call-end font-red\': agent.lastevent === \'answered_elsewhere\'}"></span>\n                                              </td>\n                                         <td>{{agent.uniqueid}}</td>\n                                           <td>{{agent.queue}}</td>\n                                              <td>{{agent.destcalleridname ? agent.destcalleridname + \' [\' + agent.membername + \']\' : agent.membername }}</td>\n                                          <td>{{agent.calleridname ? agent.calleridname + \' [\' + agent.calleridnum + \']\' : agent.calleridnum }}</td>\n                                                <td>\n                                                  <time is="relative-time" datetime="{{agent.agentcalledAt}}">\n                                                          April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{agent.agentconnectAt}}" data-ng-show="agent.agentconnectAt">\n                                                             April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{agent.agentcompleteAt}}" data-ng-show="agent.agentcompleteAt">\n                                                           April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  {{agent.reason | uppercase}}\n                                          </td>\n                                         <td>{{agent.holdtime || 0 | VoiceRealtimeViewAgentReportFilter | date:\'HH:mm:ss\'}}</td>\n                           <td>{{agent.talktime || 0 | VoiceRealtimeViewAgentReportFilter | date:\'HH:mm:ss\'}}</td>\n                           </tr>\n                                     <tr data-ng-hide="displayedAgents.length">\n                                            <td colspan="11" style="text-align:center;">\n                                                  <i>No agents available</i>\n                                            </td>\n                                 </tr>\n                   </tbody>\n                      <tfoot>\n                                     <tr>\n                                          <td/>\n                                         <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                       </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                      </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                 </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="calleridnum" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CALLER\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                       </div>\n                                    </td>\n                                             <td colspan="7"></td>\n                           </tr>\n                           <tr>\n                            <td colspan="11" class="text-center">\n                                                   <div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n                              </td>\n                       </tr>\n                       </tfoot>\n                    </div>\n                </table>\n              <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/realtime/view/qreport/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initReport()">\n  <div class="col-md-12">\n               <!-- START TABLE -->\n          <table st-table="displayedQueues" st-safe-src="queues" class="table table-striped table-bordered table-hover">\n                        <div class="table-responsive">\n                          <thead>\n                                     <tr>\n                                          <th colspan="10">\n                                                     <div class="row">\n                                                             <div class="col-md-6">\n                                                                        <ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                             <ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n                                                                                     <div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n                                                                               </ui-select-choices>\n                                                                  </ui-select>\n                                                          </div>\n                                                                <div class="col-md-6">\n                                                                        <div class="input-group input-medium pull-right">\n                                                                             <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n                                                                          <span class="input-group-addon">\n                                                                                      <i class="fa fa-search"></i>\n                                                                          </span>\n                                                                       </div>\n                                                                </div>\n                                                        </div>\n                                                </th>\n                                 </tr>\n                           <tr>\n                                                <th></th>\n                                             <th st-sort="uniqueid">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n                                    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n                              <th st-sort="membername">{{ \'APPLICATION_AGENT\' | translate }}</th>\n                                             <th st-sort="calleridname">{{ \'APPLICATION_CALLER\' | translate }}</th>\n                                              <th st-sort="queuecallerjoinAt">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n                                              <th st-sort="queuecallerleaveAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n                                          <th st-sort="queuecallerabandonAt">{{ \'APPLICATION_ABANDONED_AT\' | translate }}</th>\n                                  </tr>\n                         </thead>\n                      <tbody>\n                         <tr data-ng-repeat="queue in displayedQueues">\n                                            <td><span data-ng-class="{\'icon-call-in font-yellow\': queue.queuecallerjoinAt && !queue.queuecallerleaveAt,\n                                                 \'icon-phone font-blue\': queue.queuecallerjoinAt && queue.queuecallerleaveAt,\n                                                        \'icon-call-end font-red\': queue.queuecallerjoinAt && queue.queuecallerleaveAt && queue.queuecallerabandonAt}"></span>\n                                               </td>\n                                         <td>{{queue.uniqueid}}</td>\n                                           <td>{{queue.queue}}</td>\n                                              <td>{{queue.connectedlinename ? queue.connectedlinename + \' [\' + queue.connectedlinenum + \']\' : queue.connectedlinenum }}</td>\n                                            <td>{{queue.calleridname ? queue.calleridname + \' [\' + queue.calleridnum + \']\' : queue.calleridnum }}</td>\n                                                <td>\n                                                  <time is="relative-time" datetime="{{queue.queuecallerjoinAt}}">\n                                                              April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{queue.queuecallerleaveAt}}" data-ng-show="queue.queuecallerleaveAt">\n                                                             April 1, 2014\n                                                 </time>\n                                               </td>\n                                         <td>\n                                                  <time is="relative-time" datetime="{{queue.queuecallerabandonAt}}" data-ng-show="queue.queuecallerabandonAt">\n                                                         April 1, 2014\n                                                 </time>\n                                               </td>\n                     </tr>\n                                     <tr data-ng-hide="displayedQueues.length">\n                                            <td colspan="10" style="text-align:center;">\n                                                  <i>No queues available</i>\n                                            </td>\n                                 </tr>\n                   </tbody>\n                      <tfoot>\n                                     <tr>\n                                          <td/>\n                             <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                        </div>\n                                    </td>\n                                             <td>\n                                                  <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                      </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="connectedlinename" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                  </div>\n                                    </td>\n                                 <td>\n                                                      <div class="input-icon right">\n                                                                <i class="fa fa-search"></i>\n                                                          <input st-search="calleridnum" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CALLER\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                       </div>\n                                    </td>\n                                             <td colspan="6"></td>\n                           </tr>\n                           <tr>\n                            <td colspan="10" class="text-center">\n                                                   <div class="pagination" st-pagination st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n                              </td>\n                       </tr>\n                       </tfoot>\n                    </div>\n                </table>\n              <!-- END TABLE -->\n    </div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/realtime/view/queue/pause.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_PAUSE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n                <!-- Default panel contents -->\n               <div class="panel-heading">\n                   <h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n           </div>\n                <!-- List group -->\n           <ul class="list-group">\n      <li class="list-group-item">\n                            {{ \'APPLICATION_QUEUE\' | translate }}: <b class="pull-right">{{ selected.queue }}</b>\n                      </li>\n      <li class="list-group-item" data-ng-hide="data.length">\n                           {{ \'APPLICATION_AGENT\' | translate }}: <b class="pull-right">{{ selected.membername }}</b>\n                 </li>\n      <li class="list-group-item">\n        <div class="btn-group">\n          <ui-select ng-model="selected.item" theme="bootstrap" ng-disabled="disabled" class="btn input-xlarge pull-left">\n            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="item in items | filter: $select.search">\n              <div ng-bind-html="item | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <button class="btn btn-success pull-right" type="button" ng-click="ok(true)" style="margin-top: 7px;">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n        </div>\n                    </li>\n         </ul>\n </div>\n  <button data-ng-show="(data | isArray) ? (data | where: {paused: true}).length : data.paused " class="btn btn-danger btn-block" type="button" ng-click="ok(false, data.queue)">Exit</button>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/queue/queue.add.modal.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n              <!-- Default panel contents -->\n               <div class="panel-heading">\n                   <h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n           </div>\n                <!-- List group -->\n           <ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n                                     <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n                                     </div>\n                                </div>\n      </li>\n      <li class="list-group-item" data-ng-show="queues.length">\n        <div class="form-group row">\n                                    <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <ui-select ng-model="selected.queue" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="queue.name as queue in queues | filter: $select.search">\n                <div ng-bind-html="queue.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n                                       </div>\n                                </div>\n                        </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                       <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n                                       <div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n                                      </div>\n                                </div>\n                        </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                       <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" ui-btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n                                       </div>\n                                </div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n                                  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n                                        <div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n                                     </div>\n                                </div>\n                        </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                       <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" ui-btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n                                 </div>\n                                </div>\n      </li>\n           </ul>\n </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/channels/voice/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n <div class="col-md-12">\n        <div ng-show="selected">Selection from a modal: {{ selected }}</div>\n         <!-- BEGIN TABLE -->\n                  <table st-table="displayedGroups" st-safe-src="groups" class="table table-striped table-bordered table-hover">\n                                <div class="table-responsive">\n                                  <thead>\n                                             <tr>\n                                                  <th colspan="10">\n                                                             <div class="row">\n                                                                     <div class="col-md-6">\n                                                                                <ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n                                                                                        <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                                                                                     <ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n                                                                                             <div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n                                                                                       </ui-select-choices>\n                                                                          </ui-select>\n                                                                  </div>\n                                                                        <div class="col-md-6">\n                                                                                <!-- <div class="input-group input-medium pull-right">\n                                                                                        <input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n                                                                                 <span class="input-group-addon">\n                                                                                              <i class="fa fa-search"></i>\n                                                                                  </span>\n                                                                               </div> -->\n                                                                    </div>\n                                                                </div>\n                                                        </th>\n                                         </tr>\n                                         <tr>\n                                                  <th st-sort="memebername" colspan="3">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n                                        <th st-sort="agent">{{ \'APPLICATION_AGENT\' | translate }}</th>\n                                                  <th>{{ \'APPLICATION_LAST_LOGIN\' | translate }}</th>\n                                                 <th>{{ \'APPLICATION_LAST_PAUSE\' | translate }}</th>\n                                                 <th>{{ \'APPLICATION_LAST_INCOMING_CALL\' | translate }}</th>\n                                                 <th>{{ \'APPLICATION_SERVED\' | translate }}</th>\n                                                     <th colspan="2"></th>\n                                   </tr>\n                                 </thead>\n                                    <tbody>\n                                   <tr data-ng-repeat-start="group in displayedGroups">\n                                                      <td rowspan="{{group.agents.length}}" align="center" style="vertical-align:middle">{{group.queue}}</td>\n                                                       <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                <span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n                                                        </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                <span class="icon-cup" data-ng-class="agent.paused ? \'font-red\' : \'font-green\'"></span>\n                                                   </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                {{agent.membername}}\n                                                  </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                <time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n                                                                   April 1, 2014\n                                                         </time>\n                                                                <span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n                                                    </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                <time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n                                                                 April 1, 2014\n                                                         </time>\n                                                               <span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n                                                 </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                <time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n                                                                 April 1, 2014\n                                                         </time>\n                                                       </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                {{agent.callstaken}}\n                                                  </td>\n                                                 <td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n                                                                <span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n                                                              <span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n                                                     </td>\n                                                 <td rowspan="{{group.agents.length}}" align="center" style="vertical-align:middle">\n                                                           <span data-ng-show="group.agents.length > 1" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, group.agents)"> </span>\n                                                            <span class="icon-plus font-green" style="cursor:pointer;" data-ng-click="add(null, group.agents)"> </span>\n                                                           <span data-ng-show="group.agents.length > 1" class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, group.agents)"></span>\n                                                        </td>\n                             </tr>\n                                             <tr data-ng-repeat="agent in group.agents" data-ng-if="$middle">\n                                                      <td align="center">\n                                                           <span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n                                                        </td>\n                                                 <td align="center">\n                                                           <span class="icon-cup" data-ng-class="agent.paused ? \'font-red\' : \'font-green\'"></span>\n                                                   </td>\n                                                 <td align="center">\n                                                           {{agent.membername}}\n                                                  </td>\n                                                 <td align="center">\n                                                           <time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n                                                                   April 1, 2014\n                                                         </time>\n                                                               <span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n                                                     </td>\n                                                 <td align="center">\n                                                           <time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n                                                                 April 1, 2014\n                                                         </time>\n                                                               <span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n                                                 </td>\n                                                 <td align="center">\n                                                           <time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n                                                                 April 1, 2014\n                                                         </time>\n                                                       </td>\n                                                 <td align="center">\n                                                           {{agent.callstaken}}\n                                                  </td>\n                                                 <td align="center">\n                                                           <span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n                                                              <span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n                                                     </td>\n                                         </tr>\n                                         <tr data-ng-repeat="agent in group.agents" data-ng-if="group.agents.length > 1 && $last" data-ng-repeat-end>\n                                                  <td align="center">\n                                                           <span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n                                                        </td>\n                                                 <td align="center">\n                                                           <span class="icon-cup" data-ng-class="agent.paused ? \'font-red\': \'font-green\'"></span>\n                                                    </td>\n                                                 <td align="center">\n                                                           {{agent.membername}}\n                                                  </td>\n                                                 <td align="center">\n                                                           <time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n                                                                   April 1, 2014\n                                                         </time>\n                                                               <span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n                                                     </td>\n                                                 <td align="center">\n                                                           <time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n                                                                 April 1, 2014\n                                                         </time>\n                                                               <span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n                                                 </td>\n                                                 <td align="center">\n                                                           <time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n                                                                 April 1, 2014\n                                                         </time>\n                                                       </td>\n                                                 <td align="center">\n                                                           {{agent.callstaken}}\n                                                  </td>\n                                                 <td align="center">\n                                                           <span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n                                                              <span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n                                                     </td>\n                                         </tr>\n                                         <tr data-ng-hide="displayedGroups.length">\n                                                    <td colspan="9" style="text-align:center;">\n                                                           <i>No agents available</i>\n                                                    </td>\n                                         </tr>\n                           </tbody>\n                              <tfoot>\n                                             <tr>\n                                                  <td colspan="1">\n                                                              <div class="input-icon right">\n                                                                        <i class="fa fa-search"></i>\n                                                                  <input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n                                                              </div>\n                                                        <td colspan="9"></td>\n                                   </tr>\n                                   <tr>\n                                    <td colspan="10" class="text-center">\n                                                           <div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n                                      </td>\n                               </tr>\n                               </tfoot>\n                            </div>\n                        </table>\n              <!-- END TABLE -->\n    </div>\n\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/channels/voice/realtime/view/queue/queue.modal.add.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info" data-ng-show="selected.queue">\n           <!-- Default panel contents -->\n               <div class="panel-heading">\n                   <h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n           </div>\n                <!-- List group -->\n           <ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n                                     <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n                                  </div>\n                                </div>\n      </li>\n      <li class="list-group-item" data-ng-show="agents.length">\n        <div class="form-group row">\n                                    <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <ui-select ng-model="selected.agent" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_AGENT\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="{name: agent.name, id: agent.id} as agent in agents | filter: $select.search">\n                <div ng-bind-html="agent.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n                                 </div>\n                                </div>\n                        </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                       <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n                                       <div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n                                      </div>\n                                </div>\n                        </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                       <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n                                  </div>\n                                </div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n                                  <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n                                        <div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n                                     </div>\n                                </div>\n                        </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n                                       <label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n                                 <div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n                                    </div>\n                                </div>\n      </li>\n           </ul>\n    <!-- End List group -->\n  </div>\n  <div class="note note-warning" data-ng-hide="selected.queue">\n    <h4 class="block">Warning!</h4>\n    <p>\n       {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n    </p>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()" data-ng-show="selected.queue">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),
index 68614e3..c29cce8 100644 (file)
-/***\r
-Pricing table\r
-***/\r
-.pricing {\r
-  position: relative;\r
-  margin-bottom: 15px;\r
-  border: 3px solid #eee;\r
-}\r
-\r
-.pricing-active {\r
-  border: 3px solid #4DB3A2;\r
-  margin-top: -10px;\r
-  box-shadow: 7px 7px rgba(54, 215, 172, 0.2);\r
-}\r
-\r
-.pricing:hover {\r
-  border: 3px solid #4DB3A2;\r
-}\r
-\r
-.pricing:hover h4 {\r
-  /*color: #4DB3A2;*/\r
-}\r
-\r
-.pricing-head {\r
-  text-align: center;\r
-}\r
-\r
-.pricing-head h3,\r
-.pricing-head h4 {\r
-  margin: 0;\r
-  line-height: normal;\r
-}\r
-\r
-.pricing-head h3 span,\r
-.pricing-head h4 span {\r
-  display: block;\r
-  margin-top: 5px;\r
-  font-size: 14px;\r
-  font-style: italic;\r
-}\r
-\r
-.pricing-head h3 {\r
-  font-weight: 300;\r
-  color: #fafafa;\r
-  padding: 12px 0;\r
-  font-size: 27px;\r
-  /*background: #4DB3A2;*/\r
-  background: #4DB3A2;\r
-  border-bottom: solid 1px #41b91c;\r
-}\r
-\r
-.pricing-head h4 {\r
-  color: #bac39f;\r
-  padding: 5px 0;\r
-  font-size: 54px;\r
-  font-weight: 300;\r
-  background: #fbfef2;\r
-  border-bottom: solid 1px #f5f9e7;\r
-}\r
-\r
-.pricing-head-active h4 {\r
-  color: #4DB3A2;\r
-}\r
-\r
-.pricing-head h4 i {\r
-  top: -8px;\r
-  font-size: 28px;\r
-  font-style: normal;\r
-  position: relative;\r
-}\r
-\r
-.pricing-head h4 span {\r
-  top: -10px;\r
-  font-size: 14px;\r
-  font-style: normal;\r
-  position: relative;\r
-}\r
-\r
-/*Pricing Content*/\r
-.pricing-content li {\r
-  color: #888;\r
-  font-size: 12px;\r
-  padding: 7px 15px;\r
-  border-bottom: solid 1px #f5f9e7;\r
-}\r
-\r
-.pricing-content li i {\r
-  top: 2px;\r
-  /*color: #4DB3A2;*/\r
-  color: #4DB3A2;\r
-  font-size: 16px;\r
-  margin-right: 5px;\r
-  position: relative;\r
-}\r
-\r
-/*Pricing Footer*/\r
-.pricing-footer {\r
-  color: #777;\r
-  font-size: 11px;\r
-  line-height: 17px;\r
-  text-align: center;\r
-  padding: 0 20px 19px;\r
-}\r
-\r
-/*Priceing Active*/\r
-.price-active,\r
-.pricing:hover {\r
-  z-index: 9;\r
-}\r
-\r
-.price-active h4 {\r
-  color: #4DB3A2;\r
-}\r
-\r
-.no-space-pricing .pricing:hover {\r
-  transition: box-shadow 0.2s ease-in-out;\r
-}\r
-\r
-.no-space-pricing .price-active .pricing-head h4,\r
-.no-space-pricing .pricing:hover .pricing-head h4 {\r
-  color: #4DB3A2;\r
-  padding: 15px 0;\r
-  font-size: 80px;\r
-  transition: color 0.5s ease-in-out;\r
-}\r
+/***
+Pricing table
+***/
+.pricing {
+  position: relative;
+  margin-bottom: 15px;
+  border: 3px solid #eee;
+}
+
+.pricing-active {
+  border: 3px solid #4DB3A2;
+  margin-top: -10px;
+  box-shadow: 7px 7px rgba(54, 215, 172, 0.2);
+}
+
+.pricing:hover {
+  border: 3px solid #4DB3A2;
+}
+
+.pricing:hover h4 {
+  /*color: #4DB3A2;*/
+}
+
+.pricing-head {
+  text-align: center;
+}
+
+.pricing-head h3,
+.pricing-head h4 {
+  margin: 0;
+  line-height: normal;
+}
+
+.pricing-head h3 span,
+.pricing-head h4 span {
+  display: block;
+  margin-top: 5px;
+  font-size: 14px;
+  font-style: italic;
+}
+
+.pricing-head h3 {
+  font-weight: 300;
+  color: #fafafa;
+  padding: 12px 0;
+  font-size: 27px;
+  /*background: #4DB3A2;*/
+  background: #4DB3A2;
+  border-bottom: solid 1px #41b91c;
+}
+
+.pricing-head h4 {
+  color: #bac39f;
+  padding: 5px 0;
+  font-size: 54px;
+  font-weight: 300;
+  background: #fbfef2;
+  border-bottom: solid 1px #f5f9e7;
+}
+
+.pricing-head-active h4 {
+  color: #4DB3A2;
+}
+
+.pricing-head h4 i {
+  top: -8px;
+  font-size: 28px;
+  font-style: normal;
+  position: relative;
+}
+
+.pricing-head h4 span {
+  top: -10px;
+  font-size: 14px;
+  font-style: normal;
+  position: relative;
+}
+
+/*Pricing Content*/
+.pricing-content li {
+  color: #888;
+  font-size: 12px;
+  padding: 7px 15px;
+  border-bottom: solid 1px #f5f9e7;
+}
+
+.pricing-content li i {
+  top: 2px;
+  /*color: #4DB3A2;*/
+  color: #4DB3A2;
+  font-size: 16px;
+  margin-right: 5px;
+  position: relative;
+}
+
+/*Pricing Footer*/
+.pricing-footer {
+  color: #777;
+  font-size: 11px;
+  line-height: 17px;
+  text-align: center;
+  padding: 0 20px 19px;
+}
+
+/*Priceing Active*/
+.price-active,
+.pricing:hover {
+  z-index: 9;
+}
+
+.price-active h4 {
+  color: #4DB3A2;
+}
+
+.no-space-pricing .pricing:hover {
+  transition: box-shadow 0.2s ease-in-out;
+}
+
+.no-space-pricing .price-active .pricing-head h4,
+.no-space-pricing .pricing:hover .pricing-head h4 {
+  color: #4DB3A2;
+  padding: 15px 0;
+  font-size: 80px;
+  transition: color 0.5s ease-in-out;
+}
index 7735cf1..7b92ad5 100644 (file)
   "MESSAGE_ENTER_ONE_VALID_METRIC_AND_CHECK_OTHER": "Enter at least one valid metric and check all metrics",
   "APPLICATION_SELECTED_PAUSE": "Selected Pause",
   "APPLICATION_QUEUE_REMOVAL": "Queue Removal",
-  "APPLICATION_READY": "Pronto",
+  "APPLICATION_READY": "Ready",
   "APPLICATION_AVAILABLE": "Available",
   "APPLICATION_UNAVAILABLE": "Unavailable",
   "APPLICATION_PAUSE": "Pause",
   "APPLICATION_RATING_STATE": "Rating State",
   "APPLICATION_PHONE_STATUS": "Phone Status",
   "MESSAGE_CONNECTION_VERIFIED": "Connection Verified",
-  "MESSAGE_CONNECTION_INVALID": "Connection Invalid"
+  "MESSAGE_CONNECTION_INVALID": "Connection Invalid",
+  "APPLICATION_QUEUE_STATUS": "Queue Status",
+  "APPLICATION_PAUSED": "Paused",
+  "APPLICATION_CALLED": "Ringing",
+  "APPLICATION_CONNECT": "Talking",
+  "APPLICATION_COMPLETE": "Ready"
 }
index f703c3a..e578f09 100644 (file)
   "APPLICATION_SELECTOR": "Selettore",
   "MESSAGE_NO_FILE_OR_DIRECTORY": "Nessun file o directory esistente",
   "APPLICATION_CLONE_DASHBOARD": "Clona Dashboard",
-  "APPLICATION_PHONE_STATUS": "Stato Telefono"
+  "APPLICATION_PHONE_STATUS": "Stato Telefono",
+  "APPLICATION_QUEUE_STATUS": "Stato Coda",
+  "APPLICATION_PAUSED": "In Pausa",
+  "APPLICATION_CALLED": "Squilla",
+  "APPLICATION_CONNECT": "In chiamata",
+  "APPLICATION_COMPLETE": "Pronto"
 }
index aeaa420..f4acd08 100644 (file)
@@ -1,634 +1 @@
-'use strict';
-/**
- * $Id: Actions.js,v 1.7 2013-02-14 07:48:01 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Constructs the actions object for the given UI.
- */
-function Actions(editorUi) {
-       this.editorUi = editorUi;
-       this.actions = new Object();
-       this.init();
-};
-
-/**
- * Adds the default actions.
- */
-Actions.prototype.init = function() {
-       var ui = this.editorUi;
-       var editor = ui.editor;
-       var graph = editor.graph;
-
-       // File actions
-       this.addAction('new', function() {
-               ui.showDialog(new NewDialog(ui).container, 300, 180, true, true);
-       });
-       this.addAction('open', function() {
-               ui.showDialog(new OpenDialog(ui).container, 300, 180, true, true);
-       });
-       this.addAction('save', function() {
-               ui.saveFile(false);
-       }, null, null, 'Ctrl+S');
-       this.addAction('saveAs', function() {
-               ui.saveFile(true);
-       }, null, null, 'Ctrl+Shift-S');
-       this.addAction('publish', function() {
-               ui.publishFile(false);
-       }, null, null, 'Ctrl+Shift+P');
-       this.addAction('variable', function() {
-               ui.showDialog(new VariableDialog(ui).container, 300, 180, true, true);
-       });
-       this.addAction('import', function() {
-               ui.showDialog(new ImportDialog(ui).container, 300, 200, true, true);
-       });
-       this.addAction('export', function() {
-               ui.showDialog(new ExportDialog(ui).container, 300, 200, true, true);
-       }, null, null, 'Ctrl+E');
-       this.put('editFile', new Action(mxResources.get('edit'), mxUtils.bind(this,
-               function() {
-                       this.editorUi.showDialog(new EditFileDialog(ui).container, 620, 420,
-                               true, true);
-               })));
-       this.addAction('rename', function() {
-               ui.showDialog(new RenameDialog(ui).container, 300, 180, true, true);
-       });
-       this.addAction('print', function() {
-               mxUtils.printScreen(graph);
-       }, null, 'sprite-print', 'Ctrl+P');
-       this.addAction('preview', function() {
-               mxUtils.show(graph, null, 10, 10);
-       });
-
-       // Edit actions
-       this.addAction('undo', function() {
-               editor.undoManager.undo();
-       }, null, 'sprite-undo', 'Ctrl+Z');
-       this.addAction('redo', function() {
-               editor.undoManager.redo();
-       }, null, 'sprite-redo', 'Ctrl+Y');
-       this.addAction('cut', function() {
-               mxClipboard.cut(graph);
-       }, null, 'sprite-cut', 'Ctrl+X');
-       this.addAction('copy', function() {
-               mxClipboard.copy(graph);
-       }, null, 'sprite-copy', 'Ctrl+C');
-       this.addAction('paste', function() {
-               mxClipboard.paste(graph);
-       }, false, 'sprite-paste', 'Ctrl+V');
-       this.addAction('delete', function() {
-               graph.removeCells();
-       }, null, null, 'Delete');
-       this.addAction('duplicate', function() {
-               var s = graph.gridSize;
-               graph.setSelectionCells(graph.moveCells(graph.getSelectionCells(), s, s,
-                       true));
-       }, null, null, 'Ctrl+D');
-       this.addAction('selectVertices', function() {
-               graph.selectVertices();
-       }, null, null, 'Ctrl+Shift+V');
-       this.addAction('selectEdges', function() {
-               graph.selectEdges();
-       }, null, null, 'Ctrl+Shift+E');
-       this.addAction('selectAll', function() {
-               graph.selectAll();
-       }, null, null, 'Ctrl+A');
-
-       // Navigation actions
-       this.addAction('home', function() {
-               graph.home();
-       }, null, null, 'Home');
-       this.addAction('exitGroup', function() {
-               graph.exitGroup();
-       }, null, null, 'Page Up');
-       this.addAction('enterGroup', function() {
-               graph.enterGroup();
-       }, null, null, 'Page Down');
-       this.addAction('expand', function() {
-               graph.foldCells(false);
-       }, null, null, 'Enter');
-       this.addAction('collapse', function() {
-               graph.foldCells(true);
-       }, null, null, 'Backspace');
-
-       // Arrange actions
-       this.addAction('toFront', function() {
-               graph.orderCells(false);
-       }, null, null, 'Ctrl+F');
-       this.addAction('toBack', function() {
-               graph.orderCells(true);
-       }, null, null, 'Ctrl+B');
-       this.addAction('group', function() {
-               graph.setSelectionCell(graph.groupCells(null, 0));
-       }, null, null, 'Ctrl+G');
-       this.addAction('ungroup', function() {
-               graph.setSelectionCells(graph.ungroupCells());
-       }, null, null, 'Ctrl+U');
-       this.addAction('removeFromGroup', function() {
-               graph.removeCellsFromParent();
-       });
-       this.addAction('editLink', function() {
-               var cell = graph.getSelectionCell();
-               var link = graph.getLinkForCell(cell);
-
-               if (link == null) {
-                       link = '';
-               }
-
-               link = mxUtils.prompt(mxResources.get('enterValue'), link);
-
-               if (link != null) {
-                       graph.setLinkForCell(cell, link);
-               }
-       });
-       this.addAction('openLink', function() {
-               var cell = graph.getSelectionCell();
-               var link = graph.getLinkForCell(cell);
-
-               if (link != null) {
-                       window.open(link);
-               }
-       });
-       this.addAction('autosize', function() {
-               var cells = graph.getSelectionCells();
-
-               if (cells != null) {
-                       graph.getModel().beginUpdate();
-                       try {
-                               for (var i = 0; i < cells.length; i++) {
-                                       var cell = cells[i];
-
-                                       if (graph.getModel().getChildCount(cell)) {
-                                               graph.updateGroupBounds([cell], 20);
-                                       } else {
-                                               graph.updateCellSize(cell);
-                                       }
-                               }
-                       } finally {
-                               graph.getModel().endUpdate();
-                       }
-               }
-       });
-       this.addAction('wordWrap', function() {
-               var state = graph.getView().getState(graph.getSelectionCell());
-               var value = 'wrap';
-
-               if (state != null && state.style[mxConstants.STYLE_WHITE_SPACE] == 'wrap') {
-                       value = null;
-               }
-
-               graph.setCellStyles(mxConstants.STYLE_WHITE_SPACE, value);
-       });
-       this.addAction('rotation', function() {
-               var value = '0';
-               var state = graph.getView().getState(graph.getSelectionCell());
-
-               if (state != null) {
-                       value = state.style[mxConstants.STYLE_ROTATION] || value;
-               }
-
-               value = mxUtils.prompt(mxResources.get('enterValue') + ' (' +
-                       mxResources.get('rotation') + ' 0-360)', value);
-
-               if (value != null) {
-                       graph.setCellStyles(mxConstants.STYLE_ROTATION, value);
-               }
-       });
-       this.addAction('tilt', function() {
-               var cells = graph.getSelectionCells();
-
-               if (cells != null) {
-                       graph.getModel().beginUpdate();
-                       try {
-                               for (var i = 0; i < cells.length; i++) {
-                                       var cell = cells[i];
-
-                                       if (graph.getModel().isVertex(cell) && graph.getModel().getChildCount(
-                                                       cell) == 0) {
-                                               var geo = graph.getCellGeometry(cell);
-
-                                               if (geo != null) {
-                                                       // Rotates the size and position in the geometry
-                                                       geo = geo.clone();
-                                                       geo.x += geo.width / 2 - geo.height / 2;
-                                                       geo.y += geo.height / 2 - geo.width / 2;
-                                                       var tmp = geo.width;
-                                                       geo.width = geo.height;
-                                                       geo.height = tmp;
-                                                       graph.getModel().setGeometry(cell, geo);
-
-                                                       // Reads the current direction and advances by 90 degrees
-                                                       var state = graph.view.getState(cell);
-
-                                                       if (state != null) {
-                                                               var dir = state.style[mxConstants.STYLE_DIRECTION] || 'east' /*default*/ ;
-
-                                                               if (dir == 'east') {
-                                                                       dir = 'south';
-                                                               } else if (dir == 'south') {
-                                                                       dir = 'west';
-                                                               } else if (dir == 'west') {
-                                                                       dir = 'north';
-                                                               } else if (dir == 'north') {
-                                                                       dir = 'east';
-                                                               }
-
-                                                               graph.setCellStyles(mxConstants.STYLE_DIRECTION, dir, [cell]);
-                                                       }
-                                               }
-                                       }
-                               }
-                       } finally {
-                               graph.getModel().endUpdate();
-                       }
-               }
-       }, null, null, 'Ctrl+R');
-
-       // View actions
-       this.addAction('actualSize', function() {
-               graph.zoomTo(1);
-       });
-       this.addAction('zoomIn', function() {
-               graph.zoomIn();
-       }, null, null, 'Add');
-       this.addAction('zoomOut', function() {
-               graph.zoomOut();
-       }, null, null, 'Subtract');
-       this.addAction('fitWindow', function() {
-               graph.fit();
-       });
-
-       this.addAction('fitPage', mxUtils.bind(this, function() {
-               if (!graph.pageVisible) {
-                       this.get('pageView').funct();
-               }
-
-               var fmt = graph.pageFormat;
-               var ps = graph.pageScale;
-               var cw = graph.container.clientWidth - 20;
-               var ch = graph.container.clientHeight - 20;
-
-               var scale = Math.floor(100 * Math.min(cw / fmt.width / ps, ch / fmt.height /
-                       ps)) / 100;
-               graph.zoomTo(scale);
-
-               graph.container.scrollLeft = Math.round(graph.view.translate.x * scale -
-                       Math.max(10, (graph.container.clientWidth - fmt.width * ps * scale) / 2)
-               );
-               graph.container.scrollTop = Math.round(graph.view.translate.y * scale -
-                       Math.max(10, (graph.container.clientHeight - fmt.height * ps * scale) /
-                               2));
-       }));
-       this.addAction('fitPageWidth', mxUtils.bind(this, function() {
-               if (!graph.pageVisible) {
-                       this.get('pageView').funct();
-               }
-
-               var fmt = graph.pageFormat;
-               var ps = graph.pageScale;
-               var cw = graph.container.clientWidth - 20;
-
-               var scale = Math.floor(100 * cw / fmt.width / ps) / 100;
-               graph.zoomTo(scale);
-
-               graph.container.scrollLeft = Math.round(graph.view.translate.x * scale -
-                       Math.max(10, (graph.container.clientWidth - fmt.width * ps * scale) / 2)
-               );
-               graph.container.scrollTop = Math.round(graph.view.translate.y * scale -
-                       Math.max(10, (graph.container.clientHeight - fmt.height * ps * scale) /
-                               2));
-       }));
-       this.put('customZoom', new Action(mxResources.get('custom'), function() {
-               var value = mxUtils.prompt(mxResources.get('enterValue') + ' (%)',
-                       parseInt(graph.getView().getScale() * 100));
-
-               if (value != null && value.length > 0 && !isNaN(parseInt(value))) {
-                       graph.zoomTo(parseInt(value) / 100);
-               }
-       }));
-
-       // Option actions
-       var action = null;
-       action = this.addAction('grid', function() {
-               graph.setGridEnabled(!graph.isGridEnabled());
-               editor.updateGraphComponents();
-       }, null, null, 'Ctrl+Shift+G');
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.isGridEnabled();
-       });
-       action = this.addAction('guides', function() {
-               graph.graphHandler.guidesEnabled = !graph.graphHandler.guidesEnabled;
-       });
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.graphHandler.guidesEnabled;
-       });
-       action = this.addAction('tooltips', function() {
-               graph.tooltipHandler.setEnabled(!graph.tooltipHandler.isEnabled());
-       });
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.tooltipHandler.isEnabled();
-       });
-       action = this.addAction('navigation', function() {
-               graph.foldingEnabled = !graph.foldingEnabled;
-               graph.view.revalidate();
-       });
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.foldingEnabled;
-       });
-       action = this.addAction('scrollbars', function() {
-               graph.scrollbars = !graph.scrollbars;
-               editor.updateGraphComponents();
-
-               if (!graph.scrollbars) {
-                       var t = graph.view.translate;
-                       graph.view.setTranslate(t.x - graph.container.scrollLeft / graph.view.scale,
-                               t.y - graph.container.scrollTop / graph.view.scale);
-                       graph.container.scrollLeft = 0;
-                       graph.container.scrollTop = 0;
-                       graph.sizeDidChange();
-               } else {
-                       var dx = graph.view.translate.x;
-                       var dy = graph.view.translate.y;
-
-                       graph.view.translate.x = 0;
-                       graph.view.translate.y = 0;
-                       graph.sizeDidChange();
-                       graph.container.scrollLeft -= Math.round(dx * graph.view.scale);
-                       graph.container.scrollTop -= Math.round(dy * graph.view.scale);
-               }
-       }, !mxClient.IS_TOUCH);
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.container.style.overflow == 'auto';
-       });
-       action = this.addAction('pageView', mxUtils.bind(this, function() {
-               graph.pageVisible = !graph.pageVisible;
-               graph.pageBreaksVisible = graph.pageVisible;
-               graph.preferPageSize = graph.pageBreaksVisible;
-               graph.view.validate();
-               graph.sizeDidChange();
-
-               editor.updateGraphComponents();
-               editor.outline.update();
-
-               if (mxUtils.hasScrollbars(graph.container)) {
-                       if (graph.pageVisible) {
-                               graph.container.scrollLeft -= 20;
-                               graph.container.scrollTop -= 20;
-                       } else {
-                               graph.container.scrollLeft += 20;
-                               graph.container.scrollTop += 20;
-                       }
-               }
-       }));
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.pageVisible;
-       });
-       action = this.addAction('connect', function() {
-               graph.setConnectable(!graph.connectionHandler.isEnabled());
-       }, null, null, 'Ctrl+Q');
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.connectionHandler.isEnabled();
-       });
-       action = this.addAction('copyConnect', function() {
-               graph.connectionHandler.setCreateTarget(!graph.connectionHandler.isCreateTarget());
-       });
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.connectionHandler.isCreateTarget();
-       });
-
-       // Help actions
-       this.addAction('help', function() {
-               var ext = '';
-
-               if (mxResources.isLanguageSupported(mxClient.language)) {
-                       ext = '_' + mxClient.language;
-               }
-
-               window.open(RESOURCES_PATH + '/help' + ext + '.html');
-       });
-       this.put('about', new Action(mxResources.get('about') + ' Cally Square',
-               function() {
-                       ui.showDialog(new AboutDialog(ui).container, 320, 280, true, true);
-               }, null, null, 'F1'));
-
-       // Font style actions
-       var toggleFontStyle = mxUtils.bind(this, function(key, style) {
-               this.addAction(key, function() {
-                       graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, style);
-               });
-       });
-
-       toggleFontStyle('bold', mxConstants.FONT_BOLD);
-       toggleFontStyle('italic', mxConstants.FONT_ITALIC);
-       toggleFontStyle('underline', mxConstants.FONT_UNDERLINE);
-
-       // Format actions
-       this.addAction('shadow', function() {
-               graph.toggleCellStyles(mxConstants.STYLE_SHADOW);
-       });
-       this.addAction('dashed', function() {
-               graph.toggleCellStyles(mxConstants.STYLE_DASHED);
-       });
-       this.addAction('rounded', function() {
-               graph.toggleCellStyles(mxConstants.STYLE_ROUNDED);
-       });
-       this.addAction('curved', function() {
-               graph.toggleCellStyles(mxConstants.STYLE_CURVED);
-       });
-       this.addAction('style', function() {
-               var cells = graph.getSelectionCells();
-
-               if (cells != null && cells.length > 0) {
-                       var model = graph.getModel();
-                       var style = mxUtils.prompt(mxResources.get('enterValue') + ' (' +
-                               mxResources.get('style') + ')',
-                               model.getStyle(cells[0]) || '');
-
-                       if (style != null) {
-                               graph.setCellStyle(style, cells);
-                       }
-               }
-       });
-       this.addAction('setAsDefaultEdge', function() {
-               graph.setDefaultEdge(graph.getSelectionCell());
-       });
-       this.addAction('addWaypoint', function() {
-               var cell = graph.getSelectionCell();
-
-               if (cell != null && graph.getModel().isEdge(cell)) {
-                       var handler = editor.graph.selectionCellsHandler.getHandler(cell);
-
-                       if (handler instanceof mxEdgeHandler) {
-                               var t = graph.view.translate;
-                               var s = graph.view.scale;
-                               var dx = t.x;
-                               var dy = t.y;
-
-                               var parent = graph.getModel().getParent(cell);
-                               var pgeo = graph.getCellGeometry(parent);
-
-                               if (graph.getModel().isVertex(parent) && pgeo != null) {
-                                       dx += pgeo.x;
-                                       dy += pgeo.y;
-                               }
-
-                               handler.addPointAt(handler.state, graph.panningHandler.triggerX / s - dx,
-                                       graph.panningHandler.triggerY / s - dy);
-                       }
-               }
-       });
-       this.addAction('removeWaypoint', function() {
-               // TODO: Action should run with "this" set to action
-               var rmWaypointAction = ui.actions.get('removeWaypoint');
-
-               if (rmWaypointAction.handler != null) {
-                       // NOTE: Popupevent handled and action updated in Menus.createPopupMenu
-                       rmWaypointAction.handler.removePoint(rmWaypointAction.handler.state,
-                               rmWaypointAction.index);
-               }
-       });
-       this.addAction('image', function() {
-               function updateImage(value, w, h) {
-                       var select = null;
-                       var cells = graph.getSelectionCells();
-
-                       graph.getModel().beginUpdate();
-                       try {
-                               // Inserts new cell if no cell is selected
-                               if (cells.length == 0) {
-                                       var gs = graph.getGridSize();
-                                       cells = [graph.insertVertex(graph.getDefaultParent(), null, '', gs, gs,
-                                               w, h)];
-                                       select = cells;
-                               }
-
-                               graph.setCellStyles(mxConstants.STYLE_IMAGE, value, cells);
-                               graph.setCellStyles(mxConstants.STYLE_SHAPE, 'image', cells);
-
-                               if (graph.getSelectionCount() == 1) {
-                                       if (w != null && h != null) {
-                                               var cell = cells[0];
-                                               var geo = graph.getModel().getGeometry(cell);
-
-                                               if (geo != null) {
-                                                       geo = geo.clone();
-                                                       geo.width = w;
-                                                       geo.height = h;
-                                                       graph.getModel().setGeometry(cell, geo);
-                                               }
-                                       }
-                               }
-                       } finally {
-                               graph.getModel().endUpdate();
-                       }
-
-                       if (select != null) {
-                               graph.setSelectionCells(select);
-                               graph.scrollCellToVisible(select[0]);
-                       }
-               };
-
-               var value = '';
-               var state = graph.getView().getState(graph.getSelectionCell());
-
-               if (state != null) {
-                       value = state.style[mxConstants.STYLE_IMAGE] || value;
-               }
-
-               value = mxUtils.prompt(mxResources.get('enterValue') + ' (' + mxResources.get(
-                       'url') + ')', value);
-
-               if (value != null) {
-                       if (value.length > 0) {
-                               var img = new Image();
-
-                               img.onload = function() {
-                                       updateImage(value, img.width, img.height);
-                               };
-                               img.onerror = function() {
-                                       mxUtils.alert(mxResources.get('fileNotFound'));
-                               };
-
-                               img.src = value;
-                       }
-               }
-       });
-};
-
-/**
- * Registers the given action under the given name.
- */
-Actions.prototype.addAction = function(key, funct, enabled, iconCls, shortcut) {
-       return this.put(key, new Action(mxResources.get(key), funct, enabled, iconCls,
-               shortcut));
-};
-
-/**
- * Registers the given action under the given name.
- */
-Actions.prototype.put = function(name, action) {
-       this.actions[name] = action;
-
-       return action;
-};
-
-/**
- * Returns the action for the given name or null if no such action exists.
- */
-Actions.prototype.get = function(name) {
-       return this.actions[name];
-};
-
-/**
- * Constructs a new action for the given parameters.
- */
-function Action(label, funct, enabled, iconCls, shortcut) {
-       mxEventSource.call(this);
-       this.label = label;
-       this.funct = funct;
-       this.enabled = (enabled != null) ? enabled : true;
-       this.iconCls = iconCls;
-       this.shortcut = shortcut;
-};
-
-// Action inherits from mxEventSource
-mxUtils.extend(Action, mxEventSource);
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Action.prototype.setEnabled = function(value) {
-       if (this.enabled != value) {
-               this.enabled = value;
-               this.fireEvent(new mxEventObject('stateChanged'));
-       }
-};
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Action.prototype.setToggleAction = function(value) {
-       this.toggleAction = value;
-};
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Action.prototype.setSelectedCallback = function(funct) {
-       this.selectedCallback = funct;
-};
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Action.prototype.isSelected = function() {
-       return this.selectedCallback();
-};
+var _0x2c8f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x61\x63\x74\x69\x6F\x6E\x73","\x69\x6E\x69\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x65\x64\x69\x74\x6F\x72","\x67\x72\x61\x70\x68","\x6E\x65\x77","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x43\x74\x72\x6C\x2B\x53","\x73\x61\x76\x65\x41\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2D\x53","\x70\x75\x62\x6C\x69\x73\x68","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x50","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x43\x74\x72\x6C\x2B\x45","\x65\x64\x69\x74\x46\x69\x6C\x65","\x65\x64\x69\x74","\x67\x65\x74","\x62\x69\x6E\x64","\x70\x75\x74","\x72\x65\x6E\x61\x6D\x65","\x70\x72\x69\x6E\x74","\x70\x72\x69\x6E\x74\x53\x63\x72\x65\x65\x6E","\x73\x70\x72\x69\x74\x65\x2D\x70\x72\x69\x6E\x74","\x43\x74\x72\x6C\x2B\x50","\x70\x72\x65\x76\x69\x65\x77","\x73\x68\x6F\x77","\x75\x6E\x64\x6F","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x73\x70\x72\x69\x74\x65\x2D\x75\x6E\x64\x6F","\x43\x74\x72\x6C\x2B\x5A","\x72\x65\x64\x6F","\x73\x70\x72\x69\x74\x65\x2D\x72\x65\x64\x6F","\x43\x74\x72\x6C\x2B\x59","\x63\x75\x74","\x73\x70\x72\x69\x74\x65\x2D\x63\x75\x74","\x43\x74\x72\x6C\x2B\x58","\x63\x6F\x70\x79","\x73\x70\x72\x69\x74\x65\x2D\x63\x6F\x70\x79","\x43\x74\x72\x6C\x2B\x43","\x70\x61\x73\x74\x65","\x73\x70\x72\x69\x74\x65\x2D\x70\x61\x73\x74\x65","\x43\x74\x72\x6C\x2B\x56","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x44\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x67\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x44","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x56","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x45","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x43\x74\x72\x6C\x2B\x41","\x68\x6F\x6D\x65","\x48\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x50\x61\x67\x65\x20\x55\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x50\x61\x67\x65\x20\x44\x6F\x77\x6E","\x65\x78\x70\x61\x6E\x64","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x45\x6E\x74\x65\x72","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x42\x61\x63\x6B\x73\x70\x61\x63\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x6F\x72\x64\x65\x72\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x46","\x74\x6F\x42\x61\x63\x6B","\x43\x74\x72\x6C\x2B\x42","\x67\x72\x6F\x75\x70","\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x43\x74\x72\x6C\x2B\x47","\x75\x6E\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x55","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x70\x72\x6F\x6D\x70\x74","\x73\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x6C\x65\x6E\x67\x74\x68","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x75\x70\x64\x61\x74\x65\x47\x72\x6F\x75\x70\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x43\x65\x6C\x6C\x53\x69\x7A\x65","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x77\x72\x61\x70","\x53\x54\x59\x4C\x45\x5F\x57\x48\x49\x54\x45\x5F\x53\x50\x41\x43\x45","\x73\x74\x79\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x30","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x54\x41\x54\x49\x4F\x4E","\x20\x28","\x20\x30\x2D\x33\x36\x30\x29","\x74\x69\x6C\x74","\x69\x73\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x63\x6C\x6F\x6E\x65","\x78","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x79","\x73\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x76\x69\x65\x77","\x53\x54\x59\x4C\x45\x5F\x44\x49\x52\x45\x43\x54\x49\x4F\x4E","\x65\x61\x73\x74","\x73\x6F\x75\x74\x68","\x77\x65\x73\x74","\x6E\x6F\x72\x74\x68","\x43\x74\x72\x6C\x2B\x52","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x41\x64\x64","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x53\x75\x62\x74\x72\x61\x63\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x66\x69\x74","\x66\x69\x74\x50\x61\x67\x65","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x66\x75\x6E\x63\x74","\x70\x61\x67\x65\x56\x69\x65\x77","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x66\x6C\x6F\x6F\x72","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x6D\x61\x78","\x72\x6F\x75\x6E\x64","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x63\x75\x73\x74\x6F\x6D","\x20\x28\x25\x29","\x67\x65\x74\x53\x63\x61\x6C\x65","\x67\x72\x69\x64","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x75\x70\x64\x61\x74\x65\x47\x72\x61\x70\x68\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x47","\x73\x65\x74\x54\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x65\x64\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x67\x75\x69\x64\x65\x73","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x73","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x72\x65\x76\x61\x6C\x69\x64\x61\x74\x65","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x73\x63\x61\x6C\x65","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x61\x75\x74\x6F","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x76\x61\x6C\x69\x64\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x43\x74\x72\x6C\x2B\x51","\x63\x6F\x70\x79\x43\x6F\x6E\x6E\x65\x63\x74","\x69\x73\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x68\x65\x6C\x70","\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x73\x4C\x61\x6E\x67\x75\x61\x67\x65\x53\x75\x70\x70\x6F\x72\x74\x65\x64","\x5F","\x2F\x68\x65\x6C\x70","\x2E\x68\x74\x6D\x6C","\x61\x62\x6F\x75\x74","\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x46\x31","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x46\x6C\x61\x67\x73","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x73\x68\x61\x64\x6F\x77","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x63\x75\x72\x76\x65\x64","\x29","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x73\x74\x61\x74\x65","\x74\x72\x69\x67\x67\x65\x72\x58","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x74\x72\x69\x67\x67\x65\x72\x59","\x61\x64\x64\x50\x6F\x69\x6E\x74\x41\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x72\x65\x6D\x6F\x76\x65\x50\x6F\x69\x6E\x74","\x69\x6D\x61\x67\x65","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x69\x6E\x73\x65\x72\x74\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45","\x75\x72\x6C","\x6F\x6E\x6C\x6F\x61\x64","\x6F\x6E\x65\x72\x72\x6F\x72","\x66\x69\x6C\x65\x4E\x6F\x74\x46\x6F\x75\x6E\x64","\x61\x6C\x65\x72\x74","\x73\x72\x63","\x63\x61\x6C\x6C","\x6C\x61\x62\x65\x6C","\x65\x6E\x61\x62\x6C\x65\x64","\x69\x63\x6F\x6E\x43\x6C\x73","\x73\x68\x6F\x72\x74\x63\x75\x74","\x65\x78\x74\x65\x6E\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x65\x64\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64"];_0x2c8f[0];function Actions(_0x56f7x2){this[_0x2c8f[1]]=_0x56f7x2;this[_0x2c8f[2]]= new Object();this[_0x2c8f[3]]()}Actions[_0x2c8f[4]][_0x2c8f[3]]=function(){var _0x56f7x3=this[_0x2c8f[1]];var _0x56f7x4=_0x56f7x3[_0x2c8f[5]];var _0x56f7x5=_0x56f7x4[_0x2c8f[6]];this[_0x2c8f[10]](_0x2c8f[7],function(){_0x56f7x3[_0x2c8f[9]]( new NewDialog(_0x56f7x3)[_0x2c8f[8]],300,180,true,true)});this[_0x2c8f[10]](_0x2c8f[11],function(){_0x56f7x3[_0x2c8f[9]]( new OpenDialog(_0x56f7x3)[_0x2c8f[8]],300,180,true,true)});this[_0x2c8f[10]](_0x2c8f[12],function(){_0x56f7x3[_0x2c8f[13]](false)},null,null,_0x2c8f[14]);this[_0x2c8f[10]](_0x2c8f[15],function(){_0x56f7x3[_0x2c8f[13]](true)},null,null,_0x2c8f[16]);this[_0x2c8f[10]](_0x2c8f[17],function(){_0x56f7x3[_0x2c8f[18]](false)},null,null,_0x2c8f[19]);this[_0x2c8f[10]](_0x2c8f[20],function(){_0x56f7x3[_0x2c8f[9]]( new VariableDialog(_0x56f7x3)[_0x2c8f[8]],300,180,true,true)});this[_0x2c8f[10]](_0x2c8f[21],function(){_0x56f7x3[_0x2c8f[9]]( new ImportDialog(_0x56f7x3)[_0x2c8f[8]],300,200,true,true)});this[_0x2c8f[10]](_0x2c8f[22],function(){_0x56f7x3[_0x2c8f[9]]( new ExportDialog(_0x56f7x3)[_0x2c8f[8]],300,200,true,true)},null,null,_0x2c8f[23]);this[_0x2c8f[28]](_0x2c8f[24], new Action(mxResources[_0x2c8f[26]](_0x2c8f[25]),mxUtils[_0x2c8f[27]](this,function(){this[_0x2c8f[1]][_0x2c8f[9]]( new EditFileDialog(_0x56f7x3)[_0x2c8f[8]],620,420,true,true)})));this[_0x2c8f[10]](_0x2c8f[29],function(){_0x56f7x3[_0x2c8f[9]]( new RenameDialog(_0x56f7x3)[_0x2c8f[8]],300,180,true,true)});this[_0x2c8f[10]](_0x2c8f[30],function(){mxUtils[_0x2c8f[31]](_0x56f7x5)},null,_0x2c8f[32],_0x2c8f[33]);this[_0x2c8f[10]](_0x2c8f[34],function(){mxUtils[_0x2c8f[35]](_0x56f7x5,null,10,10)});this[_0x2c8f[10]](_0x2c8f[36],function(){_0x56f7x4[_0x2c8f[37]][_0x2c8f[36]]()},null,_0x2c8f[38],_0x2c8f[39]);this[_0x2c8f[10]](_0x2c8f[40],function(){_0x56f7x4[_0x2c8f[37]][_0x2c8f[40]]()},null,_0x2c8f[41],_0x2c8f[42]);this[_0x2c8f[10]](_0x2c8f[43],function(){mxClipboard[_0x2c8f[43]](_0x56f7x5)},null,_0x2c8f[44],_0x2c8f[45]);this[_0x2c8f[10]](_0x2c8f[46],function(){mxClipboard[_0x2c8f[46]](_0x56f7x5)},null,_0x2c8f[47],_0x2c8f[48]);this[_0x2c8f[10]](_0x2c8f[49],function(){mxClipboard[_0x2c8f[49]](_0x56f7x5)},false,_0x2c8f[50],_0x2c8f[51]);this[_0x2c8f[10]](_0x2c8f[52],function(){_0x56f7x5[_0x2c8f[53]]()},null,null,_0x2c8f[54]);this[_0x2c8f[10]](_0x2c8f[55],function(){var _0x56f7x6=_0x56f7x5[_0x2c8f[56]];_0x56f7x5[_0x2c8f[59]](_0x56f7x5[_0x2c8f[58]](_0x56f7x5[_0x2c8f[57]](),_0x56f7x6,_0x56f7x6,true))},null,null,_0x2c8f[60]);this[_0x2c8f[10]](_0x2c8f[61],function(){_0x56f7x5[_0x2c8f[61]]()},null,null,_0x2c8f[62]);this[_0x2c8f[10]](_0x2c8f[63],function(){_0x56f7x5[_0x2c8f[63]]()},null,null,_0x2c8f[64]);this[_0x2c8f[10]](_0x2c8f[65],function(){_0x56f7x5[_0x2c8f[65]]()},null,null,_0x2c8f[66]);this[_0x2c8f[10]](_0x2c8f[67],function(){_0x56f7x5[_0x2c8f[67]]()},null,null,_0x2c8f[68]);this[_0x2c8f[10]](_0x2c8f[69],function(){_0x56f7x5[_0x2c8f[69]]()},null,null,_0x2c8f[70]);this[_0x2c8f[10]](_0x2c8f[71],function(){_0x56f7x5[_0x2c8f[71]]()},null,null,_0x2c8f[72]);this[_0x2c8f[10]](_0x2c8f[73],function(){_0x56f7x5[_0x2c8f[74]](false)},null,null,_0x2c8f[75]);this[_0x2c8f[10]](_0x2c8f[76],function(){_0x56f7x5[_0x2c8f[74]](true)},null,null,_0x2c8f[77]);this[_0x2c8f[10]](_0x2c8f[78],function(){_0x56f7x5[_0x2c8f[79]](false)},null,null,_0x2c8f[80]);this[_0x2c8f[10]](_0x2c8f[81],function(){_0x56f7x5[_0x2c8f[79]](true)},null,null,_0x2c8f[82]);this[_0x2c8f[10]](_0x2c8f[83],function(){_0x56f7x5[_0x2c8f[85]](_0x56f7x5[_0x2c8f[84]](null,0))},null,null,_0x2c8f[86]);this[_0x2c8f[10]](_0x2c8f[87],function(){_0x56f7x5[_0x2c8f[59]](_0x56f7x5[_0x2c8f[88]]())},null,null,_0x2c8f[89]);this[_0x2c8f[10]](_0x2c8f[90],function(){_0x56f7x5[_0x2c8f[91]]()});this[_0x2c8f[10]](_0x2c8f[92],function(){var _0x56f7x7=_0x56f7x5[_0x2c8f[93]]();var _0x56f7x8=_0x56f7x5[_0x2c8f[94]](_0x56f7x7);if(_0x56f7x8==null){_0x56f7x8=_0x2c8f[95]};_0x56f7x8=mxUtils[_0x2c8f[97]](mxResources[_0x2c8f[26]](_0x2c8f[96]),_0x56f7x8);if(_0x56f7x8!=null){_0x56f7x5[_0x2c8f[98]](_0x56f7x7,_0x56f7x8)}});this[_0x2c8f[10]](_0x2c8f[99],function(){var _0x56f7x7=_0x56f7x5[_0x2c8f[93]]();var _0x56f7x8=_0x56f7x5[_0x2c8f[94]](_0x56f7x7);if(_0x56f7x8!=null){window[_0x2c8f[11]](_0x56f7x8)}});this[_0x2c8f[10]](_0x2c8f[100],function(){var _0x56f7x9=_0x56f7x5[_0x2c8f[57]]();if(_0x56f7x9!=null){_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[101]]();try{for(var _0x56f7xa=0;_0x56f7xa<_0x56f7x9[_0x2c8f[103]];_0x56f7xa++){var _0x56f7x7=_0x56f7x9[_0x56f7xa];if(_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[104]](_0x56f7x7)){_0x56f7x5[_0x2c8f[105]]([_0x56f7x7],20)}else {_0x56f7x5[_0x2c8f[106]](_0x56f7x7)}}}finally{_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[107]]()}}});this[_0x2c8f[10]](_0x2c8f[108],function(){var _0x56f7xb=_0x56f7x5[_0x2c8f[110]]()[_0x2c8f[109]](_0x56f7x5[_0x2c8f[93]]());var _0x56f7xc=_0x2c8f[111];if(_0x56f7xb!=null&&_0x56f7xb[_0x2c8f[113]][mxConstants[_0x2c8f[112]]]==_0x2c8f[111]){_0x56f7xc=null};_0x56f7x5[_0x2c8f[114]](mxConstants.STYLE_WHITE_SPACE,_0x56f7xc)});this[_0x2c8f[10]](_0x2c8f[115],function(){var _0x56f7xc=_0x2c8f[116];var _0x56f7xb=_0x56f7x5[_0x2c8f[110]]()[_0x2c8f[109]](_0x56f7x5[_0x2c8f[93]]());if(_0x56f7xb!=null){_0x56f7xc=_0x56f7xb[_0x2c8f[113]][mxConstants[_0x2c8f[117]]]||_0x56f7xc};_0x56f7xc=mxUtils[_0x2c8f[97]](mxResources[_0x2c8f[26]](_0x2c8f[96])+_0x2c8f[118]+mxResources[_0x2c8f[26]](_0x2c8f[115])+_0x2c8f[119],_0x56f7xc);if(_0x56f7xc!=null){_0x56f7x5[_0x2c8f[114]](mxConstants.STYLE_ROTATION,_0x56f7xc)}});this[_0x2c8f[10]](_0x2c8f[120],function(){var _0x56f7x9=_0x56f7x5[_0x2c8f[57]]();if(_0x56f7x9!=null){_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[101]]();try{for(var _0x56f7xa=0;_0x56f7xa<_0x56f7x9[_0x2c8f[103]];_0x56f7xa++){var _0x56f7x7=_0x56f7x9[_0x56f7xa];if(_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[121]](_0x56f7x7)&&_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[104]](_0x56f7x7)==0){var _0x56f7xd=_0x56f7x5[_0x2c8f[122]](_0x56f7x7);if(_0x56f7xd!=null){_0x56f7xd=_0x56f7xd[_0x2c8f[123]]();_0x56f7xd[_0x2c8f[124]]+=_0x56f7xd[_0x2c8f[125]]/2-_0x56f7xd[_0x2c8f[126]]/2;_0x56f7xd[_0x2c8f[127]]+=_0x56f7xd[_0x2c8f[126]]/2-_0x56f7xd[_0x2c8f[125]]/2;var _0x56f7xe=_0x56f7xd[_0x2c8f[125]];_0x56f7xd[_0x2c8f[125]]=_0x56f7xd[_0x2c8f[126]];_0x56f7xd[_0x2c8f[126]]=_0x56f7xe;_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[128]](_0x56f7x7,_0x56f7xd);var _0x56f7xb=_0x56f7x5[_0x2c8f[129]][_0x2c8f[109]](_0x56f7x7);if(_0x56f7xb!=null){var _0x56f7xf=_0x56f7xb[_0x2c8f[113]][mxConstants[_0x2c8f[130]]]||_0x2c8f[131];if(_0x56f7xf==_0x2c8f[131]){_0x56f7xf=_0x2c8f[132]}else {if(_0x56f7xf==_0x2c8f[132]){_0x56f7xf=_0x2c8f[133]}else {if(_0x56f7xf==_0x2c8f[133]){_0x56f7xf=_0x2c8f[134]}else {if(_0x56f7xf==_0x2c8f[134]){_0x56f7xf=_0x2c8f[131]}}}};_0x56f7x5[_0x2c8f[114]](mxConstants.STYLE_DIRECTION,_0x56f7xf,[_0x56f7x7])}}}}}finally{_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[107]]()}}},null,null,_0x2c8f[135]);this[_0x2c8f[10]](_0x2c8f[136],function(){_0x56f7x5[_0x2c8f[137]](1)});this[_0x2c8f[10]](_0x2c8f[138],function(){_0x56f7x5[_0x2c8f[138]]()},null,null,_0x2c8f[139]);this[_0x2c8f[10]](_0x2c8f[140],function(){_0x56f7x5[_0x2c8f[140]]()},null,null,_0x2c8f[141]);this[_0x2c8f[10]](_0x2c8f[142],function(){_0x56f7x5[_0x2c8f[143]]()});this[_0x2c8f[10]](_0x2c8f[144],mxUtils[_0x2c8f[27]](this,function(){if(!_0x56f7x5[_0x2c8f[145]]){this[_0x2c8f[26]](_0x2c8f[147])[_0x2c8f[146]]()};var _0x56f7x10=_0x56f7x5[_0x2c8f[148]];var _0x56f7x11=_0x56f7x5[_0x2c8f[149]];var _0x56f7x12=_0x56f7x5[_0x2c8f[8]][_0x2c8f[150]]-20;var _0x56f7x13=_0x56f7x5[_0x2c8f[8]][_0x2c8f[151]]-20;var _0x56f7x14=Math[_0x2c8f[153]](100*Math[_0x2c8f[152]](_0x56f7x12/_0x56f7x10[_0x2c8f[125]]/_0x56f7x11,_0x56f7x13/_0x56f7x10[_0x2c8f[126]]/_0x56f7x11))/100;_0x56f7x5[_0x2c8f[137]](_0x56f7x14);_0x56f7x5[_0x2c8f[8]][_0x2c8f[154]]=Math[_0x2c8f[157]](_0x56f7x5[_0x2c8f[129]][_0x2c8f[155]][_0x2c8f[124]]*_0x56f7x14-Math[_0x2c8f[156]](10,(_0x56f7x5[_0x2c8f[8]][_0x2c8f[150]]-_0x56f7x10[_0x2c8f[125]]*_0x56f7x11*_0x56f7x14)/2));_0x56f7x5[_0x2c8f[8]][_0x2c8f[158]]=Math[_0x2c8f[157]](_0x56f7x5[_0x2c8f[129]][_0x2c8f[155]][_0x2c8f[127]]*_0x56f7x14-Math[_0x2c8f[156]](10,(_0x56f7x5[_0x2c8f[8]][_0x2c8f[151]]-_0x56f7x10[_0x2c8f[126]]*_0x56f7x11*_0x56f7x14)/2))}));this[_0x2c8f[10]](_0x2c8f[159],mxUtils[_0x2c8f[27]](this,function(){if(!_0x56f7x5[_0x2c8f[145]]){this[_0x2c8f[26]](_0x2c8f[147])[_0x2c8f[146]]()};var _0x56f7x10=_0x56f7x5[_0x2c8f[148]];var _0x56f7x11=_0x56f7x5[_0x2c8f[149]];var _0x56f7x12=_0x56f7x5[_0x2c8f[8]][_0x2c8f[150]]-20;var _0x56f7x14=Math[_0x2c8f[153]](100*_0x56f7x12/_0x56f7x10[_0x2c8f[125]]/_0x56f7x11)/100;_0x56f7x5[_0x2c8f[137]](_0x56f7x14);_0x56f7x5[_0x2c8f[8]][_0x2c8f[154]]=Math[_0x2c8f[157]](_0x56f7x5[_0x2c8f[129]][_0x2c8f[155]][_0x2c8f[124]]*_0x56f7x14-Math[_0x2c8f[156]](10,(_0x56f7x5[_0x2c8f[8]][_0x2c8f[150]]-_0x56f7x10[_0x2c8f[125]]*_0x56f7x11*_0x56f7x14)/2));_0x56f7x5[_0x2c8f[8]][_0x2c8f[158]]=Math[_0x2c8f[157]](_0x56f7x5[_0x2c8f[129]][_0x2c8f[155]][_0x2c8f[127]]*_0x56f7x14-Math[_0x2c8f[156]](10,(_0x56f7x5[_0x2c8f[8]][_0x2c8f[151]]-_0x56f7x10[_0x2c8f[126]]*_0x56f7x11*_0x56f7x14)/2))}));this[_0x2c8f[28]](_0x2c8f[160], new Action(mxResources[_0x2c8f[26]](_0x2c8f[161]),function(){var _0x56f7xc=mxUtils[_0x2c8f[97]](mxResources[_0x2c8f[26]](_0x2c8f[96])+_0x2c8f[162],parseInt(_0x56f7x5[_0x2c8f[110]]()[_0x2c8f[163]]()*100));if(_0x56f7xc!=null&&_0x56f7xc[_0x2c8f[103]]>0&&!isNaN(parseInt(_0x56f7xc))){_0x56f7x5[_0x2c8f[137]](parseInt(_0x56f7xc)/100)}}));var _0x56f7x15=null;_0x56f7x15=this[_0x2c8f[10]](_0x2c8f[164],function(){_0x56f7x5[_0x2c8f[166]](!_0x56f7x5[_0x2c8f[165]]());_0x56f7x4[_0x2c8f[167]]()},null,null,_0x2c8f[168]);_0x56f7x15[_0x2c8f[169]](true);_0x56f7x15[_0x2c8f[170]](function(){return _0x56f7x5[_0x2c8f[165]]()});_0x56f7x15=this[_0x2c8f[10]](_0x2c8f[171],function(){_0x56f7x5[_0x2c8f[173]][_0x2c8f[172]]=!_0x56f7x5[_0x2c8f[173]][_0x2c8f[172]]});_0x56f7x15[_0x2c8f[169]](true);_0x56f7x15[_0x2c8f[170]](function(){return _0x56f7x5[_0x2c8f[173]][_0x2c8f[172]]});_0x56f7x15=this[_0x2c8f[10]](_0x2c8f[174],function(){_0x56f7x5[_0x2c8f[176]][_0x2c8f[177]](!_0x56f7x5[_0x2c8f[176]][_0x2c8f[175]]())});_0x56f7x15[_0x2c8f[169]](true);_0x56f7x15[_0x2c8f[170]](function(){return _0x56f7x5[_0x2c8f[176]][_0x2c8f[175]]()});_0x56f7x15=this[_0x2c8f[10]](_0x2c8f[178],function(){_0x56f7x5[_0x2c8f[179]]=!_0x56f7x5[_0x2c8f[179]];_0x56f7x5[_0x2c8f[129]][_0x2c8f[180]]()});_0x56f7x15[_0x2c8f[169]](true);_0x56f7x15[_0x2c8f[170]](function(){return _0x56f7x5[_0x2c8f[179]]});_0x56f7x15=this[_0x2c8f[10]](_0x2c8f[181],function(){_0x56f7x5[_0x2c8f[181]]=!_0x56f7x5[_0x2c8f[181]];_0x56f7x4[_0x2c8f[167]]();if(!_0x56f7x5[_0x2c8f[181]]){var _0x56f7x16=_0x56f7x5[_0x2c8f[129]][_0x2c8f[155]];_0x56f7x5[_0x2c8f[129]][_0x2c8f[183]](_0x56f7x16[_0x2c8f[124]]-_0x56f7x5[_0x2c8f[8]][_0x2c8f[154]]/_0x56f7x5[_0x2c8f[129]][_0x2c8f[182]],_0x56f7x16[_0x2c8f[127]]-_0x56f7x5[_0x2c8f[8]][_0x2c8f[158]]/_0x56f7x5[_0x2c8f[129]][_0x2c8f[182]]);_0x56f7x5[_0x2c8f[8]][_0x2c8f[154]]=0;_0x56f7x5[_0x2c8f[8]][_0x2c8f[158]]=0;_0x56f7x5[_0x2c8f[184]]()}else {var _0x56f7x17=_0x56f7x5[_0x2c8f[129]][_0x2c8f[155]][_0x2c8f[124]];var _0x56f7x18=_0x56f7x5[_0x2c8f[129]][_0x2c8f[155]][_0x2c8f[127]];_0x56f7x5[_0x2c8f[129]][_0x2c8f[155]][_0x2c8f[124]]=0;_0x56f7x5[_0x2c8f[129]][_0x2c8f[155]][_0x2c8f[127]]=0;_0x56f7x5[_0x2c8f[184]]();_0x56f7x5[_0x2c8f[8]][_0x2c8f[154]]-=Math[_0x2c8f[157]](_0x56f7x17*_0x56f7x5[_0x2c8f[129]][_0x2c8f[182]]);_0x56f7x5[_0x2c8f[8]][_0x2c8f[158]]-=Math[_0x2c8f[157]](_0x56f7x18*_0x56f7x5[_0x2c8f[129]][_0x2c8f[182]])}},!mxClient.IS_TOUCH);_0x56f7x15[_0x2c8f[169]](true);_0x56f7x15[_0x2c8f[170]](function(){return _0x56f7x5[_0x2c8f[8]][_0x2c8f[113]][_0x2c8f[185]]==_0x2c8f[186]});_0x56f7x15=this[_0x2c8f[10]](_0x2c8f[147],mxUtils[_0x2c8f[27]](this,function(){_0x56f7x5[_0x2c8f[145]]=!_0x56f7x5[_0x2c8f[145]];_0x56f7x5[_0x2c8f[187]]=_0x56f7x5[_0x2c8f[145]];_0x56f7x5[_0x2c8f[188]]=_0x56f7x5[_0x2c8f[187]];_0x56f7x5[_0x2c8f[129]][_0x2c8f[189]]();_0x56f7x5[_0x2c8f[184]]();_0x56f7x4[_0x2c8f[167]]();_0x56f7x4[_0x2c8f[191]][_0x2c8f[190]]();if(mxUtils[_0x2c8f[192]](_0x56f7x5[_0x2c8f[8]])){if(_0x56f7x5[_0x2c8f[145]]){_0x56f7x5[_0x2c8f[8]][_0x2c8f[154]]-=20;_0x56f7x5[_0x2c8f[8]][_0x2c8f[158]]-=20}else {_0x56f7x5[_0x2c8f[8]][_0x2c8f[154]]+=20;_0x56f7x5[_0x2c8f[8]][_0x2c8f[158]]+=20}}}));_0x56f7x15[_0x2c8f[169]](true);_0x56f7x15[_0x2c8f[170]](function(){return _0x56f7x5[_0x2c8f[145]]});_0x56f7x15=this[_0x2c8f[10]](_0x2c8f[193],function(){_0x56f7x5[_0x2c8f[195]](!_0x56f7x5[_0x2c8f[194]][_0x2c8f[175]]())},null,null,_0x2c8f[196]);_0x56f7x15[_0x2c8f[169]](true);_0x56f7x15[_0x2c8f[170]](function(){return _0x56f7x5[_0x2c8f[194]][_0x2c8f[175]]()});_0x56f7x15=this[_0x2c8f[10]](_0x2c8f[197],function(){_0x56f7x5[_0x2c8f[194]][_0x2c8f[199]](!_0x56f7x5[_0x2c8f[194]][_0x2c8f[198]]())});_0x56f7x15[_0x2c8f[169]](true);_0x56f7x15[_0x2c8f[170]](function(){return _0x56f7x5[_0x2c8f[194]][_0x2c8f[198]]()});this[_0x2c8f[10]](_0x2c8f[200],function(){var _0x56f7x19=_0x2c8f[95];if(mxResources[_0x2c8f[202]](mxClient[_0x2c8f[201]])){_0x56f7x19=_0x2c8f[203]+mxClient[_0x2c8f[201]]};window[_0x2c8f[11]](RESOURCES_PATH+_0x2c8f[204]+_0x56f7x19+_0x2c8f[205])});this[_0x2c8f[28]](_0x2c8f[206], new Action(mxResources[_0x2c8f[26]](_0x2c8f[206])+_0x2c8f[207],function(){_0x56f7x3[_0x2c8f[9]]( new AboutDialog(_0x56f7x3)[_0x2c8f[8]],320,280,true,true)},null,null,_0x2c8f[208]));var _0x56f7x1a=mxUtils[_0x2c8f[27]](this,function(_0x56f7x1b,_0x56f7x1c){this[_0x2c8f[10]](_0x56f7x1b,function(){_0x56f7x5[_0x2c8f[209]](mxConstants.STYLE_FONTSTYLE,_0x56f7x1c)})});_0x56f7x1a(_0x2c8f[210],mxConstants.FONT_BOLD);_0x56f7x1a(_0x2c8f[211],mxConstants.FONT_ITALIC);_0x56f7x1a(_0x2c8f[212],mxConstants.FONT_UNDERLINE);this[_0x2c8f[10]](_0x2c8f[213],function(){_0x56f7x5[_0x2c8f[214]](mxConstants.STYLE_SHADOW)});this[_0x2c8f[10]](_0x2c8f[215],function(){_0x56f7x5[_0x2c8f[214]](mxConstants.STYLE_DASHED)});this[_0x2c8f[10]](_0x2c8f[216],function(){_0x56f7x5[_0x2c8f[214]](mxConstants.STYLE_ROUNDED)});this[_0x2c8f[10]](_0x2c8f[217],function(){_0x56f7x5[_0x2c8f[214]](mxConstants.STYLE_CURVED)});this[_0x2c8f[10]](_0x2c8f[113],function(){var _0x56f7x9=_0x56f7x5[_0x2c8f[57]]();if(_0x56f7x9!=null&&_0x56f7x9[_0x2c8f[103]]>0){var _0x56f7x1d=_0x56f7x5[_0x2c8f[102]]();var _0x56f7x1c=mxUtils[_0x2c8f[97]](mxResources[_0x2c8f[26]](_0x2c8f[96])+_0x2c8f[118]+mxResources[_0x2c8f[26]](_0x2c8f[113])+_0x2c8f[218],_0x56f7x1d[_0x2c8f[219]](_0x56f7x9[0])||_0x2c8f[95]);if(_0x56f7x1c!=null){_0x56f7x5[_0x2c8f[220]](_0x56f7x1c,_0x56f7x9)}}});this[_0x2c8f[10]](_0x2c8f[221],function(){_0x56f7x5[_0x2c8f[222]](_0x56f7x5[_0x2c8f[93]]())});this[_0x2c8f[10]](_0x2c8f[223],function(){var _0x56f7x7=_0x56f7x5[_0x2c8f[93]]();if(_0x56f7x7!=null&&_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[224]](_0x56f7x7)){var _0x56f7x1e=_0x56f7x4[_0x2c8f[6]][_0x2c8f[226]][_0x2c8f[225]](_0x56f7x7);if(_0x56f7x1e instanceof mxEdgeHandler){var _0x56f7x16=_0x56f7x5[_0x2c8f[129]][_0x2c8f[155]];var _0x56f7x6=_0x56f7x5[_0x2c8f[129]][_0x2c8f[182]];var _0x56f7x17=_0x56f7x16[_0x2c8f[124]];var _0x56f7x18=_0x56f7x16[_0x2c8f[127]];var _0x56f7x1f=_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[227]](_0x56f7x7);var _0x56f7x20=_0x56f7x5[_0x2c8f[122]](_0x56f7x1f);if(_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[121]](_0x56f7x1f)&&_0x56f7x20!=null){_0x56f7x17+=_0x56f7x20[_0x2c8f[124]];_0x56f7x18+=_0x56f7x20[_0x2c8f[127]]};_0x56f7x1e[_0x2c8f[232]](_0x56f7x1e[_0x2c8f[228]],_0x56f7x5[_0x2c8f[230]][_0x2c8f[229]]/_0x56f7x6-_0x56f7x17,_0x56f7x5[_0x2c8f[230]][_0x2c8f[231]]/_0x56f7x6-_0x56f7x18)}}});this[_0x2c8f[10]](_0x2c8f[233],function(){var _0x56f7x21=_0x56f7x3[_0x2c8f[2]][_0x2c8f[26]](_0x2c8f[233]);if(_0x56f7x21[_0x2c8f[234]]!=null){_0x56f7x21[_0x2c8f[234]][_0x2c8f[236]](_0x56f7x21[_0x2c8f[234]][_0x2c8f[228]],_0x56f7x21[_0x2c8f[235]])}});this[_0x2c8f[10]](_0x2c8f[237],function(){function _0x56f7x22(_0x56f7xc,_0x56f7x23,_0x56f7x24){var _0x56f7x25=null;var _0x56f7x9=_0x56f7x5[_0x2c8f[57]]();_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[101]]();try{if(_0x56f7x9[_0x2c8f[103]]==0){var _0x56f7x26=_0x56f7x5[_0x2c8f[238]]();_0x56f7x9=[_0x56f7x5[_0x2c8f[240]](_0x56f7x5[_0x2c8f[239]](),null,_0x2c8f[95],_0x56f7x26,_0x56f7x26,_0x56f7x23,_0x56f7x24)];_0x56f7x25=_0x56f7x9};_0x56f7x5[_0x2c8f[114]](mxConstants.STYLE_IMAGE,_0x56f7xc,_0x56f7x9);_0x56f7x5[_0x2c8f[114]](mxConstants.STYLE_SHAPE,_0x2c8f[237],_0x56f7x9);if(_0x56f7x5[_0x2c8f[241]]()==1){if(_0x56f7x23!=null&&_0x56f7x24!=null){var _0x56f7x7=_0x56f7x9[0];var _0x56f7xd=_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[242]](_0x56f7x7);if(_0x56f7xd!=null){_0x56f7xd=_0x56f7xd[_0x2c8f[123]]();_0x56f7xd[_0x2c8f[125]]=_0x56f7x23;_0x56f7xd[_0x2c8f[126]]=_0x56f7x24;_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[128]](_0x56f7x7,_0x56f7xd)}}}}finally{_0x56f7x5[_0x2c8f[102]]()[_0x2c8f[107]]()};if(_0x56f7x25!=null){_0x56f7x5[_0x2c8f[59]](_0x56f7x25);_0x56f7x5[_0x2c8f[243]](_0x56f7x25[0])}}var _0x56f7xc=_0x2c8f[95];var _0x56f7xb=_0x56f7x5[_0x2c8f[110]]()[_0x2c8f[109]](_0x56f7x5[_0x2c8f[93]]());if(_0x56f7xb!=null){_0x56f7xc=_0x56f7xb[_0x2c8f[113]][mxConstants[_0x2c8f[244]]]||_0x56f7xc};_0x56f7xc=mxUtils[_0x2c8f[97]](mxResources[_0x2c8f[26]](_0x2c8f[96])+_0x2c8f[118]+mxResources[_0x2c8f[26]](_0x2c8f[245])+_0x2c8f[218],_0x56f7xc);if(_0x56f7xc!=null){if(_0x56f7xc[_0x2c8f[103]]>0){var _0x56f7x27= new Image();_0x56f7x27[_0x2c8f[246]]=function(){_0x56f7x22(_0x56f7xc,_0x56f7x27[_0x2c8f[125]],_0x56f7x27[_0x2c8f[126]])};_0x56f7x27[_0x2c8f[247]]=function(){mxUtils[_0x2c8f[249]](mxResources[_0x2c8f[26]](_0x2c8f[248]))};_0x56f7x27[_0x2c8f[250]]=_0x56f7xc}}})};Actions[_0x2c8f[4]][_0x2c8f[10]]=function(_0x56f7x1b,_0x56f7x28,_0x56f7x29,_0x56f7x2a,_0x56f7x2b){return this[_0x2c8f[28]](_0x56f7x1b, new Action(mxResources[_0x2c8f[26]](_0x56f7x1b),_0x56f7x28,_0x56f7x29,_0x56f7x2a,_0x56f7x2b))};Actions[_0x2c8f[4]][_0x2c8f[28]]=function(_0x56f7x2c,_0x56f7x15){this[_0x2c8f[2]][_0x56f7x2c]=_0x56f7x15;return _0x56f7x15};Actions[_0x2c8f[4]][_0x2c8f[26]]=function(_0x56f7x2c){return this[_0x2c8f[2]][_0x56f7x2c]};function Action(_0x56f7x2e,_0x56f7x28,_0x56f7x29,_0x56f7x2a,_0x56f7x2b){mxEventSource[_0x2c8f[251]](this);this[_0x2c8f[252]]=_0x56f7x2e;this[_0x2c8f[146]]=_0x56f7x28;this[_0x2c8f[253]]=(_0x56f7x29!=null)?_0x56f7x29:true;this[_0x2c8f[254]]=_0x56f7x2a;this[_0x2c8f[255]]=_0x56f7x2b}mxUtils[_0x2c8f[256]](Action,mxEventSource);Action[_0x2c8f[4]][_0x2c8f[177]]=function(_0x56f7xc){if(this[_0x2c8f[253]]!=_0x56f7xc){this[_0x2c8f[253]]=_0x56f7xc;this[_0x2c8f[258]]( new mxEventObject(_0x2c8f[257]))}};Action[_0x2c8f[4]][_0x2c8f[169]]=function(_0x56f7xc){this[_0x2c8f[259]]=_0x56f7xc};Action[_0x2c8f[4]][_0x2c8f[170]]=function(_0x56f7x28){this[_0x2c8f[260]]=_0x56f7x28};Action[_0x2c8f[4]][_0x2c8f[261]]=function(){return this[_0x2c8f[260]]()}
\ No newline at end of file
index 11d6772..c73cd1a 100644 (file)
@@ -1,1152 +1 @@
-'use strict';
-/**
- * $Id: Dialogs.js,v 1.5 2013-01-29 17:23:31 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Constructs a new dialog.
- */
-
-function createCheckbox(value) {
-       var input = document.createElement('input');
-       input.setAttribute('type', 'checkbox');
-       if (value) {
-               input.setAttribute('checked', true);
-       }
-       return input;
-}
-
-function createDropdownFromApi(path, value, option_name, option_value, editorUi, paginated) {
-       var req = new XMLHttpRequest();
-       req.open('GET', path, false); // `false` makes the request synchronous
-       req.setRequestHeader('Authorization', 'Bearer ' + editorUi.editor.data.token);
-       req.send(null);
-       var res = [];
-       if (req.status === 200) {
-               res = JSON.parse(req.response);
-       }
-       var input = document.createElement('select');
-       var option = document.createElement('option');
-       option.text = '-- None --';
-       option.value = '0';
-       input.appendChild(option);
-       var selectValues = paginated ? res.rows : res;
-       selectValues.forEach(function(elem) {
-               option = document.createElement('option');
-               option.text = elem[option_name];
-               option.value = elem[option_value];
-               option.selected = (elem[option_value] == value);
-               input.appendChild(option);
-       });
-       input.className = 'form-control select2';
-
-       return input;
-}
-
-function createGroupedDropdownFromApi(path, value, option_name, option_value, editorUi, paginated, associationField) {
-       var req = new XMLHttpRequest();
-       req.open('GET', path, false); // `false` makes the request synchronous
-       req.setRequestHeader('Authorization', 'Bearer ' + editorUi.editor.data.token);
-       req.send(null);
-       var res = [];
-       if (req.status === 200) {
-               res = JSON.parse(req.response);
-       }
-       var input = document.createElement('select');
-       var option = document.createElement('option');
-       option.text = '-- None --';
-       option.value = '0';
-       input.appendChild(option);
-       var selectValues = paginated ? res.rows : res;
-       var mainFilter = {};
-       var groupFilter = {};
-       mainFilter[associationField] = null;
-       var mainValues = _.filter(selectValues, mainFilter);
-       var groupValues = {};
-       mainValues.forEach(function(elem) {
-               option = document.createElement('option');
-               option.className = 'select-group-father';
-               option.text = elem[option_name].toUpperCase();
-               option.value = elem[option_value];
-               option.selected = (elem[option_value] == value);
-               input.appendChild(option);
-               groupFilter[associationField] = elem[option_value];
-               groupValues = _.filter(selectValues, groupFilter);
-               groupValues.forEach(function(elem) {
-                       option = document.createElement('option');
-                       option.className = 'select-group-son';
-                       option.text = '-' + _.capitalize(elem[option_name]);
-                       option.value = elem[option_value];
-                       option.selected = (elem[option_value] == value);
-                       input.appendChild(option);
-               });
-       })
-       input.className = 'form-control select2';
-
-       return input;
-}
-
-function createDropdownFromArray(array, value) {
-       var input = document.createElement('select');
-
-       for (var item in array) {
-               var option = document.createElement('option');
-               option.text = array[item];
-               option.value = item;
-               if (value > 0 || value != '')
-                       option.selected = (value === item) ? true : false;
-
-               input.appendChild(option);
-       }
-
-       input.className = 'form-control select2';
-
-       return input;
-}
-
-function Dialog(editorUi, elt, w, h, modal, closable, onClose) {
-       var dx = 0;
-
-       if (mxClient.IS_IE && document.documentMode != 9) {
-               dx = 60;
-       }
-
-       w += dx;
-       h += dx;
-
-       var left = Math.max(0, Math.round((document.body.scrollWidth - w) / 2));
-       var top = Math.max(0, Math.round((Math.max(document.body.scrollHeight,
-               document.documentElement.scrollHeight) - h) / 3));
-
-       var div = editorUi.createDiv('geDialog');
-       div.className = 'modal fade in center';
-       div.style.display = 'block';
-       div.style.paddingRight = '12px';
-       // div.style.width = w + 'px';
-       // div.style.height = h + 'px';
-       // div.style.left = left + 'px';
-       // div.style.top = top + 'px';
-
-       var divModalDialog = editorUi.createDiv('geModalDialog');
-       divModalDialog.className = 'modal-dialog';
-       divModalDialog.appendChild(elt);
-       div.appendChild(divModalDialog);
-
-       if (this.bg == null) {
-               this.bg = editorUi.createDiv('background');
-               this.bg.className = 'modal-backdrop fade in';
-
-               if (mxClient.IS_QUIRKS) {
-                       new mxDivResizer(this.bg);
-               }
-       }
-
-       if (modal) {
-               document.body.appendChild(this.bg);
-       }
-
-       document.body.appendChild(div);
-
-       this.onDialogClose = onClose;
-       this.container = div;
-};
-
-/**
- * Removes the dialog from the DOM.
- */
-Dialog.prototype.close = function() {
-       if (this.onDialogClose != null) {
-               this.onDialogClose();
-               this.onDialogClose = null;
-       }
-
-       this.container.parentNode.removeChild(this.container);
-       this.bg.parentNode.removeChild(this.bg);
-};
-
-/**
- * Constructs a new open dialog.
- */
-function ImportDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('import') + ' XML');
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-12');
-
-       var textarea = document.createElement('textarea');
-       textarea.style.width = '100%';
-       textarea.style.height = '374px';
-
-       var input = document.createElement('input');
-       input.type = 'file';
-       input.setAttribute('accept', 'text/xml');
-
-       input.addEventListener('change', function readSingleFile(evt) {
-               //Retrieve the first (and only!) File from the FileList object
-               var f = evt.target.files[0];
-               console.log(f);
-               if (f) {
-                       if (f.type === 'text/xml') {
-                               var r = new FileReader();
-                               r.onload = function(e) {
-                                       var contents = e.target.result;
-                                       mxUtils.write(textarea, contents);
-                               };
-                               r.readAsText(f);
-                       } else {
-                               alert('Failed to load format file');
-                       }
-               } else {
-                       alert('Failed to load file');
-               }
-       }, false);
-
-       col1.appendChild(input);
-       col1.appendChild(textarea);
-
-       row.appendChild(col1);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('import'), mxUtils.bind(this,
-               function(data) {
-                       var doc = mxUtils.parseXml(textarea.value);
-                       editorUi.editor.setGraphXml(doc.documentElement);
-                       editorUi.hideDialog();
-               }));
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-
-};
-
-/**
- * Constructs a new about dialog.
- */
-function AboutDialog(editorUi) {
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('about') + ' Cally Square');
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var img = document.createElement('img');
-       img.style.border = '0px';
-       img.setAttribute('width', '176');
-       img.setAttribute('width', '151');
-       img.setAttribute('src', IMAGE_PATH + '/logo.png');
-       body.appendChild(img);
-       mxUtils.br(body);
-       mxUtils.write(body, 'Powered by Xenialab ' + mxClient.VERSION);
-       mxUtils.br(body);
-       var link = document.createElement('a');
-       link.setAttribute('href', 'http://www.callysquare.com/');
-       link.setAttribute('target', '_blank');
-       mxUtils.write(link, 'www.callysquare.com');
-       body.appendChild(link);
-       mxUtils.br(body);
-       mxUtils.br(body);
-       //--- END BODY
-
-       var close = mxUtils.button(mxResources.get('close'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-};
-
-/**
- * Constructs a new save dialog.
- */
-function SaveDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('saveAs'));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var name = 'name';
-       var id = '_' + name;
-       var value = editorUi.editor.getOrCreateFilename();
-
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-4');
-       var col2 = editorUi.createDiv('col-md-8');
-
-       var label = document.createElement('label');
-       label.className = 'control-label pull-right';
-       mxUtils.write(label, mxResources.get(name));
-       col1.appendChild(label);
-
-       var select = document.createElement('input');
-       select.setAttribute('value', value + '_copy');
-       select.setAttribute('id', id)
-       select.className = 'form-control';
-       col2.appendChild(select);
-
-       row.appendChild(col1);
-       row.appendChild(col2);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('save'), function() {
-               editorUi.saveAs(select.value);
-               editorUi.hideDialog();
-       });
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-       //nameInput.setAttribute('value', editorUi.editor.getOrCreateFilename());
-};
-
-/**
- * Constructs a new save dialog.
- */
-function NewDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('new'));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var name = 'name';
-       var id = '_' + name;
-       var value = editorUi.editor.getOrCreateFilename();
-
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-4');
-       var col2 = editorUi.createDiv('col-md-8');
-
-       var label = document.createElement('label');
-       label.className = 'control-label pull-right';
-       mxUtils.write(label, mxResources.get(name));
-       col1.appendChild(label);
-
-       var select = document.createElement('input');
-       select.setAttribute('value', value + '_new');
-       select.setAttribute('id', id)
-       select.className = 'form-control';
-       col2.appendChild(select);
-
-       row.appendChild(col1);
-       row.appendChild(col2);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('new'), function() {
-               editorUi.new(select.value);
-               editorUi.hideDialog();
-       });
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-       //nameInput.setAttribute('value', editorUi.editor.getOrCreateFilename());
-};
-
-/**
- * Constructs a new save dialog.
- */
-function VariableDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('variable'));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var name = 'name';
-       var id = '_' + name;
-       var value = editorUi.editor.getOrCreateFilename();
-
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-4');
-       var col2 = editorUi.createDiv('col-md-8');
-
-       var label = document.createElement('label');
-       label.className = 'control-label pull-right';
-       mxUtils.write(label, mxResources.get(name));
-       col1.appendChild(label);
-
-       var select = document.createElement('input');
-       select.setAttribute('value', 'variable name');
-       select.setAttribute('id', id)
-       select.className = 'form-control';
-       col2.appendChild(select);
-
-       row.appendChild(col1);
-       row.appendChild(col2);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('new'), function() {
-               editorUi.variable(select.value);
-               editorUi.hideDialog();
-       });
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-       //nameInput.setAttribute('value', editorUi.editor.getOrCreateFilename());
-};
-
-/**
- * Constructs a new save dialog.
- */
-function OpenDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('open'));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-4');
-       var col2 = editorUi.createDiv('col-md-8');
-
-       var label = document.createElement('label');
-       label.className = 'control-label pull-right';
-       mxUtils.write(label, mxResources.get('name'));
-       col1.appendChild(label);
-
-       var req = new XMLHttpRequest();
-       req.open('GET', '/api/jscripty/projects', false); // `false` makes the request synchronous
-       req.setRequestHeader('Authorization', 'Bearer ' + editorUi.editor.data.token);
-       req.send(null);
-       var res = [];
-       if (req.status === 200) {
-               res = JSON.parse(req.response);
-       }
-
-       var select = document.createElement('select');
-
-       for (var j = 0; j < res.length; j++) {
-               var option = document.createElement('option');
-               option.text = res[j].name;
-               option.value = res[j].id;
-               select.appendChild(option);
-       }
-       select.className = 'form-control';
-       col2.appendChild(select);
-
-       row.appendChild(col1);
-       row.appendChild(col2);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('open'), function() {
-               console.log(select);
-               console.log(select.value);
-               window.open('jscripty/project/' + select.value, '_blank');
-               editorUi.hideDialog();
-       });
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-       //nameInput.setAttribute('value', editorUi.editor.getOrCreateFilename());
-};
-
-/**
- * Constructs a new rename dialog.
- */
-function RenameDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('rename'));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-4');
-       var col2 = editorUi.createDiv('col-md-8');
-
-       var label = document.createElement('label');
-       label.className = 'control-label pull-right';
-       mxUtils.write(label, mxResources.get('name'));
-       col1.appendChild(label);
-       var name = editorUi.editor.filename;
-       var input = document.createElement('input');
-       input.setAttribute('value', name);
-       input.className = 'form-control';
-
-       col2.appendChild(input);
-
-       row.appendChild(col1);
-       row.appendChild(col2);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('save'), function() {
-               var req = new XMLHttpRequest();
-
-               req.open("PUT", SAVE_URL + editorUi.editor.data.id, true);
-               req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-               req.setRequestHeader('Authorization', 'Bearer ' + editorUi.editor.data.token);
-               req.send('name=' + input.value);
-
-               req.onload = function(e) {
-                       if (req.status === 200) {
-                               editorUi.editor.setStatus('Project successfully renamed');
-                               editorUi.editor.filename = input.value;
-
-                       } else {
-                               editorUi.editor.setStatus(JSON.parse(req.response).errors[0].message)
-                       }
-               }
-               req.onerror = function(e) {
-                       mxUtils.alert(req.statusText);
-               };
-               editorUi.hideDialog();
-       });
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-       //nameInput.setAttribute('value', editorUi.editor.getOrCreateFilename());
-};
-/**
- * Constructs a new edit file dialog.
- */
-function EditFileDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('edit'));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-12');
-
-       var textarea = document.createElement('textarea');
-       textarea.style.width = '100%';
-       textarea.style.height = '374px';
-       textarea.value = mxUtils.getPrettyXml(editorUi.editor.getGraphXml());
-
-       // Enables dropping files
-       if (fileSupport) {
-               function handleDrop(evt) {
-                       evt.stopPropagation();
-                       evt.preventDefault();
-
-                       if (evt.dataTransfer.files.length > 0) {
-                               var file = evt.dataTransfer.files[0];
-
-                               var reader = new FileReader();
-                               reader.onload = function(e) {
-                                       textarea.value = e.target.result;
-                               };
-                               reader.readAsText(file);
-                       }
-               };
-
-               function handleDragOver(evt) {
-                       evt.stopPropagation();
-                       evt.preventDefault();
-               };
-
-               // Setup the dnd listeners.
-               textarea.addEventListener('dragover', handleDragOver, false);
-               textarea.addEventListener('drop', handleDrop, false);
-       }
-       col1.appendChild(textarea);
-
-       row.appendChild(col1);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('save'), function() {
-               var doc = mxUtils.parseXml(textarea.value);
-               editorUi.editor.setGraphXml(doc.documentElement);
-               editorUi.hideDialog();
-       });
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-};
-
-/**
- * Constructs a new export dialog.
- */
-function ExportDialog(editorUi) {
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body form');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('export') + ' XML');
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var form = editorUi.createDiv('form-horizontal form-row-seperated');
-       var group = editorUi.createDiv('form-group last');
-
-       var label = document.createElement('label');
-       label.className = 'col-sm-4 control-label';
-       mxUtils.write(label, mxResources.get('filename'));
-
-       var input = document.createElement('input');
-       input.setAttribute('value', editorUi.editor.getOrCreateFilename());
-       input.className = 'form-control';
-
-       var div = editorUi.createDiv('col-sm-8');
-       div.appendChild(input);
-
-       group.appendChild(label);
-       group.appendChild(div);
-       form.appendChild(group);
-
-       body.appendChild(form);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('export'), mxUtils.bind(this,
-               function(data) {
-                       editorUi.save(false);
-
-                       var xml = encodeURIComponent(mxUtils.getXml(editorUi.editor.getGraphXml()));
-                       new mxXmlRequest(SAVE_URL + editorUi.editor.data.id + '/download',
-                               'filename=' + input.value, 'GET').simulate(document, "_blank");
-                       editorUi.hideDialog();
-               }));
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-};
-
-/**
- * Giuseppe Careri
- * Constructs a new general dialog.
- */
-
-function GeneralDialog(editorUi, cell) {
-       var graph = editorUi.editor.graph;
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body form modal-body-scroll');
-       var footer = editorUi.createDiv('modal-footer');
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('edit') + ' ' + mxResources.get(cell.value
-               .nodeName));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var inputGroup = editorUi.createDiv('form-horizontal form-row-seperated');
-       inputGroup.setAttribute('id', 'inputGroup');
-       var length = cell.value.attributes.length;
-       var form = editorUi.createDiv('form-horizontal form-row-seperated');
-
-       for (var i = 0; i < length; i++) {
-               var name = cell.value.attributes[i].name;
-               var id = '_' + name;
-               var value = cell.value.attributes[i].value;
-
-               var group = editorUi.createDiv((i == length - 1) ? 'form-group last' :
-                       'form-group');
-
-               var label = document.createElement('label');
-               label.className = 'col-sm-4 control-label';
-               mxUtils.write(label, mxResources.get(name));
-               group.appendChild(label);
-
-               var input;
-
-               switch (name) {
-
-                       case 'Text':
-                               input = document.createElement('textarea');
-                               input.innerHTML = value;
-                               input.className = 'form-control';
-                               break;
-                       case 'Body':
-                               input = document.createElement('textarea');
-                               input.innerHTML = value;
-                               input.className = 'form-control';
-                               break;
-                       case 'question':
-                               input = document.createElement('textarea');
-                               input.innerHTML = value;
-                               input.className = 'form-control';
-
-                               break;
-                       case 'other':
-                               input = document.createElement('input');
-                               input.setAttribute('value', value);
-                               input.setAttribute('placeholder', 'Insert label for "Other" answer option');
-                               input.className = 'form-control';
-                               break;
-                               // case 'addtext':
-                               //      var input = document.createElement('input');
-                               //      input.setAttribute('type', 'checkbox');
-                               //      console.log('value', value);
-                               //      if (value == 'true') {
-                               //              input.setAttribute('checked', true);
-                               //
-                               //      } else {
-                               //              input.removeAttribute("checked");
-                               //
-                               //      }
-                               //      // input.value = input.checked;
-                               //
-                               //      input.onclick = function() {
-                               //              this.value = this.checked;
-                               //
-                               //              console.log(input);
-                               //              if (this.checked) {
-                               //                      console.log(this.checked);
-                               //                      var rowdiv = editorUi.createDiv('form-group');
-                               //                      rowdiv.setAttribute('id', 'rowdiv');
-                               //                      var col1 = editorUi.createDiv('col-md-4');
-                               //                      var col2 = editorUi.createDiv('col-md-8');
-                               //                      var label = document.createElement('label');
-                               //                      // input.setAttribute('placeholder', 'Insert label');
-                               //                      label.className = 'pull-right control-label';
-                               //                      mxUtils.write(label, 'Texarea Label');
-                               //                      col1.appendChild(label);
-                               //                      var input = document.createElement('input');
-                               //                      // input.setAttribute('placeholder', 'Insert label');
-                               //                      // input.value = inputValue;
-                               //                      input.className = 'form-control';
-                               //                      col2.appendChild(input);
-                               //                      rowdiv.appendChild(col1);
-                               //                      rowdiv.appendChild(col2);
-                               //                      inputGroup.appendChild(rowdiv);
-                               //                      body.appendChild(inputGroup);
-                               //              } else {
-                               //                      console.log(this.checked);
-                               //                      document.getElementById('inputGroup').removeChild(document.getElementById('rowdiv'));
-                               //              }
-                               //      };
-                               //
-                               //
-                               //      input.className = 'btn green';
-                               //      break;
-                       case 'add':
-                               var input = mxUtils.button('+', function() {
-                                       var rowdiv = createDynamicInput(null, null, editorUi);
-                                       inputGroup.appendChild(rowdiv);
-                                       body.appendChild(inputGroup);
-                               })
-
-                               input.className = 'btn green';
-                               break;
-                       default:
-                               input = document.createElement('input');
-                               input.setAttribute('value', value);
-                               input.className = 'form-control';
-                               break;
-               }
-
-               input.setAttribute('id', id)
-               var div = editorUi.createDiv('col-sm-8');
-               div.appendChild(input);
-               // Help
-               if (mxResources.get('help_' + name)) {
-                       var help = editorUi.createDiv('p');
-                       help.className = 'help-block';
-                       mxUtils.write(help, mxResources.get('help_' + name));
-                       div.appendChild(help);
-               }
-
-               group.appendChild(div);
-               form.appendChild(group);
-       }
-       body.appendChild(form);
-       // console.log(cell);
-       if (cell.value.nodeName == 'input') {
-
-               if (cell.children) {
-                       for (var j = 0; j < cell.children.length; j++) {
-                               var selectValue = '';
-                               var inputValue = '';
-                               _.forEach(cell.children[j].value.attributes, function(element) {
-                                       // console.log(element);
-                                       if (element.name == 'type') {
-                                               selectValue = element.value;
-
-                                       } else if (element.name == 'label') {
-                                               inputValue = element.value;
-
-                                       }
-                               })
-                               var rowdiv = createDynamicInput(selectValue, inputValue, editorUi);
-                               inputGroup.appendChild(rowdiv);
-
-                       }
-               }
-
-       }
-       body.appendChild(inputGroup);
-
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('save'), mxUtils.bind(this,
-               function(data) {
-                       for (var i = 0; i < cell.value.attributes.length; i++) {
-                               var id = '_' + cell.value.attributes[i].name;
-                               var name = cell.value.attributes[i].name;
-                               console.log(name);
-
-                               cell.setAttribute(name, document.getElementById(id).value);
-                               console.log(document.getElementById(id).value);
-
-
-                       };
-
-                       if (cell.value.nodeName == 'input') {
-                               if (graph.model.getChildCount(cell)) {
-                                       cell.children = [];
-                               }
-                               if (document.getElementById('inputGroup')) {
-                                       var inputGroup = document.getElementById('inputGroup').children;
-                                       for (var j = 0; j < inputGroup.length; j++) {
-
-                                               var divSelect = inputGroup[j].children[1];
-                                               var divInput = inputGroup[j].children[0];
-                                               var doc = mxUtils.createXmlDocument();
-                                               var node = doc.createElement('inputGroup');
-                                               node.setAttribute('type', inputGroup[j].getElementsByTagName('select')[0].value);
-                                               node.setAttribute('label', inputGroup[j].getElementsByTagName('input')[0].value);
-                                               var cells = new mxCell(node);
-                                               graph.model.add(cell, cells);
-                                       }
-                               }
-                       }
-
-                       graph.refresh(cell);
-                       editorUi.hideDialog();
-               }));
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-};
-
-
-
-function createDynamicInput(selectValue, inputValue, editorUi) {
-
-       var rowdiv = editorUi.createDiv('form-group');
-       var col1 = editorUi.createDiv('col-md-5');
-       var col2 = editorUi.createDiv('col-md-5');
-       var col3 = editorUi.createDiv('col-md-2');
-
-       var input = document.createElement('input');
-       input.setAttribute('placeholder', 'Insert label');
-       input.value = inputValue;
-       input.className = 'form-control';
-       col1.appendChild(input);
-
-       var select = document.createElement('select');
-       var option = document.createElement('option');
-       option.text = '-- None --';
-       option.value = '';
-       select.appendChild(option);
-
-       var selectValues = ['text', 'number', 'textarea', 'checkbox'];
-       selectValues.forEach(function(elem) {
-               option = document.createElement('option');
-               option.text = elem;
-               option.value = elem;
-               option.selected = (elem == selectValue);
-               select.appendChild(option);
-       })
-       select.className = 'form-control';
-       col2.appendChild(select);
-       var button = mxUtils.button('x', function() {
-               var buttonParent = button.parentElement;
-               var divParent = buttonParent.parentElement;
-               document.getElementById('inputGroup').removeChild(divParent);
-       })
-
-       button.className = 'btn red';
-       col3.appendChild(button);
-       rowdiv.appendChild(col1);
-       rowdiv.appendChild(col2);
-       rowdiv.appendChild(col3);
-       return rowdiv;
-
-
-}
+var _0xd803=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x6E\x70\x75\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x79\x70\x65","\x63\x68\x65\x63\x6B\x62\x6F\x78","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x68\x65\x63\x6B\x65\x64","\x47\x45\x54","\x6F\x70\x65\x6E","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x64\x61\x74\x61","\x65\x64\x69\x74\x6F\x72","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x73\x65\x6C\x65\x63\x74","\x6F\x70\x74\x69\x6F\x6E","\x74\x65\x78\x74","\x2D\x2D\x20\x4E\x6F\x6E\x65\x20\x2D\x2D","\x76\x61\x6C\x75\x65","\x30","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x72\x6F\x77\x73","\x73\x65\x6C\x65\x63\x74\x65\x64","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x66\x6F\x72\x6D\x2D\x63\x6F\x6E\x74\x72\x6F\x6C\x20\x73\x65\x6C\x65\x63\x74\x32","\x66\x69\x6C\x74\x65\x72","\x73\x65\x6C\x65\x63\x74\x2D\x67\x72\x6F\x75\x70\x2D\x66\x61\x74\x68\x65\x72","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x73\x65\x6C\x65\x63\x74\x2D\x67\x72\x6F\x75\x70\x2D\x73\x6F\x6E","\x2D","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x73\x63\x72\x6F\x6C\x6C\x57\x69\x64\x74\x68","\x62\x6F\x64\x79","\x72\x6F\x75\x6E\x64","\x6D\x61\x78","\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x44\x69\x61\x6C\x6F\x67","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x6D\x6F\x64\x61\x6C\x20\x66\x61\x64\x65\x20\x69\x6E\x20\x63\x65\x6E\x74\x65\x72","\x64\x69\x73\x70\x6C\x61\x79","\x73\x74\x79\x6C\x65","\x62\x6C\x6F\x63\x6B","\x70\x61\x64\x64\x69\x6E\x67\x52\x69\x67\x68\x74","\x31\x32\x70\x78","\x67\x65\x4D\x6F\x64\x61\x6C\x44\x69\x61\x6C\x6F\x67","\x6D\x6F\x64\x61\x6C\x2D\x64\x69\x61\x6C\x6F\x67","\x62\x67","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x6D\x6F\x64\x61\x6C\x2D\x62\x61\x63\x6B\x64\x72\x6F\x70\x20\x66\x61\x64\x65\x20\x69\x6E","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x6E\x44\x69\x61\x6C\x6F\x67\x43\x6C\x6F\x73\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x6C\x6F\x73\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x64\x61\x6C\x2D\x63\x6F\x6E\x74\x65\x6E\x74","\x6D\x6F\x64\x61\x6C\x2D\x68\x65\x61\x64\x65\x72","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79","\x6D\x6F\x64\x61\x6C\x2D\x66\x6F\x6F\x74\x65\x72","\x68\x34","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x69\x6D\x70\x6F\x72\x74","\x67\x65\x74","\x20\x58\x4D\x4C","\x77\x72\x69\x74\x65","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x62\x75\x74\x74\x6F\x6E","\x72\x6F\x77","\x63\x6F\x6C\x2D\x6D\x64\x2D\x31\x32","\x74\x65\x78\x74\x61\x72\x65\x61","\x77\x69\x64\x74\x68","\x31\x30\x30\x25","\x68\x65\x69\x67\x68\x74","\x33\x37\x34\x70\x78","\x66\x69\x6C\x65","\x61\x63\x63\x65\x70\x74","\x74\x65\x78\x74\x2F\x78\x6D\x6C","\x63\x68\x61\x6E\x67\x65","\x66\x69\x6C\x65\x73","\x74\x61\x72\x67\x65\x74","\x6C\x6F\x67","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x73\x75\x6C\x74","\x72\x65\x61\x64\x41\x73\x54\x65\x78\x74","\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6C\x6F\x61\x64\x20\x66\x6F\x72\x6D\x61\x74\x20\x66\x69\x6C\x65","\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6C\x6F\x61\x64\x20\x66\x69\x6C\x65","\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x62\x69\x6E\x64","\x62\x74\x6E\x20\x62\x6C\x75\x65","\x63\x61\x6E\x63\x65\x6C","\x62\x74\x6E\x20\x64\x65\x66\x61\x75\x6C\x74","\x61\x62\x6F\x75\x74","\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x69\x6D\x67","\x62\x6F\x72\x64\x65\x72","\x30\x70\x78","\x31\x37\x36","\x31\x35\x31","\x73\x72\x63","\x2F\x6C\x6F\x67\x6F\x2E\x70\x6E\x67","\x62\x72","\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x58\x65\x6E\x69\x61\x6C\x61\x62\x20","\x56\x45\x52\x53\x49\x4F\x4E","\x61","\x68\x72\x65\x66","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65\x2E\x63\x6F\x6D\x2F","\x5F\x62\x6C\x61\x6E\x6B","\x77\x77\x77\x2E\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65\x2E\x63\x6F\x6D","\x73\x61\x76\x65\x41\x73","\x6E\x61\x6D\x65","\x5F","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x63\x6F\x6C\x2D\x6D\x64\x2D\x34","\x63\x6F\x6C\x2D\x6D\x64\x2D\x38","\x6C\x61\x62\x65\x6C","\x63\x6F\x6E\x74\x72\x6F\x6C\x2D\x6C\x61\x62\x65\x6C\x20\x70\x75\x6C\x6C\x2D\x72\x69\x67\x68\x74","\x5F\x63\x6F\x70\x79","\x69\x64","\x66\x6F\x72\x6D\x2D\x63\x6F\x6E\x74\x72\x6F\x6C","\x73\x61\x76\x65","\x6E\x65\x77","\x5F\x6E\x65\x77","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x6E\x61\x6D\x65","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x72\x65\x6E\x61\x6D\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x50\x55\x54","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x6E\x61\x6D\x65\x3D","\x50\x72\x6F\x6A\x65\x63\x74\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6C\x6C\x79\x20\x72\x65\x6E\x61\x6D\x65\x64","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x6D\x65\x73\x73\x61\x67\x65","\x65\x72\x72\x6F\x72\x73","\x6F\x6E\x65\x72\x72\x6F\x72","\x73\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x61\x6C\x65\x72\x74","\x65\x64\x69\x74","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E","\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74","\x64\x61\x74\x61\x54\x72\x61\x6E\x73\x66\x65\x72","\x64\x72\x61\x67\x6F\x76\x65\x72","\x64\x72\x6F\x70","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D","\x65\x78\x70\x6F\x72\x74","\x66\x6F\x72\x6D\x2D\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x20\x66\x6F\x72\x6D\x2D\x72\x6F\x77\x2D\x73\x65\x70\x65\x72\x61\x74\x65\x64","\x66\x6F\x72\x6D\x2D\x67\x72\x6F\x75\x70\x20\x6C\x61\x73\x74","\x63\x6F\x6C\x2D\x73\x6D\x2D\x34\x20\x63\x6F\x6E\x74\x72\x6F\x6C\x2D\x6C\x61\x62\x65\x6C","\x63\x6F\x6C\x2D\x73\x6D\x2D\x38","\x67\x65\x74\x58\x6D\x6C","\x73\x69\x6D\x75\x6C\x61\x74\x65","\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D","\x67\x72\x61\x70\x68","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D\x20\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x2D\x73\x63\x72\x6F\x6C\x6C","\x20","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x69\x6E\x70\x75\x74\x47\x72\x6F\x75\x70","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x6F\x72\x6D\x2D\x67\x72\x6F\x75\x70","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x54\x65\x78\x74","\x42\x6F\x64\x79","\x71\x75\x65\x73\x74\x69\x6F\x6E","\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72","\x49\x6E\x73\x65\x72\x74\x20\x6C\x61\x62\x65\x6C\x20\x66\x6F\x72\x20\x22\x4F\x74\x68\x65\x72\x22\x20\x61\x6E\x73\x77\x65\x72\x20\x6F\x70\x74\x69\x6F\x6E","\x6F\x74\x68\x65\x72","\x2B","\x62\x74\x6E\x20\x67\x72\x65\x65\x6E","\x61\x64\x64","\x68\x65\x6C\x70\x5F","\x70","\x68\x65\x6C\x70\x2D\x62\x6C\x6F\x63\x6B","\x63\x68\x69\x6C\x64\x72\x65\x6E","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x6D\x6F\x64\x65\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x73\x42\x79\x54\x61\x67\x4E\x61\x6D\x65","\x72\x65\x66\x72\x65\x73\x68","\x63\x6F\x6C\x2D\x6D\x64\x2D\x35","\x63\x6F\x6C\x2D\x6D\x64\x2D\x32","\x49\x6E\x73\x65\x72\x74\x20\x6C\x61\x62\x65\x6C","\x6E\x75\x6D\x62\x65\x72","\x78","\x70\x61\x72\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x62\x74\x6E\x20\x72\x65\x64"];_0xd803[0];function createCheckbox(_0x9469x2){var _0x9469x3=document[_0xd803[2]](_0xd803[1]);_0x9469x3[_0xd803[5]](_0xd803[3],_0xd803[4]);if(_0x9469x2){_0x9469x3[_0xd803[5]](_0xd803[6],true)};return _0x9469x3}function createDropdownFromApi(_0x9469x5,_0x9469x2,_0x9469x6,_0x9469x7,_0x9469x8,_0x9469x9){var _0x9469xa= new XMLHttpRequest();_0x9469xa[_0xd803[8]](_0xd803[7],_0x9469x5,false);_0x9469xa[_0xd803[14]](_0xd803[9],_0xd803[10]+_0x9469x8[_0xd803[13]][_0xd803[12]][_0xd803[11]]);_0x9469xa[_0xd803[15]](null);var _0x9469xb=[];if(_0x9469xa[_0xd803[16]]===200){_0x9469xb=JSON[_0xd803[18]](_0x9469xa[_0xd803[17]])};var _0x9469x3=document[_0xd803[2]](_0xd803[19]);var _0x9469xc=document[_0xd803[2]](_0xd803[20]);_0x9469xc[_0xd803[21]]=_0xd803[22];_0x9469xc[_0xd803[23]]=_0xd803[24];_0x9469x3[_0xd803[25]](_0x9469xc);var _0x9469xd=_0x9469x9?_0x9469xb[_0xd803[26]]:_0x9469xb;_0x9469xd[_0xd803[28]](function(_0x9469xe){_0x9469xc=document[_0xd803[2]](_0xd803[20]);_0x9469xc[_0xd803[21]]=_0x9469xe[_0x9469x6];_0x9469xc[_0xd803[23]]=_0x9469xe[_0x9469x7];_0x9469xc[_0xd803[27]]=(_0x9469xe[_0x9469x7]==_0x9469x2);_0x9469x3[_0xd803[25]](_0x9469xc)});_0x9469x3[_0xd803[29]]=_0xd803[30];return _0x9469x3}function createGroupedDropdownFromApi(_0x9469x5,_0x9469x2,_0x9469x6,_0x9469x7,_0x9469x8,_0x9469x9,_0x9469x10){var _0x9469xa= new XMLHttpRequest();_0x9469xa[_0xd803[8]](_0xd803[7],_0x9469x5,false);_0x9469xa[_0xd803[14]](_0xd803[9],_0xd803[10]+_0x9469x8[_0xd803[13]][_0xd803[12]][_0xd803[11]]);_0x9469xa[_0xd803[15]](null);var _0x9469xb=[];if(_0x9469xa[_0xd803[16]]===200){_0x9469xb=JSON[_0xd803[18]](_0x9469xa[_0xd803[17]])};var _0x9469x3=document[_0xd803[2]](_0xd803[19]);var _0x9469xc=document[_0xd803[2]](_0xd803[20]);_0x9469xc[_0xd803[21]]=_0xd803[22];_0x9469xc[_0xd803[23]]=_0xd803[24];_0x9469x3[_0xd803[25]](_0x9469xc);var _0x9469xd=_0x9469x9?_0x9469xb[_0xd803[26]]:_0x9469xb;var _0x9469x11={};var _0x9469x12={};_0x9469x11[_0x9469x10]=null;var _0x9469x13=_[_0xd803[31]](_0x9469xd,_0x9469x11);var _0x9469x14={};_0x9469x13[_0xd803[28]](function(_0x9469xe){_0x9469xc=document[_0xd803[2]](_0xd803[20]);_0x9469xc[_0xd803[29]]=_0xd803[32];_0x9469xc[_0xd803[21]]=_0x9469xe[_0x9469x6][_0xd803[33]]();_0x9469xc[_0xd803[23]]=_0x9469xe[_0x9469x7];_0x9469xc[_0xd803[27]]=(_0x9469xe[_0x9469x7]==_0x9469x2);_0x9469x3[_0xd803[25]](_0x9469xc);_0x9469x12[_0x9469x10]=_0x9469xe[_0x9469x7];_0x9469x14=_[_0xd803[31]](_0x9469xd,_0x9469x12);_0x9469x14[_0xd803[28]](function(_0x9469xe){_0x9469xc=document[_0xd803[2]](_0xd803[20]);_0x9469xc[_0xd803[29]]=_0xd803[34];_0x9469xc[_0xd803[21]]=_0xd803[35]+_[_0xd803[36]](_0x9469xe[_0x9469x6]);_0x9469xc[_0xd803[23]]=_0x9469xe[_0x9469x7];_0x9469xc[_0xd803[27]]=(_0x9469xe[_0x9469x7]==_0x9469x2);_0x9469x3[_0xd803[25]](_0x9469xc)})});_0x9469x3[_0xd803[29]]=_0xd803[30];return _0x9469x3}function createDropdownFromArray(_0x9469x16,_0x9469x2){var _0x9469x3=document[_0xd803[2]](_0xd803[19]);for(var _0x9469x17 in _0x9469x16){var _0x9469xc=document[_0xd803[2]](_0xd803[20]);_0x9469xc[_0xd803[21]]=_0x9469x16[_0x9469x17];_0x9469xc[_0xd803[23]]=_0x9469x17;if(_0x9469x2>0||_0x9469x2!=_0xd803[37]){_0x9469xc[_0xd803[27]]=(_0x9469x2===_0x9469x17)?true:false};_0x9469x3[_0xd803[25]](_0x9469xc)};_0x9469x3[_0xd803[29]]=_0xd803[30];return _0x9469x3}function Dialog(_0x9469x8,_0x9469x19,_0x9469x1a,_0x9469x1b,_0x9469x1c,_0x9469x1d,_0x9469x1e){var _0x9469x1f=0;if(mxClient[_0xd803[38]]&&document[_0xd803[39]]!=9){_0x9469x1f=60};_0x9469x1a+=_0x9469x1f;_0x9469x1b+=_0x9469x1f;var _0x9469x20=Math[_0xd803[43]](0,Math[_0xd803[42]]((document[_0xd803[41]][_0xd803[40]]-_0x9469x1a)/2));var _0x9469x21=Math[_0xd803[43]](0,Math[_0xd803[42]]((Math[_0xd803[43]](document[_0xd803[41]][_0xd803[44]],document[_0xd803[45]][_0xd803[44]])-_0x9469x1b)/3));var _0x9469x22=_0x9469x8[_0xd803[47]](_0xd803[46]);_0x9469x22[_0xd803[29]]=_0xd803[48];_0x9469x22[_0xd803[50]][_0xd803[49]]=_0xd803[51];_0x9469x22[_0xd803[50]][_0xd803[52]]=_0xd803[53];var _0x9469x23=_0x9469x8[_0xd803[47]](_0xd803[54]);_0x9469x23[_0xd803[29]]=_0xd803[55];_0x9469x23[_0xd803[25]](_0x9469x19);_0x9469x22[_0xd803[25]](_0x9469x23);if(this[_0xd803[56]]==null){this[_0xd803[56]]=_0x9469x8[_0xd803[47]](_0xd803[57]);this[_0xd803[56]][_0xd803[29]]=_0xd803[58];if(mxClient[_0xd803[59]]){ new mxDivResizer(this[_0xd803[56]])}};if(_0x9469x1c){document[_0xd803[41]][_0xd803[25]](this[_0xd803[56]])};document[_0xd803[41]][_0xd803[25]](_0x9469x22);this[_0xd803[60]]=_0x9469x1e;this[_0xd803[61]]=_0x9469x22}Dialog[_0xd803[63]][_0xd803[62]]=function(){if(this[_0xd803[60]]!=null){this[_0xd803[60]]();this[_0xd803[60]]=null};this[_0xd803[61]][_0xd803[65]][_0xd803[64]](this[_0xd803[61]]);this[_0xd803[56]][_0xd803[65]][_0xd803[64]](this[_0xd803[56]])};function ImportDialog(_0x9469x8){var _0x9469x25=_0x9469x8[_0xd803[47]](_0xd803[66]);var _0x9469x26=_0x9469x8[_0xd803[47]](_0xd803[67]);var _0x9469x27=_0x9469x8[_0xd803[47]](_0xd803[68]);var _0x9469x28=_0x9469x8[_0xd803[47]](_0xd803[69]);var _0x9469x29=_0x9469x8[_0xd803[71]](_0xd803[70]);mxUtils[_0xd803[75]](_0x9469x29,mxResources[_0xd803[73]](_0xd803[72])+_0xd803[74]);var _0x9469x2a=mxUtils[_0xd803[77]](_0xd803[37],function(){_0x9469x8[_0xd803[76]]()});_0x9469x2a[_0xd803[29]]=_0xd803[62];_0x9469x26[_0xd803[25]](_0x9469x2a);_0x9469x26[_0xd803[25]](_0x9469x29);var _0x9469x2b=_0x9469x8[_0xd803[47]](_0xd803[78]);var _0x9469x2c=_0x9469x8[_0xd803[47]](_0xd803[79]);var _0x9469x2d=document[_0xd803[2]](_0xd803[80]);_0x9469x2d[_0xd803[50]][_0xd803[81]]=_0xd803[82];_0x9469x2d[_0xd803[50]][_0xd803[83]]=_0xd803[84];var _0x9469x3=document[_0xd803[2]](_0xd803[1]);_0x9469x3[_0xd803[3]]=_0xd803[85];_0x9469x3[_0xd803[5]](_0xd803[86],_0xd803[87]);_0x9469x3[_0xd803[97]](_0xd803[88],function _0x9469x2e(_0x9469x2f){var _0x9469x30=_0x9469x2f[_0xd803[90]][_0xd803[89]][0];console[_0xd803[91]](_0x9469x30);if(_0x9469x30){if(_0x9469x30[_0xd803[3]]===_0xd803[87]){var _0x9469x31= new FileReader();_0x9469x31[_0xd803[92]]=function(_0x9469x32){var _0x9469x33=_0x9469x32[_0xd803[90]][_0xd803[93]];mxUtils[_0xd803[75]](_0x9469x2d,_0x9469x33)};_0x9469x31[_0xd803[94]](_0x9469x30)}else {alert(_0xd803[95])}}else {alert(_0xd803[96])}},false);_0x9469x2c[_0xd803[25]](_0x9469x3);_0x9469x2c[_0xd803[25]](_0x9469x2d);_0x9469x2b[_0xd803[25]](_0x9469x2c);_0x9469x27[_0xd803[25]](_0x9469x2b);var _0x9469x34=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[72]),mxUtils[_0xd803[100]](this,function(_0x9469x35){var _0x9469x36=mxUtils[_0xd803[98]](_0x9469x2d[_0xd803[23]]);_0x9469x8[_0xd803[13]][_0xd803[99]](_0x9469x36[_0xd803[45]]);_0x9469x8[_0xd803[76]]()}));_0x9469x34[_0xd803[29]]=_0xd803[101];var _0x9469x37=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[102]),function(){_0x9469x8[_0xd803[76]]()});_0x9469x37[_0xd803[29]]=_0xd803[103];_0x9469x28[_0xd803[25]](_0x9469x34);_0x9469x28[_0xd803[25]](_0x9469x37);_0x9469x25[_0xd803[25]](_0x9469x26);_0x9469x25[_0xd803[25]](_0x9469x27);_0x9469x25[_0xd803[25]](_0x9469x28);this[_0xd803[61]]=_0x9469x25}function AboutDialog(_0x9469x8){var _0x9469x25=_0x9469x8[_0xd803[47]](_0xd803[66]);var _0x9469x26=_0x9469x8[_0xd803[47]](_0xd803[67]);var _0x9469x27=_0x9469x8[_0xd803[47]](_0xd803[68]);var _0x9469x28=_0x9469x8[_0xd803[47]](_0xd803[69]);var _0x9469x29=_0x9469x8[_0xd803[71]](_0xd803[70]);mxUtils[_0xd803[75]](_0x9469x29,mxResources[_0xd803[73]](_0xd803[104])+_0xd803[105]);var _0x9469x2a=mxUtils[_0xd803[77]](_0xd803[37],function(){_0x9469x8[_0xd803[76]]()});_0x9469x2a[_0xd803[29]]=_0xd803[62];_0x9469x26[_0xd803[25]](_0x9469x2a);_0x9469x26[_0xd803[25]](_0x9469x29);var _0x9469x39=document[_0xd803[2]](_0xd803[106]);_0x9469x39[_0xd803[50]][_0xd803[107]]=_0xd803[108];_0x9469x39[_0xd803[5]](_0xd803[81],_0xd803[109]);_0x9469x39[_0xd803[5]](_0xd803[81],_0xd803[110]);_0x9469x39[_0xd803[5]](_0xd803[111],IMAGE_PATH+_0xd803[112]);_0x9469x27[_0xd803[25]](_0x9469x39);mxUtils[_0xd803[113]](_0x9469x27);mxUtils[_0xd803[75]](_0x9469x27,_0xd803[114]+mxClient[_0xd803[115]]);mxUtils[_0xd803[113]](_0x9469x27);var _0x9469x3a=document[_0xd803[2]](_0xd803[116]);_0x9469x3a[_0xd803[5]](_0xd803[117],_0xd803[118]);_0x9469x3a[_0xd803[5]](_0xd803[90],_0xd803[119]);mxUtils[_0xd803[75]](_0x9469x3a,_0xd803[120]);_0x9469x27[_0xd803[25]](_0x9469x3a);mxUtils[_0xd803[113]](_0x9469x27);mxUtils[_0xd803[113]](_0x9469x27);var _0x9469x37=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[62]),function(){_0x9469x8[_0xd803[76]]()});_0x9469x37[_0xd803[29]]=_0xd803[103];_0x9469x28[_0xd803[25]](_0x9469x37);_0x9469x25[_0xd803[25]](_0x9469x26);_0x9469x25[_0xd803[25]](_0x9469x27);_0x9469x25[_0xd803[25]](_0x9469x28);this[_0xd803[61]]=_0x9469x25}function SaveDialog(_0x9469x8){var _0x9469x25=_0x9469x8[_0xd803[47]](_0xd803[66]);var _0x9469x26=_0x9469x8[_0xd803[47]](_0xd803[67]);var _0x9469x27=_0x9469x8[_0xd803[47]](_0xd803[68]);var _0x9469x28=_0x9469x8[_0xd803[47]](_0xd803[69]);var _0x9469x29=_0x9469x8[_0xd803[71]](_0xd803[70]);mxUtils[_0xd803[75]](_0x9469x29,mxResources[_0xd803[73]](_0xd803[121]));var _0x9469x2a=mxUtils[_0xd803[77]](_0xd803[37],function(){_0x9469x8[_0xd803[76]]()});_0x9469x2a[_0xd803[29]]=_0xd803[62];_0x9469x26[_0xd803[25]](_0x9469x2a);_0x9469x26[_0xd803[25]](_0x9469x29);var _0x9469x3c=_0xd803[122];var _0x9469x3d=_0xd803[123]+_0x9469x3c;var _0x9469x2=_0x9469x8[_0xd803[13]][_0xd803[124]]();var _0x9469x2b=_0x9469x8[_0xd803[47]](_0xd803[78]);var _0x9469x2c=_0x9469x8[_0xd803[47]](_0xd803[125]);var _0x9469x3e=_0x9469x8[_0xd803[47]](_0xd803[126]);var _0x9469x3f=document[_0xd803[2]](_0xd803[127]);_0x9469x3f[_0xd803[29]]=_0xd803[128];mxUtils[_0xd803[75]](_0x9469x3f,mxResources[_0xd803[73]](_0x9469x3c));_0x9469x2c[_0xd803[25]](_0x9469x3f);var _0x9469x40=document[_0xd803[2]](_0xd803[1]);_0x9469x40[_0xd803[5]](_0xd803[23],_0x9469x2+_0xd803[129]);_0x9469x40[_0xd803[5]](_0xd803[130],_0x9469x3d);_0x9469x40[_0xd803[29]]=_0xd803[131];_0x9469x3e[_0xd803[25]](_0x9469x40);_0x9469x2b[_0xd803[25]](_0x9469x2c);_0x9469x2b[_0xd803[25]](_0x9469x3e);_0x9469x27[_0xd803[25]](_0x9469x2b);var _0x9469x34=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[132]),function(){_0x9469x8[_0xd803[121]](_0x9469x40[_0xd803[23]]);_0x9469x8[_0xd803[76]]()});_0x9469x34[_0xd803[29]]=_0xd803[101];var _0x9469x37=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[102]),function(){_0x9469x8[_0xd803[76]]()});_0x9469x37[_0xd803[29]]=_0xd803[103];_0x9469x28[_0xd803[25]](_0x9469x34);_0x9469x28[_0xd803[25]](_0x9469x37);_0x9469x25[_0xd803[25]](_0x9469x26);_0x9469x25[_0xd803[25]](_0x9469x27);_0x9469x25[_0xd803[25]](_0x9469x28);this[_0xd803[61]]=_0x9469x25}function NewDialog(_0x9469x8){var _0x9469x25=_0x9469x8[_0xd803[47]](_0xd803[66]);var _0x9469x26=_0x9469x8[_0xd803[47]](_0xd803[67]);var _0x9469x27=_0x9469x8[_0xd803[47]](_0xd803[68]);var _0x9469x28=_0x9469x8[_0xd803[47]](_0xd803[69]);var _0x9469x29=_0x9469x8[_0xd803[71]](_0xd803[70]);mxUtils[_0xd803[75]](_0x9469x29,mxResources[_0xd803[73]](_0xd803[133]));var _0x9469x2a=mxUtils[_0xd803[77]](_0xd803[37],function(){_0x9469x8[_0xd803[76]]()});_0x9469x2a[_0xd803[29]]=_0xd803[62];_0x9469x26[_0xd803[25]](_0x9469x2a);_0x9469x26[_0xd803[25]](_0x9469x29);var _0x9469x3c=_0xd803[122];var _0x9469x3d=_0xd803[123]+_0x9469x3c;var _0x9469x2=_0x9469x8[_0xd803[13]][_0xd803[124]]();var _0x9469x2b=_0x9469x8[_0xd803[47]](_0xd803[78]);var _0x9469x2c=_0x9469x8[_0xd803[47]](_0xd803[125]);var _0x9469x3e=_0x9469x8[_0xd803[47]](_0xd803[126]);var _0x9469x3f=document[_0xd803[2]](_0xd803[127]);_0x9469x3f[_0xd803[29]]=_0xd803[128];mxUtils[_0xd803[75]](_0x9469x3f,mxResources[_0xd803[73]](_0x9469x3c));_0x9469x2c[_0xd803[25]](_0x9469x3f);var _0x9469x40=document[_0xd803[2]](_0xd803[1]);_0x9469x40[_0xd803[5]](_0xd803[23],_0x9469x2+_0xd803[134]);_0x9469x40[_0xd803[5]](_0xd803[130],_0x9469x3d);_0x9469x40[_0xd803[29]]=_0xd803[131];_0x9469x3e[_0xd803[25]](_0x9469x40);_0x9469x2b[_0xd803[25]](_0x9469x2c);_0x9469x2b[_0xd803[25]](_0x9469x3e);_0x9469x27[_0xd803[25]](_0x9469x2b);var _0x9469x34=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[133]),function(){_0x9469x8[_0xd803[133]](_0x9469x40[_0xd803[23]]);_0x9469x8[_0xd803[76]]()});_0x9469x34[_0xd803[29]]=_0xd803[101];var _0x9469x37=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[102]),function(){_0x9469x8[_0xd803[76]]()});_0x9469x37[_0xd803[29]]=_0xd803[103];_0x9469x28[_0xd803[25]](_0x9469x34);_0x9469x28[_0xd803[25]](_0x9469x37);_0x9469x25[_0xd803[25]](_0x9469x26);_0x9469x25[_0xd803[25]](_0x9469x27);_0x9469x25[_0xd803[25]](_0x9469x28);this[_0xd803[61]]=_0x9469x25}function VariableDialog(_0x9469x8){var _0x9469x25=_0x9469x8[_0xd803[47]](_0xd803[66]);var _0x9469x26=_0x9469x8[_0xd803[47]](_0xd803[67]);var _0x9469x27=_0x9469x8[_0xd803[47]](_0xd803[68]);var _0x9469x28=_0x9469x8[_0xd803[47]](_0xd803[69]);var _0x9469x29=_0x9469x8[_0xd803[71]](_0xd803[70]);mxUtils[_0xd803[75]](_0x9469x29,mxResources[_0xd803[73]](_0xd803[135]));var _0x9469x2a=mxUtils[_0xd803[77]](_0xd803[37],function(){_0x9469x8[_0xd803[76]]()});_0x9469x2a[_0xd803[29]]=_0xd803[62];_0x9469x26[_0xd803[25]](_0x9469x2a);_0x9469x26[_0xd803[25]](_0x9469x29);var _0x9469x3c=_0xd803[122];var _0x9469x3d=_0xd803[123]+_0x9469x3c;var _0x9469x2=_0x9469x8[_0xd803[13]][_0xd803[124]]();var _0x9469x2b=_0x9469x8[_0xd803[47]](_0xd803[78]);var _0x9469x2c=_0x9469x8[_0xd803[47]](_0xd803[125]);var _0x9469x3e=_0x9469x8[_0xd803[47]](_0xd803[126]);var _0x9469x3f=document[_0xd803[2]](_0xd803[127]);_0x9469x3f[_0xd803[29]]=_0xd803[128];mxUtils[_0xd803[75]](_0x9469x3f,mxResources[_0xd803[73]](_0x9469x3c));_0x9469x2c[_0xd803[25]](_0x9469x3f);var _0x9469x40=document[_0xd803[2]](_0xd803[1]);_0x9469x40[_0xd803[5]](_0xd803[23],_0xd803[136]);_0x9469x40[_0xd803[5]](_0xd803[130],_0x9469x3d);_0x9469x40[_0xd803[29]]=_0xd803[131];_0x9469x3e[_0xd803[25]](_0x9469x40);_0x9469x2b[_0xd803[25]](_0x9469x2c);_0x9469x2b[_0xd803[25]](_0x9469x3e);_0x9469x27[_0xd803[25]](_0x9469x2b);var _0x9469x34=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[133]),function(){_0x9469x8[_0xd803[135]](_0x9469x40[_0xd803[23]]);_0x9469x8[_0xd803[76]]()});_0x9469x34[_0xd803[29]]=_0xd803[101];var _0x9469x37=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[102]),function(){_0x9469x8[_0xd803[76]]()});_0x9469x37[_0xd803[29]]=_0xd803[103];_0x9469x28[_0xd803[25]](_0x9469x34);_0x9469x28[_0xd803[25]](_0x9469x37);_0x9469x25[_0xd803[25]](_0x9469x26);_0x9469x25[_0xd803[25]](_0x9469x27);_0x9469x25[_0xd803[25]](_0x9469x28);this[_0xd803[61]]=_0x9469x25}function OpenDialog(_0x9469x8){var _0x9469x25=_0x9469x8[_0xd803[47]](_0xd803[66]);var _0x9469x26=_0x9469x8[_0xd803[47]](_0xd803[67]);var _0x9469x27=_0x9469x8[_0xd803[47]](_0xd803[68]);var _0x9469x28=_0x9469x8[_0xd803[47]](_0xd803[69]);var _0x9469x29=_0x9469x8[_0xd803[71]](_0xd803[70]);mxUtils[_0xd803[75]](_0x9469x29,mxResources[_0xd803[73]](_0xd803[8]));var _0x9469x2a=mxUtils[_0xd803[77]](_0xd803[37],function(){_0x9469x8[_0xd803[76]]()});_0x9469x2a[_0xd803[29]]=_0xd803[62];_0x9469x26[_0xd803[25]](_0x9469x2a);_0x9469x26[_0xd803[25]](_0x9469x29);var _0x9469x2b=_0x9469x8[_0xd803[47]](_0xd803[78]);var _0x9469x2c=_0x9469x8[_0xd803[47]](_0xd803[125]);var _0x9469x3e=_0x9469x8[_0xd803[47]](_0xd803[126]);var _0x9469x3f=document[_0xd803[2]](_0xd803[127]);_0x9469x3f[_0xd803[29]]=_0xd803[128];mxUtils[_0xd803[75]](_0x9469x3f,mxResources[_0xd803[73]](_0xd803[122]));_0x9469x2c[_0xd803[25]](_0x9469x3f);var _0x9469xa= new XMLHttpRequest();_0x9469xa[_0xd803[8]](_0xd803[7],_0xd803[137],false);_0x9469xa[_0xd803[14]](_0xd803[9],_0xd803[10]+_0x9469x8[_0xd803[13]][_0xd803[12]][_0xd803[11]]);_0x9469xa[_0xd803[15]](null);var _0x9469xb=[];if(_0x9469xa[_0xd803[16]]===200){_0x9469xb=JSON[_0xd803[18]](_0x9469xa[_0xd803[17]])};var _0x9469x40=document[_0xd803[2]](_0xd803[19]);for(var _0x9469x44=0;_0x9469x44<_0x9469xb[_0xd803[138]];_0x9469x44++){var _0x9469xc=document[_0xd803[2]](_0xd803[20]);_0x9469xc[_0xd803[21]]=_0x9469xb[_0x9469x44][_0xd803[122]];_0x9469xc[_0xd803[23]]=_0x9469xb[_0x9469x44][_0xd803[130]];_0x9469x40[_0xd803[25]](_0x9469xc)};_0x9469x40[_0xd803[29]]=_0xd803[131];_0x9469x3e[_0xd803[25]](_0x9469x40);_0x9469x2b[_0xd803[25]](_0x9469x2c);_0x9469x2b[_0xd803[25]](_0x9469x3e);_0x9469x27[_0xd803[25]](_0x9469x2b);var _0x9469x34=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[8]),function(){console[_0xd803[91]](_0x9469x40);console[_0xd803[91]](_0x9469x40[_0xd803[23]]);window[_0xd803[8]](_0xd803[139]+_0x9469x40[_0xd803[23]],_0xd803[119]);_0x9469x8[_0xd803[76]]()});_0x9469x34[_0xd803[29]]=_0xd803[101];var _0x9469x37=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[102]),function(){_0x9469x8[_0xd803[76]]()});_0x9469x37[_0xd803[29]]=_0xd803[103];_0x9469x28[_0xd803[25]](_0x9469x34);_0x9469x28[_0xd803[25]](_0x9469x37);_0x9469x25[_0xd803[25]](_0x9469x26);_0x9469x25[_0xd803[25]](_0x9469x27);_0x9469x25[_0xd803[25]](_0x9469x28);this[_0xd803[61]]=_0x9469x25}function RenameDialog(_0x9469x8){var _0x9469x25=_0x9469x8[_0xd803[47]](_0xd803[66]);var _0x9469x26=_0x9469x8[_0xd803[47]](_0xd803[67]);var _0x9469x27=_0x9469x8[_0xd803[47]](_0xd803[68]);var _0x9469x28=_0x9469x8[_0xd803[47]](_0xd803[69]);var _0x9469x29=_0x9469x8[_0xd803[71]](_0xd803[70]);mxUtils[_0xd803[75]](_0x9469x29,mxResources[_0xd803[73]](_0xd803[140]));var _0x9469x2a=mxUtils[_0xd803[77]](_0xd803[37],function(){_0x9469x8[_0xd803[76]]()});_0x9469x2a[_0xd803[29]]=_0xd803[62];_0x9469x26[_0xd803[25]](_0x9469x2a);_0x9469x26[_0xd803[25]](_0x9469x29);var _0x9469x2b=_0x9469x8[_0xd803[47]](_0xd803[78]);var _0x9469x2c=_0x9469x8[_0xd803[47]](_0xd803[125]);var _0x9469x3e=_0x9469x8[_0xd803[47]](_0xd803[126]);var _0x9469x3f=document[_0xd803[2]](_0xd803[127]);_0x9469x3f[_0xd803[29]]=_0xd803[128];mxUtils[_0xd803[75]](_0x9469x3f,mxResources[_0xd803[73]](_0xd803[122]));_0x9469x2c[_0xd803[25]](_0x9469x3f);var _0x9469x3c=_0x9469x8[_0xd803[13]][_0xd803[141]];var _0x9469x3=document[_0xd803[2]](_0xd803[1]);_0x9469x3[_0xd803[5]](_0xd803[23],_0x9469x3c);_0x9469x3[_0xd803[29]]=_0xd803[131];_0x9469x3e[_0xd803[25]](_0x9469x3);_0x9469x2b[_0xd803[25]](_0x9469x2c);_0x9469x2b[_0xd803[25]](_0x9469x3e);_0x9469x27[_0xd803[25]](_0x9469x2b);var _0x9469x34=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[132]),function(){var _0x9469xa= new XMLHttpRequest();_0x9469xa[_0xd803[8]](_0xd803[142],SAVE_URL+_0x9469x8[_0xd803[13]][_0xd803[12]][_0xd803[130]],true);_0x9469xa[_0xd803[14]](_0xd803[143],_0xd803[144]);_0x9469xa[_0xd803[14]](_0xd803[9],_0xd803[10]+_0x9469x8[_0xd803[13]][_0xd803[12]][_0xd803[11]]);_0x9469xa[_0xd803[15]](_0xd803[145]+_0x9469x3[_0xd803[23]]);_0x9469xa[_0xd803[92]]=function(_0x9469x32){if(_0x9469xa[_0xd803[16]]===200){_0x9469x8[_0xd803[13]][_0xd803[147]](_0xd803[146]);_0x9469x8[_0xd803[13]][_0xd803[141]]=_0x9469x3[_0xd803[23]]}else {_0x9469x8[_0xd803[13]][_0xd803[147]](JSON[_0xd803[18]](_0x9469xa[_0xd803[17]])[_0xd803[149]][0][_0xd803[148]])}};_0x9469xa[_0xd803[150]]=function(_0x9469x32){mxUtils[_0xd803[152]](_0x9469xa[_0xd803[151]])};_0x9469x8[_0xd803[76]]()});_0x9469x34[_0xd803[29]]=_0xd803[101];var _0x9469x37=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[102]),function(){_0x9469x8[_0xd803[76]]()});_0x9469x37[_0xd803[29]]=_0xd803[103];_0x9469x28[_0xd803[25]](_0x9469x34);_0x9469x28[_0xd803[25]](_0x9469x37);_0x9469x25[_0xd803[25]](_0x9469x26);_0x9469x25[_0xd803[25]](_0x9469x27);_0x9469x25[_0xd803[25]](_0x9469x28);this[_0xd803[61]]=_0x9469x25}function EditFileDialog(_0x9469x8){var _0x9469x25=_0x9469x8[_0xd803[47]](_0xd803[66]);var _0x9469x26=_0x9469x8[_0xd803[47]](_0xd803[67]);var _0x9469x27=_0x9469x8[_0xd803[47]](_0xd803[68]);var _0x9469x28=_0x9469x8[_0xd803[47]](_0xd803[69]);var _0x9469x29=_0x9469x8[_0xd803[71]](_0xd803[70]);mxUtils[_0xd803[75]](_0x9469x29,mxResources[_0xd803[73]](_0xd803[153]));var _0x9469x2a=mxUtils[_0xd803[77]](_0xd803[37],function(){_0x9469x8[_0xd803[76]]()});_0x9469x2a[_0xd803[29]]=_0xd803[62];_0x9469x26[_0xd803[25]](_0x9469x2a);_0x9469x26[_0xd803[25]](_0x9469x29);var _0x9469x2b=_0x9469x8[_0xd803[47]](_0xd803[78]);var _0x9469x2c=_0x9469x8[_0xd803[47]](_0xd803[79]);var _0x9469x2d=document[_0xd803[2]](_0xd803[80]);_0x9469x2d[_0xd803[50]][_0xd803[81]]=_0xd803[82];_0x9469x2d[_0xd803[50]][_0xd803[83]]=_0xd803[84];_0x9469x2d[_0xd803[23]]=mxUtils[_0xd803[155]](_0x9469x8[_0xd803[13]][_0xd803[154]]());if(fileSupport){function _0x9469x47(_0x9469x2f){_0x9469x2f[_0xd803[156]]();_0x9469x2f[_0xd803[157]]();if(_0x9469x2f[_0xd803[158]][_0xd803[89]][_0xd803[138]]>0){var _0x9469x48=_0x9469x2f[_0xd803[158]][_0xd803[89]][0];var _0x9469x49= new FileReader();_0x9469x49[_0xd803[92]]=function(_0x9469x32){_0x9469x2d[_0xd803[23]]=_0x9469x32[_0xd803[90]][_0xd803[93]]};_0x9469x49[_0xd803[94]](_0x9469x48)}}function _0x9469x4a(_0x9469x2f){_0x9469x2f[_0xd803[156]]();_0x9469x2f[_0xd803[157]]()}_0x9469x2d[_0xd803[97]](_0xd803[159],_0x9469x4a,false);_0x9469x2d[_0xd803[97]](_0xd803[160],_0x9469x47,false)};_0x9469x2c[_0xd803[25]](_0x9469x2d);_0x9469x2b[_0xd803[25]](_0x9469x2c);_0x9469x27[_0xd803[25]](_0x9469x2b);var _0x9469x34=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[132]),function(){var _0x9469x36=mxUtils[_0xd803[98]](_0x9469x2d[_0xd803[23]]);_0x9469x8[_0xd803[13]][_0xd803[99]](_0x9469x36[_0xd803[45]]);_0x9469x8[_0xd803[76]]()});_0x9469x34[_0xd803[29]]=_0xd803[101];var _0x9469x37=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[102]),function(){_0x9469x8[_0xd803[76]]()});_0x9469x37[_0xd803[29]]=_0xd803[103];_0x9469x28[_0xd803[25]](_0x9469x34);_0x9469x28[_0xd803[25]](_0x9469x37);_0x9469x25[_0xd803[25]](_0x9469x26);_0x9469x25[_0xd803[25]](_0x9469x27);_0x9469x25[_0xd803[25]](_0x9469x28);this[_0xd803[61]]=_0x9469x25}function ExportDialog(_0x9469x8){var _0x9469x25=_0x9469x8[_0xd803[47]](_0xd803[66]);var _0x9469x26=_0x9469x8[_0xd803[47]](_0xd803[67]);var _0x9469x27=_0x9469x8[_0xd803[47]](_0xd803[161]);var _0x9469x28=_0x9469x8[_0xd803[47]](_0xd803[69]);var _0x9469x29=_0x9469x8[_0xd803[71]](_0xd803[70]);mxUtils[_0xd803[75]](_0x9469x29,mxResources[_0xd803[73]](_0xd803[162])+_0xd803[74]);var _0x9469x2a=mxUtils[_0xd803[77]](_0xd803[37],function(){_0x9469x8[_0xd803[76]]()});_0x9469x2a[_0xd803[29]]=_0xd803[62];_0x9469x26[_0xd803[25]](_0x9469x2a);_0x9469x26[_0xd803[25]](_0x9469x29);var _0x9469x4c=_0x9469x8[_0xd803[47]](_0xd803[163]);var _0x9469x4d=_0x9469x8[_0xd803[47]](_0xd803[164]);var _0x9469x3f=document[_0xd803[2]](_0xd803[127]);_0x9469x3f[_0xd803[29]]=_0xd803[165];mxUtils[_0xd803[75]](_0x9469x3f,mxResources[_0xd803[73]](_0xd803[141]));var _0x9469x3=document[_0xd803[2]](_0xd803[1]);_0x9469x3[_0xd803[5]](_0xd803[23],_0x9469x8[_0xd803[13]][_0xd803[124]]());_0x9469x3[_0xd803[29]]=_0xd803[131];var _0x9469x22=_0x9469x8[_0xd803[47]](_0xd803[166]);_0x9469x22[_0xd803[25]](_0x9469x3);_0x9469x4d[_0xd803[25]](_0x9469x3f);_0x9469x4d[_0xd803[25]](_0x9469x22);_0x9469x4c[_0xd803[25]](_0x9469x4d);_0x9469x27[_0xd803[25]](_0x9469x4c);var _0x9469x34=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[162]),mxUtils[_0xd803[100]](this,function(_0x9469x35){_0x9469x8[_0xd803[132]](false);var _0x9469x4e=encodeURIComponent(mxUtils[_0xd803[167]](_0x9469x8[_0xd803[13]][_0xd803[154]]())); new mxXmlRequest(SAVE_URL+_0x9469x8[_0xd803[13]][_0xd803[12]][_0xd803[130]]+_0xd803[169],_0xd803[170]+_0x9469x3[_0xd803[23]],_0xd803[7])[_0xd803[168]](document,_0xd803[119]);_0x9469x8[_0xd803[76]]()}));_0x9469x34[_0xd803[29]]=_0xd803[101];var _0x9469x37=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[102]),function(){_0x9469x8[_0xd803[76]]()});_0x9469x37[_0xd803[29]]=_0xd803[103];_0x9469x28[_0xd803[25]](_0x9469x34);_0x9469x28[_0xd803[25]](_0x9469x37);_0x9469x25[_0xd803[25]](_0x9469x26);_0x9469x25[_0xd803[25]](_0x9469x27);_0x9469x25[_0xd803[25]](_0x9469x28);this[_0xd803[61]]=_0x9469x25}function GeneralDialog(_0x9469x8,_0x9469x50){var _0x9469x51=_0x9469x8[_0xd803[13]][_0xd803[171]];var _0x9469x25=_0x9469x8[_0xd803[47]](_0xd803[66]);var _0x9469x26=_0x9469x8[_0xd803[47]](_0xd803[67]);var _0x9469x27=_0x9469x8[_0xd803[47]](_0xd803[172]);var _0x9469x28=_0x9469x8[_0xd803[47]](_0xd803[69]);var _0x9469x29=_0x9469x8[_0xd803[71]](_0xd803[70]);mxUtils[_0xd803[75]](_0x9469x29,mxResources[_0xd803[73]](_0xd803[153])+_0xd803[173]+mxResources[_0xd803[73]](_0x9469x50[_0xd803[23]][_0xd803[174]]));var _0x9469x2a=mxUtils[_0xd803[77]](_0xd803[37],function(){_0x9469x8[_0xd803[76]]()});_0x9469x2a[_0xd803[29]]=_0xd803[62];_0x9469x26[_0xd803[25]](_0x9469x2a);_0x9469x26[_0xd803[25]](_0x9469x29);var _0x9469x52=_0x9469x8[_0xd803[47]](_0xd803[163]);_0x9469x52[_0xd803[5]](_0xd803[130],_0xd803[175]);var _0x9469x53=_0x9469x50[_0xd803[23]][_0xd803[176]][_0xd803[138]];var _0x9469x4c=_0x9469x8[_0xd803[47]](_0xd803[163]);for(var _0x9469x54=0;_0x9469x54<_0x9469x53;_0x9469x54++){var _0x9469x3c=_0x9469x50[_0xd803[23]][_0xd803[176]][_0x9469x54][_0xd803[122]];var _0x9469x3d=_0xd803[123]+_0x9469x3c;var _0x9469x2=_0x9469x50[_0xd803[23]][_0xd803[176]][_0x9469x54][_0xd803[23]];var _0x9469x4d=_0x9469x8[_0xd803[47]]((_0x9469x54==_0x9469x53-1)?_0xd803[164]:_0xd803[177]);var _0x9469x3f=document[_0xd803[2]](_0xd803[127]);_0x9469x3f[_0xd803[29]]=_0xd803[165];mxUtils[_0xd803[75]](_0x9469x3f,mxResources[_0xd803[73]](_0x9469x3c));_0x9469x4d[_0xd803[25]](_0x9469x3f);var _0x9469x3;switch(_0x9469x3c){case _0xd803[179]:_0x9469x3=document[_0xd803[2]](_0xd803[80]);_0x9469x3[_0xd803[178]]=_0x9469x2;_0x9469x3[_0xd803[29]]=_0xd803[131];break;case _0xd803[180]:_0x9469x3=document[_0xd803[2]](_0xd803[80]);_0x9469x3[_0xd803[178]]=_0x9469x2;_0x9469x3[_0xd803[29]]=_0xd803[131];break;case _0xd803[181]:_0x9469x3=document[_0xd803[2]](_0xd803[80]);_0x9469x3[_0xd803[178]]=_0x9469x2;_0x9469x3[_0xd803[29]]=_0xd803[131];break;case _0xd803[184]:_0x9469x3=document[_0xd803[2]](_0xd803[1]);_0x9469x3[_0xd803[5]](_0xd803[23],_0x9469x2);_0x9469x3[_0xd803[5]](_0xd803[182],_0xd803[183]);_0x9469x3[_0xd803[29]]=_0xd803[131];break;case _0xd803[187]:var _0x9469x3=mxUtils[_0xd803[77]](_0xd803[185],function(){var _0x9469x55=createDynamicInput(null,null,_0x9469x8);_0x9469x52[_0xd803[25]](_0x9469x55);_0x9469x27[_0xd803[25]](_0x9469x52)});_0x9469x3[_0xd803[29]]=_0xd803[186];break;default:_0x9469x3=document[_0xd803[2]](_0xd803[1]);_0x9469x3[_0xd803[5]](_0xd803[23],_0x9469x2);_0x9469x3[_0xd803[29]]=_0xd803[131];break};_0x9469x3[_0xd803[5]](_0xd803[130],_0x9469x3d);var _0x9469x22=_0x9469x8[_0xd803[47]](_0xd803[166]);_0x9469x22[_0xd803[25]](_0x9469x3);if(mxResources[_0xd803[73]](_0xd803[188]+_0x9469x3c)){var _0x9469x56=_0x9469x8[_0xd803[47]](_0xd803[189]);_0x9469x56[_0xd803[29]]=_0xd803[190];mxUtils[_0xd803[75]](_0x9469x56,mxResources[_0xd803[73]](_0xd803[188]+_0x9469x3c));_0x9469x22[_0xd803[25]](_0x9469x56)};_0x9469x4d[_0xd803[25]](_0x9469x22);_0x9469x4c[_0xd803[25]](_0x9469x4d)};_0x9469x27[_0xd803[25]](_0x9469x4c);if(_0x9469x50[_0xd803[23]][_0xd803[174]]==_0xd803[1]){if(_0x9469x50[_0xd803[191]]){for(var _0x9469x44=0;_0x9469x44<_0x9469x50[_0xd803[191]][_0xd803[138]];_0x9469x44++){var _0x9469x57=_0xd803[37];var _0x9469x58=_0xd803[37];_[_0xd803[28]](_0x9469x50[_0xd803[191]][_0x9469x44][_0xd803[23]][_0xd803[176]],function(_0x9469x59){if(_0x9469x59[_0xd803[122]]==_0xd803[3]){_0x9469x57=_0x9469x59[_0xd803[23]]}else {if(_0x9469x59[_0xd803[122]]==_0xd803[127]){_0x9469x58=_0x9469x59[_0xd803[23]]}}});var _0x9469x55=createDynamicInput(_0x9469x57,_0x9469x58,_0x9469x8);_0x9469x52[_0xd803[25]](_0x9469x55)}}};_0x9469x27[_0xd803[25]](_0x9469x52);var _0x9469x34=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[132]),mxUtils[_0xd803[100]](this,function(_0x9469x35){for(var _0x9469x54=0;_0x9469x54<_0x9469x50[_0xd803[23]][_0xd803[176]][_0xd803[138]];_0x9469x54++){var _0x9469x3d=_0xd803[123]+_0x9469x50[_0xd803[23]][_0xd803[176]][_0x9469x54][_0xd803[122]];var _0x9469x3c=_0x9469x50[_0xd803[23]][_0xd803[176]][_0x9469x54][_0xd803[122]];console[_0xd803[91]](_0x9469x3c);_0x9469x50[_0xd803[5]](_0x9469x3c,document[_0xd803[192]](_0x9469x3d)[_0xd803[23]]);console[_0xd803[91]](document[_0xd803[192]](_0x9469x3d)[_0xd803[23]])};if(_0x9469x50[_0xd803[23]][_0xd803[174]]==_0xd803[1]){if(_0x9469x51[_0xd803[194]][_0xd803[193]](_0x9469x50)){_0x9469x50[_0xd803[191]]=[]};if(document[_0xd803[192]](_0xd803[175])){var _0x9469x52=document[_0xd803[192]](_0xd803[175])[_0xd803[191]];for(var _0x9469x44=0;_0x9469x44<_0x9469x52[_0xd803[138]];_0x9469x44++){var _0x9469x5a=_0x9469x52[_0x9469x44][_0xd803[191]][1];var _0x9469x5b=_0x9469x52[_0x9469x44][_0xd803[191]][0];var _0x9469x36=mxUtils[_0xd803[195]]();var _0x9469x5c=_0x9469x36[_0xd803[2]](_0xd803[175]);_0x9469x5c[_0xd803[5]](_0xd803[3],_0x9469x52[_0x9469x44][_0xd803[196]](_0xd803[19])[0][_0xd803[23]]);_0x9469x5c[_0xd803[5]](_0xd803[127],_0x9469x52[_0x9469x44][_0xd803[196]](_0xd803[1])[0][_0xd803[23]]);var _0x9469x5d= new mxCell(_0x9469x5c);_0x9469x51[_0xd803[194]][_0xd803[187]](_0x9469x50,_0x9469x5d)}}};_0x9469x51[_0xd803[197]](_0x9469x50);_0x9469x8[_0xd803[76]]()}));_0x9469x34[_0xd803[29]]=_0xd803[101];var _0x9469x37=mxUtils[_0xd803[77]](mxResources[_0xd803[73]](_0xd803[102]),function(){_0x9469x8[_0xd803[76]]()});_0x9469x37[_0xd803[29]]=_0xd803[103];_0x9469x28[_0xd803[25]](_0x9469x34);_0x9469x28[_0xd803[25]](_0x9469x37);_0x9469x25[_0xd803[25]](_0x9469x26);_0x9469x25[_0xd803[25]](_0x9469x27);_0x9469x25[_0xd803[25]](_0x9469x28);this[_0xd803[61]]=_0x9469x25}function createDynamicInput(_0x9469x57,_0x9469x58,_0x9469x8){var _0x9469x55=_0x9469x8[_0xd803[47]](_0xd803[177]);var _0x9469x2c=_0x9469x8[_0xd803[47]](_0xd803[198]);var _0x9469x3e=_0x9469x8[_0xd803[47]](_0xd803[198]);var _0x9469x5f=_0x9469x8[_0xd803[47]](_0xd803[199]);var _0x9469x3=document[_0xd803[2]](_0xd803[1]);_0x9469x3[_0xd803[5]](_0xd803[182],_0xd803[200]);_0x9469x3[_0xd803[23]]=_0x9469x58;_0x9469x3[_0xd803[29]]=_0xd803[131];_0x9469x2c[_0xd803[25]](_0x9469x3);var _0x9469x40=document[_0xd803[2]](_0xd803[19]);var _0x9469xc=document[_0xd803[2]](_0xd803[20]);_0x9469xc[_0xd803[21]]=_0xd803[22];_0x9469xc[_0xd803[23]]=_0xd803[37];_0x9469x40[_0xd803[25]](_0x9469xc);var _0x9469xd=[_0xd803[21],_0xd803[201],_0xd803[80],_0xd803[4]];_0x9469xd[_0xd803[28]](function(_0x9469xe){_0x9469xc=document[_0xd803[2]](_0xd803[20]);_0x9469xc[_0xd803[21]]=_0x9469xe;_0x9469xc[_0xd803[23]]=_0x9469xe;_0x9469xc[_0xd803[27]]=(_0x9469xe==_0x9469x57);_0x9469x40[_0xd803[25]](_0x9469xc)});_0x9469x40[_0xd803[29]]=_0xd803[131];_0x9469x3e[_0xd803[25]](_0x9469x40);var _0x9469x60=mxUtils[_0xd803[77]](_0xd803[202],function(){var _0x9469x61=_0x9469x60[_0xd803[203]];var _0x9469x62=_0x9469x61[_0xd803[203]];document[_0xd803[192]](_0xd803[175])[_0xd803[64]](_0x9469x62)});_0x9469x60[_0xd803[29]]=_0xd803[204];_0x9469x5f[_0xd803[25]](_0x9469x60);_0x9469x55[_0xd803[25]](_0x9469x2c);_0x9469x55[_0xd803[25]](_0x9469x3e);_0x9469x55[_0xd803[25]](_0x9469x5f);return _0x9469x55}
\ No newline at end of file
index 9858989..d2580e3 100644 (file)
@@ -1,888 +1 @@
-/**
- * $Id: Editor.js,v 1.14 2013/03/06 17:57:10 boris Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-// Specifies if local storage should be used (eg. on the iPad which has no filesystem)
-var useLocalStorage = (mxClient.IS_TOUCH || urlParams['storage'] == 'local') && typeof(localStorage) != 'undefined';
-var fileSupport = window.File != null && window.FileReader != null && window.FileList != null;
-
-// Specifies if connector should be shown on selected cells
-var touchStyle = mxClient.IS_TOUCH || urlParams['touch'] == '1';
-
-// Counts open editor tabs (must be global for cross-window access)
-var counter = 0;
-
-// Cross-domain window access is not allowed in FF, so if we
-// were opened from another domain then this will fail.
-try {
-       var op = window;
-
-       while (op.opener != null && !isNaN(op.opener.counter)) {
-               op = op.opener;
-       }
-
-       // Increments the counter in the first opener in the chain
-       if (op != null) {
-               op.counter++;
-               counter = op.counter;
-       }
-} catch (e) {
-       // ignore
-}
-
-/**
- * Editor constructor executed on page load.
- */
-Editor = function() {
-       mxEventSource.call(this);
-       this.init();
-       this.initStencilRegistry();
-       this.graph = new Graph();
-       this.outline = new mxOutline(this.graph);
-       this.outline.updateOnPan = true;
-       this.undoManager = this.createUndoManager();
-       this.status = '';
-
-       // Contains the name which was used for the last save. Default value is null.
-       this.filename = null;
-
-       this.getOrCreateFilename = function() {
-               return this.filename || mxResources.get('drawing', [counter]) + '.xml';
-       };
-
-       this.getFilename = function() {
-               return this.filename;
-       };
-
-       // Sets the status and fires a statusChanged event
-       this.setStatus = function(value) {
-               this.status = value;
-               this.fireEvent(new mxEventObject('statusChanged'));
-       };
-
-       // Returns the current status
-       this.getStatus = function() {
-               return this.status;
-       };
-
-       // Contains the current modified state of the diagram. This is false for
-       // new diagrams and after the diagram was saved.
-       this.modified = false;
-
-       // Updates modified state if graph changes
-       this.graphChangeListener = function() {
-               this.modified = true;
-       };
-       this.graph.getModel().addListener(mxEvent.CHANGE, mxUtils.bind(this, function() {
-               this.graphChangeListener.apply(this, arguments);
-       }));
-
-       // Installs dialog if browser window is closed without saving
-       // This must be disabled during save and image export
-       window.onbeforeunload = mxUtils.bind(this, function() {
-               if (this.modified) {
-                       return mxResources.get('allChangesLost');
-               }
-       });
-
-       // Sets persistent graph state defaults
-       this.graph.resetViewOnRootChange = false;
-       this.graph.scrollbars = true;
-       this.graph.background = null;
-};
-
-// Editor inherits from mxEventSource
-mxUtils.extend(Editor, mxEventSource);
-
-/**
- * Specifies the image URL to be used for the grid.
- */
-Editor.prototype.gridImage = IMAGE_PATH + '/grid.gif';
-
-/**
- * Specifies the image URL to be used for the transparent background.
- */
-Editor.prototype.transparentImage = IMAGE_PATH + '/transparent.gif';
-
-/**
- * Sets the XML node for the current diagram.
- */
-Editor.prototype.setGraphXml = function(node) {
-       var dec = new mxCodec(node.ownerDocument);
-
-       if (node.nodeName == 'mxGraphModel') {
-               this.graph.view.scale = 1;
-               this.graph.gridEnabled = node.getAttribute('grid') != '0';
-               this.graph.graphHandler.guidesEnabled = node.getAttribute('guides') != '0';
-               this.graph.setTooltips(node.getAttribute('tooltips') != '0');
-               this.graph.setConnectable(node.getAttribute('connect') != '0');
-               this.graph.foldingEnabled = node.getAttribute('fold') != '0';
-               this.graph.scrollbars = node.getAttribute('scrollbars') != '0';
-
-               if (!this.graph.scrollbars) {
-                       this.graph.container.scrollLeft = 0;
-                       this.graph.container.scrollTop = 0;
-                       this.graph.view.translate.x = Number(node.getAttribute('dx') || 0);
-                       this.graph.view.translate.y = Number(node.getAttribute('dy') || 0);
-               }
-
-               this.graph.pageVisible = node.getAttribute('page') == '1';
-               this.graph.pageBreaksVisible = this.graph.pageVisible;
-               this.graph.preferPageSize = this.graph.pageBreaksVisible;
-
-               // Loads the persistent state settings
-               var ps = node.getAttribute('pageScale');
-
-               if (ps != null) {
-                       this.graph.pageScale = ps;
-               } else {
-                       this.graph.pageScale = 1.5;
-               }
-
-               var pw = node.getAttribute('pageWidth');
-               var ph = node.getAttribute('pageHeight');
-
-               if (pw != null && ph != null) {
-                       this.graph.pageFormat = new mxRectangle(0, 0, parseFloat(pw), parseFloat(ph));
-                       this.outline.outline.pageFormat = this.graph.pageFormat;
-               }
-
-               // Loads the persistent state settings
-               var bg = node.getAttribute('background');
-
-               if (bg != null && bg.length > 0) {
-                       this.graph.background = bg;
-               }
-
-               dec.decode(node, this.graph.getModel());
-               this.updateGraphComponents();
-       }
-};
-
-/**
- * Returns the XML node that represents the current diagram.
- */
-Editor.prototype.getGraphXml = function() {
-       var enc = new mxCodec(mxUtils.createXmlDocument());
-       var node = enc.encode(this.graph.getModel());
-
-       if (this.graph.view.translate.x != 0 || this.graph.view.translate.y != 0) {
-               node.setAttribute('dx', Math.round(this.graph.view.translate.x * 100) / 100);
-               node.setAttribute('dy', Math.round(this.graph.view.translate.y * 100) / 100);
-       }
-
-       node.setAttribute('grid', (this.graph.isGridEnabled()) ? '1' : '0');
-       node.setAttribute('guides', (this.graph.graphHandler.guidesEnabled) ? '1' : '0');
-       node.setAttribute('guides', (this.graph.graphHandler.guidesEnabled) ? '1' : '0');
-       node.setAttribute('tooltips', (this.graph.tooltipHandler.isEnabled()) ? '1' : '0');
-       node.setAttribute('connect', (this.graph.connectionHandler.isEnabled()) ? '1' : '0');
-       node.setAttribute('fold', (this.graph.foldingEnabled) ? '1' : '0');
-       node.setAttribute('page', (this.graph.pageVisible) ? '1' : '0');
-       node.setAttribute('pageScale', this.graph.pageScale);
-       node.setAttribute('pageWidth', this.graph.pageFormat.width);
-       node.setAttribute('pageHeight', this.graph.pageFormat.height);
-
-       if (!this.graph.scrollbars) {
-               node.setAttribute('scrollbars', '0');
-       }
-
-       if (this.graph.background != null) {
-               node.setAttribute('background', this.graph.background);
-       }
-
-       return node;
-};
-
-/**
- * Keeps the graph container in sync with the persistent graph state
- */
-Editor.prototype.updateGraphComponents = function() {
-       var graph = this.graph;
-       var outline = this.outline;
-
-       if (graph.container != null && outline.outline.container != null) {
-               if (graph.background != null) {
-                       if (graph.background == 'none') {
-                               graph.container.style.backgroundColor = 'transparent';
-                       } else {
-                               if (graph.view.backgroundPageShape != null) {
-                                       graph.view.backgroundPageShape.fill = graph.background;
-                                       graph.view.backgroundPageShape.reconfigure();
-                               }
-
-                               graph.container.style.backgroundColor = graph.background;
-                       }
-               } else {
-                       graph.container.style.backgroundColor = '';
-               }
-
-               if (graph.pageVisible) {
-                       graph.container.style.backgroundColor = '#ebebeb';
-                       graph.container.style.borderStyle = 'solid';
-                       graph.container.style.borderColor = '#e5e5e5';
-                       graph.container.style.borderTopWidth = '1px';
-                       graph.container.style.borderLeftWidth = '1px';
-                       graph.container.style.borderRightWidth = '0px';
-                       graph.container.style.borderBottomWidth = '0px';
-               } else {
-                       graph.container.style.border = '';
-               }
-
-               outline.outline.container.style.backgroundColor = graph.container.style.backgroundColor;
-
-               if (outline.outline.pageVisible != graph.pageVisible ||
-                       outline.outline.pageScale != graph.pageScale) {
-                       outline.outline.pageScale = graph.pageScale;
-                       outline.outline.pageVisible = graph.pageVisible;
-                       outline.outline.view.validate();
-               }
-
-               if (graph.scrollbars && graph.container.style.overflow == 'hidden' && !touchStyle) {
-                       graph.container.style.overflow = 'auto';
-               } else if (!graph.scrollbars || touchStyle) {
-                       graph.container.style.overflow = 'hidden';
-               }
-
-               // Transparent.gif is a workaround for focus repaint problems in IE
-               var noBackground = (mxClient.IS_IE && document.documentMode >= 9) ? 'url(' + this.transparentImage + ')' : 'none';
-               graph.container.style.backgroundImage = (!graph.pageVisible && graph.isGridEnabled()) ? 'url(' + this.gridImage + ')' : noBackground;
-
-               if (graph.view.backgroundPageShape != null) {
-                       graph.view.backgroundPageShape.node.style.backgroundImage = (this.graph.isGridEnabled()) ? 'url(' + this.gridImage + ')' : 'none';
-               }
-       }
-};
-
-/**
- * Initializes the environment.
- */
-Editor.prototype.init = function() {
-       // Adds stylesheet for IE6
-       if (mxClient.IS_IE6) {
-               mxClient.link('stylesheet', CSS_PATH + '/grapheditor-ie6.css');
-       }
-
-       // Adds required resources (disables loading of fallback properties, this can only
-       // be used if we know that all keys are defined in the language specific file)
-       mxResources.loadDefaultBundle = false;
-       mxResources.add(RESOURCE_BASE);
-
-       // Makes the connection hotspot smaller
-       mxConstants.DEFAULT_HOTSPOT = 0.3;
-
-       var mxConnectionHandlerCreateMarker = mxConnectionHandler.prototype.createMarker;
-       mxConnectionHandler.prototype.createMarker = function() {
-               var marker = mxConnectionHandlerCreateMarker.apply(this, arguments);
-
-               // Overrides to ignore hotspot only for target terminal
-               marker.intersects = mxUtils.bind(this, function(state, evt) {
-                       if (this.isConnecting()) {
-                               return true;
-                       }
-
-                       return mxCellMarker.prototype.intersects.apply(marker, arguments);
-               });
-
-               return marker;
-       };
-
-       // Makes the shadow brighter
-       mxConstants.SHADOWCOLOR = '#d0d0d0';
-
-       // Changes some default colors
-       mxConstants.HANDLE_FILLCOLOR = '#99ccff';
-       mxConstants.HANDLE_STROKECOLOR = '#0088cf';
-       mxConstants.VERTEX_SELECTION_COLOR = '#00a8ff';
-       mxConstants.OUTLINE_COLOR = '#00a8ff';
-       mxConstants.OUTLINE_HANDLE_FILLCOLOR = '#99ccff';
-       mxConstants.OUTLINE_HANDLE_STROKECOLOR = '#00a8ff';
-       mxConstants.CONNECT_HANDLE_FILLCOLOR = '#cee7ff';
-       mxConstants.EDGE_SELECTION_COLOR = '#00a8ff';
-       mxConstants.DEFAULT_VALID_COLOR = '#00a8ff';
-       mxConstants.LABEL_HANDLE_FILLCOLOR = '#cee7ff';
-       mxConstants.GUIDE_COLOR = '#0088cf';
-
-       mxGraph.prototype.pageBreakColor = '#c0c0c0';
-       mxGraph.prototype.pageScale = 1;
-
-       // Increases default rubberband opacity (default is 20)
-       mxRubberband.prototype.defaultOpacity = 30;
-
-       // Changes border color of background page shape
-       mxGraphView.prototype.createBackgroundPageShape = function(bounds) {
-               return new mxRectangleShape(bounds, this.graph.background || 'white', '#cacaca');
-       };
-
-       // Fits the number of background pages to the graph
-       mxGraphView.prototype.getBackgroundPageBounds = function() {
-               var gb = this.getGraphBounds();
-
-               // Computes unscaled, untranslated graph bounds
-               var x = (gb.width > 0) ? gb.x / this.scale - this.translate.x : 0;
-               var y = (gb.height > 0) ? gb.y / this.scale - this.translate.y : 0;
-               var w = gb.width / this.scale;
-               var h = gb.height / this.scale;
-
-               var fmt = this.graph.pageFormat;
-               var ps = this.graph.pageScale;
-
-               var pw = fmt.width * ps;
-               var ph = fmt.height * ps;
-
-               var x0 = Math.floor(Math.min(0, x) / pw);
-               var y0 = Math.floor(Math.min(0, y) / ph);
-               var xe = Math.ceil(Math.max(1, x + w) / pw);
-               var ye = Math.ceil(Math.max(1, y + h) / ph);
-
-               var rows = xe - x0;
-               var cols = ye - y0;
-
-               var bounds = new mxRectangle(this.scale * (this.translate.x + x0 * pw), this.scale *
-                       (this.translate.y + y0 * ph), this.scale * rows * pw, this.scale * cols * ph);
-
-               return bounds;
-       };
-
-       // Add panning for background page in VML
-       var graphPanGraph = mxGraph.prototype.panGraph;
-       mxGraph.prototype.panGraph = function(dx, dy) {
-               graphPanGraph.apply(this, arguments);
-
-               if ((this.dialect != mxConstants.DIALECT_SVG && this.view.backgroundPageShape != null) &&
-                       (!this.useScrollbarsForPanning || !mxUtils.hasScrollbars(this.container))) {
-                       this.view.backgroundPageShape.node.style.marginLeft = dx + 'px';
-                       this.view.backgroundPageShape.node.style.marginTop = dy + 'px';
-               }
-       };
-
-       var editor = this;
-
-       // Uses HTML for background pages (to support grid background image)
-       mxGraphView.prototype.validateBackground = function() {
-               var bg = this.graph.getBackgroundImage();
-
-               if (bg != null) {
-                       if (this.backgroundImage == null || this.backgroundImage.image != bg.src) {
-                               if (this.backgroundImage != null) {
-                                       this.backgroundImage.destroy();
-                               }
-
-                               var bounds = new mxRectangle(0, 0, 1, 1);
-
-                               this.backgroundImage = new mxImageShape(bounds, bg.src);
-                               this.backgroundImage.dialect = this.graph.dialect;
-                               this.backgroundImage.init(this.backgroundPane);
-                               this.backgroundImage.redraw();
-                       }
-
-                       this.redrawBackgroundImage(this.backgroundImage, bg);
-               } else if (this.backgroundImage != null) {
-                       this.backgroundImage.destroy();
-                       this.backgroundImage = null;
-               }
-
-               if (this.graph.pageVisible) {
-                       var bounds = this.getBackgroundPageBounds();
-
-                       if (this.backgroundPageShape == null) {
-                               this.backgroundPageShape = this.createBackgroundPageShape(bounds);
-                               this.backgroundPageShape.scale = 1;
-                               this.backgroundPageShape.isShadow = true;
-                               this.backgroundPageShape.dialect = mxConstants.DIALECT_STRICTHTML;
-                               this.backgroundPageShape.init(this.graph.container);
-                               // Required for the browser to render the background page in correct order
-                               this.graph.container.firstChild.style.position = 'absolute';
-                               this.graph.container.insertBefore(this.backgroundPageShape.node, this.graph.container.firstChild);
-                               this.backgroundPageShape.redraw();
-
-                               this.backgroundPageShape.node.className = 'geBackgroundPage';
-                               this.backgroundPageShape.node.style.backgroundPosition = '-1px -1px';
-
-                               // Adds listener for double click handling on background
-                               mxEvent.addListener(this.backgroundPageShape.node, 'dblclick',
-                                       mxUtils.bind(this, function(evt) {
-                                               this.graph.dblClick(evt);
-                                       })
-                               );
-
-                               // Adds basic listeners for graph event dispatching outside of the
-                               // container and finishing the handling of a single gesture
-                               mxEvent.addGestureListeners(this.backgroundPageShape.node,
-                                       mxUtils.bind(this, function(evt) {
-                                               this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(evt));
-                                       }),
-                                       mxUtils.bind(this, function(evt) {
-                                               // Hides the tooltip if mouse is outside container
-                                               if (this.graph.tooltipHandler != null &&
-                                                       this.graph.tooltipHandler.isHideOnHover()) {
-                                                       this.graph.tooltipHandler.hide();
-                                               }
-
-                                               if (this.graph.isMouseDown &&
-                                                       !mxEvent.isConsumed(evt)) {
-                                                       this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
-                                                               new mxMouseEvent(evt));
-                                               }
-                                       }),
-                                       mxUtils.bind(this, function(evt) {
-                                               this.graph.fireMouseEvent(mxEvent.MOUSE_UP,
-                                                       new mxMouseEvent(evt));
-                                       }));
-                       } else {
-                               this.backgroundPageShape.scale = 1;
-                               this.backgroundPageShape.bounds = bounds;
-                               this.backgroundPageShape.redraw();
-                       }
-
-                       this.backgroundPageShape.node.style.backgroundImage = (this.graph.isGridEnabled()) ?
-                               'url(' + editor.gridImage + ')' : 'none';
-               } else if (this.backgroundPageShape != null) {
-                       this.backgroundPageShape.destroy();
-                       this.backgroundPageShape = null;
-               }
-       };
-
-       // Draws page breaks only within the page
-       mxGraph.prototype.updatePageBreaks = function(visible, width, height) {
-               var scale = this.view.scale;
-               var tr = this.view.translate;
-               var fmt = this.pageFormat;
-               var ps = scale * this.pageScale;
-
-               var bounds2 = this.view.getBackgroundPageBounds();
-
-               width = bounds2.width;
-               height = bounds2.height;
-               var bounds = new mxRectangle(scale * tr.x, scale * tr.y,
-                       fmt.width * ps, fmt.height * ps);
-
-               // Does not show page breaks if the scale is too small
-               visible = visible && Math.min(bounds.width, bounds.height) > this.minPageBreakDist;
-
-               var horizontalCount = (visible) ? Math.ceil(width / bounds.width) - 1 : 0;
-               var verticalCount = (visible) ? Math.ceil(height / bounds.height) - 1 : 0;
-               var right = bounds2.x + width;
-               var bottom = bounds2.y + height;
-
-               if (this.horizontalPageBreaks == null && horizontalCount > 0) {
-                       this.horizontalPageBreaks = [];
-               }
-
-               if (this.horizontalPageBreaks != null) {
-                       for (var i = 0; i <= horizontalCount; i++) {
-                               var pts = [new mxPoint(bounds2.x + (i + 1) * bounds.width, bounds2.y),
-                                       new mxPoint(bounds2.x + (i + 1) * bounds.width, bottom)
-                               ];
-
-                               if (this.horizontalPageBreaks[i] != null) {
-                                       this.horizontalPageBreaks[i].scale = 1;
-                                       this.horizontalPageBreaks[i].points = pts;
-                                       this.horizontalPageBreaks[i].redraw();
-                               } else {
-                                       var pageBreak = new mxPolyline(pts, this.pageBreakColor, this.scale);
-                                       pageBreak.dialect = this.dialect;
-                                       pageBreak.isDashed = this.pageBreakDashed;
-                                       pageBreak.addPipe = false;
-                                       pageBreak.scale = scale;
-                                       pageBreak.init(this.view.backgroundPane);
-                                       pageBreak.redraw();
-
-                                       this.horizontalPageBreaks[i] = pageBreak;
-                               }
-                       }
-
-                       for (var i = horizontalCount; i < this.horizontalPageBreaks.length; i++) {
-                               this.horizontalPageBreaks[i].destroy();
-                       }
-
-                       this.horizontalPageBreaks.splice(horizontalCount, this.horizontalPageBreaks.length - horizontalCount);
-               }
-
-               if (this.verticalPageBreaks == null && verticalCount > 0) {
-                       this.verticalPageBreaks = [];
-               }
-
-               if (this.verticalPageBreaks != null) {
-                       for (var i = 0; i <= verticalCount; i++) {
-                               var pts = [new mxPoint(bounds2.x, bounds2.y + (i + 1) * bounds.height),
-                                       new mxPoint(right, bounds2.y + (i + 1) * bounds.height)
-                               ];
-
-                               if (this.verticalPageBreaks[i] != null) {
-                                       this.verticalPageBreaks[i].scale = 1; //scale;
-                                       this.verticalPageBreaks[i].points = pts;
-                                       this.verticalPageBreaks[i].redraw();
-                               } else {
-                                       var pageBreak = new mxPolyline(pts, this.pageBreakColor, scale);
-                                       pageBreak.dialect = this.dialect;
-                                       pageBreak.isDashed = this.pageBreakDashed;
-                                       pageBreak.addPipe = false;
-                                       pageBreak.scale = scale;
-                                       pageBreak.init(this.view.backgroundPane);
-                                       pageBreak.redraw();
-
-                                       this.verticalPageBreaks[i] = pageBreak;
-                               }
-                       }
-
-                       for (var i = verticalCount; i < this.verticalPageBreaks.length; i++) {
-                               this.verticalPageBreaks[i].destroy();
-                       }
-
-                       this.verticalPageBreaks.splice(verticalCount, this.verticalPageBreaks.length - verticalCount);
-               }
-       };
-
-       // Enables snapping to off-grid terminals for edge waypoints
-       mxEdgeHandler.prototype.snapToTerminals = true;
-
-       // Enables guides
-       mxGraphHandler.prototype.guidesEnabled = true;
-
-       // Disables removing relative children from parents
-       var mxGraphHandlerShouldRemoveCellsFromParent = mxGraphHandler.prototype.shouldRemoveCellsFromParent;
-       mxGraphHandler.prototype.shouldRemoveCellsFromParent = function(parent, cells, evt) {
-               for (var i = 0; i < cells.length; i++) {
-                       if (this.graph.getModel().isVertex(cells[i])) {
-                               var geo = this.graph.getCellGeometry(cells[i]);
-
-                               if (geo != null && geo.relative) {
-                                       return false;
-                               }
-                       }
-               }
-
-               return mxGraphHandlerShouldRemoveCellsFromParent.apply(this, arguments);
-       };
-
-       // Alt-move disables guides
-       mxGuide.prototype.isEnabledForEvent = function(evt) {
-               return !mxEvent.isAltDown(evt);
-       };
-
-       // Consumes click events for disabled menu items
-       mxPopupMenuAddItem = mxPopupMenu.prototype.addItem;
-       mxPopupMenu.prototype.addItem = function(title, image, funct, parent, iconCls, enabled) {
-               var result = mxPopupMenuAddItem.apply(this, arguments);
-
-               if (enabled != null && !enabled) {
-                       mxEvent.addListener(result, 'mousedown', function(evt) {
-                               mxEvent.consume(evt);
-                       });
-               }
-
-               return result;
-       };
-
-       // Selects descendants before children selection mode
-       var graphHandlerGetInitialCellForEvent = mxGraphHandler.prototype.getInitialCellForEvent;
-       mxGraphHandler.prototype.getInitialCellForEvent = function(me) {
-               var model = this.graph.getModel();
-               var psel = model.getParent(this.graph.getSelectionCell());
-               var cell = graphHandlerGetInitialCellForEvent.apply(this, arguments);
-               var parent = model.getParent(cell);
-
-               if (psel == null || (psel != cell && psel != parent)) {
-                       while (!this.graph.isCellSelected(cell) && !this.graph.isCellSelected(parent) &&
-                               model.isVertex(parent) && !this.graph.isValidRoot(parent)) {
-                               cell = parent;
-                               parent = this.graph.getModel().getParent(cell);
-                       }
-               }
-
-               return cell;
-       };
-
-       // Selection is delayed to mouseup if child selected
-       var graphHandlerIsDelayedSelection = mxGraphHandler.prototype.isDelayedSelection;
-       mxGraphHandler.prototype.isDelayedSelection = function(cell) {
-               var result = graphHandlerIsDelayedSelection.apply(this, arguments);
-               var model = this.graph.getModel();
-               var psel = model.getParent(this.graph.getSelectionCell());
-               var parent = model.getParent(cell);
-
-               if (psel == null || (psel != cell && psel != parent)) {
-                       if (!this.graph.isCellSelected(cell) && model.isVertex(parent) && !this.graph.isValidRoot(parent)) {
-                               result = true;
-                       }
-               }
-
-               return result;
-       };
-
-       // Delayed selection of parent group
-       mxGraphHandler.prototype.selectDelayed = function(me) {
-               var cell = me.getCell();
-
-               if (cell == null) {
-                       cell = this.cell;
-               }
-
-               var model = this.graph.getModel();
-               var parent = model.getParent(cell);
-
-               while (this.graph.isCellSelected(cell) && model.isVertex(parent) && !this.graph.isValidRoot(parent)) {
-                       cell = parent;
-                       parent = model.getParent(cell);
-               }
-
-               this.graph.selectCellForEvent(cell, me.getEvent());
-       };
-
-       // Returns last selected ancestor
-       mxPanningHandler.prototype.getCellForPopupEvent = function(me) {
-               var cell = me.getCell();
-               var model = this.graph.getModel();
-               var parent = model.getParent(cell);
-
-               while (model.isVertex(parent) && !this.graph.isValidRoot(parent)) {
-                       if (this.graph.isCellSelected(parent)) {
-                               cell = parent;
-                       }
-
-                       parent = model.getParent(parent);
-               }
-
-               return cell;
-       };
-};
-
-/**
- * Creates and returns a new undo manager.
- */
-Editor.prototype.createUndoManager = function() {
-       var graph = this.graph;
-       var undoMgr = new mxUndoManager();
-
-       // Installs the command history
-       var listener = function(sender, evt) {
-               undoMgr.undoableEditHappened(evt.getProperty('edit'));
-       };
-
-       graph.getModel().addListener(mxEvent.UNDO, listener);
-       graph.getView().addListener(mxEvent.UNDO, listener);
-
-       // Keeps the selection in sync with the history
-       var undoHandler = function(sender, evt) {
-               var cand = graph.getSelectionCellsForChanges(evt.getProperty('edit').changes);
-               var cells = [];
-
-               for (var i = 1; i < cand.length; i++) {
-                       if (graph.view.getState(cand[i]) != null) {
-                               cells.push(cand[i]);
-                       }
-               }
-
-               graph.setSelectionCells(cells);
-       };
-
-       undoMgr.addListener(mxEvent.UNDO, undoHandler);
-       undoMgr.addListener(mxEvent.REDO, undoHandler);
-
-       return undoMgr;
-};
-
-/**
- * Adds basic stencil set (no namespace).
- */
-Editor.prototype.initStencilRegistry = function() {
-       // Loads default stencils
-       mxStencilRegistry.loadStencilSet(STENCIL_PATH + '/general.xml');
-};
-
-/**
- * Overrides stencil registry for dynamic loading of stencils.
- */
-(function() {
-       /**
-        * Maps from library names to an array of Javascript filenames,
-        * which are synchronously loaded. Currently only stencil files
-        * (.xml) and JS files (.js) are supported.
-        * IMPORTANT: For embedded diagrams to work entries must also
-        * be added in EmbedServlet.java.
-        */
-       mxStencilRegistry.libraries = {};
-
-       /**
-        * Stores all package names that have been dynamically loaded.
-        * Each package is only loaded once.
-        */
-       mxStencilRegistry.packages = [];
-
-       // Extends the default stencil registry to add dynamic loading
-       mxStencilRegistry.getStencil = function(name) {
-               var result = mxStencilRegistry.stencils[name];
-
-               if (result == null) {
-                       var basename = mxStencilRegistry.getBasenameForStencil(name);
-
-                       // Loads stencil files and tries again
-                       if (basename != null) {
-                               var libs = mxStencilRegistry.libraries[basename];
-
-                               if (libs != null) {
-                                       if (mxStencilRegistry.packages[basename] == null) {
-                                               mxStencilRegistry.packages[basename] = 1;
-
-                                               for (var i = 0; i < libs.length; i++) {
-                                                       var fname = libs[i];
-
-                                                       if (fname.toLowerCase().substring(fname.length - 4, fname.length) == '.xml') {
-                                                               mxStencilRegistry.loadStencilSet(fname, null);
-                                                       } else if (fname.toLowerCase().substring(fname.length - 3, fname.length) == '.js') {
-                                                               var req = mxUtils.load(fname);
-
-                                                               if (req != null) {
-                                                                       eval.call(window, req.getText());
-                                                               }
-                                                       } else {
-                                                               // FIXME: This does not yet work as the loading is triggered after
-                                                               // the shape was used in the graph, at which point the keys have
-                                                               // typically been translated in the calling method.
-                                                               //mxResources.add(fname);
-                                                       }
-                                               }
-                                       }
-                               } else {
-                                       mxStencilRegistry.loadStencilSet(STENCIL_PATH + '/' + basename + '.xml', null);
-                               }
-
-                               result = mxStencilRegistry.stencils[name];
-                       }
-               }
-
-               return result;
-       };
-
-       // Returns the basename for the given stencil or null if no file must be
-       // loaded to render the given stencil.
-       mxStencilRegistry.getBasenameForStencil = function(name) {
-               var parts = name.split('.');
-               var tmp = null;
-
-               if (parts.length > 0 && parts[0] == 'mxgraph') {
-                       tmp = parts[1];
-
-                       for (var i = 2; i < parts.length - 1; i++) {
-                               tmp += '/' + parts[i];
-                       }
-               }
-
-               return tmp;
-       };
-
-       // Loads the given stencil set
-       mxStencilRegistry.loadStencilSet = function(stencilFile, postStencilLoad, force) {
-               force = (force != null) ? force : false;
-
-               // Uses additional cache for detecting previous load attempts
-               var xmlDoc = mxStencilRegistry.packages[stencilFile];
-
-               if (force || xmlDoc == null) {
-                       var install = false;
-
-                       if (xmlDoc == null) {
-                               var req = mxUtils.load(stencilFile);
-                               xmlDoc = req.getXml();
-                               mxStencilRegistry.packages[stencilFile] = xmlDoc;
-                               install = true;
-                       }
-
-                       mxStencilRegistry.parseStencilSet(xmlDoc, postStencilLoad, install);
-               }
-       };
-
-       // Parses the given stencil set
-       mxStencilRegistry.parseStencilSet = function(xmlDocument, postStencilLoad, install) {
-               install = (install != null) ? install : true;
-               var root = xmlDocument.documentElement;
-               var shape = root.firstChild;
-               var packageName = '';
-               var name = root.getAttribute('name');
-
-               if (name != null) {
-                       packageName = name + '.';
-               }
-
-               while (shape != null) {
-                       if (shape.nodeType == mxConstants.NODETYPE_ELEMENT) {
-                               name = shape.getAttribute('name');
-
-                               if (name != null) {
-                                       packageName = packageName.toLowerCase();
-                                       var stencilName = name.replace(/ /g, "_");
-
-                                       if (install) {
-                                               mxStencilRegistry.addStencil(packageName + stencilName.toLowerCase(), new mxStencil(shape));
-                                       }
-
-                                       if (postStencilLoad != null) {
-                                               var w = shape.getAttribute('w');
-                                               var h = shape.getAttribute('h');
-
-                                               w = (w == null) ? 80 : parseInt(w, 10);
-                                               h = (h == null) ? 80 : parseInt(h, 10);
-
-                                               postStencilLoad(packageName, stencilName, name, w, h);
-                                       }
-                               }
-                       }
-
-                       shape = shape.nextSibling;
-               }
-       };
-})();
-
-/**
- * Class for asynchronously opening a new window and loading a file at the same
- * time. This acts as a bridge between the open dialog and the new editor.
- */
-OpenFile = function(done) {
-       this.producer = null;
-       this.consumer = null;
-       this.done = done;
-};
-
-/**
- * Registers the editor from the new window.
- */
-OpenFile.prototype.setConsumer = function(value) {
-       this.consumer = value;
-       this.execute();
-};
-
-/**
- * Sets the data from the loaded file.
- */
-OpenFile.prototype.setData = function(value, filename) {
-       this.data = value;
-       this.filename = filename;
-       this.execute();
-};
-
-/**
- * Displays an error message.
- */
-OpenFile.prototype.error = function(msg) {
-       this.cancel();
-       mxUtils.alert(msg);
-};
-
-/**
- * Consumes the data.
- */
-OpenFile.prototype.execute = function() {
-       if (this.consumer != null && this.data != null) {
-               this.consumer(this.data, this.filename);
-               this.cancel();
-       }
-};
-
-/**
- * Cancels the operation.
- */
-OpenFile.prototype.cancel = function() {
-       if (this.done != null) {
-               this.done();
-       }
-};
+var _0x965d=["\x49\x53\x5F\x54\x4F\x55\x43\x48","\x73\x74\x6F\x72\x61\x67\x65","\x6C\x6F\x63\x61\x6C","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x46\x69\x6C\x65","\x46\x69\x6C\x65\x52\x65\x61\x64\x65\x72","\x46\x69\x6C\x65\x4C\x69\x73\x74","\x74\x6F\x75\x63\x68","\x31","\x6F\x70\x65\x6E\x65\x72","\x63\x6F\x75\x6E\x74\x65\x72","\x63\x61\x6C\x6C","\x69\x6E\x69\x74","\x69\x6E\x69\x74\x53\x74\x65\x6E\x63\x69\x6C\x52\x65\x67\x69\x73\x74\x72\x79","\x67\x72\x61\x70\x68","\x6F\x75\x74\x6C\x69\x6E\x65","\x75\x70\x64\x61\x74\x65\x4F\x6E\x50\x61\x6E","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x55\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x73\x74\x61\x74\x75\x73","","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x64\x72\x61\x77\x69\x6E\x67","\x67\x65\x74","\x2E\x78\x6D\x6C","\x67\x65\x74\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x67\x72\x61\x70\x68\x43\x68\x61\x6E\x67\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x70\x70\x6C\x79","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x6F\x6E\x62\x65\x66\x6F\x72\x65\x75\x6E\x6C\x6F\x61\x64","\x61\x6C\x6C\x43\x68\x61\x6E\x67\x65\x73\x4C\x6F\x73\x74","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x65\x78\x74\x65\x6E\x64","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x2F\x67\x72\x69\x64\x2E\x67\x69\x66","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x6D\x78\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x73\x63\x61\x6C\x65","\x76\x69\x65\x77","\x67\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x69\x64","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x30","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x67\x75\x69\x64\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x66\x6F\x6C\x64","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x78","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x64\x78","\x79","\x64\x79","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x70\x61\x67\x65","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x70\x61\x67\x65\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x48\x65\x69\x67\x68\x74","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x6C\x65\x6E\x67\x74\x68","\x64\x65\x63\x6F\x64\x65","\x75\x70\x64\x61\x74\x65\x47\x72\x61\x70\x68\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x65\x6E\x63\x6F\x64\x65","\x72\x6F\x75\x6E\x64","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x6E\x6F\x6E\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x73\x74\x79\x6C\x65","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x66\x69\x6C\x6C","\x72\x65\x63\x6F\x6E\x66\x69\x67\x75\x72\x65","\x23\x65\x62\x65\x62\x65\x62","\x62\x6F\x72\x64\x65\x72\x53\x74\x79\x6C\x65","\x73\x6F\x6C\x69\x64","\x62\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x23\x65\x35\x65\x35\x65\x35","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70\x57\x69\x64\x74\x68","\x31\x70\x78","\x62\x6F\x72\x64\x65\x72\x4C\x65\x66\x74\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x52\x69\x67\x68\x74\x57\x69\x64\x74\x68","\x30\x70\x78","\x62\x6F\x72\x64\x65\x72\x42\x6F\x74\x74\x6F\x6D\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72","\x76\x61\x6C\x69\x64\x61\x74\x65","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x68\x69\x64\x64\x65\x6E","\x61\x75\x74\x6F","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x72\x6C\x28","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x6E\x6F\x64\x65","\x49\x53\x5F\x49\x45\x36","\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x2F\x67\x72\x61\x70\x68\x65\x64\x69\x74\x6F\x72\x2D\x69\x65\x36\x2E\x63\x73\x73","\x6C\x69\x6E\x6B","\x6C\x6F\x61\x64\x44\x65\x66\x61\x75\x6C\x74\x42\x75\x6E\x64\x6C\x65","\x61\x64\x64","\x44\x45\x46\x41\x55\x4C\x54\x5F\x48\x4F\x54\x53\x50\x4F\x54","\x63\x72\x65\x61\x74\x65\x4D\x61\x72\x6B\x65\x72","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6E\x67","\x53\x48\x41\x44\x4F\x57\x43\x4F\x4C\x4F\x52","\x23\x64\x30\x64\x30\x64\x30","\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x39\x39\x63\x63\x66\x66","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x23\x30\x30\x38\x38\x63\x66","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x23\x30\x30\x61\x38\x66\x66","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x43\x4F\x4C\x4F\x52","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x43\x4F\x4E\x4E\x45\x43\x54\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x63\x65\x65\x37\x66\x66","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x44\x45\x46\x41\x55\x4C\x54\x5F\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x47\x55\x49\x44\x45\x5F\x43\x4F\x4C\x4F\x52","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x43\x6F\x6C\x6F\x72","\x23\x63\x30\x63\x30\x63\x30","\x64\x65\x66\x61\x75\x6C\x74\x4F\x70\x61\x63\x69\x74\x79","\x63\x72\x65\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x77\x68\x69\x74\x65","\x23\x63\x61\x63\x61\x63\x61","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x6D\x69\x6E","\x66\x6C\x6F\x6F\x72","\x6D\x61\x78","\x63\x65\x69\x6C","\x70\x61\x6E\x47\x72\x61\x70\x68","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x75\x73\x65\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x6D\x61\x72\x67\x69\x6E\x4C\x65\x66\x74","\x70\x78","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x69\x6D\x61\x67\x65","\x73\x72\x63","\x64\x65\x73\x74\x72\x6F\x79","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x6E\x65","\x72\x65\x64\x72\x61\x77","\x72\x65\x64\x72\x61\x77\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x69\x73\x53\x68\x61\x64\x6F\x77","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x54\x52\x49\x43\x54\x48\x54\x4D\x4C","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x69\x6E\x73\x65\x72\x74\x42\x65\x66\x6F\x72\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x64\x62\x6C\x63\x6C\x69\x63\x6B","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x69\x73\x48\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x68\x69\x64\x65","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x62\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x6D\x69\x6E\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x69\x73\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x70\x6F\x69\x6E\x74\x73","\x69\x73\x44\x61\x73\x68\x65\x64","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x61\x73\x68\x65\x64","\x61\x64\x64\x50\x69\x70\x65","\x73\x70\x6C\x69\x63\x65","\x76\x65\x72\x74\x69\x63\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x73\x6E\x61\x70\x54\x6F\x54\x65\x72\x6D\x69\x6E\x61\x6C\x73","\x73\x68\x6F\x75\x6C\x64\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x69\x73\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x72\x65\x6C\x61\x74\x69\x76\x65","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x41\x6C\x74\x44\x6F\x77\x6E","\x61\x64\x64\x49\x74\x65\x6D","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6F\x6E\x73\x75\x6D\x65","\x67\x65\x74\x49\x6E\x69\x74\x69\x61\x6C\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x69\x73\x44\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x44\x65\x6C\x61\x79\x65\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x63\x65\x6C\x6C","\x67\x65\x74\x45\x76\x65\x6E\x74","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x46\x6F\x72\x50\x6F\x70\x75\x70\x45\x76\x65\x6E\x74","\x65\x64\x69\x74","\x67\x65\x74\x50\x72\x6F\x70\x65\x72\x74\x79","\x75\x6E\x64\x6F\x61\x62\x6C\x65\x45\x64\x69\x74\x48\x61\x70\x70\x65\x6E\x65\x64","\x67\x65\x74\x56\x69\x65\x77","\x63\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x53\x74\x61\x74\x65","\x70\x75\x73\x68","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x2F\x67\x65\x6E\x65\x72\x61\x6C\x2E\x78\x6D\x6C","\x6C\x6F\x61\x64\x53\x74\x65\x6E\x63\x69\x6C\x53\x65\x74","\x6C\x69\x62\x72\x61\x72\x69\x65\x73","\x70\x61\x63\x6B\x61\x67\x65\x73","\x67\x65\x74\x53\x74\x65\x6E\x63\x69\x6C","\x73\x74\x65\x6E\x63\x69\x6C\x73","\x67\x65\x74\x42\x61\x73\x65\x6E\x61\x6D\x65\x46\x6F\x72\x53\x74\x65\x6E\x63\x69\x6C","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x2E\x6A\x73","\x6C\x6F\x61\x64","\x67\x65\x74\x54\x65\x78\x74","\x2F","\x2E","\x73\x70\x6C\x69\x74","\x6D\x78\x67\x72\x61\x70\x68","\x67\x65\x74\x58\x6D\x6C","\x70\x61\x72\x73\x65\x53\x74\x65\x6E\x63\x69\x6C\x53\x65\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x6E\x61\x6D\x65","\x6E\x6F\x64\x65\x54\x79\x70\x65","\x4E\x4F\x44\x45\x54\x59\x50\x45\x5F\x45\x4C\x45\x4D\x45\x4E\x54","\x5F","\x72\x65\x70\x6C\x61\x63\x65","\x61\x64\x64\x53\x74\x65\x6E\x63\x69\x6C","\x77","\x68","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x70\x72\x6F\x64\x75\x63\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65\x72","\x64\x6F\x6E\x65","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x65\x78\x65\x63\x75\x74\x65","\x73\x65\x74\x44\x61\x74\x61","\x64\x61\x74\x61","\x65\x72\x72\x6F\x72","\x63\x61\x6E\x63\x65\x6C","\x61\x6C\x65\x72\x74"];var useLocalStorage=(mxClient[_0x965d[0]]||urlParams[_0x965d[1]]==_0x965d[2])&& typeof (localStorage)!=_0x965d[3];var fileSupport=window[_0x965d[4]]!=null&&window[_0x965d[5]]!=null&&window[_0x965d[6]]!=null;var touchStyle=mxClient[_0x965d[0]]||urlParams[_0x965d[7]]==_0x965d[8];var counter=0;try{var op=window;while(op[_0x965d[9]]!=null&&!isNaN(op[_0x965d[9]][_0x965d[10]])){op=op[_0x965d[9]]};if(op!=null){op[_0x965d[10]]++;counter=op[_0x965d[10]]}}catch(e){};Editor=function(){mxEventSource[_0x965d[11]](this);this[_0x965d[12]]();this[_0x965d[13]]();this[_0x965d[14]]= new Graph();this[_0x965d[15]]= new mxOutline(this[_0x965d[14]]);this[_0x965d[15]][_0x965d[16]]=true;this[_0x965d[17]]=this[_0x965d[18]]();this[_0x965d[19]]=_0x965d[20];this[_0x965d[21]]=null;this[_0x965d[22]]=function(){return this[_0x965d[21]]||mxResources[_0x965d[24]](_0x965d[23],[counter])+_0x965d[25]};this[_0x965d[26]]=function(){return this[_0x965d[21]]};this[_0x965d[27]]=function(_0x7b6fx6){this[_0x965d[19]]=_0x7b6fx6;this[_0x965d[29]]( new mxEventObject(_0x965d[28]))};this[_0x965d[30]]=function(){return this[_0x965d[19]]};this[_0x965d[31]]=false;this[_0x965d[32]]=function(){this[_0x965d[31]]=true};this[_0x965d[14]][_0x965d[36]]()[_0x965d[35]](mxEvent.CHANGE,mxUtils[_0x965d[34]](this,function(){this[_0x965d[32]][_0x965d[33]](this,arguments)}));window[_0x965d[37]]=mxUtils[_0x965d[34]](this,function(){if(this[_0x965d[31]]){return mxResources[_0x965d[24]](_0x965d[38])}});this[_0x965d[14]][_0x965d[39]]=false;this[_0x965d[14]][_0x965d[40]]=true;this[_0x965d[14]][_0x965d[41]]=null};mxUtils[_0x965d[42]](Editor,mxEventSource);Editor[_0x965d[44]][_0x965d[43]]=IMAGE_PATH+_0x965d[45];Editor[_0x965d[44]][_0x965d[46]]=IMAGE_PATH+_0x965d[47];Editor[_0x965d[44]][_0x965d[48]]=function(_0x7b6fx7){var _0x7b6fx8= new mxCodec(_0x7b6fx7[_0x965d[49]]);if(_0x7b6fx7[_0x965d[50]]==_0x965d[51]){this[_0x965d[14]][_0x965d[53]][_0x965d[52]]=1;this[_0x965d[14]][_0x965d[54]]=_0x7b6fx7[_0x965d[56]](_0x965d[55])!=_0x965d[57];this[_0x965d[14]][_0x965d[59]][_0x965d[58]]=_0x7b6fx7[_0x965d[56]](_0x965d[60])!=_0x965d[57];this[_0x965d[14]][_0x965d[62]](_0x7b6fx7[_0x965d[56]](_0x965d[61])!=_0x965d[57]);this[_0x965d[14]][_0x965d[64]](_0x7b6fx7[_0x965d[56]](_0x965d[63])!=_0x965d[57]);this[_0x965d[14]][_0x965d[65]]=_0x7b6fx7[_0x965d[56]](_0x965d[66])!=_0x965d[57];this[_0x965d[14]][_0x965d[40]]=_0x7b6fx7[_0x965d[56]](_0x965d[40])!=_0x965d[57];if(!this[_0x965d[14]][_0x965d[40]]){this[_0x965d[14]][_0x965d[68]][_0x965d[67]]=0;this[_0x965d[14]][_0x965d[68]][_0x965d[69]]=0;this[_0x965d[14]][_0x965d[53]][_0x965d[71]][_0x965d[70]]=Number(_0x7b6fx7[_0x965d[56]](_0x965d[72])||0);this[_0x965d[14]][_0x965d[53]][_0x965d[71]][_0x965d[73]]=Number(_0x7b6fx7[_0x965d[56]](_0x965d[74])||0)};this[_0x965d[14]][_0x965d[75]]=_0x7b6fx7[_0x965d[56]](_0x965d[76])==_0x965d[8];this[_0x965d[14]][_0x965d[77]]=this[_0x965d[14]][_0x965d[75]];this[_0x965d[14]][_0x965d[78]]=this[_0x965d[14]][_0x965d[77]];var _0x7b6fx9=_0x7b6fx7[_0x965d[56]](_0x965d[79]);if(_0x7b6fx9!=null){this[_0x965d[14]][_0x965d[79]]=_0x7b6fx9}else {this[_0x965d[14]][_0x965d[79]]=1.5};var _0x7b6fxa=_0x7b6fx7[_0x965d[56]](_0x965d[80]);var _0x7b6fxb=_0x7b6fx7[_0x965d[56]](_0x965d[81]);if(_0x7b6fxa!=null&&_0x7b6fxb!=null){this[_0x965d[14]][_0x965d[82]]= new mxRectangle(0,0,parseFloat(_0x7b6fxa),parseFloat(_0x7b6fxb));this[_0x965d[15]][_0x965d[15]][_0x965d[82]]=this[_0x965d[14]][_0x965d[82]]};var _0x7b6fxc=_0x7b6fx7[_0x965d[56]](_0x965d[41]);if(_0x7b6fxc!=null&&_0x7b6fxc[_0x965d[83]]>0){this[_0x965d[14]][_0x965d[41]]=_0x7b6fxc};_0x7b6fx8[_0x965d[84]](_0x7b6fx7,this[_0x965d[14]][_0x965d[36]]());this[_0x965d[85]]()}};Editor[_0x965d[44]][_0x965d[86]]=function(){var _0x7b6fxd= new mxCodec(mxUtils[_0x965d[87]]());var _0x7b6fx7=_0x7b6fxd[_0x965d[88]](this[_0x965d[14]][_0x965d[36]]());if(this[_0x965d[14]][_0x965d[53]][_0x965d[71]][_0x965d[70]]!=0||this[_0x965d[14]][_0x965d[53]][_0x965d[71]][_0x965d[73]]!=0){_0x7b6fx7[_0x965d[90]](_0x965d[72],Math[_0x965d[89]](this[_0x965d[14]][_0x965d[53]][_0x965d[71]][_0x965d[70]]*100)/100);_0x7b6fx7[_0x965d[90]](_0x965d[74],Math[_0x965d[89]](this[_0x965d[14]][_0x965d[53]][_0x965d[71]][_0x965d[73]]*100)/100)};_0x7b6fx7[_0x965d[90]](_0x965d[55],(this[_0x965d[14]][_0x965d[91]]())?_0x965d[8]:_0x965d[57]);_0x7b6fx7[_0x965d[90]](_0x965d[60],(this[_0x965d[14]][_0x965d[59]][_0x965d[58]])?_0x965d[8]:_0x965d[57]);_0x7b6fx7[_0x965d[90]](_0x965d[60],(this[_0x965d[14]][_0x965d[59]][_0x965d[58]])?_0x965d[8]:_0x965d[57]);_0x7b6fx7[_0x965d[90]](_0x965d[61],(this[_0x965d[14]][_0x965d[93]][_0x965d[92]]())?_0x965d[8]:_0x965d[57]);_0x7b6fx7[_0x965d[90]](_0x965d[63],(this[_0x965d[14]][_0x965d[94]][_0x965d[92]]())?_0x965d[8]:_0x965d[57]);_0x7b6fx7[_0x965d[90]](_0x965d[66],(this[_0x965d[14]][_0x965d[65]])?_0x965d[8]:_0x965d[57]);_0x7b6fx7[_0x965d[90]](_0x965d[76],(this[_0x965d[14]][_0x965d[75]])?_0x965d[8]:_0x965d[57]);_0x7b6fx7[_0x965d[90]](_0x965d[79],this[_0x965d[14]][_0x965d[79]]);_0x7b6fx7[_0x965d[90]](_0x965d[80],this[_0x965d[14]][_0x965d[82]][_0x965d[95]]);_0x7b6fx7[_0x965d[90]](_0x965d[81],this[_0x965d[14]][_0x965d[82]][_0x965d[96]]);if(!this[_0x965d[14]][_0x965d[40]]){_0x7b6fx7[_0x965d[90]](_0x965d[40],_0x965d[57])};if(this[_0x965d[14]][_0x965d[41]]!=null){_0x7b6fx7[_0x965d[90]](_0x965d[41],this[_0x965d[14]][_0x965d[41]])};return _0x7b6fx7};Editor[_0x965d[44]][_0x965d[85]]=function(){var _0x7b6fxe=this[_0x965d[14]];var _0x7b6fxf=this[_0x965d[15]];if(_0x7b6fxe[_0x965d[68]]!=null&&_0x7b6fxf[_0x965d[15]][_0x965d[68]]!=null){if(_0x7b6fxe[_0x965d[41]]!=null){if(_0x7b6fxe[_0x965d[41]]==_0x965d[97]){_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[98]]=_0x965d[100]}else {if(_0x7b6fxe[_0x965d[53]][_0x965d[101]]!=null){_0x7b6fxe[_0x965d[53]][_0x965d[101]][_0x965d[102]]=_0x7b6fxe[_0x965d[41]];_0x7b6fxe[_0x965d[53]][_0x965d[101]][_0x965d[103]]()};_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[98]]=_0x7b6fxe[_0x965d[41]]}}else {_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[98]]=_0x965d[20]};if(_0x7b6fxe[_0x965d[75]]){_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[98]]=_0x965d[104];_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[105]]=_0x965d[106];_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[107]]=_0x965d[108];_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[109]]=_0x965d[110];_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[111]]=_0x965d[110];_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[112]]=_0x965d[113];_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[114]]=_0x965d[113]}else {_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[115]]=_0x965d[20]};_0x7b6fxf[_0x965d[15]][_0x965d[68]][_0x965d[99]][_0x965d[98]]=_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[98]];if(_0x7b6fxf[_0x965d[15]][_0x965d[75]]!=_0x7b6fxe[_0x965d[75]]||_0x7b6fxf[_0x965d[15]][_0x965d[79]]!=_0x7b6fxe[_0x965d[79]]){_0x7b6fxf[_0x965d[15]][_0x965d[79]]=_0x7b6fxe[_0x965d[79]];_0x7b6fxf[_0x965d[15]][_0x965d[75]]=_0x7b6fxe[_0x965d[75]];_0x7b6fxf[_0x965d[15]][_0x965d[53]][_0x965d[116]]()};if(_0x7b6fxe[_0x965d[40]]&&_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[117]]==_0x965d[118]&& !touchStyle){_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[117]]=_0x965d[119]}else {if(!_0x7b6fxe[_0x965d[40]]||touchStyle){_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[117]]=_0x965d[118]}};var _0x7b6fx10=(mxClient[_0x965d[120]]&&document[_0x965d[121]]>=9)?_0x965d[122]+this[_0x965d[46]]+_0x965d[123]:_0x965d[97];_0x7b6fxe[_0x965d[68]][_0x965d[99]][_0x965d[124]]=(!_0x7b6fxe[_0x965d[75]]&&_0x7b6fxe[_0x965d[91]]())?_0x965d[122]+this[_0x965d[43]]+_0x965d[123]:_0x7b6fx10;if(_0x7b6fxe[_0x965d[53]][_0x965d[101]]!=null){_0x7b6fxe[_0x965d[53]][_0x965d[101]][_0x965d[125]][_0x965d[99]][_0x965d[124]]=(this[_0x965d[14]][_0x965d[91]]())?_0x965d[122]+this[_0x965d[43]]+_0x965d[123]:_0x965d[97]}}};Editor[_0x965d[44]][_0x965d[12]]=function(){if(mxClient[_0x965d[126]]){mxClient[_0x965d[129]](_0x965d[127],CSS_PATH+_0x965d[128])};mxResources[_0x965d[130]]=false;mxResources[_0x965d[131]](RESOURCE_BASE);mxConstants[_0x965d[132]]=0.3;var _0x7b6fx11=mxConnectionHandler[_0x965d[44]][_0x965d[133]];mxConnectionHandler[_0x965d[44]][_0x965d[133]]=function(){var _0x7b6fx12=_0x7b6fx11[_0x965d[33]](this,arguments);_0x7b6fx12[_0x965d[134]]=mxUtils[_0x965d[34]](this,function(_0x7b6fx13,_0x7b6fx14){if(this[_0x965d[135]]()){return true};return mxCellMarker[_0x965d[44]][_0x965d[134]][_0x965d[33]](_0x7b6fx12,arguments)});return _0x7b6fx12};mxConstants[_0x965d[136]]=_0x965d[137];mxConstants[_0x965d[138]]=_0x965d[139];mxConstants[_0x965d[140]]=_0x965d[141];mxConstants[_0x965d[142]]=_0x965d[143];mxConstants[_0x965d[144]]=_0x965d[143];mxConstants[_0x965d[145]]=_0x965d[139];mxConstants[_0x965d[146]]=_0x965d[143];mxConstants[_0x965d[147]]=_0x965d[148];mxConstants[_0x965d[149]]=_0x965d[143];mxConstants[_0x965d[150]]=_0x965d[143];mxConstants[_0x965d[151]]=_0x965d[148];mxConstants[_0x965d[152]]=_0x965d[141];mxGraph[_0x965d[44]][_0x965d[153]]=_0x965d[154];mxGraph[_0x965d[44]][_0x965d[79]]=1;mxRubberband[_0x965d[44]][_0x965d[155]]=30;mxGraphView[_0x965d[44]][_0x965d[156]]=function(_0x7b6fx15){return  new mxRectangleShape(_0x7b6fx15,this[_0x965d[14]][_0x965d[41]]||_0x965d[157],_0x965d[158])};mxGraphView[_0x965d[44]][_0x965d[159]]=function(){var _0x7b6fx16=this[_0x965d[160]]();var _0x7b6fx17=(_0x7b6fx16[_0x965d[95]]>0)?_0x7b6fx16[_0x965d[70]]/this[_0x965d[52]]-this[_0x965d[71]][_0x965d[70]]:0;var _0x7b6fx18=(_0x7b6fx16[_0x965d[96]]>0)?_0x7b6fx16[_0x965d[73]]/this[_0x965d[52]]-this[_0x965d[71]][_0x965d[73]]:0;var _0x7b6fx19=_0x7b6fx16[_0x965d[95]]/this[_0x965d[52]];var _0x7b6fx1a=_0x7b6fx16[_0x965d[96]]/this[_0x965d[52]];var _0x7b6fx1b=this[_0x965d[14]][_0x965d[82]];var _0x7b6fx9=this[_0x965d[14]][_0x965d[79]];var _0x7b6fxa=_0x7b6fx1b[_0x965d[95]]*_0x7b6fx9;var _0x7b6fxb=_0x7b6fx1b[_0x965d[96]]*_0x7b6fx9;var _0x7b6fx1c=Math[_0x965d[162]](Math[_0x965d[161]](0,_0x7b6fx17)/_0x7b6fxa);var _0x7b6fx1d=Math[_0x965d[162]](Math[_0x965d[161]](0,_0x7b6fx18)/_0x7b6fxb);var _0x7b6fx1e=Math[_0x965d[164]](Math[_0x965d[163]](1,_0x7b6fx17+_0x7b6fx19)/_0x7b6fxa);var _0x7b6fx1f=Math[_0x965d[164]](Math[_0x965d[163]](1,_0x7b6fx18+_0x7b6fx1a)/_0x7b6fxb);var _0x7b6fx20=_0x7b6fx1e-_0x7b6fx1c;var _0x7b6fx21=_0x7b6fx1f-_0x7b6fx1d;var _0x7b6fx15= new mxRectangle(this[_0x965d[52]]*(this[_0x965d[71]][_0x965d[70]]+_0x7b6fx1c*_0x7b6fxa),this[_0x965d[52]]*(this[_0x965d[71]][_0x965d[73]]+_0x7b6fx1d*_0x7b6fxb),this[_0x965d[52]]*_0x7b6fx20*_0x7b6fxa,this[_0x965d[52]]*_0x7b6fx21*_0x7b6fxb);return _0x7b6fx15};var _0x7b6fx22=mxGraph[_0x965d[44]][_0x965d[165]];mxGraph[_0x965d[44]][_0x965d[165]]=function(_0x7b6fx23,_0x7b6fx24){_0x7b6fx22[_0x965d[33]](this,arguments);if((this[_0x965d[166]]!=mxConstants[_0x965d[167]]&&this[_0x965d[53]][_0x965d[101]]!=null)&&(!this[_0x965d[168]]||!mxUtils[_0x965d[169]](this[_0x965d[68]]))){this[_0x965d[53]][_0x965d[101]][_0x965d[125]][_0x965d[99]][_0x965d[170]]=_0x7b6fx23+_0x965d[171];this[_0x965d[53]][_0x965d[101]][_0x965d[125]][_0x965d[99]][_0x965d[172]]=_0x7b6fx24+_0x965d[171]}};var _0x7b6fx25=this;mxGraphView[_0x965d[44]][_0x965d[173]]=function(){var _0x7b6fxc=this[_0x965d[14]][_0x965d[174]]();if(_0x7b6fxc!=null){if(this[_0x965d[124]]==null||this[_0x965d[124]][_0x965d[175]]!=_0x7b6fxc[_0x965d[176]]){if(this[_0x965d[124]]!=null){this[_0x965d[124]][_0x965d[177]]()};var _0x7b6fx15= new mxRectangle(0,0,1,1);this[_0x965d[124]]= new mxImageShape(_0x7b6fx15,_0x7b6fxc[_0x965d[176]]);this[_0x965d[124]][_0x965d[166]]=this[_0x965d[14]][_0x965d[166]];this[_0x965d[124]][_0x965d[12]](this[_0x965d[178]]);this[_0x965d[124]][_0x965d[179]]()};this[_0x965d[180]](this[_0x965d[124]],_0x7b6fxc)}else {if(this[_0x965d[124]]!=null){this[_0x965d[124]][_0x965d[177]]();this[_0x965d[124]]=null}};if(this[_0x965d[14]][_0x965d[75]]){var _0x7b6fx15=this[_0x965d[159]]();if(this[_0x965d[101]]==null){this[_0x965d[101]]=this[_0x965d[156]](_0x7b6fx15);this[_0x965d[101]][_0x965d[52]]=1;this[_0x965d[101]][_0x965d[181]]=true;this[_0x965d[101]][_0x965d[166]]=mxConstants[_0x965d[182]];this[_0x965d[101]][_0x965d[12]](this[_0x965d[14]][_0x965d[68]]);this[_0x965d[14]][_0x965d[68]][_0x965d[184]][_0x965d[99]][_0x965d[183]]=_0x965d[185];this[_0x965d[14]][_0x965d[68]][_0x965d[186]](this[_0x965d[101]][_0x965d[125]],this[_0x965d[14]][_0x965d[68]][_0x965d[184]]);this[_0x965d[101]][_0x965d[179]]();this[_0x965d[101]][_0x965d[125]][_0x965d[187]]=_0x965d[188];this[_0x965d[101]][_0x965d[125]][_0x965d[99]][_0x965d[189]]=_0x965d[190];mxEvent[_0x965d[35]](this[_0x965d[101]][_0x965d[125]],_0x965d[191],mxUtils[_0x965d[34]](this,function(_0x7b6fx14){this[_0x965d[14]][_0x965d[192]](_0x7b6fx14)}));mxEvent[_0x965d[198]](this[_0x965d[101]][_0x965d[125]],mxUtils[_0x965d[34]](this,function(_0x7b6fx14){this[_0x965d[14]][_0x965d[193]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x7b6fx14))}),mxUtils[_0x965d[34]](this,function(_0x7b6fx14){if(this[_0x965d[14]][_0x965d[93]]!=null&&this[_0x965d[14]][_0x965d[93]][_0x965d[194]]()){this[_0x965d[14]][_0x965d[93]][_0x965d[195]]()};if(this[_0x965d[14]][_0x965d[196]]&&!mxEvent[_0x965d[197]](_0x7b6fx14)){this[_0x965d[14]][_0x965d[193]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x7b6fx14))}}),mxUtils[_0x965d[34]](this,function(_0x7b6fx14){this[_0x965d[14]][_0x965d[193]](mxEvent.MOUSE_UP, new mxMouseEvent(_0x7b6fx14))}))}else {this[_0x965d[101]][_0x965d[52]]=1;this[_0x965d[101]][_0x965d[199]]=_0x7b6fx15;this[_0x965d[101]][_0x965d[179]]()};this[_0x965d[101]][_0x965d[125]][_0x965d[99]][_0x965d[124]]=(this[_0x965d[14]][_0x965d[91]]())?_0x965d[122]+_0x7b6fx25[_0x965d[43]]+_0x965d[123]:_0x965d[97]}else {if(this[_0x965d[101]]!=null){this[_0x965d[101]][_0x965d[177]]();this[_0x965d[101]]=null}}};mxGraph[_0x965d[44]][_0x965d[200]]=function(_0x7b6fx26,_0x7b6fx27,_0x7b6fx28){var _0x7b6fx29=this[_0x965d[53]][_0x965d[52]];var _0x7b6fx2a=this[_0x965d[53]][_0x965d[71]];var _0x7b6fx1b=this[_0x965d[82]];var _0x7b6fx9=_0x7b6fx29*this[_0x965d[79]];var _0x7b6fx2b=this[_0x965d[53]][_0x965d[159]]();_0x7b6fx27=_0x7b6fx2b[_0x965d[95]];_0x7b6fx28=_0x7b6fx2b[_0x965d[96]];var _0x7b6fx15= new mxRectangle(_0x7b6fx29*_0x7b6fx2a[_0x965d[70]],_0x7b6fx29*_0x7b6fx2a[_0x965d[73]],_0x7b6fx1b[_0x965d[95]]*_0x7b6fx9,_0x7b6fx1b[_0x965d[96]]*_0x7b6fx9);_0x7b6fx26=_0x7b6fx26&&Math[_0x965d[161]](_0x7b6fx15[_0x965d[95]],_0x7b6fx15[_0x965d[96]])>this[_0x965d[201]];var _0x7b6fx2c=(_0x7b6fx26)?Math[_0x965d[164]](_0x7b6fx27/_0x7b6fx15[_0x965d[95]])-1:0;var _0x7b6fx2d=(_0x7b6fx26)?Math[_0x965d[164]](_0x7b6fx28/_0x7b6fx15[_0x965d[96]])-1:0;var _0x7b6fx2e=_0x7b6fx2b[_0x965d[70]]+_0x7b6fx27;var _0x7b6fx2f=_0x7b6fx2b[_0x965d[73]]+_0x7b6fx28;if(this[_0x965d[202]]==null&&_0x7b6fx2c>0){this[_0x965d[202]]=[]};if(this[_0x965d[202]]!=null){for(var _0x7b6fx30=0;_0x7b6fx30<=_0x7b6fx2c;_0x7b6fx30++){var _0x7b6fx31=[ new mxPoint(_0x7b6fx2b[_0x965d[70]]+(_0x7b6fx30+1)*_0x7b6fx15[_0x965d[95]],_0x7b6fx2b[_0x965d[73]]), new mxPoint(_0x7b6fx2b[_0x965d[70]]+(_0x7b6fx30+1)*_0x7b6fx15[_0x965d[95]],_0x7b6fx2f)];if(this[_0x965d[202]][_0x7b6fx30]!=null){this[_0x965d[202]][_0x7b6fx30][_0x965d[52]]=1;this[_0x965d[202]][_0x7b6fx30][_0x965d[203]]=_0x7b6fx31;this[_0x965d[202]][_0x7b6fx30][_0x965d[179]]()}else {var _0x7b6fx32= new mxPolyline(_0x7b6fx31,this[_0x965d[153]],this[_0x965d[52]]);_0x7b6fx32[_0x965d[166]]=this[_0x965d[166]];_0x7b6fx32[_0x965d[204]]=this[_0x965d[205]];_0x7b6fx32[_0x965d[206]]=false;_0x7b6fx32[_0x965d[52]]=_0x7b6fx29;_0x7b6fx32[_0x965d[12]](this[_0x965d[53]][_0x965d[178]]);_0x7b6fx32[_0x965d[179]]();this[_0x965d[202]][_0x7b6fx30]=_0x7b6fx32}};for(var _0x7b6fx30=_0x7b6fx2c;_0x7b6fx30<this[_0x965d[202]][_0x965d[83]];_0x7b6fx30++){this[_0x965d[202]][_0x7b6fx30][_0x965d[177]]()};this[_0x965d[202]][_0x965d[207]](_0x7b6fx2c,this[_0x965d[202]][_0x965d[83]]-_0x7b6fx2c)};if(this[_0x965d[208]]==null&&_0x7b6fx2d>0){this[_0x965d[208]]=[]};if(this[_0x965d[208]]!=null){for(var _0x7b6fx30=0;_0x7b6fx30<=_0x7b6fx2d;_0x7b6fx30++){var _0x7b6fx31=[ new mxPoint(_0x7b6fx2b[_0x965d[70]],_0x7b6fx2b[_0x965d[73]]+(_0x7b6fx30+1)*_0x7b6fx15[_0x965d[96]]), new mxPoint(_0x7b6fx2e,_0x7b6fx2b[_0x965d[73]]+(_0x7b6fx30+1)*_0x7b6fx15[_0x965d[96]])];if(this[_0x965d[208]][_0x7b6fx30]!=null){this[_0x965d[208]][_0x7b6fx30][_0x965d[52]]=1;this[_0x965d[208]][_0x7b6fx30][_0x965d[203]]=_0x7b6fx31;this[_0x965d[208]][_0x7b6fx30][_0x965d[179]]()}else {var _0x7b6fx32= new mxPolyline(_0x7b6fx31,this[_0x965d[153]],_0x7b6fx29);_0x7b6fx32[_0x965d[166]]=this[_0x965d[166]];_0x7b6fx32[_0x965d[204]]=this[_0x965d[205]];_0x7b6fx32[_0x965d[206]]=false;_0x7b6fx32[_0x965d[52]]=_0x7b6fx29;_0x7b6fx32[_0x965d[12]](this[_0x965d[53]][_0x965d[178]]);_0x7b6fx32[_0x965d[179]]();this[_0x965d[208]][_0x7b6fx30]=_0x7b6fx32}};for(var _0x7b6fx30=_0x7b6fx2d;_0x7b6fx30<this[_0x965d[208]][_0x965d[83]];_0x7b6fx30++){this[_0x965d[208]][_0x7b6fx30][_0x965d[177]]()};this[_0x965d[208]][_0x965d[207]](_0x7b6fx2d,this[_0x965d[208]][_0x965d[83]]-_0x7b6fx2d)}};mxEdgeHandler[_0x965d[44]][_0x965d[209]]=true;mxGraphHandler[_0x965d[44]][_0x965d[58]]=true;var _0x7b6fx33=mxGraphHandler[_0x965d[44]][_0x965d[210]];mxGraphHandler[_0x965d[44]][_0x965d[210]]=function(_0x7b6fx34,_0x7b6fx35,_0x7b6fx14){for(var _0x7b6fx30=0;_0x7b6fx30<_0x7b6fx35[_0x965d[83]];_0x7b6fx30++){if(this[_0x965d[14]][_0x965d[36]]()[_0x965d[211]](_0x7b6fx35[_0x7b6fx30])){var _0x7b6fx36=this[_0x965d[14]][_0x965d[212]](_0x7b6fx35[_0x7b6fx30]);if(_0x7b6fx36!=null&&_0x7b6fx36[_0x965d[213]]){return false}}};return _0x7b6fx33[_0x965d[33]](this,arguments)};mxGuide[_0x965d[44]][_0x965d[214]]=function(_0x7b6fx14){return !mxEvent[_0x965d[215]](_0x7b6fx14)};mxPopupMenuAddItem=mxPopupMenu[_0x965d[44]][_0x965d[216]];mxPopupMenu[_0x965d[44]][_0x965d[216]]=function(_0x7b6fx37,_0x7b6fx38,_0x7b6fx39,_0x7b6fx34,_0x7b6fx3a,_0x7b6fx3b){var _0x7b6fx3c=mxPopupMenuAddItem[_0x965d[33]](this,arguments);if(_0x7b6fx3b!=null&& !_0x7b6fx3b){mxEvent[_0x965d[35]](_0x7b6fx3c,_0x965d[217],function(_0x7b6fx14){mxEvent[_0x965d[218]](_0x7b6fx14)})};return _0x7b6fx3c};var _0x7b6fx3d=mxGraphHandler[_0x965d[44]][_0x965d[219]];mxGraphHandler[_0x965d[44]][_0x965d[219]]=function(_0x7b6fx3e){var _0x7b6fx3f=this[_0x965d[14]][_0x965d[36]]();var _0x7b6fx40=_0x7b6fx3f[_0x965d[221]](this[_0x965d[14]][_0x965d[220]]());var _0x7b6fx41=_0x7b6fx3d[_0x965d[33]](this,arguments);var _0x7b6fx34=_0x7b6fx3f[_0x965d[221]](_0x7b6fx41);if(_0x7b6fx40==null||(_0x7b6fx40!=_0x7b6fx41&&_0x7b6fx40!=_0x7b6fx34)){while(!this[_0x965d[14]][_0x965d[222]](_0x7b6fx41)&&!this[_0x965d[14]][_0x965d[222]](_0x7b6fx34)&&_0x7b6fx3f[_0x965d[211]](_0x7b6fx34)&&!this[_0x965d[14]][_0x965d[223]](_0x7b6fx34)){_0x7b6fx41=_0x7b6fx34;_0x7b6fx34=this[_0x965d[14]][_0x965d[36]]()[_0x965d[221]](_0x7b6fx41)}};return _0x7b6fx41};var _0x7b6fx42=mxGraphHandler[_0x965d[44]][_0x965d[224]];mxGraphHandler[_0x965d[44]][_0x965d[224]]=function(_0x7b6fx41){var _0x7b6fx3c=_0x7b6fx42[_0x965d[33]](this,arguments);var _0x7b6fx3f=this[_0x965d[14]][_0x965d[36]]();var _0x7b6fx40=_0x7b6fx3f[_0x965d[221]](this[_0x965d[14]][_0x965d[220]]());var _0x7b6fx34=_0x7b6fx3f[_0x965d[221]](_0x7b6fx41);if(_0x7b6fx40==null||(_0x7b6fx40!=_0x7b6fx41&&_0x7b6fx40!=_0x7b6fx34)){if(!this[_0x965d[14]][_0x965d[222]](_0x7b6fx41)&&_0x7b6fx3f[_0x965d[211]](_0x7b6fx34)&&!this[_0x965d[14]][_0x965d[223]](_0x7b6fx34)){_0x7b6fx3c=true}};return _0x7b6fx3c};mxGraphHandler[_0x965d[44]][_0x965d[225]]=function(_0x7b6fx3e){var _0x7b6fx41=_0x7b6fx3e[_0x965d[226]]();if(_0x7b6fx41==null){_0x7b6fx41=this[_0x965d[227]]};var _0x7b6fx3f=this[_0x965d[14]][_0x965d[36]]();var _0x7b6fx34=_0x7b6fx3f[_0x965d[221]](_0x7b6fx41);while(this[_0x965d[14]][_0x965d[222]](_0x7b6fx41)&&_0x7b6fx3f[_0x965d[211]](_0x7b6fx34)&&!this[_0x965d[14]][_0x965d[223]](_0x7b6fx34)){_0x7b6fx41=_0x7b6fx34;_0x7b6fx34=_0x7b6fx3f[_0x965d[221]](_0x7b6fx41)};this[_0x965d[14]][_0x965d[229]](_0x7b6fx41,_0x7b6fx3e[_0x965d[228]]())};mxPanningHandler[_0x965d[44]][_0x965d[230]]=function(_0x7b6fx3e){var _0x7b6fx41=_0x7b6fx3e[_0x965d[226]]();var _0x7b6fx3f=this[_0x965d[14]][_0x965d[36]]();var _0x7b6fx34=_0x7b6fx3f[_0x965d[221]](_0x7b6fx41);while(_0x7b6fx3f[_0x965d[211]](_0x7b6fx34)&&!this[_0x965d[14]][_0x965d[223]](_0x7b6fx34)){if(this[_0x965d[14]][_0x965d[222]](_0x7b6fx34)){_0x7b6fx41=_0x7b6fx34};_0x7b6fx34=_0x7b6fx3f[_0x965d[221]](_0x7b6fx34)};return _0x7b6fx41}};Editor[_0x965d[44]][_0x965d[18]]=function(){var _0x7b6fxe=this[_0x965d[14]];var _0x7b6fx43= new mxUndoManager();var _0x7b6fx44=function(_0x7b6fx45,_0x7b6fx14){_0x7b6fx43[_0x965d[233]](_0x7b6fx14[_0x965d[232]](_0x965d[231]))};_0x7b6fxe[_0x965d[36]]()[_0x965d[35]](mxEvent.UNDO,_0x7b6fx44);_0x7b6fxe[_0x965d[234]]()[_0x965d[35]](mxEvent.UNDO,_0x7b6fx44);var _0x7b6fx46=function(_0x7b6fx45,_0x7b6fx14){var _0x7b6fx47=_0x7b6fxe[_0x965d[236]](_0x7b6fx14[_0x965d[232]](_0x965d[231])[_0x965d[235]]);var _0x7b6fx35=[];for(var _0x7b6fx30=1;_0x7b6fx30<_0x7b6fx47[_0x965d[83]];_0x7b6fx30++){if(_0x7b6fxe[_0x965d[53]][_0x965d[237]](_0x7b6fx47[_0x7b6fx30])!=null){_0x7b6fx35[_0x965d[238]](_0x7b6fx47[_0x7b6fx30])}};_0x7b6fxe[_0x965d[239]](_0x7b6fx35)};_0x7b6fx43[_0x965d[35]](mxEvent.UNDO,_0x7b6fx46);_0x7b6fx43[_0x965d[35]](mxEvent.REDO,_0x7b6fx46);return _0x7b6fx43};Editor[_0x965d[44]][_0x965d[13]]=function(){mxStencilRegistry[_0x965d[241]](STENCIL_PATH+_0x965d[240])};(function(){mxStencilRegistry[_0x965d[242]]={};mxStencilRegistry[_0x965d[243]]=[];mxStencilRegistry[_0x965d[244]]=function(_0x7b6fx48){var _0x7b6fx3c=mxStencilRegistry[_0x965d[245]][_0x7b6fx48];if(_0x7b6fx3c==null){var _0x7b6fx49=mxStencilRegistry[_0x965d[246]](_0x7b6fx48);if(_0x7b6fx49!=null){var _0x7b6fx4a=mxStencilRegistry[_0x965d[242]][_0x7b6fx49];if(_0x7b6fx4a!=null){if(mxStencilRegistry[_0x965d[243]][_0x7b6fx49]==null){mxStencilRegistry[_0x965d[243]][_0x7b6fx49]=1;for(var _0x7b6fx30=0;_0x7b6fx30<_0x7b6fx4a[_0x965d[83]];_0x7b6fx30++){var _0x7b6fx4b=_0x7b6fx4a[_0x7b6fx30];if(_0x7b6fx4b[_0x965d[248]]()[_0x965d[247]](_0x7b6fx4b[_0x965d[83]]-4,_0x7b6fx4b[_0x965d[83]])==_0x965d[25]){mxStencilRegistry[_0x965d[241]](_0x7b6fx4b,null)}else {if(_0x7b6fx4b[_0x965d[248]]()[_0x965d[247]](_0x7b6fx4b[_0x965d[83]]-3,_0x7b6fx4b[_0x965d[83]])==_0x965d[249]){var _0x7b6fx4c=mxUtils[_0x965d[250]](_0x7b6fx4b);if(_0x7b6fx4c!=null){eval[_0x965d[11]](window,_0x7b6fx4c[_0x965d[251]]())}}else {}}}}}else {mxStencilRegistry[_0x965d[241]](STENCIL_PATH+_0x965d[252]+_0x7b6fx49+_0x965d[25],null)};_0x7b6fx3c=mxStencilRegistry[_0x965d[245]][_0x7b6fx48]}};return _0x7b6fx3c};mxStencilRegistry[_0x965d[246]]=function(_0x7b6fx48){var _0x7b6fx4d=_0x7b6fx48[_0x965d[254]](_0x965d[253]);var _0x7b6fx4e=null;if(_0x7b6fx4d[_0x965d[83]]>0&&_0x7b6fx4d[0]==_0x965d[255]){_0x7b6fx4e=_0x7b6fx4d[1];for(var _0x7b6fx30=2;_0x7b6fx30<_0x7b6fx4d[_0x965d[83]]-1;_0x7b6fx30++){_0x7b6fx4e+=_0x965d[252]+_0x7b6fx4d[_0x7b6fx30]}};return _0x7b6fx4e};mxStencilRegistry[_0x965d[241]]=function(_0x7b6fx4f,_0x7b6fx50,_0x7b6fx51){_0x7b6fx51=(_0x7b6fx51!=null)?_0x7b6fx51:false;var _0x7b6fx52=mxStencilRegistry[_0x965d[243]][_0x7b6fx4f];if(_0x7b6fx51||_0x7b6fx52==null){var _0x7b6fx53=false;if(_0x7b6fx52==null){var _0x7b6fx4c=mxUtils[_0x965d[250]](_0x7b6fx4f);_0x7b6fx52=_0x7b6fx4c[_0x965d[256]]();mxStencilRegistry[_0x965d[243]][_0x7b6fx4f]=_0x7b6fx52;_0x7b6fx53=true};mxStencilRegistry[_0x965d[257]](_0x7b6fx52,_0x7b6fx50,_0x7b6fx53)}};mxStencilRegistry[_0x965d[257]]=function(_0x7b6fx54,_0x7b6fx50,_0x7b6fx53){_0x7b6fx53=(_0x7b6fx53!=null)?_0x7b6fx53:true;var _0x7b6fx55=_0x7b6fx54[_0x965d[258]];var _0x7b6fx56=_0x7b6fx55[_0x965d[184]];var _0x7b6fx57=_0x965d[20];var _0x7b6fx48=_0x7b6fx55[_0x965d[56]](_0x965d[259]);if(_0x7b6fx48!=null){_0x7b6fx57=_0x7b6fx48+_0x965d[253]};while(_0x7b6fx56!=null){if(_0x7b6fx56[_0x965d[260]]==mxConstants[_0x965d[261]]){_0x7b6fx48=_0x7b6fx56[_0x965d[56]](_0x965d[259]);if(_0x7b6fx48!=null){_0x7b6fx57=_0x7b6fx57[_0x965d[248]]();var _0x7b6fx58=_0x7b6fx48[_0x965d[263]](/ /g,_0x965d[262]);if(_0x7b6fx53){mxStencilRegistry[_0x965d[264]](_0x7b6fx57+_0x7b6fx58[_0x965d[248]](), new mxStencil(_0x7b6fx56))};if(_0x7b6fx50!=null){var _0x7b6fx19=_0x7b6fx56[_0x965d[56]](_0x965d[265]);var _0x7b6fx1a=_0x7b6fx56[_0x965d[56]](_0x965d[266]);_0x7b6fx19=(_0x7b6fx19==null)?80:parseInt(_0x7b6fx19,10);_0x7b6fx1a=(_0x7b6fx1a==null)?80:parseInt(_0x7b6fx1a,10);_0x7b6fx50(_0x7b6fx57,_0x7b6fx58,_0x7b6fx48,_0x7b6fx19,_0x7b6fx1a)}}};_0x7b6fx56=_0x7b6fx56[_0x965d[267]]}}})();OpenFile=function(_0x7b6fx59){this[_0x965d[268]]=null;this[_0x965d[269]]=null;this[_0x965d[270]]=_0x7b6fx59};OpenFile[_0x965d[44]][_0x965d[271]]=function(_0x7b6fx6){this[_0x965d[269]]=_0x7b6fx6;this[_0x965d[272]]()};OpenFile[_0x965d[44]][_0x965d[273]]=function(_0x7b6fx6,_0x7b6fx5a){this[_0x965d[274]]=_0x7b6fx6;this[_0x965d[21]]=_0x7b6fx5a;this[_0x965d[272]]()};OpenFile[_0x965d[44]][_0x965d[275]]=function(_0x7b6fx5b){this[_0x965d[276]]();mxUtils[_0x965d[277]](_0x7b6fx5b)};OpenFile[_0x965d[44]][_0x965d[272]]=function(){if(this[_0x965d[269]]!=null&&this[_0x965d[274]]!=null){this[_0x965d[269]](this[_0x965d[274]],this[_0x965d[21]]);this[_0x965d[276]]()}};OpenFile[_0x965d[44]][_0x965d[276]]=function(){if(this[_0x965d[270]]!=null){this[_0x965d[270]]()}}
\ No newline at end of file
index b81caf5..bb15282 100644 (file)
@@ -1,1325 +1 @@
-/**
- * $Id: EditorUi.js,v 1.21 2013/03/14 20:46:36 david Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Constructs a new graph editor
- */
-EditorUi = function(editor, container) {
-       this.editor = editor || new Editor();
-       this.container = container || document.getElementById('geEditor');
-       var graph = editor.graph;
-       var self = this;
-
-       // Disables scrollbars
-       this.container.style.overflow = 'hidden';
-
-       // Pre-fetches submenu image
-       new Image().src = mxPopupMenu.prototype.submenuImage;
-
-       // Pre-fetches connect image
-       if (mxConnectionHandler.prototype.connectImage != null) {
-               new Image().src = mxConnectionHandler.prototype.connectImage.src;
-       }
-
-       // Creates the user interface
-       this.actions = new Actions(this);
-       this.menus = new Menus(this);
-       this.createDivs();
-       this.refresh();
-       this.createUi();
-
-       // Disables HTML and text selection
-       var textEditing = mxUtils.bind(this, function(evt) {
-               if (evt == null) {
-                       evt = window.event;
-               }
-
-               if (this.isSelectionAllowed(evt)) {
-                       return true;
-               }
-
-               return graph.isEditing();
-       });
-
-       // Disables text selection while not editing and no dialog visible
-       if (this.container == document.body) {
-               this.menubarContainer.onselectstart = textEditing;
-               this.menubarContainer.onmousedown = textEditing;
-               this.toolbarContainer.onselectstart = textEditing;
-               this.toolbarContainer.onmousedown = textEditing;
-               this.diagramContainer.onselectstart = textEditing;
-               this.diagramContainer.onmousedown = textEditing;
-               this.sidebarContainer.onselectstart = textEditing;
-               this.sidebarContainer.onmousedown = textEditing;
-               this.footerContainer.onselectstart = textEditing;
-               this.footerContainer.onmousedown = textEditing;
-       }
-
-       // And uses built-in context menu while editing
-       if (mxClient.IS_IE && (typeof(document.documentMode) === 'undefined' ||
-                       document.documentMode < 9)) {
-               mxEvent.addListener(this.diagramContainer, 'contextmenu', textEditing);
-               mxEvent.addListener(this.sidebarContainer, 'contextmenu', textEditing);
-       } else {
-               // Allows browser context menu outside of diagram and sidebar
-               this.diagramContainer.oncontextmenu = textEditing;
-               this.sidebarContainer.oncontextmenu = textEditing;
-       }
-
-       // Contains the main graph instance inside the given panel
-       graph.init(this.diagramContainer);
-       graph.refresh();
-
-       // Enables scrollbars and sets cursor style for the container
-       graph.container.setAttribute('tabindex', '0');
-       // graph.container.style.overflow = (touchStyle) ? 'hidden' : 'auto';
-       graph.container.style.cursor = 'default';
-       graph.container.style.backgroundImage = 'url(' + editor.gridImage + ')';
-       graph.container.style.backgroundPosition = '-1px -1px';
-       graph.container.focus();
-
-       // Keeps graph container focused on mouse down
-       var graphFireMouseEvent = graph.fireMouseEvent;
-       graph.fireMouseEvent = function(evtName, me, sender) {
-               if (evtName == mxEvent.MOUSE_DOWN) {
-                       this.container.focus();
-               }
-
-               graphFireMouseEvent.apply(this, arguments);
-       };
-
-       // Giuseppe Careri
-       // Defines invalid connections along with the error messages that they produce.
-
-       this.createMultiplicities(graph.multiplicities, ['start', 'end', 'input',
-               'question', 'email'
-       ], [
-               [1, 1],
-               [0, 0],
-               [1, 1],
-               [1, 'n'],
-               [1, 'n']
-       ], [
-               [0, 0],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n']
-
-       ]);
-
-
-       // Giuseppe Careri
-       // Processes a doubleclick on an optional cell and fires a <dblclick> event.
-       // The event is fired initially.
-       // If the graph is enabled and the event has not been consumed, then <edit> is called with the given cell.
-       // The event is ignored if no cell was specified.
-       graph.dblClick = function(evt, cell) {
-               var edges = ['question'];
-               var mxe = new mxEventObject(mxEvent.DOUBLE_CLICK, 'event', evt, 'cell',
-                       cell);
-               this.fireEvent(mxe);
-
-               if (this.isEnabled() && !mxEvent.isConsumed(evt) && !mxe.isConsumed()) {
-                       // Override dblClick Vertices and Edges
-                       if (this.getModel().isEdge(cell)) {
-                               if (edges.indexOf(cell.source.value.tagName) >= 0)
-                                       this.startEditingAtCell(cell);
-                       } else if (this.getModel().isVertex(cell)) {
-                               console.log(self);
-                               console.log(cell);
-                               self.showDialog(new GeneralDialog(self, cell).container, 320, 280, true,
-                                       true);
-                       }
-                       mxe.consume();
-               }
-       }
-
-       // Configures automatic expand on mouseover
-       graph.panningHandler.autoExpand = true;
-
-       // Installs context menu
-       graph.panningHandler.factoryMethod = mxUtils.bind(this, function(menu, cell,
-               evt) {
-               this.menus.createPopupMenu(menu, cell, evt);
-       });
-
-       // Initializes the outline
-       editor.outline.init(this.outlineContainer);
-
-       // Hides context menu
-       mxEvent.addGestureListeners(document, mxUtils.bind(this, function(evt) {
-               graph.panningHandler.hideMenu();
-       }));
-
-       // Adds gesture handling (pinch to zoom)
-       if (mxClient.IS_TOUCH) {
-               mxEvent.addListener(graph.container, 'gesturechange',
-                       mxUtils.bind(this, function(evt) {
-                               graph.view.getDrawPane().setAttribute('transform', 'scale(' + evt.scale +
-                                       ')');
-                               graph.view.getOverlayPane().style.visibility = 'hidden';
-                       })
-               );
-
-               mxEvent.addListener(graph.container, 'gestureend',
-                       mxUtils.bind(this, function(evt) {
-                               graph.view.getDrawPane().removeAttribute('transform');
-                               graph.zoomToCenter = true;
-                               graph.zoom(evt.scale);
-                               graph.view.getOverlayPane().style.visibility = 'visible';
-                       })
-               );
-       }
-
-       // Create handler for key events
-       var keyHandler = this.createKeyHandler(editor);
-
-       // Getter for key handler
-       this.getKeyHandler = function() {
-               return keyHandler;
-       };
-
-       // Updates the editor UI after the window has been resized
-       mxEvent.addListener(window, 'resize', mxUtils.bind(this, function() {
-               this.refresh();
-               graph.sizeDidChange();
-               this.editor.outline.update(false);
-               this.editor.outline.outline.sizeDidChange();
-       }));
-
-       // Updates action and menu states
-       this.init();
-       this.open();
-};
-
-/**
- * Specifies the size of the split bar.
- */
-EditorUi.prototype.splitSize = (mxClient.IS_TOUCH) ? 16 : 8;
-
-/**
- * Specifies the height of the menubar. Default is 34.
- */
-EditorUi.prototype.menubarHeight = 33;
-
-/**
- * Specifies the height of the toolbar. Default is 36.
- */
-EditorUi.prototype.toolbarHeight = 36;
-
-/**
- * Specifies the height of the footer. Default is 28.
- */
-EditorUi.prototype.footerHeight = 28;
-
-/**
- * Specifies the position of the horizontal split bar. Default is 212.
- */
-EditorUi.prototype.hsplitPosition = 204;
-
-/**
- * Specifies the position of the vertical split bar. Default is 190.
- */
-EditorUi.prototype.vsplitPosition = 190;
-
-/**
- * Installs the listeners to update the action states.
- */
-EditorUi.prototype.init = function() {
-       // Updates action states
-       this.addUndoListener();
-       this.addSelectionListener();
-
-       // Overrides clipboard to update paste action state
-       var paste = this.actions.get('paste');
-
-       var updatePaste = function() {
-               paste.setEnabled(!mxClipboard.isEmpty());
-       };
-
-       var mxClipboardCut = mxClipboard.cut;
-       mxClipboard.cut = function() {
-               mxClipboardCut.apply(this, arguments);
-               updatePaste();
-       };
-
-       var mxClipboardCopy = mxClipboard.copy;
-       mxClipboard.copy = function() {
-               mxClipboardCopy.apply(this, arguments);
-               updatePaste();
-       };
-};
-
-/**
- * Hook for allowing selection and context menu for certain events.
- */
-EditorUi.prototype.isSelectionAllowed = function(evt) {
-       return false;
-};
-
-/**
- * Opens the current diagram via the window.opener if one exists.
- */
-EditorUi.prototype.open = function() {
-       // Cross-domain window access is not allowed in FF, so if we
-       // were opened from another domain then this will fail.
-       try {
-               if (window.opener != null && window.opener.openFile != null) {
-                       window.opener.openFile.setConsumer(mxUtils.bind(this, function(xml,
-                               filename) {
-                               try {
-                                       var doc = mxUtils.parseXml(xml);
-                                       this.editor.setGraphXml(doc.documentElement);
-                                       this.editor.modified = false;
-                                       this.editor.undoManager.clear();
-
-                                       if (filename != null) {
-                                               this.editor.filename = filename;
-                                       }
-                               } catch (e) {
-                                       mxUtils.alert(mxResources.get('invalidOrMissingFile') + ': ' + e.message);
-                               }
-                       }));
-               }
-       } catch (e) {
-               // ignore
-       }
-};
-
-/**
- * Giuseppe Careri
- * Opens the current diagram via string.
- */
-EditorUi.prototype.openString = function(xml, filename, data) {
-       try {
-               var doc = mxUtils.parseXml(xml);
-               this.editor.setGraphXml(doc.documentElement);
-               this.editor.modified = false;
-               this.editor.undoManager.clear();
-
-               if (filename != null) {
-                       this.editor.filename = filename;
-               }
-
-               if (data != null) {
-                       this.editor.data = data;
-               }
-       } catch (e) {
-               mxUtils.alert(mxResources.get('invalidOrMissingFile') + ': ' + e.message);
-       }
-};
-
-/**
- * Saves As the current graph under the given project name.
- */
-EditorUi.prototype.new = function(name) {
-       var editor = this.editor;
-
-       if (name != null) {
-               var xml = mxUtils.getPrettyXml(this.editor.getGraphXml());
-               try {
-                       if (useLocalStorage) {
-                               if (localStorage.getItem(name) != null &&
-                                       !mxUtils.confirm(mxResources.get('replace', [name]))) {
-                                       return;
-                               }
-
-                               localStorage.setItem(name, xml);
-                               this.editor.setStatus(mxResources.get('saved') + ' ' + new Date());
-                       } else {
-                               console.log(xml.length);
-                               console.log(MAX_REQUEST_SIZE);
-                               if (xml.length < MAX_REQUEST_SIZE) {
-                                       xml = encodeURIComponent(xml);
-                                       name = encodeURIComponent(name);
-
-                                       var xhr = new XMLHttpRequest();
-                                       xhr.open("POST", SAVE_URL, true);
-                                       xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-                                       xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
-                                       xhr.onload = function(e) {
-                                               if (xhr.readyState === 4) {
-                                                       if (xhr.status === 201) {
-                                                               editor.setStatus('Project ' + JSON.parse(xhr.response).name +
-                                                                       ' is opening in new window!');
-                                                               setTimeout(function() {
-                                                                       window.open('jscripty/project/' + JSON.parse(xhr.response).id,
-                                                                               '_blank');
-                                                               }, 1500);
-                                                       } else {
-                                                               editor.setStatus('Error creating project: ' +
-                                                                       JSON.parse(xhr.response).errors[0].message);
-                                                       }
-                                               }
-                                       };
-                                       xhr.onerror = function(e) {
-                                               mxUtils.alert(xhr.statusText);
-                                       };
-                                       xhr.send('description=project_new&name=' + name);
-                               } else {
-                                       mxUtils.alert(mxResources.get('drawingTooLarge'));
-                                       mxUtils.popup(xml);
-
-                                       return;
-                               }
-                       }
-
-                       this.editor.filename = name;
-                       this.editor.modified = false;
-               } catch (e) {
-                       this.editor.setStatus('Error creating project');
-               }
-       } else {
-               this.editor.setStatus('Error creating project');
-       }
-};
-
-
-/**
- * Saves the current graph under the given project name.
- */
-EditorUi.prototype.save = function(name) {
-       var editor = this.editor;
-
-       if (name != null) {
-               var xml = mxUtils.getPrettyXml(this.editor.getGraphXml());
-               try {
-                       if (useLocalStorage) {
-                               if (localStorage.getItem(name) != null &&
-                                       !mxUtils.confirm(mxResources.get('replace', [name]))) {
-                                       return;
-                               }
-
-                               localStorage.setItem(name, xml);
-                               this.editor.setStatus(mxResources.get('saved') + ' ' + new Date());
-                       } else {
-                               console.log(xml.length);
-                               console.log(MAX_REQUEST_SIZE);
-                               if (xml.length < MAX_REQUEST_SIZE) {
-                                       xml = encodeURIComponent(xml);
-
-                                       var xhr = new XMLHttpRequest();
-                                       xhr.open("PUT", SAVE_URL + this.editor.data.id, true);
-                                       xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-                                       xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
-                                       xhr.onload = function(e) {
-                                               if (xhr.readyState === 4) {
-                                                       if (xhr.status === 200) {
-                                                               editor.setStatus('Updated at ' + JSON.parse(xhr.response).updatedAt +
-                                                                       ' (' + xhr.status + ' ' + xhr.statusText + ')');
-                                                       } else {
-                                                               editor.setStatus('Error saving project: ' +
-                                                                       JSON.parse(xhr.response).errors[0].message);
-                                                       }
-                                               }
-                                       };
-                                       xhr.onerror = function(e) {
-                                               mxUtils.alert(xhr.statusText);
-                                       };
-                                       xhr.send('draft=' + xml);
-                               } else {
-                                       mxUtils.alert(mxResources.get('drawingTooLarge'));
-                                       mxUtils.popup(xml);
-
-                                       return;
-                               }
-                       }
-
-                       this.editor.filename = name;
-                       this.editor.modified = false;
-               } catch (e) {
-                       this.editor.setStatus('Error saving file');
-               }
-       } else {
-               this.editor.setStatus('Error saving file');
-       }
-};
-
-/**
- * Saves As the current graph under the given project name.
- */
-EditorUi.prototype.saveAs = function(name) {
-       var editor = this.editor;
-       console.log(name);
-       if (name != null) {
-               var xml = mxUtils.getPrettyXml(this.editor.getGraphXml());
-               try {
-                       if (useLocalStorage) {
-                               if (localStorage.getItem(name) != null &&
-                                       !mxUtils.confirm(mxResources.get('replace', [name]))) {
-                                       return;
-                               }
-
-                               localStorage.setItem(name, xml);
-                               this.editor.setStatus(mxResources.get('saved') + ' ' + new Date());
-                       } else {
-                               console.log(xml.length);
-                               console.log(MAX_REQUEST_SIZE);
-                               if (xml.length < MAX_REQUEST_SIZE) {
-                                       xml = encodeURIComponent(xml);
-                                       name = encodeURIComponent(name);
-
-                                       var xhr = new XMLHttpRequest();
-                                       xhr.open("POST", SAVE_URL, true);
-                                       xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-                                       xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
-                                       xhr.onload = function(e) {
-                                               if (xhr.readyState === 4) {
-                                                       if (xhr.status === 201) {
-                                                               editor.setStatus('Project ' + JSON.parse(xhr.response).name +
-                                                                       ' is opening in new window!');
-                                                               setTimeout(function() {
-                                                                       window.open('jscripty/project/' + JSON.parse(xhr.response).id,
-                                                                               '_blank');
-                                                               }, 1500);
-                                                       } else {
-                                                               editor.setStatus('Error cloning project: ' +
-                                                                       JSON.parse(xhr.response).errors[0].message);
-                                                       }
-                                               }
-                                       };
-                                       xhr.onerror = function(e) {
-                                               mxUtils.alert(xhr.statusText);
-                                       };
-                                       xhr.send('description=project_cloned&name=' + name +
-                                               '&draft=' + xml + '&production=' + xml);
-                               } else {
-                                       mxUtils.alert(mxResources.get('drawingTooLarge'));
-                                       mxUtils.popup(xml);
-
-                                       return;
-                               }
-                       }
-
-                       this.editor.filename = name;
-                       this.editor.modified = false;
-               } catch (e) {
-                       this.editor.setStatus('Error saving file');
-               }
-       } else {
-               this.editor.setStatus('Error saving file');
-       }
-};
-
-/**
- * Plush the current graph under the given project name.
- */
-EditorUi.prototype.validate = function(a, b) {
-       var graph = this.editor.graph;
-       a = null != a ? a : graph.model.getRoot();
-       b = null != b ? b : {};
-       for (var c = !0, d = graph.model.getChildCount(a), e = 0; e < d; e++) {
-               var f = graph.model.getChildAt(a, e),
-                       g = b;
-               graph.isValidRoot(f) && (g = {});
-               g = this.validate(f, g);
-               null != g ? graph.setCellWarning(f, g.replace(/\n/g, "\x3cbr\x3e")) : graph.setCellWarning(f, null);
-               c = c && null == g
-       }
-       d = "";
-       if (graph.model.isVertex(a)) {
-               switch (a.value.nodeName) {
-                       case 'question':
-                               d = (a.value.getAttribute('question') !== "") ? "" :
-                                       'Question can not be empty' + "\n";
-                               d += (a.value.getAttribute('label') !== "") ? "" : 'Label can not be empty' + "\n";
-
-                               break;
-                       case 'input':
-                               d = (a.value.getAttribute('question') !== "") ? "" : 'Question can not be empty' + "\n";
-                               d += (a.value.getAttribute('label') !== "") ? "" : 'Label can not be empty' + "\n";
-
-                               break;
-                       case 'start':
-                               d = this.validateBlock('start') ? '' : "Only one Start block is allowed" + "\n";
-                               d += (a.value.getAttribute('label') !== "") ? "" : 'Label can not be empty' + "\n";
-
-                               break;
-               }
-       }
-
-       if (graph.model.isEdge(a)) {
-               var z = graph.model.getCell(a.source.getId());
-               switch (z.value.nodeName) {
-                       case 'question':
-                               // var patt = /^[a-zA-Z0-9][a-zA-Z0-9\s]*$/;
-                               var str = String(a.getValue());
-                               console.log(str);
-                               if (str === 'null' || str === 'undefined') {
-                                       d = "Value can not be empty" + "\n";
-                               } else {
-                                       var result = str.split(",");
-                                       result.forEach(function(entry, key) {
-                                               d = d + ((entry.trim() !== "") ? "" : 'Value' + (key + 1) + ' can not be empty' + "\n");
-                                       });
-                               }
-                               // console.log(a.getValue());
-                               // if ((str == 'undefined') || (str == 'null')) {
-                               //      str = ' ';
-                               // }
-                               // d = ((a.getValue() !== "") && (a.getValue() !== 'undefined') && (a.getValue() !== null)) ? '' : "Value can not be empty" + "\n";
-                               // d = d + ((patt.test(str.trim())) ? "" : 'Value can not be empty' + "\n");
-                               //
-                               // res.forEach(function(entry) {
-                               // d = d + ((patt.test(entry.trim())) ? "" : 'Can not be empty' + "\n");
-                               // });
-                               break;
-
-               }
-       }
-
-       graph.isCellCollapsed(a) && !c && (d += (mxResources.get(graph.containsValidationErrorsResource) || graph.containsValidationErrorsResource) + "\n");
-       d = graph.model.isEdge(a) ? d + (graph.getEdgeValidationError(a, graph.model.getTerminal(a, !0), graph.model.getTerminal(a, !1)) || "") : d + (graph.getCellValidationError(a) || "");
-       e = graph.validateCell(a, b);
-       null != e && (d += e);
-       null == graph.model.getParent(a) && graph.view.validate();
-       return 0 < d.length || !c ? d : null
-}
-
-EditorUi.prototype.validateBlock = function(blockName) {
-       var graph = this.editor.graph;
-       var parent = graph.getDefaultParent();
-       var count = 0;
-       // var model = graph.getModel();
-       //We can also use model.getChildren(parent)
-       parent.children.forEach(function(n) {
-               if (graph.model.isVertex(n) && n.value.nodeName == blockName) {
-                       count++;
-               }
-       });
-       return count > 1 ? false : true;
-}
-
-EditorUi.prototype.publish = function(name) {
-
-       var editor = this.editor;
-
-       if (name != null) {
-
-               var response = this.validate();
-               if (response === null) {
-                       var xml = mxUtils.getPrettyXml(this.editor.getGraphXml());
-                       try {
-                               if (useLocalStorage) {
-                                       if (localStorage.getItem(name) != null &&
-                                               !mxUtils.confirm(mxResources.get('replace', [name]))) {
-                                               return;
-                                       }
-
-                                       localStorage.setItem(name, xml);
-                                       this.editor.setStatus(mxResources.get('saved') + ' ' + new Date());
-                               } else {
-                                       console.log(xml.length);
-                                       console.log(MAX_REQUEST_SIZE);
-                                       if (xml.length < MAX_REQUEST_SIZE) {
-                                               xml = encodeURIComponent(xml);
-
-                                               var xhr = new XMLHttpRequest();
-                                               xhr.open("PUT", SAVE_URL + this.editor.data.id, true);
-                                               xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-                                               xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
-                                               xhr.onload = function(e) {
-                                                       if (xhr.readyState === 4) {
-                                                               if (xhr.status === 200) {
-                                                                       editor.setStatus('Published at ' + JSON.parse(xhr.response).updatedAt +
-                                                                               ' (' + xhr.status + ' ' + xhr.statusText + ')');
-                                                               } else {
-                                                                       editor.setStatus('Error saving project: ' +
-                                                                               JSON.parse(xhr.response).errors[0].message);
-                                                               }
-                                                       }
-                                               };
-                                               xhr.onerror = function(e) {
-                                                       mxUtils.alert(xhr.statusText);
-                                               };
-                                               xhr.send('draft=' + xml + '&production=' + xml);
-                                       } else {
-                                               mxUtils.alert(mxResources.get('drawingTooLarge'));
-                                               mxUtils.popup(xml);
-
-                                               return;
-                                       }
-                               }
-
-                               this.editor.filename = name;
-                               this.editor.modified = false;
-                       } catch (e) {
-                               this.editor.setStatus('Error publishing file');
-                       }
-               } else {
-                       editor.setStatus('Error publishing project: ');
-               }
-       } else {
-               this.editor.setStatus('Error publishing file');
-       }
-       // }
-
-
-
-};
-
-/**
- * Create variable
- */
-EditorUi.prototype.variable = function(name) {
-       var editor = this.editor;
-
-       if (name != null) {
-               try {
-
-                       var xhr = new XMLHttpRequest();
-                       xhr.open("POST", VARIABLE_URL, true);
-                       xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-                       xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
-                       xhr.onload = function(e) {
-                               if (xhr.readyState === 4) {
-                                       if (xhr.status === 201) {
-                                               editor.setStatus('Variable created at ' + JSON.parse(xhr.response).createdAt +
-                                                       ' (' + xhr.status + ' ' + xhr.statusText + ')');
-                                       } else {
-                                               editor.setStatus('Error cloning project: ' +
-                                                       JSON.parse(xhr.response).errors[0].message);
-                                       }
-                               }
-                       };
-                       xhr.onerror = function(e) {
-                               mxUtils.alert(xhr.statusText);
-                       };
-                       xhr.send('name=' + name);
-               } catch (e) {
-                       this.editor.setStatus('Error creating variable');
-               }
-       } else {
-               this.editor.setStatus('Error creating variable');
-       }
-};
-
-/**
- * Returns the URL for a copy of this editor with no state.
- */
-EditorUi.prototype.getUrl = function(pathname) {
-       var href = (pathname != null) ? pathname : window.location.pathname;
-       var parms = (href.indexOf('?') > 0) ? 1 : 0;
-
-       // Removes template URL parameter for new blank diagram
-       for (var key in urlParams) {
-               if (parms == 0) {
-                       href += '?';
-               } else {
-                       href += '&';
-               }
-
-               href += key + '=' + urlParams[key];
-               parms++;
-       }
-
-       return href;
-};
-
-/**
- * Updates the states of the given undo/redo items.
- */
-EditorUi.prototype.addUndoListener = function() {
-       var undo = this.actions.get('undo');
-       var redo = this.actions.get('redo');
-
-       var undoMgr = this.editor.undoManager;
-
-       var undoListener = function() {
-               undo.setEnabled(undoMgr.canUndo());
-               redo.setEnabled(undoMgr.canRedo());
-       };
-
-       undoMgr.addListener(mxEvent.ADD, undoListener);
-       undoMgr.addListener(mxEvent.UNDO, undoListener);
-       undoMgr.addListener(mxEvent.REDO, undoListener);
-       undoMgr.addListener(mxEvent.CLEAR, undoListener);
-
-       // Updates the button states once
-       undoListener();
-};
-
-/**
- * Updates the states of the given toolbar items based on the selection.
- */
-EditorUi.prototype.addSelectionListener = function() {
-       var selectionListener = mxUtils.bind(this, function() {
-               var graph = this.editor.graph;
-               var selected = !graph.isSelectionEmpty();
-               var vertexSelected = false;
-               var edgeSelected = false;
-
-               var cells = graph.getSelectionCells();
-
-               if (cells != null) {
-                       for (var i = 0; i < cells.length; i++) {
-                               var cell = cells[i];
-
-                               if (graph.getModel().isEdge(cell)) {
-                                       edgeSelected = true;
-                               }
-
-                               if (graph.getModel().isVertex(cell)) {
-                                       vertexSelected = true;
-                               }
-
-                               if (edgeSelected && vertexSelected) {
-                                       break;
-                               }
-                       }
-               }
-
-               // Updates action states
-               var actions = ['cut', 'copy', 'delete', 'duplicate', 'bold', 'italic',
-                       'style', 'underline', 'toFront', 'toBack', 'dashed', 'rounded',
-                       'shadow',
-                       'tilt', 'autosize'
-               ];
-
-               for (var i = 0; i < actions.length; i++) {
-                       this.actions.get(actions[i]).setEnabled(selected);
-               }
-
-               this.actions.get('curved').setEnabled(edgeSelected);
-               this.actions.get('rotation').setEnabled(vertexSelected);
-               this.actions.get('wordWrap').setEnabled(vertexSelected);
-               this.actions.get('group').setEnabled(graph.getSelectionCount() > 1);
-               this.actions.get('ungroup').setEnabled(graph.getSelectionCount() == 1 &&
-                       graph.getModel().getChildCount(graph.getSelectionCell()) > 0);
-               var oneVertexSelected = vertexSelected && graph.getSelectionCount() == 1;
-               this.actions.get('removeFromGroup').setEnabled(oneVertexSelected &&
-                       graph.getModel().isVertex(graph.getModel().getParent(graph.getSelectionCell()))
-               );
-
-               // Updates menu states
-               var menus = ['fontFamily', 'fontSize', 'alignment', 'position', 'text',
-                       'format',
-                       'arrange', 'linewidth', 'spacing'
-               ];
-
-               for (var i = 0; i < menus.length; i++) {
-                       this.menus.get(menus[i]).setEnabled(selected);
-               }
-
-               menus = ['line', 'lineend', 'linestart'];
-
-               for (var i = 0; i < menus.length; i++) {
-                       this.menus.get(menus[i]).setEnabled(edgeSelected);
-               }
-
-               this.actions.get('setAsDefaultEdge').setEnabled(edgeSelected);
-
-               this.menus.get('align').setEnabled(graph.getSelectionCount() > 1);
-               this.menus.get('direction').setEnabled(vertexSelected || (edgeSelected &&
-                       graph.isLoop(graph.view.getState(graph.getSelectionCell()))));
-               this.menus.get('navigation').setEnabled(graph.foldingEnabled && ((graph.view
-                               .currentRoot != null) ||
-                       (graph.getSelectionCount() == 1 && graph.isValidRoot(graph.getSelectionCell()))
-               ));
-               this.actions.get('home').setEnabled(graph.view.currentRoot != null);
-               this.actions.get('exitGroup').setEnabled(graph.view.currentRoot != null);
-               var groupEnabled = graph.getSelectionCount() == 1 && graph.isValidRoot(
-                       graph.getSelectionCell());
-               this.actions.get('enterGroup').setEnabled(groupEnabled);
-               this.actions.get('expand').setEnabled(groupEnabled);
-               this.actions.get('collapse').setEnabled(groupEnabled);
-               this.actions.get('editLink').setEnabled(graph.getSelectionCount() == 1);
-               this.actions.get('openLink').setEnabled(graph.getSelectionCount() == 1 &&
-                       graph.getLinkForCell(graph.getSelectionCell()) != null);
-       });
-
-       this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,
-               selectionListener);
-       selectionListener();
-};
-
-/**
- * Refreshes the viewport.
- */
-EditorUi.prototype.refresh = function() {
-       var quirks = mxClient.IS_IE && (document.documentMode == null || document.documentMode ==
-               5);
-       var w = this.container.clientWidth;
-       var h = this.container.clientHeight;
-
-       if (this.container == document.body) {
-               w = document.body.clientWidth || document.documentElement.clientWidth;
-               h = (quirks) ? document.body.clientHeight || document.documentElement.clientHeight :
-                       document.documentElement.clientHeight;
-       }
-
-       var effHsplitPosition = Math.max(0, Math.min(this.hsplitPosition, w - this.splitSize -
-               20));
-       var effVsplitPosition = Math.max(0, Math.min(this.vsplitPosition, h - this.menubarHeight -
-               this.toolbarHeight - this.footerHeight - this.splitSize - 1));
-
-       this.menubarContainer.style.height = this.menubarHeight + 'px';
-       this.toolbarContainer.style.top = this.menubarHeight + 'px';
-       this.toolbarContainer.style.height = this.toolbarHeight + 'px';
-
-       var tmp = this.menubarHeight + this.toolbarHeight;
-
-       if (!mxClient.IS_QUIRKS) {
-               tmp += 1;
-       }
-
-       this.sidebarContainer.style.top = tmp + 'px';
-       this.sidebarContainer.style.width = effHsplitPosition + 'px';
-       this.outlineContainer.style.width = effHsplitPosition + 'px';
-       this.outlineContainer.style.height = effVsplitPosition + 'px';
-       this.outlineContainer.style.bottom = this.footerHeight + 'px';
-       this.diagramContainer.style.left = (effHsplitPosition + this.splitSize) +
-               'px';
-       this.diagramContainer.style.top = this.sidebarContainer.style.top;
-       this.footerContainer.style.height = this.footerHeight + 'px';
-       this.footerContainer.style.display = 'none';
-       this.hsplit.style.top = this.sidebarContainer.style.top;
-       this.hsplit.style.bottom = this.outlineContainer.style.bottom;
-       this.hsplit.style.left = effHsplitPosition + 'px';
-       this.vsplit.style.width = this.sidebarContainer.style.width;
-       this.vsplit.style.bottom = (effVsplitPosition + this.footerHeight) + 'px';
-
-       if (quirks) {
-               this.menubarContainer.style.width = w + 'px';
-               this.toolbarContainer.style.width = this.menubarContainer.style.width;
-               var sidebarHeight = (h - effVsplitPosition - this.splitSize - this.footerHeight -
-                       this.menubarHeight - this.toolbarHeight);
-               this.sidebarContainer.style.height = sidebarHeight + 'px';
-               this.diagramContainer.style.width = (w - effHsplitPosition - this.splitSize) +
-                       'px';
-               var diagramHeight = (h - this.footerHeight - this.menubarHeight - this.toolbarHeight);
-               this.diagramContainer.style.height = diagramHeight + 'px';
-               this.footerContainer.style.width = this.menubarContainer.style.width;
-               this.hsplit.style.height = diagramHeight + 'px';
-       } else {
-               this.sidebarContainer.style.bottom = (effVsplitPosition + this.splitSize +
-                       this.footerHeight) + 'px';
-               this.diagramContainer.style.bottom = this.outlineContainer.style.bottom;
-       }
-};
-
-/**
- * Creates the required containers.
- */
-EditorUi.prototype.createDivs = function() {
-       this.menubarContainer = this.createDiv('geMenubarContainer');
-       this.toolbarContainer = this.createDiv('geToolbarContainer');
-       this.sidebarContainer = this.createDiv('geSidebarContainer');
-       this.outlineContainer = this.createDiv('geOutlineContainer');
-       this.diagramContainer = this.createDiv('geDiagramContainer');
-       this.footerContainer = this.createDiv('geFooterContainer');
-       this.hsplit = this.createDiv('geHsplit');
-       this.vsplit = this.createDiv('geVsplit');
-
-       // Sets static style for containers
-       this.menubarContainer.style.top = '0px';
-       this.menubarContainer.style.left = '0px';
-       this.menubarContainer.style.right = '0px';
-       this.toolbarContainer.style.left = '0px';
-       this.toolbarContainer.style.right = '0px';
-       this.sidebarContainer.style.left = '0px';
-       this.outlineContainer.style.left = '0px';
-       this.diagramContainer.style.right = '0px';
-       this.footerContainer.style.left = '0px';
-       this.footerContainer.style.right = '0px';
-       this.footerContainer.style.bottom = '0px';
-       this.vsplit.style.left = '0px';
-       this.vsplit.style.height = this.splitSize + 'px';
-       this.hsplit.style.width = this.splitSize + 'px';
-};
-
-/**
- * Creates the required containers.
- */
-EditorUi.prototype.createUi = function() {
-       // Creates menubar
-       this.menubar = this.menus.createMenubar(this.createDiv('geMenubar'));
-       this.menubarContainer.appendChild(this.menubar.container);
-
-       // Creates toolbar
-       this.toolbar = this.createToolbar(this.createDiv('geToolbar'));
-       this.toolbarContainer.appendChild(this.toolbar.container);
-
-       // Creates the sidebar
-       this.sidebar = this.createSidebar(this.sidebarContainer);
-
-       // Creates the footer
-       this.footerContainer.appendChild(this.createFooter());
-
-       // Adds status bar in menubar
-       this.statusContainer = this.createStatusContainer();
-
-       // Connects the status bar to the editor status
-       this.editor.addListener('statusChanged', mxUtils.bind(this, function() {
-               this.setStatusText(this.editor.getStatus());
-       }));
-
-       this.setStatusText(this.editor.getStatus());
-       this.menubar.container.appendChild(this.statusContainer);
-
-       // Inserts into DOM
-       this.container.appendChild(this.menubarContainer);
-       this.container.appendChild(this.toolbarContainer);
-       this.container.appendChild(this.sidebarContainer);
-       this.container.appendChild(this.outlineContainer);
-       this.container.appendChild(this.diagramContainer);
-       this.container.appendChild(this.footerContainer);
-       this.container.appendChild(this.hsplit);
-       this.container.appendChild(this.vsplit);
-
-       // HSplit
-       this.addSplitHandler(this.hsplit, true, 0, mxUtils.bind(this, function(
-               value) {
-               this.hsplitPosition = value;
-               this.refresh();
-               this.editor.graph.sizeDidChange();
-               this.editor.outline.update(false);
-               this.editor.outline.outline.sizeDidChange();
-       }));
-
-       // VSplit
-       this.addSplitHandler(this.vsplit, false, this.footerHeight, mxUtils.bind(
-               this,
-               function(value) {
-                       this.vsplitPosition = value;
-                       this.refresh();
-                       this.editor.outline.update(false);
-                       this.editor.outline.outline.sizeDidChange();
-               }));
-};
-
-/**
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.createStatusContainer = function() {
-       var container = document.createElement('a');
-       container.className = 'geItem geStatus';
-
-       return container;
-};
-
-/**
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.createStatusContainer = function() {
-       var container = document.createElement('a');
-       container.className = 'geItem geStatus';
-
-       return container;
-};
-
-/**
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.setStatusText = function(value) {
-       this.statusContainer.innerHTML = value;
-};
-
-/**
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.createToolbar = function(container) {
-       return new Toolbar(this, container);
-};
-
-/**
- * Creates a new sidebar for the given container.
- */
-EditorUi.prototype.createSidebar = function(container) {
-       return new Sidebar(this, container);
-};
-
-/**
- * Creates and returns a new footer.
- */
-EditorUi.prototype.createFooter = function() {
-       return this.createDiv('geFooter');
-};
-
-/**
- * Creates the actual toolbar for the toolbar container.
- */
-EditorUi.prototype.createDiv = function(classname) {
-       var elt = document.createElement('div');
-       elt.className = classname;
-
-       return elt;
-};
-
-/**
- * Creates the custom header.
- */
-EditorUi.prototype.createHeader = function(classname) {
-       var elt = document.createElement(classname);
-       return elt;
-};
-
-/**
- * Creates the custom header.
- */
-EditorUi.prototype.createForm = function(classname) {
-       var elt = document.createElement('form');
-       elt.className = classname;
-
-       return elt;
-};
-
-/**
- * Updates the states of the given undo/redo items.
- */
-EditorUi.prototype.addSplitHandler = function(elt, horizontal, dx, onChange) {
-       var start = null;
-       var initial = null;
-
-       function getValue() {
-               return parseInt(((horizontal) ? elt.style.left : elt.style.bottom));
-       };
-
-       function moveHandler(evt) {
-               if (start != null) {
-                       var pt = new mxPoint(mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-                       onChange(Math.max(0, initial + ((horizontal) ? (pt.x - start.x) : (start.y -
-                               pt.y)) - dx));
-                       mxEvent.consume(evt);
-               }
-       };
-
-       function dropHandler(evt) {
-               moveHandler(evt);
-               start = null;
-               initial = null;
-       };
-
-       mxEvent.addGestureListeners(elt, function(evt) {
-               start = new mxPoint(mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-               initial = getValue();
-               mxEvent.consume(evt);
-       });
-
-       mxEvent.addListener(document, 'mousemove', moveHandler);
-       mxEvent.addListener(document, 'touchmove', moveHandler);
-       mxEvent.addListener(document, 'mouseup', dropHandler);
-       mxEvent.addListener(document, 'touchend', dropHandler);
-};
-
-/**
- * Displays a print dialog.
- */
-EditorUi.prototype.showDialog = function(elt, w, h, modal, closable, onClose) {
-       this.hideDialog();
-       this.dialog = new Dialog(this, elt, w, (mxClient.IS_VML) ? h - 12 : h,
-               modal,
-               closable, onClose);
-};
-
-/**
- * Displays a print dialog.
- */
-EditorUi.prototype.hideDialog = function() {
-       if (this.dialog != null) {
-               this.dialog.close();
-               this.dialog = null;
-               this.editor.graph.container.focus();
-       }
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-EditorUi.prototype.saveFile = function(forceDialog) {
-       if (!forceDialog && this.editor.filename != null) {
-               this.save(this.editor.getOrCreateFilename());
-       } else {
-               this.showDialog(new SaveDialog(this).container, 300, 100, true, true);
-       }
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-EditorUi.prototype.publishFile = function(forceDialog) {
-       if (!forceDialog && this.editor.filename != null) {
-               this.publish(this.editor.getOrCreateFilename());
-       } else {
-               //this.showDialog(new SaveDialog(this).container, 300, 100, true, true);
-       }
-};
-
-/**
- * Executes the given layout.
- */
-EditorUi.prototype.executeLayout = function(layout, animate, ignoreChildCount) {
-       var graph = this.editor.graph;
-       var cell = graph.getSelectionCell();
-
-       // Allow global overridding of animation
-       animate = this.animate != null ? this.animate : animate;
-
-       graph.getModel().beginUpdate();
-       try {
-               layout.execute(graph.getDefaultParent(), cell);
-       } catch (e) {
-               throw e;
-       } finally {
-               // Animates the changes in the graph model except
-               // for Camino, where animation is too slow
-               if (animate && navigator.userAgent.indexOf('Camino') < 0) {
-                       // New API for animating graph layout results asynchronously
-                       var morph = new mxMorphing(graph);
-                       morph.addListener(mxEvent.DONE, mxUtils.bind(this, function() {
-                               graph.getModel().endUpdate();
-                       }));
-
-                       morph.startAnimation();
-               } else {
-                       graph.getModel().endUpdate();
-               }
-       }
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-EditorUi.prototype.createKeyHandler = function(editor) {
-       var graph = this.editor.graph;
-       var keyHandler = new mxKeyHandler(graph);
-
-       // Routes command-key to control-key on Mac
-       keyHandler.isControlDown = function(evt) {
-               return mxEvent.isControlDown(evt) || (mxClient.IS_MAC && evt.metaKey);
-       };
-
-       // Helper function to move cells with the cursor keys
-       function nudge(keyCode) {
-               if (!graph.isSelectionEmpty()) {
-                       var dx = 0;
-                       var dy = 0;
-
-                       if (keyCode == 37) {
-                               dx = -1;
-                       } else if (keyCode == 38) {
-                               dy = -1;
-                       } else if (keyCode == 39) {
-                               dx = 1;
-                       } else if (keyCode == 40) {
-                               dy = 1;
-                       }
-
-                       graph.moveCells(graph.getSelectionCells(), dx, dy);
-                       graph.scrollCellToVisible(graph.getSelectionCell());
-               }
-       };
-
-       // Binds keystrokes to actions
-       var bindAction = mxUtils.bind(this, function(code, control, key, shift) {
-               var action = this.actions.get(key);
-
-               if (action != null) {
-                       var f = function() {
-                               if (action.enabled) {
-                                       action.funct();
-                               }
-                       };
-
-                       if (control) {
-                               if (shift) {
-                                       keyHandler.bindControlShiftKey(code, f);
-                               } else {
-                                       keyHandler.bindControlKey(code, f);
-                               }
-                       } else {
-                               if (shift) {
-                                       keyHandler.bindShiftKey(code, f);
-                               } else {
-                                       keyHandler.bindKey(code, f);
-                               }
-                       }
-               }
-       });
-
-       var ui = this;
-       var keyHandleEscape = keyHandler.escape;
-       keyHandler.escape = function(evt) {
-               ui.hideDialog();
-               keyHandleEscape.apply(this, arguments);
-       };
-
-       // Ignores enter keystroke. Remove this line if you want the
-       // enter keystroke to stop editing.
-       keyHandler.enter = function() {};
-       keyHandler.bindKey(8, function() {
-               graph.foldCells(true);
-       }); // Backspace
-       keyHandler.bindKey(13, function() {
-               graph.foldCells(false);
-       }); // Enter
-       keyHandler.bindKey(33, function() {
-               graph.exitGroup();
-       }); // Page Up
-       keyHandler.bindKey(34, function() {
-               graph.enterGroup();
-       }); // Page Down
-       keyHandler.bindKey(36, function() {
-               graph.home();
-       }); // Home
-       keyHandler.bindKey(35, function() {
-               graph.refresh();
-       }); // End
-       keyHandler.bindKey(37, function() {
-               nudge(37);
-       }); // Left arrow
-       keyHandler.bindKey(38, function() {
-               nudge(38);
-       }); // Up arrow
-       keyHandler.bindKey(39, function() {
-               nudge(39);
-       }); // Right arrow
-       keyHandler.bindKey(40, function() {
-               nudge(40);
-       }); // Down arrow
-       keyHandler.bindKey(113, function() {
-               graph.startEditingAtCell();
-       });
-       bindAction(46, false, 'delete'); // Delete
-       bindAction(82, true, 'tilt'); // Ctrl+R
-       bindAction(83, true, 'save'); // Ctrl+S
-       bindAction(83, true, 'saveAs', true); // Ctrl+Shift+S
-       bindAction(107, false, 'zoomIn'); // Add
-       bindAction(109, false, 'zoomOut'); // Subtract
-       bindAction(65, true, 'selectAll'); // Ctrl+A
-       bindAction(86, true, 'selectVertices', true); // Ctrl+Shift+V
-       bindAction(69, true, 'selectEdges', true); // Ctrl+Shift+E
-       bindAction(69, true, 'export'); // Ctrl+Shift+E
-       bindAction(66, true, 'toBack'); // Ctrl+B
-       bindAction(70, true, 'toFront'); // Ctrl+F
-       bindAction(68, true, 'duplicate'); // Ctrl+D
-       bindAction(90, true, 'undo'); // Ctrl+Z
-       bindAction(89, true, 'redo'); // Ctrl+Y
-       bindAction(88, true, 'cut'); // Ctrl+X
-       bindAction(67, true, 'copy'); // Ctrl+C
-       bindAction(81, true, 'connect'); // Ctrl+Q
-       bindAction(86, true, 'paste'); // Ctrl+V
-       bindAction(71, true, 'group'); // Ctrl+G
-       bindAction(71, true, 'grid', true); // Ctrl+Shift+G
-       bindAction(85, true, 'ungroup'); // Ctrl+U
-       bindAction(112, false, 'about'); // F1
-       bindAction(80, true, 'publish', true); // Ctrl+Shift+P
-
-       return keyHandler;
-};
-
-/**
- * Giuseppe Careri
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.createMultiplicities = function(graph, cells, source,
-       target) {
-       for (var i = 0; i < cells.length; i++) {
-               graph.push(new mxMultiplicity(true, cells[i], null, null, source[i][0],
-                       source[i][1], null, mxResources.get(cells[i]) + ' must have ' + source[i][0] + ' outgoing edge.', null));
-               graph.push(new mxMultiplicity(false, cells[i], null, null, target[i][0],
-                       target[i][1], null, mxResources.get(cells[i]) + ' must have ' + target[i][0] + ' incoming edge.', null));
-       };
-};
+var _0x670a=["\x65\x64\x69\x74\x6F\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x45\x64\x69\x74\x6F\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x67\x72\x61\x70\x68","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x73\x72\x63","\x73\x75\x62\x6D\x65\x6E\x75\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x6D\x65\x6E\x75\x73","\x63\x72\x65\x61\x74\x65\x44\x69\x76\x73","\x72\x65\x66\x72\x65\x73\x68","\x63\x72\x65\x61\x74\x65\x55\x69","\x65\x76\x65\x6E\x74","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x41\x6C\x6C\x6F\x77\x65\x64","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x62\x69\x6E\x64","\x62\x6F\x64\x79","\x6F\x6E\x73\x65\x6C\x65\x63\x74\x73\x74\x61\x72\x74","\x6D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x6E\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x74\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x64\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x66\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6F\x6E\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x69\x6E\x69\x74","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x75\x72\x73\x6F\x72","\x64\x65\x66\x61\x75\x6C\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x66\x6F\x63\x75\x73","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x61\x70\x70\x6C\x79","\x6D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x73\x74\x61\x72\x74","\x65\x6E\x64","\x69\x6E\x70\x75\x74","\x71\x75\x65\x73\x74\x69\x6F\x6E","\x65\x6D\x61\x69\x6C","\x6E","\x63\x72\x65\x61\x74\x65\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x65\x6C\x6C","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x74\x61\x67\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x73\x6F\x75\x72\x63\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67\x41\x74\x43\x65\x6C\x6C","\x69\x73\x56\x65\x72\x74\x65\x78","\x6C\x6F\x67","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x63\x6F\x6E\x73\x75\x6D\x65","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x6F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x67\x65\x73\x74\x75\x72\x65\x63\x68\x61\x6E\x67\x65","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x73\x63\x61\x6C\x65\x28","\x73\x63\x61\x6C\x65","\x67\x65\x74\x44\x72\x61\x77\x50\x61\x6E\x65","\x76\x69\x65\x77","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x73\x74\x75\x72\x65\x65\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x7A\x6F\x6F\x6D\x54\x6F\x43\x65\x6E\x74\x65\x72","\x7A\x6F\x6F\x6D","\x76\x69\x73\x69\x62\x6C\x65","\x63\x72\x65\x61\x74\x65\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x73\x69\x7A\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x75\x70\x64\x61\x74\x65","\x6F\x70\x65\x6E","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6D\x65\x6E\x75\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x74\x6F\x6F\x6C\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x66\x6F\x6F\x74\x65\x72\x48\x65\x69\x67\x68\x74","\x68\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x55\x6E\x64\x6F\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x73\x74\x65","\x67\x65\x74","\x69\x73\x45\x6D\x70\x74\x79","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x74","\x63\x6F\x70\x79","\x6F\x70\x65\x6E\x65\x72","\x6F\x70\x65\x6E\x46\x69\x6C\x65","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x63\x6C\x65\x61\x72","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x69\x6E\x76\x61\x6C\x69\x64\x4F\x72\x4D\x69\x73\x73\x69\x6E\x67\x46\x69\x6C\x65","\x3A\x20","\x6D\x65\x73\x73\x61\x67\x65","\x61\x6C\x65\x72\x74","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x6F\x70\x65\x6E\x53\x74\x72\x69\x6E\x67","\x64\x61\x74\x61","\x6E\x65\x77","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x67\x65\x74\x49\x74\x65\x6D","\x72\x65\x70\x6C\x61\x63\x65","\x63\x6F\x6E\x66\x69\x72\x6D","\x73\x65\x74\x49\x74\x65\x6D","\x73\x61\x76\x65\x64","\x20","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x6C\x65\x6E\x67\x74\x68","\x50\x4F\x53\x54","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x50\x72\x6F\x6A\x65\x63\x74\x20","\x6E\x61\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x20\x69\x73\x20\x6F\x70\x65\x6E\x69\x6E\x67\x20\x69\x6E\x20\x6E\x65\x77\x20\x77\x69\x6E\x64\x6F\x77\x21","\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x69\x64","\x5F\x62\x6C\x61\x6E\x6B","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x65\x72\x72\x6F\x72\x73","\x6F\x6E\x65\x72\x72\x6F\x72","\x73\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x65\x77\x26\x6E\x61\x6D\x65\x3D","\x73\x65\x6E\x64","\x64\x72\x61\x77\x69\x6E\x67\x54\x6F\x6F\x4C\x61\x72\x67\x65","\x70\x6F\x70\x75\x70","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74","\x73\x61\x76\x65","\x50\x55\x54","\x55\x70\x64\x61\x74\x65\x64\x20\x61\x74\x20","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x20\x28","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x64\x72\x61\x66\x74\x3D","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x66\x69\x6C\x65","\x73\x61\x76\x65\x41\x73","\x45\x72\x72\x6F\x72\x20\x63\x6C\x6F\x6E\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x63\x6C\x6F\x6E\x65\x64\x26\x6E\x61\x6D\x65\x3D","\x26\x64\x72\x61\x66\x74\x3D","\x26\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x76\x61\x6C\x69\x64\x61\x74\x65","\x67\x65\x74\x52\x6F\x6F\x74","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x41\x74","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x3C\x62\x72\x3E","\x73\x65\x74\x43\x65\x6C\x6C\x57\x61\x72\x6E\x69\x6E\x67","","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x51\x75\x65\x73\x74\x69\x6F\x6E\x20\x63\x61\x6E\x20\x6E\x6F\x74\x20\x62\x65\x20\x65\x6D\x70\x74\x79","\x0A","\x6C\x61\x62\x65\x6C","\x4C\x61\x62\x65\x6C\x20\x63\x61\x6E\x20\x6E\x6F\x74\x20\x62\x65\x20\x65\x6D\x70\x74\x79","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x6C\x6F\x63\x6B","\x4F\x6E\x6C\x79\x20\x6F\x6E\x65\x20\x53\x74\x61\x72\x74\x20\x62\x6C\x6F\x63\x6B\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x67\x65\x74\x49\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x67\x65\x74\x56\x61\x6C\x75\x65","\x6E\x75\x6C\x6C","\x56\x61\x6C\x75\x65\x20\x63\x61\x6E\x20\x6E\x6F\x74\x20\x62\x65\x20\x65\x6D\x70\x74\x79","\x2C","\x73\x70\x6C\x69\x74","\x74\x72\x69\x6D","\x56\x61\x6C\x75\x65","\x20\x63\x61\x6E\x20\x6E\x6F\x74\x20\x62\x65\x20\x65\x6D\x70\x74\x79","\x66\x6F\x72\x45\x61\x63\x68","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x67\x65\x74\x45\x64\x67\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x67\x65\x74\x43\x65\x6C\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x63\x68\x69\x6C\x64\x72\x65\x6E","\x70\x75\x62\x6C\x69\x73\x68","\x50\x75\x62\x6C\x69\x73\x68\x65\x64\x20\x61\x74\x20","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x66\x69\x6C\x65","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x76\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64\x20\x61\x74\x20","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x6E\x61\x6D\x65\x3D","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65","\x67\x65\x74\x55\x72\x6C","\x70\x61\x74\x68\x6E\x61\x6D\x65","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x26","\x3D","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x61\x6E\x55\x6E\x64\x6F","\x63\x61\x6E\x52\x65\x64\x6F","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x68\x61\x64\x6F\x77","\x74\x69\x6C\x74","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x63\x75\x72\x76\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x72\x6F\x75\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x74\x65\x78\x74","\x66\x6F\x72\x6D\x61\x74","\x61\x72\x72\x61\x6E\x67\x65","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x73\x70\x61\x63\x69\x6E\x67","\x6C\x69\x6E\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x6C\x69\x67\x6E","\x67\x65\x74\x53\x74\x61\x74\x65","\x69\x73\x4C\x6F\x6F\x70","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x6D\x61\x78","\x68\x65\x69\x67\x68\x74","\x70\x78","\x74\x6F\x70","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x77\x69\x64\x74\x68","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x64\x69\x73\x70\x6C\x61\x79","\x6E\x6F\x6E\x65","\x68\x73\x70\x6C\x69\x74","\x76\x73\x70\x6C\x69\x74","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x4F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x44\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x46\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x48\x73\x70\x6C\x69\x74","\x67\x65\x56\x73\x70\x6C\x69\x74","\x30\x70\x78","\x72\x69\x67\x68\x74","\x6D\x65\x6E\x75\x62\x61\x72","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x74\x6F\x6F\x6C\x62\x61\x72","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x73\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x53\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x6F\x74\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x65\x74\x53\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x61\x64\x64\x53\x70\x6C\x69\x74\x48\x61\x6E\x64\x6C\x65\x72","\x61","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D\x20\x67\x65\x53\x74\x61\x74\x75\x73","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x67\x65\x46\x6F\x6F\x74\x65\x72","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x72\x6D","\x66\x6F\x72\x6D","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x78","\x79","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x74\x6F\x75\x63\x68\x6D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x75\x70","\x74\x6F\x75\x63\x68\x65\x6E\x64","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x64\x69\x61\x6C\x6F\x67","\x49\x53\x5F\x56\x4D\x4C","\x63\x6C\x6F\x73\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x61\x6E\x69\x6D\x61\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x65\x78\x65\x63\x75\x74\x65","\x43\x61\x6D\x69\x6E\x6F","\x75\x73\x65\x72\x41\x67\x65\x6E\x74","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x49\x53\x5F\x4D\x41\x43","\x6D\x65\x74\x61\x4B\x65\x79","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x65\x6E\x61\x62\x6C\x65\x64","\x66\x75\x6E\x63\x74","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79","\x62\x69\x6E\x64\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x4B\x65\x79","\x65\x73\x63\x61\x70\x65","\x65\x6E\x74\x65\x72","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x65\x78\x70\x6F\x72\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x67\x72\x69\x64","\x61\x62\x6F\x75\x74","\x20\x6D\x75\x73\x74\x20\x68\x61\x76\x65\x20","\x20\x6F\x75\x74\x67\x6F\x69\x6E\x67\x20\x65\x64\x67\x65\x2E","\x70\x75\x73\x68","\x20\x69\x6E\x63\x6F\x6D\x69\x6E\x67\x20\x65\x64\x67\x65\x2E"];EditorUi=function(_0x5798x1,_0x5798x2){this[_0x670a[0]]=_0x5798x1|| new Editor();this[_0x670a[1]]=_0x5798x2||document[_0x670a[3]](_0x670a[2]);var _0x5798x3=_0x5798x1[_0x670a[4]];var _0x5798x4=this;this[_0x670a[1]][_0x670a[6]][_0x670a[5]]=_0x670a[7]; new Image()[_0x670a[8]]=mxPopupMenu[_0x670a[10]][_0x670a[9]];if(mxConnectionHandler[_0x670a[10]][_0x670a[11]]!=null){ new Image()[_0x670a[8]]=mxConnectionHandler[_0x670a[10]][_0x670a[11]][_0x670a[8]]};this[_0x670a[12]]= new Actions(this);this[_0x670a[13]]= new Menus(this);this[_0x670a[14]]();this[_0x670a[15]]();this[_0x670a[16]]();var _0x5798x5=mxUtils[_0x670a[20]](this,function(_0x5798x6){if(_0x5798x6==null){_0x5798x6=window[_0x670a[17]]};if(this[_0x670a[18]](_0x5798x6)){return true};return _0x5798x3[_0x670a[19]]()});if(this[_0x670a[1]]==document[_0x670a[21]]){this[_0x670a[23]][_0x670a[22]]=_0x5798x5;this[_0x670a[23]][_0x670a[24]]=_0x5798x5;this[_0x670a[25]][_0x670a[22]]=_0x5798x5;this[_0x670a[25]][_0x670a[24]]=_0x5798x5;this[_0x670a[26]][_0x670a[22]]=_0x5798x5;this[_0x670a[26]][_0x670a[24]]=_0x5798x5;this[_0x670a[27]][_0x670a[22]]=_0x5798x5;this[_0x670a[27]][_0x670a[24]]=_0x5798x5;this[_0x670a[28]][_0x670a[22]]=_0x5798x5;this[_0x670a[28]][_0x670a[24]]=_0x5798x5};if(mxClient[_0x670a[29]]&&( typeof (document[_0x670a[30]])===_0x670a[31]||document[_0x670a[30]]<9)){mxEvent[_0x670a[33]](this[_0x670a[26]],_0x670a[32],_0x5798x5);mxEvent[_0x670a[33]](this[_0x670a[27]],_0x670a[32],_0x5798x5)}else {this[_0x670a[26]][_0x670a[34]]=_0x5798x5;this[_0x670a[27]][_0x670a[34]]=_0x5798x5};_0x5798x3[_0x670a[35]](this[_0x670a[26]]);_0x5798x3[_0x670a[15]]();_0x5798x3[_0x670a[1]][_0x670a[38]](_0x670a[36],_0x670a[37]);_0x5798x3[_0x670a[1]][_0x670a[6]][_0x670a[39]]=_0x670a[40];_0x5798x3[_0x670a[1]][_0x670a[6]][_0x670a[41]]=_0x670a[42]+_0x5798x1[_0x670a[43]]+_0x670a[44];_0x5798x3[_0x670a[1]][_0x670a[6]][_0x670a[45]]=_0x670a[46];_0x5798x3[_0x670a[1]][_0x670a[47]]();var _0x5798x7=_0x5798x3[_0x670a[48]];_0x5798x3[_0x670a[48]]=function(_0x5798x8,_0x5798x9,_0x5798xa){if(_0x5798x8==mxEvent[_0x670a[49]]){this[_0x670a[1]][_0x670a[47]]()};_0x5798x7[_0x670a[50]](this,arguments)};this[_0x670a[58]](_0x5798x3[_0x670a[51]],[_0x670a[52],_0x670a[53],_0x670a[54],_0x670a[55],_0x670a[56]],[[1,1],[0,0],[1,1],[1,_0x670a[57]],[1,_0x670a[57]]],[[0,0],[1,_0x670a[57]],[1,_0x670a[57]],[1,_0x670a[57]],[1,_0x670a[57]]]);_0x5798x3[_0x670a[59]]=function(_0x5798x6,_0x5798xb){var _0x5798xc=[_0x670a[55]];var _0x5798xd= new mxEventObject(mxEvent.DOUBLE_CLICK,_0x670a[17],_0x5798x6,_0x670a[60],_0x5798xb);this[_0x670a[61]](_0x5798xd);if(this[_0x670a[62]]()&&!mxEvent[_0x670a[63]](_0x5798x6)&&!_0x5798xd[_0x670a[63]]()){if(this[_0x670a[65]]()[_0x670a[64]](_0x5798xb)){if(_0x5798xc[_0x670a[69]](_0x5798xb[_0x670a[68]][_0x670a[67]][_0x670a[66]])>=0){this[_0x670a[70]](_0x5798xb)}}else {if(this[_0x670a[65]]()[_0x670a[71]](_0x5798xb)){console[_0x670a[72]](_0x5798x4);console[_0x670a[72]](_0x5798xb);_0x5798x4[_0x670a[73]]( new GeneralDialog(_0x5798x4,_0x5798xb)[_0x670a[1]],320,280,true,true)}};_0x5798xd[_0x670a[74]]()}};_0x5798x3[_0x670a[76]][_0x670a[75]]=true;_0x5798x3[_0x670a[76]][_0x670a[77]]=mxUtils[_0x670a[20]](this,function(_0x5798xe,_0x5798xb,_0x5798x6){this[_0x670a[13]][_0x670a[78]](_0x5798xe,_0x5798xb,_0x5798x6)});_0x5798x1[_0x670a[80]][_0x670a[35]](this[_0x670a[79]]);mxEvent[_0x670a[82]](document,mxUtils[_0x670a[20]](this,function(_0x5798x6){_0x5798x3[_0x670a[76]][_0x670a[81]]()}));if(mxClient[_0x670a[83]]){mxEvent[_0x670a[33]](_0x5798x3[_0x670a[1]],_0x670a[84],mxUtils[_0x670a[20]](this,function(_0x5798x6){_0x5798x3[_0x670a[89]][_0x670a[88]]()[_0x670a[38]](_0x670a[85],_0x670a[86]+_0x5798x6[_0x670a[87]]+_0x670a[44]);_0x5798x3[_0x670a[89]][_0x670a[91]]()[_0x670a[6]][_0x670a[90]]=_0x670a[7]}));mxEvent[_0x670a[33]](_0x5798x3[_0x670a[1]],_0x670a[92],mxUtils[_0x670a[20]](this,function(_0x5798x6){_0x5798x3[_0x670a[89]][_0x670a[88]]()[_0x670a[93]](_0x670a[85]);_0x5798x3[_0x670a[94]]=true;_0x5798x3[_0x670a[95]](_0x5798x6[_0x670a[87]]);_0x5798x3[_0x670a[89]][_0x670a[91]]()[_0x670a[6]][_0x670a[90]]=_0x670a[96]}))};var _0x5798xf=this[_0x670a[97]](_0x5798x1);this[_0x670a[98]]=function(){return _0x5798xf};mxEvent[_0x670a[33]](window,_0x670a[99],mxUtils[_0x670a[20]](this,function(){this[_0x670a[15]]();_0x5798x3[_0x670a[100]]();this[_0x670a[0]][_0x670a[80]][_0x670a[101]](false);this[_0x670a[0]][_0x670a[80]][_0x670a[80]][_0x670a[100]]()}));this[_0x670a[35]]();this[_0x670a[102]]()};EditorUi[_0x670a[10]][_0x670a[103]]=(mxClient[_0x670a[83]])?16:8;EditorUi[_0x670a[10]][_0x670a[104]]=33;EditorUi[_0x670a[10]][_0x670a[105]]=36;EditorUi[_0x670a[10]][_0x670a[106]]=28;EditorUi[_0x670a[10]][_0x670a[107]]=204;EditorUi[_0x670a[10]][_0x670a[108]]=190;EditorUi[_0x670a[10]][_0x670a[35]]=function(){this[_0x670a[109]]();this[_0x670a[110]]();var _0x5798x10=this[_0x670a[12]][_0x670a[112]](_0x670a[111]);var _0x5798x11=function(){_0x5798x10[_0x670a[114]](!mxClipboard[_0x670a[113]]())};var _0x5798x12=mxClipboard[_0x670a[115]];mxClipboard[_0x670a[115]]=function(){_0x5798x12[_0x670a[50]](this,arguments);_0x5798x11()};var _0x5798x13=mxClipboard[_0x670a[116]];mxClipboard[_0x670a[116]]=function(){_0x5798x13[_0x670a[50]](this,arguments);_0x5798x11()}};EditorUi[_0x670a[10]][_0x670a[18]]=function(_0x5798x6){return false};EditorUi[_0x670a[10]][_0x670a[102]]=function(){try{if(window[_0x670a[117]]!=null&&window[_0x670a[117]][_0x670a[118]]!=null){window[_0x670a[117]][_0x670a[118]][_0x670a[130]](mxUtils[_0x670a[20]](this,function(_0x5798x14,_0x5798x15){try{var _0x5798x16=mxUtils[_0x670a[119]](_0x5798x14);this[_0x670a[0]][_0x670a[121]](_0x5798x16[_0x670a[120]]);this[_0x670a[0]][_0x670a[122]]=false;this[_0x670a[0]][_0x670a[124]][_0x670a[123]]();if(_0x5798x15!=null){this[_0x670a[0]][_0x670a[125]]=_0x5798x15}}catch(e){mxUtils[_0x670a[129]](mxResources[_0x670a[112]](_0x670a[126])+_0x670a[127]+e[_0x670a[128]])}}))}}catch(e){}};EditorUi[_0x670a[10]][_0x670a[131]]=function(_0x5798x14,_0x5798x15,_0x5798x17){try{var _0x5798x16=mxUtils[_0x670a[119]](_0x5798x14);this[_0x670a[0]][_0x670a[121]](_0x5798x16[_0x670a[120]]);this[_0x670a[0]][_0x670a[122]]=false;this[_0x670a[0]][_0x670a[124]][_0x670a[123]]();if(_0x5798x15!=null){this[_0x670a[0]][_0x670a[125]]=_0x5798x15};if(_0x5798x17!=null){this[_0x670a[0]][_0x670a[132]]=_0x5798x17}}catch(e){mxUtils[_0x670a[129]](mxResources[_0x670a[112]](_0x670a[126])+_0x670a[127]+e[_0x670a[128]])}};EditorUi[_0x670a[10]][_0x670a[133]]=function(_0x5798x18){var _0x5798x1=this[_0x670a[0]];if(_0x5798x18!=null){var _0x5798x14=mxUtils[_0x670a[135]](this[_0x670a[0]][_0x670a[134]]());try{if(useLocalStorage){if(localStorage[_0x670a[136]](_0x5798x18)!=null&&!mxUtils[_0x670a[138]](mxResources[_0x670a[112]](_0x670a[137],[_0x5798x18]))){return};localStorage[_0x670a[139]](_0x5798x18,_0x5798x14);this[_0x670a[0]][_0x670a[142]](mxResources[_0x670a[112]](_0x670a[140])+_0x670a[141]+ new Date())}else {console[_0x670a[72]](_0x5798x14[_0x670a[143]]);console[_0x670a[72]](MAX_REQUEST_SIZE);if(_0x5798x14[_0x670a[143]]<MAX_REQUEST_SIZE){_0x5798x14=encodeURIComponent(_0x5798x14);_0x5798x18=encodeURIComponent(_0x5798x18);var _0x5798x19= new XMLHttpRequest();_0x5798x19[_0x670a[102]](_0x670a[144],SAVE_URL,true);_0x5798x19[_0x670a[147]](_0x670a[145],_0x670a[146]);_0x5798x19[_0x670a[147]](_0x670a[148],_0x670a[149]+_0x5798x1[_0x670a[132]][_0x670a[150]]);_0x5798x19[_0x670a[151]]=function(_0x5798x1a){if(_0x5798x19[_0x670a[152]]===4){if(_0x5798x19[_0x670a[153]]===201){_0x5798x1[_0x670a[142]](_0x670a[154]+JSON[_0x670a[157]](_0x5798x19[_0x670a[156]])[_0x670a[155]]+_0x670a[158]);setTimeout(function(){window[_0x670a[102]](_0x670a[159]+JSON[_0x670a[157]](_0x5798x19[_0x670a[156]])[_0x670a[160]],_0x670a[161])},1500)}else {_0x5798x1[_0x670a[142]](_0x670a[162]+JSON[_0x670a[157]](_0x5798x19[_0x670a[156]])[_0x670a[163]][0][_0x670a[128]])}}};_0x5798x19[_0x670a[164]]=function(_0x5798x1a){mxUtils[_0x670a[129]](_0x5798x19[_0x670a[165]])};_0x5798x19[_0x670a[167]](_0x670a[166]+_0x5798x18)}else {mxUtils[_0x670a[129]](mxResources[_0x670a[112]](_0x670a[168]));mxUtils[_0x670a[169]](_0x5798x14);return}};this[_0x670a[0]][_0x670a[125]]=_0x5798x18;this[_0x670a[0]][_0x670a[122]]=false}catch(e){this[_0x670a[0]][_0x670a[142]](_0x670a[170])}}else {this[_0x670a[0]][_0x670a[142]](_0x670a[170])}};EditorUi[_0x670a[10]][_0x670a[171]]=function(_0x5798x18){var _0x5798x1=this[_0x670a[0]];if(_0x5798x18!=null){var _0x5798x14=mxUtils[_0x670a[135]](this[_0x670a[0]][_0x670a[134]]());try{if(useLocalStorage){if(localStorage[_0x670a[136]](_0x5798x18)!=null&&!mxUtils[_0x670a[138]](mxResources[_0x670a[112]](_0x670a[137],[_0x5798x18]))){return};localStorage[_0x670a[139]](_0x5798x18,_0x5798x14);this[_0x670a[0]][_0x670a[142]](mxResources[_0x670a[112]](_0x670a[140])+_0x670a[141]+ new Date())}else {console[_0x670a[72]](_0x5798x14[_0x670a[143]]);console[_0x670a[72]](MAX_REQUEST_SIZE);if(_0x5798x14[_0x670a[143]]<MAX_REQUEST_SIZE){_0x5798x14=encodeURIComponent(_0x5798x14);var _0x5798x19= new XMLHttpRequest();_0x5798x19[_0x670a[102]](_0x670a[172],SAVE_URL+this[_0x670a[0]][_0x670a[132]][_0x670a[160]],true);_0x5798x19[_0x670a[147]](_0x670a[145],_0x670a[146]);_0x5798x19[_0x670a[147]](_0x670a[148],_0x670a[149]+_0x5798x1[_0x670a[132]][_0x670a[150]]);_0x5798x19[_0x670a[151]]=function(_0x5798x1a){if(_0x5798x19[_0x670a[152]]===4){if(_0x5798x19[_0x670a[153]]===200){_0x5798x1[_0x670a[142]](_0x670a[173]+JSON[_0x670a[157]](_0x5798x19[_0x670a[156]])[_0x670a[174]]+_0x670a[175]+_0x5798x19[_0x670a[153]]+_0x670a[141]+_0x5798x19[_0x670a[165]]+_0x670a[44])}else {_0x5798x1[_0x670a[142]](_0x670a[176]+JSON[_0x670a[157]](_0x5798x19[_0x670a[156]])[_0x670a[163]][0][_0x670a[128]])}}};_0x5798x19[_0x670a[164]]=function(_0x5798x1a){mxUtils[_0x670a[129]](_0x5798x19[_0x670a[165]])};_0x5798x19[_0x670a[167]](_0x670a[177]+_0x5798x14)}else {mxUtils[_0x670a[129]](mxResources[_0x670a[112]](_0x670a[168]));mxUtils[_0x670a[169]](_0x5798x14);return}};this[_0x670a[0]][_0x670a[125]]=_0x5798x18;this[_0x670a[0]][_0x670a[122]]=false}catch(e){this[_0x670a[0]][_0x670a[142]](_0x670a[178])}}else {this[_0x670a[0]][_0x670a[142]](_0x670a[178])}};EditorUi[_0x670a[10]][_0x670a[179]]=function(_0x5798x18){var _0x5798x1=this[_0x670a[0]];console[_0x670a[72]](_0x5798x18);if(_0x5798x18!=null){var _0x5798x14=mxUtils[_0x670a[135]](this[_0x670a[0]][_0x670a[134]]());try{if(useLocalStorage){if(localStorage[_0x670a[136]](_0x5798x18)!=null&&!mxUtils[_0x670a[138]](mxResources[_0x670a[112]](_0x670a[137],[_0x5798x18]))){return};localStorage[_0x670a[139]](_0x5798x18,_0x5798x14);this[_0x670a[0]][_0x670a[142]](mxResources[_0x670a[112]](_0x670a[140])+_0x670a[141]+ new Date())}else {console[_0x670a[72]](_0x5798x14[_0x670a[143]]);console[_0x670a[72]](MAX_REQUEST_SIZE);if(_0x5798x14[_0x670a[143]]<MAX_REQUEST_SIZE){_0x5798x14=encodeURIComponent(_0x5798x14);_0x5798x18=encodeURIComponent(_0x5798x18);var _0x5798x19= new XMLHttpRequest();_0x5798x19[_0x670a[102]](_0x670a[144],SAVE_URL,true);_0x5798x19[_0x670a[147]](_0x670a[145],_0x670a[146]);_0x5798x19[_0x670a[147]](_0x670a[148],_0x670a[149]+_0x5798x1[_0x670a[132]][_0x670a[150]]);_0x5798x19[_0x670a[151]]=function(_0x5798x1a){if(_0x5798x19[_0x670a[152]]===4){if(_0x5798x19[_0x670a[153]]===201){_0x5798x1[_0x670a[142]](_0x670a[154]+JSON[_0x670a[157]](_0x5798x19[_0x670a[156]])[_0x670a[155]]+_0x670a[158]);setTimeout(function(){window[_0x670a[102]](_0x670a[159]+JSON[_0x670a[157]](_0x5798x19[_0x670a[156]])[_0x670a[160]],_0x670a[161])},1500)}else {_0x5798x1[_0x670a[142]](_0x670a[180]+JSON[_0x670a[157]](_0x5798x19[_0x670a[156]])[_0x670a[163]][0][_0x670a[128]])}}};_0x5798x19[_0x670a[164]]=function(_0x5798x1a){mxUtils[_0x670a[129]](_0x5798x19[_0x670a[165]])};_0x5798x19[_0x670a[167]](_0x670a[181]+_0x5798x18+_0x670a[182]+_0x5798x14+_0x670a[183]+_0x5798x14)}else {mxUtils[_0x670a[129]](mxResources[_0x670a[112]](_0x670a[168]));mxUtils[_0x670a[169]](_0x5798x14);return}};this[_0x670a[0]][_0x670a[125]]=_0x5798x18;this[_0x670a[0]][_0x670a[122]]=false}catch(e){this[_0x670a[0]][_0x670a[142]](_0x670a[178])}}else {this[_0x670a[0]][_0x670a[142]](_0x670a[178])}};EditorUi[_0x670a[10]][_0x670a[184]]=function(_0x5798x1b,_0x5798x1c){var _0x5798x3=this[_0x670a[0]][_0x670a[4]];_0x5798x1b=null!=_0x5798x1b?_0x5798x1b:_0x5798x3[_0x670a[186]][_0x670a[185]]();_0x5798x1c=null!=_0x5798x1c?_0x5798x1c:{};for(var _0x5798x1d=!0,_0x5798x1e=_0x5798x3[_0x670a[186]][_0x670a[187]](_0x5798x1b),_0x5798x1a=0;_0x5798x1a<_0x5798x1e;_0x5798x1a++){var _0x5798x1f=_0x5798x3[_0x670a[186]][_0x670a[188]](_0x5798x1b,_0x5798x1a),_0x5798x20=_0x5798x1c;_0x5798x3[_0x670a[189]](_0x5798x1f)&&(_0x5798x20={});_0x5798x20=this[_0x670a[184]](_0x5798x1f,_0x5798x20);null!=_0x5798x20?_0x5798x3[_0x670a[191]](_0x5798x1f,_0x5798x20[_0x670a[137]](/\n/g,_0x670a[190])):_0x5798x3[_0x670a[191]](_0x5798x1f,null);_0x5798x1d=_0x5798x1d&&null==_0x5798x20};_0x5798x1e=_0x670a[192];if(_0x5798x3[_0x670a[186]][_0x670a[71]](_0x5798x1b)){switch(_0x5798x1b[_0x670a[67]][_0x670a[200]]){case _0x670a[55]:_0x5798x1e=(_0x5798x1b[_0x670a[67]][_0x670a[193]](_0x670a[55])!==_0x670a[192])?_0x670a[192]:_0x670a[194]+_0x670a[195];_0x5798x1e+=(_0x5798x1b[_0x670a[67]][_0x670a[193]](_0x670a[196])!==_0x670a[192])?_0x670a[192]:_0x670a[197]+_0x670a[195];break;case _0x670a[54]:_0x5798x1e=(_0x5798x1b[_0x670a[67]][_0x670a[193]](_0x670a[55])!==_0x670a[192])?_0x670a[192]:_0x670a[194]+_0x670a[195];_0x5798x1e+=(_0x5798x1b[_0x670a[67]][_0x670a[193]](_0x670a[196])!==_0x670a[192])?_0x670a[192]:_0x670a[197]+_0x670a[195];break;case _0x670a[52]:_0x5798x1e=this[_0x670a[198]](_0x670a[52])?_0x670a[192]:_0x670a[199]+_0x670a[195];_0x5798x1e+=(_0x5798x1b[_0x670a[67]][_0x670a[193]](_0x670a[196])!==_0x670a[192])?_0x670a[192]:_0x670a[197]+_0x670a[195];break}};if(_0x5798x3[_0x670a[186]][_0x670a[64]](_0x5798x1b)){var _0x5798x21=_0x5798x3[_0x670a[186]][_0x670a[202]](_0x5798x1b[_0x670a[68]][_0x670a[201]]());switch(_0x5798x21[_0x670a[67]][_0x670a[200]]){case _0x670a[55]:var _0x5798x22=String(_0x5798x1b[_0x670a[203]]());console[_0x670a[72]](_0x5798x22);if(_0x5798x22===_0x670a[204]||_0x5798x22===_0x670a[31]){_0x5798x1e=_0x670a[205]+_0x670a[195]}else {var _0x5798x23=_0x5798x22[_0x670a[207]](_0x670a[206]);_0x5798x23[_0x670a[211]](function(_0x5798x24,_0x5798x25){_0x5798x1e=_0x5798x1e+((_0x5798x24[_0x670a[208]]()!==_0x670a[192])?_0x670a[192]:_0x670a[209]+(_0x5798x25+1)+_0x670a[210]+_0x670a[195])})};break}};_0x5798x3[_0x670a[212]](_0x5798x1b)&&!_0x5798x1d&&(_0x5798x1e+=(mxResources[_0x670a[112]](_0x5798x3[_0x670a[213]])||_0x5798x3[_0x670a[213]])+_0x670a[195]);_0x5798x1e=_0x5798x3[_0x670a[186]][_0x670a[64]](_0x5798x1b)?_0x5798x1e+(_0x5798x3[_0x670a[215]](_0x5798x1b,_0x5798x3[_0x670a[186]][_0x670a[214]](_0x5798x1b,!0),_0x5798x3[_0x670a[186]][_0x670a[214]](_0x5798x1b,!1))||_0x670a[192]):_0x5798x1e+(_0x5798x3[_0x670a[216]](_0x5798x1b)||_0x670a[192]);_0x5798x1a=_0x5798x3[_0x670a[217]](_0x5798x1b,_0x5798x1c);null!=_0x5798x1a&&(_0x5798x1e+=_0x5798x1a);null==_0x5798x3[_0x670a[186]][_0x670a[218]](_0x5798x1b)&&_0x5798x3[_0x670a[89]][_0x670a[184]]();return 0<_0x5798x1e[_0x670a[143]]||!_0x5798x1d?_0x5798x1e:null};EditorUi[_0x670a[10]][_0x670a[198]]=function(_0x5798x26){var _0x5798x3=this[_0x670a[0]][_0x670a[4]];var _0x5798x27=_0x5798x3[_0x670a[219]]();var _0x5798x28=0;_0x5798x27[_0x670a[220]][_0x670a[211]](function(_0x5798x29){if(_0x5798x3[_0x670a[186]][_0x670a[71]](_0x5798x29)&&_0x5798x29[_0x670a[67]][_0x670a[200]]==_0x5798x26){_0x5798x28++}});return _0x5798x28>1?false:true};EditorUi[_0x670a[10]][_0x670a[221]]=function(_0x5798x18){var _0x5798x1=this[_0x670a[0]];if(_0x5798x18!=null){var _0x5798x2a=this[_0x670a[184]]();if(_0x5798x2a===null){var _0x5798x14=mxUtils[_0x670a[135]](this[_0x670a[0]][_0x670a[134]]());try{if(useLocalStorage){if(localStorage[_0x670a[136]](_0x5798x18)!=null&&!mxUtils[_0x670a[138]](mxResources[_0x670a[112]](_0x670a[137],[_0x5798x18]))){return};localStorage[_0x670a[139]](_0x5798x18,_0x5798x14);this[_0x670a[0]][_0x670a[142]](mxResources[_0x670a[112]](_0x670a[140])+_0x670a[141]+ new Date())}else {console[_0x670a[72]](_0x5798x14[_0x670a[143]]);console[_0x670a[72]](MAX_REQUEST_SIZE);if(_0x5798x14[_0x670a[143]]<MAX_REQUEST_SIZE){_0x5798x14=encodeURIComponent(_0x5798x14);var _0x5798x19= new XMLHttpRequest();_0x5798x19[_0x670a[102]](_0x670a[172],SAVE_URL+this[_0x670a[0]][_0x670a[132]][_0x670a[160]],true);_0x5798x19[_0x670a[147]](_0x670a[145],_0x670a[146]);_0x5798x19[_0x670a[147]](_0x670a[148],_0x670a[149]+_0x5798x1[_0x670a[132]][_0x670a[150]]);_0x5798x19[_0x670a[151]]=function(_0x5798x1a){if(_0x5798x19[_0x670a[152]]===4){if(_0x5798x19[_0x670a[153]]===200){_0x5798x1[_0x670a[142]](_0x670a[222]+JSON[_0x670a[157]](_0x5798x19[_0x670a[156]])[_0x670a[174]]+_0x670a[175]+_0x5798x19[_0x670a[153]]+_0x670a[141]+_0x5798x19[_0x670a[165]]+_0x670a[44])}else {_0x5798x1[_0x670a[142]](_0x670a[176]+JSON[_0x670a[157]](_0x5798x19[_0x670a[156]])[_0x670a[163]][0][_0x670a[128]])}}};_0x5798x19[_0x670a[164]]=function(_0x5798x1a){mxUtils[_0x670a[129]](_0x5798x19[_0x670a[165]])};_0x5798x19[_0x670a[167]](_0x670a[177]+_0x5798x14+_0x670a[183]+_0x5798x14)}else {mxUtils[_0x670a[129]](mxResources[_0x670a[112]](_0x670a[168]));mxUtils[_0x670a[169]](_0x5798x14);return}};this[_0x670a[0]][_0x670a[125]]=_0x5798x18;this[_0x670a[0]][_0x670a[122]]=false}catch(e){this[_0x670a[0]][_0x670a[142]](_0x670a[223])}}else {_0x5798x1[_0x670a[142]](_0x670a[224])}}else {this[_0x670a[0]][_0x670a[142]](_0x670a[223])}};EditorUi[_0x670a[10]][_0x670a[225]]=function(_0x5798x18){var _0x5798x1=this[_0x670a[0]];if(_0x5798x18!=null){try{var _0x5798x19= new XMLHttpRequest();_0x5798x19[_0x670a[102]](_0x670a[144],VARIABLE_URL,true);_0x5798x19[_0x670a[147]](_0x670a[145],_0x670a[146]);_0x5798x19[_0x670a[147]](_0x670a[148],_0x670a[149]+_0x5798x1[_0x670a[132]][_0x670a[150]]);_0x5798x19[_0x670a[151]]=function(_0x5798x1a){if(_0x5798x19[_0x670a[152]]===4){if(_0x5798x19[_0x670a[153]]===201){_0x5798x1[_0x670a[142]](_0x670a[226]+JSON[_0x670a[157]](_0x5798x19[_0x670a[156]])[_0x670a[227]]+_0x670a[175]+_0x5798x19[_0x670a[153]]+_0x670a[141]+_0x5798x19[_0x670a[165]]+_0x670a[44])}else {_0x5798x1[_0x670a[142]](_0x670a[180]+JSON[_0x670a[157]](_0x5798x19[_0x670a[156]])[_0x670a[163]][0][_0x670a[128]])}}};_0x5798x19[_0x670a[164]]=function(_0x5798x1a){mxUtils[_0x670a[129]](_0x5798x19[_0x670a[165]])};_0x5798x19[_0x670a[167]](_0x670a[228]+_0x5798x18)}catch(e){this[_0x670a[0]][_0x670a[142]](_0x670a[229])}}else {this[_0x670a[0]][_0x670a[142]](_0x670a[229])}};EditorUi[_0x670a[10]][_0x670a[230]]=function(_0x5798x2b){var _0x5798x2c=(_0x5798x2b!=null)?_0x5798x2b:window[_0x670a[232]][_0x670a[231]];var _0x5798x2d=(_0x5798x2c[_0x670a[69]](_0x670a[233])>0)?1:0;for(var _0x5798x25 in urlParams){if(_0x5798x2d==0){_0x5798x2c+=_0x670a[233]}else {_0x5798x2c+=_0x670a[234]};_0x5798x2c+=_0x5798x25+_0x670a[235]+urlParams[_0x5798x25];_0x5798x2d++};return _0x5798x2c};EditorUi[_0x670a[10]][_0x670a[109]]=function(){var _0x5798x2e=this[_0x670a[12]][_0x670a[112]](_0x670a[236]);var _0x5798x2f=this[_0x670a[12]][_0x670a[112]](_0x670a[237]);var _0x5798x30=this[_0x670a[0]][_0x670a[124]];var _0x5798x31=function(){_0x5798x2e[_0x670a[114]](_0x5798x30[_0x670a[238]]());_0x5798x2f[_0x670a[114]](_0x5798x30[_0x670a[239]]())};_0x5798x30[_0x670a[33]](mxEvent.ADD,_0x5798x31);_0x5798x30[_0x670a[33]](mxEvent.UNDO,_0x5798x31);_0x5798x30[_0x670a[33]](mxEvent.REDO,_0x5798x31);_0x5798x30[_0x670a[33]](mxEvent.CLEAR,_0x5798x31);_0x5798x31()};EditorUi[_0x670a[10]][_0x670a[110]]=function(){var _0x5798x32=mxUtils[_0x670a[20]](this,function(){var _0x5798x3=this[_0x670a[0]][_0x670a[4]];var _0x5798x33=!_0x5798x3[_0x670a[240]]();var _0x5798x34=false;var _0x5798x35=false;var _0x5798x36=_0x5798x3[_0x670a[241]]();if(_0x5798x36!=null){for(var _0x5798x37=0;_0x5798x37<_0x5798x36[_0x670a[143]];_0x5798x37++){var _0x5798xb=_0x5798x36[_0x5798x37];if(_0x5798x3[_0x670a[65]]()[_0x670a[64]](_0x5798xb)){_0x5798x35=true};if(_0x5798x3[_0x670a[65]]()[_0x670a[71]](_0x5798xb)){_0x5798x34=true};if(_0x5798x35&&_0x5798x34){break}}};var _0x5798x38=[_0x670a[115],_0x670a[116],_0x670a[242],_0x670a[243],_0x670a[244],_0x670a[245],_0x670a[6],_0x670a[246],_0x670a[247],_0x670a[248],_0x670a[249],_0x670a[250],_0x670a[251],_0x670a[252],_0x670a[253]];for(var _0x5798x37=0;_0x5798x37<_0x5798x38[_0x670a[143]];_0x5798x37++){this[_0x670a[12]][_0x670a[112]](_0x5798x38[_0x5798x37])[_0x670a[114]](_0x5798x33)};this[_0x670a[12]][_0x670a[112]](_0x670a[254])[_0x670a[114]](_0x5798x35);this[_0x670a[12]][_0x670a[112]](_0x670a[255])[_0x670a[114]](_0x5798x34);this[_0x670a[12]][_0x670a[112]](_0x670a[256])[_0x670a[114]](_0x5798x34);this[_0x670a[12]][_0x670a[112]](_0x670a[258])[_0x670a[114]](_0x5798x3[_0x670a[257]]()>1);this[_0x670a[12]][_0x670a[112]](_0x670a[260])[_0x670a[114]](_0x5798x3[_0x670a[257]]()==1&&_0x5798x3[_0x670a[65]]()[_0x670a[187]](_0x5798x3[_0x670a[259]]())>0);var _0x5798x39=_0x5798x34&&_0x5798x3[_0x670a[257]]()==1;this[_0x670a[12]][_0x670a[112]](_0x670a[261])[_0x670a[114]](_0x5798x39&&_0x5798x3[_0x670a[65]]()[_0x670a[71]](_0x5798x3[_0x670a[65]]()[_0x670a[218]](_0x5798x3[_0x670a[259]]())));var _0x5798x3a=[_0x670a[262],_0x670a[263],_0x670a[264],_0x670a[265],_0x670a[266],_0x670a[267],_0x670a[268],_0x670a[269],_0x670a[270]];for(var _0x5798x37=0;_0x5798x37<_0x5798x3a[_0x670a[143]];_0x5798x37++){this[_0x670a[13]][_0x670a[112]](_0x5798x3a[_0x5798x37])[_0x670a[114]](_0x5798x33)};_0x5798x3a=[_0x670a[271],_0x670a[272],_0x670a[273]];for(var _0x5798x37=0;_0x5798x37<_0x5798x3a[_0x670a[143]];_0x5798x37++){this[_0x670a[13]][_0x670a[112]](_0x5798x3a[_0x5798x37])[_0x670a[114]](_0x5798x35)};this[_0x670a[12]][_0x670a[112]](_0x670a[274])[_0x670a[114]](_0x5798x35);this[_0x670a[13]][_0x670a[112]](_0x670a[275])[_0x670a[114]](_0x5798x3[_0x670a[257]]()>1);this[_0x670a[13]][_0x670a[112]](_0x670a[278])[_0x670a[114]](_0x5798x34||(_0x5798x35&&_0x5798x3[_0x670a[277]](_0x5798x3[_0x670a[89]][_0x670a[276]](_0x5798x3[_0x670a[259]]()))));this[_0x670a[13]][_0x670a[112]](_0x670a[281])[_0x670a[114]](_0x5798x3[_0x670a[279]]&&((_0x5798x3[_0x670a[89]][_0x670a[280]]!=null)||(_0x5798x3[_0x670a[257]]()==1&&_0x5798x3[_0x670a[189]](_0x5798x3[_0x670a[259]]()))));this[_0x670a[12]][_0x670a[112]](_0x670a[282])[_0x670a[114]](_0x5798x3[_0x670a[89]][_0x670a[280]]!=null);this[_0x670a[12]][_0x670a[112]](_0x670a[283])[_0x670a[114]](_0x5798x3[_0x670a[89]][_0x670a[280]]!=null);var _0x5798x3b=_0x5798x3[_0x670a[257]]()==1&&_0x5798x3[_0x670a[189]](_0x5798x3[_0x670a[259]]());this[_0x670a[12]][_0x670a[112]](_0x670a[284])[_0x670a[114]](_0x5798x3b);this[_0x670a[12]][_0x670a[112]](_0x670a[285])[_0x670a[114]](_0x5798x3b);this[_0x670a[12]][_0x670a[112]](_0x670a[286])[_0x670a[114]](_0x5798x3b);this[_0x670a[12]][_0x670a[112]](_0x670a[287])[_0x670a[114]](_0x5798x3[_0x670a[257]]()==1);this[_0x670a[12]][_0x670a[112]](_0x670a[289])[_0x670a[114]](_0x5798x3[_0x670a[257]]()==1&&_0x5798x3[_0x670a[288]](_0x5798x3[_0x670a[259]]())!=null)});this[_0x670a[0]][_0x670a[4]][_0x670a[290]]()[_0x670a[33]](mxEvent.CHANGE,_0x5798x32);_0x5798x32()};EditorUi[_0x670a[10]][_0x670a[15]]=function(){var _0x5798x3c=mxClient[_0x670a[29]]&&(document[_0x670a[30]]==null||document[_0x670a[30]]==5);var _0x5798x3d=this[_0x670a[1]][_0x670a[291]];var _0x5798x3e=this[_0x670a[1]][_0x670a[292]];if(this[_0x670a[1]]==document[_0x670a[21]]){_0x5798x3d=document[_0x670a[21]][_0x670a[291]]||document[_0x670a[120]][_0x670a[291]];_0x5798x3e=(_0x5798x3c)?document[_0x670a[21]][_0x670a[292]]||document[_0x670a[120]][_0x670a[292]]:document[_0x670a[120]][_0x670a[292]]};var _0x5798x3f=Math[_0x670a[294]](0,Math[_0x670a[293]](this[_0x670a[107]],_0x5798x3d-this[_0x670a[103]]-20));var _0x5798x40=Math[_0x670a[294]](0,Math[_0x670a[293]](this[_0x670a[108]],_0x5798x3e-this[_0x670a[104]]-this[_0x670a[105]]-this[_0x670a[106]]-this[_0x670a[103]]-1));this[_0x670a[23]][_0x670a[6]][_0x670a[295]]=this[_0x670a[104]]+_0x670a[296];this[_0x670a[25]][_0x670a[6]][_0x670a[297]]=this[_0x670a[104]]+_0x670a[296];this[_0x670a[25]][_0x670a[6]][_0x670a[295]]=this[_0x670a[105]]+_0x670a[296];var _0x5798x41=this[_0x670a[104]]+this[_0x670a[105]];if(!mxClient[_0x670a[298]]){_0x5798x41+=1};this[_0x670a[27]][_0x670a[6]][_0x670a[297]]=_0x5798x41+_0x670a[296];this[_0x670a[27]][_0x670a[6]][_0x670a[299]]=_0x5798x3f+_0x670a[296];this[_0x670a[79]][_0x670a[6]][_0x670a[299]]=_0x5798x3f+_0x670a[296];this[_0x670a[79]][_0x670a[6]][_0x670a[295]]=_0x5798x40+_0x670a[296];this[_0x670a[79]][_0x670a[6]][_0x670a[300]]=this[_0x670a[106]]+_0x670a[296];this[_0x670a[26]][_0x670a[6]][_0x670a[301]]=(_0x5798x3f+this[_0x670a[103]])+_0x670a[296];this[_0x670a[26]][_0x670a[6]][_0x670a[297]]=this[_0x670a[27]][_0x670a[6]][_0x670a[297]];this[_0x670a[28]][_0x670a[6]][_0x670a[295]]=this[_0x670a[106]]+_0x670a[296];this[_0x670a[28]][_0x670a[6]][_0x670a[302]]=_0x670a[303];this[_0x670a[304]][_0x670a[6]][_0x670a[297]]=this[_0x670a[27]][_0x670a[6]][_0x670a[297]];this[_0x670a[304]][_0x670a[6]][_0x670a[300]]=this[_0x670a[79]][_0x670a[6]][_0x670a[300]];this[_0x670a[304]][_0x670a[6]][_0x670a[301]]=_0x5798x3f+_0x670a[296];this[_0x670a[305]][_0x670a[6]][_0x670a[299]]=this[_0x670a[27]][_0x670a[6]][_0x670a[299]];this[_0x670a[305]][_0x670a[6]][_0x670a[300]]=(_0x5798x40+this[_0x670a[106]])+_0x670a[296];if(_0x5798x3c){this[_0x670a[23]][_0x670a[6]][_0x670a[299]]=_0x5798x3d+_0x670a[296];this[_0x670a[25]][_0x670a[6]][_0x670a[299]]=this[_0x670a[23]][_0x670a[6]][_0x670a[299]];var _0x5798x42=(_0x5798x3e-_0x5798x40-this[_0x670a[103]]-this[_0x670a[106]]-this[_0x670a[104]]-this[_0x670a[105]]);this[_0x670a[27]][_0x670a[6]][_0x670a[295]]=_0x5798x42+_0x670a[296];this[_0x670a[26]][_0x670a[6]][_0x670a[299]]=(_0x5798x3d-_0x5798x3f-this[_0x670a[103]])+_0x670a[296];var _0x5798x43=(_0x5798x3e-this[_0x670a[106]]-this[_0x670a[104]]-this[_0x670a[105]]);this[_0x670a[26]][_0x670a[6]][_0x670a[295]]=_0x5798x43+_0x670a[296];this[_0x670a[28]][_0x670a[6]][_0x670a[299]]=this[_0x670a[23]][_0x670a[6]][_0x670a[299]];this[_0x670a[304]][_0x670a[6]][_0x670a[295]]=_0x5798x43+_0x670a[296]}else {this[_0x670a[27]][_0x670a[6]][_0x670a[300]]=(_0x5798x40+this[_0x670a[103]]+this[_0x670a[106]])+_0x670a[296];this[_0x670a[26]][_0x670a[6]][_0x670a[300]]=this[_0x670a[79]][_0x670a[6]][_0x670a[300]]}};EditorUi[_0x670a[10]][_0x670a[14]]=function(){this[_0x670a[23]]=this[_0x670a[307]](_0x670a[306]);this[_0x670a[25]]=this[_0x670a[307]](_0x670a[308]);this[_0x670a[27]]=this[_0x670a[307]](_0x670a[309]);this[_0x670a[79]]=this[_0x670a[307]](_0x670a[310]);this[_0x670a[26]]=this[_0x670a[307]](_0x670a[311]);this[_0x670a[28]]=this[_0x670a[307]](_0x670a[312]);this[_0x670a[304]]=this[_0x670a[307]](_0x670a[313]);this[_0x670a[305]]=this[_0x670a[307]](_0x670a[314]);this[_0x670a[23]][_0x670a[6]][_0x670a[297]]=_0x670a[315];this[_0x670a[23]][_0x670a[6]][_0x670a[301]]=_0x670a[315];this[_0x670a[23]][_0x670a[6]][_0x670a[316]]=_0x670a[315];this[_0x670a[25]][_0x670a[6]][_0x670a[301]]=_0x670a[315];this[_0x670a[25]][_0x670a[6]][_0x670a[316]]=_0x670a[315];this[_0x670a[27]][_0x670a[6]][_0x670a[301]]=_0x670a[315];this[_0x670a[79]][_0x670a[6]][_0x670a[301]]=_0x670a[315];this[_0x670a[26]][_0x670a[6]][_0x670a[316]]=_0x670a[315];this[_0x670a[28]][_0x670a[6]][_0x670a[301]]=_0x670a[315];this[_0x670a[28]][_0x670a[6]][_0x670a[316]]=_0x670a[315];this[_0x670a[28]][_0x670a[6]][_0x670a[300]]=_0x670a[315];this[_0x670a[305]][_0x670a[6]][_0x670a[301]]=_0x670a[315];this[_0x670a[305]][_0x670a[6]][_0x670a[295]]=this[_0x670a[103]]+_0x670a[296];this[_0x670a[304]][_0x670a[6]][_0x670a[299]]=this[_0x670a[103]]+_0x670a[296]};EditorUi[_0x670a[10]][_0x670a[16]]=function(){this[_0x670a[317]]=this[_0x670a[13]][_0x670a[319]](this[_0x670a[307]](_0x670a[318]));this[_0x670a[23]][_0x670a[320]](this[_0x670a[317]][_0x670a[1]]);this[_0x670a[321]]=this[_0x670a[323]](this[_0x670a[307]](_0x670a[322]));this[_0x670a[25]][_0x670a[320]](this[_0x670a[321]][_0x670a[1]]);this[_0x670a[324]]=this[_0x670a[325]](this[_0x670a[27]]);this[_0x670a[28]][_0x670a[320]](this[_0x670a[326]]());this[_0x670a[327]]=this[_0x670a[328]]();this[_0x670a[0]][_0x670a[33]](_0x670a[329],mxUtils[_0x670a[20]](this,function(){this[_0x670a[331]](this[_0x670a[0]][_0x670a[330]]())}));this[_0x670a[331]](this[_0x670a[0]][_0x670a[330]]());this[_0x670a[317]][_0x670a[1]][_0x670a[320]](this[_0x670a[327]]);this[_0x670a[1]][_0x670a[320]](this[_0x670a[23]]);this[_0x670a[1]][_0x670a[320]](this[_0x670a[25]]);this[_0x670a[1]][_0x670a[320]](this[_0x670a[27]]);this[_0x670a[1]][_0x670a[320]](this[_0x670a[79]]);this[_0x670a[1]][_0x670a[320]](this[_0x670a[26]]);this[_0x670a[1]][_0x670a[320]](this[_0x670a[28]]);this[_0x670a[1]][_0x670a[320]](this[_0x670a[304]]);this[_0x670a[1]][_0x670a[320]](this[_0x670a[305]]);this[_0x670a[332]](this[_0x670a[304]],true,0,mxUtils[_0x670a[20]](this,function(_0x5798x44){this[_0x670a[107]]=_0x5798x44;this[_0x670a[15]]();this[_0x670a[0]][_0x670a[4]][_0x670a[100]]();this[_0x670a[0]][_0x670a[80]][_0x670a[101]](false);this[_0x670a[0]][_0x670a[80]][_0x670a[80]][_0x670a[100]]()}));this[_0x670a[332]](this[_0x670a[305]],false,this[_0x670a[106]],mxUtils[_0x670a[20]](this,function(_0x5798x44){this[_0x670a[108]]=_0x5798x44;this[_0x670a[15]]();this[_0x670a[0]][_0x670a[80]][_0x670a[101]](false);this[_0x670a[0]][_0x670a[80]][_0x670a[80]][_0x670a[100]]()}))};EditorUi[_0x670a[10]][_0x670a[328]]=function(){var _0x5798x2=document[_0x670a[334]](_0x670a[333]);_0x5798x2[_0x670a[335]]=_0x670a[336];return _0x5798x2};EditorUi[_0x670a[10]][_0x670a[328]]=function(){var _0x5798x2=document[_0x670a[334]](_0x670a[333]);_0x5798x2[_0x670a[335]]=_0x670a[336];return _0x5798x2};EditorUi[_0x670a[10]][_0x670a[331]]=function(_0x5798x44){this[_0x670a[327]][_0x670a[337]]=_0x5798x44};EditorUi[_0x670a[10]][_0x670a[323]]=function(_0x5798x2){return  new Toolbar(this,_0x5798x2)};EditorUi[_0x670a[10]][_0x670a[325]]=function(_0x5798x2){return  new Sidebar(this,_0x5798x2)};EditorUi[_0x670a[10]][_0x670a[326]]=function(){return this[_0x670a[307]](_0x670a[338])};EditorUi[_0x670a[10]][_0x670a[307]]=function(_0x5798x45){var _0x5798x46=document[_0x670a[334]](_0x670a[339]);_0x5798x46[_0x670a[335]]=_0x5798x45;return _0x5798x46};EditorUi[_0x670a[10]][_0x670a[340]]=function(_0x5798x45){var _0x5798x46=document[_0x670a[334]](_0x5798x45);return _0x5798x46};EditorUi[_0x670a[10]][_0x670a[341]]=function(_0x5798x45){var _0x5798x46=document[_0x670a[334]](_0x670a[342]);_0x5798x46[_0x670a[335]]=_0x5798x45;return _0x5798x46};EditorUi[_0x670a[10]][_0x670a[332]]=function(_0x5798x46,_0x5798x47,_0x5798x48,_0x5798x49){var _0x5798x4a=null;var _0x5798x4b=null;function _0x5798x4c(){return parseInt(((_0x5798x47)?_0x5798x46[_0x670a[6]][_0x670a[301]]:_0x5798x46[_0x670a[6]][_0x670a[300]]))}function _0x5798x4d(_0x5798x6){if(_0x5798x4a!=null){var _0x5798x4e= new mxPoint(mxEvent[_0x670a[343]](_0x5798x6),mxEvent[_0x670a[344]](_0x5798x6));_0x5798x49(Math[_0x670a[294]](0,_0x5798x4b+((_0x5798x47)?(_0x5798x4e[_0x670a[345]]-_0x5798x4a[_0x670a[345]]):(_0x5798x4a[_0x670a[346]]-_0x5798x4e[_0x670a[346]]))-_0x5798x48));mxEvent[_0x670a[74]](_0x5798x6)}}function _0x5798x4f(_0x5798x6){_0x5798x4d(_0x5798x6);_0x5798x4a=null;_0x5798x4b=null}mxEvent[_0x670a[82]](_0x5798x46,function(_0x5798x6){_0x5798x4a= new mxPoint(mxEvent[_0x670a[343]](_0x5798x6),mxEvent[_0x670a[344]](_0x5798x6));_0x5798x4b=_0x5798x4c();mxEvent[_0x670a[74]](_0x5798x6)});mxEvent[_0x670a[33]](document,_0x670a[347],_0x5798x4d);mxEvent[_0x670a[33]](document,_0x670a[348],_0x5798x4d);mxEvent[_0x670a[33]](document,_0x670a[349],_0x5798x4f);mxEvent[_0x670a[33]](document,_0x670a[350],_0x5798x4f)};EditorUi[_0x670a[10]][_0x670a[73]]=function(_0x5798x46,_0x5798x3d,_0x5798x3e,_0x5798x50,_0x5798x51,_0x5798x52){this[_0x670a[351]]();this[_0x670a[352]]= new Dialog(this,_0x5798x46,_0x5798x3d,(mxClient[_0x670a[353]])?_0x5798x3e-12:_0x5798x3e,_0x5798x50,_0x5798x51,_0x5798x52)};EditorUi[_0x670a[10]][_0x670a[351]]=function(){if(this[_0x670a[352]]!=null){this[_0x670a[352]][_0x670a[354]]();this[_0x670a[352]]=null;this[_0x670a[0]][_0x670a[4]][_0x670a[1]][_0x670a[47]]()}};EditorUi[_0x670a[10]][_0x670a[355]]=function(_0x5798x53){if(!_0x5798x53&&this[_0x670a[0]][_0x670a[125]]!=null){this[_0x670a[171]](this[_0x670a[0]][_0x670a[356]]())}else {this[_0x670a[73]]( new SaveDialog(this)[_0x670a[1]],300,100,true,true)}};EditorUi[_0x670a[10]][_0x670a[357]]=function(_0x5798x53){if(!_0x5798x53&&this[_0x670a[0]][_0x670a[125]]!=null){this[_0x670a[221]](this[_0x670a[0]][_0x670a[356]]())}else {}};EditorUi[_0x670a[10]][_0x670a[358]]=function(_0x5798x54,_0x5798x55,_0x5798x56){var _0x5798x3=this[_0x670a[0]][_0x670a[4]];var _0x5798xb=_0x5798x3[_0x670a[259]]();_0x5798x55=this[_0x670a[359]]!=null?this[_0x670a[359]]:_0x5798x55;_0x5798x3[_0x670a[65]]()[_0x670a[360]]();try{_0x5798x54[_0x670a[361]](_0x5798x3[_0x670a[219]](),_0x5798xb)}catch(e){throw e}finally{if(_0x5798x55&&navigator[_0x670a[363]][_0x670a[69]](_0x670a[362])<0){var _0x5798x57= new mxMorphing(_0x5798x3);_0x5798x57[_0x670a[33]](mxEvent.DONE,mxUtils[_0x670a[20]](this,function(){_0x5798x3[_0x670a[65]]()[_0x670a[364]]()}));_0x5798x57[_0x670a[365]]()}else {_0x5798x3[_0x670a[65]]()[_0x670a[364]]()}}};EditorUi[_0x670a[10]][_0x670a[97]]=function(_0x5798x1){var _0x5798x3=this[_0x670a[0]][_0x670a[4]];var _0x5798xf= new mxKeyHandler(_0x5798x3);_0x5798xf[_0x670a[366]]=function(_0x5798x6){return mxEvent[_0x670a[366]](_0x5798x6)||(mxClient[_0x670a[367]]&&_0x5798x6[_0x670a[368]])};function _0x5798x58(_0x5798x59){if(!_0x5798x3[_0x670a[240]]()){var _0x5798x48=0;var _0x5798x5a=0;if(_0x5798x59==37){_0x5798x48= -1}else {if(_0x5798x59==38){_0x5798x5a= -1}else {if(_0x5798x59==39){_0x5798x48=1}else {if(_0x5798x59==40){_0x5798x5a=1}}}};_0x5798x3[_0x670a[369]](_0x5798x3[_0x670a[241]](),_0x5798x48,_0x5798x5a);_0x5798x3[_0x670a[370]](_0x5798x3[_0x670a[259]]())}}var _0x5798x5b=mxUtils[_0x670a[20]](this,function(_0x5798x5c,_0x5798x5d,_0x5798x25,_0x5798x5e){var _0x5798x5f=this[_0x670a[12]][_0x670a[112]](_0x5798x25);if(_0x5798x5f!=null){var _0x5798x1f=function(){if(_0x5798x5f[_0x670a[371]]){_0x5798x5f[_0x670a[372]]()}};if(_0x5798x5d){if(_0x5798x5e){_0x5798xf[_0x670a[373]](_0x5798x5c,_0x5798x1f)}else {_0x5798xf[_0x670a[374]](_0x5798x5c,_0x5798x1f)}}else {if(_0x5798x5e){_0x5798xf[_0x670a[375]](_0x5798x5c,_0x5798x1f)}else {_0x5798xf[_0x670a[376]](_0x5798x5c,_0x5798x1f)}}}});var _0x5798x60=this;var _0x5798x61=_0x5798xf[_0x670a[377]];_0x5798xf[_0x670a[377]]=function(_0x5798x6){_0x5798x60[_0x670a[351]]();_0x5798x61[_0x670a[50]](this,arguments)};_0x5798xf[_0x670a[378]]=function(){};_0x5798xf[_0x670a[376]](8,function(){_0x5798x3[_0x670a[379]](true)});_0x5798xf[_0x670a[376]](13,function(){_0x5798x3[_0x670a[379]](false)});_0x5798xf[_0x670a[376]](33,function(){_0x5798x3[_0x670a[283]]()});_0x5798xf[_0x670a[376]](34,function(){_0x5798x3[_0x670a[284]]()});_0x5798xf[_0x670a[376]](36,function(){_0x5798x3[_0x670a[282]]()});_0x5798xf[_0x670a[376]](35,function(){_0x5798x3[_0x670a[15]]()});_0x5798xf[_0x670a[376]](37,function(){_0x5798x58(37)});_0x5798xf[_0x670a[376]](38,function(){_0x5798x58(38)});_0x5798xf[_0x670a[376]](39,function(){_0x5798x58(39)});_0x5798xf[_0x670a[376]](40,function(){_0x5798x58(40)});_0x5798xf[_0x670a[376]](113,function(){_0x5798x3[_0x670a[70]]()});_0x5798x5b(46,false,_0x670a[242]);_0x5798x5b(82,true,_0x670a[252]);_0x5798x5b(83,true,_0x670a[171]);_0x5798x5b(83,true,_0x670a[179],true);_0x5798x5b(107,false,_0x670a[380]);_0x5798x5b(109,false,_0x670a[381]);_0x5798x5b(65,true,_0x670a[382]);_0x5798x5b(86,true,_0x670a[383],true);_0x5798x5b(69,true,_0x670a[384],true);_0x5798x5b(69,true,_0x670a[385]);_0x5798x5b(66,true,_0x670a[248]);_0x5798x5b(70,true,_0x670a[247]);_0x5798x5b(68,true,_0x670a[243]);_0x5798x5b(90,true,_0x670a[236]);_0x5798x5b(89,true,_0x670a[237]);_0x5798x5b(88,true,_0x670a[115]);_0x5798x5b(67,true,_0x670a[116]);_0x5798x5b(81,true,_0x670a[386]);_0x5798x5b(86,true,_0x670a[111]);_0x5798x5b(71,true,_0x670a[258]);_0x5798x5b(71,true,_0x670a[387],true);_0x5798x5b(85,true,_0x670a[260]);_0x5798x5b(112,false,_0x670a[388]);_0x5798x5b(80,true,_0x670a[221],true);return _0x5798xf};EditorUi[_0x670a[10]][_0x670a[58]]=function(_0x5798x3,_0x5798x36,_0x5798x62,_0x5798x63){for(var _0x5798x37=0;_0x5798x37<_0x5798x36[_0x670a[143]];_0x5798x37++){_0x5798x3[_0x670a[391]]( new mxMultiplicity(true,_0x5798x36[_0x5798x37],null,null,_0x5798x62[_0x5798x37][0],_0x5798x62[_0x5798x37][1],null,mxResources[_0x670a[112]](_0x5798x36[_0x5798x37])+_0x670a[389]+_0x5798x62[_0x5798x37][0]+_0x670a[390],null));_0x5798x3[_0x670a[391]]( new mxMultiplicity(false,_0x5798x36[_0x5798x37],null,null,_0x5798x63[_0x5798x37][0],_0x5798x63[_0x5798x37][1],null,mxResources[_0x670a[112]](_0x5798x36[_0x5798x37])+_0x670a[389]+_0x5798x63[_0x5798x37][0]+_0x670a[392],null))}}
\ No newline at end of file
index 46f34e4..f89f372 100644 (file)
@@ -1,748 +1 @@
-/**
- * $Id: Graph.js,v 1.14 2013-02-16 10:19:54 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Constructs a new graph instance. Note that the constructor does not take a
- * container because the graph instance is needed for creating the UI, which
- * in turn will create the container for the graph. Hence, the container is
- * assigned later in EditorUi.
- */
-Graph = function(container, model, renderHint, stylesheet)
-{
-       mxGraph.call(this, container, model, renderHint, stylesheet);
-       
-       this.setConnectable(true);
-       this.setDropEnabled(false);
-       this.setPanning(true);
-       this.setTooltips(!mxClient.IS_TOUCH);
-       this.setAllowLoops(false);
-       this.setMultigraph(false);
-       this.allowAutoPanning = true;
-       this.resetEdgesOnConnect = false;
-       this.constrainChildren = false;
-       
-       // Centers the port icon on the target port
-    this.connectionHandler.targetConnectImage = true;
-
-    // Does not allow dangling edges
-    this.setAllowDanglingEdges(false);
-
-       // Enables cloning of connection sources
-       this.connectionHandler.setCreateTarget(false);
-       
-       // Disables built-in connection starts
-       this.connectionHandler.isValidSource = function()
-       {
-               return mxConnectionHandler.prototype.isValidSource.apply(this, arguments) && urlParams['connect'] != '2';
-       };
-
-       // Sets the style to be used when an elbow edge is double clicked
-       this.alternateEdgeStyle = 'vertical';
-
-       if (stylesheet == null)
-       {
-               this.loadStylesheet();
-       }
-       
-       // Creates rubberband selection
-    var rubberband = new mxRubberband(this);
-    
-    this.getRubberband = function()
-    {
-       return rubberband;
-    };
-    
-    // Shows hand cursor while panning
-       this.panningHandler.addListener(mxEvent.PAN_START, mxUtils.bind(this, function()
-       {
-               this.container.style.cursor = 'pointer';
-       }));
-                       
-       this.panningHandler.addListener(mxEvent.PAN_END, mxUtils.bind(this, function()
-       {
-               this.container.style.cursor = 'default';
-       }));
-
-    // Adds support for HTML labels via style. Note: Currently, only the Java
-    // backend supports HTML labels but CSS support is limited to the following:
-    // http://docs.oracle.com/javase/6/docs/api/index.html?javax/swing/text/html/CSS.html
-       this.isHtmlLabel = function(cell)
-       {
-               var state = this.view.getState(cell);
-               var style = (state != null) ? state.style : this.getCellStyle(cell);
-               
-               return style['html'] == '1' || style['whiteSpace'] == 'wrap';
-       };
-       
-       // HTML entities are displayed as plain text in wrapped plain text labels
-       this.cellRenderer.getLabelValue = function(state)
-       {
-               var result = mxCellRenderer.prototype.getLabelValue.apply(this, arguments);
-               
-               if (state.style['whiteSpace'] == 'wrap' && state.style['html'] != 1)
-               {
-                       result = mxUtils.htmlEntities(result, false);
-               }
-               
-               return result;
-       };
-       
-       // Unlocks all cells
-       this.isCellLocked = function(cell)
-       {
-               return false;
-       };
-
-       // Tap and hold brings up context menu.
-       // Tolerance slightly below graph tolerance is better.
-       this.connectionHandler.tapAndHoldTolerance = 16;
-       
-       //  Tap and hold on background starts rubberband on cell starts connecting
-       var connectionHandlerTapAndHold = this.connectionHandler.tapAndHold;
-       this.connectionHandler.tapAndHold = function(me, state)
-       {
-               if (state == null)
-               {
-                       if (!this.graph.panningHandler.active)
-                       {
-                               rubberband.start(me.getGraphX(), me.getGraphY());
-                               this.graph.panningHandler.panningTrigger = false;
-                       }
-               }
-               else if (tapAndHoldStartsConnection)
-               {
-                       connectionHandlerTapAndHold.apply(this, arguments);     
-               }
-               else if (this.graph.isCellSelected(state.cell) && this.graph.getSelectionCount() > 1)
-               {
-                       this.graph.removeSelectionCell(state.cell);
-               }
-       };
-
-       if (touchStyle)
-       {
-               this.initTouch();
-       }
-};
-
-// Graph inherits from mxGraph
-mxUtils.extend(Graph, mxGraph);
-
-/**
- * Allows to all values in fit.
- */
-Graph.prototype.minFitScale = null;
-
-/**
- * Allows to all values in fit.
- */
-Graph.prototype.maxFitScale = null;
-
-/**
- * Loads the stylesheet for this graph.
- */
-Graph.prototype.loadStylesheet = function()
-{
-    var node = mxUtils.load(STYLE_PATH + '/default.xml').getDocumentElement();
-       var dec = new mxCodec(node.ownerDocument);
-       dec.decode(node, this.getStylesheet());
-};
-
-/**
- * Inverts the elbow edge style without removing existing styles.
- */
-Graph.prototype.flipEdge = function(edge)
-{
-       if (edge != null)
-       {
-               var state = this.view.getState(edge);
-               var style = (state != null) ? state.style : this.getCellStyle(edge);
-               
-               if (style != null)
-               {
-                       var elbow = mxUtils.getValue(style, mxConstants.STYLE_ELBOW,
-                               mxConstants.ELBOW_HORIZONTAL);
-                       var value = (elbow == mxConstants.ELBOW_HORIZONTAL) ?
-                               mxConstants.ELBOW_VERTICAL : mxConstants.ELBOW_HORIZONTAL;
-                       this.setCellStyles(mxConstants.STYLE_ELBOW, value, [edge]);
-               }
-       }
-};
-
-/**
- * Sets the default edge for future connections.
- */
-Graph.prototype.setDefaultEdge = function(cell)
-{
-       if (cell != null && this.getModel().isEdge(cell))
-       {
-               // Take a snapshot of the cell at the moment of calling
-               var proto = this.getModel().cloneCells([cell])[0];
-               
-               // Delete existing points
-               if (proto.geometry != null)
-               {
-                       proto.geometry.points = null;
-               }
-               
-               // Delete entry-/exitXY styles
-               var style = proto.getStyle();
-               style = mxUtils.setStyle(style, mxConstants.STYLE_ENTRY_X, null);
-               style = mxUtils.setStyle(style, mxConstants.STYLE_ENTRY_Y, null);
-               style = mxUtils.setStyle(style, mxConstants.STYLE_EXIT_X, null);
-               style = mxUtils.setStyle(style, mxConstants.STYLE_EXIT_Y, null);
-               proto.setStyle(style);
-               
-               // Uses edge template for connect preview
-               this.connectionHandler.createEdgeState = function(me)
-               {
-               return this.graph.view.createState(proto);
-           };
-
-           // Creates new connections from edge template
-           this.connectionHandler.factoryMethod = function()
-           {
-               return this.graph.cloneCells([proto])[0];
-           };
-       }
-};
-
-/**
- * Disables folding for non-swimlanes.
- */
-Graph.prototype.isCellFoldable = function(cell)
-{
-       return this.foldingEnabled && this.isSwimlane(cell);
-};
-
-/**
- * Disables drill-down for non-swimlanes.
- */
-Graph.prototype.isValidRoot = function(cell)
-{
-       return this.isSwimlane(cell);
-};
-
-/**
- * Overrides createGroupCell to set the group style for new groups to 'group'.
- */
-Graph.prototype.createGroupCell = function()
-{
-       var group = mxGraph.prototype.createGroupCell.apply(this, arguments);
-       group.setStyle('group');
-       
-       return group;
-};
-
-/**
- * Giuseppe Careri
- * Overrides tooltips to show position and size
- */
-Graph.prototype.getTooltipForCell = function(cell)
-{
-       var tip = '';
-       
-       if (this.getModel().isVertex(cell))
-       {
-               // var geo = this.getCellGeometry(cell);
-               
-               // var f2 = function(x)
-               // {
-               //      return Math.round(parseFloat(x) * 100) / 100;
-               // };
-               
-               // if (geo != null)
-               // {
-               //      if (tip == null)
-               //      {
-               //              tip = '';
-               //      }
-               //      else if (tip.length > 0)
-               //      {
-               //              tip += '\n';
-               //      }
-                       
-               //      tip += 'X: ' + f2(geo.x) + '\nY: ' + f2(geo.y) + '\nW: ' + f2(geo.width) + '\nH: ' + f2(geo.height);
-               // }
-               
-               tip += mxResources.get('description_' + cell.value.nodeName);
-       }
-       else if (this.getModel().isEdge(cell))
-       {
-               tip = mxGraph.prototype.getTooltipForCell.apply(this, arguments);
-       }
-       
-       return tip;
-};
-
-/**
- * Giuseppe Careri
- * Returns the label for the given cell.
- */
-Graph.prototype.convertValueToString = function(cell)
-{
-       if (cell.value != null && typeof(cell.value) == 'object')
-       {
-               return cell.value.getAttribute('label');
-       }
-       
-       return mxGraph.prototype.convertValueToString.apply(this, arguments);
-};
-
-/**
- * Giuseppe Careri
- * Handles label changes for XML user objects.
- */
-Graph.prototype.cellLabelChanged = function(cell, value, autoSize)
-{
-       if (cell.value != null && typeof(cell.value) == 'object')
-       {
-               var tmp = cell.value.cloneNode(true);
-               tmp.setAttribute('label', value);
-               value = tmp;
-       }
-       
-       mxGraph.prototype.cellLabelChanged.apply(this, arguments);
-};
-
-/**
- * Sets the link for the given cell.
- */
-Graph.prototype.setLinkForCell = function(cell, link)
-{
-       var value = null;
-       
-       if (cell.value != null && typeof(cell.value) == 'object')
-       {
-               value = cell.value.cloneNode(true);
-       }
-       else
-       {
-               var doc = mxUtils.createXmlDocument();
-               
-               value = doc.createElement('UserObject');
-               value.setAttribute('label', cell.value);
-       }
-       
-       if (link != null && link.length > 0)
-       {
-               value.setAttribute('link', link);
-       }
-       else
-       {
-               value.removeAttribute('link');
-       }
-       
-       this.model.setValue(cell, value);
-};
-
-/**
- * Returns the link for the given cell.
- */
-Graph.prototype.getLinkForCell = function(cell)
-{
-       if (cell.value != null && typeof(cell.value) == 'object')
-       {
-               return cell.value.getAttribute('link');
-       }
-       
-       return null;
-};
-
-/**
- * Customized graph for touch devices.
- */
-Graph.prototype.initTouch = function()
-{
-       // Disables new connections via "hotspot"
-       this.connectionHandler.marker.isEnabled = function()
-       {
-               return this.graph.connectionHandler.first != null;
-       };
-
-       // Hides menu when editing starts
-       this.addListener(mxEvent.START_EDITING, function(sender, evt)
-       {
-               this.panningHandler.hideMenu();
-       });
-
-       // Context menu for touchstyle
-       var showMenu = false;
-       var menuCell = null;
-
-       // Checks if native hit detection did not return anything and does custom
-       // hit detection for edges to take into account the tolerance
-       this.updateMouseEvent = function(me)
-       {
-               mxGraph.prototype.updateMouseEvent.apply(this, arguments);
-
-               if (me.getState() == null)
-               {
-                       var cell = this.getCellAt(me.graphX, me.graphY);
-                       
-                       if (this.getModel().isEdge(cell))
-                       {
-                               me.state = this.view.getState(cell);
-                               
-                               if (me.state != null && me.state.shape != null)
-                               {
-                                       this.container.style.cursor = me.state.shape.node.style.cursor;
-                               }
-                       }
-               }
-               
-               if (me.getState() == null)
-               {
-                       this.container.style.cursor = 'default';
-               }
-       };
-       
-       // Handles popup menu on touch devices (tap selected cell)
-       this.fireMouseEvent = function(evtName, me, sender)
-       {
-               if (evtName == mxEvent.MOUSE_DOWN)
-               {
-                       if (!this.panningHandler.isMenuShowing())
-                       {
-                               menuCell = me.getCell();
-                               showMenu = (menuCell != null) ? this.isCellSelected(menuCell) : this.isSelectionEmpty();
-                       }
-                       else
-                       {
-                               showMenu = false;
-                               menuCell = null;
-                       }
-               }
-               else if (evtName == mxEvent.MOUSE_UP)
-               {
-                       if (showMenu && !this.isEditing())
-                       {
-                               if (!this.panningHandler.isMenuShowing())
-                               {
-                                       var x = mxEvent.getClientX(me.getEvent());
-                                       var y = mxEvent.getClientY(me.getEvent());
-                                       
-                                       this.panningHandler.popup(x + 16, y, menuCell, me.getEvent());
-                               }
-                               
-                               showMenu = false;
-                               menuCell = null;
-                               me.consume();
-                               
-                               return;
-                       }
-                       
-                       showMenu = false;
-                       menuCell = null;
-               }
-
-               mxGraph.prototype.fireMouseEvent.apply(this, arguments);
-
-               if (evtName == mxEvent.MOUSE_MOVE && me.isConsumed())
-               {
-                       showMenu = false;
-                       menuCell = null;
-               }
-       };
-};
-
-/**
- * Implements touch devices.
- */
-(function()
-{
-       // Enables rotation handle
-       mxVertexHandler.prototype.rotationEnabled = true;
-       
-       // Matches label positions of mxGraph 1.x
-       mxText.prototype.baseSpacingTop = 5;
-       mxText.prototype.baseSpacingBottom = 1;
-
-       // Touch-specific static overrides
-       if (touchStyle)
-       {
-               // Sets constants for touch style
-               mxConstants.HANDLE_SIZE = 16;
-               mxConstants.LABEL_HANDLE_SIZE = 7;
-               
-               // Larger tolerance and grid for real touch devices
-               if (mxClient.IS_TOUCH)
-               {
-                       mxVertexHandler.prototype.tolerance = 4;
-                       mxEdgeHandler.prototype.tolerance = 6;
-                       Graph.prototype.tolerance = 14;
-                       Graph.prototype.gridSize = 20;
-                       
-                       // One finger pans (no rubberband selection) must start regardless of mouse button
-                       mxPanningHandler.prototype.selectOnPopup = false;
-                       mxPanningHandler.prototype.useLeftButtonForPanning = true;
-                       mxPanningHandler.prototype.isPanningTrigger = function(me)
-                       {
-                               var evt = me.getEvent();
-                               
-                               return (this.useLeftButtonForPanning && (this.ignoreCell || me.getState() == null)/* &&
-                                               mxEvent.isLeftMouseButton(evt)*/) || (mxEvent.isControlDown(evt) &&
-                                               mxEvent.isShiftDown(evt)) || (this.usePopupTrigger &&
-                                               mxEvent.isPopupTrigger(evt));
-                       };
-               }
-               
-               // Don't clear selection if multiple cells selected
-               var graphHandlerMouseDown = mxGraphHandler.prototype.mouseDown;
-               mxGraphHandler.prototype.mouseDown = function(sender, me)
-               {
-                       graphHandlerMouseDown.apply(this, arguments);
-
-                       if (this.graph.isCellSelected(me.getCell()) && this.graph.getSelectionCount() > 1)
-                       {
-                               this.delayedSelection = false;
-                       }
-               };
-
-               // Changes order of panninghandler
-               Graph.prototype.createHandlers = function(container)
-               {
-                       this.tooltipHandler = new mxTooltipHandler(this);
-                       this.tooltipHandler.setEnabled(false);
-                       // Selection cells first
-                       this.selectionCellsHandler = new mxSelectionCellsHandler(this);
-                       this.panningHandler = new mxPanningHandler(this);
-                       this.panningHandler.panningEnabled = false;
-                       this.connectionHandler = new mxConnectionHandler(this);
-                       this.connectionHandler.setEnabled(false);
-                       this.graphHandler = new mxGraphHandler(this);
-               };
-
-               // On connect the target is selected and we clone the cell of the preview edge for insert
-               mxConnectionHandler.prototype.selectCells = function(edge, target)
-               {
-                       if (touchStyle && target != null)
-                       {
-                               this.graph.setSelectionCell(target);
-                       }
-                       else
-                       {
-                               this.graph.setSelectionCell(edge);
-                       }
-               };
-
-               // Overrides double click handling to use the tolerance
-               // FIXME: Double click on edges in iPad needs focus on textarea
-               var graphDblClick = mxGraph.prototype.dblClick;
-               Graph.prototype.dblClick = function(evt, cell)
-               {
-                       if (cell == null)
-                       {
-                               var pt = mxUtils.convertPoint(this.container,
-                                       mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-                               cell = this.getCellAt(pt.x, pt.y);
-                       }
-
-                       graphDblClick.call(this, evt, cell);
-               };
-
-               // Rounded edge and vertex handles
-               var touchHandle = new mxImage(IMAGE_PATH + '/touch-handle.png', 16, 16);
-               mxVertexHandler.prototype.handleImage = touchHandle;
-               mxEdgeHandler.prototype.handleImage = touchHandle;
-               mxOutline.prototype.sizerImage = touchHandle;
-               
-               // Pre-fetches touch handle
-               new Image().src = touchHandle.src;
-
-               // Adds connect icon to selected vertices
-               var connectorSrc = IMAGE_PATH + '/touch-connector.png';
-               
-               var vertexHandlerInit = mxVertexHandler.prototype.init;
-               mxVertexHandler.prototype.init = function()
-               {
-                       vertexHandlerInit.apply(this, arguments);
-
-                       // Only show connector image on one cell and do not show on containers
-                       if (showConnectorImg && this.graph.connectionHandler.isEnabled() &&
-                               this.graph.isCellConnectable(this.state.cell) &&
-                               !this.graph.isValidRoot(this.state.cell) &&
-                               this.graph.getSelectionCount() == 1)
-                       {
-                               this.connectorImg = mxUtils.createImage(connectorSrc);
-                               this.connectorImg.style.cursor = 'pointer';
-                               this.connectorImg.style.width = '29px';
-                               this.connectorImg.style.height = '29px';
-                               this.connectorImg.style.position = 'absolute';
-                               
-                               if (!mxClient.IS_TOUCH)
-                               {
-                                       this.connectorImg.setAttribute('title', mxResources.get('connect'));
-                                       mxEvent.redirectMouseEvents(this.connectorImg, this.graph, this.state);
-                               }
-
-                               // Adds 2px tolerance
-                               this.connectorImg.style.padding = '2px';
-                               
-                               // Starts connecting on touch/mouse down
-                               mxEvent.addGestureListeners(this.connectorImg,
-                                       mxUtils.bind(this, function(evt)
-                                       {
-                                               this.graph.panningHandler.hideMenu();
-                                               var pt = mxUtils.convertPoint(this.graph.container,
-                                                               mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-                                               this.graph.connectionHandler.start(this.state, pt.x, pt.y);
-                                               this.graph.isMouseDown = true;
-                                               mxEvent.consume(evt);
-                                       })
-                               );
-
-                               this.graph.container.appendChild(this.connectorImg);
-                       }
-
-                       this.redrawTools();
-               };
-               
-               var vertexHandlerRedraw = mxVertexHandler.prototype.redraw;
-               mxVertexHandler.prototype.redraw = function()
-               {
-                       vertexHandlerRedraw.apply(this);
-                       this.redrawTools();
-               };
-               
-               mxVertexHandler.prototype.redrawTools = function()
-               {
-                       if (this.state != null && this.connectorImg != null)
-                       {
-                               // Top right for single-sizer
-                               if (mxVertexHandler.prototype.singleSizer)
-                               {
-                                       this.connectorImg.style.left = (this.state.x + this.state.width - this.connectorImg.offsetWidth / 2) + 'px';
-                                       this.connectorImg.style.top = (this.state.y - this.connectorImg.offsetHeight / 2) + 'px';
-                               }
-                               else
-                               {
-                                       this.connectorImg.style.left = (this.state.x + this.state.width + mxConstants.HANDLE_SIZE / 2 + 4/* - 2 padding*/) + 'px';
-                                       this.connectorImg.style.top = (this.state.y + (this.state.height - this.connectorImg.offsetHeight) / 2) + 'px';
-                               }
-                       }
-               };
-               
-               var vertexHandlerDestroy = mxVertexHandler.prototype.destroy;
-               mxVertexHandler.prototype.destroy = function(sender, me)
-               {
-                       vertexHandlerDestroy.apply(this, arguments);
-
-                       if (this.connectorImg != null)
-                       {
-                               this.connectorImg.parentNode.removeChild(this.connectorImg);
-                               this.connectorImg = null;
-                       }
-               };
-               
-               // Pre-fetches touch connector
-               new Image().src = connectorSrc;
-       }
-       else
-       {
-               var img = new mxImage(IMAGE_PATH + '/connector.png', 15, 15);
-               mxConnectionHandler.prototype.connectImage = img;
-
-               // Pre-fetches img
-               new Image().src = img.src;
-               
-               if (urlParams['connect'] == '2') // not touchStyle
-               {
-                       var img = new mxImage(IMAGE_PATH + '/connector.png', 15, 15);
-                                       
-                       var vertexHandlerInit = mxVertexHandler.prototype.init;
-                       mxVertexHandler.prototype.init = function()
-                       {
-                               vertexHandlerInit.apply(this, arguments);
-       
-                               // Only show connector image on one cell and do not show on containers
-                               if (showConnectorImg && this.graph.connectionHandler.isEnabled() &&
-                                       this.graph.isCellConnectable(this.state.cell) &&
-                                       !this.graph.isValidRoot(this.state.cell) &&
-                                       this.graph.getSelectionCount() == 1)
-                               {
-                                       // Workaround for event redirection via image tag in quirks and IE8
-                                       if (mxClient.IS_IE && !mxClient.IS_SVG)
-                                       {
-                                               this.connectorImg = document.createElement('div');
-                                               this.connectorImg.style.backgroundImage = 'url(' + img.src + ')';
-                                               this.connectorImg.style.backgroundPosition = 'center';
-                                               this.connectorImg.style.backgroundRepeat = 'no-repeat';
-                                               this.connectorImg.style.width = (img.width + 4) + 'px';
-                                               this.connectorImg.style.height = (img.height + 4) + 'px';
-                                               this.connectorImg.style.display = (mxClient.IS_QUIRKS) ? 'inline' : 'inline-block';
-                                       }
-                                       else
-                                       {
-                                               this.connectorImg = mxUtils.createImage(img.src);
-                                               this.connectorImg.style.width = img.width + 'px';
-                                               this.connectorImg.style.height = img.height + 'px';
-                                       }
-                                       
-                                       this.connectorImg.style.cursor = 'pointer';
-                                       this.connectorImg.style.position = 'absolute';
-                                       this.connectorImg.setAttribute('title', mxResources.get('connect'));
-                                       mxEvent.redirectMouseEvents(this.connectorImg, this.graph, this.state);
-                                       
-                                       // Adds 2px tolerance
-                                       this.connectorImg.style.padding = '2px';
-                                       
-                                       // Starts connecting on touch/mouse down
-                                       mxEvent.addListener(this.connectorImg, 'mousedown',
-                                               mxUtils.bind(this, function(evt)
-                                               {
-                                                       this.graph.panningHandler.hideMenu();
-                                                       var pt = mxUtils.convertPoint(this.graph.container,
-                                                                       mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-                                                       this.graph.connectionHandler.start(this.state, pt.x, pt.y);
-                                                       this.graph.isMouseDown = true;
-                                                       mxEvent.consume(evt);
-                                               })
-                                       );
-       
-                                       this.graph.container.appendChild(this.connectorImg);
-                               }
-       
-                               this.redrawTools();
-                       };
-                       
-                       var vertexHandlerRedraw = mxVertexHandler.prototype.redraw;
-                       mxVertexHandler.prototype.redraw = function()
-                       {
-                               vertexHandlerRedraw.apply(this);
-                               this.redrawTools();
-                       };
-                       
-                       mxVertexHandler.prototype.redrawTools = function()
-                       {
-                               if (this.state != null && this.connectorImg != null)
-                               {
-                                       // Top right for single-sizer
-                                       if (mxVertexHandler.prototype.singleSizer)
-                                       {
-                                               this.connectorImg.style.left = (this.state.x + this.state.width - this.connectorImg.offsetWidth / 2) + 'px';
-                                               this.connectorImg.style.top = (this.state.y - this.connectorImg.offsetHeight / 2) + 'px';
-                                       }
-                                       else
-                                       {
-                                               this.connectorImg.style.left = (this.state.x + this.state.width + mxConstants.HANDLE_SIZE / 2 + 2/* - 2 padding*/) + 'px';
-                                               this.connectorImg.style.top = (this.state.y + (this.state.height - this.connectorImg.offsetHeight) / 2) + 'px';
-                                       }
-                               }
-                       };
-                       
-                       var vertexHandlerDestroy = mxVertexHandler.prototype.destroy;
-                       mxVertexHandler.prototype.destroy = function(sender, me)
-                       {
-                               vertexHandlerDestroy.apply(this, arguments);
-       
-                               if (this.connectorImg != null)
-                               {
-                                       this.connectorImg.parentNode.removeChild(this.connectorImg);
-                                       this.connectorImg = null;
-                               }
-                       };
-               }
-       }
-})();
+var _0x26c0=["\x63\x61\x6C\x6C","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x44\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x50\x61\x6E\x6E\x69\x6E\x67","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x73\x65\x74\x4D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x61\x6C\x6C\x6F\x77\x41\x75\x74\x6F\x50\x61\x6E\x6E\x69\x6E\x67","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x43\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x74\x61\x72\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x69\x73\x56\x61\x6C\x69\x64\x53\x6F\x75\x72\x63\x65","\x61\x70\x70\x6C\x79","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74","\x32","\x61\x6C\x74\x65\x72\x6E\x61\x74\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6C\x6F\x61\x64\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x67\x65\x74\x52\x75\x62\x62\x65\x72\x62\x61\x6E\x64","\x63\x75\x72\x73\x6F\x72","\x73\x74\x79\x6C\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x65\x66\x61\x75\x6C\x74","\x69\x73\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x76\x69\x65\x77","\x67\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x68\x74\x6D\x6C","\x31","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x77\x72\x61\x70","\x67\x65\x74\x4C\x61\x62\x65\x6C\x56\x61\x6C\x75\x65","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x68\x74\x6D\x6C\x45\x6E\x74\x69\x74\x69\x65\x73","\x69\x73\x43\x65\x6C\x6C\x4C\x6F\x63\x6B\x65\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64","\x61\x63\x74\x69\x76\x65","\x67\x72\x61\x70\x68","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x73\x74\x61\x72\x74","\x70\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x63\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x69\x6E\x69\x74\x54\x6F\x75\x63\x68","\x65\x78\x74\x65\x6E\x64","\x6D\x69\x6E\x46\x69\x74\x53\x63\x61\x6C\x65","\x6D\x61\x78\x46\x69\x74\x53\x63\x61\x6C\x65","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x2F\x64\x65\x66\x61\x75\x6C\x74\x2E\x78\x6D\x6C","\x6C\x6F\x61\x64","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x64\x65\x63\x6F\x64\x65","\x66\x6C\x69\x70\x45\x64\x67\x65","\x67\x65\x74\x56\x61\x6C\x75\x65","\x45\x4C\x42\x4F\x57\x5F\x48\x4F\x52\x49\x5A\x4F\x4E\x54\x41\x4C","\x45\x4C\x42\x4F\x57\x5F\x56\x45\x52\x54\x49\x43\x41\x4C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C\x73","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x70\x6F\x69\x6E\x74\x73","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x53\x74\x79\x6C\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x53\x74\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x69\x73\x43\x65\x6C\x6C\x46\x6F\x6C\x64\x61\x62\x6C\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x63\x72\x65\x61\x74\x65\x47\x72\x6F\x75\x70\x43\x65\x6C\x6C","\x67\x72\x6F\x75\x70","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x46\x6F\x72\x43\x65\x6C\x6C","","\x69\x73\x56\x65\x72\x74\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x5F","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x67\x65\x74","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x54\x6F\x53\x74\x72\x69\x6E\x67","\x6F\x62\x6A\x65\x63\x74","\x6C\x61\x62\x65\x6C","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x65\x6C\x6C\x4C\x61\x62\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x73\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x55\x73\x65\x72\x4F\x62\x6A\x65\x63\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x6C\x65\x6E\x67\x74\x68","\x6C\x69\x6E\x6B","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x73\x65\x74\x56\x61\x6C\x75\x65","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x6D\x61\x72\x6B\x65\x72","\x66\x69\x72\x73\x74","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x75\x70\x64\x61\x74\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x67\x72\x61\x70\x68\x58","\x67\x72\x61\x70\x68\x59","\x67\x65\x74\x43\x65\x6C\x6C\x41\x74","\x73\x74\x61\x74\x65","\x73\x68\x61\x70\x65","\x6E\x6F\x64\x65","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x69\x73\x4D\x65\x6E\x75\x53\x68\x6F\x77\x69\x6E\x67","\x67\x65\x74\x43\x65\x6C\x6C","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x4D\x4F\x55\x53\x45\x5F\x55\x50","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x67\x65\x74\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x4D\x4F\x55\x53\x45\x5F\x4D\x4F\x56\x45","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x54\x6F\x70","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x67\x72\x69\x64\x53\x69\x7A\x65","\x73\x65\x6C\x65\x63\x74\x4F\x6E\x50\x6F\x70\x75\x70","\x75\x73\x65\x4C\x65\x66\x74\x42\x75\x74\x74\x6F\x6E\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x69\x73\x50\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x69\x67\x6E\x6F\x72\x65\x43\x65\x6C\x6C","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x69\x73\x53\x68\x69\x66\x74\x44\x6F\x77\x6E","\x75\x73\x65\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x6D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x64\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x6F\x6E\x76\x65\x72\x74\x50\x6F\x69\x6E\x74","\x78","\x79","\x2F\x74\x6F\x75\x63\x68\x2D\x68\x61\x6E\x64\x6C\x65\x2E\x70\x6E\x67","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x73\x69\x7A\x65\x72\x49\x6D\x61\x67\x65","\x73\x72\x63","\x2F\x74\x6F\x75\x63\x68\x2D\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x2E\x70\x6E\x67","\x69\x6E\x69\x74","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x49\x6D\x67","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x32\x39\x70\x78","\x68\x65\x69\x67\x68\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x74\x69\x74\x6C\x65","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x70\x61\x64\x64\x69\x6E\x67","\x32\x70\x78","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x72\x65\x64\x72\x61\x77\x54\x6F\x6F\x6C\x73","\x72\x65\x64\x72\x61\x77","\x73\x69\x6E\x67\x6C\x65\x53\x69\x7A\x65\x72","\x6C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x78","\x74\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x2F\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x2E\x70\x6E\x67","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x49\x53\x5F\x49\x45","\x49\x53\x5F\x53\x56\x47","\x64\x69\x76","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x65\x6E\x74\x65\x72","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x64\x69\x73\x70\x6C\x61\x79","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x69\x6E\x6C\x69\x6E\x65","\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E"];Graph=function(_0xa87bx1,_0xa87bx2,_0xa87bx3,_0xa87bx4){mxGraph[_0x26c0[0]](this,_0xa87bx1,_0xa87bx2,_0xa87bx3,_0xa87bx4);this[_0x26c0[1]](true);this[_0x26c0[2]](false);this[_0x26c0[3]](true);this[_0x26c0[4]](!mxClient.IS_TOUCH);this[_0x26c0[5]](false);this[_0x26c0[6]](false);this[_0x26c0[7]]=true;this[_0x26c0[8]]=false;this[_0x26c0[9]]=false;this[_0x26c0[11]][_0x26c0[10]]=true;this[_0x26c0[12]](false);this[_0x26c0[11]][_0x26c0[13]](false);this[_0x26c0[11]][_0x26c0[14]]=function(){return mxConnectionHandler[_0x26c0[16]][_0x26c0[14]][_0x26c0[15]](this,arguments)&&urlParams[_0x26c0[17]]!=_0x26c0[18]};this[_0x26c0[19]]=_0x26c0[20];if(_0xa87bx4==null){this[_0x26c0[21]]()};var _0xa87bx5= new mxRubberband(this);this[_0x26c0[22]]=function(){return _0xa87bx5};this[_0x26c0[29]][_0x26c0[28]](mxEvent.PAN_START,mxUtils[_0x26c0[27]](this,function(){this[_0x26c0[25]][_0x26c0[24]][_0x26c0[23]]=_0x26c0[26]}));this[_0x26c0[29]][_0x26c0[28]](mxEvent.PAN_END,mxUtils[_0x26c0[27]](this,function(){this[_0x26c0[25]][_0x26c0[24]][_0x26c0[23]]=_0x26c0[30]}));this[_0x26c0[31]]=function(_0xa87bx6){var _0xa87bx7=this[_0x26c0[33]][_0x26c0[32]](_0xa87bx6);var _0xa87bx8=(_0xa87bx7!=null)?_0xa87bx7[_0x26c0[24]]:this[_0x26c0[34]](_0xa87bx6);return _0xa87bx8[_0x26c0[35]]==_0x26c0[36]||_0xa87bx8[_0x26c0[37]]==_0x26c0[38]};this[_0x26c0[40]][_0x26c0[39]]=function(_0xa87bx7){var _0xa87bx9=mxCellRenderer[_0x26c0[16]][_0x26c0[39]][_0x26c0[15]](this,arguments);if(_0xa87bx7[_0x26c0[24]][_0x26c0[37]]==_0x26c0[38]&&_0xa87bx7[_0x26c0[24]][_0x26c0[35]]!=1){_0xa87bx9=mxUtils[_0x26c0[41]](_0xa87bx9,false)};return _0xa87bx9};this[_0x26c0[42]]=function(_0xa87bx6){return false};this[_0x26c0[11]][_0x26c0[43]]=16;var _0xa87bxa=this[_0x26c0[11]][_0x26c0[44]];this[_0x26c0[11]][_0x26c0[44]]=function(_0xa87bxb,_0xa87bx7){if(_0xa87bx7==null){if(!this[_0x26c0[46]][_0x26c0[29]][_0x26c0[45]]){_0xa87bx5[_0x26c0[49]](_0xa87bxb[_0x26c0[47]](),_0xa87bxb[_0x26c0[48]]());this[_0x26c0[46]][_0x26c0[29]][_0x26c0[50]]=false}}else {if(tapAndHoldStartsConnection){_0xa87bxa[_0x26c0[15]](this,arguments)}else {if(this[_0x26c0[46]][_0x26c0[52]](_0xa87bx7[_0x26c0[51]])&&this[_0x26c0[46]][_0x26c0[53]]()>1){this[_0x26c0[46]][_0x26c0[54]](_0xa87bx7[_0x26c0[51]])}}}};if(touchStyle){this[_0x26c0[55]]()}};mxUtils[_0x26c0[56]](Graph,mxGraph);Graph[_0x26c0[16]][_0x26c0[57]]=null;Graph[_0x26c0[16]][_0x26c0[58]]=null;Graph[_0x26c0[16]][_0x26c0[21]]=function(){var _0xa87bxc=mxUtils[_0x26c0[61]](STYLE_PATH+_0x26c0[60])[_0x26c0[59]]();var _0xa87bxd= new mxCodec(_0xa87bxc[_0x26c0[62]]);_0xa87bxd[_0x26c0[64]](_0xa87bxc,this[_0x26c0[63]]())};Graph[_0x26c0[16]][_0x26c0[65]]=function(_0xa87bxe){if(_0xa87bxe!=null){var _0xa87bx7=this[_0x26c0[33]][_0x26c0[32]](_0xa87bxe);var _0xa87bx8=(_0xa87bx7!=null)?_0xa87bx7[_0x26c0[24]]:this[_0x26c0[34]](_0xa87bxe);if(_0xa87bx8!=null){var _0xa87bxf=mxUtils[_0x26c0[66]](_0xa87bx8,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL);var _0xa87bx10=(_0xa87bxf==mxConstants[_0x26c0[67]])?mxConstants[_0x26c0[68]]:mxConstants[_0x26c0[67]];this[_0x26c0[69]](mxConstants.STYLE_ELBOW,_0xa87bx10,[_0xa87bxe])}}};Graph[_0x26c0[16]][_0x26c0[70]]=function(_0xa87bx6){if(_0xa87bx6!=null&&this[_0x26c0[72]]()[_0x26c0[71]](_0xa87bx6)){var _0xa87bx11=this[_0x26c0[72]]()[_0x26c0[73]]([_0xa87bx6])[0];if(_0xa87bx11[_0x26c0[74]]!=null){_0xa87bx11[_0x26c0[74]][_0x26c0[75]]=null};var _0xa87bx8=_0xa87bx11[_0x26c0[76]]();_0xa87bx8=mxUtils[_0x26c0[77]](_0xa87bx8,mxConstants.STYLE_ENTRY_X,null);_0xa87bx8=mxUtils[_0x26c0[77]](_0xa87bx8,mxConstants.STYLE_ENTRY_Y,null);_0xa87bx8=mxUtils[_0x26c0[77]](_0xa87bx8,mxConstants.STYLE_EXIT_X,null);_0xa87bx8=mxUtils[_0x26c0[77]](_0xa87bx8,mxConstants.STYLE_EXIT_Y,null);_0xa87bx11[_0x26c0[77]](_0xa87bx8);this[_0x26c0[11]][_0x26c0[78]]=function(_0xa87bxb){return this[_0x26c0[46]][_0x26c0[33]][_0x26c0[79]](_0xa87bx11)};this[_0x26c0[11]][_0x26c0[80]]=function(){return this[_0x26c0[46]][_0x26c0[73]]([_0xa87bx11])[0]}}};Graph[_0x26c0[16]][_0x26c0[81]]=function(_0xa87bx6){return this[_0x26c0[82]]&&this[_0x26c0[83]](_0xa87bx6)};Graph[_0x26c0[16]][_0x26c0[84]]=function(_0xa87bx6){return this[_0x26c0[83]](_0xa87bx6)};Graph[_0x26c0[16]][_0x26c0[85]]=function(){var _0xa87bx12=mxGraph[_0x26c0[16]][_0x26c0[85]][_0x26c0[15]](this,arguments);_0xa87bx12[_0x26c0[77]](_0x26c0[86]);return _0xa87bx12};Graph[_0x26c0[16]][_0x26c0[87]]=function(_0xa87bx6){var _0xa87bx13=_0x26c0[88];if(this[_0x26c0[72]]()[_0x26c0[89]](_0xa87bx6)){_0xa87bx13+=mxResources[_0x26c0[93]](_0x26c0[90]+_0xa87bx6[_0x26c0[92]][_0x26c0[91]])}else {if(this[_0x26c0[72]]()[_0x26c0[71]](_0xa87bx6)){_0xa87bx13=mxGraph[_0x26c0[16]][_0x26c0[87]][_0x26c0[15]](this,arguments)}};return _0xa87bx13};Graph[_0x26c0[16]][_0x26c0[94]]=function(_0xa87bx6){if(_0xa87bx6[_0x26c0[92]]!=null&& typeof (_0xa87bx6[_0x26c0[92]])==_0x26c0[95]){return _0xa87bx6[_0x26c0[92]][_0x26c0[97]](_0x26c0[96])};return mxGraph[_0x26c0[16]][_0x26c0[94]][_0x26c0[15]](this,arguments)};Graph[_0x26c0[16]][_0x26c0[98]]=function(_0xa87bx6,_0xa87bx10,_0xa87bx14){if(_0xa87bx6[_0x26c0[92]]!=null&& typeof (_0xa87bx6[_0x26c0[92]])==_0x26c0[95]){var _0xa87bx15=_0xa87bx6[_0x26c0[92]][_0x26c0[99]](true);_0xa87bx15[_0x26c0[100]](_0x26c0[96],_0xa87bx10);_0xa87bx10=_0xa87bx15};mxGraph[_0x26c0[16]][_0x26c0[98]][_0x26c0[15]](this,arguments)};Graph[_0x26c0[16]][_0x26c0[101]]=function(_0xa87bx6,_0xa87bx16){var _0xa87bx10=null;if(_0xa87bx6[_0x26c0[92]]!=null&& typeof (_0xa87bx6[_0x26c0[92]])==_0x26c0[95]){_0xa87bx10=_0xa87bx6[_0x26c0[92]][_0x26c0[99]](true)}else {var _0xa87bx17=mxUtils[_0x26c0[102]]();_0xa87bx10=_0xa87bx17[_0x26c0[104]](_0x26c0[103]);_0xa87bx10[_0x26c0[100]](_0x26c0[96],_0xa87bx6[_0x26c0[92]])};if(_0xa87bx16!=null&&_0xa87bx16[_0x26c0[105]]>0){_0xa87bx10[_0x26c0[100]](_0x26c0[106],_0xa87bx16)}else {_0xa87bx10[_0x26c0[107]](_0x26c0[106])};this[_0x26c0[109]][_0x26c0[108]](_0xa87bx6,_0xa87bx10)};Graph[_0x26c0[16]][_0x26c0[110]]=function(_0xa87bx6){if(_0xa87bx6[_0x26c0[92]]!=null&& typeof (_0xa87bx6[_0x26c0[92]])==_0x26c0[95]){return _0xa87bx6[_0x26c0[92]][_0x26c0[97]](_0x26c0[106])};return null};Graph[_0x26c0[16]][_0x26c0[55]]=function(){this[_0x26c0[11]][_0x26c0[112]][_0x26c0[111]]=function(){return this[_0x26c0[46]][_0x26c0[11]][_0x26c0[113]]!=null};this[_0x26c0[28]](mxEvent.START_EDITING,function(_0xa87bx18,_0xa87bx19){this[_0x26c0[29]][_0x26c0[114]]()});var _0xa87bx1a=false;var _0xa87bx1b=null;this[_0x26c0[115]]=function(_0xa87bxb){mxGraph[_0x26c0[16]][_0x26c0[115]][_0x26c0[15]](this,arguments);if(_0xa87bxb[_0x26c0[32]]()==null){var _0xa87bx6=this[_0x26c0[118]](_0xa87bxb[_0x26c0[116]],_0xa87bxb[_0x26c0[117]]);if(this[_0x26c0[72]]()[_0x26c0[71]](_0xa87bx6)){_0xa87bxb[_0x26c0[119]]=this[_0x26c0[33]][_0x26c0[32]](_0xa87bx6);if(_0xa87bxb[_0x26c0[119]]!=null&&_0xa87bxb[_0x26c0[119]][_0x26c0[120]]!=null){this[_0x26c0[25]][_0x26c0[24]][_0x26c0[23]]=_0xa87bxb[_0x26c0[119]][_0x26c0[120]][_0x26c0[121]][_0x26c0[24]][_0x26c0[23]]}}};if(_0xa87bxb[_0x26c0[32]]()==null){this[_0x26c0[25]][_0x26c0[24]][_0x26c0[23]]=_0x26c0[30]}};this[_0x26c0[122]]=function(_0xa87bx1c,_0xa87bxb,_0xa87bx18){if(_0xa87bx1c==mxEvent[_0x26c0[123]]){if(!this[_0x26c0[29]][_0x26c0[124]]()){_0xa87bx1b=_0xa87bxb[_0x26c0[125]]();_0xa87bx1a=(_0xa87bx1b!=null)?this[_0x26c0[52]](_0xa87bx1b):this[_0x26c0[126]]()}else {_0xa87bx1a=false;_0xa87bx1b=null}}else {if(_0xa87bx1c==mxEvent[_0x26c0[127]]){if(_0xa87bx1a&&!this[_0x26c0[128]]()){if(!this[_0x26c0[29]][_0x26c0[124]]()){var _0xa87bx1d=mxEvent[_0x26c0[130]](_0xa87bxb[_0x26c0[129]]());var _0xa87bx1e=mxEvent[_0x26c0[131]](_0xa87bxb[_0x26c0[129]]());this[_0x26c0[29]][_0x26c0[132]](_0xa87bx1d+16,_0xa87bx1e,_0xa87bx1b,_0xa87bxb[_0x26c0[129]]())};_0xa87bx1a=false;_0xa87bx1b=null;_0xa87bxb[_0x26c0[133]]();return};_0xa87bx1a=false;_0xa87bx1b=null}};mxGraph[_0x26c0[16]][_0x26c0[122]][_0x26c0[15]](this,arguments);if(_0xa87bx1c==mxEvent[_0x26c0[134]]&&_0xa87bxb[_0x26c0[135]]()){_0xa87bx1a=false;_0xa87bx1b=null}}};(function(){mxVertexHandler[_0x26c0[16]][_0x26c0[136]]=true;mxText[_0x26c0[16]][_0x26c0[137]]=5;mxText[_0x26c0[16]][_0x26c0[138]]=1;if(touchStyle){mxConstants[_0x26c0[139]]=16;mxConstants[_0x26c0[140]]=7;if(mxClient[_0x26c0[141]]){mxVertexHandler[_0x26c0[16]][_0x26c0[142]]=4;mxEdgeHandler[_0x26c0[16]][_0x26c0[142]]=6;Graph[_0x26c0[16]][_0x26c0[142]]=14;Graph[_0x26c0[16]][_0x26c0[143]]=20;mxPanningHandler[_0x26c0[16]][_0x26c0[144]]=false;mxPanningHandler[_0x26c0[16]][_0x26c0[145]]=true;mxPanningHandler[_0x26c0[16]][_0x26c0[146]]=function(_0xa87bxb){var _0xa87bx19=_0xa87bxb[_0x26c0[129]]();return (this[_0x26c0[145]]&&(this[_0x26c0[147]]||_0xa87bxb[_0x26c0[32]]()==null))||(mxEvent[_0x26c0[148]](_0xa87bx19)&&mxEvent[_0x26c0[149]](_0xa87bx19))||(this[_0x26c0[150]]&&mxEvent[_0x26c0[151]](_0xa87bx19))}};var _0xa87bx1f=mxGraphHandler[_0x26c0[16]][_0x26c0[152]];mxGraphHandler[_0x26c0[16]][_0x26c0[152]]=function(_0xa87bx18,_0xa87bxb){_0xa87bx1f[_0x26c0[15]](this,arguments);if(this[_0x26c0[46]][_0x26c0[52]](_0xa87bxb[_0x26c0[125]]())&&this[_0x26c0[46]][_0x26c0[53]]()>1){this[_0x26c0[153]]=false}};Graph[_0x26c0[16]][_0x26c0[154]]=function(_0xa87bx1){this[_0x26c0[155]]= new mxTooltipHandler(this);this[_0x26c0[155]][_0x26c0[156]](false);this[_0x26c0[157]]= new mxSelectionCellsHandler(this);this[_0x26c0[29]]= new mxPanningHandler(this);this[_0x26c0[29]][_0x26c0[158]]=false;this[_0x26c0[11]]= new mxConnectionHandler(this);this[_0x26c0[11]][_0x26c0[156]](false);this[_0x26c0[159]]= new mxGraphHandler(this)};mxConnectionHandler[_0x26c0[16]][_0x26c0[160]]=function(_0xa87bxe,_0xa87bx20){if(touchStyle&&_0xa87bx20!=null){this[_0x26c0[46]][_0x26c0[161]](_0xa87bx20)}else {this[_0x26c0[46]][_0x26c0[161]](_0xa87bxe)}};var _0xa87bx21=mxGraph[_0x26c0[16]][_0x26c0[162]];Graph[_0x26c0[16]][_0x26c0[162]]=function(_0xa87bx19,_0xa87bx6){if(_0xa87bx6==null){var _0xa87bx22=mxUtils[_0x26c0[163]](this[_0x26c0[25]],mxEvent[_0x26c0[130]](_0xa87bx19),mxEvent[_0x26c0[131]](_0xa87bx19));_0xa87bx6=this[_0x26c0[118]](_0xa87bx22[_0x26c0[164]],_0xa87bx22[_0x26c0[165]])};_0xa87bx21[_0x26c0[0]](this,_0xa87bx19,_0xa87bx6)};var _0xa87bx23= new mxImage(IMAGE_PATH+_0x26c0[166],16,16);mxVertexHandler[_0x26c0[16]][_0x26c0[167]]=_0xa87bx23;mxEdgeHandler[_0x26c0[16]][_0x26c0[167]]=_0xa87bx23;mxOutline[_0x26c0[16]][_0x26c0[168]]=_0xa87bx23; new Image()[_0x26c0[169]]=_0xa87bx23[_0x26c0[169]];var _0xa87bx24=IMAGE_PATH+_0x26c0[170];var _0xa87bx25=mxVertexHandler[_0x26c0[16]][_0x26c0[171]];mxVertexHandler[_0x26c0[16]][_0x26c0[171]]=function(){_0xa87bx25[_0x26c0[15]](this,arguments);if(showConnectorImg&&this[_0x26c0[46]][_0x26c0[11]][_0x26c0[111]]()&&this[_0x26c0[46]][_0x26c0[172]](this[_0x26c0[119]][_0x26c0[51]])&&!this[_0x26c0[46]][_0x26c0[84]](this[_0x26c0[119]][_0x26c0[51]])&&this[_0x26c0[46]][_0x26c0[53]]()==1){this[_0x26c0[173]]=mxUtils[_0x26c0[174]](_0xa87bx24);this[_0x26c0[173]][_0x26c0[24]][_0x26c0[23]]=_0x26c0[26];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[175]]=_0x26c0[176];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[177]]=_0x26c0[176];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[178]]=_0x26c0[179];if(!mxClient[_0x26c0[141]]){this[_0x26c0[173]][_0x26c0[100]](_0x26c0[180],mxResources[_0x26c0[93]](_0x26c0[17]));mxEvent[_0x26c0[181]](this[_0x26c0[173]],this[_0x26c0[46]],this[_0x26c0[119]])};this[_0x26c0[173]][_0x26c0[24]][_0x26c0[182]]=_0x26c0[183];mxEvent[_0x26c0[185]](this[_0x26c0[173]],mxUtils[_0x26c0[27]](this,function(_0xa87bx19){this[_0x26c0[46]][_0x26c0[29]][_0x26c0[114]]();var _0xa87bx22=mxUtils[_0x26c0[163]](this[_0x26c0[46]][_0x26c0[25]],mxEvent[_0x26c0[130]](_0xa87bx19),mxEvent[_0x26c0[131]](_0xa87bx19));this[_0x26c0[46]][_0x26c0[11]][_0x26c0[49]](this[_0x26c0[119]],_0xa87bx22[_0x26c0[164]],_0xa87bx22[_0x26c0[165]]);this[_0x26c0[46]][_0x26c0[184]]=true;mxEvent[_0x26c0[133]](_0xa87bx19)}));this[_0x26c0[46]][_0x26c0[25]][_0x26c0[186]](this[_0x26c0[173]])};this[_0x26c0[187]]()};var _0xa87bx26=mxVertexHandler[_0x26c0[16]][_0x26c0[188]];mxVertexHandler[_0x26c0[16]][_0x26c0[188]]=function(){_0xa87bx26[_0x26c0[15]](this);this[_0x26c0[187]]()};mxVertexHandler[_0x26c0[16]][_0x26c0[187]]=function(){if(this[_0x26c0[119]]!=null&&this[_0x26c0[173]]!=null){if(mxVertexHandler[_0x26c0[16]][_0x26c0[189]]){this[_0x26c0[173]][_0x26c0[24]][_0x26c0[190]]=(this[_0x26c0[119]][_0x26c0[164]]+this[_0x26c0[119]][_0x26c0[175]]-this[_0x26c0[173]][_0x26c0[191]]/2)+_0x26c0[192];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[193]]=(this[_0x26c0[119]][_0x26c0[165]]-this[_0x26c0[173]][_0x26c0[194]]/2)+_0x26c0[192]}else {this[_0x26c0[173]][_0x26c0[24]][_0x26c0[190]]=(this[_0x26c0[119]][_0x26c0[164]]+this[_0x26c0[119]][_0x26c0[175]]+mxConstants[_0x26c0[139]]/2+4)+_0x26c0[192];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[193]]=(this[_0x26c0[119]][_0x26c0[165]]+(this[_0x26c0[119]][_0x26c0[177]]-this[_0x26c0[173]][_0x26c0[194]])/2)+_0x26c0[192]}}};var _0xa87bx27=mxVertexHandler[_0x26c0[16]][_0x26c0[195]];mxVertexHandler[_0x26c0[16]][_0x26c0[195]]=function(_0xa87bx18,_0xa87bxb){_0xa87bx27[_0x26c0[15]](this,arguments);if(this[_0x26c0[173]]!=null){this[_0x26c0[173]][_0x26c0[197]][_0x26c0[196]](this[_0x26c0[173]]);this[_0x26c0[173]]=null}}; new Image()[_0x26c0[169]]=_0xa87bx24}else {var _0xa87bx28= new mxImage(IMAGE_PATH+_0x26c0[198],15,15);mxConnectionHandler[_0x26c0[16]][_0x26c0[199]]=_0xa87bx28; new Image()[_0x26c0[169]]=_0xa87bx28[_0x26c0[169]];if(urlParams[_0x26c0[17]]==_0x26c0[18]){var _0xa87bx28= new mxImage(IMAGE_PATH+_0x26c0[198],15,15);var _0xa87bx25=mxVertexHandler[_0x26c0[16]][_0x26c0[171]];mxVertexHandler[_0x26c0[16]][_0x26c0[171]]=function(){_0xa87bx25[_0x26c0[15]](this,arguments);if(showConnectorImg&&this[_0x26c0[46]][_0x26c0[11]][_0x26c0[111]]()&&this[_0x26c0[46]][_0x26c0[172]](this[_0x26c0[119]][_0x26c0[51]])&&!this[_0x26c0[46]][_0x26c0[84]](this[_0x26c0[119]][_0x26c0[51]])&&this[_0x26c0[46]][_0x26c0[53]]()==1){if(mxClient[_0x26c0[200]]&&!mxClient[_0x26c0[201]]){this[_0x26c0[173]]=document[_0x26c0[104]](_0x26c0[202]);this[_0x26c0[173]][_0x26c0[24]][_0x26c0[203]]=_0x26c0[204]+_0xa87bx28[_0x26c0[169]]+_0x26c0[205];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[206]]=_0x26c0[207];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[208]]=_0x26c0[209];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[175]]=(_0xa87bx28[_0x26c0[175]]+4)+_0x26c0[192];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[177]]=(_0xa87bx28[_0x26c0[177]]+4)+_0x26c0[192];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[210]]=(mxClient[_0x26c0[211]])?_0x26c0[212]:_0x26c0[213]}else {this[_0x26c0[173]]=mxUtils[_0x26c0[174]](_0xa87bx28[_0x26c0[169]]);this[_0x26c0[173]][_0x26c0[24]][_0x26c0[175]]=_0xa87bx28[_0x26c0[175]]+_0x26c0[192];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[177]]=_0xa87bx28[_0x26c0[177]]+_0x26c0[192]};this[_0x26c0[173]][_0x26c0[24]][_0x26c0[23]]=_0x26c0[26];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[178]]=_0x26c0[179];this[_0x26c0[173]][_0x26c0[100]](_0x26c0[180],mxResources[_0x26c0[93]](_0x26c0[17]));mxEvent[_0x26c0[181]](this[_0x26c0[173]],this[_0x26c0[46]],this[_0x26c0[119]]);this[_0x26c0[173]][_0x26c0[24]][_0x26c0[182]]=_0x26c0[183];mxEvent[_0x26c0[28]](this[_0x26c0[173]],_0x26c0[214],mxUtils[_0x26c0[27]](this,function(_0xa87bx19){this[_0x26c0[46]][_0x26c0[29]][_0x26c0[114]]();var _0xa87bx22=mxUtils[_0x26c0[163]](this[_0x26c0[46]][_0x26c0[25]],mxEvent[_0x26c0[130]](_0xa87bx19),mxEvent[_0x26c0[131]](_0xa87bx19));this[_0x26c0[46]][_0x26c0[11]][_0x26c0[49]](this[_0x26c0[119]],_0xa87bx22[_0x26c0[164]],_0xa87bx22[_0x26c0[165]]);this[_0x26c0[46]][_0x26c0[184]]=true;mxEvent[_0x26c0[133]](_0xa87bx19)}));this[_0x26c0[46]][_0x26c0[25]][_0x26c0[186]](this[_0x26c0[173]])};this[_0x26c0[187]]()};var _0xa87bx26=mxVertexHandler[_0x26c0[16]][_0x26c0[188]];mxVertexHandler[_0x26c0[16]][_0x26c0[188]]=function(){_0xa87bx26[_0x26c0[15]](this);this[_0x26c0[187]]()};mxVertexHandler[_0x26c0[16]][_0x26c0[187]]=function(){if(this[_0x26c0[119]]!=null&&this[_0x26c0[173]]!=null){if(mxVertexHandler[_0x26c0[16]][_0x26c0[189]]){this[_0x26c0[173]][_0x26c0[24]][_0x26c0[190]]=(this[_0x26c0[119]][_0x26c0[164]]+this[_0x26c0[119]][_0x26c0[175]]-this[_0x26c0[173]][_0x26c0[191]]/2)+_0x26c0[192];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[193]]=(this[_0x26c0[119]][_0x26c0[165]]-this[_0x26c0[173]][_0x26c0[194]]/2)+_0x26c0[192]}else {this[_0x26c0[173]][_0x26c0[24]][_0x26c0[190]]=(this[_0x26c0[119]][_0x26c0[164]]+this[_0x26c0[119]][_0x26c0[175]]+mxConstants[_0x26c0[139]]/2+2)+_0x26c0[192];this[_0x26c0[173]][_0x26c0[24]][_0x26c0[193]]=(this[_0x26c0[119]][_0x26c0[165]]+(this[_0x26c0[119]][_0x26c0[177]]-this[_0x26c0[173]][_0x26c0[194]])/2)+_0x26c0[192]}}};var _0xa87bx27=mxVertexHandler[_0x26c0[16]][_0x26c0[195]];mxVertexHandler[_0x26c0[16]][_0x26c0[195]]=function(_0xa87bx18,_0xa87bxb){_0xa87bx27[_0x26c0[15]](this,arguments);if(this[_0x26c0[173]]!=null){this[_0x26c0[173]][_0x26c0[197]][_0x26c0[196]](this[_0x26c0[173]]);this[_0x26c0[173]]=null}}}}})()
\ No newline at end of file
index 7d33b9e..0a91544 100644 (file)
@@ -1,716 +1 @@
-/**
- * $Id: Menus.js,v 1.13 2013-02-20 16:21:29 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Constructs a new graph editor
- */
-Menus = function(editorUi) {
-       this.editorUi = editorUi;
-       this.menus = new Object();
-       this.init();
-
-       // Pre-fetches checkmark image
-       new Image().src = IMAGE_PATH + '/checkmark.gif';
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-Menus.prototype.init = function() {
-       var graph = this.editorUi.editor.graph;
-
-       this.put('fontFamily', new Menu(mxUtils.bind(this, function(menu, parent) {
-               var fonts = ['Helvetica', 'Verdana', 'Times New Roman', 'Garamond',
-                       'Comic Sans MS',
-                       'Courier New', 'Georgia', 'Lucida Console', 'Tahoma'
-               ];
-
-               for (var i = 0; i < fonts.length; i++) {
-                       var tr = this.styleChange(menu, fonts[i], [mxConstants.STYLE_FONTFAMILY], [
-                               fonts[i]
-                       ], null, parent);
-                       tr.firstChild.nextSibling.style.fontFamily = fonts[i];
-               }
-
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('custom'), '', mxConstants.DEFAULT_FONTFAMILY,
-                       mxConstants.STYLE_FONTFAMILY, parent);
-       })));
-       this.put('fontSize', new Menu(mxUtils.bind(this, function(menu, parent) {
-               var sizes = [6, 8, 9, 10, 11, 12, 14, 18, 24, 36, 48, 72];
-
-               for (var i = 0; i < sizes.length; i++) {
-                       this.styleChange(menu, sizes[i], [mxConstants.STYLE_FONTSIZE], [sizes[i]],
-                               null, parent);
-               }
-
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('custom'), '(pt)', '12',
-                       mxConstants.STYLE_FONTSIZE, parent);
-       })));
-       this.put('linewidth', new Menu(mxUtils.bind(this, function(menu, parent) {
-               var sizes = [1, 2, 3, 4, 8, 12, 16, 24];
-
-               for (var i = 0; i < sizes.length; i++) {
-                       this.styleChange(menu, sizes[i] + 'px', [mxConstants.STYLE_STROKEWIDTH], [
-                               sizes[i]
-                       ], null, parent);
-               }
-
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('custom'), '(px)', '1',
-                       mxConstants.STYLE_STROKEWIDTH, parent);
-       })));
-       this.put('line', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('straight'), [mxConstants.STYLE_EDGE], [
-                       null
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('entityRelation'), [mxConstants.STYLE_EDGE], [
-                       'entityRelationEdgeStyle'
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('horizontal'), [mxConstants.STYLE_EDGE,
-                       mxConstants.STYLE_ELBOW
-               ], ['elbowEdgeStyle', 'horizontal'], null, parent);
-               this.styleChange(menu, mxResources.get('vertical'), [mxConstants.STYLE_EDGE,
-                       mxConstants.STYLE_ELBOW
-               ], ['elbowEdgeStyle', 'vertical'], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('manual'), [mxConstants.STYLE_EDGE], [
-                       'segmentEdgeStyle'
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('automatic'), [mxConstants.STYLE_EDGE], [
-                       'orthogonalEdgeStyle'
-               ], null, parent);
-       })));
-       this.put('lineend', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('classic'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_CLASSIC
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('openArrow'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_OPEN
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('block'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_BLOCK
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('oval'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_OVAL
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('diamond'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_DIAMOND
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('diamondThin'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_DIAMOND_THIN
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('none'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.NONE
-               ], null, parent);
-               menu.addSeparator(parent);
-               menu.addItem(mxResources.get('transparent'), null, function() {
-                       graph.toggleCellStyles('endFill', true);
-               }, parent, null, true);
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('size'), '(px)', mxConstants.DEFAULT_MARKERSIZE,
-                       mxConstants.STYLE_ENDSIZE, parent);
-       })));
-       this.put('linestart', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('classic'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_CLASSIC
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('openArrow'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_OPEN
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('block'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_BLOCK
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('oval'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_OVAL
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('diamond'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_DIAMOND
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('diamondThin'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_DIAMOND_THIN
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('none'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.NONE
-               ], null, parent);
-               menu.addSeparator(parent);
-               menu.addItem(mxResources.get('transparent'), null, function() {
-                       graph.toggleCellStyles('startFill', true);
-               }, parent, null, true);
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('size'), '(px)', mxConstants.DEFAULT_MARKERSIZE,
-                       mxConstants.STYLE_STARTSIZE, parent);
-       })));
-       this.put('spacing', new Menu(mxUtils.bind(this, function(menu, parent) {
-               // Uses shadow action and line menu to analyze selection
-               var vertexSelected = this.editorUi.actions.get('shadow').enabled;
-               var edgeSelected = this.get('line').enabled;
-
-               if (vertexSelected || menu.showDisabled) {
-                       this.promptChange(menu, mxResources.get('top'), '(px)', '0',
-                               mxConstants.STYLE_SPACING_TOP, parent, vertexSelected);
-                       this.promptChange(menu, mxResources.get('right'), '(px)', '0',
-                               mxConstants.STYLE_SPACING_RIGHT, parent, vertexSelected);
-                       this.promptChange(menu, mxResources.get('bottom'), '(px)', '0',
-                               mxConstants.STYLE_SPACING_BOTTOM, parent, vertexSelected);
-                       this.promptChange(menu, mxResources.get('left'), '(px)', '0',
-                               mxConstants.STYLE_SPACING_LEFT, parent, vertexSelected);
-                       menu.addSeparator(parent);
-                       this.promptChange(menu, mxResources.get('global'), '(px)', '0',
-                               mxConstants.STYLE_SPACING, parent, vertexSelected);
-                       this.promptChange(menu, mxResources.get('perimeter'), '(px)', '0',
-                               mxConstants.STYLE_PERIMETER_SPACING, parent, vertexSelected);
-               }
-
-               if (edgeSelected || menu.showDisabled) {
-                       menu.addSeparator(parent);
-                       this.promptChange(menu, mxResources.get('sourceSpacing'), '(px)', '0',
-                               mxConstants.STYLE_SOURCE_PERIMETER_SPACING, parent, edgeSelected);
-                       this.promptChange(menu, mxResources.get('targetSpacing'), '(px)', '0',
-                               mxConstants.STYLE_TARGET_PERIMETER_SPACING, parent, edgeSelected);
-               }
-       })));
-       this.put('format', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItem(menu, 'style', parent);
-       })));
-       this.put('text', new Menu(mxUtils.bind(this, function(menu, parent) {
-               var enabled = this.get('text').enabled;
-               menu.addSeparator(parent);
-               this.addSubmenu('fontFamily', menu, parent);
-               this.addSubmenu('fontSize', menu, parent);
-               this.addMenuItems(menu, ['-', 'bold', 'italic', 'underline', '-'],
-                       parent);
-               this.addSubmenu('alignment', menu, parent);
-               this.addMenuItem(menu, 'wordWrap', parent);
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('textOpacity'), '(%)', '100',
-                       mxConstants.STYLE_TEXT_OPACITY, parent, enabled);
-               menu.addItem(mxResources.get('hide'), null, function() {
-                       graph.toggleCellStyles(mxConstants.STYLE_NOLABEL, false);
-               }, parent, null, enabled);
-       })));
-       this.put('alignment', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('leftAlign'), [mxConstants.STYLE_ALIGN], [
-                       mxConstants.ALIGN_LEFT
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('center'), [mxConstants.STYLE_ALIGN], [
-                       mxConstants.ALIGN_CENTER
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('rightAlign'), [mxConstants.STYLE_ALIGN], [
-                       mxConstants.ALIGN_RIGHT
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('topAlign'), [mxConstants.STYLE_VERTICAL_ALIGN], [
-                       mxConstants.ALIGN_TOP
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('middle'), [mxConstants.STYLE_VERTICAL_ALIGN], [
-                       mxConstants.ALIGN_MIDDLE
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('bottomAlign'), [mxConstants.STYLE_VERTICAL_ALIGN], [
-                       mxConstants.ALIGN_BOTTOM
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.addSubmenu('position', menu, parent);
-               this.addSubmenu('spacing', menu, parent);
-               menu.addSeparator(parent);
-               var enabled = this.get('text').enabled;
-               menu.addItem(mxResources.get('vertical'), null, function() {
-                       graph.toggleCellStyles(mxConstants.STYLE_HORIZONTAL, true);
-               }, parent, null, enabled);
-       })));
-       this.put('position', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('left'), [mxConstants.STYLE_LABEL_POSITION,
-                       mxConstants.STYLE_ALIGN
-               ], [mxConstants.ALIGN_LEFT, mxConstants.ALIGN_RIGHT], null, parent);
-               this.styleChange(menu, mxResources.get('center'), [mxConstants.STYLE_LABEL_POSITION,
-                       mxConstants.STYLE_ALIGN
-               ], [mxConstants.ALIGN_CENTER, mxConstants.ALIGN_CENTER], null, parent);
-               this.styleChange(menu, mxResources.get('right'), [mxConstants.STYLE_LABEL_POSITION,
-                       mxConstants.STYLE_ALIGN
-               ], [mxConstants.ALIGN_RIGHT, mxConstants.ALIGN_LEFT], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('top'), [mxConstants.STYLE_VERTICAL_LABEL_POSITION,
-                       mxConstants.STYLE_VERTICAL_ALIGN
-               ], [mxConstants.ALIGN_TOP, mxConstants.ALIGN_BOTTOM], null, parent);
-               this.styleChange(menu, mxResources.get('middle'), [mxConstants.STYLE_VERTICAL_LABEL_POSITION,
-                       mxConstants.STYLE_VERTICAL_ALIGN
-               ], [mxConstants.ALIGN_MIDDLE, mxConstants.ALIGN_MIDDLE], null, parent);
-               this.styleChange(menu, mxResources.get('bottom'), [mxConstants.STYLE_VERTICAL_LABEL_POSITION,
-                       mxConstants.STYLE_VERTICAL_ALIGN
-               ], [mxConstants.ALIGN_BOTTOM, mxConstants.ALIGN_TOP], null, parent);
-       })));
-       this.put('direction', new Menu(mxUtils.bind(this, function(menu, parent) {
-               menu.addItem(mxResources.get('flipH'), null, function() {
-                       graph.toggleCellStyles(mxConstants.STYLE_FLIPH, false);
-               }, parent);
-               menu.addItem(mxResources.get('flipV'), null, function() {
-                       graph.toggleCellStyles(mxConstants.STYLE_FLIPV, false);
-               }, parent);
-               this.addMenuItems(menu, ['-', 'tilt', 'rotation'], parent);
-       })));
-       this.put('align', new Menu(mxUtils.bind(this, function(menu, parent) {
-               menu.addItem(mxResources.get('leftAlign'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_LEFT);
-               }, parent);
-               menu.addItem(mxResources.get('center'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_CENTER);
-               }, parent);
-               menu.addItem(mxResources.get('rightAlign'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_RIGHT);
-               }, parent);
-               menu.addSeparator(parent);
-               menu.addItem(mxResources.get('topAlign'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_TOP);
-               }, parent);
-               menu.addItem(mxResources.get('middle'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_MIDDLE);
-               }, parent);
-               menu.addItem(mxResources.get('bottomAlign'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_BOTTOM);
-               }, parent);
-       })));
-       this.put('layout', new Menu(mxUtils.bind(this, function(menu, parent) {
-               // menu.addItem(mxResources.get('horizontalTree'), null, mxUtils.bind(this, function()
-               // {
-               //      if (!graph.isSelectionEmpty())
-               //      {
-               //              var layout = new mxCompactTreeLayout(graph, true);
-               //              layout.edgeRouting = false;
-               //              layout.levelDistance = 30;
-               //              this.editorUi.executeLayout(layout, true, true);
-               //      }
-               // }), parent);
-               // menu.addItem(mxResources.get('verticalTree'), null, mxUtils.bind(this, function()
-               // {
-               //      if (!graph.isSelectionEmpty())
-               //      {
-               //              var layout = new mxCompactTreeLayout(graph, false);
-               //              layout.edgeRouting = false;
-               //              layout.levelDistance = 30;
-               //              this.editorUi.executeLayout(layout, true, true);
-               //      }
-               // }), parent);
-               // menu.addSeparator(parent);
-               menu.addItem(mxResources.get('horizontalFlow'), null, mxUtils.bind(this,
-                       function() {
-                               var layout = new mxHierarchicalLayout(graph, mxConstants.DIRECTION_WEST);
-                               this.editorUi.executeLayout(layout, true, true);
-                       }), parent);
-               menu.addItem(mxResources.get('verticalFlow'), null, mxUtils.bind(this,
-                       function() {
-                               var layout = new mxHierarchicalLayout(graph, mxConstants.DIRECTION_NORTH);
-                               this.editorUi.executeLayout(layout, true, true);
-                       }), parent);
-               //menu.addSeparator(parent);
-               // menu.addItem(mxResources.get('organic'), null, mxUtils.bind(this, function()
-               // {
-               //      var layout = new mxFastOrganicLayout(graph);
-               //              this.editorUi.executeLayout(layout, true, true);
-               // }), parent);
-               // menu.addItem(mxResources.get('circle'), null, mxUtils.bind(this, function()
-               // {
-               //      var layout = new mxCircleLayout(graph);
-               //              this.editorUi.executeLayout(layout, true, true, graph.getSelectionCells());
-               // }), parent);
-       })));
-       this.put('navigation', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['home', '-', 'exitGroup', 'enterGroup', '-',
-                       'expand', 'collapse'
-               ], parent);
-       })));
-       this.put('arrange', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['toFront', 'toBack', '-'], parent);
-               //this.addSubmenu('direction', menu, parent);
-               this.addSubmenu('layout', menu, parent);
-               //this.addSubmenu('align', menu, parent);
-               menu.addSeparator(parent);
-               //this.addSubmenu('navigation', menu, parent);
-               this.addMenuItems(menu, ['-', 'group', 'ungroup', 'removeFromGroup'],
-                       parent);
-               //this.addMenuItems(menu, ['-', 'group', 'ungroup', 'removeFromGroup', '-', 'autosize'], parent);
-       })));
-       this.put('view', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['actualSize'], parent);
-               menu.addSeparator();
-               var scales = [0.25, 0.5, 0.75, 1, 2, 4];
-
-               for (var i = 0; i < scales.length; i++) {
-                       (function(scale) {
-                               menu.addItem((scale * 100) + '%', null, function() {
-                                       graph.zoomTo(scale);
-                               }, parent);
-                       })(scales[i]);
-               }
-
-               this.addMenuItems(menu, ['-', 'zoomIn', 'zoomOut', '-', 'fitWindow',
-                       'customZoom', '-', 'fitPage', 'fitPageWidth'
-               ], parent);
-       })));
-       this.put('file', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['new', 'open', '-', 'save', 'saveAs', 'publish',
-                       '-', 'variable', '-', 'import', 'export', '-', 'editFile', 'rename', '-',
-                       'print'
-               ], parent);
-       })));
-       this.put('edit', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['undo', 'redo', '-', 'cut', 'copy', 'paste',
-                       'delete', '-', 'duplicate', '-',
-                       'selectVertices', 'selectEdges', 'selectAll'
-               ]);
-       })));
-       this.put('help', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['help', '-', 'about']);
-       })));
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-Menus.prototype.put = function(name, menu) {
-       this.menus[name] = menu;
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-Menus.prototype.get = function(name) {
-       return this.menus[name];
-};
-
-/**
- * Adds the given submenu.
- */
-Menus.prototype.addSubmenu = function(name, menu, parent) {
-       var enabled = this.get(name).enabled;
-
-       if (menu.showDisabled || enabled) {
-               var submenu = menu.addItem(mxResources.get(name), null, null, parent, null,
-                       enabled);
-               this.addMenu(name, menu, submenu);
-       }
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-Menus.prototype.addMenu = function(name, popupMenu, parent) {
-       var menu = this.get(name);
-
-       if (menu != null && (popupMenu.showDisabled || menu.enabled)) {
-               this.get(name).execute(popupMenu, parent);
-       }
-};
-
-/**
- * Adds a style change item to the given menu.
- */
-Menus.prototype.styleChange = function(menu, label, keys, values, sprite,
-       parent) {
-       return menu.addItem(label, null, mxUtils.bind(this, function() {
-               var graph = this.editorUi.editor.graph;
-
-               graph.getModel().beginUpdate();
-               try {
-                       for (var i = 0; i < keys.length; i++) {
-                               graph.setCellStyles(keys[i], values[i]);
-                       }
-               } finally {
-                       graph.getModel().endUpdate();
-               }
-       }), parent, sprite);
-};
-
-/**
- * Adds a style change item with a prompt to the given menu.
- */
-Menus.prototype.promptChange = function(menu, label, hint, defaultValue, key,
-       parent, enabled) {
-       return menu.addItem(label, null, mxUtils.bind(this, function() {
-               var graph = this.editorUi.editor.graph;
-               var value = defaultValue;
-               var state = graph.getView().getState(graph.getSelectionCell());
-
-               if (state != null) {
-                       value = state.style[key] || value;
-               }
-
-               value = mxUtils.prompt(mxResources.get('enterValue') + ((hint.length > 0) ?
-                       (' ' + hint) : ''), value);
-
-               if (value != null && value.length > 0) {
-                       graph.setCellStyles(key, value);
-               }
-       }), parent, null, enabled);
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-Menus.prototype.addMenuItem = function(menu, key, parent) {
-       var action = this.editorUi.actions.get(key);
-
-       if (action != null && (menu.showDisabled || action.enabled)) {
-               var item = menu.addItem(action.label, null, action.funct, parent, null,
-                       action.enabled);
-
-               // Adds checkmark image
-               if (action.toggleAction && action.isSelected()) {
-                       this.addCheckmark(item);
-               }
-
-               this.addShortcut(item, action);
-
-               return item;
-       }
-
-       return null;
-};
-
-/**
- * Adds a checkmark to the given menuitem.
- */
-Menus.prototype.addShortcut = function(item, action) {
-       if (action.shortcut != null) {
-               var td = item.firstChild.nextSibling.nextSibling;
-               var span = document.createElement('span');
-               span.style.color = 'gray';
-               mxUtils.write(span, action.shortcut);
-               td.appendChild(span);
-       }
-};
-
-/**
- * Adds a checkmark to the given menuitem.
- */
-Menus.prototype.addCheckmark = function(item) {
-       var td = item.firstChild.nextSibling;
-       td.style.backgroundImage = 'url(' + IMAGE_PATH + '/checkmark.gif)';
-       td.style.backgroundRepeat = 'no-repeat';
-       td.style.backgroundPosition = '2px 50%';
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-Menus.prototype.addMenuItems = function(menu, keys, parent) {
-       for (var i = 0; i < keys.length; i++) {
-               if (keys[i] == '-') {
-                       menu.addSeparator(parent);
-               } else {
-                       this.addMenuItem(menu, keys[i], parent);
-               }
-       }
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-Menus.prototype.createPopupMenu = function(menu, cell, evt) {
-       var graph = this.editorUi.editor.graph;
-       menu.smartSeparators = true;
-
-       if (graph.isSelectionEmpty()) {
-               this.addMenuItems(menu, ['undo', 'redo', '-', 'paste', '-']);
-       } else {
-               this.addMenuItems(menu, ['delete', '-', 'cut', 'copy', '-', 'duplicate']);
-
-               if (graph.getSelectionCount() == 1 && graph.getModel().isEdge(graph.getSelectionCell())) {
-                       this.addMenuItems(menu, ['setAsDefaultEdge']);
-               }
-
-               menu.addSeparator();
-       }
-
-       if (graph.getSelectionCount() > 0) {
-               this.addMenuItems(menu, ['toFront', 'toBack', '-']);
-
-               if (graph.getModel().isEdge(graph.getSelectionCell())) {
-                       var isWaypoint = false;
-                       var cell = graph.getSelectionCell();
-
-                       if (cell != null && graph.getModel().isEdge(cell)) {
-                               var handler = graph.selectionCellsHandler.getHandler(cell);
-
-                               if (handler instanceof mxEdgeHandler && handler.bends != null && handler.bends
-                                       .length > 2) {
-                                       var index = handler.getHandleForEvent(new mxMouseEvent(evt));
-
-                                       // Configures removeWaypoint action before execution
-                                       var rmWaypointAction = this.editorUi.actions.get('removeWaypoint');
-                                       rmWaypointAction.handler = handler;
-                                       rmWaypointAction.index = index;
-
-                                       isWaypoint = index > 0 && index < handler.bends.length;
-                               }
-                       }
-
-                       this.addMenuItems(menu, ['-', (isWaypoint) ? 'removeWaypoint' :
-                               'addWaypoint'
-                       ]);
-               } else if (graph.getSelectionCount() > 1) {
-                       menu.addSeparator();
-                       this.addMenuItems(menu, ['group']);
-               }
-
-               menu.addSeparator();
-
-               if (graph.getSelectionCount() == 1) {
-                       var link = graph.getLinkForCell(graph.getSelectionCell());
-
-                       if (link != null) {
-                               this.addMenuItems(menu, ['openLink']);
-                       }
-               }
-       } else {
-               this.addMenuItems(menu, ['-', 'selectVertices', 'selectEdges', '-',
-                       'selectAll'
-               ]);
-       }
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-Menus.prototype.createMenubar = function(container) {
-       var menubar = new Menubar(this.editorUi, container);
-       // var menus = ['file', 'edit', 'view', 'format', 'text', 'arrange',
-       //      'help'
-       // ];
-       var menus = ['file', 'edit', 'view', 'format', 'text', 'arrange'];
-       for (var i = 0; i < menus.length; i++) {
-               menubar.addMenu(mxResources.get(menus[i]), this.get(menus[i]).funct);
-       }
-
-       return menubar;
-};
-
-/**
- * Construcs a new menubar for the given editor.
- */
-function Menubar(editorUi, container) {
-       this.editorUi = editorUi;
-       this.container = container;
-
-       // Global handler to hide the current menu
-       mxEvent.addGestureListeners(document, mxUtils.bind(this, function(evt) {
-               this.hideMenu();
-       }));
-};
-
-/**
- * Adds the menubar elements.
- */
-Menubar.prototype.hideMenu = function() {
-       if (this.currentMenu != null) {
-               this.currentMenu.hideMenu();
-       }
-};
-
-/**
- * Adds a submenu to this menubar.
- */
-Menubar.prototype.addMenu = function(label, funct) {
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geItem';
-       mxUtils.write(elt, label);
-
-       this.addMenuHandler(elt, funct);
-       this.container.appendChild(elt);
-
-       return elt;
-};
-
-/**
- * Adds a handler for showing a menu in the given element.
- */
-Menubar.prototype.addMenuHandler = function(elt, funct) {
-       if (funct != null) {
-               var show = true;
-
-               var clickHandler = mxUtils.bind(this, function(evt) {
-                       if (show && elt.enabled == null || elt.enabled) {
-                               this.editorUi.editor.graph.panningHandler.hideMenu();
-                               var menu = new mxPopupMenu(funct);
-                               menu.div.className += ' geMenubarMenu';
-                               menu.smartSeparators = true;
-                               menu.showDisabled = true;
-                               menu.autoExpand = true;
-
-                               // Disables autoexpand and destroys menu when hidden
-                               menu.hideMenu = mxUtils.bind(this, function() {
-                                       mxPopupMenu.prototype.hideMenu.apply(menu, arguments);
-                                       menu.destroy();
-                                       this.currentMenu = null;
-                                       this.currentElt = null;
-                               });
-
-                               // Added width of the page-sidebar
-                               var x = elt.offsetLeft + document.getElementById('page-sidebar').offsetWidth +
-                                       22;
-                               // Added static height of the page-navbar
-                               var y = elt.offsetTop + elt.offsetHeight + 140;
-
-                               menu.popup(x, y, null, evt);
-
-                               //menu.popup(elt.offsetLeft + 4, elt.offsetTop + elt.offsetHeight + 4, null, evt);
-                               this.currentMenu = menu;
-                               this.currentElt = elt;
-                       }
-
-                       show = true;
-                       mxEvent.consume(evt);
-               });
-
-               // Shows menu automatically while in expanded state
-               mxEvent.addListener(elt, 'mousemove', mxUtils.bind(this, function(evt) {
-                       if (this.currentMenu != null && this.currentElt != elt) {
-                               this.hideMenu();
-                               clickHandler(evt);
-                       }
-               }));
-
-               // Hides menu if already showing
-               mxEvent.addListener(elt, 'mousedown', mxUtils.bind(this, function() {
-                       show = this.currentElt != elt;
-               }));
-
-               mxEvent.addListener(elt, 'click', clickHandler);
-       }
-};
-
-/**
- * Constructs a new action for the given parameters.
- */
-function Menu(funct, enabled) {
-       mxEventSource.call(this);
-       this.funct = funct;
-       this.enabled = (enabled != null) ? enabled : true;
-};
-
-// Menu inherits from mxEventSource
-mxUtils.extend(Menu, mxEventSource);
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Menu.prototype.setEnabled = function(value) {
-       if (this.enabled != value) {
-               this.enabled = value;
-               this.fireEvent(new mxEventObject('stateChanged'));
-       }
-};
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Menu.prototype.execute = function(menu, parent) {
-       this.funct(menu, parent);
-};
+var _0x67c3=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x6D\x65\x6E\x75\x73","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x56\x65\x72\x64\x61\x6E\x61","\x54\x69\x6D\x65\x73\x20\x4E\x65\x77\x20\x52\x6F\x6D\x61\x6E","\x47\x61\x72\x61\x6D\x6F\x6E\x64","\x43\x6F\x6D\x69\x63\x20\x53\x61\x6E\x73\x20\x4D\x53","\x43\x6F\x75\x72\x69\x65\x72\x20\x4E\x65\x77","\x47\x65\x6F\x72\x67\x69\x61","\x4C\x75\x63\x69\x64\x61\x20\x43\x6F\x6E\x73\x6F\x6C\x65","\x54\x61\x68\x6F\x6D\x61","\x6C\x65\x6E\x67\x74\x68","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x73\x74\x79\x6C\x65\x43\x68\x61\x6E\x67\x65","\x73\x74\x79\x6C\x65","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x63\x75\x73\x74\x6F\x6D","\x67\x65\x74","","\x70\x72\x6F\x6D\x70\x74\x43\x68\x61\x6E\x67\x65","\x62\x69\x6E\x64","\x70\x75\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x28\x70\x74\x29","\x31\x32","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x70\x78","\x53\x54\x59\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x28\x70\x78\x29","\x31","\x6C\x69\x6E\x65","\x73\x74\x72\x61\x69\x67\x68\x74","\x53\x54\x59\x4C\x45\x5F\x45\x44\x47\x45","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x65\x6C\x62\x6F\x77\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6D\x61\x6E\x75\x61\x6C","\x73\x65\x67\x6D\x65\x6E\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x61\x75\x74\x6F\x6D\x61\x74\x69\x63","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x63\x6C\x61\x73\x73\x69\x63","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x41\x52\x52\x4F\x57","\x41\x52\x52\x4F\x57\x5F\x43\x4C\x41\x53\x53\x49\x43","\x6F\x70\x65\x6E\x41\x72\x72\x6F\x77","\x41\x52\x52\x4F\x57\x5F\x4F\x50\x45\x4E","\x62\x6C\x6F\x63\x6B","\x41\x52\x52\x4F\x57\x5F\x42\x4C\x4F\x43\x4B","\x6F\x76\x61\x6C","\x41\x52\x52\x4F\x57\x5F\x4F\x56\x41\x4C","\x64\x69\x61\x6D\x6F\x6E\x64","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44","\x64\x69\x61\x6D\x6F\x6E\x64\x54\x68\x69\x6E","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44\x5F\x54\x48\x49\x4E","\x6E\x6F\x6E\x65","\x4E\x4F\x4E\x45","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x65\x6E\x64\x46\x69\x6C\x6C","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x61\x64\x64\x49\x74\x65\x6D","\x73\x69\x7A\x65","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x41\x52\x52\x4F\x57","\x73\x74\x61\x72\x74\x46\x69\x6C\x6C","\x73\x70\x61\x63\x69\x6E\x67","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x68\x61\x64\x6F\x77","\x61\x63\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x74\x6F\x70","\x30","\x72\x69\x67\x68\x74","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x67\x6C\x6F\x62\x61\x6C","\x70\x65\x72\x69\x6D\x65\x74\x65\x72","\x73\x6F\x75\x72\x63\x65\x53\x70\x61\x63\x69\x6E\x67","\x74\x61\x72\x67\x65\x74\x53\x70\x61\x63\x69\x6E\x67","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D","\x74\x65\x78\x74","\x61\x64\x64\x53\x75\x62\x6D\x65\x6E\x75","\x2D","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D\x73","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x77\x6F\x72\x64\x57\x72\x61\x70","\x74\x65\x78\x74\x4F\x70\x61\x63\x69\x74\x79","\x28\x25\x29","\x31\x30\x30","\x68\x69\x64\x65","\x6C\x65\x66\x74\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x4C\x45\x46\x54","\x63\x65\x6E\x74\x65\x72","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x72\x69\x67\x68\x74\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x74\x6F\x70\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x54\x4F\x50","\x6D\x69\x64\x64\x6C\x65","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x62\x6F\x74\x74\x6F\x6D\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x74\x69\x6C\x74","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x61\x6C\x69\x67\x6E","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73","\x6C\x61\x79\x6F\x75\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x46\x6C\x6F\x77","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x76\x65\x72\x74\x69\x63\x61\x6C\x46\x6C\x6F\x77","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x61\x72\x72\x61\x6E\x67\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x76\x69\x65\x77","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x25","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x66\x69\x74\x50\x61\x67\x65","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x66\x69\x6C\x65","\x6E\x65\x77","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x41\x73","\x70\x75\x62\x6C\x69\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x65\x64\x69\x74\x46\x69\x6C\x65","\x72\x65\x6E\x61\x6D\x65","\x70\x72\x69\x6E\x74","\x65\x64\x69\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x75\x74","\x63\x6F\x70\x79","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x68\x65\x6C\x70","\x61\x62\x6F\x75\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x65\x78\x65\x63\x75\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x20","\x70\x72\x6F\x6D\x70\x74","\x6C\x61\x62\x65\x6C","\x66\x75\x6E\x63\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x61\x64\x64\x43\x68\x65\x63\x6B\x6D\x61\x72\x6B","\x61\x64\x64\x53\x68\x6F\x72\x74\x63\x75\x74","\x73\x68\x6F\x72\x74\x63\x75\x74","\x73\x70\x61\x6E","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6F\x6C\x6F\x72","\x67\x72\x61\x79","\x77\x72\x69\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x32\x70\x78\x20\x35\x30\x25","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x73\x6D\x61\x72\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72\x73","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x69\x73\x45\x64\x67\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x62\x65\x6E\x64\x73","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x69\x76","\x20\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x4D\x65\x6E\x75","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x61\x70\x70\x6C\x79","\x64\x65\x73\x74\x72\x6F\x79","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x2D\x73\x69\x64\x65\x62\x61\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6C\x69\x63\x6B","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74"];Menus=function(_0xc8efx1){this[_0x67c3[0]]=_0xc8efx1;this[_0x67c3[1]]= new Object();this[_0x67c3[2]](); new Image()[_0x67c3[3]]=IMAGE_PATH+_0x67c3[4]};Menus[_0x67c3[5]][_0x67c3[2]]=function(){var _0xc8efx2=this[_0x67c3[0]][_0x67c3[7]][_0x67c3[6]];this[_0x67c3[30]](_0x67c3[8], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){var _0xc8efx5=[_0x67c3[9],_0x67c3[10],_0x67c3[11],_0x67c3[12],_0x67c3[13],_0x67c3[14],_0x67c3[15],_0x67c3[16],_0x67c3[17]];for(var _0xc8efx6=0;_0xc8efx6<_0xc8efx5[_0x67c3[18]];_0xc8efx6++){var _0xc8efx7=this[_0x67c3[20]](_0xc8efx3,_0xc8efx5[_0xc8efx6],[mxConstants[_0x67c3[19]]],[_0xc8efx5[_0xc8efx6]],null,_0xc8efx4);_0xc8efx7[_0x67c3[23]][_0x67c3[22]][_0x67c3[21]][_0x67c3[8]]=_0xc8efx5[_0xc8efx6]};_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[25]),_0x67c3[27],mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[31], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){var _0xc8efx8=[6,8,9,10,11,12,14,18,24,36,48,72];for(var _0xc8efx6=0;_0xc8efx6<_0xc8efx8[_0x67c3[18]];_0xc8efx6++){this[_0x67c3[20]](_0xc8efx3,_0xc8efx8[_0xc8efx6],[mxConstants[_0x67c3[32]]],[_0xc8efx8[_0xc8efx6]],null,_0xc8efx4)};_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[25]),_0x67c3[33],_0x67c3[34],mxConstants.STYLE_FONTSIZE,_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[35], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){var _0xc8efx8=[1,2,3,4,8,12,16,24];for(var _0xc8efx6=0;_0xc8efx6<_0xc8efx8[_0x67c3[18]];_0xc8efx6++){this[_0x67c3[20]](_0xc8efx3,_0xc8efx8[_0xc8efx6]+_0x67c3[36],[mxConstants[_0x67c3[37]]],[_0xc8efx8[_0xc8efx6]],null,_0xc8efx4)};_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[25]),_0x67c3[38],_0x67c3[39],mxConstants.STYLE_STROKEWIDTH,_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[40], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[41]),[mxConstants[_0x67c3[42]]],[null],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[43]),[mxConstants[_0x67c3[42]]],[_0x67c3[44]],null,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[45]),[mxConstants[_0x67c3[42]],mxConstants[_0x67c3[46]]],[_0x67c3[47],_0x67c3[45]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[48]),[mxConstants[_0x67c3[42]],mxConstants[_0x67c3[46]]],[_0x67c3[47],_0x67c3[48]],null,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[49]),[mxConstants[_0x67c3[42]]],[_0x67c3[50]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[51]),[mxConstants[_0x67c3[42]]],[_0x67c3[52]],null,_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[53], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[54]),[mxConstants[_0x67c3[55]]],[mxConstants[_0x67c3[56]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[57]),[mxConstants[_0x67c3[55]]],[mxConstants[_0x67c3[58]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[59]),[mxConstants[_0x67c3[55]]],[mxConstants[_0x67c3[60]]],null,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[61]),[mxConstants[_0x67c3[55]]],[mxConstants[_0x67c3[62]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[63]),[mxConstants[_0x67c3[55]]],[mxConstants[_0x67c3[64]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[65]),[mxConstants[_0x67c3[55]]],[mxConstants[_0x67c3[66]]],null,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[67]),[mxConstants[_0x67c3[55]]],[mxConstants[_0x67c3[68]]],null,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[69]),null,function(){_0xc8efx2[_0x67c3[71]](_0x67c3[70],true)},_0xc8efx4,null,true);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[73]),_0x67c3[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[74], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[54]),[mxConstants[_0x67c3[75]]],[mxConstants[_0x67c3[56]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[57]),[mxConstants[_0x67c3[75]]],[mxConstants[_0x67c3[58]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[59]),[mxConstants[_0x67c3[75]]],[mxConstants[_0x67c3[60]]],null,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[61]),[mxConstants[_0x67c3[75]]],[mxConstants[_0x67c3[62]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[63]),[mxConstants[_0x67c3[75]]],[mxConstants[_0x67c3[64]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[65]),[mxConstants[_0x67c3[75]]],[mxConstants[_0x67c3[66]]],null,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[67]),[mxConstants[_0x67c3[75]]],[mxConstants[_0x67c3[68]]],null,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[69]),null,function(){_0xc8efx2[_0x67c3[71]](_0x67c3[76],true)},_0xc8efx4,null,true);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[73]),_0x67c3[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[77], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){var _0xc8efx9=this[_0x67c3[0]][_0x67c3[80]][_0x67c3[26]](_0x67c3[79])[_0x67c3[78]];var _0xc8efxa=this[_0x67c3[26]](_0x67c3[40])[_0x67c3[78]];if(_0xc8efx9||_0xc8efx3[_0x67c3[81]]){this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[82]),_0x67c3[38],_0x67c3[83],mxConstants.STYLE_SPACING_TOP,_0xc8efx4,_0xc8efx9);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[84]),_0x67c3[38],_0x67c3[83],mxConstants.STYLE_SPACING_RIGHT,_0xc8efx4,_0xc8efx9);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[85]),_0x67c3[38],_0x67c3[83],mxConstants.STYLE_SPACING_BOTTOM,_0xc8efx4,_0xc8efx9);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[86]),_0x67c3[38],_0x67c3[83],mxConstants.STYLE_SPACING_LEFT,_0xc8efx4,_0xc8efx9);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[87]),_0x67c3[38],_0x67c3[83],mxConstants.STYLE_SPACING,_0xc8efx4,_0xc8efx9);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[88]),_0x67c3[38],_0x67c3[83],mxConstants.STYLE_PERIMETER_SPACING,_0xc8efx4,_0xc8efx9)};if(_0xc8efxa||_0xc8efx3[_0x67c3[81]]){_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[89]),_0x67c3[38],_0x67c3[83],mxConstants.STYLE_SOURCE_PERIMETER_SPACING,_0xc8efx4,_0xc8efxa);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[90]),_0x67c3[38],_0x67c3[83],mxConstants.STYLE_TARGET_PERIMETER_SPACING,_0xc8efx4,_0xc8efxa)}})));this[_0x67c3[30]](_0x67c3[91], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){this[_0x67c3[92]](_0xc8efx3,_0x67c3[21],_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[93], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){var _0xc8efxb=this[_0x67c3[26]](_0x67c3[93])[_0x67c3[78]];_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[94]](_0x67c3[8],_0xc8efx3,_0xc8efx4);this[_0x67c3[94]](_0x67c3[31],_0xc8efx3,_0xc8efx4);this[_0x67c3[99]](_0xc8efx3,[_0x67c3[95],_0x67c3[96],_0x67c3[97],_0x67c3[98],_0x67c3[95]],_0xc8efx4);this[_0x67c3[94]](_0x67c3[100],_0xc8efx3,_0xc8efx4);this[_0x67c3[92]](_0xc8efx3,_0x67c3[101],_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[28]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[102]),_0x67c3[103],_0x67c3[104],mxConstants.STYLE_TEXT_OPACITY,_0xc8efx4,_0xc8efxb);_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[105]),null,function(){_0xc8efx2[_0x67c3[71]](mxConstants.STYLE_NOLABEL,false)},_0xc8efx4,null,_0xc8efxb)})));this[_0x67c3[30]](_0x67c3[100], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[106]),[mxConstants[_0x67c3[107]]],[mxConstants[_0x67c3[108]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[109]),[mxConstants[_0x67c3[107]]],[mxConstants[_0x67c3[110]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[111]),[mxConstants[_0x67c3[107]]],[mxConstants[_0x67c3[112]]],null,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[113]),[mxConstants[_0x67c3[114]]],[mxConstants[_0x67c3[115]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[116]),[mxConstants[_0x67c3[114]]],[mxConstants[_0x67c3[117]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[118]),[mxConstants[_0x67c3[114]]],[mxConstants[_0x67c3[119]]],null,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[94]](_0x67c3[120],_0xc8efx3,_0xc8efx4);this[_0x67c3[94]](_0x67c3[77],_0xc8efx3,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);var _0xc8efxb=this[_0x67c3[26]](_0x67c3[93])[_0x67c3[78]];_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[48]),null,function(){_0xc8efx2[_0x67c3[71]](mxConstants.STYLE_HORIZONTAL,true)},_0xc8efx4,null,_0xc8efxb)})));this[_0x67c3[30]](_0x67c3[120], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[86]),[mxConstants[_0x67c3[121]],mxConstants[_0x67c3[107]]],[mxConstants[_0x67c3[108]],mxConstants[_0x67c3[112]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[109]),[mxConstants[_0x67c3[121]],mxConstants[_0x67c3[107]]],[mxConstants[_0x67c3[110]],mxConstants[_0x67c3[110]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[84]),[mxConstants[_0x67c3[121]],mxConstants[_0x67c3[107]]],[mxConstants[_0x67c3[112]],mxConstants[_0x67c3[108]]],null,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[82]),[mxConstants[_0x67c3[122]],mxConstants[_0x67c3[114]]],[mxConstants[_0x67c3[115]],mxConstants[_0x67c3[119]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[116]),[mxConstants[_0x67c3[122]],mxConstants[_0x67c3[114]]],[mxConstants[_0x67c3[117]],mxConstants[_0x67c3[117]]],null,_0xc8efx4);this[_0x67c3[20]](_0xc8efx3,mxResources[_0x67c3[26]](_0x67c3[85]),[mxConstants[_0x67c3[122]],mxConstants[_0x67c3[114]]],[mxConstants[_0x67c3[119]],mxConstants[_0x67c3[115]]],null,_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[123], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[124]),null,function(){_0xc8efx2[_0x67c3[71]](mxConstants.STYLE_FLIPH,false)},_0xc8efx4);_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[125]),null,function(){_0xc8efx2[_0x67c3[71]](mxConstants.STYLE_FLIPV,false)},_0xc8efx4);this[_0x67c3[99]](_0xc8efx3,[_0x67c3[95],_0x67c3[126],_0x67c3[127]],_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[128], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[106]),null,function(){_0xc8efx2[_0x67c3[129]](mxConstants.ALIGN_LEFT)},_0xc8efx4);_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[109]),null,function(){_0xc8efx2[_0x67c3[129]](mxConstants.ALIGN_CENTER)},_0xc8efx4);_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[111]),null,function(){_0xc8efx2[_0x67c3[129]](mxConstants.ALIGN_RIGHT)},_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[113]),null,function(){_0xc8efx2[_0x67c3[129]](mxConstants.ALIGN_TOP)},_0xc8efx4);_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[116]),null,function(){_0xc8efx2[_0x67c3[129]](mxConstants.ALIGN_MIDDLE)},_0xc8efx4);_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[118]),null,function(){_0xc8efx2[_0x67c3[129]](mxConstants.ALIGN_BOTTOM)},_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[130], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[131]),null,mxUtils[_0x67c3[29]](this,function(){var _0xc8efxc= new mxHierarchicalLayout(_0xc8efx2,mxConstants.DIRECTION_WEST);this[_0x67c3[0]][_0x67c3[132]](_0xc8efxc,true,true)}),_0xc8efx4);_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0x67c3[133]),null,mxUtils[_0x67c3[29]](this,function(){var _0xc8efxc= new mxHierarchicalLayout(_0xc8efx2,mxConstants.DIRECTION_NORTH);this[_0x67c3[0]][_0x67c3[132]](_0xc8efxc,true,true)}),_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[134], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){this[_0x67c3[99]](_0xc8efx3,[_0x67c3[135],_0x67c3[95],_0x67c3[136],_0x67c3[137],_0x67c3[95],_0x67c3[138],_0x67c3[139]],_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[140], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){this[_0x67c3[99]](_0xc8efx3,[_0x67c3[141],_0x67c3[142],_0x67c3[95]],_0xc8efx4);this[_0x67c3[94]](_0x67c3[130],_0xc8efx3,_0xc8efx4);_0xc8efx3[_0x67c3[24]](_0xc8efx4);this[_0x67c3[99]](_0xc8efx3,[_0x67c3[95],_0x67c3[143],_0x67c3[144],_0x67c3[145]],_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[146], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){this[_0x67c3[99]](_0xc8efx3,[_0x67c3[147]],_0xc8efx4);_0xc8efx3[_0x67c3[24]]();var _0xc8efxd=[0.25,0.5,0.75,1,2,4];for(var _0xc8efx6=0;_0xc8efx6<_0xc8efxd[_0x67c3[18]];_0xc8efx6++){(function(_0xc8efxe){_0xc8efx3[_0x67c3[72]]((_0xc8efxe*100)+_0x67c3[148],null,function(){_0xc8efx2[_0x67c3[149]](_0xc8efxe)},_0xc8efx4)})(_0xc8efxd[_0xc8efx6])};this[_0x67c3[99]](_0xc8efx3,[_0x67c3[95],_0x67c3[150],_0x67c3[151],_0x67c3[95],_0x67c3[152],_0x67c3[153],_0x67c3[95],_0x67c3[154],_0x67c3[155]],_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[156], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){this[_0x67c3[99]](_0xc8efx3,[_0x67c3[157],_0x67c3[158],_0x67c3[95],_0x67c3[159],_0x67c3[160],_0x67c3[161],_0x67c3[95],_0x67c3[162],_0x67c3[95],_0x67c3[163],_0x67c3[164],_0x67c3[95],_0x67c3[165],_0x67c3[166],_0x67c3[95],_0x67c3[167]],_0xc8efx4)})));this[_0x67c3[30]](_0x67c3[168], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){this[_0x67c3[99]](_0xc8efx3,[_0x67c3[169],_0x67c3[170],_0x67c3[95],_0x67c3[171],_0x67c3[172],_0x67c3[173],_0x67c3[174],_0x67c3[95],_0x67c3[175],_0x67c3[95],_0x67c3[176],_0x67c3[177],_0x67c3[178]])})));this[_0x67c3[30]](_0x67c3[179], new Menu(mxUtils[_0x67c3[29]](this,function(_0xc8efx3,_0xc8efx4){this[_0x67c3[99]](_0xc8efx3,[_0x67c3[179],_0x67c3[95],_0x67c3[180]])})))};Menus[_0x67c3[5]][_0x67c3[30]]=function(_0xc8efxf,_0xc8efx3){this[_0x67c3[1]][_0xc8efxf]=_0xc8efx3};Menus[_0x67c3[5]][_0x67c3[26]]=function(_0xc8efxf){return this[_0x67c3[1]][_0xc8efxf]};Menus[_0x67c3[5]][_0x67c3[94]]=function(_0xc8efxf,_0xc8efx3,_0xc8efx4){var _0xc8efxb=this[_0x67c3[26]](_0xc8efxf)[_0x67c3[78]];if(_0xc8efx3[_0x67c3[81]]||_0xc8efxb){var _0xc8efx10=_0xc8efx3[_0x67c3[72]](mxResources[_0x67c3[26]](_0xc8efxf),null,null,_0xc8efx4,null,_0xc8efxb);this[_0x67c3[181]](_0xc8efxf,_0xc8efx3,_0xc8efx10)}};Menus[_0x67c3[5]][_0x67c3[181]]=function(_0xc8efxf,_0xc8efx11,_0xc8efx4){var _0xc8efx3=this[_0x67c3[26]](_0xc8efxf);if(_0xc8efx3!=null&&(_0xc8efx11[_0x67c3[81]]||_0xc8efx3[_0x67c3[78]])){this[_0x67c3[26]](_0xc8efxf)[_0x67c3[182]](_0xc8efx11,_0xc8efx4)}};Menus[_0x67c3[5]][_0x67c3[20]]=function(_0xc8efx3,_0xc8efx12,_0xc8efx13,_0xc8efx14,_0xc8efx15,_0xc8efx4){return _0xc8efx3[_0x67c3[72]](_0xc8efx12,null,mxUtils[_0x67c3[29]](this,function(){var _0xc8efx2=this[_0x67c3[0]][_0x67c3[7]][_0x67c3[6]];_0xc8efx2[_0x67c3[184]]()[_0x67c3[183]]();try{for(var _0xc8efx6=0;_0xc8efx6<_0xc8efx13[_0x67c3[18]];_0xc8efx6++){_0xc8efx2[_0x67c3[185]](_0xc8efx13[_0xc8efx6],_0xc8efx14[_0xc8efx6])}}finally{_0xc8efx2[_0x67c3[184]]()[_0x67c3[186]]()}}),_0xc8efx4,_0xc8efx15)};Menus[_0x67c3[5]][_0x67c3[28]]=function(_0xc8efx3,_0xc8efx12,_0xc8efx16,_0xc8efx17,_0xc8efx18,_0xc8efx4,_0xc8efxb){return _0xc8efx3[_0x67c3[72]](_0xc8efx12,null,mxUtils[_0x67c3[29]](this,function(){var _0xc8efx2=this[_0x67c3[0]][_0x67c3[7]][_0x67c3[6]];var _0xc8efx19=_0xc8efx17;var _0xc8efx1a=_0xc8efx2[_0x67c3[189]]()[_0x67c3[188]](_0xc8efx2[_0x67c3[187]]());if(_0xc8efx1a!=null){_0xc8efx19=_0xc8efx1a[_0x67c3[21]][_0xc8efx18]||_0xc8efx19};_0xc8efx19=mxUtils[_0x67c3[192]](mxResources[_0x67c3[26]](_0x67c3[190])+((_0xc8efx16[_0x67c3[18]]>0)?(_0x67c3[191]+_0xc8efx16):_0x67c3[27]),_0xc8efx19);if(_0xc8efx19!=null&&_0xc8efx19[_0x67c3[18]]>0){_0xc8efx2[_0x67c3[185]](_0xc8efx18,_0xc8efx19)}}),_0xc8efx4,null,_0xc8efxb)};Menus[_0x67c3[5]][_0x67c3[92]]=function(_0xc8efx3,_0xc8efx18,_0xc8efx4){var _0xc8efx1b=this[_0x67c3[0]][_0x67c3[80]][_0x67c3[26]](_0xc8efx18);if(_0xc8efx1b!=null&&(_0xc8efx3[_0x67c3[81]]||_0xc8efx1b[_0x67c3[78]])){var _0xc8efx1c=_0xc8efx3[_0x67c3[72]](_0xc8efx1b[_0x67c3[193]],null,_0xc8efx1b[_0x67c3[194]],_0xc8efx4,null,_0xc8efx1b[_0x67c3[78]]);if(_0xc8efx1b[_0x67c3[195]]&&_0xc8efx1b[_0x67c3[196]]()){this[_0x67c3[197]](_0xc8efx1c)};this[_0x67c3[198]](_0xc8efx1c,_0xc8efx1b);return _0xc8efx1c};return null};Menus[_0x67c3[5]][_0x67c3[198]]=function(_0xc8efx1c,_0xc8efx1b){if(_0xc8efx1b[_0x67c3[199]]!=null){var _0xc8efx1d=_0xc8efx1c[_0x67c3[23]][_0x67c3[22]][_0x67c3[22]];var _0xc8efx1e=document[_0x67c3[201]](_0x67c3[200]);_0xc8efx1e[_0x67c3[21]][_0x67c3[202]]=_0x67c3[203];mxUtils[_0x67c3[204]](_0xc8efx1e,_0xc8efx1b[_0x67c3[199]]);_0xc8efx1d[_0x67c3[205]](_0xc8efx1e)}};Menus[_0x67c3[5]][_0x67c3[197]]=function(_0xc8efx1c){var _0xc8efx1d=_0xc8efx1c[_0x67c3[23]][_0x67c3[22]];_0xc8efx1d[_0x67c3[21]][_0x67c3[206]]=_0x67c3[207]+IMAGE_PATH+_0x67c3[208];_0xc8efx1d[_0x67c3[21]][_0x67c3[209]]=_0x67c3[210];_0xc8efx1d[_0x67c3[21]][_0x67c3[211]]=_0x67c3[212]};Menus[_0x67c3[5]][_0x67c3[99]]=function(_0xc8efx3,_0xc8efx13,_0xc8efx4){for(var _0xc8efx6=0;_0xc8efx6<_0xc8efx13[_0x67c3[18]];_0xc8efx6++){if(_0xc8efx13[_0xc8efx6]==_0x67c3[95]){_0xc8efx3[_0x67c3[24]](_0xc8efx4)}else {this[_0x67c3[92]](_0xc8efx3,_0xc8efx13[_0xc8efx6],_0xc8efx4)}}};Menus[_0x67c3[5]][_0x67c3[213]]=function(_0xc8efx3,_0xc8efx1f,_0xc8efx20){var _0xc8efx2=this[_0x67c3[0]][_0x67c3[7]][_0x67c3[6]];_0xc8efx3[_0x67c3[214]]=true;if(_0xc8efx2[_0x67c3[215]]()){this[_0x67c3[99]](_0xc8efx3,[_0x67c3[169],_0x67c3[170],_0x67c3[95],_0x67c3[173],_0x67c3[95]])}else {this[_0x67c3[99]](_0xc8efx3,[_0x67c3[174],_0x67c3[95],_0x67c3[171],_0x67c3[172],_0x67c3[95],_0x67c3[175]]);if(_0xc8efx2[_0x67c3[216]]()==1&&_0xc8efx2[_0x67c3[184]]()[_0x67c3[217]](_0xc8efx2[_0x67c3[187]]())){this[_0x67c3[99]](_0xc8efx3,[_0x67c3[218]])};_0xc8efx3[_0x67c3[24]]()};if(_0xc8efx2[_0x67c3[216]]()>0){this[_0x67c3[99]](_0xc8efx3,[_0x67c3[141],_0x67c3[142],_0x67c3[95]]);if(_0xc8efx2[_0x67c3[184]]()[_0x67c3[217]](_0xc8efx2[_0x67c3[187]]())){var _0xc8efx21=false;var _0xc8efx1f=_0xc8efx2[_0x67c3[187]]();if(_0xc8efx1f!=null&&_0xc8efx2[_0x67c3[184]]()[_0x67c3[217]](_0xc8efx1f)){var _0xc8efx22=_0xc8efx2[_0x67c3[220]][_0x67c3[219]](_0xc8efx1f);if(_0xc8efx22 instanceof mxEdgeHandler&&_0xc8efx22[_0x67c3[221]]!=null&&_0xc8efx22[_0x67c3[221]][_0x67c3[18]]>2){var _0xc8efx23=_0xc8efx22[_0x67c3[222]]( new mxMouseEvent(_0xc8efx20));var _0xc8efx24=this[_0x67c3[0]][_0x67c3[80]][_0x67c3[26]](_0x67c3[223]);_0xc8efx24[_0x67c3[224]]=_0xc8efx22;_0xc8efx24[_0x67c3[225]]=_0xc8efx23;_0xc8efx21=_0xc8efx23>0&&_0xc8efx23<_0xc8efx22[_0x67c3[221]][_0x67c3[18]]}};this[_0x67c3[99]](_0xc8efx3,[_0x67c3[95],(_0xc8efx21)?_0x67c3[223]:_0x67c3[226]])}else {if(_0xc8efx2[_0x67c3[216]]()>1){_0xc8efx3[_0x67c3[24]]();this[_0x67c3[99]](_0xc8efx3,[_0x67c3[143]])}};_0xc8efx3[_0x67c3[24]]();if(_0xc8efx2[_0x67c3[216]]()==1){var _0xc8efx25=_0xc8efx2[_0x67c3[227]](_0xc8efx2[_0x67c3[187]]());if(_0xc8efx25!=null){this[_0x67c3[99]](_0xc8efx3,[_0x67c3[228]])}}}else {this[_0x67c3[99]](_0xc8efx3,[_0x67c3[95],_0x67c3[176],_0x67c3[177],_0x67c3[95],_0x67c3[178]])}};Menus[_0x67c3[5]][_0x67c3[229]]=function(_0xc8efx26){var _0xc8efx27= new Menubar(this[_0x67c3[0]],_0xc8efx26);var _0xc8efx28=[_0x67c3[156],_0x67c3[168],_0x67c3[146],_0x67c3[91],_0x67c3[93],_0x67c3[140]];for(var _0xc8efx6=0;_0xc8efx6<_0xc8efx28[_0x67c3[18]];_0xc8efx6++){_0xc8efx27[_0x67c3[181]](mxResources[_0x67c3[26]](_0xc8efx28[_0xc8efx6]),this[_0x67c3[26]](_0xc8efx28[_0xc8efx6])[_0x67c3[194]])};return _0xc8efx27};function Menubar(_0xc8efx1,_0xc8efx26){this[_0x67c3[0]]=_0xc8efx1;this[_0x67c3[230]]=_0xc8efx26;mxEvent[_0x67c3[232]](document,mxUtils[_0x67c3[29]](this,function(_0xc8efx20){this[_0x67c3[231]]()}))}Menubar[_0x67c3[5]][_0x67c3[231]]=function(){if(this[_0x67c3[233]]!=null){this[_0x67c3[233]][_0x67c3[231]]()}};Menubar[_0x67c3[5]][_0x67c3[181]]=function(_0xc8efx12,_0xc8efx2a){var _0xc8efx2b=document[_0x67c3[201]](_0x67c3[234]);_0xc8efx2b[_0x67c3[237]](_0x67c3[235],_0x67c3[236]);_0xc8efx2b[_0x67c3[238]]=_0x67c3[239];mxUtils[_0x67c3[204]](_0xc8efx2b,_0xc8efx12);this[_0x67c3[240]](_0xc8efx2b,_0xc8efx2a);this[_0x67c3[230]][_0x67c3[205]](_0xc8efx2b);return _0xc8efx2b};Menubar[_0x67c3[5]][_0x67c3[240]]=function(_0xc8efx2b,_0xc8efx2a){if(_0xc8efx2a!=null){var _0xc8efx2c=true;var _0xc8efx2d=mxUtils[_0x67c3[29]](this,function(_0xc8efx20){if(_0xc8efx2c&&_0xc8efx2b[_0x67c3[78]]==null||_0xc8efx2b[_0x67c3[78]]){this[_0x67c3[0]][_0x67c3[7]][_0x67c3[6]][_0x67c3[241]][_0x67c3[231]]();var _0xc8efx3= new mxPopupMenu(_0xc8efx2a);_0xc8efx3[_0x67c3[242]][_0x67c3[238]]+=_0x67c3[243];_0xc8efx3[_0x67c3[214]]=true;_0xc8efx3[_0x67c3[81]]=true;_0xc8efx3[_0x67c3[244]]=true;_0xc8efx3[_0x67c3[231]]=mxUtils[_0x67c3[29]](this,function(){mxPopupMenu[_0x67c3[5]][_0x67c3[231]][_0x67c3[245]](_0xc8efx3,arguments);_0xc8efx3[_0x67c3[246]]();this[_0x67c3[233]]=null;this[_0x67c3[247]]=null});var _0xc8efx2e=_0xc8efx2b[_0x67c3[248]]+document[_0x67c3[251]](_0x67c3[250])[_0x67c3[249]]+22;var _0xc8efx2f=_0xc8efx2b[_0x67c3[252]]+_0xc8efx2b[_0x67c3[253]]+140;_0xc8efx3[_0x67c3[254]](_0xc8efx2e,_0xc8efx2f,null,_0xc8efx20);this[_0x67c3[233]]=_0xc8efx3;this[_0x67c3[247]]=_0xc8efx2b};_0xc8efx2c=true;mxEvent[_0x67c3[255]](_0xc8efx20)});mxEvent[_0x67c3[257]](_0xc8efx2b,_0x67c3[256],mxUtils[_0x67c3[29]](this,function(_0xc8efx20){if(this[_0x67c3[233]]!=null&&this[_0x67c3[247]]!=_0xc8efx2b){this[_0x67c3[231]]();_0xc8efx2d(_0xc8efx20)}}));mxEvent[_0x67c3[257]](_0xc8efx2b,_0x67c3[258],mxUtils[_0x67c3[29]](this,function(){_0xc8efx2c=this[_0x67c3[247]]!=_0xc8efx2b}));mxEvent[_0x67c3[257]](_0xc8efx2b,_0x67c3[259],_0xc8efx2d)}};function Menu(_0xc8efx2a,_0xc8efxb){mxEventSource[_0x67c3[260]](this);this[_0x67c3[194]]=_0xc8efx2a;this[_0x67c3[78]]=(_0xc8efxb!=null)?_0xc8efxb:true}mxUtils[_0x67c3[261]](Menu,mxEventSource);Menu[_0x67c3[5]][_0x67c3[262]]=function(_0xc8efx19){if(this[_0x67c3[78]]!=_0xc8efx19){this[_0x67c3[78]]=_0xc8efx19;this[_0x67c3[264]]( new mxEventObject(_0x67c3[263]))}};Menu[_0x67c3[5]][_0x67c3[182]]=function(_0xc8efx3,_0xc8efx4){this[_0x67c3[194]](_0xc8efx3,_0xc8efx4)}
\ No newline at end of file
index 42e13ca..4c3ec74 100644 (file)
@@ -1,1234 +1 @@
-/**
- * $Id: Shapes.js,v 1.13 2013-02-02 06:44:30 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-
-/**
- * Registers shapes.
- */
-(function()
-{
-       // Cube Shape, supports size style
-       function CubeShape() { };
-       CubeShape.prototype = new mxCylinder();
-       CubeShape.prototype.constructor = CubeShape;
-       CubeShape.prototype.size = 20;
-       CubeShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var s = Math.min(w, Math.min(h, mxUtils.getValue(this.style, 'size', this.size)));
-
-               if (isForeground)
-               {
-                       path.moveTo(s, h);
-                       path.lineTo(s, s);
-                       path.lineTo(0, 0);
-                       path.moveTo(s, s);
-                       path.lineTo(w, s);
-                       path.end();
-               }
-               else
-               {
-                       path.moveTo(0, 0);
-                       path.lineTo(w - s, 0);
-                       path.lineTo(w, s);
-                       path.lineTo(w, h);
-                       path.lineTo(s, h);
-                       path.lineTo(0, h - s);
-                       path.lineTo(0, 0);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['cube'] = CubeShape;
-
-       // Note Shape, supports size style
-       function NoteShape() { };
-       NoteShape.prototype = new mxCylinder();
-       NoteShape.prototype.constructor = NoteShape;
-       NoteShape.prototype.size = 30;
-       NoteShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var s = Math.min(w, Math.min(h, mxUtils.getValue(this.style, 'size', this.size)));
-
-               if (isForeground)
-               {
-                       path.moveTo(w - s, 0);
-                       path.lineTo(w - s, s);
-                       path.lineTo(w, s);
-                       path.end();
-               }
-               else
-               {
-                       path.moveTo(0, 0);
-                       path.lineTo(w - s, 0);
-                       path.lineTo(w, s);
-                       path.lineTo(w, h);
-                       path.lineTo(0, h);
-                       path.lineTo(0, 0);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['note'] = NoteShape;
-
-       // Folder Shape, supports tabWidth, tabHeight styles
-       function FolderShape() { };
-       FolderShape.prototype = new mxCylinder();
-       FolderShape.prototype.constructor = FolderShape;
-       FolderShape.prototype.tabWidth = 60;
-       FolderShape.prototype.tabHeight = 20;
-       FolderShape.prototype.tabPosition = 'right';
-       FolderShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var tw = mxUtils.getValue(this.style, 'tabWidth', this.tabWidth);
-               var th = mxUtils.getValue(this.style, 'tabHeight', this.tabHeight);
-               var tp = mxUtils.getValue(this.style, 'tabPosition', this.tabPosition);
-               var dx = Math.min(w, tw);
-               var dy = Math.min(h, th);
-
-               if (isForeground)
-               {
-                       if (tp == 'left')
-                       {
-                               path.moveTo(0, dy);
-                               path.lineTo(dx, dy);
-                       }
-                       // Right is default
-                       else
-                       {
-                               path.moveTo(w - dx, dy);
-                               path.lineTo(w, dy);
-                       }
-                       
-                       path.end();
-               }
-               else
-               {
-                       if (tp == 'left')
-                       {
-                               path.moveTo(0, 0);
-                               path.lineTo(dx, 0);
-                               path.lineTo(dx, dy);
-                               path.lineTo(w, dy);
-                       }
-                       // Right is default
-                       else
-                       {
-                               path.moveTo(0, dy);
-                               path.lineTo(w - dx, dy);
-                               path.lineTo(w - dx, 0);
-                               path.lineTo(w, 0);
-                       }
-                       
-                       path.lineTo(w, h);
-                       path.lineTo(0, h);
-                       path.lineTo(0, dy);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['folder'] = FolderShape;
-
-       // Card Shape, supports size style
-       function CardShape() { };
-       CardShape.prototype = new mxCylinder();
-       CardShape.prototype.constructor = CardShape;
-       CardShape.prototype.size = 30;
-       CardShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var s = Math.min(w, Math.min(h, mxUtils.getValue(this.style, 'size', this.size)));
-
-               if (!isForeground)
-               {
-                       path.moveTo(s, 0);
-                       path.lineTo(w, 0);
-                       path.lineTo(w, h);
-                       path.lineTo(0, h);
-                       path.lineTo(0, s);
-                       path.lineTo(s, 0);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['card'] = CardShape;
-
-       // Tape Shape, supports size style
-       function TapeShape() { };
-       TapeShape.prototype = new mxCylinder();
-       TapeShape.prototype.constructor = TapeShape;
-       TapeShape.prototype.size = 0.4;
-       TapeShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var s = mxUtils.getValue(this.style, 'size', this.size);
-               var dy = h * s;
-               var fy = 1.4;
-
-               if (!isForeground)
-               {
-                       path.moveTo(0, dy / 2);
-                       path.quadTo(w / 4, dy * fy, w / 2, dy / 2);
-                       path.quadTo(w * 3 / 4, dy * (1 - fy), w, dy / 2);
-                       path.lineTo(w, h - dy / 2);
-                       path.quadTo(w * 3 / 4, h - dy * fy, w / 2, h - dy / 2);
-                       path.quadTo(w / 4, h - dy * (1 - fy), 0, h - dy / 2);
-                       path.lineTo(0, dy / 2);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['tape'] = TapeShape;
-
-       // Tape Shape, supports size style
-       function StepShape() { };
-       StepShape.prototype = new mxCylinder();
-       StepShape.prototype.constructor = StepShape;
-       StepShape.prototype.size = 0.2;
-       StepShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var s =  w * mxUtils.getValue(this.style, 'size', this.size);
-
-               if (!isForeground)
-               {
-                       path.moveTo(0, 0);
-                       path.lineTo(w - s, 0);
-                       path.lineTo(w, h / 2);
-                       path.lineTo(w - s, h);
-                       path.lineTo(0, h);
-                       path.lineTo(s, h / 2);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['step'] = StepShape;
-
-       // Plus Shape
-       function PlusShape()
-       {
-               mxRectangleShape.call(this);
-       };
-       mxUtils.extend(PlusShape, mxRectangleShape);
-       PlusShape.prototype.isHtmlAllowed = function()
-       {
-               return false;
-       };
-       PlusShape.prototype.paintForeground = function(c, x, y, w, h)
-       {
-               var border = Math.min(w / 5, h / 5) + 1;
-               
-               c.begin();
-               c.moveTo(x + w / 2, y + border);
-               c.lineTo(x + w / 2, y + h - border);
-               c.moveTo(x + border, y + h / 2);
-               c.lineTo(x + w - border, y + h / 2);
-               c.end();
-               c.stroke();
-               mxRectangleShape.prototype.paintForeground.apply(this, arguments);
-       };
-
-       mxCellRenderer.prototype.defaultShapes['plus'] = PlusShape;
-
-       // CompositeShape
-       function ExtendedShape()
-       {
-               mxRectangleShape.call(this);
-       };
-       mxUtils.extend(ExtendedShape, mxRectangleShape);
-       ExtendedShape.prototype.isHtmlAllowed = function()
-       {
-               return false;
-       };
-       ExtendedShape.prototype.paintForeground = function(c, x, y, w, h)
-       {
-               if (this.style != null)
-               {
-                       if (this.style['double'] == 1)
-                       {
-                               var inset = Math.max(2, this.strokewidth + 1);
-       
-                               mxRectangleShape.prototype.paintBackground.call(this, c, x + inset, y + inset, w - 2 * inset, h - 2 * inset);
-                               mxRectangleShape.prototype.paintForeground.apply(this, arguments);
-                               
-                               x += inset;
-                               y += inset;
-                               w -= 2 * inset;
-                               h -= 2 * inset;
-                       }
-                       
-                       c.setDashed(false);
-                       
-                       // Draws the symbols defined in the style. The symbols are
-                       // numbered from 1...n. Possible postfixes are align,
-                       // verticalAlign, spacing, arcSpacing, width, height
-                       var counter = 0;
-                       var shape = null;
-                       
-                       do
-                       {
-                               shape = mxCellRenderer.prototype.defaultShapes[this.style['symbol' + counter]];
-                               
-                               if (shape != null)
-                               {
-                                       var align = this.style['symbol' + counter + 'Align'];
-                                       var valign = this.style['symbol' + counter + 'VerticalAlign'];
-                                       var width = this.style['symbol' + counter + 'Width'];
-                                       var height = this.style['symbol' + counter + 'Height'];
-                                       var spacing = this.style['symbol' + counter + 'Spacing'] || 0;
-                                       var arcspacing = this.style['symbol' + counter + 'ArcSpacing'];
-                                       
-                                       if (arcspacing != null)
-                                       {
-                                               spacing += this.getArcSize(w + this.strokewidth, h + this.strokewidth) * arcspacing;
-                                       }
-                                       
-                                       var x2 = x;
-                                       var y2 = y;
-                                       
-                                       if (align == mxConstants.ALIGN_CENTER)
-                                       {
-                                               x2 += (w - width) / 2;
-                                       }
-                                       else if (align == mxConstants.ALIGN_RIGHT)
-                                       {
-                                               x2 += w - width - spacing;
-                                       }
-                                       else
-                                       {
-                                               x2 += spacing;
-                                       }
-                                       
-                                       if (valign == mxConstants.ALIGN_MIDDLE)
-                                       {
-                                               y2 += (h - height) / 2;
-                                       }
-                                       else if (valign == mxConstants.ALIGN_BOTTOM)
-                                       {
-                                               y2 += h - height - spacing;
-                                       }
-                                       else
-                                       {
-                                               y2 += spacing;
-                                       }
-                                       
-                                       c.save();
-                                       
-                                       // Small hack to pass style along into subshape
-                                       var tmp = new shape();
-                                       // TODO: Clone style and override settings (eg. strokewidth)
-                                       tmp.style = this.style;
-                                       shape.prototype.paintVertexShape.call(tmp, c, x2, y2, width, height);
-                                       c.restore();
-                               }
-                               
-                               counter++;
-                       }
-                       while (shape != null);
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['ext'] = ExtendedShape;
-       
-       // Tape Shape, supports size style
-       function MessageShape() { };
-       MessageShape.prototype = new mxCylinder();
-       MessageShape.prototype.constructor = MessageShape;
-       MessageShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               if (isForeground)
-               {
-                       path.moveTo(0, 0);
-                       path.lineTo(w / 2, h / 2);
-                       path.lineTo(w, 0);
-                       path.end();
-               }
-               else
-               {
-                       path.moveTo(0, 0);
-                       path.lineTo(w, 0);
-                       path.lineTo(w, h);
-                       path.lineTo(0, h);
-                       path.close();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['message'] = MessageShape;
-       
-       // New Actor Shape
-       function UmlActorShape() { };
-       UmlActorShape.prototype = new mxCylinder();
-       UmlActorShape.prototype.constructor = UmlActorShape;
-       UmlActorShape.prototype.addPipe = true;
-       UmlActorShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var width = w / 3;
-               var height = h / 4;
-               
-               if (!isForeground)
-               {
-                       path.moveTo(w / 2, height);
-                       path.curveTo(w / 2 - width, height, w / 2 - width, 0, w / 2, 0);
-                       path.curveTo(w / 2 + width, 0, w / 2 + width, height, w / 2, height);
-                       path.close();
-
-                       path.moveTo(w / 2, height);
-                       path.lineTo(w / 2, 2 * h / 3);
-                       
-                       // Arms
-                       path.moveTo(w / 2, h / 3);
-                       path.lineTo(0, h / 3);
-                       path.moveTo(w / 2, h / 3);
-                       path.lineTo(w, h / 3);
-                       
-                       // Legs
-                       path.moveTo(w / 2, 2 * h / 3);
-                       path.lineTo(0, h);
-                       path.moveTo(w / 2, 2 * h / 3);
-                       path.lineTo(w, h);
-                       path.end();
-               }
-       };
-
-       // Replaces existing actor shape
-       mxCellRenderer.prototype.defaultShapes['umlActor'] = UmlActorShape;
-
-       // New Actor Shape
-       function LollipopShape() { };
-       LollipopShape.prototype = new mxCylinder();
-       LollipopShape.prototype.constructor = LollipopShape;
-       LollipopShape.prototype.size = 10;
-       LollipopShape.prototype.addPipe = true;
-       LollipopShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var ss = mxUtils.getValue(this.style, 'size', this.size);
-               var width = ss * 2 / 3;
-               var height = ss;
-               
-               if (!isForeground)
-               {
-                       path.moveTo(w / 2, height);
-                       path.curveTo(w / 2 - width, height, w / 2 - width, 0, w / 2, 0);
-                       path.curveTo(w / 2 + width, 0, w / 2 + width, height, w / 2, height);
-                       path.close();
-
-                       path.moveTo(w / 2, height);
-                       path.lineTo(w / 2, h);
-                       path.end();
-               }
-       };
-
-       // Replaces existing actor shape
-       mxCellRenderer.prototype.defaultShapes['lollipop'] = LollipopShape;
-       
-       // Folder Shape, supports tabWidth, tabHeight styles
-       function ComponentShape() { };
-       ComponentShape.prototype = new mxCylinder();
-       ComponentShape.prototype.constructor = ComponentShape;
-       ComponentShape.prototype.jettyWidth = 32;
-       ComponentShape.prototype.jettyHeight = 12;
-       ComponentShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var dx = mxUtils.getValue(this.style, 'jettyWidth', this.jettyWidth);
-               var dy = mxUtils.getValue(this.style, 'jettyHeight', this.jettyHeight);
-               var x0 = dx / 2;
-               var x1 = x0 + dx / 2;
-               var y0 = 0.3 * h - dy / 2;
-               var y1 = 0.7 * h - dy / 2;
-
-               if (isForeground)
-               {
-                       path.moveTo(x0, y0);
-                       path.lineTo(x1, y0);
-                       path.lineTo(x1, y0 + dy);
-                       path.lineTo(x0, y0 + dy);
-                       path.moveTo(x0, y1);
-                       path.lineTo(x1, y1);
-                       path.lineTo(x1, y1 + dy);
-                       path.lineTo(x0, y1 + dy);
-                       path.end();
-               }
-               else
-               {
-                       path.moveTo(x0, 0);
-                       path.lineTo(w, 0);
-                       path.lineTo(w, h);
-                       path.lineTo(x0, h);
-                       path.lineTo(x0, y1 + dy);
-                       path.lineTo(0, y1 + dy);
-                       path.lineTo(0, y1);
-                       path.lineTo(x0, y1);
-                       path.lineTo(x0, y0 + dy);
-                       path.lineTo(0, y0 + dy);
-                       path.lineTo(0, y0);
-                       path.lineTo(x0, y0);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['component'] = ComponentShape;
-       
-       // State Shapes derives from double ellipse
-       function StateShape() { };
-       StateShape.prototype = new mxDoubleEllipse();
-       StateShape.prototype.constructor = StateShape;
-       StateShape.prototype.outerStroke = true;
-       StateShape.prototype.paintVertexShape = function(c, x, y, w, h)
-       {
-               var inset = Math.min(4, Math.min(w / 5, h / 5));
-               
-               if (w > 0 && h > 0)
-               {
-                       c.ellipse(x + inset, y + inset, w - 2 * inset, h - 2 * inset);
-                       c.fillAndStroke();
-               }
-               
-               c.setShadow(false);
-
-               if (this.outerStroke)
-               {
-                       c.ellipse(x, y, w, h);
-                       c.stroke();                     
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['endState'] = StateShape;
-
-       function StartStateShape() { };
-       StartStateShape.prototype = new StateShape();
-       StartStateShape.prototype.constructor = StartStateShape;
-       StartStateShape.prototype.outerStroke = false;
-       
-       mxCellRenderer.prototype.defaultShapes['startState'] = StartStateShape;
-
-       // Image export for state shapes
-       var imageExportInitShapes = mxImageExport.prototype.initShapes;
-       mxImageExport.prototype.initShapes = function()
-       {
-               imageExportInitShapes.apply(this, arguments);
-
-               function createStateShape(outerStroke)
-               {
-                       return {
-                               drawShape: function(canvas, state, bounds, background)
-                               {
-                                       var x = bounds.x;
-                                       var y = bounds.y;
-                                       var w = bounds.width;
-                                       var h = bounds.height;
-                                       
-                                       if (background)
-                                       {
-                                               var inset = Math.min(4, Math.min(w / 5, h / 5));
-                                               x += inset;
-                                               y += inset;
-                                               w -= 2 * inset;
-                                               h -= 2 * inset;
-                                               
-                                               if (w > 0 && h > 0)
-                                               {
-                                                       canvas.ellipse(x, y, w, h);
-                                               }
-                                               
-                                               return true;
-                                       }
-                                       else
-                                       {
-                                               canvas.fillAndStroke();
-               
-                                               if (outerStroke)
-                                               {
-                                                       canvas.ellipse(x, y, w, h);
-                                                       canvas.stroke();
-                                               }
-                                       }
-                               }
-                       };
-               };
-               
-               this.shapes['endState'] = createStateShape(true);
-               this.shapes['startState'] = createStateShape(false);
-       };
-
-       // Defines custom edge shape
-       function LinkShape()
-       {
-               mxArrow.call(this);
-       };
-       mxUtils.extend(LinkShape, mxArrow);
-       LinkShape.prototype.paintEdgeShape = function(c, pts)
-       {
-               var width = 10;
-
-               // Base vector (between end points)
-               var p0 = pts[0];
-               var pe = pts[pts.length - 1];
-               
-               var dx = pe.x - p0.x;
-               var dy = pe.y - p0.y;
-               var dist = Math.sqrt(dx * dx + dy * dy);
-               var length = dist;
-               
-               // Computes the norm and the inverse norm
-               var nx = dx / dist;
-               var ny = dy / dist;
-               var basex = length * nx;
-               var basey = length * ny;
-               var floorx = width * ny/3;
-               var floory = -width * nx/3;
-               
-               // Computes points
-               var p0x = p0.x - floorx / 2;
-               var p0y = p0.y - floory / 2;
-               var p1x = p0x + floorx;
-               var p1y = p0y + floory;
-               var p2x = p1x + basex;
-               var p2y = p1y + basey;
-               var p3x = p2x + floorx;
-               var p3y = p2y + floory;
-               // p4 not necessary
-               var p5x = p3x - 3 * floorx;
-               var p5y = p3y - 3 * floory;
-               
-               c.begin();
-               c.moveTo(p1x, p1y);
-               c.lineTo(p2x, p2y);
-               c.moveTo(p5x + floorx, p5y + floory);
-               c.lineTo(p0x, p0y);
-               c.stroke();
-       };
-
-       // Registers the link shape
-       mxCellRenderer.prototype.defaultShapes['link'] = LinkShape;
-
-       // Registers and defines the custom marker
-       mxMarker.addMarker('dash', function(canvas, shape, type, pe, unitX, unitY, size, source, sw, filled)
-       {
-               var nx = unitX * (size + sw + 1);
-               var ny = unitY * (size + sw + 1);
-
-               return function()
-               {
-                       canvas.begin();
-                       canvas.moveTo(pe.x - nx / 2 - ny / 2, pe.y - ny / 2 + nx / 2);
-                       canvas.lineTo(pe.x + ny / 2 - 3 * nx / 2, pe.y - 3 * ny / 2 - nx / 2);
-                       canvas.stroke();
-               };
-       });
-
-       // Implements custom handlers
-       var SPECIAL_HANDLE_INDEX = -99;
-
-       // Handlers are only added if mxVertexHandler is defined (ie. not in embedded graph)
-       if (typeof(mxVertexHandler) != 'undefined')
-       {
-               function mxExtVertexHandler(state)
-               {
-                       mxVertexHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxExtVertexHandler, mxVertexHandler);
-       
-               mxExtVertexHandler.prototype.useGridForSpecialHandle = false;
-               
-               mxExtVertexHandler.prototype.init = function()
-               {
-                       this.horizontal = mxUtils.getValue(this.state.style, mxConstants.STYLE_HORIZONTAL, true);
-                       var graph = this.state.view.graph;
-       
-                       if (this.handleImage != null)
-                       {
-                               var bounds = new mxRectangle(0, 0, this.handleImage.width, this.handleImage.height);
-                               this.specialHandle = new mxImageShape(bounds, this.handleImage.src);
-                       }
-                       else
-                       {
-                               var size = 10;
-                               var bounds = new mxRectangle(0, 0, size, size);
-                               this.specialHandle = new mxRhombus(bounds, mxConstants.HANDLE_FILLCOLOR, mxConstants.HANDLE_STROKECOLOR);
-                       }
-                       
-                       this.specialHandle.dialect = (graph.dialect != mxConstants.DIALECT_SVG) ?
-                                       mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
-                       this.specialHandle.init(graph.getView().getOverlayPane());
-                       this.specialHandle.node.style.cursor = this.getSpecialHandleCursor();
-       
-                       mxEvent.redirectMouseEvents(this.specialHandle.node, graph, this.state);
-                       mxVertexHandler.prototype.init.apply(this, arguments);
-               };
-               
-               mxExtVertexHandler.prototype.getSpecialHandleCursor = function()
-               {
-                       return 'default';
-               };
-               
-               mxExtVertexHandler.prototype.redraw = function()
-               {
-                       mxVertexHandler.prototype.redraw.apply(this, arguments);
-       
-                       var size = this.specialHandle.bounds.width;
-                       this.specialHandle.bounds = this.getSpecialHandleBounds(size);
-                       this.specialHandle.redraw();
-               };
-
-               mxExtVertexHandler.prototype.destroy = function()
-               {
-                       mxVertexHandler.prototype.destroy.apply(this, arguments);
-                       
-                       if (this.specialHandle != null)
-                       {
-                               this.specialHandle.destroy();
-                               this.specialHandle = null;
-                       }
-               };
-               
-               mxExtVertexHandler.prototype.getHandleForEvent = function(me)
-               {
-                       if (me.isSource(this.specialHandle))
-                       {
-                               return SPECIAL_HANDLE_INDEX;
-                       }
-                       
-                       return mxVertexHandler.prototype.getHandleForEvent.apply(this, arguments);
-               };
-
-               mxExtVertexHandler.prototype.mouseMove = function(sender, me)
-               {
-                       if (!me.isConsumed() && this.index == SPECIAL_HANDLE_INDEX)
-                       {
-                               var point = new mxPoint(me.getGraphX(), me.getGraphY());
-                               this.constrainPoint(point);
-                               var gridEnabled = this.graph.isGridEnabledEvent(me.getEvent());
-                               var scale = this.graph.getView().scale;
-                               
-                               if (gridEnabled && this.useGridForSpecialHandle)
-                               {
-                                       point.x = this.graph.snap(point.x / scale) * scale;
-                                       point.y = this.graph.snap(point.y / scale) * scale;
-                               }
-                               
-                               this.updateStyle(point);                        
-                               this.moveSizerTo(this.specialHandle, point.x, point.y);
-                               this.state.view.graph.cellRenderer.redraw(this.state, true);
-                               me.consume();
-                       }
-                       else
-                       {
-                               mxVertexHandler.prototype.mouseMove.apply(this, arguments);
-                       }
-               };
-
-               mxExtVertexHandler.prototype.mouseUp = function(sender, me)
-               {
-                       if (!me.isConsumed() && this.index == SPECIAL_HANDLE_INDEX)
-                       {
-                               this.applyStyle();
-                               this.reset();
-                               me.consume();
-                       }
-                       else
-                       {
-                               mxVertexHandler.prototype.mouseUp.apply(this, arguments);
-                       }
-               };
-
-               mxExtVertexHandler.prototype.getSpecialHandleBounds = function(size)
-               {
-                       var rotation = this.state.shape.getShapeRotation();
-                       var alpha = mxUtils.toRadians(rotation);
-                       var cos = Math.cos(alpha);
-                       var sin = Math.sin(alpha);
-                       
-                       var bounds = new mxRectangle(this.state.x, this.state.y, this.state.width, this.state.height);
-                       
-                       if (this.state.shape.isPaintBoundsInverted())
-                       {
-                               var t = (bounds.width - bounds.height) / 2;
-                               bounds.x += t;
-                               bounds.y -= t;
-                               var tmp = bounds.width;
-                               bounds.width = bounds.height;
-                               bounds.height = tmp;
-                       }
-       
-                       var pt = this.getSpecialHandlePoint(bounds);
-
-                       if (this.state.shape.flipH)
-                       {
-                               pt.x = 2 * bounds.x + bounds.width - pt.x;
-                       }
-                       
-                       if (this.state.shape.flipV)
-                       {
-                               pt.y = 2 * bounds.y + bounds.height - pt.y;
-                       }
-                       
-                       pt = mxUtils.getRotatedPoint(pt, cos, sin,
-                               new mxPoint(this.state.getCenterX(), this.state.getCenterY()));
-
-                       return new mxRectangle(pt.x - size / 2, pt.y - size / 2, size, size);
-               };
-               
-               mxExtVertexHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       // Hook for subclassers
-                       return null;
-               };
-       
-               mxExtVertexHandler.prototype.updateStyle = function(point)
-               {
-                       // Hook for subclassers
-               };
-               
-               mxExtVertexHandler.prototype.constrainPoint = function(point)
-               {
-                       point.x = Math.max(this.state.x, Math.min(this.state.x + this.state.width, point.x));
-                       point.y = Math.max(this.state.y, Math.min(this.state.y + this.state.height, point.y));
-               };
-               
-               mxExtVertexHandler.prototype.applyStyle = function()
-               {
-                       // Hook for subclassers
-               };
-
-               // Folder Handler
-               function mxFolderHandler(state)
-               {
-                       mxExtVertexHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxFolderHandler, mxExtVertexHandler);
-
-               mxFolderHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       var scale = this.graph.getView().scale;
-                       var tw = Math.min(bounds.width, mxUtils.getValue(this.state.style, 'tabWidth', 60) * scale);
-                       var th = Math.min(bounds.height, mxUtils.getValue(this.state.style, 'tabHeight', 20) * scale);
-                       
-                       var tp = mxUtils.getValue(this.state.style, 'tabPosition', 'right');
-                       var x = (tp == 'left') ? bounds.x + tw : bounds.x + bounds.width - tw;
-       
-                       return new mxPoint(x, bounds.y + th);
-               };
-               
-               mxFolderHandler.prototype.updateStyle = function(point)
-               {
-                       var rotation = this.state.shape.getShapeRotation();
-                       var alpha = mxUtils.toRadians(rotation);
-                       var cos = Math.cos(-alpha);
-                       var sin = Math.sin(-alpha);
-
-                       var bounds = new mxRectangle(this.state.x, this.state.y, this.state.width, this.state.height);
-                       
-                       if (this.state.shape.isPaintBoundsInverted())
-                       {
-                               var t = (bounds.width - bounds.height) / 2;
-                               bounds.x += t;
-                               bounds.y -= t;
-                               var tmp = bounds.width;
-                               bounds.width = bounds.height;
-                               bounds.height = tmp;
-                       }
-       
-                       var pt = new mxPoint(point.x, point.y);
-                       pt = mxUtils.getRotatedPoint(pt, cos, sin,
-                               new mxPoint(this.state.getCenterX(), this.state.getCenterY()));
-
-                       if (this.state.shape.flipH)
-                       {
-                               pt.x = 2 * bounds.x + bounds.width - pt.x;
-                       }
-                       
-                       if (this.state.shape.flipV)
-                       {
-                               pt.y = 2 * bounds.y + bounds.height - pt.y;
-                       }
-                       
-                       var result = this.updateStyleUnrotated(pt, bounds);
-               
-                       // Modifies point to use rotated coordinates of return value
-                       if (result != null)
-                       {
-                               if (this.state.shape.flipH)
-                               {
-                                       result.x = 2 * bounds.x + bounds.width - result.x;
-                               }
-                               
-                               if (this.state.shape.flipV)
-                               {
-                                       result.y = 2 * bounds.y + bounds.height - result.y;
-                               }
-                               
-                               cos = Math.cos(alpha);
-                               sin = Math.sin(alpha);
-                               result = mxUtils.getRotatedPoint(result, cos, sin,
-                                               new mxPoint(this.state.getCenterX(), this.state.getCenterY()));
-                               point.x = result.x;
-                               point.y = result.y;
-                       }
-               };
-               
-               mxFolderHandler.prototype.updateStyleUnrotated = function(pt, bounds)
-               {
-                       var tp = mxUtils.getValue(this.state.style, 'tabPosition', 'right');
-                       var tw = (tp == 'left') ? pt.x - bounds.x : bounds.x + bounds.width - pt.x;
-                       var th = pt.y - bounds.y;
-                       
-                       var scale = this.graph.getView().scale;
-                       this.state.style['tabWidth'] = Math.round(Math.max(1, tw) / scale);
-                       this.state.style['tabHeight'] =  Math.round(Math.max(1, th) / scale);
-               };
-               
-               mxFolderHandler.prototype.applyStyle = function()
-               {
-                       var model = this.graph.getModel();
-                       model.beginUpdate();
-                       try
-                       {
-                               this.state.view.graph.setCellStyles('tabWidth', this.state.style['tabWidth'], [this.state.cell]);
-                               this.state.view.graph.setCellStyles('tabHeight', this.state.style['tabHeight'], [this.state.cell]);
-                       }
-                       finally
-                       {
-                               model.endUpdate();
-                       }
-               };
-               
-               // Swimlane Handler
-               function mxSwimlaneHandler(state)
-               {
-                       mxFolderHandler.call(this, state);
-               };
-               
-               mxUtils.extend(mxSwimlaneHandler, mxFolderHandler);
-               
-               mxSwimlaneHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       var scale = this.graph.getView().scale;
-                       var startSize = mxUtils.getValue(this.state.style, mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE);
-
-                       return new mxPoint(bounds.x + bounds.width / 2, bounds.y + Math.min(bounds.height, startSize * scale));
-               };
-               
-               mxSwimlaneHandler.prototype.updateStyleUnrotated = function(point, bounds)
-               {
-                       point.x = bounds.x + bounds.width / 2;
-                       startSize = point.y - bounds.y;
-                       var scale = this.graph.getView().scale;
-                       this.state.style['startSize'] = Math.round(Math.max(1, startSize) / scale);
-                       
-                       return point;
-               };
-               
-               mxSwimlaneHandler.prototype.applyStyle = function()
-               {
-                       this.state.view.graph.setCellStyles('startSize', this.state.style['startSize'], [this.state.cell]);
-               };
-
-               // Cube Handler
-               function mxCubeHandler(state)
-               {
-                       mxFolderHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxCubeHandler, mxFolderHandler);
-               
-               mxCubeHandler.prototype.defaultValue = 20;
-       
-               mxCubeHandler.prototype.scaleFactor = 1;
-               
-               mxCubeHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       var scale = this.graph.getView().scale;
-                       var sz = Math.min(bounds.width, Math.min(bounds.height,
-                               mxUtils.getValue(this.state.style, 'size', this.defaultValue) * scale / this.scaleFactor));
-                       
-                       return new mxPoint(bounds.x + sz, bounds.y + sz);
-               };
-       
-               mxCubeHandler.prototype.updateStyleUnrotated = function(pt, bounds)
-               {
-                       var size = Math.max(0, Math.min(Math.min(bounds.width / this.scaleFactor, pt.x - bounds.x),
-                                       Math.min(bounds.height / this.scaleFactor, pt.y - bounds.y)));
-                       var scale = this.graph.getView().scale;
-                       this.state.style['size'] = Math.round(Math.max(1, size) / scale) * this.scaleFactor;
-                       
-                       // Stays on the diagonal
-                       return new mxPoint(bounds.x + size, bounds.y + size);
-               };
-               
-               mxCubeHandler.prototype.applyStyle = function()
-               {
-                       this.state.view.graph.setCellStyles('size', this.state.style['size'], [this.state.cell]);
-               };
-               
-               // Card Handler
-               function mxCardHandler(state)
-               {
-                       mxCubeHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxCardHandler, mxCubeHandler);
-               
-               mxCardHandler.prototype.defaultValue = 30;
-       
-               mxCardHandler.prototype.scaleFactor = 2;
-               
-               // Note Handler
-               function mxNoteHandler(state)
-               {
-                       mxCubeHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxNoteHandler, mxCubeHandler);
-               
-               mxNoteHandler.prototype.defaultValue = 30;
-       
-               mxNoteHandler.prototype.scaleFactor = 1;
-               
-               mxNoteHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       var scale = this.graph.getView().scale;
-                       var sz = Math.min(bounds.width, Math.min(bounds.height,
-                                       mxUtils.getValue(this.state.style, 'size', this.defaultValue) * scale / this.scaleFactor));
-                       
-                       return new mxPoint(bounds.x + bounds.width - sz, bounds.y + sz);
-               };
-               
-               mxNoteHandler.prototype.updateStyleUnrotated = function(pt, bounds)
-               {
-                       var size = Math.max(0, Math.min(Math.min(bounds.width / this.scaleFactor, pt.x - bounds.x + bounds.width),
-                                       Math.min(bounds.height / this.scaleFactor, pt.y - bounds.y)));
-                       var scale = this.graph.getView().scale;
-                       this.state.style['size'] = Math.round(Math.max(1, size) / scale) * this.scaleFactor;
-                       
-                       // Stays on the diagonal
-                       return new mxPoint(bounds.x + bounds.width - size, bounds.y + size);
-               };
-               
-               // Step Handler
-               function mxStepHandler(state)
-               {
-                       mxCubeHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxStepHandler, mxCubeHandler);
-               
-               mxStepHandler.prototype.defaultValue = 0.2;
-       
-               mxStepHandler.prototype.scaleFactor = 1;
-               
-               mxStepHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       var sz = mxUtils.getValue(this.state.style, 'size', this.defaultValue);
-                       
-                       return new mxPoint(bounds.x + bounds.width * sz, bounds.y + bounds.height / 2);
-               };
-       
-               mxStepHandler.prototype.updateStyleUnrotated = function(pt, bounds)
-               {
-                       var size = Math.min(1, (pt.x - bounds.x) / bounds.width);
-                       this.state.style['size'] = size;
-                       
-                       return new mxPoint(bounds.x + size * bounds.width, bounds.y + bounds.height / 2);
-               };
-               
-               // Tape Handler
-               function mxTapeHandler(state)
-               {
-                       mxCubeHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxTapeHandler, mxCubeHandler);
-               
-               mxTapeHandler.prototype.defaultValue = 0.4;
-       
-               mxTapeHandler.prototype.scaleFactor = 1;
-               
-               mxTapeHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       var sz = mxUtils.getValue(this.state.style, 'size', this.defaultValue);
-       
-                       return new mxPoint(bounds.x + bounds.width / 2, bounds.y + sz * bounds.height / 2);
-               };
-       
-               mxTapeHandler.prototype.updateStyleUnrotated = function(pt, bounds)
-               {
-                       var size = Math.max(0, Math.min(1, ((pt.y - bounds.y) / bounds.height) * 2));
-                       this.state.style['size'] = size;
-                       
-                       return new mxPoint(bounds.x + bounds.width / 2, bounds.y + size * bounds.height / 2);
-               };
-               
-               var handlers = {'swimlane': mxSwimlaneHandler, 'folder': mxFolderHandler, 'cube': mxCubeHandler,
-                               'card': mxCardHandler, 'note': mxNoteHandler, 'step': mxStepHandler, 'tape': mxTapeHandler};
-
-               var mxGraphCreateHandler = mxGraph.prototype.createHandler;
-               mxGraph.prototype.createHandler = function(state)
-               {
-                       if (state != null)
-                       {
-                               var ctor = handlers[state.style['shape']];
-
-                               if (ctor != null)
-                               {
-                                       return new ctor(state);
-                               }
-                       }
-                       
-                       return mxGraphCreateHandler.apply(this, arguments);
-               };
-       }
-       
-       // Constraints
-       mxGraph.prototype.getAllConnectionConstraints = function(terminal, source)
-       {
-               if (terminal != null && terminal.shape != null)
-               {
-                       if (terminal.shape.stencil != null)
-                       {
-                               if (terminal.shape.stencil != null)
-                               {
-                                       return terminal.shape.stencil.constraints;
-                               }
-                       }
-                       else if (terminal.shape.constraints != null)
-                       {
-                               return terminal.shape.constraints;
-                       }
-               }
-
-               return null;
-       };
-
-       mxRectangleShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0), true),
-                                                 new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                                 new mxConnectionConstraint(new mxPoint(0.75, 0), true),
-                                                new mxConnectionConstraint(new mxPoint(0, 0.25), true),
-                                                new mxConnectionConstraint(new mxPoint(0, 0.5), true),
-                                                new mxConnectionConstraint(new mxPoint(0, 0.75), true),
-                                                new mxConnectionConstraint(new mxPoint(1, 0.25), true),
-                                                new mxConnectionConstraint(new mxPoint(1, 0.5), true),
-                                                new mxConnectionConstraint(new mxPoint(1, 0.75), true),
-                                                new mxConnectionConstraint(new mxPoint(0.25, 1), true),
-                                                new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                                new mxConnectionConstraint(new mxPoint(0.75, 1), true)];
-       mxLabel.prototype.constraints = mxRectangleShape.prototype.constraints;
-       mxImageShape.prototype.constraints = mxRectangleShape.prototype.constraints;
-       mxSwimlane.prototype.constraints = mxRectangleShape.prototype.constraints;
-       PlusShape.prototype.constraints = mxRectangleShape.prototype.constraints;
-       NoteShape.prototype.constraints = mxRectangleShape.prototype.constraints;
-       CardShape.prototype.constraints = mxRectangleShape.prototype.constraints;
-       CubeShape.prototype.constraints = mxRectangleShape.prototype.constraints;
-       FolderShape.prototype.constraints = mxRectangleShape.prototype.constraints;
-       mxCylinder.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.15, 0.05), false),
-                                        new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                        new mxConnectionConstraint(new mxPoint(0.85, 0.05), false),
-                                new mxConnectionConstraint(new mxPoint(0, 0.3), true),
-                                new mxConnectionConstraint(new mxPoint(0, 0.5), true),
-                                new mxConnectionConstraint(new mxPoint(0, 0.7), true),
-                                new mxConnectionConstraint(new mxPoint(1, 0.3), true),
-                                new mxConnectionConstraint(new mxPoint(1, 0.5), true),
-                                new mxConnectionConstraint(new mxPoint(1, 0.7), true),
-                                new mxConnectionConstraint(new mxPoint(0.15, 0.95), false),
-                                new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                new mxConnectionConstraint(new mxPoint(0.85, 0.95), false)];
-       UmlActorShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0.1), false),
-                                                 new mxConnectionConstraint(new mxPoint(0.5, 0), false),
-                                                 new mxConnectionConstraint(new mxPoint(0.75, 0.1), false),
-                                                new mxConnectionConstraint(new mxPoint(0, 1/3), false),
-                                                new mxConnectionConstraint(new mxPoint(0, 1), false),
-                                                new mxConnectionConstraint(new mxPoint(1, 1/3), false),
-                                                new mxConnectionConstraint(new mxPoint(1, 1), false),
-                                                new mxConnectionConstraint(new mxPoint(0.5, 0.5), false)];
-       ComponentShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0), true),
-                                                 new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                                 new mxConnectionConstraint(new mxPoint(0.75, 0), true),
-                                                new mxConnectionConstraint(new mxPoint(0, 0.3), true),
-                                                new mxConnectionConstraint(new mxPoint(0, 0.7), true),
-                                                new mxConnectionConstraint(new mxPoint(1, 0.25), true),
-                                                new mxConnectionConstraint(new mxPoint(1, 0.5), true),
-                                                new mxConnectionConstraint(new mxPoint(1, 0.75), true),
-                                                new mxConnectionConstraint(new mxPoint(0.25, 1), true),
-                                                new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                                new mxConnectionConstraint(new mxPoint(0.75, 1), true)];
-       mxActor.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                new mxConnectionConstraint(new mxPoint(0.25, 0.2), false),
-                                new mxConnectionConstraint(new mxPoint(0.1, 0.5), false),
-                                new mxConnectionConstraint(new mxPoint(0, 0.75), true),
-                                new mxConnectionConstraint(new mxPoint(0.75, 0.25), false),
-                                new mxConnectionConstraint(new mxPoint(0.9, 0.5), false),
-                                new mxConnectionConstraint(new mxPoint(1, 0.75), true),
-                                new mxConnectionConstraint(new mxPoint(0.25, 1), true),
-                                new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                new mxConnectionConstraint(new mxPoint(0.75, 1), true)];
-       TapeShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0, 0.35), false),
-                                          new mxConnectionConstraint(new mxPoint(0, 0.5), false),
-                                          new mxConnectionConstraint(new mxPoint(0, 0.65), false),
-                                          new mxConnectionConstraint(new mxPoint(1, 0.35), false),
-                                               new mxConnectionConstraint(new mxPoint(1, 0.5), false),
-                                               new mxConnectionConstraint(new mxPoint(1, 0.65), false),
-                                                                               new mxConnectionConstraint(new mxPoint(0.25, 1), false),
-                                                                               new mxConnectionConstraint(new mxPoint(0.75, 0), false)];
-       // TODO: Relative ports
-       StepShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0), true),
-                                       new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                       new mxConnectionConstraint(new mxPoint(0.75, 0), true),
-                                       new mxConnectionConstraint(new mxPoint(0.25, 1), true),
-                                                       new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                                       new mxConnectionConstraint(new mxPoint(0.75, 1), true),
-                                          new mxConnectionConstraint(new mxPoint(0.1, 0.25), false),
-                                          new mxConnectionConstraint(new mxPoint(0.2, 0.5), false),
-                                          new mxConnectionConstraint(new mxPoint(0.1, 0.75), false),
-                                          new mxConnectionConstraint(new mxPoint(0.9, 0.25), false),
-                                               new mxConnectionConstraint(new mxPoint(1, 0.5), false),
-                                               new mxConnectionConstraint(new mxPoint(0.9, 0.75), false)];
-       mxLine.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0, 0.5), false),
-                                       new mxConnectionConstraint(new mxPoint(0.25, 0.5), false),
-                                       new mxConnectionConstraint(new mxPoint(0.75, 0.5), false),
-                                                                       new mxConnectionConstraint(new mxPoint(1, 0.5), false)];
-       LollipopShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.5, 0), false),
-                                                                               new mxConnectionConstraint(new mxPoint(0.5, 1), false)];
-       mxEllipse.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0, 0), true), new mxConnectionConstraint(new mxPoint(1, 0), true),
-                                          new mxConnectionConstraint(new mxPoint(0, 1), true), new mxConnectionConstraint(new mxPoint(1, 1), true),
-                                          new mxConnectionConstraint(new mxPoint(0.5, 0), true), new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                                  new mxConnectionConstraint(new mxPoint(0, 0.5), true), new mxConnectionConstraint(new mxPoint(1, 0.5))];
-       mxDoubleEllipse.prototype.constraints = mxEllipse.prototype.constraints;
-       mxRhombus.prototype.constraints = mxEllipse.prototype.constraints;
-       mxTriangle.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0, 0.25), true),
-                                           new mxConnectionConstraint(new mxPoint(0, 0.5), true),
-                                          new mxConnectionConstraint(new mxPoint(0, 0.75), true),
-                                          new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                          new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                          new mxConnectionConstraint(new mxPoint(1, 0.5), true)];
-       mxHexagon.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.375, 0), true),
-                                           new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                          new mxConnectionConstraint(new mxPoint(0.625, 0), true),
-                                          new mxConnectionConstraint(new mxPoint(0.125, 0.25), false),
-                                          new mxConnectionConstraint(new mxPoint(0, 0.5), true),
-                                          new mxConnectionConstraint(new mxPoint(0.125, 0.75), false),
-                                          new mxConnectionConstraint(new mxPoint(0.875, 0.25), false),
-                                          new mxConnectionConstraint(new mxPoint(0, 0.5), true),
-                                          new mxConnectionConstraint(new mxPoint(1, 0.5), true),
-                                          new mxConnectionConstraint(new mxPoint(0.875, 0.75), false),
-                                          new mxConnectionConstraint(new mxPoint(0.375, 1), true),
-                                           new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                          new mxConnectionConstraint(new mxPoint(0.625, 1), true)];
-       mxCloud.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0.25), false),
-                                        new mxConnectionConstraint(new mxPoint(0.4, 0.1), false),
-                                        new mxConnectionConstraint(new mxPoint(0.16, 0.55), false),
-                                        new mxConnectionConstraint(new mxPoint(0.07, 0.4), false),
-                                        new mxConnectionConstraint(new mxPoint(0.31, 0.8), false),
-                                        new mxConnectionConstraint(new mxPoint(0.13, 0.77), false),
-                                        new mxConnectionConstraint(new mxPoint(0.8, 0.8), false),
-                                        new mxConnectionConstraint(new mxPoint(0.55, 0.95), false),
-                                        new mxConnectionConstraint(new mxPoint(0.875, 0.5), false),
-                                        new mxConnectionConstraint(new mxPoint(0.96, 0.7), false),
-                                        new mxConnectionConstraint(new mxPoint(0.625, 0.2), false),
-                                        new mxConnectionConstraint(new mxPoint(0.88, 0.25), false)];
-       mxArrow.prototype.constraints = null;
-})();
+var _0x7f60=["\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x73\x69\x7A\x65","\x72\x65\x64\x72\x61\x77\x50\x61\x74\x68","\x73\x74\x79\x6C\x65","\x67\x65\x74\x56\x61\x6C\x75\x65","\x6D\x69\x6E","\x6D\x6F\x76\x65\x54\x6F","\x6C\x69\x6E\x65\x54\x6F","\x65\x6E\x64","\x63\x6C\x6F\x73\x65","\x63\x75\x62\x65","\x64\x65\x66\x61\x75\x6C\x74\x53\x68\x61\x70\x65\x73","\x6E\x6F\x74\x65","\x74\x61\x62\x57\x69\x64\x74\x68","\x74\x61\x62\x48\x65\x69\x67\x68\x74","\x74\x61\x62\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x72\x69\x67\x68\x74","\x6C\x65\x66\x74","\x66\x6F\x6C\x64\x65\x72","\x63\x61\x72\x64","\x71\x75\x61\x64\x54\x6F","\x74\x61\x70\x65","\x73\x74\x65\x70","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x69\x73\x48\x74\x6D\x6C\x41\x6C\x6C\x6F\x77\x65\x64","\x70\x61\x69\x6E\x74\x46\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x62\x65\x67\x69\x6E","\x73\x74\x72\x6F\x6B\x65","\x61\x70\x70\x6C\x79","\x70\x6C\x75\x73","\x64\x6F\x75\x62\x6C\x65","\x73\x74\x72\x6F\x6B\x65\x77\x69\x64\x74\x68","\x6D\x61\x78","\x70\x61\x69\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x73\x65\x74\x44\x61\x73\x68\x65\x64","\x73\x79\x6D\x62\x6F\x6C","\x41\x6C\x69\x67\x6E","\x56\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x57\x69\x64\x74\x68","\x48\x65\x69\x67\x68\x74","\x53\x70\x61\x63\x69\x6E\x67","\x41\x72\x63\x53\x70\x61\x63\x69\x6E\x67","\x67\x65\x74\x41\x72\x63\x53\x69\x7A\x65","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x73\x61\x76\x65","\x70\x61\x69\x6E\x74\x56\x65\x72\x74\x65\x78\x53\x68\x61\x70\x65","\x72\x65\x73\x74\x6F\x72\x65","\x65\x78\x74","\x6D\x65\x73\x73\x61\x67\x65","\x61\x64\x64\x50\x69\x70\x65","\x63\x75\x72\x76\x65\x54\x6F","\x75\x6D\x6C\x41\x63\x74\x6F\x72","\x6C\x6F\x6C\x6C\x69\x70\x6F\x70","\x6A\x65\x74\x74\x79\x57\x69\x64\x74\x68","\x6A\x65\x74\x74\x79\x48\x65\x69\x67\x68\x74","\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74","\x6F\x75\x74\x65\x72\x53\x74\x72\x6F\x6B\x65","\x65\x6C\x6C\x69\x70\x73\x65","\x66\x69\x6C\x6C\x41\x6E\x64\x53\x74\x72\x6F\x6B\x65","\x73\x65\x74\x53\x68\x61\x64\x6F\x77","\x65\x6E\x64\x53\x74\x61\x74\x65","\x73\x74\x61\x72\x74\x53\x74\x61\x74\x65","\x69\x6E\x69\x74\x53\x68\x61\x70\x65\x73","\x78","\x79","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x73\x68\x61\x70\x65\x73","\x70\x61\x69\x6E\x74\x45\x64\x67\x65\x53\x68\x61\x70\x65","\x6C\x65\x6E\x67\x74\x68","\x73\x71\x72\x74","\x6C\x69\x6E\x6B","\x64\x61\x73\x68","\x61\x64\x64\x4D\x61\x72\x6B\x65\x72","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x75\x73\x65\x47\x72\x69\x64\x46\x6F\x72\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65","\x69\x6E\x69\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x73\x74\x61\x74\x65","\x67\x72\x61\x70\x68","\x76\x69\x65\x77","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x73\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65","\x73\x72\x63","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x44\x49\x41\x4C\x45\x43\x54\x5F\x56\x4D\x4C","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x74\x56\x69\x65\x77","\x63\x75\x72\x73\x6F\x72","\x6E\x6F\x64\x65","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x43\x75\x72\x73\x6F\x72","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x64\x65\x66\x61\x75\x6C\x74","\x72\x65\x64\x72\x61\x77","\x62\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x42\x6F\x75\x6E\x64\x73","\x64\x65\x73\x74\x72\x6F\x79","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x53\x6F\x75\x72\x63\x65","\x6D\x6F\x75\x73\x65\x4D\x6F\x76\x65","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x50\x6F\x69\x6E\x74","\x67\x65\x74\x45\x76\x65\x6E\x74","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64\x45\x76\x65\x6E\x74","\x73\x63\x61\x6C\x65","\x73\x6E\x61\x70","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65","\x6D\x6F\x76\x65\x53\x69\x7A\x65\x72\x54\x6F","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x55\x70","\x61\x70\x70\x6C\x79\x53\x74\x79\x6C\x65","\x72\x65\x73\x65\x74","\x67\x65\x74\x53\x68\x61\x70\x65\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x73\x68\x61\x70\x65","\x74\x6F\x52\x61\x64\x69\x61\x6E\x73","\x63\x6F\x73","\x73\x69\x6E","\x69\x73\x50\x61\x69\x6E\x74\x42\x6F\x75\x6E\x64\x73\x49\x6E\x76\x65\x72\x74\x65\x64","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x50\x6F\x69\x6E\x74","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x58","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x59","\x67\x65\x74\x52\x6F\x74\x61\x74\x65\x64\x50\x6F\x69\x6E\x74","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65\x55\x6E\x72\x6F\x74\x61\x74\x65\x64","\x72\x6F\x75\x6E\x64","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x63\x65\x6C\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x53\x69\x7A\x65","\x64\x65\x66\x61\x75\x6C\x74\x56\x61\x6C\x75\x65","\x73\x63\x61\x6C\x65\x46\x61\x63\x74\x6F\x72","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x73\x74\x65\x6E\x63\x69\x6C","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73"];(function(){function _0x4494x1(){}_0x4494x1[_0x7f60[0]]= new mxCylinder();_0x4494x1[_0x7f60[0]][_0x7f60[1]]=_0x4494x1;_0x4494x1[_0x7f60[0]][_0x7f60[2]]=20;_0x4494x1[_0x7f60[0]][_0x7f60[3]]=function(_0x4494x2,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6,_0x4494x7){var _0x4494x8=Math[_0x7f60[6]](_0x4494x5,Math[_0x7f60[6]](_0x4494x6,mxUtils[_0x7f60[5]](this[_0x7f60[4]],_0x7f60[2],this[_0x7f60[2]])));if(_0x4494x7){_0x4494x2[_0x7f60[7]](_0x4494x8,_0x4494x6);_0x4494x2[_0x7f60[8]](_0x4494x8,_0x4494x8);_0x4494x2[_0x7f60[8]](0,0);_0x4494x2[_0x7f60[7]](_0x4494x8,_0x4494x8);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x8);_0x4494x2[_0x7f60[9]]()}else {_0x4494x2[_0x7f60[7]](0,0);_0x4494x2[_0x7f60[8]](_0x4494x5-_0x4494x8,0);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x8);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x6);_0x4494x2[_0x7f60[8]](_0x4494x8,_0x4494x6);_0x4494x2[_0x7f60[8]](0,_0x4494x6-_0x4494x8);_0x4494x2[_0x7f60[8]](0,0);_0x4494x2[_0x7f60[10]]();_0x4494x2[_0x7f60[9]]()}};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[11]]=_0x4494x1;function _0x4494x9(){}_0x4494x9[_0x7f60[0]]= new mxCylinder();_0x4494x9[_0x7f60[0]][_0x7f60[1]]=_0x4494x9;_0x4494x9[_0x7f60[0]][_0x7f60[2]]=30;_0x4494x9[_0x7f60[0]][_0x7f60[3]]=function(_0x4494x2,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6,_0x4494x7){var _0x4494x8=Math[_0x7f60[6]](_0x4494x5,Math[_0x7f60[6]](_0x4494x6,mxUtils[_0x7f60[5]](this[_0x7f60[4]],_0x7f60[2],this[_0x7f60[2]])));if(_0x4494x7){_0x4494x2[_0x7f60[7]](_0x4494x5-_0x4494x8,0);_0x4494x2[_0x7f60[8]](_0x4494x5-_0x4494x8,_0x4494x8);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x8);_0x4494x2[_0x7f60[9]]()}else {_0x4494x2[_0x7f60[7]](0,0);_0x4494x2[_0x7f60[8]](_0x4494x5-_0x4494x8,0);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x8);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x6);_0x4494x2[_0x7f60[8]](0,_0x4494x6);_0x4494x2[_0x7f60[8]](0,0);_0x4494x2[_0x7f60[10]]();_0x4494x2[_0x7f60[9]]()}};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[13]]=_0x4494x9;function _0x4494xa(){}_0x4494xa[_0x7f60[0]]= new mxCylinder();_0x4494xa[_0x7f60[0]][_0x7f60[1]]=_0x4494xa;_0x4494xa[_0x7f60[0]][_0x7f60[14]]=60;_0x4494xa[_0x7f60[0]][_0x7f60[15]]=20;_0x4494xa[_0x7f60[0]][_0x7f60[16]]=_0x7f60[17];_0x4494xa[_0x7f60[0]][_0x7f60[3]]=function(_0x4494x2,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6,_0x4494x7){var _0x4494xb=mxUtils[_0x7f60[5]](this[_0x7f60[4]],_0x7f60[14],this[_0x7f60[14]]);var _0x4494xc=mxUtils[_0x7f60[5]](this[_0x7f60[4]],_0x7f60[15],this[_0x7f60[15]]);var _0x4494xd=mxUtils[_0x7f60[5]](this[_0x7f60[4]],_0x7f60[16],this[_0x7f60[16]]);var _0x4494xe=Math[_0x7f60[6]](_0x4494x5,_0x4494xb);var _0x4494xf=Math[_0x7f60[6]](_0x4494x6,_0x4494xc);if(_0x4494x7){if(_0x4494xd==_0x7f60[18]){_0x4494x2[_0x7f60[7]](0,_0x4494xf);_0x4494x2[_0x7f60[8]](_0x4494xe,_0x4494xf)}else {_0x4494x2[_0x7f60[7]](_0x4494x5-_0x4494xe,_0x4494xf);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494xf)};_0x4494x2[_0x7f60[9]]()}else {if(_0x4494xd==_0x7f60[18]){_0x4494x2[_0x7f60[7]](0,0);_0x4494x2[_0x7f60[8]](_0x4494xe,0);_0x4494x2[_0x7f60[8]](_0x4494xe,_0x4494xf);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494xf)}else {_0x4494x2[_0x7f60[7]](0,_0x4494xf);_0x4494x2[_0x7f60[8]](_0x4494x5-_0x4494xe,_0x4494xf);_0x4494x2[_0x7f60[8]](_0x4494x5-_0x4494xe,0);_0x4494x2[_0x7f60[8]](_0x4494x5,0)};_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x6);_0x4494x2[_0x7f60[8]](0,_0x4494x6);_0x4494x2[_0x7f60[8]](0,_0x4494xf);_0x4494x2[_0x7f60[10]]();_0x4494x2[_0x7f60[9]]()}};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[19]]=_0x4494xa;function _0x4494x10(){}_0x4494x10[_0x7f60[0]]= new mxCylinder();_0x4494x10[_0x7f60[0]][_0x7f60[1]]=_0x4494x10;_0x4494x10[_0x7f60[0]][_0x7f60[2]]=30;_0x4494x10[_0x7f60[0]][_0x7f60[3]]=function(_0x4494x2,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6,_0x4494x7){var _0x4494x8=Math[_0x7f60[6]](_0x4494x5,Math[_0x7f60[6]](_0x4494x6,mxUtils[_0x7f60[5]](this[_0x7f60[4]],_0x7f60[2],this[_0x7f60[2]])));if(!_0x4494x7){_0x4494x2[_0x7f60[7]](_0x4494x8,0);_0x4494x2[_0x7f60[8]](_0x4494x5,0);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x6);_0x4494x2[_0x7f60[8]](0,_0x4494x6);_0x4494x2[_0x7f60[8]](0,_0x4494x8);_0x4494x2[_0x7f60[8]](_0x4494x8,0);_0x4494x2[_0x7f60[10]]();_0x4494x2[_0x7f60[9]]()}};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[20]]=_0x4494x10;function _0x4494x11(){}_0x4494x11[_0x7f60[0]]= new mxCylinder();_0x4494x11[_0x7f60[0]][_0x7f60[1]]=_0x4494x11;_0x4494x11[_0x7f60[0]][_0x7f60[2]]=0.4;_0x4494x11[_0x7f60[0]][_0x7f60[3]]=function(_0x4494x2,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6,_0x4494x7){var _0x4494x8=mxUtils[_0x7f60[5]](this[_0x7f60[4]],_0x7f60[2],this[_0x7f60[2]]);var _0x4494xf=_0x4494x6*_0x4494x8;var _0x4494x12=1.4;if(!_0x4494x7){_0x4494x2[_0x7f60[7]](0,_0x4494xf/2);_0x4494x2[_0x7f60[21]](_0x4494x5/4,_0x4494xf*_0x4494x12,_0x4494x5/2,_0x4494xf/2);_0x4494x2[_0x7f60[21]](_0x4494x5*3/4,_0x4494xf*(1-_0x4494x12),_0x4494x5,_0x4494xf/2);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x6-_0x4494xf/2);_0x4494x2[_0x7f60[21]](_0x4494x5*3/4,_0x4494x6-_0x4494xf*_0x4494x12,_0x4494x5/2,_0x4494x6-_0x4494xf/2);_0x4494x2[_0x7f60[21]](_0x4494x5/4,_0x4494x6-_0x4494xf*(1-_0x4494x12),0,_0x4494x6-_0x4494xf/2);_0x4494x2[_0x7f60[8]](0,_0x4494xf/2);_0x4494x2[_0x7f60[10]]();_0x4494x2[_0x7f60[9]]()}};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[22]]=_0x4494x11;function _0x4494x13(){}_0x4494x13[_0x7f60[0]]= new mxCylinder();_0x4494x13[_0x7f60[0]][_0x7f60[1]]=_0x4494x13;_0x4494x13[_0x7f60[0]][_0x7f60[2]]=0.2;_0x4494x13[_0x7f60[0]][_0x7f60[3]]=function(_0x4494x2,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6,_0x4494x7){var _0x4494x8=_0x4494x5*mxUtils[_0x7f60[5]](this[_0x7f60[4]],_0x7f60[2],this[_0x7f60[2]]);if(!_0x4494x7){_0x4494x2[_0x7f60[7]](0,0);_0x4494x2[_0x7f60[8]](_0x4494x5-_0x4494x8,0);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x6/2);_0x4494x2[_0x7f60[8]](_0x4494x5-_0x4494x8,_0x4494x6);_0x4494x2[_0x7f60[8]](0,_0x4494x6);_0x4494x2[_0x7f60[8]](_0x4494x8,_0x4494x6/2);_0x4494x2[_0x7f60[10]]();_0x4494x2[_0x7f60[9]]()}};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[23]]=_0x4494x13;function _0x4494x14(){mxRectangleShape[_0x7f60[24]](this)}mxUtils[_0x7f60[25]](_0x4494x14,mxRectangleShape);_0x4494x14[_0x7f60[0]][_0x7f60[26]]=function(){return false};_0x4494x14[_0x7f60[0]][_0x7f60[27]]=function(_0x4494x15,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6){var _0x4494x16=Math[_0x7f60[6]](_0x4494x5/5,_0x4494x6/5)+1;_0x4494x15[_0x7f60[28]]();_0x4494x15[_0x7f60[7]](_0x4494x3+_0x4494x5/2,_0x4494x4+_0x4494x16);_0x4494x15[_0x7f60[8]](_0x4494x3+_0x4494x5/2,_0x4494x4+_0x4494x6-_0x4494x16);_0x4494x15[_0x7f60[7]](_0x4494x3+_0x4494x16,_0x4494x4+_0x4494x6/2);_0x4494x15[_0x7f60[8]](_0x4494x3+_0x4494x5-_0x4494x16,_0x4494x4+_0x4494x6/2);_0x4494x15[_0x7f60[9]]();_0x4494x15[_0x7f60[29]]();mxRectangleShape[_0x7f60[0]][_0x7f60[27]][_0x7f60[30]](this,arguments)};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[31]]=_0x4494x14;function _0x4494x17(){mxRectangleShape[_0x7f60[24]](this)}mxUtils[_0x7f60[25]](_0x4494x17,mxRectangleShape);_0x4494x17[_0x7f60[0]][_0x7f60[26]]=function(){return false};_0x4494x17[_0x7f60[0]][_0x7f60[27]]=function(_0x4494x15,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6){if(this[_0x7f60[4]]!=null){if(this[_0x7f60[4]][_0x7f60[32]]==1){var _0x4494x18=Math[_0x7f60[34]](2,this[_0x7f60[33]]+1);mxRectangleShape[_0x7f60[0]][_0x7f60[35]][_0x7f60[24]](this,_0x4494x15,_0x4494x3+_0x4494x18,_0x4494x4+_0x4494x18,_0x4494x5-2*_0x4494x18,_0x4494x6-2*_0x4494x18);mxRectangleShape[_0x7f60[0]][_0x7f60[27]][_0x7f60[30]](this,arguments);_0x4494x3+=_0x4494x18;_0x4494x4+=_0x4494x18;_0x4494x5-=2*_0x4494x18;_0x4494x6-=2*_0x4494x18};_0x4494x15[_0x7f60[36]](false);var _0x4494x19=0;var _0x4494x1a=null;do{_0x4494x1a=mxCellRenderer[_0x7f60[0]][_0x7f60[12]][this[_0x7f60[4]][_0x7f60[37]+_0x4494x19]];if(_0x4494x1a!=null){var _0x4494x1b=this[_0x7f60[4]][_0x7f60[37]+_0x4494x19+_0x7f60[38]];var _0x4494x1c=this[_0x7f60[4]][_0x7f60[37]+_0x4494x19+_0x7f60[39]];var _0x4494x1d=this[_0x7f60[4]][_0x7f60[37]+_0x4494x19+_0x7f60[40]];var _0x4494x1e=this[_0x7f60[4]][_0x7f60[37]+_0x4494x19+_0x7f60[41]];var _0x4494x1f=this[_0x7f60[4]][_0x7f60[37]+_0x4494x19+_0x7f60[42]]||0;var _0x4494x20=this[_0x7f60[4]][_0x7f60[37]+_0x4494x19+_0x7f60[43]];if(_0x4494x20!=null){_0x4494x1f+=this[_0x7f60[44]](_0x4494x5+this[_0x7f60[33]],_0x4494x6+this[_0x7f60[33]])*_0x4494x20};var _0x4494x21=_0x4494x3;var _0x4494x22=_0x4494x4;if(_0x4494x1b==mxConstants[_0x7f60[45]]){_0x4494x21+=(_0x4494x5-_0x4494x1d)/2}else {if(_0x4494x1b==mxConstants[_0x7f60[46]]){_0x4494x21+=_0x4494x5-_0x4494x1d-_0x4494x1f}else {_0x4494x21+=_0x4494x1f}};if(_0x4494x1c==mxConstants[_0x7f60[47]]){_0x4494x22+=(_0x4494x6-_0x4494x1e)/2}else {if(_0x4494x1c==mxConstants[_0x7f60[48]]){_0x4494x22+=_0x4494x6-_0x4494x1e-_0x4494x1f}else {_0x4494x22+=_0x4494x1f}};_0x4494x15[_0x7f60[49]]();var _0x4494x23= new _0x4494x1a();_0x4494x23[_0x7f60[4]]=this[_0x7f60[4]];_0x4494x1a[_0x7f60[0]][_0x7f60[50]][_0x7f60[24]](_0x4494x23,_0x4494x15,_0x4494x21,_0x4494x22,_0x4494x1d,_0x4494x1e);_0x4494x15[_0x7f60[51]]()};_0x4494x19++}while(_0x4494x1a!=null);}};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[52]]=_0x4494x17;function _0x4494x24(){}_0x4494x24[_0x7f60[0]]= new mxCylinder();_0x4494x24[_0x7f60[0]][_0x7f60[1]]=_0x4494x24;_0x4494x24[_0x7f60[0]][_0x7f60[3]]=function(_0x4494x2,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6,_0x4494x7){if(_0x4494x7){_0x4494x2[_0x7f60[7]](0,0);_0x4494x2[_0x7f60[8]](_0x4494x5/2,_0x4494x6/2);_0x4494x2[_0x7f60[8]](_0x4494x5,0);_0x4494x2[_0x7f60[9]]()}else {_0x4494x2[_0x7f60[7]](0,0);_0x4494x2[_0x7f60[8]](_0x4494x5,0);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x6);_0x4494x2[_0x7f60[8]](0,_0x4494x6);_0x4494x2[_0x7f60[10]]()}};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[53]]=_0x4494x24;function _0x4494x25(){}_0x4494x25[_0x7f60[0]]= new mxCylinder();_0x4494x25[_0x7f60[0]][_0x7f60[1]]=_0x4494x25;_0x4494x25[_0x7f60[0]][_0x7f60[54]]=true;_0x4494x25[_0x7f60[0]][_0x7f60[3]]=function(_0x4494x2,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6,_0x4494x7){var _0x4494x1d=_0x4494x5/3;var _0x4494x1e=_0x4494x6/4;if(!_0x4494x7){_0x4494x2[_0x7f60[7]](_0x4494x5/2,_0x4494x1e);_0x4494x2[_0x7f60[55]](_0x4494x5/2-_0x4494x1d,_0x4494x1e,_0x4494x5/2-_0x4494x1d,0,_0x4494x5/2,0);_0x4494x2[_0x7f60[55]](_0x4494x5/2+_0x4494x1d,0,_0x4494x5/2+_0x4494x1d,_0x4494x1e,_0x4494x5/2,_0x4494x1e);_0x4494x2[_0x7f60[10]]();_0x4494x2[_0x7f60[7]](_0x4494x5/2,_0x4494x1e);_0x4494x2[_0x7f60[8]](_0x4494x5/2,2*_0x4494x6/3);_0x4494x2[_0x7f60[7]](_0x4494x5/2,_0x4494x6/3);_0x4494x2[_0x7f60[8]](0,_0x4494x6/3);_0x4494x2[_0x7f60[7]](_0x4494x5/2,_0x4494x6/3);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x6/3);_0x4494x2[_0x7f60[7]](_0x4494x5/2,2*_0x4494x6/3);_0x4494x2[_0x7f60[8]](0,_0x4494x6);_0x4494x2[_0x7f60[7]](_0x4494x5/2,2*_0x4494x6/3);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x6);_0x4494x2[_0x7f60[9]]()}};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[56]]=_0x4494x25;function _0x4494x26(){}_0x4494x26[_0x7f60[0]]= new mxCylinder();_0x4494x26[_0x7f60[0]][_0x7f60[1]]=_0x4494x26;_0x4494x26[_0x7f60[0]][_0x7f60[2]]=10;_0x4494x26[_0x7f60[0]][_0x7f60[54]]=true;_0x4494x26[_0x7f60[0]][_0x7f60[3]]=function(_0x4494x2,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6,_0x4494x7){var _0x4494x27=mxUtils[_0x7f60[5]](this[_0x7f60[4]],_0x7f60[2],this[_0x7f60[2]]);var _0x4494x1d=_0x4494x27*2/3;var _0x4494x1e=_0x4494x27;if(!_0x4494x7){_0x4494x2[_0x7f60[7]](_0x4494x5/2,_0x4494x1e);_0x4494x2[_0x7f60[55]](_0x4494x5/2-_0x4494x1d,_0x4494x1e,_0x4494x5/2-_0x4494x1d,0,_0x4494x5/2,0);_0x4494x2[_0x7f60[55]](_0x4494x5/2+_0x4494x1d,0,_0x4494x5/2+_0x4494x1d,_0x4494x1e,_0x4494x5/2,_0x4494x1e);_0x4494x2[_0x7f60[10]]();_0x4494x2[_0x7f60[7]](_0x4494x5/2,_0x4494x1e);_0x4494x2[_0x7f60[8]](_0x4494x5/2,_0x4494x6);_0x4494x2[_0x7f60[9]]()}};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[57]]=_0x4494x26;function _0x4494x28(){}_0x4494x28[_0x7f60[0]]= new mxCylinder();_0x4494x28[_0x7f60[0]][_0x7f60[1]]=_0x4494x28;_0x4494x28[_0x7f60[0]][_0x7f60[58]]=32;_0x4494x28[_0x7f60[0]][_0x7f60[59]]=12;_0x4494x28[_0x7f60[0]][_0x7f60[3]]=function(_0x4494x2,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6,_0x4494x7){var _0x4494xe=mxUtils[_0x7f60[5]](this[_0x7f60[4]],_0x7f60[58],this[_0x7f60[58]]);var _0x4494xf=mxUtils[_0x7f60[5]](this[_0x7f60[4]],_0x7f60[59],this[_0x7f60[59]]);var _0x4494x29=_0x4494xe/2;var _0x4494x2a=_0x4494x29+_0x4494xe/2;var _0x4494x2b=0.3*_0x4494x6-_0x4494xf/2;var _0x4494x2c=0.7*_0x4494x6-_0x4494xf/2;if(_0x4494x7){_0x4494x2[_0x7f60[7]](_0x4494x29,_0x4494x2b);_0x4494x2[_0x7f60[8]](_0x4494x2a,_0x4494x2b);_0x4494x2[_0x7f60[8]](_0x4494x2a,_0x4494x2b+_0x4494xf);_0x4494x2[_0x7f60[8]](_0x4494x29,_0x4494x2b+_0x4494xf);_0x4494x2[_0x7f60[7]](_0x4494x29,_0x4494x2c);_0x4494x2[_0x7f60[8]](_0x4494x2a,_0x4494x2c);_0x4494x2[_0x7f60[8]](_0x4494x2a,_0x4494x2c+_0x4494xf);_0x4494x2[_0x7f60[8]](_0x4494x29,_0x4494x2c+_0x4494xf);_0x4494x2[_0x7f60[9]]()}else {_0x4494x2[_0x7f60[7]](_0x4494x29,0);_0x4494x2[_0x7f60[8]](_0x4494x5,0);_0x4494x2[_0x7f60[8]](_0x4494x5,_0x4494x6);_0x4494x2[_0x7f60[8]](_0x4494x29,_0x4494x6);_0x4494x2[_0x7f60[8]](_0x4494x29,_0x4494x2c+_0x4494xf);_0x4494x2[_0x7f60[8]](0,_0x4494x2c+_0x4494xf);_0x4494x2[_0x7f60[8]](0,_0x4494x2c);_0x4494x2[_0x7f60[8]](_0x4494x29,_0x4494x2c);_0x4494x2[_0x7f60[8]](_0x4494x29,_0x4494x2b+_0x4494xf);_0x4494x2[_0x7f60[8]](0,_0x4494x2b+_0x4494xf);_0x4494x2[_0x7f60[8]](0,_0x4494x2b);_0x4494x2[_0x7f60[8]](_0x4494x29,_0x4494x2b);_0x4494x2[_0x7f60[10]]();_0x4494x2[_0x7f60[9]]()}};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[60]]=_0x4494x28;function _0x4494x2d(){}_0x4494x2d[_0x7f60[0]]= new mxDoubleEllipse();_0x4494x2d[_0x7f60[0]][_0x7f60[1]]=_0x4494x2d;_0x4494x2d[_0x7f60[0]][_0x7f60[61]]=true;_0x4494x2d[_0x7f60[0]][_0x7f60[50]]=function(_0x4494x15,_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6){var _0x4494x18=Math[_0x7f60[6]](4,Math[_0x7f60[6]](_0x4494x5/5,_0x4494x6/5));if(_0x4494x5>0&&_0x4494x6>0){_0x4494x15[_0x7f60[62]](_0x4494x3+_0x4494x18,_0x4494x4+_0x4494x18,_0x4494x5-2*_0x4494x18,_0x4494x6-2*_0x4494x18);_0x4494x15[_0x7f60[63]]()};_0x4494x15[_0x7f60[64]](false);if(this[_0x7f60[61]]){_0x4494x15[_0x7f60[62]](_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6);_0x4494x15[_0x7f60[29]]()}};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[65]]=_0x4494x2d;function _0x4494x2e(){}_0x4494x2e[_0x7f60[0]]= new _0x4494x2d();_0x4494x2e[_0x7f60[0]][_0x7f60[1]]=_0x4494x2e;_0x4494x2e[_0x7f60[0]][_0x7f60[61]]=false;mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[66]]=_0x4494x2e;var _0x4494x2f=mxImageExport[_0x7f60[0]][_0x7f60[67]];mxImageExport[_0x7f60[0]][_0x7f60[67]]=function(){_0x4494x2f[_0x7f60[30]](this,arguments);function _0x4494x30(_0x4494x31){return {drawShape:function(_0x4494x32,_0x4494x33,_0x4494x34,_0x4494x35){var _0x4494x3=_0x4494x34[_0x7f60[68]];var _0x4494x4=_0x4494x34[_0x7f60[69]];var _0x4494x5=_0x4494x34[_0x7f60[70]];var _0x4494x6=_0x4494x34[_0x7f60[71]];if(_0x4494x35){var _0x4494x18=Math[_0x7f60[6]](4,Math[_0x7f60[6]](_0x4494x5/5,_0x4494x6/5));_0x4494x3+=_0x4494x18;_0x4494x4+=_0x4494x18;_0x4494x5-=2*_0x4494x18;_0x4494x6-=2*_0x4494x18;if(_0x4494x5>0&&_0x4494x6>0){_0x4494x32[_0x7f60[62]](_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6)};return true}else {_0x4494x32[_0x7f60[63]]();if(_0x4494x31){_0x4494x32[_0x7f60[62]](_0x4494x3,_0x4494x4,_0x4494x5,_0x4494x6);_0x4494x32[_0x7f60[29]]()}}}}}this[_0x7f60[72]][_0x7f60[65]]=_0x4494x30(true);this[_0x7f60[72]][_0x7f60[66]]=_0x4494x30(false)};function _0x4494x36(){mxArrow[_0x7f60[24]](this)}mxUtils[_0x7f60[25]](_0x4494x36,mxArrow);_0x4494x36[_0x7f60[0]][_0x7f60[73]]=function(_0x4494x15,_0x4494x37){var _0x4494x1d=10;var _0x4494x38=_0x4494x37[0];var _0x4494x39=_0x4494x37[_0x4494x37[_0x7f60[74]]-1];var _0x4494xe=_0x4494x39[_0x7f60[68]]-_0x4494x38[_0x7f60[68]];var _0x4494xf=_0x4494x39[_0x7f60[69]]-_0x4494x38[_0x7f60[69]];var _0x4494x3a=Math[_0x7f60[75]](_0x4494xe*_0x4494xe+_0x4494xf*_0x4494xf);var _0x4494x3b=_0x4494x3a;var _0x4494x3c=_0x4494xe/_0x4494x3a;var _0x4494x3d=_0x4494xf/_0x4494x3a;var _0x4494x3e=_0x4494x3b*_0x4494x3c;var _0x4494x3f=_0x4494x3b*_0x4494x3d;var _0x4494x40=_0x4494x1d*_0x4494x3d/3;var _0x4494x41=-_0x4494x1d*_0x4494x3c/3;var _0x4494x42=_0x4494x38[_0x7f60[68]]-_0x4494x40/2;var _0x4494x43=_0x4494x38[_0x7f60[69]]-_0x4494x41/2;var _0x4494x44=_0x4494x42+_0x4494x40;var _0x4494x45=_0x4494x43+_0x4494x41;var _0x4494x46=_0x4494x44+_0x4494x3e;var _0x4494x47=_0x4494x45+_0x4494x3f;var _0x4494x48=_0x4494x46+_0x4494x40;var _0x4494x49=_0x4494x47+_0x4494x41;var _0x4494x4a=_0x4494x48-3*_0x4494x40;var _0x4494x4b=_0x4494x49-3*_0x4494x41;_0x4494x15[_0x7f60[28]]();_0x4494x15[_0x7f60[7]](_0x4494x44,_0x4494x45);_0x4494x15[_0x7f60[8]](_0x4494x46,_0x4494x47);_0x4494x15[_0x7f60[7]](_0x4494x4a+_0x4494x40,_0x4494x4b+_0x4494x41);_0x4494x15[_0x7f60[8]](_0x4494x42,_0x4494x43);_0x4494x15[_0x7f60[29]]()};mxCellRenderer[_0x7f60[0]][_0x7f60[12]][_0x7f60[76]]=_0x4494x36;mxMarker[_0x7f60[78]](_0x7f60[77],function(_0x4494x32,_0x4494x1a,_0x4494x4c,_0x4494x39,_0x4494x4d,_0x4494x4e,_0x4494x4f,_0x4494x50,_0x4494x51,_0x4494x52){var _0x4494x3c=_0x4494x4d*(_0x4494x4f+_0x4494x51+1);var _0x4494x3d=_0x4494x4e*(_0x4494x4f+_0x4494x51+1);return function(){_0x4494x32[_0x7f60[28]]();_0x4494x32[_0x7f60[7]](_0x4494x39[_0x7f60[68]]-_0x4494x3c/2-_0x4494x3d/2,_0x4494x39[_0x7f60[69]]-_0x4494x3d/2+_0x4494x3c/2);_0x4494x32[_0x7f60[8]](_0x4494x39[_0x7f60[68]]+_0x4494x3d/2-3*_0x4494x3c/2,_0x4494x39[_0x7f60[69]]-3*_0x4494x3d/2-_0x4494x3c/2);_0x4494x32[_0x7f60[29]]()}});var _0x4494x53=-99;if( typeof (mxVertexHandler)!=_0x7f60[79]){function _0x4494x54(_0x4494x33){mxVertexHandler[_0x7f60[24]](this,_0x4494x33)}mxUtils[_0x7f60[25]](_0x4494x54,mxVertexHandler);_0x4494x54[_0x7f60[0]][_0x7f60[80]]=false;_0x4494x54[_0x7f60[0]][_0x7f60[81]]=function(){this[_0x7f60[82]]=mxUtils[_0x7f60[5]](this[_0x7f60[83]][_0x7f60[4]],mxConstants.STYLE_HORIZONTAL,true);var _0x4494x55=this[_0x7f60[83]][_0x7f60[85]][_0x7f60[84]];if(this[_0x7f60[86]]!=null){var _0x4494x34= new mxRectangle(0,0,this[_0x7f60[86]][_0x7f60[70]],this[_0x7f60[86]][_0x7f60[71]]);this[_0x7f60[87]]= new mxImageShape(_0x4494x34,this[_0x7f60[86]][_0x7f60[88]])}else {var _0x4494x4f=10;var _0x4494x34= new mxRectangle(0,0,_0x4494x4f,_0x4494x4f);this[_0x7f60[87]]= new mxRhombus(_0x4494x34,mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};this[_0x7f60[87]][_0x7f60[89]]=(_0x4494x55[_0x7f60[89]]!=mxConstants[_0x7f60[90]])?mxConstants[_0x7f60[91]]:mxConstants[_0x7f60[90]];this[_0x7f60[87]][_0x7f60[81]](_0x4494x55[_0x7f60[93]]()[_0x7f60[92]]());this[_0x7f60[87]][_0x7f60[95]][_0x7f60[4]][_0x7f60[94]]=this[_0x7f60[96]]();mxEvent[_0x7f60[97]](this[_0x7f60[87]][_0x7f60[95]],_0x4494x55,this[_0x7f60[83]]);mxVertexHandler[_0x7f60[0]][_0x7f60[81]][_0x7f60[30]](this,arguments)};_0x4494x54[_0x7f60[0]][_0x7f60[96]]=function(){return _0x7f60[98]};_0x4494x54[_0x7f60[0]][_0x7f60[99]]=function(){mxVertexHandler[_0x7f60[0]][_0x7f60[99]][_0x7f60[30]](this,arguments);var _0x4494x4f=this[_0x7f60[87]][_0x7f60[100]][_0x7f60[70]];this[_0x7f60[87]][_0x7f60[100]]=this[_0x7f60[101]](_0x4494x4f);this[_0x7f60[87]][_0x7f60[99]]()};_0x4494x54[_0x7f60[0]][_0x7f60[102]]=function(){mxVertexHandler[_0x7f60[0]][_0x7f60[102]][_0x7f60[30]](this,arguments);if(this[_0x7f60[87]]!=null){this[_0x7f60[87]][_0x7f60[102]]();this[_0x7f60[87]]=null}};_0x4494x54[_0x7f60[0]][_0x7f60[103]]=function(_0x4494x56){if(_0x4494x56[_0x7f60[104]](this[_0x7f60[87]])){return _0x4494x53};return mxVertexHandler[_0x7f60[0]][_0x7f60[103]][_0x7f60[30]](this,arguments)};_0x4494x54[_0x7f60[0]][_0x7f60[105]]=function(_0x4494x57,_0x4494x56){if(!_0x4494x56[_0x7f60[106]]()&&this[_0x7f60[107]]==_0x4494x53){var _0x4494x58= new mxPoint(_0x4494x56[_0x7f60[108]](),_0x4494x56[_0x7f60[109]]());this[_0x7f60[110]](_0x4494x58);var _0x4494x59=this[_0x7f60[84]][_0x7f60[112]](_0x4494x56[_0x7f60[111]]());var _0x4494x5a=this[_0x7f60[84]][_0x7f60[93]]()[_0x7f60[113]];if(_0x4494x59&&this[_0x7f60[80]]){_0x4494x58[_0x7f60[68]]=this[_0x7f60[84]][_0x7f60[114]](_0x4494x58[_0x7f60[68]]/_0x4494x5a)*_0x4494x5a;_0x4494x58[_0x7f60[69]]=this[_0x7f60[84]][_0x7f60[114]](_0x4494x58[_0x7f60[69]]/_0x4494x5a)*_0x4494x5a};this[_0x7f60[115]](_0x4494x58);this[_0x7f60[116]](this[_0x7f60[87]],_0x4494x58[_0x7f60[68]],_0x4494x58[_0x7f60[69]]);this[_0x7f60[83]][_0x7f60[85]][_0x7f60[84]][_0x7f60[117]][_0x7f60[99]](this[_0x7f60[83]],true);_0x4494x56[_0x7f60[118]]()}else {mxVertexHandler[_0x7f60[0]][_0x7f60[105]][_0x7f60[30]](this,arguments)}};_0x4494x54[_0x7f60[0]][_0x7f60[119]]=function(_0x4494x57,_0x4494x56){if(!_0x4494x56[_0x7f60[106]]()&&this[_0x7f60[107]]==_0x4494x53){this[_0x7f60[120]]();this[_0x7f60[121]]();_0x4494x56[_0x7f60[118]]()}else {mxVertexHandler[_0x7f60[0]][_0x7f60[119]][_0x7f60[30]](this,arguments)}};_0x4494x54[_0x7f60[0]][_0x7f60[101]]=function(_0x4494x4f){var _0x4494x5b=this[_0x7f60[83]][_0x7f60[123]][_0x7f60[122]]();var _0x4494x5c=mxUtils[_0x7f60[124]](_0x4494x5b);var _0x4494x5d=Math[_0x7f60[125]](_0x4494x5c);var _0x4494x5e=Math[_0x7f60[126]](_0x4494x5c);var _0x4494x34= new mxRectangle(this[_0x7f60[83]][_0x7f60[68]],this[_0x7f60[83]][_0x7f60[69]],this[_0x7f60[83]][_0x7f60[70]],this[_0x7f60[83]][_0x7f60[71]]);if(this[_0x7f60[83]][_0x7f60[123]][_0x7f60[127]]()){var _0x4494x5f=(_0x4494x34[_0x7f60[70]]-_0x4494x34[_0x7f60[71]])/2;_0x4494x34[_0x7f60[68]]+=_0x4494x5f;_0x4494x34[_0x7f60[69]]-=_0x4494x5f;var _0x4494x23=_0x4494x34[_0x7f60[70]];_0x4494x34[_0x7f60[70]]=_0x4494x34[_0x7f60[71]];_0x4494x34[_0x7f60[71]]=_0x4494x23};var _0x4494x60=this[_0x7f60[128]](_0x4494x34);if(this[_0x7f60[83]][_0x7f60[123]][_0x7f60[129]]){_0x4494x60[_0x7f60[68]]=2*_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]-_0x4494x60[_0x7f60[68]]};if(this[_0x7f60[83]][_0x7f60[123]][_0x7f60[130]]){_0x4494x60[_0x7f60[69]]=2*_0x4494x34[_0x7f60[69]]+_0x4494x34[_0x7f60[71]]-_0x4494x60[_0x7f60[69]]};_0x4494x60=mxUtils[_0x7f60[133]](_0x4494x60,_0x4494x5d,_0x4494x5e, new mxPoint(this[_0x7f60[83]][_0x7f60[131]](),this[_0x7f60[83]][_0x7f60[132]]()));return  new mxRectangle(_0x4494x60[_0x7f60[68]]-_0x4494x4f/2,_0x4494x60[_0x7f60[69]]-_0x4494x4f/2,_0x4494x4f,_0x4494x4f)};_0x4494x54[_0x7f60[0]][_0x7f60[128]]=function(_0x4494x34){return null};_0x4494x54[_0x7f60[0]][_0x7f60[115]]=function(_0x4494x58){};_0x4494x54[_0x7f60[0]][_0x7f60[110]]=function(_0x4494x58){_0x4494x58[_0x7f60[68]]=Math[_0x7f60[34]](this[_0x7f60[83]][_0x7f60[68]],Math[_0x7f60[6]](this[_0x7f60[83]][_0x7f60[68]]+this[_0x7f60[83]][_0x7f60[70]],_0x4494x58[_0x7f60[68]]));_0x4494x58[_0x7f60[69]]=Math[_0x7f60[34]](this[_0x7f60[83]][_0x7f60[69]],Math[_0x7f60[6]](this[_0x7f60[83]][_0x7f60[69]]+this[_0x7f60[83]][_0x7f60[71]],_0x4494x58[_0x7f60[69]]))};_0x4494x54[_0x7f60[0]][_0x7f60[120]]=function(){};function _0x4494x61(_0x4494x33){_0x4494x54[_0x7f60[24]](this,_0x4494x33)}mxUtils[_0x7f60[25]](_0x4494x61,_0x4494x54);_0x4494x61[_0x7f60[0]][_0x7f60[128]]=function(_0x4494x34){var _0x4494x5a=this[_0x7f60[84]][_0x7f60[93]]()[_0x7f60[113]];var _0x4494xb=Math[_0x7f60[6]](_0x4494x34[_0x7f60[70]],mxUtils[_0x7f60[5]](this[_0x7f60[83]][_0x7f60[4]],_0x7f60[14],60)*_0x4494x5a);var _0x4494xc=Math[_0x7f60[6]](_0x4494x34[_0x7f60[71]],mxUtils[_0x7f60[5]](this[_0x7f60[83]][_0x7f60[4]],_0x7f60[15],20)*_0x4494x5a);var _0x4494xd=mxUtils[_0x7f60[5]](this[_0x7f60[83]][_0x7f60[4]],_0x7f60[16],_0x7f60[17]);var _0x4494x3=(_0x4494xd==_0x7f60[18])?_0x4494x34[_0x7f60[68]]+_0x4494xb:_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]-_0x4494xb;return  new mxPoint(_0x4494x3,_0x4494x34[_0x7f60[69]]+_0x4494xc)};_0x4494x61[_0x7f60[0]][_0x7f60[115]]=function(_0x4494x58){var _0x4494x5b=this[_0x7f60[83]][_0x7f60[123]][_0x7f60[122]]();var _0x4494x5c=mxUtils[_0x7f60[124]](_0x4494x5b);var _0x4494x5d=Math[_0x7f60[125]](-_0x4494x5c);var _0x4494x5e=Math[_0x7f60[126]](-_0x4494x5c);var _0x4494x34= new mxRectangle(this[_0x7f60[83]][_0x7f60[68]],this[_0x7f60[83]][_0x7f60[69]],this[_0x7f60[83]][_0x7f60[70]],this[_0x7f60[83]][_0x7f60[71]]);if(this[_0x7f60[83]][_0x7f60[123]][_0x7f60[127]]()){var _0x4494x5f=(_0x4494x34[_0x7f60[70]]-_0x4494x34[_0x7f60[71]])/2;_0x4494x34[_0x7f60[68]]+=_0x4494x5f;_0x4494x34[_0x7f60[69]]-=_0x4494x5f;var _0x4494x23=_0x4494x34[_0x7f60[70]];_0x4494x34[_0x7f60[70]]=_0x4494x34[_0x7f60[71]];_0x4494x34[_0x7f60[71]]=_0x4494x23};var _0x4494x60= new mxPoint(_0x4494x58[_0x7f60[68]],_0x4494x58[_0x7f60[69]]);_0x4494x60=mxUtils[_0x7f60[133]](_0x4494x60,_0x4494x5d,_0x4494x5e, new mxPoint(this[_0x7f60[83]][_0x7f60[131]](),this[_0x7f60[83]][_0x7f60[132]]()));if(this[_0x7f60[83]][_0x7f60[123]][_0x7f60[129]]){_0x4494x60[_0x7f60[68]]=2*_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]-_0x4494x60[_0x7f60[68]]};if(this[_0x7f60[83]][_0x7f60[123]][_0x7f60[130]]){_0x4494x60[_0x7f60[69]]=2*_0x4494x34[_0x7f60[69]]+_0x4494x34[_0x7f60[71]]-_0x4494x60[_0x7f60[69]]};var _0x4494x62=this[_0x7f60[134]](_0x4494x60,_0x4494x34);if(_0x4494x62!=null){if(this[_0x7f60[83]][_0x7f60[123]][_0x7f60[129]]){_0x4494x62[_0x7f60[68]]=2*_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]-_0x4494x62[_0x7f60[68]]};if(this[_0x7f60[83]][_0x7f60[123]][_0x7f60[130]]){_0x4494x62[_0x7f60[69]]=2*_0x4494x34[_0x7f60[69]]+_0x4494x34[_0x7f60[71]]-_0x4494x62[_0x7f60[69]]};_0x4494x5d=Math[_0x7f60[125]](_0x4494x5c);_0x4494x5e=Math[_0x7f60[126]](_0x4494x5c);_0x4494x62=mxUtils[_0x7f60[133]](_0x4494x62,_0x4494x5d,_0x4494x5e, new mxPoint(this[_0x7f60[83]][_0x7f60[131]](),this[_0x7f60[83]][_0x7f60[132]]()));_0x4494x58[_0x7f60[68]]=_0x4494x62[_0x7f60[68]];_0x4494x58[_0x7f60[69]]=_0x4494x62[_0x7f60[69]]}};_0x4494x61[_0x7f60[0]][_0x7f60[134]]=function(_0x4494x60,_0x4494x34){var _0x4494xd=mxUtils[_0x7f60[5]](this[_0x7f60[83]][_0x7f60[4]],_0x7f60[16],_0x7f60[17]);var _0x4494xb=(_0x4494xd==_0x7f60[18])?_0x4494x60[_0x7f60[68]]-_0x4494x34[_0x7f60[68]]:_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]-_0x4494x60[_0x7f60[68]];var _0x4494xc=_0x4494x60[_0x7f60[69]]-_0x4494x34[_0x7f60[69]];var _0x4494x5a=this[_0x7f60[84]][_0x7f60[93]]()[_0x7f60[113]];this[_0x7f60[83]][_0x7f60[4]][_0x7f60[14]]=Math[_0x7f60[135]](Math[_0x7f60[34]](1,_0x4494xb)/_0x4494x5a);this[_0x7f60[83]][_0x7f60[4]][_0x7f60[15]]=Math[_0x7f60[135]](Math[_0x7f60[34]](1,_0x4494xc)/_0x4494x5a)};_0x4494x61[_0x7f60[0]][_0x7f60[120]]=function(){var _0x4494x63=this[_0x7f60[84]][_0x7f60[136]]();_0x4494x63[_0x7f60[137]]();try{this[_0x7f60[83]][_0x7f60[85]][_0x7f60[84]][_0x7f60[139]](_0x7f60[14],this[_0x7f60[83]][_0x7f60[4]][_0x7f60[14]],[this[_0x7f60[83]][_0x7f60[138]]]);this[_0x7f60[83]][_0x7f60[85]][_0x7f60[84]][_0x7f60[139]](_0x7f60[15],this[_0x7f60[83]][_0x7f60[4]][_0x7f60[15]],[this[_0x7f60[83]][_0x7f60[138]]])}finally{_0x4494x63[_0x7f60[140]]()}};function _0x4494x64(_0x4494x33){_0x4494x61[_0x7f60[24]](this,_0x4494x33)}mxUtils[_0x7f60[25]](_0x4494x64,_0x4494x61);_0x4494x64[_0x7f60[0]][_0x7f60[128]]=function(_0x4494x34){var _0x4494x5a=this[_0x7f60[84]][_0x7f60[93]]()[_0x7f60[113]];var _0x4494x65=mxUtils[_0x7f60[5]](this[_0x7f60[83]][_0x7f60[4]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);return  new mxPoint(_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]/2,_0x4494x34[_0x7f60[69]]+Math[_0x7f60[6]](_0x4494x34[_0x7f60[71]],_0x4494x65*_0x4494x5a))};_0x4494x64[_0x7f60[0]][_0x7f60[134]]=function(_0x4494x58,_0x4494x34){_0x4494x58[_0x7f60[68]]=_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]/2;startSize=_0x4494x58[_0x7f60[69]]-_0x4494x34[_0x7f60[69]];var _0x4494x5a=this[_0x7f60[84]][_0x7f60[93]]()[_0x7f60[113]];this[_0x7f60[83]][_0x7f60[4]][_0x7f60[141]]=Math[_0x7f60[135]](Math[_0x7f60[34]](1,startSize)/_0x4494x5a);return _0x4494x58};_0x4494x64[_0x7f60[0]][_0x7f60[120]]=function(){this[_0x7f60[83]][_0x7f60[85]][_0x7f60[84]][_0x7f60[139]](_0x7f60[141],this[_0x7f60[83]][_0x7f60[4]][_0x7f60[141]],[this[_0x7f60[83]][_0x7f60[138]]])};function _0x4494x66(_0x4494x33){_0x4494x61[_0x7f60[24]](this,_0x4494x33)}mxUtils[_0x7f60[25]](_0x4494x66,_0x4494x61);_0x4494x66[_0x7f60[0]][_0x7f60[142]]=20;_0x4494x66[_0x7f60[0]][_0x7f60[143]]=1;_0x4494x66[_0x7f60[0]][_0x7f60[128]]=function(_0x4494x34){var _0x4494x5a=this[_0x7f60[84]][_0x7f60[93]]()[_0x7f60[113]];var _0x4494x67=Math[_0x7f60[6]](_0x4494x34[_0x7f60[70]],Math[_0x7f60[6]](_0x4494x34[_0x7f60[71]],mxUtils[_0x7f60[5]](this[_0x7f60[83]][_0x7f60[4]],_0x7f60[2],this[_0x7f60[142]])*_0x4494x5a/this[_0x7f60[143]]));return  new mxPoint(_0x4494x34[_0x7f60[68]]+_0x4494x67,_0x4494x34[_0x7f60[69]]+_0x4494x67)};_0x4494x66[_0x7f60[0]][_0x7f60[134]]=function(_0x4494x60,_0x4494x34){var _0x4494x4f=Math[_0x7f60[34]](0,Math[_0x7f60[6]](Math[_0x7f60[6]](_0x4494x34[_0x7f60[70]]/this[_0x7f60[143]],_0x4494x60[_0x7f60[68]]-_0x4494x34[_0x7f60[68]]),Math[_0x7f60[6]](_0x4494x34[_0x7f60[71]]/this[_0x7f60[143]],_0x4494x60[_0x7f60[69]]-_0x4494x34[_0x7f60[69]])));var _0x4494x5a=this[_0x7f60[84]][_0x7f60[93]]()[_0x7f60[113]];this[_0x7f60[83]][_0x7f60[4]][_0x7f60[2]]=Math[_0x7f60[135]](Math[_0x7f60[34]](1,_0x4494x4f)/_0x4494x5a)*this[_0x7f60[143]];return  new mxPoint(_0x4494x34[_0x7f60[68]]+_0x4494x4f,_0x4494x34[_0x7f60[69]]+_0x4494x4f)};_0x4494x66[_0x7f60[0]][_0x7f60[120]]=function(){this[_0x7f60[83]][_0x7f60[85]][_0x7f60[84]][_0x7f60[139]](_0x7f60[2],this[_0x7f60[83]][_0x7f60[4]][_0x7f60[2]],[this[_0x7f60[83]][_0x7f60[138]]])};function _0x4494x68(_0x4494x33){_0x4494x66[_0x7f60[24]](this,_0x4494x33)}mxUtils[_0x7f60[25]](_0x4494x68,_0x4494x66);_0x4494x68[_0x7f60[0]][_0x7f60[142]]=30;_0x4494x68[_0x7f60[0]][_0x7f60[143]]=2;function _0x4494x69(_0x4494x33){_0x4494x66[_0x7f60[24]](this,_0x4494x33)}mxUtils[_0x7f60[25]](_0x4494x69,_0x4494x66);_0x4494x69[_0x7f60[0]][_0x7f60[142]]=30;_0x4494x69[_0x7f60[0]][_0x7f60[143]]=1;_0x4494x69[_0x7f60[0]][_0x7f60[128]]=function(_0x4494x34){var _0x4494x5a=this[_0x7f60[84]][_0x7f60[93]]()[_0x7f60[113]];var _0x4494x67=Math[_0x7f60[6]](_0x4494x34[_0x7f60[70]],Math[_0x7f60[6]](_0x4494x34[_0x7f60[71]],mxUtils[_0x7f60[5]](this[_0x7f60[83]][_0x7f60[4]],_0x7f60[2],this[_0x7f60[142]])*_0x4494x5a/this[_0x7f60[143]]));return  new mxPoint(_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]-_0x4494x67,_0x4494x34[_0x7f60[69]]+_0x4494x67)};_0x4494x69[_0x7f60[0]][_0x7f60[134]]=function(_0x4494x60,_0x4494x34){var _0x4494x4f=Math[_0x7f60[34]](0,Math[_0x7f60[6]](Math[_0x7f60[6]](_0x4494x34[_0x7f60[70]]/this[_0x7f60[143]],_0x4494x60[_0x7f60[68]]-_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]),Math[_0x7f60[6]](_0x4494x34[_0x7f60[71]]/this[_0x7f60[143]],_0x4494x60[_0x7f60[69]]-_0x4494x34[_0x7f60[69]])));var _0x4494x5a=this[_0x7f60[84]][_0x7f60[93]]()[_0x7f60[113]];this[_0x7f60[83]][_0x7f60[4]][_0x7f60[2]]=Math[_0x7f60[135]](Math[_0x7f60[34]](1,_0x4494x4f)/_0x4494x5a)*this[_0x7f60[143]];return  new mxPoint(_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]-_0x4494x4f,_0x4494x34[_0x7f60[69]]+_0x4494x4f)};function _0x4494x6a(_0x4494x33){_0x4494x66[_0x7f60[24]](this,_0x4494x33)}mxUtils[_0x7f60[25]](_0x4494x6a,_0x4494x66);_0x4494x6a[_0x7f60[0]][_0x7f60[142]]=0.2;_0x4494x6a[_0x7f60[0]][_0x7f60[143]]=1;_0x4494x6a[_0x7f60[0]][_0x7f60[128]]=function(_0x4494x34){var _0x4494x67=mxUtils[_0x7f60[5]](this[_0x7f60[83]][_0x7f60[4]],_0x7f60[2],this[_0x7f60[142]]);return  new mxPoint(_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]*_0x4494x67,_0x4494x34[_0x7f60[69]]+_0x4494x34[_0x7f60[71]]/2)};_0x4494x6a[_0x7f60[0]][_0x7f60[134]]=function(_0x4494x60,_0x4494x34){var _0x4494x4f=Math[_0x7f60[6]](1,(_0x4494x60[_0x7f60[68]]-_0x4494x34[_0x7f60[68]])/_0x4494x34[_0x7f60[70]]);this[_0x7f60[83]][_0x7f60[4]][_0x7f60[2]]=_0x4494x4f;return  new mxPoint(_0x4494x34[_0x7f60[68]]+_0x4494x4f*_0x4494x34[_0x7f60[70]],_0x4494x34[_0x7f60[69]]+_0x4494x34[_0x7f60[71]]/2)};function _0x4494x6b(_0x4494x33){_0x4494x66[_0x7f60[24]](this,_0x4494x33)}mxUtils[_0x7f60[25]](_0x4494x6b,_0x4494x66);_0x4494x6b[_0x7f60[0]][_0x7f60[142]]=0.4;_0x4494x6b[_0x7f60[0]][_0x7f60[143]]=1;_0x4494x6b[_0x7f60[0]][_0x7f60[128]]=function(_0x4494x34){var _0x4494x67=mxUtils[_0x7f60[5]](this[_0x7f60[83]][_0x7f60[4]],_0x7f60[2],this[_0x7f60[142]]);return  new mxPoint(_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]/2,_0x4494x34[_0x7f60[69]]+_0x4494x67*_0x4494x34[_0x7f60[71]]/2)};_0x4494x6b[_0x7f60[0]][_0x7f60[134]]=function(_0x4494x60,_0x4494x34){var _0x4494x4f=Math[_0x7f60[34]](0,Math[_0x7f60[6]](1,((_0x4494x60[_0x7f60[69]]-_0x4494x34[_0x7f60[69]])/_0x4494x34[_0x7f60[71]])*2));this[_0x7f60[83]][_0x7f60[4]][_0x7f60[2]]=_0x4494x4f;return  new mxPoint(_0x4494x34[_0x7f60[68]]+_0x4494x34[_0x7f60[70]]/2,_0x4494x34[_0x7f60[69]]+_0x4494x4f*_0x4494x34[_0x7f60[71]]/2)};var _0x4494x6c={"\x73\x77\x69\x6D\x6C\x61\x6E\x65":_0x4494x64,"\x66\x6F\x6C\x64\x65\x72":_0x4494x61,"\x63\x75\x62\x65":_0x4494x66,"\x63\x61\x72\x64":_0x4494x68,"\x6E\x6F\x74\x65":_0x4494x69,"\x73\x74\x65\x70":_0x4494x6a,"\x74\x61\x70\x65":_0x4494x6b};var _0x4494x6d=mxGraph[_0x7f60[0]][_0x7f60[144]];mxGraph[_0x7f60[0]][_0x7f60[144]]=function(_0x4494x33){if(_0x4494x33!=null){var _0x4494x6e=_0x4494x6c[_0x4494x33[_0x7f60[4]][_0x7f60[123]]];if(_0x4494x6e!=null){return  new _0x4494x6e(_0x4494x33)}};return _0x4494x6d[_0x7f60[30]](this,arguments)}};mxGraph[_0x7f60[0]][_0x7f60[145]]=function(_0x4494x6f,_0x4494x50){if(_0x4494x6f!=null&&_0x4494x6f[_0x7f60[123]]!=null){if(_0x4494x6f[_0x7f60[123]][_0x7f60[146]]!=null){if(_0x4494x6f[_0x7f60[123]][_0x7f60[146]]!=null){return _0x4494x6f[_0x7f60[123]][_0x7f60[146]][_0x7f60[147]]}}else {if(_0x4494x6f[_0x7f60[123]][_0x7f60[147]]!=null){return _0x4494x6f[_0x7f60[123]][_0x7f60[147]]}}};return null};mxRectangleShape[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0,0.25),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(1,0.25),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];mxLabel[_0x7f60[0]][_0x7f60[147]]=mxRectangleShape[_0x7f60[0]][_0x7f60[147]];mxImageShape[_0x7f60[0]][_0x7f60[147]]=mxRectangleShape[_0x7f60[0]][_0x7f60[147]];mxSwimlane[_0x7f60[0]][_0x7f60[147]]=mxRectangleShape[_0x7f60[0]][_0x7f60[147]];_0x4494x14[_0x7f60[0]][_0x7f60[147]]=mxRectangleShape[_0x7f60[0]][_0x7f60[147]];_0x4494x9[_0x7f60[0]][_0x7f60[147]]=mxRectangleShape[_0x7f60[0]][_0x7f60[147]];_0x4494x10[_0x7f60[0]][_0x7f60[147]]=mxRectangleShape[_0x7f60[0]][_0x7f60[147]];_0x4494x1[_0x7f60[0]][_0x7f60[147]]=mxRectangleShape[_0x7f60[0]][_0x7f60[147]];_0x4494xa[_0x7f60[0]][_0x7f60[147]]=mxRectangleShape[_0x7f60[0]][_0x7f60[147]];mxCylinder[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0.15,0.05),false), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.85,0.05),false), new mxConnectionConstraint( new mxPoint(0,0.3),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.7),true), new mxConnectionConstraint( new mxPoint(1,0.3),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.7),true), new mxConnectionConstraint( new mxPoint(0.15,0.95),false), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.85,0.95),false)];_0x4494x25[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0.1),false), new mxConnectionConstraint( new mxPoint(0.5,0),false), new mxConnectionConstraint( new mxPoint(0.75,0.1),false), new mxConnectionConstraint( new mxPoint(0,1/3),false), new mxConnectionConstraint( new mxPoint(0,1),false), new mxConnectionConstraint( new mxPoint(1,1/3),false), new mxConnectionConstraint( new mxPoint(1,1),false), new mxConnectionConstraint( new mxPoint(0.5,0.5),false)];_0x4494x28[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0,0.3),true), new mxConnectionConstraint( new mxPoint(0,0.7),true), new mxConnectionConstraint( new mxPoint(1,0.25),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];mxActor[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.25,0.2),false), new mxConnectionConstraint( new mxPoint(0.1,0.5),false), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(0.75,0.25),false), new mxConnectionConstraint( new mxPoint(0.9,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];_0x4494x11[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.35),false), new mxConnectionConstraint( new mxPoint(0,0.5),false), new mxConnectionConstraint( new mxPoint(0,0.65),false), new mxConnectionConstraint( new mxPoint(1,0.35),false), new mxConnectionConstraint( new mxPoint(1,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.65),false), new mxConnectionConstraint( new mxPoint(0.25,1),false), new mxConnectionConstraint( new mxPoint(0.75,0),false)];_0x4494x13[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true), new mxConnectionConstraint( new mxPoint(0.1,0.25),false), new mxConnectionConstraint( new mxPoint(0.2,0.5),false), new mxConnectionConstraint( new mxPoint(0.1,0.75),false), new mxConnectionConstraint( new mxPoint(0.9,0.25),false), new mxConnectionConstraint( new mxPoint(1,0.5),false), new mxConnectionConstraint( new mxPoint(0.9,0.75),false)];mxLine[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.5),false), new mxConnectionConstraint( new mxPoint(0.25,0.5),false), new mxConnectionConstraint( new mxPoint(0.75,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.5),false)];_0x4494x26[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0.5,0),false), new mxConnectionConstraint( new mxPoint(0.5,1),false)];mxEllipse[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0,0),true), new mxConnectionConstraint( new mxPoint(1,0),true), new mxConnectionConstraint( new mxPoint(0,1),true), new mxConnectionConstraint( new mxPoint(1,1),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.5))];mxDoubleEllipse[_0x7f60[0]][_0x7f60[147]]=mxEllipse[_0x7f60[0]][_0x7f60[147]];mxRhombus[_0x7f60[0]][_0x7f60[147]]=mxEllipse[_0x7f60[0]][_0x7f60[147]];mxTriangle[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.25),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(1,0.5),true)];mxHexagon[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0.375,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.625,0),true), new mxConnectionConstraint( new mxPoint(0.125,0.25),false), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0.125,0.75),false), new mxConnectionConstraint( new mxPoint(0.875,0.25),false), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(0.875,0.75),false), new mxConnectionConstraint( new mxPoint(0.375,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.625,1),true)];mxCloud[_0x7f60[0]][_0x7f60[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0.25),false), new mxConnectionConstraint( new mxPoint(0.4,0.1),false), new mxConnectionConstraint( new mxPoint(0.16,0.55),false), new mxConnectionConstraint( new mxPoint(0.07,0.4),false), new mxConnectionConstraint( new mxPoint(0.31,0.8),false), new mxConnectionConstraint( new mxPoint(0.13,0.77),false), new mxConnectionConstraint( new mxPoint(0.8,0.8),false), new mxConnectionConstraint( new mxPoint(0.55,0.95),false), new mxConnectionConstraint( new mxPoint(0.875,0.5),false), new mxConnectionConstraint( new mxPoint(0.96,0.7),false), new mxConnectionConstraint( new mxPoint(0.625,0.2),false), new mxConnectionConstraint( new mxPoint(0.88,0.25),false)];mxArrow[_0x7f60[0]][_0x7f60[147]]=null})()
\ No newline at end of file
index 970d060..4405afd 100644 (file)
@@ -1,782 +1 @@
-'use strict';
-
-/**
- * Construcs a new sidebar for the given editor.
- */
-function Sidebar(editorUi, container) {
-       this.editorUi = editorUi;
-       this.container = container;
-       this.palettes = new Object();
-       this.showTooltips = true;
-       this.graph = new Graph(document.createElement('div'), null, null, this.editorUi
-               .editor.graph.getStylesheet());
-       this.graph.resetViewOnRootChange = false;
-       this.graph.foldingEnabled = false;
-       this.graph.setConnectable(false);
-       this.graph.autoScroll = false;
-       this.graph.setTooltips(false);
-       this.graph.setEnabled(false);
-
-       // Container must be in the DOM for correct HTML rendering
-       this.graph.container.style.visibility = 'hidden';
-       this.graph.container.style.position = 'absolute';
-       document.body.appendChild(this.graph.container);
-
-       if (!mxClient.IS_TOUCH) {
-               mxEvent.addListener(document, 'mouseup', mxUtils.bind(this, function() {
-                       this.showTooltips = true;
-               }));
-
-               // Enables tooltips after scroll
-               mxEvent.addListener(container, 'scroll', mxUtils.bind(this, function() {
-                       this.showTooltips = true;
-               }));
-
-               mxEvent.addListener(document, 'mousedown', mxUtils.bind(this, function() {
-                       this.showTooltips = false;
-                       this.hideTooltip();
-               }));
-
-               mxEvent.addListener(document, 'mousemove', mxUtils.bind(this, function(evt) {
-                       var src = mxEvent.getSource(evt);
-
-                       while (src != null) {
-                               if (src == this.currentElt) {
-                                       return;
-                               }
-
-                               src = src.parentNode;
-                       }
-
-                       this.hideTooltip();
-               }));
-
-               // Handles mouse leaving the window
-               mxEvent.addListener(document, 'mouseout', mxUtils.bind(this, function(evt) {
-                       if (evt.toElement == null && evt.relatedTarget == null) {
-                               this.hideTooltip();
-                       }
-               }));
-       }
-
-       this.init();
-
-       // Pre-fetches tooltip image
-       new Image().src = IMAGE_PATH + '/tooltip.png';
-};
-
-/**
- * Adds all palettes to the sidebar.
- */
-Sidebar.prototype.init = function() {
-       var dir = STENCIL_PATH;
-       console.log(dir);
-
-       // this.addImagePalette('entry', mxResources.get('application'), dir + '/',
-       //      '_128x128.png', ['start', 'question', 'input', 'end', 'email'], [mxResources.get('start'),
-       //              mxResources.get('question'), mxResources.get('input'), mxResources.get('end'), mxResources.get('email')
-       //      ]);
-       this.addImagePalette('entry', mxResources.get('application'), dir + '/',
-               '_128x128.png', ['start', 'question', 'input', 'end'], [mxResources.get('start'),
-                       mxResources.get('question'), mxResources.get('input'), mxResources.get('end')
-               ]);
-       // this.addBpmnPalette(dir, false);
-
-};
-
-/**
- * Specifies if tooltips should be visible. Default is true.
- */
-Sidebar.prototype.enableTooltips = !mxClient.IS_TOUCH;
-
-/**
- * Specifies the delay for the tooltip. Default is 16 px.
- */
-Sidebar.prototype.tooltipBorder = 16;
-
-/**
- * Specifies the delay for the tooltip. Default is 3 px.
- */
-Sidebar.prototype.thumbBorder = 3;
-
-/**
- * Specifies the delay for the tooltip. Default is 300 ms.
- */
-Sidebar.prototype.tooltipDelay = 300;
-
-/**
- * Specifies if edges should be used as templates if clicked. Default is true.
- */
-Sidebar.prototype.installEdges = true;
-
-/**
- * Specifies the URL of the gear image.
- */
-Sidebar.prototype.gearImage = STENCIL_PATH + '/clipart/Gear_128x128.png';
-
-/**
- * Specifies the width of the thumbnails.
- */
-Sidebar.prototype.thumbWidth = 34;
-
-/**
- * Specifies the height of the thumbnails.
- */
-Sidebar.prototype.thumbHeight = 34;
-
-/**
- * Specifies the padding for the thumbnails. Default is 3.
- */
-Sidebar.prototype.thumbPadding = 2;
-
-/**
- * Specifies the size of the sidebar titles.
- */
-Sidebar.prototype.sidebarTitleSize = 9;
-
-/**
- * Specifies if titles in the sidebar should be enabled.
- */
-Sidebar.prototype.sidebarTitles = false;
-
-/**
- * Specifies if titles in the tooltips should be enabled.
- */
-Sidebar.prototype.tooltipTitles = false;
-
-/**
- * Adds all palettes to the sidebar.
- */
-Sidebar.prototype.showTooltip = function(elt, cells, title, showLabel) {
-       if (this.enableTooltips && this.showTooltips) {
-               if (this.currentElt != elt) {
-                       if (this.thread != null) {
-                               window.clearTimeout(this.thread);
-                               this.thread = null;
-                       }
-
-                       var show = mxUtils.bind(this, function() {
-                               // Lazy creation of the DOM nodes and graph instance
-                               if (this.tooltip == null) {
-                                       this.tooltip = document.createElement('div');
-                                       this.tooltip.className = 'geSidebarTooltip';
-                                       document.body.appendChild(this.tooltip);
-
-                                       this.graph2 = new Graph(this.tooltip, null, null, this.editorUi.editor.graph
-                                               .getStylesheet());
-                                       this.graph2.view.setTranslate(this.tooltipBorder, this.tooltipBorder);
-                                       this.graph2.resetViewOnRootChange = false;
-                                       this.graph2.foldingEnabled = false;
-                                       this.graph2.autoScroll = false;
-                                       this.graph2.setTooltips(false);
-                                       this.graph2.setConnectable(false);
-                                       this.graph2.setEnabled(false);
-
-                                       if (!mxClient.IS_SVG) {
-                                               this.graph2.view.canvas.style.position = 'relative';
-                                       }
-
-                                       this.tooltipImage = mxUtils.createImage(IMAGE_PATH + '/tooltip.png');
-                                       this.tooltipImage.style.position = 'absolute';
-                                       this.tooltipImage.style.width = '14px';
-                                       this.tooltipImage.style.height = '27px';
-
-                                       document.body.appendChild(this.tooltipImage);
-                               }
-
-                               this.tooltip.style.display = 'block';
-                               this.graph2.labelsVisible = (showLabel == null || showLabel);
-                               this.graph2.model.clear();
-                               this.graph2.addCells(cells);
-
-                               var bounds = this.graph2.getGraphBounds();
-                               var width = bounds.width + 2 * this.tooltipBorder;
-                               var height = bounds.height + 2 * this.tooltipBorder;
-
-                               if (mxClient.IS_QUIRKS) {
-                                       width += 4;
-                                       height += 4;
-                                       this.tooltip.style.overflow = 'hidden';
-                               } else {
-                                       this.tooltip.style.overflow = 'visible';
-                               }
-
-                               this.tooltipImage.style.visibility = 'visible';
-                               this.tooltip.style.width = width + 'px';
-
-                               // Adds title for entry
-                               if (this.tooltipTitles && title != null && title.length > 0) {
-                                       if (this.tooltipTitle == null) {
-                                               this.tooltipTitle = document.createElement('div');
-                                               this.tooltipTitle.style.borderTop = '1px solid gray';
-                                               this.tooltipTitle.style.textAlign = 'center';
-                                               this.tooltipTitle.style.width = '100%';
-
-                                               // Oversize titles are cut-off currently. Should make tooltip wider later.
-                                               this.tooltipTitle.style.overflow = 'hidden';
-
-                                               if (mxClient.IS_SVG) {
-                                                       this.tooltipTitle.style.paddingTop = '2px';
-                                               } else {
-                                                       this.tooltipTitle.style.position = 'absolute';
-                                                       this.tooltipTitle.style.paddingTop = '6px';
-                                               }
-
-                                               this.tooltip.appendChild(this.tooltipTitle);
-                                       } else {
-                                               this.tooltipTitle.innerHTML = '';
-                                       }
-
-                                       this.tooltipTitle.style.display = '';
-                                       mxUtils.write(this.tooltipTitle, title);
-
-                                       var dy = this.tooltipTitle.offsetHeight + 10;
-                                       height += dy;
-
-                                       if (mxClient.IS_SVG) {
-                                               this.tooltipTitle.style.marginTop = (-dy) + 'px';
-                                       } else {
-                                               height -= 6;
-                                               this.tooltipTitle.style.top = (height - dy) + 'px';
-                                       }
-                               } else if (this.tooltipTitle != null && this.tooltipTitle.parentNode !=
-                                       null) {
-                                       this.tooltipTitle.style.display = 'none';
-                               }
-
-                               this.tooltip.style.height = height + 'px';
-                               var x0 = -Math.min(0, bounds.x - this.tooltipBorder);
-                               var y0 = -Math.min(0, bounds.y - this.tooltipBorder);
-
-                               var left = this.container.clientWidth + this.editorUi.splitSize + 3;
-                               var top = Math.max(0, (this.container.offsetTop + elt.offsetTop - this.container
-                                       .scrollTop - height / 2 + 16));
-
-                               if (mxClient.IS_SVG) {
-                                       this.graph2.view.canvas.setAttribute('transform', 'translate(' + x0 +
-                                               ',' + y0 + ')');
-                               } else {
-                                       this.graph2.view.drawPane.style.left = x0 + 'px';
-                                       this.graph2.view.drawPane.style.top = y0 + 'px';
-                               }
-
-                               // Workaround for ignored position CSS style in IE9
-                               // (changes to relative without the following line)
-                               // Added width of the page-sidebar
-                               //              left += document.getElementById('page-sidebar').offsetWidth;
-                               // Added static height of the page-navbar
-                               top += 90;
-
-                               this.tooltip.style.position = 'absolute';
-                               this.tooltip.style.left = left + 'px';
-                               this.tooltip.style.top = top + 'px';
-                               this.tooltipImage.style.left = (left - 13) + 'px';
-                               this.tooltipImage.style.top = (top + height / 2 - 13) + 'px';
-                       });
-
-                       if (this.tooltip != null && this.tooltip.style.display != 'none') {
-                               show();
-                       } else {
-                               this.thread = window.setTimeout(show, this.tooltipDelay);
-                       }
-
-                       this.currentElt = elt;
-               }
-       }
-};
-
-/**
- * Hides the current tooltip.
- */
-Sidebar.prototype.hideTooltip = function() {
-       if (this.thread != null) {
-               window.clearTimeout(this.thread);
-               this.thread = null;
-       }
-
-       if (this.tooltip != null) {
-               this.tooltip.style.display = 'none';
-               this.tooltipImage.style.visibility = 'hidden';
-               this.currentElt = null;
-       }
-};
-
-/**
- * Creates and returns the given title element.
- */
-Sidebar.prototype.createTitle = function(label) {
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geTitle';
-       mxUtils.write(elt, label);
-
-       return elt;
-};
-
-/**
- * Creates a thumbnail for the given cells.
- */
-Sidebar.prototype.createThumb = function(cells, width, height, parent, title,
-       showLabel) {
-       this.graph.labelsVisible = (showLabel == null || showLabel);
-       this.graph.view.scaleAndTranslate(1, 0, 0);
-       this.graph.addCells(cells);
-       var bounds = this.graph.getGraphBounds();
-       var corr = this.thumbBorder;
-       var s = Math.min((width - 2) / (bounds.width - bounds.x + corr), (height - 2) /
-               (bounds.height - bounds.y + corr));
-       var x0 = -Math.min(bounds.x, 0);
-       var y0 = -Math.min(bounds.y, 0);
-       this.graph.view.scaleAndTranslate(s, x0, y0);
-
-       bounds = this.graph.getGraphBounds();
-       var dx = Math.max(0, Math.floor((width - bounds.width - bounds.x) / 2));
-       var dy = Math.max(0, Math.floor((height - bounds.height - bounds.y) / 2));
-
-       var node = null;
-
-       // For supporting HTML labels in IE9 standards mode the container is cloned instead
-       if (this.graph.dialect == mxConstants.DIALECT_SVG && !mxClient.NO_FO) {
-               node = this.graph.view.getCanvas().ownerSVGElement.cloneNode(true);
-       }
-       // LATER: Check if deep clone can be used for quirks if container in DOM
-       else {
-               node = this.graph.container.cloneNode(false);
-               node.innerHTML = this.graph.container.innerHTML;
-       }
-
-       this.graph.getModel().clear();
-
-       // Catch-all event handling
-       if (mxClient.IS_IE6) {
-               parent.style.backgroundImage = 'url(' + this.editorUi.editor.transparentImage +
-                       ')';
-       }
-
-       var dd = 3;
-       node.style.position = 'relative';
-       node.style.overflow = 'hidden';
-       node.style.cursor = 'pointer';
-       node.style.left = (dx + dd) + 'px';
-       node.style.top = (dy + dd) + 'px';
-       node.style.width = width + 'px';
-       node.style.height = height + 'px';
-       node.style.visibility = '';
-       node.style.minWidth = '';
-       node.style.minHeight = '';
-
-       parent.appendChild(node);
-
-       // Adds title for sidebar entries
-       if (this.sidebarTitles && title != null) {
-               var border = (mxClient.IS_QUIRKS) ? 2 * this.thumbPadding + 2 : 0;
-               parent.style.height = (this.thumbHeight + border + this.sidebarTitleSize + 8) +
-                       'px';
-
-               var div = document.createElement('div');
-               div.style.fontSize = this.sidebarTitleSize + 'px';
-               div.style.textAlign = 'center';
-               div.style.whiteSpace = 'nowrap';
-
-               if (mxClient.IS_IE) {
-                       div.style.height = (this.sidebarTitleSize + 12) + 'px';
-               }
-
-               div.style.paddingTop = '4px';
-               mxUtils.write(div, title);
-               parent.appendChild(div);
-       }
-};
-
-/**
- * Creates and returns a new palette item for the given image.
- */
-Sidebar.prototype.createItem = function(cells, title, showLabel) {
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geItem';
-       elt.style.overflow = 'hidden';
-       var border = (mxClient.IS_QUIRKS) ? 8 + 2 * this.thumbPadding : 6;
-       elt.style.width = (this.thumbWidth + border) + 'px';
-       elt.style.height = (this.thumbHeight + border) + 'px';
-       elt.style.padding = this.thumbPadding + 'px';
-
-       // Blocks default click action
-       mxEvent.addListener(elt, 'click', function(evt) {
-               mxEvent.consume(evt);
-       });
-
-       this.createThumb(cells, this.thumbWidth, this.thumbHeight, elt, title,
-               showLabel);
-
-       return elt;
-};
-
-
-/**
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createDropHandler = function(cells, allowSplit) {
-       return function(graph, evt, target, x, y) {
-               if (graph.isEnabled()) {
-                       cells = graph.getImportableCells(cells);
-
-                       if (cells.length > 0) {
-                               var validDropTarget = (target != null) ?
-                                       graph.isValidDropTarget(target, cells, evt) : false;
-                               var select = null;
-
-                               if (target != null && !validDropTarget) {
-                                       target = null;
-                               }
-
-                               // Splits the target edge or inserts into target group
-                               if (allowSplit && graph.isSplitEnabled() && graph.isSplitTarget(target,
-                                               cells, evt)) {
-                                       graph.splitEdge(target, cells, null, x, y);
-                                       select = cells;
-                               } else if (cells.length > 0) {
-                                       select = graph.importCells(cells, x, y, target);
-                               }
-
-                               if (select != null && select.length > 0) {
-                                       graph.scrollCellToVisible(select[0]);
-                                       graph.setSelectionCells(select);
-                               }
-                       }
-               }
-       };
-};
-
-/**
- * Creates and returns a preview element for the given width and height.
- */
-Sidebar.prototype.createDragPreview = function(width, height) {
-       var elt = document.createElement('div');
-       elt.style.border = '1px dashed black';
-       elt.style.width = width + 'px';
-       elt.style.height = height + 'px';
-
-       return elt;
-};
-
-/**
- * Creates a drag source for the given element.
- */
-Sidebar.prototype.createDragSource = function(elt, dropHandler, preview) {
-       var dragSource = mxUtils.makeDraggable(elt, this.editorUi.editor.graph,
-               dropHandler,
-               preview, 0, 0, this.editorUi.editor.graph.autoscroll, true, true);
-
-
-
-       // Allows drop into cell only if target is a valid root
-       dragSource.getDropTarget = function(graph, x, y) {
-               var target = mxDragSource.prototype.getDropTarget.apply(this, arguments);
-               if (!graph.isValidRoot(target)) {
-                       target = null;
-               }
-
-               return target;
-       };
-
-       return dragSource;
-};
-
-
-
-/**
- * Adds a handler for inserting the cell with a single click.
- */
-Sidebar.prototype.addClickHandler = function(elt, ds) {
-       var graph = this.editorUi.editor.graph;
-       var first = null;
-
-       mxEvent.addGestureListeners(elt, function(evt) {
-               first = new mxPoint(mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-       });
-
-       var oldMouseUp = ds.mouseUp;
-       ds.mouseUp = function(evt) {
-               if (!mxEvent.isPopupTrigger(evt) && this.currentGraph == null && first !=
-                       null) {
-                       var tol = graph.tolerance;
-
-                       if (Math.abs(first.x - mxEvent.getClientX(evt)) <= tol &&
-                               Math.abs(first.y - mxEvent.getClientY(evt)) <= tol) {
-                               var gs = graph.getGridSize();
-                               ds.drop(graph, evt, null, gs, gs);
-                       }
-               }
-
-               oldMouseUp.apply(this, arguments);
-               first = null;
-       };
-};
-
-/**
- * Giuseppe Careri
- * Create xml document vertex
- */
-Sidebar.prototype.createXmlDocument = function(element, label, variables,
-       values) {
-       var doc = mxUtils.createXmlDocument();
-       var node = doc.createElement(element)
-       node.setAttribute('label', label);
-
-       variables.forEach(function(variable, index) {
-               node.setAttribute(variable, values[index] ? values[index] : '');
-       });
-
-       return node;
-}
-
-/**
- * Giuseppe Careri
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createVertexTemplate = function(style, width, height, value,
-       title, showLabel) {
-       var variables = [];
-       var values = [];
-
-       switch (value) {
-
-               case 'question':
-                       variables = ['question', 'other'];
-                       values = [''];
-                       break;
-               case 'input':
-                       variables = ['question', 'add'];
-                       values = [''];
-                       break;
-               case 'email':
-                       variables = ["Host", "Username", "Password", "To", "Subject", "Body"];
-                       values = [''];
-                       break;
-               default:
-                       variables = [];
-                       values = [];
-                       break;
-       }
-
-       var node = this.createXmlDocument(value, title, variables, values);
-
-       //var cells = [new mxCell((value != null) ? value : '', new mxGeometry(0, 0, width, height), style)];
-       var cells = [new mxCell(node, new mxGeometry(0, 0, width, height), style)];
-       cells[0].vertex = true;
-
-       return this.createVertexTemplateFromCells(cells, width, height, title,
-               showLabel);
-};
-
-
-
-/**
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createVertexTemplateFromCells = function(cells, width, height,
-       title, showLabel) {
-       var elt = this.createItem(cells, title, showLabel);
-       var ds = this.createDragSource(elt, this.createDropHandler(cells, true), this
-               .createDragPreview(width, height));
-       this.addClickHandler(elt, ds);
-
-       // Uses guides for vertices only if enabled in graph
-       ds.isGuidesEnabled = mxUtils.bind(this, function() {
-               return this.editorUi.editor.graph.graphHandler.guidesEnabled;
-       });
-
-       // Shows a tooltip with the rendered cell
-       if (!touchStyle) {
-               mxEvent.addListener(elt, 'mousemove', mxUtils.bind(this, function(evt) {
-                       this.showTooltip(elt, cells, title, showLabel);
-               }));
-       }
-
-       return elt;
-};
-
-/**
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createEdgeTemplate = function(style, width, height, value,
-       title, showLabel) {
-       var cells = [new mxCell((value != null) ? value : '', new mxGeometry(0, 0,
-               width, height), style)];
-       cells[0].geometry.setTerminalPoint(new mxPoint(0, height), true);
-       cells[0].geometry.setTerminalPoint(new mxPoint(width, 0), false);
-       cells[0].geometry.relative = true;
-       cells[0].edge = true;
-
-       return this.createEdgeTemplateFromCells(cells, width, height, title,
-               showLabel);
-};
-
-/**
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createEdgeTemplateFromCells = function(cells, width, height,
-       title, showLabel) {
-       var elt = this.createItem(cells, title, showLabel);
-       this.createDragSource(elt, this.createDropHandler(cells, false), this.createDragPreview(
-               width, height));
-
-       // Installs the default edge
-       var graph = this.editorUi.editor.graph;
-       mxEvent.addListener(elt, 'click', mxUtils.bind(this, function(evt) {
-               if (this.installEdges) {
-                       graph.setDefaultEdge(cells[0]);
-               }
-
-               // Highlights the entry for 200ms
-               elt.style.backgroundColor = '#ffffff';
-
-               window.setTimeout(function() {
-                       elt.style.backgroundColor = '';
-               }, 300);
-
-               mxEvent.consume(evt);
-       }));
-
-       // Shows a tooltip with the rendered cell
-       touchStyle = false;
-       if (!touchStyle) {
-               mxEvent.addListener(elt, 'mousemove', mxUtils.bind(this, function(evt) {
-                       this.showTooltip(elt, cells, title, showLabel);
-               }));
-       }
-
-       return elt;
-};
-
-/**
- * Adds the given palette.
- */
-Sidebar.prototype.addPalette = function(id, title, expanded, onInit) {
-       var elt = this.createTitle(title);
-       this.container.appendChild(elt);
-
-       var div = document.createElement('div');
-       div.className = 'geSidebar';
-
-       if (expanded) {
-               onInit(div);
-               onInit = null;
-       } else {
-               div.style.display = 'none';
-       }
-
-       this.addFoldingHandler(elt, div, onInit);
-
-       var outer = document.createElement('div');
-       outer.appendChild(div);
-       this.container.appendChild(outer);
-
-       // Keeps references to the DOM nodes
-       if (id != null) {
-               this.palettes[id] = [elt, outer];
-       }
-};
-
-/**
- * Create the given title element.
- */
-Sidebar.prototype.addFoldingHandler = function(title, content, funct) {
-       var initialized = false;
-
-       title.style.backgroundImage = (content.style.display == 'none') ?
-               'url(' + IMAGE_PATH + '/collapsed.gif)' : 'url(' + IMAGE_PATH +
-               '/expanded.gif)';
-       title.style.backgroundRepeat = 'no-repeat';
-       title.style.backgroundPosition = '100% 50%';
-
-       mxEvent.addListener(title, 'click', function(evt) {
-               if (content.style.display == 'none') {
-                       if (!initialized) {
-                               initialized = true;
-
-                               if (funct != null) {
-                                       title.style.cursor = 'wait';
-                                       window.setTimeout(function() {
-                                               funct(content);
-                                               title.style.cursor = '';
-                                       }, 0);
-                               }
-                       }
-
-                       title.style.backgroundImage = 'url(' + IMAGE_PATH + '/expanded.gif)';
-                       content.style.display = 'block';
-               } else {
-                       title.style.backgroundImage = 'url(' + IMAGE_PATH + '/collapsed.gif)';
-                       content.style.display = 'none';
-               }
-
-               mxEvent.consume(evt);
-       });
-};
-
-/**
- * Removes the palette for the given ID.
- */
-Sidebar.prototype.removePalette = function(id) {
-       var elts = this.palettes[id];
-
-       if (elts != null) {
-               this.palettes[id] = null;
-
-               for (var i = 0; i < elts.length; i++) {
-                       this.container.removeChild(elts[i]);
-               }
-
-               return true;
-       }
-
-       return false;
-};
-
-/**
- * Adds the given image palette.
- */
-Sidebar.prototype.addImagePalette = function(id, title, prefix, postfix, items,
-       titles) {
-       // Giuseppe Careri
-       // Expanded Sidebar only entry
-       this.addPalette(id, title, (id === 'entry'), mxUtils.bind(this, function(
-               content) {
-               var showTitles = titles != null;
-
-               for (var i = 0; i < items.length; i++) {
-                       var icon = prefix + items[i] + postfix;
-                       content.appendChild(this.createVertexTemplate('image;image=' + icon, 80,
-                               80, items[i], (showTitles) ? titles[i] : null, showTitles));
-               }
-       }));
-};
-// ***********modified***************
-// Sidebar.prototype.addBpmnPalette = function(dir, expand) {
-//     //Abigael Dawit
-//
-//     var fns = [
-//             this.createVertexTemplate(
-//                     'text;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;overflow=hidden;',
-//                     40, 20, 'Text', 'Text', null),
-//             //this.createVertexTemplate('shape=ext;rounded=1;whiteSpace=wrap;dashed=1;dashPattern=1 4;', 120, 80, 'Event\nSub-Process', 'Event Sub-Process', null),
-//             this.createVertexTemplate('shape=swimlane;whiteSpace=wrap;startSize=60;',
-//                     120, 160, 'Container', 'Container', null),
-//             //      this.createVertexTemplate('shape=ellipse;', 120, 160, 'Ellips', 'Ellipse', null)
-//             this.createVertexTemplate(
-//                     'shape=swimlane;html=1;horizontal=0;swimlaneFillColor=white;swimlaneLine=0;fillColor=none;rounded=1;verticalAlign=middle',
-//                     300, 120, 'Lane', 'Lane', null)
-//
-//     ]
-//
-//     this.addPalette('utility', 'Utility ', false, mxUtils.bind(this, function(
-//             content) {
-//             //var showTitles = titles != null;
-//             for (var i = 0; i < fns.length; i++) {
-//                     content.appendChild(fns[i]);
-//             }
-//     }));
-//
-// };
+var _0xbd46=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x61\x6C\x65\x74\x74\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x67\x72\x61\x70\x68","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x65\x64\x69\x74\x6F\x72","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x61\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x6F\x64\x79","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x6D\x6F\x75\x73\x65\x75\x70","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x68\x69\x64\x65\x54\x6F\x6F\x6C\x74\x69\x70","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x67\x65\x74\x53\x6F\x75\x72\x63\x65","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x75\x73\x65\x6F\x75\x74","\x74\x6F\x45\x6C\x65\x6D\x65\x6E\x74","\x72\x65\x6C\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x74\x6F\x6F\x6C\x74\x69\x70\x2E\x70\x6E\x67","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67","\x65\x6E\x74\x72\x79","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74","\x2F","\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x73\x74\x61\x72\x74","\x71\x75\x65\x73\x74\x69\x6F\x6E","\x69\x6E\x70\x75\x74","\x65\x6E\x64","\x61\x64\x64\x49\x6D\x61\x67\x65\x50\x61\x6C\x65\x74\x74\x65","\x65\x6E\x61\x62\x6C\x65\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x42\x6F\x72\x64\x65\x72","\x74\x68\x75\x6D\x62\x42\x6F\x72\x64\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x44\x65\x6C\x61\x79","\x69\x6E\x73\x74\x61\x6C\x6C\x45\x64\x67\x65\x73","\x67\x65\x61\x72\x49\x6D\x61\x67\x65","\x2F\x63\x6C\x69\x70\x61\x72\x74\x2F\x47\x65\x61\x72\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x74\x68\x75\x6D\x62\x57\x69\x64\x74\x68","\x74\x68\x75\x6D\x62\x48\x65\x69\x67\x68\x74","\x74\x68\x75\x6D\x62\x50\x61\x64\x64\x69\x6E\x67","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x53\x69\x7A\x65","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70","\x74\x68\x72\x65\x61\x64","\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x74\x6F\x6F\x6C\x74\x69\x70","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x54\x6F\x6F\x6C\x74\x69\x70","\x67\x72\x61\x70\x68\x32","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x76\x69\x65\x77","\x49\x53\x5F\x53\x56\x47","\x63\x61\x6E\x76\x61\x73","\x72\x65\x6C\x61\x74\x69\x76\x65","\x74\x6F\x6F\x6C\x74\x69\x70\x49\x6D\x61\x67\x65","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x31\x34\x70\x78","\x68\x65\x69\x67\x68\x74","\x32\x37\x70\x78","\x64\x69\x73\x70\x6C\x61\x79","\x62\x6C\x6F\x63\x6B","\x6C\x61\x62\x65\x6C\x73\x56\x69\x73\x69\x62\x6C\x65","\x63\x6C\x65\x61\x72","\x6D\x6F\x64\x65\x6C","\x61\x64\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x76\x69\x73\x69\x62\x6C\x65","\x70\x78","\x6C\x65\x6E\x67\x74\x68","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70","\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x67\x72\x61\x79","\x74\x65\x78\x74\x41\x6C\x69\x67\x6E","\x63\x65\x6E\x74\x65\x72","\x31\x30\x30\x25","\x70\x61\x64\x64\x69\x6E\x67\x54\x6F\x70","\x32\x70\x78","\x36\x70\x78","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","","\x77\x72\x69\x74\x65","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x74\x6F\x70","\x6E\x6F\x6E\x65","\x78","\x6D\x69\x6E","\x79","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x6D\x61\x78","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x2C","\x29","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6C\x65\x66\x74","\x64\x72\x61\x77\x50\x61\x6E\x65","\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x54\x69\x74\x6C\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x54\x69\x74\x6C\x65","\x63\x72\x65\x61\x74\x65\x54\x68\x75\x6D\x62","\x73\x63\x61\x6C\x65\x41\x6E\x64\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x66\x6C\x6F\x6F\x72","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x4E\x4F\x5F\x46\x4F","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x6F\x77\x6E\x65\x72\x53\x56\x47\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x43\x61\x6E\x76\x61\x73","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x49\x53\x5F\x49\x45\x36","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x63\x75\x72\x73\x6F\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x6D\x69\x6E\x57\x69\x64\x74\x68","\x6D\x69\x6E\x48\x65\x69\x67\x68\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x6E\x6F\x77\x72\x61\x70","\x49\x53\x5F\x49\x45","\x34\x70\x78","\x63\x72\x65\x61\x74\x65\x49\x74\x65\x6D","\x67\x65\x49\x74\x65\x6D","\x70\x61\x64\x64\x69\x6E\x67","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x63\x72\x65\x61\x74\x65\x44\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x49\x6D\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x56\x61\x6C\x69\x64\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x69\x73\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x70\x6C\x69\x74\x54\x61\x72\x67\x65\x74","\x73\x70\x6C\x69\x74\x45\x64\x67\x65","\x69\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x50\x72\x65\x76\x69\x65\x77","\x62\x6F\x72\x64\x65\x72","\x31\x70\x78\x20\x64\x61\x73\x68\x65\x64\x20\x62\x6C\x61\x63\x6B","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x53\x6F\x75\x72\x63\x65","\x61\x75\x74\x6F\x73\x63\x72\x6F\x6C\x6C","\x6D\x61\x6B\x65\x44\x72\x61\x67\x67\x61\x62\x6C\x65","\x67\x65\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x61\x70\x70\x6C\x79","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x6D\x6F\x75\x73\x65\x55\x70","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x63\x75\x72\x72\x65\x6E\x74\x47\x72\x61\x70\x68","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x61\x62\x73","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x64\x72\x6F\x70","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6C\x61\x62\x65\x6C","\x66\x6F\x72\x45\x61\x63\x68","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6F\x74\x68\x65\x72","\x61\x64\x64","\x48\x6F\x73\x74","\x55\x73\x65\x72\x6E\x61\x6D\x65","\x50\x61\x73\x73\x77\x6F\x72\x64","\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x42\x6F\x64\x79","\x65\x6D\x61\x69\x6C","\x76\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x69\x73\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x65\x64\x67\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x23\x66\x66\x66\x66\x66\x66","\x61\x64\x64\x50\x61\x6C\x65\x74\x74\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72","\x61\x64\x64\x46\x6F\x6C\x64\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x2F\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x2E\x67\x69\x66\x29","\x2F\x65\x78\x70\x61\x6E\x64\x65\x64\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x31\x30\x30\x25\x20\x35\x30\x25","\x77\x61\x69\x74","\x72\x65\x6D\x6F\x76\x65\x50\x61\x6C\x65\x74\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x69\x6D\x61\x67\x65\x3B\x69\x6D\x61\x67\x65\x3D"];_0xbd46[0];function Sidebar(_0x2655x2,_0x2655x3){this[_0xbd46[1]]=_0x2655x2;this[_0xbd46[2]]=_0x2655x3;this[_0xbd46[3]]= new Object();this[_0xbd46[4]]=true;this[_0xbd46[5]]= new Graph(document[_0xbd46[7]](_0xbd46[6]),null,null,this[_0xbd46[1]][_0xbd46[9]][_0xbd46[5]][_0xbd46[8]]());this[_0xbd46[5]][_0xbd46[10]]=false;this[_0xbd46[5]][_0xbd46[11]]=false;this[_0xbd46[5]][_0xbd46[12]](false);this[_0xbd46[5]][_0xbd46[13]]=false;this[_0xbd46[5]][_0xbd46[14]](false);this[_0xbd46[5]][_0xbd46[15]](false);this[_0xbd46[5]][_0xbd46[2]][_0xbd46[17]][_0xbd46[16]]=_0xbd46[18];this[_0xbd46[5]][_0xbd46[2]][_0xbd46[17]][_0xbd46[19]]=_0xbd46[20];document[_0xbd46[22]][_0xbd46[21]](this[_0xbd46[5]][_0xbd46[2]]);if(!mxClient[_0xbd46[23]]){mxEvent[_0xbd46[26]](document,_0xbd46[24],mxUtils[_0xbd46[25]](this,function(){this[_0xbd46[4]]=true}));mxEvent[_0xbd46[26]](_0x2655x3,_0xbd46[27],mxUtils[_0xbd46[25]](this,function(){this[_0xbd46[4]]=true}));mxEvent[_0xbd46[26]](document,_0xbd46[28],mxUtils[_0xbd46[25]](this,function(){this[_0xbd46[4]]=false;this[_0xbd46[29]]()}));mxEvent[_0xbd46[26]](document,_0xbd46[30],mxUtils[_0xbd46[25]](this,function(_0x2655x4){var _0x2655x5=mxEvent[_0xbd46[31]](_0x2655x4);while(_0x2655x5!=null){if(_0x2655x5==this[_0xbd46[32]]){return};_0x2655x5=_0x2655x5[_0xbd46[33]]};this[_0xbd46[29]]()}));mxEvent[_0xbd46[26]](document,_0xbd46[34],mxUtils[_0xbd46[25]](this,function(_0x2655x4){if(_0x2655x4[_0xbd46[35]]==null&&_0x2655x4[_0xbd46[36]]==null){this[_0xbd46[29]]()}}))};this[_0xbd46[37]](); new Image()[_0xbd46[38]]=IMAGE_PATH+_0xbd46[39]}Sidebar[_0xbd46[40]][_0xbd46[37]]=function(){var _0x2655x6=STENCIL_PATH;console[_0xbd46[41]](_0x2655x6);this[_0xbd46[51]](_0xbd46[42],mxResources[_0xbd46[44]](_0xbd46[43]),_0x2655x6+_0xbd46[45],_0xbd46[46],[_0xbd46[47],_0xbd46[48],_0xbd46[49],_0xbd46[50]],[mxResources[_0xbd46[44]](_0xbd46[47]),mxResources[_0xbd46[44]](_0xbd46[48]),mxResources[_0xbd46[44]](_0xbd46[49]),mxResources[_0xbd46[44]](_0xbd46[50])])};Sidebar[_0xbd46[40]][_0xbd46[52]]=!mxClient[_0xbd46[23]];Sidebar[_0xbd46[40]][_0xbd46[53]]=16;Sidebar[_0xbd46[40]][_0xbd46[54]]=3;Sidebar[_0xbd46[40]][_0xbd46[55]]=300;Sidebar[_0xbd46[40]][_0xbd46[56]]=true;Sidebar[_0xbd46[40]][_0xbd46[57]]=STENCIL_PATH+_0xbd46[58];Sidebar[_0xbd46[40]][_0xbd46[59]]=34;Sidebar[_0xbd46[40]][_0xbd46[60]]=34;Sidebar[_0xbd46[40]][_0xbd46[61]]=2;Sidebar[_0xbd46[40]][_0xbd46[62]]=9;Sidebar[_0xbd46[40]][_0xbd46[63]]=false;Sidebar[_0xbd46[40]][_0xbd46[64]]=false;Sidebar[_0xbd46[40]][_0xbd46[65]]=function(_0x2655x7,_0x2655x8,_0x2655x9,_0x2655xa){if(this[_0xbd46[52]]&&this[_0xbd46[4]]){if(this[_0xbd46[32]]!=_0x2655x7){if(this[_0xbd46[66]]!=null){window[_0xbd46[67]](this[_0xbd46[66]]);this[_0xbd46[66]]=null};var _0x2655xb=mxUtils[_0xbd46[25]](this,function(){if(this[_0xbd46[68]]==null){this[_0xbd46[68]]=document[_0xbd46[7]](_0xbd46[6]);this[_0xbd46[68]][_0xbd46[69]]=_0xbd46[70];document[_0xbd46[22]][_0xbd46[21]](this[_0xbd46[68]]);this[_0xbd46[71]]= new Graph(this[_0xbd46[68]],null,null,this[_0xbd46[1]][_0xbd46[9]][_0xbd46[5]][_0xbd46[8]]());this[_0xbd46[71]][_0xbd46[73]][_0xbd46[72]](this[_0xbd46[53]],this[_0xbd46[53]]);this[_0xbd46[71]][_0xbd46[10]]=false;this[_0xbd46[71]][_0xbd46[11]]=false;this[_0xbd46[71]][_0xbd46[13]]=false;this[_0xbd46[71]][_0xbd46[14]](false);this[_0xbd46[71]][_0xbd46[12]](false);this[_0xbd46[71]][_0xbd46[15]](false);if(!mxClient[_0xbd46[74]]){this[_0xbd46[71]][_0xbd46[73]][_0xbd46[75]][_0xbd46[17]][_0xbd46[19]]=_0xbd46[76]};this[_0xbd46[77]]=mxUtils[_0xbd46[78]](IMAGE_PATH+_0xbd46[39]);this[_0xbd46[77]][_0xbd46[17]][_0xbd46[19]]=_0xbd46[20];this[_0xbd46[77]][_0xbd46[17]][_0xbd46[79]]=_0xbd46[80];this[_0xbd46[77]][_0xbd46[17]][_0xbd46[81]]=_0xbd46[82];document[_0xbd46[22]][_0xbd46[21]](this[_0xbd46[77]])};this[_0xbd46[68]][_0xbd46[17]][_0xbd46[83]]=_0xbd46[84];this[_0xbd46[71]][_0xbd46[85]]=(_0x2655xa==null||_0x2655xa);this[_0xbd46[71]][_0xbd46[87]][_0xbd46[86]]();this[_0xbd46[71]][_0xbd46[88]](_0x2655x8);var _0x2655xc=this[_0xbd46[71]][_0xbd46[89]]();var _0x2655xd=_0x2655xc[_0xbd46[79]]+2*this[_0xbd46[53]];var _0x2655xe=_0x2655xc[_0xbd46[81]]+2*this[_0xbd46[53]];if(mxClient[_0xbd46[90]]){_0x2655xd+=4;_0x2655xe+=4;this[_0xbd46[68]][_0xbd46[17]][_0xbd46[91]]=_0xbd46[18]}else {this[_0xbd46[68]][_0xbd46[17]][_0xbd46[91]]=_0xbd46[92]};this[_0xbd46[77]][_0xbd46[17]][_0xbd46[16]]=_0xbd46[92];this[_0xbd46[68]][_0xbd46[17]][_0xbd46[79]]=_0x2655xd+_0xbd46[93];if(this[_0xbd46[64]]&&_0x2655x9!=null&&_0x2655x9[_0xbd46[94]]>0){if(this[_0xbd46[95]]==null){this[_0xbd46[95]]=document[_0xbd46[7]](_0xbd46[6]);this[_0xbd46[95]][_0xbd46[17]][_0xbd46[96]]=_0xbd46[97];this[_0xbd46[95]][_0xbd46[17]][_0xbd46[98]]=_0xbd46[99];this[_0xbd46[95]][_0xbd46[17]][_0xbd46[79]]=_0xbd46[100];this[_0xbd46[95]][_0xbd46[17]][_0xbd46[91]]=_0xbd46[18];if(mxClient[_0xbd46[74]]){this[_0xbd46[95]][_0xbd46[17]][_0xbd46[101]]=_0xbd46[102]}else {this[_0xbd46[95]][_0xbd46[17]][_0xbd46[19]]=_0xbd46[20];this[_0xbd46[95]][_0xbd46[17]][_0xbd46[101]]=_0xbd46[103]};this[_0xbd46[68]][_0xbd46[21]](this[_0xbd46[95]])}else {this[_0xbd46[95]][_0xbd46[104]]=_0xbd46[105]};this[_0xbd46[95]][_0xbd46[17]][_0xbd46[83]]=_0xbd46[105];mxUtils[_0xbd46[106]](this[_0xbd46[95]],_0x2655x9);var _0x2655xf=this[_0xbd46[95]][_0xbd46[107]]+10;_0x2655xe+=_0x2655xf;if(mxClient[_0xbd46[74]]){this[_0xbd46[95]][_0xbd46[17]][_0xbd46[108]]=(-_0x2655xf)+_0xbd46[93]}else {_0x2655xe-=6;this[_0xbd46[95]][_0xbd46[17]][_0xbd46[109]]=(_0x2655xe-_0x2655xf)+_0xbd46[93]}}else {if(this[_0xbd46[95]]!=null&&this[_0xbd46[95]][_0xbd46[33]]!=null){this[_0xbd46[95]][_0xbd46[17]][_0xbd46[83]]=_0xbd46[110]}};this[_0xbd46[68]][_0xbd46[17]][_0xbd46[81]]=_0x2655xe+_0xbd46[93];var _0x2655x10=-Math[_0xbd46[112]](0,_0x2655xc[_0xbd46[111]]-this[_0xbd46[53]]);var _0x2655x11=-Math[_0xbd46[112]](0,_0x2655xc[_0xbd46[113]]-this[_0xbd46[53]]);var _0x2655x12=this[_0xbd46[2]][_0xbd46[114]]+this[_0xbd46[1]][_0xbd46[115]]+3;var _0x2655x13=Math[_0xbd46[118]](0,(this[_0xbd46[2]][_0xbd46[116]]+_0x2655x7[_0xbd46[116]]-this[_0xbd46[2]][_0xbd46[117]]-_0x2655xe/2+16));if(mxClient[_0xbd46[74]]){this[_0xbd46[71]][_0xbd46[73]][_0xbd46[75]][_0xbd46[123]](_0xbd46[119],_0xbd46[120]+_0x2655x10+_0xbd46[121]+_0x2655x11+_0xbd46[122])}else {this[_0xbd46[71]][_0xbd46[73]][_0xbd46[125]][_0xbd46[17]][_0xbd46[124]]=_0x2655x10+_0xbd46[93];this[_0xbd46[71]][_0xbd46[73]][_0xbd46[125]][_0xbd46[17]][_0xbd46[109]]=_0x2655x11+_0xbd46[93]};_0x2655x13+=90;this[_0xbd46[68]][_0xbd46[17]][_0xbd46[19]]=_0xbd46[20];this[_0xbd46[68]][_0xbd46[17]][_0xbd46[124]]=_0x2655x12+_0xbd46[93];this[_0xbd46[68]][_0xbd46[17]][_0xbd46[109]]=_0x2655x13+_0xbd46[93];this[_0xbd46[77]][_0xbd46[17]][_0xbd46[124]]=(_0x2655x12-13)+_0xbd46[93];this[_0xbd46[77]][_0xbd46[17]][_0xbd46[109]]=(_0x2655x13+_0x2655xe/2-13)+_0xbd46[93]});if(this[_0xbd46[68]]!=null&&this[_0xbd46[68]][_0xbd46[17]][_0xbd46[83]]!=_0xbd46[110]){_0x2655xb()}else {this[_0xbd46[66]]=window[_0xbd46[126]](_0x2655xb,this[_0xbd46[55]])};this[_0xbd46[32]]=_0x2655x7}}};Sidebar[_0xbd46[40]][_0xbd46[29]]=function(){if(this[_0xbd46[66]]!=null){window[_0xbd46[67]](this[_0xbd46[66]]);this[_0xbd46[66]]=null};if(this[_0xbd46[68]]!=null){this[_0xbd46[68]][_0xbd46[17]][_0xbd46[83]]=_0xbd46[110];this[_0xbd46[77]][_0xbd46[17]][_0xbd46[16]]=_0xbd46[18];this[_0xbd46[32]]=null}};Sidebar[_0xbd46[40]][_0xbd46[127]]=function(_0x2655x14){var _0x2655x7=document[_0xbd46[7]](_0xbd46[128]);_0x2655x7[_0xbd46[123]](_0xbd46[129],_0xbd46[130]);_0x2655x7[_0xbd46[69]]=_0xbd46[131];mxUtils[_0xbd46[106]](_0x2655x7,_0x2655x14);return _0x2655x7};Sidebar[_0xbd46[40]][_0xbd46[132]]=function(_0x2655x8,_0x2655xd,_0x2655xe,_0x2655x15,_0x2655x9,_0x2655xa){this[_0xbd46[5]][_0xbd46[85]]=(_0x2655xa==null||_0x2655xa);this[_0xbd46[5]][_0xbd46[73]][_0xbd46[133]](1,0,0);this[_0xbd46[5]][_0xbd46[88]](_0x2655x8);var _0x2655xc=this[_0xbd46[5]][_0xbd46[89]]();var _0x2655x16=this[_0xbd46[54]];var _0x2655x17=Math[_0xbd46[112]]((_0x2655xd-2)/(_0x2655xc[_0xbd46[79]]-_0x2655xc[_0xbd46[111]]+_0x2655x16),(_0x2655xe-2)/(_0x2655xc[_0xbd46[81]]-_0x2655xc[_0xbd46[113]]+_0x2655x16));var _0x2655x10=-Math[_0xbd46[112]](_0x2655xc[_0xbd46[111]],0);var _0x2655x11=-Math[_0xbd46[112]](_0x2655xc[_0xbd46[113]],0);this[_0xbd46[5]][_0xbd46[73]][_0xbd46[133]](_0x2655x17,_0x2655x10,_0x2655x11);_0x2655xc=this[_0xbd46[5]][_0xbd46[89]]();var _0x2655x18=Math[_0xbd46[118]](0,Math[_0xbd46[134]]((_0x2655xd-_0x2655xc[_0xbd46[79]]-_0x2655xc[_0xbd46[111]])/2));var _0x2655xf=Math[_0xbd46[118]](0,Math[_0xbd46[134]]((_0x2655xe-_0x2655xc[_0xbd46[81]]-_0x2655xc[_0xbd46[113]])/2));var _0x2655x19=null;if(this[_0xbd46[5]][_0xbd46[135]]==mxConstants[_0xbd46[136]]&&!mxClient[_0xbd46[137]]){_0x2655x19=this[_0xbd46[5]][_0xbd46[73]][_0xbd46[140]]()[_0xbd46[139]][_0xbd46[138]](true)}else {_0x2655x19=this[_0xbd46[5]][_0xbd46[2]][_0xbd46[138]](false);_0x2655x19[_0xbd46[104]]=this[_0xbd46[5]][_0xbd46[2]][_0xbd46[104]]};this[_0xbd46[5]][_0xbd46[141]]()[_0xbd46[86]]();if(mxClient[_0xbd46[142]]){_0x2655x15[_0xbd46[17]][_0xbd46[143]]=_0xbd46[144]+this[_0xbd46[1]][_0xbd46[9]][_0xbd46[145]]+_0xbd46[122]};var _0x2655x1a=3;_0x2655x19[_0xbd46[17]][_0xbd46[19]]=_0xbd46[76];_0x2655x19[_0xbd46[17]][_0xbd46[91]]=_0xbd46[18];_0x2655x19[_0xbd46[17]][_0xbd46[146]]=_0xbd46[147];_0x2655x19[_0xbd46[17]][_0xbd46[124]]=(_0x2655x18+_0x2655x1a)+_0xbd46[93];_0x2655x19[_0xbd46[17]][_0xbd46[109]]=(_0x2655xf+_0x2655x1a)+_0xbd46[93];_0x2655x19[_0xbd46[17]][_0xbd46[79]]=_0x2655xd+_0xbd46[93];_0x2655x19[_0xbd46[17]][_0xbd46[81]]=_0x2655xe+_0xbd46[93];_0x2655x19[_0xbd46[17]][_0xbd46[16]]=_0xbd46[105];_0x2655x19[_0xbd46[17]][_0xbd46[148]]=_0xbd46[105];_0x2655x19[_0xbd46[17]][_0xbd46[149]]=_0xbd46[105];_0x2655x15[_0xbd46[21]](_0x2655x19);if(this[_0xbd46[63]]&&_0x2655x9!=null){var _0x2655x1b=(mxClient[_0xbd46[90]])?2*this[_0xbd46[61]]+2:0;_0x2655x15[_0xbd46[17]][_0xbd46[81]]=(this[_0xbd46[60]]+_0x2655x1b+this[_0xbd46[62]]+8)+_0xbd46[93];var _0x2655x1c=document[_0xbd46[7]](_0xbd46[6]);_0x2655x1c[_0xbd46[17]][_0xbd46[150]]=this[_0xbd46[62]]+_0xbd46[93];_0x2655x1c[_0xbd46[17]][_0xbd46[98]]=_0xbd46[99];_0x2655x1c[_0xbd46[17]][_0xbd46[151]]=_0xbd46[152];if(mxClient[_0xbd46[153]]){_0x2655x1c[_0xbd46[17]][_0xbd46[81]]=(this[_0xbd46[62]]+12)+_0xbd46[93]};_0x2655x1c[_0xbd46[17]][_0xbd46[101]]=_0xbd46[154];mxUtils[_0xbd46[106]](_0x2655x1c,_0x2655x9);_0x2655x15[_0xbd46[21]](_0x2655x1c)}};Sidebar[_0xbd46[40]][_0xbd46[155]]=function(_0x2655x8,_0x2655x9,_0x2655xa){var _0x2655x7=document[_0xbd46[7]](_0xbd46[128]);_0x2655x7[_0xbd46[123]](_0xbd46[129],_0xbd46[130]);_0x2655x7[_0xbd46[69]]=_0xbd46[156];_0x2655x7[_0xbd46[17]][_0xbd46[91]]=_0xbd46[18];var _0x2655x1b=(mxClient[_0xbd46[90]])?8+2*this[_0xbd46[61]]:6;_0x2655x7[_0xbd46[17]][_0xbd46[79]]=(this[_0xbd46[59]]+_0x2655x1b)+_0xbd46[93];_0x2655x7[_0xbd46[17]][_0xbd46[81]]=(this[_0xbd46[60]]+_0x2655x1b)+_0xbd46[93];_0x2655x7[_0xbd46[17]][_0xbd46[157]]=this[_0xbd46[61]]+_0xbd46[93];mxEvent[_0xbd46[26]](_0x2655x7,_0xbd46[158],function(_0x2655x4){mxEvent[_0xbd46[159]](_0x2655x4)});this[_0xbd46[132]](_0x2655x8,this[_0xbd46[59]],this[_0xbd46[60]],_0x2655x7,_0x2655x9,_0x2655xa);return _0x2655x7};Sidebar[_0xbd46[40]][_0xbd46[160]]=function(_0x2655x8,_0x2655x1d){return function(_0x2655x1e,_0x2655x4,_0x2655x1f,_0x2655x20,_0x2655x21){if(_0x2655x1e[_0xbd46[161]]()){_0x2655x8=_0x2655x1e[_0xbd46[162]](_0x2655x8);if(_0x2655x8[_0xbd46[94]]>0){var _0x2655x22=(_0x2655x1f!=null)?_0x2655x1e[_0xbd46[163]](_0x2655x1f,_0x2655x8,_0x2655x4):false;var _0x2655x23=null;if(_0x2655x1f!=null&& !_0x2655x22){_0x2655x1f=null};if(_0x2655x1d&&_0x2655x1e[_0xbd46[164]]()&&_0x2655x1e[_0xbd46[165]](_0x2655x1f,_0x2655x8,_0x2655x4)){_0x2655x1e[_0xbd46[166]](_0x2655x1f,_0x2655x8,null,_0x2655x20,_0x2655x21);_0x2655x23=_0x2655x8}else {if(_0x2655x8[_0xbd46[94]]>0){_0x2655x23=_0x2655x1e[_0xbd46[167]](_0x2655x8,_0x2655x20,_0x2655x21,_0x2655x1f)}};if(_0x2655x23!=null&&_0x2655x23[_0xbd46[94]]>0){_0x2655x1e[_0xbd46[168]](_0x2655x23[0]);_0x2655x1e[_0xbd46[169]](_0x2655x23)}}}}};Sidebar[_0xbd46[40]][_0xbd46[170]]=function(_0x2655xd,_0x2655xe){var _0x2655x7=document[_0xbd46[7]](_0xbd46[6]);_0x2655x7[_0xbd46[17]][_0xbd46[171]]=_0xbd46[172];_0x2655x7[_0xbd46[17]][_0xbd46[79]]=_0x2655xd+_0xbd46[93];_0x2655x7[_0xbd46[17]][_0xbd46[81]]=_0x2655xe+_0xbd46[93];return _0x2655x7};Sidebar[_0xbd46[40]][_0xbd46[173]]=function(_0x2655x7,_0x2655x24,_0x2655x25){var _0x2655x26=mxUtils[_0xbd46[175]](_0x2655x7,this[_0xbd46[1]][_0xbd46[9]][_0xbd46[5]],_0x2655x24,_0x2655x25,0,0,this[_0xbd46[1]][_0xbd46[9]][_0xbd46[5]][_0xbd46[174]],true,true);_0x2655x26[_0xbd46[176]]=function(_0x2655x1e,_0x2655x20,_0x2655x21){var _0x2655x1f=mxDragSource[_0xbd46[40]][_0xbd46[176]][_0xbd46[177]](this,arguments);if(!_0x2655x1e[_0xbd46[178]](_0x2655x1f)){_0x2655x1f=null};return _0x2655x1f};return _0x2655x26};Sidebar[_0xbd46[40]][_0xbd46[179]]=function(_0x2655x7,_0x2655x27){var _0x2655x1e=this[_0xbd46[1]][_0xbd46[9]][_0xbd46[5]];var _0x2655x28=null;mxEvent[_0xbd46[182]](_0x2655x7,function(_0x2655x4){_0x2655x28= new mxPoint(mxEvent[_0xbd46[180]](_0x2655x4),mxEvent[_0xbd46[181]](_0x2655x4))});var _0x2655x29=_0x2655x27[_0xbd46[183]];_0x2655x27[_0xbd46[183]]=function(_0x2655x4){if(!mxEvent[_0xbd46[184]](_0x2655x4)&&this[_0xbd46[185]]==null&&_0x2655x28!=null){var _0x2655x2a=_0x2655x1e[_0xbd46[186]];if(Math[_0xbd46[187]](_0x2655x28[_0xbd46[111]]-mxEvent[_0xbd46[180]](_0x2655x4))<=_0x2655x2a&&Math[_0xbd46[187]](_0x2655x28[_0xbd46[113]]-mxEvent[_0xbd46[181]](_0x2655x4))<=_0x2655x2a){var _0x2655x2b=_0x2655x1e[_0xbd46[188]]();_0x2655x27[_0xbd46[189]](_0x2655x1e,_0x2655x4,null,_0x2655x2b,_0x2655x2b)}};_0x2655x29[_0xbd46[177]](this,arguments);_0x2655x28=null}};Sidebar[_0xbd46[40]][_0xbd46[190]]=function(_0x2655x2c,_0x2655x14,_0x2655x2d,_0x2655x2e){var _0x2655x2f=mxUtils[_0xbd46[190]]();var _0x2655x19=_0x2655x2f[_0xbd46[7]](_0x2655x2c);_0x2655x19[_0xbd46[123]](_0xbd46[191],_0x2655x14);_0x2655x2d[_0xbd46[192]](function(_0x2655x30,_0x2655x31){_0x2655x19[_0xbd46[123]](_0x2655x30,_0x2655x2e[_0x2655x31]?_0x2655x2e[_0x2655x31]:_0xbd46[105])});return _0x2655x19};Sidebar[_0xbd46[40]][_0xbd46[193]]=function(_0x2655x32,_0x2655xd,_0x2655xe,_0x2655x33,_0x2655x9,_0x2655xa){var _0x2655x2d=[];var _0x2655x2e=[];switch(_0x2655x33){case _0xbd46[48]:_0x2655x2d=[_0xbd46[48],_0xbd46[194]];_0x2655x2e=[_0xbd46[105]];break;case _0xbd46[49]:_0x2655x2d=[_0xbd46[48],_0xbd46[195]];_0x2655x2e=[_0xbd46[105]];break;case _0xbd46[202]:_0x2655x2d=[_0xbd46[196],_0xbd46[197],_0xbd46[198],_0xbd46[199],_0xbd46[200],_0xbd46[201]];_0x2655x2e=[_0xbd46[105]];break;default:_0x2655x2d=[];_0x2655x2e=[];break};var _0x2655x19=this[_0xbd46[190]](_0x2655x33,_0x2655x9,_0x2655x2d,_0x2655x2e);var _0x2655x8=[ new mxCell(_0x2655x19, new mxGeometry(0,0,_0x2655xd,_0x2655xe),_0x2655x32)];_0x2655x8[0][_0xbd46[203]]=true;return this[_0xbd46[204]](_0x2655x8,_0x2655xd,_0x2655xe,_0x2655x9,_0x2655xa)};Sidebar[_0xbd46[40]][_0xbd46[204]]=function(_0x2655x8,_0x2655xd,_0x2655xe,_0x2655x9,_0x2655xa){var _0x2655x7=this[_0xbd46[155]](_0x2655x8,_0x2655x9,_0x2655xa);var _0x2655x27=this[_0xbd46[173]](_0x2655x7,this[_0xbd46[160]](_0x2655x8,true),this[_0xbd46[170]](_0x2655xd,_0x2655xe));this[_0xbd46[179]](_0x2655x7,_0x2655x27);_0x2655x27[_0xbd46[205]]=mxUtils[_0xbd46[25]](this,function(){return this[_0xbd46[1]][_0xbd46[9]][_0xbd46[5]][_0xbd46[207]][_0xbd46[206]]});if(!touchStyle){mxEvent[_0xbd46[26]](_0x2655x7,_0xbd46[30],mxUtils[_0xbd46[25]](this,function(_0x2655x4){this[_0xbd46[65]](_0x2655x7,_0x2655x8,_0x2655x9,_0x2655xa)}))};return _0x2655x7};Sidebar[_0xbd46[40]][_0xbd46[208]]=function(_0x2655x32,_0x2655xd,_0x2655xe,_0x2655x33,_0x2655x9,_0x2655xa){var _0x2655x8=[ new mxCell((_0x2655x33!=null)?_0x2655x33:_0xbd46[105], new mxGeometry(0,0,_0x2655xd,_0x2655xe),_0x2655x32)];_0x2655x8[0][_0xbd46[210]][_0xbd46[209]]( new mxPoint(0,_0x2655xe),true);_0x2655x8[0][_0xbd46[210]][_0xbd46[209]]( new mxPoint(_0x2655xd,0),false);_0x2655x8[0][_0xbd46[210]][_0xbd46[76]]=true;_0x2655x8[0][_0xbd46[211]]=true;return this[_0xbd46[212]](_0x2655x8,_0x2655xd,_0x2655xe,_0x2655x9,_0x2655xa)};Sidebar[_0xbd46[40]][_0xbd46[212]]=function(_0x2655x8,_0x2655xd,_0x2655xe,_0x2655x9,_0x2655xa){var _0x2655x7=this[_0xbd46[155]](_0x2655x8,_0x2655x9,_0x2655xa);this[_0xbd46[173]](_0x2655x7,this[_0xbd46[160]](_0x2655x8,false),this[_0xbd46[170]](_0x2655xd,_0x2655xe));var _0x2655x1e=this[_0xbd46[1]][_0xbd46[9]][_0xbd46[5]];mxEvent[_0xbd46[26]](_0x2655x7,_0xbd46[158],mxUtils[_0xbd46[25]](this,function(_0x2655x4){if(this[_0xbd46[56]]){_0x2655x1e[_0xbd46[213]](_0x2655x8[0])};_0x2655x7[_0xbd46[17]][_0xbd46[214]]=_0xbd46[215];window[_0xbd46[126]](function(){_0x2655x7[_0xbd46[17]][_0xbd46[214]]=_0xbd46[105]},300);mxEvent[_0xbd46[159]](_0x2655x4)}));touchStyle=false;if(!touchStyle){mxEvent[_0xbd46[26]](_0x2655x7,_0xbd46[30],mxUtils[_0xbd46[25]](this,function(_0x2655x4){this[_0xbd46[65]](_0x2655x7,_0x2655x8,_0x2655x9,_0x2655xa)}))};return _0x2655x7};Sidebar[_0xbd46[40]][_0xbd46[216]]=function(_0x2655x34,_0x2655x9,_0x2655x35,_0x2655x36){var _0x2655x7=this[_0xbd46[127]](_0x2655x9);this[_0xbd46[2]][_0xbd46[21]](_0x2655x7);var _0x2655x1c=document[_0xbd46[7]](_0xbd46[6]);_0x2655x1c[_0xbd46[69]]=_0xbd46[217];if(_0x2655x35){_0x2655x36(_0x2655x1c);_0x2655x36=null}else {_0x2655x1c[_0xbd46[17]][_0xbd46[83]]=_0xbd46[110]};this[_0xbd46[218]](_0x2655x7,_0x2655x1c,_0x2655x36);var _0x2655x37=document[_0xbd46[7]](_0xbd46[6]);_0x2655x37[_0xbd46[21]](_0x2655x1c);this[_0xbd46[2]][_0xbd46[21]](_0x2655x37);if(_0x2655x34!=null){this[_0xbd46[3]][_0x2655x34]=[_0x2655x7,_0x2655x37]}};Sidebar[_0xbd46[40]][_0xbd46[218]]=function(_0x2655x9,_0x2655x38,_0x2655x39){var _0x2655x3a=false;_0x2655x9[_0xbd46[17]][_0xbd46[143]]=(_0x2655x38[_0xbd46[17]][_0xbd46[83]]==_0xbd46[110])?_0xbd46[144]+IMAGE_PATH+_0xbd46[219]:_0xbd46[144]+IMAGE_PATH+_0xbd46[220];_0x2655x9[_0xbd46[17]][_0xbd46[221]]=_0xbd46[222];_0x2655x9[_0xbd46[17]][_0xbd46[223]]=_0xbd46[224];mxEvent[_0xbd46[26]](_0x2655x9,_0xbd46[158],function(_0x2655x4){if(_0x2655x38[_0xbd46[17]][_0xbd46[83]]==_0xbd46[110]){if(!_0x2655x3a){_0x2655x3a=true;if(_0x2655x39!=null){_0x2655x9[_0xbd46[17]][_0xbd46[146]]=_0xbd46[225];window[_0xbd46[126]](function(){_0x2655x39(_0x2655x38);_0x2655x9[_0xbd46[17]][_0xbd46[146]]=_0xbd46[105]},0)}};_0x2655x9[_0xbd46[17]][_0xbd46[143]]=_0xbd46[144]+IMAGE_PATH+_0xbd46[220];_0x2655x38[_0xbd46[17]][_0xbd46[83]]=_0xbd46[84]}else {_0x2655x9[_0xbd46[17]][_0xbd46[143]]=_0xbd46[144]+IMAGE_PATH+_0xbd46[219];_0x2655x38[_0xbd46[17]][_0xbd46[83]]=_0xbd46[110]};mxEvent[_0xbd46[159]](_0x2655x4)})};Sidebar[_0xbd46[40]][_0xbd46[226]]=function(_0x2655x34){var _0x2655x3b=this[_0xbd46[3]][_0x2655x34];if(_0x2655x3b!=null){this[_0xbd46[3]][_0x2655x34]=null;for(var _0x2655x3c=0;_0x2655x3c<_0x2655x3b[_0xbd46[94]];_0x2655x3c++){this[_0xbd46[2]][_0xbd46[227]](_0x2655x3b[_0x2655x3c])};return true};return false};Sidebar[_0xbd46[40]][_0xbd46[51]]=function(_0x2655x34,_0x2655x9,_0x2655x3d,_0x2655x3e,_0x2655x3f,_0x2655x40){this[_0xbd46[216]](_0x2655x34,_0x2655x9,(_0x2655x34===_0xbd46[42]),mxUtils[_0xbd46[25]](this,function(_0x2655x38){var _0x2655x41=_0x2655x40!=null;for(var _0x2655x3c=0;_0x2655x3c<_0x2655x3f[_0xbd46[94]];_0x2655x3c++){var _0x2655x42=_0x2655x3d+_0x2655x3f[_0x2655x3c]+_0x2655x3e;_0x2655x38[_0xbd46[21]](this[_0xbd46[193]](_0xbd46[228]+_0x2655x42,80,80,_0x2655x3f[_0x2655x3c],(_0x2655x41)?_0x2655x40[_0x2655x3c]:null,_0x2655x41))}}))}
\ No newline at end of file
index 7eab562..1c503b5 100644 (file)
@@ -1,407 +1 @@
-/**
- * $Id: Toolbar.js,v 1.3 2013-02-20 16:21:29 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Construcs a new toolbar for the given editor.
- */
-function Toolbar(editorUi, container)
-{
-       this.editorUi = editorUi;
-       this.container = container;
-       this.init();
-
-       // Global handler to hide the current menu
-       mxEvent.addGestureListeners(document, mxUtils.bind(this, function(evt)
-       {
-               this.hideMenu();
-       }));
-};
-
-/**
- * Adds the toolbar elements.
- */
-Toolbar.prototype.init = function()
-{
-       this.addItems(['save', 'publish', '-', 'print', 'undo', 'redo', '-', 'copy', 'cut', 'paste', 'delete', '-', 'duplicate', '-', 'actualSize', 'zoomIn', 'zoomOut', '-']);
-       var fontElt = this.addMenu('Helvetica', mxResources.get('fontFamily'), true, 'fontFamily');
-       fontElt.style.whiteSpace = 'nowrap';
-       fontElt.style.overflow = 'hidden';
-       fontElt.style.width = '70px';
-       this.addSeparator();
-       var sizeElt = this.addMenu('12', mxResources.get('fontSize'), true, 'fontSize');
-       sizeElt.style.whiteSpace = 'nowrap';
-       sizeElt.style.overflow = 'hidden';
-       sizeElt.style.width = '30px';
-
-       this.addItems(['-', 'bold', 'italic', 'underline']);
-       // Giuseppe Careri
-       // var align = this.addMenuFunction('geSprite-left', mxResources.get('align'), false, mxUtils.bind(this, function(menu)
-       // {
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_LEFT], 'geIcon geSprite geSprite-left', null).setAttribute('title', mxResources.get('left'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_CENTER], 'geIcon geSprite geSprite-center', null).setAttribute('title', mxResources.get('center'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_RIGHT], 'geIcon geSprite geSprite-right', null).setAttribute('title', mxResources.get('right'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_TOP], 'geIcon geSprite geSprite-top', null).setAttribute('title', mxResources.get('top'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_MIDDLE], 'geIcon geSprite geSprite-middle', null).setAttribute('title', mxResources.get('middle'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_BOTTOM], 'geIcon geSprite geSprite-bottom', null).setAttribute('title', mxResources.get('bottom'));
-       // }));
-       // this.addItems(['fontColor', '-']);
-       // var line = this.addMenuFunction('geSprite-straight', mxResources.get('line'), false, mxUtils.bind(this, function(menu)
-       // {
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_EDGE], [null], 'geIcon geSprite geSprite-straight', null).setAttribute('title', mxResources.get('straight'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_EDGE], ['entityRelationEdgeStyle'], 'geIcon geSprite geSprite-entity', null).setAttribute('title', mxResources.get('entityRelation'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_EDGE, mxConstants.STYLE_ELBOW], ['elbowEdgeStyle', 'horizontal'], 'geIcon geSprite geSprite-helbow', null).setAttribute('title', mxResources.get('horizontal'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_EDGE, mxConstants.STYLE_ELBOW], ['elbowEdgeStyle', 'vertical'], 'geIcon geSprite geSprite-velbow', null).setAttribute('title', mxResources.get('vertical'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_EDGE], ['segmentEdgeStyle'], 'geIcon geSprite geSprite-segment', null).setAttribute('title', mxResources.get('manual'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_EDGE], ['orthogonalEdgeStyle'], 'geIcon geSprite geSprite-orthogonal', null).setAttribute('title', mxResources.get('automatic'));
-       // }));
-       // var linestart = this.addMenuFunction('geSprite-startclassic', mxResources.get('lineend'), false, mxUtils.bind(this, function(menu)
-       // {
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.NONE, 0], 'geIcon geSprite geSprite-noarrow', null).setAttribute('title', mxResources.get('none'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_CLASSIC, 1], 'geIcon geSprite geSprite-startclassic', null).setAttribute('title', mxResources.get('classic'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_OPEN, 1], 'geIcon geSprite geSprite-startopen', null).setAttribute('title', mxResources.get('openArrow'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_BLOCK, 1], 'geIcon geSprite geSprite-startblock', null).setAttribute('title', mxResources.get('block'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_OVAL, 1], 'geIcon geSprite geSprite-startoval', null).setAttribute('title', mxResources.get('oval'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_DIAMOND, 1], 'geIcon geSprite geSprite-startdiamond', null).setAttribute('title', mxResources.get('diamond'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_DIAMOND_THIN, 1], 'geIcon geSprite geSprite-startthindiamond', null).setAttribute('title', mxResources.get('diamondThin'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_CLASSIC, 0], 'geIcon geSprite geSprite-startclassictrans', null).setAttribute('title', mxResources.get('classic'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_BLOCK, 0], 'geIcon geSprite geSprite-startblocktrans', null).setAttribute('title', mxResources.get('block'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_OVAL, 0], 'geIcon geSprite geSprite-startovaltrans', null).setAttribute('title', mxResources.get('oval'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_DIAMOND, 0], 'geIcon geSprite geSprite-startdiamondtrans', null).setAttribute('title', mxResources.get('diamond'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_DIAMOND_THIN, 0], 'geIcon geSprite geSprite-startthindiamondtrans', null).setAttribute('title', mxResources.get('diamondThin'));
-       // }));
-       // var lineend = this.addMenuFunction('geSprite-endclassic', mxResources.get('lineend'), false, mxUtils.bind(this, function(menu)
-       // {
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.NONE, 0], 'geIcon geSprite geSprite-noarrow', null).setAttribute('title', mxResources.get('none'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_CLASSIC, 1], 'geIcon geSprite geSprite-endclassic', null).setAttribute('title', mxResources.get('classic'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_OPEN, 1], 'geIcon geSprite geSprite-endopen', null).setAttribute('title', mxResources.get('openArrow'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_BLOCK, 1], 'geIcon geSprite geSprite-endblock', null).setAttribute('title', mxResources.get('block'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_OVAL, 1], 'geIcon geSprite geSprite-endoval', null).setAttribute('title', mxResources.get('oval'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_DIAMOND, 1], 'geIcon geSprite geSprite-enddiamond', null).setAttribute('title', mxResources.get('diamond'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_DIAMOND_THIN, 1], 'geIcon geSprite geSprite-endthindiamond', null).setAttribute('title', mxResources.get('diamondThin'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_CLASSIC, 0], 'geIcon geSprite geSprite-endclassictrans', null).setAttribute('title', mxResources.get('classic'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_BLOCK, 0], 'geIcon geSprite geSprite-endblocktrans', null).setAttribute('title', mxResources.get('block'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_OVAL, 0], 'geIcon geSprite geSprite-endovaltrans', null).setAttribute('title', mxResources.get('oval'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_DIAMOND, 0], 'geIcon geSprite geSprite-enddiamondtrans', null).setAttribute('title', mxResources.get('diamond'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_DIAMOND_THIN, 0], 'geIcon geSprite geSprite-endthindiamondtrans', null).setAttribute('title', mxResources.get('diamondThin'));
-       // }));
-       // this.addItems(['-', 'strokeColor', 'image', 'fillColor']);
-       // this.addItem('geSprite-gradientcolor', 'gradientColor').setAttribute('title', mxResources.get('gradient'));
-       // this.addItems(['shadow']);
-
-       var graph = this.editorUi.editor.graph;
-
-       // Update font size and font family labels
-       var update = mxUtils.bind(this, function()
-       {
-               var ff = 'Helvetica';
-               var fs = '12';
-       var state = graph.getView().getState(graph.getSelectionCell());
-
-       if (state != null)
-       {
-               ff = state.style[mxConstants.STYLE_FONTFAMILY] || ff;
-               fs = state.style[mxConstants.STYLE_FONTSIZE] || fs;
-
-               if (ff.length > 10)
-               {
-                       ff = ff.substring(0, 8) + '...';
-               }
-
-               fontElt.innerHTML = ff;
-               sizeElt.innerHTML = fs;
-       }
-       });
-
-    graph.getSelectionModel().addListener(mxEvent.CHANGE, update);
-    graph.getModel().addListener(mxEvent.CHANGE, update);
-
-       // Giuseppe Careri
-       // Updates button states
-  //this.addEdgeSelectionHandler([line, linestart, lineend]);
-       //this.addSelectionHandler([align]);
-};
-
-/**
- * Hides the current menu.
- */
-Toolbar.prototype.hideMenu = function()
-{
-       if (this.currentMenu != null)
-       {
-               this.currentMenu.hideMenu();
-               this.currentMenu.destroy();
-               this.currentMenu = null;
-       }
-};
-
-/**
- * Adds a label to the toolbar.
- */
-Toolbar.prototype.addMenu = function(label, tooltip, showLabels, name)
-{
-       var menu = this.editorUi.menus.get(name);
-       var elt = this.addMenuFunction(label, tooltip, showLabels, menu.funct);
-
-       menu.addListener('stateChanged', function()
-       {
-               elt.setEnabled(menu.enabled);
-       });
-
-       return elt;
-};
-
-/**
- * Adds a label to the toolbar.
- */
-Toolbar.prototype.addMenuFunction = function(label, tooltip, showLabels, funct)
-{
-       var elt = (showLabels) ? this.createLabel(label) : this.createButton(label);
-       this.initElement(elt, tooltip);
-       this.addMenuHandler(elt, showLabels, funct);
-       this.container.appendChild(elt);
-
-       return elt;
-};
-
-/**
- * Adds a separator to the separator.
- */
-Toolbar.prototype.addSeparator = function()
-{
-       var elt = document.createElement('div');
-       elt.className = 'geSeparator';
-       this.container.appendChild(elt);
-
-       return elt;
-};
-
-/**
- * Adds given action item
- */
-Toolbar.prototype.addItems = function(keys)
-{
-       for (var i = 0; i < keys.length; i++)
-       {
-               var key = keys[i];
-
-               if (key == '-')
-               {
-                       this.addSeparator();
-               }
-               else
-               {
-                       this.addItem('geSprite-' + key.toLowerCase(), key);
-               }
-       }
-};
-
-/**
- * Adds given action item
- */
-Toolbar.prototype.addItem = function(sprite, key)
-{
-       var action = this.editorUi.actions.get(key);
-       var elt = null;
-
-       if (action != null)
-       {
-               elt = this.addButton(sprite, action.label, action.funct);
-               elt.setEnabled(action.enabled);
-
-               action.addListener('stateChanged', function()
-               {
-                       elt.setEnabled(action.enabled);
-               });
-       }
-
-       return elt;
-};
-
-/**
- * Adds a button to the toolbar.
- */
-Toolbar.prototype.addButton = function(classname, tooltip, funct)
-{
-       var elt = this.createButton(classname);
-
-       this.initElement(elt, tooltip);
-       this.addClickHandler(elt, funct);
-       this.container.appendChild(elt);
-
-       return elt;
-};
-
-/**
- * Updates the states of the given toolbar items based on the selection.
- */
-Toolbar.prototype.addSelectionHandler = function(items)
-{
-       var graph = this.editorUi.editor.graph;
-
-       var selectionListener = function()
-    {
-       var selected = !graph.isSelectionEmpty();
-
-       for (var i = 0; i < items.length; i++)
-       {
-               items[i].setEnabled(selected);
-       }
-    };
-
-    graph.getSelectionModel().addListener(mxEvent.CHANGE, selectionListener);
-    selectionListener();
-};
-
-/**
- * Updates the states of the given toolbar items based on the selection.
- */
-Toolbar.prototype.addEdgeSelectionHandler = function(items)
-{
-       var graph = this.editorUi.editor.graph;
-
-       var selectionListener = function()
-    {
-               var edgeSelected = false;
-
-               if (!graph.isSelectionEmpty())
-               {
-                       var cells = graph.getSelectionCells();
-
-                       for (var i = 0; i < cells.length; i++)
-                       {
-                               if (graph.getModel().isEdge(cells[i]))
-                               {
-                                       edgeSelected = true;
-                                       break;
-                               }
-                       }
-               }
-
-       for (var i = 0; i < items.length; i++)
-       {
-               items[i].setEnabled(edgeSelected);
-       }
-    };
-
-    graph.getSelectionModel().addListener(mxEvent.CHANGE, selectionListener);
-    selectionListener();
-};
-
-/**
- * Initializes the given toolbar element.
- */
-Toolbar.prototype.initElement = function(elt, tooltip)
-{
-       elt.setAttribute('tabindex', '0');
-
-       // Adds tooltip
-       if (tooltip != null)
-       {
-               elt.setAttribute('title', tooltip);
-       }
-
-       this.addEnabledState(elt);
-};
-
-/**
- * Adds enabled state with setter to DOM node (avoids JS wrapper).
- */
-Toolbar.prototype.addEnabledState = function(elt)
-{
-       var classname = elt.className;
-
-       elt.setEnabled = function(value)
-       {
-               elt.enabled = value;
-
-               if (value)
-               {
-                       elt.className = classname;
-               }
-               else
-               {
-                       elt.className = classname + ' geDisabled';
-               }
-       };
-
-       elt.setEnabled(true);
-};
-
-/**
- * Adds enabled state with setter to DOM node (avoids JS wrapper).
- */
-Toolbar.prototype.addClickHandler = function(elt, funct)
-{
-       if (funct != null)
-       {
-               mxEvent.addListener(elt, 'click', function(evt)
-               {
-                       if (elt.enabled)
-                       {
-                               funct(evt);
-                       }
-
-                       mxEvent.consume(evt);
-               });
-       }
-};
-
-/**
- * Creates and returns a new button.
- */
-Toolbar.prototype.createButton = function(classname)
-{
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geButton';
-
-       var inner = document.createElement('div');
-       inner.className = 'geSprite ' + classname;
-       elt.appendChild(inner);
-
-       return elt;
-};
-
-/**
- * Creates and returns a new button.
- */
-Toolbar.prototype.createLabel = function(label, tooltip)
-{
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geLabel';
-       mxUtils.write(elt, label);
-
-       return elt;
-};
-
-/**
- * Adds a handler for showing a menu in the given element.
- */
-Toolbar.prototype.addMenuHandler = function(elt, showLabels, funct, showAll)
-{
-       if (funct != null)
-       {
-               var graph = this.editorUi.editor.graph;
-               var menu = null;
-
-               mxEvent.addListener(elt, 'click', mxUtils.bind(this, function(evt)
-               {
-                       if (elt.enabled == null || elt.enabled)
-                       {
-                               graph.panningHandler.hideMenu();
-                               menu = new mxPopupMenu(funct);
-                               menu.div.className += ' geToolbarMenu';
-                               menu.showDisabled = showAll;
-                               menu.labels = showLabels;
-                               menu.autoExpand = true;
-
-                               menu.popup(elt.offsetLeft, elt.offsetTop + elt.offsetHeight + 34, null, evt);
-                               this.currentMenu = menu;
-                       }
-
-                       mxEvent.consume(evt);
-               }));
-       }
-};
+var _0x13c1=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x69\x6E\x69\x74","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x62\x69\x6E\x64","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x61\x76\x65","\x70\x75\x62\x6C\x69\x73\x68","\x2D","\x70\x72\x69\x6E\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x6F\x70\x79","\x63\x75\x74","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x61\x64\x64\x49\x74\x65\x6D\x73","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x67\x65\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x73\x74\x79\x6C\x65","\x6E\x6F\x77\x72\x61\x70","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x68\x69\x64\x64\x65\x6E","\x77\x69\x64\x74\x68","\x37\x30\x70\x78","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x31\x32","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x33\x30\x70\x78","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x6C\x65\x6E\x67\x74\x68","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x2E\x2E\x2E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x64\x65\x73\x74\x72\x6F\x79","\x6D\x65\x6E\x75\x73","\x66\x75\x6E\x63\x74","\x61\x64\x64\x4D\x65\x6E\x75\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x72\x65\x61\x74\x65\x4C\x61\x62\x65\x6C","\x63\x72\x65\x61\x74\x65\x42\x75\x74\x74\x6F\x6E","\x69\x6E\x69\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x67\x65\x53\x70\x72\x69\x74\x65\x2D","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x64\x49\x74\x65\x6D","\x61\x63\x74\x69\x6F\x6E\x73","\x6C\x61\x62\x65\x6C","\x61\x64\x64\x42\x75\x74\x74\x6F\x6E","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x61\x64\x64\x45\x64\x67\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x69\x73\x45\x64\x67\x65","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x74\x69\x74\x6C\x65","\x61\x64\x64\x45\x6E\x61\x62\x6C\x65\x64\x53\x74\x61\x74\x65","\x20\x67\x65\x44\x69\x73\x61\x62\x6C\x65\x64","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x42\x75\x74\x74\x6F\x6E","\x67\x65\x53\x70\x72\x69\x74\x65\x20","\x67\x65\x4C\x61\x62\x65\x6C","\x77\x72\x69\x74\x65","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x20\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x4D\x65\x6E\x75","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x6C\x61\x62\x65\x6C\x73","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70"];function Toolbar(_0x56ffx2,_0x56ffx3){this[_0x13c1[0]]=_0x56ffx2;this[_0x13c1[1]]=_0x56ffx3;this[_0x13c1[2]]();mxEvent[_0x13c1[5]](document,mxUtils[_0x13c1[4]](this,function(_0x56ffx4){this[_0x13c1[3]]()}))}Toolbar[_0x13c1[6]][_0x13c1[2]]=function(){this[_0x13c1[21]]([_0x13c1[7],_0x13c1[8],_0x13c1[9],_0x13c1[10],_0x13c1[11],_0x13c1[12],_0x13c1[9],_0x13c1[13],_0x13c1[14],_0x13c1[15],_0x13c1[16],_0x13c1[9],_0x13c1[17],_0x13c1[9],_0x13c1[18],_0x13c1[19],_0x13c1[20],_0x13c1[9]]);var _0x56ffx5=this[_0x13c1[25]](_0x13c1[22],mxResources[_0x13c1[24]](_0x13c1[23]),true,_0x13c1[23]);_0x56ffx5[_0x13c1[27]][_0x13c1[26]]=_0x13c1[28];_0x56ffx5[_0x13c1[27]][_0x13c1[29]]=_0x13c1[30];_0x56ffx5[_0x13c1[27]][_0x13c1[31]]=_0x13c1[32];this[_0x13c1[33]]();var _0x56ffx6=this[_0x13c1[25]](_0x13c1[34],mxResources[_0x13c1[24]](_0x13c1[35]),true,_0x13c1[35]);_0x56ffx6[_0x13c1[27]][_0x13c1[26]]=_0x13c1[28];_0x56ffx6[_0x13c1[27]][_0x13c1[29]]=_0x13c1[30];_0x56ffx6[_0x13c1[27]][_0x13c1[31]]=_0x13c1[36];this[_0x13c1[21]]([_0x13c1[9],_0x13c1[37],_0x13c1[38],_0x13c1[39]]);var _0x56ffx7=this[_0x13c1[0]][_0x13c1[41]][_0x13c1[40]];var _0x56ffx8=mxUtils[_0x13c1[4]](this,function(){var _0x56ffx9=_0x13c1[22];var _0x56ffxa=_0x13c1[34];var _0x56ffxb=_0x56ffx7[_0x13c1[44]]()[_0x13c1[43]](_0x56ffx7[_0x13c1[42]]());if(_0x56ffxb!=null){_0x56ffx9=_0x56ffxb[_0x13c1[27]][mxConstants[_0x13c1[45]]]||_0x56ffx9;_0x56ffxa=_0x56ffxb[_0x13c1[27]][mxConstants[_0x13c1[46]]]||_0x56ffxa;if(_0x56ffx9[_0x13c1[47]]>10){_0x56ffx9=_0x56ffx9[_0x13c1[48]](0,8)+_0x13c1[49]};_0x56ffx5[_0x13c1[50]]=_0x56ffx9;_0x56ffx6[_0x13c1[50]]=_0x56ffxa}});_0x56ffx7[_0x13c1[52]]()[_0x13c1[51]](mxEvent.CHANGE,_0x56ffx8);_0x56ffx7[_0x13c1[53]]()[_0x13c1[51]](mxEvent.CHANGE,_0x56ffx8)};Toolbar[_0x13c1[6]][_0x13c1[3]]=function(){if(this[_0x13c1[54]]!=null){this[_0x13c1[54]][_0x13c1[3]]();this[_0x13c1[54]][_0x13c1[55]]();this[_0x13c1[54]]=null}};Toolbar[_0x13c1[6]][_0x13c1[25]]=function(_0x56ffxc,_0x56ffxd,_0x56ffxe,_0x56ffxf){var _0x56ffx10=this[_0x13c1[0]][_0x13c1[56]][_0x13c1[24]](_0x56ffxf);var _0x56ffx11=this[_0x13c1[58]](_0x56ffxc,_0x56ffxd,_0x56ffxe,_0x56ffx10[_0x13c1[57]]);_0x56ffx10[_0x13c1[51]](_0x13c1[59],function(){_0x56ffx11[_0x13c1[61]](_0x56ffx10[_0x13c1[60]])});return _0x56ffx11};Toolbar[_0x13c1[6]][_0x13c1[58]]=function(_0x56ffxc,_0x56ffxd,_0x56ffxe,_0x56ffx12){var _0x56ffx11=(_0x56ffxe)?this[_0x13c1[62]](_0x56ffxc):this[_0x13c1[63]](_0x56ffxc);this[_0x13c1[64]](_0x56ffx11,_0x56ffxd);this[_0x13c1[65]](_0x56ffx11,_0x56ffxe,_0x56ffx12);this[_0x13c1[1]][_0x13c1[66]](_0x56ffx11);return _0x56ffx11};Toolbar[_0x13c1[6]][_0x13c1[33]]=function(){var _0x56ffx11=document[_0x13c1[68]](_0x13c1[67]);_0x56ffx11[_0x13c1[69]]=_0x13c1[70];this[_0x13c1[1]][_0x13c1[66]](_0x56ffx11);return _0x56ffx11};Toolbar[_0x13c1[6]][_0x13c1[21]]=function(_0x56ffx13){for(var _0x56ffx14=0;_0x56ffx14<_0x56ffx13[_0x13c1[47]];_0x56ffx14++){var _0x56ffx15=_0x56ffx13[_0x56ffx14];if(_0x56ffx15==_0x13c1[9]){this[_0x13c1[33]]()}else {this[_0x13c1[73]](_0x13c1[71]+_0x56ffx15[_0x13c1[72]](),_0x56ffx15)}}};Toolbar[_0x13c1[6]][_0x13c1[73]]=function(_0x56ffx16,_0x56ffx15){var _0x56ffx17=this[_0x13c1[0]][_0x13c1[74]][_0x13c1[24]](_0x56ffx15);var _0x56ffx11=null;if(_0x56ffx17!=null){_0x56ffx11=this[_0x13c1[76]](_0x56ffx16,_0x56ffx17[_0x13c1[75]],_0x56ffx17[_0x13c1[57]]);_0x56ffx11[_0x13c1[61]](_0x56ffx17[_0x13c1[60]]);_0x56ffx17[_0x13c1[51]](_0x13c1[59],function(){_0x56ffx11[_0x13c1[61]](_0x56ffx17[_0x13c1[60]])})};return _0x56ffx11};Toolbar[_0x13c1[6]][_0x13c1[76]]=function(_0x56ffx18,_0x56ffxd,_0x56ffx12){var _0x56ffx11=this[_0x13c1[63]](_0x56ffx18);this[_0x13c1[64]](_0x56ffx11,_0x56ffxd);this[_0x13c1[77]](_0x56ffx11,_0x56ffx12);this[_0x13c1[1]][_0x13c1[66]](_0x56ffx11);return _0x56ffx11};Toolbar[_0x13c1[6]][_0x13c1[78]]=function(_0x56ffx19){var _0x56ffx7=this[_0x13c1[0]][_0x13c1[41]][_0x13c1[40]];var _0x56ffx1a=function(){var _0x56ffx1b=!_0x56ffx7[_0x13c1[79]]();for(var _0x56ffx14=0;_0x56ffx14<_0x56ffx19[_0x13c1[47]];_0x56ffx14++){_0x56ffx19[_0x56ffx14][_0x13c1[61]](_0x56ffx1b)}};_0x56ffx7[_0x13c1[52]]()[_0x13c1[51]](mxEvent.CHANGE,_0x56ffx1a);_0x56ffx1a()};Toolbar[_0x13c1[6]][_0x13c1[80]]=function(_0x56ffx19){var _0x56ffx7=this[_0x13c1[0]][_0x13c1[41]][_0x13c1[40]];var _0x56ffx1a=function(){var _0x56ffx1c=false;if(!_0x56ffx7[_0x13c1[79]]()){var _0x56ffx1d=_0x56ffx7[_0x13c1[81]]();for(var _0x56ffx14=0;_0x56ffx14<_0x56ffx1d[_0x13c1[47]];_0x56ffx14++){if(_0x56ffx7[_0x13c1[53]]()[_0x13c1[82]](_0x56ffx1d[_0x56ffx14])){_0x56ffx1c=true;break}}};for(var _0x56ffx14=0;_0x56ffx14<_0x56ffx19[_0x13c1[47]];_0x56ffx14++){_0x56ffx19[_0x56ffx14][_0x13c1[61]](_0x56ffx1c)}};_0x56ffx7[_0x13c1[52]]()[_0x13c1[51]](mxEvent.CHANGE,_0x56ffx1a);_0x56ffx1a()};Toolbar[_0x13c1[6]][_0x13c1[64]]=function(_0x56ffx11,_0x56ffxd){_0x56ffx11[_0x13c1[85]](_0x13c1[83],_0x13c1[84]);if(_0x56ffxd!=null){_0x56ffx11[_0x13c1[85]](_0x13c1[86],_0x56ffxd)};this[_0x13c1[87]](_0x56ffx11)};Toolbar[_0x13c1[6]][_0x13c1[87]]=function(_0x56ffx11){var _0x56ffx18=_0x56ffx11[_0x13c1[69]];_0x56ffx11[_0x13c1[61]]=function(_0x56ffx1e){_0x56ffx11[_0x13c1[60]]=_0x56ffx1e;if(_0x56ffx1e){_0x56ffx11[_0x13c1[69]]=_0x56ffx18}else {_0x56ffx11[_0x13c1[69]]=_0x56ffx18+_0x13c1[88]}};_0x56ffx11[_0x13c1[61]](true)};Toolbar[_0x13c1[6]][_0x13c1[77]]=function(_0x56ffx11,_0x56ffx12){if(_0x56ffx12!=null){mxEvent[_0x13c1[51]](_0x56ffx11,_0x13c1[89],function(_0x56ffx4){if(_0x56ffx11[_0x13c1[60]]){_0x56ffx12(_0x56ffx4)};mxEvent[_0x13c1[90]](_0x56ffx4)})}};Toolbar[_0x13c1[6]][_0x13c1[63]]=function(_0x56ffx18){var _0x56ffx11=document[_0x13c1[68]](_0x13c1[91]);_0x56ffx11[_0x13c1[85]](_0x13c1[92],_0x13c1[93]);_0x56ffx11[_0x13c1[69]]=_0x13c1[94];var _0x56ffx1f=document[_0x13c1[68]](_0x13c1[67]);_0x56ffx1f[_0x13c1[69]]=_0x13c1[95]+_0x56ffx18;_0x56ffx11[_0x13c1[66]](_0x56ffx1f);return _0x56ffx11};Toolbar[_0x13c1[6]][_0x13c1[62]]=function(_0x56ffxc,_0x56ffxd){var _0x56ffx11=document[_0x13c1[68]](_0x13c1[91]);_0x56ffx11[_0x13c1[85]](_0x13c1[92],_0x13c1[93]);_0x56ffx11[_0x13c1[69]]=_0x13c1[96];mxUtils[_0x13c1[97]](_0x56ffx11,_0x56ffxc);return _0x56ffx11};Toolbar[_0x13c1[6]][_0x13c1[65]]=function(_0x56ffx11,_0x56ffxe,_0x56ffx12,_0x56ffx20){if(_0x56ffx12!=null){var _0x56ffx7=this[_0x13c1[0]][_0x13c1[41]][_0x13c1[40]];var _0x56ffx10=null;mxEvent[_0x13c1[51]](_0x56ffx11,_0x13c1[89],mxUtils[_0x13c1[4]](this,function(_0x56ffx4){if(_0x56ffx11[_0x13c1[60]]==null||_0x56ffx11[_0x13c1[60]]){_0x56ffx7[_0x13c1[98]][_0x13c1[3]]();_0x56ffx10= new mxPopupMenu(_0x56ffx12);_0x56ffx10[_0x13c1[67]][_0x13c1[69]]+=_0x13c1[99];_0x56ffx10[_0x13c1[100]]=_0x56ffx20;_0x56ffx10[_0x13c1[101]]=_0x56ffxe;_0x56ffx10[_0x13c1[102]]=true;_0x56ffx10[_0x13c1[106]](_0x56ffx11[_0x13c1[103]],_0x56ffx11[_0x13c1[104]]+_0x56ffx11[_0x13c1[105]]+34,null,_0x56ffx4);this[_0x13c1[54]]=_0x56ffx10};mxEvent[_0x13c1[90]](_0x56ffx4)}))}}
\ No newline at end of file
index a53e30b..4cdfe65 100644 (file)
@@ -1,283 +1 @@
-var urlParams = (function(url) {
-       var result = new Object();
-       var idx = url.lastIndexOf('?');
-
-       if (idx > 0) {
-               var params = url.substring(idx + 1).split('&');
-
-               for (var i = 0; i < params.length; i++) {
-                       idx = params[i].indexOf('=');
-
-                       if (idx > 0) {
-                               result[params[i].substring(0, idx)] = params[i].substring(idx + 1);
-                       }
-               }
-       }
-
-       return result;
-})(window.location.href);
-
-var t0 = new Date();
-
-// Public global variables
-var MAX_REQUEST_SIZE = 10485760;
-var MAX_WIDTH = 12000;
-var MAX_HEIGHT = 12000;
-
-// CUSTOM_PARAMETERS - URLs for save and export
-var EXPORT_URL = 'http://exp.draw.io/ImageExport2/export';
-var SHARE_HOST = 'http://localhost:3000';
-
-var SAVE_URL = 'api/jscripty/projects/';
-var VARIABLE_URL = 'api/square/variables/';
-
-// Paths and files
-var STENCIL_PATH = '/assets/plugins/jscripty/stencils';
-var SHAPES_PATH = '/assets/plugins/mxgraph/shapes';
-var IMAGE_PATH = '/assets/plugins/mxgraph/images';
-// Path for images inside the diagram
-//var GRAPH_IMAGE_PATH = 'assets/plugins/mxgraph/img';
-//var ICONFINDER_PATH = 'iconfinder';
-var STYLE_PATH = '/assets/plugins/mxgraph/styles';
-var CSS_PATH = '/assets/plugins/mxgraph/styles';
-var OPEN_FORM = 'api/jscripty/projects/open';
-var TEMPLATE_PATH = '/assets/plugins/jscripty/templates';
-
-// Directory for i18 files and basename for main i18n file
-var RESOURCES_PATH = '/assets/plugins/jscripty/resources';
-var RESOURCE_BASE = RESOURCES_PATH + '/dia';
-
-// Specifies connection mode for touch devices (at least one should be true)
-var tapAndHoldStartsConnection = true;
-var showConnectorImg = true;
-
-var mxLoadResources = false;
-// var mxLanguage = '';
-console.log('custom', localStorage.getItem("NG_TRANSLATE_LANG_KEY"));
-switch (localStorage.getItem("NG_TRANSLATE_LANG_KEY")) {
-       case 'en_EN':
-               mxLanguage = 'en';
-               break;
-       case 'it':
-               mxLanguage = 'it';
-               break;
-       default:
-               mxLanguage = 'it';
-}
-console.log('mxLanguage', mxLanguage);
-
-var mxLanguages = ['ar', 'bs', 'cs', 'da', 'de', 'el', 'es', 'es-ar', 'fr',
-       'hu', 'id', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt-br', 'pt', 'ro', 'ru',
-       'sr', 'sv', 'th', 'tr', 'uk', 'zh'
-];
-var mxBasePath = 'assets/plugins/mxgraph';
-var geBasePath = 'assets/plugins/mxgraph/js';
-
-var ISPEECHLANG = {
-       usenglishfemale: "US English Female",
-       usenglishmale: "US English Male",
-       ukenglishfemale: "UK English Female",
-       ukenglishmale: "UK English Male",
-       auenglishfemale: "Australian English",
-       usspanishfemale: "US Spanish Female",
-       usspanishmale: "US Spanish Male",
-       chchinesefemale: "Chinese Female",
-       chchinesemale: "Chinese Male",
-       hkchinesefemale: "Hong Kong Cantonese Female",
-       twchinesefemale: "Taiwan Chinese Female",
-       jpjapanesefemale: "Japanese Female",
-       jpjapanesemale: "Japanese Male",
-       krkoreanfemale: "Korean Female",
-       krkoreanmale: "Korean Male",
-       caenglishfemale: "Canadian English Female",
-       huhungarianfemale: "Hungarian Female",
-       brportuguesefemale: "Brazilian Portuguese Female",
-       eurportuguesefemale: "European Portuguese Female",
-       eurportuguesemale: "European Portuguese Male",
-       eurspanishfemale: "European Spanish Female",
-       eurspanishmale: "European Spanish Male",
-       eurcatalanfemale: "European Catalan Female",
-       eurczechfemale: "European Czech Female",
-       eurdanishfemale: "European Danish Female",
-       eurfinnishfemale: "European Finnish Female",
-       eurfrenchfemale: "European French Female",
-       eurfrenchmale: "European French Male",
-       eurnorwegianfemale: "European Norwegian Female",
-       eurdutchfemale: "European Dutch Female",
-       eurpolishfemale: "European Polish Female",
-       euritalianfemale: "European Italian Female",
-       eurturkishfemale: "European Turkish Female      ",
-       eurturkishmale: "European Turkish Male",
-       eurgermanfemale: "European German Female",
-       eurgermanmale: "European German Male",
-       rurussianfemale: "Russian Female",
-       rurussianmale: "Russian Male",
-       swswedishfemale: "Swedish Female",
-       cafrenchfemale: "Canadian French Female",
-       cafrenchmale: "Canadian French Male"
-};
-
-var ISPEECHASRLANG = {
-       "en-US": "English (US)",
-       "en-CA": "English (Canada)",
-       "en-GB": "English (UK)",
-       "en-AU": "English (Australia)",
-       "es-ES": "Spanish (Spain)",
-       "es-MX": "Spanish (Mexico)",
-       "it-IT": "Italian (Italy) / Finnish (Finland)",
-       "fr-FR": "French (France)",
-       "fr-CA": "French (Canada)",
-       "pl-PL": "Polish (Poland)",
-       "pt-PT": "Portuguese (Portugal)",
-       "ca-ES": "Catalan (Catalan)",
-       "zh-TW": "Chinese (Taiwan)",
-       "da-DK": "Danish (Denmark)",
-       "fr-FR": "German (Germany)",
-       "ja-JP": "Japanese (Japan)",
-       "ko-KR": "Korean (Korea)",
-       "nl-NL": "Dutch (Netherlands)",
-       "nb-NO": "Norwegian (Norway)",
-       "pt-BR": "Portuguese (Brazil)",
-       "ru-RU": "Russian (Russia)",
-       "sv-SE": "Swedish (Sweden)",
-       "zh-CN": "Chinese (China)",
-       "zh-HK": "Chinese (Hong Kong)"
-};
-
-var ISPEECHASRMODEL = {
-       0: "Default",
-       date: "Date",
-       usmoney: "US Money",
-       numbersto9: "Numbers to 9",
-       numbersto99: "Numbers to 99",
-       numbersto999: "Numbers to 999",
-       time: "Time",
-       phonenumber: "Phone number",
-       streets: "Streets",
-       citystate: "US City/States"
-};
-
-var GOOGLETTSLANG = {
-       "af": "Afrikaans",
-       "sq": "Albanian",
-       "am": "Amharic",
-       "ar": "Arabic",
-       "hy": "Armenian",
-       "az": "Azerbaijani",
-       "eu": "Basque",
-       "be": "Belarusian",
-       "bn": "Bengali",
-       "bh": "Bihari",
-       "bs": "Bosnian",
-       "br": "Breton",
-       "bg": "Bulgarian",
-       "km": "Cambodian",
-       "ca": "Catalan",
-       "zh-CN": "Chinese (Simplified)",
-       "zh-TW": "Chinese (Traditional)",
-       "co": "Corsican",
-       "hr": "Croatian",
-       "cs": "Czech",
-       "da": "Danish",
-       "nl": "Dutch",
-       "en": "English",
-       "eo": "Esperanto",
-       "et": "Estonian",
-       "fo": "Faroese",
-       "tl": "Filipino",
-       "fi": "Finnish",
-       "fr": "French",
-       "fy": "Frisian",
-       "gl": "Galician",
-       "ka": "Georgian",
-       "de": "German",
-       "el": "Greek",
-       "gn": "Guarani",
-       "gu": "Gujarati",
-       "xx-hacker": "Hacker",
-       "ha": "Hausa",
-       "iw": "Hebrew",
-       "hi": "Hindi",
-       "hu": "Hungarian",
-       "is": "Icelandic",
-       "id": "Indonesian",
-       "ia": "Interlingua",
-       "ga": "Irish",
-       "it": "Italian",
-       "jw": "Javanese",
-       "ja": "Japanese",
-       "kn": "Kannada",
-       "kk": "Kazakh",
-       "rw": "Kinyarwanda",
-       "rn": "Kirundi",
-       "xx-klingon": "Klingon",
-       "ku": "Kurdish",
-       "ko": "Korean",
-       "ky": "Kyrgyz",
-       "lo": "Laothian",
-       "la": "Latin",
-       "lv": "Latvian",
-       "ln": "Lingala",
-       "lt": "Lithuanian",
-       "mk": "Macedonian",
-       "mg": "Malagasy",
-       "ms": "Malay",
-       "ml": "Malayalam",
-       "mt": "Maltese",
-       "mi": "Maori",
-       "mr": "Marathi",
-       "mo": "Moldavian",
-       "mn": "Mongolian",
-       "sr-ME": "Montenegrin",
-       "ne": "Nepali",
-       "no": "Norwegian",
-       "nn": "Norwegian (Nynorsk)",
-       "oc": "Occitan",
-       "or": "Oriya",
-       "om": "Oromo",
-       "ps": "Pashto",
-       "fa": "Persian",
-       "xx-pirate": "Pirate",
-       "pl": "Polish",
-       "pt-BR": "Portuguese (Brazil)",
-       "pt-PT": "Portuguese (Portugal)",
-       "pa": "Punjabi",
-       "qu": "Quechua",
-       "ro": "Romanian",
-       "rm": "Romansh",
-       "ru": "Russian",
-       "gd": "Scots Gaelic",
-       "sr": "Serbian",
-       "sh": "Serbo-Croatian",
-       "st": "Sesotho",
-       "sn": "Shona",
-       "sd": "Sindhi",
-       "si": "Sinhalese",
-       "sk": "Slovak",
-       "sl": "Slovenian",
-       "so": "Somali",
-       "es": "Spanish",
-       "su": "Sundanese",
-       "sw": "Swahili",
-       "sv": "Swedish",
-       "tg": "Tajik",
-       "ta": "Tamil",
-       "tt": "Tatar",
-       "te": "Telugu",
-       "th": "Thai",
-       "ti": "Tigrinya",
-       "to": "Tonga",
-       "tr": "Turkish",
-       "tk": "Turkmen",
-       "tw": "Twi",
-       "ug": "Uighur",
-       "uk": "Ukrainian",
-       "ur": "Urdu",
-       "uz": "Uzbek",
-       "vi": "Vietnamese",
-       "cy": "Welsh",
-       "xh": "Xhosa",
-       "yi": "Yiddish",
-       "yo": "Yoruba",
-       "zu": "Zulu"
-};
+var _0xf4fe=["\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x26","\x73\x70\x6C\x69\x74","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x6C\x65\x6E\x67\x74\x68","\x3D","\x69\x6E\x64\x65\x78\x4F\x66","\x68\x74\x74\x70\x3A\x2F\x2F\x65\x78\x70\x2E\x64\x72\x61\x77\x2E\x69\x6F\x2F\x49\x6D\x61\x67\x65\x45\x78\x70\x6F\x72\x74\x32\x2F\x65\x78\x70\x6F\x72\x74","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x33\x30\x30\x30","\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F","\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73\x2F","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x73\x74\x65\x6E\x63\x69\x6C\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x73\x68\x61\x70\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x69\x6D\x61\x67\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x73\x74\x79\x6C\x65\x73","\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x6F\x70\x65\x6E","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x72\x65\x73\x6F\x75\x72\x63\x65\x73","\x2F\x64\x69\x61","\x63\x75\x73\x74\x6F\x6D","\x4E\x47\x5F\x54\x52\x41\x4E\x53\x4C\x41\x54\x45\x5F\x4C\x41\x4E\x47\x5F\x4B\x45\x59","\x67\x65\x74\x49\x74\x65\x6D","\x6C\x6F\x67","\x65\x6E","\x65\x6E\x5F\x45\x4E","\x69\x74","\x6D\x78\x4C\x61\x6E\x67\x75\x61\x67\x65","\x61\x72","\x62\x73","\x63\x73","\x64\x61","\x64\x65","\x65\x6C","\x65\x73","\x65\x73\x2D\x61\x72","\x66\x72","\x68\x75","\x69\x64","\x6A\x61","\x6B\x6F","\x6E\x6C","\x6E\x6F","\x70\x6C","\x70\x74\x2D\x62\x72","\x70\x74","\x72\x6F","\x72\x75","\x73\x72","\x73\x76","\x74\x68","\x74\x72","\x75\x6B","\x7A\x68","\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68","\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x6A\x73","\x55\x53\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x53\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x4D\x61\x6C\x65","\x55\x4B\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x4B\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x4D\x61\x6C\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68","\x55\x53\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x53\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x4D\x61\x6C\x65","\x43\x68\x69\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x43\x68\x69\x6E\x65\x73\x65\x20\x4D\x61\x6C\x65","\x48\x6F\x6E\x67\x20\x4B\x6F\x6E\x67\x20\x43\x61\x6E\x74\x6F\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x54\x61\x69\x77\x61\x6E\x20\x43\x68\x69\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x4D\x61\x6C\x65","\x4B\x6F\x72\x65\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x4B\x6F\x72\x65\x61\x6E\x20\x4D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x48\x75\x6E\x67\x61\x72\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x42\x72\x61\x7A\x69\x6C\x69\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x43\x61\x74\x61\x6C\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x43\x7A\x65\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x44\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x69\x6E\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x44\x75\x74\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x49\x74\x61\x6C\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x54\x75\x72\x6B\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65\x09","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x54\x75\x72\x6B\x69\x73\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x47\x65\x72\x6D\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x47\x65\x72\x6D\x61\x6E\x20\x4D\x61\x6C\x65","\x52\x75\x73\x73\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x52\x75\x73\x73\x69\x61\x6E\x20\x4D\x61\x6C\x65","\x53\x77\x65\x64\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x4D\x61\x6C\x65","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x55\x53\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x43\x61\x6E\x61\x64\x61\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x55\x4B\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x29","\x53\x70\x61\x6E\x69\x73\x68\x20\x28\x53\x70\x61\x69\x6E\x29","\x53\x70\x61\x6E\x69\x73\x68\x20\x28\x4D\x65\x78\x69\x63\x6F\x29","\x49\x74\x61\x6C\x69\x61\x6E\x20\x28\x49\x74\x61\x6C\x79\x29\x20\x2F\x20\x46\x69\x6E\x6E\x69\x73\x68\x20\x28\x46\x69\x6E\x6C\x61\x6E\x64\x29","\x46\x72\x65\x6E\x63\x68\x20\x28\x46\x72\x61\x6E\x63\x65\x29","\x46\x72\x65\x6E\x63\x68\x20\x28\x43\x61\x6E\x61\x64\x61\x29","\x50\x6F\x6C\x69\x73\x68\x20\x28\x50\x6F\x6C\x61\x6E\x64\x29","\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x28\x50\x6F\x72\x74\x75\x67\x61\x6C\x29","\x43\x61\x74\x61\x6C\x61\x6E\x20\x28\x43\x61\x74\x61\x6C\x61\x6E\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x54\x61\x69\x77\x61\x6E\x29","\x44\x61\x6E\x69\x73\x68\x20\x28\x44\x65\x6E\x6D\x61\x72\x6B\x29","\x47\x65\x72\x6D\x61\x6E\x20\x28\x47\x65\x72\x6D\x61\x6E\x79\x29","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x28\x4A\x61\x70\x61\x6E\x29","\x4B\x6F\x72\x65\x61\x6E\x20\x28\x4B\x6F\x72\x65\x61\x29","\x44\x75\x74\x63\x68\x20\x28\x4E\x65\x74\x68\x65\x72\x6C\x61\x6E\x64\x73\x29","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x28\x4E\x6F\x72\x77\x61\x79\x29","\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x28\x42\x72\x61\x7A\x69\x6C\x29","\x52\x75\x73\x73\x69\x61\x6E\x20\x28\x52\x75\x73\x73\x69\x61\x29","\x53\x77\x65\x64\x69\x73\x68\x20\x28\x53\x77\x65\x64\x65\x6E\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x43\x68\x69\x6E\x61\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x48\x6F\x6E\x67\x20\x4B\x6F\x6E\x67\x29","\x44\x65\x66\x61\x75\x6C\x74","\x44\x61\x74\x65","\x55\x53\x20\x4D\x6F\x6E\x65\x79","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39\x39","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39\x39\x39","\x54\x69\x6D\x65","\x50\x68\x6F\x6E\x65\x20\x6E\x75\x6D\x62\x65\x72","\x53\x74\x72\x65\x65\x74\x73","\x55\x53\x20\x43\x69\x74\x79\x2F\x53\x74\x61\x74\x65\x73","\x41\x66\x72\x69\x6B\x61\x61\x6E\x73","\x41\x6C\x62\x61\x6E\x69\x61\x6E","\x41\x6D\x68\x61\x72\x69\x63","\x41\x72\x61\x62\x69\x63","\x41\x72\x6D\x65\x6E\x69\x61\x6E","\x41\x7A\x65\x72\x62\x61\x69\x6A\x61\x6E\x69","\x42\x61\x73\x71\x75\x65","\x42\x65\x6C\x61\x72\x75\x73\x69\x61\x6E","\x42\x65\x6E\x67\x61\x6C\x69","\x42\x69\x68\x61\x72\x69","\x42\x6F\x73\x6E\x69\x61\x6E","\x42\x72\x65\x74\x6F\x6E","\x42\x75\x6C\x67\x61\x72\x69\x61\x6E","\x43\x61\x6D\x62\x6F\x64\x69\x61\x6E","\x43\x61\x74\x61\x6C\x61\x6E","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x53\x69\x6D\x70\x6C\x69\x66\x69\x65\x64\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x54\x72\x61\x64\x69\x74\x69\x6F\x6E\x61\x6C\x29","\x43\x6F\x72\x73\x69\x63\x61\x6E","\x43\x72\x6F\x61\x74\x69\x61\x6E","\x43\x7A\x65\x63\x68","\x44\x61\x6E\x69\x73\x68","\x44\x75\x74\x63\x68","\x45\x6E\x67\x6C\x69\x73\x68","\x45\x73\x70\x65\x72\x61\x6E\x74\x6F","\x45\x73\x74\x6F\x6E\x69\x61\x6E","\x46\x61\x72\x6F\x65\x73\x65","\x46\x69\x6C\x69\x70\x69\x6E\x6F","\x46\x69\x6E\x6E\x69\x73\x68","\x46\x72\x65\x6E\x63\x68","\x46\x72\x69\x73\x69\x61\x6E","\x47\x61\x6C\x69\x63\x69\x61\x6E","\x47\x65\x6F\x72\x67\x69\x61\x6E","\x47\x65\x72\x6D\x61\x6E","\x47\x72\x65\x65\x6B","\x47\x75\x61\x72\x61\x6E\x69","\x47\x75\x6A\x61\x72\x61\x74\x69","\x48\x61\x63\x6B\x65\x72","\x48\x61\x75\x73\x61","\x48\x65\x62\x72\x65\x77","\x48\x69\x6E\x64\x69","\x48\x75\x6E\x67\x61\x72\x69\x61\x6E","\x49\x63\x65\x6C\x61\x6E\x64\x69\x63","\x49\x6E\x64\x6F\x6E\x65\x73\x69\x61\x6E","\x49\x6E\x74\x65\x72\x6C\x69\x6E\x67\x75\x61","\x49\x72\x69\x73\x68","\x49\x74\x61\x6C\x69\x61\x6E","\x4A\x61\x76\x61\x6E\x65\x73\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65","\x4B\x61\x6E\x6E\x61\x64\x61","\x4B\x61\x7A\x61\x6B\x68","\x4B\x69\x6E\x79\x61\x72\x77\x61\x6E\x64\x61","\x4B\x69\x72\x75\x6E\x64\x69","\x4B\x6C\x69\x6E\x67\x6F\x6E","\x4B\x75\x72\x64\x69\x73\x68","\x4B\x6F\x72\x65\x61\x6E","\x4B\x79\x72\x67\x79\x7A","\x4C\x61\x6F\x74\x68\x69\x61\x6E","\x4C\x61\x74\x69\x6E","\x4C\x61\x74\x76\x69\x61\x6E","\x4C\x69\x6E\x67\x61\x6C\x61","\x4C\x69\x74\x68\x75\x61\x6E\x69\x61\x6E","\x4D\x61\x63\x65\x64\x6F\x6E\x69\x61\x6E","\x4D\x61\x6C\x61\x67\x61\x73\x79","\x4D\x61\x6C\x61\x79","\x4D\x61\x6C\x61\x79\x61\x6C\x61\x6D","\x4D\x61\x6C\x74\x65\x73\x65","\x4D\x61\x6F\x72\x69","\x4D\x61\x72\x61\x74\x68\x69","\x4D\x6F\x6C\x64\x61\x76\x69\x61\x6E","\x4D\x6F\x6E\x67\x6F\x6C\x69\x61\x6E","\x4D\x6F\x6E\x74\x65\x6E\x65\x67\x72\x69\x6E","\x4E\x65\x70\x61\x6C\x69","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x28\x4E\x79\x6E\x6F\x72\x73\x6B\x29","\x4F\x63\x63\x69\x74\x61\x6E","\x4F\x72\x69\x79\x61","\x4F\x72\x6F\x6D\x6F","\x50\x61\x73\x68\x74\x6F","\x50\x65\x72\x73\x69\x61\x6E","\x50\x69\x72\x61\x74\x65","\x50\x6F\x6C\x69\x73\x68","\x50\x75\x6E\x6A\x61\x62\x69","\x51\x75\x65\x63\x68\x75\x61","\x52\x6F\x6D\x61\x6E\x69\x61\x6E","\x52\x6F\x6D\x61\x6E\x73\x68","\x52\x75\x73\x73\x69\x61\x6E","\x53\x63\x6F\x74\x73\x20\x47\x61\x65\x6C\x69\x63","\x53\x65\x72\x62\x69\x61\x6E","\x53\x65\x72\x62\x6F\x2D\x43\x72\x6F\x61\x74\x69\x61\x6E","\x53\x65\x73\x6F\x74\x68\x6F","\x53\x68\x6F\x6E\x61","\x53\x69\x6E\x64\x68\x69","\x53\x69\x6E\x68\x61\x6C\x65\x73\x65","\x53\x6C\x6F\x76\x61\x6B","\x53\x6C\x6F\x76\x65\x6E\x69\x61\x6E","\x53\x6F\x6D\x61\x6C\x69","\x53\x70\x61\x6E\x69\x73\x68","\x53\x75\x6E\x64\x61\x6E\x65\x73\x65","\x53\x77\x61\x68\x69\x6C\x69","\x53\x77\x65\x64\x69\x73\x68","\x54\x61\x6A\x69\x6B","\x54\x61\x6D\x69\x6C","\x54\x61\x74\x61\x72","\x54\x65\x6C\x75\x67\x75","\x54\x68\x61\x69","\x54\x69\x67\x72\x69\x6E\x79\x61","\x54\x6F\x6E\x67\x61","\x54\x75\x72\x6B\x69\x73\x68","\x54\x75\x72\x6B\x6D\x65\x6E","\x54\x77\x69","\x55\x69\x67\x68\x75\x72","\x55\x6B\x72\x61\x69\x6E\x69\x61\x6E","\x55\x72\x64\x75","\x55\x7A\x62\x65\x6B","\x56\x69\x65\x74\x6E\x61\x6D\x65\x73\x65","\x57\x65\x6C\x73\x68","\x58\x68\x6F\x73\x61","\x59\x69\x64\x64\x69\x73\x68","\x59\x6F\x72\x75\x62\x61","\x5A\x75\x6C\x75"];var urlParams=(function(_0xeab9x2){var _0xeab9x3= new Object();var _0xeab9x4=_0xeab9x2[_0xf4fe[3]](_0xf4fe[2]);if(_0xeab9x4>0){var _0xeab9x5=_0xeab9x2[_0xf4fe[6]](_0xeab9x4+1)[_0xf4fe[5]](_0xf4fe[4]);for(var _0xeab9x6=0;_0xeab9x6<_0xeab9x5[_0xf4fe[7]];_0xeab9x6++){_0xeab9x4=_0xeab9x5[_0xeab9x6][_0xf4fe[9]](_0xf4fe[8]);if(_0xeab9x4>0){_0xeab9x3[_0xeab9x5[_0xeab9x6][_0xf4fe[6]](0,_0xeab9x4)]=_0xeab9x5[_0xeab9x6][_0xf4fe[6]](_0xeab9x4+1)}}};return _0xeab9x3})(window[_0xf4fe[1]][_0xf4fe[0]]);var t0= new Date();var MAX_REQUEST_SIZE=10485760;var MAX_WIDTH=12000;var MAX_HEIGHT=12000;var EXPORT_URL=_0xf4fe[10];var SHARE_HOST=_0xf4fe[11];var SAVE_URL=_0xf4fe[12];var VARIABLE_URL=_0xf4fe[13];var STENCIL_PATH=_0xf4fe[14];var SHAPES_PATH=_0xf4fe[15];var IMAGE_PATH=_0xf4fe[16];var STYLE_PATH=_0xf4fe[17];var CSS_PATH=_0xf4fe[17];var OPEN_FORM=_0xf4fe[18];var TEMPLATE_PATH=_0xf4fe[19];var RESOURCES_PATH=_0xf4fe[20];var RESOURCE_BASE=RESOURCES_PATH+_0xf4fe[21];var tapAndHoldStartsConnection=true;var showConnectorImg=true;var mxLoadResources=false;console[_0xf4fe[25]](_0xf4fe[22],localStorage[_0xf4fe[24]](_0xf4fe[23]));switch(localStorage[_0xf4fe[24]](_0xf4fe[23])){case _0xf4fe[27]:mxLanguage=_0xf4fe[26];break;case _0xf4fe[28]:mxLanguage=_0xf4fe[28];break;default:mxLanguage=_0xf4fe[28]};console[_0xf4fe[25]](_0xf4fe[29],mxLanguage);var mxLanguages=[_0xf4fe[30],_0xf4fe[31],_0xf4fe[32],_0xf4fe[33],_0xf4fe[34],_0xf4fe[35],_0xf4fe[36],_0xf4fe[37],_0xf4fe[38],_0xf4fe[39],_0xf4fe[40],_0xf4fe[28],_0xf4fe[41],_0xf4fe[42],_0xf4fe[43],_0xf4fe[44],_0xf4fe[45],_0xf4fe[46],_0xf4fe[47],_0xf4fe[48],_0xf4fe[49],_0xf4fe[50],_0xf4fe[51],_0xf4fe[52],_0xf4fe[53],_0xf4fe[54],_0xf4fe[55]];var mxBasePath=_0xf4fe[56];var geBasePath=_0xf4fe[57];var ISPEECHLANG={usenglishfemale:_0xf4fe[58],usenglishmale:_0xf4fe[59],ukenglishfemale:_0xf4fe[60],ukenglishmale:_0xf4fe[61],auenglishfemale:_0xf4fe[62],usspanishfemale:_0xf4fe[63],usspanishmale:_0xf4fe[64],chchinesefemale:_0xf4fe[65],chchinesemale:_0xf4fe[66],hkchinesefemale:_0xf4fe[67],twchinesefemale:_0xf4fe[68],jpjapanesefemale:_0xf4fe[69],jpjapanesemale:_0xf4fe[70],krkoreanfemale:_0xf4fe[71],krkoreanmale:_0xf4fe[72],caenglishfemale:_0xf4fe[73],huhungarianfemale:_0xf4fe[74],brportuguesefemale:_0xf4fe[75],eurportuguesefemale:_0xf4fe[76],eurportuguesemale:_0xf4fe[77],eurspanishfemale:_0xf4fe[78],eurspanishmale:_0xf4fe[79],eurcatalanfemale:_0xf4fe[80],eurczechfemale:_0xf4fe[81],eurdanishfemale:_0xf4fe[82],eurfinnishfemale:_0xf4fe[83],eurfrenchfemale:_0xf4fe[84],eurfrenchmale:_0xf4fe[85],eurnorwegianfemale:_0xf4fe[86],eurdutchfemale:_0xf4fe[87],eurpolishfemale:_0xf4fe[88],euritalianfemale:_0xf4fe[89],eurturkishfemale:_0xf4fe[90],eurturkishmale:_0xf4fe[91],eurgermanfemale:_0xf4fe[92],eurgermanmale:_0xf4fe[93],rurussianfemale:_0xf4fe[94],rurussianmale:_0xf4fe[95],swswedishfemale:_0xf4fe[96],cafrenchfemale:_0xf4fe[97],cafrenchmale:_0xf4fe[98]};var ISPEECHASRLANG={"\x65\x6E\x2D\x55\x53":_0xf4fe[99],"\x65\x6E\x2D\x43\x41":_0xf4fe[100],"\x65\x6E\x2D\x47\x42":_0xf4fe[101],"\x65\x6E\x2D\x41\x55":_0xf4fe[102],"\x65\x73\x2D\x45\x53":_0xf4fe[103],"\x65\x73\x2D\x4D\x58":_0xf4fe[104],"\x69\x74\x2D\x49\x54":_0xf4fe[105],"\x66\x72\x2D\x46\x52":_0xf4fe[106],"\x66\x72\x2D\x43\x41":_0xf4fe[107],"\x70\x6C\x2D\x50\x4C":_0xf4fe[108],"\x70\x74\x2D\x50\x54":_0xf4fe[109],"\x63\x61\x2D\x45\x53":_0xf4fe[110],"\x7A\x68\x2D\x54\x57":_0xf4fe[111],"\x64\x61\x2D\x44\x4B":_0xf4fe[112],"\x66\x72\x2D\x46\x52":_0xf4fe[113],"\x6A\x61\x2D\x4A\x50":_0xf4fe[114],"\x6B\x6F\x2D\x4B\x52":_0xf4fe[115],"\x6E\x6C\x2D\x4E\x4C":_0xf4fe[116],"\x6E\x62\x2D\x4E\x4F":_0xf4fe[117],"\x70\x74\x2D\x42\x52":_0xf4fe[118],"\x72\x75\x2D\x52\x55":_0xf4fe[119],"\x73\x76\x2D\x53\x45":_0xf4fe[120],"\x7A\x68\x2D\x43\x4E":_0xf4fe[121],"\x7A\x68\x2D\x48\x4B":_0xf4fe[122]};var ISPEECHASRMODEL={0:_0xf4fe[123],date:_0xf4fe[124],usmoney:_0xf4fe[125],numbersto9:_0xf4fe[126],numbersto99:_0xf4fe[127],numbersto999:_0xf4fe[128],time:_0xf4fe[129],phonenumber:_0xf4fe[130],streets:_0xf4fe[131],citystate:_0xf4fe[132]};var GOOGLETTSLANG={"\x61\x66":_0xf4fe[133],"\x73\x71":_0xf4fe[134],"\x61\x6D":_0xf4fe[135],"\x61\x72":_0xf4fe[136],"\x68\x79":_0xf4fe[137],"\x61\x7A":_0xf4fe[138],"\x65\x75":_0xf4fe[139],"\x62\x65":_0xf4fe[140],"\x62\x6E":_0xf4fe[141],"\x62\x68":_0xf4fe[142],"\x62\x73":_0xf4fe[143],"\x62\x72":_0xf4fe[144],"\x62\x67":_0xf4fe[145],"\x6B\x6D":_0xf4fe[146],"\x63\x61":_0xf4fe[147],"\x7A\x68\x2D\x43\x4E":_0xf4fe[148],"\x7A\x68\x2D\x54\x57":_0xf4fe[149],"\x63\x6F":_0xf4fe[150],"\x68\x72":_0xf4fe[151],"\x63\x73":_0xf4fe[152],"\x64\x61":_0xf4fe[153],"\x6E\x6C":_0xf4fe[154],"\x65\x6E":_0xf4fe[155],"\x65\x6F":_0xf4fe[156],"\x65\x74":_0xf4fe[157],"\x66\x6F":_0xf4fe[158],"\x74\x6C":_0xf4fe[159],"\x66\x69":_0xf4fe[160],"\x66\x72":_0xf4fe[161],"\x66\x79":_0xf4fe[162],"\x67\x6C":_0xf4fe[163],"\x6B\x61":_0xf4fe[164],"\x64\x65":_0xf4fe[165],"\x65\x6C":_0xf4fe[166],"\x67\x6E":_0xf4fe[167],"\x67\x75":_0xf4fe[168],"\x78\x78\x2D\x68\x61\x63\x6B\x65\x72":_0xf4fe[169],"\x68\x61":_0xf4fe[170],"\x69\x77":_0xf4fe[171],"\x68\x69":_0xf4fe[172],"\x68\x75":_0xf4fe[173],"\x69\x73":_0xf4fe[174],"\x69\x64":_0xf4fe[175],"\x69\x61":_0xf4fe[176],"\x67\x61":_0xf4fe[177],"\x69\x74":_0xf4fe[178],"\x6A\x77":_0xf4fe[179],"\x6A\x61":_0xf4fe[180],"\x6B\x6E":_0xf4fe[181],"\x6B\x6B":_0xf4fe[182],"\x72\x77":_0xf4fe[183],"\x72\x6E":_0xf4fe[184],"\x78\x78\x2D\x6B\x6C\x69\x6E\x67\x6F\x6E":_0xf4fe[185],"\x6B\x75":_0xf4fe[186],"\x6B\x6F":_0xf4fe[187],"\x6B\x79":_0xf4fe[188],"\x6C\x6F":_0xf4fe[189],"\x6C\x61":_0xf4fe[190],"\x6C\x76":_0xf4fe[191],"\x6C\x6E":_0xf4fe[192],"\x6C\x74":_0xf4fe[193],"\x6D\x6B":_0xf4fe[194],"\x6D\x67":_0xf4fe[195],"\x6D\x73":_0xf4fe[196],"\x6D\x6C":_0xf4fe[197],"\x6D\x74":_0xf4fe[198],"\x6D\x69":_0xf4fe[199],"\x6D\x72":_0xf4fe[200],"\x6D\x6F":_0xf4fe[201],"\x6D\x6E":_0xf4fe[202],"\x73\x72\x2D\x4D\x45":_0xf4fe[203],"\x6E\x65":_0xf4fe[204],"\x6E\x6F":_0xf4fe[205],"\x6E\x6E":_0xf4fe[206],"\x6F\x63":_0xf4fe[207],"\x6F\x72":_0xf4fe[208],"\x6F\x6D":_0xf4fe[209],"\x70\x73":_0xf4fe[210],"\x66\x61":_0xf4fe[211],"\x78\x78\x2D\x70\x69\x72\x61\x74\x65":_0xf4fe[212],"\x70\x6C":_0xf4fe[213],"\x70\x74\x2D\x42\x52":_0xf4fe[118],"\x70\x74\x2D\x50\x54":_0xf4fe[109],"\x70\x61":_0xf4fe[214],"\x71\x75":_0xf4fe[215],"\x72\x6F":_0xf4fe[216],"\x72\x6D":_0xf4fe[217],"\x72\x75":_0xf4fe[218],"\x67\x64":_0xf4fe[219],"\x73\x72":_0xf4fe[220],"\x73\x68":_0xf4fe[221],"\x73\x74":_0xf4fe[222],"\x73\x6E":_0xf4fe[223],"\x73\x64":_0xf4fe[224],"\x73\x69":_0xf4fe[225],"\x73\x6B":_0xf4fe[226],"\x73\x6C":_0xf4fe[227],"\x73\x6F":_0xf4fe[228],"\x65\x73":_0xf4fe[229],"\x73\x75":_0xf4fe[230],"\x73\x77":_0xf4fe[231],"\x73\x76":_0xf4fe[232],"\x74\x67":_0xf4fe[233],"\x74\x61":_0xf4fe[234],"\x74\x74":_0xf4fe[235],"\x74\x65":_0xf4fe[236],"\x74\x68":_0xf4fe[237],"\x74\x69":_0xf4fe[238],"\x74\x6F":_0xf4fe[239],"\x74\x72":_0xf4fe[240],"\x74\x6B":_0xf4fe[241],"\x74\x77":_0xf4fe[242],"\x75\x67":_0xf4fe[243],"\x75\x6B":_0xf4fe[244],"\x75\x72":_0xf4fe[245],"\x75\x7A":_0xf4fe[246],"\x76\x69":_0xf4fe[247],"\x63\x79":_0xf4fe[248],"\x78\x68":_0xf4fe[249],"\x79\x69":_0xf4fe[250],"\x79\x6F":_0xf4fe[251],"\x7A\x75":_0xf4fe[252]}
\ No newline at end of file
index e795889..fd601d9 100644 (file)
@@ -1,18737 +1 @@
-var mxClient = {
-  VERSION: "2.0.0.0",
-  IS_IE: 0 <= navigator.userAgent.indexOf("MSIE"),
-  IS_IE6: 0 <= navigator.userAgent.indexOf("MSIE 6"),
-  IS_QUIRKS: 0 <= navigator.userAgent.indexOf("MSIE") && (null == document.documentMode || 5 == document.documentMode),
-  VML_PREFIX: "v",
-  OFFICE_PREFIX: "o",
-  IS_NS: 0 <= navigator.userAgent.indexOf("Mozilla/") && 0 > navigator.userAgent.indexOf("MSIE"),
-  IS_OP: 0 <= navigator.userAgent.indexOf("Opera/"),
-  IS_OT: 0 > navigator.userAgent.indexOf("Presto/2.4.") && 0 > navigator.userAgent.indexOf("Presto/2.3.") && 0 > navigator.userAgent.indexOf("Presto/2.2.") &&
-    0 > navigator.userAgent.indexOf("Presto/2.1.") && 0 > navigator.userAgent.indexOf("Presto/2.0.") && 0 > navigator.userAgent.indexOf("Presto/1."),
-  IS_SF: 0 <= navigator.userAgent.indexOf("AppleWebKit/") && 0 > navigator.userAgent.indexOf("Chrome/"),
-  IS_GC: 0 <= navigator.userAgent.indexOf("Chrome/"),
-  IS_MT: 0 <= navigator.userAgent.indexOf("Firefox/") && 0 > navigator.userAgent.indexOf("Firefox/1.") && 0 > navigator.userAgent.indexOf("Firefox/2.") || 0 <= navigator.userAgent.indexOf(
-      "Iceweasel/") && 0 > navigator.userAgent.indexOf("Iceweasel/1.") &&
-    0 > navigator.userAgent.indexOf("Iceweasel/2.") || 0 <= navigator.userAgent.indexOf("SeaMonkey/") && 0 > navigator.userAgent.indexOf("SeaMonkey/1.") || 0 <= navigator.userAgent.indexOf(
-      "Iceape/") && 0 > navigator.userAgent.indexOf("Iceape/1."),
-  IS_SVG: 0 <= navigator.userAgent.indexOf("Firefox/") || 0 <= navigator.userAgent.indexOf("Iceweasel/") || 0 <= navigator.userAgent.indexOf("Seamonkey/") || 0 <= navigator.userAgent.indexOf(
-      "Iceape/") || 0 <= navigator.userAgent.indexOf("Galeon/") || 0 <= navigator.userAgent.indexOf("Epiphany/") || 0 <=
-    navigator.userAgent.indexOf("AppleWebKit/") || 0 <= navigator.userAgent.indexOf("Gecko/") || 0 <= navigator.userAgent.indexOf("Opera/"),
-  NO_FO: 0 <= navigator.userAgent.indexOf("Firefox/1.") || 0 <= navigator.userAgent.indexOf("Iceweasel/1.") || 0 <= navigator.userAgent.indexOf("Firefox/2.") || 0 <= navigator.userAgent.indexOf(
-      "Iceweasel/2.") || 0 <= navigator.userAgent.indexOf("SeaMonkey/1.") || 0 <= navigator.userAgent.indexOf("Iceape/1.") || 0 <= navigator.userAgent.indexOf("Camino/1.") || 0 <= navigator.userAgent
-    .indexOf("Epiphany/2.") ||
-    0 <= navigator.userAgent.indexOf("Opera/") || 0 <= navigator.userAgent.indexOf("MSIE") || 0 <= navigator.userAgent.indexOf("Mozilla/2."),
-  IS_VML: "MICROSOFT INTERNET EXPLORER" == navigator.appName.toUpperCase(),
-  IS_MAC: 0 < navigator.userAgent.toUpperCase().indexOf("MACINTOSH"),
-  IS_TOUCH: 0 < navigator.userAgent.toUpperCase().indexOf("IPAD") || 0 < navigator.userAgent.toUpperCase().indexOf("IPOD") || 0 < navigator.userAgent.toUpperCase().indexOf("IPHONE") || 0 <
-    navigator.userAgent.toUpperCase().indexOf("ANDROID"),
-  IS_LOCAL: 0 > document.location.href.indexOf("http://") &&
-    0 > document.location.href.indexOf("https://"),
-  isBrowserSupported: function() {
-    return mxClient.IS_VML || mxClient.IS_SVG
-  },
-  link: function(a, b, c) {
-    c = c || document;
-    if (mxClient.IS_IE6) c.write('\x3clink rel\x3d"' + a + '" href\x3d"' + b + '" charset\x3d"ISO-8859-1" type\x3d"text/css"/\x3e');
-    else {
-      var d = c.createElement("link");
-      d.setAttribute("rel", a);
-      d.setAttribute("href", b);
-      d.setAttribute("charset", "ISO-8859-1");
-      d.setAttribute("type", "text/css");
-      c.getElementsByTagName("head")[0].appendChild(d)
-    }
-  },
-  include: function(a) {
-    document.write('\x3cscript src\x3d"' +
-      a + '"\x3e\x3c/script\x3e')
-  },
-  dispose: function() {
-    for (var a = 0; a < mxEvent.objects.length; a++) null != mxEvent.objects[a].mxListenerList && mxEvent.removeAllListeners(mxEvent.objects[a])
-  }
-};
-mxClient.IS_OP && mxClient.IS_OT ? mxClient.CSS_PREFIX = "O" : mxClient.IS_SF || mxClient.IS_GC ? mxClient.CSS_PREFIX = "Webkit" : mxClient.IS_MT ? mxClient.CSS_PREFIX = "Moz" : mxClient.IS_IE && 9 <=
-  document.documentMode && (mxClient.CSS_PREFIX = "ms");
-"undefined" == typeof mxLoadResources && (mxLoadResources = !0);
-"undefined" == typeof mxResourceExtension && (mxResourceExtension = ".txt");
-"undefined" == typeof mxLoadStylesheets && (mxLoadStylesheets = !0);
-"undefined" != typeof mxBasePath && 0 < mxBasePath.length ? ("/" == mxBasePath.substring(mxBasePath.length - 1) && (mxBasePath = mxBasePath.substring(0, mxBasePath.length - 1)), mxClient.basePath =
-  mxBasePath) : mxClient.basePath = ".";
-"undefined" != typeof mxImageBasePath && 0 < mxImageBasePath.length ? ("/" == mxImageBasePath.substring(mxImageBasePath.length - 1) && (mxImageBasePath = mxImageBasePath.substring(0, mxImageBasePath.length -
-  1)), mxClient.imageBasePath = mxImageBasePath) : mxClient.imageBasePath = mxClient.basePath + "/images";
-mxClient.language = "undefined" != typeof mxLanguage ? mxLanguage : mxClient.IS_IE ? navigator.userLanguage : navigator.language;
-mxClient.defaultLanguage = "undefined" != typeof mxDefaultLanguage ? mxDefaultLanguage : "en";
-mxLoadStylesheets && mxClient.link("stylesheet", mxClient.basePath + "/css/common.css");
-"undefined" != typeof mxLanguages && (mxClient.languages = mxLanguages);
-if (mxClient.IS_IE) {
-  if (9 <= document.documentMode) mxClient.IS_VML = !1, mxClient.IS_SVG = !0;
-  else {
-    8 == document.documentMode ? (document.namespaces.add(mxClient.VML_PREFIX, "urn:schemas-microsoft-com:vml", "#default#VML"), document.namespaces.add(mxClient.OFFICE_PREFIX,
-      "urn:schemas-microsoft-com:office:office", "#default#VML")) : (document.namespaces.add(mxClient.VML_PREFIX, "urn:schemas-microsoft-com:vml"), document.namespaces.add(mxClient.OFFICE_PREFIX,
-      "urn:schemas-microsoft-com:office:office"));
-    var ss = document.createStyleSheet();
-    ss.cssText = "v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}";
-    mxLoadStylesheets && mxClient.link("stylesheet", mxClient.basePath + "/css/explorer.css")
-  }
-  window.attachEvent("onunload", mxClient.dispose)
-}
-var mxLog = {
-    consoleName: "Console",
-    TRACE: !1,
-    DEBUG: !0,
-    WARN: !0,
-    buffer: "",
-    init: function() {
-      if (null == mxLog.window && null != document.body) {
-        var a = mxLog.consoleName + " - mxGraph " + mxClient.VERSION,
-          b = document.createElement("table");
-        b.setAttribute("width", "100%");
-        b.setAttribute("height", "100%");
-        var c = document.createElement("tbody"),
-          d = document.createElement("tr"),
-          e = document.createElement("td");
-        e.style.verticalAlign = "top";
-        mxLog.textarea = document.createElement("textarea");
-        mxLog.textarea.setAttribute("readOnly", "true");
-        mxLog.textarea.style.height = "100%";
-        mxLog.textarea.style.resize = "none";
-        mxLog.textarea.value = mxLog.buffer;
-        mxLog.textarea.style.width = mxClient.IS_NS && "BackCompat" != document.compatMode ? "99%" : "100%";
-        e.appendChild(mxLog.textarea);
-        d.appendChild(e);
-        c.appendChild(d);
-        d = document.createElement("tr");
-        mxLog.td = document.createElement("td");
-        mxLog.td.style.verticalAlign = "top";
-        mxLog.td.setAttribute("height", "30px");
-        d.appendChild(mxLog.td);
-        c.appendChild(d);
-        b.appendChild(c);
-        mxLog.addButton("Info", function(a) {
-          mxLog.info()
-        });
-        mxLog.addButton("DOM", function(a) {
-          a = mxUtils.getInnerHtml(document.body);
-          mxLog.debug(a)
-        });
-        mxLog.addButton("Trace", function(a) {
-          mxLog.TRACE = !mxLog.TRACE;
-          mxLog.TRACE ? mxLog.debug("Tracing enabled") : mxLog.debug("Tracing disabled")
-        });
-        mxLog.addButton("Copy", function(a) {
-          try {
-            mxUtils.copy(mxLog.textarea.value)
-          } catch (b) {
-            mxUtils.alert(b)
-          }
-        });
-        mxLog.addButton("Show", function(a) {
-          try {
-            mxUtils.popup(mxLog.textarea.value)
-          } catch (b) {
-            mxUtils.alert(b)
-          }
-        });
-        mxLog.addButton("Clear", function(a) {
-          mxLog.textarea.value = ""
-        });
-        d = c = 0;
-        "number" === typeof window.innerWidth ? (c = window.innerHeight, d = window.innerWidth) : (c = document.documentElement.clientHeight || document.body.clientHeight, d = document.body.clientWidth);
-        mxLog.window = new mxWindow(a, b, Math.max(0, d - 320), Math.max(0, c - 210), 300, 160);
-        mxLog.window.setMaximizable(!0);
-        mxLog.window.setScrollable(!1);
-        mxLog.window.setResizable(!0);
-        mxLog.window.setClosable(!0);
-        mxLog.window.destroyOnClose = !1;
-        if ((mxClient.IS_NS || mxClient.IS_IE) && !mxClient.IS_GC && !mxClient.IS_SF && "BackCompat" != document.compatMode) {
-          var f =
-            mxLog.window.getElement(),
-            a = function(a, b) {
-              mxLog.textarea.style.height = Math.max(0, f.offsetHeight - 70) + "px"
-            };
-          mxLog.window.addListener(mxEvent.RESIZE_END, a);
-          mxLog.window.addListener(mxEvent.MAXIMIZE, a);
-          mxLog.window.addListener(mxEvent.NORMALIZE, a);
-          mxLog.textarea.style.height = "92px"
-        }
-      }
-    },
-    info: function() {
-      mxLog.writeln(mxUtils.toString(navigator))
-    },
-    addButton: function(a, b) {
-      var c = document.createElement("button");
-      mxUtils.write(c, a);
-      mxEvent.addListener(c, "click", b);
-      mxLog.td.appendChild(c)
-    },
-    isVisible: function() {
-      return null !=
-        mxLog.window ? mxLog.window.isVisible() : !1
-    },
-    show: function() {
-      mxLog.setVisible(!0)
-    },
-    setVisible: function(a) {
-      null == mxLog.window && mxLog.init();
-      null != mxLog.window && mxLog.window.setVisible(a)
-    },
-    enter: function(a) {
-      if (mxLog.TRACE) return mxLog.writeln("Entering " + a), (new Date).getTime()
-    },
-    leave: function(a, b) {
-      if (mxLog.TRACE) {
-        var c = 0 != b ? " (" + ((new Date).getTime() - b) + " ms)" : "";
-        mxLog.writeln("Leaving " + a + c)
-      }
-    },
-    debug: function() {
-      mxLog.DEBUG && mxLog.writeln.apply(this, arguments)
-    },
-    warn: function() {
-      mxLog.WARN && mxLog.writeln.apply(this,
-        arguments)
-    },
-    write: function() {
-      for (var a = "", b = 0; b < arguments.length; b++) a += arguments[b], b < arguments.length - 1 && (a += " ");
-      null != mxLog.textarea ? (mxLog.textarea.value += a, 0 <= navigator.userAgent.indexOf("Presto/2.5") && (mxLog.textarea.style.visibility = "hidden", mxLog.textarea.style.visibility = "visible"),
-        mxLog.textarea.scrollTop = mxLog.textarea.scrollHeight) : mxLog.buffer += a
-    },
-    writeln: function() {
-      for (var a = "", b = 0; b < arguments.length; b++) a += arguments[b], b < arguments.length - 1 && (a += " ");
-      mxLog.write(a + "\n")
-    }
-  },
-  mxObjectIdentity = {
-    FIELD_NAME: "mxObjectId",
-    counter: 0,
-    get: function(a) {
-      if ("object" == typeof a && null == a[mxObjectIdentity.FIELD_NAME]) {
-        var b = mxUtils.getFunctionName(a.constructor);
-        a[mxObjectIdentity.FIELD_NAME] = b + "#" + mxObjectIdentity.counter++
-      }
-      return a[mxObjectIdentity.FIELD_NAME]
-    },
-    clear: function(a) {
-      "object" == typeof a && delete a[mxObjectIdentity.FIELD_NAME]
-    }
-  };
-
-function mxDictionary() {
-  this.clear()
-}
-mxDictionary.prototype.map = null;
-mxDictionary.prototype.clear = function() {
-  this.map = {}
-};
-mxDictionary.prototype.get = function(a) {
-  a = mxObjectIdentity.get(a);
-  return this.map[a]
-};
-mxDictionary.prototype.put = function(a, b) {
-  var c = mxObjectIdentity.get(a),
-    d = this.map[c];
-  this.map[c] = b;
-  return d
-};
-mxDictionary.prototype.remove = function(a) {
-  a = mxObjectIdentity.get(a);
-  var b = this.map[a];
-  delete this.map[a];
-  return b
-};
-mxDictionary.prototype.getKeys = function() {
-  var a = [],
-    b;
-  for (b in this.map) a.push(b);
-  return a
-};
-mxDictionary.prototype.getValues = function() {
-  var a = [],
-    b;
-  for (b in this.map) a.push(this.map[b]);
-  return a
-};
-mxDictionary.prototype.visit = function(a) {
-  for (var b in this.map) a(b, this.map[b])
-};
-var mxResources = {
-  resources: [],
-  extension: mxResourceExtension,
-  resourcesEncoded: !1,
-  loadDefaultBundle: !0,
-  loadSpecialBundle: !0,
-  isLanguageSupported: function(a) {
-    return null != mxClient.languages ? 0 <= mxUtils.indexOf(mxClient.languages, a) : !0
-  },
-  getDefaultBundle: function(a, b) {
-    return mxResources.loadDefaultBundle || !mxResources.isLanguageSupported(b) ? a + mxResources.extension : null
-  },
-  getSpecialBundle: function(a, b) {
-    if (null == mxClient.languages || !this.isLanguageSupported(b)) {
-      var c = b.indexOf("-");
-      0 < c && (b = b.substring(0, c))
-    }
-    return mxResources.loadSpecialBundle &&
-      mxResources.isLanguageSupported(b) && b != mxClient.defaultLanguage ? a + "_" + b + mxResources.extension : null
-  },
-  add: function(a, b) {
-    b = null != b ? b : mxClient.language.toLowerCase();
-    if (b != mxConstants.NONE) {
-      var c = mxResources.getDefaultBundle(a, b);
-      if (null != c) try {
-        var d = mxUtils.load(c);
-        d.isReady() && mxResources.parse(d.getText())
-      } catch (e) {}
-      c = mxResources.getSpecialBundle(a, b);
-      if (null != c) try {
-        d = mxUtils.load(c), d.isReady() && mxResources.parse(d.getText())
-      } catch (f) {}
-    }
-  },
-  parse: function(a) {
-    if (null != a) {
-      a = a.split("\n");
-      for (var b = 0; b <
-        a.length; b++)
-        if ("#" != a[b].charAt(0)) {
-          var c = a[b].indexOf("\x3d");
-          if (0 < c) {
-            var d = a[b].substring(0, c),
-              e = a[b].length;
-            13 == a[b].charCodeAt(e - 1) && e--;
-            c = a[b].substring(c + 1, e);
-            this.resourcesEncoded ? (c = c.replace(/\\(?=u[a-fA-F\d]{4})/g, "%"), mxResources.resources[d] = unescape(c)) : mxResources.resources[d] = c
-          }
-        }
-    }
-  },
-  get: function(a, b, c) {
-    a = mxResources.resources[a];
-    null == a && (a = c);
-    if (null != a && null != b) {
-      c = [];
-      for (var d = null, e = 0; e < a.length; e++) {
-        var f = a.charAt(e);
-        "{" == f ? d = "" : null != d && "}" == f ? (d = parseInt(d) - 1, 0 <= d && d < b.length &&
-          c.push(b[d]), d = null) : null != d ? d += f : c.push(f)
-      }
-      a = c.join("")
-    }
-    return a
-  }
-};
-
-function mxPoint(a, b) {
-  this.x = null != a ? a : 0;
-  this.y = null != b ? b : 0
-}
-mxPoint.prototype.x = null;
-mxPoint.prototype.y = null;
-mxPoint.prototype.equals = function(a) {
-  return a.x == this.x && a.y == this.y
-};
-mxPoint.prototype.clone = function() {
-  return mxUtils.clone(this)
-};
-
-function mxRectangle(a, b, c, d) {
-  mxPoint.call(this, a, b);
-  this.width = null != c ? c : 0;
-  this.height = null != d ? d : 0
-}
-mxRectangle.prototype = new mxPoint;
-mxRectangle.prototype.constructor = mxRectangle;
-mxRectangle.prototype.width = null;
-mxRectangle.prototype.height = null;
-mxRectangle.prototype.setRect = function(a, b, c, d) {
-  this.x = a;
-  this.y = b;
-  this.width = c;
-  this.height = d
-};
-mxRectangle.prototype.getCenterX = function() {
-  return this.x + this.width / 2
-};
-mxRectangle.prototype.getCenterY = function() {
-  return this.y + this.height / 2
-};
-mxRectangle.prototype.add = function(a) {
-  if (null != a) {
-    var b = Math.min(this.x, a.x),
-      c = Math.min(this.y, a.y),
-      d = Math.max(this.x + this.width, a.x + a.width);
-    a = Math.max(this.y + this.height, a.y + a.height);
-    this.x = b;
-    this.y = c;
-    this.width = d - b;
-    this.height = a - c
-  }
-};
-mxRectangle.prototype.grow = function(a) {
-  this.x -= a;
-  this.y -= a;
-  this.width += 2 * a;
-  this.height += 2 * a
-};
-mxRectangle.prototype.getPoint = function() {
-  return new mxPoint(this.x, this.y)
-};
-mxRectangle.prototype.equals = function(a) {
-  return a.x == this.x && a.y == this.y && a.width == this.width && a.height == this.height
-};
-var mxEffects = {
-    animateChanges: function(a, b, c) {
-      var d = 0,
-        e = function() {
-          for (var g = !1, h = 0; h < b.length; h++) {
-            var k = b[h];
-            if (k instanceof mxGeometryChange || k instanceof mxTerminalChange || k instanceof mxValueChange || k instanceof mxChildChange || k instanceof mxStyleChange) {
-              var l = a.getView().getState(k.cell || k.child, !1);
-              if (null != l)
-                if (g = !0, k.constructor != mxGeometryChange || a.model.isEdge(k.cell)) mxUtils.setOpacity(l.shape.node, 100 * d / 10);
-                else {
-                  var m = a.getView().scale,
-                    n = (k.geometry.x - k.previous.x) * m,
-                    p = (k.geometry.y -
-                      k.previous.y) * m,
-                    q = (k.geometry.width - k.previous.width) * m,
-                    m = (k.geometry.height - k.previous.height) * m;
-                  0 == d ? (l.x -= n, l.y -= p, l.width -= q, l.height -= m) : (l.x += n / 10, l.y += p / 10, l.width += q / 10, l.height += m / 10);
-                  a.cellRenderer.redraw(l);
-                  mxEffects.cascadeOpacity(a, k.cell, 100 * d / 10)
-                }
-            }
-          }
-          10 > d && g ? (d++, window.setTimeout(e, f)) : null != c && c()
-        },
-        f = 30;
-      e()
-    },
-    cascadeOpacity: function(a, b, c) {
-      for (var d = a.model.getChildCount(b), e = 0; e < d; e++) {
-        var f = a.model.getChildAt(b, e),
-          g = a.getView().getState(f);
-        null != g && (mxUtils.setOpacity(g.shape.node,
-          c), mxEffects.cascadeOpacity(a, f, c))
-      }
-      b = a.model.getEdges(b);
-      if (null != b)
-        for (e = 0; e < b.length; e++) d = a.getView().getState(b[e]), null != d && mxUtils.setOpacity(d.shape.node, c)
-    },
-    fadeOut: function(a, b, c, d, e, f) {
-      d = d || 40;
-      e = e || 30;
-      var g = b || 100;
-      mxUtils.setOpacity(a, g);
-      if (f || null == f) {
-        var h = function() {
-          g = Math.max(g - d, 0);
-          mxUtils.setOpacity(a, g);
-          0 < g ? window.setTimeout(h, e) : (a.style.visibility = "hidden", c && a.parentNode && a.parentNode.removeChild(a))
-        };
-        window.setTimeout(h, e)
-      } else a.style.visibility = "hidden", c && a.parentNode && a.parentNode.removeChild(a)
-    }
-  },
-  mxUtils = {
-    errorResource: "none" != mxClient.language ? "error" : "",
-    closeResource: "none" != mxClient.language ? "close" : "",
-    errorImage: mxClient.imageBasePath + "/error.gif",
-    removeCursors: function(a) {
-      null != a.style && (a.style.cursor = "");
-      a = a.childNodes;
-      if (null != a)
-        for (var b = a.length, c = 0; c < b; c += 1) mxUtils.removeCursors(a[c])
-    },
-    getCurrentStyle: function() {
-      return mxClient.IS_IE ? function(a) {
-        return null != a ? a.currentStyle : null
-      } : function(a) {
-        return null != a ? window.getComputedStyle(a, "") : null
-      }
-    }(),
-    hasScrollbars: function(a) {
-      a = mxUtils.getCurrentStyle(a);
-      return null != a && ("scroll" == a.overflow || "auto" == a.overflow)
-    },
-    bind: function(a, b) {
-      return function() {
-        return b.apply(a, arguments)
-      }
-    },
-    eval: function(a) {
-      var b = null;
-      if (0 <= a.indexOf("function")) try {
-        eval("var _mxJavaScriptExpression\x3d" + a), b = _mxJavaScriptExpression, _mxJavaScriptExpression = null
-      } catch (c) {
-        mxLog.warn(c.message + " while evaluating " + a)
-      } else try {
-        b = eval(a)
-      } catch (d) {
-        mxLog.warn(d.message + " while evaluating " + a)
-      }
-      return b
-    },
-    findNode: function(a, b, c) {
-      var d = a.getAttribute(b);
-      if (null != d && d == c) return a;
-      for (a =
-        a.firstChild; null != a;) {
-        d = mxUtils.findNode(a, b, c);
-        if (null != d) return d;
-        a = a.nextSibling
-      }
-      return null
-    },
-    findNodeByAttribute: function() {
-      return 9 <= document.documentMode ? function(a, b, c) {
-        var d = null;
-        if (null != a)
-          if (a.nodeType == mxConstants.NODETYPE_ELEMENT && a.getAttribute(b) == c) d = a;
-          else
-            for (a = a.firstChild; null != a && null == d;) d = mxUtils.findNodeByAttribute(a, b, c), a = a.nextSibling;
-        return d
-      } : mxClient.IS_IE ? function(a, b, c) {
-        return null == a ? null : a.ownerDocument.selectSingleNode("//*[@" + b + "\x3d'" + c + "']")
-      } : function(a, b, c) {
-        return null ==
-          a ? null : a.ownerDocument.evaluate("//*[@" + b + "\x3d'" + c + "']", a.ownerDocument, null, XPathResult.ANY_TYPE, null).iterateNext()
-      }
-    }(),
-    getFunctionName: function(a) {
-      var b = null;
-      if (null != a)
-        if (null != a.name) b = a.name;
-        else {
-          a = a.toString();
-          for (b = 9;
-            " " == a.charAt(b);) b++;
-          var c = a.indexOf("(", b),
-            b = a.substring(b, c)
-        }
-      return b
-    },
-    indexOf: function(a, b) {
-      if (null != a && null != b)
-        for (var c = 0; c < a.length; c++)
-          if (a[c] == b) return c;
-      return -1
-    },
-    remove: function(a, b) {
-      var c = null;
-      if ("object" == typeof b)
-        for (var d = mxUtils.indexOf(b, a); 0 <= d;) b.splice(d,
-          1), c = a, d = mxUtils.indexOf(b, a);
-      for (var e in b) b[e] == a && (delete b[e], c = a);
-      return c
-    },
-    isNode: function(a, b, c, d) {
-      return null != a && !isNaN(a.nodeType) && (null == b || a.nodeName.toLowerCase() == b.toLowerCase()) ? null == c || a.getAttribute(c) == d : !1
-    },
-    getChildNodes: function(a, b) {
-      b = b || mxConstants.NODETYPE_ELEMENT;
-      for (var c = [], d = a.firstChild; null != d;) d.nodeType == b && c.push(d), d = d.nextSibling;
-      return c
-    },
-    createXmlDocument: function() {
-      var a = null;
-      document.implementation && document.implementation.createDocument ? a = document.implementation.createDocument("",
-        "", null) : window.ActiveXObject && (a = new ActiveXObject("Microsoft.XMLDOM"));
-      return a
-    },
-    parseXml: function() {
-      return mxClient.IS_IE && ("undefined" === typeof document.documentMode || 9 > document.documentMode) ? function(a) {
-        var b = mxUtils.createXmlDocument();
-        b.async = "false";
-        b.loadXML(a);
-        return b
-      } : function(a) {
-        return (new DOMParser).parseFromString(a, "text/xml")
-      }
-    }(),
-    clearSelection: function() {
-      if (document.selection) return function() {
-        document.selection.empty()
-      };
-      if (window.getSelection) return function() {
-        window.getSelection().removeAllRanges()
-      }
-    }(),
-    getPrettyXml: function(a, b, c) {
-      var d = [];
-      if (null != a)
-        if (b = b || "  ", c = c || "", a.nodeType == mxConstants.NODETYPE_TEXT) d.push(a.nodeValue);
-        else {
-          d.push(c + "\x3c" + a.nodeName);
-          var e = a.attributes;
-          if (null != e)
-            for (var f = 0; f < e.length; f++) {
-              var g = mxUtils.htmlEntities(e[f].nodeValue);
-              d.push(" " + e[f].nodeName + '\x3d"' + g + '"')
-            }
-          e = a.firstChild;
-          if (null != e) {
-            for (d.push("\x3e\n"); null != e;) d.push(mxUtils.getPrettyXml(e, b, c + b)), e = e.nextSibling;
-            d.push(c + "\x3c/" + a.nodeName + "\x3e\n")
-          } else d.push("/\x3e\n")
-        }
-      return d.join("")
-    },
-    removeWhitespace: function(a,
-      b) {
-      for (var c = b ? a.previousSibling : a.nextSibling; null != c && c.nodeType == mxConstants.NODETYPE_TEXT;) {
-        var d = b ? c.previousSibling : c.nextSibling,
-          e = mxUtils.getTextContent(c);
-        0 == mxUtils.trim(e).length && c.parentNode.removeChild(c);
-        c = d
-      }
-    },
-    htmlEntities: function(a, b) {
-      a = (a || "").replace(/&/g, "\x26amp;");
-      a = a.replace(/"/g, "\x26quot;");
-      a = a.replace(/\'/g, "\x26#39;");
-      a = a.replace(/</g, "\x26lt;");
-      a = a.replace(/>/g, "\x26gt;");
-      if (null == b || b) a = a.replace(/\n/g, "\x26#xa;");
-      return a
-    },
-    isVml: function(a) {
-      return null != a && "urn:schemas-microsoft-com:vml" ==
-        a.tagUrn
-    },
-    getXml: function(a, b) {
-      var c = "";
-      null != a && (c = a.xml, c = null == c ? a.innerHTML ? a.innerHTML : (new XMLSerializer).serializeToString(a) : c.replace(/\r\n\t[\t]*/g, "").replace(/>\r\n/g, "\x3e").replace(/\r\n/g, "\n"));
-      return c = c.replace(/\n/g, b || "\x26#xa;")
-    },
-    getTextContent: function(a) {
-      var b = "";
-      null != a && (null != a.firstChild && (a = a.firstChild), b = a.nodeValue || "");
-      return b
-    },
-    getInnerHtml: function() {
-      return mxClient.IS_IE ? function(a) {
-        return null != a ? a.innerHTML : ""
-      } : function(a) {
-        return null != a ? (new XMLSerializer).serializeToString(a) :
-          ""
-      }
-    }(),
-    getOuterHtml: function() {
-      return mxClient.IS_IE ? function(a) {
-        if (null != a) {
-          if (null != a.outerHTML) return a.outerHTML;
-          var b = [];
-          b.push("\x3c" + a.nodeName);
-          var c = a.attributes;
-          if (null != c)
-            for (var d = 0; d < c.length; d++) {
-              var e = c[d].nodeValue;
-              null != e && 0 < e.length && (b.push(" "), b.push(c[d].nodeName), b.push('\x3d"'), b.push(e), b.push('"'))
-            }
-          0 == a.innerHTML.length ? b.push("/\x3e") : (b.push("\x3e"), b.push(a.innerHTML), b.push("\x3c/" + a.nodeName + "\x3e"));
-          return b.join("")
-        }
-        return ""
-      } : function(a) {
-        return null != a ? (new XMLSerializer).serializeToString(a) :
-          ""
-      }
-    }(),
-    write: function(a, b) {
-      var c = a.ownerDocument.createTextNode(b);
-      null != a && a.appendChild(c);
-      return c
-    },
-    writeln: function(a, b) {
-      var c = a.ownerDocument.createTextNode(b);
-      null != a && (a.appendChild(c), a.appendChild(document.createElement("br")));
-      return c
-    },
-    br: function(a, b) {
-      b = b || 1;
-      for (var c = null, d = 0; d < b; d++) null != a && (c = a.ownerDocument.createElement("br"), a.appendChild(c));
-      return c
-    },
-    button: function(a, b, c) {
-      c = null != c ? c : document;
-      c = c.createElement("button");
-      mxUtils.write(c, a);
-      mxEvent.addListener(c, "click", function(a) {
-        b(a)
-      });
-      return c
-    },
-    para: function(a, b) {
-      var c = document.createElement("p");
-      mxUtils.write(c, b);
-      null != a && a.appendChild(c);
-      return c
-    },
-    addTransparentBackgroundFilter: function(a) {
-      a.style.filter += "progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'" + mxClient.imageBasePath + "/transparent.gif', sizingMethod\x3d'scale')"
-    },
-    linkAction: function(a, b, c, d, e) {
-      return mxUtils.link(a, b, function() {
-        c.execute(d)
-      }, e)
-    },
-    linkInvoke: function(a, b, c, d, e, f) {
-      return mxUtils.link(a, b, function() {
-        c[d](e)
-      }, f)
-    },
-    link: function(a, b, c, d) {
-      var e =
-        document.createElement("span");
-      e.style.color = "blue";
-      e.style.textDecoration = "underline";
-      e.style.cursor = "pointer";
-      null != d && (e.style.paddingLeft = d + "px");
-      mxEvent.addListener(e, "click", c);
-      mxUtils.write(e, b);
-      null != a && a.appendChild(e);
-      return e
-    },
-    fit: function(a) {
-      var b = parseInt(a.offsetLeft),
-        c = parseInt(a.offsetWidth),
-        d = document.body,
-        e = document.documentElement,
-        f = (d.scrollLeft || e.scrollLeft) + (d.clientWidth || e.clientWidth);
-      b + c > f && (a.style.left = Math.max(d.scrollLeft || e.scrollLeft, f - c) + "px");
-      b = parseInt(a.offsetTop);
-      c = parseInt(a.offsetHeight);
-      f = (d.scrollTop || e.scrollTop) + Math.max(d.clientHeight || 0, e.clientHeight);
-      b + c > f && (a.style.top = Math.max(d.scrollTop || e.scrollTop, f - c) + "px")
-    },
-    open: function(a) {
-      if (mxClient.IS_NS) {
-        try {
-          netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
-        } catch (b) {
-          return mxUtils.alert("Permission to read file denied."), ""
-        }
-        var c = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
-        c.initWithPath(a);
-        if (!c.exists()) return mxUtils.alert("File not found."),
-          "";
-        a = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
-        a.init(c, 1, 4, null);
-        c = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);
-        c.init(a);
-        return c.read(c.available())
-      }
-      c = (new ActiveXObject("Scripting.FileSystemObject")).OpenTextFile(a, 1);
-      a = c.readAll();
-      c.close();
-      return a
-    },
-    save: function(a, b) {
-      if (mxClient.IS_NS) {
-        try {
-          netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
-        } catch (c) {
-          mxUtils.alert("Permission to write file denied.");
-          return
-        }
-        var d = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
-        d.initWithPath(a);
-        d.exists() || d.create(0, 420);
-        var e = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
-        e.init(d, 34, 4, null);
-        e.write(b, b.length);
-        e.flush();
-        e.close()
-      } else d = (new ActiveXObject("Scripting.FileSystemObject")).CreateTextFile(a, !0), d.Write(b), d.Close()
-    },
-    saveAs: function(a) {
-      var b = document.createElement("iframe");
-      b.setAttribute("src", "");
-      b.style.visibility = "hidden";
-      document.body.appendChild(b);
-      try {
-        if (mxClient.IS_NS) {
-          var c = b.contentDocument;
-          c.open();
-          c.write(a);
-          c.close();
-          try {
-            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"), b.focus(), saveDocument(c)
-          } catch (d) {
-            mxUtils.alert("Permission to save document denied.")
-          }
-        } else c = b.contentWindow.document, c.write(a), c.execCommand("SaveAs", !1, document.location)
-      } finally {
-        document.body.removeChild(b)
-      }
-    },
-    copy: function(a) {
-      if (window.clipboardData) window.clipboardData.setData("Text",
-        a);
-      else {
-        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
-        var b = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);
-        if (b) {
-          var c = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
-          if (c) {
-            c.addDataFlavor("text/unicode");
-            var d = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
-            d.data = a;
-            c.setTransferData("text/unicode",
-              d, 2 * a.length);
-            b.setData(c, null, Components.interfaces.nsIClipboard.kGlobalClipboard)
-          }
-        }
-      }
-    },
-    load: function(a) {
-      a = new mxXmlRequest(a, null, "GET", !1);
-      a.send();
-      return a
-    },
-    get: function(a, b, c) {
-      return (new mxXmlRequest(a, null, "GET")).send(b, c)
-    },
-    post: function(a, b, c, d) {
-      return (new mxXmlRequest(a, b)).send(c, d)
-    },
-    submit: function(a, b, c, d) {
-      return (new mxXmlRequest(a, b)).simulate(c, d)
-    },
-    loadInto: function(a, b, c) {
-      mxClient.IS_IE ? b.onreadystatechange = function() {
-        4 == b.readyState && c()
-      } : b.addEventListener("load", c, !1);
-      b.load(a)
-    },
-    getValue: function(a, b, c) {
-      a = null != a ? a[b] : null;
-      null == a && (a = c);
-      return a
-    },
-    getNumber: function(a, b, c) {
-      a = null != a ? a[b] : null;
-      null == a && (a = c || 0);
-      return Number(a)
-    },
-    getColor: function(a, b, c) {
-      a = null != a ? a[b] : null;
-      null == a ? a = c : a == mxConstants.NONE && (a = null);
-      return a
-    },
-    clone: function(a, b, c) {
-      c = null != c ? c : !1;
-      var d = null;
-      if (null != a && "function" == typeof a.constructor) {
-        var d = new a.constructor,
-          e;
-        for (e in a)
-          if (e != mxObjectIdentity.FIELD_NAME && (null == b || 0 > mxUtils.indexOf(b, e))) d[e] = !c && "object" == typeof a[e] ? mxUtils.clone(a[e]) : a[e]
-      }
-      return d
-    },
-    equalPoints: function(a, b) {
-      if (null == a && null != b || null != a && null == b || null != a && null != b && a.length != b.length) return !1;
-      if (null != a && null != b)
-        for (var c = 0; c < a.length; c++)
-          if (a[c] == b[c] || null != a[c] && !a[c].equals(b[c])) return !1;
-      return !0
-    },
-    equalEntries: function(a, b) {
-      if (null == a && null != b || null != a && null == b || null != a && null != b && a.length != b.length) return !1;
-      if (null != a && null != b)
-        for (var c in a)
-          if (a[c] != b[c]) return !1;
-      return !0
-    },
-    extend: function(a, b) {
-      var c = function() {};
-      c.prototype = b.prototype;
-      a.prototype = new c;
-      a.prototype.constructor =
-        a
-    },
-    toString: function(a) {
-      var b = "",
-        c;
-      for (c in a) try {
-        if (null == a[c]) b += c + " \x3d [null]\n";
-        else if ("function" == typeof a[c]) b += c + " \x3d\x3e [Function]\n";
-        else if ("object" == typeof a[c]) var d = mxUtils.getFunctionName(a[c].constructor),
-          b = b + (c + " \x3d\x3e [" + d + "]\n");
-        else b += c + " \x3d " + a[c] + "\n"
-      } catch (e) {
-        b += c + "\x3d" + e.message
-      }
-      return b
-    },
-    toRadians: function(a) {
-      return Math.PI * a / 180
-    },
-    arcToCurves: function(a, b, c, d, e, f, g, h, k) {
-      h -= a;
-      k -= b;
-      if (0 === c || 0 === d) return p;
-      c = Math.abs(c);
-      d = Math.abs(d);
-      var l = -h / 2,
-        m = -k / 2,
-        n = Math.cos(e *
-          Math.PI / 180),
-        p = Math.sin(e * Math.PI / 180);
-      e = n * l + p * m;
-      var l = -1 * p * l + n * m,
-        m = e * e,
-        q = l * l,
-        s = c * c,
-        r = d * d,
-        t = m / s + q / r;
-      1 < t ? (c *= Math.sqrt(t), d *= Math.sqrt(t), f = 0) : (t = 1, f === g && (t = -1), f = t * Math.sqrt((s * r - s * q - r * m) / (s * q + r * m)));
-      m = f * c * l / d;
-      q = -1 * f * d * e / c;
-      h = n * m - p * q + h / 2;
-      k = p * m + n * q + k / 2;
-      s = Math.atan2((l - q) / d, (e - m) / c) - Math.atan2(0, 1);
-      f = 0 <= s ? s : 2 * Math.PI + s;
-      s = Math.atan2((-l - q) / d, (-e - m) / c) - Math.atan2((l - q) / d, (e - m) / c);
-      e = 0 <= s ? s : 2 * Math.PI + s;
-      0 == g && 0 < e ? e -= 2 * Math.PI : 0 != g && 0 > e && (e += 2 * Math.PI);
-      g = 2 * e / Math.PI;
-      g = Math.ceil(0 > g ? -1 * g : g);
-      e /= g;
-      l = 8 / 3 * Math.sin(e /
-        4) * Math.sin(e / 4) / Math.sin(e / 2);
-      m = n * c;
-      n *= d;
-      c *= p;
-      d *= p;
-      for (var v = Math.cos(f), w = Math.sin(f), q = -l * (m * w + d * v), s = -l * (c * w - n * v), t = r = 0, p = [], u = 0; u < g; ++u) {
-        f += e;
-        var v = Math.cos(f),
-          w = Math.sin(f),
-          r = m * v - d * w + h,
-          t = c * v + n * w + k,
-          y = -l * (m * w + d * v),
-          v = -l * (c * w - n * v),
-          w = 6 * u;
-        p[w] = Number(q + a);
-        p[w + 1] = Number(s + b);
-        p[w + 2] = Number(r - y + a);
-        p[w + 3] = Number(t - v + b);
-        p[w + 4] = Number(r + a);
-        p[w + 5] = Number(t + b);
-        q = r + y;
-        s = t + v
-      }
-      return p
-    },
-    getBoundingBox: function(a, b) {
-      var c = null;
-      if (null != a && null != b && 0 != b) {
-        var d = mxUtils.toRadians(b),
-          c = Math.cos(d),
-          e = Math.sin(d),
-          f =
-          new mxPoint(a.x + a.width / 2, a.y + a.height / 2),
-          g = new mxPoint(a.x, a.y),
-          d = new mxPoint(a.x + a.width, a.y),
-          h = new mxPoint(d.x, a.y + a.height),
-          k = new mxPoint(a.x, h.y),
-          g = mxUtils.getRotatedPoint(g, c, e, f),
-          d = mxUtils.getRotatedPoint(d, c, e, f),
-          h = mxUtils.getRotatedPoint(h, c, e, f),
-          k = mxUtils.getRotatedPoint(k, c, e, f),
-          c = new mxRectangle(g.x, g.y, 0, 0);
-        c.add(new mxRectangle(d.x, d.y, 0, 0));
-        c.add(new mxRectangle(h.x, h.y, 0, 0));
-        c.add(new mxRectangle(k.x, k.y, 0, 0))
-      }
-      return c
-    },
-    getRotatedPoint: function(a, b, c, d) {
-      d = null != d ? d : new mxPoint;
-      var e =
-        a.x - d.x;
-      a = a.y - d.y;
-      return new mxPoint(e * b - a * c + d.x, a * b + e * c + d.y)
-    },
-    getPortConstraints: function(a, b, c, d) {
-      a = mxUtils.getValue(a.style, mxConstants.STYLE_PORT_CONSTRAINT, null);
-      if (null == a) return d;
-      d = a.toString();
-      a = mxConstants.DIRECTION_MASK_NONE;
-      0 <= d.indexOf(mxConstants.DIRECTION_NORTH) && (a |= mxConstants.DIRECTION_MASK_NORTH);
-      0 <= d.indexOf(mxConstants.DIRECTION_WEST) && (a |= mxConstants.DIRECTION_MASK_WEST);
-      0 <= d.indexOf(mxConstants.DIRECTION_SOUTH) && (a |= mxConstants.DIRECTION_MASK_SOUTH);
-      0 <= d.indexOf(mxConstants.DIRECTION_EAST) &&
-        (a |= mxConstants.DIRECTION_MASK_EAST);
-      return a
-    },
-    reversePortConstraints: function(a) {
-      var b = 0,
-        b = (a & mxConstants.DIRECTION_MASK_WEST) << 3,
-        b = b | (a & mxConstants.DIRECTION_MASK_NORTH) << 1,
-        b = b | (a & mxConstants.DIRECTION_MASK_SOUTH) >> 1;
-      return b |= (a & mxConstants.DIRECTION_MASK_EAST) >> 3
-    },
-    findNearestSegment: function(a, b, c) {
-      var d = -1;
-      if (0 < a.absolutePoints.length)
-        for (var e = a.absolutePoints[0], f = null, g = 1; g < a.absolutePoints.length; g++) {
-          var h = a.absolutePoints[g],
-            e = mxUtils.ptSegDistSq(e.x, e.y, h.x, h.y, b, c);
-          if (null == f || e < f) f =
-            e, d = g - 1;
-          e = h
-        }
-      return d
-    },
-    rectangleIntersectsSegment: function(a, b, c) {
-      var d = a.y,
-        e = a.x,
-        f = d + a.height,
-        g = e + a.width;
-      a = b.x;
-      var h = c.x;
-      b.x > c.x && (a = c.x, h = b.x);
-      h > g && (h = g);
-      a < e && (a = e);
-      if (a > h) return !1;
-      var e = b.y,
-        g = c.y,
-        k = c.x - b.x;
-      1E-7 < Math.abs(k) && (c = (c.y - b.y) / k, b = b.y - c * b.x, e = c * a + b, g = c * h + b);
-      e > g && (b = g, g = e, e = b);
-      g > f && (g = f);
-      e < d && (e = d);
-      return e > g ? !1 : !0
-    },
-    contains: function(a, b, c) {
-      return a.x <= b && a.x + a.width >= b && a.y <= c && a.y + a.height >= c
-    },
-    intersects: function(a, b) {
-      var c = a.width,
-        d = a.height,
-        e = b.width,
-        f = b.height;
-      if (0 >= e || 0 >= f || 0 >= c ||
-        0 >= d) return !1;
-      var g = a.x,
-        h = a.y,
-        k = b.x,
-        l = b.y,
-        e = e + k,
-        f = f + l,
-        c = c + g,
-        d = d + h;
-      return (e < k || e > g) && (f < l || f > h) && (c < g || c > k) && (d < h || d > l)
-    },
-    intersectsHotspot: function(a, b, c, d, e, f) {
-      d = null != d ? d : 1;
-      e = null != e ? e : 0;
-      f = null != f ? f : 0;
-      if (0 < d) {
-        var g = a.getCenterX(),
-          h = a.getCenterY(),
-          k = a.width,
-          l = a.height,
-          m = mxUtils.getValue(a.style, mxConstants.STYLE_STARTSIZE) * a.view.scale;
-        0 < m && (mxUtils.getValue(a.style, mxConstants.STYLE_HORIZONTAL, !0) ? (h = a.y + m / 2, l = m) : (g = a.x + m / 2, k = m));
-        k = Math.max(e, k * d);
-        l = Math.max(e, l * d);
-        0 < f && (k = Math.min(k, f), l = Math.min(l,
-          f));
-        d = new mxRectangle(g - k / 2, h - l / 2, k, l);
-        g = mxUtils.toRadians(mxUtils.getValue(a.style, mxConstants.STYLE_ROTATION) || 0);
-        0 != g && (e = Math.cos(-g), f = Math.sin(-g), g = new mxPoint(a.getCenterX(), a.getCenterY()), a = mxUtils.getRotatedPoint(new mxPoint(b, c), e, f, g), b = a.x, c = a.y);
-        return mxUtils.contains(d, b, c)
-      }
-      return !0
-    },
-    getOffset: function(a, b) {
-      var c = 0,
-        d = 0;
-      if (null != b && b) var e = document.body,
-        f = document.documentElement,
-        c = c + (e.scrollLeft || f.scrollLeft),
-        d = d + (e.scrollTop || f.scrollTop);
-      for (; a.offsetParent;) c += a.offsetLeft, d +=
-        a.offsetTop, a = a.offsetParent;
-      return new mxPoint(c, d)
-    },
-    getScrollOrigin: function(a) {
-      for (var b = document.body, c = document.documentElement, d = new mxPoint(b.scrollLeft || c.scrollLeft, b.scrollTop || c.scrollTop); null != a && a != b && a != c;) !isNaN(a.scrollLeft) && !
-        isNaN(a.scrollTop) && (d.x += a.scrollLeft, d.y += a.scrollTop), a = a.parentNode;
-      return d
-    },
-    convertPoint: function(a, b, c) {
-      var d = mxUtils.getScrollOrigin(a);
-      a = mxUtils.getOffset(a);
-      a.x -= d.x;
-      a.y -= d.y;
-      return new mxPoint(b - a.x, c - a.y)
-    },
-    ltrim: function(a, b) {
-      return a.replace(RegExp("^[" +
-        (b || "\\s") + "]+", "g"), "")
-    },
-    rtrim: function(a, b) {
-      return a.replace(RegExp("[" + (b || "\\s") + "]+$", "g"), "")
-    },
-    trim: function(a, b) {
-      return mxUtils.ltrim(mxUtils.rtrim(a, b), b)
-    },
-    isNumeric: function(a) {
-      return null != a && (null == a.length || 0 < a.length && 0 > a.indexOf("0x") && 0 > a.indexOf("0X")) && !isNaN(a)
-    },
-    mod: function(a, b) {
-      return (a % b + b) % b
-    },
-    intersection: function(a, b, c, d, e, f, g, h) {
-      var k = (h - f) * (c - a) - (g - e) * (d - b);
-      g = ((g - e) * (b - f) - (h - f) * (a - e)) / k;
-      e = ((c - a) * (b - f) - (d - b) * (a - e)) / k;
-      return 0 <= g && 1 >= g && 0 <= e && 1 >= e ? new mxPoint(a + g * (c - a), b + g *
-        (d - b)) : null
-    },
-    ptSegDistSq: function(a, b, c, d, e, f) {
-      c -= a;
-      d -= b;
-      e -= a;
-      f -= b;
-      0 >= e * c + f * d ? c = 0 : (e = c - e, f = d - f, a = e * c + f * d, c = 0 >= a ? 0 : a * a / (c * c + d * d));
-      e = e * e + f * f - c;
-      0 > e && (e = 0);
-      return e
-    },
-    relativeCcw: function(a, b, c, d, e, f) {
-      c -= a;
-      d -= b;
-      e -= a;
-      f -= b;
-      a = e * d - f * c;
-      0 == a && (a = e * c + f * d, 0 < a && (a = (e - c) * c + (f - d) * d, 0 > a && (a = 0)));
-      return 0 > a ? -1 : 0 < a ? 1 : 0
-    },
-    animateChanges: function(a, b) {
-      mxEffects.animateChanges.apply(this, arguments)
-    },
-    cascadeOpacity: function(a, b, c) {
-      mxEffects.cascadeOpacity.apply(this, arguments)
-    },
-    fadeOut: function(a, b, c, d, e, f) {
-      mxEffects.fadeOut.apply(this,
-        arguments)
-    },
-    setOpacity: function(a, b) {
-      mxUtils.isVml(a) ? a.style.filter = 100 <= b ? null : "alpha(opacity\x3d" + b / 5 + ")" : mxClient.IS_IE && ("undefined" === typeof document.documentMode || 9 > document.documentMode) ? a.style
-        .filter = 100 <= b ? null : "alpha(opacity\x3d" + b + ")" : a.style.opacity = b / 100
-    },
-    createImage: function(a) {
-      var b = null;
-      mxClient.IS_IE6 && "CSS1Compat" != document.compatMode ? (b = document.createElement(mxClient.VML_PREFIX + ":image"), b.setAttribute("src", a), b.style.borderStyle = "none") : (b = document.createElement(
-        "img"), b.setAttribute("src",
-        a), b.setAttribute("border", "0"));
-      return b
-    },
-    sortCells: function(a, b) {
-      b = null != b ? b : !0;
-      var c = new mxDictionary;
-      a.sort(function(a, e) {
-        var f = c.get(a);
-        null == f && (f = mxCellPath.create(a).split(mxCellPath.PATH_SEPARATOR), c.put(a, f));
-        var g = c.get(e);
-        null == g && (g = mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR), c.put(e, g));
-        f = mxCellPath.compare(f, g);
-        return 0 == f ? 0 : 0 < f == b ? 1 : -1
-      });
-      return a
-    },
-    getStylename: function(a) {
-      return null != a && (a = a.split(";")[0], 0 > a.indexOf("\x3d")) ? a : ""
-    },
-    getStylenames: function(a) {
-      var b = [];
-      if (null !=
-        a) {
-        a = a.split(";");
-        for (var c = 0; c < a.length; c++) 0 > a[c].indexOf("\x3d") && b.push(a[c])
-      }
-      return b
-    },
-    indexOfStylename: function(a, b) {
-      if (null != a && null != b)
-        for (var c = a.split(";"), d = 0, e = 0; e < c.length; e++) {
-          if (c[e] == b) return d;
-          d += c[e].length + 1
-        }
-      return -1
-    },
-    addStylename: function(a, b) {
-      0 > mxUtils.indexOfStylename(a, b) && (null == a ? a = "" : 0 < a.length && ";" != a.charAt(a.length - 1) && (a += ";"), a += b);
-      return a
-    },
-    removeStylename: function(a, b) {
-      var c = [];
-      if (null != a)
-        for (var d = a.split(";"), e = 0; e < d.length; e++) d[e] != b && c.push(d[e]);
-      return c.join(";")
-    },
-    removeAllStylenames: function(a) {
-      var b = [];
-      if (null != a) {
-        a = a.split(";");
-        for (var c = 0; c < a.length; c++) 0 <= a[c].indexOf("\x3d") && b.push(a[c])
-      }
-      return b.join(";")
-    },
-    setCellStyles: function(a, b, c, d) {
-      if (null != b && 0 < b.length) {
-        a.beginUpdate();
-        try {
-          for (var e = 0; e < b.length; e++)
-            if (null != b[e]) {
-              var f = mxUtils.setStyle(a.getStyle(b[e]), c, d);
-              a.setStyle(b[e], f)
-            }
-        } finally {
-          a.endUpdate()
-        }
-      }
-    },
-    setStyle: function(a, b, c) {
-      var d = null != c && ("undefined" == typeof c.length || 0 < c.length);
-      if (null == a || 0 == a.length) d && (a = b + "\x3d" + c);
-      else {
-        var e = a.indexOf(b +
-          "\x3d");
-        0 > e ? d && (d = ";" == a.charAt(a.length - 1) ? "" : ";", a = a + d + b + "\x3d" + c) : (b = d ? b + "\x3d" + c : "", c = a.indexOf(";", e), d || c++, a = a.substring(0, e) + b + (c > e ?
-          a.substring(c) : ""))
-      }
-      return a
-    },
-    setCellStyleFlags: function(a, b, c, d, e) {
-      if (null != b && 0 < b.length) {
-        a.beginUpdate();
-        try {
-          for (var f = 0; f < b.length; f++)
-            if (null != b[f]) {
-              var g = mxUtils.setStyleFlag(a.getStyle(b[f]), c, d, e);
-              a.setStyle(b[f], g)
-            }
-        } finally {
-          a.endUpdate()
-        }
-      }
-    },
-    setStyleFlag: function(a, b, c, d) {
-      if (null == a || 0 == a.length) a = d || null == d ? b + "\x3d" + c : b + "\x3d0";
-      else {
-        var e = a.indexOf(b +
-          "\x3d");
-        if (0 > e) e = ";" == a.charAt(a.length - 1) ? "" : ";", a = d || null == d ? a + e + b + "\x3d" + c : a + e + b + "\x3d0";
-        else {
-          var f = a.indexOf(";", e),
-            g = "",
-            g = 0 > f ? a.substring(e + b.length + 1) : a.substring(e + b.length + 1, f),
-            g = null == d ? parseInt(g) ^ c : d ? parseInt(g) | c : parseInt(g) & ~c;
-          a = a.substring(0, e) + b + "\x3d" + g + (0 <= f ? a.substring(f) : "")
-        }
-      }
-      return a
-    },
-    getAlignmentAsPoint: function(a, b) {
-      var c = 0,
-        d = 0;
-      a == mxConstants.ALIGN_CENTER ? c = -0.5 : a == mxConstants.ALIGN_RIGHT && (c = -1);
-      b == mxConstants.ALIGN_MIDDLE ? d = -0.5 : b == mxConstants.ALIGN_BOTTOM && (d = -1);
-      return new mxPoint(c,
-        d)
-    },
-    getSizeForString: function(a, b, c) {
-      b = null != b ? b : mxConstants.DEFAULT_FONTSIZE;
-      c = null != c ? c : mxConstants.DEFAULT_FONTFAMILY;
-      var d = document.createElement("div");
-      d.style.fontFamily = c;
-      d.style.fontSize = Math.round(b) + "px";
-      d.style.lineHeight = Math.round(b * mxConstants.LINE_HEIGHT) + "px";
-      d.style.position = "absolute";
-      d.style.whiteSpace = "nowrap";
-      d.style.visibility = "hidden";
-      d.style.display = mxClient.IS_QUIRKS ? "inline" : "inline-block";
-      d.style.zoom = "1";
-      d.innerHTML = a;
-      document.body.appendChild(d);
-      a = new mxRectangle(0, 0,
-        d.offsetWidth, d.offsetHeight);
-      document.body.removeChild(d);
-      return a
-    },
-    getViewXml: function(a, b, c, d, e) {
-      d = null != d ? d : 0;
-      e = null != e ? e : 0;
-      b = null != b ? b : 1;
-      null == c && (c = [a.getModel().getRoot()]);
-      var f = a.getView(),
-        g = null,
-        h = f.isEventsEnabled();
-      f.setEventsEnabled(!1);
-      var k = f.drawPane,
-        l = f.overlayPane;
-      a.dialect == mxConstants.DIALECT_SVG ? (f.drawPane = document.createElementNS(mxConstants.NS_SVG, "g"), f.canvas.appendChild(f.drawPane), f.overlayPane = document.createElementNS(mxConstants.NS_SVG,
-        "g")) : (f.drawPane = f.drawPane.cloneNode(!1),
-        f.canvas.appendChild(f.drawPane), f.overlayPane = f.overlayPane.cloneNode(!1));
-      f.canvas.appendChild(f.overlayPane);
-      var m = f.getTranslate();
-      f.translate = new mxPoint(d, e);
-      b = new mxTemporaryCellStates(a.getView(), b, c);
-      try {
-        g = (new mxCodec).encode(a.getView())
-      } finally {
-        b.destroy(), f.translate = m, f.canvas.removeChild(f.drawPane), f.canvas.removeChild(f.overlayPane), f.drawPane = k, f.overlayPane = l, f.setEventsEnabled(h)
-      }
-      return g
-    },
-    getScaleForPageCount: function(a, b, c, d) {
-      if (1 > a) return 1;
-      c = null != c ? c : mxConstants.PAGE_FORMAT_A4_PORTRAIT;
-      d = null != d ? d : 0;
-      var e = c.width - 2 * d;
-      c = c.height - 2 * d;
-      d = b.getGraphBounds().clone();
-      b = b.getView().getScale();
-      d.width /= b;
-      d.height /= b;
-      b = d.width;
-      c = b / d.height / (e / c);
-      d = Math.sqrt(a);
-      var f = Math.sqrt(c);
-      c = d * f;
-      d /= f;
-      if (1 > c && d > a) {
-        var g = d / a;
-        d = a;
-        c /= g
-      }
-      1 > d && c > a && (g = c / a, c = a, d /= g);
-      g = Math.ceil(c) * Math.ceil(d);
-      for (f = 0; g > a;) {
-        var g = Math.floor(c) / c,
-          h = Math.floor(d) / d;
-        1 == g && (g = Math.floor(c - 1) / c);
-        1 == h && (h = Math.floor(d - 1) / d);
-        g = g > h ? g : h;
-        c *= g;
-        d *= g;
-        g = Math.ceil(c) * Math.ceil(d);
-        f++;
-        if (10 < f) break
-      }
-      return 0.99999 * (e * c / b)
-    },
-    show: function(a,
-      b, c, d) {
-      c = null != c ? c : 0;
-      d = null != d ? d : 0;
-      null == b ? b = window.open().document : b.open();
-      var e = a.getGraphBounds();
-      c = -e.x + c;
-      d = -e.y + d;
-      if (mxClient.IS_IE) {
-        for (var e = "\x3chtml\x3e\x3chead\x3e", f = document.getElementsByTagName("base"), g = 0; g < f.length; g++) e += f[g].outerHTML;
-        e += "\x3cstyle\x3e";
-        for (g = 0; g < document.styleSheets.length; g++) try {
-          e += document.styleSheets(g).cssText
-        } catch (h) {}
-        e += "\x3c/style\x3e\x3c/head\x3e";
-        e += "\x3cbody\x3e";
-        e += a.container.innerHTML;
-        e += "\x3c/body\x3e";
-        e += "\x3chtml\x3e";
-        b.writeln(e);
-        b.close();
-        a =
-          b.body.getElementsByTagName("DIV")[0];
-        null != a && (a.style.position = "absolute", a.style.left = c + "px", a.style.top = d + "px")
-      } else {
-        b.writeln("\x3chtml");
-        b.writeln("\x3chead\x3e");
-        f = document.getElementsByTagName("base");
-        for (g = 0; g < f.length; g++) b.writeln(mxUtils.getOuterHtml(f[g]));
-        f = document.getElementsByTagName("link");
-        for (g = 0; g < f.length; g++) b.writeln(mxUtils.getOuterHtml(f[g]));
-        f = document.getElementsByTagName("style");
-        for (g = 0; g < f.length; g++) b.writeln(mxUtils.getOuterHtml(f[g]));
-        b.writeln("\x3c/head\x3e");
-        b.writeln("\x3c/html\x3e");
-        b.close();
-        null == b.body && b.documentElement.appendChild(b.createElement("body"));
-        b.body.style.overflow = "auto";
-        for (a = a.container.firstChild; null != a;) g = a.cloneNode(!0), b.body.appendChild(g), a = a.nextSibling;
-        a = b.getElementsByTagName("g")[0];
-        null != a && (a.setAttribute("transform", "translate(" + c + "," + d + ")"), c = a.ownerSVGElement, c.setAttribute("width", e.width + Math.max(e.x, 0) + 3), c.setAttribute("height", e.height +
-          Math.max(e.y, 0) + 3))
-      }
-      mxUtils.removeCursors(b.body);
-      return b
-    },
-    printScreen: function(a) {
-      var b = window.open();
-      mxUtils.show(a, b.document);
-      a = function() {
-        b.focus();
-        b.print();
-        b.close()
-      };
-      mxClient.IS_GC ? b.setTimeout(a, 500) : a()
-    },
-    popup: function(a, b) {
-      if (b) {
-        var c = document.createElement("div");
-        c.style.overflow = "scroll";
-        c.style.width = "636px";
-        c.style.height = "460px";
-        var d = document.createElement("pre");
-        d.innerHTML = mxUtils.htmlEntities(a, !1).replace(/\n/g, "\x3cbr\x3e").replace(/ /g, "\x26nbsp;");
-        c.appendChild(d);
-        c = new mxWindow("Popup Window", c, document.body.clientWidth / 2 - 320, (document.body.clientHeight || document.documentElement.clientHeight) /
-          2 - 240, 640, 480, !1, !0);
-        c.setClosable(!0);
-        c.setVisible(!0)
-      } else mxClient.IS_NS ? (c = window.open(), c.document.writeln("\x3cpre\x3e" + mxUtils.htmlEntities(a) + "\x3c/pre"), c.document.close()) : (c = window.open(), d = c.document.createElement(
-        "pre"), d.innerHTML = mxUtils.htmlEntities(a, !1).replace(/\n/g, "\x3cbr\x3e").replace(/ /g, "\x26nbsp;"), c.document.body.appendChild(d))
-    },
-    alert: function(a) {
-      alert(a)
-    },
-    prompt: function(a, b) {
-      return prompt(a, b)
-    },
-    confirm: function(a) {
-      return confirm(a)
-    },
-    error: function(a, b, c, d) {
-      var e = document.createElement("div");
-      e.style.padding = "20px";
-      var f = document.createElement("img");
-      f.setAttribute("src", d || mxUtils.errorImage);
-      f.setAttribute("valign", "bottom");
-      f.style.verticalAlign = "middle";
-      e.appendChild(f);
-      e.appendChild(document.createTextNode("\u00a0"));
-      e.appendChild(document.createTextNode("\u00a0"));
-      e.appendChild(document.createTextNode("\u00a0"));
-      mxUtils.write(e, a);
-      a = document.body.clientWidth;
-      d = document.body.clientHeight || document.documentElement.clientHeight;
-      var g = new mxWindow(mxResources.get(mxUtils.errorResource) ||
-        mxUtils.errorResource, e, (a - b) / 2, d / 4, b, null, !1, !0);
-      c && (mxUtils.br(e), b = document.createElement("p"), c = document.createElement("button"), mxClient.IS_IE ? c.style.cssText = "float:right" : c.setAttribute("style", "float:right"), mxEvent.addListener(
-        c, "click",
-        function(a) {
-          g.destroy()
-        }), mxUtils.write(c, mxResources.get(mxUtils.closeResource) || mxUtils.closeResource), b.appendChild(c), e.appendChild(b), mxUtils.br(e), g.setClosable(!0));
-      g.setVisible(!0);
-      return g
-    },
-    makeDraggable: function(a, b, c, d, e, f, g, h, k, l) {
-      a = new mxDragSource(a,
-        c);
-      a.dragOffset = new mxPoint(null != e ? e : 0, null != f ? f : mxConstants.TOOLTIP_VERTICAL_OFFSET);
-      a.autoscroll = g;
-      a.setGuidesEnabled(!1);
-      null != k && (a.highlightDropTargets = k);
-      null != l && (a.getDropTarget = l);
-      a.getGraphForEvent = function(a) {
-        return "function" == typeof b ? b(a) : b
-      };
-      null != d && (a.createDragElement = function() {
-        return d.cloneNode(!0)
-      }, h && (a.createPreviewElement = function(a) {
-        var b = d.cloneNode(!0),
-          c = parseInt(b.style.width),
-          e = parseInt(b.style.height);
-        b.style.width = Math.round(c * a.view.scale) + "px";
-        b.style.height = Math.round(e *
-          a.view.scale) + "px";
-        return b
-      }));
-      return a
-    }
-  },
-  mxConstants = {
-    DEFAULT_HOTSPOT: 0.3,
-    MIN_HOTSPOT_SIZE: 8,
-    MAX_HOTSPOT_SIZE: 0,
-    RENDERING_HINT_EXACT: "exact",
-    RENDERING_HINT_FASTER: "faster",
-    RENDERING_HINT_FASTEST: "fastest",
-    DIALECT_SVG: "svg",
-    DIALECT_VML: "vml",
-    DIALECT_MIXEDHTML: "mixedHtml",
-    DIALECT_PREFERHTML: "preferHtml",
-    DIALECT_STRICTHTML: "strictHtml",
-    NS_SVG: "http://www.w3.org/2000/svg",
-    NS_XHTML: "http://www.w3.org/1999/xhtml",
-    NS_XLINK: "http://www.w3.org/1999/xlink",
-    SHADOWCOLOR: "gray",
-    SHADOW_OFFSET_X: 2,
-    SHADOW_OFFSET_Y: 3,
-    SHADOW_OPACITY: 1,
-    NODETYPE_ELEMENT: 1,
-    NODETYPE_ATTRIBUTE: 2,
-    NODETYPE_TEXT: 3,
-    NODETYPE_CDATA: 4,
-    NODETYPE_ENTITY_REFERENCE: 5,
-    NODETYPE_ENTITY: 6,
-    NODETYPE_PROCESSING_INSTRUCTION: 7,
-    NODETYPE_COMMENT: 8,
-    NODETYPE_DOCUMENT: 9,
-    NODETYPE_DOCUMENTTYPE: 10,
-    NODETYPE_DOCUMENT_FRAGMENT: 11,
-    NODETYPE_NOTATION: 12,
-    TOOLTIP_VERTICAL_OFFSET: 16,
-    DEFAULT_VALID_COLOR: "#00FF00",
-    DEFAULT_INVALID_COLOR: "#FF0000",
-    HIGHLIGHT_STROKEWIDTH: 3,
-    CURSOR_MOVABLE_VERTEX: "move",
-    CURSOR_MOVABLE_EDGE: "move",
-    CURSOR_LABEL_HANDLE: "default",
-    CURSOR_BEND_HANDLE: "pointer",
-    CURSOR_CONNECT: "pointer",
-    HIGHLIGHT_COLOR: "#00FF00",
-    CONNECT_TARGET_COLOR: "#0000FF",
-    INVALID_CONNECT_TARGET_COLOR: "#FF0000",
-    DROP_TARGET_COLOR: "#0000FF",
-    VALID_COLOR: "#00FF00",
-    INVALID_COLOR: "#FF0000",
-    EDGE_SELECTION_COLOR: "#00FF00",
-    VERTEX_SELECTION_COLOR: "#00FF00",
-    VERTEX_SELECTION_STROKEWIDTH: 1,
-    EDGE_SELECTION_STROKEWIDTH: 1,
-    VERTEX_SELECTION_DASHED: !0,
-    EDGE_SELECTION_DASHED: !0,
-    GUIDE_COLOR: "#FF0000",
-    GUIDE_STROKEWIDTH: 1,
-    OUTLINE_COLOR: "#0099FF",
-    OUTLINE_STROKEWIDTH: mxClient.IS_IE ? 2 : 3,
-    HANDLE_SIZE: 7,
-    LABEL_HANDLE_SIZE: 4,
-    HANDLE_FILLCOLOR: "#00FF00",
-    HANDLE_STROKECOLOR: "black",
-    LABEL_HANDLE_FILLCOLOR: "yellow",
-    CONNECT_HANDLE_FILLCOLOR: "#0000FF",
-    LOCKED_HANDLE_FILLCOLOR: "#FF0000",
-    OUTLINE_HANDLE_FILLCOLOR: "#00FFFF",
-    OUTLINE_HANDLE_STROKECOLOR: "#0033FF",
-    DEFAULT_FONTFAMILY: "Arial,Helvetica",
-    DEFAULT_FONTSIZE: 11,
-    LINE_HEIGHT: 1.2,
-    DEFAULT_FONTSTYLE: 0,
-    DEFAULT_STARTSIZE: 40,
-    DEFAULT_MARKERSIZE: 6,
-    DEFAULT_IMAGESIZE: 24,
-    ENTITY_SEGMENT: 30,
-    RECTANGLE_ROUNDING_FACTOR: 0.15,
-    LINE_ARCSIZE: 20,
-    ARROW_SPACING: 10,
-    ARROW_WIDTH: 30,
-    ARROW_SIZE: 30,
-    PAGE_FORMAT_A4_PORTRAIT: new mxRectangle(0,
-      0, 826, 1169),
-    PAGE_FORMAT_A4_LANDSCAPE: new mxRectangle(0, 0, 1169, 826),
-    PAGE_FORMAT_LETTER_PORTRAIT: new mxRectangle(0, 0, 850, 1100),
-    PAGE_FORMAT_LETTER_LANDSCAPE: new mxRectangle(0, 0, 1100, 850),
-    NONE: "none",
-    STYLE_PERIMETER: "perimeter",
-    STYLE_SOURCE_PORT: "sourcePort",
-    STYLE_TARGET_PORT: "targetPort",
-    STYLE_PORT_CONSTRAINT: "portConstraint",
-    STYLE_OPACITY: "opacity",
-    STYLE_TEXT_OPACITY: "textOpacity",
-    STYLE_OVERFLOW: "overflow",
-    STYLE_ORTHOGONAL: "orthogonal",
-    STYLE_EXIT_X: "exitX",
-    STYLE_EXIT_Y: "exitY",
-    STYLE_EXIT_PERIMETER: "exitPerimeter",
-    STYLE_ENTRY_X: "entryX",
-    STYLE_ENTRY_Y: "entryY",
-    STYLE_ENTRY_PERIMETER: "entryPerimeter",
-    STYLE_WHITE_SPACE: "whiteSpace",
-    STYLE_ROTATION: "rotation",
-    STYLE_FILLCOLOR: "fillColor",
-    STYLE_SWIMLANE_FILLCOLOR: "swimlaneFillColor",
-    STYLE_GRADIENTCOLOR: "gradientColor",
-    STYLE_GRADIENT_DIRECTION: "gradientDirection",
-    STYLE_STROKECOLOR: "strokeColor",
-    STYLE_SEPARATORCOLOR: "separatorColor",
-    STYLE_STROKEWIDTH: "strokeWidth",
-    STYLE_ALIGN: "align",
-    STYLE_VERTICAL_ALIGN: "verticalAlign",
-    STYLE_LABEL_POSITION: "labelPosition",
-    STYLE_VERTICAL_LABEL_POSITION: "verticalLabelPosition",
-    STYLE_IMAGE_ASPECT: "imageAspect",
-    STYLE_IMAGE_ALIGN: "imageAlign",
-    STYLE_IMAGE_VERTICAL_ALIGN: "imageVerticalAlign",
-    STYLE_GLASS: "glass",
-    STYLE_IMAGE: "image",
-    STYLE_IMAGE_WIDTH: "imageWidth",
-    STYLE_IMAGE_HEIGHT: "imageHeight",
-    STYLE_IMAGE_BACKGROUND: "imageBackground",
-    STYLE_IMAGE_BORDER: "imageBorder",
-    STYLE_FLIPH: "flipH",
-    STYLE_FLIPV: "flipV",
-    STYLE_NOLABEL: "noLabel",
-    STYLE_NOEDGESTYLE: "noEdgeStyle",
-    STYLE_LABEL_BACKGROUNDCOLOR: "labelBackgroundColor",
-    STYLE_LABEL_BORDERCOLOR: "labelBorderColor",
-    STYLE_LABEL_PADDING: "labelPadding",
-    STYLE_INDICATOR_SHAPE: "indicatorShape",
-    STYLE_INDICATOR_IMAGE: "indicatorImage",
-    STYLE_INDICATOR_COLOR: "indicatorColor",
-    STYLE_INDICATOR_STROKECOLOR: "indicatorStrokeColor",
-    STYLE_INDICATOR_GRADIENTCOLOR: "indicatorGradientColor",
-    STYLE_INDICATOR_SPACING: "indicatorSpacing",
-    STYLE_INDICATOR_WIDTH: "indicatorWidth",
-    STYLE_INDICATOR_HEIGHT: "indicatorHeight",
-    STYLE_INDICATOR_DIRECTION: "indicatorDirection",
-    STYLE_SHADOW: "shadow",
-    STYLE_SEGMENT: "segment",
-    STYLE_ENDARROW: "endArrow",
-    STYLE_STARTARROW: "startArrow",
-    STYLE_ENDSIZE: "endSize",
-    STYLE_STARTSIZE: "startSize",
-    STYLE_SWIMLANE_LINE: "swimlaneLine",
-    STYLE_ENDFILL: "endFill",
-    STYLE_STARTFILL: "startFill",
-    STYLE_DASHED: "dashed",
-    STYLE_DASH_PATTERN: "dashPattern",
-    STYLE_ROUNDED: "rounded",
-    STYLE_CURVED: "curved",
-    STYLE_ARCSIZE: "arcSize",
-    STYLE_SMOOTH: "smooth",
-    STYLE_SOURCE_PERIMETER_SPACING: "sourcePerimeterSpacing",
-    STYLE_TARGET_PERIMETER_SPACING: "targetPerimeterSpacing",
-    STYLE_PERIMETER_SPACING: "perimeterSpacing",
-    STYLE_SPACING: "spacing",
-    STYLE_SPACING_TOP: "spacingTop",
-    STYLE_SPACING_LEFT: "spacingLeft",
-    STYLE_SPACING_BOTTOM: "spacingBottom",
-    STYLE_SPACING_RIGHT: "spacingRight",
-    STYLE_HORIZONTAL: "horizontal",
-    STYLE_DIRECTION: "direction",
-    STYLE_ELBOW: "elbow",
-    STYLE_FONTCOLOR: "fontColor",
-    STYLE_FONTFAMILY: "fontFamily",
-    STYLE_FONTSIZE: "fontSize",
-    STYLE_FONTSTYLE: "fontStyle",
-    STYLE_AUTOSIZE: "autosize",
-    STYLE_FOLDABLE: "foldable",
-    STYLE_EDITABLE: "editable",
-    STYLE_BENDABLE: "bendable",
-    STYLE_MOVABLE: "movable",
-    STYLE_RESIZABLE: "resizable",
-    STYLE_CLONEABLE: "cloneable",
-    STYLE_DELETABLE: "deletable",
-    STYLE_SHAPE: "shape",
-    STYLE_EDGE: "edgeStyle",
-    STYLE_LOOP: "loopStyle",
-    STYLE_ROUTING_CENTER_X: "routingCenterX",
-    STYLE_ROUTING_CENTER_Y: "routingCenterY",
-    FONT_BOLD: 1,
-    FONT_ITALIC: 2,
-    FONT_UNDERLINE: 4,
-    FONT_SHADOW: 8,
-    SHAPE_RECTANGLE: "rectangle",
-    SHAPE_ELLIPSE: "ellipse",
-    SHAPE_DOUBLE_ELLIPSE: "doubleEllipse",
-    SHAPE_RHOMBUS: "rhombus",
-    SHAPE_LINE: "line",
-    SHAPE_IMAGE: "image",
-    SHAPE_ARROW: "arrow",
-    SHAPE_LABEL: "label",
-    SHAPE_CYLINDER: "cylinder",
-    SHAPE_SWIMLANE: "swimlane",
-    SHAPE_CONNECTOR: "connector",
-    SHAPE_ACTOR: "actor",
-    SHAPE_CLOUD: "cloud",
-    SHAPE_TRIANGLE: "triangle",
-    SHAPE_HEXAGON: "hexagon",
-    ARROW_CLASSIC: "classic",
-    ARROW_BLOCK: "block",
-    ARROW_OPEN: "open",
-    ARROW_OVAL: "oval",
-    ARROW_DIAMOND: "diamond",
-    ARROW_DIAMOND_THIN: "diamondThin",
-    ALIGN_LEFT: "left",
-    ALIGN_CENTER: "center",
-    ALIGN_RIGHT: "right",
-    ALIGN_TOP: "top",
-    ALIGN_MIDDLE: "middle",
-    ALIGN_BOTTOM: "bottom",
-    DIRECTION_NORTH: "north",
-    DIRECTION_SOUTH: "south",
-    DIRECTION_EAST: "east",
-    DIRECTION_WEST: "west",
-    DIRECTION_MASK_NONE: 0,
-    DIRECTION_MASK_WEST: 1,
-    DIRECTION_MASK_NORTH: 2,
-    DIRECTION_MASK_SOUTH: 4,
-    DIRECTION_MASK_EAST: 8,
-    DIRECTION_MASK_ALL: 15,
-    ELBOW_VERTICAL: "vertical",
-    ELBOW_HORIZONTAL: "horizontal",
-    EDGESTYLE_ELBOW: "elbowEdgeStyle",
-    EDGESTYLE_ENTITY_RELATION: "entityRelationEdgeStyle",
-    EDGESTYLE_LOOP: "loopEdgeStyle",
-    EDGESTYLE_SIDETOSIDE: "sideToSideEdgeStyle",
-    EDGESTYLE_TOPTOBOTTOM: "topToBottomEdgeStyle",
-    EDGESTYLE_ORTHOGONAL: "orthogonalEdgeStyle",
-    EDGESTYLE_SEGMENT: "segmentEdgeStyle",
-    PERIMETER_ELLIPSE: "ellipsePerimeter",
-    PERIMETER_RECTANGLE: "rectanglePerimeter",
-    PERIMETER_RHOMBUS: "rhombusPerimeter",
-    PERIMETER_TRIANGLE: "trianglePerimeter"
-  };
-
-function mxEventObject(a) {
-  this.name = a;
-  this.properties = [];
-  for (var b = 1; b < arguments.length; b += 2) null != arguments[b + 1] && (this.properties[arguments[b]] = arguments[b + 1])
-}
-mxEventObject.prototype.name = null;
-mxEventObject.prototype.properties = null;
-mxEventObject.prototype.consumed = !1;
-mxEventObject.prototype.getName = function() {
-  return this.name
-};
-mxEventObject.prototype.getProperties = function() {
-  return this.properties
-};
-mxEventObject.prototype.getProperty = function(a) {
-  return this.properties[a]
-};
-mxEventObject.prototype.isConsumed = function() {
-  return this.consumed
-};
-mxEventObject.prototype.consume = function() {
-  this.consumed = !0
-};
-
-function mxMouseEvent(a, b) {
-  this.evt = a;
-  this.state = b
-}
-mxMouseEvent.prototype.consumed = !1;
-mxMouseEvent.prototype.evt = null;
-mxMouseEvent.prototype.graphX = null;
-mxMouseEvent.prototype.graphY = null;
-mxMouseEvent.prototype.state = null;
-mxMouseEvent.prototype.getEvent = function() {
-  return this.evt
-};
-mxMouseEvent.prototype.getSource = function() {
-  return mxEvent.getSource(this.evt)
-};
-mxMouseEvent.prototype.isSource = function(a) {
-  if (null != a)
-    for (var b = this.getSource(); null != b;) {
-      if (b == a.node) return !0;
-      b = b.parentNode
-    }
-  return !1
-};
-mxMouseEvent.prototype.getX = function() {
-  return mxEvent.getClientX(this.getEvent())
-};
-mxMouseEvent.prototype.getY = function() {
-  return mxEvent.getClientY(this.getEvent())
-};
-mxMouseEvent.prototype.getGraphX = function() {
-  return this.graphX
-};
-mxMouseEvent.prototype.getGraphY = function() {
-  return this.graphY
-};
-mxMouseEvent.prototype.getState = function() {
-  return this.state
-};
-mxMouseEvent.prototype.getCell = function() {
-  var a = this.getState();
-  return null != a ? a.cell : null
-};
-mxMouseEvent.prototype.isPopupTrigger = function() {
-  return mxEvent.isPopupTrigger(this.getEvent())
-};
-mxMouseEvent.prototype.isConsumed = function() {
-  return this.consumed
-};
-mxMouseEvent.prototype.consume = function(a) {
-  (null != a ? a : 1) && this.evt.preventDefault && this.evt.preventDefault();
-  this.evt.returnValue = !1;
-  this.consumed = !0
-};
-
-function mxEventSource(a) {
-  this.setEventSource(a)
-}
-mxEventSource.prototype.eventListeners = null;
-mxEventSource.prototype.eventsEnabled = !0;
-mxEventSource.prototype.eventSource = null;
-mxEventSource.prototype.isEventsEnabled = function() {
-  return this.eventsEnabled
-};
-mxEventSource.prototype.setEventsEnabled = function(a) {
-  this.eventsEnabled = a
-};
-mxEventSource.prototype.getEventSource = function() {
-  return this.eventSource
-};
-mxEventSource.prototype.setEventSource = function(a) {
-  this.eventSource = a
-};
-mxEventSource.prototype.addListener = function(a, b) {
-  null == this.eventListeners && (this.eventListeners = []);
-  this.eventListeners.push(a);
-  this.eventListeners.push(b)
-};
-mxEventSource.prototype.removeListener = function(a) {
-  if (null != this.eventListeners)
-    for (var b = 0; b < this.eventListeners.length;) this.eventListeners[b + 1] == a ? this.eventListeners.splice(b, 2) : b += 2
-};
-mxEventSource.prototype.fireEvent = function(a, b) {
-  if (null != this.eventListeners && this.isEventsEnabled()) {
-    null == a && (a = new mxEventObject);
-    null == b && (b = this.getEventSource());
-    null == b && (b = this);
-    for (var c = [b, a], d = 0; d < this.eventListeners.length; d += 2) {
-      var e = this.eventListeners[d];
-      (null == e || e == a.getName()) && this.eventListeners[d + 1].apply(this, c)
-    }
-  }
-};
-var mxEvent = {
-  objects: [],
-  addListener: function() {
-    var a = function(a, c, d) {
-      null == a.mxListenerList && (a.mxListenerList = [], mxEvent.objects.push(a));
-      a.mxListenerList.push({
-        name: c,
-        f: d
-      })
-    };
-    return window.addEventListener ? function(b, c, d) {
-      b.addEventListener(c, d, !1);
-      a(b, c, d)
-    } : function(b, c, d) {
-      b.attachEvent("on" + c, d);
-      a(b, c, d)
-    }
-  }(),
-  removeListener: function() {
-    var a = function(a, c, d) {
-      if (null != a.mxListenerList) {
-        c = a.mxListenerList.length;
-        for (var e = 0; e < c; e++)
-          if (a.mxListenerList[e].f == d) {
-            a.mxListenerList.splice(e, 1);
-            break
-          }
-        0 ==
-          a.mxListenerList.length && (a.mxListenerList = null)
-      }
-    };
-    return window.removeEventListener ? function(b, c, d) {
-      b.removeEventListener(c, d, !1);
-      a(b, c, d)
-    } : function(b, c, d) {
-      b.detachEvent("on" + c, d);
-      a(b, c, d)
-    }
-  }(),
-  removeAllListeners: function(a) {
-    var b = a.mxListenerList;
-    if (null != b)
-      for (; 0 < b.length;) {
-        var c = b[0];
-        mxEvent.removeListener(a, c.name, c.f)
-      }
-  },
-  addGestureListeners: function(a, b, c, d) {
-    null != b && mxEvent.addListener(a, "mousedown", b);
-    null != c && mxEvent.addListener(a, "mousemove", c);
-    null != d && mxEvent.addListener(a, "mouseup", d);
-    mxClient.IS_TOUCH && (null != b && mxEvent.addListener(a, "touchstart", b), null != c && mxEvent.addListener(a, "touchmove", c), null != d && mxEvent.addListener(a, "touchend", d))
-  },
-  removeGestureListeners: function(a, b, c, d) {
-    null != b && mxEvent.removeListener(a, "mousedown", b);
-    null != c && mxEvent.removeListener(a, "mousemove", c);
-    null != d && mxEvent.removeListener(a, "mouseup", d);
-    mxClient.IS_TOUCH && (null != b && mxEvent.removeListener(a, "touchstart", b), null != c && mxEvent.removeListener(a, "touchmove", c), null != d && mxEvent.removeListener(a, "touchend",
-      d))
-  },
-  redirectMouseEvents: function(a, b, c, d, e, f, g) {
-    var h = function(a) {
-      return "function" == typeof c ? c(a) : c
-    };
-    mxEvent.addGestureListeners(a, function(a) {
-      null != d ? d(a) : mxEvent.isConsumed(a) || b.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(a, h(a)))
-    }, function(a) {
-      null != e ? e(a) : mxEvent.isConsumed(a) || b.fireMouseEvent(mxEvent.MOUSE_MOVE, new mxMouseEvent(a, h(a)))
-    }, function(a) {
-      null != f ? f(a) : mxEvent.isConsumed(a) || b.fireMouseEvent(mxEvent.MOUSE_UP, new mxMouseEvent(a, h(a)))
-    });
-    mxEvent.addListener(a, "dblclick", function(a) {
-      if (null !=
-        g) g(a);
-      else if (!mxEvent.isConsumed(a)) {
-        var c = h(a);
-        b.dblClick(a, null != c ? c.cell : null)
-      }
-    })
-  },
-  release: function(a) {
-    if (null != a && (mxEvent.removeAllListeners(a), a = a.childNodes, null != a))
-      for (var b = a.length, c = 0; c < b; c += 1) mxEvent.release(a[c])
-  },
-  addMouseWheelListener: function(a) {
-    if (null != a) {
-      var b = function(b) {
-        null == b && (b = window.event);
-        var d = 0,
-          d = mxClient.IS_NS && !mxClient.IS_SF && !mxClient.IS_GC ? -b.detail / 2 : b.wheelDelta / 120;
-        0 != d && a(b, 0 < d)
-      };
-      mxClient.IS_NS ? mxEvent.addListener(window, mxClient.IS_SF || mxClient.IS_GC ? "mousewheel" :
-        "DOMMouseScroll", b) : mxEvent.addListener(document, "mousewheel", b)
-    }
-  },
-  disableContextMenu: function() {
-    return mxClient.IS_IE && ("undefined" === typeof document.documentMode || 9 > document.documentMode) ? function(a) {
-      mxEvent.addListener(a, "contextmenu", function() {
-        return !1
-      })
-    } : function(a) {
-      a.setAttribute("oncontextmenu", "return false;")
-    }
-  }(),
-  getSource: function(a) {
-    return null != a.srcElement ? a.srcElement : a.target
-  },
-  isConsumed: function(a) {
-    return null != a.isConsumed && a.isConsumed
-  },
-  isLeftMouseButton: function(a) {
-    return a.button ==
-      (mxClient.IS_IE && ("undefined" === typeof document.documentMode || 9 > document.documentMode) ? 1 : 0)
-  },
-  isRightMouseButton: function(a) {
-    return 2 == a.button
-  },
-  isPopupTrigger: function(a) {
-    return mxEvent.isRightMouseButton(a) || mxEvent.isShiftDown(a) && !mxEvent.isControlDown(a)
-  },
-  isShiftDown: function(a) {
-    return null != a ? a.shiftKey : !1
-  },
-  isAltDown: function(a) {
-    return null != a ? a.altKey : !1
-  },
-  isControlDown: function(a) {
-    return null != a ? a.ctrlKey : !1
-  },
-  isMetaDown: function(a) {
-    return null != a ? a.metaKey : !1
-  },
-  getMainEvent: function(a) {
-    ("touchstart" ==
-      a.type || "touchmove" == a.type) && null != a.touches && null != a.touches[0] ? a = a.touches[0] : "touchend" == a.type && (null != a.changedTouches && null != a.changedTouches[0]) && (a =
-      a.changedTouches[0]);
-    return a
-  },
-  getClientX: function(a) {
-    return mxEvent.getMainEvent(a).clientX
-  },
-  getClientY: function(a) {
-    return mxEvent.getMainEvent(a).clientY
-  },
-  consume: function(a, b, c) {
-    c = null != c ? c : !0;
-    if (null != b ? b : 1) a.preventDefault ? (c && a.stopPropagation(), a.preventDefault()) : c && (a.cancelBubble = !0);
-    a.isConsumed = !0;
-    a.returnValue = !1
-  },
-  LABEL_HANDLE: -1,
-  ROTATION_HANDLE: -2,
-  MOUSE_DOWN: "mouseDown",
-  MOUSE_MOVE: "mouseMove",
-  MOUSE_UP: "mouseUp",
-  ACTIVATE: "activate",
-  RESIZE_START: "resizeStart",
-  RESIZE: "resize",
-  RESIZE_END: "resizeEnd",
-  MOVE_START: "moveStart",
-  MOVE: "move",
-  MOVE_END: "moveEnd",
-  PAN_START: "panStart",
-  PAN: "pan",
-  PAN_END: "panEnd",
-  MINIMIZE: "minimize",
-  NORMALIZE: "normalize",
-  MAXIMIZE: "maximize",
-  HIDE: "hide",
-  SHOW: "show",
-  CLOSE: "close",
-  DESTROY: "destroy",
-  REFRESH: "refresh",
-  SIZE: "size",
-  SELECT: "select",
-  FIRED: "fired",
-  GET: "get",
-  RECEIVE: "receive",
-  CONNECT: "connect",
-  DISCONNECT: "disconnect",
-  SUSPEND: "suspend",
-  RESUME: "resume",
-  MARK: "mark",
-  SESSION: "session",
-  ROOT: "root",
-  POST: "post",
-  OPEN: "open",
-  SAVE: "save",
-  BEFORE_ADD_VERTEX: "beforeAddVertex",
-  ADD_VERTEX: "addVertex",
-  AFTER_ADD_VERTEX: "afterAddVertex",
-  DONE: "done",
-  EXECUTE: "execute",
-  EXECUTED: "executed",
-  BEGIN_UPDATE: "beginUpdate",
-  START_EDIT: "startEdit",
-  END_UPDATE: "endUpdate",
-  END_EDIT: "endEdit",
-  BEFORE_UNDO: "beforeUndo",
-  UNDO: "undo",
-  REDO: "redo",
-  CHANGE: "change",
-  NOTIFY: "notify",
-  LAYOUT_CELLS: "layoutCells",
-  CLICK: "click",
-  SCALE: "scale",
-  TRANSLATE: "translate",
-  SCALE_AND_TRANSLATE: "scaleAndTranslate",
-  UP: "up",
-  DOWN: "down",
-  ADD: "add",
-  REMOVE: "remove",
-  CLEAR: "clear",
-  ADD_CELLS: "addCells",
-  CELLS_ADDED: "cellsAdded",
-  MOVE_CELLS: "moveCells",
-  CELLS_MOVED: "cellsMoved",
-  RESIZE_CELLS: "resizeCells",
-  CELLS_RESIZED: "cellsResized",
-  TOGGLE_CELLS: "toggleCells",
-  CELLS_TOGGLED: "cellsToggled",
-  ORDER_CELLS: "orderCells",
-  CELLS_ORDERED: "cellsOrdered",
-  REMOVE_CELLS: "removeCells",
-  CELLS_REMOVED: "cellsRemoved",
-  GROUP_CELLS: "groupCells",
-  UNGROUP_CELLS: "ungroupCells",
-  REMOVE_CELLS_FROM_PARENT: "removeCellsFromParent",
-  FOLD_CELLS: "foldCells",
-  CELLS_FOLDED: "cellsFolded",
-  ALIGN_CELLS: "alignCells",
-  LABEL_CHANGED: "labelChanged",
-  CONNECT_CELL: "connectCell",
-  CELL_CONNECTED: "cellConnected",
-  SPLIT_EDGE: "splitEdge",
-  FLIP_EDGE: "flipEdge",
-  START_EDITING: "startEditing",
-  ADD_OVERLAY: "addOverlay",
-  REMOVE_OVERLAY: "removeOverlay",
-  UPDATE_CELL_SIZE: "updateCellSize",
-  ESCAPE: "escape",
-  CLICK: "click",
-  DOUBLE_CLICK: "doubleClick",
-  START: "start",
-  RESET: "reset"
-};
-
-function mxXmlRequest(a, b, c, d, e, f) {
-  this.url = a;
-  this.params = b;
-  this.method = c || "POST";
-  this.async = null != d ? d : !0;
-  this.username = e;
-  this.password = f
-}
-mxXmlRequest.prototype.url = null;
-mxXmlRequest.prototype.params = null;
-mxXmlRequest.prototype.method = null;
-mxXmlRequest.prototype.async = null;
-mxXmlRequest.prototype.binary = !1;
-mxXmlRequest.prototype.username = null;
-mxXmlRequest.prototype.password = null;
-mxXmlRequest.prototype.request = null;
-mxXmlRequest.prototype.isBinary = function() {
-  return this.binary
-};
-mxXmlRequest.prototype.setBinary = function(a) {
-  this.binary = a
-};
-mxXmlRequest.prototype.getText = function() {
-  return this.request.responseText
-};
-mxXmlRequest.prototype.isReady = function() {
-  return 4 == this.request.readyState
-};
-mxXmlRequest.prototype.getDocumentElement = function() {
-  var a = this.getXml();
-  return null != a ? a.documentElement : null
-};
-mxXmlRequest.prototype.getXml = function() {
-  var a = this.request.responseXML;
-  if (9 <= document.documentMode || null == a || null == a.documentElement) a = mxUtils.parseXml(this.request.responseText);
-  return a
-};
-mxXmlRequest.prototype.getText = function() {
-  return this.request.responseText
-};
-mxXmlRequest.prototype.getStatus = function() {
-  return this.request.status
-};
-mxXmlRequest.prototype.create = function() {
-  if (window.XMLHttpRequest) return function() {
-    var a = new XMLHttpRequest;
-    this.isBinary() && a.overrideMimeType && a.overrideMimeType("text/plain; charset\x3dx-user-defined");
-    return a
-  };
-  if ("undefined" != typeof ActiveXObject) return function() {
-    return new ActiveXObject("Microsoft.XMLHTTP")
-  }
-}();
-mxXmlRequest.prototype.send = function(a, b) {
-  this.request = this.create();
-  null != this.request && (null != a && (this.request.onreadystatechange = mxUtils.bind(this, function() {
-    this.isReady() && (a(this), this.onreadystatechaange = null)
-  })), this.request.open(this.method, this.url, this.async, this.username, this.password), this.setRequestHeaders(this.request, this.params), this.request.send(this.params))
-};
-mxXmlRequest.prototype.setRequestHeaders = function(a, b) {
-  null != b && a.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
-};
-mxXmlRequest.prototype.simulate = function(a, b) {
-  a = a || document;
-  var c = null;
-  a == document && (c = window.onbeforeunload, window.onbeforeunload = null);
-  var d = a.createElement("form");
-  d.setAttribute("method", this.method);
-  d.setAttribute("action", this.url);
-  null != b && d.setAttribute("target", b);
-  d.style.display = "none";
-  d.style.visibility = "hidden";
-  for (var e = 0 < this.params.indexOf("\x26") ? this.params.split("\x26") : this.params.split(), f = 0; f < e.length; f++) {
-    var g = e[f].indexOf("\x3d");
-    if (0 < g) {
-      var h = e[f].substring(0, g),
-        k = e[f].substring(g +
-          1),
-        g = a.createElement("textarea");
-      g.setAttribute("name", h);
-      k = k.replace(/\n/g, "\x26#xa;");
-      h = a.createTextNode(k);
-      g.appendChild(h);
-      d.appendChild(g)
-    }
-  }
-  a.body.appendChild(d);
-  d.submit();
-  a.body.removeChild(d);
-  null != c && (window.onbeforeunload = c)
-};
-var mxClipboard = {
-  STEPSIZE: 10,
-  insertCount: 1,
-  cells: null,
-  isEmpty: function() {
-    return null == mxClipboard.cells
-  },
-  cut: function(a, b) {
-    b = mxClipboard.copy(a, b);
-    mxClipboard.insertCount = 0;
-    mxClipboard.removeCells(a, b);
-    return b
-  },
-  removeCells: function(a, b) {
-    a.removeCells(b)
-  },
-  copy: function(a, b) {
-    b = b || a.getSelectionCells();
-    var c = a.getExportableCells(b);
-    mxClipboard.insertCount = 1;
-    mxClipboard.cells = a.cloneCells(c);
-    return c
-  },
-  paste: function(a) {
-    if (null != mxClipboard.cells) {
-      var b = a.getImportableCells(mxClipboard.cells),
-        c = mxClipboard.insertCount *
-        mxClipboard.STEPSIZE,
-        d = a.getDefaultParent(),
-        b = a.importCells(b, c, c, d);
-      mxClipboard.insertCount++;
-      a.setSelectionCells(b)
-    }
-  }
-};
-
-function mxWindow(a, b, c, d, e, f, g, h, k, l) {
-  null != b && (g = null != g ? g : !0, this.content = b, this.init(c, d, e, f, l), this.installMaximizeHandler(), this.installMinimizeHandler(), this.installCloseHandler(), this.setMinimizable(g),
-    this.setTitle(a), (null == h || h) && this.installMoveHandler(), null != k && null != k.parentNode ? k.parentNode.replaceChild(this.div, k) : document.body.appendChild(this.div))
-}
-mxWindow.prototype = new mxEventSource;
-mxWindow.prototype.constructor = mxWindow;
-mxWindow.prototype.closeImage = mxClient.imageBasePath + "/close.gif";
-mxWindow.prototype.minimizeImage = mxClient.imageBasePath + "/minimize.gif";
-mxWindow.prototype.normalizeImage = mxClient.imageBasePath + "/normalize.gif";
-mxWindow.prototype.maximizeImage = mxClient.imageBasePath + "/maximize.gif";
-mxWindow.prototype.resizeImage = mxClient.imageBasePath + "/resize.gif";
-mxWindow.prototype.visible = !1;
-mxWindow.prototype.content = !1;
-mxWindow.prototype.minimumSize = new mxRectangle(0, 0, 50, 40);
-mxWindow.prototype.title = !1;
-mxWindow.prototype.content = !1;
-mxWindow.prototype.destroyOnClose = !0;
-mxWindow.prototype.init = function(a, b, c, d, e) {
-  e = null != e ? e : "mxWindow";
-  this.div = document.createElement("div");
-  this.div.className = e;
-  this.div.style.left = a + "px";
-  this.div.style.top = b + "px";
-  this.table = document.createElement("table");
-  this.table.className = e;
-  null != c && (mxClient.IS_IE || (this.div.style.width = c + "px"), this.table.style.width = c + "px");
-  null != d && (mxClient.IS_IE || (this.div.style.height = d + "px"), this.table.style.height = d + "px");
-  a = document.createElement("tbody");
-  b = document.createElement("tr");
-  this.title = document.createElement("td");
-  this.title.className = e + "Title";
-  b.appendChild(this.title);
-  a.appendChild(b);
-  b = document.createElement("tr");
-  this.td = document.createElement("td");
-  this.td.className = e + "Pane";
-  this.contentWrapper = document.createElement("div");
-  this.contentWrapper.className = e + "Pane";
-  this.contentWrapper.style.width = "100%";
-  this.contentWrapper.appendChild(this.content);
-  if (mxClient.IS_IE || "DIV" != this.content.nodeName.toUpperCase()) this.contentWrapper.style.height = "100%";
-  this.td.appendChild(this.contentWrapper);
-  b.appendChild(this.td);
-  a.appendChild(b);
-  this.table.appendChild(a);
-  this.div.appendChild(this.table);
-  e = mxUtils.bind(this, function(a) {
-    this.activate()
-  });
-  mxEvent.addListener(this.title, "mousedown", e);
-  mxEvent.addListener(this.table, "mousedown", e);
-  mxClient.IS_TOUCH && (mxEvent.addListener(this.title, "touchstart", e), mxEvent.addListener(this.table, "touchstart", e));
-  this.hide()
-};
-mxWindow.prototype.setTitle = function(a) {
-  for (var b = this.title.firstChild; null != b;) {
-    var c = b.nextSibling;
-    b.nodeType == mxConstants.NODETYPE_TEXT && b.parentNode.removeChild(b);
-    b = c
-  }
-  mxUtils.write(this.title, a || "")
-};
-mxWindow.prototype.setScrollable = function(a) {
-  0 > navigator.userAgent.indexOf("Presto/2.5") && (this.contentWrapper.style.overflow = a ? "auto" : "hidden")
-};
-mxWindow.prototype.activate = function() {
-  if (mxWindow.activeWindow != this) {
-    var a = mxUtils.getCurrentStyle(this.getElement()),
-      a = null != a ? a.zIndex : 3;
-    if (mxWindow.activeWindow) {
-      var b = mxWindow.activeWindow.getElement();
-      null != b && null != b.style && (b.style.zIndex = a)
-    }
-    b = mxWindow.activeWindow;
-    this.getElement().style.zIndex = parseInt(a) + 1;
-    mxWindow.activeWindow = this;
-    this.fireEvent(new mxEventObject(mxEvent.ACTIVATE, "previousWindow", b))
-  }
-};
-mxWindow.prototype.getElement = function() {
-  return this.div
-};
-mxWindow.prototype.fit = function() {
-  mxUtils.fit(this.div)
-};
-mxWindow.prototype.isResizable = function() {
-  return null != this.resize ? "none" != this.resize.style.display : !1
-};
-mxWindow.prototype.setResizable = function(a) {
-  a ? null == this.resize ? (this.resize = document.createElement("img"), this.resize.style.position = "absolute", this.resize.style.bottom = "2px", this.resize.style.right = "2px", this.resize.setAttribute(
-      "src", mxClient.imageBasePath + "/resize.gif"), this.resize.style.cursor = "nw-resize", mxEvent.addGestureListeners(this.resize, mxUtils.bind(this, function(a) {
-      this.activate();
-      var c = mxEvent.getClientX(a),
-        d = mxEvent.getClientY(a),
-        e = this.div.offsetWidth,
-        f = this.div.offsetHeight,
-        g = mxUtils.bind(this,
-          function(a) {
-            var b = mxEvent.getClientX(a) - c,
-              g = mxEvent.getClientY(a) - d;
-            this.setSize(e + b, f + g);
-            this.fireEvent(new mxEventObject(mxEvent.RESIZE, "event", a));
-            mxEvent.consume(a)
-          }),
-        h = mxUtils.bind(this, function(a) {
-          mxEvent.removeGestureListeners(document, null, g, h);
-          this.fireEvent(new mxEventObject(mxEvent.RESIZE_END, "event", a));
-          mxEvent.consume(a)
-        });
-      mxEvent.addGestureListeners(document, null, g, h);
-      this.fireEvent(new mxEventObject(mxEvent.RESIZE_START, "event", a));
-      mxEvent.consume(a)
-    }), null, null), this.div.appendChild(this.resize)) :
-    this.resize.style.display = "inline" : null != this.resize && (this.resize.style.display = "none")
-};
-mxWindow.prototype.setSize = function(a, b) {
-  a = Math.max(this.minimumSize.width, a);
-  b = Math.max(this.minimumSize.height, b);
-  mxClient.IS_IE || (this.div.style.width = a + "px", this.div.style.height = b + "px");
-  this.table.style.width = a + "px";
-  this.table.style.height = b + "px";
-  mxClient.IS_IE || (this.contentWrapper.style.height = this.div.offsetHeight - this.title.offsetHeight - 2 + "px")
-};
-mxWindow.prototype.setMinimizable = function(a) {
-  this.minimize.style.display = a ? "" : "none"
-};
-mxWindow.prototype.getMinimumSize = function() {
-  return new mxRectangle(0, 0, 0, this.title.offsetHeight)
-};
-mxWindow.prototype.installMinimizeHandler = function() {
-  this.minimize = document.createElement("img");
-  this.minimize.setAttribute("src", this.minimizeImage);
-  this.minimize.setAttribute("align", "right");
-  this.minimize.setAttribute("title", "Minimize");
-  this.minimize.style.cursor = "pointer";
-  this.minimize.style.marginRight = "1px";
-  this.minimize.style.display = "none";
-  this.title.appendChild(this.minimize);
-  var a = !1,
-    b = null,
-    c = null,
-    d = mxUtils.bind(this, function(d) {
-      this.activate();
-      if (a) a = !1, this.minimize.setAttribute("src",
-        this.minimizeImage), this.minimize.setAttribute("title", "Minimize"), this.contentWrapper.style.display = "", this.maximize.style.display = b, mxClient.IS_IE || (this.div.style.height =
-        c), this.table.style.height = c, null != this.resize && (this.resize.style.visibility = ""), this.fireEvent(new mxEventObject(mxEvent.NORMALIZE, "event", d));
-      else {
-        a = !0;
-        this.minimize.setAttribute("src", this.normalizeImage);
-        this.minimize.setAttribute("title", "Normalize");
-        this.contentWrapper.style.display = "none";
-        b = this.maximize.style.display;
-        this.maximize.style.display = "none";
-        c = this.table.style.height;
-        var f = this.getMinimumSize();
-        0 < f.height && (mxClient.IS_IE || (this.div.style.height = f.height + "px"), this.table.style.height = f.height + "px");
-        0 < f.width && (mxClient.IS_IE || (this.div.style.width = f.width + "px"), this.table.style.width = f.width + "px");
-        null != this.resize && (this.resize.style.visibility = "hidden");
-        this.fireEvent(new mxEventObject(mxEvent.MINIMIZE, "event", d))
-      }
-      mxEvent.consume(d)
-    });
-  mxEvent.addListener(this.minimize, "mousedown", d);
-  mxClient.IS_TOUCH &&
-    mxEvent.addListener(this.minimize, "touchstart", d)
-};
-mxWindow.prototype.setMaximizable = function(a) {
-  this.maximize.style.display = a ? "" : "none"
-};
-mxWindow.prototype.installMaximizeHandler = function() {
-  this.maximize = document.createElement("img");
-  this.maximize.setAttribute("src", this.maximizeImage);
-  this.maximize.setAttribute("align", "right");
-  this.maximize.setAttribute("title", "Maximize");
-  this.maximize.style.cursor = "default";
-  this.maximize.style.marginLeft = "1px";
-  this.maximize.style.cursor = "pointer";
-  this.maximize.style.display = "none";
-  this.title.appendChild(this.maximize);
-  var a = !1,
-    b = null,
-    c = null,
-    d = null,
-    e = null,
-    f = mxUtils.bind(this, function(f) {
-      this.activate();
-      if ("none" != this.maximize.style.display) {
-        if (a) {
-          a = !1;
-          this.maximize.setAttribute("src", this.maximizeImage);
-          this.maximize.setAttribute("title", "Maximize");
-          this.contentWrapper.style.display = "";
-          this.minimize.style.visibility = "";
-          this.div.style.left = b + "px";
-          this.div.style.top = c + "px";
-          if (!mxClient.IS_IE && (this.div.style.height = d, this.div.style.width = e, h = mxUtils.getCurrentStyle(this.contentWrapper), "auto" == h.overflow || null != this.resize)) this.contentWrapper
-            .style.height = this.div.offsetHeight - this.title.offsetHeight -
-            2 + "px";
-          this.table.style.height = d;
-          this.table.style.width = e;
-          null != this.resize && (this.resize.style.visibility = "");
-          this.fireEvent(new mxEventObject(mxEvent.NORMALIZE, "event", f))
-        } else {
-          a = !0;
-          this.maximize.setAttribute("src", this.normalizeImage);
-          this.maximize.setAttribute("title", "Normalize");
-          this.contentWrapper.style.display = "";
-          this.minimize.style.visibility = "hidden";
-          b = parseInt(this.div.style.left);
-          c = parseInt(this.div.style.top);
-          d = this.table.style.height;
-          e = this.table.style.width;
-          this.div.style.left = "0px";
-          this.div.style.top = "0px";
-          mxClient.IS_IE || (this.div.style.height = document.body.clientHeight - 2 + "px", this.div.style.width = document.body.clientWidth - 2 + "px");
-          this.table.style.width = document.body.clientWidth - 2 + "px";
-          this.table.style.height = document.body.clientHeight - 2 + "px";
-          null != this.resize && (this.resize.style.visibility = "hidden");
-          if (!mxClient.IS_IE) {
-            var h = mxUtils.getCurrentStyle(this.contentWrapper);
-            if ("auto" == h.overflow || null != this.resize) this.contentWrapper.style.height = this.div.offsetHeight - this.title.offsetHeight -
-              2 + "px"
-          }
-          this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE, "event", f))
-        }
-        mxEvent.consume(f)
-      }
-    });
-  mxEvent.addGestureListeners(this.maximize, f);
-  mxEvent.addListener(this.title, "dblclick", f)
-};
-mxWindow.prototype.installMoveHandler = function() {
-  this.title.style.cursor = "move";
-  mxEvent.addGestureListeners(this.title, mxUtils.bind(this, function(a) {
-    var b = mxEvent.getClientX(a),
-      c = mxEvent.getClientY(a),
-      d = this.getX(),
-      e = this.getY(),
-      f = mxUtils.bind(this, function(a) {
-        var f = mxEvent.getClientX(a) - b,
-          g = mxEvent.getClientY(a) - c;
-        this.setLocation(d + f, e + g);
-        this.fireEvent(new mxEventObject(mxEvent.MOVE, "event", a));
-        mxEvent.consume(a)
-      }),
-      g = mxUtils.bind(this, function(a) {
-        mxEvent.removeGestureListeners(document, null, f,
-          g);
-        this.fireEvent(new mxEventObject(mxEvent.MOVE_END, "event", a));
-        mxEvent.consume(a)
-      });
-    mxEvent.addGestureListeners(document, null, f, g);
-    this.fireEvent(new mxEventObject(mxEvent.MOVE_START, "event", a));
-    mxEvent.consume(a)
-  }))
-};
-mxWindow.prototype.setLocation = function(a, b) {
-  this.div.style.left = a + "px";
-  this.div.style.top = b + "px"
-};
-mxWindow.prototype.getX = function() {
-  return parseInt(this.div.style.left)
-};
-mxWindow.prototype.getY = function() {
-  return parseInt(this.div.style.top)
-};
-mxWindow.prototype.installCloseHandler = function() {
-  this.closeImg = document.createElement("img");
-  this.closeImg.setAttribute("src", this.closeImage);
-  this.closeImg.setAttribute("align", "right");
-  this.closeImg.setAttribute("title", "Close");
-  this.closeImg.style.marginLeft = "2px";
-  this.closeImg.style.cursor = "pointer";
-  this.closeImg.style.display = "none";
-  this.title.insertBefore(this.closeImg, this.title.firstChild);
-  mxEvent.addGestureListeners(this.closeImg, mxUtils.bind(this, function(a) {
-    this.fireEvent(new mxEventObject(mxEvent.CLOSE,
-      "event", a));
-    this.destroyOnClose ? this.destroy() : this.setVisible(!1);
-    mxEvent.consume(a)
-  }))
-};
-mxWindow.prototype.setImage = function(a) {
-  this.image = document.createElement("img");
-  this.image.setAttribute("src", a);
-  this.image.setAttribute("align", "left");
-  this.image.style.marginRight = "4px";
-  this.image.style.marginLeft = "0px";
-  this.image.style.marginTop = "-2px";
-  this.title.insertBefore(this.image, this.title.firstChild)
-};
-mxWindow.prototype.setClosable = function(a) {
-  this.closeImg.style.display = a ? "" : "none"
-};
-mxWindow.prototype.isVisible = function() {
-  return null != this.div ? "hidden" != this.div.style.visibility : !1
-};
-mxWindow.prototype.setVisible = function(a) {
-  null != this.div && this.isVisible() != a && (a ? this.show() : this.hide())
-};
-mxWindow.prototype.show = function() {
-  this.div.style.visibility = "";
-  this.activate();
-  var a = mxUtils.getCurrentStyle(this.contentWrapper);
-  if (!mxClient.IS_IE && ("auto" == a.overflow || null != this.resize)) this.contentWrapper.style.height = this.div.offsetHeight - this.title.offsetHeight - 2 + "px";
-  this.fireEvent(new mxEventObject(mxEvent.SHOW))
-};
-mxWindow.prototype.hide = function() {
-  this.div.style.visibility = "hidden";
-  this.fireEvent(new mxEventObject(mxEvent.HIDE))
-};
-mxWindow.prototype.destroy = function() {
-  this.fireEvent(new mxEventObject(mxEvent.DESTROY));
-  null != this.div && (mxEvent.release(this.div), this.div.parentNode.removeChild(this.div), this.div = null);
-  this.contentWrapper = this.content = this.title = null
-};
-
-function mxForm(a) {
-  this.table = document.createElement("table");
-  this.table.className = a;
-  this.body = document.createElement("tbody");
-  this.table.appendChild(this.body)
-}
-mxForm.prototype.table = null;
-mxForm.prototype.body = !1;
-mxForm.prototype.getTable = function() {
-  return this.table
-};
-mxForm.prototype.addButtons = function(a, b) {
-  var c = document.createElement("tr"),
-    d = document.createElement("td");
-  c.appendChild(d);
-  var d = document.createElement("td"),
-    e = document.createElement("button");
-  mxUtils.write(e, mxResources.get("ok") || "OK");
-  d.appendChild(e);
-  mxEvent.addListener(e, "click", function() {
-    a()
-  });
-  e = document.createElement("button");
-  mxUtils.write(e, mxResources.get("cancel") || "Cancel");
-  d.appendChild(e);
-  mxEvent.addListener(e, "click", function() {
-    b()
-  });
-  c.appendChild(d);
-  this.body.appendChild(c)
-};
-mxForm.prototype.addText = function(a, b) {
-  var c = document.createElement("input");
-  c.setAttribute("type", "text");
-  c.value = b;
-  return this.addField(a, c)
-};
-mxForm.prototype.addCheckbox = function(a, b) {
-  var c = document.createElement("input");
-  c.setAttribute("type", "checkbox");
-  this.addField(a, c);
-  b && (c.checked = !0);
-  return c
-};
-mxForm.prototype.addTextarea = function(a, b, c) {
-  var d = document.createElement("textarea");
-  mxClient.IS_NS && c--;
-  d.setAttribute("rows", c || 2);
-  d.value = b;
-  return this.addField(a, d)
-};
-mxForm.prototype.addCombo = function(a, b, c) {
-  var d = document.createElement("select");
-  null != c && d.setAttribute("size", c);
-  b && d.setAttribute("multiple", "true");
-  return this.addField(a, d)
-};
-mxForm.prototype.addOption = function(a, b, c, d) {
-  var e = document.createElement("option");
-  mxUtils.writeln(e, b);
-  e.setAttribute("value", c);
-  d && e.setAttribute("selected", d);
-  a.appendChild(e)
-};
-mxForm.prototype.addField = function(a, b) {
-  var c = document.createElement("tr"),
-    d = document.createElement("td");
-  mxUtils.write(d, a);
-  c.appendChild(d);
-  d = document.createElement("td");
-  d.appendChild(b);
-  c.appendChild(d);
-  this.body.appendChild(c);
-  return b
-};
-
-function mxImage(a, b, c) {
-  this.src = a;
-  this.width = b;
-  this.height = c
-}
-mxImage.prototype.src = null;
-mxImage.prototype.width = null;
-mxImage.prototype.height = null;
-
-function mxDivResizer(a, b) {
-  if ("div" == a.nodeName.toLowerCase()) {
-    null == b && (b = window);
-    this.div = a;
-    var c = mxUtils.getCurrentStyle(a);
-    null != c && (this.resizeWidth = "auto" == c.width, this.resizeHeight = "auto" == c.height);
-    mxEvent.addListener(b, "resize", mxUtils.bind(this, function(a) {
-      this.handlingResize || (this.handlingResize = !0, this.resize(), this.handlingResize = !1)
-    }));
-    this.resize()
-  }
-}
-mxDivResizer.prototype.resizeWidth = !0;
-mxDivResizer.prototype.resizeHeight = !0;
-mxDivResizer.prototype.handlingResize = !1;
-mxDivResizer.prototype.resize = function() {
-  var a = this.getDocumentWidth(),
-    b = this.getDocumentHeight(),
-    c = parseInt(this.div.style.left),
-    d = parseInt(this.div.style.right),
-    e = parseInt(this.div.style.top),
-    f = parseInt(this.div.style.bottom);
-  this.resizeWidth && (!isNaN(c) && !isNaN(d) && 0 <= c && 0 <= d && 0 < a - d - c) && (this.div.style.width = a - d - c + "px");
-  this.resizeHeight && (!isNaN(e) && !isNaN(f) && 0 <= e && 0 <= f && 0 < b - e - f) && (this.div.style.height = b - e - f + "px")
-};
-mxDivResizer.prototype.getDocumentWidth = function() {
-  return document.body.clientWidth
-};
-mxDivResizer.prototype.getDocumentHeight = function() {
-  return document.body.clientHeight
-};
-
-function mxDragSource(a, b) {
-  this.element = a;
-  this.dropHandler = b;
-  mxEvent.addGestureListeners(a, mxUtils.bind(this, this.mouseDown))
-}
-mxDragSource.prototype.element = null;
-mxDragSource.prototype.dropHandler = null;
-mxDragSource.prototype.dragOffset = null;
-mxDragSource.prototype.dragElement = null;
-mxDragSource.prototype.previewElement = null;
-mxDragSource.prototype.enabled = !0;
-mxDragSource.prototype.currentGraph = null;
-mxDragSource.prototype.currentDropTarget = null;
-mxDragSource.prototype.currentPoint = null;
-mxDragSource.prototype.currentGuide = null;
-mxDragSource.prototype.currentHighlight = null;
-mxDragSource.prototype.autoscroll = !0;
-mxDragSource.prototype.guidesEnabled = !0;
-mxDragSource.prototype.gridEnabled = !0;
-mxDragSource.prototype.highlightDropTargets = !0;
-mxDragSource.prototype.dragElementZIndex = 100;
-mxDragSource.prototype.dragElementOpacity = 70;
-mxDragSource.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxDragSource.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxDragSource.prototype.isGuidesEnabled = function() {
-  return this.guidesEnabled
-};
-mxDragSource.prototype.setGuidesEnabled = function(a) {
-  this.guidesEnabled = a
-};
-mxDragSource.prototype.isGridEnabled = function() {
-  return this.gridEnabled
-};
-mxDragSource.prototype.setGridEnabled = function(a) {
-  this.gridEnabled = a
-};
-mxDragSource.prototype.getGraphForEvent = function(a) {
-  return null
-};
-mxDragSource.prototype.getDropTarget = function(a, b, c) {
-  return a.getCellAt(b, c)
-};
-mxDragSource.prototype.createDragElement = function(a) {
-  return this.element.cloneNode(!0)
-};
-mxDragSource.prototype.createPreviewElement = function(a) {
-  return null
-};
-mxDragSource.prototype.mouseDown = function(a) {
-  this.enabled && (!mxEvent.isConsumed(a) && null == this.mouseMoveHandler) && (this.startDrag(a), this.mouseMoveHandler = mxUtils.bind(this, this.mouseMove), this.mouseUpHandler = mxUtils.bind(
-    this, this.mouseUp), mxEvent.addGestureListeners(document, null, this.mouseMoveHandler, this.mouseUpHandler), mxEvent.consume(a, !0, !1))
-};
-mxDragSource.prototype.startDrag = function(a) {
-  this.dragElement = this.createDragElement(a);
-  this.dragElement.style.position = "absolute";
-  this.dragElement.style.zIndex = this.dragElementZIndex;
-  mxUtils.setOpacity(this.dragElement, this.dragElementOpacity)
-};
-mxDragSource.prototype.stopDrag = function(a) {
-  null != this.dragElement && (null != this.dragElement.parentNode && this.dragElement.parentNode.removeChild(this.dragElement), this.dragElement = null)
-};
-mxDragSource.prototype.graphContainsEvent = function(a, b) {
-  var c = mxEvent.getClientX(b),
-    d = mxEvent.getClientY(b),
-    e = mxUtils.getOffset(a.container),
-    f = mxUtils.getScrollOrigin();
-  return c >= e.x - f.x && d >= e.y - f.y && c <= e.x - f.x + a.container.offsetWidth && d <= e.y - f.y + a.container.offsetHeight
-};
-mxDragSource.prototype.mouseMove = function(a) {
-  var b = this.getGraphForEvent(a);
-  null != b && !this.graphContainsEvent(b, a) && (b = null);
-  b != this.currentGraph && (null != this.currentGraph && this.dragExit(this.currentGraph), this.currentGraph = b, null != this.currentGraph && this.dragEnter(this.currentGraph));
-  null != this.currentGraph && this.dragOver(this.currentGraph, a);
-  if (null != this.dragElement && (null == this.previewElement || "visible" != this.previewElement.style.visibility)) {
-    var b = mxEvent.getClientX(a),
-      c = mxEvent.getClientY(a);
-    null == this.dragElement.parentNode && document.body.appendChild(this.dragElement);
-    this.dragElement.style.visibility = "visible";
-    null != this.dragOffset && (b += this.dragOffset.x, c += this.dragOffset.y);
-    b += document.body.scrollLeft || document.documentElement.scrollLeft;
-    c += document.body.scrollTop || document.documentElement.scrollTop;
-    this.dragElement.style.left = b + "px";
-    this.dragElement.style.top = c + "px"
-  } else null != this.dragElement && (this.dragElement.style.visibility = "hidden");
-  mxEvent.consume(a)
-};
-mxDragSource.prototype.mouseUp = function(a) {
-  if (null != this.currentGraph) {
-    if (null != this.currentPoint && (null == this.previewElement || "hidden" != this.previewElement.style.visibility)) {
-      var b = this.currentGraph.view.scale,
-        c = this.currentGraph.view.translate;
-      this.drop(this.currentGraph, a, this.currentDropTarget, this.currentPoint.x / b - c.x, this.currentPoint.y / b - c.y)
-    }
-    this.dragExit(this.currentGraph)
-  }
-  this.stopDrag(a);
-  mxEvent.removeGestureListeners(document, null, this.mouseMoveHandler, this.mouseUpHandler);
-  this.currentGraph =
-    this.mouseUpHandler = this.mouseMoveHandler = null;
-  mxEvent.consume(a)
-};
-mxDragSource.prototype.dragEnter = function(a) {
-  a.isMouseDown = !0;
-  this.previewElement = this.createPreviewElement(a);
-  this.isGuidesEnabled() && null != this.previewElement && (this.currentGuide = new mxGuide(a, a.graphHandler.getGuideStates()));
-  this.highlightDropTargets && (this.currentHighlight = new mxCellHighlight(a, mxConstants.DROP_TARGET_COLOR))
-};
-mxDragSource.prototype.dragExit = function(a) {
-  this.currentPoint = this.currentDropTarget = null;
-  a.isMouseDown = !1;
-  null != this.previewElement && (null != this.previewElement.parentNode && this.previewElement.parentNode.removeChild(this.previewElement), this.previewElement = null);
-  null != this.currentGuide && (this.currentGuide.destroy(), this.currentGuide = null);
-  null != this.currentHighlight && (this.currentHighlight.destroy(), this.currentHighlight = null)
-};
-mxDragSource.prototype.dragOver = function(a, b) {
-  var c = mxUtils.getOffset(a.container),
-    d = mxUtils.getScrollOrigin(a.container),
-    e = mxEvent.getClientX(b) - c.x + d.x,
-    c = mxEvent.getClientY(b) - c.y + d.y;
-  a.autoScroll && (null == this.autoscroll || this.autoscroll) && a.scrollPointToVisible(e, c, a.autoExtend);
-  null != this.currentHighlight && a.isDropEnabled() && (this.currentDropTarget = this.getDropTarget(a, e, c), d = a.getView().getState(this.currentDropTarget), this.currentHighlight.highlight(d));
-  if (null != this.previewElement) {
-    null == this.previewElement.parentNode &&
-      (a.container.appendChild(this.previewElement), this.previewElement.style.zIndex = "3", this.previewElement.style.position = "absolute");
-    var d = this.isGridEnabled() && a.isGridEnabledEvent(b),
-      f = !0;
-    if (null != this.currentGuide && this.currentGuide.isEnabledForEvent(b)) var f = parseInt(this.previewElement.style.width),
-      g = parseInt(this.previewElement.style.height),
-      f = new mxRectangle(0, 0, f, g),
-      c = new mxPoint(e, c),
-      c = this.currentGuide.move(f, c, d),
-      f = !1,
-      e = c.x,
-      c = c.y;
-    else if (d) var d = a.view.scale,
-      g = a.view.translate,
-      h = a.gridSize /
-      2,
-      e = (a.snap(e / d - g.x - h) + g.x) * d,
-      c = (a.snap(c / d - g.y - h) + g.y) * d;
-    null != this.currentGuide && f && this.currentGuide.hide();
-    null != this.previewOffset && (e += this.previewOffset.x, c += this.previewOffset.y);
-    this.previewElement.style.left = Math.round(e) + "px";
-    this.previewElement.style.top = Math.round(c) + "px";
-    this.previewElement.style.visibility = "visible"
-  }
-  this.currentPoint = new mxPoint(e, c)
-};
-mxDragSource.prototype.drop = function(a, b, c, d, e) {
-  this.dropHandler(a, b, c, d, e);
-  a.container.focus()
-};
-
-function mxToolbar(a) {
-  this.container = a
-}
-mxToolbar.prototype = new mxEventSource;
-mxToolbar.prototype.constructor = mxToolbar;
-mxToolbar.prototype.container = null;
-mxToolbar.prototype.enabled = !0;
-mxToolbar.prototype.noReset = !1;
-mxToolbar.prototype.updateDefaultMode = !0;
-mxToolbar.prototype.addItem = function(a, b, c, d, e, f) {
-  var g = document.createElement(null != b ? "img" : "button"),
-    h = e || (null != f ? "mxToolbarMode" : "mxToolbarItem");
-  g.className = h;
-  g.setAttribute("src", b);
-  null != a && (null != b ? g.setAttribute("title", a) : mxUtils.write(g, a));
-  this.container.appendChild(g);
-  null != c && (mxEvent.addListener(g, "click", c), mxClient.IS_TOUCH && mxEvent.addListener(g, "touchend", c));
-  a = mxUtils.bind(this, function(a) {
-    null != d ? g.setAttribute("src", b) : g.style.backgroundColor = ""
-  });
-  mxEvent.addGestureListeners(g,
-    mxUtils.bind(this, function(a) {
-      null != d ? g.setAttribute("src", d) : g.style.backgroundColor = "gray";
-      if (null != f) {
-        null == this.menu && (this.menu = new mxPopupMenu, this.menu.init());
-        var b = this.currentImg;
-        this.menu.isMenuShowing() && this.menu.hideMenu();
-        b != g && (this.currentImg = g, this.menu.factoryMethod = f, b = new mxPoint(g.offsetLeft, g.offsetTop + g.offsetHeight), this.menu.popup(b.x, b.y, null, a), this.menu.isMenuShowing() &&
-          (g.className = h + "Selected", this.menu.hideMenu = function() {
-            mxPopupMenu.prototype.hideMenu.apply(this);
-            g.className = h;
-            this.currentImg = null
-          }))
-      }
-    }), null, a);
-  mxEvent.addListener(g, "mouseout", a);
-  return g
-};
-mxToolbar.prototype.addCombo = function(a) {
-  var b = document.createElement("div");
-  b.style.display = "inline";
-  b.className = "mxToolbarComboContainer";
-  var c = document.createElement("select");
-  c.className = a || "mxToolbarCombo";
-  b.appendChild(c);
-  this.container.appendChild(b);
-  return c
-};
-mxToolbar.prototype.addActionCombo = function(a, b) {
-  var c = document.createElement("select");
-  c.className = b || "mxToolbarCombo";
-  this.addOption(c, a, null);
-  mxEvent.addListener(c, "change", function(a) {
-    var b = c.options[c.selectedIndex];
-    c.selectedIndex = 0;
-    null != b.funct && b.funct(a)
-  });
-  this.container.appendChild(c);
-  return c
-};
-mxToolbar.prototype.addOption = function(a, b, c) {
-  var d = document.createElement("option");
-  mxUtils.writeln(d, b);
-  "function" == typeof c ? d.funct = c : d.setAttribute("value", c);
-  a.appendChild(d);
-  return d
-};
-mxToolbar.prototype.addSwitchMode = function(a, b, c, d, e) {
-  var f = document.createElement("img");
-  f.initialClassName = e || "mxToolbarMode";
-  f.className = f.initialClassName;
-  f.setAttribute("src", b);
-  f.altIcon = d;
-  null != a && f.setAttribute("title", a);
-  mxEvent.addListener(f, "click", mxUtils.bind(this, function(a) {
-    a = this.selectedMode.altIcon;
-    null != a ? (this.selectedMode.altIcon = this.selectedMode.getAttribute("src"), this.selectedMode.setAttribute("src", a)) : this.selectedMode.className = this.selectedMode.initialClassName;
-    this.updateDefaultMode &&
-      (this.defaultMode = f);
-    this.selectedMode = f;
-    a = f.altIcon;
-    null != a ? (f.altIcon = f.getAttribute("src"), f.setAttribute("src", a)) : f.className = f.initialClassName + "Selected";
-    this.fireEvent(new mxEventObject(mxEvent.SELECT));
-    c()
-  }));
-  this.container.appendChild(f);
-  null == this.defaultMode && (this.defaultMode = f, this.selectMode(f), c());
-  return f
-};
-mxToolbar.prototype.addMode = function(a, b, c, d, e, f) {
-  f = null != f ? f : !0;
-  var g = document.createElement(null != b ? "img" : "button");
-  g.initialClassName = e || "mxToolbarMode";
-  g.className = g.initialClassName;
-  g.setAttribute("src", b);
-  g.altIcon = d;
-  null != a && g.setAttribute("title", a);
-  this.enabled && f && (mxEvent.addListener(g, "click", mxUtils.bind(this, function(a) {
-      this.selectMode(g, c);
-      this.noReset = !1
-    })), mxEvent.addListener(g, "dblclick", mxUtils.bind(this, function(a) {
-      this.selectMode(g, c);
-      this.noReset = !0
-    })), null == this.defaultMode &&
-    (this.defaultMode = g, this.defaultFunction = c, this.selectMode(g, c)));
-  this.container.appendChild(g);
-  return g
-};
-mxToolbar.prototype.selectMode = function(a, b) {
-  if (this.selectedMode != a) {
-    if (null != this.selectedMode) {
-      var c = this.selectedMode.altIcon;
-      null != c ? (this.selectedMode.altIcon = this.selectedMode.getAttribute("src"), this.selectedMode.setAttribute("src", c)) : this.selectedMode.className = this.selectedMode.initialClassName
-    }
-    this.selectedMode = a;
-    c = this.selectedMode.altIcon;
-    null != c ? (this.selectedMode.altIcon = this.selectedMode.getAttribute("src"), this.selectedMode.setAttribute("src", c)) : this.selectedMode.className = this.selectedMode.initialClassName +
-      "Selected";
-    this.fireEvent(new mxEventObject(mxEvent.SELECT, "function", b))
-  }
-};
-mxToolbar.prototype.resetMode = function(a) {
-  (a || !this.noReset) && this.selectedMode != this.defaultMode && this.selectMode(this.defaultMode, this.defaultFunction)
-};
-mxToolbar.prototype.addSeparator = function(a) {
-  return this.addItem(null, a, null)
-};
-mxToolbar.prototype.addBreak = function() {
-  mxUtils.br(this.container)
-};
-mxToolbar.prototype.addLine = function() {
-  var a = document.createElement("hr");
-  a.style.marginRight = "6px";
-  a.setAttribute("size", "1");
-  this.container.appendChild(a)
-};
-mxToolbar.prototype.destroy = function() {
-  mxEvent.release(this.container);
-  this.selectedMode = this.defaultFunction = this.defaultMode = this.container = null;
-  null != this.menu && this.menu.destroy()
-};
-
-function mxSession(a, b, c, d) {
-  this.model = a;
-  this.urlInit = b;
-  this.urlPoll = c;
-  this.urlNotify = d;
-  null != a && (this.codec = new mxCodec, this.codec.lookup = function(b) {
-    return a.getCell(b)
-  });
-  a.addListener(mxEvent.NOTIFY, mxUtils.bind(this, function(a, b) {
-    var c = b.getProperty("edit");
-    (null != c && this.debug || this.connected && !this.suspended) && this.notify("\x3cedit\x3e" + this.encodeChanges(c.changes, c.undone) + "\x3c/edit\x3e")
-  }))
-}
-mxSession.prototype = new mxEventSource;
-mxSession.prototype.constructor = mxSession;
-mxSession.prototype.model = null;
-mxSession.prototype.urlInit = null;
-mxSession.prototype.urlPoll = null;
-mxSession.prototype.urlNotify = null;
-mxSession.prototype.codec = null;
-mxSession.prototype.linefeed = "\x26#xa;";
-mxSession.prototype.escapePostData = !0;
-mxSession.prototype.significantRemoteChanges = !0;
-mxSession.prototype.sent = 0;
-mxSession.prototype.received = 0;
-mxSession.prototype.debug = !1;
-mxSession.prototype.connected = !1;
-mxSession.prototype.suspended = !1;
-mxSession.prototype.polling = !1;
-mxSession.prototype.start = function() {
-  this.debug ? (this.connected = !0, this.fireEvent(new mxEventObject(mxEvent.CONNECT))) : this.connected || this.get(this.urlInit, mxUtils.bind(this, function(a) {
-    this.connected = !0;
-    this.fireEvent(new mxEventObject(mxEvent.CONNECT));
-    this.poll()
-  }))
-};
-mxSession.prototype.suspend = function() {
-  this.connected && !this.suspended && (this.suspended = !0, this.fireEvent(new mxEventObject(mxEvent.SUSPEND)))
-};
-mxSession.prototype.resume = function(a, b, c) {
-  this.connected && this.suspended && (this.suspended = !1, this.fireEvent(new mxEventObject(mxEvent.RESUME)), this.polling || this.poll())
-};
-mxSession.prototype.stop = function(a) {
-  this.connected && (this.connected = !1);
-  this.fireEvent(new mxEventObject(mxEvent.DISCONNECT, "reason", a))
-};
-mxSession.prototype.poll = function() {
-  this.connected && !this.suspended && null != this.urlPoll ? (this.polling = !0, this.get(this.urlPoll, mxUtils.bind(this, function() {
-    this.poll()
-  }))) : this.polling = !1
-};
-mxSession.prototype.notify = function(a, b, c) {
-  null != a && 0 < a.length && (null != this.urlNotify && (this.debug ? (mxLog.show(), mxLog.debug("mxSession.notify: " + this.urlNotify + " xml\x3d" + a)) : (a = "\x3cmessage\x3e\x3cdelta\x3e" + a +
-    "\x3c/delta\x3e\x3c/message\x3e", this.escapePostData && (a = encodeURIComponent(a)), mxUtils.post(this.urlNotify, "xml\x3d" + a, b, c))), this.sent += a.length, this.fireEvent(new mxEventObject(
-    mxEvent.NOTIFY, "url", this.urlNotify, "xml", a)))
-};
-mxSession.prototype.get = function(a, b, c) {
-  if ("undefined" != typeof mxUtils) {
-    var d = mxUtils.bind(this, function(a) {
-      null != c ? c(a) : this.stop(a)
-    });
-    mxUtils.get(a, mxUtils.bind(this, function(c) {
-        if ("undefined" != typeof mxUtils)
-          if (c.isReady() && 404 != c.getStatus()) {
-            if (this.received += c.getText().length, this.fireEvent(new mxEventObject(mxEvent.GET, "url", a, "request", c)), this.isValidResponse(c)) {
-              if (0 < c.getText().length) {
-                var f = c.getDocumentElement();
-                null == f ? d("Invalid response: " + c.getText()) : this.receive(f)
-              }
-              null != b && b(c)
-            }
-          } else d("Response not ready")
-      }),
-      function(a) {
-        d("Transmission error")
-      })
-  }
-};
-mxSession.prototype.isValidResponse = function(a) {
-  return 0 > a.getText().indexOf("\x3c?php")
-};
-mxSession.prototype.encodeChanges = function(a, b) {
-  for (var c = "", d = b ? -1 : 1, e = b ? a.length - 1 : 0; 0 <= e && e < a.length; e += d) var f = this.codec.encode(a[e]),
-    c = c + mxUtils.getXml(f, this.linefeed);
-  return c
-};
-mxSession.prototype.receive = function(a) {
-  if (null != a && a.nodeType == mxConstants.NODETYPE_ELEMENT) {
-    var b = a.getAttribute("namespace");
-    null != b && (this.model.prefix = b + "-");
-    for (b = a.firstChild; null != b;) {
-      var c = b.nodeName.toLowerCase();
-      "state" == c ? this.processState(b) : "delta" == c && this.processDelta(b);
-      b = b.nextSibling
-    }
-    this.fireEvent(new mxEventObject(mxEvent.RECEIVE, "node", a))
-  }
-};
-mxSession.prototype.processState = function(a) {
-  (new mxCodec(a.ownerDocument)).decode(a.firstChild, this.model)
-};
-mxSession.prototype.processDelta = function(a) {
-  for (a = a.firstChild; null != a;) "edit" == a.nodeName && this.processEdit(a), a = a.nextSibling
-};
-mxSession.prototype.processEdit = function(a) {
-  a = this.decodeChanges(a);
-  if (0 < a.length) {
-    var b = this.createUndoableEdit(a);
-    this.model.fireEvent(new mxEventObject(mxEvent.CHANGE, "edit", b, "changes", a));
-    this.model.fireEvent(new mxEventObject(mxEvent.UNDO, "edit", b));
-    this.fireEvent(new mxEventObject(mxEvent.FIRED, "edit", b))
-  }
-};
-mxSession.prototype.createUndoableEdit = function(a) {
-  var b = new mxUndoableEdit(this.model, this.significantRemoteChanges);
-  b.changes = a;
-  b.notify = function() {
-    b.source.fireEvent(new mxEventObject(mxEvent.CHANGE, "edit", b, "changes", b.changes));
-    b.source.fireEvent(new mxEventObject(mxEvent.NOTIFY, "edit", b, "changes", b.changes))
-  };
-  return b
-};
-mxSession.prototype.decodeChanges = function(a) {
-  this.codec.document = a.ownerDocument;
-  var b = [];
-  for (a = a.firstChild; null != a;) {
-    var c = this.decodeChange(a);
-    null != c && b.push(c);
-    a = a.nextSibling
-  }
-  return b
-};
-mxSession.prototype.decodeChange = function(a) {
-  var b = null;
-  a.nodeType == mxConstants.NODETYPE_ELEMENT && (b = "mxRootChange" == a.nodeName ? (new mxCodec(a.ownerDocument)).decode(a) : this.codec.decode(a), null != b && (b.model = this.model, b.execute(),
-    "mxChildChange" == a.nodeName && null == b.parent && this.cellRemoved(b.child)));
-  return b
-};
-mxSession.prototype.cellRemoved = function(a, b) {
-  this.codec.putObject(a.getId(), a);
-  for (var c = this.model.getChildCount(a), d = 0; d < c; d++) this.cellRemoved(this.model.getChildAt(a, d))
-};
-
-function mxUndoableEdit(a, b) {
-  this.source = a;
-  this.changes = [];
-  this.significant = null != b ? b : !0
-}
-mxUndoableEdit.prototype.source = null;
-mxUndoableEdit.prototype.changes = null;
-mxUndoableEdit.prototype.significant = null;
-mxUndoableEdit.prototype.undone = !1;
-mxUndoableEdit.prototype.redone = !1;
-mxUndoableEdit.prototype.isEmpty = function() {
-  return 0 == this.changes.length
-};
-mxUndoableEdit.prototype.isSignificant = function() {
-  return this.significant
-};
-mxUndoableEdit.prototype.add = function(a) {
-  this.changes.push(a)
-};
-mxUndoableEdit.prototype.notify = function() {};
-mxUndoableEdit.prototype.die = function() {};
-mxUndoableEdit.prototype.undo = function() {
-  if (!this.undone) {
-    this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));
-    for (var a = this.changes.length - 1; 0 <= a; a--) {
-      var b = this.changes[a];
-      null != b.execute ? b.execute() : null != b.undo && b.undo();
-      this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED, "change", b))
-    }
-    this.undone = !0;
-    this.redone = !1;
-    this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))
-  }
-  this.notify()
-};
-mxUndoableEdit.prototype.redo = function() {
-  if (!this.redone) {
-    this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));
-    for (var a = this.changes.length, b = 0; b < a; b++) {
-      var c = this.changes[b];
-      null != c.execute ? c.execute() : null != c.redo && c.redo();
-      this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED, "change", c))
-    }
-    this.undone = !1;
-    this.redone = !0;
-    this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))
-  }
-  this.notify()
-};
-
-function mxUndoManager(a) {
-  this.size = null != a ? a : 100;
-  this.clear()
-}
-mxUndoManager.prototype = new mxEventSource;
-mxUndoManager.prototype.constructor = mxUndoManager;
-mxUndoManager.prototype.size = null;
-mxUndoManager.prototype.history = null;
-mxUndoManager.prototype.indexOfNextAdd = 0;
-mxUndoManager.prototype.isEmpty = function() {
-  return 0 == this.history.length
-};
-mxUndoManager.prototype.clear = function() {
-  this.history = [];
-  this.indexOfNextAdd = 0;
-  this.fireEvent(new mxEventObject(mxEvent.CLEAR))
-};
-mxUndoManager.prototype.canUndo = function() {
-  return 0 < this.indexOfNextAdd
-};
-mxUndoManager.prototype.undo = function() {
-  for (; 0 < this.indexOfNextAdd;) {
-    var a = this.history[--this.indexOfNextAdd];
-    a.undo();
-    if (a.isSignificant()) {
-      this.fireEvent(new mxEventObject(mxEvent.UNDO, "edit", a));
-      break
-    }
-  }
-};
-mxUndoManager.prototype.canRedo = function() {
-  return this.indexOfNextAdd < this.history.length
-};
-mxUndoManager.prototype.redo = function() {
-  for (var a = this.history.length; this.indexOfNextAdd < a;) {
-    var b = this.history[this.indexOfNextAdd++];
-    b.redo();
-    if (b.isSignificant()) {
-      this.fireEvent(new mxEventObject(mxEvent.REDO, "edit", b));
-      break
-    }
-  }
-};
-mxUndoManager.prototype.undoableEditHappened = function(a) {
-  this.trim();
-  0 < this.size && this.size == this.history.length && this.history.shift();
-  this.history.push(a);
-  this.indexOfNextAdd = this.history.length;
-  this.fireEvent(new mxEventObject(mxEvent.ADD, "edit", a))
-};
-mxUndoManager.prototype.trim = function() {
-  if (this.history.length > this.indexOfNextAdd)
-    for (var a = this.history.splice(this.indexOfNextAdd, this.history.length - this.indexOfNextAdd), b = 0; b < a.length; b++) a[b].die()
-};
-var mxUrlConverter = function(a) {
-  var b = !0,
-    c = null,
-    d = null;
-  return {
-    isEnabled: function() {
-      return b
-    },
-    setEnabled: function(a) {
-      b = a
-    },
-    getBaseUrl: function() {
-      return c
-    },
-    setBaseUrl: function(a) {
-      c = a
-    },
-    getBaseDomain: function() {
-      return c
-    },
-    setBaseDomain: function(a) {
-      c = a
-    },
-    isRelativeUrl: function(a) {
-      return "http://" != a.substring(0, 7) && "https://" != a.substring(0, 8) && "data:image" != a.substring(0, 10)
-    },
-    convert: function(a) {
-      if (b && this.isRelativeUrl(a)) {
-        if (null == c) {
-          d = location.protocol + "//" + location.host;
-          c = d + location.pathname;
-          var f = c.lastIndexOf("/");
-          0 < f && (c = c.substring(0, f + 1))
-        }
-        a = "/" == a.charAt(0) ? d + a : c + a
-      }
-      return a
-    }
-  }
-};
-
-function mxPanningManager(a) {
-  this.thread = null;
-  this.active = !1;
-  this.dy = this.dx = this.t0y = this.t0x = this.tdy = this.tdx = 0;
-  this.scrollbars = !1;
-  this.scrollTop = this.scrollLeft = 0;
-  this.mouseListener = {
-    mouseDown: function(a, b) {},
-    mouseMove: function(a, b) {},
-    mouseUp: mxUtils.bind(this, function(a, b) {
-      this.active && this.stop()
-    })
-  };
-  a.addMouseListener(this.mouseListener);
-  mxEvent.addListener(document, "mouseup", mxUtils.bind(this, function() {
-    this.active && this.stop()
-  }));
-  var b = mxUtils.bind(this, function() {
-    this.scrollbars = mxUtils.hasScrollbars(a.container);
-    this.scrollLeft = a.container.scrollLeft;
-    this.scrollTop = a.container.scrollTop;
-    return window.setInterval(mxUtils.bind(this, function() {
-      this.tdx -= this.dx;
-      this.tdy -= this.dy;
-      if (this.scrollbars) {
-        var b = -a.container.scrollLeft - Math.ceil(this.dx),
-          d = -a.container.scrollTop - Math.ceil(this.dy);
-        a.panGraph(b, d);
-        a.panDx = this.scrollLeft - a.container.scrollLeft;
-        a.panDy = this.scrollTop - a.container.scrollTop;
-        a.fireEvent(new mxEventObject(mxEvent.PAN))
-      } else a.panGraph(this.getDx(), this.getDy())
-    }), this.delay)
-  });
-  this.isActive =
-    function() {
-      return active
-    };
-  this.getDx = function() {
-    return Math.round(this.tdx)
-  };
-  this.getDy = function() {
-    return Math.round(this.tdy)
-  };
-  this.start = function() {
-    this.t0x = a.view.translate.x;
-    this.t0y = a.view.translate.y;
-    this.active = !0
-  };
-  this.panTo = function(c, d, e, f) {
-    this.active || this.start();
-    this.scrollLeft = a.container.scrollLeft;
-    this.scrollTop = a.container.scrollTop;
-    f = null != f ? f : 0;
-    var g = a.container;
-    this.dx = c + (null != e ? e : 0) - g.scrollLeft - g.clientWidth;
-    0 > this.dx && Math.abs(this.dx) < this.border ? this.dx = this.border + this.dx :
-      this.dx = this.handleMouseOut ? Math.max(this.dx, 0) : 0;
-    0 == this.dx && (this.dx = c - g.scrollLeft, this.dx = 0 < this.dx && this.dx < this.border ? this.dx - this.border : this.handleMouseOut ? Math.min(0, this.dx) : 0);
-    this.dy = d + f - g.scrollTop - g.clientHeight;
-    0 > this.dy && Math.abs(this.dy) < this.border ? this.dy = this.border + this.dy : this.dy = this.handleMouseOut ? Math.max(this.dy, 0) : 0;
-    0 == this.dy && (this.dy = d - g.scrollTop, this.dy = 0 < this.dy && this.dy < this.border ? this.dy - this.border : this.handleMouseOut ? Math.min(0, this.dy) : 0);
-    0 != this.dx || 0 != this.dy ?
-      (this.dx *= this.damper, this.dy *= this.damper, null == this.thread && (this.thread = b())) : null != this.thread && (window.clearInterval(this.thread), this.thread = null)
-  };
-  this.stop = function() {
-    if (this.active)
-      if (this.active = !1, null != this.thread && (window.clearInterval(this.thread), this.thread = null), this.tdy = this.tdx = 0, this.scrollbars) a.panDx = 0, a.panDy = 0, a.fireEvent(new mxEventObject(
-        mxEvent.PAN));
-      else {
-        var b = a.panDx,
-          d = a.panDy;
-        if (0 != b || 0 != d) a.panGraph(0, 0), a.view.setTranslate(this.t0x + b / a.view.scale, this.t0y + d / a.view.scale)
-      }
-  };
-  this.destroy = function() {
-    a.removeMouseListener(this.mouseListener)
-  }
-}
-mxPanningManager.prototype.damper = 1 / 6;
-mxPanningManager.prototype.delay = 10;
-mxPanningManager.prototype.handleMouseOut = !0;
-mxPanningManager.prototype.border = 0;
-
-function mxPopupMenu(a) {
-  this.factoryMethod = a;
-  null != a && this.init()
-}
-mxPopupMenu.prototype = new mxEventSource;
-mxPopupMenu.prototype.constructor = mxPopupMenu;
-mxPopupMenu.prototype.submenuImage = mxClient.imageBasePath + "/submenu.gif";
-mxPopupMenu.prototype.zIndex = 10006;
-mxPopupMenu.prototype.factoryMethod = null;
-mxPopupMenu.prototype.useLeftButtonForPopup = !1;
-mxPopupMenu.prototype.enabled = !0;
-mxPopupMenu.prototype.itemCount = 0;
-mxPopupMenu.prototype.autoExpand = !1;
-mxPopupMenu.prototype.smartSeparators = !1;
-mxPopupMenu.prototype.labels = !0;
-mxPopupMenu.prototype.init = function() {
-  this.table = document.createElement("table");
-  this.table.className = "mxPopupMenu";
-  this.tbody = document.createElement("tbody");
-  this.table.appendChild(this.tbody);
-  this.div = document.createElement("div");
-  this.div.className = "mxPopupMenu";
-  this.div.style.display = "inline";
-  this.div.style.zIndex = this.zIndex;
-  this.div.appendChild(this.table);
-  mxEvent.disableContextMenu(this.div)
-};
-mxPopupMenu.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxPopupMenu.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxPopupMenu.prototype.isPopupTrigger = function(a) {
-  return a.isPopupTrigger() || this.useLeftButtonForPopup && mxEvent.isLeftMouseButton(a.getEvent())
-};
-mxPopupMenu.prototype.addItem = function(a, b, c, d, e, f) {
-  d = d || this;
-  this.itemCount++;
-  d.willAddSeparator && (d.containsItems && this.addSeparator(d, !0), d.willAddSeparator = !1);
-  d.containsItems = !0;
-  var g = document.createElement("tr");
-  g.className = "mxPopupMenuItem";
-  var h = document.createElement("td");
-  h.className = "mxPopupMenuIcon";
-  null != b ? (e = document.createElement("img"), e.src = b, h.appendChild(e)) : null != e && (b = document.createElement("div"), b.className = e, h.appendChild(b));
-  g.appendChild(h);
-  this.labels && (h = document.createElement("td"),
-    h.className = "mxPopupMenuItem" + (null != f && !f ? " disabled" : ""), mxUtils.write(h, a), h.align = "left", g.appendChild(h), a = document.createElement("td"), a.className =
-    "mxPopupMenuItem" + (null != f && !f ? " disabled" : ""), a.style.paddingRight = "6px", a.style.textAlign = "right", g.appendChild(a), null == d.div && this.createSubmenu(d));
-  d.tbody.appendChild(g);
-  if (null == f || f) mxEvent.addGestureListeners(g, mxUtils.bind(this, function(a) {
-    this.eventReceiver = g;
-    d.activeRow != g && d.activeRow != d && (null != d.activeRow && null != d.activeRow.div.parentNode &&
-      this.hideSubmenu(d), null != g.div && (this.showSubmenu(d, g), d.activeRow = g));
-    mxEvent.consume(a)
-  }), mxUtils.bind(this, function(a) {
-    d.activeRow != g && d.activeRow != d && (null != d.activeRow && null != d.activeRow.div.parentNode && this.hideSubmenu(d), this.autoExpand && null != g.div && (this.showSubmenu(d, g), d.activeRow =
-      g));
-    g.className = "mxPopupMenuItemHover"
-  }), mxUtils.bind(this, function(a) {
-    this.eventReceiver == g && (d.activeRow != g && this.hideMenu(), null != c && c(a));
-    this.eventReceiver = null;
-    mxEvent.consume(a)
-  })), mxEvent.addListener(g,
-    "mouseout", mxUtils.bind(this, function(a) {
-      g.className = "mxPopupMenuItem"
-    }));
-  return g
-};
-mxPopupMenu.prototype.createSubmenu = function(a) {
-  a.table = document.createElement("table");
-  a.table.className = "mxPopupMenu";
-  a.tbody = document.createElement("tbody");
-  a.table.appendChild(a.tbody);
-  a.div = document.createElement("div");
-  a.div.className = "mxPopupMenu";
-  a.div.style.position = "absolute";
-  a.div.style.display = "inline";
-  a.div.style.zIndex = this.zIndex;
-  a.div.appendChild(a.table);
-  var b = document.createElement("img");
-  b.setAttribute("src", this.submenuImage);
-  td = a.firstChild.nextSibling.nextSibling;
-  td.appendChild(b)
-};
-mxPopupMenu.prototype.showSubmenu = function(a, b) {
-  if (null != b.div) {
-    b.div.style.left = a.div.offsetLeft + b.offsetLeft + b.offsetWidth - 1 + "px";
-    b.div.style.top = a.div.offsetTop + b.offsetTop + "px";
-    document.body.appendChild(b.div);
-    var c = parseInt(b.div.offsetLeft),
-      d = parseInt(b.div.offsetWidth),
-      e = document.body,
-      f = document.documentElement;
-    if (c + d > (e.scrollLeft || f.scrollLeft) + (e.clientWidth || f.clientWidth)) b.div.style.left = a.div.offsetLeft - d + (mxClient.IS_IE ? 6 : -6) + "px";
-    mxUtils.fit(b.div)
-  }
-};
-mxPopupMenu.prototype.addSeparator = function(a, b) {
-  a = a || this;
-  if (this.smartSeparators && !b) a.willAddSeparator = !0;
-  else if (null != a.tbody) {
-    a.willAddSeparator = !1;
-    var c = document.createElement("tr"),
-      d = document.createElement("td");
-    d.className = "mxPopupMenuIcon";
-    d.style.padding = "0 0 0 0px";
-    c.appendChild(d);
-    d = document.createElement("td");
-    d.style.padding = "0 0 0 0px";
-    d.setAttribute("colSpan", "2");
-    var e = document.createElement("hr");
-    e.setAttribute("size", "1");
-    d.appendChild(e);
-    c.appendChild(d);
-    a.tbody.appendChild(c)
-  }
-};
-mxPopupMenu.prototype.popup = function(a, b, c, d) {
-  if (null != this.div && null != this.tbody && null != this.factoryMethod) {
-    this.div.style.left = a + "px";
-    for (this.div.style.top = b + "px"; null != this.tbody.firstChild;) mxEvent.release(this.tbody.firstChild), this.tbody.removeChild(this.tbody.firstChild);
-    this.itemCount = 0;
-    this.factoryMethod(this, c, d);
-    0 < this.itemCount && (this.showMenu(), this.fireEvent(new mxEventObject(mxEvent.SHOW)))
-  }
-};
-mxPopupMenu.prototype.isMenuShowing = function() {
-  return null != this.div && this.div.parentNode == document.body
-};
-mxPopupMenu.prototype.showMenu = function() {
-  9 <= document.documentMode && (this.div.style.filter = "none");
-  document.body.appendChild(this.div);
-  mxUtils.fit(this.div)
-};
-mxPopupMenu.prototype.hideMenu = function() {
-  null != this.div && (null != this.div.parentNode && this.div.parentNode.removeChild(this.div), this.hideSubmenu(this), this.containsItems = !1)
-};
-mxPopupMenu.prototype.hideSubmenu = function(a) {
-  null != a.activeRow && (this.hideSubmenu(a.activeRow), null != a.activeRow.div.parentNode && a.activeRow.div.parentNode.removeChild(a.activeRow.div), a.activeRow = null)
-};
-mxPopupMenu.prototype.destroy = function() {
-  null != this.div && (mxEvent.release(this.div), null != this.div.parentNode && this.div.parentNode.removeChild(this.div), this.div = null)
-};
-
-function mxAutoSaveManager(a) {
-  this.changeHandler = mxUtils.bind(this, function(a, c) {
-    this.isEnabled() && this.graphModelChanged(c.getProperty("edit").changes)
-  });
-  this.setGraph(a)
-}
-mxAutoSaveManager.prototype = new mxEventSource;
-mxAutoSaveManager.prototype.constructor = mxAutoSaveManager;
-mxAutoSaveManager.prototype.graph = null;
-mxAutoSaveManager.prototype.autoSaveDelay = 10;
-mxAutoSaveManager.prototype.autoSaveThrottle = 2;
-mxAutoSaveManager.prototype.autoSaveThreshold = 5;
-mxAutoSaveManager.prototype.ignoredChanges = 0;
-mxAutoSaveManager.prototype.lastSnapshot = 0;
-mxAutoSaveManager.prototype.enabled = !0;
-mxAutoSaveManager.prototype.changeHandler = null;
-mxAutoSaveManager.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxAutoSaveManager.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxAutoSaveManager.prototype.setGraph = function(a) {
-  null != this.graph && this.graph.getModel().removeListener(this.changeHandler);
-  this.graph = a;
-  null != this.graph && this.graph.getModel().addListener(mxEvent.CHANGE, this.changeHandler)
-};
-mxAutoSaveManager.prototype.save = function() {};
-mxAutoSaveManager.prototype.graphModelChanged = function(a) {
-  a = ((new Date).getTime() - this.lastSnapshot) / 1E3;
-  a > this.autoSaveDelay || this.ignoredChanges >= this.autoSaveThreshold && a > this.autoSaveThrottle ? (this.save(), this.reset()) : this.ignoredChanges++
-};
-mxAutoSaveManager.prototype.reset = function() {
-  this.lastSnapshot = (new Date).getTime();
-  this.ignoredChanges = 0
-};
-mxAutoSaveManager.prototype.destroy = function() {
-  this.setGraph(null)
-};
-
-function mxAnimation(a) {
-  this.delay = null != a ? a : 20
-}
-mxAnimation.prototype = new mxEventSource;
-mxAnimation.prototype.constructor = mxAnimation;
-mxAnimation.prototype.delay = null;
-mxAnimation.prototype.thread = null;
-mxAnimation.prototype.startAnimation = function() {
-  null == this.thread && (this.thread = window.setInterval(mxUtils.bind(this, this.updateAnimation), this.delay))
-};
-mxAnimation.prototype.updateAnimation = function() {
-  this.fireEvent(new mxEventObject(mxEvent.EXECUTE))
-};
-mxAnimation.prototype.stopAnimation = function() {
-  null != this.thread && (window.clearInterval(this.thread), this.thread = null, this.fireEvent(new mxEventObject(mxEvent.DONE)))
-};
-
-function mxMorphing(a, b, c, d) {
-  mxAnimation.call(this, d);
-  this.graph = a;
-  this.steps = null != b ? b : 6;
-  this.ease = null != c ? c : 1.5
-}
-mxMorphing.prototype = new mxAnimation;
-mxMorphing.prototype.constructor = mxMorphing;
-mxMorphing.prototype.graph = null;
-mxMorphing.prototype.steps = null;
-mxMorphing.prototype.step = 0;
-mxMorphing.prototype.ease = null;
-mxMorphing.prototype.cells = null;
-mxMorphing.prototype.updateAnimation = function() {
-  var a = new mxCellStatePreview(this.graph);
-  if (null != this.cells)
-    for (var b = 0; b < this.cells.length; b++) this.animateCell(cells[b], a, !1);
-  else this.animateCell(this.graph.getModel().getRoot(), a, !0);
-  this.show(a);
-  (a.isEmpty() || this.step++ >= this.steps) && this.stopAnimation()
-};
-mxMorphing.prototype.show = function(a) {
-  a.show()
-};
-mxMorphing.prototype.animateCell = function(a, b, c) {
-  var d = this.graph.getView().getState(a),
-    e = null;
-  if (null != d && (e = this.getDelta(d), this.graph.getModel().isVertex(a) && (0 != e.x || 0 != e.y))) {
-    var f = this.graph.view.getTranslate(),
-      g = this.graph.view.getScale();
-    e.x += f.x * g;
-    e.y += f.y * g;
-    b.moveState(d, -e.x / this.ease, -e.y / this.ease)
-  }
-  if (c && !this.stopRecursion(d, e)) {
-    d = this.graph.getModel().getChildCount(a);
-    for (e = 0; e < d; e++) this.animateCell(this.graph.getModel().getChildAt(a, e), b, c)
-  }
-};
-mxMorphing.prototype.stopRecursion = function(a, b) {
-  return null != b && (0 != b.x || 0 != b.y)
-};
-mxMorphing.prototype.getDelta = function(a) {
-  var b = this.getOriginForCell(a.cell),
-    c = this.graph.getView().getTranslate(),
-    d = this.graph.getView().getScale();
-  a = new mxPoint(a.x / d - c.x, a.y / d - c.y);
-  return new mxPoint((b.x - a.x) * d, (b.y - a.y) * d)
-};
-mxMorphing.prototype.getOriginForCell = function(a) {
-  var b = null;
-  null != a && (b = this.getOriginForCell(this.graph.getModel().getParent(a)), a = this.graph.getCellGeometry(a), null != a && (b.x += a.x, b.y += a.y));
-  null == b && (b = this.graph.view.getTranslate(), b = new mxPoint(-b.x, -b.y));
-  return b
-};
-
-function mxImageBundle(a) {
-  this.images = [];
-  this.alt = null != a ? a : !1
-}
-mxImageBundle.prototype.images = null;
-mxImageBundle.prototype.images = null;
-mxImageBundle.prototype.putImage = function(a, b, c) {
-  this.images[a] = {
-    value: b,
-    fallback: c
-  }
-};
-mxImageBundle.prototype.getImage = function(a) {
-  var b = null;
-  null != a && (a = this.images[a], null != a && (b = this.alt ? a.fallback : a.value));
-  return b
-};
-
-function mxImageExport() {}
-mxImageExport.prototype.includeOverlays = !1;
-mxImageExport.prototype.drawState = function(a, b) {
-  null != a && (this.visitStatesRecursive(a, b, this.drawCellState), this.includeOverlays && this.visitStatesRecursive(a, b, this.drawOverlays))
-};
-mxImageExport.prototype.visitStatesRecursive = function(a, b, c) {
-  if (null != a) {
-    c(a, b);
-    for (var d = a.view.graph, e = d.model.getChildCount(a.cell), f = 0; f < e; f++) {
-      var g = d.view.getState(d.model.getChildAt(a.cell, f));
-      this.visitStatesRecursive(g, b, c)
-    }
-  }
-};
-mxImageExport.prototype.drawCellState = function(a, b) {
-  a.shape instanceof mxShape && (b.save(), a.shape.paint(b), b.restore());
-  null != a.text && (b.save(), a.text.paint(b), b.restore())
-};
-mxImageExport.prototype.drawOverlays = function(a, b) {
-  null != a.overlays && a.overlays.visit(function(a, d) {
-    d instanceof mxShape && d.paint(b)
-  })
-};
-
-function mxAbstractCanvas2D() {
-  this.converter = this.createUrlConverter();
-  this.reset()
-}
-mxAbstractCanvas2D.prototype.state = null;
-mxAbstractCanvas2D.prototype.states = null;
-mxAbstractCanvas2D.prototype.path = null;
-mxAbstractCanvas2D.prototype.rotateHtml = !0;
-mxAbstractCanvas2D.prototype.lastX = 0;
-mxAbstractCanvas2D.prototype.lastY = 0;
-mxAbstractCanvas2D.prototype.moveOp = "M";
-mxAbstractCanvas2D.prototype.lineOp = "L";
-mxAbstractCanvas2D.prototype.quadOp = "Q";
-mxAbstractCanvas2D.prototype.curveOp = "C";
-mxAbstractCanvas2D.prototype.closeOp = "Z";
-mxAbstractCanvas2D.prototype.pointerEvents = !1;
-mxAbstractCanvas2D.prototype.createUrlConverter = function() {
-  return new mxUrlConverter
-};
-mxAbstractCanvas2D.prototype.reset = function() {
-  this.state = this.createState();
-  this.states = []
-};
-mxAbstractCanvas2D.prototype.createState = function() {
-  return {
-    dx: 0,
-    dy: 0,
-    scale: 1,
-    alpha: 1,
-    fillColor: null,
-    fillAlpha: 1,
-    gradientColor: null,
-    gradientAlpha: 1,
-    gradientDirection: null,
-    strokeColor: null,
-    strokeWidth: 1,
-    dashed: !1,
-    dashPattern: "3 3",
-    lineCap: "flat",
-    lineJoin: "miter",
-    miterLimit: 10,
-    fontColor: "#000000",
-    fontBackgroundColor: null,
-    fontBorderColor: null,
-    fontSize: mxConstants.DEFAULT_FONTSIZE,
-    fontFamily: mxConstants.DEFAULT_FONTFAMILY,
-    fontStyle: 0,
-    shadow: !1,
-    shadowColor: mxConstants.SHADOWCOLOR,
-    shadowAlpha: mxConstants.SHADOW_OPACITY,
-    shadowDx: mxConstants.SHADOW_OFFSET_X,
-    shadowDy: mxConstants.SHADOW_OFFSET_Y,
-    rotation: 0,
-    rotationCx: 0,
-    rotationCy: 0
-  }
-};
-mxAbstractCanvas2D.prototype.format = function(a) {
-  return Math.round(parseFloat(a))
-};
-mxAbstractCanvas2D.prototype.addOp = function() {
-  if (null != this.path && (this.path.push(arguments[0]), 2 < arguments.length))
-    for (var a = this.state, b = 2; b < arguments.length; b += 2) this.lastX = arguments[b - 1], this.lastY = arguments[b], this.path.push(this.format((this.lastX + a.dx) * a.scale)), this.path.push(
-      this.format((this.lastY + a.dy) * a.scale))
-};
-mxAbstractCanvas2D.prototype.rotatePoint = function(a, b, c, d, e) {
-  c *= Math.PI / 180;
-  return mxUtils.getRotatedPoint(new mxPoint(a, b), Math.cos(c), Math.sin(c), new mxPoint(d, e))
-};
-mxAbstractCanvas2D.prototype.save = function() {
-  this.states.push(this.state);
-  this.state = mxUtils.clone(this.state)
-};
-mxAbstractCanvas2D.prototype.restore = function() {
-  this.state = this.states.pop()
-};
-mxAbstractCanvas2D.prototype.scale = function(a) {
-  this.state.scale *= a;
-  this.state.strokeWidth *= a
-};
-mxAbstractCanvas2D.prototype.translate = function(a, b) {
-  this.state.dx += a;
-  this.state.dy += b
-};
-mxAbstractCanvas2D.prototype.setAlpha = function(a) {
-  this.state.alpha = a
-};
-mxAbstractCanvas2D.prototype.setFillColor = function(a) {
-  a == mxConstants.NONE && (a = null);
-  this.state.fillColor = a;
-  this.state.gradientColor = null
-};
-mxAbstractCanvas2D.prototype.setGradient = function(a, b, c, d, e, f, g, h, k) {
-  c = this.state;
-  c.fillColor = a;
-  c.fillAlpha = null != h ? h : 1;
-  c.gradientColor = b;
-  c.gradientAlpha = null != k ? k : 1;
-  c.gradientDirection = g
-};
-mxAbstractCanvas2D.prototype.setStrokeColor = function(a) {
-  a == mxConstants.NONE && (a = null);
-  this.state.strokeColor = a
-};
-mxAbstractCanvas2D.prototype.setStrokeWidth = function(a) {
-  this.state.strokeWidth = a
-};
-mxAbstractCanvas2D.prototype.setDashed = function(a) {
-  this.state.dashed = a
-};
-mxAbstractCanvas2D.prototype.setDashPattern = function(a) {
-  this.state.dashPattern = a
-};
-mxAbstractCanvas2D.prototype.setLineCap = function(a) {
-  this.state.lineCap = a
-};
-mxAbstractCanvas2D.prototype.setLineJoin = function(a) {
-  this.state.lineJoin = a
-};
-mxAbstractCanvas2D.prototype.setMiterLimit = function(a) {
-  this.state.miterLimit = a
-};
-mxAbstractCanvas2D.prototype.setFontColor = function(a) {
-  a == mxConstants.NONE && (a = null);
-  this.state.fontColor = a
-};
-mxAbstractCanvas2D.prototype.setFontBackgroundColor = function(a) {
-  a == mxConstants.NONE && (a = null);
-  this.state.fontBackgroundColor = a
-};
-mxAbstractCanvas2D.prototype.setFontBorderColor = function(a) {
-  a == mxConstants.NONE && (a = null);
-  this.state.fontBorderColor = a
-};
-mxAbstractCanvas2D.prototype.setFontSize = function(a) {
-  this.state.fontSize = a
-};
-mxAbstractCanvas2D.prototype.setFontFamily = function(a) {
-  this.state.fontFamily = a
-};
-mxAbstractCanvas2D.prototype.setFontStyle = function(a) {
-  null == a && (a = 0);
-  this.state.fontStyle = a
-};
-mxAbstractCanvas2D.prototype.setShadow = function(a) {
-  this.state.shadow = a
-};
-mxAbstractCanvas2D.prototype.setShadowColor = function(a) {
-  a == mxConstants.NONE && (a = null);
-  this.state.shadowColor = a
-};
-mxAbstractCanvas2D.prototype.setShadowAlpha = function(a) {
-  this.state.shadowAlpha = a
-};
-mxAbstractCanvas2D.prototype.setShadowOffset = function(a, b) {
-  this.state.shadowDx = a;
-  this.state.shadowDy = b
-};
-mxAbstractCanvas2D.prototype.begin = function() {
-  this.lastY = this.lastX = 0;
-  this.path = []
-};
-mxAbstractCanvas2D.prototype.moveTo = function(a, b) {
-  this.addOp(this.moveOp, a, b)
-};
-mxAbstractCanvas2D.prototype.lineTo = function(a, b) {
-  this.addOp(this.lineOp, a, b)
-};
-mxAbstractCanvas2D.prototype.quadTo = function(a, b, c, d) {
-  this.addOp(this.quadOp, a, b, c, d)
-};
-mxAbstractCanvas2D.prototype.curveTo = function(a, b, c, d, e, f) {
-  this.addOp(this.curveOp, a, b, c, d, e, f)
-};
-mxAbstractCanvas2D.prototype.arcTo = function(a, b, c, d, e, f, g) {
-  a = mxUtils.arcToCurves(this.lastX, this.lastY, a, b, c, d, e, f, g);
-  for (b = 0; b < a.length; b += 6) this.curveTo(a[b], a[b + 1], a[b + 2], a[b + 3], a[b + 4], a[b + 5])
-};
-mxAbstractCanvas2D.prototype.close = function(a, b, c, d, e, f) {
-  this.addOp(this.closeOp)
-};
-mxAbstractCanvas2D.prototype.end = function() {};
-
-function mxXmlCanvas2D(a) {
-  mxAbstractCanvas2D.call(this);
-  this.root = a;
-  this.writeDefaults()
-}
-mxUtils.extend(mxXmlCanvas2D, mxAbstractCanvas2D);
-mxXmlCanvas2D.prototype.textEnabled = !0;
-mxXmlCanvas2D.prototype.compressed = !0;
-mxXmlCanvas2D.prototype.writeDefaults = function() {
-  var a;
-  a = this.createElement("fontfamily");
-  a.setAttribute("family", mxConstants.DEFAULT_FONTFAMILY);
-  this.root.appendChild(a);
-  a = this.createElement("fontsize");
-  a.setAttribute("size", mxConstants.DEFAULT_FONTSIZE);
-  this.root.appendChild(a);
-  a = this.createElement("shadowcolor");
-  a.setAttribute("color", mxConstants.SHADOWCOLOR);
-  this.root.appendChild(a);
-  a = this.createElement("shadowalpha");
-  a.setAttribute("alpha", mxConstants.SHADOW_OPACITY);
-  this.root.appendChild(a);
-  a = this.createElement("shadowoffset");
-  a.setAttribute("dx", mxConstants.SHADOW_OFFSET_X);
-  a.setAttribute("dy", mxConstants.SHADOW_OFFSET_Y);
-  this.root.appendChild(a)
-};
-mxXmlCanvas2D.prototype.format = function(a) {
-  return parseFloat(parseFloat(a).toFixed(2))
-};
-mxXmlCanvas2D.prototype.createElement = function(a) {
-  return this.root.ownerDocument.createElement(a)
-};
-mxXmlCanvas2D.prototype.save = function() {
-  this.compressed && mxAbstractCanvas2D.prototype.save.apply(this, arguments);
-  this.root.appendChild(this.createElement("save"))
-};
-mxXmlCanvas2D.prototype.restore = function() {
-  this.compressed && mxAbstractCanvas2D.prototype.restore.apply(this, arguments);
-  this.root.appendChild(this.createElement("restore"))
-};
-mxXmlCanvas2D.prototype.scale = function(a) {
-  if (this.compressed) {
-    if (this.state.scale == a) return;
-    mxAbstractCanvas2D.prototype.setAlpha.apply(this, arguments)
-  }
-  var b = this.createElement("scale");
-  b.setAttribute("scale", a);
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.translate = function(a, b) {
-  var c = this.createElement("translate");
-  c.setAttribute("dx", this.format(a));
-  c.setAttribute("dy", this.format(b));
-  this.root.appendChild(c)
-};
-mxXmlCanvas2D.prototype.rotate = function(a, b, c, d, e) {
-  var f = this.createElement("rotate");
-  if (0 != a || b || c) f.setAttribute("theta", this.format(a)), f.setAttribute("flipH", b ? "1" : "0"), f.setAttribute("flipV", c ? "1" : "0"), f.setAttribute("cx", this.format(d)), f.setAttribute(
-    "cy", this.format(e)), this.root.appendChild(f)
-};
-mxXmlCanvas2D.prototype.setAlpha = function(a) {
-  if (this.compressed) {
-    if (this.state.alpha == a) return;
-    mxAbstractCanvas2D.prototype.setAlpha.apply(this, arguments)
-  }
-  var b = this.createElement("alpha");
-  b.setAttribute("alpha", this.format(a));
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.setFillColor = function(a) {
-  a == mxConstants.NONE && (a = null);
-  if (this.compressed) {
-    if (this.state.fillColor == a) return;
-    mxAbstractCanvas2D.prototype.setFillColor.apply(this, arguments)
-  }
-  var b = this.createElement("fillcolor");
-  b.setAttribute("color", null != a ? a : mxConstants.NONE);
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.setGradient = function(a, b, c, d, e, f, g, h, k) {
-  if (null != a && null != b) {
-    mxAbstractCanvas2D.prototype.setGradient.apply(this, arguments);
-    var l = this.createElement("gradient");
-    l.setAttribute("c1", a);
-    l.setAttribute("c2", b);
-    l.setAttribute("x", this.format(c));
-    l.setAttribute("y", this.format(d));
-    l.setAttribute("w", this.format(e));
-    l.setAttribute("h", this.format(f));
-    null != g && l.setAttribute("direction", g);
-    null != h && l.setAttribute("alpha1", h);
-    null != k && l.setAttribute("alpha2", k);
-    this.root.appendChild(l)
-  }
-};
-mxXmlCanvas2D.prototype.setStrokeColor = function(a) {
-  a == mxConstants.NONE && (a = null);
-  if (this.compressed) {
-    if (this.state.strokeColor == a) return;
-    mxAbstractCanvas2D.prototype.setStrokeColor.apply(this, arguments)
-  }
-  var b = this.createElement("strokecolor");
-  b.setAttribute("color", null != a ? a : mxConstants.NONE);
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.setStrokeWidth = function(a) {
-  if (this.compressed) {
-    if (this.state.strokeWidth == a) return;
-    mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this, arguments)
-  }
-  var b = this.createElement("strokewidth");
-  b.setAttribute("width", this.format(a));
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.setDashed = function(a) {
-  if (this.compressed) {
-    if (this.state.dashed == a) return;
-    mxAbstractCanvas2D.prototype.setDashed.apply(this, arguments)
-  }
-  var b = this.createElement("dashed");
-  b.setAttribute("dashed", a ? "1" : "0");
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.setDashPattern = function(a) {
-  if (this.compressed) {
-    if (this.state.dashPattern == a) return;
-    mxAbstractCanvas2D.prototype.setDashPattern.apply(this, arguments)
-  }
-  var b = this.createElement("dashpattern");
-  b.setAttribute("pattern", a);
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.setLineCap = function(a) {
-  if (this.compressed) {
-    if (this.state.lineCap == a) return;
-    mxAbstractCanvas2D.prototype.setLineCap.apply(this, arguments)
-  }
-  var b = this.createElement("linecap");
-  b.setAttribute("cap", a);
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.setLineJoin = function(a) {
-  if (this.compressed) {
-    if (this.state.lineJoin == a) return;
-    mxAbstractCanvas2D.prototype.setLineJoin.apply(this, arguments)
-  }
-  var b = this.createElement("linejoin");
-  b.setAttribute("join", a);
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.setMiterLimit = function(a) {
-  if (this.compressed) {
-    if (this.state.miterLimit == a) return;
-    mxAbstractCanvas2D.prototype.setMiterLimit.apply(this, arguments)
-  }
-  var b = this.createElement("miterlimit");
-  b.setAttribute("limit", a);
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.setFontColor = function(a) {
-  if (this.textEnabled) {
-    a == mxConstants.NONE && (a = null);
-    if (this.compressed) {
-      if (this.state.fontColor == a) return;
-      mxAbstractCanvas2D.prototype.setFontColor.apply(this, arguments)
-    }
-    var b = this.createElement("fontcolor");
-    b.setAttribute("color", null != a ? a : mxConstants.NONE);
-    this.root.appendChild(b)
-  }
-};
-mxXmlCanvas2D.prototype.setFontBackgroundColor = function(a) {
-  if (this.textEnabled) {
-    a == mxConstants.NONE && (a = null);
-    if (this.compressed) {
-      if (this.state.fontBackgroundColor == a) return;
-      mxAbstractCanvas2D.prototype.setFontBackgroundColor.apply(this, arguments)
-    }
-    var b = this.createElement("fontbackgroundcolor");
-    b.setAttribute("color", null != a ? a : mxConstants.NONE);
-    this.root.appendChild(b)
-  }
-};
-mxXmlCanvas2D.prototype.setFontBorderColor = function(a) {
-  if (this.textEnabled) {
-    a == mxConstants.NONE && (a = null);
-    if (this.compressed) {
-      if (this.state.fontBorderColor == a) return;
-      mxAbstractCanvas2D.prototype.setFontBorderColor.apply(this, arguments)
-    }
-    var b = this.createElement("fontbordercolor");
-    b.setAttribute("color", null != a ? a : mxConstants.NONE);
-    this.root.appendChild(b)
-  }
-};
-mxXmlCanvas2D.prototype.setFontSize = function(a) {
-  if (this.textEnabled) {
-    if (this.compressed) {
-      if (this.state.fontSize == a) return;
-      mxAbstractCanvas2D.prototype.setFontSize.apply(this, arguments)
-    }
-    var b = this.createElement("fontsize");
-    b.setAttribute("size", a);
-    this.root.appendChild(b)
-  }
-};
-mxXmlCanvas2D.prototype.setFontFamily = function(a) {
-  if (this.textEnabled) {
-    if (this.compressed) {
-      if (this.state.fontFamily == a) return;
-      mxAbstractCanvas2D.prototype.setFontFamily.apply(this, arguments)
-    }
-    var b = this.createElement("fontfamily");
-    b.setAttribute("family", a);
-    this.root.appendChild(b)
-  }
-};
-mxXmlCanvas2D.prototype.setFontStyle = function(a) {
-  if (this.textEnabled) {
-    null == a && (a = 0);
-    if (this.compressed) {
-      if (this.state.fontStyle == a) return;
-      mxAbstractCanvas2D.prototype.setFontStyle.apply(this, arguments)
-    }
-    var b = this.createElement("fontstyle");
-    b.setAttribute("style", a);
-    this.root.appendChild(b)
-  }
-};
-mxXmlCanvas2D.prototype.setShadow = function(a) {
-  if (this.compressed) {
-    if (this.state.shadow == a) return;
-    mxAbstractCanvas2D.prototype.setShadow.apply(this, arguments)
-  }
-  var b = this.createElement("shadow");
-  b.setAttribute("enabled", a ? "1" : "0");
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.setShadowColor = function(a) {
-  if (this.compressed) {
-    a == mxConstants.NONE && (a = null);
-    if (this.state.shadowColor == a) return;
-    mxAbstractCanvas2D.prototype.setShadowColor.apply(this, arguments)
-  }
-  var b = this.createElement("shadowcolor");
-  b.setAttribute("color", null != a ? a : mxConstants.NONE);
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.setShadowAlpha = function(a) {
-  if (this.compressed) {
-    if (this.state.shadowAlpha == a) return;
-    mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this, arguments)
-  }
-  var b = this.createElement("shadowalpha");
-  b.setAttribute("alpha", a);
-  this.root.appendChild(b)
-};
-mxXmlCanvas2D.prototype.setShadowOffset = function(a, b) {
-  if (this.compressed) {
-    if (this.state.shadowDx == a && this.state.shadowDy == b) return;
-    mxAbstractCanvas2D.prototype.setShadowOffset.apply(this, arguments)
-  }
-  var c = this.createElement("shadowoffset");
-  c.setAttribute("dx", a);
-  c.setAttribute("dy", b);
-  this.root.appendChild(c)
-};
-mxXmlCanvas2D.prototype.rect = function(a, b, c, d) {
-  var e = this.createElement("rect");
-  e.setAttribute("x", this.format(a));
-  e.setAttribute("y", this.format(b));
-  e.setAttribute("w", this.format(c));
-  e.setAttribute("h", this.format(d));
-  this.root.appendChild(e)
-};
-mxXmlCanvas2D.prototype.roundrect = function(a, b, c, d, e, f) {
-  var g = this.createElement("roundrect");
-  g.setAttribute("x", this.format(a));
-  g.setAttribute("y", this.format(b));
-  g.setAttribute("w", this.format(c));
-  g.setAttribute("h", this.format(d));
-  g.setAttribute("dx", this.format(e));
-  g.setAttribute("dy", this.format(f));
-  this.root.appendChild(g)
-};
-mxXmlCanvas2D.prototype.ellipse = function(a, b, c, d) {
-  var e = this.createElement("ellipse");
-  e.setAttribute("x", this.format(a));
-  e.setAttribute("y", this.format(b));
-  e.setAttribute("w", this.format(c));
-  e.setAttribute("h", this.format(d));
-  this.root.appendChild(e)
-};
-mxXmlCanvas2D.prototype.image = function(a, b, c, d, e, f, g, h) {
-  e = this.converter.convert(e);
-  var k = this.createElement("image");
-  k.setAttribute("x", this.format(a));
-  k.setAttribute("y", this.format(b));
-  k.setAttribute("w", this.format(c));
-  k.setAttribute("h", this.format(d));
-  k.setAttribute("src", e);
-  k.setAttribute("aspect", f ? "1" : "0");
-  k.setAttribute("flipH", g ? "1" : "0");
-  k.setAttribute("flipV", h ? "1" : "0");
-  this.root.appendChild(k)
-};
-mxXmlCanvas2D.prototype.begin = function() {
-  this.root.appendChild(this.createElement("begin"));
-  this.lastY = this.lastX = 0
-};
-mxXmlCanvas2D.prototype.moveTo = function(a, b) {
-  var c = this.createElement("move");
-  c.setAttribute("x", this.format(a));
-  c.setAttribute("y", this.format(b));
-  this.root.appendChild(c);
-  this.lastX = a;
-  this.lastY = b
-};
-mxXmlCanvas2D.prototype.lineTo = function(a, b) {
-  var c = this.createElement("line");
-  c.setAttribute("x", this.format(a));
-  c.setAttribute("y", this.format(b));
-  this.root.appendChild(c);
-  this.lastX = a;
-  this.lastY = b
-};
-mxXmlCanvas2D.prototype.quadTo = function(a, b, c, d) {
-  var e = this.createElement("quad");
-  e.setAttribute("x1", this.format(a));
-  e.setAttribute("y1", this.format(b));
-  e.setAttribute("x2", this.format(c));
-  e.setAttribute("y2", this.format(d));
-  this.root.appendChild(e);
-  this.lastX = c;
-  this.lastY = d
-};
-mxXmlCanvas2D.prototype.curveTo = function(a, b, c, d, e, f) {
-  var g = this.createElement("curve");
-  g.setAttribute("x1", this.format(a));
-  g.setAttribute("y1", this.format(b));
-  g.setAttribute("x2", this.format(c));
-  g.setAttribute("y2", this.format(d));
-  g.setAttribute("x3", this.format(e));
-  g.setAttribute("y3", this.format(f));
-  this.root.appendChild(g);
-  this.lastX = e;
-  this.lastY = f
-};
-mxXmlCanvas2D.prototype.close = function() {
-  this.root.appendChild(this.createElement("close"))
-};
-mxXmlCanvas2D.prototype.text = function(a, b, c, d, e, f, g, h, k, l, m, n) {
-  if (this.textEnabled && null != e) {
-    mxUtils.isNode(e) && (e = mxUtils.getOuterHtml(e));
-    var p = this.createElement("text");
-    p.setAttribute("x", this.format(a));
-    p.setAttribute("y", this.format(b));
-    p.setAttribute("w", this.format(c));
-    p.setAttribute("h", this.format(d));
-    p.setAttribute("str", e);
-    null != f && p.setAttribute("align", f);
-    null != g && p.setAttribute("valign", g);
-    p.setAttribute("wrap", h ? "1" : "0");
-    null == k && (k = "");
-    p.setAttribute("format", k);
-    null != l && p.setAttribute("fill",
-      l ? "1" : "0");
-    null != m && p.setAttribute("clip", m ? "1" : "0");
-    null != n && p.setAttribute("rotation", n);
-    this.root.appendChild(p)
-  }
-};
-mxXmlCanvas2D.prototype.stroke = function() {
-  this.root.appendChild(this.createElement("stroke"))
-};
-mxXmlCanvas2D.prototype.fill = function() {
-  this.root.appendChild(this.createElement("fill"))
-};
-mxXmlCanvas2D.prototype.fillAndStroke = function() {
-  this.root.appendChild(this.createElement("fillstroke"))
-};
-
-function mxSvgCanvas2D(a, b) {
-  mxAbstractCanvas2D.call(this);
-  this.root = a;
-  this.gradients = [];
-  this.defs = null;
-  this.styleEnabled = null != b ? b : !1;
-  var c = null;
-  if (a.ownerDocument != document)
-    for (c = a; null != c && "svg" != c.nodeName;) c = c.parentNode;
-  null != c && (0 < c.getElementsByTagName("defs").length && (this.defs = c.getElementsByTagName("defs")[0]), null == this.defs && (this.defs = this.createElement("defs"), null != c.firstChild ? c.insertBefore(
-    this.defs, c.firstChild) : c.appendChild(this.defs)), this.styleEnabled && this.defs.appendChild(this.createStyle()))
-}
-mxUtils.extend(mxSvgCanvas2D, mxAbstractCanvas2D);
-mxSvgCanvas2D.prototype.node = null;
-mxSvgCanvas2D.prototype.matchHtmlAlignment = !0;
-mxSvgCanvas2D.prototype.textEnabled = !0;
-mxSvgCanvas2D.prototype.foEnabled = !0;
-mxSvgCanvas2D.prototype.strokeTolerance = 0;
-mxSvgCanvas2D.prototype.refCount = 0;
-mxSvgCanvas2D.prototype.blockImagePointerEvents = !1;
-mxSvgCanvas2D.prototype.reset = function() {
-  mxAbstractCanvas2D.prototype.reset.apply(this, arguments);
-  this.gradients = []
-};
-mxSvgCanvas2D.prototype.createStyle = function(a) {
-  a = this.createElement("style");
-  a.setAttribute("type", "text/css");
-  mxUtils.write(a, "svg{font-family:" + mxConstants.DEFAULT_FONTFAMILY + ";font-size:" + mxConstants.DEFAULT_FONTSIZE + ";fill:none;stroke-miterlimit:10}");
-  return a
-};
-mxSvgCanvas2D.prototype.createElement = function(a, b) {
-  if (null != this.root.ownerDocument.createElementNS) return this.root.ownerDocument.createElementNS(b || mxConstants.NS_SVG, a);
-  var c = this.root.ownerDocument.createElement(a);
-  null != b && c.setAttribute("xmlns", b);
-  return c
-};
-mxSvgCanvas2D.prototype.createGradientId = function(a, b, c, d, e) {
-  "#" == a.charAt(0) && (a = a.substring(1));
-  "#" == b.charAt(0) && (b = b.substring(1));
-  a = a.toLowerCase() + "-" + c;
-  b = b.toLowerCase() + "-" + d;
-  c = null;
-  null == e || e == mxConstants.DIRECTION_SOUTH ? c = "s" : e == mxConstants.DIRECTION_EAST ? c = "e" : (d = a, a = b, b = d, e == mxConstants.DIRECTION_NORTH ? c = "s" : e == mxConstants.DIRECTION_WEST &&
-    (c = "e"));
-  return "mx-gradient-" + a + "-" + b + "-" + c
-};
-mxSvgCanvas2D.prototype.getSvgGradient = function(a, b, c, d, e) {
-  var f = this.createGradientId(a, b, c, d, e),
-    g = this.gradients[f];
-  if (null == g) {
-    var h = this.root.ownerSVGElement,
-      k = 0,
-      l = f + "-" + k;
-    if (null != h)
-      for (g = h.ownerDocument.getElementById(l); null != g && g.ownerSVGElement != h;) l = f + "-" + k++, g = h.ownerDocument.getElementById(l);
-    else l = "id" + ++this.refCount;
-    null == g && (g = this.createSvgGradient(a, b, c, d, e), g.setAttribute("id", l), null != this.defs ? this.defs.appendChild(g) : h.appendChild(g));
-    this.gradients[f] = g
-  }
-  return g.getAttribute("id")
-};
-mxSvgCanvas2D.prototype.createSvgGradient = function(a, b, c, d, e) {
-  var f = this.createElement("linearGradient");
-  f.setAttribute("x1", "0%");
-  f.setAttribute("y1", "0%");
-  f.setAttribute("x2", "0%");
-  f.setAttribute("y2", "0%");
-  null == e || e == mxConstants.DIRECTION_SOUTH ? f.setAttribute("y2", "100%") : e == mxConstants.DIRECTION_EAST ? f.setAttribute("x2", "100%") : e == mxConstants.DIRECTION_NORTH ? f.setAttribute(
-    "y1", "100%") : e == mxConstants.DIRECTION_WEST && f.setAttribute("x1", "100%");
-  c = 1 > c ? ";stop-opacity:" + c : "";
-  e = this.createElement("stop");
-  e.setAttribute("offset", "0%");
-  e.setAttribute("style", "stop-color:" + a + c);
-  f.appendChild(e);
-  c = 1 > d ? ";stop-opacity:" + d : "";
-  e = this.createElement("stop");
-  e.setAttribute("offset", "100%");
-  e.setAttribute("style", "stop-color:" + b + c);
-  f.appendChild(e);
-  return f
-};
-mxSvgCanvas2D.prototype.addNode = function(a, b) {
-  var c = this.node,
-    d = this.state;
-  if (null != c) {
-    if ("path" == c.nodeName)
-      if (null != this.path && 0 < this.path.length) c.setAttribute("d", this.path.join(" "));
-      else return;
-    a && null != d.fillColor ? this.updateFill() : this.styleEnabled || ("ellipse" == c.nodeName && mxClient.IS_NS && !mxClient.IS_GC && !mxClient.IS_SF ? c.setAttribute("fill", "transparent") : c.setAttribute(
-      "fill", "none"), a = !1);
-    b && null != d.strokeColor ? this.updateStroke() : this.styleEnabled || c.setAttribute("stroke", "none");
-    null !=
-      d.transform && 0 < d.transform.length && c.setAttribute("transform", d.transform);
-    d.shadow && this.root.appendChild(this.createShadow(c));
-    0 < this.strokeTolerance && !a && this.root.appendChild(this.createTolerance(c));
-    this.pointerEvents && ("path" != c.nodeName || this.path[this.path.length - 1] == this.closeOp) && c.setAttribute("pointer-events", "all");
-    this.root.appendChild(c)
-  }
-};
-mxSvgCanvas2D.prototype.updateFill = function() {
-  var a = this.state;
-  1 > a.alpha && this.node.setAttribute("fill-opacity", a.alpha);
-  null != a.fillColor && (null != a.gradientColor ? (a = this.getSvgGradient(a.fillColor, a.gradientColor, a.fillAlpha, a.gradientAlpha, a.gradientDirection), this.node.setAttribute("fill", "url(#" +
-    a + ")")) : this.node.setAttribute("fill", a.fillColor.toLowerCase()))
-};
-mxSvgCanvas2D.prototype.updateStroke = function() {
-  var a = this.state;
-  this.node.setAttribute("stroke", a.strokeColor.toLowerCase());
-  1 > a.alpha && this.node.setAttribute("stroke-opacity", a.alpha);
-  var b = Math.max(1, this.format(a.strokeWidth * a.scale));
-  1 != b && this.node.setAttribute("stroke-width", b);
-  "path" == this.node.nodeName && this.updateStrokeAttributes();
-  a.dashed && this.node.setAttribute("stroke-dasharray", this.createDashPattern(b))
-};
-mxSvgCanvas2D.prototype.updateStrokeAttributes = function() {
-  var a = this.state;
-  null != a.lineJoin && "miter" != a.lineJoin && this.node.setAttribute("stroke-linejoin", a.lineJoin);
-  if (null != a.lineCap) {
-    var b = a.lineCap;
-    "flat" == b && (b = "butt");
-    "butt" != b && this.node.setAttribute("stroke-linecap", b)
-  }
-  null != a.miterLimit && (!this.styleEnabled || 10 != a.miterLimit) && this.node.setAttribute("stroke-miterlimit", a.miterLimit)
-};
-mxSvgCanvas2D.prototype.createDashPattern = function(a) {
-  var b = this.state.dashPattern.split(" "),
-    c = [];
-  if (0 < b.length)
-    for (var d = 0; d < b.length; d++) c[d] = Number(b[d]) * a;
-  return c.join(" ")
-};
-mxSvgCanvas2D.prototype.createTolerance = function(a) {
-  a = a.cloneNode(!0);
-  var b = parseFloat(a.getAttribute("stroke-width") || 1) + this.strokeTolerance;
-  a.setAttribute("pointer-events", "stroke");
-  a.setAttribute("visibility", "hidden");
-  a.removeAttribute("stroke-dasharray");
-  a.setAttribute("stroke-width", b);
-  a.setAttribute("fill", "none");
-  a.setAttribute("stroke", mxClient.IS_OP ? "none" : "white");
-  return a
-};
-mxSvgCanvas2D.prototype.createShadow = function(a) {
-  a = a.cloneNode(!0);
-  var b = this.state;
-  "none" != a.getAttribute("fill") && a.setAttribute("fill", b.shadowColor);
-  "none" != a.getAttribute("stroke") && a.setAttribute("stroke", b.shadowColor);
-  a.setAttribute("transform", "translate(" + this.format(b.shadowDx * b.scale) + "," + this.format(b.shadowDy * b.scale) + ")" + (b.transform || ""));
-  a.setAttribute("opacity", b.shadowAlpha);
-  return a
-};
-mxSvgCanvas2D.prototype.rotate = function(a, b, c, d, e) {
-  if (0 != a || b || c) {
-    var f = this.state;
-    d += f.dx;
-    e += f.dy;
-    d *= f.scale;
-    e *= f.scale;
-    f.transform = f.transform || "";
-    if (b && c) a += 180;
-    else if (b ^ c) {
-      var g = b ? d : 0,
-        h = b ? -1 : 1,
-        k = c ? e : 0,
-        l = c ? -1 : 1;
-      f.transform += "translate(" + this.format(g) + "," + this.format(k) + ")scale(" + this.format(h) + "," + this.format(l) + ")translate(" + this.format(-g) + "," + this.format(-k) + ")"
-    }
-    if (b ? !c : c) a *= -1;
-    0 != a && (f.transform += "rotate(" + this.format(a) + "," + this.format(d) + "," + this.format(e) + ")");
-    f.rotation += a;
-    f.rotationCx =
-      d;
-    f.rotationCy = e
-  }
-};
-mxSvgCanvas2D.prototype.begin = function() {
-  mxAbstractCanvas2D.prototype.begin.apply(this, arguments);
-  this.node = this.createElement("path")
-};
-mxSvgCanvas2D.prototype.rect = function(a, b, c, d) {
-  var e = this.state,
-    f = this.createElement("rect");
-  f.setAttribute("x", this.format((a + e.dx) * e.scale));
-  f.setAttribute("y", this.format((b + e.dy) * e.scale));
-  f.setAttribute("width", this.format(c * e.scale));
-  f.setAttribute("height", this.format(d * e.scale));
-  this.node = f
-};
-mxSvgCanvas2D.prototype.roundrect = function(a, b, c, d, e, f) {
-  this.rect(a, b, c, d);
-  0 < e && this.node.setAttribute("rx", this.format(e * this.state.scale));
-  0 < f && this.node.setAttribute("ry", this.format(f * this.state.scale))
-};
-mxSvgCanvas2D.prototype.ellipse = function(a, b, c, d) {
-  var e = this.state,
-    f = this.createElement("ellipse");
-  f.setAttribute("cx", Math.round((a + c / 2 + e.dx) * e.scale));
-  f.setAttribute("cy", Math.round((b + d / 2 + e.dy) * e.scale));
-  f.setAttribute("rx", c / 2 * e.scale);
-  f.setAttribute("ry", d / 2 * e.scale);
-  this.node = f
-};
-mxSvgCanvas2D.prototype.image = function(a, b, c, d, e, f, g, h) {
-  e = this.converter.convert(e);
-  f = null != f ? f : !0;
-  g = null != g ? g : !1;
-  h = null != h ? h : !1;
-  var k = this.state;
-  a += k.dx;
-  b += k.dy;
-  var l = this.createElement("image");
-  l.setAttribute("x", this.format(a * k.scale));
-  l.setAttribute("y", this.format(b * k.scale));
-  l.setAttribute("width", this.format(c * k.scale));
-  l.setAttribute("height", this.format(d * k.scale));
-  null == l.setAttributeNS ? l.setAttribute("xlink:href", e) : l.setAttributeNS(mxConstants.NS_XLINK, "href", e);
-  f || l.setAttribute("preserveAspectRatio",
-    "none");
-  1 > k.alpha && l.setAttribute("opacity", k.alpha);
-  e = this.state.transform || "";
-  if (g || h) {
-    var m = f = 1,
-      n = 0,
-      p = 0;
-    g && (f = -1, n = -c - 2 * a);
-    h && (m = -1, p = -d - 2 * b);
-    e += "scale(" + f + "," + m + ")translate(" + n + "," + p + ")"
-  }
-  0 < e.length && l.setAttribute("transform", e);
-  this.root.appendChild(l);
-  this.blockImagePointerEvents && (l.setAttribute("style", "pointer-events:none"), l = this.createElement("rect"), l.setAttribute("visibility", "hidden"), l.setAttribute("pointer-events", "fill"),
-    l.setAttribute("x", this.format(a * k.scale)), l.setAttribute("y",
-      this.format(b * k.scale)), l.setAttribute("width", this.format(c * k.scale)), l.setAttribute("height", this.format(d * k.scale)), this.root.appendChild(l))
-};
-mxSvgCanvas2D.prototype.createDiv = function(a, b, c, d, e) {
-  c = this.state;
-  d = "display:inline-block;font-size:" + Math.round(c.fontSize) + "px;font-family:" + c.fontFamily + ";color:" + c.fontColor + ";line-height:" + Math.round(c.fontSize * mxConstants.LINE_HEIGHT) +
-    "px;" + d;
-  (c.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD && (d += "font-weight:bold;");
-  (c.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC && (d += "font-style:italic;");
-  (c.fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE && (d += "font-decoration:underline;");
-  b == mxConstants.ALIGN_CENTER ? d += "text-align:center;" : b == mxConstants.ALIGN_RIGHT && (d += "text-align:right;");
-  b = "";
-  null != c.fontBackgroundColor && (b += "background-color:" + c.fontBackgroundColor + ";");
-  null != c.fontBorderColor && (b += "border:1px solid " + c.fontBorderColor + ";");
-  mxUtils.isNode(a) || (c = document.createElement("textarea"), c.innerHTML = a.replace(/&lt;/g, "\x26amp;lt;").replace(/&gt;/g, "\x26amp;gt;").replace(/</g, "\x26lt;").replace(/>/g, "\x26gt;"), a =
-    c.value, e ? d += b : 0 < b.length && (a = '\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml" style\x3d"display:inline-block;' +
-      b + '"\x3e' + a + "\x3c/div\x3e"));
-  if (!mxClient.IS_IE && document.createElementNS) return e = document.createElementNS("http://www.w3.org/1999/xhtml", "div"), e.setAttribute("style", d), mxUtils.isNode(a) ? this.root.ownerDocument !=
-    document ? e.appendChild(a.cloneNode(!0)) : e.appendChild(a) : e.innerHTML = a, e;
-  mxUtils.isNode(a) && this.root.ownerDocument != document && (a = a.outerHTML);
-  a = a.replace(/<br>/g, "\x3cbr /\x3e").replace(/<hr>/g, "\x3chr /\x3e");
-  return mxUtils.parseXml('\x3cdiv xmlns\x3d"http://www.w3.org/1999/xhtml" style\x3d"' +
-    d + '"\x3e' + a + "\x3c/div\x3e").documentElement
-};
-mxSvgCanvas2D.prototype.text = function(a, b, c, d, e, f, g, h, k, l, m, n) {
-  if (this.textEnabled && null != e) {
-    n = null != n ? n : 0;
-    var p = this.state;
-    a += p.dx;
-    b += p.dy;
-    if (this.foEnabled && "html" == k) {
-      var q = "vertical-align:top;";
-      m ? (q += "overflow:hidden;", 0 < d && (q += "max-height:" + Math.round(d) + "px;"), 0 < c && (q += "width:" + Math.round(c) + "px;")) : l && (q += "width:" + Math.round(c) + "px;", 0 < d &&
-        (q += "max-height:" + Math.round(d) + "px;"));
-      h ? (!m && 0 < c && (q += "width:" + Math.round(c) + "px;"), q += "white-space:normal;") : q += "white-space:nowrap;";
-      h = this.createElement("g");
-      1 > p.alpha && h.setAttribute("opacity", p.alpha);
-      k = this.createElement("foreignObject");
-      k.setAttribute("pointer-events", "all");
-      q = this.createDiv(e, f, g, q, l);
-      if (null != q) {
-        h.appendChild(k);
-        this.root.appendChild(h);
-        var s = 0;
-        if (mxClient.IS_IE && !mxClient.IS_SVG) {
-          var r = document.createElement("div");
-          r.style.cssText = q.getAttribute("style");
-          r.style.display = mxClient.IS_QUIRKS ? "inline" : "inline-block";
-          r.style.visibility = "hidden";
-          r.innerHTML = mxUtils.isNode(e) ? e.outerHTML : e;
-          document.body.appendChild(r);
-          s = r.offsetWidth;
-          d = mxClient.IS_QUIRKS && 0 < d && m ? Math.min(d, r.offsetHeight + 2) : r.offsetHeight;
-          r.parentNode.removeChild(r);
-          k.appendChild(q)
-        } else this.root.ownerDocument != document ? (q.style.visibility = "hidden", document.body.appendChild(q), s = q.offsetWidth, d = q.offsetHeight, k.appendChild(q), q.style.visibility = "") :
-          (k.appendChild(q), s = q.offsetWidth, d = q.offsetHeight);
-        c = l ? Math.max(c, s) : s;
-        1 > p.alpha && h.setAttribute("opacity", p.alpha);
-        l = e = 0;
-        f == mxConstants.ALIGN_CENTER ? e -= c / 2 : f == mxConstants.ALIGN_RIGHT && (e -= c);
-        a += e;
-        g == mxConstants.ALIGN_MIDDLE ?
-          l -= d / 2 : g == mxConstants.ALIGN_BOTTOM && (l -= d);
-        b += l;
-        f = 1 != p.scale ? "scale(" + p.scale + ")" : "";
-        0 != p.rotation && this.rotateHtml ? (f += "rotate(" + p.rotation + "," + c / 2 + "," + d / 2 + ")", b = this.rotatePoint((a + c / 2) * p.scale, (b + d / 2) * p.scale, p.rotation, p.rotationCx,
-          p.rotationCy), a = b.x - c * p.scale / 2, b = b.y - d * p.scale / 2) : (a *= p.scale, b *= p.scale);
-        0 != n && (f += "rotate(" + n + "," + -e + "," + -l + ")");
-        h.setAttribute("transform", "translate(" + Math.round(a) + "," + Math.round(b) + ")" + f);
-        k.setAttribute("width", Math.round(Math.max(1, c)));
-        k.setAttribute("height",
-          Math.round(Math.max(1, d)))
-      }
-    } else this.plainText(a, b, c, d, e, f, g, h, l, m, n)
-  }
-};
-mxSvgCanvas2D.prototype.createClip = function(a, b, c, d) {
-  a = Math.round(a);
-  b = Math.round(b);
-  c = Math.round(c);
-  d = Math.round(d);
-  for (var e = "mx-clip-" + a + "-" + b + "-" + c + "-" + d, f = 0, g = e + "-" + f; null != document.getElementById(g);) g = e + "-" + ++f;
-  clip = this.createElement("clipPath");
-  clip.setAttribute("id", g);
-  e = this.createElement("rect");
-  e.setAttribute("x", a);
-  e.setAttribute("y", b);
-  e.setAttribute("width", c);
-  e.setAttribute("height", d);
-  clip.appendChild(e);
-  return clip
-};
-mxSvgCanvas2D.prototype.plainText = function(a, b, c, d, e, f, g, h, k, l, m) {
-  m = null != m ? m : 0;
-  h = this.state;
-  var n = Math.round(h.fontSize),
-    p = this.createElement("g"),
-    q = h.transform || "";
-  0 != m && (q += "rotate(" + m + "," + this.format(a * h.scale) + "," + this.format(b * h.scale) + ")");
-  if (l && 0 < c && 0 < d) {
-    var s = a;
-    m = b;
-    f == mxConstants.ALIGN_CENTER ? s -= c / 2 : f == mxConstants.ALIGN_RIGHT && (s -= c);
-    g == mxConstants.ALIGN_MIDDLE ? m -= d / 2 : g == mxConstants.ALIGN_BOTTOM && (m -= d);
-    m = this.createClip(s * h.scale - 2, m * h.scale - 2, c * h.scale + 4, d * h.scale + 4);
-    null != this.defs ? this.defs.appendChild(m) :
-      this.root.appendChild(m);
-    p.setAttribute("clip-path", "url(#" + m.getAttribute("id") + ")")
-  }
-  this.updateFont(p, f);
-  m = f == mxConstants.ALIGN_RIGHT ? "end" : f == mxConstants.ALIGN_CENTER ? "middle" : "start";
-  "start" != m && p.setAttribute("text-anchor", m);
-  (!this.styleEnabled || n != mxConstants.DEFAULT_FONTSIZE) && p.setAttribute("font-size", Math.round(n * h.scale) + "px");
-  0 < q.length && p.setAttribute("transform", q);
-  1 > h.alpha && p.setAttribute("opacity", h.alpha);
-  var q = e.split("\n"),
-    s = Math.round(n * mxConstants.LINE_HEIGHT),
-    r = n + (q.length -
-      1) * s;
-  m = b + n - 1;
-  g == mxConstants.ALIGN_MIDDLE ? (d = (this.matchHtmlAlignment && l && 0 < d ? Math.min(r, d) : r) / 2, m -= d + 1) : g == mxConstants.ALIGN_BOTTOM && (d = this.matchHtmlAlignment && l && 0 < d ?
-    Math.min(r, d) : r, m -= d + 2);
-  for (d = 0; d < q.length; d++) 0 < q[d].length && 0 < mxUtils.trim(q[d]).length && (l = this.createElement("text"), l.setAttribute("x", this.format(a * h.scale)), l.setAttribute("y", this.format(
-    m * h.scale)), mxUtils.write(l, q[d]), p.appendChild(l)), m += s;
-  this.root.appendChild(p);
-  this.addTextBackground(p, e, a, b, c, r, f, g, k)
-};
-mxSvgCanvas2D.prototype.updateFont = function(a) {
-  var b = this.state;
-  a.setAttribute("fill", b.fontColor);
-  (!this.styleEnabled || b.fontFamily != mxConstants.DEFAULT_FONTFAMILY) && a.setAttribute("font-family", b.fontFamily);
-  (b.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD && a.setAttribute("font-weight", "bold");
-  (b.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC && a.setAttribute("font-style", "italic");
-  (b.fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE && a.setAttribute("text-decoration",
-    "underline")
-};
-mxSvgCanvas2D.prototype.addTextBackground = function(a, b, c, d, e, f, g, h, k) {
-  var l = this.state;
-  if (null != l.fontBackgroundColor || null != l.fontBorderColor) {
-    var m = null;
-    k ? (g == mxConstants.ALIGN_CENTER ? c -= e / 2 : g == mxConstants.ALIGN_RIGHT && (c -= e), h == mxConstants.ALIGN_MIDDLE ? d -= f / 2 : h == mxConstants.ALIGN_BOTTOM && (d -= f), m = new mxRectangle(
-      (c + 1) * l.scale, d * l.scale, (e - 2) * l.scale, (f + 2) * l.scale)) : null != a.getBBox && this.root.ownerDocument == document ? (m = a.getBBox(), b = mxClient.IS_IE && mxClient.IS_SVG,
-      m = new mxRectangle(m.x, m.y + (b ? 0 :
-        1), m.width, m.height + (b ? 1 : 0))) : (m = document.createElement("div"), m.style.lineHeight = Math.round(l.fontSize * mxConstants.LINE_HEIGHT) + "px", m.style.fontSize = Math.round(l.fontSize) +
-      "px", m.style.fontFamily = l.fontFamily, m.style.whiteSpace = "nowrap", m.style.position = "absolute", m.style.visibility = "hidden", m.style.display = mxClient.IS_QUIRKS ? "inline" :
-      "inline-block", m.style.zoom = "1", (l.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD && (m.style.fontWeight = "bold"), (l.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC &&
-      (m.style.fontStyle = "italic"), b = mxUtils.htmlEntities(b, !1), m.innerHTML = b.replace(/\n/g, "\x3cbr/\x3e"), document.body.appendChild(m), e = m.offsetWidth, f = m.offsetHeight, m.parentNode
-      .removeChild(m), g == mxConstants.ALIGN_CENTER ? c -= e / 2 : g == mxConstants.ALIGN_RIGHT && (c -= e), h == mxConstants.ALIGN_MIDDLE ? d -= f / 2 : h == mxConstants.ALIGN_BOTTOM && (d -= f),
-      m = new mxRectangle((c + 1) * l.scale, (d + 2) * l.scale, e * l.scale, (f + 1) * l.scale));
-    null != m && (b = this.createElement("rect"), b.setAttribute("fill", l.fontBackgroundColor || "none"), b.setAttribute("stroke",
-      l.fontBorderColor || "none"), b.setAttribute("x", Math.floor(m.x - 1)), b.setAttribute("y", Math.floor(m.y - 1)), b.setAttribute("width", Math.ceil(m.width + 2)), b.setAttribute("height",
-      Math.ceil(m.height)), l = null != l.fontBorderColor ? Math.max(1, this.format(l.scale)) : 0, b.setAttribute("stroke-width", l), this.root.ownerDocument == document && 1 == mxUtils.mod(l,
-      2) && b.setAttribute("transform", "translate(0.5, 0.5)"), a.insertBefore(b, a.firstChild))
-  }
-};
-mxSvgCanvas2D.prototype.stroke = function() {
-  this.addNode(!1, !0)
-};
-mxSvgCanvas2D.prototype.fill = function() {
-  this.addNode(!0, !1)
-};
-mxSvgCanvas2D.prototype.fillAndStroke = function() {
-  this.addNode(!0, !0)
-};
-var mxVmlCanvas2D = function(a) {
-  mxAbstractCanvas2D.call(this);
-  this.root = a
-};
-mxUtils.extend(mxVmlCanvas2D, mxAbstractCanvas2D);
-mxVmlCanvas2D.prototype.node = null;
-mxVmlCanvas2D.prototype.textEnabled = !0;
-mxVmlCanvas2D.prototype.moveOp = "m";
-mxVmlCanvas2D.prototype.lineOp = "l";
-mxVmlCanvas2D.prototype.curveOp = "c";
-mxVmlCanvas2D.prototype.closeOp = "x";
-mxVmlCanvas2D.prototype.rotatedHtmlBackground = "";
-mxVmlCanvas2D.prototype.vmlScale = 1;
-mxVmlCanvas2D.prototype.addNode = function(a, b) {
-  var c = this.node,
-    d = this.state;
-  if (null != c) {
-    if ("shape" == c.nodeName)
-      if (null != this.path && 0 < this.path.length) c.path = this.path.join(" ") + " e", c.style.width = this.root.style.width, c.style.height = this.root.style.height, c.coordsize = parseInt(c.style
-        .width) + " " + parseInt(c.style.height);
-      else return;
-    c.strokeweight = this.format(Math.max(1, d.strokeWidth * d.scale / this.vmlScale)) + "px";
-    d.shadow && this.root.appendChild(this.createShadow(c, a && null != d.fillColor, b && null != d.strokeColor));
-    b && null != d.strokeColor ? (c.stroked = "true", c.strokecolor = d.strokeColor) : c.stroked = "false";
-    c.appendChild(this.createStroke());
-    a && null != d.fillColor ? c.appendChild(this.createFill()) : this.pointerEvents && ("shape" != c.nodeName || this.path[this.path.length - 1] == this.closeOp) ? c.appendChild(this.createTransparentFill()) :
-      c.filled = "false";
-    this.root.appendChild(c)
-  }
-};
-mxVmlCanvas2D.prototype.createTransparentFill = function() {
-  var a = document.createElement(mxClient.VML_PREFIX + ":fill");
-  a.src = mxClient.imageBasePath + "/transparent.gif";
-  a.type = "tile";
-  return a
-};
-mxVmlCanvas2D.prototype.createFill = function() {
-  var a = this.state,
-    b = document.createElement(mxClient.VML_PREFIX + ":fill");
-  b.color = a.fillColor;
-  if (null != a.gradientColor) {
-    b.type = "gradient";
-    b.method = "none";
-    b.color2 = a.gradientColor;
-    var c = 180 - a.rotation,
-      c = a.gradientDirection == mxConstants.DIRECTION_WEST ? c - (90 + ("x" == this.root.style.flip ? 180 : 0)) : a.gradientDirection == mxConstants.DIRECTION_EAST ? c + (90 + ("x" == this.root.style
-        .flip ? 180 : 0)) : a.gradientDirection == mxConstants.DIRECTION_NORTH ? c - (180 + ("y" == this.root.style.flip ?
-        -180 : 0)) : c + ("y" == this.root.style.flip ? -180 : 0);
-    if ("x" == this.root.style.flip || "y" == this.root.style.flip) c *= -1;
-    b.angle = mxUtils.mod(c, 360);
-    b.opacity = 100 * a.alpha * a.fillAlpha + "%";
-    b.setAttribute(mxClient.OFFICE_PREFIX + ":opacity2", 100 * a.alpha * a.gradientAlpha + "%")
-  } else 1 > a.alpha && (b.opacity = 100 * a.alpha + "%");
-  return b
-};
-mxVmlCanvas2D.prototype.createStroke = function() {
-  var a = this.state,
-    b = document.createElement(mxClient.VML_PREFIX + ":stroke");
-  b.endcap = a.lineCap || "flat";
-  b.joinstyle = a.lineJoin || "miter";
-  b.miterlimit = a.miterLimit || "10";
-  1 > a.alpha && (b.opacity = 100 * a.alpha + "%");
-  a.dashed && (b.dashstyle = this.getVmlDashStyle());
-  return b
-};
-mxVmlCanvas2D.prototype.getVmlDashStyle = function() {
-  var a = "dash";
-  if (null != this.state.dashPattern) {
-    var b = this.state.dashPattern.split(" ");
-    0 < b.length && 1 == b[0] && (a = "0 2")
-  }
-  return a
-};
-mxVmlCanvas2D.prototype.createShadow = function(a, b, c) {
-  var d = this.state,
-    e = -d.rotation * (Math.PI / 180),
-    f = Math.cos(e),
-    e = Math.sin(e),
-    g = d.shadowDx * d.scale,
-    h = d.shadowDy * d.scale;
-  "x" == this.root.style.flip ? g *= -1 : "y" == this.root.style.flip && (h *= -1);
-  var k = a.cloneNode(!0);
-  k.style.marginLeft = Math.round(g * f - h * e) + "px";
-  k.style.marginTop = Math.round(g * e + h * f) + "px";
-  8 == document.documentMode && (k.strokeweight = a.strokeweight, "shape" == a.nodeName && (k.path = this.path.join(" ") + " e", k.style.width = this.root.style.width, k.style.height =
-    this.root.style.height, k.coordsize = parseInt(a.style.width) + " " + parseInt(a.style.height)));
-  c ? (k.strokecolor = d.shadowColor, k.appendChild(this.createShadowStroke())) : k.stroked = "false";
-  b ? k.appendChild(this.createShadowFill()) : k.filled = "false";
-  return k
-};
-mxVmlCanvas2D.prototype.createShadowFill = function() {
-  var a = document.createElement(mxClient.VML_PREFIX + ":fill");
-  a.color = this.state.shadowColor;
-  a.opacity = 100 * this.state.alpha * this.state.shadowAlpha + "%";
-  return a
-};
-mxVmlCanvas2D.prototype.createShadowStroke = function() {
-  var a = this.createStroke();
-  a.opacity = 100 * this.state.alpha * this.state.shadowAlpha + "%";
-  return a
-};
-mxVmlCanvas2D.prototype.rotate = function(a, b, c, d, e) {
-  b && c ? a += 180 : b ? this.root.style.flip = "x" : c && (this.root.style.flip = "y");
-  if (b ? !c : c) a *= -1;
-  this.root.style.rotation = a;
-  this.state.rotation += a;
-  this.state.rotationCx = d;
-  this.state.rotationCy = e
-};
-mxVmlCanvas2D.prototype.begin = function() {
-  mxAbstractCanvas2D.prototype.begin.apply(this, arguments);
-  this.node = document.createElement(mxClient.VML_PREFIX + ":shape");
-  this.node.style.position = "absolute"
-};
-mxVmlCanvas2D.prototype.quadTo = function(a, b, c, d) {
-  var e = this.state,
-    f = (this.lastX + e.dx) * e.scale,
-    g = (this.lastY + e.dy) * e.scale;
-  a = (a + e.dx) * e.scale;
-  b = (b + e.dy) * e.scale;
-  c = (c + e.dx) * e.scale;
-  d = (d + e.dy) * e.scale;
-  var g = g + 2 / 3 * (b - g),
-    h = c + 2 / 3 * (a - c);
-  b = d + 2 / 3 * (b - d);
-  this.path.push("c " + this.format(f + 2 / 3 * (a - f)) + " " + this.format(g) + " " + this.format(h) + " " + this.format(b) + " " + this.format(c) + " " + this.format(d));
-  this.lastX = c / e.scale - e.dx;
-  this.lastY = d / e.scale - e.dy
-};
-mxVmlCanvas2D.prototype.createRect = function(a, b, c, d, e) {
-  var f = this.state;
-  a = document.createElement(a);
-  a.style.position = "absolute";
-  a.style.left = this.format((b + f.dx) * f.scale) + "px";
-  a.style.top = this.format((c + f.dy) * f.scale) + "px";
-  a.style.width = this.format(d * f.scale) + "px";
-  a.style.height = this.format(e * f.scale) + "px";
-  return a
-};
-mxVmlCanvas2D.prototype.rect = function(a, b, c, d) {
-  this.node = this.createRect(mxClient.VML_PREFIX + ":rect", a, b, c, d)
-};
-mxVmlCanvas2D.prototype.roundrect = function(a, b, c, d, e, f) {
-  this.node = this.createRect(mxClient.VML_PREFIX + ":roundrect", a, b, c, d);
-  this.node.setAttribute("arcsize", Math.max(100 * e / c, 100 * f / d) + "%")
-};
-mxVmlCanvas2D.prototype.ellipse = function(a, b, c, d) {
-  this.node = this.createRect(mxClient.VML_PREFIX + ":oval", a, b, c, d)
-};
-mxVmlCanvas2D.prototype.image = function(a, b, c, d, e, f, g, h) {
-  var k = null;
-  f ? (k = this.createRect(mxClient.VML_PREFIX + ":rect", a, b, c, d), k.stroked = "false", a = document.createElement(mxClient.VML_PREFIX + ":fill"), a.aspect = f ? "atmost" : "ignore", a.rotate =
-    "true", a.type = "frame", a.src = e, k.appendChild(a)) : (k = this.createRect(mxClient.VML_PREFIX + ":image", a, b, c, d), k.src = e);
-  g && h ? k.style.rotation = "180" : g ? k.style.flip = "x" : h && (k.style.flip = "y");
-  1 > this.state.alpha && (k.style.filter += "alpha(opacity\x3d" + 100 * this.state.alpha + ")");
-  this.root.appendChild(k)
-};
-mxVmlCanvas2D.prototype.createDiv = function(a, b, c, d) {
-  c = document.createElement("div");
-  var e = this.state,
-    f = "";
-  null != e.fontBackgroundColor && (f += "background-color:" + e.fontBackgroundColor + ";");
-  null != e.fontBorderColor && (f += "border:1px solid " + e.fontBorderColor + ";");
-  mxUtils.isNode(a) ? c.appendChild(a) : 0 < f.length && !d ? (d = document.createElement("div"), d.style.cssText = f, d.style.display = mxClient.IS_QUIRKS ? "inline" : "inline-block", d.style.zoom =
-    "1", d.innerHTML = a, c.appendChild(d)) : (c.style.cssText = f, c.innerHTML = a);
-  a = c.style;
-  a.fontSize = Math.round(e.fontSize / this.vmlScale) + "px";
-  a.fontFamily = e.fontFamily;
-  a.color = e.fontColor;
-  a.verticalAlign = "top";
-  a.textAlign = b || "left";
-  a.lineHeight = Math.round(e.fontSize * mxConstants.LINE_HEIGHT / this.vmlScale) + "px";
-  (e.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD && (a.fontWeight = "bold");
-  (e.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC && (a.fontStyle = "italic");
-  (e.fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE && (a.fontDecoration = "underline");
-  return c
-};
-mxVmlCanvas2D.prototype.text = function(a, b, c, d, e, f, g, h, k, l, m, n) {
-  if (this.textEnabled && null != e) {
-    var p = this.state;
-    if ("html" == k) {
-      null != p.rotation && (b = this.rotatePoint(a, b, p.rotation, p.rotationCx, p.rotationCy), a = b.x, b = b.y);
-      8 == document.documentMode ? (a += p.dx, b += p.dy) : (a *= p.scale, b *= p.scale);
-      k = 8 == document.documentMode ? document.createElement(mxClient.VML_PREFIX + ":group") : document.createElement("div");
-      k.style.position = "absolute";
-      k.style.display = "inline";
-      k.style.left = this.format(a) + "px";
-      k.style.top = this.format(b) +
-        "px";
-      k.style.zoom = p.scale;
-      var q = document.createElement("div");
-      q.style.position = "relative";
-      q.style.display = "inline";
-      var s = mxUtils.getAlignmentAsPoint(f, g),
-        r = s.x,
-        s = s.y;
-      e = this.createDiv(e, f, g, l);
-      f = document.createElement("div");
-      h ? (!m && 0 < c && (e.style.width = Math.round(c) + "px"), e.style.whiteSpace = "normal") : e.style.whiteSpace = "nowrap";
-      h = p.rotation + (n || 0);
-      this.rotateHtml && 0 != h ? (f.style.display = "inline", f.style.zoom = "1", f.appendChild(e), 8 == document.documentMode && "DIV" != this.root.nodeName ? (q.appendChild(f), k.appendChild(q)) :
-        k.appendChild(f)) : 8 == document.documentMode ? (q.appendChild(e), k.appendChild(q)) : (e.style.display = "inline", k.appendChild(e));
-      "DIV" != this.root.nodeName ? (n = document.createElement(mxClient.VML_PREFIX + ":rect"), n.stroked = "false", n.filled = "false", n.appendChild(k), this.root.appendChild(n)) : this.root.appendChild(
-        k);
-      m ? (e.style.overflow = "hidden", 0 < c && (e.style.width = Math.round(c) + "px"), 0 < d && 8 == document.documentMode && (e.style.maxHeight = Math.round(d) + "px")) : l && (e.style.width = c +
-        "px", 0 < d && (e.style.maxHeight = Math.round(d) +
-          "px"));
-      if (this.rotateHtml && 0 != h) {
-        c = h * (Math.PI / 180);
-        h = parseFloat(parseFloat(Math.cos(c)).toFixed(8));
-        n = parseFloat(parseFloat(Math.sin(-c)).toFixed(8));
-        c %= 2 * Math.PI;
-        0 > c && (c += 2 * Math.PI);
-        c %= Math.PI;
-        c > Math.PI / 2 && (c = Math.PI - c);
-        g = Math.cos(c);
-        var t = Math.sin(c);
-        8 == document.documentMode && (e.style.display = "inline-block", f.style.display = "inline-block", q.style.display = "inline-block");
-        e.style.visibility = "hidden";
-        document.body.appendChild(e);
-        c = e.offsetWidth;
-        q = e.offsetHeight;
-        if (mxClient.IS_QUIRKS && (m || l) && q > d) q =
-          d, e.style.height = q + "px";
-        d = q;
-        m = (d - d * g + c * -t) / 2 - n * c * (r + 0.5) + h * d * (s + 0.5);
-        l = (c - c * g + d * -t) / 2 + h * c * (r + 0.5) + n * d * (s + 0.5);
-        "group" == k.nodeName && "DIV" == this.root.nodeName ? (r = document.createElement("div"), r.style.display = "inline-block", r.style.position = "absolute", r.style.left = this.format(a + (l -
-          c / 2) * p.scale) + "px", r.style.top = this.format(b + (m - d / 2) * p.scale) + "px", k.parentNode.appendChild(r), r.appendChild(k)) : (p = 8 == document.documentMode ? 1 : p.scale, k.style
-          .left = this.format(a + (l - c / 2) * p) + "px", k.style.top = this.format(b + (m -
-            d / 2) * p) + "px");
-        f.style.filter = "progid:DXImageTransform.Microsoft.Matrix(M11\x3d" + h + ", M12\x3d" + n + ", M21\x3d" + -n + ", M22\x3d" + h + ", sizingMethod\x3d'auto expand')";
-        f.style.backgroundColor = this.rotatedHtmlBackground;
-        1 > this.state.alpha && (f.style.filter += "alpha(opacity\x3d" + 100 * this.state.alpha + ")");
-        e.style.visibility = "";
-        f.appendChild(e)
-      } else 8 != document.documentMode ? (e.style.verticalAlign = "top", 1 > this.state.alpha && (k.style.filter = "alpha(opacity\x3d" + 100 * this.state.alpha + ")"), p = e.parentNode, e.style.visibility =
-        "hidden", document.body.appendChild(e), c = e.offsetWidth, q = e.offsetHeight, mxClient.IS_QUIRKS && (m && q > d) && (q = d, e.style.height = q + "px"), d = q, e.style.visibility = "", p.appendChild(
-          e), k.style.left = this.format(a + c * r * this.state.scale) + "px", k.style.top = this.format(b + d * s * this.state.scale) + "px") : (1 > this.state.alpha && (e.style.filter =
-        "alpha(opacity\x3d" + 100 * this.state.alpha + ")"), q.style.left = 100 * r + "%", q.style.top = 100 * s + "%")
-    } else this.plainText(a, b, c, d, mxUtils.htmlEntities(e, !1), f, g, h, k, l, m, n)
-  }
-};
-mxVmlCanvas2D.prototype.plainText = function(a, b, c, d, e, f, g, h, k, l, m, n) {
-  d = this.state;
-  a = (a + d.dx) * d.scale;
-  b = (b + d.dy) * d.scale;
-  c = document.createElement(mxClient.VML_PREFIX + ":shape");
-  c.style.width = "1px";
-  c.style.height = "1px";
-  c.stroked = "false";
-  l = document.createElement(mxClient.VML_PREFIX + ":fill");
-  l.color = d.fontColor;
-  l.opacity = 100 * d.alpha + "%";
-  c.appendChild(l);
-  l = document.createElement(mxClient.VML_PREFIX + ":path");
-  l.textpathok = "true";
-  l.v = "m " + this.format(0) + " " + this.format(0) + " l " + this.format(1) + " " + this.format(0);
-  c.appendChild(l);
-  l = document.createElement(mxClient.VML_PREFIX + ":textpath");
-  l.style.cssText = "v-text-align:" + f;
-  l.style.align = f;
-  l.style.fontFamily = d.fontFamily;
-  l.string = e;
-  l.on = "true";
-  f = Math.round(d.fontSize * d.scale / this.vmlScale);
-  l.style.fontSize = f + "px";
-  (d.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD && (l.style.fontWeight = "bold");
-  (d.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC && (l.style.fontStyle = "italic");
-  (d.fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE &&
-    (l.style.textDecoration = "underline");
-  e = e.split("\n");
-  d = f + (e.length - 1) * f * mxConstants.LINE_HEIGHT;
-  f = e = 0;
-  g == mxConstants.ALIGN_BOTTOM ? f = -d / 2 : g != mxConstants.ALIGN_MIDDLE && (f = d / 2);
-  null != n && (c.style.rotation = n, g = n * (Math.PI / 180), e = Math.sin(g) * f, f *= Math.cos(g));
-  c.appendChild(l);
-  c.style.left = this.format(a - e) + "px";
-  c.style.top = this.format(b + f) + "px";
-  this.root.appendChild(c)
-};
-mxVmlCanvas2D.prototype.stroke = function() {
-  this.addNode(!1, !0)
-};
-mxVmlCanvas2D.prototype.fill = function() {
-  this.addNode(!0, !1)
-};
-mxVmlCanvas2D.prototype.fillAndStroke = function() {
-  this.addNode(!0, !0)
-};
-
-function mxGuide(a, b) {
-  this.graph = a;
-  this.setStates(b)
-}
-mxGuide.prototype.graph = null;
-mxGuide.prototype.states = null;
-mxGuide.prototype.horizontal = !0;
-mxGuide.prototype.vertical = !0;
-mxGuide.prototype.guideX = null;
-mxGuide.prototype.guideY = null;
-mxGuide.prototype.setStates = function(a) {
-  this.states = a
-};
-mxGuide.prototype.isEnabledForEvent = function(a) {
-  return !0
-};
-mxGuide.prototype.getGuideTolerance = function() {
-  return this.graph.gridSize * this.graph.view.scale / 2
-};
-mxGuide.prototype.createGuideShape = function(a) {
-  a = new mxPolyline([], mxConstants.GUIDE_COLOR, mxConstants.GUIDE_STROKEWIDTH);
-  a.isDashed = !0;
-  return a
-};
-mxGuide.prototype.move = function(a, b, c) {
-  if (null != this.states && (this.horizontal || this.vertical) && null != a && null != b) {
-    var d = this.graph.getView().translate,
-      e = this.graph.getView().scale,
-      f = b.x,
-      g = b.y,
-      h = !1,
-      k = !1,
-      l = this.getGuideTolerance(),
-      m = l,
-      n = l,
-      l = a.clone();
-    l.x += b.x;
-    l.y += b.y;
-    var p = l.x,
-      q = l.x + l.width,
-      s = l.getCenterX(),
-      r = l.y,
-      t = l.y + l.height,
-      v = l.getCenterY();
-    b = function(b) {
-      b += this.graph.panDx;
-      var c = !1;
-      Math.abs(b - s) < m ? (f = b - a.getCenterX(), m = Math.abs(b - s), c = !0) : Math.abs(b - p) < m ? (f = b - a.x, m = Math.abs(b - p), c = !0) : Math.abs(b -
-        q) < m && (f = b - a.x - a.width, m = Math.abs(b - q), c = !0);
-      if (c) {
-        null == this.guideX && (this.guideX = this.createGuideShape(!0), this.guideX.dialect = this.graph.dialect != mxConstants.DIALECT_SVG ? mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG,
-          this.guideX.pointerEvents = !1, this.guideX.init(this.graph.getView().getOverlayPane()));
-        var d = this.graph.container;
-        b -= this.graph.panDx;
-        this.guideX.points = [new mxPoint(b, -this.graph.panDy), new mxPoint(b, d.scrollHeight - 3 - this.graph.panDy)]
-      }
-      h = h || c
-    };
-    for (var l = function(b) {
-        b += this.graph.panDy;
-        var c = !1;
-        Math.abs(b - v) < n ? (g = b - a.getCenterY(), n = Math.abs(b - v), c = !0) : Math.abs(b - r) < n ? (g = b - a.y, n = Math.abs(b - r), c = !0) : Math.abs(b - t) < n && (g = b - a.y - a.height,
-          n = Math.abs(b - t), c = !0);
-        if (c) {
-          null == this.guideY && (this.guideY = this.createGuideShape(!1), this.guideY.dialect = this.graph.dialect != mxConstants.DIALECT_SVG ? mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG,
-            this.guideY.pointerEvents = !1, this.guideY.init(this.graph.getView().getOverlayPane()));
-          var d = this.graph.container;
-          b -= this.graph.panDy;
-          this.guideY.points = [new mxPoint(-this.graph.panDx,
-            b), new mxPoint(d.scrollWidth - 3 - this.graph.panDx, b)]
-        }
-        k = k || c
-      }, w = 0; w < this.states.length; w++) {
-      var u = this.states[w];
-      null != u && (this.horizontal && (b.call(this, u.getCenterX()), b.call(this, u.x), b.call(this, u.x + u.width)), this.vertical && (l.call(this, u.getCenterY()), l.call(this, u.y), l.call(this,
-        u.y + u.height)))
-    }!h && null != this.guideX ? this.guideX.node.style.visibility = "hidden" : null != this.guideX && (this.guideX.node.style.visibility = "visible", this.guideX.redraw());
-    !k && null != this.guideY ? this.guideY.node.style.visibility =
-      "hidden" : null != this.guideY && (this.guideY.node.style.visibility = "visible", this.guideY.redraw());
-    c && (h || (c = a.x - (this.graph.snap(a.x / e - d.x) + d.x) * e, f = this.graph.snap(f / e) * e - c), k || (d = a.y - (this.graph.snap(a.y / e - d.y) + d.y) * e, g = this.graph.snap(g / e) * e -
-      d));
-    b = new mxPoint(f, g)
-  }
-  return b
-};
-mxGuide.prototype.hide = function() {
-  null != this.guideX && (this.guideX.node.style.visibility = "hidden");
-  null != this.guideY && (this.guideY.node.style.visibility = "hidden")
-};
-mxGuide.prototype.destroy = function() {
-  null != this.guideX && (this.guideX.destroy(), this.guideX = null);
-  null != this.guideY && (this.guideY.destroy(), this.guideY = null)
-};
-
-function mxStencil(a) {
-  this.desc = a;
-  this.parseDescription();
-  this.parseConstraints()
-}
-mxStencil.defaultLocalized = !1;
-mxStencil.prototype.desc = null;
-mxStencil.prototype.constraints = null;
-mxStencil.prototype.aspect = null;
-mxStencil.prototype.w0 = null;
-mxStencil.prototype.h0 = null;
-mxStencil.prototype.bgNode = null;
-mxStencil.prototype.fgNode = null;
-mxStencil.prototype.strokewidth = null;
-mxStencil.prototype.parseDescription = function() {
-  this.fgNode = this.desc.getElementsByTagName("foreground")[0];
-  this.bgNode = this.desc.getElementsByTagName("background")[0];
-  this.w0 = Number(this.desc.getAttribute("w") || 100);
-  this.h0 = Number(this.desc.getAttribute("h") || 100);
-  var a = this.desc.getAttribute("aspect");
-  this.aspect = null != a ? a : "variable";
-  a = this.desc.getAttribute("strokewidth");
-  this.strokewidth = null != a ? a : "1"
-};
-mxStencil.prototype.parseConstraints = function() {
-  var a = this.desc.getElementsByTagName("connections")[0];
-  if (null != a && (a = mxUtils.getChildNodes(a), null != a && 0 < a.length)) {
-    this.constraints = [];
-    for (var b = 0; b < a.length; b++) this.constraints.push(this.parseConstraint(a[b]))
-  }
-};
-mxStencil.prototype.parseConstraint = function(a) {
-  var b = Number(a.getAttribute("x")),
-    c = Number(a.getAttribute("y"));
-  a = "1" == a.getAttribute("perimeter");
-  return new mxConnectionConstraint(new mxPoint(b, c), a)
-};
-mxStencil.prototype.evaluateTextAttribute = function(a, b, c) {
-  b = this.evaluateAttribute(a, b, c);
-  a = a.getAttribute("localized");
-  if (mxStencil.defaultLocalized && null == a || "1" == a) b = mxResources.get(b);
-  return b
-};
-mxStencil.prototype.evaluateAttribute = function(a, b, c) {
-  b = a.getAttribute(b);
-  null == b && (a = mxUtils.getTextContent(a), null != a && (a = mxUtils.eval(a), "function" == typeof a && (b = a(c))));
-  return b
-};
-mxStencil.prototype.drawShape = function(a, b, c, d, e, f) {
-  this.drawChildren(a, b, c, d, e, f, this.bgNode, !1);
-  this.drawChildren(a, b, c, d, e, f, this.fgNode, !0)
-};
-mxStencil.prototype.drawChildren = function(a, b, c, d, e, f, g, h) {
-  if (null != g) {
-    var k = mxUtils.getValue(b.style, mxConstants.STYLE_DIRECTION, null);
-    c = this.computeAspect(b.style, c, d, e, f, k);
-    d = Math.min(c.width, c.height);
-    d = "inherit" == this.strokewidth ? Number(mxUtils.getNumber(b.style, mxConstants.STYLE_STROKEWIDTH, 1)) : Number(this.strokewidth) * d;
-    a.setStrokeWidth(d);
-    for (g = g.firstChild; null != g;) g.nodeType == mxConstants.NODETYPE_ELEMENT && this.drawNode(a, b, g, c, h), g = g.nextSibling
-  }
-};
-mxStencil.prototype.computeAspect = function(a, b, c, d, e, f) {
-  a = b;
-  b = d / this.w0;
-  var g = e / this.h0;
-  if (f = "north" == f || "south" == f) {
-    g = d / this.h0;
-    b = e / this.w0;
-    var h = (d - e) / 2;
-    a += h;
-    c -= h
-  }
-  "fixed" == this.aspect && (b = g = Math.min(b, g), f ? (a += (e - this.w0 * b) / 2, c += (d - this.h0 * g) / 2) : (a += (d - this.w0 * b) / 2, c += (e - this.h0 * g) / 2));
-  return new mxRectangle(a, c, b, g)
-};
-mxStencil.prototype.drawNode = function(a, b, c, d, e) {
-  var f = c.nodeName,
-    g = d.x,
-    h = d.y,
-    k = d.width,
-    l = d.height,
-    m = Math.min(k, l);
-  if ("save" == f) a.save();
-  else if ("restore" == f) a.restore();
-  else if ("path" == f) {
-    a.begin();
-    for (c = c.firstChild; null != c;) c.nodeType == mxConstants.NODETYPE_ELEMENT && this.drawNode(a, b, c, d, e), c = c.nextSibling
-  } else if ("close" == f) a.close();
-  else if ("move" == f) a.moveTo(g + Number(c.getAttribute("x")) * k, h + Number(c.getAttribute("y")) * l);
-  else if ("line" == f) a.lineTo(g + Number(c.getAttribute("x")) * k, h + Number(c.getAttribute("y")) *
-    l);
-  else if ("quad" == f) a.quadTo(g + Number(c.getAttribute("x1")) * k, h + Number(c.getAttribute("y1")) * l, g + Number(c.getAttribute("x2")) * k, h + Number(c.getAttribute("y2")) * l);
-  else if ("curve" == f) a.curveTo(g + Number(c.getAttribute("x1")) * k, h + Number(c.getAttribute("y1")) * l, g + Number(c.getAttribute("x2")) * k, h + Number(c.getAttribute("y2")) * l, g + Number(
-    c.getAttribute("x3")) * k, h + Number(c.getAttribute("y3")) * l);
-  else if ("arc" == f) a.arcTo(Number(c.getAttribute("rx")) * k, Number(c.getAttribute("ry")) * l, Number(c.getAttribute("x-axis-rotation")),
-    Number(c.getAttribute("large-arc-flag")), Number(c.getAttribute("sweep-flag")), g + Number(c.getAttribute("x")) * k, h + Number(c.getAttribute("y")) * l);
-  else if ("rect" == f) a.rect(g + Number(c.getAttribute("x")) * k, h + Number(c.getAttribute("y")) * l, Number(c.getAttribute("w")) * k, Number(c.getAttribute("h")) * l);
-  else if ("roundrect" == f) b = c.getAttribute("arcsize"), 0 == b && (b = 100 * mxConstants.RECTANGLE_ROUNDING_FACTOR), m = Number(c.getAttribute("w")) * k, d = Number(c.getAttribute("h")) * l, b =
-    Number(b) / 100, b = Math.min(m * b, d * b), a.roundrect(g +
-      Number(c.getAttribute("x")) * k, h + Number(c.getAttribute("y")) * l, m, d, b, b);
-  else if ("ellipse" == f) a.ellipse(g + Number(c.getAttribute("x")) * k, h + Number(c.getAttribute("y")) * l, Number(c.getAttribute("w")) * k, Number(c.getAttribute("h")) * l);
-  else if ("image" == f) b = this.evaluateAttribute(c, "src", b), a.image(g + Number(c.getAttribute("x")) * k, h + Number(c.getAttribute("y")) * l, Number(c.getAttribute("w")) * k, Number(c.getAttribute(
-    "h")) * l, b, !1, "1" == c.getAttribute("flipH"), "1" == c.getAttribute("flipV"));
-  else if ("text" == f) {
-    m = this.evaluateTextAttribute(c,
-      "str", b);
-    d = "1" == c.getAttribute("vertical") ? -90 : 0;
-    if ("0" == c.getAttribute("align-shape")) {
-      var n = b.rotation,
-        p = 1 == mxUtils.getValue(b.style, mxConstants.STYLE_FLIPH, 0);
-      b = 1 == mxUtils.getValue(b.style, mxConstants.STYLE_FLIPV, 0);
-      d = p && b ? d - n : p || b ? d + n : d - n
-    }
-    d -= c.getAttribute("rotation");
-    a.text(g + Number(c.getAttribute("x")) * k, h + Number(c.getAttribute("y")) * l, 0, 0, m, c.getAttribute("align") || "left", c.getAttribute("valign") || "top", !1, "", !1, !1, d)
-  } else if ("include-shape" == f) n = mxStencilRegistry.getStencil(c.getAttribute("name")),
-    null != n && (g += Number(c.getAttribute("x")) * k, h += Number(c.getAttribute("y")) * l, m = Number(c.getAttribute("w")) * k, d = Number(c.getAttribute("h")) * l, n.drawShape(a, b, g, h, m, d));
-  else if ("fillstroke" == f) a.fillAndStroke();
-  else if ("fill" == f) a.fill();
-  else if ("stroke" == f) a.stroke();
-  else if ("strokewidth" == f) a.setStrokeWidth(Number(c.getAttribute("width")) * m);
-  else if ("dashed" == f) a.setDashed("1" == c.getAttribute("dashed"));
-  else if ("dashpattern" == f) {
-    if (c = c.getAttribute("pattern"), null != c) {
-      c = c.split(" ");
-      k = [];
-      for (l = 0; l <
-        c.length; l++) 0 < c[l].length && k.push(Number(c[l]) * m);
-      c = k.join(" ");
-      a.setDashPattern(c)
-    }
-  } else "strokecolor" == f ? a.setStrokeColor(c.getAttribute("color")) : "linecap" == f ? a.setLineCap(c.getAttribute("cap")) : "linejoin" == f ? a.setLineJoin(c.getAttribute("join")) :
-    "miterlimit" == f ? a.setMiterLimit(Number(c.getAttribute("limit"))) : "fillcolor" == f ? a.setFillColor(c.getAttribute("color")) : "alpha" == f ? a.setAlpha(c.getAttribute("alpha")) :
-    "fontcolor" == f ? a.setFontColor(c.getAttribute("color")) : "fontstyle" == f ? a.setFontStyle(c.getAttribute("style")) :
-    "fontfamily" == f ? a.setFontFamily(c.getAttribute("family")) : "fontsize" == f && a.setFontSize(Number(c.getAttribute("size")) * m);
-  e && ("fillstroke" == f || "fill" == f || "stroke" == f) && a.setShadow(!1)
-};
-
-function mxShape(a) {
-  this.stencil = a;
-  this.strokewidth = 1;
-  this.rotation = 0;
-  this.opacity = 100;
-  this.flipV = this.flipH = !1
-}
-mxShape.prototype.dialect = null;
-mxShape.prototype.scale = 1;
-mxShape.prototype.bounds = null;
-mxShape.prototype.points = null;
-mxShape.prototype.node = null;
-mxShape.prototype.style = null;
-mxShape.prototype.style = null;
-mxShape.prototype.boundingBox = null;
-mxShape.prototype.stencil = null;
-mxShape.prototype.svgStrokeTolerance = 6;
-mxShape.prototype.pointerEvents = !0;
-mxShape.prototype.stencilPointerEvents = !1;
-mxShape.prototype.vmlScale = 1;
-mxShape.prototype.init = function(a) {
-  null == this.node && (this.node = this.create(a), null != a && a.appendChild(this.node))
-};
-mxShape.prototype.isParseVml = function() {
-  return !0
-};
-mxShape.prototype.isHtmlAllowed = function() {
-  return !1
-};
-mxShape.prototype.getSvgScreenOffset = function() {
-  return 1 == mxUtils.mod(Math.max(1, Math.round(this.strokewidth * this.scale)), 2) ? 0.5 : 0
-};
-mxShape.prototype.create = function(a) {
-  var b = null;
-  return b = null != a.ownerSVGElement ? this.createSvg(a) : 8 == document.documentMode || this.dialect == mxConstants.DIALECT_SVG || this.dialect != mxConstants.DIALECT_VML && this.isHtmlAllowed() ?
-    this.createHtml(a) : this.createVml(a)
-};
-mxShape.prototype.createSvg = function() {
-  return document.createElementNS(mxConstants.NS_SVG, "g")
-};
-mxShape.prototype.createVml = function() {
-  var a = document.createElement(mxClient.VML_PREFIX + ":group");
-  a.style.position = "absolute";
-  return a
-};
-mxShape.prototype.createHtml = function() {
-  var a = document.createElement("div");
-  a.style.position = "absolute";
-  return a
-};
-mxShape.prototype.reconfigure = function() {
-  this.redraw()
-};
-mxShape.prototype.redraw = function() {
-  this.updateBoundsFromPoints();
-  this.checkBounds() ? (this.node.style.visibility = "", "DIV" == this.node.nodeName && this.isHtmlAllowed() ? this.redrawHtmlShape() : this.redrawShape(), this.updateBoundingBox()) : (this.node.style
-    .visibility = "hidden", this.boundingBox = null)
-};
-mxShape.prototype.updateBoundsFromPoints = function() {
-  var a = this.points;
-  if (null != a && 0 < a.length && null != a[0]) {
-    this.bounds = new mxRectangle(Number(a[0].x), Number(a[0].y), 1, 1);
-    for (var b = 1; b < this.points.length; b++) null != a[b] && this.bounds.add(new mxRectangle(Number(a[b].x), Number(a[b].y), 1, 1))
-  }
-};
-mxShape.prototype.checkBounds = function() {
-  return null != this.bounds && !isNaN(this.bounds.x) && !isNaN(this.bounds.y) && !isNaN(this.bounds.width) && !isNaN(this.bounds.height) && 0 < this.bounds.width && 0 < this.bounds.height
-};
-mxShape.prototype.createVmlGroup = function() {
-  var a = document.createElement(mxClient.VML_PREFIX + ":group");
-  a.style.position = "absolute";
-  a.style.width = this.node.style.width;
-  a.style.height = this.node.style.height;
-  return a
-};
-mxShape.prototype.redrawShape = function() {
-  var a = this.createCanvas();
-  for (a.pointerEvents = this.pointerEvents; this.node.hasChildNodes();) this.node.removeChild(this.node.lastChild);
-  this.paint(a);
-  this.node != a.root && this.node.insertAdjacentHTML("beforeend", a.root.outerHTML);
-  "DIV" == this.node.nodeName && 8 == document.documentMode && (this.node.style.filter = "", (null == this.stencil || !this.stencilPointerEvents) && mxUtils.addTransparentBackgroundFilter(this.node));
-  this.destroyCanvas(a)
-};
-mxShape.prototype.createCanvas = function() {
-  var a = null,
-    b = null;
-  if (null != this.node.ownerSVGElement) a = new mxSvgCanvas2D(this.node, !1), a.strokeTolerance = this.svgStrokeTolerance, a.blockImagePointerEvents = mxClient.IS_NS && !mxClient.IS_SF && !
-    mxClient.IS_GC, b = this.getSvgScreenOffset(), 0 != b ? this.node.setAttribute("transform", "translate(" + b + "," + b + ")") : this.node.removeAttribute("transform");
-  else {
-    this.updateVmlContainer();
-    var c = Math.max(1, Math.round(this.bounds.width)),
-      d = Math.max(1, Math.round(this.bounds.height)),
-      b = 8 == document.documentMode && this.isParseVml() ? this.createVmlGroup() : this.node,
-      a = new mxVmlCanvas2D(b, !1);
-    "" != b.tagUrn && (b.coordsize = c * this.vmlScale + "," + d * this.vmlScale, a.scale(this.vmlScale), a.vmlScale = this.vmlScale);
-    b = this.scale;
-    a.translate(-Math.round(this.bounds.x / b), -Math.round(this.bounds.y / b))
-  }
-  return a
-};
-mxShape.prototype.updateVmlContainer = function() {
-  this.node.style.left = Math.round(this.bounds.x) + "px";
-  this.node.style.top = Math.round(this.bounds.y) + "px";
-  var a = Math.max(1, Math.round(this.bounds.width)),
-    b = Math.max(1, Math.round(this.bounds.height));
-  this.node.style.width = a + "px";
-  this.node.style.height = b + "px";
-  this.node.style.overflow = "visible"
-};
-mxShape.prototype.destroyCanvas = function(a) {
-  if (a instanceof mxSvgCanvas2D) {
-    for (var b in a.gradients) {
-      var c = a.gradients[b];
-      c.mxRefCount = (c.mxRefCount || 0) + 1
-    }
-    this.releaseSvgGradients(this.oldGradients);
-    this.oldGradients = a.gradients
-  }
-};
-mxShape.prototype.paint = function(a) {
-  var b = this.scale,
-    c = this.bounds.x / b,
-    d = this.bounds.y / b,
-    e = this.bounds.width / b,
-    f = this.bounds.height / b;
-  if (this.isPaintBoundsInverted()) var g = (e - f) / 2,
-    c = c + g,
-    d = d - g,
-    g = e,
-    e = f,
-    f = g;
-  this.updateTransform(a, c, d, e, f);
-  this.configureCanvas(a, c, d, e, f);
-  if (null != this.stencil) this.paintStencilShape(a, c, d, e, f);
-  else if (a.setStrokeWidth(this.strokewidth), null != this.points) {
-    c = [];
-    for (d = 0; d < this.points.length; d++) c.push(new mxPoint(this.points[d].x / b, this.points[d].y / b));
-    this.paintEdgeShape(a,
-      c)
-  } else this.paintVertexShape(a, c, d, e, f)
-};
-mxShape.prototype.configureCanvas = function(a, b, c, d, e) {
-  var f = null;
-  null != this.style && (f = this.style.dashPattern);
-  a.setAlpha(this.opacity / 100);
-  null != this.isShadow && a.setShadow(this.isShadow);
-  null != this.isDashed && a.setDashed(this.isDashed);
-  null != f && a.setDashPattern(f);
-  null != this.gradient ? (b = this.getGradientBounds(a, b, c, d, e), a.setGradient(this.fill, this.gradient, b.x, b.y, b.width, b.height, this.gradientDirection)) : a.setFillColor(this.fill);
-  a.setStrokeColor(this.stroke)
-};
-mxShape.prototype.getGradientBounds = function(a, b, c, d, e) {
-  return new mxRectangle(b, c, d, e)
-};
-mxShape.prototype.updateTransform = function(a, b, c, d, e) {
-  a.scale(this.scale);
-  a.rotate(this.getShapeRotation(), this.flipH, this.flipV, b + d / 2, c + e / 2)
-};
-mxShape.prototype.paintStencilShape = function(a, b, c, d, e) {
-  this.stencilPointerEvents && (this.dialect == mxConstants.DIALECT_SVG ? this.addTransparentBackgroundRectangle(this.node, b, c, d, e) : 8 != document.documentMode && this.setTransparentBackgroundImage(
-    this.node));
-  this.stencil.drawShape(a, this, b, c, d, e)
-};
-mxShape.prototype.paintVertexShape = function(a, b, c, d, e) {
-  this.paintBackground(a, b, c, d, e);
-  a.setShadow(!1);
-  this.paintForeground(a, b, c, d, e)
-};
-mxShape.prototype.paintBackground = function(a, b, c, d, e) {};
-mxShape.prototype.paintForeground = function(a, b, c, d, e) {};
-mxShape.prototype.paintEdgeShape = function(a, b) {};
-mxShape.prototype.getArcSize = function(a, b) {
-  var c = mxUtils.getValue(this.style, mxConstants.STYLE_ARCSIZE, 100 * mxConstants.RECTANGLE_ROUNDING_FACTOR) / 100;
-  return Math.min(a * c, b * c)
-};
-mxShape.prototype.paintGlassEffect = function(a, b, c, d, e, f) {
-  var g = Math.ceil(this.strokewidth / 2);
-  a.setGradient("#ffffff", "#ffffff", b, c, d, 0.6 * e, "south", 0.9, 0.1);
-  a.begin();
-  f += 2 * g;
-  this.isRounded ? (a.moveTo(b - g + f, c - g), a.quadTo(b - g, c - g, b - g, c - g + f), a.lineTo(b - g, c + 0.4 * e), a.quadTo(b + 0.5 * d, c + 0.7 * e, b + d + g, c + 0.4 * e), a.lineTo(b + d +
-    g, c - g + f), a.quadTo(b + d + g, c - g, b + d + g - f, c - g)) : (a.moveTo(b - g, c - g), a.lineTo(b - g, c + 0.4 * e), a.quadTo(b + 0.5 * d, c + 0.7 * e, b + d + g, c + 0.4 * e), a.lineTo(
-    b + d + g, c - g));
-  a.close();
-  a.fill()
-};
-mxShape.prototype.apply = function(a) {
-  this.state = a;
-  this.style = a.style;
-  if (null != this.style) {
-    this.fill = mxUtils.getValue(this.style, mxConstants.STYLE_FILLCOLOR, this.fill);
-    this.gradient = mxUtils.getValue(this.style, mxConstants.STYLE_GRADIENTCOLOR, this.gradient);
-    this.gradientDirection = mxUtils.getValue(this.style, mxConstants.STYLE_GRADIENT_DIRECTION, this.gradientDirection);
-    this.opacity = mxUtils.getValue(this.style, mxConstants.STYLE_OPACITY, this.opacity);
-    this.stroke = mxUtils.getValue(this.style, mxConstants.STYLE_STROKECOLOR,
-      this.stroke);
-    this.strokewidth = mxUtils.getNumber(this.style, mxConstants.STYLE_STROKEWIDTH, this.strokewidth);
-    this.spacing = mxUtils.getValue(this.style, mxConstants.STYLE_SPACING, this.spacing);
-    this.startSize = mxUtils.getNumber(this.style, mxConstants.STYLE_STARTSIZE, this.startSize);
-    this.endSize = mxUtils.getNumber(this.style, mxConstants.STYLE_ENDSIZE, this.endSize);
-    this.startArrow = mxUtils.getValue(this.style, mxConstants.STYLE_STARTARROW, this.startArrow);
-    this.endArrow = mxUtils.getValue(this.style, mxConstants.STYLE_ENDARROW,
-      this.endArrow);
-    this.rotation = mxUtils.getValue(this.style, mxConstants.STYLE_ROTATION, this.rotation);
-    this.direction = mxUtils.getValue(this.style, mxConstants.STYLE_DIRECTION, this.direction);
-    this.flipH = 1 == mxUtils.getValue(this.style, mxConstants.STYLE_FLIPH, 0);
-    this.flipV = 1 == mxUtils.getValue(this.style, mxConstants.STYLE_FLIPV, 0);
-    null != this.stencil && (this.flipH = 1 == mxUtils.getValue(this.style, "stencilFlipH", 0) || this.flipH, this.flipV = 1 == mxUtils.getValue(this.style, "stencilFlipV", 0) || this.flipV);
-    if ("north" ==
-      this.direction || "south" == this.direction) a = this.flipH, this.flipH = this.flipV, this.flipV = a;
-    this.isShadow = 1 == mxUtils.getValue(this.style, mxConstants.STYLE_SHADOW, this.isShadow);
-    this.isDashed = 1 == mxUtils.getValue(this.style, mxConstants.STYLE_DASHED, this.isDashed);
-    this.isRounded = 1 == mxUtils.getValue(this.style, mxConstants.STYLE_ROUNDED, this.isRounded);
-    this.glass = 1 == mxUtils.getValue(this.style, mxConstants.STYLE_GLASS, this.glass);
-    "none" == this.fill && (this.fill = null);
-    "none" == this.gradient && (this.gradient = null);
-    "none" == this.stroke && (this.stroke = null)
-  }
-};
-mxShape.prototype.setCursor = function(a) {
-  null == a && (a = "");
-  this.cursor = a;
-  null != this.node && (this.node.style.cursor = a)
-};
-mxShape.prototype.getCursor = function() {
-  return this.cursor
-};
-mxShape.prototype.updateBoundingBox = function() {
-  if (null != this.bounds) {
-    var a = this.createBoundingBox();
-    if (null != a) {
-      this.augmentBoundingBox(a);
-      var b = this.getShapeRotation();
-      0 != b && (a = mxUtils.getBoundingBox(a, b));
-      a.x = Math.floor(a.x);
-      a.y = Math.floor(a.y);
-      a.width = Math.ceil(a.width);
-      a.height = Math.ceil(a.height)
-    }
-    this.boundingBox = a
-  }
-};
-mxShape.prototype.createBoundingBox = function() {
-  var a = this.bounds.clone();
-  if (this.isPaintBoundsInverted()) {
-    var b = (a.width - a.height) / 2;
-    a.x += b;
-    a.y -= b;
-    b = a.width;
-    a.width = a.height;
-    a.height = b
-  }
-  return a
-};
-mxShape.prototype.augmentBoundingBox = function(a) {
-  this.isShadow && (a.width += Math.ceil(mxConstants.SHADOW_OFFSET_X * this.scale), a.height += Math.ceil(mxConstants.SHADOW_OFFSET_Y * this.scale));
-  var b = Math.ceil(this.strokewidth * this.scale);
-  a.grow(Math.ceil(b / 2))
-};
-mxShape.prototype.isPaintBoundsInverted = function() {
-  return null == this.stencil && ("north" == this.direction || "south" == this.direction)
-};
-mxShape.prototype.getRotation = function() {
-  return null != this.rotation ? this.rotation : 0
-};
-mxShape.prototype.getTextRotation = function() {
-  var a = this.getRotation();
-  1 != mxUtils.getValue(this.style, mxConstants.STYLE_HORIZONTAL, 1) && (a += mxText.prototype.verticalTextRotation);
-  return a
-};
-mxShape.prototype.getShapeRotation = function() {
-  var a = this.getRotation();
-  null != this.direction && ("north" == this.direction ? a += 270 : "west" == this.direction ? a += 180 : "south" == this.direction && (a += 90));
-  return a
-};
-mxShape.prototype.addTransparentBackgroundRectangle = function(a, b, c, d, e) {
-  a = document.createElementNS(mxConstants.NS_SVG, "rect");
-  a.setAttribute("x", b);
-  a.setAttribute("y", c);
-  a.setAttribute("width", d);
-  a.setAttribute("height", e);
-  a.setAttribute("fill", "none");
-  a.setAttribute("stroke", "none");
-  a.setAttribute("pointer-events", "all");
-  this.node.appendChild(a)
-};
-mxShape.prototype.setTransparentBackgroundImage = function(a) {
-  a.style.backgroundImage = "url('" + mxClient.imageBasePath + "/transparent.gif')"
-};
-mxShape.prototype.releaseSvgGradients = function(a) {
-  if (null != a)
-    for (var b in a) {
-      var c = a[b];
-      c.mxRefCount = (c.mxRefCount || 0) - 1;
-      0 == c.mxRefCount && null != c.parentNode && c.parentNode.removeChild(c)
-    }
-};
-mxShape.prototype.destroy = function() {
-  null != this.node && (mxEvent.release(this.node), null != this.node.parentNode && this.node.parentNode.removeChild(this.node), this.node = null);
-  this.releaseSvgGradients(this.oldGradients);
-  this.oldGradients = null
-};
-var mxStencilRegistry = {
-    stencils: [],
-    addStencil: function(a, b) {
-      mxStencilRegistry.stencils[a] = b
-    },
-    getStencil: function(a) {
-      return mxStencilRegistry.stencils[a]
-    }
-  },
-  mxMarker = {
-    markers: [],
-    addMarker: function(a, b) {
-      mxMarker.markers[a] = b
-    },
-    createMarker: function(a, b, c, d, e, f, g, h, k, l) {
-      var m = mxMarker.markers[c];
-      return null != m ? m(a, b, c, d, e, f, g, h, k, l) : null
-    }
-  };
-(function() {
-  function a(a, b, e, f, g, h, k, l, m, n) {
-    b = 1.118 * g * m;
-    l = 1.118 * h * m;
-    g *= k + m;
-    h *= k + m;
-    var p = f.clone();
-    p.x -= b;
-    p.y -= l;
-    k = e != mxConstants.ARROW_CLASSIC ? 1 : 0.75;
-    f.x += -g * k - b;
-    f.y += -h * k - l;
-    return function() {
-      a.begin();
-      a.moveTo(p.x, p.y);
-      a.lineTo(p.x - g - h / 2, p.y - h + g / 2);
-      e == mxConstants.ARROW_CLASSIC && a.lineTo(p.x - 3 * g / 4, p.y - 3 * h / 4);
-      a.lineTo(p.x + h / 2 - g, p.y - h - g / 2);
-      a.close();
-      n ? a.fillAndStroke() : a.stroke()
-    }
-  }
-
-  function b(a, b, e, f, g, h, k, l, m, n) {
-    l = e == mxConstants.ARROW_DIAMOND ? 0.7071 : 0.9862;
-    b = g * m * l;
-    l *= h * m;
-    g *= k + m;
-    h *= k + m;
-    var p = f.clone();
-    p.x -= b;
-    p.y -= l;
-    f.x += -g - b;
-    f.y += -h - l;
-    var q = e == mxConstants.ARROW_DIAMOND ? 2 : 3.4;
-    return function() {
-      a.begin();
-      a.moveTo(p.x, p.y);
-      a.lineTo(p.x - g / 2 - h / q, p.y + g / q - h / 2);
-      a.lineTo(p.x - g, p.y - h);
-      a.lineTo(p.x - g / 2 + h / q, p.y - h / 2 - g / q);
-      a.close();
-      n ? a.fillAndStroke() : a.stroke()
-    }
-  }
-  mxMarker.addMarker("classic", a);
-  mxMarker.addMarker("block", a);
-  mxMarker.addMarker("open", function(a, b, e, f, g, h, k, l, m, n) {
-    b = 1.118 * g * m;
-    e = 1.118 * h * m;
-    g *= k + m;
-    h *= k + m;
-    var p = f.clone();
-    p.x -= b;
-    p.y -= e;
-    f.x += 2 * -b;
-    f.y += 2 * -e;
-    return function() {
-      a.begin();
-      a.moveTo(p.x - g -
-        h / 2, p.y - h + g / 2);
-      a.lineTo(p.x, p.y);
-      a.lineTo(p.x + h / 2 - g, p.y - h - g / 2);
-      a.stroke()
-    }
-  });
-  mxMarker.addMarker("oval", function(a, b, e, f, g, h, k, l, m, n) {
-    var p = k / 2,
-      q = f.clone();
-    f.x -= g * p;
-    f.y -= h * p;
-    return function() {
-      a.ellipse(q.x - p, q.y - p, k, k);
-      n ? a.fillAndStroke() : a.stroke()
-    }
-  });
-  mxMarker.addMarker("diamond", b);
-  mxMarker.addMarker("diamondThin", b)
-})();
-
-function mxActor(a, b, c, d) {
-  mxShape.call(this);
-  this.bounds = a;
-  this.fill = b;
-  this.stroke = c;
-  this.strokewidth = null != d ? d : 1
-}
-mxUtils.extend(mxActor, mxShape);
-mxActor.prototype.paintVertexShape = function(a, b, c, d, e) {
-  a.translate(b, c);
-  a.begin();
-  this.redrawPath(a, b, c, d, e);
-  a.fillAndStroke()
-};
-mxActor.prototype.redrawPath = function(a, b, c, d, e) {
-  b = d / 3;
-  a.moveTo(0, e);
-  a.curveTo(0, 3 * e / 5, 0, 2 * e / 5, d / 2, 2 * e / 5);
-  a.curveTo(d / 2 - b, 2 * e / 5, d / 2 - b, 0, d / 2, 0);
-  a.curveTo(d / 2 + b, 0, d / 2 + b, 2 * e / 5, d / 2, 2 * e / 5);
-  a.curveTo(d, 2 * e / 5, d, 3 * e / 5, d, e);
-  a.close()
-};
-
-function mxCloud(a, b, c, d) {
-  mxActor.call(this);
-  this.bounds = a;
-  this.fill = b;
-  this.stroke = c;
-  this.strokewidth = null != d ? d : 1
-}
-mxUtils.extend(mxCloud, mxActor);
-mxCloud.prototype.redrawPath = function(a, b, c, d, e) {
-  a.moveTo(0.25 * d, 0.25 * e);
-  a.curveTo(0.05 * d, 0.25 * e, 0, 0.5 * e, 0.16 * d, 0.55 * e);
-  a.curveTo(0, 0.66 * e, 0.18 * d, 0.9 * e, 0.31 * d, 0.8 * e);
-  a.curveTo(0.4 * d, e, 0.7 * d, e, 0.8 * d, 0.8 * e);
-  a.curveTo(d, 0.8 * e, d, 0.6 * e, 0.875 * d, 0.5 * e);
-  a.curveTo(d, 0.3 * e, 0.8 * d, 0.1 * e, 0.625 * d, 0.2 * e);
-  a.curveTo(0.5 * d, 0.05 * e, 0.3 * d, 0.05 * e, 0.25 * d, 0.25 * e);
-  a.close()
-};
-
-function mxRectangleShape(a, b, c, d) {
-  mxShape.call(this);
-  this.bounds = a;
-  this.fill = b;
-  this.stroke = c;
-  this.strokewidth = null != d ? d : 1
-}
-mxUtils.extend(mxRectangleShape, mxShape);
-mxRectangleShape.prototype.isHtmlAllowed = function() {
-  return !this.isRounded && !this.glass && 0 == this.rotation
-};
-mxRectangleShape.prototype.paintBackground = function(a, b, c, d, e) {
-  if (this.isRounded) {
-    var f = mxUtils.getValue(this.style, mxConstants.STYLE_ARCSIZE, 100 * mxConstants.RECTANGLE_ROUNDING_FACTOR) / 100,
-      f = Math.min(d * f, e * f);
-    a.roundrect(b, c, d, e, f, f)
-  } else a.rect(b, c, d, e);
-  a.fillAndStroke()
-};
-mxRectangleShape.prototype.paintForeground = function(a, b, c, d, e) {
-  this.glass && this.paintGlassEffect(a, b, c, d, e, this.getArcSize(d + this.strokewidth, e + this.strokewidth))
-};
-mxRectangleShape.prototype.redrawHtmlShape = function() {
-  this.updateHtmlBounds(this.node);
-  this.updateHtmlFilters(this.node);
-  this.updateHtmlColors(this.node)
-};
-mxRectangleShape.prototype.updateHtmlBounds = function(a) {
-  var b = 9 <= document.documentMode ? 0 : Math.ceil(this.strokewidth * this.scale);
-  a.style.borderWidth = Math.max(1, b) + "px";
-  a.style.overflow = "hidden";
-  a.style.left = Math.round(this.bounds.x - b / 2) + "px";
-  a.style.top = Math.round(this.bounds.y - b / 2) + "px";
-  "CSS1Compat" == document.compatMode && (b = -b);
-  a.style.width = Math.round(Math.max(0, this.bounds.width + b)) + "px";
-  a.style.height = Math.round(Math.max(0, this.bounds.height + b)) + "px"
-};
-mxRectangleShape.prototype.updateHtmlColors = function(a) {
-  var b = this.stroke;
-  null != b && b != mxConstants.NONE ? (a.style.borderColor = b, this.isDashed ? a.style.borderStyle = "dashed" : 0 < this.strokewidth && (a.style.borderStyle = "solid"), a.style.borderWidth = Math
-    .max(1, Math.ceil(this.strokewidth * this.scale)) + "px") : a.style.borderWidth = "0px";
-  b = this.fill;
-  null != b && b != mxConstants.NONE ? (a.style.backgroundColor = b, a.style.backgroundImage = "none") : this.pointerEvents ? a.style.backgroundColor = "transparent" : 8 == document.documentMode ?
-    mxUtils.addTransparentBackgroundFilter(a) : this.setTransparentBackgroundImage(a)
-};
-mxRectangleShape.prototype.updateHtmlFilters = function(a) {
-  var b = "";
-  100 > this.opacity && (b += "alpha(opacity\x3d" + this.opacity + ")");
-  this.isShadow && (b += "progid:DXImageTransform.Microsoft.dropShadow (OffX\x3d'" + Math.round(mxConstants.SHADOW_OFFSET_X * this.scale) + "', OffY\x3d'" + Math.round(mxConstants.SHADOW_OFFSET_Y *
-    this.scale) + "', Color\x3d'" + mxConstants.SHADOWCOLOR + "')");
-  if (this.gradient) {
-    var c = this.fill,
-      d = this.gradient,
-      e = "0",
-      f = {
-        east: 0,
-        south: 1,
-        west: 2,
-        north: 3
-      },
-      g = null != this.direction ? f[this.direction] : 0;
-    null !=
-      this.gradientDirection && (g = mxUtils.mod(g + f[this.gradientDirection] - 1, 4));
-    1 == g ? (e = "1", f = c, c = d, d = f) : 2 == g ? (f = c, c = d, d = f) : 3 == g && (e = "1");
-    b += "progid:DXImageTransform.Microsoft.gradient(startColorStr\x3d'" + c + "', endColorStr\x3d'" + d + "', gradientType\x3d'" + e + "')"
-  }
-  a.style.filter = b
-};
-
-function mxEllipse(a, b, c, d) {
-  mxShape.call(this);
-  this.bounds = a;
-  this.fill = b;
-  this.stroke = c;
-  this.strokewidth = null != d ? d : 1
-}
-mxUtils.extend(mxEllipse, mxShape);
-mxEllipse.prototype.paintVertexShape = function(a, b, c, d, e) {
-  a.ellipse(b, c, d, e);
-  a.fillAndStroke()
-};
-
-function mxDoubleEllipse(a, b, c, d) {
-  mxShape.call(this);
-  this.bounds = a;
-  this.fill = b;
-  this.stroke = c;
-  this.strokewidth = null != d ? d : 1
-}
-mxUtils.extend(mxDoubleEllipse, mxShape);
-mxDoubleEllipse.prototype.vmlScale = 10;
-mxDoubleEllipse.prototype.paintBackground = function(a, b, c, d, e) {
-  a.ellipse(b, c, d, e);
-  a.fillAndStroke()
-};
-mxDoubleEllipse.prototype.paintForeground = function(a, b, c, d, e) {
-  var f = Math.min(4, Math.min(d / 5, e / 5));
-  d -= 2 * f;
-  e -= 2 * f;
-  0 < d && 0 < e && a.ellipse(b + f, c + f, d, e);
-  a.stroke()
-};
-
-function mxRhombus(a, b, c, d) {
-  mxShape.call(this);
-  this.bounds = a;
-  this.fill = b;
-  this.stroke = c;
-  this.strokewidth = null != d ? d : 1
-}
-mxUtils.extend(mxRhombus, mxShape);
-mxRhombus.prototype.paintVertexShape = function(a, b, c, d, e) {
-  var f = d / 2,
-    g = e / 2;
-  a.begin();
-  a.moveTo(b + f, c);
-  a.lineTo(b + d, c + g);
-  a.lineTo(b + f, c + e);
-  a.lineTo(b, c + g);
-  a.close();
-  a.fillAndStroke()
-};
-
-function mxPolyline(a, b, c) {
-  mxShape.call(this);
-  this.points = a;
-  this.stroke = b;
-  this.strokewidth = null != c ? c : 1
-}
-mxUtils.extend(mxPolyline, mxShape);
-mxPolyline.prototype.getRotation = function() {
-  return 0
-};
-mxPolyline.prototype.paintEdgeShape = function(a, b) {
-  this.paintLine(a, b, this.isRounded)
-};
-mxPolyline.prototype.paintLine = function(a, b, c) {
-  var d = mxUtils.getValue(this.style, mxConstants.STYLE_ARCSIZE, mxConstants.LINE_ARCSIZE) / 2,
-    e = b[0],
-    f = b[b.length - 1];
-  a.begin();
-  a.moveTo(e.x, e.y);
-  for (var g = 1; g < b.length - 1; g++) {
-    var h = b[g],
-      k = e.x - h.x,
-      e = e.y - h.y;
-    if (c && g < b.length - 1 && (0 != k || 0 != e)) {
-      var l = Math.sqrt(k * k + e * e),
-        k = k * Math.min(d, l / 2) / l,
-        e = e * Math.min(d, l / 2) / l;
-      a.lineTo(h.x + k, h.y + e);
-      e = b[g + 1];
-      k = e.x - h.x;
-      e = e.y - h.y;
-      l = Math.max(1, Math.sqrt(k * k + e * e));
-      k = k * Math.min(d, l / 2) / l;
-      e = e * Math.min(d, l / 2) / l;
-      k = h.x + k;
-      e = h.y + e;
-      a.quadTo(h.x,
-        h.y, k, e);
-      h = new mxPoint(k, e)
-    } else a.lineTo(h.x, h.y);
-    e = h
-  }
-  a.lineTo(f.x, f.y);
-  a.stroke()
-};
-
-function mxArrow(a, b, c, d, e, f, g) {
-  mxShape.call(this);
-  this.points = a;
-  this.fill = b;
-  this.stroke = c;
-  this.strokewidth = null != d ? d : 1;
-  this.arrowWidth = null != e ? e : mxConstants.ARROW_WIDTH;
-  this.spacing = null != f ? f : mxConstants.ARROW_SPACING;
-  this.endSize = null != g ? g : mxConstants.ARROW_SIZE
-}
-mxUtils.extend(mxArrow, mxShape);
-mxArrow.prototype.paintEdgeShape = function(a, b) {
-  var c = mxConstants.ARROW_SPACING,
-    d = mxConstants.ARROW_WIDTH,
-    e = mxConstants.ARROW_SIZE,
-    f = b[0],
-    g = b[b.length - 1],
-    h = g.x - f.x,
-    k = g.y - f.y,
-    l = Math.sqrt(h * h + k * k),
-    m = l - 2 * c - e,
-    h = h / l,
-    k = k / l,
-    l = d * k / 3,
-    d = -d * h / 3,
-    e = f.x - l / 2 + c * h,
-    f = f.y - d / 2 + c * k,
-    n = e + l,
-    p = f + d,
-    q = n + m * h,
-    m = p + m * k,
-    s = q + l,
-    r = m + d,
-    t = s - 3 * l,
-    v = r - 3 * d;
-  a.begin();
-  a.moveTo(e, f);
-  a.lineTo(n, p);
-  a.lineTo(q, m);
-  a.lineTo(s, r);
-  a.lineTo(g.x - c * h, g.y - c * k);
-  a.lineTo(t, v);
-  a.lineTo(t + l, v + d);
-  a.close();
-  a.fillAndStroke()
-};
-
-function mxText(a, b, c, d, e, f, g, h, k, l, m, n, p, q, s, r, t, v, w, u) {
-  mxShape.call(this);
-  this.value = a;
-  this.bounds = b;
-  this.color = null != e ? e : "black";
-  this.align = null != c ? c : "";
-  this.valign = null != d ? d : "";
-  this.family = null != f ? f : mxConstants.DEFAULT_FONTFAMILY;
-  this.size = null != g ? g : mxConstants.DEFAULT_FONTSIZE;
-  this.fontStyle = null != h ? h : mxConstants.DEFAULT_FONTSTYLE;
-  this.spacing = parseInt(k || 2);
-  this.spacingTop = this.spacing + parseInt(l || 0);
-  this.spacingRight = this.spacing + parseInt(m || 0);
-  this.spacingBottom = this.spacing + parseInt(n || 0);
-  this.spacingLeft = this.spacing + parseInt(p || 0);
-  this.horizontal = null != q ? q : !0;
-  this.background = s;
-  this.border = r;
-  this.wrap = null != t ? t : !1;
-  this.clipped = null != v ? v : !1;
-  this.overflow = null != w ? w : "visible";
-  this.labelPadding = null != u ? u : 0;
-  this.rotation = 0
-}
-mxUtils.extend(mxText, mxShape);
-mxText.prototype.baseSpacingTop = 0;
-mxText.prototype.baseSpacingBottom = 0;
-mxText.prototype.baseSpacingLeft = 0;
-mxText.prototype.baseSpacingRight = 0;
-mxText.prototype.replaceLinefeeds = !0;
-mxText.prototype.verticalTextRotation = -90;
-mxText.prototype.ignoreClippedStringSize = !0;
-mxText.prototype.ignoreStringSize = !1;
-mxText.prototype.isParseVml = function() {
-  return !1
-};
-mxText.prototype.isHtmlAllowed = function() {
-  return 8 != document.documentMode
-};
-mxText.prototype.getSvgScreenOffset = function() {
-  return 0
-};
-mxText.prototype.checkBounds = function() {
-  return null != this.bounds && !isNaN(this.bounds.x) && !isNaN(this.bounds.y) && !isNaN(this.bounds.width) && !isNaN(this.bounds.height)
-};
-mxText.prototype.updateBoundingBox = function() {
-  var a = this.node;
-  8 == document.documentMode && null != a.firstChild && (a = a.firstChild, null != a.firstChild && (a = a.firstChild));
-  this.boundingBox = this.bounds.clone();
-  var b = this.getTextRotation();
-  if (!this.ignoreStringSize && null != a && "fill" != this.overflow && (!this.clipped || !this.ignoreClippedStringSize)) {
-    var c = null,
-      d = null;
-    if (null != a.ownerSVGElement)
-      if (null != a.firstChild && null != a.firstChild.firstChild && "foreignObject" == a.firstChild.firstChild.nodeName) a = a.firstChild.firstChild,
-        c = this.wrap ? this.bounds.width : parseInt(a.getAttribute("width")) * this.scale, d = parseInt(a.getAttribute("height")) * this.scale;
-      else {
-        b = a.getBBox();
-        if (0 == b.width && 0 == b.height) return;
-        this.boundingBox = new mxRectangle(b.x, b.y, b.width, b.height);
-        b = 0
-      } else d = this.state.view.textDiv, null != this.offsetWidth && null != this.offsetHeight ? (c = this.wrap ? this.bounds.width : this.offsetWidth * this.scale, d = this.offsetHeight * this.scale) :
-      null != d ? (this.updateFont(d), this.updateSize(d), mxUtils.isNode(this.value) ? d.innerHTML = this.value.outerHTML :
-        (c = this.replaceLinefeeds ? this.value.replace(/\n/g, "\x3cbr/\x3e") : this.value, d.innerHTML = c), c = this.wrap ? this.bounds.width : d.offsetWidth * this.scale, d = d.offsetHeight *
-        this.scale) : (c = this.wrap ? this.bounds.width : a.offsetWidth * this.scale, d = a.offsetHeight * this.scale);
-    null != c && null != d && (this.boundingBox = new mxRectangle(this.bounds.x + this.margin.x * c, this.bounds.y + this.margin.y * d, c, d))
-  } else this.boundingBox.x += this.margin.x * this.boundingBox.width, this.boundingBox.y += this.margin.y * this.boundingBox.height;
-  null !=
-    this.boundingBox && (0 != b && (b = mxUtils.getBoundingBox(this.boundingBox, b), this.boundingBox.x = b.x, this.boundingBox.y = b.y, mxClient.IS_QUIRKS || (this.boundingBox.width = b.width,
-      this.boundingBox.height = b.height)), this.boundingBox.x = Math.floor(this.boundingBox.x), this.boundingBox.y = Math.floor(this.boundingBox.y), this.boundingBox.width = Math.ceil(this.boundingBox
-      .width), this.boundingBox.height = Math.ceil(this.boundingBox.height))
-};
-mxText.prototype.getShapeRotation = function() {
-  return 0
-};
-mxText.prototype.getTextRotation = function() {
-  return null != this.state && null != this.state.shape ? this.state.shape.getTextRotation() : 0
-};
-mxText.prototype.isPaintBoundsInverted = function() {
-  return !this.horizontal && null != this.state && this.state.view.graph.model.isVertex(this.state.cell)
-};
-mxText.prototype.configureCanvas = function(a, b, c, d, e) {
-  mxShape.prototype.configureCanvas.apply(this, arguments);
-  a.setFontColor(this.color);
-  a.setFontBackgroundColor(this.background);
-  a.setFontBorderColor(this.border);
-  a.setFontFamily(this.family);
-  a.setFontSize(this.size);
-  a.setFontStyle(this.fontStyle)
-};
-mxText.prototype.updateVmlContainer = function() {
-  this.node.style.left = Math.round(this.bounds.x) + "px";
-  this.node.style.top = Math.round(this.bounds.y) + "px";
-  this.node.style.width = "1px";
-  this.node.style.height = "1px";
-  this.node.style.overflow = "visible"
-};
-mxText.prototype.paint = function(a) {
-  var b = this.scale,
-    c = this.bounds.x / b,
-    d = this.bounds.y / b,
-    e = this.bounds.width / b,
-    b = this.bounds.height / b;
-  this.updateTransform(a, c, d, e, b);
-  this.configureCanvas(a, c, d, e, b);
-  var f = mxUtils.isNode(this.value) || this.dialect == mxConstants.DIALECT_STRICTHTML,
-    g = f || a instanceof mxVmlCanvas2D ? "html" : "",
-    h = this.value;
-  !f && "html" == g && (h = mxUtils.htmlEntities(h, !1));
-  h = !mxUtils.isNode(this.value) && this.replaceLinefeeds && "html" == g ? h.replace(/\n/g, "\x3cbr/\x3e") : h;
-  a.text(c, d, e, b, h, this.align,
-    this.valign, this.wrap, g, "fill" == this.overflow, this.clipped, this.getTextRotation())
-};
-mxText.prototype.redrawHtmlShape = function() {
-  var a = this.node.style;
-  a.opacity = 1 > this.opacity ? this.opacity : "";
-  a.overflow = "";
-  a.width = "";
-  a.height = "";
-  this.updateFont(this.node);
-  this.updateSize(this.node);
-  this.updateValue();
-  this.offsetHeight = this.offsetWidth = null;
-  null != mxClient.CSS_PREFIX ? this.updateHtmlTransform() : this.updateHtmlFilter()
-};
-mxText.prototype.updateHtmlTransform = function() {
-  var a = this.getTextRotation(),
-    b = this.node.style,
-    c = this.margin.x,
-    d = this.margin.y;
-  0 != a ? (b[mxClient.CSS_PREFIX + "TransformOrigin"] = 100 * -c + "% " + 100 * -d + "%", b[mxClient.CSS_PREFIX + "Transform"] = "translate(" + 100 * c + "%," + 100 * d + "%)scale(" + this.scale +
-    ") rotate(" + a + "deg)") : (b[mxClient.CSS_PREFIX + "TransformOrigin"] = "0% 0%", b[mxClient.CSS_PREFIX + "Transform"] = "scale(" + this.scale + ")translate(" + 100 * c + "%," + 100 * d +
-    "%)");
-  b.left = Math.round(this.bounds.x) + "px";
-  b.top = Math.round(this.bounds.y) +
-    "px"
-};
-mxText.prototype.updateHtmlFilter = function() {
-  var a = this.node.style,
-    b = this.margin.x,
-    c = this.margin.y,
-    d = this.scale;
-  a.filter = "";
-  var e = 0,
-    f = 0,
-    g = null != this.state ? this.state.view.textDiv : null;
-  if (null != g) {
-    g.style.overflow = "";
-    g.style.height = "";
-    g.style.width = "";
-    this.updateFont(g);
-    this.updateSize(g);
-    if (mxUtils.isNode(this.value)) g.innerHTML = this.value.outerHTML;
-    else {
-      var h = this.value;
-      this.dialect != mxConstants.DIALECT_STRICTHTML && (h = mxUtils.htmlEntities(h, !1));
-      h = this.replaceLinefeeds ? h.replace(/\n/g, "\x3cbr/\x3e") : h;
-      g.innerHTML = h
-    }
-    e = g.offsetWidth + 2;
-    f = g.offsetHeight + 2
-  } else e = this.node.offsetWidth, f = this.node.offsetHeight + 1;
-  this.offsetWidth = e;
-  this.offsetHeight = f;
-  g = this.bounds.width / d;
-  h = this.bounds.height / d;
-  mxClient.IS_QUIRKS && (this.clipped || "fill" == this.overflow) && 0 < h ? (h = Math.min(h, f), a.height = Math.round(h + 1) + "px") : h = f;
-  "fill" != this.overflow && (mxClient.IS_QUIRKS && (this.clipped || this.wrap) && 0 < g ? (g = Math.min(g, e), a.width = Math.round(g) + "px") : g = e);
-  var h = h * d,
-    g = g * d,
-    e = this.getTextRotation() * (Math.PI / 180),
-    f = parseFloat(parseFloat(Math.cos(e)).toFixed(8)),
-    k = parseFloat(parseFloat(Math.sin(-e)).toFixed(8)),
-    e = e % (2 * Math.PI);
-  0 > e && (e += 2 * Math.PI);
-  e %= Math.PI;
-  e > Math.PI / 2 && (e = Math.PI - e);
-  var l = Math.cos(e),
-    m = Math.sin(-e),
-    b = g * -(b + 0.5),
-    c = h * -(c + 0.5),
-    n = (h - h * l + g * m) / 2 + k * b - f * c;
-  0 != e && (a.filter = "progid:DXImageTransform.Microsoft.Matrix(M11\x3d" + f + ", M12\x3d" + k + ", M21\x3d" + -k + ", M22\x3d" + f + ", sizingMethod\x3d'auto expand')");
-  a.zoom = d;
-  a.left = Math.round(this.bounds.x + ((g - g * l + h * m) / 2 - f * b - k * c) - g / 2) + "px";
-  a.top = Math.round(this.bounds.y + n - h / 2) + "px"
-};
-mxText.prototype.updateValue = function() {
-  if (mxUtils.isNode(this.value)) this.node.innerHTML = "", this.node.appendChild(this.value);
-  else {
-    var a = this.value;
-    this.dialect != mxConstants.DIALECT_STRICTHTML && (a = mxUtils.htmlEntities(a, !1));
-    var a = this.replaceLinefeeds ? a.replace(/\n/g, "\x3cbr/\x3e") : a,
-      b = null != this.background && this.background != mxConstants.NONE ? this.background : null,
-      c = null != this.border && this.border != mxConstants.NONE ? this.border : null;
-    if (null != b || null != c)
-      if ("fill" == this.overflow) null != b && (this.node.style.backgroundColor =
-        b), null != c && (this.node.style.border = "1px solid " + c);
-      else {
-        var d = "";
-        null != b && (d += "background-color:" + b + ";");
-        null != c && (d += "border:1px solid " + c + ";");
-        a = '\x3cdiv style\x3d"zoom:1;' + d + "display:inline-block;_display:inline;padding-bottom:1px;padding-right:1px;line-height:" + this.node.style.lineHeight + '"\x3e' + a + "\x3c/div\x3e";
-        this.node.style.lineHeight = ""
-      }
-    this.node.innerHTML = a
-  }
-};
-mxText.prototype.updateFont = function(a) {
-  a = a.style;
-  a.lineHeight = Math.round(this.size * mxConstants.LINE_HEIGHT) + "px";
-  a.fontSize = Math.round(this.size) + "px";
-  a.fontFamily = this.family;
-  a.verticalAlign = "top";
-  a.color = this.color;
-  a.fontWeight = (this.fontStyle & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD ? "bold" : "";
-  a.fontStyle = (this.fontStyle & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC ? "italic" : "";
-  a.fontDecoration = (this.fontStyle & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE ? "underline" : "";
-  a.textAlign =
-    this.align == mxConstants.ALIGN_CENTER ? "center" : this.align == mxConstants.ALIGN_RIGHT ? "right" : "left"
-};
-mxText.prototype.updateSize = function(a) {
-  var b = Math.round(this.bounds.width / this.scale),
-    c = Math.round(this.bounds.height / this.scale);
-  a = a.style;
-  this.clipped ? (a.overflow = "hidden", 0 < c && (a.maxHeight = c + "px"), 0 < b && (a.width = b + "px")) : "fill" == this.overflow && (a.width = b + "px", 0 < c && (a.maxHeight = c + "px"));
-  this.wrap ? (!this.clipped && 0 < b && (a.width = b + "px"), a.whiteSpace = "normal") : a.whiteSpace = "nowrap"
-};
-mxText.prototype.updateMargin = function() {
-  this.margin = mxUtils.getAlignmentAsPoint(this.align, this.valign)
-};
-mxText.prototype.getSpacing = function() {
-  var a = 0,
-    b = 0,
-    a = this.align == mxConstants.ALIGN_CENTER ? (this.spacingLeft - this.spacingRight) / 2 : this.align == mxConstants.ALIGN_RIGHT ? -this.spacingRight - this.baseSpacingRight : this.spacingLeft +
-    this.baseSpacingLeft,
-    b = this.valign == mxConstants.ALIGN_MIDDLE ? (this.spacingTop - this.spacingBottom) / 2 : this.valign == mxConstants.ALIGN_BOTTOM ? -this.spacingBottom - this.baseSpacingBottom : this.spacingTop +
-    this.baseSpacingTop;
-  return new mxPoint(a, b)
-};
-
-function mxTriangle() {
-  mxActor.call(this)
-}
-mxUtils.extend(mxTriangle, mxActor);
-mxTriangle.prototype.redrawPath = function(a, b, c, d, e) {
-  a.moveTo(0, 0);
-  a.lineTo(d, 0.5 * e);
-  a.lineTo(0, e);
-  a.close()
-};
-
-function mxHexagon() {
-  mxActor.call(this)
-}
-mxUtils.extend(mxHexagon, mxActor);
-mxHexagon.prototype.redrawPath = function(a, b, c, d, e) {
-  a.moveTo(0.25 * d, 0);
-  a.lineTo(0.75 * d, 0);
-  a.lineTo(d, 0.5 * e);
-  a.lineTo(0.75 * d, e);
-  a.lineTo(0.25 * d, e);
-  a.lineTo(0, 0.5 * e);
-  a.close()
-};
-
-function mxLine(a, b, c) {
-  mxShape.call(this);
-  this.bounds = a;
-  this.stroke = b;
-  this.strokewidth = null != c ? c : 1
-}
-mxUtils.extend(mxLine, mxShape);
-mxLine.prototype.paintVertexShape = function(a, b, c, d, e) {
-  c += e / 2;
-  a.begin();
-  a.moveTo(b, c);
-  a.lineTo(b + d, c);
-  a.stroke()
-};
-
-function mxImageShape(a, b, c, d, e) {
-  mxShape.call(this);
-  this.bounds = a;
-  this.image = b;
-  this.fill = c;
-  this.stroke = d;
-  this.strokewidth = null != e ? e : 1;
-  this.shadow = !1
-}
-mxUtils.extend(mxImageShape, mxRectangleShape);
-mxImageShape.prototype.preserveImageAspect = !0;
-mxImageShape.prototype.getSvgScreenOffset = function() {
-  return !mxClient.IS_IE ? 0.5 : 0
-};
-mxImageShape.prototype.apply = function(a) {
-  mxShape.prototype.apply.apply(this, arguments);
-  this.gradient = this.stroke = this.fill = null;
-  null != this.style && (this.fill = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_BACKGROUND), this.stroke = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_BORDER), this.preserveImageAspect =
-    1 == mxUtils.getNumber(this.style, mxConstants.STYLE_IMAGE_ASPECT, 1), this.flipH = this.flipH || 1 == mxUtils.getValue(this.style, "imageFlipH", 0), this.flipV = this.flipV || 1 == mxUtils.getValue(
-      this.style,
-      "imageFlipV", 0))
-};
-mxImageShape.prototype.isHtmlAllowed = function() {
-  return !this.preserveImageAspect
-};
-mxImageShape.prototype.createHtml = function() {
-  var a = document.createElement("div");
-  a.style.position = "absolute";
-  return a
-};
-mxImageShape.prototype.paintVertexShape = function(a, b, c, d, e) {
-  if (null != this.image) {
-    var f = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_BACKGROUND, null),
-      g = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_BORDER, null);
-    if (null != f || null != g) a.setFillColor(f), a.setStrokeColor(g), a.rect(b, c, d, e), a.fillAndStroke();
-    a.image(b, c, d, e, this.image, this.preserveImageAspect, !1, !1)
-  } else mxRectangleShape.prototype.paintBackground.apply(this, arguments)
-};
-mxImageShape.prototype.redrawHtmlShape = function() {
-  this.node.style.left = Math.round(this.bounds.x) + "px";
-  this.node.style.top = Math.round(this.bounds.y) + "px";
-  this.node.style.width = Math.max(0, Math.round(this.bounds.width)) + "px";
-  this.node.style.height = Math.max(0, Math.round(this.bounds.height)) + "px";
-  this.node.style.backgroundColor = this.fill || "";
-  this.node.style.borderColor = this.stroke || "";
-  this.node.innerHTML = "";
-  if (null != this.image) {
-    var a = document.createElement(mxClient.IS_IE6 || null == mxClient.CSS_PREFIX && 0 !=
-      this.rotation ? mxClient.VML_PREFIX + ":image" : "img");
-    a.style.position = "absolute";
-    a.src = this.image;
-    var b = 100 > this.opacity ? "alpha(opacity\x3d" + this.opacity + ")" : "";
-    this.node.style.filter = b;
-    this.flipH && this.flipV ? b += "progid:DXImageTransform.Microsoft.BasicImage(rotation\x3d2)" : this.flipH ? b += "progid:DXImageTransform.Microsoft.BasicImage(mirror\x3d1)" : this.flipV && (b +=
-      "progid:DXImageTransform.Microsoft.BasicImage(rotation\x3d2, mirror\x3d1)");
-    a.style.filter != b && (a.style.filter = b);
-    "image" == a.nodeName ? a.style.rotation =
-      this.rotation : a.style[mxClient.CSS_PREFIX + "Transform"] = "rotate(" + this.rotation + "deg)";
-    a.style.width = this.node.style.width;
-    a.style.height = this.node.style.height;
-    this.node.style.backgroundImage = "";
-    this.node.appendChild(a)
-  } else this.setTransparentBackgroundImage(this.node)
-};
-
-function mxLabel(a, b, c, d) {
-  mxRectangleShape.call(this, a, b, c, d)
-}
-mxUtils.extend(mxLabel, mxRectangleShape);
-mxLabel.prototype.imageSize = mxConstants.DEFAULT_IMAGESIZE;
-mxLabel.prototype.spacing = 2;
-mxLabel.prototype.indicatorSize = 10;
-mxLabel.prototype.indicatorSpacing = 2;
-mxLabel.prototype.init = function(a) {
-  mxShape.prototype.init.apply(this, arguments);
-  null != this.indicatorColor && null != this.indicatorShape && (this.indicator = new this.indicatorShape, this.indicator.dialect = this.dialect, this.indicator.bounds = this.bounds, this.indicator
-    .fill = this.indicatorColor, this.indicator.stroke = this.indicatorColor, this.indicator.gradient = this.indicatorGradientColor, this.indicator.direction = this.indicatorDirection, this.indicator
-    .init(this.node))
-};
-mxLabel.prototype.redraw = function() {
-  null != this.indicator && (this.indicator.fill = this.indicatorColor, this.indicator.stroke = this.indicatorColor, this.indicator.gradient = this.indicatorGradientColor, this.indicator.direction =
-    this.indicatorDirection);
-  mxShape.prototype.redraw.apply(this, arguments)
-};
-mxLabel.prototype.isHtmlAllowed = function() {
-  return mxRectangleShape.prototype.isHtmlAllowed.apply(this, arguments) && null == this.indicatorColor && null == this.indicatorShape
-};
-mxLabel.prototype.paintForeground = function(a, b, c, d, e) {
-  this.paintImage(a, b, c, d, e);
-  this.paintIndicator(a, b, c, d, e);
-  mxRectangleShape.prototype.paintForeground.apply(this, arguments)
-};
-mxLabel.prototype.paintImage = function(a, b, c, d, e) {
-  null != this.image && (b = this.getImageBounds(b, c, d, e), a.image(b.x, b.y, b.width, b.height, this.image, !1, !1, !1))
-};
-mxLabel.prototype.getImageBounds = function(a, b, c, d) {
-  var e = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_ALIGN, mxConstants.ALIGN_LEFT),
-    f = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_VERTICAL_ALIGN, mxConstants.ALIGN_MIDDLE),
-    g = mxUtils.getNumber(this.style, mxConstants.STYLE_IMAGE_WIDTH, mxConstants.DEFAULT_IMAGESIZE),
-    h = mxUtils.getNumber(this.style, mxConstants.STYLE_IMAGE_HEIGHT, mxConstants.DEFAULT_IMAGESIZE),
-    k = mxUtils.getNumber(this.style, mxConstants.STYLE_SPACING, this.spacing) + 5;
-  a = e == mxConstants.ALIGN_CENTER ?
-    a + (c - g) / 2 : e == mxConstants.ALIGN_RIGHT ? a + (c - g - k) : a + k;
-  b = f == mxConstants.ALIGN_TOP ? b + k : f == mxConstants.ALIGN_BOTTOM ? b + (d - h - k) : b + (d - h) / 2;
-  return new mxRectangle(a, b, g, h)
-};
-mxLabel.prototype.paintIndicator = function(a, b, c, d, e) {
-  null != this.indicator ? (this.indicator.bounds = this.getIndicatorBounds(b, c, d, e), this.indicator.paint(a)) : null != this.indicatorImage && (b = this.getIndicatorBounds(b, c, d, e), a.image(
-    b.x, b.y, b.width, b.height, this.indicatorImage, !1, !1, !1))
-};
-mxLabel.prototype.getIndicatorBounds = function(a, b, c, d) {
-  var e = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_ALIGN, mxConstants.ALIGN_LEFT),
-    f = mxUtils.getValue(this.style, mxConstants.STYLE_IMAGE_VERTICAL_ALIGN, mxConstants.ALIGN_MIDDLE),
-    g = mxUtils.getNumber(this.style, mxConstants.STYLE_INDICATOR_WIDTH, this.indicatorSize),
-    h = mxUtils.getNumber(this.style, mxConstants.STYLE_INDICATOR_HEIGHT, this.indicatorSize),
-    k = this.spacing + 5;
-  a = e == mxConstants.ALIGN_RIGHT ? a + (c - g - k) : e == mxConstants.ALIGN_CENTER ? a + (c - g) /
-    2 : a + k;
-  b = f == mxConstants.ALIGN_BOTTOM ? b + (d - h - k) : f == mxConstants.ALIGN_TOP ? b + k : b + (d - h) / 2;
-  return new mxRectangle(a, b, g, h)
-};
-mxLabel.prototype.redrawHtmlShape = function() {
-  for (mxRectangleShape.prototype.redrawHtmlShape.apply(this, arguments); this.node.hasChildNodes();) this.node.removeChild(this.node.lastChild);
-  if (null != this.image) {
-    var a = document.createElement("img");
-    a.style.position = "relative";
-    a.setAttribute("border", "0");
-    var b = this.getImageBounds(this.bounds.x, this.bounds.y, this.bounds.width, this.bounds.height);
-    b.x -= this.bounds.x;
-    b.y -= this.bounds.y;
-    a.style.left = Math.round(b.x) + "px";
-    a.style.top = Math.round(b.y) + "px";
-    a.style.width =
-      Math.round(b.width) + "px";
-    a.style.height = Math.round(b.height) + "px";
-    a.src = this.image;
-    this.node.appendChild(a)
-  }
-};
-
-function mxCylinder(a, b, c, d) {
-  mxShape.call(this);
-  this.bounds = a;
-  this.fill = b;
-  this.stroke = c;
-  this.strokewidth = null != d ? d : 1
-}
-mxUtils.extend(mxCylinder, mxShape);
-mxCylinder.prototype.maxHeight = 40;
-mxCylinder.prototype.svgStrokeTolerance = 0;
-mxCylinder.prototype.paintVertexShape = function(a, b, c, d, e) {
-  a.translate(b, c);
-  a.begin();
-  this.redrawPath(a, b, c, d, e, !1);
-  a.fillAndStroke();
-  a.setShadow(!1);
-  a.begin();
-  this.redrawPath(a, b, c, d, e, !0);
-  a.stroke()
-};
-mxCylinder.prototype.redrawPath = function(a, b, c, d, e, f) {
-  b = Math.min(this.maxHeight, Math.round(e / 5));
-  if (f && null != this.fill || !f && null == this.fill) a.moveTo(0, b), a.curveTo(0, 2 * b, d, 2 * b, d, b), f || (a.stroke(), a.begin());
-  f || (a.moveTo(0, b), a.curveTo(0, -b / 3, d, -b / 3, d, b), a.lineTo(d, e - b), a.curveTo(d, e + b / 3, 0, e + b / 3, 0, e - b), a.close())
-};
-
-function mxConnector(a, b, c) {
-  mxPolyline.call(this, a, b, c)
-}
-mxUtils.extend(mxConnector, mxPolyline);
-mxConnector.prototype.paintEdgeShape = function(a, b) {
-  var c = this.createMarker(a, b, !0),
-    d = this.createMarker(a, b, !1);
-  null == this.style || 1 != this.style[mxConstants.STYLE_CURVED] ? this.paintLine(a, b, this.isRounded) : this.paintCurvedLine(a, b);
-  a.setFillColor(this.stroke);
-  a.setShadow(!1);
-  a.setDashed(!1);
-  null != c && c();
-  null != d && d()
-};
-mxConnector.prototype.paintCurvedLine = function(a, b) {
-  a.begin();
-  var c = b[0],
-    d = b.length;
-  a.moveTo(c.x, c.y);
-  for (c = 1; c < d - 2; c++) {
-    var e = b[c],
-      f = b[c + 1];
-    a.quadTo(e.x, e.y, (e.x + f.x) / 2, (e.y + f.y) / 2)
-  }
-  e = b[d - 2];
-  f = b[d - 1];
-  a.quadTo(e.x, e.y, f.x, f.y);
-  a.stroke()
-};
-mxConnector.prototype.createMarker = function(a, b, c) {
-  var d = b.length,
-    e = c ? b[1] : b[d - 2];
-  b = c ? b[0] : b[d - 1];
-  var d = b.x - e.x,
-    f = b.y - e.y,
-    g = Math.max(1, Math.sqrt(d * d + f * f)),
-    e = d / g,
-    d = f / g,
-    f = mxUtils.getNumber(this.style, c ? mxConstants.STYLE_STARTSIZE : mxConstants.STYLE_ENDSIZE, mxConstants.DEFAULT_MARKERSIZE),
-    g = mxUtils.getValue(this.style, c ? mxConstants.STYLE_STARTARROW : mxConstants.STYLE_ENDARROW);
-  return mxMarker.createMarker(a, this, g, b, e, d, f, c, this.strokewidth, 0 != this.style[c ? mxConstants.STYLE_STARTFILL : mxConstants.STYLE_ENDFILL])
-};
-mxConnector.prototype.augmentBoundingBox = function(a) {
-  mxShape.prototype.augmentBoundingBox.apply(this, arguments);
-  var b = 0;
-  mxUtils.getValue(this.style, mxConstants.STYLE_STARTARROW, mxConstants.NONE) != mxConstants.NONE && (b = mxUtils.getNumber(this.style, mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_MARKERSIZE) +
-    1);
-  mxUtils.getValue(this.style, mxConstants.STYLE_ENDARROW, mxConstants.NONE) != mxConstants.NONE && (b = Math.max(b, mxUtils.getNumber(this.style, mxConstants.STYLE_ENDSIZE, mxConstants.DEFAULT_MARKERSIZE)) +
-    1);
-  a.grow(Math.ceil(b * this.scale))
-};
-
-function mxSwimlane(a, b, c, d) {
-  mxShape.call(this);
-  this.bounds = a;
-  this.fill = b;
-  this.stroke = c;
-  this.strokewidth = null != d ? d : 1
-}
-mxUtils.extend(mxSwimlane, mxShape);
-mxSwimlane.prototype.imageSize = 16;
-mxSwimlane.prototype.getGradientBounds = function(a, b, c, d, e) {
-  a = Math.min(e, mxUtils.getValue(this.style, mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE));
-  return new mxRectangle(b, c, d, a)
-};
-mxSwimlane.prototype.getRotation = function() {
-  var a = mxShape.prototype.getRotation.apply(this, arguments);
-  1 != mxUtils.getValue(this.style, mxConstants.STYLE_HORIZONTAL, 1) && (a += mxText.prototype.verticalTextRotation);
-  return a
-};
-mxSwimlane.prototype.getTextRotation = function() {
-  return this.getRotation()
-};
-mxSwimlane.prototype.isPaintBoundsInverted = function() {
-  return mxShape.prototype.isPaintBoundsInverted.apply(this, arguments) || 1 != mxUtils.getValue(this.style, mxConstants.STYLE_HORIZONTAL, 1)
-};
-mxSwimlane.prototype.getArcSize = function(a, b, c) {
-  a = mxUtils.getValue(this.style, mxConstants.STYLE_ARCSIZE, 100 * mxConstants.RECTANGLE_ROUNDING_FACTOR) / 100;
-  return 3 * c * a
-};
-mxSwimlane.prototype.paintVertexShape = function(a, b, c, d, e) {
-  var f = Math.min(e, mxUtils.getValue(this.style, mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE)),
-    g = mxUtils.getValue(this.style, mxConstants.STYLE_SWIMLANE_FILLCOLOR, mxConstants.NONE),
-    h = 1 == mxUtils.getValue(this.style, mxConstants.STYLE_SWIMLANE_LINE, 1),
-    k = 0;
-  a.translate(b, c);
-  this.isRounded ? (k = this.getArcSize(d, e, f), this.paintRoundedSwimlane(a, b, c, d, e, f, k, g, h)) : this.paintSwimlane(a, b, c, d, e, f, g, h);
-  g = mxUtils.getValue(this.style, mxConstants.STYLE_SEPARATORCOLOR,
-    mxConstants.NONE);
-  this.paintSeparator(a, d, f, e, g);
-  null != this.image && (e = this.getImageBounds(b, f, d, e), a.image(e.x - b, e.y - c, e.width, e.height, this.image, !1, !1, !1));
-  this.glass && (a.setShadow(!1), this.paintGlassEffect(a, 0, 0, d, f, k))
-};
-mxSwimlane.prototype.paintSwimlane = function(a, b, c, d, e, f, g, h) {
-  g != mxConstants.NONE && (a.save(), a.setFillColor(g), a.rect(0, 0, d, e), a.fillAndStroke(), a.restore(), a.setShadow(!1));
-  a.begin();
-  a.moveTo(0, f);
-  a.lineTo(0, 0);
-  a.lineTo(d, 0);
-  a.lineTo(d, f);
-  h && a.close();
-  a.fillAndStroke();
-  f < e && g == mxConstants.NONE && (a.pointerEvents = !1, a.begin(), a.moveTo(0, f), a.lineTo(0, e), a.lineTo(d, e), a.lineTo(d, f), a.stroke())
-};
-mxSwimlane.prototype.paintRoundedSwimlane = function(a, b, c, d, e, f, g, h, k) {
-  h != mxConstants.NONE && (a.save(), a.setFillColor(h), a.roundrect(0, 0, d, e, g, g), a.fillAndStroke(), a.restore(), a.setShadow(!1));
-  a.begin();
-  a.moveTo(d, f);
-  a.lineTo(d, g);
-  a.quadTo(d, 0, d - Math.min(d / 2, g), 0);
-  a.lineTo(Math.min(d / 2, g), 0);
-  a.quadTo(0, 0, 0, g);
-  a.lineTo(0, f);
-  k && a.close();
-  a.fillAndStroke();
-  f < e && h == mxConstants.NONE && (a.pointerEvents = !1, a.begin(), a.moveTo(0, f), a.lineTo(0, e - g), a.quadTo(0, e, Math.min(d / 2, g), e), a.lineTo(d - Math.min(d / 2, g), e),
-    a.quadTo(d, e, d, e - g), a.lineTo(d, f), a.stroke())
-};
-mxSwimlane.prototype.paintSeparator = function(a, b, c, d, e) {
-  e != mxConstants.NONE && (a.setStrokeColor(e), a.setDashed(!0), a.begin(), a.moveTo(b, c), a.lineTo(b, d), a.stroke(), a.setDashed(!1))
-};
-mxSwimlane.prototype.getImageBounds = function(a, b, c, d) {
-  return new mxRectangle(a + c - this.imageSize, b, this.imageSize, this.imageSize)
-};
-
-function mxGraphLayout(a) {
-  this.graph = a
-}
-mxGraphLayout.prototype.graph = null;
-mxGraphLayout.prototype.useBoundingBox = !0;
-mxGraphLayout.prototype.parent = null;
-mxGraphLayout.prototype.moveCell = function(a, b, c) {};
-mxGraphLayout.prototype.execute = function(a) {};
-mxGraphLayout.prototype.getGraph = function() {
-  return this.graph
-};
-mxGraphLayout.prototype.getConstraint = function(a, b, c, d) {
-  c = this.graph.view.getState(b);
-  b = null != c ? c.style : this.graph.getCellStyle(b);
-  return null != b ? b[a] : null
-};
-mxGraphLayout.traverse = function(a, b, c, d, e) {
-  if (null != c && null != a) {
-    b = null != b ? b : !0;
-    e = e || [];
-    var f = mxCellPath.create(a);
-    if (null == e[f] && (e[f] = a, d = c(a, d), null == d || d))
-      if (d = this.graph.model.getEdgeCount(a), 0 < d)
-        for (f = 0; f < d; f++) {
-          var g = this.graph.model.getEdgeAt(a, f),
-            h = this.graph.model.getTerminal(g, !0) == a;
-          if (!b || h) h = this.graph.view.getVisibleTerminal(g, !h), this.traverse(h, b, c, g, e)
-        }
-  }
-};
-mxGraphLayout.prototype.isVertexMovable = function(a) {
-  return this.graph.isCellMovable(a)
-};
-mxGraphLayout.prototype.isVertexIgnored = function(a) {
-  return !this.graph.getModel().isVertex(a) || !this.graph.isCellVisible(a)
-};
-mxGraphLayout.prototype.isEdgeIgnored = function(a) {
-  var b = this.graph.getModel();
-  return !b.isEdge(a) || !this.graph.isCellVisible(a) || null == b.getTerminal(a, !0) || null == b.getTerminal(a, !1)
-};
-mxGraphLayout.prototype.setEdgeStyleEnabled = function(a, b) {
-  this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE, b ? "0" : "1", [a])
-};
-mxGraphLayout.prototype.setOrthogonalEdge = function(a, b) {
-  this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL, b ? "1" : "0", [a])
-};
-mxGraphLayout.prototype.getParentOffset = function(a) {
-  var b = new mxPoint;
-  if (null != a && a != this.parent) {
-    var c = this.graph.getModel();
-    if (c.isAncestor(this.parent, a))
-      for (var d = c.getGeometry(a); a != this.parent;) b.x += d.x, b.y += d.y, a = c.getParent(a), d = c.getGeometry(a)
-  }
-  return b
-};
-mxGraphLayout.prototype.setEdgePoints = function(a, b) {
-  if (null != a) {
-    var c = this.graph.model,
-      d = c.getGeometry(a);
-    null == d ? (d = new mxGeometry, d.setRelative(!0)) : d = d.clone();
-    if (null != this.parent && null != b)
-      for (var e = c.getParent(a), e = this.getParentOffset(e), f = 0; f < b.length; f++) b[f].x -= e.x, b[f].y -= e.y;
-    d.points = b;
-    c.setGeometry(a, d)
-  }
-};
-mxGraphLayout.prototype.setVertexLocation = function(a, b, c) {
-  var d = this.graph.getModel(),
-    e = d.getGeometry(a),
-    f = null;
-  if (null != e) {
-    f = new mxRectangle(b, c, e.width, e.height);
-    if (this.useBoundingBox) {
-      var g = this.graph.getView().getState(a);
-      if (null != g && null != g.text && null != g.text.boundingBox) {
-        var h = this.graph.getView().scale,
-          k = g.text.boundingBox;
-        g.text.boundingBox.x < g.x && (b += (g.x - k.x) / h, f.width = k.width);
-        g.text.boundingBox.y < g.y && (c += (g.y - k.y) / h, f.height = k.height)
-      }
-    }
-    null != this.parent && (g = d.getParent(a), null != g && g !=
-      this.parent && (g = this.getParentOffset(g), b -= g.x, c -= g.y));
-    if (e.x != b || e.y != c) e = e.clone(), e.x = b, e.y = c, d.setGeometry(a, e)
-  }
-  return f
-};
-mxGraphLayout.prototype.getVertexBounds = function(a) {
-  var b = this.graph.getModel().getGeometry(a);
-  if (this.useBoundingBox) {
-    var c = this.graph.getView().getState(a);
-    if (null != c && null != c.text && null != c.text.boundingBox) var d = this.graph.getView().scale,
-      e = c.text.boundingBox,
-      f = Math.max(c.x - e.x, 0) / d,
-      g = Math.max(c.y - e.y, 0) / d,
-      h = Math.max(e.x + e.width - (c.x + c.width), 0) / d,
-      c = Math.max(e.y + e.height - (c.y + c.height), 0) / d,
-      b = new mxRectangle(b.x - f, b.y - g, b.width + f + h, b.height + g + c)
-  }
-  null != this.parent && (a = this.graph.getModel().getParent(a),
-    b = b.clone(), null != a && a != this.parent && (a = this.getParentOffset(a), b.x += a.x, b.y += a.y));
-  return new mxRectangle(b.x, b.y, b.width, b.height)
-};
-mxGraphLayout.prototype.arrangeGroups = function(a, b) {
-  this.graph.getModel().beginUpdate();
-  try {
-    for (var c = a.length - 1; 0 <= c; c--) {
-      var d = a[c],
-        e = this.graph.getChildVertices(d),
-        f = this.graph.getBoundingBoxFromGeometry(e),
-        g = this.graph.getCellGeometry(d),
-        h = 0,
-        k = 0;
-      if (this.graph.isSwimlane(d)) var l = this.graph.getStartSize(d),
-        h = l.width,
-        k = l.height;
-      null != f && null != g && (g = g.clone(), g.x = g.x + f.x - b - h, g.y = g.y + f.y - b - k, g.width = f.width + 2 * b + h, g.height = f.height + 2 * b + k, this.graph.getModel().setGeometry(d,
-        g), this.graph.moveCells(e,
-        b + h - f.x, b + k - f.y))
-    }
-  } finally {
-    this.graph.getModel().endUpdate()
-  }
-};
-
-function mxStackLayout(a, b, c, d, e, f) {
-  mxGraphLayout.call(this, a);
-  this.horizontal = null != b ? b : !0;
-  this.spacing = null != c ? c : 0;
-  this.x0 = null != d ? d : 0;
-  this.y0 = null != e ? e : 0;
-  this.border = null != f ? f : 0
-}
-mxStackLayout.prototype = new mxGraphLayout;
-mxStackLayout.prototype.constructor = mxStackLayout;
-mxStackLayout.prototype.horizontal = null;
-mxStackLayout.prototype.spacing = null;
-mxStackLayout.prototype.x0 = null;
-mxStackLayout.prototype.y0 = null;
-mxStackLayout.prototype.border = 0;
-mxStackLayout.prototype.keepFirstLocation = !1;
-mxStackLayout.prototype.fill = !1;
-mxStackLayout.prototype.resizeParent = !1;
-mxStackLayout.prototype.resizeLast = !1;
-mxStackLayout.prototype.wrap = null;
-mxStackLayout.prototype.isHorizontal = function() {
-  return this.horizontal
-};
-mxStackLayout.prototype.moveCell = function(a, b, c) {
-  var d = this.graph.getModel(),
-    e = d.getParent(a),
-    f = this.isHorizontal();
-  if (null != a && null != e) {
-    var g = 0,
-      h = 0,
-      k = d.getChildCount(e);
-    b = f ? b : c;
-    g = this.graph.getView().getState(e);
-    null != g && (b -= f ? g.x : g.y);
-    for (g = 0; g < k; g++)
-      if (c = d.getChildAt(e, g), c != a && (c = d.getGeometry(c), null != c)) {
-        c = f ? c.x + c.width / 2 : c.y + c.height / 2;
-        if (h < b && c > b) break;
-        h = c
-      }
-    f = e.getIndex(a);
-    f = Math.max(0, g - (g > f ? 1 : 0));
-    d.add(e, a, f)
-  }
-};
-mxStackLayout.prototype.getParentSize = function(a) {
-  var b = this.graph.getModel(),
-    c = b.getGeometry(a);
-  if (null != this.graph.container && (null == c && b.isLayer(a) || a == this.graph.getView().currentRoot)) c = new mxRectangle(0, 0, this.graph.container.offsetWidth - 1, this.graph.container.offsetHeight -
-    1);
-  return c
-};
-mxStackLayout.prototype.execute = function(a) {
-  if (null != a) {
-    var b = this.isHorizontal(),
-      c = this.graph.getModel(),
-      d = this.getParentSize(a),
-      e = 0;
-    null != d && (e = b ? d.height : d.width);
-    var e = e - (2 * this.spacing + 2 * this.border),
-      f = this.x0 + this.border,
-      g = this.y0 + this.border;
-    if (this.graph.isSwimlane(a)) {
-      var h = this.graph.getCellStyle(a),
-        k = mxUtils.getValue(h, mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE),
-        h = mxUtils.getValue(h, mxConstants.STYLE_HORIZONTAL, !0);
-      b == h && (e -= k);
-      b ? g += k : f += k
-    }
-    c.beginUpdate();
-    try {
-      for (var k = 0,
-          h = null, l = c.getChildCount(a), m = 0; m < l; m++) {
-        var n = c.getChildAt(a, m);
-        if (!this.isVertexIgnored(n) && this.isVertexMovable(n)) {
-          var p = c.getGeometry(n);
-          if (null != p) {
-            p = p.clone();
-            if (null != this.wrap && null != h && (b && h.x + h.width + p.width + 2 * this.spacing > this.wrap || !b && h.y + h.height + p.height + 2 * this.spacing > this.wrap)) h = null, b ? g +=
-              k + this.spacing : f += k + this.spacing, k = 0;
-            k = Math.max(k, b ? p.height : p.width);
-            null != h ? b ? p.x = h.x + h.width + this.spacing : p.y = h.y + h.height + this.spacing : this.keepFirstLocation || (b ? p.x = f : p.y = g);
-            b ? p.y = g : p.x = f;
-            this.fill && 0 < e && (b ? p.height = e : p.width = e);
-            c.setGeometry(n, p);
-            h = p
-          }
-        }
-      }
-      this.resizeParent && null != d && null != h && !this.graph.isCellCollapsed(a) ? (d = d.clone(), b ? d.width = h.x + h.width + this.spacing : d.height = h.y + h.height + this.spacing, c.setGeometry(
-        a, d)) : this.resizeLast && (null != d && null != h) && (b ? h.width = d.width - h.x - this.spacing : h.height = d.height - h.y - this.spacing)
-    } finally {
-      c.endUpdate()
-    }
-  }
-};
-
-function mxPartitionLayout(a, b, c, d) {
-  mxGraphLayout.call(this, a);
-  this.horizontal = null != b ? b : !0;
-  this.spacing = c || 0;
-  this.border = d || 0
-}
-mxPartitionLayout.prototype = new mxGraphLayout;
-mxPartitionLayout.prototype.constructor = mxPartitionLayout;
-mxPartitionLayout.prototype.horizontal = null;
-mxPartitionLayout.prototype.spacing = null;
-mxPartitionLayout.prototype.border = null;
-mxPartitionLayout.prototype.resizeVertices = !0;
-mxPartitionLayout.prototype.isHorizontal = function() {
-  return this.horizontal
-};
-mxPartitionLayout.prototype.moveCell = function(a, b, c) {
-  c = this.graph.getModel();
-  var d = c.getParent(a);
-  if (null != a && null != d) {
-    for (var e = 0, f = 0, g = c.getChildCount(d), e = 0; e < g; e++) {
-      var h = c.getChildAt(d, e),
-        h = this.getVertexBounds(h);
-      if (null != h) {
-        h = h.x + h.width / 2;
-        if (f < b && h > b) break;
-        f = h
-      }
-    }
-    b = d.getIndex(a);
-    b = Math.max(0, e - (e > b ? 1 : 0));
-    c.add(d, a, b)
-  }
-};
-mxPartitionLayout.prototype.execute = function(a) {
-  var b = this.isHorizontal(),
-    c = this.graph.getModel(),
-    d = c.getGeometry(a);
-  if (null != this.graph.container && (null == d && c.isLayer(a) || a == this.graph.getView().currentRoot)) d = new mxRectangle(0, 0, this.graph.container.offsetWidth - 1, this.graph.container.offsetHeight -
-    1);
-  if (null != d) {
-    for (var e = [], f = c.getChildCount(a), g = 0; g < f; g++) {
-      var h = c.getChildAt(a, g);
-      !this.isVertexIgnored(h) && this.isVertexMovable(h) && e.push(h)
-    }
-    f = e.length;
-    if (0 < f) {
-      var k = this.border,
-        l = this.border,
-        m = b ?
-        d.height : d.width,
-        m = m - 2 * this.border;
-      a = this.graph.isSwimlane(a) ? this.graph.getStartSize(a) : new mxRectangle;
-      m -= b ? a.height : a.width;
-      k += a.width;
-      l += a.height;
-      a = this.border + (f - 1) * this.spacing;
-      d = b ? (d.width - k - a) / f : (d.height - l - a) / f;
-      if (0 < d) {
-        c.beginUpdate();
-        try {
-          for (g = 0; g < f; g++) {
-            var h = e[g],
-              n = c.getGeometry(h);
-            null != n && (n = n.clone(), n.x = k, n.y = l, b ? (this.resizeVertices && (n.width = d, n.height = m), k += d + this.spacing) : (this.resizeVertices && (n.height = d, n.width = m), l +=
-              d + this.spacing), c.setGeometry(h, n))
-          }
-        } finally {
-          c.endUpdate()
-        }
-      }
-    }
-  }
-};
-
-function mxCompactTreeLayout(a, b, c) {
-  mxGraphLayout.call(this, a);
-  this.horizontal = null != b ? b : !0;
-  this.invert = null != c ? c : !1
-}
-mxCompactTreeLayout.prototype = new mxGraphLayout;
-mxCompactTreeLayout.prototype.constructor = mxCompactTreeLayout;
-mxCompactTreeLayout.prototype.horizontal = null;
-mxCompactTreeLayout.prototype.invert = null;
-mxCompactTreeLayout.prototype.resizeParent = !0;
-mxCompactTreeLayout.prototype.groupPadding = 10;
-mxCompactTreeLayout.prototype.parentsChanged = null;
-mxCompactTreeLayout.prototype.moveTree = !1;
-mxCompactTreeLayout.prototype.levelDistance = 10;
-mxCompactTreeLayout.prototype.nodeDistance = 20;
-mxCompactTreeLayout.prototype.resetEdges = !0;
-mxCompactTreeLayout.prototype.prefHozEdgeSep = 5;
-mxCompactTreeLayout.prototype.prefVertEdgeOff = 4;
-mxCompactTreeLayout.prototype.minEdgeJetty = 8;
-mxCompactTreeLayout.prototype.channelBuffer = 4;
-mxCompactTreeLayout.prototype.edgeRouting = !0;
-mxCompactTreeLayout.prototype.isVertexIgnored = function(a) {
-  return mxGraphLayout.prototype.isVertexIgnored.apply(this, arguments) || 0 == this.graph.getConnections(a).length
-};
-mxCompactTreeLayout.prototype.isHorizontal = function() {
-  return this.horizontal
-};
-mxCompactTreeLayout.prototype.execute = function(a, b) {
-  this.parent = a;
-  var c = this.graph.getModel();
-  if (null == b)
-    if (0 < this.graph.getEdges(a, c.getParent(a), this.invert, !this.invert, !1).length) b = a;
-    else {
-      var d = this.graph.findTreeRoots(a, !0, this.invert);
-      if (0 < d.length)
-        for (var e = 0; e < d.length; e++)
-          if (!this.isVertexIgnored(d[e]) && 0 < this.graph.getEdges(d[e], null, this.invert, !this.invert, !1).length) {
-            b = d[e];
-            break
-          }
-    }
-  if (null != b) {
-    this.parentsChanged = this.resizeParent ? {} : null;
-    c.beginUpdate();
-    try {
-      var f = this.dfs(b, a);
-      if (null !=
-        f) {
-        this.layout(f);
-        var g = this.graph.gridSize,
-          d = g;
-        if (!this.moveTree) {
-          var h = this.getVertexBounds(b);
-          null != h && (g = h.x, d = h.y)
-        }
-        h = null;
-        h = this.isHorizontal() ? this.horizontalLayout(f, g, d) : this.verticalLayout(f, null, g, d);
-        if (null != h) {
-          var k = e = 0;
-          0 > h.x && (e = Math.abs(g - h.x));
-          0 > h.y && (k = Math.abs(d - h.y));
-          (0 != e || 0 != k) && this.moveNode(f, e, k);
-          this.resizeParent && this.adjustParents();
-          this.edgeRouting && this.localEdgeProcessing(f)
-        }
-      }
-    } finally {
-      c.endUpdate()
-    }
-  }
-};
-mxCompactTreeLayout.prototype.moveNode = function(a, b, c) {
-  a.x += b;
-  a.y += c;
-  this.apply(a);
-  for (a = a.child; null != a;) this.moveNode(a, b, c), a = a.next
-};
-mxCompactTreeLayout.prototype.dfs = function(a, b, c) {
-  c = null != c ? c : [];
-  var d = mxCellPath.create(a),
-    e = null;
-  if (null != a && null == c[d] && !this.isVertexIgnored(a)) {
-    c[d] = a;
-    var e = this.createNode(a),
-      d = this.graph.getModel(),
-      f = null;
-    a = this.graph.getEdges(a, b, this.invert, !this.invert, !1, !0);
-    for (var g = this.graph.getView(), h = 0; h < a.length; h++) {
-      var k = a[h];
-      if (!this.isEdgeIgnored(k)) {
-        this.resetEdges && this.setEdgePoints(k, null);
-        this.edgeRouting && (this.setEdgeStyleEnabled(k, !1), this.setEdgePoints(k, null));
-        var l = g.getState(k),
-          k = null != l ? l.getVisibleTerminal(this.invert) : g.getVisibleTerminal(k, this.invert),
-          l = this.dfs(k, b, c);
-        null != l && null != d.getGeometry(k) && (null == f ? e.child = l : f.next = l, f = l)
-      }
-    }
-  }
-  return e
-};
-mxCompactTreeLayout.prototype.layout = function(a) {
-  if (null != a) {
-    for (var b = a.child; null != b;) this.layout(b), b = b.next;
-    null != a.child ? this.attachParent(a, this.join(a)) : this.layoutLeaf(a)
-  }
-};
-mxCompactTreeLayout.prototype.horizontalLayout = function(a, b, c, d) {
-  a.x += b + a.offsetX;
-  a.y += c + a.offsetY;
-  d = this.apply(a, d);
-  b = a.child;
-  if (null != b) {
-    d = this.horizontalLayout(b, a.x, a.y, d);
-    c = a.y + b.offsetY;
-    for (var e = b.next; null != e;) d = this.horizontalLayout(e, a.x + b.offsetX, c, d), c += e.offsetY, e = e.next
-  }
-  return d
-};
-mxCompactTreeLayout.prototype.verticalLayout = function(a, b, c, d, e) {
-  a.x += c + a.offsetY;
-  a.y += d + a.offsetX;
-  e = this.apply(a, e);
-  b = a.child;
-  if (null != b) {
-    e = this.verticalLayout(b, a, a.x, a.y, e);
-    c = a.x + b.offsetY;
-    for (d = b.next; null != d;) e = this.verticalLayout(d, a, c, a.y + b.offsetX, e), c += d.offsetY, d = d.next
-  }
-  return e
-};
-mxCompactTreeLayout.prototype.attachParent = function(a, b) {
-  var c = this.nodeDistance + this.levelDistance,
-    d = (b - a.width) / 2 - this.nodeDistance,
-    e = d + a.width + 2 * this.nodeDistance - b;
-  a.child.offsetX = c + a.height;
-  a.child.offsetY = e;
-  a.contour.upperHead = this.createLine(a.height, 0, this.createLine(c, e, a.contour.upperHead));
-  a.contour.lowerHead = this.createLine(a.height, 0, this.createLine(c, d, a.contour.lowerHead))
-};
-mxCompactTreeLayout.prototype.layoutLeaf = function(a) {
-  var b = 2 * this.nodeDistance;
-  a.contour.upperTail = this.createLine(a.height + b, 0);
-  a.contour.upperHead = a.contour.upperTail;
-  a.contour.lowerTail = this.createLine(0, -a.width - b);
-  a.contour.lowerHead = this.createLine(a.height + b, 0, a.contour.lowerTail)
-};
-mxCompactTreeLayout.prototype.join = function(a) {
-  var b = 2 * this.nodeDistance,
-    c = a.child;
-  a.contour = c.contour;
-  for (var d = c.width + b, e = d, c = c.next; null != c;) {
-    var f = this.merge(a.contour, c.contour);
-    c.offsetY = f + d;
-    c.offsetX = 0;
-    d = c.width + b;
-    e += f + d;
-    c = c.next
-  }
-  return e
-};
-mxCompactTreeLayout.prototype.merge = function(a, b) {
-  for (var c = 0, d = 0, e = 0, f = a.lowerHead, g = b.upperHead; null != g && null != f;) {
-    var h = this.offset(c, d, g.dx, g.dy, f.dx, f.dy),
-      d = d + h,
-      e = e + h;
-    c + g.dx <= f.dx ? (c += g.dx, d += g.dy, g = g.next) : (c -= f.dx, d -= f.dy, f = f.next)
-  }
-  null != g ? (c = this.bridge(a.upperTail, 0, 0, g, c, d), a.upperTail = null != c.next ? b.upperTail : c, a.lowerTail = b.lowerTail) : (c = this.bridge(b.lowerTail, c, d, f, 0, 0), null == c.next &&
-    (a.lowerTail = c));
-  a.lowerHead = b.lowerHead;
-  return e
-};
-mxCompactTreeLayout.prototype.offset = function(a, b, c, d, e, f) {
-  var g = 0;
-  if (e <= a || 0 >= a + c) return 0;
-  g = 0 < e * d - c * f ? 0 > a ? a * d / c - b : 0 < a ? a * f / e - b : -b : e < a + c ? f - (b + (e - a) * d / c) : e > a + c ? (c + a) * f / e - (b + d) : f - (b + d);
-  return 0 < g ? g : 0
-};
-mxCompactTreeLayout.prototype.bridge = function(a, b, c, d, e, f) {
-  b = e + d.dx - b;
-  e = e = 0;
-  0 == d.dx ? e = d.dy : (e = b * d.dy, e /= d.dx);
-  b = this.createLine(b, e, d.next);
-  a.next = this.createLine(0, f + d.dy - e - c, b);
-  return b
-};
-mxCompactTreeLayout.prototype.createNode = function(a) {
-  var b = {};
-  b.cell = a;
-  b.x = 0;
-  b.y = 0;
-  b.width = 0;
-  b.height = 0;
-  a = this.getVertexBounds(a);
-  null != a && (this.isHorizontal() ? (b.width = a.height, b.height = a.width) : (b.width = a.width, b.height = a.height));
-  b.offsetX = 0;
-  b.offsetY = 0;
-  b.contour = {};
-  return b
-};
-mxCompactTreeLayout.prototype.apply = function(a, b) {
-  var c = this.graph.getModel(),
-    d = a.cell,
-    e = c.getGeometry(d);
-  null != d && null != e && (this.isVertexMovable(d) && (e = this.setVertexLocation(d, a.x, a.y), this.resizeParent && (c = c.getParent(d), d = mxCellPath.create(c), null == this.parentsChanged[d] &&
-    (this.parentsChanged[d] = c))), b = null == b ? new mxRectangle(e.x, e.y, e.width, e.height) : new mxRectangle(Math.min(b.x, e.x), Math.min(b.y, e.y), Math.max(b.x + b.width, e.x + e.width),
-    Math.max(b.y + b.height, e.y + e.height)));
-  return b
-};
-mxCompactTreeLayout.prototype.createLine = function(a, b, c) {
-  var d = {};
-  d.dx = a;
-  d.dy = b;
-  d.next = c;
-  return d
-};
-mxCompactTreeLayout.prototype.adjustParents = function() {
-  var a = [],
-    b;
-  for (b in this.parentsChanged) a.push(this.parentsChanged[b]);
-  this.arrangeGroups(mxUtils.sortCells(a, !0), this.groupPadding)
-};
-mxCompactTreeLayout.prototype.localEdgeProcessing = function(a) {
-  this.processNodeOutgoing(a);
-  for (a = a.child; null != a;) this.localEdgeProcessing(a), a = a.next
-};
-mxCompactTreeLayout.prototype.processNodeOutgoing = function(a) {
-  for (var b = a.child, c = a.cell, d = 0, e = []; null != b;) {
-    d++;
-    var f = b.x;
-    this.horizontal && (f = b.y);
-    e.push(new WeightedCellSorter(b, f));
-    b = b.next
-  }
-  e.sort(WeightedCellSorter.prototype.compare);
-  var f = a.width,
-    g = (d + 1) * this.prefHozEdgeSep;
-  f > g + 2 * this.prefHozEdgeSep && (f -= 2 * this.prefHozEdgeSep);
-  a = f / d;
-  b = a / 2;
-  f > g + 2 * this.prefHozEdgeSep && (b += this.prefHozEdgeSep);
-  for (var f = this.minEdgeJetty - this.prefVertEdgeOff, g = 0, h = this.getVertexBounds(c), k = 0; k < e.length; k++) {
-    for (var l =
-        e[k].cell.cell, m = this.getVertexBounds(l), l = this.graph.getEdgesBetween(c, l, !1), n = [], p = 0, q = 0, s = 0; s < l.length; s++) this.horizontal ? (p = h.x + h.width, q = h.y + b, n.push(
-      new mxPoint(p, q)), p = h.x + h.width + f, n.push(new mxPoint(p, q)), q = m.y + m.height / 2) : (p = h.x + b, q = h.y + h.height, n.push(new mxPoint(p, q)), q = h.y + h.height + f, n.push(
-      new mxPoint(p, q)), p = m.x + m.width / 2), n.push(new mxPoint(p, q)), this.setEdgePoints(l[s], n);
-    k < d / 2 ? f += this.prefVertEdgeOff : k > d / 2 && (f -= this.prefVertEdgeOff);
-    b += a;
-    g = Math.max(g, f)
-  }
-};
-
-function WeightedCellSorter(a, b) {
-  this.cell = a;
-  this.weightedValue = b
-}
-WeightedCellSorter.prototype.weightedValue = 0;
-WeightedCellSorter.prototype.nudge = !1;
-WeightedCellSorter.prototype.visited = !1;
-WeightedCellSorter.prototype.rankIndex = null;
-WeightedCellSorter.prototype.cell = null;
-WeightedCellSorter.prototype.compare = function(a, b) {
-  return null != a && null != b ? b.weightedValue > a.weightedValue ? 1 : b.weightedValue < a.weightedValue ? -1 : b.nudge ? 1 : -1 : 0
-};
-
-function mxFastOrganicLayout(a) {
-  mxGraphLayout.call(this, a)
-}
-mxFastOrganicLayout.prototype = new mxGraphLayout;
-mxFastOrganicLayout.prototype.constructor = mxFastOrganicLayout;
-mxFastOrganicLayout.prototype.useInputOrigin = !0;
-mxFastOrganicLayout.prototype.resetEdges = !0;
-mxFastOrganicLayout.prototype.disableEdgeStyle = !0;
-mxFastOrganicLayout.prototype.forceConstant = 50;
-mxFastOrganicLayout.prototype.forceConstantSquared = 0;
-mxFastOrganicLayout.prototype.minDistanceLimit = 2;
-mxFastOrganicLayout.prototype.maxDistanceLimit = 500;
-mxFastOrganicLayout.prototype.minDistanceLimitSquared = 4;
-mxFastOrganicLayout.prototype.initialTemp = 200;
-mxFastOrganicLayout.prototype.temperature = 0;
-mxFastOrganicLayout.prototype.maxIterations = 0;
-mxFastOrganicLayout.prototype.iteration = 0;
-mxFastOrganicLayout.prototype.allowedToRun = !0;
-mxFastOrganicLayout.prototype.isVertexIgnored = function(a) {
-  return mxGraphLayout.prototype.isVertexIgnored.apply(this, arguments) || 0 == this.graph.getConnections(a).length
-};
-mxFastOrganicLayout.prototype.execute = function(a) {
-  var b = this.graph.getModel();
-  this.vertexArray = [];
-  for (var c = this.graph.getChildVertices(a), d = 0; d < c.length; d++) this.isVertexIgnored(c[d]) || this.vertexArray.push(c[d]);
-  var e = this.useInputOrigin ? this.graph.view.getBounds(this.vertexArray) : null,
-    f = this.vertexArray.length;
-  this.indices = [];
-  this.dispX = [];
-  this.dispY = [];
-  this.cellLocation = [];
-  this.isMoveable = [];
-  this.neighbours = [];
-  this.radius = [];
-  this.radiusSquared = [];
-  0.0010 > this.forceConstant && (this.forceConstant =
-    0.0010);
-  this.forceConstantSquared = this.forceConstant * this.forceConstant;
-  for (d = 0; d < this.vertexArray.length; d++) {
-    var g = this.vertexArray[d];
-    this.cellLocation[d] = [];
-    var h = mxCellPath.create(g);
-    this.indices[h] = d;
-    var k = this.getVertexBounds(g),
-      l = k.width,
-      m = k.height,
-      n = k.x,
-      p = k.y;
-    this.cellLocation[d][0] = n + l / 2;
-    this.cellLocation[d][1] = p + m / 2;
-    this.radius[d] = Math.min(l, m);
-    this.radiusSquared[d] = this.radius[d] * this.radius[d]
-  }
-  b.beginUpdate();
-  try {
-    for (d = 0; d < f; d++) {
-      this.dispX[d] = 0;
-      this.dispY[d] = 0;
-      this.isMoveable[d] = this.isVertexMovable(this.vertexArray[d]);
-      var q = this.graph.getConnections(this.vertexArray[d], a),
-        c = this.graph.getOpposites(q, this.vertexArray[d]);
-      this.neighbours[d] = [];
-      for (l = 0; l < c.length; l++) {
-        this.resetEdges && this.graph.resetEdge(q[l]);
-        this.disableEdgeStyle && this.setEdgeStyleEnabled(q[l], !1);
-        var h = mxCellPath.create(c[l]),
-          s = this.indices[h];
-        this.neighbours[d][l] = null != s ? s : d
-      }
-    }
-    this.temperature = this.initialTemp;
-    0 == this.maxIterations && (this.maxIterations = 20 * Math.sqrt(f));
-    for (this.iteration = 0; this.iteration < this.maxIterations; this.iteration++) {
-      if (!this.allowedToRun) return;
-      this.calcRepulsion();
-      this.calcAttraction();
-      this.calcPositions();
-      this.reduceTemperature()
-    }
-    a = c = null;
-    for (d = 0; d < this.vertexArray.length; d++) g = this.vertexArray[d], this.isVertexMovable(g) && (k = this.getVertexBounds(g), null != k && (this.cellLocation[d][0] -= k.width / 2, this.cellLocation[
-        d][1] -= k.height / 2, n = this.graph.snap(this.cellLocation[d][0]), p = this.graph.snap(this.cellLocation[d][1]), this.setVertexLocation(g, n, p), c = null == c ? n : Math.min(c, n), a =
-      null == a ? p : Math.min(a, p)));
-    d = -(c || 0) + 1;
-    g = -(a || 0) + 1;
-    null != e && (d += e.x,
-      g += e.y);
-    this.graph.moveCells(this.vertexArray, d, g)
-  } finally {
-    b.endUpdate()
-  }
-};
-mxFastOrganicLayout.prototype.calcPositions = function() {
-  for (var a = 0; a < this.vertexArray.length; a++)
-    if (this.isMoveable[a]) {
-      var b = Math.sqrt(this.dispX[a] * this.dispX[a] + this.dispY[a] * this.dispY[a]);
-      0.0010 > b && (b = 0.0010);
-      var c = this.dispX[a] / b * Math.min(b, this.temperature),
-        b = this.dispY[a] / b * Math.min(b, this.temperature);
-      this.dispX[a] = 0;
-      this.dispY[a] = 0;
-      this.cellLocation[a][0] += c;
-      this.cellLocation[a][1] += b
-    }
-};
-mxFastOrganicLayout.prototype.calcAttraction = function() {
-  for (var a = 0; a < this.vertexArray.length; a++)
-    for (var b = 0; b < this.neighbours[a].length; b++) {
-      var c = this.neighbours[a][b];
-      if (a != c && this.isMoveable[a] && this.isMoveable[c]) {
-        var d = this.cellLocation[a][0] - this.cellLocation[c][0],
-          e = this.cellLocation[a][1] - this.cellLocation[c][1],
-          f = d * d + e * e - this.radiusSquared[a] - this.radiusSquared[c];
-        f < this.minDistanceLimitSquared && (f = this.minDistanceLimitSquared);
-        var g = Math.sqrt(f),
-          f = f / this.forceConstant,
-          d = d / g * f,
-          e = e / g * f;
-        this.dispX[a] -= d;
-        this.dispY[a] -= e;
-        this.dispX[c] += d;
-        this.dispY[c] += e
-      }
-    }
-};
-mxFastOrganicLayout.prototype.calcRepulsion = function() {
-  for (var a = this.vertexArray.length, b = 0; b < a; b++)
-    for (var c = b; c < a; c++) {
-      if (!this.allowedToRun) return;
-      if (c != b && this.isMoveable[b] && this.isMoveable[c]) {
-        var d = this.cellLocation[b][0] - this.cellLocation[c][0],
-          e = this.cellLocation[b][1] - this.cellLocation[c][1];
-        0 == d && (d = 0.01 + Math.random());
-        0 == e && (e = 0.01 + Math.random());
-        var f = Math.sqrt(d * d + e * e),
-          g = f - this.radius[b] - this.radius[c];
-        g > this.maxDistanceLimit || (g < this.minDistanceLimit && (g = this.minDistanceLimit), g = this.forceConstantSquared /
-          g, d = d / f * g, e = e / f * g, this.dispX[b] += d, this.dispY[b] += e, this.dispX[c] -= d, this.dispY[c] -= e)
-      }
-    }
-};
-mxFastOrganicLayout.prototype.reduceTemperature = function() {
-  this.temperature = this.initialTemp * (1 - this.iteration / this.maxIterations)
-};
-
-function mxCircleLayout(a, b) {
-  mxGraphLayout.call(this, a);
-  this.radius = null != b ? b : 100
-}
-mxCircleLayout.prototype = new mxGraphLayout;
-mxCircleLayout.prototype.constructor = mxCircleLayout;
-mxCircleLayout.prototype.radius = null;
-mxCircleLayout.prototype.moveCircle = !1;
-mxCircleLayout.prototype.x0 = 0;
-mxCircleLayout.prototype.y0 = 0;
-mxCircleLayout.prototype.resetEdges = !0;
-mxCircleLayout.prototype.disableEdgeStyle = !0;
-mxCircleLayout.prototype.execute = function(a) {
-  var b = this.graph.getModel();
-  b.beginUpdate();
-  try {
-    for (var c = 0, d = null, e = null, f = [], g = b.getChildCount(a), h = 0; h < g; h++) {
-      var k = b.getChildAt(a, h);
-      if (this.isVertexIgnored(k)) this.isEdgeIgnored(k) || (this.resetEdges && this.graph.resetEdge(k), this.disableEdgeStyle && this.setEdgeStyleEnabled(k, !1));
-      else {
-        f.push(k);
-        var l = this.getVertexBounds(k),
-          d = null == d ? l.y : Math.min(d, l.y),
-          e = null == e ? l.x : Math.min(e, l.x),
-          c = Math.max(c, Math.max(l.width, l.height))
-      }
-    }
-    var m = this.getRadius(f.length,
-      c);
-    this.moveCircle && (e = this.x0, d = this.y0);
-    this.circle(f, m, e, d)
-  } finally {
-    b.endUpdate()
-  }
-};
-mxCircleLayout.prototype.getRadius = function(a, b) {
-  return Math.max(a * b / Math.PI, this.radius)
-};
-mxCircleLayout.prototype.circle = function(a, b, c, d) {
-  for (var e = a.length, f = 2 * Math.PI / e, g = 0; g < e; g++) this.isVertexMovable(a[g]) && this.setVertexLocation(a[g], c + b + b * Math.sin(g * f), d + b + b * Math.cos(g * f))
-};
-
-function mxParallelEdgeLayout(a) {
-  mxGraphLayout.call(this, a)
-}
-mxParallelEdgeLayout.prototype = new mxGraphLayout;
-mxParallelEdgeLayout.prototype.constructor = mxParallelEdgeLayout;
-mxParallelEdgeLayout.prototype.spacing = 20;
-mxParallelEdgeLayout.prototype.execute = function(a) {
-  a = this.findParallels(a);
-  this.graph.model.beginUpdate();
-  try {
-    for (var b in a) {
-      var c = a[b];
-      1 < c.length && this.layout(c)
-    }
-  } finally {
-    this.graph.model.endUpdate()
-  }
-};
-mxParallelEdgeLayout.prototype.findParallels = function(a) {
-  for (var b = this.graph.getModel(), c = [], d = b.getChildCount(a), e = 0; e < d; e++) {
-    var f = b.getChildAt(a, e);
-    if (!this.isEdgeIgnored(f)) {
-      var g = this.getEdgeId(f);
-      null != g && (null == c[g] && (c[g] = []), c[g].push(f))
-    }
-  }
-  return c
-};
-mxParallelEdgeLayout.prototype.getEdgeId = function(a) {
-  var b = this.graph.getView(),
-    c = b.getState(a),
-    d = null != c ? c.getVisibleTerminal(!0) : b.getVisibleTerminal(a, !0);
-  a = null != c ? c.getVisibleTerminal(!1) : b.getVisibleTerminal(a, !1);
-  return null != d && null != a ? (d = mxCellPath.create(d), a = mxCellPath.create(a), d > a ? a + "-" + d : d + "-" + a) : null
-};
-mxParallelEdgeLayout.prototype.layout = function(a) {
-  var b = a[0],
-    c = this.graph.getModel(),
-    d = c.getGeometry(c.getTerminal(b, !0)),
-    e = c.getGeometry(c.getTerminal(b, !1));
-  if (d == e)
-    for (var b = d.x + d.width + this.spacing, c = d.y + d.height / 2, f = 0; f < a.length; f++) this.route(a[f], b, c), b += this.spacing;
-  else if (null != d && null != e)
-    for (var b = d.x + d.width / 2, c = d.y + d.height / 2, f = e.x + e.width / 2 - b, g = e.y + e.height / 2 - c, e = Math.sqrt(f * f + g * g), d = g * this.spacing / e, e = f * this.spacing / e,
-        b = b + f / 2 + d * (a.length - 1) / 2, c = c + g / 2 - e * (a.length - 1) / 2, f = 0; f < a.length; f++) this.route(a[f],
-      b, c), b -= d, c += e
-};
-mxParallelEdgeLayout.prototype.route = function(a, b, c) {
-  this.graph.isCellMovable(a) && this.setEdgePoints(a, [new mxPoint(b, c)])
-};
-
-function mxCompositeLayout(a, b, c) {
-  mxGraphLayout.call(this, a);
-  this.layouts = b;
-  this.master = c
-}
-mxCompositeLayout.prototype = new mxGraphLayout;
-mxCompositeLayout.prototype.constructor = mxCompositeLayout;
-mxCompositeLayout.prototype.layouts = null;
-mxCompositeLayout.prototype.master = null;
-mxCompositeLayout.prototype.moveCell = function(a, b, c) {
-  null != this.master ? this.master.move.apply(this.master, arguments) : this.layouts[0].move.apply(this.layouts[0], arguments)
-};
-mxCompositeLayout.prototype.execute = function(a) {
-  var b = this.graph.getModel();
-  b.beginUpdate();
-  try {
-    for (var c = 0; c < this.layouts.length; c++) this.layouts[c].execute.apply(this.layouts[c], arguments)
-  } finally {
-    b.endUpdate()
-  }
-};
-
-function mxEdgeLabelLayout(a, b) {
-  mxGraphLayout.call(this, a)
-}
-mxEdgeLabelLayout.prototype = new mxGraphLayout;
-mxEdgeLabelLayout.prototype.constructor = mxEdgeLabelLayout;
-mxEdgeLabelLayout.prototype.execute = function(a) {
-  for (var b = this.graph.view, c = this.graph.getModel(), d = [], e = [], f = c.getChildCount(a), g = 0; g < f; g++) {
-    var h = c.getChildAt(a, g),
-      k = b.getState(h);
-    null != k && (this.isVertexIgnored(h) ? this.isEdgeIgnored(h) || d.push(k) : e.push(k))
-  }
-  this.placeLabels(e, d)
-};
-mxEdgeLabelLayout.prototype.placeLabels = function(a, b) {
-  var c = this.graph.getModel();
-  c.beginUpdate();
-  try {
-    for (var d = 0; d < b.length; d++) {
-      var e = b[d];
-      if (null != e && null != e.text && null != e.text.boundingBox)
-        for (var f = 0; f < a.length; f++) {
-          var g = a[f];
-          null != g && this.avoid(e, g)
-        }
-    }
-  } finally {
-    c.endUpdate()
-  }
-};
-mxEdgeLabelLayout.prototype.avoid = function(a, b) {
-  var c = this.graph.getModel(),
-    d = a.text.boundingBox;
-  if (mxUtils.intersects(d, b)) {
-    var e = -d.y - d.height + b.y,
-      f = -d.y + b.y + b.height,
-      e = Math.abs(e) < Math.abs(f) ? e : f,
-      f = -d.x - d.width + b.x,
-      d = -d.x + b.x + b.width,
-      d = Math.abs(f) < Math.abs(d) ? f : d;
-    Math.abs(d) < Math.abs(e) ? e = 0 : d = 0;
-    f = c.getGeometry(a.cell);
-    null != f && (f = f.clone(), null != f.offset ? (f.offset.x += d, f.offset.y += e) : f.offset = new mxPoint(d, e), c.setGeometry(a.cell, f))
-  }
-};
-
-function mxGraphAbstractHierarchyCell() {
-  this.x = [];
-  this.y = [];
-  this.temp = []
-}
-mxGraphAbstractHierarchyCell.prototype.maxRank = -1;
-mxGraphAbstractHierarchyCell.prototype.minRank = -1;
-mxGraphAbstractHierarchyCell.prototype.x = null;
-mxGraphAbstractHierarchyCell.prototype.y = null;
-mxGraphAbstractHierarchyCell.prototype.width = 0;
-mxGraphAbstractHierarchyCell.prototype.height = 0;
-mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells = null;
-mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells = null;
-mxGraphAbstractHierarchyCell.prototype.temp = null;
-mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells = function(a) {
-  return null
-};
-mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells = function(a) {
-  return null
-};
-mxGraphAbstractHierarchyCell.prototype.isEdge = function() {
-  return !1
-};
-mxGraphAbstractHierarchyCell.prototype.isVertex = function() {
-  return !1
-};
-mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable = function(a) {
-  return null
-};
-mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable = function(a, b) {
-  return null
-};
-mxGraphAbstractHierarchyCell.prototype.setX = function(a, b) {
-  this.isVertex() ? this.x[0] = b : this.isEdge() && (this.x[a - this.minRank - 1] = b)
-};
-mxGraphAbstractHierarchyCell.prototype.getX = function(a) {
-  return this.isVertex() ? this.x[0] : this.isEdge() ? this.x[a - this.minRank - 1] : 0
-};
-mxGraphAbstractHierarchyCell.prototype.setY = function(a, b) {
-  this.isVertex() ? this.y[0] = b : this.isEdge() && (this.y[a - this.minRank - 1] = b)
-};
-
-function mxGraphHierarchyNode(a) {
-  mxGraphAbstractHierarchyCell.apply(this, arguments);
-  this.cell = a
-}
-mxGraphHierarchyNode.prototype = new mxGraphAbstractHierarchyCell;
-mxGraphHierarchyNode.prototype.constructor = mxGraphHierarchyNode;
-mxGraphHierarchyNode.prototype.cell = null;
-mxGraphHierarchyNode.prototype.connectsAsTarget = [];
-mxGraphHierarchyNode.prototype.connectsAsSource = [];
-mxGraphHierarchyNode.prototype.hashCode = !1;
-mxGraphHierarchyNode.prototype.getRankValue = function(a) {
-  return this.maxRank
-};
-mxGraphHierarchyNode.prototype.getNextLayerConnectedCells = function(a) {
-  if (null == this.nextLayerConnectedCells) {
-    this.nextLayerConnectedCells = [];
-    this.nextLayerConnectedCells[0] = [];
-    for (var b = 0; b < this.connectsAsTarget.length; b++) {
-      var c = this.connectsAsTarget[b]; - 1 == c.maxRank || c.maxRank == a + 1 ? this.nextLayerConnectedCells[0].push(c.source) : this.nextLayerConnectedCells[0].push(c)
-    }
-  }
-  return this.nextLayerConnectedCells[0]
-};
-mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells = function(a) {
-  if (null == this.previousLayerConnectedCells) {
-    this.previousLayerConnectedCells = [];
-    this.previousLayerConnectedCells[0] = [];
-    for (var b = 0; b < this.connectsAsSource.length; b++) {
-      var c = this.connectsAsSource[b]; - 1 == c.minRank || c.minRank == a - 1 ? this.previousLayerConnectedCells[0].push(c.target) : this.previousLayerConnectedCells[0].push(c)
-    }
-  }
-  return this.previousLayerConnectedCells[0]
-};
-mxGraphHierarchyNode.prototype.isVertex = function() {
-  return !0
-};
-mxGraphHierarchyNode.prototype.getGeneralPurposeVariable = function(a) {
-  return this.temp[0]
-};
-mxGraphHierarchyNode.prototype.setGeneralPurposeVariable = function(a, b) {
-  this.temp[0] = b
-};
-mxGraphHierarchyNode.prototype.isAncestor = function(a) {
-  if (null != a && null != this.hashCode && null != a.hashCode && this.hashCode.length < a.hashCode.length) {
-    if (this.hashCode == a.hashCode) return !0;
-    if (null == this.hashCode || null == this.hashCode) return !1;
-    for (var b = 0; b < this.hashCode.length; b++)
-      if (this.hashCode[b] != a.hashCode[b]) return !1;
-    return !0
-  }
-  return !1
-};
-mxGraphHierarchyNode.prototype.getCoreCell = function() {
-  return this.cell
-};
-
-function mxGraphHierarchyEdge(a) {
-  mxGraphAbstractHierarchyCell.apply(this, arguments);
-  this.edges = a
-}
-mxGraphHierarchyEdge.prototype = new mxGraphAbstractHierarchyCell;
-mxGraphHierarchyEdge.prototype.constructor = mxGraphHierarchyEdge;
-mxGraphHierarchyEdge.prototype.edges = null;
-mxGraphHierarchyEdge.prototype.source = null;
-mxGraphHierarchyEdge.prototype.target = null;
-mxGraphHierarchyEdge.prototype.isReversed = !1;
-mxGraphHierarchyEdge.prototype.invert = function(a) {
-  a = this.source;
-  this.source = this.target;
-  this.target = a;
-  this.isReversed = !this.isReversed
-};
-mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells = function(a) {
-  if (null == this.nextLayerConnectedCells) {
-    this.nextLayerConnectedCells = [];
-    for (var b = 0; b < this.temp.length; b++) this.nextLayerConnectedCells[b] = [], b == this.temp.length - 1 ? this.nextLayerConnectedCells[b].push(this.source) : this.nextLayerConnectedCells[b].push(
-      this)
-  }
-  return this.nextLayerConnectedCells[a - this.minRank - 1]
-};
-mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells = function(a) {
-  if (null == this.previousLayerConnectedCells) {
-    this.previousLayerConnectedCells = [];
-    for (var b = 0; b < this.temp.length; b++) this.previousLayerConnectedCells[b] = [], 0 == b ? this.previousLayerConnectedCells[b].push(this.target) : this.previousLayerConnectedCells[b].push(
-      this)
-  }
-  return this.previousLayerConnectedCells[a - this.minRank - 1]
-};
-mxGraphHierarchyEdge.prototype.isEdge = function() {
-  return !0
-};
-mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable = function(a) {
-  return this.temp[a - this.minRank - 1]
-};
-mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable = function(a, b) {
-  this.temp[a - this.minRank - 1] = b
-};
-mxGraphHierarchyEdge.prototype.getCoreCell = function() {
-  return null != this.edges && 0 < this.edges.length ? this.edges[0] : null
-};
-
-function mxGraphHierarchyModel(a, b, c, d, e) {
-  a.getGraph();
-  this.tightenToSource = e;
-  this.roots = c;
-  this.parent = d;
-  this.vertexMapper = {};
-  this.edgeMapper = {};
-  this.maxRank = 0;
-  c = [];
-  null == b && (b = this.graph.getChildVertices(d));
-  this.maxRank = this.SOURCESCANSTARTRANK;
-  this.createInternalCells(a, b, c);
-  for (d = 0; d < b.length; d++) {
-    e = c[d].connectsAsSource;
-    for (var f = 0; f < e.length; f++) {
-      var g = e[f],
-        h = g.edges;
-      if (null != h && 0 < h.length) {
-        var h = h[0],
-          k = a.getVisibleTerminal(h, !1),
-          k = mxCellPath.create(k),
-          k = this.vertexMapper[k];
-        c[d] == k && (k = a.getVisibleTerminal(h, !0), k = mxCellPath.create(k), k = this.vertexMapper[k]);
-        null != k && c[d] != k && (g.target = k, 0 == k.connectsAsTarget.length && (k.connectsAsTarget = []), 0 > mxUtils.indexOf(k.connectsAsTarget, g) && k.connectsAsTarget.push(g))
-      }
-    }
-    c[d].temp[0] = 1
-  }
-}
-mxGraphHierarchyModel.prototype.maxRank = null;
-mxGraphHierarchyModel.prototype.vertexMapper = null;
-mxGraphHierarchyModel.prototype.edgeMapper = null;
-mxGraphHierarchyModel.prototype.ranks = null;
-mxGraphHierarchyModel.prototype.roots = null;
-mxGraphHierarchyModel.prototype.parent = null;
-mxGraphHierarchyModel.prototype.dfsCount = 0;
-mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK = 1E8;
-mxGraphHierarchyModel.prototype.tightenToSource = !1;
-mxGraphHierarchyModel.prototype.createInternalCells = function(a, b, c) {
-  for (var d = a.getGraph(), e = 0; e < b.length; e++) {
-    c[e] = new mxGraphHierarchyNode(b[e]);
-    var f = mxCellPath.create(b[e]);
-    this.vertexMapper[f] = c[e];
-    f = a.getEdges(b[e]);
-    c[e].connectsAsSource = [];
-    for (var g = 0; g < f.length; g++) {
-      var h = a.getVisibleTerminal(f[g], !1);
-      if (h != b[e] && h != b[e] && a.graph.model.isVertex(h) && !a.isVertexIgnored(h)) {
-        var k = a.getEdgesBetween(b[e], h, !1),
-          l = a.getEdgesBetween(b[e], h, !0),
-          h = mxCellPath.create(k[0]);
-        if (null != k && 0 < k.length && null ==
-          this.edgeMapper[h] && 2 * l.length >= k.length) {
-          for (var l = new mxGraphHierarchyEdge(k), m = 0; m < k.length; m++) {
-            var n = k[m],
-              h = mxCellPath.create(n);
-            this.edgeMapper[h] = l;
-            d.resetEdge(n);
-            a.disableEdgeStyle && (a.setEdgeStyleEnabled(n, !1), a.setOrthogonalEdge(n, !0))
-          }
-          l.source = c[e];
-          0 > mxUtils.indexOf(c[e].connectsAsSource, l) && c[e].connectsAsSource.push(l)
-        }
-      }
-    }
-    c[e].temp[0] = 0
-  }
-};
-mxGraphHierarchyModel.prototype.initialRank = function() {
-  var a = [];
-  if (null != this.roots)
-    for (var b = 0; b < this.roots.length; b++) {
-      var c = mxCellPath.create(this.roots[b]),
-        c = this.vertexMapper[c];
-      null != c && a.push(c)
-    }
-  for (var d in this.vertexMapper) c = this.vertexMapper[d], c.temp[0] = -1;
-  for (var e = a.slice(); 0 < a.length;) {
-    var c = a[0],
-      f, g;
-    f = c.connectsAsTarget;
-    g = c.connectsAsSource;
-    for (var h = !0, k = this.SOURCESCANSTARTRANK, b = 0; b < f.length; b++) {
-      var l = f[b];
-      if (5270620 == l.temp[0]) l = l.source, k = Math.min(k, l.temp[0] - 1);
-      else {
-        h = !1;
-        break
-      }
-    }
-    if (h) {
-      c.temp[0] =
-        k;
-      this.maxRank = Math.min(this.maxRank, k);
-      if (null != g)
-        for (b = 0; b < g.length; b++) l = g[b], l.temp[0] = 5270620, l = l.target, -1 == l.temp[0] && (a.push(l), l.temp[0] = -2);
-      a.shift()
-    } else if (b = a.shift(), a.push(c), b == c && 1 == a.length) break
-  }
-  for (d in this.vertexMapper) c = this.vertexMapper[d], c.temp[0] -= this.maxRank;
-  for (b = 0; b < e.length; b++) {
-    c = e[b];
-    a = 0;
-    f = c.connectsAsSource;
-    for (d = 0; d < f.length; d++) l = f[d], l = l.target, c.temp[0] = Math.max(a, l.temp[0] + 1), a = c.temp[0]
-  }
-  this.maxRank = this.SOURCESCANSTARTRANK - this.maxRank
-};
-mxGraphHierarchyModel.prototype.fixRanks = function() {
-  var a = [];
-  this.ranks = [];
-  for (var b = 0; b < this.maxRank + 1; b++) a[b] = [], this.ranks[b] = a[b];
-  var c = null;
-  if (null != this.roots)
-    for (var d = this.roots, c = [], b = 0; b < d.length; b++) {
-      var e = mxCellPath.create(d[b]);
-      c[b] = this.vertexMapper[e]
-    }
-  this.visit(function(b, c, d, e, l) {
-    0 == l && (0 > c.maxRank && 0 > c.minRank) && (a[c.temp[0]].push(c), c.maxRank = c.temp[0], c.minRank = c.temp[0], c.temp[0] = a[c.maxRank].length - 1);
-    if (null != b && null != d && 1 < b.maxRank - c.maxRank) {
-      d.maxRank = b.maxRank;
-      d.minRank =
-        c.maxRank;
-      d.temp = [];
-      d.x = [];
-      d.y = [];
-      for (b = d.minRank + 1; b < d.maxRank; b++) a[b].push(d), d.setGeneralPurposeVariable(b, a[b].length - 1)
-    }
-  }, c, !1, null)
-};
-mxGraphHierarchyModel.prototype.visit = function(a, b, c, d) {
-  if (null != b) {
-    for (var e = 0; e < b.length; e++) {
-      var f = b[e];
-      null != f && (null == d && (d = {}), c ? (f.hashCode = [], f.hashCode[0] = this.dfsCount, f.hashCode[1] = e, this.extendedDfs(null, f, null, a, d, f.hashCode, e, 0)) : this.dfs(null, f, null,
-        a, d, 0))
-    }
-    this.dfsCount++
-  }
-};
-mxGraphHierarchyModel.prototype.dfs = function(a, b, c, d, e, f) {
-  if (null != b) {
-    var g = mxCellPath.create(b.cell);
-    if (null == e[g]) {
-      e[g] = b;
-      d(a, b, c, f, 0);
-      a = b.connectsAsSource.slice();
-      for (c = 0; c < a.length; c++) g = a[c], this.dfs(b, g.target, g, d, e, f + 1)
-    } else d(a, b, c, f, 1)
-  }
-};
-mxGraphHierarchyModel.prototype.extendedDfs = function(a, b, c, d, e, f, g, h) {
-  if (null != b) {
-    if (null != a && (null == b.hashCode || b.hashCode[0] != a.hashCode[0])) f = a.hashCode.length + 1, b.hashCode = a.hashCode.slice(), b.hashCode[f - 1] = g;
-    g = mxCellPath.create(b.cell);
-    if (null == e[g]) {
-      e[g] = b;
-      d(a, b, c, h, 0);
-      a = b.connectsAsSource.slice();
-      for (c = 0; c < a.length; c++) g = a[c], this.extendedDfs(b, g.target, g, d, e, b.hashCode, c, h + 1)
-    } else d(a, b, c, h, 1)
-  }
-};
-
-function mxHierarchicalLayoutStage() {}
-mxHierarchicalLayoutStage.prototype.execute = function(a) {};
-
-function mxMedianHybridCrossingReduction(a) {
-  this.layout = a
-}
-mxMedianHybridCrossingReduction.prototype = new mxHierarchicalLayoutStage;
-mxMedianHybridCrossingReduction.prototype.constructor = mxMedianHybridCrossingReduction;
-mxMedianHybridCrossingReduction.prototype.layout = null;
-mxMedianHybridCrossingReduction.prototype.maxIterations = 24;
-mxMedianHybridCrossingReduction.prototype.nestedBestRanks = null;
-mxMedianHybridCrossingReduction.prototype.currentBestCrossings = 0;
-mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement = 0;
-mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations = 2;
-mxMedianHybridCrossingReduction.prototype.execute = function(a) {
-  a = this.layout.getModel();
-  this.nestedBestRanks = [];
-  for (var b = 0; b < a.ranks.length; b++) this.nestedBestRanks[b] = a.ranks[b].slice();
-  for (var c = 0, d = this.calculateCrossings(a), b = 0; b < this.maxIterations && c < this.maxNoImprovementIterations; b++) {
-    this.weightedMedian(b, a);
-    this.transpose(b, a);
-    var e = this.calculateCrossings(a);
-    if (e < d) {
-      d = e;
-      for (e = c = 0; e < this.nestedBestRanks.length; e++)
-        for (var f = a.ranks[e], g = 0; g < f.length; g++) {
-          var h = f[g];
-          this.nestedBestRanks[e][h.getGeneralPurposeVariable(e)] =
-            h
-        }
-    } else {
-      c++;
-      for (e = 0; e < this.nestedBestRanks.length; e++) {
-        f = a.ranks[e];
-        for (g = 0; g < f.length; g++) h = f[g], h.setGeneralPurposeVariable(e, g)
-      }
-    }
-    if (0 == d) break
-  }
-  c = [];
-  d = [];
-  for (b = 0; b < a.maxRank + 1; b++) d[b] = [], c[b] = d[b];
-  for (b = 0; b < this.nestedBestRanks.length; b++)
-    for (e = 0; e < this.nestedBestRanks[b].length; e++) d[b].push(this.nestedBestRanks[b][e]);
-  a.ranks = c
-};
-mxMedianHybridCrossingReduction.prototype.calculateCrossings = function(a) {
-  for (var b = a.ranks.length, c = 0, d = 1; d < b; d++) c += this.calculateRankCrossing(d, a);
-  return c
-};
-mxMedianHybridCrossingReduction.prototype.calculateRankCrossing = function(a, b) {
-  for (var c = 0, d = b.ranks[a], e = d.length, f = b.ranks[a - 1].length, g = [], h = 0; h < e; h++) g[h] = [];
-  for (h = 0; h < d.length; h++)
-    for (var k = d[h], l = k.getGeneralPurposeVariable(a), m = k.getPreviousLayerConnectedCells(a), k = 0; k < m.length; k++) {
-      var n = m[k].getGeneralPurposeVariable(a - 1);
-      g[l][n] = 201207
-    }
-  for (h = 0; h < e; h++)
-    for (k = 0; k < f; k++)
-      if (201207 == g[h][k]) {
-        for (d = h + 1; d < e; d++)
-          for (l = 0; l < k; l++) 201207 == g[d][l] && c++;
-        for (d = 0; d < h; d++)
-          for (l = k + 1; l < f; l++) 201207 == g[d][l] &&
-            c++
-      }
-  return c / 2
-};
-mxMedianHybridCrossingReduction.prototype.transpose = function(a, b) {
-  for (var c = !0, d = 0; c && 10 > d++;)
-    for (var e = 1 == a % 2 && 1 == d % 2, c = !1, f = 0; f < b.ranks.length; f++) {
-      for (var g = b.ranks[f], h = [], k = 0; k < g.length; k++) {
-        var l = g[k],
-          m = l.getGeneralPurposeVariable(f);
-        0 > m && (m = k);
-        h[m] = l
-      }
-      for (var n = m = l = null, p = null, q = null, s = null, r = null, t = null, v = null, w = null, k = 0; k < g.length - 1; k++) {
-        if (0 == k) {
-          for (var v = h[k], l = v.getNextLayerConnectedCells(f), m = v.getPreviousLayerConnectedCells(f), q = [], s = [], u = 0; u < l.length; u++) q[u] = l[u].getGeneralPurposeVariable(f + 1);
-          for (u = 0; u < m.length; u++) s[u] = m[u].getGeneralPurposeVariable(f - 1)
-        } else l = n, m = p, q = r, s = t, v = w;
-        w = h[k + 1];
-        n = w.getNextLayerConnectedCells(f);
-        p = w.getPreviousLayerConnectedCells(f);
-        r = [];
-        t = [];
-        for (u = 0; u < n.length; u++) r[u] = n[u].getGeneralPurposeVariable(f + 1);
-        for (u = 0; u < p.length; u++) t[u] = p[u].getGeneralPurposeVariable(f - 1);
-        for (var y = 0, z = 0, u = 0; u < q.length; u++)
-          for (var x = 0; x < r.length; x++) q[u] > r[x] && y++, q[u] < r[x] && z++;
-        for (u = 0; u < s.length; u++)
-          for (x = 0; x < t.length; x++) s[u] > t[x] && y++, s[u] < t[x] && z++;
-        if (z < y || z == y && e) n = v.getGeneralPurposeVariable(f),
-          v.setGeneralPurposeVariable(f, w.getGeneralPurposeVariable(f)), w.setGeneralPurposeVariable(f, n), n = l, p = m, r = q, t = s, w = v, e || (c = !0)
-      }
-    }
-};
-mxMedianHybridCrossingReduction.prototype.weightedMedian = function(a, b) {
-  var c = 0 == a % 2;
-  if (c)
-    for (var d = b.maxRank - 1; 0 <= d; d--) this.medianRank(d, c);
-  else
-    for (d = 1; d < b.maxRank; d++) this.medianRank(d, c)
-};
-mxMedianHybridCrossingReduction.prototype.medianRank = function(a, b) {
-  for (var c = this.nestedBestRanks[a].length, d = [], e = [], f = 0; f < c; f++) {
-    var g = this.nestedBestRanks[a][f],
-      h = new MedianCellSorter;
-    h.cell = g;
-    var k;
-    k = b ? g.getNextLayerConnectedCells(a) : g.getPreviousLayerConnectedCells(a);
-    var l;
-    l = b ? a + 1 : a - 1;
-    null != k && 0 != k.length ? (h.medianValue = this.medianValue(k, l), d.push(h)) : e[g.getGeneralPurposeVariable(a)] = !0
-  }
-  d.sort(MedianCellSorter.prototype.compare);
-  for (f = 0; f < c; f++) null == e[f] && (g = d.shift().cell, g.setGeneralPurposeVariable(a,
-    f))
-};
-mxMedianHybridCrossingReduction.prototype.medianValue = function(a, b) {
-  for (var c = [], d = 0, e = 0; e < a.length; e++) {
-    var f = a[e];
-    c[d++] = f.getGeneralPurposeVariable(b)
-  }
-  c.sort(function(a, b) {
-    return a - b
-  });
-  if (1 == d % 2) return c[Math.floor(d / 2)];
-  if (2 == d) return (c[0] + c[1]) / 2;
-  e = d / 2;
-  f = c[e - 1] - c[0];
-  d = c[d - 1] - c[e];
-  return (c[e - 1] * d + c[e] * f) / (f + d)
-};
-
-function MedianCellSorter() {}
-MedianCellSorter.prototype.medianValue = 0;
-MedianCellSorter.prototype.cell = !1;
-MedianCellSorter.prototype.compare = function(a, b) {
-  return null != a && null != b ? b.medianValue > a.medianValue ? -1 : b.medianValue < a.medianValue ? 1 : 0 : 0
-};
-
-function mxMinimumCycleRemover(a) {
-  this.layout = a
-}
-mxMinimumCycleRemover.prototype = new mxHierarchicalLayoutStage;
-mxMinimumCycleRemover.prototype.constructor = mxMinimumCycleRemover;
-mxMinimumCycleRemover.prototype.layout = null;
-mxMinimumCycleRemover.prototype.execute = function(a) {
-  var b = this.layout.getModel(),
-    c = {},
-    d = mxUtils.clone(b.vertexMapper, null, !0),
-    e = null;
-  if (null != b.roots) {
-    var f = b.roots,
-      e = [];
-    for (a = 0; a < f.length; a++) {
-      var g = mxCellPath.create(f[a]);
-      e[a] = b.vertexMapper[g]
-    }
-  }
-  b.visit(function(a, b, e, f, g) {
-    b.isAncestor(a) && (e.invert(), mxUtils.remove(e, a.connectsAsSource), a.connectsAsTarget.push(e), mxUtils.remove(e, b.connectsAsTarget), b.connectsAsSource.push(e));
-    a = mxCellPath.create(b.cell);
-    c[a] = b;
-    delete d[a]
-  }, e, !0, null);
-  e = null;
-  0 <
-    d.lenth && (e = mxUtils.clone(d, null, !0));
-  a = mxUtils.clone(c, null, !0);
-  b.visit(function(a, b, e, f, g) {
-    b.isAncestor(a) && (e.invert(), mxUtils.remove(e, a.connectsAsSource), b.connectsAsSource.push(e), a.connectsAsTarget.push(e), mxUtils.remove(e, b.connectsAsTarget));
-    a = mxCellPath.create(b.cell);
-    c[a] = b;
-    delete d[a]
-  }, d, !0, a);
-  f = this.layout.getGraph();
-  if (null != e && 0 < e.length) {
-    b = b.roots;
-    for (a = 0; a < e.length; a++) g = e[a].cell, 0 == f.getIncomingEdges(g).length && b.push(g)
-  }
-};
-
-function mxCoordinateAssignment(a, b, c, d, e, f) {
-  this.layout = a;
-  this.intraCellSpacing = b;
-  this.interRankCellSpacing = c;
-  this.orientation = d;
-  this.initialX = e;
-  this.parallelEdgeSpacing = f
-}
-var mxHierarchicalEdgeStyle = {
-  ORTHOGONAL: 1,
-  POLYLINE: 2,
-  STRAIGHT: 3,
-  CURVE: 4
-};
-mxCoordinateAssignment.prototype = new mxHierarchicalLayoutStage;
-mxCoordinateAssignment.prototype.constructor = mxCoordinateAssignment;
-mxCoordinateAssignment.prototype.layout = null;
-mxCoordinateAssignment.prototype.intraCellSpacing = 30;
-mxCoordinateAssignment.prototype.interRankCellSpacing = 100;
-mxCoordinateAssignment.prototype.parallelEdgeSpacing = 10;
-mxCoordinateAssignment.prototype.maxIterations = 8;
-mxCoordinateAssignment.prototype.prefHozEdgeSep = 5;
-mxCoordinateAssignment.prototype.prefVertEdgeOff = 2;
-mxCoordinateAssignment.prototype.minEdgeJetty = 12;
-mxCoordinateAssignment.prototype.channelBuffer = 4;
-mxCoordinateAssignment.prototype.jettyPositions = null;
-mxCoordinateAssignment.prototype.orientation = mxConstants.DIRECTION_NORTH;
-mxCoordinateAssignment.prototype.initialX = null;
-mxCoordinateAssignment.prototype.limitX = null;
-mxCoordinateAssignment.prototype.currentXDelta = null;
-mxCoordinateAssignment.prototype.widestRank = null;
-mxCoordinateAssignment.prototype.rankTopY = null;
-mxCoordinateAssignment.prototype.rankBottomY = null;
-mxCoordinateAssignment.prototype.widestRankValue = null;
-mxCoordinateAssignment.prototype.rankWidths = null;
-mxCoordinateAssignment.prototype.rankY = null;
-mxCoordinateAssignment.prototype.fineTuning = !0;
-mxCoordinateAssignment.prototype.edgeStyle = mxHierarchicalEdgeStyle.POLYLINE;
-mxCoordinateAssignment.prototype.nextLayerConnectedCache = null;
-mxCoordinateAssignment.prototype.previousLayerConnectedCache = null;
-mxCoordinateAssignment.prototype.groupPadding = 10;
-mxCoordinateAssignment.prototype.printStatus = function() {
-  var a = this.layout.getModel();
-  mxLog.show();
-  mxLog.writeln("\x3d\x3d\x3d\x3d\x3d\x3dCoord assignment debug\x3d\x3d\x3d\x3d\x3d\x3d\x3d");
-  for (var b = 0; b < a.ranks.length; b++) {
-    mxLog.write("Rank ", b, " : ");
-    for (var c = a.ranks[b], d = 0; d < c.length; d++) mxLog.write(c[d].getGeneralPurposeVariable(b), "  ");
-    mxLog.writeln()
-  }
-  mxLog.writeln("\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d\x3d")
-};
-mxCoordinateAssignment.prototype.execute = function(a) {
-  this.jettyPositions = [];
-  a = this.layout.getModel();
-  this.currentXDelta = 0;
-  this.initialCoords(this.layout.getGraph(), a);
-  this.fineTuning && this.minNode(a);
-  var b = 1E8;
-  if (this.fineTuning)
-    for (var c = 0; c < this.maxIterations; c++) {
-      0 != c && (this.medianPos(c, a), this.minNode(a));
-      if (this.currentXDelta < b) {
-        for (var d = 0; d < a.ranks.length; d++)
-          for (var e = a.ranks[d], f = 0; f < e.length; f++) {
-            var g = e[f];
-            g.setX(d, g.getGeneralPurposeVariable(d))
-          }
-        b = this.currentXDelta
-      } else
-        for (d = 0; d < a.ranks.length; d++) {
-          e =
-            a.ranks[d];
-          for (f = 0; f < e.length; f++) g = e[f], g.setGeneralPurposeVariable(d, g.getX(d))
-        }
-      this.minPath(this.layout.getGraph(), a);
-      this.currentXDelta = 0
-    }
-  this.setCellLocations(this.layout.getGraph(), a)
-};
-mxCoordinateAssignment.prototype.minNode = function(a) {
-  for (var b = [], c = [], d = [], e = 0; e <= a.maxRank; e++) {
-    d[e] = a.ranks[e];
-    for (var f = 0; f < d[e].length; f++) {
-      var g = d[e][f],
-        h = new WeightedCellSorter(g, e);
-      h.rankIndex = f;
-      h.visited = !0;
-      b.push(h);
-      g = mxCellPath.create(g.getCoreCell());
-      c[g] = h
-    }
-  }
-  a = 10 * b.length;
-  for (f = 0; 0 < b.length && f <= a;) {
-    var h = b.shift(),
-      e = h.cell,
-      k = h.weightedValue,
-      l = parseInt(h.rankIndex),
-      g = e.getNextLayerConnectedCells(k),
-      m = e.getPreviousLayerConnectedCells(k),
-      n = g.length,
-      p = m.length,
-      q = this.medianXValue(g, k + 1),
-      s =
-      this.medianXValue(m, k - 1),
-      r = n + p,
-      t = e.getGeneralPurposeVariable(k),
-      v = t;
-    0 < r && (v = (q * n + s * p) / r);
-    n = !1;
-    v < t - 1 ? 0 == l ? (e.setGeneralPurposeVariable(k, v), n = !0) : (l = d[k][l - 1], t = l.getGeneralPurposeVariable(k), t = t + l.width / 2 + this.intraCellSpacing + e.width / 2, t < v ? (e.setGeneralPurposeVariable(
-      k, v), n = !0) : t < e.getGeneralPurposeVariable(k) - 1 && (e.setGeneralPurposeVariable(k, t), n = !0)) : v > t + 1 && (l == d[k].length - 1 ? (e.setGeneralPurposeVariable(k, v), n = !0) :
-      (l = d[k][l + 1], t = l.getGeneralPurposeVariable(k), t = t - l.width / 2 - this.intraCellSpacing -
-        e.width / 2, t > v ? (e.setGeneralPurposeVariable(k, v), n = !0) : t > e.getGeneralPurposeVariable(k) + 1 && (e.setGeneralPurposeVariable(k, t), n = !0)));
-    if (n) {
-      for (e = 0; e < g.length; e++) k = g[e], k = mxCellPath.create(k.getCoreCell()), k = c[k], null != k && !1 == k.visited && (k.visited = !0, b.push(k));
-      for (e = 0; e < m.length; e++) k = m[e], k = mxCellPath.create(k.getCoreCell()), k = c[k], null != k && !1 == k.visited && (k.visited = !0, b.push(k))
-    }
-    h.visited = !1;
-    f++
-  }
-};
-mxCoordinateAssignment.prototype.medianPos = function(a, b) {
-  if (0 == a % 2)
-    for (var c = b.maxRank; 0 < c; c--) this.rankMedianPosition(c - 1, b, c);
-  else
-    for (c = 0; c < b.maxRank - 1; c++) this.rankMedianPosition(c + 1, b, c)
-};
-mxCoordinateAssignment.prototype.rankMedianPosition = function(a, b, c) {
-  b = b.ranks[a];
-  for (var d = [], e = [], f = 0; f < b.length; f++) {
-    var g = b[f];
-    d[f] = new WeightedCellSorter;
-    d[f].cell = g;
-    d[f].rankIndex = f;
-    var h = mxCellPath.create(g.getCoreCell());
-    e[h] = d[f];
-    var k = null,
-      k = c < a ? g.getPreviousLayerConnectedCells(a) : g.getNextLayerConnectedCells(a);
-    d[f].weightedValue = this.calculatedWeightedValue(g, k)
-  }
-  d.sort(WeightedCellSorter.prototype.compare);
-  for (f = 0; f < d.length; f++) {
-    h = 0;
-    g = d[f].cell;
-    h = 0;
-    k = c < a ? g.getPreviousLayerConnectedCells(a).slice() :
-      g.getNextLayerConnectedCells(a).slice();
-    null != k && (h = k.length, h = 0 < h ? this.medianXValue(k, c) : g.getGeneralPurposeVariable(a));
-    for (var l = 0, k = -1E8, m = d[f].rankIndex - 1; 0 <= m;) {
-      var n = mxCellPath.create(b[m].getCoreCell()),
-        n = e[n];
-      if (null != n) {
-        var p = n.cell;
-        n.visited ? (k = p.getGeneralPurposeVariable(a) + p.width / 2 + this.intraCellSpacing + l + g.width / 2, m = -1) : (l += p.width + this.intraCellSpacing, m--)
-      }
-    }
-    l = 0;
-    p = 1E8;
-    for (m = d[f].rankIndex + 1; m < d.length;)
-      if (n = mxCellPath.create(b[m].getCoreCell()), n = e[n], null != n) {
-        var q = n.cell;
-        n.visited ?
-          (p = q.getGeneralPurposeVariable(a) - q.width / 2 - this.intraCellSpacing - l - g.width / 2, m = d.length) : (l += q.width + this.intraCellSpacing, m++)
-      }
-    h >= k && h <= p ? g.setGeneralPurposeVariable(a, h) : h < k ? (g.setGeneralPurposeVariable(a, k), this.currentXDelta += k - h) : h > p && (g.setGeneralPurposeVariable(a, p), this.currentXDelta +=
-      h - p);
-    d[f].visited = !0
-  }
-};
-mxCoordinateAssignment.prototype.calculatedWeightedValue = function(a, b) {
-  for (var c = 0, d = 0; d < b.length; d++) {
-    var e = b[d];
-    a.isVertex() && e.isVertex() ? c++ : c = a.isEdge() && e.isEdge() ? c + 8 : c + 2
-  }
-  return c
-};
-mxCoordinateAssignment.prototype.medianXValue = function(a, b) {
-  if (0 == a.length) return 0;
-  for (var c = [], d = 0; d < a.length; d++) c[d] = a[d].getGeneralPurposeVariable(b);
-  c.sort(function(a, b) {
-    return a - b
-  });
-  if (1 == a.length % 2) return c[Math.floor(a.length / 2)];
-  d = a.length / 2;
-  return (c[d - 1] + c[d]) / 2
-};
-mxCoordinateAssignment.prototype.initialCoords = function(a, b) {
-  this.calculateWidestRank(a, b);
-  for (var c = this.widestRank; 0 <= c; c--) c < b.maxRank && this.rankCoordinates(c, a, b);
-  for (c = this.widestRank + 1; c <= b.maxRank; c++) 0 < c && this.rankCoordinates(c, a, b)
-};
-mxCoordinateAssignment.prototype.rankCoordinates = function(a, b, c) {
-  b = c.ranks[a];
-  c = 0;
-  for (var d = this.initialX + (this.widestRankValue - this.rankWidths[a]) / 2, e = !1, f = 0; f < b.length; f++) {
-    var g = b[f];
-    if (g.isVertex()) {
-      var h = this.layout.getVertexBounds(g.cell);
-      null != h ? this.orientation == mxConstants.DIRECTION_NORTH || this.orientation == mxConstants.DIRECTION_SOUTH ? (g.width = h.width, g.height = h.height) : (g.width = h.height, g.height = h.width) :
-        e = !0;
-      c = Math.max(c, g.height)
-    } else g.isEdge() && (h = 1, null != g.edges ? h = g.edges.length : mxLog.warn("edge.edges is null"),
-      g.width = (h - 1) * this.parallelEdgeSpacing);
-    d += g.width / 2;
-    g.setX(a, d);
-    g.setGeneralPurposeVariable(a, d);
-    d += g.width / 2;
-    d += this.intraCellSpacing
-  }!0 == e && mxLog.warn("At least one cell has no bounds")
-};
-mxCoordinateAssignment.prototype.calculateWidestRank = function(a, b) {
-  var c = -this.interRankCellSpacing,
-    d = 0;
-  this.rankWidths = [];
-  this.rankY = [];
-  for (var e = b.maxRank; 0 <= e; e--) {
-    for (var f = 0, g = b.ranks[e], h = this.initialX, k = !1, l = 0; l < g.length; l++) {
-      var m = g[l];
-      if (m.isVertex()) {
-        var n = this.layout.getVertexBounds(m.cell);
-        null != n ? this.orientation == mxConstants.DIRECTION_NORTH || this.orientation == mxConstants.DIRECTION_SOUTH ? (m.width = n.width, m.height = n.height) : (m.width = n.height, m.height = n
-          .width) : k = !0;
-        f = Math.max(f, m.height)
-      } else m.isEdge() &&
-        (n = 1, null != m.edges ? n = m.edges.length : mxLog.warn("edge.edges is null"), m.width = (n - 1) * this.parallelEdgeSpacing);
-      h += m.width / 2;
-      m.setX(e, h);
-      m.setGeneralPurposeVariable(e, h);
-      h += m.width / 2;
-      h += this.intraCellSpacing;
-      h > this.widestRankValue && (this.widestRankValue = h, this.widestRank = e);
-      this.rankWidths[e] = h
-    }!0 == k && mxLog.warn("At least one cell has no bounds");
-    this.rankY[e] = c;
-    h = f / 2 + d / 2 + this.interRankCellSpacing;
-    d = f;
-    c = this.orientation == mxConstants.DIRECTION_NORTH || this.orientation == mxConstants.DIRECTION_WEST ? c + h : c -
-      h;
-    for (l = 0; l < g.length; l++) g[l].setY(e, c)
-  }
-};
-mxCoordinateAssignment.prototype.minPath = function(a, b) {
-  var c = b.edgeMapper,
-    d;
-  for (d in c) {
-    var e = c[d];
-    if (!(1 > e.maxRank - e.minRank - 1)) {
-      for (var f = e.getGeneralPurposeVariable(e.minRank + 1), g = !0, h = 0, k = e.minRank + 2; k < e.maxRank; k++) {
-        var l = e.getGeneralPurposeVariable(k);
-        f != l ? (g = !1, f = l) : h++
-      }
-      if (!g) {
-        for (var g = f = 0, l = [], m = [], n = e.getGeneralPurposeVariable(e.minRank + 1), k = e.minRank + 1; k < e.maxRank - 1; k++) {
-          var p = e.getX(k + 1);
-          n == p ? (l[k - e.minRank - 1] = n, f++) : this.repositionValid(b, e, k + 1, n) ? (l[k - e.minRank - 1] = n, f++) : n = l[k - e.minRank -
-            1] = p
-        }
-        n = e.getX(k);
-        for (k = e.maxRank - 1; k > e.minRank + 1; k--) p = e.getX(k - 1), n == p ? (m[k - e.minRank - 2] = n, g++) : this.repositionValid(b, e, k - 1, n) ? (m[k - e.minRank - 2] = n, g++) : (m[k -
-          e.minRank - 2] = e.getX(k - 1), n = p);
-        if (g > h || f > h)
-          if (g >= f)
-            for (k = e.maxRank - 2; k > e.minRank; k--) e.setX(k, m[k - e.minRank - 1]);
-          else if (f > g)
-          for (k = e.minRank + 2; k < e.maxRank; k++) e.setX(k, l[k - e.minRank - 2])
-      }
-    }
-  }
-};
-mxCoordinateAssignment.prototype.repositionValid = function(a, b, c, d) {
-  a = a.ranks[c];
-  for (var e = -1, f = 0; f < a.length; f++)
-    if (b == a[f]) {
-      e = f;
-      break
-    }
-  if (0 > e) return !1;
-  f = b.getGeneralPurposeVariable(c);
-  if (d < f) {
-    if (0 == e) return !0;
-    a = a[e - 1];
-    c = a.getGeneralPurposeVariable(c);
-    c = c + a.width / 2 + this.intraCellSpacing + b.width / 2;
-    if (!(c <= d)) return !1
-  } else if (d > f) {
-    if (e == a.length - 1) return !0;
-    a = a[e + 1];
-    c = a.getGeneralPurposeVariable(c);
-    c = c - a.width / 2 - this.intraCellSpacing - b.width / 2;
-    if (!(c >= d)) return !1
-  }
-  return !0
-};
-mxCoordinateAssignment.prototype.setCellLocations = function(a, b) {
-  this.rankTopY = [];
-  this.rankBottomY = [];
-  for (var c = 0; c < b.ranks.length; c++) this.rankTopY[c] = Number.MAX_VALUE, this.rankBottomY[c] = 0;
-  c = null;
-  this.layout.resizeParent && (c = {});
-  var d = b.edgeMapper,
-    e = b.vertexMapper,
-    f;
-  for (f in e) {
-    var g = e[f];
-    this.setVertexLocation(g);
-    if (this.layout.resizeParent) {
-      var g = a.model.getParent(g.cell),
-        h = mxCellPath.create(g);
-      null == c[h] && (c[h] = g)
-    }
-  }
-  this.layout.resizeParent && null != c && this.adjustParents(c);
-  (this.edgeStyle == mxHierarchicalEdgeStyle.ORTHOGONAL ||
-    this.edgeStyle == mxHierarchicalEdgeStyle.POLYLINE || this.edgeStyle == mxHierarchicalEdgeStyle.CURVE) && this.localEdgeProcessing(b);
-  for (f in d) this.setEdgePosition(d[f])
-};
-mxCoordinateAssignment.prototype.adjustParents = function(a) {
-  var b = [],
-    c;
-  for (c in a) b.push(a[c]);
-  this.layout.arrangeGroups(mxUtils.sortCells(b, !0), this.groupPadding)
-};
-mxCoordinateAssignment.prototype.localEdgeProcessing = function(a) {
-  for (var b = 0; b < a.ranks.length; b++)
-    for (var c = a.ranks[b], d = 0; d < c.length; d++) {
-      var e = c[d];
-      if (e.isVertex())
-        for (var f = e.getPreviousLayerConnectedCells(b), g = b - 1, h = 0; 2 > h; h++) {
-          if (-1 < g && g < a.ranks.length && null != f && 0 < f.length) {
-            for (var k = [], l = 0; l < f.length; l++) {
-              var m = new WeightedCellSorter(f[l], f[l].getX(g));
-              k.push(m)
-            }
-            k.sort(WeightedCellSorter.prototype.compare);
-            for (var m = e.x[0] - e.width / 2, n = m + e.width, p = f = 0, g = [], l = 0; l < k.length; l++) {
-              var q = k[l].cell,
-                s;
-              if (q.isVertex()) {
-                s = 0 == h ? e.connectsAsSource : e.connectsAsTarget;
-                for (var r = 0; r < s.length; r++)
-                  if (s[r].source == q || s[r].target == q) f += s[r].edges.length, p++, g.push(s[r])
-              } else f += q.edges.length, p++, g.push(q)
-            }
-            e.width > (f + 1) * this.prefHozEdgeSep + 2 * this.prefHozEdgeSep && (m += this.prefHozEdgeSep, n -= this.prefHozEdgeSep);
-            k = (n - m) / f;
-            m += k / 2;
-            n = this.minEdgeJetty - this.prefVertEdgeOff;
-            for (l = p = 0; l < g.length; l++) {
-              q = g[l].edges.length;
-              r = mxCellPath.create(g[l].edges[0]);
-              s = this.jettyPositions[r];
-              null == s && (s = [], this.jettyPositions[r] =
-                s);
-              l < f / 2 ? n += this.prefVertEdgeOff : l > f / 2 && (n -= this.prefVertEdgeOff);
-              for (r = 0; r < q; r++) s[4 * r + 2 * h] = m, m += k, s[4 * r + 2 * h + 1] = n;
-              p = Math.max(p, n)
-            }
-          }
-          f = e.getNextLayerConnectedCells(b);
-          g = b + 1
-        }
-    }
-};
-mxCoordinateAssignment.prototype.setEdgePosition = function(a) {
-  var b = 0;
-  if (101207 != a.temp[0]) {
-    var c = a.maxRank,
-      d = a.minRank;
-    c == d && (c = a.source.maxRank, d = a.target.minRank);
-    for (var e = 0, f = mxCellPath.create(a.edges[0]), f = this.jettyPositions[f], g = a.isReversed ? a.target.cell : a.source.cell, h = this.layout.graph, k = 0; k < a.edges.length; k++) {
-      var l = a.edges[k],
-        m = this.layout.getVisibleTerminal(l, !0),
-        n = h.model.getTerminal(l, !0),
-        p = [],
-        q = a.isReversed;
-      m != g && (q = !q);
-      if (null != f) {
-        var s = q ? 2 : 0,
-          r = q ? this.rankTopY[d] : this.rankBottomY[c],
-          t = f[4 * e + 1 + s];
-        q && (t = -t);
-        r += t;
-        s = f[4 * e + s];
-        n = h.model.getTerminal(l, !0);
-        this.layout.isPort(n) && h.model.getParent(n) == m && (s = h.view.getState(n), s = null != s ? s.x : m.geometry.x + a.source.width * n.geometry.x);
-        this.orientation == mxConstants.DIRECTION_NORTH || this.orientation == mxConstants.DIRECTION_SOUTH ? (p.push(new mxPoint(s, r)), this.edgeStyle == mxHierarchicalEdgeStyle.CURVE && p.push(
-          new mxPoint(s, r + t))) : (p.push(new mxPoint(r, s)), this.edgeStyle == mxHierarchicalEdgeStyle.CURVE && p.push(new mxPoint(r + t, s)))
-      }
-      s = a.x.length -
-        1;
-      r = t = -1;
-      m = a.maxRank - 1;
-      q && (s = 0, t = a.x.length, r = 1, m = a.minRank + 1);
-      for (; a.maxRank != a.minRank && s != t; s += r) {
-        var n = a.x[s] + b,
-          v = (this.rankTopY[m] + this.rankBottomY[m + 1]) / 2,
-          w = (this.rankTopY[m - 1] + this.rankBottomY[m]) / 2;
-        if (q) var u = v,
-          v = w,
-          w = u;
-        this.orientation == mxConstants.DIRECTION_NORTH || this.orientation == mxConstants.DIRECTION_SOUTH ? (p.push(new mxPoint(n, v)), p.push(new mxPoint(n, w))) : (p.push(new mxPoint(v, n)), p.push(
-          new mxPoint(w, n)));
-        this.limitX = Math.max(this.limitX, n);
-        m += r
-      }
-      null != f && (s = q ? 2 : 0, r = q ? this.rankBottomY[c] :
-        this.rankTopY[d], t = f[4 * e + 3 - s], q && (t = -t), r -= t, s = f[4 * e + 2 - s], q = h.model.getTerminal(l, !1), m = this.layout.getVisibleTerminal(l, !1), this.layout.isPort(q) && h.model
-        .getParent(q) == m && (s = h.view.getState(q), s = null != s ? s.x : m.geometry.x + a.target.width * q.geometry.x), this.orientation == mxConstants.DIRECTION_NORTH || this.orientation ==
-        mxConstants.DIRECTION_SOUTH ? (this.edgeStyle == mxHierarchicalEdgeStyle.CURVE && p.push(new mxPoint(s, r - t)), p.push(new mxPoint(s, r))) : (this.edgeStyle == mxHierarchicalEdgeStyle.CURVE &&
-          p.push(new mxPoint(r -
-            t, s)), p.push(new mxPoint(r, s))));
-      a.isReversed && this.processReversedEdge(a, l);
-      this.layout.setEdgePoints(l, p);
-      b = 0 == b ? this.parallelEdgeSpacing : 0 < b ? -b : -b + this.parallelEdgeSpacing;
-      e++
-    }
-    a.temp[0] = 101207
-  }
-};
-mxCoordinateAssignment.prototype.setVertexLocation = function(a) {
-  var b = a.cell,
-    c = a.x[0] - a.width / 2,
-    d = a.y[0] - a.height / 2;
-  this.rankTopY[a.minRank] = Math.min(this.rankTopY[a.minRank], d);
-  this.rankBottomY[a.minRank] = Math.max(this.rankBottomY[a.minRank], d + a.height);
-  this.orientation == mxConstants.DIRECTION_NORTH || this.orientation == mxConstants.DIRECTION_SOUTH ? this.layout.setVertexLocation(b, c, d) : this.layout.setVertexLocation(b, d, c);
-  this.limitX = Math.max(this.limitX, c + a.width)
-};
-mxCoordinateAssignment.prototype.processReversedEdge = function(a, b) {};
-
-function WeightedCellSorter(a, b) {
-  this.cell = a;
-  this.weightedValue = b
-}
-WeightedCellSorter.prototype.weightedValue = 0;
-WeightedCellSorter.prototype.nudge = !1;
-WeightedCellSorter.prototype.visited = !1;
-WeightedCellSorter.prototype.rankIndex = null;
-WeightedCellSorter.prototype.cell = null;
-WeightedCellSorter.prototype.compare = function(a, b) {
-  return null != a && null != b ? b.weightedValue > a.weightedValue ? -1 : b.weightedValue < a.weightedValue ? 1 : b.nudge ? -1 : 1 : 0
-};
-
-function mxHierarchicalLayout(a, b, c) {
-  mxGraphLayout.call(this, a);
-  this.orientation = null != b ? b : mxConstants.DIRECTION_NORTH;
-  this.deterministic = null != c ? c : !0
-}
-mxHierarchicalLayout.prototype = new mxGraphLayout;
-mxHierarchicalLayout.prototype.constructor = mxHierarchicalLayout;
-mxHierarchicalLayout.prototype.roots = null;
-mxHierarchicalLayout.prototype.resizeParent = !1;
-mxHierarchicalLayout.prototype.moveParent = !1;
-mxHierarchicalLayout.prototype.parentBorder = 0;
-mxHierarchicalLayout.prototype.intraCellSpacing = 30;
-mxHierarchicalLayout.prototype.interRankCellSpacing = 100;
-mxHierarchicalLayout.prototype.interHierarchySpacing = 60;
-mxHierarchicalLayout.prototype.parallelEdgeSpacing = 10;
-mxHierarchicalLayout.prototype.orientation = mxConstants.DIRECTION_NORTH;
-mxHierarchicalLayout.prototype.fineTuning = !0;
-mxHierarchicalLayout.prototype.tightenToSource = !0;
-mxHierarchicalLayout.prototype.disableEdgeStyle = !0;
-mxHierarchicalLayout.prototype.traverseAncestors = !0;
-mxHierarchicalLayout.prototype.model = null;
-mxHierarchicalLayout.prototype.edgesCache = null;
-mxHierarchicalLayout.prototype.getModel = function() {
-  return this.model
-};
-mxHierarchicalLayout.prototype.execute = function(a, b) {
-  this.parent = a;
-  var c = this.graph.model;
-  this.edgesCache = {};
-  if (!(null == b && null == a)) {
-    if (null != b && null != a) {
-      for (var d = [], e = 0; e < b.length; e++) c.isAncestor(a, b[e]) && d.push(b[e]);
-      this.roots = d
-    } else this.roots = b;
-    c.beginUpdate();
-    try {
-      this.run(a), this.resizeParent && !this.graph.isCellCollapsed(a) && this.graph.updateGroupBounds([a], this.parentBorder, this.moveParent)
-    } finally {
-      c.endUpdate()
-    }
-  }
-};
-mxHierarchicalLayout.prototype.findRoots = function(a, b) {
-  var c = [];
-  if (null != a && null != b) {
-    var d = this.graph.model,
-      e = null,
-      f = -1E5,
-      g;
-    for (g in b) {
-      var h = b[g];
-      if (d.isVertex(h) && this.graph.isCellVisible(h)) {
-        for (var k = this.getEdges(h), l = 0, m = 0, n = 0; n < k.length; n++) this.getVisibleTerminal(k[n], !0) == h ? l++ : m++;
-        0 == m && 0 < l && c.push(h);
-        k = l - m;
-        k > f && (f = k, e = h)
-      }
-    }
-    0 == c.length && null != e && c.push(e)
-  }
-  return c
-};
-mxHierarchicalLayout.prototype.getEdges = function(a) {
-  var b = mxCellPath.create(a);
-  if (null != this.edgesCache[b]) return this.edgesCache[b];
-  for (var c = this.graph.model, d = [], e = this.graph.isCellCollapsed(a), f = c.getChildCount(a), g = 0; g < f; g++) {
-    var h = c.getChildAt(a, g);
-    if (this.isPort(h)) d = d.concat(c.getEdges(h, !0, !0));
-    else if (e || !this.graph.isCellVisible(h)) d = d.concat(c.getEdges(h, !0, !0))
-  }
-  d = d.concat(c.getEdges(a, !0, !0));
-  c = [];
-  for (g = 0; g < d.length; g++) e = this.getVisibleTerminal(d[g], !0), f = this.getVisibleTerminal(d[g], !1), (e == f || e != f && (f == a && (null == this.parent || this.graph.isValidAncestor(e,
-    this.parent, this.traverseAncestors)) || e == a && (null == this.parent || this.graph.isValidAncestor(f, this.parent, this.traverseAncestors)))) && c.push(d[g]);
-  return this.edgesCache[b] = c
-};
-mxHierarchicalLayout.prototype.getVisibleTerminal = function(a, b) {
-  var c = this.graph.view.getState(a),
-    c = null != c ? c.getVisibleTerminal(b) : this.graph.view.getVisibleTerminal(a, b);
-  this.isPort(c) && (c = this.graph.model.getParent(c));
-  return c
-};
-mxHierarchicalLayout.prototype.run = function(a) {
-  var b = [],
-    c = [];
-  if (null == this.roots && null != a) {
-    var d = {};
-    this.filterDescendants(a, d);
-    this.roots = [];
-    var e = !0,
-      f;
-    for (f in d)
-      if (null != d[f]) {
-        e = !1;
-        break
-      }
-    for (; !e;) {
-      for (var g = this.findRoots(a, d), e = 0; e < g.length; e++) {
-        var h = [];
-        b.push(h);
-        this.traverse(g[e], !0, null, c, h, b, d)
-      }
-      for (e = 0; e < g.length; e++) this.roots.push(g[e]);
-      e = !0;
-      for (f in d)
-        if (null != d[f]) {
-          e = !1;
-          break
-        }
-    }
-  } else
-    for (e = 0; e < roots.length; e++) h = [], b.push(h), traverse(roots.get(e), !0, null, c, h, b, null);
-  for (e = c = 0; e < b.length; e++) {
-    h =
-      b[e];
-    d = [];
-    for (f in h) d.push(h[f]);
-    this.model = new mxGraphHierarchyModel(this, d, this.roots, a, this.tightenToSource);
-    this.cycleStage(a);
-    this.layeringStage();
-    this.crossingStage(a);
-    c = this.placementStage(c, a)
-  }
-};
-mxHierarchicalLayout.prototype.filterDescendants = function(a, b) {
-  var c = this.graph.model;
-  c.isVertex(a) && (a != this.parent && this.graph.isCellVisible(a)) && (b[mxCellPath.create(a)] = a);
-  if (this.traverseAncestors || a == this.parent && this.graph.isCellVisible(a))
-    for (var d = c.getChildCount(a), e = 0; e < d; e++) {
-      var f = c.getChildAt(a, e);
-      this.isPort(f) || this.filterDescendants(f, b)
-    }
-};
-mxHierarchicalLayout.prototype.isPort = function(a) {
-  return a.geometry.relative ? !0 : !1
-};
-mxHierarchicalLayout.prototype.getEdgesBetween = function(a, b, c) {
-  c = null != c ? c : !1;
-  for (var d = this.getEdges(a), e = [], f = 0; f < d.length; f++) {
-    var g = this.getVisibleTerminal(d[f], !0),
-      h = this.getVisibleTerminal(d[f], !1);
-    (g == a && h == b || !c && g == b && h == a) && e.push(d[f])
-  }
-  return e
-};
-mxHierarchicalLayout.prototype.traverse = function(a, b, c, d, e, f, g) {
-  if (null != a && null != d) {
-    var h = mxCellPath.create(a);
-    if (null == d[h] && (null == g || null != g[h])) {
-      null == e[h] && (e[h] = a);
-      null == d[h] && (d[h] = a);
-      delete g[h];
-      var k = this.getEdges(a);
-      for (c = 0; c < k.length; c++)
-        if (h = this.getVisibleTerminal(k[c], !0) == a, !b || h) h = this.getVisibleTerminal(k[c], !h), e = this.traverse(h, b, k[c], d, e, f, g)
-    } else if (null == e[h])
-      for (c = 0; c < f.length; c++)
-        if (a = f[c], null != a[h]) {
-          for (k in e) a[k] = e[k];
-          f.pop();
-          return a
-        }
-  }
-  return e
-};
-mxHierarchicalLayout.prototype.cycleStage = function(a) {
-  (new mxMinimumCycleRemover(this)).execute(a)
-};
-mxHierarchicalLayout.prototype.layeringStage = function() {
-  this.model.initialRank();
-  this.model.fixRanks()
-};
-mxHierarchicalLayout.prototype.crossingStage = function(a) {
-  (new mxMedianHybridCrossingReduction(this)).execute(a)
-};
-mxHierarchicalLayout.prototype.placementStage = function(a, b) {
-  var c = new mxCoordinateAssignment(this, this.intraCellSpacing, this.interRankCellSpacing, this.orientation, a, this.parallelEdgeSpacing);
-  c.fineTuning = this.fineTuning;
-  c.execute(b);
-  return c.limitX + this.interHierarchySpacing
-};
-
-function mxGraphModel(a) {
-  this.currentEdit = this.createUndoableEdit();
-  null != a ? this.setRoot(a) : this.clear()
-}
-mxGraphModel.prototype = new mxEventSource;
-mxGraphModel.prototype.constructor = mxGraphModel;
-mxGraphModel.prototype.root = null;
-mxGraphModel.prototype.cells = null;
-mxGraphModel.prototype.maintainEdgeParent = !0;
-mxGraphModel.prototype.createIds = !0;
-mxGraphModel.prototype.prefix = "";
-mxGraphModel.prototype.postfix = "";
-mxGraphModel.prototype.nextId = 0;
-mxGraphModel.prototype.currentEdit = null;
-mxGraphModel.prototype.updateLevel = 0;
-mxGraphModel.prototype.endingUpdate = !1;
-mxGraphModel.prototype.clear = function() {
-  this.setRoot(this.createRoot())
-};
-mxGraphModel.prototype.isCreateIds = function() {
-  return this.createIds
-};
-mxGraphModel.prototype.setCreateIds = function(a) {
-  this.createIds = a
-};
-mxGraphModel.prototype.createRoot = function() {
-  var a = new mxCell;
-  a.insert(new mxCell);
-  return a
-};
-mxGraphModel.prototype.getCell = function(a) {
-  return null != this.cells ? this.cells[a] : null
-};
-mxGraphModel.prototype.filterCells = function(a, b) {
-  var c = null;
-  if (null != a)
-    for (var c = [], d = 0; d < a.length; d++) b(a[d]) && c.push(a[d]);
-  return c
-};
-mxGraphModel.prototype.getDescendants = function(a) {
-  return this.filterDescendants(null, a)
-};
-mxGraphModel.prototype.filterDescendants = function(a, b) {
-  var c = [];
-  b = b || this.getRoot();
-  (null == a || a(b)) && c.push(b);
-  for (var d = this.getChildCount(b), e = 0; e < d; e++) var f = this.getChildAt(b, e),
-    c = c.concat(this.filterDescendants(a, f));
-  return c
-};
-mxGraphModel.prototype.getRoot = function(a) {
-  var b = a || this.root;
-  if (null != a)
-    for (; null != a;) b = a, a = this.getParent(a);
-  return b
-};
-mxGraphModel.prototype.setRoot = function(a) {
-  this.execute(new mxRootChange(this, a));
-  return a
-};
-mxGraphModel.prototype.rootChanged = function(a) {
-  var b = this.root;
-  this.root = a;
-  this.nextId = 0;
-  this.cells = null;
-  this.cellAdded(a);
-  return b
-};
-mxGraphModel.prototype.isRoot = function(a) {
-  return null != a && this.root == a
-};
-mxGraphModel.prototype.isLayer = function(a) {
-  return this.isRoot(this.getParent(a))
-};
-mxGraphModel.prototype.isAncestor = function(a, b) {
-  for (; null != b && b != a;) b = this.getParent(b);
-  return b == a
-};
-mxGraphModel.prototype.contains = function(a) {
-  return this.isAncestor(this.root, a)
-};
-mxGraphModel.prototype.getParent = function(a) {
-  return null != a ? a.getParent() : null
-};
-mxGraphModel.prototype.add = function(a, b, c) {
-  if (b != a && null != a && null != b) {
-    null == c && (c = this.getChildCount(a));
-    var d = a != this.getParent(b);
-    this.execute(new mxChildChange(this, a, b, c));
-    this.maintainEdgeParent && d && this.updateEdgeParents(b)
-  }
-  return b
-};
-mxGraphModel.prototype.cellAdded = function(a) {
-  if (null != a) {
-    null == a.getId() && this.createIds && a.setId(this.createId(a));
-    if (null != a.getId()) {
-      var b = this.getCell(a.getId());
-      if (b != a) {
-        for (; null != b;) a.setId(this.createId(a)), b = this.getCell(a.getId());
-        null == this.cells && (this.cells = {});
-        this.cells[a.getId()] = a
-      }
-    }
-    mxUtils.isNumeric(a.getId()) && (this.nextId = Math.max(this.nextId, a.getId()));
-    for (var b = this.getChildCount(a), c = 0; c < b; c++) this.cellAdded(this.getChildAt(a, c))
-  }
-};
-mxGraphModel.prototype.createId = function(a) {
-  a = this.nextId;
-  this.nextId++;
-  return this.prefix + a + this.postfix
-};
-mxGraphModel.prototype.updateEdgeParents = function(a, b) {
-  b = b || this.getRoot(a);
-  for (var c = this.getChildCount(a), d = 0; d < c; d++) {
-    var e = this.getChildAt(a, d);
-    this.updateEdgeParents(e, b)
-  }
-  e = this.getEdgeCount(a);
-  c = [];
-  for (d = 0; d < e; d++) c.push(this.getEdgeAt(a, d));
-  for (d = 0; d < c.length; d++) e = c[d], this.isAncestor(b, e) && this.updateEdgeParent(e, b)
-};
-mxGraphModel.prototype.updateEdgeParent = function(a, b) {
-  for (var c = this.getTerminal(a, !0), d = this.getTerminal(a, !1), e = null; null != c && !this.isEdge(c) && null != c.geometry && c.geometry.relative;) c = this.getParent(c);
-  for (; null != d && !this.isEdge(d) && null != d.geometry && d.geometry.relative;) d = this.getParent(d);
-  if (this.isAncestor(b, c) && this.isAncestor(b, d) && (e = c == d ? this.getParent(c) : this.getNearestCommonAncestor(c, d), null != e && (this.getParent(e) != this.root || this.isAncestor(e, a)) &&
-      this.getParent(a) != e)) {
-    c = this.getGeometry(a);
-    if (null != c) {
-      var f = this.getOrigin(this.getParent(a)),
-        g = this.getOrigin(e),
-        d = g.x - f.x,
-        f = g.y - f.y,
-        c = c.clone();
-      c.translate(-d, -f);
-      this.setGeometry(a, c)
-    }
-    this.add(e, a, this.getChildCount(e))
-  }
-};
-mxGraphModel.prototype.getOrigin = function(a) {
-  var b = null;
-  null != a ? (b = this.getOrigin(this.getParent(a)), this.isEdge(a) || (a = this.getGeometry(a), null != a && (b.x += a.x, b.y += a.y))) : b = new mxPoint;
-  return b
-};
-mxGraphModel.prototype.getNearestCommonAncestor = function(a, b) {
-  if (null != a && null != b) {
-    var c = mxCellPath.create(b);
-    if (null != c && 0 < c.length) {
-      var d = a,
-        e = mxCellPath.create(d);
-      if (c.length < e.length) var d = b,
-        f = e,
-        e = c,
-        c = f;
-      for (; null != d;) {
-        f = this.getParent(d);
-        if (0 == c.indexOf(e + mxCellPath.PATH_SEPARATOR) && null != f) return d;
-        e = mxCellPath.getParentPath(e);
-        d = f
-      }
-    }
-  }
-  return null
-};
-mxGraphModel.prototype.remove = function(a) {
-  a == this.root ? this.setRoot(null) : null != this.getParent(a) && this.execute(new mxChildChange(this, null, a));
-  return a
-};
-mxGraphModel.prototype.cellRemoved = function(a) {
-  if (null != a && null != this.cells) {
-    for (var b = this.getChildCount(a) - 1; 0 <= b; b--) this.cellRemoved(this.getChildAt(a, b));
-    null != this.cells && null != a.getId() && delete this.cells[a.getId()]
-  }
-};
-mxGraphModel.prototype.parentForCellChanged = function(a, b, c) {
-  var d = this.getParent(a);
-  null != b ? (b != d || d.getIndex(a) != c) && b.insert(a, c) : null != d && (c = d.getIndex(a), d.remove(c));
-  !this.contains(d) && null != b ? this.cellAdded(a) : null == b && this.cellRemoved(a);
-  return d
-};
-mxGraphModel.prototype.getChildCount = function(a) {
-  return null != a ? a.getChildCount() : 0
-};
-mxGraphModel.prototype.getChildAt = function(a, b) {
-  return null != a ? a.getChildAt(b) : null
-};
-mxGraphModel.prototype.getChildren = function(a) {
-  return null != a ? a.children : null
-};
-mxGraphModel.prototype.getChildVertices = function(a) {
-  return this.getChildCells(a, !0, !1)
-};
-mxGraphModel.prototype.getChildEdges = function(a) {
-  return this.getChildCells(a, !1, !0)
-};
-mxGraphModel.prototype.getChildCells = function(a, b, c) {
-  b = null != b ? b : !1;
-  c = null != c ? c : !1;
-  for (var d = this.getChildCount(a), e = [], f = 0; f < d; f++) {
-    var g = this.getChildAt(a, f);
-    (!c && !b || c && this.isEdge(g) || b && this.isVertex(g)) && e.push(g)
-  }
-  return e
-};
-mxGraphModel.prototype.getTerminal = function(a, b) {
-  return null != a ? a.getTerminal(b) : null
-};
-mxGraphModel.prototype.setTerminal = function(a, b, c) {
-  var d = b != this.getTerminal(a, c);
-  this.execute(new mxTerminalChange(this, a, b, c));
-  this.maintainEdgeParent && d && this.updateEdgeParent(a, this.getRoot());
-  return b
-};
-mxGraphModel.prototype.setTerminals = function(a, b, c) {
-  this.beginUpdate();
-  try {
-    this.setTerminal(a, b, !0), this.setTerminal(a, c, !1)
-  } finally {
-    this.endUpdate()
-  }
-};
-mxGraphModel.prototype.terminalForCellChanged = function(a, b, c) {
-  var d = this.getTerminal(a, c);
-  null != b ? b.insertEdge(a, c) : null != d && d.removeEdge(a, c);
-  return d
-};
-mxGraphModel.prototype.getEdgeCount = function(a) {
-  return null != a ? a.getEdgeCount() : 0
-};
-mxGraphModel.prototype.getEdgeAt = function(a, b) {
-  return null != a ? a.getEdgeAt(b) : null
-};
-mxGraphModel.prototype.getDirectedEdgeCount = function(a, b, c) {
-  for (var d = 0, e = this.getEdgeCount(a), f = 0; f < e; f++) {
-    var g = this.getEdgeAt(a, f);
-    g != c && this.getTerminal(g, b) == a && d++
-  }
-  return d
-};
-mxGraphModel.prototype.getConnections = function(a) {
-  return this.getEdges(a, !0, !0, !1)
-};
-mxGraphModel.prototype.getIncomingEdges = function(a) {
-  return this.getEdges(a, !0, !1, !1)
-};
-mxGraphModel.prototype.getOutgoingEdges = function(a) {
-  return this.getEdges(a, !1, !0, !1)
-};
-mxGraphModel.prototype.getEdges = function(a, b, c, d) {
-  b = null != b ? b : !0;
-  c = null != c ? c : !0;
-  d = null != d ? d : !0;
-  for (var e = this.getEdgeCount(a), f = [], g = 0; g < e; g++) {
-    var h = this.getEdgeAt(a, g),
-      k = this.getTerminal(h, !0),
-      l = this.getTerminal(h, !1);
-    (d && k == l || k != l && (b && l == a || c && k == a)) && f.push(h)
-  }
-  return f
-};
-mxGraphModel.prototype.getEdgesBetween = function(a, b, c) {
-  c = null != c ? c : !1;
-  var d = this.getEdgeCount(a),
-    e = this.getEdgeCount(b),
-    f = a,
-    g = d;
-  e < d && (g = e, f = b);
-  d = [];
-  for (e = 0; e < g; e++) {
-    var h = this.getEdgeAt(f, e),
-      k = this.getTerminal(h, !0),
-      l = this.getTerminal(h, !1),
-      m = l == a && k == b;
-    (k == a && l == b || !c && m) && d.push(h)
-  }
-  return d
-};
-mxGraphModel.prototype.getOpposites = function(a, b, c, d) {
-  c = null != c ? c : !0;
-  d = null != d ? d : !0;
-  var e = [];
-  if (null != a)
-    for (var f = 0; f < a.length; f++) {
-      var g = this.getTerminal(a[f], !0),
-        h = this.getTerminal(a[f], !1);
-      g == b && null != h && h != b && d ? e.push(h) : h == b && (null != g && g != b && c) && e.push(g)
-    }
-  return e
-};
-mxGraphModel.prototype.getTopmostCells = function(a) {
-  for (var b = [], c = 0; c < a.length; c++) {
-    for (var d = a[c], e = !0, f = this.getParent(d); null != f;) {
-      if (0 <= mxUtils.indexOf(a, f)) {
-        e = !1;
-        break
-      }
-      f = this.getParent(f)
-    }
-    e && b.push(d)
-  }
-  return b
-};
-mxGraphModel.prototype.isVertex = function(a) {
-  return null != a ? a.isVertex() : !1
-};
-mxGraphModel.prototype.isEdge = function(a) {
-  return null != a ? a.isEdge() : !1
-};
-mxGraphModel.prototype.isConnectable = function(a) {
-  return null != a ? a.isConnectable() : !1
-};
-mxGraphModel.prototype.getValue = function(a) {
-  return null != a ? a.getValue() : null
-};
-mxGraphModel.prototype.setValue = function(a, b) {
-  this.execute(new mxValueChange(this, a, b));
-  return b
-};
-mxGraphModel.prototype.valueForCellChanged = function(a, b) {
-  return a.valueChanged(b)
-};
-mxGraphModel.prototype.getGeometry = function(a, b) {
-  return null != a ? a.getGeometry() : null
-};
-mxGraphModel.prototype.setGeometry = function(a, b) {
-  b != this.getGeometry(a) && this.execute(new mxGeometryChange(this, a, b));
-  return b
-};
-mxGraphModel.prototype.geometryForCellChanged = function(a, b) {
-  var c = this.getGeometry(a);
-  a.setGeometry(b);
-  return c
-};
-mxGraphModel.prototype.getStyle = function(a) {
-  return null != a ? a.getStyle() : null
-};
-mxGraphModel.prototype.setStyle = function(a, b) {
-  b != this.getStyle(a) && this.execute(new mxStyleChange(this, a, b));
-  return b
-};
-mxGraphModel.prototype.styleForCellChanged = function(a, b) {
-  var c = this.getStyle(a);
-  a.setStyle(b);
-  return c
-};
-mxGraphModel.prototype.isCollapsed = function(a) {
-  return null != a ? a.isCollapsed() : !1
-};
-mxGraphModel.prototype.setCollapsed = function(a, b) {
-  b != this.isCollapsed(a) && this.execute(new mxCollapseChange(this, a, b));
-  return b
-};
-mxGraphModel.prototype.collapsedStateForCellChanged = function(a, b) {
-  var c = this.isCollapsed(a);
-  a.setCollapsed(b);
-  return c
-};
-mxGraphModel.prototype.isVisible = function(a) {
-  return null != a ? a.isVisible() : !1
-};
-mxGraphModel.prototype.setVisible = function(a, b) {
-  b != this.isVisible(a) && this.execute(new mxVisibleChange(this, a, b));
-  return b
-};
-mxGraphModel.prototype.visibleStateForCellChanged = function(a, b) {
-  var c = this.isVisible(a);
-  a.setVisible(b);
-  return c
-};
-mxGraphModel.prototype.execute = function(a) {
-  a.execute();
-  this.beginUpdate();
-  this.currentEdit.add(a);
-  this.fireEvent(new mxEventObject(mxEvent.EXECUTE, "change", a));
-  this.fireEvent(new mxEventObject(mxEvent.EXECUTED, "change", a));
-  this.endUpdate()
-};
-mxGraphModel.prototype.beginUpdate = function() {
-  this.updateLevel++;
-  this.fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE));
-  1 == this.updateLevel && this.fireEvent(new mxEventObject(mxEvent.START_EDIT))
-};
-mxGraphModel.prototype.endUpdate = function() {
-  this.updateLevel--;
-  0 == this.updateLevel && this.fireEvent(new mxEventObject(mxEvent.END_EDIT));
-  if (!this.endingUpdate) {
-    this.endingUpdate = 0 == this.updateLevel;
-    this.fireEvent(new mxEventObject(mxEvent.END_UPDATE, "edit", this.currentEdit));
-    try {
-      if (this.endingUpdate && !this.currentEdit.isEmpty()) {
-        this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO, "edit", this.currentEdit));
-        var a = this.currentEdit;
-        this.currentEdit = this.createUndoableEdit();
-        a.notify();
-        this.fireEvent(new mxEventObject(mxEvent.UNDO,
-          "edit", a))
-      }
-    } finally {
-      this.endingUpdate = !1
-    }
-  }
-};
-mxGraphModel.prototype.createUndoableEdit = function() {
-  var a = new mxUndoableEdit(this, !0);
-  a.notify = function() {
-    a.source.fireEvent(new mxEventObject(mxEvent.CHANGE, "edit", a, "changes", a.changes));
-    a.source.fireEvent(new mxEventObject(mxEvent.NOTIFY, "edit", a, "changes", a.changes))
-  };
-  return a
-};
-mxGraphModel.prototype.mergeChildren = function(a, b, c) {
-  c = null != c ? c : !0;
-  this.beginUpdate();
-  try {
-    var d = {};
-    this.mergeChildrenImpl(a, b, c, d);
-    for (var e in d) {
-      var f = d[e],
-        g = this.getTerminal(f, !0);
-      null != g && (g = d[mxCellPath.create(g)], this.setTerminal(f, g, !0));
-      g = this.getTerminal(f, !1);
-      null != g && (g = d[mxCellPath.create(g)], this.setTerminal(f, g, !1))
-    }
-  } finally {
-    this.endUpdate()
-  }
-};
-mxGraphModel.prototype.mergeChildrenImpl = function(a, b, c, d) {
-  this.beginUpdate();
-  try {
-    for (var e = a.getChildCount(), f = 0; f < e; f++) {
-      var g = a.getChildAt(f);
-      if ("function" == typeof g.getId) {
-        var h = g.getId(),
-          k = null != h && (!this.isEdge(g) || !c) ? this.getCell(h) : null;
-        if (null == k) {
-          var l = g.clone();
-          l.setId(h);
-          l.setTerminal(g.getTerminal(!0), !0);
-          l.setTerminal(g.getTerminal(!1), !1);
-          k = b.insert(l);
-          this.cellAdded(k)
-        }
-        d[mxCellPath.create(g)] = k;
-        this.mergeChildrenImpl(g, k, c, d)
-      }
-    }
-  } finally {
-    this.endUpdate()
-  }
-};
-mxGraphModel.prototype.getParents = function(a) {
-  var b = [];
-  if (null != a)
-    for (var c = {}, d = 0; d < a.length; d++) {
-      var e = this.getParent(a[d]);
-      if (null != e) {
-        var f = mxCellPath.create(e);
-        null == c[f] && (c[f] = e, b.push(e))
-      }
-    }
-  return b
-};
-mxGraphModel.prototype.cloneCell = function(a) {
-  return null != a ? this.cloneCells([a], !0)[0] : null
-};
-mxGraphModel.prototype.cloneCells = function(a, b) {
-  for (var c = {}, d = [], e = 0; e < a.length; e++) null != a[e] ? d.push(this.cloneCellImpl(a[e], c, b)) : d.push(null);
-  for (e = 0; e < d.length; e++) null != d[e] && this.restoreClone(d[e], a[e], c);
-  return d
-};
-mxGraphModel.prototype.cloneCellImpl = function(a, b, c) {
-  var d = this.cellCloned(a);
-  b[mxObjectIdentity.get(a)] = d;
-  if (c) {
-    c = this.getChildCount(a);
-    for (var e = 0; e < c; e++) {
-      var f = this.cloneCellImpl(this.getChildAt(a, e), b, !0);
-      d.insert(f)
-    }
-  }
-  return d
-};
-mxGraphModel.prototype.cellCloned = function(a) {
-  return a.clone()
-};
-mxGraphModel.prototype.restoreClone = function(a, b, c) {
-  var d = this.getTerminal(b, !0);
-  null != d && (d = c[mxObjectIdentity.get(d)], null != d && d.insertEdge(a, !0));
-  d = this.getTerminal(b, !1);
-  null != d && (d = c[mxObjectIdentity.get(d)], null != d && d.insertEdge(a, !1));
-  for (var d = this.getChildCount(a), e = 0; e < d; e++) this.restoreClone(this.getChildAt(a, e), this.getChildAt(b, e), c)
-};
-
-function mxRootChange(a, b) {
-  this.model = a;
-  this.previous = this.root = b
-}
-mxRootChange.prototype.execute = function() {
-  this.root = this.previous;
-  this.previous = this.model.rootChanged(this.previous)
-};
-
-function mxChildChange(a, b, c, d) {
-  this.model = a;
-  this.previous = this.parent = b;
-  this.child = c;
-  this.previousIndex = this.index = d
-}
-mxChildChange.prototype.execute = function() {
-  var a = this.model.getParent(this.child),
-    b = null != a ? a.getIndex(this.child) : 0;
-  null == this.previous && this.connect(this.child, !1);
-  a = this.model.parentForCellChanged(this.child, this.previous, this.previousIndex);
-  null != this.previous && this.connect(this.child, !0);
-  this.parent = this.previous;
-  this.previous = a;
-  this.index = this.previousIndex;
-  this.previousIndex = b
-};
-mxChildChange.prototype.connect = function(a, b) {
-  b = null != b ? b : !0;
-  var c = a.getTerminal(!0),
-    d = a.getTerminal(!1);
-  null != c && (b ? this.model.terminalForCellChanged(a, c, !0) : this.model.terminalForCellChanged(a, null, !0));
-  null != d && (b ? this.model.terminalForCellChanged(a, d, !1) : this.model.terminalForCellChanged(a, null, !1));
-  a.setTerminal(c, !0);
-  a.setTerminal(d, !1);
-  c = this.model.getChildCount(a);
-  for (d = 0; d < c; d++) this.connect(this.model.getChildAt(a, d), b)
-};
-
-function mxTerminalChange(a, b, c, d) {
-  this.model = a;
-  this.cell = b;
-  this.previous = this.terminal = c;
-  this.source = d
-}
-mxTerminalChange.prototype.execute = function() {
-  this.terminal = this.previous;
-  this.previous = this.model.terminalForCellChanged(this.cell, this.previous, this.source)
-};
-
-function mxValueChange(a, b, c) {
-  this.model = a;
-  this.cell = b;
-  this.previous = this.value = c
-}
-mxValueChange.prototype.execute = function() {
-  this.value = this.previous;
-  this.previous = this.model.valueForCellChanged(this.cell, this.previous)
-};
-
-function mxStyleChange(a, b, c) {
-  this.model = a;
-  this.cell = b;
-  this.previous = this.style = c
-}
-mxStyleChange.prototype.execute = function() {
-  this.style = this.previous;
-  this.previous = this.model.styleForCellChanged(this.cell, this.previous)
-};
-
-function mxGeometryChange(a, b, c) {
-  this.model = a;
-  this.cell = b;
-  this.previous = this.geometry = c
-}
-mxGeometryChange.prototype.execute = function() {
-  this.geometry = this.previous;
-  this.previous = this.model.geometryForCellChanged(this.cell, this.previous)
-};
-
-function mxCollapseChange(a, b, c) {
-  this.model = a;
-  this.cell = b;
-  this.previous = this.collapsed = c
-}
-mxCollapseChange.prototype.execute = function() {
-  this.collapsed = this.previous;
-  this.previous = this.model.collapsedStateForCellChanged(this.cell, this.previous)
-};
-
-function mxVisibleChange(a, b, c) {
-  this.model = a;
-  this.cell = b;
-  this.previous = this.visible = c
-}
-mxVisibleChange.prototype.execute = function() {
-  this.visible = this.previous;
-  this.previous = this.model.visibleStateForCellChanged(this.cell, this.previous)
-};
-
-function mxCellAttributeChange(a, b, c) {
-  this.cell = a;
-  this.attribute = b;
-  this.previous = this.value = c
-}
-mxCellAttributeChange.prototype.execute = function() {
-  var a = this.cell.getAttribute(this.attribute);
-  null == this.previous ? this.cell.value.removeAttribute(this.attribute) : this.cell.setAttribute(this.attribute, this.previous);
-  this.previous = a
-};
-
-function mxCell(a, b, c) {
-  this.value = a;
-  this.setGeometry(b);
-  this.setStyle(c);
-  if (null != this.onInit) this.onInit()
-}
-mxCell.prototype.id = null;
-mxCell.prototype.value = null;
-mxCell.prototype.geometry = null;
-mxCell.prototype.style = null;
-mxCell.prototype.vertex = !1;
-mxCell.prototype.edge = !1;
-mxCell.prototype.connectable = !0;
-mxCell.prototype.visible = !0;
-mxCell.prototype.collapsed = !1;
-mxCell.prototype.parent = null;
-mxCell.prototype.source = null;
-mxCell.prototype.target = null;
-mxCell.prototype.children = null;
-mxCell.prototype.edges = null;
-mxCell.prototype.mxTransient = "id value parent source target children edges".split(" ");
-mxCell.prototype.getId = function() {
-  return this.id
-};
-mxCell.prototype.setId = function(a) {
-  this.id = a
-};
-mxCell.prototype.getValue = function() {
-  return this.value
-};
-mxCell.prototype.setValue = function(a) {
-  this.value = a
-};
-mxCell.prototype.valueChanged = function(a) {
-  var b = this.getValue();
-  this.setValue(a);
-  return b
-};
-mxCell.prototype.getGeometry = function() {
-  return this.geometry
-};
-mxCell.prototype.setGeometry = function(a) {
-  this.geometry = a
-};
-mxCell.prototype.getStyle = function() {
-  return this.style
-};
-mxCell.prototype.setStyle = function(a) {
-  this.style = a
-};
-mxCell.prototype.isVertex = function() {
-  return this.vertex
-};
-mxCell.prototype.setVertex = function(a) {
-  this.vertex = a
-};
-mxCell.prototype.isEdge = function() {
-  return this.edge
-};
-mxCell.prototype.setEdge = function(a) {
-  this.edge = a
-};
-mxCell.prototype.isConnectable = function() {
-  return this.connectable
-};
-mxCell.prototype.setConnectable = function(a) {
-  this.connectable = a
-};
-mxCell.prototype.isVisible = function() {
-  return this.visible
-};
-mxCell.prototype.setVisible = function(a) {
-  this.visible = a
-};
-mxCell.prototype.isCollapsed = function() {
-  return this.collapsed
-};
-mxCell.prototype.setCollapsed = function(a) {
-  this.collapsed = a
-};
-mxCell.prototype.getParent = function() {
-  return this.parent
-};
-mxCell.prototype.setParent = function(a) {
-  this.parent = a
-};
-mxCell.prototype.getTerminal = function(a) {
-  return a ? this.source : this.target
-};
-mxCell.prototype.setTerminal = function(a, b) {
-  b ? this.source = a : this.target = a;
-  return a
-};
-mxCell.prototype.getChildCount = function() {
-  return null == this.children ? 0 : this.children.length
-};
-mxCell.prototype.getIndex = function(a) {
-  return mxUtils.indexOf(this.children, a)
-};
-mxCell.prototype.getChildAt = function(a) {
-  return null == this.children ? null : this.children[a]
-};
-mxCell.prototype.insert = function(a, b) {
-  null != a && (null == b && (b = this.getChildCount(), a.getParent() == this && b--), a.removeFromParent(), a.setParent(this), null == this.children ? (this.children = [], this.children.push(a)) :
-    this.children.splice(b, 0, a));
-  return a
-};
-mxCell.prototype.remove = function(a) {
-  var b = null;
-  null != this.children && 0 <= a && (b = this.getChildAt(a), null != b && (this.children.splice(a, 1), b.setParent(null)));
-  return b
-};
-mxCell.prototype.removeFromParent = function() {
-  if (null != this.parent) {
-    var a = this.parent.getIndex(this);
-    this.parent.remove(a)
-  }
-};
-mxCell.prototype.getEdgeCount = function() {
-  return null == this.edges ? 0 : this.edges.length
-};
-mxCell.prototype.getEdgeIndex = function(a) {
-  return mxUtils.indexOf(this.edges, a)
-};
-mxCell.prototype.getEdgeAt = function(a) {
-  return null == this.edges ? null : this.edges[a]
-};
-mxCell.prototype.insertEdge = function(a, b) {
-  if (null != a && (a.removeFromTerminal(b), a.setTerminal(this, b), null == this.edges || a.getTerminal(!b) != this || 0 > mxUtils.indexOf(this.edges, a))) null == this.edges && (this.edges = []),
-    this.edges.push(a);
-  return a
-};
-mxCell.prototype.removeEdge = function(a, b) {
-  if (null != a) {
-    if (a.getTerminal(!b) != this && null != this.edges) {
-      var c = this.getEdgeIndex(a);
-      0 <= c && this.edges.splice(c, 1)
-    }
-    a.setTerminal(null, b)
-  }
-  return a
-};
-mxCell.prototype.removeFromTerminal = function(a) {
-  var b = this.getTerminal(a);
-  null != b && b.removeEdge(this, a)
-};
-mxCell.prototype.getAttribute = function(a, b) {
-  var c = this.getValue();
-  return (null != c && c.nodeType == mxConstants.NODETYPE_ELEMENT ? c.getAttribute(a) : null) || b
-};
-mxCell.prototype.setAttribute = function(a, b) {
-  var c = this.getValue();
-  null != c && c.nodeType == mxConstants.NODETYPE_ELEMENT && c.setAttribute(a, b)
-};
-mxCell.prototype.clone = function() {
-  var a = mxUtils.clone(this, this.mxTransient);
-  a.setValue(this.cloneValue());
-  return a
-};
-mxCell.prototype.cloneValue = function() {
-  var a = this.getValue();
-  null != a && ("function" == typeof a.clone ? a = a.clone() : isNaN(a.nodeType) || (a = a.cloneNode(!0)));
-  return a
-};
-
-function mxGeometry(a, b, c, d) {
-  mxRectangle.call(this, a, b, c, d)
-}
-mxGeometry.prototype = new mxRectangle;
-mxGeometry.prototype.constructor = mxGeometry;
-mxGeometry.prototype.TRANSLATE_CONTROL_POINTS = !0;
-mxGeometry.prototype.alternateBounds = null;
-mxGeometry.prototype.sourcePoint = null;
-mxGeometry.prototype.targetPoint = null;
-mxGeometry.prototype.points = null;
-mxGeometry.prototype.offset = null;
-mxGeometry.prototype.relative = !1;
-mxGeometry.prototype.swap = function() {
-  if (null != this.alternateBounds) {
-    var a = new mxRectangle(this.x, this.y, this.width, this.height);
-    this.x = this.alternateBounds.x;
-    this.y = this.alternateBounds.y;
-    this.width = this.alternateBounds.width;
-    this.height = this.alternateBounds.height;
-    this.alternateBounds = a
-  }
-};
-mxGeometry.prototype.getTerminalPoint = function(a) {
-  return a ? this.sourcePoint : this.targetPoint
-};
-mxGeometry.prototype.setTerminalPoint = function(a, b) {
-  b ? this.sourcePoint = a : this.targetPoint = a;
-  return a
-};
-mxGeometry.prototype.translate = function(a, b) {
-  this.clone();
-  this.relative || (this.x += a, this.y += b);
-  null != this.sourcePoint && (this.sourcePoint.x += a, this.sourcePoint.y += b);
-  null != this.targetPoint && (this.targetPoint.x += a, this.targetPoint.y += b);
-  if (this.TRANSLATE_CONTROL_POINTS && null != this.points)
-    for (var c = this.points.length, d = 0; d < c; d++) {
-      var e = this.points[d];
-      null != e && (e.x += a, e.y += b)
-    }
-};
-var mxCellPath = {
-    PATH_SEPARATOR: ".",
-    create: function(a) {
-      var b = "";
-      if (null != a)
-        for (var c = a.getParent(); null != c;) b = c.getIndex(a) + mxCellPath.PATH_SEPARATOR + b, a = c, c = a.getParent();
-      a = b.length;
-      1 < a && (b = b.substring(0, a - 1));
-      return b
-    },
-    getParentPath: function(a) {
-      if (null != a) {
-        var b = a.lastIndexOf(mxCellPath.PATH_SEPARATOR);
-        if (0 <= b) return a.substring(0, b);
-        if (0 < a.length) return ""
-      }
-      return null
-    },
-    resolve: function(a, b) {
-      var c = a;
-      if (null != b)
-        for (var d = b.split(mxCellPath.PATH_SEPARATOR), e = 0; e < d.length; e++) c = c.getChildAt(parseInt(d[e]));
-      return c
-    },
-    compare: function(a, b) {
-      for (var c = Math.min(a.length, b.length), d = 0, e = 0; e < c; e++)
-        if (a[e] != b[e]) {
-          0 == a[e].length || 0 == b[e].length ? d = a[e] == b[e] ? 0 : a[e] > b[e] ? 1 : -1 : (c = parseInt(a[e]), e = parseInt(b[e]), d = c == e ? 0 : c > e ? 1 : -1);
-          break
-        }
-      0 == d && (c = a.length, e = b.length, c != e && (d = c > e ? 1 : -1));
-      return d
-    }
-  },
-  mxPerimeter = {
-    RectanglePerimeter: function(a, b, c, d) {
-      b = a.getCenterX();
-      var e = a.getCenterY(),
-        f = Math.atan2(c.y - e, c.x - b),
-        g = new mxPoint(0, 0),
-        h = Math.PI,
-        k = Math.PI / 2 - f,
-        l = Math.atan2(a.height, a.width);
-      f < -h + l || f > h - l ? (g.x = a.x, g.y = e - a.width *
-        Math.tan(f) / 2) : f < -l ? (g.y = a.y, g.x = b - a.height * Math.tan(k) / 2) : f < l ? (g.x = a.x + a.width, g.y = e + a.width * Math.tan(f) / 2) : (g.y = a.y + a.height, g.x = b + a.height *
-        Math.tan(k) / 2);
-      d && (c.x >= a.x && c.x <= a.x + a.width ? g.x = c.x : c.y >= a.y && c.y <= a.y + a.height && (g.y = c.y), c.x < a.x ? g.x = a.x : c.x > a.x + a.width && (g.x = a.x + a.width), c.y < a.y ? g.y =
-        a.y : c.y > a.y + a.height && (g.y = a.y + a.height));
-      return g
-    },
-    EllipsePerimeter: function(a, b, c, d) {
-      var e = a.x,
-        f = a.y,
-        g = a.width / 2,
-        h = a.height / 2,
-        k = e + g,
-        l = f + h;
-      b = c.x;
-      c = c.y;
-      var m = parseInt(b - k),
-        n = parseInt(c - l);
-      if (0 == m && 0 != n) return new mxPoint(k,
-        l + h * n / Math.abs(n));
-      if (0 == m && 0 == n) return new mxPoint(b, c);
-      if (d) {
-        if (c >= f && c <= f + a.height) return a = c - l, a = Math.sqrt(g * g * (1 - a * a / (h * h))) || 0, b <= e && (a = -a), new mxPoint(k + a, c);
-        if (b >= e && b <= e + a.width) return a = b - k, a = Math.sqrt(h * h * (1 - a * a / (g * g))) || 0, c <= f && (a = -a), new mxPoint(b, l + a)
-      }
-      e = n / m;
-      l -= e * k;
-      f = g * g * e * e + h * h;
-      a = -2 * k * f;
-      h = Math.sqrt(a * a - 4 * f * (g * g * e * e * k * k + h * h * k * k - g * g * h * h));
-      g = (-a + h) / (2 * f);
-      h = (-a - h) / (2 * f);
-      k = e * g + l;
-      l = e * h + l;
-      e = Math.sqrt(Math.pow(g - b, 2) + Math.pow(k - c, 2));
-      b = Math.sqrt(Math.pow(h - b, 2) + Math.pow(l - c, 2));
-      f = c = 0;
-      e < b ? (c =
-        g, f = k) : (c = h, f = l);
-      return new mxPoint(c, f)
-    },
-    RhombusPerimeter: function(a, b, c, d) {
-      b = a.x;
-      var e = a.y,
-        f = a.width;
-      a = a.height;
-      var g = b + f / 2,
-        h = e + a / 2,
-        k = c.x;
-      c = c.y;
-      if (g == k) return h > c ? new mxPoint(g, e) : new mxPoint(g, e + a);
-      if (h == c) return g > k ? new mxPoint(b, h) : new mxPoint(b + f, h);
-      var l = g,
-        m = h;
-      d && (k >= b && k <= b + f ? l = k : c >= e && c <= e + a && (m = c));
-      return k < g ? c < h ? mxUtils.intersection(k, c, l, m, g, e, b, h) : mxUtils.intersection(k, c, l, m, g, e + a, b, h) : c < h ? mxUtils.intersection(k, c, l, m, g, e, b + f, h) : mxUtils.intersection(
-        k, c, l, m, g, e + a, b + f, h)
-    },
-    TrianglePerimeter: function(a,
-      b, c, d) {
-      b = null != b ? b.style[mxConstants.STYLE_DIRECTION] : null;
-      var e = b == mxConstants.DIRECTION_NORTH || b == mxConstants.DIRECTION_SOUTH,
-        f = a.x,
-        g = a.y,
-        h = a.width;
-      a = a.height;
-      var k = f + h / 2,
-        l = g + a / 2,
-        m = new mxPoint(f, g),
-        n = new mxPoint(f + h, l),
-        p = new mxPoint(f, g + a);
-      b == mxConstants.DIRECTION_NORTH ? (m = p, n = new mxPoint(k, g), p = new mxPoint(f + h, g + a)) : b == mxConstants.DIRECTION_SOUTH ? (n = new mxPoint(k, g + a), p = new mxPoint(f + h, g)) :
-        b == mxConstants.DIRECTION_WEST && (m = new mxPoint(f + h, g), n = new mxPoint(f, l), p = new mxPoint(f + h, g + a));
-      var q = c.x -
-        k,
-        s = c.y - l,
-        q = e ? Math.atan2(q, s) : Math.atan2(s, q),
-        r = e ? Math.atan2(h, a) : Math.atan2(a, h),
-        s = !1,
-        s = b == mxConstants.DIRECTION_NORTH || b == mxConstants.DIRECTION_WEST ? q > -r && q < r : q < -Math.PI + r || q > Math.PI - r,
-        r = null;
-      s ? r = d && (e && c.x >= m.x && c.x <= p.x || !e && c.y >= m.y && c.y <= p.y) ? e ? new mxPoint(c.x, m.y) : new mxPoint(m.x, c.y) : b == mxConstants.DIRECTION_NORTH ? new mxPoint(f + h / 2 +
-        a * Math.tan(q) / 2, g + a) : b == mxConstants.DIRECTION_SOUTH ? new mxPoint(f + h / 2 - a * Math.tan(q) / 2, g) : b == mxConstants.DIRECTION_WEST ? new mxPoint(f + h, g + a / 2 + h *
-        Math.tan(q) / 2) : new mxPoint(f,
-        g + a / 2 - h * Math.tan(q) / 2) : (d && (d = new mxPoint(k, l), c.y >= g && c.y <= g + a ? (d.x = e ? k : b == mxConstants.DIRECTION_WEST ? f + h : f, d.y = c.y) : c.x >= f && c.x <= f +
-        h && (d.x = c.x, d.y = !e ? l : b == mxConstants.DIRECTION_NORTH ? g + a : g), k = d.x, l = d.y), r = e && c.x <= f + h / 2 || !e && c.y <= g + a / 2 ? mxUtils.intersection(c.x, c.y, k,
-        l, m.x, m.y, n.x, n.y) : mxUtils.intersection(c.x, c.y, k, l, n.x, n.y, p.x, p.y));
-      null == r && (r = new mxPoint(k, l));
-      return r
-    }
-  };
-
-function mxPrintPreview(a, b, c, d, e, f, g, h, k) {
-  this.graph = a;
-  this.scale = null != b ? b : 1 / a.pageScale;
-  this.border = null != d ? d : 0;
-  this.pageFormat = null != c ? c : a.pageFormat;
-  this.title = null != h ? h : "Printer-friendly version";
-  this.x0 = null != e ? e : 0;
-  this.y0 = null != f ? f : 0;
-  this.borderColor = g;
-  this.pageSelector = null != k ? k : !0
-}
-mxPrintPreview.prototype.graph = null;
-mxPrintPreview.prototype.pageFormat = null;
-mxPrintPreview.prototype.scale = null;
-mxPrintPreview.prototype.border = 0;
-mxPrintPreview.prototype.x0 = 0;
-mxPrintPreview.prototype.y0 = 0;
-mxPrintPreview.prototype.autoOrigin = !0;
-mxPrintPreview.prototype.printOverlays = !1;
-mxPrintPreview.prototype.borderColor = null;
-mxPrintPreview.prototype.title = null;
-mxPrintPreview.prototype.pageSelector = null;
-mxPrintPreview.prototype.wnd = null;
-mxPrintPreview.prototype.pageCount = 0;
-mxPrintPreview.prototype.getWindow = function() {
-  return this.wnd
-};
-mxPrintPreview.prototype.getDoctype = function() {
-  var a = "";
-  8 == document.documentMode && (a = '\x3cmeta http-equiv\x3d"X-UA-Compatible" content\x3d"IE\x3d8"\x3e');
-  return a
-};
-mxPrintPreview.prototype.open = function(a) {
-  var b = this.graph.cellRenderer.initializeOverlay,
-    c = null;
-  try {
-    this.printOverlays && (this.graph.cellRenderer.initializeOverlay = function(a, b) {
-      b.init(a.view.getDrawPane())
-    });
-    if (null == this.wnd) {
-      this.wnd = window.open();
-      var d = this.wnd.document,
-        e = this.getDoctype();
-      null != e && 0 < e.length && d.writeln(e);
-      d.writeln("\x3chtml\x3e");
-      d.writeln("\x3chead\x3e");
-      this.writeHead(d, a);
-      d.writeln("\x3c/head\x3e");
-      d.writeln('\x3cbody class\x3d"mxPage"\x3e');
-      mxClient.link("stylesheet", mxClient.basePath +
-        "/css/common.css", d);
-      mxClient.IS_VML && (d.namespaces.add("v", "urn:schemas-microsoft-com:vml"), d.namespaces.add("o", "urn:schemas-microsoft-com:office:office"), d.createStyleSheet().cssText =
-        "v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}", mxClient.link("stylesheet", mxClient.basePath + "/css/explorer.css", d));
-      var f = this.graph.getGraphBounds().clone(),
-        g = this.graph.getView().getScale(),
-        h = g / this.scale,
-        k = this.graph.getView().getTranslate();
-      this.autoOrigin || (this.x0 = -k.x * this.scale, this.y0 = -k.y * this.scale, f.width += f.x, f.height += f.y, f.x = 0, this.border = f.y = 0);
-      f.width /= h;
-      f.height /= h;
-      var l = this.pageFormat.width - 2 * this.border,
-        m = this.pageFormat.height - 2 * this.border,
-        n = Math.max(1, Math.ceil((f.width + this.x0) / l)),
-        p = Math.max(1, Math.ceil((f.height + this.y0) / m));
-      this.pageCount = n * p;
-      var q = mxUtils.bind(this, function() {
-        if (this.pageSelector && (1 < p || 1 < n)) {
-          var a = this.createPageSelector(p, n);
-          d.body.appendChild(a);
-          if (mxClient.IS_IE) {
-            a.style.position = "absolute";
-            var b = function() {
-              a.style.top = d.body.scrollTop +
-                10 + "px"
-            };
-            mxEvent.addListener(this.wnd, "scroll", function(a) {
-              b()
-            });
-            mxEvent.addListener(this.wnd, "resize", function(a) {
-              b()
-            })
-          }
-        }
-      });
-      a = function(a, b) {
-        null != this.borderColor && (a.style.borderColor = this.borderColor, a.style.borderStyle = "solid", a.style.borderWidth = "1px");
-        a.style.background = "white";
-        b && (a.style.pageBreakAfter = "always");
-        mxClient.IS_IE ? (d.writeln(a.outerHTML), a.parentNode.removeChild(a)) : (a.parentNode.removeChild(a), d.body.appendChild(a));
-        if (b) {
-          var c = d.createElement("hr");
-          c.className = "mxPageBreak";
-          d.body.appendChild(c)
-        }
-      };
-      var s = this.getCoverPages(this.pageFormat.width, this.pageFormat.height);
-      if (null != s)
-        for (var r = 0; r < s.length; r++) a(s[r], !0);
-      for (var t = this.getAppendices(this.pageFormat.width, this.pageFormat.height), r = 0; r < p; r++)
-        for (var v = r * m / this.scale - this.y0 / this.scale + (f.y - k.y * g) / g, s = 0; s < n; s++) {
-          if (null == this.wnd) return null;
-          var w = s * l / this.scale - this.x0 / this.scale + (f.x - k.x * g) / g,
-            u = r * n + s + 1,
-            c = this.renderPage(this.pageFormat.width, this.pageFormat.height, mxUtils.bind(this, function(a) {
-              this.addGraphFragment(-w, -v, this.scale, u, a)
-            }));
-          c.setAttribute("id", "mxPage-" + u);
-          a(c, null != t || r < p - 1 || s < n - 1)
-        }
-      if (null != t)
-        for (r = 0; r < t.length; r++) a(t[r], r < t.length);
-      d.writeln("\x3c/body\x3e");
-      d.writeln("\x3c/html\x3e");
-      d.close();
-      q();
-      mxEvent.release(d.body)
-    }
-    this.wnd.focus()
-  } catch (y) {
-    null != c && null != c.parentNode && c.parentNode.removeChild(c)
-  } finally {
-    this.graph.cellRenderer.initializeOverlay = b
-  }
-  return this.wnd
-};
-mxPrintPreview.prototype.writeHead = function(a, b) {
-  null != this.title && a.writeln("\x3ctitle\x3e" + this.title + "\x3c/title\x3e");
-  a.writeln('\x3cstyle type\x3d"text/css"\x3e');
-  a.writeln("@media print {");
-  a.writeln("  table.mxPageSelector { display: none; }");
-  a.writeln("  hr.mxPageBreak { display: none; }");
-  a.writeln("}");
-  a.writeln("@media screen {");
-  a.writeln("  table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }");
-  a.writeln("  table.mxPageSelector td { border: solid 1px gray; padding:4px; }");
-  a.writeln("  body.mxPage { background: gray; }");
-  a.writeln("}");
-  null != b && a.writeln(b);
-  a.writeln("\x3c/style\x3e")
-};
-mxPrintPreview.prototype.createPageSelector = function(a, b) {
-  var c = this.wnd.document,
-    d = c.createElement("table");
-  d.className = "mxPageSelector";
-  d.setAttribute("border", "0");
-  for (var e = c.createElement("tbody"), f = 0; f < a; f++) {
-    for (var g = c.createElement("tr"), h = 0; h < b; h++) {
-      var k = f * b + h + 1,
-        l = c.createElement("td");
-      if (!mxClient.IS_NS || mxClient.IS_SF || mxClient.IS_GC) {
-        var m = c.createElement("a");
-        m.setAttribute("href", "#mxPage-" + k);
-        mxUtils.write(m, k, c);
-        l.appendChild(m)
-      } else mxUtils.write(l, k, c);
-      g.appendChild(l)
-    }
-    e.appendChild(g)
-  }
-  d.appendChild(e);
-  return d
-};
-mxPrintPreview.prototype.renderPage = function(a, b, c) {
-  var d = document.createElement("div");
-  try {
-    d.style.width = a + "px";
-    d.style.height = b + "px";
-    d.style.overflow = "hidden";
-    d.style.pageBreakInside = "avoid";
-    d.style.position = "relative";
-    var e = document.createElement("div");
-    e.style.top = this.border + "px";
-    e.style.left = this.border + "px";
-    e.style.width = a - 2 * this.border + "px";
-    e.style.height = b - 2 * this.border + "px";
-    e.style.overflow = "hidden";
-    this.graph.dialect == mxConstants.DIALECT_VML && (e.style.position = "absolute");
-    d.appendChild(e);
-    document.body.appendChild(d);
-    c(e)
-  } catch (f) {
-    throw d.parentNode.removeChild(d), f;
-  }
-  return d
-};
-mxPrintPreview.prototype.addGraphFragment = function(a, b, c, d, e) {
-  d = this.graph.getView();
-  var f = this.graph.container;
-  this.graph.container = e;
-  var g = d.getCanvas(),
-    h = d.getBackgroundPane(),
-    k = d.getDrawPane(),
-    l = d.getOverlayPane();
-  this.graph.dialect == mxConstants.DIALECT_SVG ? d.createSvg() : this.graph.dialect == mxConstants.DIALECT_VML ? d.createVml() : d.createHtml();
-  var m = d.isEventsEnabled();
-  d.setEventsEnabled(!1);
-  var n = this.graph.isEnabled();
-  this.graph.setEnabled(!1);
-  var p = d.getTranslate();
-  d.translate = new mxPoint(a,
-    b);
-  a = null;
-  try {
-    var q = [this.graph.getModel().getRoot()];
-    a = new mxTemporaryCellStates(d, c, q)
-  } finally {
-    if (mxClient.IS_IE) d.overlayPane.innerHTML = "";
-    else
-      for (c = e.firstChild; null != c;) q = c.nextSibling, b = c.nodeName.toLowerCase(), "svg" == b ? (c.setAttribute("width", parseInt(e.style.width)), c.setAttribute("height", parseInt(e.style.height))) :
-        "default" != c.style.cursor && "table" != b && c.parentNode.removeChild(c), c = q;
-    d.overlayPane.parentNode.removeChild(d.overlayPane);
-    this.graph.setEnabled(n);
-    this.graph.container = f;
-    d.canvas =
-      g;
-    d.backgroundPane = h;
-    d.drawPane = k;
-    d.overlayPane = l;
-    d.translate = p;
-    a.destroy();
-    d.setEventsEnabled(m)
-  }
-};
-mxPrintPreview.prototype.getCoverPages = function() {
-  return null
-};
-mxPrintPreview.prototype.getAppendices = function() {
-  return null
-};
-mxPrintPreview.prototype.print = function() {
-  var a = this.open();
-  null != a && a.print()
-};
-mxPrintPreview.prototype.close = function() {
-  null != this.wnd && (this.wnd.close(), this.wnd = null)
-};
-
-function mxStylesheet() {
-  this.styles = {};
-  this.putDefaultVertexStyle(this.createDefaultVertexStyle());
-  this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())
-}
-mxStylesheet.prototype.createDefaultVertexStyle = function() {
-  var a = {};
-  a[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
-  a[mxConstants.STYLE_PERIMETER] = mxPerimeter.RectanglePerimeter;
-  a[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
-  a[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
-  a[mxConstants.STYLE_FILLCOLOR] = "#C3D9FF";
-  a[mxConstants.STYLE_STROKECOLOR] = "#6482B9";
-  a[mxConstants.STYLE_FONTCOLOR] = "#774400";
-  return a
-};
-mxStylesheet.prototype.createDefaultEdgeStyle = function() {
-  var a = {};
-  a[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_CONNECTOR;
-  a[mxConstants.STYLE_ENDARROW] = mxConstants.ARROW_CLASSIC;
-  a[mxConstants.STYLE_VERTICAL_ALIGN] = mxConstants.ALIGN_MIDDLE;
-  a[mxConstants.STYLE_ALIGN] = mxConstants.ALIGN_CENTER;
-  a[mxConstants.STYLE_STROKECOLOR] = "#6482B9";
-  a[mxConstants.STYLE_FONTCOLOR] = "#446299";
-  return a
-};
-mxStylesheet.prototype.putDefaultVertexStyle = function(a) {
-  this.putCellStyle("defaultVertex", a)
-};
-mxStylesheet.prototype.putDefaultEdgeStyle = function(a) {
-  this.putCellStyle("defaultEdge", a)
-};
-mxStylesheet.prototype.getDefaultVertexStyle = function() {
-  return this.styles.defaultVertex
-};
-mxStylesheet.prototype.getDefaultEdgeStyle = function() {
-  return this.styles.defaultEdge
-};
-mxStylesheet.prototype.putCellStyle = function(a, b) {
-  this.styles[a] = b
-};
-mxStylesheet.prototype.getCellStyle = function(a, b) {
-  var c = b;
-  if (null != a && 0 < a.length)
-    for (var d = a.split(";"), c = null != c && ";" != a.charAt(0) ? mxUtils.clone(c) : {}, e = 0; e < d.length; e++) {
-      var f = d[e],
-        g = f.indexOf("\x3d");
-      if (0 <= g) {
-        var h = f.substring(0, g),
-          f = f.substring(g + 1);
-        f == mxConstants.NONE ? delete c[h] : mxUtils.isNumeric(f) ? c[h] = parseFloat(f) : c[h] = f
-      } else if (f = this.styles[f], null != f)
-        for (h in f) c[h] = f[h]
-    }
-  return c
-};
-
-function mxCellState(a, b, c) {
-  this.view = a;
-  this.cell = b;
-  this.style = c;
-  this.origin = new mxPoint;
-  this.absoluteOffset = new mxPoint
-}
-mxCellState.prototype = new mxRectangle;
-mxCellState.prototype.constructor = mxCellState;
-mxCellState.prototype.view = null;
-mxCellState.prototype.cell = null;
-mxCellState.prototype.style = null;
-mxCellState.prototype.invalid = !0;
-mxCellState.prototype.invalidOrder = !1;
-mxCellState.prototype.orderChanged = !1;
-mxCellState.prototype.origin = null;
-mxCellState.prototype.absolutePoints = null;
-mxCellState.prototype.absoluteOffset = null;
-mxCellState.prototype.visibleSourceState = null;
-mxCellState.prototype.visibleTargetState = null;
-mxCellState.prototype.terminalDistance = 0;
-mxCellState.prototype.length = 0;
-mxCellState.prototype.segments = null;
-mxCellState.prototype.shape = null;
-mxCellState.prototype.text = null;
-mxCellState.prototype.getPerimeterBounds = function(a, b) {
-  a = a || 0;
-  b = null != b ? b : new mxRectangle(this.x, this.y, this.width, this.height);
-  if (null != this.shape && null != this.shape.stencil) {
-    var c = this.shape.stencil.computeAspect(this.style, b.x, b.y, b.width, b.height);
-    b.x = c.x;
-    b.y = c.y;
-    b.width = this.shape.stencil.w0 * c.width;
-    b.height = this.shape.stencil.h0 * c.height
-  }
-  0 != a && b.grow(a);
-  return b
-};
-mxCellState.prototype.setAbsoluteTerminalPoint = function(a, b) {
-  b ? (null == this.absolutePoints && (this.absolutePoints = []), 0 == this.absolutePoints.length ? this.absolutePoints.push(a) : this.absolutePoints[0] = a) : null == this.absolutePoints ? (this.absolutePoints = [],
-    this.absolutePoints.push(null), this.absolutePoints.push(a)) : 1 == this.absolutePoints.length ? this.absolutePoints.push(a) : this.absolutePoints[this.absolutePoints.length - 1] = a
-};
-mxCellState.prototype.setCursor = function(a) {
-  null != this.shape && this.shape.setCursor(a);
-  null != this.text && this.text.setCursor(a)
-};
-mxCellState.prototype.getVisibleTerminal = function(a) {
-  a = this.getVisibleTerminalState(a);
-  return null != a ? a.cell : null
-};
-mxCellState.prototype.getVisibleTerminalState = function(a) {
-  return a ? this.visibleSourceState : this.visibleTargetState
-};
-mxCellState.prototype.setVisibleTerminalState = function(a, b) {
-  b ? this.visibleSourceState = a : this.visibleTargetState = a
-};
-mxCellState.prototype.destroy = function() {
-  this.view.graph.cellRenderer.destroy(this)
-};
-mxCellState.prototype.clone = function() {
-  var a = new mxCellState(this.view, this.cell, this.style);
-  if (null != this.absolutePoints) {
-    a.absolutePoints = [];
-    for (var b = 0; b < this.absolutePoints.length; b++) a.absolutePoints[b] = this.absolutePoints[b].clone()
-  }
-  null != this.origin && (a.origin = this.origin.clone());
-  null != this.absoluteOffset && (a.absoluteOffset = this.absoluteOffset.clone());
-  null != this.boundingBox && (a.boundingBox = this.boundingBox.clone());
-  a.terminalDistance = this.terminalDistance;
-  a.segments = this.segments;
-  a.length =
-    this.length;
-  a.x = this.x;
-  a.y = this.y;
-  a.width = this.width;
-  a.height = this.height;
-  return a
-};
-
-function mxGraphSelectionModel(a) {
-  this.graph = a;
-  this.cells = []
-}
-mxGraphSelectionModel.prototype = new mxEventSource;
-mxGraphSelectionModel.prototype.constructor = mxGraphSelectionModel;
-mxGraphSelectionModel.prototype.doneResource = "none" != mxClient.language ? "done" : "";
-mxGraphSelectionModel.prototype.updatingSelectionResource = "none" != mxClient.language ? "updatingSelection" : "";
-mxGraphSelectionModel.prototype.graph = null;
-mxGraphSelectionModel.prototype.singleSelection = !1;
-mxGraphSelectionModel.prototype.isSingleSelection = function() {
-  return this.singleSelection
-};
-mxGraphSelectionModel.prototype.setSingleSelection = function(a) {
-  this.singleSelection = a
-};
-mxGraphSelectionModel.prototype.isSelected = function(a) {
-  return null != a ? 0 <= mxUtils.indexOf(this.cells, a) : !1
-};
-mxGraphSelectionModel.prototype.isEmpty = function() {
-  return 0 == this.cells.length
-};
-mxGraphSelectionModel.prototype.clear = function() {
-  this.changeSelection(null, this.cells)
-};
-mxGraphSelectionModel.prototype.setCell = function(a) {
-  null != a && this.setCells([a])
-};
-mxGraphSelectionModel.prototype.setCells = function(a) {
-  if (null != a) {
-    this.singleSelection && (a = [this.getFirstSelectableCell(a)]);
-    for (var b = [], c = 0; c < a.length; c++) this.graph.isCellSelectable(a[c]) && b.push(a[c]);
-    this.changeSelection(b, this.cells)
-  }
-};
-mxGraphSelectionModel.prototype.getFirstSelectableCell = function(a) {
-  if (null != a)
-    for (var b = 0; b < a.length; b++)
-      if (this.graph.isCellSelectable(a[b])) return a[b];
-  return null
-};
-mxGraphSelectionModel.prototype.addCell = function(a) {
-  null != a && this.addCells([a])
-};
-mxGraphSelectionModel.prototype.addCells = function(a) {
-  if (null != a) {
-    var b = null;
-    this.singleSelection && (b = this.cells, a = [this.getFirstSelectableCell(a)]);
-    for (var c = [], d = 0; d < a.length; d++) !this.isSelected(a[d]) && this.graph.isCellSelectable(a[d]) && c.push(a[d]);
-    this.changeSelection(c, b)
-  }
-};
-mxGraphSelectionModel.prototype.removeCell = function(a) {
-  null != a && this.removeCells([a])
-};
-mxGraphSelectionModel.prototype.removeCells = function(a) {
-  if (null != a) {
-    for (var b = [], c = 0; c < a.length; c++) this.isSelected(a[c]) && b.push(a[c]);
-    this.changeSelection(null, b)
-  }
-};
-mxGraphSelectionModel.prototype.changeSelection = function(a, b) {
-  if (null != a && 0 < a.length && null != a[0] || null != b && 0 < b.length && null != b[0]) {
-    var c = new mxSelectionChange(this, a, b);
-    c.execute();
-    var d = new mxUndoableEdit(this, !1);
-    d.add(c);
-    this.fireEvent(new mxEventObject(mxEvent.UNDO, "edit", d))
-  }
-};
-mxGraphSelectionModel.prototype.cellAdded = function(a) {
-  null != a && !this.isSelected(a) && this.cells.push(a)
-};
-mxGraphSelectionModel.prototype.cellRemoved = function(a) {
-  null != a && (a = mxUtils.indexOf(this.cells, a), 0 <= a && this.cells.splice(a, 1))
-};
-
-function mxSelectionChange(a, b, c) {
-  this.selectionModel = a;
-  this.added = null != b ? b.slice() : null;
-  this.removed = null != c ? c.slice() : null
-}
-mxSelectionChange.prototype.execute = function() {
-  var a = mxLog.enter("mxSelectionChange.execute");
-  window.status = mxResources.get(this.selectionModel.updatingSelectionResource) || this.selectionModel.updatingSelectionResource;
-  if (null != this.removed)
-    for (var b = 0; b < this.removed.length; b++) this.selectionModel.cellRemoved(this.removed[b]);
-  if (null != this.added)
-    for (b = 0; b < this.added.length; b++) this.selectionModel.cellAdded(this.added[b]);
-  b = this.added;
-  this.added = this.removed;
-  this.removed = b;
-  window.status = mxResources.get(this.selectionModel.doneResource) ||
-    this.selectionModel.doneResource;
-  mxLog.leave("mxSelectionChange.execute", a);
-  this.selectionModel.fireEvent(new mxEventObject(mxEvent.CHANGE, "added", this.added, "removed", this.removed))
-};
-
-function mxCellEditor(a) {
-  this.graph = a
-}
-mxCellEditor.prototype.graph = null;
-mxCellEditor.prototype.textarea = null;
-mxCellEditor.prototype.editingCell = null;
-mxCellEditor.prototype.trigger = null;
-mxCellEditor.prototype.modified = !1;
-mxCellEditor.prototype.autoSize = !0;
-mxCellEditor.prototype.emptyLabelText = "";
-mxCellEditor.prototype.textNode = "";
-mxCellEditor.prototype.init = function() {
-  this.textarea = document.createElement("textarea");
-  this.textarea.className = "mxCellEditor";
-  this.textarea.style.position = "absolute";
-  this.textarea.style.overflow = "visible";
-  this.textarea.setAttribute("cols", "20");
-  this.textarea.setAttribute("rows", "4");
-  mxClient.IS_NS && (this.textarea.style.resize = "none");
-  mxEvent.addListener(this.textarea, "blur", mxUtils.bind(this, function(a) {
-    this.focusLost()
-  }));
-  mxEvent.addListener(this.textarea, "keydown", mxUtils.bind(this, function(a) {
-    mxEvent.isConsumed(a) ||
-      (113 == a.keyCode || this.graph.isEnterStopsCellEditing() && 13 == a.keyCode && !mxEvent.isControlDown(a) && !mxEvent.isShiftDown(a) ? (this.graph.stopEditing(!1), mxEvent.consume(a)) :
-        27 == a.keyCode ? (this.graph.stopEditing(!0), mxEvent.consume(a)) : (this.clearOnChange && (this.clearOnChange = !1, this.textarea.value = ""), this.setModified(!0)))
-  }));
-  mxEvent.addListener(this.textarea, "keypress", mxUtils.bind(this, function(a) {
-    this.autoSize && !mxEvent.isConsumed(a) && setTimeout(mxUtils.bind(this, function() {
-      this.resize()
-    }), 0)
-  }))
-};
-mxCellEditor.prototype.resize = function() {
-  if (null != this.textDiv) {
-    var a = this.graph.getView().getState(this.editingCell),
-      b = this.graph.isLabelClipped(a.cell),
-      c = this.graph.isWrapping(a.cell);
-    if (this.graph.getModel().isEdge(a.cell)) this.bounds.x = a.absoluteOffset.x, this.bounds.y = a.absoluteOffset.y, this.bounds.width = 0, this.bounds.height = 0;
-    else if (null != this.bounds) {
-      this.bounds.x = a.x;
-      this.bounds.y = a.y;
-      this.bounds.width = a.width;
-      this.bounds.height = a.height;
-      var d = mxUtils.getValue(a.style, mxConstants.STYLE_LABEL_POSITION,
-        mxConstants.ALIGN_CENTER);
-      d == mxConstants.ALIGN_LEFT ? this.bounds.x -= a.width : d == mxConstants.ALIGN_RIGHT && (this.bounds.x += a.width);
-      d = mxUtils.getValue(a.style, mxConstants.STYLE_VERTICAL_LABEL_POSITION, mxConstants.ALIGN_MIDDLE);
-      d == mxConstants.ALIGN_TOP ? this.bounds.y -= a.height : d == mxConstants.ALIGN_BOTTOM && (this.bounds.y += a.height)
-    }
-    d = this.textarea.value;
-    if ("\n" == d.charAt(d.length - 1) || "" == d) d += "\x26nbsp;";
-    d = mxUtils.htmlEntities(d, !1);
-    c ? (this.textDiv.style.whiteSpace = "normal", this.textDiv.style.width = this.bounds.width +
-      "px") : d = d.replace(/ /g, "\x26nbsp;");
-    d = d.replace(/\n/g, "\x3cbr/\x3e");
-    this.textDiv.innerHTML = d;
-    var d = this.textDiv.offsetWidth + 30,
-      e = this.textDiv.offsetHeight + 16,
-      d = Math.max(d, 40),
-      e = Math.max(e, 20);
-    b && (d = Math.min(this.bounds.width - 4, d), e = Math.min(this.bounds.height, e));
-    var f = null != a.text ? a.text.margin : null;
-    null == f && (f = mxUtils.getValue(a.style, mxConstants.STYLE_ALIGN, mxConstants.ALIGN_CENTER), a = mxUtils.getValue(a.style, mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_MIDDLE), f =
-      mxUtils.getAlignmentAsPoint(f,
-        a));
-    if (null != f) {
-      if (b || !c) this.textarea.style.left = Math.max(0, Math.round(this.bounds.x - f.x * this.bounds.width + f.x * d) - 3) + "px";
-      this.textarea.style.top = Math.max(0, Math.round(this.bounds.y - f.y * this.bounds.height + f.y * e) + 4) + "px"
-    }
-    if (b || !c) this.textarea.style.width = d + "px";
-    this.textarea.style.height = e + "px"
-  }
-};
-mxCellEditor.prototype.isModified = function() {
-  return this.modified
-};
-mxCellEditor.prototype.setModified = function(a) {
-  this.modified = a
-};
-mxCellEditor.prototype.focusLost = function() {
-  this.stopEditing(!this.graph.isInvokesStopCellEditing())
-};
-mxCellEditor.prototype.startEditing = function(a, b) {
-  null == this.textarea && this.init();
-  this.stopEditing(!0);
-  var c = this.graph.getView().getState(a);
-  if (null != c) {
-    this.editingCell = a;
-    this.trigger = b;
-    this.textNode = null;
-    null != c.text && this.isHideLabel(c) && (this.textNode = c.text.node, this.textNode.style.visibility = "hidden");
-    var d = this.graph.getView().scale,
-      d = mxUtils.getValue(c.style, mxConstants.STYLE_FONTSIZE, mxConstants.DEFAULT_FONTSIZE) * d,
-      e = mxUtils.getValue(c.style, mxConstants.STYLE_FONTFAMILY, mxConstants.DEFAULT_FONTFAMILY),
-      f = mxUtils.getValue(c.style, mxConstants.STYLE_FONTCOLOR, "black"),
-      g = mxUtils.getValue(c.style, mxConstants.STYLE_ALIGN, mxConstants.ALIGN_LEFT),
-      h = (mxUtils.getValue(c.style, mxConstants.STYLE_FONTSTYLE, 0) & mxConstants.FONT_BOLD) == mxConstants.FONT_BOLD,
-      k = (mxUtils.getValue(c.style, mxConstants.STYLE_FONTSTYLE, 0) & mxConstants.FONT_ITALIC) == mxConstants.FONT_ITALIC,
-      l = (mxUtils.getValue(c.style, mxConstants.STYLE_FONTSTYLE, 0) & mxConstants.FONT_UNDERLINE) == mxConstants.FONT_UNDERLINE;
-    this.textarea.style.fontSize = Math.round(d) +
-      "px";
-    this.textarea.style.lineHeight = Math.round(d * mxConstants.LINE_HEIGHT) + "px";
-    this.textarea.style.fontFamily = e;
-    this.textarea.style.textAlign = g;
-    this.textarea.style.color = f;
-    this.textarea.style.fontWeight = h ? "bold" : "normal";
-    this.textarea.style.fontStyle = k ? "italic" : "";
-    this.textarea.style.textDecoration = l ? "underline" : "";
-    this.textarea.style.overflow = "auto";
-    this.textarea.style.outline = "none";
-    this.bounds = d = this.getEditorBounds(c);
-    this.textarea.style.left = d.x + "px";
-    this.textarea.style.top = d.y + "px";
-    this.textarea.style.width =
-      d.width + "px";
-    this.textarea.style.height = d.height + "px";
-    this.textarea.style.zIndex = 5;
-    c = this.getInitialValue(c, b);
-    null == c || 0 == c.length ? (c = this.getEmptyLabelText(), this.clearOnChange = !0) : this.clearOnChange = !1;
-    this.setModified(!1);
-    this.textarea.value = c;
-    this.graph.container.appendChild(this.textarea);
-    "none" != this.textarea.style.display && (this.autoSize && (this.textDiv = this.createTextDiv(), document.body.appendChild(this.textDiv), this.resize()), this.textarea.focus(), this.textarea.select())
-  }
-};
-mxCellEditor.prototype.createTextDiv = function() {
-  var a = document.createElement("div"),
-    b = a.style;
-  b.position = "absolute";
-  b.whiteSpace = "nowrap";
-  b.visibility = "hidden";
-  b.display = mxClient.IS_QUIRKS ? "inline" : "inline-block";
-  b.zoom = "1";
-  b.verticalAlign = "top";
-  b.lineHeight = this.textarea.style.lineHeight;
-  b.fontSize = this.textarea.style.fontSize;
-  b.fontFamily = this.textarea.style.fontFamily;
-  b.fontWeight = this.textarea.style.fontWeight;
-  b.textAlign = this.textarea.style.textAlign;
-  b.fontStyle = this.textarea.style.fontStyle;
-  b.textDecoration = this.textarea.style.textDecoration;
-  return a
-};
-mxCellEditor.prototype.stopEditing = function(a) {
-  null != this.editingCell && (null != this.textNode && (this.textNode.style.visibility = "visible", this.textNode = null), !a && this.isModified() && this.graph.labelChanged(this.editingCell, this
-      .getCurrentValue(), this.trigger), null != this.textDiv && (document.body.removeChild(this.textDiv), this.textDiv = null), this.bounds = this.trigger = this.editingCell = null, this.textarea
-    .blur(), this.textarea.parentNode.removeChild(this.textarea))
-};
-mxCellEditor.prototype.getInitialValue = function(a, b) {
-  return this.graph.getEditingValue(a.cell, b)
-};
-mxCellEditor.prototype.getCurrentValue = function() {
-  return this.textarea.value.replace(/\r/g, "")
-};
-mxCellEditor.prototype.isHideLabel = function(a) {
-  return !0
-};
-mxCellEditor.prototype.getMinimumSize = function(a) {
-  var b = this.graph.getView().scale;
-  return new mxRectangle(0, 0, null == a.text ? 30 : a.text.size * b + 20, "left" == this.textarea.style.textAlign ? 120 : 40)
-};
-mxCellEditor.prototype.getEditorBounds = function(a) {
-  var b = this.graph.getModel().isEdge(a.cell),
-    c = this.graph.getView().scale,
-    d = this.getMinimumSize(a),
-    e = d.width,
-    d = d.height,
-    f = parseInt(a.style[mxConstants.STYLE_SPACING] || 2) * c,
-    g = parseInt(a.style[mxConstants.STYLE_SPACING_TOP] || 0) * c + f,
-    h = parseInt(a.style[mxConstants.STYLE_SPACING_RIGHT] || 0) * c + f,
-    k = parseInt(a.style[mxConstants.STYLE_SPACING_BOTTOM] || 0) * c + f,
-    c = parseInt(a.style[mxConstants.STYLE_SPACING_LEFT] || 0) * c + f,
-    h = new mxRectangle(a.x, a.y, Math.max(e, a.width -
-      c - h), Math.max(d, a.height - g - k));
-  b ? (h.x = a.absoluteOffset.x, h.y = a.absoluteOffset.y, null != a.text && null != a.text.boundingBox && (0 < a.text.boundingBox.x && (h.x = a.text.boundingBox.x), 0 < a.text.boundingBox.y && (h.y =
-    a.text.boundingBox.y))) : null != a.text && null != a.text.boundingBox && (h.x = Math.min(h.x, a.text.boundingBox.x), h.y = Math.min(h.y, a.text.boundingBox.y));
-  h.x += c;
-  h.y += g;
-  null != a.text && null != a.text.boundingBox && (b ? (h.width = Math.max(e, a.text.boundingBox.width), h.height = Math.max(d, a.text.boundingBox.height)) : (h.width =
-    Math.max(h.width, a.text.boundingBox.width), h.height = Math.max(h.height, a.text.boundingBox.height)));
-  this.graph.getModel().isVertex(a.cell) && (b = mxUtils.getValue(a.style, mxConstants.STYLE_LABEL_POSITION, mxConstants.ALIGN_CENTER), b == mxConstants.ALIGN_LEFT ? h.x -= a.width : b ==
-    mxConstants.ALIGN_RIGHT && (h.x += a.width), b = mxUtils.getValue(a.style, mxConstants.STYLE_VERTICAL_LABEL_POSITION, mxConstants.ALIGN_MIDDLE), b == mxConstants.ALIGN_TOP ? h.y -= a.height :
-    b == mxConstants.ALIGN_BOTTOM && (h.y += a.height));
-  return h
-};
-mxCellEditor.prototype.getEmptyLabelText = function(a) {
-  return this.emptyLabelText
-};
-mxCellEditor.prototype.getEditingCell = function() {
-  return this.editingCell
-};
-mxCellEditor.prototype.destroy = function() {
-  null != this.textarea && (mxEvent.release(this.textarea), null != this.textarea.parentNode && this.textarea.parentNode.removeChild(this.textarea), this.textarea = null)
-};
-
-function mxCellRenderer() {}
-mxCellRenderer.prototype.defaultEdgeShape = mxConnector;
-mxCellRenderer.prototype.defaultVertexShape = mxRectangleShape;
-mxCellRenderer.prototype.defaultTextShape = mxText;
-mxCellRenderer.prototype.legacyControlPosition = !0;
-mxCellRenderer.prototype.defaultShapes = {};
-mxCellRenderer.registerShape = function(a, b) {
-  mxCellRenderer.prototype.defaultShapes[a] = b
-};
-mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE, mxRectangleShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE, mxEllipse);
-mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS, mxRhombus);
-mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER, mxCylinder);
-mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR, mxConnector);
-mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR, mxActor);
-mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE, mxTriangle);
-mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON, mxHexagon);
-mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD, mxCloud);
-mxCellRenderer.registerShape(mxConstants.SHAPE_LINE, mxLine);
-mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW, mxArrow);
-mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE, mxDoubleEllipse);
-mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE, mxSwimlane);
-mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE, mxImageShape);
-mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL, mxLabel);
-mxCellRenderer.prototype.initialize = function(a, b) {
-  var c = a.view.graph.getModel();
-  if (null != a.view.graph.container && null == a.shape && a.cell != a.view.currentRoot && (c.isVertex(a.cell) || c.isEdge(a.cell)))
-    if (this.createShape(a), null != a.shape && (null == b || b)) this.initializeShape(a), a.view.graph.ordered || c.isEdge(a.cell) ? a.invalidOrder = !0 : a.view.graph.keepEdgesInForeground &&
-      null != this.firstEdge && (this.firstEdge.parentNode == a.shape.node.parentNode ? this.insertState(a, this.firstEdge) : this.firstEdge = null), a.shape.scale =
-      a.view.scale, this.createCellOverlays(a), this.installListeners(a)
-};
-mxCellRenderer.prototype.initializeShape = function(a) {
-  a.shape.init(a.view.getDrawPane())
-};
-mxCellRenderer.prototype.getPreviousStateInContainer = function(a, b) {
-  for (var c = null, d = a.view.graph, e = d.getModel(), f = a.cell, g = e.getParent(f); null != g && null == c;) c = this.findPreviousStateInContainer(d, g, f, b), f = g, g = e.getParent(f);
-  return c
-};
-mxCellRenderer.prototype.findPreviousStateInContainer = function(a, b, c, d) {
-  var e = null,
-    f = a.getModel();
-  for (c = null != c ? b.getIndex(c) - 1 : f.getChildCount(b) - 1; 0 <= c && null == e; c--) e = this.findPreviousStateInContainer(a, f.getChildAt(b, c), null, d);
-  if (null == e && (e = a.view.getState(b), null != e && (null == e.shape || null == e.shape.node || e.shape.node.parentNode != d))) e = null;
-  return e
-};
-mxCellRenderer.prototype.order = function(a) {
-  var b = a.shape.node.parentNode,
-    c = this.getPreviousStateInContainer(a, b),
-    d = b.firstChild;
-  null != c && (d = c.shape.node, null != c.text && (null != c.text.node && c.text.node.parentNode == b) && (d = c.text.node), d = d.nextSibling);
-  this.insertState(a, d)
-};
-mxCellRenderer.prototype.orderEdge = function(a) {
-  var b = a.view,
-    c = b.graph.getModel();
-  if (b.graph.keepEdgesInForeground) {
-    if (null == this.firstEdge || null == this.firstEdge.parentNode || this.firstEdge.parentNode != a.shape.node.parentNode) this.firstEdge = a.shape.node
-  } else if (b.graph.keepEdgesInBackground) {
-    var d = a.shape.node,
-      e = d.parentNode,
-      c = c.getParent(a.cell),
-      b = b.getState(c),
-      e = null != b && null != b.shape && null != b.shape.node ? b.shape.node.nextSibling : e.firstChild;
-    null != e && e != d && this.insertState(a, e)
-  }
-};
-mxCellRenderer.prototype.insertState = function(a, b) {
-  a.shape.node.parentNode.insertBefore(a.shape.node, b);
-  null != a.text && (null != a.text.node && a.text.node.parentNode == a.shape.node.parentNode) && a.shape.node.parentNode.insertBefore(a.text.node, a.shape.node.nextSibling)
-};
-mxCellRenderer.prototype.createShape = function(a) {
-  if (null != a.style) {
-    var b = mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]);
-    null != b ? a.shape = new mxShape(b) : (b = this.getShapeConstructor(a), a.shape = new b);
-    a.shape.points = a.absolutePoints;
-    a.shape.bounds = new mxRectangle(a.x, a.y, a.width, a.height);
-    a.shape.dialect = a.view.graph.dialect;
-    this.configureShape(a)
-  }
-};
-mxCellRenderer.prototype.getShape = function(a) {
-  return null != a ? mxCellRenderer.prototype.defaultShapes[a] : null
-};
-mxCellRenderer.prototype.getShapeConstructor = function(a) {
-  var b = this.getShape(a.style[mxConstants.STYLE_SHAPE]);
-  null == b && (b = a.view.graph.getModel().isEdge(a.cell) ? this.defaultEdgeShape : this.defaultVertexShape);
-  return b
-};
-mxCellRenderer.prototype.configureShape = function(a) {
-  a.shape.apply(a);
-  a.shape.image = a.view.graph.getImage(a);
-  a.shape.indicatorShape = this.getShape(a.view.graph.getIndicatorShape(a));
-  a.shape.indicatorColor = a.view.graph.getIndicatorColor(a);
-  a.shape.indicatorGradientColor = a.view.graph.getIndicatorGradientColor(a);
-  a.shape.indicatorDirection = a.style[mxConstants.STYLE_INDICATOR_DIRECTION];
-  a.shape.indicatorImage = a.view.graph.getIndicatorImage(a);
-  this.postConfigureShape(a)
-};
-mxCellRenderer.prototype.postConfigureShape = function(a) {
-  null != a.shape && (this.resolveColor(a, "indicatorColor", mxConstants.STYLE_FILLCOLOR), this.resolveColor(a, "indicatorGradientColor", mxConstants.STYLE_GRADIENTCOLOR), this.resolveColor(a,
-    "fill", mxConstants.STYLE_FILLCOLOR), this.resolveColor(a, "stroke", mxConstants.STYLE_STROKECOLOR), this.resolveColor(a, "gradient", mxConstants.STYLE_GRADIENTCOLOR))
-};
-mxCellRenderer.prototype.resolveColor = function(a, b, c) {
-  var d = a.shape[b],
-    e = a.view.graph,
-    f = null;
-  "inherit" == d ? f = e.model.getParent(a.cell) : "swimlane" == d ? (f = null != e.model.getTerminal(a.cell, !1) ? e.model.getTerminal(a.cell, !1) : a.cell, f = e.getSwimlane(f), c = e.swimlaneIndicatorColorAttribute) :
-    "indicated" == d && (a.shape[b] = a.shape.indicatorColor);
-  null != f && (d = e.getView().getState(f), a.shape[b] = null, null != d && (a.shape[b] = null != d.shape && "indicatorColor" != b ? d.shape[b] : d.style[c]))
-};
-mxCellRenderer.prototype.getLabelValue = function(a) {
-  return a.view.graph.getLabel(a.cell)
-};
-mxCellRenderer.prototype.createLabel = function(a, b) {
-  var c = a.view.graph;
-  c.getModel().isEdge(a.cell);
-  if (0 < a.style[mxConstants.STYLE_FONTSIZE] || null == a.style[mxConstants.STYLE_FONTSIZE]) {
-    var d = c.isHtmlLabel(a.cell) || null != b && mxUtils.isNode(b);
-    a.text = new this.defaultTextShape(b, new mxRectangle, a.style[mxConstants.STYLE_ALIGN] || mxConstants.ALIGN_CENTER, c.getVerticalAlign(a), a.style[mxConstants.STYLE_FONTCOLOR], a.style[
-        mxConstants.STYLE_FONTFAMILY], a.style[mxConstants.STYLE_FONTSIZE], a.style[mxConstants.STYLE_FONTSTYLE],
-      a.style[mxConstants.STYLE_SPACING], a.style[mxConstants.STYLE_SPACING_TOP], a.style[mxConstants.STYLE_SPACING_RIGHT], a.style[mxConstants.STYLE_SPACING_BOTTOM], a.style[mxConstants.STYLE_SPACING_LEFT],
-      a.style[mxConstants.STYLE_HORIZONTAL], a.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR], a.style[mxConstants.STYLE_LABEL_BORDERCOLOR], c.isWrapping(a.cell) && c.isHtmlLabel(a.cell), c.isLabelClipped(
-        a.cell), a.style[mxConstants.STYLE_OVERFLOW], a.style[mxConstants.STYLE_LABEL_PADDING]);
-    a.text.opacity = mxUtils.getValue(a.style,
-      mxConstants.STYLE_TEXT_OPACITY, 100);
-    a.text.dialect = d ? mxConstants.DIALECT_STRICTHTML : a.view.graph.dialect;
-    a.text.state = a;
-    this.initializeLabel(a);
-    var e = !1,
-      f = function(b) {
-        var d = a;
-        if (mxClient.IS_TOUCH || e) d = mxEvent.getClientX(b), b = mxEvent.getClientY(b), b = mxUtils.convertPoint(c.container, d, b), d = c.view.getState(c.getCellAt(b.x, b.y));
-        return d
-      };
-    mxEvent.addGestureListeners(a.text.node, mxUtils.bind(this, function(b) {
-      this.isLabelEvent(a, b) && (c.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(b, a)), e = c.dialect !=
-        mxConstants.DIALECT_SVG && "IMG" == mxEvent.getSource(b).nodeName)
-    }), mxUtils.bind(this, function(b) {
-      this.isLabelEvent(a, b) && c.fireMouseEvent(mxEvent.MOUSE_MOVE, new mxMouseEvent(b, f(b)))
-    }), mxUtils.bind(this, function(b) {
-      this.isLabelEvent(a, b) && (c.fireMouseEvent(mxEvent.MOUSE_UP, new mxMouseEvent(b, f(b))), e = !1)
-    }));
-    mxEvent.addListener(a.text.node, "dblclick", mxUtils.bind(this, function(b) {
-      this.isLabelEvent(a, b) && (c.dblClick(b, a.cell), mxEvent.consume(b))
-    }))
-  }
-};
-mxCellRenderer.prototype.initializeLabel = function(a) {
-  var b = a.view.graph;
-  a.text.dialect != mxConstants.DIALECT_SVG && (mxClient.IS_SVG && mxClient.NO_FO ? a.text.init(b.container) : mxUtils.isVml(a.view.getDrawPane()) && (null != a.shape.label ? a.text.init(a.shape.label) :
-    a.text.init(a.shape.node)));
-  null == a.text.node && (a.text.init(a.view.getDrawPane()), null != a.shape && null != a.text && a.shape.node.parentNode.insertBefore(a.text.node, a.shape.node.nextSibling))
-};
-mxCellRenderer.prototype.createCellOverlays = function(a) {
-  var b = a.view.graph.getCellOverlays(a.cell),
-    c = null;
-  if (null != b)
-    for (var c = new mxDictionary, d = 0; d < b.length; d++) {
-      var e = null != a.overlays ? a.overlays.remove(b[d]) : null;
-      null == e && (e = new mxImageShape(new mxRectangle, b[d].image.src), e.dialect = a.view.graph.dialect, e.preserveImageAspect = !1, e.overlay = b[d], this.initializeOverlay(a, e), this.installCellOverlayListeners(
-        a, b[d], e), null != b[d].cursor && (e.node.style.cursor = b[d].cursor));
-      c.put(b[d], e)
-    }
-  null != a.overlays &&
-    a.overlays.visit(function(a, b) {
-      b.destroy()
-    });
-  a.overlays = c
-};
-mxCellRenderer.prototype.initializeOverlay = function(a, b) {
-  b.init(a.view.getOverlayPane())
-};
-mxCellRenderer.prototype.installCellOverlayListeners = function(a, b, c) {
-  var d = a.view.graph;
-  mxEvent.addListener(c.node, "click", function(c) {
-    d.isEditing() && d.stopEditing(!d.isInvokesStopCellEditing());
-    b.fireEvent(new mxEventObject(mxEvent.CLICK, "event", c, "cell", a.cell))
-  });
-  mxEvent.addGestureListeners(c.node, function(a) {
-    mxEvent.consume(a)
-  }, function(b) {
-    d.fireMouseEvent(mxEvent.MOUSE_MOVE, new mxMouseEvent(b, a))
-  });
-  mxClient.IS_TOUCH && mxEvent.addListener(c.node, "touchend", function(c) {
-    b.fireEvent(new mxEventObject(mxEvent.CLICK,
-      "event", c, "cell", a.cell))
-  })
-};
-mxCellRenderer.prototype.createControl = function(a) {
-  var b = a.view.graph,
-    c = b.getFoldingImage(a);
-  if (b.foldingEnabled && null != c) {
-    if (null == a.control) {
-      var d = new mxRectangle(0, 0, c.width, c.height);
-      a.control = new mxImageShape(d, c.src);
-      a.control.preserveImageAspect = !1;
-      a.control.dialect = b.dialect;
-      this.initControl(a, a.control, !0, function(c) {
-        if (b.isEnabled()) {
-          var d = !b.isCellCollapsed(a.cell);
-          b.foldCells(d, !1, [a.cell]);
-          mxEvent.consume(c)
-        }
-      })
-    }
-  } else null != a.control && (a.control.destroy(), a.control = null)
-};
-mxCellRenderer.prototype.initControl = function(a, b, c, d) {
-  var e = a.view.graph;
-  e.isHtmlLabel(a.cell) && mxClient.NO_FO && e.dialect == mxConstants.DIALECT_SVG ? (b.dialect = mxConstants.DIALECT_PREFERHTML, b.init(e.container), b.node.style.zIndex = 1) : b.init(a.view.getOverlayPane());
-  b = b.innerNode || b.node;
-  d && (e.isEnabled() && (b.style.cursor = "pointer"), mxEvent.addListener(b, "click", d));
-  c && mxEvent.addGestureListeners(b, function(b) {
-    e.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(b, a));
-    mxEvent.consume(b)
-  }, function(b) {
-    e.fireMouseEvent(mxEvent.MOUSE_MOVE,
-      new mxMouseEvent(b, a))
-  });
-  return b
-};
-mxCellRenderer.prototype.isShapeEvent = function(a, b) {
-  return !0
-};
-mxCellRenderer.prototype.isLabelEvent = function(a, b) {
-  return !0
-};
-mxCellRenderer.prototype.installListeners = function(a) {
-  var b = a.view.graph,
-    c = function(c) {
-      var d = a;
-      if (b.dialect != mxConstants.DIALECT_SVG && "IMG" == mxEvent.getSource(c).nodeName || mxClient.IS_TOUCH) d = mxEvent.getClientX(c), c = mxEvent.getClientY(c), c = mxUtils.convertPoint(b.container,
-        d, c), d = b.view.getState(b.getCellAt(c.x, c.y));
-      return d
-    },
-    d = !1;
-  mxEvent.addListener(a.shape.node, "gesturestart", mxUtils.bind(this, function(a) {
-    b.lastTouchTime = 0;
-    d = !0;
-    mxEvent.consume(a)
-  }));
-  mxEvent.addGestureListeners(a.shape.node, mxUtils.bind(this,
-    function(c) {
-      this.isShapeEvent(a, c) && !d ? b.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(c, null != a.shape && mxEvent.getSource(c) == a.shape.content ? null : a)) : d && mxEvent.consume(c)
-    }), mxUtils.bind(this, function(e) {
-    this.isShapeEvent(a, e) && !d ? b.fireMouseEvent(mxEvent.MOUSE_MOVE, new mxMouseEvent(e, null != a.shape && mxEvent.getSource(e) == a.shape.content ? null : c(e))) : d && mxEvent.consume(
-      e)
-  }), mxUtils.bind(this, function(e) {
-    this.isShapeEvent(a, e) && !d ? b.fireMouseEvent(mxEvent.MOUSE_UP, new mxMouseEvent(e, null != a.shape &&
-      mxEvent.getSource(e) == a.shape.content ? null : c(e))) : d && mxEvent.consume(e)
-  }));
-  var e = mxClient.IS_TOUCH ? "gestureend" : "dblclick";
-  mxEvent.addListener(a.shape.node, e, mxUtils.bind(this, function(c) {
-    d = !1;
-    "gestureend" == e ? (b.lastTouchTime = 0, b.gestureEnabled && (b.handleGesture(a, c), mxEvent.consume(c))) : this.isShapeEvent(a, c) && (b.dblClick(c, null != a.shape && mxEvent.getSource(
-      c) == a.shape.content ? null : a.cell), mxEvent.consume(c))
-  }))
-};
-mxCellRenderer.prototype.redrawLabel = function(a, b) {
-  var c = this.getLabelValue(a);
-  if (null == a.text && null != c && (mxUtils.isNode(c) || 0 < c.length)) this.createLabel(a, c);
-  else if (null != a.text && (null == c || 0 == c.length)) a.text.destroy(), a.text = null;
-  if (null != a.text) {
-    var d = a.view.graph,
-      e = d.isWrapping(a.cell),
-      d = d.isLabelClipped(a.cell),
-      f = this.getLabelBounds(a);
-    if (b || a.text.value != c || a.text.isWrapping != e || a.text.isClipping != d || a.text.scale != a.view.scale || !a.text.bounds.equals(f)) a.text.value = c, a.text.bounds = f, a.text.scale =
-      this.getTextScale(a), a.text.isWrapping = e, a.text.isClipping = d, a.text.redraw()
-  }
-};
-mxCellRenderer.prototype.getTextScale = function(a) {
-  return a.view.scale
-};
-mxCellRenderer.prototype.getLabelBounds = function(a) {
-  var b = a.view.graph,
-    c = a.view.scale,
-    d = b.getModel().isEdge(a.cell),
-    e = new mxRectangle(a.absoluteOffset.x, a.absoluteOffset.y);
-  a.text.updateMargin();
-  d ? (d = a.text.getSpacing(), e.x += d.x * c, e.y += d.y * c, b = b.getCellGeometry(a.cell), null != b && (e.width = Math.max(0, a.text.margin.x * b.width * c - a.text.spacingLeft * c - a.text.spacingRight *
-    c), e.height = Math.max(0, a.text.margin.y * b.height * c - a.text.spacingTop * c - a.text.spacingBottom * c))) : (a.text.isPaintBoundsInverted() && (d = e.x,
-      e.x = e.y, e.y = d), e.x += a.x, e.y += a.y, e.width = Math.max(1, a.width), e.height = Math.max(1, a.height), b.isSwimlane(a.cell) && (b = b.getStartSize(a.cell), 0 < b.width ? (d = Math.min(
-      e.width, b.width * c), a.shape.flipH && (e.x += e.width - d), e.width = d) : 0 < b.height && (d = Math.min(e.height, b.height * c), a.shape.flipV && (e.y += e.height - d), e.height = d)),
-    this.rotateLabelBounds(a, e));
-  return e
-};
-mxCellRenderer.prototype.rotateLabelBounds = function(a, b) {
-  if (a.text.isPaintBoundsInverted()) {
-    var c = (a.width - a.height) / 2;
-    b.x += c;
-    b.y -= c;
-    c = b.width;
-    b.width = b.height;
-    b.height = c
-  }
-  b.x -= a.text.margin.x * b.width;
-  b.y -= a.text.margin.y * b.height;
-  if ("fill" != a.style[mxConstants.STYLE_OVERFLOW]) {
-    var c = a.view.scale,
-      d = a.text.getSpacing();
-    b.x += d.x * c;
-    b.y += d.y * c;
-    b.width = Math.max(0, b.width - a.text.spacingLeft * c - a.text.spacingRight * c);
-    b.height = Math.max(0, b.height - a.text.spacingTop * c - a.text.spacingBottom * c)
-  }
-  var e = a.text.getTextRotation();
-  if (0 != e && (null != a && a.view.graph.model.isVertex(a.cell)) && (c = a.getCenterX(), d = a.getCenterY(), b.x != c || b.y != d)) e *= Math.PI / 180, pt = mxUtils.getRotatedPoint(new mxPoint(b.x,
-    b.y), Math.cos(e), Math.sin(e), new mxPoint(c, d)), b.x = pt.x, b.y = pt.y
-};
-mxCellRenderer.prototype.redrawCellOverlays = function(a, b) {
-  this.createCellOverlays(a);
-  if (null != a.overlays) {
-    var c = mxUtils.mod(mxUtils.getValue(a.style, mxConstants.STYLE_ROTATION, 0), 90),
-      d = mxUtils.toRadians(c),
-      e = Math.cos(d),
-      f = Math.sin(d);
-    a.overlays.visit(function(d, h) {
-      var k = h.overlay.getBounds(a);
-      if (!a.view.graph.getModel().isEdge(a.cell) && null != a.shape && 0 != c) {
-        var l = k.getCenterX(),
-          m = k.getCenterY(),
-          m = mxUtils.getRotatedPoint(new mxPoint(l, m), e, f, new mxPoint(a.getCenterX(), a.getCenterY())),
-          l = m.x,
-          m = m.y;
-        k.x =
-          Math.round(l - k.width / 2);
-        k.y = Math.round(m - k.height / 2)
-      }
-      if (b || null == h.bounds || h.scale != a.view.scale || !h.bounds.equals(k)) h.bounds = k, h.scale = a.view.scale, h.redraw()
-    })
-  }
-};
-mxCellRenderer.prototype.redrawControl = function(a, b) {
-  if (null != a.control) {
-    var c = this.getControlBounds(a),
-      d = this.legacyControlPosition ? mxUtils.getValue(a.style, mxConstants.STYLE_ROTATION, 0) : a.shape.getTextRotation(),
-      e = a.view.scale;
-    if (b || a.control.scale != e || !a.control.bounds.equals(c) || a.control.rotation != d) a.control.rotation = d, a.control.bounds = c, a.control.scale = e, a.control.redraw()
-  }
-};
-mxCellRenderer.prototype.getControlBounds = function(a) {
-  if (null != a.control) {
-    var b = a.control.scale,
-      c = a.control.bounds.width / b,
-      b = a.control.bounds.height / b,
-      d = a.view.scale,
-      e = a.getCenterX(),
-      f = a.getCenterY();
-    if (!a.view.graph.getModel().isEdge(a.cell) && (e = a.x + c * d, f = a.y + b * d, null != a.shape)) {
-      var g = a.shape.getShapeRotation();
-      if (this.legacyControlPosition) g = mxUtils.getValue(a.style, mxConstants.STYLE_ROTATION, 0);
-      else if (a.shape.isPaintBoundsInverted()) var h = (a.width - a.height) / 2,
-        e = e + h,
-        f = f - h;
-      0 != g && (h = mxUtils.toRadians(g),
-        g = Math.cos(h), h = Math.sin(h), f = mxUtils.getRotatedPoint(new mxPoint(e, f), g, h, new mxPoint(a.getCenterX(), a.getCenterY())), e = f.x, f = f.y)
-    }
-    return a.view.graph.getModel().isEdge(a.cell), new mxRectangle(Math.round(e - c / 2 * d), Math.round(f - b / 2 * d), Math.round(c * d), Math.round(b * d))
-  }
-  return null
-};
-mxCellRenderer.prototype.redraw = function(a, b, c) {
-  if (null != a.shape) {
-    var d = !1;
-    a.view.graph.getModel().isEdge(a.cell);
-    reconfigure = null != b ? b : !1;
-    this.createControl(a);
-    if (a.orderChanged || a.invalidOrder) a.view.graph.ordered ? this.order(a) : this.orderEdge(a);
-    if (a.orderChanged || !mxUtils.equalEntries(a.shape.style, a.style)) this.configureShape(a), b = !0;
-    delete a.invalidOrder;
-    delete a.orderChanged;
-    if (b || null == a.shape.bounds || a.shape.scale != a.view.scale || !a.shape.bounds.equals(a) || !mxUtils.equalPoints(a.shape.points,
-        a.absolutePoints)) d = !0, a.shape.points = null != a.absolutePoints ? a.absolutePoints.slice() : null, a.shape.bounds = new mxRectangle(a.x, a.y, a.width, a.height), a.shape.scale = a.view
-      .scale, null == c || c ? a.shape.redraw() : a.shape.updateBoundingBox();
-    if (null == c || c) this.redrawLabel(a, d), this.redrawCellOverlays(a, d), this.redrawControl(a, d)
-  }
-};
-mxCellRenderer.prototype.destroy = function(a) {
-  null != a.shape && (null != a.text && (a.text.destroy(), a.text = null), null != a.overlays && (a.overlays.visit(function(a, c) {
-    c.destroy()
-  }), a.overlays = null), null != a.control && (a.control.destroy(), a.control = null), a.shape.destroy(), a.shape = null)
-};
-var mxEdgeStyle = {
-    EntityRelation: function(a, b, c, d, e) {
-      var f = a.view,
-        g = f.graph;
-      d = mxUtils.getValue(a.style, mxConstants.STYLE_SEGMENT, mxConstants.ENTITY_SEGMENT) * f.scale;
-      var h = a.absolutePoints,
-        k = h[0],
-        l = h[h.length - 1],
-        h = !1;
-      if (null != k) b = new mxCellState, b.x = k.x, b.y = k.y;
-      else if (null != b) {
-        var m = mxUtils.getPortConstraints(b, a, !0, mxConstants.DIRECTION_MASK_NONE);
-        m != mxConstants.DIRECTION_MASK_NONE ? h = m == mxConstants.DIRECTION_MASK_WEST : (k = g.getCellGeometry(b.cell), k.relative ? h = 0.5 >= k.x : null != c && (h = c.x + c.width < b.x))
-      } else return;
-      k = !0;
-      null != l ? (c = new mxCellState, c.x = l.x, c.y = l.y) : null != c && (m = mxUtils.getPortConstraints(c, a, !1, mxConstants.DIRECTION_MASK_NONE), m != mxConstants.DIRECTION_MASK_NONE ? k = m ==
-        mxConstants.DIRECTION_MASK_WEST : (a = g.getCellGeometry(c.cell), a.relative ? k = 0.5 >= a.x : null != b && (k = b.x + b.width < c.x)));
-      null != b && null != c && (a = h ? b.x : b.x + b.width, b = f.getRoutingCenterY(b), g = k ? c.x : c.x + c.width, c = f.getRoutingCenterY(c), f = new mxPoint(a + (h ? -d : d), b), l = new mxPoint(
-        g + (k ? -d : d), c), h == k ? (d = h ? Math.min(a, g) - d : Math.max(a, g) + d, e.push(new mxPoint(d,
-        b)), e.push(new mxPoint(d, c))) : (f.x < l.x == h ? (d = b + (c - b) / 2, e.push(f), e.push(new mxPoint(f.x, d)), e.push(new mxPoint(l.x, d))) : e.push(f), e.push(l)))
-    },
-    Loop: function(a, b, c, d, e) {
-      if (null != b) {
-        c = a.view;
-        var f = c.graph;
-        d = null != d && 0 < d.length ? d[0] : null;
-        null != d && (d = c.transformControlPoint(a, d), mxUtils.contains(b, d.x, d.y) && (d = null));
-        var g = 0,
-          h = 0,
-          k = 0,
-          l = 0,
-          f = mxUtils.getValue(a.style, mxConstants.STYLE_SEGMENT, f.gridSize) * c.scale;
-        a = mxUtils.getValue(a.style, mxConstants.STYLE_DIRECTION, mxConstants.DIRECTION_WEST);
-        a == mxConstants.DIRECTION_NORTH ||
-          a == mxConstants.DIRECTION_SOUTH ? (g = c.getRoutingCenterX(b), h = f) : (k = c.getRoutingCenterY(b), l = f);
-        null == d || d.x < b.x || d.x > b.x + b.width ? null != d ? (g = d.x, l = Math.max(Math.abs(k - d.y), l)) : a == mxConstants.DIRECTION_NORTH ? k = b.y - 2 * h : a == mxConstants.DIRECTION_SOUTH ?
-          k = b.y + b.height + 2 * h : g = a == mxConstants.DIRECTION_EAST ? b.x - 2 * l : b.x + b.width + 2 * l : null != d && (g = c.getRoutingCenterX(b), h = Math.max(Math.abs(g - d.x), l), k =
-            d.y, l = 0);
-        e.push(new mxPoint(g - h, k - l));
-        e.push(new mxPoint(g + h, k + l))
-      }
-    },
-    ElbowConnector: function(a, b, c, d, e) {
-      var f = null !=
-        d && 0 < d.length ? d[0] : null,
-        g = !1,
-        h = !1;
-      if (null != b && null != c)
-        if (null != f) var k = Math.min(b.x, c.x),
-          l = Math.max(b.x + b.width, c.x + c.width),
-          h = Math.min(b.y, c.y),
-          m = Math.max(b.y + b.height, c.y + c.height),
-          f = a.view.transformControlPoint(a, f),
-          g = f.y < h || f.y > m,
-          h = f.x < k || f.x > l;
-        else k = Math.max(b.x, c.x), l = Math.min(b.x + b.width, c.x + c.width), g = k == l, g || (h = Math.max(b.y, c.y), m = Math.min(b.y + b.height, c.y + c.height), h = h == m);
-        !h && (g || a.style[mxConstants.STYLE_ELBOW] == mxConstants.ELBOW_VERTICAL) ? mxEdgeStyle.TopToBottom(a, b, c, d, e) : mxEdgeStyle.SideToSide(a,
-        b, c, d, e)
-    },
-    SideToSide: function(a, b, c, d, e) {
-      var f = a.view;
-      d = null != d && 0 < d.length ? d[0] : null;
-      var g = a.absolutePoints,
-        h = g[0],
-        g = g[g.length - 1];
-      null != d && (d = f.transformControlPoint(a, d));
-      null != h && (b = new mxCellState, b.x = h.x, b.y = h.y);
-      null != g && (c = new mxCellState, c.x = g.x, c.y = g.y);
-      null != b && null != c && (a = Math.max(b.x, c.x), h = Math.min(b.x + b.width, c.x + c.width), a = null != d ? d.x : h + (a - h) / 2, h = f.getRoutingCenterY(b), f = f.getRoutingCenterY(c),
-        null != d && (d.y >= b.y && d.y <= b.y + b.height && (h = d.y), d.y >= c.y && d.y <= c.y + c.height && (f = d.y)), !mxUtils.contains(c,
-          a, h) && !mxUtils.contains(b, a, h) && e.push(new mxPoint(a, h)), !mxUtils.contains(c, a, f) && !mxUtils.contains(b, a, f) && e.push(new mxPoint(a, f)), 1 == e.length && (null != d ? !
-          mxUtils.contains(c, a, d.y) && !mxUtils.contains(b, a, d.y) && e.push(new mxPoint(a, d.y)) : (f = Math.max(b.y, c.y), b = Math.min(b.y + b.height, c.y + c.height), e.push(new mxPoint(a,
-            f + (b - f) / 2)))))
-    },
-    TopToBottom: function(a, b, c, d, e) {
-      var f = a.view;
-      d = null != d && 0 < d.length ? d[0] : null;
-      var g = a.absolutePoints,
-        h = g[0],
-        g = g[g.length - 1];
-      null != d && (d = f.transformControlPoint(a, d));
-      null !=
-        h && (b = new mxCellState, b.x = h.x, b.y = h.y);
-      null != g && (c = new mxCellState, c.x = g.x, c.y = g.y);
-      null != b && null != c && (h = Math.max(b.y, c.y), g = Math.min(b.y + b.height, c.y + c.height), a = f.getRoutingCenterX(b), null != d && (d.x >= b.x && d.x <= b.x + b.width) && (a = d.x), h =
-        null != d ? d.y : g + (h - g) / 2, !mxUtils.contains(c, a, h) && !mxUtils.contains(b, a, h) && e.push(new mxPoint(a, h)), a = null != d && d.x >= c.x && d.x <= c.x + c.width ? d.x : f.getRoutingCenterX(
-          c), !mxUtils.contains(c, a, h) && !mxUtils.contains(b, a, h) && e.push(new mxPoint(a, h)), 1 == e.length && (null != d && 1 ==
-          e.length ? !mxUtils.contains(c, d.x, h) && !mxUtils.contains(b, d.x, h) && e.push(new mxPoint(d.x, h)) : (f = Math.max(b.x, c.x), b = Math.min(b.x + b.width, c.x + c.width), e.push(new mxPoint(
-            f + (b - f) / 2, h)))))
-    },
-    SegmentConnector: function(a, b, c, d, e) {
-      var f = a.absolutePoints,
-        g = !0,
-        h = null,
-        k = f[0];
-      null == k && null != b ? k = new mxPoint(a.view.getRoutingCenterX(b), a.view.getRoutingCenterY(b)) : null != k && (k = k.clone());
-      var l = f.length - 1;
-      if (null != d && 0 < d.length) {
-        for (var h = a.view.transformControlPoint(a, d[0]), m = b, n = f[0], p = !1, q = !1, p = h, s = d.length, r =
-            0; 2 > r; r++) {
-          var t = null != n && n.x == p.x,
-            v = null != n && n.y == p.y,
-            w = null != m && p.y >= m.y && p.y <= m.y + m.height,
-            m = null != m && p.x >= m.x && p.x <= m.x + m.width,
-            p = v || null == n && w,
-            q = t || null == n && m;
-          if (null != n && !v && !t && (w || m)) {
-            g = w ? !1 : !0;
-            break
-          }
-          if (q || p) {
-            g = p;
-            1 == r && (g = 0 == d.length % 2 ? p : q);
-            break
-          }
-          m = c;
-          n = f[l];
-          p = a.view.transformControlPoint(a, d[s - 1])
-        }
-        g && (null != f[0] && f[0].y != h.y || null == f[0] && null != b && (h.y < b.y || h.y > b.y + b.height)) ? e.push(new mxPoint(k.x, h.y)) : !g && (null != f[0] && f[0].x != h.x || null == f[
-          0] && null != b && (h.x < b.x || h.x > b.x + b.width)) && e.push(new mxPoint(h.x,
-          k.y));
-        g ? k.y = h.y : k.x = h.x;
-        for (r = 0; r < d.length; r++) g = !g, h = a.view.transformControlPoint(a, d[r]), g ? k.y = h.y : k.x = h.x, e.push(k.clone())
-      } else h = k, g = !0;
-      k = f[l];
-      null == k && null != c && (k = new mxPoint(a.view.getRoutingCenterX(c), a.view.getRoutingCenterY(c)));
-      g && (null != f[l] && f[l].y != h.y || null == f[l] && null != c && (h.y < c.y || h.y > c.y + c.height)) ? e.push(new mxPoint(k.x, h.y)) : !g && (null != f[l] && f[l].x != h.x || null == f[l] &&
-        null != c && (h.x < c.x || h.x > c.x + c.width)) && e.push(new mxPoint(h.x, k.y));
-      if (null == f[0] && null != b)
-        for (; 1 < e.length && mxUtils.contains(b,
-            e[1].x, e[1].y);) e = e.splice(1, 1);
-      if (null == f[l] && null != c)
-        for (; 1 < e.length && mxUtils.contains(c, e[e.length - 1].x, e[e.length - 1].y);) e = e.splice(e.length - 1, 1)
-    },
-    orthBuffer: 10,
-    dirVectors: [
-      [-1, 0],
-      [0, -1],
-      [1, 0],
-      [0, 1],
-      [-1, 0],
-      [0, -1],
-      [1, 0]
-    ],
-    wayPoints1: [
-      [0, 0],
-      [0, 0],
-      [0, 0],
-      [0, 0],
-      [0, 0],
-      [0, 0],
-      [0, 0],
-      [0, 0],
-      [0, 0],
-      [0, 0],
-      [0, 0],
-      [0, 0]
-    ],
-    routePatterns: [
-      [
-        [513, 2308, 2081, 2562],
-        [513, 1090, 514, 2184, 2114, 2561],
-        [513, 1090, 514, 2564, 2184, 2562],
-        [513, 2308, 2561, 1090, 514, 2568, 2308]
-      ],
-      [
-        [514, 1057, 513, 2308, 2081, 2562],
-        [514, 2184, 2114, 2561],
-        [514, 2184,
-          2562, 1057, 513, 2564, 2184
-        ],
-        [514, 1057, 513, 2568, 2308, 2561]
-      ],
-      [
-        [1090, 514, 1057, 513, 2308, 2081, 2562],
-        [2114, 2561],
-        [1090, 2562, 1057, 513, 2564, 2184],
-        [1090, 514, 1057, 513, 2308, 2561, 2568]
-      ],
-      [
-        [2081, 2562],
-        [1057, 513, 1090, 514, 2184, 2114, 2561],
-        [1057, 513, 1090, 514, 2184, 2562, 2564],
-        [1057, 2561, 1090, 514, 2568, 2308]
-      ]
-    ],
-    inlineRoutePatterns: [
-      [null, [2114, 2568], null, null],
-      [null, [514, 2081, 2114, 2568], null, null],
-      [null, [2114, 2561], null, null],
-      [
-        [2081, 2562],
-        [1057, 2114, 2568],
-        [2184, 2562], null
-      ]
-    ],
-    vertexSeperations: [],
-    limits: [
-      [0, 0, 0, 0, 0, 0, 0, 0, 0],
-      [0, 0, 0, 0, 0, 0, 0, 0, 0]
-    ],
-    LEFT_MASK: 32,
-    TOP_MASK: 64,
-    RIGHT_MASK: 128,
-    BOTTOM_MASK: 256,
-    LEFT: 1,
-    TOP: 2,
-    RIGHT: 4,
-    BOTTOM: 8,
-    SIDE_MASK: 480,
-    CENTER_MASK: 512,
-    SOURCE_MASK: 1024,
-    TARGET_MASK: 2048,
-    VERTEX_MASK: 3072,
-    OrthConnector: function(a, b, c, d, e) {
-      var f = a.view.graph,
-        g = null == b ? !1 : f.getModel().isEdge(b.cell),
-        f = null == c ? !1 : f.getModel().isEdge(c.cell);
-      if (null != d && 0 < d.length || g || f) mxEdgeStyle.SegmentConnector(a, b, c, d, e);
-      else {
-        d = a.absolutePoints;
-        var h = d[0],
-          k = d[d.length - 1];
-        d = null != b ? b.x : h.x;
-        var g = null != b ? b.y : h.y,
-          l = null != b ? b.width :
-          1,
-          m = null != b ? b.height : 1,
-          n = null != c ? c.x : k.x,
-          p = null != c ? c.y : k.y,
-          q = null != c ? c.width : 1,
-          s = null != c ? c.height : 1,
-          f = a.view.scale * mxEdgeStyle.orthBuffer,
-          r = [mxConstants.DIRECTION_MASK_ALL, mxConstants.DIRECTION_MASK_ALL];
-        null != b && (r[0] = mxUtils.getPortConstraints(b, a, !0, mxConstants.DIRECTION_MASK_ALL));
-        null != c && (r[1] = mxUtils.getPortConstraints(c, a, !1, mxConstants.DIRECTION_MASK_ALL));
-        a = [0, 0];
-        d = [
-          [d, g, l, m],
-          [n, p, q, s]
-        ];
-        for (l = 0; 2 > l; l++) mxEdgeStyle.limits[l][1] = d[l][0] - f, mxEdgeStyle.limits[l][2] = d[l][1] - f, mxEdgeStyle.limits[l][4] =
-          d[l][0] + d[l][2] + f, mxEdgeStyle.limits[l][8] = d[l][1] + d[l][3] + f;
-        l = d[0][0] + d[0][2] / 2 - (d[1][0] + d[1][2] / 2);
-        m = d[0][1] + d[0][3] / 2 - (d[1][1] + d[1][3] / 2);
-        g = 0;
-        0 > l ? g = 0 > m ? 2 : 1 : 0 >= m && (g = 3, 0 == l && (g = 2));
-        m = null;
-        null != b && (m = h);
-        b = [
-          [0.5, 0.5],
-          [0.5, 0.5]
-        ];
-        for (l = 0; 2 > l; l++) null != m && (b[l][0] = (m.x - d[l][0]) / d[l][2], 0.01 > b[l][0] ? a[l] = mxConstants.DIRECTION_MASK_WEST : 0.99 < b[l][0] && (a[l] = mxConstants.DIRECTION_MASK_EAST),
-            b[l][1] = (m.y - d[l][1]) / d[l][3], 0.01 > b[l][1] ? a[l] = mxConstants.DIRECTION_MASK_NORTH : 0.99 < b[l][1] && (a[l] = mxConstants.DIRECTION_MASK_SOUTH)),
-          m = null, null != c && (m = k);
-        l = d[0][1] - (d[1][1] + d[1][3]);
-        m = d[0][0] - (d[1][0] + d[1][2]);
-        n = d[1][1] - (d[0][1] + d[0][3]);
-        p = d[1][0] - (d[0][0] + d[0][2]);
-        mxEdgeStyle.vertexSeperations[1] = Math.max(m - 2 * f, 0);
-        mxEdgeStyle.vertexSeperations[2] = Math.max(l - 2 * f, 0);
-        mxEdgeStyle.vertexSeperations[4] = Math.max(n - 2 * f, 0);
-        mxEdgeStyle.vertexSeperations[3] = Math.max(p - 2 * f, 0);
-        c = [];
-        h = [];
-        k = [];
-        h[0] = m >= p ? mxConstants.DIRECTION_MASK_WEST : mxConstants.DIRECTION_MASK_EAST;
-        k[0] = l >= n ? mxConstants.DIRECTION_MASK_NORTH : mxConstants.DIRECTION_MASK_SOUTH;
-        h[1] = mxUtils.reversePortConstraints(h[0]);
-        k[1] = mxUtils.reversePortConstraints(k[0]);
-        m = m >= p ? m : p;
-        n = l >= n ? l : n;
-        p = [
-          [0, 0],
-          [0, 0]
-        ];
-        q = !1;
-        for (l = 0; 2 > l; l++) 0 == a[l] && (0 == (h[l] & r[l]) && (h[l] = mxUtils.reversePortConstraints(h[l])), 0 == (k[l] & r[l]) && (k[l] = mxUtils.reversePortConstraints(k[l])), p[l][0] = k[l],
-          p[l][1] = h[l]);
-        n > 2 * f && m > 2 * f && (0 < (h[0] & r[0]) && 0 < (k[1] & r[1]) ? (p[0][0] = h[0], p[0][1] = k[0], p[1][0] = k[1], p[1][1] = h[1], q = !0) : 0 < (k[0] & r[0]) && 0 < (h[1] & r[1]) && (p[0]
-          [0] = k[0], p[0][1] = h[0], p[1][0] = h[1], p[1][1] = k[1], q = !0));
-        n > 2 * f && !q &&
-          (p[0][0] = k[0], p[0][1] = h[0], p[1][0] = k[1], p[1][1] = h[1], q = !0);
-        m > 2 * f && !q && (p[0][0] = h[0], p[0][1] = k[0], p[1][0] = h[1], p[1][1] = k[1]);
-        for (l = 0; 2 > l; l++)
-          if (0 == a[l] && (0 == (p[l][0] & r[l]) && (p[l][0] = p[l][1]), c[l] = p[l][0] & r[l], c[l] |= (p[l][1] & r[l]) << 8, c[l] |= (p[1 - l][l] & r[l]) << 16, c[l] |= (p[1 - l][1 - l] & r[l]) <<
-              24, 0 == (c[l] & 15) && (c[l] <<= 8), 0 == (c[l] & 3840) && (c[l] = c[l] & 15 | c[l] >> 8), 0 == (c[l] & 983040) && (c[l] = c[l] & 65535 | (c[l] & 251658240) >> 8), a[l] = c[l] & 15,
-              r[l] == mxConstants.DIRECTION_MASK_WEST || r[l] == mxConstants.DIRECTION_MASK_NORTH || r[l] ==
-              mxConstants.DIRECTION_MASK_EAST || r[l] == mxConstants.DIRECTION_MASK_SOUTH)) a[l] = r[l];
-        l = a[0] == mxConstants.DIRECTION_MASK_EAST ? 3 : a[0];
-        r = a[1] == mxConstants.DIRECTION_MASK_EAST ? 3 : a[1];
-        l -= g;
-        r -= g;
-        1 > l && (l += 4);
-        1 > r && (r += 4);
-        r = mxEdgeStyle.routePatterns[l - 1][r - 1];
-        mxEdgeStyle.wayPoints1[0][0] = d[0][0];
-        mxEdgeStyle.wayPoints1[0][1] = d[0][1];
-        switch (a[0]) {
-          case mxConstants.DIRECTION_MASK_WEST:
-            mxEdgeStyle.wayPoints1[0][0] -= f;
-            mxEdgeStyle.wayPoints1[0][1] += b[0][1] * d[0][3];
-            break;
-          case mxConstants.DIRECTION_MASK_SOUTH:
-            mxEdgeStyle.wayPoints1[0][0] +=
-              b[0][0] * d[0][2];
-            mxEdgeStyle.wayPoints1[0][1] += d[0][3] + f;
-            break;
-          case mxConstants.DIRECTION_MASK_EAST:
-            mxEdgeStyle.wayPoints1[0][0] += d[0][2] + f;
-            mxEdgeStyle.wayPoints1[0][1] += b[0][1] * d[0][3];
-            break;
-          case mxConstants.DIRECTION_MASK_NORTH:
-            mxEdgeStyle.wayPoints1[0][0] += b[0][0] * d[0][2], mxEdgeStyle.wayPoints1[0][1] -= f
-        }
-        f = 0;
-        h = c = 0 < (a[0] & (mxConstants.DIRECTION_MASK_EAST | mxConstants.DIRECTION_MASK_WEST)) ? 0 : 1;
-        for (l = k = 0; l < r.length; l++) {
-          k = r[l] & 15;
-          s = k == mxConstants.DIRECTION_MASK_EAST ? 3 : k;
-          s += g;
-          4 < s && (s -= 4);
-          m = mxEdgeStyle.dirVectors[s -
-            1];
-          k = 0 < s % 2 ? 0 : 1;
-          k != c && (f++, mxEdgeStyle.wayPoints1[f][0] = mxEdgeStyle.wayPoints1[f - 1][0], mxEdgeStyle.wayPoints1[f][1] = mxEdgeStyle.wayPoints1[f - 1][1]);
-          var t = 0 < (r[l] & mxEdgeStyle.TARGET_MASK),
-            q = 0 < (r[l] & mxEdgeStyle.SOURCE_MASK),
-            n = (r[l] & mxEdgeStyle.SIDE_MASK) >> 5,
-            n = n << g;
-          15 < n && (n >>= 4);
-          p = 0 < (r[l] & mxEdgeStyle.CENTER_MASK);
-          (q || t) && 9 > n ? (s = 0, q = q ? 0 : 1, s = p && 0 == k ? d[q][0] + b[q][0] * d[q][2] : p ? d[q][1] + b[q][1] * d[q][3] : mxEdgeStyle.limits[q][n], 0 == k ? (n = (s - mxEdgeStyle.wayPoints1[
-            f][0]) * m[0], 0 < n && (mxEdgeStyle.wayPoints1[f][0] +=
-            m[0] * n)) : (n = (s - mxEdgeStyle.wayPoints1[f][1]) * m[1], 0 < n && (mxEdgeStyle.wayPoints1[f][1] += m[1] * n))) : p && (mxEdgeStyle.wayPoints1[f][0] += m[0] * Math.abs(mxEdgeStyle.vertexSeperations[
-            s] / 2), mxEdgeStyle.wayPoints1[f][1] += m[1] * Math.abs(mxEdgeStyle.vertexSeperations[s] / 2));
-          0 < f && mxEdgeStyle.wayPoints1[f][k] == mxEdgeStyle.wayPoints1[f - 1][k] ? f-- : c = k
-        }
-        for (l = 0; l <= f && !(l == f && ((0 < (a[1] & (mxConstants.DIRECTION_MASK_EAST | mxConstants.DIRECTION_MASK_WEST)) ? 0 : 1) == h ? 0 : 1) != (f + 1) % 2); l++) e.push(new mxPoint(
-          mxEdgeStyle.wayPoints1[l][0],
-          mxEdgeStyle.wayPoints1[l][1]))
-      }
-    },
-    getRoutePattern: function(a, b, c, d) {
-      var e = a[0] == mxConstants.DIRECTION_MASK_EAST ? 3 : a[0];
-      a = a[1] == mxConstants.DIRECTION_MASK_EAST ? 3 : a[1];
-      e -= b;
-      a -= b;
-      1 > e && (e += 4);
-      1 > a && (a += 4);
-      b = routePatterns[e - 1][a - 1];
-      if (0 == c || 0 == d) null != inlineRoutePatterns[e - 1][a - 1] && (b = inlineRoutePatterns[e - 1][a - 1]);
-      return b
-    }
-  },
-  mxStyleRegistry = {
-    values: [],
-    putValue: function(a, b) {
-      mxStyleRegistry.values[a] = b
-    },
-    getValue: function(a) {
-      return mxStyleRegistry.values[a]
-    },
-    getName: function(a) {
-      for (var b in mxStyleRegistry.values)
-        if (mxStyleRegistry.values[b] ==
-          a) return b;
-      return null
-    }
-  };
-mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW, mxEdgeStyle.ElbowConnector);
-mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION, mxEdgeStyle.EntityRelation);
-mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP, mxEdgeStyle.Loop);
-mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE, mxEdgeStyle.SideToSide);
-mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM, mxEdgeStyle.TopToBottom);
-mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL, mxEdgeStyle.OrthConnector);
-mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT, mxEdgeStyle.SegmentConnector);
-mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE, mxPerimeter.EllipsePerimeter);
-mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE, mxPerimeter.RectanglePerimeter);
-mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS, mxPerimeter.RhombusPerimeter);
-mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE, mxPerimeter.TrianglePerimeter);
-
-function mxGraphView(a) {
-  this.graph = a;
-  this.translate = new mxPoint;
-  this.graphBounds = new mxRectangle;
-  this.states = new mxDictionary
-}
-mxGraphView.prototype = new mxEventSource;
-mxGraphView.prototype.constructor = mxGraphView;
-mxGraphView.prototype.EMPTY_POINT = new mxPoint;
-mxGraphView.prototype.doneResource = "none" != mxClient.language ? "done" : "";
-mxGraphView.prototype.updatingDocumentResource = "none" != mxClient.language ? "updatingDocument" : "";
-mxGraphView.prototype.allowEval = !1;
-mxGraphView.prototype.captureDocumentGesture = !0;
-mxGraphView.prototype.optimizeVmlReflows = !0;
-mxGraphView.prototype.rendering = !0;
-mxGraphView.prototype.graph = null;
-mxGraphView.prototype.currentRoot = null;
-mxGraphView.prototype.graphBounds = null;
-mxGraphView.prototype.scale = 1;
-mxGraphView.prototype.translate = null;
-mxGraphView.prototype.updateStyle = !1;
-mxGraphView.prototype.getGraphBounds = function() {
-  return this.graphBounds
-};
-mxGraphView.prototype.setGraphBounds = function(a) {
-  this.graphBounds = a
-};
-mxGraphView.prototype.getBounds = function(a) {
-  var b = null;
-  if (null != a && 0 < a.length)
-    for (var c = this.graph.getModel(), d = 0; d < a.length; d++)
-      if (c.isVertex(a[d]) || c.isEdge(a[d])) {
-        var e = this.getState(a[d]);
-        null != e && (null == b ? b = new mxRectangle(e.x, e.y, e.width, e.height) : b.add(e))
-      }
-  return b
-};
-mxGraphView.prototype.setCurrentRoot = function(a) {
-  if (this.currentRoot != a) {
-    var b = new mxCurrentRootChange(this, a);
-    b.execute();
-    var c = new mxUndoableEdit(this, !1);
-    c.add(b);
-    this.fireEvent(new mxEventObject(mxEvent.UNDO, "edit", c));
-    this.graph.sizeDidChange()
-  }
-  return a
-};
-mxGraphView.prototype.scaleAndTranslate = function(a, b, c) {
-  var d = this.scale,
-    e = new mxPoint(this.translate.x, this.translate.y);
-  if (this.scale != a || this.translate.x != b || this.translate.y != c) this.scale = a, this.translate.x = b, this.translate.y = c, this.isEventsEnabled() && (this.revalidate(), this.graph.sizeDidChange());
-  this.fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE, "scale", a, "previousScale", d, "translate", this.translate, "previousTranslate", e))
-};
-mxGraphView.prototype.getScale = function() {
-  return this.scale
-};
-mxGraphView.prototype.setScale = function(a) {
-  var b = this.scale;
-  this.scale != a && (this.scale = a, this.isEventsEnabled() && (this.revalidate(), this.graph.sizeDidChange()));
-  this.fireEvent(new mxEventObject(mxEvent.SCALE, "scale", a, "previousScale", b))
-};
-mxGraphView.prototype.getTranslate = function() {
-  return this.translate
-};
-mxGraphView.prototype.setTranslate = function(a, b) {
-  var c = new mxPoint(this.translate.x, this.translate.y);
-  if (this.translate.x != a || this.translate.y != b) this.translate.x = a, this.translate.y = b, this.isEventsEnabled() && (this.revalidate(), this.graph.sizeDidChange());
-  this.fireEvent(new mxEventObject(mxEvent.TRANSLATE, "translate", this.translate, "previousTranslate", c))
-};
-mxGraphView.prototype.refresh = function() {
-  null != this.currentRoot && this.clear();
-  this.revalidate()
-};
-mxGraphView.prototype.revalidate = function() {
-  this.invalidate();
-  this.validate()
-};
-mxGraphView.prototype.clear = function(a, b, c) {
-  var d = this.graph.getModel();
-  a = a || d.getRoot();
-  b = null != b ? b : !1;
-  c = null != c ? c : !0;
-  this.removeState(a);
-  if (c && (b || a != this.currentRoot)) {
-    c = d.getChildCount(a);
-    for (var e = 0; e < c; e++) this.clear(d.getChildAt(a, e), b)
-  } else this.invalidate(a)
-};
-mxGraphView.prototype.invalidate = function(a, b, c, d) {
-  var e = this.graph.getModel();
-  a = a || e.getRoot();
-  b = null != b ? b : !0;
-  c = null != c ? c : !0;
-  d = null != d ? d : !1;
-  var f = this.getState(a);
-  null != f && (f.invalid = !0, d && (f.orderChanged = !0));
-  if (b)
-    for (var g = e.getChildCount(a), f = 0; f < g; f++) {
-      var h = e.getChildAt(a, f);
-      this.invalidate(h, b, c, d)
-    }
-  if (c) {
-    d = e.getEdgeCount(a);
-    for (f = 0; f < d; f++) this.invalidate(e.getEdgeAt(a, f), b, c)
-  }
-};
-mxGraphView.prototype.validate = function(a) {
-  var b = mxLog.enter("mxGraphView.validate");
-  window.status = mxResources.get(this.updatingDocumentResource) || this.updatingDocumentResource;
-  var c = null;
-  if (this.optimizeVmlReflows && null != this.canvas && null == this.textDiv && (8 == document.documentMode || mxClient.IS_QUIRKS)) {
-    c = this.canvas.style.display;
-    this.canvas.style.display = "none";
-    var d = document.createElement("div");
-    d.style.position = "absolute";
-    d.style.whiteSpace = "nowrap";
-    d.style.visibility = "hidden";
-    d.style.display = mxClient.IS_QUIRKS ?
-      "inline" : "inline-block";
-    d.style.zoom = "1";
-    document.body.appendChild(d);
-    this.textDiv = d
-  }
-  a = a || (null != this.currentRoot ? this.currentRoot : this.graph.getModel().getRoot());
-  this.validateBounds(null, a);
-  a = this.validatePoints(null, a);
-  null == a && (a = new mxRectangle);
-  this.setGraphBounds(a);
-  this.validateBackground();
-  null != c && (this.canvas.style.display = c, document.body.removeChild(this.textDiv), this.textDiv = null);
-  window.status = mxResources.get(this.doneResource) || this.doneResource;
-  mxLog.leave("mxGraphView.validate", b)
-};
-mxGraphView.prototype.createBackgroundPageShape = function(a) {
-  return new mxRectangleShape(a, "white", "black")
-};
-mxGraphView.prototype.validateBackground = function() {
-  var a = this.graph.getBackgroundImage();
-  if (null != a) {
-    if (null == this.backgroundImage || this.backgroundImage.image != a.src) {
-      null != this.backgroundImage && this.backgroundImage.destroy();
-      var b = new mxRectangle(0, 0, 1, 1);
-      this.backgroundImage = new mxImageShape(b, a.src);
-      this.backgroundImage.dialect = this.graph.dialect;
-      this.backgroundImage.init(this.backgroundPane);
-      this.backgroundImage.redraw()
-    }
-    this.redrawBackgroundImage(this.backgroundImage, a)
-  } else null != this.backgroundImage &&
-    (this.backgroundImage.destroy(), this.backgroundImage = null);
-  this.graph.pageVisible ? (b = this.getBackgroundPageBounds(), null == this.backgroundPageShape ? (this.backgroundPageShape = this.createBackgroundPageShape(b), this.backgroundPageShape.scale =
-    this.scale, this.backgroundPageShape.isShadow = !0, this.backgroundPageShape.dialect = this.graph.dialect, this.backgroundPageShape.init(this.backgroundPane), this.backgroundPageShape.redraw(),
-    mxEvent.addListener(this.backgroundPageShape.node, "dblclick", mxUtils.bind(this,
-      function(a) {
-        this.graph.dblClick(a)
-      })), mxEvent.addGestureListeners(this.backgroundPageShape.node, mxUtils.bind(this, function(a) {
-      this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(a))
-    }), mxUtils.bind(this, function(a) {
-      null != this.graph.tooltipHandler && this.graph.tooltipHandler.isHideOnHover() && this.graph.tooltipHandler.hide();
-      this.graph.isMouseDown && !mxEvent.isConsumed(a) && this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE, new mxMouseEvent(a))
-    }), mxUtils.bind(this, function(a) {
-      this.graph.fireMouseEvent(mxEvent.MOUSE_UP,
-        new mxMouseEvent(a))
-    }))) : (this.backgroundPageShape.scale = this.scale, this.backgroundPageShape.bounds = b, this.backgroundPageShape.redraw())) : null != this.backgroundPageShape && (this.backgroundPageShape.destroy(),
-    this.backgroundPageShape = null)
-};
-mxGraphView.prototype.getBackgroundPageBounds = function() {
-  var a = this.graph.pageFormat,
-    b = this.scale * this.graph.pageScale;
-  return new mxRectangle(this.scale * this.translate.x, this.scale * this.translate.y, a.width * b, a.height * b)
-};
-mxGraphView.prototype.redrawBackgroundImage = function(a, b) {
-  a.scale = this.scale;
-  a.bounds.x = this.scale * this.translate.x;
-  a.bounds.y = this.scale * this.translate.y;
-  a.bounds.width = this.scale * b.width;
-  a.bounds.height = this.scale * b.height;
-  a.redraw()
-};
-mxGraphView.prototype.validateBounds = function(a, b) {
-  var c = this.graph.getModel(),
-    d = this.getState(b, !0);
-  if (null != d && d.invalid) {
-    if (this.graph.isCellVisible(b)) {
-      if (b != this.currentRoot && null != a) {
-        d.absoluteOffset.x = 0;
-        d.absoluteOffset.y = 0;
-        d.origin.x = a.origin.x;
-        d.origin.y = a.origin.y;
-        var e = this.graph.getCellGeometry(b);
-        if (null != e) {
-          if (!c.isEdge(b)) {
-            var f = e.offset || this.EMPTY_POINT;
-            e.relative ? (d.origin.x += e.x * a.width / this.scale + f.x, d.origin.y += e.y * a.height / this.scale + f.y) : (d.absoluteOffset.x = this.scale * f.x, d.absoluteOffset.y =
-              this.scale * f.y, d.origin.x += e.x, d.origin.y += e.y)
-          }
-          d.x = this.scale * (this.translate.x + d.origin.x);
-          d.y = this.scale * (this.translate.y + d.origin.y);
-          d.width = this.scale * e.width;
-          d.height = this.scale * e.height;
-          if (c.isVertex(b)) {
-            if (e.relative && (f = mxUtils.toRadians(a.style[mxConstants.STYLE_ROTATION] || "0"), 0 != f)) {
-              var e = Math.cos(f),
-                f = Math.sin(f),
-                g = new mxPoint(d.getCenterX(), d.getCenterY()),
-                h = new mxPoint(a.getCenterX(), a.getCenterY()),
-                e = mxUtils.getRotatedPoint(g, e, f, h);
-              d.x = e.x - d.width / 2;
-              d.y = e.y - d.height / 2
-            }
-            this.updateVertexLabelOffset(d)
-          }
-        }
-      }
-    } else this.removeState(b);
-    f = this.graph.getChildOffsetForCell(b);
-    null != f && (d.origin.x += f.x, d.origin.y += f.y)
-  }
-  if (null != d && (!this.graph.isCellCollapsed(b) || b == this.currentRoot)) {
-    e = c.getChildCount(b);
-    for (f = 0; f < e; f++) g = c.getChildAt(b, f), this.validateBounds(d, g)
-  }
-};
-mxGraphView.prototype.updateVertexLabelOffset = function(a) {
-  var b = mxUtils.getValue(a.style, mxConstants.STYLE_LABEL_POSITION, mxConstants.ALIGN_CENTER);
-  b == mxConstants.ALIGN_LEFT ? a.absoluteOffset.x -= a.width : b == mxConstants.ALIGN_RIGHT && (a.absoluteOffset.x += a.width);
-  b = mxUtils.getValue(a.style, mxConstants.STYLE_VERTICAL_LABEL_POSITION, mxConstants.ALIGN_MIDDLE);
-  b == mxConstants.ALIGN_TOP ? a.absoluteOffset.y -= a.height : b == mxConstants.ALIGN_BOTTOM && (a.absoluteOffset.y += a.height)
-};
-mxGraphView.prototype.validatePoints = function(a, b) {
-  var c = this.graph.getModel(),
-    d = this.getState(b),
-    e = null;
-  if (null != d) {
-    if (d.invalid) {
-      var f = this.graph.getCellGeometry(b);
-      if (null != f && c.isEdge(b)) {
-        var g = this.getState(this.getVisibleTerminal(b, !0));
-        d.setVisibleTerminalState(g, !0);
-        if (null != g && c.isEdge(g.cell) && !c.isAncestor(g.cell, b)) {
-          var h = this.getState(c.getParent(g.cell));
-          this.validatePoints(h, g.cell)
-        }
-        var k = this.getState(this.getVisibleTerminal(b, !1));
-        d.setVisibleTerminalState(k, !1);
-        null != k && (c.isEdge(k.cell) &&
-          !c.isAncestor(k.cell, b)) && (h = this.getState(c.getParent(k.cell)), this.validatePoints(h, k.cell));
-        this.updateFixedTerminalPoints(d, g, k);
-        this.updatePoints(d, f.points, g, k);
-        this.updateFloatingTerminalPoints(d, g, k);
-        this.updateEdgeBounds(d);
-        this.updateEdgeLabelOffset(d)
-      } else null != f && (f.relative && null != a && c.isEdge(a.cell)) && (f = this.getPoint(a, f), null != f && (d.x = f.x, d.y = f.y, f.x = f.x / this.scale - this.translate.x, f.y = f.y / this.scale -
-        this.translate.y, d.origin = f, this.childMoved(a, d)));
-      d.invalid = !1;
-      b != this.currentRoot &&
-        this.graph.cellRenderer.redraw(d, !1, this.isRendering())
-    }
-    if (c.isEdge(b) || c.isVertex(b)) null != d.shape && null != d.shape.boundingBox && (e = d.shape.boundingBox.clone()), null != d.text && !this.graph.isLabelClipped(d.cell) && null != d.text.boundingBox &&
-      (null != e ? e.add(d.text.boundingBox) : e = d.text.boundingBox.clone())
-  }
-  if (null != d && (!this.graph.isCellCollapsed(b) || b == this.currentRoot)) {
-    f = c.getChildCount(b);
-    for (g = 0; g < f; g++) h = c.getChildAt(b, g), h = this.validatePoints(d, h), null != h && (null == e ? e = h : e.add(h))
-  }
-  return e
-};
-mxGraphView.prototype.childMoved = function(a, b) {
-  var c = b.cell;
-  if (!this.graph.isCellCollapsed(c) || c == this.currentRoot)
-    for (var d = this.graph.getModel(), e = d.getChildCount(c), f = 0; f < e; f++) this.validateBounds(b, d.getChildAt(c, f))
-};
-mxGraphView.prototype.updateFixedTerminalPoints = function(a, b, c) {
-  this.updateFixedTerminalPoint(a, b, !0, this.graph.getConnectionConstraint(a, b, !0));
-  this.updateFixedTerminalPoint(a, c, !1, this.graph.getConnectionConstraint(a, c, !1))
-};
-mxGraphView.prototype.updateFixedTerminalPoint = function(a, b, c, d) {
-  var e = null;
-  null != d && (e = this.graph.getConnectionPoint(b, d));
-  if (null == e && null == b) {
-    b = this.scale;
-    d = this.translate;
-    var f = a.origin,
-      e = this.graph.getCellGeometry(a.cell).getTerminalPoint(c);
-    null != e && (e = new mxPoint(b * (d.x + e.x + f.x), b * (d.y + e.y + f.y)))
-  }
-  a.setAbsoluteTerminalPoint(e, c)
-};
-mxGraphView.prototype.updatePoints = function(a, b, c, d) {
-  if (null != a) {
-    var e = [];
-    e.push(a.absolutePoints[0]);
-    var f = this.getEdgeStyle(a, b, c, d);
-    if (null != f) c = this.getTerminalPort(a, c, !0), d = this.getTerminalPort(a, d, !1), f(a, c, d, b, e);
-    else if (null != b)
-      for (f = 0; f < b.length; f++) null != b[f] && (d = mxUtils.clone(b[f]), e.push(this.transformControlPoint(a, d)));
-    b = a.absolutePoints;
-    e.push(b[b.length - 1]);
-    a.absolutePoints = e
-  }
-};
-mxGraphView.prototype.transformControlPoint = function(a, b) {
-  var c = a.origin;
-  return new mxPoint(this.scale * (b.x + this.translate.x + c.x), this.scale * (b.y + this.translate.y + c.y))
-};
-mxGraphView.prototype.getEdgeStyle = function(a, b, c, d) {
-  a = null != c && c == d ? mxUtils.getValue(a.style, mxConstants.STYLE_LOOP, this.graph.defaultLoopStyle) : !mxUtils.getValue(a.style, mxConstants.STYLE_NOEDGESTYLE, !1) ? a.style[mxConstants.STYLE_EDGE] :
-    null;
-  "string" == typeof a && (b = mxStyleRegistry.getValue(a), null == b && this.isAllowEval() && (b = mxUtils.eval(a)), a = b);
-  return "function" == typeof a ? a : null
-};
-mxGraphView.prototype.updateFloatingTerminalPoints = function(a, b, c) {
-  var d = a.absolutePoints,
-    e = d[0];
-  null == d[d.length - 1] && null != c && this.updateFloatingTerminalPoint(a, c, b, !1);
-  null == e && null != b && this.updateFloatingTerminalPoint(a, b, c, !0)
-};
-mxGraphView.prototype.updateFloatingTerminalPoint = function(a, b, c, d) {
-  b = this.getTerminalPort(a, b, d);
-  var e = this.getNextPoint(a, c, d),
-    f = this.graph.isOrthogonal(a);
-  c = mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION] || "0"));
-  var g = new mxPoint(b.getCenterX(), b.getCenterY());
-  if (0 != c) var h = Math.cos(-c),
-    k = Math.sin(-c),
-    e = mxUtils.getRotatedPoint(e, h, k, g);
-  h = parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING] || 0);
-  h += parseFloat(a.style[d ? mxConstants.STYLE_SOURCE_PERIMETER_SPACING : mxConstants.STYLE_TARGET_PERIMETER_SPACING] ||
-    0);
-  b = this.getPerimeterPoint(b, e, 0 == c && f, h);
-  0 != c && (h = Math.cos(c), k = Math.sin(c), b = mxUtils.getRotatedPoint(b, h, k, g));
-  a.setAbsoluteTerminalPoint(b, d)
-};
-mxGraphView.prototype.getTerminalPort = function(a, b, c) {
-  a = mxUtils.getValue(a.style, c ? mxConstants.STYLE_SOURCE_PORT : mxConstants.STYLE_TARGET_PORT);
-  null != a && (a = this.getState(this.graph.getModel().getCell(a)), null != a && (b = a));
-  return b
-};
-mxGraphView.prototype.getPerimeterPoint = function(a, b, c, d) {
-  var e = null;
-  if (null != a) {
-    var f = this.getPerimeterFunction(a);
-    if (null != f && null != b && (d = this.getPerimeterBounds(a, d), 0 < d.width || 0 < d.height)) e = f(d, a, b, c);
-    null == e && (e = this.getPoint(a))
-  }
-  return e
-};
-mxGraphView.prototype.getRoutingCenterX = function(a) {
-  var b = null != a.style ? parseFloat(a.style[mxConstants.STYLE_ROUTING_CENTER_X]) || 0 : 0;
-  return a.getCenterX() + b * a.width
-};
-mxGraphView.prototype.getRoutingCenterY = function(a) {
-  var b = null != a.style ? parseFloat(a.style[mxConstants.STYLE_ROUTING_CENTER_Y]) || 0 : 0;
-  return a.getCenterY() + b * a.height
-};
-mxGraphView.prototype.getPerimeterBounds = function(a, b) {
-  b = null != b ? b : 0;
-  null != a && (b += parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING] || 0));
-  return a.getPerimeterBounds(b * this.scale)
-};
-mxGraphView.prototype.getPerimeterFunction = function(a) {
-  a = a.style[mxConstants.STYLE_PERIMETER];
-  if ("string" == typeof a) {
-    var b = mxStyleRegistry.getValue(a);
-    null == b && this.isAllowEval() && (b = mxUtils.eval(a));
-    a = b
-  }
-  return "function" == typeof a ? a : null
-};
-mxGraphView.prototype.getNextPoint = function(a, b, c) {
-  a = a.absolutePoints;
-  var d = null;
-  if (null != a && (c || 2 < a.length || null == b)) d = a.length, d = a[c ? Math.min(1, d - 1) : Math.max(0, d - 2)];
-  null == d && null != b && (d = new mxPoint(b.getCenterX(), b.getCenterY()));
-  return d
-};
-mxGraphView.prototype.getVisibleTerminal = function(a, b) {
-  for (var c = this.graph.getModel(), d = c.getTerminal(a, b), e = d; null != d && d != this.currentRoot;) {
-    if (!this.graph.isCellVisible(e) || this.graph.isCellCollapsed(d)) e = d;
-    d = c.getParent(d)
-  }
-  c.getParent(e) == c.getRoot() && (e = null);
-  return e
-};
-mxGraphView.prototype.updateEdgeBounds = function(a) {
-  var b = a.absolutePoints;
-  a.length = 0;
-  if (null != b && 0 < b.length) {
-    var c = b[0],
-      d = b[b.length - 1];
-    if (null == c || null == d) a.cell != this.currentRoot && this.clear(a.cell, !0);
-    else {
-      if (c.x != d.x || c.y != d.y) {
-        var e = d.x - c.x,
-          f = d.y - c.y;
-        a.terminalDistance = Math.sqrt(e * e + f * f)
-      } else a.terminalDistance = 0;
-      var d = 0,
-        g = [],
-        f = c;
-      if (null != f) {
-        for (var c = f.x, h = f.y, k = c, l = h, m = 1; m < b.length; m++) {
-          var n = b[m];
-          null != n && (e = f.x - n.x, f = f.y - n.y, e = Math.sqrt(e * e + f * f), g.push(e), d += e, f = n, c = Math.min(f.x, c), h = Math.min(f.y,
-            h), k = Math.max(f.x, k), l = Math.max(f.y, l))
-        }
-        a.length = d;
-        a.segments = g;
-        a.x = c;
-        a.y = h;
-        a.width = Math.max(1, k - c);
-        a.height = Math.max(1, l - h)
-      }
-    }
-  }
-};
-mxGraphView.prototype.getPoint = function(a, b) {
-  var c = a.getCenterX(),
-    d = a.getCenterY();
-  if (null != a.segments && (null == b || b.relative)) {
-    for (var e = a.absolutePoints.length, f = ((null != b ? b.x / 2 : 0) + 0.5) * a.length, g = a.segments[0], h = 0, k = 1; f > h + g && k < e - 1;) h += g, g = a.segments[k++];
-    e = 0 == g ? 0 : (f - h) / g;
-    f = a.absolutePoints[k - 1];
-    k = a.absolutePoints[k];
-    if (null != f && null != k) {
-      h = c = d = 0;
-      if (null != b) {
-        var d = b.y,
-          l = b.offset;
-        null != l && (c = l.x, h = l.y)
-      }
-      l = k.x - f.x;
-      k = k.y - f.y;
-      c = f.x + l * e + ((0 == g ? 0 : k / g) * d + c) * this.scale;
-      d = f.y + k * e - ((0 == g ? 0 : l / g) * d - h) * this.scale
-    }
-  } else null !=
-    b && (l = b.offset, null != l && (c += l.x, d += l.y));
-  return new mxPoint(c, d)
-};
-mxGraphView.prototype.getRelativePoint = function(a, b, c) {
-  var d = this.graph.getModel().getGeometry(a.cell);
-  if (null != d) {
-    var e = a.absolutePoints.length;
-    if (d.relative && 1 < e) {
-      for (var d = a.length, f = a.segments, g = a.absolutePoints[0], h = a.absolutePoints[1], k = mxUtils.ptSegDistSq(g.x, g.y, h.x, h.y, b, c), l = 0, m = 0, n = 0, p = 2; p < e; p++) m += f[p -
-        2], h = a.absolutePoints[p], g = mxUtils.ptSegDistSq(g.x, g.y, h.x, h.y, b, c), g <= k && (k = g, l = p - 1, n = m), g = h;
-      e = f[l];
-      g = a.absolutePoints[l];
-      h = a.absolutePoints[l + 1];
-      k = h.x;
-      f = h.y;
-      a = g.x - k;
-      l = g.y - f;
-      k = b - k;
-      f = c - f;
-      k = a - k;
-      f = l - f;
-      f = k * a + f * l;
-      a = Math.sqrt(0 >= f ? 0 : f * f / (a * a + l * l));
-      a > e && (a = e);
-      e = Math.sqrt(mxUtils.ptSegDistSq(g.x, g.y, h.x, h.y, b, c)); - 1 == mxUtils.relativeCcw(g.x, g.y, h.x, h.y, b, c) && (e = -e);
-      return new mxPoint(-2 * ((d / 2 - n - a) / d), e / this.scale)
-    }
-  }
-  return new mxPoint
-};
-mxGraphView.prototype.updateEdgeLabelOffset = function(a) {
-  var b = a.absolutePoints;
-  a.absoluteOffset.x = a.getCenterX();
-  a.absoluteOffset.y = a.getCenterY();
-  if (null != b && 0 < b.length && null != a.segments) {
-    var c = this.graph.getCellGeometry(a.cell);
-    if (c.relative) {
-      var d = this.getPoint(a, c);
-      null != d && (a.absoluteOffset = d)
-    } else {
-      var d = b[0],
-        e = b[b.length - 1];
-      if (null != d && null != e) {
-        var b = e.x - d.x,
-          f = e.y - d.y,
-          g = e = 0,
-          c = c.offset;
-        null != c && (e = c.x, g = c.y);
-        c = d.y + f / 2 + g * this.scale;
-        a.absoluteOffset.x = d.x + b / 2 + e * this.scale;
-        a.absoluteOffset.y = c
-      }
-    }
-  }
-};
-mxGraphView.prototype.getState = function(a, b) {
-  b = b || !1;
-  var c = null;
-  null != a && (c = this.states.get(a), this.graph.isCellVisible(a) && (null == c && b && this.graph.isCellVisible(a) ? (c = this.createState(a), this.states.put(a, c)) : b && (null != c && this.updateStyle) &&
-    (c.style = this.graph.getCellStyle(a))));
-  return c
-};
-mxGraphView.prototype.isRendering = function() {
-  return this.rendering
-};
-mxGraphView.prototype.setRendering = function(a) {
-  this.rendering = a
-};
-mxGraphView.prototype.isAllowEval = function() {
-  return this.allowEval
-};
-mxGraphView.prototype.setAllowEval = function(a) {
-  this.allowEval = a
-};
-mxGraphView.prototype.getStates = function() {
-  return this.states
-};
-mxGraphView.prototype.setStates = function(a) {
-  this.states = a
-};
-mxGraphView.prototype.getCellStates = function(a) {
-  if (null == a) return this.states;
-  for (var b = [], c = 0; c < a.length; c++) {
-    var d = this.getState(a[c]);
-    null != d && b.push(d)
-  }
-  return b
-};
-mxGraphView.prototype.removeState = function(a) {
-  var b = null;
-  null != a && (b = this.states.remove(a), null != b && (this.graph.cellRenderer.destroy(b), b.destroy()));
-  return b
-};
-mxGraphView.prototype.createState = function(a) {
-  var b = this.graph.getCellStyle(a);
-  a = new mxCellState(this, a, b);
-  this.graph.cellRenderer.initialize(a, this.isRendering());
-  return a
-};
-mxGraphView.prototype.getCanvas = function() {
-  return this.canvas
-};
-mxGraphView.prototype.getBackgroundPane = function() {
-  return this.backgroundPane
-};
-mxGraphView.prototype.getDrawPane = function() {
-  return this.drawPane
-};
-mxGraphView.prototype.getOverlayPane = function() {
-  return this.overlayPane
-};
-mxGraphView.prototype.isContainerEvent = function(a) {
-  a = mxEvent.getSource(a);
-  return a == this.graph.container || a.parentNode == this.backgroundPane || null != a.parentNode && a.parentNode.parentNode == this.backgroundPane || a == this.canvas.parentNode || a == this.canvas ||
-    a == this.backgroundPane || a == this.drawPane || a == this.overlayPane
-};
-mxGraphView.prototype.isScrollEvent = function(a) {
-  var b = mxUtils.getOffset(this.graph.container);
-  a = new mxPoint(a.clientX - b.x, a.clientY - b.y);
-  var b = this.graph.container.offsetWidth,
-    c = this.graph.container.clientWidth;
-  if (b > c && a.x > c + 2 && a.x <= b) return !0;
-  b = this.graph.container.offsetHeight;
-  c = this.graph.container.clientHeight;
-  return b > c && a.y > c + 2 && a.y <= b ? !0 : !1
-};
-mxGraphView.prototype.init = function() {
-  this.installListeners();
-  var a = this.graph;
-  a.dialect == mxConstants.DIALECT_SVG ? this.createSvg() : a.dialect == mxConstants.DIALECT_VML ? this.createVml() : this.createHtml()
-};
-mxGraphView.prototype.installListeners = function() {
-  var a = this.graph,
-    b = a.container;
-  if (null != b) {
-    mxEvent.addGestureListeners(b, mxUtils.bind(this, function(b) {
-      mxClient.IS_TOUCH && a.isEditing() && a.stopEditing(!a.isInvokesStopCellEditing());
-      this.isContainerEvent(b) && (!mxClient.IS_IE && !mxClient.IS_GC && !mxClient.IS_OP && !mxClient.IS_SF || !this.isScrollEvent(b)) && a.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(
-        b))
-    }), mxUtils.bind(this, function(b) {
-      this.isContainerEvent(b) && a.fireMouseEvent(mxEvent.MOUSE_MOVE,
-        new mxMouseEvent(b))
-    }), mxUtils.bind(this, function(b) {
-      this.isContainerEvent(b) && a.fireMouseEvent(mxEvent.MOUSE_UP, new mxMouseEvent(b))
-    }));
-    mxEvent.addListener(b, "dblclick", mxUtils.bind(this, function(b) {
-      a.dblClick(b)
-    }));
-    var c = function(c) {
-      var e = null;
-      mxClient.IS_TOUCH && (e = mxEvent.getClientX(c), c = mxEvent.getClientY(c), c = mxUtils.convertPoint(b, e, c), e = a.view.getState(a.getCellAt(c.x, c.y)));
-      return e
-    };
-    a.addMouseListener({
-      mouseDown: function(b, c) {
-        a.panningHandler.hideMenu()
-      },
-      mouseMove: function() {},
-      mouseUp: function() {}
-    });
-    this.moveHandler = mxUtils.bind(this, function(b) {
-      null != a.tooltipHandler && a.tooltipHandler.isHideOnHover() && a.tooltipHandler.hide();
-      this.captureDocumentGesture && (a.isMouseDown && !mxEvent.isConsumed(b)) && a.fireMouseEvent(mxEvent.MOUSE_MOVE, new mxMouseEvent(b, c(b)))
-    });
-    this.endHandler = mxUtils.bind(this, function(b) {
-      this.captureDocumentGesture && a.fireMouseEvent(mxEvent.MOUSE_UP, new mxMouseEvent(b))
-    });
-    mxEvent.addGestureListeners(document, null, this.moveHandler, this.endHandler)
-  }
-};
-mxGraphView.prototype.createHtml = function() {
-  var a = this.graph.container;
-  null != a && (this.canvas = this.createHtmlPane("100%", "100%"), this.backgroundPane = this.createHtmlPane("1px", "1px"), this.drawPane = this.createHtmlPane("1px", "1px"), this.overlayPane =
-    this.createHtmlPane("1px", "1px"), this.canvas.appendChild(this.backgroundPane), this.canvas.appendChild(this.drawPane), this.canvas.appendChild(this.overlayPane), a.appendChild(this.canvas),
-    mxClient.IS_QUIRKS && (a = mxUtils.bind(this, function(a) {
-      a = this.getGraphBounds();
-      this.updateHtmlCanvasSize(a.x + a.width + this.graph.border, a.y + a.height + this.graph.border)
-    }), mxEvent.addListener(window, "resize", a)))
-};
-mxGraphView.prototype.updateHtmlCanvasSize = function(a, b) {
-  if (null != this.graph.container) {
-    var c = this.graph.container.offsetHeight;
-    this.canvas.style.width = this.graph.container.offsetWidth < a ? a + "px" : "100%";
-    this.canvas.style.height = c < b ? b + "px" : "100%"
-  }
-};
-mxGraphView.prototype.createHtmlPane = function(a, b) {
-  var c = document.createElement("DIV");
-  null != a && null != b ? (c.style.position = "absolute", c.style.left = "0px", c.style.top = "0px", c.style.width = a, c.style.height = b) : c.style.position = "relative";
-  return c
-};
-mxGraphView.prototype.createVml = function() {
-  var a = this.graph.container;
-  if (null != a) {
-    var b = a.offsetWidth,
-      c = a.offsetHeight;
-    this.canvas = this.createVmlPane(b, c);
-    this.backgroundPane = this.createVmlPane(b, c);
-    this.drawPane = this.createVmlPane(b, c);
-    this.overlayPane = this.createVmlPane(b, c);
-    this.canvas.appendChild(this.backgroundPane);
-    this.canvas.appendChild(this.drawPane);
-    this.canvas.appendChild(this.overlayPane);
-    a.appendChild(this.canvas)
-  }
-};
-mxGraphView.prototype.createVmlPane = function(a, b) {
-  var c = document.createElement(mxClient.VML_PREFIX + ":group");
-  c.style.position = "absolute";
-  c.style.left = "0px";
-  c.style.top = "0px";
-  c.style.width = a + "px";
-  c.style.height = b + "px";
-  c.setAttribute("coordsize", a + "," + b);
-  c.setAttribute("coordorigin", "0,0");
-  return c
-};
-mxGraphView.prototype.createSvg = function() {
-  var a = this.graph.container;
-  this.canvas = document.createElementNS(mxConstants.NS_SVG, "g");
-  this.backgroundPane = document.createElementNS(mxConstants.NS_SVG, "g");
-  this.canvas.appendChild(this.backgroundPane);
-  this.drawPane = document.createElementNS(mxConstants.NS_SVG, "g");
-  this.canvas.appendChild(this.drawPane);
-  this.overlayPane = document.createElementNS(mxConstants.NS_SVG, "g");
-  this.canvas.appendChild(this.overlayPane);
-  var b = document.createElementNS(mxConstants.NS_SVG,
-    "svg");
-  b.style.width = "100%";
-  b.style.height = "100%";
-  b.style.display = "block";
-  b.appendChild(this.canvas);
-  null != a && (a.appendChild(b), "static" == mxUtils.getCurrentStyle(a).position && (a.style.position = "relative"))
-};
-mxGraphView.prototype.destroy = function() {
-  var a = null != this.canvas ? this.canvas.ownerSVGElement : null;
-  null == a && (a = this.canvas);
-  null != a && null != a.parentNode && (this.clear(this.currentRoot, !0), mxEvent.removeGestureListeners(document, null, this.moveHandler, this.endHandler), mxEvent.release(this.graph.container), a
-    .parentNode.removeChild(a), this.overlayPane = this.drawPane = this.backgroundPane = this.canvas = this.endHandler = this.moveHandler = null)
-};
-
-function mxCurrentRootChange(a, b) {
-  this.view = a;
-  this.previous = this.root = b;
-  this.isUp = null == b;
-  if (!this.isUp)
-    for (var c = this.view.currentRoot, d = this.view.graph.getModel(); null != c;) {
-      if (c == b) {
-        this.isUp = !0;
-        break
-      }
-      c = d.getParent(c)
-    }
-}
-mxCurrentRootChange.prototype.execute = function() {
-  var a = this.view.currentRoot;
-  this.view.currentRoot = this.previous;
-  this.previous = a;
-  a = this.view.graph.getTranslateForRoot(this.view.currentRoot);
-  null != a && (this.view.translate = new mxPoint(-a.x, -a.y));
-  this.view.fireEvent(new mxEventObject(this.isUp ? mxEvent.UP : mxEvent.DOWN, "root", this.view.currentRoot, "previous", this.previous));
-  this.isUp ? (this.view.clear(this.view.currentRoot, !0), this.view.validate()) : this.view.refresh();
-  this.isUp = !this.isUp
-};
-
-function mxGraph(a, b, c, d) {
-  this.mouseListeners = null;
-  this.renderHint = c;
-  this.dialect = mxClient.IS_SVG ? mxConstants.DIALECT_SVG : c == mxConstants.RENDERING_HINT_EXACT && mxClient.IS_VML ? mxConstants.DIALECT_VML : c == mxConstants.RENDERING_HINT_FASTEST ? mxConstants
-    .DIALECT_STRICTHTML : c == mxConstants.RENDERING_HINT_FASTER ? mxConstants.DIALECT_PREFERHTML : mxConstants.DIALECT_MIXEDHTML;
-  this.model = null != b ? b : new mxGraphModel;
-  this.multiplicities = [];
-  this.imageBundles = [];
-  this.cellRenderer = this.createCellRenderer();
-  this.setSelectionModel(this.createSelectionModel());
-  this.setStylesheet(null != d ? d : this.createStylesheet());
-  this.view = this.createGraphView();
-  this.graphModelChangeListener = mxUtils.bind(this, function(a, b) {
-    this.graphModelChanged(b.getProperty("edit").changes)
-  });
-  this.model.addListener(mxEvent.CHANGE, this.graphModelChangeListener);
-  this.createHandlers();
-  null != a && this.init(a);
-  this.view.revalidate()
-}
-mxLoadResources && mxResources.add(mxClient.basePath + "/resources/graph");
-mxGraph.prototype = new mxEventSource;
-mxGraph.prototype.constructor = mxGraph;
-mxGraph.prototype.EMPTY_ARRAY = [];
-mxGraph.prototype.mouseListeners = null;
-mxGraph.prototype.isMouseDown = !1;
-mxGraph.prototype.model = null;
-mxGraph.prototype.view = null;
-mxGraph.prototype.stylesheet = null;
-mxGraph.prototype.selectionModel = null;
-mxGraph.prototype.cellEditor = null;
-mxGraph.prototype.cellRenderer = null;
-mxGraph.prototype.multiplicities = null;
-mxGraph.prototype.renderHint = null;
-mxGraph.prototype.dialect = null;
-mxGraph.prototype.gridSize = 10;
-mxGraph.prototype.gridEnabled = !0;
-mxGraph.prototype.portsEnabled = !0;
-mxGraph.prototype.doubleTapEnabled = !0;
-mxGraph.prototype.doubleTapTimeout = 700;
-mxGraph.prototype.doubleTapTolerance = 25;
-mxGraph.prototype.lastTouchY = 0;
-mxGraph.prototype.lastTouchY = 0;
-mxGraph.prototype.lastTouchTime = 0;
-mxGraph.prototype.gestureEnabled = !0;
-mxGraph.prototype.tolerance = 4;
-mxGraph.prototype.defaultOverlap = 0.5;
-mxGraph.prototype.defaultParent = null;
-mxGraph.prototype.alternateEdgeStyle = null;
-mxGraph.prototype.backgroundImage = null;
-mxGraph.prototype.pageVisible = !1;
-mxGraph.prototype.pageBreaksVisible = !1;
-mxGraph.prototype.pageBreakColor = "gray";
-mxGraph.prototype.pageBreakDashed = !0;
-mxGraph.prototype.minPageBreakDist = 20;
-mxGraph.prototype.preferPageSize = !1;
-mxGraph.prototype.pageFormat = mxConstants.PAGE_FORMAT_A4_PORTRAIT;
-mxGraph.prototype.pageScale = 1.5;
-mxGraph.prototype.enabled = !0;
-mxGraph.prototype.escapeEnabled = !0;
-mxGraph.prototype.invokesStopCellEditing = !0;
-mxGraph.prototype.enterStopsCellEditing = !1;
-mxGraph.prototype.useScrollbarsForPanning = !0;
-mxGraph.prototype.exportEnabled = !0;
-mxGraph.prototype.importEnabled = !0;
-mxGraph.prototype.cellsLocked = !1;
-mxGraph.prototype.cellsCloneable = !0;
-mxGraph.prototype.foldingEnabled = !0;
-mxGraph.prototype.cellsEditable = !0;
-mxGraph.prototype.cellsDeletable = !0;
-mxGraph.prototype.cellsMovable = !0;
-mxGraph.prototype.edgeLabelsMovable = !0;
-mxGraph.prototype.vertexLabelsMovable = !1;
-mxGraph.prototype.dropEnabled = !1;
-mxGraph.prototype.splitEnabled = !0;
-mxGraph.prototype.cellsResizable = !0;
-mxGraph.prototype.cellsBendable = !0;
-mxGraph.prototype.cellsSelectable = !0;
-mxGraph.prototype.cellsDisconnectable = !0;
-mxGraph.prototype.autoSizeCells = !1;
-mxGraph.prototype.autoScroll = !0;
-mxGraph.prototype.timerAutoScroll = !1;
-mxGraph.prototype.allowAutoPanning = !1;
-mxGraph.prototype.ignoreScrollbars = !1;
-mxGraph.prototype.autoExtend = !0;
-mxGraph.prototype.maximumGraphBounds = null;
-mxGraph.prototype.minimumGraphSize = null;
-mxGraph.prototype.minimumContainerSize = null;
-mxGraph.prototype.maximumContainerSize = null;
-mxGraph.prototype.resizeContainer = !1;
-mxGraph.prototype.border = 0;
-mxGraph.prototype.ordered = !0;
-mxGraph.prototype.keepEdgesInForeground = !1;
-mxGraph.prototype.keepEdgesInBackground = !0;
-mxGraph.prototype.allowNegativeCoordinates = !0;
-mxGraph.prototype.constrainChildren = !0;
-mxGraph.prototype.extendParents = !0;
-mxGraph.prototype.extendParentsOnAdd = !0;
-mxGraph.prototype.collapseToPreferredSize = !0;
-mxGraph.prototype.zoomFactor = 1.2;
-mxGraph.prototype.keepSelectionVisibleOnZoom = !1;
-mxGraph.prototype.centerZoom = !0;
-mxGraph.prototype.resetViewOnRootChange = !0;
-mxGraph.prototype.resetEdgesOnResize = !1;
-mxGraph.prototype.resetEdgesOnMove = !1;
-mxGraph.prototype.resetEdgesOnConnect = !0;
-mxGraph.prototype.allowLoops = !1;
-mxGraph.prototype.defaultLoopStyle = mxEdgeStyle.Loop;
-mxGraph.prototype.multigraph = !0;
-mxGraph.prototype.connectableEdges = !1;
-mxGraph.prototype.allowDanglingEdges = !0;
-mxGraph.prototype.cloneInvalidEdges = !1;
-mxGraph.prototype.disconnectOnMove = !0;
-mxGraph.prototype.labelsVisible = !0;
-mxGraph.prototype.htmlLabels = !1;
-mxGraph.prototype.swimlaneSelectionEnabled = !0;
-mxGraph.prototype.swimlaneNesting = !0;
-mxGraph.prototype.swimlaneIndicatorColorAttribute = mxConstants.STYLE_FILLCOLOR;
-mxGraph.prototype.imageBundles = null;
-mxGraph.prototype.minFitScale = 0.1;
-mxGraph.prototype.maxFitScale = 8;
-mxGraph.prototype.panDx = 0;
-mxGraph.prototype.panDy = 0;
-mxGraph.prototype.collapsedImage = new mxImage(mxClient.imageBasePath + "/collapsed.gif", 9, 9);
-mxGraph.prototype.expandedImage = new mxImage(mxClient.imageBasePath + "/expanded.gif", 9, 9);
-// mxGraph.prototype.warningImage = new mxImage(mxClient.imageBasePath + "/warning" + (mxClient.IS_MAC ? ".png" : ".gif"), 16, 16);
-mxGraph.prototype.warningImage = new mxImage("/assets/plugins/mxgraph/images/warning.gif", 16, 16);
-
-
-mxGraph.prototype.alreadyConnectedResource = "none" != mxClient.language ? "alreadyConnected" : "";
-mxGraph.prototype.containsValidationErrorsResource = "none" != mxClient.language ? "containsValidationErrors" : "";
-mxGraph.prototype.collapseExpandResource = "none" != mxClient.language ? "collapse-expand" : "";
-mxGraph.prototype.init = function(a) {
-  this.container = a;
-  this.cellEditor = this.createCellEditor();
-  this.view.init();
-  this.sizeDidChange();
-  mxClient.IS_IE && (mxEvent.addListener(window, "unload", mxUtils.bind(this, function() {
-    this.destroy()
-  })), mxEvent.addListener(a, "selectstart", mxUtils.bind(this, function() {
-    return this.isEditing()
-  })));
-  8 == document.documentMode && a.insertAdjacentHTML("beforeend", '\x3cv:group style\x3d"DISPLAY: none;"\x3e\x3c/v:group\x3e')
-};
-mxGraph.prototype.createHandlers = function(a) {
-  this.tooltipHandler = new mxTooltipHandler(this);
-  this.tooltipHandler.setEnabled(!1);
-  this.panningHandler = new mxPanningHandler(this);
-  this.panningHandler.panningEnabled = !1;
-  this.selectionCellsHandler = new mxSelectionCellsHandler(this);
-  this.connectionHandler = new mxConnectionHandler(this);
-  this.connectionHandler.setEnabled(!1);
-  this.graphHandler = new mxGraphHandler(this)
-};
-mxGraph.prototype.createSelectionModel = function() {
-  return new mxGraphSelectionModel(this)
-};
-mxGraph.prototype.createStylesheet = function() {
-  return new mxStylesheet
-};
-mxGraph.prototype.createGraphView = function() {
-  return new mxGraphView(this)
-};
-mxGraph.prototype.createCellRenderer = function() {
-  return new mxCellRenderer
-};
-mxGraph.prototype.createCellEditor = function() {
-  return new mxCellEditor(this)
-};
-mxGraph.prototype.getModel = function() {
-  return this.model
-};
-mxGraph.prototype.getView = function() {
-  return this.view
-};
-mxGraph.prototype.getStylesheet = function() {
-  return this.stylesheet
-};
-mxGraph.prototype.setStylesheet = function(a) {
-  this.stylesheet = a
-};
-mxGraph.prototype.getSelectionModel = function() {
-  return this.selectionModel
-};
-mxGraph.prototype.setSelectionModel = function(a) {
-  this.selectionModel = a
-};
-mxGraph.prototype.getSelectionCellsForChanges = function(a) {
-  for (var b = [], c = 0; c < a.length; c++) {
-    var d = a[c];
-    if (d.constructor != mxRootChange) {
-      var e = null;
-      d instanceof mxChildChange && null == d.previous ? e = d.child : null != d.cell && d.cell instanceof mxCell && (e = d.cell);
-      null != e && 0 > mxUtils.indexOf(b, e) && b.push(e)
-    }
-  }
-  return this.getModel().getTopmostCells(b)
-};
-mxGraph.prototype.graphModelChanged = function(a) {
-  for (var b = 0; b < a.length; b++) this.processChange(a[b]);
-  this.removeSelectionCells(this.getRemovedCellsForChanges(a));
-  this.view.validate();
-  this.sizeDidChange()
-};
-mxGraph.prototype.getRemovedCellsForChanges = function(a) {
-  for (var b = [], c = 0; c < a.length; c++) {
-    var d = a[c];
-    if (d instanceof mxRootChange) break;
-    else d instanceof mxChildChange ? null != d.previous && null == d.parent && (b = b.concat(this.model.getDescendants(d.child))) : d instanceof mxVisibleChange && (b = b.concat(this.model.getDescendants(
-      d.cell)))
-  }
-  return b
-};
-mxGraph.prototype.processChange = function(a) {
-  if (a instanceof mxRootChange) this.clearSelection(), this.removeStateForCell(a.previous), this.resetViewOnRootChange && (this.view.scale = 1, this.view.translate.x = 0, this.view.translate.y = 0),
-    this.fireEvent(new mxEventObject(mxEvent.ROOT));
-  else if (a instanceof mxChildChange) {
-    var b = this.model.getParent(a.child);
-    null != b ? this.view.invalidate(a.child, !0, !1, null != a.previous) : (this.removeStateForCell(a.child), this.view.currentRoot == a.child && this.home());
-    b != a.previous &&
-      (null != b && this.view.invalidate(b, !1, !1), null != a.previous && this.view.invalidate(a.previous, !1, !1))
-  } else a instanceof mxTerminalChange || a instanceof mxGeometryChange ? this.view.invalidate(a.cell) : a instanceof mxValueChange ? this.view.invalidate(a.cell, !1, !1) : a instanceof mxStyleChange ?
-    (this.view.invalidate(a.cell, !0, !0, !1), this.view.removeState(a.cell)) : null != a.cell && a.cell instanceof mxCell && this.removeStateForCell(a.cell)
-};
-mxGraph.prototype.removeStateForCell = function(a) {
-  for (var b = this.model.getChildCount(a), c = 0; c < b; c++) this.removeStateForCell(this.model.getChildAt(a, c));
-  this.view.removeState(a)
-};
-mxGraph.prototype.addCellOverlay = function(a, b) {
-  null == a.overlays && (a.overlays = []);
-  a.overlays.push(b);
-  var c = this.view.getState(a);
-  null != c && this.cellRenderer.redraw(c);
-  this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY, "cell", a, "overlay", b));
-  return b
-};
-mxGraph.prototype.getCellOverlays = function(a) {
-  return a.overlays
-};
-mxGraph.prototype.removeCellOverlay = function(a, b) {
-  if (null == b) this.removeCellOverlays(a);
-  else {
-    var c = mxUtils.indexOf(a.overlays, b);
-    0 <= c ? (a.overlays.splice(c, 1), 0 == a.overlays.length && (a.overlays = null), c = this.view.getState(a), null != c && this.cellRenderer.redraw(c), this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,
-      "cell", a, "overlay", b))) : b = null
-  }
-  return b
-};
-mxGraph.prototype.removeCellOverlays = function(a) {
-  var b = a.overlays;
-  if (null != b) {
-    a.overlays = null;
-    var c = this.view.getState(a);
-    null != c && this.cellRenderer.redraw(c);
-    for (c = 0; c < b.length; c++) this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY, "cell", a, "overlay", b[c]))
-  }
-  return b
-};
-mxGraph.prototype.clearCellOverlays = function(a) {
-  a = null != a ? a : this.model.getRoot();
-  this.removeCellOverlays(a);
-  for (var b = this.model.getChildCount(a), c = 0; c < b; c++) {
-    var d = this.model.getChildAt(a, c);
-    this.clearCellOverlays(d)
-  }
-};
-mxGraph.prototype.setCellWarning = function(a, b, c, d) {
-  if (null != b && 0 < b.length) return c = null != c ? c : this.warningImage, b = new mxCellOverlay(c, "\x3cfont color\x3dred\x3e" + b + "\x3c/font\x3e"), d && b.addListener(mxEvent.CLICK, mxUtils
-    .bind(this, function(b, c) {
-      this.isEnabled() && this.setSelectionCell(a)
-    })), this.addCellOverlay(a, b);
-  this.removeCellOverlays(a);
-  return null
-};
-mxGraph.prototype.startEditing = function(a) {
-  this.startEditingAtCell(null, a)
-};
-mxGraph.prototype.startEditingAtCell = function(a, b) {
-  null == a && (a = this.getSelectionCell(), null != a && !this.isCellEditable(a) && (a = null));
-  null != a && (this.fireEvent(new mxEventObject(mxEvent.START_EDITING, "cell", a, "event", b)), this.cellEditor.startEditing(a, b))
-};
-mxGraph.prototype.getEditingValue = function(a, b) {
-  return this.convertValueToString(a)
-};
-mxGraph.prototype.stopEditing = function(a) {
-  this.cellEditor.stopEditing(a)
-};
-mxGraph.prototype.labelChanged = function(a, b, c) {
-  this.model.beginUpdate();
-  try {
-    this.cellLabelChanged(a, b, this.isAutoSizeCell(a)), this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED, "cell", a, "value", b, "event", c))
-  } finally {
-    this.model.endUpdate()
-  }
-  return a
-};
-mxGraph.prototype.cellLabelChanged = function(a, b, c) {
-  this.model.beginUpdate();
-  try {
-    this.model.setValue(a, b), c && this.cellSizeUpdated(a, !1)
-  } finally {
-    this.model.endUpdate()
-  }
-};
-mxGraph.prototype.escape = function(a) {
-  this.stopEditing(!0);
-  this.connectionHandler.reset();
-  this.graphHandler.reset();
-  a = this.getSelectionCells();
-  for (var b = 0; b < a.length; b++) {
-    var c = this.view.getState(a[b]);
-    null != c && null != c.handler && c.handler.reset()
-  }
-};
-mxGraph.prototype.click = function(a) {
-  var b = a.getEvent(),
-    c = a.getCell(),
-    d = new mxEventObject(mxEvent.CLICK, "event", b, "cell", c);
-  a.isConsumed() && d.consume();
-  this.fireEvent(d);
-  this.isEnabled() && (!mxEvent.isConsumed(b) && !d.isConsumed()) && (null != c ? this.selectCellForEvent(c, b) : (c = null, this.isSwimlaneSelectionEnabled() && (c = this.getSwimlaneAt(a.getGraphX(),
-    a.getGraphY())), null != c ? this.selectCellForEvent(c, b) : this.isToggleEvent(b) || this.clearSelection()))
-};
-mxGraph.prototype.dblClick = function(a, b) {
-  var c = new mxEventObject(mxEvent.DOUBLE_CLICK, "event", a, "cell", b);
-  this.fireEvent(c);
-  this.isEnabled() && (!mxEvent.isConsumed(a) && !c.isConsumed() && null != b && this.isCellEditable(b)) && this.startEditingAtCell(b, a)
-};
-mxGraph.prototype.scrollPointToVisible = function(a, b, c, d) {
-  if (!this.timerAutoScroll && (this.ignoreScrollbars || mxUtils.hasScrollbars(this.container))) {
-    var e = this.container;
-    d = null != d ? d : 20;
-    if (a >= e.scrollLeft && b >= e.scrollTop && a <= e.scrollLeft + e.clientWidth && b <= e.scrollTop + e.clientHeight) {
-      var f = e.scrollLeft + e.clientWidth - a;
-      if (f < d) {
-        if (a = e.scrollLeft, e.scrollLeft += d - f, c && a == e.scrollLeft) {
-          if (this.dialect == mxConstants.DIALECT_SVG) {
-            a = this.view.getDrawPane().ownerSVGElement;
-            var g = this.container.scrollWidth + d - f
-          } else g =
-            Math.max(e.clientWidth, e.scrollWidth) + d - f, a = this.view.getCanvas();
-          a.style.width = g + "px";
-          e.scrollLeft += d - f
-        }
-      } else f = a - e.scrollLeft, f < d && (e.scrollLeft -= d - f);
-      f = e.scrollTop + e.clientHeight - b;
-      f < d ? (a = e.scrollTop, e.scrollTop += d - f, a == e.scrollTop && c && (this.dialect == mxConstants.DIALECT_SVG ? (a = this.view.getDrawPane().ownerSVGElement, b = this.container.scrollHeight +
-        d - f) : (b = Math.max(e.clientHeight, e.scrollHeight) + d - f, a = this.view.getCanvas()), a.style.height = b + "px", e.scrollTop += d - f)) : (f = b - e.scrollTop, f < d && (e.scrollTop -=
-        d - f))
-    }
-  } else this.allowAutoPanning && !this.panningHandler.active && (null == this.panningManager && (this.panningManager = this.createPanningManager()), this.panningManager.panTo(a + this.panDx, b +
-    this.panDy))
-};
-mxGraph.prototype.createPanningManager = function() {
-  return new mxPanningManager(this)
-};
-mxGraph.prototype.getBorderSizes = function() {
-  function a(a) {
-    var b = 0,
-      b = "thin" == a ? 2 : "medium" == a ? 4 : "thick" == a ? 6 : parseInt(a);
-    isNaN(b) && (b = 0);
-    return b
-  }
-  var b = mxUtils.getCurrentStyle(this.container),
-    c = new mxRectangle;
-  c.x = a(b.borderLeftWidth) + parseInt(b.paddingLeft || 0);
-  c.y = a(b.borderTopWidth) + parseInt(b.paddingTop || 0);
-  c.width = a(b.borderRightWidth) + parseInt(b.paddingRight || 0);
-  c.height = a(b.borderBottomWidth) + parseInt(b.paddingBottom || 0);
-  return c
-};
-mxGraph.prototype.getPreferredPageSize = function(a, b, c) {
-  a = this.view.scale;
-  var d = this.view.translate,
-    e = this.pageFormat,
-    f = a * this.pageScale,
-    e = new mxRectangle(0, 0, e.width * f, e.height * f);
-  b = this.pageBreaksVisible ? Math.ceil(b / e.width) : 1;
-  c = this.pageBreaksVisible ? Math.ceil(c / e.height) : 1;
-  return new mxRectangle(0, 0, b * e.width + 2 + d.x / a, c * e.height + 2 + d.y / a)
-};
-mxGraph.prototype.sizeDidChange = function() {
-  var a = this.getGraphBounds();
-  if (null != this.container) {
-    var b = this.getBorder(),
-      c = Math.max(0, a.x + a.width + 1 + b),
-      b = Math.max(0, a.y + a.height + 1 + b);
-    null != this.minimumContainerSize && (c = Math.max(c, this.minimumContainerSize.width), b = Math.max(b, this.minimumContainerSize.height));
-    this.resizeContainer && this.doResizeContainer(c, b);
-    if (this.preferPageSize || !mxClient.IS_IE && this.pageVisible) {
-      var d = this.getPreferredPageSize(a, c, b);
-      null != d && (c = d.width, b = d.height)
-    }
-    null != this.minimumGraphSize &&
-      (c = Math.max(c, this.minimumGraphSize.width * this.view.scale), b = Math.max(b, this.minimumGraphSize.height * this.view.scale));
-    c = Math.ceil(c - 1);
-    b = Math.ceil(b - 1);
-    this.dialect == mxConstants.DIALECT_SVG ? (d = this.view.getDrawPane().ownerSVGElement, d.style.minWidth = Math.max(1, c) + "px", d.style.minHeight = Math.max(1, b) + "px", d.style.width =
-      "100%", d.style.height = "100%") : mxClient.IS_QUIRKS ? this.view.updateHtmlCanvasSize(Math.max(1, c), Math.max(1, b)) : (this.view.canvas.style.minWidth = Math.max(1, c) + "px", this.view.canvas
-      .style.minHeight =
-      Math.max(1, b) + "px");
-    this.updatePageBreaks(this.pageBreaksVisible, c - 1, b - 1)
-  }
-  this.fireEvent(new mxEventObject(mxEvent.SIZE, "bounds", a))
-};
-mxGraph.prototype.doResizeContainer = function(a, b) {
-  if (mxClient.IS_IE)
-    if (mxClient.IS_QUIRKS) {
-      var c = this.getBorderSizes();
-      a += Math.max(2, c.x + c.width + 1);
-      b += Math.max(2, c.y + c.height + 1)
-    } else 9 <= document.documentMode ? (a += 3, b += 5) : (a += 1, b += 1);
-  else b += 1;
-  null != this.maximumContainerSize && (a = Math.min(this.maximumContainerSize.width, a), b = Math.min(this.maximumContainerSize.height, b));
-  this.container.style.width = Math.ceil(a) + "px";
-  this.container.style.height = Math.ceil(b) + "px"
-};
-mxGraph.prototype.updatePageBreaks = function(a, b, c) {
-  var d = this.view.scale,
-    e = this.view.translate,
-    f = this.pageFormat,
-    g = d * this.pageScale,
-    e = new mxRectangle(d * e.x, d * e.y, f.width * g, f.height * g);
-  a = a && Math.min(e.width, e.height) > this.minPageBreakDist;
-  e.x = mxUtils.mod(e.x, e.width);
-  e.y = mxUtils.mod(e.y, e.height);
-  f = a ? Math.ceil((b - e.x) / e.width) : 0;
-  a = a ? Math.ceil((c - e.y) / e.height) : 0;
-  null == this.horizontalPageBreaks && 0 < f && (this.horizontalPageBreaks = []);
-  if (null != this.horizontalPageBreaks) {
-    for (g = 0; g <= f; g++) {
-      var h = [new mxPoint(e.x +
-        g * e.width, 1), new mxPoint(e.x + g * e.width, c)];
-      null != this.horizontalPageBreaks[g] ? (this.horizontalPageBreaks[g].scale = 1, this.horizontalPageBreaks[g].points = h, this.horizontalPageBreaks[g].redraw()) : (h = new mxPolyline(h, this.pageBreakColor,
-        this.scale), h.dialect = this.dialect, h.isDashed = this.pageBreakDashed, h.scale = d, h.init(this.view.backgroundPane), h.redraw(), this.horizontalPageBreaks[g] = h)
-    }
-    for (g = f; g < this.horizontalPageBreaks.length; g++) this.horizontalPageBreaks[g].destroy();
-    this.horizontalPageBreaks.splice(f,
-      this.horizontalPageBreaks.length - f)
-  }
-  null == this.verticalPageBreaks && 0 < a && (this.verticalPageBreaks = []);
-  if (null != this.verticalPageBreaks) {
-    for (g = 0; g <= a; g++) h = [new mxPoint(1, e.y + g * e.height), new mxPoint(b, e.y + g * e.height)], null != this.verticalPageBreaks[g] ? (this.verticalPageBreaks[g].scale = 1, this.verticalPageBreaks[
-      g].points = h, this.verticalPageBreaks[g].redraw()) : (h = new mxPolyline(h, this.pageBreakColor, d), h.dialect = this.dialect, h.isDashed = this.pageBreakDashed, h.scale = d, h.init(this.view
-        .backgroundPane), h.redraw(),
-      this.verticalPageBreaks[g] = h);
-    for (g = a; g < this.verticalPageBreaks.length; g++) this.verticalPageBreaks[g].destroy();
-    this.verticalPageBreaks.splice(a, this.verticalPageBreaks.length - a)
-  }
-};
-mxGraph.prototype.getCellStyle = function(a) {
-  var b = this.model.getStyle(a),
-    c = null,
-    c = this.model.isEdge(a) ? this.stylesheet.getDefaultEdgeStyle() : this.stylesheet.getDefaultVertexStyle();
-  null != b && (c = this.postProcessCellStyle(this.stylesheet.getCellStyle(b, c)));
-  null == c && (c = mxGraph.prototype.EMPTY_ARRAY);
-  return c
-};
-mxGraph.prototype.postProcessCellStyle = function(a) {
-  if (null != a) {
-    var b = a[mxConstants.STYLE_IMAGE],
-      c = this.getImageFromBundles(b);
-    null != c ? a[mxConstants.STYLE_IMAGE] = c : c = b;
-    null != c && "data:image/" == c.substring(0, 11) && (b = c.indexOf(","), 0 < b && (c = c.substring(0, b) + ";base64," + c.substring(b + 1)), a[mxConstants.STYLE_IMAGE] = c)
-  }
-  return a
-};
-mxGraph.prototype.setCellStyle = function(a, b) {
-  b = b || this.getSelectionCells();
-  if (null != b) {
-    this.model.beginUpdate();
-    try {
-      for (var c = 0; c < b.length; c++) this.model.setStyle(b[c], a)
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.toggleCellStyle = function(a, b, c) {
-  c = c || this.getSelectionCell();
-  this.toggleCellStyles(a, b, [c])
-};
-mxGraph.prototype.toggleCellStyles = function(a, b, c) {
-  b = null != b ? b : !1;
-  c = c || this.getSelectionCells();
-  if (null != c && 0 < c.length) {
-    var d = this.view.getState(c[0]),
-      d = null != d ? d.style : this.getCellStyle(c[0]);
-    null != d && (b = mxUtils.getValue(d, a, b) ? 0 : 1, this.setCellStyles(a, b, c))
-  }
-};
-mxGraph.prototype.setCellStyles = function(a, b, c) {
-  c = c || this.getSelectionCells();
-  mxUtils.setCellStyles(this.model, c, a, b)
-};
-mxGraph.prototype.toggleCellStyleFlags = function(a, b, c) {
-  this.setCellStyleFlags(a, b, null, c)
-};
-mxGraph.prototype.setCellStyleFlags = function(a, b, c, d) {
-  d = d || this.getSelectionCells();
-  if (null != d && 0 < d.length) {
-    if (null == c) {
-      var e = this.view.getState(d[0]),
-        e = null != e ? e.style : this.getCellStyle(d[0]);
-      null != e && (c = (parseInt(e[a] || 0) & b) != b)
-    }
-    mxUtils.setCellStyleFlags(this.model, d, a, b, c)
-  }
-};
-mxGraph.prototype.alignCells = function(a, b, c) {
-  null == b && (b = this.getSelectionCells());
-  if (null != b && 1 < b.length) {
-    if (null == c)
-      for (var d = 0; d < b.length; d++) {
-        var e = this.getCellGeometry(b[d]);
-        if (null != e && !this.model.isEdge(b[d]))
-          if (null == c)
-            if (a == mxConstants.ALIGN_CENTER) {
-              c = e.x + e.width / 2;
-              break
-            } else if (a == mxConstants.ALIGN_RIGHT) c = e.x + e.width;
-        else if (a == mxConstants.ALIGN_TOP) c = e.y;
-        else if (a == mxConstants.ALIGN_MIDDLE) {
-          c = e.y + e.height / 2;
-          break
-        } else c = a == mxConstants.ALIGN_BOTTOM ? e.y + e.height : e.x;
-        else c = a == mxConstants.ALIGN_RIGHT ?
-          Math.max(c, e.x + e.width) : a == mxConstants.ALIGN_TOP ? Math.min(c, e.y) : a == mxConstants.ALIGN_BOTTOM ? Math.max(c, e.y + e.height) : Math.min(c, e.x)
-      }
-    if (null != c) {
-      this.model.beginUpdate();
-      try {
-        for (d = 0; d < b.length; d++) e = this.getCellGeometry(b[d]), null != e && !this.model.isEdge(b[d]) && (e = e.clone(), a == mxConstants.ALIGN_CENTER ? e.x = c - e.width / 2 : a ==
-          mxConstants.ALIGN_RIGHT ? e.x = c - e.width : a == mxConstants.ALIGN_TOP ? e.y = c : a == mxConstants.ALIGN_MIDDLE ? e.y = c - e.height / 2 : a == mxConstants.ALIGN_BOTTOM ? e.y = c - e
-          .height : e.x = c, this.model.setGeometry(b[d],
-            e));
-        this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS, "align", a, "cells", b))
-      } finally {
-        this.model.endUpdate()
-      }
-    }
-  }
-  return b
-};
-mxGraph.prototype.flipEdge = function(a) {
-  if (null != a && null != this.alternateEdgeStyle) {
-    this.model.beginUpdate();
-    try {
-      var b = this.model.getStyle(a);
-      null == b || 0 == b.length ? this.model.setStyle(a, this.alternateEdgeStyle) : this.model.setStyle(a, null);
-      this.resetEdge(a);
-      this.fireEvent(new mxEventObject(mxEvent.FLIP_EDGE, "edge", a))
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-  return a
-};
-mxGraph.prototype.addImageBundle = function(a) {
-  this.imageBundles.push(a)
-};
-mxGraph.prototype.removeImageBundle = function(a) {
-  for (var b = [], c = 0; c < this.imageBundles.length; c++) this.imageBundles[c] != a && b.push(this.imageBundles[c]);
-  this.imageBundles = b
-};
-mxGraph.prototype.getImageFromBundles = function(a) {
-  if (null != a)
-    for (var b = 0; b < this.imageBundles.length; b++) {
-      var c = this.imageBundles[b].getImage(a);
-      if (null != c) return c
-    }
-  return null
-};
-mxGraph.prototype.orderCells = function(a, b) {
-  null == b && (b = mxUtils.sortCells(this.getSelectionCells(), !0));
-  this.model.beginUpdate();
-  try {
-    this.cellsOrdered(b, a), this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS, "back", a, "cells", b))
-  } finally {
-    this.model.endUpdate()
-  }
-  return b
-};
-mxGraph.prototype.cellsOrdered = function(a, b) {
-  if (null != a) {
-    this.model.beginUpdate();
-    try {
-      for (var c = 0; c < a.length; c++) {
-        var d = this.model.getParent(a[c]);
-        b ? this.model.add(d, a[c], c) : this.model.add(d, a[c], this.model.getChildCount(d) - 1)
-      }
-      this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED, "back", b, "cells", a))
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.groupCells = function(a, b, c) {
-  null == c && (c = mxUtils.sortCells(this.getSelectionCells(), !0));
-  c = this.getCellsForGroup(c);
-  null == a && (a = this.createGroupCell(c));
-  var d = this.getBoundsForGroup(a, c, b);
-  if (0 < c.length && null != d) {
-    var e = this.model.getParent(a);
-    null == e && (e = this.model.getParent(c[0]));
-    this.model.beginUpdate();
-    try {
-      null == this.getCellGeometry(a) && this.model.setGeometry(a, new mxGeometry);
-      var f = this.model.getChildCount(e);
-      this.cellsAdded([a], e, f, null, null, !1);
-      f = this.model.getChildCount(a);
-      this.cellsAdded(c, a, f, null, null, !1, !1);
-      this.cellsMoved(c, -d.x, -d.y, !1, !0);
-      this.cellsResized([a], [d]);
-      this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS, "group", a, "border", b, "cells", c))
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-  return a
-};
-mxGraph.prototype.getCellsForGroup = function(a) {
-  var b = [];
-  if (null != a && 0 < a.length) {
-    var c = this.model.getParent(a[0]);
-    b.push(a[0]);
-    for (var d = 1; d < a.length; d++) this.model.getParent(a[d]) == c && b.push(a[d])
-  }
-  return b
-};
-mxGraph.prototype.getBoundsForGroup = function(a, b, c) {
-  b = this.getBoundingBoxFromGeometry(b);
-  null != b && (this.isSwimlane(a) && (a = this.getStartSize(a), b.x -= a.width, b.y -= a.height, b.width += a.width, b.height += a.height), b.x -= c, b.y -= c, b.width += 2 * c, b.height += 2 * c);
-  return b
-};
-mxGraph.prototype.createGroupCell = function(a) {
-  a = new mxCell("");
-  a.setVertex(!0);
-  a.setConnectable(!1);
-  return a
-};
-mxGraph.prototype.ungroupCells = function(a) {
-  var b = [];
-  if (null == a) {
-    a = this.getSelectionCells();
-    for (var c = [], d = 0; d < a.length; d++) 0 < this.model.getChildCount(a[d]) && c.push(a[d]);
-    a = c
-  }
-  if (null != a && 0 < a.length) {
-    this.model.beginUpdate();
-    try {
-      for (d = 0; d < a.length; d++) {
-        var e = this.model.getChildren(a[d]);
-        if (null != e && 0 < e.length) {
-          var e = e.slice(),
-            f = this.model.getParent(a[d]),
-            g = this.model.getChildCount(f);
-          this.cellsAdded(e, f, g, null, null, !0);
-          b = b.concat(e)
-        }
-      }
-      this.cellsRemoved(this.addAllEdges(a));
-      this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,
-        "cells", a))
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-  return b
-};
-mxGraph.prototype.removeCellsFromParent = function(a) {
-  null == a && (a = this.getSelectionCells());
-  this.model.beginUpdate();
-  try {
-    var b = this.getDefaultParent(),
-      c = this.model.getChildCount(b);
-    this.cellsAdded(a, b, c, null, null, !0);
-    this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT, "cells", a))
-  } finally {
-    this.model.endUpdate()
-  }
-  return a
-};
-mxGraph.prototype.updateGroupBounds = function(a, b, c) {
-  null == a && (a = this.getSelectionCells());
-  b = null != b ? b : 0;
-  c = null != c ? c : !1;
-  this.model.beginUpdate();
-  try {
-    for (var d = 0; d < a.length; d++) {
-      var e = this.getCellGeometry(a[d]);
-      if (null != e) {
-        var f = this.getChildCells(a[d]);
-        if (null != f && 0 < f.length) {
-          var g = this.getBoundingBoxFromGeometry(f);
-          if (0 < g.width && 0 < g.height) {
-            var h = this.isSwimlane(a[d]) ? this.getStartSize(a[d]) : new mxRectangle,
-              e = e.clone();
-            c && (e.x += g.x - h.width - b, e.y += g.y - h.height - b);
-            e.width = g.width + h.width + 2 * b;
-            e.height =
-              g.height + h.height + 2 * b;
-            this.model.setGeometry(a[d], e);
-            this.moveCells(f, -g.x + h.width + b, -g.y + h.height + b)
-          }
-        }
-      }
-    }
-  } finally {
-    this.model.endUpdate()
-  }
-  return a
-};
-mxGraph.prototype.cloneCells = function(a, b) {
-  b = null != b ? b : !0;
-  var c = null;
-  if (null != a) {
-    for (var d = {}, c = [], e = 0; e < a.length; e++) {
-      var f = mxCellPath.create(a[e]);
-      d[f] = a[e];
-      c.push(a[e])
-    }
-    if (0 < c.length)
-      for (var f = this.view.scale, g = this.view.translate, c = this.model.cloneCells(a, !0), e = 0; e < a.length; e++)
-        if (!b && this.model.isEdge(c[e]) && null != this.getEdgeValidationError(c[e], this.model.getTerminal(c[e], !0), this.model.getTerminal(c[e], !1))) c[e] = null;
-        else {
-          var h = this.model.getGeometry(c[e]);
-          if (null != h) {
-            var k = this.view.getState(a[e]),
-              l = this.view.getState(this.model.getParent(a[e]));
-            if (null != k && null != l) {
-              var m = l.origin.x,
-                l = l.origin.y;
-              if (this.model.isEdge(c[e])) {
-                for (var k = k.absolutePoints, n = this.model.getTerminal(a[e], !0), p = mxCellPath.create(n); null != n && null == d[p];) n = this.model.getParent(n), p = mxCellPath.create(n);
-                null == n && h.setTerminalPoint(new mxPoint(k[0].x / f - g.x, k[0].y / f - g.y), !0);
-                n = this.model.getTerminal(a[e], !1);
-                for (p = mxCellPath.create(n); null != n && null == d[p];) n = this.model.getParent(n), p = mxCellPath.create(n);
-                null == n && (n = k.length -
-                  1, h.setTerminalPoint(new mxPoint(k[n].x / f - g.x, k[n].y / f - g.y), !1));
-                h = h.points;
-                if (null != h)
-                  for (k = 0; k < h.length; k++) h[k].x += m, h[k].y += l
-              } else h.x += m, h.y += l
-            }
-          }
-        } else c = []
-  }
-  return c
-};
-mxGraph.prototype.insertVertex = function(a, b, c, d, e, f, g, h, k) {
-  b = this.createVertex(a, b, c, d, e, f, g, h, k);
-  return this.addCell(b, a)
-};
-mxGraph.prototype.createVertex = function(a, b, c, d, e, f, g, h, k) {
-  a = new mxGeometry(d, e, f, g);
-  a.relative = null != k ? k : !1;
-  c = new mxCell(c, a, h);
-  c.setId(b);
-  c.setVertex(!0);
-  c.setConnectable(!0);
-  return c
-};
-mxGraph.prototype.insertEdge = function(a, b, c, d, e, f) {
-  b = this.createEdge(a, b, c, d, e, f);
-  return this.addEdge(b, a, d, e)
-};
-mxGraph.prototype.createEdge = function(a, b, c, d, e, f) {
-  a = new mxCell(c, new mxGeometry, f);
-  a.setId(b);
-  a.setEdge(!0);
-  a.geometry.relative = !0;
-  return a
-};
-mxGraph.prototype.addEdge = function(a, b, c, d, e) {
-  return this.addCell(a, b, e, c, d)
-};
-mxGraph.prototype.addCell = function(a, b, c, d, e) {
-  return this.addCells([a], b, c, d, e)[0]
-};
-mxGraph.prototype.addCells = function(a, b, c, d, e) {
-  null == b && (b = this.getDefaultParent());
-  null == c && (c = this.model.getChildCount(b));
-  this.model.beginUpdate();
-  try {
-    this.cellsAdded(a, b, c, d, e, !1, !0), this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS, "cells", a, "parent", b, "index", c, "source", d, "target", e))
-  } finally {
-    this.model.endUpdate()
-  }
-  return a
-};
-mxGraph.prototype.cellsAdded = function(a, b, c, d, e, f, g) {
-  if (null != a && null != b && null != c) {
-    this.model.beginUpdate();
-    try {
-      for (var h = f ? this.view.getState(b) : null, k = null != h ? h.origin : null, l = new mxPoint(0, 0), h = 0; h < a.length; h++)
-        if (null == a[h]) c--;
-        else {
-          var m = this.model.getParent(a[h]);
-          if (null != k && a[h] != b && b != m) {
-            var n = this.view.getState(m),
-              p = null != n ? n.origin : l,
-              q = this.model.getGeometry(a[h]);
-            if (null != q) {
-              var s = p.x - k.x,
-                r = p.y - k.y,
-                q = q.clone();
-              q.translate(s, r);
-              !q.relative && (this.model.isVertex(a[h]) && !this.isAllowNegativeCoordinates()) &&
-                (q.x = Math.max(0, q.x), q.y = Math.max(0, q.y));
-              this.model.setGeometry(a[h], q)
-            }
-          }
-          b == m && c + h > this.model.getChildCount(b) && c--;
-          this.model.add(b, a[h], c + h);
-          this.isExtendParentsOnAdd() && this.isExtendParent(a[h]) && this.extendParent(a[h]);
-          (null == g || g) && this.constrainChild(a[h]);
-          null != d && this.cellConnected(a[h], d, !0);
-          null != e && this.cellConnected(a[h], e, !1)
-        }
-      this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED, "cells", a, "parent", b, "index", c, "source", d, "target", e, "absolute", f))
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.removeCells = function(a, b) {
-  b = null != b ? b : !0;
-  null == a && (a = this.getDeletableCells(this.getSelectionCells()));
-  b && (a = this.getDeletableCells(this.addAllEdges(a)));
-  this.model.beginUpdate();
-  try {
-    this.cellsRemoved(a), this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS, "cells", a, "includeEdges", b))
-  } finally {
-    this.model.endUpdate()
-  }
-  return a
-};
-mxGraph.prototype.cellsRemoved = function(a) {
-  if (null != a && 0 < a.length) {
-    var b = this.view.scale,
-      c = this.view.translate;
-    this.model.beginUpdate();
-    try {
-      for (var d = {}, e = 0; e < a.length; e++) {
-        var f = mxCellPath.create(a[e]);
-        d[f] = a[e]
-      }
-      for (e = 0; e < a.length; e++) {
-        for (var g = this.getConnections(a[e]), h = 0; h < g.length; h++)
-          if (f = mxCellPath.create(g[h]), null == d[f]) {
-            var k = this.model.getGeometry(g[h]);
-            if (null != k) {
-              var l = this.view.getState(g[h]);
-              if (null != l) {
-                var k = k.clone(),
-                  m = l.getVisibleTerminal(!0) == a[e],
-                  n = l.absolutePoints,
-                  p = m ? 0 : n.length -
-                  1;
-                k.setTerminalPoint(new mxPoint(n[p].x / b - c.x, n[p].y / b - c.y), m);
-                this.model.setTerminal(g[h], null, m);
-                this.model.setGeometry(g[h], k)
-              }
-            }
-          }
-        this.model.remove(a[e])
-      }
-      this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED, "cells", a))
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.splitEdge = function(a, b, c, d, e) {
-  d = d || 0;
-  e = e || 0;
-  null == c && (c = this.cloneCells([a])[0]);
-  var f = this.model.getParent(a),
-    g = this.model.getTerminal(a, !0);
-  this.model.beginUpdate();
-  try {
-    this.cellsMoved(b, d, e, !1, !1), this.cellsAdded(b, f, this.model.getChildCount(f), null, null, !0), this.cellsAdded([c], f, this.model.getChildCount(f), g, b[0], !1), this.cellConnected(a, b[
-      0], !0), this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE, "edge", a, "cells", b, "newEdge", c, "dx", d, "dy", e))
-  } finally {
-    this.model.endUpdate()
-  }
-  return c
-};
-mxGraph.prototype.toggleCells = function(a, b, c) {
-  null == b && (b = this.getSelectionCells());
-  c && (b = this.addAllEdges(b));
-  this.model.beginUpdate();
-  try {
-    this.cellsToggled(b, a), this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS, "show", a, "cells", b, "includeEdges", c))
-  } finally {
-    this.model.endUpdate()
-  }
-  return b
-};
-mxGraph.prototype.cellsToggled = function(a, b) {
-  if (null != a && 0 < a.length) {
-    this.model.beginUpdate();
-    try {
-      for (var c = 0; c < a.length; c++) this.model.setVisible(a[c], b)
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.foldCells = function(a, b, c, d) {
-  b = null != b ? b : !1;
-  null == c && (c = this.getFoldableCells(this.getSelectionCells(), a));
-  this.stopEditing(!1);
-  this.model.beginUpdate();
-  try {
-    this.cellsFolded(c, a, b, d), this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS, "collapse", a, "recurse", b, "cells", c))
-  } finally {
-    this.model.endUpdate()
-  }
-  return c
-};
-mxGraph.prototype.cellsFolded = function(a, b, c, d) {
-  if (null != a && 0 < a.length) {
-    this.model.beginUpdate();
-    try {
-      for (var e = 0; e < a.length; e++)
-        if ((!d || this.isCellFoldable(a[e], b)) && b != this.isCellCollapsed(a[e]))
-          if (this.model.setCollapsed(a[e], b), this.swapBounds(a[e], b), this.isExtendParent(a[e]) && this.extendParent(a[e]), c) {
-            var f = this.model.getChildren(a[e]);
-            this.foldCells(f, b, c)
-          }
-      this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED, "cells", a, "collapse", b, "recurse", c))
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.swapBounds = function(a, b) {
-  if (null != a) {
-    var c = this.model.getGeometry(a);
-    null != c && (c = c.clone(), this.updateAlternateBounds(a, c, b), c.swap(), this.model.setGeometry(a, c))
-  }
-};
-mxGraph.prototype.updateAlternateBounds = function(a, b, c) {
-  if (null != a && null != b) {
-    c = this.view.getState(a);
-    c = null != c ? c.style : this.getCellStyle(a);
-    if (null == b.alternateBounds) {
-      var d = b;
-      this.collapseToPreferredSize && (a = this.getPreferredSizeForCell(a), null != a && (d = a, a = mxUtils.getValue(c, mxConstants.STYLE_STARTSIZE), 0 < a && (d.height = Math.max(d.height, a))));
-      b.alternateBounds = new mxRectangle(0, 0, d.width, d.height)
-    }
-    if (null != b.alternateBounds) {
-      b.alternateBounds.x = b.x;
-      b.alternateBounds.y = b.y;
-      var e = mxUtils.toRadians(c[mxConstants.STYLE_ROTATION] ||
-        "0");
-      0 != e && (a = b.alternateBounds.getCenterX() - b.getCenterX(), c = b.alternateBounds.getCenterY() - b.getCenterY(), d = Math.cos(e), e = Math.sin(e), b.alternateBounds.x += d * a - e * c - a,
-        b.alternateBounds.y += e * a + d * c - c)
-    }
-  }
-};
-mxGraph.prototype.addAllEdges = function(a) {
-  var b = a.slice();
-  return b = b.concat(this.getAllEdges(a))
-};
-mxGraph.prototype.getAllEdges = function(a) {
-  var b = [];
-  if (null != a)
-    for (var c = 0; c < a.length; c++) {
-      for (var d = this.model.getEdgeCount(a[c]), e = 0; e < d; e++) b.push(this.model.getEdgeAt(a[c], e));
-      d = this.model.getChildren(a[c]);
-      b = b.concat(this.getAllEdges(d))
-    }
-  return b
-};
-mxGraph.prototype.updateCellSize = function(a, b) {
-  b = null != b ? b : !1;
-  this.model.beginUpdate();
-  try {
-    this.cellSizeUpdated(a, b), this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE, "cell", a, "ignoreChildren", b))
-  } finally {
-    this.model.endUpdate()
-  }
-  return a
-};
-mxGraph.prototype.cellSizeUpdated = function(a, b) {
-  if (null != a) {
-    this.model.beginUpdate();
-    try {
-      var c = this.getPreferredSizeForCell(a),
-        d = this.model.getGeometry(a);
-      if (null != c && null != d) {
-        var e = this.isCellCollapsed(a),
-          d = d.clone();
-        if (this.isSwimlane(a)) {
-          var f = this.view.getState(a),
-            g = null != f ? f.style : this.getCellStyle(a),
-            h = this.model.getStyle(a);
-          null == h && (h = "");
-          mxUtils.getValue(g, mxConstants.STYLE_HORIZONTAL, !0) ? (h = mxUtils.setStyle(h, mxConstants.STYLE_STARTSIZE, c.height + 8), e && (d.height = c.height + 8), d.width = c.width) :
-            (h = mxUtils.setStyle(h, mxConstants.STYLE_STARTSIZE, c.width + 8), e && (d.width = c.width + 8), d.height = c.height);
-          this.model.setStyle(a, h)
-        } else d.width = c.width, d.height = c.height;
-        if (!b && !e) {
-          var k = this.view.getBounds(this.model.getChildren(a));
-          if (null != k) {
-            var l = this.view.translate,
-              m = this.view.scale,
-              n = (k.y + k.height) / m - d.y - l.y;
-            d.width = Math.max(d.width, (k.x + k.width) / m - d.x - l.x);
-            d.height = Math.max(d.height, n)
-          }
-        }
-        this.cellsResized([a], [d])
-      }
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.getPreferredSizeForCell = function(a) {
-  var b = null;
-  if (null != a) {
-    var c = this.view.getState(a),
-      d = null != c ? c.style : this.getCellStyle(a);
-    if (null != d && !this.model.isEdge(a)) {
-      var e = d[mxConstants.STYLE_FONTSIZE] || mxConstants.DEFAULT_FONTSIZE,
-        f = 0,
-        b = 0;
-      if ((null != this.getImage(c) || null != d[mxConstants.STYLE_IMAGE]) && d[mxConstants.STYLE_SHAPE] == mxConstants.SHAPE_LABEL) d[mxConstants.STYLE_VERTICAL_ALIGN] == mxConstants.ALIGN_MIDDLE &&
-        (f += parseFloat(d[mxConstants.STYLE_IMAGE_WIDTH]) || mxLabel.prototype.imageSize),
-        d[mxConstants.STYLE_ALIGN] != mxConstants.ALIGN_CENTER && (b += parseFloat(d[mxConstants.STYLE_IMAGE_HEIGHT]) || mxLabel.prototype.imageSize);
-      f += 2 * (d[mxConstants.STYLE_SPACING] || 0);
-      f += d[mxConstants.STYLE_SPACING_LEFT] || 0;
-      f += d[mxConstants.STYLE_SPACING_RIGHT] || 0;
-      b += 2 * (d[mxConstants.STYLE_SPACING] || 0);
-      b += d[mxConstants.STYLE_SPACING_TOP] || 0;
-      b += d[mxConstants.STYLE_SPACING_BOTTOM] || 0;
-      c = this.getFoldingImage(c);
-      null != c && (f += c.width + 8);
-      c = this.getLabel(a);
-      null != c && 0 < c.length ? (this.isHtmlLabel(a) || (c = c.replace(/\n/g,
-        "\x3cbr\x3e")), e = mxUtils.getSizeForString(c, e, d[mxConstants.STYLE_FONTFAMILY]), a = e.width + f, b = e.height + b, mxUtils.getValue(d, mxConstants.STYLE_HORIZONTAL, !0) || (d = b,
-        b = a, a = d), this.gridEnabled && (a = this.snap(a + this.gridSize / 2), b = this.snap(b + this.gridSize / 2)), b = new mxRectangle(0, 0, a, b)) : (d = 4 * this.gridSize, b = new mxRectangle(
-        0, 0, d, d))
-    }
-  }
-  return b
-};
-mxGraph.prototype.handleGesture = function(a, b) {
-  if (0.2 < Math.abs(1 - b.scale)) {
-    var c = this.view.scale,
-      d = this.view.translate,
-      e = a.width * b.scale,
-      f = a.height * b.scale,
-      g = a.y - (f - a.height) / 2,
-      c = new mxRectangle(this.snap((a.x - (e - a.width) / 2) / c) - d.x, this.snap(g / c) - d.y, this.snap(e / c), this.snap(f / c));
-    this.resizeCell(a.cell, c)
-  }
-};
-mxGraph.prototype.resizeCell = function(a, b) {
-  return this.resizeCells([a], [b])[0]
-};
-mxGraph.prototype.resizeCells = function(a, b) {
-  this.model.beginUpdate();
-  try {
-    this.cellsResized(a, b), this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS, "cells", a, "bounds", b))
-  } finally {
-    this.model.endUpdate()
-  }
-  return a
-};
-mxGraph.prototype.cellsResized = function(a, b) {
-  if (null != a && null != b && a.length == b.length) {
-    this.model.beginUpdate();
-    try {
-      for (var c = 0; c < a.length; c++) {
-        var d = b[c],
-          e = this.model.getGeometry(a[c]);
-        if (null != e && (e.x != d.x || e.y != d.y || e.width != d.width || e.height != d.height)) {
-          e = e.clone();
-          if (e.relative) {
-            var f = e.offset;
-            null != f && (f.x += d.x - e.x, f.y += d.y - e.y)
-          } else e.x = d.x, e.y = d.y;
-          e.width = d.width;
-          e.height = d.height;
-          !e.relative && (this.model.isVertex(a[c]) && !this.isAllowNegativeCoordinates()) && (e.x = Math.max(0, e.x), e.y = Math.max(0,
-            e.y));
-          this.model.setGeometry(a[c], e);
-          this.isExtendParent(a[c]) && this.extendParent(a[c])
-        }
-      }
-      this.resetEdgesOnResize && this.resetEdges(a);
-      this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED, "cells", a, "bounds", b))
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.extendParent = function(a) {
-  if (null != a) {
-    var b = this.model.getParent(a),
-      c = this.model.getGeometry(b);
-    if (null != b && (null != c && !this.isCellCollapsed(b)) && (a = this.model.getGeometry(a), null != a && (c.width < a.x + a.width || c.height < a.y + a.height))) c = c.clone(), c.width = Math.max(
-      c.width, a.x + a.width), c.height = Math.max(c.height, a.y + a.height), this.cellsResized([b], [c])
-  }
-};
-mxGraph.prototype.importCells = function(a, b, c, d, e) {
-  return this.moveCells(a, b, c, !0, d, e)
-};
-mxGraph.prototype.moveCells = function(a, b, c, d, e, f) {
-  b = null != b ? b : 0;
-  c = null != c ? c : 0;
-  d = null != d ? d : !1;
-  if (null != a && (0 != b || 0 != c || d || null != e)) {
-    this.model.beginUpdate();
-    try {
-      d && (a = this.cloneCells(a, this.isCloneInvalidEdges()), null == e && (e = this.getDefaultParent()));
-      var g = this.isAllowNegativeCoordinates();
-      null != e && this.setAllowNegativeCoordinates(!0);
-      this.cellsMoved(a, b, c, !d && this.isDisconnectOnMove() && this.isAllowDanglingEdges(), null == e);
-      this.setAllowNegativeCoordinates(g);
-      if (null != e) {
-        var h = this.model.getChildCount(e);
-        this.cellsAdded(a, e, h, null, null, !0)
-      }
-      this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS, "cells", a, "dx", b, "dy", c, "clone", d, "target", e, "event", f))
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-  return a
-};
-mxGraph.prototype.cellsMoved = function(a, b, c, d, e) {
-  if (null != a && (0 != b || 0 != c)) {
-    this.model.beginUpdate();
-    try {
-      d && this.disconnectGraph(a);
-      for (var f = 0; f < a.length; f++) this.translateCell(a[f], b, c), e && this.constrainChild(a[f]);
-      this.resetEdgesOnMove && this.resetEdges(a);
-      this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED, "cells", a, "dx", c, "dy", c, "disconnect", d))
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.translateCell = function(a, b, c) {
-  var d = this.model.getGeometry(a);
-  null != d && (d = d.clone(), d.translate(b, c), !d.relative && (this.model.isVertex(a) && !this.isAllowNegativeCoordinates()) && (d.x = Math.max(0, d.x), d.y = Math.max(0, d.y)), d.relative && !
-    this.model.isEdge(a) && (null == d.offset ? d.offset = new mxPoint(b, c) : (d.offset.x += b, d.offset.y += c)), this.model.setGeometry(a, d))
-};
-mxGraph.prototype.getCellContainmentArea = function(a) {
-  if (null != a && !this.model.isEdge(a)) {
-    var b = this.model.getParent(a);
-    if (b == this.getDefaultParent() || b == this.getCurrentRoot()) return this.getMaximumGraphBounds();
-    if (null != b && b != this.getDefaultParent()) {
-      var c = this.model.getGeometry(b);
-      if (null != c) {
-        var d = a = 0,
-          e = c.width,
-          c = c.height;
-        this.isSwimlane(b) && (b = this.getStartSize(b), a = b.width, e -= b.width, d = b.height, c -= b.height);
-        return new mxRectangle(a, d, e, c)
-      }
-    }
-  }
-  return null
-};
-mxGraph.prototype.getMaximumGraphBounds = function() {
-  return this.maximumGraphBounds
-};
-mxGraph.prototype.constrainChild = function(a) {
-  if (null != a) {
-    var b = this.model.getGeometry(a),
-      c = this.isConstrainChild(a) ? this.getCellContainmentArea(a) : this.getMaximumGraphBounds();
-    if (null != b && null != c && !b.relative && (b.x < c.x || b.y < c.y || c.width < b.x + b.width || c.height < b.y + b.height)) a = this.getOverlap(a), 0 < c.width && (b.x = Math.min(b.x, c.x +
-      c.width - (1 - a) * b.width)), 0 < c.height && (b.y = Math.min(b.y, c.y + c.height - (1 - a) * b.height)), b.x = Math.max(b.x, c.x - b.width * a), b.y = Math.max(b.y, c.y - b.height * a)
-  }
-};
-mxGraph.prototype.resetEdges = function(a) {
-  if (null != a) {
-    for (var b = {}, c = 0; c < a.length; c++) {
-      var d = mxCellPath.create(a[c]);
-      b[d] = a[c]
-    }
-    this.model.beginUpdate();
-    try {
-      for (c = 0; c < a.length; c++) {
-        var e = this.model.getEdges(a[c]);
-        if (null != e)
-          for (d = 0; d < e.length; d++) {
-            var f = this.view.getState(e[d]),
-              g = null != f ? f.getVisibleTerminal(!0) : this.view.getVisibleTerminal(e[d], !0),
-              h = null != f ? f.getVisibleTerminal(!1) : this.view.getVisibleTerminal(e[d], !1),
-              k = mxCellPath.create(g),
-              l = mxCellPath.create(h);
-            (null == b[k] || null == b[l]) && this.resetEdge(e[d])
-          }
-        this.resetEdges(this.model.getChildren(a[c]))
-      }
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.resetEdge = function(a) {
-  var b = this.model.getGeometry(a);
-  null != b && (null != b.points && 0 < b.points.length) && (b = b.clone(), b.points = [], this.model.setGeometry(a, b));
-  return a
-};
-mxGraph.prototype.getAllConnectionConstraints = function(a, b) {
-  return null != a && null != a.shape && null != a.shape.stencil ? a.shape.stencil.constraints : null
-};
-mxGraph.prototype.getConnectionConstraint = function(a, b, c) {
-  b = null;
-  var d = a.style[c ? mxConstants.STYLE_EXIT_X : mxConstants.STYLE_ENTRY_X];
-  if (null != d) {
-    var e = a.style[c ? mxConstants.STYLE_EXIT_Y : mxConstants.STYLE_ENTRY_Y];
-    null != e && (b = new mxPoint(parseFloat(d), parseFloat(e)))
-  }
-  d = !1;
-  null != b && (d = mxUtils.getValue(a.style, c ? mxConstants.STYLE_EXIT_PERIMETER : mxConstants.STYLE_ENTRY_PERIMETER, !0));
-  return new mxConnectionConstraint(b, d)
-};
-mxGraph.prototype.setConnectionConstraint = function(a, b, c, d) {
-  if (null != d) {
-    this.model.beginUpdate();
-    try {
-      null == d || null == d.point ? (this.setCellStyles(c ? mxConstants.STYLE_EXIT_X : mxConstants.STYLE_ENTRY_X, null, [a]), this.setCellStyles(c ? mxConstants.STYLE_EXIT_Y : mxConstants.STYLE_ENTRY_Y,
-        null, [a]), this.setCellStyles(c ? mxConstants.STYLE_EXIT_PERIMETER : mxConstants.STYLE_ENTRY_PERIMETER, null, [a])) : null != d.point && (this.setCellStyles(c ? mxConstants.STYLE_EXIT_X :
-        mxConstants.STYLE_ENTRY_X, d.point.x, [a]), this.setCellStyles(c ?
-        mxConstants.STYLE_EXIT_Y : mxConstants.STYLE_ENTRY_Y, d.point.y, [a]), d.perimeter ? this.setCellStyles(c ? mxConstants.STYLE_EXIT_PERIMETER : mxConstants.STYLE_ENTRY_PERIMETER, null, [
-        a
-      ]) : this.setCellStyles(c ? mxConstants.STYLE_EXIT_PERIMETER : mxConstants.STYLE_ENTRY_PERIMETER, "0", [a]))
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.getConnectionPoint = function(a, b) {
-  var c = null;
-  if (null != a) {
-    var d = this.view.getPerimeterBounds(a),
-      e = new mxPoint(d.getCenterX(), d.getCenterY()),
-      f = a.style[mxConstants.STYLE_DIRECTION],
-      g = 0;
-    if (null != f && ("north" == f ? g += 270 : "west" == f ? g += 180 : "south" == f && (g += 90), "north" == f || "south" == f)) {
-      d.x += d.width / 2 - d.height / 2;
-      d.y += d.height / 2 - d.width / 2;
-      var h = d.width;
-      d.width = d.height;
-      d.height = h
-    }
-    if (null != b.point) {
-      var k = c = 1,
-        l = 0,
-        m = 0;
-      if (this.getModel().isVertex(a.cell)) {
-        var n = a.style[mxConstants.STYLE_FLIPH],
-          p =
-          a.style[mxConstants.STYLE_FLIPV];
-        null != a.shape.stencil && (n = 1 == mxUtils.getValue(a.style, "stencilFlipH", 0) || n, p = 1 == mxUtils.getValue(a.style, "stencilFlipV", 0) || p);
-        if ("north" == f || "south" == f) h = n, n = p, p = h;
-        n && (c = -1, l = -d.width);
-        p && (k = -1, m = -d.height)
-      }
-      c = new mxPoint(d.x + b.point.x * d.width * c - l, d.y + b.point.y * d.height * k - m)
-    }
-    f = a.style[mxConstants.STYLE_ROTATION] || 0;
-    b.perimeter ? (0 != g && null != c && (h = d = 0, 90 == g ? h = 1 : 180 == g ? d = -1 : 270 == f && (h = -1), c = mxUtils.getRotatedPoint(c, d, h, e)), null != c && b.perimeter && (c = this.view
-      .getPerimeterPoint(a,
-        c, !1))) : f += g;
-    0 != f && null != c && (g = mxUtils.toRadians(f), d = Math.cos(g), h = Math.sin(g), c = mxUtils.getRotatedPoint(c, d, h, e))
-  }
-  return c
-};
-mxGraph.prototype.connectCell = function(a, b, c, d) {
-  this.model.beginUpdate();
-  try {
-    var e = this.model.getTerminal(a, c);
-    this.cellConnected(a, b, c, d);
-    this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL, "edge", a, "terminal", b, "source", c, "previous", e))
-  } finally {
-    this.model.endUpdate()
-  }
-  return a
-};
-mxGraph.prototype.cellConnected = function(a, b, c, d) {
-  if (null != a) {
-    this.model.beginUpdate();
-    try {
-      var e = this.model.getTerminal(a, c);
-      this.setConnectionConstraint(a, b, c, d);
-      this.isPortsEnabled() && (d = null, this.isPort(b) && (d = b.getId(), b = this.getTerminalForPort(b, c)), this.setCellStyles(c ? mxConstants.STYLE_SOURCE_PORT : mxConstants.STYLE_TARGET_PORT,
-        d, [a]));
-      this.model.setTerminal(a, b, c);
-      this.resetEdgesOnConnect && this.resetEdge(a);
-      this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED, "edge", a, "terminal", b, "source",
-        c, "previous", e))
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.disconnectGraph = function(a) {
-  if (null != a) {
-    this.model.beginUpdate();
-    try {
-      for (var b = this.view.scale, c = this.view.translate, d = {}, e = 0; e < a.length; e++) {
-        var f = mxCellPath.create(a[e]);
-        d[f] = a[e]
-      }
-      for (e = 0; e < a.length; e++)
-        if (this.model.isEdge(a[e])) {
-          var g = this.model.getGeometry(a[e]);
-          if (null != g) {
-            var h = this.view.getState(a[e]),
-              k = this.view.getState(this.model.getParent(a[e]));
-            if (null != h && null != k) {
-              var g = g.clone(),
-                l = -k.origin.x,
-                m = -k.origin.y,
-                n = h.absolutePoints,
-                p = this.model.getTerminal(a[e], !0);
-              if (null !=
-                p && this.isCellDisconnectable(a[e], p, !0)) {
-                for (var q = mxCellPath.create(p); null != p && null == d[q];) p = this.model.getParent(p), q = mxCellPath.create(p);
-                null == p && (g.setTerminalPoint(new mxPoint(n[0].x / b - c.x + l, n[0].y / b - c.y + m), !0), this.model.setTerminal(a[e], null, !0))
-              }
-              var s = this.model.getTerminal(a[e], !1);
-              if (null != s && this.isCellDisconnectable(a[e], s, !1)) {
-                for (var r = mxCellPath.create(s); null != s && null == d[r];) s = this.model.getParent(s), r = mxCellPath.create(s);
-                if (null == s) {
-                  var t = n.length - 1;
-                  g.setTerminalPoint(new mxPoint(n[t].x /
-                    b - c.x + l, n[t].y / b - c.y + m), !1);
-                  this.model.setTerminal(a[e], null, !1)
-                }
-              }
-              this.model.setGeometry(a[e], g)
-            }
-          }
-        }
-    } finally {
-      this.model.endUpdate()
-    }
-  }
-};
-mxGraph.prototype.getCurrentRoot = function() {
-  return this.view.currentRoot
-};
-mxGraph.prototype.getTranslateForRoot = function(a) {
-  return null
-};
-mxGraph.prototype.isPort = function(a) {
-  return !1
-};
-mxGraph.prototype.getTerminalForPort = function(a, b) {
-  return this.model.getParent(a)
-};
-mxGraph.prototype.getChildOffsetForCell = function(a) {
-  return null
-};
-mxGraph.prototype.enterGroup = function(a) {
-  a = a || this.getSelectionCell();
-  null != a && this.isValidRoot(a) && (this.view.setCurrentRoot(a), this.clearSelection())
-};
-mxGraph.prototype.exitGroup = function() {
-  var a = this.model.getRoot(),
-    b = this.getCurrentRoot();
-  if (null != b) {
-    for (var c = this.model.getParent(b); c != a && !this.isValidRoot(c) && this.model.getParent(c) != a;) c = this.model.getParent(c);
-    c == a || this.model.getParent(c) == a ? this.view.setCurrentRoot(null) : this.view.setCurrentRoot(c);
-    null != this.view.getState(b) && this.setSelectionCell(b)
-  }
-};
-mxGraph.prototype.home = function() {
-  var a = this.getCurrentRoot();
-  null != a && (this.view.setCurrentRoot(null), null != this.view.getState(a) && this.setSelectionCell(a))
-};
-mxGraph.prototype.isValidRoot = function(a) {
-  return null != a
-};
-mxGraph.prototype.getGraphBounds = function() {
-  return this.view.getGraphBounds()
-};
-mxGraph.prototype.getCellBounds = function(a, b, c) {
-  var d = [a];
-  b && (d = d.concat(this.model.getEdges(a)));
-  d = this.view.getBounds(d);
-  if (c) {
-    c = this.model.getChildCount(a);
-    for (var e = 0; e < c; e++) {
-      var f = this.getCellBounds(this.model.getChildAt(a, e), b, !0);
-      null != d ? d.add(f) : d = f
-    }
-  }
-  return d
-};
-mxGraph.prototype.getBoundingBoxFromGeometry = function(a, b) {
-  b = null != b ? b : !1;
-  var c = null;
-  if (null != a)
-    for (var d = 0; d < a.length; d++)
-      if (b || this.model.isVertex(a[d])) {
-        var e = this.getCellGeometry(a[d]);
-        if (null != e) {
-          var f = e.points;
-          if (null != f && 0 < f.length) {
-            for (var g = new mxRectangle(f[0].x, f[0].y, 0, 0), h = function(a) {
-                null != a && g.add(new mxRectangle(a.x, a.y, 0, 0))
-              }, k = 1; k < f.length; k++) h(f[k]);
-            h(e.getTerminalPoint(!0));
-            h(e.getTerminalPoint(!1))
-          }
-          null == c ? c = new mxRectangle(e.x, e.y, e.width, e.height) : c.add(e)
-        }
-      }
-  return c
-};
-mxGraph.prototype.refresh = function(a) {
-  this.view.clear(a, null == a);
-  this.view.validate();
-  this.sizeDidChange();
-  this.fireEvent(new mxEventObject(mxEvent.REFRESH))
-};
-mxGraph.prototype.snap = function(a) {
-  this.gridEnabled && (a = Math.round(a / this.gridSize) * this.gridSize);
-  return a
-};
-mxGraph.prototype.panGraph = function(a, b) {
-  if (this.useScrollbarsForPanning && mxUtils.hasScrollbars(this.container)) this.container.scrollLeft = -a, this.container.scrollTop = -b;
-  else {
-    var c = this.view.getCanvas();
-    if (this.dialect == mxConstants.DIALECT_SVG)
-      if (0 == a && 0 == b) {
-        if (mxClient.IS_IE ? c.setAttribute("transform", "translate(" + a + "," + b + ")") : c.removeAttribute("transform"), null != this.shiftPreview1) {
-          for (var d = this.shiftPreview1.firstChild; null != d;) {
-            var e = d.nextSibling;
-            this.container.appendChild(d);
-            d = e
-          }
-          this.shiftPreview1.parentNode.removeChild(this.shiftPreview1);
-          this.shiftPreview1 = null;
-          this.container.appendChild(c.parentNode);
-          for (d = this.shiftPreview2.firstChild; null != d;) e = d.nextSibling, this.container.appendChild(d), d = e;
-          this.shiftPreview2.parentNode.removeChild(this.shiftPreview2);
-          this.shiftPreview2 = null
-        }
-      } else {
-        c.setAttribute("transform", "translate(" + a + "," + b + ")");
-        if (null == this.shiftPreview1) {
-          this.shiftPreview1 = document.createElement("div");
-          this.shiftPreview1.style.position = "absolute";
-          this.shiftPreview1.style.overflow = "visible";
-          this.shiftPreview2 = document.createElement("div");
-          this.shiftPreview2.style.position = "absolute";
-          this.shiftPreview2.style.overflow = "visible";
-          for (var f = this.shiftPreview1, d = this.container.firstChild; null != d;) e = d.nextSibling, d != c.parentNode ? f.appendChild(d) : f = this.shiftPreview2, d = e;
-          this.container.insertBefore(this.shiftPreview1, c.parentNode);
-          this.container.appendChild(this.shiftPreview2)
-        }
-        this.shiftPreview1.style.left = a + "px";
-        this.shiftPreview1.style.top = b + "px";
-        this.shiftPreview2.style.left = a + "px";
-        this.shiftPreview2.style.top = b + "px"
-      } else c.style.left =
-      a + "px", c.style.top = b + "px";
-    this.panDx = a;
-    this.panDy = b;
-    this.fireEvent(new mxEventObject(mxEvent.PAN))
-  }
-};
-mxGraph.prototype.zoomIn = function() {
-  this.zoom(this.zoomFactor)
-};
-mxGraph.prototype.zoomOut = function() {
-  this.zoom(1 / this.zoomFactor)
-};
-mxGraph.prototype.zoomActual = function() {
-  1 == this.view.scale ? this.view.setTranslate(0, 0) : (this.view.translate.x = 0, this.view.translate.y = 0, this.view.setScale(1))
-};
-mxGraph.prototype.zoomTo = function(a, b) {
-  this.zoom(a / this.view.scale, b)
-};
-mxGraph.prototype.zoom = function(a, b) {
-  b = null != b ? b : this.centerZoom;
-  var c = this.view.scale * a,
-    d = this.view.getState(this.getSelectionCell());
-  if (this.keepSelectionVisibleOnZoom && null != d) d = new mxRectangle(d.x * a, d.y * a, d.width * a, d.height * a), this.view.scale = c, this.scrollRectToVisible(d) || (this.view.revalidate(),
-    this.view.setScale(c));
-  else if (b && !mxUtils.hasScrollbars(this.container)) {
-    var d = this.container.offsetWidth,
-      e = this.container.offsetHeight;
-    if (1 < a) var f = (a - 1) / (2 * c),
-      d = d * -f,
-      e = e * -f;
-    else f = (1 / a - 1) / (2 * this.view.scale),
-      d *= f, e *= f;
-    this.view.scaleAndTranslate(c, this.view.translate.x + d, this.view.translate.y + e)
-  } else this.view.setScale(c), mxUtils.hasScrollbars(this.container) && (e = d = 0, b && (d = this.container.offsetWidth * (a - 1) / 2, e = this.container.offsetHeight * (a - 1) / 2), this.container
-    .scrollLeft = Math.round(this.container.scrollLeft * a + d), this.container.scrollTop = Math.round(this.container.scrollTop * a + e))
-};
-mxGraph.prototype.zoomToRect = function(a) {
-  var b = this.container.clientWidth / a.width / (this.container.clientHeight / a.height);
-  a.x = Math.max(0, a.x);
-  a.y = Math.max(0, a.y);
-  var c = Math.min(this.container.scrollWidth, a.x + a.width),
-    d = Math.min(this.container.scrollHeight, a.y + a.height);
-  a.width = c - a.x;
-  a.height = d - a.y;
-  1 > b ? (b = a.height / b, c = (b - a.height) / 2, a.height = b, b = Math.min(a.y, c), a.y -= b, d = Math.min(this.container.scrollHeight, a.y + a.height), a.height = d - a.y) : (b *= a.width, c =
-    (b - a.width) / 2, a.width = b, b = Math.min(a.x, c), a.x -= b,
-    c = Math.min(this.container.scrollWidth, a.x + a.width), a.width = c - a.x);
-  b = this.container.clientWidth / a.width;
-  c = this.view.scale * b;
-  mxUtils.hasScrollbars(this.container) ? (this.view.setScale(c), this.container.scrollLeft = Math.round(a.x * b), this.container.scrollTop = Math.round(a.y * b)) : this.view.scaleAndTranslate(c,
-    this.view.translate.x - a.x / this.view.scale, this.view.translate.y - a.y / this.view.scale)
-};
-mxGraph.prototype.fit = function(a, b) {
-  if (null != this.container) {
-    a = null != a ? a : 0;
-    b = null != b ? b : !1;
-    var c = this.container.clientWidth,
-      d = this.container.clientHeight,
-      e = this.view.getGraphBounds();
-    b && (null != e.x && null != e.y) && (e.width += e.x, e.height += e.y, e.x = 0, e.y = 0);
-    var f = this.view.scale,
-      g = e.width / f,
-      h = e.height / f;
-    null != this.backgroundImage && (g = Math.max(g, this.backgroundImage.width - e.x / f), h = Math.max(h, this.backgroundImage.height - e.y / f));
-    var k = b ? a : 2 * a,
-      c = Math.floor(100 * Math.min(c / (g + k), d / (h + k))) / 100;
-    null != this.minFitScale &&
-      (c = Math.max(c, this.minFitScale));
-    null != this.maxFitScale && (c = Math.min(c, this.maxFitScale));
-    b ? this.view.scale != c && this.view.setScale(c) : mxUtils.hasScrollbars(this.container) ? (this.view.setScale(c), null != e.x && (this.container.scrollLeft = Math.round(e.x / f) * c - a -
-        Math.max(0, (this.container.clientWidth - g * c) / 2)), null != e.y && (this.container.scrollTop = Math.round(e.y / f) * c - a - Math.max(0, (this.container.clientHeight - h * c) / 2))) :
-      this.view.scaleAndTranslate(c, null != e.x ? Math.floor(this.view.translate.x - e.x / f + a + 1) : a, null !=
-        e.y ? Math.floor(this.view.translate.y - e.y / f + a + 1) : a)
-  }
-  return this.view.scale
-};
-mxGraph.prototype.scrollCellToVisible = function(a, b) {
-  var c = -this.view.translate.x,
-    d = -this.view.translate.y,
-    e = this.view.getState(a);
-  null != e && (c = new mxRectangle(c + e.x, d + e.y, e.width, e.height), b && null != this.container && (d = this.container.clientWidth, e = this.container.clientHeight, c.x = c.getCenterX() - d /
-    2, c.width = d, c.y = c.getCenterY() - e / 2, c.height = e), this.scrollRectToVisible(c) && this.view.setTranslate(this.view.translate.x, this.view.translate.y))
-};
-mxGraph.prototype.scrollRectToVisible = function(a) {
-  var b = !1;
-  if (null != a) {
-    var c = this.container.offsetWidth,
-      d = this.container.offsetHeight,
-      e = Math.min(c, a.width),
-      f = Math.min(d, a.height);
-    if (mxUtils.hasScrollbars(this.container)) {
-      c = this.container;
-      a.x += this.view.translate.x;
-      a.y += this.view.translate.y;
-      var g = c.scrollLeft - a.x,
-        d = Math.max(g - c.scrollLeft, 0);
-      0 < g ? c.scrollLeft -= g + 2 : (g = a.x + e - c.scrollLeft - c.clientWidth, 0 < g && (c.scrollLeft += g + 2));
-      e = c.scrollTop - a.y;
-      g = Math.max(0, e - c.scrollTop);
-      0 < e ? c.scrollTop -= e + 2 : (e = a.y +
-        f - c.scrollTop - c.clientHeight, 0 < e && (c.scrollTop += e + 2));
-      !this.useScrollbarsForPanning && (0 != d || 0 != g) && this.view.setTranslate(d, g)
-    } else {
-      var g = -this.view.translate.x,
-        h = -this.view.translate.y,
-        k = this.view.scale;
-      a.x + e > g + c && (this.view.translate.x -= (a.x + e - c - g) / k, b = !0);
-      a.y + f > h + d && (this.view.translate.y -= (a.y + f - d - h) / k, b = !0);
-      a.x < g && (this.view.translate.x += (g - a.x) / k, b = !0);
-      a.y < h && (this.view.translate.y += (h - a.y) / k, b = !0);
-      b && (this.view.refresh(), null != this.selectionCellsHandler && this.selectionCellsHandler.refresh())
-    }
-  }
-  return b
-};
-mxGraph.prototype.getCellGeometry = function(a) {
-  return this.model.getGeometry(a)
-};
-mxGraph.prototype.isCellVisible = function(a) {
-  return this.model.isVisible(a)
-};
-mxGraph.prototype.isCellCollapsed = function(a) {
-  return this.model.isCollapsed(a)
-};
-mxGraph.prototype.isCellConnectable = function(a) {
-  return this.model.isConnectable(a)
-};
-mxGraph.prototype.isOrthogonal = function(a) {
-  var b = a.style[mxConstants.STYLE_ORTHOGONAL];
-  if (null != b) return b;
-  a = this.view.getEdgeStyle(a);
-  return a == mxEdgeStyle.SegmentConnector || a == mxEdgeStyle.ElbowConnector || a == mxEdgeStyle.SideToSide || a == mxEdgeStyle.TopToBottom || a == mxEdgeStyle.EntityRelation || a == mxEdgeStyle.OrthConnector
-};
-mxGraph.prototype.isLoop = function(a) {
-  var b = a.getVisibleTerminalState(!0);
-  a = a.getVisibleTerminalState(!1);
-  return null != b && b == a
-};
-mxGraph.prototype.isCloneEvent = function(a) {
-  return mxEvent.isControlDown(a)
-};
-mxGraph.prototype.isToggleEvent = function(a) {
-  return mxClient.IS_MAC ? mxEvent.isMetaDown(a) : mxEvent.isControlDown(a)
-};
-mxGraph.prototype.isGridEnabledEvent = function(a) {
-  return null != a && !mxEvent.isAltDown(a)
-};
-mxGraph.prototype.isConstrainedEvent = function(a) {
-  return mxEvent.isShiftDown(a)
-};
-mxGraph.prototype.isForceMarqueeEvent = function(a) {
-  return mxEvent.isAltDown(a)
-};
-mxGraph.prototype.validationAlert = function(a) {
-  mxUtils.alert(a)
-};
-mxGraph.prototype.isEdgeValid = function(a, b, c) {
-  return null == this.getEdgeValidationError(a, b, c)
-};
-mxGraph.prototype.getEdgeValidationError = function(a, b, c) {
-  if (null != a && !this.isAllowDanglingEdges() && (null == b || null == c)) return "";
-  if (null != a && null == this.model.getTerminal(a, !0) && null == this.model.getTerminal(a, !1)) return null;
-  if (!this.allowLoops && b == c && null != b || !this.isValidConnection(b, c)) return "";
-  if (null != b && null != c) {
-    var d = "";
-    if (!this.multigraph) {
-      var e = this.model.getEdgesBetween(b, c, !0);
-      if (1 < e.length || 1 == e.length && e[0] != a) d += (mxResources.get(this.alreadyConnectedResource) || this.alreadyConnectedResource) +
-        "\n"
-    }
-    var e = this.model.getDirectedEdgeCount(b, !0, a),
-      f = this.model.getDirectedEdgeCount(c, !1, a);
-    if (null != this.multiplicities)
-      for (var g = 0; g < this.multiplicities.length; g++) {
-        var h = this.multiplicities[g].check(this, a, b, c, e, f);
-        null != h && (d += h)
-      }
-    h = this.validateEdge(a, b, c);
-    null != h && (d += h);
-    return 0 < d.length ? d : null
-  }
-  return this.allowDanglingEdges ? null : ""
-};
-mxGraph.prototype.validateEdge = function(a, b, c) {
-  return null
-};
-mxGraph.prototype.validateGraph = function(a, b) {
-  a = null != a ? a : this.model.getRoot();
-  b = null != b ? b : {};
-  for (var c = !0, d = this.model.getChildCount(a), e = 0; e < d; e++) {
-    var f = this.model.getChildAt(a, e),
-      g = b;
-    this.isValidRoot(f) && (g = {});
-    g = this.validateGraph(f, g);
-    null != g ? this.setCellWarning(f, g.replace(/\n/g, "\x3cbr\x3e")) : this.setCellWarning(f, null);
-    c = c && null == g
-  }
-  d = "";
-  this.isCellCollapsed(a) && !c && (d += (mxResources.get(this.containsValidationErrorsResource) || this.containsValidationErrorsResource) + "\n");
-  d = this.model.isEdge(a) ?
-    d + (this.getEdgeValidationError(a, this.model.getTerminal(a, !0), this.model.getTerminal(a, !1)) || "") : d + (this.getCellValidationError(a) || "");
-  e = this.validateCell(a, b);
-  null != e && (d += e);
-  null == this.model.getParent(a) && this.view.validate();
-  return 0 < d.length || !c ? d : null
-};
-mxGraph.prototype.getCellValidationError = function(a) {
-  var b = this.model.getDirectedEdgeCount(a, !0),
-    c = this.model.getDirectedEdgeCount(a, !1);
-  a = this.model.getValue(a);
-  var d = "";
-  if (null != this.multiplicities)
-    for (var e = 0; e < this.multiplicities.length; e++) {
-      var f = this.multiplicities[e];
-      if (f.source && mxUtils.isNode(a, f.type, f.attr, f.value) && (0 == f.max && 0 < b || 1 == f.min && 0 == b || 1 == f.max && 1 < b)) d += f.countError + "\n";
-      else if (!f.source && mxUtils.isNode(a, f.type, f.attr, f.value) && (0 == f.max && 0 < c || 1 == f.min && 0 == c || 1 == f.max && 1 <
-          c)) d += f.countError + "\n"
-    }
-  return 0 < d.length ? d : null
-};
-mxGraph.prototype.validateCell = function(a, b) {
-  return null
-};
-mxGraph.prototype.getBackgroundImage = function() {
-  return this.backgroundImage
-};
-mxGraph.prototype.setBackgroundImage = function(a) {
-  this.backgroundImage = a
-};
-mxGraph.prototype.getFoldingImage = function(a) {
-  if (null != a && this.foldingEnabled && !this.getModel().isEdge(a.cell)) {
-    var b = this.isCellCollapsed(a.cell);
-    if (this.isCellFoldable(a.cell, !b)) return b ? this.collapsedImage : this.expandedImage
-  }
-  return null
-};
-mxGraph.prototype.convertValueToString = function(a) {
-  a = this.model.getValue(a);
-  if (null != a) {
-    if (mxUtils.isNode(a)) return a.nodeName;
-    if ("function" == typeof a.toString) return a.toString()
-  }
-  return ""
-};
-mxGraph.prototype.getLabel = function(a) {
-  var b = "";
-  if (this.labelsVisible && null != a) {
-    var c = this.view.getState(a),
-      c = null != c ? c.style : this.getCellStyle(a);
-    mxUtils.getValue(c, mxConstants.STYLE_NOLABEL, !1) || (b = this.convertValueToString(a))
-  }
-  return b
-};
-mxGraph.prototype.isHtmlLabel = function(a) {
-  return this.isHtmlLabels()
-};
-mxGraph.prototype.isHtmlLabels = function() {
-  return this.htmlLabels
-};
-mxGraph.prototype.setHtmlLabels = function(a) {
-  this.htmlLabels = a
-};
-mxGraph.prototype.isWrapping = function(a) {
-  var b = this.view.getState(a);
-  a = null != b ? b.style : this.getCellStyle(a);
-  return null != a ? "wrap" == a[mxConstants.STYLE_WHITE_SPACE] : !1
-};
-mxGraph.prototype.isLabelClipped = function(a) {
-  var b = this.view.getState(a);
-  a = null != b ? b.style : this.getCellStyle(a);
-  return null != a ? "hidden" == a[mxConstants.STYLE_OVERFLOW] : !1
-};
-mxGraph.prototype.getTooltip = function(a, b, c, d) {
-  var e = null;
-  if (null != a) {
-    if (null != a.control && (b == a.control.node || b.parentNode == a.control.node)) e = this.collapseExpandResource, e = mxResources.get(e) || e;
-    null == e && null != a.overlays && a.overlays.visit(function(a, c) {
-      if (null == e && (b == c.node || b.parentNode == c.node)) e = c.overlay.toString()
-    });
-    null == e && (c = this.selectionCellsHandler.getHandler(a.cell), null != c && "function" == typeof c.getTooltipForNode && (e = c.getTooltipForNode(b)));
-    null == e && (e = this.getTooltipForCell(a.cell))
-  }
-  return e
-};
-mxGraph.prototype.getTooltipForCell = function(a) {
-  var b = null;
-  return b = null != a && null != a.getTooltip ? a.getTooltip() : this.convertValueToString(a)
-};
-mxGraph.prototype.getCursorForCell = function(a) {
-  return null
-};
-mxGraph.prototype.getStartSize = function(a) {
-  var b = new mxRectangle,
-    c = this.view.getState(a);
-  a = null != c ? c.style : this.getCellStyle(a);
-  null != a && (c = parseInt(mxUtils.getValue(a, mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE)), mxUtils.getValue(a, mxConstants.STYLE_HORIZONTAL, !0) ? b.height = c : b.width = c);
-  return b
-};
-mxGraph.prototype.getImage = function(a) {
-  return null != a && null != a.style ? a.style[mxConstants.STYLE_IMAGE] : null
-};
-mxGraph.prototype.getVerticalAlign = function(a) {
-  return null != a && null != a.style ? a.style[mxConstants.STYLE_VERTICAL_ALIGN] || mxConstants.ALIGN_MIDDLE : null
-};
-mxGraph.prototype.getIndicatorColor = function(a) {
-  return null != a && null != a.style ? a.style[mxConstants.STYLE_INDICATOR_COLOR] : null
-};
-mxGraph.prototype.getIndicatorGradientColor = function(a) {
-  return null != a && null != a.style ? a.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR] : null
-};
-mxGraph.prototype.getIndicatorShape = function(a) {
-  return null != a && null != a.style ? a.style[mxConstants.STYLE_INDICATOR_SHAPE] : null
-};
-mxGraph.prototype.getIndicatorImage = function(a) {
-  return null != a && null != a.style ? a.style[mxConstants.STYLE_INDICATOR_IMAGE] : null
-};
-mxGraph.prototype.getBorder = function() {
-  return this.border
-};
-mxGraph.prototype.setBorder = function(a) {
-  this.border = a
-};
-mxGraph.prototype.isSwimlane = function(a) {
-  if (null != a && this.model.getParent(a) != this.model.getRoot()) {
-    var b = this.view.getState(a),
-      b = null != b ? b.style : this.getCellStyle(a);
-    if (null != b && !this.model.isEdge(a)) return b[mxConstants.STYLE_SHAPE] == mxConstants.SHAPE_SWIMLANE
-  }
-  return !1
-};
-mxGraph.prototype.isResizeContainer = function() {
-  return this.resizeContainer
-};
-mxGraph.prototype.setResizeContainer = function(a) {
-  this.resizeContainer = a
-};
-mxGraph.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxGraph.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxGraph.prototype.isEscapeEnabled = function() {
-  return this.escapeEnabled
-};
-mxGraph.prototype.setEscapeEnabled = function(a) {
-  this.escapeEnabled = a
-};
-mxGraph.prototype.isInvokesStopCellEditing = function() {
-  return this.invokesStopCellEditing
-};
-mxGraph.prototype.setInvokesStopCellEditing = function(a) {
-  this.invokesStopCellEditing = a
-};
-mxGraph.prototype.isEnterStopsCellEditing = function() {
-  return this.enterStopsCellEditing
-};
-mxGraph.prototype.setEnterStopsCellEditing = function(a) {
-  this.enterStopsCellEditing = a
-};
-mxGraph.prototype.isCellLocked = function(a) {
-  var b = this.model.getGeometry(a);
-  return this.isCellsLocked() || null != b && this.model.isVertex(a) && b.relative
-};
-mxGraph.prototype.isCellsLocked = function() {
-  return this.cellsLocked
-};
-mxGraph.prototype.setCellsLocked = function(a) {
-  this.cellsLocked = a
-};
-mxGraph.prototype.getCloneableCells = function(a) {
-  return this.model.filterCells(a, mxUtils.bind(this, function(a) {
-    return this.isCellCloneable(a)
-  }))
-};
-mxGraph.prototype.isCellCloneable = function(a) {
-  var b = this.view.getState(a);
-  a = null != b ? b.style : this.getCellStyle(a);
-  return this.isCellsCloneable() && 0 != a[mxConstants.STYLE_CLONEABLE]
-};
-mxGraph.prototype.isCellsCloneable = function() {
-  return this.cellsCloneable
-};
-mxGraph.prototype.setCellsCloneable = function(a) {
-  this.cellsCloneable = a
-};
-mxGraph.prototype.getExportableCells = function(a) {
-  return this.model.filterCells(a, mxUtils.bind(this, function(a) {
-    return this.canExportCell(a)
-  }))
-};
-mxGraph.prototype.canExportCell = function(a) {
-  return this.exportEnabled
-};
-mxGraph.prototype.getImportableCells = function(a) {
-  return this.model.filterCells(a, mxUtils.bind(this, function(a) {
-    return this.canImportCell(a)
-  }))
-};
-mxGraph.prototype.canImportCell = function(a) {
-  return this.importEnabled
-};
-mxGraph.prototype.isCellSelectable = function(a) {
-  return this.isCellsSelectable()
-};
-mxGraph.prototype.isCellsSelectable = function() {
-  return this.cellsSelectable
-};
-mxGraph.prototype.setCellsSelectable = function(a) {
-  this.cellsSelectable = a
-};
-mxGraph.prototype.getDeletableCells = function(a) {
-  return this.model.filterCells(a, mxUtils.bind(this, function(a) {
-    return this.isCellDeletable(a)
-  }))
-};
-mxGraph.prototype.isCellDeletable = function(a) {
-  var b = this.view.getState(a);
-  a = null != b ? b.style : this.getCellStyle(a);
-  return this.isCellsDeletable() && 0 != a[mxConstants.STYLE_DELETABLE]
-};
-mxGraph.prototype.isCellsDeletable = function() {
-  return this.cellsDeletable
-};
-mxGraph.prototype.setCellsDeletable = function(a) {
-  this.cellsDeletable = a
-};
-mxGraph.prototype.isLabelMovable = function(a) {
-  return !this.isCellLocked(a) && (this.model.isEdge(a) && this.edgeLabelsMovable || this.model.isVertex(a) && this.vertexLabelsMovable)
-};
-mxGraph.prototype.getMovableCells = function(a) {
-  return this.model.filterCells(a, mxUtils.bind(this, function(a) {
-    return this.isCellMovable(a)
-  }))
-};
-mxGraph.prototype.isCellMovable = function(a) {
-  var b = this.view.getState(a),
-    b = null != b ? b.style : this.getCellStyle(a);
-  return this.isCellsMovable() && !this.isCellLocked(a) && 0 != b[mxConstants.STYLE_MOVABLE]
-};
-mxGraph.prototype.isCellsMovable = function() {
-  return this.cellsMovable
-};
-mxGraph.prototype.setCellsMovable = function(a) {
-  this.cellsMovable = a
-};
-mxGraph.prototype.isGridEnabled = function() {
-  return this.gridEnabled
-};
-mxGraph.prototype.setGridEnabled = function(a) {
-  this.gridEnabled = a
-};
-mxGraph.prototype.isPortsEnabled = function() {
-  return this.portsEnabled
-};
-mxGraph.prototype.setPortsEnabled = function(a) {
-  this.portsEnabled = a
-};
-mxGraph.prototype.getGridSize = function() {
-  return this.gridSize
-};
-mxGraph.prototype.setGridSize = function(a) {
-  this.gridSize = a
-};
-mxGraph.prototype.getTolerance = function() {
-  return this.tolerance
-};
-mxGraph.prototype.setTolerance = function(a) {
-  this.tolerance = a
-};
-mxGraph.prototype.isVertexLabelsMovable = function() {
-  return this.vertexLabelsMovable
-};
-mxGraph.prototype.setVertexLabelsMovable = function(a) {
-  this.vertexLabelsMovable = a
-};
-mxGraph.prototype.isEdgeLabelsMovable = function() {
-  return this.edgeLabelsMovable
-};
-mxGraph.prototype.setEdgeLabelsMovable = function(a) {
-  this.edgeLabelsMovable = a
-};
-mxGraph.prototype.isSwimlaneNesting = function() {
-  return this.swimlaneNesting
-};
-mxGraph.prototype.setSwimlaneNesting = function(a) {
-  this.swimlaneNesting = a
-};
-mxGraph.prototype.isSwimlaneSelectionEnabled = function() {
-  return this.swimlaneSelectionEnabled
-};
-mxGraph.prototype.setSwimlaneSelectionEnabled = function(a) {
-  this.swimlaneSelectionEnabled = a
-};
-mxGraph.prototype.isMultigraph = function() {
-  return this.multigraph
-};
-mxGraph.prototype.setMultigraph = function(a) {
-  this.multigraph = a
-};
-mxGraph.prototype.isAllowLoops = function() {
-  return this.allowLoops
-};
-mxGraph.prototype.setAllowDanglingEdges = function(a) {
-  this.allowDanglingEdges = a
-};
-mxGraph.prototype.isAllowDanglingEdges = function() {
-  return this.allowDanglingEdges
-};
-mxGraph.prototype.setConnectableEdges = function(a) {
-  this.connectableEdges = a
-};
-mxGraph.prototype.isConnectableEdges = function() {
-  return this.connectableEdges
-};
-mxGraph.prototype.setCloneInvalidEdges = function(a) {
-  this.cloneInvalidEdges = a
-};
-mxGraph.prototype.isCloneInvalidEdges = function() {
-  return this.cloneInvalidEdges
-};
-mxGraph.prototype.setAllowLoops = function(a) {
-  this.allowLoops = a
-};
-mxGraph.prototype.isDisconnectOnMove = function() {
-  return this.disconnectOnMove
-};
-mxGraph.prototype.setDisconnectOnMove = function(a) {
-  this.disconnectOnMove = a
-};
-mxGraph.prototype.isDropEnabled = function() {
-  return this.dropEnabled
-};
-mxGraph.prototype.setDropEnabled = function(a) {
-  this.dropEnabled = a
-};
-mxGraph.prototype.isSplitEnabled = function() {
-  return this.splitEnabled
-};
-mxGraph.prototype.setSplitEnabled = function(a) {
-  this.splitEnabled = a
-};
-mxGraph.prototype.isCellResizable = function(a) {
-  var b = this.view.getState(a),
-    b = null != b ? b.style : this.getCellStyle(a);
-  return this.isCellsResizable() && !this.isCellLocked(a) && 0 != b[mxConstants.STYLE_RESIZABLE]
-};
-mxGraph.prototype.isCellsResizable = function() {
-  return this.cellsResizable
-};
-mxGraph.prototype.setCellsResizable = function(a) {
-  this.cellsResizable = a
-};
-mxGraph.prototype.isTerminalPointMovable = function(a, b) {
-  return !0
-};
-mxGraph.prototype.isCellBendable = function(a) {
-  var b = this.view.getState(a),
-    b = null != b ? b.style : this.getCellStyle(a);
-  return this.isCellsBendable() && !this.isCellLocked(a) && 0 != b[mxConstants.STYLE_BENDABLE]
-};
-mxGraph.prototype.isCellsBendable = function() {
-  return this.cellsBendable
-};
-mxGraph.prototype.setCellsBendable = function(a) {
-  this.cellsBendable = a
-};
-mxGraph.prototype.isCellEditable = function(a) {
-  var b = this.view.getState(a),
-    b = null != b ? b.style : this.getCellStyle(a);
-  return this.isCellsEditable() && !this.isCellLocked(a) && 0 != b[mxConstants.STYLE_EDITABLE]
-};
-mxGraph.prototype.isCellsEditable = function() {
-  return this.cellsEditable
-};
-mxGraph.prototype.setCellsEditable = function(a) {
-  this.cellsEditable = a
-};
-mxGraph.prototype.isCellDisconnectable = function(a, b, c) {
-  return this.isCellsDisconnectable() && !this.isCellLocked(a)
-};
-mxGraph.prototype.isCellsDisconnectable = function() {
-  return this.cellsDisconnectable
-};
-mxGraph.prototype.setCellsDisconnectable = function(a) {
-  this.cellsDisconnectable = a
-};
-mxGraph.prototype.isValidSource = function(a) {
-  return null == a && this.allowDanglingEdges || null != a && (!this.model.isEdge(a) || this.connectableEdges) && this.isCellConnectable(a)
-};
-mxGraph.prototype.isValidTarget = function(a) {
-  return this.isValidSource(a)
-};
-mxGraph.prototype.isValidConnection = function(a, b) {
-  return this.isValidSource(a) && this.isValidTarget(b)
-};
-mxGraph.prototype.setConnectable = function(a) {
-  this.connectionHandler.setEnabled(a)
-};
-mxGraph.prototype.isConnectable = function(a) {
-  return this.connectionHandler.isEnabled()
-};
-mxGraph.prototype.setTooltips = function(a) {
-  this.tooltipHandler.setEnabled(a)
-};
-mxGraph.prototype.setPanning = function(a) {
-  this.panningHandler.panningEnabled = a
-};
-mxGraph.prototype.isEditing = function(a) {
-  if (null != this.cellEditor) {
-    var b = this.cellEditor.getEditingCell();
-    return null == a ? null != b : a == b
-  }
-  return !1
-};
-mxGraph.prototype.isAutoSizeCell = function(a) {
-  var b = this.view.getState(a);
-  a = null != b ? b.style : this.getCellStyle(a);
-  return this.isAutoSizeCells() || 1 == a[mxConstants.STYLE_AUTOSIZE]
-};
-mxGraph.prototype.isAutoSizeCells = function() {
-  return this.autoSizeCells
-};
-mxGraph.prototype.setAutoSizeCells = function(a) {
-  this.autoSizeCells = a
-};
-mxGraph.prototype.isExtendParent = function(a) {
-  return !this.getModel().isEdge(a) && this.isExtendParents()
-};
-mxGraph.prototype.isExtendParents = function() {
-  return this.extendParents
-};
-mxGraph.prototype.setExtendParents = function(a) {
-  this.extendParents = a
-};
-mxGraph.prototype.isExtendParentsOnAdd = function() {
-  return this.extendParentsOnAdd
-};
-mxGraph.prototype.setExtendParentsOnAdd = function(a) {
-  this.extendParentsOnAdd = a
-};
-mxGraph.prototype.isConstrainChild = function(a) {
-  return this.isConstrainChildren() && !this.getModel().isEdge(this.getModel().getParent(a))
-};
-mxGraph.prototype.isConstrainChildren = function() {
-  return this.constrainChildren
-};
-mxGraph.prototype.setConstrainChildren = function(a) {
-  this.constrainChildren = a
-};
-mxGraph.prototype.isAllowNegativeCoordinates = function() {
-  return this.allowNegativeCoordinates
-};
-mxGraph.prototype.setAllowNegativeCoordinates = function(a) {
-  this.allowNegativeCoordinates = a
-};
-mxGraph.prototype.getOverlap = function(a) {
-  return this.isAllowOverlapParent(a) ? this.defaultOverlap : 0
-};
-mxGraph.prototype.isAllowOverlapParent = function(a) {
-  return !1
-};
-mxGraph.prototype.getFoldableCells = function(a, b) {
-  return this.model.filterCells(a, mxUtils.bind(this, function(a) {
-    return this.isCellFoldable(a, b)
-  }))
-};
-mxGraph.prototype.isCellFoldable = function(a, b) {
-  var c = this.view.getState(a),
-    c = null != c ? c.style : this.getCellStyle(a);
-  return 0 < this.model.getChildCount(a) && 0 != c[mxConstants.STYLE_FOLDABLE]
-};
-mxGraph.prototype.isValidDropTarget = function(a, b, c) {
-  return null != a && (this.isSplitEnabled() && this.isSplitTarget(a, b, c) || !this.model.isEdge(a) && (this.isSwimlane(a) || 0 < this.model.getChildCount(a) && !this.isCellCollapsed(a)))
-};
-mxGraph.prototype.isSplitTarget = function(a, b, c) {
-  return this.model.isEdge(a) && null != b && 1 == b.length && this.isCellConnectable(b[0]) && null == this.getEdgeValidationError(a, this.model.getTerminal(a, !0), b[0]) ? (c = this.model.getTerminal(
-    a, !0), a = this.model.getTerminal(a, !1), !this.model.isAncestor(b[0], c) && !this.model.isAncestor(b[0], a)) : !1
-};
-mxGraph.prototype.getDropTarget = function(a, b, c) {
-  if (!this.isSwimlaneNesting())
-    for (var d = 0; d < a.length; d++)
-      if (this.isSwimlane(a[d])) return null;
-  d = mxUtils.convertPoint(this.container, mxEvent.getClientX(b), mxEvent.getClientY(b));
-  d.x -= this.panDx;
-  d.y -= this.panDy;
-  d = this.getSwimlaneAt(d.x, d.y);
-  if (null == c) c = d;
-  else if (null != d) {
-    for (var e = this.model.getParent(d); null != e && this.isSwimlane(e) && e != c;) e = this.model.getParent(e);
-    e == c && (c = d)
-  }
-  for (; null != c && !this.isValidDropTarget(c, a, b) && !this.model.isLayer(c);) c = this.model.getParent(c);
-  return !this.model.isLayer(c) && 0 > mxUtils.indexOf(a, c) ? c : null
-};
-mxGraph.prototype.getDefaultParent = function() {
-  var a = this.defaultParent;
-  null == a && (a = this.getCurrentRoot(), null == a && (a = this.model.getRoot(), a = this.model.getChildAt(a, 0)));
-  return a
-};
-mxGraph.prototype.setDefaultParent = function(a) {
-  this.defaultParent = a
-};
-mxGraph.prototype.getSwimlane = function(a) {
-  for (; null != a && !this.isSwimlane(a);) a = this.model.getParent(a);
-  return a
-};
-mxGraph.prototype.getSwimlaneAt = function(a, b, c) {
-  c = c || this.getDefaultParent();
-  if (null != c)
-    for (var d = this.model.getChildCount(c), e = 0; e < d; e++) {
-      var f = this.model.getChildAt(c, e),
-        g = this.getSwimlaneAt(a, b, f);
-      if (null != g) return g;
-      if (this.isSwimlane(f) && (g = this.view.getState(f), this.intersects(g, a, b))) return f
-    }
-  return null
-};
-mxGraph.prototype.getCellAt = function(a, b, c, d, e) {
-  d = null != d ? d : !0;
-  e = null != e ? e : !0;
-  c = null != c ? c : this.getDefaultParent();
-  if (null != c)
-    for (var f = this.model.getChildCount(c) - 1; 0 <= f; f--) {
-      var g = this.model.getChildAt(c, f),
-        h = this.getCellAt(a, b, g, d, e);
-      if (null != h) return h;
-      if (this.isCellVisible(g) && (e && this.model.isEdge(g) || d && this.model.isVertex(g)))
-        if (h = this.view.getState(g), this.intersects(h, a, b)) return g
-    }
-  return null
-};
-mxGraph.prototype.intersects = function(a, b, c) {
-  if (null != a) {
-    var d = a.absolutePoints;
-    if (null != d) {
-      a = this.tolerance * this.tolerance;
-      for (var e = d[0], f = 1; f < d.length; f++) {
-        var g = d[f];
-        if (mxUtils.ptSegDistSq(e.x, e.y, g.x, g.y, b, c) <= a) return !0;
-        e = g
-      }
-    } else if (e = mxUtils.toRadians(mxUtils.getValue(a.style, mxConstants.STYLE_ROTATION) || 0), 0 != e && (d = Math.cos(-e), e = Math.sin(-e), f = new mxPoint(a.getCenterX(), a.getCenterY()), e =
-        mxUtils.getRotatedPoint(new mxPoint(b, c), d, e, f), b = e.x, c = e.y), mxUtils.contains(a, b, c)) return !0
-  }
-  return !1
-};
-mxGraph.prototype.hitsSwimlaneContent = function(a, b, c) {
-  var d = this.getView().getState(a);
-  a = this.getStartSize(a);
-  if (null != d) {
-    var e = this.getView().getScale();
-    b -= d.x;
-    c -= d.y;
-    if (0 < a.width && 0 < b && b > a.width * e || 0 < a.height && 0 < c && c > a.height * e) return !0
-  }
-  return !1
-};
-mxGraph.prototype.getChildVertices = function(a) {
-  return this.getChildCells(a, !0, !1)
-};
-mxGraph.prototype.getChildEdges = function(a) {
-  return this.getChildCells(a, !1, !0)
-};
-mxGraph.prototype.getChildCells = function(a, b, c) {
-  a = null != a ? a : this.getDefaultParent();
-  a = this.model.getChildCells(a, null != b ? b : !1, null != c ? c : !1);
-  b = [];
-  for (c = 0; c < a.length; c++) this.isCellVisible(a[c]) && b.push(a[c]);
-  return b
-};
-mxGraph.prototype.getConnections = function(a, b) {
-  return this.getEdges(a, b, !0, !0, !1)
-};
-mxGraph.prototype.getIncomingEdges = function(a, b) {
-  return this.getEdges(a, b, !0, !1, !1)
-};
-mxGraph.prototype.getOutgoingEdges = function(a, b) {
-  return this.getEdges(a, b, !1, !0, !1)
-};
-mxGraph.prototype.getEdges = function(a, b, c, d, e, f) {
-  c = null != c ? c : !0;
-  d = null != d ? d : !0;
-  e = null != e ? e : !0;
-  f = null != f ? f : !1;
-  for (var g = [], h = this.isCellCollapsed(a), k = this.model.getChildCount(a), l = 0; l < k; l++) {
-    var m = this.model.getChildAt(a, l);
-    if (h || !this.isCellVisible(m)) g = g.concat(this.model.getEdges(m, c, d))
-  }
-  g = g.concat(this.model.getEdges(a, c, d));
-  h = [];
-  for (l = 0; l < g.length; l++) m = this.view.getState(g[l]), k = null != m ? m.getVisibleTerminal(!0) : this.view.getVisibleTerminal(g[l], !0), m = null != m ? m.getVisibleTerminal(!1) : this.view
-    .getVisibleTerminal(g[l], !1), (e && k == m || k != m && (c && m == a && (null == b || this.isValidAncestor(k, b, f)) || d && k == a && (null == b || this.isValidAncestor(m, b, f)))) && h.push(
-      g[l]);
-  return h
-};
-mxGraph.prototype.isValidAncestor = function(a, b, c) {
-  return c ? this.model.isAncestor(b, a) : this.model.getParent(a) == b
-};
-mxGraph.prototype.getOpposites = function(a, b, c, d) {
-  c = null != c ? c : !0;
-  d = null != d ? d : !0;
-  var e = [],
-    f = {};
-  if (null != a)
-    for (var g = 0; g < a.length; g++) {
-      var h = this.view.getState(a[g]),
-        k = null != h ? h.getVisibleTerminal(!0) : this.view.getVisibleTerminal(a[g], !0),
-        h = null != h ? h.getVisibleTerminal(!1) : this.view.getVisibleTerminal(a[g], !1);
-      if (k == b && null != h && h != b && d) {
-        var l = mxCellPath.create(h);
-        null == f[l] && (f[l] = h, e.push(h))
-      } else h == b && (null != k && k != b && c) && (l = mxCellPath.create(k), null == f[l] && (f[l] = k, e.push(k)))
-    }
-  return e
-};
-mxGraph.prototype.getEdgesBetween = function(a, b, c) {
-  c = null != c ? c : !1;
-  for (var d = this.getEdges(a), e = [], f = 0; f < d.length; f++) {
-    var g = this.view.getState(d[f]),
-      h = null != g ? g.getVisibleTerminal(!0) : this.view.getVisibleTerminal(d[f], !0),
-      g = null != g ? g.getVisibleTerminal(!1) : this.view.getVisibleTerminal(d[f], !1);
-    (h == a && g == b || !c && h == b && g == a) && e.push(d[f])
-  }
-  return e
-};
-mxGraph.prototype.getPointForEvent = function(a, b) {
-  var c = mxUtils.convertPoint(this.container, mxEvent.getClientX(a), mxEvent.getClientY(a)),
-    d = this.view.scale,
-    e = this.view.translate,
-    f = !1 != b ? this.gridSize / 2 : 0;
-  c.x = this.snap(c.x / d - e.x - f);
-  c.y = this.snap(c.y / d - e.y - f);
-  return c
-};
-mxGraph.prototype.getCells = function(a, b, c, d, e, f) {
-  f = null != f ? f : [];
-  if (0 < c || 0 < d) {
-    var g = a + c,
-      h = b + d;
-    e = e || this.getDefaultParent();
-    if (null != e)
-      for (var k = this.model.getChildCount(e), l = 0; l < k; l++) {
-        var m = this.model.getChildAt(e, l),
-          n = this.view.getState(m);
-        if (this.isCellVisible(m) && null != n) {
-          var p = n,
-            n = mxUtils.getValue(n.style, mxConstants.STYLE_ROTATION) || 0;
-          0 != n && (p = mxUtils.getBoundingBox(p, n));
-          p.x >= a && p.y + p.height <= h && p.y >= b && p.x + p.width <= g ? f.push(m) : this.getCells(a, b, c, d, m, f)
-        }
-      }
-  }
-  return f
-};
-mxGraph.prototype.getCellsBeyond = function(a, b, c, d, e) {
-  var f = [];
-  if (d || e)
-    if (null == c && (c = this.getDefaultParent()), null != c)
-      for (var g = this.model.getChildCount(c), h = 0; h < g; h++) {
-        var k = this.model.getChildAt(c, h),
-          l = this.view.getState(k);
-        this.isCellVisible(k) && null != l && (!d || l.x >= a) && (!e || l.y >= b) && f.push(k)
-      }
-  return f
-};
-mxGraph.prototype.findTreeRoots = function(a, b, c) {
-  b = null != b ? b : !1;
-  c = null != c ? c : !1;
-  var d = [];
-  if (null != a) {
-    for (var e = this.getModel(), f = e.getChildCount(a), g = null, h = 0, k = 0; k < f; k++) {
-      var l = e.getChildAt(a, k);
-      if (this.model.isVertex(l) && this.isCellVisible(l)) {
-        for (var m = this.getConnections(l, b ? a : null), n = 0, p = 0, q = 0; q < m.length; q++) this.view.getVisibleTerminal(m[q], !0) == l ? n++ : p++;
-        (c && 0 == n && 0 < p || !c && 0 == p && 0 < n) && d.push(l);
-        m = c ? p - n : n - p;
-        m > h && (h = m, g = l)
-      }
-    }
-    0 == d.length && null != g && d.push(g)
-  }
-  return d
-};
-mxGraph.prototype.traverse = function(a, b, c, d, e) {
-  if (null != c && null != a) {
-    b = null != b ? b : !0;
-    e = e || [];
-    var f = mxCellPath.create(a);
-    if (null == e[f] && (e[f] = a, d = c(a, d), null == d || d))
-      if (d = this.model.getEdgeCount(a), 0 < d)
-        for (f = 0; f < d; f++) {
-          var g = this.model.getEdgeAt(a, f),
-            h = this.model.getTerminal(g, !0) == a;
-          if (!b || h) h = this.model.getTerminal(g, !h), this.traverse(h, b, c, g, e)
-        }
-  }
-};
-mxGraph.prototype.isCellSelected = function(a) {
-  return this.getSelectionModel().isSelected(a)
-};
-mxGraph.prototype.isSelectionEmpty = function() {
-  return this.getSelectionModel().isEmpty()
-};
-mxGraph.prototype.clearSelection = function() {
-  return this.getSelectionModel().clear()
-};
-mxGraph.prototype.getSelectionCount = function() {
-  return this.getSelectionModel().cells.length
-};
-mxGraph.prototype.getSelectionCell = function() {
-  return this.getSelectionModel().cells[0]
-};
-mxGraph.prototype.getSelectionCells = function() {
-  return this.getSelectionModel().cells.slice()
-};
-mxGraph.prototype.setSelectionCell = function(a) {
-  this.getSelectionModel().setCell(a)
-};
-mxGraph.prototype.setSelectionCells = function(a) {
-  this.getSelectionModel().setCells(a)
-};
-mxGraph.prototype.addSelectionCell = function(a) {
-  this.getSelectionModel().addCell(a)
-};
-mxGraph.prototype.addSelectionCells = function(a) {
-  this.getSelectionModel().addCells(a)
-};
-mxGraph.prototype.removeSelectionCell = function(a) {
-  this.getSelectionModel().removeCell(a)
-};
-mxGraph.prototype.removeSelectionCells = function(a) {
-  this.getSelectionModel().removeCells(a)
-};
-mxGraph.prototype.selectRegion = function(a, b) {
-  var c = this.getCells(a.x, a.y, a.width, a.height);
-  this.selectCellsForEvent(c, b);
-  return c
-};
-mxGraph.prototype.selectNextCell = function() {
-  this.selectCell(!0)
-};
-mxGraph.prototype.selectPreviousCell = function() {
-  this.selectCell()
-};
-mxGraph.prototype.selectParentCell = function() {
-  this.selectCell(!1, !0)
-};
-mxGraph.prototype.selectChildCell = function() {
-  this.selectCell(!1, !1, !0)
-};
-mxGraph.prototype.selectCell = function(a, b, c) {
-  var d = this.selectionModel,
-    e = 0 < d.cells.length ? d.cells[0] : null;
-  1 < d.cells.length && d.clear();
-  var d = null != e ? this.model.getParent(e) : this.getDefaultParent(),
-    f = this.model.getChildCount(d);
-  null == e && 0 < f ? (a = this.model.getChildAt(d, 0), this.setSelectionCell(a)) : (null == e || b) && null != this.view.getState(d) && null != this.model.getGeometry(d) ? this.getCurrentRoot() !=
-    d && this.setSelectionCell(d) : null != e && c ? 0 < this.model.getChildCount(e) && (a = this.model.getChildAt(e, 0), this.setSelectionCell(a)) :
-    0 < f && (b = d.getIndex(e), a ? (b++, a = this.model.getChildAt(d, b % f)) : (b--, a = this.model.getChildAt(d, 0 > b ? f - 1 : b)), this.setSelectionCell(a))
-};
-mxGraph.prototype.selectAll = function(a) {
-  a = a || this.getDefaultParent();
-  a = this.model.getChildren(a);
-  null != a && this.setSelectionCells(a)
-};
-mxGraph.prototype.selectVertices = function(a) {
-  this.selectCells(!0, !1, a)
-};
-mxGraph.prototype.selectEdges = function(a) {
-  this.selectCells(!1, !0, a)
-};
-mxGraph.prototype.selectCells = function(a, b, c) {
-  c = c || this.getDefaultParent();
-  var d = mxUtils.bind(this, function(c) {
-    return null != this.view.getState(c) && 0 == this.model.getChildCount(c) && (this.model.isVertex(c) && a || this.model.isEdge(c) && b)
-  });
-  c = this.model.filterDescendants(d, c);
-  this.setSelectionCells(c)
-};
-mxGraph.prototype.selectCellForEvent = function(a, b) {
-  var c = this.isCellSelected(a);
-  this.isToggleEvent(b) ? c ? this.removeSelectionCell(a) : this.addSelectionCell(a) : (!c || 1 != this.getSelectionCount()) && this.setSelectionCell(a)
-};
-mxGraph.prototype.selectCellsForEvent = function(a, b) {
-  this.isToggleEvent(b) ? this.addSelectionCells(a) : this.setSelectionCells(a)
-};
-mxGraph.prototype.createHandler = function(a) {
-  var b = null;
-  null != a && (this.model.isEdge(a.cell) ? (b = this.view.getEdgeStyle(a), b = this.isLoop(a) || b == mxEdgeStyle.ElbowConnector || b == mxEdgeStyle.SideToSide || b == mxEdgeStyle.TopToBottom ?
-    new mxElbowEdgeHandler(a) : b == mxEdgeStyle.SegmentConnector || b == mxEdgeStyle.OrthConnector ? new mxEdgeSegmentHandler(a) : new mxEdgeHandler(a)) : b = new mxVertexHandler(a));
-  return b
-};
-mxGraph.prototype.addMouseListener = function(a) {
-  null == this.mouseListeners && (this.mouseListeners = []);
-  this.mouseListeners.push(a)
-};
-mxGraph.prototype.removeMouseListener = function(a) {
-  if (null != this.mouseListeners)
-    for (var b = 0; b < this.mouseListeners.length; b++)
-      if (this.mouseListeners[b] == a) {
-        this.mouseListeners.splice(b, 1);
-        break
-      }
-};
-mxGraph.prototype.updateMouseEvent = function(a) {
-  if (null == a.graphX || null == a.graphY) {
-    var b = mxUtils.convertPoint(this.container, a.getX(), a.getY());
-    a.graphX = b.x - this.panDx;
-    a.graphY = b.y - this.panDy
-  }
-};
-mxGraph.prototype.fireMouseEvent = function(a, b, c) {
-  null == c && (c = this);
-  this.updateMouseEvent(b);
-  a == mxEvent.MOUSE_DOWN && (this.isMouseDown = !0);
-  if (mxClient.IS_TOUCH && this.doubleTapEnabled && a == mxEvent.MOUSE_DOWN) {
-    var d = (new Date).getTime();
-    d - this.lastTouchTime < this.doubleTapTimeout && Math.abs(this.lastTouchX - b.getX()) < this.doubleTapTolerance && Math.abs(this.lastTouchY - b.getY()) < this.doubleTapTolerance ? (this.lastTouchTime =
-      0, this.dblClick(b.getEvent(), b.getCell()), b.getEvent().cancelBubble = !0) : (this.lastTouchX =
-      b.getX(), this.lastTouchY = b.getY(), this.lastTouchTime = d)
-  }
-  d = 2 != b.getEvent().detail;
-  if (mxClient.IS_IE && "CSS1Compat" == document.compatMode) {
-    if (null != this.lastMouseX && Math.abs(this.lastMouseX - b.getX()) > this.doubleTapTolerance || null != this.lastMouseY && Math.abs(this.lastMouseY - b.getY()) > this.doubleTapTolerance) d = !
-      0;
-    a == mxEvent.MOUSE_UP && (this.lastMouseX = b.getX(), this.lastMouseY = b.getY())
-  }
-  if ((a != mxEvent.MOUSE_UP || this.isMouseDown) && d) {
-    if (a == mxEvent.MOUSE_UP && (this.isMouseDown = !1), !this.isEditing() && (mxClient.IS_OP ||
-        mxClient.IS_SF || mxClient.IS_GC || mxClient.IS_IE && mxClient.IS_SVG || b.getEvent().target != this.container)) {
-      a == mxEvent.MOUSE_MOVE && (this.isMouseDown && this.autoScroll) && this.scrollPointToVisible(b.getGraphX(), b.getGraphY(), this.autoExtend);
-      if (null != this.mouseListeners) {
-        c = [c, b];
-        b.getEvent().returnValue = !0;
-        for (d = 0; d < this.mouseListeners.length; d++) {
-          var e = this.mouseListeners[d];
-          a == mxEvent.MOUSE_DOWN ? e.mouseDown.apply(e, c) : a == mxEvent.MOUSE_MOVE ? e.mouseMove.apply(e, c) : a == mxEvent.MOUSE_UP && e.mouseUp.apply(e, c)
-        }
-      }
-      a ==
-        mxEvent.MOUSE_UP && this.click(b)
-    }
-  } else a == mxEvent.MOUSE_UP && (this.isMouseDown = !1)
-};
-mxGraph.prototype.destroy = function() {
-  this.destroyed || (this.destroyed = !0, null != this.tooltipHandler && this.tooltipHandler.destroy(), null != this.selectionCellsHandler && this.selectionCellsHandler.destroy(), null != this.panningHandler &&
-    this.panningHandler.destroy(), null != this.connectionHandler && this.connectionHandler.destroy(), null != this.graphHandler && this.graphHandler.destroy(), null != this.cellEditor && this.cellEditor
-    .destroy(), null != this.view && this.view.destroy(), null != this.model && null != this.graphModelChangeListener &&
-    (this.model.removeListener(this.graphModelChangeListener), this.graphModelChangeListener = null), this.container = null)
-};
-
-function mxCellOverlay(a, b, c, d, e, f) {
-  this.image = a;
-  this.tooltip = b;
-  this.align = null != c ? c : this.align;
-  this.verticalAlign = null != d ? d : this.verticalAlign;
-  this.offset = null != e ? e : new mxPoint;
-  this.cursor = null != f ? f : "help"
-}
-mxCellOverlay.prototype = new mxEventSource;
-mxCellOverlay.prototype.constructor = mxCellOverlay;
-mxCellOverlay.prototype.image = null;
-mxCellOverlay.prototype.tooltip = null;
-mxCellOverlay.prototype.align = mxConstants.ALIGN_RIGHT;
-mxCellOverlay.prototype.verticalAlign = mxConstants.ALIGN_BOTTOM;
-mxCellOverlay.prototype.offset = null;
-mxCellOverlay.prototype.cursor = null;
-mxCellOverlay.prototype.defaultOverlap = 0.5;
-mxCellOverlay.prototype.getBounds = function(a) {
-  var b = a.view.graph.getModel().isEdge(a.cell),
-    c = a.view.scale,
-    d = null,
-    e = this.image.width,
-    f = this.image.height;
-  b ? (b = a.absolutePoints, 1 == b.length % 2 ? d = b[Math.floor(b.length / 2)] : (d = b.length / 2, a = b[d - 1], b = b[d], d = new mxPoint(a.x + (b.x - a.x) / 2, a.y + (b.y - a.y) / 2))) : (d =
-    new mxPoint, d.x = this.align == mxConstants.ALIGN_LEFT ? a.x : this.align == mxConstants.ALIGN_CENTER ? a.x + a.width / 2 : a.x + a.width, d.y = this.verticalAlign == mxConstants.ALIGN_TOP ?
-    a.y : this.verticalAlign == mxConstants.ALIGN_MIDDLE ?
-    a.y + a.height / 2 : a.y + a.height);
-  return new mxRectangle(Math.round(d.x - (e * this.defaultOverlap - this.offset.x) * c), Math.round(d.y - (f * this.defaultOverlap - this.offset.y) * c), e * c, f * c)
-};
-mxCellOverlay.prototype.toString = function() {
-  return this.tooltip
-};
-
-function mxOutline(a, b) {
-  this.source = a;
-  null != b && this.init(b)
-}
-mxOutline.prototype.source = null;
-mxOutline.prototype.outline = null;
-mxOutline.prototype.graphRenderHint = mxConstants.RENDERING_HINT_FASTER;
-mxOutline.prototype.enabled = !0;
-mxOutline.prototype.showViewport = !0;
-mxOutline.prototype.border = 10;
-mxOutline.prototype.sizerSize = 8;
-mxOutline.prototype.updateOnPan = !1;
-mxOutline.prototype.sizerImage = null;
-mxOutline.prototype.suspended = !1;
-mxOutline.prototype.init = function(a) {
-  this.outline = new mxGraph(a, this.source.getModel(), this.graphRenderHint, this.source.getStylesheet());
-  this.outline.foldingEnabled = !1;
-  this.outline.autoScroll = !1;
-  var b = this.outline.graphModelChanged;
-  this.outline.graphModelChanged = mxUtils.bind(this, function(a) {
-    !this.suspended && null != this.outline && b.apply(this.outline, arguments)
-  });
-  mxClient.IS_SVG && (a = this.outline.getView().getCanvas().parentNode, a.setAttribute("shape-rendering", "optimizeSpeed"), a.setAttribute("image-rendering",
-    "optimizeSpeed"));
-  this.outline.labelsVisible = !1;
-  this.outline.setEnabled(!1);
-  this.updateHandler = mxUtils.bind(this, function(a, b) {
-    !this.suspended && !this.active && this.update()
-  });
-  this.source.getModel().addListener(mxEvent.CHANGE, this.updateHandler);
-  this.outline.addMouseListener(this);
-  a = this.source.getView();
-  a.addListener(mxEvent.SCALE, this.updateHandler);
-  a.addListener(mxEvent.TRANSLATE, this.updateHandler);
-  a.addListener(mxEvent.SCALE_AND_TRANSLATE, this.updateHandler);
-  a.addListener(mxEvent.DOWN, this.updateHandler);
-  a.addListener(mxEvent.UP, this.updateHandler);
-  mxEvent.addListener(this.source.container, "scroll", this.updateHandler);
-  this.panHandler = mxUtils.bind(this, function(a) {
-    this.updateOnPan && this.updateHandler.apply(this, arguments)
-  });
-  this.source.addListener(mxEvent.PAN, this.panHandler);
-  this.refreshHandler = mxUtils.bind(this, function(a) {
-    this.outline.setStylesheet(this.source.getStylesheet());
-    this.outline.refresh()
-  });
-  this.source.addListener(mxEvent.REFRESH, this.refreshHandler);
-  this.bounds = new mxRectangle(0, 0, 0,
-    0);
-  this.selectionBorder = new mxRectangleShape(this.bounds, null, mxConstants.OUTLINE_COLOR, mxConstants.OUTLINE_STROKEWIDTH);
-  this.selectionBorder.dialect = this.outline.dialect != mxConstants.DIALECT_SVG ? mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
-  this.selectionBorder.init(this.outline.getView().getOverlayPane());
-  mxEvent.redirectMouseEvents(this.selectionBorder.node, this.outline);
-  this.selectionBorder.node.style.background = "";
-  this.sizer = this.createSizer();
-  this.sizer.init(this.outline.getView().getOverlayPane());
-  this.enabled && (this.sizer.node.style.cursor = "pointer");
-  mxEvent.addListener(this.sizer.node, mxClient.IS_TOUCH ? "touchstart" : "mousedown", mxUtils.bind(this, function(a) {
-    this.outline.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(a))
-  }));
-  this.selectionBorder.node.style.display = this.showViewport ? "" : "none";
-  this.sizer.node.style.display = this.selectionBorder.node.style.display;
-  this.selectionBorder.node.style.cursor = "move";
-  this.update(!1)
-};
-mxOutline.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxOutline.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxOutline.prototype.setZoomEnabled = function(a) {
-  this.sizer.node.style.visibility = a ? "visible" : "hidden"
-};
-mxOutline.prototype.refresh = function() {
-  this.update(!0)
-};
-mxOutline.prototype.createSizer = function() {
-  var a = null != this.sizerImage ? new mxImageShape(new mxRectangle(0, 0, this.sizerImage.width, this.sizerImage.height), this.sizerImage.src) : new mxRectangleShape(new mxRectangle(0, 0, this.sizerSize,
-    this.sizerSize), mxConstants.OUTLINE_HANDLE_FILLCOLOR, mxConstants.OUTLINE_HANDLE_STROKECOLOR);
-  a.dialect = this.outline.dialect;
-  return a
-};
-mxOutline.prototype.getSourceContainerSize = function() {
-  return new mxRectangle(0, 0, this.source.container.scrollWidth, this.source.container.scrollHeight)
-};
-mxOutline.prototype.getOutlineOffset = function(a) {
-  return null
-};
-mxOutline.prototype.update = function(a) {
-  if (null != this.source) {
-    var b = this.source.view.scale,
-      c = this.source.getGraphBounds(),
-      c = new mxRectangle(c.x / b + this.source.panDx, c.y / b + this.source.panDy, c.width / b, c.height / b),
-      d = new mxRectangle(0, 0, this.source.container.clientWidth / b, this.source.container.clientHeight / b),
-      e = c.clone();
-    e.add(d);
-    var f = this.getSourceContainerSize(),
-      d = Math.max(f.width / b, e.width),
-      b = Math.max(f.height / b, e.height),
-      e = Math.max(0, this.outline.container.clientWidth - this.border),
-      f = Math.max(0, this.outline.container.clientHeight -
-        this.border),
-      e = Math.min(e / d, f / b);
-    if (0 < e) {
-      this.outline.getView().scale != e && (this.outline.getView().scale = e, a = !0);
-      d = this.outline.getView();
-      d.currentRoot != this.source.getView().currentRoot && d.setCurrentRoot(this.source.getView().currentRoot);
-      var b = this.source.view.translate,
-        f = b.x + this.source.panDx,
-        g = b.y + this.source.panDy,
-        e = this.getOutlineOffset(e);
-      null != e && (f += e.x, g += e.y);
-      0 > c.x && (f -= c.x);
-      0 > c.y && (g -= c.y);
-      if (d.translate.x != f || d.translate.y != g) d.translate.x = f, d.translate.y = g, a = !0;
-      var c = d.translate,
-        e = this.source.getView().scale,
-        f = e / d.scale,
-        g = 1 / d.scale,
-        h = this.source.container;
-      this.bounds = new mxRectangle((c.x - b.x - this.source.panDx) / g, (c.y - b.y - this.source.panDy) / g, h.clientWidth / f, h.clientHeight / f);
-      this.bounds.x += this.source.container.scrollLeft * d.scale / e;
-      this.bounds.y += this.source.container.scrollTop * d.scale / e;
-      c = this.selectionBorder.bounds;
-      if (c.x != this.bounds.x || c.y != this.bounds.y || c.width != this.bounds.width || c.height != this.bounds.height) this.selectionBorder.bounds = this.bounds, this.selectionBorder.redraw();
-      c = this.sizer.bounds;
-      d = new mxRectangle(this.bounds.x + this.bounds.width - c.width / 2, this.bounds.y + this.bounds.height - c.height / 2, c.width, c.height);
-      if (c.x != d.x || c.y != d.y || c.width != d.width || c.height != d.height) this.sizer.bounds = d, "hidden" != this.sizer.node.style.visibility && this.sizer.redraw();
-      a && this.outline.view.revalidate()
-    }
-  }
-};
-mxOutline.prototype.mouseDown = function(a, b) {
-  this.enabled && this.showViewport && (this.zoom = b.isSource(this.sizer), this.startX = b.getX(), this.startY = b.getY(), this.active = !0, this.source.useScrollbarsForPanning && mxUtils.hasScrollbars(
-    this.source.container) ? (this.dx0 = this.source.container.scrollLeft, this.dy0 = this.source.container.scrollTop) : this.dy0 = this.dx0 = 0);
-  b.consume()
-};
-mxOutline.prototype.mouseMove = function(a, b) {
-  if (this.active) {
-    this.selectionBorder.node.style.display = this.showViewport ? "" : "none";
-    this.sizer.node.style.display = this.selectionBorder.node.style.display;
-    var c = b.getX() - this.startX,
-      d = b.getY() - this.startY,
-      e = null;
-    if (this.zoom) e = this.source.container, d = c / (e.clientWidth / e.clientHeight), e = new mxRectangle(this.bounds.x, this.bounds.y, Math.max(1, this.bounds.width + c), Math.max(1, this.bounds
-      .height + d)), this.selectionBorder.bounds = e, this.selectionBorder.redraw();
-    else {
-      var f =
-        this.outline.getView().scale,
-        e = new mxRectangle(this.bounds.x + c, this.bounds.y + d, this.bounds.width, this.bounds.height);
-      this.selectionBorder.bounds = e;
-      this.selectionBorder.redraw();
-      c = c / f * this.source.getView().scale;
-      d = d / f * this.source.getView().scale;
-      this.source.panGraph(-c - this.dx0, -d - this.dy0)
-    }
-    c = this.sizer.bounds;
-    this.sizer.bounds = new mxRectangle(e.x + e.width - c.width / 2, e.y + e.height - c.height / 2, c.width, c.height);
-    "hidden" != this.sizer.node.style.visibility && this.sizer.redraw();
-    b.consume()
-  }
-};
-mxOutline.prototype.mouseUp = function(a, b) {
-  if (this.active) {
-    var c = b.getX() - this.startX,
-      d = b.getY() - this.startY;
-    if (0 < Math.abs(c) || 0 < Math.abs(d)) {
-      if (this.zoom) {
-        var d = this.selectionBorder.bounds.width,
-          e = this.source.getView().scale;
-        this.source.zoomTo(e - c * e / d, !1)
-      } else if (!this.source.useScrollbarsForPanning || !mxUtils.hasScrollbars(this.source.container)) this.source.panGraph(0, 0), c /= this.outline.getView().scale, d /= this.outline.getView().scale,
-        e = this.source.getView().translate, this.source.getView().setTranslate(e.x -
-          c, e.y - d);
-      this.update();
-      b.consume()
-    }
-    this.index = null;
-    this.active = !1
-  }
-};
-mxOutline.prototype.destroy = function() {
-  null != this.source && (this.source.removeListener(this.panHandler), this.source.removeListener(this.refreshHandler), this.source.getModel().removeListener(this.updateHandler), this.source.getView()
-    .removeListener(this.updateHandler), mxEvent.addListener(this.source.container, "scroll", this.updateHandler), this.source = null);
-  null != this.outline && (this.outline.removeMouseListener(this), this.outline.destroy(), this.outline = null);
-  null != this.selectionBorder && (this.selectionBorder.destroy(),
-    this.selectionBorder = null);
-  null != this.sizer && (this.sizer.destroy(), this.sizer = null)
-};
-
-function mxMultiplicity(a, b, c, d, e, f, g, h, k, l) {
-  this.source = a;
-  this.type = b;
-  this.attr = c;
-  this.value = d;
-  this.min = null != e ? e : 0;
-  this.max = null != f ? f : "n";
-  this.validNeighbors = g;
-  this.countError = mxResources.get(h) || h;
-  this.typeError = mxResources.get(k) || k;
-  this.validNeighborsAllowed = null != l ? l : !0
-}
-mxMultiplicity.prototype.type = null;
-mxMultiplicity.prototype.attr = null;
-mxMultiplicity.prototype.value = null;
-mxMultiplicity.prototype.source = null;
-mxMultiplicity.prototype.min = null;
-mxMultiplicity.prototype.max = null;
-mxMultiplicity.prototype.validNeighbors = null;
-mxMultiplicity.prototype.validNeighborsAllowed = !0;
-mxMultiplicity.prototype.countError = null;
-mxMultiplicity.prototype.typeError = null;
-mxMultiplicity.prototype.check = function(a, b, c, d, e, f) {
-  var g = "";
-  if (this.source && this.checkTerminal(a, c, b) || !this.source && this.checkTerminal(a, d, b)) {
-    if (null != this.countError && (this.source && (0 == this.max || e >= this.max) || !this.source && (0 == this.max || f >= this.max))) g += this.countError + "\n";
-    null != this.validNeighbors && (null != this.typeError && 0 < this.validNeighbors.length) && (this.checkNeighbors(a, b, c, d) || (g += this.typeError + "\n"))
-  }
-  return 0 < g.length ? g : null
-};
-mxMultiplicity.prototype.checkNeighbors = function(a, b, c, d) {
-  b = a.model.getValue(c);
-  d = a.model.getValue(d);
-  c = !this.validNeighborsAllowed;
-  for (var e = this.validNeighbors, f = 0; f < e.length; f++)
-    if (this.source && this.checkType(a, d, e[f])) {
-      c = this.validNeighborsAllowed;
-      break
-    } else if (!this.source && this.checkType(a, b, e[f])) {
-    c = this.validNeighborsAllowed;
-    break
-  }
-  return c
-};
-mxMultiplicity.prototype.checkTerminal = function(a, b, c) {
-  b = a.model.getValue(b);
-  return this.checkType(a, b, this.type, this.attr, this.value)
-};
-mxMultiplicity.prototype.checkType = function(a, b, c, d, e) {
-  return null != b ? isNaN(b.nodeType) ? b == c : mxUtils.isNode(b, c, d, e) : !1
-};
-
-function mxLayoutManager(a) {
-  this.undoHandler = mxUtils.bind(this, function(a, c) {
-    this.isEnabled() && this.beforeUndo(c.getProperty("edit"))
-  });
-  this.moveHandler = mxUtils.bind(this, function(a, c) {
-    this.isEnabled() && this.cellsMoved(c.getProperty("cells"), c.getProperty("event"))
-  });
-  this.setGraph(a)
-}
-mxLayoutManager.prototype = new mxEventSource;
-mxLayoutManager.prototype.constructor = mxLayoutManager;
-mxLayoutManager.prototype.graph = null;
-mxLayoutManager.prototype.bubbling = !0;
-mxLayoutManager.prototype.enabled = !0;
-mxLayoutManager.prototype.updateHandler = null;
-mxLayoutManager.prototype.moveHandler = null;
-mxLayoutManager.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxLayoutManager.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxLayoutManager.prototype.isBubbling = function() {
-  return this.bubbling
-};
-mxLayoutManager.prototype.setBubbling = function(a) {
-  this.bubbling = a
-};
-mxLayoutManager.prototype.getGraph = function() {
-  return this.graph
-};
-mxLayoutManager.prototype.setGraph = function(a) {
-  if (null != this.graph) {
-    var b = this.graph.getModel();
-    b.removeListener(this.undoHandler);
-    this.graph.removeListener(this.moveHandler)
-  }
-  this.graph = a;
-  null != this.graph && (b = this.graph.getModel(), b.addListener(mxEvent.BEFORE_UNDO, this.undoHandler), this.graph.addListener(mxEvent.MOVE_CELLS, this.moveHandler))
-};
-mxLayoutManager.prototype.getLayout = function(a) {
-  return null
-};
-mxLayoutManager.prototype.beforeUndo = function(a) {
-  a = this.getCellsForChanges(a.changes);
-  var b = this.getGraph().getModel();
-  if (this.isBubbling())
-    for (var c = b.getParents(a); 0 < c.length;) a = a.concat(c), c = b.getParents(c);
-  this.layoutCells(mxUtils.sortCells(a, !1))
-};
-mxLayoutManager.prototype.cellsMoved = function(a, b) {
-  if (null != a && null != b)
-    for (var c = mxUtils.convertPoint(this.getGraph().container, mxEvent.getClientX(b), mxEvent.getClientY(b)), d = this.getGraph().getModel(), e = 0; e < a.length; e++) {
-      var f = this.getLayout(d.getParent(a[e]));
-      null != f && f.moveCell(a[e], c.x, c.y)
-    }
-};
-mxLayoutManager.prototype.getCellsForChanges = function(a) {
-  for (var b = [], c = {}, d = 0; d < a.length; d++) {
-    var e = a[d];
-    if (e instanceof mxRootChange) return [];
-    for (var e = this.getCellsForChange(e), f = 0; f < e.length; f++)
-      if (null != e[f]) {
-        var g = mxCellPath.create(e[f]);
-        null == c[g] && (c[g] = e[f], b.push(e[f]))
-      }
-  }
-  return b
-};
-mxLayoutManager.prototype.getCellsForChange = function(a) {
-  var b = this.getGraph().getModel();
-  return a instanceof mxChildChange ? [a.child, a.previous, b.getParent(a.child)] : a instanceof mxTerminalChange || a instanceof mxGeometryChange ? [a.cell, b.getParent(a.cell)] : []
-};
-mxLayoutManager.prototype.layoutCells = function(a) {
-  if (0 < a.length) {
-    var b = this.getGraph().getModel();
-    b.beginUpdate();
-    try {
-      for (var c = null, d = 0; d < a.length; d++) a[d] != b.getRoot() && a[d] != c && (c = a[d], this.executeLayout(this.getLayout(c), c));
-      this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS, "cells", a))
-    } finally {
-      b.endUpdate()
-    }
-  }
-};
-mxLayoutManager.prototype.executeLayout = function(a, b) {
-  null != a && null != b && a.execute(b)
-};
-mxLayoutManager.prototype.destroy = function() {
-  this.setGraph(null)
-};
-
-function mxSpaceManager(a, b, c, d) {
-  this.resizeHandler = mxUtils.bind(this, function(a, b) {
-    this.isEnabled() && this.cellsResized(b.getProperty("cells"))
-  });
-  this.foldHandler = mxUtils.bind(this, function(a, b) {
-    this.isEnabled() && this.cellsResized(b.getProperty("cells"))
-  });
-  this.shiftRightwards = null != b ? b : !0;
-  this.shiftDownwards = null != c ? c : !0;
-  this.extendParents = null != d ? d : !0;
-  this.setGraph(a)
-}
-mxSpaceManager.prototype = new mxEventSource;
-mxSpaceManager.prototype.constructor = mxSpaceManager;
-mxSpaceManager.prototype.graph = null;
-mxSpaceManager.prototype.enabled = !0;
-mxSpaceManager.prototype.shiftRightwards = !0;
-mxSpaceManager.prototype.shiftDownwards = !0;
-mxSpaceManager.prototype.extendParents = !0;
-mxSpaceManager.prototype.resizeHandler = null;
-mxSpaceManager.prototype.foldHandler = null;
-mxSpaceManager.prototype.isCellIgnored = function(a) {
-  return !this.getGraph().getModel().isVertex(a)
-};
-mxSpaceManager.prototype.isCellShiftable = function(a) {
-  return this.getGraph().getModel().isVertex(a) && this.getGraph().isCellMovable(a)
-};
-mxSpaceManager.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxSpaceManager.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxSpaceManager.prototype.isShiftRightwards = function() {
-  return this.shiftRightwards
-};
-mxSpaceManager.prototype.setShiftRightwards = function(a) {
-  this.shiftRightwards = a
-};
-mxSpaceManager.prototype.isShiftDownwards = function() {
-  return this.shiftDownwards
-};
-mxSpaceManager.prototype.setShiftDownwards = function(a) {
-  this.shiftDownwards = a
-};
-mxSpaceManager.prototype.isExtendParents = function() {
-  return this.extendParents
-};
-mxSpaceManager.prototype.setExtendParents = function(a) {
-  this.extendParents = a
-};
-mxSpaceManager.prototype.getGraph = function() {
-  return this.graph
-};
-mxSpaceManager.prototype.setGraph = function(a) {
-  null != this.graph && (this.graph.removeListener(this.resizeHandler), this.graph.removeListener(this.foldHandler));
-  this.graph = a;
-  null != this.graph && (this.graph.addListener(mxEvent.RESIZE_CELLS, this.resizeHandler), this.graph.addListener(mxEvent.FOLD_CELLS, this.foldHandler))
-};
-mxSpaceManager.prototype.cellsResized = function(a) {
-  if (null != a) {
-    var b = this.graph.getModel();
-    b.beginUpdate();
-    try {
-      for (var c = 0; c < a.length; c++)
-        if (!this.isCellIgnored(a[c])) {
-          this.cellResized(a[c]);
-          break
-        }
-    } finally {
-      b.endUpdate()
-    }
-  }
-};
-mxSpaceManager.prototype.cellResized = function(a) {
-  var b = this.getGraph(),
-    c = b.getView(),
-    d = b.getModel(),
-    e = c.getState(a),
-    f = c.getState(d.getParent(a));
-  if (null != e && null != f) {
-    var g = this.getCellsToShift(e),
-      h = d.getGeometry(a);
-    if (null != g && null != h) {
-      var k = c.translate,
-        l = c.scale,
-        c = e.x - f.origin.x - k.x * l,
-        f = e.y - f.origin.y - k.y * l,
-        k = e.x + e.width,
-        m = e.y + e.height,
-        n = e.width - h.width * l + c - h.x * l,
-        p = e.height - h.height * l + f - h.y * l,
-        q = 1 - h.width * l / e.width,
-        e = 1 - h.height * l / e.height;
-      d.beginUpdate();
-      try {
-        for (h = 0; h < g.length; h++) g[h] != a && this.isCellShiftable(g[h]) &&
-          this.shiftCell(g[h], n, p, c, f, k, m, q, e, this.isExtendParents() && b.isExtendParent(g[h]))
-      } finally {
-        d.endUpdate()
-      }
-    }
-  }
-};
-mxSpaceManager.prototype.shiftCell = function(a, b, c, d, e, f, g, h, k, l) {
-  d = this.getGraph();
-  var m = d.getView().getState(a);
-  if (null != m) {
-    var n = d.getModel(),
-      p = n.getGeometry(a);
-    if (null != p) {
-      n.beginUpdate();
-      try {
-        if (this.isShiftRightwards())
-          if (m.x >= f) p = p.clone(), p.translate(-b, 0);
-          else {
-            var q = Math.max(0, m.x - x0),
-              p = p.clone();
-            p.translate(-h * q, 0)
-          }
-        if (this.isShiftDownwards())
-          if (m.y >= g) p = p.clone(), p.translate(0, -c);
-          else {
-            var s = Math.max(0, m.y - e),
-              p = p.clone();
-            p.translate(0, -k * s)
-          }
-        p != n.getGeometry(a) && (n.setGeometry(a, p), l && d.extendParent(a))
-      } finally {
-        n.endUpdate()
-      }
-    }
-  }
-};
-mxSpaceManager.prototype.getCellsToShift = function(a) {
-  var b = this.getGraph(),
-    c = b.getModel().getParent(a.cell),
-    d = this.isShiftDownwards(),
-    e = this.isShiftRightwards();
-  return b.getCellsBeyond(a.x + (d ? 0 : a.width), a.y + (d && e ? 0 : a.height), c, e, d)
-};
-mxSpaceManager.prototype.destroy = function() {
-  this.setGraph(null)
-};
-
-function mxSwimlaneManager(a, b, c, d) {
-  this.horizontal = null != b ? b : !0;
-  this.addEnabled = null != c ? c : !0;
-  this.resizeEnabled = null != d ? d : !0;
-  this.addHandler = mxUtils.bind(this, function(a, b) {
-    this.isEnabled() && this.isAddEnabled() && this.cellsAdded(b.getProperty("cells"))
-  });
-  this.resizeHandler = mxUtils.bind(this, function(a, b) {
-    this.isEnabled() && this.isResizeEnabled() && this.cellsResized(b.getProperty("cells"))
-  });
-  this.setGraph(a)
-}
-mxSwimlaneManager.prototype = new mxEventSource;
-mxSwimlaneManager.prototype.constructor = mxSwimlaneManager;
-mxSwimlaneManager.prototype.graph = null;
-mxSwimlaneManager.prototype.enabled = !0;
-mxSwimlaneManager.prototype.horizontal = !0;
-mxSwimlaneManager.prototype.addEnabled = !0;
-mxSwimlaneManager.prototype.resizeEnabled = !0;
-mxSwimlaneManager.prototype.addHandler = null;
-mxSwimlaneManager.prototype.resizeHandler = null;
-mxSwimlaneManager.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxSwimlaneManager.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxSwimlaneManager.prototype.isHorizontal = function() {
-  return this.horizontal
-};
-mxSwimlaneManager.prototype.setHorizontal = function(a) {
-  this.horizontal = a
-};
-mxSwimlaneManager.prototype.isAddEnabled = function() {
-  return this.addEnabled
-};
-mxSwimlaneManager.prototype.setAddEnabled = function(a) {
-  this.addEnabled = a
-};
-mxSwimlaneManager.prototype.isResizeEnabled = function() {
-  return this.resizeEnabled
-};
-mxSwimlaneManager.prototype.setResizeEnabled = function(a) {
-  this.resizeEnabled = a
-};
-mxSwimlaneManager.prototype.getGraph = function() {
-  return this.graph
-};
-mxSwimlaneManager.prototype.setGraph = function(a) {
-  null != this.graph && (this.graph.removeListener(this.addHandler), this.graph.removeListener(this.resizeHandler));
-  this.graph = a;
-  null != this.graph && (this.graph.addListener(mxEvent.ADD_CELLS, this.addHandler), this.graph.addListener(mxEvent.CELLS_RESIZED, this.resizeHandler))
-};
-mxSwimlaneManager.prototype.isSwimlaneIgnored = function(a) {
-  return !this.getGraph().isSwimlane(a)
-};
-mxSwimlaneManager.prototype.isCellHorizontal = function(a) {
-  if (this.graph.isSwimlane(a)) {
-    var b = this.graph.view.getState(a);
-    a = null != b ? b.style : this.graph.getCellStyle(a);
-    return 1 == mxUtils.getValue(a, mxConstants.STYLE_HORIZONTAL, 1)
-  }
-  return !this.isHorizontal()
-};
-mxSwimlaneManager.prototype.cellsAdded = function(a) {
-  if (null != a) {
-    var b = this.getGraph().getModel();
-    b.beginUpdate();
-    try {
-      for (var c = 0; c < a.length; c++) this.isSwimlaneIgnored(a[c]) || this.swimlaneAdded(a[c])
-    } finally {
-      b.endUpdate()
-    }
-  }
-};
-mxSwimlaneManager.prototype.swimlaneAdded = function(a) {
-  for (var b = this.getGraph().getModel(), c = b.getParent(a), d = b.getChildCount(c), e = null, f = 0; f < d; f++) {
-    var g = b.getChildAt(c, f);
-    if (g != a && !this.isSwimlaneIgnored(g) && (e = b.getGeometry(g), null != e)) break
-  }
-  null != e && this.resizeSwimlane(a, e.width, e.height)
-};
-mxSwimlaneManager.prototype.cellsResized = function(a) {
-  if (null != a) {
-    var b = this.getGraph().getModel();
-    b.beginUpdate();
-    try {
-      for (var c = 0; c < a.length; c++)
-        if (!this.isSwimlaneIgnored(a[c])) {
-          var d = b.getGeometry(a[c]);
-          if (null != d) {
-            for (var e = new mxRectangle(0, 0, d.width, d.height), f = a[c], g = f; null != g;) {
-              var f = g,
-                g = b.getParent(g),
-                h = this.graph.isSwimlane(g) ? this.graph.getStartSize(g) : new mxRectangle;
-              e.width += h.width;
-              e.height += h.height
-            }
-            this.resizeSwimlane(f, e.width, e.height)
-          }
-        }
-    } finally {
-      b.endUpdate()
-    }
-  }
-};
-mxSwimlaneManager.prototype.resizeSwimlane = function(a, b, c) {
-  var d = this.getGraph().getModel();
-  d.beginUpdate();
-  try {
-    if (!this.isSwimlaneIgnored(a)) {
-      var e = d.getGeometry(a);
-      if (null != e) {
-        var f = this.isCellHorizontal(a);
-        if (f && e.height != c || !f && e.width != b) e = e.clone(), f ? e.height = c : e.width = b, d.setGeometry(a, e)
-      }
-    }
-    var g = this.graph.isSwimlane(a) ? this.graph.getStartSize(a) : new mxRectangle;
-    b -= g.width;
-    c -= g.height;
-    for (var h = d.getChildCount(a), e = 0; e < h; e++) {
-      var k = d.getChildAt(a, e);
-      this.resizeSwimlane(k, b, c)
-    }
-  } finally {
-    d.endUpdate()
-  }
-};
-mxSwimlaneManager.prototype.destroy = function() {
-  this.setGraph(null)
-};
-
-function mxTemporaryCellStates(a, b, c) {
-  this.view = a;
-  b = null != b ? b : 1;
-  this.oldBounds = a.getGraphBounds();
-  this.oldStates = a.getStates();
-  this.oldScale = a.getScale();
-  a.setStates(new mxDictionary);
-  a.setScale(b);
-  if (null != c) {
-    b = a.createState(new mxCell);
-    for (var d = 0; d < c.length; d++) a.validateBounds(b, c[d]);
-    for (var e = null, d = 0; d < c.length; d++) {
-      var f = a.validatePoints(b, c[d]);
-      null == e ? e = f : e.add(f)
-    }
-    null == e && (e = new mxRectangle);
-    a.setGraphBounds(e)
-  }
-}
-mxTemporaryCellStates.prototype.view = null;
-mxTemporaryCellStates.prototype.oldStates = null;
-mxTemporaryCellStates.prototype.oldBounds = null;
-mxTemporaryCellStates.prototype.oldScale = null;
-mxTemporaryCellStates.prototype.destroy = function() {
-  this.view.setScale(this.oldScale);
-  this.view.setStates(this.oldStates);
-  this.view.setGraphBounds(this.oldBounds)
-};
-
-function mxCellStatePreview(a) {
-  this.graph = a;
-  this.deltas = {}
-}
-mxCellStatePreview.prototype.graph = null;
-mxCellStatePreview.prototype.deltas = null;
-mxCellStatePreview.prototype.count = 0;
-mxCellStatePreview.prototype.isEmpty = function() {
-  return 0 == this.count
-};
-mxCellStatePreview.prototype.moveState = function(a, b, c, d, e) {
-  d = null != d ? d : !0;
-  e = null != e ? e : !0;
-  var f = mxCellPath.create(a.cell),
-    g = this.deltas[f];
-  null == g ? (g = new mxPoint(b, c), this.deltas[f] = g, this.count++) : d ? (g.X += b, g.Y += c) : (g.X = b, g.Y = c);
-  e && this.addEdges(a);
-  return g
-};
-mxCellStatePreview.prototype.show = function(a) {
-  var b = this.graph.getModel(),
-    c = b.getRoot(),
-    d;
-  for (d in this.deltas) {
-    var e = mxCellPath.resolve(c, d),
-      f = this.graph.view.getState(e),
-      g = this.deltas[d],
-      e = this.graph.view.getState(b.getParent(e));
-    this.translateState(e, f, g.x, g.y)
-  }
-  for (d in this.deltas) e = mxCellPath.resolve(c, d), f = this.graph.view.getState(e), g = this.deltas[d], e = this.graph.view.getState(b.getParent(e)), this.revalidateState(e, f, g.x, g.y, a)
-};
-mxCellStatePreview.prototype.translateState = function(a, b, c, d) {
-  if (null != b) {
-    var e = this.graph.getModel();
-    if (e.isVertex(b.cell)) {
-      b.invalid = !0;
-      this.graph.view.validateBounds(a, b.cell);
-      a = e.getGeometry(b.cell);
-      var f = mxCellPath.create(b.cell);
-      if ((0 != c || 0 != d) && null != a && (!a.relative || null != this.deltas[f])) b.x += c, b.y += d
-    }
-    a = e.getChildCount(b.cell);
-    for (f = 0; f < a; f++) this.translateState(b, this.graph.view.getState(e.getChildAt(b.cell, f)), c, d)
-  }
-};
-mxCellStatePreview.prototype.revalidateState = function(a, b, c, d, e) {
-  if (null != b) {
-    b.invalid = !0;
-    this.graph.view.validatePoints(a, b.cell);
-    var f = mxCellPath.create(b.cell),
-      g = this.graph.getModel(),
-      h = this.graph.getCellGeometry(b.cell);
-    if ((0 != c || 0 != d) && null != h && h.relative && g.isVertex(b.cell) && (null == a || g.isVertex(a.cell) || null != this.deltas[f])) b.x += c, b.y += d, this.graph.cellRenderer.redraw(b);
-    null != e && e(b);
-    a = g.getChildCount(b.cell);
-    for (f = 0; f < a; f++) this.revalidateState(b, this.graph.view.getState(g.getChildAt(b.cell,
-      f)), c, d, e)
-  }
-};
-mxCellStatePreview.prototype.addEdges = function(a) {
-  for (var b = this.graph.getModel(), c = b.getEdgeCount(a.cell), d = 0; d < c; d++) {
-    var e = this.graph.view.getState(b.getEdgeAt(a.cell, d));
-    null != e && this.moveState(e, 0, 0)
-  }
-};
-
-function mxConnectionConstraint(a, b) {
-  this.point = a;
-  this.perimeter = null != b ? b : !0
-}
-mxConnectionConstraint.prototype.point = null;
-mxConnectionConstraint.prototype.perimeter = null;
-
-function mxGraphHandler(a) {
-  this.graph = a;
-  this.graph.addMouseListener(this);
-  this.panHandler = mxUtils.bind(this, function() {
-    this.updatePreviewShape()
-  });
-  this.graph.addListener(mxEvent.PAN, this.panHandler)
-}
-mxGraphHandler.prototype.graph = null;
-mxGraphHandler.prototype.maxCells = mxClient.IS_IE ? 20 : 50;
-mxGraphHandler.prototype.enabled = !0;
-mxGraphHandler.prototype.highlightEnabled = !0;
-mxGraphHandler.prototype.cloneEnabled = !0;
-mxGraphHandler.prototype.moveEnabled = !0;
-mxGraphHandler.prototype.guidesEnabled = !1;
-mxGraphHandler.prototype.guide = null;
-mxGraphHandler.prototype.currentDx = null;
-mxGraphHandler.prototype.currentDy = null;
-mxGraphHandler.prototype.updateCursor = !0;
-mxGraphHandler.prototype.selectEnabled = !0;
-mxGraphHandler.prototype.removeCellsFromParent = !0;
-mxGraphHandler.prototype.connectOnDrop = !1;
-mxGraphHandler.prototype.scrollOnMove = !0;
-mxGraphHandler.prototype.minimumSize = 6;
-mxGraphHandler.prototype.previewColor = "black";
-mxGraphHandler.prototype.htmlPreview = !1;
-mxGraphHandler.prototype.shape = null;
-mxGraphHandler.prototype.scaleGrid = !1;
-mxGraphHandler.prototype.rotationEnabled = !0;
-mxGraphHandler.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxGraphHandler.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxGraphHandler.prototype.isCloneEnabled = function() {
-  return this.cloneEnabled
-};
-mxGraphHandler.prototype.setCloneEnabled = function(a) {
-  this.cloneEnabled = a
-};
-mxGraphHandler.prototype.isMoveEnabled = function() {
-  return this.moveEnabled
-};
-mxGraphHandler.prototype.setMoveEnabled = function(a) {
-  this.moveEnabled = a
-};
-mxGraphHandler.prototype.isSelectEnabled = function() {
-  return this.selectEnabled
-};
-mxGraphHandler.prototype.setSelectEnabled = function(a) {
-  this.selectEnabled = a
-};
-mxGraphHandler.prototype.isRemoveCellsFromParent = function() {
-  return this.removeCellsFromParent
-};
-mxGraphHandler.prototype.setRemoveCellsFromParent = function(a) {
-  this.removeCellsFromParent = a
-};
-mxGraphHandler.prototype.getInitialCellForEvent = function(a) {
-  return a.getCell()
-};
-mxGraphHandler.prototype.isDelayedSelection = function(a) {
-  return this.graph.isCellSelected(a)
-};
-mxGraphHandler.prototype.mouseDown = function(a, b) {
-  if (!b.isConsumed() && this.isEnabled() && this.graph.isEnabled() && !this.graph.isForceMarqueeEvent(b.getEvent()) && null != b.getState()) {
-    var c = this.getInitialCellForEvent(b);
-    this.cell = null;
-    this.delayedSelection = this.isDelayedSelection(c);
-    this.isSelectEnabled() && !this.delayedSelection && this.graph.selectCellForEvent(c, b.getEvent());
-    if (this.isMoveEnabled()) {
-      var d = this.graph.model,
-        e = d.getGeometry(c);
-      this.graph.isCellMovable(c) && (!d.isEdge(c) || 1 < this.graph.getSelectionCount() ||
-        null != e.points && 0 < e.points.length || null == d.getTerminal(c, !0) || null == d.getTerminal(c, !1) || this.graph.allowDanglingEdges || this.graph.isCloneEvent(b.getEvent()) && this.graph
-        .isCellsCloneable()) && this.start(c, b.getX(), b.getY());
-      this.cellWasClicked = !0;
-      !mxClient.IS_SF && !mxClient.IS_GC || "SELECT" != b.getSource().nodeName ? b.consume() : mxClient.IS_SF && "SELECT" == b.getSource().nodeName && (this.cellWasClicked = !1, this.first = null)
-    }
-  }
-};
-mxGraphHandler.prototype.getGuideStates = function() {
-  var a = this.graph.getDefaultParent(),
-    b = this.graph.getModel(),
-    c = mxUtils.bind(this, function(a) {
-      return null != this.graph.view.getState(a) && b.isVertex(a) && null != b.getGeometry(a) && !b.getGeometry(a).relative
-    });
-  return this.graph.view.getCellStates(b.filterDescendants(c, a))
-};
-mxGraphHandler.prototype.getCells = function(a) {
-  return !this.delayedSelection && this.graph.isCellMovable(a) ? [a] : this.graph.getMovableCells(this.graph.getSelectionCells())
-};
-mxGraphHandler.prototype.getPreviewBounds = function(a) {
-  a = this.getBoundingBox(a);
-  null != a && (a.grow(-1, -1), a.width < this.minimumSize && (a.x -= (this.minimumSize - a.width) / 2, a.width = this.minimumSize), a.height < this.minimumSize && (a.y -= (this.minimumSize - a.height) /
-    2, a.height = this.minimumSize));
-  return a
-};
-mxGraphHandler.prototype.getBoundingBox = function(a) {
-  var b = null;
-  if (null != a && 0 < a.length)
-    for (var c = this.graph.getModel(), d = 0; d < a.length; d++)
-      if (c.isVertex(a[d]) || c.isEdge(a[d])) {
-        var e = this.graph.view.getState(a[d]);
-        if (null != e) {
-          var f = e;
-          c.isVertex(a[d]) && (null != e.shape && null != e.shape.boundingBox) && (f = e.shape.boundingBox);
-          null == b ? b = new mxRectangle(f.x, f.y, f.width, f.height) : b.add(f)
-        }
-      }
-  return b
-};
-mxGraphHandler.prototype.createPreviewShape = function(a) {
-  a = new mxRectangleShape(a, null, this.previewColor);
-  a.isDashed = !0;
-  this.htmlPreview ? (a.dialect = mxConstants.DIALECT_STRICTHTML, a.init(this.graph.container)) : (a.dialect = this.graph.dialect != mxConstants.DIALECT_SVG ? mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG,
-    a.init(this.graph.getView().getOverlayPane()), a.pointerEvents = !1);
-  return a
-};
-mxGraphHandler.prototype.start = function(a, b, c) {
-  this.cell = a;
-  this.first = mxUtils.convertPoint(this.graph.container, b, c);
-  this.cells = this.getCells(this.cell);
-  this.bounds = this.graph.getView().getBounds(this.cells);
-  this.pBounds = this.getPreviewBounds(this.cells);
-  this.guidesEnabled && (this.guide = new mxGuide(this.graph, this.getGuideStates()))
-};
-mxGraphHandler.prototype.useGuidesForEvent = function(a) {
-  return null != this.guide ? this.guide.isEnabledForEvent(a.getEvent()) : !0
-};
-mxGraphHandler.prototype.snap = function(a) {
-  var b = this.scaleGrid ? this.graph.view.scale : 1;
-  a.x = this.graph.snap(a.x / b) * b;
-  a.y = this.graph.snap(a.y / b) * b;
-  return a
-};
-mxGraphHandler.prototype.mouseMove = function(a, b) {
-  var c = this.graph;
-  if (!b.isConsumed() && c.isMouseDown && null != this.cell && null != this.first && null != this.bounds) {
-    var d = mxUtils.convertPoint(c.container, b.getX(), b.getY()),
-      e = d.x - this.first.x,
-      f = d.y - this.first.y,
-      d = c.tolerance;
-    if (null != this.shape || Math.abs(e) > d || Math.abs(f) > d) {
-      null == this.highlight && (this.highlight = new mxCellHighlight(this.graph, mxConstants.DROP_TARGET_COLOR, 3));
-      null == this.shape && (this.shape = this.createPreviewShape(this.bounds));
-      var g = c.isGridEnabledEvent(b.getEvent()),
-        d = !0;
-      if (null != this.guide && this.useGuidesForEvent(b)) f = this.guide.move(this.bounds, new mxPoint(e, f), g), d = !1, e = f.x, f = f.y;
-      else if (g) var h = c.getView().translate,
-        k = c.getView().scale,
-        g = this.bounds.x - (c.snap(this.bounds.x / k - h.x) + h.x) * k,
-        h = this.bounds.y - (c.snap(this.bounds.y / k - h.y) + h.y) * k,
-        f = this.snap(new mxPoint(e, f)),
-        e = f.x - g,
-        f = f.y - h;
-      null != this.guide && d && this.guide.hide();
-      c.isConstrainedEvent(b.getEvent()) && (Math.abs(e) > Math.abs(f) ? f = 0 : e = 0);
-      this.currentDx = e;
-      this.currentDy = f;
-      this.updatePreviewShape();
-      d = null;
-      f = b.getCell();
-      c.isDropEnabled() && this.highlightEnabled && (d = c.getDropTarget(this.cells, b.getEvent(), f));
-      g = d;
-      for (h = c.getModel(); null != g && g != this.cells[0];) g = h.getParent(g);
-      var k = c.isCloneEvent(b.getEvent()) && c.isCellsCloneable() && this.isCloneEnabled(),
-        e = c.getView().getState(d),
-        l = !1;
-      null != e && null == g && (h.getParent(this.cell) != d || k) ? (this.target != d && (this.target = d, this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)), l = !0) : (this.target = null,
-        this.connectOnDrop && (null != f && 1 == this.cells.length && c.getModel().isVertex(f) &&
-          c.isCellConnectable(f)) && (e = c.getView().getState(f), null != e && (c = null == c.getEdgeValidationError(null, this.cell, f) ? mxConstants.VALID_COLOR : mxConstants.INVALID_CONNECT_TARGET_COLOR,
-          this.setHighlightColor(c), l = !0)));
-      null != e && l ? this.highlight.highlight(e) : this.highlight.hide()
-    }
-    b.consume();
-    mxEvent.consume(b.getEvent())
-  } else if ((this.isMoveEnabled() || this.isCloneEnabled()) && this.updateCursor && !b.isConsumed() && null != b.getState() && !c.isMouseDown) e = c.getCursorForCell(b.getCell()), null == e && (c.isEnabled() &&
-      c.isCellMovable(b.getCell())) &&
-    (e = c.getModel().isEdge(b.getCell()) ? mxConstants.CURSOR_MOVABLE_EDGE : mxConstants.CURSOR_MOVABLE_VERTEX), b.getState().setCursor(e), b.consume()
-};
-mxGraphHandler.prototype.updatePreviewShape = function() {
-  null != this.shape && (this.shape.bounds = new mxRectangle(Math.round(this.pBounds.x + this.currentDx - this.graph.panDx), Math.round(this.pBounds.y + this.currentDy - this.graph.panDy), this.pBounds
-    .width, this.pBounds.height), this.shape.redraw())
-};
-mxGraphHandler.prototype.setHighlightColor = function(a) {
-  null != this.highlight && this.highlight.setHighlightColor(a)
-};
-mxGraphHandler.prototype.mouseUp = function(a, b) {
-  if (!b.isConsumed()) {
-    var c = this.graph;
-    if (null != this.cell && null != this.first && null != this.shape && null != this.currentDx && null != this.currentDy) {
-      var d = c.getView().scale,
-        e = c.isCloneEvent(b.getEvent()) && c.isCellsCloneable() && this.isCloneEnabled(),
-        f = this.currentDx / d,
-        d = this.currentDy / d,
-        g = b.getCell();
-      this.connectOnDrop && null == this.target && null != g && c.getModel().isVertex(g) && c.isCellConnectable(g) && c.isEdgeValid(null, this.cell, g) ? c.connectionHandler.connect(this.cell,
-        g, b.getEvent()) : (g = this.target, c.isSplitEnabled() && c.isSplitTarget(g, this.cells, b.getEvent()) ? c.splitEdge(g, this.cells, null, f, d) : this.moveCells(this.cells, f, d, e, this
-        .target, b.getEvent()))
-    } else this.isSelectEnabled() && (this.delayedSelection && null != this.cell) && this.selectDelayed(b)
-  }
-  this.cellWasClicked && b.consume();
-  this.reset()
-};
-mxGraphHandler.prototype.selectDelayed = function(a) {
-  this.graph.selectCellForEvent(this.cell, a.getEvent())
-};
-mxGraphHandler.prototype.reset = function() {
-  this.destroyShapes();
-  this.delayedSelection = this.cellWasClicked = !1;
-  this.target = this.cell = this.first = this.guides = this.currentDy = this.currentDx = null
-};
-mxGraphHandler.prototype.shouldRemoveCellsFromParent = function(a, b, c) {
-  if (this.graph.getModel().isVertex(a)) {
-    a = this.graph.getView().getState(a);
-    c = mxUtils.convertPoint(this.graph.container, mxEvent.getClientX(c), mxEvent.getClientY(c));
-    var d = mxUtils.toRadians(mxUtils.getValue(a.style, mxConstants.STYLE_ROTATION) || 0);
-    if (0 != d) {
-      b = Math.cos(-d);
-      var d = Math.sin(-d),
-        e = new mxPoint(a.getCenterX(), a.getCenterY());
-      c = mxUtils.getRotatedPoint(c, b, d, e)
-    }
-    return null != a && !mxUtils.contains(a, c.x, c.y)
-  }
-  return !1
-};
-mxGraphHandler.prototype.moveCells = function(a, b, c, d, e, f) {
-  d && (a = this.graph.getCloneableCells(a));
-  null == e && (this.isRemoveCellsFromParent() && this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell), a, f)) && (e = this.graph.getDefaultParent());
-  a = this.graph.moveCells(a, b - this.graph.panDx / this.graph.view.scale, c - this.graph.panDy / this.graph.view.scale, d, e, f);
-  this.isSelectEnabled() && this.scrollOnMove && this.graph.scrollCellToVisible(a[0]);
-  d && this.graph.setSelectionCells(a)
-};
-mxGraphHandler.prototype.destroyShapes = function() {
-  null != this.shape && (this.shape.destroy(), this.shape = null);
-  null != this.guide && (this.guide.destroy(), this.guide = null);
-  null != this.highlight && (this.highlight.destroy(), this.highlight = null)
-};
-mxGraphHandler.prototype.destroy = function() {
-  this.graph.removeMouseListener(this);
-  this.graph.removeListener(this.panHandler);
-  this.destroyShapes()
-};
-
-function mxPanningHandler(a, b) {
-  null != a && (this.graph = a, this.factoryMethod = b, this.graph.addMouseListener(this), this.init())
-}
-mxPanningHandler.prototype = new mxPopupMenu;
-mxPanningHandler.prototype.constructor = mxPanningHandler;
-mxPanningHandler.prototype.graph = null;
-mxPanningHandler.prototype.triggerX = null;
-mxPanningHandler.prototype.triggerY = null;
-mxPanningHandler.prototype.usePopupTrigger = !0;
-mxPanningHandler.prototype.useLeftButtonForPanning = !1;
-mxPanningHandler.prototype.selectOnPopup = !0;
-mxPanningHandler.prototype.clearSelectionOnBackground = !0;
-mxPanningHandler.prototype.ignoreCell = !1;
-mxPanningHandler.prototype.previewEnabled = !0;
-mxPanningHandler.prototype.useGrid = !1;
-mxPanningHandler.prototype.panningEnabled = !0;
-mxPanningHandler.prototype.isPanningEnabled = function() {
-  return this.panningEnabled
-};
-mxPanningHandler.prototype.setPanningEnabled = function(a) {
-  this.panningEnabled = a
-};
-mxPanningHandler.prototype.init = function() {
-  mxPopupMenu.prototype.init.apply(this);
-  mxEvent.addListener(this.div, mxClient.IS_TOUCH ? "touchmove" : "mousemove", mxUtils.bind(this, function(a) {
-    this.graph.tooltipHandler.hide()
-  }))
-};
-mxPanningHandler.prototype.isPanningTrigger = function(a) {
-  var b = a.getEvent();
-  return this.useLeftButtonForPanning && (this.ignoreCell || null == a.getState()) && mxEvent.isLeftMouseButton(b) || mxEvent.isControlDown(b) && mxEvent.isShiftDown(b) || this.usePopupTrigger &&
-    mxEvent.isPopupTrigger(b)
-};
-mxPanningHandler.prototype.mouseDown = function(a, b) {
-  if (!b.isConsumed() && this.isEnabled()) {
-    this.hideMenu();
-    this.dx0 = -this.graph.container.scrollLeft;
-    this.dy0 = -this.graph.container.scrollTop;
-    var c = mxUtils.convertPoint(this.graph.container, b.getX(), b.getY());
-    this.triggerX = c.x;
-    this.triggerY = c.y;
-    this.popupTrigger = this.isPopupTrigger(b);
-    this.panningTrigger = this.isPanningEnabled() && this.isPanningTrigger(b);
-    this.startX = b.getX();
-    this.startY = b.getY();
-    this.panningTrigger && this.consumePanningTrigger(b)
-  }
-};
-mxPanningHandler.prototype.consumePanningTrigger = function(a) {
-  a.consume()
-};
-mxPanningHandler.prototype.mouseMove = function(a, b) {
-  var c = b.getX() - this.startX,
-    d = b.getY() - this.startY;
-  if (this.active) this.previewEnabled && (this.useGrid && (c = this.graph.snap(c), d = this.graph.snap(d)), this.graph.panGraph(c + this.dx0, d + this.dy0)), this.fireEvent(new mxEventObject(
-    mxEvent.PAN, "event", b)), b.consume();
-  else if (this.panningTrigger) {
-    var e = this.active;
-    this.active = Math.abs(c) > this.graph.tolerance || Math.abs(d) > this.graph.tolerance;
-    !e && this.active && this.fireEvent(new mxEventObject(mxEvent.PAN_START,
-      "event", b))
-  }
-};
-mxPanningHandler.prototype.mouseUp = function(a, b) {
-  var c = Math.abs(b.getX() - this.startX),
-    d = Math.abs(b.getY() - this.startY);
-  if (this.active) {
-    if (!this.graph.useScrollbarsForPanning || !mxUtils.hasScrollbars(this.graph.container)) {
-      c = b.getX() - this.startX;
-      d = b.getY() - this.startY;
-      this.useGrid && (c = this.graph.snap(c), d = this.graph.snap(d));
-      var e = this.graph.getView().scale,
-        f = this.graph.getView().translate;
-      this.graph.panGraph(0, 0);
-      this.panGraph(f.x + c / e, f.y + d / e)
-    }
-    this.active = !1;
-    this.fireEvent(new mxEventObject(mxEvent.PAN_END, "event",
-      b));
-    b.consume()
-  } else this.popupTrigger && (c < this.graph.tolerance && d < this.graph.tolerance) && (c = this.getCellForPopupEvent(b), this.graph.isEnabled() && this.selectOnPopup && null != c && !this.graph.isCellSelected(
-    c) ? this.graph.setSelectionCell(c) : this.clearSelectionOnBackground && null == c && this.graph.clearSelection(), this.graph.tooltipHandler.hide(), d = mxUtils.getScrollOrigin(), d = new mxPoint(
-    b.getX() + d.x, b.getY() + d.y), this.popup(d.x + 1, d.y + 1, c, b.getEvent()), b.consume());
-  this.popupTrigger = this.panningTrigger = !1
-};
-mxPanningHandler.prototype.getCellForPopupEvent = function(a) {
-  return a.getCell()
-};
-mxPanningHandler.prototype.panGraph = function(a, b) {
-  this.graph.getView().setTranslate(a, b)
-};
-mxPanningHandler.prototype.destroy = function() {
-  this.graph.removeMouseListener(this);
-  mxPopupMenu.prototype.destroy.apply(this)
-};
-
-function mxCellMarker(a, b, c, d) {
-  mxEventSource.call(this);
-  null != a && (this.graph = a, this.validColor = null != b ? b : mxConstants.DEFAULT_VALID_COLOR, this.invalidColor = null != b ? c : mxConstants.DEFAULT_INVALID_COLOR, this.hotspot = null != d ? d :
-    mxConstants.DEFAULT_HOTSPOT, this.highlight = new mxCellHighlight(a))
-}
-mxUtils.extend(mxCellMarker, mxEventSource);
-mxCellMarker.prototype.graph = null;
-mxCellMarker.prototype.enabled = !0;
-mxCellMarker.prototype.hotspot = mxConstants.DEFAULT_HOTSPOT;
-mxCellMarker.prototype.hotspotEnabled = !1;
-mxCellMarker.prototype.validColor = null;
-mxCellMarker.prototype.invalidColor = null;
-mxCellMarker.prototype.currentColor = null;
-mxCellMarker.prototype.validState = null;
-mxCellMarker.prototype.markedState = null;
-mxCellMarker.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxCellMarker.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxCellMarker.prototype.setHotspot = function(a) {
-  this.hotspot = a
-};
-mxCellMarker.prototype.getHotspot = function() {
-  return this.hotspot
-};
-mxCellMarker.prototype.setHotspotEnabled = function(a) {
-  this.hotspotEnabled = a
-};
-mxCellMarker.prototype.isHotspotEnabled = function() {
-  return this.hotspotEnabled
-};
-mxCellMarker.prototype.hasValidState = function() {
-  return null != this.validState
-};
-mxCellMarker.prototype.getValidState = function() {
-  return this.validState
-};
-mxCellMarker.prototype.getMarkedState = function() {
-  return this.markedState
-};
-mxCellMarker.prototype.reset = function() {
-  this.validState = null;
-  null != this.markedState && (this.markedState = null, this.unmark())
-};
-mxCellMarker.prototype.process = function(a) {
-  var b = null;
-  if (this.isEnabled()) {
-    var b = this.getState(a),
-      c = null != b ? this.isValidState(b) : !1;
-    a = this.getMarkerColor(a.getEvent(), b, c);
-    this.validState = c ? b : null;
-    if (b != this.markedState || a != this.currentColor) this.currentColor = a, null != b && null != this.currentColor ? (this.markedState = b, this.mark()) : null != this.markedState && (this.markedState =
-      null, this.unmark())
-  }
-  return b
-};
-mxCellMarker.prototype.markCell = function(a, b) {
-  var c = this.graph.getView().getState(a);
-  null != c && (this.currentColor = null != b ? b : this.validColor, this.markedState = c, this.mark())
-};
-mxCellMarker.prototype.mark = function() {
-  this.highlight.setHighlightColor(this.currentColor);
-  this.highlight.highlight(this.markedState);
-  this.fireEvent(new mxEventObject(mxEvent.MARK, "state", this.markedState))
-};
-mxCellMarker.prototype.unmark = function() {
-  this.mark()
-};
-mxCellMarker.prototype.isValidState = function(a) {
-  return !0
-};
-mxCellMarker.prototype.getMarkerColor = function(a, b, c) {
-  return c ? this.validColor : this.invalidColor
-};
-mxCellMarker.prototype.getState = function(a) {
-  var b = this.graph.getView();
-  cell = this.getCell(a);
-  b = this.getStateToMark(b.getState(cell));
-  return null != b && this.intersects(b, a) ? b : null
-};
-mxCellMarker.prototype.getCell = function(a) {
-  return a.getCell()
-};
-mxCellMarker.prototype.getStateToMark = function(a) {
-  return a
-};
-mxCellMarker.prototype.intersects = function(a, b) {
-  return this.hotspotEnabled ? mxUtils.intersectsHotspot(a, b.getGraphX(), b.getGraphY(), this.hotspot, mxConstants.MIN_HOTSPOT_SIZE, mxConstants.MAX_HOTSPOT_SIZE) : !0
-};
-mxCellMarker.prototype.destroy = function() {
-  this.graph.getView().removeListener(this.resetHandler);
-  this.graph.getModel().removeListener(this.resetHandler);
-  this.highlight.destroy()
-};
-
-function mxSelectionCellsHandler(a) {
-  mxEventSource.call(this);
-  this.graph = a;
-  this.handlers = new mxDictionary;
-  this.graph.addMouseListener(this);
-  this.refreshHandler = mxUtils.bind(this, function(a, c) {
-    this.isEnabled() && this.refresh()
-  });
-  this.graph.getSelectionModel().addListener(mxEvent.CHANGE, this.refreshHandler);
-  this.graph.getModel().addListener(mxEvent.CHANGE, this.refreshHandler);
-  this.graph.getView().addListener(mxEvent.SCALE, this.refreshHandler);
-  this.graph.getView().addListener(mxEvent.TRANSLATE, this.refreshHandler);
-  this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE, this.refreshHandler);
-  this.graph.getView().addListener(mxEvent.DOWN, this.refreshHandler);
-  this.graph.getView().addListener(mxEvent.UP, this.refreshHandler)
-}
-mxUtils.extend(mxSelectionCellsHandler, mxEventSource);
-mxSelectionCellsHandler.prototype.graph = null;
-mxSelectionCellsHandler.prototype.enabled = !0;
-mxSelectionCellsHandler.prototype.refreshHandler = null;
-mxSelectionCellsHandler.prototype.maxHandlers = 100;
-mxSelectionCellsHandler.prototype.handlers = null;
-mxSelectionCellsHandler.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxSelectionCellsHandler.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxSelectionCellsHandler.prototype.getHandler = function(a) {
-  return this.handlers.get(a)
-};
-mxSelectionCellsHandler.prototype.reset = function() {
-  this.handlers.visit(function(a, b) {
-    b.reset.apply(b)
-  })
-};
-mxSelectionCellsHandler.prototype.refresh = function() {
-  var a = this.handlers;
-  this.handlers = new mxDictionary;
-  for (var b = this.graph.getSelectionCells(), c = 0; c < b.length; c++) {
-    var d = this.graph.view.getState(b[c]);
-    if (null != d) {
-      var e = a.remove(b[c]);
-      null != e && (e.state != d ? (e.destroy(), e = null) : e.redraw());
-      null == e && (e = this.graph.createHandler(d), this.fireEvent(new mxEventObject(mxEvent.ADD, "state", d)));
-      null != e && this.handlers.put(b[c], e)
-    }
-  }
-  a.visit(mxUtils.bind(this, function(a, b) {
-    this.fireEvent(new mxEventObject(mxEvent.REMOVE,
-      "state", b.state));
-    b.destroy()
-  }))
-};
-mxSelectionCellsHandler.prototype.mouseDown = function(a, b) {
-  if (this.graph.isEnabled() && this.isEnabled()) {
-    var c = [a, b];
-    this.handlers.visit(function(a, b) {
-      b.mouseDown.apply(b, c)
-    })
-  }
-};
-mxSelectionCellsHandler.prototype.mouseMove = function(a, b) {
-  if (this.graph.isEnabled() && this.isEnabled()) {
-    var c = [a, b];
-    this.handlers.visit(function(a, b) {
-      b.mouseMove.apply(b, c)
-    })
-  }
-};
-mxSelectionCellsHandler.prototype.mouseUp = function(a, b) {
-  if (this.graph.isEnabled() && this.isEnabled()) {
-    var c = [a, b];
-    this.handlers.visit(function(a, b) {
-      b.mouseUp.apply(b, c)
-    })
-  }
-};
-mxSelectionCellsHandler.prototype.destroy = function() {
-  this.graph.removeMouseListener(this);
-  null != this.refreshHandler && (this.graph.getSelectionModel().removeListener(this.refreshHandler), this.graph.getModel().removeListener(this.refreshHandler), this.graph.getView().removeListener(
-    this.refreshHandler), this.refreshHandler = null)
-};
-
-function mxConnectionHandler(a, b) {
-  mxEventSource.call(this);
-  null != a && (this.graph = a, this.factoryMethod = b, this.init())
-}
-mxUtils.extend(mxConnectionHandler, mxEventSource);
-mxConnectionHandler.prototype.graph = null;
-mxConnectionHandler.prototype.factoryMethod = !0;
-mxConnectionHandler.prototype.moveIconFront = !1;
-mxConnectionHandler.prototype.moveIconBack = !1;
-mxConnectionHandler.prototype.connectImage = null;
-mxConnectionHandler.prototype.targetConnectImage = !1;
-mxConnectionHandler.prototype.enabled = !0;
-mxConnectionHandler.prototype.select = !0;
-mxConnectionHandler.prototype.createTarget = !1;
-mxConnectionHandler.prototype.marker = null;
-mxConnectionHandler.prototype.constraintHandler = null;
-mxConnectionHandler.prototype.error = null;
-mxConnectionHandler.prototype.waypointsEnabled = !1;
-mxConnectionHandler.prototype.tapAndHoldEnabled = !0;
-mxConnectionHandler.prototype.tapAndHoldDelay = 500;
-mxConnectionHandler.prototype.tapAndHoldInProgress = !1;
-mxConnectionHandler.prototype.tapAndHoldValid = !1;
-mxConnectionHandler.prototype.tapAndHoldTolerance = 4;
-mxConnectionHandler.prototype.initialTouchX = 0;
-mxConnectionHandler.prototype.initialTouchY = 0;
-mxConnectionHandler.prototype.ignoreMouseDown = !1;
-mxConnectionHandler.prototype.first = null;
-mxConnectionHandler.prototype.connectIconOffset = new mxPoint(0, mxConstants.TOOLTIP_VERTICAL_OFFSET);
-mxConnectionHandler.prototype.edgeState = null;
-mxConnectionHandler.prototype.changeHandler = null;
-mxConnectionHandler.prototype.drillHandler = null;
-mxConnectionHandler.prototype.mouseDownCounter = 0;
-mxConnectionHandler.prototype.movePreviewAway = mxClient.IS_VML;
-mxConnectionHandler.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxConnectionHandler.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxConnectionHandler.prototype.isCreateTarget = function() {
-  return this.createTarget
-};
-mxConnectionHandler.prototype.setCreateTarget = function(a) {
-  this.createTarget = a
-};
-mxConnectionHandler.prototype.createShape = function() {
-  var a = new mxPolyline([], mxConstants.INVALID_COLOR);
-  a.dialect = this.graph.dialect != mxConstants.DIALECT_SVG ? mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
-  a.init(this.graph.getView().getOverlayPane());
-  a.svgStrokeTolerance = 0;
-  a.pointerEvents = !1;
-  a.isDashed = !0;
-  if (this.graph.dialect == mxConstants.DIALECT_SVG) a.node.setAttribute("pointer-events", "none");
-  else {
-    var b = mxUtils.bind(this, function(a) {
-      a = mxUtils.convertPoint(this.graph.container, mxEvent.getClientX(a),
-        mxEvent.getClientY(a));
-      return this.graph.view.getState(this.graph.getCellAt(a.x, a.y))
-    });
-    mxEvent.redirectMouseEvents(a.node, this.graph, b)
-  }
-  return a
-};
-mxConnectionHandler.prototype.init = function() {
-  this.graph.addMouseListener(this);
-  this.marker = this.createMarker();
-  this.constraintHandler = new mxConstraintHandler(this.graph);
-  this.changeHandler = mxUtils.bind(this, function(a) {
-    null != this.iconState && (this.iconState = this.graph.getView().getState(this.iconState.cell));
-    null != this.iconState ? this.redrawIcons(this.icons, this.iconState) : (this.destroyIcons(this.icons), this.previous = null);
-    this.constraintHandler.reset()
-  });
-  this.graph.getModel().addListener(mxEvent.CHANGE,
-    this.changeHandler);
-  this.graph.getView().addListener(mxEvent.SCALE, this.changeHandler);
-  this.graph.getView().addListener(mxEvent.TRANSLATE, this.changeHandler);
-  this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE, this.changeHandler);
-  this.drillHandler = mxUtils.bind(this, function(a) {
-    this.destroyIcons(this.icons)
-  });
-  this.graph.addListener(mxEvent.START_EDITING, this.drillHandler);
-  this.graph.getView().addListener(mxEvent.DOWN, this.drillHandler);
-  this.graph.getView().addListener(mxEvent.UP, this.drillHandler)
-};
-mxConnectionHandler.prototype.isConnectableCell = function(a) {
-  return !0
-};
-mxConnectionHandler.prototype.createMarker = function() {
-  var a = new mxCellMarker(this.graph);
-  a.hotspotEnabled = !0;
-  a.getCell = mxUtils.bind(this, function(b, c) {
-    c = mxCellMarker.prototype.getCell.apply(a, arguments);
-    this.error = null;
-    if (!this.isConnectableCell(c)) return null;
-    null != c ? this.isConnecting() ? null != this.previous && (this.error = this.validateConnection(this.previous.cell, c), null != this.error && 0 == this.error.length && (c = null, this.isCreateTarget() &&
-        (this.error = null))) : this.isValidSource(c) || (c = null) : this.isConnecting() &&
-      (!this.isCreateTarget() && !this.graph.allowDanglingEdges) && (this.error = "");
-    return c
-  });
-  a.isValidState = mxUtils.bind(this, function(b) {
-    return this.isConnecting() ? null == this.error : mxCellMarker.prototype.isValidState.apply(a, arguments)
-  });
-  a.getMarkerColor = mxUtils.bind(this, function(b, c, d) {
-    return null == this.connectImage || this.isConnecting() ? mxCellMarker.prototype.getMarkerColor.apply(a, arguments) : null
-  });
-  a.intersects = mxUtils.bind(this, function(b, c) {
-    return null != this.connectImage || this.isConnecting() ? !0 : mxCellMarker.prototype.intersects.apply(a,
-      arguments)
-  });
-  return a
-};
-mxConnectionHandler.prototype.start = function(a, b, c, d) {
-  this.previous = a;
-  this.first = new mxPoint(b, c);
-  this.edgeState = null != d ? d : this.createEdgeState(null);
-  this.marker.currentColor = this.marker.validColor;
-  this.marker.markedState = a;
-  this.marker.mark();
-  this.fireEvent(new mxEventObject(mxEvent.START, "state", this.previous))
-};
-mxConnectionHandler.prototype.isConnecting = function() {
-  return null != this.first && null != this.shape
-};
-mxConnectionHandler.prototype.isValidSource = function(a) {
-  return this.graph.isValidSource(a)
-};
-mxConnectionHandler.prototype.isValidTarget = function(a) {
-  return !0
-};
-mxConnectionHandler.prototype.validateConnection = function(a, b) {
-  return !this.isValidTarget(b) ? "" : this.graph.getEdgeValidationError(null, a, b)
-};
-mxConnectionHandler.prototype.getConnectImage = function(a) {
-  return this.connectImage
-};
-mxConnectionHandler.prototype.isMoveIconToFrontForState = function(a) {
-  return null != a.text && a.text.node.parentNode == this.graph.container ? !0 : this.moveIconFront
-};
-mxConnectionHandler.prototype.createIcons = function(a) {
-  var b = this.getConnectImage(a);
-  if (null != b && null != a) {
-    this.iconState = a;
-    var c = [],
-      d = new mxRectangle(0, 0, b.width, b.height),
-      e = new mxImageShape(d, b.src, null, null, 0);
-    e.preserveImageAspect = !1;
-    this.isMoveIconToFrontForState(a) ? (e.dialect = mxConstants.DIALECT_STRICTHTML, e.init(this.graph.container)) : (e.dialect = this.graph.dialect == mxConstants.DIALECT_SVG ? mxConstants.DIALECT_SVG :
-      mxConstants.DIALECT_VML, e.init(this.graph.getView().getOverlayPane()), this.moveIconBack &&
-      null != e.node.previousSibling && e.node.parentNode.insertBefore(e.node, e.node.parentNode.firstChild));
-    e.node.style.cursor = mxConstants.CURSOR_CONNECT;
-    var f = mxUtils.bind(this, function() {
-        return null != this.currentState ? this.currentState : a
-      }),
-      b = mxUtils.bind(this, function(a) {
-        mxEvent.isConsumed(a) || (this.icon = e, this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(a, f())))
-      });
-    mxEvent.redirectMouseEvents(e.node, this.graph, f, b);
-    c.push(e);
-    this.redrawIcons(c, this.iconState);
-    return c
-  }
-  return null
-};
-mxConnectionHandler.prototype.redrawIcons = function(a, b) {
-  if (null != a && null != a[0] && null != b) {
-    var c = this.getIconPosition(a[0], b);
-    a[0].bounds.x = c.x;
-    a[0].bounds.y = c.y;
-    a[0].redraw()
-  }
-};
-mxConnectionHandler.prototype.getIconPosition = function(a, b) {
-  var c = this.graph.getView().scale,
-    d = b.getCenterX(),
-    e = b.getCenterY();
-  if (this.graph.isSwimlane(b.cell)) {
-    var f = this.graph.getStartSize(b.cell),
-      d = 0 != f.width ? b.x + f.width * c / 2 : d,
-      e = 0 != f.height ? b.y + f.height * c / 2 : e,
-      f = mxUtils.toRadians(mxUtils.getValue(b.style, mxConstants.STYLE_ROTATION) || 0);
-    if (0 != f) var c = Math.cos(f),
-      f = Math.sin(f),
-      g = new mxPoint(b.getCenterX(), b.getCenterY()),
-      e = mxUtils.getRotatedPoint(new mxPoint(d, e), c, f, g),
-      d = e.x,
-      e = e.y
-  }
-  return new mxPoint(d -
-    a.bounds.width / 2, e - a.bounds.height / 2)
-};
-mxConnectionHandler.prototype.destroyIcons = function(a) {
-  if (null != a) {
-    this.iconState = null;
-    for (var b = 0; b < a.length; b++) a[b].destroy()
-  }
-};
-mxConnectionHandler.prototype.isStartEvent = function(a) {
-  return !this.graph.isForceMarqueeEvent(a.getEvent()) && (null != this.constraintHandler.currentFocus && null != this.constraintHandler.currentConstraint || null != this.previous && null == this.error &&
-    (null == this.icons || null != this.icons && null != this.icon))
-};
-mxConnectionHandler.prototype.mouseDown = function(a, b) {
-  this.mouseDownCounter++;
-  if (this.isEnabled() && this.graph.isEnabled() && !b.isConsumed() && !this.isConnecting() && this.isStartEvent(b)) {
-    null != this.constraintHandler.currentConstraint && null != this.constraintHandler.currentFocus && null != this.constraintHandler.currentPoint ? (this.sourceConstraint = this.constraintHandler.currentConstraint,
-      this.previous = this.constraintHandler.currentFocus, this.first = this.constraintHandler.currentPoint.clone()) : this.first = new mxPoint(b.getGraphX(),
-      b.getGraphY());
-    this.edgeState = this.createEdgeState(b);
-    this.mouseDownCounter = 1;
-    this.waypointsEnabled && null == this.shape && (this.waypoints = null, this.shape = this.createShape());
-    if (null == this.previous && null != this.edgeState) {
-      var c = this.graph.getPointForEvent(b.getEvent());
-      this.edgeState.cell.geometry.setTerminalPoint(c, !0)
-    }
-    this.fireEvent(new mxEventObject(mxEvent.START, "state", this.previous));
-    b.consume()
-  } else if (mxClient.IS_TOUCH && this.tapAndHoldEnabled && !this.tapAndHoldInProgress && this.isEnabled() && this.graph.isEnabled() &&
-    !this.isConnecting()) {
-    this.tapAndHoldInProgress = !0;
-    this.initialTouchX = b.getX();
-    this.initialTouchY = b.getY();
-    var d = this.graph.view.getState(this.marker.getCell(b));
-    this.tapAndHoldThread && window.clearTimeout(this.tapAndHoldThread);
-    this.tapAndHoldThread = window.setTimeout(mxUtils.bind(this, function() {
-      this.tapAndHoldValid && this.tapAndHold(b, d);
-      this.tapAndHoldValid = this.tapAndHoldInProgress = !1
-    }), this.tapAndHoldDelay);
-    this.tapAndHoldValid = !0
-  }
-  this.selectedIcon = this.icon;
-  this.icon = null
-};
-mxConnectionHandler.prototype.tapAndHold = function(a, b) {
-  null != b && (this.marker.currentColor = this.marker.validColor, this.marker.markedState = b, this.marker.mark(), this.first = new mxPoint(a.getGraphX(), a.getGraphY()), this.edgeState = this.createEdgeState(
-    a), this.previous = b, this.fireEvent(new mxEventObject(mxEvent.START, "state", this.previous)))
-};
-mxConnectionHandler.prototype.isImmediateConnectSource = function(a) {
-  return !this.graph.isCellMovable(a.cell)
-};
-mxConnectionHandler.prototype.createEdgeState = function(a) {
-  return null
-};
-mxConnectionHandler.prototype.updateCurrentState = function(a) {
-  var b = this.marker.process(a);
-  this.constraintHandler.update(a, null == this.first);
-  this.currentState = b
-};
-mxConnectionHandler.prototype.convertWaypoint = function(a) {
-  var b = this.graph.getView().getScale(),
-    c = this.graph.getView().getTranslate();
-  a.x = a.x / b - c.x;
-  a.y = a.y / b - c.y
-};
-mxConnectionHandler.prototype.mouseMove = function(a, b) {
-  this.tapAndHoldValid && (this.tapAndHoldValid = Math.abs(this.initialTouchX - b.getX()) < this.tapAndHoldTolerance && Math.abs(this.initialTouchY - b.getY()) < this.tapAndHoldTolerance);
-  if (!b.isConsumed() && (this.ignoreMouseDown || null != this.first || !this.graph.isMouseDown)) {
-    !this.isEnabled() && null != this.currentState && (this.destroyIcons(this.icons), this.currentState = null);
-    (null != this.first || this.isEnabled() && this.graph.isEnabled()) && this.updateCurrentState(b);
-    if (null != this.first) {
-      var c = this.graph.getView().scale,
-        c = new mxPoint(this.graph.snap(b.getGraphX() / c) * c, this.graph.snap(b.getGraphY() / c) * c),
-        d = null,
-        e = c;
-      null != this.constraintHandler.currentConstraint && (null != this.constraintHandler.currentFocus && null != this.constraintHandler.currentPoint) && (d = this.constraintHandler.currentConstraint,
-        e = this.constraintHandler.currentPoint.clone());
-      var f = this.first;
-      if (null != this.selectedIcon) {
-        var g = this.selectedIcon.bounds.width,
-          h = this.selectedIcon.bounds.height;
-        null != this.currentState &&
-          this.targetConnectImage ? (g = this.getIconPosition(this.selectedIcon, this.currentState), this.selectedIcon.bounds.x = g.x, this.selectedIcon.bounds.y = g.y) : (g = new mxRectangle(b.getGraphX() +
-            this.connectIconOffset.x, b.getGraphY() + this.connectIconOffset.y, g, h), this.selectedIcon.bounds = g);
-        this.selectedIcon.redraw()
-      }
-      if (null != this.edgeState) {
-        this.edgeState.absolutePoints = [null, null != this.currentState ? null : e];
-        this.graph.view.updateFixedTerminalPoint(this.edgeState, this.previous, !0, this.sourceConstraint);
-        null != this.currentState &&
-          (null == d && (d = this.graph.getConnectionConstraint(this.edgeState, this.previous, !1)), this.edgeState.setAbsoluteTerminalPoint(null, !1), this.graph.view.updateFixedTerminalPoint(this
-            .edgeState, this.currentState, !1, d));
-        f = null;
-        if (null != this.waypoints) {
-          f = [];
-          for (e = 0; e < this.waypoints.length; e++) d = this.waypoints[e].clone(), this.convertWaypoint(d), f[e] = d
-        }
-        this.graph.view.updatePoints(this.edgeState, f, this.previous, this.currentState);
-        this.graph.view.updateFloatingTerminalPoints(this.edgeState, this.previous, this.currentState);
-        e = this.edgeState.absolutePoints[this.edgeState.absolutePoints.length - 1];
-        f = this.edgeState.absolutePoints[0]
-      } else null != this.currentState && null == this.constraintHandler.currentConstraint && (g = this.getTargetPerimeterPoint(this.currentState, b), null != g && (e = g)), null == this.sourceConstraint &&
-        null != this.previous && (g = this.getSourcePerimeterPoint(this.previous, null != this.waypoints && 0 < this.waypoints.length ? this.waypoints[0] : e, b), null != g && (f = g));
-      if (null == this.currentState && this.movePreviewAway) {
-        g = f;
-        null != this.edgeState &&
-          2 < this.edgeState.absolutePoints.length && (d = this.edgeState.absolutePoints[this.edgeState.absolutePoints.length - 2], null != d && (g = d));
-        d = e.x - g.x;
-        g = e.y - g.y;
-        h = Math.sqrt(d * d + g * g);
-        if (0 == h) return;
-        e.x -= 4 * d / h;
-        e.y -= 4 * g / h
-      }
-      if (null == this.shape && (d = Math.abs(c.x - this.first.x), g = Math.abs(c.y - this.first.y), d > this.graph.tolerance || g > this.graph.tolerance)) this.shape = this.createShape(), this.updateCurrentState(
-        b);
-      null != this.shape && (null != this.edgeState ? this.shape.points = this.edgeState.absolutePoints : (c = [f], null != this.waypoints &&
-        (c = c.concat(this.waypoints)), c.push(e), this.shape.points = c), this.drawPreview());
-      mxEvent.consume(b.getEvent());
-      b.consume()
-    } else !this.isEnabled() || !this.graph.isEnabled() ? this.constraintHandler.reset() : this.previous != this.currentState && null == this.edgeState ? (this.destroyIcons(this.icons), this.icons =
-        null, null != this.currentState && null == this.error && (this.icons = this.createIcons(this.currentState), null == this.icons && (this.currentState.setCursor(mxConstants.CURSOR_CONNECT), b
-          .consume())), this.previous = this.currentState) :
-      this.previous == this.currentState && (null != this.currentState && null == this.icons && !this.graph.isMouseDown) && b.consume();
-    null != this.constraintHandler.currentConstraint && this.marker.reset();
-    if (!this.graph.isMouseDown && null != this.currentState && null != this.icons) {
-      c = !1;
-      f = b.getSource();
-      for (e = 0; e < this.icons.length && !c; e++) c = f == this.icons[e].node || f.parentNode == this.icons[e].node;
-      c || this.updateIcons(this.currentState, this.icons, b)
-    }
-  } else this.constraintHandler.reset()
-};
-mxConnectionHandler.prototype.getTargetPerimeterPoint = function(a, b) {
-  var c = null,
-    d = a.view,
-    e = d.getPerimeterFunction(a);
-  if (null != e) {
-    var f = null != this.waypoints && 0 < this.waypoints.length ? this.waypoints[this.waypoints.length - 1] : new mxPoint(this.previous.getCenterX(), this.previous.getCenterY()),
-      d = e(d.getPerimeterBounds(a), this.edgeState, f, !1);
-    null != d && (c = d)
-  } else c = new mxPoint(a.getCenterX(), a.getCenterY());
-  return c
-};
-mxConnectionHandler.prototype.getSourcePerimeterPoint = function(a, b, c) {
-  c = null;
-  var d = a.view,
-    e = d.getPerimeterFunction(a),
-    f = new mxPoint(a.getCenterX(), a.getCenterY());
-  if (null != e) {
-    var g = mxUtils.getValue(a.style, mxConstants.STYLE_ROTATION, 0),
-      h = -g * (Math.PI / 180);
-    0 != g && (b = mxUtils.getRotatedPoint(new mxPoint(b.x, b.y), Math.cos(h), Math.sin(h), f));
-    a = e(d.getPerimeterBounds(a), a, b, !1);
-    null != a && (0 != g && (a = mxUtils.getRotatedPoint(new mxPoint(a.x, a.y), Math.cos(-h), Math.sin(-h), f)), c = a)
-  } else c = f;
-  return c
-};
-mxConnectionHandler.prototype.updateIcons = function(a, b, c) {};
-mxConnectionHandler.prototype.isStopEvent = function(a) {
-  return null != a.getState()
-};
-mxConnectionHandler.prototype.addWaypointForEvent = function(a) {
-  var b = mxUtils.convertPoint(this.graph.container, a.getX(), a.getY()),
-    c = Math.abs(b.x - this.first.x),
-    b = Math.abs(b.y - this.first.y);
-  if (null != this.waypoints || 1 < this.mouseDownCounter && (c > this.graph.tolerance || b > this.graph.tolerance)) null == this.waypoints && (this.waypoints = []), c = this.graph.view.scale, b =
-    new mxPoint(this.graph.snap(a.getGraphX() / c) * c, this.graph.snap(a.getGraphY() / c) * c), this.waypoints.push(b)
-};
-mxConnectionHandler.prototype.mouseUp = function(a, b) {
-  if (!b.isConsumed() && this.isConnecting()) {
-    if (this.waypointsEnabled && !this.isStopEvent(b)) {
-      this.addWaypointForEvent(b);
-      b.consume();
-      return
-    }
-    if (null == this.error) {
-      var c = null != this.previous ? this.previous.cell : null,
-        d = null;
-      null != this.constraintHandler.currentConstraint && null != this.constraintHandler.currentFocus && (d = this.constraintHandler.currentFocus.cell);
-      null == d && this.marker.hasValidState() && (d = this.marker.validState.cell);
-      this.connect(c, d, b.getEvent(),
-        b.getCell())
-    } else null != this.previous && (null != this.marker.validState && this.previous.cell == this.marker.validState.cell) && this.graph.selectCellForEvent(this.marker.source, evt), 0 < this.error.length &&
-      this.graph.validationAlert(this.error);
-    this.destroyIcons(this.icons);
-    b.consume()
-  }
-  null != this.first && this.reset();
-  this.tapAndHoldValid = this.tapAndHoldInProgress = !1
-};
-mxConnectionHandler.prototype.reset = function() {
-  null != this.shape && (this.shape.destroy(), this.shape = null);
-  this.destroyIcons(this.icons);
-  this.icons = null;
-  this.marker.reset();
-  this.constraintHandler.reset();
-  this.sourceConstraint = this.error = this.previous = this.edgeState = this.selectedIcon = null;
-  this.mouseDownCounter = 0;
-  this.icon = this.first = null;
-  this.fireEvent(new mxEventObject(mxEvent.RESET))
-};
-mxConnectionHandler.prototype.drawPreview = function() {
-  var a = null == this.error;
-  this.shape.strokewidth = this.getEdgeWidth(a);
-  a = this.getEdgeColor(a);
-  this.shape.stroke = a;
-  this.shape.redraw()
-};
-mxConnectionHandler.prototype.getEdgeColor = function(a) {
-  return a ? mxConstants.VALID_COLOR : mxConstants.INVALID_COLOR
-};
-mxConnectionHandler.prototype.getEdgeWidth = function(a) {
-  return a ? 3 : 1
-};
-mxConnectionHandler.prototype.connect = function(a, b, c, d) {
-  if (null != b || this.isCreateTarget() || this.graph.allowDanglingEdges) {
-    var e = this.graph.getModel(),
-      f = null;
-    e.beginUpdate();
-    try {
-      if (null != a && (null == b && this.isCreateTarget()) && (b = this.createTargetVertex(c, a), null != b)) {
-        d = this.graph.getDropTarget([b], c, d);
-        if (null == d || !this.graph.getModel().isEdge(d)) {
-          var g = this.graph.getView().getState(d);
-          if (null != g) {
-            var h = e.getGeometry(b);
-            h.x -= g.origin.x;
-            h.y -= g.origin.y
-          }
-        } else d = this.graph.getDefaultParent();
-        this.graph.addCell(b,
-          d)
-      }
-      var k = this.graph.getDefaultParent();
-      null != a && (null != b && e.getParent(a) == e.getParent(b) && e.getParent(e.getParent(a)) != e.getRoot()) && (k = e.getParent(a), null != a.geometry && a.geometry.relative && (null != b.geometry &&
-        b.geometry.relative) && (k = e.getParent(k)));
-      h = g = null;
-      null != this.edgeState && (g = this.edgeState.cell.value, h = this.edgeState.cell.style);
-      f = this.insertEdge(k, null, g, a, b, h);
-      if (null != f) {
-        this.graph.setConnectionConstraint(f, a, !0, this.sourceConstraint);
-        this.graph.setConnectionConstraint(f, b, !1, this.constraintHandler.currentConstraint);
-        null != this.edgeState && e.setGeometry(f, this.edgeState.cell.geometry);
-        var l = e.getGeometry(f);
-        null == l && (l = new mxGeometry, l.relative = !0, e.setGeometry(f, l));
-        if (null != this.waypoints && 0 < this.waypoints.length) {
-          var m = this.graph.view.scale,
-            n = this.graph.view.translate;
-          l.points = [];
-          for (a = 0; a < this.waypoints.length; a++) {
-            var p = this.waypoints[a];
-            l.points.push(new mxPoint(p.x / m - n.x, p.y / m - n.y))
-          }
-        }
-        null == b && (p = this.graph.getPointForEvent(c, !1), p.x -= this.graph.panDx / this.graph.view.scale, p.y -= this.graph.panDy / this.graph.view.scale,
-          l.setTerminalPoint(p, !1));
-        this.fireEvent(new mxEventObject(mxEvent.CONNECT, "cell", f, "event", c, "target", d))
-      }
-    } catch (q) {
-      mxLog.show(), mxLog.debug(q.message)
-    } finally {
-      e.endUpdate()
-    }
-    this.select && this.selectCells(f, b)
-  }
-};
-mxConnectionHandler.prototype.selectCells = function(a, b) {
-  this.graph.setSelectionCell(a)
-};
-mxConnectionHandler.prototype.insertEdge = function(a, b, c, d, e, f) {
-  if (null == this.factoryMethod) return this.graph.insertEdge(a, b, c, d, e, f);
-  b = this.createEdge(c, d, e, f);
-  return b = this.graph.addEdge(b, a, d, e)
-};
-mxConnectionHandler.prototype.createTargetVertex = function(a, b) {
-  for (var c = this.graph.getCellGeometry(b); null != c && c.relative;) b = this.graph.getModel().getParent(b), c = this.graph.getCellGeometry(b);
-  var d = this.graph.cloneCells([b])[0],
-    c = this.graph.getModel().getGeometry(d);
-  if (null != c) {
-    var e = this.graph.getPointForEvent(a);
-    c.x = this.graph.snap(e.x - c.width / 2) - this.graph.panDx / this.graph.view.scale;
-    c.y = this.graph.snap(e.y - c.height / 2) - this.graph.panDy / this.graph.view.scale;
-    if (null != this.first) {
-      var f = this.graph.view.getState(b);
-      if (null != f) {
-        var g = this.getAlignmentTolerance();
-        Math.abs(this.graph.snap(this.first.x) - this.graph.snap(e.x)) <= g ? c.x = f.x : Math.abs(this.graph.snap(this.first.y) - this.graph.snap(e.y)) <= g && (c.y = f.y)
-      }
-    }
-  }
-  return d
-};
-mxConnectionHandler.prototype.getAlignmentTolerance = function() {
-  return this.graph.isGridEnabled() ? this.graph.gridSize : this.graph.tolerance
-};
-mxConnectionHandler.prototype.createEdge = function(a, b, c, d) {
-  var e = null;
-  null != this.factoryMethod && (e = this.factoryMethod(b, c, d));
-  null == e && (e = new mxCell(a || ""), e.setEdge(!0), e.setStyle(d), a = new mxGeometry, a.relative = !0, e.setGeometry(a));
-  return e
-};
-mxConnectionHandler.prototype.destroy = function() {
-  this.graph.removeMouseListener(this);
-  null != this.shape && (this.shape.destroy(), this.shape = null);
-  null != this.marker && (this.marker.destroy(), this.marker = null);
-  null != this.constraintHandler && (this.constraintHandler.destroy(), this.constraintHandler = null);
-  null != this.changeHandler && (this.graph.getModel().removeListener(this.changeHandler), this.graph.getView().removeListener(this.changeHandler), this.changeHandler = null);
-  null != this.drillHandler && (this.graph.removeListener(this.drillHandler),
-    this.graph.getView().removeListener(this.drillHandler), this.drillHandler = null)
-};
-
-function mxConstraintHandler(a) {
-  this.graph = a
-}
-mxConstraintHandler.prototype.pointImage = new mxImage(mxClient.imageBasePath + "/point.gif", 5, 5);
-mxConstraintHandler.prototype.graph = null;
-mxConstraintHandler.prototype.enabled = !0;
-mxConstraintHandler.prototype.highlightColor = mxConstants.DEFAULT_VALID_COLOR;
-mxConstraintHandler.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxConstraintHandler.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxConstraintHandler.prototype.reset = function() {
-  if (null != this.focusIcons) {
-    for (var a = 0; a < this.focusIcons.length; a++) this.focusIcons[a].destroy();
-    this.focusIcons = null
-  }
-  null != this.focusHighlight && (this.focusHighlight.destroy(), this.focusHighlight = null);
-  this.focusPoints = this.currentFocus = this.currentPoint = this.currentFocusArea = this.currentConstraint = null
-};
-mxConstraintHandler.prototype.getTolerance = function() {
-  return this.graph.getTolerance()
-};
-mxConstraintHandler.prototype.getImageForConstraint = function(a, b, c) {
-  return this.pointImage
-};
-mxConstraintHandler.prototype.isEventIgnored = function(a, b) {
-  return !1
-};
-mxConstraintHandler.prototype.update = function(a, b) {
-  if (this.isEnabled() && !this.isEventIgnored(a)) {
-    var c = this.getTolerance(),
-      d = new mxRectangle(a.getGraphX() - c, a.getGraphY() - c, 2 * c, 2 * c),
-      e = null != a.getCell() ? this.graph.isCellConnectable(a.getCell()) : !1;
-    if (null == this.currentFocusArea || !mxUtils.intersects(this.currentFocusArea, d) || null != a.getState() && null != this.currentFocus && e)
-      if (this.currentFocusArea = null, a.getState() != this.currentFocus)
-        if (this.currentFocus = null, this.constraints = null != a.getState() && e ? this.graph.getAllConnectionConstraints(a.getState(),
-            b) : null, null != this.constraints) {
-          this.currentFocus = a.getState();
-          this.currentFocusArea = new mxRectangle(a.getState().x, a.getState().y, a.getState().width, a.getState().height);
-          if (null != this.focusIcons) {
-            for (e = 0; e < this.focusIcons.length; e++) this.focusIcons[e].destroy();
-            this.focusPoints = this.focusIcons = null
-          }
-          this.focusIcons = [];
-          this.focusPoints = [];
-          for (e = 0; e < this.constraints.length; e++) {
-            var f = this.graph.getConnectionPoint(a.getState(), this.constraints[e]),
-              g = this.getImageForConstraint(a.getState(), this.constraints[e],
-                f),
-              h = g.src,
-              g = new mxRectangle(f.x - g.width / 2, f.y - g.height / 2, g.width, g.height),
-              g = new mxImageShape(g, h);
-            g.dialect = this.graph.dialect != mxConstants.DIALECT_SVG ? mxConstants.DIALECT_MIXEDHTML : mxConstants.DIALECT_SVG;
-            g.preserveImageAspect = !1;
-            g.init(this.graph.getView().getOverlayPane());
-            null != g.node.previousSibling && g.node.parentNode.insertBefore(g.node, g.node.parentNode.firstChild);
-            h = mxUtils.bind(this, function() {
-              return null != this.currentFocus ? this.currentFocus : a.getState()
-            });
-            g.redraw();
-            mxEvent.redirectMouseEvents(g.node,
-              this.graph, h);
-            this.currentFocusArea.add(g.bounds);
-            this.focusIcons.push(g);
-            this.focusPoints.push(f)
-          }
-          this.currentFocusArea.grow(c)
-        } else if (null != this.focusIcons) {
-      null != this.focusHighlight && (this.focusHighlight.destroy(), this.focusHighlight = null);
-      for (e = 0; e < this.focusIcons.length; e++) this.focusIcons[e].destroy();
-      this.focusPoints = this.focusIcons = null
-    }
-    this.currentPoint = this.currentConstraint = null;
-    if (null != this.focusIcons && null != this.constraints && (null == a.getState() || this.currentFocus == a.getState()))
-      for (e =
-        0; e < this.focusIcons.length; e++)
-        if (mxUtils.intersects(this.focusIcons[e].bounds, d)) {
-          this.currentConstraint = this.constraints[e];
-          this.currentPoint = this.focusPoints[e];
-          c = this.focusIcons[e].bounds.clone();
-          c.grow(mxClient.IS_IE ? 3 : 2);
-          mxClient.IS_IE && (c.width -= 1, c.height -= 1);
-          null == this.focusHighlight ? (c = new mxRectangleShape(c, null, this.highlightColor, 3), c.dialect = this.graph.dialect == mxConstants.DIALECT_SVG ? mxConstants.DIALECT_SVG : mxConstants
-            .DIALECT_VML, c.init(this.graph.getView().getOverlayPane()), this.focusHighlight =
-            c, h = mxUtils.bind(this, function() {
-              return null != this.currentFocus ? this.currentFocus : a.getState()
-            }), mxEvent.redirectMouseEvents(c.node, this.graph, h)) : (this.focusHighlight.bounds = c, this.focusHighlight.redraw());
-          break
-        }
-    null == this.currentConstraint && null != this.focusHighlight && (this.focusHighlight.destroy(), this.focusHighlight = null)
-  }
-};
-mxConstraintHandler.prototype.destroy = function() {
-  this.reset()
-};
-
-function mxRubberband(a) {
-  null != a && (this.graph = a, this.graph.addMouseListener(this), this.panHandler = mxUtils.bind(this, function() {
-    this.repaint()
-  }), this.graph.addListener(mxEvent.PAN, this.panHandler), mxClient.IS_IE && mxEvent.addListener(window, "unload", mxUtils.bind(this, function() {
-    this.destroy()
-  })))
-}
-mxRubberband.prototype.defaultOpacity = 20;
-mxRubberband.prototype.enabled = !0;
-mxRubberband.prototype.div = null;
-mxRubberband.prototype.sharedDiv = null;
-mxRubberband.prototype.currentX = 0;
-mxRubberband.prototype.currentY = 0;
-mxRubberband.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxRubberband.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxRubberband.prototype.mouseDown = function(a, b) {
-  if (!b.isConsumed() && this.isEnabled() && this.graph.isEnabled() && (this.graph.isForceMarqueeEvent(b.getEvent()) || null == b.getState())) {
-    var c = mxUtils.getOffset(this.graph.container),
-      d = mxUtils.getScrollOrigin(this.graph.container);
-    d.x -= c.x;
-    d.y -= c.y;
-    this.start(b.getX() + d.x, b.getY() + d.y);
-    if (mxClient.IS_NS && !mxClient.IS_SF && !mxClient.IS_GC) {
-      var e = this.graph.container,
-        f = function(a) {
-          a = new mxMouseEvent(a);
-          var b = mxUtils.convertPoint(e, a.getX(), a.getY());
-          a.graphX = b.x;
-          a.graphY = b.y;
-          return a
-        };
-      this.dragHandler = mxUtils.bind(this, function(a) {
-        this.mouseMove(this.graph, f(a))
-      });
-      this.dropHandler = mxUtils.bind(this, function(a) {
-        this.mouseUp(this.graph, f(a))
-      });
-      mxEvent.addListener(document, "mousemove", this.dragHandler);
-      mxEvent.addListener(document, "mouseup", this.dropHandler)
-    }
-    b.consume(!1)
-  }
-};
-mxRubberband.prototype.start = function(a, b) {
-  this.first = new mxPoint(a, b)
-};
-mxRubberband.prototype.mouseMove = function(a, b) {
-  if (!b.isConsumed() && null != this.first) {
-    var c = mxUtils.getScrollOrigin(this.graph.container),
-      d = mxUtils.getOffset(this.graph.container);
-    c.x -= d.x;
-    c.y -= d.y;
-    var d = b.getX() + c.x,
-      c = b.getY() + c.y,
-      e = this.first.x - d,
-      f = this.first.y - c,
-      g = this.graph.tolerance;
-    if (null != this.div || Math.abs(e) > g || Math.abs(f) > g) null == this.div && (this.div = this.createShape()), mxUtils.clearSelection(), this.update(d, c), b.consume()
-  }
-};
-mxRubberband.prototype.createShape = function() {
-  null == this.sharedDiv && (this.sharedDiv = document.createElement("div"), this.sharedDiv.className = "mxRubberband", mxUtils.setOpacity(this.sharedDiv, this.defaultOpacity));
-  this.graph.container.appendChild(this.sharedDiv);
-  return this.sharedDiv
-};
-mxRubberband.prototype.mouseUp = function(a, b) {
-  var c = null != this.div;
-  this.reset();
-  c && (c = new mxRectangle(this.x, this.y, this.width, this.height), this.graph.selectRegion(c, b.getEvent()), b.consume())
-};
-mxRubberband.prototype.reset = function() {
-  null != this.div && this.div.parentNode.removeChild(this.div);
-  null != this.dragHandler && (mxEvent.removeListener(document, "mousemove", this.dragHandler), this.dragHandler = null);
-  null != this.dropHandler && (mxEvent.removeListener(document, "mouseup", this.dropHandler), this.dropHandler = null);
-  this.currentY = this.currentX = 0;
-  this.div = this.first = null
-};
-mxRubberband.prototype.update = function(a, b) {
-  this.currentX = a;
-  this.currentY = b;
-  this.repaint()
-};
-mxRubberband.prototype.repaint = function() {
-  if (null != this.div) {
-    var a = this.currentX - this.graph.panDx,
-      b = this.currentY - this.graph.panDy;
-    this.x = Math.min(this.first.x, a);
-    this.y = Math.min(this.first.y, b);
-    this.width = Math.max(this.first.x, a) - this.x;
-    this.height = Math.max(this.first.y, b) - this.y;
-    a = mxClient.IS_VML ? this.graph.panDy : 0;
-    this.div.style.left = this.x + (mxClient.IS_VML ? this.graph.panDx : 0) + "px";
-    this.div.style.top = this.y + a + "px";
-    this.div.style.width = Math.max(1, this.width) + "px";
-    this.div.style.height = Math.max(1,
-      this.height) + "px"
-  }
-};
-mxRubberband.prototype.destroy = function() {
-  this.destroyed || (this.destroyed = !0, this.graph.removeMouseListener(this), this.graph.removeListener(this.panHandler), this.reset(), null != this.sharedDiv && (this.sharedDiv = null))
-};
-
-function mxVertexHandler(a) {
-  null != a && (this.state = a, this.init())
-}
-mxVertexHandler.prototype.graph = null;
-mxVertexHandler.prototype.state = null;
-mxVertexHandler.prototype.singleSizer = !1;
-mxVertexHandler.prototype.index = null;
-mxVertexHandler.prototype.allowHandleBoundsCheck = !0;
-mxVertexHandler.prototype.handleImage = null;
-mxVertexHandler.prototype.tolerance = 0;
-mxVertexHandler.prototype.rotationEnabled = !1;
-mxVertexHandler.prototype.rotationRaster = !0;
-mxVertexHandler.prototype.init = function() {
-  this.graph = this.state.view.graph;
-  this.selectionBounds = this.getSelectionBounds(this.state);
-  this.bounds = new mxRectangle(this.selectionBounds.x, this.selectionBounds.y, this.selectionBounds.width, this.selectionBounds.height);
-  this.selectionBorder = this.createSelectionShape(this.bounds);
-  this.selectionBorder.dialect = this.graph.dialect != mxConstants.DIALECT_SVG ? mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
-  this.selectionBorder.pointerEvents = !1;
-  this.selectionBorder.init(this.graph.getView().getOverlayPane());
-  this.graph.isCellMovable(this.state.cell) && (this.selectionBorder.node.style.cursor = mxConstants.CURSOR_MOVABLE_VERTEX);
-  mxEvent.redirectMouseEvents(this.selectionBorder.node, this.graph, this.state);
-  if (0 >= mxGraphHandler.prototype.maxCells || this.graph.getSelectionCount() < mxGraphHandler.prototype.maxCells) {
-    var a = this.graph.isCellResizable(this.state.cell);
-    this.sizers = [];
-    if (a || this.graph.isLabelMovable(this.state.cell) && 2 <= this.state.width && 2 <= this.state.height) {
-      var b = 0;
-      a && (this.singleSizer || (this.sizers.push(this.createSizer("nw-resize",
-        b++)), this.sizers.push(this.createSizer("n-resize", b++)), this.sizers.push(this.createSizer("ne-resize", b++)), this.sizers.push(this.createSizer("w-resize", b++)), this.sizers.push(
-        this.createSizer("e-resize", b++)), this.sizers.push(this.createSizer("sw-resize", b++)), this.sizers.push(this.createSizer("s-resize", b++))), this.sizers.push(this.createSizer(
-        "se-resize", b++)));
-      a = this.graph.model.getGeometry(this.state.cell);
-      null != a && (!a.relative && !this.graph.isSwimlane(this.state.cell) && this.graph.isLabelMovable(this.state.cell)) &&
-        (this.labelShape = this.createSizer(mxConstants.CURSOR_LABEL_HANDLE, mxEvent.LABEL_HANDLE, mxConstants.LABEL_HANDLE_SIZE, mxConstants.LABEL_HANDLE_FILLCOLOR), this.sizers.push(this.labelShape))
-    } else this.graph.isCellMovable(this.state.cell) && (!this.graph.isCellResizable(this.state.cell) && 2 > this.state.width && 2 > this.state.height) && (this.labelShape = this.createSizer(
-      mxConstants.CURSOR_MOVABLE_VERTEX, null, null, mxConstants.LABEL_HANDLE_FILLCOLOR), this.sizers.push(this.labelShape))
-  }
-  if (this.rotationEnabled && (0 >=
-      mxGraphHandler.prototype.maxCells || this.graph.getSelectionCount() < mxGraphHandler.prototype.maxCells)) this.rotationShape = this.createSizer("pointer", mxEvent.ROTATION_HANDLE, mxConstants
-    .HANDLE_SIZE + 3, mxConstants.HANDLE_FILLCOLOR), this.sizers.push(this.rotationShape);
-  this.redraw()
-};
-mxVertexHandler.prototype.getSelectionBounds = function(a) {
-  return new mxRectangle(Math.round(a.x), Math.round(a.y), Math.round(a.width), Math.round(a.height))
-};
-mxVertexHandler.prototype.createSelectionShape = function(a) {
-  a = new mxRectangleShape(a, null, this.getSelectionColor());
-  a.strokewidth = this.getSelectionStrokeWidth();
-  a.isDashed = this.isSelectionDashed();
-  return a
-};
-mxVertexHandler.prototype.getSelectionColor = function() {
-  return mxConstants.VERTEX_SELECTION_COLOR
-};
-mxVertexHandler.prototype.getSelectionStrokeWidth = function() {
-  return mxConstants.VERTEX_SELECTION_STROKEWIDTH
-};
-mxVertexHandler.prototype.isSelectionDashed = function() {
-  return mxConstants.VERTEX_SELECTION_DASHED
-};
-mxVertexHandler.prototype.createSizer = function(a, b, c, d) {
-  c = c || mxConstants.HANDLE_SIZE;
-  c = new mxRectangle(0, 0, c, c);
-  d = this.createSizerShape(c, b, d);
-  d.isHtmlAllowed() && null != this.state.text && this.state.text.node.parentNode == this.graph.container ? (d.bounds.height -= 1, d.bounds.width -= 1, d.dialect = mxConstants.DIALECT_STRICTHTML, d
-    .init(this.graph.container)) : (d.dialect = this.graph.dialect != mxConstants.DIALECT_SVG ? mxConstants.DIALECT_MIXEDHTML : mxConstants.DIALECT_SVG, d.init(this.graph.getView().getOverlayPane()));
-  mxEvent.redirectMouseEvents(d.node, this.graph, this.state);
-  this.graph.isEnabled() && (d.node.style.cursor = a);
-  this.isSizerVisible(b) || (d.node.style.visibility = "hidden");
-  return d
-};
-mxVertexHandler.prototype.isSizerVisible = function(a) {
-  return !0
-};
-mxVertexHandler.prototype.createSizerShape = function(a, b, c) {
-  return null != this.handleImage ? (a.width = this.handleImage.width, a.height = this.handleImage.height, new mxImageShape(a, this.handleImage.src)) : b == mxEvent.ROTATION_HANDLE ? new mxEllipse(
-    a, c || mxConstants.HANDLE_FILLCOLOR, mxConstants.HANDLE_STROKECOLOR) : new mxRectangleShape(a, c || mxConstants.HANDLE_FILLCOLOR, mxConstants.HANDLE_STROKECOLOR)
-};
-mxVertexHandler.prototype.moveSizerTo = function(a, b, c) {
-  null != a && (a.bounds.x = Math.round(b - a.bounds.width / 2), a.bounds.y = Math.round(c - a.bounds.height / 2), a.redraw())
-};
-mxVertexHandler.prototype.getHandleForEvent = function(a) {
-  if (a.isSource(this.rotationShape)) return mxEvent.ROTATION_HANDLE;
-  if (a.isSource(this.labelShape)) return mxEvent.LABEL_HANDLE;
-  if (null != this.sizers)
-    for (var b = this.tolerance, b = this.allowHandleBoundsCheck && (mxClient.IS_IE || 0 < b) ? new mxRectangle(a.getGraphX() - b, a.getGraphY() - b, 2 * b, 2 * b) : null, c = 0; c < this.sizers.length; c++)
-      if (a.isSource(this.sizers[c]) || null != b && mxUtils.intersects(this.sizers[c].bounds, b)) return c;
-  return null
-};
-mxVertexHandler.prototype.mouseDown = function(a, b) {
-  if (!b.isConsumed() && this.graph.isEnabled() && !this.graph.isForceMarqueeEvent(b.getEvent()) && (0 < this.tolerance || b.getState() == this.state)) {
-    var c = this.getHandleForEvent(b);
-    null != c && (this.start(b.getX(), b.getY(), c), b.consume())
-  }
-};
-mxVertexHandler.prototype.start = function(a, b, c) {
-  a = mxUtils.convertPoint(this.graph.container, a, b);
-  this.startX = a.x;
-  this.startY = a.y;
-  this.index = c;
-  this.selectionBorder.node.style.display = c == mxEvent.ROTATION_HANDLE ? "inline" : "none";
-  this.preview = this.createSelectionShape(this.bounds);
-  !(mxClient.IS_SVG && 0 != Number(this.state.style[mxConstants.STYLE_ROTATION] || "0")) && null != this.state.text && this.state.text.node.parentNode == this.graph.container ? (this.preview.dialect =
-      mxConstants.DIALECT_STRICTHTML, this.preview.init(this.graph.container)) :
-    (this.preview.dialect = this.graph.dialect != mxConstants.DIALECT_SVG ? mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG, this.preview.init(this.graph.view.getOverlayPane()))
-};
-mxVertexHandler.prototype.mouseMove = function(a, b) {
-  if (!b.isConsumed() && null != this.index) {
-    var c = new mxPoint(b.getGraphX(), b.getGraphY()),
-      d = this.graph.isGridEnabledEvent(b.getEvent()),
-      e = this.graph.getView().scale;
-    if (this.index == mxEvent.LABEL_HANDLE) d && (c.x = this.graph.snap(c.x / e) * e, c.y = this.graph.snap(c.y / e) * e), this.moveSizerTo(this.sizers[this.sizers.length - 1], c.x, c.y);
-    else if (this.index == mxEvent.ROTATION_HANDLE) {
-      var f = this.state.x + this.state.width / 2 - c.x,
-        g = this.state.y + this.state.height / 2 - c.y;
-      this.currentAlpha =
-        0 != f ? 180 * Math.atan(g / f) / Math.PI + 90 : 0 > g ? 180 : 0;
-      0 < f && (this.currentAlpha -= 180);
-      this.rotationRaster && (f = c.x - this.state.getCenterX(), g = c.y - this.state.getCenterY(), f = Math.abs(Math.sqrt(f * f + g * g) - this.state.height / 2 - 20), f = Math.max(1, 5 * Math.min(
-        3, Math.max(0, Math.round(80 / Math.abs(f))))), this.currentAlpha = Math.round(this.currentAlpha / f) * f);
-      this.selectionBorder.rotation = this.currentAlpha;
-      this.selectionBorder.redraw()
-    } else {
-      var h = mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION] || "0"),
-        k = Math.cos(-h),
-        l = Math.sin(-h),
-        m = new mxPoint(this.state.getCenterX(), this.state.getCenterY()),
-        f = c.x - this.startX,
-        g = c.y - this.startY,
-        c = this.graph.view.translate,
-        n = l * f + k * g,
-        f = k * f - l * g;
-      this.bounds = this.union(this.selectionBounds, f, n, this.index, d, e, c);
-      k = Math.cos(h);
-      l = Math.sin(h);
-      g = new mxPoint(this.bounds.getCenterX(), this.bounds.getCenterY());
-      f = g.x - m.x;
-      g = g.y - m.y;
-      m = l * f + k * g - g;
-      this.bounds.x += k * f - l * g - f;
-      this.bounds.y += m;
-      this.drawPreview()
-    }
-    b.consume()
-  } else null != this.getHandleForEvent(b) && b.consume(!1)
-};
-mxVertexHandler.prototype.mouseUp = function(a, b) {
-  if (!b.isConsumed() && null != this.index && null != this.state) {
-    var c = new mxPoint(b.getGraphX(), b.getGraphY());
-    this.graph.getModel().beginUpdate();
-    try {
-      if (this.index == mxEvent.ROTATION_HANDLE) null != this.currentAlpha && this.rotateCell(this.state.cell, this.currentAlpha - (this.state.style[mxConstants.STYLE_ROTATION] || 0));
-      else {
-        var d = this.graph.isGridEnabledEvent(b.getEvent()),
-          e = mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION] || "0"),
-          f = Math.cos(-e),
-          g = Math.sin(-e),
-          h = c.x - this.startX,
-          k = c.y - this.startY,
-          c = g * h + f * k,
-          h = f * h - g * k,
-          k = c,
-          l = this.graph.view.scale;
-        this.resizeCell(this.state.cell, h / l, k / l, this.index, d)
-      }
-    } finally {
-      this.graph.getModel().endUpdate()
-    }
-    this.reset();
-    b.consume()
-  }
-};
-mxVertexHandler.prototype.rotateCell = function(a, b) {
-  var c = this.graph.getModel();
-  if (c.isVertex(a)) {
-    var d = a == this.state ? this.state : this.graph.view.getState(a);
-    null != d && this.graph.setCellStyles(mxConstants.STYLE_ROTATION, (d.style[mxConstants.STYLE_ROTATION] || 0) + b, [a]);
-    if (this.state.cell != a && (d = this.graph.getCellGeometry(a), null != d && !d.relative))
-      if (0 != b) {
-        var e = this.graph.getModel().getParent(a),
-          f = this.graph.getCellGeometry(e);
-        if (!d.relative && null != f) {
-          var g = mxUtils.toRadians(b),
-            e = Math.cos(g),
-            g = Math.sin(g),
-            h = new mxPoint(d.getCenterX(), d.getCenterY()),
-            f = new mxPoint(f.width / 2, f.height / 2),
-            e = mxUtils.getRotatedPoint(h, e, g, f),
-            d = d.clone();
-          d.x = e.x - d.width / 2;
-          d.y = e.y - d.height / 2;
-          c.setGeometry(a, d)
-        }
-      } else d = d.clone(), d.x += dx, d.y += dy, c.setGeometry(a, d);
-    d = c.getChildCount(a);
-    for (e = 0; e < d; e++) this.rotateCell(c.getChildAt(a, e), b)
-  }
-};
-mxVertexHandler.prototype.reset = function() {
-  this.index = this.currentAlpha = null;
-  null != this.preview && (this.preview.destroy(), this.preview = null);
-  null != this.selectionBorder && (this.selectionBorder.node.style.display = "inline", this.selectionBounds = this.getSelectionBounds(this.state), this.bounds = new mxRectangle(this.selectionBounds
-    .x, this.selectionBounds.y, this.selectionBounds.width, this.selectionBounds.height), this.drawPreview())
-};
-mxVertexHandler.prototype.resizeCell = function(a, b, c, d, e) {
-  var f = this.graph.model.getGeometry(a);
-  if (null != f)
-    if (d == mxEvent.LABEL_HANDLE) d = this.graph.view.scale, b = (this.labelShape.bounds.getCenterX() - this.startX) / d, c = (this.labelShape.bounds.getCenterY() - this.startY) / d, f = f.clone(),
-      null == f.offset ? f.offset = new mxPoint(b, c) : (f.offset.x += b, f.offset.y += c), this.graph.model.setGeometry(a, f);
-    else {
-      d = this.union(f, b, c, d, e, 1, new mxPoint(0, 0));
-      var g = mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION] || "0");
-      if (0 != g) {
-        b = d.getCenterX() - f.getCenterX();
-        c = d.getCenterY() - f.getCenterY();
-        e = Math.cos(g);
-        var h = Math.sin(g),
-          g = e * b - h * c - b;
-        b = h * b + e * c - c;
-        c = d.x - f.x;
-        var k = d.y - f.y,
-          l = e * c - h * k;
-        e = h * c + e * k;
-        d.x += g;
-        d.y += b;
-        if (!this.graph.isCellCollapsed(a) && (0 != g || 0 != b)) c = f.x - d.x + l, k = f.y - d.y + e, this.moveChildren(a, c, k)
-      }
-      this.graph.resizeCell(a, d)
-    }
-};
-mxVertexHandler.prototype.moveChildren = function(a, b, c) {
-  for (var d = this.graph.getModel(), e = d.getChildCount(a), f = 0; f < e; f++) {
-    var g = d.getChildAt(a, f);
-    if (d.isVertex(g)) {
-      var h = this.graph.getCellGeometry(g);
-      null != h && !h.relative && (h = h.clone(), h.x += b, h.y += c, d.setGeometry(g, h))
-    }
-  }
-};
-mxVertexHandler.prototype.union = function(a, b, c, d, e, f, g) {
-  if (this.singleSizer) {
-    g = a.x + a.width + b;
-    var h = a.y + a.height + c;
-    e && (g = this.graph.snap(g / f) * f, h = this.graph.snap(h / f) * f);
-    f = new mxRectangle(a.x, a.y, 0, 0);
-    f.add(new mxRectangle(g, h, 0, 0));
-    return f
-  }
-  var h = a.x - g.x * f,
-    k = h + a.width,
-    l = a.y - g.y * f;
-  a = l + a.height;
-  4 < d ? (a += c, e && (a = this.graph.snap(a / f) * f)) : 3 > d && (l += c, e && (l = this.graph.snap(l / f) * f));
-  if (0 == d || 3 == d || 5 == d) h += b, e && (h = this.graph.snap(h / f) * f);
-  else if (2 == d || 4 == d || 7 == d) k += b, e && (k = this.graph.snap(k / f) * f);
-  e = k - h;
-  a -=
-    l;
-  0 > e && (h += e, e = Math.abs(e));
-  0 > a && (l += a, a = Math.abs(a));
-  return new mxRectangle(h + g.x * f, l + g.y * f, e, a)
-};
-mxVertexHandler.prototype.redraw = function() {
-  this.selectionBounds = this.getSelectionBounds(this.state);
-  this.bounds = new mxRectangle(this.state.x, this.state.y, this.state.width, this.state.height);
-  var a = this.state;
-  if (null != this.sizers) {
-    var b = a.x + a.width,
-      c = a.y + a.height;
-    if (this.singleSizer) this.moveSizerTo(this.sizers[0], b, c);
-    else {
-      var d = a.x + a.width / 2,
-        e = a.y + a.height / 2;
-      if (1 < this.sizers.length) {
-        var f = mxUtils.toRadians(a.style[mxConstants.STYLE_ROTATION] || "0"),
-          g = Math.cos(f),
-          f = Math.sin(f),
-          h = new mxPoint(a.getCenterX(),
-            a.getCenterY()),
-          k = mxUtils.getRotatedPoint(new mxPoint(a.x, a.y), g, f, h);
-        this.moveSizerTo(this.sizers[0], k.x, k.y);
-        k.x = d;
-        k.y = a.y;
-        k = mxUtils.getRotatedPoint(k, g, f, h);
-        this.moveSizerTo(this.sizers[1], k.x, k.y);
-        k.x = b;
-        k.y = a.y;
-        k = mxUtils.getRotatedPoint(k, g, f, h);
-        this.moveSizerTo(this.sizers[2], k.x, k.y);
-        k.x = a.x;
-        k.y = e;
-        k = mxUtils.getRotatedPoint(k, g, f, h);
-        this.moveSizerTo(this.sizers[3], k.x, k.y);
-        k.x = b;
-        k.y = e;
-        k = mxUtils.getRotatedPoint(k, g, f, h);
-        this.moveSizerTo(this.sizers[4], k.x, k.y);
-        k.x = a.x;
-        k.y = c;
-        k = mxUtils.getRotatedPoint(k,
-          g, f, h);
-        this.moveSizerTo(this.sizers[5], k.x, k.y);
-        k.x = d;
-        k.y = c;
-        k = mxUtils.getRotatedPoint(k, g, f, h);
-        this.moveSizerTo(this.sizers[6], k.x, k.y);
-        k.x = b;
-        k.y = c;
-        k = mxUtils.getRotatedPoint(k, g, f, h);
-        this.moveSizerTo(this.sizers[7], k.x, k.y);
-        this.moveSizerTo(this.sizers[8], d + a.absoluteOffset.x, e + a.absoluteOffset.y)
-      } else 2 <= this.state.width && 2 <= this.state.height ? this.moveSizerTo(this.sizers[0], d + a.absoluteOffset.x, e + a.absoluteOffset.y) : this.moveSizerTo(this.sizers[0], a.x, a.y)
-    }
-  }
-  null != this.rotationShape && (f = mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION] ||
-      "0"), g = Math.cos(f), f = Math.sin(f), h = new mxPoint(this.state.getCenterX(), this.state.getCenterY()), k = mxUtils.getRotatedPoint(new mxPoint(a.x + a.width / 2, a.y - 16), g, f, h),
-    this.moveSizerTo(this.rotationShape, k.x, k.y));
-  this.selectionBorder.rotation = Number(this.state.style[mxConstants.STYLE_ROTATION] || "0");
-  this.drawPreview()
-};
-mxVertexHandler.prototype.drawPreview = function() {
-  null != this.preview && (this.preview.bounds = this.bounds, this.preview.node.parentNode == this.graph.container && (this.preview.bounds.width = Math.max(0, this.preview.bounds.width - 1), this.preview
-    .bounds.height = Math.max(0, this.preview.bounds.height - 1)), this.preview.rotation = Number(this.state.style[mxConstants.STYLE_ROTATION] || "0"), this.preview.redraw());
-  this.selectionBorder.bounds = this.bounds;
-  this.selectionBorder.redraw()
-};
-mxVertexHandler.prototype.destroy = function() {
-  null != this.preview && (this.preview.destroy(), this.preview = null);
-  this.selectionBorder.destroy();
-  this.labelShape = this.selectionBorder = null;
-  if (null != this.sizers)
-    for (var a = 0; a < this.sizers.length; a++) this.sizers[a].destroy(), this.sizers[a] = null
-};
-
-function mxEdgeHandler(a) {
-  null != a && (this.state = a, this.init())
-}
-mxEdgeHandler.prototype.graph = null;
-mxEdgeHandler.prototype.state = null;
-mxEdgeHandler.prototype.marker = null;
-mxEdgeHandler.prototype.constraintHandler = null;
-mxEdgeHandler.prototype.error = null;
-mxEdgeHandler.prototype.shape = null;
-mxEdgeHandler.prototype.bends = null;
-mxEdgeHandler.prototype.labelShape = null;
-mxEdgeHandler.prototype.cloneEnabled = !0;
-mxEdgeHandler.prototype.addEnabled = !1;
-mxEdgeHandler.prototype.removeEnabled = !1;
-mxEdgeHandler.prototype.preferHtml = !1;
-mxEdgeHandler.prototype.allowHandleBoundsCheck = !0;
-mxEdgeHandler.prototype.snapToTerminals = !1;
-mxEdgeHandler.prototype.handleImage = null;
-mxEdgeHandler.prototype.tolerance = 0;
-mxEdgeHandler.prototype.init = function() {
-  this.graph = this.state.view.graph;
-  this.marker = this.createMarker();
-  this.constraintHandler = new mxConstraintHandler(this.graph);
-  this.points = [];
-  this.abspoints = this.getSelectionPoints(this.state);
-  this.shape = this.createSelectionShape(this.abspoints);
-  this.shape.dialect = this.graph.dialect != mxConstants.DIALECT_SVG ? mxConstants.DIALECT_MIXEDHTML : mxConstants.DIALECT_SVG;
-  this.shape.init(this.graph.getView().getOverlayPane());
-  this.shape.svgStrokeTolerance = 0;
-  this.shape.node.style.cursor =
-    mxConstants.CURSOR_MOVABLE_EDGE;
-  mxEvent.addListener(this.shape.node, "dblclick", mxUtils.bind(this, function(a) {
-    this.graph.dblClick(a, this.state.cell)
-  }));
-  mxEvent.addGestureListeners(this.shape.node, mxUtils.bind(this, function(a) {
-    this.addEnabled && this.isAddPointEvent(a) ? this.addPoint(this.state, a) : this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(a, this.state))
-  }), mxUtils.bind(this, function(a) {
-    var c = this.state.cell;
-    if (null != this.index) {
-      var d = mxUtils.convertPoint(this.graph.container, mxEvent.getClientX(a),
-          mxEvent.getClientY(a)),
-        c = this.graph.getCellAt(d.x, d.y);
-      this.graph.isSwimlane(c) && this.graph.hitsSwimlaneContent(c, d.x, d.y) && (c = null)
-    }
-    this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE, new mxMouseEvent(a, this.graph.getView().getState(c)))
-  }), mxUtils.bind(this, function(a) {
-    this.graph.fireMouseEvent(mxEvent.MOUSE_UP, new mxMouseEvent(a, this.state))
-  }));
-  this.preferHtml = null != this.state.text && this.state.text.node.parentNode == this.graph.container;
-  if (!this.preferHtml) {
-    var a = this.state.getVisibleTerminalState(!0);
-    null != a && (this.preferHtml = null != a.text && a.text.node.parentNode == this.graph.container);
-    this.preferHtml || (a = this.state.getVisibleTerminalState(!1), null != a && (this.preferHtml = null != a.text && a.text.node.parentNode == this.graph.container))
-  }
-  if (this.graph.getSelectionCount() < mxGraphHandler.prototype.maxCells || 0 >= mxGraphHandler.prototype.maxCells) this.bends = this.createBends();
-  this.label = new mxPoint(this.state.absoluteOffset.x, this.state.absoluteOffset.y);
-  this.labelShape = new mxRectangleShape(new mxRectangle,
-    mxConstants.LABEL_HANDLE_FILLCOLOR, mxConstants.HANDLE_STROKECOLOR);
-  this.labelShape.pointerEvents = !1;
-  this.initBend(this.labelShape);
-  this.labelShape.node.style.cursor = mxConstants.CURSOR_LABEL_HANDLE;
-  mxEvent.redirectMouseEvents(this.labelShape.node, this.graph, this.state);
-  this.redraw()
-};
-mxEdgeHandler.prototype.isAddPointEvent = function(a) {
-  return mxEvent.isShiftDown(a)
-};
-mxEdgeHandler.prototype.isRemovePointEvent = function(a) {
-  return mxEvent.isShiftDown(a)
-};
-mxEdgeHandler.prototype.getSelectionPoints = function(a) {
-  return a.absolutePoints
-};
-mxEdgeHandler.prototype.createSelectionShape = function(a) {
-  a = new mxPolyline(a, this.getSelectionColor());
-  a.strokewidth = this.getSelectionStrokeWidth();
-  a.isDashed = this.isSelectionDashed();
-  return a
-};
-mxEdgeHandler.prototype.getSelectionColor = function() {
-  return mxConstants.EDGE_SELECTION_COLOR
-};
-mxEdgeHandler.prototype.getSelectionStrokeWidth = function() {
-  return mxConstants.EDGE_SELECTION_STROKEWIDTH
-};
-mxEdgeHandler.prototype.isSelectionDashed = function() {
-  return mxConstants.EDGE_SELECTION_DASHED
-};
-mxEdgeHandler.prototype.isConnectableCell = function(a) {
-  return !0
-};
-mxEdgeHandler.prototype.createMarker = function() {
-  var a = new mxCellMarker(this.graph),
-    b = this;
-  a.getCell = function(a) {
-    var d = mxCellMarker.prototype.getCell.apply(this, arguments);
-    if (!b.isConnectableCell(d)) return null;
-    var e = b.graph.getModel();
-    if (d == b.state.cell || null != d && !b.graph.connectableEdges && e.isEdge(d)) d = null;
-    return d
-  };
-  a.isValidState = function(a) {
-    var d = b.graph.getModel(),
-      d = b.graph.view.getTerminalPort(a, b.graph.view.getState(d.getTerminal(b.state.cell, !b.isSource)), !b.isSource),
-      d = null != d ? d.cell : null;
-    b.error = b.validateConnection(b.isSource ? a.cell : d, b.isSource ? d : a.cell);
-    return null == b.error
-  };
-  return a
-};
-mxEdgeHandler.prototype.validateConnection = function(a, b) {
-  return this.graph.getEdgeValidationError(this.state.cell, a, b)
-};
-mxEdgeHandler.prototype.createBends = function() {
-  for (var a = this.state.cell, b = [], c = 0; c < this.abspoints.length; c++)
-    if (this.isHandleVisible(c)) {
-      var d = c == this.abspoints.length - 1;
-      if ((d = 0 == c || d) || this.graph.isCellBendable(a)) {
-        var e = this.createHandleShape(c);
-        this.initBend(e);
-        mxClient.IS_TOUCH && e.node.setAttribute("pointer-events", "none");
-        if (this.isHandleEnabled(c))
-          if (mxClient.IS_TOUCH) {
-            var f = mxUtils.bind(this, function(a) {
-              a = mxUtils.convertPoint(this.graph.container, mxEvent.getClientX(a), mxEvent.getClientY(a));
-              return this.graph.view.getState(this.graph.getCellAt(a.x, a.y))
-            });
-            mxEvent.redirectMouseEvents(e.node, this.graph, f)
-          } else e.node.style.cursor = mxConstants.CURSOR_BEND_HANDLE, mxEvent.redirectMouseEvents(e.node, this.graph, this.state);
-        b.push(e);
-        d || (this.points.push(new mxPoint(0, 0)), e.node.style.visibility = "hidden")
-      }
-    }
-  return b
-};
-mxEdgeHandler.prototype.isHandleEnabled = function(a) {
-  return !0
-};
-mxEdgeHandler.prototype.isHandleVisible = function(a) {
-  return !0
-};
-mxEdgeHandler.prototype.createHandleShape = function(a) {
-  if (null != this.handleImage) return new mxImageShape(new mxRectangle(0, 0, this.handleImage.width, this.handleImage.height), this.handleImage.src);
-  a = mxConstants.HANDLE_SIZE;
-  this.preferHtml && (a -= 1);
-  return new mxRectangleShape(new mxRectangle(0, 0, a, a), mxConstants.HANDLE_FILLCOLOR, mxConstants.HANDLE_STROKECOLOR)
-};
-mxEdgeHandler.prototype.initBend = function(a) {
-  this.preferHtml ? (a.dialect = mxConstants.DIALECT_STRICTHTML, a.init(this.graph.container)) : (a.dialect = this.graph.dialect != mxConstants.DIALECT_SVG ? mxConstants.DIALECT_MIXEDHTML :
-    mxConstants.DIALECT_SVG, a.init(this.graph.getView().getOverlayPane()))
-};
-mxEdgeHandler.prototype.getHandleForEvent = function(a) {
-  if (null != this.bends)
-    for (var b = this.tolerance, b = this.allowHandleBoundsCheck && (mxClient.IS_IE || 0 < b) ? new mxRectangle(a.getGraphX() - b, a.getGraphY() - b, 2 * b, 2 * b) : null, c = 0; c < this.bends.length; c++)
-      if ((a.isSource(this.bends[c]) || null != b && mxUtils.intersects(this.bends[c].bounds, b)) && "hidden" != this.bends[c].node.style.visibility) return c;
-  if (a.isSource(this.labelShape) && "hidden" != this.labelShape.node.style.visibility || a.isSource(this.state.text))
-    if (!mxClient.IS_SF &&
-      !mxClient.IS_GC || "SELECT" != a.getSource().nodeName) return mxEvent.LABEL_HANDLE;
-  return null
-};
-mxEdgeHandler.prototype.mouseDown = function(a, b) {
-  var c = null,
-    c = this.getHandleForEvent(b);
-  null != c && (!b.isConsumed() && this.graph.isEnabled() && !this.graph.isForceMarqueeEvent(b.getEvent())) && (this.removeEnabled && this.isRemovePointEvent(b.getEvent()) ? this.removePoint(this.state,
-    c) : (c != mxEvent.LABEL_HANDLE || this.graph.isLabelMovable(b.getCell())) && this.start(b.getX(), b.getY(), c), b.consume())
-};
-mxEdgeHandler.prototype.start = function(a, b, c) {
-  this.startX = a;
-  this.startY = b;
-  this.isSource = null == this.bends ? !1 : 0 == c;
-  this.isTarget = null == this.bends ? !1 : c == this.bends.length - 1;
-  this.isLabel = c == mxEvent.LABEL_HANDLE;
-  if (this.isSource || this.isTarget) {
-    if (a = this.state.cell, b = this.graph.model.getTerminal(a, this.isSource), null == b && this.graph.isTerminalPointMovable(a, this.isSource) || null != b && this.graph.isCellDisconnectable(a,
-        b, this.isSource)) this.index = c
-  } else this.index = c
-};
-mxEdgeHandler.prototype.clonePreviewState = function(a, b) {
-  return this.state.clone()
-};
-mxEdgeHandler.prototype.getSnapToTerminalTolerance = function() {
-  return this.graph.gridSize * this.graph.view.scale / 2
-};
-mxEdgeHandler.prototype.getPointForEvent = function(a) {
-  var b = new mxPoint(a.getGraphX(), a.getGraphY()),
-    c = this.getSnapToTerminalTolerance(),
-    d = this.graph.getView(),
-    e = !1,
-    f = !1;
-  if (this.snapToTerminals && 0 < c) {
-    var g = function(a) {
-        if (null != a) {
-          var d = a.x;
-          Math.abs(b.x - d) < c && (b.x = d, e = !0);
-          a = a.y;
-          Math.abs(b.y - a) < c && (b.y = a, f = !0)
-        }
-      },
-      h = function(a) {
-        null != a && g.call(this, new mxPoint(d.getRoutingCenterX(a), d.getRoutingCenterY(a)))
-      };
-    h.call(this, this.state.getVisibleTerminalState(!0));
-    h.call(this, this.state.getVisibleTerminalState(!1));
-    if (null != this.abspoints)
-      for (h = 0; h < this.abspoints; h++) h != this.index && g.call(this, this.abspoints[h])
-  }
-  this.graph.isGridEnabledEvent(a.getEvent()) && (a = d.scale, h = d.translate, e || (b.x = (this.graph.snap(b.x / a - h.x) + h.x) * a), f || (b.y = (this.graph.snap(b.y / a - h.y) + h.y) * a));
-  return b
-};
-mxEdgeHandler.prototype.getPreviewTerminalState = function(a) {
-  this.constraintHandler.update(a, this.isSource);
-  this.marker.process(a);
-  a = this.marker.getValidState();
-  var b = null;
-  null != this.constraintHandler.currentFocus && null != this.constraintHandler.currentConstraint && this.marker.reset();
-  null != a ? b = a : null != this.constraintHandler.currentConstraint && null != this.constraintHandler.currentFocus && (b = this.constraintHandler.currentFocus);
-  return b
-};
-mxEdgeHandler.prototype.getPreviewPoints = function(a) {
-  var b = this.graph.getCellGeometry(this.state.cell),
-    b = null != b.points ? b.points.slice() : null;
-  !this.isSource && !this.isTarget ? (this.convertPoint(a, !1), null == b ? b = [a] : b[this.index - 1] = a) : this.graph.resetEdgesOnConnect && (b = null);
-  return b
-};
-mxEdgeHandler.prototype.updatePreviewState = function(a, b, c) {
-  var d = this.isSource ? c : this.state.getVisibleTerminalState(!0),
-    e = this.isTarget ? c : this.state.getVisibleTerminalState(!1),
-    f = this.graph.getConnectionConstraint(a, d, !0),
-    g = this.graph.getConnectionConstraint(a, e, !1),
-    h = this.constraintHandler.currentConstraint;
-  null == h && (h = new mxConnectionConstraint);
-  this.isSource ? f = h : this.isTarget && (g = h);
-  (!this.isSource || null != d) && a.view.updateFixedTerminalPoint(a, d, !0, f);
-  (!this.isTarget || null != e) && a.view.updateFixedTerminalPoint(a,
-    e, !1, g);
-  if ((this.isSource || this.isTarget) && null == c) a.setAbsoluteTerminalPoint(b, this.isSource), null == this.marker.getMarkedState() && (this.error = this.graph.allowDanglingEdges ? null : "");
-  a.view.updatePoints(a, this.points, d, e);
-  a.view.updateFloatingTerminalPoints(a, d, e)
-};
-mxEdgeHandler.prototype.mouseMove = function(a, b) {
-  if (null != this.index && null != this.marker) {
-    var c = this.getPointForEvent(b);
-    if (this.isLabel) this.label.x = c.x, this.label.y = c.y;
-    else {
-      this.points = this.getPreviewPoints(c);
-      var d = this.isSource || this.isTarget ? this.getPreviewTerminalState(b) : null,
-        e = this.clonePreviewState(c, null != d ? d.cell : null);
-      this.updatePreviewState(e, c, d);
-      this.setPreviewColor(null == this.error ? this.marker.validColor : this.marker.invalidColor);
-      this.abspoints = e.absolutePoints;
-      this.active = !0
-    }
-    this.drawPreview();
-    mxEvent.consume(b.getEvent());
-    b.consume()
-  } else mxClient.IS_IE && null != this.getHandleForEvent(b) && b.consume(!1)
-};
-mxEdgeHandler.prototype.mouseUp = function(a, b) {
-  if (null != this.index && null != this.marker) {
-    var c = this.state.cell;
-    if (b.getX() != this.startX || b.getY() != this.startY)
-      if (null != this.error) 0 < this.error.length && this.graph.validationAlert(this.error);
-      else if (this.isLabel) this.moveLabel(this.state, this.label.x, this.label.y);
-    else if (this.isSource || this.isTarget) {
-      var d = null;
-      null != this.constraintHandler.currentConstraint && null != this.constraintHandler.currentFocus && (d = this.constraintHandler.currentFocus.cell);
-      null ==
-        d && this.marker.hasValidState() && (d = this.marker.validState.cell);
-      if (null != d) c = this.connect(c, d, this.isSource, this.graph.isCloneEvent(b.getEvent()) && this.cloneEnabled && this.graph.isCellsCloneable(), b);
-      else if (this.graph.isAllowDanglingEdges()) {
-        d = this.abspoints[this.isSource ? 0 : this.abspoints.length - 1];
-        d.x = d.x / this.graph.view.scale - this.graph.view.translate.x;
-        d.y = d.y / this.graph.view.scale - this.graph.view.translate.y;
-        var e = this.graph.getView().getState(this.graph.getModel().getParent(c));
-        null != e && (d.x -=
-          e.origin.x, d.y -= e.origin.y);
-        d.x -= this.graph.panDx / this.graph.view.scale;
-        d.y -= this.graph.panDy / this.graph.view.scale;
-        this.changeTerminalPoint(c, d, this.isSource)
-      }
-    } else this.active ? this.changePoints(c, this.points) : (this.graph.getView().invalidate(this.state.cell), this.graph.getView().revalidate(this.state.cell));
-    null != this.marker && (this.reset(), c != this.state.cell && this.graph.setSelectionCell(c));
-    b.consume()
-  }
-};
-mxEdgeHandler.prototype.reset = function() {
-  this.points = this.label = this.index = this.error = null;
-  this.isTarget = this.isSource = this.isLabel = this.active = !1;
-  this.marker.reset();
-  this.constraintHandler.reset();
-  this.setPreviewColor(mxConstants.EDGE_SELECTION_COLOR);
-  this.redraw()
-};
-mxEdgeHandler.prototype.setPreviewColor = function(a) {
-  null != this.shape && (this.shape.stroke = a)
-};
-mxEdgeHandler.prototype.convertPoint = function(a, b) {
-  var c = this.graph.getView().getScale(),
-    d = this.graph.getView().getTranslate();
-  b && (a.x = this.graph.snap(a.x), a.y = this.graph.snap(a.y));
-  a.x = Math.round(a.x / c - d.x);
-  a.y = Math.round(a.y / c - d.y);
-  c = this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell));
-  null != c && (a.x -= c.origin.x, a.y -= c.origin.y);
-  return a
-};
-mxEdgeHandler.prototype.moveLabel = function(a, b, c) {
-  var d = this.graph.getModel(),
-    e = d.getGeometry(a.cell);
-  if (null != e) {
-    var e = e.clone(),
-      f = this.graph.getView().getRelativePoint(a, b, c);
-    e.x = f.x;
-    e.y = f.y;
-    var g = this.graph.getView().scale;
-    e.offset = new mxPoint(0, 0);
-    f = this.graph.view.getPoint(a, e);
-    e.offset = new mxPoint((b - f.x) / g, (c - f.y) / g);
-    d.setGeometry(a.cell, e)
-  }
-};
-mxEdgeHandler.prototype.connect = function(a, b, c, d, e) {
-  e = this.graph.getModel();
-  var f = e.getParent(a);
-  e.beginUpdate();
-  try {
-    if (d) {
-      var g = a.clone();
-      e.add(f, g, e.getChildCount(f));
-      var h = e.getTerminal(a, !c);
-      this.graph.connectCell(g, h, !c);
-      a = g
-    }
-    var k = this.constraintHandler.currentConstraint;
-    null == k && (k = new mxConnectionConstraint);
-    this.graph.connectCell(a, b, c, k)
-  } finally {
-    e.endUpdate()
-  }
-  return a
-};
-mxEdgeHandler.prototype.changeTerminalPoint = function(a, b, c) {
-  var d = this.graph.getModel(),
-    e = d.getGeometry(a);
-  if (null != e) {
-    d.beginUpdate();
-    try {
-      e = e.clone(), e.setTerminalPoint(b, c), d.setGeometry(a, e), this.graph.connectCell(a, null, c, new mxConnectionConstraint)
-    } finally {
-      d.endUpdate()
-    }
-  }
-};
-mxEdgeHandler.prototype.changePoints = function(a, b) {
-  var c = this.graph.getModel(),
-    d = c.getGeometry(a);
-  null != d && (d = d.clone(), d.points = b, c.setGeometry(a, d))
-};
-mxEdgeHandler.prototype.addPoint = function(a, b) {
-  var c = mxUtils.convertPoint(this.graph.container, mxEvent.getClientX(b), mxEvent.getClientY(b)),
-    d = this.graph.isGridEnabledEvent(b);
-  this.convertPoint(c, d);
-  this.addPointAt(a, c.x, c.y);
-  mxEvent.consume(b)
-};
-mxEdgeHandler.prototype.addPointAt = function(a, b, c) {
-  var d = this.graph.getCellGeometry(a.cell);
-  b = new mxPoint(b, c);
-  if (null != d) {
-    d = d.clone();
-    c = this.graph.view.translate;
-    var e = this.graph.view.scale;
-    c = mxUtils.findNearestSegment(a, (b.x + c.x) * e, (b.y + c.y) * e);
-    null == d.points ? d.points = [b] : d.points.splice(c, 0, b);
-    this.graph.getModel().setGeometry(a.cell, d);
-    this.destroy();
-    this.init()
-  }
-};
-mxEdgeHandler.prototype.removePoint = function(a, b) {
-  if (0 < b && b < this.abspoints.length - 1) {
-    var c = this.graph.getCellGeometry(this.state.cell);
-    null != c && null != c.points && (c = c.clone(), c.points.splice(b - 1, 1), this.graph.getModel().setGeometry(a.cell, c), this.destroy(), this.init())
-  }
-};
-mxEdgeHandler.prototype.getHandleFillColor = function(a) {
-  a = 0 == a;
-  var b = this.state.cell,
-    c = this.graph.getModel().getTerminal(b, a),
-    d = mxConstants.HANDLE_FILLCOLOR;
-  null != c && !this.graph.isCellDisconnectable(b, c, a) || null == c && !this.graph.isTerminalPointMovable(b, a) ? d = mxConstants.LOCKED_HANDLE_FILLCOLOR : null != c && this.graph.isCellDisconnectable(
-    b, c, a) && (d = mxConstants.CONNECT_HANDLE_FILLCOLOR);
-  return d
-};
-mxEdgeHandler.prototype.redraw = function() {
-  this.abspoints = this.state.absolutePoints.slice();
-  var a = this.state.cell,
-    b = mxConstants.LABEL_HANDLE_SIZE;
-  this.label = new mxPoint(this.state.absoluteOffset.x, this.state.absoluteOffset.y);
-  this.labelShape.bounds = new mxRectangle(Math.round(this.label.x - b / 2), Math.round(this.label.y - b / 2), b, b);
-  this.labelShape.redraw();
-  b = this.graph.getLabel(a);
-  null != b && 0 < b.length && this.graph.isLabelMovable(a) ? this.labelShape.node.style.visibility = "visible" : this.labelShape.node.style.visibility =
-    "hidden";
-  if (null != this.bends && 0 < this.bends.length) {
-    var c = this.abspoints.length - 1,
-      a = this.abspoints[0],
-      d = this.abspoints[0].y,
-      b = this.bends[0].bounds;
-    this.bends[0].bounds = new mxRectangle(Math.round(this.abspoints[0].x - b.width / 2), Math.round(d - b.height / 2), b.width, b.height);
-    this.bends[0].fill = this.getHandleFillColor(0);
-    this.bends[0].redraw();
-    var d = this.abspoints[c],
-      e = this.abspoints[c].x,
-      c = this.abspoints[c].y,
-      f = this.bends.length - 1,
-      b = this.bends[f].bounds;
-    this.bends[f].bounds = new mxRectangle(Math.round(e - b.width /
-      2), Math.round(c - b.height / 2), b.width, b.height);
-    this.bends[f].fill = this.getHandleFillColor(f);
-    this.bends[f].redraw();
-    this.redrawInnerBends(a, d)
-  }
-  this.drawPreview()
-};
-mxEdgeHandler.prototype.redrawInnerBends = function(a, b) {
-  var c = this.graph.getModel().getGeometry(this.state.cell).points;
-  if (null != c) {
-    null == this.points && (this.points = []);
-    for (var d = 1; d < this.bends.length - 1; d++)
-      if (null != this.bends[d])
-        if (null != this.abspoints[d]) {
-          var e = this.abspoints[d].x,
-            f = this.abspoints[d].y,
-            g = this.bends[d].bounds;
-          this.bends[d].node.style.visibility = "visible";
-          this.bends[d].bounds = new mxRectangle(Math.round(e - g.width / 2), Math.round(f - g.height / 2), g.width, g.height);
-          this.bends[d].redraw();
-          this.points[d -
-            1] = c[d - 1]
-        } else this.bends[d].destroy(), this.bends[d] = null
-  }
-};
-mxEdgeHandler.prototype.drawPreview = function() {
-  if (this.isLabel) {
-    var a = mxConstants.LABEL_HANDLE_SIZE,
-      a = new mxRectangle(Math.round(this.label.x - a / 2), Math.round(this.label.y - a / 2), a, a);
-    this.labelShape.bounds = a;
-    this.labelShape.redraw()
-  } else this.shape.points = this.abspoints, this.shape.redraw()
-};
-mxEdgeHandler.prototype.destroy = function() {
-  null != this.marker && (this.marker.destroy(), this.marker = null);
-  null != this.shape && (this.shape.destroy(), this.shape = null);
-  null != this.labelShape && (this.labelShape.destroy(), this.labelShape = null);
-  null != this.constraintHandler && (this.constraintHandler.destroy(), this.constraintHandler = null);
-  if (null != this.bends)
-    for (var a = 0; a < this.bends.length; a++) null != this.bends[a] && (this.bends[a].destroy(), this.bends[a] = null)
-};
-
-function mxElbowEdgeHandler(a) {
-  mxEdgeHandler.call(this, a)
-}
-mxUtils.extend(mxElbowEdgeHandler, mxEdgeHandler);
-mxElbowEdgeHandler.prototype = new mxEdgeHandler;
-mxElbowEdgeHandler.prototype.constructor = mxElbowEdgeHandler;
-mxElbowEdgeHandler.prototype.flipEnabled = !0;
-mxElbowEdgeHandler.prototype.doubleClickOrientationResource = "none" != mxClient.language ? "doubleClickOrientation" : "";
-mxElbowEdgeHandler.prototype.createBends = function() {
-  var a = [],
-    b = this.createHandleShape(0);
-  this.initBend(b);
-  b.node.style.cursor = mxConstants.CURSOR_BEND_HANDLE;
-  mxEvent.redirectMouseEvents(b.node, this.graph, this.state);
-  a.push(b);
-  mxClient.IS_TOUCH && b.node.setAttribute("pointer-events", "none");
-  a.push(this.createVirtualBend());
-  this.points.push(new mxPoint(0, 0));
-  b = this.createHandleShape(2);
-  this.initBend(b);
-  b.node.style.cursor = mxConstants.CURSOR_BEND_HANDLE;
-  mxEvent.redirectMouseEvents(b.node, this.graph, this.state);
-  a.push(b);
-  mxClient.IS_TOUCH && b.node.setAttribute("pointer-events", "none");
-  return a
-};
-mxElbowEdgeHandler.prototype.createVirtualBend = function() {
-  var a = this.createHandleShape();
-  this.initBend(a);
-  var b = this.getCursorForBend();
-  a.node.style.cursor = b;
-  b = mxUtils.bind(this, function(a) {
-    !mxEvent.isConsumed(a) && this.flipEnabled && (this.graph.flipEdge(this.state.cell, a), mxEvent.consume(a))
-  });
-  mxEvent.redirectMouseEvents(a.node, this.graph, this.state, null, null, null, b);
-  this.graph.isCellBendable(this.state.cell) || (a.node.style.display = "none");
-  return a
-};
-mxElbowEdgeHandler.prototype.getCursorForBend = function() {
-  return this.state.style[mxConstants.STYLE_EDGE] == mxEdgeStyle.TopToBottom || this.state.style[mxConstants.STYLE_EDGE] == mxConstants.EDGESTYLE_TOPTOBOTTOM || (this.state.style[mxConstants.STYLE_EDGE] ==
-      mxEdgeStyle.ElbowConnector || this.state.style[mxConstants.STYLE_EDGE] == mxConstants.EDGESTYLE_ELBOW) && this.state.style[mxConstants.STYLE_ELBOW] == mxConstants.ELBOW_VERTICAL ?
-    "row-resize" : "col-resize"
-};
-mxElbowEdgeHandler.prototype.getTooltipForNode = function(a) {
-  var b = null;
-  if (null != this.bends && null != this.bends[1] && (a == this.bends[1].node || a.parentNode == this.bends[1].node)) b = this.doubleClickOrientationResource, b = mxResources.get(b) || b;
-  return b
-};
-mxElbowEdgeHandler.prototype.convertPoint = function(a, b) {
-  var c = this.graph.getView().getScale(),
-    d = this.graph.getView().getTranslate(),
-    e = this.state.origin;
-  b && (a.x = this.graph.snap(a.x), a.y = this.graph.snap(a.y));
-  a.x = Math.round(a.x / c - d.x - e.x);
-  a.y = Math.round(a.y / c - d.y - e.y)
-};
-mxElbowEdgeHandler.prototype.redrawInnerBends = function(a, b) {
-  var c = this.graph.getModel().getGeometry(this.state.cell).points,
-    c = null != c ? c[0] : null,
-    c = null == c ? new mxPoint(a.x + (b.x - a.x) / 2, a.y + (b.y - a.y) / 2) : new mxPoint(this.graph.getView().scale * (c.x + this.graph.getView().translate.x + this.state.origin.x), this.graph.getView()
-      .scale * (c.y + this.graph.getView().translate.y + this.state.origin.y)),
-    d = this.bends[1].bounds,
-    e = d.width,
-    d = d.height;
-  null == this.handleImage && (d = e = mxConstants.HANDLE_SIZE);
-  var f = new mxRectangle(Math.round(c.x -
-    e / 2), Math.round(c.y - d / 2), e, d);
-  null == this.handleImage && ("hidden" != this.labelShape.node.style.visibility && mxUtils.intersects(f, this.labelShape.bounds)) && (e += 3, d += 3, f = new mxRectangle(Math.round(c.x - e / 2),
-    Math.round(c.y - d / 2), e, d));
-  this.bends[1].bounds = f;
-  this.bends[1].redraw()
-};
-
-function mxEdgeSegmentHandler(a) {
-  mxEdgeHandler.call(this, a)
-}
-mxUtils.extend(mxEdgeSegmentHandler, mxEdgeHandler);
-mxEdgeSegmentHandler.prototype = new mxElbowEdgeHandler;
-mxEdgeSegmentHandler.prototype.constructor = mxEdgeSegmentHandler;
-mxEdgeSegmentHandler.prototype.getPreviewPoints = function(a) {
-  if (this.isSource || this.isTarget) return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this, arguments);
-  this.convertPoint(a, !1);
-  var b = this.state.absolutePoints,
-    c = b[0].clone();
-  this.convertPoint(c, !1);
-  for (var d = [], e = 1; e < b.length; e++) {
-    var f = b[e].clone();
-    this.convertPoint(f, !1);
-    e == this.index && (c.x == f.x ? (c.x = a.x, f.x = a.x) : (c.y = a.y, f.y = a.y));
-    e < b.length - 1 && d.push(f);
-    c = f
-  }
-  if (1 == d.length) {
-    if (c = this.state.view, e = this.state.getVisibleTerminalState(!0),
-      f = this.state.getVisibleTerminalState(!1), null != f & null != e) {
-      var g = this.state.origin.x,
-        h = this.state.origin.y;
-      mxUtils.contains(f, d[0].x + g, d[0].y + h) ? b[1].y == b[2].y ? d[0].y = c.getRoutingCenterY(e) - h : d[0].x = c.getRoutingCenterX(e) - g : mxUtils.contains(e, d[0].x + g, d[0].y + h) && (b[
-        1].y == b[0].y ? d[0].y = c.getRoutingCenterY(f) - h : d[0].x = c.getRoutingCenterX(f) - g)
-    }
-  } else 0 == d.length && (d = [a]);
-  return d
-};
-mxEdgeSegmentHandler.prototype.createBends = function() {
-  var a = [],
-    b = this.createHandleShape(0);
-  this.initBend(b);
-  b.node.style.cursor = mxConstants.CURSOR_BEND_HANDLE;
-  mxEvent.redirectMouseEvents(b.node, this.graph, this.state);
-  a.push(b);
-  mxClient.IS_TOUCH && b.node.setAttribute("pointer-events", "none");
-  var c = this.state.absolutePoints;
-  if (this.graph.isCellBendable(this.state.cell)) {
-    null == this.points && (this.points = []);
-    for (var d = 0; d < c.length - 1; d++) b = this.createVirtualBend(), a.push(b), b.node.style.cursor = 0 == c[d].x -
-      c[d + 1].x ? "col-resize" : "row-resize", this.points.push(new mxPoint(0, 0)), mxClient.IS_TOUCH && b.node.setAttribute("pointer-events", "none")
-  }
-  b = this.createHandleShape(c.length);
-  this.initBend(b);
-  b.node.style.cursor = mxConstants.CURSOR_BEND_HANDLE;
-  mxEvent.redirectMouseEvents(b.node, this.graph, this.state);
-  a.push(b);
-  mxClient.IS_TOUCH && b.node.setAttribute("pointer-events", "none");
-  return a
-};
-mxEdgeSegmentHandler.prototype.redraw = function() {
-  this.refresh();
-  mxEdgeHandler.prototype.redraw.apply(this, arguments)
-};
-mxEdgeSegmentHandler.prototype.refresh = function() {
-  if (null != this.bends) {
-    for (var a = 0; a < this.bends.length; a++) null != this.bends[a] && (this.bends[a].destroy(), this.bends[a] = null);
-    this.bends = this.createBends()
-  }
-};
-mxEdgeSegmentHandler.prototype.redrawInnerBends = function(a, b) {
-  if (this.graph.isCellBendable(this.state.cell)) {
-    var c = mxConstants.HANDLE_SIZE,
-      d = this.state.absolutePoints;
-    if (null != d && 1 < d.length)
-      for (var e = 0; e < this.state.absolutePoints.length - 1; e++)
-        if (null != this.bends[e + 1]) {
-          a = d[e];
-          b = d[e + 1];
-          var f = new mxPoint(a.x + (b.x - a.x) / 2, a.y + (b.y - a.y) / 2);
-          this.bends[e + 1].bounds = new mxRectangle(Math.round(f.x - c / 2), Math.round(f.y - c / 2), c, c);
-          this.bends[e + 1].redraw()
-        }
-  }
-};
-mxEdgeSegmentHandler.prototype.changePoints = function(a, b) {
-  b = [];
-  var c = this.abspoints;
-  if (1 < c.length)
-    for (var d = c[0], e = c[1], f = 2; f < c.length; f++) {
-      var g = c[f];
-      if ((Math.round(d.x) != Math.round(e.x) || Math.round(e.x) != Math.round(g.x)) && (Math.round(d.y) != Math.round(e.y) || Math.round(e.y) != Math.round(g.y))) d = e, e = e.clone(), this.convertPoint(
-        e, !1), b.push(e);
-      e = g
-    }
-  mxElbowEdgeHandler.prototype.changePoints.apply(this, arguments)
-};
-
-function mxKeyHandler(a, b) {
-  null != a && (this.graph = a, this.target = b || document.documentElement, this.normalKeys = [], this.shiftKeys = [], this.controlKeys = [], this.controlShiftKeys = [], mxEvent.addListener(this.target,
-    "keydown", mxUtils.bind(this, function(a) {
-      this.keyDown(a)
-    })), mxClient.IS_IE && mxEvent.addListener(window, "unload", mxUtils.bind(this, function() {
-    this.destroy()
-  })))
-}
-mxKeyHandler.prototype.graph = null;
-mxKeyHandler.prototype.target = null;
-mxKeyHandler.prototype.normalKeys = null;
-mxKeyHandler.prototype.shiftKeys = null;
-mxKeyHandler.prototype.controlKeys = null;
-mxKeyHandler.prototype.controlShiftKeys = null;
-mxKeyHandler.prototype.enabled = !0;
-mxKeyHandler.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxKeyHandler.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxKeyHandler.prototype.bindKey = function(a, b) {
-  this.normalKeys[a] = b
-};
-mxKeyHandler.prototype.bindShiftKey = function(a, b) {
-  this.shiftKeys[a] = b
-};
-mxKeyHandler.prototype.bindControlKey = function(a, b) {
-  this.controlKeys[a] = b
-};
-mxKeyHandler.prototype.bindControlShiftKey = function(a, b) {
-  this.controlShiftKeys[a] = b
-};
-mxKeyHandler.prototype.isControlDown = function(a) {
-  return mxEvent.isControlDown(a)
-};
-mxKeyHandler.prototype.getFunction = function(a) {
-  return null != a ? this.isControlDown(a) ? mxEvent.isShiftDown(a) ? this.controlShiftKeys[a.keyCode] : this.controlKeys[a.keyCode] : mxEvent.isShiftDown(a) ? this.shiftKeys[a.keyCode] : this.normalKeys[
-    a.keyCode] : null
-};
-mxKeyHandler.prototype.isGraphEvent = function(a) {
-  a = mxEvent.getSource(a);
-  if (a == this.target || a.parentNode == this.target || null != this.graph.cellEditor && a == this.graph.cellEditor.textarea) return !0;
-  for (; null != a;) {
-    if (a == this.graph.container) return !0;
-    a = a.parentNode
-  }
-  return !1
-};
-mxKeyHandler.prototype.keyDown = function(a) {
-  if (this.graph.isEnabled() && !mxEvent.isConsumed(a) && this.isGraphEvent(a) && this.isEnabled())
-    if (27 == a.keyCode) this.escape(a);
-    else if (!this.graph.isEditing()) {
-    var b = this.getFunction(a);
-    null != b && (b(a), mxEvent.consume(a))
-  }
-};
-mxKeyHandler.prototype.escape = function(a) {
-  this.graph.isEscapeEnabled() && this.graph.escape(a)
-};
-mxKeyHandler.prototype.destroy = function() {
-  this.target = null
-};
-
-function mxTooltipHandler(a, b) {
-  null != a && (this.graph = a, this.delay = b || 500, this.graph.addMouseListener(this))
-}
-mxTooltipHandler.prototype.zIndex = 10005;
-mxTooltipHandler.prototype.graph = null;
-mxTooltipHandler.prototype.delay = null;
-mxTooltipHandler.prototype.hideOnHover = !1;
-mxTooltipHandler.prototype.enabled = !0;
-mxTooltipHandler.prototype.isEnabled = function() {
-  return this.enabled
-};
-mxTooltipHandler.prototype.setEnabled = function(a) {
-  this.enabled = a
-};
-mxTooltipHandler.prototype.isHideOnHover = function() {
-  return this.hideOnHover
-};
-mxTooltipHandler.prototype.setHideOnHover = function(a) {
-  this.hideOnHover = a
-};
-mxTooltipHandler.prototype.init = function() {
-  null != document.body && (this.div = document.createElement("div"), this.div.className = "mxTooltip", this.div.style.visibility = "hidden", this.div.style.zIndex = this.zIndex, document.body.appendChild(
-    this.div), mxEvent.addListener(this.div, "mousedown", mxUtils.bind(this, function(a) {
-    this.hideTooltip()
-  })))
-};
-mxTooltipHandler.prototype.mouseDown = function(a, b) {
-  this.reset(b, !1);
-  this.hideTooltip()
-};
-mxTooltipHandler.prototype.mouseMove = function(a, b) {
-  if (b.getX() != this.lastX || b.getY() != this.lastY) this.reset(b, !0), (this.isHideOnHover() || b.getState() != this.state || b.getSource() != this.node && (!this.stateSource || null != b.getState() &&
-    this.stateSource == (b.isSource(b.getState().shape) || !b.isSource(b.getState().text)))) && this.hideTooltip();
-  this.lastX = b.getX();
-  this.lastY = b.getY()
-};
-mxTooltipHandler.prototype.mouseUp = function(a, b) {
-  this.reset(b, !0);
-  this.hideTooltip()
-};
-mxTooltipHandler.prototype.resetTimer = function() {
-  null != this.thread && (window.clearTimeout(this.thread), this.thread = null)
-};
-mxTooltipHandler.prototype.reset = function(a, b) {
-  this.resetTimer();
-  if (b && this.isEnabled() && null != a.getState() && (null == this.div || "hidden" == this.div.style.visibility)) {
-    var c = a.getState(),
-      d = a.getSource(),
-      e = a.getX(),
-      f = a.getY(),
-      g = a.isSource(c.shape) || a.isSource(c.text);
-    this.thread = window.setTimeout(mxUtils.bind(this, function() {
-      if (!this.graph.isEditing() && !this.graph.panningHandler.isMenuShowing()) {
-        var a = this.graph.getTooltip(c, d, e, f);
-        this.show(a, e, f);
-        this.state = c;
-        this.node = d;
-        this.stateSource = g
-      }
-    }), this.delay)
-  }
-};
-mxTooltipHandler.prototype.hide = function() {
-  this.resetTimer();
-  this.hideTooltip()
-};
-mxTooltipHandler.prototype.hideTooltip = function() {
-  null != this.div && (this.div.style.visibility = "hidden")
-};
-mxTooltipHandler.prototype.show = function(a, b, c) {
-  if (null != a && 0 < a.length) {
-    null == this.div && this.init();
-    var d = mxUtils.getScrollOrigin();
-    this.div.style.left = b + d.x + "px";
-    this.div.style.top = c + mxConstants.TOOLTIP_VERTICAL_OFFSET + d.y + "px";
-    mxUtils.isNode(a) ? (this.div.innerHTML = "", this.div.appendChild(a)) : this.div.innerHTML = a.replace(/\n/g, "\x3cbr\x3e");
-    this.div.style.visibility = "";
-    mxUtils.fit(this.div)
-  }
-};
-mxTooltipHandler.prototype.destroy = function() {
-  this.graph.removeMouseListener(this);
-  mxEvent.release(this.div);
-  null != this.div && null != this.div.parentNode && this.div.parentNode.removeChild(this.div);
-  this.div = null
-};
-
-function mxCellTracker(a, b, c) {
-  mxCellMarker.call(this, a, b);
-  this.graph.addMouseListener(this);
-  null != c && (this.getCell = c);
-  mxClient.IS_IE && mxEvent.addListener(window, "unload", mxUtils.bind(this, function() {
-    this.destroy()
-  }))
-}
-mxUtils.extend(mxCellTracker, mxCellMarker);
-mxCellTracker.prototype.mouseDown = function(a, b) {};
-mxCellTracker.prototype.mouseMove = function(a, b) {
-  this.isEnabled() && this.process(b)
-};
-mxCellTracker.prototype.mouseUp = function(a, b) {
-  this.reset()
-};
-mxCellTracker.prototype.destroy = function() {
-  this.destroyed || (this.destroyed = !0, this.graph.removeMouseListener(this), mxCellMarker.prototype.destroy.apply(this))
-};
-
-function mxCellHighlight(a, b, c, d) {
-  null != a && (this.graph = a, this.highlightColor = null != b ? b : mxConstants.DEFAULT_VALID_COLOR, this.strokeWidth = null != c ? c : mxConstants.HIGHLIGHT_STROKEWIDTH, this.dashed = null != d ?
-    d : !1, this.repaintHandler = mxUtils.bind(this, function() {
-      this.repaint()
-    }), this.graph.getView().addListener(mxEvent.SCALE, this.repaintHandler), this.graph.getView().addListener(mxEvent.TRANSLATE, this.repaintHandler), this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,
-      this.repaintHandler), this.graph.getModel().addListener(mxEvent.CHANGE,
-      this.repaintHandler), this.resetHandler = mxUtils.bind(this, function() {
-      this.hide()
-    }), this.graph.getView().addListener(mxEvent.DOWN, this.resetHandler), this.graph.getView().addListener(mxEvent.UP, this.resetHandler))
-}
-mxCellHighlight.prototype.keepOnTop = !1;
-mxCellHighlight.prototype.graph = !0;
-mxCellHighlight.prototype.state = null;
-mxCellHighlight.prototype.spacing = 2;
-mxCellHighlight.prototype.resetHandler = null;
-mxCellHighlight.prototype.setHighlightColor = function(a) {
-  this.highlightColor = a;
-  null != this.shape && (this.shape.stroke = a)
-};
-mxCellHighlight.prototype.drawHighlight = function() {
-  this.shape = this.createShape();
-  this.repaint();
-  !this.keepOnTop && this.shape.node.parentNode.firstChild != this.shape.node && this.shape.node.parentNode.insertBefore(this.shape.node, this.shape.node.parentNode.firstChild)
-};
-mxCellHighlight.prototype.createShape = function() {
-  var a = null,
-    a = this.graph.model.isEdge(this.state.cell) ? new mxPolyline(this.state.absolutePoints, this.highlightColor, this.strokeWidth) : new mxRectangleShape(new mxRectangle, null, this.highlightColor,
-      this.strokeWidth);
-  a.dialect = this.graph.dialect != mxConstants.DIALECT_SVG ? mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
-  a.init(this.graph.getView().getOverlayPane());
-  mxEvent.redirectMouseEvents(a.node, this.graph, this.state);
-  a.svgStrokeTolerance = 0;
-  a.pointerEvents = !1;
-  a.isDashed = this.dashed;
-  return a
-};
-mxCellHighlight.prototype.repaint = function() {
-  if (null != this.state && null != this.shape) {
-    var a = 0;
-    this.graph.model.isEdge(this.state.cell) ? this.shape.points = this.state.absolutePoints : (this.shape.bounds = new mxRectangle(this.state.x - this.spacing, this.state.y - this.spacing, this.state
-      .width + 2 * this.spacing, this.state.height + 2 * this.spacing), a = Number(this.state.style[mxConstants.STYLE_ROTATION] || "0"));
-    null != this.state.shape && this.shape.setCursor(this.state.shape.getCursor());
-    0 != a && (this.shape.rotation = a);
-    this.shape.redraw()
-  }
-};
-mxCellHighlight.prototype.hide = function() {
-  this.highlight(null)
-};
-mxCellHighlight.prototype.highlight = function(a) {
-  this.state != a && (null != this.shape && (this.shape.destroy(), this.shape = null), this.state = a, null != this.state && this.drawHighlight())
-};
-mxCellHighlight.prototype.destroy = function() {
-  this.graph.getView().removeListener(this.repaintHandler);
-  this.graph.getModel().removeListener(this.repaintHandler);
-  this.graph.getView().removeListener(this.resetHandler);
-  this.graph.getModel().removeListener(this.resetHandler);
-  null != this.shape && (this.shape.destroy(), this.shape = null)
-};
-
-function mxDefaultKeyHandler(a) {
-  if (null != a) {
-    this.editor = a;
-    this.handler = new mxKeyHandler(a.graph);
-    var b = this.handler.escape;
-    this.handler.escape = function(c) {
-      b.apply(this, arguments);
-      a.hideProperties();
-      a.fireEvent(new mxEventObject(mxEvent.ESCAPE, "event", c))
-    }
-  }
-}
-mxDefaultKeyHandler.prototype.editor = null;
-mxDefaultKeyHandler.prototype.handler = null;
-mxDefaultKeyHandler.prototype.bindAction = function(a, b, c) {
-  var d = mxUtils.bind(this, function() {
-    this.editor.execute(b)
-  });
-  c ? this.handler.bindControlKey(a, d) : this.handler.bindKey(a, d)
-};
-mxDefaultKeyHandler.prototype.destroy = function() {
-  this.handler.destroy();
-  this.handler = null
-};
-
-function mxDefaultPopupMenu(a) {
-  this.config = a
-}
-mxDefaultPopupMenu.prototype.imageBasePath = null;
-mxDefaultPopupMenu.prototype.config = null;
-mxDefaultPopupMenu.prototype.createMenu = function(a, b, c, d) {
-  if (null != this.config) {
-    var e = this.createConditions(a, c, d);
-    this.addItems(a, b, c, d, e, this.config.firstChild, null)
-  }
-};
-mxDefaultPopupMenu.prototype.addItems = function(a, b, c, d, e, f, g) {
-  for (var h = !1; null != f;) {
-    if ("add" == f.nodeName) {
-      var k = f.getAttribute("if");
-      if (null == k || e[k]) {
-        var k = f.getAttribute("as"),
-          k = mxResources.get(k) || k,
-          l = mxUtils.eval(mxUtils.getTextContent(f)),
-          m = f.getAttribute("action"),
-          n = f.getAttribute("icon"),
-          p = f.getAttribute("iconCls");
-        h && (b.addSeparator(g), h = !1);
-        null != n && this.imageBasePath && (n = this.imageBasePath + n);
-        k = this.addAction(b, a, k, n, l, m, c, g, p);
-        this.addItems(a, b, c, d, e, f.firstChild, k)
-      }
-    } else "separator" ==
-      f.nodeName && (h = !0);
-    f = f.nextSibling
-  }
-};
-mxDefaultPopupMenu.prototype.addAction = function(a, b, c, d, e, f, g, h, k) {
-  return a.addItem(c, d, function(a) {
-    "function" == typeof e && e.call(b, b, g, a);
-    null != f && b.execute(f, g, a)
-  }, h, k)
-};
-mxDefaultPopupMenu.prototype.createConditions = function(a, b, c) {
-  var d = a.graph.getModel(),
-    e = d.getChildCount(b),
-    f = [];
-  f.nocell = null == b;
-  f.ncells = 1 < a.graph.getSelectionCount();
-  f.notRoot = d.getRoot() != d.getParent(a.graph.getDefaultParent());
-  f.cell = null != b;
-  d = null != b && 1 == a.graph.getSelectionCount();
-  f.nonEmpty = d && 0 < e;
-  f.expandable = d && a.graph.isCellFoldable(b, !1);
-  f.collapsable = d && a.graph.isCellFoldable(b, !0);
-  f.validRoot = d && a.graph.isValidRoot(b);
-  f.emptyValidRoot = f.validRoot && 0 == e;
-  f.swimlane = d && a.graph.isSwimlane(b);
-  e = this.config.getElementsByTagName("condition");
-  for (d = 0; d < e.length; d++) {
-    var g = mxUtils.eval(mxUtils.getTextContent(e[d])),
-      h = e[d].getAttribute("name");
-    null != h && "function" == typeof g && (f[h] = g(a, b, c))
-  }
-  return f
-};
-
-function mxDefaultToolbar(a, b) {
-  this.editor = b;
-  null != a && null != b && this.init(a)
-}
-mxDefaultToolbar.prototype.editor = null;
-mxDefaultToolbar.prototype.toolbar = null;
-mxDefaultToolbar.prototype.resetHandler = null;
-mxDefaultToolbar.prototype.spacing = 4;
-mxDefaultToolbar.prototype.connectOnDrop = !1;
-mxDefaultToolbar.prototype.init = function(a) {
-  null != a && (this.toolbar = new mxToolbar(a), this.toolbar.addListener(mxEvent.SELECT, mxUtils.bind(this, function(a, c) {
-    var d = c.getProperty("function");
-    this.editor.insertFunction = null != d ? mxUtils.bind(this, function() {
-      d.apply(this, arguments);
-      this.toolbar.resetMode()
-    }) : null
-  })), this.resetHandler = mxUtils.bind(this, function() {
-    null != this.toolbar && this.toolbar.resetMode(!0)
-  }), this.editor.graph.addListener(mxEvent.DOUBLE_CLICK, this.resetHandler), this.editor.addListener(mxEvent.ESCAPE,
-    this.resetHandler))
-};
-mxDefaultToolbar.prototype.addItem = function(a, b, c, d) {
-  var e = mxUtils.bind(this, function() {
-    null != c && 0 < c.length && this.editor.execute(c)
-  });
-  return this.toolbar.addItem(a, b, e, d)
-};
-mxDefaultToolbar.prototype.addSeparator = function(a) {
-  a = a || mxClient.imageBasePath + "/separator.gif";
-  this.toolbar.addSeparator(a)
-};
-mxDefaultToolbar.prototype.addCombo = function() {
-  return this.toolbar.addCombo()
-};
-mxDefaultToolbar.prototype.addActionCombo = function(a) {
-  return this.toolbar.addActionCombo(a)
-};
-mxDefaultToolbar.prototype.addActionOption = function(a, b, c) {
-  var d = mxUtils.bind(this, function() {
-    this.editor.execute(c)
-  });
-  this.addOption(a, b, d)
-};
-mxDefaultToolbar.prototype.addOption = function(a, b, c) {
-  return this.toolbar.addOption(a, b, c)
-};
-mxDefaultToolbar.prototype.addMode = function(a, b, c, d, e) {
-  var f = mxUtils.bind(this, function() {
-    this.editor.setMode(c);
-    null != e && e(this.editor)
-  });
-  return this.toolbar.addSwitchMode(a, b, f, d)
-};
-mxDefaultToolbar.prototype.addPrototype = function(a, b, c, d, e, f) {
-  var g = function() {
-      return "function" == typeof c ? c() : null != c ? c.clone() : null
-    },
-    h = mxUtils.bind(this, function(a, b) {
-      "function" == typeof e ? e(this.editor, g(), a, b) : this.drop(g(), a, b);
-      this.toolbar.resetMode();
-      mxEvent.consume(a)
-    });
-  a = this.toolbar.addMode(a, b, h, d, null, f);
-  this.installDropHandler(a, function(a, b, c) {
-    h(b, c)
-  });
-  return a
-};
-mxDefaultToolbar.prototype.drop = function(a, b, c) {
-  var d = this.editor.graph,
-    e = d.getModel();
-  if (null == c || e.isEdge(c) || !this.connectOnDrop || !d.isCellConnectable(c)) {
-    for (; null != c && !d.isValidDropTarget(c, [a], b);) c = e.getParent(c);
-    this.insert(a, b, c)
-  } else this.connect(a, b, c)
-};
-mxDefaultToolbar.prototype.insert = function(a, b, c) {
-  var d = this.editor.graph;
-  if (d.canImportCell(a)) {
-    var e = mxEvent.getClientX(b),
-      f = mxEvent.getClientY(b),
-      e = mxUtils.convertPoint(d.container, e, f);
-    return d.isSplitEnabled() && d.isSplitTarget(c, [a], b) ? d.splitEdge(c, [a], null, e.x, e.y) : this.editor.addVertex(c, a, e.x, e.y)
-  }
-  return null
-};
-mxDefaultToolbar.prototype.connect = function(a, b, c) {
-  b = this.editor.graph;
-  var d = b.getModel();
-  if (null != c && b.isCellConnectable(a) && b.isEdgeValid(null, c, a)) {
-    var e = null;
-    d.beginUpdate();
-    try {
-      var f = d.getGeometry(c),
-        g = d.getGeometry(a).clone();
-      g.x = f.x + (f.width - g.width) / 2;
-      g.y = f.y + (f.height - g.height) / 2;
-      var h = this.spacing * b.gridSize,
-        k = 20 * d.getDirectedEdgeCount(c, !0);
-      this.editor.horizontalFlow ? g.x += (g.width + f.width) / 2 + h + k : g.y += (g.height + f.height) / 2 + h + k;
-      a.setGeometry(g);
-      var l = d.getParent(c);
-      b.addCell(a, l);
-      b.constrainChild(a);
-      e = this.editor.createEdge(c, a);
-      if (null == d.getGeometry(e)) {
-        var m = new mxGeometry;
-        m.relative = !0;
-        d.setGeometry(e, m)
-      }
-      b.addEdge(e, l, c, a)
-    } finally {
-      d.endUpdate()
-    }
-    b.setSelectionCells([a, e]);
-    b.scrollCellToVisible(a)
-  }
-};
-mxDefaultToolbar.prototype.installDropHandler = function(a, b) {
-  var c = document.createElement("img");
-  c.setAttribute("src", a.getAttribute("src"));
-  var d = mxUtils.bind(this, function(e) {
-    c.style.width = 2 * a.offsetWidth + "px";
-    c.style.height = 2 * a.offsetHeight + "px";
-    mxUtils.makeDraggable(a, this.editor.graph, b, c);
-    mxEvent.removeListener(c, "load", d)
-  });
-  mxClient.IS_IE ? d() : mxEvent.addListener(c, "load", d)
-};
-mxDefaultToolbar.prototype.destroy = function() {
-  null != this.resetHandler && (this.editor.graph.removeListener("dblclick", this.resetHandler), this.editor.removeListener("escape", this.resetHandler), this.resetHandler = null);
-  null != this.toolbar && (this.toolbar.destroy(), this.toolbar = null)
-};
-
-function mxEditor(a) {
-  this.actions = [];
-  this.addActions();
-  if (null != document.body) {
-    this.cycleAttributeValues = [];
-    this.popupHandler = new mxDefaultPopupMenu;
-    this.undoManager = new mxUndoManager;
-    this.graph = this.createGraph();
-    this.toolbar = this.createToolbar();
-    this.keyHandler = new mxDefaultKeyHandler(this);
-    this.configure(a);
-    this.graph.swimlaneIndicatorColorAttribute = this.cycleAttributeName;
-    !mxClient.IS_LOCAL && null != this.urlInit && (this.session = this.createSession());
-    if (null != this.onInit) this.onInit();
-    mxClient.IS_IE &&
-      mxEvent.addListener(window, "unload", mxUtils.bind(this, function() {
-        this.destroy()
-      }))
-  }
-}
-mxLoadResources && mxResources.add(mxClient.basePath + "/resources/editor");
-mxEditor.prototype = new mxEventSource;
-mxEditor.prototype.constructor = mxEditor;
-mxEditor.prototype.askZoomResource = "none" != mxClient.language ? "askZoom" : "";
-mxEditor.prototype.lastSavedResource = "none" != mxClient.language ? "lastSaved" : "";
-mxEditor.prototype.currentFileResource = "none" != mxClient.language ? "currentFile" : "";
-mxEditor.prototype.propertiesResource = "none" != mxClient.language ? "properties" : "";
-mxEditor.prototype.tasksResource = "none" != mxClient.language ? "tasks" : "";
-mxEditor.prototype.helpResource = "none" != mxClient.language ? "help" : "";
-mxEditor.prototype.outlineResource = "none" != mxClient.language ? "outline" : "";
-mxEditor.prototype.outline = null;
-mxEditor.prototype.graph = null;
-mxEditor.prototype.graphRenderHint = null;
-mxEditor.prototype.toolbar = null;
-mxEditor.prototype.session = null;
-mxEditor.prototype.status = null;
-mxEditor.prototype.popupHandler = null;
-mxEditor.prototype.undoManager = null;
-mxEditor.prototype.keyHandler = null;
-mxEditor.prototype.actions = null;
-mxEditor.prototype.dblClickAction = "edit";
-mxEditor.prototype.swimlaneRequired = !1;
-mxEditor.prototype.disableContextMenu = !0;
-mxEditor.prototype.insertFunction = null;
-mxEditor.prototype.forcedInserting = !1;
-mxEditor.prototype.templates = null;
-mxEditor.prototype.defaultEdge = null;
-mxEditor.prototype.defaultEdgeStyle = null;
-mxEditor.prototype.defaultGroup = null;
-mxEditor.prototype.groupBorderSize = null;
-mxEditor.prototype.filename = null;
-mxEditor.prototype.linefeed = "\x26#xa;";
-mxEditor.prototype.postParameterName = "xml";
-mxEditor.prototype.escapePostData = !0;
-mxEditor.prototype.urlPost = null;
-mxEditor.prototype.urlImage = null;
-mxEditor.prototype.urlInit = null;
-mxEditor.prototype.urlNotify = null;
-mxEditor.prototype.urlPoll = null;
-mxEditor.prototype.horizontalFlow = !1;
-mxEditor.prototype.layoutDiagram = !1;
-mxEditor.prototype.swimlaneSpacing = 0;
-mxEditor.prototype.maintainSwimlanes = !1;
-mxEditor.prototype.layoutSwimlanes = !1;
-mxEditor.prototype.cycleAttributeValues = null;
-mxEditor.prototype.cycleAttributeIndex = 0;
-mxEditor.prototype.cycleAttributeName = "fillColor";
-mxEditor.prototype.tasks = null;
-mxEditor.prototype.tasksWindowImage = null;
-mxEditor.prototype.tasksTop = 20;
-mxEditor.prototype.help = null;
-mxEditor.prototype.helpWindowImage = null;
-mxEditor.prototype.urlHelp = null;
-mxEditor.prototype.helpWidth = 300;
-mxEditor.prototype.helpHeight = 260;
-mxEditor.prototype.propertiesWidth = 240;
-mxEditor.prototype.propertiesHeight = null;
-mxEditor.prototype.movePropertiesDialog = !1;
-mxEditor.prototype.validating = !1;
-mxEditor.prototype.modified = !1;
-mxEditor.prototype.isModified = function() {
-  return this.modified
-};
-mxEditor.prototype.setModified = function(a) {
-  this.modified = a
-};
-mxEditor.prototype.addActions = function() {
-  this.addAction("save", function(a) {
-    a.save()
-  });
-  this.addAction("print", function(a) {
-    (new mxPrintPreview(a.graph, 1)).open()
-  });
-  this.addAction("show", function(a) {
-    mxUtils.show(a.graph, null, 10, 10)
-  });
-  this.addAction("exportImage", function(a) {
-    var b = a.getUrlImage();
-    if (null == b || mxClient.IS_LOCAL) a.execute("show");
-    else {
-      var c = mxUtils.getViewXml(a.graph, 1),
-        c = mxUtils.getXml(c, "\n");
-      mxUtils.submit(b, a.postParameterName + "\x3d" + encodeURIComponent(c), document, "_blank")
-    }
-  });
-  this.addAction("refresh",
-    function(a) {
-      a.graph.refresh()
-    });
-  this.addAction("cut", function(a) {
-    a.graph.isEnabled() && mxClipboard.cut(a.graph)
-  });
-  this.addAction("copy", function(a) {
-    a.graph.isEnabled() && mxClipboard.copy(a.graph)
-  });
-  this.addAction("paste", function(a) {
-    a.graph.isEnabled() && mxClipboard.paste(a.graph)
-  });
-  this.addAction("delete", function(a) {
-    a.graph.isEnabled() && a.graph.removeCells()
-  });
-  this.addAction("group", function(a) {
-    a.graph.isEnabled() && a.graph.setSelectionCell(a.groupCells())
-  });
-  this.addAction("ungroup", function(a) {
-    a.graph.isEnabled() &&
-      a.graph.setSelectionCells(a.graph.ungroupCells())
-  });
-  this.addAction("removeFromParent", function(a) {
-    a.graph.isEnabled() && a.graph.removeCellsFromParent()
-  });
-  this.addAction("undo", function(a) {
-    a.graph.isEnabled() && a.undo()
-  });
-  this.addAction("redo", function(a) {
-    a.graph.isEnabled() && a.redo()
-  });
-  this.addAction("zoomIn", function(a) {
-    a.graph.zoomIn()
-  });
-  this.addAction("zoomOut", function(a) {
-    a.graph.zoomOut()
-  });
-  this.addAction("actualSize", function(a) {
-    a.graph.zoomActual()
-  });
-  this.addAction("fit", function(a) {
-    a.graph.fit()
-  });
-  this.addAction("showProperties", function(a, b) {
-    a.showProperties(b)
-  });
-  this.addAction("selectAll", function(a) {
-    a.graph.isEnabled() && a.graph.selectAll()
-  });
-  this.addAction("selectNone", function(a) {
-    a.graph.isEnabled() && a.graph.clearSelection()
-  });
-  this.addAction("selectVertices", function(a) {
-    a.graph.isEnabled() && a.graph.selectVertices()
-  });
-  this.addAction("selectEdges", function(a) {
-    a.graph.isEnabled() && a.graph.selectEdges()
-  });
-  this.addAction("edit", function(a, b) {
-    a.graph.isEnabled() && a.graph.isCellEditable(b) && a.graph.startEditingAtCell(b)
-  });
-  this.addAction("toBack", function(a, b) {
-    a.graph.isEnabled() && a.graph.orderCells(!0)
-  });
-  this.addAction("toFront", function(a, b) {
-    a.graph.isEnabled() && a.graph.orderCells(!1)
-  });
-  this.addAction("enterGroup", function(a, b) {
-    a.graph.enterGroup(b)
-  });
-  this.addAction("exitGroup", function(a) {
-    a.graph.exitGroup()
-  });
-  this.addAction("home", function(a) {
-    a.graph.home()
-  });
-  this.addAction("selectPrevious", function(a) {
-    a.graph.isEnabled() && a.graph.selectPreviousCell()
-  });
-  this.addAction("selectNext", function(a) {
-    a.graph.isEnabled() &&
-      a.graph.selectNextCell()
-  });
-  this.addAction("selectParent", function(a) {
-    a.graph.isEnabled() && a.graph.selectParentCell()
-  });
-  this.addAction("selectChild", function(a) {
-    a.graph.isEnabled() && a.graph.selectChildCell()
-  });
-  this.addAction("collapse", function(a) {
-    a.graph.isEnabled() && a.graph.foldCells(!0)
-  });
-  this.addAction("collapseAll", function(a) {
-    if (a.graph.isEnabled()) {
-      var b = a.graph.getChildVertices();
-      a.graph.foldCells(!0, !1, b)
-    }
-  });
-  this.addAction("expand", function(a) {
-    a.graph.isEnabled() && a.graph.foldCells(!1)
-  });
-  this.addAction("expandAll", function(a) {
-    if (a.graph.isEnabled()) {
-      var b = a.graph.getChildVertices();
-      a.graph.foldCells(!1, !1, b)
-    }
-  });
-  this.addAction("bold", function(a) {
-    a.graph.isEnabled() && a.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, mxConstants.FONT_BOLD)
-  });
-  this.addAction("italic", function(a) {
-    a.graph.isEnabled() && a.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, mxConstants.FONT_ITALIC)
-  });
-  this.addAction("underline", function(a) {
-    a.graph.isEnabled() && a.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,
-      mxConstants.FONT_UNDERLINE)
-  });
-  this.addAction("shadow", function(a) {
-    a.graph.isEnabled() && a.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, mxConstants.FONT_SHADOW)
-  });
-  this.addAction("alignCellsLeft", function(a) {
-    a.graph.isEnabled() && a.graph.alignCells(mxConstants.ALIGN_LEFT)
-  });
-  this.addAction("alignCellsCenter", function(a) {
-    a.graph.isEnabled() && a.graph.alignCells(mxConstants.ALIGN_CENTER)
-  });
-  this.addAction("alignCellsRight", function(a) {
-    a.graph.isEnabled() && a.graph.alignCells(mxConstants.ALIGN_RIGHT)
-  });
-  this.addAction("alignCellsTop", function(a) {
-    a.graph.isEnabled() && a.graph.alignCells(mxConstants.ALIGN_TOP)
-  });
-  this.addAction("alignCellsMiddle", function(a) {
-    a.graph.isEnabled() && a.graph.alignCells(mxConstants.ALIGN_MIDDLE)
-  });
-  this.addAction("alignCellsBottom", function(a) {
-    a.graph.isEnabled() && a.graph.alignCells(mxConstants.ALIGN_BOTTOM)
-  });
-  this.addAction("alignFontLeft", function(a) {
-    a.graph.setCellStyles(mxConstants.STYLE_ALIGN, mxConstants.ALIGN_LEFT)
-  });
-  this.addAction("alignFontCenter", function(a) {
-    a.graph.isEnabled() &&
-      a.graph.setCellStyles(mxConstants.STYLE_ALIGN, mxConstants.ALIGN_CENTER)
-  });
-  this.addAction("alignFontRight", function(a) {
-    a.graph.isEnabled() && a.graph.setCellStyles(mxConstants.STYLE_ALIGN, mxConstants.ALIGN_RIGHT)
-  });
-  this.addAction("alignFontTop", function(a) {
-    a.graph.isEnabled() && a.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_TOP)
-  });
-  this.addAction("alignFontMiddle", function(a) {
-    a.graph.isEnabled() && a.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_MIDDLE)
-  });
-  this.addAction("alignFontBottom", function(a) {
-    a.graph.isEnabled() && a.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN, mxConstants.ALIGN_BOTTOM)
-  });
-  this.addAction("zoom", function(a) {
-    var b = 100 * a.graph.getView().scale,
-      b = parseFloat(mxUtils.prompt(mxResources.get(a.askZoomResource) || a.askZoomResource, b)) / 100;
-    isNaN(b) || a.graph.getView().setScale(b)
-  });
-  this.addAction("toggleTasks", function(a) {
-    null != a.tasks ? a.tasks.setVisible(!a.tasks.isVisible()) : a.showTasks()
-  });
-  this.addAction("toggleHelp", function(a) {
-    null !=
-      a.help ? a.help.setVisible(!a.help.isVisible()) : a.showHelp()
-  });
-  this.addAction("toggleOutline", function(a) {
-    null == a.outline ? a.showOutline() : a.outline.setVisible(!a.outline.isVisible())
-  });
-  this.addAction("toggleConsole", function(a) {
-    mxLog.setVisible(!mxLog.isVisible())
-  })
-};
-mxEditor.prototype.createSession = function() {
-  var a = mxUtils.bind(this, function(a) {
-    this.fireEvent(new mxEventObject(mxEvent.SESSION, "session", a))
-  });
-  return this.connect(this.urlInit, this.urlPoll, this.urlNotify, a)
-};
-mxEditor.prototype.configure = function(a) {
-  null != a && ((new mxCodec(a.ownerDocument)).decode(a, this), this.resetHistory())
-};
-mxEditor.prototype.resetFirstTime = function() {
-  document.cookie = "mxgraph\x3dseen; expires\x3dFri, 27 Jul 2001 02:47:11 UTC; path\x3d/"
-};
-mxEditor.prototype.resetHistory = function() {
-  this.lastSnapshot = (new Date).getTime();
-  this.undoManager.clear();
-  this.ignoredChanges = 0;
-  this.setModified(!1)
-};
-mxEditor.prototype.addAction = function(a, b) {
-  this.actions[a] = b
-};
-mxEditor.prototype.execute = function(a, b, c) {
-  var d = this.actions[a];
-  if (null != d) try {
-    var e = arguments;
-    e[0] = this;
-    d.apply(this, e)
-  } catch (f) {
-    throw mxUtils.error("Cannot execute " + a + ": " + f.message, 280, !0), f;
-  } else mxUtils.error("Cannot find action " + a, 280, !0)
-};
-mxEditor.prototype.addTemplate = function(a, b) {
-  this.templates[a] = b
-};
-mxEditor.prototype.getTemplate = function(a) {
-  return this.templates[a]
-};
-mxEditor.prototype.createGraph = function() {
-  var a = new mxGraph(null, null, this.graphRenderHint);
-  a.setTooltips(!0);
-  a.setPanning(!0);
-  this.installDblClickHandler(a);
-  this.installUndoHandler(a);
-  this.installDrillHandler(a);
-  this.installChangeHandler(a);
-  this.installInsertHandler(a);
-  a.panningHandler.factoryMethod = mxUtils.bind(this, function(a, c, d) {
-    return this.createPopupMenu(a, c, d)
-  });
-  a.connectionHandler.factoryMethod = mxUtils.bind(this, function(a, c) {
-    return this.createEdge(a, c)
-  });
-  this.createSwimlaneManager(a);
-  this.createLayoutManager(a);
-  return a
-};
-mxEditor.prototype.createSwimlaneManager = function(a) {
-  a = new mxSwimlaneManager(a, !1);
-  a.isHorizontal = mxUtils.bind(this, function() {
-    return this.horizontalFlow
-  });
-  a.isEnabled = mxUtils.bind(this, function() {
-    return this.maintainSwimlanes
-  });
-  return a
-};
-mxEditor.prototype.createLayoutManager = function(a) {
-  var b = new mxLayoutManager(a),
-    c = this;
-  b.getLayout = function(b) {
-    var e = null,
-      f = c.graph.getModel();
-    if (null != f.getParent(b))
-      if (c.layoutSwimlanes && a.isSwimlane(b)) null == c.swimlaneLayout && (c.swimlaneLayout = c.createSwimlaneLayout()), e = c.swimlaneLayout;
-      else if (c.layoutDiagram && (a.isValidRoot(b) || null == f.getParent(f.getParent(b)))) null == c.diagramLayout && (c.diagramLayout = c.createDiagramLayout()), e = c.diagramLayout;
-    return e
-  };
-  return b
-};
-mxEditor.prototype.setGraphContainer = function(a) {
-  null == this.graph.container && (this.graph.init(a), this.rubberband = new mxRubberband(this.graph), this.disableContextMenu && mxEvent.disableContextMenu(a), mxClient.IS_QUIRKS && new mxDivResizer(
-    a))
-};
-mxEditor.prototype.installDblClickHandler = function(a) {
-  a.addListener(mxEvent.DOUBLE_CLICK, mxUtils.bind(this, function(b, c) {
-    var d = c.getProperty("cell");
-    null != d && (a.isEnabled() && null != this.dblClickAction) && (this.execute(this.dblClickAction, d), c.consume())
-  }))
-};
-mxEditor.prototype.installUndoHandler = function(a) {
-  var b = mxUtils.bind(this, function(a, b) {
-    var e = b.getProperty("edit");
-    this.undoManager.undoableEditHappened(e)
-  });
-  a.getModel().addListener(mxEvent.UNDO, b);
-  a.getView().addListener(mxEvent.UNDO, b);
-  b = function(b, d) {
-    var e = d.getProperty("edit").changes;
-    a.setSelectionCells(a.getSelectionCellsForChanges(e))
-  };
-  this.undoManager.addListener(mxEvent.UNDO, b);
-  this.undoManager.addListener(mxEvent.REDO, b)
-};
-mxEditor.prototype.installDrillHandler = function(a) {
-  var b = mxUtils.bind(this, function(a) {
-    this.fireEvent(new mxEventObject(mxEvent.ROOT))
-  });
-  a.getView().addListener(mxEvent.DOWN, b);
-  a.getView().addListener(mxEvent.UP, b)
-};
-mxEditor.prototype.installChangeHandler = function(a) {
-  var b = mxUtils.bind(this, function(b, d) {
-    this.setModified(!0);
-    !0 == this.validating && a.validateGraph();
-    for (var e = d.getProperty("edit").changes, f = 0; f < e.length; f++) {
-      var g = e[f];
-      if (g instanceof mxRootChange || g instanceof mxValueChange && g.cell == this.graph.model.root || g instanceof mxCellAttributeChange && g.cell == this.graph.model.root) {
-        this.fireEvent(new mxEventObject(mxEvent.ROOT));
-        break
-      }
-    }
-  });
-  a.getModel().addListener(mxEvent.CHANGE, b)
-};
-mxEditor.prototype.installInsertHandler = function(a) {
-  var b = this;
-  a.addMouseListener({
-    mouseDown: function(a, d) {
-      if (null != b.insertFunction && !d.isPopupTrigger() && (b.forcedInserting || null == d.getState())) b.graph.clearSelection(), b.insertFunction(d.getEvent(), d.getCell()), this.isActive = !
-        0, d.consume()
-    },
-    mouseMove: function(a, b) {
-      this.isActive && b.consume()
-    },
-    mouseUp: function(a, b) {
-      this.isActive && (this.isActive = !1, b.consume())
-    }
-  })
-};
-mxEditor.prototype.createDiagramLayout = function() {
-  var a = this.graph.gridSize,
-    b = new mxStackLayout(this.graph, !this.horizontalFlow, this.swimlaneSpacing, 2 * a, 2 * a);
-  b.isVertexIgnored = function(a) {
-    return !b.graph.isSwimlane(a)
-  };
-  return b
-};
-mxEditor.prototype.createSwimlaneLayout = function() {
-  return new mxCompactTreeLayout(this.graph, this.horizontalFlow)
-};
-mxEditor.prototype.createToolbar = function() {
-  return new mxDefaultToolbar(null, this)
-};
-mxEditor.prototype.setToolbarContainer = function(a) {
-  this.toolbar.init(a);
-  mxClient.IS_QUIRKS && new mxDivResizer(a)
-};
-mxEditor.prototype.setStatusContainer = function(a) {
-  null == this.status && (this.status = a, this.addListener(mxEvent.SAVE, mxUtils.bind(this, function() {
-    var a = (new Date).toLocaleString();
-    this.setStatus((mxResources.get(this.lastSavedResource) || this.lastSavedResource) + ": " + a)
-  })), this.addListener(mxEvent.OPEN, mxUtils.bind(this, function() {
-    this.setStatus((mxResources.get(this.currentFileResource) || this.currentFileResource) + ": " + this.filename)
-  })), mxClient.IS_QUIRKS && new mxDivResizer(a))
-};
-mxEditor.prototype.setStatus = function(a) {
-  null != this.status && null != a && (this.status.innerHTML = a)
-};
-mxEditor.prototype.setTitleContainer = function(a) {
-  this.addListener(mxEvent.ROOT, mxUtils.bind(this, function(b) {
-    a.innerHTML = this.getTitle()
-  }));
-  mxClient.IS_QUIRKS && new mxDivResizer(a)
-};
-mxEditor.prototype.treeLayout = function(a, b) {
-  null != a && (new mxCompactTreeLayout(this.graph, b)).execute(a)
-};
-mxEditor.prototype.getTitle = function() {
-  for (var a = "", b = this.graph, c = b.getCurrentRoot(); null != c && null != b.getModel().getParent(b.getModel().getParent(c));) b.isValidRoot(c) && (a = " \x3e " + b.convertValueToString(c) + a),
-    c = b.getModel().getParent(c);
-  return this.getRootTitle() + a
-};
-mxEditor.prototype.getRootTitle = function() {
-  var a = this.graph.getModel().getRoot();
-  return this.graph.convertValueToString(a)
-};
-mxEditor.prototype.undo = function() {
-  this.undoManager.undo()
-};
-mxEditor.prototype.redo = function() {
-  this.undoManager.redo()
-};
-mxEditor.prototype.groupCells = function() {
-  var a = null != this.groupBorderSize ? this.groupBorderSize : this.graph.gridSize;
-  return this.graph.groupCells(this.createGroup(), a)
-};
-mxEditor.prototype.createGroup = function() {
-  return this.graph.getModel().cloneCell(this.defaultGroup)
-};
-mxEditor.prototype.open = function(a) {
-  if (null != a) {
-    var b = mxUtils.load(a).getXml();
-    this.readGraphModel(b.documentElement);
-    this.filename = a;
-    this.fireEvent(new mxEventObject(mxEvent.OPEN, "filename", a))
-  }
-};
-mxEditor.prototype.readGraphModel = function(a) {
-  (new mxCodec(a.ownerDocument)).decode(a, this.graph.getModel());
-  this.resetHistory()
-};
-mxEditor.prototype.save = function(a, b) {
-  a = a || this.getUrlPost();
-  if (null != a && 0 < a.length) {
-    var c = this.writeGraphModel(b);
-    this.postDiagram(a, c);
-    this.setModified(!1)
-  }
-  this.fireEvent(new mxEventObject(mxEvent.SAVE, "url", a))
-};
-mxEditor.prototype.postDiagram = function(a, b) {
-  this.escapePostData && (b = encodeURIComponent(b));
-  mxUtils.post(a, this.postParameterName + "\x3d" + b, mxUtils.bind(this, function(c) {
-    this.fireEvent(new mxEventObject(mxEvent.POST, "request", c, "url", a, "data", b))
-  }))
-};
-mxEditor.prototype.writeGraphModel = function(a) {
-  a = null != a ? a : this.linefeed;
-  var b = (new mxCodec).encode(this.graph.getModel());
-  return mxUtils.getXml(b, a)
-};
-mxEditor.prototype.getUrlPost = function() {
-  return this.urlPost
-};
-mxEditor.prototype.getUrlImage = function() {
-  return this.urlImage
-};
-mxEditor.prototype.connect = function(a, b, c, d) {
-  var e = null;
-  mxClient.IS_LOCAL || (e = new mxSession(this.graph.getModel(), a, b, c), e.addListener(mxEvent.RECEIVE, mxUtils.bind(this, function(a, b) {
-    null != b.getProperty("node").getAttribute("namespace") && this.resetHistory()
-  })), e.addListener(mxEvent.DISCONNECT, d), e.addListener(mxEvent.CONNECT, d), e.addListener(mxEvent.NOTIFY, d), e.addListener(mxEvent.GET, d), e.start());
-  return e
-};
-mxEditor.prototype.swapStyles = function(a, b) {
-  var c = this.graph.getStylesheet().styles[b];
-  this.graph.getView().getStylesheet().putCellStyle(b, this.graph.getStylesheet().styles[a]);
-  this.graph.getStylesheet().putCellStyle(a, c);
-  this.graph.refresh()
-};
-mxEditor.prototype.showProperties = function(a) {
-  a = a || this.graph.getSelectionCell();
-  null == a && (a = this.graph.getCurrentRoot(), null == a && (a = this.graph.getModel().getRoot()));
-  if (null != a) {
-    this.graph.stopEditing(!0);
-    var b = mxUtils.getOffset(this.graph.container),
-      c = b.x + 10,
-      b = b.y;
-    if (null != this.properties && !this.movePropertiesDialog) c = this.properties.getX(), b = this.properties.getY();
-    else {
-      var d = this.graph.getCellBounds(a);
-      null != d && (c += d.x + Math.min(200, d.width), b += d.y)
-    }
-    this.hideProperties();
-    a = this.createProperties(a);
-    null != a && (this.properties = new mxWindow(mxResources.get(this.propertiesResource) || this.propertiesResource, a, c, b, this.propertiesWidth, this.propertiesHeight, !1), this.properties.setVisible(!
-      0))
-  }
-};
-mxEditor.prototype.isPropertiesVisible = function() {
-  return null != this.properties
-};
-mxEditor.prototype.createProperties = function(a) {
-  var b = this.graph.getModel(),
-    c = b.getValue(a);
-  if (mxUtils.isNode(c)) {
-    var d = new mxForm("properties");
-    d.addText("ID", a.getId()).setAttribute("readonly", "true");
-    var e = null,
-      f = null,
-      g = null,
-      h = null,
-      k = null;
-    b.isVertex(a) && (e = b.getGeometry(a), null != e && (f = d.addText("top", e.y), g = d.addText("left", e.x), h = d.addText("width", e.width), k = d.addText("height", e.height)));
-    for (var l = b.getStyle(a), m = d.addText("Style", l || ""), n = c.attributes, p = [], c = 0; c < n.length; c++) p[c] = d.addTextarea(n[c].nodeName,
-      n[c].nodeValue, "label" == n[c].nodeName ? 4 : 2);
-    c = mxUtils.bind(this, function() {
-      this.hideProperties();
-      b.beginUpdate();
-      try {
-        null != e && (e = e.clone(), e.x = parseFloat(g.value), e.y = parseFloat(f.value), e.width = parseFloat(h.value), e.height = parseFloat(k.value), b.setGeometry(a, e));
-        0 < m.value.length ? b.setStyle(a, m.value) : b.setStyle(a, null);
-        for (var c = 0; c < n.length; c++) {
-          var d = new mxCellAttributeChange(a, n[c].nodeName, p[c].value);
-          b.execute(d)
-        }
-        this.graph.isAutoSizeCell(a) && this.graph.updateCellSize(a)
-      } finally {
-        b.endUpdate()
-      }
-    });
-    l = mxUtils.bind(this, function() {
-      this.hideProperties()
-    });
-    d.addButtons(c, l);
-    return d.table
-  }
-  return null
-};
-mxEditor.prototype.hideProperties = function() {
-  null != this.properties && (this.properties.destroy(), this.properties = null)
-};
-mxEditor.prototype.showTasks = function() {
-  if (null == this.tasks) {
-    var a = document.createElement("div");
-    a.style.padding = "4px";
-    a.style.paddingLeft = "20px";
-    var b = document.body.clientWidth,
-      b = new mxWindow(mxResources.get(this.tasksResource) || this.tasksResource, a, b - 220, this.tasksTop, 200);
-    b.setClosable(!0);
-    b.destroyOnClose = !1;
-    var c = mxUtils.bind(this, function(b) {
-      mxEvent.release(a);
-      a.innerHTML = "";
-      this.createTasks(a)
-    });
-    this.graph.getModel().addListener(mxEvent.CHANGE, c);
-    this.graph.getSelectionModel().addListener(mxEvent.CHANGE,
-      c);
-    this.graph.addListener(mxEvent.ROOT, c);
-    null != this.tasksWindowImage && b.setImage(this.tasksWindowImage);
-    this.tasks = b;
-    this.createTasks(a)
-  }
-  this.tasks.setVisible(!0)
-};
-mxEditor.prototype.refreshTasks = function(a) {
-  null != this.tasks && (a = this.tasks.content, mxEvent.release(a), a.innerHTML = "", this.createTasks(a))
-};
-mxEditor.prototype.createTasks = function(a) {};
-mxEditor.prototype.showHelp = function(a) {
-  if (null == this.help) {
-    var b = document.createElement("iframe");
-    b.setAttribute("src", mxResources.get("urlHelp") || this.urlHelp);
-    b.setAttribute("height", "100%");
-    b.setAttribute("width", "100%");
-    b.setAttribute("frameBorder", "0");
-    b.style.backgroundColor = "white";
-    a = document.body.clientWidth;
-    var c = document.body.clientHeight || document.documentElement.clientHeight,
-      d = new mxWindow(mxResources.get(this.helpResource) || this.helpResource, b, (a - this.helpWidth) / 2, (c - this.helpHeight) /
-        3, this.helpWidth, this.helpHeight);
-    d.setMaximizable(!0);
-    d.setClosable(!0);
-    d.destroyOnClose = !1;
-    d.setResizable(!0);
-    null != this.helpWindowImage && d.setImage(this.helpWindowImage);
-    mxClient.IS_NS && (a = function(a) {
-      b.setAttribute("height", d.div.offsetHeight - 26 + "px")
-    }, d.addListener(mxEvent.RESIZE_END, a), d.addListener(mxEvent.MAXIMIZE, a), d.addListener(mxEvent.NORMALIZE, a), d.addListener(mxEvent.SHOW, a));
-    this.help = d
-  }
-  this.help.setVisible(!0)
-};
-mxEditor.prototype.showOutline = function() {
-  if (null == this.outline) {
-    var a = document.createElement("div");
-    a.style.overflow = "hidden";
-    a.style.width = "100%";
-    a.style.height = "100%";
-    a.style.background = "white";
-    a.style.cursor = "move";
-    var b = new mxWindow(mxResources.get(this.outlineResource) || this.outlineResource, a, 600, 480, 200, 200, !1),
-      c = new mxOutline(this.graph, a);
-    b.setClosable(!0);
-    b.setResizable(!0);
-    b.destroyOnClose = !1;
-    b.addListener(mxEvent.RESIZE_END, function() {
-      c.update()
-    });
-    this.outline = b;
-    this.outline.outline = c
-  }
-  this.outline.setVisible(!0);
-  this.outline.outline.update(!0)
-};
-mxEditor.prototype.setMode = function(a) {
-  "select" == a ? (this.graph.panningHandler.useLeftButtonForPanning = !1, this.graph.setConnectable(!1)) : "connect" == a ? (this.graph.panningHandler.useLeftButtonForPanning = !1, this.graph.setConnectable(!
-    0)) : "pan" == a && (this.graph.panningHandler.useLeftButtonForPanning = !0, this.graph.setConnectable(!1))
-};
-mxEditor.prototype.createPopupMenu = function(a, b, c) {
-  this.popupHandler.createMenu(this, a, b, c)
-};
-mxEditor.prototype.createEdge = function(a, b) {
-  var c = null;
-  if (null != this.defaultEdge) c = this.graph.getModel().cloneCell(this.defaultEdge);
-  else {
-    c = new mxCell("");
-    c.setEdge(!0);
-    var d = new mxGeometry;
-    d.relative = !0;
-    c.setGeometry(d)
-  }
-  d = this.getEdgeStyle();
-  null != d && c.setStyle(d);
-  return c
-};
-mxEditor.prototype.getEdgeStyle = function() {
-  return this.defaultEdgeStyle
-};
-mxEditor.prototype.consumeCycleAttribute = function(a) {
-  return null != this.cycleAttributeValues && 0 < this.cycleAttributeValues.length && this.graph.isSwimlane(a) ? this.cycleAttributeValues[this.cycleAttributeIndex++ % this.cycleAttributeValues.length] :
-    null
-};
-mxEditor.prototype.cycleAttribute = function(a) {
-  if (null != this.cycleAttributeName) {
-    var b = this.consumeCycleAttribute(a);
-    null != b && a.setStyle(a.getStyle() + ";" + this.cycleAttributeName + "\x3d" + b)
-  }
-};
-mxEditor.prototype.addVertex = function(a, b, c, d) {
-  for (var e = this.graph.getModel(); null != a && !this.graph.isValidDropTarget(a);) a = e.getParent(a);
-  a = null != a ? a : this.graph.getSwimlaneAt(c, d);
-  var f = this.graph.getView().scale,
-    g = e.getGeometry(b),
-    h = e.getGeometry(a);
-  if (this.graph.isSwimlane(b) && !this.graph.swimlaneNesting) a = null;
-  else {
-    if (null == a && this.swimlaneRequired) return null;
-    if (null != a && null != h) {
-      var k = this.graph.getView().getState(a);
-      if (null != k) {
-        if (c -= k.origin.x * f, d -= k.origin.y * f, this.graph.isConstrainedMoving) {
-          var h =
-            g.width,
-            l = g.height,
-            m = k.x + k.width;
-          c + h > m && (c -= c + h - m);
-          m = k.y + k.height;
-          d + l > m && (d -= d + l - m)
-        }
-      } else null != h && (c -= h.x * f, d -= h.y * f)
-    }
-  }
-  g = g.clone();
-  g.x = this.graph.snap(c / f - this.graph.getView().translate.x - this.graph.gridSize / 2);
-  g.y = this.graph.snap(d / f - this.graph.getView().translate.y - this.graph.gridSize / 2);
-  b.setGeometry(g);
-  null == a && (a = this.graph.getDefaultParent());
-  this.cycleAttribute(b);
-  this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX, "vertex", b, "parent", a));
-  e.beginUpdate();
-  try {
-    b = this.graph.addCell(b,
-      a), null != b && (this.graph.constrainChild(b), this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX, "vertex", b)))
-  } finally {
-    e.endUpdate()
-  }
-  null != b && (this.graph.setSelectionCell(b), this.graph.scrollCellToVisible(b), this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX, "vertex", b)));
-  return b
-};
-mxEditor.prototype.destroy = function() {
-  this.destroyed || (this.destroyed = !0, null != this.tasks && this.tasks.destroy(), null != this.outline && this.outline.destroy(), null != this.properties && this.properties.destroy(), null !=
-    this.keyHandler && this.keyHandler.destroy(), null != this.rubberband && this.rubberband.destroy(), null != this.toolbar && this.toolbar.destroy(), null != this.graph && this.graph.destroy(),
-    this.templates = this.status = null)
-};
-var mxCodecRegistry = {
-  codecs: [],
-  aliases: [],
-  register: function(a) {
-    if (null != a) {
-      var b = a.getName();
-      mxCodecRegistry.codecs[b] = a;
-      var c = mxUtils.getFunctionName(a.template.constructor);
-      c != b && mxCodecRegistry.addAlias(c, b)
-    }
-    return a
-  },
-  addAlias: function(a, b) {
-    mxCodecRegistry.aliases[a] = b
-  },
-  getCodec: function(a) {
-    var b = null;
-    if (null != a) {
-      var b = mxUtils.getFunctionName(a),
-        c = mxCodecRegistry.aliases[b];
-      null != c && (b = c);
-      b = mxCodecRegistry.codecs[b];
-      if (null == b) try {
-        b = new mxObjectCodec(new a), mxCodecRegistry.register(b)
-      } catch (d) {}
-    }
-    return b
-  }
-};
-
-function mxCodec(a) {
-  this.document = a || mxUtils.createXmlDocument();
-  this.objects = []
-}
-mxCodec.prototype.document = null;
-mxCodec.prototype.objects = null;
-mxCodec.prototype.encodeDefaults = !1;
-mxCodec.prototype.putObject = function(a, b) {
-  return this.objects[a] = b
-};
-mxCodec.prototype.getObject = function(a) {
-  var b = null;
-  null != a && (b = this.objects[a], null == b && (b = this.lookup(a), null == b && (a = this.getElementById(a), null != a && (b = this.decode(a)))));
-  return b
-};
-mxCodec.prototype.lookup = function(a) {
-  return null
-};
-mxCodec.prototype.getElementById = function(a, b) {
-  return mxUtils.findNodeByAttribute(this.document.documentElement, null != b ? b : "id", a)
-};
-mxCodec.prototype.getId = function(a) {
-  var b = null;
-  null != a && (b = this.reference(a), null == b && a instanceof mxCell && (b = a.getId(), null == b && (b = mxCellPath.create(a), 0 == b.length && (b = "root"))));
-  return b
-};
-mxCodec.prototype.reference = function(a) {
-  return null
-};
-mxCodec.prototype.encode = function(a) {
-  var b = null;
-  if (null != a && null != a.constructor) {
-    var c = mxCodecRegistry.getCodec(a.constructor);
-    null != c ? b = c.encode(this, a) : mxUtils.isNode(a) ? b = mxClient.IS_IE ? a.cloneNode(!0) : this.document.importNode(a, !0) : mxLog.warn("mxCodec.encode: No codec for " + mxUtils.getFunctionName(
-      a.constructor))
-  }
-  return b
-};
-mxCodec.prototype.decode = function(a, b) {
-  var c = null;
-  if (null != a && a.nodeType == mxConstants.NODETYPE_ELEMENT) {
-    var d = null;
-    try {
-      d = eval(a.nodeName)
-    } catch (e) {}
-    try {
-      var f = mxCodecRegistry.getCodec(d);
-      null != f ? c = f.decode(this, a, b) : (c = a.cloneNode(!0), c.removeAttribute("as"))
-    } catch (g) {
-      mxLog.debug("Cannot decode " + a.nodeName + ": " + g.message)
-    }
-  }
-  return c
-};
-mxCodec.prototype.encodeCell = function(a, b, c) {
-  b.appendChild(this.encode(a));
-  if (null == c || c) {
-    c = a.getChildCount();
-    for (var d = 0; d < c; d++) this.encodeCell(a.getChildAt(d), b)
-  }
-};
-mxCodec.prototype.isCellCodec = function(a) {
-  return null != a && "function" == typeof a.isCellCodec ? a.isCellCodec() : !1
-};
-mxCodec.prototype.decodeCell = function(a, b) {
-  b = null != b ? b : !0;
-  var c = null;
-  if (null != a && a.nodeType == mxConstants.NODETYPE_ELEMENT) {
-    c = mxCodecRegistry.getCodec(a.nodeName);
-    if (!this.isCellCodec(c))
-      for (var d = a.firstChild; null != d && !this.isCellCodec(c);) c = mxCodecRegistry.getCodec(d.nodeName), d = d.nextSibling;
-    this.isCellCodec(c) || (c = mxCodecRegistry.getCodec(mxCell));
-    c = c.decode(this, a);
-    b && this.insertIntoGraph(c)
-  }
-  return c
-};
-mxCodec.prototype.insertIntoGraph = function(a) {
-  var b = a.parent,
-    c = a.getTerminal(!0),
-    d = a.getTerminal(!1);
-  a.setTerminal(null, !1);
-  a.setTerminal(null, !0);
-  a.parent = null;
-  null != b && b.insert(a);
-  null != c && c.insertEdge(a, !0);
-  null != d && d.insertEdge(a, !1)
-};
-mxCodec.prototype.setAttribute = function(a, b, c) {
-  null != b && null != c && a.setAttribute(b, c)
-};
-
-function mxObjectCodec(a, b, c, d) {
-  this.template = a;
-  this.exclude = null != b ? b : [];
-  this.idrefs = null != c ? c : [];
-  this.mapping = null != d ? d : [];
-  this.reverse = {};
-  for (var e in this.mapping) this.reverse[this.mapping[e]] = e
-}
-mxObjectCodec.prototype.template = null;
-mxObjectCodec.prototype.exclude = null;
-mxObjectCodec.prototype.idrefs = null;
-mxObjectCodec.prototype.mapping = null;
-mxObjectCodec.prototype.reverse = null;
-mxObjectCodec.prototype.getName = function() {
-  return mxUtils.getFunctionName(this.template.constructor)
-};
-mxObjectCodec.prototype.cloneTemplate = function() {
-  return new this.template.constructor
-};
-mxObjectCodec.prototype.getFieldName = function(a) {
-  if (null != a) {
-    var b = this.reverse[a];
-    null != b && (a = b)
-  }
-  return a
-};
-mxObjectCodec.prototype.getAttributeName = function(a) {
-  if (null != a) {
-    var b = this.mapping[a];
-    null != b && (a = b)
-  }
-  return a
-};
-mxObjectCodec.prototype.isExcluded = function(a, b, c, d) {
-  return b == mxObjectIdentity.FIELD_NAME || 0 <= mxUtils.indexOf(this.exclude, b)
-};
-mxObjectCodec.prototype.isReference = function(a, b, c, d) {
-  return 0 <= mxUtils.indexOf(this.idrefs, b)
-};
-mxObjectCodec.prototype.encode = function(a, b) {
-  var c = a.document.createElement(this.getName());
-  b = this.beforeEncode(a, b, c);
-  this.encodeObject(a, b, c);
-  return this.afterEncode(a, b, c)
-};
-mxObjectCodec.prototype.encodeObject = function(a, b, c) {
-  a.setAttribute(c, "id", a.getId(b));
-  for (var d in b) {
-    var e = d,
-      f = b[e];
-    null != f && !this.isExcluded(b, e, f, !0) && (mxUtils.isNumeric(e) && (e = null), this.encodeValue(a, b, e, f, c))
-  }
-};
-mxObjectCodec.prototype.encodeValue = function(a, b, c, d, e) {
-  if (null != d) {
-    if (this.isReference(b, c, d, !0)) {
-      var f = a.getId(d);
-      if (null == f) {
-        mxLog.warn("mxObjectCodec.encode: No ID for " + this.getName() + "." + c + "\x3d" + d);
-        return
-      }
-      d = f
-    }
-    f = this.template[c];
-    if (null == c || a.encodeDefaults || f != d) c = this.getAttributeName(c), this.writeAttribute(a, b, c, d, e)
-  }
-};
-mxObjectCodec.prototype.writeAttribute = function(a, b, c, d, e) {
-  "object" != typeof d ? this.writePrimitiveAttribute(a, b, c, d, e) : this.writeComplexAttribute(a, b, c, d, e)
-};
-mxObjectCodec.prototype.writePrimitiveAttribute = function(a, b, c, d, e) {
-  d = this.convertValueToXml(d);
-  null == c ? (b = a.document.createElement("add"), "function" == typeof d ? b.appendChild(a.document.createTextNode(d)) : a.setAttribute(b, "value", d), e.appendChild(b)) : "function" != typeof d &&
-    a.setAttribute(e, c, d)
-};
-mxObjectCodec.prototype.writeComplexAttribute = function(a, b, c, d, e) {
-  a = a.encode(d);
-  null != a ? (null != c && a.setAttribute("as", c), e.appendChild(a)) : mxLog.warn("mxObjectCodec.encode: No node for " + this.getName() + "." + c + ": " + d)
-};
-mxObjectCodec.prototype.convertValueToXml = function(a) {
-  if ("undefined" == typeof a.length && (!0 == a || !1 == a)) a = !0 == a ? "1" : "0";
-  return a
-};
-mxObjectCodec.prototype.convertValueFromXml = function(a) {
-  mxUtils.isNumeric(a) && (a = parseFloat(a));
-  //
-  // Marco (marco.murdocca@xenialab.it) + Andrea Bianco (andrea.bianco@xcally.com)
-  // 2016-02-24
-  //
-  // mxUtils.isNumeric(a) && (a = ((Number(a) === a) && (a % 1 !== 0)) ? parseFloat(a) : a);
-  return a
-};
-mxObjectCodec.prototype.beforeEncode = function(a, b, c) {
-  return b
-};
-mxObjectCodec.prototype.afterEncode = function(a, b, c) {
-  return c
-};
-mxObjectCodec.prototype.decode = function(a, b, c) {
-  var d = b.getAttribute("id"),
-    e = a.objects[d];
-  null == e && (e = c || this.cloneTemplate(), null != d && a.putObject(d, e));
-  b = this.beforeDecode(a, b, e);
-  this.decodeNode(a, b, e);
-  return this.afterDecode(a, b, e)
-};
-mxObjectCodec.prototype.decodeNode = function(a, b, c) {
-  null != b && (this.decodeAttributes(a, b, c), this.decodeChildren(a, b, c))
-};
-mxObjectCodec.prototype.decodeAttributes = function(a, b, c) {
-  b = b.attributes;
-  if (null != b)
-    for (var d = 0; d < b.length; d++) this.decodeAttribute(a, b[d], c)
-};
-mxObjectCodec.prototype.decodeAttribute = function(a, b, c) {
-  var d = b.nodeName;
-  if ("as" != d && "id" != d) {
-    b = this.convertValueFromXml(b.nodeValue);
-    var e = this.getFieldName(d);
-    if (this.isReference(c, e, b, !1)) {
-      a = a.getObject(b);
-      if (null == a) {
-        mxLog.warn("mxObjectCodec.decode: No object for " + this.getName() + "." + d + "\x3d" + b);
-        return
-      }
-      b = a
-    }
-    this.isExcluded(c, d, b, !1) || (c[d] = b)
-  }
-};
-mxObjectCodec.prototype.decodeChildren = function(a, b, c) {
-  for (b = b.firstChild; null != b;) {
-    var d = b.nextSibling;
-    b.nodeType == mxConstants.NODETYPE_ELEMENT && !this.processInclude(a, b, c) && this.decodeChild(a, b, c);
-    b = d
-  }
-};
-mxObjectCodec.prototype.decodeChild = function(a, b, c) {
-  var d = this.getFieldName(b.getAttribute("as"));
-  if (null == d || !this.isExcluded(c, d, b, !1)) {
-    var e = this.getFieldTemplate(c, d, b),
-      f = null;
-    "add" == b.nodeName ? (f = b.getAttribute("value"), null == f && (f = mxUtils.eval(mxUtils.getTextContent(b)))) : f = a.decode(b, e);
-    this.addObjectValue(c, d, f, e)
-  }
-};
-mxObjectCodec.prototype.getFieldTemplate = function(a, b, c) {
-  a = a[b];
-  a instanceof Array && 0 < a.length && (a = null);
-  return a
-};
-mxObjectCodec.prototype.addObjectValue = function(a, b, c, d) {
-  null != c && c != d && (null != b && 0 < b.length ? a[b] = c : a.push(c))
-};
-mxObjectCodec.prototype.processInclude = function(a, b, c) {
-  if ("include" == b.nodeName) {
-    b = b.getAttribute("name");
-    if (null != b) try {
-      var d = mxUtils.load(b).getDocumentElement();
-      null != d && a.decode(d, c)
-    } catch (e) {}
-    return !0
-  }
-  return !1
-};
-mxObjectCodec.prototype.beforeDecode = function(a, b, c) {
-  return b
-};
-mxObjectCodec.prototype.afterDecode = function(a, b, c) {
-  return c
-};
-mxCodecRegistry.register(function() {
-  var a = new mxObjectCodec(new mxCell, ["children", "edges", "overlays", "mxTransient"], ["parent", "source", "target"]);
-  a.isCellCodec = function() {
-    return !0
-  };
-  a.isExcluded = function(a, c, d, e) {
-    return mxObjectCodec.prototype.isExcluded.apply(this, arguments) || e && "value" == c && d.nodeType == mxConstants.NODETYPE_ELEMENT
-  };
-  a.afterEncode = function(a, c, d) {
-    if (null != c.value && c.value.nodeType == mxConstants.NODETYPE_ELEMENT) {
-      var e = d;
-      d = mxClient.IS_IE ? c.value.cloneNode(!0) : a.document.importNode(c.value, !0);
-      d.appendChild(e);
-      a = e.getAttribute("id");
-      d.setAttribute("id", a);
-      e.removeAttribute("id")
-    }
-    return d
-  };
-  a.beforeDecode = function(a, c, d) {
-    var e = c,
-      f = this.getName();
-    c.nodeName != f ? (e = c.getElementsByTagName(f)[0], null != e && e.parentNode == c ? (mxUtils.removeWhitespace(e, !0), mxUtils.removeWhitespace(e, !1), e.parentNode.removeChild(e)) : e =
-      null, d.value = c.cloneNode(!0), c = d.value.getAttribute("id"), null != c && (d.setId(c), d.value.removeAttribute("id"))) : d.setId(c.getAttribute("id"));
-    if (null != e)
-      for (c = 0; c < this.idrefs.length; c++) {
-        var f =
-          this.idrefs[c],
-          g = e.getAttribute(f);
-        if (null != g) {
-          e.removeAttribute(f);
-          var h = a.objects[g] || a.lookup(g);
-          null == h && (g = a.getElementById(g), null != g && (h = (mxCodecRegistry.codecs[g.nodeName] || this).decode(a, g)));
-          d[f] = h
-        }
-      }
-    return e
-  };
-  return a
-}());
-mxCodecRegistry.register(function() {
-  var a = new mxObjectCodec(new mxGraphModel);
-  a.encodeObject = function(a, c, d) {
-    var e = a.document.createElement("root");
-    a.encodeCell(c.getRoot(), e);
-    d.appendChild(e)
-  };
-  a.decodeChild = function(a, c, d) {
-    "root" == c.nodeName ? this.decodeRoot(a, c, d) : mxObjectCodec.prototype.decodeChild.apply(this, arguments)
-  };
-  a.decodeRoot = function(a, c, d) {
-    var e = null;
-    for (c = c.firstChild; null != c;) {
-      var f = a.decodeCell(c);
-      null != f && null == f.getParent() && (e = f);
-      c = c.nextSibling
-    }
-    null != e && d.setRoot(e)
-  };
-  return a
-}());
-mxCodecRegistry.register(function() {
-  var a = new mxObjectCodec(new mxRootChange, ["model", "previous", "root"]);
-  a.afterEncode = function(a, c, d) {
-    a.encodeCell(c.root, d);
-    return d
-  };
-  a.beforeDecode = function(a, c, d) {
-    if (null != c.firstChild && c.firstChild.nodeType == mxConstants.NODETYPE_ELEMENT) {
-      c = c.cloneNode(!0);
-      var e = c.firstChild;
-      d.root = a.decodeCell(e, !1);
-      d = e.nextSibling;
-      e.parentNode.removeChild(e);
-      for (e = d; null != e;) d = e.nextSibling, a.decodeCell(e), e.parentNode.removeChild(e), e = d
-    }
-    return c
-  };
-  a.afterDecode = function(a, c,
-    d) {
-    d.previous = d.root;
-    return d
-  };
-  return a
-}());
-mxCodecRegistry.register(function() {
-  var a = new mxObjectCodec(new mxChildChange, ["model", "child", "previousIndex"], ["parent", "previous"]);
-  a.isReference = function(a, c, d, e) {
-    return "child" == c && (null != a.previous || !e) ? !0 : 0 <= mxUtils.indexOf(this.idrefs, c)
-  };
-  a.afterEncode = function(a, c, d) {
-    this.isReference(c, "child", c.child, !0) ? d.setAttribute("child", a.getId(c.child)) : a.encodeCell(c.child, d);
-    return d
-  };
-  a.beforeDecode = function(a, c, d) {
-    if (null != c.firstChild && c.firstChild.nodeType == mxConstants.NODETYPE_ELEMENT) {
-      c = c.cloneNode(!0);
-      var e = c.firstChild;
-      d.child = a.decodeCell(e, !1);
-      d = e.nextSibling;
-      e.parentNode.removeChild(e);
-      for (e = d; null != e;) {
-        d = e.nextSibling;
-        if (e.nodeType == mxConstants.NODETYPE_ELEMENT) {
-          var f = e.getAttribute("id");
-          null == a.lookup(f) && a.decodeCell(e)
-        }
-        e.parentNode.removeChild(e);
-        e = d
-      }
-    } else e = c.getAttribute("child"), d.child = a.getObject(e);
-    return c
-  };
-  a.afterDecode = function(a, c, d) {
-    d.child.parent = d.previous;
-    d.previous = d.parent;
-    d.previousIndex = d.index;
-    return d
-  };
-  return a
-}());
-mxCodecRegistry.register(function() {
-  var a = new mxObjectCodec(new mxTerminalChange, ["model", "previous"], ["cell", "terminal"]);
-  a.afterDecode = function(a, c, d) {
-    d.previous = d.terminal;
-    return d
-  };
-  return a
-}());
-var mxGenericChangeCodec = function(a, b) {
-  var c = new mxObjectCodec(a, ["model", "previous"], ["cell"]);
-  c.afterDecode = function(a, c, f) {
-    mxUtils.isNode(f.cell) && (f.cell = a.decodeCell(f.cell, !1));
-    f.previous = f[b];
-    return f
-  };
-  return c
-};
-mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange, "value"));
-mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange, "style"));
-mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange, "geometry"));
-mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange, "collapsed"));
-mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange, "visible"));
-mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange, "value"));
-mxCodecRegistry.register(function() {
-  return new mxObjectCodec(new mxGraph, "graphListeners eventListeners view container cellRenderer editor selection".split(" "))
-}());
-mxCodecRegistry.register(function() {
-  var a = new mxObjectCodec(new mxGraphView);
-  a.encode = function(a, c) {
-    return this.encodeCell(a, c, c.graph.getModel().getRoot())
-  };
-  a.encodeCell = function(a, c, d) {
-    var e = c.graph.getModel(),
-      f = c.getState(d),
-      g = e.getParent(d);
-    if (null == g || null != f) {
-      var h = e.getChildCount(d),
-        k = c.graph.getCellGeometry(d),
-        l = null;
-      g == e.getRoot() ? l = "layer" : null == g ? l = "graph" : e.isEdge(d) ? l = "edge" : 0 < h && null != k ? l = "group" : e.isVertex(d) && (l = "vertex");
-      if (null != l) {
-        var m = a.document.createElement(l);
-        null != c.graph.getLabel(d) &&
-          (m.setAttribute("label", c.graph.getLabel(d)), c.graph.isHtmlLabel(d) && m.setAttribute("html", !0));
-        if (null == g) {
-          var n = c.getGraphBounds();
-          null != n && (m.setAttribute("x", Math.round(n.x)), m.setAttribute("y", Math.round(n.y)), m.setAttribute("width", Math.round(n.width)), m.setAttribute("height", Math.round(n.height)));
-          m.setAttribute("scale", c.scale)
-        } else if (null != f && null != k) {
-          for (n in f.style) g = f.style[n], "function" == typeof g && "object" == typeof g && (g = mxStyleRegistry.getName(g)), null != g && ("function" != typeof g && "object" !=
-            typeof g) && m.setAttribute(n, g);
-          g = f.absolutePoints;
-          if (null != g && 0 < g.length) {
-            k = Math.round(g[0].x) + "," + Math.round(g[0].y);
-            for (n = 1; n < g.length; n++) k += " " + Math.round(g[n].x) + "," + Math.round(g[n].y);
-            m.setAttribute("points", k)
-          } else m.setAttribute("x", Math.round(f.x)), m.setAttribute("y", Math.round(f.y)), m.setAttribute("width", Math.round(f.width)), m.setAttribute("height", Math.round(f.height));
-          n = f.absoluteOffset;
-          null != n && (0 != n.x && m.setAttribute("dx", Math.round(n.x)), 0 != n.y && m.setAttribute("dy", Math.round(n.y)))
-        }
-        for (n =
-          0; n < h; n++) f = this.encodeCell(a, c, e.getChildAt(d, n)), null != f && m.appendChild(f)
-      }
-    }
-    return m
-  };
-  return a
-}());
-mxCodecRegistry.register(function() {
-  var a = new mxObjectCodec(new mxStylesheet);
-  a.encode = function(a, c) {
-    var d = a.document.createElement(this.getName()),
-      e;
-    for (e in c.styles) {
-      var f = c.styles[e],
-        g = a.document.createElement("add");
-      if (null != e) {
-        g.setAttribute("as", e);
-        for (var h in f) {
-          var k = this.getStringValue(h, f[h]);
-          if (null != k) {
-            var l = a.document.createElement("add");
-            l.setAttribute("value", k);
-            l.setAttribute("as", h);
-            g.appendChild(l)
-          }
-        }
-        0 < g.childNodes.length && d.appendChild(g)
-      }
-    }
-    return d
-  };
-  a.getStringValue = function(a,
-    c) {
-    var d = typeof c;
-    "function" == d ? c = mxStyleRegistry.getName(style[j]) : "object" == d && (c = null);
-    return c
-  };
-  a.decode = function(a, c, d) {
-    d = d || new this.template.constructor;
-    var e = c.getAttribute("id");
-    null != e && (a.objects[e] = d);
-    for (c = c.firstChild; null != c;) {
-      if (!this.processInclude(a, c, d) && "add" == c.nodeName && (e = c.getAttribute("as"), null != e)) {
-        var f = c.getAttribute("extend"),
-          g = null != f ? mxUtils.clone(d.styles[f]) : null;
-        null == g && (null != f && mxLog.warn("mxStylesheetCodec.decode: stylesheet " + f + " not found to extend"), g = {});
-        for (f = c.firstChild; null != f;) {
-          if (f.nodeType == mxConstants.NODETYPE_ELEMENT) {
-            var h = f.getAttribute("as");
-            if ("add" == f.nodeName) {
-              var k = mxUtils.getTextContent(f),
-                l = null;
-              null != k && 0 < k.length ? l = mxUtils.eval(k) : (l = f.getAttribute("value"), mxUtils.isNumeric(l) && (l = parseFloat(l)));
-              null != l && (g[h] = l)
-            } else "remove" == f.nodeName && delete g[h]
-          }
-          f = f.nextSibling
-        }
-        d.putCellStyle(e, g)
-      }
-      c = c.nextSibling
-    }
-    return d
-  };
-  return a
-}());
-mxCodecRegistry.register(function() {
-  var a = new mxObjectCodec(new mxDefaultKeyHandler);
-  a.encode = function(a, c) {
-    return null
-  };
-  a.decode = function(a, c, d) {
-    if (null != d)
-      for (c = c.firstChild; null != c;) {
-        if (!this.processInclude(a, c, d) && "add" == c.nodeName) {
-          var e = c.getAttribute("as"),
-            f = c.getAttribute("action"),
-            g = c.getAttribute("control");
-          d.bindAction(e, f, g)
-        }
-        c = c.nextSibling
-      }
-    return d
-  };
-  return a
-}());
-mxCodecRegistry.register(function() {
-  var a = new mxObjectCodec(new mxDefaultToolbar);
-  a.encode = function(a, c) {
-    return null
-  };
-  a.decode = function(a, c, d) {
-    if (null != d) {
-      var e = d.editor;
-      for (c = c.firstChild; null != c;) {
-        if (c.nodeType == mxConstants.NODETYPE_ELEMENT && !this.processInclude(a, c, d))
-          if ("separator" == c.nodeName) d.addSeparator();
-          else if ("br" == c.nodeName) d.toolbar.addBreak();
-        else if ("hr" == c.nodeName) d.toolbar.addLine();
-        else if ("add" == c.nodeName) {
-          var f = c.getAttribute("as"),
-            f = mxResources.get(f) || f,
-            g = c.getAttribute("icon"),
-            h = c.getAttribute("pressedIcon"),
-            k = c.getAttribute("action"),
-            l = c.getAttribute("mode"),
-            m = c.getAttribute("template"),
-            n = "0" != c.getAttribute("toggle"),
-            p = mxUtils.getTextContent(c),
-            q = null;
-          if (null != k) q = d.addItem(f, g, k, h);
-          else if (null != l) var s = mxUtils.eval(p),
-            q = d.addMode(f, g, l, h, s);
-          else if (null != m || null != p && 0 < p.length) q = e.templates[m], m = c.getAttribute("style"), null != q && null != m && (q = q.clone(), q.setStyle(m)), m = null, null != p && 0 <
-            p.length && (m = mxUtils.eval(p)), q = d.addPrototype(f, g, q, h, m, n);
-          else if (h = mxUtils.getChildNodes(c),
-            0 < h.length)
-            if (null == g) {
-              m = d.addActionCombo(f);
-              for (f = 0; f < h.length; f++) n = h[f], "separator" == n.nodeName ? d.addOption(m, "---") : "add" == n.nodeName && (g = n.getAttribute("as"), n = n.getAttribute("action"), d.addActionOption(
-                m, g, n))
-            } else {
-              var r = null,
-                t = d.addPrototype(f, g, function() {
-                  var a = e.templates[r.value];
-                  if (null != a) {
-                    var a = a.clone(),
-                      b = r.options[r.selectedIndex].cellStyle;
-                    null != b && a.setStyle(b);
-                    return a
-                  }
-                  mxLog.warn("Template " + a + " not found");
-                  return null
-                }, null, null, n),
-                r = d.addCombo();
-              mxEvent.addListener(r, "change",
-                function() {
-                  d.toolbar.selectMode(t, function(a) {
-                    a = mxUtils.convertPoint(e.graph.container, mxEvent.getClientX(a), mxEvent.getClientY(a));
-                    return e.addVertex(null, s(), a.x, a.y)
-                  });
-                  d.toolbar.noReset = !1
-                });
-              for (f = 0; f < h.length; f++) n = h[f], "separator" == n.nodeName ? d.addOption(r, "---") : "add" == n.nodeName && (g = n.getAttribute("as"), p = n.getAttribute("template"), d.addOption(
-                r, g, p || m).cellStyle = n.getAttribute("style"))
-            }
-          null != q && (m = c.getAttribute("id"), null != m && 0 < m.length && q.setAttribute("id", m))
-        }
-        c = c.nextSibling
-      }
-    }
-    return d
-  };
-  return a
-}());
-mxCodecRegistry.register(function() {
-  var a = new mxObjectCodec(new mxDefaultPopupMenu);
-  a.encode = function(a, c) {
-    return null
-  };
-  a.decode = function(a, c, d) {
-    var e = c.getElementsByTagName("include")[0];
-    null != e ? this.processInclude(a, e, d) : null != d && (d.config = c);
-    return d
-  };
-  return a
-}());
-mxCodecRegistry.register(function() {
-  var a = new mxObjectCodec(new mxEditor, "modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));
-  a.afterDecode = function(a, c, d) {
-    a = c.getAttribute("defaultEdge");
-    null != a && (c.removeAttribute("defaultEdge"), d.defaultEdge = d.templates[a]);
-    a = c.getAttribute("defaultGroup");
-    null != a && (c.removeAttribute("defaultGroup"), d.defaultGroup = d.templates[a]);
-    return d
-  };
-  a.decodeChild = function(a, c, d) {
-    if ("Array" == c.nodeName) {
-      if ("templates" == c.getAttribute("as")) {
-        this.decodeTemplates(a,
-          c, d);
-        return
-      }
-    } else if ("ui" == c.nodeName) {
-      this.decodeUi(a, c, d);
-      return
-    }
-    mxObjectCodec.prototype.decodeChild.apply(this, arguments)
-  };
-  a.decodeUi = function(a, c, d) {
-    for (a = c.firstChild; null != a;) {
-      if ("add" == a.nodeName) {
-        c = a.getAttribute("as");
-        var e = a.getAttribute("element"),
-          f = a.getAttribute("style"),
-          g = null;
-        if (null != e) g = document.getElementById(e), null != g && null != f && (g.style.cssText += ";" + f);
-        else {
-          var e = parseInt(a.getAttribute("x")),
-            h = parseInt(a.getAttribute("y")),
-            k = a.getAttribute("width"),
-            l = a.getAttribute("height"),
-            g = document.createElement("div");
-          g.style.cssText = f;
-          (new mxWindow(mxResources.get(c) || c, g, e, h, k, l, !1, !0)).setVisible(!0)
-        }
-        "graph" == c ? d.setGraphContainer(g) : "toolbar" == c ? d.setToolbarContainer(g) : "title" == c ? d.setTitleContainer(g) : "status" == c ? d.setStatusContainer(g) : "map" == c && d.setMapContainer(
-          g)
-      } else "resource" == a.nodeName ? mxResources.add(a.getAttribute("basename")) : "stylesheet" == a.nodeName && mxClient.link("stylesheet", a.getAttribute("name"));
-      a = a.nextSibling
-    }
-  };
-  a.decodeTemplates = function(a, c, d) {
-    null == d.templates &&
-      (d.templates = []);
-    c = mxUtils.getChildNodes(c);
-    for (var e = 0; e < c.length; e++) {
-      for (var f = c[e].getAttribute("as"), g = c[e].firstChild; null != g && 1 != g.nodeType;) g = g.nextSibling;
-      null != g && (d.templates[f] = a.decodeCell(g))
-    }
-  };
-  return a
-}());
+var _0x221c=["\x32\x2E\x30\x2E\x30\x2E\x30","\x4D\x53\x49\x45","\x69\x6E\x64\x65\x78\x4F\x66","\x75\x73\x65\x72\x41\x67\x65\x6E\x74","\x4D\x53\x49\x45\x20\x36","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x76","\x6F","\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F","\x4F\x70\x65\x72\x61\x2F","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x34\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x33\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x32\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x31\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x30\x2E","\x50\x72\x65\x73\x74\x6F\x2F\x31\x2E","\x41\x70\x70\x6C\x65\x57\x65\x62\x4B\x69\x74\x2F","\x43\x68\x72\x6F\x6D\x65\x2F","\x46\x69\x72\x65\x66\x6F\x78\x2F","\x46\x69\x72\x65\x66\x6F\x78\x2F\x31\x2E","\x46\x69\x72\x65\x66\x6F\x78\x2F\x32\x2E","\x49\x63\x65\x77\x65\x61\x73\x65\x6C\x2F","\x49\x63\x65\x77\x65\x61\x73\x65\x6C\x2F\x31\x2E","\x49\x63\x65\x77\x65\x61\x73\x65\x6C\x2F\x32\x2E","\x53\x65\x61\x4D\x6F\x6E\x6B\x65\x79\x2F","\x53\x65\x61\x4D\x6F\x6E\x6B\x65\x79\x2F\x31\x2E","\x49\x63\x65\x61\x70\x65\x2F","\x49\x63\x65\x61\x70\x65\x2F\x31\x2E","\x53\x65\x61\x6D\x6F\x6E\x6B\x65\x79\x2F","\x47\x61\x6C\x65\x6F\x6E\x2F","\x45\x70\x69\x70\x68\x61\x6E\x79\x2F","\x47\x65\x63\x6B\x6F\x2F","\x43\x61\x6D\x69\x6E\x6F\x2F\x31\x2E","\x45\x70\x69\x70\x68\x61\x6E\x79\x2F\x32\x2E","\x4D\x6F\x7A\x69\x6C\x6C\x61\x2F\x32\x2E","\x4D\x49\x43\x52\x4F\x53\x4F\x46\x54\x20\x49\x4E\x54\x45\x52\x4E\x45\x54\x20\x45\x58\x50\x4C\x4F\x52\x45\x52","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x61\x70\x70\x4E\x61\x6D\x65","\x4D\x41\x43\x49\x4E\x54\x4F\x53\x48","\x49\x50\x41\x44","\x49\x50\x4F\x44","\x49\x50\x48\x4F\x4E\x45","\x41\x4E\x44\x52\x4F\x49\x44","\x68\x74\x74\x70\x3A\x2F\x2F","\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x68\x74\x74\x70\x73\x3A\x2F\x2F","\x49\x53\x5F\x56\x4D\x4C","\x49\x53\x5F\x53\x56\x47","\x49\x53\x5F\x49\x45\x36","\x3C\x6C\x69\x6E\x6B\x20\x72\x65\x6C\x3D\x22","\x22\x20\x68\x72\x65\x66\x3D\x22","\x22\x20\x63\x68\x61\x72\x73\x65\x74\x3D\x22\x49\x53\x4F\x2D\x38\x38\x35\x39\x2D\x31\x22\x20\x74\x79\x70\x65\x3D\x22\x74\x65\x78\x74\x2F\x63\x73\x73\x22\x2F\x3E","\x77\x72\x69\x74\x65","\x6C\x69\x6E\x6B","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x72\x65\x6C","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x68\x61\x72\x73\x65\x74","\x49\x53\x4F\x2D\x38\x38\x35\x39\x2D\x31","\x74\x79\x70\x65","\x74\x65\x78\x74\x2F\x63\x73\x73","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x68\x65\x61\x64","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x73\x42\x79\x54\x61\x67\x4E\x61\x6D\x65","\x3C\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3D\x22","\x22\x3E\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E","\x6C\x65\x6E\x67\x74\x68","\x6F\x62\x6A\x65\x63\x74\x73","\x6D\x78\x4C\x69\x73\x74\x65\x6E\x65\x72\x4C\x69\x73\x74","\x72\x65\x6D\x6F\x76\x65\x41\x6C\x6C\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x49\x53\x5F\x4F\x50","\x49\x53\x5F\x4F\x54","\x43\x53\x53\x5F\x50\x52\x45\x46\x49\x58","\x4F","\x49\x53\x5F\x53\x46","\x49\x53\x5F\x47\x43","\x57\x65\x62\x6B\x69\x74","\x49\x53\x5F\x4D\x54","\x4D\x6F\x7A","\x49\x53\x5F\x49\x45","\x6D\x73","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x2E\x74\x78\x74","\x2F","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x62\x61\x73\x65\x50\x61\x74\x68","\x2E","\x69\x6D\x61\x67\x65\x42\x61\x73\x65\x50\x61\x74\x68","\x2F\x69\x6D\x61\x67\x65\x73","\x6C\x61\x6E\x67\x75\x61\x67\x65","\x75\x73\x65\x72\x4C\x61\x6E\x67\x75\x61\x67\x65","\x64\x65\x66\x61\x75\x6C\x74\x4C\x61\x6E\x67\x75\x61\x67\x65","\x65\x6E","\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x2F\x63\x73\x73\x2F\x63\x6F\x6D\x6D\x6F\x6E\x2E\x63\x73\x73","\x6C\x61\x6E\x67\x75\x61\x67\x65\x73","\x75\x72\x6E\x3A\x73\x63\x68\x65\x6D\x61\x73\x2D\x6D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2D\x63\x6F\x6D\x3A\x76\x6D\x6C","\x23\x64\x65\x66\x61\x75\x6C\x74\x23\x56\x4D\x4C","\x61\x64\x64","\x6E\x61\x6D\x65\x73\x70\x61\x63\x65\x73","\x75\x72\x6E\x3A\x73\x63\x68\x65\x6D\x61\x73\x2D\x6D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2D\x63\x6F\x6D\x3A\x6F\x66\x66\x69\x63\x65\x3A\x6F\x66\x66\x69\x63\x65","\x63\x72\x65\x61\x74\x65\x53\x74\x79\x6C\x65\x53\x68\x65\x65\x74","\x63\x73\x73\x54\x65\x78\x74","\x76\x5C\x3A\x2A\x7B\x62\x65\x68\x61\x76\x69\x6F\x72\x3A\x75\x72\x6C\x28\x23\x64\x65\x66\x61\x75\x6C\x74\x23\x56\x4D\x4C\x29\x7D\x6F\x5C\x3A\x2A\x7B\x62\x65\x68\x61\x76\x69\x6F\x72\x3A\x75\x72\x6C\x28\x23\x64\x65\x66\x61\x75\x6C\x74\x23\x56\x4D\x4C\x29\x7D","\x2F\x63\x73\x73\x2F\x65\x78\x70\x6C\x6F\x72\x65\x72\x2E\x63\x73\x73","\x6F\x6E\x75\x6E\x6C\x6F\x61\x64","\x64\x69\x73\x70\x6F\x73\x65","\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6E\x74","\x43\x6F\x6E\x73\x6F\x6C\x65","","\x77\x69\x6E\x64\x6F\x77","\x62\x6F\x64\x79","\x63\x6F\x6E\x73\x6F\x6C\x65\x4E\x61\x6D\x65","\x20\x2D\x20\x6D\x78\x47\x72\x61\x70\x68\x20","\x56\x45\x52\x53\x49\x4F\x4E","\x74\x61\x62\x6C\x65","\x77\x69\x64\x74\x68","\x31\x30\x30\x25","\x68\x65\x69\x67\x68\x74","\x74\x62\x6F\x64\x79","\x74\x72","\x74\x64","\x76\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x73\x74\x79\x6C\x65","\x74\x6F\x70","\x74\x65\x78\x74\x61\x72\x65\x61","\x72\x65\x61\x64\x4F\x6E\x6C\x79","\x74\x72\x75\x65","\x72\x65\x73\x69\x7A\x65","\x6E\x6F\x6E\x65","\x76\x61\x6C\x75\x65","\x62\x75\x66\x66\x65\x72","\x49\x53\x5F\x4E\x53","\x42\x61\x63\x6B\x43\x6F\x6D\x70\x61\x74","\x63\x6F\x6D\x70\x61\x74\x4D\x6F\x64\x65","\x39\x39\x25","\x33\x30\x70\x78","\x49\x6E\x66\x6F","\x69\x6E\x66\x6F","\x61\x64\x64\x42\x75\x74\x74\x6F\x6E","\x44\x4F\x4D","\x67\x65\x74\x49\x6E\x6E\x65\x72\x48\x74\x6D\x6C","\x64\x65\x62\x75\x67","\x54\x72\x61\x63\x65","\x54\x52\x41\x43\x45","\x54\x72\x61\x63\x69\x6E\x67\x20\x65\x6E\x61\x62\x6C\x65\x64","\x54\x72\x61\x63\x69\x6E\x67\x20\x64\x69\x73\x61\x62\x6C\x65\x64","\x43\x6F\x70\x79","\x63\x6F\x70\x79","\x61\x6C\x65\x72\x74","\x53\x68\x6F\x77","\x70\x6F\x70\x75\x70","\x43\x6C\x65\x61\x72","\x6E\x75\x6D\x62\x65\x72","\x69\x6E\x6E\x65\x72\x57\x69\x64\x74\x68","\x69\x6E\x6E\x65\x72\x48\x65\x69\x67\x68\x74","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x6D\x61\x78","\x73\x65\x74\x4D\x61\x78\x69\x6D\x69\x7A\x61\x62\x6C\x65","\x73\x65\x74\x53\x63\x72\x6F\x6C\x6C\x61\x62\x6C\x65","\x73\x65\x74\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x73\x65\x74\x43\x6C\x6F\x73\x61\x62\x6C\x65","\x64\x65\x73\x74\x72\x6F\x79\x4F\x6E\x43\x6C\x6F\x73\x65","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x78","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x39\x32\x70\x78","\x77\x72\x69\x74\x65\x6C\x6E","\x62\x75\x74\x74\x6F\x6E","\x63\x6C\x69\x63\x6B","\x69\x73\x56\x69\x73\x69\x62\x6C\x65","\x73\x65\x74\x56\x69\x73\x69\x62\x6C\x65","\x69\x6E\x69\x74","\x45\x6E\x74\x65\x72\x69\x6E\x67\x20","\x67\x65\x74\x54\x69\x6D\x65","\x20\x28","\x20\x6D\x73\x29","\x4C\x65\x61\x76\x69\x6E\x67\x20","\x44\x45\x42\x55\x47","\x61\x70\x70\x6C\x79","\x57\x41\x52\x4E","\x20","\x50\x72\x65\x73\x74\x6F\x2F\x32\x2E\x35","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x68\x69\x64\x64\x65\x6E","\x76\x69\x73\x69\x62\x6C\x65","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74","\x0A","\x6D\x78\x4F\x62\x6A\x65\x63\x74\x49\x64","\x6F\x62\x6A\x65\x63\x74","\x46\x49\x45\x4C\x44\x5F\x4E\x41\x4D\x45","\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x67\x65\x74\x46\x75\x6E\x63\x74\x69\x6F\x6E\x4E\x61\x6D\x65","\x23","\x63\x6F\x75\x6E\x74\x65\x72","\x63\x6C\x65\x61\x72","\x6D\x61\x70","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x67\x65\x74","\x70\x75\x74","\x72\x65\x6D\x6F\x76\x65","\x67\x65\x74\x4B\x65\x79\x73","\x70\x75\x73\x68","\x67\x65\x74\x56\x61\x6C\x75\x65\x73","\x76\x69\x73\x69\x74","\x6C\x6F\x61\x64\x44\x65\x66\x61\x75\x6C\x74\x42\x75\x6E\x64\x6C\x65","\x69\x73\x4C\x61\x6E\x67\x75\x61\x67\x65\x53\x75\x70\x70\x6F\x72\x74\x65\x64","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2D","\x6C\x6F\x61\x64\x53\x70\x65\x63\x69\x61\x6C\x42\x75\x6E\x64\x6C\x65","\x5F","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x4E\x4F\x4E\x45","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x42\x75\x6E\x64\x6C\x65","\x6C\x6F\x61\x64","\x69\x73\x52\x65\x61\x64\x79","\x67\x65\x74\x54\x65\x78\x74","\x70\x61\x72\x73\x65","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x42\x75\x6E\x64\x6C\x65","\x73\x70\x6C\x69\x74","\x63\x68\x61\x72\x41\x74","\x3D","\x63\x68\x61\x72\x43\x6F\x64\x65\x41\x74","\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x45\x6E\x63\x6F\x64\x65\x64","\x25","\x72\x65\x70\x6C\x61\x63\x65","\x72\x65\x73\x6F\x75\x72\x63\x65\x73","\x7B","\x7D","\x6A\x6F\x69\x6E","\x78","\x79","\x65\x71\x75\x61\x6C\x73","\x63\x6C\x6F\x6E\x65","\x63\x61\x6C\x6C","\x73\x65\x74\x52\x65\x63\x74","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x58","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x59","\x6D\x69\x6E","\x67\x72\x6F\x77","\x67\x65\x74\x50\x6F\x69\x6E\x74","\x63\x65\x6C\x6C","\x63\x68\x69\x6C\x64","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x69\x73\x45\x64\x67\x65","\x6D\x6F\x64\x65\x6C","\x6E\x6F\x64\x65","\x73\x68\x61\x70\x65","\x73\x65\x74\x4F\x70\x61\x63\x69\x74\x79","\x73\x63\x61\x6C\x65","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x70\x72\x65\x76\x69\x6F\x75\x73","\x72\x65\x64\x72\x61\x77","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x63\x61\x73\x63\x61\x64\x65\x4F\x70\x61\x63\x69\x74\x79","\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x41\x74","\x67\x65\x74\x45\x64\x67\x65\x73","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x65\x72\x72\x6F\x72","\x63\x6C\x6F\x73\x65","\x2F\x65\x72\x72\x6F\x72\x2E\x67\x69\x66","\x63\x75\x72\x73\x6F\x72","\x63\x68\x69\x6C\x64\x4E\x6F\x64\x65\x73","\x72\x65\x6D\x6F\x76\x65\x43\x75\x72\x73\x6F\x72\x73","\x63\x75\x72\x72\x65\x6E\x74\x53\x74\x79\x6C\x65","\x67\x65\x74\x43\x6F\x6D\x70\x75\x74\x65\x64\x53\x74\x79\x6C\x65","\x67\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x53\x74\x79\x6C\x65","\x73\x63\x72\x6F\x6C\x6C","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x61\x75\x74\x6F","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x76\x61\x72\x20\x5F\x6D\x78\x4A\x61\x76\x61\x53\x63\x72\x69\x70\x74\x45\x78\x70\x72\x65\x73\x73\x69\x6F\x6E\x3D","\x6D\x65\x73\x73\x61\x67\x65","\x20\x77\x68\x69\x6C\x65\x20\x65\x76\x61\x6C\x75\x61\x74\x69\x6E\x67\x20","\x77\x61\x72\x6E","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x66\x69\x6E\x64\x4E\x6F\x64\x65","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x6E\x6F\x64\x65\x54\x79\x70\x65","\x4E\x4F\x44\x45\x54\x59\x50\x45\x5F\x45\x4C\x45\x4D\x45\x4E\x54","\x66\x69\x6E\x64\x4E\x6F\x64\x65\x42\x79\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x2F\x2F\x2A\x5B\x40","\x3D\x27","\x27\x5D","\x73\x65\x6C\x65\x63\x74\x53\x69\x6E\x67\x6C\x65\x4E\x6F\x64\x65","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x69\x74\x65\x72\x61\x74\x65\x4E\x65\x78\x74","\x65\x76\x61\x6C\x75\x61\x74\x65","\x6E\x61\x6D\x65","\x28","\x73\x70\x6C\x69\x63\x65","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x61\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x41\x63\x74\x69\x76\x65\x58\x4F\x62\x6A\x65\x63\x74","\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x58\x4D\x4C\x44\x4F\x4D","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x61\x73\x79\x6E\x63","\x66\x61\x6C\x73\x65","\x6C\x6F\x61\x64\x58\x4D\x4C","\x74\x65\x78\x74\x2F\x78\x6D\x6C","\x70\x61\x72\x73\x65\x46\x72\x6F\x6D\x53\x74\x72\x69\x6E\x67","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x65\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x72\x65\x6D\x6F\x76\x65\x41\x6C\x6C\x52\x61\x6E\x67\x65\x73","\x20\x20","\x4E\x4F\x44\x45\x54\x59\x50\x45\x5F\x54\x45\x58\x54","\x6E\x6F\x64\x65\x56\x61\x6C\x75\x65","\x3C","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x68\x74\x6D\x6C\x45\x6E\x74\x69\x74\x69\x65\x73","\x3D\x22","\x22","\x3E\x0A","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x3C\x2F","\x2F\x3E\x0A","\x70\x72\x65\x76\x69\x6F\x75\x73\x53\x69\x62\x6C\x69\x6E\x67","\x67\x65\x74\x54\x65\x78\x74\x43\x6F\x6E\x74\x65\x6E\x74","\x74\x72\x69\x6D","\x26\x61\x6D\x70\x3B","\x26\x71\x75\x6F\x74\x3B","\x26\x23\x33\x39\x3B","\x26\x6C\x74\x3B","\x26\x67\x74\x3B","\x26\x23\x78\x61\x3B","\x74\x61\x67\x55\x72\x6E","\x78\x6D\x6C","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x73\x65\x72\x69\x61\x6C\x69\x7A\x65\x54\x6F\x53\x74\x72\x69\x6E\x67","\x3E","\x6F\x75\x74\x65\x72\x48\x54\x4D\x4C","\x2F\x3E","\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x4E\x6F\x64\x65","\x62\x72","\x70","\x66\x69\x6C\x74\x65\x72","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x41\x6C\x70\x68\x61\x49\x6D\x61\x67\x65\x4C\x6F\x61\x64\x65\x72\x28\x73\x72\x63\x3D\x27","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66\x27\x2C\x20\x73\x69\x7A\x69\x6E\x67\x4D\x65\x74\x68\x6F\x64\x3D\x27\x73\x63\x61\x6C\x65\x27\x29","\x65\x78\x65\x63\x75\x74\x65","\x73\x70\x61\x6E","\x63\x6F\x6C\x6F\x72","\x62\x6C\x75\x65","\x74\x65\x78\x74\x44\x65\x63\x6F\x72\x61\x74\x69\x6F\x6E","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x70\x6F\x69\x6E\x74\x65\x72","\x70\x61\x64\x64\x69\x6E\x67\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x6C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x55\x6E\x69\x76\x65\x72\x73\x61\x6C\x58\x50\x43\x6F\x6E\x6E\x65\x63\x74","\x65\x6E\x61\x62\x6C\x65\x50\x72\x69\x76\x69\x6C\x65\x67\x65","\x50\x72\x69\x76\x69\x6C\x65\x67\x65\x4D\x61\x6E\x61\x67\x65\x72","\x73\x65\x63\x75\x72\x69\x74\x79","\x50\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x20\x74\x6F\x20\x72\x65\x61\x64\x20\x66\x69\x6C\x65\x20\x64\x65\x6E\x69\x65\x64\x2E","\x6E\x73\x49\x4C\x6F\x63\x61\x6C\x46\x69\x6C\x65","\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x73","\x63\x72\x65\x61\x74\x65\x49\x6E\x73\x74\x61\x6E\x63\x65","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x66\x69\x6C\x65\x2F\x6C\x6F\x63\x61\x6C\x3B\x31","\x63\x6C\x61\x73\x73\x65\x73","\x69\x6E\x69\x74\x57\x69\x74\x68\x50\x61\x74\x68","\x65\x78\x69\x73\x74\x73","\x46\x69\x6C\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x2E","\x6E\x73\x49\x46\x69\x6C\x65\x49\x6E\x70\x75\x74\x53\x74\x72\x65\x61\x6D","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x66\x69\x6C\x65\x2D\x69\x6E\x70\x75\x74\x2D\x73\x74\x72\x65\x61\x6D\x3B\x31","\x6E\x73\x49\x53\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x49\x6E\x70\x75\x74\x53\x74\x72\x65\x61\x6D","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x73\x63\x72\x69\x70\x74\x61\x62\x6C\x65\x69\x6E\x70\x75\x74\x73\x74\x72\x65\x61\x6D\x3B\x31","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x72\x65\x61\x64","\x53\x63\x72\x69\x70\x74\x69\x6E\x67\x2E\x46\x69\x6C\x65\x53\x79\x73\x74\x65\x6D\x4F\x62\x6A\x65\x63\x74","\x72\x65\x61\x64\x41\x6C\x6C","\x50\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x20\x74\x6F\x20\x77\x72\x69\x74\x65\x20\x66\x69\x6C\x65\x20\x64\x65\x6E\x69\x65\x64\x2E","\x63\x72\x65\x61\x74\x65","\x6E\x73\x49\x46\x69\x6C\x65\x4F\x75\x74\x70\x75\x74\x53\x74\x72\x65\x61\x6D","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x66\x69\x6C\x65\x2D\x6F\x75\x74\x70\x75\x74\x2D\x73\x74\x72\x65\x61\x6D\x3B\x31","\x66\x6C\x75\x73\x68","\x69\x66\x72\x61\x6D\x65","\x73\x72\x63","\x63\x6F\x6E\x74\x65\x6E\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6F\x70\x65\x6E","\x66\x6F\x63\x75\x73","\x50\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x20\x74\x6F\x20\x73\x61\x76\x65\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x20\x64\x65\x6E\x69\x65\x64\x2E","\x64\x6F\x63\x75\x6D\x65\x6E\x74","\x63\x6F\x6E\x74\x65\x6E\x74\x57\x69\x6E\x64\x6F\x77","\x53\x61\x76\x65\x41\x73","\x65\x78\x65\x63\x43\x6F\x6D\x6D\x61\x6E\x64","\x63\x6C\x69\x70\x62\x6F\x61\x72\x64\x44\x61\x74\x61","\x54\x65\x78\x74","\x73\x65\x74\x44\x61\x74\x61","\x6E\x73\x49\x43\x6C\x69\x70\x62\x6F\x61\x72\x64","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x77\x69\x64\x67\x65\x74\x2F\x63\x6C\x69\x70\x62\x6F\x61\x72\x64\x3B\x31","\x6E\x73\x49\x54\x72\x61\x6E\x73\x66\x65\x72\x61\x62\x6C\x65","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x77\x69\x64\x67\x65\x74\x2F\x74\x72\x61\x6E\x73\x66\x65\x72\x61\x62\x6C\x65\x3B\x31","\x74\x65\x78\x74\x2F\x75\x6E\x69\x63\x6F\x64\x65","\x61\x64\x64\x44\x61\x74\x61\x46\x6C\x61\x76\x6F\x72","\x6E\x73\x49\x53\x75\x70\x70\x6F\x72\x74\x73\x53\x74\x72\x69\x6E\x67","\x40\x6D\x6F\x7A\x69\x6C\x6C\x61\x2E\x6F\x72\x67\x2F\x73\x75\x70\x70\x6F\x72\x74\x73\x2D\x73\x74\x72\x69\x6E\x67\x3B\x31","\x64\x61\x74\x61","\x73\x65\x74\x54\x72\x61\x6E\x73\x66\x65\x72\x44\x61\x74\x61","\x6B\x47\x6C\x6F\x62\x61\x6C\x43\x6C\x69\x70\x62\x6F\x61\x72\x64","\x47\x45\x54","\x73\x65\x6E\x64","\x73\x69\x6D\x75\x6C\x61\x74\x65","\x6F\x6E\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6E\x67\x65","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x20\x3D\x20\x5B\x6E\x75\x6C\x6C\x5D\x0A","\x20\x3D\x3E\x20\x5B\x46\x75\x6E\x63\x74\x69\x6F\x6E\x5D\x0A","\x20\x3D\x3E\x20\x5B","\x5D\x0A","\x20\x3D\x20","\x50\x49","\x61\x62\x73","\x63\x6F\x73","\x73\x69\x6E","\x73\x71\x72\x74","\x61\x74\x61\x6E\x32","\x63\x65\x69\x6C","\x74\x6F\x52\x61\x64\x69\x61\x6E\x73","\x67\x65\x74\x52\x6F\x74\x61\x74\x65\x64\x50\x6F\x69\x6E\x74","\x67\x65\x74\x56\x61\x6C\x75\x65","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x4E\x4F\x4E\x45","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x4E\x4F\x52\x54\x48","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x57\x45\x53\x54","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x53\x4F\x55\x54\x48","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x45\x41\x53\x54","\x61\x62\x73\x6F\x6C\x75\x74\x65\x50\x6F\x69\x6E\x74\x73","\x70\x74\x53\x65\x67\x44\x69\x73\x74\x53\x71","\x76\x69\x65\x77","\x63\x6F\x6E\x74\x61\x69\x6E\x73","\x6F\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x53\x63\x72\x6F\x6C\x6C\x4F\x72\x69\x67\x69\x6E","\x67\x65\x74\x4F\x66\x66\x73\x65\x74","\x5E\x5B","\x5C\x73","\x5D\x2B","\x67","\x5B","\x5D\x2B\x24","\x72\x74\x72\x69\x6D","\x6C\x74\x72\x69\x6D","\x30\x78","\x30\x58","\x61\x6E\x69\x6D\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x73","\x66\x61\x64\x65\x4F\x75\x74","\x69\x73\x56\x6D\x6C","\x61\x6C\x70\x68\x61\x28\x6F\x70\x61\x63\x69\x74\x79\x3D","\x29","\x6F\x70\x61\x63\x69\x74\x79","\x43\x53\x53\x31\x43\x6F\x6D\x70\x61\x74","\x56\x4D\x4C\x5F\x50\x52\x45\x46\x49\x58","\x3A\x69\x6D\x61\x67\x65","\x62\x6F\x72\x64\x65\x72\x53\x74\x79\x6C\x65","\x69\x6D\x67","\x62\x6F\x72\x64\x65\x72","\x30","\x63\x6F\x6D\x70\x61\x72\x65","\x73\x6F\x72\x74","\x3B","\x69\x6E\x64\x65\x78\x4F\x66\x53\x74\x79\x6C\x65\x6E\x61\x6D\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x53\x74\x79\x6C\x65","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x65\x74\x53\x74\x79\x6C\x65\x46\x6C\x61\x67","\x3D\x30","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x44\x45\x46\x41\x55\x4C\x54\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x44\x45\x46\x41\x55\x4C\x54\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x64\x69\x76","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x72\x6F\x75\x6E\x64","\x6C\x69\x6E\x65\x48\x65\x69\x67\x68\x74","\x4C\x49\x4E\x45\x5F\x48\x45\x49\x47\x48\x54","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x6E\x6F\x77\x72\x61\x70","\x64\x69\x73\x70\x6C\x61\x79","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x69\x6E\x6C\x69\x6E\x65","\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B","\x7A\x6F\x6F\x6D","\x31","\x67\x65\x74\x52\x6F\x6F\x74","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x69\x73\x45\x76\x65\x6E\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x76\x65\x6E\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x64\x72\x61\x77\x50\x61\x6E\x65","\x6F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x4E\x53","\x63\x61\x6E\x76\x61\x73","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x67\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x65\x6E\x63\x6F\x64\x65","\x64\x65\x73\x74\x72\x6F\x79","\x50\x41\x47\x45\x5F\x46\x4F\x52\x4D\x41\x54\x5F\x41\x34\x5F\x50\x4F\x52\x54\x52\x41\x49\x54","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x63\x61\x6C\x65","\x66\x6C\x6F\x6F\x72","\x3C\x68\x74\x6D\x6C\x3E\x3C\x68\x65\x61\x64\x3E","\x62\x61\x73\x65","\x3C\x73\x74\x79\x6C\x65\x3E","\x73\x74\x79\x6C\x65\x53\x68\x65\x65\x74\x73","\x3C\x2F\x73\x74\x79\x6C\x65\x3E\x3C\x2F\x68\x65\x61\x64\x3E","\x3C\x62\x6F\x64\x79\x3E","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x3C\x2F\x62\x6F\x64\x79\x3E","\x3C\x68\x74\x6D\x6C\x3E","\x44\x49\x56","\x3C\x68\x74\x6D\x6C","\x3C\x68\x65\x61\x64\x3E","\x67\x65\x74\x4F\x75\x74\x65\x72\x48\x74\x6D\x6C","\x3C\x2F\x68\x65\x61\x64\x3E","\x3C\x2F\x68\x74\x6D\x6C\x3E","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x2C","\x6F\x77\x6E\x65\x72\x53\x56\x47\x45\x6C\x65\x6D\x65\x6E\x74","\x73\x68\x6F\x77","\x70\x72\x69\x6E\x74","\x36\x33\x36\x70\x78","\x34\x36\x30\x70\x78","\x70\x72\x65","\x26\x6E\x62\x73\x70\x3B","\x3C\x62\x72\x3E","\x50\x6F\x70\x75\x70\x20\x57\x69\x6E\x64\x6F\x77","\x3C\x70\x72\x65\x3E","\x3C\x2F\x70\x72\x65","\x70\x61\x64\x64\x69\x6E\x67","\x32\x30\x70\x78","\x65\x72\x72\x6F\x72\x49\x6D\x61\x67\x65","\x76\x61\x6C\x69\x67\x6E","\x62\x6F\x74\x74\x6F\x6D","\x6D\x69\x64\x64\x6C\x65","\xA0","\x65\x72\x72\x6F\x72\x52\x65\x73\x6F\x75\x72\x63\x65","\x66\x6C\x6F\x61\x74\x3A\x72\x69\x67\x68\x74","\x63\x6C\x6F\x73\x65\x52\x65\x73\x6F\x75\x72\x63\x65","\x64\x72\x61\x67\x4F\x66\x66\x73\x65\x74","\x54\x4F\x4F\x4C\x54\x49\x50\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x4F\x46\x46\x53\x45\x54","\x61\x75\x74\x6F\x73\x63\x72\x6F\x6C\x6C","\x73\x65\x74\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x68\x69\x67\x68\x6C\x69\x67\x68\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74\x73","\x67\x65\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x67\x65\x74\x47\x72\x61\x70\x68\x46\x6F\x72\x45\x76\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x50\x72\x65\x76\x69\x65\x77\x45\x6C\x65\x6D\x65\x6E\x74","\x65\x78\x61\x63\x74","\x66\x61\x73\x74\x65\x72","\x66\x61\x73\x74\x65\x73\x74","\x73\x76\x67","\x76\x6D\x6C","\x6D\x69\x78\x65\x64\x48\x74\x6D\x6C","\x70\x72\x65\x66\x65\x72\x48\x74\x6D\x6C","\x73\x74\x72\x69\x63\x74\x48\x74\x6D\x6C","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x32\x30\x30\x30\x2F\x73\x76\x67","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x31\x39\x39\x39\x2F\x78\x68\x74\x6D\x6C","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x31\x39\x39\x39\x2F\x78\x6C\x69\x6E\x6B","\x67\x72\x61\x79","\x23\x30\x30\x46\x46\x30\x30","\x23\x46\x46\x30\x30\x30\x30","\x6D\x6F\x76\x65","\x64\x65\x66\x61\x75\x6C\x74","\x23\x30\x30\x30\x30\x46\x46","\x23\x30\x30\x39\x39\x46\x46","\x62\x6C\x61\x63\x6B","\x79\x65\x6C\x6C\x6F\x77","\x23\x30\x30\x46\x46\x46\x46","\x23\x30\x30\x33\x33\x46\x46","\x41\x72\x69\x61\x6C\x2C\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x70\x65\x72\x69\x6D\x65\x74\x65\x72","\x73\x6F\x75\x72\x63\x65\x50\x6F\x72\x74","\x74\x61\x72\x67\x65\x74\x50\x6F\x72\x74","\x70\x6F\x72\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x74\x65\x78\x74\x4F\x70\x61\x63\x69\x74\x79","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C","\x65\x78\x69\x74\x58","\x65\x78\x69\x74\x59","\x65\x78\x69\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x65\x6E\x74\x72\x79\x58","\x65\x6E\x74\x72\x79\x59","\x65\x6E\x74\x72\x79\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x66\x69\x6C\x6C\x43\x6F\x6C\x6F\x72","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x46\x69\x6C\x6C\x43\x6F\x6C\x6F\x72","\x67\x72\x61\x64\x69\x65\x6E\x74\x43\x6F\x6C\x6F\x72","\x67\x72\x61\x64\x69\x65\x6E\x74\x44\x69\x72\x65\x63\x74\x69\x6F\x6E","\x73\x74\x72\x6F\x6B\x65\x43\x6F\x6C\x6F\x72","\x73\x65\x70\x61\x72\x61\x74\x6F\x72\x43\x6F\x6C\x6F\x72","\x73\x74\x72\x6F\x6B\x65\x57\x69\x64\x74\x68","\x61\x6C\x69\x67\x6E","\x6C\x61\x62\x65\x6C\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x65\x72\x74\x69\x63\x61\x6C\x4C\x61\x62\x65\x6C\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x69\x6D\x61\x67\x65\x41\x73\x70\x65\x63\x74","\x69\x6D\x61\x67\x65\x41\x6C\x69\x67\x6E","\x69\x6D\x61\x67\x65\x56\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x67\x6C\x61\x73\x73","\x69\x6D\x61\x67\x65","\x69\x6D\x61\x67\x65\x57\x69\x64\x74\x68","\x69\x6D\x61\x67\x65\x48\x65\x69\x67\x68\x74","\x69\x6D\x61\x67\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x69\x6D\x61\x67\x65\x42\x6F\x72\x64\x65\x72","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x6E\x6F\x4C\x61\x62\x65\x6C","\x6E\x6F\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x61\x62\x65\x6C\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x6C\x61\x62\x65\x6C\x42\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x6C\x61\x62\x65\x6C\x50\x61\x64\x64\x69\x6E\x67","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x68\x61\x70\x65","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x49\x6D\x61\x67\x65","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x43\x6F\x6C\x6F\x72","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x74\x72\x6F\x6B\x65\x43\x6F\x6C\x6F\x72","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x47\x72\x61\x64\x69\x65\x6E\x74\x43\x6F\x6C\x6F\x72","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x70\x61\x63\x69\x6E\x67","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x57\x69\x64\x74\x68","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x48\x65\x69\x67\x68\x74","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x44\x69\x72\x65\x63\x74\x69\x6F\x6E","\x73\x68\x61\x64\x6F\x77","\x73\x65\x67\x6D\x65\x6E\x74","\x65\x6E\x64\x41\x72\x72\x6F\x77","\x73\x74\x61\x72\x74\x41\x72\x72\x6F\x77","\x65\x6E\x64\x53\x69\x7A\x65","\x73\x74\x61\x72\x74\x53\x69\x7A\x65","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x4C\x69\x6E\x65","\x65\x6E\x64\x46\x69\x6C\x6C","\x73\x74\x61\x72\x74\x46\x69\x6C\x6C","\x64\x61\x73\x68\x65\x64","\x64\x61\x73\x68\x50\x61\x74\x74\x65\x72\x6E","\x72\x6F\x75\x6E\x64\x65\x64","\x63\x75\x72\x76\x65\x64","\x61\x72\x63\x53\x69\x7A\x65","\x73\x6D\x6F\x6F\x74\x68","\x73\x6F\x75\x72\x63\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x53\x70\x61\x63\x69\x6E\x67","\x74\x61\x72\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x53\x70\x61\x63\x69\x6E\x67","\x70\x65\x72\x69\x6D\x65\x74\x65\x72\x53\x70\x61\x63\x69\x6E\x67","\x73\x70\x61\x63\x69\x6E\x67","\x73\x70\x61\x63\x69\x6E\x67\x54\x6F\x70","\x73\x70\x61\x63\x69\x6E\x67\x4C\x65\x66\x74","\x73\x70\x61\x63\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x73\x70\x61\x63\x69\x6E\x67\x52\x69\x67\x68\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x65\x6C\x62\x6F\x77","\x66\x6F\x6E\x74\x43\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x53\x74\x79\x6C\x65","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x66\x6F\x6C\x64\x61\x62\x6C\x65","\x65\x64\x69\x74\x61\x62\x6C\x65","\x62\x65\x6E\x64\x61\x62\x6C\x65","\x6D\x6F\x76\x61\x62\x6C\x65","\x72\x65\x73\x69\x7A\x61\x62\x6C\x65","\x63\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x64\x65\x6C\x65\x74\x61\x62\x6C\x65","\x65\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x6F\x6F\x70\x53\x74\x79\x6C\x65","\x72\x6F\x75\x74\x69\x6E\x67\x43\x65\x6E\x74\x65\x72\x58","\x72\x6F\x75\x74\x69\x6E\x67\x43\x65\x6E\x74\x65\x72\x59","\x72\x65\x63\x74\x61\x6E\x67\x6C\x65","\x65\x6C\x6C\x69\x70\x73\x65","\x64\x6F\x75\x62\x6C\x65\x45\x6C\x6C\x69\x70\x73\x65","\x72\x68\x6F\x6D\x62\x75\x73","\x6C\x69\x6E\x65","\x61\x72\x72\x6F\x77","\x6C\x61\x62\x65\x6C","\x63\x79\x6C\x69\x6E\x64\x65\x72","\x73\x77\x69\x6D\x6C\x61\x6E\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72","\x61\x63\x74\x6F\x72","\x63\x6C\x6F\x75\x64","\x74\x72\x69\x61\x6E\x67\x6C\x65","\x68\x65\x78\x61\x67\x6F\x6E","\x63\x6C\x61\x73\x73\x69\x63","\x62\x6C\x6F\x63\x6B","\x6F\x76\x61\x6C","\x64\x69\x61\x6D\x6F\x6E\x64","\x64\x69\x61\x6D\x6F\x6E\x64\x54\x68\x69\x6E","\x63\x65\x6E\x74\x65\x72","\x72\x69\x67\x68\x74","\x6E\x6F\x72\x74\x68","\x73\x6F\x75\x74\x68","\x65\x61\x73\x74","\x77\x65\x73\x74","\x76\x65\x72\x74\x69\x63\x61\x6C","\x65\x6C\x62\x6F\x77\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x6F\x6F\x70\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x73\x69\x64\x65\x54\x6F\x53\x69\x64\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x74\x6F\x70\x54\x6F\x42\x6F\x74\x74\x6F\x6D\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x73\x65\x67\x6D\x65\x6E\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x65\x6C\x6C\x69\x70\x73\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x72\x65\x63\x74\x61\x6E\x67\x6C\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x72\x68\x6F\x6D\x62\x75\x73\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x74\x72\x69\x61\x6E\x67\x6C\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x63\x6F\x6E\x73\x75\x6D\x65\x64","\x67\x65\x74\x4E\x61\x6D\x65","\x67\x65\x74\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x67\x65\x74\x50\x72\x6F\x70\x65\x72\x74\x79","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x63\x6F\x6E\x73\x75\x6D\x65","\x65\x76\x74","\x73\x74\x61\x74\x65","\x67\x72\x61\x70\x68\x58","\x67\x72\x61\x70\x68\x59","\x67\x65\x74\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x6F\x75\x72\x63\x65","\x69\x73\x53\x6F\x75\x72\x63\x65","\x67\x65\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x59","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x67\x65\x74\x43\x65\x6C\x6C","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74","\x72\x65\x74\x75\x72\x6E\x56\x61\x6C\x75\x65","\x73\x65\x74\x45\x76\x65\x6E\x74\x53\x6F\x75\x72\x63\x65","\x65\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x65\x76\x65\x6E\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x65\x76\x65\x6E\x74\x53\x6F\x75\x72\x63\x65","\x67\x65\x74\x45\x76\x65\x6E\x74\x53\x6F\x75\x72\x63\x65","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x6F\x6E","\x66","\x72\x65\x6D\x6F\x76\x65\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x64\x65\x74\x61\x63\x68\x45\x76\x65\x6E\x74","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x75\x70","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x74\x6F\x75\x63\x68\x73\x74\x61\x72\x74","\x74\x6F\x75\x63\x68\x6D\x6F\x76\x65","\x74\x6F\x75\x63\x68\x65\x6E\x64","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x64\x62\x6C\x63\x6C\x69\x63\x6B","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x72\x65\x6C\x65\x61\x73\x65","\x65\x76\x65\x6E\x74","\x64\x65\x74\x61\x69\x6C","\x77\x68\x65\x65\x6C\x44\x65\x6C\x74\x61","\x6D\x6F\x75\x73\x65\x77\x68\x65\x65\x6C","\x44\x4F\x4D\x4D\x6F\x75\x73\x65\x53\x63\x72\x6F\x6C\x6C","\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x6F\x6E\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B","\x73\x72\x63\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x61\x72\x67\x65\x74","\x69\x73\x52\x69\x67\x68\x74\x4D\x6F\x75\x73\x65\x42\x75\x74\x74\x6F\x6E","\x69\x73\x53\x68\x69\x66\x74\x44\x6F\x77\x6E","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x73\x68\x69\x66\x74\x4B\x65\x79","\x61\x6C\x74\x4B\x65\x79","\x63\x74\x72\x6C\x4B\x65\x79","\x6D\x65\x74\x61\x4B\x65\x79","\x74\x6F\x75\x63\x68\x65\x73","\x63\x68\x61\x6E\x67\x65\x64\x54\x6F\x75\x63\x68\x65\x73","\x63\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x4D\x61\x69\x6E\x45\x76\x65\x6E\x74","\x63\x6C\x69\x65\x6E\x74\x59","\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E","\x63\x61\x6E\x63\x65\x6C\x42\x75\x62\x62\x6C\x65","\x6D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x6D\x6F\x75\x73\x65\x4D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x55\x70","\x61\x63\x74\x69\x76\x61\x74\x65","\x72\x65\x73\x69\x7A\x65\x53\x74\x61\x72\x74","\x72\x65\x73\x69\x7A\x65\x45\x6E\x64","\x6D\x6F\x76\x65\x53\x74\x61\x72\x74","\x6D\x6F\x76\x65\x45\x6E\x64","\x70\x61\x6E\x53\x74\x61\x72\x74","\x70\x61\x6E","\x70\x61\x6E\x45\x6E\x64","\x6D\x69\x6E\x69\x6D\x69\x7A\x65","\x6E\x6F\x72\x6D\x61\x6C\x69\x7A\x65","\x6D\x61\x78\x69\x6D\x69\x7A\x65","\x68\x69\x64\x65","\x72\x65\x66\x72\x65\x73\x68","\x73\x69\x7A\x65","\x73\x65\x6C\x65\x63\x74","\x66\x69\x72\x65\x64","\x72\x65\x63\x65\x69\x76\x65","\x63\x6F\x6E\x6E\x65\x63\x74","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x75\x73\x70\x65\x6E\x64","\x72\x65\x73\x75\x6D\x65","\x6D\x61\x72\x6B","\x73\x65\x73\x73\x69\x6F\x6E","\x72\x6F\x6F\x74","\x70\x6F\x73\x74","\x73\x61\x76\x65","\x62\x65\x66\x6F\x72\x65\x41\x64\x64\x56\x65\x72\x74\x65\x78","\x61\x64\x64\x56\x65\x72\x74\x65\x78","\x61\x66\x74\x65\x72\x41\x64\x64\x56\x65\x72\x74\x65\x78","\x64\x6F\x6E\x65","\x65\x78\x65\x63\x75\x74\x65\x64","\x73\x74\x61\x72\x74\x45\x64\x69\x74","\x65\x6E\x64\x45\x64\x69\x74","\x62\x65\x66\x6F\x72\x65\x55\x6E\x64\x6F","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x68\x61\x6E\x67\x65","\x6E\x6F\x74\x69\x66\x79","\x6C\x61\x79\x6F\x75\x74\x43\x65\x6C\x6C\x73","\x73\x63\x61\x6C\x65\x41\x6E\x64\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x75\x70","\x64\x6F\x77\x6E","\x61\x64\x64\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x41\x64\x64\x65\x64","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x4D\x6F\x76\x65\x64","\x72\x65\x73\x69\x7A\x65\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x52\x65\x73\x69\x7A\x65\x64","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x54\x6F\x67\x67\x6C\x65\x64","\x6F\x72\x64\x65\x72\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x4F\x72\x64\x65\x72\x65\x64","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x52\x65\x6D\x6F\x76\x65\x64","\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x75\x6E\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x63\x65\x6C\x6C\x73\x46\x6F\x6C\x64\x65\x64","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73","\x6C\x61\x62\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x43\x65\x6C\x6C","\x63\x65\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x73\x70\x6C\x69\x74\x45\x64\x67\x65","\x66\x6C\x69\x70\x45\x64\x67\x65","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67","\x61\x64\x64\x4F\x76\x65\x72\x6C\x61\x79","\x72\x65\x6D\x6F\x76\x65\x4F\x76\x65\x72\x6C\x61\x79","\x75\x70\x64\x61\x74\x65\x43\x65\x6C\x6C\x53\x69\x7A\x65","\x65\x73\x63\x61\x70\x65","\x64\x6F\x75\x62\x6C\x65\x43\x6C\x69\x63\x6B","\x73\x74\x61\x72\x74","\x72\x65\x73\x65\x74","\x75\x72\x6C","\x70\x61\x72\x61\x6D\x73","\x6D\x65\x74\x68\x6F\x64","\x50\x4F\x53\x54","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x62\x69\x6E\x61\x72\x79","\x72\x65\x71\x75\x65\x73\x74","\x69\x73\x42\x69\x6E\x61\x72\x79","\x73\x65\x74\x42\x69\x6E\x61\x72\x79","\x72\x65\x73\x70\x6F\x6E\x73\x65\x54\x65\x78\x74","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x58\x6D\x6C","\x72\x65\x73\x70\x6F\x6E\x73\x65\x58\x4D\x4C","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73","\x58\x4D\x4C\x48\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74","\x6F\x76\x65\x72\x72\x69\x64\x65\x4D\x69\x6D\x65\x54\x79\x70\x65","\x74\x65\x78\x74\x2F\x70\x6C\x61\x69\x6E\x3B\x20\x63\x68\x61\x72\x73\x65\x74\x3D\x78\x2D\x75\x73\x65\x72\x2D\x64\x65\x66\x69\x6E\x65\x64","\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x58\x4D\x4C\x48\x54\x54\x50","\x6F\x6E\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x61\x6E\x67\x65","\x62\x69\x6E\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x6F\x6E\x62\x65\x66\x6F\x72\x65\x75\x6E\x6C\x6F\x61\x64","\x66\x6F\x72\x6D","\x61\x63\x74\x69\x6F\x6E","\x26","\x73\x75\x62\x6D\x69\x74","\x63\x65\x6C\x6C\x73","\x69\x6E\x73\x65\x72\x74\x43\x6F\x75\x6E\x74","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x67\x65\x74\x45\x78\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C\x73","\x67\x65\x74\x49\x6D\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x53\x54\x45\x50\x53\x49\x5A\x45","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x69\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x73\x74\x61\x6C\x6C\x4D\x61\x78\x69\x6D\x69\x7A\x65\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x4D\x69\x6E\x69\x6D\x69\x7A\x65\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x43\x6C\x6F\x73\x65\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x4D\x69\x6E\x69\x6D\x69\x7A\x61\x62\x6C\x65","\x73\x65\x74\x54\x69\x74\x6C\x65","\x69\x6E\x73\x74\x61\x6C\x6C\x4D\x6F\x76\x65\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x70\x6C\x61\x63\x65\x43\x68\x69\x6C\x64","\x63\x6C\x6F\x73\x65\x49\x6D\x61\x67\x65","\x2F\x63\x6C\x6F\x73\x65\x2E\x67\x69\x66","\x6D\x69\x6E\x69\x6D\x69\x7A\x65\x49\x6D\x61\x67\x65","\x2F\x6D\x69\x6E\x69\x6D\x69\x7A\x65\x2E\x67\x69\x66","\x6E\x6F\x72\x6D\x61\x6C\x69\x7A\x65\x49\x6D\x61\x67\x65","\x2F\x6E\x6F\x72\x6D\x61\x6C\x69\x7A\x65\x2E\x67\x69\x66","\x6D\x61\x78\x69\x6D\x69\x7A\x65\x49\x6D\x61\x67\x65","\x2F\x6D\x61\x78\x69\x6D\x69\x7A\x65\x2E\x67\x69\x66","\x72\x65\x73\x69\x7A\x65\x49\x6D\x61\x67\x65","\x2F\x72\x65\x73\x69\x7A\x65\x2E\x67\x69\x66","\x6D\x69\x6E\x69\x6D\x75\x6D\x53\x69\x7A\x65","\x74\x69\x74\x6C\x65","\x6D\x78\x57\x69\x6E\x64\x6F\x77","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x54\x69\x74\x6C\x65","\x50\x61\x6E\x65","\x63\x6F\x6E\x74\x65\x6E\x74\x57\x72\x61\x70\x70\x65\x72","\x61\x63\x74\x69\x76\x65\x57\x69\x6E\x64\x6F\x77","\x7A\x49\x6E\x64\x65\x78","\x70\x72\x65\x76\x69\x6F\x75\x73\x57\x69\x6E\x64\x6F\x77","\x66\x69\x74","\x69\x73\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x32\x70\x78","\x6E\x77\x2D\x72\x65\x73\x69\x7A\x65","\x73\x65\x74\x53\x69\x7A\x65","\x72\x65\x6D\x6F\x76\x65\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x67\x65\x74\x4D\x69\x6E\x69\x6D\x75\x6D\x53\x69\x7A\x65","\x4D\x69\x6E\x69\x6D\x69\x7A\x65","\x6D\x61\x72\x67\x69\x6E\x52\x69\x67\x68\x74","\x31\x70\x78","\x4E\x6F\x72\x6D\x61\x6C\x69\x7A\x65","\x4D\x61\x78\x69\x6D\x69\x7A\x65","\x6D\x61\x72\x67\x69\x6E\x4C\x65\x66\x74","\x30\x70\x78","\x73\x65\x74\x4C\x6F\x63\x61\x74\x69\x6F\x6E","\x63\x6C\x6F\x73\x65\x49\x6D\x67","\x43\x6C\x6F\x73\x65","\x69\x6E\x73\x65\x72\x74\x42\x65\x66\x6F\x72\x65","\x73\x65\x74\x49\x6D\x61\x67\x65","\x34\x70\x78","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x2D\x32\x70\x78","\x67\x65\x74\x54\x61\x62\x6C\x65","\x61\x64\x64\x42\x75\x74\x74\x6F\x6E\x73","\x6F\x6B","\x4F\x4B","\x63\x61\x6E\x63\x65\x6C","\x43\x61\x6E\x63\x65\x6C","\x61\x64\x64\x54\x65\x78\x74","\x69\x6E\x70\x75\x74","\x74\x65\x78\x74","\x61\x64\x64\x46\x69\x65\x6C\x64","\x61\x64\x64\x43\x68\x65\x63\x6B\x62\x6F\x78","\x63\x68\x65\x63\x6B\x62\x6F\x78","\x63\x68\x65\x63\x6B\x65\x64","\x61\x64\x64\x54\x65\x78\x74\x61\x72\x65\x61","\x72\x6F\x77\x73","\x61\x64\x64\x43\x6F\x6D\x62\x6F","\x6D\x75\x6C\x74\x69\x70\x6C\x65","\x61\x64\x64\x4F\x70\x74\x69\x6F\x6E","\x6F\x70\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x65\x64","\x72\x65\x73\x69\x7A\x65\x57\x69\x64\x74\x68","\x72\x65\x73\x69\x7A\x65\x48\x65\x69\x67\x68\x74","\x68\x61\x6E\x64\x6C\x69\x6E\x67\x52\x65\x73\x69\x7A\x65","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x57\x69\x64\x74\x68","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x65\x6C\x65\x6D\x65\x6E\x74","\x64\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x64\x72\x61\x67\x45\x6C\x65\x6D\x65\x6E\x74","\x70\x72\x65\x76\x69\x65\x77\x45\x6C\x65\x6D\x65\x6E\x74","\x65\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x47\x72\x61\x70\x68","\x63\x75\x72\x72\x65\x6E\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x63\x75\x72\x72\x65\x6E\x74\x50\x6F\x69\x6E\x74","\x63\x75\x72\x72\x65\x6E\x74\x47\x75\x69\x64\x65","\x63\x75\x72\x72\x65\x6E\x74\x48\x69\x67\x68\x6C\x69\x67\x68\x74","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x64\x72\x61\x67\x45\x6C\x65\x6D\x65\x6E\x74\x5A\x49\x6E\x64\x65\x78","\x64\x72\x61\x67\x45\x6C\x65\x6D\x65\x6E\x74\x4F\x70\x61\x63\x69\x74\x79","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x43\x65\x6C\x6C\x41\x74","\x6D\x6F\x75\x73\x65\x4D\x6F\x76\x65\x48\x61\x6E\x64\x6C\x65\x72","\x73\x74\x61\x72\x74\x44\x72\x61\x67","\x6D\x6F\x75\x73\x65\x55\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x74\x6F\x70\x44\x72\x61\x67","\x67\x72\x61\x70\x68\x43\x6F\x6E\x74\x61\x69\x6E\x73\x45\x76\x65\x6E\x74","\x64\x72\x61\x67\x45\x78\x69\x74","\x64\x72\x61\x67\x45\x6E\x74\x65\x72","\x64\x72\x61\x67\x4F\x76\x65\x72","\x64\x72\x6F\x70","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x67\x65\x74\x47\x75\x69\x64\x65\x53\x74\x61\x74\x65\x73","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x61\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x61\x75\x74\x6F\x45\x78\x74\x65\x6E\x64","\x73\x63\x72\x6F\x6C\x6C\x50\x6F\x69\x6E\x74\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x69\x73\x44\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x68\x69\x67\x68\x6C\x69\x67\x68\x74","\x33","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64\x45\x76\x65\x6E\x74","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x72\x69\x64\x53\x69\x7A\x65","\x73\x6E\x61\x70","\x70\x72\x65\x76\x69\x65\x77\x4F\x66\x66\x73\x65\x74","\x6E\x6F\x52\x65\x73\x65\x74","\x75\x70\x64\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74\x4D\x6F\x64\x65","\x61\x64\x64\x49\x74\x65\x6D","\x6D\x78\x54\x6F\x6F\x6C\x62\x61\x72\x4D\x6F\x64\x65","\x6D\x78\x54\x6F\x6F\x6C\x62\x61\x72\x49\x74\x65\x6D","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x6D\x65\x6E\x75","\x63\x75\x72\x72\x65\x6E\x74\x49\x6D\x67","\x69\x73\x4D\x65\x6E\x75\x53\x68\x6F\x77\x69\x6E\x67","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x53\x65\x6C\x65\x63\x74\x65\x64","\x6D\x6F\x75\x73\x65\x6F\x75\x74","\x6D\x78\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6D\x62\x6F\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6D\x78\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6D\x62\x6F","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x43\x6F\x6D\x62\x6F","\x73\x65\x6C\x65\x63\x74\x65\x64\x49\x6E\x64\x65\x78","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x75\x6E\x63\x74","\x61\x64\x64\x53\x77\x69\x74\x63\x68\x4D\x6F\x64\x65","\x69\x6E\x69\x74\x69\x61\x6C\x43\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x61\x6C\x74\x49\x63\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x65\x64\x4D\x6F\x64\x65","\x64\x65\x66\x61\x75\x6C\x74\x4D\x6F\x64\x65","\x73\x65\x6C\x65\x63\x74\x4D\x6F\x64\x65","\x61\x64\x64\x4D\x6F\x64\x65","\x64\x65\x66\x61\x75\x6C\x74\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x72\x65\x73\x65\x74\x4D\x6F\x64\x65","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x61\x64\x64\x42\x72\x65\x61\x6B","\x61\x64\x64\x4C\x69\x6E\x65","\x68\x72","\x36\x70\x78","\x75\x72\x6C\x49\x6E\x69\x74","\x75\x72\x6C\x50\x6F\x6C\x6C","\x75\x72\x6C\x4E\x6F\x74\x69\x66\x79","\x63\x6F\x64\x65\x63","\x6C\x6F\x6F\x6B\x75\x70","\x65\x64\x69\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x73\x75\x73\x70\x65\x6E\x64\x65\x64","\x3C\x65\x64\x69\x74\x3E","\x63\x68\x61\x6E\x67\x65\x73","\x75\x6E\x64\x6F\x6E\x65","\x65\x6E\x63\x6F\x64\x65\x43\x68\x61\x6E\x67\x65\x73","\x3C\x2F\x65\x64\x69\x74\x3E","\x6C\x69\x6E\x65\x66\x65\x65\x64","\x65\x73\x63\x61\x70\x65\x50\x6F\x73\x74\x44\x61\x74\x61","\x73\x69\x67\x6E\x69\x66\x69\x63\x61\x6E\x74\x52\x65\x6D\x6F\x74\x65\x43\x68\x61\x6E\x67\x65\x73","\x73\x65\x6E\x74","\x72\x65\x63\x65\x69\x76\x65\x64","\x70\x6F\x6C\x6C\x69\x6E\x67","\x70\x6F\x6C\x6C","\x73\x74\x6F\x70","\x72\x65\x61\x73\x6F\x6E","\x6D\x78\x53\x65\x73\x73\x69\x6F\x6E\x2E\x6E\x6F\x74\x69\x66\x79\x3A\x20","\x20\x78\x6D\x6C\x3D","\x3C\x6D\x65\x73\x73\x61\x67\x65\x3E\x3C\x64\x65\x6C\x74\x61\x3E","\x3C\x2F\x64\x65\x6C\x74\x61\x3E\x3C\x2F\x6D\x65\x73\x73\x61\x67\x65\x3E","\x78\x6D\x6C\x3D","\x69\x73\x56\x61\x6C\x69\x64\x52\x65\x73\x70\x6F\x6E\x73\x65","\x49\x6E\x76\x61\x6C\x69\x64\x20\x72\x65\x73\x70\x6F\x6E\x73\x65\x3A\x20","\x52\x65\x73\x70\x6F\x6E\x73\x65\x20\x6E\x6F\x74\x20\x72\x65\x61\x64\x79","\x54\x72\x61\x6E\x73\x6D\x69\x73\x73\x69\x6F\x6E\x20\x65\x72\x72\x6F\x72","\x3C\x3F\x70\x68\x70","\x6E\x61\x6D\x65\x73\x70\x61\x63\x65","\x70\x72\x65\x66\x69\x78","\x70\x72\x6F\x63\x65\x73\x73\x53\x74\x61\x74\x65","\x64\x65\x6C\x74\x61","\x70\x72\x6F\x63\x65\x73\x73\x44\x65\x6C\x74\x61","\x64\x65\x63\x6F\x64\x65","\x70\x72\x6F\x63\x65\x73\x73\x45\x64\x69\x74","\x64\x65\x63\x6F\x64\x65\x43\x68\x61\x6E\x67\x65\x73","\x63\x72\x65\x61\x74\x65\x55\x6E\x64\x6F\x61\x62\x6C\x65\x45\x64\x69\x74","\x73\x6F\x75\x72\x63\x65","\x64\x65\x63\x6F\x64\x65\x43\x68\x61\x6E\x67\x65","\x6D\x78\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x6D\x78\x43\x68\x69\x6C\x64\x43\x68\x61\x6E\x67\x65","\x70\x61\x72\x65\x6E\x74","\x63\x65\x6C\x6C\x52\x65\x6D\x6F\x76\x65\x64","\x67\x65\x74\x49\x64","\x70\x75\x74\x4F\x62\x6A\x65\x63\x74","\x73\x69\x67\x6E\x69\x66\x69\x63\x61\x6E\x74","\x72\x65\x64\x6F\x6E\x65","\x69\x73\x45\x6D\x70\x74\x79","\x69\x73\x53\x69\x67\x6E\x69\x66\x69\x63\x61\x6E\x74","\x64\x69\x65","\x68\x69\x73\x74\x6F\x72\x79","\x69\x6E\x64\x65\x78\x4F\x66\x4E\x65\x78\x74\x41\x64\x64","\x63\x61\x6E\x55\x6E\x64\x6F","\x63\x61\x6E\x52\x65\x64\x6F","\x75\x6E\x64\x6F\x61\x62\x6C\x65\x45\x64\x69\x74\x48\x61\x70\x70\x65\x6E\x65\x64","\x73\x68\x69\x66\x74","\x64\x61\x74\x61\x3A\x69\x6D\x61\x67\x65","\x69\x73\x52\x65\x6C\x61\x74\x69\x76\x65\x55\x72\x6C","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x2F\x2F","\x68\x6F\x73\x74","\x70\x61\x74\x68\x6E\x61\x6D\x65","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x74\x68\x72\x65\x61\x64","\x61\x63\x74\x69\x76\x65","\x64\x79","\x64\x78","\x74\x30\x79","\x74\x30\x78","\x74\x64\x79","\x74\x64\x78","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x6D\x6F\x75\x73\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x64\x64\x4D\x6F\x75\x73\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x70\x61\x6E\x47\x72\x61\x70\x68","\x70\x61\x6E\x44\x78","\x70\x61\x6E\x44\x79","\x67\x65\x74\x44\x78","\x67\x65\x74\x44\x79","\x64\x65\x6C\x61\x79","\x73\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C","\x69\x73\x41\x63\x74\x69\x76\x65","\x70\x61\x6E\x54\x6F","\x68\x61\x6E\x64\x6C\x65\x4D\x6F\x75\x73\x65\x4F\x75\x74","\x64\x61\x6D\x70\x65\x72","\x63\x6C\x65\x61\x72\x49\x6E\x74\x65\x72\x76\x61\x6C","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65\x4D\x6F\x75\x73\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x73\x75\x62\x6D\x65\x6E\x75\x49\x6D\x61\x67\x65","\x2F\x73\x75\x62\x6D\x65\x6E\x75\x2E\x67\x69\x66","\x75\x73\x65\x4C\x65\x66\x74\x42\x75\x74\x74\x6F\x6E\x46\x6F\x72\x50\x6F\x70\x75\x70","\x69\x74\x65\x6D\x43\x6F\x75\x6E\x74","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x73\x6D\x61\x72\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72\x73","\x6C\x61\x62\x65\x6C\x73","\x6D\x78\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x64\x69\x73\x61\x62\x6C\x65\x43\x6F\x6E\x74\x65\x78\x74\x4D\x65\x6E\x75","\x69\x73\x4C\x65\x66\x74\x4D\x6F\x75\x73\x65\x42\x75\x74\x74\x6F\x6E","\x77\x69\x6C\x6C\x41\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x49\x74\x65\x6D\x73","\x6D\x78\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75\x49\x74\x65\x6D","\x6D\x78\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75\x49\x63\x6F\x6E","\x20\x64\x69\x73\x61\x62\x6C\x65\x64","\x70\x61\x64\x64\x69\x6E\x67\x52\x69\x67\x68\x74","\x74\x65\x78\x74\x41\x6C\x69\x67\x6E","\x63\x72\x65\x61\x74\x65\x53\x75\x62\x6D\x65\x6E\x75","\x65\x76\x65\x6E\x74\x52\x65\x63\x65\x69\x76\x65\x72","\x61\x63\x74\x69\x76\x65\x52\x6F\x77","\x68\x69\x64\x65\x53\x75\x62\x6D\x65\x6E\x75","\x73\x68\x6F\x77\x53\x75\x62\x6D\x65\x6E\x75","\x6D\x78\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75\x49\x74\x65\x6D\x48\x6F\x76\x65\x72","\x30\x20\x30\x20\x30\x20\x30\x70\x78","\x63\x6F\x6C\x53\x70\x61\x6E","\x32","\x73\x68\x6F\x77\x4D\x65\x6E\x75","\x63\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72","\x67\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x73\x65\x74\x47\x72\x61\x70\x68","\x67\x72\x61\x70\x68","\x61\x75\x74\x6F\x53\x61\x76\x65\x44\x65\x6C\x61\x79","\x61\x75\x74\x6F\x53\x61\x76\x65\x54\x68\x72\x6F\x74\x74\x6C\x65","\x61\x75\x74\x6F\x53\x61\x76\x65\x54\x68\x72\x65\x73\x68\x6F\x6C\x64","\x69\x67\x6E\x6F\x72\x65\x64\x43\x68\x61\x6E\x67\x65\x73","\x6C\x61\x73\x74\x53\x6E\x61\x70\x73\x68\x6F\x74","\x73\x74\x61\x72\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x73\x74\x6F\x70\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x73\x74\x65\x70\x73","\x65\x61\x73\x65","\x73\x74\x65\x70","\x61\x6E\x69\x6D\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x44\x65\x6C\x74\x61","\x69\x73\x56\x65\x72\x74\x65\x78","\x6D\x6F\x76\x65\x53\x74\x61\x74\x65","\x73\x74\x6F\x70\x52\x65\x63\x75\x72\x73\x69\x6F\x6E","\x67\x65\x74\x4F\x72\x69\x67\x69\x6E\x46\x6F\x72\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x69\x6D\x61\x67\x65\x73","\x61\x6C\x74","\x70\x75\x74\x49\x6D\x61\x67\x65","\x67\x65\x74\x49\x6D\x61\x67\x65","\x66\x61\x6C\x6C\x62\x61\x63\x6B","\x69\x6E\x63\x6C\x75\x64\x65\x4F\x76\x65\x72\x6C\x61\x79\x73","\x64\x72\x61\x77\x53\x74\x61\x74\x65","\x64\x72\x61\x77\x43\x65\x6C\x6C\x53\x74\x61\x74\x65","\x76\x69\x73\x69\x74\x53\x74\x61\x74\x65\x73\x52\x65\x63\x75\x72\x73\x69\x76\x65","\x64\x72\x61\x77\x4F\x76\x65\x72\x6C\x61\x79\x73","\x70\x61\x69\x6E\x74","\x72\x65\x73\x74\x6F\x72\x65","\x6F\x76\x65\x72\x6C\x61\x79\x73","\x63\x6F\x6E\x76\x65\x72\x74\x65\x72","\x63\x72\x65\x61\x74\x65\x55\x72\x6C\x43\x6F\x6E\x76\x65\x72\x74\x65\x72","\x73\x74\x61\x74\x65\x73","\x70\x61\x74\x68","\x72\x6F\x74\x61\x74\x65\x48\x74\x6D\x6C","\x6C\x61\x73\x74\x58","\x6C\x61\x73\x74\x59","\x6D\x6F\x76\x65\x4F\x70","\x4D","\x6C\x69\x6E\x65\x4F\x70","\x4C","\x71\x75\x61\x64\x4F\x70","\x51","\x63\x75\x72\x76\x65\x4F\x70","\x43","\x63\x6C\x6F\x73\x65\x4F\x70","\x5A","\x70\x6F\x69\x6E\x74\x65\x72\x45\x76\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65","\x33\x20\x33","\x66\x6C\x61\x74","\x6D\x69\x74\x65\x72","\x23\x30\x30\x30\x30\x30\x30","\x53\x48\x41\x44\x4F\x57\x43\x4F\x4C\x4F\x52","\x53\x48\x41\x44\x4F\x57\x5F\x4F\x50\x41\x43\x49\x54\x59","\x53\x48\x41\x44\x4F\x57\x5F\x4F\x46\x46\x53\x45\x54\x5F\x58","\x53\x48\x41\x44\x4F\x57\x5F\x4F\x46\x46\x53\x45\x54\x5F\x59","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x4F\x70","\x72\x6F\x74\x61\x74\x65\x50\x6F\x69\x6E\x74","\x70\x6F\x70","\x73\x65\x74\x41\x6C\x70\x68\x61","\x61\x6C\x70\x68\x61","\x73\x65\x74\x46\x69\x6C\x6C\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x47\x72\x61\x64\x69\x65\x6E\x74","\x66\x69\x6C\x6C\x41\x6C\x70\x68\x61","\x67\x72\x61\x64\x69\x65\x6E\x74\x41\x6C\x70\x68\x61","\x73\x65\x74\x53\x74\x72\x6F\x6B\x65\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x53\x74\x72\x6F\x6B\x65\x57\x69\x64\x74\x68","\x73\x65\x74\x44\x61\x73\x68\x65\x64","\x73\x65\x74\x44\x61\x73\x68\x50\x61\x74\x74\x65\x72\x6E","\x73\x65\x74\x4C\x69\x6E\x65\x43\x61\x70","\x6C\x69\x6E\x65\x43\x61\x70","\x73\x65\x74\x4C\x69\x6E\x65\x4A\x6F\x69\x6E","\x6C\x69\x6E\x65\x4A\x6F\x69\x6E","\x73\x65\x74\x4D\x69\x74\x65\x72\x4C\x69\x6D\x69\x74","\x6D\x69\x74\x65\x72\x4C\x69\x6D\x69\x74","\x73\x65\x74\x46\x6F\x6E\x74\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x46\x6F\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x46\x6F\x6E\x74\x42\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x42\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x46\x6F\x6E\x74\x53\x69\x7A\x65","\x73\x65\x74\x46\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x73\x65\x74\x46\x6F\x6E\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x53\x68\x61\x64\x6F\x77","\x73\x65\x74\x53\x68\x61\x64\x6F\x77\x43\x6F\x6C\x6F\x72","\x73\x68\x61\x64\x6F\x77\x43\x6F\x6C\x6F\x72","\x73\x65\x74\x53\x68\x61\x64\x6F\x77\x41\x6C\x70\x68\x61","\x73\x68\x61\x64\x6F\x77\x41\x6C\x70\x68\x61","\x73\x65\x74\x53\x68\x61\x64\x6F\x77\x4F\x66\x66\x73\x65\x74","\x73\x68\x61\x64\x6F\x77\x44\x78","\x73\x68\x61\x64\x6F\x77\x44\x79","\x62\x65\x67\x69\x6E","\x6D\x6F\x76\x65\x54\x6F","\x6C\x69\x6E\x65\x54\x6F","\x71\x75\x61\x64\x54\x6F","\x63\x75\x72\x76\x65\x54\x6F","\x61\x72\x63\x54\x6F","\x61\x72\x63\x54\x6F\x43\x75\x72\x76\x65\x73","\x65\x6E\x64","\x77\x72\x69\x74\x65\x44\x65\x66\x61\x75\x6C\x74\x73","\x65\x78\x74\x65\x6E\x64","\x74\x65\x78\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x6F\x6D\x70\x72\x65\x73\x73\x65\x64","\x66\x6F\x6E\x74\x66\x61\x6D\x69\x6C\x79","\x66\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x73\x69\x7A\x65","\x73\x68\x61\x64\x6F\x77\x63\x6F\x6C\x6F\x72","\x73\x68\x61\x64\x6F\x77\x61\x6C\x70\x68\x61","\x73\x68\x61\x64\x6F\x77\x6F\x66\x66\x73\x65\x74","\x74\x6F\x46\x69\x78\x65\x64","\x72\x6F\x74\x61\x74\x65","\x74\x68\x65\x74\x61","\x63\x78","\x63\x79","\x66\x69\x6C\x6C\x63\x6F\x6C\x6F\x72","\x67\x72\x61\x64\x69\x65\x6E\x74","\x63\x31","\x63\x32","\x77","\x68","\x61\x6C\x70\x68\x61\x31","\x61\x6C\x70\x68\x61\x32","\x73\x74\x72\x6F\x6B\x65\x63\x6F\x6C\x6F\x72","\x73\x74\x72\x6F\x6B\x65\x77\x69\x64\x74\x68","\x64\x61\x73\x68\x70\x61\x74\x74\x65\x72\x6E","\x70\x61\x74\x74\x65\x72\x6E","\x6C\x69\x6E\x65\x63\x61\x70","\x63\x61\x70","\x6C\x69\x6E\x65\x6A\x6F\x69\x6E","\x6D\x69\x74\x65\x72\x6C\x69\x6D\x69\x74","\x6C\x69\x6D\x69\x74","\x66\x6F\x6E\x74\x63\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x63\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x62\x6F\x72\x64\x65\x72\x63\x6F\x6C\x6F\x72","\x66\x6F\x6E\x74\x73\x74\x79\x6C\x65","\x72\x65\x63\x74","\x72\x6F\x75\x6E\x64\x72\x65\x63\x74","\x63\x6F\x6E\x76\x65\x72\x74","\x61\x73\x70\x65\x63\x74","\x71\x75\x61\x64","\x78\x31","\x79\x31","\x78\x32","\x79\x32","\x63\x75\x72\x76\x65","\x78\x33","\x79\x33","\x69\x73\x4E\x6F\x64\x65","\x73\x74\x72","\x77\x72\x61\x70","\x66\x69\x6C\x6C","\x63\x6C\x69\x70","\x73\x74\x72\x6F\x6B\x65","\x66\x69\x6C\x6C\x41\x6E\x64\x53\x74\x72\x6F\x6B\x65","\x66\x69\x6C\x6C\x73\x74\x72\x6F\x6B\x65","\x67\x72\x61\x64\x69\x65\x6E\x74\x73","\x64\x65\x66\x73","\x73\x74\x79\x6C\x65\x45\x6E\x61\x62\x6C\x65\x64","\x63\x72\x65\x61\x74\x65\x53\x74\x79\x6C\x65","\x6D\x61\x74\x63\x68\x48\x74\x6D\x6C\x41\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x66\x6F\x45\x6E\x61\x62\x6C\x65\x64","\x73\x74\x72\x6F\x6B\x65\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x72\x65\x66\x43\x6F\x75\x6E\x74","\x62\x6C\x6F\x63\x6B\x49\x6D\x61\x67\x65\x50\x6F\x69\x6E\x74\x65\x72\x45\x76\x65\x6E\x74\x73","\x73\x76\x67\x7B\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A","\x3B\x66\x6F\x6E\x74\x2D\x73\x69\x7A\x65\x3A","\x3B\x66\x69\x6C\x6C\x3A\x6E\x6F\x6E\x65\x3B\x73\x74\x72\x6F\x6B\x65\x2D\x6D\x69\x74\x65\x72\x6C\x69\x6D\x69\x74\x3A\x31\x30\x7D","\x4E\x53\x5F\x53\x56\x47","\x78\x6D\x6C\x6E\x73","\x63\x72\x65\x61\x74\x65\x47\x72\x61\x64\x69\x65\x6E\x74\x49\x64","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x53\x4F\x55\x54\x48","\x73","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x45\x41\x53\x54","\x65","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4E\x4F\x52\x54\x48","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x57\x45\x53\x54","\x6D\x78\x2D\x67\x72\x61\x64\x69\x65\x6E\x74\x2D","\x67\x65\x74\x53\x76\x67\x47\x72\x61\x64\x69\x65\x6E\x74","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x69\x64","\x63\x72\x65\x61\x74\x65\x53\x76\x67\x47\x72\x61\x64\x69\x65\x6E\x74","\x6C\x69\x6E\x65\x61\x72\x47\x72\x61\x64\x69\x65\x6E\x74","\x30\x25","\x3B\x73\x74\x6F\x70\x2D\x6F\x70\x61\x63\x69\x74\x79\x3A","\x6F\x66\x66\x73\x65\x74","\x73\x74\x6F\x70\x2D\x63\x6F\x6C\x6F\x72\x3A","\x61\x64\x64\x4E\x6F\x64\x65","\x64","\x75\x70\x64\x61\x74\x65\x46\x69\x6C\x6C","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x75\x70\x64\x61\x74\x65\x53\x74\x72\x6F\x6B\x65","\x63\x72\x65\x61\x74\x65\x53\x68\x61\x64\x6F\x77","\x63\x72\x65\x61\x74\x65\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x70\x6F\x69\x6E\x74\x65\x72\x2D\x65\x76\x65\x6E\x74\x73","\x61\x6C\x6C","\x66\x69\x6C\x6C\x2D\x6F\x70\x61\x63\x69\x74\x79","\x75\x72\x6C\x28\x23","\x73\x74\x72\x6F\x6B\x65\x2D\x6F\x70\x61\x63\x69\x74\x79","\x73\x74\x72\x6F\x6B\x65\x2D\x77\x69\x64\x74\x68","\x75\x70\x64\x61\x74\x65\x53\x74\x72\x6F\x6B\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x73\x74\x72\x6F\x6B\x65\x2D\x64\x61\x73\x68\x61\x72\x72\x61\x79","\x63\x72\x65\x61\x74\x65\x44\x61\x73\x68\x50\x61\x74\x74\x65\x72\x6E","\x73\x74\x72\x6F\x6B\x65\x2D\x6C\x69\x6E\x65\x6A\x6F\x69\x6E","\x62\x75\x74\x74","\x73\x74\x72\x6F\x6B\x65\x2D\x6C\x69\x6E\x65\x63\x61\x70","\x73\x74\x72\x6F\x6B\x65\x2D\x6D\x69\x74\x65\x72\x6C\x69\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x77\x68\x69\x74\x65","\x29\x73\x63\x61\x6C\x65\x28","\x29\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x72\x6F\x74\x61\x74\x65\x28","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x43\x78","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x43\x79","\x72\x78","\x72\x79","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4E\x53","\x78\x6C\x69\x6E\x6B\x3A\x68\x72\x65\x66","\x70\x72\x65\x73\x65\x72\x76\x65\x41\x73\x70\x65\x63\x74\x52\x61\x74\x69\x6F","\x73\x63\x61\x6C\x65\x28","\x70\x6F\x69\x6E\x74\x65\x72\x2D\x65\x76\x65\x6E\x74\x73\x3A\x6E\x6F\x6E\x65","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x64\x69\x73\x70\x6C\x61\x79\x3A\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B\x66\x6F\x6E\x74\x2D\x73\x69\x7A\x65\x3A","\x70\x78\x3B\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A","\x3B\x63\x6F\x6C\x6F\x72\x3A","\x3B\x6C\x69\x6E\x65\x2D\x68\x65\x69\x67\x68\x74\x3A","\x70\x78\x3B","\x46\x4F\x4E\x54\x5F\x42\x4F\x4C\x44","\x66\x6F\x6E\x74\x2D\x77\x65\x69\x67\x68\x74\x3A\x62\x6F\x6C\x64\x3B","\x46\x4F\x4E\x54\x5F\x49\x54\x41\x4C\x49\x43","\x66\x6F\x6E\x74\x2D\x73\x74\x79\x6C\x65\x3A\x69\x74\x61\x6C\x69\x63\x3B","\x46\x4F\x4E\x54\x5F\x55\x4E\x44\x45\x52\x4C\x49\x4E\x45","\x66\x6F\x6E\x74\x2D\x64\x65\x63\x6F\x72\x61\x74\x69\x6F\x6E\x3A\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65\x3B","\x74\x65\x78\x74\x2D\x61\x6C\x69\x67\x6E\x3A\x63\x65\x6E\x74\x65\x72\x3B","\x74\x65\x78\x74\x2D\x61\x6C\x69\x67\x6E\x3A\x72\x69\x67\x68\x74\x3B","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A","\x62\x6F\x72\x64\x65\x72\x3A\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20","\x26\x61\x6D\x70\x3B\x67\x74\x3B","\x26\x61\x6D\x70\x3B\x6C\x74\x3B","\x3C\x64\x69\x76\x20\x78\x6D\x6C\x6E\x73\x3D\x22\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x31\x39\x39\x39\x2F\x78\x68\x74\x6D\x6C\x22\x20\x73\x74\x79\x6C\x65\x3D\x22\x64\x69\x73\x70\x6C\x61\x79\x3A\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B","\x22\x3E","\x3C\x2F\x64\x69\x76\x3E","\x3C\x68\x72\x20\x2F\x3E","\x3C\x62\x72\x20\x2F\x3E","\x3C\x64\x69\x76\x20\x78\x6D\x6C\x6E\x73\x3D\x22\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x77\x33\x2E\x6F\x72\x67\x2F\x31\x39\x39\x39\x2F\x78\x68\x74\x6D\x6C\x22\x20\x73\x74\x79\x6C\x65\x3D\x22","\x68\x74\x6D\x6C","\x76\x65\x72\x74\x69\x63\x61\x6C\x2D\x61\x6C\x69\x67\x6E\x3A\x74\x6F\x70\x3B","\x6F\x76\x65\x72\x66\x6C\x6F\x77\x3A\x68\x69\x64\x64\x65\x6E\x3B","\x6D\x61\x78\x2D\x68\x65\x69\x67\x68\x74\x3A","\x77\x69\x64\x74\x68\x3A","\x77\x68\x69\x74\x65\x2D\x73\x70\x61\x63\x65\x3A\x6E\x6F\x72\x6D\x61\x6C\x3B","\x77\x68\x69\x74\x65\x2D\x73\x70\x61\x63\x65\x3A\x6E\x6F\x77\x72\x61\x70\x3B","\x66\x6F\x72\x65\x69\x67\x6E\x4F\x62\x6A\x65\x63\x74","\x70\x6C\x61\x69\x6E\x54\x65\x78\x74","\x63\x72\x65\x61\x74\x65\x43\x6C\x69\x70","\x6D\x78\x2D\x63\x6C\x69\x70\x2D","\x63\x6C\x69\x70\x50\x61\x74\x68","\x63\x6C\x69\x70\x2D\x70\x61\x74\x68","\x75\x70\x64\x61\x74\x65\x46\x6F\x6E\x74","\x74\x65\x78\x74\x2D\x61\x6E\x63\x68\x6F\x72","\x66\x6F\x6E\x74\x2D\x73\x69\x7A\x65","\x61\x64\x64\x54\x65\x78\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x2D\x77\x65\x69\x67\x68\x74","\x62\x6F\x6C\x64","\x66\x6F\x6E\x74\x2D\x73\x74\x79\x6C\x65","\x69\x74\x61\x6C\x69\x63","\x74\x65\x78\x74\x2D\x64\x65\x63\x6F\x72\x61\x74\x69\x6F\x6E","\x67\x65\x74\x42\x42\x6F\x78","\x66\x6F\x6E\x74\x57\x65\x69\x67\x68\x74","\x3C\x62\x72\x2F\x3E","\x6D\x6F\x64","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28\x30\x2E\x35\x2C\x20\x30\x2E\x35\x29","\x6D","\x6C","\x63","\x72\x6F\x74\x61\x74\x65\x64\x48\x74\x6D\x6C\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x76\x6D\x6C\x53\x63\x61\x6C\x65","\x20\x65","\x63\x6F\x6F\x72\x64\x73\x69\x7A\x65","\x73\x74\x72\x6F\x6B\x65\x77\x65\x69\x67\x68\x74","\x73\x74\x72\x6F\x6B\x65\x64","\x63\x72\x65\x61\x74\x65\x53\x74\x72\x6F\x6B\x65","\x63\x72\x65\x61\x74\x65\x46\x69\x6C\x6C","\x63\x72\x65\x61\x74\x65\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x46\x69\x6C\x6C","\x66\x69\x6C\x6C\x65\x64","\x3A\x66\x69\x6C\x6C","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66","\x74\x69\x6C\x65","\x63\x6F\x6C\x6F\x72\x32","\x66\x6C\x69\x70","\x61\x6E\x67\x6C\x65","\x4F\x46\x46\x49\x43\x45\x5F\x50\x52\x45\x46\x49\x58","\x3A\x6F\x70\x61\x63\x69\x74\x79\x32","\x3A\x73\x74\x72\x6F\x6B\x65","\x65\x6E\x64\x63\x61\x70","\x6A\x6F\x69\x6E\x73\x74\x79\x6C\x65","\x31\x30","\x64\x61\x73\x68\x73\x74\x79\x6C\x65","\x67\x65\x74\x56\x6D\x6C\x44\x61\x73\x68\x53\x74\x79\x6C\x65","\x64\x61\x73\x68","\x30\x20\x32","\x63\x72\x65\x61\x74\x65\x53\x68\x61\x64\x6F\x77\x53\x74\x72\x6F\x6B\x65","\x63\x72\x65\x61\x74\x65\x53\x68\x61\x64\x6F\x77\x46\x69\x6C\x6C","\x3A\x73\x68\x61\x70\x65","\x63\x20","\x63\x72\x65\x61\x74\x65\x52\x65\x63\x74","\x3A\x72\x65\x63\x74","\x3A\x72\x6F\x75\x6E\x64\x72\x65\x63\x74","\x61\x72\x63\x73\x69\x7A\x65","\x3A\x6F\x76\x61\x6C","\x61\x74\x6D\x6F\x73\x74","\x69\x67\x6E\x6F\x72\x65","\x66\x72\x61\x6D\x65","\x31\x38\x30","\x66\x6F\x6E\x74\x44\x65\x63\x6F\x72\x61\x74\x69\x6F\x6E","\x3A\x67\x72\x6F\x75\x70","\x72\x65\x6C\x61\x74\x69\x76\x65","\x67\x65\x74\x41\x6C\x69\x67\x6E\x6D\x65\x6E\x74\x41\x73\x50\x6F\x69\x6E\x74","\x6E\x6F\x72\x6D\x61\x6C","\x6D\x61\x78\x48\x65\x69\x67\x68\x74","\x67\x72\x6F\x75\x70","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x4D\x61\x74\x72\x69\x78\x28\x4D\x31\x31\x3D","\x2C\x20\x4D\x31\x32\x3D","\x2C\x20\x4D\x32\x31\x3D","\x2C\x20\x4D\x32\x32\x3D","\x2C\x20\x73\x69\x7A\x69\x6E\x67\x4D\x65\x74\x68\x6F\x64\x3D\x27\x61\x75\x74\x6F\x20\x65\x78\x70\x61\x6E\x64\x27\x29","\x3A\x70\x61\x74\x68","\x74\x65\x78\x74\x70\x61\x74\x68\x6F\x6B","\x6D\x20","\x20\x6C\x20","\x3A\x74\x65\x78\x74\x70\x61\x74\x68","\x76\x2D\x74\x65\x78\x74\x2D\x61\x6C\x69\x67\x6E\x3A","\x73\x74\x72\x69\x6E\x67","\x73\x65\x74\x53\x74\x61\x74\x65\x73","\x67\x75\x69\x64\x65\x58","\x67\x75\x69\x64\x65\x59","\x67\x65\x74\x47\x75\x69\x64\x65\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x63\x72\x65\x61\x74\x65\x47\x75\x69\x64\x65\x53\x68\x61\x70\x65","\x69\x73\x44\x61\x73\x68\x65\x64","\x44\x49\x41\x4C\x45\x43\x54\x5F\x56\x4D\x4C","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x70\x6F\x69\x6E\x74\x73","\x73\x63\x72\x6F\x6C\x6C\x57\x69\x64\x74\x68","\x64\x65\x73\x63","\x70\x61\x72\x73\x65\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x61\x72\x73\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x64\x65\x66\x61\x75\x6C\x74\x4C\x6F\x63\x61\x6C\x69\x7A\x65\x64","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x77\x30","\x68\x30","\x62\x67\x4E\x6F\x64\x65","\x66\x67\x4E\x6F\x64\x65","\x66\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x68\x69\x6C\x64\x4E\x6F\x64\x65\x73","\x70\x61\x72\x73\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x65\x76\x61\x6C\x75\x61\x74\x65\x54\x65\x78\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x65\x76\x61\x6C\x75\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6C\x6F\x63\x61\x6C\x69\x7A\x65\x64","\x65\x76\x61\x6C","\x64\x72\x61\x77\x53\x68\x61\x70\x65","\x64\x72\x61\x77\x43\x68\x69\x6C\x64\x72\x65\x6E","\x63\x6F\x6D\x70\x75\x74\x65\x41\x73\x70\x65\x63\x74","\x69\x6E\x68\x65\x72\x69\x74","\x67\x65\x74\x4E\x75\x6D\x62\x65\x72","\x64\x72\x61\x77\x4E\x6F\x64\x65","\x66\x69\x78\x65\x64","\x61\x72\x63","\x78\x2D\x61\x78\x69\x73\x2D\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x6C\x61\x72\x67\x65\x2D\x61\x72\x63\x2D\x66\x6C\x61\x67","\x73\x77\x65\x65\x70\x2D\x66\x6C\x61\x67","\x52\x45\x43\x54\x41\x4E\x47\x4C\x45\x5F\x52\x4F\x55\x4E\x44\x49\x4E\x47\x5F\x46\x41\x43\x54\x4F\x52","\x61\x6C\x69\x67\x6E\x2D\x73\x68\x61\x70\x65","\x69\x6E\x63\x6C\x75\x64\x65\x2D\x73\x68\x61\x70\x65","\x67\x65\x74\x53\x74\x65\x6E\x63\x69\x6C","\x73\x74\x65\x6E\x63\x69\x6C","\x62\x6F\x75\x6E\x64\x73","\x62\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x73\x76\x67\x53\x74\x72\x6F\x6B\x65\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x73\x74\x65\x6E\x63\x69\x6C\x50\x6F\x69\x6E\x74\x65\x72\x45\x76\x65\x6E\x74\x73","\x69\x73\x50\x61\x72\x73\x65\x56\x6D\x6C","\x69\x73\x48\x74\x6D\x6C\x41\x6C\x6C\x6F\x77\x65\x64","\x67\x65\x74\x53\x76\x67\x53\x63\x72\x65\x65\x6E\x4F\x66\x66\x73\x65\x74","\x63\x72\x65\x61\x74\x65\x53\x76\x67","\x63\x72\x65\x61\x74\x65\x48\x74\x6D\x6C","\x63\x72\x65\x61\x74\x65\x56\x6D\x6C","\x72\x65\x63\x6F\x6E\x66\x69\x67\x75\x72\x65","\x75\x70\x64\x61\x74\x65\x42\x6F\x75\x6E\x64\x73\x46\x72\x6F\x6D\x50\x6F\x69\x6E\x74\x73","\x63\x68\x65\x63\x6B\x42\x6F\x75\x6E\x64\x73","\x72\x65\x64\x72\x61\x77\x48\x74\x6D\x6C\x53\x68\x61\x70\x65","\x72\x65\x64\x72\x61\x77\x53\x68\x61\x70\x65","\x75\x70\x64\x61\x74\x65\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x63\x72\x65\x61\x74\x65\x56\x6D\x6C\x47\x72\x6F\x75\x70","\x63\x72\x65\x61\x74\x65\x43\x61\x6E\x76\x61\x73","\x68\x61\x73\x43\x68\x69\x6C\x64\x4E\x6F\x64\x65\x73","\x6C\x61\x73\x74\x43\x68\x69\x6C\x64","\x62\x65\x66\x6F\x72\x65\x65\x6E\x64","\x69\x6E\x73\x65\x72\x74\x41\x64\x6A\x61\x63\x65\x6E\x74\x48\x54\x4D\x4C","\x61\x64\x64\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x46\x69\x6C\x74\x65\x72","\x64\x65\x73\x74\x72\x6F\x79\x43\x61\x6E\x76\x61\x73","\x75\x70\x64\x61\x74\x65\x56\x6D\x6C\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6D\x78\x52\x65\x66\x43\x6F\x75\x6E\x74","\x6F\x6C\x64\x47\x72\x61\x64\x69\x65\x6E\x74\x73","\x72\x65\x6C\x65\x61\x73\x65\x53\x76\x67\x47\x72\x61\x64\x69\x65\x6E\x74\x73","\x69\x73\x50\x61\x69\x6E\x74\x42\x6F\x75\x6E\x64\x73\x49\x6E\x76\x65\x72\x74\x65\x64","\x75\x70\x64\x61\x74\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x43\x61\x6E\x76\x61\x73","\x70\x61\x69\x6E\x74\x53\x74\x65\x6E\x63\x69\x6C\x53\x68\x61\x70\x65","\x70\x61\x69\x6E\x74\x45\x64\x67\x65\x53\x68\x61\x70\x65","\x70\x61\x69\x6E\x74\x56\x65\x72\x74\x65\x78\x53\x68\x61\x70\x65","\x69\x73\x53\x68\x61\x64\x6F\x77","\x67\x65\x74\x47\x72\x61\x64\x69\x65\x6E\x74\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x68\x61\x70\x65\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x61\x64\x64\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x63\x74\x61\x6E\x67\x6C\x65","\x73\x65\x74\x54\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x70\x61\x69\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x70\x61\x69\x6E\x74\x46\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x67\x65\x74\x41\x72\x63\x53\x69\x7A\x65","\x70\x61\x69\x6E\x74\x47\x6C\x61\x73\x73\x45\x66\x66\x65\x63\x74","\x23\x66\x66\x66\x66\x66\x66","\x69\x73\x52\x6F\x75\x6E\x64\x65\x64","\x73\x74\x65\x6E\x63\x69\x6C\x46\x6C\x69\x70\x48","\x73\x74\x65\x6E\x63\x69\x6C\x46\x6C\x69\x70\x56","\x73\x65\x74\x43\x75\x72\x73\x6F\x72","\x67\x65\x74\x43\x75\x72\x73\x6F\x72","\x63\x72\x65\x61\x74\x65\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x61\x75\x67\x6D\x65\x6E\x74\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x67\x65\x74\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x67\x65\x74\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x67\x65\x74\x54\x65\x78\x74\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x76\x65\x72\x74\x69\x63\x61\x6C\x54\x65\x78\x74\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28\x27","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66\x27\x29","\x73\x74\x65\x6E\x63\x69\x6C\x73","\x6D\x61\x72\x6B\x65\x72\x73","\x41\x52\x52\x4F\x57\x5F\x43\x4C\x41\x53\x53\x49\x43","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44","\x61\x64\x64\x4D\x61\x72\x6B\x65\x72","\x72\x65\x64\x72\x61\x77\x50\x61\x74\x68","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x46\x69\x6C\x74\x65\x72\x73","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x43\x6F\x6C\x6F\x72\x73","\x62\x6F\x72\x64\x65\x72\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x73\x6F\x6C\x69\x64","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x64\x72\x6F\x70\x53\x68\x61\x64\x6F\x77\x20\x28\x4F\x66\x66\x58\x3D\x27","\x27\x2C\x20\x4F\x66\x66\x59\x3D\x27","\x27\x2C\x20\x43\x6F\x6C\x6F\x72\x3D\x27","\x27\x29","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x67\x72\x61\x64\x69\x65\x6E\x74\x28\x73\x74\x61\x72\x74\x43\x6F\x6C\x6F\x72\x53\x74\x72\x3D\x27","\x27\x2C\x20\x65\x6E\x64\x43\x6F\x6C\x6F\x72\x53\x74\x72\x3D\x27","\x27\x2C\x20\x67\x72\x61\x64\x69\x65\x6E\x74\x54\x79\x70\x65\x3D\x27","\x70\x61\x69\x6E\x74\x4C\x69\x6E\x65","\x61\x72\x72\x6F\x77\x57\x69\x64\x74\x68","\x41\x52\x52\x4F\x57\x5F\x57\x49\x44\x54\x48","\x41\x52\x52\x4F\x57\x5F\x53\x50\x41\x43\x49\x4E\x47","\x41\x52\x52\x4F\x57\x5F\x53\x49\x5A\x45","\x44\x45\x46\x41\x55\x4C\x54\x5F\x46\x4F\x4E\x54\x53\x54\x59\x4C\x45","\x63\x6C\x69\x70\x70\x65\x64","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x54\x6F\x70","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x4C\x65\x66\x74","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x52\x69\x67\x68\x74","\x72\x65\x70\x6C\x61\x63\x65\x4C\x69\x6E\x65\x66\x65\x65\x64\x73","\x69\x67\x6E\x6F\x72\x65\x43\x6C\x69\x70\x70\x65\x64\x53\x74\x72\x69\x6E\x67\x53\x69\x7A\x65","\x69\x67\x6E\x6F\x72\x65\x53\x74\x72\x69\x6E\x67\x53\x69\x7A\x65","\x74\x65\x78\x74\x44\x69\x76","\x75\x70\x64\x61\x74\x65\x53\x69\x7A\x65","\x6D\x61\x72\x67\x69\x6E","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x54\x52\x49\x43\x54\x48\x54\x4D\x4C","\x75\x70\x64\x61\x74\x65\x56\x61\x6C\x75\x65","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x46\x69\x6C\x74\x65\x72","\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x4F\x72\x69\x67\x69\x6E","\x25\x20","\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x25\x2C","\x25\x29\x73\x63\x61\x6C\x65\x28","\x29\x20\x72\x6F\x74\x61\x74\x65\x28","\x64\x65\x67\x29","\x30\x25\x20\x30\x25","\x25\x29","\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20","\x3C\x64\x69\x76\x20\x73\x74\x79\x6C\x65\x3D\x22\x7A\x6F\x6F\x6D\x3A\x31\x3B","\x64\x69\x73\x70\x6C\x61\x79\x3A\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B\x3B\x5F\x64\x69\x73\x70\x6C\x61\x79\x3A\x69\x6E\x6C\x69\x6E\x65\x3B\x70\x61\x64\x64\x69\x6E\x67\x2D\x62\x6F\x74\x74\x6F\x6D\x3A\x31\x70\x78\x3B\x70\x61\x64\x64\x69\x6E\x67\x2D\x72\x69\x67\x68\x74\x3A\x31\x70\x78\x3B\x6C\x69\x6E\x65\x2D\x68\x65\x69\x67\x68\x74\x3A","\x75\x70\x64\x61\x74\x65\x4D\x61\x72\x67\x69\x6E","\x67\x65\x74\x53\x70\x61\x63\x69\x6E\x67","\x70\x72\x65\x73\x65\x72\x76\x65\x49\x6D\x61\x67\x65\x41\x73\x70\x65\x63\x74","\x69\x6D\x61\x67\x65\x46\x6C\x69\x70\x48","\x69\x6D\x61\x67\x65\x46\x6C\x69\x70\x56","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x42\x61\x73\x69\x63\x49\x6D\x61\x67\x65\x28\x72\x6F\x74\x61\x74\x69\x6F\x6E\x3D\x32\x29","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x42\x61\x73\x69\x63\x49\x6D\x61\x67\x65\x28\x6D\x69\x72\x72\x6F\x72\x3D\x31\x29","\x70\x72\x6F\x67\x69\x64\x3A\x44\x58\x49\x6D\x61\x67\x65\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D\x2E\x4D\x69\x63\x72\x6F\x73\x6F\x66\x74\x2E\x42\x61\x73\x69\x63\x49\x6D\x61\x67\x65\x28\x72\x6F\x74\x61\x74\x69\x6F\x6E\x3D\x32\x2C\x20\x6D\x69\x72\x72\x6F\x72\x3D\x31\x29","\x69\x6D\x61\x67\x65\x53\x69\x7A\x65","\x44\x45\x46\x41\x55\x4C\x54\x5F\x49\x4D\x41\x47\x45\x53\x49\x5A\x45","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x69\x7A\x65","\x69\x6E\x64\x69\x63\x61\x74\x6F\x72","\x70\x61\x69\x6E\x74\x49\x6D\x61\x67\x65","\x70\x61\x69\x6E\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72","\x67\x65\x74\x49\x6D\x61\x67\x65\x42\x6F\x75\x6E\x64\x73","\x41\x4C\x49\x47\x4E\x5F\x54\x4F\x50","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x42\x6F\x75\x6E\x64\x73","\x63\x72\x65\x61\x74\x65\x4D\x61\x72\x6B\x65\x72","\x53\x54\x59\x4C\x45\x5F\x43\x55\x52\x56\x45\x44","\x70\x61\x69\x6E\x74\x43\x75\x72\x76\x65\x64\x4C\x69\x6E\x65","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x53\x49\x5A\x45","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x53\x49\x5A\x45","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x41\x52\x52\x4F\x57","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x41\x52\x52\x4F\x57","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x46\x49\x4C\x4C","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x46\x49\x4C\x4C","\x70\x61\x69\x6E\x74\x52\x6F\x75\x6E\x64\x65\x64\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x70\x61\x69\x6E\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x70\x61\x69\x6E\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x75\x73\x65\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78","\x6D\x6F\x76\x65\x43\x65\x6C\x6C","\x67\x65\x74\x47\x72\x61\x70\x68","\x67\x65\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x74\x72\x61\x76\x65\x72\x73\x65","\x67\x65\x74\x45\x64\x67\x65\x43\x6F\x75\x6E\x74","\x67\x65\x74\x45\x64\x67\x65\x41\x74","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x67\x65\x74\x56\x69\x73\x69\x62\x6C\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x69\x73\x56\x65\x72\x74\x65\x78\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x56\x65\x72\x74\x65\x78\x49\x67\x6E\x6F\x72\x65\x64","\x69\x73\x43\x65\x6C\x6C\x56\x69\x73\x69\x62\x6C\x65","\x69\x73\x45\x64\x67\x65\x49\x67\x6E\x6F\x72\x65\x64","\x73\x65\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x73\x65\x74\x4F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65","\x67\x65\x74\x50\x61\x72\x65\x6E\x74\x4F\x66\x66\x73\x65\x74","\x69\x73\x41\x6E\x63\x65\x73\x74\x6F\x72","\x67\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x73\x65\x74\x45\x64\x67\x65\x50\x6F\x69\x6E\x74\x73","\x73\x65\x74\x52\x65\x6C\x61\x74\x69\x76\x65","\x73\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x73\x65\x74\x56\x65\x72\x74\x65\x78\x4C\x6F\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x56\x65\x72\x74\x65\x78\x42\x6F\x75\x6E\x64\x73","\x61\x72\x72\x61\x6E\x67\x65\x47\x72\x6F\x75\x70\x73","\x67\x65\x74\x43\x68\x69\x6C\x64\x56\x65\x72\x74\x69\x63\x65\x73","\x67\x65\x74\x42\x6F\x75\x6E\x64\x69\x6E\x67\x42\x6F\x78\x46\x72\x6F\x6D\x47\x65\x6F\x6D\x65\x74\x72\x79","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x67\x65\x74\x53\x74\x61\x72\x74\x53\x69\x7A\x65","\x78\x30","\x79\x30","\x6B\x65\x65\x70\x46\x69\x72\x73\x74\x4C\x6F\x63\x61\x74\x69\x6F\x6E","\x72\x65\x73\x69\x7A\x65\x50\x61\x72\x65\x6E\x74","\x72\x65\x73\x69\x7A\x65\x4C\x61\x73\x74","\x69\x73\x48\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x67\x65\x74\x49\x6E\x64\x65\x78","\x67\x65\x74\x50\x61\x72\x65\x6E\x74\x53\x69\x7A\x65","\x69\x73\x4C\x61\x79\x65\x72","\x63\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x72\x65\x73\x69\x7A\x65\x56\x65\x72\x74\x69\x63\x65\x73","\x69\x6E\x76\x65\x72\x74","\x67\x72\x6F\x75\x70\x50\x61\x64\x64\x69\x6E\x67","\x70\x61\x72\x65\x6E\x74\x73\x43\x68\x61\x6E\x67\x65\x64","\x6D\x6F\x76\x65\x54\x72\x65\x65","\x6C\x65\x76\x65\x6C\x44\x69\x73\x74\x61\x6E\x63\x65","\x6E\x6F\x64\x65\x44\x69\x73\x74\x61\x6E\x63\x65","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73","\x70\x72\x65\x66\x48\x6F\x7A\x45\x64\x67\x65\x53\x65\x70","\x70\x72\x65\x66\x56\x65\x72\x74\x45\x64\x67\x65\x4F\x66\x66","\x6D\x69\x6E\x45\x64\x67\x65\x4A\x65\x74\x74\x79","\x63\x68\x61\x6E\x6E\x65\x6C\x42\x75\x66\x66\x65\x72","\x65\x64\x67\x65\x52\x6F\x75\x74\x69\x6E\x67","\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x54\x72\x65\x65\x52\x6F\x6F\x74\x73","\x64\x66\x73","\x6C\x61\x79\x6F\x75\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x4C\x61\x79\x6F\x75\x74","\x76\x65\x72\x74\x69\x63\x61\x6C\x4C\x61\x79\x6F\x75\x74","\x6D\x6F\x76\x65\x4E\x6F\x64\x65","\x61\x64\x6A\x75\x73\x74\x50\x61\x72\x65\x6E\x74\x73","\x6C\x6F\x63\x61\x6C\x45\x64\x67\x65\x50\x72\x6F\x63\x65\x73\x73\x69\x6E\x67","\x6E\x65\x78\x74","\x63\x72\x65\x61\x74\x65\x4E\x6F\x64\x65","\x61\x74\x74\x61\x63\x68\x50\x61\x72\x65\x6E\x74","\x6C\x61\x79\x6F\x75\x74\x4C\x65\x61\x66","\x6F\x66\x66\x73\x65\x74\x58","\x6F\x66\x66\x73\x65\x74\x59","\x75\x70\x70\x65\x72\x48\x65\x61\x64","\x63\x6F\x6E\x74\x6F\x75\x72","\x63\x72\x65\x61\x74\x65\x4C\x69\x6E\x65","\x6C\x6F\x77\x65\x72\x48\x65\x61\x64","\x75\x70\x70\x65\x72\x54\x61\x69\x6C","\x6C\x6F\x77\x65\x72\x54\x61\x69\x6C","\x6D\x65\x72\x67\x65","\x62\x72\x69\x64\x67\x65","\x73\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x70\x72\x6F\x63\x65\x73\x73\x4E\x6F\x64\x65\x4F\x75\x74\x67\x6F\x69\x6E\x67","\x67\x65\x74\x45\x64\x67\x65\x73\x42\x65\x74\x77\x65\x65\x6E","\x77\x65\x69\x67\x68\x74\x65\x64\x56\x61\x6C\x75\x65","\x6E\x75\x64\x67\x65","\x76\x69\x73\x69\x74\x65\x64","\x72\x61\x6E\x6B\x49\x6E\x64\x65\x78","\x75\x73\x65\x49\x6E\x70\x75\x74\x4F\x72\x69\x67\x69\x6E","\x64\x69\x73\x61\x62\x6C\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x66\x6F\x72\x63\x65\x43\x6F\x6E\x73\x74\x61\x6E\x74","\x66\x6F\x72\x63\x65\x43\x6F\x6E\x73\x74\x61\x6E\x74\x53\x71\x75\x61\x72\x65\x64","\x6D\x69\x6E\x44\x69\x73\x74\x61\x6E\x63\x65\x4C\x69\x6D\x69\x74","\x6D\x61\x78\x44\x69\x73\x74\x61\x6E\x63\x65\x4C\x69\x6D\x69\x74","\x6D\x69\x6E\x44\x69\x73\x74\x61\x6E\x63\x65\x4C\x69\x6D\x69\x74\x53\x71\x75\x61\x72\x65\x64","\x69\x6E\x69\x74\x69\x61\x6C\x54\x65\x6D\x70","\x74\x65\x6D\x70\x65\x72\x61\x74\x75\x72\x65","\x6D\x61\x78\x49\x74\x65\x72\x61\x74\x69\x6F\x6E\x73","\x69\x74\x65\x72\x61\x74\x69\x6F\x6E","\x61\x6C\x6C\x6F\x77\x65\x64\x54\x6F\x52\x75\x6E","\x76\x65\x72\x74\x65\x78\x41\x72\x72\x61\x79","\x67\x65\x74\x42\x6F\x75\x6E\x64\x73","\x69\x6E\x64\x69\x63\x65\x73","\x64\x69\x73\x70\x58","\x64\x69\x73\x70\x59","\x63\x65\x6C\x6C\x4C\x6F\x63\x61\x74\x69\x6F\x6E","\x69\x73\x4D\x6F\x76\x65\x61\x62\x6C\x65","\x6E\x65\x69\x67\x68\x62\x6F\x75\x72\x73","\x72\x61\x64\x69\x75\x73","\x72\x61\x64\x69\x75\x73\x53\x71\x75\x61\x72\x65\x64","\x67\x65\x74\x4F\x70\x70\x6F\x73\x69\x74\x65\x73","\x72\x65\x73\x65\x74\x45\x64\x67\x65","\x63\x61\x6C\x63\x52\x65\x70\x75\x6C\x73\x69\x6F\x6E","\x63\x61\x6C\x63\x41\x74\x74\x72\x61\x63\x74\x69\x6F\x6E","\x63\x61\x6C\x63\x50\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x72\x65\x64\x75\x63\x65\x54\x65\x6D\x70\x65\x72\x61\x74\x75\x72\x65","\x72\x61\x6E\x64\x6F\x6D","\x6D\x6F\x76\x65\x43\x69\x72\x63\x6C\x65","\x67\x65\x74\x52\x61\x64\x69\x75\x73","\x63\x69\x72\x63\x6C\x65","\x66\x69\x6E\x64\x50\x61\x72\x61\x6C\x6C\x65\x6C\x73","\x67\x65\x74\x45\x64\x67\x65\x49\x64","\x72\x6F\x75\x74\x65","\x6C\x61\x79\x6F\x75\x74\x73","\x6D\x61\x73\x74\x65\x72","\x70\x6C\x61\x63\x65\x4C\x61\x62\x65\x6C\x73","\x61\x76\x6F\x69\x64","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x73","\x74\x65\x6D\x70","\x6D\x61\x78\x52\x61\x6E\x6B","\x6D\x69\x6E\x52\x61\x6E\x6B","\x6E\x65\x78\x74\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x65\x6C\x6C\x73","\x70\x72\x65\x76\x69\x6F\x75\x73\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x4E\x65\x78\x74\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x50\x72\x65\x76\x69\x6F\x75\x73\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x47\x65\x6E\x65\x72\x61\x6C\x50\x75\x72\x70\x6F\x73\x65\x56\x61\x72\x69\x61\x62\x6C\x65","\x73\x65\x74\x47\x65\x6E\x65\x72\x61\x6C\x50\x75\x72\x70\x6F\x73\x65\x56\x61\x72\x69\x61\x62\x6C\x65","\x73\x65\x74\x58","\x73\x65\x74\x59","\x63\x6F\x6E\x6E\x65\x63\x74\x73\x41\x73\x54\x61\x72\x67\x65\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x73\x41\x73\x53\x6F\x75\x72\x63\x65","\x68\x61\x73\x68\x43\x6F\x64\x65","\x67\x65\x74\x52\x61\x6E\x6B\x56\x61\x6C\x75\x65","\x67\x65\x74\x43\x6F\x72\x65\x43\x65\x6C\x6C","\x65\x64\x67\x65\x73","\x69\x73\x52\x65\x76\x65\x72\x73\x65\x64","\x74\x69\x67\x68\x74\x65\x6E\x54\x6F\x53\x6F\x75\x72\x63\x65","\x72\x6F\x6F\x74\x73","\x76\x65\x72\x74\x65\x78\x4D\x61\x70\x70\x65\x72","\x65\x64\x67\x65\x4D\x61\x70\x70\x65\x72","\x53\x4F\x55\x52\x43\x45\x53\x43\x41\x4E\x53\x54\x41\x52\x54\x52\x41\x4E\x4B","\x63\x72\x65\x61\x74\x65\x49\x6E\x74\x65\x72\x6E\x61\x6C\x43\x65\x6C\x6C\x73","\x72\x61\x6E\x6B\x73","\x64\x66\x73\x43\x6F\x75\x6E\x74","\x69\x6E\x69\x74\x69\x61\x6C\x52\x61\x6E\x6B","\x73\x6C\x69\x63\x65","\x66\x69\x78\x52\x61\x6E\x6B\x73","\x65\x78\x74\x65\x6E\x64\x65\x64\x44\x66\x73","\x6E\x65\x73\x74\x65\x64\x42\x65\x73\x74\x52\x61\x6E\x6B\x73","\x63\x75\x72\x72\x65\x6E\x74\x42\x65\x73\x74\x43\x72\x6F\x73\x73\x69\x6E\x67\x73","\x69\x74\x65\x72\x61\x74\x69\x6F\x6E\x73\x57\x69\x74\x68\x6F\x75\x74\x49\x6D\x70\x72\x6F\x76\x65\x6D\x65\x6E\x74","\x6D\x61\x78\x4E\x6F\x49\x6D\x70\x72\x6F\x76\x65\x6D\x65\x6E\x74\x49\x74\x65\x72\x61\x74\x69\x6F\x6E\x73","\x63\x61\x6C\x63\x75\x6C\x61\x74\x65\x43\x72\x6F\x73\x73\x69\x6E\x67\x73","\x77\x65\x69\x67\x68\x74\x65\x64\x4D\x65\x64\x69\x61\x6E","\x74\x72\x61\x6E\x73\x70\x6F\x73\x65","\x63\x61\x6C\x63\x75\x6C\x61\x74\x65\x52\x61\x6E\x6B\x43\x72\x6F\x73\x73\x69\x6E\x67","\x6D\x65\x64\x69\x61\x6E\x52\x61\x6E\x6B","\x6D\x65\x64\x69\x61\x6E\x56\x61\x6C\x75\x65","\x6C\x65\x6E\x74\x68","\x67\x65\x74\x49\x6E\x63\x6F\x6D\x69\x6E\x67\x45\x64\x67\x65\x73","\x69\x6E\x74\x72\x61\x43\x65\x6C\x6C\x53\x70\x61\x63\x69\x6E\x67","\x69\x6E\x74\x65\x72\x52\x61\x6E\x6B\x43\x65\x6C\x6C\x53\x70\x61\x63\x69\x6E\x67","\x6F\x72\x69\x65\x6E\x74\x61\x74\x69\x6F\x6E","\x69\x6E\x69\x74\x69\x61\x6C\x58","\x70\x61\x72\x61\x6C\x6C\x65\x6C\x45\x64\x67\x65\x53\x70\x61\x63\x69\x6E\x67","\x6A\x65\x74\x74\x79\x50\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x6C\x69\x6D\x69\x74\x58","\x63\x75\x72\x72\x65\x6E\x74\x58\x44\x65\x6C\x74\x61","\x77\x69\x64\x65\x73\x74\x52\x61\x6E\x6B","\x72\x61\x6E\x6B\x54\x6F\x70\x59","\x72\x61\x6E\x6B\x42\x6F\x74\x74\x6F\x6D\x59","\x77\x69\x64\x65\x73\x74\x52\x61\x6E\x6B\x56\x61\x6C\x75\x65","\x72\x61\x6E\x6B\x57\x69\x64\x74\x68\x73","\x72\x61\x6E\x6B\x59","\x66\x69\x6E\x65\x54\x75\x6E\x69\x6E\x67","\x50\x4F\x4C\x59\x4C\x49\x4E\x45","\x6E\x65\x78\x74\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x61\x63\x68\x65","\x70\x72\x65\x76\x69\x6F\x75\x73\x4C\x61\x79\x65\x72\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x43\x61\x63\x68\x65","\x70\x72\x69\x6E\x74\x53\x74\x61\x74\x75\x73","\x3D\x3D\x3D\x3D\x3D\x3D\x43\x6F\x6F\x72\x64\x20\x61\x73\x73\x69\x67\x6E\x6D\x65\x6E\x74\x20\x64\x65\x62\x75\x67\x3D\x3D\x3D\x3D\x3D\x3D\x3D","\x52\x61\x6E\x6B\x20","\x20\x3A\x20","\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D","\x69\x6E\x69\x74\x69\x61\x6C\x43\x6F\x6F\x72\x64\x73","\x6D\x69\x6E\x4E\x6F\x64\x65","\x6D\x65\x64\x69\x61\x6E\x50\x6F\x73","\x6D\x69\x6E\x50\x61\x74\x68","\x73\x65\x74\x43\x65\x6C\x6C\x4C\x6F\x63\x61\x74\x69\x6F\x6E\x73","\x6D\x65\x64\x69\x61\x6E\x58\x56\x61\x6C\x75\x65","\x72\x61\x6E\x6B\x4D\x65\x64\x69\x61\x6E\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x61\x6C\x63\x75\x6C\x61\x74\x65\x64\x57\x65\x69\x67\x68\x74\x65\x64\x56\x61\x6C\x75\x65","\x63\x61\x6C\x63\x75\x6C\x61\x74\x65\x57\x69\x64\x65\x73\x74\x52\x61\x6E\x6B","\x72\x61\x6E\x6B\x43\x6F\x6F\x72\x64\x69\x6E\x61\x74\x65\x73","\x65\x64\x67\x65\x2E\x65\x64\x67\x65\x73\x20\x69\x73\x20\x6E\x75\x6C\x6C","\x41\x74\x20\x6C\x65\x61\x73\x74\x20\x6F\x6E\x65\x20\x63\x65\x6C\x6C\x20\x68\x61\x73\x20\x6E\x6F\x20\x62\x6F\x75\x6E\x64\x73","\x72\x65\x70\x6F\x73\x69\x74\x69\x6F\x6E\x56\x61\x6C\x69\x64","\x4D\x41\x58\x5F\x56\x41\x4C\x55\x45","\x4F\x52\x54\x48\x4F\x47\x4F\x4E\x41\x4C","\x43\x55\x52\x56\x45","\x73\x65\x74\x45\x64\x67\x65\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x69\x73\x50\x6F\x72\x74","\x70\x72\x6F\x63\x65\x73\x73\x52\x65\x76\x65\x72\x73\x65\x64\x45\x64\x67\x65","\x64\x65\x74\x65\x72\x6D\x69\x6E\x69\x73\x74\x69\x63","\x6D\x6F\x76\x65\x50\x61\x72\x65\x6E\x74","\x70\x61\x72\x65\x6E\x74\x42\x6F\x72\x64\x65\x72","\x69\x6E\x74\x65\x72\x48\x69\x65\x72\x61\x72\x63\x68\x79\x53\x70\x61\x63\x69\x6E\x67","\x74\x72\x61\x76\x65\x72\x73\x65\x41\x6E\x63\x65\x73\x74\x6F\x72\x73","\x65\x64\x67\x65\x73\x43\x61\x63\x68\x65","\x72\x75\x6E","\x75\x70\x64\x61\x74\x65\x47\x72\x6F\x75\x70\x42\x6F\x75\x6E\x64\x73","\x66\x69\x6E\x64\x52\x6F\x6F\x74\x73","\x63\x6F\x6E\x63\x61\x74","\x69\x73\x56\x61\x6C\x69\x64\x41\x6E\x63\x65\x73\x74\x6F\x72","\x66\x69\x6C\x74\x65\x72\x44\x65\x73\x63\x65\x6E\x64\x61\x6E\x74\x73","\x63\x79\x63\x6C\x65\x53\x74\x61\x67\x65","\x6C\x61\x79\x65\x72\x69\x6E\x67\x53\x74\x61\x67\x65","\x63\x72\x6F\x73\x73\x69\x6E\x67\x53\x74\x61\x67\x65","\x70\x6C\x61\x63\x65\x6D\x65\x6E\x74\x53\x74\x61\x67\x65","\x63\x75\x72\x72\x65\x6E\x74\x45\x64\x69\x74","\x73\x65\x74\x52\x6F\x6F\x74","\x6D\x61\x69\x6E\x74\x61\x69\x6E\x45\x64\x67\x65\x50\x61\x72\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x49\x64\x73","\x70\x6F\x73\x74\x66\x69\x78","\x6E\x65\x78\x74\x49\x64","\x75\x70\x64\x61\x74\x65\x4C\x65\x76\x65\x6C","\x65\x6E\x64\x69\x6E\x67\x55\x70\x64\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x52\x6F\x6F\x74","\x69\x73\x43\x72\x65\x61\x74\x65\x49\x64\x73","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x49\x64\x73","\x69\x6E\x73\x65\x72\x74","\x66\x69\x6C\x74\x65\x72\x43\x65\x6C\x6C\x73","\x67\x65\x74\x44\x65\x73\x63\x65\x6E\x64\x61\x6E\x74\x73","\x72\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65\x64","\x63\x65\x6C\x6C\x41\x64\x64\x65\x64","\x69\x73\x52\x6F\x6F\x74","\x75\x70\x64\x61\x74\x65\x45\x64\x67\x65\x50\x61\x72\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65\x49\x64","\x73\x65\x74\x49\x64","\x69\x73\x4E\x75\x6D\x65\x72\x69\x63","\x75\x70\x64\x61\x74\x65\x45\x64\x67\x65\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x4E\x65\x61\x72\x65\x73\x74\x43\x6F\x6D\x6D\x6F\x6E\x41\x6E\x63\x65\x73\x74\x6F\x72","\x67\x65\x74\x4F\x72\x69\x67\x69\x6E","\x50\x41\x54\x48\x5F\x53\x45\x50\x41\x52\x41\x54\x4F\x52","\x67\x65\x74\x50\x61\x72\x65\x6E\x74\x50\x61\x74\x68","\x70\x61\x72\x65\x6E\x74\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x74\x43\x68\x69\x6C\x64\x72\x65\x6E","\x63\x68\x69\x6C\x64\x72\x65\x6E","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x43\x68\x69\x6C\x64\x45\x64\x67\x65\x73","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x73","\x74\x65\x72\x6D\x69\x6E\x61\x6C\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x69\x6E\x73\x65\x72\x74\x45\x64\x67\x65","\x72\x65\x6D\x6F\x76\x65\x45\x64\x67\x65","\x67\x65\x74\x44\x69\x72\x65\x63\x74\x65\x64\x45\x64\x67\x65\x43\x6F\x75\x6E\x74","\x67\x65\x74\x4F\x75\x74\x67\x6F\x69\x6E\x67\x45\x64\x67\x65\x73","\x67\x65\x74\x54\x6F\x70\x6D\x6F\x73\x74\x43\x65\x6C\x6C\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x56\x61\x6C\x75\x65","\x76\x61\x6C\x75\x65\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x76\x61\x6C\x75\x65\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x6F\x6D\x65\x74\x72\x79\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x73\x74\x79\x6C\x65\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x69\x73\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x73\x65\x74\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x53\x74\x61\x74\x65\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x76\x69\x73\x69\x62\x6C\x65\x53\x74\x61\x74\x65\x46\x6F\x72\x43\x65\x6C\x6C\x43\x68\x61\x6E\x67\x65\x64","\x6D\x65\x72\x67\x65\x43\x68\x69\x6C\x64\x72\x65\x6E","\x6D\x65\x72\x67\x65\x43\x68\x69\x6C\x64\x72\x65\x6E\x49\x6D\x70\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74\x73","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C\x49\x6D\x70\x6C","\x72\x65\x73\x74\x6F\x72\x65\x43\x6C\x6F\x6E\x65","\x63\x65\x6C\x6C\x43\x6C\x6F\x6E\x65\x64","\x70\x72\x65\x76\x69\x6F\x75\x73\x49\x6E\x64\x65\x78","\x69\x6E\x64\x65\x78","\x74\x65\x72\x6D\x69\x6E\x61\x6C","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x61\x74\x74\x72\x69\x62\x75\x74\x65","\x6F\x6E\x49\x6E\x69\x74","\x76\x65\x72\x74\x65\x78","\x65\x64\x67\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x6D\x78\x54\x72\x61\x6E\x73\x69\x65\x6E\x74","\x69\x64\x20\x76\x61\x6C\x75\x65\x20\x70\x61\x72\x65\x6E\x74\x20\x73\x6F\x75\x72\x63\x65\x20\x74\x61\x72\x67\x65\x74\x20\x63\x68\x69\x6C\x64\x72\x65\x6E\x20\x65\x64\x67\x65\x73","\x73\x65\x74\x56\x65\x72\x74\x65\x78","\x73\x65\x74\x45\x64\x67\x65","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x50\x61\x72\x65\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x45\x64\x67\x65\x49\x6E\x64\x65\x78","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x63\x6C\x6F\x6E\x65\x56\x61\x6C\x75\x65","\x54\x52\x41\x4E\x53\x4C\x41\x54\x45\x5F\x43\x4F\x4E\x54\x52\x4F\x4C\x5F\x50\x4F\x49\x4E\x54\x53","\x61\x6C\x74\x65\x72\x6E\x61\x74\x65\x42\x6F\x75\x6E\x64\x73","\x73\x6F\x75\x72\x63\x65\x50\x6F\x69\x6E\x74","\x74\x61\x72\x67\x65\x74\x50\x6F\x69\x6E\x74","\x73\x77\x61\x70","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x74\x61\x6E","\x70\x6F\x77","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x44\x49\x52\x45\x43\x54\x49\x4F\x4E","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x50\x72\x69\x6E\x74\x65\x72\x2D\x66\x72\x69\x65\x6E\x64\x6C\x79\x20\x76\x65\x72\x73\x69\x6F\x6E","\x70\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72","\x61\x75\x74\x6F\x4F\x72\x69\x67\x69\x6E","\x70\x72\x69\x6E\x74\x4F\x76\x65\x72\x6C\x61\x79\x73","\x77\x6E\x64","\x70\x61\x67\x65\x43\x6F\x75\x6E\x74","\x67\x65\x74\x57\x69\x6E\x64\x6F\x77","\x67\x65\x74\x44\x6F\x63\x74\x79\x70\x65","\x3C\x6D\x65\x74\x61\x20\x68\x74\x74\x70\x2D\x65\x71\x75\x69\x76\x3D\x22\x58\x2D\x55\x41\x2D\x43\x6F\x6D\x70\x61\x74\x69\x62\x6C\x65\x22\x20\x63\x6F\x6E\x74\x65\x6E\x74\x3D\x22\x49\x45\x3D\x38\x22\x3E","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65\x4F\x76\x65\x72\x6C\x61\x79","\x67\x65\x74\x44\x72\x61\x77\x50\x61\x6E\x65","\x77\x72\x69\x74\x65\x48\x65\x61\x64","\x3C\x62\x6F\x64\x79\x20\x63\x6C\x61\x73\x73\x3D\x22\x6D\x78\x50\x61\x67\x65\x22\x3E","\x63\x72\x65\x61\x74\x65\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x41\x66\x74\x65\x72","\x61\x6C\x77\x61\x79\x73","\x6D\x78\x50\x61\x67\x65\x42\x72\x65\x61\x6B","\x67\x65\x74\x43\x6F\x76\x65\x72\x50\x61\x67\x65\x73","\x67\x65\x74\x41\x70\x70\x65\x6E\x64\x69\x63\x65\x73","\x61\x64\x64\x47\x72\x61\x70\x68\x46\x72\x61\x67\x6D\x65\x6E\x74","\x72\x65\x6E\x64\x65\x72\x50\x61\x67\x65","\x6D\x78\x50\x61\x67\x65\x2D","\x3C\x74\x69\x74\x6C\x65\x3E","\x3C\x2F\x74\x69\x74\x6C\x65\x3E","\x3C\x73\x74\x79\x6C\x65\x20\x74\x79\x70\x65\x3D\x22\x74\x65\x78\x74\x2F\x63\x73\x73\x22\x3E","\x40\x6D\x65\x64\x69\x61\x20\x70\x72\x69\x6E\x74\x20\x7B","\x20\x20\x74\x61\x62\x6C\x65\x2E\x6D\x78\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72\x20\x7B\x20\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x6E\x6F\x6E\x65\x3B\x20\x7D","\x20\x20\x68\x72\x2E\x6D\x78\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x20\x7B\x20\x64\x69\x73\x70\x6C\x61\x79\x3A\x20\x6E\x6F\x6E\x65\x3B\x20\x7D","\x40\x6D\x65\x64\x69\x61\x20\x73\x63\x72\x65\x65\x6E\x20\x7B","\x20\x20\x74\x61\x62\x6C\x65\x2E\x6D\x78\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72\x20\x7B\x20\x70\x6F\x73\x69\x74\x69\x6F\x6E\x3A\x20\x66\x69\x78\x65\x64\x3B\x20\x72\x69\x67\x68\x74\x3A\x20\x31\x30\x70\x78\x3B\x20\x74\x6F\x70\x3A\x20\x31\x30\x70\x78\x3B\x66\x6F\x6E\x74\x2D\x66\x61\x6D\x69\x6C\x79\x3A\x20\x41\x72\x69\x61\x6C\x3B\x20\x66\x6F\x6E\x74\x2D\x73\x69\x7A\x65\x3A\x31\x30\x70\x74\x3B\x20\x62\x6F\x72\x64\x65\x72\x3A\x20\x73\x6F\x6C\x69\x64\x20\x31\x70\x78\x20\x64\x61\x72\x6B\x67\x72\x61\x79\x3B\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x3A\x20\x77\x68\x69\x74\x65\x3B\x20\x62\x6F\x72\x64\x65\x72\x2D\x63\x6F\x6C\x6C\x61\x70\x73\x65\x3A\x63\x6F\x6C\x6C\x61\x70\x73\x65\x3B\x20\x7D","\x20\x20\x74\x61\x62\x6C\x65\x2E\x6D\x78\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72\x20\x74\x64\x20\x7B\x20\x62\x6F\x72\x64\x65\x72\x3A\x20\x73\x6F\x6C\x69\x64\x20\x31\x70\x78\x20\x67\x72\x61\x79\x3B\x20\x70\x61\x64\x64\x69\x6E\x67\x3A\x34\x70\x78\x3B\x20\x7D","\x20\x20\x62\x6F\x64\x79\x2E\x6D\x78\x50\x61\x67\x65\x20\x7B\x20\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x3A\x20\x67\x72\x61\x79\x3B\x20\x7D","\x3C\x2F\x73\x74\x79\x6C\x65\x3E","\x6D\x78\x50\x61\x67\x65\x53\x65\x6C\x65\x63\x74\x6F\x72","\x61","\x23\x6D\x78\x50\x61\x67\x65\x2D","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x49\x6E\x73\x69\x64\x65","\x67\x65\x74\x43\x61\x6E\x76\x61\x73","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x6E\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x6E\x65","\x73\x74\x79\x6C\x65\x73","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78\x53\x74\x79\x6C\x65","\x70\x75\x74\x44\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78\x53\x74\x79\x6C\x65","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x70\x75\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x53\x48\x41\x50\x45","\x53\x48\x41\x50\x45\x5F\x52\x45\x43\x54\x41\x4E\x47\x4C\x45","\x53\x54\x59\x4C\x45\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52","\x52\x65\x63\x74\x61\x6E\x67\x6C\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x41\x4C\x49\x47\x4E","\x53\x54\x59\x4C\x45\x5F\x41\x4C\x49\x47\x4E","\x53\x54\x59\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x43\x33\x44\x39\x46\x46","\x53\x54\x59\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x23\x36\x34\x38\x32\x42\x39","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x43\x4F\x4C\x4F\x52","\x23\x37\x37\x34\x34\x30\x30","\x53\x48\x41\x50\x45\x5F\x43\x4F\x4E\x4E\x45\x43\x54\x4F\x52","\x23\x34\x34\x36\x32\x39\x39","\x64\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78","\x70\x75\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x64\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78\x53\x74\x79\x6C\x65","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6F\x72\x69\x67\x69\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65\x4F\x66\x66\x73\x65\x74","\x69\x6E\x76\x61\x6C\x69\x64","\x69\x6E\x76\x61\x6C\x69\x64\x4F\x72\x64\x65\x72","\x6F\x72\x64\x65\x72\x43\x68\x61\x6E\x67\x65\x64","\x76\x69\x73\x69\x62\x6C\x65\x53\x6F\x75\x72\x63\x65\x53\x74\x61\x74\x65","\x76\x69\x73\x69\x62\x6C\x65\x54\x61\x72\x67\x65\x74\x53\x74\x61\x74\x65","\x74\x65\x72\x6D\x69\x6E\x61\x6C\x44\x69\x73\x74\x61\x6E\x63\x65","\x73\x65\x67\x6D\x65\x6E\x74\x73","\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x42\x6F\x75\x6E\x64\x73","\x73\x65\x74\x41\x62\x73\x6F\x6C\x75\x74\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x74\x56\x69\x73\x69\x62\x6C\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C\x53\x74\x61\x74\x65","\x73\x65\x74\x56\x69\x73\x69\x62\x6C\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C\x53\x74\x61\x74\x65","\x64\x6F\x6E\x65\x52\x65\x73\x6F\x75\x72\x63\x65","\x75\x70\x64\x61\x74\x69\x6E\x67\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x52\x65\x73\x6F\x75\x72\x63\x65","\x75\x70\x64\x61\x74\x69\x6E\x67\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x69\x6E\x67\x6C\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x69\x73\x53\x69\x6E\x67\x6C\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x65\x74\x53\x69\x6E\x67\x6C\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x68\x61\x6E\x67\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x65\x74\x43\x65\x6C\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x73","\x67\x65\x74\x46\x69\x72\x73\x74\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65","\x61\x64\x64\x43\x65\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x61\x64\x64\x65\x64","\x72\x65\x6D\x6F\x76\x65\x64","\x6D\x78\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x68\x61\x6E\x67\x65\x2E\x65\x78\x65\x63\x75\x74\x65","\x65\x6E\x74\x65\x72","\x6C\x65\x61\x76\x65","\x65\x64\x69\x74\x69\x6E\x67\x43\x65\x6C\x6C","\x74\x72\x69\x67\x67\x65\x72","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x61\x75\x74\x6F\x53\x69\x7A\x65","\x65\x6D\x70\x74\x79\x4C\x61\x62\x65\x6C\x54\x65\x78\x74","\x74\x65\x78\x74\x4E\x6F\x64\x65","\x6D\x78\x43\x65\x6C\x6C\x45\x64\x69\x74\x6F\x72","\x63\x6F\x6C\x73","\x32\x30","\x34","\x62\x6C\x75\x72","\x66\x6F\x63\x75\x73\x4C\x6F\x73\x74","\x6B\x65\x79\x64\x6F\x77\x6E","\x6B\x65\x79\x43\x6F\x64\x65","\x69\x73\x45\x6E\x74\x65\x72\x53\x74\x6F\x70\x73\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x73\x74\x6F\x70\x45\x64\x69\x74\x69\x6E\x67","\x63\x6C\x65\x61\x72\x4F\x6E\x43\x68\x61\x6E\x67\x65","\x73\x65\x74\x4D\x6F\x64\x69\x66\x69\x65\x64","\x6B\x65\x79\x70\x72\x65\x73\x73","\x69\x73\x4C\x61\x62\x65\x6C\x43\x6C\x69\x70\x70\x65\x64","\x69\x73\x57\x72\x61\x70\x70\x69\x6E\x67","\x41\x4C\x49\x47\x4E\x5F\x4C\x45\x46\x54","\x69\x73\x4D\x6F\x64\x69\x66\x69\x65\x64","\x69\x73\x49\x6E\x76\x6F\x6B\x65\x73\x53\x74\x6F\x70\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x69\x73\x48\x69\x64\x65\x4C\x61\x62\x65\x6C","\x6F\x75\x74\x6C\x69\x6E\x65","\x67\x65\x74\x45\x64\x69\x74\x6F\x72\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x49\x6E\x69\x74\x69\x61\x6C\x56\x61\x6C\x75\x65","\x67\x65\x74\x45\x6D\x70\x74\x79\x4C\x61\x62\x65\x6C\x54\x65\x78\x74","\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x44\x69\x76","\x67\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x56\x61\x6C\x75\x65","\x67\x65\x74\x45\x64\x69\x74\x69\x6E\x67\x56\x61\x6C\x75\x65","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47\x5F\x54\x4F\x50","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47\x5F\x52\x49\x47\x48\x54","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47\x5F\x42\x4F\x54\x54\x4F\x4D","\x53\x54\x59\x4C\x45\x5F\x53\x50\x41\x43\x49\x4E\x47\x5F\x4C\x45\x46\x54","\x67\x65\x74\x45\x64\x69\x74\x69\x6E\x67\x43\x65\x6C\x6C","\x64\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x68\x61\x70\x65","\x64\x65\x66\x61\x75\x6C\x74\x56\x65\x72\x74\x65\x78\x53\x68\x61\x70\x65","\x64\x65\x66\x61\x75\x6C\x74\x54\x65\x78\x74\x53\x68\x61\x70\x65","\x6C\x65\x67\x61\x63\x79\x43\x6F\x6E\x74\x72\x6F\x6C\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x64\x65\x66\x61\x75\x6C\x74\x53\x68\x61\x70\x65\x73","\x72\x65\x67\x69\x73\x74\x65\x72\x53\x68\x61\x70\x65","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65","\x63\x72\x65\x61\x74\x65\x53\x68\x61\x70\x65","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65\x53\x68\x61\x70\x65","\x6F\x72\x64\x65\x72\x65\x64","\x6B\x65\x65\x70\x45\x64\x67\x65\x73\x49\x6E\x46\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x66\x69\x72\x73\x74\x45\x64\x67\x65","\x69\x6E\x73\x65\x72\x74\x53\x74\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x69\x6E\x73\x74\x61\x6C\x6C\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x67\x65\x74\x50\x72\x65\x76\x69\x6F\x75\x73\x53\x74\x61\x74\x65\x49\x6E\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x66\x69\x6E\x64\x50\x72\x65\x76\x69\x6F\x75\x73\x53\x74\x61\x74\x65\x49\x6E\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x72\x64\x65\x72","\x6F\x72\x64\x65\x72\x45\x64\x67\x65","\x6B\x65\x65\x70\x45\x64\x67\x65\x73\x49\x6E\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x67\x65\x74\x53\x68\x61\x70\x65\x43\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x53\x68\x61\x70\x65","\x67\x65\x74\x53\x68\x61\x70\x65","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x53\x68\x61\x70\x65","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x43\x6F\x6C\x6F\x72","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x47\x72\x61\x64\x69\x65\x6E\x74\x43\x6F\x6C\x6F\x72","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x44\x49\x52\x45\x43\x54\x49\x4F\x4E","\x67\x65\x74\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x49\x6D\x61\x67\x65","\x70\x6F\x73\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x65\x53\x68\x61\x70\x65","\x72\x65\x73\x6F\x6C\x76\x65\x43\x6F\x6C\x6F\x72","\x67\x65\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x49\x6E\x64\x69\x63\x61\x74\x6F\x72\x43\x6F\x6C\x6F\x72\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x69\x6E\x64\x69\x63\x61\x74\x65\x64","\x67\x65\x74\x4C\x61\x62\x65\x6C\x56\x61\x6C\x75\x65","\x67\x65\x74\x4C\x61\x62\x65\x6C","\x63\x72\x65\x61\x74\x65\x4C\x61\x62\x65\x6C","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x69\x73\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C","\x67\x65\x74\x56\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x54\x59\x4C\x45","\x53\x54\x59\x4C\x45\x5F\x48\x4F\x52\x49\x5A\x4F\x4E\x54\x41\x4C","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x42\x41\x43\x4B\x47\x52\x4F\x55\x4E\x44\x43\x4F\x4C\x4F\x52","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x42\x4F\x52\x44\x45\x52\x43\x4F\x4C\x4F\x52","\x53\x54\x59\x4C\x45\x5F\x4F\x56\x45\x52\x46\x4C\x4F\x57","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x41\x44\x44\x49\x4E\x47","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65\x4C\x61\x62\x65\x6C","\x63\x6F\x6E\x76\x65\x72\x74\x50\x6F\x69\x6E\x74","\x69\x73\x4C\x61\x62\x65\x6C\x45\x76\x65\x6E\x74","\x49\x4D\x47","\x4E\x4F\x5F\x46\x4F","\x67\x65\x74\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x6F\x76\x65\x72\x6C\x61\x79","\x69\x6E\x73\x74\x61\x6C\x6C\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x63\x72\x65\x61\x74\x65\x43\x6F\x6E\x74\x72\x6F\x6C","\x67\x65\x74\x46\x6F\x6C\x64\x69\x6E\x67\x49\x6D\x61\x67\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x63\x6F\x6E\x74\x72\x6F\x6C","\x69\x6E\x69\x74\x43\x6F\x6E\x74\x72\x6F\x6C","\x44\x49\x41\x4C\x45\x43\x54\x5F\x50\x52\x45\x46\x45\x52\x48\x54\x4D\x4C","\x69\x6E\x6E\x65\x72\x4E\x6F\x64\x65","\x69\x73\x53\x68\x61\x70\x65\x45\x76\x65\x6E\x74","\x67\x65\x73\x74\x75\x72\x65\x73\x74\x61\x72\x74","\x6C\x61\x73\x74\x54\x6F\x75\x63\x68\x54\x69\x6D\x65","\x67\x65\x73\x74\x75\x72\x65\x65\x6E\x64","\x67\x65\x73\x74\x75\x72\x65\x45\x6E\x61\x62\x6C\x65\x64","\x68\x61\x6E\x64\x6C\x65\x47\x65\x73\x74\x75\x72\x65","\x72\x65\x64\x72\x61\x77\x4C\x61\x62\x65\x6C","\x67\x65\x74\x4C\x61\x62\x65\x6C\x42\x6F\x75\x6E\x64\x73","\x69\x73\x43\x6C\x69\x70\x70\x69\x6E\x67","\x67\x65\x74\x54\x65\x78\x74\x53\x63\x61\x6C\x65","\x72\x6F\x74\x61\x74\x65\x4C\x61\x62\x65\x6C\x42\x6F\x75\x6E\x64\x73","\x72\x65\x64\x72\x61\x77\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x72\x65\x64\x72\x61\x77\x43\x6F\x6E\x74\x72\x6F\x6C","\x67\x65\x74\x43\x6F\x6E\x74\x72\x6F\x6C\x42\x6F\x75\x6E\x64\x73","\x65\x71\x75\x61\x6C\x45\x6E\x74\x72\x69\x65\x73","\x65\x71\x75\x61\x6C\x50\x6F\x69\x6E\x74\x73","\x67\x65\x74\x50\x6F\x72\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x67\x65\x74\x52\x6F\x75\x74\x69\x6E\x67\x43\x65\x6E\x74\x65\x72\x59","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D\x43\x6F\x6E\x74\x72\x6F\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x74\x52\x6F\x75\x74\x69\x6E\x67\x43\x65\x6E\x74\x65\x72\x58","\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x45\x4C\x42\x4F\x57\x5F\x56\x45\x52\x54\x49\x43\x41\x4C","\x6F\x72\x74\x68\x42\x75\x66\x66\x65\x72","\x44\x49\x52\x45\x43\x54\x49\x4F\x4E\x5F\x4D\x41\x53\x4B\x5F\x41\x4C\x4C","\x6C\x69\x6D\x69\x74\x73","\x76\x65\x72\x74\x65\x78\x53\x65\x70\x65\x72\x61\x74\x69\x6F\x6E\x73","\x72\x65\x76\x65\x72\x73\x65\x50\x6F\x72\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x72\x6F\x75\x74\x65\x50\x61\x74\x74\x65\x72\x6E\x73","\x77\x61\x79\x50\x6F\x69\x6E\x74\x73\x31","\x64\x69\x72\x56\x65\x63\x74\x6F\x72\x73","\x54\x41\x52\x47\x45\x54\x5F\x4D\x41\x53\x4B","\x53\x4F\x55\x52\x43\x45\x5F\x4D\x41\x53\x4B","\x53\x49\x44\x45\x5F\x4D\x41\x53\x4B","\x43\x45\x4E\x54\x45\x52\x5F\x4D\x41\x53\x4B","\x76\x61\x6C\x75\x65\x73","\x70\x75\x74\x56\x61\x6C\x75\x65","\x67\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x45\x4D\x50\x54\x59\x5F\x50\x4F\x49\x4E\x54","\x75\x70\x64\x61\x74\x69\x6E\x67\x44\x6F\x63\x75\x6D\x65\x6E\x74\x52\x65\x73\x6F\x75\x72\x63\x65","\x75\x70\x64\x61\x74\x69\x6E\x67\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x61\x6C\x6C\x6F\x77\x45\x76\x61\x6C","\x63\x61\x70\x74\x75\x72\x65\x44\x6F\x63\x75\x6D\x65\x6E\x74\x47\x65\x73\x74\x75\x72\x65","\x6F\x70\x74\x69\x6D\x69\x7A\x65\x56\x6D\x6C\x52\x65\x66\x6C\x6F\x77\x73","\x72\x65\x6E\x64\x65\x72\x69\x6E\x67","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65","\x73\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x73\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x72\x65\x76\x61\x6C\x69\x64\x61\x74\x65","\x70\x72\x65\x76\x69\x6F\x75\x73\x53\x63\x61\x6C\x65","\x70\x72\x65\x76\x69\x6F\x75\x73\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x73\x65\x74\x53\x63\x61\x6C\x65","\x69\x6E\x76\x61\x6C\x69\x64\x61\x74\x65","\x76\x61\x6C\x69\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65\x53\x74\x61\x74\x65","\x6D\x78\x47\x72\x61\x70\x68\x56\x69\x65\x77\x2E\x76\x61\x6C\x69\x64\x61\x74\x65","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x6F\x75\x6E\x64\x73","\x76\x61\x6C\x69\x64\x61\x74\x65\x50\x6F\x69\x6E\x74\x73","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x63\x72\x65\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x72\x65\x64\x72\x61\x77\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x42\x6F\x75\x6E\x64\x73","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x48\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x54\x41\x54\x49\x4F\x4E","\x75\x70\x64\x61\x74\x65\x56\x65\x72\x74\x65\x78\x4C\x61\x62\x65\x6C\x4F\x66\x66\x73\x65\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x4F\x66\x66\x73\x65\x74\x46\x6F\x72\x43\x65\x6C\x6C","\x75\x70\x64\x61\x74\x65\x46\x69\x78\x65\x64\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74\x73","\x75\x70\x64\x61\x74\x65\x50\x6F\x69\x6E\x74\x73","\x75\x70\x64\x61\x74\x65\x46\x6C\x6F\x61\x74\x69\x6E\x67\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74\x73","\x75\x70\x64\x61\x74\x65\x45\x64\x67\x65\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x45\x64\x67\x65\x4C\x61\x62\x65\x6C\x4F\x66\x66\x73\x65\x74","\x63\x68\x69\x6C\x64\x4D\x6F\x76\x65\x64","\x69\x73\x52\x65\x6E\x64\x65\x72\x69\x6E\x67","\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x75\x70\x64\x61\x74\x65\x46\x69\x78\x65\x64\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x50\x6F\x69\x6E\x74","\x67\x65\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x72\x74","\x64\x65\x66\x61\x75\x6C\x74\x4C\x6F\x6F\x70\x53\x74\x79\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x45\x44\x47\x45","\x69\x73\x41\x6C\x6C\x6F\x77\x45\x76\x61\x6C","\x75\x70\x64\x61\x74\x65\x46\x6C\x6F\x61\x74\x69\x6E\x67\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x74\x4E\x65\x78\x74\x50\x6F\x69\x6E\x74","\x69\x73\x4F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C","\x53\x54\x59\x4C\x45\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52\x5F\x53\x50\x41\x43\x49\x4E\x47","\x53\x54\x59\x4C\x45\x5F\x53\x4F\x55\x52\x43\x45\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52\x5F\x53\x50\x41\x43\x49\x4E\x47","\x53\x54\x59\x4C\x45\x5F\x54\x41\x52\x47\x45\x54\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52\x5F\x53\x50\x41\x43\x49\x4E\x47","\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x50\x6F\x69\x6E\x74","\x53\x54\x59\x4C\x45\x5F\x53\x4F\x55\x52\x43\x45\x5F\x50\x4F\x52\x54","\x53\x54\x59\x4C\x45\x5F\x54\x41\x52\x47\x45\x54\x5F\x50\x4F\x52\x54","\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x55\x54\x49\x4E\x47\x5F\x43\x45\x4E\x54\x45\x52\x5F\x58","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x55\x54\x49\x4E\x47\x5F\x43\x45\x4E\x54\x45\x52\x5F\x59","\x67\x65\x74\x52\x65\x6C\x61\x74\x69\x76\x65\x50\x6F\x69\x6E\x74","\x72\x65\x6C\x61\x74\x69\x76\x65\x43\x63\x77","\x73\x65\x74\x52\x65\x6E\x64\x65\x72\x69\x6E\x67","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x45\x76\x61\x6C","\x67\x65\x74\x53\x74\x61\x74\x65\x73","\x67\x65\x74\x43\x65\x6C\x6C\x53\x74\x61\x74\x65\x73","\x69\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x45\x76\x65\x6E\x74","\x69\x73\x53\x63\x72\x6F\x6C\x6C\x45\x76\x65\x6E\x74","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x6D\x6F\x76\x65\x48\x61\x6E\x64\x6C\x65\x72","\x65\x6E\x64\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x48\x74\x6D\x6C\x50\x61\x6E\x65","\x75\x70\x64\x61\x74\x65\x48\x74\x6D\x6C\x43\x61\x6E\x76\x61\x73\x53\x69\x7A\x65","\x63\x72\x65\x61\x74\x65\x56\x6D\x6C\x50\x61\x6E\x65","\x63\x6F\x6F\x72\x64\x6F\x72\x69\x67\x69\x6E","\x30\x2C\x30","\x73\x74\x61\x74\x69\x63","\x69\x73\x55\x70","\x67\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65\x46\x6F\x72\x52\x6F\x6F\x74","\x55\x50","\x44\x4F\x57\x4E","\x6D\x6F\x75\x73\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x72\x65\x6E\x64\x65\x72\x48\x69\x6E\x74","\x52\x45\x4E\x44\x45\x52\x49\x4E\x47\x5F\x48\x49\x4E\x54\x5F\x45\x58\x41\x43\x54","\x52\x45\x4E\x44\x45\x52\x49\x4E\x47\x5F\x48\x49\x4E\x54\x5F\x46\x41\x53\x54\x45\x53\x54","\x52\x45\x4E\x44\x45\x52\x49\x4E\x47\x5F\x48\x49\x4E\x54\x5F\x46\x41\x53\x54\x45\x52","\x44\x49\x41\x4C\x45\x43\x54\x5F\x4D\x49\x58\x45\x44\x48\x54\x4D\x4C","\x6D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x69\x6D\x61\x67\x65\x42\x75\x6E\x64\x6C\x65\x73","\x63\x72\x65\x61\x74\x65\x43\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x63\x72\x65\x61\x74\x65\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x73\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x63\x72\x65\x61\x74\x65\x47\x72\x61\x70\x68\x56\x69\x65\x77","\x67\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C\x43\x68\x61\x6E\x67\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72\x73","\x2F\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x2F\x67\x72\x61\x70\x68","\x45\x4D\x50\x54\x59\x5F\x41\x52\x52\x41\x59","\x63\x65\x6C\x6C\x45\x64\x69\x74\x6F\x72","\x70\x6F\x72\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x64\x6F\x75\x62\x6C\x65\x54\x61\x70\x45\x6E\x61\x62\x6C\x65\x64","\x64\x6F\x75\x62\x6C\x65\x54\x61\x70\x54\x69\x6D\x65\x6F\x75\x74","\x64\x6F\x75\x62\x6C\x65\x54\x61\x70\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x6C\x61\x73\x74\x54\x6F\x75\x63\x68\x59","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x64\x65\x66\x61\x75\x6C\x74\x4F\x76\x65\x72\x6C\x61\x70","\x64\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x61\x6C\x74\x65\x72\x6E\x61\x74\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x43\x6F\x6C\x6F\x72","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x61\x73\x68\x65\x64","\x6D\x69\x6E\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x69\x73\x74","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x65\x73\x63\x61\x70\x65\x45\x6E\x61\x62\x6C\x65\x64","\x69\x6E\x76\x6F\x6B\x65\x73\x53\x74\x6F\x70\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x65\x6E\x74\x65\x72\x53\x74\x6F\x70\x73\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x75\x73\x65\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x65\x78\x70\x6F\x72\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x6D\x70\x6F\x72\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x65\x6C\x6C\x73\x4C\x6F\x63\x6B\x65\x64","\x63\x65\x6C\x6C\x73\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x45\x64\x69\x74\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x44\x65\x6C\x65\x74\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x65\x64\x67\x65\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x76\x65\x72\x74\x65\x78\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x64\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x73\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x65\x6C\x6C\x73\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x42\x65\x6E\x64\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65","\x63\x65\x6C\x6C\x73\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x61\x75\x74\x6F\x53\x69\x7A\x65\x43\x65\x6C\x6C\x73","\x74\x69\x6D\x65\x72\x41\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x61\x6C\x6C\x6F\x77\x41\x75\x74\x6F\x50\x61\x6E\x6E\x69\x6E\x67","\x69\x67\x6E\x6F\x72\x65\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x6D\x61\x78\x69\x6D\x75\x6D\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x6D\x69\x6E\x69\x6D\x75\x6D\x47\x72\x61\x70\x68\x53\x69\x7A\x65","\x6D\x69\x6E\x69\x6D\x75\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x53\x69\x7A\x65","\x6D\x61\x78\x69\x6D\x75\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x53\x69\x7A\x65","\x72\x65\x73\x69\x7A\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x61\x6C\x6C\x6F\x77\x4E\x65\x67\x61\x74\x69\x76\x65\x43\x6F\x6F\x72\x64\x69\x6E\x61\x74\x65\x73","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x65\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73","\x65\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73\x4F\x6E\x41\x64\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x54\x6F\x50\x72\x65\x66\x65\x72\x72\x65\x64\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x46\x61\x63\x74\x6F\x72","\x6B\x65\x65\x70\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x56\x69\x73\x69\x62\x6C\x65\x4F\x6E\x5A\x6F\x6F\x6D","\x63\x65\x6E\x74\x65\x72\x5A\x6F\x6F\x6D","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x52\x65\x73\x69\x7A\x65","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x4D\x6F\x76\x65","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x43\x6F\x6E\x6E\x65\x63\x74","\x61\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x4C\x6F\x6F\x70","\x6D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65\x45\x64\x67\x65\x73","\x61\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x63\x6C\x6F\x6E\x65\x49\x6E\x76\x61\x6C\x69\x64\x45\x64\x67\x65\x73","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x4F\x6E\x4D\x6F\x76\x65","\x6C\x61\x62\x65\x6C\x73\x56\x69\x73\x69\x62\x6C\x65","\x68\x74\x6D\x6C\x4C\x61\x62\x65\x6C\x73","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x4E\x65\x73\x74\x69\x6E\x67","\x6D\x69\x6E\x46\x69\x74\x53\x63\x61\x6C\x65","\x6D\x61\x78\x46\x69\x74\x53\x63\x61\x6C\x65","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x49\x6D\x61\x67\x65","\x2F\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x2E\x67\x69\x66","\x65\x78\x70\x61\x6E\x64\x65\x64\x49\x6D\x61\x67\x65","\x2F\x65\x78\x70\x61\x6E\x64\x65\x64\x2E\x67\x69\x66","\x77\x61\x72\x6E\x69\x6E\x67\x49\x6D\x61\x67\x65","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x69\x6D\x61\x67\x65\x73\x2F\x77\x61\x72\x6E\x69\x6E\x67\x2E\x67\x69\x66","\x61\x6C\x72\x65\x61\x64\x79\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64\x52\x65\x73\x6F\x75\x72\x63\x65","\x61\x6C\x72\x65\x61\x64\x79\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x45\x78\x70\x61\x6E\x64\x52\x65\x73\x6F\x75\x72\x63\x65","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x2D\x65\x78\x70\x61\x6E\x64","\x63\x72\x65\x61\x74\x65\x43\x65\x6C\x6C\x45\x64\x69\x74\x6F\x72","\x75\x6E\x6C\x6F\x61\x64","\x73\x65\x6C\x65\x63\x74\x73\x74\x61\x72\x74","\x3C\x76\x3A\x67\x72\x6F\x75\x70\x20\x73\x74\x79\x6C\x65\x3D\x22\x44\x49\x53\x50\x4C\x41\x59\x3A\x20\x6E\x6F\x6E\x65\x3B\x22\x3E\x3C\x2F\x76\x3A\x67\x72\x6F\x75\x70\x3E","\x70\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x70\x72\x6F\x63\x65\x73\x73\x43\x68\x61\x6E\x67\x65","\x67\x65\x74\x52\x65\x6D\x6F\x76\x65\x64\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x72\x65\x6D\x6F\x76\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x6C\x65\x61\x72\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x72\x65\x6D\x6F\x76\x65\x53\x74\x61\x74\x65\x46\x6F\x72\x43\x65\x6C\x6C","\x68\x6F\x6D\x65","\x61\x64\x64\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x63\x6C\x65\x61\x72\x43\x65\x6C\x6C\x4F\x76\x65\x72\x6C\x61\x79\x73","\x73\x65\x74\x43\x65\x6C\x6C\x57\x61\x72\x6E\x69\x6E\x67","\x3C\x66\x6F\x6E\x74\x20\x63\x6F\x6C\x6F\x72\x3D\x72\x65\x64\x3E","\x3C\x2F\x66\x6F\x6E\x74\x3E","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67\x41\x74\x43\x65\x6C\x6C","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x45\x64\x69\x74\x61\x62\x6C\x65","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x54\x6F\x53\x74\x72\x69\x6E\x67","\x69\x73\x41\x75\x74\x6F\x53\x69\x7A\x65\x43\x65\x6C\x6C","\x63\x65\x6C\x6C\x4C\x61\x62\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x63\x65\x6C\x6C\x53\x69\x7A\x65\x55\x70\x64\x61\x74\x65\x64","\x68\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65\x41\x74","\x69\x73\x54\x6F\x67\x67\x6C\x65\x45\x76\x65\x6E\x74","\x70\x61\x6E\x6E\x69\x6E\x67\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x50\x61\x6E\x6E\x69\x6E\x67\x4D\x61\x6E\x61\x67\x65\x72","\x67\x65\x74\x42\x6F\x72\x64\x65\x72\x53\x69\x7A\x65\x73","\x74\x68\x69\x6E","\x6D\x65\x64\x69\x75\x6D","\x74\x68\x69\x63\x6B","\x62\x6F\x72\x64\x65\x72\x4C\x65\x66\x74\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70\x57\x69\x64\x74\x68","\x70\x61\x64\x64\x69\x6E\x67\x54\x6F\x70","\x62\x6F\x72\x64\x65\x72\x52\x69\x67\x68\x74\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x42\x6F\x74\x74\x6F\x6D\x57\x69\x64\x74\x68","\x70\x61\x64\x64\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x67\x65\x74\x50\x72\x65\x66\x65\x72\x72\x65\x64\x50\x61\x67\x65\x53\x69\x7A\x65","\x67\x65\x74\x42\x6F\x72\x64\x65\x72","\x64\x6F\x52\x65\x73\x69\x7A\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6D\x69\x6E\x57\x69\x64\x74\x68","\x6D\x69\x6E\x48\x65\x69\x67\x68\x74","\x75\x70\x64\x61\x74\x65\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x76\x65\x72\x74\x69\x63\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x70\x6F\x73\x74\x50\x72\x6F\x63\x65\x73\x73\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45","\x67\x65\x74\x49\x6D\x61\x67\x65\x46\x72\x6F\x6D\x42\x75\x6E\x64\x6C\x65\x73","\x64\x61\x74\x61\x3A\x69\x6D\x61\x67\x65\x2F","\x3B\x62\x61\x73\x65\x36\x34\x2C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x46\x6C\x61\x67\x73","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x46\x6C\x61\x67\x73","\x61\x64\x64\x49\x6D\x61\x67\x65\x42\x75\x6E\x64\x6C\x65","\x72\x65\x6D\x6F\x76\x65\x49\x6D\x61\x67\x65\x42\x75\x6E\x64\x6C\x65","\x62\x61\x63\x6B","\x67\x65\x74\x43\x65\x6C\x6C\x73\x46\x6F\x72\x47\x72\x6F\x75\x70","\x63\x72\x65\x61\x74\x65\x47\x72\x6F\x75\x70\x43\x65\x6C\x6C","\x67\x65\x74\x42\x6F\x75\x6E\x64\x73\x46\x6F\x72\x47\x72\x6F\x75\x70","\x61\x64\x64\x41\x6C\x6C\x45\x64\x67\x65\x73","\x67\x65\x74\x45\x64\x67\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x69\x6E\x73\x65\x72\x74\x56\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65","\x61\x64\x64\x45\x64\x67\x65","\x69\x73\x41\x6C\x6C\x6F\x77\x4E\x65\x67\x61\x74\x69\x76\x65\x43\x6F\x6F\x72\x64\x69\x6E\x61\x74\x65\x73","\x69\x73\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73\x4F\x6E\x41\x64\x64","\x69\x73\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74","\x65\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64","\x67\x65\x74\x44\x65\x6C\x65\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x6E\x63\x6C\x75\x64\x65\x45\x64\x67\x65\x73","\x6E\x65\x77\x45\x64\x67\x65","\x67\x65\x74\x46\x6F\x6C\x64\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x72\x65\x63\x75\x72\x73\x65","\x69\x73\x43\x65\x6C\x6C\x46\x6F\x6C\x64\x61\x62\x6C\x65","\x73\x77\x61\x70\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x41\x6C\x74\x65\x72\x6E\x61\x74\x65\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x50\x72\x65\x66\x65\x72\x72\x65\x64\x53\x69\x7A\x65\x46\x6F\x72\x43\x65\x6C\x6C","\x67\x65\x74\x41\x6C\x6C\x45\x64\x67\x65\x73","\x69\x67\x6E\x6F\x72\x65\x43\x68\x69\x6C\x64\x72\x65\x6E","\x53\x48\x41\x50\x45\x5F\x4C\x41\x42\x45\x4C","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45\x5F\x57\x49\x44\x54\x48","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45\x5F\x48\x45\x49\x47\x48\x54","\x67\x65\x74\x53\x69\x7A\x65\x46\x6F\x72\x53\x74\x72\x69\x6E\x67","\x72\x65\x73\x69\x7A\x65\x43\x65\x6C\x6C","\x69\x73\x43\x6C\x6F\x6E\x65\x49\x6E\x76\x61\x6C\x69\x64\x45\x64\x67\x65\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x4E\x65\x67\x61\x74\x69\x76\x65\x43\x6F\x6F\x72\x64\x69\x6E\x61\x74\x65\x73","\x69\x73\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x4F\x6E\x4D\x6F\x76\x65","\x69\x73\x41\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x47\x72\x61\x70\x68","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x43\x65\x6C\x6C\x43\x6F\x6E\x74\x61\x69\x6E\x6D\x65\x6E\x74\x41\x72\x65\x61","\x67\x65\x74\x43\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x67\x65\x74\x4D\x61\x78\x69\x6D\x75\x6D\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x69\x73\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x70","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x53\x54\x59\x4C\x45\x5F\x45\x58\x49\x54\x5F\x58","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x54\x52\x59\x5F\x58","\x53\x54\x59\x4C\x45\x5F\x45\x58\x49\x54\x5F\x59","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x54\x52\x59\x5F\x59","\x53\x54\x59\x4C\x45\x5F\x45\x58\x49\x54\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x54\x52\x59\x5F\x50\x45\x52\x49\x4D\x45\x54\x45\x52","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x70\x6F\x69\x6E\x74","\x53\x54\x59\x4C\x45\x5F\x46\x4C\x49\x50\x48","\x53\x54\x59\x4C\x45\x5F\x46\x4C\x49\x50\x56","\x69\x73\x50\x6F\x72\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x46\x6F\x72\x50\x6F\x72\x74","\x69\x73\x43\x65\x6C\x6C\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x67\x65\x74\x43\x65\x6C\x6C\x42\x6F\x75\x6E\x64\x73","\x73\x68\x69\x66\x74\x50\x72\x65\x76\x69\x65\x77\x31","\x73\x68\x69\x66\x74\x50\x72\x65\x76\x69\x65\x77\x32","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x7A\x6F\x6F\x6D\x41\x63\x74\x75\x61\x6C","\x7A\x6F\x6F\x6D\x54\x6F","\x73\x63\x72\x6F\x6C\x6C\x52\x65\x63\x74\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x7A\x6F\x6F\x6D\x54\x6F\x52\x65\x63\x74","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x4F\x52\x54\x48\x4F\x47\x4F\x4E\x41\x4C","\x53\x65\x67\x6D\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74\x6F\x72","\x45\x6C\x62\x6F\x77\x43\x6F\x6E\x6E\x65\x63\x74\x6F\x72","\x53\x69\x64\x65\x54\x6F\x53\x69\x64\x65","\x54\x6F\x70\x54\x6F\x42\x6F\x74\x74\x6F\x6D","\x45\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E","\x4F\x72\x74\x68\x43\x6F\x6E\x6E\x65\x63\x74\x6F\x72","\x69\x73\x4C\x6F\x6F\x70","\x69\x73\x43\x6C\x6F\x6E\x65\x45\x76\x65\x6E\x74","\x49\x53\x5F\x4D\x41\x43","\x69\x73\x4D\x65\x74\x61\x44\x6F\x77\x6E","\x69\x73\x41\x6C\x74\x44\x6F\x77\x6E","\x69\x73\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x65\x64\x45\x76\x65\x6E\x74","\x69\x73\x46\x6F\x72\x63\x65\x4D\x61\x72\x71\x75\x65\x65\x45\x76\x65\x6E\x74","\x76\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x41\x6C\x65\x72\x74","\x69\x73\x45\x64\x67\x65\x56\x61\x6C\x69\x64","\x69\x73\x56\x61\x6C\x69\x64\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x63\x68\x65\x63\x6B","\x76\x61\x6C\x69\x64\x61\x74\x65\x45\x64\x67\x65","\x76\x61\x6C\x69\x64\x61\x74\x65\x47\x72\x61\x70\x68","\x67\x65\x74\x43\x65\x6C\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x65\x6C\x6C","\x61\x74\x74\x72","\x63\x6F\x75\x6E\x74\x45\x72\x72\x6F\x72","\x73\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x74\x6F\x53\x74\x72\x69\x6E\x67","\x69\x73\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C\x73","\x73\x65\x74\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C\x73","\x53\x54\x59\x4C\x45\x5F\x57\x48\x49\x54\x45\x5F\x53\x50\x41\x43\x45","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x46\x6F\x72\x4E\x6F\x64\x65","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x46\x6F\x72\x43\x65\x6C\x6C","\x67\x65\x74\x43\x75\x72\x73\x6F\x72\x46\x6F\x72\x43\x65\x6C\x6C","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x43\x4F\x4C\x4F\x52","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x47\x52\x41\x44\x49\x45\x4E\x54\x43\x4F\x4C\x4F\x52","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x53\x48\x41\x50\x45","\x53\x54\x59\x4C\x45\x5F\x49\x4E\x44\x49\x43\x41\x54\x4F\x52\x5F\x49\x4D\x41\x47\x45","\x73\x65\x74\x42\x6F\x72\x64\x65\x72","\x53\x48\x41\x50\x45\x5F\x53\x57\x49\x4D\x4C\x41\x4E\x45","\x69\x73\x52\x65\x73\x69\x7A\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x65\x74\x52\x65\x73\x69\x7A\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x69\x73\x45\x73\x63\x61\x70\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x73\x63\x61\x70\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x49\x6E\x76\x6F\x6B\x65\x73\x53\x74\x6F\x70\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x73\x65\x74\x45\x6E\x74\x65\x72\x53\x74\x6F\x70\x73\x43\x65\x6C\x6C\x45\x64\x69\x74\x69\x6E\x67","\x69\x73\x43\x65\x6C\x6C\x4C\x6F\x63\x6B\x65\x64","\x69\x73\x43\x65\x6C\x6C\x73\x4C\x6F\x63\x6B\x65\x64","\x73\x65\x74\x43\x65\x6C\x6C\x73\x4C\x6F\x63\x6B\x65\x64","\x67\x65\x74\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x43\x65\x6C\x6C\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x43\x4C\x4F\x4E\x45\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x43\x6C\x6F\x6E\x65\x61\x62\x6C\x65","\x63\x61\x6E\x45\x78\x70\x6F\x72\x74\x43\x65\x6C\x6C","\x63\x61\x6E\x49\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x73\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x73\x53\x65\x6C\x65\x63\x74\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x44\x65\x6C\x65\x74\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x44\x65\x6C\x65\x74\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x44\x45\x4C\x45\x54\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x44\x65\x6C\x65\x74\x61\x62\x6C\x65","\x69\x73\x4C\x61\x62\x65\x6C\x4D\x6F\x76\x61\x62\x6C\x65","\x67\x65\x74\x4D\x6F\x76\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x43\x65\x6C\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x4D\x4F\x56\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x73\x65\x74\x50\x6F\x72\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x73\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x73\x65\x74\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x69\x73\x56\x65\x72\x74\x65\x78\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x73\x65\x74\x56\x65\x72\x74\x65\x78\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x45\x64\x67\x65\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x73\x65\x74\x45\x64\x67\x65\x4C\x61\x62\x65\x6C\x73\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65\x4E\x65\x73\x74\x69\x6E\x67","\x73\x65\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65\x4E\x65\x73\x74\x69\x6E\x67","\x73\x65\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x4D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x73\x65\x74\x4D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x69\x73\x41\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65\x45\x64\x67\x65\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65\x45\x64\x67\x65\x73","\x73\x65\x74\x43\x6C\x6F\x6E\x65\x49\x6E\x76\x61\x6C\x69\x64\x45\x64\x67\x65\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x73\x65\x74\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x4F\x6E\x4D\x6F\x76\x65","\x73\x65\x74\x44\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x65\x6C\x6C\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x52\x45\x53\x49\x5A\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x52\x65\x73\x69\x7A\x61\x62\x6C\x65","\x69\x73\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74\x4D\x6F\x76\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x42\x65\x6E\x64\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x42\x65\x6E\x64\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x42\x45\x4E\x44\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x42\x65\x6E\x64\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x45\x64\x69\x74\x61\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x45\x44\x49\x54\x41\x42\x4C\x45","\x73\x65\x74\x43\x65\x6C\x6C\x73\x45\x64\x69\x74\x61\x62\x6C\x65","\x69\x73\x43\x65\x6C\x6C\x73\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x73\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x69\x73\x56\x61\x6C\x69\x64\x53\x6F\x75\x72\x63\x65","\x69\x73\x56\x61\x6C\x69\x64\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x50\x61\x6E\x6E\x69\x6E\x67","\x69\x73\x41\x75\x74\x6F\x53\x69\x7A\x65\x43\x65\x6C\x6C\x73","\x53\x54\x59\x4C\x45\x5F\x41\x55\x54\x4F\x53\x49\x5A\x45","\x73\x65\x74\x41\x75\x74\x6F\x53\x69\x7A\x65\x43\x65\x6C\x6C\x73","\x69\x73\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73","\x73\x65\x74\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73","\x73\x65\x74\x45\x78\x74\x65\x6E\x64\x50\x61\x72\x65\x6E\x74\x73\x4F\x6E\x41\x64\x64","\x69\x73\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x73\x65\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x69\x73\x41\x6C\x6C\x6F\x77\x4F\x76\x65\x72\x6C\x61\x70\x50\x61\x72\x65\x6E\x74","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4C\x44\x41\x42\x4C\x45","\x69\x73\x56\x61\x6C\x69\x64\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x69\x73\x53\x70\x6C\x69\x74\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x68\x69\x74\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65\x43\x6F\x6E\x74\x65\x6E\x74","\x67\x65\x74\x50\x6F\x69\x6E\x74\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x73","\x67\x65\x74\x43\x65\x6C\x6C\x73\x42\x65\x79\x6F\x6E\x64","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x72\x65\x6D\x6F\x76\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x52\x65\x67\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x73\x46\x6F\x72\x45\x76\x65\x6E\x74","\x73\x65\x6C\x65\x63\x74\x4E\x65\x78\x74\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x50\x72\x65\x76\x69\x6F\x75\x73\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x50\x61\x72\x65\x6E\x74\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x43\x68\x69\x6C\x64\x43\x65\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72","\x75\x70\x64\x61\x74\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x6C\x61\x73\x74\x54\x6F\x75\x63\x68\x58","\x6C\x61\x73\x74\x4D\x6F\x75\x73\x65\x58","\x6C\x61\x73\x74\x4D\x6F\x75\x73\x65\x59","\x4D\x4F\x55\x53\x45\x5F\x55\x50","\x4D\x4F\x55\x53\x45\x5F\x4D\x4F\x56\x45","\x64\x65\x73\x74\x72\x6F\x79\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70","\x68\x65\x6C\x70","\x67\x72\x61\x70\x68\x52\x65\x6E\x64\x65\x72\x48\x69\x6E\x74","\x73\x68\x6F\x77\x56\x69\x65\x77\x70\x6F\x72\x74","\x73\x69\x7A\x65\x72\x53\x69\x7A\x65","\x75\x70\x64\x61\x74\x65\x4F\x6E\x50\x61\x6E","\x73\x69\x7A\x65\x72\x49\x6D\x61\x67\x65","\x73\x68\x61\x70\x65\x2D\x72\x65\x6E\x64\x65\x72\x69\x6E\x67","\x6F\x70\x74\x69\x6D\x69\x7A\x65\x53\x70\x65\x65\x64","\x69\x6D\x61\x67\x65\x2D\x72\x65\x6E\x64\x65\x72\x69\x6E\x67","\x75\x70\x64\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72","\x75\x70\x64\x61\x74\x65","\x70\x61\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x66\x72\x65\x73\x68\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x42\x6F\x72\x64\x65\x72","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x73\x69\x7A\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x69\x7A\x65\x72","\x73\x65\x74\x5A\x6F\x6F\x6D\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x53\x6F\x75\x72\x63\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x53\x69\x7A\x65","\x67\x65\x74\x4F\x75\x74\x6C\x69\x6E\x65\x4F\x66\x66\x73\x65\x74","\x73\x74\x61\x72\x74\x58","\x73\x74\x61\x72\x74\x59","\x64\x78\x30","\x64\x79\x30","\x6E","\x76\x61\x6C\x69\x64\x4E\x65\x69\x67\x68\x62\x6F\x72\x73","\x74\x79\x70\x65\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x4E\x65\x69\x67\x68\x62\x6F\x72\x73\x41\x6C\x6C\x6F\x77\x65\x64","\x63\x68\x65\x63\x6B\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x63\x68\x65\x63\x6B\x4E\x65\x69\x67\x68\x62\x6F\x72\x73","\x63\x68\x65\x63\x6B\x54\x79\x70\x65","\x75\x6E\x64\x6F\x48\x61\x6E\x64\x6C\x65\x72","\x62\x75\x62\x62\x6C\x69\x6E\x67","\x69\x73\x42\x75\x62\x62\x6C\x69\x6E\x67","\x73\x65\x74\x42\x75\x62\x62\x6C\x69\x6E\x67","\x67\x65\x74\x4C\x61\x79\x6F\x75\x74","\x67\x65\x74\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x72\x65\x73\x69\x7A\x65\x48\x61\x6E\x64\x6C\x65\x72","\x66\x6F\x6C\x64\x48\x61\x6E\x64\x6C\x65\x72","\x73\x68\x69\x66\x74\x52\x69\x67\x68\x74\x77\x61\x72\x64\x73","\x73\x68\x69\x66\x74\x44\x6F\x77\x6E\x77\x61\x72\x64\x73","\x69\x73\x43\x65\x6C\x6C\x49\x67\x6E\x6F\x72\x65\x64","\x69\x73\x43\x65\x6C\x6C\x53\x68\x69\x66\x74\x61\x62\x6C\x65","\x69\x73\x53\x68\x69\x66\x74\x52\x69\x67\x68\x74\x77\x61\x72\x64\x73","\x73\x65\x74\x53\x68\x69\x66\x74\x52\x69\x67\x68\x74\x77\x61\x72\x64\x73","\x69\x73\x53\x68\x69\x66\x74\x44\x6F\x77\x6E\x77\x61\x72\x64\x73","\x73\x65\x74\x53\x68\x69\x66\x74\x44\x6F\x77\x6E\x77\x61\x72\x64\x73","\x63\x65\x6C\x6C\x52\x65\x73\x69\x7A\x65\x64","\x67\x65\x74\x43\x65\x6C\x6C\x73\x54\x6F\x53\x68\x69\x66\x74","\x73\x68\x69\x66\x74\x43\x65\x6C\x6C","\x61\x64\x64\x45\x6E\x61\x62\x6C\x65\x64","\x72\x65\x73\x69\x7A\x65\x45\x6E\x61\x62\x6C\x65\x64","\x61\x64\x64\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x41\x64\x64\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x52\x65\x73\x69\x7A\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x48\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x73\x65\x74\x41\x64\x64\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x52\x65\x73\x69\x7A\x65\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65\x49\x67\x6E\x6F\x72\x65\x64","\x69\x73\x43\x65\x6C\x6C\x48\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x41\x64\x64\x65\x64","\x72\x65\x73\x69\x7A\x65\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x6F\x6C\x64\x42\x6F\x75\x6E\x64\x73","\x6F\x6C\x64\x53\x74\x61\x74\x65\x73","\x6F\x6C\x64\x53\x63\x61\x6C\x65","\x64\x65\x6C\x74\x61\x73","\x63\x6F\x75\x6E\x74","\x58","\x59","\x61\x64\x64\x45\x64\x67\x65\x73","\x72\x65\x73\x6F\x6C\x76\x65","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x53\x74\x61\x74\x65","\x72\x65\x76\x61\x6C\x69\x64\x61\x74\x65\x53\x74\x61\x74\x65","\x75\x70\x64\x61\x74\x65\x50\x72\x65\x76\x69\x65\x77\x53\x68\x61\x70\x65","\x6D\x61\x78\x43\x65\x6C\x6C\x73","\x68\x69\x67\x68\x6C\x69\x67\x68\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x6C\x6F\x6E\x65\x45\x6E\x61\x62\x6C\x65\x64","\x6D\x6F\x76\x65\x45\x6E\x61\x62\x6C\x65\x64","\x67\x75\x69\x64\x65","\x63\x75\x72\x72\x65\x6E\x74\x44\x78","\x63\x75\x72\x72\x65\x6E\x74\x44\x79","\x75\x70\x64\x61\x74\x65\x43\x75\x72\x73\x6F\x72","\x73\x65\x6C\x65\x63\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x4F\x6E\x44\x72\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x4F\x6E\x4D\x6F\x76\x65","\x70\x72\x65\x76\x69\x65\x77\x43\x6F\x6C\x6F\x72","\x68\x74\x6D\x6C\x50\x72\x65\x76\x69\x65\x77","\x73\x63\x61\x6C\x65\x47\x72\x69\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x6C\x6F\x6E\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x6C\x6F\x6E\x65\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x4D\x6F\x76\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x4D\x6F\x76\x65\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x65\x6C\x65\x63\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x73\x65\x74\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x49\x6E\x69\x74\x69\x61\x6C\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x44\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x64\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x63\x65\x6C\x6C\x57\x61\x73\x43\x6C\x69\x63\x6B\x65\x64","\x53\x45\x4C\x45\x43\x54","\x66\x69\x72\x73\x74","\x67\x65\x74\x50\x72\x65\x76\x69\x65\x77\x42\x6F\x75\x6E\x64\x73","\x63\x72\x65\x61\x74\x65\x50\x72\x65\x76\x69\x65\x77\x53\x68\x61\x70\x65","\x70\x42\x6F\x75\x6E\x64\x73","\x75\x73\x65\x47\x75\x69\x64\x65\x73\x46\x6F\x72\x45\x76\x65\x6E\x74","\x73\x65\x74\x48\x69\x67\x68\x6C\x69\x67\x68\x74\x43\x6F\x6C\x6F\x72","\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x49\x4E\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4E\x4E\x45\x43\x54\x5F\x54\x41\x52\x47\x45\x54\x5F\x43\x4F\x4C\x4F\x52","\x43\x55\x52\x53\x4F\x52\x5F\x4D\x4F\x56\x41\x42\x4C\x45\x5F\x45\x44\x47\x45","\x43\x55\x52\x53\x4F\x52\x5F\x4D\x4F\x56\x41\x42\x4C\x45\x5F\x56\x45\x52\x54\x45\x58","\x73\x65\x6C\x65\x63\x74\x44\x65\x6C\x61\x79\x65\x64","\x64\x65\x73\x74\x72\x6F\x79\x53\x68\x61\x70\x65\x73","\x67\x75\x69\x64\x65\x73","\x73\x68\x6F\x75\x6C\x64\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x74\x72\x69\x67\x67\x65\x72\x58","\x74\x72\x69\x67\x67\x65\x72\x59","\x75\x73\x65\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x75\x73\x65\x4C\x65\x66\x74\x42\x75\x74\x74\x6F\x6E\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x73\x65\x6C\x65\x63\x74\x4F\x6E\x50\x6F\x70\x75\x70","\x63\x6C\x65\x61\x72\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4F\x6E\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x69\x67\x6E\x6F\x72\x65\x43\x65\x6C\x6C","\x70\x72\x65\x76\x69\x65\x77\x45\x6E\x61\x62\x6C\x65\x64","\x75\x73\x65\x47\x72\x69\x64","\x69\x73\x50\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x50\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x50\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x70\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65\x50\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x67\x65\x74\x43\x65\x6C\x6C\x46\x6F\x72\x50\x6F\x70\x75\x70\x45\x76\x65\x6E\x74","\x76\x61\x6C\x69\x64\x43\x6F\x6C\x6F\x72","\x44\x45\x46\x41\x55\x4C\x54\x5F\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x69\x6E\x76\x61\x6C\x69\x64\x43\x6F\x6C\x6F\x72","\x44\x45\x46\x41\x55\x4C\x54\x5F\x49\x4E\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x68\x6F\x74\x73\x70\x6F\x74","\x44\x45\x46\x41\x55\x4C\x54\x5F\x48\x4F\x54\x53\x50\x4F\x54","\x68\x6F\x74\x73\x70\x6F\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x43\x6F\x6C\x6F\x72","\x76\x61\x6C\x69\x64\x53\x74\x61\x74\x65","\x6D\x61\x72\x6B\x65\x64\x53\x74\x61\x74\x65","\x73\x65\x74\x48\x6F\x74\x73\x70\x6F\x74","\x67\x65\x74\x48\x6F\x74\x73\x70\x6F\x74","\x73\x65\x74\x48\x6F\x74\x73\x70\x6F\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x48\x6F\x74\x73\x70\x6F\x74\x45\x6E\x61\x62\x6C\x65\x64","\x68\x61\x73\x56\x61\x6C\x69\x64\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x61\x6C\x69\x64\x53\x74\x61\x74\x65","\x67\x65\x74\x4D\x61\x72\x6B\x65\x64\x53\x74\x61\x74\x65","\x75\x6E\x6D\x61\x72\x6B","\x70\x72\x6F\x63\x65\x73\x73","\x69\x73\x56\x61\x6C\x69\x64\x53\x74\x61\x74\x65","\x67\x65\x74\x4D\x61\x72\x6B\x65\x72\x43\x6F\x6C\x6F\x72","\x6D\x61\x72\x6B\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65\x54\x6F\x4D\x61\x72\x6B","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x73\x48\x6F\x74\x73\x70\x6F\x74","\x72\x65\x73\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x68\x61\x6E\x64\x6C\x65\x72\x73","\x6D\x61\x78\x48\x61\x6E\x64\x6C\x65\x72\x73","\x6D\x6F\x76\x65\x49\x63\x6F\x6E\x46\x72\x6F\x6E\x74","\x6D\x6F\x76\x65\x49\x63\x6F\x6E\x42\x61\x63\x6B","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x74\x61\x72\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x63\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x6D\x61\x72\x6B\x65\x72","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x48\x61\x6E\x64\x6C\x65\x72","\x77\x61\x79\x70\x6F\x69\x6E\x74\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x45\x6E\x61\x62\x6C\x65\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x44\x65\x6C\x61\x79","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x49\x6E\x50\x72\x6F\x67\x72\x65\x73\x73","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x56\x61\x6C\x69\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x69\x6E\x69\x74\x69\x61\x6C\x54\x6F\x75\x63\x68\x58","\x69\x6E\x69\x74\x69\x61\x6C\x54\x6F\x75\x63\x68\x59","\x69\x67\x6E\x6F\x72\x65\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x63\x6F\x6E\x4F\x66\x66\x73\x65\x74","\x65\x64\x67\x65\x53\x74\x61\x74\x65","\x64\x72\x69\x6C\x6C\x48\x61\x6E\x64\x6C\x65\x72","\x6D\x6F\x75\x73\x65\x44\x6F\x77\x6E\x43\x6F\x75\x6E\x74\x65\x72","\x6D\x6F\x76\x65\x50\x72\x65\x76\x69\x65\x77\x41\x77\x61\x79","\x69\x73\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x69\x63\x6F\x6E\x53\x74\x61\x74\x65","\x69\x63\x6F\x6E\x73","\x72\x65\x64\x72\x61\x77\x49\x63\x6F\x6E\x73","\x64\x65\x73\x74\x72\x6F\x79\x49\x63\x6F\x6E\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6E\x67","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x53\x74\x61\x74\x65","\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x69\x73\x4D\x6F\x76\x65\x49\x63\x6F\x6E\x54\x6F\x46\x72\x6F\x6E\x74\x46\x6F\x72\x53\x74\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x49\x63\x6F\x6E\x73","\x43\x55\x52\x53\x4F\x52\x5F\x43\x4F\x4E\x4E\x45\x43\x54","\x63\x75\x72\x72\x65\x6E\x74\x53\x74\x61\x74\x65","\x69\x63\x6F\x6E","\x67\x65\x74\x49\x63\x6F\x6E\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x69\x73\x53\x74\x61\x72\x74\x45\x76\x65\x6E\x74","\x63\x75\x72\x72\x65\x6E\x74\x46\x6F\x63\x75\x73","\x63\x75\x72\x72\x65\x6E\x74\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x73\x6F\x75\x72\x63\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x77\x61\x79\x70\x6F\x69\x6E\x74\x73","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x54\x68\x72\x65\x61\x64","\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64","\x73\x65\x6C\x65\x63\x74\x65\x64\x49\x63\x6F\x6E","\x69\x73\x49\x6D\x6D\x65\x64\x69\x61\x74\x65\x43\x6F\x6E\x6E\x65\x63\x74\x53\x6F\x75\x72\x63\x65","\x75\x70\x64\x61\x74\x65\x43\x75\x72\x72\x65\x6E\x74\x53\x74\x61\x74\x65","\x63\x6F\x6E\x76\x65\x72\x74\x57\x61\x79\x70\x6F\x69\x6E\x74","\x67\x65\x74\x54\x61\x72\x67\x65\x74\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x50\x6F\x69\x6E\x74","\x67\x65\x74\x53\x6F\x75\x72\x63\x65\x50\x65\x72\x69\x6D\x65\x74\x65\x72\x50\x6F\x69\x6E\x74","\x64\x72\x61\x77\x50\x72\x65\x76\x69\x65\x77","\x75\x70\x64\x61\x74\x65\x49\x63\x6F\x6E\x73","\x69\x73\x53\x74\x6F\x70\x45\x76\x65\x6E\x74","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x45\x64\x67\x65\x57\x69\x64\x74\x68","\x67\x65\x74\x45\x64\x67\x65\x43\x6F\x6C\x6F\x72","\x49\x4E\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x63\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x41\x6C\x69\x67\x6E\x6D\x65\x6E\x74\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x70\x6F\x69\x6E\x74\x49\x6D\x61\x67\x65","\x2F\x70\x6F\x69\x6E\x74\x2E\x67\x69\x66","\x68\x69\x67\x68\x6C\x69\x67\x68\x74\x43\x6F\x6C\x6F\x72","\x66\x6F\x63\x75\x73\x49\x63\x6F\x6E\x73","\x66\x6F\x63\x75\x73\x48\x69\x67\x68\x6C\x69\x67\x68\x74","\x66\x6F\x63\x75\x73\x50\x6F\x69\x6E\x74\x73","\x63\x75\x72\x72\x65\x6E\x74\x46\x6F\x63\x75\x73\x41\x72\x65\x61","\x67\x65\x74\x49\x6D\x61\x67\x65\x46\x6F\x72\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74","\x69\x73\x45\x76\x65\x6E\x74\x49\x67\x6E\x6F\x72\x65\x64","\x72\x65\x70\x61\x69\x6E\x74","\x64\x65\x66\x61\x75\x6C\x74\x4F\x70\x61\x63\x69\x74\x79","\x73\x68\x61\x72\x65\x64\x44\x69\x76","\x63\x75\x72\x72\x65\x6E\x74\x58","\x63\x75\x72\x72\x65\x6E\x74\x59","\x64\x72\x61\x67\x48\x61\x6E\x64\x6C\x65\x72","\x6D\x78\x52\x75\x62\x62\x65\x72\x62\x61\x6E\x64","\x73\x69\x6E\x67\x6C\x65\x53\x69\x7A\x65\x72","\x61\x6C\x6C\x6F\x77\x48\x61\x6E\x64\x6C\x65\x42\x6F\x75\x6E\x64\x73\x43\x68\x65\x63\x6B","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x52\x61\x73\x74\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x42\x6F\x75\x6E\x64\x73","\x63\x72\x65\x61\x74\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x53\x68\x61\x70\x65","\x73\x69\x7A\x65\x72\x73","\x6E\x2D\x72\x65\x73\x69\x7A\x65","\x6E\x65\x2D\x72\x65\x73\x69\x7A\x65","\x77\x2D\x72\x65\x73\x69\x7A\x65","\x65\x2D\x72\x65\x73\x69\x7A\x65","\x73\x77\x2D\x72\x65\x73\x69\x7A\x65","\x73\x2D\x72\x65\x73\x69\x7A\x65","\x73\x65\x2D\x72\x65\x73\x69\x7A\x65","\x6C\x61\x62\x65\x6C\x53\x68\x61\x70\x65","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x53\x68\x61\x70\x65","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6C\x6F\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x53\x74\x72\x6F\x6B\x65\x57\x69\x64\x74\x68","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x44\x61\x73\x68\x65\x64","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x44\x41\x53\x48\x45\x44","\x63\x72\x65\x61\x74\x65\x53\x69\x7A\x65\x72\x53\x68\x61\x70\x65","\x69\x73\x53\x69\x7A\x65\x72\x56\x69\x73\x69\x62\x6C\x65","\x52\x4F\x54\x41\x54\x49\x4F\x4E\x5F\x48\x41\x4E\x44\x4C\x45","\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x6D\x6F\x76\x65\x53\x69\x7A\x65\x72\x54\x6F","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45","\x70\x72\x65\x76\x69\x65\x77","\x63\x75\x72\x72\x65\x6E\x74\x41\x6C\x70\x68\x61","\x61\x74\x61\x6E","\x75\x6E\x69\x6F\x6E","\x72\x6F\x74\x61\x74\x65\x43\x65\x6C\x6C","\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64\x72\x65\x6E","\x62\x65\x6E\x64\x73","\x72\x65\x6D\x6F\x76\x65\x45\x6E\x61\x62\x6C\x65\x64","\x73\x6E\x61\x70\x54\x6F\x54\x65\x72\x6D\x69\x6E\x61\x6C\x73","\x61\x62\x73\x70\x6F\x69\x6E\x74\x73","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x50\x6F\x69\x6E\x74\x73","\x69\x73\x41\x64\x64\x50\x6F\x69\x6E\x74\x45\x76\x65\x6E\x74","\x61\x64\x64\x50\x6F\x69\x6E\x74","\x63\x72\x65\x61\x74\x65\x42\x65\x6E\x64\x73","\x69\x6E\x69\x74\x42\x65\x6E\x64","\x43\x55\x52\x53\x4F\x52\x5F\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45","\x69\x73\x52\x65\x6D\x6F\x76\x65\x50\x6F\x69\x6E\x74\x45\x76\x65\x6E\x74","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x44\x41\x53\x48\x45\x44","\x69\x73\x48\x61\x6E\x64\x6C\x65\x56\x69\x73\x69\x62\x6C\x65","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x53\x68\x61\x70\x65","\x69\x73\x48\x61\x6E\x64\x6C\x65\x45\x6E\x61\x62\x6C\x65\x64","\x43\x55\x52\x53\x4F\x52\x5F\x42\x45\x4E\x44\x5F\x48\x41\x4E\x44\x4C\x45","\x72\x65\x6D\x6F\x76\x65\x50\x6F\x69\x6E\x74","\x69\x73\x54\x61\x72\x67\x65\x74","\x69\x73\x4C\x61\x62\x65\x6C","\x63\x6C\x6F\x6E\x65\x50\x72\x65\x76\x69\x65\x77\x53\x74\x61\x74\x65","\x67\x65\x74\x53\x6E\x61\x70\x54\x6F\x54\x65\x72\x6D\x69\x6E\x61\x6C\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x67\x65\x74\x50\x72\x65\x76\x69\x65\x77\x54\x65\x72\x6D\x69\x6E\x61\x6C\x53\x74\x61\x74\x65","\x67\x65\x74\x50\x72\x65\x76\x69\x65\x77\x50\x6F\x69\x6E\x74\x73","\x75\x70\x64\x61\x74\x65\x50\x72\x65\x76\x69\x65\x77\x53\x74\x61\x74\x65","\x73\x65\x74\x50\x72\x65\x76\x69\x65\x77\x43\x6F\x6C\x6F\x72","\x6D\x6F\x76\x65\x4C\x61\x62\x65\x6C","\x63\x68\x61\x6E\x67\x65\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x63\x68\x61\x6E\x67\x65\x50\x6F\x69\x6E\x74\x73","\x61\x64\x64\x50\x6F\x69\x6E\x74\x41\x74","\x66\x69\x6E\x64\x4E\x65\x61\x72\x65\x73\x74\x53\x65\x67\x6D\x65\x6E\x74","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x69\x6C\x6C\x43\x6F\x6C\x6F\x72","\x4C\x4F\x43\x4B\x45\x44\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x43\x4F\x4E\x4E\x45\x43\x54\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x72\x65\x64\x72\x61\x77\x49\x6E\x6E\x65\x72\x42\x65\x6E\x64\x73","\x66\x6C\x69\x70\x45\x6E\x61\x62\x6C\x65\x64","\x64\x6F\x75\x62\x6C\x65\x43\x6C\x69\x63\x6B\x4F\x72\x69\x65\x6E\x74\x61\x74\x69\x6F\x6E\x52\x65\x73\x6F\x75\x72\x63\x65","\x64\x6F\x75\x62\x6C\x65\x43\x6C\x69\x63\x6B\x4F\x72\x69\x65\x6E\x74\x61\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x56\x69\x72\x74\x75\x61\x6C\x42\x65\x6E\x64","\x67\x65\x74\x43\x75\x72\x73\x6F\x72\x46\x6F\x72\x42\x65\x6E\x64","\x45\x44\x47\x45\x53\x54\x59\x4C\x45\x5F\x54\x4F\x50\x54\x4F\x42\x4F\x54\x54\x4F\x4D","\x45\x44\x47\x45\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x72\x6F\x77\x2D\x72\x65\x73\x69\x7A\x65","\x63\x6F\x6C\x2D\x72\x65\x73\x69\x7A\x65","\x6E\x6F\x72\x6D\x61\x6C\x4B\x65\x79\x73","\x73\x68\x69\x66\x74\x4B\x65\x79\x73","\x63\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79\x73","\x63\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79\x73","\x6B\x65\x79\x44\x6F\x77\x6E","\x62\x69\x6E\x64\x4B\x65\x79","\x62\x69\x6E\x64\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79","\x67\x65\x74\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x69\x73\x47\x72\x61\x70\x68\x45\x76\x65\x6E\x74","\x68\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x73\x65\x74\x48\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x6D\x78\x54\x6F\x6F\x6C\x74\x69\x70","\x68\x69\x64\x65\x54\x6F\x6F\x6C\x74\x69\x70","\x73\x74\x61\x74\x65\x53\x6F\x75\x72\x63\x65","\x72\x65\x73\x65\x74\x54\x69\x6D\x65\x72","\x48\x49\x47\x48\x4C\x49\x47\x48\x54\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x72\x65\x70\x61\x69\x6E\x74\x48\x61\x6E\x64\x6C\x65\x72","\x6B\x65\x65\x70\x4F\x6E\x54\x6F\x70","\x64\x72\x61\x77\x48\x69\x67\x68\x6C\x69\x67\x68\x74","\x65\x64\x69\x74\x6F\x72","\x68\x69\x64\x65\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x62\x69\x6E\x64\x41\x63\x74\x69\x6F\x6E","\x63\x6F\x6E\x66\x69\x67","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75","\x63\x72\x65\x61\x74\x65\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x49\x74\x65\x6D\x73","\x69\x66","\x61\x73","\x69\x63\x6F\x6E\x43\x6C\x73","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x73\x65\x70\x61\x72\x61\x74\x6F\x72","\x6E\x6F\x63\x65\x6C\x6C","\x6E\x63\x65\x6C\x6C\x73","\x6E\x6F\x74\x52\x6F\x6F\x74","\x6E\x6F\x6E\x45\x6D\x70\x74\x79","\x65\x78\x70\x61\x6E\x64\x61\x62\x6C\x65","\x63\x6F\x6C\x6C\x61\x70\x73\x61\x62\x6C\x65","\x76\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x65\x6D\x70\x74\x79\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x74\x6F\x6F\x6C\x62\x61\x72","\x69\x6E\x73\x65\x72\x74\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x2F\x73\x65\x70\x61\x72\x61\x74\x6F\x72\x2E\x67\x69\x66","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x4F\x70\x74\x69\x6F\x6E","\x73\x65\x74\x4D\x6F\x64\x65","\x61\x64\x64\x50\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x73\x74\x61\x6C\x6C\x44\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x46\x6C\x6F\x77","\x6D\x61\x6B\x65\x44\x72\x61\x67\x67\x61\x62\x6C\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x73","\x63\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x56\x61\x6C\x75\x65\x73","\x70\x6F\x70\x75\x70\x48\x61\x6E\x64\x6C\x65\x72","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x47\x72\x61\x70\x68","\x63\x72\x65\x61\x74\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x6B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x63\x6F\x6E\x66\x69\x67\x75\x72\x65","\x63\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4E\x61\x6D\x65","\x49\x53\x5F\x4C\x4F\x43\x41\x4C","\x63\x72\x65\x61\x74\x65\x53\x65\x73\x73\x69\x6F\x6E","\x2F\x72\x65\x73\x6F\x75\x72\x63\x65\x73\x2F\x65\x64\x69\x74\x6F\x72","\x61\x73\x6B\x5A\x6F\x6F\x6D\x52\x65\x73\x6F\x75\x72\x63\x65","\x61\x73\x6B\x5A\x6F\x6F\x6D","\x6C\x61\x73\x74\x53\x61\x76\x65\x64\x52\x65\x73\x6F\x75\x72\x63\x65","\x6C\x61\x73\x74\x53\x61\x76\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x46\x69\x6C\x65\x52\x65\x73\x6F\x75\x72\x63\x65","\x63\x75\x72\x72\x65\x6E\x74\x46\x69\x6C\x65","\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x74\x61\x73\x6B\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x74\x61\x73\x6B\x73","\x68\x65\x6C\x70\x52\x65\x73\x6F\x75\x72\x63\x65","\x6F\x75\x74\x6C\x69\x6E\x65\x52\x65\x73\x6F\x75\x72\x63\x65","\x64\x62\x6C\x43\x6C\x69\x63\x6B\x41\x63\x74\x69\x6F\x6E","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x52\x65\x71\x75\x69\x72\x65\x64","\x66\x6F\x72\x63\x65\x64\x49\x6E\x73\x65\x72\x74\x69\x6E\x67","\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x64\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x64\x65\x66\x61\x75\x6C\x74\x47\x72\x6F\x75\x70","\x67\x72\x6F\x75\x70\x42\x6F\x72\x64\x65\x72\x53\x69\x7A\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x70\x6F\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x4E\x61\x6D\x65","\x75\x72\x6C\x50\x6F\x73\x74","\x75\x72\x6C\x49\x6D\x61\x67\x65","\x6C\x61\x79\x6F\x75\x74\x44\x69\x61\x67\x72\x61\x6D","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x53\x70\x61\x63\x69\x6E\x67","\x6D\x61\x69\x6E\x74\x61\x69\x6E\x53\x77\x69\x6D\x6C\x61\x6E\x65\x73","\x6C\x61\x79\x6F\x75\x74\x53\x77\x69\x6D\x6C\x61\x6E\x65\x73","\x63\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x49\x6E\x64\x65\x78","\x74\x61\x73\x6B\x73\x57\x69\x6E\x64\x6F\x77\x49\x6D\x61\x67\x65","\x74\x61\x73\x6B\x73\x54\x6F\x70","\x68\x65\x6C\x70\x57\x69\x6E\x64\x6F\x77\x49\x6D\x61\x67\x65","\x75\x72\x6C\x48\x65\x6C\x70","\x68\x65\x6C\x70\x57\x69\x64\x74\x68","\x68\x65\x6C\x70\x48\x65\x69\x67\x68\x74","\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x57\x69\x64\x74\x68","\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x48\x65\x69\x67\x68\x74","\x6D\x6F\x76\x65\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x44\x69\x61\x6C\x6F\x67","\x76\x61\x6C\x69\x64\x61\x74\x69\x6E\x67","\x65\x78\x70\x6F\x72\x74\x49\x6D\x61\x67\x65","\x67\x65\x74\x55\x72\x6C\x49\x6D\x61\x67\x65","\x67\x65\x74\x56\x69\x65\x77\x58\x6D\x6C","\x5F\x62\x6C\x61\x6E\x6B","\x63\x75\x74","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x75\x6E\x67\x72\x6F\x75\x70","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x73\x68\x6F\x77\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x73\x65\x6C\x65\x63\x74\x4E\x6F\x6E\x65","\x74\x6F\x42\x61\x63\x6B","\x74\x6F\x46\x72\x6F\x6E\x74","\x73\x65\x6C\x65\x63\x74\x50\x72\x65\x76\x69\x6F\x75\x73","\x73\x65\x6C\x65\x63\x74\x4E\x65\x78\x74","\x73\x65\x6C\x65\x63\x74\x50\x61\x72\x65\x6E\x74","\x73\x65\x6C\x65\x63\x74\x43\x68\x69\x6C\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65\x41\x6C\x6C","\x65\x78\x70\x61\x6E\x64","\x65\x78\x70\x61\x6E\x64\x41\x6C\x6C","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x4C\x65\x66\x74","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x43\x65\x6E\x74\x65\x72","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x52\x69\x67\x68\x74","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x54\x6F\x70","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x4D\x69\x64\x64\x6C\x65","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73\x42\x6F\x74\x74\x6F\x6D","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x4C\x65\x66\x74","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x43\x65\x6E\x74\x65\x72","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x52\x69\x67\x68\x74","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x54\x6F\x70","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x4D\x69\x64\x64\x6C\x65","\x61\x6C\x69\x67\x6E\x46\x6F\x6E\x74\x42\x6F\x74\x74\x6F\x6D","\x70\x72\x6F\x6D\x70\x74","\x74\x6F\x67\x67\x6C\x65\x54\x61\x73\x6B\x73","\x73\x68\x6F\x77\x54\x61\x73\x6B\x73","\x74\x6F\x67\x67\x6C\x65\x48\x65\x6C\x70","\x73\x68\x6F\x77\x48\x65\x6C\x70","\x74\x6F\x67\x67\x6C\x65\x4F\x75\x74\x6C\x69\x6E\x65","\x73\x68\x6F\x77\x4F\x75\x74\x6C\x69\x6E\x65","\x74\x6F\x67\x67\x6C\x65\x43\x6F\x6E\x73\x6F\x6C\x65","\x72\x65\x73\x65\x74\x48\x69\x73\x74\x6F\x72\x79","\x72\x65\x73\x65\x74\x46\x69\x72\x73\x74\x54\x69\x6D\x65","\x63\x6F\x6F\x6B\x69\x65","\x6D\x78\x67\x72\x61\x70\x68\x3D\x73\x65\x65\x6E\x3B\x20\x65\x78\x70\x69\x72\x65\x73\x3D\x46\x72\x69\x2C\x20\x32\x37\x20\x4A\x75\x6C\x20\x32\x30\x30\x31\x20\x30\x32\x3A\x34\x37\x3A\x31\x31\x20\x55\x54\x43\x3B\x20\x70\x61\x74\x68\x3D\x2F","\x43\x61\x6E\x6E\x6F\x74\x20\x65\x78\x65\x63\x75\x74\x65\x20","\x3A\x20","\x43\x61\x6E\x6E\x6F\x74\x20\x66\x69\x6E\x64\x20\x61\x63\x74\x69\x6F\x6E\x20","\x61\x64\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x67\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65","\x69\x6E\x73\x74\x61\x6C\x6C\x44\x62\x6C\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x55\x6E\x64\x6F\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x44\x72\x69\x6C\x6C\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x73\x74\x61\x6C\x6C\x49\x6E\x73\x65\x72\x74\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x63\x72\x65\x61\x74\x65\x53\x77\x69\x6D\x6C\x61\x6E\x65\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x4C\x61\x79\x6F\x75\x74\x4D\x61\x6E\x61\x67\x65\x72","\x73\x77\x69\x6D\x6C\x61\x6E\x65\x4C\x61\x79\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x53\x77\x69\x6D\x6C\x61\x6E\x65\x4C\x61\x79\x6F\x75\x74","\x64\x69\x61\x67\x72\x61\x6D\x4C\x61\x79\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x44\x69\x61\x67\x72\x61\x6D\x4C\x61\x79\x6F\x75\x74","\x73\x65\x74\x47\x72\x61\x70\x68\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x72\x75\x62\x62\x65\x72\x62\x61\x6E\x64","\x73\x65\x74\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x65\x74\x53\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x74\x6F\x4C\x6F\x63\x61\x6C\x65\x53\x74\x72\x69\x6E\x67","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x65\x74\x54\x69\x74\x6C\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x74\x54\x69\x74\x6C\x65","\x74\x72\x65\x65\x4C\x61\x79\x6F\x75\x74","\x20\x3E\x20","\x67\x65\x74\x52\x6F\x6F\x74\x54\x69\x74\x6C\x65","\x63\x72\x65\x61\x74\x65\x47\x72\x6F\x75\x70","\x72\x65\x61\x64\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x67\x65\x74\x55\x72\x6C\x50\x6F\x73\x74","\x77\x72\x69\x74\x65\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x70\x6F\x73\x74\x44\x69\x61\x67\x72\x61\x6D","\x73\x77\x61\x70\x53\x74\x79\x6C\x65\x73","\x63\x72\x65\x61\x74\x65\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x69\x73\x50\x72\x6F\x70\x65\x72\x74\x69\x65\x73\x56\x69\x73\x69\x62\x6C\x65","\x72\x65\x61\x64\x6F\x6E\x6C\x79","\x49\x44","\x53\x74\x79\x6C\x65","\x63\x72\x65\x61\x74\x65\x54\x61\x73\x6B\x73","\x72\x65\x66\x72\x65\x73\x68\x54\x61\x73\x6B\x73","\x66\x72\x61\x6D\x65\x42\x6F\x72\x64\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65\x43\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x79\x63\x6C\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x69\x73\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x65\x64\x4D\x6F\x76\x69\x6E\x67","\x63\x6F\x64\x65\x63\x73","\x74\x65\x6D\x70\x6C\x61\x74\x65","\x61\x64\x64\x41\x6C\x69\x61\x73","\x61\x6C\x69\x61\x73\x65\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x65\x6E\x63\x6F\x64\x65\x44\x65\x66\x61\x75\x6C\x74\x73","\x67\x65\x74\x4F\x62\x6A\x65\x63\x74","\x72\x65\x66\x65\x72\x65\x6E\x63\x65","\x67\x65\x74\x43\x6F\x64\x65\x63","\x69\x6D\x70\x6F\x72\x74\x4E\x6F\x64\x65","\x6D\x78\x43\x6F\x64\x65\x63\x2E\x65\x6E\x63\x6F\x64\x65\x3A\x20\x4E\x6F\x20\x63\x6F\x64\x65\x63\x20\x66\x6F\x72\x20","\x43\x61\x6E\x6E\x6F\x74\x20\x64\x65\x63\x6F\x64\x65\x20","\x65\x6E\x63\x6F\x64\x65\x43\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x64\x65\x63","\x64\x65\x63\x6F\x64\x65\x43\x65\x6C\x6C","\x69\x6E\x73\x65\x72\x74\x49\x6E\x74\x6F\x47\x72\x61\x70\x68","\x65\x78\x63\x6C\x75\x64\x65","\x69\x64\x72\x65\x66\x73","\x6D\x61\x70\x70\x69\x6E\x67","\x72\x65\x76\x65\x72\x73\x65","\x63\x6C\x6F\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x67\x65\x74\x46\x69\x65\x6C\x64\x4E\x61\x6D\x65","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4E\x61\x6D\x65","\x69\x73\x45\x78\x63\x6C\x75\x64\x65\x64","\x69\x73\x52\x65\x66\x65\x72\x65\x6E\x63\x65","\x62\x65\x66\x6F\x72\x65\x45\x6E\x63\x6F\x64\x65","\x65\x6E\x63\x6F\x64\x65\x4F\x62\x6A\x65\x63\x74","\x61\x66\x74\x65\x72\x45\x6E\x63\x6F\x64\x65","\x65\x6E\x63\x6F\x64\x65\x56\x61\x6C\x75\x65","\x6D\x78\x4F\x62\x6A\x65\x63\x74\x43\x6F\x64\x65\x63\x2E\x65\x6E\x63\x6F\x64\x65\x3A\x20\x4E\x6F\x20\x49\x44\x20\x66\x6F\x72\x20","\x77\x72\x69\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x77\x72\x69\x74\x65\x50\x72\x69\x6D\x69\x74\x69\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x77\x72\x69\x74\x65\x43\x6F\x6D\x70\x6C\x65\x78\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x54\x6F\x58\x6D\x6C","\x6D\x78\x4F\x62\x6A\x65\x63\x74\x43\x6F\x64\x65\x63\x2E\x65\x6E\x63\x6F\x64\x65\x3A\x20\x4E\x6F\x20\x6E\x6F\x64\x65\x20\x66\x6F\x72\x20","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x46\x72\x6F\x6D\x58\x6D\x6C","\x62\x65\x66\x6F\x72\x65\x44\x65\x63\x6F\x64\x65","\x64\x65\x63\x6F\x64\x65\x4E\x6F\x64\x65","\x61\x66\x74\x65\x72\x44\x65\x63\x6F\x64\x65","\x64\x65\x63\x6F\x64\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x63\x6F\x64\x65\x43\x68\x69\x6C\x64\x72\x65\x6E","\x64\x65\x63\x6F\x64\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6D\x78\x4F\x62\x6A\x65\x63\x74\x43\x6F\x64\x65\x63\x2E\x64\x65\x63\x6F\x64\x65\x3A\x20\x4E\x6F\x20\x6F\x62\x6A\x65\x63\x74\x20\x66\x6F\x72\x20","\x70\x72\x6F\x63\x65\x73\x73\x49\x6E\x63\x6C\x75\x64\x65","\x64\x65\x63\x6F\x64\x65\x43\x68\x69\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x61\x64\x64\x4F\x62\x6A\x65\x63\x74\x56\x61\x6C\x75\x65","\x69\x6E\x63\x6C\x75\x64\x65","\x72\x65\x6D\x6F\x76\x65\x57\x68\x69\x74\x65\x73\x70\x61\x63\x65","\x64\x65\x63\x6F\x64\x65\x52\x6F\x6F\x74","\x67\x72\x61\x70\x68\x4C\x69\x73\x74\x65\x6E\x65\x72\x73\x20\x65\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72\x73\x20\x76\x69\x65\x77\x20\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72\x20\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72\x20\x65\x64\x69\x74\x6F\x72\x20\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x6C\x61\x79\x65\x72","\x67\x65\x74\x53\x74\x72\x69\x6E\x67\x56\x61\x6C\x75\x65","\x6D\x78\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74\x43\x6F\x64\x65\x63\x2E\x64\x65\x63\x6F\x64\x65\x3A\x20\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74\x20","\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x64","\x70\x72\x65\x73\x73\x65\x64\x49\x63\x6F\x6E","\x6D\x6F\x64\x65","\x74\x6F\x67\x67\x6C\x65","\x2D\x2D\x2D","\x63\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x54\x65\x6D\x70\x6C\x61\x74\x65\x20","\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6D\x6F\x64\x69\x66\x69\x65\x64\x20\x6C\x61\x73\x74\x53\x6E\x61\x70\x73\x68\x6F\x74\x20\x69\x67\x6E\x6F\x72\x65\x64\x43\x68\x61\x6E\x67\x65\x73\x20\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72\x20\x67\x72\x61\x70\x68\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72\x20\x74\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x41\x72\x72\x61\x79","\x64\x65\x63\x6F\x64\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x75\x69","\x64\x65\x63\x6F\x64\x65\x55\x69","\x73\x65\x74\x4D\x61\x70\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x72\x65\x73\x6F\x75\x72\x63\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65"];var mxClient={VERSION:_0x221c[0],IS_IE:0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[1]),IS_IE6:0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[4]),IS_QUIRKS:0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[1])&&(null==document[_0x221c[5]]||5==document[_0x221c[5]]),VML_PREFIX:_0x221c[6],OFFICE_PREFIX:_0x221c[7],IS_NS:0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[8])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[1]),IS_OP:0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[9]),IS_OT:0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[10])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[11])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[12])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[13])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[14])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[15]),IS_SF:0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[16])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[17]),IS_GC:0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[17]),IS_MT:0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[18])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[19])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[20])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[21])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[22])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[23])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[24])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[25])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[26])&&0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[27]),IS_SVG:0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[18])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[21])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[28])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[26])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[29])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[30])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[16])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[31])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[9]),NO_FO:0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[19])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[22])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[20])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[23])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[25])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[27])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[32])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[33])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[9])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[1])||0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[34]),IS_VML:_0x221c[35]==navigator[_0x221c[37]][_0x221c[36]](),IS_MAC:0<navigator[_0x221c[3]][_0x221c[36]]()[_0x221c[2]](_0x221c[38]),IS_TOUCH:0<navigator[_0x221c[3]][_0x221c[36]]()[_0x221c[2]](_0x221c[39])||0<navigator[_0x221c[3]][_0x221c[36]]()[_0x221c[2]](_0x221c[40])||0<navigator[_0x221c[3]][_0x221c[36]]()[_0x221c[2]](_0x221c[41])||0<navigator[_0x221c[3]][_0x221c[36]]()[_0x221c[2]](_0x221c[42]),IS_LOCAL:0>document[_0x221c[45]][_0x221c[44]][_0x221c[2]](_0x221c[43])&&0>document[_0x221c[45]][_0x221c[44]][_0x221c[2]](_0x221c[46]),isBrowserSupported:function(){return mxClient[_0x221c[47]]||mxClient[_0x221c[48]]},link:function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=_0xc851x4||document;if(mxClient[_0x221c[49]]){_0xc851x4[_0x221c[53]](_0x221c[50]+_0xc851x2+_0x221c[51]+_0xc851x3+_0x221c[52])}else {var _0xc851x5=_0xc851x4[_0x221c[55]](_0x221c[54]);_0xc851x5[_0x221c[57]](_0x221c[56],_0xc851x2);_0xc851x5[_0x221c[57]](_0x221c[44],_0xc851x3);_0xc851x5[_0x221c[57]](_0x221c[58],_0x221c[59]);_0xc851x5[_0x221c[57]](_0x221c[60],_0x221c[61]);_0xc851x4[_0x221c[64]](_0x221c[63])[0][_0x221c[62]](_0xc851x5)}},include:function(_0xc851x2){document[_0x221c[53]](_0x221c[65]+_0xc851x2+_0x221c[66])},dispose:function(){for(var _0xc851x2=0;_0xc851x2<mxEvent[_0x221c[68]][_0x221c[67]];_0xc851x2++){null!=mxEvent[_0x221c[68]][_0xc851x2][_0x221c[69]]&&mxEvent[_0x221c[70]](mxEvent[_0x221c[68]][_0xc851x2])}}};mxClient[_0x221c[71]]&&mxClient[_0x221c[72]]?mxClient[_0x221c[73]]=_0x221c[74]:mxClient[_0x221c[75]]||mxClient[_0x221c[76]]?mxClient[_0x221c[73]]=_0x221c[77]:mxClient[_0x221c[78]]?mxClient[_0x221c[73]]=_0x221c[79]:mxClient[_0x221c[80]]&&9<=document[_0x221c[5]]&&(mxClient[_0x221c[73]]=_0x221c[81]);_0x221c[82]== typeof mxLoadResources&&(mxLoadResources= !0);_0x221c[82]== typeof mxResourceExtension&&(mxResourceExtension=_0x221c[83]);_0x221c[82]== typeof mxLoadStylesheets&&(mxLoadStylesheets= !0);_0x221c[82]!= typeof mxBasePath&&0<mxBasePath[_0x221c[67]]?(_0x221c[84]==mxBasePath[_0x221c[85]](mxBasePath[_0x221c[67]]-1)&&(mxBasePath=mxBasePath[_0x221c[85]](0,mxBasePath[_0x221c[67]]-1)),mxClient[_0x221c[86]]=mxBasePath):mxClient[_0x221c[86]]=_0x221c[87];_0x221c[82]!= typeof mxImageBasePath&&0<mxImageBasePath[_0x221c[67]]?(_0x221c[84]==mxImageBasePath[_0x221c[85]](mxImageBasePath[_0x221c[67]]-1)&&(mxImageBasePath=mxImageBasePath[_0x221c[85]](0,mxImageBasePath[_0x221c[67]]-1)),mxClient[_0x221c[88]]=mxImageBasePath):mxClient[_0x221c[88]]=mxClient[_0x221c[86]]+_0x221c[89];mxClient[_0x221c[90]]=_0x221c[82]!= typeof mxLanguage?mxLanguage:mxClient[_0x221c[80]]?navigator[_0x221c[91]]:navigator[_0x221c[90]];mxClient[_0x221c[92]]=_0x221c[82]!= typeof mxDefaultLanguage?mxDefaultLanguage:_0x221c[93];mxLoadStylesheets&&mxClient[_0x221c[54]](_0x221c[94],mxClient[_0x221c[86]]+_0x221c[95]);_0x221c[82]!= typeof mxLanguages&&(mxClient[_0x221c[96]]=mxLanguages);if(mxClient[_0x221c[80]]){if(9<=document[_0x221c[5]]){mxClient[_0x221c[47]]= !1,mxClient[_0x221c[48]]= !0}else {8==document[_0x221c[5]]?(document[_0x221c[100]][_0x221c[99]](mxClient.VML_PREFIX,_0x221c[97],_0x221c[98]),document[_0x221c[100]][_0x221c[99]](mxClient.OFFICE_PREFIX,_0x221c[101],_0x221c[98])):(document[_0x221c[100]][_0x221c[99]](mxClient.VML_PREFIX,_0x221c[97]),document[_0x221c[100]][_0x221c[99]](mxClient.OFFICE_PREFIX,_0x221c[101]));var ss=document[_0x221c[102]]();ss[_0x221c[103]]=_0x221c[104];mxLoadStylesheets&&mxClient[_0x221c[54]](_0x221c[94],mxClient[_0x221c[86]]+_0x221c[105])};window[_0x221c[108]](_0x221c[106],mxClient[_0x221c[107]])};var mxLog={consoleName:_0x221c[109],TRACE:!1,DEBUG:!0,WARN:!0,buffer:_0x221c[110],init:function(){if(null==mxLog[_0x221c[111]]&&null!=document[_0x221c[112]]){var _0xc851x2=mxLog[_0x221c[113]]+_0x221c[114]+mxClient[_0x221c[115]],_0xc851x3=document[_0x221c[55]](_0x221c[116]);_0xc851x3[_0x221c[57]](_0x221c[117],_0x221c[118]);_0xc851x3[_0x221c[57]](_0x221c[119],_0x221c[118]);var _0xc851x4=document[_0x221c[55]](_0x221c[120]),_0xc851x5=document[_0x221c[55]](_0x221c[121]),_0xc851x9=document[_0x221c[55]](_0x221c[122]);_0xc851x9[_0x221c[124]][_0x221c[123]]=_0x221c[125];mxLog[_0x221c[126]]=document[_0x221c[55]](_0x221c[126]);mxLog[_0x221c[126]][_0x221c[57]](_0x221c[127],_0x221c[128]);mxLog[_0x221c[126]][_0x221c[124]][_0x221c[119]]=_0x221c[118];mxLog[_0x221c[126]][_0x221c[124]][_0x221c[129]]=_0x221c[130];mxLog[_0x221c[126]][_0x221c[131]]=mxLog[_0x221c[132]];mxLog[_0x221c[126]][_0x221c[124]][_0x221c[117]]=mxClient[_0x221c[133]]&&_0x221c[134]!=document[_0x221c[135]]?_0x221c[136]:_0x221c[118];_0xc851x9[_0x221c[62]](mxLog[_0x221c[126]]);_0xc851x5[_0x221c[62]](_0xc851x9);_0xc851x4[_0x221c[62]](_0xc851x5);_0xc851x5=document[_0x221c[55]](_0x221c[121]);mxLog[_0x221c[122]]=document[_0x221c[55]](_0x221c[122]);mxLog[_0x221c[122]][_0x221c[124]][_0x221c[123]]=_0x221c[125];mxLog[_0x221c[122]][_0x221c[57]](_0x221c[119],_0x221c[137]);_0xc851x5[_0x221c[62]](mxLog[_0x221c[122]]);_0xc851x4[_0x221c[62]](_0xc851x5);_0xc851x3[_0x221c[62]](_0xc851x4);mxLog[_0x221c[140]](_0x221c[138],function(_0xc851x2){mxLog[_0x221c[139]]()});mxLog[_0x221c[140]](_0x221c[141],function(_0xc851x2){_0xc851x2=mxUtils[_0x221c[142]](document[_0x221c[112]]);mxLog[_0x221c[143]](_0xc851x2)});mxLog[_0x221c[140]](_0x221c[144],function(_0xc851x2){mxLog[_0x221c[145]]=!mxLog[_0x221c[145]];mxLog[_0x221c[145]]?mxLog[_0x221c[143]](_0x221c[146]):mxLog[_0x221c[143]](_0x221c[147])});mxLog[_0x221c[140]](_0x221c[148],function(_0xc851x2){try{mxUtils[_0x221c[149]](mxLog[_0x221c[126]][_0x221c[131]])}catch(_0xc851x3){mxUtils[_0x221c[150]](_0xc851x3)}});mxLog[_0x221c[140]](_0x221c[151],function(_0xc851x2){try{mxUtils[_0x221c[152]](mxLog[_0x221c[126]][_0x221c[131]])}catch(_0xc851x3){mxUtils[_0x221c[150]](_0xc851x3)}});mxLog[_0x221c[140]](_0x221c[153],function(_0xc851x2){mxLog[_0x221c[126]][_0x221c[131]]=_0x221c[110]});_0xc851x5=_0xc851x4=0;_0x221c[154]=== typeof window[_0x221c[155]]?(_0xc851x4=window[_0x221c[156]],_0xc851x5=window[_0x221c[155]]):(_0xc851x4=document[_0x221c[158]][_0x221c[157]]||document[_0x221c[112]][_0x221c[157]],_0xc851x5=document[_0x221c[112]][_0x221c[159]]);mxLog[_0x221c[111]]= new mxWindow(_0xc851x2,_0xc851x3,Math[_0x221c[160]](0,_0xc851x5-320),Math[_0x221c[160]](0,_0xc851x4-210),300,160);mxLog[_0x221c[111]][_0x221c[161]](!0);mxLog[_0x221c[111]][_0x221c[162]](!1);mxLog[_0x221c[111]][_0x221c[163]](!0);mxLog[_0x221c[111]][_0x221c[164]](!0);mxLog[_0x221c[111]][_0x221c[165]]= !1;if((mxClient[_0x221c[133]]||mxClient[_0x221c[80]])&&!mxClient[_0x221c[76]]&&!mxClient[_0x221c[75]]&&_0x221c[134]!=document[_0x221c[135]]){var _0xc851xa=mxLog[_0x221c[111]][_0x221c[166]](),_0xc851x2=function(_0xc851x2,_0xc851x3){mxLog[_0x221c[126]][_0x221c[124]][_0x221c[119]]=Math[_0x221c[160]](0,_0xc851xa[_0x221c[167]]-70)+_0x221c[168]};mxLog[_0x221c[111]][_0x221c[169]](mxEvent.RESIZE_END,_0xc851x2);mxLog[_0x221c[111]][_0x221c[169]](mxEvent.MAXIMIZE,_0xc851x2);mxLog[_0x221c[111]][_0x221c[169]](mxEvent.NORMALIZE,_0xc851x2);mxLog[_0x221c[126]][_0x221c[124]][_0x221c[119]]=_0x221c[170]}}},info:function(){mxLog[_0x221c[171]](mxUtils.toString(navigator))},addButton:function(_0xc851x2,_0xc851x3){var _0xc851x4=document[_0x221c[55]](_0x221c[172]);mxUtils[_0x221c[53]](_0xc851x4,_0xc851x2);mxEvent[_0x221c[169]](_0xc851x4,_0x221c[173],_0xc851x3);mxLog[_0x221c[122]][_0x221c[62]](_0xc851x4)},isVisible:function(){return null!=mxLog[_0x221c[111]]?mxLog[_0x221c[111]][_0x221c[174]]():!1},show:function(){mxLog[_0x221c[175]](!0)},setVisible:function(_0xc851x2){null==mxLog[_0x221c[111]]&&mxLog[_0x221c[176]]();null!=mxLog[_0x221c[111]]&&mxLog[_0x221c[111]][_0x221c[175]](_0xc851x2)},enter:function(_0xc851x2){if(mxLog[_0x221c[145]]){return mxLog[_0x221c[171]](_0x221c[177]+_0xc851x2),( new Date)[_0x221c[178]]()}},leave:function(_0xc851x2,_0xc851x3){if(mxLog[_0x221c[145]]){var _0xc851x4=0!=_0xc851x3?_0x221c[179]+(( new Date)[_0x221c[178]]()-_0xc851x3)+_0x221c[180]:_0x221c[110];mxLog[_0x221c[171]](_0x221c[181]+_0xc851x2+_0xc851x4)}},debug:function(){mxLog[_0x221c[182]]&&mxLog[_0x221c[171]][_0x221c[183]](this,arguments)},warn:function(){mxLog[_0x221c[184]]&&mxLog[_0x221c[171]][_0x221c[183]](this,arguments)},write:function(){for(var _0xc851x2=_0x221c[110],_0xc851x3=0;_0xc851x3<arguments[_0x221c[67]];_0xc851x3++){_0xc851x2+=arguments[_0xc851x3],_0xc851x3<arguments[_0x221c[67]]-1&&(_0xc851x2+=_0x221c[185])};null!=mxLog[_0x221c[126]]?(mxLog[_0x221c[126]][_0x221c[131]]+=_0xc851x2,0<=navigator[_0x221c[3]][_0x221c[2]](_0x221c[186])&&(mxLog[_0x221c[126]][_0x221c[124]][_0x221c[187]]=_0x221c[188],mxLog[_0x221c[126]][_0x221c[124]][_0x221c[187]]=_0x221c[189]),mxLog[_0x221c[126]][_0x221c[190]]=mxLog[_0x221c[126]][_0x221c[191]]):mxLog[_0x221c[132]]+=_0xc851x2},writeln:function(){for(var _0xc851x2=_0x221c[110],_0xc851x3=0;_0xc851x3<arguments[_0x221c[67]];_0xc851x3++){_0xc851x2+=arguments[_0xc851x3],_0xc851x3<arguments[_0x221c[67]]-1&&(_0xc851x2+=_0x221c[185])};mxLog[_0x221c[53]](_0xc851x2+_0x221c[192])}},mxObjectIdentity={FIELD_NAME:_0x221c[193],counter:0,get:function(_0xc851x2){if(_0x221c[194]== typeof _0xc851x2&&null==_0xc851x2[mxObjectIdentity[_0x221c[195]]]){var _0xc851x3=mxUtils[_0x221c[197]](_0xc851x2[_0x221c[196]]);_0xc851x2[mxObjectIdentity[_0x221c[195]]]=_0xc851x3+_0x221c[198]+mxObjectIdentity[_0x221c[199]]++};return _0xc851x2[mxObjectIdentity[_0x221c[195]]]},clear:function(_0xc851x2){_0x221c[194]== typeof _0xc851x2&& delete _0xc851x2[mxObjectIdentity[_0x221c[195]]]}};function mxDictionary(){this[_0x221c[200]]()}mxDictionary[_0x221c[202]][_0x221c[201]]=null;mxDictionary[_0x221c[202]][_0x221c[200]]=function(){this[_0x221c[201]]={}};mxDictionary[_0x221c[202]][_0x221c[203]]=function(_0xc851x2){_0xc851x2=mxObjectIdentity[_0x221c[203]](_0xc851x2);return this[_0x221c[201]][_0xc851x2]};mxDictionary[_0x221c[202]][_0x221c[204]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=mxObjectIdentity[_0x221c[203]](_0xc851x2),_0xc851x5=this[_0x221c[201]][_0xc851x4];this[_0x221c[201]][_0xc851x4]=_0xc851x3;return _0xc851x5};mxDictionary[_0x221c[202]][_0x221c[205]]=function(_0xc851x2){_0xc851x2=mxObjectIdentity[_0x221c[203]](_0xc851x2);var _0xc851x3=this[_0x221c[201]][_0xc851x2];delete this[_0x221c[201]][_0xc851x2];return _0xc851x3};mxDictionary[_0x221c[202]][_0x221c[206]]=function(){var _0xc851x2=[],_0xc851x3;for(_0xc851x3 in this[_0x221c[201]]){_0xc851x2[_0x221c[207]](_0xc851x3)};return _0xc851x2};mxDictionary[_0x221c[202]][_0x221c[208]]=function(){var _0xc851x2=[],_0xc851x3;for(_0xc851x3 in this[_0x221c[201]]){_0xc851x2[_0x221c[207]](this[_0x221c[201]][_0xc851x3])};return _0xc851x2};mxDictionary[_0x221c[202]][_0x221c[209]]=function(_0xc851x2){for(var _0xc851x3 in this[_0x221c[201]]){_0xc851x2(_0xc851x3,this[_0x221c[201]][_0xc851x3])}};var mxResources={resources:[],extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(_0xc851x2){return null!=mxClient[_0x221c[96]]?0<=mxUtils[_0x221c[2]](mxClient[_0x221c[96]],_0xc851x2):!0},getDefaultBundle:function(_0xc851x2,_0xc851x3){return mxResources[_0x221c[210]]||!mxResources[_0x221c[211]](_0xc851x3)?_0xc851x2+mxResources[_0x221c[212]]:null},getSpecialBundle:function(_0xc851x2,_0xc851x3){if(null==mxClient[_0x221c[96]]||!this[_0x221c[211]](_0xc851x3)){var _0xc851x4=_0xc851x3[_0x221c[2]](_0x221c[213]);0<_0xc851x4&&(_0xc851x3=_0xc851x3[_0x221c[85]](0,_0xc851x4))};return mxResources[_0x221c[214]]&&mxResources[_0x221c[211]](_0xc851x3)&&_0xc851x3!=mxClient[_0x221c[92]]?_0xc851x2+_0x221c[215]+_0xc851x3+mxResources[_0x221c[212]]:null},add:function(_0xc851x2,_0xc851x3){_0xc851x3=null!=_0xc851x3?_0xc851x3:mxClient[_0x221c[90]][_0x221c[216]]();if(_0xc851x3!=mxConstants[_0x221c[217]]){var _0xc851x4=mxResources[_0x221c[218]](_0xc851x2,_0xc851x3);if(null!=_0xc851x4){try{var _0xc851x5=mxUtils[_0x221c[219]](_0xc851x4);_0xc851x5[_0x221c[220]]()&&mxResources[_0x221c[222]](_0xc851x5[_0x221c[221]]())}catch(e){}};_0xc851x4=mxResources[_0x221c[223]](_0xc851x2,_0xc851x3);if(null!=_0xc851x4){try{_0xc851x5=mxUtils[_0x221c[219]](_0xc851x4),_0xc851x5[_0x221c[220]]()&&mxResources[_0x221c[222]](_0xc851x5[_0x221c[221]]())}catch(f){}}}},parse:function(_0xc851x2){if(null!=_0xc851x2){_0xc851x2=_0xc851x2[_0x221c[224]](_0x221c[192]);for(var _0xc851x3=0;_0xc851x3<_0xc851x2[_0x221c[67]];_0xc851x3++){if(_0x221c[198]!=_0xc851x2[_0xc851x3][_0x221c[225]](0)){var _0xc851x4=_0xc851x2[_0xc851x3][_0x221c[2]](_0x221c[226]);if(0<_0xc851x4){var _0xc851x5=_0xc851x2[_0xc851x3][_0x221c[85]](0,_0xc851x4),_0xc851x9=_0xc851x2[_0xc851x3][_0x221c[67]];13==_0xc851x2[_0xc851x3][_0x221c[227]](_0xc851x9-1)&&_0xc851x9--;_0xc851x4=_0xc851x2[_0xc851x3][_0x221c[85]](_0xc851x4+1,_0xc851x9);this[_0x221c[228]]?(_0xc851x4=_0xc851x4[_0x221c[230]](/\\(?=u[a-fA-F\d]{4})/g,_0x221c[229]),mxResources[_0x221c[231]][_0xc851x5]=unescape(_0xc851x4)):mxResources[_0x221c[231]][_0xc851x5]=_0xc851x4}}}}},get:function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2=mxResources[_0x221c[231]][_0xc851x2];null==_0xc851x2&&(_0xc851x2=_0xc851x4);if(null!=_0xc851x2&&null!=_0xc851x3){_0xc851x4=[];for(var _0xc851x5=null,_0xc851x9=0;_0xc851x9<_0xc851x2[_0x221c[67]];_0xc851x9++){var _0xc851xa=_0xc851x2[_0x221c[225]](_0xc851x9);_0x221c[232]==_0xc851xa?_0xc851x5=_0x221c[110]:null!=_0xc851x5&&_0x221c[233]==_0xc851xa?(_0xc851x5=parseInt(_0xc851x5)-1,0<=_0xc851x5&&_0xc851x5<_0xc851x3[_0x221c[67]]&&_0xc851x4[_0x221c[207]](_0xc851x3[_0xc851x5]),_0xc851x5=null):null!=_0xc851x5?_0xc851x5+=_0xc851xa:_0xc851x4[_0x221c[207]](_0xc851xa)};_0xc851x2=_0xc851x4[_0x221c[234]](_0x221c[110])};return _0xc851x2}};function mxPoint(_0xc851x2,_0xc851x3){this[_0x221c[235]]=null!=_0xc851x2?_0xc851x2:0;this[_0x221c[236]]=null!=_0xc851x3?_0xc851x3:0}mxPoint[_0x221c[202]][_0x221c[235]]=null;mxPoint[_0x221c[202]][_0x221c[236]]=null;mxPoint[_0x221c[202]][_0x221c[237]]=function(_0xc851x2){return _0xc851x2[_0x221c[235]]==this[_0x221c[235]]&&_0xc851x2[_0x221c[236]]==this[_0x221c[236]]};mxPoint[_0x221c[202]][_0x221c[238]]=function(){return mxUtils[_0x221c[238]](this)};function mxRectangle(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxPoint[_0x221c[239]](this,_0xc851x2,_0xc851x3);this[_0x221c[117]]=null!=_0xc851x4?_0xc851x4:0;this[_0x221c[119]]=null!=_0xc851x5?_0xc851x5:0}mxRectangle[_0x221c[202]]= new mxPoint;mxRectangle[_0x221c[202]][_0x221c[196]]=mxRectangle;mxRectangle[_0x221c[202]][_0x221c[117]]=null;mxRectangle[_0x221c[202]][_0x221c[119]]=null;mxRectangle[_0x221c[202]][_0x221c[240]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[235]]=_0xc851x2;this[_0x221c[236]]=_0xc851x3;this[_0x221c[117]]=_0xc851x4;this[_0x221c[119]]=_0xc851x5};mxRectangle[_0x221c[202]][_0x221c[241]]=function(){return this[_0x221c[235]]+this[_0x221c[117]]/2};mxRectangle[_0x221c[202]][_0x221c[242]]=function(){return this[_0x221c[236]]+this[_0x221c[119]]/2};mxRectangle[_0x221c[202]][_0x221c[99]]=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=Math[_0x221c[243]](this[_0x221c[235]],_0xc851x2[_0x221c[235]]),_0xc851x4=Math[_0x221c[243]](this[_0x221c[236]],_0xc851x2[_0x221c[236]]),_0xc851x5=Math[_0x221c[160]](this[_0x221c[235]]+this[_0x221c[117]],_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]);_0xc851x2=Math[_0x221c[160]](this[_0x221c[236]]+this[_0x221c[119]],_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]);this[_0x221c[235]]=_0xc851x3;this[_0x221c[236]]=_0xc851x4;this[_0x221c[117]]=_0xc851x5-_0xc851x3;this[_0x221c[119]]=_0xc851x2-_0xc851x4}};mxRectangle[_0x221c[202]][_0x221c[244]]=function(_0xc851x2){this[_0x221c[235]]-=_0xc851x2;this[_0x221c[236]]-=_0xc851x2;this[_0x221c[117]]+=2*_0xc851x2;this[_0x221c[119]]+=2*_0xc851x2};mxRectangle[_0x221c[202]][_0x221c[245]]=function(){return  new mxPoint(this[_0x221c[235]],this[_0x221c[236]])};mxRectangle[_0x221c[202]][_0x221c[237]]=function(_0xc851x2){return _0xc851x2[_0x221c[235]]==this[_0x221c[235]]&&_0xc851x2[_0x221c[236]]==this[_0x221c[236]]&&_0xc851x2[_0x221c[117]]==this[_0x221c[117]]&&_0xc851x2[_0x221c[119]]==this[_0x221c[119]]};var mxEffects={animateChanges:function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=0,_0xc851x9=function(){for(var _0xc851x12=!1,_0xc851x13=0;_0xc851x13<_0xc851x3[_0x221c[67]];_0xc851x13++){var _0xc851x14=_0xc851x3[_0xc851x13];if(_0xc851x14 instanceof mxGeometryChange||_0xc851x14 instanceof mxTerminalChange||_0xc851x14 instanceof mxValueChange||_0xc851x14 instanceof mxChildChange||_0xc851x14 instanceof mxStyleChange){var _0xc851x15=_0xc851x2[_0x221c[249]]()[_0x221c[248]](_0xc851x14[_0x221c[246]]||_0xc851x14[_0x221c[247]],!1);if(null!=_0xc851x15){if(_0xc851x12= !0,_0xc851x14[_0x221c[196]]!=mxGeometryChange||_0xc851x2[_0x221c[251]][_0x221c[250]](_0xc851x14[_0x221c[246]])){mxUtils[_0x221c[254]](_0xc851x15[_0x221c[253]][_0x221c[252]],100*_0xc851x5/10)}else {var _0xc851x16=_0xc851x2[_0x221c[249]]()[_0x221c[255]],_0xc851x17=(_0xc851x14[_0x221c[256]][_0x221c[235]]-_0xc851x14[_0x221c[257]][_0x221c[235]])*_0xc851x16,_0xc851x18=(_0xc851x14[_0x221c[256]][_0x221c[236]]-_0xc851x14[_0x221c[257]][_0x221c[236]])*_0xc851x16,_0xc851x19=(_0xc851x14[_0x221c[256]][_0x221c[117]]-_0xc851x14[_0x221c[257]][_0x221c[117]])*_0xc851x16,_0xc851x16=(_0xc851x14[_0x221c[256]][_0x221c[119]]-_0xc851x14[_0x221c[257]][_0x221c[119]])*_0xc851x16;0==_0xc851x5?(_0xc851x15[_0x221c[235]]-=_0xc851x17,_0xc851x15[_0x221c[236]]-=_0xc851x18,_0xc851x15[_0x221c[117]]-=_0xc851x19,_0xc851x15[_0x221c[119]]-=_0xc851x16):(_0xc851x15[_0x221c[235]]+=_0xc851x17/10,_0xc851x15[_0x221c[236]]+=_0xc851x18/10,_0xc851x15[_0x221c[117]]+=_0xc851x19/10,_0xc851x15[_0x221c[119]]+=_0xc851x16/10);_0xc851x2[_0x221c[259]][_0x221c[258]](_0xc851x15);mxEffects[_0x221c[260]](_0xc851x2,_0xc851x14[_0x221c[246]],100*_0xc851x5/10)}}}};10>_0xc851x5&&_0xc851x12?(_0xc851x5++,window[_0x221c[261]](_0xc851x9,_0xc851xa)):null!=_0xc851x4&&_0xc851x4()},_0xc851xa=30;_0xc851x9()},cascadeOpacity:function(_0xc851x2,_0xc851x3,_0xc851x4){for(var _0xc851x5=_0xc851x2[_0x221c[251]][_0x221c[262]](_0xc851x3),_0xc851x9=0;_0xc851x9<_0xc851x5;_0xc851x9++){var _0xc851xa=_0xc851x2[_0x221c[251]][_0x221c[263]](_0xc851x3,_0xc851x9),_0xc851x12=_0xc851x2[_0x221c[249]]()[_0x221c[248]](_0xc851xa);null!=_0xc851x12&&(mxUtils[_0x221c[254]](_0xc851x12[_0x221c[253]][_0x221c[252]],_0xc851x4),mxEffects[_0x221c[260]](_0xc851x2,_0xc851xa,_0xc851x4))};_0xc851x3=_0xc851x2[_0x221c[251]][_0x221c[264]](_0xc851x3);if(null!=_0xc851x3){for(_0xc851x9=0;_0xc851x9<_0xc851x3[_0x221c[67]];_0xc851x9++){_0xc851x5=_0xc851x2[_0x221c[249]]()[_0x221c[248]](_0xc851x3[_0xc851x9]),null!=_0xc851x5&&mxUtils[_0x221c[254]](_0xc851x5[_0x221c[253]][_0x221c[252]],_0xc851x4)}}},fadeOut:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x5=_0xc851x5||40;_0xc851x9=_0xc851x9||30;var _0xc851x12=_0xc851x3||100;mxUtils[_0x221c[254]](_0xc851x2,_0xc851x12);if(_0xc851xa||null==_0xc851xa){var _0xc851x13=function(){_0xc851x12=Math[_0x221c[160]](_0xc851x12-_0xc851x5,0);mxUtils[_0x221c[254]](_0xc851x2,_0xc851x12);0<_0xc851x12?window[_0x221c[261]](_0xc851x13,_0xc851x9):(_0xc851x2[_0x221c[124]][_0x221c[187]]=_0x221c[188],_0xc851x4&&_0xc851x2[_0x221c[265]]&&_0xc851x2[_0x221c[265]][_0x221c[266]](_0xc851x2))};window[_0x221c[261]](_0xc851x13,_0xc851x9)}else {_0xc851x2[_0x221c[124]][_0x221c[187]]=_0x221c[188],_0xc851x4&&_0xc851x2[_0x221c[265]]&&_0xc851x2[_0x221c[265]][_0x221c[266]](_0xc851x2)}}},mxUtils={errorResource:_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[267]:_0x221c[110],closeResource:_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[268]:_0x221c[110],errorImage:mxClient[_0x221c[88]]+_0x221c[269],removeCursors:function(_0xc851x2){null!=_0xc851x2[_0x221c[124]]&&(_0xc851x2[_0x221c[124]][_0x221c[270]]=_0x221c[110]);_0xc851x2=_0xc851x2[_0x221c[271]];if(null!=_0xc851x2){for(var _0xc851x3=_0xc851x2[_0x221c[67]],_0xc851x4=0;_0xc851x4<_0xc851x3;_0xc851x4+=1){mxUtils[_0x221c[272]](_0xc851x2[_0xc851x4])}}},getCurrentStyle:function(){return mxClient[_0x221c[80]]?function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[273]]:null}:function(_0xc851x2){return null!=_0xc851x2?window[_0x221c[274]](_0xc851x2,_0x221c[110]):null}}(),hasScrollbars:function(_0xc851x2){_0xc851x2=mxUtils[_0x221c[275]](_0xc851x2);return null!=_0xc851x2&&(_0x221c[276]==_0xc851x2[_0x221c[277]]||_0x221c[278]==_0xc851x2[_0x221c[277]])},bind:function(_0xc851x2,_0xc851x3){return function(){return _0xc851x3[_0x221c[183]](_0xc851x2,arguments)}},eval:function(_0xc851x2){var _0xc851x3=null;if(0<=_0xc851x2[_0x221c[2]](_0x221c[279])){try{eval(_0x221c[280]+_0xc851x2),_0xc851x3=_mxJavaScriptExpression,_mxJavaScriptExpression=null}catch(c){mxLog[_0x221c[283]](c[_0x221c[281]]+_0x221c[282]+_0xc851x2)}}else {try{_0xc851x3=eval(_0xc851x2)}catch(d){mxLog[_0x221c[283]](d[_0x221c[281]]+_0x221c[282]+_0xc851x2)}};return _0xc851x3},findNode:function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=_0xc851x2[_0x221c[284]](_0xc851x3);if(null!=_0xc851x5&&_0xc851x5==_0xc851x4){return _0xc851x2};for(_0xc851x2=_0xc851x2[_0x221c[285]];null!=_0xc851x2;){_0xc851x5=mxUtils[_0x221c[286]](_0xc851x2,_0xc851x3,_0xc851x4);if(null!=_0xc851x5){return _0xc851x5};_0xc851x2=_0xc851x2[_0x221c[287]]};return null},findNodeByAttribute:function(){return 9<=document[_0x221c[5]]?function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=null;if(null!=_0xc851x2){if(_0xc851x2[_0x221c[288]]==mxConstants[_0x221c[289]]&&_0xc851x2[_0x221c[284]](_0xc851x3)==_0xc851x4){_0xc851x5=_0xc851x2}else {for(_0xc851x2=_0xc851x2[_0x221c[285]];null!=_0xc851x2&&null==_0xc851x5;){_0xc851x5=mxUtils[_0x221c[290]](_0xc851x2,_0xc851x3,_0xc851x4),_0xc851x2=_0xc851x2[_0x221c[287]]}}};return _0xc851x5}:mxClient[_0x221c[80]]?function(_0xc851x2,_0xc851x3,_0xc851x4){return null==_0xc851x2?null:_0xc851x2[_0x221c[295]][_0x221c[294]](_0x221c[291]+_0xc851x3+_0x221c[292]+_0xc851x4+_0x221c[293])}:function(_0xc851x2,_0xc851x3,_0xc851x4){return null==_0xc851x2?null:_0xc851x2[_0x221c[295]][_0x221c[297]](_0x221c[291]+_0xc851x3+_0x221c[292]+_0xc851x4+_0x221c[293],_0xc851x2[_0x221c[295]],null,XPathResult.ANY_TYPE,null)[_0x221c[296]]()}}(),getFunctionName:function(_0xc851x2){var _0xc851x3=null;if(null!=_0xc851x2){if(null!=_0xc851x2[_0x221c[298]]){_0xc851x3=_0xc851x2[_0x221c[298]]}else {_0xc851x2=_0xc851x2.toString();for(_0xc851x3=9;_0x221c[185]==_0xc851x2[_0x221c[225]](_0xc851x3);){_0xc851x3++};var _0xc851x4=_0xc851x2[_0x221c[2]](_0x221c[299],_0xc851x3),_0xc851x3=_0xc851x2[_0x221c[85]](_0xc851x3,_0xc851x4)}};return _0xc851x3},indexOf:function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2&&null!=_0xc851x3){for(var _0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){if(_0xc851x2[_0xc851x4]==_0xc851x3){return _0xc851x4}}};return -1},remove:function(_0xc851x2,_0xc851x3){var _0xc851x4=null;if(_0x221c[194]== typeof _0xc851x3){for(var _0xc851x5=mxUtils[_0x221c[2]](_0xc851x3,_0xc851x2);0<=_0xc851x5;){_0xc851x3[_0x221c[300]](_0xc851x5,1),_0xc851x4=_0xc851x2,_0xc851x5=mxUtils[_0x221c[2]](_0xc851x3,_0xc851x2)}};for(var _0xc851x9 in _0xc851x3){_0xc851x3[_0xc851x9]==_0xc851x2&&( delete _0xc851x3[_0xc851x9],_0xc851x4=_0xc851x2)};return _0xc851x4},isNode:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){return null!=_0xc851x2&&!isNaN(_0xc851x2[_0x221c[288]])&&(null==_0xc851x3||_0xc851x2[_0x221c[301]][_0x221c[216]]()==_0xc851x3[_0x221c[216]]())?null==_0xc851x4||_0xc851x2[_0x221c[284]](_0xc851x4)==_0xc851x5:!1},getChildNodes:function(_0xc851x2,_0xc851x3){_0xc851x3=_0xc851x3||mxConstants[_0x221c[289]];for(var _0xc851x4=[],_0xc851x5=_0xc851x2[_0x221c[285]];null!=_0xc851x5;){_0xc851x5[_0x221c[288]]==_0xc851x3&&_0xc851x4[_0x221c[207]](_0xc851x5),_0xc851x5=_0xc851x5[_0x221c[287]]};return _0xc851x4},createXmlDocument:function(){var _0xc851x2=null;document[_0x221c[302]]&&document[_0x221c[302]][_0x221c[303]]?_0xc851x2=document[_0x221c[302]][_0x221c[303]](_0x221c[110],_0x221c[110],null):window[_0x221c[304]]&&(_0xc851x2= new ActiveXObject(_0x221c[305]));return _0xc851x2},parseXml:function(){return mxClient[_0x221c[80]]&&(_0x221c[82]=== typeof document[_0x221c[5]]||9>document[_0x221c[5]])?function(_0xc851x2){var _0xc851x3=mxUtils[_0x221c[306]]();_0xc851x3[_0x221c[307]]=_0x221c[308];_0xc851x3[_0x221c[309]](_0xc851x2);return _0xc851x3}:function(_0xc851x2){return ( new DOMParser)[_0x221c[311]](_0xc851x2,_0x221c[310])}}(),clearSelection:function(){if(document[_0x221c[312]]){return function(){document[_0x221c[312]][_0x221c[313]]()}};if(window[_0x221c[314]]){return function(){window[_0x221c[314]]()[_0x221c[315]]()}}}(),getPrettyXml:function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=[];if(null!=_0xc851x2){if(_0xc851x3=_0xc851x3||_0x221c[316],_0xc851x4=_0xc851x4||_0x221c[110],_0xc851x2[_0x221c[288]]==mxConstants[_0x221c[317]]){_0xc851x5[_0x221c[207]](_0xc851x2[_0x221c[318]])}else {_0xc851x5[_0x221c[207]](_0xc851x4+_0x221c[319]+_0xc851x2[_0x221c[301]]);var _0xc851x9=_0xc851x2[_0x221c[320]];if(null!=_0xc851x9){for(var _0xc851xa=0;_0xc851xa<_0xc851x9[_0x221c[67]];_0xc851xa++){var _0xc851x12=mxUtils[_0x221c[321]](_0xc851x9[_0xc851xa][_0x221c[318]]);_0xc851x5[_0x221c[207]](_0x221c[185]+_0xc851x9[_0xc851xa][_0x221c[301]]+_0x221c[322]+_0xc851x12+_0x221c[323])}};_0xc851x9=_0xc851x2[_0x221c[285]];if(null!=_0xc851x9){for(_0xc851x5[_0x221c[207]](_0x221c[324]);null!=_0xc851x9;){_0xc851x5[_0x221c[207]](mxUtils[_0x221c[325]](_0xc851x9,_0xc851x3,_0xc851x4+_0xc851x3)),_0xc851x9=_0xc851x9[_0x221c[287]]};_0xc851x5[_0x221c[207]](_0xc851x4+_0x221c[326]+_0xc851x2[_0x221c[301]]+_0x221c[324])}else {_0xc851x5[_0x221c[207]](_0x221c[327])}}};return _0xc851x5[_0x221c[234]](_0x221c[110])},removeWhitespace:function(_0xc851x2,_0xc851x3){for(var _0xc851x4=_0xc851x3?_0xc851x2[_0x221c[328]]:_0xc851x2[_0x221c[287]];null!=_0xc851x4&&_0xc851x4[_0x221c[288]]==mxConstants[_0x221c[317]];){var _0xc851x5=_0xc851x3?_0xc851x4[_0x221c[328]]:_0xc851x4[_0x221c[287]],_0xc851x9=mxUtils[_0x221c[329]](_0xc851x4);0==mxUtils[_0x221c[330]](_0xc851x9)[_0x221c[67]]&&_0xc851x4[_0x221c[265]][_0x221c[266]](_0xc851x4);_0xc851x4=_0xc851x5}},htmlEntities:function(_0xc851x2,_0xc851x3){_0xc851x2=(_0xc851x2||_0x221c[110])[_0x221c[230]](/&/g,_0x221c[331]);_0xc851x2=_0xc851x2[_0x221c[230]](/"/g,_0x221c[332]);_0xc851x2=_0xc851x2[_0x221c[230]](/\'/g,_0x221c[333]);_0xc851x2=_0xc851x2[_0x221c[230]](/</g,_0x221c[334]);_0xc851x2=_0xc851x2[_0x221c[230]](/>/g,_0x221c[335]);if(null==_0xc851x3||_0xc851x3){_0xc851x2=_0xc851x2[_0x221c[230]](/\n/g,_0x221c[336])};return _0xc851x2},isVml:function(_0xc851x2){return null!=_0xc851x2&&_0x221c[97]==_0xc851x2[_0x221c[337]]},getXml:function(_0xc851x2,_0xc851x3){var _0xc851x4=_0x221c[110];null!=_0xc851x2&&(_0xc851x4=_0xc851x2[_0x221c[338]],_0xc851x4=null==_0xc851x4?_0xc851x2[_0x221c[339]]?_0xc851x2[_0x221c[339]]:( new XMLSerializer)[_0x221c[340]](_0xc851x2):_0xc851x4[_0x221c[230]](/\r\n\t[\t]*/g,_0x221c[110])[_0x221c[230]](/>\r\n/g,_0x221c[341])[_0x221c[230]](/\r\n/g,_0x221c[192]));return _0xc851x4=_0xc851x4[_0x221c[230]](/\n/g,_0xc851x3||_0x221c[336])},getTextContent:function(_0xc851x2){var _0xc851x3=_0x221c[110];null!=_0xc851x2&&(null!=_0xc851x2[_0x221c[285]]&&(_0xc851x2=_0xc851x2[_0x221c[285]]),_0xc851x3=_0xc851x2[_0x221c[318]]||_0x221c[110]);return _0xc851x3},getInnerHtml:function(){return mxClient[_0x221c[80]]?function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[339]]:_0x221c[110]}:function(_0xc851x2){return null!=_0xc851x2?( new XMLSerializer)[_0x221c[340]](_0xc851x2):_0x221c[110]}}(),getOuterHtml:function(){return mxClient[_0x221c[80]]?function(_0xc851x2){if(null!=_0xc851x2){if(null!=_0xc851x2[_0x221c[342]]){return _0xc851x2[_0x221c[342]]};var _0xc851x3=[];_0xc851x3[_0x221c[207]](_0x221c[319]+_0xc851x2[_0x221c[301]]);var _0xc851x4=_0xc851x2[_0x221c[320]];if(null!=_0xc851x4){for(var _0xc851x5=0;_0xc851x5<_0xc851x4[_0x221c[67]];_0xc851x5++){var _0xc851x9=_0xc851x4[_0xc851x5][_0x221c[318]];null!=_0xc851x9&&0<_0xc851x9[_0x221c[67]]&&(_0xc851x3[_0x221c[207]](_0x221c[185]),_0xc851x3[_0x221c[207]](_0xc851x4[_0xc851x5][_0x221c[301]]),_0xc851x3[_0x221c[207]](_0x221c[322]),_0xc851x3[_0x221c[207]](_0xc851x9),_0xc851x3[_0x221c[207]](_0x221c[323]))}};0==_0xc851x2[_0x221c[339]][_0x221c[67]]?_0xc851x3[_0x221c[207]](_0x221c[343]):(_0xc851x3[_0x221c[207]](_0x221c[341]),_0xc851x3[_0x221c[207]](_0xc851x2[_0x221c[339]]),_0xc851x3[_0x221c[207]](_0x221c[326]+_0xc851x2[_0x221c[301]]+_0x221c[341]));return _0xc851x3[_0x221c[234]](_0x221c[110])};return _0x221c[110]}:function(_0xc851x2){return null!=_0xc851x2?( new XMLSerializer)[_0x221c[340]](_0xc851x2):_0x221c[110]}}(),write:function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x2[_0x221c[295]][_0x221c[344]](_0xc851x3);null!=_0xc851x2&&_0xc851x2[_0x221c[62]](_0xc851x4);return _0xc851x4},writeln:function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x2[_0x221c[295]][_0x221c[344]](_0xc851x3);null!=_0xc851x2&&(_0xc851x2[_0x221c[62]](_0xc851x4),_0xc851x2[_0x221c[62]](document[_0x221c[55]](_0x221c[345])));return _0xc851x4},br:function(_0xc851x2,_0xc851x3){_0xc851x3=_0xc851x3||1;for(var _0xc851x4=null,_0xc851x5=0;_0xc851x5<_0xc851x3;_0xc851x5++){null!=_0xc851x2&&(_0xc851x4=_0xc851x2[_0x221c[295]][_0x221c[55]](_0x221c[345]),_0xc851x2[_0x221c[62]](_0xc851x4))};return _0xc851x4},button:function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=null!=_0xc851x4?_0xc851x4:document;_0xc851x4=_0xc851x4[_0x221c[55]](_0x221c[172]);mxUtils[_0x221c[53]](_0xc851x4,_0xc851x2);mxEvent[_0x221c[169]](_0xc851x4,_0x221c[173],function(_0xc851x2){_0xc851x3(_0xc851x2)});return _0xc851x4},para:function(_0xc851x2,_0xc851x3){var _0xc851x4=document[_0x221c[55]](_0x221c[346]);mxUtils[_0x221c[53]](_0xc851x4,_0xc851x3);null!=_0xc851x2&&_0xc851x2[_0x221c[62]](_0xc851x4);return _0xc851x4},addTransparentBackgroundFilter:function(_0xc851x2){_0xc851x2[_0x221c[124]][_0x221c[347]]+=_0x221c[348]+mxClient[_0x221c[88]]+_0x221c[349]},linkAction:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){return mxUtils[_0x221c[54]](_0xc851x2,_0xc851x3,function(){_0xc851x4[_0x221c[350]](_0xc851x5)},_0xc851x9)},linkInvoke:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){return mxUtils[_0x221c[54]](_0xc851x2,_0xc851x3,function(){_0xc851x4[_0xc851x5](_0xc851x9)},_0xc851xa)},link:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=document[_0x221c[55]](_0x221c[351]);_0xc851x9[_0x221c[124]][_0x221c[352]]=_0x221c[353];_0xc851x9[_0x221c[124]][_0x221c[354]]=_0x221c[355];_0xc851x9[_0x221c[124]][_0x221c[270]]=_0x221c[356];null!=_0xc851x5&&(_0xc851x9[_0x221c[124]][_0x221c[357]]=_0xc851x5+_0x221c[168]);mxEvent[_0x221c[169]](_0xc851x9,_0x221c[173],_0xc851x4);mxUtils[_0x221c[53]](_0xc851x9,_0xc851x3);null!=_0xc851x2&&_0xc851x2[_0x221c[62]](_0xc851x9);return _0xc851x9},fit:function(_0xc851x2){var _0xc851x3=parseInt(_0xc851x2[_0x221c[358]]),_0xc851x4=parseInt(_0xc851x2[_0x221c[359]]),_0xc851x5=document[_0x221c[112]],_0xc851x9=document[_0x221c[158]],_0xc851xa=(_0xc851x5[_0x221c[360]]||_0xc851x9[_0x221c[360]])+(_0xc851x5[_0x221c[159]]||_0xc851x9[_0x221c[159]]);_0xc851x3+_0xc851x4>_0xc851xa&&(_0xc851x2[_0x221c[124]][_0x221c[361]]=Math[_0x221c[160]](_0xc851x5[_0x221c[360]]||_0xc851x9[_0x221c[360]],_0xc851xa-_0xc851x4)+_0x221c[168]);_0xc851x3=parseInt(_0xc851x2[_0x221c[362]]);_0xc851x4=parseInt(_0xc851x2[_0x221c[167]]);_0xc851xa=(_0xc851x5[_0x221c[190]]||_0xc851x9[_0x221c[190]])+Math[_0x221c[160]](_0xc851x5[_0x221c[157]]||0,_0xc851x9[_0x221c[157]]);_0xc851x3+_0xc851x4>_0xc851xa&&(_0xc851x2[_0x221c[124]][_0x221c[125]]=Math[_0x221c[160]](_0xc851x5[_0x221c[190]]||_0xc851x9[_0x221c[190]],_0xc851xa-_0xc851x4)+_0x221c[168])},open:function(_0xc851x2){if(mxClient[_0x221c[133]]){try{netscape[_0x221c[366]][_0x221c[365]][_0x221c[364]](_0x221c[363])}catch(b){return mxUtils[_0x221c[150]](_0x221c[367]),_0x221c[110]};var _0xc851x4=Components[_0x221c[372]][_0x221c[371]][_0x221c[370]](Components[_0x221c[369]][_0x221c[368]]);_0xc851x4[_0x221c[373]](_0xc851x2);if(!_0xc851x4[_0x221c[374]]()){return mxUtils[_0x221c[150]](_0x221c[375]),_0x221c[110]};_0xc851x2=Components[_0x221c[372]][_0x221c[377]][_0x221c[370]](Components[_0x221c[369]][_0x221c[376]]);_0xc851x2[_0x221c[176]](_0xc851x4,1,4,null);_0xc851x4=Components[_0x221c[372]][_0x221c[379]][_0x221c[370]](Components[_0x221c[369]][_0x221c[378]]);_0xc851x4[_0x221c[176]](_0xc851x2);return _0xc851x4[_0x221c[381]](_0xc851x4[_0x221c[380]]())};_0xc851x4=( new ActiveXObject(_0x221c[382])).OpenTextFile(_0xc851x2,1);_0xc851x2=_0xc851x4[_0x221c[383]]();_0xc851x4[_0x221c[268]]();return _0xc851x2},save:function(_0xc851x2,_0xc851x3){if(mxClient[_0x221c[133]]){try{netscape[_0x221c[366]][_0x221c[365]][_0x221c[364]](_0x221c[363])}catch(c){mxUtils[_0x221c[150]](_0x221c[384]);return};var _0xc851x5=Components[_0x221c[372]][_0x221c[371]][_0x221c[370]](Components[_0x221c[369]][_0x221c[368]]);_0xc851x5[_0x221c[373]](_0xc851x2);_0xc851x5[_0x221c[374]]()||_0xc851x5[_0x221c[385]](0,420);var _0xc851x9=Components[_0x221c[372]][_0x221c[387]][_0x221c[370]](Components[_0x221c[369]][_0x221c[386]]);_0xc851x9[_0x221c[176]](_0xc851x5,34,4,null);_0xc851x9[_0x221c[53]](_0xc851x3,_0xc851x3[_0x221c[67]]);_0xc851x9[_0x221c[388]]();_0xc851x9[_0x221c[268]]()}else {_0xc851x5=( new ActiveXObject(_0x221c[382])).CreateTextFile(_0xc851x2,!0),_0xc851x5.Write(_0xc851x3),_0xc851x5.Close()}},saveAs:function(_0xc851x2){var _0xc851x3=document[_0x221c[55]](_0x221c[389]);_0xc851x3[_0x221c[57]](_0x221c[390],_0x221c[110]);_0xc851x3[_0x221c[124]][_0x221c[187]]=_0x221c[188];document[_0x221c[112]][_0x221c[62]](_0xc851x3);try{if(mxClient[_0x221c[133]]){var _0xc851x4=_0xc851x3[_0x221c[391]];_0xc851x4[_0x221c[392]]();_0xc851x4[_0x221c[53]](_0xc851x2);_0xc851x4[_0x221c[268]]();try{netscape[_0x221c[366]][_0x221c[365]][_0x221c[364]](_0x221c[363]),_0xc851x3[_0x221c[393]](),saveDocument(_0xc851x4)}catch(d){mxUtils[_0x221c[150]](_0x221c[394])}}else {_0xc851x4=_0xc851x3[_0x221c[396]][_0x221c[395]],_0xc851x4[_0x221c[53]](_0xc851x2),_0xc851x4[_0x221c[398]](_0x221c[397],!1,document[_0x221c[45]])}}finally{document[_0x221c[112]][_0x221c[266]](_0xc851x3)}},copy:function(_0xc851x2){if(window[_0x221c[399]]){window[_0x221c[399]][_0x221c[401]](_0x221c[400],_0xc851x2)}else {netscape[_0x221c[366]][_0x221c[365]][_0x221c[364]](_0x221c[363]);var _0xc851x3=Components[_0x221c[372]][_0x221c[403]][_0x221c[370]](Components[_0x221c[369]][_0x221c[402]]);if(_0xc851x3){var _0xc851x4=Components[_0x221c[372]][_0x221c[405]][_0x221c[370]](Components[_0x221c[369]][_0x221c[404]]);if(_0xc851x4){_0xc851x4[_0x221c[407]](_0x221c[406]);var _0xc851x5=Components[_0x221c[372]][_0x221c[409]][_0x221c[370]](Components[_0x221c[369]][_0x221c[408]]);_0xc851x5[_0x221c[410]]=_0xc851x2;_0xc851x4[_0x221c[411]](_0x221c[406],_0xc851x5,2*_0xc851x2[_0x221c[67]]);_0xc851x3[_0x221c[401]](_0xc851x4,null,Components[_0x221c[369]][_0x221c[402]][_0x221c[412]])}}}},load:function(_0xc851x2){_0xc851x2= new mxXmlRequest(_0xc851x2,null,_0x221c[413],!1);_0xc851x2[_0x221c[414]]();return _0xc851x2},get:function(_0xc851x2,_0xc851x3,_0xc851x4){return ( new mxXmlRequest(_0xc851x2,null,_0x221c[413]))[_0x221c[414]](_0xc851x3,_0xc851x4)},post:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){return ( new mxXmlRequest(_0xc851x2,_0xc851x3))[_0x221c[414]](_0xc851x4,_0xc851x5)},submit:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){return ( new mxXmlRequest(_0xc851x2,_0xc851x3))[_0x221c[415]](_0xc851x4,_0xc851x5)},loadInto:function(_0xc851x2,_0xc851x3,_0xc851x4){mxClient[_0x221c[80]]?_0xc851x3[_0x221c[416]]=function(){4==_0xc851x3[_0x221c[417]]&&_0xc851x4()}:_0xc851x3[_0x221c[418]](_0x221c[219],_0xc851x4,!1);_0xc851x3[_0x221c[219]](_0xc851x2)},getValue:function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2=null!=_0xc851x2?_0xc851x2[_0xc851x3]:null;null==_0xc851x2&&(_0xc851x2=_0xc851x4);return _0xc851x2},getNumber:function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2=null!=_0xc851x2?_0xc851x2[_0xc851x3]:null;null==_0xc851x2&&(_0xc851x2=_0xc851x4||0);return Number(_0xc851x2)},getColor:function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2=null!=_0xc851x2?_0xc851x2[_0xc851x3]:null;null==_0xc851x2?_0xc851x2=_0xc851x4:_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);return _0xc851x2},clone:function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=null!=_0xc851x4?_0xc851x4:!1;var _0xc851x5=null;if(null!=_0xc851x2&&_0x221c[279]== typeof _0xc851x2[_0x221c[196]]){var _0xc851x5= new _0xc851x2[_0x221c[196]],_0xc851x9;for(_0xc851x9 in _0xc851x2){if(_0xc851x9!=mxObjectIdentity[_0x221c[195]]&&(null==_0xc851x3||0>mxUtils[_0x221c[2]](_0xc851x3,_0xc851x9))){_0xc851x5[_0xc851x9]=!_0xc851x4&&_0x221c[194]== typeof _0xc851x2[_0xc851x9]?mxUtils[_0x221c[238]](_0xc851x2[_0xc851x9]):_0xc851x2[_0xc851x9]}}};return _0xc851x5},equalPoints:function(_0xc851x2,_0xc851x3){if(null==_0xc851x2&&null!=_0xc851x3||null!=_0xc851x2&&null==_0xc851x3||null!=_0xc851x2&&null!=_0xc851x3&&_0xc851x2[_0x221c[67]]!=_0xc851x3[_0x221c[67]]){return !1};if(null!=_0xc851x2&&null!=_0xc851x3){for(var _0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){if(_0xc851x2[_0xc851x4]==_0xc851x3[_0xc851x4]||null!=_0xc851x2[_0xc851x4]&&!_0xc851x2[_0xc851x4][_0x221c[237]](_0xc851x3[_0xc851x4])){return !1}}};return !0},equalEntries:function(_0xc851x2,_0xc851x3){if(null==_0xc851x2&&null!=_0xc851x3||null!=_0xc851x2&&null==_0xc851x3||null!=_0xc851x2&&null!=_0xc851x3&&_0xc851x2[_0x221c[67]]!=_0xc851x3[_0x221c[67]]){return !1};if(null!=_0xc851x2&&null!=_0xc851x3){for(var _0xc851x4 in _0xc851x2){if(_0xc851x2[_0xc851x4]!=_0xc851x3[_0xc851x4]){return !1}}};return !0},extend:function(_0xc851x2,_0xc851x3){var _0xc851x4=function(){};_0xc851x4[_0x221c[202]]=_0xc851x3[_0x221c[202]];_0xc851x2[_0x221c[202]]= new _0xc851x4;_0xc851x2[_0x221c[202]][_0x221c[196]]=_0xc851x2},toString:function(_0xc851x2){var _0xc851x3=_0x221c[110],_0xc851x4;for(_0xc851x4 in _0xc851x2){try{if(null==_0xc851x2[_0xc851x4]){_0xc851x3+=_0xc851x4+_0x221c[419]}else {if(_0x221c[279]== typeof _0xc851x2[_0xc851x4]){_0xc851x3+=_0xc851x4+_0x221c[420]}else {if(_0x221c[194]== typeof _0xc851x2[_0xc851x4]){var _0xc851x5=mxUtils[_0x221c[197]](_0xc851x2[_0xc851x4][_0x221c[196]]),_0xc851x3=_0xc851x3+(_0xc851x4+_0x221c[421]+_0xc851x5+_0x221c[422])}else {_0xc851x3+=_0xc851x4+_0x221c[423]+_0xc851x2[_0xc851x4]+_0x221c[192]}}}}catch(e){_0xc851x3+=_0xc851x4+_0x221c[226]+e[_0x221c[281]]}};return _0xc851x3},toRadians:function(_0xc851x2){return Math[_0x221c[424]]*_0xc851x2/180},arcToCurves:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14){_0xc851x13-=_0xc851x2;_0xc851x14-=_0xc851x3;if(0===_0xc851x4||0===_0xc851x5){return _0xc851x18};_0xc851x4=Math[_0x221c[425]](_0xc851x4);_0xc851x5=Math[_0x221c[425]](_0xc851x5);var _0xc851x15=-_0xc851x13/2,_0xc851x16=-_0xc851x14/2,_0xc851x17=Math[_0x221c[426]](_0xc851x9*Math[_0x221c[424]]/180),_0xc851x18=Math[_0x221c[427]](_0xc851x9*Math[_0x221c[424]]/180);_0xc851x9=_0xc851x17*_0xc851x15+_0xc851x18*_0xc851x16;var _0xc851x15=-1*_0xc851x18*_0xc851x15+_0xc851x17*_0xc851x16,_0xc851x16=_0xc851x9*_0xc851x9,_0xc851x19=_0xc851x15*_0xc851x15,_0xc851x1a=_0xc851x4*_0xc851x4,_0xc851x1b=_0xc851x5*_0xc851x5,_0xc851x1c=_0xc851x16/_0xc851x1a+_0xc851x19/_0xc851x1b;1<_0xc851x1c?(_0xc851x4*=Math[_0x221c[428]](_0xc851x1c),_0xc851x5*=Math[_0x221c[428]](_0xc851x1c),_0xc851xa=0):(_0xc851x1c=1,_0xc851xa===_0xc851x12&&(_0xc851x1c= -1),_0xc851xa=_0xc851x1c*Math[_0x221c[428]]((_0xc851x1a*_0xc851x1b-_0xc851x1a*_0xc851x19-_0xc851x1b*_0xc851x16)/(_0xc851x1a*_0xc851x19+_0xc851x1b*_0xc851x16)));_0xc851x16=_0xc851xa*_0xc851x4*_0xc851x15/_0xc851x5;_0xc851x19=-1*_0xc851xa*_0xc851x5*_0xc851x9/_0xc851x4;_0xc851x13=_0xc851x17*_0xc851x16-_0xc851x18*_0xc851x19+_0xc851x13/2;_0xc851x14=_0xc851x18*_0xc851x16+_0xc851x17*_0xc851x19+_0xc851x14/2;_0xc851x1a=Math[_0x221c[429]]((_0xc851x15-_0xc851x19)/_0xc851x5,(_0xc851x9-_0xc851x16)/_0xc851x4)-Math[_0x221c[429]](0,1);_0xc851xa=0<=_0xc851x1a?_0xc851x1a:2*Math[_0x221c[424]]+_0xc851x1a;_0xc851x1a=Math[_0x221c[429]]((-_0xc851x15-_0xc851x19)/_0xc851x5,(-_0xc851x9-_0xc851x16)/_0xc851x4)-Math[_0x221c[429]]((_0xc851x15-_0xc851x19)/_0xc851x5,(_0xc851x9-_0xc851x16)/_0xc851x4);_0xc851x9=0<=_0xc851x1a?_0xc851x1a:2*Math[_0x221c[424]]+_0xc851x1a;0==_0xc851x12&&0<_0xc851x9?_0xc851x9-=2*Math[_0x221c[424]]:0!=_0xc851x12&&0>_0xc851x9&&(_0xc851x9+=2*Math[_0x221c[424]]);_0xc851x12=2*_0xc851x9/Math[_0x221c[424]];_0xc851x12=Math[_0x221c[430]](0>_0xc851x12?-1*_0xc851x12:_0xc851x12);_0xc851x9/=_0xc851x12;_0xc851x15=8/3*Math[_0x221c[427]](_0xc851x9/4)*Math[_0x221c[427]](_0xc851x9/4)/Math[_0x221c[427]](_0xc851x9/2);_0xc851x16=_0xc851x17*_0xc851x4;_0xc851x17*=_0xc851x5;_0xc851x4*=_0xc851x18;_0xc851x5*=_0xc851x18;for(var _0xc851x1d=Math[_0x221c[426]](_0xc851xa),_0xc851x1e=Math[_0x221c[427]](_0xc851xa),_0xc851x19=-_0xc851x15*(_0xc851x16*_0xc851x1e+_0xc851x5*_0xc851x1d),_0xc851x1a=-_0xc851x15*(_0xc851x4*_0xc851x1e-_0xc851x17*_0xc851x1d),_0xc851x1c=_0xc851x1b=0,_0xc851x18=[],_0xc851x1f=0;_0xc851x1f<_0xc851x12;++_0xc851x1f){_0xc851xa+=_0xc851x9;var _0xc851x1d=Math[_0x221c[426]](_0xc851xa),_0xc851x1e=Math[_0x221c[427]](_0xc851xa),_0xc851x1b=_0xc851x16*_0xc851x1d-_0xc851x5*_0xc851x1e+_0xc851x13,_0xc851x1c=_0xc851x4*_0xc851x1d+_0xc851x17*_0xc851x1e+_0xc851x14,_0xc851x20=-_0xc851x15*(_0xc851x16*_0xc851x1e+_0xc851x5*_0xc851x1d),_0xc851x1d=-_0xc851x15*(_0xc851x4*_0xc851x1e-_0xc851x17*_0xc851x1d),_0xc851x1e=6*_0xc851x1f;_0xc851x18[_0xc851x1e]=Number(_0xc851x19+_0xc851x2);_0xc851x18[_0xc851x1e+1]=Number(_0xc851x1a+_0xc851x3);_0xc851x18[_0xc851x1e+2]=Number(_0xc851x1b-_0xc851x20+_0xc851x2);_0xc851x18[_0xc851x1e+3]=Number(_0xc851x1c-_0xc851x1d+_0xc851x3);_0xc851x18[_0xc851x1e+4]=Number(_0xc851x1b+_0xc851x2);_0xc851x18[_0xc851x1e+5]=Number(_0xc851x1c+_0xc851x3);_0xc851x19=_0xc851x1b+_0xc851x20;_0xc851x1a=_0xc851x1c+_0xc851x1d};return _0xc851x18},getBoundingBox:function(_0xc851x2,_0xc851x3){var _0xc851x4=null;if(null!=_0xc851x2&&null!=_0xc851x3&&0!=_0xc851x3){var _0xc851x5=mxUtils[_0x221c[431]](_0xc851x3),_0xc851x4=Math[_0x221c[426]](_0xc851x5),_0xc851x9=Math[_0x221c[427]](_0xc851x5),_0xc851xa= new mxPoint(_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]/2,_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]/2),_0xc851x12= new mxPoint(_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]]),_0xc851x5= new mxPoint(_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]],_0xc851x2[_0x221c[236]]),_0xc851x13= new mxPoint(_0xc851x5[_0x221c[235]],_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]),_0xc851x14= new mxPoint(_0xc851x2[_0x221c[235]],_0xc851x13[_0x221c[236]]),_0xc851x12=mxUtils[_0x221c[432]](_0xc851x12,_0xc851x4,_0xc851x9,_0xc851xa),_0xc851x5=mxUtils[_0x221c[432]](_0xc851x5,_0xc851x4,_0xc851x9,_0xc851xa),_0xc851x13=mxUtils[_0x221c[432]](_0xc851x13,_0xc851x4,_0xc851x9,_0xc851xa),_0xc851x14=mxUtils[_0x221c[432]](_0xc851x14,_0xc851x4,_0xc851x9,_0xc851xa),_0xc851x4= new mxRectangle(_0xc851x12[_0x221c[235]],_0xc851x12[_0x221c[236]],0,0);_0xc851x4[_0x221c[99]]( new mxRectangle(_0xc851x5[_0x221c[235]],_0xc851x5[_0x221c[236]],0,0));_0xc851x4[_0x221c[99]]( new mxRectangle(_0xc851x13[_0x221c[235]],_0xc851x13[_0x221c[236]],0,0));_0xc851x4[_0x221c[99]]( new mxRectangle(_0xc851x14[_0x221c[235]],_0xc851x14[_0x221c[236]],0,0))};return _0xc851x4},getRotatedPoint:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x5=null!=_0xc851x5?_0xc851x5: new mxPoint;var _0xc851x9=_0xc851x2[_0x221c[235]]-_0xc851x5[_0x221c[235]];_0xc851x2=_0xc851x2[_0x221c[236]]-_0xc851x5[_0x221c[236]];return  new mxPoint(_0xc851x9*_0xc851x3-_0xc851x2*_0xc851x4+_0xc851x5[_0x221c[235]],_0xc851x2*_0xc851x3+_0xc851x9*_0xc851x4+_0xc851x5[_0x221c[236]])},getPortConstraints:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x2=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_PORT_CONSTRAINT,null);if(null==_0xc851x2){return _0xc851x5};_0xc851x5=_0xc851x2.toString();_0xc851x2=mxConstants[_0x221c[434]];0<=_0xc851x5[_0x221c[2]](mxConstants.DIRECTION_NORTH)&&(_0xc851x2|=mxConstants[_0x221c[435]]);0<=_0xc851x5[_0x221c[2]](mxConstants.DIRECTION_WEST)&&(_0xc851x2|=mxConstants[_0x221c[436]]);0<=_0xc851x5[_0x221c[2]](mxConstants.DIRECTION_SOUTH)&&(_0xc851x2|=mxConstants[_0x221c[437]]);0<=_0xc851x5[_0x221c[2]](mxConstants.DIRECTION_EAST)&&(_0xc851x2|=mxConstants[_0x221c[438]]);return _0xc851x2},reversePortConstraints:function(_0xc851x2){var _0xc851x3=0,_0xc851x3=(_0xc851x2&mxConstants[_0x221c[436]])<<3,_0xc851x3=_0xc851x3|(_0xc851x2&mxConstants[_0x221c[435]])<<1,_0xc851x3=_0xc851x3|(_0xc851x2&mxConstants[_0x221c[437]])>>1;return _0xc851x3|=(_0xc851x2&mxConstants[_0x221c[438]])>>3},findNearestSegment:function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=-1;if(0<_0xc851x2[_0x221c[439]][_0x221c[67]]){for(var _0xc851x9=_0xc851x2[_0x221c[439]][0],_0xc851xa=null,_0xc851x12=1;_0xc851x12<_0xc851x2[_0x221c[439]][_0x221c[67]];_0xc851x12++){var _0xc851x13=_0xc851x2[_0x221c[439]][_0xc851x12],_0xc851x9=mxUtils[_0x221c[440]](_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[236]],_0xc851x13[_0x221c[235]],_0xc851x13[_0x221c[236]],_0xc851x3,_0xc851x4);if(null==_0xc851xa||_0xc851x9<_0xc851xa){_0xc851xa=_0xc851x9,_0xc851x5=_0xc851x12-1};_0xc851x9=_0xc851x13}};return _0xc851x5},rectangleIntersectsSegment:function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=_0xc851x2[_0x221c[236]],_0xc851x9=_0xc851x2[_0x221c[235]],_0xc851xa=_0xc851x5+_0xc851x2[_0x221c[119]],_0xc851x12=_0xc851x9+_0xc851x2[_0x221c[117]];_0xc851x2=_0xc851x3[_0x221c[235]];var _0xc851x13=_0xc851x4[_0x221c[235]];_0xc851x3[_0x221c[235]]>_0xc851x4[_0x221c[235]]&&(_0xc851x2=_0xc851x4[_0x221c[235]],_0xc851x13=_0xc851x3[_0x221c[235]]);_0xc851x13>_0xc851x12&&(_0xc851x13=_0xc851x12);_0xc851x2<_0xc851x9&&(_0xc851x2=_0xc851x9);if(_0xc851x2>_0xc851x13){return !1};var _0xc851x9=_0xc851x3[_0x221c[236]],_0xc851x12=_0xc851x4[_0x221c[236]],_0xc851x14=_0xc851x4[_0x221c[235]]-_0xc851x3[_0x221c[235]];1E-7<Math[_0x221c[425]](_0xc851x14)&&(_0xc851x4=(_0xc851x4[_0x221c[236]]-_0xc851x3[_0x221c[236]])/_0xc851x14,_0xc851x3=_0xc851x3[_0x221c[236]]-_0xc851x4*_0xc851x3[_0x221c[235]],_0xc851x9=_0xc851x4*_0xc851x2+_0xc851x3,_0xc851x12=_0xc851x4*_0xc851x13+_0xc851x3);_0xc851x9>_0xc851x12&&(_0xc851x3=_0xc851x12,_0xc851x12=_0xc851x9,_0xc851x9=_0xc851x3);_0xc851x12>_0xc851xa&&(_0xc851x12=_0xc851xa);_0xc851x9<_0xc851x5&&(_0xc851x9=_0xc851x5);return _0xc851x9>_0xc851x12?!1:!0},contains:function(_0xc851x2,_0xc851x3,_0xc851x4){return _0xc851x2[_0x221c[235]]<=_0xc851x3&&_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]>=_0xc851x3&&_0xc851x2[_0x221c[236]]<=_0xc851x4&&_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]>=_0xc851x4},intersects:function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x2[_0x221c[117]],_0xc851x5=_0xc851x2[_0x221c[119]],_0xc851x9=_0xc851x3[_0x221c[117]],_0xc851xa=_0xc851x3[_0x221c[119]];if(0>=_0xc851x9||0>=_0xc851xa||0>=_0xc851x4||0>=_0xc851x5){return !1};var _0xc851x12=_0xc851x2[_0x221c[235]],_0xc851x13=_0xc851x2[_0x221c[236]],_0xc851x14=_0xc851x3[_0x221c[235]],_0xc851x15=_0xc851x3[_0x221c[236]],_0xc851x9=_0xc851x9+_0xc851x14,_0xc851xa=_0xc851xa+_0xc851x15,_0xc851x4=_0xc851x4+_0xc851x12,_0xc851x5=_0xc851x5+_0xc851x13;return (_0xc851x9<_0xc851x14||_0xc851x9>_0xc851x12)&&(_0xc851xa<_0xc851x15||_0xc851xa>_0xc851x13)&&(_0xc851x4<_0xc851x12||_0xc851x4>_0xc851x14)&&(_0xc851x5<_0xc851x13||_0xc851x5>_0xc851x15)},intersectsHotspot:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x5=null!=_0xc851x5?_0xc851x5:1;_0xc851x9=null!=_0xc851x9?_0xc851x9:0;_0xc851xa=null!=_0xc851xa?_0xc851xa:0;if(0<_0xc851x5){var _0xc851x12=_0xc851x2[_0x221c[241]](),_0xc851x13=_0xc851x2[_0x221c[242]](),_0xc851x14=_0xc851x2[_0x221c[117]],_0xc851x15=_0xc851x2[_0x221c[119]],_0xc851x16=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_STARTSIZE)*_0xc851x2[_0x221c[441]][_0x221c[255]];0<_0xc851x16&&(mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_HORIZONTAL,!0)?(_0xc851x13=_0xc851x2[_0x221c[236]]+_0xc851x16/2,_0xc851x15=_0xc851x16):(_0xc851x12=_0xc851x2[_0x221c[235]]+_0xc851x16/2,_0xc851x14=_0xc851x16));_0xc851x14=Math[_0x221c[160]](_0xc851x9,_0xc851x14*_0xc851x5);_0xc851x15=Math[_0x221c[160]](_0xc851x9,_0xc851x15*_0xc851x5);0<_0xc851xa&&(_0xc851x14=Math[_0x221c[243]](_0xc851x14,_0xc851xa),_0xc851x15=Math[_0x221c[243]](_0xc851x15,_0xc851xa));_0xc851x5= new mxRectangle(_0xc851x12-_0xc851x14/2,_0xc851x13-_0xc851x15/2,_0xc851x14,_0xc851x15);_0xc851x12=mxUtils[_0x221c[431]](mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_ROTATION)||0);0!=_0xc851x12&&(_0xc851x9=Math[_0x221c[426]](-_0xc851x12),_0xc851xa=Math[_0x221c[427]](-_0xc851x12),_0xc851x12= new mxPoint(_0xc851x2[_0x221c[241]](),_0xc851x2[_0x221c[242]]()),_0xc851x2=mxUtils[_0x221c[432]]( new mxPoint(_0xc851x3,_0xc851x4),_0xc851x9,_0xc851xa,_0xc851x12),_0xc851x3=_0xc851x2[_0x221c[235]],_0xc851x4=_0xc851x2[_0x221c[236]]);return mxUtils[_0x221c[442]](_0xc851x5,_0xc851x3,_0xc851x4)};return !0},getOffset:function(_0xc851x2,_0xc851x3){var _0xc851x4=0,_0xc851x5=0;if(null!=_0xc851x3&&_0xc851x3){var _0xc851x9=document[_0x221c[112]],_0xc851xa=document[_0x221c[158]],_0xc851x4=_0xc851x4+(_0xc851x9[_0x221c[360]]||_0xc851xa[_0x221c[360]]),_0xc851x5=_0xc851x5+(_0xc851x9[_0x221c[190]]||_0xc851xa[_0x221c[190]])};for(;_0xc851x2[_0x221c[443]];){_0xc851x4+=_0xc851x2[_0x221c[358]],_0xc851x5+=_0xc851x2[_0x221c[362]],_0xc851x2=_0xc851x2[_0x221c[443]]};return  new mxPoint(_0xc851x4,_0xc851x5)},getScrollOrigin:function(_0xc851x2){for(var _0xc851x3=document[_0x221c[112]],_0xc851x4=document[_0x221c[158]],_0xc851x5= new mxPoint(_0xc851x3[_0x221c[360]]||_0xc851x4[_0x221c[360]],_0xc851x3[_0x221c[190]]||_0xc851x4[_0x221c[190]]);null!=_0xc851x2&&_0xc851x2!=_0xc851x3&&_0xc851x2!=_0xc851x4;){!isNaN(_0xc851x2[_0x221c[360]])&&!isNaN(_0xc851x2[_0x221c[190]])&&(_0xc851x5[_0x221c[235]]+=_0xc851x2[_0x221c[360]],_0xc851x5[_0x221c[236]]+=_0xc851x2[_0x221c[190]]),_0xc851x2=_0xc851x2[_0x221c[265]]};return _0xc851x5},convertPoint:function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=mxUtils[_0x221c[444]](_0xc851x2);_0xc851x2=mxUtils[_0x221c[445]](_0xc851x2);_0xc851x2[_0x221c[235]]-=_0xc851x5[_0x221c[235]];_0xc851x2[_0x221c[236]]-=_0xc851x5[_0x221c[236]];return  new mxPoint(_0xc851x3-_0xc851x2[_0x221c[235]],_0xc851x4-_0xc851x2[_0x221c[236]])},ltrim:function(_0xc851x2,_0xc851x3){return _0xc851x2[_0x221c[230]](RegExp(_0x221c[446]+(_0xc851x3||_0x221c[447])+_0x221c[448],_0x221c[449]),_0x221c[110])},rtrim:function(_0xc851x2,_0xc851x3){return _0xc851x2[_0x221c[230]](RegExp(_0x221c[450]+(_0xc851x3||_0x221c[447])+_0x221c[451],_0x221c[449]),_0x221c[110])},trim:function(_0xc851x2,_0xc851x3){return mxUtils[_0x221c[453]](mxUtils[_0x221c[452]](_0xc851x2,_0xc851x3),_0xc851x3)},isNumeric:function(_0xc851x2){return null!=_0xc851x2&&(null==_0xc851x2[_0x221c[67]]||0<_0xc851x2[_0x221c[67]]&&0>_0xc851x2[_0x221c[2]](_0x221c[454])&&0>_0xc851x2[_0x221c[2]](_0x221c[455]))&&!isNaN(_0xc851x2)},mod:function(_0xc851x2,_0xc851x3){return (_0xc851x2%_0xc851x3+_0xc851x3)%_0xc851x3},intersection:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13){var _0xc851x14=(_0xc851x13-_0xc851xa)*(_0xc851x4-_0xc851x2)-(_0xc851x12-_0xc851x9)*(_0xc851x5-_0xc851x3);_0xc851x12=((_0xc851x12-_0xc851x9)*(_0xc851x3-_0xc851xa)-(_0xc851x13-_0xc851xa)*(_0xc851x2-_0xc851x9))/_0xc851x14;_0xc851x9=((_0xc851x4-_0xc851x2)*(_0xc851x3-_0xc851xa)-(_0xc851x5-_0xc851x3)*(_0xc851x2-_0xc851x9))/_0xc851x14;return 0<=_0xc851x12&&1>=_0xc851x12&&0<=_0xc851x9&&1>=_0xc851x9? new mxPoint(_0xc851x2+_0xc851x12*(_0xc851x4-_0xc851x2),_0xc851x3+_0xc851x12*(_0xc851x5-_0xc851x3)):null},ptSegDistSq:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x4-=_0xc851x2;_0xc851x5-=_0xc851x3;_0xc851x9-=_0xc851x2;_0xc851xa-=_0xc851x3;0>=_0xc851x9*_0xc851x4+_0xc851xa*_0xc851x5?_0xc851x4=0:(_0xc851x9=_0xc851x4-_0xc851x9,_0xc851xa=_0xc851x5-_0xc851xa,_0xc851x2=_0xc851x9*_0xc851x4+_0xc851xa*_0xc851x5,_0xc851x4=0>=_0xc851x2?0:_0xc851x2*_0xc851x2/(_0xc851x4*_0xc851x4+_0xc851x5*_0xc851x5));_0xc851x9=_0xc851x9*_0xc851x9+_0xc851xa*_0xc851xa-_0xc851x4;0>_0xc851x9&&(_0xc851x9=0);return _0xc851x9},relativeCcw:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x4-=_0xc851x2;_0xc851x5-=_0xc851x3;_0xc851x9-=_0xc851x2;_0xc851xa-=_0xc851x3;_0xc851x2=_0xc851x9*_0xc851x5-_0xc851xa*_0xc851x4;0==_0xc851x2&&(_0xc851x2=_0xc851x9*_0xc851x4+_0xc851xa*_0xc851x5,0<_0xc851x2&&(_0xc851x2=(_0xc851x9-_0xc851x4)*_0xc851x4+(_0xc851xa-_0xc851x5)*_0xc851x5,0>_0xc851x2&&(_0xc851x2=0)));return 0>_0xc851x2?-1:0<_0xc851x2?1:0},animateChanges:function(_0xc851x2,_0xc851x3){mxEffects[_0x221c[456]][_0x221c[183]](this,arguments)},cascadeOpacity:function(_0xc851x2,_0xc851x3,_0xc851x4){mxEffects[_0x221c[260]][_0x221c[183]](this,arguments)},fadeOut:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){mxEffects[_0x221c[457]][_0x221c[183]](this,arguments)},setOpacity:function(_0xc851x2,_0xc851x3){mxUtils[_0x221c[458]](_0xc851x2)?_0xc851x2[_0x221c[124]][_0x221c[347]]=100<=_0xc851x3?null:_0x221c[459]+_0xc851x3/5+_0x221c[460]:mxClient[_0x221c[80]]&&(_0x221c[82]=== typeof document[_0x221c[5]]||9>document[_0x221c[5]])?_0xc851x2[_0x221c[124]][_0x221c[347]]=100<=_0xc851x3?null:_0x221c[459]+_0xc851x3+_0x221c[460]:_0xc851x2[_0x221c[124]][_0x221c[461]]=_0xc851x3/100},createImage:function(_0xc851x2){var _0xc851x3=null;mxClient[_0x221c[49]]&&_0x221c[462]!=document[_0x221c[135]]?(_0xc851x3=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[464]),_0xc851x3[_0x221c[57]](_0x221c[390],_0xc851x2),_0xc851x3[_0x221c[124]][_0x221c[465]]=_0x221c[130]):(_0xc851x3=document[_0x221c[55]](_0x221c[466]),_0xc851x3[_0x221c[57]](_0x221c[390],_0xc851x2),_0xc851x3[_0x221c[57]](_0x221c[467],_0x221c[468]));return _0xc851x3},sortCells:function(_0xc851x2,_0xc851x3){_0xc851x3=null!=_0xc851x3?_0xc851x3:!0;var _0xc851x4= new mxDictionary;_0xc851x2[_0x221c[470]](function(_0xc851x2,_0xc851x9){var _0xc851xa=_0xc851x4[_0x221c[203]](_0xc851x2);null==_0xc851xa&&(_0xc851xa=mxCellPath[_0x221c[385]](_0xc851x2)[_0x221c[224]](mxCellPath.PATH_SEPARATOR),_0xc851x4[_0x221c[204]](_0xc851x2,_0xc851xa));var _0xc851x12=_0xc851x4[_0x221c[203]](_0xc851x9);null==_0xc851x12&&(_0xc851x12=mxCellPath[_0x221c[385]](_0xc851x9)[_0x221c[224]](mxCellPath.PATH_SEPARATOR),_0xc851x4[_0x221c[204]](_0xc851x9,_0xc851x12));_0xc851xa=mxCellPath[_0x221c[469]](_0xc851xa,_0xc851x12);return 0==_0xc851xa?0:0<_0xc851xa==_0xc851x3?1:-1});return _0xc851x2},getStylename:function(_0xc851x2){return null!=_0xc851x2&&(_0xc851x2=_0xc851x2[_0x221c[224]](_0x221c[471])[0],0>_0xc851x2[_0x221c[2]](_0x221c[226]))?_0xc851x2:_0x221c[110]},getStylenames:function(_0xc851x2){var _0xc851x3=[];if(null!=_0xc851x2){_0xc851x2=_0xc851x2[_0x221c[224]](_0x221c[471]);for(var _0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){0>_0xc851x2[_0xc851x4][_0x221c[2]](_0x221c[226])&&_0xc851x3[_0x221c[207]](_0xc851x2[_0xc851x4])}};return _0xc851x3},indexOfStylename:function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2&&null!=_0xc851x3){for(var _0xc851x4=_0xc851x2[_0x221c[224]](_0x221c[471]),_0xc851x5=0,_0xc851x9=0;_0xc851x9<_0xc851x4[_0x221c[67]];_0xc851x9++){if(_0xc851x4[_0xc851x9]==_0xc851x3){return _0xc851x5};_0xc851x5+=_0xc851x4[_0xc851x9][_0x221c[67]]+1}};return -1},addStylename:function(_0xc851x2,_0xc851x3){0>mxUtils[_0x221c[472]](_0xc851x2,_0xc851x3)&&(null==_0xc851x2?_0xc851x2=_0x221c[110]:0<_0xc851x2[_0x221c[67]]&&_0x221c[471]!=_0xc851x2[_0x221c[225]](_0xc851x2[_0x221c[67]]-1)&&(_0xc851x2+=_0x221c[471]),_0xc851x2+=_0xc851x3);return _0xc851x2},removeStylename:function(_0xc851x2,_0xc851x3){var _0xc851x4=[];if(null!=_0xc851x2){for(var _0xc851x5=_0xc851x2[_0x221c[224]](_0x221c[471]),_0xc851x9=0;_0xc851x9<_0xc851x5[_0x221c[67]];_0xc851x9++){_0xc851x5[_0xc851x9]!=_0xc851x3&&_0xc851x4[_0x221c[207]](_0xc851x5[_0xc851x9])}};return _0xc851x4[_0x221c[234]](_0x221c[471])},removeAllStylenames:function(_0xc851x2){var _0xc851x3=[];if(null!=_0xc851x2){_0xc851x2=_0xc851x2[_0x221c[224]](_0x221c[471]);for(var _0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){0<=_0xc851x2[_0xc851x4][_0x221c[2]](_0x221c[226])&&_0xc851x3[_0x221c[207]](_0xc851x2[_0xc851x4])}};return _0xc851x3[_0x221c[234]](_0x221c[471])},setCellStyles:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(null!=_0xc851x3&&0<_0xc851x3[_0x221c[67]]){_0xc851x2[_0x221c[473]]();try{for(var _0xc851x9=0;_0xc851x9<_0xc851x3[_0x221c[67]];_0xc851x9++){if(null!=_0xc851x3[_0xc851x9]){var _0xc851xa=mxUtils[_0x221c[475]](_0xc851x2[_0x221c[474]](_0xc851x3[_0xc851x9]),_0xc851x4,_0xc851x5);_0xc851x2[_0x221c[475]](_0xc851x3[_0xc851x9],_0xc851xa)}}}finally{_0xc851x2[_0x221c[476]]()}}},setStyle:function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=null!=_0xc851x4&&(_0x221c[82]== typeof _0xc851x4[_0x221c[67]]||0<_0xc851x4[_0x221c[67]]);if(null==_0xc851x2||0==_0xc851x2[_0x221c[67]]){_0xc851x5&&(_0xc851x2=_0xc851x3+_0x221c[226]+_0xc851x4)}else {var _0xc851x9=_0xc851x2[_0x221c[2]](_0xc851x3+_0x221c[226]);0>_0xc851x9?_0xc851x5&&(_0xc851x5=_0x221c[471]==_0xc851x2[_0x221c[225]](_0xc851x2[_0x221c[67]]-1)?_0x221c[110]:_0x221c[471],_0xc851x2=_0xc851x2+_0xc851x5+_0xc851x3+_0x221c[226]+_0xc851x4):(_0xc851x3=_0xc851x5?_0xc851x3+_0x221c[226]+_0xc851x4:_0x221c[110],_0xc851x4=_0xc851x2[_0x221c[2]](_0x221c[471],_0xc851x9),_0xc851x5||_0xc851x4++,_0xc851x2=_0xc851x2[_0x221c[85]](0,_0xc851x9)+_0xc851x3+(_0xc851x4>_0xc851x9?_0xc851x2[_0x221c[85]](_0xc851x4):_0x221c[110]))};return _0xc851x2},setCellStyleFlags:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){if(null!=_0xc851x3&&0<_0xc851x3[_0x221c[67]]){_0xc851x2[_0x221c[473]]();try{for(var _0xc851xa=0;_0xc851xa<_0xc851x3[_0x221c[67]];_0xc851xa++){if(null!=_0xc851x3[_0xc851xa]){var _0xc851x12=mxUtils[_0x221c[477]](_0xc851x2[_0x221c[474]](_0xc851x3[_0xc851xa]),_0xc851x4,_0xc851x5,_0xc851x9);_0xc851x2[_0x221c[475]](_0xc851x3[_0xc851xa],_0xc851x12)}}}finally{_0xc851x2[_0x221c[476]]()}}},setStyleFlag:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(null==_0xc851x2||0==_0xc851x2[_0x221c[67]]){_0xc851x2=_0xc851x5||null==_0xc851x5?_0xc851x3+_0x221c[226]+_0xc851x4:_0xc851x3+_0x221c[478]}else {var _0xc851x9=_0xc851x2[_0x221c[2]](_0xc851x3+_0x221c[226]);if(0>_0xc851x9){_0xc851x9=_0x221c[471]==_0xc851x2[_0x221c[225]](_0xc851x2[_0x221c[67]]-1)?_0x221c[110]:_0x221c[471],_0xc851x2=_0xc851x5||null==_0xc851x5?_0xc851x2+_0xc851x9+_0xc851x3+_0x221c[226]+_0xc851x4:_0xc851x2+_0xc851x9+_0xc851x3+_0x221c[478]}else {var _0xc851xa=_0xc851x2[_0x221c[2]](_0x221c[471],_0xc851x9),_0xc851x12=_0x221c[110],_0xc851x12=0>_0xc851xa?_0xc851x2[_0x221c[85]](_0xc851x9+_0xc851x3[_0x221c[67]]+1):_0xc851x2[_0x221c[85]](_0xc851x9+_0xc851x3[_0x221c[67]]+1,_0xc851xa),_0xc851x12=null==_0xc851x5?parseInt(_0xc851x12)^_0xc851x4:_0xc851x5?parseInt(_0xc851x12)|_0xc851x4:parseInt(_0xc851x12)& ~_0xc851x4;_0xc851x2=_0xc851x2[_0x221c[85]](0,_0xc851x9)+_0xc851x3+_0x221c[226]+_0xc851x12+(0<=_0xc851xa?_0xc851x2[_0x221c[85]](_0xc851xa):_0x221c[110])}};return _0xc851x2},getAlignmentAsPoint:function(_0xc851x2,_0xc851x3){var _0xc851x4=0,_0xc851x5=0;_0xc851x2==mxConstants[_0x221c[479]]?_0xc851x4= -0.5:_0xc851x2==mxConstants[_0x221c[480]]&&(_0xc851x4= -1);_0xc851x3==mxConstants[_0x221c[481]]?_0xc851x5= -0.5:_0xc851x3==mxConstants[_0x221c[482]]&&(_0xc851x5= -1);return  new mxPoint(_0xc851x4,_0xc851x5)},getSizeForString:function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=null!=_0xc851x3?_0xc851x3:mxConstants[_0x221c[483]];_0xc851x4=null!=_0xc851x4?_0xc851x4:mxConstants[_0x221c[484]];var _0xc851x5=document[_0x221c[55]](_0x221c[485]);_0xc851x5[_0x221c[124]][_0x221c[486]]=_0xc851x4;_0xc851x5[_0x221c[124]][_0x221c[487]]=Math[_0x221c[488]](_0xc851x3)+_0x221c[168];_0xc851x5[_0x221c[124]][_0x221c[489]]=Math[_0x221c[488]](_0xc851x3*mxConstants[_0x221c[490]])+_0x221c[168];_0xc851x5[_0x221c[124]][_0x221c[491]]=_0x221c[492];_0xc851x5[_0x221c[124]][_0x221c[493]]=_0x221c[494];_0xc851x5[_0x221c[124]][_0x221c[187]]=_0x221c[188];_0xc851x5[_0x221c[124]][_0x221c[495]]=mxClient[_0x221c[496]]?_0x221c[497]:_0x221c[498];_0xc851x5[_0x221c[124]][_0x221c[499]]=_0x221c[500];_0xc851x5[_0x221c[339]]=_0xc851x2;document[_0x221c[112]][_0x221c[62]](_0xc851x5);_0xc851x2= new mxRectangle(0,0,_0xc851x5[_0x221c[359]],_0xc851x5[_0x221c[167]]);document[_0x221c[112]][_0x221c[266]](_0xc851x5);return _0xc851x2},getViewXml:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x5=null!=_0xc851x5?_0xc851x5:0;_0xc851x9=null!=_0xc851x9?_0xc851x9:0;_0xc851x3=null!=_0xc851x3?_0xc851x3:1;null==_0xc851x4&&(_0xc851x4=[_0xc851x2[_0x221c[502]]()[_0x221c[501]]()]);var _0xc851xa=_0xc851x2[_0x221c[249]](),_0xc851x12=null,_0xc851x13=_0xc851xa[_0x221c[503]]();_0xc851xa[_0x221c[504]](!1);var _0xc851x14=_0xc851xa[_0x221c[505]],_0xc851x15=_0xc851xa[_0x221c[506]];_0xc851x2[_0x221c[507]]==mxConstants[_0x221c[508]]?(_0xc851xa[_0x221c[505]]=document[_0x221c[509]](mxConstants.NS_SVG,_0x221c[449]),_0xc851xa[_0x221c[510]][_0x221c[62]](_0xc851xa[_0x221c[505]]),_0xc851xa[_0x221c[506]]=document[_0x221c[509]](mxConstants.NS_SVG,_0x221c[449])):(_0xc851xa[_0x221c[505]]=_0xc851xa[_0x221c[505]][_0x221c[511]](!1),_0xc851xa[_0x221c[510]][_0x221c[62]](_0xc851xa[_0x221c[505]]),_0xc851xa[_0x221c[506]]=_0xc851xa[_0x221c[506]][_0x221c[511]](!1));_0xc851xa[_0x221c[510]][_0x221c[62]](_0xc851xa[_0x221c[506]]);var _0xc851x16=_0xc851xa[_0x221c[512]]();_0xc851xa[_0x221c[513]]= new mxPoint(_0xc851x5,_0xc851x9);_0xc851x3= new mxTemporaryCellStates(_0xc851x2[_0x221c[249]](),_0xc851x3,_0xc851x4);try{_0xc851x12=( new mxCodec)[_0x221c[514]](_0xc851x2[_0x221c[249]]())}finally{_0xc851x3[_0x221c[515]](),_0xc851xa[_0x221c[513]]=_0xc851x16,_0xc851xa[_0x221c[510]][_0x221c[266]](_0xc851xa[_0x221c[505]]),_0xc851xa[_0x221c[510]][_0x221c[266]](_0xc851xa[_0x221c[506]]),_0xc851xa[_0x221c[505]]=_0xc851x14,_0xc851xa[_0x221c[506]]=_0xc851x15,_0xc851xa[_0x221c[504]](_0xc851x13)};return _0xc851x12},getScaleForPageCount:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(1>_0xc851x2){return 1};_0xc851x4=null!=_0xc851x4?_0xc851x4:mxConstants[_0x221c[516]];_0xc851x5=null!=_0xc851x5?_0xc851x5:0;var _0xc851x9=_0xc851x4[_0x221c[117]]-2*_0xc851x5;_0xc851x4=_0xc851x4[_0x221c[119]]-2*_0xc851x5;_0xc851x5=_0xc851x3[_0x221c[517]]()[_0x221c[238]]();_0xc851x3=_0xc851x3[_0x221c[249]]()[_0x221c[518]]();_0xc851x5[_0x221c[117]]/=_0xc851x3;_0xc851x5[_0x221c[119]]/=_0xc851x3;_0xc851x3=_0xc851x5[_0x221c[117]];_0xc851x4=_0xc851x3/_0xc851x5[_0x221c[119]]/(_0xc851x9/_0xc851x4);_0xc851x5=Math[_0x221c[428]](_0xc851x2);var _0xc851xa=Math[_0x221c[428]](_0xc851x4);_0xc851x4=_0xc851x5*_0xc851xa;_0xc851x5/=_0xc851xa;if(1>_0xc851x4&&_0xc851x5>_0xc851x2){var _0xc851x12=_0xc851x5/_0xc851x2;_0xc851x5=_0xc851x2;_0xc851x4/=_0xc851x12};1>_0xc851x5&&_0xc851x4>_0xc851x2&&(_0xc851x12=_0xc851x4/_0xc851x2,_0xc851x4=_0xc851x2,_0xc851x5/=_0xc851x12);_0xc851x12=Math[_0x221c[430]](_0xc851x4)*Math[_0x221c[430]](_0xc851x5);for(_0xc851xa=0;_0xc851x12>_0xc851x2;){var _0xc851x12=Math[_0x221c[519]](_0xc851x4)/_0xc851x4,_0xc851x13=Math[_0x221c[519]](_0xc851x5)/_0xc851x5;1==_0xc851x12&&(_0xc851x12=Math[_0x221c[519]](_0xc851x4-1)/_0xc851x4);1==_0xc851x13&&(_0xc851x13=Math[_0x221c[519]](_0xc851x5-1)/_0xc851x5);_0xc851x12=_0xc851x12>_0xc851x13?_0xc851x12:_0xc851x13;_0xc851x4*=_0xc851x12;_0xc851x5*=_0xc851x12;_0xc851x12=Math[_0x221c[430]](_0xc851x4)*Math[_0x221c[430]](_0xc851x5);_0xc851xa++;if(10<_0xc851xa){break}};return 0.99999*(_0xc851x9*_0xc851x4/_0xc851x3)},show:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x4=null!=_0xc851x4?_0xc851x4:0;_0xc851x5=null!=_0xc851x5?_0xc851x5:0;null==_0xc851x3?_0xc851x3=window[_0x221c[392]]()[_0x221c[395]]:_0xc851x3[_0x221c[392]]();var _0xc851x9=_0xc851x2[_0x221c[517]]();_0xc851x4=-_0xc851x9[_0x221c[235]]+_0xc851x4;_0xc851x5=-_0xc851x9[_0x221c[236]]+_0xc851x5;if(mxClient[_0x221c[80]]){for(var _0xc851x9=_0x221c[520],_0xc851xa=document[_0x221c[64]](_0x221c[521]),_0xc851x12=0;_0xc851x12<_0xc851xa[_0x221c[67]];_0xc851x12++){_0xc851x9+=_0xc851xa[_0xc851x12][_0x221c[342]]};_0xc851x9+=_0x221c[522];for(_0xc851x12=0;_0xc851x12<document[_0x221c[523]][_0x221c[67]];_0xc851x12++){try{_0xc851x9+=document[_0x221c[523]](_0xc851x12)[_0x221c[103]]}catch(h){}};_0xc851x9+=_0x221c[524];_0xc851x9+=_0x221c[525];_0xc851x9+=_0xc851x2[_0x221c[526]][_0x221c[339]];_0xc851x9+=_0x221c[527];_0xc851x9+=_0x221c[528];_0xc851x3[_0x221c[171]](_0xc851x9);_0xc851x3[_0x221c[268]]();_0xc851x2=_0xc851x3[_0x221c[112]][_0x221c[64]](_0x221c[529])[0];null!=_0xc851x2&&(_0xc851x2[_0x221c[124]][_0x221c[491]]=_0x221c[492],_0xc851x2[_0x221c[124]][_0x221c[361]]=_0xc851x4+_0x221c[168],_0xc851x2[_0x221c[124]][_0x221c[125]]=_0xc851x5+_0x221c[168])}else {_0xc851x3[_0x221c[171]](_0x221c[530]);_0xc851x3[_0x221c[171]](_0x221c[531]);_0xc851xa=document[_0x221c[64]](_0x221c[521]);for(_0xc851x12=0;_0xc851x12<_0xc851xa[_0x221c[67]];_0xc851x12++){_0xc851x3[_0x221c[171]](mxUtils[_0x221c[532]](_0xc851xa[_0xc851x12]))};_0xc851xa=document[_0x221c[64]](_0x221c[54]);for(_0xc851x12=0;_0xc851x12<_0xc851xa[_0x221c[67]];_0xc851x12++){_0xc851x3[_0x221c[171]](mxUtils[_0x221c[532]](_0xc851xa[_0xc851x12]))};_0xc851xa=document[_0x221c[64]](_0x221c[124]);for(_0xc851x12=0;_0xc851x12<_0xc851xa[_0x221c[67]];_0xc851x12++){_0xc851x3[_0x221c[171]](mxUtils[_0x221c[532]](_0xc851xa[_0xc851x12]))};_0xc851x3[_0x221c[171]](_0x221c[533]);_0xc851x3[_0x221c[171]](_0x221c[534]);_0xc851x3[_0x221c[268]]();null==_0xc851x3[_0x221c[112]]&&_0xc851x3[_0x221c[158]][_0x221c[62]](_0xc851x3[_0x221c[55]](_0x221c[112]));_0xc851x3[_0x221c[112]][_0x221c[124]][_0x221c[277]]=_0x221c[278];for(_0xc851x2=_0xc851x2[_0x221c[526]][_0x221c[285]];null!=_0xc851x2;){_0xc851x12=_0xc851x2[_0x221c[511]](!0),_0xc851x3[_0x221c[112]][_0x221c[62]](_0xc851x12),_0xc851x2=_0xc851x2[_0x221c[287]]};_0xc851x2=_0xc851x3[_0x221c[64]](_0x221c[449])[0];null!=_0xc851x2&&(_0xc851x2[_0x221c[57]](_0x221c[535],_0x221c[536]+_0xc851x4+_0x221c[537]+_0xc851x5+_0x221c[460]),_0xc851x4=_0xc851x2[_0x221c[538]],_0xc851x4[_0x221c[57]](_0x221c[117],_0xc851x9[_0x221c[117]]+Math[_0x221c[160]](_0xc851x9[_0x221c[235]],0)+3),_0xc851x4[_0x221c[57]](_0x221c[119],_0xc851x9[_0x221c[119]]+Math[_0x221c[160]](_0xc851x9[_0x221c[236]],0)+3))};mxUtils[_0x221c[272]](_0xc851x3[_0x221c[112]]);return _0xc851x3},printScreen:function(_0xc851x2){var _0xc851x3=window[_0x221c[392]]();mxUtils[_0x221c[539]](_0xc851x2,_0xc851x3[_0x221c[395]]);_0xc851x2=function(){_0xc851x3[_0x221c[393]]();_0xc851x3[_0x221c[540]]();_0xc851x3[_0x221c[268]]()};mxClient[_0x221c[76]]?_0xc851x3[_0x221c[261]](_0xc851x2,500):_0xc851x2()},popup:function(_0xc851x2,_0xc851x3){if(_0xc851x3){var _0xc851x4=document[_0x221c[55]](_0x221c[485]);_0xc851x4[_0x221c[124]][_0x221c[277]]=_0x221c[276];_0xc851x4[_0x221c[124]][_0x221c[117]]=_0x221c[541];_0xc851x4[_0x221c[124]][_0x221c[119]]=_0x221c[542];var _0xc851x5=document[_0x221c[55]](_0x221c[543]);_0xc851x5[_0x221c[339]]=mxUtils[_0x221c[321]](_0xc851x2,!1)[_0x221c[230]](/\n/g,_0x221c[545])[_0x221c[230]](/ /g,_0x221c[544]);_0xc851x4[_0x221c[62]](_0xc851x5);_0xc851x4= new mxWindow(_0x221c[546],_0xc851x4,document[_0x221c[112]][_0x221c[159]]/2-320,(document[_0x221c[112]][_0x221c[157]]||document[_0x221c[158]][_0x221c[157]])/2-240,640,480,!1,!0);_0xc851x4[_0x221c[164]](!0);_0xc851x4[_0x221c[175]](!0)}else {mxClient[_0x221c[133]]?(_0xc851x4=window[_0x221c[392]](),_0xc851x4[_0x221c[395]][_0x221c[171]](_0x221c[547]+mxUtils[_0x221c[321]](_0xc851x2)+_0x221c[548]),_0xc851x4[_0x221c[395]][_0x221c[268]]()):(_0xc851x4=window[_0x221c[392]](),_0xc851x5=_0xc851x4[_0x221c[395]][_0x221c[55]](_0x221c[543]),_0xc851x5[_0x221c[339]]=mxUtils[_0x221c[321]](_0xc851x2,!1)[_0x221c[230]](/\n/g,_0x221c[545])[_0x221c[230]](/ /g,_0x221c[544]),_0xc851x4[_0x221c[395]][_0x221c[112]][_0x221c[62]](_0xc851x5))}},alert:function(_0xc851x2){alert(_0xc851x2)},prompt:function(_0xc851x2,_0xc851x3){return prompt(_0xc851x2,_0xc851x3)},confirm:function(_0xc851x2){return confirm(_0xc851x2)},error:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=document[_0x221c[55]](_0x221c[485]);_0xc851x9[_0x221c[124]][_0x221c[549]]=_0x221c[550];var _0xc851xa=document[_0x221c[55]](_0x221c[466]);_0xc851xa[_0x221c[57]](_0x221c[390],_0xc851x5||mxUtils[_0x221c[551]]);_0xc851xa[_0x221c[57]](_0x221c[552],_0x221c[553]);_0xc851xa[_0x221c[124]][_0x221c[123]]=_0x221c[554];_0xc851x9[_0x221c[62]](_0xc851xa);_0xc851x9[_0x221c[62]](document[_0x221c[344]](_0x221c[555]));_0xc851x9[_0x221c[62]](document[_0x221c[344]](_0x221c[555]));_0xc851x9[_0x221c[62]](document[_0x221c[344]](_0x221c[555]));mxUtils[_0x221c[53]](_0xc851x9,_0xc851x2);_0xc851x2=document[_0x221c[112]][_0x221c[159]];_0xc851x5=document[_0x221c[112]][_0x221c[157]]||document[_0x221c[158]][_0x221c[157]];var _0xc851x12= new mxWindow(mxResources[_0x221c[203]](mxUtils[_0x221c[556]])||mxUtils[_0x221c[556]],_0xc851x9,(_0xc851x2-_0xc851x3)/2,_0xc851x5/4,_0xc851x3,null,!1,!0);_0xc851x4&&(mxUtils[_0x221c[345]](_0xc851x9),_0xc851x3=document[_0x221c[55]](_0x221c[346]),_0xc851x4=document[_0x221c[55]](_0x221c[172]),mxClient[_0x221c[80]]?_0xc851x4[_0x221c[124]][_0x221c[103]]=_0x221c[557]:_0xc851x4[_0x221c[57]](_0x221c[124],_0x221c[557]),mxEvent[_0x221c[169]](_0xc851x4,_0x221c[173],function(_0xc851x2){_0xc851x12[_0x221c[515]]()}),mxUtils[_0x221c[53]](_0xc851x4,mxResources[_0x221c[203]](mxUtils[_0x221c[558]])||mxUtils[_0x221c[558]]),_0xc851x3[_0x221c[62]](_0xc851x4),_0xc851x9[_0x221c[62]](_0xc851x3),mxUtils[_0x221c[345]](_0xc851x9),_0xc851x12[_0x221c[164]](!0));_0xc851x12[_0x221c[175]](!0);return _0xc851x12},makeDraggable:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15){_0xc851x2= new mxDragSource(_0xc851x2,_0xc851x4);_0xc851x2[_0x221c[559]]= new mxPoint(null!=_0xc851x9?_0xc851x9:0,null!=_0xc851xa?_0xc851xa:mxConstants[_0x221c[560]]);_0xc851x2[_0x221c[561]]=_0xc851x12;_0xc851x2[_0x221c[562]](!1);null!=_0xc851x14&&(_0xc851x2[_0x221c[563]]=_0xc851x14);null!=_0xc851x15&&(_0xc851x2[_0x221c[564]]=_0xc851x15);_0xc851x2[_0x221c[565]]=function(_0xc851x2){return _0x221c[279]== typeof _0xc851x3?_0xc851x3(_0xc851x2):_0xc851x3};null!=_0xc851x5&&(_0xc851x2[_0x221c[566]]=function(){return _0xc851x5[_0x221c[511]](!0)},_0xc851x13&&(_0xc851x2[_0x221c[567]]=function(_0xc851x2){var _0xc851x3=_0xc851x5[_0x221c[511]](!0),_0xc851x4=parseInt(_0xc851x3[_0x221c[124]][_0x221c[117]]),_0xc851x9=parseInt(_0xc851x3[_0x221c[124]][_0x221c[119]]);_0xc851x3[_0x221c[124]][_0x221c[117]]=Math[_0x221c[488]](_0xc851x4*_0xc851x2[_0x221c[441]][_0x221c[255]])+_0x221c[168];_0xc851x3[_0x221c[124]][_0x221c[119]]=Math[_0x221c[488]](_0xc851x9*_0xc851x2[_0x221c[441]][_0x221c[255]])+_0x221c[168];return _0xc851x3}));return _0xc851x2}},mxConstants={DEFAULT_HOTSPOT:0.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:_0x221c[568],RENDERING_HINT_FASTER:_0x221c[569],RENDERING_HINT_FASTEST:_0x221c[570],DIALECT_SVG:_0x221c[571],DIALECT_VML:_0x221c[572],DIALECT_MIXEDHTML:_0x221c[573],DIALECT_PREFERHTML:_0x221c[574],DIALECT_STRICTHTML:_0x221c[575],NS_SVG:_0x221c[576],NS_XHTML:_0x221c[577],NS_XLINK:_0x221c[578],SHADOWCOLOR:_0x221c[579],SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:_0x221c[580],DEFAULT_INVALID_COLOR:_0x221c[581],HIGHLIGHT_STROKEWIDTH:3,CURSOR_MOVABLE_VERTEX:_0x221c[582],CURSOR_MOVABLE_EDGE:_0x221c[582],CURSOR_LABEL_HANDLE:_0x221c[583],CURSOR_BEND_HANDLE:_0x221c[356],CURSOR_CONNECT:_0x221c[356],HIGHLIGHT_COLOR:_0x221c[580],CONNECT_TARGET_COLOR:_0x221c[584],INVALID_CONNECT_TARGET_COLOR:_0x221c[581],DROP_TARGET_COLOR:_0x221c[584],VALID_COLOR:_0x221c[580],INVALID_COLOR:_0x221c[581],EDGE_SELECTION_COLOR:_0x221c[580],VERTEX_SELECTION_COLOR:_0x221c[580],VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:_0x221c[581],GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:_0x221c[585],OUTLINE_STROKEWIDTH:mxClient[_0x221c[80]]?2:3,HANDLE_SIZE:7,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:_0x221c[580],HANDLE_STROKECOLOR:_0x221c[586],LABEL_HANDLE_FILLCOLOR:_0x221c[587],CONNECT_HANDLE_FILLCOLOR:_0x221c[584],LOCKED_HANDLE_FILLCOLOR:_0x221c[581],OUTLINE_HANDLE_FILLCOLOR:_0x221c[588],OUTLINE_HANDLE_STROKECOLOR:_0x221c[589],DEFAULT_FONTFAMILY:_0x221c[590],DEFAULT_FONTSIZE:11,LINE_HEIGHT:1.2,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:0.15,LINE_ARCSIZE:20,ARROW_SPACING:10,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT: new mxRectangle(0,0,826,1169),PAGE_FORMAT_A4_LANDSCAPE: new mxRectangle(0,0,1169,826),PAGE_FORMAT_LETTER_PORTRAIT: new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE: new mxRectangle(0,0,1100,850),NONE:_0x221c[130],STYLE_PERIMETER:_0x221c[591],STYLE_SOURCE_PORT:_0x221c[592],STYLE_TARGET_PORT:_0x221c[593],STYLE_PORT_CONSTRAINT:_0x221c[594],STYLE_OPACITY:_0x221c[461],STYLE_TEXT_OPACITY:_0x221c[595],STYLE_OVERFLOW:_0x221c[277],STYLE_ORTHOGONAL:_0x221c[596],STYLE_EXIT_X:_0x221c[597],STYLE_EXIT_Y:_0x221c[598],STYLE_EXIT_PERIMETER:_0x221c[599],STYLE_ENTRY_X:_0x221c[600],STYLE_ENTRY_Y:_0x221c[601],STYLE_ENTRY_PERIMETER:_0x221c[602],STYLE_WHITE_SPACE:_0x221c[493],STYLE_ROTATION:_0x221c[603],STYLE_FILLCOLOR:_0x221c[604],STYLE_SWIMLANE_FILLCOLOR:_0x221c[605],STYLE_GRADIENTCOLOR:_0x221c[606],STYLE_GRADIENT_DIRECTION:_0x221c[607],STYLE_STROKECOLOR:_0x221c[608],STYLE_SEPARATORCOLOR:_0x221c[609],STYLE_STROKEWIDTH:_0x221c[610],STYLE_ALIGN:_0x221c[611],STYLE_VERTICAL_ALIGN:_0x221c[123],STYLE_LABEL_POSITION:_0x221c[612],STYLE_VERTICAL_LABEL_POSITION:_0x221c[613],STYLE_IMAGE_ASPECT:_0x221c[614],STYLE_IMAGE_ALIGN:_0x221c[615],STYLE_IMAGE_VERTICAL_ALIGN:_0x221c[616],STYLE_GLASS:_0x221c[617],STYLE_IMAGE:_0x221c[618],STYLE_IMAGE_WIDTH:_0x221c[619],STYLE_IMAGE_HEIGHT:_0x221c[620],STYLE_IMAGE_BACKGROUND:_0x221c[621],STYLE_IMAGE_BORDER:_0x221c[622],STYLE_FLIPH:_0x221c[623],STYLE_FLIPV:_0x221c[624],STYLE_NOLABEL:_0x221c[625],STYLE_NOEDGESTYLE:_0x221c[626],STYLE_LABEL_BACKGROUNDCOLOR:_0x221c[627],STYLE_LABEL_BORDERCOLOR:_0x221c[628],STYLE_LABEL_PADDING:_0x221c[629],STYLE_INDICATOR_SHAPE:_0x221c[630],STYLE_INDICATOR_IMAGE:_0x221c[631],STYLE_INDICATOR_COLOR:_0x221c[632],STYLE_INDICATOR_STROKECOLOR:_0x221c[633],STYLE_INDICATOR_GRADIENTCOLOR:_0x221c[634],STYLE_INDICATOR_SPACING:_0x221c[635],STYLE_INDICATOR_WIDTH:_0x221c[636],STYLE_INDICATOR_HEIGHT:_0x221c[637],STYLE_INDICATOR_DIRECTION:_0x221c[638],STYLE_SHADOW:_0x221c[639],STYLE_SEGMENT:_0x221c[640],STYLE_ENDARROW:_0x221c[641],STYLE_STARTARROW:_0x221c[642],STYLE_ENDSIZE:_0x221c[643],STYLE_STARTSIZE:_0x221c[644],STYLE_SWIMLANE_LINE:_0x221c[645],STYLE_ENDFILL:_0x221c[646],STYLE_STARTFILL:_0x221c[647],STYLE_DASHED:_0x221c[648],STYLE_DASH_PATTERN:_0x221c[649],STYLE_ROUNDED:_0x221c[650],STYLE_CURVED:_0x221c[651],STYLE_ARCSIZE:_0x221c[652],STYLE_SMOOTH:_0x221c[653],STYLE_SOURCE_PERIMETER_SPACING:_0x221c[654],STYLE_TARGET_PERIMETER_SPACING:_0x221c[655],STYLE_PERIMETER_SPACING:_0x221c[656],STYLE_SPACING:_0x221c[657],STYLE_SPACING_TOP:_0x221c[658],STYLE_SPACING_LEFT:_0x221c[659],STYLE_SPACING_BOTTOM:_0x221c[660],STYLE_SPACING_RIGHT:_0x221c[661],STYLE_HORIZONTAL:_0x221c[662],STYLE_DIRECTION:_0x221c[663],STYLE_ELBOW:_0x221c[664],STYLE_FONTCOLOR:_0x221c[665],STYLE_FONTFAMILY:_0x221c[486],STYLE_FONTSIZE:_0x221c[487],STYLE_FONTSTYLE:_0x221c[666],STYLE_AUTOSIZE:_0x221c[667],STYLE_FOLDABLE:_0x221c[668],STYLE_EDITABLE:_0x221c[669],STYLE_BENDABLE:_0x221c[670],STYLE_MOVABLE:_0x221c[671],STYLE_RESIZABLE:_0x221c[672],STYLE_CLONEABLE:_0x221c[673],STYLE_DELETABLE:_0x221c[674],STYLE_SHAPE:_0x221c[253],STYLE_EDGE:_0x221c[675],STYLE_LOOP:_0x221c[676],STYLE_ROUTING_CENTER_X:_0x221c[677],STYLE_ROUTING_CENTER_Y:_0x221c[678],FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_SHADOW:8,SHAPE_RECTANGLE:_0x221c[679],SHAPE_ELLIPSE:_0x221c[680],SHAPE_DOUBLE_ELLIPSE:_0x221c[681],SHAPE_RHOMBUS:_0x221c[682],SHAPE_LINE:_0x221c[683],SHAPE_IMAGE:_0x221c[618],SHAPE_ARROW:_0x221c[684],SHAPE_LABEL:_0x221c[685],SHAPE_CYLINDER:_0x221c[686],SHAPE_SWIMLANE:_0x221c[687],SHAPE_CONNECTOR:_0x221c[688],SHAPE_ACTOR:_0x221c[689],SHAPE_CLOUD:_0x221c[690],SHAPE_TRIANGLE:_0x221c[691],SHAPE_HEXAGON:_0x221c[692],ARROW_CLASSIC:_0x221c[693],ARROW_BLOCK:_0x221c[694],ARROW_OPEN:_0x221c[392],ARROW_OVAL:_0x221c[695],ARROW_DIAMOND:_0x221c[696],ARROW_DIAMOND_THIN:_0x221c[697],ALIGN_LEFT:_0x221c[361],ALIGN_CENTER:_0x221c[698],ALIGN_RIGHT:_0x221c[699],ALIGN_TOP:_0x221c[125],ALIGN_MIDDLE:_0x221c[554],ALIGN_BOTTOM:_0x221c[553],DIRECTION_NORTH:_0x221c[700],DIRECTION_SOUTH:_0x221c[701],DIRECTION_EAST:_0x221c[702],DIRECTION_WEST:_0x221c[703],DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:_0x221c[704],ELBOW_HORIZONTAL:_0x221c[662],EDGESTYLE_ELBOW:_0x221c[705],EDGESTYLE_ENTITY_RELATION:_0x221c[706],EDGESTYLE_LOOP:_0x221c[707],EDGESTYLE_SIDETOSIDE:_0x221c[708],EDGESTYLE_TOPTOBOTTOM:_0x221c[709],EDGESTYLE_ORTHOGONAL:_0x221c[710],EDGESTYLE_SEGMENT:_0x221c[711],PERIMETER_ELLIPSE:_0x221c[712],PERIMETER_RECTANGLE:_0x221c[713],PERIMETER_RHOMBUS:_0x221c[714],PERIMETER_TRIANGLE:_0x221c[715]};function mxEventObject(_0xc851x2){this[_0x221c[298]]=_0xc851x2;this[_0x221c[716]]=[];for(var _0xc851x3=1;_0xc851x3<arguments[_0x221c[67]];_0xc851x3+=2){null!=arguments[_0xc851x3+1]&&(this[_0x221c[716]][arguments[_0xc851x3]]=arguments[_0xc851x3+1])}}mxEventObject[_0x221c[202]][_0x221c[298]]=null;mxEventObject[_0x221c[202]][_0x221c[716]]=null;mxEventObject[_0x221c[202]][_0x221c[717]]= !1;mxEventObject[_0x221c[202]][_0x221c[718]]=function(){return this[_0x221c[298]]};mxEventObject[_0x221c[202]][_0x221c[719]]=function(){return this[_0x221c[716]]};mxEventObject[_0x221c[202]][_0x221c[720]]=function(_0xc851x2){return this[_0x221c[716]][_0xc851x2]};mxEventObject[_0x221c[202]][_0x221c[721]]=function(){return this[_0x221c[717]]};mxEventObject[_0x221c[202]][_0x221c[722]]=function(){this[_0x221c[717]]= !0};function mxMouseEvent(_0xc851x2,_0xc851x3){this[_0x221c[723]]=_0xc851x2;this[_0x221c[724]]=_0xc851x3}mxMouseEvent[_0x221c[202]][_0x221c[717]]= !1;mxMouseEvent[_0x221c[202]][_0x221c[723]]=null;mxMouseEvent[_0x221c[202]][_0x221c[725]]=null;mxMouseEvent[_0x221c[202]][_0x221c[726]]=null;mxMouseEvent[_0x221c[202]][_0x221c[724]]=null;mxMouseEvent[_0x221c[202]][_0x221c[727]]=function(){return this[_0x221c[723]]};mxMouseEvent[_0x221c[202]][_0x221c[728]]=function(){return mxEvent[_0x221c[728]](this[_0x221c[723]])};mxMouseEvent[_0x221c[202]][_0x221c[729]]=function(_0xc851x2){if(null!=_0xc851x2){for(var _0xc851x3=this[_0x221c[728]]();null!=_0xc851x3;){if(_0xc851x3==_0xc851x2[_0x221c[252]]){return !0};_0xc851x3=_0xc851x3[_0x221c[265]]}};return !1};mxMouseEvent[_0x221c[202]][_0x221c[730]]=function(){return mxEvent[_0x221c[731]](this[_0x221c[727]]())};mxMouseEvent[_0x221c[202]][_0x221c[732]]=function(){return mxEvent[_0x221c[733]](this[_0x221c[727]]())};mxMouseEvent[_0x221c[202]][_0x221c[734]]=function(){return this[_0x221c[725]]};mxMouseEvent[_0x221c[202]][_0x221c[735]]=function(){return this[_0x221c[726]]};mxMouseEvent[_0x221c[202]][_0x221c[248]]=function(){return this[_0x221c[724]]};mxMouseEvent[_0x221c[202]][_0x221c[736]]=function(){var _0xc851x2=this[_0x221c[248]]();return null!=_0xc851x2?_0xc851x2[_0x221c[246]]:null};mxMouseEvent[_0x221c[202]][_0x221c[737]]=function(){return mxEvent[_0x221c[737]](this[_0x221c[727]]())};mxMouseEvent[_0x221c[202]][_0x221c[721]]=function(){return this[_0x221c[717]]};mxMouseEvent[_0x221c[202]][_0x221c[722]]=function(_0xc851x2){(null!=_0xc851x2?_0xc851x2:1)&&this[_0x221c[723]][_0x221c[738]]&&this[_0x221c[723]][_0x221c[738]]();this[_0x221c[723]][_0x221c[739]]= !1;this[_0x221c[717]]= !0};function mxEventSource(_0xc851x2){this[_0x221c[740]](_0xc851x2)}mxEventSource[_0x221c[202]][_0x221c[741]]=null;mxEventSource[_0x221c[202]][_0x221c[742]]= !0;mxEventSource[_0x221c[202]][_0x221c[743]]=null;mxEventSource[_0x221c[202]][_0x221c[503]]=function(){return this[_0x221c[742]]};mxEventSource[_0x221c[202]][_0x221c[504]]=function(_0xc851x2){this[_0x221c[742]]=_0xc851x2};mxEventSource[_0x221c[202]][_0x221c[744]]=function(){return this[_0x221c[743]]};mxEventSource[_0x221c[202]][_0x221c[740]]=function(_0xc851x2){this[_0x221c[743]]=_0xc851x2};mxEventSource[_0x221c[202]][_0x221c[169]]=function(_0xc851x2,_0xc851x3){null==this[_0x221c[741]]&&(this[_0x221c[741]]=[]);this[_0x221c[741]][_0x221c[207]](_0xc851x2);this[_0x221c[741]][_0x221c[207]](_0xc851x3)};mxEventSource[_0x221c[202]][_0x221c[745]]=function(_0xc851x2){if(null!=this[_0x221c[741]]){for(var _0xc851x3=0;_0xc851x3<this[_0x221c[741]][_0x221c[67]];){this[_0x221c[741]][_0xc851x3+1]==_0xc851x2?this[_0x221c[741]][_0x221c[300]](_0xc851x3,2):_0xc851x3+=2}}};mxEventSource[_0x221c[202]][_0x221c[746]]=function(_0xc851x2,_0xc851x3){if(null!=this[_0x221c[741]]&&this[_0x221c[503]]()){null==_0xc851x2&&(_0xc851x2= new mxEventObject);null==_0xc851x3&&(_0xc851x3=this[_0x221c[744]]());null==_0xc851x3&&(_0xc851x3=this);for(var _0xc851x4=[_0xc851x3,_0xc851x2],_0xc851x5=0;_0xc851x5<this[_0x221c[741]][_0x221c[67]];_0xc851x5+=2){var _0xc851x9=this[_0x221c[741]][_0xc851x5];(null==_0xc851x9||_0xc851x9==_0xc851x2[_0x221c[718]]())&&this[_0x221c[741]][_0xc851x5+1][_0x221c[183]](this,_0xc851x4)}}};var mxEvent={objects:[],addListener:function(){var _0xc851x2=function(_0xc851x2,_0xc851x4,_0xc851x5){null==_0xc851x2[_0x221c[69]]&&(_0xc851x2[_0x221c[69]]=[],mxEvent[_0x221c[68]][_0x221c[207]](_0xc851x2));_0xc851x2[_0x221c[69]][_0x221c[207]]({name:_0xc851x4,f:_0xc851x5})};return window[_0x221c[418]]?function(_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x3[_0x221c[418]](_0xc851x4,_0xc851x5,!1);_0xc851x2(_0xc851x3,_0xc851x4,_0xc851x5)}:function(_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x3[_0x221c[108]](_0x221c[747]+_0xc851x4,_0xc851x5);_0xc851x2(_0xc851x3,_0xc851x4,_0xc851x5)}}(),removeListener:function(){var _0xc851x2=function(_0xc851x2,_0xc851x4,_0xc851x5){if(null!=_0xc851x2[_0x221c[69]]){_0xc851x4=_0xc851x2[_0x221c[69]][_0x221c[67]];for(var _0xc851x9=0;_0xc851x9<_0xc851x4;_0xc851x9++){if(_0xc851x2[_0x221c[69]][_0xc851x9][_0x221c[748]]==_0xc851x5){_0xc851x2[_0x221c[69]][_0x221c[300]](_0xc851x9,1);break}};0==_0xc851x2[_0x221c[69]][_0x221c[67]]&&(_0xc851x2[_0x221c[69]]=null)}};return window[_0x221c[749]]?function(_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x3[_0x221c[749]](_0xc851x4,_0xc851x5,!1);_0xc851x2(_0xc851x3,_0xc851x4,_0xc851x5)}:function(_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x3[_0x221c[750]](_0x221c[747]+_0xc851x4,_0xc851x5);_0xc851x2(_0xc851x3,_0xc851x4,_0xc851x5)}}(),removeAllListeners:function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[69]];if(null!=_0xc851x3){for(;0<_0xc851x3[_0x221c[67]];){var _0xc851x4=_0xc851x3[0];mxEvent[_0x221c[745]](_0xc851x2,_0xc851x4[_0x221c[298]],_0xc851x4[_0x221c[748]])}}},addGestureListeners:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){null!=_0xc851x3&&mxEvent[_0x221c[169]](_0xc851x2,_0x221c[751],_0xc851x3);null!=_0xc851x4&&mxEvent[_0x221c[169]](_0xc851x2,_0x221c[752],_0xc851x4);null!=_0xc851x5&&mxEvent[_0x221c[169]](_0xc851x2,_0x221c[753],_0xc851x5);mxClient[_0x221c[754]]&&(null!=_0xc851x3&&mxEvent[_0x221c[169]](_0xc851x2,_0x221c[755],_0xc851x3),null!=_0xc851x4&&mxEvent[_0x221c[169]](_0xc851x2,_0x221c[756],_0xc851x4),null!=_0xc851x5&&mxEvent[_0x221c[169]](_0xc851x2,_0x221c[757],_0xc851x5))},removeGestureListeners:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){null!=_0xc851x3&&mxEvent[_0x221c[745]](_0xc851x2,_0x221c[751],_0xc851x3);null!=_0xc851x4&&mxEvent[_0x221c[745]](_0xc851x2,_0x221c[752],_0xc851x4);null!=_0xc851x5&&mxEvent[_0x221c[745]](_0xc851x2,_0x221c[753],_0xc851x5);mxClient[_0x221c[754]]&&(null!=_0xc851x3&&mxEvent[_0x221c[745]](_0xc851x2,_0x221c[755],_0xc851x3),null!=_0xc851x4&&mxEvent[_0x221c[745]](_0xc851x2,_0x221c[756],_0xc851x4),null!=_0xc851x5&&mxEvent[_0x221c[745]](_0xc851x2,_0x221c[757],_0xc851x5))},redirectMouseEvents:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12){var _0xc851x13=function(_0xc851x2){return _0x221c[279]== typeof _0xc851x4?_0xc851x4(_0xc851x2):_0xc851x4};mxEvent[_0x221c[759]](_0xc851x2,function(_0xc851x2){null!=_0xc851x5?_0xc851x5(_0xc851x2):mxEvent[_0x221c[721]](_0xc851x2)||_0xc851x3[_0x221c[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xc851x2,_0xc851x13(_0xc851x2)))},function(_0xc851x2){null!=_0xc851x9?_0xc851x9(_0xc851x2):mxEvent[_0x221c[721]](_0xc851x2)||_0xc851x3[_0x221c[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xc851x2,_0xc851x13(_0xc851x2)))},function(_0xc851x2){null!=_0xc851xa?_0xc851xa(_0xc851x2):mxEvent[_0x221c[721]](_0xc851x2)||_0xc851x3[_0x221c[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xc851x2,_0xc851x13(_0xc851x2)))});mxEvent[_0x221c[169]](_0xc851x2,_0x221c[760],function(_0xc851x2){if(null!=_0xc851x12){_0xc851x12(_0xc851x2)}else {if(!mxEvent[_0x221c[721]](_0xc851x2)){var _0xc851x4=_0xc851x13(_0xc851x2);_0xc851x3[_0x221c[761]](_0xc851x2,null!=_0xc851x4?_0xc851x4[_0x221c[246]]:null)}}})},release:function(_0xc851x2){if(null!=_0xc851x2&&(mxEvent[_0x221c[70]](_0xc851x2),_0xc851x2=_0xc851x2[_0x221c[271]],null!=_0xc851x2)){for(var _0xc851x3=_0xc851x2[_0x221c[67]],_0xc851x4=0;_0xc851x4<_0xc851x3;_0xc851x4+=1){mxEvent[_0x221c[762]](_0xc851x2[_0xc851x4])}}},addMouseWheelListener:function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=function(_0xc851x3){null==_0xc851x3&&(_0xc851x3=window[_0x221c[763]]);var _0xc851x5=0,_0xc851x5=mxClient[_0x221c[133]]&&!mxClient[_0x221c[75]]&&!mxClient[_0x221c[76]]?-_0xc851x3[_0x221c[764]]/2:_0xc851x3[_0x221c[765]]/120;0!=_0xc851x5&&_0xc851x2(_0xc851x3,0<_0xc851x5)};mxClient[_0x221c[133]]?mxEvent[_0x221c[169]](window,mxClient[_0x221c[75]]||mxClient[_0x221c[76]]?_0x221c[766]:_0x221c[767],_0xc851x3):mxEvent[_0x221c[169]](document,_0x221c[766],_0xc851x3)}},disableContextMenu:function(){return mxClient[_0x221c[80]]&&(_0x221c[82]=== typeof document[_0x221c[5]]||9>document[_0x221c[5]])?function(_0xc851x2){mxEvent[_0x221c[169]](_0xc851x2,_0x221c[768],function(){return !1})}:function(_0xc851x2){_0xc851x2[_0x221c[57]](_0x221c[769],_0x221c[770])}}(),getSource:function(_0xc851x2){return null!=_0xc851x2[_0x221c[771]]?_0xc851x2[_0x221c[771]]:_0xc851x2[_0x221c[772]]},isConsumed:function(_0xc851x2){return null!=_0xc851x2[_0x221c[721]]&&_0xc851x2[_0x221c[721]]},isLeftMouseButton:function(_0xc851x2){return _0xc851x2[_0x221c[172]]==(mxClient[_0x221c[80]]&&(_0x221c[82]=== typeof document[_0x221c[5]]||9>document[_0x221c[5]])?1:0)},isRightMouseButton:function(_0xc851x2){return 2==_0xc851x2[_0x221c[172]]},isPopupTrigger:function(_0xc851x2){return mxEvent[_0x221c[773]](_0xc851x2)||mxEvent[_0x221c[774]](_0xc851x2)&&!mxEvent[_0x221c[775]](_0xc851x2)},isShiftDown:function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[776]]:!1},isAltDown:function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[777]]:!1},isControlDown:function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[778]]:!1},isMetaDown:function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[779]]:!1},getMainEvent:function(_0xc851x2){(_0x221c[755]==_0xc851x2[_0x221c[60]]||_0x221c[756]==_0xc851x2[_0x221c[60]])&&null!=_0xc851x2[_0x221c[780]]&&null!=_0xc851x2[_0x221c[780]][0]?_0xc851x2=_0xc851x2[_0x221c[780]][0]:_0x221c[757]==_0xc851x2[_0x221c[60]]&&(null!=_0xc851x2[_0x221c[781]]&&null!=_0xc851x2[_0x221c[781]][0])&&(_0xc851x2=_0xc851x2[_0x221c[781]][0]);return _0xc851x2},getClientX:function(_0xc851x2){return mxEvent[_0x221c[783]](_0xc851x2)[_0x221c[782]]},getClientY:function(_0xc851x2){return mxEvent[_0x221c[783]](_0xc851x2)[_0x221c[784]]},consume:function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=null!=_0xc851x4?_0xc851x4:!0;if(null!=_0xc851x3?_0xc851x3:1){_0xc851x2[_0x221c[738]]?(_0xc851x4&&_0xc851x2[_0x221c[785]](),_0xc851x2[_0x221c[738]]()):_0xc851x4&&(_0xc851x2[_0x221c[786]]= !0)};_0xc851x2[_0x221c[721]]= !0;_0xc851x2[_0x221c[739]]= !1},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,MOUSE_DOWN:_0x221c[787],MOUSE_MOVE:_0x221c[788],MOUSE_UP:_0x221c[789],ACTIVATE:_0x221c[790],RESIZE_START:_0x221c[791],RESIZE:_0x221c[129],RESIZE_END:_0x221c[792],MOVE_START:_0x221c[793],MOVE:_0x221c[582],MOVE_END:_0x221c[794],PAN_START:_0x221c[795],PAN:_0x221c[796],PAN_END:_0x221c[797],MINIMIZE:_0x221c[798],NORMALIZE:_0x221c[799],MAXIMIZE:_0x221c[800],HIDE:_0x221c[801],SHOW:_0x221c[539],CLOSE:_0x221c[268],DESTROY:_0x221c[515],REFRESH:_0x221c[802],SIZE:_0x221c[803],SELECT:_0x221c[804],FIRED:_0x221c[805],GET:_0x221c[203],RECEIVE:_0x221c[806],CONNECT:_0x221c[807],DISCONNECT:_0x221c[808],SUSPEND:_0x221c[809],RESUME:_0x221c[810],MARK:_0x221c[811],SESSION:_0x221c[812],ROOT:_0x221c[813],POST:_0x221c[814],OPEN:_0x221c[392],SAVE:_0x221c[815],BEFORE_ADD_VERTEX:_0x221c[816],ADD_VERTEX:_0x221c[817],AFTER_ADD_VERTEX:_0x221c[818],DONE:_0x221c[819],EXECUTE:_0x221c[350],EXECUTED:_0x221c[820],BEGIN_UPDATE:_0x221c[473],START_EDIT:_0x221c[821],END_UPDATE:_0x221c[476],END_EDIT:_0x221c[822],BEFORE_UNDO:_0x221c[823],UNDO:_0x221c[824],REDO:_0x221c[825],CHANGE:_0x221c[826],NOTIFY:_0x221c[827],LAYOUT_CELLS:_0x221c[828],CLICK:_0x221c[173],SCALE:_0x221c[255],TRANSLATE:_0x221c[513],SCALE_AND_TRANSLATE:_0x221c[829],UP:_0x221c[830],DOWN:_0x221c[831],ADD:_0x221c[99],REMOVE:_0x221c[205],CLEAR:_0x221c[200],ADD_CELLS:_0x221c[832],CELLS_ADDED:_0x221c[833],MOVE_CELLS:_0x221c[834],CELLS_MOVED:_0x221c[835],RESIZE_CELLS:_0x221c[836],CELLS_RESIZED:_0x221c[837],TOGGLE_CELLS:_0x221c[838],CELLS_TOGGLED:_0x221c[839],ORDER_CELLS:_0x221c[840],CELLS_ORDERED:_0x221c[841],REMOVE_CELLS:_0x221c[842],CELLS_REMOVED:_0x221c[843],GROUP_CELLS:_0x221c[844],UNGROUP_CELLS:_0x221c[845],REMOVE_CELLS_FROM_PARENT:_0x221c[846],FOLD_CELLS:_0x221c[847],CELLS_FOLDED:_0x221c[848],ALIGN_CELLS:_0x221c[849],LABEL_CHANGED:_0x221c[850],CONNECT_CELL:_0x221c[851],CELL_CONNECTED:_0x221c[852],SPLIT_EDGE:_0x221c[853],FLIP_EDGE:_0x221c[854],START_EDITING:_0x221c[855],ADD_OVERLAY:_0x221c[856],REMOVE_OVERLAY:_0x221c[857],UPDATE_CELL_SIZE:_0x221c[858],ESCAPE:_0x221c[859],CLICK:_0x221c[173],DOUBLE_CLICK:_0x221c[860],START:_0x221c[861],RESET:_0x221c[862]};function mxXmlRequest(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){this[_0x221c[863]]=_0xc851x2;this[_0x221c[864]]=_0xc851x3;this[_0x221c[865]]=_0xc851x4||_0x221c[866];this[_0x221c[307]]=null!=_0xc851x5?_0xc851x5:!0;this[_0x221c[867]]=_0xc851x9;this[_0x221c[868]]=_0xc851xa}mxXmlRequest[_0x221c[202]][_0x221c[863]]=null;mxXmlRequest[_0x221c[202]][_0x221c[864]]=null;mxXmlRequest[_0x221c[202]][_0x221c[865]]=null;mxXmlRequest[_0x221c[202]][_0x221c[307]]=null;mxXmlRequest[_0x221c[202]][_0x221c[869]]= !1;mxXmlRequest[_0x221c[202]][_0x221c[867]]=null;mxXmlRequest[_0x221c[202]][_0x221c[868]]=null;mxXmlRequest[_0x221c[202]][_0x221c[870]]=null;mxXmlRequest[_0x221c[202]][_0x221c[871]]=function(){return this[_0x221c[869]]};mxXmlRequest[_0x221c[202]][_0x221c[872]]=function(_0xc851x2){this[_0x221c[869]]=_0xc851x2};mxXmlRequest[_0x221c[202]][_0x221c[221]]=function(){return this[_0x221c[870]][_0x221c[873]]};mxXmlRequest[_0x221c[202]][_0x221c[220]]=function(){return 4==this[_0x221c[870]][_0x221c[417]]};mxXmlRequest[_0x221c[202]][_0x221c[874]]=function(){var _0xc851x2=this[_0x221c[875]]();return null!=_0xc851x2?_0xc851x2[_0x221c[158]]:null};mxXmlRequest[_0x221c[202]][_0x221c[875]]=function(){var _0xc851x2=this[_0x221c[870]][_0x221c[876]];if(9<=document[_0x221c[5]]||null==_0xc851x2||null==_0xc851x2[_0x221c[158]]){_0xc851x2=mxUtils[_0x221c[877]](this[_0x221c[870]][_0x221c[873]])};return _0xc851x2};mxXmlRequest[_0x221c[202]][_0x221c[221]]=function(){return this[_0x221c[870]][_0x221c[873]]};mxXmlRequest[_0x221c[202]][_0x221c[878]]=function(){return this[_0x221c[870]][_0x221c[879]]};mxXmlRequest[_0x221c[202]][_0x221c[385]]=function(){if(window[_0x221c[880]]){return function(){var _0xc851x2= new XMLHttpRequest;this[_0x221c[871]]()&&_0xc851x2[_0x221c[881]]&&_0xc851x2[_0x221c[881]](_0x221c[882]);return _0xc851x2}};if(_0x221c[82]!= typeof ActiveXObject){return function(){return  new ActiveXObject(_0x221c[883])}}}();mxXmlRequest[_0x221c[202]][_0x221c[414]]=function(_0xc851x2,_0xc851x3){this[_0x221c[870]]=this[_0x221c[385]]();null!=this[_0x221c[870]]&&(null!=_0xc851x2&&(this[_0x221c[870]][_0x221c[416]]=mxUtils[_0x221c[885]](this,function(){this[_0x221c[220]]()&&(_0xc851x2(this),this[_0x221c[884]]=null)})),this[_0x221c[870]][_0x221c[392]](this[_0x221c[865]],this[_0x221c[863]],this[_0x221c[307]],this[_0x221c[867]],this[_0x221c[868]]),this[_0x221c[886]](this[_0x221c[870]],this[_0x221c[864]]),this[_0x221c[870]][_0x221c[414]](this[_0x221c[864]]))};mxXmlRequest[_0x221c[202]][_0x221c[886]]=function(_0xc851x2,_0xc851x3){null!=_0xc851x3&&_0xc851x2[_0x221c[889]](_0x221c[887],_0x221c[888])};mxXmlRequest[_0x221c[202]][_0x221c[415]]=function(_0xc851x2,_0xc851x3){_0xc851x2=_0xc851x2||document;var _0xc851x4=null;_0xc851x2==document&&(_0xc851x4=window[_0x221c[890]],window[_0x221c[890]]=null);var _0xc851x5=_0xc851x2[_0x221c[55]](_0x221c[891]);_0xc851x5[_0x221c[57]](_0x221c[865],this[_0x221c[865]]);_0xc851x5[_0x221c[57]](_0x221c[892],this[_0x221c[863]]);null!=_0xc851x3&&_0xc851x5[_0x221c[57]](_0x221c[772],_0xc851x3);_0xc851x5[_0x221c[124]][_0x221c[495]]=_0x221c[130];_0xc851x5[_0x221c[124]][_0x221c[187]]=_0x221c[188];for(var _0xc851x9=0<this[_0x221c[864]][_0x221c[2]](_0x221c[893])?this[_0x221c[864]][_0x221c[224]](_0x221c[893]):this[_0x221c[864]][_0x221c[224]](),_0xc851xa=0;_0xc851xa<_0xc851x9[_0x221c[67]];_0xc851xa++){var _0xc851x12=_0xc851x9[_0xc851xa][_0x221c[2]](_0x221c[226]);if(0<_0xc851x12){var _0xc851x13=_0xc851x9[_0xc851xa][_0x221c[85]](0,_0xc851x12),_0xc851x14=_0xc851x9[_0xc851xa][_0x221c[85]](_0xc851x12+1),_0xc851x12=_0xc851x2[_0x221c[55]](_0x221c[126]);_0xc851x12[_0x221c[57]](_0x221c[298],_0xc851x13);_0xc851x14=_0xc851x14[_0x221c[230]](/\n/g,_0x221c[336]);_0xc851x13=_0xc851x2[_0x221c[344]](_0xc851x14);_0xc851x12[_0x221c[62]](_0xc851x13);_0xc851x5[_0x221c[62]](_0xc851x12)}};_0xc851x2[_0x221c[112]][_0x221c[62]](_0xc851x5);_0xc851x5[_0x221c[894]]();_0xc851x2[_0x221c[112]][_0x221c[266]](_0xc851x5);null!=_0xc851x4&&(window[_0x221c[890]]=_0xc851x4)};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard[_0x221c[895]]},cut:function(_0xc851x2,_0xc851x3){_0xc851x3=mxClipboard[_0x221c[149]](_0xc851x2,_0xc851x3);mxClipboard[_0x221c[896]]=0;mxClipboard[_0x221c[842]](_0xc851x2,_0xc851x3);return _0xc851x3},removeCells:function(_0xc851x2,_0xc851x3){_0xc851x2[_0x221c[842]](_0xc851x3)},copy:function(_0xc851x2,_0xc851x3){_0xc851x3=_0xc851x3||_0xc851x2[_0x221c[897]]();var _0xc851x4=_0xc851x2[_0x221c[898]](_0xc851x3);mxClipboard[_0x221c[896]]=1;mxClipboard[_0x221c[895]]=_0xc851x2[_0x221c[899]](_0xc851x4);return _0xc851x4},paste:function(_0xc851x2){if(null!=mxClipboard[_0x221c[895]]){var _0xc851x3=_0xc851x2[_0x221c[900]](mxClipboard[_0x221c[895]]),_0xc851x4=mxClipboard[_0x221c[896]]*mxClipboard[_0x221c[901]],_0xc851x5=_0xc851x2[_0x221c[902]](),_0xc851x3=_0xc851x2[_0x221c[903]](_0xc851x3,_0xc851x4,_0xc851x4,_0xc851x5);mxClipboard[_0x221c[896]]++;_0xc851x2[_0x221c[904]](_0xc851x3)}}};function mxWindow(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15){null!=_0xc851x3&&(_0xc851x12=null!=_0xc851x12?_0xc851x12:!0,this[_0x221c[905]]=_0xc851x3,this[_0x221c[176]](_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x15),this[_0x221c[906]](),this[_0x221c[907]](),this[_0x221c[908]](),this[_0x221c[909]](_0xc851x12),this[_0x221c[910]](_0xc851x2),(null==_0xc851x13||_0xc851x13)&&this[_0x221c[911]](),null!=_0xc851x14&&null!=_0xc851x14[_0x221c[265]]?_0xc851x14[_0x221c[265]][_0x221c[912]](this[_0x221c[485]],_0xc851x14):document[_0x221c[112]][_0x221c[62]](this[_0x221c[485]]))}mxWindow[_0x221c[202]]= new mxEventSource;mxWindow[_0x221c[202]][_0x221c[196]]=mxWindow;mxWindow[_0x221c[202]][_0x221c[913]]=mxClient[_0x221c[88]]+_0x221c[914];mxWindow[_0x221c[202]][_0x221c[915]]=mxClient[_0x221c[88]]+_0x221c[916];mxWindow[_0x221c[202]][_0x221c[917]]=mxClient[_0x221c[88]]+_0x221c[918];mxWindow[_0x221c[202]][_0x221c[919]]=mxClient[_0x221c[88]]+_0x221c[920];mxWindow[_0x221c[202]][_0x221c[921]]=mxClient[_0x221c[88]]+_0x221c[922];mxWindow[_0x221c[202]][_0x221c[189]]= !1;mxWindow[_0x221c[202]][_0x221c[905]]= !1;mxWindow[_0x221c[202]][_0x221c[923]]= new mxRectangle(0,0,50,40);mxWindow[_0x221c[202]][_0x221c[924]]= !1;mxWindow[_0x221c[202]][_0x221c[905]]= !1;mxWindow[_0x221c[202]][_0x221c[165]]= !0;mxWindow[_0x221c[202]][_0x221c[176]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x9=null!=_0xc851x9?_0xc851x9:_0x221c[925];this[_0x221c[485]]=document[_0x221c[55]](_0x221c[485]);this[_0x221c[485]][_0x221c[926]]=_0xc851x9;this[_0x221c[485]][_0x221c[124]][_0x221c[361]]=_0xc851x2+_0x221c[168];this[_0x221c[485]][_0x221c[124]][_0x221c[125]]=_0xc851x3+_0x221c[168];this[_0x221c[116]]=document[_0x221c[55]](_0x221c[116]);this[_0x221c[116]][_0x221c[926]]=_0xc851x9;null!=_0xc851x4&&(mxClient[_0x221c[80]]||(this[_0x221c[485]][_0x221c[124]][_0x221c[117]]=_0xc851x4+_0x221c[168]),this[_0x221c[116]][_0x221c[124]][_0x221c[117]]=_0xc851x4+_0x221c[168]);null!=_0xc851x5&&(mxClient[_0x221c[80]]||(this[_0x221c[485]][_0x221c[124]][_0x221c[119]]=_0xc851x5+_0x221c[168]),this[_0x221c[116]][_0x221c[124]][_0x221c[119]]=_0xc851x5+_0x221c[168]);_0xc851x2=document[_0x221c[55]](_0x221c[120]);_0xc851x3=document[_0x221c[55]](_0x221c[121]);this[_0x221c[924]]=document[_0x221c[55]](_0x221c[122]);this[_0x221c[924]][_0x221c[926]]=_0xc851x9+_0x221c[927];_0xc851x3[_0x221c[62]](this[_0x221c[924]]);_0xc851x2[_0x221c[62]](_0xc851x3);_0xc851x3=document[_0x221c[55]](_0x221c[121]);this[_0x221c[122]]=document[_0x221c[55]](_0x221c[122]);this[_0x221c[122]][_0x221c[926]]=_0xc851x9+_0x221c[928];this[_0x221c[929]]=document[_0x221c[55]](_0x221c[485]);this[_0x221c[929]][_0x221c[926]]=_0xc851x9+_0x221c[928];this[_0x221c[929]][_0x221c[124]][_0x221c[117]]=_0x221c[118];this[_0x221c[929]][_0x221c[62]](this[_0x221c[905]]);if(mxClient[_0x221c[80]]||_0x221c[529]!=this[_0x221c[905]][_0x221c[301]][_0x221c[36]]()){this[_0x221c[929]][_0x221c[124]][_0x221c[119]]=_0x221c[118]};this[_0x221c[122]][_0x221c[62]](this[_0x221c[929]]);_0xc851x3[_0x221c[62]](this[_0x221c[122]]);_0xc851x2[_0x221c[62]](_0xc851x3);this[_0x221c[116]][_0x221c[62]](_0xc851x2);this[_0x221c[485]][_0x221c[62]](this[_0x221c[116]]);_0xc851x9=mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[790]]()});mxEvent[_0x221c[169]](this[_0x221c[924]],_0x221c[751],_0xc851x9);mxEvent[_0x221c[169]](this[_0x221c[116]],_0x221c[751],_0xc851x9);mxClient[_0x221c[754]]&&(mxEvent[_0x221c[169]](this[_0x221c[924]],_0x221c[755],_0xc851x9),mxEvent[_0x221c[169]](this[_0x221c[116]],_0x221c[755],_0xc851x9));this[_0x221c[801]]()};mxWindow[_0x221c[202]][_0x221c[910]]=function(_0xc851x2){for(var _0xc851x3=this[_0x221c[924]][_0x221c[285]];null!=_0xc851x3;){var _0xc851x4=_0xc851x3[_0x221c[287]];_0xc851x3[_0x221c[288]]==mxConstants[_0x221c[317]]&&_0xc851x3[_0x221c[265]][_0x221c[266]](_0xc851x3);_0xc851x3=_0xc851x4};mxUtils[_0x221c[53]](this[_0x221c[924]],_0xc851x2||_0x221c[110])};mxWindow[_0x221c[202]][_0x221c[162]]=function(_0xc851x2){0>navigator[_0x221c[3]][_0x221c[2]](_0x221c[186])&&(this[_0x221c[929]][_0x221c[124]][_0x221c[277]]=_0xc851x2?_0x221c[278]:_0x221c[188])};mxWindow[_0x221c[202]][_0x221c[790]]=function(){if(mxWindow[_0x221c[930]]!=this){var _0xc851x2=mxUtils[_0x221c[275]](this[_0x221c[166]]()),_0xc851x2=null!=_0xc851x2?_0xc851x2[_0x221c[931]]:3;if(mxWindow[_0x221c[930]]){var _0xc851x3=mxWindow[_0x221c[930]][_0x221c[166]]();null!=_0xc851x3&&null!=_0xc851x3[_0x221c[124]]&&(_0xc851x3[_0x221c[124]][_0x221c[931]]=_0xc851x2)};_0xc851x3=mxWindow[_0x221c[930]];this[_0x221c[166]]()[_0x221c[124]][_0x221c[931]]=parseInt(_0xc851x2)+1;mxWindow[_0x221c[930]]=this;this[_0x221c[746]]( new mxEventObject(mxEvent.ACTIVATE,_0x221c[932],_0xc851x3))}};mxWindow[_0x221c[202]][_0x221c[166]]=function(){return this[_0x221c[485]]};mxWindow[_0x221c[202]][_0x221c[933]]=function(){mxUtils[_0x221c[933]](this[_0x221c[485]])};mxWindow[_0x221c[202]][_0x221c[934]]=function(){return null!=this[_0x221c[129]]?_0x221c[130]!=this[_0x221c[129]][_0x221c[124]][_0x221c[495]]:!1};mxWindow[_0x221c[202]][_0x221c[163]]=function(_0xc851x2){_0xc851x2?null==this[_0x221c[129]]?(this[_0x221c[129]]=document[_0x221c[55]](_0x221c[466]),this[_0x221c[129]][_0x221c[124]][_0x221c[491]]=_0x221c[492],this[_0x221c[129]][_0x221c[124]][_0x221c[553]]=_0x221c[935],this[_0x221c[129]][_0x221c[124]][_0x221c[699]]=_0x221c[935],this[_0x221c[129]][_0x221c[57]](_0x221c[390],mxClient[_0x221c[88]]+_0x221c[922]),this[_0x221c[129]][_0x221c[124]][_0x221c[270]]=_0x221c[936],mxEvent[_0x221c[759]](this[_0x221c[129]],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[790]]();var _0xc851x4=mxEvent[_0x221c[731]](_0xc851x2),_0xc851x5=mxEvent[_0x221c[733]](_0xc851x2),_0xc851x9=this[_0x221c[485]][_0x221c[359]],_0xc851xa=this[_0x221c[485]][_0x221c[167]],_0xc851x12=mxUtils[_0x221c[885]](this,function(_0xc851x2){var _0xc851x3=mxEvent[_0x221c[731]](_0xc851x2)-_0xc851x4,_0xc851x12=mxEvent[_0x221c[733]](_0xc851x2)-_0xc851x5;this[_0x221c[937]](_0xc851x9+_0xc851x3,_0xc851xa+_0xc851x12);this[_0x221c[746]]( new mxEventObject(mxEvent.RESIZE,_0x221c[763],_0xc851x2));mxEvent[_0x221c[722]](_0xc851x2)}),_0xc851x13=mxUtils[_0x221c[885]](this,function(_0xc851x2){mxEvent[_0x221c[938]](document,null,_0xc851x12,_0xc851x13);this[_0x221c[746]]( new mxEventObject(mxEvent.RESIZE_END,_0x221c[763],_0xc851x2));mxEvent[_0x221c[722]](_0xc851x2)});mxEvent[_0x221c[759]](document,null,_0xc851x12,_0xc851x13);this[_0x221c[746]]( new mxEventObject(mxEvent.RESIZE_START,_0x221c[763],_0xc851x2));mxEvent[_0x221c[722]](_0xc851x2)}),null,null),this[_0x221c[485]][_0x221c[62]](this[_0x221c[129]])):this[_0x221c[129]][_0x221c[124]][_0x221c[495]]=_0x221c[497]:null!=this[_0x221c[129]]&&(this[_0x221c[129]][_0x221c[124]][_0x221c[495]]=_0x221c[130])};mxWindow[_0x221c[202]][_0x221c[937]]=function(_0xc851x2,_0xc851x3){_0xc851x2=Math[_0x221c[160]](this[_0x221c[923]][_0x221c[117]],_0xc851x2);_0xc851x3=Math[_0x221c[160]](this[_0x221c[923]][_0x221c[119]],_0xc851x3);mxClient[_0x221c[80]]||(this[_0x221c[485]][_0x221c[124]][_0x221c[117]]=_0xc851x2+_0x221c[168],this[_0x221c[485]][_0x221c[124]][_0x221c[119]]=_0xc851x3+_0x221c[168]);this[_0x221c[116]][_0x221c[124]][_0x221c[117]]=_0xc851x2+_0x221c[168];this[_0x221c[116]][_0x221c[124]][_0x221c[119]]=_0xc851x3+_0x221c[168];mxClient[_0x221c[80]]||(this[_0x221c[929]][_0x221c[124]][_0x221c[119]]=this[_0x221c[485]][_0x221c[167]]-this[_0x221c[924]][_0x221c[167]]-2+_0x221c[168])};mxWindow[_0x221c[202]][_0x221c[909]]=function(_0xc851x2){this[_0x221c[798]][_0x221c[124]][_0x221c[495]]=_0xc851x2?_0x221c[110]:_0x221c[130]};mxWindow[_0x221c[202]][_0x221c[939]]=function(){return  new mxRectangle(0,0,0,this[_0x221c[924]][_0x221c[167]])};mxWindow[_0x221c[202]][_0x221c[907]]=function(){this[_0x221c[798]]=document[_0x221c[55]](_0x221c[466]);this[_0x221c[798]][_0x221c[57]](_0x221c[390],this[_0x221c[915]]);this[_0x221c[798]][_0x221c[57]](_0x221c[611],_0x221c[699]);this[_0x221c[798]][_0x221c[57]](_0x221c[924],_0x221c[940]);this[_0x221c[798]][_0x221c[124]][_0x221c[270]]=_0x221c[356];this[_0x221c[798]][_0x221c[124]][_0x221c[941]]=_0x221c[942];this[_0x221c[798]][_0x221c[124]][_0x221c[495]]=_0x221c[130];this[_0x221c[924]][_0x221c[62]](this[_0x221c[798]]);var _0xc851x2=!1,_0xc851x3=null,_0xc851x4=null,_0xc851x5=mxUtils[_0x221c[885]](this,function(_0xc851x5){this[_0x221c[790]]();if(_0xc851x2){_0xc851x2= !1,this[_0x221c[798]][_0x221c[57]](_0x221c[390],this[_0x221c[915]]),this[_0x221c[798]][_0x221c[57]](_0x221c[924],_0x221c[940]),this[_0x221c[929]][_0x221c[124]][_0x221c[495]]=_0x221c[110],this[_0x221c[800]][_0x221c[124]][_0x221c[495]]=_0xc851x3,mxClient[_0x221c[80]]||(this[_0x221c[485]][_0x221c[124]][_0x221c[119]]=_0xc851x4),this[_0x221c[116]][_0x221c[124]][_0x221c[119]]=_0xc851x4,null!=this[_0x221c[129]]&&(this[_0x221c[129]][_0x221c[124]][_0x221c[187]]=_0x221c[110]),this[_0x221c[746]]( new mxEventObject(mxEvent.NORMALIZE,_0x221c[763],_0xc851x5))}else {_0xc851x2= !0;this[_0x221c[798]][_0x221c[57]](_0x221c[390],this[_0x221c[917]]);this[_0x221c[798]][_0x221c[57]](_0x221c[924],_0x221c[943]);this[_0x221c[929]][_0x221c[124]][_0x221c[495]]=_0x221c[130];_0xc851x3=this[_0x221c[800]][_0x221c[124]][_0x221c[495]];this[_0x221c[800]][_0x221c[124]][_0x221c[495]]=_0x221c[130];_0xc851x4=this[_0x221c[116]][_0x221c[124]][_0x221c[119]];var _0xc851xa=this[_0x221c[939]]();0<_0xc851xa[_0x221c[119]]&&(mxClient[_0x221c[80]]||(this[_0x221c[485]][_0x221c[124]][_0x221c[119]]=_0xc851xa[_0x221c[119]]+_0x221c[168]),this[_0x221c[116]][_0x221c[124]][_0x221c[119]]=_0xc851xa[_0x221c[119]]+_0x221c[168]);0<_0xc851xa[_0x221c[117]]&&(mxClient[_0x221c[80]]||(this[_0x221c[485]][_0x221c[124]][_0x221c[117]]=_0xc851xa[_0x221c[117]]+_0x221c[168]),this[_0x221c[116]][_0x221c[124]][_0x221c[117]]=_0xc851xa[_0x221c[117]]+_0x221c[168]);null!=this[_0x221c[129]]&&(this[_0x221c[129]][_0x221c[124]][_0x221c[187]]=_0x221c[188]);this[_0x221c[746]]( new mxEventObject(mxEvent.MINIMIZE,_0x221c[763],_0xc851x5))};mxEvent[_0x221c[722]](_0xc851x5)});mxEvent[_0x221c[169]](this[_0x221c[798]],_0x221c[751],_0xc851x5);mxClient[_0x221c[754]]&&mxEvent[_0x221c[169]](this[_0x221c[798]],_0x221c[755],_0xc851x5)};mxWindow[_0x221c[202]][_0x221c[161]]=function(_0xc851x2){this[_0x221c[800]][_0x221c[124]][_0x221c[495]]=_0xc851x2?_0x221c[110]:_0x221c[130]};mxWindow[_0x221c[202]][_0x221c[906]]=function(){this[_0x221c[800]]=document[_0x221c[55]](_0x221c[466]);this[_0x221c[800]][_0x221c[57]](_0x221c[390],this[_0x221c[919]]);this[_0x221c[800]][_0x221c[57]](_0x221c[611],_0x221c[699]);this[_0x221c[800]][_0x221c[57]](_0x221c[924],_0x221c[944]);this[_0x221c[800]][_0x221c[124]][_0x221c[270]]=_0x221c[583];this[_0x221c[800]][_0x221c[124]][_0x221c[945]]=_0x221c[942];this[_0x221c[800]][_0x221c[124]][_0x221c[270]]=_0x221c[356];this[_0x221c[800]][_0x221c[124]][_0x221c[495]]=_0x221c[130];this[_0x221c[924]][_0x221c[62]](this[_0x221c[800]]);var _0xc851x2=!1,_0xc851x3=null,_0xc851x4=null,_0xc851x5=null,_0xc851x9=null,_0xc851xa=mxUtils[_0x221c[885]](this,function(_0xc851xa){this[_0x221c[790]]();if(_0x221c[130]!=this[_0x221c[800]][_0x221c[124]][_0x221c[495]]){if(_0xc851x2){_0xc851x2= !1;this[_0x221c[800]][_0x221c[57]](_0x221c[390],this[_0x221c[919]]);this[_0x221c[800]][_0x221c[57]](_0x221c[924],_0x221c[944]);this[_0x221c[929]][_0x221c[124]][_0x221c[495]]=_0x221c[110];this[_0x221c[798]][_0x221c[124]][_0x221c[187]]=_0x221c[110];this[_0x221c[485]][_0x221c[124]][_0x221c[361]]=_0xc851x3+_0x221c[168];this[_0x221c[485]][_0x221c[124]][_0x221c[125]]=_0xc851x4+_0x221c[168];if(!mxClient[_0x221c[80]]&&(this[_0x221c[485]][_0x221c[124]][_0x221c[119]]=_0xc851x5,this[_0x221c[485]][_0x221c[124]][_0x221c[117]]=_0xc851x9,_0xc851x13=mxUtils[_0x221c[275]](this[_0x221c[929]]),_0x221c[278]==_0xc851x13[_0x221c[277]]||null!=this[_0x221c[129]])){this[_0x221c[929]][_0x221c[124]][_0x221c[119]]=this[_0x221c[485]][_0x221c[167]]-this[_0x221c[924]][_0x221c[167]]-2+_0x221c[168]};this[_0x221c[116]][_0x221c[124]][_0x221c[119]]=_0xc851x5;this[_0x221c[116]][_0x221c[124]][_0x221c[117]]=_0xc851x9;null!=this[_0x221c[129]]&&(this[_0x221c[129]][_0x221c[124]][_0x221c[187]]=_0x221c[110]);this[_0x221c[746]]( new mxEventObject(mxEvent.NORMALIZE,_0x221c[763],_0xc851xa))}else {_0xc851x2= !0;this[_0x221c[800]][_0x221c[57]](_0x221c[390],this[_0x221c[917]]);this[_0x221c[800]][_0x221c[57]](_0x221c[924],_0x221c[943]);this[_0x221c[929]][_0x221c[124]][_0x221c[495]]=_0x221c[110];this[_0x221c[798]][_0x221c[124]][_0x221c[187]]=_0x221c[188];_0xc851x3=parseInt(this[_0x221c[485]][_0x221c[124]][_0x221c[361]]);_0xc851x4=parseInt(this[_0x221c[485]][_0x221c[124]][_0x221c[125]]);_0xc851x5=this[_0x221c[116]][_0x221c[124]][_0x221c[119]];_0xc851x9=this[_0x221c[116]][_0x221c[124]][_0x221c[117]];this[_0x221c[485]][_0x221c[124]][_0x221c[361]]=_0x221c[946];this[_0x221c[485]][_0x221c[124]][_0x221c[125]]=_0x221c[946];mxClient[_0x221c[80]]||(this[_0x221c[485]][_0x221c[124]][_0x221c[119]]=document[_0x221c[112]][_0x221c[157]]-2+_0x221c[168],this[_0x221c[485]][_0x221c[124]][_0x221c[117]]=document[_0x221c[112]][_0x221c[159]]-2+_0x221c[168]);this[_0x221c[116]][_0x221c[124]][_0x221c[117]]=document[_0x221c[112]][_0x221c[159]]-2+_0x221c[168];this[_0x221c[116]][_0x221c[124]][_0x221c[119]]=document[_0x221c[112]][_0x221c[157]]-2+_0x221c[168];null!=this[_0x221c[129]]&&(this[_0x221c[129]][_0x221c[124]][_0x221c[187]]=_0x221c[188]);if(!mxClient[_0x221c[80]]){var _0xc851x13=mxUtils[_0x221c[275]](this[_0x221c[929]]);if(_0x221c[278]==_0xc851x13[_0x221c[277]]||null!=this[_0x221c[129]]){this[_0x221c[929]][_0x221c[124]][_0x221c[119]]=this[_0x221c[485]][_0x221c[167]]-this[_0x221c[924]][_0x221c[167]]-2+_0x221c[168]}};this[_0x221c[746]]( new mxEventObject(mxEvent.MAXIMIZE,_0x221c[763],_0xc851xa))};mxEvent[_0x221c[722]](_0xc851xa)}});mxEvent[_0x221c[759]](this[_0x221c[800]],_0xc851xa);mxEvent[_0x221c[169]](this[_0x221c[924]],_0x221c[760],_0xc851xa)};mxWindow[_0x221c[202]][_0x221c[911]]=function(){this[_0x221c[924]][_0x221c[124]][_0x221c[270]]=_0x221c[582];mxEvent[_0x221c[759]](this[_0x221c[924]],mxUtils[_0x221c[885]](this,function(_0xc851x2){var _0xc851x3=mxEvent[_0x221c[731]](_0xc851x2),_0xc851x4=mxEvent[_0x221c[733]](_0xc851x2),_0xc851x5=this[_0x221c[730]](),_0xc851x9=this[_0x221c[732]](),_0xc851xa=mxUtils[_0x221c[885]](this,function(_0xc851x2){var _0xc851xa=mxEvent[_0x221c[731]](_0xc851x2)-_0xc851x3,_0xc851x12=mxEvent[_0x221c[733]](_0xc851x2)-_0xc851x4;this[_0x221c[947]](_0xc851x5+_0xc851xa,_0xc851x9+_0xc851x12);this[_0x221c[746]]( new mxEventObject(mxEvent.MOVE,_0x221c[763],_0xc851x2));mxEvent[_0x221c[722]](_0xc851x2)}),_0xc851x12=mxUtils[_0x221c[885]](this,function(_0xc851x2){mxEvent[_0x221c[938]](document,null,_0xc851xa,_0xc851x12);this[_0x221c[746]]( new mxEventObject(mxEvent.MOVE_END,_0x221c[763],_0xc851x2));mxEvent[_0x221c[722]](_0xc851x2)});mxEvent[_0x221c[759]](document,null,_0xc851xa,_0xc851x12);this[_0x221c[746]]( new mxEventObject(mxEvent.MOVE_START,_0x221c[763],_0xc851x2));mxEvent[_0x221c[722]](_0xc851x2)}))};mxWindow[_0x221c[202]][_0x221c[947]]=function(_0xc851x2,_0xc851x3){this[_0x221c[485]][_0x221c[124]][_0x221c[361]]=_0xc851x2+_0x221c[168];this[_0x221c[485]][_0x221c[124]][_0x221c[125]]=_0xc851x3+_0x221c[168]};mxWindow[_0x221c[202]][_0x221c[730]]=function(){return parseInt(this[_0x221c[485]][_0x221c[124]][_0x221c[361]])};mxWindow[_0x221c[202]][_0x221c[732]]=function(){return parseInt(this[_0x221c[485]][_0x221c[124]][_0x221c[125]])};mxWindow[_0x221c[202]][_0x221c[908]]=function(){this[_0x221c[948]]=document[_0x221c[55]](_0x221c[466]);this[_0x221c[948]][_0x221c[57]](_0x221c[390],this[_0x221c[913]]);this[_0x221c[948]][_0x221c[57]](_0x221c[611],_0x221c[699]);this[_0x221c[948]][_0x221c[57]](_0x221c[924],_0x221c[949]);this[_0x221c[948]][_0x221c[124]][_0x221c[945]]=_0x221c[935];this[_0x221c[948]][_0x221c[124]][_0x221c[270]]=_0x221c[356];this[_0x221c[948]][_0x221c[124]][_0x221c[495]]=_0x221c[130];this[_0x221c[924]][_0x221c[950]](this[_0x221c[948]],this[_0x221c[924]][_0x221c[285]]);mxEvent[_0x221c[759]](this[_0x221c[948]],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[746]]( new mxEventObject(mxEvent.CLOSE,_0x221c[763],_0xc851x2));this[_0x221c[165]]?this[_0x221c[515]]():this[_0x221c[175]](!1);mxEvent[_0x221c[722]](_0xc851x2)}))};mxWindow[_0x221c[202]][_0x221c[951]]=function(_0xc851x2){this[_0x221c[618]]=document[_0x221c[55]](_0x221c[466]);this[_0x221c[618]][_0x221c[57]](_0x221c[390],_0xc851x2);this[_0x221c[618]][_0x221c[57]](_0x221c[611],_0x221c[361]);this[_0x221c[618]][_0x221c[124]][_0x221c[941]]=_0x221c[952];this[_0x221c[618]][_0x221c[124]][_0x221c[945]]=_0x221c[946];this[_0x221c[618]][_0x221c[124]][_0x221c[953]]=_0x221c[954];this[_0x221c[924]][_0x221c[950]](this[_0x221c[618]],this[_0x221c[924]][_0x221c[285]])};mxWindow[_0x221c[202]][_0x221c[164]]=function(_0xc851x2){this[_0x221c[948]][_0x221c[124]][_0x221c[495]]=_0xc851x2?_0x221c[110]:_0x221c[130]};mxWindow[_0x221c[202]][_0x221c[174]]=function(){return null!=this[_0x221c[485]]?_0x221c[188]!=this[_0x221c[485]][_0x221c[124]][_0x221c[187]]:!1};mxWindow[_0x221c[202]][_0x221c[175]]=function(_0xc851x2){null!=this[_0x221c[485]]&&this[_0x221c[174]]()!=_0xc851x2&&(_0xc851x2?this[_0x221c[539]]():this[_0x221c[801]]())};mxWindow[_0x221c[202]][_0x221c[539]]=function(){this[_0x221c[485]][_0x221c[124]][_0x221c[187]]=_0x221c[110];this[_0x221c[790]]();var _0xc851x2=mxUtils[_0x221c[275]](this[_0x221c[929]]);if(!mxClient[_0x221c[80]]&&(_0x221c[278]==_0xc851x2[_0x221c[277]]||null!=this[_0x221c[129]])){this[_0x221c[929]][_0x221c[124]][_0x221c[119]]=this[_0x221c[485]][_0x221c[167]]-this[_0x221c[924]][_0x221c[167]]-2+_0x221c[168]};this[_0x221c[746]]( new mxEventObject(mxEvent.SHOW))};mxWindow[_0x221c[202]][_0x221c[801]]=function(){this[_0x221c[485]][_0x221c[124]][_0x221c[187]]=_0x221c[188];this[_0x221c[746]]( new mxEventObject(mxEvent.HIDE))};mxWindow[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[746]]( new mxEventObject(mxEvent.DESTROY));null!=this[_0x221c[485]]&&(mxEvent[_0x221c[762]](this[_0x221c[485]]),this[_0x221c[485]][_0x221c[265]][_0x221c[266]](this[_0x221c[485]]),this[_0x221c[485]]=null);this[_0x221c[929]]=this[_0x221c[905]]=this[_0x221c[924]]=null};function mxForm(_0xc851x2){this[_0x221c[116]]=document[_0x221c[55]](_0x221c[116]);this[_0x221c[116]][_0x221c[926]]=_0xc851x2;this[_0x221c[112]]=document[_0x221c[55]](_0x221c[120]);this[_0x221c[116]][_0x221c[62]](this[_0x221c[112]])}mxForm[_0x221c[202]][_0x221c[116]]=null;mxForm[_0x221c[202]][_0x221c[112]]= !1;mxForm[_0x221c[202]][_0x221c[955]]=function(){return this[_0x221c[116]]};mxForm[_0x221c[202]][_0x221c[956]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=document[_0x221c[55]](_0x221c[121]),_0xc851x5=document[_0x221c[55]](_0x221c[122]);_0xc851x4[_0x221c[62]](_0xc851x5);var _0xc851x5=document[_0x221c[55]](_0x221c[122]),_0xc851x9=document[_0x221c[55]](_0x221c[172]);mxUtils[_0x221c[53]](_0xc851x9,mxResources[_0x221c[203]](_0x221c[957])||_0x221c[958]);_0xc851x5[_0x221c[62]](_0xc851x9);mxEvent[_0x221c[169]](_0xc851x9,_0x221c[173],function(){_0xc851x2()});_0xc851x9=document[_0x221c[55]](_0x221c[172]);mxUtils[_0x221c[53]](_0xc851x9,mxResources[_0x221c[203]](_0x221c[959])||_0x221c[960]);_0xc851x5[_0x221c[62]](_0xc851x9);mxEvent[_0x221c[169]](_0xc851x9,_0x221c[173],function(){_0xc851x3()});_0xc851x4[_0x221c[62]](_0xc851x5);this[_0x221c[112]][_0x221c[62]](_0xc851x4)};mxForm[_0x221c[202]][_0x221c[961]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=document[_0x221c[55]](_0x221c[962]);_0xc851x4[_0x221c[57]](_0x221c[60],_0x221c[963]);_0xc851x4[_0x221c[131]]=_0xc851x3;return this[_0x221c[964]](_0xc851x2,_0xc851x4)};mxForm[_0x221c[202]][_0x221c[965]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=document[_0x221c[55]](_0x221c[962]);_0xc851x4[_0x221c[57]](_0x221c[60],_0x221c[966]);this[_0x221c[964]](_0xc851x2,_0xc851x4);_0xc851x3&&(_0xc851x4[_0x221c[967]]= !0);return _0xc851x4};mxForm[_0x221c[202]][_0x221c[968]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=document[_0x221c[55]](_0x221c[126]);mxClient[_0x221c[133]]&&_0xc851x4--;_0xc851x5[_0x221c[57]](_0x221c[969],_0xc851x4||2);_0xc851x5[_0x221c[131]]=_0xc851x3;return this[_0x221c[964]](_0xc851x2,_0xc851x5)};mxForm[_0x221c[202]][_0x221c[970]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=document[_0x221c[55]](_0x221c[804]);null!=_0xc851x4&&_0xc851x5[_0x221c[57]](_0x221c[803],_0xc851x4);_0xc851x3&&_0xc851x5[_0x221c[57]](_0x221c[971],_0x221c[128]);return this[_0x221c[964]](_0xc851x2,_0xc851x5)};mxForm[_0x221c[202]][_0x221c[972]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=document[_0x221c[55]](_0x221c[973]);mxUtils[_0x221c[171]](_0xc851x9,_0xc851x3);_0xc851x9[_0x221c[57]](_0x221c[131],_0xc851x4);_0xc851x5&&_0xc851x9[_0x221c[57]](_0x221c[974],_0xc851x5);_0xc851x2[_0x221c[62]](_0xc851x9)};mxForm[_0x221c[202]][_0x221c[964]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=document[_0x221c[55]](_0x221c[121]),_0xc851x5=document[_0x221c[55]](_0x221c[122]);mxUtils[_0x221c[53]](_0xc851x5,_0xc851x2);_0xc851x4[_0x221c[62]](_0xc851x5);_0xc851x5=document[_0x221c[55]](_0x221c[122]);_0xc851x5[_0x221c[62]](_0xc851x3);_0xc851x4[_0x221c[62]](_0xc851x5);this[_0x221c[112]][_0x221c[62]](_0xc851x4);return _0xc851x3};function mxImage(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[390]]=_0xc851x2;this[_0x221c[117]]=_0xc851x3;this[_0x221c[119]]=_0xc851x4}mxImage[_0x221c[202]][_0x221c[390]]=null;mxImage[_0x221c[202]][_0x221c[117]]=null;mxImage[_0x221c[202]][_0x221c[119]]=null;function mxDivResizer(_0xc851x2,_0xc851x3){if(_0x221c[485]==_0xc851x2[_0x221c[301]][_0x221c[216]]()){null==_0xc851x3&&(_0xc851x3=window);this[_0x221c[485]]=_0xc851x2;var _0xc851x4=mxUtils[_0x221c[275]](_0xc851x2);null!=_0xc851x4&&(this[_0x221c[975]]=_0x221c[278]==_0xc851x4[_0x221c[117]],this[_0x221c[976]]=_0x221c[278]==_0xc851x4[_0x221c[119]]);mxEvent[_0x221c[169]](_0xc851x3,_0x221c[129],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[977]]||(this[_0x221c[977]]= !0,this[_0x221c[129]](),this[_0x221c[977]]= !1)}));this[_0x221c[129]]()}}mxDivResizer[_0x221c[202]][_0x221c[975]]= !0;mxDivResizer[_0x221c[202]][_0x221c[976]]= !0;mxDivResizer[_0x221c[202]][_0x221c[977]]= !1;mxDivResizer[_0x221c[202]][_0x221c[129]]=function(){var _0xc851x2=this[_0x221c[978]](),_0xc851x3=this[_0x221c[979]](),_0xc851x4=parseInt(this[_0x221c[485]][_0x221c[124]][_0x221c[361]]),_0xc851x5=parseInt(this[_0x221c[485]][_0x221c[124]][_0x221c[699]]),_0xc851x9=parseInt(this[_0x221c[485]][_0x221c[124]][_0x221c[125]]),_0xc851xa=parseInt(this[_0x221c[485]][_0x221c[124]][_0x221c[553]]);this[_0x221c[975]]&&(!isNaN(_0xc851x4)&&!isNaN(_0xc851x5)&&0<=_0xc851x4&&0<=_0xc851x5&&0<_0xc851x2-_0xc851x5-_0xc851x4)&&(this[_0x221c[485]][_0x221c[124]][_0x221c[117]]=_0xc851x2-_0xc851x5-_0xc851x4+_0x221c[168]);this[_0x221c[976]]&&(!isNaN(_0xc851x9)&&!isNaN(_0xc851xa)&&0<=_0xc851x9&&0<=_0xc851xa&&0<_0xc851x3-_0xc851x9-_0xc851xa)&&(this[_0x221c[485]][_0x221c[124]][_0x221c[119]]=_0xc851x3-_0xc851x9-_0xc851xa+_0x221c[168])};mxDivResizer[_0x221c[202]][_0x221c[978]]=function(){return document[_0x221c[112]][_0x221c[159]]};mxDivResizer[_0x221c[202]][_0x221c[979]]=function(){return document[_0x221c[112]][_0x221c[157]]};function mxDragSource(_0xc851x2,_0xc851x3){this[_0x221c[980]]=_0xc851x2;this[_0x221c[981]]=_0xc851x3;mxEvent[_0x221c[759]](_0xc851x2,mxUtils[_0x221c[885]](this,this[_0x221c[787]]))}mxDragSource[_0x221c[202]][_0x221c[980]]=null;mxDragSource[_0x221c[202]][_0x221c[981]]=null;mxDragSource[_0x221c[202]][_0x221c[559]]=null;mxDragSource[_0x221c[202]][_0x221c[982]]=null;mxDragSource[_0x221c[202]][_0x221c[983]]=null;mxDragSource[_0x221c[202]][_0x221c[984]]= !0;mxDragSource[_0x221c[202]][_0x221c[985]]=null;mxDragSource[_0x221c[202]][_0x221c[986]]=null;mxDragSource[_0x221c[202]][_0x221c[987]]=null;mxDragSource[_0x221c[202]][_0x221c[988]]=null;mxDragSource[_0x221c[202]][_0x221c[989]]=null;mxDragSource[_0x221c[202]][_0x221c[561]]= !0;mxDragSource[_0x221c[202]][_0x221c[990]]= !0;mxDragSource[_0x221c[202]][_0x221c[991]]= !0;mxDragSource[_0x221c[202]][_0x221c[563]]= !0;mxDragSource[_0x221c[202]][_0x221c[992]]=100;mxDragSource[_0x221c[202]][_0x221c[993]]=70;mxDragSource[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxDragSource[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxDragSource[_0x221c[202]][_0x221c[996]]=function(){return this[_0x221c[990]]};mxDragSource[_0x221c[202]][_0x221c[562]]=function(_0xc851x2){this[_0x221c[990]]=_0xc851x2};mxDragSource[_0x221c[202]][_0x221c[997]]=function(){return this[_0x221c[991]]};mxDragSource[_0x221c[202]][_0x221c[998]]=function(_0xc851x2){this[_0x221c[991]]=_0xc851x2};mxDragSource[_0x221c[202]][_0x221c[565]]=function(_0xc851x2){return null};mxDragSource[_0x221c[202]][_0x221c[564]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return _0xc851x2[_0x221c[999]](_0xc851x3,_0xc851x4)};mxDragSource[_0x221c[202]][_0x221c[566]]=function(_0xc851x2){return this[_0x221c[980]][_0x221c[511]](!0)};mxDragSource[_0x221c[202]][_0x221c[567]]=function(_0xc851x2){return null};mxDragSource[_0x221c[202]][_0x221c[787]]=function(_0xc851x2){this[_0x221c[984]]&&(!mxEvent[_0x221c[721]](_0xc851x2)&&null==this[_0x221c[1000]])&&(this[_0x221c[1001]](_0xc851x2),this[_0x221c[1000]]=mxUtils[_0x221c[885]](this,this[_0x221c[788]]),this[_0x221c[1002]]=mxUtils[_0x221c[885]](this,this[_0x221c[789]]),mxEvent[_0x221c[759]](document,null,this[_0x221c[1000]],this[_0x221c[1002]]),mxEvent[_0x221c[722]](_0xc851x2,!0,!1))};mxDragSource[_0x221c[202]][_0x221c[1001]]=function(_0xc851x2){this[_0x221c[982]]=this[_0x221c[566]](_0xc851x2);this[_0x221c[982]][_0x221c[124]][_0x221c[491]]=_0x221c[492];this[_0x221c[982]][_0x221c[124]][_0x221c[931]]=this[_0x221c[992]];mxUtils[_0x221c[254]](this[_0x221c[982]],this[_0x221c[993]])};mxDragSource[_0x221c[202]][_0x221c[1003]]=function(_0xc851x2){null!=this[_0x221c[982]]&&(null!=this[_0x221c[982]][_0x221c[265]]&&this[_0x221c[982]][_0x221c[265]][_0x221c[266]](this[_0x221c[982]]),this[_0x221c[982]]=null)};mxDragSource[_0x221c[202]][_0x221c[1004]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=mxEvent[_0x221c[731]](_0xc851x3),_0xc851x5=mxEvent[_0x221c[733]](_0xc851x3),_0xc851x9=mxUtils[_0x221c[445]](_0xc851x2[_0x221c[526]]),_0xc851xa=mxUtils[_0x221c[444]]();return _0xc851x4>=_0xc851x9[_0x221c[235]]-_0xc851xa[_0x221c[235]]&&_0xc851x5>=_0xc851x9[_0x221c[236]]-_0xc851xa[_0x221c[236]]&&_0xc851x4<=_0xc851x9[_0x221c[235]]-_0xc851xa[_0x221c[235]]+_0xc851x2[_0x221c[526]][_0x221c[359]]&&_0xc851x5<=_0xc851x9[_0x221c[236]]-_0xc851xa[_0x221c[236]]+_0xc851x2[_0x221c[526]][_0x221c[167]]};mxDragSource[_0x221c[202]][_0x221c[788]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[565]](_0xc851x2);null!=_0xc851x3&&!this[_0x221c[1004]](_0xc851x3,_0xc851x2)&&(_0xc851x3=null);_0xc851x3!=this[_0x221c[985]]&&(null!=this[_0x221c[985]]&&this[_0x221c[1005]](this[_0x221c[985]]),this[_0x221c[985]]=_0xc851x3,null!=this[_0x221c[985]]&&this[_0x221c[1006]](this[_0x221c[985]]));null!=this[_0x221c[985]]&&this[_0x221c[1007]](this[_0x221c[985]],_0xc851x2);if(null!=this[_0x221c[982]]&&(null==this[_0x221c[983]]||_0x221c[189]!=this[_0x221c[983]][_0x221c[124]][_0x221c[187]])){var _0xc851x3=mxEvent[_0x221c[731]](_0xc851x2),_0xc851x4=mxEvent[_0x221c[733]](_0xc851x2);null==this[_0x221c[982]][_0x221c[265]]&&document[_0x221c[112]][_0x221c[62]](this[_0x221c[982]]);this[_0x221c[982]][_0x221c[124]][_0x221c[187]]=_0x221c[189];null!=this[_0x221c[559]]&&(_0xc851x3+=this[_0x221c[559]][_0x221c[235]],_0xc851x4+=this[_0x221c[559]][_0x221c[236]]);_0xc851x3+=document[_0x221c[112]][_0x221c[360]]||document[_0x221c[158]][_0x221c[360]];_0xc851x4+=document[_0x221c[112]][_0x221c[190]]||document[_0x221c[158]][_0x221c[190]];this[_0x221c[982]][_0x221c[124]][_0x221c[361]]=_0xc851x3+_0x221c[168];this[_0x221c[982]][_0x221c[124]][_0x221c[125]]=_0xc851x4+_0x221c[168]}else {null!=this[_0x221c[982]]&&(this[_0x221c[982]][_0x221c[124]][_0x221c[187]]=_0x221c[188])};mxEvent[_0x221c[722]](_0xc851x2)};mxDragSource[_0x221c[202]][_0x221c[789]]=function(_0xc851x2){if(null!=this[_0x221c[985]]){if(null!=this[_0x221c[987]]&&(null==this[_0x221c[983]]||_0x221c[188]!=this[_0x221c[983]][_0x221c[124]][_0x221c[187]])){var _0xc851x3=this[_0x221c[985]][_0x221c[441]][_0x221c[255]],_0xc851x4=this[_0x221c[985]][_0x221c[441]][_0x221c[513]];this[_0x221c[1008]](this[_0x221c[985]],_0xc851x2,this[_0x221c[986]],this[_0x221c[987]][_0x221c[235]]/_0xc851x3-_0xc851x4[_0x221c[235]],this[_0x221c[987]][_0x221c[236]]/_0xc851x3-_0xc851x4[_0x221c[236]])};this[_0x221c[1005]](this[_0x221c[985]])};this[_0x221c[1003]](_0xc851x2);mxEvent[_0x221c[938]](document,null,this[_0x221c[1000]],this[_0x221c[1002]]);this[_0x221c[985]]=this[_0x221c[1002]]=this[_0x221c[1000]]=null;mxEvent[_0x221c[722]](_0xc851x2)};mxDragSource[_0x221c[202]][_0x221c[1006]]=function(_0xc851x2){_0xc851x2[_0x221c[1009]]= !0;this[_0x221c[983]]=this[_0x221c[567]](_0xc851x2);this[_0x221c[996]]()&&null!=this[_0x221c[983]]&&(this[_0x221c[988]]= new mxGuide(_0xc851x2,_0xc851x2[_0x221c[1011]][_0x221c[1010]]()));this[_0x221c[563]]&&(this[_0x221c[989]]= new mxCellHighlight(_0xc851x2,mxConstants.DROP_TARGET_COLOR))};mxDragSource[_0x221c[202]][_0x221c[1005]]=function(_0xc851x2){this[_0x221c[987]]=this[_0x221c[986]]=null;_0xc851x2[_0x221c[1009]]= !1;null!=this[_0x221c[983]]&&(null!=this[_0x221c[983]][_0x221c[265]]&&this[_0x221c[983]][_0x221c[265]][_0x221c[266]](this[_0x221c[983]]),this[_0x221c[983]]=null);null!=this[_0x221c[988]]&&(this[_0x221c[988]][_0x221c[515]](),this[_0x221c[988]]=null);null!=this[_0x221c[989]]&&(this[_0x221c[989]][_0x221c[515]](),this[_0x221c[989]]=null)};mxDragSource[_0x221c[202]][_0x221c[1007]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=mxUtils[_0x221c[445]](_0xc851x2[_0x221c[526]]),_0xc851x5=mxUtils[_0x221c[444]](_0xc851x2[_0x221c[526]]),_0xc851x9=mxEvent[_0x221c[731]](_0xc851x3)-_0xc851x4[_0x221c[235]]+_0xc851x5[_0x221c[235]],_0xc851x4=mxEvent[_0x221c[733]](_0xc851x3)-_0xc851x4[_0x221c[236]]+_0xc851x5[_0x221c[236]];_0xc851x2[_0x221c[1012]]&&(null==this[_0x221c[561]]||this[_0x221c[561]])&&_0xc851x2[_0x221c[1014]](_0xc851x9,_0xc851x4,_0xc851x2[_0x221c[1013]]);null!=this[_0x221c[989]]&&_0xc851x2[_0x221c[1015]]()&&(this[_0x221c[986]]=this[_0x221c[564]](_0xc851x2,_0xc851x9,_0xc851x4),_0xc851x5=_0xc851x2[_0x221c[249]]()[_0x221c[248]](this[_0x221c[986]]),this[_0x221c[989]][_0x221c[1016]](_0xc851x5));if(null!=this[_0x221c[983]]){null==this[_0x221c[983]][_0x221c[265]]&&(_0xc851x2[_0x221c[526]][_0x221c[62]](this[_0x221c[983]]),this[_0x221c[983]][_0x221c[124]][_0x221c[931]]=_0x221c[1017],this[_0x221c[983]][_0x221c[124]][_0x221c[491]]=_0x221c[492]);var _0xc851x5=this[_0x221c[997]]()&&_0xc851x2[_0x221c[1018]](_0xc851x3),_0xc851xa=!0;if(null!=this[_0x221c[988]]&&this[_0x221c[988]][_0x221c[1019]](_0xc851x3)){var _0xc851xa=parseInt(this[_0x221c[983]][_0x221c[124]][_0x221c[117]]),_0xc851x12=parseInt(this[_0x221c[983]][_0x221c[124]][_0x221c[119]]),_0xc851xa= new mxRectangle(0,0,_0xc851xa,_0xc851x12),_0xc851x4= new mxPoint(_0xc851x9,_0xc851x4),_0xc851x4=this[_0x221c[988]][_0x221c[582]](_0xc851xa,_0xc851x4,_0xc851x5),_0xc851xa=!1,_0xc851x9=_0xc851x4[_0x221c[235]],_0xc851x4=_0xc851x4[_0x221c[236]]}else {if(_0xc851x5){var _0xc851x5=_0xc851x2[_0x221c[441]][_0x221c[255]],_0xc851x12=_0xc851x2[_0x221c[441]][_0x221c[513]],_0xc851x13=_0xc851x2[_0x221c[1020]]/2,_0xc851x9=(_0xc851x2[_0x221c[1021]](_0xc851x9/_0xc851x5-_0xc851x12[_0x221c[235]]-_0xc851x13)+_0xc851x12[_0x221c[235]])*_0xc851x5,_0xc851x4=(_0xc851x2[_0x221c[1021]](_0xc851x4/_0xc851x5-_0xc851x12[_0x221c[236]]-_0xc851x13)+_0xc851x12[_0x221c[236]])*_0xc851x5}};null!=this[_0x221c[988]]&&_0xc851xa&&this[_0x221c[988]][_0x221c[801]]();null!=this[_0x221c[1022]]&&(_0xc851x9+=this[_0x221c[1022]][_0x221c[235]],_0xc851x4+=this[_0x221c[1022]][_0x221c[236]]);this[_0x221c[983]][_0x221c[124]][_0x221c[361]]=Math[_0x221c[488]](_0xc851x9)+_0x221c[168];this[_0x221c[983]][_0x221c[124]][_0x221c[125]]=Math[_0x221c[488]](_0xc851x4)+_0x221c[168];this[_0x221c[983]][_0x221c[124]][_0x221c[187]]=_0x221c[189]};this[_0x221c[987]]= new mxPoint(_0xc851x9,_0xc851x4)};mxDragSource[_0x221c[202]][_0x221c[1008]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){this[_0x221c[981]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9);_0xc851x2[_0x221c[526]][_0x221c[393]]()};function mxToolbar(_0xc851x2){this[_0x221c[526]]=_0xc851x2}mxToolbar[_0x221c[202]]= new mxEventSource;mxToolbar[_0x221c[202]][_0x221c[196]]=mxToolbar;mxToolbar[_0x221c[202]][_0x221c[526]]=null;mxToolbar[_0x221c[202]][_0x221c[984]]= !0;mxToolbar[_0x221c[202]][_0x221c[1023]]= !1;mxToolbar[_0x221c[202]][_0x221c[1024]]= !0;mxToolbar[_0x221c[202]][_0x221c[1025]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){var _0xc851x12=document[_0x221c[55]](null!=_0xc851x3?_0x221c[466]:_0x221c[172]),_0xc851x13=_0xc851x9||(null!=_0xc851xa?_0x221c[1026]:_0x221c[1027]);_0xc851x12[_0x221c[926]]=_0xc851x13;_0xc851x12[_0x221c[57]](_0x221c[390],_0xc851x3);null!=_0xc851x2&&(null!=_0xc851x3?_0xc851x12[_0x221c[57]](_0x221c[924],_0xc851x2):mxUtils[_0x221c[53]](_0xc851x12,_0xc851x2));this[_0x221c[526]][_0x221c[62]](_0xc851x12);null!=_0xc851x4&&(mxEvent[_0x221c[169]](_0xc851x12,_0x221c[173],_0xc851x4),mxClient[_0x221c[754]]&&mxEvent[_0x221c[169]](_0xc851x12,_0x221c[757],_0xc851x4));_0xc851x2=mxUtils[_0x221c[885]](this,function(_0xc851x2){null!=_0xc851x5?_0xc851x12[_0x221c[57]](_0x221c[390],_0xc851x3):_0xc851x12[_0x221c[124]][_0x221c[1028]]=_0x221c[110]});mxEvent[_0x221c[759]](_0xc851x12,mxUtils[_0x221c[885]](this,function(_0xc851x2){null!=_0xc851x5?_0xc851x12[_0x221c[57]](_0x221c[390],_0xc851x5):_0xc851x12[_0x221c[124]][_0x221c[1028]]=_0x221c[579];if(null!=_0xc851xa){null==this[_0x221c[1029]]&&(this[_0x221c[1029]]= new mxPopupMenu,this[_0x221c[1029]][_0x221c[176]]());var _0xc851x3=this[_0x221c[1030]];this[_0x221c[1029]][_0x221c[1031]]()&&this[_0x221c[1029]][_0x221c[1032]]();_0xc851x3!=_0xc851x12&&(this[_0x221c[1030]]=_0xc851x12,this[_0x221c[1029]][_0x221c[1033]]=_0xc851xa,_0xc851x3= new mxPoint(_0xc851x12[_0x221c[358]],_0xc851x12[_0x221c[362]]+_0xc851x12[_0x221c[167]]),this[_0x221c[1029]][_0x221c[152]](_0xc851x3[_0x221c[235]],_0xc851x3[_0x221c[236]],null,_0xc851x2),this[_0x221c[1029]][_0x221c[1031]]()&&(_0xc851x12[_0x221c[926]]=_0xc851x13+_0x221c[1034],this[_0x221c[1029]][_0x221c[1032]]=function(){mxPopupMenu[_0x221c[202]][_0x221c[1032]][_0x221c[183]](this);_0xc851x12[_0x221c[926]]=_0xc851x13;this[_0x221c[1030]]=null}))}}),null,_0xc851x2);mxEvent[_0x221c[169]](_0xc851x12,_0x221c[1035],_0xc851x2);return _0xc851x12};mxToolbar[_0x221c[202]][_0x221c[970]]=function(_0xc851x2){var _0xc851x3=document[_0x221c[55]](_0x221c[485]);_0xc851x3[_0x221c[124]][_0x221c[495]]=_0x221c[497];_0xc851x3[_0x221c[926]]=_0x221c[1036];var _0xc851x4=document[_0x221c[55]](_0x221c[804]);_0xc851x4[_0x221c[926]]=_0xc851x2||_0x221c[1037];_0xc851x3[_0x221c[62]](_0xc851x4);this[_0x221c[526]][_0x221c[62]](_0xc851x3);return _0xc851x4};mxToolbar[_0x221c[202]][_0x221c[1038]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=document[_0x221c[55]](_0x221c[804]);_0xc851x4[_0x221c[926]]=_0xc851x3||_0x221c[1037];this[_0x221c[972]](_0xc851x4,_0xc851x2,null);mxEvent[_0x221c[169]](_0xc851x4,_0x221c[826],function(_0xc851x2){var _0xc851x3=_0xc851x4[_0x221c[1040]][_0xc851x4[_0x221c[1039]]];_0xc851x4[_0x221c[1039]]=0;null!=_0xc851x3[_0x221c[1041]]&&_0xc851x3[_0x221c[1041]](_0xc851x2)});this[_0x221c[526]][_0x221c[62]](_0xc851x4);return _0xc851x4};mxToolbar[_0x221c[202]][_0x221c[972]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=document[_0x221c[55]](_0x221c[973]);mxUtils[_0x221c[171]](_0xc851x5,_0xc851x3);_0x221c[279]== typeof _0xc851x4?_0xc851x5[_0x221c[1041]]=_0xc851x4:_0xc851x5[_0x221c[57]](_0x221c[131],_0xc851x4);_0xc851x2[_0x221c[62]](_0xc851x5);return _0xc851x5};mxToolbar[_0x221c[202]][_0x221c[1042]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=document[_0x221c[55]](_0x221c[466]);_0xc851xa[_0x221c[1043]]=_0xc851x9||_0x221c[1026];_0xc851xa[_0x221c[926]]=_0xc851xa[_0x221c[1043]];_0xc851xa[_0x221c[57]](_0x221c[390],_0xc851x3);_0xc851xa[_0x221c[1044]]=_0xc851x5;null!=_0xc851x2&&_0xc851xa[_0x221c[57]](_0x221c[924],_0xc851x2);mxEvent[_0x221c[169]](_0xc851xa,_0x221c[173],mxUtils[_0x221c[885]](this,function(_0xc851x2){_0xc851x2=this[_0x221c[1045]][_0x221c[1044]];null!=_0xc851x2?(this[_0x221c[1045]][_0x221c[1044]]=this[_0x221c[1045]][_0x221c[284]](_0x221c[390]),this[_0x221c[1045]][_0x221c[57]](_0x221c[390],_0xc851x2)):this[_0x221c[1045]][_0x221c[926]]=this[_0x221c[1045]][_0x221c[1043]];this[_0x221c[1024]]&&(this[_0x221c[1046]]=_0xc851xa);this[_0x221c[1045]]=_0xc851xa;_0xc851x2=_0xc851xa[_0x221c[1044]];null!=_0xc851x2?(_0xc851xa[_0x221c[1044]]=_0xc851xa[_0x221c[284]](_0x221c[390]),_0xc851xa[_0x221c[57]](_0x221c[390],_0xc851x2)):_0xc851xa[_0x221c[926]]=_0xc851xa[_0x221c[1043]]+_0x221c[1034];this[_0x221c[746]]( new mxEventObject(mxEvent.SELECT));_0xc851x4()}));this[_0x221c[526]][_0x221c[62]](_0xc851xa);null==this[_0x221c[1046]]&&(this[_0x221c[1046]]=_0xc851xa,this[_0x221c[1047]](_0xc851xa),_0xc851x4());return _0xc851xa};mxToolbar[_0x221c[202]][_0x221c[1048]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851xa=null!=_0xc851xa?_0xc851xa:!0;var _0xc851x12=document[_0x221c[55]](null!=_0xc851x3?_0x221c[466]:_0x221c[172]);_0xc851x12[_0x221c[1043]]=_0xc851x9||_0x221c[1026];_0xc851x12[_0x221c[926]]=_0xc851x12[_0x221c[1043]];_0xc851x12[_0x221c[57]](_0x221c[390],_0xc851x3);_0xc851x12[_0x221c[1044]]=_0xc851x5;null!=_0xc851x2&&_0xc851x12[_0x221c[57]](_0x221c[924],_0xc851x2);this[_0x221c[984]]&&_0xc851xa&&(mxEvent[_0x221c[169]](_0xc851x12,_0x221c[173],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[1047]](_0xc851x12,_0xc851x4);this[_0x221c[1023]]= !1})),mxEvent[_0x221c[169]](_0xc851x12,_0x221c[760],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[1047]](_0xc851x12,_0xc851x4);this[_0x221c[1023]]= !0})),null==this[_0x221c[1046]]&&(this[_0x221c[1046]]=_0xc851x12,this[_0x221c[1049]]=_0xc851x4,this[_0x221c[1047]](_0xc851x12,_0xc851x4)));this[_0x221c[526]][_0x221c[62]](_0xc851x12);return _0xc851x12};mxToolbar[_0x221c[202]][_0x221c[1047]]=function(_0xc851x2,_0xc851x3){if(this[_0x221c[1045]]!=_0xc851x2){if(null!=this[_0x221c[1045]]){var _0xc851x4=this[_0x221c[1045]][_0x221c[1044]];null!=_0xc851x4?(this[_0x221c[1045]][_0x221c[1044]]=this[_0x221c[1045]][_0x221c[284]](_0x221c[390]),this[_0x221c[1045]][_0x221c[57]](_0x221c[390],_0xc851x4)):this[_0x221c[1045]][_0x221c[926]]=this[_0x221c[1045]][_0x221c[1043]]};this[_0x221c[1045]]=_0xc851x2;_0xc851x4=this[_0x221c[1045]][_0x221c[1044]];null!=_0xc851x4?(this[_0x221c[1045]][_0x221c[1044]]=this[_0x221c[1045]][_0x221c[284]](_0x221c[390]),this[_0x221c[1045]][_0x221c[57]](_0x221c[390],_0xc851x4)):this[_0x221c[1045]][_0x221c[926]]=this[_0x221c[1045]][_0x221c[1043]]+_0x221c[1034];this[_0x221c[746]]( new mxEventObject(mxEvent.SELECT,_0x221c[279],_0xc851x3))}};mxToolbar[_0x221c[202]][_0x221c[1050]]=function(_0xc851x2){(_0xc851x2||!this[_0x221c[1023]])&&this[_0x221c[1045]]!=this[_0x221c[1046]]&&this[_0x221c[1047]](this[_0x221c[1046]],this[_0x221c[1049]])};mxToolbar[_0x221c[202]][_0x221c[1051]]=function(_0xc851x2){return this[_0x221c[1025]](null,_0xc851x2,null)};mxToolbar[_0x221c[202]][_0x221c[1052]]=function(){mxUtils[_0x221c[345]](this[_0x221c[526]])};mxToolbar[_0x221c[202]][_0x221c[1053]]=function(){var _0xc851x2=document[_0x221c[55]](_0x221c[1054]);_0xc851x2[_0x221c[124]][_0x221c[941]]=_0x221c[1055];_0xc851x2[_0x221c[57]](_0x221c[803],_0x221c[500]);this[_0x221c[526]][_0x221c[62]](_0xc851x2)};mxToolbar[_0x221c[202]][_0x221c[515]]=function(){mxEvent[_0x221c[762]](this[_0x221c[526]]);this[_0x221c[1045]]=this[_0x221c[1049]]=this[_0x221c[1046]]=this[_0x221c[526]]=null;null!=this[_0x221c[1029]]&&this[_0x221c[1029]][_0x221c[515]]()};function mxSession(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[251]]=_0xc851x2;this[_0x221c[1056]]=_0xc851x3;this[_0x221c[1057]]=_0xc851x4;this[_0x221c[1058]]=_0xc851x5;null!=_0xc851x2&&(this[_0x221c[1059]]= new mxCodec,this[_0x221c[1059]][_0x221c[1060]]=function(_0xc851x3){return _0xc851x2[_0x221c[736]](_0xc851x3)});_0xc851x2[_0x221c[169]](mxEvent.NOTIFY,mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x3[_0x221c[720]](_0x221c[1061]);(null!=_0xc851x4&&this[_0x221c[143]]||this[_0x221c[1062]]&&!this[_0x221c[1063]])&&this[_0x221c[827]](_0x221c[1064]+this[_0x221c[1067]](_0xc851x4[_0x221c[1065]],_0xc851x4[_0x221c[1066]])+_0x221c[1068])}))}mxSession[_0x221c[202]]= new mxEventSource;mxSession[_0x221c[202]][_0x221c[196]]=mxSession;mxSession[_0x221c[202]][_0x221c[251]]=null;mxSession[_0x221c[202]][_0x221c[1056]]=null;mxSession[_0x221c[202]][_0x221c[1057]]=null;mxSession[_0x221c[202]][_0x221c[1058]]=null;mxSession[_0x221c[202]][_0x221c[1059]]=null;mxSession[_0x221c[202]][_0x221c[1069]]=_0x221c[336];mxSession[_0x221c[202]][_0x221c[1070]]= !0;mxSession[_0x221c[202]][_0x221c[1071]]= !0;mxSession[_0x221c[202]][_0x221c[1072]]=0;mxSession[_0x221c[202]][_0x221c[1073]]=0;mxSession[_0x221c[202]][_0x221c[143]]= !1;mxSession[_0x221c[202]][_0x221c[1062]]= !1;mxSession[_0x221c[202]][_0x221c[1063]]= !1;mxSession[_0x221c[202]][_0x221c[1074]]= !1;mxSession[_0x221c[202]][_0x221c[861]]=function(){this[_0x221c[143]]?(this[_0x221c[1062]]= !0,this[_0x221c[746]]( new mxEventObject(mxEvent.CONNECT))):this[_0x221c[1062]]||this[_0x221c[203]](this[_0x221c[1056]],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[1062]]= !0;this[_0x221c[746]]( new mxEventObject(mxEvent.CONNECT));this[_0x221c[1075]]()}))};mxSession[_0x221c[202]][_0x221c[809]]=function(){this[_0x221c[1062]]&&!this[_0x221c[1063]]&&(this[_0x221c[1063]]= !0,this[_0x221c[746]]( new mxEventObject(mxEvent.SUSPEND)))};mxSession[_0x221c[202]][_0x221c[810]]=function(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[1062]]&&this[_0x221c[1063]]&&(this[_0x221c[1063]]= !1,this[_0x221c[746]]( new mxEventObject(mxEvent.RESUME)),this[_0x221c[1074]]||this[_0x221c[1075]]())};mxSession[_0x221c[202]][_0x221c[1076]]=function(_0xc851x2){this[_0x221c[1062]]&&(this[_0x221c[1062]]= !1);this[_0x221c[746]]( new mxEventObject(mxEvent.DISCONNECT,_0x221c[1077],_0xc851x2))};mxSession[_0x221c[202]][_0x221c[1075]]=function(){this[_0x221c[1062]]&&!this[_0x221c[1063]]&&null!=this[_0x221c[1057]]?(this[_0x221c[1074]]= !0,this[_0x221c[203]](this[_0x221c[1057]],mxUtils[_0x221c[885]](this,function(){this[_0x221c[1075]]()}))):this[_0x221c[1074]]= !1};mxSession[_0x221c[202]][_0x221c[827]]=function(_0xc851x2,_0xc851x3,_0xc851x4){null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]&&(null!=this[_0x221c[1058]]&&(this[_0x221c[143]]?(mxLog[_0x221c[539]](),mxLog[_0x221c[143]](_0x221c[1078]+this[_0x221c[1058]]+_0x221c[1079]+_0xc851x2)):(_0xc851x2=_0x221c[1080]+_0xc851x2+_0x221c[1081],this[_0x221c[1070]]&&(_0xc851x2=encodeURIComponent(_0xc851x2)),mxUtils[_0x221c[814]](this[_0x221c[1058]],_0x221c[1082]+_0xc851x2,_0xc851x3,_0xc851x4))),this[_0x221c[1072]]+=_0xc851x2[_0x221c[67]],this[_0x221c[746]]( new mxEventObject(mxEvent.NOTIFY,_0x221c[863],this[_0x221c[1058]],_0x221c[338],_0xc851x2)))};mxSession[_0x221c[202]][_0x221c[203]]=function(_0xc851x2,_0xc851x3,_0xc851x4){if(_0x221c[82]!= typeof mxUtils){var _0xc851x5=mxUtils[_0x221c[885]](this,function(_0xc851x2){null!=_0xc851x4?_0xc851x4(_0xc851x2):this[_0x221c[1076]](_0xc851x2)});mxUtils[_0x221c[203]](_0xc851x2,mxUtils[_0x221c[885]](this,function(_0xc851x4){if(_0x221c[82]!= typeof mxUtils){if(_0xc851x4[_0x221c[220]]()&&404!=_0xc851x4[_0x221c[878]]()){if(this[_0x221c[1073]]+=_0xc851x4[_0x221c[221]]()[_0x221c[67]],this[_0x221c[746]]( new mxEventObject(mxEvent.GET,_0x221c[863],_0xc851x2,_0x221c[870],_0xc851x4)),this[_0x221c[1083]](_0xc851x4)){if(0<_0xc851x4[_0x221c[221]]()[_0x221c[67]]){var _0xc851xa=_0xc851x4[_0x221c[874]]();null==_0xc851xa?_0xc851x5(_0x221c[1084]+_0xc851x4[_0x221c[221]]()):this[_0x221c[806]](_0xc851xa)};null!=_0xc851x3&&_0xc851x3(_0xc851x4)}}else {_0xc851x5(_0x221c[1085])}}}),function(_0xc851x2){_0xc851x5(_0x221c[1086])})}};mxSession[_0x221c[202]][_0x221c[1083]]=function(_0xc851x2){return 0>_0xc851x2[_0x221c[221]]()[_0x221c[2]](_0x221c[1087])};mxSession[_0x221c[202]][_0x221c[1067]]=function(_0xc851x2,_0xc851x3){for(var _0xc851x4=_0x221c[110],_0xc851x5=_0xc851x3?-1:1,_0xc851x9=_0xc851x3?_0xc851x2[_0x221c[67]]-1:0;0<=_0xc851x9&&_0xc851x9<_0xc851x2[_0x221c[67]];_0xc851x9+=_0xc851x5){var _0xc851xa=this[_0x221c[1059]][_0x221c[514]](_0xc851x2[_0xc851x9]),_0xc851x4=_0xc851x4+mxUtils[_0x221c[875]](_0xc851xa,this[_0x221c[1069]])};return _0xc851x4};mxSession[_0x221c[202]][_0x221c[806]]=function(_0xc851x2){if(null!=_0xc851x2&&_0xc851x2[_0x221c[288]]==mxConstants[_0x221c[289]]){var _0xc851x3=_0xc851x2[_0x221c[284]](_0x221c[1088]);null!=_0xc851x3&&(this[_0x221c[251]][_0x221c[1089]]=_0xc851x3+_0x221c[213]);for(_0xc851x3=_0xc851x2[_0x221c[285]];null!=_0xc851x3;){var _0xc851x4=_0xc851x3[_0x221c[301]][_0x221c[216]]();_0x221c[724]==_0xc851x4?this[_0x221c[1090]](_0xc851x3):_0x221c[1091]==_0xc851x4&&this[_0x221c[1092]](_0xc851x3);_0xc851x3=_0xc851x3[_0x221c[287]]};this[_0x221c[746]]( new mxEventObject(mxEvent.RECEIVE,_0x221c[252],_0xc851x2))}};mxSession[_0x221c[202]][_0x221c[1090]]=function(_0xc851x2){( new mxCodec(_0xc851x2[_0x221c[295]]))[_0x221c[1093]](_0xc851x2[_0x221c[285]],this[_0x221c[251]])};mxSession[_0x221c[202]][_0x221c[1092]]=function(_0xc851x2){for(_0xc851x2=_0xc851x2[_0x221c[285]];null!=_0xc851x2;){_0x221c[1061]==_0xc851x2[_0x221c[301]]&&this[_0x221c[1094]](_0xc851x2),_0xc851x2=_0xc851x2[_0x221c[287]]}};mxSession[_0x221c[202]][_0x221c[1094]]=function(_0xc851x2){_0xc851x2=this[_0x221c[1095]](_0xc851x2);if(0<_0xc851x2[_0x221c[67]]){var _0xc851x3=this[_0x221c[1096]](_0xc851x2);this[_0x221c[251]][_0x221c[746]]( new mxEventObject(mxEvent.CHANGE,_0x221c[1061],_0xc851x3,_0x221c[1065],_0xc851x2));this[_0x221c[251]][_0x221c[746]]( new mxEventObject(mxEvent.UNDO,_0x221c[1061],_0xc851x3));this[_0x221c[746]]( new mxEventObject(mxEvent.FIRED,_0x221c[1061],_0xc851x3))}};mxSession[_0x221c[202]][_0x221c[1096]]=function(_0xc851x2){var _0xc851x3= new mxUndoableEdit(this[_0x221c[251]],this[_0x221c[1071]]);_0xc851x3[_0x221c[1065]]=_0xc851x2;_0xc851x3[_0x221c[827]]=function(){_0xc851x3[_0x221c[1097]][_0x221c[746]]( new mxEventObject(mxEvent.CHANGE,_0x221c[1061],_0xc851x3,_0x221c[1065],_0xc851x3[_0x221c[1065]]));_0xc851x3[_0x221c[1097]][_0x221c[746]]( new mxEventObject(mxEvent.NOTIFY,_0x221c[1061],_0xc851x3,_0x221c[1065],_0xc851x3[_0x221c[1065]]))};return _0xc851x3};mxSession[_0x221c[202]][_0x221c[1095]]=function(_0xc851x2){this[_0x221c[1059]][_0x221c[395]]=_0xc851x2[_0x221c[295]];var _0xc851x3=[];for(_0xc851x2=_0xc851x2[_0x221c[285]];null!=_0xc851x2;){var _0xc851x4=this[_0x221c[1098]](_0xc851x2);null!=_0xc851x4&&_0xc851x3[_0x221c[207]](_0xc851x4);_0xc851x2=_0xc851x2[_0x221c[287]]};return _0xc851x3};mxSession[_0x221c[202]][_0x221c[1098]]=function(_0xc851x2){var _0xc851x3=null;_0xc851x2[_0x221c[288]]==mxConstants[_0x221c[289]]&&(_0xc851x3=_0x221c[1099]==_0xc851x2[_0x221c[301]]?( new mxCodec(_0xc851x2[_0x221c[295]]))[_0x221c[1093]](_0xc851x2):this[_0x221c[1059]][_0x221c[1093]](_0xc851x2),null!=_0xc851x3&&(_0xc851x3[_0x221c[251]]=this[_0x221c[251]],_0xc851x3[_0x221c[350]](),_0x221c[1100]==_0xc851x2[_0x221c[301]]&&null==_0xc851x3[_0x221c[1101]]&&this[_0x221c[1102]](_0xc851x3[_0x221c[247]])));return _0xc851x3};mxSession[_0x221c[202]][_0x221c[1102]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1059]][_0x221c[1104]](_0xc851x2[_0x221c[1103]](),_0xc851x2);for(var _0xc851x4=this[_0x221c[251]][_0x221c[262]](_0xc851x2),_0xc851x5=0;_0xc851x5<_0xc851x4;_0xc851x5++){this[_0x221c[1102]](this[_0x221c[251]][_0x221c[263]](_0xc851x2,_0xc851x5))}};function mxUndoableEdit(_0xc851x2,_0xc851x3){this[_0x221c[1097]]=_0xc851x2;this[_0x221c[1065]]=[];this[_0x221c[1105]]=null!=_0xc851x3?_0xc851x3:!0}mxUndoableEdit[_0x221c[202]][_0x221c[1097]]=null;mxUndoableEdit[_0x221c[202]][_0x221c[1065]]=null;mxUndoableEdit[_0x221c[202]][_0x221c[1105]]=null;mxUndoableEdit[_0x221c[202]][_0x221c[1066]]= !1;mxUndoableEdit[_0x221c[202]][_0x221c[1106]]= !1;mxUndoableEdit[_0x221c[202]][_0x221c[1107]]=function(){return 0==this[_0x221c[1065]][_0x221c[67]]};mxUndoableEdit[_0x221c[202]][_0x221c[1108]]=function(){return this[_0x221c[1105]]};mxUndoableEdit[_0x221c[202]][_0x221c[99]]=function(_0xc851x2){this[_0x221c[1065]][_0x221c[207]](_0xc851x2)};mxUndoableEdit[_0x221c[202]][_0x221c[827]]=function(){};mxUndoableEdit[_0x221c[202]][_0x221c[1109]]=function(){};mxUndoableEdit[_0x221c[202]][_0x221c[824]]=function(){if(!this[_0x221c[1066]]){this[_0x221c[1097]][_0x221c[746]]( new mxEventObject(mxEvent.START_EDIT));for(var _0xc851x2=this[_0x221c[1065]][_0x221c[67]]-1;0<=_0xc851x2;_0xc851x2--){var _0xc851x3=this[_0x221c[1065]][_0xc851x2];null!=_0xc851x3[_0x221c[350]]?_0xc851x3[_0x221c[350]]():null!=_0xc851x3[_0x221c[824]]&&_0xc851x3[_0x221c[824]]();this[_0x221c[1097]][_0x221c[746]]( new mxEventObject(mxEvent.EXECUTED,_0x221c[826],_0xc851x3))};this[_0x221c[1066]]= !0;this[_0x221c[1106]]= !1;this[_0x221c[1097]][_0x221c[746]]( new mxEventObject(mxEvent.END_EDIT))};this[_0x221c[827]]()};mxUndoableEdit[_0x221c[202]][_0x221c[825]]=function(){if(!this[_0x221c[1106]]){this[_0x221c[1097]][_0x221c[746]]( new mxEventObject(mxEvent.START_EDIT));for(var _0xc851x2=this[_0x221c[1065]][_0x221c[67]],_0xc851x3=0;_0xc851x3<_0xc851x2;_0xc851x3++){var _0xc851x4=this[_0x221c[1065]][_0xc851x3];null!=_0xc851x4[_0x221c[350]]?_0xc851x4[_0x221c[350]]():null!=_0xc851x4[_0x221c[825]]&&_0xc851x4[_0x221c[825]]();this[_0x221c[1097]][_0x221c[746]]( new mxEventObject(mxEvent.EXECUTED,_0x221c[826],_0xc851x4))};this[_0x221c[1066]]= !1;this[_0x221c[1106]]= !0;this[_0x221c[1097]][_0x221c[746]]( new mxEventObject(mxEvent.END_EDIT))};this[_0x221c[827]]()};function mxUndoManager(_0xc851x2){this[_0x221c[803]]=null!=_0xc851x2?_0xc851x2:100;this[_0x221c[200]]()}mxUndoManager[_0x221c[202]]= new mxEventSource;mxUndoManager[_0x221c[202]][_0x221c[196]]=mxUndoManager;mxUndoManager[_0x221c[202]][_0x221c[803]]=null;mxUndoManager[_0x221c[202]][_0x221c[1110]]=null;mxUndoManager[_0x221c[202]][_0x221c[1111]]=0;mxUndoManager[_0x221c[202]][_0x221c[1107]]=function(){return 0==this[_0x221c[1110]][_0x221c[67]]};mxUndoManager[_0x221c[202]][_0x221c[200]]=function(){this[_0x221c[1110]]=[];this[_0x221c[1111]]=0;this[_0x221c[746]]( new mxEventObject(mxEvent.CLEAR))};mxUndoManager[_0x221c[202]][_0x221c[1112]]=function(){return 0<this[_0x221c[1111]]};mxUndoManager[_0x221c[202]][_0x221c[824]]=function(){for(;0<this[_0x221c[1111]];){var _0xc851x2=this[_0x221c[1110]][--this[_0x221c[1111]]];_0xc851x2[_0x221c[824]]();if(_0xc851x2[_0x221c[1108]]()){this[_0x221c[746]]( new mxEventObject(mxEvent.UNDO,_0x221c[1061],_0xc851x2));break}}};mxUndoManager[_0x221c[202]][_0x221c[1113]]=function(){return this[_0x221c[1111]]<this[_0x221c[1110]][_0x221c[67]]};mxUndoManager[_0x221c[202]][_0x221c[825]]=function(){for(var _0xc851x2=this[_0x221c[1110]][_0x221c[67]];this[_0x221c[1111]]<_0xc851x2;){var _0xc851x3=this[_0x221c[1110]][this[_0x221c[1111]]++];_0xc851x3[_0x221c[825]]();if(_0xc851x3[_0x221c[1108]]()){this[_0x221c[746]]( new mxEventObject(mxEvent.REDO,_0x221c[1061],_0xc851x3));break}}};mxUndoManager[_0x221c[202]][_0x221c[1114]]=function(_0xc851x2){this[_0x221c[330]]();0<this[_0x221c[803]]&&this[_0x221c[803]]==this[_0x221c[1110]][_0x221c[67]]&&this[_0x221c[1110]][_0x221c[1115]]();this[_0x221c[1110]][_0x221c[207]](_0xc851x2);this[_0x221c[1111]]=this[_0x221c[1110]][_0x221c[67]];this[_0x221c[746]]( new mxEventObject(mxEvent.ADD,_0x221c[1061],_0xc851x2))};mxUndoManager[_0x221c[202]][_0x221c[330]]=function(){if(this[_0x221c[1110]][_0x221c[67]]>this[_0x221c[1111]]){for(var _0xc851x2=this[_0x221c[1110]][_0x221c[300]](this[_0x221c[1111]],this[_0x221c[1110]][_0x221c[67]]-this[_0x221c[1111]]),_0xc851x3=0;_0xc851x3<_0xc851x2[_0x221c[67]];_0xc851x3++){_0xc851x2[_0xc851x3][_0x221c[1109]]()}}};var mxUrlConverter=function(_0xc851x2){var _0xc851x3=!0,_0xc851x4=null,_0xc851x5=null;return {isEnabled:function(){return _0xc851x3},setEnabled:function(_0xc851x2){_0xc851x3=_0xc851x2},getBaseUrl:function(){return _0xc851x4},setBaseUrl:function(_0xc851x2){_0xc851x4=_0xc851x2},getBaseDomain:function(){return _0xc851x4},setBaseDomain:function(_0xc851x2){_0xc851x4=_0xc851x2},isRelativeUrl:function(_0xc851x2){return _0x221c[43]!=_0xc851x2[_0x221c[85]](0,7)&&_0x221c[46]!=_0xc851x2[_0x221c[85]](0,8)&&_0x221c[1116]!=_0xc851x2[_0x221c[85]](0,10)},convert:function(_0xc851x2){if(_0xc851x3&&this[_0x221c[1117]](_0xc851x2)){if(null==_0xc851x4){_0xc851x5=location[_0x221c[1118]]+_0x221c[1119]+location[_0x221c[1120]];_0xc851x4=_0xc851x5+location[_0x221c[1121]];var _0xc851xa=_0xc851x4[_0x221c[1122]](_0x221c[84]);0<_0xc851xa&&(_0xc851x4=_0xc851x4[_0x221c[85]](0,_0xc851xa+1))};_0xc851x2=_0x221c[84]==_0xc851x2[_0x221c[225]](0)?_0xc851x5+_0xc851x2:_0xc851x4+_0xc851x2};return _0xc851x2}}};function mxPanningManager(_0xc851x2){this[_0x221c[1123]]=null;this[_0x221c[1124]]= !1;this[_0x221c[1125]]=this[_0x221c[1126]]=this[_0x221c[1127]]=this[_0x221c[1128]]=this[_0x221c[1129]]=this[_0x221c[1130]]=0;this[_0x221c[1131]]= !1;this[_0x221c[190]]=this[_0x221c[360]]=0;this[_0x221c[1132]]={mouseDown:function(_0xc851x2,_0xc851x3){},mouseMove:function(_0xc851x2,_0xc851x3){},mouseUp:mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x3){this[_0x221c[1124]]&&this[_0x221c[1076]]()})};_0xc851x2[_0x221c[1133]](this[_0x221c[1132]]);mxEvent[_0x221c[169]](document,_0x221c[753],mxUtils[_0x221c[885]](this,function(){this[_0x221c[1124]]&&this[_0x221c[1076]]()}));var _0xc851x3=mxUtils[_0x221c[885]](this,function(){this[_0x221c[1131]]=mxUtils[_0x221c[1134]](_0xc851x2[_0x221c[526]]);this[_0x221c[360]]=_0xc851x2[_0x221c[526]][_0x221c[360]];this[_0x221c[190]]=_0xc851x2[_0x221c[526]][_0x221c[190]];return window[_0x221c[1141]](mxUtils[_0x221c[885]](this,function(){this[_0x221c[1130]]-=this[_0x221c[1126]];this[_0x221c[1129]]-=this[_0x221c[1125]];if(this[_0x221c[1131]]){var _0xc851x3=-_0xc851x2[_0x221c[526]][_0x221c[360]]-Math[_0x221c[430]](this[_0x221c[1126]]),_0xc851x5=-_0xc851x2[_0x221c[526]][_0x221c[190]]-Math[_0x221c[430]](this[_0x221c[1125]]);_0xc851x2[_0x221c[1135]](_0xc851x3,_0xc851x5);_0xc851x2[_0x221c[1136]]=this[_0x221c[360]]-_0xc851x2[_0x221c[526]][_0x221c[360]];_0xc851x2[_0x221c[1137]]=this[_0x221c[190]]-_0xc851x2[_0x221c[526]][_0x221c[190]];_0xc851x2[_0x221c[746]]( new mxEventObject(mxEvent.PAN))}else {_0xc851x2[_0x221c[1135]](this[_0x221c[1138]](),this[_0x221c[1139]]())}}),this[_0x221c[1140]])});this[_0x221c[1142]]=function(){return active};this[_0x221c[1138]]=function(){return Math[_0x221c[488]](this[_0x221c[1130]])};this[_0x221c[1139]]=function(){return Math[_0x221c[488]](this[_0x221c[1129]])};this[_0x221c[861]]=function(){this[_0x221c[1128]]=_0xc851x2[_0x221c[441]][_0x221c[513]][_0x221c[235]];this[_0x221c[1127]]=_0xc851x2[_0x221c[441]][_0x221c[513]][_0x221c[236]];this[_0x221c[1124]]= !0};this[_0x221c[1143]]=function(_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){this[_0x221c[1124]]||this[_0x221c[861]]();this[_0x221c[360]]=_0xc851x2[_0x221c[526]][_0x221c[360]];this[_0x221c[190]]=_0xc851x2[_0x221c[526]][_0x221c[190]];_0xc851xa=null!=_0xc851xa?_0xc851xa:0;var _0xc851x12=_0xc851x2[_0x221c[526]];this[_0x221c[1126]]=_0xc851x4+(null!=_0xc851x9?_0xc851x9:0)-_0xc851x12[_0x221c[360]]-_0xc851x12[_0x221c[159]];0>this[_0x221c[1126]]&&Math[_0x221c[425]](this[_0x221c[1126]])<this[_0x221c[467]]?this[_0x221c[1126]]=this[_0x221c[467]]+this[_0x221c[1126]]:this[_0x221c[1126]]=this[_0x221c[1144]]?Math[_0x221c[160]](this[_0x221c[1126]],0):0;0==this[_0x221c[1126]]&&(this[_0x221c[1126]]=_0xc851x4-_0xc851x12[_0x221c[360]],this[_0x221c[1126]]=0<this[_0x221c[1126]]&&this[_0x221c[1126]]<this[_0x221c[467]]?this[_0x221c[1126]]-this[_0x221c[467]]:this[_0x221c[1144]]?Math[_0x221c[243]](0,this[_0x221c[1126]]):0);this[_0x221c[1125]]=_0xc851x5+_0xc851xa-_0xc851x12[_0x221c[190]]-_0xc851x12[_0x221c[157]];0>this[_0x221c[1125]]&&Math[_0x221c[425]](this[_0x221c[1125]])<this[_0x221c[467]]?this[_0x221c[1125]]=this[_0x221c[467]]+this[_0x221c[1125]]:this[_0x221c[1125]]=this[_0x221c[1144]]?Math[_0x221c[160]](this[_0x221c[1125]],0):0;0==this[_0x221c[1125]]&&(this[_0x221c[1125]]=_0xc851x5-_0xc851x12[_0x221c[190]],this[_0x221c[1125]]=0<this[_0x221c[1125]]&&this[_0x221c[1125]]<this[_0x221c[467]]?this[_0x221c[1125]]-this[_0x221c[467]]:this[_0x221c[1144]]?Math[_0x221c[243]](0,this[_0x221c[1125]]):0);0!=this[_0x221c[1126]]||0!=this[_0x221c[1125]]?(this[_0x221c[1126]]*=this[_0x221c[1145]],this[_0x221c[1125]]*=this[_0x221c[1145]],null==this[_0x221c[1123]]&&(this[_0x221c[1123]]=_0xc851x3())):null!=this[_0x221c[1123]]&&(window[_0x221c[1146]](this[_0x221c[1123]]),this[_0x221c[1123]]=null)};this[_0x221c[1076]]=function(){if(this[_0x221c[1124]]){if(this[_0x221c[1124]]= !1,null!=this[_0x221c[1123]]&&(window[_0x221c[1146]](this[_0x221c[1123]]),this[_0x221c[1123]]=null),this[_0x221c[1129]]=this[_0x221c[1130]]=0,this[_0x221c[1131]]){_0xc851x2[_0x221c[1136]]=0,_0xc851x2[_0x221c[1137]]=0,_0xc851x2[_0x221c[746]]( new mxEventObject(mxEvent.PAN))}else {var _0xc851x3=_0xc851x2[_0x221c[1136]],_0xc851x5=_0xc851x2[_0x221c[1137]];if(0!=_0xc851x3||0!=_0xc851x5){_0xc851x2[_0x221c[1135]](0,0),_0xc851x2[_0x221c[441]][_0x221c[1147]](this[_0x221c[1128]]+_0xc851x3/_0xc851x2[_0x221c[441]][_0x221c[255]],this[_0x221c[1127]]+_0xc851x5/_0xc851x2[_0x221c[441]][_0x221c[255]])}}}};this[_0x221c[515]]=function(){_0xc851x2[_0x221c[1148]](this[_0x221c[1132]])}}mxPanningManager[_0x221c[202]][_0x221c[1145]]=1/6;mxPanningManager[_0x221c[202]][_0x221c[1140]]=10;mxPanningManager[_0x221c[202]][_0x221c[1144]]= !0;mxPanningManager[_0x221c[202]][_0x221c[467]]=0;function mxPopupMenu(_0xc851x2){this[_0x221c[1033]]=_0xc851x2;null!=_0xc851x2&&this[_0x221c[176]]()}mxPopupMenu[_0x221c[202]]= new mxEventSource;mxPopupMenu[_0x221c[202]][_0x221c[196]]=mxPopupMenu;mxPopupMenu[_0x221c[202]][_0x221c[1149]]=mxClient[_0x221c[88]]+_0x221c[1150];mxPopupMenu[_0x221c[202]][_0x221c[931]]=10006;mxPopupMenu[_0x221c[202]][_0x221c[1033]]=null;mxPopupMenu[_0x221c[202]][_0x221c[1151]]= !1;mxPopupMenu[_0x221c[202]][_0x221c[984]]= !0;mxPopupMenu[_0x221c[202]][_0x221c[1152]]=0;mxPopupMenu[_0x221c[202]][_0x221c[1153]]= !1;mxPopupMenu[_0x221c[202]][_0x221c[1154]]= !1;mxPopupMenu[_0x221c[202]][_0x221c[1155]]= !0;mxPopupMenu[_0x221c[202]][_0x221c[176]]=function(){this[_0x221c[116]]=document[_0x221c[55]](_0x221c[116]);this[_0x221c[116]][_0x221c[926]]=_0x221c[1156];this[_0x221c[120]]=document[_0x221c[55]](_0x221c[120]);this[_0x221c[116]][_0x221c[62]](this[_0x221c[120]]);this[_0x221c[485]]=document[_0x221c[55]](_0x221c[485]);this[_0x221c[485]][_0x221c[926]]=_0x221c[1156];this[_0x221c[485]][_0x221c[124]][_0x221c[495]]=_0x221c[497];this[_0x221c[485]][_0x221c[124]][_0x221c[931]]=this[_0x221c[931]];this[_0x221c[485]][_0x221c[62]](this[_0x221c[116]]);mxEvent[_0x221c[1157]](this[_0x221c[485]])};mxPopupMenu[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxPopupMenu[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxPopupMenu[_0x221c[202]][_0x221c[737]]=function(_0xc851x2){return _0xc851x2[_0x221c[737]]()||this[_0x221c[1151]]&&mxEvent[_0x221c[1158]](_0xc851x2[_0x221c[727]]())};mxPopupMenu[_0x221c[202]][_0x221c[1025]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x5=_0xc851x5||this;this[_0x221c[1152]]++;_0xc851x5[_0x221c[1159]]&&(_0xc851x5[_0x221c[1160]]&&this[_0x221c[1051]](_0xc851x5,!0),_0xc851x5[_0x221c[1159]]= !1);_0xc851x5[_0x221c[1160]]= !0;var _0xc851x12=document[_0x221c[55]](_0x221c[121]);_0xc851x12[_0x221c[926]]=_0x221c[1161];var _0xc851x13=document[_0x221c[55]](_0x221c[122]);_0xc851x13[_0x221c[926]]=_0x221c[1162];null!=_0xc851x3?(_0xc851x9=document[_0x221c[55]](_0x221c[466]),_0xc851x9[_0x221c[390]]=_0xc851x3,_0xc851x13[_0x221c[62]](_0xc851x9)):null!=_0xc851x9&&(_0xc851x3=document[_0x221c[55]](_0x221c[485]),_0xc851x3[_0x221c[926]]=_0xc851x9,_0xc851x13[_0x221c[62]](_0xc851x3));_0xc851x12[_0x221c[62]](_0xc851x13);this[_0x221c[1155]]&&(_0xc851x13=document[_0x221c[55]](_0x221c[122]),_0xc851x13[_0x221c[926]]=_0x221c[1161]+(null!=_0xc851xa&&!_0xc851xa?_0x221c[1163]:_0x221c[110]),mxUtils[_0x221c[53]](_0xc851x13,_0xc851x2),_0xc851x13[_0x221c[611]]=_0x221c[361],_0xc851x12[_0x221c[62]](_0xc851x13),_0xc851x2=document[_0x221c[55]](_0x221c[122]),_0xc851x2[_0x221c[926]]=_0x221c[1161]+(null!=_0xc851xa&&!_0xc851xa?_0x221c[1163]:_0x221c[110]),_0xc851x2[_0x221c[124]][_0x221c[1164]]=_0x221c[1055],_0xc851x2[_0x221c[124]][_0x221c[1165]]=_0x221c[699],_0xc851x12[_0x221c[62]](_0xc851x2),null==_0xc851x5[_0x221c[485]]&&this[_0x221c[1166]](_0xc851x5));_0xc851x5[_0x221c[120]][_0x221c[62]](_0xc851x12);if(null==_0xc851xa||_0xc851xa){mxEvent[_0x221c[759]](_0xc851x12,mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[1167]]=_0xc851x12;_0xc851x5[_0x221c[1168]]!=_0xc851x12&&_0xc851x5[_0x221c[1168]]!=_0xc851x5&&(null!=_0xc851x5[_0x221c[1168]]&&null!=_0xc851x5[_0x221c[1168]][_0x221c[485]][_0x221c[265]]&&this[_0x221c[1169]](_0xc851x5),null!=_0xc851x12[_0x221c[485]]&&(this[_0x221c[1170]](_0xc851x5,_0xc851x12),_0xc851x5[_0x221c[1168]]=_0xc851x12));mxEvent[_0x221c[722]](_0xc851x2)}),mxUtils[_0x221c[885]](this,function(_0xc851x2){_0xc851x5[_0x221c[1168]]!=_0xc851x12&&_0xc851x5[_0x221c[1168]]!=_0xc851x5&&(null!=_0xc851x5[_0x221c[1168]]&&null!=_0xc851x5[_0x221c[1168]][_0x221c[485]][_0x221c[265]]&&this[_0x221c[1169]](_0xc851x5),this[_0x221c[1153]]&&null!=_0xc851x12[_0x221c[485]]&&(this[_0x221c[1170]](_0xc851x5,_0xc851x12),_0xc851x5[_0x221c[1168]]=_0xc851x12));_0xc851x12[_0x221c[926]]=_0x221c[1171]}),mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[1167]]==_0xc851x12&&(_0xc851x5[_0x221c[1168]]!=_0xc851x12&&this[_0x221c[1032]](),null!=_0xc851x4&&_0xc851x4(_0xc851x2));this[_0x221c[1167]]=null;mxEvent[_0x221c[722]](_0xc851x2)})),mxEvent[_0x221c[169]](_0xc851x12,_0x221c[1035],mxUtils[_0x221c[885]](this,function(_0xc851x2){_0xc851x12[_0x221c[926]]=_0x221c[1161]}))};return _0xc851x12};mxPopupMenu[_0x221c[202]][_0x221c[1166]]=function(_0xc851x2){_0xc851x2[_0x221c[116]]=document[_0x221c[55]](_0x221c[116]);_0xc851x2[_0x221c[116]][_0x221c[926]]=_0x221c[1156];_0xc851x2[_0x221c[120]]=document[_0x221c[55]](_0x221c[120]);_0xc851x2[_0x221c[116]][_0x221c[62]](_0xc851x2[_0x221c[120]]);_0xc851x2[_0x221c[485]]=document[_0x221c[55]](_0x221c[485]);_0xc851x2[_0x221c[485]][_0x221c[926]]=_0x221c[1156];_0xc851x2[_0x221c[485]][_0x221c[124]][_0x221c[491]]=_0x221c[492];_0xc851x2[_0x221c[485]][_0x221c[124]][_0x221c[495]]=_0x221c[497];_0xc851x2[_0x221c[485]][_0x221c[124]][_0x221c[931]]=this[_0x221c[931]];_0xc851x2[_0x221c[485]][_0x221c[62]](_0xc851x2[_0x221c[116]]);var _0xc851x3=document[_0x221c[55]](_0x221c[466]);_0xc851x3[_0x221c[57]](_0x221c[390],this[_0x221c[1149]]);td=_0xc851x2[_0x221c[285]][_0x221c[287]][_0x221c[287]];td[_0x221c[62]](_0xc851x3)};mxPopupMenu[_0x221c[202]][_0x221c[1170]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x3[_0x221c[485]]){_0xc851x3[_0x221c[485]][_0x221c[124]][_0x221c[361]]=_0xc851x2[_0x221c[485]][_0x221c[358]]+_0xc851x3[_0x221c[358]]+_0xc851x3[_0x221c[359]]-1+_0x221c[168];_0xc851x3[_0x221c[485]][_0x221c[124]][_0x221c[125]]=_0xc851x2[_0x221c[485]][_0x221c[362]]+_0xc851x3[_0x221c[362]]+_0x221c[168];document[_0x221c[112]][_0x221c[62]](_0xc851x3[_0x221c[485]]);var _0xc851x4=parseInt(_0xc851x3[_0x221c[485]][_0x221c[358]]),_0xc851x5=parseInt(_0xc851x3[_0x221c[485]][_0x221c[359]]),_0xc851x9=document[_0x221c[112]],_0xc851xa=document[_0x221c[158]];if(_0xc851x4+_0xc851x5>(_0xc851x9[_0x221c[360]]||_0xc851xa[_0x221c[360]])+(_0xc851x9[_0x221c[159]]||_0xc851xa[_0x221c[159]])){_0xc851x3[_0x221c[485]][_0x221c[124]][_0x221c[361]]=_0xc851x2[_0x221c[485]][_0x221c[358]]-_0xc851x5+(mxClient[_0x221c[80]]?6:-6)+_0x221c[168]};mxUtils[_0x221c[933]](_0xc851x3[_0x221c[485]])}};mxPopupMenu[_0x221c[202]][_0x221c[1051]]=function(_0xc851x2,_0xc851x3){_0xc851x2=_0xc851x2||this;if(this[_0x221c[1154]]&& !_0xc851x3){_0xc851x2[_0x221c[1159]]= !0}else {if(null!=_0xc851x2[_0x221c[120]]){_0xc851x2[_0x221c[1159]]= !1;var _0xc851x4=document[_0x221c[55]](_0x221c[121]),_0xc851x5=document[_0x221c[55]](_0x221c[122]);_0xc851x5[_0x221c[926]]=_0x221c[1162];_0xc851x5[_0x221c[124]][_0x221c[549]]=_0x221c[1172];_0xc851x4[_0x221c[62]](_0xc851x5);_0xc851x5=document[_0x221c[55]](_0x221c[122]);_0xc851x5[_0x221c[124]][_0x221c[549]]=_0x221c[1172];_0xc851x5[_0x221c[57]](_0x221c[1173],_0x221c[1174]);var _0xc851x9=document[_0x221c[55]](_0x221c[1054]);_0xc851x9[_0x221c[57]](_0x221c[803],_0x221c[500]);_0xc851x5[_0x221c[62]](_0xc851x9);_0xc851x4[_0x221c[62]](_0xc851x5);_0xc851x2[_0x221c[120]][_0x221c[62]](_0xc851x4)}}};mxPopupMenu[_0x221c[202]][_0x221c[152]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(null!=this[_0x221c[485]]&&null!=this[_0x221c[120]]&&null!=this[_0x221c[1033]]){this[_0x221c[485]][_0x221c[124]][_0x221c[361]]=_0xc851x2+_0x221c[168];for(this[_0x221c[485]][_0x221c[124]][_0x221c[125]]=_0xc851x3+_0x221c[168];null!=this[_0x221c[120]][_0x221c[285]];){mxEvent[_0x221c[762]](this[_0x221c[120]][_0x221c[285]]),this[_0x221c[120]][_0x221c[266]](this[_0x221c[120]][_0x221c[285]])};this[_0x221c[1152]]=0;this[_0x221c[1033]](this,_0xc851x4,_0xc851x5);0<this[_0x221c[1152]]&&(this[_0x221c[1175]](),this[_0x221c[746]]( new mxEventObject(mxEvent.SHOW)))}};mxPopupMenu[_0x221c[202]][_0x221c[1031]]=function(){return null!=this[_0x221c[485]]&&this[_0x221c[485]][_0x221c[265]]==document[_0x221c[112]]};mxPopupMenu[_0x221c[202]][_0x221c[1175]]=function(){9<=document[_0x221c[5]]&&(this[_0x221c[485]][_0x221c[124]][_0x221c[347]]=_0x221c[130]);document[_0x221c[112]][_0x221c[62]](this[_0x221c[485]]);mxUtils[_0x221c[933]](this[_0x221c[485]])};mxPopupMenu[_0x221c[202]][_0x221c[1032]]=function(){null!=this[_0x221c[485]]&&(null!=this[_0x221c[485]][_0x221c[265]]&&this[_0x221c[485]][_0x221c[265]][_0x221c[266]](this[_0x221c[485]]),this[_0x221c[1169]](this),this[_0x221c[1160]]= !1)};mxPopupMenu[_0x221c[202]][_0x221c[1169]]=function(_0xc851x2){null!=_0xc851x2[_0x221c[1168]]&&(this[_0x221c[1169]](_0xc851x2[_0x221c[1168]]),null!=_0xc851x2[_0x221c[1168]][_0x221c[485]][_0x221c[265]]&&_0xc851x2[_0x221c[1168]][_0x221c[485]][_0x221c[265]][_0x221c[266]](_0xc851x2[_0x221c[1168]][_0x221c[485]]),_0xc851x2[_0x221c[1168]]=null)};mxPopupMenu[_0x221c[202]][_0x221c[515]]=function(){null!=this[_0x221c[485]]&&(mxEvent[_0x221c[762]](this[_0x221c[485]]),null!=this[_0x221c[485]][_0x221c[265]]&&this[_0x221c[485]][_0x221c[265]][_0x221c[266]](this[_0x221c[485]]),this[_0x221c[485]]=null)};function mxAutoSaveManager(_0xc851x2){this[_0x221c[1176]]=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x4){this[_0x221c[994]]()&&this[_0x221c[1177]](_0xc851x4[_0x221c[720]](_0x221c[1061])[_0x221c[1065]])});this[_0x221c[1178]](_0xc851x2)}mxAutoSaveManager[_0x221c[202]]= new mxEventSource;mxAutoSaveManager[_0x221c[202]][_0x221c[196]]=mxAutoSaveManager;mxAutoSaveManager[_0x221c[202]][_0x221c[1179]]=null;mxAutoSaveManager[_0x221c[202]][_0x221c[1180]]=10;mxAutoSaveManager[_0x221c[202]][_0x221c[1181]]=2;mxAutoSaveManager[_0x221c[202]][_0x221c[1182]]=5;mxAutoSaveManager[_0x221c[202]][_0x221c[1183]]=0;mxAutoSaveManager[_0x221c[202]][_0x221c[1184]]=0;mxAutoSaveManager[_0x221c[202]][_0x221c[984]]= !0;mxAutoSaveManager[_0x221c[202]][_0x221c[1176]]=null;mxAutoSaveManager[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxAutoSaveManager[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxAutoSaveManager[_0x221c[202]][_0x221c[1178]]=function(_0xc851x2){null!=this[_0x221c[1179]]&&this[_0x221c[1179]][_0x221c[502]]()[_0x221c[745]](this[_0x221c[1176]]);this[_0x221c[1179]]=_0xc851x2;null!=this[_0x221c[1179]]&&this[_0x221c[1179]][_0x221c[502]]()[_0x221c[169]](mxEvent.CHANGE,this[_0x221c[1176]])};mxAutoSaveManager[_0x221c[202]][_0x221c[815]]=function(){};mxAutoSaveManager[_0x221c[202]][_0x221c[1177]]=function(_0xc851x2){_0xc851x2=(( new Date)[_0x221c[178]]()-this[_0x221c[1184]])/1E3;_0xc851x2>this[_0x221c[1180]]||this[_0x221c[1183]]>=this[_0x221c[1182]]&&_0xc851x2>this[_0x221c[1181]]?(this[_0x221c[815]](),this[_0x221c[862]]()):this[_0x221c[1183]]++};mxAutoSaveManager[_0x221c[202]][_0x221c[862]]=function(){this[_0x221c[1184]]=( new Date)[_0x221c[178]]();this[_0x221c[1183]]=0};mxAutoSaveManager[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[1178]](null)};function mxAnimation(_0xc851x2){this[_0x221c[1140]]=null!=_0xc851x2?_0xc851x2:20}mxAnimation[_0x221c[202]]= new mxEventSource;mxAnimation[_0x221c[202]][_0x221c[196]]=mxAnimation;mxAnimation[_0x221c[202]][_0x221c[1140]]=null;mxAnimation[_0x221c[202]][_0x221c[1123]]=null;mxAnimation[_0x221c[202]][_0x221c[1185]]=function(){null==this[_0x221c[1123]]&&(this[_0x221c[1123]]=window[_0x221c[1141]](mxUtils[_0x221c[885]](this,this[_0x221c[1186]]),this[_0x221c[1140]]))};mxAnimation[_0x221c[202]][_0x221c[1186]]=function(){this[_0x221c[746]]( new mxEventObject(mxEvent.EXECUTE))};mxAnimation[_0x221c[202]][_0x221c[1187]]=function(){null!=this[_0x221c[1123]]&&(window[_0x221c[1146]](this[_0x221c[1123]]),this[_0x221c[1123]]=null,this[_0x221c[746]]( new mxEventObject(mxEvent.DONE)))};function mxMorphing(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxAnimation[_0x221c[239]](this,_0xc851x5);this[_0x221c[1179]]=_0xc851x2;this[_0x221c[1188]]=null!=_0xc851x3?_0xc851x3:6;this[_0x221c[1189]]=null!=_0xc851x4?_0xc851x4:1.5}mxMorphing[_0x221c[202]]= new mxAnimation;mxMorphing[_0x221c[202]][_0x221c[196]]=mxMorphing;mxMorphing[_0x221c[202]][_0x221c[1179]]=null;mxMorphing[_0x221c[202]][_0x221c[1188]]=null;mxMorphing[_0x221c[202]][_0x221c[1190]]=0;mxMorphing[_0x221c[202]][_0x221c[1189]]=null;mxMorphing[_0x221c[202]][_0x221c[895]]=null;mxMorphing[_0x221c[202]][_0x221c[1186]]=function(){var _0xc851x2= new mxCellStatePreview(this[_0x221c[1179]]);if(null!=this[_0x221c[895]]){for(var _0xc851x3=0;_0xc851x3<this[_0x221c[895]][_0x221c[67]];_0xc851x3++){this[_0x221c[1191]](cells[_0xc851x3],_0xc851x2,!1)}}else {this[_0x221c[1191]](this[_0x221c[1179]][_0x221c[502]]()[_0x221c[501]](),_0xc851x2,!0)};this[_0x221c[539]](_0xc851x2);(_0xc851x2[_0x221c[1107]]()||this[_0x221c[1190]]++ >=this[_0x221c[1188]])&&this[_0x221c[1187]]()};mxMorphing[_0x221c[202]][_0x221c[539]]=function(_0xc851x2){_0xc851x2[_0x221c[539]]()};mxMorphing[_0x221c[202]][_0x221c[1191]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](_0xc851x2),_0xc851x9=null;if(null!=_0xc851x5&&(_0xc851x9=this[_0x221c[1192]](_0xc851x5),this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1193]](_0xc851x2)&&(0!=_0xc851x9[_0x221c[235]]||0!=_0xc851x9[_0x221c[236]]))){var _0xc851xa=this[_0x221c[1179]][_0x221c[441]][_0x221c[512]](),_0xc851x12=this[_0x221c[1179]][_0x221c[441]][_0x221c[518]]();_0xc851x9[_0x221c[235]]+=_0xc851xa[_0x221c[235]]*_0xc851x12;_0xc851x9[_0x221c[236]]+=_0xc851xa[_0x221c[236]]*_0xc851x12;_0xc851x3[_0x221c[1194]](_0xc851x5,-_0xc851x9[_0x221c[235]]/this[_0x221c[1189]],-_0xc851x9[_0x221c[236]]/this[_0x221c[1189]])};if(_0xc851x4&&!this[_0x221c[1195]](_0xc851x5,_0xc851x9)){_0xc851x5=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[262]](_0xc851x2);for(_0xc851x9=0;_0xc851x9<_0xc851x5;_0xc851x9++){this[_0x221c[1191]](this[_0x221c[1179]][_0x221c[502]]()[_0x221c[263]](_0xc851x2,_0xc851x9),_0xc851x3,_0xc851x4)}}};mxMorphing[_0x221c[202]][_0x221c[1195]]=function(_0xc851x2,_0xc851x3){return null!=_0xc851x3&&(0!=_0xc851x3[_0x221c[235]]||0!=_0xc851x3[_0x221c[236]])};mxMorphing[_0x221c[202]][_0x221c[1192]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1196]](_0xc851x2[_0x221c[246]]),_0xc851x4=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[512]](),_0xc851x5=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[518]]();_0xc851x2= new mxPoint(_0xc851x2[_0x221c[235]]/_0xc851x5-_0xc851x4[_0x221c[235]],_0xc851x2[_0x221c[236]]/_0xc851x5-_0xc851x4[_0x221c[236]]);return  new mxPoint((_0xc851x3[_0x221c[235]]-_0xc851x2[_0x221c[235]])*_0xc851x5,(_0xc851x3[_0x221c[236]]-_0xc851x2[_0x221c[236]])*_0xc851x5)};mxMorphing[_0x221c[202]][_0x221c[1196]]=function(_0xc851x2){var _0xc851x3=null;null!=_0xc851x2&&(_0xc851x3=this[_0x221c[1196]](this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1197]](_0xc851x2)),_0xc851x2=this[_0x221c[1179]][_0x221c[1198]](_0xc851x2),null!=_0xc851x2&&(_0xc851x3[_0x221c[235]]+=_0xc851x2[_0x221c[235]],_0xc851x3[_0x221c[236]]+=_0xc851x2[_0x221c[236]]));null==_0xc851x3&&(_0xc851x3=this[_0x221c[1179]][_0x221c[441]][_0x221c[512]](),_0xc851x3= new mxPoint(-_0xc851x3[_0x221c[235]],-_0xc851x3[_0x221c[236]]));return _0xc851x3};function mxImageBundle(_0xc851x2){this[_0x221c[1199]]=[];this[_0x221c[1200]]=null!=_0xc851x2?_0xc851x2:!1}mxImageBundle[_0x221c[202]][_0x221c[1199]]=null;mxImageBundle[_0x221c[202]][_0x221c[1199]]=null;mxImageBundle[_0x221c[202]][_0x221c[1201]]=function(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[1199]][_0xc851x2]={value:_0xc851x3,fallback:_0xc851x4}};mxImageBundle[_0x221c[202]][_0x221c[1202]]=function(_0xc851x2){var _0xc851x3=null;null!=_0xc851x2&&(_0xc851x2=this[_0x221c[1199]][_0xc851x2],null!=_0xc851x2&&(_0xc851x3=this[_0x221c[1200]]?_0xc851x2[_0x221c[1203]]:_0xc851x2[_0x221c[131]]));return _0xc851x3};function mxImageExport(){}mxImageExport[_0x221c[202]][_0x221c[1204]]= !1;mxImageExport[_0x221c[202]][_0x221c[1205]]=function(_0xc851x2,_0xc851x3){null!=_0xc851x2&&(this[_0x221c[1207]](_0xc851x2,_0xc851x3,this[_0x221c[1206]]),this[_0x221c[1204]]&&this[_0x221c[1207]](_0xc851x2,_0xc851x3,this[_0x221c[1208]]))};mxImageExport[_0x221c[202]][_0x221c[1207]]=function(_0xc851x2,_0xc851x3,_0xc851x4){if(null!=_0xc851x2){_0xc851x4(_0xc851x2,_0xc851x3);for(var _0xc851x5=_0xc851x2[_0x221c[441]][_0x221c[1179]],_0xc851x9=_0xc851x5[_0x221c[251]][_0x221c[262]](_0xc851x2[_0x221c[246]]),_0xc851xa=0;_0xc851xa<_0xc851x9;_0xc851xa++){var _0xc851x12=_0xc851x5[_0x221c[441]][_0x221c[248]](_0xc851x5[_0x221c[251]][_0x221c[263]](_0xc851x2[_0x221c[246]],_0xc851xa));this[_0x221c[1207]](_0xc851x12,_0xc851x3,_0xc851x4)}}};mxImageExport[_0x221c[202]][_0x221c[1206]]=function(_0xc851x2,_0xc851x3){_0xc851x2[_0x221c[253]] instanceof mxShape&&(_0xc851x3[_0x221c[815]](),_0xc851x2[_0x221c[253]][_0x221c[1209]](_0xc851x3),_0xc851x3[_0x221c[1210]]());null!=_0xc851x2[_0x221c[963]]&&(_0xc851x3[_0x221c[815]](),_0xc851x2[_0x221c[963]][_0x221c[1209]](_0xc851x3),_0xc851x3[_0x221c[1210]]())};mxImageExport[_0x221c[202]][_0x221c[1208]]=function(_0xc851x2,_0xc851x3){null!=_0xc851x2[_0x221c[1211]]&&_0xc851x2[_0x221c[1211]][_0x221c[209]](function(_0xc851x2,_0xc851x5){_0xc851x5 instanceof mxShape&&_0xc851x5[_0x221c[1209]](_0xc851x3)})};function mxAbstractCanvas2D(){this[_0x221c[1212]]=this[_0x221c[1213]]();this[_0x221c[862]]()}mxAbstractCanvas2D[_0x221c[202]][_0x221c[724]]=null;mxAbstractCanvas2D[_0x221c[202]][_0x221c[1214]]=null;mxAbstractCanvas2D[_0x221c[202]][_0x221c[1215]]=null;mxAbstractCanvas2D[_0x221c[202]][_0x221c[1216]]= !0;mxAbstractCanvas2D[_0x221c[202]][_0x221c[1217]]=0;mxAbstractCanvas2D[_0x221c[202]][_0x221c[1218]]=0;mxAbstractCanvas2D[_0x221c[202]][_0x221c[1219]]=_0x221c[1220];mxAbstractCanvas2D[_0x221c[202]][_0x221c[1221]]=_0x221c[1222];mxAbstractCanvas2D[_0x221c[202]][_0x221c[1223]]=_0x221c[1224];mxAbstractCanvas2D[_0x221c[202]][_0x221c[1225]]=_0x221c[1226];mxAbstractCanvas2D[_0x221c[202]][_0x221c[1227]]=_0x221c[1228];mxAbstractCanvas2D[_0x221c[202]][_0x221c[1229]]= !1;mxAbstractCanvas2D[_0x221c[202]][_0x221c[1213]]=function(){return  new mxUrlConverter};mxAbstractCanvas2D[_0x221c[202]][_0x221c[862]]=function(){this[_0x221c[724]]=this[_0x221c[1230]]();this[_0x221c[1214]]=[]};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1230]]=function(){return {dx:0,dy:0,scale:1,alpha:1,fillColor:null,fillAlpha:1,gradientColor:null,gradientAlpha:1,gradientDirection:null,strokeColor:null,strokeWidth:1,dashed:!1,dashPattern:_0x221c[1231],lineCap:_0x221c[1232],lineJoin:_0x221c[1233],miterLimit:10,fontColor:_0x221c[1234],fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants[_0x221c[483]],fontFamily:mxConstants[_0x221c[484]],fontStyle:0,shadow:!1,shadowColor:mxConstants[_0x221c[1235]],shadowAlpha:mxConstants[_0x221c[1236]],shadowDx:mxConstants[_0x221c[1237]],shadowDy:mxConstants[_0x221c[1238]],rotation:0,rotationCx:0,rotationCy:0}};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1239]]=function(_0xc851x2){return Math[_0x221c[488]](parseFloat(_0xc851x2))};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1240]]=function(){if(null!=this[_0x221c[1215]]&&(this[_0x221c[1215]][_0x221c[207]](arguments[0]),2<arguments[_0x221c[67]])){for(var _0xc851x2=this[_0x221c[724]],_0xc851x3=2;_0xc851x3<arguments[_0x221c[67]];_0xc851x3+=2){this[_0x221c[1217]]=arguments[_0xc851x3-1],this[_0x221c[1218]]=arguments[_0xc851x3],this[_0x221c[1215]][_0x221c[207]](this[_0x221c[1239]]((this[_0x221c[1217]]+_0xc851x2[_0x221c[1126]])*_0xc851x2[_0x221c[255]])),this[_0x221c[1215]][_0x221c[207]](this[_0x221c[1239]]((this[_0x221c[1218]]+_0xc851x2[_0x221c[1125]])*_0xc851x2[_0x221c[255]]))}}};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1241]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x4*=Math[_0x221c[424]]/180;return mxUtils[_0x221c[432]]( new mxPoint(_0xc851x2,_0xc851x3),Math[_0x221c[426]](_0xc851x4),Math[_0x221c[427]](_0xc851x4), new mxPoint(_0xc851x5,_0xc851x9))};mxAbstractCanvas2D[_0x221c[202]][_0x221c[815]]=function(){this[_0x221c[1214]][_0x221c[207]](this[_0x221c[724]]);this[_0x221c[724]]=mxUtils[_0x221c[238]](this[_0x221c[724]])};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1210]]=function(){this[_0x221c[724]]=this[_0x221c[1214]][_0x221c[1242]]()};mxAbstractCanvas2D[_0x221c[202]][_0x221c[255]]=function(_0xc851x2){this[_0x221c[724]][_0x221c[255]]*=_0xc851x2;this[_0x221c[724]][_0x221c[610]]*=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[513]]=function(_0xc851x2,_0xc851x3){this[_0x221c[724]][_0x221c[1126]]+=_0xc851x2;this[_0x221c[724]][_0x221c[1125]]+=_0xc851x3};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1243]]=function(_0xc851x2){this[_0x221c[724]][_0x221c[1244]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1245]]=function(_0xc851x2){_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);this[_0x221c[724]][_0x221c[604]]=_0xc851x2;this[_0x221c[724]][_0x221c[606]]=null};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1246]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14){_0xc851x4=this[_0x221c[724]];_0xc851x4[_0x221c[604]]=_0xc851x2;_0xc851x4[_0x221c[1247]]=null!=_0xc851x13?_0xc851x13:1;_0xc851x4[_0x221c[606]]=_0xc851x3;_0xc851x4[_0x221c[1248]]=null!=_0xc851x14?_0xc851x14:1;_0xc851x4[_0x221c[607]]=_0xc851x12};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1249]]=function(_0xc851x2){_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);this[_0x221c[724]][_0x221c[608]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1250]]=function(_0xc851x2){this[_0x221c[724]][_0x221c[610]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1251]]=function(_0xc851x2){this[_0x221c[724]][_0x221c[648]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1252]]=function(_0xc851x2){this[_0x221c[724]][_0x221c[649]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1253]]=function(_0xc851x2){this[_0x221c[724]][_0x221c[1254]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1255]]=function(_0xc851x2){this[_0x221c[724]][_0x221c[1256]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1257]]=function(_0xc851x2){this[_0x221c[724]][_0x221c[1258]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1259]]=function(_0xc851x2){_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);this[_0x221c[724]][_0x221c[665]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1260]]=function(_0xc851x2){_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);this[_0x221c[724]][_0x221c[1261]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1262]]=function(_0xc851x2){_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);this[_0x221c[724]][_0x221c[1263]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1264]]=function(_0xc851x2){this[_0x221c[724]][_0x221c[487]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1265]]=function(_0xc851x2){this[_0x221c[724]][_0x221c[486]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1266]]=function(_0xc851x2){null==_0xc851x2&&(_0xc851x2=0);this[_0x221c[724]][_0x221c[666]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1267]]=function(_0xc851x2){this[_0x221c[724]][_0x221c[639]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1268]]=function(_0xc851x2){_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);this[_0x221c[724]][_0x221c[1269]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1270]]=function(_0xc851x2){this[_0x221c[724]][_0x221c[1271]]=_0xc851x2};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1272]]=function(_0xc851x2,_0xc851x3){this[_0x221c[724]][_0x221c[1273]]=_0xc851x2;this[_0x221c[724]][_0x221c[1274]]=_0xc851x3};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1275]]=function(){this[_0x221c[1218]]=this[_0x221c[1217]]=0;this[_0x221c[1215]]=[]};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1276]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1240]](this[_0x221c[1219]],_0xc851x2,_0xc851x3)};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1277]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1240]](this[_0x221c[1221]],_0xc851x2,_0xc851x3)};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1278]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[1240]](this[_0x221c[1223]],_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5)};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1279]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){this[_0x221c[1240]](this[_0x221c[1225]],_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa)};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1280]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12){_0xc851x2=mxUtils[_0x221c[1281]](this[_0x221c[1217]],this[_0x221c[1218]],_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12);for(_0xc851x3=0;_0xc851x3<_0xc851x2[_0x221c[67]];_0xc851x3+=6){this[_0x221c[1279]](_0xc851x2[_0xc851x3],_0xc851x2[_0xc851x3+1],_0xc851x2[_0xc851x3+2],_0xc851x2[_0xc851x3+3],_0xc851x2[_0xc851x3+4],_0xc851x2[_0xc851x3+5])}};mxAbstractCanvas2D[_0x221c[202]][_0x221c[268]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){this[_0x221c[1240]](this[_0x221c[1227]])};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1282]]=function(){};function mxXmlCanvas2D(_0xc851x2){mxAbstractCanvas2D[_0x221c[239]](this);this[_0x221c[813]]=_0xc851x2;this[_0x221c[1283]]()}mxUtils[_0x221c[1284]](mxXmlCanvas2D,mxAbstractCanvas2D);mxXmlCanvas2D[_0x221c[202]][_0x221c[1285]]= !0;mxXmlCanvas2D[_0x221c[202]][_0x221c[1286]]= !0;mxXmlCanvas2D[_0x221c[202]][_0x221c[1283]]=function(){var _0xc851x2;_0xc851x2=this[_0x221c[55]](_0x221c[1287]);_0xc851x2[_0x221c[57]](_0x221c[1288],mxConstants.DEFAULT_FONTFAMILY);this[_0x221c[813]][_0x221c[62]](_0xc851x2);_0xc851x2=this[_0x221c[55]](_0x221c[1289]);_0xc851x2[_0x221c[57]](_0x221c[803],mxConstants.DEFAULT_FONTSIZE);this[_0x221c[813]][_0x221c[62]](_0xc851x2);_0xc851x2=this[_0x221c[55]](_0x221c[1290]);_0xc851x2[_0x221c[57]](_0x221c[352],mxConstants.SHADOWCOLOR);this[_0x221c[813]][_0x221c[62]](_0xc851x2);_0xc851x2=this[_0x221c[55]](_0x221c[1291]);_0xc851x2[_0x221c[57]](_0x221c[1244],mxConstants.SHADOW_OPACITY);this[_0x221c[813]][_0x221c[62]](_0xc851x2);_0xc851x2=this[_0x221c[55]](_0x221c[1292]);_0xc851x2[_0x221c[57]](_0x221c[1126],mxConstants.SHADOW_OFFSET_X);_0xc851x2[_0x221c[57]](_0x221c[1125],mxConstants.SHADOW_OFFSET_Y);this[_0x221c[813]][_0x221c[62]](_0xc851x2)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1239]]=function(_0xc851x2){return parseFloat(parseFloat(_0xc851x2)[_0x221c[1293]](2))};mxXmlCanvas2D[_0x221c[202]][_0x221c[55]]=function(_0xc851x2){return this[_0x221c[813]][_0x221c[295]][_0x221c[55]](_0xc851x2)};mxXmlCanvas2D[_0x221c[202]][_0x221c[815]]=function(){this[_0x221c[1286]]&&mxAbstractCanvas2D[_0x221c[202]][_0x221c[815]][_0x221c[183]](this,arguments);this[_0x221c[813]][_0x221c[62]](this[_0x221c[55]](_0x221c[815]))};mxXmlCanvas2D[_0x221c[202]][_0x221c[1210]]=function(){this[_0x221c[1286]]&&mxAbstractCanvas2D[_0x221c[202]][_0x221c[1210]][_0x221c[183]](this,arguments);this[_0x221c[813]][_0x221c[62]](this[_0x221c[55]](_0x221c[1210]))};mxXmlCanvas2D[_0x221c[202]][_0x221c[255]]=function(_0xc851x2){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[255]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1243]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[255]);_0xc851x3[_0x221c[57]](_0x221c[255],_0xc851x2);this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[513]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[55]](_0x221c[513]);_0xc851x4[_0x221c[57]](_0x221c[1126],this[_0x221c[1239]](_0xc851x2));_0xc851x4[_0x221c[57]](_0x221c[1125],this[_0x221c[1239]](_0xc851x3));this[_0x221c[813]][_0x221c[62]](_0xc851x4)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1294]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=this[_0x221c[55]](_0x221c[1294]);if(0!=_0xc851x2||_0xc851x3||_0xc851x4){_0xc851xa[_0x221c[57]](_0x221c[1295],this[_0x221c[1239]](_0xc851x2)),_0xc851xa[_0x221c[57]](_0x221c[623],_0xc851x3?_0x221c[500]:_0x221c[468]),_0xc851xa[_0x221c[57]](_0x221c[624],_0xc851x4?_0x221c[500]:_0x221c[468]),_0xc851xa[_0x221c[57]](_0x221c[1296],this[_0x221c[1239]](_0xc851x5)),_0xc851xa[_0x221c[57]](_0x221c[1297],this[_0x221c[1239]](_0xc851x9)),this[_0x221c[813]][_0x221c[62]](_0xc851xa)}};mxXmlCanvas2D[_0x221c[202]][_0x221c[1243]]=function(_0xc851x2){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[1244]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1243]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1244]);_0xc851x3[_0x221c[57]](_0x221c[1244],this[_0x221c[1239]](_0xc851x2));this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1245]]=function(_0xc851x2){_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[604]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1245]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1298]);_0xc851x3[_0x221c[57]](_0x221c[352],null!=_0xc851x2?_0xc851x2:mxConstants[_0x221c[217]]);this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1246]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14){if(null!=_0xc851x2&&null!=_0xc851x3){mxAbstractCanvas2D[_0x221c[202]][_0x221c[1246]][_0x221c[183]](this,arguments);var _0xc851x15=this[_0x221c[55]](_0x221c[1299]);_0xc851x15[_0x221c[57]](_0x221c[1300],_0xc851x2);_0xc851x15[_0x221c[57]](_0x221c[1301],_0xc851x3);_0xc851x15[_0x221c[57]](_0x221c[235],this[_0x221c[1239]](_0xc851x4));_0xc851x15[_0x221c[57]](_0x221c[236],this[_0x221c[1239]](_0xc851x5));_0xc851x15[_0x221c[57]](_0x221c[1302],this[_0x221c[1239]](_0xc851x9));_0xc851x15[_0x221c[57]](_0x221c[1303],this[_0x221c[1239]](_0xc851xa));null!=_0xc851x12&&_0xc851x15[_0x221c[57]](_0x221c[663],_0xc851x12);null!=_0xc851x13&&_0xc851x15[_0x221c[57]](_0x221c[1304],_0xc851x13);null!=_0xc851x14&&_0xc851x15[_0x221c[57]](_0x221c[1305],_0xc851x14);this[_0x221c[813]][_0x221c[62]](_0xc851x15)}};mxXmlCanvas2D[_0x221c[202]][_0x221c[1249]]=function(_0xc851x2){_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[608]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1249]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1306]);_0xc851x3[_0x221c[57]](_0x221c[352],null!=_0xc851x2?_0xc851x2:mxConstants[_0x221c[217]]);this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1250]]=function(_0xc851x2){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[610]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1250]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1307]);_0xc851x3[_0x221c[57]](_0x221c[117],this[_0x221c[1239]](_0xc851x2));this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1251]]=function(_0xc851x2){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[648]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1251]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[648]);_0xc851x3[_0x221c[57]](_0x221c[648],_0xc851x2?_0x221c[500]:_0x221c[468]);this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1252]]=function(_0xc851x2){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[649]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1252]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1308]);_0xc851x3[_0x221c[57]](_0x221c[1309],_0xc851x2);this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1253]]=function(_0xc851x2){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[1254]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1253]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1310]);_0xc851x3[_0x221c[57]](_0x221c[1311],_0xc851x2);this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1255]]=function(_0xc851x2){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[1256]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1255]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1312]);_0xc851x3[_0x221c[57]](_0x221c[234],_0xc851x2);this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1257]]=function(_0xc851x2){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[1258]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1257]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1313]);_0xc851x3[_0x221c[57]](_0x221c[1314],_0xc851x2);this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1259]]=function(_0xc851x2){if(this[_0x221c[1285]]){_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[665]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1259]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1315]);_0xc851x3[_0x221c[57]](_0x221c[352],null!=_0xc851x2?_0xc851x2:mxConstants[_0x221c[217]]);this[_0x221c[813]][_0x221c[62]](_0xc851x3)}};mxXmlCanvas2D[_0x221c[202]][_0x221c[1260]]=function(_0xc851x2){if(this[_0x221c[1285]]){_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[1261]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1260]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1316]);_0xc851x3[_0x221c[57]](_0x221c[352],null!=_0xc851x2?_0xc851x2:mxConstants[_0x221c[217]]);this[_0x221c[813]][_0x221c[62]](_0xc851x3)}};mxXmlCanvas2D[_0x221c[202]][_0x221c[1262]]=function(_0xc851x2){if(this[_0x221c[1285]]){_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[1263]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1262]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1317]);_0xc851x3[_0x221c[57]](_0x221c[352],null!=_0xc851x2?_0xc851x2:mxConstants[_0x221c[217]]);this[_0x221c[813]][_0x221c[62]](_0xc851x3)}};mxXmlCanvas2D[_0x221c[202]][_0x221c[1264]]=function(_0xc851x2){if(this[_0x221c[1285]]){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[487]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1264]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1289]);_0xc851x3[_0x221c[57]](_0x221c[803],_0xc851x2);this[_0x221c[813]][_0x221c[62]](_0xc851x3)}};mxXmlCanvas2D[_0x221c[202]][_0x221c[1265]]=function(_0xc851x2){if(this[_0x221c[1285]]){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[486]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1265]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1287]);_0xc851x3[_0x221c[57]](_0x221c[1288],_0xc851x2);this[_0x221c[813]][_0x221c[62]](_0xc851x3)}};mxXmlCanvas2D[_0x221c[202]][_0x221c[1266]]=function(_0xc851x2){if(this[_0x221c[1285]]){null==_0xc851x2&&(_0xc851x2=0);if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[666]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1266]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1318]);_0xc851x3[_0x221c[57]](_0x221c[124],_0xc851x2);this[_0x221c[813]][_0x221c[62]](_0xc851x3)}};mxXmlCanvas2D[_0x221c[202]][_0x221c[1267]]=function(_0xc851x2){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[639]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1267]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[639]);_0xc851x3[_0x221c[57]](_0x221c[984],_0xc851x2?_0x221c[500]:_0x221c[468]);this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1268]]=function(_0xc851x2){if(this[_0x221c[1286]]){_0xc851x2==mxConstants[_0x221c[217]]&&(_0xc851x2=null);if(this[_0x221c[724]][_0x221c[1269]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1268]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1290]);_0xc851x3[_0x221c[57]](_0x221c[352],null!=_0xc851x2?_0xc851x2:mxConstants[_0x221c[217]]);this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1270]]=function(_0xc851x2){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[1271]]==_0xc851x2){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1270]][_0x221c[183]](this,arguments)};var _0xc851x3=this[_0x221c[55]](_0x221c[1291]);_0xc851x3[_0x221c[57]](_0x221c[1244],_0xc851x2);this[_0x221c[813]][_0x221c[62]](_0xc851x3)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1272]]=function(_0xc851x2,_0xc851x3){if(this[_0x221c[1286]]){if(this[_0x221c[724]][_0x221c[1273]]==_0xc851x2&&this[_0x221c[724]][_0x221c[1274]]==_0xc851x3){return};mxAbstractCanvas2D[_0x221c[202]][_0x221c[1272]][_0x221c[183]](this,arguments)};var _0xc851x4=this[_0x221c[55]](_0x221c[1292]);_0xc851x4[_0x221c[57]](_0x221c[1126],_0xc851x2);_0xc851x4[_0x221c[57]](_0x221c[1125],_0xc851x3);this[_0x221c[813]][_0x221c[62]](_0xc851x4)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1319]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=this[_0x221c[55]](_0x221c[1319]);_0xc851x9[_0x221c[57]](_0x221c[235],this[_0x221c[1239]](_0xc851x2));_0xc851x9[_0x221c[57]](_0x221c[236],this[_0x221c[1239]](_0xc851x3));_0xc851x9[_0x221c[57]](_0x221c[1302],this[_0x221c[1239]](_0xc851x4));_0xc851x9[_0x221c[57]](_0x221c[1303],this[_0x221c[1239]](_0xc851x5));this[_0x221c[813]][_0x221c[62]](_0xc851x9)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1320]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){var _0xc851x12=this[_0x221c[55]](_0x221c[1320]);_0xc851x12[_0x221c[57]](_0x221c[235],this[_0x221c[1239]](_0xc851x2));_0xc851x12[_0x221c[57]](_0x221c[236],this[_0x221c[1239]](_0xc851x3));_0xc851x12[_0x221c[57]](_0x221c[1302],this[_0x221c[1239]](_0xc851x4));_0xc851x12[_0x221c[57]](_0x221c[1303],this[_0x221c[1239]](_0xc851x5));_0xc851x12[_0x221c[57]](_0x221c[1126],this[_0x221c[1239]](_0xc851x9));_0xc851x12[_0x221c[57]](_0x221c[1125],this[_0x221c[1239]](_0xc851xa));this[_0x221c[813]][_0x221c[62]](_0xc851x12)};mxXmlCanvas2D[_0x221c[202]][_0x221c[680]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=this[_0x221c[55]](_0x221c[680]);_0xc851x9[_0x221c[57]](_0x221c[235],this[_0x221c[1239]](_0xc851x2));_0xc851x9[_0x221c[57]](_0x221c[236],this[_0x221c[1239]](_0xc851x3));_0xc851x9[_0x221c[57]](_0x221c[1302],this[_0x221c[1239]](_0xc851x4));_0xc851x9[_0x221c[57]](_0x221c[1303],this[_0x221c[1239]](_0xc851x5));this[_0x221c[813]][_0x221c[62]](_0xc851x9)};mxXmlCanvas2D[_0x221c[202]][_0x221c[618]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13){_0xc851x9=this[_0x221c[1212]][_0x221c[1321]](_0xc851x9);var _0xc851x14=this[_0x221c[55]](_0x221c[618]);_0xc851x14[_0x221c[57]](_0x221c[235],this[_0x221c[1239]](_0xc851x2));_0xc851x14[_0x221c[57]](_0x221c[236],this[_0x221c[1239]](_0xc851x3));_0xc851x14[_0x221c[57]](_0x221c[1302],this[_0x221c[1239]](_0xc851x4));_0xc851x14[_0x221c[57]](_0x221c[1303],this[_0x221c[1239]](_0xc851x5));_0xc851x14[_0x221c[57]](_0x221c[390],_0xc851x9);_0xc851x14[_0x221c[57]](_0x221c[1322],_0xc851xa?_0x221c[500]:_0x221c[468]);_0xc851x14[_0x221c[57]](_0x221c[623],_0xc851x12?_0x221c[500]:_0x221c[468]);_0xc851x14[_0x221c[57]](_0x221c[624],_0xc851x13?_0x221c[500]:_0x221c[468]);this[_0x221c[813]][_0x221c[62]](_0xc851x14)};mxXmlCanvas2D[_0x221c[202]][_0x221c[1275]]=function(){this[_0x221c[813]][_0x221c[62]](this[_0x221c[55]](_0x221c[1275]));this[_0x221c[1218]]=this[_0x221c[1217]]=0};mxXmlCanvas2D[_0x221c[202]][_0x221c[1276]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[55]](_0x221c[582]);_0xc851x4[_0x221c[57]](_0x221c[235],this[_0x221c[1239]](_0xc851x2));_0xc851x4[_0x221c[57]](_0x221c[236],this[_0x221c[1239]](_0xc851x3));this[_0x221c[813]][_0x221c[62]](_0xc851x4);this[_0x221c[1217]]=_0xc851x2;this[_0x221c[1218]]=_0xc851x3};mxXmlCanvas2D[_0x221c[202]][_0x221c[1277]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[55]](_0x221c[683]);_0xc851x4[_0x221c[57]](_0x221c[235],this[_0x221c[1239]](_0xc851x2));_0xc851x4[_0x221c[57]](_0x221c[236],this[_0x221c[1239]](_0xc851x3));this[_0x221c[813]][_0x221c[62]](_0xc851x4);this[_0x221c[1217]]=_0xc851x2;this[_0x221c[1218]]=_0xc851x3};mxXmlCanvas2D[_0x221c[202]][_0x221c[1278]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=this[_0x221c[55]](_0x221c[1323]);_0xc851x9[_0x221c[57]](_0x221c[1324],this[_0x221c[1239]](_0xc851x2));_0xc851x9[_0x221c[57]](_0x221c[1325],this[_0x221c[1239]](_0xc851x3));_0xc851x9[_0x221c[57]](_0x221c[1326],this[_0x221c[1239]](_0xc851x4));_0xc851x9[_0x221c[57]](_0x221c[1327],this[_0x221c[1239]](_0xc851x5));this[_0x221c[813]][_0x221c[62]](_0xc851x9);this[_0x221c[1217]]=_0xc851x4;this[_0x221c[1218]]=_0xc851x5};mxXmlCanvas2D[_0x221c[202]][_0x221c[1279]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){var _0xc851x12=this[_0x221c[55]](_0x221c[1328]);_0xc851x12[_0x221c[57]](_0x221c[1324],this[_0x221c[1239]](_0xc851x2));_0xc851x12[_0x221c[57]](_0x221c[1325],this[_0x221c[1239]](_0xc851x3));_0xc851x12[_0x221c[57]](_0x221c[1326],this[_0x221c[1239]](_0xc851x4));_0xc851x12[_0x221c[57]](_0x221c[1327],this[_0x221c[1239]](_0xc851x5));_0xc851x12[_0x221c[57]](_0x221c[1329],this[_0x221c[1239]](_0xc851x9));_0xc851x12[_0x221c[57]](_0x221c[1330],this[_0x221c[1239]](_0xc851xa));this[_0x221c[813]][_0x221c[62]](_0xc851x12);this[_0x221c[1217]]=_0xc851x9;this[_0x221c[1218]]=_0xc851xa};mxXmlCanvas2D[_0x221c[202]][_0x221c[268]]=function(){this[_0x221c[813]][_0x221c[62]](this[_0x221c[55]](_0x221c[268]))};mxXmlCanvas2D[_0x221c[202]][_0x221c[963]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15,_0xc851x16,_0xc851x17){if(this[_0x221c[1285]]&&null!=_0xc851x9){mxUtils[_0x221c[1331]](_0xc851x9)&&(_0xc851x9=mxUtils[_0x221c[532]](_0xc851x9));var _0xc851x18=this[_0x221c[55]](_0x221c[963]);_0xc851x18[_0x221c[57]](_0x221c[235],this[_0x221c[1239]](_0xc851x2));_0xc851x18[_0x221c[57]](_0x221c[236],this[_0x221c[1239]](_0xc851x3));_0xc851x18[_0x221c[57]](_0x221c[1302],this[_0x221c[1239]](_0xc851x4));_0xc851x18[_0x221c[57]](_0x221c[1303],this[_0x221c[1239]](_0xc851x5));_0xc851x18[_0x221c[57]](_0x221c[1332],_0xc851x9);null!=_0xc851xa&&_0xc851x18[_0x221c[57]](_0x221c[611],_0xc851xa);null!=_0xc851x12&&_0xc851x18[_0x221c[57]](_0x221c[552],_0xc851x12);_0xc851x18[_0x221c[57]](_0x221c[1333],_0xc851x13?_0x221c[500]:_0x221c[468]);null==_0xc851x14&&(_0xc851x14=_0x221c[110]);_0xc851x18[_0x221c[57]](_0x221c[1239],_0xc851x14);null!=_0xc851x15&&_0xc851x18[_0x221c[57]](_0x221c[1334],_0xc851x15?_0x221c[500]:_0x221c[468]);null!=_0xc851x16&&_0xc851x18[_0x221c[57]](_0x221c[1335],_0xc851x16?_0x221c[500]:_0x221c[468]);null!=_0xc851x17&&_0xc851x18[_0x221c[57]](_0x221c[603],_0xc851x17);this[_0x221c[813]][_0x221c[62]](_0xc851x18)}};mxXmlCanvas2D[_0x221c[202]][_0x221c[1336]]=function(){this[_0x221c[813]][_0x221c[62]](this[_0x221c[55]](_0x221c[1336]))};mxXmlCanvas2D[_0x221c[202]][_0x221c[1334]]=function(){this[_0x221c[813]][_0x221c[62]](this[_0x221c[55]](_0x221c[1334]))};mxXmlCanvas2D[_0x221c[202]][_0x221c[1337]]=function(){this[_0x221c[813]][_0x221c[62]](this[_0x221c[55]](_0x221c[1338]))};function mxSvgCanvas2D(_0xc851x2,_0xc851x3){mxAbstractCanvas2D[_0x221c[239]](this);this[_0x221c[813]]=_0xc851x2;this[_0x221c[1339]]=[];this[_0x221c[1340]]=null;this[_0x221c[1341]]=null!=_0xc851x3?_0xc851x3:!1;var _0xc851x4=null;if(_0xc851x2[_0x221c[295]]!=document){for(_0xc851x4=_0xc851x2;null!=_0xc851x4&&_0x221c[571]!=_0xc851x4[_0x221c[301]];){_0xc851x4=_0xc851x4[_0x221c[265]]}};null!=_0xc851x4&&(0<_0xc851x4[_0x221c[64]](_0x221c[1340])[_0x221c[67]]&&(this[_0x221c[1340]]=_0xc851x4[_0x221c[64]](_0x221c[1340])[0]),null==this[_0x221c[1340]]&&(this[_0x221c[1340]]=this[_0x221c[55]](_0x221c[1340]),null!=_0xc851x4[_0x221c[285]]?_0xc851x4[_0x221c[950]](this[_0x221c[1340]],_0xc851x4[_0x221c[285]]):_0xc851x4[_0x221c[62]](this[_0x221c[1340]])),this[_0x221c[1341]]&&this[_0x221c[1340]][_0x221c[62]](this[_0x221c[1342]]()))}mxUtils[_0x221c[1284]](mxSvgCanvas2D,mxAbstractCanvas2D);mxSvgCanvas2D[_0x221c[202]][_0x221c[252]]=null;mxSvgCanvas2D[_0x221c[202]][_0x221c[1343]]= !0;mxSvgCanvas2D[_0x221c[202]][_0x221c[1285]]= !0;mxSvgCanvas2D[_0x221c[202]][_0x221c[1344]]= !0;mxSvgCanvas2D[_0x221c[202]][_0x221c[1345]]=0;mxSvgCanvas2D[_0x221c[202]][_0x221c[1346]]=0;mxSvgCanvas2D[_0x221c[202]][_0x221c[1347]]= !1;mxSvgCanvas2D[_0x221c[202]][_0x221c[862]]=function(){mxAbstractCanvas2D[_0x221c[202]][_0x221c[862]][_0x221c[183]](this,arguments);this[_0x221c[1339]]=[]};mxSvgCanvas2D[_0x221c[202]][_0x221c[1342]]=function(_0xc851x2){_0xc851x2=this[_0x221c[55]](_0x221c[124]);_0xc851x2[_0x221c[57]](_0x221c[60],_0x221c[61]);mxUtils[_0x221c[53]](_0xc851x2,_0x221c[1348]+mxConstants[_0x221c[484]]+_0x221c[1349]+mxConstants[_0x221c[483]]+_0x221c[1350]);return _0xc851x2};mxSvgCanvas2D[_0x221c[202]][_0x221c[55]]=function(_0xc851x2,_0xc851x3){if(null!=this[_0x221c[813]][_0x221c[295]][_0x221c[509]]){return this[_0x221c[813]][_0x221c[295]][_0x221c[509]](_0xc851x3||mxConstants[_0x221c[1351]],_0xc851x2)};var _0xc851x4=this[_0x221c[813]][_0x221c[295]][_0x221c[55]](_0xc851x2);null!=_0xc851x3&&_0xc851x4[_0x221c[57]](_0x221c[1352],_0xc851x3);return _0xc851x4};mxSvgCanvas2D[_0x221c[202]][_0x221c[1353]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0x221c[198]==_0xc851x2[_0x221c[225]](0)&&(_0xc851x2=_0xc851x2[_0x221c[85]](1));_0x221c[198]==_0xc851x3[_0x221c[225]](0)&&(_0xc851x3=_0xc851x3[_0x221c[85]](1));_0xc851x2=_0xc851x2[_0x221c[216]]()+_0x221c[213]+_0xc851x4;_0xc851x3=_0xc851x3[_0x221c[216]]()+_0x221c[213]+_0xc851x5;_0xc851x4=null;null==_0xc851x9||_0xc851x9==mxConstants[_0x221c[1354]]?_0xc851x4=_0x221c[1355]:_0xc851x9==mxConstants[_0x221c[1356]]?_0xc851x4=_0x221c[1357]:(_0xc851x5=_0xc851x2,_0xc851x2=_0xc851x3,_0xc851x3=_0xc851x5,_0xc851x9==mxConstants[_0x221c[1358]]?_0xc851x4=_0x221c[1355]:_0xc851x9==mxConstants[_0x221c[1359]]&&(_0xc851x4=_0x221c[1357]));return _0x221c[1360]+_0xc851x2+_0x221c[213]+_0xc851x3+_0x221c[213]+_0xc851x4};mxSvgCanvas2D[_0x221c[202]][_0x221c[1361]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=this[_0x221c[1353]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9),_0xc851x12=this[_0x221c[1339]][_0xc851xa];if(null==_0xc851x12){var _0xc851x13=this[_0x221c[813]][_0x221c[538]],_0xc851x14=0,_0xc851x15=_0xc851xa+_0x221c[213]+_0xc851x14;if(null!=_0xc851x13){for(_0xc851x12=_0xc851x13[_0x221c[295]][_0x221c[1362]](_0xc851x15);null!=_0xc851x12&&_0xc851x12[_0x221c[538]]!=_0xc851x13;){_0xc851x15=_0xc851xa+_0x221c[213]+_0xc851x14++,_0xc851x12=_0xc851x13[_0x221c[295]][_0x221c[1362]](_0xc851x15)}}else {_0xc851x15=_0x221c[1363]+++this[_0x221c[1346]]};null==_0xc851x12&&(_0xc851x12=this[_0x221c[1364]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9),_0xc851x12[_0x221c[57]](_0x221c[1363],_0xc851x15),null!=this[_0x221c[1340]]?this[_0x221c[1340]][_0x221c[62]](_0xc851x12):_0xc851x13[_0x221c[62]](_0xc851x12));this[_0x221c[1339]][_0xc851xa]=_0xc851x12};return _0xc851x12[_0x221c[284]](_0x221c[1363])};mxSvgCanvas2D[_0x221c[202]][_0x221c[1364]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=this[_0x221c[55]](_0x221c[1365]);_0xc851xa[_0x221c[57]](_0x221c[1324],_0x221c[1366]);_0xc851xa[_0x221c[57]](_0x221c[1325],_0x221c[1366]);_0xc851xa[_0x221c[57]](_0x221c[1326],_0x221c[1366]);_0xc851xa[_0x221c[57]](_0x221c[1327],_0x221c[1366]);null==_0xc851x9||_0xc851x9==mxConstants[_0x221c[1354]]?_0xc851xa[_0x221c[57]](_0x221c[1327],_0x221c[118]):_0xc851x9==mxConstants[_0x221c[1356]]?_0xc851xa[_0x221c[57]](_0x221c[1326],_0x221c[118]):_0xc851x9==mxConstants[_0x221c[1358]]?_0xc851xa[_0x221c[57]](_0x221c[1325],_0x221c[118]):_0xc851x9==mxConstants[_0x221c[1359]]&&_0xc851xa[_0x221c[57]](_0x221c[1324],_0x221c[118]);_0xc851x4=1>_0xc851x4?_0x221c[1367]+_0xc851x4:_0x221c[110];_0xc851x9=this[_0x221c[55]](_0x221c[1076]);_0xc851x9[_0x221c[57]](_0x221c[1368],_0x221c[1366]);_0xc851x9[_0x221c[57]](_0x221c[124],_0x221c[1369]+_0xc851x2+_0xc851x4);_0xc851xa[_0x221c[62]](_0xc851x9);_0xc851x4=1>_0xc851x5?_0x221c[1367]+_0xc851x5:_0x221c[110];_0xc851x9=this[_0x221c[55]](_0x221c[1076]);_0xc851x9[_0x221c[57]](_0x221c[1368],_0x221c[118]);_0xc851x9[_0x221c[57]](_0x221c[124],_0x221c[1369]+_0xc851x3+_0xc851x4);_0xc851xa[_0x221c[62]](_0xc851x9);return _0xc851xa};mxSvgCanvas2D[_0x221c[202]][_0x221c[1370]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[252]],_0xc851x5=this[_0x221c[724]];if(null!=_0xc851x4){if(_0x221c[1215]==_0xc851x4[_0x221c[301]]){if(null!=this[_0x221c[1215]]&&0<this[_0x221c[1215]][_0x221c[67]]){_0xc851x4[_0x221c[57]](_0x221c[1371],this[_0x221c[1215]][_0x221c[234]](_0x221c[185]))}else {return}};_0xc851x2&&null!=_0xc851x5[_0x221c[604]]?this[_0x221c[1372]]():this[_0x221c[1341]]||(_0x221c[680]==_0xc851x4[_0x221c[301]]&&mxClient[_0x221c[133]]&&!mxClient[_0x221c[76]]&&!mxClient[_0x221c[75]]?_0xc851x4[_0x221c[57]](_0x221c[1334],_0x221c[1373]):_0xc851x4[_0x221c[57]](_0x221c[1334],_0x221c[130]),_0xc851x2= !1);_0xc851x3&&null!=_0xc851x5[_0x221c[608]]?this[_0x221c[1374]]():this[_0x221c[1341]]||_0xc851x4[_0x221c[57]](_0x221c[1336],_0x221c[130]);null!=_0xc851x5[_0x221c[535]]&&0<_0xc851x5[_0x221c[535]][_0x221c[67]]&&_0xc851x4[_0x221c[57]](_0x221c[535],_0xc851x5[_0x221c[535]]);_0xc851x5[_0x221c[639]]&&this[_0x221c[813]][_0x221c[62]](this[_0x221c[1375]](_0xc851x4));0<this[_0x221c[1345]]&&!_0xc851x2&&this[_0x221c[813]][_0x221c[62]](this[_0x221c[1376]](_0xc851x4));this[_0x221c[1229]]&&(_0x221c[1215]!=_0xc851x4[_0x221c[301]]||this[_0x221c[1215]][this[_0x221c[1215]][_0x221c[67]]-1]==this[_0x221c[1227]])&&_0xc851x4[_0x221c[57]](_0x221c[1377],_0x221c[1378]);this[_0x221c[813]][_0x221c[62]](_0xc851x4)}};mxSvgCanvas2D[_0x221c[202]][_0x221c[1372]]=function(){var _0xc851x2=this[_0x221c[724]];1>_0xc851x2[_0x221c[1244]]&&this[_0x221c[252]][_0x221c[57]](_0x221c[1379],_0xc851x2[_0x221c[1244]]);null!=_0xc851x2[_0x221c[604]]&&(null!=_0xc851x2[_0x221c[606]]?(_0xc851x2=this[_0x221c[1361]](_0xc851x2[_0x221c[604]],_0xc851x2[_0x221c[606]],_0xc851x2[_0x221c[1247]],_0xc851x2[_0x221c[1248]],_0xc851x2[_0x221c[607]]),this[_0x221c[252]][_0x221c[57]](_0x221c[1334],_0x221c[1380]+_0xc851x2+_0x221c[460])):this[_0x221c[252]][_0x221c[57]](_0x221c[1334],_0xc851x2[_0x221c[604]][_0x221c[216]]()))};mxSvgCanvas2D[_0x221c[202]][_0x221c[1374]]=function(){var _0xc851x2=this[_0x221c[724]];this[_0x221c[252]][_0x221c[57]](_0x221c[1336],_0xc851x2[_0x221c[608]][_0x221c[216]]());1>_0xc851x2[_0x221c[1244]]&&this[_0x221c[252]][_0x221c[57]](_0x221c[1381],_0xc851x2[_0x221c[1244]]);var _0xc851x3=Math[_0x221c[160]](1,this[_0x221c[1239]](_0xc851x2[_0x221c[610]]*_0xc851x2[_0x221c[255]]));1!=_0xc851x3&&this[_0x221c[252]][_0x221c[57]](_0x221c[1382],_0xc851x3);_0x221c[1215]==this[_0x221c[252]][_0x221c[301]]&&this[_0x221c[1383]]();_0xc851x2[_0x221c[648]]&&this[_0x221c[252]][_0x221c[57]](_0x221c[1384],this[_0x221c[1385]](_0xc851x3))};mxSvgCanvas2D[_0x221c[202]][_0x221c[1383]]=function(){var _0xc851x2=this[_0x221c[724]];null!=_0xc851x2[_0x221c[1256]]&&_0x221c[1233]!=_0xc851x2[_0x221c[1256]]&&this[_0x221c[252]][_0x221c[57]](_0x221c[1386],_0xc851x2[_0x221c[1256]]);if(null!=_0xc851x2[_0x221c[1254]]){var _0xc851x3=_0xc851x2[_0x221c[1254]];_0x221c[1232]==_0xc851x3&&(_0xc851x3=_0x221c[1387]);_0x221c[1387]!=_0xc851x3&&this[_0x221c[252]][_0x221c[57]](_0x221c[1388],_0xc851x3)};null!=_0xc851x2[_0x221c[1258]]&&(!this[_0x221c[1341]]||10!=_0xc851x2[_0x221c[1258]])&&this[_0x221c[252]][_0x221c[57]](_0x221c[1389],_0xc851x2[_0x221c[1258]])};mxSvgCanvas2D[_0x221c[202]][_0x221c[1385]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[724]][_0x221c[649]][_0x221c[224]](_0x221c[185]),_0xc851x4=[];if(0<_0xc851x3[_0x221c[67]]){for(var _0xc851x5=0;_0xc851x5<_0xc851x3[_0x221c[67]];_0xc851x5++){_0xc851x4[_0xc851x5]=Number(_0xc851x3[_0xc851x5])*_0xc851x2}};return _0xc851x4[_0x221c[234]](_0x221c[185])};mxSvgCanvas2D[_0x221c[202]][_0x221c[1376]]=function(_0xc851x2){_0xc851x2=_0xc851x2[_0x221c[511]](!0);var _0xc851x3=parseFloat(_0xc851x2[_0x221c[284]](_0x221c[1382])||1)+this[_0x221c[1345]];_0xc851x2[_0x221c[57]](_0x221c[1377],_0x221c[1336]);_0xc851x2[_0x221c[57]](_0x221c[187],_0x221c[188]);_0xc851x2[_0x221c[1390]](_0x221c[1384]);_0xc851x2[_0x221c[57]](_0x221c[1382],_0xc851x3);_0xc851x2[_0x221c[57]](_0x221c[1334],_0x221c[130]);_0xc851x2[_0x221c[57]](_0x221c[1336],mxClient[_0x221c[71]]?_0x221c[130]:_0x221c[1391]);return _0xc851x2};mxSvgCanvas2D[_0x221c[202]][_0x221c[1375]]=function(_0xc851x2){_0xc851x2=_0xc851x2[_0x221c[511]](!0);var _0xc851x3=this[_0x221c[724]];_0x221c[130]!=_0xc851x2[_0x221c[284]](_0x221c[1334])&&_0xc851x2[_0x221c[57]](_0x221c[1334],_0xc851x3[_0x221c[1269]]);_0x221c[130]!=_0xc851x2[_0x221c[284]](_0x221c[1336])&&_0xc851x2[_0x221c[57]](_0x221c[1336],_0xc851x3[_0x221c[1269]]);_0xc851x2[_0x221c[57]](_0x221c[535],_0x221c[536]+this[_0x221c[1239]](_0xc851x3[_0x221c[1273]]*_0xc851x3[_0x221c[255]])+_0x221c[537]+this[_0x221c[1239]](_0xc851x3[_0x221c[1274]]*_0xc851x3[_0x221c[255]])+_0x221c[460]+(_0xc851x3[_0x221c[535]]||_0x221c[110]));_0xc851x2[_0x221c[57]](_0x221c[461],_0xc851x3[_0x221c[1271]]);return _0xc851x2};mxSvgCanvas2D[_0x221c[202]][_0x221c[1294]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){if(0!=_0xc851x2||_0xc851x3||_0xc851x4){var _0xc851xa=this[_0x221c[724]];_0xc851x5+=_0xc851xa[_0x221c[1126]];_0xc851x9+=_0xc851xa[_0x221c[1125]];_0xc851x5*=_0xc851xa[_0x221c[255]];_0xc851x9*=_0xc851xa[_0x221c[255]];_0xc851xa[_0x221c[535]]=_0xc851xa[_0x221c[535]]||_0x221c[110];if(_0xc851x3&&_0xc851x4){_0xc851x2+=180}else {if(_0xc851x3^_0xc851x4){var _0xc851x12=_0xc851x3?_0xc851x5:0,_0xc851x13=_0xc851x3?-1:1,_0xc851x14=_0xc851x4?_0xc851x9:0,_0xc851x15=_0xc851x4?-1:1;_0xc851xa[_0x221c[535]]+=_0x221c[536]+this[_0x221c[1239]](_0xc851x12)+_0x221c[537]+this[_0x221c[1239]](_0xc851x14)+_0x221c[1392]+this[_0x221c[1239]](_0xc851x13)+_0x221c[537]+this[_0x221c[1239]](_0xc851x15)+_0x221c[1393]+this[_0x221c[1239]](-_0xc851x12)+_0x221c[537]+this[_0x221c[1239]](-_0xc851x14)+_0x221c[460]}};if(_0xc851x3?!_0xc851x4:_0xc851x4){_0xc851x2*= -1};0!=_0xc851x2&&(_0xc851xa[_0x221c[535]]+=_0x221c[1394]+this[_0x221c[1239]](_0xc851x2)+_0x221c[537]+this[_0x221c[1239]](_0xc851x5)+_0x221c[537]+this[_0x221c[1239]](_0xc851x9)+_0x221c[460]);_0xc851xa[_0x221c[603]]+=_0xc851x2;_0xc851xa[_0x221c[1395]]=_0xc851x5;_0xc851xa[_0x221c[1396]]=_0xc851x9}};mxSvgCanvas2D[_0x221c[202]][_0x221c[1275]]=function(){mxAbstractCanvas2D[_0x221c[202]][_0x221c[1275]][_0x221c[183]](this,arguments);this[_0x221c[252]]=this[_0x221c[55]](_0x221c[1215])};mxSvgCanvas2D[_0x221c[202]][_0x221c[1319]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=this[_0x221c[724]],_0xc851xa=this[_0x221c[55]](_0x221c[1319]);_0xc851xa[_0x221c[57]](_0x221c[235],this[_0x221c[1239]]((_0xc851x2+_0xc851x9[_0x221c[1126]])*_0xc851x9[_0x221c[255]]));_0xc851xa[_0x221c[57]](_0x221c[236],this[_0x221c[1239]]((_0xc851x3+_0xc851x9[_0x221c[1125]])*_0xc851x9[_0x221c[255]]));_0xc851xa[_0x221c[57]](_0x221c[117],this[_0x221c[1239]](_0xc851x4*_0xc851x9[_0x221c[255]]));_0xc851xa[_0x221c[57]](_0x221c[119],this[_0x221c[1239]](_0xc851x5*_0xc851x9[_0x221c[255]]));this[_0x221c[252]]=_0xc851xa};mxSvgCanvas2D[_0x221c[202]][_0x221c[1320]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){this[_0x221c[1319]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5);0<_0xc851x9&&this[_0x221c[252]][_0x221c[57]](_0x221c[1397],this[_0x221c[1239]](_0xc851x9*this[_0x221c[724]][_0x221c[255]]));0<_0xc851xa&&this[_0x221c[252]][_0x221c[57]](_0x221c[1398],this[_0x221c[1239]](_0xc851xa*this[_0x221c[724]][_0x221c[255]]))};mxSvgCanvas2D[_0x221c[202]][_0x221c[680]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=this[_0x221c[724]],_0xc851xa=this[_0x221c[55]](_0x221c[680]);_0xc851xa[_0x221c[57]](_0x221c[1296],Math[_0x221c[488]]((_0xc851x2+_0xc851x4/2+_0xc851x9[_0x221c[1126]])*_0xc851x9[_0x221c[255]]));_0xc851xa[_0x221c[57]](_0x221c[1297],Math[_0x221c[488]]((_0xc851x3+_0xc851x5/2+_0xc851x9[_0x221c[1125]])*_0xc851x9[_0x221c[255]]));_0xc851xa[_0x221c[57]](_0x221c[1397],_0xc851x4/2*_0xc851x9[_0x221c[255]]);_0xc851xa[_0x221c[57]](_0x221c[1398],_0xc851x5/2*_0xc851x9[_0x221c[255]]);this[_0x221c[252]]=_0xc851xa};mxSvgCanvas2D[_0x221c[202]][_0x221c[618]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13){_0xc851x9=this[_0x221c[1212]][_0x221c[1321]](_0xc851x9);_0xc851xa=null!=_0xc851xa?_0xc851xa:!0;_0xc851x12=null!=_0xc851x12?_0xc851x12:!1;_0xc851x13=null!=_0xc851x13?_0xc851x13:!1;var _0xc851x14=this[_0x221c[724]];_0xc851x2+=_0xc851x14[_0x221c[1126]];_0xc851x3+=_0xc851x14[_0x221c[1125]];var _0xc851x15=this[_0x221c[55]](_0x221c[618]);_0xc851x15[_0x221c[57]](_0x221c[235],this[_0x221c[1239]](_0xc851x2*_0xc851x14[_0x221c[255]]));_0xc851x15[_0x221c[57]](_0x221c[236],this[_0x221c[1239]](_0xc851x3*_0xc851x14[_0x221c[255]]));_0xc851x15[_0x221c[57]](_0x221c[117],this[_0x221c[1239]](_0xc851x4*_0xc851x14[_0x221c[255]]));_0xc851x15[_0x221c[57]](_0x221c[119],this[_0x221c[1239]](_0xc851x5*_0xc851x14[_0x221c[255]]));null==_0xc851x15[_0x221c[1399]]?_0xc851x15[_0x221c[57]](_0x221c[1400],_0xc851x9):_0xc851x15[_0x221c[1399]](mxConstants.NS_XLINK,_0x221c[44],_0xc851x9);_0xc851xa||_0xc851x15[_0x221c[57]](_0x221c[1401],_0x221c[130]);1>_0xc851x14[_0x221c[1244]]&&_0xc851x15[_0x221c[57]](_0x221c[461],_0xc851x14[_0x221c[1244]]);_0xc851x9=this[_0x221c[724]][_0x221c[535]]||_0x221c[110];if(_0xc851x12||_0xc851x13){var _0xc851x16=_0xc851xa=1,_0xc851x17=0,_0xc851x18=0;_0xc851x12&&(_0xc851xa= -1,_0xc851x17=-_0xc851x4-2*_0xc851x2);_0xc851x13&&(_0xc851x16= -1,_0xc851x18=-_0xc851x5-2*_0xc851x3);_0xc851x9+=_0x221c[1402]+_0xc851xa+_0x221c[537]+_0xc851x16+_0x221c[1393]+_0xc851x17+_0x221c[537]+_0xc851x18+_0x221c[460]};0<_0xc851x9[_0x221c[67]]&&_0xc851x15[_0x221c[57]](_0x221c[535],_0xc851x9);this[_0x221c[813]][_0x221c[62]](_0xc851x15);this[_0x221c[1347]]&&(_0xc851x15[_0x221c[57]](_0x221c[124],_0x221c[1403]),_0xc851x15=this[_0x221c[55]](_0x221c[1319]),_0xc851x15[_0x221c[57]](_0x221c[187],_0x221c[188]),_0xc851x15[_0x221c[57]](_0x221c[1377],_0x221c[1334]),_0xc851x15[_0x221c[57]](_0x221c[235],this[_0x221c[1239]](_0xc851x2*_0xc851x14[_0x221c[255]])),_0xc851x15[_0x221c[57]](_0x221c[236],this[_0x221c[1239]](_0xc851x3*_0xc851x14[_0x221c[255]])),_0xc851x15[_0x221c[57]](_0x221c[117],this[_0x221c[1239]](_0xc851x4*_0xc851x14[_0x221c[255]])),_0xc851x15[_0x221c[57]](_0x221c[119],this[_0x221c[1239]](_0xc851x5*_0xc851x14[_0x221c[255]])),this[_0x221c[813]][_0x221c[62]](_0xc851x15))};mxSvgCanvas2D[_0x221c[202]][_0x221c[1404]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x4=this[_0x221c[724]];_0xc851x5=_0x221c[1405]+Math[_0x221c[488]](_0xc851x4[_0x221c[487]])+_0x221c[1406]+_0xc851x4[_0x221c[486]]+_0x221c[1407]+_0xc851x4[_0x221c[665]]+_0x221c[1408]+Math[_0x221c[488]](_0xc851x4[_0x221c[487]]*mxConstants[_0x221c[490]])+_0x221c[1409]+_0xc851x5;(_0xc851x4[_0x221c[666]]&mxConstants[_0x221c[1410]])==mxConstants[_0x221c[1410]]&&(_0xc851x5+=_0x221c[1411]);(_0xc851x4[_0x221c[666]]&mxConstants[_0x221c[1412]])==mxConstants[_0x221c[1412]]&&(_0xc851x5+=_0x221c[1413]);(_0xc851x4[_0x221c[666]]&mxConstants[_0x221c[1414]])==mxConstants[_0x221c[1414]]&&(_0xc851x5+=_0x221c[1415]);_0xc851x3==mxConstants[_0x221c[479]]?_0xc851x5+=_0x221c[1416]:_0xc851x3==mxConstants[_0x221c[480]]&&(_0xc851x5+=_0x221c[1417]);_0xc851x3=_0x221c[110];null!=_0xc851x4[_0x221c[1261]]&&(_0xc851x3+=_0x221c[1418]+_0xc851x4[_0x221c[1261]]+_0x221c[471]);null!=_0xc851x4[_0x221c[1263]]&&(_0xc851x3+=_0x221c[1419]+_0xc851x4[_0x221c[1263]]+_0x221c[471]);mxUtils[_0x221c[1331]](_0xc851x2)||(_0xc851x4=document[_0x221c[55]](_0x221c[126]),_0xc851x4[_0x221c[339]]=_0xc851x2[_0x221c[230]](/&lt;/g,_0x221c[1421])[_0x221c[230]](/&gt;/g,_0x221c[1420])[_0x221c[230]](/</g,_0x221c[334])[_0x221c[230]](/>/g,_0x221c[335]),_0xc851x2=_0xc851x4[_0x221c[131]],_0xc851x9?_0xc851x5+=_0xc851x3:0<_0xc851x3[_0x221c[67]]&&(_0xc851x2=_0x221c[1422]+_0xc851x3+_0x221c[1423]+_0xc851x2+_0x221c[1424]));if(!mxClient[_0x221c[80]]&&document[_0x221c[509]]){return _0xc851x9=document[_0x221c[509]](_0x221c[577],_0x221c[485]),_0xc851x9[_0x221c[57]](_0x221c[124],_0xc851x5),mxUtils[_0x221c[1331]](_0xc851x2)?this[_0x221c[813]][_0x221c[295]]!=document?_0xc851x9[_0x221c[62]](_0xc851x2[_0x221c[511]](!0)):_0xc851x9[_0x221c[62]](_0xc851x2):_0xc851x9[_0x221c[339]]=_0xc851x2,_0xc851x9};mxUtils[_0x221c[1331]](_0xc851x2)&&this[_0x221c[813]][_0x221c[295]]!=document&&(_0xc851x2=_0xc851x2[_0x221c[342]]);_0xc851x2=_0xc851x2[_0x221c[230]](/<br>/g,_0x221c[1426])[_0x221c[230]](/<hr>/g,_0x221c[1425]);return mxUtils[_0x221c[877]](_0x221c[1427]+_0xc851x5+_0x221c[1423]+_0xc851x2+_0x221c[1424])[_0x221c[158]]};mxSvgCanvas2D[_0x221c[202]][_0x221c[963]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15,_0xc851x16,_0xc851x17){if(this[_0x221c[1285]]&&null!=_0xc851x9){_0xc851x17=null!=_0xc851x17?_0xc851x17:0;var _0xc851x18=this[_0x221c[724]];_0xc851x2+=_0xc851x18[_0x221c[1126]];_0xc851x3+=_0xc851x18[_0x221c[1125]];if(this[_0x221c[1344]]&&_0x221c[1428]==_0xc851x14){var _0xc851x19=_0x221c[1429];_0xc851x16?(_0xc851x19+=_0x221c[1430],0<_0xc851x5&&(_0xc851x19+=_0x221c[1431]+Math[_0x221c[488]](_0xc851x5)+_0x221c[1409]),0<_0xc851x4&&(_0xc851x19+=_0x221c[1432]+Math[_0x221c[488]](_0xc851x4)+_0x221c[1409])):_0xc851x15&&(_0xc851x19+=_0x221c[1432]+Math[_0x221c[488]](_0xc851x4)+_0x221c[1409],0<_0xc851x5&&(_0xc851x19+=_0x221c[1431]+Math[_0x221c[488]](_0xc851x5)+_0x221c[1409]));_0xc851x13?(!_0xc851x16&&0<_0xc851x4&&(_0xc851x19+=_0x221c[1432]+Math[_0x221c[488]](_0xc851x4)+_0x221c[1409]),_0xc851x19+=_0x221c[1433]):_0xc851x19+=_0x221c[1434];_0xc851x13=this[_0x221c[55]](_0x221c[449]);1>_0xc851x18[_0x221c[1244]]&&_0xc851x13[_0x221c[57]](_0x221c[461],_0xc851x18[_0x221c[1244]]);_0xc851x14=this[_0x221c[55]](_0x221c[1435]);_0xc851x14[_0x221c[57]](_0x221c[1377],_0x221c[1378]);_0xc851x19=this[_0x221c[1404]](_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x19,_0xc851x15);if(null!=_0xc851x19){_0xc851x13[_0x221c[62]](_0xc851x14);this[_0x221c[813]][_0x221c[62]](_0xc851x13);var _0xc851x1a=0;if(mxClient[_0x221c[80]]&&!mxClient[_0x221c[48]]){var _0xc851x1b=document[_0x221c[55]](_0x221c[485]);_0xc851x1b[_0x221c[124]][_0x221c[103]]=_0xc851x19[_0x221c[284]](_0x221c[124]);_0xc851x1b[_0x221c[124]][_0x221c[495]]=mxClient[_0x221c[496]]?_0x221c[497]:_0x221c[498];_0xc851x1b[_0x221c[124]][_0x221c[187]]=_0x221c[188];_0xc851x1b[_0x221c[339]]=mxUtils[_0x221c[1331]](_0xc851x9)?_0xc851x9[_0x221c[342]]:_0xc851x9;document[_0x221c[112]][_0x221c[62]](_0xc851x1b);_0xc851x1a=_0xc851x1b[_0x221c[359]];_0xc851x5=mxClient[_0x221c[496]]&&0<_0xc851x5&&_0xc851x16?Math[_0x221c[243]](_0xc851x5,_0xc851x1b[_0x221c[167]]+2):_0xc851x1b[_0x221c[167]];_0xc851x1b[_0x221c[265]][_0x221c[266]](_0xc851x1b);_0xc851x14[_0x221c[62]](_0xc851x19)}else {this[_0x221c[813]][_0x221c[295]]!=document?(_0xc851x19[_0x221c[124]][_0x221c[187]]=_0x221c[188],document[_0x221c[112]][_0x221c[62]](_0xc851x19),_0xc851x1a=_0xc851x19[_0x221c[359]],_0xc851x5=_0xc851x19[_0x221c[167]],_0xc851x14[_0x221c[62]](_0xc851x19),_0xc851x19[_0x221c[124]][_0x221c[187]]=_0x221c[110]):(_0xc851x14[_0x221c[62]](_0xc851x19),_0xc851x1a=_0xc851x19[_0x221c[359]],_0xc851x5=_0xc851x19[_0x221c[167]])};_0xc851x4=_0xc851x15?Math[_0x221c[160]](_0xc851x4,_0xc851x1a):_0xc851x1a;1>_0xc851x18[_0x221c[1244]]&&_0xc851x13[_0x221c[57]](_0x221c[461],_0xc851x18[_0x221c[1244]]);_0xc851x15=_0xc851x9=0;_0xc851xa==mxConstants[_0x221c[479]]?_0xc851x9-=_0xc851x4/2:_0xc851xa==mxConstants[_0x221c[480]]&&(_0xc851x9-=_0xc851x4);_0xc851x2+=_0xc851x9;_0xc851x12==mxConstants[_0x221c[481]]?_0xc851x15-=_0xc851x5/2:_0xc851x12==mxConstants[_0x221c[482]]&&(_0xc851x15-=_0xc851x5);_0xc851x3+=_0xc851x15;_0xc851xa=1!=_0xc851x18[_0x221c[255]]?_0x221c[1402]+_0xc851x18[_0x221c[255]]+_0x221c[460]:_0x221c[110];0!=_0xc851x18[_0x221c[603]]&&this[_0x221c[1216]]?(_0xc851xa+=_0x221c[1394]+_0xc851x18[_0x221c[603]]+_0x221c[537]+_0xc851x4/2+_0x221c[537]+_0xc851x5/2+_0x221c[460],_0xc851x3=this[_0x221c[1241]]((_0xc851x2+_0xc851x4/2)*_0xc851x18[_0x221c[255]],(_0xc851x3+_0xc851x5/2)*_0xc851x18[_0x221c[255]],_0xc851x18[_0x221c[603]],_0xc851x18[_0x221c[1395]],_0xc851x18[_0x221c[1396]]),_0xc851x2=_0xc851x3[_0x221c[235]]-_0xc851x4*_0xc851x18[_0x221c[255]]/2,_0xc851x3=_0xc851x3[_0x221c[236]]-_0xc851x5*_0xc851x18[_0x221c[255]]/2):(_0xc851x2*=_0xc851x18[_0x221c[255]],_0xc851x3*=_0xc851x18[_0x221c[255]]);0!=_0xc851x17&&(_0xc851xa+=_0x221c[1394]+_0xc851x17+_0x221c[537]+-_0xc851x9+_0x221c[537]+-_0xc851x15+_0x221c[460]);_0xc851x13[_0x221c[57]](_0x221c[535],_0x221c[536]+Math[_0x221c[488]](_0xc851x2)+_0x221c[537]+Math[_0x221c[488]](_0xc851x3)+_0x221c[460]+_0xc851xa);_0xc851x14[_0x221c[57]](_0x221c[117],Math[_0x221c[488]](Math[_0x221c[160]](1,_0xc851x4)));_0xc851x14[_0x221c[57]](_0x221c[119],Math[_0x221c[488]](Math[_0x221c[160]](1,_0xc851x5)))}}else {this[_0x221c[1436]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x15,_0xc851x16,_0xc851x17)}}};mxSvgCanvas2D[_0x221c[202]][_0x221c[1437]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x2=Math[_0x221c[488]](_0xc851x2);_0xc851x3=Math[_0x221c[488]](_0xc851x3);_0xc851x4=Math[_0x221c[488]](_0xc851x4);_0xc851x5=Math[_0x221c[488]](_0xc851x5);for(var _0xc851x9=_0x221c[1438]+_0xc851x2+_0x221c[213]+_0xc851x3+_0x221c[213]+_0xc851x4+_0x221c[213]+_0xc851x5,_0xc851xa=0,_0xc851x12=_0xc851x9+_0x221c[213]+_0xc851xa;null!=document[_0x221c[1362]](_0xc851x12);){_0xc851x12=_0xc851x9+_0x221c[213]+ ++_0xc851xa};clip=this[_0x221c[55]](_0x221c[1439]);clip[_0x221c[57]](_0x221c[1363],_0xc851x12);_0xc851x9=this[_0x221c[55]](_0x221c[1319]);_0xc851x9[_0x221c[57]](_0x221c[235],_0xc851x2);_0xc851x9[_0x221c[57]](_0x221c[236],_0xc851x3);_0xc851x9[_0x221c[57]](_0x221c[117],_0xc851x4);_0xc851x9[_0x221c[57]](_0x221c[119],_0xc851x5);clip[_0x221c[62]](_0xc851x9);return clip};mxSvgCanvas2D[_0x221c[202]][_0x221c[1436]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15,_0xc851x16){_0xc851x16=null!=_0xc851x16?_0xc851x16:0;_0xc851x13=this[_0x221c[724]];var _0xc851x17=Math[_0x221c[488]](_0xc851x13[_0x221c[487]]),_0xc851x18=this[_0x221c[55]](_0x221c[449]),_0xc851x19=_0xc851x13[_0x221c[535]]||_0x221c[110];0!=_0xc851x16&&(_0xc851x19+=_0x221c[1394]+_0xc851x16+_0x221c[537]+this[_0x221c[1239]](_0xc851x2*_0xc851x13[_0x221c[255]])+_0x221c[537]+this[_0x221c[1239]](_0xc851x3*_0xc851x13[_0x221c[255]])+_0x221c[460]);if(_0xc851x15&&0<_0xc851x4&&0<_0xc851x5){var _0xc851x1a=_0xc851x2;_0xc851x16=_0xc851x3;_0xc851xa==mxConstants[_0x221c[479]]?_0xc851x1a-=_0xc851x4/2:_0xc851xa==mxConstants[_0x221c[480]]&&(_0xc851x1a-=_0xc851x4);_0xc851x12==mxConstants[_0x221c[481]]?_0xc851x16-=_0xc851x5/2:_0xc851x12==mxConstants[_0x221c[482]]&&(_0xc851x16-=_0xc851x5);_0xc851x16=this[_0x221c[1437]](_0xc851x1a*_0xc851x13[_0x221c[255]]-2,_0xc851x16*_0xc851x13[_0x221c[255]]-2,_0xc851x4*_0xc851x13[_0x221c[255]]+4,_0xc851x5*_0xc851x13[_0x221c[255]]+4);null!=this[_0x221c[1340]]?this[_0x221c[1340]][_0x221c[62]](_0xc851x16):this[_0x221c[813]][_0x221c[62]](_0xc851x16);_0xc851x18[_0x221c[57]](_0x221c[1440],_0x221c[1380]+_0xc851x16[_0x221c[284]](_0x221c[1363])+_0x221c[460])};this[_0x221c[1441]](_0xc851x18,_0xc851xa);_0xc851x16=_0xc851xa==mxConstants[_0x221c[480]]?_0x221c[1282]:_0xc851xa==mxConstants[_0x221c[479]]?_0x221c[554]:_0x221c[861];_0x221c[861]!=_0xc851x16&&_0xc851x18[_0x221c[57]](_0x221c[1442],_0xc851x16);(!this[_0x221c[1341]]||_0xc851x17!=mxConstants[_0x221c[483]])&&_0xc851x18[_0x221c[57]](_0x221c[1443],Math[_0x221c[488]](_0xc851x17*_0xc851x13[_0x221c[255]])+_0x221c[168]);0<_0xc851x19[_0x221c[67]]&&_0xc851x18[_0x221c[57]](_0x221c[535],_0xc851x19);1>_0xc851x13[_0x221c[1244]]&&_0xc851x18[_0x221c[57]](_0x221c[461],_0xc851x13[_0x221c[1244]]);var _0xc851x19=_0xc851x9[_0x221c[224]](_0x221c[192]),_0xc851x1a=Math[_0x221c[488]](_0xc851x17*mxConstants[_0x221c[490]]),_0xc851x1b=_0xc851x17+(_0xc851x19[_0x221c[67]]-1)*_0xc851x1a;_0xc851x16=_0xc851x3+_0xc851x17-1;_0xc851x12==mxConstants[_0x221c[481]]?(_0xc851x5=(this[_0x221c[1343]]&&_0xc851x15&&0<_0xc851x5?Math[_0x221c[243]](_0xc851x1b,_0xc851x5):_0xc851x1b)/2,_0xc851x16-=_0xc851x5+1):_0xc851x12==mxConstants[_0x221c[482]]&&(_0xc851x5=this[_0x221c[1343]]&&_0xc851x15&&0<_0xc851x5?Math[_0x221c[243]](_0xc851x1b,_0xc851x5):_0xc851x1b,_0xc851x16-=_0xc851x5+2);for(_0xc851x5=0;_0xc851x5<_0xc851x19[_0x221c[67]];_0xc851x5++){0<_0xc851x19[_0xc851x5][_0x221c[67]]&&0<mxUtils[_0x221c[330]](_0xc851x19[_0xc851x5])[_0x221c[67]]&&(_0xc851x15=this[_0x221c[55]](_0x221c[963]),_0xc851x15[_0x221c[57]](_0x221c[235],this[_0x221c[1239]](_0xc851x2*_0xc851x13[_0x221c[255]])),_0xc851x15[_0x221c[57]](_0x221c[236],this[_0x221c[1239]](_0xc851x16*_0xc851x13[_0x221c[255]])),mxUtils[_0x221c[53]](_0xc851x15,_0xc851x19[_0xc851x5]),_0xc851x18[_0x221c[62]](_0xc851x15)),_0xc851x16+=_0xc851x1a};this[_0x221c[813]][_0x221c[62]](_0xc851x18);this[_0x221c[1444]](_0xc851x18,_0xc851x9,_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x1b,_0xc851xa,_0xc851x12,_0xc851x14)};mxSvgCanvas2D[_0x221c[202]][_0x221c[1441]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[724]];_0xc851x2[_0x221c[57]](_0x221c[1334],_0xc851x3[_0x221c[665]]);(!this[_0x221c[1341]]||_0xc851x3[_0x221c[486]]!=mxConstants[_0x221c[484]])&&_0xc851x2[_0x221c[57]](_0x221c[1445],_0xc851x3[_0x221c[486]]);(_0xc851x3[_0x221c[666]]&mxConstants[_0x221c[1410]])==mxConstants[_0x221c[1410]]&&_0xc851x2[_0x221c[57]](_0x221c[1446],_0x221c[1447]);(_0xc851x3[_0x221c[666]]&mxConstants[_0x221c[1412]])==mxConstants[_0x221c[1412]]&&_0xc851x2[_0x221c[57]](_0x221c[1448],_0x221c[1449]);(_0xc851x3[_0x221c[666]]&mxConstants[_0x221c[1414]])==mxConstants[_0x221c[1414]]&&_0xc851x2[_0x221c[57]](_0x221c[1450],_0x221c[355])};mxSvgCanvas2D[_0x221c[202]][_0x221c[1444]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14){var _0xc851x15=this[_0x221c[724]];if(null!=_0xc851x15[_0x221c[1261]]||null!=_0xc851x15[_0x221c[1263]]){var _0xc851x16=null;_0xc851x14?(_0xc851x12==mxConstants[_0x221c[479]]?_0xc851x4-=_0xc851x9/2:_0xc851x12==mxConstants[_0x221c[480]]&&(_0xc851x4-=_0xc851x9),_0xc851x13==mxConstants[_0x221c[481]]?_0xc851x5-=_0xc851xa/2:_0xc851x13==mxConstants[_0x221c[482]]&&(_0xc851x5-=_0xc851xa),_0xc851x16= new mxRectangle((_0xc851x4+1)*_0xc851x15[_0x221c[255]],_0xc851x5*_0xc851x15[_0x221c[255]],(_0xc851x9-2)*_0xc851x15[_0x221c[255]],(_0xc851xa+2)*_0xc851x15[_0x221c[255]])):null!=_0xc851x2[_0x221c[1451]]&&this[_0x221c[813]][_0x221c[295]]==document?(_0xc851x16=_0xc851x2[_0x221c[1451]](),_0xc851x3=mxClient[_0x221c[80]]&&mxClient[_0x221c[48]],_0xc851x16= new mxRectangle(_0xc851x16[_0x221c[235]],_0xc851x16[_0x221c[236]]+(_0xc851x3?0:1),_0xc851x16[_0x221c[117]],_0xc851x16[_0x221c[119]]+(_0xc851x3?1:0))):(_0xc851x16=document[_0x221c[55]](_0x221c[485]),_0xc851x16[_0x221c[124]][_0x221c[489]]=Math[_0x221c[488]](_0xc851x15[_0x221c[487]]*mxConstants[_0x221c[490]])+_0x221c[168],_0xc851x16[_0x221c[124]][_0x221c[487]]=Math[_0x221c[488]](_0xc851x15[_0x221c[487]])+_0x221c[168],_0xc851x16[_0x221c[124]][_0x221c[486]]=_0xc851x15[_0x221c[486]],_0xc851x16[_0x221c[124]][_0x221c[493]]=_0x221c[494],_0xc851x16[_0x221c[124]][_0x221c[491]]=_0x221c[492],_0xc851x16[_0x221c[124]][_0x221c[187]]=_0x221c[188],_0xc851x16[_0x221c[124]][_0x221c[495]]=mxClient[_0x221c[496]]?_0x221c[497]:_0x221c[498],_0xc851x16[_0x221c[124]][_0x221c[499]]=_0x221c[500],(_0xc851x15[_0x221c[666]]&mxConstants[_0x221c[1410]])==mxConstants[_0x221c[1410]]&&(_0xc851x16[_0x221c[124]][_0x221c[1452]]=_0x221c[1447]),(_0xc851x15[_0x221c[666]]&mxConstants[_0x221c[1412]])==mxConstants[_0x221c[1412]]&&(_0xc851x16[_0x221c[124]][_0x221c[666]]=_0x221c[1449]),_0xc851x3=mxUtils[_0x221c[321]](_0xc851x3,!1),_0xc851x16[_0x221c[339]]=_0xc851x3[_0x221c[230]](/\n/g,_0x221c[1453]),document[_0x221c[112]][_0x221c[62]](_0xc851x16),_0xc851x9=_0xc851x16[_0x221c[359]],_0xc851xa=_0xc851x16[_0x221c[167]],_0xc851x16[_0x221c[265]][_0x221c[266]](_0xc851x16),_0xc851x12==mxConstants[_0x221c[479]]?_0xc851x4-=_0xc851x9/2:_0xc851x12==mxConstants[_0x221c[480]]&&(_0xc851x4-=_0xc851x9),_0xc851x13==mxConstants[_0x221c[481]]?_0xc851x5-=_0xc851xa/2:_0xc851x13==mxConstants[_0x221c[482]]&&(_0xc851x5-=_0xc851xa),_0xc851x16= new mxRectangle((_0xc851x4+1)*_0xc851x15[_0x221c[255]],(_0xc851x5+2)*_0xc851x15[_0x221c[255]],_0xc851x9*_0xc851x15[_0x221c[255]],(_0xc851xa+1)*_0xc851x15[_0x221c[255]]));null!=_0xc851x16&&(_0xc851x3=this[_0x221c[55]](_0x221c[1319]),_0xc851x3[_0x221c[57]](_0x221c[1334],_0xc851x15[_0x221c[1261]]||_0x221c[130]),_0xc851x3[_0x221c[57]](_0x221c[1336],_0xc851x15[_0x221c[1263]]||_0x221c[130]),_0xc851x3[_0x221c[57]](_0x221c[235],Math[_0x221c[519]](_0xc851x16[_0x221c[235]]-1)),_0xc851x3[_0x221c[57]](_0x221c[236],Math[_0x221c[519]](_0xc851x16[_0x221c[236]]-1)),_0xc851x3[_0x221c[57]](_0x221c[117],Math[_0x221c[430]](_0xc851x16[_0x221c[117]]+2)),_0xc851x3[_0x221c[57]](_0x221c[119],Math[_0x221c[430]](_0xc851x16[_0x221c[119]])),_0xc851x15=null!=_0xc851x15[_0x221c[1263]]?Math[_0x221c[160]](1,this[_0x221c[1239]](_0xc851x15[_0x221c[255]])):0,_0xc851x3[_0x221c[57]](_0x221c[1382],_0xc851x15),this[_0x221c[813]][_0x221c[295]]==document&&1==mxUtils[_0x221c[1454]](_0xc851x15,2)&&_0xc851x3[_0x221c[57]](_0x221c[535],_0x221c[1455]),_0xc851x2[_0x221c[950]](_0xc851x3,_0xc851x2[_0x221c[285]]))}};mxSvgCanvas2D[_0x221c[202]][_0x221c[1336]]=function(){this[_0x221c[1370]](!1,!0)};mxSvgCanvas2D[_0x221c[202]][_0x221c[1334]]=function(){this[_0x221c[1370]](!0,!1)};mxSvgCanvas2D[_0x221c[202]][_0x221c[1337]]=function(){this[_0x221c[1370]](!0,!0)};var mxVmlCanvas2D=function(_0xc851x2){mxAbstractCanvas2D[_0x221c[239]](this);this[_0x221c[813]]=_0xc851x2};mxUtils[_0x221c[1284]](mxVmlCanvas2D,mxAbstractCanvas2D);mxVmlCanvas2D[_0x221c[202]][_0x221c[252]]=null;mxVmlCanvas2D[_0x221c[202]][_0x221c[1285]]= !0;mxVmlCanvas2D[_0x221c[202]][_0x221c[1219]]=_0x221c[1456];mxVmlCanvas2D[_0x221c[202]][_0x221c[1221]]=_0x221c[1457];mxVmlCanvas2D[_0x221c[202]][_0x221c[1225]]=_0x221c[1458];mxVmlCanvas2D[_0x221c[202]][_0x221c[1227]]=_0x221c[235];mxVmlCanvas2D[_0x221c[202]][_0x221c[1459]]=_0x221c[110];mxVmlCanvas2D[_0x221c[202]][_0x221c[1460]]=1;mxVmlCanvas2D[_0x221c[202]][_0x221c[1370]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[252]],_0xc851x5=this[_0x221c[724]];if(null!=_0xc851x4){if(_0x221c[253]==_0xc851x4[_0x221c[301]]){if(null!=this[_0x221c[1215]]&&0<this[_0x221c[1215]][_0x221c[67]]){_0xc851x4[_0x221c[1215]]=this[_0x221c[1215]][_0x221c[234]](_0x221c[185])+_0x221c[1461],_0xc851x4[_0x221c[124]][_0x221c[117]]=this[_0x221c[813]][_0x221c[124]][_0x221c[117]],_0xc851x4[_0x221c[124]][_0x221c[119]]=this[_0x221c[813]][_0x221c[124]][_0x221c[119]],_0xc851x4[_0x221c[1462]]=parseInt(_0xc851x4[_0x221c[124]][_0x221c[117]])+_0x221c[185]+parseInt(_0xc851x4[_0x221c[124]][_0x221c[119]])}else {return}};_0xc851x4[_0x221c[1463]]=this[_0x221c[1239]](Math[_0x221c[160]](1,_0xc851x5[_0x221c[610]]*_0xc851x5[_0x221c[255]]/this[_0x221c[1460]]))+_0x221c[168];_0xc851x5[_0x221c[639]]&&this[_0x221c[813]][_0x221c[62]](this[_0x221c[1375]](_0xc851x4,_0xc851x2&&null!=_0xc851x5[_0x221c[604]],_0xc851x3&&null!=_0xc851x5[_0x221c[608]]));_0xc851x3&&null!=_0xc851x5[_0x221c[608]]?(_0xc851x4[_0x221c[1464]]=_0x221c[128],_0xc851x4[_0x221c[1306]]=_0xc851x5[_0x221c[608]]):_0xc851x4[_0x221c[1464]]=_0x221c[308];_0xc851x4[_0x221c[62]](this[_0x221c[1465]]());_0xc851x2&&null!=_0xc851x5[_0x221c[604]]?_0xc851x4[_0x221c[62]](this[_0x221c[1466]]()):this[_0x221c[1229]]&&(_0x221c[253]!=_0xc851x4[_0x221c[301]]||this[_0x221c[1215]][this[_0x221c[1215]][_0x221c[67]]-1]==this[_0x221c[1227]])?_0xc851x4[_0x221c[62]](this[_0x221c[1467]]()):_0xc851x4[_0x221c[1468]]=_0x221c[308];this[_0x221c[813]][_0x221c[62]](_0xc851x4)}};mxVmlCanvas2D[_0x221c[202]][_0x221c[1467]]=function(){var _0xc851x2=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1469]);_0xc851x2[_0x221c[390]]=mxClient[_0x221c[88]]+_0x221c[1470];_0xc851x2[_0x221c[60]]=_0x221c[1471];return _0xc851x2};mxVmlCanvas2D[_0x221c[202]][_0x221c[1466]]=function(){var _0xc851x2=this[_0x221c[724]],_0xc851x3=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1469]);_0xc851x3[_0x221c[352]]=_0xc851x2[_0x221c[604]];if(null!=_0xc851x2[_0x221c[606]]){_0xc851x3[_0x221c[60]]=_0x221c[1299];_0xc851x3[_0x221c[865]]=_0x221c[130];_0xc851x3[_0x221c[1472]]=_0xc851x2[_0x221c[606]];var _0xc851x4=180-_0xc851x2[_0x221c[603]],_0xc851x4=_0xc851x2[_0x221c[607]]==mxConstants[_0x221c[1359]]?_0xc851x4-(90+(_0x221c[235]==this[_0x221c[813]][_0x221c[124]][_0x221c[1473]]?180:0)):_0xc851x2[_0x221c[607]]==mxConstants[_0x221c[1356]]?_0xc851x4+(90+(_0x221c[235]==this[_0x221c[813]][_0x221c[124]][_0x221c[1473]]?180:0)):_0xc851x2[_0x221c[607]]==mxConstants[_0x221c[1358]]?_0xc851x4-(180+(_0x221c[236]==this[_0x221c[813]][_0x221c[124]][_0x221c[1473]]?-180:0)):_0xc851x4+(_0x221c[236]==this[_0x221c[813]][_0x221c[124]][_0x221c[1473]]?-180:0);if(_0x221c[235]==this[_0x221c[813]][_0x221c[124]][_0x221c[1473]]||_0x221c[236]==this[_0x221c[813]][_0x221c[124]][_0x221c[1473]]){_0xc851x4*= -1};_0xc851x3[_0x221c[1474]]=mxUtils[_0x221c[1454]](_0xc851x4,360);_0xc851x3[_0x221c[461]]=100*_0xc851x2[_0x221c[1244]]*_0xc851x2[_0x221c[1247]]+_0x221c[229];_0xc851x3[_0x221c[57]](mxClient[_0x221c[1475]]+_0x221c[1476],100*_0xc851x2[_0x221c[1244]]*_0xc851x2[_0x221c[1248]]+_0x221c[229])}else {1>_0xc851x2[_0x221c[1244]]&&(_0xc851x3[_0x221c[461]]=100*_0xc851x2[_0x221c[1244]]+_0x221c[229])};return _0xc851x3};mxVmlCanvas2D[_0x221c[202]][_0x221c[1465]]=function(){var _0xc851x2=this[_0x221c[724]],_0xc851x3=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1477]);_0xc851x3[_0x221c[1478]]=_0xc851x2[_0x221c[1254]]||_0x221c[1232];_0xc851x3[_0x221c[1479]]=_0xc851x2[_0x221c[1256]]||_0x221c[1233];_0xc851x3[_0x221c[1313]]=_0xc851x2[_0x221c[1258]]||_0x221c[1480];1>_0xc851x2[_0x221c[1244]]&&(_0xc851x3[_0x221c[461]]=100*_0xc851x2[_0x221c[1244]]+_0x221c[229]);_0xc851x2[_0x221c[648]]&&(_0xc851x3[_0x221c[1481]]=this[_0x221c[1482]]());return _0xc851x3};mxVmlCanvas2D[_0x221c[202]][_0x221c[1482]]=function(){var _0xc851x2=_0x221c[1483];if(null!=this[_0x221c[724]][_0x221c[649]]){var _0xc851x3=this[_0x221c[724]][_0x221c[649]][_0x221c[224]](_0x221c[185]);0<_0xc851x3[_0x221c[67]]&&1==_0xc851x3[0]&&(_0xc851x2=_0x221c[1484])};return _0xc851x2};mxVmlCanvas2D[_0x221c[202]][_0x221c[1375]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[724]],_0xc851x9=-_0xc851x5[_0x221c[603]]*(Math[_0x221c[424]]/180),_0xc851xa=Math[_0x221c[426]](_0xc851x9),_0xc851x9=Math[_0x221c[427]](_0xc851x9),_0xc851x12=_0xc851x5[_0x221c[1273]]*_0xc851x5[_0x221c[255]],_0xc851x13=_0xc851x5[_0x221c[1274]]*_0xc851x5[_0x221c[255]];_0x221c[235]==this[_0x221c[813]][_0x221c[124]][_0x221c[1473]]?_0xc851x12*= -1:_0x221c[236]==this[_0x221c[813]][_0x221c[124]][_0x221c[1473]]&&(_0xc851x13*= -1);var _0xc851x14=_0xc851x2[_0x221c[511]](!0);_0xc851x14[_0x221c[124]][_0x221c[945]]=Math[_0x221c[488]](_0xc851x12*_0xc851xa-_0xc851x13*_0xc851x9)+_0x221c[168];_0xc851x14[_0x221c[124]][_0x221c[953]]=Math[_0x221c[488]](_0xc851x12*_0xc851x9+_0xc851x13*_0xc851xa)+_0x221c[168];8==document[_0x221c[5]]&&(_0xc851x14[_0x221c[1463]]=_0xc851x2[_0x221c[1463]],_0x221c[253]==_0xc851x2[_0x221c[301]]&&(_0xc851x14[_0x221c[1215]]=this[_0x221c[1215]][_0x221c[234]](_0x221c[185])+_0x221c[1461],_0xc851x14[_0x221c[124]][_0x221c[117]]=this[_0x221c[813]][_0x221c[124]][_0x221c[117]],_0xc851x14[_0x221c[124]][_0x221c[119]]=this[_0x221c[813]][_0x221c[124]][_0x221c[119]],_0xc851x14[_0x221c[1462]]=parseInt(_0xc851x2[_0x221c[124]][_0x221c[117]])+_0x221c[185]+parseInt(_0xc851x2[_0x221c[124]][_0x221c[119]])));_0xc851x4?(_0xc851x14[_0x221c[1306]]=_0xc851x5[_0x221c[1269]],_0xc851x14[_0x221c[62]](this[_0x221c[1485]]())):_0xc851x14[_0x221c[1464]]=_0x221c[308];_0xc851x3?_0xc851x14[_0x221c[62]](this[_0x221c[1486]]()):_0xc851x14[_0x221c[1468]]=_0x221c[308];return _0xc851x14};mxVmlCanvas2D[_0x221c[202]][_0x221c[1486]]=function(){var _0xc851x2=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1469]);_0xc851x2[_0x221c[352]]=this[_0x221c[724]][_0x221c[1269]];_0xc851x2[_0x221c[461]]=100*this[_0x221c[724]][_0x221c[1244]]*this[_0x221c[724]][_0x221c[1271]]+_0x221c[229];return _0xc851x2};mxVmlCanvas2D[_0x221c[202]][_0x221c[1485]]=function(){var _0xc851x2=this[_0x221c[1465]]();_0xc851x2[_0x221c[461]]=100*this[_0x221c[724]][_0x221c[1244]]*this[_0x221c[724]][_0x221c[1271]]+_0x221c[229];return _0xc851x2};mxVmlCanvas2D[_0x221c[202]][_0x221c[1294]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x3&&_0xc851x4?_0xc851x2+=180:_0xc851x3?this[_0x221c[813]][_0x221c[124]][_0x221c[1473]]=_0x221c[235]:_0xc851x4&&(this[_0x221c[813]][_0x221c[124]][_0x221c[1473]]=_0x221c[236]);if(_0xc851x3?!_0xc851x4:_0xc851x4){_0xc851x2*= -1};this[_0x221c[813]][_0x221c[124]][_0x221c[603]]=_0xc851x2;this[_0x221c[724]][_0x221c[603]]+=_0xc851x2;this[_0x221c[724]][_0x221c[1395]]=_0xc851x5;this[_0x221c[724]][_0x221c[1396]]=_0xc851x9};mxVmlCanvas2D[_0x221c[202]][_0x221c[1275]]=function(){mxAbstractCanvas2D[_0x221c[202]][_0x221c[1275]][_0x221c[183]](this,arguments);this[_0x221c[252]]=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1487]);this[_0x221c[252]][_0x221c[124]][_0x221c[491]]=_0x221c[492]};mxVmlCanvas2D[_0x221c[202]][_0x221c[1278]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=this[_0x221c[724]],_0xc851xa=(this[_0x221c[1217]]+_0xc851x9[_0x221c[1126]])*_0xc851x9[_0x221c[255]],_0xc851x12=(this[_0x221c[1218]]+_0xc851x9[_0x221c[1125]])*_0xc851x9[_0x221c[255]];_0xc851x2=(_0xc851x2+_0xc851x9[_0x221c[1126]])*_0xc851x9[_0x221c[255]];_0xc851x3=(_0xc851x3+_0xc851x9[_0x221c[1125]])*_0xc851x9[_0x221c[255]];_0xc851x4=(_0xc851x4+_0xc851x9[_0x221c[1126]])*_0xc851x9[_0x221c[255]];_0xc851x5=(_0xc851x5+_0xc851x9[_0x221c[1125]])*_0xc851x9[_0x221c[255]];var _0xc851x12=_0xc851x12+2/3*(_0xc851x3-_0xc851x12),_0xc851x13=_0xc851x4+2/3*(_0xc851x2-_0xc851x4);_0xc851x3=_0xc851x5+2/3*(_0xc851x3-_0xc851x5);this[_0x221c[1215]][_0x221c[207]](_0x221c[1488]+this[_0x221c[1239]](_0xc851xa+2/3*(_0xc851x2-_0xc851xa))+_0x221c[185]+this[_0x221c[1239]](_0xc851x12)+_0x221c[185]+this[_0x221c[1239]](_0xc851x13)+_0x221c[185]+this[_0x221c[1239]](_0xc851x3)+_0x221c[185]+this[_0x221c[1239]](_0xc851x4)+_0x221c[185]+this[_0x221c[1239]](_0xc851x5));this[_0x221c[1217]]=_0xc851x4/_0xc851x9[_0x221c[255]]-_0xc851x9[_0x221c[1126]];this[_0x221c[1218]]=_0xc851x5/_0xc851x9[_0x221c[255]]-_0xc851x9[_0x221c[1125]]};mxVmlCanvas2D[_0x221c[202]][_0x221c[1489]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=this[_0x221c[724]];_0xc851x2=document[_0x221c[55]](_0xc851x2);_0xc851x2[_0x221c[124]][_0x221c[491]]=_0x221c[492];_0xc851x2[_0x221c[124]][_0x221c[361]]=this[_0x221c[1239]]((_0xc851x3+_0xc851xa[_0x221c[1126]])*_0xc851xa[_0x221c[255]])+_0x221c[168];_0xc851x2[_0x221c[124]][_0x221c[125]]=this[_0x221c[1239]]((_0xc851x4+_0xc851xa[_0x221c[1125]])*_0xc851xa[_0x221c[255]])+_0x221c[168];_0xc851x2[_0x221c[124]][_0x221c[117]]=this[_0x221c[1239]](_0xc851x5*_0xc851xa[_0x221c[255]])+_0x221c[168];_0xc851x2[_0x221c[124]][_0x221c[119]]=this[_0x221c[1239]](_0xc851x9*_0xc851xa[_0x221c[255]])+_0x221c[168];return _0xc851x2};mxVmlCanvas2D[_0x221c[202]][_0x221c[1319]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[252]]=this[_0x221c[1489]](mxClient[_0x221c[463]]+_0x221c[1490],_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5)};mxVmlCanvas2D[_0x221c[202]][_0x221c[1320]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){this[_0x221c[252]]=this[_0x221c[1489]](mxClient[_0x221c[463]]+_0x221c[1491],_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5);this[_0x221c[252]][_0x221c[57]](_0x221c[1492],Math[_0x221c[160]](100*_0xc851x9/_0xc851x4,100*_0xc851xa/_0xc851x5)+_0x221c[229])};mxVmlCanvas2D[_0x221c[202]][_0x221c[680]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[252]]=this[_0x221c[1489]](mxClient[_0x221c[463]]+_0x221c[1493],_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5)};mxVmlCanvas2D[_0x221c[202]][_0x221c[618]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13){var _0xc851x14=null;_0xc851xa?(_0xc851x14=this[_0x221c[1489]](mxClient[_0x221c[463]]+_0x221c[1490],_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5),_0xc851x14[_0x221c[1464]]=_0x221c[308],_0xc851x2=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1469]),_0xc851x2[_0x221c[1322]]=_0xc851xa?_0x221c[1494]:_0x221c[1495],_0xc851x2[_0x221c[1294]]=_0x221c[128],_0xc851x2[_0x221c[60]]=_0x221c[1496],_0xc851x2[_0x221c[390]]=_0xc851x9,_0xc851x14[_0x221c[62]](_0xc851x2)):(_0xc851x14=this[_0x221c[1489]](mxClient[_0x221c[463]]+_0x221c[464],_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5),_0xc851x14[_0x221c[390]]=_0xc851x9);_0xc851x12&&_0xc851x13?_0xc851x14[_0x221c[124]][_0x221c[603]]=_0x221c[1497]:_0xc851x12?_0xc851x14[_0x221c[124]][_0x221c[1473]]=_0x221c[235]:_0xc851x13&&(_0xc851x14[_0x221c[124]][_0x221c[1473]]=_0x221c[236]);1>this[_0x221c[724]][_0x221c[1244]]&&(_0xc851x14[_0x221c[124]][_0x221c[347]]+=_0x221c[459]+100*this[_0x221c[724]][_0x221c[1244]]+_0x221c[460]);this[_0x221c[813]][_0x221c[62]](_0xc851x14)};mxVmlCanvas2D[_0x221c[202]][_0x221c[1404]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x4=document[_0x221c[55]](_0x221c[485]);var _0xc851x9=this[_0x221c[724]],_0xc851xa=_0x221c[110];null!=_0xc851x9[_0x221c[1261]]&&(_0xc851xa+=_0x221c[1418]+_0xc851x9[_0x221c[1261]]+_0x221c[471]);null!=_0xc851x9[_0x221c[1263]]&&(_0xc851xa+=_0x221c[1419]+_0xc851x9[_0x221c[1263]]+_0x221c[471]);mxUtils[_0x221c[1331]](_0xc851x2)?_0xc851x4[_0x221c[62]](_0xc851x2):0<_0xc851xa[_0x221c[67]]&&!_0xc851x5?(_0xc851x5=document[_0x221c[55]](_0x221c[485]),_0xc851x5[_0x221c[124]][_0x221c[103]]=_0xc851xa,_0xc851x5[_0x221c[124]][_0x221c[495]]=mxClient[_0x221c[496]]?_0x221c[497]:_0x221c[498],_0xc851x5[_0x221c[124]][_0x221c[499]]=_0x221c[500],_0xc851x5[_0x221c[339]]=_0xc851x2,_0xc851x4[_0x221c[62]](_0xc851x5)):(_0xc851x4[_0x221c[124]][_0x221c[103]]=_0xc851xa,_0xc851x4[_0x221c[339]]=_0xc851x2);_0xc851x2=_0xc851x4[_0x221c[124]];_0xc851x2[_0x221c[487]]=Math[_0x221c[488]](_0xc851x9[_0x221c[487]]/this[_0x221c[1460]])+_0x221c[168];_0xc851x2[_0x221c[486]]=_0xc851x9[_0x221c[486]];_0xc851x2[_0x221c[352]]=_0xc851x9[_0x221c[665]];_0xc851x2[_0x221c[123]]=_0x221c[125];_0xc851x2[_0x221c[1165]]=_0xc851x3||_0x221c[361];_0xc851x2[_0x221c[489]]=Math[_0x221c[488]](_0xc851x9[_0x221c[487]]*mxConstants[_0x221c[490]]/this[_0x221c[1460]])+_0x221c[168];(_0xc851x9[_0x221c[666]]&mxConstants[_0x221c[1410]])==mxConstants[_0x221c[1410]]&&(_0xc851x2[_0x221c[1452]]=_0x221c[1447]);(_0xc851x9[_0x221c[666]]&mxConstants[_0x221c[1412]])==mxConstants[_0x221c[1412]]&&(_0xc851x2[_0x221c[666]]=_0x221c[1449]);(_0xc851x9[_0x221c[666]]&mxConstants[_0x221c[1414]])==mxConstants[_0x221c[1414]]&&(_0xc851x2[_0x221c[1498]]=_0x221c[355]);return _0xc851x4};mxVmlCanvas2D[_0x221c[202]][_0x221c[963]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15,_0xc851x16,_0xc851x17){if(this[_0x221c[1285]]&&null!=_0xc851x9){var _0xc851x18=this[_0x221c[724]];if(_0x221c[1428]==_0xc851x14){null!=_0xc851x18[_0x221c[603]]&&(_0xc851x3=this[_0x221c[1241]](_0xc851x2,_0xc851x3,_0xc851x18[_0x221c[603]],_0xc851x18[_0x221c[1395]],_0xc851x18[_0x221c[1396]]),_0xc851x2=_0xc851x3[_0x221c[235]],_0xc851x3=_0xc851x3[_0x221c[236]]);8==document[_0x221c[5]]?(_0xc851x2+=_0xc851x18[_0x221c[1126]],_0xc851x3+=_0xc851x18[_0x221c[1125]]):(_0xc851x2*=_0xc851x18[_0x221c[255]],_0xc851x3*=_0xc851x18[_0x221c[255]]);_0xc851x14=8==document[_0x221c[5]]?document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1499]):document[_0x221c[55]](_0x221c[485]);_0xc851x14[_0x221c[124]][_0x221c[491]]=_0x221c[492];_0xc851x14[_0x221c[124]][_0x221c[495]]=_0x221c[497];_0xc851x14[_0x221c[124]][_0x221c[361]]=this[_0x221c[1239]](_0xc851x2)+_0x221c[168];_0xc851x14[_0x221c[124]][_0x221c[125]]=this[_0x221c[1239]](_0xc851x3)+_0x221c[168];_0xc851x14[_0x221c[124]][_0x221c[499]]=_0xc851x18[_0x221c[255]];var _0xc851x19=document[_0x221c[55]](_0x221c[485]);_0xc851x19[_0x221c[124]][_0x221c[491]]=_0x221c[1500];_0xc851x19[_0x221c[124]][_0x221c[495]]=_0x221c[497];var _0xc851x1a=mxUtils[_0x221c[1501]](_0xc851xa,_0xc851x12),_0xc851x1b=_0xc851x1a[_0x221c[235]],_0xc851x1a=_0xc851x1a[_0x221c[236]];_0xc851x9=this[_0x221c[1404]](_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x15);_0xc851xa=document[_0x221c[55]](_0x221c[485]);_0xc851x13?(!_0xc851x16&&0<_0xc851x4&&(_0xc851x9[_0x221c[124]][_0x221c[117]]=Math[_0x221c[488]](_0xc851x4)+_0x221c[168]),_0xc851x9[_0x221c[124]][_0x221c[493]]=_0x221c[1502]):_0xc851x9[_0x221c[124]][_0x221c[493]]=_0x221c[494];_0xc851x13=_0xc851x18[_0x221c[603]]+(_0xc851x17||0);this[_0x221c[1216]]&&0!=_0xc851x13?(_0xc851xa[_0x221c[124]][_0x221c[495]]=_0x221c[497],_0xc851xa[_0x221c[124]][_0x221c[499]]=_0x221c[500],_0xc851xa[_0x221c[62]](_0xc851x9),8==document[_0x221c[5]]&&_0x221c[529]!=this[_0x221c[813]][_0x221c[301]]?(_0xc851x19[_0x221c[62]](_0xc851xa),_0xc851x14[_0x221c[62]](_0xc851x19)):_0xc851x14[_0x221c[62]](_0xc851xa)):8==document[_0x221c[5]]?(_0xc851x19[_0x221c[62]](_0xc851x9),_0xc851x14[_0x221c[62]](_0xc851x19)):(_0xc851x9[_0x221c[124]][_0x221c[495]]=_0x221c[497],_0xc851x14[_0x221c[62]](_0xc851x9));_0x221c[529]!=this[_0x221c[813]][_0x221c[301]]?(_0xc851x17=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1490]),_0xc851x17[_0x221c[1464]]=_0x221c[308],_0xc851x17[_0x221c[1468]]=_0x221c[308],_0xc851x17[_0x221c[62]](_0xc851x14),this[_0x221c[813]][_0x221c[62]](_0xc851x17)):this[_0x221c[813]][_0x221c[62]](_0xc851x14);_0xc851x16?(_0xc851x9[_0x221c[124]][_0x221c[277]]=_0x221c[188],0<_0xc851x4&&(_0xc851x9[_0x221c[124]][_0x221c[117]]=Math[_0x221c[488]](_0xc851x4)+_0x221c[168]),0<_0xc851x5&&8==document[_0x221c[5]]&&(_0xc851x9[_0x221c[124]][_0x221c[1503]]=Math[_0x221c[488]](_0xc851x5)+_0x221c[168])):_0xc851x15&&(_0xc851x9[_0x221c[124]][_0x221c[117]]=_0xc851x4+_0x221c[168],0<_0xc851x5&&(_0xc851x9[_0x221c[124]][_0x221c[1503]]=Math[_0x221c[488]](_0xc851x5)+_0x221c[168]));if(this[_0x221c[1216]]&&0!=_0xc851x13){_0xc851x4=_0xc851x13*(Math[_0x221c[424]]/180);_0xc851x13=parseFloat(parseFloat(Math[_0x221c[426]](_0xc851x4))[_0x221c[1293]](8));_0xc851x17=parseFloat(parseFloat(Math[_0x221c[427]](-_0xc851x4))[_0x221c[1293]](8));_0xc851x4%=2*Math[_0x221c[424]];0>_0xc851x4&&(_0xc851x4+=2*Math[_0x221c[424]]);_0xc851x4%=Math[_0x221c[424]];_0xc851x4>Math[_0x221c[424]]/2&&(_0xc851x4=Math[_0x221c[424]]-_0xc851x4);_0xc851x12=Math[_0x221c[426]](_0xc851x4);var _0xc851x1c=Math[_0x221c[427]](_0xc851x4);8==document[_0x221c[5]]&&(_0xc851x9[_0x221c[124]][_0x221c[495]]=_0x221c[498],_0xc851xa[_0x221c[124]][_0x221c[495]]=_0x221c[498],_0xc851x19[_0x221c[124]][_0x221c[495]]=_0x221c[498]);_0xc851x9[_0x221c[124]][_0x221c[187]]=_0x221c[188];document[_0x221c[112]][_0x221c[62]](_0xc851x9);_0xc851x4=_0xc851x9[_0x221c[359]];_0xc851x19=_0xc851x9[_0x221c[167]];if(mxClient[_0x221c[496]]&&(_0xc851x16||_0xc851x15)&&_0xc851x19>_0xc851x5){_0xc851x19=_0xc851x5,_0xc851x9[_0x221c[124]][_0x221c[119]]=_0xc851x19+_0x221c[168]};_0xc851x5=_0xc851x19;_0xc851x16=(_0xc851x5-_0xc851x5*_0xc851x12+_0xc851x4* -_0xc851x1c)/2-_0xc851x17*_0xc851x4*(_0xc851x1b+0.5)+_0xc851x13*_0xc851x5*(_0xc851x1a+0.5);_0xc851x15=(_0xc851x4-_0xc851x4*_0xc851x12+_0xc851x5* -_0xc851x1c)/2+_0xc851x13*_0xc851x4*(_0xc851x1b+0.5)+_0xc851x17*_0xc851x5*(_0xc851x1a+0.5);_0x221c[1504]==_0xc851x14[_0x221c[301]]&&_0x221c[529]==this[_0x221c[813]][_0x221c[301]]?(_0xc851x1b=document[_0x221c[55]](_0x221c[485]),_0xc851x1b[_0x221c[124]][_0x221c[495]]=_0x221c[498],_0xc851x1b[_0x221c[124]][_0x221c[491]]=_0x221c[492],_0xc851x1b[_0x221c[124]][_0x221c[361]]=this[_0x221c[1239]](_0xc851x2+(_0xc851x15-_0xc851x4/2)*_0xc851x18[_0x221c[255]])+_0x221c[168],_0xc851x1b[_0x221c[124]][_0x221c[125]]=this[_0x221c[1239]](_0xc851x3+(_0xc851x16-_0xc851x5/2)*_0xc851x18[_0x221c[255]])+_0x221c[168],_0xc851x14[_0x221c[265]][_0x221c[62]](_0xc851x1b),_0xc851x1b[_0x221c[62]](_0xc851x14)):(_0xc851x18=8==document[_0x221c[5]]?1:_0xc851x18[_0x221c[255]],_0xc851x14[_0x221c[124]][_0x221c[361]]=this[_0x221c[1239]](_0xc851x2+(_0xc851x15-_0xc851x4/2)*_0xc851x18)+_0x221c[168],_0xc851x14[_0x221c[124]][_0x221c[125]]=this[_0x221c[1239]](_0xc851x3+(_0xc851x16-_0xc851x5/2)*_0xc851x18)+_0x221c[168]);_0xc851xa[_0x221c[124]][_0x221c[347]]=_0x221c[1505]+_0xc851x13+_0x221c[1506]+_0xc851x17+_0x221c[1507]+-_0xc851x17+_0x221c[1508]+_0xc851x13+_0x221c[1509];_0xc851xa[_0x221c[124]][_0x221c[1028]]=this[_0x221c[1459]];1>this[_0x221c[724]][_0x221c[1244]]&&(_0xc851xa[_0x221c[124]][_0x221c[347]]+=_0x221c[459]+100*this[_0x221c[724]][_0x221c[1244]]+_0x221c[460]);_0xc851x9[_0x221c[124]][_0x221c[187]]=_0x221c[110];_0xc851xa[_0x221c[62]](_0xc851x9)}else {8!=document[_0x221c[5]]?(_0xc851x9[_0x221c[124]][_0x221c[123]]=_0x221c[125],1>this[_0x221c[724]][_0x221c[1244]]&&(_0xc851x14[_0x221c[124]][_0x221c[347]]=_0x221c[459]+100*this[_0x221c[724]][_0x221c[1244]]+_0x221c[460]),_0xc851x18=_0xc851x9[_0x221c[265]],_0xc851x9[_0x221c[124]][_0x221c[187]]=_0x221c[188],document[_0x221c[112]][_0x221c[62]](_0xc851x9),_0xc851x4=_0xc851x9[_0x221c[359]],_0xc851x19=_0xc851x9[_0x221c[167]],mxClient[_0x221c[496]]&&(_0xc851x16&&_0xc851x19>_0xc851x5)&&(_0xc851x19=_0xc851x5,_0xc851x9[_0x221c[124]][_0x221c[119]]=_0xc851x19+_0x221c[168]),_0xc851x5=_0xc851x19,_0xc851x9[_0x221c[124]][_0x221c[187]]=_0x221c[110],_0xc851x18[_0x221c[62]](_0xc851x9),_0xc851x14[_0x221c[124]][_0x221c[361]]=this[_0x221c[1239]](_0xc851x2+_0xc851x4*_0xc851x1b*this[_0x221c[724]][_0x221c[255]])+_0x221c[168],_0xc851x14[_0x221c[124]][_0x221c[125]]=this[_0x221c[1239]](_0xc851x3+_0xc851x5*_0xc851x1a*this[_0x221c[724]][_0x221c[255]])+_0x221c[168]):(1>this[_0x221c[724]][_0x221c[1244]]&&(_0xc851x9[_0x221c[124]][_0x221c[347]]=_0x221c[459]+100*this[_0x221c[724]][_0x221c[1244]]+_0x221c[460]),_0xc851x19[_0x221c[124]][_0x221c[361]]=100*_0xc851x1b+_0x221c[229],_0xc851x19[_0x221c[124]][_0x221c[125]]=100*_0xc851x1a+_0x221c[229])}}else {this[_0x221c[1436]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,mxUtils[_0x221c[321]](_0xc851x9,!1),_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15,_0xc851x16,_0xc851x17)}}};mxVmlCanvas2D[_0x221c[202]][_0x221c[1436]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15,_0xc851x16,_0xc851x17){_0xc851x5=this[_0x221c[724]];_0xc851x2=(_0xc851x2+_0xc851x5[_0x221c[1126]])*_0xc851x5[_0x221c[255]];_0xc851x3=(_0xc851x3+_0xc851x5[_0x221c[1125]])*_0xc851x5[_0x221c[255]];_0xc851x4=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1487]);_0xc851x4[_0x221c[124]][_0x221c[117]]=_0x221c[942];_0xc851x4[_0x221c[124]][_0x221c[119]]=_0x221c[942];_0xc851x4[_0x221c[1464]]=_0x221c[308];_0xc851x15=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1469]);_0xc851x15[_0x221c[352]]=_0xc851x5[_0x221c[665]];_0xc851x15[_0x221c[461]]=100*_0xc851x5[_0x221c[1244]]+_0x221c[229];_0xc851x4[_0x221c[62]](_0xc851x15);_0xc851x15=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1510]);_0xc851x15[_0x221c[1511]]=_0x221c[128];_0xc851x15[_0x221c[6]]=_0x221c[1512]+this[_0x221c[1239]](0)+_0x221c[185]+this[_0x221c[1239]](0)+_0x221c[1513]+this[_0x221c[1239]](1)+_0x221c[185]+this[_0x221c[1239]](0);_0xc851x4[_0x221c[62]](_0xc851x15);_0xc851x15=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1514]);_0xc851x15[_0x221c[124]][_0x221c[103]]=_0x221c[1515]+_0xc851xa;_0xc851x15[_0x221c[124]][_0x221c[611]]=_0xc851xa;_0xc851x15[_0x221c[124]][_0x221c[486]]=_0xc851x5[_0x221c[486]];_0xc851x15[_0x221c[1516]]=_0xc851x9;_0xc851x15[_0x221c[747]]=_0x221c[128];_0xc851xa=Math[_0x221c[488]](_0xc851x5[_0x221c[487]]*_0xc851x5[_0x221c[255]]/this[_0x221c[1460]]);_0xc851x15[_0x221c[124]][_0x221c[487]]=_0xc851xa+_0x221c[168];(_0xc851x5[_0x221c[666]]&mxConstants[_0x221c[1410]])==mxConstants[_0x221c[1410]]&&(_0xc851x15[_0x221c[124]][_0x221c[1452]]=_0x221c[1447]);(_0xc851x5[_0x221c[666]]&mxConstants[_0x221c[1412]])==mxConstants[_0x221c[1412]]&&(_0xc851x15[_0x221c[124]][_0x221c[666]]=_0x221c[1449]);(_0xc851x5[_0x221c[666]]&mxConstants[_0x221c[1414]])==mxConstants[_0x221c[1414]]&&(_0xc851x15[_0x221c[124]][_0x221c[354]]=_0x221c[355]);_0xc851x9=_0xc851x9[_0x221c[224]](_0x221c[192]);_0xc851x5=_0xc851xa+(_0xc851x9[_0x221c[67]]-1)*_0xc851xa*mxConstants[_0x221c[490]];_0xc851xa=_0xc851x9=0;_0xc851x12==mxConstants[_0x221c[482]]?_0xc851xa=-_0xc851x5/2:_0xc851x12!=mxConstants[_0x221c[481]]&&(_0xc851xa=_0xc851x5/2);null!=_0xc851x17&&(_0xc851x4[_0x221c[124]][_0x221c[603]]=_0xc851x17,_0xc851x12=_0xc851x17*(Math[_0x221c[424]]/180),_0xc851x9=Math[_0x221c[427]](_0xc851x12)*_0xc851xa,_0xc851xa*=Math[_0x221c[426]](_0xc851x12));_0xc851x4[_0x221c[62]](_0xc851x15);_0xc851x4[_0x221c[124]][_0x221c[361]]=this[_0x221c[1239]](_0xc851x2-_0xc851x9)+_0x221c[168];_0xc851x4[_0x221c[124]][_0x221c[125]]=this[_0x221c[1239]](_0xc851x3+_0xc851xa)+_0x221c[168];this[_0x221c[813]][_0x221c[62]](_0xc851x4)};mxVmlCanvas2D[_0x221c[202]][_0x221c[1336]]=function(){this[_0x221c[1370]](!1,!0)};mxVmlCanvas2D[_0x221c[202]][_0x221c[1334]]=function(){this[_0x221c[1370]](!0,!1)};mxVmlCanvas2D[_0x221c[202]][_0x221c[1337]]=function(){this[_0x221c[1370]](!0,!0)};function mxGuide(_0xc851x2,_0xc851x3){this[_0x221c[1179]]=_0xc851x2;this[_0x221c[1517]](_0xc851x3)}mxGuide[_0x221c[202]][_0x221c[1179]]=null;mxGuide[_0x221c[202]][_0x221c[1214]]=null;mxGuide[_0x221c[202]][_0x221c[662]]= !0;mxGuide[_0x221c[202]][_0x221c[704]]= !0;mxGuide[_0x221c[202]][_0x221c[1518]]=null;mxGuide[_0x221c[202]][_0x221c[1519]]=null;mxGuide[_0x221c[202]][_0x221c[1517]]=function(_0xc851x2){this[_0x221c[1214]]=_0xc851x2};mxGuide[_0x221c[202]][_0x221c[1019]]=function(_0xc851x2){return !0};mxGuide[_0x221c[202]][_0x221c[1520]]=function(){return this[_0x221c[1179]][_0x221c[1020]]*this[_0x221c[1179]][_0x221c[441]][_0x221c[255]]/2};mxGuide[_0x221c[202]][_0x221c[1521]]=function(_0xc851x2){_0xc851x2= new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH);_0xc851x2[_0x221c[1522]]= !0;return _0xc851x2};mxGuide[_0x221c[202]][_0x221c[582]]=function(_0xc851x2,_0xc851x3,_0xc851x4){if(null!=this[_0x221c[1214]]&&(this[_0x221c[662]]||this[_0x221c[704]])&&null!=_0xc851x2&&null!=_0xc851x3){var _0xc851x5=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[513]],_0xc851x9=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]],_0xc851xa=_0xc851x3[_0x221c[235]],_0xc851x12=_0xc851x3[_0x221c[236]],_0xc851x13=!1,_0xc851x14=!1,_0xc851x15=this[_0x221c[1520]](),_0xc851x16=_0xc851x15,_0xc851x17=_0xc851x15,_0xc851x15=_0xc851x2[_0x221c[238]]();_0xc851x15[_0x221c[235]]+=_0xc851x3[_0x221c[235]];_0xc851x15[_0x221c[236]]+=_0xc851x3[_0x221c[236]];var _0xc851x18=_0xc851x15[_0x221c[235]],_0xc851x19=_0xc851x15[_0x221c[235]]+_0xc851x15[_0x221c[117]],_0xc851x1a=_0xc851x15[_0x221c[241]](),_0xc851x1b=_0xc851x15[_0x221c[236]],_0xc851x1c=_0xc851x15[_0x221c[236]]+_0xc851x15[_0x221c[119]],_0xc851x1d=_0xc851x15[_0x221c[242]]();_0xc851x3=function(_0xc851x3){_0xc851x3+=this[_0x221c[1179]][_0x221c[1136]];var _0xc851x4=!1;Math[_0x221c[425]](_0xc851x3-_0xc851x1a)<_0xc851x16?(_0xc851xa=_0xc851x3-_0xc851x2[_0x221c[241]](),_0xc851x16=Math[_0x221c[425]](_0xc851x3-_0xc851x1a),_0xc851x4= !0):Math[_0x221c[425]](_0xc851x3-_0xc851x18)<_0xc851x16?(_0xc851xa=_0xc851x3-_0xc851x2[_0x221c[235]],_0xc851x16=Math[_0x221c[425]](_0xc851x3-_0xc851x18),_0xc851x4= !0):Math[_0x221c[425]](_0xc851x3-_0xc851x19)<_0xc851x16&&(_0xc851xa=_0xc851x3-_0xc851x2[_0x221c[235]]-_0xc851x2[_0x221c[117]],_0xc851x16=Math[_0x221c[425]](_0xc851x3-_0xc851x19),_0xc851x4= !0);if(_0xc851x4){null==this[_0x221c[1518]]&&(this[_0x221c[1518]]=this[_0x221c[1521]](!0),this[_0x221c[1518]][_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]!=mxConstants[_0x221c[508]]?mxConstants[_0x221c[1523]]:mxConstants[_0x221c[508]],this[_0x221c[1518]][_0x221c[1229]]= !1,this[_0x221c[1518]][_0x221c[176]](this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1524]]()));var _0xc851x5=this[_0x221c[1179]][_0x221c[526]];_0xc851x3-=this[_0x221c[1179]][_0x221c[1136]];this[_0x221c[1518]][_0x221c[1525]]=[ new mxPoint(_0xc851x3,-this[_0x221c[1179]][_0x221c[1137]]), new mxPoint(_0xc851x3,_0xc851x5[_0x221c[191]]-3-this[_0x221c[1179]][_0x221c[1137]])]};_0xc851x13=_0xc851x13||_0xc851x4};for(var _0xc851x15=function(_0xc851x3){_0xc851x3+=this[_0x221c[1179]][_0x221c[1137]];var _0xc851x4=!1;Math[_0x221c[425]](_0xc851x3-_0xc851x1d)<_0xc851x17?(_0xc851x12=_0xc851x3-_0xc851x2[_0x221c[242]](),_0xc851x17=Math[_0x221c[425]](_0xc851x3-_0xc851x1d),_0xc851x4= !0):Math[_0x221c[425]](_0xc851x3-_0xc851x1b)<_0xc851x17?(_0xc851x12=_0xc851x3-_0xc851x2[_0x221c[236]],_0xc851x17=Math[_0x221c[425]](_0xc851x3-_0xc851x1b),_0xc851x4= !0):Math[_0x221c[425]](_0xc851x3-_0xc851x1c)<_0xc851x17&&(_0xc851x12=_0xc851x3-_0xc851x2[_0x221c[236]]-_0xc851x2[_0x221c[119]],_0xc851x17=Math[_0x221c[425]](_0xc851x3-_0xc851x1c),_0xc851x4= !0);if(_0xc851x4){null==this[_0x221c[1519]]&&(this[_0x221c[1519]]=this[_0x221c[1521]](!1),this[_0x221c[1519]][_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]!=mxConstants[_0x221c[508]]?mxConstants[_0x221c[1523]]:mxConstants[_0x221c[508]],this[_0x221c[1519]][_0x221c[1229]]= !1,this[_0x221c[1519]][_0x221c[176]](this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1524]]()));var _0xc851x5=this[_0x221c[1179]][_0x221c[526]];_0xc851x3-=this[_0x221c[1179]][_0x221c[1137]];this[_0x221c[1519]][_0x221c[1525]]=[ new mxPoint(-this[_0x221c[1179]][_0x221c[1136]],_0xc851x3), new mxPoint(_0xc851x5[_0x221c[1526]]-3-this[_0x221c[1179]][_0x221c[1136]],_0xc851x3)]};_0xc851x14=_0xc851x14||_0xc851x4},_0xc851x1e=0;_0xc851x1e<this[_0x221c[1214]][_0x221c[67]];_0xc851x1e++){var _0xc851x1f=this[_0x221c[1214]][_0xc851x1e];null!=_0xc851x1f&&(this[_0x221c[662]]&&(_0xc851x3[_0x221c[239]](this,_0xc851x1f[_0x221c[241]]()),_0xc851x3[_0x221c[239]](this,_0xc851x1f[_0x221c[235]]),_0xc851x3[_0x221c[239]](this,_0xc851x1f[_0x221c[235]]+_0xc851x1f[_0x221c[117]])),this[_0x221c[704]]&&(_0xc851x15[_0x221c[239]](this,_0xc851x1f[_0x221c[242]]()),_0xc851x15[_0x221c[239]](this,_0xc851x1f[_0x221c[236]]),_0xc851x15[_0x221c[239]](this,_0xc851x1f[_0x221c[236]]+_0xc851x1f[_0x221c[119]])))};!_0xc851x13&&null!=this[_0x221c[1518]]?this[_0x221c[1518]][_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[188]:null!=this[_0x221c[1518]]&&(this[_0x221c[1518]][_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[189],this[_0x221c[1518]][_0x221c[258]]());!_0xc851x14&&null!=this[_0x221c[1519]]?this[_0x221c[1519]][_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[188]:null!=this[_0x221c[1519]]&&(this[_0x221c[1519]][_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[189],this[_0x221c[1519]][_0x221c[258]]());_0xc851x4&&(_0xc851x13||(_0xc851x4=_0xc851x2[_0x221c[235]]-(this[_0x221c[1179]][_0x221c[1021]](_0xc851x2[_0x221c[235]]/_0xc851x9-_0xc851x5[_0x221c[235]])+_0xc851x5[_0x221c[235]])*_0xc851x9,_0xc851xa=this[_0x221c[1179]][_0x221c[1021]](_0xc851xa/_0xc851x9)*_0xc851x9-_0xc851x4),_0xc851x14||(_0xc851x5=_0xc851x2[_0x221c[236]]-(this[_0x221c[1179]][_0x221c[1021]](_0xc851x2[_0x221c[236]]/_0xc851x9-_0xc851x5[_0x221c[236]])+_0xc851x5[_0x221c[236]])*_0xc851x9,_0xc851x12=this[_0x221c[1179]][_0x221c[1021]](_0xc851x12/_0xc851x9)*_0xc851x9-_0xc851x5));_0xc851x3= new mxPoint(_0xc851xa,_0xc851x12)};return _0xc851x3};mxGuide[_0x221c[202]][_0x221c[801]]=function(){null!=this[_0x221c[1518]]&&(this[_0x221c[1518]][_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[188]);null!=this[_0x221c[1519]]&&(this[_0x221c[1519]][_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[188])};mxGuide[_0x221c[202]][_0x221c[515]]=function(){null!=this[_0x221c[1518]]&&(this[_0x221c[1518]][_0x221c[515]](),this[_0x221c[1518]]=null);null!=this[_0x221c[1519]]&&(this[_0x221c[1519]][_0x221c[515]](),this[_0x221c[1519]]=null)};function mxStencil(_0xc851x2){this[_0x221c[1527]]=_0xc851x2;this[_0x221c[1528]]();this[_0x221c[1529]]()}mxStencil[_0x221c[1530]]= !1;mxStencil[_0x221c[202]][_0x221c[1527]]=null;mxStencil[_0x221c[202]][_0x221c[1531]]=null;mxStencil[_0x221c[202]][_0x221c[1322]]=null;mxStencil[_0x221c[202]][_0x221c[1532]]=null;mxStencil[_0x221c[202]][_0x221c[1533]]=null;mxStencil[_0x221c[202]][_0x221c[1534]]=null;mxStencil[_0x221c[202]][_0x221c[1535]]=null;mxStencil[_0x221c[202]][_0x221c[1307]]=null;mxStencil[_0x221c[202]][_0x221c[1528]]=function(){this[_0x221c[1535]]=this[_0x221c[1527]][_0x221c[64]](_0x221c[1536])[0];this[_0x221c[1534]]=this[_0x221c[1527]][_0x221c[64]](_0x221c[1537])[0];this[_0x221c[1532]]=Number(this[_0x221c[1527]][_0x221c[284]](_0x221c[1302])||100);this[_0x221c[1533]]=Number(this[_0x221c[1527]][_0x221c[284]](_0x221c[1303])||100);var _0xc851x2=this[_0x221c[1527]][_0x221c[284]](_0x221c[1322]);this[_0x221c[1322]]=null!=_0xc851x2?_0xc851x2:_0x221c[1538];_0xc851x2=this[_0x221c[1527]][_0x221c[284]](_0x221c[1307]);this[_0x221c[1307]]=null!=_0xc851x2?_0xc851x2:_0x221c[500]};mxStencil[_0x221c[202]][_0x221c[1529]]=function(){var _0xc851x2=this[_0x221c[1527]][_0x221c[64]](_0x221c[1539])[0];if(null!=_0xc851x2&&(_0xc851x2=mxUtils[_0x221c[1540]](_0xc851x2),null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]])){this[_0x221c[1531]]=[];for(var _0xc851x3=0;_0xc851x3<_0xc851x2[_0x221c[67]];_0xc851x3++){this[_0x221c[1531]][_0x221c[207]](this[_0x221c[1541]](_0xc851x2[_0xc851x3]))}}};mxStencil[_0x221c[202]][_0x221c[1541]]=function(_0xc851x2){var _0xc851x3=Number(_0xc851x2[_0x221c[284]](_0x221c[235])),_0xc851x4=Number(_0xc851x2[_0x221c[284]](_0x221c[236]));_0xc851x2=_0x221c[500]==_0xc851x2[_0x221c[284]](_0x221c[591]);return  new mxConnectionConstraint( new mxPoint(_0xc851x3,_0xc851x4),_0xc851x2)};mxStencil[_0x221c[202]][_0x221c[1542]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=this[_0x221c[1543]](_0xc851x2,_0xc851x3,_0xc851x4);_0xc851x2=_0xc851x2[_0x221c[284]](_0x221c[1544]);if(mxStencil[_0x221c[1530]]&&null==_0xc851x2||_0x221c[500]==_0xc851x2){_0xc851x3=mxResources[_0x221c[203]](_0xc851x3)};return _0xc851x3};mxStencil[_0x221c[202]][_0x221c[1543]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=_0xc851x2[_0x221c[284]](_0xc851x3);null==_0xc851x3&&(_0xc851x2=mxUtils[_0x221c[329]](_0xc851x2),null!=_0xc851x2&&(_0xc851x2=mxUtils[_0x221c[1545]](_0xc851x2),_0x221c[279]== typeof _0xc851x2&&(_0xc851x3=_0xc851x2(_0xc851x4))));return _0xc851x3};mxStencil[_0x221c[202]][_0x221c[1546]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){this[_0x221c[1547]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,this[_0x221c[1534]],!1);this[_0x221c[1547]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,this[_0x221c[1535]],!0)};mxStencil[_0x221c[202]][_0x221c[1547]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13){if(null!=_0xc851x12){var _0xc851x14=mxUtils[_0x221c[433]](_0xc851x3[_0x221c[124]],mxConstants.STYLE_DIRECTION,null);_0xc851x4=this[_0x221c[1548]](_0xc851x3[_0x221c[124]],_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x14);_0xc851x5=Math[_0x221c[243]](_0xc851x4[_0x221c[117]],_0xc851x4[_0x221c[119]]);_0xc851x5=_0x221c[1549]==this[_0x221c[1307]]?Number(mxUtils[_0x221c[1550]](_0xc851x3[_0x221c[124]],mxConstants.STYLE_STROKEWIDTH,1)):Number(this[_0x221c[1307]])*_0xc851x5;_0xc851x2[_0x221c[1250]](_0xc851x5);for(_0xc851x12=_0xc851x12[_0x221c[285]];null!=_0xc851x12;){_0xc851x12[_0x221c[288]]==mxConstants[_0x221c[289]]&&this[_0x221c[1551]](_0xc851x2,_0xc851x3,_0xc851x12,_0xc851x4,_0xc851x13),_0xc851x12=_0xc851x12[_0x221c[287]]}}};mxStencil[_0x221c[202]][_0x221c[1548]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x2=_0xc851x3;_0xc851x3=_0xc851x5/this[_0x221c[1532]];var _0xc851x12=_0xc851x9/this[_0x221c[1533]];if(_0xc851xa=_0x221c[700]==_0xc851xa||_0x221c[701]==_0xc851xa){_0xc851x12=_0xc851x5/this[_0x221c[1533]];_0xc851x3=_0xc851x9/this[_0x221c[1532]];var _0xc851x13=(_0xc851x5-_0xc851x9)/2;_0xc851x2+=_0xc851x13;_0xc851x4-=_0xc851x13};_0x221c[1552]==this[_0x221c[1322]]&&(_0xc851x3=_0xc851x12=Math[_0x221c[243]](_0xc851x3,_0xc851x12),_0xc851xa?(_0xc851x2+=(_0xc851x9-this[_0x221c[1532]]*_0xc851x3)/2,_0xc851x4+=(_0xc851x5-this[_0x221c[1533]]*_0xc851x12)/2):(_0xc851x2+=(_0xc851x5-this[_0x221c[1532]]*_0xc851x3)/2,_0xc851x4+=(_0xc851x9-this[_0x221c[1533]]*_0xc851x12)/2));return  new mxRectangle(_0xc851x2,_0xc851x4,_0xc851x3,_0xc851x12)};mxStencil[_0x221c[202]][_0x221c[1551]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=_0xc851x4[_0x221c[301]],_0xc851x12=_0xc851x5[_0x221c[235]],_0xc851x13=_0xc851x5[_0x221c[236]],_0xc851x14=_0xc851x5[_0x221c[117]],_0xc851x15=_0xc851x5[_0x221c[119]],_0xc851x16=Math[_0x221c[243]](_0xc851x14,_0xc851x15);if(_0x221c[815]==_0xc851xa){_0xc851x2[_0x221c[815]]()}else {if(_0x221c[1210]==_0xc851xa){_0xc851x2[_0x221c[1210]]()}else {if(_0x221c[1215]==_0xc851xa){_0xc851x2[_0x221c[1275]]();for(_0xc851x4=_0xc851x4[_0x221c[285]];null!=_0xc851x4;){_0xc851x4[_0x221c[288]]==mxConstants[_0x221c[289]]&&this[_0x221c[1551]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9),_0xc851x4=_0xc851x4[_0x221c[287]]}}else {if(_0x221c[268]==_0xc851xa){_0xc851x2[_0x221c[268]]()}else {if(_0x221c[582]==_0xc851xa){_0xc851x2[_0x221c[1276]](_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[235]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[236]))*_0xc851x15)}else {if(_0x221c[683]==_0xc851xa){_0xc851x2[_0x221c[1277]](_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[235]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[236]))*_0xc851x15)}else {if(_0x221c[1323]==_0xc851xa){_0xc851x2[_0x221c[1278]](_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[1324]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[1325]))*_0xc851x15,_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[1326]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[1327]))*_0xc851x15)}else {if(_0x221c[1328]==_0xc851xa){_0xc851x2[_0x221c[1279]](_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[1324]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[1325]))*_0xc851x15,_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[1326]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[1327]))*_0xc851x15,_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[1329]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[1330]))*_0xc851x15)}else {if(_0x221c[1553]==_0xc851xa){_0xc851x2[_0x221c[1280]](Number(_0xc851x4[_0x221c[284]](_0x221c[1397]))*_0xc851x14,Number(_0xc851x4[_0x221c[284]](_0x221c[1398]))*_0xc851x15,Number(_0xc851x4[_0x221c[284]](_0x221c[1554])),Number(_0xc851x4[_0x221c[284]](_0x221c[1555])),Number(_0xc851x4[_0x221c[284]](_0x221c[1556])),_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[235]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[236]))*_0xc851x15)}else {if(_0x221c[1319]==_0xc851xa){_0xc851x2[_0x221c[1319]](_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[235]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[236]))*_0xc851x15,Number(_0xc851x4[_0x221c[284]](_0x221c[1302]))*_0xc851x14,Number(_0xc851x4[_0x221c[284]](_0x221c[1303]))*_0xc851x15)}else {if(_0x221c[1320]==_0xc851xa){_0xc851x3=_0xc851x4[_0x221c[284]](_0x221c[1492]),0==_0xc851x3&&(_0xc851x3=100*mxConstants[_0x221c[1557]]),_0xc851x16=Number(_0xc851x4[_0x221c[284]](_0x221c[1302]))*_0xc851x14,_0xc851x5=Number(_0xc851x4[_0x221c[284]](_0x221c[1303]))*_0xc851x15,_0xc851x3=Number(_0xc851x3)/100,_0xc851x3=Math[_0x221c[243]](_0xc851x16*_0xc851x3,_0xc851x5*_0xc851x3),_0xc851x2[_0x221c[1320]](_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[235]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[236]))*_0xc851x15,_0xc851x16,_0xc851x5,_0xc851x3,_0xc851x3)}else {if(_0x221c[680]==_0xc851xa){_0xc851x2[_0x221c[680]](_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[235]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[236]))*_0xc851x15,Number(_0xc851x4[_0x221c[284]](_0x221c[1302]))*_0xc851x14,Number(_0xc851x4[_0x221c[284]](_0x221c[1303]))*_0xc851x15)}else {if(_0x221c[618]==_0xc851xa){_0xc851x3=this[_0x221c[1543]](_0xc851x4,_0x221c[390],_0xc851x3),_0xc851x2[_0x221c[618]](_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[235]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[236]))*_0xc851x15,Number(_0xc851x4[_0x221c[284]](_0x221c[1302]))*_0xc851x14,Number(_0xc851x4[_0x221c[284]](_0x221c[1303]))*_0xc851x15,_0xc851x3,!1,_0x221c[500]==_0xc851x4[_0x221c[284]](_0x221c[623]),_0x221c[500]==_0xc851x4[_0x221c[284]](_0x221c[624]))}else {if(_0x221c[963]==_0xc851xa){_0xc851x16=this[_0x221c[1542]](_0xc851x4,_0x221c[1332],_0xc851x3);_0xc851x5=_0x221c[500]==_0xc851x4[_0x221c[284]](_0x221c[704])?-90:0;if(_0x221c[468]==_0xc851x4[_0x221c[284]](_0x221c[1558])){var _0xc851x17=_0xc851x3[_0x221c[603]],_0xc851x18=1==mxUtils[_0x221c[433]](_0xc851x3[_0x221c[124]],mxConstants.STYLE_FLIPH,0);_0xc851x3=1==mxUtils[_0x221c[433]](_0xc851x3[_0x221c[124]],mxConstants.STYLE_FLIPV,0);_0xc851x5=_0xc851x18&&_0xc851x3?_0xc851x5-_0xc851x17:_0xc851x18||_0xc851x3?_0xc851x5+_0xc851x17:_0xc851x5-_0xc851x17};_0xc851x5-=_0xc851x4[_0x221c[284]](_0x221c[603]);_0xc851x2[_0x221c[963]](_0xc851x12+Number(_0xc851x4[_0x221c[284]](_0x221c[235]))*_0xc851x14,_0xc851x13+Number(_0xc851x4[_0x221c[284]](_0x221c[236]))*_0xc851x15,0,0,_0xc851x16,_0xc851x4[_0x221c[284]](_0x221c[611])||_0x221c[361],_0xc851x4[_0x221c[284]](_0x221c[552])||_0x221c[125],!1,_0x221c[110],!1,!1,_0xc851x5)}else {if(_0x221c[1559]==_0xc851xa){_0xc851x17=mxStencilRegistry[_0x221c[1560]](_0xc851x4[_0x221c[284]](_0x221c[298])),null!=_0xc851x17&&(_0xc851x12+=Number(_0xc851x4[_0x221c[284]](_0x221c[235]))*_0xc851x14,_0xc851x13+=Number(_0xc851x4[_0x221c[284]](_0x221c[236]))*_0xc851x15,_0xc851x16=Number(_0xc851x4[_0x221c[284]](_0x221c[1302]))*_0xc851x14,_0xc851x5=Number(_0xc851x4[_0x221c[284]](_0x221c[1303]))*_0xc851x15,_0xc851x17[_0x221c[1546]](_0xc851x2,_0xc851x3,_0xc851x12,_0xc851x13,_0xc851x16,_0xc851x5))}else {if(_0x221c[1338]==_0xc851xa){_0xc851x2[_0x221c[1337]]()}else {if(_0x221c[1334]==_0xc851xa){_0xc851x2[_0x221c[1334]]()}else {if(_0x221c[1336]==_0xc851xa){_0xc851x2[_0x221c[1336]]()}else {if(_0x221c[1307]==_0xc851xa){_0xc851x2[_0x221c[1250]](Number(_0xc851x4[_0x221c[284]](_0x221c[117]))*_0xc851x16)}else {if(_0x221c[648]==_0xc851xa){_0xc851x2[_0x221c[1251]](_0x221c[500]==_0xc851x4[_0x221c[284]](_0x221c[648]))}else {if(_0x221c[1308]==_0xc851xa){if(_0xc851x4=_0xc851x4[_0x221c[284]](_0x221c[1309]),null!=_0xc851x4){_0xc851x4=_0xc851x4[_0x221c[224]](_0x221c[185]);_0xc851x14=[];for(_0xc851x15=0;_0xc851x15<_0xc851x4[_0x221c[67]];_0xc851x15++){0<_0xc851x4[_0xc851x15][_0x221c[67]]&&_0xc851x14[_0x221c[207]](Number(_0xc851x4[_0xc851x15])*_0xc851x16)};_0xc851x4=_0xc851x14[_0x221c[234]](_0x221c[185]);_0xc851x2[_0x221c[1252]](_0xc851x4)}}else {_0x221c[1306]==_0xc851xa?_0xc851x2[_0x221c[1249]](_0xc851x4[_0x221c[284]](_0x221c[352])):_0x221c[1310]==_0xc851xa?_0xc851x2[_0x221c[1253]](_0xc851x4[_0x221c[284]](_0x221c[1311])):_0x221c[1312]==_0xc851xa?_0xc851x2[_0x221c[1255]](_0xc851x4[_0x221c[284]](_0x221c[234])):_0x221c[1313]==_0xc851xa?_0xc851x2[_0x221c[1257]](Number(_0xc851x4[_0x221c[284]](_0x221c[1314]))):_0x221c[1298]==_0xc851xa?_0xc851x2[_0x221c[1245]](_0xc851x4[_0x221c[284]](_0x221c[352])):_0x221c[1244]==_0xc851xa?_0xc851x2[_0x221c[1243]](_0xc851x4[_0x221c[284]](_0x221c[1244])):_0x221c[1315]==_0xc851xa?_0xc851x2[_0x221c[1259]](_0xc851x4[_0x221c[284]](_0x221c[352])):_0x221c[1318]==_0xc851xa?_0xc851x2[_0x221c[1266]](_0xc851x4[_0x221c[284]](_0x221c[124])):_0x221c[1287]==_0xc851xa?_0xc851x2[_0x221c[1265]](_0xc851x4[_0x221c[284]](_0x221c[1288])):_0x221c[1289]==_0xc851xa&&_0xc851x2[_0x221c[1264]](Number(_0xc851x4[_0x221c[284]](_0x221c[803]))*_0xc851x16)}}}}}}}}}}}}}}}}}}}}};_0xc851x9&&(_0x221c[1338]==_0xc851xa||_0x221c[1334]==_0xc851xa||_0x221c[1336]==_0xc851xa)&&_0xc851x2[_0x221c[1267]](!1)};function mxShape(_0xc851x2){this[_0x221c[1561]]=_0xc851x2;this[_0x221c[1307]]=1;this[_0x221c[603]]=0;this[_0x221c[461]]=100;this[_0x221c[624]]=this[_0x221c[623]]= !1}mxShape[_0x221c[202]][_0x221c[507]]=null;mxShape[_0x221c[202]][_0x221c[255]]=1;mxShape[_0x221c[202]][_0x221c[1562]]=null;mxShape[_0x221c[202]][_0x221c[1525]]=null;mxShape[_0x221c[202]][_0x221c[252]]=null;mxShape[_0x221c[202]][_0x221c[124]]=null;mxShape[_0x221c[202]][_0x221c[124]]=null;mxShape[_0x221c[202]][_0x221c[1563]]=null;mxShape[_0x221c[202]][_0x221c[1561]]=null;mxShape[_0x221c[202]][_0x221c[1564]]=6;mxShape[_0x221c[202]][_0x221c[1229]]= !0;mxShape[_0x221c[202]][_0x221c[1565]]= !1;mxShape[_0x221c[202]][_0x221c[1460]]=1;mxShape[_0x221c[202]][_0x221c[176]]=function(_0xc851x2){null==this[_0x221c[252]]&&(this[_0x221c[252]]=this[_0x221c[385]](_0xc851x2),null!=_0xc851x2&&_0xc851x2[_0x221c[62]](this[_0x221c[252]]))};mxShape[_0x221c[202]][_0x221c[1566]]=function(){return !0};mxShape[_0x221c[202]][_0x221c[1567]]=function(){return !1};mxShape[_0x221c[202]][_0x221c[1568]]=function(){return 1==mxUtils[_0x221c[1454]](Math[_0x221c[160]](1,Math[_0x221c[488]](this[_0x221c[1307]]*this[_0x221c[255]])),2)?0.5:0};mxShape[_0x221c[202]][_0x221c[385]]=function(_0xc851x2){var _0xc851x3=null;return _0xc851x3=null!=_0xc851x2[_0x221c[538]]?this[_0x221c[1569]](_0xc851x2):8==document[_0x221c[5]]||this[_0x221c[507]]==mxConstants[_0x221c[508]]||this[_0x221c[507]]!=mxConstants[_0x221c[1523]]&&this[_0x221c[1567]]()?this[_0x221c[1570]](_0xc851x2):this[_0x221c[1571]](_0xc851x2)};mxShape[_0x221c[202]][_0x221c[1569]]=function(){return document[_0x221c[509]](mxConstants.NS_SVG,_0x221c[449])};mxShape[_0x221c[202]][_0x221c[1571]]=function(){var _0xc851x2=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1499]);_0xc851x2[_0x221c[124]][_0x221c[491]]=_0x221c[492];return _0xc851x2};mxShape[_0x221c[202]][_0x221c[1570]]=function(){var _0xc851x2=document[_0x221c[55]](_0x221c[485]);_0xc851x2[_0x221c[124]][_0x221c[491]]=_0x221c[492];return _0xc851x2};mxShape[_0x221c[202]][_0x221c[1572]]=function(){this[_0x221c[258]]()};mxShape[_0x221c[202]][_0x221c[258]]=function(){this[_0x221c[1573]]();this[_0x221c[1574]]()?(this[_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[110],_0x221c[529]==this[_0x221c[252]][_0x221c[301]]&&this[_0x221c[1567]]()?this[_0x221c[1575]]():this[_0x221c[1576]](),this[_0x221c[1577]]()):(this[_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[188],this[_0x221c[1563]]=null)};mxShape[_0x221c[202]][_0x221c[1573]]=function(){var _0xc851x2=this[_0x221c[1525]];if(null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]&&null!=_0xc851x2[0]){this[_0x221c[1562]]= new mxRectangle(Number(_0xc851x2[0][_0x221c[235]]),Number(_0xc851x2[0][_0x221c[236]]),1,1);for(var _0xc851x3=1;_0xc851x3<this[_0x221c[1525]][_0x221c[67]];_0xc851x3++){null!=_0xc851x2[_0xc851x3]&&this[_0x221c[1562]][_0x221c[99]]( new mxRectangle(Number(_0xc851x2[_0xc851x3][_0x221c[235]]),Number(_0xc851x2[_0xc851x3][_0x221c[236]]),1,1))}}};mxShape[_0x221c[202]][_0x221c[1574]]=function(){return null!=this[_0x221c[1562]]&&!isNaN(this[_0x221c[1562]][_0x221c[235]])&&!isNaN(this[_0x221c[1562]][_0x221c[236]])&&!isNaN(this[_0x221c[1562]][_0x221c[117]])&&!isNaN(this[_0x221c[1562]][_0x221c[119]])&&0<this[_0x221c[1562]][_0x221c[117]]&&0<this[_0x221c[1562]][_0x221c[119]]};mxShape[_0x221c[202]][_0x221c[1578]]=function(){var _0xc851x2=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1499]);_0xc851x2[_0x221c[124]][_0x221c[491]]=_0x221c[492];_0xc851x2[_0x221c[124]][_0x221c[117]]=this[_0x221c[252]][_0x221c[124]][_0x221c[117]];_0xc851x2[_0x221c[124]][_0x221c[119]]=this[_0x221c[252]][_0x221c[124]][_0x221c[119]];return _0xc851x2};mxShape[_0x221c[202]][_0x221c[1576]]=function(){var _0xc851x2=this[_0x221c[1579]]();for(_0xc851x2[_0x221c[1229]]=this[_0x221c[1229]];this[_0x221c[252]][_0x221c[1580]]();){this[_0x221c[252]][_0x221c[266]](this[_0x221c[252]][_0x221c[1581]])};this[_0x221c[1209]](_0xc851x2);this[_0x221c[252]]!=_0xc851x2[_0x221c[813]]&&this[_0x221c[252]][_0x221c[1583]](_0x221c[1582],_0xc851x2[_0x221c[813]][_0x221c[342]]);_0x221c[529]==this[_0x221c[252]][_0x221c[301]]&&8==document[_0x221c[5]]&&(this[_0x221c[252]][_0x221c[124]][_0x221c[347]]=_0x221c[110],(null==this[_0x221c[1561]]||!this[_0x221c[1565]])&&mxUtils[_0x221c[1584]](this[_0x221c[252]]));this[_0x221c[1585]](_0xc851x2)};mxShape[_0x221c[202]][_0x221c[1579]]=function(){var _0xc851x2=null,_0xc851x3=null;if(null!=this[_0x221c[252]][_0x221c[538]]){_0xc851x2= new mxSvgCanvas2D(this[_0x221c[252]],!1),_0xc851x2[_0x221c[1345]]=this[_0x221c[1564]],_0xc851x2[_0x221c[1347]]=mxClient[_0x221c[133]]&&!mxClient[_0x221c[75]]&&!mxClient[_0x221c[76]],_0xc851x3=this[_0x221c[1568]](),0!=_0xc851x3?this[_0x221c[252]][_0x221c[57]](_0x221c[535],_0x221c[536]+_0xc851x3+_0x221c[537]+_0xc851x3+_0x221c[460]):this[_0x221c[252]][_0x221c[1390]](_0x221c[535])}else {this[_0x221c[1586]]();var _0xc851x4=Math[_0x221c[160]](1,Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[117]])),_0xc851x5=Math[_0x221c[160]](1,Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[119]])),_0xc851x3=8==document[_0x221c[5]]&&this[_0x221c[1566]]()?this[_0x221c[1578]]():this[_0x221c[252]],_0xc851x2= new mxVmlCanvas2D(_0xc851x3,!1);_0x221c[110]!=_0xc851x3[_0x221c[337]]&&(_0xc851x3[_0x221c[1462]]=_0xc851x4*this[_0x221c[1460]]+_0x221c[537]+_0xc851x5*this[_0x221c[1460]],_0xc851x2[_0x221c[255]](this[_0x221c[1460]]),_0xc851x2[_0x221c[1460]]=this[_0x221c[1460]]);_0xc851x3=this[_0x221c[255]];_0xc851x2[_0x221c[513]](-Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[235]]/_0xc851x3),-Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[236]]/_0xc851x3))};return _0xc851x2};mxShape[_0x221c[202]][_0x221c[1586]]=function(){this[_0x221c[252]][_0x221c[124]][_0x221c[361]]=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[235]])+_0x221c[168];this[_0x221c[252]][_0x221c[124]][_0x221c[125]]=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[236]])+_0x221c[168];var _0xc851x2=Math[_0x221c[160]](1,Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[117]])),_0xc851x3=Math[_0x221c[160]](1,Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[119]]));this[_0x221c[252]][_0x221c[124]][_0x221c[117]]=_0xc851x2+_0x221c[168];this[_0x221c[252]][_0x221c[124]][_0x221c[119]]=_0xc851x3+_0x221c[168];this[_0x221c[252]][_0x221c[124]][_0x221c[277]]=_0x221c[189]};mxShape[_0x221c[202]][_0x221c[1585]]=function(_0xc851x2){if(_0xc851x2 instanceof mxSvgCanvas2D){for(var _0xc851x3 in _0xc851x2[_0x221c[1339]]){var _0xc851x4=_0xc851x2[_0x221c[1339]][_0xc851x3];_0xc851x4[_0x221c[1587]]=(_0xc851x4[_0x221c[1587]]||0)+1};this[_0x221c[1589]](this[_0x221c[1588]]);this[_0x221c[1588]]=_0xc851x2[_0x221c[1339]]}};mxShape[_0x221c[202]][_0x221c[1209]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[255]],_0xc851x4=this[_0x221c[1562]][_0x221c[235]]/_0xc851x3,_0xc851x5=this[_0x221c[1562]][_0x221c[236]]/_0xc851x3,_0xc851x9=this[_0x221c[1562]][_0x221c[117]]/_0xc851x3,_0xc851xa=this[_0x221c[1562]][_0x221c[119]]/_0xc851x3;if(this[_0x221c[1590]]()){var _0xc851x12=(_0xc851x9-_0xc851xa)/2,_0xc851x4=_0xc851x4+_0xc851x12,_0xc851x5=_0xc851x5-_0xc851x12,_0xc851x12=_0xc851x9,_0xc851x9=_0xc851xa,_0xc851xa=_0xc851x12};this[_0x221c[1591]](_0xc851x2,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa);this[_0x221c[1592]](_0xc851x2,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa);if(null!=this[_0x221c[1561]]){this[_0x221c[1593]](_0xc851x2,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa)}else {if(_0xc851x2[_0x221c[1250]](this[_0x221c[1307]]),null!=this[_0x221c[1525]]){_0xc851x4=[];for(_0xc851x5=0;_0xc851x5<this[_0x221c[1525]][_0x221c[67]];_0xc851x5++){_0xc851x4[_0x221c[207]]( new mxPoint(this[_0x221c[1525]][_0xc851x5][_0x221c[235]]/_0xc851x3,this[_0x221c[1525]][_0xc851x5][_0x221c[236]]/_0xc851x3))};this[_0x221c[1594]](_0xc851x2,_0xc851x4)}else {this[_0x221c[1595]](_0xc851x2,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa)}}};mxShape[_0x221c[202]][_0x221c[1592]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=null;null!=this[_0x221c[124]]&&(_0xc851xa=this[_0x221c[124]][_0x221c[649]]);_0xc851x2[_0x221c[1243]](this[_0x221c[461]]/100);null!=this[_0x221c[1596]]&&_0xc851x2[_0x221c[1267]](this[_0x221c[1596]]);null!=this[_0x221c[1522]]&&_0xc851x2[_0x221c[1251]](this[_0x221c[1522]]);null!=_0xc851xa&&_0xc851x2[_0x221c[1252]](_0xc851xa);null!=this[_0x221c[1299]]?(_0xc851x3=this[_0x221c[1597]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9),_0xc851x2[_0x221c[1246]](this[_0x221c[1334]],this[_0x221c[1299]],_0xc851x3[_0x221c[235]],_0xc851x3[_0x221c[236]],_0xc851x3[_0x221c[117]],_0xc851x3[_0x221c[119]],this[_0x221c[607]])):_0xc851x2[_0x221c[1245]](this[_0x221c[1334]]);_0xc851x2[_0x221c[1249]](this[_0x221c[1336]])};mxShape[_0x221c[202]][_0x221c[1597]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){return  new mxRectangle(_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9)};mxShape[_0x221c[202]][_0x221c[1591]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2[_0x221c[255]](this[_0x221c[255]]);_0xc851x2[_0x221c[1294]](this[_0x221c[1598]](),this[_0x221c[623]],this[_0x221c[624]],_0xc851x3+_0xc851x5/2,_0xc851x4+_0xc851x9/2)};mxShape[_0x221c[202]][_0x221c[1593]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){this[_0x221c[1565]]&&(this[_0x221c[507]]==mxConstants[_0x221c[508]]?this[_0x221c[1599]](this[_0x221c[252]],_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9):8!=document[_0x221c[5]]&&this[_0x221c[1600]](this[_0x221c[252]]));this[_0x221c[1561]][_0x221c[1546]](_0xc851x2,this,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9)};mxShape[_0x221c[202]][_0x221c[1595]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){this[_0x221c[1601]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9);_0xc851x2[_0x221c[1267]](!1);this[_0x221c[1602]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9)};mxShape[_0x221c[202]][_0x221c[1601]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){};mxShape[_0x221c[202]][_0x221c[1602]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){};mxShape[_0x221c[202]][_0x221c[1594]]=function(_0xc851x2,_0xc851x3){};mxShape[_0x221c[202]][_0x221c[1603]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_ARCSIZE,100*mxConstants[_0x221c[1557]])/100;return Math[_0x221c[243]](_0xc851x2*_0xc851x4,_0xc851x3*_0xc851x4)};mxShape[_0x221c[202]][_0x221c[1604]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){var _0xc851x12=Math[_0x221c[430]](this[_0x221c[1307]]/2);_0xc851x2[_0x221c[1246]](_0x221c[1605],_0x221c[1605],_0xc851x3,_0xc851x4,_0xc851x5,0.6*_0xc851x9,_0x221c[701],0.9,0.1);_0xc851x2[_0x221c[1275]]();_0xc851xa+=2*_0xc851x12;this[_0x221c[1606]]?(_0xc851x2[_0x221c[1276]](_0xc851x3-_0xc851x12+_0xc851xa,_0xc851x4-_0xc851x12),_0xc851x2[_0x221c[1278]](_0xc851x3-_0xc851x12,_0xc851x4-_0xc851x12,_0xc851x3-_0xc851x12,_0xc851x4-_0xc851x12+_0xc851xa),_0xc851x2[_0x221c[1277]](_0xc851x3-_0xc851x12,_0xc851x4+0.4*_0xc851x9),_0xc851x2[_0x221c[1278]](_0xc851x3+0.5*_0xc851x5,_0xc851x4+0.7*_0xc851x9,_0xc851x3+_0xc851x5+_0xc851x12,_0xc851x4+0.4*_0xc851x9),_0xc851x2[_0x221c[1277]](_0xc851x3+_0xc851x5+_0xc851x12,_0xc851x4-_0xc851x12+_0xc851xa),_0xc851x2[_0x221c[1278]](_0xc851x3+_0xc851x5+_0xc851x12,_0xc851x4-_0xc851x12,_0xc851x3+_0xc851x5+_0xc851x12-_0xc851xa,_0xc851x4-_0xc851x12)):(_0xc851x2[_0x221c[1276]](_0xc851x3-_0xc851x12,_0xc851x4-_0xc851x12),_0xc851x2[_0x221c[1277]](_0xc851x3-_0xc851x12,_0xc851x4+0.4*_0xc851x9),_0xc851x2[_0x221c[1278]](_0xc851x3+0.5*_0xc851x5,_0xc851x4+0.7*_0xc851x9,_0xc851x3+_0xc851x5+_0xc851x12,_0xc851x4+0.4*_0xc851x9),_0xc851x2[_0x221c[1277]](_0xc851x3+_0xc851x5+_0xc851x12,_0xc851x4-_0xc851x12));_0xc851x2[_0x221c[268]]();_0xc851x2[_0x221c[1334]]()};mxShape[_0x221c[202]][_0x221c[183]]=function(_0xc851x2){this[_0x221c[724]]=_0xc851x2;this[_0x221c[124]]=_0xc851x2[_0x221c[124]];if(null!=this[_0x221c[124]]){this[_0x221c[1334]]=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_FILLCOLOR,this[_0x221c[1334]]);this[_0x221c[1299]]=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_GRADIENTCOLOR,this[_0x221c[1299]]);this[_0x221c[607]]=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_GRADIENT_DIRECTION,this[_0x221c[607]]);this[_0x221c[461]]=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_OPACITY,this[_0x221c[461]]);this[_0x221c[1336]]=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_STROKECOLOR,this[_0x221c[1336]]);this[_0x221c[1307]]=mxUtils[_0x221c[1550]](this[_0x221c[124]],mxConstants.STYLE_STROKEWIDTH,this[_0x221c[1307]]);this[_0x221c[657]]=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_SPACING,this[_0x221c[657]]);this[_0x221c[644]]=mxUtils[_0x221c[1550]](this[_0x221c[124]],mxConstants.STYLE_STARTSIZE,this[_0x221c[644]]);this[_0x221c[643]]=mxUtils[_0x221c[1550]](this[_0x221c[124]],mxConstants.STYLE_ENDSIZE,this[_0x221c[643]]);this[_0x221c[642]]=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_STARTARROW,this[_0x221c[642]]);this[_0x221c[641]]=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_ENDARROW,this[_0x221c[641]]);this[_0x221c[603]]=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_ROTATION,this[_0x221c[603]]);this[_0x221c[663]]=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_DIRECTION,this[_0x221c[663]]);this[_0x221c[623]]=1==mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_FLIPH,0);this[_0x221c[624]]=1==mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_FLIPV,0);null!=this[_0x221c[1561]]&&(this[_0x221c[623]]=1==mxUtils[_0x221c[433]](this[_0x221c[124]],_0x221c[1607],0)||this[_0x221c[623]],this[_0x221c[624]]=1==mxUtils[_0x221c[433]](this[_0x221c[124]],_0x221c[1608],0)||this[_0x221c[624]]);if(_0x221c[700]==this[_0x221c[663]]||_0x221c[701]==this[_0x221c[663]]){_0xc851x2=this[_0x221c[623]],this[_0x221c[623]]=this[_0x221c[624]],this[_0x221c[624]]=_0xc851x2};this[_0x221c[1596]]=1==mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_SHADOW,this[_0x221c[1596]]);this[_0x221c[1522]]=1==mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_DASHED,this[_0x221c[1522]]);this[_0x221c[1606]]=1==mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_ROUNDED,this[_0x221c[1606]]);this[_0x221c[617]]=1==mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_GLASS,this[_0x221c[617]]);_0x221c[130]==this[_0x221c[1334]]&&(this[_0x221c[1334]]=null);_0x221c[130]==this[_0x221c[1299]]&&(this[_0x221c[1299]]=null);_0x221c[130]==this[_0x221c[1336]]&&(this[_0x221c[1336]]=null)}};mxShape[_0x221c[202]][_0x221c[1609]]=function(_0xc851x2){null==_0xc851x2&&(_0xc851x2=_0x221c[110]);this[_0x221c[270]]=_0xc851x2;null!=this[_0x221c[252]]&&(this[_0x221c[252]][_0x221c[124]][_0x221c[270]]=_0xc851x2)};mxShape[_0x221c[202]][_0x221c[1610]]=function(){return this[_0x221c[270]]};mxShape[_0x221c[202]][_0x221c[1577]]=function(){if(null!=this[_0x221c[1562]]){var _0xc851x2=this[_0x221c[1611]]();if(null!=_0xc851x2){this[_0x221c[1612]](_0xc851x2);var _0xc851x3=this[_0x221c[1598]]();0!=_0xc851x3&&(_0xc851x2=mxUtils[_0x221c[1613]](_0xc851x2,_0xc851x3));_0xc851x2[_0x221c[235]]=Math[_0x221c[519]](_0xc851x2[_0x221c[235]]);_0xc851x2[_0x221c[236]]=Math[_0x221c[519]](_0xc851x2[_0x221c[236]]);_0xc851x2[_0x221c[117]]=Math[_0x221c[430]](_0xc851x2[_0x221c[117]]);_0xc851x2[_0x221c[119]]=Math[_0x221c[430]](_0xc851x2[_0x221c[119]])};this[_0x221c[1563]]=_0xc851x2}};mxShape[_0x221c[202]][_0x221c[1611]]=function(){var _0xc851x2=this[_0x221c[1562]][_0x221c[238]]();if(this[_0x221c[1590]]()){var _0xc851x3=(_0xc851x2[_0x221c[117]]-_0xc851x2[_0x221c[119]])/2;_0xc851x2[_0x221c[235]]+=_0xc851x3;_0xc851x2[_0x221c[236]]-=_0xc851x3;_0xc851x3=_0xc851x2[_0x221c[117]];_0xc851x2[_0x221c[117]]=_0xc851x2[_0x221c[119]];_0xc851x2[_0x221c[119]]=_0xc851x3};return _0xc851x2};mxShape[_0x221c[202]][_0x221c[1612]]=function(_0xc851x2){this[_0x221c[1596]]&&(_0xc851x2[_0x221c[117]]+=Math[_0x221c[430]](mxConstants[_0x221c[1237]]*this[_0x221c[255]]),_0xc851x2[_0x221c[119]]+=Math[_0x221c[430]](mxConstants[_0x221c[1238]]*this[_0x221c[255]]));var _0xc851x3=Math[_0x221c[430]](this[_0x221c[1307]]*this[_0x221c[255]]);_0xc851x2[_0x221c[244]](Math[_0x221c[430]](_0xc851x3/2))};mxShape[_0x221c[202]][_0x221c[1590]]=function(){return null==this[_0x221c[1561]]&&(_0x221c[700]==this[_0x221c[663]]||_0x221c[701]==this[_0x221c[663]])};mxShape[_0x221c[202]][_0x221c[1614]]=function(){return null!=this[_0x221c[603]]?this[_0x221c[603]]:0};mxShape[_0x221c[202]][_0x221c[1615]]=function(){var _0xc851x2=this[_0x221c[1614]]();1!=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_HORIZONTAL,1)&&(_0xc851x2+=mxText[_0x221c[202]][_0x221c[1616]]);return _0xc851x2};mxShape[_0x221c[202]][_0x221c[1598]]=function(){var _0xc851x2=this[_0x221c[1614]]();null!=this[_0x221c[663]]&&(_0x221c[700]==this[_0x221c[663]]?_0xc851x2+=270:_0x221c[703]==this[_0x221c[663]]?_0xc851x2+=180:_0x221c[701]==this[_0x221c[663]]&&(_0xc851x2+=90));return _0xc851x2};mxShape[_0x221c[202]][_0x221c[1599]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2=document[_0x221c[509]](mxConstants.NS_SVG,_0x221c[1319]);_0xc851x2[_0x221c[57]](_0x221c[235],_0xc851x3);_0xc851x2[_0x221c[57]](_0x221c[236],_0xc851x4);_0xc851x2[_0x221c[57]](_0x221c[117],_0xc851x5);_0xc851x2[_0x221c[57]](_0x221c[119],_0xc851x9);_0xc851x2[_0x221c[57]](_0x221c[1334],_0x221c[130]);_0xc851x2[_0x221c[57]](_0x221c[1336],_0x221c[130]);_0xc851x2[_0x221c[57]](_0x221c[1377],_0x221c[1378]);this[_0x221c[252]][_0x221c[62]](_0xc851x2)};mxShape[_0x221c[202]][_0x221c[1600]]=function(_0xc851x2){_0xc851x2[_0x221c[124]][_0x221c[1617]]=_0x221c[1618]+mxClient[_0x221c[88]]+_0x221c[1619]};mxShape[_0x221c[202]][_0x221c[1589]]=function(_0xc851x2){if(null!=_0xc851x2){for(var _0xc851x3 in _0xc851x2){var _0xc851x4=_0xc851x2[_0xc851x3];_0xc851x4[_0x221c[1587]]=(_0xc851x4[_0x221c[1587]]||0)-1;0==_0xc851x4[_0x221c[1587]]&&null!=_0xc851x4[_0x221c[265]]&&_0xc851x4[_0x221c[265]][_0x221c[266]](_0xc851x4)}}};mxShape[_0x221c[202]][_0x221c[515]]=function(){null!=this[_0x221c[252]]&&(mxEvent[_0x221c[762]](this[_0x221c[252]]),null!=this[_0x221c[252]][_0x221c[265]]&&this[_0x221c[252]][_0x221c[265]][_0x221c[266]](this[_0x221c[252]]),this[_0x221c[252]]=null);this[_0x221c[1589]](this[_0x221c[1588]]);this[_0x221c[1588]]=null};var mxStencilRegistry={stencils:[],addStencil:function(_0xc851x2,_0xc851x3){mxStencilRegistry[_0x221c[1620]][_0xc851x2]=_0xc851x3},getStencil:function(_0xc851x2){return mxStencilRegistry[_0x221c[1620]][_0xc851x2]}},mxMarker={markers:[],addMarker:function(_0xc851x2,_0xc851x3){mxMarker[_0x221c[1621]][_0xc851x2]=_0xc851x3},createMarker:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15){var _0xc851x16=mxMarker[_0x221c[1621]][_0xc851x4];return null!=_0xc851x16?_0xc851x16(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15):null}};(function(){function _0xc851x2(_0xc851x2,_0xc851x3,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15,_0xc851x16,_0xc851x17){_0xc851x3=1.118*_0xc851x12*_0xc851x16;_0xc851x15=1.118*_0xc851x13*_0xc851x16;_0xc851x12*=_0xc851x14+_0xc851x16;_0xc851x13*=_0xc851x14+_0xc851x16;var _0xc851x18=_0xc851xa[_0x221c[238]]();_0xc851x18[_0x221c[235]]-=_0xc851x3;_0xc851x18[_0x221c[236]]-=_0xc851x15;_0xc851x14=_0xc851x9!=mxConstants[_0x221c[1622]]?1:0.75;_0xc851xa[_0x221c[235]]+=-_0xc851x12*_0xc851x14-_0xc851x3;_0xc851xa[_0x221c[236]]+=-_0xc851x13*_0xc851x14-_0xc851x15;return function(){_0xc851x2[_0x221c[1275]]();_0xc851x2[_0x221c[1276]](_0xc851x18[_0x221c[235]],_0xc851x18[_0x221c[236]]);_0xc851x2[_0x221c[1277]](_0xc851x18[_0x221c[235]]-_0xc851x12-_0xc851x13/2,_0xc851x18[_0x221c[236]]-_0xc851x13+_0xc851x12/2);_0xc851x9==mxConstants[_0x221c[1622]]&&_0xc851x2[_0x221c[1277]](_0xc851x18[_0x221c[235]]-3*_0xc851x12/4,_0xc851x18[_0x221c[236]]-3*_0xc851x13/4);_0xc851x2[_0x221c[1277]](_0xc851x18[_0x221c[235]]+_0xc851x13/2-_0xc851x12,_0xc851x18[_0x221c[236]]-_0xc851x13-_0xc851x12/2);_0xc851x2[_0x221c[268]]();_0xc851x17?_0xc851x2[_0x221c[1337]]():_0xc851x2[_0x221c[1336]]()}}function _0xc851x3(_0xc851x2,_0xc851x3,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15,_0xc851x16,_0xc851x17){_0xc851x15=_0xc851x9==mxConstants[_0x221c[1623]]?0.7071:0.9862;_0xc851x3=_0xc851x12*_0xc851x16*_0xc851x15;_0xc851x15*=_0xc851x13*_0xc851x16;_0xc851x12*=_0xc851x14+_0xc851x16;_0xc851x13*=_0xc851x14+_0xc851x16;var _0xc851x18=_0xc851xa[_0x221c[238]]();_0xc851x18[_0x221c[235]]-=_0xc851x3;_0xc851x18[_0x221c[236]]-=_0xc851x15;_0xc851xa[_0x221c[235]]+=-_0xc851x12-_0xc851x3;_0xc851xa[_0x221c[236]]+=-_0xc851x13-_0xc851x15;var _0xc851x19=_0xc851x9==mxConstants[_0x221c[1623]]?2:3.4;return function(){_0xc851x2[_0x221c[1275]]();_0xc851x2[_0x221c[1276]](_0xc851x18[_0x221c[235]],_0xc851x18[_0x221c[236]]);_0xc851x2[_0x221c[1277]](_0xc851x18[_0x221c[235]]-_0xc851x12/2-_0xc851x13/_0xc851x19,_0xc851x18[_0x221c[236]]+_0xc851x12/_0xc851x19-_0xc851x13/2);_0xc851x2[_0x221c[1277]](_0xc851x18[_0x221c[235]]-_0xc851x12,_0xc851x18[_0x221c[236]]-_0xc851x13);_0xc851x2[_0x221c[1277]](_0xc851x18[_0x221c[235]]-_0xc851x12/2+_0xc851x13/_0xc851x19,_0xc851x18[_0x221c[236]]-_0xc851x13/2-_0xc851x12/_0xc851x19);_0xc851x2[_0x221c[268]]();_0xc851x17?_0xc851x2[_0x221c[1337]]():_0xc851x2[_0x221c[1336]]()}}mxMarker[_0x221c[1624]](_0x221c[693],_0xc851x2);mxMarker[_0x221c[1624]](_0x221c[694],_0xc851x2);mxMarker[_0x221c[1624]](_0x221c[392],function(_0xc851x2,_0xc851x3,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15,_0xc851x16,_0xc851x17){_0xc851x3=1.118*_0xc851x12*_0xc851x16;_0xc851x9=1.118*_0xc851x13*_0xc851x16;_0xc851x12*=_0xc851x14+_0xc851x16;_0xc851x13*=_0xc851x14+_0xc851x16;var _0xc851x18=_0xc851xa[_0x221c[238]]();_0xc851x18[_0x221c[235]]-=_0xc851x3;_0xc851x18[_0x221c[236]]-=_0xc851x9;_0xc851xa[_0x221c[235]]+=2* -_0xc851x3;_0xc851xa[_0x221c[236]]+=2* -_0xc851x9;return function(){_0xc851x2[_0x221c[1275]]();_0xc851x2[_0x221c[1276]](_0xc851x18[_0x221c[235]]-_0xc851x12-_0xc851x13/2,_0xc851x18[_0x221c[236]]-_0xc851x13+_0xc851x12/2);_0xc851x2[_0x221c[1277]](_0xc851x18[_0x221c[235]],_0xc851x18[_0x221c[236]]);_0xc851x2[_0x221c[1277]](_0xc851x18[_0x221c[235]]+_0xc851x13/2-_0xc851x12,_0xc851x18[_0x221c[236]]-_0xc851x13-_0xc851x12/2);_0xc851x2[_0x221c[1336]]()}});mxMarker[_0x221c[1624]](_0x221c[695],function(_0xc851x2,_0xc851x3,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15,_0xc851x16,_0xc851x17){var _0xc851x18=_0xc851x14/2,_0xc851x19=_0xc851xa[_0x221c[238]]();_0xc851xa[_0x221c[235]]-=_0xc851x12*_0xc851x18;_0xc851xa[_0x221c[236]]-=_0xc851x13*_0xc851x18;return function(){_0xc851x2[_0x221c[680]](_0xc851x19[_0x221c[235]]-_0xc851x18,_0xc851x19[_0x221c[236]]-_0xc851x18,_0xc851x14,_0xc851x14);_0xc851x17?_0xc851x2[_0x221c[1337]]():_0xc851x2[_0x221c[1336]]()}});mxMarker[_0x221c[1624]](_0x221c[696],_0xc851x3);mxMarker[_0x221c[1624]](_0x221c[697],_0xc851x3)})();function mxActor(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxShape[_0x221c[239]](this);this[_0x221c[1562]]=_0xc851x2;this[_0x221c[1334]]=_0xc851x3;this[_0x221c[1336]]=_0xc851x4;this[_0x221c[1307]]=null!=_0xc851x5?_0xc851x5:1}mxUtils[_0x221c[1284]](mxActor,mxShape);mxActor[_0x221c[202]][_0x221c[1595]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2[_0x221c[513]](_0xc851x3,_0xc851x4);_0xc851x2[_0x221c[1275]]();this[_0x221c[1625]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9);_0xc851x2[_0x221c[1337]]()};mxActor[_0x221c[202]][_0x221c[1625]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x3=_0xc851x5/3;_0xc851x2[_0x221c[1276]](0,_0xc851x9);_0xc851x2[_0x221c[1279]](0,3*_0xc851x9/5,0,2*_0xc851x9/5,_0xc851x5/2,2*_0xc851x9/5);_0xc851x2[_0x221c[1279]](_0xc851x5/2-_0xc851x3,2*_0xc851x9/5,_0xc851x5/2-_0xc851x3,0,_0xc851x5/2,0);_0xc851x2[_0x221c[1279]](_0xc851x5/2+_0xc851x3,0,_0xc851x5/2+_0xc851x3,2*_0xc851x9/5,_0xc851x5/2,2*_0xc851x9/5);_0xc851x2[_0x221c[1279]](_0xc851x5,2*_0xc851x9/5,_0xc851x5,3*_0xc851x9/5,_0xc851x5,_0xc851x9);_0xc851x2[_0x221c[268]]()};function mxCloud(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxActor[_0x221c[239]](this);this[_0x221c[1562]]=_0xc851x2;this[_0x221c[1334]]=_0xc851x3;this[_0x221c[1336]]=_0xc851x4;this[_0x221c[1307]]=null!=_0xc851x5?_0xc851x5:1}mxUtils[_0x221c[1284]](mxCloud,mxActor);mxCloud[_0x221c[202]][_0x221c[1625]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2[_0x221c[1276]](0.25*_0xc851x5,0.25*_0xc851x9);_0xc851x2[_0x221c[1279]](0.05*_0xc851x5,0.25*_0xc851x9,0,0.5*_0xc851x9,0.16*_0xc851x5,0.55*_0xc851x9);_0xc851x2[_0x221c[1279]](0,0.66*_0xc851x9,0.18*_0xc851x5,0.9*_0xc851x9,0.31*_0xc851x5,0.8*_0xc851x9);_0xc851x2[_0x221c[1279]](0.4*_0xc851x5,_0xc851x9,0.7*_0xc851x5,_0xc851x9,0.8*_0xc851x5,0.8*_0xc851x9);_0xc851x2[_0x221c[1279]](_0xc851x5,0.8*_0xc851x9,_0xc851x5,0.6*_0xc851x9,0.875*_0xc851x5,0.5*_0xc851x9);_0xc851x2[_0x221c[1279]](_0xc851x5,0.3*_0xc851x9,0.8*_0xc851x5,0.1*_0xc851x9,0.625*_0xc851x5,0.2*_0xc851x9);_0xc851x2[_0x221c[1279]](0.5*_0xc851x5,0.05*_0xc851x9,0.3*_0xc851x5,0.05*_0xc851x9,0.25*_0xc851x5,0.25*_0xc851x9);_0xc851x2[_0x221c[268]]()};function mxRectangleShape(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxShape[_0x221c[239]](this);this[_0x221c[1562]]=_0xc851x2;this[_0x221c[1334]]=_0xc851x3;this[_0x221c[1336]]=_0xc851x4;this[_0x221c[1307]]=null!=_0xc851x5?_0xc851x5:1}mxUtils[_0x221c[1284]](mxRectangleShape,mxShape);mxRectangleShape[_0x221c[202]][_0x221c[1567]]=function(){return !this[_0x221c[1606]]&&!this[_0x221c[617]]&&0==this[_0x221c[603]]};mxRectangleShape[_0x221c[202]][_0x221c[1601]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){if(this[_0x221c[1606]]){var _0xc851xa=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_ARCSIZE,100*mxConstants[_0x221c[1557]])/100,_0xc851xa=Math[_0x221c[243]](_0xc851x5*_0xc851xa,_0xc851x9*_0xc851xa);_0xc851x2[_0x221c[1320]](_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851xa)}else {_0xc851x2[_0x221c[1319]](_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9)};_0xc851x2[_0x221c[1337]]()};mxRectangleShape[_0x221c[202]][_0x221c[1602]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){this[_0x221c[617]]&&this[_0x221c[1604]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,this[_0x221c[1603]](_0xc851x5+this[_0x221c[1307]],_0xc851x9+this[_0x221c[1307]]))};mxRectangleShape[_0x221c[202]][_0x221c[1575]]=function(){this[_0x221c[1626]](this[_0x221c[252]]);this[_0x221c[1627]](this[_0x221c[252]]);this[_0x221c[1628]](this[_0x221c[252]])};mxRectangleShape[_0x221c[202]][_0x221c[1626]]=function(_0xc851x2){var _0xc851x3=9<=document[_0x221c[5]]?0:Math[_0x221c[430]](this[_0x221c[1307]]*this[_0x221c[255]]);_0xc851x2[_0x221c[124]][_0x221c[1629]]=Math[_0x221c[160]](1,_0xc851x3)+_0x221c[168];_0xc851x2[_0x221c[124]][_0x221c[277]]=_0x221c[188];_0xc851x2[_0x221c[124]][_0x221c[361]]=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[235]]-_0xc851x3/2)+_0x221c[168];_0xc851x2[_0x221c[124]][_0x221c[125]]=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[236]]-_0xc851x3/2)+_0x221c[168];_0x221c[462]==document[_0x221c[135]]&&(_0xc851x3= -_0xc851x3);_0xc851x2[_0x221c[124]][_0x221c[117]]=Math[_0x221c[488]](Math[_0x221c[160]](0,this[_0x221c[1562]][_0x221c[117]]+_0xc851x3))+_0x221c[168];_0xc851x2[_0x221c[124]][_0x221c[119]]=Math[_0x221c[488]](Math[_0x221c[160]](0,this[_0x221c[1562]][_0x221c[119]]+_0xc851x3))+_0x221c[168]};mxRectangleShape[_0x221c[202]][_0x221c[1628]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1336]];null!=_0xc851x3&&_0xc851x3!=mxConstants[_0x221c[217]]?(_0xc851x2[_0x221c[124]][_0x221c[1630]]=_0xc851x3,this[_0x221c[1522]]?_0xc851x2[_0x221c[124]][_0x221c[465]]=_0x221c[648]:0<this[_0x221c[1307]]&&(_0xc851x2[_0x221c[124]][_0x221c[465]]=_0x221c[1631]),_0xc851x2[_0x221c[124]][_0x221c[1629]]=Math[_0x221c[160]](1,Math[_0x221c[430]](this[_0x221c[1307]]*this[_0x221c[255]]))+_0x221c[168]):_0xc851x2[_0x221c[124]][_0x221c[1629]]=_0x221c[946];_0xc851x3=this[_0x221c[1334]];null!=_0xc851x3&&_0xc851x3!=mxConstants[_0x221c[217]]?(_0xc851x2[_0x221c[124]][_0x221c[1028]]=_0xc851x3,_0xc851x2[_0x221c[124]][_0x221c[1617]]=_0x221c[130]):this[_0x221c[1229]]?_0xc851x2[_0x221c[124]][_0x221c[1028]]=_0x221c[1373]:8==document[_0x221c[5]]?mxUtils[_0x221c[1584]](_0xc851x2):this[_0x221c[1600]](_0xc851x2)};mxRectangleShape[_0x221c[202]][_0x221c[1627]]=function(_0xc851x2){var _0xc851x3=_0x221c[110];100>this[_0x221c[461]]&&(_0xc851x3+=_0x221c[459]+this[_0x221c[461]]+_0x221c[460]);this[_0x221c[1596]]&&(_0xc851x3+=_0x221c[1632]+Math[_0x221c[488]](mxConstants[_0x221c[1237]]*this[_0x221c[255]])+_0x221c[1633]+Math[_0x221c[488]](mxConstants[_0x221c[1238]]*this[_0x221c[255]])+_0x221c[1634]+mxConstants[_0x221c[1235]]+_0x221c[1635]);if(this[_0x221c[1299]]){var _0xc851x4=this[_0x221c[1334]],_0xc851x5=this[_0x221c[1299]],_0xc851x9=_0x221c[468],_0xc851xa={east:0,south:1,west:2,north:3},_0xc851x12=null!=this[_0x221c[663]]?_0xc851xa[this[_0x221c[663]]]:0;null!=this[_0x221c[607]]&&(_0xc851x12=mxUtils[_0x221c[1454]](_0xc851x12+_0xc851xa[this[_0x221c[607]]]-1,4));1==_0xc851x12?(_0xc851x9=_0x221c[500],_0xc851xa=_0xc851x4,_0xc851x4=_0xc851x5,_0xc851x5=_0xc851xa):2==_0xc851x12?(_0xc851xa=_0xc851x4,_0xc851x4=_0xc851x5,_0xc851x5=_0xc851xa):3==_0xc851x12&&(_0xc851x9=_0x221c[500]);_0xc851x3+=_0x221c[1636]+_0xc851x4+_0x221c[1637]+_0xc851x5+_0x221c[1638]+_0xc851x9+_0x221c[1635]};_0xc851x2[_0x221c[124]][_0x221c[347]]=_0xc851x3};function mxEllipse(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxShape[_0x221c[239]](this);this[_0x221c[1562]]=_0xc851x2;this[_0x221c[1334]]=_0xc851x3;this[_0x221c[1336]]=_0xc851x4;this[_0x221c[1307]]=null!=_0xc851x5?_0xc851x5:1}mxUtils[_0x221c[1284]](mxEllipse,mxShape);mxEllipse[_0x221c[202]][_0x221c[1595]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2[_0x221c[680]](_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9);_0xc851x2[_0x221c[1337]]()};function mxDoubleEllipse(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxShape[_0x221c[239]](this);this[_0x221c[1562]]=_0xc851x2;this[_0x221c[1334]]=_0xc851x3;this[_0x221c[1336]]=_0xc851x4;this[_0x221c[1307]]=null!=_0xc851x5?_0xc851x5:1}mxUtils[_0x221c[1284]](mxDoubleEllipse,mxShape);mxDoubleEllipse[_0x221c[202]][_0x221c[1460]]=10;mxDoubleEllipse[_0x221c[202]][_0x221c[1601]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2[_0x221c[680]](_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9);_0xc851x2[_0x221c[1337]]()};mxDoubleEllipse[_0x221c[202]][_0x221c[1602]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=Math[_0x221c[243]](4,Math[_0x221c[243]](_0xc851x5/5,_0xc851x9/5));_0xc851x5-=2*_0xc851xa;_0xc851x9-=2*_0xc851xa;0<_0xc851x5&&0<_0xc851x9&&_0xc851x2[_0x221c[680]](_0xc851x3+_0xc851xa,_0xc851x4+_0xc851xa,_0xc851x5,_0xc851x9);_0xc851x2[_0x221c[1336]]()};function mxRhombus(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxShape[_0x221c[239]](this);this[_0x221c[1562]]=_0xc851x2;this[_0x221c[1334]]=_0xc851x3;this[_0x221c[1336]]=_0xc851x4;this[_0x221c[1307]]=null!=_0xc851x5?_0xc851x5:1}mxUtils[_0x221c[1284]](mxRhombus,mxShape);mxRhombus[_0x221c[202]][_0x221c[1595]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=_0xc851x5/2,_0xc851x12=_0xc851x9/2;_0xc851x2[_0x221c[1275]]();_0xc851x2[_0x221c[1276]](_0xc851x3+_0xc851xa,_0xc851x4);_0xc851x2[_0x221c[1277]](_0xc851x3+_0xc851x5,_0xc851x4+_0xc851x12);_0xc851x2[_0x221c[1277]](_0xc851x3+_0xc851xa,_0xc851x4+_0xc851x9);_0xc851x2[_0x221c[1277]](_0xc851x3,_0xc851x4+_0xc851x12);_0xc851x2[_0x221c[268]]();_0xc851x2[_0x221c[1337]]()};function mxPolyline(_0xc851x2,_0xc851x3,_0xc851x4){mxShape[_0x221c[239]](this);this[_0x221c[1525]]=_0xc851x2;this[_0x221c[1336]]=_0xc851x3;this[_0x221c[1307]]=null!=_0xc851x4?_0xc851x4:1}mxUtils[_0x221c[1284]](mxPolyline,mxShape);mxPolyline[_0x221c[202]][_0x221c[1614]]=function(){return 0};mxPolyline[_0x221c[202]][_0x221c[1594]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1639]](_0xc851x2,_0xc851x3,this[_0x221c[1606]])};mxPolyline[_0x221c[202]][_0x221c[1639]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,_0xc851x9=_0xc851x3[0],_0xc851xa=_0xc851x3[_0xc851x3[_0x221c[67]]-1];_0xc851x2[_0x221c[1275]]();_0xc851x2[_0x221c[1276]](_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[236]]);for(var _0xc851x12=1;_0xc851x12<_0xc851x3[_0x221c[67]]-1;_0xc851x12++){var _0xc851x13=_0xc851x3[_0xc851x12],_0xc851x14=_0xc851x9[_0x221c[235]]-_0xc851x13[_0x221c[235]],_0xc851x9=_0xc851x9[_0x221c[236]]-_0xc851x13[_0x221c[236]];if(_0xc851x4&&_0xc851x12<_0xc851x3[_0x221c[67]]-1&&(0!=_0xc851x14||0!=_0xc851x9)){var _0xc851x15=Math[_0x221c[428]](_0xc851x14*_0xc851x14+_0xc851x9*_0xc851x9),_0xc851x14=_0xc851x14*Math[_0x221c[243]](_0xc851x5,_0xc851x15/2)/_0xc851x15,_0xc851x9=_0xc851x9*Math[_0x221c[243]](_0xc851x5,_0xc851x15/2)/_0xc851x15;_0xc851x2[_0x221c[1277]](_0xc851x13[_0x221c[235]]+_0xc851x14,_0xc851x13[_0x221c[236]]+_0xc851x9);_0xc851x9=_0xc851x3[_0xc851x12+1];_0xc851x14=_0xc851x9[_0x221c[235]]-_0xc851x13[_0x221c[235]];_0xc851x9=_0xc851x9[_0x221c[236]]-_0xc851x13[_0x221c[236]];_0xc851x15=Math[_0x221c[160]](1,Math[_0x221c[428]](_0xc851x14*_0xc851x14+_0xc851x9*_0xc851x9));_0xc851x14=_0xc851x14*Math[_0x221c[243]](_0xc851x5,_0xc851x15/2)/_0xc851x15;_0xc851x9=_0xc851x9*Math[_0x221c[243]](_0xc851x5,_0xc851x15/2)/_0xc851x15;_0xc851x14=_0xc851x13[_0x221c[235]]+_0xc851x14;_0xc851x9=_0xc851x13[_0x221c[236]]+_0xc851x9;_0xc851x2[_0x221c[1278]](_0xc851x13[_0x221c[235]],_0xc851x13[_0x221c[236]],_0xc851x14,_0xc851x9);_0xc851x13= new mxPoint(_0xc851x14,_0xc851x9)}else {_0xc851x2[_0x221c[1277]](_0xc851x13[_0x221c[235]],_0xc851x13[_0x221c[236]])};_0xc851x9=_0xc851x13};_0xc851x2[_0x221c[1277]](_0xc851xa[_0x221c[235]],_0xc851xa[_0x221c[236]]);_0xc851x2[_0x221c[1336]]()};function mxArrow(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12){mxShape[_0x221c[239]](this);this[_0x221c[1525]]=_0xc851x2;this[_0x221c[1334]]=_0xc851x3;this[_0x221c[1336]]=_0xc851x4;this[_0x221c[1307]]=null!=_0xc851x5?_0xc851x5:1;this[_0x221c[1640]]=null!=_0xc851x9?_0xc851x9:mxConstants[_0x221c[1641]];this[_0x221c[657]]=null!=_0xc851xa?_0xc851xa:mxConstants[_0x221c[1642]];this[_0x221c[643]]=null!=_0xc851x12?_0xc851x12:mxConstants[_0x221c[1643]]}mxUtils[_0x221c[1284]](mxArrow,mxShape);mxArrow[_0x221c[202]][_0x221c[1594]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=mxConstants[_0x221c[1642]],_0xc851x5=mxConstants[_0x221c[1641]],_0xc851x9=mxConstants[_0x221c[1643]],_0xc851xa=_0xc851x3[0],_0xc851x12=_0xc851x3[_0xc851x3[_0x221c[67]]-1],_0xc851x13=_0xc851x12[_0x221c[235]]-_0xc851xa[_0x221c[235]],_0xc851x14=_0xc851x12[_0x221c[236]]-_0xc851xa[_0x221c[236]],_0xc851x15=Math[_0x221c[428]](_0xc851x13*_0xc851x13+_0xc851x14*_0xc851x14),_0xc851x16=_0xc851x15-2*_0xc851x4-_0xc851x9,_0xc851x13=_0xc851x13/_0xc851x15,_0xc851x14=_0xc851x14/_0xc851x15,_0xc851x15=_0xc851x5*_0xc851x14/3,_0xc851x5=-_0xc851x5*_0xc851x13/3,_0xc851x9=_0xc851xa[_0x221c[235]]-_0xc851x15/2+_0xc851x4*_0xc851x13,_0xc851xa=_0xc851xa[_0x221c[236]]-_0xc851x5/2+_0xc851x4*_0xc851x14,_0xc851x17=_0xc851x9+_0xc851x15,_0xc851x18=_0xc851xa+_0xc851x5,_0xc851x19=_0xc851x17+_0xc851x16*_0xc851x13,_0xc851x16=_0xc851x18+_0xc851x16*_0xc851x14,_0xc851x1a=_0xc851x19+_0xc851x15,_0xc851x1b=_0xc851x16+_0xc851x5,_0xc851x1c=_0xc851x1a-3*_0xc851x15,_0xc851x1d=_0xc851x1b-3*_0xc851x5;_0xc851x2[_0x221c[1275]]();_0xc851x2[_0x221c[1276]](_0xc851x9,_0xc851xa);_0xc851x2[_0x221c[1277]](_0xc851x17,_0xc851x18);_0xc851x2[_0x221c[1277]](_0xc851x19,_0xc851x16);_0xc851x2[_0x221c[1277]](_0xc851x1a,_0xc851x1b);_0xc851x2[_0x221c[1277]](_0xc851x12[_0x221c[235]]-_0xc851x4*_0xc851x13,_0xc851x12[_0x221c[236]]-_0xc851x4*_0xc851x14);_0xc851x2[_0x221c[1277]](_0xc851x1c,_0xc851x1d);_0xc851x2[_0x221c[1277]](_0xc851x1c+_0xc851x15,_0xc851x1d+_0xc851x5);_0xc851x2[_0x221c[268]]();_0xc851x2[_0x221c[1337]]()};function mxText(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15,_0xc851x16,_0xc851x17,_0xc851x18,_0xc851x19,_0xc851x1a,_0xc851x1b,_0xc851x1c,_0xc851x1d,_0xc851x1e,_0xc851x1f){mxShape[_0x221c[239]](this);this[_0x221c[131]]=_0xc851x2;this[_0x221c[1562]]=_0xc851x3;this[_0x221c[352]]=null!=_0xc851x9?_0xc851x9:_0x221c[586];this[_0x221c[611]]=null!=_0xc851x4?_0xc851x4:_0x221c[110];this[_0x221c[552]]=null!=_0xc851x5?_0xc851x5:_0x221c[110];this[_0x221c[1288]]=null!=_0xc851xa?_0xc851xa:mxConstants[_0x221c[484]];this[_0x221c[803]]=null!=_0xc851x12?_0xc851x12:mxConstants[_0x221c[483]];this[_0x221c[666]]=null!=_0xc851x13?_0xc851x13:mxConstants[_0x221c[1644]];this[_0x221c[657]]=parseInt(_0xc851x14||2);this[_0x221c[658]]=this[_0x221c[657]]+parseInt(_0xc851x15||0);this[_0x221c[661]]=this[_0x221c[657]]+parseInt(_0xc851x16||0);this[_0x221c[660]]=this[_0x221c[657]]+parseInt(_0xc851x17||0);this[_0x221c[659]]=this[_0x221c[657]]+parseInt(_0xc851x18||0);this[_0x221c[662]]=null!=_0xc851x19?_0xc851x19:!0;this[_0x221c[1537]]=_0xc851x1a;this[_0x221c[467]]=_0xc851x1b;this[_0x221c[1333]]=null!=_0xc851x1c?_0xc851x1c:!1;this[_0x221c[1645]]=null!=_0xc851x1d?_0xc851x1d:!1;this[_0x221c[277]]=null!=_0xc851x1e?_0xc851x1e:_0x221c[189];this[_0x221c[629]]=null!=_0xc851x1f?_0xc851x1f:0;this[_0x221c[603]]=0}mxUtils[_0x221c[1284]](mxText,mxShape);mxText[_0x221c[202]][_0x221c[1646]]=0;mxText[_0x221c[202]][_0x221c[1647]]=0;mxText[_0x221c[202]][_0x221c[1648]]=0;mxText[_0x221c[202]][_0x221c[1649]]=0;mxText[_0x221c[202]][_0x221c[1650]]= !0;mxText[_0x221c[202]][_0x221c[1616]]= -90;mxText[_0x221c[202]][_0x221c[1651]]= !0;mxText[_0x221c[202]][_0x221c[1652]]= !1;mxText[_0x221c[202]][_0x221c[1566]]=function(){return !1};mxText[_0x221c[202]][_0x221c[1567]]=function(){return 8!=document[_0x221c[5]]};mxText[_0x221c[202]][_0x221c[1568]]=function(){return 0};mxText[_0x221c[202]][_0x221c[1574]]=function(){return null!=this[_0x221c[1562]]&&!isNaN(this[_0x221c[1562]][_0x221c[235]])&&!isNaN(this[_0x221c[1562]][_0x221c[236]])&&!isNaN(this[_0x221c[1562]][_0x221c[117]])&&!isNaN(this[_0x221c[1562]][_0x221c[119]])};mxText[_0x221c[202]][_0x221c[1577]]=function(){var _0xc851x2=this[_0x221c[252]];8==document[_0x221c[5]]&&null!=_0xc851x2[_0x221c[285]]&&(_0xc851x2=_0xc851x2[_0x221c[285]],null!=_0xc851x2[_0x221c[285]]&&(_0xc851x2=_0xc851x2[_0x221c[285]]));this[_0x221c[1563]]=this[_0x221c[1562]][_0x221c[238]]();var _0xc851x3=this[_0x221c[1615]]();if(!this[_0x221c[1652]]&&null!=_0xc851x2&&_0x221c[1334]!=this[_0x221c[277]]&&(!this[_0x221c[1645]]||!this[_0x221c[1651]])){var _0xc851x4=null,_0xc851x5=null;if(null!=_0xc851x2[_0x221c[538]]){if(null!=_0xc851x2[_0x221c[285]]&&null!=_0xc851x2[_0x221c[285]][_0x221c[285]]&&_0x221c[1435]==_0xc851x2[_0x221c[285]][_0x221c[285]][_0x221c[301]]){_0xc851x2=_0xc851x2[_0x221c[285]][_0x221c[285]],_0xc851x4=this[_0x221c[1333]]?this[_0x221c[1562]][_0x221c[117]]:parseInt(_0xc851x2[_0x221c[284]](_0x221c[117]))*this[_0x221c[255]],_0xc851x5=parseInt(_0xc851x2[_0x221c[284]](_0x221c[119]))*this[_0x221c[255]]}else {_0xc851x3=_0xc851x2[_0x221c[1451]]();if(0==_0xc851x3[_0x221c[117]]&&0==_0xc851x3[_0x221c[119]]){return};this[_0x221c[1563]]= new mxRectangle(_0xc851x3[_0x221c[235]],_0xc851x3[_0x221c[236]],_0xc851x3[_0x221c[117]],_0xc851x3[_0x221c[119]]);_0xc851x3=0}}else {_0xc851x5=this[_0x221c[724]][_0x221c[441]][_0x221c[1653]],null!=this[_0x221c[359]]&&null!=this[_0x221c[167]]?(_0xc851x4=this[_0x221c[1333]]?this[_0x221c[1562]][_0x221c[117]]:this[_0x221c[359]]*this[_0x221c[255]],_0xc851x5=this[_0x221c[167]]*this[_0x221c[255]]):null!=_0xc851x5?(this[_0x221c[1441]](_0xc851x5),this[_0x221c[1654]](_0xc851x5),mxUtils[_0x221c[1331]](this[_0x221c[131]])?_0xc851x5[_0x221c[339]]=this[_0x221c[131]][_0x221c[342]]:(_0xc851x4=this[_0x221c[1650]]?this[_0x221c[131]][_0x221c[230]](/\n/g,_0x221c[1453]):this[_0x221c[131]],_0xc851x5[_0x221c[339]]=_0xc851x4),_0xc851x4=this[_0x221c[1333]]?this[_0x221c[1562]][_0x221c[117]]:_0xc851x5[_0x221c[359]]*this[_0x221c[255]],_0xc851x5=_0xc851x5[_0x221c[167]]*this[_0x221c[255]]):(_0xc851x4=this[_0x221c[1333]]?this[_0x221c[1562]][_0x221c[117]]:_0xc851x2[_0x221c[359]]*this[_0x221c[255]],_0xc851x5=_0xc851x2[_0x221c[167]]*this[_0x221c[255]])};null!=_0xc851x4&&null!=_0xc851x5&&(this[_0x221c[1563]]= new mxRectangle(this[_0x221c[1562]][_0x221c[235]]+this[_0x221c[1655]][_0x221c[235]]*_0xc851x4,this[_0x221c[1562]][_0x221c[236]]+this[_0x221c[1655]][_0x221c[236]]*_0xc851x5,_0xc851x4,_0xc851x5))}else {this[_0x221c[1563]][_0x221c[235]]+=this[_0x221c[1655]][_0x221c[235]]*this[_0x221c[1563]][_0x221c[117]],this[_0x221c[1563]][_0x221c[236]]+=this[_0x221c[1655]][_0x221c[236]]*this[_0x221c[1563]][_0x221c[119]]};null!=this[_0x221c[1563]]&&(0!=_0xc851x3&&(_0xc851x3=mxUtils[_0x221c[1613]](this[_0x221c[1563]],_0xc851x3),this[_0x221c[1563]][_0x221c[235]]=_0xc851x3[_0x221c[235]],this[_0x221c[1563]][_0x221c[236]]=_0xc851x3[_0x221c[236]],mxClient[_0x221c[496]]||(this[_0x221c[1563]][_0x221c[117]]=_0xc851x3[_0x221c[117]],this[_0x221c[1563]][_0x221c[119]]=_0xc851x3[_0x221c[119]])),this[_0x221c[1563]][_0x221c[235]]=Math[_0x221c[519]](this[_0x221c[1563]][_0x221c[235]]),this[_0x221c[1563]][_0x221c[236]]=Math[_0x221c[519]](this[_0x221c[1563]][_0x221c[236]]),this[_0x221c[1563]][_0x221c[117]]=Math[_0x221c[430]](this[_0x221c[1563]][_0x221c[117]]),this[_0x221c[1563]][_0x221c[119]]=Math[_0x221c[430]](this[_0x221c[1563]][_0x221c[119]]))};mxText[_0x221c[202]][_0x221c[1598]]=function(){return 0};mxText[_0x221c[202]][_0x221c[1615]]=function(){return null!=this[_0x221c[724]]&&null!=this[_0x221c[724]][_0x221c[253]]?this[_0x221c[724]][_0x221c[253]][_0x221c[1615]]():0};mxText[_0x221c[202]][_0x221c[1590]]=function(){return !this[_0x221c[662]]&&null!=this[_0x221c[724]]&&this[_0x221c[724]][_0x221c[441]][_0x221c[1179]][_0x221c[251]][_0x221c[1193]](this[_0x221c[724]][_0x221c[246]])};mxText[_0x221c[202]][_0x221c[1592]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){mxShape[_0x221c[202]][_0x221c[1592]][_0x221c[183]](this,arguments);_0xc851x2[_0x221c[1259]](this[_0x221c[352]]);_0xc851x2[_0x221c[1260]](this[_0x221c[1537]]);_0xc851x2[_0x221c[1262]](this[_0x221c[467]]);_0xc851x2[_0x221c[1265]](this[_0x221c[1288]]);_0xc851x2[_0x221c[1264]](this[_0x221c[803]]);_0xc851x2[_0x221c[1266]](this[_0x221c[666]])};mxText[_0x221c[202]][_0x221c[1586]]=function(){this[_0x221c[252]][_0x221c[124]][_0x221c[361]]=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[235]])+_0x221c[168];this[_0x221c[252]][_0x221c[124]][_0x221c[125]]=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[236]])+_0x221c[168];this[_0x221c[252]][_0x221c[124]][_0x221c[117]]=_0x221c[942];this[_0x221c[252]][_0x221c[124]][_0x221c[119]]=_0x221c[942];this[_0x221c[252]][_0x221c[124]][_0x221c[277]]=_0x221c[189]};mxText[_0x221c[202]][_0x221c[1209]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[255]],_0xc851x4=this[_0x221c[1562]][_0x221c[235]]/_0xc851x3,_0xc851x5=this[_0x221c[1562]][_0x221c[236]]/_0xc851x3,_0xc851x9=this[_0x221c[1562]][_0x221c[117]]/_0xc851x3,_0xc851x3=this[_0x221c[1562]][_0x221c[119]]/_0xc851x3;this[_0x221c[1591]](_0xc851x2,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851x3);this[_0x221c[1592]](_0xc851x2,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851x3);var _0xc851xa=mxUtils[_0x221c[1331]](this[_0x221c[131]])||this[_0x221c[507]]==mxConstants[_0x221c[1656]],_0xc851x12=_0xc851xa||_0xc851x2 instanceof mxVmlCanvas2D?_0x221c[1428]:_0x221c[110],_0xc851x13=this[_0x221c[131]];!_0xc851xa&&_0x221c[1428]==_0xc851x12&&(_0xc851x13=mxUtils[_0x221c[321]](_0xc851x13,!1));_0xc851x13=!mxUtils[_0x221c[1331]](this[_0x221c[131]])&&this[_0x221c[1650]]&&_0x221c[1428]==_0xc851x12?_0xc851x13[_0x221c[230]](/\n/g,_0x221c[1453]):_0xc851x13;_0xc851x2[_0x221c[963]](_0xc851x4,_0xc851x5,_0xc851x9,_0xc851x3,_0xc851x13,this[_0x221c[611]],this[_0x221c[552]],this[_0x221c[1333]],_0xc851x12,_0x221c[1334]==this[_0x221c[277]],this[_0x221c[1645]],this[_0x221c[1615]]())};mxText[_0x221c[202]][_0x221c[1575]]=function(){var _0xc851x2=this[_0x221c[252]][_0x221c[124]];_0xc851x2[_0x221c[461]]=1>this[_0x221c[461]]?this[_0x221c[461]]:_0x221c[110];_0xc851x2[_0x221c[277]]=_0x221c[110];_0xc851x2[_0x221c[117]]=_0x221c[110];_0xc851x2[_0x221c[119]]=_0x221c[110];this[_0x221c[1441]](this[_0x221c[252]]);this[_0x221c[1654]](this[_0x221c[252]]);this[_0x221c[1657]]();this[_0x221c[167]]=this[_0x221c[359]]=null;null!=mxClient[_0x221c[73]]?this[_0x221c[1658]]():this[_0x221c[1659]]()};mxText[_0x221c[202]][_0x221c[1658]]=function(){var _0xc851x2=this[_0x221c[1615]](),_0xc851x3=this[_0x221c[252]][_0x221c[124]],_0xc851x4=this[_0x221c[1655]][_0x221c[235]],_0xc851x5=this[_0x221c[1655]][_0x221c[236]];0!=_0xc851x2?(_0xc851x3[mxClient[_0x221c[73]]+_0x221c[1660]]=100*-_0xc851x4+_0x221c[1661]+100*-_0xc851x5+_0x221c[229],_0xc851x3[mxClient[_0x221c[73]]+_0x221c[1662]]=_0x221c[536]+100*_0xc851x4+_0x221c[1663]+100*_0xc851x5+_0x221c[1664]+this[_0x221c[255]]+_0x221c[1665]+_0xc851x2+_0x221c[1666]):(_0xc851x3[mxClient[_0x221c[73]]+_0x221c[1660]]=_0x221c[1667],_0xc851x3[mxClient[_0x221c[73]]+_0x221c[1662]]=_0x221c[1402]+this[_0x221c[255]]+_0x221c[1393]+100*_0xc851x4+_0x221c[1663]+100*_0xc851x5+_0x221c[1668]);_0xc851x3[_0x221c[361]]=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[235]])+_0x221c[168];_0xc851x3[_0x221c[125]]=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[236]])+_0x221c[168]};mxText[_0x221c[202]][_0x221c[1659]]=function(){var _0xc851x2=this[_0x221c[252]][_0x221c[124]],_0xc851x3=this[_0x221c[1655]][_0x221c[235]],_0xc851x4=this[_0x221c[1655]][_0x221c[236]],_0xc851x5=this[_0x221c[255]];_0xc851x2[_0x221c[347]]=_0x221c[110];var _0xc851x9=0,_0xc851xa=0,_0xc851x12=null!=this[_0x221c[724]]?this[_0x221c[724]][_0x221c[441]][_0x221c[1653]]:null;if(null!=_0xc851x12){_0xc851x12[_0x221c[124]][_0x221c[277]]=_0x221c[110];_0xc851x12[_0x221c[124]][_0x221c[119]]=_0x221c[110];_0xc851x12[_0x221c[124]][_0x221c[117]]=_0x221c[110];this[_0x221c[1441]](_0xc851x12);this[_0x221c[1654]](_0xc851x12);if(mxUtils[_0x221c[1331]](this[_0x221c[131]])){_0xc851x12[_0x221c[339]]=this[_0x221c[131]][_0x221c[342]]}else {var _0xc851x13=this[_0x221c[131]];this[_0x221c[507]]!=mxConstants[_0x221c[1656]]&&(_0xc851x13=mxUtils[_0x221c[321]](_0xc851x13,!1));_0xc851x13=this[_0x221c[1650]]?_0xc851x13[_0x221c[230]](/\n/g,_0x221c[1453]):_0xc851x13;_0xc851x12[_0x221c[339]]=_0xc851x13};_0xc851x9=_0xc851x12[_0x221c[359]]+2;_0xc851xa=_0xc851x12[_0x221c[167]]+2}else {_0xc851x9=this[_0x221c[252]][_0x221c[359]],_0xc851xa=this[_0x221c[252]][_0x221c[167]]+1};this[_0x221c[359]]=_0xc851x9;this[_0x221c[167]]=_0xc851xa;_0xc851x12=this[_0x221c[1562]][_0x221c[117]]/_0xc851x5;_0xc851x13=this[_0x221c[1562]][_0x221c[119]]/_0xc851x5;mxClient[_0x221c[496]]&&(this[_0x221c[1645]]||_0x221c[1334]==this[_0x221c[277]])&&0<_0xc851x13?(_0xc851x13=Math[_0x221c[243]](_0xc851x13,_0xc851xa),_0xc851x2[_0x221c[119]]=Math[_0x221c[488]](_0xc851x13+1)+_0x221c[168]):_0xc851x13=_0xc851xa;_0x221c[1334]!=this[_0x221c[277]]&&(mxClient[_0x221c[496]]&&(this[_0x221c[1645]]||this[_0x221c[1333]])&&0<_0xc851x12?(_0xc851x12=Math[_0x221c[243]](_0xc851x12,_0xc851x9),_0xc851x2[_0x221c[117]]=Math[_0x221c[488]](_0xc851x12)+_0x221c[168]):_0xc851x12=_0xc851x9);var _0xc851x13=_0xc851x13*_0xc851x5,_0xc851x12=_0xc851x12*_0xc851x5,_0xc851x9=this[_0x221c[1615]]()*(Math[_0x221c[424]]/180),_0xc851xa=parseFloat(parseFloat(Math[_0x221c[426]](_0xc851x9))[_0x221c[1293]](8)),_0xc851x14=parseFloat(parseFloat(Math[_0x221c[427]](-_0xc851x9))[_0x221c[1293]](8)),_0xc851x9=_0xc851x9%(2*Math[_0x221c[424]]);0>_0xc851x9&&(_0xc851x9+=2*Math[_0x221c[424]]);_0xc851x9%=Math[_0x221c[424]];_0xc851x9>Math[_0x221c[424]]/2&&(_0xc851x9=Math[_0x221c[424]]-_0xc851x9);var _0xc851x15=Math[_0x221c[426]](_0xc851x9),_0xc851x16=Math[_0x221c[427]](-_0xc851x9),_0xc851x3=_0xc851x12* -(_0xc851x3+0.5),_0xc851x4=_0xc851x13* -(_0xc851x4+0.5),_0xc851x17=(_0xc851x13-_0xc851x13*_0xc851x15+_0xc851x12*_0xc851x16)/2+_0xc851x14*_0xc851x3-_0xc851xa*_0xc851x4;0!=_0xc851x9&&(_0xc851x2[_0x221c[347]]=_0x221c[1505]+_0xc851xa+_0x221c[1506]+_0xc851x14+_0x221c[1507]+-_0xc851x14+_0x221c[1508]+_0xc851xa+_0x221c[1509]);_0xc851x2[_0x221c[499]]=_0xc851x5;_0xc851x2[_0x221c[361]]=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[235]]+((_0xc851x12-_0xc851x12*_0xc851x15+_0xc851x13*_0xc851x16)/2-_0xc851xa*_0xc851x3-_0xc851x14*_0xc851x4)-_0xc851x12/2)+_0x221c[168];_0xc851x2[_0x221c[125]]=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[236]]+_0xc851x17-_0xc851x13/2)+_0x221c[168]};mxText[_0x221c[202]][_0x221c[1657]]=function(){if(mxUtils[_0x221c[1331]](this[_0x221c[131]])){this[_0x221c[252]][_0x221c[339]]=_0x221c[110],this[_0x221c[252]][_0x221c[62]](this[_0x221c[131]])}else {var _0xc851x2=this[_0x221c[131]];this[_0x221c[507]]!=mxConstants[_0x221c[1656]]&&(_0xc851x2=mxUtils[_0x221c[321]](_0xc851x2,!1));var _0xc851x2=this[_0x221c[1650]]?_0xc851x2[_0x221c[230]](/\n/g,_0x221c[1453]):_0xc851x2,_0xc851x3=null!=this[_0x221c[1537]]&&this[_0x221c[1537]]!=mxConstants[_0x221c[217]]?this[_0x221c[1537]]:null,_0xc851x4=null!=this[_0x221c[467]]&&this[_0x221c[467]]!=mxConstants[_0x221c[217]]?this[_0x221c[467]]:null;if(null!=_0xc851x3||null!=_0xc851x4){if(_0x221c[1334]==this[_0x221c[277]]){null!=_0xc851x3&&(this[_0x221c[252]][_0x221c[124]][_0x221c[1028]]=_0xc851x3),null!=_0xc851x4&&(this[_0x221c[252]][_0x221c[124]][_0x221c[467]]=_0x221c[1669]+_0xc851x4)}else {var _0xc851x5=_0x221c[110];null!=_0xc851x3&&(_0xc851x5+=_0x221c[1418]+_0xc851x3+_0x221c[471]);null!=_0xc851x4&&(_0xc851x5+=_0x221c[1419]+_0xc851x4+_0x221c[471]);_0xc851x2=_0x221c[1670]+_0xc851x5+_0x221c[1671]+this[_0x221c[252]][_0x221c[124]][_0x221c[489]]+_0x221c[1423]+_0xc851x2+_0x221c[1424];this[_0x221c[252]][_0x221c[124]][_0x221c[489]]=_0x221c[110]}};this[_0x221c[252]][_0x221c[339]]=_0xc851x2}};mxText[_0x221c[202]][_0x221c[1441]]=function(_0xc851x2){_0xc851x2=_0xc851x2[_0x221c[124]];_0xc851x2[_0x221c[489]]=Math[_0x221c[488]](this[_0x221c[803]]*mxConstants[_0x221c[490]])+_0x221c[168];_0xc851x2[_0x221c[487]]=Math[_0x221c[488]](this[_0x221c[803]])+_0x221c[168];_0xc851x2[_0x221c[486]]=this[_0x221c[1288]];_0xc851x2[_0x221c[123]]=_0x221c[125];_0xc851x2[_0x221c[352]]=this[_0x221c[352]];_0xc851x2[_0x221c[1452]]=(this[_0x221c[666]]&mxConstants[_0x221c[1410]])==mxConstants[_0x221c[1410]]?_0x221c[1447]:_0x221c[110];_0xc851x2[_0x221c[666]]=(this[_0x221c[666]]&mxConstants[_0x221c[1412]])==mxConstants[_0x221c[1412]]?_0x221c[1449]:_0x221c[110];_0xc851x2[_0x221c[1498]]=(this[_0x221c[666]]&mxConstants[_0x221c[1414]])==mxConstants[_0x221c[1414]]?_0x221c[355]:_0x221c[110];_0xc851x2[_0x221c[1165]]=this[_0x221c[611]]==mxConstants[_0x221c[479]]?_0x221c[698]:this[_0x221c[611]]==mxConstants[_0x221c[480]]?_0x221c[699]:_0x221c[361]};mxText[_0x221c[202]][_0x221c[1654]]=function(_0xc851x2){var _0xc851x3=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[117]]/this[_0x221c[255]]),_0xc851x4=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[119]]/this[_0x221c[255]]);_0xc851x2=_0xc851x2[_0x221c[124]];this[_0x221c[1645]]?(_0xc851x2[_0x221c[277]]=_0x221c[188],0<_0xc851x4&&(_0xc851x2[_0x221c[1503]]=_0xc851x4+_0x221c[168]),0<_0xc851x3&&(_0xc851x2[_0x221c[117]]=_0xc851x3+_0x221c[168])):_0x221c[1334]==this[_0x221c[277]]&&(_0xc851x2[_0x221c[117]]=_0xc851x3+_0x221c[168],0<_0xc851x4&&(_0xc851x2[_0x221c[1503]]=_0xc851x4+_0x221c[168]));this[_0x221c[1333]]?(!this[_0x221c[1645]]&&0<_0xc851x3&&(_0xc851x2[_0x221c[117]]=_0xc851x3+_0x221c[168]),_0xc851x2[_0x221c[493]]=_0x221c[1502]):_0xc851x2[_0x221c[493]]=_0x221c[494]};mxText[_0x221c[202]][_0x221c[1672]]=function(){this[_0x221c[1655]]=mxUtils[_0x221c[1501]](this[_0x221c[611]],this[_0x221c[552]])};mxText[_0x221c[202]][_0x221c[1673]]=function(){var _0xc851x2=0,_0xc851x3=0,_0xc851x2=this[_0x221c[611]]==mxConstants[_0x221c[479]]?(this[_0x221c[659]]-this[_0x221c[661]])/2:this[_0x221c[611]]==mxConstants[_0x221c[480]]?-this[_0x221c[661]]-this[_0x221c[1649]]:this[_0x221c[659]]+this[_0x221c[1648]],_0xc851x3=this[_0x221c[552]]==mxConstants[_0x221c[481]]?(this[_0x221c[658]]-this[_0x221c[660]])/2:this[_0x221c[552]]==mxConstants[_0x221c[482]]?-this[_0x221c[660]]-this[_0x221c[1647]]:this[_0x221c[658]]+this[_0x221c[1646]];return  new mxPoint(_0xc851x2,_0xc851x3)};function mxTriangle(){mxActor[_0x221c[239]](this)}mxUtils[_0x221c[1284]](mxTriangle,mxActor);mxTriangle[_0x221c[202]][_0x221c[1625]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2[_0x221c[1276]](0,0);_0xc851x2[_0x221c[1277]](_0xc851x5,0.5*_0xc851x9);_0xc851x2[_0x221c[1277]](0,_0xc851x9);_0xc851x2[_0x221c[268]]()};function mxHexagon(){mxActor[_0x221c[239]](this)}mxUtils[_0x221c[1284]](mxHexagon,mxActor);mxHexagon[_0x221c[202]][_0x221c[1625]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2[_0x221c[1276]](0.25*_0xc851x5,0);_0xc851x2[_0x221c[1277]](0.75*_0xc851x5,0);_0xc851x2[_0x221c[1277]](_0xc851x5,0.5*_0xc851x9);_0xc851x2[_0x221c[1277]](0.75*_0xc851x5,_0xc851x9);_0xc851x2[_0x221c[1277]](0.25*_0xc851x5,_0xc851x9);_0xc851x2[_0x221c[1277]](0,0.5*_0xc851x9);_0xc851x2[_0x221c[268]]()};function mxLine(_0xc851x2,_0xc851x3,_0xc851x4){mxShape[_0x221c[239]](this);this[_0x221c[1562]]=_0xc851x2;this[_0x221c[1336]]=_0xc851x3;this[_0x221c[1307]]=null!=_0xc851x4?_0xc851x4:1}mxUtils[_0x221c[1284]](mxLine,mxShape);mxLine[_0x221c[202]][_0x221c[1595]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x4+=_0xc851x9/2;_0xc851x2[_0x221c[1275]]();_0xc851x2[_0x221c[1276]](_0xc851x3,_0xc851x4);_0xc851x2[_0x221c[1277]](_0xc851x3+_0xc851x5,_0xc851x4);_0xc851x2[_0x221c[1336]]()};function mxImageShape(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){mxShape[_0x221c[239]](this);this[_0x221c[1562]]=_0xc851x2;this[_0x221c[618]]=_0xc851x3;this[_0x221c[1334]]=_0xc851x4;this[_0x221c[1336]]=_0xc851x5;this[_0x221c[1307]]=null!=_0xc851x9?_0xc851x9:1;this[_0x221c[639]]= !1}mxUtils[_0x221c[1284]](mxImageShape,mxRectangleShape);mxImageShape[_0x221c[202]][_0x221c[1674]]= !0;mxImageShape[_0x221c[202]][_0x221c[1568]]=function(){return !mxClient[_0x221c[80]]?0.5:0};mxImageShape[_0x221c[202]][_0x221c[183]]=function(_0xc851x2){mxShape[_0x221c[202]][_0x221c[183]][_0x221c[183]](this,arguments);this[_0x221c[1299]]=this[_0x221c[1336]]=this[_0x221c[1334]]=null;null!=this[_0x221c[124]]&&(this[_0x221c[1334]]=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_IMAGE_BACKGROUND),this[_0x221c[1336]]=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_IMAGE_BORDER),this[_0x221c[1674]]=1==mxUtils[_0x221c[1550]](this[_0x221c[124]],mxConstants.STYLE_IMAGE_ASPECT,1),this[_0x221c[623]]=this[_0x221c[623]]||1==mxUtils[_0x221c[433]](this[_0x221c[124]],_0x221c[1675],0),this[_0x221c[624]]=this[_0x221c[624]]||1==mxUtils[_0x221c[433]](this[_0x221c[124]],_0x221c[1676],0))};mxImageShape[_0x221c[202]][_0x221c[1567]]=function(){return !this[_0x221c[1674]]};mxImageShape[_0x221c[202]][_0x221c[1570]]=function(){var _0xc851x2=document[_0x221c[55]](_0x221c[485]);_0xc851x2[_0x221c[124]][_0x221c[491]]=_0x221c[492];return _0xc851x2};mxImageShape[_0x221c[202]][_0x221c[1595]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){if(null!=this[_0x221c[618]]){var _0xc851xa=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_IMAGE_BACKGROUND,null),_0xc851x12=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_IMAGE_BORDER,null);if(null!=_0xc851xa||null!=_0xc851x12){_0xc851x2[_0x221c[1245]](_0xc851xa),_0xc851x2[_0x221c[1249]](_0xc851x12),_0xc851x2[_0x221c[1319]](_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9),_0xc851x2[_0x221c[1337]]()};_0xc851x2[_0x221c[618]](_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,this[_0x221c[618]],this[_0x221c[1674]],!1,!1)}else {mxRectangleShape[_0x221c[202]][_0x221c[1601]][_0x221c[183]](this,arguments)}};mxImageShape[_0x221c[202]][_0x221c[1575]]=function(){this[_0x221c[252]][_0x221c[124]][_0x221c[361]]=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[235]])+_0x221c[168];this[_0x221c[252]][_0x221c[124]][_0x221c[125]]=Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[236]])+_0x221c[168];this[_0x221c[252]][_0x221c[124]][_0x221c[117]]=Math[_0x221c[160]](0,Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[117]]))+_0x221c[168];this[_0x221c[252]][_0x221c[124]][_0x221c[119]]=Math[_0x221c[160]](0,Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[119]]))+_0x221c[168];this[_0x221c[252]][_0x221c[124]][_0x221c[1028]]=this[_0x221c[1334]]||_0x221c[110];this[_0x221c[252]][_0x221c[124]][_0x221c[1630]]=this[_0x221c[1336]]||_0x221c[110];this[_0x221c[252]][_0x221c[339]]=_0x221c[110];if(null!=this[_0x221c[618]]){var _0xc851x2=document[_0x221c[55]](mxClient[_0x221c[49]]||null==mxClient[_0x221c[73]]&&0!=this[_0x221c[603]]?mxClient[_0x221c[463]]+_0x221c[464]:_0x221c[466]);_0xc851x2[_0x221c[124]][_0x221c[491]]=_0x221c[492];_0xc851x2[_0x221c[390]]=this[_0x221c[618]];var _0xc851x3=100>this[_0x221c[461]]?_0x221c[459]+this[_0x221c[461]]+_0x221c[460]:_0x221c[110];this[_0x221c[252]][_0x221c[124]][_0x221c[347]]=_0xc851x3;this[_0x221c[623]]&&this[_0x221c[624]]?_0xc851x3+=_0x221c[1677]:this[_0x221c[623]]?_0xc851x3+=_0x221c[1678]:this[_0x221c[624]]&&(_0xc851x3+=_0x221c[1679]);_0xc851x2[_0x221c[124]][_0x221c[347]]!=_0xc851x3&&(_0xc851x2[_0x221c[124]][_0x221c[347]]=_0xc851x3);_0x221c[618]==_0xc851x2[_0x221c[301]]?_0xc851x2[_0x221c[124]][_0x221c[603]]=this[_0x221c[603]]:_0xc851x2[_0x221c[124]][mxClient[_0x221c[73]]+_0x221c[1662]]=_0x221c[1394]+this[_0x221c[603]]+_0x221c[1666];_0xc851x2[_0x221c[124]][_0x221c[117]]=this[_0x221c[252]][_0x221c[124]][_0x221c[117]];_0xc851x2[_0x221c[124]][_0x221c[119]]=this[_0x221c[252]][_0x221c[124]][_0x221c[119]];this[_0x221c[252]][_0x221c[124]][_0x221c[1617]]=_0x221c[110];this[_0x221c[252]][_0x221c[62]](_0xc851x2)}else {this[_0x221c[1600]](this[_0x221c[252]])}};function mxLabel(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxRectangleShape[_0x221c[239]](this,_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5)}mxUtils[_0x221c[1284]](mxLabel,mxRectangleShape);mxLabel[_0x221c[202]][_0x221c[1680]]=mxConstants[_0x221c[1681]];mxLabel[_0x221c[202]][_0x221c[657]]=2;mxLabel[_0x221c[202]][_0x221c[1682]]=10;mxLabel[_0x221c[202]][_0x221c[635]]=2;mxLabel[_0x221c[202]][_0x221c[176]]=function(_0xc851x2){mxShape[_0x221c[202]][_0x221c[176]][_0x221c[183]](this,arguments);null!=this[_0x221c[632]]&&null!=this[_0x221c[630]]&&(this[_0x221c[1683]]= new this[_0x221c[630]],this[_0x221c[1683]][_0x221c[507]]=this[_0x221c[507]],this[_0x221c[1683]][_0x221c[1562]]=this[_0x221c[1562]],this[_0x221c[1683]][_0x221c[1334]]=this[_0x221c[632]],this[_0x221c[1683]][_0x221c[1336]]=this[_0x221c[632]],this[_0x221c[1683]][_0x221c[1299]]=this[_0x221c[634]],this[_0x221c[1683]][_0x221c[663]]=this[_0x221c[638]],this[_0x221c[1683]][_0x221c[176]](this[_0x221c[252]]))};mxLabel[_0x221c[202]][_0x221c[258]]=function(){null!=this[_0x221c[1683]]&&(this[_0x221c[1683]][_0x221c[1334]]=this[_0x221c[632]],this[_0x221c[1683]][_0x221c[1336]]=this[_0x221c[632]],this[_0x221c[1683]][_0x221c[1299]]=this[_0x221c[634]],this[_0x221c[1683]][_0x221c[663]]=this[_0x221c[638]]);mxShape[_0x221c[202]][_0x221c[258]][_0x221c[183]](this,arguments)};mxLabel[_0x221c[202]][_0x221c[1567]]=function(){return mxRectangleShape[_0x221c[202]][_0x221c[1567]][_0x221c[183]](this,arguments)&&null==this[_0x221c[632]]&&null==this[_0x221c[630]]};mxLabel[_0x221c[202]][_0x221c[1602]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){this[_0x221c[1684]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9);this[_0x221c[1685]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9);mxRectangleShape[_0x221c[202]][_0x221c[1602]][_0x221c[183]](this,arguments)};mxLabel[_0x221c[202]][_0x221c[1684]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){null!=this[_0x221c[618]]&&(_0xc851x3=this[_0x221c[1686]](_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9),_0xc851x2[_0x221c[618]](_0xc851x3[_0x221c[235]],_0xc851x3[_0x221c[236]],_0xc851x3[_0x221c[117]],_0xc851x3[_0x221c[119]],this[_0x221c[618]],!1,!1,!1))};mxLabel[_0x221c[202]][_0x221c[1686]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),_0xc851xa=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),_0xc851x12=mxUtils[_0x221c[1550]](this[_0x221c[124]],mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE),_0xc851x13=mxUtils[_0x221c[1550]](this[_0x221c[124]],mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE),_0xc851x14=mxUtils[_0x221c[1550]](this[_0x221c[124]],mxConstants.STYLE_SPACING,this[_0x221c[657]])+5;_0xc851x2=_0xc851x9==mxConstants[_0x221c[479]]?_0xc851x2+(_0xc851x4-_0xc851x12)/2:_0xc851x9==mxConstants[_0x221c[480]]?_0xc851x2+(_0xc851x4-_0xc851x12-_0xc851x14):_0xc851x2+_0xc851x14;_0xc851x3=_0xc851xa==mxConstants[_0x221c[1687]]?_0xc851x3+_0xc851x14:_0xc851xa==mxConstants[_0x221c[482]]?_0xc851x3+(_0xc851x5-_0xc851x13-_0xc851x14):_0xc851x3+(_0xc851x5-_0xc851x13)/2;return  new mxRectangle(_0xc851x2,_0xc851x3,_0xc851x12,_0xc851x13)};mxLabel[_0x221c[202]][_0x221c[1685]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){null!=this[_0x221c[1683]]?(this[_0x221c[1683]][_0x221c[1562]]=this[_0x221c[1688]](_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9),this[_0x221c[1683]][_0x221c[1209]](_0xc851x2)):null!=this[_0x221c[631]]&&(_0xc851x3=this[_0x221c[1688]](_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9),_0xc851x2[_0x221c[618]](_0xc851x3[_0x221c[235]],_0xc851x3[_0x221c[236]],_0xc851x3[_0x221c[117]],_0xc851x3[_0x221c[119]],this[_0x221c[631]],!1,!1,!1))};mxLabel[_0x221c[202]][_0x221c[1688]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),_0xc851xa=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),_0xc851x12=mxUtils[_0x221c[1550]](this[_0x221c[124]],mxConstants.STYLE_INDICATOR_WIDTH,this[_0x221c[1682]]),_0xc851x13=mxUtils[_0x221c[1550]](this[_0x221c[124]],mxConstants.STYLE_INDICATOR_HEIGHT,this[_0x221c[1682]]),_0xc851x14=this[_0x221c[657]]+5;_0xc851x2=_0xc851x9==mxConstants[_0x221c[480]]?_0xc851x2+(_0xc851x4-_0xc851x12-_0xc851x14):_0xc851x9==mxConstants[_0x221c[479]]?_0xc851x2+(_0xc851x4-_0xc851x12)/2:_0xc851x2+_0xc851x14;_0xc851x3=_0xc851xa==mxConstants[_0x221c[482]]?_0xc851x3+(_0xc851x5-_0xc851x13-_0xc851x14):_0xc851xa==mxConstants[_0x221c[1687]]?_0xc851x3+_0xc851x14:_0xc851x3+(_0xc851x5-_0xc851x13)/2;return  new mxRectangle(_0xc851x2,_0xc851x3,_0xc851x12,_0xc851x13)};mxLabel[_0x221c[202]][_0x221c[1575]]=function(){for(mxRectangleShape[_0x221c[202]][_0x221c[1575]][_0x221c[183]](this,arguments);this[_0x221c[252]][_0x221c[1580]]();){this[_0x221c[252]][_0x221c[266]](this[_0x221c[252]][_0x221c[1581]])};if(null!=this[_0x221c[618]]){var _0xc851x2=document[_0x221c[55]](_0x221c[466]);_0xc851x2[_0x221c[124]][_0x221c[491]]=_0x221c[1500];_0xc851x2[_0x221c[57]](_0x221c[467],_0x221c[468]);var _0xc851x3=this[_0x221c[1686]](this[_0x221c[1562]][_0x221c[235]],this[_0x221c[1562]][_0x221c[236]],this[_0x221c[1562]][_0x221c[117]],this[_0x221c[1562]][_0x221c[119]]);_0xc851x3[_0x221c[235]]-=this[_0x221c[1562]][_0x221c[235]];_0xc851x3[_0x221c[236]]-=this[_0x221c[1562]][_0x221c[236]];_0xc851x2[_0x221c[124]][_0x221c[361]]=Math[_0x221c[488]](_0xc851x3[_0x221c[235]])+_0x221c[168];_0xc851x2[_0x221c[124]][_0x221c[125]]=Math[_0x221c[488]](_0xc851x3[_0x221c[236]])+_0x221c[168];_0xc851x2[_0x221c[124]][_0x221c[117]]=Math[_0x221c[488]](_0xc851x3[_0x221c[117]])+_0x221c[168];_0xc851x2[_0x221c[124]][_0x221c[119]]=Math[_0x221c[488]](_0xc851x3[_0x221c[119]])+_0x221c[168];_0xc851x2[_0x221c[390]]=this[_0x221c[618]];this[_0x221c[252]][_0x221c[62]](_0xc851x2)}};function mxCylinder(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxShape[_0x221c[239]](this);this[_0x221c[1562]]=_0xc851x2;this[_0x221c[1334]]=_0xc851x3;this[_0x221c[1336]]=_0xc851x4;this[_0x221c[1307]]=null!=_0xc851x5?_0xc851x5:1}mxUtils[_0x221c[1284]](mxCylinder,mxShape);mxCylinder[_0x221c[202]][_0x221c[1503]]=40;mxCylinder[_0x221c[202]][_0x221c[1564]]=0;mxCylinder[_0x221c[202]][_0x221c[1595]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2[_0x221c[513]](_0xc851x3,_0xc851x4);_0xc851x2[_0x221c[1275]]();this[_0x221c[1625]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,!1);_0xc851x2[_0x221c[1337]]();_0xc851x2[_0x221c[1267]](!1);_0xc851x2[_0x221c[1275]]();this[_0x221c[1625]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,!0);_0xc851x2[_0x221c[1336]]()};mxCylinder[_0x221c[202]][_0x221c[1625]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x3=Math[_0x221c[243]](this[_0x221c[1503]],Math[_0x221c[488]](_0xc851x9/5));if(_0xc851xa&&null!=this[_0x221c[1334]]||!_0xc851xa&&null==this[_0x221c[1334]]){_0xc851x2[_0x221c[1276]](0,_0xc851x3),_0xc851x2[_0x221c[1279]](0,2*_0xc851x3,_0xc851x5,2*_0xc851x3,_0xc851x5,_0xc851x3),_0xc851xa||(_0xc851x2[_0x221c[1336]](),_0xc851x2[_0x221c[1275]]())};_0xc851xa||(_0xc851x2[_0x221c[1276]](0,_0xc851x3),_0xc851x2[_0x221c[1279]](0,-_0xc851x3/3,_0xc851x5,-_0xc851x3/3,_0xc851x5,_0xc851x3),_0xc851x2[_0x221c[1277]](_0xc851x5,_0xc851x9-_0xc851x3),_0xc851x2[_0x221c[1279]](_0xc851x5,_0xc851x9+_0xc851x3/3,0,_0xc851x9+_0xc851x3/3,0,_0xc851x9-_0xc851x3),_0xc851x2[_0x221c[268]]())};function mxConnector(_0xc851x2,_0xc851x3,_0xc851x4){mxPolyline[_0x221c[239]](this,_0xc851x2,_0xc851x3,_0xc851x4)}mxUtils[_0x221c[1284]](mxConnector,mxPolyline);mxConnector[_0x221c[202]][_0x221c[1594]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1689]](_0xc851x2,_0xc851x3,!0),_0xc851x5=this[_0x221c[1689]](_0xc851x2,_0xc851x3,!1);null==this[_0x221c[124]]||1!=this[_0x221c[124]][mxConstants[_0x221c[1690]]]?this[_0x221c[1639]](_0xc851x2,_0xc851x3,this[_0x221c[1606]]):this[_0x221c[1691]](_0xc851x2,_0xc851x3);_0xc851x2[_0x221c[1245]](this[_0x221c[1336]]);_0xc851x2[_0x221c[1267]](!1);_0xc851x2[_0x221c[1251]](!1);null!=_0xc851x4&&_0xc851x4();null!=_0xc851x5&&_0xc851x5()};mxConnector[_0x221c[202]][_0x221c[1691]]=function(_0xc851x2,_0xc851x3){_0xc851x2[_0x221c[1275]]();var _0xc851x4=_0xc851x3[0],_0xc851x5=_0xc851x3[_0x221c[67]];_0xc851x2[_0x221c[1276]](_0xc851x4[_0x221c[235]],_0xc851x4[_0x221c[236]]);for(_0xc851x4=1;_0xc851x4<_0xc851x5-2;_0xc851x4++){var _0xc851x9=_0xc851x3[_0xc851x4],_0xc851xa=_0xc851x3[_0xc851x4+1];_0xc851x2[_0x221c[1278]](_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[236]],(_0xc851x9[_0x221c[235]]+_0xc851xa[_0x221c[235]])/2,(_0xc851x9[_0x221c[236]]+_0xc851xa[_0x221c[236]])/2)};_0xc851x9=_0xc851x3[_0xc851x5-2];_0xc851xa=_0xc851x3[_0xc851x5-1];_0xc851x2[_0x221c[1278]](_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[236]],_0xc851xa[_0x221c[235]],_0xc851xa[_0x221c[236]]);_0xc851x2[_0x221c[1336]]()};mxConnector[_0x221c[202]][_0x221c[1689]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=_0xc851x3[_0x221c[67]],_0xc851x9=_0xc851x4?_0xc851x3[1]:_0xc851x3[_0xc851x5-2];_0xc851x3=_0xc851x4?_0xc851x3[0]:_0xc851x3[_0xc851x5-1];var _0xc851x5=_0xc851x3[_0x221c[235]]-_0xc851x9[_0x221c[235]],_0xc851xa=_0xc851x3[_0x221c[236]]-_0xc851x9[_0x221c[236]],_0xc851x12=Math[_0x221c[160]](1,Math[_0x221c[428]](_0xc851x5*_0xc851x5+_0xc851xa*_0xc851xa)),_0xc851x9=_0xc851x5/_0xc851x12,_0xc851x5=_0xc851xa/_0xc851x12,_0xc851xa=mxUtils[_0x221c[1550]](this[_0x221c[124]],_0xc851x4?mxConstants[_0x221c[1692]]:mxConstants[_0x221c[1693]],mxConstants.DEFAULT_MARKERSIZE),_0xc851x12=mxUtils[_0x221c[433]](this[_0x221c[124]],_0xc851x4?mxConstants[_0x221c[1694]]:mxConstants[_0x221c[1695]]);return mxMarker[_0x221c[1689]](_0xc851x2,this,_0xc851x12,_0xc851x3,_0xc851x9,_0xc851x5,_0xc851xa,_0xc851x4,this[_0x221c[1307]],0!=this[_0x221c[124]][_0xc851x4?mxConstants[_0x221c[1696]]:mxConstants[_0x221c[1697]]])};mxConnector[_0x221c[202]][_0x221c[1612]]=function(_0xc851x2){mxShape[_0x221c[202]][_0x221c[1612]][_0x221c[183]](this,arguments);var _0xc851x3=0;mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants[_0x221c[217]]&&(_0xc851x3=mxUtils[_0x221c[1550]](this[_0x221c[124]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1);mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants[_0x221c[217]]&&(_0xc851x3=Math[_0x221c[160]](_0xc851x3,mxUtils[_0x221c[1550]](this[_0x221c[124]],mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1);_0xc851x2[_0x221c[244]](Math[_0x221c[430]](_0xc851x3*this[_0x221c[255]]))};function mxSwimlane(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxShape[_0x221c[239]](this);this[_0x221c[1562]]=_0xc851x2;this[_0x221c[1334]]=_0xc851x3;this[_0x221c[1336]]=_0xc851x4;this[_0x221c[1307]]=null!=_0xc851x5?_0xc851x5:1}mxUtils[_0x221c[1284]](mxSwimlane,mxShape);mxSwimlane[_0x221c[202]][_0x221c[1680]]=16;mxSwimlane[_0x221c[202]][_0x221c[1597]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2=Math[_0x221c[243]](_0xc851x9,mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return  new mxRectangle(_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x2)};mxSwimlane[_0x221c[202]][_0x221c[1614]]=function(){var _0xc851x2=mxShape[_0x221c[202]][_0x221c[1614]][_0x221c[183]](this,arguments);1!=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_HORIZONTAL,1)&&(_0xc851x2+=mxText[_0x221c[202]][_0x221c[1616]]);return _0xc851x2};mxSwimlane[_0x221c[202]][_0x221c[1615]]=function(){return this[_0x221c[1614]]()};mxSwimlane[_0x221c[202]][_0x221c[1590]]=function(){return mxShape[_0x221c[202]][_0x221c[1590]][_0x221c[183]](this,arguments)||1!=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_HORIZONTAL,1)};mxSwimlane[_0x221c[202]][_0x221c[1603]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_ARCSIZE,100*mxConstants[_0x221c[1557]])/100;return 3*_0xc851x4*_0xc851x2};mxSwimlane[_0x221c[202]][_0x221c[1595]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=Math[_0x221c[243]](_0xc851x9,mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),_0xc851x12=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE),_0xc851x13=1==mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_SWIMLANE_LINE,1),_0xc851x14=0;_0xc851x2[_0x221c[513]](_0xc851x3,_0xc851x4);this[_0x221c[1606]]?(_0xc851x14=this[_0x221c[1603]](_0xc851x5,_0xc851x9,_0xc851xa),this[_0x221c[1698]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x14,_0xc851x12,_0xc851x13)):this[_0x221c[1699]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13);_0xc851x12=mxUtils[_0x221c[433]](this[_0x221c[124]],mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);this[_0x221c[1700]](_0xc851x2,_0xc851x5,_0xc851xa,_0xc851x9,_0xc851x12);null!=this[_0x221c[618]]&&(_0xc851x9=this[_0x221c[1686]](_0xc851x3,_0xc851xa,_0xc851x5,_0xc851x9),_0xc851x2[_0x221c[618]](_0xc851x9[_0x221c[235]]-_0xc851x3,_0xc851x9[_0x221c[236]]-_0xc851x4,_0xc851x9[_0x221c[117]],_0xc851x9[_0x221c[119]],this[_0x221c[618]],!1,!1,!1));this[_0x221c[617]]&&(_0xc851x2[_0x221c[1267]](!1),this[_0x221c[1604]](_0xc851x2,0,0,_0xc851x5,_0xc851xa,_0xc851x14))};mxSwimlane[_0x221c[202]][_0x221c[1699]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13){_0xc851x12!=mxConstants[_0x221c[217]]&&(_0xc851x2[_0x221c[815]](),_0xc851x2[_0x221c[1245]](_0xc851x12),_0xc851x2[_0x221c[1319]](0,0,_0xc851x5,_0xc851x9),_0xc851x2[_0x221c[1337]](),_0xc851x2[_0x221c[1210]](),_0xc851x2[_0x221c[1267]](!1));_0xc851x2[_0x221c[1275]]();_0xc851x2[_0x221c[1276]](0,_0xc851xa);_0xc851x2[_0x221c[1277]](0,0);_0xc851x2[_0x221c[1277]](_0xc851x5,0);_0xc851x2[_0x221c[1277]](_0xc851x5,_0xc851xa);_0xc851x13&&_0xc851x2[_0x221c[268]]();_0xc851x2[_0x221c[1337]]();_0xc851xa<_0xc851x9&&_0xc851x12==mxConstants[_0x221c[217]]&&(_0xc851x2[_0x221c[1229]]= !1,_0xc851x2[_0x221c[1275]](),_0xc851x2[_0x221c[1276]](0,_0xc851xa),_0xc851x2[_0x221c[1277]](0,_0xc851x9),_0xc851x2[_0x221c[1277]](_0xc851x5,_0xc851x9),_0xc851x2[_0x221c[1277]](_0xc851x5,_0xc851xa),_0xc851x2[_0x221c[1336]]())};mxSwimlane[_0x221c[202]][_0x221c[1698]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14){_0xc851x13!=mxConstants[_0x221c[217]]&&(_0xc851x2[_0x221c[815]](),_0xc851x2[_0x221c[1245]](_0xc851x13),_0xc851x2[_0x221c[1320]](0,0,_0xc851x5,_0xc851x9,_0xc851x12,_0xc851x12),_0xc851x2[_0x221c[1337]](),_0xc851x2[_0x221c[1210]](),_0xc851x2[_0x221c[1267]](!1));_0xc851x2[_0x221c[1275]]();_0xc851x2[_0x221c[1276]](_0xc851x5,_0xc851xa);_0xc851x2[_0x221c[1277]](_0xc851x5,_0xc851x12);_0xc851x2[_0x221c[1278]](_0xc851x5,0,_0xc851x5-Math[_0x221c[243]](_0xc851x5/2,_0xc851x12),0);_0xc851x2[_0x221c[1277]](Math[_0x221c[243]](_0xc851x5/2,_0xc851x12),0);_0xc851x2[_0x221c[1278]](0,0,0,_0xc851x12);_0xc851x2[_0x221c[1277]](0,_0xc851xa);_0xc851x14&&_0xc851x2[_0x221c[268]]();_0xc851x2[_0x221c[1337]]();_0xc851xa<_0xc851x9&&_0xc851x13==mxConstants[_0x221c[217]]&&(_0xc851x2[_0x221c[1229]]= !1,_0xc851x2[_0x221c[1275]](),_0xc851x2[_0x221c[1276]](0,_0xc851xa),_0xc851x2[_0x221c[1277]](0,_0xc851x9-_0xc851x12),_0xc851x2[_0x221c[1278]](0,_0xc851x9,Math[_0x221c[243]](_0xc851x5/2,_0xc851x12),_0xc851x9),_0xc851x2[_0x221c[1277]](_0xc851x5-Math[_0x221c[243]](_0xc851x5/2,_0xc851x12),_0xc851x9),_0xc851x2[_0x221c[1278]](_0xc851x5,_0xc851x9,_0xc851x5,_0xc851x9-_0xc851x12),_0xc851x2[_0x221c[1277]](_0xc851x5,_0xc851xa),_0xc851x2[_0x221c[1336]]())};mxSwimlane[_0x221c[202]][_0x221c[1700]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x9!=mxConstants[_0x221c[217]]&&(_0xc851x2[_0x221c[1249]](_0xc851x9),_0xc851x2[_0x221c[1251]](!0),_0xc851x2[_0x221c[1275]](),_0xc851x2[_0x221c[1276]](_0xc851x3,_0xc851x4),_0xc851x2[_0x221c[1277]](_0xc851x3,_0xc851x5),_0xc851x2[_0x221c[1336]](),_0xc851x2[_0x221c[1251]](!1))};mxSwimlane[_0x221c[202]][_0x221c[1686]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){return  new mxRectangle(_0xc851x2+_0xc851x4-this[_0x221c[1680]],_0xc851x3,this[_0x221c[1680]],this[_0x221c[1680]])};function mxGraphLayout(_0xc851x2){this[_0x221c[1179]]=_0xc851x2}mxGraphLayout[_0x221c[202]][_0x221c[1179]]=null;mxGraphLayout[_0x221c[202]][_0x221c[1701]]= !0;mxGraphLayout[_0x221c[202]][_0x221c[1101]]=null;mxGraphLayout[_0x221c[202]][_0x221c[1702]]=function(_0xc851x2,_0xc851x3,_0xc851x4){};mxGraphLayout[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){};mxGraphLayout[_0x221c[202]][_0x221c[1703]]=function(){return this[_0x221c[1179]]};mxGraphLayout[_0x221c[202]][_0x221c[1704]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x4=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x3);_0xc851x3=null!=_0xc851x4?_0xc851x4[_0x221c[124]]:this[_0x221c[1179]][_0x221c[1705]](_0xc851x3);return null!=_0xc851x3?_0xc851x3[_0xc851x2]:null};mxGraphLayout[_0x221c[1706]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){if(null!=_0xc851x4&&null!=_0xc851x2){_0xc851x3=null!=_0xc851x3?_0xc851x3:!0;_0xc851x9=_0xc851x9||[];var _0xc851xa=mxCellPath[_0x221c[385]](_0xc851x2);if(null==_0xc851x9[_0xc851xa]&&(_0xc851x9[_0xc851xa]=_0xc851x2,_0xc851x5=_0xc851x4(_0xc851x2,_0xc851x5),null==_0xc851x5||_0xc851x5)){if(_0xc851x5=this[_0x221c[1179]][_0x221c[251]][_0x221c[1707]](_0xc851x2),0<_0xc851x5){for(_0xc851xa=0;_0xc851xa<_0xc851x5;_0xc851xa++){var _0xc851x12=this[_0x221c[1179]][_0x221c[251]][_0x221c[1708]](_0xc851x2,_0xc851xa),_0xc851x13=this[_0x221c[1179]][_0x221c[251]][_0x221c[1709]](_0xc851x12,!0)==_0xc851x2;if(!_0xc851x3||_0xc851x13){_0xc851x13=this[_0x221c[1179]][_0x221c[441]][_0x221c[1710]](_0xc851x12,!_0xc851x13),this[_0x221c[1706]](_0xc851x13,_0xc851x3,_0xc851x4,_0xc851x12,_0xc851x9)}}}}}};mxGraphLayout[_0x221c[202]][_0x221c[1711]]=function(_0xc851x2){return this[_0x221c[1179]][_0x221c[1712]](_0xc851x2)};mxGraphLayout[_0x221c[202]][_0x221c[1713]]=function(_0xc851x2){return !this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1193]](_0xc851x2)||!this[_0x221c[1179]][_0x221c[1714]](_0xc851x2)};mxGraphLayout[_0x221c[202]][_0x221c[1715]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[502]]();return !_0xc851x3[_0x221c[250]](_0xc851x2)||!this[_0x221c[1179]][_0x221c[1714]](_0xc851x2)||null==_0xc851x3[_0x221c[1709]](_0xc851x2,!0)||null==_0xc851x3[_0x221c[1709]](_0xc851x2,!1)};mxGraphLayout[_0x221c[202]][_0x221c[1716]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1179]][_0x221c[1717]](mxConstants.STYLE_NOEDGESTYLE,_0xc851x3?_0x221c[468]:_0x221c[500],[_0xc851x2])};mxGraphLayout[_0x221c[202]][_0x221c[1718]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1179]][_0x221c[1717]](mxConstants.STYLE_ORTHOGONAL,_0xc851x3?_0x221c[500]:_0x221c[468],[_0xc851x2])};mxGraphLayout[_0x221c[202]][_0x221c[1719]]=function(_0xc851x2){var _0xc851x3= new mxPoint;if(null!=_0xc851x2&&_0xc851x2!=this[_0x221c[1101]]){var _0xc851x4=this[_0x221c[1179]][_0x221c[502]]();if(_0xc851x4[_0x221c[1720]](this[_0x221c[1101]],_0xc851x2)){for(var _0xc851x5=_0xc851x4[_0x221c[1721]](_0xc851x2);_0xc851x2!=this[_0x221c[1101]];){_0xc851x3[_0x221c[235]]+=_0xc851x5[_0x221c[235]],_0xc851x3[_0x221c[236]]+=_0xc851x5[_0x221c[236]],_0xc851x2=_0xc851x4[_0x221c[1197]](_0xc851x2),_0xc851x5=_0xc851x4[_0x221c[1721]](_0xc851x2)}}};return _0xc851x3};mxGraphLayout[_0x221c[202]][_0x221c[1722]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2){var _0xc851x4=this[_0x221c[1179]][_0x221c[251]],_0xc851x5=_0xc851x4[_0x221c[1721]](_0xc851x2);null==_0xc851x5?(_0xc851x5= new mxGeometry,_0xc851x5[_0x221c[1723]](!0)):_0xc851x5=_0xc851x5[_0x221c[238]]();if(null!=this[_0x221c[1101]]&&null!=_0xc851x3){for(var _0xc851x9=_0xc851x4[_0x221c[1197]](_0xc851x2),_0xc851x9=this[_0x221c[1719]](_0xc851x9),_0xc851xa=0;_0xc851xa<_0xc851x3[_0x221c[67]];_0xc851xa++){_0xc851x3[_0xc851xa][_0x221c[235]]-=_0xc851x9[_0x221c[235]],_0xc851x3[_0xc851xa][_0x221c[236]]-=_0xc851x9[_0x221c[236]]}};_0xc851x5[_0x221c[1525]]=_0xc851x3;_0xc851x4[_0x221c[1724]](_0xc851x2,_0xc851x5)}};mxGraphLayout[_0x221c[202]][_0x221c[1725]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1179]][_0x221c[502]](),_0xc851x9=_0xc851x5[_0x221c[1721]](_0xc851x2),_0xc851xa=null;if(null!=_0xc851x9){_0xc851xa= new mxRectangle(_0xc851x3,_0xc851x4,_0xc851x9[_0x221c[117]],_0xc851x9[_0x221c[119]]);if(this[_0x221c[1701]]){var _0xc851x12=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](_0xc851x2);if(null!=_0xc851x12&&null!=_0xc851x12[_0x221c[963]]&&null!=_0xc851x12[_0x221c[963]][_0x221c[1563]]){var _0xc851x13=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]],_0xc851x14=_0xc851x12[_0x221c[963]][_0x221c[1563]];_0xc851x12[_0x221c[963]][_0x221c[1563]][_0x221c[235]]<_0xc851x12[_0x221c[235]]&&(_0xc851x3+=(_0xc851x12[_0x221c[235]]-_0xc851x14[_0x221c[235]])/_0xc851x13,_0xc851xa[_0x221c[117]]=_0xc851x14[_0x221c[117]]);_0xc851x12[_0x221c[963]][_0x221c[1563]][_0x221c[236]]<_0xc851x12[_0x221c[236]]&&(_0xc851x4+=(_0xc851x12[_0x221c[236]]-_0xc851x14[_0x221c[236]])/_0xc851x13,_0xc851xa[_0x221c[119]]=_0xc851x14[_0x221c[119]])}};null!=this[_0x221c[1101]]&&(_0xc851x12=_0xc851x5[_0x221c[1197]](_0xc851x2),null!=_0xc851x12&&_0xc851x12!=this[_0x221c[1101]]&&(_0xc851x12=this[_0x221c[1719]](_0xc851x12),_0xc851x3-=_0xc851x12[_0x221c[235]],_0xc851x4-=_0xc851x12[_0x221c[236]]));if(_0xc851x9[_0x221c[235]]!=_0xc851x3||_0xc851x9[_0x221c[236]]!=_0xc851x4){_0xc851x9=_0xc851x9[_0x221c[238]](),_0xc851x9[_0x221c[235]]=_0xc851x3,_0xc851x9[_0x221c[236]]=_0xc851x4,_0xc851x5[_0x221c[1724]](_0xc851x2,_0xc851x9)}};return _0xc851xa};mxGraphLayout[_0x221c[202]][_0x221c[1726]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1721]](_0xc851x2);if(this[_0x221c[1701]]){var _0xc851x4=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](_0xc851x2);if(null!=_0xc851x4&&null!=_0xc851x4[_0x221c[963]]&&null!=_0xc851x4[_0x221c[963]][_0x221c[1563]]){var _0xc851x5=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]],_0xc851x9=_0xc851x4[_0x221c[963]][_0x221c[1563]],_0xc851xa=Math[_0x221c[160]](_0xc851x4[_0x221c[235]]-_0xc851x9[_0x221c[235]],0)/_0xc851x5,_0xc851x12=Math[_0x221c[160]](_0xc851x4[_0x221c[236]]-_0xc851x9[_0x221c[236]],0)/_0xc851x5,_0xc851x13=Math[_0x221c[160]](_0xc851x9[_0x221c[235]]+_0xc851x9[_0x221c[117]]-(_0xc851x4[_0x221c[235]]+_0xc851x4[_0x221c[117]]),0)/_0xc851x5,_0xc851x4=Math[_0x221c[160]](_0xc851x9[_0x221c[236]]+_0xc851x9[_0x221c[119]]-(_0xc851x4[_0x221c[236]]+_0xc851x4[_0x221c[119]]),0)/_0xc851x5,_0xc851x3= new mxRectangle(_0xc851x3[_0x221c[235]]-_0xc851xa,_0xc851x3[_0x221c[236]]-_0xc851x12,_0xc851x3[_0x221c[117]]+_0xc851xa+_0xc851x13,_0xc851x3[_0x221c[119]]+_0xc851x12+_0xc851x4)}};null!=this[_0x221c[1101]]&&(_0xc851x2=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1197]](_0xc851x2),_0xc851x3=_0xc851x3[_0x221c[238]](),null!=_0xc851x2&&_0xc851x2!=this[_0x221c[1101]]&&(_0xc851x2=this[_0x221c[1719]](_0xc851x2),_0xc851x3[_0x221c[235]]+=_0xc851x2[_0x221c[235]],_0xc851x3[_0x221c[236]]+=_0xc851x2[_0x221c[236]]));return  new mxRectangle(_0xc851x3[_0x221c[235]],_0xc851x3[_0x221c[236]],_0xc851x3[_0x221c[117]],_0xc851x3[_0x221c[119]])};mxGraphLayout[_0x221c[202]][_0x221c[1727]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1179]][_0x221c[502]]()[_0x221c[473]]();try{for(var _0xc851x4=_0xc851x2[_0x221c[67]]-1;0<=_0xc851x4;_0xc851x4--){var _0xc851x5=_0xc851x2[_0xc851x4],_0xc851x9=this[_0x221c[1179]][_0x221c[1728]](_0xc851x5),_0xc851xa=this[_0x221c[1179]][_0x221c[1729]](_0xc851x9),_0xc851x12=this[_0x221c[1179]][_0x221c[1198]](_0xc851x5),_0xc851x13=0,_0xc851x14=0;if(this[_0x221c[1179]][_0x221c[1730]](_0xc851x5)){var _0xc851x15=this[_0x221c[1179]][_0x221c[1731]](_0xc851x5),_0xc851x13=_0xc851x15[_0x221c[117]],_0xc851x14=_0xc851x15[_0x221c[119]]};null!=_0xc851xa&&null!=_0xc851x12&&(_0xc851x12=_0xc851x12[_0x221c[238]](),_0xc851x12[_0x221c[235]]=_0xc851x12[_0x221c[235]]+_0xc851xa[_0x221c[235]]-_0xc851x3-_0xc851x13,_0xc851x12[_0x221c[236]]=_0xc851x12[_0x221c[236]]+_0xc851xa[_0x221c[236]]-_0xc851x3-_0xc851x14,_0xc851x12[_0x221c[117]]=_0xc851xa[_0x221c[117]]+2*_0xc851x3+_0xc851x13,_0xc851x12[_0x221c[119]]=_0xc851xa[_0x221c[119]]+2*_0xc851x3+_0xc851x14,this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1724]](_0xc851x5,_0xc851x12),this[_0x221c[1179]][_0x221c[834]](_0xc851x9,_0xc851x3+_0xc851x13-_0xc851xa[_0x221c[235]],_0xc851x3+_0xc851x14-_0xc851xa[_0x221c[236]]))}}finally{this[_0x221c[1179]][_0x221c[502]]()[_0x221c[476]]()}};function mxStackLayout(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){mxGraphLayout[_0x221c[239]](this,_0xc851x2);this[_0x221c[662]]=null!=_0xc851x3?_0xc851x3:!0;this[_0x221c[657]]=null!=_0xc851x4?_0xc851x4:0;this[_0x221c[1732]]=null!=_0xc851x5?_0xc851x5:0;this[_0x221c[1733]]=null!=_0xc851x9?_0xc851x9:0;this[_0x221c[467]]=null!=_0xc851xa?_0xc851xa:0}mxStackLayout[_0x221c[202]]= new mxGraphLayout;mxStackLayout[_0x221c[202]][_0x221c[196]]=mxStackLayout;mxStackLayout[_0x221c[202]][_0x221c[662]]=null;mxStackLayout[_0x221c[202]][_0x221c[657]]=null;mxStackLayout[_0x221c[202]][_0x221c[1732]]=null;mxStackLayout[_0x221c[202]][_0x221c[1733]]=null;mxStackLayout[_0x221c[202]][_0x221c[467]]=0;mxStackLayout[_0x221c[202]][_0x221c[1734]]= !1;mxStackLayout[_0x221c[202]][_0x221c[1334]]= !1;mxStackLayout[_0x221c[202]][_0x221c[1735]]= !1;mxStackLayout[_0x221c[202]][_0x221c[1736]]= !1;mxStackLayout[_0x221c[202]][_0x221c[1333]]=null;mxStackLayout[_0x221c[202]][_0x221c[1737]]=function(){return this[_0x221c[662]]};mxStackLayout[_0x221c[202]][_0x221c[1702]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1179]][_0x221c[502]](),_0xc851x9=_0xc851x5[_0x221c[1197]](_0xc851x2),_0xc851xa=this[_0x221c[1737]]();if(null!=_0xc851x2&&null!=_0xc851x9){var _0xc851x12=0,_0xc851x13=0,_0xc851x14=_0xc851x5[_0x221c[262]](_0xc851x9);_0xc851x3=_0xc851xa?_0xc851x3:_0xc851x4;_0xc851x12=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](_0xc851x9);null!=_0xc851x12&&(_0xc851x3-=_0xc851xa?_0xc851x12[_0x221c[235]]:_0xc851x12[_0x221c[236]]);for(_0xc851x12=0;_0xc851x12<_0xc851x14;_0xc851x12++){if(_0xc851x4=_0xc851x5[_0x221c[263]](_0xc851x9,_0xc851x12),_0xc851x4!=_0xc851x2&&(_0xc851x4=_0xc851x5[_0x221c[1721]](_0xc851x4),null!=_0xc851x4)){_0xc851x4=_0xc851xa?_0xc851x4[_0x221c[235]]+_0xc851x4[_0x221c[117]]/2:_0xc851x4[_0x221c[236]]+_0xc851x4[_0x221c[119]]/2;if(_0xc851x13<_0xc851x3&&_0xc851x4>_0xc851x3){break};_0xc851x13=_0xc851x4}};_0xc851xa=_0xc851x9[_0x221c[1738]](_0xc851x2);_0xc851xa=Math[_0x221c[160]](0,_0xc851x12-(_0xc851x12>_0xc851xa?1:0));_0xc851x5[_0x221c[99]](_0xc851x9,_0xc851x2,_0xc851xa)}};mxStackLayout[_0x221c[202]][_0x221c[1739]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[502]](),_0xc851x4=_0xc851x3[_0x221c[1721]](_0xc851x2);if(null!=this[_0x221c[1179]][_0x221c[526]]&&(null==_0xc851x4&&_0xc851x3[_0x221c[1740]](_0xc851x2)||_0xc851x2==this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1741]])){_0xc851x4= new mxRectangle(0,0,this[_0x221c[1179]][_0x221c[526]][_0x221c[359]]-1,this[_0x221c[1179]][_0x221c[526]][_0x221c[167]]-1)};return _0xc851x4};mxStackLayout[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=this[_0x221c[1737]](),_0xc851x4=this[_0x221c[1179]][_0x221c[502]](),_0xc851x5=this[_0x221c[1739]](_0xc851x2),_0xc851x9=0;null!=_0xc851x5&&(_0xc851x9=_0xc851x3?_0xc851x5[_0x221c[119]]:_0xc851x5[_0x221c[117]]);var _0xc851x9=_0xc851x9-(2*this[_0x221c[657]]+2*this[_0x221c[467]]),_0xc851xa=this[_0x221c[1732]]+this[_0x221c[467]],_0xc851x12=this[_0x221c[1733]]+this[_0x221c[467]];if(this[_0x221c[1179]][_0x221c[1730]](_0xc851x2)){var _0xc851x13=this[_0x221c[1179]][_0x221c[1705]](_0xc851x2),_0xc851x14=mxUtils[_0x221c[433]](_0xc851x13,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE),_0xc851x13=mxUtils[_0x221c[433]](_0xc851x13,mxConstants.STYLE_HORIZONTAL,!0);_0xc851x3==_0xc851x13&&(_0xc851x9-=_0xc851x14);_0xc851x3?_0xc851x12+=_0xc851x14:_0xc851xa+=_0xc851x14};_0xc851x4[_0x221c[473]]();try{for(var _0xc851x14=0,_0xc851x13=null,_0xc851x15=_0xc851x4[_0x221c[262]](_0xc851x2),_0xc851x16=0;_0xc851x16<_0xc851x15;_0xc851x16++){var _0xc851x17=_0xc851x4[_0x221c[263]](_0xc851x2,_0xc851x16);if(!this[_0x221c[1713]](_0xc851x17)&&this[_0x221c[1711]](_0xc851x17)){var _0xc851x18=_0xc851x4[_0x221c[1721]](_0xc851x17);if(null!=_0xc851x18){_0xc851x18=_0xc851x18[_0x221c[238]]();if(null!=this[_0x221c[1333]]&&null!=_0xc851x13&&(_0xc851x3&&_0xc851x13[_0x221c[235]]+_0xc851x13[_0x221c[117]]+_0xc851x18[_0x221c[117]]+2*this[_0x221c[657]]>this[_0x221c[1333]]||!_0xc851x3&&_0xc851x13[_0x221c[236]]+_0xc851x13[_0x221c[119]]+_0xc851x18[_0x221c[119]]+2*this[_0x221c[657]]>this[_0x221c[1333]])){_0xc851x13=null,_0xc851x3?_0xc851x12+=_0xc851x14+this[_0x221c[657]]:_0xc851xa+=_0xc851x14+this[_0x221c[657]],_0xc851x14=0};_0xc851x14=Math[_0x221c[160]](_0xc851x14,_0xc851x3?_0xc851x18[_0x221c[119]]:_0xc851x18[_0x221c[117]]);null!=_0xc851x13?_0xc851x3?_0xc851x18[_0x221c[235]]=_0xc851x13[_0x221c[235]]+_0xc851x13[_0x221c[117]]+this[_0x221c[657]]:_0xc851x18[_0x221c[236]]=_0xc851x13[_0x221c[236]]+_0xc851x13[_0x221c[119]]+this[_0x221c[657]]:this[_0x221c[1734]]||(_0xc851x3?_0xc851x18[_0x221c[235]]=_0xc851xa:_0xc851x18[_0x221c[236]]=_0xc851x12);_0xc851x3?_0xc851x18[_0x221c[236]]=_0xc851x12:_0xc851x18[_0x221c[235]]=_0xc851xa;this[_0x221c[1334]]&&0<_0xc851x9&&(_0xc851x3?_0xc851x18[_0x221c[119]]=_0xc851x9:_0xc851x18[_0x221c[117]]=_0xc851x9);_0xc851x4[_0x221c[1724]](_0xc851x17,_0xc851x18);_0xc851x13=_0xc851x18}}};this[_0x221c[1735]]&&null!=_0xc851x5&&null!=_0xc851x13&&!this[_0x221c[1179]][_0x221c[1742]](_0xc851x2)?(_0xc851x5=_0xc851x5[_0x221c[238]](),_0xc851x3?_0xc851x5[_0x221c[117]]=_0xc851x13[_0x221c[235]]+_0xc851x13[_0x221c[117]]+this[_0x221c[657]]:_0xc851x5[_0x221c[119]]=_0xc851x13[_0x221c[236]]+_0xc851x13[_0x221c[119]]+this[_0x221c[657]],_0xc851x4[_0x221c[1724]](_0xc851x2,_0xc851x5)):this[_0x221c[1736]]&&(null!=_0xc851x5&&null!=_0xc851x13)&&(_0xc851x3?_0xc851x13[_0x221c[117]]=_0xc851x5[_0x221c[117]]-_0xc851x13[_0x221c[235]]-this[_0x221c[657]]:_0xc851x13[_0x221c[119]]=_0xc851x5[_0x221c[119]]-_0xc851x13[_0x221c[236]]-this[_0x221c[657]])}finally{_0xc851x4[_0x221c[476]]()}}};function mxPartitionLayout(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxGraphLayout[_0x221c[239]](this,_0xc851x2);this[_0x221c[662]]=null!=_0xc851x3?_0xc851x3:!0;this[_0x221c[657]]=_0xc851x4||0;this[_0x221c[467]]=_0xc851x5||0}mxPartitionLayout[_0x221c[202]]= new mxGraphLayout;mxPartitionLayout[_0x221c[202]][_0x221c[196]]=mxPartitionLayout;mxPartitionLayout[_0x221c[202]][_0x221c[662]]=null;mxPartitionLayout[_0x221c[202]][_0x221c[657]]=null;mxPartitionLayout[_0x221c[202]][_0x221c[467]]=null;mxPartitionLayout[_0x221c[202]][_0x221c[1743]]= !0;mxPartitionLayout[_0x221c[202]][_0x221c[1737]]=function(){return this[_0x221c[662]]};mxPartitionLayout[_0x221c[202]][_0x221c[1702]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=this[_0x221c[1179]][_0x221c[502]]();var _0xc851x5=_0xc851x4[_0x221c[1197]](_0xc851x2);if(null!=_0xc851x2&&null!=_0xc851x5){for(var _0xc851x9=0,_0xc851xa=0,_0xc851x12=_0xc851x4[_0x221c[262]](_0xc851x5),_0xc851x9=0;_0xc851x9<_0xc851x12;_0xc851x9++){var _0xc851x13=_0xc851x4[_0x221c[263]](_0xc851x5,_0xc851x9),_0xc851x13=this[_0x221c[1726]](_0xc851x13);if(null!=_0xc851x13){_0xc851x13=_0xc851x13[_0x221c[235]]+_0xc851x13[_0x221c[117]]/2;if(_0xc851xa<_0xc851x3&&_0xc851x13>_0xc851x3){break};_0xc851xa=_0xc851x13}};_0xc851x3=_0xc851x5[_0x221c[1738]](_0xc851x2);_0xc851x3=Math[_0x221c[160]](0,_0xc851x9-(_0xc851x9>_0xc851x3?1:0));_0xc851x4[_0x221c[99]](_0xc851x5,_0xc851x2,_0xc851x3)}};mxPartitionLayout[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1737]](),_0xc851x4=this[_0x221c[1179]][_0x221c[502]](),_0xc851x5=_0xc851x4[_0x221c[1721]](_0xc851x2);if(null!=this[_0x221c[1179]][_0x221c[526]]&&(null==_0xc851x5&&_0xc851x4[_0x221c[1740]](_0xc851x2)||_0xc851x2==this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1741]])){_0xc851x5= new mxRectangle(0,0,this[_0x221c[1179]][_0x221c[526]][_0x221c[359]]-1,this[_0x221c[1179]][_0x221c[526]][_0x221c[167]]-1)};if(null!=_0xc851x5){for(var _0xc851x9=[],_0xc851xa=_0xc851x4[_0x221c[262]](_0xc851x2),_0xc851x12=0;_0xc851x12<_0xc851xa;_0xc851x12++){var _0xc851x13=_0xc851x4[_0x221c[263]](_0xc851x2,_0xc851x12);!this[_0x221c[1713]](_0xc851x13)&&this[_0x221c[1711]](_0xc851x13)&&_0xc851x9[_0x221c[207]](_0xc851x13)};_0xc851xa=_0xc851x9[_0x221c[67]];if(0<_0xc851xa){var _0xc851x14=this[_0x221c[467]],_0xc851x15=this[_0x221c[467]],_0xc851x16=_0xc851x3?_0xc851x5[_0x221c[119]]:_0xc851x5[_0x221c[117]],_0xc851x16=_0xc851x16-2*this[_0x221c[467]];_0xc851x2=this[_0x221c[1179]][_0x221c[1730]](_0xc851x2)?this[_0x221c[1179]][_0x221c[1731]](_0xc851x2): new mxRectangle;_0xc851x16-=_0xc851x3?_0xc851x2[_0x221c[119]]:_0xc851x2[_0x221c[117]];_0xc851x14+=_0xc851x2[_0x221c[117]];_0xc851x15+=_0xc851x2[_0x221c[119]];_0xc851x2=this[_0x221c[467]]+(_0xc851xa-1)*this[_0x221c[657]];_0xc851x5=_0xc851x3?(_0xc851x5[_0x221c[117]]-_0xc851x14-_0xc851x2)/_0xc851xa:(_0xc851x5[_0x221c[119]]-_0xc851x15-_0xc851x2)/_0xc851xa;if(0<_0xc851x5){_0xc851x4[_0x221c[473]]();try{for(_0xc851x12=0;_0xc851x12<_0xc851xa;_0xc851x12++){var _0xc851x13=_0xc851x9[_0xc851x12],_0xc851x17=_0xc851x4[_0x221c[1721]](_0xc851x13);null!=_0xc851x17&&(_0xc851x17=_0xc851x17[_0x221c[238]](),_0xc851x17[_0x221c[235]]=_0xc851x14,_0xc851x17[_0x221c[236]]=_0xc851x15,_0xc851x3?(this[_0x221c[1743]]&&(_0xc851x17[_0x221c[117]]=_0xc851x5,_0xc851x17[_0x221c[119]]=_0xc851x16),_0xc851x14+=_0xc851x5+this[_0x221c[657]]):(this[_0x221c[1743]]&&(_0xc851x17[_0x221c[119]]=_0xc851x5,_0xc851x17[_0x221c[117]]=_0xc851x16),_0xc851x15+=_0xc851x5+this[_0x221c[657]]),_0xc851x4[_0x221c[1724]](_0xc851x13,_0xc851x17))}}finally{_0xc851x4[_0x221c[476]]()}}}}};function mxCompactTreeLayout(_0xc851x2,_0xc851x3,_0xc851x4){mxGraphLayout[_0x221c[239]](this,_0xc851x2);this[_0x221c[662]]=null!=_0xc851x3?_0xc851x3:!0;this[_0x221c[1744]]=null!=_0xc851x4?_0xc851x4:!1}mxCompactTreeLayout[_0x221c[202]]= new mxGraphLayout;mxCompactTreeLayout[_0x221c[202]][_0x221c[196]]=mxCompactTreeLayout;mxCompactTreeLayout[_0x221c[202]][_0x221c[662]]=null;mxCompactTreeLayout[_0x221c[202]][_0x221c[1744]]=null;mxCompactTreeLayout[_0x221c[202]][_0x221c[1735]]= !0;mxCompactTreeLayout[_0x221c[202]][_0x221c[1745]]=10;mxCompactTreeLayout[_0x221c[202]][_0x221c[1746]]=null;mxCompactTreeLayout[_0x221c[202]][_0x221c[1747]]= !1;mxCompactTreeLayout[_0x221c[202]][_0x221c[1748]]=10;mxCompactTreeLayout[_0x221c[202]][_0x221c[1749]]=20;mxCompactTreeLayout[_0x221c[202]][_0x221c[1750]]= !0;mxCompactTreeLayout[_0x221c[202]][_0x221c[1751]]=5;mxCompactTreeLayout[_0x221c[202]][_0x221c[1752]]=4;mxCompactTreeLayout[_0x221c[202]][_0x221c[1753]]=8;mxCompactTreeLayout[_0x221c[202]][_0x221c[1754]]=4;mxCompactTreeLayout[_0x221c[202]][_0x221c[1755]]= !0;mxCompactTreeLayout[_0x221c[202]][_0x221c[1713]]=function(_0xc851x2){return mxGraphLayout[_0x221c[202]][_0x221c[1713]][_0x221c[183]](this,arguments)||0==this[_0x221c[1179]][_0x221c[1756]](_0xc851x2)[_0x221c[67]]};mxCompactTreeLayout[_0x221c[202]][_0x221c[1737]]=function(){return this[_0x221c[662]]};mxCompactTreeLayout[_0x221c[202]][_0x221c[350]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1101]]=_0xc851x2;var _0xc851x4=this[_0x221c[1179]][_0x221c[502]]();if(null==_0xc851x3){if(0<this[_0x221c[1179]][_0x221c[264]](_0xc851x2,_0xc851x4[_0x221c[1197]](_0xc851x2),this[_0x221c[1744]],!this[_0x221c[1744]],!1)[_0x221c[67]]){_0xc851x3=_0xc851x2}else {var _0xc851x5=this[_0x221c[1179]][_0x221c[1757]](_0xc851x2,!0,this[_0x221c[1744]]);if(0<_0xc851x5[_0x221c[67]]){for(var _0xc851x9=0;_0xc851x9<_0xc851x5[_0x221c[67]];_0xc851x9++){if(!this[_0x221c[1713]](_0xc851x5[_0xc851x9])&&0<this[_0x221c[1179]][_0x221c[264]](_0xc851x5[_0xc851x9],null,this[_0x221c[1744]],!this[_0x221c[1744]],!1)[_0x221c[67]]){_0xc851x3=_0xc851x5[_0xc851x9];break}}}}};if(null!=_0xc851x3){this[_0x221c[1746]]=this[_0x221c[1735]]?{}:null;_0xc851x4[_0x221c[473]]();try{var _0xc851xa=this[_0x221c[1758]](_0xc851x3,_0xc851x2);if(null!=_0xc851xa){this[_0x221c[1759]](_0xc851xa);var _0xc851x12=this[_0x221c[1179]][_0x221c[1020]],_0xc851x5=_0xc851x12;if(!this[_0x221c[1747]]){var _0xc851x13=this[_0x221c[1726]](_0xc851x3);null!=_0xc851x13&&(_0xc851x12=_0xc851x13[_0x221c[235]],_0xc851x5=_0xc851x13[_0x221c[236]])};_0xc851x13=null;_0xc851x13=this[_0x221c[1737]]()?this[_0x221c[1760]](_0xc851xa,_0xc851x12,_0xc851x5):this[_0x221c[1761]](_0xc851xa,null,_0xc851x12,_0xc851x5);if(null!=_0xc851x13){var _0xc851x14=_0xc851x9=0;0>_0xc851x13[_0x221c[235]]&&(_0xc851x9=Math[_0x221c[425]](_0xc851x12-_0xc851x13[_0x221c[235]]));0>_0xc851x13[_0x221c[236]]&&(_0xc851x14=Math[_0x221c[425]](_0xc851x5-_0xc851x13[_0x221c[236]]));(0!=_0xc851x9||0!=_0xc851x14)&&this[_0x221c[1762]](_0xc851xa,_0xc851x9,_0xc851x14);this[_0x221c[1735]]&&this[_0x221c[1763]]();this[_0x221c[1755]]&&this[_0x221c[1764]](_0xc851xa)}}}finally{_0xc851x4[_0x221c[476]]()}}};mxCompactTreeLayout[_0x221c[202]][_0x221c[1762]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2[_0x221c[235]]+=_0xc851x3;_0xc851x2[_0x221c[236]]+=_0xc851x4;this[_0x221c[183]](_0xc851x2);for(_0xc851x2=_0xc851x2[_0x221c[247]];null!=_0xc851x2;){this[_0x221c[1762]](_0xc851x2,_0xc851x3,_0xc851x4),_0xc851x2=_0xc851x2[_0x221c[1765]]}};mxCompactTreeLayout[_0x221c[202]][_0x221c[1758]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=null!=_0xc851x4?_0xc851x4:[];var _0xc851x5=mxCellPath[_0x221c[385]](_0xc851x2),_0xc851x9=null;if(null!=_0xc851x2&&null==_0xc851x4[_0xc851x5]&&!this[_0x221c[1713]](_0xc851x2)){_0xc851x4[_0xc851x5]=_0xc851x2;var _0xc851x9=this[_0x221c[1766]](_0xc851x2),_0xc851x5=this[_0x221c[1179]][_0x221c[502]](),_0xc851xa=null;_0xc851x2=this[_0x221c[1179]][_0x221c[264]](_0xc851x2,_0xc851x3,this[_0x221c[1744]],!this[_0x221c[1744]],!1,!0);for(var _0xc851x12=this[_0x221c[1179]][_0x221c[249]](),_0xc851x13=0;_0xc851x13<_0xc851x2[_0x221c[67]];_0xc851x13++){var _0xc851x14=_0xc851x2[_0xc851x13];if(!this[_0x221c[1715]](_0xc851x14)){this[_0x221c[1750]]&&this[_0x221c[1722]](_0xc851x14,null);this[_0x221c[1755]]&&(this[_0x221c[1716]](_0xc851x14,!1),this[_0x221c[1722]](_0xc851x14,null));var _0xc851x15=_0xc851x12[_0x221c[248]](_0xc851x14),_0xc851x14=null!=_0xc851x15?_0xc851x15[_0x221c[1710]](this[_0x221c[1744]]):_0xc851x12[_0x221c[1710]](_0xc851x14,this[_0x221c[1744]]),_0xc851x15=this[_0x221c[1758]](_0xc851x14,_0xc851x3,_0xc851x4);null!=_0xc851x15&&null!=_0xc851x5[_0x221c[1721]](_0xc851x14)&&(null==_0xc851xa?_0xc851x9[_0x221c[247]]=_0xc851x15:_0xc851xa[_0x221c[1765]]=_0xc851x15,_0xc851xa=_0xc851x15)}}};return _0xc851x9};mxCompactTreeLayout[_0x221c[202]][_0x221c[1759]]=function(_0xc851x2){if(null!=_0xc851x2){for(var _0xc851x3=_0xc851x2[_0x221c[247]];null!=_0xc851x3;){this[_0x221c[1759]](_0xc851x3),_0xc851x3=_0xc851x3[_0x221c[1765]]};null!=_0xc851x2[_0x221c[247]]?this[_0x221c[1767]](_0xc851x2,this[_0x221c[234]](_0xc851x2)):this[_0x221c[1768]](_0xc851x2)}};mxCompactTreeLayout[_0x221c[202]][_0x221c[1760]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x2[_0x221c[235]]+=_0xc851x3+_0xc851x2[_0x221c[1769]];_0xc851x2[_0x221c[236]]+=_0xc851x4+_0xc851x2[_0x221c[1770]];_0xc851x5=this[_0x221c[183]](_0xc851x2,_0xc851x5);_0xc851x3=_0xc851x2[_0x221c[247]];if(null!=_0xc851x3){_0xc851x5=this[_0x221c[1760]](_0xc851x3,_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]],_0xc851x5);_0xc851x4=_0xc851x2[_0x221c[236]]+_0xc851x3[_0x221c[1770]];for(var _0xc851x9=_0xc851x3[_0x221c[1765]];null!=_0xc851x9;){_0xc851x5=this[_0x221c[1760]](_0xc851x9,_0xc851x2[_0x221c[235]]+_0xc851x3[_0x221c[1769]],_0xc851x4,_0xc851x5),_0xc851x4+=_0xc851x9[_0x221c[1770]],_0xc851x9=_0xc851x9[_0x221c[1765]]}};return _0xc851x5};mxCompactTreeLayout[_0x221c[202]][_0x221c[1761]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2[_0x221c[235]]+=_0xc851x4+_0xc851x2[_0x221c[1770]];_0xc851x2[_0x221c[236]]+=_0xc851x5+_0xc851x2[_0x221c[1769]];_0xc851x9=this[_0x221c[183]](_0xc851x2,_0xc851x9);_0xc851x3=_0xc851x2[_0x221c[247]];if(null!=_0xc851x3){_0xc851x9=this[_0x221c[1761]](_0xc851x3,_0xc851x2,_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]],_0xc851x9);_0xc851x4=_0xc851x2[_0x221c[235]]+_0xc851x3[_0x221c[1770]];for(_0xc851x5=_0xc851x3[_0x221c[1765]];null!=_0xc851x5;){_0xc851x9=this[_0x221c[1761]](_0xc851x5,_0xc851x2,_0xc851x4,_0xc851x2[_0x221c[236]]+_0xc851x3[_0x221c[1769]],_0xc851x9),_0xc851x4+=_0xc851x5[_0x221c[1770]],_0xc851x5=_0xc851x5[_0x221c[1765]]}};return _0xc851x9};mxCompactTreeLayout[_0x221c[202]][_0x221c[1767]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1749]]+this[_0x221c[1748]],_0xc851x5=(_0xc851x3-_0xc851x2[_0x221c[117]])/2-this[_0x221c[1749]],_0xc851x9=_0xc851x5+_0xc851x2[_0x221c[117]]+2*this[_0x221c[1749]]-_0xc851x3;_0xc851x2[_0x221c[247]][_0x221c[1769]]=_0xc851x4+_0xc851x2[_0x221c[119]];_0xc851x2[_0x221c[247]][_0x221c[1770]]=_0xc851x9;_0xc851x2[_0x221c[1772]][_0x221c[1771]]=this[_0x221c[1773]](_0xc851x2[_0x221c[119]],0,this[_0x221c[1773]](_0xc851x4,_0xc851x9,_0xc851x2[_0x221c[1772]][_0x221c[1771]]));_0xc851x2[_0x221c[1772]][_0x221c[1774]]=this[_0x221c[1773]](_0xc851x2[_0x221c[119]],0,this[_0x221c[1773]](_0xc851x4,_0xc851x5,_0xc851x2[_0x221c[1772]][_0x221c[1774]]))};mxCompactTreeLayout[_0x221c[202]][_0x221c[1768]]=function(_0xc851x2){var _0xc851x3=2*this[_0x221c[1749]];_0xc851x2[_0x221c[1772]][_0x221c[1775]]=this[_0x221c[1773]](_0xc851x2[_0x221c[119]]+_0xc851x3,0);_0xc851x2[_0x221c[1772]][_0x221c[1771]]=_0xc851x2[_0x221c[1772]][_0x221c[1775]];_0xc851x2[_0x221c[1772]][_0x221c[1776]]=this[_0x221c[1773]](0,-_0xc851x2[_0x221c[117]]-_0xc851x3);_0xc851x2[_0x221c[1772]][_0x221c[1774]]=this[_0x221c[1773]](_0xc851x2[_0x221c[119]]+_0xc851x3,0,_0xc851x2[_0x221c[1772]][_0x221c[1776]])};mxCompactTreeLayout[_0x221c[202]][_0x221c[234]]=function(_0xc851x2){var _0xc851x3=2*this[_0x221c[1749]],_0xc851x4=_0xc851x2[_0x221c[247]];_0xc851x2[_0x221c[1772]]=_0xc851x4[_0x221c[1772]];for(var _0xc851x5=_0xc851x4[_0x221c[117]]+_0xc851x3,_0xc851x9=_0xc851x5,_0xc851x4=_0xc851x4[_0x221c[1765]];null!=_0xc851x4;){var _0xc851xa=this[_0x221c[1777]](_0xc851x2[_0x221c[1772]],_0xc851x4[_0x221c[1772]]);_0xc851x4[_0x221c[1770]]=_0xc851xa+_0xc851x5;_0xc851x4[_0x221c[1769]]=0;_0xc851x5=_0xc851x4[_0x221c[117]]+_0xc851x3;_0xc851x9+=_0xc851xa+_0xc851x5;_0xc851x4=_0xc851x4[_0x221c[1765]]};return _0xc851x9};mxCompactTreeLayout[_0x221c[202]][_0x221c[1777]]=function(_0xc851x2,_0xc851x3){for(var _0xc851x4=0,_0xc851x5=0,_0xc851x9=0,_0xc851xa=_0xc851x2[_0x221c[1774]],_0xc851x12=_0xc851x3[_0x221c[1771]];null!=_0xc851x12&&null!=_0xc851xa;){var _0xc851x13=this[_0x221c[1368]](_0xc851x4,_0xc851x5,_0xc851x12[_0x221c[1126]],_0xc851x12[_0x221c[1125]],_0xc851xa[_0x221c[1126]],_0xc851xa[_0x221c[1125]]),_0xc851x5=_0xc851x5+_0xc851x13,_0xc851x9=_0xc851x9+_0xc851x13;_0xc851x4+_0xc851x12[_0x221c[1126]]<=_0xc851xa[_0x221c[1126]]?(_0xc851x4+=_0xc851x12[_0x221c[1126]],_0xc851x5+=_0xc851x12[_0x221c[1125]],_0xc851x12=_0xc851x12[_0x221c[1765]]):(_0xc851x4-=_0xc851xa[_0x221c[1126]],_0xc851x5-=_0xc851xa[_0x221c[1125]],_0xc851xa=_0xc851xa[_0x221c[1765]])};null!=_0xc851x12?(_0xc851x4=this[_0x221c[1778]](_0xc851x2[_0x221c[1775]],0,0,_0xc851x12,_0xc851x4,_0xc851x5),_0xc851x2[_0x221c[1775]]=null!=_0xc851x4[_0x221c[1765]]?_0xc851x3[_0x221c[1775]]:_0xc851x4,_0xc851x2[_0x221c[1776]]=_0xc851x3[_0x221c[1776]]):(_0xc851x4=this[_0x221c[1778]](_0xc851x3[_0x221c[1776]],_0xc851x4,_0xc851x5,_0xc851xa,0,0),null==_0xc851x4[_0x221c[1765]]&&(_0xc851x2[_0x221c[1776]]=_0xc851x4));_0xc851x2[_0x221c[1774]]=_0xc851x3[_0x221c[1774]];return _0xc851x9};mxCompactTreeLayout[_0x221c[202]][_0x221c[1368]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){var _0xc851x12=0;if(_0xc851x9<=_0xc851x2||0>=_0xc851x2+_0xc851x4){return 0};_0xc851x12=0<_0xc851x9*_0xc851x5-_0xc851x4*_0xc851xa?0>_0xc851x2?_0xc851x2*_0xc851x5/_0xc851x4-_0xc851x3:0<_0xc851x2?_0xc851x2*_0xc851xa/_0xc851x9-_0xc851x3:-_0xc851x3:_0xc851x9<_0xc851x2+_0xc851x4?_0xc851xa-(_0xc851x3+(_0xc851x9-_0xc851x2)*_0xc851x5/_0xc851x4):_0xc851x9>_0xc851x2+_0xc851x4?(_0xc851x4+_0xc851x2)*_0xc851xa/_0xc851x9-(_0xc851x3+_0xc851x5):_0xc851xa-(_0xc851x3+_0xc851x5);return 0<_0xc851x12?_0xc851x12:0};mxCompactTreeLayout[_0x221c[202]][_0x221c[1778]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x3=_0xc851x9+_0xc851x5[_0x221c[1126]]-_0xc851x3;_0xc851x9=_0xc851x9=0;0==_0xc851x5[_0x221c[1126]]?_0xc851x9=_0xc851x5[_0x221c[1125]]:(_0xc851x9=_0xc851x3*_0xc851x5[_0x221c[1125]],_0xc851x9/=_0xc851x5[_0x221c[1126]]);_0xc851x3=this[_0x221c[1773]](_0xc851x3,_0xc851x9,_0xc851x5[_0x221c[1765]]);_0xc851x2[_0x221c[1765]]=this[_0x221c[1773]](0,_0xc851xa+_0xc851x5[_0x221c[1125]]-_0xc851x9-_0xc851x4,_0xc851x3);return _0xc851x3};mxCompactTreeLayout[_0x221c[202]][_0x221c[1766]]=function(_0xc851x2){var _0xc851x3={};_0xc851x3[_0x221c[246]]=_0xc851x2;_0xc851x3[_0x221c[235]]=0;_0xc851x3[_0x221c[236]]=0;_0xc851x3[_0x221c[117]]=0;_0xc851x3[_0x221c[119]]=0;_0xc851x2=this[_0x221c[1726]](_0xc851x2);null!=_0xc851x2&&(this[_0x221c[1737]]()?(_0xc851x3[_0x221c[117]]=_0xc851x2[_0x221c[119]],_0xc851x3[_0x221c[119]]=_0xc851x2[_0x221c[117]]):(_0xc851x3[_0x221c[117]]=_0xc851x2[_0x221c[117]],_0xc851x3[_0x221c[119]]=_0xc851x2[_0x221c[119]]));_0xc851x3[_0x221c[1769]]=0;_0xc851x3[_0x221c[1770]]=0;_0xc851x3[_0x221c[1772]]={};return _0xc851x3};mxCompactTreeLayout[_0x221c[202]][_0x221c[183]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[502]](),_0xc851x5=_0xc851x2[_0x221c[246]],_0xc851x9=_0xc851x4[_0x221c[1721]](_0xc851x5);null!=_0xc851x5&&null!=_0xc851x9&&(this[_0x221c[1711]](_0xc851x5)&&(_0xc851x9=this[_0x221c[1725]](_0xc851x5,_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]]),this[_0x221c[1735]]&&(_0xc851x4=_0xc851x4[_0x221c[1197]](_0xc851x5),_0xc851x5=mxCellPath[_0x221c[385]](_0xc851x4),null==this[_0x221c[1746]][_0xc851x5]&&(this[_0x221c[1746]][_0xc851x5]=_0xc851x4))),_0xc851x3=null==_0xc851x3? new mxRectangle(_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[236]],_0xc851x9[_0x221c[117]],_0xc851x9[_0x221c[119]]): new mxRectangle(Math[_0x221c[243]](_0xc851x3[_0x221c[235]],_0xc851x9[_0x221c[235]]),Math[_0x221c[243]](_0xc851x3[_0x221c[236]],_0xc851x9[_0x221c[236]]),Math[_0x221c[160]](_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]],_0xc851x9[_0x221c[235]]+_0xc851x9[_0x221c[117]]),Math[_0x221c[160]](_0xc851x3[_0x221c[236]]+_0xc851x3[_0x221c[119]],_0xc851x9[_0x221c[236]]+_0xc851x9[_0x221c[119]])));return _0xc851x3};mxCompactTreeLayout[_0x221c[202]][_0x221c[1773]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5={};_0xc851x5[_0x221c[1126]]=_0xc851x2;_0xc851x5[_0x221c[1125]]=_0xc851x3;_0xc851x5[_0x221c[1765]]=_0xc851x4;return _0xc851x5};mxCompactTreeLayout[_0x221c[202]][_0x221c[1763]]=function(){var _0xc851x2=[],_0xc851x3;for(_0xc851x3 in this[_0x221c[1746]]){_0xc851x2[_0x221c[207]](this[_0x221c[1746]][_0xc851x3])};this[_0x221c[1727]](mxUtils[_0x221c[1779]](_0xc851x2,!0),this[_0x221c[1745]])};mxCompactTreeLayout[_0x221c[202]][_0x221c[1764]]=function(_0xc851x2){this[_0x221c[1780]](_0xc851x2);for(_0xc851x2=_0xc851x2[_0x221c[247]];null!=_0xc851x2;){this[_0x221c[1764]](_0xc851x2),_0xc851x2=_0xc851x2[_0x221c[1765]]}};mxCompactTreeLayout[_0x221c[202]][_0x221c[1780]]=function(_0xc851x2){for(var _0xc851x3=_0xc851x2[_0x221c[247]],_0xc851x4=_0xc851x2[_0x221c[246]],_0xc851x5=0,_0xc851x9=[];null!=_0xc851x3;){_0xc851x5++;var _0xc851xa=_0xc851x3[_0x221c[235]];this[_0x221c[662]]&&(_0xc851xa=_0xc851x3[_0x221c[236]]);_0xc851x9[_0x221c[207]]( new WeightedCellSorter(_0xc851x3,_0xc851xa));_0xc851x3=_0xc851x3[_0x221c[1765]]};_0xc851x9[_0x221c[470]](WeightedCellSorter[_0x221c[202]][_0x221c[469]]);var _0xc851xa=_0xc851x2[_0x221c[117]],_0xc851x12=(_0xc851x5+1)*this[_0x221c[1751]];_0xc851xa>_0xc851x12+2*this[_0x221c[1751]]&&(_0xc851xa-=2*this[_0x221c[1751]]);_0xc851x2=_0xc851xa/_0xc851x5;_0xc851x3=_0xc851x2/2;_0xc851xa>_0xc851x12+2*this[_0x221c[1751]]&&(_0xc851x3+=this[_0x221c[1751]]);for(var _0xc851xa=this[_0x221c[1753]]-this[_0x221c[1752]],_0xc851x12=0,_0xc851x13=this[_0x221c[1726]](_0xc851x4),_0xc851x14=0;_0xc851x14<_0xc851x9[_0x221c[67]];_0xc851x14++){for(var _0xc851x15=_0xc851x9[_0xc851x14][_0x221c[246]][_0x221c[246]],_0xc851x16=this[_0x221c[1726]](_0xc851x15),_0xc851x15=this[_0x221c[1179]][_0x221c[1781]](_0xc851x4,_0xc851x15,!1),_0xc851x17=[],_0xc851x18=0,_0xc851x19=0,_0xc851x1a=0;_0xc851x1a<_0xc851x15[_0x221c[67]];_0xc851x1a++){this[_0x221c[662]]?(_0xc851x18=_0xc851x13[_0x221c[235]]+_0xc851x13[_0x221c[117]],_0xc851x19=_0xc851x13[_0x221c[236]]+_0xc851x3,_0xc851x17[_0x221c[207]]( new mxPoint(_0xc851x18,_0xc851x19)),_0xc851x18=_0xc851x13[_0x221c[235]]+_0xc851x13[_0x221c[117]]+_0xc851xa,_0xc851x17[_0x221c[207]]( new mxPoint(_0xc851x18,_0xc851x19)),_0xc851x19=_0xc851x16[_0x221c[236]]+_0xc851x16[_0x221c[119]]/2):(_0xc851x18=_0xc851x13[_0x221c[235]]+_0xc851x3,_0xc851x19=_0xc851x13[_0x221c[236]]+_0xc851x13[_0x221c[119]],_0xc851x17[_0x221c[207]]( new mxPoint(_0xc851x18,_0xc851x19)),_0xc851x19=_0xc851x13[_0x221c[236]]+_0xc851x13[_0x221c[119]]+_0xc851xa,_0xc851x17[_0x221c[207]]( new mxPoint(_0xc851x18,_0xc851x19)),_0xc851x18=_0xc851x16[_0x221c[235]]+_0xc851x16[_0x221c[117]]/2),_0xc851x17[_0x221c[207]]( new mxPoint(_0xc851x18,_0xc851x19)),this[_0x221c[1722]](_0xc851x15[_0xc851x1a],_0xc851x17)};_0xc851x14<_0xc851x5/2?_0xc851xa+=this[_0x221c[1752]]:_0xc851x14>_0xc851x5/2&&(_0xc851xa-=this[_0x221c[1752]]);_0xc851x3+=_0xc851x2;_0xc851x12=Math[_0x221c[160]](_0xc851x12,_0xc851xa)}};function WeightedCellSorter(_0xc851x2,_0xc851x3){this[_0x221c[246]]=_0xc851x2;this[_0x221c[1782]]=_0xc851x3}WeightedCellSorter[_0x221c[202]][_0x221c[1782]]=0;WeightedCellSorter[_0x221c[202]][_0x221c[1783]]= !1;WeightedCellSorter[_0x221c[202]][_0x221c[1784]]= !1;WeightedCellSorter[_0x221c[202]][_0x221c[1785]]=null;WeightedCellSorter[_0x221c[202]][_0x221c[246]]=null;WeightedCellSorter[_0x221c[202]][_0x221c[469]]=function(_0xc851x2,_0xc851x3){return null!=_0xc851x2&&null!=_0xc851x3?_0xc851x3[_0x221c[1782]]>_0xc851x2[_0x221c[1782]]?1:_0xc851x3[_0x221c[1782]]<_0xc851x2[_0x221c[1782]]?-1:_0xc851x3[_0x221c[1783]]?1:-1:0};function mxFastOrganicLayout(_0xc851x2){mxGraphLayout[_0x221c[239]](this,_0xc851x2)}mxFastOrganicLayout[_0x221c[202]]= new mxGraphLayout;mxFastOrganicLayout[_0x221c[202]][_0x221c[196]]=mxFastOrganicLayout;mxFastOrganicLayout[_0x221c[202]][_0x221c[1786]]= !0;mxFastOrganicLayout[_0x221c[202]][_0x221c[1750]]= !0;mxFastOrganicLayout[_0x221c[202]][_0x221c[1787]]= !0;mxFastOrganicLayout[_0x221c[202]][_0x221c[1788]]=50;mxFastOrganicLayout[_0x221c[202]][_0x221c[1789]]=0;mxFastOrganicLayout[_0x221c[202]][_0x221c[1790]]=2;mxFastOrganicLayout[_0x221c[202]][_0x221c[1791]]=500;mxFastOrganicLayout[_0x221c[202]][_0x221c[1792]]=4;mxFastOrganicLayout[_0x221c[202]][_0x221c[1793]]=200;mxFastOrganicLayout[_0x221c[202]][_0x221c[1794]]=0;mxFastOrganicLayout[_0x221c[202]][_0x221c[1795]]=0;mxFastOrganicLayout[_0x221c[202]][_0x221c[1796]]=0;mxFastOrganicLayout[_0x221c[202]][_0x221c[1797]]= !0;mxFastOrganicLayout[_0x221c[202]][_0x221c[1713]]=function(_0xc851x2){return mxGraphLayout[_0x221c[202]][_0x221c[1713]][_0x221c[183]](this,arguments)||0==this[_0x221c[1179]][_0x221c[1756]](_0xc851x2)[_0x221c[67]]};mxFastOrganicLayout[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[502]]();this[_0x221c[1798]]=[];for(var _0xc851x4=this[_0x221c[1179]][_0x221c[1728]](_0xc851x2),_0xc851x5=0;_0xc851x5<_0xc851x4[_0x221c[67]];_0xc851x5++){this[_0x221c[1713]](_0xc851x4[_0xc851x5])||this[_0x221c[1798]][_0x221c[207]](_0xc851x4[_0xc851x5])};var _0xc851x9=this[_0x221c[1786]]?this[_0x221c[1179]][_0x221c[441]][_0x221c[1799]](this[_0x221c[1798]]):null,_0xc851xa=this[_0x221c[1798]][_0x221c[67]];this[_0x221c[1800]]=[];this[_0x221c[1801]]=[];this[_0x221c[1802]]=[];this[_0x221c[1803]]=[];this[_0x221c[1804]]=[];this[_0x221c[1805]]=[];this[_0x221c[1806]]=[];this[_0x221c[1807]]=[];0.0010>this[_0x221c[1788]]&&(this[_0x221c[1788]]=0.0010);this[_0x221c[1789]]=this[_0x221c[1788]]*this[_0x221c[1788]];for(_0xc851x5=0;_0xc851x5<this[_0x221c[1798]][_0x221c[67]];_0xc851x5++){var _0xc851x12=this[_0x221c[1798]][_0xc851x5];this[_0x221c[1803]][_0xc851x5]=[];var _0xc851x13=mxCellPath[_0x221c[385]](_0xc851x12);this[_0x221c[1800]][_0xc851x13]=_0xc851x5;var _0xc851x14=this[_0x221c[1726]](_0xc851x12),_0xc851x15=_0xc851x14[_0x221c[117]],_0xc851x16=_0xc851x14[_0x221c[119]],_0xc851x17=_0xc851x14[_0x221c[235]],_0xc851x18=_0xc851x14[_0x221c[236]];this[_0x221c[1803]][_0xc851x5][0]=_0xc851x17+_0xc851x15/2;this[_0x221c[1803]][_0xc851x5][1]=_0xc851x18+_0xc851x16/2;this[_0x221c[1806]][_0xc851x5]=Math[_0x221c[243]](_0xc851x15,_0xc851x16);this[_0x221c[1807]][_0xc851x5]=this[_0x221c[1806]][_0xc851x5]*this[_0x221c[1806]][_0xc851x5]};_0xc851x3[_0x221c[473]]();try{for(_0xc851x5=0;_0xc851x5<_0xc851xa;_0xc851x5++){this[_0x221c[1801]][_0xc851x5]=0;this[_0x221c[1802]][_0xc851x5]=0;this[_0x221c[1804]][_0xc851x5]=this[_0x221c[1711]](this[_0x221c[1798]][_0xc851x5]);var _0xc851x19=this[_0x221c[1179]][_0x221c[1756]](this[_0x221c[1798]][_0xc851x5],_0xc851x2),_0xc851x4=this[_0x221c[1179]][_0x221c[1808]](_0xc851x19,this[_0x221c[1798]][_0xc851x5]);this[_0x221c[1805]][_0xc851x5]=[];for(_0xc851x15=0;_0xc851x15<_0xc851x4[_0x221c[67]];_0xc851x15++){this[_0x221c[1750]]&&this[_0x221c[1179]][_0x221c[1809]](_0xc851x19[_0xc851x15]);this[_0x221c[1787]]&&this[_0x221c[1716]](_0xc851x19[_0xc851x15],!1);var _0xc851x13=mxCellPath[_0x221c[385]](_0xc851x4[_0xc851x15]),_0xc851x1a=this[_0x221c[1800]][_0xc851x13];this[_0x221c[1805]][_0xc851x5][_0xc851x15]=null!=_0xc851x1a?_0xc851x1a:_0xc851x5}};this[_0x221c[1794]]=this[_0x221c[1793]];0==this[_0x221c[1795]]&&(this[_0x221c[1795]]=20*Math[_0x221c[428]](_0xc851xa));for(this[_0x221c[1796]]=0;this[_0x221c[1796]]<this[_0x221c[1795]];this[_0x221c[1796]]++){if(!this[_0x221c[1797]]){return};this[_0x221c[1810]]();this[_0x221c[1811]]();this[_0x221c[1812]]();this[_0x221c[1813]]()};_0xc851x2=_0xc851x4=null;for(_0xc851x5=0;_0xc851x5<this[_0x221c[1798]][_0x221c[67]];_0xc851x5++){_0xc851x12=this[_0x221c[1798]][_0xc851x5],this[_0x221c[1711]](_0xc851x12)&&(_0xc851x14=this[_0x221c[1726]](_0xc851x12),null!=_0xc851x14&&(this[_0x221c[1803]][_0xc851x5][0]-=_0xc851x14[_0x221c[117]]/2,this[_0x221c[1803]][_0xc851x5][1]-=_0xc851x14[_0x221c[119]]/2,_0xc851x17=this[_0x221c[1179]][_0x221c[1021]](this[_0x221c[1803]][_0xc851x5][0]),_0xc851x18=this[_0x221c[1179]][_0x221c[1021]](this[_0x221c[1803]][_0xc851x5][1]),this[_0x221c[1725]](_0xc851x12,_0xc851x17,_0xc851x18),_0xc851x4=null==_0xc851x4?_0xc851x17:Math[_0x221c[243]](_0xc851x4,_0xc851x17),_0xc851x2=null==_0xc851x2?_0xc851x18:Math[_0x221c[243]](_0xc851x2,_0xc851x18)))};_0xc851x5=-(_0xc851x4||0)+1;_0xc851x12=-(_0xc851x2||0)+1;null!=_0xc851x9&&(_0xc851x5+=_0xc851x9[_0x221c[235]],_0xc851x12+=_0xc851x9[_0x221c[236]]);this[_0x221c[1179]][_0x221c[834]](this[_0x221c[1798]],_0xc851x5,_0xc851x12)}finally{_0xc851x3[_0x221c[476]]()}};mxFastOrganicLayout[_0x221c[202]][_0x221c[1812]]=function(){for(var _0xc851x2=0;_0xc851x2<this[_0x221c[1798]][_0x221c[67]];_0xc851x2++){if(this[_0x221c[1804]][_0xc851x2]){var _0xc851x3=Math[_0x221c[428]](this[_0x221c[1801]][_0xc851x2]*this[_0x221c[1801]][_0xc851x2]+this[_0x221c[1802]][_0xc851x2]*this[_0x221c[1802]][_0xc851x2]);0.0010>_0xc851x3&&(_0xc851x3=0.0010);var _0xc851x4=this[_0x221c[1801]][_0xc851x2]/_0xc851x3*Math[_0x221c[243]](_0xc851x3,this[_0x221c[1794]]),_0xc851x3=this[_0x221c[1802]][_0xc851x2]/_0xc851x3*Math[_0x221c[243]](_0xc851x3,this[_0x221c[1794]]);this[_0x221c[1801]][_0xc851x2]=0;this[_0x221c[1802]][_0xc851x2]=0;this[_0x221c[1803]][_0xc851x2][0]+=_0xc851x4;this[_0x221c[1803]][_0xc851x2][1]+=_0xc851x3}}};mxFastOrganicLayout[_0x221c[202]][_0x221c[1811]]=function(){for(var _0xc851x2=0;_0xc851x2<this[_0x221c[1798]][_0x221c[67]];_0xc851x2++){for(var _0xc851x3=0;_0xc851x3<this[_0x221c[1805]][_0xc851x2][_0x221c[67]];_0xc851x3++){var _0xc851x4=this[_0x221c[1805]][_0xc851x2][_0xc851x3];if(_0xc851x2!=_0xc851x4&&this[_0x221c[1804]][_0xc851x2]&&this[_0x221c[1804]][_0xc851x4]){var _0xc851x5=this[_0x221c[1803]][_0xc851x2][0]-this[_0x221c[1803]][_0xc851x4][0],_0xc851x9=this[_0x221c[1803]][_0xc851x2][1]-this[_0x221c[1803]][_0xc851x4][1],_0xc851xa=_0xc851x5*_0xc851x5+_0xc851x9*_0xc851x9-this[_0x221c[1807]][_0xc851x2]-this[_0x221c[1807]][_0xc851x4];_0xc851xa<this[_0x221c[1792]]&&(_0xc851xa=this[_0x221c[1792]]);var _0xc851x12=Math[_0x221c[428]](_0xc851xa),_0xc851xa=_0xc851xa/this[_0x221c[1788]],_0xc851x5=_0xc851x5/_0xc851x12*_0xc851xa,_0xc851x9=_0xc851x9/_0xc851x12*_0xc851xa;this[_0x221c[1801]][_0xc851x2]-=_0xc851x5;this[_0x221c[1802]][_0xc851x2]-=_0xc851x9;this[_0x221c[1801]][_0xc851x4]+=_0xc851x5;this[_0x221c[1802]][_0xc851x4]+=_0xc851x9}}}};mxFastOrganicLayout[_0x221c[202]][_0x221c[1810]]=function(){for(var _0xc851x2=this[_0x221c[1798]][_0x221c[67]],_0xc851x3=0;_0xc851x3<_0xc851x2;_0xc851x3++){for(var _0xc851x4=_0xc851x3;_0xc851x4<_0xc851x2;_0xc851x4++){if(!this[_0x221c[1797]]){return};if(_0xc851x4!=_0xc851x3&&this[_0x221c[1804]][_0xc851x3]&&this[_0x221c[1804]][_0xc851x4]){var _0xc851x5=this[_0x221c[1803]][_0xc851x3][0]-this[_0x221c[1803]][_0xc851x4][0],_0xc851x9=this[_0x221c[1803]][_0xc851x3][1]-this[_0x221c[1803]][_0xc851x4][1];0==_0xc851x5&&(_0xc851x5=0.01+Math[_0x221c[1814]]());0==_0xc851x9&&(_0xc851x9=0.01+Math[_0x221c[1814]]());var _0xc851xa=Math[_0x221c[428]](_0xc851x5*_0xc851x5+_0xc851x9*_0xc851x9),_0xc851x12=_0xc851xa-this[_0x221c[1806]][_0xc851x3]-this[_0x221c[1806]][_0xc851x4];_0xc851x12>this[_0x221c[1791]]||(_0xc851x12<this[_0x221c[1790]]&&(_0xc851x12=this[_0x221c[1790]]),_0xc851x12=this[_0x221c[1789]]/_0xc851x12,_0xc851x5=_0xc851x5/_0xc851xa*_0xc851x12,_0xc851x9=_0xc851x9/_0xc851xa*_0xc851x12,this[_0x221c[1801]][_0xc851x3]+=_0xc851x5,this[_0x221c[1802]][_0xc851x3]+=_0xc851x9,this[_0x221c[1801]][_0xc851x4]-=_0xc851x5,this[_0x221c[1802]][_0xc851x4]-=_0xc851x9)}}}};mxFastOrganicLayout[_0x221c[202]][_0x221c[1813]]=function(){this[_0x221c[1794]]=this[_0x221c[1793]]*(1-this[_0x221c[1796]]/this[_0x221c[1795]])};function mxCircleLayout(_0xc851x2,_0xc851x3){mxGraphLayout[_0x221c[239]](this,_0xc851x2);this[_0x221c[1806]]=null!=_0xc851x3?_0xc851x3:100}mxCircleLayout[_0x221c[202]]= new mxGraphLayout;mxCircleLayout[_0x221c[202]][_0x221c[196]]=mxCircleLayout;mxCircleLayout[_0x221c[202]][_0x221c[1806]]=null;mxCircleLayout[_0x221c[202]][_0x221c[1815]]= !1;mxCircleLayout[_0x221c[202]][_0x221c[1732]]=0;mxCircleLayout[_0x221c[202]][_0x221c[1733]]=0;mxCircleLayout[_0x221c[202]][_0x221c[1750]]= !0;mxCircleLayout[_0x221c[202]][_0x221c[1787]]= !0;mxCircleLayout[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[502]]();_0xc851x3[_0x221c[473]]();try{for(var _0xc851x4=0,_0xc851x5=null,_0xc851x9=null,_0xc851xa=[],_0xc851x12=_0xc851x3[_0x221c[262]](_0xc851x2),_0xc851x13=0;_0xc851x13<_0xc851x12;_0xc851x13++){var _0xc851x14=_0xc851x3[_0x221c[263]](_0xc851x2,_0xc851x13);if(this[_0x221c[1713]](_0xc851x14)){this[_0x221c[1715]](_0xc851x14)||(this[_0x221c[1750]]&&this[_0x221c[1179]][_0x221c[1809]](_0xc851x14),this[_0x221c[1787]]&&this[_0x221c[1716]](_0xc851x14,!1))}else {_0xc851xa[_0x221c[207]](_0xc851x14);var _0xc851x15=this[_0x221c[1726]](_0xc851x14),_0xc851x5=null==_0xc851x5?_0xc851x15[_0x221c[236]]:Math[_0x221c[243]](_0xc851x5,_0xc851x15[_0x221c[236]]),_0xc851x9=null==_0xc851x9?_0xc851x15[_0x221c[235]]:Math[_0x221c[243]](_0xc851x9,_0xc851x15[_0x221c[235]]),_0xc851x4=Math[_0x221c[160]](_0xc851x4,Math[_0x221c[160]](_0xc851x15[_0x221c[117]],_0xc851x15[_0x221c[119]]))}};var _0xc851x16=this[_0x221c[1816]](_0xc851xa[_0x221c[67]],_0xc851x4);this[_0x221c[1815]]&&(_0xc851x9=this[_0x221c[1732]],_0xc851x5=this[_0x221c[1733]]);this[_0x221c[1817]](_0xc851xa,_0xc851x16,_0xc851x9,_0xc851x5)}finally{_0xc851x3[_0x221c[476]]()}};mxCircleLayout[_0x221c[202]][_0x221c[1816]]=function(_0xc851x2,_0xc851x3){return Math[_0x221c[160]](_0xc851x2*_0xc851x3/Math[_0x221c[424]],this[_0x221c[1806]])};mxCircleLayout[_0x221c[202]][_0x221c[1817]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){for(var _0xc851x9=_0xc851x2[_0x221c[67]],_0xc851xa=2*Math[_0x221c[424]]/_0xc851x9,_0xc851x12=0;_0xc851x12<_0xc851x9;_0xc851x12++){this[_0x221c[1711]](_0xc851x2[_0xc851x12])&&this[_0x221c[1725]](_0xc851x2[_0xc851x12],_0xc851x4+_0xc851x3+_0xc851x3*Math[_0x221c[427]](_0xc851x12*_0xc851xa),_0xc851x5+_0xc851x3+_0xc851x3*Math[_0x221c[426]](_0xc851x12*_0xc851xa))}};function mxParallelEdgeLayout(_0xc851x2){mxGraphLayout[_0x221c[239]](this,_0xc851x2)}mxParallelEdgeLayout[_0x221c[202]]= new mxGraphLayout;mxParallelEdgeLayout[_0x221c[202]][_0x221c[196]]=mxParallelEdgeLayout;mxParallelEdgeLayout[_0x221c[202]][_0x221c[657]]=20;mxParallelEdgeLayout[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){_0xc851x2=this[_0x221c[1818]](_0xc851x2);this[_0x221c[1179]][_0x221c[251]][_0x221c[473]]();try{for(var _0xc851x3 in _0xc851x2){var _0xc851x4=_0xc851x2[_0xc851x3];1<_0xc851x4[_0x221c[67]]&&this[_0x221c[1759]](_0xc851x4)}}finally{this[_0x221c[1179]][_0x221c[251]][_0x221c[476]]()}};mxParallelEdgeLayout[_0x221c[202]][_0x221c[1818]]=function(_0xc851x2){for(var _0xc851x3=this[_0x221c[1179]][_0x221c[502]](),_0xc851x4=[],_0xc851x5=_0xc851x3[_0x221c[262]](_0xc851x2),_0xc851x9=0;_0xc851x9<_0xc851x5;_0xc851x9++){var _0xc851xa=_0xc851x3[_0x221c[263]](_0xc851x2,_0xc851x9);if(!this[_0x221c[1715]](_0xc851xa)){var _0xc851x12=this[_0x221c[1819]](_0xc851xa);null!=_0xc851x12&&(null==_0xc851x4[_0xc851x12]&&(_0xc851x4[_0xc851x12]=[]),_0xc851x4[_0xc851x12][_0x221c[207]](_0xc851xa))}};return _0xc851x4};mxParallelEdgeLayout[_0x221c[202]][_0x221c[1819]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[249]](),_0xc851x4=_0xc851x3[_0x221c[248]](_0xc851x2),_0xc851x5=null!=_0xc851x4?_0xc851x4[_0x221c[1710]](!0):_0xc851x3[_0x221c[1710]](_0xc851x2,!0);_0xc851x2=null!=_0xc851x4?_0xc851x4[_0x221c[1710]](!1):_0xc851x3[_0x221c[1710]](_0xc851x2,!1);return null!=_0xc851x5&&null!=_0xc851x2?(_0xc851x5=mxCellPath[_0x221c[385]](_0xc851x5),_0xc851x2=mxCellPath[_0x221c[385]](_0xc851x2),_0xc851x5>_0xc851x2?_0xc851x2+_0x221c[213]+_0xc851x5:_0xc851x5+_0x221c[213]+_0xc851x2):null};mxParallelEdgeLayout[_0x221c[202]][_0x221c[1759]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[0],_0xc851x4=this[_0x221c[1179]][_0x221c[502]](),_0xc851x5=_0xc851x4[_0x221c[1721]](_0xc851x4[_0x221c[1709]](_0xc851x3,!0)),_0xc851x9=_0xc851x4[_0x221c[1721]](_0xc851x4[_0x221c[1709]](_0xc851x3,!1));if(_0xc851x5==_0xc851x9){for(var _0xc851x3=_0xc851x5[_0x221c[235]]+_0xc851x5[_0x221c[117]]+this[_0x221c[657]],_0xc851x4=_0xc851x5[_0x221c[236]]+_0xc851x5[_0x221c[119]]/2,_0xc851xa=0;_0xc851xa<_0xc851x2[_0x221c[67]];_0xc851xa++){this[_0x221c[1820]](_0xc851x2[_0xc851xa],_0xc851x3,_0xc851x4),_0xc851x3+=this[_0x221c[657]]}}else {if(null!=_0xc851x5&&null!=_0xc851x9){for(var _0xc851x3=_0xc851x5[_0x221c[235]]+_0xc851x5[_0x221c[117]]/2,_0xc851x4=_0xc851x5[_0x221c[236]]+_0xc851x5[_0x221c[119]]/2,_0xc851xa=_0xc851x9[_0x221c[235]]+_0xc851x9[_0x221c[117]]/2-_0xc851x3,_0xc851x12=_0xc851x9[_0x221c[236]]+_0xc851x9[_0x221c[119]]/2-_0xc851x4,_0xc851x9=Math[_0x221c[428]](_0xc851xa*_0xc851xa+_0xc851x12*_0xc851x12),_0xc851x5=_0xc851x12*this[_0x221c[657]]/_0xc851x9,_0xc851x9=_0xc851xa*this[_0x221c[657]]/_0xc851x9,_0xc851x3=_0xc851x3+_0xc851xa/2+_0xc851x5*(_0xc851x2[_0x221c[67]]-1)/2,_0xc851x4=_0xc851x4+_0xc851x12/2-_0xc851x9*(_0xc851x2[_0x221c[67]]-1)/2,_0xc851xa=0;_0xc851xa<_0xc851x2[_0x221c[67]];_0xc851xa++){this[_0x221c[1820]](_0xc851x2[_0xc851xa],_0xc851x3,_0xc851x4),_0xc851x3-=_0xc851x5,_0xc851x4+=_0xc851x9}}}};mxParallelEdgeLayout[_0x221c[202]][_0x221c[1820]]=function(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[1179]][_0x221c[1712]](_0xc851x2)&&this[_0x221c[1722]](_0xc851x2,[ new mxPoint(_0xc851x3,_0xc851x4)])};function mxCompositeLayout(_0xc851x2,_0xc851x3,_0xc851x4){mxGraphLayout[_0x221c[239]](this,_0xc851x2);this[_0x221c[1821]]=_0xc851x3;this[_0x221c[1822]]=_0xc851x4}mxCompositeLayout[_0x221c[202]]= new mxGraphLayout;mxCompositeLayout[_0x221c[202]][_0x221c[196]]=mxCompositeLayout;mxCompositeLayout[_0x221c[202]][_0x221c[1821]]=null;mxCompositeLayout[_0x221c[202]][_0x221c[1822]]=null;mxCompositeLayout[_0x221c[202]][_0x221c[1702]]=function(_0xc851x2,_0xc851x3,_0xc851x4){null!=this[_0x221c[1822]]?this[_0x221c[1822]][_0x221c[582]][_0x221c[183]](this[_0x221c[1822]],arguments):this[_0x221c[1821]][0][_0x221c[582]][_0x221c[183]](this[_0x221c[1821]][0],arguments)};mxCompositeLayout[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[502]]();_0xc851x3[_0x221c[473]]();try{for(var _0xc851x4=0;_0xc851x4<this[_0x221c[1821]][_0x221c[67]];_0xc851x4++){this[_0x221c[1821]][_0xc851x4][_0x221c[350]][_0x221c[183]](this[_0x221c[1821]][_0xc851x4],arguments)}}finally{_0xc851x3[_0x221c[476]]()}};function mxEdgeLabelLayout(_0xc851x2,_0xc851x3){mxGraphLayout[_0x221c[239]](this,_0xc851x2)}mxEdgeLabelLayout[_0x221c[202]]= new mxGraphLayout;mxEdgeLabelLayout[_0x221c[202]][_0x221c[196]]=mxEdgeLabelLayout;mxEdgeLabelLayout[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){for(var _0xc851x3=this[_0x221c[1179]][_0x221c[441]],_0xc851x4=this[_0x221c[1179]][_0x221c[502]](),_0xc851x5=[],_0xc851x9=[],_0xc851xa=_0xc851x4[_0x221c[262]](_0xc851x2),_0xc851x12=0;_0xc851x12<_0xc851xa;_0xc851x12++){var _0xc851x13=_0xc851x4[_0x221c[263]](_0xc851x2,_0xc851x12),_0xc851x14=_0xc851x3[_0x221c[248]](_0xc851x13);null!=_0xc851x14&&(this[_0x221c[1713]](_0xc851x13)?this[_0x221c[1715]](_0xc851x13)||_0xc851x5[_0x221c[207]](_0xc851x14):_0xc851x9[_0x221c[207]](_0xc851x14))};this[_0x221c[1823]](_0xc851x9,_0xc851x5)};mxEdgeLabelLayout[_0x221c[202]][_0x221c[1823]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[502]]();_0xc851x4[_0x221c[473]]();try{for(var _0xc851x5=0;_0xc851x5<_0xc851x3[_0x221c[67]];_0xc851x5++){var _0xc851x9=_0xc851x3[_0xc851x5];if(null!=_0xc851x9&&null!=_0xc851x9[_0x221c[963]]&&null!=_0xc851x9[_0x221c[963]][_0x221c[1563]]){for(var _0xc851xa=0;_0xc851xa<_0xc851x2[_0x221c[67]];_0xc851xa++){var _0xc851x12=_0xc851x2[_0xc851xa];null!=_0xc851x12&&this[_0x221c[1824]](_0xc851x9,_0xc851x12)}}}}finally{_0xc851x4[_0x221c[476]]()}};mxEdgeLabelLayout[_0x221c[202]][_0x221c[1824]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[502]](),_0xc851x5=_0xc851x2[_0x221c[963]][_0x221c[1563]];if(mxUtils[_0x221c[1825]](_0xc851x5,_0xc851x3)){var _0xc851x9=-_0xc851x5[_0x221c[236]]-_0xc851x5[_0x221c[119]]+_0xc851x3[_0x221c[236]],_0xc851xa=-_0xc851x5[_0x221c[236]]+_0xc851x3[_0x221c[236]]+_0xc851x3[_0x221c[119]],_0xc851x9=Math[_0x221c[425]](_0xc851x9)<Math[_0x221c[425]](_0xc851xa)?_0xc851x9:_0xc851xa,_0xc851xa=-_0xc851x5[_0x221c[235]]-_0xc851x5[_0x221c[117]]+_0xc851x3[_0x221c[235]],_0xc851x5=-_0xc851x5[_0x221c[235]]+_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]],_0xc851x5=Math[_0x221c[425]](_0xc851xa)<Math[_0x221c[425]](_0xc851x5)?_0xc851xa:_0xc851x5;Math[_0x221c[425]](_0xc851x5)<Math[_0x221c[425]](_0xc851x9)?_0xc851x9=0:_0xc851x5=0;_0xc851xa=_0xc851x4[_0x221c[1721]](_0xc851x2[_0x221c[246]]);null!=_0xc851xa&&(_0xc851xa=_0xc851xa[_0x221c[238]](),null!=_0xc851xa[_0x221c[1368]]?(_0xc851xa[_0x221c[1368]][_0x221c[235]]+=_0xc851x5,_0xc851xa[_0x221c[1368]][_0x221c[236]]+=_0xc851x9):_0xc851xa[_0x221c[1368]]= new mxPoint(_0xc851x5,_0xc851x9),_0xc851x4[_0x221c[1724]](_0xc851x2[_0x221c[246]],_0xc851xa))}};function mxGraphAbstractHierarchyCell(){this[_0x221c[235]]=[];this[_0x221c[236]]=[];this[_0x221c[1826]]=[]}mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[1827]]= -1;mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[1828]]= -1;mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[235]]=null;mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[236]]=null;mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[117]]=0;mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[119]]=0;mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[1829]]=null;mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[1830]]=null;mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[1826]]=null;mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[1831]]=function(_0xc851x2){return null};mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[1832]]=function(_0xc851x2){return null};mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[250]]=function(){return !1};mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[1193]]=function(){return !1};mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[1833]]=function(_0xc851x2){return null};mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[1834]]=function(_0xc851x2,_0xc851x3){return null};mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[1835]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1193]]()?this[_0x221c[235]][0]=_0xc851x3:this[_0x221c[250]]()&&(this[_0x221c[235]][_0xc851x2-this[_0x221c[1828]]-1]=_0xc851x3)};mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[730]]=function(_0xc851x2){return this[_0x221c[1193]]()?this[_0x221c[235]][0]:this[_0x221c[250]]()?this[_0x221c[235]][_0xc851x2-this[_0x221c[1828]]-1]:0};mxGraphAbstractHierarchyCell[_0x221c[202]][_0x221c[1836]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1193]]()?this[_0x221c[236]][0]=_0xc851x3:this[_0x221c[250]]()&&(this[_0x221c[236]][_0xc851x2-this[_0x221c[1828]]-1]=_0xc851x3)};function mxGraphHierarchyNode(_0xc851x2){mxGraphAbstractHierarchyCell[_0x221c[183]](this,arguments);this[_0x221c[246]]=_0xc851x2}mxGraphHierarchyNode[_0x221c[202]]= new mxGraphAbstractHierarchyCell;mxGraphHierarchyNode[_0x221c[202]][_0x221c[196]]=mxGraphHierarchyNode;mxGraphHierarchyNode[_0x221c[202]][_0x221c[246]]=null;mxGraphHierarchyNode[_0x221c[202]][_0x221c[1837]]=[];mxGraphHierarchyNode[_0x221c[202]][_0x221c[1838]]=[];mxGraphHierarchyNode[_0x221c[202]][_0x221c[1839]]= !1;mxGraphHierarchyNode[_0x221c[202]][_0x221c[1840]]=function(_0xc851x2){return this[_0x221c[1827]]};mxGraphHierarchyNode[_0x221c[202]][_0x221c[1831]]=function(_0xc851x2){if(null==this[_0x221c[1829]]){this[_0x221c[1829]]=[];this[_0x221c[1829]][0]=[];for(var _0xc851x3=0;_0xc851x3<this[_0x221c[1837]][_0x221c[67]];_0xc851x3++){var _0xc851x4=this[_0x221c[1837]][_0xc851x3];-1==_0xc851x4[_0x221c[1827]]||_0xc851x4[_0x221c[1827]]==_0xc851x2+1?this[_0x221c[1829]][0][_0x221c[207]](_0xc851x4[_0x221c[1097]]):this[_0x221c[1829]][0][_0x221c[207]](_0xc851x4)}};return this[_0x221c[1829]][0]};mxGraphHierarchyNode[_0x221c[202]][_0x221c[1832]]=function(_0xc851x2){if(null==this[_0x221c[1830]]){this[_0x221c[1830]]=[];this[_0x221c[1830]][0]=[];for(var _0xc851x3=0;_0xc851x3<this[_0x221c[1838]][_0x221c[67]];_0xc851x3++){var _0xc851x4=this[_0x221c[1838]][_0xc851x3];-1==_0xc851x4[_0x221c[1828]]||_0xc851x4[_0x221c[1828]]==_0xc851x2-1?this[_0x221c[1830]][0][_0x221c[207]](_0xc851x4[_0x221c[772]]):this[_0x221c[1830]][0][_0x221c[207]](_0xc851x4)}};return this[_0x221c[1830]][0]};mxGraphHierarchyNode[_0x221c[202]][_0x221c[1193]]=function(){return !0};mxGraphHierarchyNode[_0x221c[202]][_0x221c[1833]]=function(_0xc851x2){return this[_0x221c[1826]][0]};mxGraphHierarchyNode[_0x221c[202]][_0x221c[1834]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1826]][0]=_0xc851x3};mxGraphHierarchyNode[_0x221c[202]][_0x221c[1720]]=function(_0xc851x2){if(null!=_0xc851x2&&null!=this[_0x221c[1839]]&&null!=_0xc851x2[_0x221c[1839]]&&this[_0x221c[1839]][_0x221c[67]]<_0xc851x2[_0x221c[1839]][_0x221c[67]]){if(this[_0x221c[1839]]==_0xc851x2[_0x221c[1839]]){return !0};if(null==this[_0x221c[1839]]||null==this[_0x221c[1839]]){return !1};for(var _0xc851x3=0;_0xc851x3<this[_0x221c[1839]][_0x221c[67]];_0xc851x3++){if(this[_0x221c[1839]][_0xc851x3]!=_0xc851x2[_0x221c[1839]][_0xc851x3]){return !1}};return !0};return !1};mxGraphHierarchyNode[_0x221c[202]][_0x221c[1841]]=function(){return this[_0x221c[246]]};function mxGraphHierarchyEdge(_0xc851x2){mxGraphAbstractHierarchyCell[_0x221c[183]](this,arguments);this[_0x221c[1842]]=_0xc851x2}mxGraphHierarchyEdge[_0x221c[202]]= new mxGraphAbstractHierarchyCell;mxGraphHierarchyEdge[_0x221c[202]][_0x221c[196]]=mxGraphHierarchyEdge;mxGraphHierarchyEdge[_0x221c[202]][_0x221c[1842]]=null;mxGraphHierarchyEdge[_0x221c[202]][_0x221c[1097]]=null;mxGraphHierarchyEdge[_0x221c[202]][_0x221c[772]]=null;mxGraphHierarchyEdge[_0x221c[202]][_0x221c[1843]]= !1;mxGraphHierarchyEdge[_0x221c[202]][_0x221c[1744]]=function(_0xc851x2){_0xc851x2=this[_0x221c[1097]];this[_0x221c[1097]]=this[_0x221c[772]];this[_0x221c[772]]=_0xc851x2;this[_0x221c[1843]]=!this[_0x221c[1843]]};mxGraphHierarchyEdge[_0x221c[202]][_0x221c[1831]]=function(_0xc851x2){if(null==this[_0x221c[1829]]){this[_0x221c[1829]]=[];for(var _0xc851x3=0;_0xc851x3<this[_0x221c[1826]][_0x221c[67]];_0xc851x3++){this[_0x221c[1829]][_0xc851x3]=[],_0xc851x3==this[_0x221c[1826]][_0x221c[67]]-1?this[_0x221c[1829]][_0xc851x3][_0x221c[207]](this[_0x221c[1097]]):this[_0x221c[1829]][_0xc851x3][_0x221c[207]](this)}};return this[_0x221c[1829]][_0xc851x2-this[_0x221c[1828]]-1]};mxGraphHierarchyEdge[_0x221c[202]][_0x221c[1832]]=function(_0xc851x2){if(null==this[_0x221c[1830]]){this[_0x221c[1830]]=[];for(var _0xc851x3=0;_0xc851x3<this[_0x221c[1826]][_0x221c[67]];_0xc851x3++){this[_0x221c[1830]][_0xc851x3]=[],0==_0xc851x3?this[_0x221c[1830]][_0xc851x3][_0x221c[207]](this[_0x221c[772]]):this[_0x221c[1830]][_0xc851x3][_0x221c[207]](this)}};return this[_0x221c[1830]][_0xc851x2-this[_0x221c[1828]]-1]};mxGraphHierarchyEdge[_0x221c[202]][_0x221c[250]]=function(){return !0};mxGraphHierarchyEdge[_0x221c[202]][_0x221c[1833]]=function(_0xc851x2){return this[_0x221c[1826]][_0xc851x2-this[_0x221c[1828]]-1]};mxGraphHierarchyEdge[_0x221c[202]][_0x221c[1834]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1826]][_0xc851x2-this[_0x221c[1828]]-1]=_0xc851x3};mxGraphHierarchyEdge[_0x221c[202]][_0x221c[1841]]=function(){return null!=this[_0x221c[1842]]&&0<this[_0x221c[1842]][_0x221c[67]]?this[_0x221c[1842]][0]:null};function mxGraphHierarchyModel(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2[_0x221c[1703]]();this[_0x221c[1844]]=_0xc851x9;this[_0x221c[1845]]=_0xc851x4;this[_0x221c[1101]]=_0xc851x5;this[_0x221c[1846]]={};this[_0x221c[1847]]={};this[_0x221c[1827]]=0;_0xc851x4=[];null==_0xc851x3&&(_0xc851x3=this[_0x221c[1179]][_0x221c[1728]](_0xc851x5));this[_0x221c[1827]]=this[_0x221c[1848]];this[_0x221c[1849]](_0xc851x2,_0xc851x3,_0xc851x4);for(_0xc851x5=0;_0xc851x5<_0xc851x3[_0x221c[67]];_0xc851x5++){_0xc851x9=_0xc851x4[_0xc851x5][_0x221c[1838]];for(var _0xc851xa=0;_0xc851xa<_0xc851x9[_0x221c[67]];_0xc851xa++){var _0xc851x12=_0xc851x9[_0xc851xa],_0xc851x13=_0xc851x12[_0x221c[1842]];if(null!=_0xc851x13&&0<_0xc851x13[_0x221c[67]]){var _0xc851x13=_0xc851x13[0],_0xc851x14=_0xc851x2[_0x221c[1710]](_0xc851x13,!1),_0xc851x14=mxCellPath[_0x221c[385]](_0xc851x14),_0xc851x14=this[_0x221c[1846]][_0xc851x14];_0xc851x4[_0xc851x5]==_0xc851x14&&(_0xc851x14=_0xc851x2[_0x221c[1710]](_0xc851x13,!0),_0xc851x14=mxCellPath[_0x221c[385]](_0xc851x14),_0xc851x14=this[_0x221c[1846]][_0xc851x14]);null!=_0xc851x14&&_0xc851x4[_0xc851x5]!=_0xc851x14&&(_0xc851x12[_0x221c[772]]=_0xc851x14,0==_0xc851x14[_0x221c[1837]][_0x221c[67]]&&(_0xc851x14[_0x221c[1837]]=[]),0>mxUtils[_0x221c[2]](_0xc851x14[_0x221c[1837]],_0xc851x12)&&_0xc851x14[_0x221c[1837]][_0x221c[207]](_0xc851x12))}};_0xc851x4[_0xc851x5][_0x221c[1826]][0]=1}}mxGraphHierarchyModel[_0x221c[202]][_0x221c[1827]]=null;mxGraphHierarchyModel[_0x221c[202]][_0x221c[1846]]=null;mxGraphHierarchyModel[_0x221c[202]][_0x221c[1847]]=null;mxGraphHierarchyModel[_0x221c[202]][_0x221c[1850]]=null;mxGraphHierarchyModel[_0x221c[202]][_0x221c[1845]]=null;mxGraphHierarchyModel[_0x221c[202]][_0x221c[1101]]=null;mxGraphHierarchyModel[_0x221c[202]][_0x221c[1851]]=0;mxGraphHierarchyModel[_0x221c[202]][_0x221c[1848]]=1E8;mxGraphHierarchyModel[_0x221c[202]][_0x221c[1844]]= !1;mxGraphHierarchyModel[_0x221c[202]][_0x221c[1849]]=function(_0xc851x2,_0xc851x3,_0xc851x4){for(var _0xc851x5=_0xc851x2[_0x221c[1703]](),_0xc851x9=0;_0xc851x9<_0xc851x3[_0x221c[67]];_0xc851x9++){_0xc851x4[_0xc851x9]= new mxGraphHierarchyNode(_0xc851x3[_0xc851x9]);var _0xc851xa=mxCellPath[_0x221c[385]](_0xc851x3[_0xc851x9]);this[_0x221c[1846]][_0xc851xa]=_0xc851x4[_0xc851x9];_0xc851xa=_0xc851x2[_0x221c[264]](_0xc851x3[_0xc851x9]);_0xc851x4[_0xc851x9][_0x221c[1838]]=[];for(var _0xc851x12=0;_0xc851x12<_0xc851xa[_0x221c[67]];_0xc851x12++){var _0xc851x13=_0xc851x2[_0x221c[1710]](_0xc851xa[_0xc851x12],!1);if(_0xc851x13!=_0xc851x3[_0xc851x9]&&_0xc851x13!=_0xc851x3[_0xc851x9]&&_0xc851x2[_0x221c[1179]][_0x221c[251]][_0x221c[1193]](_0xc851x13)&&!_0xc851x2[_0x221c[1713]](_0xc851x13)){var _0xc851x14=_0xc851x2[_0x221c[1781]](_0xc851x3[_0xc851x9],_0xc851x13,!1),_0xc851x15=_0xc851x2[_0x221c[1781]](_0xc851x3[_0xc851x9],_0xc851x13,!0),_0xc851x13=mxCellPath[_0x221c[385]](_0xc851x14[0]);if(null!=_0xc851x14&&0<_0xc851x14[_0x221c[67]]&&null==this[_0x221c[1847]][_0xc851x13]&&2*_0xc851x15[_0x221c[67]]>=_0xc851x14[_0x221c[67]]){for(var _0xc851x15= new mxGraphHierarchyEdge(_0xc851x14),_0xc851x16=0;_0xc851x16<_0xc851x14[_0x221c[67]];_0xc851x16++){var _0xc851x17=_0xc851x14[_0xc851x16],_0xc851x13=mxCellPath[_0x221c[385]](_0xc851x17);this[_0x221c[1847]][_0xc851x13]=_0xc851x15;_0xc851x5[_0x221c[1809]](_0xc851x17);_0xc851x2[_0x221c[1787]]&&(_0xc851x2[_0x221c[1716]](_0xc851x17,!1),_0xc851x2[_0x221c[1718]](_0xc851x17,!0))};_0xc851x15[_0x221c[1097]]=_0xc851x4[_0xc851x9];0>mxUtils[_0x221c[2]](_0xc851x4[_0xc851x9][_0x221c[1838]],_0xc851x15)&&_0xc851x4[_0xc851x9][_0x221c[1838]][_0x221c[207]](_0xc851x15)}}};_0xc851x4[_0xc851x9][_0x221c[1826]][0]=0}};mxGraphHierarchyModel[_0x221c[202]][_0x221c[1852]]=function(){var _0xc851x2=[];if(null!=this[_0x221c[1845]]){for(var _0xc851x3=0;_0xc851x3<this[_0x221c[1845]][_0x221c[67]];_0xc851x3++){var _0xc851x4=mxCellPath[_0x221c[385]](this[_0x221c[1845]][_0xc851x3]),_0xc851x4=this[_0x221c[1846]][_0xc851x4];null!=_0xc851x4&&_0xc851x2[_0x221c[207]](_0xc851x4)}};for(var _0xc851x5 in this[_0x221c[1846]]){_0xc851x4=this[_0x221c[1846]][_0xc851x5],_0xc851x4[_0x221c[1826]][0]= -1};for(var _0xc851x9=_0xc851x2[_0x221c[1853]]();0<_0xc851x2[_0x221c[67]];){var _0xc851x4=_0xc851x2[0],_0xc851xa,_0xc851x12;_0xc851xa=_0xc851x4[_0x221c[1837]];_0xc851x12=_0xc851x4[_0x221c[1838]];for(var _0xc851x13=!0,_0xc851x14=this[_0x221c[1848]],_0xc851x3=0;_0xc851x3<_0xc851xa[_0x221c[67]];_0xc851x3++){var _0xc851x15=_0xc851xa[_0xc851x3];if(5270620==_0xc851x15[_0x221c[1826]][0]){_0xc851x15=_0xc851x15[_0x221c[1097]],_0xc851x14=Math[_0x221c[243]](_0xc851x14,_0xc851x15[_0x221c[1826]][0]-1)}else {_0xc851x13= !1;break}};if(_0xc851x13){_0xc851x4[_0x221c[1826]][0]=_0xc851x14;this[_0x221c[1827]]=Math[_0x221c[243]](this[_0x221c[1827]],_0xc851x14);if(null!=_0xc851x12){for(_0xc851x3=0;_0xc851x3<_0xc851x12[_0x221c[67]];_0xc851x3++){_0xc851x15=_0xc851x12[_0xc851x3],_0xc851x15[_0x221c[1826]][0]=5270620,_0xc851x15=_0xc851x15[_0x221c[772]],-1==_0xc851x15[_0x221c[1826]][0]&&(_0xc851x2[_0x221c[207]](_0xc851x15),_0xc851x15[_0x221c[1826]][0]= -2)}};_0xc851x2[_0x221c[1115]]()}else {if(_0xc851x3=_0xc851x2[_0x221c[1115]](),_0xc851x2[_0x221c[207]](_0xc851x4),_0xc851x3==_0xc851x4&&1==_0xc851x2[_0x221c[67]]){break}}};for(_0xc851x5 in this[_0x221c[1846]]){_0xc851x4=this[_0x221c[1846]][_0xc851x5],_0xc851x4[_0x221c[1826]][0]-=this[_0x221c[1827]]};for(_0xc851x3=0;_0xc851x3<_0xc851x9[_0x221c[67]];_0xc851x3++){_0xc851x4=_0xc851x9[_0xc851x3];_0xc851x2=0;_0xc851xa=_0xc851x4[_0x221c[1838]];for(_0xc851x5=0;_0xc851x5<_0xc851xa[_0x221c[67]];_0xc851x5++){_0xc851x15=_0xc851xa[_0xc851x5],_0xc851x15=_0xc851x15[_0x221c[772]],_0xc851x4[_0x221c[1826]][0]=Math[_0x221c[160]](_0xc851x2,_0xc851x15[_0x221c[1826]][0]+1),_0xc851x2=_0xc851x4[_0x221c[1826]][0]}};this[_0x221c[1827]]=this[_0x221c[1848]]-this[_0x221c[1827]]};mxGraphHierarchyModel[_0x221c[202]][_0x221c[1854]]=function(){var _0xc851x2=[];this[_0x221c[1850]]=[];for(var _0xc851x3=0;_0xc851x3<this[_0x221c[1827]]+1;_0xc851x3++){_0xc851x2[_0xc851x3]=[],this[_0x221c[1850]][_0xc851x3]=_0xc851x2[_0xc851x3]};var _0xc851x4=null;if(null!=this[_0x221c[1845]]){for(var _0xc851x5=this[_0x221c[1845]],_0xc851x4=[],_0xc851x3=0;_0xc851x3<_0xc851x5[_0x221c[67]];_0xc851x3++){var _0xc851x9=mxCellPath[_0x221c[385]](_0xc851x5[_0xc851x3]);_0xc851x4[_0xc851x3]=this[_0x221c[1846]][_0xc851x9]}};this[_0x221c[209]](function(_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851x15){0==_0xc851x15&&(0>_0xc851x4[_0x221c[1827]]&&0>_0xc851x4[_0x221c[1828]])&&(_0xc851x2[_0xc851x4[_0x221c[1826]][0]][_0x221c[207]](_0xc851x4),_0xc851x4[_0x221c[1827]]=_0xc851x4[_0x221c[1826]][0],_0xc851x4[_0x221c[1828]]=_0xc851x4[_0x221c[1826]][0],_0xc851x4[_0x221c[1826]][0]=_0xc851x2[_0xc851x4[_0x221c[1827]]][_0x221c[67]]-1);if(null!=_0xc851x3&&null!=_0xc851x5&&1<_0xc851x3[_0x221c[1827]]-_0xc851x4[_0x221c[1827]]){_0xc851x5[_0x221c[1827]]=_0xc851x3[_0x221c[1827]];_0xc851x5[_0x221c[1828]]=_0xc851x4[_0x221c[1827]];_0xc851x5[_0x221c[1826]]=[];_0xc851x5[_0x221c[235]]=[];_0xc851x5[_0x221c[236]]=[];for(_0xc851x3=_0xc851x5[_0x221c[1828]]+1;_0xc851x3<_0xc851x5[_0x221c[1827]];_0xc851x3++){_0xc851x2[_0xc851x3][_0x221c[207]](_0xc851x5),_0xc851x5[_0x221c[1834]](_0xc851x3,_0xc851x2[_0xc851x3][_0x221c[67]]-1)}}},_0xc851x4,!1,null)};mxGraphHierarchyModel[_0x221c[202]][_0x221c[209]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(null!=_0xc851x3){for(var _0xc851x9=0;_0xc851x9<_0xc851x3[_0x221c[67]];_0xc851x9++){var _0xc851xa=_0xc851x3[_0xc851x9];null!=_0xc851xa&&(null==_0xc851x5&&(_0xc851x5={}),_0xc851x4?(_0xc851xa[_0x221c[1839]]=[],_0xc851xa[_0x221c[1839]][0]=this[_0x221c[1851]],_0xc851xa[_0x221c[1839]][1]=_0xc851x9,this[_0x221c[1855]](null,_0xc851xa,null,_0xc851x2,_0xc851x5,_0xc851xa[_0x221c[1839]],_0xc851x9,0)):this[_0x221c[1758]](null,_0xc851xa,null,_0xc851x2,_0xc851x5,0))};this[_0x221c[1851]]++}};mxGraphHierarchyModel[_0x221c[202]][_0x221c[1758]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){if(null!=_0xc851x3){var _0xc851x12=mxCellPath[_0x221c[385]](_0xc851x3[_0x221c[246]]);if(null==_0xc851x9[_0xc851x12]){_0xc851x9[_0xc851x12]=_0xc851x3;_0xc851x5(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851xa,0);_0xc851x2=_0xc851x3[_0x221c[1838]][_0x221c[1853]]();for(_0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){_0xc851x12=_0xc851x2[_0xc851x4],this[_0x221c[1758]](_0xc851x3,_0xc851x12[_0x221c[772]],_0xc851x12,_0xc851x5,_0xc851x9,_0xc851xa+1)}}else {_0xc851x5(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851xa,1)}}};mxGraphHierarchyModel[_0x221c[202]][_0x221c[1855]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13){if(null!=_0xc851x3){if(null!=_0xc851x2&&(null==_0xc851x3[_0x221c[1839]]||_0xc851x3[_0x221c[1839]][0]!=_0xc851x2[_0x221c[1839]][0])){_0xc851xa=_0xc851x2[_0x221c[1839]][_0x221c[67]]+1,_0xc851x3[_0x221c[1839]]=_0xc851x2[_0x221c[1839]][_0x221c[1853]](),_0xc851x3[_0x221c[1839]][_0xc851xa-1]=_0xc851x12};_0xc851x12=mxCellPath[_0x221c[385]](_0xc851x3[_0x221c[246]]);if(null==_0xc851x9[_0xc851x12]){_0xc851x9[_0xc851x12]=_0xc851x3;_0xc851x5(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x13,0);_0xc851x2=_0xc851x3[_0x221c[1838]][_0x221c[1853]]();for(_0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){_0xc851x12=_0xc851x2[_0xc851x4],this[_0x221c[1855]](_0xc851x3,_0xc851x12[_0x221c[772]],_0xc851x12,_0xc851x5,_0xc851x9,_0xc851x3[_0x221c[1839]],_0xc851x4,_0xc851x13+1)}}else {_0xc851x5(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x13,1)}}};function mxHierarchicalLayoutStage(){}mxHierarchicalLayoutStage[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){};function mxMedianHybridCrossingReduction(_0xc851x2){this[_0x221c[1759]]=_0xc851x2}mxMedianHybridCrossingReduction[_0x221c[202]]= new mxHierarchicalLayoutStage;mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[196]]=mxMedianHybridCrossingReduction;mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[1759]]=null;mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[1795]]=24;mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[1856]]=null;mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[1857]]=0;mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[1858]]=0;mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[1859]]=2;mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){_0xc851x2=this[_0x221c[1759]][_0x221c[502]]();this[_0x221c[1856]]=[];for(var _0xc851x3=0;_0xc851x3<_0xc851x2[_0x221c[1850]][_0x221c[67]];_0xc851x3++){this[_0x221c[1856]][_0xc851x3]=_0xc851x2[_0x221c[1850]][_0xc851x3][_0x221c[1853]]()};for(var _0xc851x4=0,_0xc851x5=this[_0x221c[1860]](_0xc851x2),_0xc851x3=0;_0xc851x3<this[_0x221c[1795]]&&_0xc851x4<this[_0x221c[1859]];_0xc851x3++){this[_0x221c[1861]](_0xc851x3,_0xc851x2);this[_0x221c[1862]](_0xc851x3,_0xc851x2);var _0xc851x9=this[_0x221c[1860]](_0xc851x2);if(_0xc851x9<_0xc851x5){_0xc851x5=_0xc851x9;for(_0xc851x9=_0xc851x4=0;_0xc851x9<this[_0x221c[1856]][_0x221c[67]];_0xc851x9++){for(var _0xc851xa=_0xc851x2[_0x221c[1850]][_0xc851x9],_0xc851x12=0;_0xc851x12<_0xc851xa[_0x221c[67]];_0xc851x12++){var _0xc851x13=_0xc851xa[_0xc851x12];this[_0x221c[1856]][_0xc851x9][_0xc851x13[_0x221c[1833]](_0xc851x9)]=_0xc851x13}}}else {_0xc851x4++;for(_0xc851x9=0;_0xc851x9<this[_0x221c[1856]][_0x221c[67]];_0xc851x9++){_0xc851xa=_0xc851x2[_0x221c[1850]][_0xc851x9];for(_0xc851x12=0;_0xc851x12<_0xc851xa[_0x221c[67]];_0xc851x12++){_0xc851x13=_0xc851xa[_0xc851x12],_0xc851x13[_0x221c[1834]](_0xc851x9,_0xc851x12)}}};if(0==_0xc851x5){break}};_0xc851x4=[];_0xc851x5=[];for(_0xc851x3=0;_0xc851x3<_0xc851x2[_0x221c[1827]]+1;_0xc851x3++){_0xc851x5[_0xc851x3]=[],_0xc851x4[_0xc851x3]=_0xc851x5[_0xc851x3]};for(_0xc851x3=0;_0xc851x3<this[_0x221c[1856]][_0x221c[67]];_0xc851x3++){for(_0xc851x9=0;_0xc851x9<this[_0x221c[1856]][_0xc851x3][_0x221c[67]];_0xc851x9++){_0xc851x5[_0xc851x3][_0x221c[207]](this[_0x221c[1856]][_0xc851x3][_0xc851x9])}};_0xc851x2[_0x221c[1850]]=_0xc851x4};mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[1860]]=function(_0xc851x2){for(var _0xc851x3=_0xc851x2[_0x221c[1850]][_0x221c[67]],_0xc851x4=0,_0xc851x5=1;_0xc851x5<_0xc851x3;_0xc851x5++){_0xc851x4+=this[_0x221c[1863]](_0xc851x5,_0xc851x2)};return _0xc851x4};mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[1863]]=function(_0xc851x2,_0xc851x3){for(var _0xc851x4=0,_0xc851x5=_0xc851x3[_0x221c[1850]][_0xc851x2],_0xc851x9=_0xc851x5[_0x221c[67]],_0xc851xa=_0xc851x3[_0x221c[1850]][_0xc851x2-1][_0x221c[67]],_0xc851x12=[],_0xc851x13=0;_0xc851x13<_0xc851x9;_0xc851x13++){_0xc851x12[_0xc851x13]=[]};for(_0xc851x13=0;_0xc851x13<_0xc851x5[_0x221c[67]];_0xc851x13++){for(var _0xc851x14=_0xc851x5[_0xc851x13],_0xc851x15=_0xc851x14[_0x221c[1833]](_0xc851x2),_0xc851x16=_0xc851x14[_0x221c[1832]](_0xc851x2),_0xc851x14=0;_0xc851x14<_0xc851x16[_0x221c[67]];_0xc851x14++){var _0xc851x17=_0xc851x16[_0xc851x14][_0x221c[1833]](_0xc851x2-1);_0xc851x12[_0xc851x15][_0xc851x17]=201207}};for(_0xc851x13=0;_0xc851x13<_0xc851x9;_0xc851x13++){for(_0xc851x14=0;_0xc851x14<_0xc851xa;_0xc851x14++){if(201207==_0xc851x12[_0xc851x13][_0xc851x14]){for(_0xc851x5=_0xc851x13+1;_0xc851x5<_0xc851x9;_0xc851x5++){for(_0xc851x15=0;_0xc851x15<_0xc851x14;_0xc851x15++){201207==_0xc851x12[_0xc851x5][_0xc851x15]&&_0xc851x4++}};for(_0xc851x5=0;_0xc851x5<_0xc851x13;_0xc851x5++){for(_0xc851x15=_0xc851x14+1;_0xc851x15<_0xc851xa;_0xc851x15++){201207==_0xc851x12[_0xc851x5][_0xc851x15]&&_0xc851x4++}}}}};return _0xc851x4/2};mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[1862]]=function(_0xc851x2,_0xc851x3){for(var _0xc851x4=!0,_0xc851x5=0;_0xc851x4&&10>_0xc851x5++;){for(var _0xc851x9=1==_0xc851x2%2&&1==_0xc851x5%2,_0xc851x4=!1,_0xc851xa=0;_0xc851xa<_0xc851x3[_0x221c[1850]][_0x221c[67]];_0xc851xa++){for(var _0xc851x12=_0xc851x3[_0x221c[1850]][_0xc851xa],_0xc851x13=[],_0xc851x14=0;_0xc851x14<_0xc851x12[_0x221c[67]];_0xc851x14++){var _0xc851x15=_0xc851x12[_0xc851x14],_0xc851x16=_0xc851x15[_0x221c[1833]](_0xc851xa);0>_0xc851x16&&(_0xc851x16=_0xc851x14);_0xc851x13[_0xc851x16]=_0xc851x15};for(var _0xc851x17=_0xc851x16=_0xc851x15=null,_0xc851x18=null,_0xc851x19=null,_0xc851x1a=null,_0xc851x1b=null,_0xc851x1c=null,_0xc851x1d=null,_0xc851x1e=null,_0xc851x14=0;_0xc851x14<_0xc851x12[_0x221c[67]]-1;_0xc851x14++){if(0==_0xc851x14){for(var _0xc851x1d=_0xc851x13[_0xc851x14],_0xc851x15=_0xc851x1d[_0x221c[1831]](_0xc851xa),_0xc851x16=_0xc851x1d[_0x221c[1832]](_0xc851xa),_0xc851x19=[],_0xc851x1a=[],_0xc851x1f=0;_0xc851x1f<_0xc851x15[_0x221c[67]];_0xc851x1f++){_0xc851x19[_0xc851x1f]=_0xc851x15[_0xc851x1f][_0x221c[1833]](_0xc851xa+1)};for(_0xc851x1f=0;_0xc851x1f<_0xc851x16[_0x221c[67]];_0xc851x1f++){_0xc851x1a[_0xc851x1f]=_0xc851x16[_0xc851x1f][_0x221c[1833]](_0xc851xa-1)}}else {_0xc851x15=_0xc851x17,_0xc851x16=_0xc851x18,_0xc851x19=_0xc851x1b,_0xc851x1a=_0xc851x1c,_0xc851x1d=_0xc851x1e};_0xc851x1e=_0xc851x13[_0xc851x14+1];_0xc851x17=_0xc851x1e[_0x221c[1831]](_0xc851xa);_0xc851x18=_0xc851x1e[_0x221c[1832]](_0xc851xa);_0xc851x1b=[];_0xc851x1c=[];for(_0xc851x1f=0;_0xc851x1f<_0xc851x17[_0x221c[67]];_0xc851x1f++){_0xc851x1b[_0xc851x1f]=_0xc851x17[_0xc851x1f][_0x221c[1833]](_0xc851xa+1)};for(_0xc851x1f=0;_0xc851x1f<_0xc851x18[_0x221c[67]];_0xc851x1f++){_0xc851x1c[_0xc851x1f]=_0xc851x18[_0xc851x1f][_0x221c[1833]](_0xc851xa-1)};for(var _0xc851x20=0,_0xc851x62=0,_0xc851x1f=0;_0xc851x1f<_0xc851x19[_0x221c[67]];_0xc851x1f++){for(var _0xc851x63=0;_0xc851x63<_0xc851x1b[_0x221c[67]];_0xc851x63++){_0xc851x19[_0xc851x1f]>_0xc851x1b[_0xc851x63]&&_0xc851x20++,_0xc851x19[_0xc851x1f]<_0xc851x1b[_0xc851x63]&&_0xc851x62++}};for(_0xc851x1f=0;_0xc851x1f<_0xc851x1a[_0x221c[67]];_0xc851x1f++){for(_0xc851x63=0;_0xc851x63<_0xc851x1c[_0x221c[67]];_0xc851x63++){_0xc851x1a[_0xc851x1f]>_0xc851x1c[_0xc851x63]&&_0xc851x20++,_0xc851x1a[_0xc851x1f]<_0xc851x1c[_0xc851x63]&&_0xc851x62++}};if(_0xc851x62<_0xc851x20||_0xc851x62==_0xc851x20&&_0xc851x9){_0xc851x17=_0xc851x1d[_0x221c[1833]](_0xc851xa),_0xc851x1d[_0x221c[1834]](_0xc851xa,_0xc851x1e[_0x221c[1833]](_0xc851xa)),_0xc851x1e[_0x221c[1834]](_0xc851xa,_0xc851x17),_0xc851x17=_0xc851x15,_0xc851x18=_0xc851x16,_0xc851x1b=_0xc851x19,_0xc851x1c=_0xc851x1a,_0xc851x1e=_0xc851x1d,_0xc851x9||(_0xc851x4= !0)}}}}};mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[1861]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=0==_0xc851x2%2;if(_0xc851x4){for(var _0xc851x5=_0xc851x3[_0x221c[1827]]-1;0<=_0xc851x5;_0xc851x5--){this[_0x221c[1864]](_0xc851x5,_0xc851x4)}}else {for(_0xc851x5=1;_0xc851x5<_0xc851x3[_0x221c[1827]];_0xc851x5++){this[_0x221c[1864]](_0xc851x5,_0xc851x4)}}};mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[1864]]=function(_0xc851x2,_0xc851x3){for(var _0xc851x4=this[_0x221c[1856]][_0xc851x2][_0x221c[67]],_0xc851x5=[],_0xc851x9=[],_0xc851xa=0;_0xc851xa<_0xc851x4;_0xc851xa++){var _0xc851x12=this[_0x221c[1856]][_0xc851x2][_0xc851xa],_0xc851x13= new MedianCellSorter;_0xc851x13[_0x221c[246]]=_0xc851x12;var _0xc851x14;_0xc851x14=_0xc851x3?_0xc851x12[_0x221c[1831]](_0xc851x2):_0xc851x12[_0x221c[1832]](_0xc851x2);var _0xc851x15;_0xc851x15=_0xc851x3?_0xc851x2+1:_0xc851x2-1;null!=_0xc851x14&&0!=_0xc851x14[_0x221c[67]]?(_0xc851x13[_0x221c[1865]]=this[_0x221c[1865]](_0xc851x14,_0xc851x15),_0xc851x5[_0x221c[207]](_0xc851x13)):_0xc851x9[_0xc851x12[_0x221c[1833]](_0xc851x2)]= !0};_0xc851x5[_0x221c[470]](MedianCellSorter[_0x221c[202]][_0x221c[469]]);for(_0xc851xa=0;_0xc851xa<_0xc851x4;_0xc851xa++){null==_0xc851x9[_0xc851xa]&&(_0xc851x12=_0xc851x5[_0x221c[1115]]()[_0x221c[246]],_0xc851x12[_0x221c[1834]](_0xc851x2,_0xc851xa))}};mxMedianHybridCrossingReduction[_0x221c[202]][_0x221c[1865]]=function(_0xc851x2,_0xc851x3){for(var _0xc851x4=[],_0xc851x5=0,_0xc851x9=0;_0xc851x9<_0xc851x2[_0x221c[67]];_0xc851x9++){var _0xc851xa=_0xc851x2[_0xc851x9];_0xc851x4[_0xc851x5++]=_0xc851xa[_0x221c[1833]](_0xc851x3)};_0xc851x4[_0x221c[470]](function(_0xc851x2,_0xc851x3){return _0xc851x2-_0xc851x3});if(1==_0xc851x5%2){return _0xc851x4[Math[_0x221c[519]](_0xc851x5/2)]};if(2==_0xc851x5){return (_0xc851x4[0]+_0xc851x4[1])/2};_0xc851x9=_0xc851x5/2;_0xc851xa=_0xc851x4[_0xc851x9-1]-_0xc851x4[0];_0xc851x5=_0xc851x4[_0xc851x5-1]-_0xc851x4[_0xc851x9];return (_0xc851x4[_0xc851x9-1]*_0xc851x5+_0xc851x4[_0xc851x9]*_0xc851xa)/(_0xc851xa+_0xc851x5)};function MedianCellSorter(){}MedianCellSorter[_0x221c[202]][_0x221c[1865]]=0;MedianCellSorter[_0x221c[202]][_0x221c[246]]= !1;MedianCellSorter[_0x221c[202]][_0x221c[469]]=function(_0xc851x2,_0xc851x3){return null!=_0xc851x2&&null!=_0xc851x3?_0xc851x3[_0x221c[1865]]>_0xc851x2[_0x221c[1865]]?-1:_0xc851x3[_0x221c[1865]]<_0xc851x2[_0x221c[1865]]?1:0:0};function mxMinimumCycleRemover(_0xc851x2){this[_0x221c[1759]]=_0xc851x2}mxMinimumCycleRemover[_0x221c[202]]= new mxHierarchicalLayoutStage;mxMinimumCycleRemover[_0x221c[202]][_0x221c[196]]=mxMinimumCycleRemover;mxMinimumCycleRemover[_0x221c[202]][_0x221c[1759]]=null;mxMinimumCycleRemover[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1759]][_0x221c[502]](),_0xc851x4={},_0xc851x5=mxUtils[_0x221c[238]](_0xc851x3[_0x221c[1846]],null,!0),_0xc851x9=null;if(null!=_0xc851x3[_0x221c[1845]]){var _0xc851xa=_0xc851x3[_0x221c[1845]],_0xc851x9=[];for(_0xc851x2=0;_0xc851x2<_0xc851xa[_0x221c[67]];_0xc851x2++){var _0xc851x12=mxCellPath[_0x221c[385]](_0xc851xa[_0xc851x2]);_0xc851x9[_0xc851x2]=_0xc851x3[_0x221c[1846]][_0xc851x12]}};_0xc851x3[_0x221c[209]](function(_0xc851x2,_0xc851x3,_0xc851x9,_0xc851xa,_0xc851x12){_0xc851x3[_0x221c[1720]](_0xc851x2)&&(_0xc851x9[_0x221c[1744]](),mxUtils[_0x221c[205]](_0xc851x9,_0xc851x2[_0x221c[1838]]),_0xc851x2[_0x221c[1837]][_0x221c[207]](_0xc851x9),mxUtils[_0x221c[205]](_0xc851x9,_0xc851x3[_0x221c[1837]]),_0xc851x3[_0x221c[1838]][_0x221c[207]](_0xc851x9));_0xc851x2=mxCellPath[_0x221c[385]](_0xc851x3[_0x221c[246]]);_0xc851x4[_0xc851x2]=_0xc851x3;delete _0xc851x5[_0xc851x2]},_0xc851x9,!0,null);_0xc851x9=null;0<_0xc851x5[_0x221c[1866]]&&(_0xc851x9=mxUtils[_0x221c[238]](_0xc851x5,null,!0));_0xc851x2=mxUtils[_0x221c[238]](_0xc851x4,null,!0);_0xc851x3[_0x221c[209]](function(_0xc851x2,_0xc851x3,_0xc851x9,_0xc851xa,_0xc851x12){_0xc851x3[_0x221c[1720]](_0xc851x2)&&(_0xc851x9[_0x221c[1744]](),mxUtils[_0x221c[205]](_0xc851x9,_0xc851x2[_0x221c[1838]]),_0xc851x3[_0x221c[1838]][_0x221c[207]](_0xc851x9),_0xc851x2[_0x221c[1837]][_0x221c[207]](_0xc851x9),mxUtils[_0x221c[205]](_0xc851x9,_0xc851x3[_0x221c[1837]]));_0xc851x2=mxCellPath[_0x221c[385]](_0xc851x3[_0x221c[246]]);_0xc851x4[_0xc851x2]=_0xc851x3;delete _0xc851x5[_0xc851x2]},_0xc851x5,!0,_0xc851x2);_0xc851xa=this[_0x221c[1759]][_0x221c[1703]]();if(null!=_0xc851x9&&0<_0xc851x9[_0x221c[67]]){_0xc851x3=_0xc851x3[_0x221c[1845]];for(_0xc851x2=0;_0xc851x2<_0xc851x9[_0x221c[67]];_0xc851x2++){_0xc851x12=_0xc851x9[_0xc851x2][_0x221c[246]],0==_0xc851xa[_0x221c[1867]](_0xc851x12)[_0x221c[67]]&&_0xc851x3[_0x221c[207]](_0xc851x12)}}};function mxCoordinateAssignment(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){this[_0x221c[1759]]=_0xc851x2;this[_0x221c[1868]]=_0xc851x3;this[_0x221c[1869]]=_0xc851x4;this[_0x221c[1870]]=_0xc851x5;this[_0x221c[1871]]=_0xc851x9;this[_0x221c[1872]]=_0xc851xa}var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};mxCoordinateAssignment[_0x221c[202]]= new mxHierarchicalLayoutStage;mxCoordinateAssignment[_0x221c[202]][_0x221c[196]]=mxCoordinateAssignment;mxCoordinateAssignment[_0x221c[202]][_0x221c[1759]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1868]]=30;mxCoordinateAssignment[_0x221c[202]][_0x221c[1869]]=100;mxCoordinateAssignment[_0x221c[202]][_0x221c[1872]]=10;mxCoordinateAssignment[_0x221c[202]][_0x221c[1795]]=8;mxCoordinateAssignment[_0x221c[202]][_0x221c[1751]]=5;mxCoordinateAssignment[_0x221c[202]][_0x221c[1752]]=2;mxCoordinateAssignment[_0x221c[202]][_0x221c[1753]]=12;mxCoordinateAssignment[_0x221c[202]][_0x221c[1754]]=4;mxCoordinateAssignment[_0x221c[202]][_0x221c[1873]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1870]]=mxConstants[_0x221c[1358]];mxCoordinateAssignment[_0x221c[202]][_0x221c[1871]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1874]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1875]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1876]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1877]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1878]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1879]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1880]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1881]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1882]]= !0;mxCoordinateAssignment[_0x221c[202]][_0x221c[675]]=mxHierarchicalEdgeStyle[_0x221c[1883]];mxCoordinateAssignment[_0x221c[202]][_0x221c[1884]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1885]]=null;mxCoordinateAssignment[_0x221c[202]][_0x221c[1745]]=10;mxCoordinateAssignment[_0x221c[202]][_0x221c[1886]]=function(){var _0xc851x2=this[_0x221c[1759]][_0x221c[502]]();mxLog[_0x221c[539]]();mxLog[_0x221c[171]](_0x221c[1887]);for(var _0xc851x3=0;_0xc851x3<_0xc851x2[_0x221c[1850]][_0x221c[67]];_0xc851x3++){mxLog[_0x221c[53]](_0x221c[1888],_0xc851x3,_0x221c[1889]);for(var _0xc851x4=_0xc851x2[_0x221c[1850]][_0xc851x3],_0xc851x5=0;_0xc851x5<_0xc851x4[_0x221c[67]];_0xc851x5++){mxLog[_0x221c[53]](_0xc851x4[_0xc851x5][_0x221c[1833]](_0xc851x3),_0x221c[316])};mxLog[_0x221c[171]]()};mxLog[_0x221c[171]](_0x221c[1890])};mxCoordinateAssignment[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){this[_0x221c[1873]]=[];_0xc851x2=this[_0x221c[1759]][_0x221c[502]]();this[_0x221c[1875]]=0;this[_0x221c[1891]](this[_0x221c[1759]][_0x221c[1703]](),_0xc851x2);this[_0x221c[1882]]&&this[_0x221c[1892]](_0xc851x2);var _0xc851x3=1E8;if(this[_0x221c[1882]]){for(var _0xc851x4=0;_0xc851x4<this[_0x221c[1795]];_0xc851x4++){0!=_0xc851x4&&(this[_0x221c[1893]](_0xc851x4,_0xc851x2),this[_0x221c[1892]](_0xc851x2));if(this[_0x221c[1875]]<_0xc851x3){for(var _0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[1850]][_0x221c[67]];_0xc851x5++){for(var _0xc851x9=_0xc851x2[_0x221c[1850]][_0xc851x5],_0xc851xa=0;_0xc851xa<_0xc851x9[_0x221c[67]];_0xc851xa++){var _0xc851x12=_0xc851x9[_0xc851xa];_0xc851x12[_0x221c[1835]](_0xc851x5,_0xc851x12[_0x221c[1833]](_0xc851x5))}};_0xc851x3=this[_0x221c[1875]]}else {for(_0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[1850]][_0x221c[67]];_0xc851x5++){_0xc851x9=_0xc851x2[_0x221c[1850]][_0xc851x5];for(_0xc851xa=0;_0xc851xa<_0xc851x9[_0x221c[67]];_0xc851xa++){_0xc851x12=_0xc851x9[_0xc851xa],_0xc851x12[_0x221c[1834]](_0xc851x5,_0xc851x12[_0x221c[730]](_0xc851x5))}}};this[_0x221c[1894]](this[_0x221c[1759]][_0x221c[1703]](),_0xc851x2);this[_0x221c[1875]]=0}};this[_0x221c[1895]](this[_0x221c[1759]][_0x221c[1703]](),_0xc851x2)};mxCoordinateAssignment[_0x221c[202]][_0x221c[1892]]=function(_0xc851x2){for(var _0xc851x3=[],_0xc851x4=[],_0xc851x5=[],_0xc851x9=0;_0xc851x9<=_0xc851x2[_0x221c[1827]];_0xc851x9++){_0xc851x5[_0xc851x9]=_0xc851x2[_0x221c[1850]][_0xc851x9];for(var _0xc851xa=0;_0xc851xa<_0xc851x5[_0xc851x9][_0x221c[67]];_0xc851xa++){var _0xc851x12=_0xc851x5[_0xc851x9][_0xc851xa],_0xc851x13= new WeightedCellSorter(_0xc851x12,_0xc851x9);_0xc851x13[_0x221c[1785]]=_0xc851xa;_0xc851x13[_0x221c[1784]]= !0;_0xc851x3[_0x221c[207]](_0xc851x13);_0xc851x12=mxCellPath[_0x221c[385]](_0xc851x12[_0x221c[1841]]());_0xc851x4[_0xc851x12]=_0xc851x13}};_0xc851x2=10*_0xc851x3[_0x221c[67]];for(_0xc851xa=0;0<_0xc851x3[_0x221c[67]]&&_0xc851xa<=_0xc851x2;){var _0xc851x13=_0xc851x3[_0x221c[1115]](),_0xc851x9=_0xc851x13[_0x221c[246]],_0xc851x14=_0xc851x13[_0x221c[1782]],_0xc851x15=parseInt(_0xc851x13[_0x221c[1785]]),_0xc851x12=_0xc851x9[_0x221c[1831]](_0xc851x14),_0xc851x16=_0xc851x9[_0x221c[1832]](_0xc851x14),_0xc851x17=_0xc851x12[_0x221c[67]],_0xc851x18=_0xc851x16[_0x221c[67]],_0xc851x19=this[_0x221c[1896]](_0xc851x12,_0xc851x14+1),_0xc851x1a=this[_0x221c[1896]](_0xc851x16,_0xc851x14-1),_0xc851x1b=_0xc851x17+_0xc851x18,_0xc851x1c=_0xc851x9[_0x221c[1833]](_0xc851x14),_0xc851x1d=_0xc851x1c;0<_0xc851x1b&&(_0xc851x1d=(_0xc851x19*_0xc851x17+_0xc851x1a*_0xc851x18)/_0xc851x1b);_0xc851x17= !1;_0xc851x1d<_0xc851x1c-1?0==_0xc851x15?(_0xc851x9[_0x221c[1834]](_0xc851x14,_0xc851x1d),_0xc851x17= !0):(_0xc851x15=_0xc851x5[_0xc851x14][_0xc851x15-1],_0xc851x1c=_0xc851x15[_0x221c[1833]](_0xc851x14),_0xc851x1c=_0xc851x1c+_0xc851x15[_0x221c[117]]/2+this[_0x221c[1868]]+_0xc851x9[_0x221c[117]]/2,_0xc851x1c<_0xc851x1d?(_0xc851x9[_0x221c[1834]](_0xc851x14,_0xc851x1d),_0xc851x17= !0):_0xc851x1c<_0xc851x9[_0x221c[1833]](_0xc851x14)-1&&(_0xc851x9[_0x221c[1834]](_0xc851x14,_0xc851x1c),_0xc851x17= !0)):_0xc851x1d>_0xc851x1c+1&&(_0xc851x15==_0xc851x5[_0xc851x14][_0x221c[67]]-1?(_0xc851x9[_0x221c[1834]](_0xc851x14,_0xc851x1d),_0xc851x17= !0):(_0xc851x15=_0xc851x5[_0xc851x14][_0xc851x15+1],_0xc851x1c=_0xc851x15[_0x221c[1833]](_0xc851x14),_0xc851x1c=_0xc851x1c-_0xc851x15[_0x221c[117]]/2-this[_0x221c[1868]]-_0xc851x9[_0x221c[117]]/2,_0xc851x1c>_0xc851x1d?(_0xc851x9[_0x221c[1834]](_0xc851x14,_0xc851x1d),_0xc851x17= !0):_0xc851x1c>_0xc851x9[_0x221c[1833]](_0xc851x14)+1&&(_0xc851x9[_0x221c[1834]](_0xc851x14,_0xc851x1c),_0xc851x17= !0)));if(_0xc851x17){for(_0xc851x9=0;_0xc851x9<_0xc851x12[_0x221c[67]];_0xc851x9++){_0xc851x14=_0xc851x12[_0xc851x9],_0xc851x14=mxCellPath[_0x221c[385]](_0xc851x14[_0x221c[1841]]()),_0xc851x14=_0xc851x4[_0xc851x14],null!=_0xc851x14&&!1==_0xc851x14[_0x221c[1784]]&&(_0xc851x14[_0x221c[1784]]= !0,_0xc851x3[_0x221c[207]](_0xc851x14))};for(_0xc851x9=0;_0xc851x9<_0xc851x16[_0x221c[67]];_0xc851x9++){_0xc851x14=_0xc851x16[_0xc851x9],_0xc851x14=mxCellPath[_0x221c[385]](_0xc851x14[_0x221c[1841]]()),_0xc851x14=_0xc851x4[_0xc851x14],null!=_0xc851x14&&!1==_0xc851x14[_0x221c[1784]]&&(_0xc851x14[_0x221c[1784]]= !0,_0xc851x3[_0x221c[207]](_0xc851x14))}};_0xc851x13[_0x221c[1784]]= !1;_0xc851xa++}};mxCoordinateAssignment[_0x221c[202]][_0x221c[1893]]=function(_0xc851x2,_0xc851x3){if(0==_0xc851x2%2){for(var _0xc851x4=_0xc851x3[_0x221c[1827]];0<_0xc851x4;_0xc851x4--){this[_0x221c[1897]](_0xc851x4-1,_0xc851x3,_0xc851x4)}}else {for(_0xc851x4=0;_0xc851x4<_0xc851x3[_0x221c[1827]]-1;_0xc851x4++){this[_0x221c[1897]](_0xc851x4+1,_0xc851x3,_0xc851x4)}}};mxCoordinateAssignment[_0x221c[202]][_0x221c[1897]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=_0xc851x3[_0x221c[1850]][_0xc851x2];for(var _0xc851x5=[],_0xc851x9=[],_0xc851xa=0;_0xc851xa<_0xc851x3[_0x221c[67]];_0xc851xa++){var _0xc851x12=_0xc851x3[_0xc851xa];_0xc851x5[_0xc851xa]= new WeightedCellSorter;_0xc851x5[_0xc851xa][_0x221c[246]]=_0xc851x12;_0xc851x5[_0xc851xa][_0x221c[1785]]=_0xc851xa;var _0xc851x13=mxCellPath[_0x221c[385]](_0xc851x12[_0x221c[1841]]());_0xc851x9[_0xc851x13]=_0xc851x5[_0xc851xa];var _0xc851x14=null,_0xc851x14=_0xc851x4<_0xc851x2?_0xc851x12[_0x221c[1832]](_0xc851x2):_0xc851x12[_0x221c[1831]](_0xc851x2);_0xc851x5[_0xc851xa][_0x221c[1782]]=this[_0x221c[1898]](_0xc851x12,_0xc851x14)};_0xc851x5[_0x221c[470]](WeightedCellSorter[_0x221c[202]][_0x221c[469]]);for(_0xc851xa=0;_0xc851xa<_0xc851x5[_0x221c[67]];_0xc851xa++){_0xc851x13=0;_0xc851x12=_0xc851x5[_0xc851xa][_0x221c[246]];_0xc851x13=0;_0xc851x14=_0xc851x4<_0xc851x2?_0xc851x12[_0x221c[1832]](_0xc851x2)[_0x221c[1853]]():_0xc851x12[_0x221c[1831]](_0xc851x2)[_0x221c[1853]]();null!=_0xc851x14&&(_0xc851x13=_0xc851x14[_0x221c[67]],_0xc851x13=0<_0xc851x13?this[_0x221c[1896]](_0xc851x14,_0xc851x4):_0xc851x12[_0x221c[1833]](_0xc851x2));for(var _0xc851x15=0,_0xc851x14=-1E8,_0xc851x16=_0xc851x5[_0xc851xa][_0x221c[1785]]-1;0<=_0xc851x16;){var _0xc851x17=mxCellPath[_0x221c[385]](_0xc851x3[_0xc851x16][_0x221c[1841]]()),_0xc851x17=_0xc851x9[_0xc851x17];if(null!=_0xc851x17){var _0xc851x18=_0xc851x17[_0x221c[246]];_0xc851x17[_0x221c[1784]]?(_0xc851x14=_0xc851x18[_0x221c[1833]](_0xc851x2)+_0xc851x18[_0x221c[117]]/2+this[_0x221c[1868]]+_0xc851x15+_0xc851x12[_0x221c[117]]/2,_0xc851x16= -1):(_0xc851x15+=_0xc851x18[_0x221c[117]]+this[_0x221c[1868]],_0xc851x16--)}};_0xc851x15=0;_0xc851x18=1E8;for(_0xc851x16=_0xc851x5[_0xc851xa][_0x221c[1785]]+1;_0xc851x16<_0xc851x5[_0x221c[67]];){if(_0xc851x17=mxCellPath[_0x221c[385]](_0xc851x3[_0xc851x16][_0x221c[1841]]()),_0xc851x17=_0xc851x9[_0xc851x17],null!=_0xc851x17){var _0xc851x19=_0xc851x17[_0x221c[246]];_0xc851x17[_0x221c[1784]]?(_0xc851x18=_0xc851x19[_0x221c[1833]](_0xc851x2)-_0xc851x19[_0x221c[117]]/2-this[_0x221c[1868]]-_0xc851x15-_0xc851x12[_0x221c[117]]/2,_0xc851x16=_0xc851x5[_0x221c[67]]):(_0xc851x15+=_0xc851x19[_0x221c[117]]+this[_0x221c[1868]],_0xc851x16++)}};_0xc851x13>=_0xc851x14&&_0xc851x13<=_0xc851x18?_0xc851x12[_0x221c[1834]](_0xc851x2,_0xc851x13):_0xc851x13<_0xc851x14?(_0xc851x12[_0x221c[1834]](_0xc851x2,_0xc851x14),this[_0x221c[1875]]+=_0xc851x14-_0xc851x13):_0xc851x13>_0xc851x18&&(_0xc851x12[_0x221c[1834]](_0xc851x2,_0xc851x18),this[_0x221c[1875]]+=_0xc851x13-_0xc851x18);_0xc851x5[_0xc851xa][_0x221c[1784]]= !0}};mxCoordinateAssignment[_0x221c[202]][_0x221c[1898]]=function(_0xc851x2,_0xc851x3){for(var _0xc851x4=0,_0xc851x5=0;_0xc851x5<_0xc851x3[_0x221c[67]];_0xc851x5++){var _0xc851x9=_0xc851x3[_0xc851x5];_0xc851x2[_0x221c[1193]]()&&_0xc851x9[_0x221c[1193]]()?_0xc851x4++:_0xc851x4=_0xc851x2[_0x221c[250]]()&&_0xc851x9[_0x221c[250]]()?_0xc851x4+8:_0xc851x4+2};return _0xc851x4};mxCoordinateAssignment[_0x221c[202]][_0x221c[1896]]=function(_0xc851x2,_0xc851x3){if(0==_0xc851x2[_0x221c[67]]){return 0};for(var _0xc851x4=[],_0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){_0xc851x4[_0xc851x5]=_0xc851x2[_0xc851x5][_0x221c[1833]](_0xc851x3)};_0xc851x4[_0x221c[470]](function(_0xc851x2,_0xc851x3){return _0xc851x2-_0xc851x3});if(1==_0xc851x2[_0x221c[67]]%2){return _0xc851x4[Math[_0x221c[519]](_0xc851x2[_0x221c[67]]/2)]};_0xc851x5=_0xc851x2[_0x221c[67]]/2;return (_0xc851x4[_0xc851x5-1]+_0xc851x4[_0xc851x5])/2};mxCoordinateAssignment[_0x221c[202]][_0x221c[1891]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1899]](_0xc851x2,_0xc851x3);for(var _0xc851x4=this[_0x221c[1876]];0<=_0xc851x4;_0xc851x4--){_0xc851x4<_0xc851x3[_0x221c[1827]]&&this[_0x221c[1900]](_0xc851x4,_0xc851x2,_0xc851x3)};for(_0xc851x4=this[_0x221c[1876]]+1;_0xc851x4<=_0xc851x3[_0x221c[1827]];_0xc851x4++){0<_0xc851x4&&this[_0x221c[1900]](_0xc851x4,_0xc851x2,_0xc851x3)}};mxCoordinateAssignment[_0x221c[202]][_0x221c[1900]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=_0xc851x4[_0x221c[1850]][_0xc851x2];_0xc851x4=0;for(var _0xc851x5=this[_0x221c[1871]]+(this[_0x221c[1879]]-this[_0x221c[1880]][_0xc851x2])/2,_0xc851x9=!1,_0xc851xa=0;_0xc851xa<_0xc851x3[_0x221c[67]];_0xc851xa++){var _0xc851x12=_0xc851x3[_0xc851xa];if(_0xc851x12[_0x221c[1193]]()){var _0xc851x13=this[_0x221c[1759]][_0x221c[1726]](_0xc851x12[_0x221c[246]]);null!=_0xc851x13?this[_0x221c[1870]]==mxConstants[_0x221c[1358]]||this[_0x221c[1870]]==mxConstants[_0x221c[1354]]?(_0xc851x12[_0x221c[117]]=_0xc851x13[_0x221c[117]],_0xc851x12[_0x221c[119]]=_0xc851x13[_0x221c[119]]):(_0xc851x12[_0x221c[117]]=_0xc851x13[_0x221c[119]],_0xc851x12[_0x221c[119]]=_0xc851x13[_0x221c[117]]):_0xc851x9= !0;_0xc851x4=Math[_0x221c[160]](_0xc851x4,_0xc851x12[_0x221c[119]])}else {_0xc851x12[_0x221c[250]]()&&(_0xc851x13=1,null!=_0xc851x12[_0x221c[1842]]?_0xc851x13=_0xc851x12[_0x221c[1842]][_0x221c[67]]:mxLog[_0x221c[283]](_0x221c[1901]),_0xc851x12[_0x221c[117]]=(_0xc851x13-1)*this[_0x221c[1872]])};_0xc851x5+=_0xc851x12[_0x221c[117]]/2;_0xc851x12[_0x221c[1835]](_0xc851x2,_0xc851x5);_0xc851x12[_0x221c[1834]](_0xc851x2,_0xc851x5);_0xc851x5+=_0xc851x12[_0x221c[117]]/2;_0xc851x5+=this[_0x221c[1868]]};!0==_0xc851x9&&mxLog[_0x221c[283]](_0x221c[1902])};mxCoordinateAssignment[_0x221c[202]][_0x221c[1899]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=-this[_0x221c[1869]],_0xc851x5=0;this[_0x221c[1880]]=[];this[_0x221c[1881]]=[];for(var _0xc851x9=_0xc851x3[_0x221c[1827]];0<=_0xc851x9;_0xc851x9--){for(var _0xc851xa=0,_0xc851x12=_0xc851x3[_0x221c[1850]][_0xc851x9],_0xc851x13=this[_0x221c[1871]],_0xc851x14=!1,_0xc851x15=0;_0xc851x15<_0xc851x12[_0x221c[67]];_0xc851x15++){var _0xc851x16=_0xc851x12[_0xc851x15];if(_0xc851x16[_0x221c[1193]]()){var _0xc851x17=this[_0x221c[1759]][_0x221c[1726]](_0xc851x16[_0x221c[246]]);null!=_0xc851x17?this[_0x221c[1870]]==mxConstants[_0x221c[1358]]||this[_0x221c[1870]]==mxConstants[_0x221c[1354]]?(_0xc851x16[_0x221c[117]]=_0xc851x17[_0x221c[117]],_0xc851x16[_0x221c[119]]=_0xc851x17[_0x221c[119]]):(_0xc851x16[_0x221c[117]]=_0xc851x17[_0x221c[119]],_0xc851x16[_0x221c[119]]=_0xc851x17[_0x221c[117]]):_0xc851x14= !0;_0xc851xa=Math[_0x221c[160]](_0xc851xa,_0xc851x16[_0x221c[119]])}else {_0xc851x16[_0x221c[250]]()&&(_0xc851x17=1,null!=_0xc851x16[_0x221c[1842]]?_0xc851x17=_0xc851x16[_0x221c[1842]][_0x221c[67]]:mxLog[_0x221c[283]](_0x221c[1901]),_0xc851x16[_0x221c[117]]=(_0xc851x17-1)*this[_0x221c[1872]])};_0xc851x13+=_0xc851x16[_0x221c[117]]/2;_0xc851x16[_0x221c[1835]](_0xc851x9,_0xc851x13);_0xc851x16[_0x221c[1834]](_0xc851x9,_0xc851x13);_0xc851x13+=_0xc851x16[_0x221c[117]]/2;_0xc851x13+=this[_0x221c[1868]];_0xc851x13>this[_0x221c[1879]]&&(this[_0x221c[1879]]=_0xc851x13,this[_0x221c[1876]]=_0xc851x9);this[_0x221c[1880]][_0xc851x9]=_0xc851x13};!0==_0xc851x14&&mxLog[_0x221c[283]](_0x221c[1902]);this[_0x221c[1881]][_0xc851x9]=_0xc851x4;_0xc851x13=_0xc851xa/2+_0xc851x5/2+this[_0x221c[1869]];_0xc851x5=_0xc851xa;_0xc851x4=this[_0x221c[1870]]==mxConstants[_0x221c[1358]]||this[_0x221c[1870]]==mxConstants[_0x221c[1359]]?_0xc851x4+_0xc851x13:_0xc851x4-_0xc851x13;for(_0xc851x15=0;_0xc851x15<_0xc851x12[_0x221c[67]];_0xc851x15++){_0xc851x12[_0xc851x15][_0x221c[1836]](_0xc851x9,_0xc851x4)}}};mxCoordinateAssignment[_0x221c[202]][_0x221c[1894]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x3[_0x221c[1847]],_0xc851x5;for(_0xc851x5 in _0xc851x4){var _0xc851x9=_0xc851x4[_0xc851x5];if(!(1>_0xc851x9[_0x221c[1827]]-_0xc851x9[_0x221c[1828]]-1)){for(var _0xc851xa=_0xc851x9[_0x221c[1833]](_0xc851x9[_0x221c[1828]]+1),_0xc851x12=!0,_0xc851x13=0,_0xc851x14=_0xc851x9[_0x221c[1828]]+2;_0xc851x14<_0xc851x9[_0x221c[1827]];_0xc851x14++){var _0xc851x15=_0xc851x9[_0x221c[1833]](_0xc851x14);_0xc851xa!=_0xc851x15?(_0xc851x12= !1,_0xc851xa=_0xc851x15):_0xc851x13++};if(!_0xc851x12){for(var _0xc851x12=_0xc851xa=0,_0xc851x15=[],_0xc851x16=[],_0xc851x17=_0xc851x9[_0x221c[1833]](_0xc851x9[_0x221c[1828]]+1),_0xc851x14=_0xc851x9[_0x221c[1828]]+1;_0xc851x14<_0xc851x9[_0x221c[1827]]-1;_0xc851x14++){var _0xc851x18=_0xc851x9[_0x221c[730]](_0xc851x14+1);_0xc851x17==_0xc851x18?(_0xc851x15[_0xc851x14-_0xc851x9[_0x221c[1828]]-1]=_0xc851x17,_0xc851xa++):this[_0x221c[1903]](_0xc851x3,_0xc851x9,_0xc851x14+1,_0xc851x17)?(_0xc851x15[_0xc851x14-_0xc851x9[_0x221c[1828]]-1]=_0xc851x17,_0xc851xa++):_0xc851x17=_0xc851x15[_0xc851x14-_0xc851x9[_0x221c[1828]]-1]=_0xc851x18};_0xc851x17=_0xc851x9[_0x221c[730]](_0xc851x14);for(_0xc851x14=_0xc851x9[_0x221c[1827]]-1;_0xc851x14>_0xc851x9[_0x221c[1828]]+1;_0xc851x14--){_0xc851x18=_0xc851x9[_0x221c[730]](_0xc851x14-1),_0xc851x17==_0xc851x18?(_0xc851x16[_0xc851x14-_0xc851x9[_0x221c[1828]]-2]=_0xc851x17,_0xc851x12++):this[_0x221c[1903]](_0xc851x3,_0xc851x9,_0xc851x14-1,_0xc851x17)?(_0xc851x16[_0xc851x14-_0xc851x9[_0x221c[1828]]-2]=_0xc851x17,_0xc851x12++):(_0xc851x16[_0xc851x14-_0xc851x9[_0x221c[1828]]-2]=_0xc851x9[_0x221c[730]](_0xc851x14-1),_0xc851x17=_0xc851x18)};if(_0xc851x12>_0xc851x13||_0xc851xa>_0xc851x13){if(_0xc851x12>=_0xc851xa){for(_0xc851x14=_0xc851x9[_0x221c[1827]]-2;_0xc851x14>_0xc851x9[_0x221c[1828]];_0xc851x14--){_0xc851x9[_0x221c[1835]](_0xc851x14,_0xc851x16[_0xc851x14-_0xc851x9[_0x221c[1828]]-1])}}else {if(_0xc851xa>_0xc851x12){for(_0xc851x14=_0xc851x9[_0x221c[1828]]+2;_0xc851x14<_0xc851x9[_0x221c[1827]];_0xc851x14++){_0xc851x9[_0x221c[1835]](_0xc851x14,_0xc851x15[_0xc851x14-_0xc851x9[_0x221c[1828]]-2])}}}}}}}};mxCoordinateAssignment[_0x221c[202]][_0x221c[1903]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x2=_0xc851x2[_0x221c[1850]][_0xc851x4];for(var _0xc851x9=-1,_0xc851xa=0;_0xc851xa<_0xc851x2[_0x221c[67]];_0xc851xa++){if(_0xc851x3==_0xc851x2[_0xc851xa]){_0xc851x9=_0xc851xa;break}};if(0>_0xc851x9){return !1};_0xc851xa=_0xc851x3[_0x221c[1833]](_0xc851x4);if(_0xc851x5<_0xc851xa){if(0==_0xc851x9){return !0};_0xc851x2=_0xc851x2[_0xc851x9-1];_0xc851x4=_0xc851x2[_0x221c[1833]](_0xc851x4);_0xc851x4=_0xc851x4+_0xc851x2[_0x221c[117]]/2+this[_0x221c[1868]]+_0xc851x3[_0x221c[117]]/2;if(!(_0xc851x4<=_0xc851x5)){return !1}}else {if(_0xc851x5>_0xc851xa){if(_0xc851x9==_0xc851x2[_0x221c[67]]-1){return !0};_0xc851x2=_0xc851x2[_0xc851x9+1];_0xc851x4=_0xc851x2[_0x221c[1833]](_0xc851x4);_0xc851x4=_0xc851x4-_0xc851x2[_0x221c[117]]/2-this[_0x221c[1868]]-_0xc851x3[_0x221c[117]]/2;if(!(_0xc851x4>=_0xc851x5)){return !1}}};return !0};mxCoordinateAssignment[_0x221c[202]][_0x221c[1895]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1877]]=[];this[_0x221c[1878]]=[];for(var _0xc851x4=0;_0xc851x4<_0xc851x3[_0x221c[1850]][_0x221c[67]];_0xc851x4++){this[_0x221c[1877]][_0xc851x4]=Number[_0x221c[1904]],this[_0x221c[1878]][_0xc851x4]=0};_0xc851x4=null;this[_0x221c[1759]][_0x221c[1735]]&&(_0xc851x4={});var _0xc851x5=_0xc851x3[_0x221c[1847]],_0xc851x9=_0xc851x3[_0x221c[1846]],_0xc851xa;for(_0xc851xa in _0xc851x9){var _0xc851x12=_0xc851x9[_0xc851xa];this[_0x221c[1725]](_0xc851x12);if(this[_0x221c[1759]][_0x221c[1735]]){var _0xc851x12=_0xc851x2[_0x221c[251]][_0x221c[1197]](_0xc851x12[_0x221c[246]]),_0xc851x13=mxCellPath[_0x221c[385]](_0xc851x12);null==_0xc851x4[_0xc851x13]&&(_0xc851x4[_0xc851x13]=_0xc851x12)}};this[_0x221c[1759]][_0x221c[1735]]&&null!=_0xc851x4&&this[_0x221c[1763]](_0xc851x4);(this[_0x221c[675]]==mxHierarchicalEdgeStyle[_0x221c[1905]]||this[_0x221c[675]]==mxHierarchicalEdgeStyle[_0x221c[1883]]||this[_0x221c[675]]==mxHierarchicalEdgeStyle[_0x221c[1906]])&&this[_0x221c[1764]](_0xc851x3);for(_0xc851xa in _0xc851x5){this[_0x221c[1907]](_0xc851x5[_0xc851xa])}};mxCoordinateAssignment[_0x221c[202]][_0x221c[1763]]=function(_0xc851x2){var _0xc851x3=[],_0xc851x4;for(_0xc851x4 in _0xc851x2){_0xc851x3[_0x221c[207]](_0xc851x2[_0xc851x4])};this[_0x221c[1759]][_0x221c[1727]](mxUtils[_0x221c[1779]](_0xc851x3,!0),this[_0x221c[1745]])};mxCoordinateAssignment[_0x221c[202]][_0x221c[1764]]=function(_0xc851x2){for(var _0xc851x3=0;_0xc851x3<_0xc851x2[_0x221c[1850]][_0x221c[67]];_0xc851x3++){for(var _0xc851x4=_0xc851x2[_0x221c[1850]][_0xc851x3],_0xc851x5=0;_0xc851x5<_0xc851x4[_0x221c[67]];_0xc851x5++){var _0xc851x9=_0xc851x4[_0xc851x5];if(_0xc851x9[_0x221c[1193]]()){for(var _0xc851xa=_0xc851x9[_0x221c[1832]](_0xc851x3),_0xc851x12=_0xc851x3-1,_0xc851x13=0;2>_0xc851x13;_0xc851x13++){if(-1<_0xc851x12&&_0xc851x12<_0xc851x2[_0x221c[1850]][_0x221c[67]]&&null!=_0xc851xa&&0<_0xc851xa[_0x221c[67]]){for(var _0xc851x14=[],_0xc851x15=0;_0xc851x15<_0xc851xa[_0x221c[67]];_0xc851x15++){var _0xc851x16= new WeightedCellSorter(_0xc851xa[_0xc851x15],_0xc851xa[_0xc851x15][_0x221c[730]](_0xc851x12));_0xc851x14[_0x221c[207]](_0xc851x16)};_0xc851x14[_0x221c[470]](WeightedCellSorter[_0x221c[202]][_0x221c[469]]);for(var _0xc851x16=_0xc851x9[_0x221c[235]][0]-_0xc851x9[_0x221c[117]]/2,_0xc851x17=_0xc851x16+_0xc851x9[_0x221c[117]],_0xc851x18=_0xc851xa=0,_0xc851x12=[],_0xc851x15=0;_0xc851x15<_0xc851x14[_0x221c[67]];_0xc851x15++){var _0xc851x19=_0xc851x14[_0xc851x15][_0x221c[246]],_0xc851x1a;if(_0xc851x19[_0x221c[1193]]()){_0xc851x1a=0==_0xc851x13?_0xc851x9[_0x221c[1838]]:_0xc851x9[_0x221c[1837]];for(var _0xc851x1b=0;_0xc851x1b<_0xc851x1a[_0x221c[67]];_0xc851x1b++){if(_0xc851x1a[_0xc851x1b][_0x221c[1097]]==_0xc851x19||_0xc851x1a[_0xc851x1b][_0x221c[772]]==_0xc851x19){_0xc851xa+=_0xc851x1a[_0xc851x1b][_0x221c[1842]][_0x221c[67]],_0xc851x18++,_0xc851x12[_0x221c[207]](_0xc851x1a[_0xc851x1b])}}}else {_0xc851xa+=_0xc851x19[_0x221c[1842]][_0x221c[67]],_0xc851x18++,_0xc851x12[_0x221c[207]](_0xc851x19)}};_0xc851x9[_0x221c[117]]>(_0xc851xa+1)*this[_0x221c[1751]]+2*this[_0x221c[1751]]&&(_0xc851x16+=this[_0x221c[1751]],_0xc851x17-=this[_0x221c[1751]]);_0xc851x14=(_0xc851x17-_0xc851x16)/_0xc851xa;_0xc851x16+=_0xc851x14/2;_0xc851x17=this[_0x221c[1753]]-this[_0x221c[1752]];for(_0xc851x15=_0xc851x18=0;_0xc851x15<_0xc851x12[_0x221c[67]];_0xc851x15++){_0xc851x19=_0xc851x12[_0xc851x15][_0x221c[1842]][_0x221c[67]];_0xc851x1b=mxCellPath[_0x221c[385]](_0xc851x12[_0xc851x15][_0x221c[1842]][0]);_0xc851x1a=this[_0x221c[1873]][_0xc851x1b];null==_0xc851x1a&&(_0xc851x1a=[],this[_0x221c[1873]][_0xc851x1b]=_0xc851x1a);_0xc851x15<_0xc851xa/2?_0xc851x17+=this[_0x221c[1752]]:_0xc851x15>_0xc851xa/2&&(_0xc851x17-=this[_0x221c[1752]]);for(_0xc851x1b=0;_0xc851x1b<_0xc851x19;_0xc851x1b++){_0xc851x1a[4*_0xc851x1b+2*_0xc851x13]=_0xc851x16,_0xc851x16+=_0xc851x14,_0xc851x1a[4*_0xc851x1b+2*_0xc851x13+1]=_0xc851x17};_0xc851x18=Math[_0x221c[160]](_0xc851x18,_0xc851x17)}};_0xc851xa=_0xc851x9[_0x221c[1831]](_0xc851x3);_0xc851x12=_0xc851x3+1}}}}};mxCoordinateAssignment[_0x221c[202]][_0x221c[1907]]=function(_0xc851x2){var _0xc851x3=0;if(101207!=_0xc851x2[_0x221c[1826]][0]){var _0xc851x4=_0xc851x2[_0x221c[1827]],_0xc851x5=_0xc851x2[_0x221c[1828]];_0xc851x4==_0xc851x5&&(_0xc851x4=_0xc851x2[_0x221c[1097]][_0x221c[1827]],_0xc851x5=_0xc851x2[_0x221c[772]][_0x221c[1828]]);for(var _0xc851x9=0,_0xc851xa=mxCellPath[_0x221c[385]](_0xc851x2[_0x221c[1842]][0]),_0xc851xa=this[_0x221c[1873]][_0xc851xa],_0xc851x12=_0xc851x2[_0x221c[1843]]?_0xc851x2[_0x221c[772]][_0x221c[246]]:_0xc851x2[_0x221c[1097]][_0x221c[246]],_0xc851x13=this[_0x221c[1759]][_0x221c[1179]],_0xc851x14=0;_0xc851x14<_0xc851x2[_0x221c[1842]][_0x221c[67]];_0xc851x14++){var _0xc851x15=_0xc851x2[_0x221c[1842]][_0xc851x14],_0xc851x16=this[_0x221c[1759]][_0x221c[1710]](_0xc851x15,!0),_0xc851x17=_0xc851x13[_0x221c[251]][_0x221c[1709]](_0xc851x15,!0),_0xc851x18=[],_0xc851x19=_0xc851x2[_0x221c[1843]];_0xc851x16!=_0xc851x12&&(_0xc851x19= !_0xc851x19);if(null!=_0xc851xa){var _0xc851x1a=_0xc851x19?2:0,_0xc851x1b=_0xc851x19?this[_0x221c[1877]][_0xc851x5]:this[_0x221c[1878]][_0xc851x4],_0xc851x1c=_0xc851xa[4*_0xc851x9+1+_0xc851x1a];_0xc851x19&&(_0xc851x1c= -_0xc851x1c);_0xc851x1b+=_0xc851x1c;_0xc851x1a=_0xc851xa[4*_0xc851x9+_0xc851x1a];_0xc851x17=_0xc851x13[_0x221c[251]][_0x221c[1709]](_0xc851x15,!0);this[_0x221c[1759]][_0x221c[1908]](_0xc851x17)&&_0xc851x13[_0x221c[251]][_0x221c[1197]](_0xc851x17)==_0xc851x16&&(_0xc851x1a=_0xc851x13[_0x221c[441]][_0x221c[248]](_0xc851x17),_0xc851x1a=null!=_0xc851x1a?_0xc851x1a[_0x221c[235]]:_0xc851x16[_0x221c[256]][_0x221c[235]]+_0xc851x2[_0x221c[1097]][_0x221c[117]]*_0xc851x17[_0x221c[256]][_0x221c[235]]);this[_0x221c[1870]]==mxConstants[_0x221c[1358]]||this[_0x221c[1870]]==mxConstants[_0x221c[1354]]?(_0xc851x18[_0x221c[207]]( new mxPoint(_0xc851x1a,_0xc851x1b)),this[_0x221c[675]]==mxHierarchicalEdgeStyle[_0x221c[1906]]&&_0xc851x18[_0x221c[207]]( new mxPoint(_0xc851x1a,_0xc851x1b+_0xc851x1c))):(_0xc851x18[_0x221c[207]]( new mxPoint(_0xc851x1b,_0xc851x1a)),this[_0x221c[675]]==mxHierarchicalEdgeStyle[_0x221c[1906]]&&_0xc851x18[_0x221c[207]]( new mxPoint(_0xc851x1b+_0xc851x1c,_0xc851x1a)))};_0xc851x1a=_0xc851x2[_0x221c[235]][_0x221c[67]]-1;_0xc851x1b=_0xc851x1c= -1;_0xc851x16=_0xc851x2[_0x221c[1827]]-1;_0xc851x19&&(_0xc851x1a=0,_0xc851x1c=_0xc851x2[_0x221c[235]][_0x221c[67]],_0xc851x1b=1,_0xc851x16=_0xc851x2[_0x221c[1828]]+1);for(;_0xc851x2[_0x221c[1827]]!=_0xc851x2[_0x221c[1828]]&&_0xc851x1a!=_0xc851x1c;_0xc851x1a+=_0xc851x1b){var _0xc851x17=_0xc851x2[_0x221c[235]][_0xc851x1a]+_0xc851x3,_0xc851x1d=(this[_0x221c[1877]][_0xc851x16]+this[_0x221c[1878]][_0xc851x16+1])/2,_0xc851x1e=(this[_0x221c[1877]][_0xc851x16-1]+this[_0x221c[1878]][_0xc851x16])/2;if(_0xc851x19){var _0xc851x1f=_0xc851x1d,_0xc851x1d=_0xc851x1e,_0xc851x1e=_0xc851x1f};this[_0x221c[1870]]==mxConstants[_0x221c[1358]]||this[_0x221c[1870]]==mxConstants[_0x221c[1354]]?(_0xc851x18[_0x221c[207]]( new mxPoint(_0xc851x17,_0xc851x1d)),_0xc851x18[_0x221c[207]]( new mxPoint(_0xc851x17,_0xc851x1e))):(_0xc851x18[_0x221c[207]]( new mxPoint(_0xc851x1d,_0xc851x17)),_0xc851x18[_0x221c[207]]( new mxPoint(_0xc851x1e,_0xc851x17)));this[_0x221c[1874]]=Math[_0x221c[160]](this[_0x221c[1874]],_0xc851x17);_0xc851x16+=_0xc851x1b};null!=_0xc851xa&&(_0xc851x1a=_0xc851x19?2:0,_0xc851x1b=_0xc851x19?this[_0x221c[1878]][_0xc851x4]:this[_0x221c[1877]][_0xc851x5],_0xc851x1c=_0xc851xa[4*_0xc851x9+3-_0xc851x1a],_0xc851x19&&(_0xc851x1c= -_0xc851x1c),_0xc851x1b-=_0xc851x1c,_0xc851x1a=_0xc851xa[4*_0xc851x9+2-_0xc851x1a],_0xc851x19=_0xc851x13[_0x221c[251]][_0x221c[1709]](_0xc851x15,!1),_0xc851x16=this[_0x221c[1759]][_0x221c[1710]](_0xc851x15,!1),this[_0x221c[1759]][_0x221c[1908]](_0xc851x19)&&_0xc851x13[_0x221c[251]][_0x221c[1197]](_0xc851x19)==_0xc851x16&&(_0xc851x1a=_0xc851x13[_0x221c[441]][_0x221c[248]](_0xc851x19),_0xc851x1a=null!=_0xc851x1a?_0xc851x1a[_0x221c[235]]:_0xc851x16[_0x221c[256]][_0x221c[235]]+_0xc851x2[_0x221c[772]][_0x221c[117]]*_0xc851x19[_0x221c[256]][_0x221c[235]]),this[_0x221c[1870]]==mxConstants[_0x221c[1358]]||this[_0x221c[1870]]==mxConstants[_0x221c[1354]]?(this[_0x221c[675]]==mxHierarchicalEdgeStyle[_0x221c[1906]]&&_0xc851x18[_0x221c[207]]( new mxPoint(_0xc851x1a,_0xc851x1b-_0xc851x1c)),_0xc851x18[_0x221c[207]]( new mxPoint(_0xc851x1a,_0xc851x1b))):(this[_0x221c[675]]==mxHierarchicalEdgeStyle[_0x221c[1906]]&&_0xc851x18[_0x221c[207]]( new mxPoint(_0xc851x1b-_0xc851x1c,_0xc851x1a)),_0xc851x18[_0x221c[207]]( new mxPoint(_0xc851x1b,_0xc851x1a))));_0xc851x2[_0x221c[1843]]&&this[_0x221c[1909]](_0xc851x2,_0xc851x15);this[_0x221c[1759]][_0x221c[1722]](_0xc851x15,_0xc851x18);_0xc851x3=0==_0xc851x3?this[_0x221c[1872]]:0<_0xc851x3?-_0xc851x3:-_0xc851x3+this[_0x221c[1872]];_0xc851x9++};_0xc851x2[_0x221c[1826]][0]=101207}};mxCoordinateAssignment[_0x221c[202]][_0x221c[1725]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[246]],_0xc851x4=_0xc851x2[_0x221c[235]][0]-_0xc851x2[_0x221c[117]]/2,_0xc851x5=_0xc851x2[_0x221c[236]][0]-_0xc851x2[_0x221c[119]]/2;this[_0x221c[1877]][_0xc851x2[_0x221c[1828]]]=Math[_0x221c[243]](this[_0x221c[1877]][_0xc851x2[_0x221c[1828]]],_0xc851x5);this[_0x221c[1878]][_0xc851x2[_0x221c[1828]]]=Math[_0x221c[160]](this[_0x221c[1878]][_0xc851x2[_0x221c[1828]]],_0xc851x5+_0xc851x2[_0x221c[119]]);this[_0x221c[1870]]==mxConstants[_0x221c[1358]]||this[_0x221c[1870]]==mxConstants[_0x221c[1354]]?this[_0x221c[1759]][_0x221c[1725]](_0xc851x3,_0xc851x4,_0xc851x5):this[_0x221c[1759]][_0x221c[1725]](_0xc851x3,_0xc851x5,_0xc851x4);this[_0x221c[1874]]=Math[_0x221c[160]](this[_0x221c[1874]],_0xc851x4+_0xc851x2[_0x221c[117]])};mxCoordinateAssignment[_0x221c[202]][_0x221c[1909]]=function(_0xc851x2,_0xc851x3){};function WeightedCellSorter(_0xc851x2,_0xc851x3){this[_0x221c[246]]=_0xc851x2;this[_0x221c[1782]]=_0xc851x3}WeightedCellSorter[_0x221c[202]][_0x221c[1782]]=0;WeightedCellSorter[_0x221c[202]][_0x221c[1783]]= !1;WeightedCellSorter[_0x221c[202]][_0x221c[1784]]= !1;WeightedCellSorter[_0x221c[202]][_0x221c[1785]]=null;WeightedCellSorter[_0x221c[202]][_0x221c[246]]=null;WeightedCellSorter[_0x221c[202]][_0x221c[469]]=function(_0xc851x2,_0xc851x3){return null!=_0xc851x2&&null!=_0xc851x3?_0xc851x3[_0x221c[1782]]>_0xc851x2[_0x221c[1782]]?-1:_0xc851x3[_0x221c[1782]]<_0xc851x2[_0x221c[1782]]?1:_0xc851x3[_0x221c[1783]]?-1:1:0};function mxHierarchicalLayout(_0xc851x2,_0xc851x3,_0xc851x4){mxGraphLayout[_0x221c[239]](this,_0xc851x2);this[_0x221c[1870]]=null!=_0xc851x3?_0xc851x3:mxConstants[_0x221c[1358]];this[_0x221c[1910]]=null!=_0xc851x4?_0xc851x4:!0}mxHierarchicalLayout[_0x221c[202]]= new mxGraphLayout;mxHierarchicalLayout[_0x221c[202]][_0x221c[196]]=mxHierarchicalLayout;mxHierarchicalLayout[_0x221c[202]][_0x221c[1845]]=null;mxHierarchicalLayout[_0x221c[202]][_0x221c[1735]]= !1;mxHierarchicalLayout[_0x221c[202]][_0x221c[1911]]= !1;mxHierarchicalLayout[_0x221c[202]][_0x221c[1912]]=0;mxHierarchicalLayout[_0x221c[202]][_0x221c[1868]]=30;mxHierarchicalLayout[_0x221c[202]][_0x221c[1869]]=100;mxHierarchicalLayout[_0x221c[202]][_0x221c[1913]]=60;mxHierarchicalLayout[_0x221c[202]][_0x221c[1872]]=10;mxHierarchicalLayout[_0x221c[202]][_0x221c[1870]]=mxConstants[_0x221c[1358]];mxHierarchicalLayout[_0x221c[202]][_0x221c[1882]]= !0;mxHierarchicalLayout[_0x221c[202]][_0x221c[1844]]= !0;mxHierarchicalLayout[_0x221c[202]][_0x221c[1787]]= !0;mxHierarchicalLayout[_0x221c[202]][_0x221c[1914]]= !0;mxHierarchicalLayout[_0x221c[202]][_0x221c[251]]=null;mxHierarchicalLayout[_0x221c[202]][_0x221c[1915]]=null;mxHierarchicalLayout[_0x221c[202]][_0x221c[502]]=function(){return this[_0x221c[251]]};mxHierarchicalLayout[_0x221c[202]][_0x221c[350]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1101]]=_0xc851x2;var _0xc851x4=this[_0x221c[1179]][_0x221c[251]];this[_0x221c[1915]]={};if(!(null==_0xc851x3&&null==_0xc851x2)){if(null!=_0xc851x3&&null!=_0xc851x2){for(var _0xc851x5=[],_0xc851x9=0;_0xc851x9<_0xc851x3[_0x221c[67]];_0xc851x9++){_0xc851x4[_0x221c[1720]](_0xc851x2,_0xc851x3[_0xc851x9])&&_0xc851x5[_0x221c[207]](_0xc851x3[_0xc851x9])};this[_0x221c[1845]]=_0xc851x5}else {this[_0x221c[1845]]=_0xc851x3};_0xc851x4[_0x221c[473]]();try{this[_0x221c[1916]](_0xc851x2),this[_0x221c[1735]]&&!this[_0x221c[1179]][_0x221c[1742]](_0xc851x2)&&this[_0x221c[1179]][_0x221c[1917]]([_0xc851x2],this[_0x221c[1912]],this[_0x221c[1911]])}finally{_0xc851x4[_0x221c[476]]()}}};mxHierarchicalLayout[_0x221c[202]][_0x221c[1918]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=[];if(null!=_0xc851x2&&null!=_0xc851x3){var _0xc851x5=this[_0x221c[1179]][_0x221c[251]],_0xc851x9=null,_0xc851xa=-1E5,_0xc851x12;for(_0xc851x12 in _0xc851x3){var _0xc851x13=_0xc851x3[_0xc851x12];if(_0xc851x5[_0x221c[1193]](_0xc851x13)&&this[_0x221c[1179]][_0x221c[1714]](_0xc851x13)){for(var _0xc851x14=this[_0x221c[264]](_0xc851x13),_0xc851x15=0,_0xc851x16=0,_0xc851x17=0;_0xc851x17<_0xc851x14[_0x221c[67]];_0xc851x17++){this[_0x221c[1710]](_0xc851x14[_0xc851x17],!0)==_0xc851x13?_0xc851x15++:_0xc851x16++};0==_0xc851x16&&0<_0xc851x15&&_0xc851x4[_0x221c[207]](_0xc851x13);_0xc851x14=_0xc851x15-_0xc851x16;_0xc851x14>_0xc851xa&&(_0xc851xa=_0xc851x14,_0xc851x9=_0xc851x13)}};0==_0xc851x4[_0x221c[67]]&&null!=_0xc851x9&&_0xc851x4[_0x221c[207]](_0xc851x9)};return _0xc851x4};mxHierarchicalLayout[_0x221c[202]][_0x221c[264]]=function(_0xc851x2){var _0xc851x3=mxCellPath[_0x221c[385]](_0xc851x2);if(null!=this[_0x221c[1915]][_0xc851x3]){return this[_0x221c[1915]][_0xc851x3]};for(var _0xc851x4=this[_0x221c[1179]][_0x221c[251]],_0xc851x5=[],_0xc851x9=this[_0x221c[1179]][_0x221c[1742]](_0xc851x2),_0xc851xa=_0xc851x4[_0x221c[262]](_0xc851x2),_0xc851x12=0;_0xc851x12<_0xc851xa;_0xc851x12++){var _0xc851x13=_0xc851x4[_0x221c[263]](_0xc851x2,_0xc851x12);if(this[_0x221c[1908]](_0xc851x13)){_0xc851x5=_0xc851x5[_0x221c[1919]](_0xc851x4[_0x221c[264]](_0xc851x13,!0,!0))}else {if(_0xc851x9||!this[_0x221c[1179]][_0x221c[1714]](_0xc851x13)){_0xc851x5=_0xc851x5[_0x221c[1919]](_0xc851x4[_0x221c[264]](_0xc851x13,!0,!0))}}};_0xc851x5=_0xc851x5[_0x221c[1919]](_0xc851x4[_0x221c[264]](_0xc851x2,!0,!0));_0xc851x4=[];for(_0xc851x12=0;_0xc851x12<_0xc851x5[_0x221c[67]];_0xc851x12++){_0xc851x9=this[_0x221c[1710]](_0xc851x5[_0xc851x12],!0),_0xc851xa=this[_0x221c[1710]](_0xc851x5[_0xc851x12],!1),(_0xc851x9==_0xc851xa||_0xc851x9!=_0xc851xa&&(_0xc851xa==_0xc851x2&&(null==this[_0x221c[1101]]||this[_0x221c[1179]][_0x221c[1920]](_0xc851x9,this[_0x221c[1101]],this[_0x221c[1914]]))||_0xc851x9==_0xc851x2&&(null==this[_0x221c[1101]]||this[_0x221c[1179]][_0x221c[1920]](_0xc851xa,this[_0x221c[1101]],this[_0x221c[1914]]))))&&_0xc851x4[_0x221c[207]](_0xc851x5[_0xc851x12])};return this[_0x221c[1915]][_0xc851x3]=_0xc851x4};mxHierarchicalLayout[_0x221c[202]][_0x221c[1710]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x2),_0xc851x4=null!=_0xc851x4?_0xc851x4[_0x221c[1710]](_0xc851x3):this[_0x221c[1179]][_0x221c[441]][_0x221c[1710]](_0xc851x2,_0xc851x3);this[_0x221c[1908]](_0xc851x4)&&(_0xc851x4=this[_0x221c[1179]][_0x221c[251]][_0x221c[1197]](_0xc851x4));return _0xc851x4};mxHierarchicalLayout[_0x221c[202]][_0x221c[1916]]=function(_0xc851x2){var _0xc851x3=[],_0xc851x4=[];if(null==this[_0x221c[1845]]&&null!=_0xc851x2){var _0xc851x5={};this[_0x221c[1921]](_0xc851x2,_0xc851x5);this[_0x221c[1845]]=[];var _0xc851x9=!0,_0xc851xa;for(_0xc851xa in _0xc851x5){if(null!=_0xc851x5[_0xc851xa]){_0xc851x9= !1;break}};for(;!_0xc851x9;){for(var _0xc851x12=this[_0x221c[1918]](_0xc851x2,_0xc851x5),_0xc851x9=0;_0xc851x9<_0xc851x12[_0x221c[67]];_0xc851x9++){var _0xc851x13=[];_0xc851x3[_0x221c[207]](_0xc851x13);this[_0x221c[1706]](_0xc851x12[_0xc851x9],!0,null,_0xc851x4,_0xc851x13,_0xc851x3,_0xc851x5)};for(_0xc851x9=0;_0xc851x9<_0xc851x12[_0x221c[67]];_0xc851x9++){this[_0x221c[1845]][_0x221c[207]](_0xc851x12[_0xc851x9])};_0xc851x9= !0;for(_0xc851xa in _0xc851x5){if(null!=_0xc851x5[_0xc851xa]){_0xc851x9= !1;break}}}}else {for(_0xc851x9=0;_0xc851x9<roots[_0x221c[67]];_0xc851x9++){_0xc851x13=[],_0xc851x3[_0x221c[207]](_0xc851x13),traverse(roots[_0x221c[203]](_0xc851x9),!0,null,_0xc851x4,_0xc851x13,_0xc851x3,null)}};for(_0xc851x9=_0xc851x4=0;_0xc851x9<_0xc851x3[_0x221c[67]];_0xc851x9++){_0xc851x13=_0xc851x3[_0xc851x9];_0xc851x5=[];for(_0xc851xa in _0xc851x13){_0xc851x5[_0x221c[207]](_0xc851x13[_0xc851xa])};this[_0x221c[251]]= new mxGraphHierarchyModel(this,_0xc851x5,this[_0x221c[1845]],_0xc851x2,this[_0x221c[1844]]);this[_0x221c[1922]](_0xc851x2);this[_0x221c[1923]]();this[_0x221c[1924]](_0xc851x2);_0xc851x4=this[_0x221c[1925]](_0xc851x4,_0xc851x2)}};mxHierarchicalLayout[_0x221c[202]][_0x221c[1921]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[251]];_0xc851x4[_0x221c[1193]](_0xc851x2)&&(_0xc851x2!=this[_0x221c[1101]]&&this[_0x221c[1179]][_0x221c[1714]](_0xc851x2))&&(_0xc851x3[mxCellPath[_0x221c[385]](_0xc851x2)]=_0xc851x2);if(this[_0x221c[1914]]||_0xc851x2==this[_0x221c[1101]]&&this[_0x221c[1179]][_0x221c[1714]](_0xc851x2)){for(var _0xc851x5=_0xc851x4[_0x221c[262]](_0xc851x2),_0xc851x9=0;_0xc851x9<_0xc851x5;_0xc851x9++){var _0xc851xa=_0xc851x4[_0x221c[263]](_0xc851x2,_0xc851x9);this[_0x221c[1908]](_0xc851xa)||this[_0x221c[1921]](_0xc851xa,_0xc851x3)}}};mxHierarchicalLayout[_0x221c[202]][_0x221c[1908]]=function(_0xc851x2){return _0xc851x2[_0x221c[256]][_0x221c[1500]]?!0:!1};mxHierarchicalLayout[_0x221c[202]][_0x221c[1781]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=null!=_0xc851x4?_0xc851x4:!1;for(var _0xc851x5=this[_0x221c[264]](_0xc851x2),_0xc851x9=[],_0xc851xa=0;_0xc851xa<_0xc851x5[_0x221c[67]];_0xc851xa++){var _0xc851x12=this[_0x221c[1710]](_0xc851x5[_0xc851xa],!0),_0xc851x13=this[_0x221c[1710]](_0xc851x5[_0xc851xa],!1);(_0xc851x12==_0xc851x2&&_0xc851x13==_0xc851x3||!_0xc851x4&&_0xc851x12==_0xc851x3&&_0xc851x13==_0xc851x2)&&_0xc851x9[_0x221c[207]](_0xc851x5[_0xc851xa])};return _0xc851x9};mxHierarchicalLayout[_0x221c[202]][_0x221c[1706]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12){if(null!=_0xc851x2&&null!=_0xc851x5){var _0xc851x13=mxCellPath[_0x221c[385]](_0xc851x2);if(null==_0xc851x5[_0xc851x13]&&(null==_0xc851x12||null!=_0xc851x12[_0xc851x13])){null==_0xc851x9[_0xc851x13]&&(_0xc851x9[_0xc851x13]=_0xc851x2);null==_0xc851x5[_0xc851x13]&&(_0xc851x5[_0xc851x13]=_0xc851x2);delete _0xc851x12[_0xc851x13];var _0xc851x14=this[_0x221c[264]](_0xc851x2);for(_0xc851x4=0;_0xc851x4<_0xc851x14[_0x221c[67]];_0xc851x4++){if(_0xc851x13=this[_0x221c[1710]](_0xc851x14[_0xc851x4],!0)==_0xc851x2,!_0xc851x3||_0xc851x13){_0xc851x13=this[_0x221c[1710]](_0xc851x14[_0xc851x4],!_0xc851x13),_0xc851x9=this[_0x221c[1706]](_0xc851x13,_0xc851x3,_0xc851x14[_0xc851x4],_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12)}}}else {if(null==_0xc851x9[_0xc851x13]){for(_0xc851x4=0;_0xc851x4<_0xc851xa[_0x221c[67]];_0xc851x4++){if(_0xc851x2=_0xc851xa[_0xc851x4],null!=_0xc851x2[_0xc851x13]){for(_0xc851x14 in _0xc851x9){_0xc851x2[_0xc851x14]=_0xc851x9[_0xc851x14]};_0xc851xa[_0x221c[1242]]();return _0xc851x2}}}}};return _0xc851x9};mxHierarchicalLayout[_0x221c[202]][_0x221c[1922]]=function(_0xc851x2){( new mxMinimumCycleRemover(this))[_0x221c[350]](_0xc851x2)};mxHierarchicalLayout[_0x221c[202]][_0x221c[1923]]=function(){this[_0x221c[251]][_0x221c[1852]]();this[_0x221c[251]][_0x221c[1854]]()};mxHierarchicalLayout[_0x221c[202]][_0x221c[1924]]=function(_0xc851x2){( new mxMedianHybridCrossingReduction(this))[_0x221c[350]](_0xc851x2)};mxHierarchicalLayout[_0x221c[202]][_0x221c[1925]]=function(_0xc851x2,_0xc851x3){var _0xc851x4= new mxCoordinateAssignment(this,this[_0x221c[1868]],this[_0x221c[1869]],this[_0x221c[1870]],_0xc851x2,this[_0x221c[1872]]);_0xc851x4[_0x221c[1882]]=this[_0x221c[1882]];_0xc851x4[_0x221c[350]](_0xc851x3);return _0xc851x4[_0x221c[1874]]+this[_0x221c[1913]]};function mxGraphModel(_0xc851x2){this[_0x221c[1926]]=this[_0x221c[1096]]();null!=_0xc851x2?this[_0x221c[1927]](_0xc851x2):this[_0x221c[200]]()}mxGraphModel[_0x221c[202]]= new mxEventSource;mxGraphModel[_0x221c[202]][_0x221c[196]]=mxGraphModel;mxGraphModel[_0x221c[202]][_0x221c[813]]=null;mxGraphModel[_0x221c[202]][_0x221c[895]]=null;mxGraphModel[_0x221c[202]][_0x221c[1928]]= !0;mxGraphModel[_0x221c[202]][_0x221c[1929]]= !0;mxGraphModel[_0x221c[202]][_0x221c[1089]]=_0x221c[110];mxGraphModel[_0x221c[202]][_0x221c[1930]]=_0x221c[110];mxGraphModel[_0x221c[202]][_0x221c[1931]]=0;mxGraphModel[_0x221c[202]][_0x221c[1926]]=null;mxGraphModel[_0x221c[202]][_0x221c[1932]]=0;mxGraphModel[_0x221c[202]][_0x221c[1933]]= !1;mxGraphModel[_0x221c[202]][_0x221c[200]]=function(){this[_0x221c[1927]](this[_0x221c[1934]]())};mxGraphModel[_0x221c[202]][_0x221c[1935]]=function(){return this[_0x221c[1929]]};mxGraphModel[_0x221c[202]][_0x221c[1936]]=function(_0xc851x2){this[_0x221c[1929]]=_0xc851x2};mxGraphModel[_0x221c[202]][_0x221c[1934]]=function(){var _0xc851x2= new mxCell;_0xc851x2[_0x221c[1937]]( new mxCell);return _0xc851x2};mxGraphModel[_0x221c[202]][_0x221c[736]]=function(_0xc851x2){return null!=this[_0x221c[895]]?this[_0x221c[895]][_0xc851x2]:null};mxGraphModel[_0x221c[202]][_0x221c[1938]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=null;if(null!=_0xc851x2){for(var _0xc851x4=[],_0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){_0xc851x3(_0xc851x2[_0xc851x5])&&_0xc851x4[_0x221c[207]](_0xc851x2[_0xc851x5])}};return _0xc851x4};mxGraphModel[_0x221c[202]][_0x221c[1939]]=function(_0xc851x2){return this[_0x221c[1921]](null,_0xc851x2)};mxGraphModel[_0x221c[202]][_0x221c[1921]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=[];_0xc851x3=_0xc851x3||this[_0x221c[501]]();(null==_0xc851x2||_0xc851x2(_0xc851x3))&&_0xc851x4[_0x221c[207]](_0xc851x3);for(var _0xc851x5=this[_0x221c[262]](_0xc851x3),_0xc851x9=0;_0xc851x9<_0xc851x5;_0xc851x9++){var _0xc851xa=this[_0x221c[263]](_0xc851x3,_0xc851x9),_0xc851x4=_0xc851x4[_0x221c[1919]](this[_0x221c[1921]](_0xc851x2,_0xc851xa))};return _0xc851x4};mxGraphModel[_0x221c[202]][_0x221c[501]]=function(_0xc851x2){var _0xc851x3=_0xc851x2||this[_0x221c[813]];if(null!=_0xc851x2){for(;null!=_0xc851x2;){_0xc851x3=_0xc851x2,_0xc851x2=this[_0x221c[1197]](_0xc851x2)}};return _0xc851x3};mxGraphModel[_0x221c[202]][_0x221c[1927]]=function(_0xc851x2){this[_0x221c[350]]( new mxRootChange(this,_0xc851x2));return _0xc851x2};mxGraphModel[_0x221c[202]][_0x221c[1940]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[813]];this[_0x221c[813]]=_0xc851x2;this[_0x221c[1931]]=0;this[_0x221c[895]]=null;this[_0x221c[1941]](_0xc851x2);return _0xc851x3};mxGraphModel[_0x221c[202]][_0x221c[1942]]=function(_0xc851x2){return null!=_0xc851x2&&this[_0x221c[813]]==_0xc851x2};mxGraphModel[_0x221c[202]][_0x221c[1740]]=function(_0xc851x2){return this[_0x221c[1942]](this[_0x221c[1197]](_0xc851x2))};mxGraphModel[_0x221c[202]][_0x221c[1720]]=function(_0xc851x2,_0xc851x3){for(;null!=_0xc851x3&&_0xc851x3!=_0xc851x2;){_0xc851x3=this[_0x221c[1197]](_0xc851x3)};return _0xc851x3==_0xc851x2};mxGraphModel[_0x221c[202]][_0x221c[442]]=function(_0xc851x2){return this[_0x221c[1720]](this[_0x221c[813]],_0xc851x2)};mxGraphModel[_0x221c[202]][_0x221c[1197]]=function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[1197]]():null};mxGraphModel[_0x221c[202]][_0x221c[99]]=function(_0xc851x2,_0xc851x3,_0xc851x4){if(_0xc851x3!=_0xc851x2&&null!=_0xc851x2&&null!=_0xc851x3){null==_0xc851x4&&(_0xc851x4=this[_0x221c[262]](_0xc851x2));var _0xc851x5=_0xc851x2!=this[_0x221c[1197]](_0xc851x3);this[_0x221c[350]]( new mxChildChange(this,_0xc851x2,_0xc851x3,_0xc851x4));this[_0x221c[1928]]&&_0xc851x5&&this[_0x221c[1943]](_0xc851x3)};return _0xc851x3};mxGraphModel[_0x221c[202]][_0x221c[1941]]=function(_0xc851x2){if(null!=_0xc851x2){null==_0xc851x2[_0x221c[1103]]()&&this[_0x221c[1929]]&&_0xc851x2[_0x221c[1945]](this[_0x221c[1944]](_0xc851x2));if(null!=_0xc851x2[_0x221c[1103]]()){var _0xc851x3=this[_0x221c[736]](_0xc851x2[_0x221c[1103]]());if(_0xc851x3!=_0xc851x2){for(;null!=_0xc851x3;){_0xc851x2[_0x221c[1945]](this[_0x221c[1944]](_0xc851x2)),_0xc851x3=this[_0x221c[736]](_0xc851x2[_0x221c[1103]]())};null==this[_0x221c[895]]&&(this[_0x221c[895]]={});this[_0x221c[895]][_0xc851x2[_0x221c[1103]]()]=_0xc851x2}};mxUtils[_0x221c[1946]](_0xc851x2[_0x221c[1103]]())&&(this[_0x221c[1931]]=Math[_0x221c[160]](this[_0x221c[1931]],_0xc851x2[_0x221c[1103]]()));for(var _0xc851x3=this[_0x221c[262]](_0xc851x2),_0xc851x4=0;_0xc851x4<_0xc851x3;_0xc851x4++){this[_0x221c[1941]](this[_0x221c[263]](_0xc851x2,_0xc851x4))}}};mxGraphModel[_0x221c[202]][_0x221c[1944]]=function(_0xc851x2){_0xc851x2=this[_0x221c[1931]];this[_0x221c[1931]]++;return this[_0x221c[1089]]+_0xc851x2+this[_0x221c[1930]]};mxGraphModel[_0x221c[202]][_0x221c[1943]]=function(_0xc851x2,_0xc851x3){_0xc851x3=_0xc851x3||this[_0x221c[501]](_0xc851x2);for(var _0xc851x4=this[_0x221c[262]](_0xc851x2),_0xc851x5=0;_0xc851x5<_0xc851x4;_0xc851x5++){var _0xc851x9=this[_0x221c[263]](_0xc851x2,_0xc851x5);this[_0x221c[1943]](_0xc851x9,_0xc851x3)};_0xc851x9=this[_0x221c[1707]](_0xc851x2);_0xc851x4=[];for(_0xc851x5=0;_0xc851x5<_0xc851x9;_0xc851x5++){_0xc851x4[_0x221c[207]](this[_0x221c[1708]](_0xc851x2,_0xc851x5))};for(_0xc851x5=0;_0xc851x5<_0xc851x4[_0x221c[67]];_0xc851x5++){_0xc851x9=_0xc851x4[_0xc851x5],this[_0x221c[1720]](_0xc851x3,_0xc851x9)&&this[_0x221c[1947]](_0xc851x9,_0xc851x3)}};mxGraphModel[_0x221c[202]][_0x221c[1947]]=function(_0xc851x2,_0xc851x3){for(var _0xc851x4=this[_0x221c[1709]](_0xc851x2,!0),_0xc851x5=this[_0x221c[1709]](_0xc851x2,!1),_0xc851x9=null;null!=_0xc851x4&&!this[_0x221c[250]](_0xc851x4)&&null!=_0xc851x4[_0x221c[256]]&&_0xc851x4[_0x221c[256]][_0x221c[1500]];){_0xc851x4=this[_0x221c[1197]](_0xc851x4)};for(;null!=_0xc851x5&&!this[_0x221c[250]](_0xc851x5)&&null!=_0xc851x5[_0x221c[256]]&&_0xc851x5[_0x221c[256]][_0x221c[1500]];){_0xc851x5=this[_0x221c[1197]](_0xc851x5)};if(this[_0x221c[1720]](_0xc851x3,_0xc851x4)&&this[_0x221c[1720]](_0xc851x3,_0xc851x5)&&(_0xc851x9=_0xc851x4==_0xc851x5?this[_0x221c[1197]](_0xc851x4):this[_0x221c[1948]](_0xc851x4,_0xc851x5),null!=_0xc851x9&&(this[_0x221c[1197]](_0xc851x9)!=this[_0x221c[813]]||this[_0x221c[1720]](_0xc851x9,_0xc851x2))&&this[_0x221c[1197]](_0xc851x2)!=_0xc851x9)){_0xc851x4=this[_0x221c[1721]](_0xc851x2);if(null!=_0xc851x4){var _0xc851xa=this[_0x221c[1949]](this[_0x221c[1197]](_0xc851x2)),_0xc851x12=this[_0x221c[1949]](_0xc851x9),_0xc851x5=_0xc851x12[_0x221c[235]]-_0xc851xa[_0x221c[235]],_0xc851xa=_0xc851x12[_0x221c[236]]-_0xc851xa[_0x221c[236]],_0xc851x4=_0xc851x4[_0x221c[238]]();_0xc851x4[_0x221c[513]](-_0xc851x5,-_0xc851xa);this[_0x221c[1724]](_0xc851x2,_0xc851x4)};this[_0x221c[99]](_0xc851x9,_0xc851x2,this[_0x221c[262]](_0xc851x9))}};mxGraphModel[_0x221c[202]][_0x221c[1949]]=function(_0xc851x2){var _0xc851x3=null;null!=_0xc851x2?(_0xc851x3=this[_0x221c[1949]](this[_0x221c[1197]](_0xc851x2)),this[_0x221c[250]](_0xc851x2)||(_0xc851x2=this[_0x221c[1721]](_0xc851x2),null!=_0xc851x2&&(_0xc851x3[_0x221c[235]]+=_0xc851x2[_0x221c[235]],_0xc851x3[_0x221c[236]]+=_0xc851x2[_0x221c[236]]))):_0xc851x3= new mxPoint;return _0xc851x3};mxGraphModel[_0x221c[202]][_0x221c[1948]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2&&null!=_0xc851x3){var _0xc851x4=mxCellPath[_0x221c[385]](_0xc851x3);if(null!=_0xc851x4&&0<_0xc851x4[_0x221c[67]]){var _0xc851x5=_0xc851x2,_0xc851x9=mxCellPath[_0x221c[385]](_0xc851x5);if(_0xc851x4[_0x221c[67]]<_0xc851x9[_0x221c[67]]){var _0xc851x5=_0xc851x3,_0xc851xa=_0xc851x9,_0xc851x9=_0xc851x4,_0xc851x4=_0xc851xa};for(;null!=_0xc851x5;){_0xc851xa=this[_0x221c[1197]](_0xc851x5);if(0==_0xc851x4[_0x221c[2]](_0xc851x9+mxCellPath[_0x221c[1950]])&&null!=_0xc851xa){return _0xc851x5};_0xc851x9=mxCellPath[_0x221c[1951]](_0xc851x9);_0xc851x5=_0xc851xa}}};return null};mxGraphModel[_0x221c[202]][_0x221c[205]]=function(_0xc851x2){_0xc851x2==this[_0x221c[813]]?this[_0x221c[1927]](null):null!=this[_0x221c[1197]](_0xc851x2)&&this[_0x221c[350]]( new mxChildChange(this,null,_0xc851x2));return _0xc851x2};mxGraphModel[_0x221c[202]][_0x221c[1102]]=function(_0xc851x2){if(null!=_0xc851x2&&null!=this[_0x221c[895]]){for(var _0xc851x3=this[_0x221c[262]](_0xc851x2)-1;0<=_0xc851x3;_0xc851x3--){this[_0x221c[1102]](this[_0x221c[263]](_0xc851x2,_0xc851x3))};null!=this[_0x221c[895]]&&null!=_0xc851x2[_0x221c[1103]]()&& delete this[_0x221c[895]][_0xc851x2[_0x221c[1103]]()]}};mxGraphModel[_0x221c[202]][_0x221c[1952]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1197]](_0xc851x2);null!=_0xc851x3?(_0xc851x3!=_0xc851x5||_0xc851x5[_0x221c[1738]](_0xc851x2)!=_0xc851x4)&&_0xc851x3[_0x221c[1937]](_0xc851x2,_0xc851x4):null!=_0xc851x5&&(_0xc851x4=_0xc851x5[_0x221c[1738]](_0xc851x2),_0xc851x5[_0x221c[205]](_0xc851x4));!this[_0x221c[442]](_0xc851x5)&&null!=_0xc851x3?this[_0x221c[1941]](_0xc851x2):null==_0xc851x3&&this[_0x221c[1102]](_0xc851x2);return _0xc851x5};mxGraphModel[_0x221c[202]][_0x221c[262]]=function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[262]]():0};mxGraphModel[_0x221c[202]][_0x221c[263]]=function(_0xc851x2,_0xc851x3){return null!=_0xc851x2?_0xc851x2[_0x221c[263]](_0xc851x3):null};mxGraphModel[_0x221c[202]][_0x221c[1953]]=function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[1954]]:null};mxGraphModel[_0x221c[202]][_0x221c[1728]]=function(_0xc851x2){return this[_0x221c[1955]](_0xc851x2,!0,!1)};mxGraphModel[_0x221c[202]][_0x221c[1956]]=function(_0xc851x2){return this[_0x221c[1955]](_0xc851x2,!1,!0)};mxGraphModel[_0x221c[202]][_0x221c[1955]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=null!=_0xc851x3?_0xc851x3:!1;_0xc851x4=null!=_0xc851x4?_0xc851x4:!1;for(var _0xc851x5=this[_0x221c[262]](_0xc851x2),_0xc851x9=[],_0xc851xa=0;_0xc851xa<_0xc851x5;_0xc851xa++){var _0xc851x12=this[_0x221c[263]](_0xc851x2,_0xc851xa);(!_0xc851x4&&!_0xc851x3||_0xc851x4&&this[_0x221c[250]](_0xc851x12)||_0xc851x3&&this[_0x221c[1193]](_0xc851x12))&&_0xc851x9[_0x221c[207]](_0xc851x12)};return _0xc851x9};mxGraphModel[_0x221c[202]][_0x221c[1709]]=function(_0xc851x2,_0xc851x3){return null!=_0xc851x2?_0xc851x2[_0x221c[1709]](_0xc851x3):null};mxGraphModel[_0x221c[202]][_0x221c[1957]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=_0xc851x3!=this[_0x221c[1709]](_0xc851x2,_0xc851x4);this[_0x221c[350]]( new mxTerminalChange(this,_0xc851x2,_0xc851x3,_0xc851x4));this[_0x221c[1928]]&&_0xc851x5&&this[_0x221c[1947]](_0xc851x2,this[_0x221c[501]]());return _0xc851x3};mxGraphModel[_0x221c[202]][_0x221c[1958]]=function(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[473]]();try{this[_0x221c[1957]](_0xc851x2,_0xc851x3,!0),this[_0x221c[1957]](_0xc851x2,_0xc851x4,!1)}finally{this[_0x221c[476]]()}};mxGraphModel[_0x221c[202]][_0x221c[1959]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1709]](_0xc851x2,_0xc851x4);null!=_0xc851x3?_0xc851x3[_0x221c[1960]](_0xc851x2,_0xc851x4):null!=_0xc851x5&&_0xc851x5[_0x221c[1961]](_0xc851x2,_0xc851x4);return _0xc851x5};mxGraphModel[_0x221c[202]][_0x221c[1707]]=function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[1707]]():0};mxGraphModel[_0x221c[202]][_0x221c[1708]]=function(_0xc851x2,_0xc851x3){return null!=_0xc851x2?_0xc851x2[_0x221c[1708]](_0xc851x3):null};mxGraphModel[_0x221c[202]][_0x221c[1962]]=function(_0xc851x2,_0xc851x3,_0xc851x4){for(var _0xc851x5=0,_0xc851x9=this[_0x221c[1707]](_0xc851x2),_0xc851xa=0;_0xc851xa<_0xc851x9;_0xc851xa++){var _0xc851x12=this[_0x221c[1708]](_0xc851x2,_0xc851xa);_0xc851x12!=_0xc851x4&&this[_0x221c[1709]](_0xc851x12,_0xc851x3)==_0xc851x2&&_0xc851x5++};return _0xc851x5};mxGraphModel[_0x221c[202]][_0x221c[1756]]=function(_0xc851x2){return this[_0x221c[264]](_0xc851x2,!0,!0,!1)};mxGraphModel[_0x221c[202]][_0x221c[1867]]=function(_0xc851x2){return this[_0x221c[264]](_0xc851x2,!0,!1,!1)};mxGraphModel[_0x221c[202]][_0x221c[1963]]=function(_0xc851x2){return this[_0x221c[264]](_0xc851x2,!1,!0,!1)};mxGraphModel[_0x221c[202]][_0x221c[264]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x3=null!=_0xc851x3?_0xc851x3:!0;_0xc851x4=null!=_0xc851x4?_0xc851x4:!0;_0xc851x5=null!=_0xc851x5?_0xc851x5:!0;for(var _0xc851x9=this[_0x221c[1707]](_0xc851x2),_0xc851xa=[],_0xc851x12=0;_0xc851x12<_0xc851x9;_0xc851x12++){var _0xc851x13=this[_0x221c[1708]](_0xc851x2,_0xc851x12),_0xc851x14=this[_0x221c[1709]](_0xc851x13,!0),_0xc851x15=this[_0x221c[1709]](_0xc851x13,!1);(_0xc851x5&&_0xc851x14==_0xc851x15||_0xc851x14!=_0xc851x15&&(_0xc851x3&&_0xc851x15==_0xc851x2||_0xc851x4&&_0xc851x14==_0xc851x2))&&_0xc851xa[_0x221c[207]](_0xc851x13)};return _0xc851xa};mxGraphModel[_0x221c[202]][_0x221c[1781]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=null!=_0xc851x4?_0xc851x4:!1;var _0xc851x5=this[_0x221c[1707]](_0xc851x2),_0xc851x9=this[_0x221c[1707]](_0xc851x3),_0xc851xa=_0xc851x2,_0xc851x12=_0xc851x5;_0xc851x9<_0xc851x5&&(_0xc851x12=_0xc851x9,_0xc851xa=_0xc851x3);_0xc851x5=[];for(_0xc851x9=0;_0xc851x9<_0xc851x12;_0xc851x9++){var _0xc851x13=this[_0x221c[1708]](_0xc851xa,_0xc851x9),_0xc851x14=this[_0x221c[1709]](_0xc851x13,!0),_0xc851x15=this[_0x221c[1709]](_0xc851x13,!1),_0xc851x16=_0xc851x15==_0xc851x2&&_0xc851x14==_0xc851x3;(_0xc851x14==_0xc851x2&&_0xc851x15==_0xc851x3||!_0xc851x4&&_0xc851x16)&&_0xc851x5[_0x221c[207]](_0xc851x13)};return _0xc851x5};mxGraphModel[_0x221c[202]][_0x221c[1808]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x4=null!=_0xc851x4?_0xc851x4:!0;_0xc851x5=null!=_0xc851x5?_0xc851x5:!0;var _0xc851x9=[];if(null!=_0xc851x2){for(var _0xc851xa=0;_0xc851xa<_0xc851x2[_0x221c[67]];_0xc851xa++){var _0xc851x12=this[_0x221c[1709]](_0xc851x2[_0xc851xa],!0),_0xc851x13=this[_0x221c[1709]](_0xc851x2[_0xc851xa],!1);_0xc851x12==_0xc851x3&&null!=_0xc851x13&&_0xc851x13!=_0xc851x3&&_0xc851x5?_0xc851x9[_0x221c[207]](_0xc851x13):_0xc851x13==_0xc851x3&&(null!=_0xc851x12&&_0xc851x12!=_0xc851x3&&_0xc851x4)&&_0xc851x9[_0x221c[207]](_0xc851x12)}};return _0xc851x9};mxGraphModel[_0x221c[202]][_0x221c[1964]]=function(_0xc851x2){for(var _0xc851x3=[],_0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){for(var _0xc851x5=_0xc851x2[_0xc851x4],_0xc851x9=!0,_0xc851xa=this[_0x221c[1197]](_0xc851x5);null!=_0xc851xa;){if(0<=mxUtils[_0x221c[2]](_0xc851x2,_0xc851xa)){_0xc851x9= !1;break};_0xc851xa=this[_0x221c[1197]](_0xc851xa)};_0xc851x9&&_0xc851x3[_0x221c[207]](_0xc851x5)};return _0xc851x3};mxGraphModel[_0x221c[202]][_0x221c[1193]]=function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[1193]]():!1};mxGraphModel[_0x221c[202]][_0x221c[250]]=function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[250]]():!1};mxGraphModel[_0x221c[202]][_0x221c[1965]]=function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[1965]]():!1};mxGraphModel[_0x221c[202]][_0x221c[433]]=function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[433]]():null};mxGraphModel[_0x221c[202]][_0x221c[1966]]=function(_0xc851x2,_0xc851x3){this[_0x221c[350]]( new mxValueChange(this,_0xc851x2,_0xc851x3));return _0xc851x3};mxGraphModel[_0x221c[202]][_0x221c[1967]]=function(_0xc851x2,_0xc851x3){return _0xc851x2[_0x221c[1968]](_0xc851x3)};mxGraphModel[_0x221c[202]][_0x221c[1721]]=function(_0xc851x2,_0xc851x3){return null!=_0xc851x2?_0xc851x2[_0x221c[1721]]():null};mxGraphModel[_0x221c[202]][_0x221c[1724]]=function(_0xc851x2,_0xc851x3){_0xc851x3!=this[_0x221c[1721]](_0xc851x2)&&this[_0x221c[350]]( new mxGeometryChange(this,_0xc851x2,_0xc851x3));return _0xc851x3};mxGraphModel[_0x221c[202]][_0x221c[1969]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1721]](_0xc851x2);_0xc851x2[_0x221c[1724]](_0xc851x3);return _0xc851x4};mxGraphModel[_0x221c[202]][_0x221c[474]]=function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[474]]():null};mxGraphModel[_0x221c[202]][_0x221c[475]]=function(_0xc851x2,_0xc851x3){_0xc851x3!=this[_0x221c[474]](_0xc851x2)&&this[_0x221c[350]]( new mxStyleChange(this,_0xc851x2,_0xc851x3));return _0xc851x3};mxGraphModel[_0x221c[202]][_0x221c[1970]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[474]](_0xc851x2);_0xc851x2[_0x221c[475]](_0xc851x3);return _0xc851x4};mxGraphModel[_0x221c[202]][_0x221c[1971]]=function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[1971]]():!1};mxGraphModel[_0x221c[202]][_0x221c[1972]]=function(_0xc851x2,_0xc851x3){_0xc851x3!=this[_0x221c[1971]](_0xc851x2)&&this[_0x221c[350]]( new mxCollapseChange(this,_0xc851x2,_0xc851x3));return _0xc851x3};mxGraphModel[_0x221c[202]][_0x221c[1973]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1971]](_0xc851x2);_0xc851x2[_0x221c[1972]](_0xc851x3);return _0xc851x4};mxGraphModel[_0x221c[202]][_0x221c[174]]=function(_0xc851x2){return null!=_0xc851x2?_0xc851x2[_0x221c[174]]():!1};mxGraphModel[_0x221c[202]][_0x221c[175]]=function(_0xc851x2,_0xc851x3){_0xc851x3!=this[_0x221c[174]](_0xc851x2)&&this[_0x221c[350]]( new mxVisibleChange(this,_0xc851x2,_0xc851x3));return _0xc851x3};mxGraphModel[_0x221c[202]][_0x221c[1974]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[174]](_0xc851x2);_0xc851x2[_0x221c[175]](_0xc851x3);return _0xc851x4};mxGraphModel[_0x221c[202]][_0x221c[350]]=function(_0xc851x2){_0xc851x2[_0x221c[350]]();this[_0x221c[473]]();this[_0x221c[1926]][_0x221c[99]](_0xc851x2);this[_0x221c[746]]( new mxEventObject(mxEvent.EXECUTE,_0x221c[826],_0xc851x2));this[_0x221c[746]]( new mxEventObject(mxEvent.EXECUTED,_0x221c[826],_0xc851x2));this[_0x221c[476]]()};mxGraphModel[_0x221c[202]][_0x221c[473]]=function(){this[_0x221c[1932]]++;this[_0x221c[746]]( new mxEventObject(mxEvent.BEGIN_UPDATE));1==this[_0x221c[1932]]&&this[_0x221c[746]]( new mxEventObject(mxEvent.START_EDIT))};mxGraphModel[_0x221c[202]][_0x221c[476]]=function(){this[_0x221c[1932]]--;0==this[_0x221c[1932]]&&this[_0x221c[746]]( new mxEventObject(mxEvent.END_EDIT));if(!this[_0x221c[1933]]){this[_0x221c[1933]]=0==this[_0x221c[1932]];this[_0x221c[746]]( new mxEventObject(mxEvent.END_UPDATE,_0x221c[1061],this[_0x221c[1926]]));try{if(this[_0x221c[1933]]&&!this[_0x221c[1926]][_0x221c[1107]]()){this[_0x221c[746]]( new mxEventObject(mxEvent.BEFORE_UNDO,_0x221c[1061],this[_0x221c[1926]]));var _0xc851x2=this[_0x221c[1926]];this[_0x221c[1926]]=this[_0x221c[1096]]();_0xc851x2[_0x221c[827]]();this[_0x221c[746]]( new mxEventObject(mxEvent.UNDO,_0x221c[1061],_0xc851x2))}}finally{this[_0x221c[1933]]= !1}}};mxGraphModel[_0x221c[202]][_0x221c[1096]]=function(){var _0xc851x2= new mxUndoableEdit(this,!0);_0xc851x2[_0x221c[827]]=function(){_0xc851x2[_0x221c[1097]][_0x221c[746]]( new mxEventObject(mxEvent.CHANGE,_0x221c[1061],_0xc851x2,_0x221c[1065],_0xc851x2[_0x221c[1065]]));_0xc851x2[_0x221c[1097]][_0x221c[746]]( new mxEventObject(mxEvent.NOTIFY,_0x221c[1061],_0xc851x2,_0x221c[1065],_0xc851x2[_0x221c[1065]]))};return _0xc851x2};mxGraphModel[_0x221c[202]][_0x221c[1975]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=null!=_0xc851x4?_0xc851x4:!0;this[_0x221c[473]]();try{var _0xc851x5={};this[_0x221c[1976]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5);for(var _0xc851x9 in _0xc851x5){var _0xc851xa=_0xc851x5[_0xc851x9],_0xc851x12=this[_0x221c[1709]](_0xc851xa,!0);null!=_0xc851x12&&(_0xc851x12=_0xc851x5[mxCellPath[_0x221c[385]](_0xc851x12)],this[_0x221c[1957]](_0xc851xa,_0xc851x12,!0));_0xc851x12=this[_0x221c[1709]](_0xc851xa,!1);null!=_0xc851x12&&(_0xc851x12=_0xc851x5[mxCellPath[_0x221c[385]](_0xc851x12)],this[_0x221c[1957]](_0xc851xa,_0xc851x12,!1))}}finally{this[_0x221c[476]]()}};mxGraphModel[_0x221c[202]][_0x221c[1976]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[473]]();try{for(var _0xc851x9=_0xc851x2[_0x221c[262]](),_0xc851xa=0;_0xc851xa<_0xc851x9;_0xc851xa++){var _0xc851x12=_0xc851x2[_0x221c[263]](_0xc851xa);if(_0x221c[279]== typeof _0xc851x12[_0x221c[1103]]){var _0xc851x13=_0xc851x12[_0x221c[1103]](),_0xc851x14=null!=_0xc851x13&&(!this[_0x221c[250]](_0xc851x12)|| !_0xc851x4)?this[_0x221c[736]](_0xc851x13):null;if(null==_0xc851x14){var _0xc851x15=_0xc851x12[_0x221c[238]]();_0xc851x15[_0x221c[1945]](_0xc851x13);_0xc851x15[_0x221c[1957]](_0xc851x12[_0x221c[1709]](!0),!0);_0xc851x15[_0x221c[1957]](_0xc851x12[_0x221c[1709]](!1),!1);_0xc851x14=_0xc851x3[_0x221c[1937]](_0xc851x15);this[_0x221c[1941]](_0xc851x14)};_0xc851x5[mxCellPath[_0x221c[385]](_0xc851x12)]=_0xc851x14;this[_0x221c[1976]](_0xc851x12,_0xc851x14,_0xc851x4,_0xc851x5)}}}finally{this[_0x221c[476]]()}};mxGraphModel[_0x221c[202]][_0x221c[1977]]=function(_0xc851x2){var _0xc851x3=[];if(null!=_0xc851x2){for(var _0xc851x4={},_0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){var _0xc851x9=this[_0x221c[1197]](_0xc851x2[_0xc851x5]);if(null!=_0xc851x9){var _0xc851xa=mxCellPath[_0x221c[385]](_0xc851x9);null==_0xc851x4[_0xc851xa]&&(_0xc851x4[_0xc851xa]=_0xc851x9,_0xc851x3[_0x221c[207]](_0xc851x9))}}};return _0xc851x3};mxGraphModel[_0x221c[202]][_0x221c[1978]]=function(_0xc851x2){return null!=_0xc851x2?this[_0x221c[899]]([_0xc851x2],!0)[0]:null};mxGraphModel[_0x221c[202]][_0x221c[899]]=function(_0xc851x2,_0xc851x3){for(var _0xc851x4={},_0xc851x5=[],_0xc851x9=0;_0xc851x9<_0xc851x2[_0x221c[67]];_0xc851x9++){null!=_0xc851x2[_0xc851x9]?_0xc851x5[_0x221c[207]](this[_0x221c[1979]](_0xc851x2[_0xc851x9],_0xc851x4,_0xc851x3)):_0xc851x5[_0x221c[207]](null)};for(_0xc851x9=0;_0xc851x9<_0xc851x5[_0x221c[67]];_0xc851x9++){null!=_0xc851x5[_0xc851x9]&&this[_0x221c[1980]](_0xc851x5[_0xc851x9],_0xc851x2[_0xc851x9],_0xc851x4)};return _0xc851x5};mxGraphModel[_0x221c[202]][_0x221c[1979]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1981]](_0xc851x2);_0xc851x3[mxObjectIdentity[_0x221c[203]](_0xc851x2)]=_0xc851x5;if(_0xc851x4){_0xc851x4=this[_0x221c[262]](_0xc851x2);for(var _0xc851x9=0;_0xc851x9<_0xc851x4;_0xc851x9++){var _0xc851xa=this[_0x221c[1979]](this[_0x221c[263]](_0xc851x2,_0xc851x9),_0xc851x3,!0);_0xc851x5[_0x221c[1937]](_0xc851xa)}};return _0xc851x5};mxGraphModel[_0x221c[202]][_0x221c[1981]]=function(_0xc851x2){return _0xc851x2[_0x221c[238]]()};mxGraphModel[_0x221c[202]][_0x221c[1980]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1709]](_0xc851x3,!0);null!=_0xc851x5&&(_0xc851x5=_0xc851x4[mxObjectIdentity[_0x221c[203]](_0xc851x5)],null!=_0xc851x5&&_0xc851x5[_0x221c[1960]](_0xc851x2,!0));_0xc851x5=this[_0x221c[1709]](_0xc851x3,!1);null!=_0xc851x5&&(_0xc851x5=_0xc851x4[mxObjectIdentity[_0x221c[203]](_0xc851x5)],null!=_0xc851x5&&_0xc851x5[_0x221c[1960]](_0xc851x2,!1));for(var _0xc851x5=this[_0x221c[262]](_0xc851x2),_0xc851x9=0;_0xc851x9<_0xc851x5;_0xc851x9++){this[_0x221c[1980]](this[_0x221c[263]](_0xc851x2,_0xc851x9),this[_0x221c[263]](_0xc851x3,_0xc851x9),_0xc851x4)}};function mxRootChange(_0xc851x2,_0xc851x3){this[_0x221c[251]]=_0xc851x2;this[_0x221c[257]]=this[_0x221c[813]]=_0xc851x3}mxRootChange[_0x221c[202]][_0x221c[350]]=function(){this[_0x221c[813]]=this[_0x221c[257]];this[_0x221c[257]]=this[_0x221c[251]][_0x221c[1940]](this[_0x221c[257]])};function mxChildChange(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[251]]=_0xc851x2;this[_0x221c[257]]=this[_0x221c[1101]]=_0xc851x3;this[_0x221c[247]]=_0xc851x4;this[_0x221c[1982]]=this[_0x221c[1983]]=_0xc851x5}mxChildChange[_0x221c[202]][_0x221c[350]]=function(){var _0xc851x2=this[_0x221c[251]][_0x221c[1197]](this[_0x221c[247]]),_0xc851x3=null!=_0xc851x2?_0xc851x2[_0x221c[1738]](this[_0x221c[247]]):0;null==this[_0x221c[257]]&&this[_0x221c[807]](this[_0x221c[247]],!1);_0xc851x2=this[_0x221c[251]][_0x221c[1952]](this[_0x221c[247]],this[_0x221c[257]],this[_0x221c[1982]]);null!=this[_0x221c[257]]&&this[_0x221c[807]](this[_0x221c[247]],!0);this[_0x221c[1101]]=this[_0x221c[257]];this[_0x221c[257]]=_0xc851x2;this[_0x221c[1983]]=this[_0x221c[1982]];this[_0x221c[1982]]=_0xc851x3};mxChildChange[_0x221c[202]][_0x221c[807]]=function(_0xc851x2,_0xc851x3){_0xc851x3=null!=_0xc851x3?_0xc851x3:!0;var _0xc851x4=_0xc851x2[_0x221c[1709]](!0),_0xc851x5=_0xc851x2[_0x221c[1709]](!1);null!=_0xc851x4&&(_0xc851x3?this[_0x221c[251]][_0x221c[1959]](_0xc851x2,_0xc851x4,!0):this[_0x221c[251]][_0x221c[1959]](_0xc851x2,null,!0));null!=_0xc851x5&&(_0xc851x3?this[_0x221c[251]][_0x221c[1959]](_0xc851x2,_0xc851x5,!1):this[_0x221c[251]][_0x221c[1959]](_0xc851x2,null,!1));_0xc851x2[_0x221c[1957]](_0xc851x4,!0);_0xc851x2[_0x221c[1957]](_0xc851x5,!1);_0xc851x4=this[_0x221c[251]][_0x221c[262]](_0xc851x2);for(_0xc851x5=0;_0xc851x5<_0xc851x4;_0xc851x5++){this[_0x221c[807]](this[_0x221c[251]][_0x221c[263]](_0xc851x2,_0xc851x5),_0xc851x3)}};function mxTerminalChange(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[251]]=_0xc851x2;this[_0x221c[246]]=_0xc851x3;this[_0x221c[257]]=this[_0x221c[1984]]=_0xc851x4;this[_0x221c[1097]]=_0xc851x5}mxTerminalChange[_0x221c[202]][_0x221c[350]]=function(){this[_0x221c[1984]]=this[_0x221c[257]];this[_0x221c[257]]=this[_0x221c[251]][_0x221c[1959]](this[_0x221c[246]],this[_0x221c[257]],this[_0x221c[1097]])};function mxValueChange(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[251]]=_0xc851x2;this[_0x221c[246]]=_0xc851x3;this[_0x221c[257]]=this[_0x221c[131]]=_0xc851x4}mxValueChange[_0x221c[202]][_0x221c[350]]=function(){this[_0x221c[131]]=this[_0x221c[257]];this[_0x221c[257]]=this[_0x221c[251]][_0x221c[1967]](this[_0x221c[246]],this[_0x221c[257]])};function mxStyleChange(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[251]]=_0xc851x2;this[_0x221c[246]]=_0xc851x3;this[_0x221c[257]]=this[_0x221c[124]]=_0xc851x4}mxStyleChange[_0x221c[202]][_0x221c[350]]=function(){this[_0x221c[124]]=this[_0x221c[257]];this[_0x221c[257]]=this[_0x221c[251]][_0x221c[1970]](this[_0x221c[246]],this[_0x221c[257]])};function mxGeometryChange(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[251]]=_0xc851x2;this[_0x221c[246]]=_0xc851x3;this[_0x221c[257]]=this[_0x221c[256]]=_0xc851x4}mxGeometryChange[_0x221c[202]][_0x221c[350]]=function(){this[_0x221c[256]]=this[_0x221c[257]];this[_0x221c[257]]=this[_0x221c[251]][_0x221c[1969]](this[_0x221c[246]],this[_0x221c[257]])};function mxCollapseChange(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[251]]=_0xc851x2;this[_0x221c[246]]=_0xc851x3;this[_0x221c[257]]=this[_0x221c[1985]]=_0xc851x4}mxCollapseChange[_0x221c[202]][_0x221c[350]]=function(){this[_0x221c[1985]]=this[_0x221c[257]];this[_0x221c[257]]=this[_0x221c[251]][_0x221c[1973]](this[_0x221c[246]],this[_0x221c[257]])};function mxVisibleChange(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[251]]=_0xc851x2;this[_0x221c[246]]=_0xc851x3;this[_0x221c[257]]=this[_0x221c[189]]=_0xc851x4}mxVisibleChange[_0x221c[202]][_0x221c[350]]=function(){this[_0x221c[189]]=this[_0x221c[257]];this[_0x221c[257]]=this[_0x221c[251]][_0x221c[1974]](this[_0x221c[246]],this[_0x221c[257]])};function mxCellAttributeChange(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[246]]=_0xc851x2;this[_0x221c[1986]]=_0xc851x3;this[_0x221c[257]]=this[_0x221c[131]]=_0xc851x4}mxCellAttributeChange[_0x221c[202]][_0x221c[350]]=function(){var _0xc851x2=this[_0x221c[246]][_0x221c[284]](this[_0x221c[1986]]);null==this[_0x221c[257]]?this[_0x221c[246]][_0x221c[131]][_0x221c[1390]](this[_0x221c[1986]]):this[_0x221c[246]][_0x221c[57]](this[_0x221c[1986]],this[_0x221c[257]]);this[_0x221c[257]]=_0xc851x2};function mxCell(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[131]]=_0xc851x2;this[_0x221c[1724]](_0xc851x3);this[_0x221c[475]](_0xc851x4);if(null!=this[_0x221c[1987]]){this[_0x221c[1987]]()}}mxCell[_0x221c[202]][_0x221c[1363]]=null;mxCell[_0x221c[202]][_0x221c[131]]=null;mxCell[_0x221c[202]][_0x221c[256]]=null;mxCell[_0x221c[202]][_0x221c[124]]=null;mxCell[_0x221c[202]][_0x221c[1988]]= !1;mxCell[_0x221c[202]][_0x221c[1989]]= !1;mxCell[_0x221c[202]][_0x221c[1990]]= !0;mxCell[_0x221c[202]][_0x221c[189]]= !0;mxCell[_0x221c[202]][_0x221c[1985]]= !1;mxCell[_0x221c[202]][_0x221c[1101]]=null;mxCell[_0x221c[202]][_0x221c[1097]]=null;mxCell[_0x221c[202]][_0x221c[772]]=null;mxCell[_0x221c[202]][_0x221c[1954]]=null;mxCell[_0x221c[202]][_0x221c[1842]]=null;mxCell[_0x221c[202]][_0x221c[1991]]=_0x221c[1992][_0x221c[224]](_0x221c[185]);mxCell[_0x221c[202]][_0x221c[1103]]=function(){return this[_0x221c[1363]]};mxCell[_0x221c[202]][_0x221c[1945]]=function(_0xc851x2){this[_0x221c[1363]]=_0xc851x2};mxCell[_0x221c[202]][_0x221c[433]]=function(){return this[_0x221c[131]]};mxCell[_0x221c[202]][_0x221c[1966]]=function(_0xc851x2){this[_0x221c[131]]=_0xc851x2};mxCell[_0x221c[202]][_0x221c[1968]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[433]]();this[_0x221c[1966]](_0xc851x2);return _0xc851x3};mxCell[_0x221c[202]][_0x221c[1721]]=function(){return this[_0x221c[256]]};mxCell[_0x221c[202]][_0x221c[1724]]=function(_0xc851x2){this[_0x221c[256]]=_0xc851x2};mxCell[_0x221c[202]][_0x221c[474]]=function(){return this[_0x221c[124]]};mxCell[_0x221c[202]][_0x221c[475]]=function(_0xc851x2){this[_0x221c[124]]=_0xc851x2};mxCell[_0x221c[202]][_0x221c[1193]]=function(){return this[_0x221c[1988]]};mxCell[_0x221c[202]][_0x221c[1993]]=function(_0xc851x2){this[_0x221c[1988]]=_0xc851x2};mxCell[_0x221c[202]][_0x221c[250]]=function(){return this[_0x221c[1989]]};mxCell[_0x221c[202]][_0x221c[1994]]=function(_0xc851x2){this[_0x221c[1989]]=_0xc851x2};mxCell[_0x221c[202]][_0x221c[1965]]=function(){return this[_0x221c[1990]]};mxCell[_0x221c[202]][_0x221c[1995]]=function(_0xc851x2){this[_0x221c[1990]]=_0xc851x2};mxCell[_0x221c[202]][_0x221c[174]]=function(){return this[_0x221c[189]]};mxCell[_0x221c[202]][_0x221c[175]]=function(_0xc851x2){this[_0x221c[189]]=_0xc851x2};mxCell[_0x221c[202]][_0x221c[1971]]=function(){return this[_0x221c[1985]]};mxCell[_0x221c[202]][_0x221c[1972]]=function(_0xc851x2){this[_0x221c[1985]]=_0xc851x2};mxCell[_0x221c[202]][_0x221c[1197]]=function(){return this[_0x221c[1101]]};mxCell[_0x221c[202]][_0x221c[1996]]=function(_0xc851x2){this[_0x221c[1101]]=_0xc851x2};mxCell[_0x221c[202]][_0x221c[1709]]=function(_0xc851x2){return _0xc851x2?this[_0x221c[1097]]:this[_0x221c[772]]};mxCell[_0x221c[202]][_0x221c[1957]]=function(_0xc851x2,_0xc851x3){_0xc851x3?this[_0x221c[1097]]=_0xc851x2:this[_0x221c[772]]=_0xc851x2;return _0xc851x2};mxCell[_0x221c[202]][_0x221c[262]]=function(){return null==this[_0x221c[1954]]?0:this[_0x221c[1954]][_0x221c[67]]};mxCell[_0x221c[202]][_0x221c[1738]]=function(_0xc851x2){return mxUtils[_0x221c[2]](this[_0x221c[1954]],_0xc851x2)};mxCell[_0x221c[202]][_0x221c[263]]=function(_0xc851x2){return null==this[_0x221c[1954]]?null:this[_0x221c[1954]][_0xc851x2]};mxCell[_0x221c[202]][_0x221c[1937]]=function(_0xc851x2,_0xc851x3){null!=_0xc851x2&&(null==_0xc851x3&&(_0xc851x3=this[_0x221c[262]](),_0xc851x2[_0x221c[1197]]()==this&&_0xc851x3--),_0xc851x2[_0x221c[1997]](),_0xc851x2[_0x221c[1996]](this),null==this[_0x221c[1954]]?(this[_0x221c[1954]]=[],this[_0x221c[1954]][_0x221c[207]](_0xc851x2)):this[_0x221c[1954]][_0x221c[300]](_0xc851x3,0,_0xc851x2));return _0xc851x2};mxCell[_0x221c[202]][_0x221c[205]]=function(_0xc851x2){var _0xc851x3=null;null!=this[_0x221c[1954]]&&0<=_0xc851x2&&(_0xc851x3=this[_0x221c[263]](_0xc851x2),null!=_0xc851x3&&(this[_0x221c[1954]][_0x221c[300]](_0xc851x2,1),_0xc851x3[_0x221c[1996]](null)));return _0xc851x3};mxCell[_0x221c[202]][_0x221c[1997]]=function(){if(null!=this[_0x221c[1101]]){var _0xc851x2=this[_0x221c[1101]][_0x221c[1738]](this);this[_0x221c[1101]][_0x221c[205]](_0xc851x2)}};mxCell[_0x221c[202]][_0x221c[1707]]=function(){return null==this[_0x221c[1842]]?0:this[_0x221c[1842]][_0x221c[67]]};mxCell[_0x221c[202]][_0x221c[1998]]=function(_0xc851x2){return mxUtils[_0x221c[2]](this[_0x221c[1842]],_0xc851x2)};mxCell[_0x221c[202]][_0x221c[1708]]=function(_0xc851x2){return null==this[_0x221c[1842]]?null:this[_0x221c[1842]][_0xc851x2]};mxCell[_0x221c[202]][_0x221c[1960]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2&&(_0xc851x2[_0x221c[1999]](_0xc851x3),_0xc851x2[_0x221c[1957]](this,_0xc851x3),null==this[_0x221c[1842]]||_0xc851x2[_0x221c[1709]](!_0xc851x3)!=this||0>mxUtils[_0x221c[2]](this[_0x221c[1842]],_0xc851x2))){null==this[_0x221c[1842]]&&(this[_0x221c[1842]]=[]),this[_0x221c[1842]][_0x221c[207]](_0xc851x2)};return _0xc851x2};mxCell[_0x221c[202]][_0x221c[1961]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2){if(_0xc851x2[_0x221c[1709]](!_0xc851x3)!=this&&null!=this[_0x221c[1842]]){var _0xc851x4=this[_0x221c[1998]](_0xc851x2);0<=_0xc851x4&&this[_0x221c[1842]][_0x221c[300]](_0xc851x4,1)};_0xc851x2[_0x221c[1957]](null,_0xc851x3)};return _0xc851x2};mxCell[_0x221c[202]][_0x221c[1999]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1709]](_0xc851x2);null!=_0xc851x3&&_0xc851x3[_0x221c[1961]](this,_0xc851x2)};mxCell[_0x221c[202]][_0x221c[284]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[433]]();return (null!=_0xc851x4&&_0xc851x4[_0x221c[288]]==mxConstants[_0x221c[289]]?_0xc851x4[_0x221c[284]](_0xc851x2):null)||_0xc851x3};mxCell[_0x221c[202]][_0x221c[57]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[433]]();null!=_0xc851x4&&_0xc851x4[_0x221c[288]]==mxConstants[_0x221c[289]]&&_0xc851x4[_0x221c[57]](_0xc851x2,_0xc851x3)};mxCell[_0x221c[202]][_0x221c[238]]=function(){var _0xc851x2=mxUtils[_0x221c[238]](this,this[_0x221c[1991]]);_0xc851x2[_0x221c[1966]](this[_0x221c[2000]]());return _0xc851x2};mxCell[_0x221c[202]][_0x221c[2000]]=function(){var _0xc851x2=this[_0x221c[433]]();null!=_0xc851x2&&(_0x221c[279]== typeof _0xc851x2[_0x221c[238]]?_0xc851x2=_0xc851x2[_0x221c[238]]():isNaN(_0xc851x2[_0x221c[288]])||(_0xc851x2=_0xc851x2[_0x221c[511]](!0)));return _0xc851x2};function mxGeometry(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxRectangle[_0x221c[239]](this,_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5)}mxGeometry[_0x221c[202]]= new mxRectangle;mxGeometry[_0x221c[202]][_0x221c[196]]=mxGeometry;mxGeometry[_0x221c[202]][_0x221c[2001]]= !0;mxGeometry[_0x221c[202]][_0x221c[2002]]=null;mxGeometry[_0x221c[202]][_0x221c[2003]]=null;mxGeometry[_0x221c[202]][_0x221c[2004]]=null;mxGeometry[_0x221c[202]][_0x221c[1525]]=null;mxGeometry[_0x221c[202]][_0x221c[1368]]=null;mxGeometry[_0x221c[202]][_0x221c[1500]]= !1;mxGeometry[_0x221c[202]][_0x221c[2005]]=function(){if(null!=this[_0x221c[2002]]){var _0xc851x2= new mxRectangle(this[_0x221c[235]],this[_0x221c[236]],this[_0x221c[117]],this[_0x221c[119]]);this[_0x221c[235]]=this[_0x221c[2002]][_0x221c[235]];this[_0x221c[236]]=this[_0x221c[2002]][_0x221c[236]];this[_0x221c[117]]=this[_0x221c[2002]][_0x221c[117]];this[_0x221c[119]]=this[_0x221c[2002]][_0x221c[119]];this[_0x221c[2002]]=_0xc851x2}};mxGeometry[_0x221c[202]][_0x221c[2006]]=function(_0xc851x2){return _0xc851x2?this[_0x221c[2003]]:this[_0x221c[2004]]};mxGeometry[_0x221c[202]][_0x221c[2007]]=function(_0xc851x2,_0xc851x3){_0xc851x3?this[_0x221c[2003]]=_0xc851x2:this[_0x221c[2004]]=_0xc851x2;return _0xc851x2};mxGeometry[_0x221c[202]][_0x221c[513]]=function(_0xc851x2,_0xc851x3){this[_0x221c[238]]();this[_0x221c[1500]]||(this[_0x221c[235]]+=_0xc851x2,this[_0x221c[236]]+=_0xc851x3);null!=this[_0x221c[2003]]&&(this[_0x221c[2003]][_0x221c[235]]+=_0xc851x2,this[_0x221c[2003]][_0x221c[236]]+=_0xc851x3);null!=this[_0x221c[2004]]&&(this[_0x221c[2004]][_0x221c[235]]+=_0xc851x2,this[_0x221c[2004]][_0x221c[236]]+=_0xc851x3);if(this[_0x221c[2001]]&&null!=this[_0x221c[1525]]){for(var _0xc851x4=this[_0x221c[1525]][_0x221c[67]],_0xc851x5=0;_0xc851x5<_0xc851x4;_0xc851x5++){var _0xc851x9=this[_0x221c[1525]][_0xc851x5];null!=_0xc851x9&&(_0xc851x9[_0x221c[235]]+=_0xc851x2,_0xc851x9[_0x221c[236]]+=_0xc851x3)}}};var mxCellPath={PATH_SEPARATOR:_0x221c[87],create:function(_0xc851x2){var _0xc851x3=_0x221c[110];if(null!=_0xc851x2){for(var _0xc851x4=_0xc851x2[_0x221c[1197]]();null!=_0xc851x4;){_0xc851x3=_0xc851x4[_0x221c[1738]](_0xc851x2)+mxCellPath[_0x221c[1950]]+_0xc851x3,_0xc851x2=_0xc851x4,_0xc851x4=_0xc851x2[_0x221c[1197]]()}};_0xc851x2=_0xc851x3[_0x221c[67]];1<_0xc851x2&&(_0xc851x3=_0xc851x3[_0x221c[85]](0,_0xc851x2-1));return _0xc851x3},getParentPath:function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[1122]](mxCellPath.PATH_SEPARATOR);if(0<=_0xc851x3){return _0xc851x2[_0x221c[85]](0,_0xc851x3)};if(0<_0xc851x2[_0x221c[67]]){return _0x221c[110]}};return null},resolve:function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x2;if(null!=_0xc851x3){for(var _0xc851x5=_0xc851x3[_0x221c[224]](mxCellPath.PATH_SEPARATOR),_0xc851x9=0;_0xc851x9<_0xc851x5[_0x221c[67]];_0xc851x9++){_0xc851x4=_0xc851x4[_0x221c[263]](parseInt(_0xc851x5[_0xc851x9]))}};return _0xc851x4},compare:function(_0xc851x2,_0xc851x3){for(var _0xc851x4=Math[_0x221c[243]](_0xc851x2[_0x221c[67]],_0xc851x3[_0x221c[67]]),_0xc851x5=0,_0xc851x9=0;_0xc851x9<_0xc851x4;_0xc851x9++){if(_0xc851x2[_0xc851x9]!=_0xc851x3[_0xc851x9]){0==_0xc851x2[_0xc851x9][_0x221c[67]]||0==_0xc851x3[_0xc851x9][_0x221c[67]]?_0xc851x5=_0xc851x2[_0xc851x9]==_0xc851x3[_0xc851x9]?0:_0xc851x2[_0xc851x9]>_0xc851x3[_0xc851x9]?1:-1:(_0xc851x4=parseInt(_0xc851x2[_0xc851x9]),_0xc851x9=parseInt(_0xc851x3[_0xc851x9]),_0xc851x5=_0xc851x4==_0xc851x9?0:_0xc851x4>_0xc851x9?1:-1);break}};0==_0xc851x5&&(_0xc851x4=_0xc851x2[_0x221c[67]],_0xc851x9=_0xc851x3[_0x221c[67]],_0xc851x4!=_0xc851x9&&(_0xc851x5=_0xc851x4>_0xc851x9?1:-1));return _0xc851x5}},mxPerimeter={RectanglePerimeter:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x3=_0xc851x2[_0x221c[241]]();var _0xc851x9=_0xc851x2[_0x221c[242]](),_0xc851xa=Math[_0x221c[429]](_0xc851x4[_0x221c[236]]-_0xc851x9,_0xc851x4[_0x221c[235]]-_0xc851x3),_0xc851x12= new mxPoint(0,0),_0xc851x13=Math[_0x221c[424]],_0xc851x14=Math[_0x221c[424]]/2-_0xc851xa,_0xc851x15=Math[_0x221c[429]](_0xc851x2[_0x221c[119]],_0xc851x2[_0x221c[117]]);_0xc851xa<-_0xc851x13+_0xc851x15||_0xc851xa>_0xc851x13-_0xc851x15?(_0xc851x12[_0x221c[235]]=_0xc851x2[_0x221c[235]],_0xc851x12[_0x221c[236]]=_0xc851x9-_0xc851x2[_0x221c[117]]*Math[_0x221c[2008]](_0xc851xa)/2):_0xc851xa<-_0xc851x15?(_0xc851x12[_0x221c[236]]=_0xc851x2[_0x221c[236]],_0xc851x12[_0x221c[235]]=_0xc851x3-_0xc851x2[_0x221c[119]]*Math[_0x221c[2008]](_0xc851x14)/2):_0xc851xa<_0xc851x15?(_0xc851x12[_0x221c[235]]=_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]],_0xc851x12[_0x221c[236]]=_0xc851x9+_0xc851x2[_0x221c[117]]*Math[_0x221c[2008]](_0xc851xa)/2):(_0xc851x12[_0x221c[236]]=_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]],_0xc851x12[_0x221c[235]]=_0xc851x3+_0xc851x2[_0x221c[119]]*Math[_0x221c[2008]](_0xc851x14)/2);_0xc851x5&&(_0xc851x4[_0x221c[235]]>=_0xc851x2[_0x221c[235]]&&_0xc851x4[_0x221c[235]]<=_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]?_0xc851x12[_0x221c[235]]=_0xc851x4[_0x221c[235]]:_0xc851x4[_0x221c[236]]>=_0xc851x2[_0x221c[236]]&&_0xc851x4[_0x221c[236]]<=_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]&&(_0xc851x12[_0x221c[236]]=_0xc851x4[_0x221c[236]]),_0xc851x4[_0x221c[235]]<_0xc851x2[_0x221c[235]]?_0xc851x12[_0x221c[235]]=_0xc851x2[_0x221c[235]]:_0xc851x4[_0x221c[235]]>_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]&&(_0xc851x12[_0x221c[235]]=_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]),_0xc851x4[_0x221c[236]]<_0xc851x2[_0x221c[236]]?_0xc851x12[_0x221c[236]]=_0xc851x2[_0x221c[236]]:_0xc851x4[_0x221c[236]]>_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]&&(_0xc851x12[_0x221c[236]]=_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]));return _0xc851x12},EllipsePerimeter:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=_0xc851x2[_0x221c[235]],_0xc851xa=_0xc851x2[_0x221c[236]],_0xc851x12=_0xc851x2[_0x221c[117]]/2,_0xc851x13=_0xc851x2[_0x221c[119]]/2,_0xc851x14=_0xc851x9+_0xc851x12,_0xc851x15=_0xc851xa+_0xc851x13;_0xc851x3=_0xc851x4[_0x221c[235]];_0xc851x4=_0xc851x4[_0x221c[236]];var _0xc851x16=parseInt(_0xc851x3-_0xc851x14),_0xc851x17=parseInt(_0xc851x4-_0xc851x15);if(0==_0xc851x16&&0!=_0xc851x17){return  new mxPoint(_0xc851x14,_0xc851x15+_0xc851x13*_0xc851x17/Math[_0x221c[425]](_0xc851x17))};if(0==_0xc851x16&&0==_0xc851x17){return  new mxPoint(_0xc851x3,_0xc851x4)};if(_0xc851x5){if(_0xc851x4>=_0xc851xa&&_0xc851x4<=_0xc851xa+_0xc851x2[_0x221c[119]]){return _0xc851x2=_0xc851x4-_0xc851x15,_0xc851x2=Math[_0x221c[428]](_0xc851x12*_0xc851x12*(1-_0xc851x2*_0xc851x2/(_0xc851x13*_0xc851x13)))||0,_0xc851x3<=_0xc851x9&&(_0xc851x2= -_0xc851x2), new mxPoint(_0xc851x14+_0xc851x2,_0xc851x4)};if(_0xc851x3>=_0xc851x9&&_0xc851x3<=_0xc851x9+_0xc851x2[_0x221c[117]]){return _0xc851x2=_0xc851x3-_0xc851x14,_0xc851x2=Math[_0x221c[428]](_0xc851x13*_0xc851x13*(1-_0xc851x2*_0xc851x2/(_0xc851x12*_0xc851x12)))||0,_0xc851x4<=_0xc851xa&&(_0xc851x2= -_0xc851x2), new mxPoint(_0xc851x3,_0xc851x15+_0xc851x2)}};_0xc851x9=_0xc851x17/_0xc851x16;_0xc851x15-=_0xc851x9*_0xc851x14;_0xc851xa=_0xc851x12*_0xc851x12*_0xc851x9*_0xc851x9+_0xc851x13*_0xc851x13;_0xc851x2=-2*_0xc851x14*_0xc851xa;_0xc851x13=Math[_0x221c[428]](_0xc851x2*_0xc851x2-4*_0xc851xa*(_0xc851x12*_0xc851x12*_0xc851x9*_0xc851x9*_0xc851x14*_0xc851x14+_0xc851x13*_0xc851x13*_0xc851x14*_0xc851x14-_0xc851x12*_0xc851x12*_0xc851x13*_0xc851x13));_0xc851x12=(-_0xc851x2+_0xc851x13)/(2*_0xc851xa);_0xc851x13=(-_0xc851x2-_0xc851x13)/(2*_0xc851xa);_0xc851x14=_0xc851x9*_0xc851x12+_0xc851x15;_0xc851x15=_0xc851x9*_0xc851x13+_0xc851x15;_0xc851x9=Math[_0x221c[428]](Math[_0x221c[2009]](_0xc851x12-_0xc851x3,2)+Math[_0x221c[2009]](_0xc851x14-_0xc851x4,2));_0xc851x3=Math[_0x221c[428]](Math[_0x221c[2009]](_0xc851x13-_0xc851x3,2)+Math[_0x221c[2009]](_0xc851x15-_0xc851x4,2));_0xc851xa=_0xc851x4=0;_0xc851x9<_0xc851x3?(_0xc851x4=_0xc851x12,_0xc851xa=_0xc851x14):(_0xc851x4=_0xc851x13,_0xc851xa=_0xc851x15);return  new mxPoint(_0xc851x4,_0xc851xa)},RhombusPerimeter:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x3=_0xc851x2[_0x221c[235]];var _0xc851x9=_0xc851x2[_0x221c[236]],_0xc851xa=_0xc851x2[_0x221c[117]];_0xc851x2=_0xc851x2[_0x221c[119]];var _0xc851x12=_0xc851x3+_0xc851xa/2,_0xc851x13=_0xc851x9+_0xc851x2/2,_0xc851x14=_0xc851x4[_0x221c[235]];_0xc851x4=_0xc851x4[_0x221c[236]];if(_0xc851x12==_0xc851x14){return _0xc851x13>_0xc851x4? new mxPoint(_0xc851x12,_0xc851x9): new mxPoint(_0xc851x12,_0xc851x9+_0xc851x2)};if(_0xc851x13==_0xc851x4){return _0xc851x12>_0xc851x14? new mxPoint(_0xc851x3,_0xc851x13): new mxPoint(_0xc851x3+_0xc851xa,_0xc851x13)};var _0xc851x15=_0xc851x12,_0xc851x16=_0xc851x13;_0xc851x5&&(_0xc851x14>=_0xc851x3&&_0xc851x14<=_0xc851x3+_0xc851xa?_0xc851x15=_0xc851x14:_0xc851x4>=_0xc851x9&&_0xc851x4<=_0xc851x9+_0xc851x2&&(_0xc851x16=_0xc851x4));return _0xc851x14<_0xc851x12?_0xc851x4<_0xc851x13?mxUtils[_0x221c[2010]](_0xc851x14,_0xc851x4,_0xc851x15,_0xc851x16,_0xc851x12,_0xc851x9,_0xc851x3,_0xc851x13):mxUtils[_0x221c[2010]](_0xc851x14,_0xc851x4,_0xc851x15,_0xc851x16,_0xc851x12,_0xc851x9+_0xc851x2,_0xc851x3,_0xc851x13):_0xc851x4<_0xc851x13?mxUtils[_0x221c[2010]](_0xc851x14,_0xc851x4,_0xc851x15,_0xc851x16,_0xc851x12,_0xc851x9,_0xc851x3+_0xc851xa,_0xc851x13):mxUtils[_0x221c[2010]](_0xc851x14,_0xc851x4,_0xc851x15,_0xc851x16,_0xc851x12,_0xc851x9+_0xc851x2,_0xc851x3+_0xc851xa,_0xc851x13)},TrianglePerimeter:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x3=null!=_0xc851x3?_0xc851x3[_0x221c[124]][mxConstants[_0x221c[2011]]]:null;var _0xc851x9=_0xc851x3==mxConstants[_0x221c[1358]]||_0xc851x3==mxConstants[_0x221c[1354]],_0xc851xa=_0xc851x2[_0x221c[235]],_0xc851x12=_0xc851x2[_0x221c[236]],_0xc851x13=_0xc851x2[_0x221c[117]];_0xc851x2=_0xc851x2[_0x221c[119]];var _0xc851x14=_0xc851xa+_0xc851x13/2,_0xc851x15=_0xc851x12+_0xc851x2/2,_0xc851x16= new mxPoint(_0xc851xa,_0xc851x12),_0xc851x17= new mxPoint(_0xc851xa+_0xc851x13,_0xc851x15),_0xc851x18= new mxPoint(_0xc851xa,_0xc851x12+_0xc851x2);_0xc851x3==mxConstants[_0x221c[1358]]?(_0xc851x16=_0xc851x18,_0xc851x17= new mxPoint(_0xc851x14,_0xc851x12),_0xc851x18= new mxPoint(_0xc851xa+_0xc851x13,_0xc851x12+_0xc851x2)):_0xc851x3==mxConstants[_0x221c[1354]]?(_0xc851x17= new mxPoint(_0xc851x14,_0xc851x12+_0xc851x2),_0xc851x18= new mxPoint(_0xc851xa+_0xc851x13,_0xc851x12)):_0xc851x3==mxConstants[_0x221c[1359]]&&(_0xc851x16= new mxPoint(_0xc851xa+_0xc851x13,_0xc851x12),_0xc851x17= new mxPoint(_0xc851xa,_0xc851x15),_0xc851x18= new mxPoint(_0xc851xa+_0xc851x13,_0xc851x12+_0xc851x2));var _0xc851x19=_0xc851x4[_0x221c[235]]-_0xc851x14,_0xc851x1a=_0xc851x4[_0x221c[236]]-_0xc851x15,_0xc851x19=_0xc851x9?Math[_0x221c[429]](_0xc851x19,_0xc851x1a):Math[_0x221c[429]](_0xc851x1a,_0xc851x19),_0xc851x1b=_0xc851x9?Math[_0x221c[429]](_0xc851x13,_0xc851x2):Math[_0x221c[429]](_0xc851x2,_0xc851x13),_0xc851x1a=!1,_0xc851x1a=_0xc851x3==mxConstants[_0x221c[1358]]||_0xc851x3==mxConstants[_0x221c[1359]]?_0xc851x19>-_0xc851x1b&&_0xc851x19<_0xc851x1b:_0xc851x19<-Math[_0x221c[424]]+_0xc851x1b||_0xc851x19>Math[_0x221c[424]]-_0xc851x1b,_0xc851x1b=null;_0xc851x1a?_0xc851x1b=_0xc851x5&&(_0xc851x9&&_0xc851x4[_0x221c[235]]>=_0xc851x16[_0x221c[235]]&&_0xc851x4[_0x221c[235]]<=_0xc851x18[_0x221c[235]]||!_0xc851x9&&_0xc851x4[_0x221c[236]]>=_0xc851x16[_0x221c[236]]&&_0xc851x4[_0x221c[236]]<=_0xc851x18[_0x221c[236]])?_0xc851x9? new mxPoint(_0xc851x4[_0x221c[235]],_0xc851x16[_0x221c[236]]): new mxPoint(_0xc851x16[_0x221c[235]],_0xc851x4[_0x221c[236]]):_0xc851x3==mxConstants[_0x221c[1358]]? new mxPoint(_0xc851xa+_0xc851x13/2+_0xc851x2*Math[_0x221c[2008]](_0xc851x19)/2,_0xc851x12+_0xc851x2):_0xc851x3==mxConstants[_0x221c[1354]]? new mxPoint(_0xc851xa+_0xc851x13/2-_0xc851x2*Math[_0x221c[2008]](_0xc851x19)/2,_0xc851x12):_0xc851x3==mxConstants[_0x221c[1359]]? new mxPoint(_0xc851xa+_0xc851x13,_0xc851x12+_0xc851x2/2+_0xc851x13*Math[_0x221c[2008]](_0xc851x19)/2): new mxPoint(_0xc851xa,_0xc851x12+_0xc851x2/2-_0xc851x13*Math[_0x221c[2008]](_0xc851x19)/2):(_0xc851x5&&(_0xc851x5= new mxPoint(_0xc851x14,_0xc851x15),_0xc851x4[_0x221c[236]]>=_0xc851x12&&_0xc851x4[_0x221c[236]]<=_0xc851x12+_0xc851x2?(_0xc851x5[_0x221c[235]]=_0xc851x9?_0xc851x14:_0xc851x3==mxConstants[_0x221c[1359]]?_0xc851xa+_0xc851x13:_0xc851xa,_0xc851x5[_0x221c[236]]=_0xc851x4[_0x221c[236]]):_0xc851x4[_0x221c[235]]>=_0xc851xa&&_0xc851x4[_0x221c[235]]<=_0xc851xa+_0xc851x13&&(_0xc851x5[_0x221c[235]]=_0xc851x4[_0x221c[235]],_0xc851x5[_0x221c[236]]=!_0xc851x9?_0xc851x15:_0xc851x3==mxConstants[_0x221c[1358]]?_0xc851x12+_0xc851x2:_0xc851x12),_0xc851x14=_0xc851x5[_0x221c[235]],_0xc851x15=_0xc851x5[_0x221c[236]]),_0xc851x1b=_0xc851x9&&_0xc851x4[_0x221c[235]]<=_0xc851xa+_0xc851x13/2||!_0xc851x9&&_0xc851x4[_0x221c[236]]<=_0xc851x12+_0xc851x2/2?mxUtils[_0x221c[2010]](_0xc851x4[_0x221c[235]],_0xc851x4[_0x221c[236]],_0xc851x14,_0xc851x15,_0xc851x16[_0x221c[235]],_0xc851x16[_0x221c[236]],_0xc851x17[_0x221c[235]],_0xc851x17[_0x221c[236]]):mxUtils[_0x221c[2010]](_0xc851x4[_0x221c[235]],_0xc851x4[_0x221c[236]],_0xc851x14,_0xc851x15,_0xc851x17[_0x221c[235]],_0xc851x17[_0x221c[236]],_0xc851x18[_0x221c[235]],_0xc851x18[_0x221c[236]]));null==_0xc851x1b&&(_0xc851x1b= new mxPoint(_0xc851x14,_0xc851x15));return _0xc851x1b}};function mxPrintPreview(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14){this[_0x221c[1179]]=_0xc851x2;this[_0x221c[255]]=null!=_0xc851x3?_0xc851x3:1/_0xc851x2[_0x221c[2012]];this[_0x221c[467]]=null!=_0xc851x5?_0xc851x5:0;this[_0x221c[2013]]=null!=_0xc851x4?_0xc851x4:_0xc851x2[_0x221c[2013]];this[_0x221c[924]]=null!=_0xc851x13?_0xc851x13:_0x221c[2014];this[_0x221c[1732]]=null!=_0xc851x9?_0xc851x9:0;this[_0x221c[1733]]=null!=_0xc851xa?_0xc851xa:0;this[_0x221c[1630]]=_0xc851x12;this[_0x221c[2015]]=null!=_0xc851x14?_0xc851x14:!0}mxPrintPreview[_0x221c[202]][_0x221c[1179]]=null;mxPrintPreview[_0x221c[202]][_0x221c[2013]]=null;mxPrintPreview[_0x221c[202]][_0x221c[255]]=null;mxPrintPreview[_0x221c[202]][_0x221c[467]]=0;mxPrintPreview[_0x221c[202]][_0x221c[1732]]=0;mxPrintPreview[_0x221c[202]][_0x221c[1733]]=0;mxPrintPreview[_0x221c[202]][_0x221c[2016]]= !0;mxPrintPreview[_0x221c[202]][_0x221c[2017]]= !1;mxPrintPreview[_0x221c[202]][_0x221c[1630]]=null;mxPrintPreview[_0x221c[202]][_0x221c[924]]=null;mxPrintPreview[_0x221c[202]][_0x221c[2015]]=null;mxPrintPreview[_0x221c[202]][_0x221c[2018]]=null;mxPrintPreview[_0x221c[202]][_0x221c[2019]]=0;mxPrintPreview[_0x221c[202]][_0x221c[2020]]=function(){return this[_0x221c[2018]]};mxPrintPreview[_0x221c[202]][_0x221c[2021]]=function(){var _0xc851x2=_0x221c[110];8==document[_0x221c[5]]&&(_0xc851x2=_0x221c[2022]);return _0xc851x2};mxPrintPreview[_0x221c[202]][_0x221c[392]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[259]][_0x221c[2023]],_0xc851x4=null;try{this[_0x221c[2017]]&&(this[_0x221c[1179]][_0x221c[259]][_0x221c[2023]]=function(_0xc851x2,_0xc851x3){_0xc851x3[_0x221c[176]](_0xc851x2[_0x221c[441]][_0x221c[2024]]())});if(null==this[_0x221c[2018]]){this[_0x221c[2018]]=window[_0x221c[392]]();var _0xc851x5=this[_0x221c[2018]][_0x221c[395]],_0xc851x9=this[_0x221c[2021]]();null!=_0xc851x9&&0<_0xc851x9[_0x221c[67]]&&_0xc851x5[_0x221c[171]](_0xc851x9);_0xc851x5[_0x221c[171]](_0x221c[528]);_0xc851x5[_0x221c[171]](_0x221c[531]);this[_0x221c[2025]](_0xc851x5,_0xc851x2);_0xc851x5[_0x221c[171]](_0x221c[533]);_0xc851x5[_0x221c[171]](_0x221c[2026]);mxClient[_0x221c[54]](_0x221c[94],mxClient[_0x221c[86]]+_0x221c[95],_0xc851x5);mxClient[_0x221c[47]]&&(_0xc851x5[_0x221c[100]][_0x221c[99]](_0x221c[6],_0x221c[97]),_0xc851x5[_0x221c[100]][_0x221c[99]](_0x221c[7],_0x221c[101]),_0xc851x5[_0x221c[102]]()[_0x221c[103]]=_0x221c[104],mxClient[_0x221c[54]](_0x221c[94],mxClient[_0x221c[86]]+_0x221c[105],_0xc851x5));var _0xc851xa=this[_0x221c[1179]][_0x221c[517]]()[_0x221c[238]](),_0xc851x12=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[518]](),_0xc851x13=_0xc851x12/this[_0x221c[255]],_0xc851x14=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[512]]();this[_0x221c[2016]]||(this[_0x221c[1732]]=-_0xc851x14[_0x221c[235]]*this[_0x221c[255]],this[_0x221c[1733]]=-_0xc851x14[_0x221c[236]]*this[_0x221c[255]],_0xc851xa[_0x221c[117]]+=_0xc851xa[_0x221c[235]],_0xc851xa[_0x221c[119]]+=_0xc851xa[_0x221c[236]],_0xc851xa[_0x221c[235]]=0,this[_0x221c[467]]=_0xc851xa[_0x221c[236]]=0);_0xc851xa[_0x221c[117]]/=_0xc851x13;_0xc851xa[_0x221c[119]]/=_0xc851x13;var _0xc851x15=this[_0x221c[2013]][_0x221c[117]]-2*this[_0x221c[467]],_0xc851x16=this[_0x221c[2013]][_0x221c[119]]-2*this[_0x221c[467]],_0xc851x17=Math[_0x221c[160]](1,Math[_0x221c[430]]((_0xc851xa[_0x221c[117]]+this[_0x221c[1732]])/_0xc851x15)),_0xc851x18=Math[_0x221c[160]](1,Math[_0x221c[430]]((_0xc851xa[_0x221c[119]]+this[_0x221c[1733]])/_0xc851x16));this[_0x221c[2019]]=_0xc851x17*_0xc851x18;var _0xc851x19=mxUtils[_0x221c[885]](this,function(){if(this[_0x221c[2015]]&&(1<_0xc851x18||1<_0xc851x17)){var _0xc851x2=this[_0x221c[2027]](_0xc851x18,_0xc851x17);_0xc851x5[_0x221c[112]][_0x221c[62]](_0xc851x2);if(mxClient[_0x221c[80]]){_0xc851x2[_0x221c[124]][_0x221c[491]]=_0x221c[492];var _0xc851x3=function(){_0xc851x2[_0x221c[124]][_0x221c[125]]=_0xc851x5[_0x221c[112]][_0x221c[190]]+10+_0x221c[168]};mxEvent[_0x221c[169]](this[_0x221c[2018]],_0x221c[276],function(_0xc851x2){_0xc851x3()});mxEvent[_0x221c[169]](this[_0x221c[2018]],_0x221c[129],function(_0xc851x2){_0xc851x3()})}}});_0xc851x2=function(_0xc851x2,_0xc851x3){null!=this[_0x221c[1630]]&&(_0xc851x2[_0x221c[124]][_0x221c[1630]]=this[_0x221c[1630]],_0xc851x2[_0x221c[124]][_0x221c[465]]=_0x221c[1631],_0xc851x2[_0x221c[124]][_0x221c[1629]]=_0x221c[942]);_0xc851x2[_0x221c[124]][_0x221c[1537]]=_0x221c[1391];_0xc851x3&&(_0xc851x2[_0x221c[124]][_0x221c[2028]]=_0x221c[2029]);mxClient[_0x221c[80]]?(_0xc851x5[_0x221c[171]](_0xc851x2[_0x221c[342]]),_0xc851x2[_0x221c[265]][_0x221c[266]](_0xc851x2)):(_0xc851x2[_0x221c[265]][_0x221c[266]](_0xc851x2),_0xc851x5[_0x221c[112]][_0x221c[62]](_0xc851x2));if(_0xc851x3){var _0xc851x4=_0xc851x5[_0x221c[55]](_0x221c[1054]);_0xc851x4[_0x221c[926]]=_0x221c[2030];_0xc851x5[_0x221c[112]][_0x221c[62]](_0xc851x4)}};var _0xc851x1a=this[_0x221c[2031]](this[_0x221c[2013]][_0x221c[117]],this[_0x221c[2013]][_0x221c[119]]);if(null!=_0xc851x1a){for(var _0xc851x1b=0;_0xc851x1b<_0xc851x1a[_0x221c[67]];_0xc851x1b++){_0xc851x2(_0xc851x1a[_0xc851x1b],!0)}};for(var _0xc851x1c=this[_0x221c[2032]](this[_0x221c[2013]][_0x221c[117]],this[_0x221c[2013]][_0x221c[119]]),_0xc851x1b=0;_0xc851x1b<_0xc851x18;_0xc851x1b++){for(var _0xc851x1d=_0xc851x1b*_0xc851x16/this[_0x221c[255]]-this[_0x221c[1733]]/this[_0x221c[255]]+(_0xc851xa[_0x221c[236]]-_0xc851x14[_0x221c[236]]*_0xc851x12)/_0xc851x12,_0xc851x1a=0;_0xc851x1a<_0xc851x17;_0xc851x1a++){if(null==this[_0x221c[2018]]){return null};var _0xc851x1e=_0xc851x1a*_0xc851x15/this[_0x221c[255]]-this[_0x221c[1732]]/this[_0x221c[255]]+(_0xc851xa[_0x221c[235]]-_0xc851x14[_0x221c[235]]*_0xc851x12)/_0xc851x12,_0xc851x1f=_0xc851x1b*_0xc851x17+_0xc851x1a+1,_0xc851x4=this[_0x221c[2034]](this[_0x221c[2013]][_0x221c[117]],this[_0x221c[2013]][_0x221c[119]],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[2033]](-_0xc851x1e,-_0xc851x1d,this[_0x221c[255]],_0xc851x1f,_0xc851x2)}));_0xc851x4[_0x221c[57]](_0x221c[1363],_0x221c[2035]+_0xc851x1f);_0xc851x2(_0xc851x4,null!=_0xc851x1c||_0xc851x1b<_0xc851x18-1||_0xc851x1a<_0xc851x17-1)}};if(null!=_0xc851x1c){for(_0xc851x1b=0;_0xc851x1b<_0xc851x1c[_0x221c[67]];_0xc851x1b++){_0xc851x2(_0xc851x1c[_0xc851x1b],_0xc851x1b<_0xc851x1c[_0x221c[67]])}};_0xc851x5[_0x221c[171]](_0x221c[527]);_0xc851x5[_0x221c[171]](_0x221c[534]);_0xc851x5[_0x221c[268]]();_0xc851x19();mxEvent[_0x221c[762]](_0xc851x5[_0x221c[112]])};this[_0x221c[2018]][_0x221c[393]]()}catch(y){null!=_0xc851x4&&null!=_0xc851x4[_0x221c[265]]&&_0xc851x4[_0x221c[265]][_0x221c[266]](_0xc851x4)}finally{this[_0x221c[1179]][_0x221c[259]][_0x221c[2023]]=_0xc851x3};return this[_0x221c[2018]]};mxPrintPreview[_0x221c[202]][_0x221c[2025]]=function(_0xc851x2,_0xc851x3){null!=this[_0x221c[924]]&&_0xc851x2[_0x221c[171]](_0x221c[2036]+this[_0x221c[924]]+_0x221c[2037]);_0xc851x2[_0x221c[171]](_0x221c[2038]);_0xc851x2[_0x221c[171]](_0x221c[2039]);_0xc851x2[_0x221c[171]](_0x221c[2040]);_0xc851x2[_0x221c[171]](_0x221c[2041]);_0xc851x2[_0x221c[171]](_0x221c[233]);_0xc851x2[_0x221c[171]](_0x221c[2042]);_0xc851x2[_0x221c[171]](_0x221c[2043]);_0xc851x2[_0x221c[171]](_0x221c[2044]);_0xc851x2[_0x221c[171]](_0x221c[2045]);_0xc851x2[_0x221c[171]](_0x221c[233]);null!=_0xc851x3&&_0xc851x2[_0x221c[171]](_0xc851x3);_0xc851x2[_0x221c[171]](_0x221c[2046])};mxPrintPreview[_0x221c[202]][_0x221c[2027]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[2018]][_0x221c[395]],_0xc851x5=_0xc851x4[_0x221c[55]](_0x221c[116]);_0xc851x5[_0x221c[926]]=_0x221c[2047];_0xc851x5[_0x221c[57]](_0x221c[467],_0x221c[468]);for(var _0xc851x9=_0xc851x4[_0x221c[55]](_0x221c[120]),_0xc851xa=0;_0xc851xa<_0xc851x2;_0xc851xa++){for(var _0xc851x12=_0xc851x4[_0x221c[55]](_0x221c[121]),_0xc851x13=0;_0xc851x13<_0xc851x3;_0xc851x13++){var _0xc851x14=_0xc851xa*_0xc851x3+_0xc851x13+1,_0xc851x15=_0xc851x4[_0x221c[55]](_0x221c[122]);if(!mxClient[_0x221c[133]]||mxClient[_0x221c[75]]||mxClient[_0x221c[76]]){var _0xc851x16=_0xc851x4[_0x221c[55]](_0x221c[2048]);_0xc851x16[_0x221c[57]](_0x221c[44],_0x221c[2049]+_0xc851x14);mxUtils[_0x221c[53]](_0xc851x16,_0xc851x14,_0xc851x4);_0xc851x15[_0x221c[62]](_0xc851x16)}else {mxUtils[_0x221c[53]](_0xc851x15,_0xc851x14,_0xc851x4)};_0xc851x12[_0x221c[62]](_0xc851x15)};_0xc851x9[_0x221c[62]](_0xc851x12)};_0xc851x5[_0x221c[62]](_0xc851x9);return _0xc851x5};mxPrintPreview[_0x221c[202]][_0x221c[2034]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=document[_0x221c[55]](_0x221c[485]);try{_0xc851x5[_0x221c[124]][_0x221c[117]]=_0xc851x2+_0x221c[168];_0xc851x5[_0x221c[124]][_0x221c[119]]=_0xc851x3+_0x221c[168];_0xc851x5[_0x221c[124]][_0x221c[277]]=_0x221c[188];_0xc851x5[_0x221c[124]][_0x221c[2050]]=_0x221c[1824];_0xc851x5[_0x221c[124]][_0x221c[491]]=_0x221c[1500];var _0xc851x9=document[_0x221c[55]](_0x221c[485]);_0xc851x9[_0x221c[124]][_0x221c[125]]=this[_0x221c[467]]+_0x221c[168];_0xc851x9[_0x221c[124]][_0x221c[361]]=this[_0x221c[467]]+_0x221c[168];_0xc851x9[_0x221c[124]][_0x221c[117]]=_0xc851x2-2*this[_0x221c[467]]+_0x221c[168];_0xc851x9[_0x221c[124]][_0x221c[119]]=_0xc851x3-2*this[_0x221c[467]]+_0x221c[168];_0xc851x9[_0x221c[124]][_0x221c[277]]=_0x221c[188];this[_0x221c[1179]][_0x221c[507]]==mxConstants[_0x221c[1523]]&&(_0xc851x9[_0x221c[124]][_0x221c[491]]=_0x221c[492]);_0xc851x5[_0x221c[62]](_0xc851x9);document[_0x221c[112]][_0x221c[62]](_0xc851x5);_0xc851x4(_0xc851x9)}catch(f){throw _0xc851x5[_0x221c[265]][_0x221c[266]](_0xc851x5),f};return _0xc851x5};mxPrintPreview[_0x221c[202]][_0x221c[2033]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x5=this[_0x221c[1179]][_0x221c[249]]();var _0xc851xa=this[_0x221c[1179]][_0x221c[526]];this[_0x221c[1179]][_0x221c[526]]=_0xc851x9;var _0xc851x12=_0xc851x5[_0x221c[2051]](),_0xc851x13=_0xc851x5[_0x221c[2052]](),_0xc851x14=_0xc851x5[_0x221c[2024]](),_0xc851x15=_0xc851x5[_0x221c[1524]]();this[_0x221c[1179]][_0x221c[507]]==mxConstants[_0x221c[508]]?_0xc851x5[_0x221c[1569]]():this[_0x221c[1179]][_0x221c[507]]==mxConstants[_0x221c[1523]]?_0xc851x5[_0x221c[1571]]():_0xc851x5[_0x221c[1570]]();var _0xc851x16=_0xc851x5[_0x221c[503]]();_0xc851x5[_0x221c[504]](!1);var _0xc851x17=this[_0x221c[1179]][_0x221c[994]]();this[_0x221c[1179]][_0x221c[995]](!1);var _0xc851x18=_0xc851x5[_0x221c[512]]();_0xc851x5[_0x221c[513]]= new mxPoint(_0xc851x2,_0xc851x3);_0xc851x2=null;try{var _0xc851x19=[this[_0x221c[1179]][_0x221c[502]]()[_0x221c[501]]()];_0xc851x2= new mxTemporaryCellStates(_0xc851x5,_0xc851x4,_0xc851x19)}finally{if(mxClient[_0x221c[80]]){_0xc851x5[_0x221c[506]][_0x221c[339]]=_0x221c[110]}else {for(_0xc851x4=_0xc851x9[_0x221c[285]];null!=_0xc851x4;){_0xc851x19=_0xc851x4[_0x221c[287]],_0xc851x3=_0xc851x4[_0x221c[301]][_0x221c[216]](),_0x221c[571]==_0xc851x3?(_0xc851x4[_0x221c[57]](_0x221c[117],parseInt(_0xc851x9[_0x221c[124]][_0x221c[117]])),_0xc851x4[_0x221c[57]](_0x221c[119],parseInt(_0xc851x9[_0x221c[124]][_0x221c[119]]))):_0x221c[583]!=_0xc851x4[_0x221c[124]][_0x221c[270]]&&_0x221c[116]!=_0xc851x3&&_0xc851x4[_0x221c[265]][_0x221c[266]](_0xc851x4),_0xc851x4=_0xc851x19}};_0xc851x5[_0x221c[506]][_0x221c[265]][_0x221c[266]](_0xc851x5[_0x221c[506]]);this[_0x221c[1179]][_0x221c[995]](_0xc851x17);this[_0x221c[1179]][_0x221c[526]]=_0xc851xa;_0xc851x5[_0x221c[510]]=_0xc851x12;_0xc851x5[_0x221c[2053]]=_0xc851x13;_0xc851x5[_0x221c[505]]=_0xc851x14;_0xc851x5[_0x221c[506]]=_0xc851x15;_0xc851x5[_0x221c[513]]=_0xc851x18;_0xc851x2[_0x221c[515]]();_0xc851x5[_0x221c[504]](_0xc851x16)}};mxPrintPreview[_0x221c[202]][_0x221c[2031]]=function(){return null};mxPrintPreview[_0x221c[202]][_0x221c[2032]]=function(){return null};mxPrintPreview[_0x221c[202]][_0x221c[540]]=function(){var _0xc851x2=this[_0x221c[392]]();null!=_0xc851x2&&_0xc851x2[_0x221c[540]]()};mxPrintPreview[_0x221c[202]][_0x221c[268]]=function(){null!=this[_0x221c[2018]]&&(this[_0x221c[2018]][_0x221c[268]](),this[_0x221c[2018]]=null)};function mxStylesheet(){this[_0x221c[2054]]={};this[_0x221c[2056]](this[_0x221c[2055]]());this[_0x221c[2058]](this[_0x221c[2057]]())}mxStylesheet[_0x221c[202]][_0x221c[2055]]=function(){var _0xc851x2={};_0xc851x2[mxConstants[_0x221c[2059]]]=mxConstants[_0x221c[2060]];_0xc851x2[mxConstants[_0x221c[2061]]]=mxPerimeter[_0x221c[2062]];_0xc851x2[mxConstants[_0x221c[2063]]]=mxConstants[_0x221c[481]];_0xc851x2[mxConstants[_0x221c[2064]]]=mxConstants[_0x221c[479]];_0xc851x2[mxConstants[_0x221c[2065]]]=_0x221c[2066];_0xc851x2[mxConstants[_0x221c[2067]]]=_0x221c[2068];_0xc851x2[mxConstants[_0x221c[2069]]]=_0x221c[2070];return _0xc851x2};mxStylesheet[_0x221c[202]][_0x221c[2057]]=function(){var _0xc851x2={};_0xc851x2[mxConstants[_0x221c[2059]]]=mxConstants[_0x221c[2071]];_0xc851x2[mxConstants[_0x221c[1695]]]=mxConstants[_0x221c[1622]];_0xc851x2[mxConstants[_0x221c[2063]]]=mxConstants[_0x221c[481]];_0xc851x2[mxConstants[_0x221c[2064]]]=mxConstants[_0x221c[479]];_0xc851x2[mxConstants[_0x221c[2067]]]=_0x221c[2068];_0xc851x2[mxConstants[_0x221c[2069]]]=_0x221c[2072];return _0xc851x2};mxStylesheet[_0x221c[202]][_0x221c[2056]]=function(_0xc851x2){this[_0x221c[2074]](_0x221c[2073],_0xc851x2)};mxStylesheet[_0x221c[202]][_0x221c[2058]]=function(_0xc851x2){this[_0x221c[2074]](_0x221c[2075],_0xc851x2)};mxStylesheet[_0x221c[202]][_0x221c[2076]]=function(){return this[_0x221c[2054]][_0x221c[2073]]};mxStylesheet[_0x221c[202]][_0x221c[2077]]=function(){return this[_0x221c[2054]][_0x221c[2075]]};mxStylesheet[_0x221c[202]][_0x221c[2074]]=function(_0xc851x2,_0xc851x3){this[_0x221c[2054]][_0xc851x2]=_0xc851x3};mxStylesheet[_0x221c[202]][_0x221c[1705]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x3;if(null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]){for(var _0xc851x5=_0xc851x2[_0x221c[224]](_0x221c[471]),_0xc851x4=null!=_0xc851x4&&_0x221c[471]!=_0xc851x2[_0x221c[225]](0)?mxUtils[_0x221c[238]](_0xc851x4):{},_0xc851x9=0;_0xc851x9<_0xc851x5[_0x221c[67]];_0xc851x9++){var _0xc851xa=_0xc851x5[_0xc851x9],_0xc851x12=_0xc851xa[_0x221c[2]](_0x221c[226]);if(0<=_0xc851x12){var _0xc851x13=_0xc851xa[_0x221c[85]](0,_0xc851x12),_0xc851xa=_0xc851xa[_0x221c[85]](_0xc851x12+1);_0xc851xa==mxConstants[_0x221c[217]]? delete _0xc851x4[_0xc851x13]:mxUtils[_0x221c[1946]](_0xc851xa)?_0xc851x4[_0xc851x13]=parseFloat(_0xc851xa):_0xc851x4[_0xc851x13]=_0xc851xa}else {if(_0xc851xa=this[_0x221c[2054]][_0xc851xa],null!=_0xc851xa){for(_0xc851x13 in _0xc851xa){_0xc851x4[_0xc851x13]=_0xc851xa[_0xc851x13]}}}}};return _0xc851x4};function mxCellState(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[441]]=_0xc851x2;this[_0x221c[246]]=_0xc851x3;this[_0x221c[124]]=_0xc851x4;this[_0x221c[2078]]= new mxPoint;this[_0x221c[2079]]= new mxPoint}mxCellState[_0x221c[202]]= new mxRectangle;mxCellState[_0x221c[202]][_0x221c[196]]=mxCellState;mxCellState[_0x221c[202]][_0x221c[441]]=null;mxCellState[_0x221c[202]][_0x221c[246]]=null;mxCellState[_0x221c[202]][_0x221c[124]]=null;mxCellState[_0x221c[202]][_0x221c[2080]]= !0;mxCellState[_0x221c[202]][_0x221c[2081]]= !1;mxCellState[_0x221c[202]][_0x221c[2082]]= !1;mxCellState[_0x221c[202]][_0x221c[2078]]=null;mxCellState[_0x221c[202]][_0x221c[439]]=null;mxCellState[_0x221c[202]][_0x221c[2079]]=null;mxCellState[_0x221c[202]][_0x221c[2083]]=null;mxCellState[_0x221c[202]][_0x221c[2084]]=null;mxCellState[_0x221c[202]][_0x221c[2085]]=0;mxCellState[_0x221c[202]][_0x221c[67]]=0;mxCellState[_0x221c[202]][_0x221c[2086]]=null;mxCellState[_0x221c[202]][_0x221c[253]]=null;mxCellState[_0x221c[202]][_0x221c[963]]=null;mxCellState[_0x221c[202]][_0x221c[2087]]=function(_0xc851x2,_0xc851x3){_0xc851x2=_0xc851x2||0;_0xc851x3=null!=_0xc851x3?_0xc851x3: new mxRectangle(this[_0x221c[235]],this[_0x221c[236]],this[_0x221c[117]],this[_0x221c[119]]);if(null!=this[_0x221c[253]]&&null!=this[_0x221c[253]][_0x221c[1561]]){var _0xc851x4=this[_0x221c[253]][_0x221c[1561]][_0x221c[1548]](this[_0x221c[124]],_0xc851x3[_0x221c[235]],_0xc851x3[_0x221c[236]],_0xc851x3[_0x221c[117]],_0xc851x3[_0x221c[119]]);_0xc851x3[_0x221c[235]]=_0xc851x4[_0x221c[235]];_0xc851x3[_0x221c[236]]=_0xc851x4[_0x221c[236]];_0xc851x3[_0x221c[117]]=this[_0x221c[253]][_0x221c[1561]][_0x221c[1532]]*_0xc851x4[_0x221c[117]];_0xc851x3[_0x221c[119]]=this[_0x221c[253]][_0x221c[1561]][_0x221c[1533]]*_0xc851x4[_0x221c[119]]};0!=_0xc851x2&&_0xc851x3[_0x221c[244]](_0xc851x2);return _0xc851x3};mxCellState[_0x221c[202]][_0x221c[2088]]=function(_0xc851x2,_0xc851x3){_0xc851x3?(null==this[_0x221c[439]]&&(this[_0x221c[439]]=[]),0==this[_0x221c[439]][_0x221c[67]]?this[_0x221c[439]][_0x221c[207]](_0xc851x2):this[_0x221c[439]][0]=_0xc851x2):null==this[_0x221c[439]]?(this[_0x221c[439]]=[],this[_0x221c[439]][_0x221c[207]](null),this[_0x221c[439]][_0x221c[207]](_0xc851x2)):1==this[_0x221c[439]][_0x221c[67]]?this[_0x221c[439]][_0x221c[207]](_0xc851x2):this[_0x221c[439]][this[_0x221c[439]][_0x221c[67]]-1]=_0xc851x2};mxCellState[_0x221c[202]][_0x221c[1609]]=function(_0xc851x2){null!=this[_0x221c[253]]&&this[_0x221c[253]][_0x221c[1609]](_0xc851x2);null!=this[_0x221c[963]]&&this[_0x221c[963]][_0x221c[1609]](_0xc851x2)};mxCellState[_0x221c[202]][_0x221c[1710]]=function(_0xc851x2){_0xc851x2=this[_0x221c[2089]](_0xc851x2);return null!=_0xc851x2?_0xc851x2[_0x221c[246]]:null};mxCellState[_0x221c[202]][_0x221c[2089]]=function(_0xc851x2){return _0xc851x2?this[_0x221c[2083]]:this[_0x221c[2084]]};mxCellState[_0x221c[202]][_0x221c[2090]]=function(_0xc851x2,_0xc851x3){_0xc851x3?this[_0x221c[2083]]=_0xc851x2:this[_0x221c[2084]]=_0xc851x2};mxCellState[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[441]][_0x221c[1179]][_0x221c[259]][_0x221c[515]](this)};mxCellState[_0x221c[202]][_0x221c[238]]=function(){var _0xc851x2= new mxCellState(this[_0x221c[441]],this[_0x221c[246]],this[_0x221c[124]]);if(null!=this[_0x221c[439]]){_0xc851x2[_0x221c[439]]=[];for(var _0xc851x3=0;_0xc851x3<this[_0x221c[439]][_0x221c[67]];_0xc851x3++){_0xc851x2[_0x221c[439]][_0xc851x3]=this[_0x221c[439]][_0xc851x3][_0x221c[238]]()}};null!=this[_0x221c[2078]]&&(_0xc851x2[_0x221c[2078]]=this[_0x221c[2078]][_0x221c[238]]());null!=this[_0x221c[2079]]&&(_0xc851x2[_0x221c[2079]]=this[_0x221c[2079]][_0x221c[238]]());null!=this[_0x221c[1563]]&&(_0xc851x2[_0x221c[1563]]=this[_0x221c[1563]][_0x221c[238]]());_0xc851x2[_0x221c[2085]]=this[_0x221c[2085]];_0xc851x2[_0x221c[2086]]=this[_0x221c[2086]];_0xc851x2[_0x221c[67]]=this[_0x221c[67]];_0xc851x2[_0x221c[235]]=this[_0x221c[235]];_0xc851x2[_0x221c[236]]=this[_0x221c[236]];_0xc851x2[_0x221c[117]]=this[_0x221c[117]];_0xc851x2[_0x221c[119]]=this[_0x221c[119]];return _0xc851x2};function mxGraphSelectionModel(_0xc851x2){this[_0x221c[1179]]=_0xc851x2;this[_0x221c[895]]=[]}mxGraphSelectionModel[_0x221c[202]]= new mxEventSource;mxGraphSelectionModel[_0x221c[202]][_0x221c[196]]=mxGraphSelectionModel;mxGraphSelectionModel[_0x221c[202]][_0x221c[2091]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[819]:_0x221c[110];mxGraphSelectionModel[_0x221c[202]][_0x221c[2092]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[2093]:_0x221c[110];mxGraphSelectionModel[_0x221c[202]][_0x221c[1179]]=null;mxGraphSelectionModel[_0x221c[202]][_0x221c[2094]]= !1;mxGraphSelectionModel[_0x221c[202]][_0x221c[2095]]=function(){return this[_0x221c[2094]]};mxGraphSelectionModel[_0x221c[202]][_0x221c[2096]]=function(_0xc851x2){this[_0x221c[2094]]=_0xc851x2};mxGraphSelectionModel[_0x221c[202]][_0x221c[2097]]=function(_0xc851x2){return null!=_0xc851x2?0<=mxUtils[_0x221c[2]](this[_0x221c[895]],_0xc851x2):!1};mxGraphSelectionModel[_0x221c[202]][_0x221c[1107]]=function(){return 0==this[_0x221c[895]][_0x221c[67]]};mxGraphSelectionModel[_0x221c[202]][_0x221c[200]]=function(){this[_0x221c[2098]](null,this[_0x221c[895]])};mxGraphSelectionModel[_0x221c[202]][_0x221c[2099]]=function(_0xc851x2){null!=_0xc851x2&&this[_0x221c[2100]]([_0xc851x2])};mxGraphSelectionModel[_0x221c[202]][_0x221c[2100]]=function(_0xc851x2){if(null!=_0xc851x2){this[_0x221c[2094]]&&(_0xc851x2=[this[_0x221c[2101]](_0xc851x2)]);for(var _0xc851x3=[],_0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){this[_0x221c[1179]][_0x221c[2102]](_0xc851x2[_0xc851x4])&&_0xc851x3[_0x221c[207]](_0xc851x2[_0xc851x4])};this[_0x221c[2098]](_0xc851x3,this[_0x221c[895]])}};mxGraphSelectionModel[_0x221c[202]][_0x221c[2101]]=function(_0xc851x2){if(null!=_0xc851x2){for(var _0xc851x3=0;_0xc851x3<_0xc851x2[_0x221c[67]];_0xc851x3++){if(this[_0x221c[1179]][_0x221c[2102]](_0xc851x2[_0xc851x3])){return _0xc851x2[_0xc851x3]}}};return null};mxGraphSelectionModel[_0x221c[202]][_0x221c[2103]]=function(_0xc851x2){null!=_0xc851x2&&this[_0x221c[832]]([_0xc851x2])};mxGraphSelectionModel[_0x221c[202]][_0x221c[832]]=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=null;this[_0x221c[2094]]&&(_0xc851x3=this[_0x221c[895]],_0xc851x2=[this[_0x221c[2101]](_0xc851x2)]);for(var _0xc851x4=[],_0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){!this[_0x221c[2097]](_0xc851x2[_0xc851x5])&&this[_0x221c[1179]][_0x221c[2102]](_0xc851x2[_0xc851x5])&&_0xc851x4[_0x221c[207]](_0xc851x2[_0xc851x5])};this[_0x221c[2098]](_0xc851x4,_0xc851x3)}};mxGraphSelectionModel[_0x221c[202]][_0x221c[2104]]=function(_0xc851x2){null!=_0xc851x2&&this[_0x221c[842]]([_0xc851x2])};mxGraphSelectionModel[_0x221c[202]][_0x221c[842]]=function(_0xc851x2){if(null!=_0xc851x2){for(var _0xc851x3=[],_0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){this[_0x221c[2097]](_0xc851x2[_0xc851x4])&&_0xc851x3[_0x221c[207]](_0xc851x2[_0xc851x4])};this[_0x221c[2098]](null,_0xc851x3)}};mxGraphSelectionModel[_0x221c[202]][_0x221c[2098]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]&&null!=_0xc851x2[0]||null!=_0xc851x3&&0<_0xc851x3[_0x221c[67]]&&null!=_0xc851x3[0]){var _0xc851x4= new mxSelectionChange(this,_0xc851x2,_0xc851x3);_0xc851x4[_0x221c[350]]();var _0xc851x5= new mxUndoableEdit(this,!1);_0xc851x5[_0x221c[99]](_0xc851x4);this[_0x221c[746]]( new mxEventObject(mxEvent.UNDO,_0x221c[1061],_0xc851x5))}};mxGraphSelectionModel[_0x221c[202]][_0x221c[1941]]=function(_0xc851x2){null!=_0xc851x2&&!this[_0x221c[2097]](_0xc851x2)&&this[_0x221c[895]][_0x221c[207]](_0xc851x2)};mxGraphSelectionModel[_0x221c[202]][_0x221c[1102]]=function(_0xc851x2){null!=_0xc851x2&&(_0xc851x2=mxUtils[_0x221c[2]](this[_0x221c[895]],_0xc851x2),0<=_0xc851x2&&this[_0x221c[895]][_0x221c[300]](_0xc851x2,1))};function mxSelectionChange(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[2105]]=_0xc851x2;this[_0x221c[2106]]=null!=_0xc851x3?_0xc851x3[_0x221c[1853]]():null;this[_0x221c[2107]]=null!=_0xc851x4?_0xc851x4[_0x221c[1853]]():null}mxSelectionChange[_0x221c[202]][_0x221c[350]]=function(){var _0xc851x2=mxLog[_0x221c[2109]](_0x221c[2108]);window[_0x221c[879]]=mxResources[_0x221c[203]](this[_0x221c[2105]][_0x221c[2092]])||this[_0x221c[2105]][_0x221c[2092]];if(null!=this[_0x221c[2107]]){for(var _0xc851x3=0;_0xc851x3<this[_0x221c[2107]][_0x221c[67]];_0xc851x3++){this[_0x221c[2105]][_0x221c[1102]](this[_0x221c[2107]][_0xc851x3])}};if(null!=this[_0x221c[2106]]){for(_0xc851x3=0;_0xc851x3<this[_0x221c[2106]][_0x221c[67]];_0xc851x3++){this[_0x221c[2105]][_0x221c[1941]](this[_0x221c[2106]][_0xc851x3])}};_0xc851x3=this[_0x221c[2106]];this[_0x221c[2106]]=this[_0x221c[2107]];this[_0x221c[2107]]=_0xc851x3;window[_0x221c[879]]=mxResources[_0x221c[203]](this[_0x221c[2105]][_0x221c[2091]])||this[_0x221c[2105]][_0x221c[2091]];mxLog[_0x221c[2110]](_0x221c[2108],_0xc851x2);this[_0x221c[2105]][_0x221c[746]]( new mxEventObject(mxEvent.CHANGE,_0x221c[2106],this[_0x221c[2106]],_0x221c[2107],this[_0x221c[2107]]))};function mxCellEditor(_0xc851x2){this[_0x221c[1179]]=_0xc851x2}mxCellEditor[_0x221c[202]][_0x221c[1179]]=null;mxCellEditor[_0x221c[202]][_0x221c[126]]=null;mxCellEditor[_0x221c[202]][_0x221c[2111]]=null;mxCellEditor[_0x221c[202]][_0x221c[2112]]=null;mxCellEditor[_0x221c[202]][_0x221c[2113]]= !1;mxCellEditor[_0x221c[202]][_0x221c[2114]]= !0;mxCellEditor[_0x221c[202]][_0x221c[2115]]=_0x221c[110];mxCellEditor[_0x221c[202]][_0x221c[2116]]=_0x221c[110];mxCellEditor[_0x221c[202]][_0x221c[176]]=function(){this[_0x221c[126]]=document[_0x221c[55]](_0x221c[126]);this[_0x221c[126]][_0x221c[926]]=_0x221c[2117];this[_0x221c[126]][_0x221c[124]][_0x221c[491]]=_0x221c[492];this[_0x221c[126]][_0x221c[124]][_0x221c[277]]=_0x221c[189];this[_0x221c[126]][_0x221c[57]](_0x221c[2118],_0x221c[2119]);this[_0x221c[126]][_0x221c[57]](_0x221c[969],_0x221c[2120]);mxClient[_0x221c[133]]&&(this[_0x221c[126]][_0x221c[124]][_0x221c[129]]=_0x221c[130]);mxEvent[_0x221c[169]](this[_0x221c[126]],_0x221c[2121],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[2122]]()}));mxEvent[_0x221c[169]](this[_0x221c[126]],_0x221c[2123],mxUtils[_0x221c[885]](this,function(_0xc851x2){mxEvent[_0x221c[721]](_0xc851x2)||(113==_0xc851x2[_0x221c[2124]]||this[_0x221c[1179]][_0x221c[2125]]()&&13==_0xc851x2[_0x221c[2124]]&&!mxEvent[_0x221c[775]](_0xc851x2)&&!mxEvent[_0x221c[774]](_0xc851x2)?(this[_0x221c[1179]][_0x221c[2126]](!1),mxEvent[_0x221c[722]](_0xc851x2)):27==_0xc851x2[_0x221c[2124]]?(this[_0x221c[1179]][_0x221c[2126]](!0),mxEvent[_0x221c[722]](_0xc851x2)):(this[_0x221c[2127]]&&(this[_0x221c[2127]]= !1,this[_0x221c[126]][_0x221c[131]]=_0x221c[110]),this[_0x221c[2128]](!0)))}));mxEvent[_0x221c[169]](this[_0x221c[126]],_0x221c[2129],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[2114]]&&!mxEvent[_0x221c[721]](_0xc851x2)&&setTimeout(mxUtils[_0x221c[885]](this,function(){this[_0x221c[129]]()}),0)}))};mxCellEditor[_0x221c[202]][_0x221c[129]]=function(){if(null!=this[_0x221c[1653]]){var _0xc851x2=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](this[_0x221c[2111]]),_0xc851x3=this[_0x221c[1179]][_0x221c[2130]](_0xc851x2[_0x221c[246]]),_0xc851x4=this[_0x221c[1179]][_0x221c[2131]](_0xc851x2[_0x221c[246]]);if(this[_0x221c[1179]][_0x221c[502]]()[_0x221c[250]](_0xc851x2[_0x221c[246]])){this[_0x221c[1562]][_0x221c[235]]=_0xc851x2[_0x221c[2079]][_0x221c[235]],this[_0x221c[1562]][_0x221c[236]]=_0xc851x2[_0x221c[2079]][_0x221c[236]],this[_0x221c[1562]][_0x221c[117]]=0,this[_0x221c[1562]][_0x221c[119]]=0}else {if(null!=this[_0x221c[1562]]){this[_0x221c[1562]][_0x221c[235]]=_0xc851x2[_0x221c[235]];this[_0x221c[1562]][_0x221c[236]]=_0xc851x2[_0x221c[236]];this[_0x221c[1562]][_0x221c[117]]=_0xc851x2[_0x221c[117]];this[_0x221c[1562]][_0x221c[119]]=_0xc851x2[_0x221c[119]];var _0xc851x5=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);_0xc851x5==mxConstants[_0x221c[2132]]?this[_0x221c[1562]][_0x221c[235]]-=_0xc851x2[_0x221c[117]]:_0xc851x5==mxConstants[_0x221c[480]]&&(this[_0x221c[1562]][_0x221c[235]]+=_0xc851x2[_0x221c[117]]);_0xc851x5=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);_0xc851x5==mxConstants[_0x221c[1687]]?this[_0x221c[1562]][_0x221c[236]]-=_0xc851x2[_0x221c[119]]:_0xc851x5==mxConstants[_0x221c[482]]&&(this[_0x221c[1562]][_0x221c[236]]+=_0xc851x2[_0x221c[119]])}};_0xc851x5=this[_0x221c[126]][_0x221c[131]];if(_0x221c[192]==_0xc851x5[_0x221c[225]](_0xc851x5[_0x221c[67]]-1)||_0x221c[110]==_0xc851x5){_0xc851x5+=_0x221c[544]};_0xc851x5=mxUtils[_0x221c[321]](_0xc851x5,!1);_0xc851x4?(this[_0x221c[1653]][_0x221c[124]][_0x221c[493]]=_0x221c[1502],this[_0x221c[1653]][_0x221c[124]][_0x221c[117]]=this[_0x221c[1562]][_0x221c[117]]+_0x221c[168]):_0xc851x5=_0xc851x5[_0x221c[230]](/ /g,_0x221c[544]);_0xc851x5=_0xc851x5[_0x221c[230]](/\n/g,_0x221c[1453]);this[_0x221c[1653]][_0x221c[339]]=_0xc851x5;var _0xc851x5=this[_0x221c[1653]][_0x221c[359]]+30,_0xc851x9=this[_0x221c[1653]][_0x221c[167]]+16,_0xc851x5=Math[_0x221c[160]](_0xc851x5,40),_0xc851x9=Math[_0x221c[160]](_0xc851x9,20);_0xc851x3&&(_0xc851x5=Math[_0x221c[243]](this[_0x221c[1562]][_0x221c[117]]-4,_0xc851x5),_0xc851x9=Math[_0x221c[243]](this[_0x221c[1562]][_0x221c[119]],_0xc851x9));var _0xc851xa=null!=_0xc851x2[_0x221c[963]]?_0xc851x2[_0x221c[963]][_0x221c[1655]]:null;null==_0xc851xa&&(_0xc851xa=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),_0xc851x2=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),_0xc851xa=mxUtils[_0x221c[1501]](_0xc851xa,_0xc851x2));if(null!=_0xc851xa){if(_0xc851x3|| !_0xc851x4){this[_0x221c[126]][_0x221c[124]][_0x221c[361]]=Math[_0x221c[160]](0,Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[235]]-_0xc851xa[_0x221c[235]]*this[_0x221c[1562]][_0x221c[117]]+_0xc851xa[_0x221c[235]]*_0xc851x5)-3)+_0x221c[168]};this[_0x221c[126]][_0x221c[124]][_0x221c[125]]=Math[_0x221c[160]](0,Math[_0x221c[488]](this[_0x221c[1562]][_0x221c[236]]-_0xc851xa[_0x221c[236]]*this[_0x221c[1562]][_0x221c[119]]+_0xc851xa[_0x221c[236]]*_0xc851x9)+4)+_0x221c[168]};if(_0xc851x3|| !_0xc851x4){this[_0x221c[126]][_0x221c[124]][_0x221c[117]]=_0xc851x5+_0x221c[168]};this[_0x221c[126]][_0x221c[124]][_0x221c[119]]=_0xc851x9+_0x221c[168]}};mxCellEditor[_0x221c[202]][_0x221c[2133]]=function(){return this[_0x221c[2113]]};mxCellEditor[_0x221c[202]][_0x221c[2128]]=function(_0xc851x2){this[_0x221c[2113]]=_0xc851x2};mxCellEditor[_0x221c[202]][_0x221c[2122]]=function(){this[_0x221c[2126]](!this[_0x221c[1179]][_0x221c[2134]]())};mxCellEditor[_0x221c[202]][_0x221c[855]]=function(_0xc851x2,_0xc851x3){null==this[_0x221c[126]]&&this[_0x221c[176]]();this[_0x221c[2126]](!0);var _0xc851x4=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](_0xc851x2);if(null!=_0xc851x4){this[_0x221c[2111]]=_0xc851x2;this[_0x221c[2112]]=_0xc851x3;this[_0x221c[2116]]=null;null!=_0xc851x4[_0x221c[963]]&&this[_0x221c[2135]](_0xc851x4)&&(this[_0x221c[2116]]=_0xc851x4[_0x221c[963]][_0x221c[252]],this[_0x221c[2116]][_0x221c[124]][_0x221c[187]]=_0x221c[188]);var _0xc851x5=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]],_0xc851x5=mxUtils[_0x221c[433]](_0xc851x4[_0x221c[124]],mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*_0xc851x5,_0xc851x9=mxUtils[_0x221c[433]](_0xc851x4[_0x221c[124]],mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),_0xc851xa=mxUtils[_0x221c[433]](_0xc851x4[_0x221c[124]],mxConstants.STYLE_FONTCOLOR,_0x221c[586]),_0xc851x12=mxUtils[_0x221c[433]](_0xc851x4[_0x221c[124]],mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),_0xc851x13=(mxUtils[_0x221c[433]](_0xc851x4[_0x221c[124]],mxConstants.STYLE_FONTSTYLE,0)&mxConstants[_0x221c[1410]])==mxConstants[_0x221c[1410]],_0xc851x14=(mxUtils[_0x221c[433]](_0xc851x4[_0x221c[124]],mxConstants.STYLE_FONTSTYLE,0)&mxConstants[_0x221c[1412]])==mxConstants[_0x221c[1412]],_0xc851x15=(mxUtils[_0x221c[433]](_0xc851x4[_0x221c[124]],mxConstants.STYLE_FONTSTYLE,0)&mxConstants[_0x221c[1414]])==mxConstants[_0x221c[1414]];this[_0x221c[126]][_0x221c[124]][_0x221c[487]]=Math[_0x221c[488]](_0xc851x5)+_0x221c[168];this[_0x221c[126]][_0x221c[124]][_0x221c[489]]=Math[_0x221c[488]](_0xc851x5*mxConstants[_0x221c[490]])+_0x221c[168];this[_0x221c[126]][_0x221c[124]][_0x221c[486]]=_0xc851x9;this[_0x221c[126]][_0x221c[124]][_0x221c[1165]]=_0xc851x12;this[_0x221c[126]][_0x221c[124]][_0x221c[352]]=_0xc851xa;this[_0x221c[126]][_0x221c[124]][_0x221c[1452]]=_0xc851x13?_0x221c[1447]:_0x221c[1502];this[_0x221c[126]][_0x221c[124]][_0x221c[666]]=_0xc851x14?_0x221c[1449]:_0x221c[110];this[_0x221c[126]][_0x221c[124]][_0x221c[354]]=_0xc851x15?_0x221c[355]:_0x221c[110];this[_0x221c[126]][_0x221c[124]][_0x221c[277]]=_0x221c[278];this[_0x221c[126]][_0x221c[124]][_0x221c[2136]]=_0x221c[130];this[_0x221c[1562]]=_0xc851x5=this[_0x221c[2137]](_0xc851x4);this[_0x221c[126]][_0x221c[124]][_0x221c[361]]=_0xc851x5[_0x221c[235]]+_0x221c[168];this[_0x221c[126]][_0x221c[124]][_0x221c[125]]=_0xc851x5[_0x221c[236]]+_0x221c[168];this[_0x221c[126]][_0x221c[124]][_0x221c[117]]=_0xc851x5[_0x221c[117]]+_0x221c[168];this[_0x221c[126]][_0x221c[124]][_0x221c[119]]=_0xc851x5[_0x221c[119]]+_0x221c[168];this[_0x221c[126]][_0x221c[124]][_0x221c[931]]=5;_0xc851x4=this[_0x221c[2138]](_0xc851x4,_0xc851x3);null==_0xc851x4||0==_0xc851x4[_0x221c[67]]?(_0xc851x4=this[_0x221c[2139]](),this[_0x221c[2127]]= !0):this[_0x221c[2127]]= !1;this[_0x221c[2128]](!1);this[_0x221c[126]][_0x221c[131]]=_0xc851x4;this[_0x221c[1179]][_0x221c[526]][_0x221c[62]](this[_0x221c[126]]);_0x221c[130]!=this[_0x221c[126]][_0x221c[124]][_0x221c[495]]&&(this[_0x221c[2114]]&&(this[_0x221c[1653]]=this[_0x221c[2140]](),document[_0x221c[112]][_0x221c[62]](this[_0x221c[1653]]),this[_0x221c[129]]()),this[_0x221c[126]][_0x221c[393]](),this[_0x221c[126]][_0x221c[804]]())}};mxCellEditor[_0x221c[202]][_0x221c[2140]]=function(){var _0xc851x2=document[_0x221c[55]](_0x221c[485]),_0xc851x3=_0xc851x2[_0x221c[124]];_0xc851x3[_0x221c[491]]=_0x221c[492];_0xc851x3[_0x221c[493]]=_0x221c[494];_0xc851x3[_0x221c[187]]=_0x221c[188];_0xc851x3[_0x221c[495]]=mxClient[_0x221c[496]]?_0x221c[497]:_0x221c[498];_0xc851x3[_0x221c[499]]=_0x221c[500];_0xc851x3[_0x221c[123]]=_0x221c[125];_0xc851x3[_0x221c[489]]=this[_0x221c[126]][_0x221c[124]][_0x221c[489]];_0xc851x3[_0x221c[487]]=this[_0x221c[126]][_0x221c[124]][_0x221c[487]];_0xc851x3[_0x221c[486]]=this[_0x221c[126]][_0x221c[124]][_0x221c[486]];_0xc851x3[_0x221c[1452]]=this[_0x221c[126]][_0x221c[124]][_0x221c[1452]];_0xc851x3[_0x221c[1165]]=this[_0x221c[126]][_0x221c[124]][_0x221c[1165]];_0xc851x3[_0x221c[666]]=this[_0x221c[126]][_0x221c[124]][_0x221c[666]];_0xc851x3[_0x221c[354]]=this[_0x221c[126]][_0x221c[124]][_0x221c[354]];return _0xc851x2};mxCellEditor[_0x221c[202]][_0x221c[2126]]=function(_0xc851x2){null!=this[_0x221c[2111]]&&(null!=this[_0x221c[2116]]&&(this[_0x221c[2116]][_0x221c[124]][_0x221c[187]]=_0x221c[189],this[_0x221c[2116]]=null),!_0xc851x2&&this[_0x221c[2133]]()&&this[_0x221c[1179]][_0x221c[850]](this[_0x221c[2111]],this[_0x221c[2141]](),this[_0x221c[2112]]),null!=this[_0x221c[1653]]&&(document[_0x221c[112]][_0x221c[266]](this[_0x221c[1653]]),this[_0x221c[1653]]=null),this[_0x221c[1562]]=this[_0x221c[2112]]=this[_0x221c[2111]]=null,this[_0x221c[126]][_0x221c[2121]](),this[_0x221c[126]][_0x221c[265]][_0x221c[266]](this[_0x221c[126]]))};mxCellEditor[_0x221c[202]][_0x221c[2138]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[1179]][_0x221c[2142]](_0xc851x2[_0x221c[246]],_0xc851x3)};mxCellEditor[_0x221c[202]][_0x221c[2141]]=function(){return this[_0x221c[126]][_0x221c[131]][_0x221c[230]](/\r/g,_0x221c[110])};mxCellEditor[_0x221c[202]][_0x221c[2135]]=function(_0xc851x2){return !0};mxCellEditor[_0x221c[202]][_0x221c[939]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]];return  new mxRectangle(0,0,null==_0xc851x2[_0x221c[963]]?30:_0xc851x2[_0x221c[963]][_0x221c[803]]*_0xc851x3+20,_0x221c[361]==this[_0x221c[126]][_0x221c[124]][_0x221c[1165]]?120:40)};mxCellEditor[_0x221c[202]][_0x221c[2137]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[250]](_0xc851x2[_0x221c[246]]),_0xc851x4=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]],_0xc851x5=this[_0x221c[939]](_0xc851x2),_0xc851x9=_0xc851x5[_0x221c[117]],_0xc851x5=_0xc851x5[_0x221c[119]],_0xc851xa=parseInt(_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2143]]]||2)*_0xc851x4,_0xc851x12=parseInt(_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2144]]]||0)*_0xc851x4+_0xc851xa,_0xc851x13=parseInt(_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2145]]]||0)*_0xc851x4+_0xc851xa,_0xc851x14=parseInt(_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2146]]]||0)*_0xc851x4+_0xc851xa,_0xc851x4=parseInt(_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2147]]]||0)*_0xc851x4+_0xc851xa,_0xc851x13= new mxRectangle(_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]],Math[_0x221c[160]](_0xc851x9,_0xc851x2[_0x221c[117]]-_0xc851x4-_0xc851x13),Math[_0x221c[160]](_0xc851x5,_0xc851x2[_0x221c[119]]-_0xc851x12-_0xc851x14));_0xc851x3?(_0xc851x13[_0x221c[235]]=_0xc851x2[_0x221c[2079]][_0x221c[235]],_0xc851x13[_0x221c[236]]=_0xc851x2[_0x221c[2079]][_0x221c[236]],null!=_0xc851x2[_0x221c[963]]&&null!=_0xc851x2[_0x221c[963]][_0x221c[1563]]&&(0<_0xc851x2[_0x221c[963]][_0x221c[1563]][_0x221c[235]]&&(_0xc851x13[_0x221c[235]]=_0xc851x2[_0x221c[963]][_0x221c[1563]][_0x221c[235]]),0<_0xc851x2[_0x221c[963]][_0x221c[1563]][_0x221c[236]]&&(_0xc851x13[_0x221c[236]]=_0xc851x2[_0x221c[963]][_0x221c[1563]][_0x221c[236]]))):null!=_0xc851x2[_0x221c[963]]&&null!=_0xc851x2[_0x221c[963]][_0x221c[1563]]&&(_0xc851x13[_0x221c[235]]=Math[_0x221c[243]](_0xc851x13[_0x221c[235]],_0xc851x2[_0x221c[963]][_0x221c[1563]][_0x221c[235]]),_0xc851x13[_0x221c[236]]=Math[_0x221c[243]](_0xc851x13[_0x221c[236]],_0xc851x2[_0x221c[963]][_0x221c[1563]][_0x221c[236]]));_0xc851x13[_0x221c[235]]+=_0xc851x4;_0xc851x13[_0x221c[236]]+=_0xc851x12;null!=_0xc851x2[_0x221c[963]]&&null!=_0xc851x2[_0x221c[963]][_0x221c[1563]]&&(_0xc851x3?(_0xc851x13[_0x221c[117]]=Math[_0x221c[160]](_0xc851x9,_0xc851x2[_0x221c[963]][_0x221c[1563]][_0x221c[117]]),_0xc851x13[_0x221c[119]]=Math[_0x221c[160]](_0xc851x5,_0xc851x2[_0x221c[963]][_0x221c[1563]][_0x221c[119]])):(_0xc851x13[_0x221c[117]]=Math[_0x221c[160]](_0xc851x13[_0x221c[117]],_0xc851x2[_0x221c[963]][_0x221c[1563]][_0x221c[117]]),_0xc851x13[_0x221c[119]]=Math[_0x221c[160]](_0xc851x13[_0x221c[119]],_0xc851x2[_0x221c[963]][_0x221c[1563]][_0x221c[119]])));this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1193]](_0xc851x2[_0x221c[246]])&&(_0xc851x3=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),_0xc851x3==mxConstants[_0x221c[2132]]?_0xc851x13[_0x221c[235]]-=_0xc851x2[_0x221c[117]]:_0xc851x3==mxConstants[_0x221c[480]]&&(_0xc851x13[_0x221c[235]]+=_0xc851x2[_0x221c[117]]),_0xc851x3=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),_0xc851x3==mxConstants[_0x221c[1687]]?_0xc851x13[_0x221c[236]]-=_0xc851x2[_0x221c[119]]:_0xc851x3==mxConstants[_0x221c[482]]&&(_0xc851x13[_0x221c[236]]+=_0xc851x2[_0x221c[119]]));return _0xc851x13};mxCellEditor[_0x221c[202]][_0x221c[2139]]=function(_0xc851x2){return this[_0x221c[2115]]};mxCellEditor[_0x221c[202]][_0x221c[2148]]=function(){return this[_0x221c[2111]]};mxCellEditor[_0x221c[202]][_0x221c[515]]=function(){null!=this[_0x221c[126]]&&(mxEvent[_0x221c[762]](this[_0x221c[126]]),null!=this[_0x221c[126]][_0x221c[265]]&&this[_0x221c[126]][_0x221c[265]][_0x221c[266]](this[_0x221c[126]]),this[_0x221c[126]]=null)};function mxCellRenderer(){}mxCellRenderer[_0x221c[202]][_0x221c[2149]]=mxConnector;mxCellRenderer[_0x221c[202]][_0x221c[2150]]=mxRectangleShape;mxCellRenderer[_0x221c[202]][_0x221c[2151]]=mxText;mxCellRenderer[_0x221c[202]][_0x221c[2152]]= !0;mxCellRenderer[_0x221c[202]][_0x221c[2153]]={};mxCellRenderer[_0x221c[2154]]=function(_0xc851x2,_0xc851x3){mxCellRenderer[_0x221c[202]][_0x221c[2153]][_0xc851x2]=_0xc851x3};mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_RECTANGLE,mxRectangleShape);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_TRIANGLE,mxTriangle);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_HEXAGON,mxHexagon);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_LINE,mxLine);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_SWIMLANE,mxSwimlane);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_IMAGE,mxImageShape);mxCellRenderer[_0x221c[2154]](mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer[_0x221c[202]][_0x221c[2155]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[502]]();if(null!=_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[526]]&&null==_0xc851x2[_0x221c[253]]&&_0xc851x2[_0x221c[246]]!=_0xc851x2[_0x221c[441]][_0x221c[1741]]&&(_0xc851x4[_0x221c[1193]](_0xc851x2[_0x221c[246]])||_0xc851x4[_0x221c[250]](_0xc851x2[_0x221c[246]]))){if(this[_0x221c[2156]](_0xc851x2),null!=_0xc851x2[_0x221c[253]]&&(null==_0xc851x3||_0xc851x3)){this[_0x221c[2157]](_0xc851x2),_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[2158]]||_0xc851x4[_0x221c[250]](_0xc851x2[_0x221c[246]])?_0xc851x2[_0x221c[2081]]= !0:_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[2159]]&&null!=this[_0x221c[2160]]&&(this[_0x221c[2160]][_0x221c[265]]==_0xc851x2[_0x221c[253]][_0x221c[252]][_0x221c[265]]?this[_0x221c[2161]](_0xc851x2,this[_0x221c[2160]]):this[_0x221c[2160]]=null),_0xc851x2[_0x221c[253]][_0x221c[255]]=_0xc851x2[_0x221c[441]][_0x221c[255]],this[_0x221c[2162]](_0xc851x2),this[_0x221c[2163]](_0xc851x2)}}};mxCellRenderer[_0x221c[202]][_0x221c[2157]]=function(_0xc851x2){_0xc851x2[_0x221c[253]][_0x221c[176]](_0xc851x2[_0x221c[441]][_0x221c[2024]]())};mxCellRenderer[_0x221c[202]][_0x221c[2164]]=function(_0xc851x2,_0xc851x3){for(var _0xc851x4=null,_0xc851x5=_0xc851x2[_0x221c[441]][_0x221c[1179]],_0xc851x9=_0xc851x5[_0x221c[502]](),_0xc851xa=_0xc851x2[_0x221c[246]],_0xc851x12=_0xc851x9[_0x221c[1197]](_0xc851xa);null!=_0xc851x12&&null==_0xc851x4;){_0xc851x4=this[_0x221c[2165]](_0xc851x5,_0xc851x12,_0xc851xa,_0xc851x3),_0xc851xa=_0xc851x12,_0xc851x12=_0xc851x9[_0x221c[1197]](_0xc851xa)};return _0xc851x4};mxCellRenderer[_0x221c[202]][_0x221c[2165]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=null,_0xc851xa=_0xc851x2[_0x221c[502]]();for(_0xc851x4=null!=_0xc851x4?_0xc851x3[_0x221c[1738]](_0xc851x4)-1:_0xc851xa[_0x221c[262]](_0xc851x3)-1;0<=_0xc851x4&&null==_0xc851x9;_0xc851x4--){_0xc851x9=this[_0x221c[2165]](_0xc851x2,_0xc851xa[_0x221c[263]](_0xc851x3,_0xc851x4),null,_0xc851x5)};if(null==_0xc851x9&&(_0xc851x9=_0xc851x2[_0x221c[441]][_0x221c[248]](_0xc851x3),null!=_0xc851x9&&(null==_0xc851x9[_0x221c[253]]||null==_0xc851x9[_0x221c[253]][_0x221c[252]]||_0xc851x9[_0x221c[253]][_0x221c[252]][_0x221c[265]]!=_0xc851x5))){_0xc851x9=null};return _0xc851x9};mxCellRenderer[_0x221c[202]][_0x221c[2166]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[253]][_0x221c[252]][_0x221c[265]],_0xc851x4=this[_0x221c[2164]](_0xc851x2,_0xc851x3),_0xc851x5=_0xc851x3[_0x221c[285]];null!=_0xc851x4&&(_0xc851x5=_0xc851x4[_0x221c[253]][_0x221c[252]],null!=_0xc851x4[_0x221c[963]]&&(null!=_0xc851x4[_0x221c[963]][_0x221c[252]]&&_0xc851x4[_0x221c[963]][_0x221c[252]][_0x221c[265]]==_0xc851x3)&&(_0xc851x5=_0xc851x4[_0x221c[963]][_0x221c[252]]),_0xc851x5=_0xc851x5[_0x221c[287]]);this[_0x221c[2161]](_0xc851x2,_0xc851x5)};mxCellRenderer[_0x221c[202]][_0x221c[2167]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[441]],_0xc851x4=_0xc851x3[_0x221c[1179]][_0x221c[502]]();if(_0xc851x3[_0x221c[1179]][_0x221c[2159]]){if(null==this[_0x221c[2160]]||null==this[_0x221c[2160]][_0x221c[265]]||this[_0x221c[2160]][_0x221c[265]]!=_0xc851x2[_0x221c[253]][_0x221c[252]][_0x221c[265]]){this[_0x221c[2160]]=_0xc851x2[_0x221c[253]][_0x221c[252]]}}else {if(_0xc851x3[_0x221c[1179]][_0x221c[2168]]){var _0xc851x5=_0xc851x2[_0x221c[253]][_0x221c[252]],_0xc851x9=_0xc851x5[_0x221c[265]],_0xc851x4=_0xc851x4[_0x221c[1197]](_0xc851x2[_0x221c[246]]),_0xc851x3=_0xc851x3[_0x221c[248]](_0xc851x4),_0xc851x9=null!=_0xc851x3&&null!=_0xc851x3[_0x221c[253]]&&null!=_0xc851x3[_0x221c[253]][_0x221c[252]]?_0xc851x3[_0x221c[253]][_0x221c[252]][_0x221c[287]]:_0xc851x9[_0x221c[285]];null!=_0xc851x9&&_0xc851x9!=_0xc851x5&&this[_0x221c[2161]](_0xc851x2,_0xc851x9)}}};mxCellRenderer[_0x221c[202]][_0x221c[2161]]=function(_0xc851x2,_0xc851x3){_0xc851x2[_0x221c[253]][_0x221c[252]][_0x221c[265]][_0x221c[950]](_0xc851x2[_0x221c[253]][_0x221c[252]],_0xc851x3);null!=_0xc851x2[_0x221c[963]]&&(null!=_0xc851x2[_0x221c[963]][_0x221c[252]]&&_0xc851x2[_0x221c[963]][_0x221c[252]][_0x221c[265]]==_0xc851x2[_0x221c[253]][_0x221c[252]][_0x221c[265]])&&_0xc851x2[_0x221c[253]][_0x221c[252]][_0x221c[265]][_0x221c[950]](_0xc851x2[_0x221c[963]][_0x221c[252]],_0xc851x2[_0x221c[253]][_0x221c[252]][_0x221c[287]])};mxCellRenderer[_0x221c[202]][_0x221c[2156]]=function(_0xc851x2){if(null!=_0xc851x2[_0x221c[124]]){var _0xc851x3=mxStencilRegistry[_0x221c[1560]](_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2059]]]);null!=_0xc851x3?_0xc851x2[_0x221c[253]]= new mxShape(_0xc851x3):(_0xc851x3=this[_0x221c[2169]](_0xc851x2),_0xc851x2[_0x221c[253]]= new _0xc851x3);_0xc851x2[_0x221c[253]][_0x221c[1525]]=_0xc851x2[_0x221c[439]];_0xc851x2[_0x221c[253]][_0x221c[1562]]= new mxRectangle(_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]],_0xc851x2[_0x221c[117]],_0xc851x2[_0x221c[119]]);_0xc851x2[_0x221c[253]][_0x221c[507]]=_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[507]];this[_0x221c[2170]](_0xc851x2)}};mxCellRenderer[_0x221c[202]][_0x221c[2171]]=function(_0xc851x2){return null!=_0xc851x2?mxCellRenderer[_0x221c[202]][_0x221c[2153]][_0xc851x2]:null};mxCellRenderer[_0x221c[202]][_0x221c[2169]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[2171]](_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2059]]]);null==_0xc851x3&&(_0xc851x3=_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[502]]()[_0x221c[250]](_0xc851x2[_0x221c[246]])?this[_0x221c[2149]]:this[_0x221c[2150]]);return _0xc851x3};mxCellRenderer[_0x221c[202]][_0x221c[2170]]=function(_0xc851x2){_0xc851x2[_0x221c[253]][_0x221c[183]](_0xc851x2);_0xc851x2[_0x221c[253]][_0x221c[618]]=_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[1202]](_0xc851x2);_0xc851x2[_0x221c[253]][_0x221c[630]]=this[_0x221c[2171]](_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[2172]](_0xc851x2));_0xc851x2[_0x221c[253]][_0x221c[632]]=_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[2173]](_0xc851x2);_0xc851x2[_0x221c[253]][_0x221c[634]]=_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[2174]](_0xc851x2);_0xc851x2[_0x221c[253]][_0x221c[638]]=_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2175]]];_0xc851x2[_0x221c[253]][_0x221c[631]]=_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[2176]](_0xc851x2);this[_0x221c[2177]](_0xc851x2)};mxCellRenderer[_0x221c[202]][_0x221c[2177]]=function(_0xc851x2){null!=_0xc851x2[_0x221c[253]]&&(this[_0x221c[2178]](_0xc851x2,_0x221c[632],mxConstants.STYLE_FILLCOLOR),this[_0x221c[2178]](_0xc851x2,_0x221c[634],mxConstants.STYLE_GRADIENTCOLOR),this[_0x221c[2178]](_0xc851x2,_0x221c[1334],mxConstants.STYLE_FILLCOLOR),this[_0x221c[2178]](_0xc851x2,_0x221c[1336],mxConstants.STYLE_STROKECOLOR),this[_0x221c[2178]](_0xc851x2,_0x221c[1299],mxConstants.STYLE_GRADIENTCOLOR))};mxCellRenderer[_0x221c[202]][_0x221c[2178]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=_0xc851x2[_0x221c[253]][_0xc851x3],_0xc851x9=_0xc851x2[_0x221c[441]][_0x221c[1179]],_0xc851xa=null;_0x221c[1549]==_0xc851x5?_0xc851xa=_0xc851x9[_0x221c[251]][_0x221c[1197]](_0xc851x2[_0x221c[246]]):_0x221c[687]==_0xc851x5?(_0xc851xa=null!=_0xc851x9[_0x221c[251]][_0x221c[1709]](_0xc851x2[_0x221c[246]],!1)?_0xc851x9[_0x221c[251]][_0x221c[1709]](_0xc851x2[_0x221c[246]],!1):_0xc851x2[_0x221c[246]],_0xc851xa=_0xc851x9[_0x221c[2179]](_0xc851xa),_0xc851x4=_0xc851x9[_0x221c[2180]]):_0x221c[2181]==_0xc851x5&&(_0xc851x2[_0x221c[253]][_0xc851x3]=_0xc851x2[_0x221c[253]][_0x221c[632]]);null!=_0xc851xa&&(_0xc851x5=_0xc851x9[_0x221c[249]]()[_0x221c[248]](_0xc851xa),_0xc851x2[_0x221c[253]][_0xc851x3]=null,null!=_0xc851x5&&(_0xc851x2[_0x221c[253]][_0xc851x3]=null!=_0xc851x5[_0x221c[253]]&&_0x221c[632]!=_0xc851x3?_0xc851x5[_0x221c[253]][_0xc851x3]:_0xc851x5[_0x221c[124]][_0xc851x4]))};mxCellRenderer[_0x221c[202]][_0x221c[2182]]=function(_0xc851x2){return _0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[2183]](_0xc851x2[_0x221c[246]])};mxCellRenderer[_0x221c[202]][_0x221c[2184]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x2[_0x221c[441]][_0x221c[1179]];_0xc851x4[_0x221c[502]]()[_0x221c[250]](_0xc851x2[_0x221c[246]]);if(0<_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2185]]]||null==_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2185]]]){var _0xc851x5=_0xc851x4[_0x221c[2186]](_0xc851x2[_0x221c[246]])||null!=_0xc851x3&&mxUtils[_0x221c[1331]](_0xc851x3);_0xc851x2[_0x221c[963]]= new this[_0x221c[2151]](_0xc851x3, new mxRectangle,_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2064]]]||mxConstants[_0x221c[479]],_0xc851x4[_0x221c[2187]](_0xc851x2),_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2069]]],_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2188]]],_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2185]]],_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2189]]],_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2143]]],_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2144]]],_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2145]]],_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2146]]],_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2147]]],_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2190]]],_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2191]]],_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2192]]],_0xc851x4[_0x221c[2131]](_0xc851x2[_0x221c[246]])&&_0xc851x4[_0x221c[2186]](_0xc851x2[_0x221c[246]]),_0xc851x4[_0x221c[2130]](_0xc851x2[_0x221c[246]]),_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2193]]],_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2194]]]);_0xc851x2[_0x221c[963]][_0x221c[461]]=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_TEXT_OPACITY,100);_0xc851x2[_0x221c[963]][_0x221c[507]]=_0xc851x5?mxConstants[_0x221c[1656]]:_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[507]];_0xc851x2[_0x221c[963]][_0x221c[724]]=_0xc851x2;this[_0x221c[2195]](_0xc851x2);var _0xc851x9=!1,_0xc851xa=function(_0xc851x3){var _0xc851x5=_0xc851x2;if(mxClient[_0x221c[754]]||_0xc851x9){_0xc851x5=mxEvent[_0x221c[731]](_0xc851x3),_0xc851x3=mxEvent[_0x221c[733]](_0xc851x3),_0xc851x3=mxUtils[_0x221c[2196]](_0xc851x4[_0x221c[526]],_0xc851x5,_0xc851x3),_0xc851x5=_0xc851x4[_0x221c[441]][_0x221c[248]](_0xc851x4[_0x221c[999]](_0xc851x3[_0x221c[235]],_0xc851x3[_0x221c[236]]))};return _0xc851x5};mxEvent[_0x221c[759]](_0xc851x2[_0x221c[963]][_0x221c[252]],mxUtils[_0x221c[885]](this,function(_0xc851x3){this[_0x221c[2197]](_0xc851x2,_0xc851x3)&&(_0xc851x4[_0x221c[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xc851x3,_0xc851x2)),_0xc851x9=_0xc851x4[_0x221c[507]]!=mxConstants[_0x221c[508]]&&_0x221c[2198]==mxEvent[_0x221c[728]](_0xc851x3)[_0x221c[301]])}),mxUtils[_0x221c[885]](this,function(_0xc851x3){this[_0x221c[2197]](_0xc851x2,_0xc851x3)&&_0xc851x4[_0x221c[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xc851x3,_0xc851xa(_0xc851x3)))}),mxUtils[_0x221c[885]](this,function(_0xc851x3){this[_0x221c[2197]](_0xc851x2,_0xc851x3)&&(_0xc851x4[_0x221c[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xc851x3,_0xc851xa(_0xc851x3))),_0xc851x9= !1)}));mxEvent[_0x221c[169]](_0xc851x2[_0x221c[963]][_0x221c[252]],_0x221c[760],mxUtils[_0x221c[885]](this,function(_0xc851x3){this[_0x221c[2197]](_0xc851x2,_0xc851x3)&&(_0xc851x4[_0x221c[761]](_0xc851x3,_0xc851x2[_0x221c[246]]),mxEvent[_0x221c[722]](_0xc851x3))}))}};mxCellRenderer[_0x221c[202]][_0x221c[2195]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[441]][_0x221c[1179]];_0xc851x2[_0x221c[963]][_0x221c[507]]!=mxConstants[_0x221c[508]]&&(mxClient[_0x221c[48]]&&mxClient[_0x221c[2199]]?_0xc851x2[_0x221c[963]][_0x221c[176]](_0xc851x3[_0x221c[526]]):mxUtils[_0x221c[458]](_0xc851x2[_0x221c[441]][_0x221c[2024]]())&&(null!=_0xc851x2[_0x221c[253]][_0x221c[685]]?_0xc851x2[_0x221c[963]][_0x221c[176]](_0xc851x2[_0x221c[253]][_0x221c[685]]):_0xc851x2[_0x221c[963]][_0x221c[176]](_0xc851x2[_0x221c[253]][_0x221c[252]])));null==_0xc851x2[_0x221c[963]][_0x221c[252]]&&(_0xc851x2[_0x221c[963]][_0x221c[176]](_0xc851x2[_0x221c[441]][_0x221c[2024]]()),null!=_0xc851x2[_0x221c[253]]&&null!=_0xc851x2[_0x221c[963]]&&_0xc851x2[_0x221c[253]][_0x221c[252]][_0x221c[265]][_0x221c[950]](_0xc851x2[_0x221c[963]][_0x221c[252]],_0xc851x2[_0x221c[253]][_0x221c[252]][_0x221c[287]]))};mxCellRenderer[_0x221c[202]][_0x221c[2162]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[2200]](_0xc851x2[_0x221c[246]]),_0xc851x4=null;if(null!=_0xc851x3){for(var _0xc851x4= new mxDictionary,_0xc851x5=0;_0xc851x5<_0xc851x3[_0x221c[67]];_0xc851x5++){var _0xc851x9=null!=_0xc851x2[_0x221c[1211]]?_0xc851x2[_0x221c[1211]][_0x221c[205]](_0xc851x3[_0xc851x5]):null;null==_0xc851x9&&(_0xc851x9= new mxImageShape( new mxRectangle,_0xc851x3[_0xc851x5][_0x221c[618]][_0x221c[390]]),_0xc851x9[_0x221c[507]]=_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[507]],_0xc851x9[_0x221c[1674]]= !1,_0xc851x9[_0x221c[2201]]=_0xc851x3[_0xc851x5],this[_0x221c[2023]](_0xc851x2,_0xc851x9),this[_0x221c[2202]](_0xc851x2,_0xc851x3[_0xc851x5],_0xc851x9),null!=_0xc851x3[_0xc851x5][_0x221c[270]]&&(_0xc851x9[_0x221c[252]][_0x221c[124]][_0x221c[270]]=_0xc851x3[_0xc851x5][_0x221c[270]]));_0xc851x4[_0x221c[204]](_0xc851x3[_0xc851x5],_0xc851x9)}};null!=_0xc851x2[_0x221c[1211]]&&_0xc851x2[_0x221c[1211]][_0x221c[209]](function(_0xc851x2,_0xc851x3){_0xc851x3[_0x221c[515]]()});_0xc851x2[_0x221c[1211]]=_0xc851x4};mxCellRenderer[_0x221c[202]][_0x221c[2023]]=function(_0xc851x2,_0xc851x3){_0xc851x3[_0x221c[176]](_0xc851x2[_0x221c[441]][_0x221c[1524]]())};mxCellRenderer[_0x221c[202]][_0x221c[2202]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=_0xc851x2[_0x221c[441]][_0x221c[1179]];mxEvent[_0x221c[169]](_0xc851x4[_0x221c[252]],_0x221c[173],function(_0xc851x4){_0xc851x5[_0x221c[2203]]()&&_0xc851x5[_0x221c[2126]](!_0xc851x5[_0x221c[2134]]());_0xc851x3[_0x221c[746]]( new mxEventObject(mxEvent.CLICK,_0x221c[763],_0xc851x4,_0x221c[246],_0xc851x2[_0x221c[246]]))});mxEvent[_0x221c[759]](_0xc851x4[_0x221c[252]],function(_0xc851x2){mxEvent[_0x221c[722]](_0xc851x2)},function(_0xc851x3){_0xc851x5[_0x221c[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xc851x3,_0xc851x2))});mxClient[_0x221c[754]]&&mxEvent[_0x221c[169]](_0xc851x4[_0x221c[252]],_0x221c[757],function(_0xc851x4){_0xc851x3[_0x221c[746]]( new mxEventObject(mxEvent.CLICK,_0x221c[763],_0xc851x4,_0x221c[246],_0xc851x2[_0x221c[246]]))})};mxCellRenderer[_0x221c[202]][_0x221c[2204]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[441]][_0x221c[1179]],_0xc851x4=_0xc851x3[_0x221c[2205]](_0xc851x2);if(_0xc851x3[_0x221c[2206]]&&null!=_0xc851x4){if(null==_0xc851x2[_0x221c[2207]]){var _0xc851x5= new mxRectangle(0,0,_0xc851x4[_0x221c[117]],_0xc851x4[_0x221c[119]]);_0xc851x2[_0x221c[2207]]= new mxImageShape(_0xc851x5,_0xc851x4[_0x221c[390]]);_0xc851x2[_0x221c[2207]][_0x221c[1674]]= !1;_0xc851x2[_0x221c[2207]][_0x221c[507]]=_0xc851x3[_0x221c[507]];this[_0x221c[2208]](_0xc851x2,_0xc851x2[_0x221c[2207]],!0,function(_0xc851x4){if(_0xc851x3[_0x221c[994]]()){var _0xc851x5=!_0xc851x3[_0x221c[1742]](_0xc851x2[_0x221c[246]]);_0xc851x3[_0x221c[847]](_0xc851x5,!1,[_0xc851x2[_0x221c[246]]]);mxEvent[_0x221c[722]](_0xc851x4)}})}}else {null!=_0xc851x2[_0x221c[2207]]&&(_0xc851x2[_0x221c[2207]][_0x221c[515]](),_0xc851x2[_0x221c[2207]]=null)}};mxCellRenderer[_0x221c[202]][_0x221c[2208]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=_0xc851x2[_0x221c[441]][_0x221c[1179]];_0xc851x9[_0x221c[2186]](_0xc851x2[_0x221c[246]])&&mxClient[_0x221c[2199]]&&_0xc851x9[_0x221c[507]]==mxConstants[_0x221c[508]]?(_0xc851x3[_0x221c[507]]=mxConstants[_0x221c[2209]],_0xc851x3[_0x221c[176]](_0xc851x9[_0x221c[526]]),_0xc851x3[_0x221c[252]][_0x221c[124]][_0x221c[931]]=1):_0xc851x3[_0x221c[176]](_0xc851x2[_0x221c[441]][_0x221c[1524]]());_0xc851x3=_0xc851x3[_0x221c[2210]]||_0xc851x3[_0x221c[252]];_0xc851x5&&(_0xc851x9[_0x221c[994]]()&&(_0xc851x3[_0x221c[124]][_0x221c[270]]=_0x221c[356]),mxEvent[_0x221c[169]](_0xc851x3,_0x221c[173],_0xc851x5));_0xc851x4&&mxEvent[_0x221c[759]](_0xc851x3,function(_0xc851x3){_0xc851x9[_0x221c[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xc851x3,_0xc851x2));mxEvent[_0x221c[722]](_0xc851x3)},function(_0xc851x3){_0xc851x9[_0x221c[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xc851x3,_0xc851x2))});return _0xc851x3};mxCellRenderer[_0x221c[202]][_0x221c[2211]]=function(_0xc851x2,_0xc851x3){return !0};mxCellRenderer[_0x221c[202]][_0x221c[2197]]=function(_0xc851x2,_0xc851x3){return !0};mxCellRenderer[_0x221c[202]][_0x221c[2163]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[441]][_0x221c[1179]],_0xc851x4=function(_0xc851x4){var _0xc851x5=_0xc851x2;if(_0xc851x3[_0x221c[507]]!=mxConstants[_0x221c[508]]&&_0x221c[2198]==mxEvent[_0x221c[728]](_0xc851x4)[_0x221c[301]]||mxClient[_0x221c[754]]){_0xc851x5=mxEvent[_0x221c[731]](_0xc851x4),_0xc851x4=mxEvent[_0x221c[733]](_0xc851x4),_0xc851x4=mxUtils[_0x221c[2196]](_0xc851x3[_0x221c[526]],_0xc851x5,_0xc851x4),_0xc851x5=_0xc851x3[_0x221c[441]][_0x221c[248]](_0xc851x3[_0x221c[999]](_0xc851x4[_0x221c[235]],_0xc851x4[_0x221c[236]]))};return _0xc851x5},_0xc851x5=!1;mxEvent[_0x221c[169]](_0xc851x2[_0x221c[253]][_0x221c[252]],_0x221c[2212],mxUtils[_0x221c[885]](this,function(_0xc851x2){_0xc851x3[_0x221c[2213]]=0;_0xc851x5= !0;mxEvent[_0x221c[722]](_0xc851x2)}));mxEvent[_0x221c[759]](_0xc851x2[_0x221c[253]][_0x221c[252]],mxUtils[_0x221c[885]](this,function(_0xc851x4){this[_0x221c[2211]](_0xc851x2,_0xc851x4)&&!_0xc851x5?_0xc851x3[_0x221c[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xc851x4,null!=_0xc851x2[_0x221c[253]]&&mxEvent[_0x221c[728]](_0xc851x4)==_0xc851x2[_0x221c[253]][_0x221c[905]]?null:_0xc851x2)):_0xc851x5&&mxEvent[_0x221c[722]](_0xc851x4)}),mxUtils[_0x221c[885]](this,function(_0xc851x9){this[_0x221c[2211]](_0xc851x2,_0xc851x9)&&!_0xc851x5?_0xc851x3[_0x221c[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xc851x9,null!=_0xc851x2[_0x221c[253]]&&mxEvent[_0x221c[728]](_0xc851x9)==_0xc851x2[_0x221c[253]][_0x221c[905]]?null:_0xc851x4(_0xc851x9))):_0xc851x5&&mxEvent[_0x221c[722]](_0xc851x9)}),mxUtils[_0x221c[885]](this,function(_0xc851x9){this[_0x221c[2211]](_0xc851x2,_0xc851x9)&&!_0xc851x5?_0xc851x3[_0x221c[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xc851x9,null!=_0xc851x2[_0x221c[253]]&&mxEvent[_0x221c[728]](_0xc851x9)==_0xc851x2[_0x221c[253]][_0x221c[905]]?null:_0xc851x4(_0xc851x9))):_0xc851x5&&mxEvent[_0x221c[722]](_0xc851x9)}));var _0xc851x9=mxClient[_0x221c[754]]?_0x221c[2214]:_0x221c[760];mxEvent[_0x221c[169]](_0xc851x2[_0x221c[253]][_0x221c[252]],_0xc851x9,mxUtils[_0x221c[885]](this,function(_0xc851x4){_0xc851x5= !1;_0x221c[2214]==_0xc851x9?(_0xc851x3[_0x221c[2213]]=0,_0xc851x3[_0x221c[2215]]&&(_0xc851x3[_0x221c[2216]](_0xc851x2,_0xc851x4),mxEvent[_0x221c[722]](_0xc851x4))):this[_0x221c[2211]](_0xc851x2,_0xc851x4)&&(_0xc851x3[_0x221c[761]](_0xc851x4,null!=_0xc851x2[_0x221c[253]]&&mxEvent[_0x221c[728]](_0xc851x4)==_0xc851x2[_0x221c[253]][_0x221c[905]]?null:_0xc851x2[_0x221c[246]]),mxEvent[_0x221c[722]](_0xc851x4))}))};mxCellRenderer[_0x221c[202]][_0x221c[2217]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[2182]](_0xc851x2);if(null==_0xc851x2[_0x221c[963]]&&null!=_0xc851x4&&(mxUtils[_0x221c[1331]](_0xc851x4)||0<_0xc851x4[_0x221c[67]])){this[_0x221c[2184]](_0xc851x2,_0xc851x4)}else {if(null!=_0xc851x2[_0x221c[963]]&&(null==_0xc851x4||0==_0xc851x4[_0x221c[67]])){_0xc851x2[_0x221c[963]][_0x221c[515]](),_0xc851x2[_0x221c[963]]=null}};if(null!=_0xc851x2[_0x221c[963]]){var _0xc851x5=_0xc851x2[_0x221c[441]][_0x221c[1179]],_0xc851x9=_0xc851x5[_0x221c[2131]](_0xc851x2[_0x221c[246]]),_0xc851x5=_0xc851x5[_0x221c[2130]](_0xc851x2[_0x221c[246]]),_0xc851xa=this[_0x221c[2218]](_0xc851x2);if(_0xc851x3||_0xc851x2[_0x221c[963]][_0x221c[131]]!=_0xc851x4||_0xc851x2[_0x221c[963]][_0x221c[2131]]!=_0xc851x9||_0xc851x2[_0x221c[963]][_0x221c[2219]]!=_0xc851x5||_0xc851x2[_0x221c[963]][_0x221c[255]]!=_0xc851x2[_0x221c[441]][_0x221c[255]]||!_0xc851x2[_0x221c[963]][_0x221c[1562]][_0x221c[237]](_0xc851xa)){_0xc851x2[_0x221c[963]][_0x221c[131]]=_0xc851x4,_0xc851x2[_0x221c[963]][_0x221c[1562]]=_0xc851xa,_0xc851x2[_0x221c[963]][_0x221c[255]]=this[_0x221c[2220]](_0xc851x2),_0xc851x2[_0x221c[963]][_0x221c[2131]]=_0xc851x9,_0xc851x2[_0x221c[963]][_0x221c[2219]]=_0xc851x5,_0xc851x2[_0x221c[963]][_0x221c[258]]()}}};mxCellRenderer[_0x221c[202]][_0x221c[2220]]=function(_0xc851x2){return _0xc851x2[_0x221c[441]][_0x221c[255]]};mxCellRenderer[_0x221c[202]][_0x221c[2218]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[441]][_0x221c[1179]],_0xc851x4=_0xc851x2[_0x221c[441]][_0x221c[255]],_0xc851x5=_0xc851x3[_0x221c[502]]()[_0x221c[250]](_0xc851x2[_0x221c[246]]),_0xc851x9= new mxRectangle(_0xc851x2[_0x221c[2079]][_0x221c[235]],_0xc851x2[_0x221c[2079]][_0x221c[236]]);_0xc851x2[_0x221c[963]][_0x221c[1672]]();_0xc851x5?(_0xc851x5=_0xc851x2[_0x221c[963]][_0x221c[1673]](),_0xc851x9[_0x221c[235]]+=_0xc851x5[_0x221c[235]]*_0xc851x4,_0xc851x9[_0x221c[236]]+=_0xc851x5[_0x221c[236]]*_0xc851x4,_0xc851x3=_0xc851x3[_0x221c[1198]](_0xc851x2[_0x221c[246]]),null!=_0xc851x3&&(_0xc851x9[_0x221c[117]]=Math[_0x221c[160]](0,_0xc851x2[_0x221c[963]][_0x221c[1655]][_0x221c[235]]*_0xc851x3[_0x221c[117]]*_0xc851x4-_0xc851x2[_0x221c[963]][_0x221c[659]]*_0xc851x4-_0xc851x2[_0x221c[963]][_0x221c[661]]*_0xc851x4),_0xc851x9[_0x221c[119]]=Math[_0x221c[160]](0,_0xc851x2[_0x221c[963]][_0x221c[1655]][_0x221c[236]]*_0xc851x3[_0x221c[119]]*_0xc851x4-_0xc851x2[_0x221c[963]][_0x221c[658]]*_0xc851x4-_0xc851x2[_0x221c[963]][_0x221c[660]]*_0xc851x4))):(_0xc851x2[_0x221c[963]][_0x221c[1590]]()&&(_0xc851x5=_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[235]]=_0xc851x9[_0x221c[236]],_0xc851x9[_0x221c[236]]=_0xc851x5),_0xc851x9[_0x221c[235]]+=_0xc851x2[_0x221c[235]],_0xc851x9[_0x221c[236]]+=_0xc851x2[_0x221c[236]],_0xc851x9[_0x221c[117]]=Math[_0x221c[160]](1,_0xc851x2[_0x221c[117]]),_0xc851x9[_0x221c[119]]=Math[_0x221c[160]](1,_0xc851x2[_0x221c[119]]),_0xc851x3[_0x221c[1730]](_0xc851x2[_0x221c[246]])&&(_0xc851x3=_0xc851x3[_0x221c[1731]](_0xc851x2[_0x221c[246]]),0<_0xc851x3[_0x221c[117]]?(_0xc851x5=Math[_0x221c[243]](_0xc851x9[_0x221c[117]],_0xc851x3[_0x221c[117]]*_0xc851x4),_0xc851x2[_0x221c[253]][_0x221c[623]]&&(_0xc851x9[_0x221c[235]]+=_0xc851x9[_0x221c[117]]-_0xc851x5),_0xc851x9[_0x221c[117]]=_0xc851x5):0<_0xc851x3[_0x221c[119]]&&(_0xc851x5=Math[_0x221c[243]](_0xc851x9[_0x221c[119]],_0xc851x3[_0x221c[119]]*_0xc851x4),_0xc851x2[_0x221c[253]][_0x221c[624]]&&(_0xc851x9[_0x221c[236]]+=_0xc851x9[_0x221c[119]]-_0xc851x5),_0xc851x9[_0x221c[119]]=_0xc851x5)),this[_0x221c[2221]](_0xc851x2,_0xc851x9));return _0xc851x9};mxCellRenderer[_0x221c[202]][_0x221c[2221]]=function(_0xc851x2,_0xc851x3){if(_0xc851x2[_0x221c[963]][_0x221c[1590]]()){var _0xc851x4=(_0xc851x2[_0x221c[117]]-_0xc851x2[_0x221c[119]])/2;_0xc851x3[_0x221c[235]]+=_0xc851x4;_0xc851x3[_0x221c[236]]-=_0xc851x4;_0xc851x4=_0xc851x3[_0x221c[117]];_0xc851x3[_0x221c[117]]=_0xc851x3[_0x221c[119]];_0xc851x3[_0x221c[119]]=_0xc851x4};_0xc851x3[_0x221c[235]]-=_0xc851x2[_0x221c[963]][_0x221c[1655]][_0x221c[235]]*_0xc851x3[_0x221c[117]];_0xc851x3[_0x221c[236]]-=_0xc851x2[_0x221c[963]][_0x221c[1655]][_0x221c[236]]*_0xc851x3[_0x221c[119]];if(_0x221c[1334]!=_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2193]]]){var _0xc851x4=_0xc851x2[_0x221c[441]][_0x221c[255]],_0xc851x5=_0xc851x2[_0x221c[963]][_0x221c[1673]]();_0xc851x3[_0x221c[235]]+=_0xc851x5[_0x221c[235]]*_0xc851x4;_0xc851x3[_0x221c[236]]+=_0xc851x5[_0x221c[236]]*_0xc851x4;_0xc851x3[_0x221c[117]]=Math[_0x221c[160]](0,_0xc851x3[_0x221c[117]]-_0xc851x2[_0x221c[963]][_0x221c[659]]*_0xc851x4-_0xc851x2[_0x221c[963]][_0x221c[661]]*_0xc851x4);_0xc851x3[_0x221c[119]]=Math[_0x221c[160]](0,_0xc851x3[_0x221c[119]]-_0xc851x2[_0x221c[963]][_0x221c[658]]*_0xc851x4-_0xc851x2[_0x221c[963]][_0x221c[660]]*_0xc851x4)};var _0xc851x9=_0xc851x2[_0x221c[963]][_0x221c[1615]]();if(0!=_0xc851x9&&(null!=_0xc851x2&&_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[251]][_0x221c[1193]](_0xc851x2[_0x221c[246]]))&&(_0xc851x4=_0xc851x2[_0x221c[241]](),_0xc851x5=_0xc851x2[_0x221c[242]](),_0xc851x3[_0x221c[235]]!=_0xc851x4||_0xc851x3[_0x221c[236]]!=_0xc851x5)){_0xc851x9*=Math[_0x221c[424]]/180,pt=mxUtils[_0x221c[432]]( new mxPoint(_0xc851x3[_0x221c[235]],_0xc851x3[_0x221c[236]]),Math[_0x221c[426]](_0xc851x9),Math[_0x221c[427]](_0xc851x9), new mxPoint(_0xc851x4,_0xc851x5)),_0xc851x3[_0x221c[235]]=pt[_0x221c[235]],_0xc851x3[_0x221c[236]]=pt[_0x221c[236]]}};mxCellRenderer[_0x221c[202]][_0x221c[2222]]=function(_0xc851x2,_0xc851x3){this[_0x221c[2162]](_0xc851x2);if(null!=_0xc851x2[_0x221c[1211]]){var _0xc851x4=mxUtils[_0x221c[1454]](mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_ROTATION,0),90),_0xc851x5=mxUtils[_0x221c[431]](_0xc851x4),_0xc851x9=Math[_0x221c[426]](_0xc851x5),_0xc851xa=Math[_0x221c[427]](_0xc851x5);_0xc851x2[_0x221c[1211]][_0x221c[209]](function(_0xc851x5,_0xc851x13){var _0xc851x14=_0xc851x13[_0x221c[2201]][_0x221c[1799]](_0xc851x2);if(!_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[502]]()[_0x221c[250]](_0xc851x2[_0x221c[246]])&&null!=_0xc851x2[_0x221c[253]]&&0!=_0xc851x4){var _0xc851x15=_0xc851x14[_0x221c[241]](),_0xc851x16=_0xc851x14[_0x221c[242]](),_0xc851x16=mxUtils[_0x221c[432]]( new mxPoint(_0xc851x15,_0xc851x16),_0xc851x9,_0xc851xa, new mxPoint(_0xc851x2[_0x221c[241]](),_0xc851x2[_0x221c[242]]())),_0xc851x15=_0xc851x16[_0x221c[235]],_0xc851x16=_0xc851x16[_0x221c[236]];_0xc851x14[_0x221c[235]]=Math[_0x221c[488]](_0xc851x15-_0xc851x14[_0x221c[117]]/2);_0xc851x14[_0x221c[236]]=Math[_0x221c[488]](_0xc851x16-_0xc851x14[_0x221c[119]]/2)};if(_0xc851x3||null==_0xc851x13[_0x221c[1562]]||_0xc851x13[_0x221c[255]]!=_0xc851x2[_0x221c[441]][_0x221c[255]]||!_0xc851x13[_0x221c[1562]][_0x221c[237]](_0xc851x14)){_0xc851x13[_0x221c[1562]]=_0xc851x14,_0xc851x13[_0x221c[255]]=_0xc851x2[_0x221c[441]][_0x221c[255]],_0xc851x13[_0x221c[258]]()}})}};mxCellRenderer[_0x221c[202]][_0x221c[2223]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2[_0x221c[2207]]){var _0xc851x4=this[_0x221c[2224]](_0xc851x2),_0xc851x5=this[_0x221c[2152]]?mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_ROTATION,0):_0xc851x2[_0x221c[253]][_0x221c[1615]](),_0xc851x9=_0xc851x2[_0x221c[441]][_0x221c[255]];if(_0xc851x3||_0xc851x2[_0x221c[2207]][_0x221c[255]]!=_0xc851x9||!_0xc851x2[_0x221c[2207]][_0x221c[1562]][_0x221c[237]](_0xc851x4)||_0xc851x2[_0x221c[2207]][_0x221c[603]]!=_0xc851x5){_0xc851x2[_0x221c[2207]][_0x221c[603]]=_0xc851x5,_0xc851x2[_0x221c[2207]][_0x221c[1562]]=_0xc851x4,_0xc851x2[_0x221c[2207]][_0x221c[255]]=_0xc851x9,_0xc851x2[_0x221c[2207]][_0x221c[258]]()}}};mxCellRenderer[_0x221c[202]][_0x221c[2224]]=function(_0xc851x2){if(null!=_0xc851x2[_0x221c[2207]]){var _0xc851x3=_0xc851x2[_0x221c[2207]][_0x221c[255]],_0xc851x4=_0xc851x2[_0x221c[2207]][_0x221c[1562]][_0x221c[117]]/_0xc851x3,_0xc851x3=_0xc851x2[_0x221c[2207]][_0x221c[1562]][_0x221c[119]]/_0xc851x3,_0xc851x5=_0xc851x2[_0x221c[441]][_0x221c[255]],_0xc851x9=_0xc851x2[_0x221c[241]](),_0xc851xa=_0xc851x2[_0x221c[242]]();if(!_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[502]]()[_0x221c[250]](_0xc851x2[_0x221c[246]])&&(_0xc851x9=_0xc851x2[_0x221c[235]]+_0xc851x4*_0xc851x5,_0xc851xa=_0xc851x2[_0x221c[236]]+_0xc851x3*_0xc851x5,null!=_0xc851x2[_0x221c[253]])){var _0xc851x12=_0xc851x2[_0x221c[253]][_0x221c[1598]]();if(this[_0x221c[2152]]){_0xc851x12=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_ROTATION,0)}else {if(_0xc851x2[_0x221c[253]][_0x221c[1590]]()){var _0xc851x13=(_0xc851x2[_0x221c[117]]-_0xc851x2[_0x221c[119]])/2,_0xc851x9=_0xc851x9+_0xc851x13,_0xc851xa=_0xc851xa-_0xc851x13}};0!=_0xc851x12&&(_0xc851x13=mxUtils[_0x221c[431]](_0xc851x12),_0xc851x12=Math[_0x221c[426]](_0xc851x13),_0xc851x13=Math[_0x221c[427]](_0xc851x13),_0xc851xa=mxUtils[_0x221c[432]]( new mxPoint(_0xc851x9,_0xc851xa),_0xc851x12,_0xc851x13, new mxPoint(_0xc851x2[_0x221c[241]](),_0xc851x2[_0x221c[242]]())),_0xc851x9=_0xc851xa[_0x221c[235]],_0xc851xa=_0xc851xa[_0x221c[236]])};return _0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[502]]()[_0x221c[250]](_0xc851x2[_0x221c[246]]), new mxRectangle(Math[_0x221c[488]](_0xc851x9-_0xc851x4/2*_0xc851x5),Math[_0x221c[488]](_0xc851xa-_0xc851x3/2*_0xc851x5),Math[_0x221c[488]](_0xc851x4*_0xc851x5),Math[_0x221c[488]](_0xc851x3*_0xc851x5))};return null};mxCellRenderer[_0x221c[202]][_0x221c[258]]=function(_0xc851x2,_0xc851x3,_0xc851x4){if(null!=_0xc851x2[_0x221c[253]]){var _0xc851x5=!1;_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[502]]()[_0x221c[250]](_0xc851x2[_0x221c[246]]);reconfigure=null!=_0xc851x3?_0xc851x3:!1;this[_0x221c[2204]](_0xc851x2);if(_0xc851x2[_0x221c[2082]]||_0xc851x2[_0x221c[2081]]){_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[2158]]?this[_0x221c[2166]](_0xc851x2):this[_0x221c[2167]](_0xc851x2)};if(_0xc851x2[_0x221c[2082]]||!mxUtils[_0x221c[2225]](_0xc851x2[_0x221c[253]][_0x221c[124]],_0xc851x2[_0x221c[124]])){this[_0x221c[2170]](_0xc851x2),_0xc851x3= !0};delete _0xc851x2[_0x221c[2081]];delete _0xc851x2[_0x221c[2082]];if(_0xc851x3||null==_0xc851x2[_0x221c[253]][_0x221c[1562]]||_0xc851x2[_0x221c[253]][_0x221c[255]]!=_0xc851x2[_0x221c[441]][_0x221c[255]]||!_0xc851x2[_0x221c[253]][_0x221c[1562]][_0x221c[237]](_0xc851x2)||!mxUtils[_0x221c[2226]](_0xc851x2[_0x221c[253]][_0x221c[1525]],_0xc851x2[_0x221c[439]])){_0xc851x5= !0,_0xc851x2[_0x221c[253]][_0x221c[1525]]=null!=_0xc851x2[_0x221c[439]]?_0xc851x2[_0x221c[439]][_0x221c[1853]]():null,_0xc851x2[_0x221c[253]][_0x221c[1562]]= new mxRectangle(_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]],_0xc851x2[_0x221c[117]],_0xc851x2[_0x221c[119]]),_0xc851x2[_0x221c[253]][_0x221c[255]]=_0xc851x2[_0x221c[441]][_0x221c[255]],null==_0xc851x4||_0xc851x4?_0xc851x2[_0x221c[253]][_0x221c[258]]():_0xc851x2[_0x221c[253]][_0x221c[1577]]()};if(null==_0xc851x4||_0xc851x4){this[_0x221c[2217]](_0xc851x2,_0xc851x5),this[_0x221c[2222]](_0xc851x2,_0xc851x5),this[_0x221c[2223]](_0xc851x2,_0xc851x5)}}};mxCellRenderer[_0x221c[202]][_0x221c[515]]=function(_0xc851x2){null!=_0xc851x2[_0x221c[253]]&&(null!=_0xc851x2[_0x221c[963]]&&(_0xc851x2[_0x221c[963]][_0x221c[515]](),_0xc851x2[_0x221c[963]]=null),null!=_0xc851x2[_0x221c[1211]]&&(_0xc851x2[_0x221c[1211]][_0x221c[209]](function(_0xc851x2,_0xc851x4){_0xc851x4[_0x221c[515]]()}),_0xc851x2[_0x221c[1211]]=null),null!=_0xc851x2[_0x221c[2207]]&&(_0xc851x2[_0x221c[2207]][_0x221c[515]](),_0xc851x2[_0x221c[2207]]=null),_0xc851x2[_0x221c[253]][_0x221c[515]](),_0xc851x2[_0x221c[253]]=null)};var mxEdgeStyle={EntityRelation:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=_0xc851x2[_0x221c[441]],_0xc851x12=_0xc851xa[_0x221c[1179]];_0xc851x5=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*_0xc851xa[_0x221c[255]];var _0xc851x13=_0xc851x2[_0x221c[439]],_0xc851x14=_0xc851x13[0],_0xc851x15=_0xc851x13[_0xc851x13[_0x221c[67]]-1],_0xc851x13=!1;if(null!=_0xc851x14){_0xc851x3= new mxCellState,_0xc851x3[_0x221c[235]]=_0xc851x14[_0x221c[235]],_0xc851x3[_0x221c[236]]=_0xc851x14[_0x221c[236]]}else {if(null!=_0xc851x3){var _0xc851x16=mxUtils[_0x221c[2227]](_0xc851x3,_0xc851x2,!0,mxConstants.DIRECTION_MASK_NONE);_0xc851x16!=mxConstants[_0x221c[434]]?_0xc851x13=_0xc851x16==mxConstants[_0x221c[436]]:(_0xc851x14=_0xc851x12[_0x221c[1198]](_0xc851x3[_0x221c[246]]),_0xc851x14[_0x221c[1500]]?_0xc851x13=0.5>=_0xc851x14[_0x221c[235]]:null!=_0xc851x4&&(_0xc851x13=_0xc851x4[_0x221c[235]]+_0xc851x4[_0x221c[117]]<_0xc851x3[_0x221c[235]]))}else {return}};_0xc851x14= !0;null!=_0xc851x15?(_0xc851x4= new mxCellState,_0xc851x4[_0x221c[235]]=_0xc851x15[_0x221c[235]],_0xc851x4[_0x221c[236]]=_0xc851x15[_0x221c[236]]):null!=_0xc851x4&&(_0xc851x16=mxUtils[_0x221c[2227]](_0xc851x4,_0xc851x2,!1,mxConstants.DIRECTION_MASK_NONE),_0xc851x16!=mxConstants[_0x221c[434]]?_0xc851x14=_0xc851x16==mxConstants[_0x221c[436]]:(_0xc851x2=_0xc851x12[_0x221c[1198]](_0xc851x4[_0x221c[246]]),_0xc851x2[_0x221c[1500]]?_0xc851x14=0.5>=_0xc851x2[_0x221c[235]]:null!=_0xc851x3&&(_0xc851x14=_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]]<_0xc851x4[_0x221c[235]])));null!=_0xc851x3&&null!=_0xc851x4&&(_0xc851x2=_0xc851x13?_0xc851x3[_0x221c[235]]:_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]],_0xc851x3=_0xc851xa[_0x221c[2228]](_0xc851x3),_0xc851x12=_0xc851x14?_0xc851x4[_0x221c[235]]:_0xc851x4[_0x221c[235]]+_0xc851x4[_0x221c[117]],_0xc851x4=_0xc851xa[_0x221c[2228]](_0xc851x4),_0xc851xa= new mxPoint(_0xc851x2+(_0xc851x13?-_0xc851x5:_0xc851x5),_0xc851x3),_0xc851x15= new mxPoint(_0xc851x12+(_0xc851x14?-_0xc851x5:_0xc851x5),_0xc851x4),_0xc851x13==_0xc851x14?(_0xc851x5=_0xc851x13?Math[_0x221c[243]](_0xc851x2,_0xc851x12)-_0xc851x5:Math[_0x221c[160]](_0xc851x2,_0xc851x12)+_0xc851x5,_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x5,_0xc851x3)),_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x5,_0xc851x4))):(_0xc851xa[_0x221c[235]]<_0xc851x15[_0x221c[235]]==_0xc851x13?(_0xc851x5=_0xc851x3+(_0xc851x4-_0xc851x3)/2,_0xc851x9[_0x221c[207]](_0xc851xa),_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851xa[_0x221c[235]],_0xc851x5)),_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x15[_0x221c[235]],_0xc851x5))):_0xc851x9[_0x221c[207]](_0xc851xa),_0xc851x9[_0x221c[207]](_0xc851x15)))},Loop:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){if(null!=_0xc851x3){_0xc851x4=_0xc851x2[_0x221c[441]];var _0xc851xa=_0xc851x4[_0x221c[1179]];_0xc851x5=null!=_0xc851x5&&0<_0xc851x5[_0x221c[67]]?_0xc851x5[0]:null;null!=_0xc851x5&&(_0xc851x5=_0xc851x4[_0x221c[2229]](_0xc851x2,_0xc851x5),mxUtils[_0x221c[442]](_0xc851x3,_0xc851x5[_0x221c[235]],_0xc851x5[_0x221c[236]])&&(_0xc851x5=null));var _0xc851x12=0,_0xc851x13=0,_0xc851x14=0,_0xc851x15=0,_0xc851xa=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_SEGMENT,_0xc851xa[_0x221c[1020]])*_0xc851x4[_0x221c[255]];_0xc851x2=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST);_0xc851x2==mxConstants[_0x221c[1358]]||_0xc851x2==mxConstants[_0x221c[1354]]?(_0xc851x12=_0xc851x4[_0x221c[2230]](_0xc851x3),_0xc851x13=_0xc851xa):(_0xc851x14=_0xc851x4[_0x221c[2228]](_0xc851x3),_0xc851x15=_0xc851xa);null==_0xc851x5||_0xc851x5[_0x221c[235]]<_0xc851x3[_0x221c[235]]||_0xc851x5[_0x221c[235]]>_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]]?null!=_0xc851x5?(_0xc851x12=_0xc851x5[_0x221c[235]],_0xc851x15=Math[_0x221c[160]](Math[_0x221c[425]](_0xc851x14-_0xc851x5[_0x221c[236]]),_0xc851x15)):_0xc851x2==mxConstants[_0x221c[1358]]?_0xc851x14=_0xc851x3[_0x221c[236]]-2*_0xc851x13:_0xc851x2==mxConstants[_0x221c[1354]]?_0xc851x14=_0xc851x3[_0x221c[236]]+_0xc851x3[_0x221c[119]]+2*_0xc851x13:_0xc851x12=_0xc851x2==mxConstants[_0x221c[1356]]?_0xc851x3[_0x221c[235]]-2*_0xc851x15:_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]]+2*_0xc851x15:null!=_0xc851x5&&(_0xc851x12=_0xc851x4[_0x221c[2230]](_0xc851x3),_0xc851x13=Math[_0x221c[160]](Math[_0x221c[425]](_0xc851x12-_0xc851x5[_0x221c[235]]),_0xc851x15),_0xc851x14=_0xc851x5[_0x221c[236]],_0xc851x15=0);_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x12-_0xc851x13,_0xc851x14-_0xc851x15));_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x12+_0xc851x13,_0xc851x14+_0xc851x15))}},ElbowConnector:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=null!=_0xc851x5&&0<_0xc851x5[_0x221c[67]]?_0xc851x5[0]:null,_0xc851x12=!1,_0xc851x13=!1;if(null!=_0xc851x3&&null!=_0xc851x4){if(null!=_0xc851xa){var _0xc851x14=Math[_0x221c[243]](_0xc851x3[_0x221c[235]],_0xc851x4[_0x221c[235]]),_0xc851x15=Math[_0x221c[160]](_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]],_0xc851x4[_0x221c[235]]+_0xc851x4[_0x221c[117]]),_0xc851x13=Math[_0x221c[243]](_0xc851x3[_0x221c[236]],_0xc851x4[_0x221c[236]]),_0xc851x16=Math[_0x221c[160]](_0xc851x3[_0x221c[236]]+_0xc851x3[_0x221c[119]],_0xc851x4[_0x221c[236]]+_0xc851x4[_0x221c[119]]),_0xc851xa=_0xc851x2[_0x221c[441]][_0x221c[2229]](_0xc851x2,_0xc851xa),_0xc851x12=_0xc851xa[_0x221c[236]]<_0xc851x13||_0xc851xa[_0x221c[236]]>_0xc851x16,_0xc851x13=_0xc851xa[_0x221c[235]]<_0xc851x14||_0xc851xa[_0x221c[235]]>_0xc851x15}else {_0xc851x14=Math[_0x221c[160]](_0xc851x3[_0x221c[235]],_0xc851x4[_0x221c[235]]),_0xc851x15=Math[_0x221c[243]](_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]],_0xc851x4[_0x221c[235]]+_0xc851x4[_0x221c[117]]),_0xc851x12=_0xc851x14==_0xc851x15,_0xc851x12||(_0xc851x13=Math[_0x221c[160]](_0xc851x3[_0x221c[236]],_0xc851x4[_0x221c[236]]),_0xc851x16=Math[_0x221c[243]](_0xc851x3[_0x221c[236]]+_0xc851x3[_0x221c[119]],_0xc851x4[_0x221c[236]]+_0xc851x4[_0x221c[119]]),_0xc851x13=_0xc851x13==_0xc851x16)}};!_0xc851x13&&(_0xc851x12||_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2231]]]==mxConstants[_0x221c[2232]])?mxEdgeStyle.TopToBottom(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9):mxEdgeStyle.SideToSide(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9)},SideToSide:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=_0xc851x2[_0x221c[441]];_0xc851x5=null!=_0xc851x5&&0<_0xc851x5[_0x221c[67]]?_0xc851x5[0]:null;var _0xc851x12=_0xc851x2[_0x221c[439]],_0xc851x13=_0xc851x12[0],_0xc851x12=_0xc851x12[_0xc851x12[_0x221c[67]]-1];null!=_0xc851x5&&(_0xc851x5=_0xc851xa[_0x221c[2229]](_0xc851x2,_0xc851x5));null!=_0xc851x13&&(_0xc851x3= new mxCellState,_0xc851x3[_0x221c[235]]=_0xc851x13[_0x221c[235]],_0xc851x3[_0x221c[236]]=_0xc851x13[_0x221c[236]]);null!=_0xc851x12&&(_0xc851x4= new mxCellState,_0xc851x4[_0x221c[235]]=_0xc851x12[_0x221c[235]],_0xc851x4[_0x221c[236]]=_0xc851x12[_0x221c[236]]);null!=_0xc851x3&&null!=_0xc851x4&&(_0xc851x2=Math[_0x221c[160]](_0xc851x3[_0x221c[235]],_0xc851x4[_0x221c[235]]),_0xc851x13=Math[_0x221c[243]](_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]],_0xc851x4[_0x221c[235]]+_0xc851x4[_0x221c[117]]),_0xc851x2=null!=_0xc851x5?_0xc851x5[_0x221c[235]]:_0xc851x13+(_0xc851x2-_0xc851x13)/2,_0xc851x13=_0xc851xa[_0x221c[2228]](_0xc851x3),_0xc851xa=_0xc851xa[_0x221c[2228]](_0xc851x4),null!=_0xc851x5&&(_0xc851x5[_0x221c[236]]>=_0xc851x3[_0x221c[236]]&&_0xc851x5[_0x221c[236]]<=_0xc851x3[_0x221c[236]]+_0xc851x3[_0x221c[119]]&&(_0xc851x13=_0xc851x5[_0x221c[236]]),_0xc851x5[_0x221c[236]]>=_0xc851x4[_0x221c[236]]&&_0xc851x5[_0x221c[236]]<=_0xc851x4[_0x221c[236]]+_0xc851x4[_0x221c[119]]&&(_0xc851xa=_0xc851x5[_0x221c[236]])),!mxUtils[_0x221c[442]](_0xc851x4,_0xc851x2,_0xc851x13)&&!mxUtils[_0x221c[442]](_0xc851x3,_0xc851x2,_0xc851x13)&&_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x2,_0xc851x13)),!mxUtils[_0x221c[442]](_0xc851x4,_0xc851x2,_0xc851xa)&&!mxUtils[_0x221c[442]](_0xc851x3,_0xc851x2,_0xc851xa)&&_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x2,_0xc851xa)),1==_0xc851x9[_0x221c[67]]&&(null!=_0xc851x5?!mxUtils[_0x221c[442]](_0xc851x4,_0xc851x2,_0xc851x5[_0x221c[236]])&&!mxUtils[_0x221c[442]](_0xc851x3,_0xc851x2,_0xc851x5[_0x221c[236]])&&_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x2,_0xc851x5[_0x221c[236]])):(_0xc851xa=Math[_0x221c[160]](_0xc851x3[_0x221c[236]],_0xc851x4[_0x221c[236]]),_0xc851x3=Math[_0x221c[243]](_0xc851x3[_0x221c[236]]+_0xc851x3[_0x221c[119]],_0xc851x4[_0x221c[236]]+_0xc851x4[_0x221c[119]]),_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x2,_0xc851xa+(_0xc851x3-_0xc851xa)/2)))))},TopToBottom:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=_0xc851x2[_0x221c[441]];_0xc851x5=null!=_0xc851x5&&0<_0xc851x5[_0x221c[67]]?_0xc851x5[0]:null;var _0xc851x12=_0xc851x2[_0x221c[439]],_0xc851x13=_0xc851x12[0],_0xc851x12=_0xc851x12[_0xc851x12[_0x221c[67]]-1];null!=_0xc851x5&&(_0xc851x5=_0xc851xa[_0x221c[2229]](_0xc851x2,_0xc851x5));null!=_0xc851x13&&(_0xc851x3= new mxCellState,_0xc851x3[_0x221c[235]]=_0xc851x13[_0x221c[235]],_0xc851x3[_0x221c[236]]=_0xc851x13[_0x221c[236]]);null!=_0xc851x12&&(_0xc851x4= new mxCellState,_0xc851x4[_0x221c[235]]=_0xc851x12[_0x221c[235]],_0xc851x4[_0x221c[236]]=_0xc851x12[_0x221c[236]]);null!=_0xc851x3&&null!=_0xc851x4&&(_0xc851x13=Math[_0x221c[160]](_0xc851x3[_0x221c[236]],_0xc851x4[_0x221c[236]]),_0xc851x12=Math[_0x221c[243]](_0xc851x3[_0x221c[236]]+_0xc851x3[_0x221c[119]],_0xc851x4[_0x221c[236]]+_0xc851x4[_0x221c[119]]),_0xc851x2=_0xc851xa[_0x221c[2230]](_0xc851x3),null!=_0xc851x5&&(_0xc851x5[_0x221c[235]]>=_0xc851x3[_0x221c[235]]&&_0xc851x5[_0x221c[235]]<=_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]])&&(_0xc851x2=_0xc851x5[_0x221c[235]]),_0xc851x13=null!=_0xc851x5?_0xc851x5[_0x221c[236]]:_0xc851x12+(_0xc851x13-_0xc851x12)/2,!mxUtils[_0x221c[442]](_0xc851x4,_0xc851x2,_0xc851x13)&&!mxUtils[_0x221c[442]](_0xc851x3,_0xc851x2,_0xc851x13)&&_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x2,_0xc851x13)),_0xc851x2=null!=_0xc851x5&&_0xc851x5[_0x221c[235]]>=_0xc851x4[_0x221c[235]]&&_0xc851x5[_0x221c[235]]<=_0xc851x4[_0x221c[235]]+_0xc851x4[_0x221c[117]]?_0xc851x5[_0x221c[235]]:_0xc851xa[_0x221c[2230]](_0xc851x4),!mxUtils[_0x221c[442]](_0xc851x4,_0xc851x2,_0xc851x13)&&!mxUtils[_0x221c[442]](_0xc851x3,_0xc851x2,_0xc851x13)&&_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x2,_0xc851x13)),1==_0xc851x9[_0x221c[67]]&&(null!=_0xc851x5&&1==_0xc851x9[_0x221c[67]]?!mxUtils[_0x221c[442]](_0xc851x4,_0xc851x5[_0x221c[235]],_0xc851x13)&&!mxUtils[_0x221c[442]](_0xc851x3,_0xc851x5[_0x221c[235]],_0xc851x13)&&_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x5[_0x221c[235]],_0xc851x13)):(_0xc851xa=Math[_0x221c[160]](_0xc851x3[_0x221c[235]],_0xc851x4[_0x221c[235]]),_0xc851x3=Math[_0x221c[243]](_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]],_0xc851x4[_0x221c[235]]+_0xc851x4[_0x221c[117]]),_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851xa+(_0xc851x3-_0xc851xa)/2,_0xc851x13)))))},SegmentConnector:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=_0xc851x2[_0x221c[439]],_0xc851x12=!0,_0xc851x13=null,_0xc851x14=_0xc851xa[0];null==_0xc851x14&&null!=_0xc851x3?_0xc851x14= new mxPoint(_0xc851x2[_0x221c[441]][_0x221c[2230]](_0xc851x3),_0xc851x2[_0x221c[441]][_0x221c[2228]](_0xc851x3)):null!=_0xc851x14&&(_0xc851x14=_0xc851x14[_0x221c[238]]());var _0xc851x15=_0xc851xa[_0x221c[67]]-1;if(null!=_0xc851x5&&0<_0xc851x5[_0x221c[67]]){for(var _0xc851x13=_0xc851x2[_0x221c[441]][_0x221c[2229]](_0xc851x2,_0xc851x5[0]),_0xc851x16=_0xc851x3,_0xc851x17=_0xc851xa[0],_0xc851x18=!1,_0xc851x19=!1,_0xc851x18=_0xc851x13,_0xc851x1a=_0xc851x5[_0x221c[67]],_0xc851x1b=0;2>_0xc851x1b;_0xc851x1b++){var _0xc851x1c=null!=_0xc851x17&&_0xc851x17[_0x221c[235]]==_0xc851x18[_0x221c[235]],_0xc851x1d=null!=_0xc851x17&&_0xc851x17[_0x221c[236]]==_0xc851x18[_0x221c[236]],_0xc851x1e=null!=_0xc851x16&&_0xc851x18[_0x221c[236]]>=_0xc851x16[_0x221c[236]]&&_0xc851x18[_0x221c[236]]<=_0xc851x16[_0x221c[236]]+_0xc851x16[_0x221c[119]],_0xc851x16=null!=_0xc851x16&&_0xc851x18[_0x221c[235]]>=_0xc851x16[_0x221c[235]]&&_0xc851x18[_0x221c[235]]<=_0xc851x16[_0x221c[235]]+_0xc851x16[_0x221c[117]],_0xc851x18=_0xc851x1d||null==_0xc851x17&&_0xc851x1e,_0xc851x19=_0xc851x1c||null==_0xc851x17&&_0xc851x16;if(null!=_0xc851x17&&!_0xc851x1d&&!_0xc851x1c&&(_0xc851x1e||_0xc851x16)){_0xc851x12=_0xc851x1e?!1:!0;break};if(_0xc851x19||_0xc851x18){_0xc851x12=_0xc851x18;1==_0xc851x1b&&(_0xc851x12=0==_0xc851x5[_0x221c[67]]%2?_0xc851x18:_0xc851x19);break};_0xc851x16=_0xc851x4;_0xc851x17=_0xc851xa[_0xc851x15];_0xc851x18=_0xc851x2[_0x221c[441]][_0x221c[2229]](_0xc851x2,_0xc851x5[_0xc851x1a-1])};_0xc851x12&&(null!=_0xc851xa[0]&&_0xc851xa[0][_0x221c[236]]!=_0xc851x13[_0x221c[236]]||null==_0xc851xa[0]&&null!=_0xc851x3&&(_0xc851x13[_0x221c[236]]<_0xc851x3[_0x221c[236]]||_0xc851x13[_0x221c[236]]>_0xc851x3[_0x221c[236]]+_0xc851x3[_0x221c[119]]))?_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x14[_0x221c[235]],_0xc851x13[_0x221c[236]])):!_0xc851x12&&(null!=_0xc851xa[0]&&_0xc851xa[0][_0x221c[235]]!=_0xc851x13[_0x221c[235]]||null==_0xc851xa[0]&&null!=_0xc851x3&&(_0xc851x13[_0x221c[235]]<_0xc851x3[_0x221c[235]]||_0xc851x13[_0x221c[235]]>_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]]))&&_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x13[_0x221c[235]],_0xc851x14[_0x221c[236]]));_0xc851x12?_0xc851x14[_0x221c[236]]=_0xc851x13[_0x221c[236]]:_0xc851x14[_0x221c[235]]=_0xc851x13[_0x221c[235]];for(_0xc851x1b=0;_0xc851x1b<_0xc851x5[_0x221c[67]];_0xc851x1b++){_0xc851x12= !_0xc851x12,_0xc851x13=_0xc851x2[_0x221c[441]][_0x221c[2229]](_0xc851x2,_0xc851x5[_0xc851x1b]),_0xc851x12?_0xc851x14[_0x221c[236]]=_0xc851x13[_0x221c[236]]:_0xc851x14[_0x221c[235]]=_0xc851x13[_0x221c[235]],_0xc851x9[_0x221c[207]](_0xc851x14[_0x221c[238]]())}}else {_0xc851x13=_0xc851x14,_0xc851x12= !0};_0xc851x14=_0xc851xa[_0xc851x15];null==_0xc851x14&&null!=_0xc851x4&&(_0xc851x14= new mxPoint(_0xc851x2[_0x221c[441]][_0x221c[2230]](_0xc851x4),_0xc851x2[_0x221c[441]][_0x221c[2228]](_0xc851x4)));_0xc851x12&&(null!=_0xc851xa[_0xc851x15]&&_0xc851xa[_0xc851x15][_0x221c[236]]!=_0xc851x13[_0x221c[236]]||null==_0xc851xa[_0xc851x15]&&null!=_0xc851x4&&(_0xc851x13[_0x221c[236]]<_0xc851x4[_0x221c[236]]||_0xc851x13[_0x221c[236]]>_0xc851x4[_0x221c[236]]+_0xc851x4[_0x221c[119]]))?_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x14[_0x221c[235]],_0xc851x13[_0x221c[236]])):!_0xc851x12&&(null!=_0xc851xa[_0xc851x15]&&_0xc851xa[_0xc851x15][_0x221c[235]]!=_0xc851x13[_0x221c[235]]||null==_0xc851xa[_0xc851x15]&&null!=_0xc851x4&&(_0xc851x13[_0x221c[235]]<_0xc851x4[_0x221c[235]]||_0xc851x13[_0x221c[235]]>_0xc851x4[_0x221c[235]]+_0xc851x4[_0x221c[117]]))&&_0xc851x9[_0x221c[207]]( new mxPoint(_0xc851x13[_0x221c[235]],_0xc851x14[_0x221c[236]]));if(null==_0xc851xa[0]&&null!=_0xc851x3){for(;1<_0xc851x9[_0x221c[67]]&&mxUtils[_0x221c[442]](_0xc851x3,_0xc851x9[1][_0x221c[235]],_0xc851x9[1][_0x221c[236]]);){_0xc851x9=_0xc851x9[_0x221c[300]](1,1)}};if(null==_0xc851xa[_0xc851x15]&&null!=_0xc851x4){for(;1<_0xc851x9[_0x221c[67]]&&mxUtils[_0x221c[442]](_0xc851x4,_0xc851x9[_0xc851x9[_0x221c[67]]-1][_0x221c[235]],_0xc851x9[_0xc851x9[_0x221c[67]]-1][_0x221c[236]]);){_0xc851x9=_0xc851x9[_0x221c[300]](_0xc851x9[_0x221c[67]]-1,1)}}},orthBuffer:10,dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,OrthConnector:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=_0xc851x2[_0x221c[441]][_0x221c[1179]],_0xc851x12=null==_0xc851x3?!1:_0xc851xa[_0x221c[502]]()[_0x221c[250]](_0xc851x3[_0x221c[246]]),_0xc851xa=null==_0xc851x4?!1:_0xc851xa[_0x221c[502]]()[_0x221c[250]](_0xc851x4[_0x221c[246]]);if(null!=_0xc851x5&&0<_0xc851x5[_0x221c[67]]||_0xc851x12||_0xc851xa){mxEdgeStyle.SegmentConnector(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9)}else {_0xc851x5=_0xc851x2[_0x221c[439]];var _0xc851x13=_0xc851x5[0],_0xc851x14=_0xc851x5[_0xc851x5[_0x221c[67]]-1];_0xc851x5=null!=_0xc851x3?_0xc851x3[_0x221c[235]]:_0xc851x13[_0x221c[235]];var _0xc851x12=null!=_0xc851x3?_0xc851x3[_0x221c[236]]:_0xc851x13[_0x221c[236]],_0xc851x15=null!=_0xc851x3?_0xc851x3[_0x221c[117]]:1,_0xc851x16=null!=_0xc851x3?_0xc851x3[_0x221c[119]]:1,_0xc851x17=null!=_0xc851x4?_0xc851x4[_0x221c[235]]:_0xc851x14[_0x221c[235]],_0xc851x18=null!=_0xc851x4?_0xc851x4[_0x221c[236]]:_0xc851x14[_0x221c[236]],_0xc851x19=null!=_0xc851x4?_0xc851x4[_0x221c[117]]:1,_0xc851x1a=null!=_0xc851x4?_0xc851x4[_0x221c[119]]:1,_0xc851xa=_0xc851x2[_0x221c[441]][_0x221c[255]]*mxEdgeStyle[_0x221c[2233]],_0xc851x1b=[mxConstants[_0x221c[2234]],mxConstants[_0x221c[2234]]];null!=_0xc851x3&&(_0xc851x1b[0]=mxUtils[_0x221c[2227]](_0xc851x3,_0xc851x2,!0,mxConstants.DIRECTION_MASK_ALL));null!=_0xc851x4&&(_0xc851x1b[1]=mxUtils[_0x221c[2227]](_0xc851x4,_0xc851x2,!1,mxConstants.DIRECTION_MASK_ALL));_0xc851x2=[0,0];_0xc851x5=[[_0xc851x5,_0xc851x12,_0xc851x15,_0xc851x16],[_0xc851x17,_0xc851x18,_0xc851x19,_0xc851x1a]];for(_0xc851x15=0;2>_0xc851x15;_0xc851x15++){mxEdgeStyle[_0x221c[2235]][_0xc851x15][1]=_0xc851x5[_0xc851x15][0]-_0xc851xa,mxEdgeStyle[_0x221c[2235]][_0xc851x15][2]=_0xc851x5[_0xc851x15][1]-_0xc851xa,mxEdgeStyle[_0x221c[2235]][_0xc851x15][4]=_0xc851x5[_0xc851x15][0]+_0xc851x5[_0xc851x15][2]+_0xc851xa,mxEdgeStyle[_0x221c[2235]][_0xc851x15][8]=_0xc851x5[_0xc851x15][1]+_0xc851x5[_0xc851x15][3]+_0xc851xa};_0xc851x15=_0xc851x5[0][0]+_0xc851x5[0][2]/2-(_0xc851x5[1][0]+_0xc851x5[1][2]/2);_0xc851x16=_0xc851x5[0][1]+_0xc851x5[0][3]/2-(_0xc851x5[1][1]+_0xc851x5[1][3]/2);_0xc851x12=0;0>_0xc851x15?_0xc851x12=0>_0xc851x16?2:1:0>=_0xc851x16&&(_0xc851x12=3,0==_0xc851x15&&(_0xc851x12=2));_0xc851x16=null;null!=_0xc851x3&&(_0xc851x16=_0xc851x13);_0xc851x3=[[0.5,0.5],[0.5,0.5]];for(_0xc851x15=0;2>_0xc851x15;_0xc851x15++){null!=_0xc851x16&&(_0xc851x3[_0xc851x15][0]=(_0xc851x16[_0x221c[235]]-_0xc851x5[_0xc851x15][0])/_0xc851x5[_0xc851x15][2],0.01>_0xc851x3[_0xc851x15][0]?_0xc851x2[_0xc851x15]=mxConstants[_0x221c[436]]:0.99<_0xc851x3[_0xc851x15][0]&&(_0xc851x2[_0xc851x15]=mxConstants[_0x221c[438]]),_0xc851x3[_0xc851x15][1]=(_0xc851x16[_0x221c[236]]-_0xc851x5[_0xc851x15][1])/_0xc851x5[_0xc851x15][3],0.01>_0xc851x3[_0xc851x15][1]?_0xc851x2[_0xc851x15]=mxConstants[_0x221c[435]]:0.99<_0xc851x3[_0xc851x15][1]&&(_0xc851x2[_0xc851x15]=mxConstants[_0x221c[437]])),_0xc851x16=null,null!=_0xc851x4&&(_0xc851x16=_0xc851x14)};_0xc851x15=_0xc851x5[0][1]-(_0xc851x5[1][1]+_0xc851x5[1][3]);_0xc851x16=_0xc851x5[0][0]-(_0xc851x5[1][0]+_0xc851x5[1][2]);_0xc851x17=_0xc851x5[1][1]-(_0xc851x5[0][1]+_0xc851x5[0][3]);_0xc851x18=_0xc851x5[1][0]-(_0xc851x5[0][0]+_0xc851x5[0][2]);mxEdgeStyle[_0x221c[2236]][1]=Math[_0x221c[160]](_0xc851x16-2*_0xc851xa,0);mxEdgeStyle[_0x221c[2236]][2]=Math[_0x221c[160]](_0xc851x15-2*_0xc851xa,0);mxEdgeStyle[_0x221c[2236]][4]=Math[_0x221c[160]](_0xc851x17-2*_0xc851xa,0);mxEdgeStyle[_0x221c[2236]][3]=Math[_0x221c[160]](_0xc851x18-2*_0xc851xa,0);_0xc851x4=[];_0xc851x13=[];_0xc851x14=[];_0xc851x13[0]=_0xc851x16>=_0xc851x18?mxConstants[_0x221c[436]]:mxConstants[_0x221c[438]];_0xc851x14[0]=_0xc851x15>=_0xc851x17?mxConstants[_0x221c[435]]:mxConstants[_0x221c[437]];_0xc851x13[1]=mxUtils[_0x221c[2237]](_0xc851x13[0]);_0xc851x14[1]=mxUtils[_0x221c[2237]](_0xc851x14[0]);_0xc851x16=_0xc851x16>=_0xc851x18?_0xc851x16:_0xc851x18;_0xc851x17=_0xc851x15>=_0xc851x17?_0xc851x15:_0xc851x17;_0xc851x18=[[0,0],[0,0]];_0xc851x19= !1;for(_0xc851x15=0;2>_0xc851x15;_0xc851x15++){0==_0xc851x2[_0xc851x15]&&(0==(_0xc851x13[_0xc851x15]&_0xc851x1b[_0xc851x15])&&(_0xc851x13[_0xc851x15]=mxUtils[_0x221c[2237]](_0xc851x13[_0xc851x15])),0==(_0xc851x14[_0xc851x15]&_0xc851x1b[_0xc851x15])&&(_0xc851x14[_0xc851x15]=mxUtils[_0x221c[2237]](_0xc851x14[_0xc851x15])),_0xc851x18[_0xc851x15][0]=_0xc851x14[_0xc851x15],_0xc851x18[_0xc851x15][1]=_0xc851x13[_0xc851x15])};_0xc851x17>2*_0xc851xa&&_0xc851x16>2*_0xc851xa&&(0<(_0xc851x13[0]&_0xc851x1b[0])&&0<(_0xc851x14[1]&_0xc851x1b[1])?(_0xc851x18[0][0]=_0xc851x13[0],_0xc851x18[0][1]=_0xc851x14[0],_0xc851x18[1][0]=_0xc851x14[1],_0xc851x18[1][1]=_0xc851x13[1],_0xc851x19= !0):0<(_0xc851x14[0]&_0xc851x1b[0])&&0<(_0xc851x13[1]&_0xc851x1b[1])&&(_0xc851x18[0][0]=_0xc851x14[0],_0xc851x18[0][1]=_0xc851x13[0],_0xc851x18[1][0]=_0xc851x13[1],_0xc851x18[1][1]=_0xc851x14[1],_0xc851x19= !0));_0xc851x17>2*_0xc851xa&&!_0xc851x19&&(_0xc851x18[0][0]=_0xc851x14[0],_0xc851x18[0][1]=_0xc851x13[0],_0xc851x18[1][0]=_0xc851x14[1],_0xc851x18[1][1]=_0xc851x13[1],_0xc851x19= !0);_0xc851x16>2*_0xc851xa&&!_0xc851x19&&(_0xc851x18[0][0]=_0xc851x13[0],_0xc851x18[0][1]=_0xc851x14[0],_0xc851x18[1][0]=_0xc851x13[1],_0xc851x18[1][1]=_0xc851x14[1]);for(_0xc851x15=0;2>_0xc851x15;_0xc851x15++){if(0==_0xc851x2[_0xc851x15]&&(0==(_0xc851x18[_0xc851x15][0]&_0xc851x1b[_0xc851x15])&&(_0xc851x18[_0xc851x15][0]=_0xc851x18[_0xc851x15][1]),_0xc851x4[_0xc851x15]=_0xc851x18[_0xc851x15][0]&_0xc851x1b[_0xc851x15],_0xc851x4[_0xc851x15]|=(_0xc851x18[_0xc851x15][1]&_0xc851x1b[_0xc851x15])<<8,_0xc851x4[_0xc851x15]|=(_0xc851x18[1-_0xc851x15][_0xc851x15]&_0xc851x1b[_0xc851x15])<<16,_0xc851x4[_0xc851x15]|=(_0xc851x18[1-_0xc851x15][1-_0xc851x15]&_0xc851x1b[_0xc851x15])<<24,0==(_0xc851x4[_0xc851x15]&15)&&(_0xc851x4[_0xc851x15]<<=8),0==(_0xc851x4[_0xc851x15]&3840)&&(_0xc851x4[_0xc851x15]=_0xc851x4[_0xc851x15]&15|_0xc851x4[_0xc851x15]>>8),0==(_0xc851x4[_0xc851x15]&983040)&&(_0xc851x4[_0xc851x15]=_0xc851x4[_0xc851x15]&65535|(_0xc851x4[_0xc851x15]&251658240)>>8),_0xc851x2[_0xc851x15]=_0xc851x4[_0xc851x15]&15,_0xc851x1b[_0xc851x15]==mxConstants[_0x221c[436]]||_0xc851x1b[_0xc851x15]==mxConstants[_0x221c[435]]||_0xc851x1b[_0xc851x15]==mxConstants[_0x221c[438]]||_0xc851x1b[_0xc851x15]==mxConstants[_0x221c[437]])){_0xc851x2[_0xc851x15]=_0xc851x1b[_0xc851x15]}};_0xc851x15=_0xc851x2[0]==mxConstants[_0x221c[438]]?3:_0xc851x2[0];_0xc851x1b=_0xc851x2[1]==mxConstants[_0x221c[438]]?3:_0xc851x2[1];_0xc851x15-=_0xc851x12;_0xc851x1b-=_0xc851x12;1>_0xc851x15&&(_0xc851x15+=4);1>_0xc851x1b&&(_0xc851x1b+=4);_0xc851x1b=mxEdgeStyle[_0x221c[2238]][_0xc851x15-1][_0xc851x1b-1];mxEdgeStyle[_0x221c[2239]][0][0]=_0xc851x5[0][0];mxEdgeStyle[_0x221c[2239]][0][1]=_0xc851x5[0][1];switch(_0xc851x2[0]){case mxConstants[_0x221c[436]]:mxEdgeStyle[_0x221c[2239]][0][0]-=_0xc851xa;mxEdgeStyle[_0x221c[2239]][0][1]+=_0xc851x3[0][1]*_0xc851x5[0][3];break;case mxConstants[_0x221c[437]]:mxEdgeStyle[_0x221c[2239]][0][0]+=_0xc851x3[0][0]*_0xc851x5[0][2];mxEdgeStyle[_0x221c[2239]][0][1]+=_0xc851x5[0][3]+_0xc851xa;break;case mxConstants[_0x221c[438]]:mxEdgeStyle[_0x221c[2239]][0][0]+=_0xc851x5[0][2]+_0xc851xa;mxEdgeStyle[_0x221c[2239]][0][1]+=_0xc851x3[0][1]*_0xc851x5[0][3];break;case mxConstants[_0x221c[435]]:mxEdgeStyle[_0x221c[2239]][0][0]+=_0xc851x3[0][0]*_0xc851x5[0][2],mxEdgeStyle[_0x221c[2239]][0][1]-=_0xc851xa};_0xc851xa=0;_0xc851x13=_0xc851x4=0<(_0xc851x2[0]&(mxConstants[_0x221c[438]]|mxConstants[_0x221c[436]]))?0:1;for(_0xc851x15=_0xc851x14=0;_0xc851x15<_0xc851x1b[_0x221c[67]];_0xc851x15++){_0xc851x14=_0xc851x1b[_0xc851x15]&15;_0xc851x1a=_0xc851x14==mxConstants[_0x221c[438]]?3:_0xc851x14;_0xc851x1a+=_0xc851x12;4<_0xc851x1a&&(_0xc851x1a-=4);_0xc851x16=mxEdgeStyle[_0x221c[2240]][_0xc851x1a-1];_0xc851x14=0<_0xc851x1a%2?0:1;_0xc851x14!=_0xc851x4&&(_0xc851xa++,mxEdgeStyle[_0x221c[2239]][_0xc851xa][0]=mxEdgeStyle[_0x221c[2239]][_0xc851xa-1][0],mxEdgeStyle[_0x221c[2239]][_0xc851xa][1]=mxEdgeStyle[_0x221c[2239]][_0xc851xa-1][1]);var _0xc851x1c=0<(_0xc851x1b[_0xc851x15]&mxEdgeStyle[_0x221c[2241]]),_0xc851x19=0<(_0xc851x1b[_0xc851x15]&mxEdgeStyle[_0x221c[2242]]),_0xc851x17=(_0xc851x1b[_0xc851x15]&mxEdgeStyle[_0x221c[2243]])>>5,_0xc851x17=_0xc851x17<<_0xc851x12;15<_0xc851x17&&(_0xc851x17>>=4);_0xc851x18=0<(_0xc851x1b[_0xc851x15]&mxEdgeStyle[_0x221c[2244]]);(_0xc851x19||_0xc851x1c)&&9>_0xc851x17?(_0xc851x1a=0,_0xc851x19=_0xc851x19?0:1,_0xc851x1a=_0xc851x18&&0==_0xc851x14?_0xc851x5[_0xc851x19][0]+_0xc851x3[_0xc851x19][0]*_0xc851x5[_0xc851x19][2]:_0xc851x18?_0xc851x5[_0xc851x19][1]+_0xc851x3[_0xc851x19][1]*_0xc851x5[_0xc851x19][3]:mxEdgeStyle[_0x221c[2235]][_0xc851x19][_0xc851x17],0==_0xc851x14?(_0xc851x17=(_0xc851x1a-mxEdgeStyle[_0x221c[2239]][_0xc851xa][0])*_0xc851x16[0],0<_0xc851x17&&(mxEdgeStyle[_0x221c[2239]][_0xc851xa][0]+=_0xc851x16[0]*_0xc851x17)):(_0xc851x17=(_0xc851x1a-mxEdgeStyle[_0x221c[2239]][_0xc851xa][1])*_0xc851x16[1],0<_0xc851x17&&(mxEdgeStyle[_0x221c[2239]][_0xc851xa][1]+=_0xc851x16[1]*_0xc851x17))):_0xc851x18&&(mxEdgeStyle[_0x221c[2239]][_0xc851xa][0]+=_0xc851x16[0]*Math[_0x221c[425]](mxEdgeStyle[_0x221c[2236]][_0xc851x1a]/2),mxEdgeStyle[_0x221c[2239]][_0xc851xa][1]+=_0xc851x16[1]*Math[_0x221c[425]](mxEdgeStyle[_0x221c[2236]][_0xc851x1a]/2));0<_0xc851xa&&mxEdgeStyle[_0x221c[2239]][_0xc851xa][_0xc851x14]==mxEdgeStyle[_0x221c[2239]][_0xc851xa-1][_0xc851x14]?_0xc851xa--:_0xc851x4=_0xc851x14};for(_0xc851x15=0;_0xc851x15<=_0xc851xa&& !(_0xc851x15==_0xc851xa&&((0<(_0xc851x2[1]&(mxConstants[_0x221c[438]]|mxConstants[_0x221c[436]]))?0:1)==_0xc851x13?0:1)!=(_0xc851xa+1)%2);_0xc851x15++){_0xc851x9[_0x221c[207]]( new mxPoint(mxEdgeStyle[_0x221c[2239]][_0xc851x15][0],mxEdgeStyle[_0x221c[2239]][_0xc851x15][1]))}}},getRoutePattern:function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=_0xc851x2[0]==mxConstants[_0x221c[438]]?3:_0xc851x2[0];_0xc851x2=_0xc851x2[1]==mxConstants[_0x221c[438]]?3:_0xc851x2[1];_0xc851x9-=_0xc851x3;_0xc851x2-=_0xc851x3;1>_0xc851x9&&(_0xc851x9+=4);1>_0xc851x2&&(_0xc851x2+=4);_0xc851x3=routePatterns[_0xc851x9-1][_0xc851x2-1];if(0==_0xc851x4||0==_0xc851x5){null!=inlineRoutePatterns[_0xc851x9-1][_0xc851x2-1]&&(_0xc851x3=inlineRoutePatterns[_0xc851x9-1][_0xc851x2-1])};return _0xc851x3}},mxStyleRegistry={values:[],putValue:function(_0xc851x2,_0xc851x3){mxStyleRegistry[_0x221c[2245]][_0xc851x2]=_0xc851x3},getValue:function(_0xc851x2){return mxStyleRegistry[_0x221c[2245]][_0xc851x2]},getName:function(_0xc851x2){for(var _0xc851x3 in mxStyleRegistry[_0x221c[2245]]){if(mxStyleRegistry[_0x221c[2245]][_0xc851x3]==_0xc851x2){return _0xc851x3}};return null}};mxStyleRegistry[_0x221c[2246]](mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector);mxStyleRegistry[_0x221c[2246]](mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation);mxStyleRegistry[_0x221c[2246]](mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop);mxStyleRegistry[_0x221c[2246]](mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide);mxStyleRegistry[_0x221c[2246]](mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom);mxStyleRegistry[_0x221c[2246]](mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector);mxStyleRegistry[_0x221c[2246]](mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector);mxStyleRegistry[_0x221c[2246]](mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter);mxStyleRegistry[_0x221c[2246]](mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter);mxStyleRegistry[_0x221c[2246]](mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter);mxStyleRegistry[_0x221c[2246]](mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter);function mxGraphView(_0xc851x2){this[_0x221c[1179]]=_0xc851x2;this[_0x221c[513]]= new mxPoint;this[_0x221c[2247]]= new mxRectangle;this[_0x221c[1214]]= new mxDictionary}mxGraphView[_0x221c[202]]= new mxEventSource;mxGraphView[_0x221c[202]][_0x221c[196]]=mxGraphView;mxGraphView[_0x221c[202]][_0x221c[2248]]= new mxPoint;mxGraphView[_0x221c[202]][_0x221c[2091]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[819]:_0x221c[110];mxGraphView[_0x221c[202]][_0x221c[2249]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[2250]:_0x221c[110];mxGraphView[_0x221c[202]][_0x221c[2251]]= !1;mxGraphView[_0x221c[202]][_0x221c[2252]]= !0;mxGraphView[_0x221c[202]][_0x221c[2253]]= !0;mxGraphView[_0x221c[202]][_0x221c[2254]]= !0;mxGraphView[_0x221c[202]][_0x221c[1179]]=null;mxGraphView[_0x221c[202]][_0x221c[1741]]=null;mxGraphView[_0x221c[202]][_0x221c[2247]]=null;mxGraphView[_0x221c[202]][_0x221c[255]]=1;mxGraphView[_0x221c[202]][_0x221c[513]]=null;mxGraphView[_0x221c[202]][_0x221c[2255]]= !1;mxGraphView[_0x221c[202]][_0x221c[517]]=function(){return this[_0x221c[2247]]};mxGraphView[_0x221c[202]][_0x221c[2256]]=function(_0xc851x2){this[_0x221c[2247]]=_0xc851x2};mxGraphView[_0x221c[202]][_0x221c[1799]]=function(_0xc851x2){var _0xc851x3=null;if(null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]){for(var _0xc851x4=this[_0x221c[1179]][_0x221c[502]](),_0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){if(_0xc851x4[_0x221c[1193]](_0xc851x2[_0xc851x5])||_0xc851x4[_0x221c[250]](_0xc851x2[_0xc851x5])){var _0xc851x9=this[_0x221c[248]](_0xc851x2[_0xc851x5]);null!=_0xc851x9&&(null==_0xc851x3?_0xc851x3= new mxRectangle(_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[236]],_0xc851x9[_0x221c[117]],_0xc851x9[_0x221c[119]]):_0xc851x3[_0x221c[99]](_0xc851x9))}}};return _0xc851x3};mxGraphView[_0x221c[202]][_0x221c[2257]]=function(_0xc851x2){if(this[_0x221c[1741]]!=_0xc851x2){var _0xc851x3= new mxCurrentRootChange(this,_0xc851x2);_0xc851x3[_0x221c[350]]();var _0xc851x4= new mxUndoableEdit(this,!1);_0xc851x4[_0x221c[99]](_0xc851x3);this[_0x221c[746]]( new mxEventObject(mxEvent.UNDO,_0x221c[1061],_0xc851x4));this[_0x221c[1179]][_0x221c[2258]]()};return _0xc851x2};mxGraphView[_0x221c[202]][_0x221c[829]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[255]],_0xc851x9= new mxPoint(this[_0x221c[513]][_0x221c[235]],this[_0x221c[513]][_0x221c[236]]);if(this[_0x221c[255]]!=_0xc851x2||this[_0x221c[513]][_0x221c[235]]!=_0xc851x3||this[_0x221c[513]][_0x221c[236]]!=_0xc851x4){this[_0x221c[255]]=_0xc851x2,this[_0x221c[513]][_0x221c[235]]=_0xc851x3,this[_0x221c[513]][_0x221c[236]]=_0xc851x4,this[_0x221c[503]]()&&(this[_0x221c[2259]](),this[_0x221c[1179]][_0x221c[2258]]())};this[_0x221c[746]]( new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,_0x221c[255],_0xc851x2,_0x221c[2260],_0xc851x5,_0x221c[513],this[_0x221c[513]],_0x221c[2261],_0xc851x9))};mxGraphView[_0x221c[202]][_0x221c[518]]=function(){return this[_0x221c[255]]};mxGraphView[_0x221c[202]][_0x221c[2262]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[255]];this[_0x221c[255]]!=_0xc851x2&&(this[_0x221c[255]]=_0xc851x2,this[_0x221c[503]]()&&(this[_0x221c[2259]](),this[_0x221c[1179]][_0x221c[2258]]()));this[_0x221c[746]]( new mxEventObject(mxEvent.SCALE,_0x221c[255],_0xc851x2,_0x221c[2260],_0xc851x3))};mxGraphView[_0x221c[202]][_0x221c[512]]=function(){return this[_0x221c[513]]};mxGraphView[_0x221c[202]][_0x221c[1147]]=function(_0xc851x2,_0xc851x3){var _0xc851x4= new mxPoint(this[_0x221c[513]][_0x221c[235]],this[_0x221c[513]][_0x221c[236]]);if(this[_0x221c[513]][_0x221c[235]]!=_0xc851x2||this[_0x221c[513]][_0x221c[236]]!=_0xc851x3){this[_0x221c[513]][_0x221c[235]]=_0xc851x2,this[_0x221c[513]][_0x221c[236]]=_0xc851x3,this[_0x221c[503]]()&&(this[_0x221c[2259]](),this[_0x221c[1179]][_0x221c[2258]]())};this[_0x221c[746]]( new mxEventObject(mxEvent.TRANSLATE,_0x221c[513],this[_0x221c[513]],_0x221c[2261],_0xc851x4))};mxGraphView[_0x221c[202]][_0x221c[802]]=function(){null!=this[_0x221c[1741]]&&this[_0x221c[200]]();this[_0x221c[2259]]()};mxGraphView[_0x221c[202]][_0x221c[2259]]=function(){this[_0x221c[2263]]();this[_0x221c[2264]]()};mxGraphView[_0x221c[202]][_0x221c[200]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1179]][_0x221c[502]]();_0xc851x2=_0xc851x2||_0xc851x5[_0x221c[501]]();_0xc851x3=null!=_0xc851x3?_0xc851x3:!1;_0xc851x4=null!=_0xc851x4?_0xc851x4:!0;this[_0x221c[2265]](_0xc851x2);if(_0xc851x4&&(_0xc851x3||_0xc851x2!=this[_0x221c[1741]])){_0xc851x4=_0xc851x5[_0x221c[262]](_0xc851x2);for(var _0xc851x9=0;_0xc851x9<_0xc851x4;_0xc851x9++){this[_0x221c[200]](_0xc851x5[_0x221c[263]](_0xc851x2,_0xc851x9),_0xc851x3)}}else {this[_0x221c[2263]](_0xc851x2)}};mxGraphView[_0x221c[202]][_0x221c[2263]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=this[_0x221c[1179]][_0x221c[502]]();_0xc851x2=_0xc851x2||_0xc851x9[_0x221c[501]]();_0xc851x3=null!=_0xc851x3?_0xc851x3:!0;_0xc851x4=null!=_0xc851x4?_0xc851x4:!0;_0xc851x5=null!=_0xc851x5?_0xc851x5:!1;var _0xc851xa=this[_0x221c[248]](_0xc851x2);null!=_0xc851xa&&(_0xc851xa[_0x221c[2080]]= !0,_0xc851x5&&(_0xc851xa[_0x221c[2082]]= !0));if(_0xc851x3){for(var _0xc851x12=_0xc851x9[_0x221c[262]](_0xc851x2),_0xc851xa=0;_0xc851xa<_0xc851x12;_0xc851xa++){var _0xc851x13=_0xc851x9[_0x221c[263]](_0xc851x2,_0xc851xa);this[_0x221c[2263]](_0xc851x13,_0xc851x3,_0xc851x4,_0xc851x5)}};if(_0xc851x4){_0xc851x5=_0xc851x9[_0x221c[1707]](_0xc851x2);for(_0xc851xa=0;_0xc851xa<_0xc851x5;_0xc851xa++){this[_0x221c[2263]](_0xc851x9[_0x221c[1708]](_0xc851x2,_0xc851xa),_0xc851x3,_0xc851x4)}}};mxGraphView[_0x221c[202]][_0x221c[2264]]=function(_0xc851x2){var _0xc851x3=mxLog[_0x221c[2109]](_0x221c[2266]);window[_0x221c[879]]=mxResources[_0x221c[203]](this[_0x221c[2249]])||this[_0x221c[2249]];var _0xc851x4=null;if(this[_0x221c[2253]]&&null!=this[_0x221c[510]]&&null==this[_0x221c[1653]]&&(8==document[_0x221c[5]]||mxClient[_0x221c[496]])){_0xc851x4=this[_0x221c[510]][_0x221c[124]][_0x221c[495]];this[_0x221c[510]][_0x221c[124]][_0x221c[495]]=_0x221c[130];var _0xc851x5=document[_0x221c[55]](_0x221c[485]);_0xc851x5[_0x221c[124]][_0x221c[491]]=_0x221c[492];_0xc851x5[_0x221c[124]][_0x221c[493]]=_0x221c[494];_0xc851x5[_0x221c[124]][_0x221c[187]]=_0x221c[188];_0xc851x5[_0x221c[124]][_0x221c[495]]=mxClient[_0x221c[496]]?_0x221c[497]:_0x221c[498];_0xc851x5[_0x221c[124]][_0x221c[499]]=_0x221c[500];document[_0x221c[112]][_0x221c[62]](_0xc851x5);this[_0x221c[1653]]=_0xc851x5};_0xc851x2=_0xc851x2||(null!=this[_0x221c[1741]]?this[_0x221c[1741]]:this[_0x221c[1179]][_0x221c[502]]()[_0x221c[501]]());this[_0x221c[2267]](null,_0xc851x2);_0xc851x2=this[_0x221c[2268]](null,_0xc851x2);null==_0xc851x2&&(_0xc851x2= new mxRectangle);this[_0x221c[2256]](_0xc851x2);this[_0x221c[2269]]();null!=_0xc851x4&&(this[_0x221c[510]][_0x221c[124]][_0x221c[495]]=_0xc851x4,document[_0x221c[112]][_0x221c[266]](this[_0x221c[1653]]),this[_0x221c[1653]]=null);window[_0x221c[879]]=mxResources[_0x221c[203]](this[_0x221c[2091]])||this[_0x221c[2091]];mxLog[_0x221c[2110]](_0x221c[2266],_0xc851x3)};mxGraphView[_0x221c[202]][_0x221c[2270]]=function(_0xc851x2){return  new mxRectangleShape(_0xc851x2,_0x221c[1391],_0x221c[586])};mxGraphView[_0x221c[202]][_0x221c[2269]]=function(){var _0xc851x2=this[_0x221c[1179]][_0x221c[2271]]();if(null!=_0xc851x2){if(null==this[_0x221c[1617]]||this[_0x221c[1617]][_0x221c[618]]!=_0xc851x2[_0x221c[390]]){null!=this[_0x221c[1617]]&&this[_0x221c[1617]][_0x221c[515]]();var _0xc851x3= new mxRectangle(0,0,1,1);this[_0x221c[1617]]= new mxImageShape(_0xc851x3,_0xc851x2[_0x221c[390]]);this[_0x221c[1617]][_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]];this[_0x221c[1617]][_0x221c[176]](this[_0x221c[2053]]);this[_0x221c[1617]][_0x221c[258]]()};this[_0x221c[2272]](this[_0x221c[1617]],_0xc851x2)}else {null!=this[_0x221c[1617]]&&(this[_0x221c[1617]][_0x221c[515]](),this[_0x221c[1617]]=null)};this[_0x221c[1179]][_0x221c[2273]]?(_0xc851x3=this[_0x221c[2274]](),null==this[_0x221c[2275]]?(this[_0x221c[2275]]=this[_0x221c[2270]](_0xc851x3),this[_0x221c[2275]][_0x221c[255]]=this[_0x221c[255]],this[_0x221c[2275]][_0x221c[1596]]= !0,this[_0x221c[2275]][_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]],this[_0x221c[2275]][_0x221c[176]](this[_0x221c[2053]]),this[_0x221c[2275]][_0x221c[258]](),mxEvent[_0x221c[169]](this[_0x221c[2275]][_0x221c[252]],_0x221c[760],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[1179]][_0x221c[761]](_0xc851x2)})),mxEvent[_0x221c[759]](this[_0x221c[2275]][_0x221c[252]],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[1179]][_0x221c[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xc851x2))}),mxUtils[_0x221c[885]](this,function(_0xc851x2){null!=this[_0x221c[1179]][_0x221c[2276]]&&this[_0x221c[1179]][_0x221c[2276]][_0x221c[2277]]()&&this[_0x221c[1179]][_0x221c[2276]][_0x221c[801]]();this[_0x221c[1179]][_0x221c[1009]]&&!mxEvent[_0x221c[721]](_0xc851x2)&&this[_0x221c[1179]][_0x221c[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xc851x2))}),mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[1179]][_0x221c[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xc851x2))}))):(this[_0x221c[2275]][_0x221c[255]]=this[_0x221c[255]],this[_0x221c[2275]][_0x221c[1562]]=_0xc851x3,this[_0x221c[2275]][_0x221c[258]]())):null!=this[_0x221c[2275]]&&(this[_0x221c[2275]][_0x221c[515]](),this[_0x221c[2275]]=null)};mxGraphView[_0x221c[202]][_0x221c[2274]]=function(){var _0xc851x2=this[_0x221c[1179]][_0x221c[2013]],_0xc851x3=this[_0x221c[255]]*this[_0x221c[1179]][_0x221c[2012]];return  new mxRectangle(this[_0x221c[255]]*this[_0x221c[513]][_0x221c[235]],this[_0x221c[255]]*this[_0x221c[513]][_0x221c[236]],_0xc851x2[_0x221c[117]]*_0xc851x3,_0xc851x2[_0x221c[119]]*_0xc851x3)};mxGraphView[_0x221c[202]][_0x221c[2272]]=function(_0xc851x2,_0xc851x3){_0xc851x2[_0x221c[255]]=this[_0x221c[255]];_0xc851x2[_0x221c[1562]][_0x221c[235]]=this[_0x221c[255]]*this[_0x221c[513]][_0x221c[235]];_0xc851x2[_0x221c[1562]][_0x221c[236]]=this[_0x221c[255]]*this[_0x221c[513]][_0x221c[236]];_0xc851x2[_0x221c[1562]][_0x221c[117]]=this[_0x221c[255]]*_0xc851x3[_0x221c[117]];_0xc851x2[_0x221c[1562]][_0x221c[119]]=this[_0x221c[255]]*_0xc851x3[_0x221c[119]];_0xc851x2[_0x221c[258]]()};mxGraphView[_0x221c[202]][_0x221c[2267]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[502]](),_0xc851x5=this[_0x221c[248]](_0xc851x3,!0);if(null!=_0xc851x5&&_0xc851x5[_0x221c[2080]]){if(this[_0x221c[1179]][_0x221c[1714]](_0xc851x3)){if(_0xc851x3!=this[_0x221c[1741]]&&null!=_0xc851x2){_0xc851x5[_0x221c[2079]][_0x221c[235]]=0;_0xc851x5[_0x221c[2079]][_0x221c[236]]=0;_0xc851x5[_0x221c[2078]][_0x221c[235]]=_0xc851x2[_0x221c[2078]][_0x221c[235]];_0xc851x5[_0x221c[2078]][_0x221c[236]]=_0xc851x2[_0x221c[2078]][_0x221c[236]];var _0xc851x9=this[_0x221c[1179]][_0x221c[1198]](_0xc851x3);if(null!=_0xc851x9){if(!_0xc851x4[_0x221c[250]](_0xc851x3)){var _0xc851xa=_0xc851x9[_0x221c[1368]]||this[_0x221c[2248]];_0xc851x9[_0x221c[1500]]?(_0xc851x5[_0x221c[2078]][_0x221c[235]]+=_0xc851x9[_0x221c[235]]*_0xc851x2[_0x221c[117]]/this[_0x221c[255]]+_0xc851xa[_0x221c[235]],_0xc851x5[_0x221c[2078]][_0x221c[236]]+=_0xc851x9[_0x221c[236]]*_0xc851x2[_0x221c[119]]/this[_0x221c[255]]+_0xc851xa[_0x221c[236]]):(_0xc851x5[_0x221c[2079]][_0x221c[235]]=this[_0x221c[255]]*_0xc851xa[_0x221c[235]],_0xc851x5[_0x221c[2079]][_0x221c[236]]=this[_0x221c[255]]*_0xc851xa[_0x221c[236]],_0xc851x5[_0x221c[2078]][_0x221c[235]]+=_0xc851x9[_0x221c[235]],_0xc851x5[_0x221c[2078]][_0x221c[236]]+=_0xc851x9[_0x221c[236]])};_0xc851x5[_0x221c[235]]=this[_0x221c[255]]*(this[_0x221c[513]][_0x221c[235]]+_0xc851x5[_0x221c[2078]][_0x221c[235]]);_0xc851x5[_0x221c[236]]=this[_0x221c[255]]*(this[_0x221c[513]][_0x221c[236]]+_0xc851x5[_0x221c[2078]][_0x221c[236]]);_0xc851x5[_0x221c[117]]=this[_0x221c[255]]*_0xc851x9[_0x221c[117]];_0xc851x5[_0x221c[119]]=this[_0x221c[255]]*_0xc851x9[_0x221c[119]];if(_0xc851x4[_0x221c[1193]](_0xc851x3)){if(_0xc851x9[_0x221c[1500]]&&(_0xc851xa=mxUtils[_0x221c[431]](_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2278]]]||_0x221c[468]),0!=_0xc851xa)){var _0xc851x9=Math[_0x221c[426]](_0xc851xa),_0xc851xa=Math[_0x221c[427]](_0xc851xa),_0xc851x12= new mxPoint(_0xc851x5[_0x221c[241]](),_0xc851x5[_0x221c[242]]()),_0xc851x13= new mxPoint(_0xc851x2[_0x221c[241]](),_0xc851x2[_0x221c[242]]()),_0xc851x9=mxUtils[_0x221c[432]](_0xc851x12,_0xc851x9,_0xc851xa,_0xc851x13);_0xc851x5[_0x221c[235]]=_0xc851x9[_0x221c[235]]-_0xc851x5[_0x221c[117]]/2;_0xc851x5[_0x221c[236]]=_0xc851x9[_0x221c[236]]-_0xc851x5[_0x221c[119]]/2};this[_0x221c[2279]](_0xc851x5)}}}}else {this[_0x221c[2265]](_0xc851x3)};_0xc851xa=this[_0x221c[1179]][_0x221c[2280]](_0xc851x3);null!=_0xc851xa&&(_0xc851x5[_0x221c[2078]][_0x221c[235]]+=_0xc851xa[_0x221c[235]],_0xc851x5[_0x221c[2078]][_0x221c[236]]+=_0xc851xa[_0x221c[236]])};if(null!=_0xc851x5&&(!this[_0x221c[1179]][_0x221c[1742]](_0xc851x3)||_0xc851x3==this[_0x221c[1741]])){_0xc851x9=_0xc851x4[_0x221c[262]](_0xc851x3);for(_0xc851xa=0;_0xc851xa<_0xc851x9;_0xc851xa++){_0xc851x12=_0xc851x4[_0x221c[263]](_0xc851x3,_0xc851xa),this[_0x221c[2267]](_0xc851x5,_0xc851x12)}}};mxGraphView[_0x221c[202]][_0x221c[2279]]=function(_0xc851x2){var _0xc851x3=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);_0xc851x3==mxConstants[_0x221c[2132]]?_0xc851x2[_0x221c[2079]][_0x221c[235]]-=_0xc851x2[_0x221c[117]]:_0xc851x3==mxConstants[_0x221c[480]]&&(_0xc851x2[_0x221c[2079]][_0x221c[235]]+=_0xc851x2[_0x221c[117]]);_0xc851x3=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);_0xc851x3==mxConstants[_0x221c[1687]]?_0xc851x2[_0x221c[2079]][_0x221c[236]]-=_0xc851x2[_0x221c[119]]:_0xc851x3==mxConstants[_0x221c[482]]&&(_0xc851x2[_0x221c[2079]][_0x221c[236]]+=_0xc851x2[_0x221c[119]])};mxGraphView[_0x221c[202]][_0x221c[2268]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[502]](),_0xc851x5=this[_0x221c[248]](_0xc851x3),_0xc851x9=null;if(null!=_0xc851x5){if(_0xc851x5[_0x221c[2080]]){var _0xc851xa=this[_0x221c[1179]][_0x221c[1198]](_0xc851x3);if(null!=_0xc851xa&&_0xc851x4[_0x221c[250]](_0xc851x3)){var _0xc851x12=this[_0x221c[248]](this[_0x221c[1710]](_0xc851x3,!0));_0xc851x5[_0x221c[2090]](_0xc851x12,!0);if(null!=_0xc851x12&&_0xc851x4[_0x221c[250]](_0xc851x12[_0x221c[246]])&&!_0xc851x4[_0x221c[1720]](_0xc851x12[_0x221c[246]],_0xc851x3)){var _0xc851x13=this[_0x221c[248]](_0xc851x4[_0x221c[1197]](_0xc851x12[_0x221c[246]]));this[_0x221c[2268]](_0xc851x13,_0xc851x12[_0x221c[246]])};var _0xc851x14=this[_0x221c[248]](this[_0x221c[1710]](_0xc851x3,!1));_0xc851x5[_0x221c[2090]](_0xc851x14,!1);null!=_0xc851x14&&(_0xc851x4[_0x221c[250]](_0xc851x14[_0x221c[246]])&&!_0xc851x4[_0x221c[1720]](_0xc851x14[_0x221c[246]],_0xc851x3))&&(_0xc851x13=this[_0x221c[248]](_0xc851x4[_0x221c[1197]](_0xc851x14[_0x221c[246]])),this[_0x221c[2268]](_0xc851x13,_0xc851x14[_0x221c[246]]));this[_0x221c[2281]](_0xc851x5,_0xc851x12,_0xc851x14);this[_0x221c[2282]](_0xc851x5,_0xc851xa[_0x221c[1525]],_0xc851x12,_0xc851x14);this[_0x221c[2283]](_0xc851x5,_0xc851x12,_0xc851x14);this[_0x221c[2284]](_0xc851x5);this[_0x221c[2285]](_0xc851x5)}else {null!=_0xc851xa&&(_0xc851xa[_0x221c[1500]]&&null!=_0xc851x2&&_0xc851x4[_0x221c[250]](_0xc851x2[_0x221c[246]]))&&(_0xc851xa=this[_0x221c[245]](_0xc851x2,_0xc851xa),null!=_0xc851xa&&(_0xc851x5[_0x221c[235]]=_0xc851xa[_0x221c[235]],_0xc851x5[_0x221c[236]]=_0xc851xa[_0x221c[236]],_0xc851xa[_0x221c[235]]=_0xc851xa[_0x221c[235]]/this[_0x221c[255]]-this[_0x221c[513]][_0x221c[235]],_0xc851xa[_0x221c[236]]=_0xc851xa[_0x221c[236]]/this[_0x221c[255]]-this[_0x221c[513]][_0x221c[236]],_0xc851x5[_0x221c[2078]]=_0xc851xa,this[_0x221c[2286]](_0xc851x2,_0xc851x5)))};_0xc851x5[_0x221c[2080]]= !1;_0xc851x3!=this[_0x221c[1741]]&&this[_0x221c[1179]][_0x221c[259]][_0x221c[258]](_0xc851x5,!1,this[_0x221c[2287]]())};if(_0xc851x4[_0x221c[250]](_0xc851x3)||_0xc851x4[_0x221c[1193]](_0xc851x3)){null!=_0xc851x5[_0x221c[253]]&&null!=_0xc851x5[_0x221c[253]][_0x221c[1563]]&&(_0xc851x9=_0xc851x5[_0x221c[253]][_0x221c[1563]][_0x221c[238]]()),null!=_0xc851x5[_0x221c[963]]&&!this[_0x221c[1179]][_0x221c[2130]](_0xc851x5[_0x221c[246]])&&null!=_0xc851x5[_0x221c[963]][_0x221c[1563]]&&(null!=_0xc851x9?_0xc851x9[_0x221c[99]](_0xc851x5[_0x221c[963]][_0x221c[1563]]):_0xc851x9=_0xc851x5[_0x221c[963]][_0x221c[1563]][_0x221c[238]]())}};if(null!=_0xc851x5&&(!this[_0x221c[1179]][_0x221c[1742]](_0xc851x3)||_0xc851x3==this[_0x221c[1741]])){_0xc851xa=_0xc851x4[_0x221c[262]](_0xc851x3);for(_0xc851x12=0;_0xc851x12<_0xc851xa;_0xc851x12++){_0xc851x13=_0xc851x4[_0x221c[263]](_0xc851x3,_0xc851x12),_0xc851x13=this[_0x221c[2268]](_0xc851x5,_0xc851x13),null!=_0xc851x13&&(null==_0xc851x9?_0xc851x9=_0xc851x13:_0xc851x9[_0x221c[99]](_0xc851x13))}};return _0xc851x9};mxGraphView[_0x221c[202]][_0x221c[2286]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x3[_0x221c[246]];if(!this[_0x221c[1179]][_0x221c[1742]](_0xc851x4)||_0xc851x4==this[_0x221c[1741]]){for(var _0xc851x5=this[_0x221c[1179]][_0x221c[502]](),_0xc851x9=_0xc851x5[_0x221c[262]](_0xc851x4),_0xc851xa=0;_0xc851xa<_0xc851x9;_0xc851xa++){this[_0x221c[2267]](_0xc851x3,_0xc851x5[_0x221c[263]](_0xc851x4,_0xc851xa))}}};mxGraphView[_0x221c[202]][_0x221c[2281]]=function(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[2289]](_0xc851x2,_0xc851x3,!0,this[_0x221c[1179]][_0x221c[2288]](_0xc851x2,_0xc851x3,!0));this[_0x221c[2289]](_0xc851x2,_0xc851x4,!1,this[_0x221c[1179]][_0x221c[2288]](_0xc851x2,_0xc851x4,!1))};mxGraphView[_0x221c[202]][_0x221c[2289]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=null;null!=_0xc851x5&&(_0xc851x9=this[_0x221c[1179]][_0x221c[2290]](_0xc851x3,_0xc851x5));if(null==_0xc851x9&&null==_0xc851x3){_0xc851x3=this[_0x221c[255]];_0xc851x5=this[_0x221c[513]];var _0xc851xa=_0xc851x2[_0x221c[2078]],_0xc851x9=this[_0x221c[1179]][_0x221c[1198]](_0xc851x2[_0x221c[246]])[_0x221c[2006]](_0xc851x4);null!=_0xc851x9&&(_0xc851x9= new mxPoint(_0xc851x3*(_0xc851x5[_0x221c[235]]+_0xc851x9[_0x221c[235]]+_0xc851xa[_0x221c[235]]),_0xc851x3*(_0xc851x5[_0x221c[236]]+_0xc851x9[_0x221c[236]]+_0xc851xa[_0x221c[236]])))};_0xc851x2[_0x221c[2088]](_0xc851x9,_0xc851x4)};mxGraphView[_0x221c[202]][_0x221c[2282]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(null!=_0xc851x2){var _0xc851x9=[];_0xc851x9[_0x221c[207]](_0xc851x2[_0x221c[439]][0]);var _0xc851xa=this[_0x221c[2291]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5);if(null!=_0xc851xa){_0xc851x4=this[_0x221c[2292]](_0xc851x2,_0xc851x4,!0),_0xc851x5=this[_0x221c[2292]](_0xc851x2,_0xc851x5,!1),_0xc851xa(_0xc851x2,_0xc851x4,_0xc851x5,_0xc851x3,_0xc851x9)}else {if(null!=_0xc851x3){for(_0xc851xa=0;_0xc851xa<_0xc851x3[_0x221c[67]];_0xc851xa++){null!=_0xc851x3[_0xc851xa]&&(_0xc851x5=mxUtils[_0x221c[238]](_0xc851x3[_0xc851xa]),_0xc851x9[_0x221c[207]](this[_0x221c[2229]](_0xc851x2,_0xc851x5)))}}};_0xc851x3=_0xc851x2[_0x221c[439]];_0xc851x9[_0x221c[207]](_0xc851x3[_0xc851x3[_0x221c[67]]-1]);_0xc851x2[_0x221c[439]]=_0xc851x9}};mxGraphView[_0x221c[202]][_0x221c[2229]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x2[_0x221c[2078]];return  new mxPoint(this[_0x221c[255]]*(_0xc851x3[_0x221c[235]]+this[_0x221c[513]][_0x221c[235]]+_0xc851x4[_0x221c[235]]),this[_0x221c[255]]*(_0xc851x3[_0x221c[236]]+this[_0x221c[513]][_0x221c[236]]+_0xc851x4[_0x221c[236]]))};mxGraphView[_0x221c[202]][_0x221c[2291]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x2=null!=_0xc851x4&&_0xc851x4==_0xc851x5?mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_LOOP,this[_0x221c[1179]][_0x221c[2293]]):!mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_NOEDGESTYLE,!1)?_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2294]]]:null;_0x221c[1516]== typeof _0xc851x2&&(_0xc851x3=mxStyleRegistry[_0x221c[433]](_0xc851x2),null==_0xc851x3&&this[_0x221c[2295]]()&&(_0xc851x3=mxUtils[_0x221c[1545]](_0xc851x2)),_0xc851x2=_0xc851x3);return _0x221c[279]== typeof _0xc851x2?_0xc851x2:null};mxGraphView[_0x221c[202]][_0x221c[2283]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=_0xc851x2[_0x221c[439]],_0xc851x9=_0xc851x5[0];null==_0xc851x5[_0xc851x5[_0x221c[67]]-1]&&null!=_0xc851x4&&this[_0x221c[2296]](_0xc851x2,_0xc851x4,_0xc851x3,!1);null==_0xc851x9&&null!=_0xc851x3&&this[_0x221c[2296]](_0xc851x2,_0xc851x3,_0xc851x4,!0)};mxGraphView[_0x221c[202]][_0x221c[2296]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x3=this[_0x221c[2292]](_0xc851x2,_0xc851x3,_0xc851x5);var _0xc851x9=this[_0x221c[2297]](_0xc851x2,_0xc851x4,_0xc851x5),_0xc851xa=this[_0x221c[1179]][_0x221c[2298]](_0xc851x2);_0xc851x4=mxUtils[_0x221c[431]](Number(_0xc851x3[_0x221c[124]][mxConstants[_0x221c[2278]]]||_0x221c[468]));var _0xc851x12= new mxPoint(_0xc851x3[_0x221c[241]](),_0xc851x3[_0x221c[242]]());if(0!=_0xc851x4){var _0xc851x13=Math[_0x221c[426]](-_0xc851x4),_0xc851x14=Math[_0x221c[427]](-_0xc851x4),_0xc851x9=mxUtils[_0x221c[432]](_0xc851x9,_0xc851x13,_0xc851x14,_0xc851x12)};_0xc851x13=parseFloat(_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2299]]]||0);_0xc851x13+=parseFloat(_0xc851x2[_0x221c[124]][_0xc851x5?mxConstants[_0x221c[2300]]:mxConstants[_0x221c[2301]]]||0);_0xc851x3=this[_0x221c[2302]](_0xc851x3,_0xc851x9,0==_0xc851x4&&_0xc851xa,_0xc851x13);0!=_0xc851x4&&(_0xc851x13=Math[_0x221c[426]](_0xc851x4),_0xc851x14=Math[_0x221c[427]](_0xc851x4),_0xc851x3=mxUtils[_0x221c[432]](_0xc851x3,_0xc851x13,_0xc851x14,_0xc851x12));_0xc851x2[_0x221c[2088]](_0xc851x3,_0xc851x5)};mxGraphView[_0x221c[202]][_0x221c[2292]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],_0xc851x4?mxConstants[_0x221c[2303]]:mxConstants[_0x221c[2304]]);null!=_0xc851x2&&(_0xc851x2=this[_0x221c[248]](this[_0x221c[1179]][_0x221c[502]]()[_0x221c[736]](_0xc851x2)),null!=_0xc851x2&&(_0xc851x3=_0xc851x2));return _0xc851x3};mxGraphView[_0x221c[202]][_0x221c[2302]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=null;if(null!=_0xc851x2){var _0xc851xa=this[_0x221c[2305]](_0xc851x2);if(null!=_0xc851xa&&null!=_0xc851x3&&(_0xc851x5=this[_0x221c[2087]](_0xc851x2,_0xc851x5),0<_0xc851x5[_0x221c[117]]||0<_0xc851x5[_0x221c[119]])){_0xc851x9=_0xc851xa(_0xc851x5,_0xc851x2,_0xc851x3,_0xc851x4)};null==_0xc851x9&&(_0xc851x9=this[_0x221c[245]](_0xc851x2))};return _0xc851x9};mxGraphView[_0x221c[202]][_0x221c[2230]]=function(_0xc851x2){var _0xc851x3=null!=_0xc851x2[_0x221c[124]]?parseFloat(_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2306]]])||0:0;return _0xc851x2[_0x221c[241]]()+_0xc851x3*_0xc851x2[_0x221c[117]]};mxGraphView[_0x221c[202]][_0x221c[2228]]=function(_0xc851x2){var _0xc851x3=null!=_0xc851x2[_0x221c[124]]?parseFloat(_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2307]]])||0:0;return _0xc851x2[_0x221c[242]]()+_0xc851x3*_0xc851x2[_0x221c[119]]};mxGraphView[_0x221c[202]][_0x221c[2087]]=function(_0xc851x2,_0xc851x3){_0xc851x3=null!=_0xc851x3?_0xc851x3:0;null!=_0xc851x2&&(_0xc851x3+=parseFloat(_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2299]]]||0));return _0xc851x2[_0x221c[2087]](_0xc851x3*this[_0x221c[255]])};mxGraphView[_0x221c[202]][_0x221c[2305]]=function(_0xc851x2){_0xc851x2=_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2061]]];if(_0x221c[1516]== typeof _0xc851x2){var _0xc851x3=mxStyleRegistry[_0x221c[433]](_0xc851x2);null==_0xc851x3&&this[_0x221c[2295]]()&&(_0xc851x3=mxUtils[_0x221c[1545]](_0xc851x2));_0xc851x2=_0xc851x3};return _0x221c[279]== typeof _0xc851x2?_0xc851x2:null};mxGraphView[_0x221c[202]][_0x221c[2297]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2=_0xc851x2[_0x221c[439]];var _0xc851x5=null;if(null!=_0xc851x2&&(_0xc851x4||2<_0xc851x2[_0x221c[67]]||null==_0xc851x3)){_0xc851x5=_0xc851x2[_0x221c[67]],_0xc851x5=_0xc851x2[_0xc851x4?Math[_0x221c[243]](1,_0xc851x5-1):Math[_0x221c[160]](0,_0xc851x5-2)]};null==_0xc851x5&&null!=_0xc851x3&&(_0xc851x5= new mxPoint(_0xc851x3[_0x221c[241]](),_0xc851x3[_0x221c[242]]()));return _0xc851x5};mxGraphView[_0x221c[202]][_0x221c[1710]]=function(_0xc851x2,_0xc851x3){for(var _0xc851x4=this[_0x221c[1179]][_0x221c[502]](),_0xc851x5=_0xc851x4[_0x221c[1709]](_0xc851x2,_0xc851x3),_0xc851x9=_0xc851x5;null!=_0xc851x5&&_0xc851x5!=this[_0x221c[1741]];){if(!this[_0x221c[1179]][_0x221c[1714]](_0xc851x9)||this[_0x221c[1179]][_0x221c[1742]](_0xc851x5)){_0xc851x9=_0xc851x5};_0xc851x5=_0xc851x4[_0x221c[1197]](_0xc851x5)};_0xc851x4[_0x221c[1197]](_0xc851x9)==_0xc851x4[_0x221c[501]]()&&(_0xc851x9=null);return _0xc851x9};mxGraphView[_0x221c[202]][_0x221c[2284]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[439]];_0xc851x2[_0x221c[67]]=0;if(null!=_0xc851x3&&0<_0xc851x3[_0x221c[67]]){var _0xc851x4=_0xc851x3[0],_0xc851x5=_0xc851x3[_0xc851x3[_0x221c[67]]-1];if(null==_0xc851x4||null==_0xc851x5){_0xc851x2[_0x221c[246]]!=this[_0x221c[1741]]&&this[_0x221c[200]](_0xc851x2[_0x221c[246]],!0)}else {if(_0xc851x4[_0x221c[235]]!=_0xc851x5[_0x221c[235]]||_0xc851x4[_0x221c[236]]!=_0xc851x5[_0x221c[236]]){var _0xc851x9=_0xc851x5[_0x221c[235]]-_0xc851x4[_0x221c[235]],_0xc851xa=_0xc851x5[_0x221c[236]]-_0xc851x4[_0x221c[236]];_0xc851x2[_0x221c[2085]]=Math[_0x221c[428]](_0xc851x9*_0xc851x9+_0xc851xa*_0xc851xa)}else {_0xc851x2[_0x221c[2085]]=0};var _0xc851x5=0,_0xc851x12=[],_0xc851xa=_0xc851x4;if(null!=_0xc851xa){for(var _0xc851x4=_0xc851xa[_0x221c[235]],_0xc851x13=_0xc851xa[_0x221c[236]],_0xc851x14=_0xc851x4,_0xc851x15=_0xc851x13,_0xc851x16=1;_0xc851x16<_0xc851x3[_0x221c[67]];_0xc851x16++){var _0xc851x17=_0xc851x3[_0xc851x16];null!=_0xc851x17&&(_0xc851x9=_0xc851xa[_0x221c[235]]-_0xc851x17[_0x221c[235]],_0xc851xa=_0xc851xa[_0x221c[236]]-_0xc851x17[_0x221c[236]],_0xc851x9=Math[_0x221c[428]](_0xc851x9*_0xc851x9+_0xc851xa*_0xc851xa),_0xc851x12[_0x221c[207]](_0xc851x9),_0xc851x5+=_0xc851x9,_0xc851xa=_0xc851x17,_0xc851x4=Math[_0x221c[243]](_0xc851xa[_0x221c[235]],_0xc851x4),_0xc851x13=Math[_0x221c[243]](_0xc851xa[_0x221c[236]],_0xc851x13),_0xc851x14=Math[_0x221c[160]](_0xc851xa[_0x221c[235]],_0xc851x14),_0xc851x15=Math[_0x221c[160]](_0xc851xa[_0x221c[236]],_0xc851x15))};_0xc851x2[_0x221c[67]]=_0xc851x5;_0xc851x2[_0x221c[2086]]=_0xc851x12;_0xc851x2[_0x221c[235]]=_0xc851x4;_0xc851x2[_0x221c[236]]=_0xc851x13;_0xc851x2[_0x221c[117]]=Math[_0x221c[160]](1,_0xc851x14-_0xc851x4);_0xc851x2[_0x221c[119]]=Math[_0x221c[160]](1,_0xc851x15-_0xc851x13)}}}};mxGraphView[_0x221c[202]][_0x221c[245]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x2[_0x221c[241]](),_0xc851x5=_0xc851x2[_0x221c[242]]();if(null!=_0xc851x2[_0x221c[2086]]&&(null==_0xc851x3||_0xc851x3[_0x221c[1500]])){for(var _0xc851x9=_0xc851x2[_0x221c[439]][_0x221c[67]],_0xc851xa=((null!=_0xc851x3?_0xc851x3[_0x221c[235]]/2:0)+0.5)*_0xc851x2[_0x221c[67]],_0xc851x12=_0xc851x2[_0x221c[2086]][0],_0xc851x13=0,_0xc851x14=1;_0xc851xa>_0xc851x13+_0xc851x12&&_0xc851x14<_0xc851x9-1;){_0xc851x13+=_0xc851x12,_0xc851x12=_0xc851x2[_0x221c[2086]][_0xc851x14++]};_0xc851x9=0==_0xc851x12?0:(_0xc851xa-_0xc851x13)/_0xc851x12;_0xc851xa=_0xc851x2[_0x221c[439]][_0xc851x14-1];_0xc851x14=_0xc851x2[_0x221c[439]][_0xc851x14];if(null!=_0xc851xa&&null!=_0xc851x14){_0xc851x13=_0xc851x4=_0xc851x5=0;if(null!=_0xc851x3){var _0xc851x5=_0xc851x3[_0x221c[236]],_0xc851x15=_0xc851x3[_0x221c[1368]];null!=_0xc851x15&&(_0xc851x4=_0xc851x15[_0x221c[235]],_0xc851x13=_0xc851x15[_0x221c[236]])};_0xc851x15=_0xc851x14[_0x221c[235]]-_0xc851xa[_0x221c[235]];_0xc851x14=_0xc851x14[_0x221c[236]]-_0xc851xa[_0x221c[236]];_0xc851x4=_0xc851xa[_0x221c[235]]+_0xc851x15*_0xc851x9+((0==_0xc851x12?0:_0xc851x14/_0xc851x12)*_0xc851x5+_0xc851x4)*this[_0x221c[255]];_0xc851x5=_0xc851xa[_0x221c[236]]+_0xc851x14*_0xc851x9-((0==_0xc851x12?0:_0xc851x15/_0xc851x12)*_0xc851x5-_0xc851x13)*this[_0x221c[255]]}}else {null!=_0xc851x3&&(_0xc851x15=_0xc851x3[_0x221c[1368]],null!=_0xc851x15&&(_0xc851x4+=_0xc851x15[_0x221c[235]],_0xc851x5+=_0xc851x15[_0x221c[236]]))};return  new mxPoint(_0xc851x4,_0xc851x5)};mxGraphView[_0x221c[202]][_0x221c[2308]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1721]](_0xc851x2[_0x221c[246]]);if(null!=_0xc851x5){var _0xc851x9=_0xc851x2[_0x221c[439]][_0x221c[67]];if(_0xc851x5[_0x221c[1500]]&&1<_0xc851x9){for(var _0xc851x5=_0xc851x2[_0x221c[67]],_0xc851xa=_0xc851x2[_0x221c[2086]],_0xc851x12=_0xc851x2[_0x221c[439]][0],_0xc851x13=_0xc851x2[_0x221c[439]][1],_0xc851x14=mxUtils[_0x221c[440]](_0xc851x12[_0x221c[235]],_0xc851x12[_0x221c[236]],_0xc851x13[_0x221c[235]],_0xc851x13[_0x221c[236]],_0xc851x3,_0xc851x4),_0xc851x15=0,_0xc851x16=0,_0xc851x17=0,_0xc851x18=2;_0xc851x18<_0xc851x9;_0xc851x18++){_0xc851x16+=_0xc851xa[_0xc851x18-2],_0xc851x13=_0xc851x2[_0x221c[439]][_0xc851x18],_0xc851x12=mxUtils[_0x221c[440]](_0xc851x12[_0x221c[235]],_0xc851x12[_0x221c[236]],_0xc851x13[_0x221c[235]],_0xc851x13[_0x221c[236]],_0xc851x3,_0xc851x4),_0xc851x12<=_0xc851x14&&(_0xc851x14=_0xc851x12,_0xc851x15=_0xc851x18-1,_0xc851x17=_0xc851x16),_0xc851x12=_0xc851x13};_0xc851x9=_0xc851xa[_0xc851x15];_0xc851x12=_0xc851x2[_0x221c[439]][_0xc851x15];_0xc851x13=_0xc851x2[_0x221c[439]][_0xc851x15+1];_0xc851x14=_0xc851x13[_0x221c[235]];_0xc851xa=_0xc851x13[_0x221c[236]];_0xc851x2=_0xc851x12[_0x221c[235]]-_0xc851x14;_0xc851x15=_0xc851x12[_0x221c[236]]-_0xc851xa;_0xc851x14=_0xc851x3-_0xc851x14;_0xc851xa=_0xc851x4-_0xc851xa;_0xc851x14=_0xc851x2-_0xc851x14;_0xc851xa=_0xc851x15-_0xc851xa;_0xc851xa=_0xc851x14*_0xc851x2+_0xc851xa*_0xc851x15;_0xc851x2=Math[_0x221c[428]](0>=_0xc851xa?0:_0xc851xa*_0xc851xa/(_0xc851x2*_0xc851x2+_0xc851x15*_0xc851x15));_0xc851x2>_0xc851x9&&(_0xc851x2=_0xc851x9);_0xc851x9=Math[_0x221c[428]](mxUtils[_0x221c[440]](_0xc851x12[_0x221c[235]],_0xc851x12[_0x221c[236]],_0xc851x13[_0x221c[235]],_0xc851x13[_0x221c[236]],_0xc851x3,_0xc851x4));-1==mxUtils[_0x221c[2309]](_0xc851x12[_0x221c[235]],_0xc851x12[_0x221c[236]],_0xc851x13[_0x221c[235]],_0xc851x13[_0x221c[236]],_0xc851x3,_0xc851x4)&&(_0xc851x9= -_0xc851x9);return  new mxPoint(-2*((_0xc851x5/2-_0xc851x17-_0xc851x2)/_0xc851x5),_0xc851x9/this[_0x221c[255]])}};return  new mxPoint};mxGraphView[_0x221c[202]][_0x221c[2285]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[439]];_0xc851x2[_0x221c[2079]][_0x221c[235]]=_0xc851x2[_0x221c[241]]();_0xc851x2[_0x221c[2079]][_0x221c[236]]=_0xc851x2[_0x221c[242]]();if(null!=_0xc851x3&&0<_0xc851x3[_0x221c[67]]&&null!=_0xc851x2[_0x221c[2086]]){var _0xc851x4=this[_0x221c[1179]][_0x221c[1198]](_0xc851x2[_0x221c[246]]);if(_0xc851x4[_0x221c[1500]]){var _0xc851x5=this[_0x221c[245]](_0xc851x2,_0xc851x4);null!=_0xc851x5&&(_0xc851x2[_0x221c[2079]]=_0xc851x5)}else {var _0xc851x5=_0xc851x3[0],_0xc851x9=_0xc851x3[_0xc851x3[_0x221c[67]]-1];if(null!=_0xc851x5&&null!=_0xc851x9){var _0xc851x3=_0xc851x9[_0x221c[235]]-_0xc851x5[_0x221c[235]],_0xc851xa=_0xc851x9[_0x221c[236]]-_0xc851x5[_0x221c[236]],_0xc851x12=_0xc851x9=0,_0xc851x4=_0xc851x4[_0x221c[1368]];null!=_0xc851x4&&(_0xc851x9=_0xc851x4[_0x221c[235]],_0xc851x12=_0xc851x4[_0x221c[236]]);_0xc851x4=_0xc851x5[_0x221c[236]]+_0xc851xa/2+_0xc851x12*this[_0x221c[255]];_0xc851x2[_0x221c[2079]][_0x221c[235]]=_0xc851x5[_0x221c[235]]+_0xc851x3/2+_0xc851x9*this[_0x221c[255]];_0xc851x2[_0x221c[2079]][_0x221c[236]]=_0xc851x4}}}};mxGraphView[_0x221c[202]][_0x221c[248]]=function(_0xc851x2,_0xc851x3){_0xc851x3=_0xc851x3|| !1;var _0xc851x4=null;null!=_0xc851x2&&(_0xc851x4=this[_0x221c[1214]][_0x221c[203]](_0xc851x2),this[_0x221c[1179]][_0x221c[1714]](_0xc851x2)&&(null==_0xc851x4&&_0xc851x3&&this[_0x221c[1179]][_0x221c[1714]](_0xc851x2)?(_0xc851x4=this[_0x221c[1230]](_0xc851x2),this[_0x221c[1214]][_0x221c[204]](_0xc851x2,_0xc851x4)):_0xc851x3&&(null!=_0xc851x4&&this[_0x221c[2255]])&&(_0xc851x4[_0x221c[124]]=this[_0x221c[1179]][_0x221c[1705]](_0xc851x2))));return _0xc851x4};mxGraphView[_0x221c[202]][_0x221c[2287]]=function(){return this[_0x221c[2254]]};mxGraphView[_0x221c[202]][_0x221c[2310]]=function(_0xc851x2){this[_0x221c[2254]]=_0xc851x2};mxGraphView[_0x221c[202]][_0x221c[2295]]=function(){return this[_0x221c[2251]]};mxGraphView[_0x221c[202]][_0x221c[2311]]=function(_0xc851x2){this[_0x221c[2251]]=_0xc851x2};mxGraphView[_0x221c[202]][_0x221c[2312]]=function(){return this[_0x221c[1214]]};mxGraphView[_0x221c[202]][_0x221c[1517]]=function(_0xc851x2){this[_0x221c[1214]]=_0xc851x2};mxGraphView[_0x221c[202]][_0x221c[2313]]=function(_0xc851x2){if(null==_0xc851x2){return this[_0x221c[1214]]};for(var _0xc851x3=[],_0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){var _0xc851x5=this[_0x221c[248]](_0xc851x2[_0xc851x4]);null!=_0xc851x5&&_0xc851x3[_0x221c[207]](_0xc851x5)};return _0xc851x3};mxGraphView[_0x221c[202]][_0x221c[2265]]=function(_0xc851x2){var _0xc851x3=null;null!=_0xc851x2&&(_0xc851x3=this[_0x221c[1214]][_0x221c[205]](_0xc851x2),null!=_0xc851x3&&(this[_0x221c[1179]][_0x221c[259]][_0x221c[515]](_0xc851x3),_0xc851x3[_0x221c[515]]()));return _0xc851x3};mxGraphView[_0x221c[202]][_0x221c[1230]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[1705]](_0xc851x2);_0xc851x2= new mxCellState(this,_0xc851x2,_0xc851x3);this[_0x221c[1179]][_0x221c[259]][_0x221c[2155]](_0xc851x2,this[_0x221c[2287]]());return _0xc851x2};mxGraphView[_0x221c[202]][_0x221c[2051]]=function(){return this[_0x221c[510]]};mxGraphView[_0x221c[202]][_0x221c[2052]]=function(){return this[_0x221c[2053]]};mxGraphView[_0x221c[202]][_0x221c[2024]]=function(){return this[_0x221c[505]]};mxGraphView[_0x221c[202]][_0x221c[1524]]=function(){return this[_0x221c[506]]};mxGraphView[_0x221c[202]][_0x221c[2314]]=function(_0xc851x2){_0xc851x2=mxEvent[_0x221c[728]](_0xc851x2);return _0xc851x2==this[_0x221c[1179]][_0x221c[526]]||_0xc851x2[_0x221c[265]]==this[_0x221c[2053]]||null!=_0xc851x2[_0x221c[265]]&&_0xc851x2[_0x221c[265]][_0x221c[265]]==this[_0x221c[2053]]||_0xc851x2==this[_0x221c[510]][_0x221c[265]]||_0xc851x2==this[_0x221c[510]]||_0xc851x2==this[_0x221c[2053]]||_0xc851x2==this[_0x221c[505]]||_0xc851x2==this[_0x221c[506]]};mxGraphView[_0x221c[202]][_0x221c[2315]]=function(_0xc851x2){var _0xc851x3=mxUtils[_0x221c[445]](this[_0x221c[1179]][_0x221c[526]]);_0xc851x2= new mxPoint(_0xc851x2[_0x221c[782]]-_0xc851x3[_0x221c[235]],_0xc851x2[_0x221c[784]]-_0xc851x3[_0x221c[236]]);var _0xc851x3=this[_0x221c[1179]][_0x221c[526]][_0x221c[359]],_0xc851x4=this[_0x221c[1179]][_0x221c[526]][_0x221c[159]];if(_0xc851x3>_0xc851x4&&_0xc851x2[_0x221c[235]]>_0xc851x4+2&&_0xc851x2[_0x221c[235]]<=_0xc851x3){return !0};_0xc851x3=this[_0x221c[1179]][_0x221c[526]][_0x221c[167]];_0xc851x4=this[_0x221c[1179]][_0x221c[526]][_0x221c[157]];return _0xc851x3>_0xc851x4&&_0xc851x2[_0x221c[236]]>_0xc851x4+2&&_0xc851x2[_0x221c[236]]<=_0xc851x3?!0:!1};mxGraphView[_0x221c[202]][_0x221c[176]]=function(){this[_0x221c[2163]]();var _0xc851x2=this[_0x221c[1179]];_0xc851x2[_0x221c[507]]==mxConstants[_0x221c[508]]?this[_0x221c[1569]]():_0xc851x2[_0x221c[507]]==mxConstants[_0x221c[1523]]?this[_0x221c[1571]]():this[_0x221c[1570]]()};mxGraphView[_0x221c[202]][_0x221c[2163]]=function(){var _0xc851x2=this[_0x221c[1179]],_0xc851x3=_0xc851x2[_0x221c[526]];if(null!=_0xc851x3){mxEvent[_0x221c[759]](_0xc851x3,mxUtils[_0x221c[885]](this,function(_0xc851x3){mxClient[_0x221c[754]]&&_0xc851x2[_0x221c[2203]]()&&_0xc851x2[_0x221c[2126]](!_0xc851x2[_0x221c[2134]]());this[_0x221c[2314]](_0xc851x3)&&(!mxClient[_0x221c[80]]&&!mxClient[_0x221c[76]]&&!mxClient[_0x221c[71]]&&!mxClient[_0x221c[75]]||!this[_0x221c[2315]](_0xc851x3))&&_0xc851x2[_0x221c[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xc851x3))}),mxUtils[_0x221c[885]](this,function(_0xc851x3){this[_0x221c[2314]](_0xc851x3)&&_0xc851x2[_0x221c[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xc851x3))}),mxUtils[_0x221c[885]](this,function(_0xc851x3){this[_0x221c[2314]](_0xc851x3)&&_0xc851x2[_0x221c[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xc851x3))}));mxEvent[_0x221c[169]](_0xc851x3,_0x221c[760],mxUtils[_0x221c[885]](this,function(_0xc851x3){_0xc851x2[_0x221c[761]](_0xc851x3)}));var _0xc851x4=function(_0xc851x4){var _0xc851x9=null;mxClient[_0x221c[754]]&&(_0xc851x9=mxEvent[_0x221c[731]](_0xc851x4),_0xc851x4=mxEvent[_0x221c[733]](_0xc851x4),_0xc851x4=mxUtils[_0x221c[2196]](_0xc851x3,_0xc851x9,_0xc851x4),_0xc851x9=_0xc851x2[_0x221c[441]][_0x221c[248]](_0xc851x2[_0x221c[999]](_0xc851x4[_0x221c[235]],_0xc851x4[_0x221c[236]])));return _0xc851x9};_0xc851x2[_0x221c[1133]]({mouseDown:function(_0xc851x3,_0xc851x4){_0xc851x2[_0x221c[2316]][_0x221c[1032]]()},mouseMove:function(){},mouseUp:function(){}});this[_0x221c[2317]]=mxUtils[_0x221c[885]](this,function(_0xc851x3){null!=_0xc851x2[_0x221c[2276]]&&_0xc851x2[_0x221c[2276]][_0x221c[2277]]()&&_0xc851x2[_0x221c[2276]][_0x221c[801]]();this[_0x221c[2252]]&&(_0xc851x2[_0x221c[1009]]&&!mxEvent[_0x221c[721]](_0xc851x3))&&_0xc851x2[_0x221c[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xc851x3,_0xc851x4(_0xc851x3)))});this[_0x221c[2318]]=mxUtils[_0x221c[885]](this,function(_0xc851x3){this[_0x221c[2252]]&&_0xc851x2[_0x221c[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xc851x3))});mxEvent[_0x221c[759]](document,null,this[_0x221c[2317]],this[_0x221c[2318]])}};mxGraphView[_0x221c[202]][_0x221c[1570]]=function(){var _0xc851x2=this[_0x221c[1179]][_0x221c[526]];null!=_0xc851x2&&(this[_0x221c[510]]=this[_0x221c[2319]](_0x221c[118],_0x221c[118]),this[_0x221c[2053]]=this[_0x221c[2319]](_0x221c[942],_0x221c[942]),this[_0x221c[505]]=this[_0x221c[2319]](_0x221c[942],_0x221c[942]),this[_0x221c[506]]=this[_0x221c[2319]](_0x221c[942],_0x221c[942]),this[_0x221c[510]][_0x221c[62]](this[_0x221c[2053]]),this[_0x221c[510]][_0x221c[62]](this[_0x221c[505]]),this[_0x221c[510]][_0x221c[62]](this[_0x221c[506]]),_0xc851x2[_0x221c[62]](this[_0x221c[510]]),mxClient[_0x221c[496]]&&(_0xc851x2=mxUtils[_0x221c[885]](this,function(_0xc851x2){_0xc851x2=this[_0x221c[517]]();this[_0x221c[2320]](_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]+this[_0x221c[1179]][_0x221c[467]],_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]+this[_0x221c[1179]][_0x221c[467]])}),mxEvent[_0x221c[169]](window,_0x221c[129],_0xc851x2)))};mxGraphView[_0x221c[202]][_0x221c[2320]]=function(_0xc851x2,_0xc851x3){if(null!=this[_0x221c[1179]][_0x221c[526]]){var _0xc851x4=this[_0x221c[1179]][_0x221c[526]][_0x221c[167]];this[_0x221c[510]][_0x221c[124]][_0x221c[117]]=this[_0x221c[1179]][_0x221c[526]][_0x221c[359]]<_0xc851x2?_0xc851x2+_0x221c[168]:_0x221c[118];this[_0x221c[510]][_0x221c[124]][_0x221c[119]]=_0xc851x4<_0xc851x3?_0xc851x3+_0x221c[168]:_0x221c[118]}};mxGraphView[_0x221c[202]][_0x221c[2319]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=document[_0x221c[55]](_0x221c[529]);null!=_0xc851x2&&null!=_0xc851x3?(_0xc851x4[_0x221c[124]][_0x221c[491]]=_0x221c[492],_0xc851x4[_0x221c[124]][_0x221c[361]]=_0x221c[946],_0xc851x4[_0x221c[124]][_0x221c[125]]=_0x221c[946],_0xc851x4[_0x221c[124]][_0x221c[117]]=_0xc851x2,_0xc851x4[_0x221c[124]][_0x221c[119]]=_0xc851x3):_0xc851x4[_0x221c[124]][_0x221c[491]]=_0x221c[1500];return _0xc851x4};mxGraphView[_0x221c[202]][_0x221c[1571]]=function(){var _0xc851x2=this[_0x221c[1179]][_0x221c[526]];if(null!=_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[359]],_0xc851x4=_0xc851x2[_0x221c[167]];this[_0x221c[510]]=this[_0x221c[2321]](_0xc851x3,_0xc851x4);this[_0x221c[2053]]=this[_0x221c[2321]](_0xc851x3,_0xc851x4);this[_0x221c[505]]=this[_0x221c[2321]](_0xc851x3,_0xc851x4);this[_0x221c[506]]=this[_0x221c[2321]](_0xc851x3,_0xc851x4);this[_0x221c[510]][_0x221c[62]](this[_0x221c[2053]]);this[_0x221c[510]][_0x221c[62]](this[_0x221c[505]]);this[_0x221c[510]][_0x221c[62]](this[_0x221c[506]]);_0xc851x2[_0x221c[62]](this[_0x221c[510]])}};mxGraphView[_0x221c[202]][_0x221c[2321]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=document[_0x221c[55]](mxClient[_0x221c[463]]+_0x221c[1499]);_0xc851x4[_0x221c[124]][_0x221c[491]]=_0x221c[492];_0xc851x4[_0x221c[124]][_0x221c[361]]=_0x221c[946];_0xc851x4[_0x221c[124]][_0x221c[125]]=_0x221c[946];_0xc851x4[_0x221c[124]][_0x221c[117]]=_0xc851x2+_0x221c[168];_0xc851x4[_0x221c[124]][_0x221c[119]]=_0xc851x3+_0x221c[168];_0xc851x4[_0x221c[57]](_0x221c[1462],_0xc851x2+_0x221c[537]+_0xc851x3);_0xc851x4[_0x221c[57]](_0x221c[2322],_0x221c[2323]);return _0xc851x4};mxGraphView[_0x221c[202]][_0x221c[1569]]=function(){var _0xc851x2=this[_0x221c[1179]][_0x221c[526]];this[_0x221c[510]]=document[_0x221c[509]](mxConstants.NS_SVG,_0x221c[449]);this[_0x221c[2053]]=document[_0x221c[509]](mxConstants.NS_SVG,_0x221c[449]);this[_0x221c[510]][_0x221c[62]](this[_0x221c[2053]]);this[_0x221c[505]]=document[_0x221c[509]](mxConstants.NS_SVG,_0x221c[449]);this[_0x221c[510]][_0x221c[62]](this[_0x221c[505]]);this[_0x221c[506]]=document[_0x221c[509]](mxConstants.NS_SVG,_0x221c[449]);this[_0x221c[510]][_0x221c[62]](this[_0x221c[506]]);var _0xc851x3=document[_0x221c[509]](mxConstants.NS_SVG,_0x221c[571]);_0xc851x3[_0x221c[124]][_0x221c[117]]=_0x221c[118];_0xc851x3[_0x221c[124]][_0x221c[119]]=_0x221c[118];_0xc851x3[_0x221c[124]][_0x221c[495]]=_0x221c[694];_0xc851x3[_0x221c[62]](this[_0x221c[510]]);null!=_0xc851x2&&(_0xc851x2[_0x221c[62]](_0xc851x3),_0x221c[2324]==mxUtils[_0x221c[275]](_0xc851x2)[_0x221c[491]]&&(_0xc851x2[_0x221c[124]][_0x221c[491]]=_0x221c[1500]))};mxGraphView[_0x221c[202]][_0x221c[515]]=function(){var _0xc851x2=null!=this[_0x221c[510]]?this[_0x221c[510]][_0x221c[538]]:null;null==_0xc851x2&&(_0xc851x2=this[_0x221c[510]]);null!=_0xc851x2&&null!=_0xc851x2[_0x221c[265]]&&(this[_0x221c[200]](this[_0x221c[1741]],!0),mxEvent[_0x221c[938]](document,null,this[_0x221c[2317]],this[_0x221c[2318]]),mxEvent[_0x221c[762]](this[_0x221c[1179]][_0x221c[526]]),_0xc851x2[_0x221c[265]][_0x221c[266]](_0xc851x2),this[_0x221c[506]]=this[_0x221c[505]]=this[_0x221c[2053]]=this[_0x221c[510]]=this[_0x221c[2318]]=this[_0x221c[2317]]=null)};function mxCurrentRootChange(_0xc851x2,_0xc851x3){this[_0x221c[441]]=_0xc851x2;this[_0x221c[257]]=this[_0x221c[813]]=_0xc851x3;this[_0x221c[2325]]=null==_0xc851x3;if(!this[_0x221c[2325]]){for(var _0xc851x4=this[_0x221c[441]][_0x221c[1741]],_0xc851x5=this[_0x221c[441]][_0x221c[1179]][_0x221c[502]]();null!=_0xc851x4;){if(_0xc851x4==_0xc851x3){this[_0x221c[2325]]= !0;break};_0xc851x4=_0xc851x5[_0x221c[1197]](_0xc851x4)}}}mxCurrentRootChange[_0x221c[202]][_0x221c[350]]=function(){var _0xc851x2=this[_0x221c[441]][_0x221c[1741]];this[_0x221c[441]][_0x221c[1741]]=this[_0x221c[257]];this[_0x221c[257]]=_0xc851x2;_0xc851x2=this[_0x221c[441]][_0x221c[1179]][_0x221c[2326]](this[_0x221c[441]][_0x221c[1741]]);null!=_0xc851x2&&(this[_0x221c[441]][_0x221c[513]]= new mxPoint(-_0xc851x2[_0x221c[235]],-_0xc851x2[_0x221c[236]]));this[_0x221c[441]][_0x221c[746]]( new mxEventObject(this[_0x221c[2325]]?mxEvent[_0x221c[2327]]:mxEvent[_0x221c[2328]],_0x221c[813],this[_0x221c[441]][_0x221c[1741]],_0x221c[257],this[_0x221c[257]]));this[_0x221c[2325]]?(this[_0x221c[441]][_0x221c[200]](this[_0x221c[441]][_0x221c[1741]],!0),this[_0x221c[441]][_0x221c[2264]]()):this[_0x221c[441]][_0x221c[802]]();this[_0x221c[2325]]=!this[_0x221c[2325]]};function mxGraph(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[2329]]=null;this[_0x221c[2330]]=_0xc851x4;this[_0x221c[507]]=mxClient[_0x221c[48]]?mxConstants[_0x221c[508]]:_0xc851x4==mxConstants[_0x221c[2331]]&&mxClient[_0x221c[47]]?mxConstants[_0x221c[1523]]:_0xc851x4==mxConstants[_0x221c[2332]]?mxConstants[_0x221c[1656]]:_0xc851x4==mxConstants[_0x221c[2333]]?mxConstants[_0x221c[2209]]:mxConstants[_0x221c[2334]];this[_0x221c[251]]=null!=_0xc851x3?_0xc851x3: new mxGraphModel;this[_0x221c[2335]]=[];this[_0x221c[2336]]=[];this[_0x221c[259]]=this[_0x221c[2337]]();this[_0x221c[2339]](this[_0x221c[2338]]());this[_0x221c[2341]](null!=_0xc851x5?_0xc851x5:this[_0x221c[2340]]());this[_0x221c[441]]=this[_0x221c[2342]]();this[_0x221c[2343]]=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x3){this[_0x221c[1177]](_0xc851x3[_0x221c[720]](_0x221c[1061])[_0x221c[1065]])});this[_0x221c[251]][_0x221c[169]](mxEvent.CHANGE,this[_0x221c[2343]]);this[_0x221c[2344]]();null!=_0xc851x2&&this[_0x221c[176]](_0xc851x2);this[_0x221c[441]][_0x221c[2259]]()}mxLoadResources&&mxResources[_0x221c[99]](mxClient[_0x221c[86]]+_0x221c[2345]);mxGraph[_0x221c[202]]= new mxEventSource;mxGraph[_0x221c[202]][_0x221c[196]]=mxGraph;mxGraph[_0x221c[202]][_0x221c[2346]]=[];mxGraph[_0x221c[202]][_0x221c[2329]]=null;mxGraph[_0x221c[202]][_0x221c[1009]]= !1;mxGraph[_0x221c[202]][_0x221c[251]]=null;mxGraph[_0x221c[202]][_0x221c[441]]=null;mxGraph[_0x221c[202]][_0x221c[94]]=null;mxGraph[_0x221c[202]][_0x221c[2105]]=null;mxGraph[_0x221c[202]][_0x221c[2347]]=null;mxGraph[_0x221c[202]][_0x221c[259]]=null;mxGraph[_0x221c[202]][_0x221c[2335]]=null;mxGraph[_0x221c[202]][_0x221c[2330]]=null;mxGraph[_0x221c[202]][_0x221c[507]]=null;mxGraph[_0x221c[202]][_0x221c[1020]]=10;mxGraph[_0x221c[202]][_0x221c[991]]= !0;mxGraph[_0x221c[202]][_0x221c[2348]]= !0;mxGraph[_0x221c[202]][_0x221c[2349]]= !0;mxGraph[_0x221c[202]][_0x221c[2350]]=700;mxGraph[_0x221c[202]][_0x221c[2351]]=25;mxGraph[_0x221c[202]][_0x221c[2352]]=0;mxGraph[_0x221c[202]][_0x221c[2352]]=0;mxGraph[_0x221c[202]][_0x221c[2213]]=0;mxGraph[_0x221c[202]][_0x221c[2215]]= !0;mxGraph[_0x221c[202]][_0x221c[2353]]=4;mxGraph[_0x221c[202]][_0x221c[2354]]=0.5;mxGraph[_0x221c[202]][_0x221c[2355]]=null;mxGraph[_0x221c[202]][_0x221c[2356]]=null;mxGraph[_0x221c[202]][_0x221c[1617]]=null;mxGraph[_0x221c[202]][_0x221c[2273]]= !1;mxGraph[_0x221c[202]][_0x221c[2357]]= !1;mxGraph[_0x221c[202]][_0x221c[2358]]=_0x221c[579];mxGraph[_0x221c[202]][_0x221c[2359]]= !0;mxGraph[_0x221c[202]][_0x221c[2360]]=20;mxGraph[_0x221c[202]][_0x221c[2361]]= !1;mxGraph[_0x221c[202]][_0x221c[2013]]=mxConstants[_0x221c[516]];mxGraph[_0x221c[202]][_0x221c[2012]]=1.5;mxGraph[_0x221c[202]][_0x221c[984]]= !0;mxGraph[_0x221c[202]][_0x221c[2362]]= !0;mxGraph[_0x221c[202]][_0x221c[2363]]= !0;mxGraph[_0x221c[202]][_0x221c[2364]]= !1;mxGraph[_0x221c[202]][_0x221c[2365]]= !0;mxGraph[_0x221c[202]][_0x221c[2366]]= !0;mxGraph[_0x221c[202]][_0x221c[2367]]= !0;mxGraph[_0x221c[202]][_0x221c[2368]]= !1;mxGraph[_0x221c[202]][_0x221c[2369]]= !0;mxGraph[_0x221c[202]][_0x221c[2206]]= !0;mxGraph[_0x221c[202]][_0x221c[2370]]= !0;mxGraph[_0x221c[202]][_0x221c[2371]]= !0;mxGraph[_0x221c[202]][_0x221c[2372]]= !0;mxGraph[_0x221c[202]][_0x221c[2373]]= !0;mxGraph[_0x221c[202]][_0x221c[2374]]= !1;mxGraph[_0x221c[202]][_0x221c[2375]]= !1;mxGraph[_0x221c[202]][_0x221c[2376]]= !0;mxGraph[_0x221c[202]][_0x221c[2377]]= !0;mxGraph[_0x221c[202]][_0x221c[2378]]= !0;mxGraph[_0x221c[202]][_0x221c[2379]]= !0;mxGraph[_0x221c[202]][_0x221c[2380]]= !0;mxGraph[_0x221c[202]][_0x221c[2381]]= !1;mxGraph[_0x221c[202]][_0x221c[1012]]= !0;mxGraph[_0x221c[202]][_0x221c[2382]]= !1;mxGraph[_0x221c[202]][_0x221c[2383]]= !1;mxGraph[_0x221c[202]][_0x221c[2384]]= !1;mxGraph[_0x221c[202]][_0x221c[1013]]= !0;mxGraph[_0x221c[202]][_0x221c[2385]]=null;mxGraph[_0x221c[202]][_0x221c[2386]]=null;mxGraph[_0x221c[202]][_0x221c[2387]]=null;mxGraph[_0x221c[202]][_0x221c[2388]]=null;mxGraph[_0x221c[202]][_0x221c[2389]]= !1;mxGraph[_0x221c[202]][_0x221c[467]]=0;mxGraph[_0x221c[202]][_0x221c[2158]]= !0;mxGraph[_0x221c[202]][_0x221c[2159]]= !1;mxGraph[_0x221c[202]][_0x221c[2168]]= !0;mxGraph[_0x221c[202]][_0x221c[2390]]= !0;mxGraph[_0x221c[202]][_0x221c[2391]]= !0;mxGraph[_0x221c[202]][_0x221c[2392]]= !0;mxGraph[_0x221c[202]][_0x221c[2393]]= !0;mxGraph[_0x221c[202]][_0x221c[2394]]= !0;mxGraph[_0x221c[202]][_0x221c[2395]]=1.2;mxGraph[_0x221c[202]][_0x221c[2396]]= !1;mxGraph[_0x221c[202]][_0x221c[2397]]= !0;mxGraph[_0x221c[202]][_0x221c[2398]]= !0;mxGraph[_0x221c[202]][_0x221c[2399]]= !1;mxGraph[_0x221c[202]][_0x221c[2400]]= !1;mxGraph[_0x221c[202]][_0x221c[2401]]= !0;mxGraph[_0x221c[202]][_0x221c[2402]]= !1;mxGraph[_0x221c[202]][_0x221c[2293]]=mxEdgeStyle[_0x221c[2403]];mxGraph[_0x221c[202]][_0x221c[2404]]= !0;mxGraph[_0x221c[202]][_0x221c[2405]]= !1;mxGraph[_0x221c[202]][_0x221c[2406]]= !0;mxGraph[_0x221c[202]][_0x221c[2407]]= !1;mxGraph[_0x221c[202]][_0x221c[2408]]= !0;mxGraph[_0x221c[202]][_0x221c[2409]]= !0;mxGraph[_0x221c[202]][_0x221c[2410]]= !1;mxGraph[_0x221c[202]][_0x221c[2411]]= !0;mxGraph[_0x221c[202]][_0x221c[2412]]= !0;mxGraph[_0x221c[202]][_0x221c[2180]]=mxConstants[_0x221c[2065]];mxGraph[_0x221c[202]][_0x221c[2336]]=null;mxGraph[_0x221c[202]][_0x221c[2413]]=0.1;mxGraph[_0x221c[202]][_0x221c[2414]]=8;mxGraph[_0x221c[202]][_0x221c[1136]]=0;mxGraph[_0x221c[202]][_0x221c[1137]]=0;mxGraph[_0x221c[202]][_0x221c[2415]]= new mxImage(mxClient[_0x221c[88]]+_0x221c[2416],9,9);mxGraph[_0x221c[202]][_0x221c[2417]]= new mxImage(mxClient[_0x221c[88]]+_0x221c[2418],9,9);mxGraph[_0x221c[202]][_0x221c[2419]]= new mxImage(_0x221c[2420],16,16);mxGraph[_0x221c[202]][_0x221c[2421]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[2422]:_0x221c[110];mxGraph[_0x221c[202]][_0x221c[2423]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[2424]:_0x221c[110];mxGraph[_0x221c[202]][_0x221c[2425]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[2426]:_0x221c[110];mxGraph[_0x221c[202]][_0x221c[176]]=function(_0xc851x2){this[_0x221c[526]]=_0xc851x2;this[_0x221c[2347]]=this[_0x221c[2427]]();this[_0x221c[441]][_0x221c[176]]();this[_0x221c[2258]]();mxClient[_0x221c[80]]&&(mxEvent[_0x221c[169]](window,_0x221c[2428],mxUtils[_0x221c[885]](this,function(){this[_0x221c[515]]()})),mxEvent[_0x221c[169]](_0xc851x2,_0x221c[2429],mxUtils[_0x221c[885]](this,function(){return this[_0x221c[2203]]()})));8==document[_0x221c[5]]&&_0xc851x2[_0x221c[1583]](_0x221c[1582],_0x221c[2430])};mxGraph[_0x221c[202]][_0x221c[2344]]=function(_0xc851x2){this[_0x221c[2276]]= new mxTooltipHandler(this);this[_0x221c[2276]][_0x221c[995]](!1);this[_0x221c[2316]]= new mxPanningHandler(this);this[_0x221c[2316]][_0x221c[2431]]= !1;this[_0x221c[2432]]= new mxSelectionCellsHandler(this);this[_0x221c[2433]]= new mxConnectionHandler(this);this[_0x221c[2433]][_0x221c[995]](!1);this[_0x221c[1011]]= new mxGraphHandler(this)};mxGraph[_0x221c[202]][_0x221c[2338]]=function(){return  new mxGraphSelectionModel(this)};mxGraph[_0x221c[202]][_0x221c[2340]]=function(){return  new mxStylesheet};mxGraph[_0x221c[202]][_0x221c[2342]]=function(){return  new mxGraphView(this)};mxGraph[_0x221c[202]][_0x221c[2337]]=function(){return  new mxCellRenderer};mxGraph[_0x221c[202]][_0x221c[2427]]=function(){return  new mxCellEditor(this)};mxGraph[_0x221c[202]][_0x221c[502]]=function(){return this[_0x221c[251]]};mxGraph[_0x221c[202]][_0x221c[249]]=function(){return this[_0x221c[441]]};mxGraph[_0x221c[202]][_0x221c[2434]]=function(){return this[_0x221c[94]]};mxGraph[_0x221c[202]][_0x221c[2341]]=function(_0xc851x2){this[_0x221c[94]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2435]]=function(){return this[_0x221c[2105]]};mxGraph[_0x221c[202]][_0x221c[2339]]=function(_0xc851x2){this[_0x221c[2105]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2436]]=function(_0xc851x2){for(var _0xc851x3=[],_0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){var _0xc851x5=_0xc851x2[_0xc851x4];if(_0xc851x5[_0x221c[196]]!=mxRootChange){var _0xc851x9=null;_0xc851x5 instanceof mxChildChange&&null==_0xc851x5[_0x221c[257]]?_0xc851x9=_0xc851x5[_0x221c[247]]:null!=_0xc851x5[_0x221c[246]]&&_0xc851x5[_0x221c[246]] instanceof mxCell&&(_0xc851x9=_0xc851x5[_0x221c[246]]);null!=_0xc851x9&&0>mxUtils[_0x221c[2]](_0xc851x3,_0xc851x9)&&_0xc851x3[_0x221c[207]](_0xc851x9)}};return this[_0x221c[502]]()[_0x221c[1964]](_0xc851x3)};mxGraph[_0x221c[202]][_0x221c[1177]]=function(_0xc851x2){for(var _0xc851x3=0;_0xc851x3<_0xc851x2[_0x221c[67]];_0xc851x3++){this[_0x221c[2437]](_0xc851x2[_0xc851x3])};this[_0x221c[2439]](this[_0x221c[2438]](_0xc851x2));this[_0x221c[441]][_0x221c[2264]]();this[_0x221c[2258]]()};mxGraph[_0x221c[202]][_0x221c[2438]]=function(_0xc851x2){for(var _0xc851x3=[],_0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){var _0xc851x5=_0xc851x2[_0xc851x4];if(_0xc851x5 instanceof mxRootChange){break}else {_0xc851x5 instanceof mxChildChange?null!=_0xc851x5[_0x221c[257]]&&null==_0xc851x5[_0x221c[1101]]&&(_0xc851x3=_0xc851x3[_0x221c[1919]](this[_0x221c[251]][_0x221c[1939]](_0xc851x5[_0x221c[247]]))):_0xc851x5 instanceof mxVisibleChange&&(_0xc851x3=_0xc851x3[_0x221c[1919]](this[_0x221c[251]][_0x221c[1939]](_0xc851x5[_0x221c[246]])))}};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[2437]]=function(_0xc851x2){if(_0xc851x2 instanceof mxRootChange){this[_0x221c[2440]](),this[_0x221c[2441]](_0xc851x2[_0x221c[257]]),this[_0x221c[2398]]&&(this[_0x221c[441]][_0x221c[255]]=1,this[_0x221c[441]][_0x221c[513]][_0x221c[235]]=0,this[_0x221c[441]][_0x221c[513]][_0x221c[236]]=0),this[_0x221c[746]]( new mxEventObject(mxEvent.ROOT))}else {if(_0xc851x2 instanceof mxChildChange){var _0xc851x3=this[_0x221c[251]][_0x221c[1197]](_0xc851x2[_0x221c[247]]);null!=_0xc851x3?this[_0x221c[441]][_0x221c[2263]](_0xc851x2[_0x221c[247]],!0,!1,null!=_0xc851x2[_0x221c[257]]):(this[_0x221c[2441]](_0xc851x2[_0x221c[247]]),this[_0x221c[441]][_0x221c[1741]]==_0xc851x2[_0x221c[247]]&&this[_0x221c[2442]]());_0xc851x3!=_0xc851x2[_0x221c[257]]&&(null!=_0xc851x3&&this[_0x221c[441]][_0x221c[2263]](_0xc851x3,!1,!1),null!=_0xc851x2[_0x221c[257]]&&this[_0x221c[441]][_0x221c[2263]](_0xc851x2[_0x221c[257]],!1,!1))}else {_0xc851x2 instanceof mxTerminalChange||_0xc851x2 instanceof mxGeometryChange?this[_0x221c[441]][_0x221c[2263]](_0xc851x2[_0x221c[246]]):_0xc851x2 instanceof mxValueChange?this[_0x221c[441]][_0x221c[2263]](_0xc851x2[_0x221c[246]],!1,!1):_0xc851x2 instanceof mxStyleChange?(this[_0x221c[441]][_0x221c[2263]](_0xc851x2[_0x221c[246]],!0,!0,!1),this[_0x221c[441]][_0x221c[2265]](_0xc851x2[_0x221c[246]])):null!=_0xc851x2[_0x221c[246]]&&_0xc851x2[_0x221c[246]] instanceof mxCell&&this[_0x221c[2441]](_0xc851x2[_0x221c[246]])}}};mxGraph[_0x221c[202]][_0x221c[2441]]=function(_0xc851x2){for(var _0xc851x3=this[_0x221c[251]][_0x221c[262]](_0xc851x2),_0xc851x4=0;_0xc851x4<_0xc851x3;_0xc851x4++){this[_0x221c[2441]](this[_0x221c[251]][_0x221c[263]](_0xc851x2,_0xc851x4))};this[_0x221c[441]][_0x221c[2265]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2443]]=function(_0xc851x2,_0xc851x3){null==_0xc851x2[_0x221c[1211]]&&(_0xc851x2[_0x221c[1211]]=[]);_0xc851x2[_0x221c[1211]][_0x221c[207]](_0xc851x3);var _0xc851x4=this[_0x221c[441]][_0x221c[248]](_0xc851x2);null!=_0xc851x4&&this[_0x221c[259]][_0x221c[258]](_0xc851x4);this[_0x221c[746]]( new mxEventObject(mxEvent.ADD_OVERLAY,_0x221c[246],_0xc851x2,_0x221c[2201],_0xc851x3));return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[2200]]=function(_0xc851x2){return _0xc851x2[_0x221c[1211]]};mxGraph[_0x221c[202]][_0x221c[2444]]=function(_0xc851x2,_0xc851x3){if(null==_0xc851x3){this[_0x221c[2445]](_0xc851x2)}else {var _0xc851x4=mxUtils[_0x221c[2]](_0xc851x2[_0x221c[1211]],_0xc851x3);0<=_0xc851x4?(_0xc851x2[_0x221c[1211]][_0x221c[300]](_0xc851x4,1),0==_0xc851x2[_0x221c[1211]][_0x221c[67]]&&(_0xc851x2[_0x221c[1211]]=null),_0xc851x4=this[_0x221c[441]][_0x221c[248]](_0xc851x2),null!=_0xc851x4&&this[_0x221c[259]][_0x221c[258]](_0xc851x4),this[_0x221c[746]]( new mxEventObject(mxEvent.REMOVE_OVERLAY,_0x221c[246],_0xc851x2,_0x221c[2201],_0xc851x3))):_0xc851x3=null};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[2445]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[1211]];if(null!=_0xc851x3){_0xc851x2[_0x221c[1211]]=null;var _0xc851x4=this[_0x221c[441]][_0x221c[248]](_0xc851x2);null!=_0xc851x4&&this[_0x221c[259]][_0x221c[258]](_0xc851x4);for(_0xc851x4=0;_0xc851x4<_0xc851x3[_0x221c[67]];_0xc851x4++){this[_0x221c[746]]( new mxEventObject(mxEvent.REMOVE_OVERLAY,_0x221c[246],_0xc851x2,_0x221c[2201],_0xc851x3[_0xc851x4]))}};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[2446]]=function(_0xc851x2){_0xc851x2=null!=_0xc851x2?_0xc851x2:this[_0x221c[251]][_0x221c[501]]();this[_0x221c[2445]](_0xc851x2);for(var _0xc851x3=this[_0x221c[251]][_0x221c[262]](_0xc851x2),_0xc851x4=0;_0xc851x4<_0xc851x3;_0xc851x4++){var _0xc851x5=this[_0x221c[251]][_0x221c[263]](_0xc851x2,_0xc851x4);this[_0x221c[2446]](_0xc851x5)}};mxGraph[_0x221c[202]][_0x221c[2447]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(null!=_0xc851x3&&0<_0xc851x3[_0x221c[67]]){return _0xc851x4=null!=_0xc851x4?_0xc851x4:this[_0x221c[2419]],_0xc851x3= new mxCellOverlay(_0xc851x4,_0x221c[2448]+_0xc851x3+_0x221c[2449]),_0xc851x5&&_0xc851x3[_0x221c[169]](mxEvent.CLICK,mxUtils[_0x221c[885]](this,function(_0xc851x3,_0xc851x4){this[_0x221c[994]]()&&this[_0x221c[2450]](_0xc851x2)})),this[_0x221c[2443]](_0xc851x2,_0xc851x3)};this[_0x221c[2445]](_0xc851x2);return null};mxGraph[_0x221c[202]][_0x221c[855]]=function(_0xc851x2){this[_0x221c[2451]](null,_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2451]]=function(_0xc851x2,_0xc851x3){null==_0xc851x2&&(_0xc851x2=this[_0x221c[2452]](),null!=_0xc851x2&&!this[_0x221c[2453]](_0xc851x2)&&(_0xc851x2=null));null!=_0xc851x2&&(this[_0x221c[746]]( new mxEventObject(mxEvent.START_EDITING,_0x221c[246],_0xc851x2,_0x221c[763],_0xc851x3)),this[_0x221c[2347]][_0x221c[855]](_0xc851x2,_0xc851x3))};mxGraph[_0x221c[202]][_0x221c[2142]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[2454]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2126]]=function(_0xc851x2){this[_0x221c[2347]][_0x221c[2126]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[850]]=function(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[251]][_0x221c[473]]();try{this[_0x221c[2456]](_0xc851x2,_0xc851x3,this[_0x221c[2455]](_0xc851x2)),this[_0x221c[746]]( new mxEventObject(mxEvent.LABEL_CHANGED,_0x221c[246],_0xc851x2,_0x221c[131],_0xc851x3,_0x221c[763],_0xc851x4))}finally{this[_0x221c[251]][_0x221c[476]]()};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[2456]]=function(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[251]][_0x221c[473]]();try{this[_0x221c[251]][_0x221c[1966]](_0xc851x2,_0xc851x3),_0xc851x4&&this[_0x221c[2457]](_0xc851x2,!1)}finally{this[_0x221c[251]][_0x221c[476]]()}};mxGraph[_0x221c[202]][_0x221c[859]]=function(_0xc851x2){this[_0x221c[2126]](!0);this[_0x221c[2433]][_0x221c[862]]();this[_0x221c[1011]][_0x221c[862]]();_0xc851x2=this[_0x221c[897]]();for(var _0xc851x3=0;_0xc851x3<_0xc851x2[_0x221c[67]];_0xc851x3++){var _0xc851x4=this[_0x221c[441]][_0x221c[248]](_0xc851x2[_0xc851x3]);null!=_0xc851x4&&null!=_0xc851x4[_0x221c[2458]]&&_0xc851x4[_0x221c[2458]][_0x221c[862]]()}};mxGraph[_0x221c[202]][_0x221c[173]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[727]](),_0xc851x4=_0xc851x2[_0x221c[736]](),_0xc851x5= new mxEventObject(mxEvent.CLICK,_0x221c[763],_0xc851x3,_0x221c[246],_0xc851x4);_0xc851x2[_0x221c[721]]()&&_0xc851x5[_0x221c[722]]();this[_0x221c[746]](_0xc851x5);this[_0x221c[994]]()&&(!mxEvent[_0x221c[721]](_0xc851x3)&&!_0xc851x5[_0x221c[721]]())&&(null!=_0xc851x4?this[_0x221c[2459]](_0xc851x4,_0xc851x3):(_0xc851x4=null,this[_0x221c[2460]]()&&(_0xc851x4=this[_0x221c[2461]](_0xc851x2[_0x221c[734]](),_0xc851x2[_0x221c[735]]())),null!=_0xc851x4?this[_0x221c[2459]](_0xc851x4,_0xc851x3):this[_0x221c[2462]](_0xc851x3)||this[_0x221c[2440]]()))};mxGraph[_0x221c[202]][_0x221c[761]]=function(_0xc851x2,_0xc851x3){var _0xc851x4= new mxEventObject(mxEvent.DOUBLE_CLICK,_0x221c[763],_0xc851x2,_0x221c[246],_0xc851x3);this[_0x221c[746]](_0xc851x4);this[_0x221c[994]]()&&(!mxEvent[_0x221c[721]](_0xc851x2)&&!_0xc851x4[_0x221c[721]]()&&null!=_0xc851x3&&this[_0x221c[2453]](_0xc851x3))&&this[_0x221c[2451]](_0xc851x3,_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[1014]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(!this[_0x221c[2382]]&&(this[_0x221c[2384]]||mxUtils[_0x221c[1134]](this[_0x221c[526]]))){var _0xc851x9=this[_0x221c[526]];_0xc851x5=null!=_0xc851x5?_0xc851x5:20;if(_0xc851x2>=_0xc851x9[_0x221c[360]]&&_0xc851x3>=_0xc851x9[_0x221c[190]]&&_0xc851x2<=_0xc851x9[_0x221c[360]]+_0xc851x9[_0x221c[159]]&&_0xc851x3<=_0xc851x9[_0x221c[190]]+_0xc851x9[_0x221c[157]]){var _0xc851xa=_0xc851x9[_0x221c[360]]+_0xc851x9[_0x221c[159]]-_0xc851x2;if(_0xc851xa<_0xc851x5){if(_0xc851x2=_0xc851x9[_0x221c[360]],_0xc851x9[_0x221c[360]]+=_0xc851x5-_0xc851xa,_0xc851x4&&_0xc851x2==_0xc851x9[_0x221c[360]]){if(this[_0x221c[507]]==mxConstants[_0x221c[508]]){_0xc851x2=this[_0x221c[441]][_0x221c[2024]]()[_0x221c[538]];var _0xc851x12=this[_0x221c[526]][_0x221c[1526]]+_0xc851x5-_0xc851xa}else {_0xc851x12=Math[_0x221c[160]](_0xc851x9[_0x221c[159]],_0xc851x9[_0x221c[1526]])+_0xc851x5-_0xc851xa,_0xc851x2=this[_0x221c[441]][_0x221c[2051]]()};_0xc851x2[_0x221c[124]][_0x221c[117]]=_0xc851x12+_0x221c[168];_0xc851x9[_0x221c[360]]+=_0xc851x5-_0xc851xa}}else {_0xc851xa=_0xc851x2-_0xc851x9[_0x221c[360]],_0xc851xa<_0xc851x5&&(_0xc851x9[_0x221c[360]]-=_0xc851x5-_0xc851xa)};_0xc851xa=_0xc851x9[_0x221c[190]]+_0xc851x9[_0x221c[157]]-_0xc851x3;_0xc851xa<_0xc851x5?(_0xc851x2=_0xc851x9[_0x221c[190]],_0xc851x9[_0x221c[190]]+=_0xc851x5-_0xc851xa,_0xc851x2==_0xc851x9[_0x221c[190]]&&_0xc851x4&&(this[_0x221c[507]]==mxConstants[_0x221c[508]]?(_0xc851x2=this[_0x221c[441]][_0x221c[2024]]()[_0x221c[538]],_0xc851x3=this[_0x221c[526]][_0x221c[191]]+_0xc851x5-_0xc851xa):(_0xc851x3=Math[_0x221c[160]](_0xc851x9[_0x221c[157]],_0xc851x9[_0x221c[191]])+_0xc851x5-_0xc851xa,_0xc851x2=this[_0x221c[441]][_0x221c[2051]]()),_0xc851x2[_0x221c[124]][_0x221c[119]]=_0xc851x3+_0x221c[168],_0xc851x9[_0x221c[190]]+=_0xc851x5-_0xc851xa)):(_0xc851xa=_0xc851x3-_0xc851x9[_0x221c[190]],_0xc851xa<_0xc851x5&&(_0xc851x9[_0x221c[190]]-=_0xc851x5-_0xc851xa))}}else {this[_0x221c[2383]]&&!this[_0x221c[2316]][_0x221c[1124]]&&(null==this[_0x221c[2463]]&&(this[_0x221c[2463]]=this[_0x221c[2464]]()),this[_0x221c[2463]][_0x221c[1143]](_0xc851x2+this[_0x221c[1136]],_0xc851x3+this[_0x221c[1137]]))}};mxGraph[_0x221c[202]][_0x221c[2464]]=function(){return  new mxPanningManager(this)};mxGraph[_0x221c[202]][_0x221c[2465]]=function(){function _0xc851x2(_0xc851x2){var _0xc851x3=0,_0xc851x3=_0x221c[2466]==_0xc851x2?2:_0x221c[2467]==_0xc851x2?4:_0x221c[2468]==_0xc851x2?6:parseInt(_0xc851x2);isNaN(_0xc851x3)&&(_0xc851x3=0);return _0xc851x3}var _0xc851x3=mxUtils[_0x221c[275]](this[_0x221c[526]]),_0xc851x4= new mxRectangle;_0xc851x4[_0x221c[235]]=_0xc851x2(_0xc851x3[_0x221c[2469]])+parseInt(_0xc851x3[_0x221c[357]]||0);_0xc851x4[_0x221c[236]]=_0xc851x2(_0xc851x3[_0x221c[2470]])+parseInt(_0xc851x3[_0x221c[2471]]||0);_0xc851x4[_0x221c[117]]=_0xc851x2(_0xc851x3[_0x221c[2472]])+parseInt(_0xc851x3[_0x221c[1164]]||0);_0xc851x4[_0x221c[119]]=_0xc851x2(_0xc851x3[_0x221c[2473]])+parseInt(_0xc851x3[_0x221c[2474]]||0);return _0xc851x4};mxGraph[_0x221c[202]][_0x221c[2475]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2=this[_0x221c[441]][_0x221c[255]];var _0xc851x5=this[_0x221c[441]][_0x221c[513]],_0xc851x9=this[_0x221c[2013]],_0xc851xa=_0xc851x2*this[_0x221c[2012]],_0xc851x9= new mxRectangle(0,0,_0xc851x9[_0x221c[117]]*_0xc851xa,_0xc851x9[_0x221c[119]]*_0xc851xa);_0xc851x3=this[_0x221c[2357]]?Math[_0x221c[430]](_0xc851x3/_0xc851x9[_0x221c[117]]):1;_0xc851x4=this[_0x221c[2357]]?Math[_0x221c[430]](_0xc851x4/_0xc851x9[_0x221c[119]]):1;return  new mxRectangle(0,0,_0xc851x3*_0xc851x9[_0x221c[117]]+2+_0xc851x5[_0x221c[235]]/_0xc851x2,_0xc851x4*_0xc851x9[_0x221c[119]]+2+_0xc851x5[_0x221c[236]]/_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2258]]=function(){var _0xc851x2=this[_0x221c[517]]();if(null!=this[_0x221c[526]]){var _0xc851x3=this[_0x221c[2476]](),_0xc851x4=Math[_0x221c[160]](0,_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]+1+_0xc851x3),_0xc851x3=Math[_0x221c[160]](0,_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]+1+_0xc851x3);null!=this[_0x221c[2387]]&&(_0xc851x4=Math[_0x221c[160]](_0xc851x4,this[_0x221c[2387]][_0x221c[117]]),_0xc851x3=Math[_0x221c[160]](_0xc851x3,this[_0x221c[2387]][_0x221c[119]]));this[_0x221c[2389]]&&this[_0x221c[2477]](_0xc851x4,_0xc851x3);if(this[_0x221c[2361]]||!mxClient[_0x221c[80]]&&this[_0x221c[2273]]){var _0xc851x5=this[_0x221c[2475]](_0xc851x2,_0xc851x4,_0xc851x3);null!=_0xc851x5&&(_0xc851x4=_0xc851x5[_0x221c[117]],_0xc851x3=_0xc851x5[_0x221c[119]])};null!=this[_0x221c[2386]]&&(_0xc851x4=Math[_0x221c[160]](_0xc851x4,this[_0x221c[2386]][_0x221c[117]]*this[_0x221c[441]][_0x221c[255]]),_0xc851x3=Math[_0x221c[160]](_0xc851x3,this[_0x221c[2386]][_0x221c[119]]*this[_0x221c[441]][_0x221c[255]]));_0xc851x4=Math[_0x221c[430]](_0xc851x4-1);_0xc851x3=Math[_0x221c[430]](_0xc851x3-1);this[_0x221c[507]]==mxConstants[_0x221c[508]]?(_0xc851x5=this[_0x221c[441]][_0x221c[2024]]()[_0x221c[538]],_0xc851x5[_0x221c[124]][_0x221c[2478]]=Math[_0x221c[160]](1,_0xc851x4)+_0x221c[168],_0xc851x5[_0x221c[124]][_0x221c[2479]]=Math[_0x221c[160]](1,_0xc851x3)+_0x221c[168],_0xc851x5[_0x221c[124]][_0x221c[117]]=_0x221c[118],_0xc851x5[_0x221c[124]][_0x221c[119]]=_0x221c[118]):mxClient[_0x221c[496]]?this[_0x221c[441]][_0x221c[2320]](Math[_0x221c[160]](1,_0xc851x4),Math[_0x221c[160]](1,_0xc851x3)):(this[_0x221c[441]][_0x221c[510]][_0x221c[124]][_0x221c[2478]]=Math[_0x221c[160]](1,_0xc851x4)+_0x221c[168],this[_0x221c[441]][_0x221c[510]][_0x221c[124]][_0x221c[2479]]=Math[_0x221c[160]](1,_0xc851x3)+_0x221c[168]);this[_0x221c[2480]](this[_0x221c[2357]],_0xc851x4-1,_0xc851x3-1)};this[_0x221c[746]]( new mxEventObject(mxEvent.SIZE,_0x221c[1562],_0xc851x2))};mxGraph[_0x221c[202]][_0x221c[2477]]=function(_0xc851x2,_0xc851x3){if(mxClient[_0x221c[80]]){if(mxClient[_0x221c[496]]){var _0xc851x4=this[_0x221c[2465]]();_0xc851x2+=Math[_0x221c[160]](2,_0xc851x4[_0x221c[235]]+_0xc851x4[_0x221c[117]]+1);_0xc851x3+=Math[_0x221c[160]](2,_0xc851x4[_0x221c[236]]+_0xc851x4[_0x221c[119]]+1)}else {9<=document[_0x221c[5]]?(_0xc851x2+=3,_0xc851x3+=5):(_0xc851x2+=1,_0xc851x3+=1)}}else {_0xc851x3+=1};null!=this[_0x221c[2388]]&&(_0xc851x2=Math[_0x221c[243]](this[_0x221c[2388]][_0x221c[117]],_0xc851x2),_0xc851x3=Math[_0x221c[243]](this[_0x221c[2388]][_0x221c[119]],_0xc851x3));this[_0x221c[526]][_0x221c[124]][_0x221c[117]]=Math[_0x221c[430]](_0xc851x2)+_0x221c[168];this[_0x221c[526]][_0x221c[124]][_0x221c[119]]=Math[_0x221c[430]](_0xc851x3)+_0x221c[168]};mxGraph[_0x221c[202]][_0x221c[2480]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[441]][_0x221c[255]],_0xc851x9=this[_0x221c[441]][_0x221c[513]],_0xc851xa=this[_0x221c[2013]],_0xc851x12=_0xc851x5*this[_0x221c[2012]],_0xc851x9= new mxRectangle(_0xc851x5*_0xc851x9[_0x221c[235]],_0xc851x5*_0xc851x9[_0x221c[236]],_0xc851xa[_0x221c[117]]*_0xc851x12,_0xc851xa[_0x221c[119]]*_0xc851x12);_0xc851x2=_0xc851x2&&Math[_0x221c[243]](_0xc851x9[_0x221c[117]],_0xc851x9[_0x221c[119]])>this[_0x221c[2360]];_0xc851x9[_0x221c[235]]=mxUtils[_0x221c[1454]](_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[117]]);_0xc851x9[_0x221c[236]]=mxUtils[_0x221c[1454]](_0xc851x9[_0x221c[236]],_0xc851x9[_0x221c[119]]);_0xc851xa=_0xc851x2?Math[_0x221c[430]]((_0xc851x3-_0xc851x9[_0x221c[235]])/_0xc851x9[_0x221c[117]]):0;_0xc851x2=_0xc851x2?Math[_0x221c[430]]((_0xc851x4-_0xc851x9[_0x221c[236]])/_0xc851x9[_0x221c[119]]):0;null==this[_0x221c[2481]]&&0<_0xc851xa&&(this[_0x221c[2481]]=[]);if(null!=this[_0x221c[2481]]){for(_0xc851x12=0;_0xc851x12<=_0xc851xa;_0xc851x12++){var _0xc851x13=[ new mxPoint(_0xc851x9[_0x221c[235]]+_0xc851x12*_0xc851x9[_0x221c[117]],1), new mxPoint(_0xc851x9[_0x221c[235]]+_0xc851x12*_0xc851x9[_0x221c[117]],_0xc851x4)];null!=this[_0x221c[2481]][_0xc851x12]?(this[_0x221c[2481]][_0xc851x12][_0x221c[255]]=1,this[_0x221c[2481]][_0xc851x12][_0x221c[1525]]=_0xc851x13,this[_0x221c[2481]][_0xc851x12][_0x221c[258]]()):(_0xc851x13= new mxPolyline(_0xc851x13,this[_0x221c[2358]],this[_0x221c[255]]),_0xc851x13[_0x221c[507]]=this[_0x221c[507]],_0xc851x13[_0x221c[1522]]=this[_0x221c[2359]],_0xc851x13[_0x221c[255]]=_0xc851x5,_0xc851x13[_0x221c[176]](this[_0x221c[441]][_0x221c[2053]]),_0xc851x13[_0x221c[258]](),this[_0x221c[2481]][_0xc851x12]=_0xc851x13)};for(_0xc851x12=_0xc851xa;_0xc851x12<this[_0x221c[2481]][_0x221c[67]];_0xc851x12++){this[_0x221c[2481]][_0xc851x12][_0x221c[515]]()};this[_0x221c[2481]][_0x221c[300]](_0xc851xa,this[_0x221c[2481]][_0x221c[67]]-_0xc851xa)};null==this[_0x221c[2482]]&&0<_0xc851x2&&(this[_0x221c[2482]]=[]);if(null!=this[_0x221c[2482]]){for(_0xc851x12=0;_0xc851x12<=_0xc851x2;_0xc851x12++){_0xc851x13=[ new mxPoint(1,_0xc851x9[_0x221c[236]]+_0xc851x12*_0xc851x9[_0x221c[119]]), new mxPoint(_0xc851x3,_0xc851x9[_0x221c[236]]+_0xc851x12*_0xc851x9[_0x221c[119]])],null!=this[_0x221c[2482]][_0xc851x12]?(this[_0x221c[2482]][_0xc851x12][_0x221c[255]]=1,this[_0x221c[2482]][_0xc851x12][_0x221c[1525]]=_0xc851x13,this[_0x221c[2482]][_0xc851x12][_0x221c[258]]()):(_0xc851x13= new mxPolyline(_0xc851x13,this[_0x221c[2358]],_0xc851x5),_0xc851x13[_0x221c[507]]=this[_0x221c[507]],_0xc851x13[_0x221c[1522]]=this[_0x221c[2359]],_0xc851x13[_0x221c[255]]=_0xc851x5,_0xc851x13[_0x221c[176]](this[_0x221c[441]][_0x221c[2053]]),_0xc851x13[_0x221c[258]](),this[_0x221c[2482]][_0xc851x12]=_0xc851x13)};for(_0xc851x12=_0xc851x2;_0xc851x12<this[_0x221c[2482]][_0x221c[67]];_0xc851x12++){this[_0x221c[2482]][_0xc851x12][_0x221c[515]]()};this[_0x221c[2482]][_0x221c[300]](_0xc851x2,this[_0x221c[2482]][_0x221c[67]]-_0xc851x2)}};mxGraph[_0x221c[202]][_0x221c[1705]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[251]][_0x221c[474]](_0xc851x2),_0xc851x4=null,_0xc851x4=this[_0x221c[251]][_0x221c[250]](_0xc851x2)?this[_0x221c[94]][_0x221c[2077]]():this[_0x221c[94]][_0x221c[2076]]();null!=_0xc851x3&&(_0xc851x4=this[_0x221c[2483]](this[_0x221c[94]][_0x221c[1705]](_0xc851x3,_0xc851x4)));null==_0xc851x4&&(_0xc851x4=mxGraph[_0x221c[202]][_0x221c[2346]]);return _0xc851x4};mxGraph[_0x221c[202]][_0x221c[2483]]=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=_0xc851x2[mxConstants[_0x221c[2484]]],_0xc851x4=this[_0x221c[2485]](_0xc851x3);null!=_0xc851x4?_0xc851x2[mxConstants[_0x221c[2484]]]=_0xc851x4:_0xc851x4=_0xc851x3;null!=_0xc851x4&&_0x221c[2486]==_0xc851x4[_0x221c[85]](0,11)&&(_0xc851x3=_0xc851x4[_0x221c[2]](_0x221c[537]),0<_0xc851x3&&(_0xc851x4=_0xc851x4[_0x221c[85]](0,_0xc851x3)+_0x221c[2487]+_0xc851x4[_0x221c[85]](_0xc851x3+1)),_0xc851x2[mxConstants[_0x221c[2484]]]=_0xc851x4)};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[2488]]=function(_0xc851x2,_0xc851x3){_0xc851x3=_0xc851x3||this[_0x221c[897]]();if(null!=_0xc851x3){this[_0x221c[251]][_0x221c[473]]();try{for(var _0xc851x4=0;_0xc851x4<_0xc851x3[_0x221c[67]];_0xc851x4++){this[_0x221c[251]][_0x221c[475]](_0xc851x3[_0xc851x4],_0xc851x2)}}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[2489]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=_0xc851x4||this[_0x221c[2452]]();this[_0x221c[2490]](_0xc851x2,_0xc851x3,[_0xc851x4])};mxGraph[_0x221c[202]][_0x221c[2490]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=null!=_0xc851x3?_0xc851x3:!1;_0xc851x4=_0xc851x4||this[_0x221c[897]]();if(null!=_0xc851x4&&0<_0xc851x4[_0x221c[67]]){var _0xc851x5=this[_0x221c[441]][_0x221c[248]](_0xc851x4[0]),_0xc851x5=null!=_0xc851x5?_0xc851x5[_0x221c[124]]:this[_0x221c[1705]](_0xc851x4[0]);null!=_0xc851x5&&(_0xc851x3=mxUtils[_0x221c[433]](_0xc851x5,_0xc851x2,_0xc851x3)?0:1,this[_0x221c[1717]](_0xc851x2,_0xc851x3,_0xc851x4))}};mxGraph[_0x221c[202]][_0x221c[1717]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=_0xc851x4||this[_0x221c[897]]();mxUtils[_0x221c[1717]](this[_0x221c[251]],_0xc851x4,_0xc851x2,_0xc851x3)};mxGraph[_0x221c[202]][_0x221c[2491]]=function(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[2492]](_0xc851x2,_0xc851x3,null,_0xc851x4)};mxGraph[_0x221c[202]][_0x221c[2492]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x5=_0xc851x5||this[_0x221c[897]]();if(null!=_0xc851x5&&0<_0xc851x5[_0x221c[67]]){if(null==_0xc851x4){var _0xc851x9=this[_0x221c[441]][_0x221c[248]](_0xc851x5[0]),_0xc851x9=null!=_0xc851x9?_0xc851x9[_0x221c[124]]:this[_0x221c[1705]](_0xc851x5[0]);null!=_0xc851x9&&(_0xc851x4=(parseInt(_0xc851x9[_0xc851x2]||0)&_0xc851x3)!=_0xc851x3)};mxUtils[_0x221c[2492]](this[_0x221c[251]],_0xc851x5,_0xc851x2,_0xc851x3,_0xc851x4)}};mxGraph[_0x221c[202]][_0x221c[849]]=function(_0xc851x2,_0xc851x3,_0xc851x4){null==_0xc851x3&&(_0xc851x3=this[_0x221c[897]]());if(null!=_0xc851x3&&1<_0xc851x3[_0x221c[67]]){if(null==_0xc851x4){for(var _0xc851x5=0;_0xc851x5<_0xc851x3[_0x221c[67]];_0xc851x5++){var _0xc851x9=this[_0x221c[1198]](_0xc851x3[_0xc851x5]);if(null!=_0xc851x9&&!this[_0x221c[251]][_0x221c[250]](_0xc851x3[_0xc851x5])){if(null==_0xc851x4){if(_0xc851x2==mxConstants[_0x221c[479]]){_0xc851x4=_0xc851x9[_0x221c[235]]+_0xc851x9[_0x221c[117]]/2;break}else {if(_0xc851x2==mxConstants[_0x221c[480]]){_0xc851x4=_0xc851x9[_0x221c[235]]+_0xc851x9[_0x221c[117]]}else {if(_0xc851x2==mxConstants[_0x221c[1687]]){_0xc851x4=_0xc851x9[_0x221c[236]]}else {if(_0xc851x2==mxConstants[_0x221c[481]]){_0xc851x4=_0xc851x9[_0x221c[236]]+_0xc851x9[_0x221c[119]]/2;break}else {_0xc851x4=_0xc851x2==mxConstants[_0x221c[482]]?_0xc851x9[_0x221c[236]]+_0xc851x9[_0x221c[119]]:_0xc851x9[_0x221c[235]]}}}}}else {_0xc851x4=_0xc851x2==mxConstants[_0x221c[480]]?Math[_0x221c[160]](_0xc851x4,_0xc851x9[_0x221c[235]]+_0xc851x9[_0x221c[117]]):_0xc851x2==mxConstants[_0x221c[1687]]?Math[_0x221c[243]](_0xc851x4,_0xc851x9[_0x221c[236]]):_0xc851x2==mxConstants[_0x221c[482]]?Math[_0x221c[160]](_0xc851x4,_0xc851x9[_0x221c[236]]+_0xc851x9[_0x221c[119]]):Math[_0x221c[243]](_0xc851x4,_0xc851x9[_0x221c[235]])}}}};if(null!=_0xc851x4){this[_0x221c[251]][_0x221c[473]]();try{for(_0xc851x5=0;_0xc851x5<_0xc851x3[_0x221c[67]];_0xc851x5++){_0xc851x9=this[_0x221c[1198]](_0xc851x3[_0xc851x5]),null!=_0xc851x9&&!this[_0x221c[251]][_0x221c[250]](_0xc851x3[_0xc851x5])&&(_0xc851x9=_0xc851x9[_0x221c[238]](),_0xc851x2==mxConstants[_0x221c[479]]?_0xc851x9[_0x221c[235]]=_0xc851x4-_0xc851x9[_0x221c[117]]/2:_0xc851x2==mxConstants[_0x221c[480]]?_0xc851x9[_0x221c[235]]=_0xc851x4-_0xc851x9[_0x221c[117]]:_0xc851x2==mxConstants[_0x221c[1687]]?_0xc851x9[_0x221c[236]]=_0xc851x4:_0xc851x2==mxConstants[_0x221c[481]]?_0xc851x9[_0x221c[236]]=_0xc851x4-_0xc851x9[_0x221c[119]]/2:_0xc851x2==mxConstants[_0x221c[482]]?_0xc851x9[_0x221c[236]]=_0xc851x4-_0xc851x9[_0x221c[119]]:_0xc851x9[_0x221c[235]]=_0xc851x4,this[_0x221c[251]][_0x221c[1724]](_0xc851x3[_0xc851x5],_0xc851x9))};this[_0x221c[746]]( new mxEventObject(mxEvent.ALIGN_CELLS,_0x221c[611],_0xc851x2,_0x221c[895],_0xc851x3))}finally{this[_0x221c[251]][_0x221c[476]]()}}};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[854]]=function(_0xc851x2){if(null!=_0xc851x2&&null!=this[_0x221c[2356]]){this[_0x221c[251]][_0x221c[473]]();try{var _0xc851x3=this[_0x221c[251]][_0x221c[474]](_0xc851x2);null==_0xc851x3||0==_0xc851x3[_0x221c[67]]?this[_0x221c[251]][_0x221c[475]](_0xc851x2,this[_0x221c[2356]]):this[_0x221c[251]][_0x221c[475]](_0xc851x2,null);this[_0x221c[1809]](_0xc851x2);this[_0x221c[746]]( new mxEventObject(mxEvent.FLIP_EDGE,_0x221c[1989],_0xc851x2))}finally{this[_0x221c[251]][_0x221c[476]]()}};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[2493]]=function(_0xc851x2){this[_0x221c[2336]][_0x221c[207]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2494]]=function(_0xc851x2){for(var _0xc851x3=[],_0xc851x4=0;_0xc851x4<this[_0x221c[2336]][_0x221c[67]];_0xc851x4++){this[_0x221c[2336]][_0xc851x4]!=_0xc851x2&&_0xc851x3[_0x221c[207]](this[_0x221c[2336]][_0xc851x4])};this[_0x221c[2336]]=_0xc851x3};mxGraph[_0x221c[202]][_0x221c[2485]]=function(_0xc851x2){if(null!=_0xc851x2){for(var _0xc851x3=0;_0xc851x3<this[_0x221c[2336]][_0x221c[67]];_0xc851x3++){var _0xc851x4=this[_0x221c[2336]][_0xc851x3][_0x221c[1202]](_0xc851x2);if(null!=_0xc851x4){return _0xc851x4}}};return null};mxGraph[_0x221c[202]][_0x221c[840]]=function(_0xc851x2,_0xc851x3){null==_0xc851x3&&(_0xc851x3=mxUtils[_0x221c[1779]](this[_0x221c[897]](),!0));this[_0x221c[251]][_0x221c[473]]();try{this[_0x221c[841]](_0xc851x3,_0xc851x2),this[_0x221c[746]]( new mxEventObject(mxEvent.ORDER_CELLS,_0x221c[2495],_0xc851x2,_0x221c[895],_0xc851x3))}finally{this[_0x221c[251]][_0x221c[476]]()};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[841]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2){this[_0x221c[251]][_0x221c[473]]();try{for(var _0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){var _0xc851x5=this[_0x221c[251]][_0x221c[1197]](_0xc851x2[_0xc851x4]);_0xc851x3?this[_0x221c[251]][_0x221c[99]](_0xc851x5,_0xc851x2[_0xc851x4],_0xc851x4):this[_0x221c[251]][_0x221c[99]](_0xc851x5,_0xc851x2[_0xc851x4],this[_0x221c[251]][_0x221c[262]](_0xc851x5)-1)};this[_0x221c[746]]( new mxEventObject(mxEvent.CELLS_ORDERED,_0x221c[2495],_0xc851x3,_0x221c[895],_0xc851x2))}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[844]]=function(_0xc851x2,_0xc851x3,_0xc851x4){null==_0xc851x4&&(_0xc851x4=mxUtils[_0x221c[1779]](this[_0x221c[897]](),!0));_0xc851x4=this[_0x221c[2496]](_0xc851x4);null==_0xc851x2&&(_0xc851x2=this[_0x221c[2497]](_0xc851x4));var _0xc851x5=this[_0x221c[2498]](_0xc851x2,_0xc851x4,_0xc851x3);if(0<_0xc851x4[_0x221c[67]]&&null!=_0xc851x5){var _0xc851x9=this[_0x221c[251]][_0x221c[1197]](_0xc851x2);null==_0xc851x9&&(_0xc851x9=this[_0x221c[251]][_0x221c[1197]](_0xc851x4[0]));this[_0x221c[251]][_0x221c[473]]();try{null==this[_0x221c[1198]](_0xc851x2)&&this[_0x221c[251]][_0x221c[1724]](_0xc851x2, new mxGeometry);var _0xc851xa=this[_0x221c[251]][_0x221c[262]](_0xc851x9);this[_0x221c[833]]([_0xc851x2],_0xc851x9,_0xc851xa,null,null,!1);_0xc851xa=this[_0x221c[251]][_0x221c[262]](_0xc851x2);this[_0x221c[833]](_0xc851x4,_0xc851x2,_0xc851xa,null,null,!1,!1);this[_0x221c[835]](_0xc851x4,-_0xc851x5[_0x221c[235]],-_0xc851x5[_0x221c[236]],!1,!0);this[_0x221c[837]]([_0xc851x2],[_0xc851x5]);this[_0x221c[746]]( new mxEventObject(mxEvent.GROUP_CELLS,_0x221c[1504],_0xc851x2,_0x221c[467],_0xc851x3,_0x221c[895],_0xc851x4))}finally{this[_0x221c[251]][_0x221c[476]]()}};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[2496]]=function(_0xc851x2){var _0xc851x3=[];if(null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]){var _0xc851x4=this[_0x221c[251]][_0x221c[1197]](_0xc851x2[0]);_0xc851x3[_0x221c[207]](_0xc851x2[0]);for(var _0xc851x5=1;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){this[_0x221c[251]][_0x221c[1197]](_0xc851x2[_0xc851x5])==_0xc851x4&&_0xc851x3[_0x221c[207]](_0xc851x2[_0xc851x5])}};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[2498]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=this[_0x221c[1729]](_0xc851x3);null!=_0xc851x3&&(this[_0x221c[1730]](_0xc851x2)&&(_0xc851x2=this[_0x221c[1731]](_0xc851x2),_0xc851x3[_0x221c[235]]-=_0xc851x2[_0x221c[117]],_0xc851x3[_0x221c[236]]-=_0xc851x2[_0x221c[119]],_0xc851x3[_0x221c[117]]+=_0xc851x2[_0x221c[117]],_0xc851x3[_0x221c[119]]+=_0xc851x2[_0x221c[119]]),_0xc851x3[_0x221c[235]]-=_0xc851x4,_0xc851x3[_0x221c[236]]-=_0xc851x4,_0xc851x3[_0x221c[117]]+=2*_0xc851x4,_0xc851x3[_0x221c[119]]+=2*_0xc851x4);return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[2497]]=function(_0xc851x2){_0xc851x2= new mxCell(_0x221c[110]);_0xc851x2[_0x221c[1993]](!0);_0xc851x2[_0x221c[1995]](!1);return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[845]]=function(_0xc851x2){var _0xc851x3=[];if(null==_0xc851x2){_0xc851x2=this[_0x221c[897]]();for(var _0xc851x4=[],_0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){0<this[_0x221c[251]][_0x221c[262]](_0xc851x2[_0xc851x5])&&_0xc851x4[_0x221c[207]](_0xc851x2[_0xc851x5])};_0xc851x2=_0xc851x4};if(null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]){this[_0x221c[251]][_0x221c[473]]();try{for(_0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){var _0xc851x9=this[_0x221c[251]][_0x221c[1953]](_0xc851x2[_0xc851x5]);if(null!=_0xc851x9&&0<_0xc851x9[_0x221c[67]]){var _0xc851x9=_0xc851x9[_0x221c[1853]](),_0xc851xa=this[_0x221c[251]][_0x221c[1197]](_0xc851x2[_0xc851x5]),_0xc851x12=this[_0x221c[251]][_0x221c[262]](_0xc851xa);this[_0x221c[833]](_0xc851x9,_0xc851xa,_0xc851x12,null,null,!0);_0xc851x3=_0xc851x3[_0x221c[1919]](_0xc851x9)}};this[_0x221c[843]](this[_0x221c[2499]](_0xc851x2));this[_0x221c[746]]( new mxEventObject(mxEvent.UNGROUP_CELLS,_0x221c[895],_0xc851x2))}finally{this[_0x221c[251]][_0x221c[476]]()}};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[846]]=function(_0xc851x2){null==_0xc851x2&&(_0xc851x2=this[_0x221c[897]]());this[_0x221c[251]][_0x221c[473]]();try{var _0xc851x3=this[_0x221c[902]](),_0xc851x4=this[_0x221c[251]][_0x221c[262]](_0xc851x3);this[_0x221c[833]](_0xc851x2,_0xc851x3,_0xc851x4,null,null,!0);this[_0x221c[746]]( new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,_0x221c[895],_0xc851x2))}finally{this[_0x221c[251]][_0x221c[476]]()};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[1917]]=function(_0xc851x2,_0xc851x3,_0xc851x4){null==_0xc851x2&&(_0xc851x2=this[_0x221c[897]]());_0xc851x3=null!=_0xc851x3?_0xc851x3:0;_0xc851x4=null!=_0xc851x4?_0xc851x4:!1;this[_0x221c[251]][_0x221c[473]]();try{for(var _0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){var _0xc851x9=this[_0x221c[1198]](_0xc851x2[_0xc851x5]);if(null!=_0xc851x9){var _0xc851xa=this[_0x221c[1955]](_0xc851x2[_0xc851x5]);if(null!=_0xc851xa&&0<_0xc851xa[_0x221c[67]]){var _0xc851x12=this[_0x221c[1729]](_0xc851xa);if(0<_0xc851x12[_0x221c[117]]&&0<_0xc851x12[_0x221c[119]]){var _0xc851x13=this[_0x221c[1730]](_0xc851x2[_0xc851x5])?this[_0x221c[1731]](_0xc851x2[_0xc851x5]): new mxRectangle,_0xc851x9=_0xc851x9[_0x221c[238]]();_0xc851x4&&(_0xc851x9[_0x221c[235]]+=_0xc851x12[_0x221c[235]]-_0xc851x13[_0x221c[117]]-_0xc851x3,_0xc851x9[_0x221c[236]]+=_0xc851x12[_0x221c[236]]-_0xc851x13[_0x221c[119]]-_0xc851x3);_0xc851x9[_0x221c[117]]=_0xc851x12[_0x221c[117]]+_0xc851x13[_0x221c[117]]+2*_0xc851x3;_0xc851x9[_0x221c[119]]=_0xc851x12[_0x221c[119]]+_0xc851x13[_0x221c[119]]+2*_0xc851x3;this[_0x221c[251]][_0x221c[1724]](_0xc851x2[_0xc851x5],_0xc851x9);this[_0x221c[834]](_0xc851xa,-_0xc851x12[_0x221c[235]]+_0xc851x13[_0x221c[117]]+_0xc851x3,-_0xc851x12[_0x221c[236]]+_0xc851x13[_0x221c[119]]+_0xc851x3)}}}}}finally{this[_0x221c[251]][_0x221c[476]]()};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[899]]=function(_0xc851x2,_0xc851x3){_0xc851x3=null!=_0xc851x3?_0xc851x3:!0;var _0xc851x4=null;if(null!=_0xc851x2){for(var _0xc851x5={},_0xc851x4=[],_0xc851x9=0;_0xc851x9<_0xc851x2[_0x221c[67]];_0xc851x9++){var _0xc851xa=mxCellPath[_0x221c[385]](_0xc851x2[_0xc851x9]);_0xc851x5[_0xc851xa]=_0xc851x2[_0xc851x9];_0xc851x4[_0x221c[207]](_0xc851x2[_0xc851x9])};if(0<_0xc851x4[_0x221c[67]]){for(var _0xc851xa=this[_0x221c[441]][_0x221c[255]],_0xc851x12=this[_0x221c[441]][_0x221c[513]],_0xc851x4=this[_0x221c[251]][_0x221c[899]](_0xc851x2,!0),_0xc851x9=0;_0xc851x9<_0xc851x2[_0x221c[67]];_0xc851x9++){if(!_0xc851x3&&this[_0x221c[251]][_0x221c[250]](_0xc851x4[_0xc851x9])&&null!=this[_0x221c[2500]](_0xc851x4[_0xc851x9],this[_0x221c[251]][_0x221c[1709]](_0xc851x4[_0xc851x9],!0),this[_0x221c[251]][_0x221c[1709]](_0xc851x4[_0xc851x9],!1))){_0xc851x4[_0xc851x9]=null}else {var _0xc851x13=this[_0x221c[251]][_0x221c[1721]](_0xc851x4[_0xc851x9]);if(null!=_0xc851x13){var _0xc851x14=this[_0x221c[441]][_0x221c[248]](_0xc851x2[_0xc851x9]),_0xc851x15=this[_0x221c[441]][_0x221c[248]](this[_0x221c[251]][_0x221c[1197]](_0xc851x2[_0xc851x9]));if(null!=_0xc851x14&&null!=_0xc851x15){var _0xc851x16=_0xc851x15[_0x221c[2078]][_0x221c[235]],_0xc851x15=_0xc851x15[_0x221c[2078]][_0x221c[236]];if(this[_0x221c[251]][_0x221c[250]](_0xc851x4[_0xc851x9])){for(var _0xc851x14=_0xc851x14[_0x221c[439]],_0xc851x17=this[_0x221c[251]][_0x221c[1709]](_0xc851x2[_0xc851x9],!0),_0xc851x18=mxCellPath[_0x221c[385]](_0xc851x17);null!=_0xc851x17&&null==_0xc851x5[_0xc851x18];){_0xc851x17=this[_0x221c[251]][_0x221c[1197]](_0xc851x17),_0xc851x18=mxCellPath[_0x221c[385]](_0xc851x17)};null==_0xc851x17&&_0xc851x13[_0x221c[2007]]( new mxPoint(_0xc851x14[0][_0x221c[235]]/_0xc851xa-_0xc851x12[_0x221c[235]],_0xc851x14[0][_0x221c[236]]/_0xc851xa-_0xc851x12[_0x221c[236]]),!0);_0xc851x17=this[_0x221c[251]][_0x221c[1709]](_0xc851x2[_0xc851x9],!1);for(_0xc851x18=mxCellPath[_0x221c[385]](_0xc851x17);null!=_0xc851x17&&null==_0xc851x5[_0xc851x18];){_0xc851x17=this[_0x221c[251]][_0x221c[1197]](_0xc851x17),_0xc851x18=mxCellPath[_0x221c[385]](_0xc851x17)};null==_0xc851x17&&(_0xc851x17=_0xc851x14[_0x221c[67]]-1,_0xc851x13[_0x221c[2007]]( new mxPoint(_0xc851x14[_0xc851x17][_0x221c[235]]/_0xc851xa-_0xc851x12[_0x221c[235]],_0xc851x14[_0xc851x17][_0x221c[236]]/_0xc851xa-_0xc851x12[_0x221c[236]]),!1));_0xc851x13=_0xc851x13[_0x221c[1525]];if(null!=_0xc851x13){for(_0xc851x14=0;_0xc851x14<_0xc851x13[_0x221c[67]];_0xc851x14++){_0xc851x13[_0xc851x14][_0x221c[235]]+=_0xc851x16,_0xc851x13[_0xc851x14][_0x221c[236]]+=_0xc851x15}}}else {_0xc851x13[_0x221c[235]]+=_0xc851x16,_0xc851x13[_0x221c[236]]+=_0xc851x15}}}}}}else {_0xc851x4=[]}};return _0xc851x4};mxGraph[_0x221c[202]][_0x221c[2501]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14){_0xc851x3=this[_0x221c[2502]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14);return this[_0x221c[2103]](_0xc851x3,_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2502]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14){_0xc851x2= new mxGeometry(_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12);_0xc851x2[_0x221c[1500]]=null!=_0xc851x14?_0xc851x14:!1;_0xc851x4= new mxCell(_0xc851x4,_0xc851x2,_0xc851x13);_0xc851x4[_0x221c[1945]](_0xc851x3);_0xc851x4[_0x221c[1993]](!0);_0xc851x4[_0x221c[1995]](!0);return _0xc851x4};mxGraph[_0x221c[202]][_0x221c[1960]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x3=this[_0x221c[2503]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa);return this[_0x221c[2504]](_0xc851x3,_0xc851x2,_0xc851x5,_0xc851x9)};mxGraph[_0x221c[202]][_0x221c[2503]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x2= new mxCell(_0xc851x4, new mxGeometry,_0xc851xa);_0xc851x2[_0x221c[1945]](_0xc851x3);_0xc851x2[_0x221c[1994]](!0);_0xc851x2[_0x221c[256]][_0x221c[1500]]= !0;return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[2504]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){return this[_0x221c[2103]](_0xc851x2,_0xc851x3,_0xc851x9,_0xc851x4,_0xc851x5)};mxGraph[_0x221c[202]][_0x221c[2103]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){return this[_0x221c[832]]([_0xc851x2],_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9)[0]};mxGraph[_0x221c[202]][_0x221c[832]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){null==_0xc851x3&&(_0xc851x3=this[_0x221c[902]]());null==_0xc851x4&&(_0xc851x4=this[_0x221c[251]][_0x221c[262]](_0xc851x3));this[_0x221c[251]][_0x221c[473]]();try{this[_0x221c[833]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,!1,!0),this[_0x221c[746]]( new mxEventObject(mxEvent.ADD_CELLS,_0x221c[895],_0xc851x2,_0x221c[1101],_0xc851x3,_0x221c[1983],_0xc851x4,_0x221c[1097],_0xc851x5,_0x221c[772],_0xc851x9))}finally{this[_0x221c[251]][_0x221c[476]]()};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[833]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12){if(null!=_0xc851x2&&null!=_0xc851x3&&null!=_0xc851x4){this[_0x221c[251]][_0x221c[473]]();try{for(var _0xc851x13=_0xc851xa?this[_0x221c[441]][_0x221c[248]](_0xc851x3):null,_0xc851x14=null!=_0xc851x13?_0xc851x13[_0x221c[2078]]:null,_0xc851x15= new mxPoint(0,0),_0xc851x13=0;_0xc851x13<_0xc851x2[_0x221c[67]];_0xc851x13++){if(null==_0xc851x2[_0xc851x13]){_0xc851x4--}else {var _0xc851x16=this[_0x221c[251]][_0x221c[1197]](_0xc851x2[_0xc851x13]);if(null!=_0xc851x14&&_0xc851x2[_0xc851x13]!=_0xc851x3&&_0xc851x3!=_0xc851x16){var _0xc851x17=this[_0x221c[441]][_0x221c[248]](_0xc851x16),_0xc851x18=null!=_0xc851x17?_0xc851x17[_0x221c[2078]]:_0xc851x15,_0xc851x19=this[_0x221c[251]][_0x221c[1721]](_0xc851x2[_0xc851x13]);if(null!=_0xc851x19){var _0xc851x1a=_0xc851x18[_0x221c[235]]-_0xc851x14[_0x221c[235]],_0xc851x1b=_0xc851x18[_0x221c[236]]-_0xc851x14[_0x221c[236]],_0xc851x19=_0xc851x19[_0x221c[238]]();_0xc851x19[_0x221c[513]](_0xc851x1a,_0xc851x1b);!_0xc851x19[_0x221c[1500]]&&(this[_0x221c[251]][_0x221c[1193]](_0xc851x2[_0xc851x13])&&!this[_0x221c[2505]]())&&(_0xc851x19[_0x221c[235]]=Math[_0x221c[160]](0,_0xc851x19[_0x221c[235]]),_0xc851x19[_0x221c[236]]=Math[_0x221c[160]](0,_0xc851x19[_0x221c[236]]));this[_0x221c[251]][_0x221c[1724]](_0xc851x2[_0xc851x13],_0xc851x19)}};_0xc851x3==_0xc851x16&&_0xc851x4+_0xc851x13>this[_0x221c[251]][_0x221c[262]](_0xc851x3)&&_0xc851x4--;this[_0x221c[251]][_0x221c[99]](_0xc851x3,_0xc851x2[_0xc851x13],_0xc851x4+_0xc851x13);this[_0x221c[2506]]()&&this[_0x221c[2507]](_0xc851x2[_0xc851x13])&&this[_0x221c[2508]](_0xc851x2[_0xc851x13]);(null==_0xc851x12||_0xc851x12)&&this[_0x221c[2509]](_0xc851x2[_0xc851x13]);null!=_0xc851x5&&this[_0x221c[852]](_0xc851x2[_0xc851x13],_0xc851x5,!0);null!=_0xc851x9&&this[_0x221c[852]](_0xc851x2[_0xc851x13],_0xc851x9,!1)}};this[_0x221c[746]]( new mxEventObject(mxEvent.CELLS_ADDED,_0x221c[895],_0xc851x2,_0x221c[1101],_0xc851x3,_0x221c[1983],_0xc851x4,_0x221c[1097],_0xc851x5,_0x221c[772],_0xc851x9,_0x221c[492],_0xc851xa))}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[842]]=function(_0xc851x2,_0xc851x3){_0xc851x3=null!=_0xc851x3?_0xc851x3:!0;null==_0xc851x2&&(_0xc851x2=this[_0x221c[2510]](this[_0x221c[897]]()));_0xc851x3&&(_0xc851x2=this[_0x221c[2510]](this[_0x221c[2499]](_0xc851x2)));this[_0x221c[251]][_0x221c[473]]();try{this[_0x221c[843]](_0xc851x2),this[_0x221c[746]]( new mxEventObject(mxEvent.REMOVE_CELLS,_0x221c[895],_0xc851x2,_0x221c[2511],_0xc851x3))}finally{this[_0x221c[251]][_0x221c[476]]()};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[843]]=function(_0xc851x2){if(null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]){var _0xc851x3=this[_0x221c[441]][_0x221c[255]],_0xc851x4=this[_0x221c[441]][_0x221c[513]];this[_0x221c[251]][_0x221c[473]]();try{for(var _0xc851x5={},_0xc851x9=0;_0xc851x9<_0xc851x2[_0x221c[67]];_0xc851x9++){var _0xc851xa=mxCellPath[_0x221c[385]](_0xc851x2[_0xc851x9]);_0xc851x5[_0xc851xa]=_0xc851x2[_0xc851x9]};for(_0xc851x9=0;_0xc851x9<_0xc851x2[_0x221c[67]];_0xc851x9++){for(var _0xc851x12=this[_0x221c[1756]](_0xc851x2[_0xc851x9]),_0xc851x13=0;_0xc851x13<_0xc851x12[_0x221c[67]];_0xc851x13++){if(_0xc851xa=mxCellPath[_0x221c[385]](_0xc851x12[_0xc851x13]),null==_0xc851x5[_0xc851xa]){var _0xc851x14=this[_0x221c[251]][_0x221c[1721]](_0xc851x12[_0xc851x13]);if(null!=_0xc851x14){var _0xc851x15=this[_0x221c[441]][_0x221c[248]](_0xc851x12[_0xc851x13]);if(null!=_0xc851x15){var _0xc851x14=_0xc851x14[_0x221c[238]](),_0xc851x16=_0xc851x15[_0x221c[1710]](!0)==_0xc851x2[_0xc851x9],_0xc851x17=_0xc851x15[_0x221c[439]],_0xc851x18=_0xc851x16?0:_0xc851x17[_0x221c[67]]-1;_0xc851x14[_0x221c[2007]]( new mxPoint(_0xc851x17[_0xc851x18][_0x221c[235]]/_0xc851x3-_0xc851x4[_0x221c[235]],_0xc851x17[_0xc851x18][_0x221c[236]]/_0xc851x3-_0xc851x4[_0x221c[236]]),_0xc851x16);this[_0x221c[251]][_0x221c[1957]](_0xc851x12[_0xc851x13],null,_0xc851x16);this[_0x221c[251]][_0x221c[1724]](_0xc851x12[_0xc851x13],_0xc851x14)}}}};this[_0x221c[251]][_0x221c[205]](_0xc851x2[_0xc851x9])};this[_0x221c[746]]( new mxEventObject(mxEvent.CELLS_REMOVED,_0x221c[895],_0xc851x2))}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[853]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x5=_0xc851x5||0;_0xc851x9=_0xc851x9||0;null==_0xc851x4&&(_0xc851x4=this[_0x221c[899]]([_0xc851x2])[0]);var _0xc851xa=this[_0x221c[251]][_0x221c[1197]](_0xc851x2),_0xc851x12=this[_0x221c[251]][_0x221c[1709]](_0xc851x2,!0);this[_0x221c[251]][_0x221c[473]]();try{this[_0x221c[835]](_0xc851x3,_0xc851x5,_0xc851x9,!1,!1),this[_0x221c[833]](_0xc851x3,_0xc851xa,this[_0x221c[251]][_0x221c[262]](_0xc851xa),null,null,!0),this[_0x221c[833]]([_0xc851x4],_0xc851xa,this[_0x221c[251]][_0x221c[262]](_0xc851xa),_0xc851x12,_0xc851x3[0],!1),this[_0x221c[852]](_0xc851x2,_0xc851x3[0],!0),this[_0x221c[746]]( new mxEventObject(mxEvent.SPLIT_EDGE,_0x221c[1989],_0xc851x2,_0x221c[895],_0xc851x3,_0x221c[2512],_0xc851x4,_0x221c[1126],_0xc851x5,_0x221c[1125],_0xc851x9))}finally{this[_0x221c[251]][_0x221c[476]]()};return _0xc851x4};mxGraph[_0x221c[202]][_0x221c[838]]=function(_0xc851x2,_0xc851x3,_0xc851x4){null==_0xc851x3&&(_0xc851x3=this[_0x221c[897]]());_0xc851x4&&(_0xc851x3=this[_0x221c[2499]](_0xc851x3));this[_0x221c[251]][_0x221c[473]]();try{this[_0x221c[839]](_0xc851x3,_0xc851x2),this[_0x221c[746]]( new mxEventObject(mxEvent.TOGGLE_CELLS,_0x221c[539],_0xc851x2,_0x221c[895],_0xc851x3,_0x221c[2511],_0xc851x4))}finally{this[_0x221c[251]][_0x221c[476]]()};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[839]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]){this[_0x221c[251]][_0x221c[473]]();try{for(var _0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){this[_0x221c[251]][_0x221c[175]](_0xc851x2[_0xc851x4],_0xc851x3)}}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[847]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x3=null!=_0xc851x3?_0xc851x3:!1;null==_0xc851x4&&(_0xc851x4=this[_0x221c[2513]](this[_0x221c[897]](),_0xc851x2));this[_0x221c[2126]](!1);this[_0x221c[251]][_0x221c[473]]();try{this[_0x221c[848]](_0xc851x4,_0xc851x2,_0xc851x3,_0xc851x5),this[_0x221c[746]]( new mxEventObject(mxEvent.FOLD_CELLS,_0x221c[2514],_0xc851x2,_0x221c[2515],_0xc851x3,_0x221c[895],_0xc851x4))}finally{this[_0x221c[251]][_0x221c[476]]()};return _0xc851x4};mxGraph[_0x221c[202]][_0x221c[848]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]){this[_0x221c[251]][_0x221c[473]]();try{for(var _0xc851x9=0;_0xc851x9<_0xc851x2[_0x221c[67]];_0xc851x9++){if((!_0xc851x5||this[_0x221c[2516]](_0xc851x2[_0xc851x9],_0xc851x3))&&_0xc851x3!=this[_0x221c[1742]](_0xc851x2[_0xc851x9])){if(this[_0x221c[251]][_0x221c[1972]](_0xc851x2[_0xc851x9],_0xc851x3),this[_0x221c[2517]](_0xc851x2[_0xc851x9],_0xc851x3),this[_0x221c[2507]](_0xc851x2[_0xc851x9])&&this[_0x221c[2508]](_0xc851x2[_0xc851x9]),_0xc851x4){var _0xc851xa=this[_0x221c[251]][_0x221c[1953]](_0xc851x2[_0xc851x9]);this[_0x221c[847]](_0xc851xa,_0xc851x3,_0xc851x4)}}};this[_0x221c[746]]( new mxEventObject(mxEvent.CELLS_FOLDED,_0x221c[895],_0xc851x2,_0x221c[2514],_0xc851x3,_0x221c[2515],_0xc851x4))}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[2517]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2){var _0xc851x4=this[_0x221c[251]][_0x221c[1721]](_0xc851x2);null!=_0xc851x4&&(_0xc851x4=_0xc851x4[_0x221c[238]](),this[_0x221c[2518]](_0xc851x2,_0xc851x4,_0xc851x3),_0xc851x4[_0x221c[2005]](),this[_0x221c[251]][_0x221c[1724]](_0xc851x2,_0xc851x4))}};mxGraph[_0x221c[202]][_0x221c[2518]]=function(_0xc851x2,_0xc851x3,_0xc851x4){if(null!=_0xc851x2&&null!=_0xc851x3){_0xc851x4=this[_0x221c[441]][_0x221c[248]](_0xc851x2);_0xc851x4=null!=_0xc851x4?_0xc851x4[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);if(null==_0xc851x3[_0x221c[2002]]){var _0xc851x5=_0xc851x3;this[_0x221c[2394]]&&(_0xc851x2=this[_0x221c[2519]](_0xc851x2),null!=_0xc851x2&&(_0xc851x5=_0xc851x2,_0xc851x2=mxUtils[_0x221c[433]](_0xc851x4,mxConstants.STYLE_STARTSIZE),0<_0xc851x2&&(_0xc851x5[_0x221c[119]]=Math[_0x221c[160]](_0xc851x5[_0x221c[119]],_0xc851x2))));_0xc851x3[_0x221c[2002]]= new mxRectangle(0,0,_0xc851x5[_0x221c[117]],_0xc851x5[_0x221c[119]])};if(null!=_0xc851x3[_0x221c[2002]]){_0xc851x3[_0x221c[2002]][_0x221c[235]]=_0xc851x3[_0x221c[235]];_0xc851x3[_0x221c[2002]][_0x221c[236]]=_0xc851x3[_0x221c[236]];var _0xc851x9=mxUtils[_0x221c[431]](_0xc851x4[mxConstants[_0x221c[2278]]]||_0x221c[468]);0!=_0xc851x9&&(_0xc851x2=_0xc851x3[_0x221c[2002]][_0x221c[241]]()-_0xc851x3[_0x221c[241]](),_0xc851x4=_0xc851x3[_0x221c[2002]][_0x221c[242]]()-_0xc851x3[_0x221c[242]](),_0xc851x5=Math[_0x221c[426]](_0xc851x9),_0xc851x9=Math[_0x221c[427]](_0xc851x9),_0xc851x3[_0x221c[2002]][_0x221c[235]]+=_0xc851x5*_0xc851x2-_0xc851x9*_0xc851x4-_0xc851x2,_0xc851x3[_0x221c[2002]][_0x221c[236]]+=_0xc851x9*_0xc851x2+_0xc851x5*_0xc851x4-_0xc851x4)}}};mxGraph[_0x221c[202]][_0x221c[2499]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[1853]]();return _0xc851x3=_0xc851x3[_0x221c[1919]](this[_0x221c[2520]](_0xc851x2))};mxGraph[_0x221c[202]][_0x221c[2520]]=function(_0xc851x2){var _0xc851x3=[];if(null!=_0xc851x2){for(var _0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){for(var _0xc851x5=this[_0x221c[251]][_0x221c[1707]](_0xc851x2[_0xc851x4]),_0xc851x9=0;_0xc851x9<_0xc851x5;_0xc851x9++){_0xc851x3[_0x221c[207]](this[_0x221c[251]][_0x221c[1708]](_0xc851x2[_0xc851x4],_0xc851x9))};_0xc851x5=this[_0x221c[251]][_0x221c[1953]](_0xc851x2[_0xc851x4]);_0xc851x3=_0xc851x3[_0x221c[1919]](this[_0x221c[2520]](_0xc851x5))}};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[858]]=function(_0xc851x2,_0xc851x3){_0xc851x3=null!=_0xc851x3?_0xc851x3:!1;this[_0x221c[251]][_0x221c[473]]();try{this[_0x221c[2457]](_0xc851x2,_0xc851x3),this[_0x221c[746]]( new mxEventObject(mxEvent.UPDATE_CELL_SIZE,_0x221c[246],_0xc851x2,_0x221c[2521],_0xc851x3))}finally{this[_0x221c[251]][_0x221c[476]]()};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[2457]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2){this[_0x221c[251]][_0x221c[473]]();try{var _0xc851x4=this[_0x221c[2519]](_0xc851x2),_0xc851x5=this[_0x221c[251]][_0x221c[1721]](_0xc851x2);if(null!=_0xc851x4&&null!=_0xc851x5){var _0xc851x9=this[_0x221c[1742]](_0xc851x2),_0xc851x5=_0xc851x5[_0x221c[238]]();if(this[_0x221c[1730]](_0xc851x2)){var _0xc851xa=this[_0x221c[441]][_0x221c[248]](_0xc851x2),_0xc851x12=null!=_0xc851xa?_0xc851xa[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2),_0xc851x13=this[_0x221c[251]][_0x221c[474]](_0xc851x2);null==_0xc851x13&&(_0xc851x13=_0x221c[110]);mxUtils[_0x221c[433]](_0xc851x12,mxConstants.STYLE_HORIZONTAL,!0)?(_0xc851x13=mxUtils[_0x221c[475]](_0xc851x13,mxConstants.STYLE_STARTSIZE,_0xc851x4[_0x221c[119]]+8),_0xc851x9&&(_0xc851x5[_0x221c[119]]=_0xc851x4[_0x221c[119]]+8),_0xc851x5[_0x221c[117]]=_0xc851x4[_0x221c[117]]):(_0xc851x13=mxUtils[_0x221c[475]](_0xc851x13,mxConstants.STYLE_STARTSIZE,_0xc851x4[_0x221c[117]]+8),_0xc851x9&&(_0xc851x5[_0x221c[117]]=_0xc851x4[_0x221c[117]]+8),_0xc851x5[_0x221c[119]]=_0xc851x4[_0x221c[119]]);this[_0x221c[251]][_0x221c[475]](_0xc851x2,_0xc851x13)}else {_0xc851x5[_0x221c[117]]=_0xc851x4[_0x221c[117]],_0xc851x5[_0x221c[119]]=_0xc851x4[_0x221c[119]]};if(!_0xc851x3&& !_0xc851x9){var _0xc851x14=this[_0x221c[441]][_0x221c[1799]](this[_0x221c[251]][_0x221c[1953]](_0xc851x2));if(null!=_0xc851x14){var _0xc851x15=this[_0x221c[441]][_0x221c[513]],_0xc851x16=this[_0x221c[441]][_0x221c[255]],_0xc851x17=(_0xc851x14[_0x221c[236]]+_0xc851x14[_0x221c[119]])/_0xc851x16-_0xc851x5[_0x221c[236]]-_0xc851x15[_0x221c[236]];_0xc851x5[_0x221c[117]]=Math[_0x221c[160]](_0xc851x5[_0x221c[117]],(_0xc851x14[_0x221c[235]]+_0xc851x14[_0x221c[117]])/_0xc851x16-_0xc851x5[_0x221c[235]]-_0xc851x15[_0x221c[235]]);_0xc851x5[_0x221c[119]]=Math[_0x221c[160]](_0xc851x5[_0x221c[119]],_0xc851x17)}};this[_0x221c[837]]([_0xc851x2],[_0xc851x5])}}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[2519]]=function(_0xc851x2){var _0xc851x3=null;if(null!=_0xc851x2){var _0xc851x4=this[_0x221c[441]][_0x221c[248]](_0xc851x2),_0xc851x5=null!=_0xc851x4?_0xc851x4[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);if(null!=_0xc851x5&&!this[_0x221c[251]][_0x221c[250]](_0xc851x2)){var _0xc851x9=_0xc851x5[mxConstants[_0x221c[2185]]]||mxConstants[_0x221c[483]],_0xc851xa=0,_0xc851x3=0;if((null!=this[_0x221c[1202]](_0xc851x4)||null!=_0xc851x5[mxConstants[_0x221c[2484]]])&&_0xc851x5[mxConstants[_0x221c[2059]]]==mxConstants[_0x221c[2522]]){_0xc851x5[mxConstants[_0x221c[2063]]]==mxConstants[_0x221c[481]]&&(_0xc851xa+=parseFloat(_0xc851x5[mxConstants[_0x221c[2523]]])||mxLabel[_0x221c[202]][_0x221c[1680]]),_0xc851x5[mxConstants[_0x221c[2064]]]!=mxConstants[_0x221c[479]]&&(_0xc851x3+=parseFloat(_0xc851x5[mxConstants[_0x221c[2524]]])||mxLabel[_0x221c[202]][_0x221c[1680]])};_0xc851xa+=2*(_0xc851x5[mxConstants[_0x221c[2143]]]||0);_0xc851xa+=_0xc851x5[mxConstants[_0x221c[2147]]]||0;_0xc851xa+=_0xc851x5[mxConstants[_0x221c[2145]]]||0;_0xc851x3+=2*(_0xc851x5[mxConstants[_0x221c[2143]]]||0);_0xc851x3+=_0xc851x5[mxConstants[_0x221c[2144]]]||0;_0xc851x3+=_0xc851x5[mxConstants[_0x221c[2146]]]||0;_0xc851x4=this[_0x221c[2205]](_0xc851x4);null!=_0xc851x4&&(_0xc851xa+=_0xc851x4[_0x221c[117]]+8);_0xc851x4=this[_0x221c[2183]](_0xc851x2);null!=_0xc851x4&&0<_0xc851x4[_0x221c[67]]?(this[_0x221c[2186]](_0xc851x2)||(_0xc851x4=_0xc851x4[_0x221c[230]](/\n/g,_0x221c[545])),_0xc851x9=mxUtils[_0x221c[2525]](_0xc851x4,_0xc851x9,_0xc851x5[mxConstants[_0x221c[2188]]]),_0xc851x2=_0xc851x9[_0x221c[117]]+_0xc851xa,_0xc851x3=_0xc851x9[_0x221c[119]]+_0xc851x3,mxUtils[_0x221c[433]](_0xc851x5,mxConstants.STYLE_HORIZONTAL,!0)||(_0xc851x5=_0xc851x3,_0xc851x3=_0xc851x2,_0xc851x2=_0xc851x5),this[_0x221c[991]]&&(_0xc851x2=this[_0x221c[1021]](_0xc851x2+this[_0x221c[1020]]/2),_0xc851x3=this[_0x221c[1021]](_0xc851x3+this[_0x221c[1020]]/2)),_0xc851x3= new mxRectangle(0,0,_0xc851x2,_0xc851x3)):(_0xc851x5=4*this[_0x221c[1020]],_0xc851x3= new mxRectangle(0,0,_0xc851x5,_0xc851x5))}};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[2216]]=function(_0xc851x2,_0xc851x3){if(0.2<Math[_0x221c[425]](1-_0xc851x3[_0x221c[255]])){var _0xc851x4=this[_0x221c[441]][_0x221c[255]],_0xc851x5=this[_0x221c[441]][_0x221c[513]],_0xc851x9=_0xc851x2[_0x221c[117]]*_0xc851x3[_0x221c[255]],_0xc851xa=_0xc851x2[_0x221c[119]]*_0xc851x3[_0x221c[255]],_0xc851x12=_0xc851x2[_0x221c[236]]-(_0xc851xa-_0xc851x2[_0x221c[119]])/2,_0xc851x4= new mxRectangle(this[_0x221c[1021]]((_0xc851x2[_0x221c[235]]-(_0xc851x9-_0xc851x2[_0x221c[117]])/2)/_0xc851x4)-_0xc851x5[_0x221c[235]],this[_0x221c[1021]](_0xc851x12/_0xc851x4)-_0xc851x5[_0x221c[236]],this[_0x221c[1021]](_0xc851x9/_0xc851x4),this[_0x221c[1021]](_0xc851xa/_0xc851x4));this[_0x221c[2526]](_0xc851x2[_0x221c[246]],_0xc851x4)}};mxGraph[_0x221c[202]][_0x221c[2526]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[836]]([_0xc851x2],[_0xc851x3])[0]};mxGraph[_0x221c[202]][_0x221c[836]]=function(_0xc851x2,_0xc851x3){this[_0x221c[251]][_0x221c[473]]();try{this[_0x221c[837]](_0xc851x2,_0xc851x3),this[_0x221c[746]]( new mxEventObject(mxEvent.RESIZE_CELLS,_0x221c[895],_0xc851x2,_0x221c[1562],_0xc851x3))}finally{this[_0x221c[251]][_0x221c[476]]()};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[837]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2&&null!=_0xc851x3&&_0xc851x2[_0x221c[67]]==_0xc851x3[_0x221c[67]]){this[_0x221c[251]][_0x221c[473]]();try{for(var _0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){var _0xc851x5=_0xc851x3[_0xc851x4],_0xc851x9=this[_0x221c[251]][_0x221c[1721]](_0xc851x2[_0xc851x4]);if(null!=_0xc851x9&&(_0xc851x9[_0x221c[235]]!=_0xc851x5[_0x221c[235]]||_0xc851x9[_0x221c[236]]!=_0xc851x5[_0x221c[236]]||_0xc851x9[_0x221c[117]]!=_0xc851x5[_0x221c[117]]||_0xc851x9[_0x221c[119]]!=_0xc851x5[_0x221c[119]])){_0xc851x9=_0xc851x9[_0x221c[238]]();if(_0xc851x9[_0x221c[1500]]){var _0xc851xa=_0xc851x9[_0x221c[1368]];null!=_0xc851xa&&(_0xc851xa[_0x221c[235]]+=_0xc851x5[_0x221c[235]]-_0xc851x9[_0x221c[235]],_0xc851xa[_0x221c[236]]+=_0xc851x5[_0x221c[236]]-_0xc851x9[_0x221c[236]])}else {_0xc851x9[_0x221c[235]]=_0xc851x5[_0x221c[235]],_0xc851x9[_0x221c[236]]=_0xc851x5[_0x221c[236]]};_0xc851x9[_0x221c[117]]=_0xc851x5[_0x221c[117]];_0xc851x9[_0x221c[119]]=_0xc851x5[_0x221c[119]];!_0xc851x9[_0x221c[1500]]&&(this[_0x221c[251]][_0x221c[1193]](_0xc851x2[_0xc851x4])&&!this[_0x221c[2505]]())&&(_0xc851x9[_0x221c[235]]=Math[_0x221c[160]](0,_0xc851x9[_0x221c[235]]),_0xc851x9[_0x221c[236]]=Math[_0x221c[160]](0,_0xc851x9[_0x221c[236]]));this[_0x221c[251]][_0x221c[1724]](_0xc851x2[_0xc851x4],_0xc851x9);this[_0x221c[2507]](_0xc851x2[_0xc851x4])&&this[_0x221c[2508]](_0xc851x2[_0xc851x4])}};this[_0x221c[2399]]&&this[_0x221c[1750]](_0xc851x2);this[_0x221c[746]]( new mxEventObject(mxEvent.CELLS_RESIZED,_0x221c[895],_0xc851x2,_0x221c[1562],_0xc851x3))}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[2508]]=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=this[_0x221c[251]][_0x221c[1197]](_0xc851x2),_0xc851x4=this[_0x221c[251]][_0x221c[1721]](_0xc851x3);if(null!=_0xc851x3&&(null!=_0xc851x4&&!this[_0x221c[1742]](_0xc851x3))&&(_0xc851x2=this[_0x221c[251]][_0x221c[1721]](_0xc851x2),null!=_0xc851x2&&(_0xc851x4[_0x221c[117]]<_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]||_0xc851x4[_0x221c[119]]<_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]))){_0xc851x4=_0xc851x4[_0x221c[238]](),_0xc851x4[_0x221c[117]]=Math[_0x221c[160]](_0xc851x4[_0x221c[117]],_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]),_0xc851x4[_0x221c[119]]=Math[_0x221c[160]](_0xc851x4[_0x221c[119]],_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]),this[_0x221c[837]]([_0xc851x3],[_0xc851x4])}}};mxGraph[_0x221c[202]][_0x221c[903]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){return this[_0x221c[834]](_0xc851x2,_0xc851x3,_0xc851x4,!0,_0xc851x5,_0xc851x9)};mxGraph[_0x221c[202]][_0x221c[834]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x3=null!=_0xc851x3?_0xc851x3:0;_0xc851x4=null!=_0xc851x4?_0xc851x4:0;_0xc851x5=null!=_0xc851x5?_0xc851x5:!1;if(null!=_0xc851x2&&(0!=_0xc851x3||0!=_0xc851x4||_0xc851x5||null!=_0xc851x9)){this[_0x221c[251]][_0x221c[473]]();try{_0xc851x5&&(_0xc851x2=this[_0x221c[899]](_0xc851x2,this[_0x221c[2527]]()),null==_0xc851x9&&(_0xc851x9=this[_0x221c[902]]()));var _0xc851x12=this[_0x221c[2505]]();null!=_0xc851x9&&this[_0x221c[2528]](!0);this[_0x221c[835]](_0xc851x2,_0xc851x3,_0xc851x4,!_0xc851x5&&this[_0x221c[2529]]()&&this[_0x221c[2530]](),null==_0xc851x9);this[_0x221c[2528]](_0xc851x12);if(null!=_0xc851x9){var _0xc851x13=this[_0x221c[251]][_0x221c[262]](_0xc851x9);this[_0x221c[833]](_0xc851x2,_0xc851x9,_0xc851x13,null,null,!0)};this[_0x221c[746]]( new mxEventObject(mxEvent.MOVE_CELLS,_0x221c[895],_0xc851x2,_0x221c[1126],_0xc851x3,_0x221c[1125],_0xc851x4,_0x221c[238],_0xc851x5,_0x221c[772],_0xc851x9,_0x221c[763],_0xc851xa))}finally{this[_0x221c[251]][_0x221c[476]]()}};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[835]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){if(null!=_0xc851x2&&(0!=_0xc851x3||0!=_0xc851x4)){this[_0x221c[251]][_0x221c[473]]();try{_0xc851x5&&this[_0x221c[2531]](_0xc851x2);for(var _0xc851xa=0;_0xc851xa<_0xc851x2[_0x221c[67]];_0xc851xa++){this[_0x221c[2532]](_0xc851x2[_0xc851xa],_0xc851x3,_0xc851x4),_0xc851x9&&this[_0x221c[2509]](_0xc851x2[_0xc851xa])};this[_0x221c[2400]]&&this[_0x221c[1750]](_0xc851x2);this[_0x221c[746]]( new mxEventObject(mxEvent.CELLS_MOVED,_0x221c[895],_0xc851x2,_0x221c[1126],_0xc851x4,_0x221c[1125],_0xc851x4,_0x221c[808],_0xc851x5))}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[2532]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[251]][_0x221c[1721]](_0xc851x2);null!=_0xc851x5&&(_0xc851x5=_0xc851x5[_0x221c[238]](),_0xc851x5[_0x221c[513]](_0xc851x3,_0xc851x4),!_0xc851x5[_0x221c[1500]]&&(this[_0x221c[251]][_0x221c[1193]](_0xc851x2)&&!this[_0x221c[2505]]())&&(_0xc851x5[_0x221c[235]]=Math[_0x221c[160]](0,_0xc851x5[_0x221c[235]]),_0xc851x5[_0x221c[236]]=Math[_0x221c[160]](0,_0xc851x5[_0x221c[236]])),_0xc851x5[_0x221c[1500]]&&!this[_0x221c[251]][_0x221c[250]](_0xc851x2)&&(null==_0xc851x5[_0x221c[1368]]?_0xc851x5[_0x221c[1368]]= new mxPoint(_0xc851x3,_0xc851x4):(_0xc851x5[_0x221c[1368]][_0x221c[235]]+=_0xc851x3,_0xc851x5[_0x221c[1368]][_0x221c[236]]+=_0xc851x4)),this[_0x221c[251]][_0x221c[1724]](_0xc851x2,_0xc851x5))};mxGraph[_0x221c[202]][_0x221c[2533]]=function(_0xc851x2){if(null!=_0xc851x2&&!this[_0x221c[251]][_0x221c[250]](_0xc851x2)){var _0xc851x3=this[_0x221c[251]][_0x221c[1197]](_0xc851x2);if(_0xc851x3==this[_0x221c[902]]()||_0xc851x3==this[_0x221c[2534]]()){return this[_0x221c[2535]]()};if(null!=_0xc851x3&&_0xc851x3!=this[_0x221c[902]]()){var _0xc851x4=this[_0x221c[251]][_0x221c[1721]](_0xc851x3);if(null!=_0xc851x4){var _0xc851x5=_0xc851x2=0,_0xc851x9=_0xc851x4[_0x221c[117]],_0xc851x4=_0xc851x4[_0x221c[119]];this[_0x221c[1730]](_0xc851x3)&&(_0xc851x3=this[_0x221c[1731]](_0xc851x3),_0xc851x2=_0xc851x3[_0x221c[117]],_0xc851x9-=_0xc851x3[_0x221c[117]],_0xc851x5=_0xc851x3[_0x221c[119]],_0xc851x4-=_0xc851x3[_0x221c[119]]);return  new mxRectangle(_0xc851x2,_0xc851x5,_0xc851x9,_0xc851x4)}}};return null};mxGraph[_0x221c[202]][_0x221c[2535]]=function(){return this[_0x221c[2385]]};mxGraph[_0x221c[202]][_0x221c[2509]]=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=this[_0x221c[251]][_0x221c[1721]](_0xc851x2),_0xc851x4=this[_0x221c[2536]](_0xc851x2)?this[_0x221c[2533]](_0xc851x2):this[_0x221c[2535]]();if(null!=_0xc851x3&&null!=_0xc851x4&&!_0xc851x3[_0x221c[1500]]&&(_0xc851x3[_0x221c[235]]<_0xc851x4[_0x221c[235]]||_0xc851x3[_0x221c[236]]<_0xc851x4[_0x221c[236]]||_0xc851x4[_0x221c[117]]<_0xc851x3[_0x221c[235]]+_0xc851x3[_0x221c[117]]||_0xc851x4[_0x221c[119]]<_0xc851x3[_0x221c[236]]+_0xc851x3[_0x221c[119]])){_0xc851x2=this[_0x221c[2537]](_0xc851x2),0<_0xc851x4[_0x221c[117]]&&(_0xc851x3[_0x221c[235]]=Math[_0x221c[243]](_0xc851x3[_0x221c[235]],_0xc851x4[_0x221c[235]]+_0xc851x4[_0x221c[117]]-(1-_0xc851x2)*_0xc851x3[_0x221c[117]])),0<_0xc851x4[_0x221c[119]]&&(_0xc851x3[_0x221c[236]]=Math[_0x221c[243]](_0xc851x3[_0x221c[236]],_0xc851x4[_0x221c[236]]+_0xc851x4[_0x221c[119]]-(1-_0xc851x2)*_0xc851x3[_0x221c[119]])),_0xc851x3[_0x221c[235]]=Math[_0x221c[160]](_0xc851x3[_0x221c[235]],_0xc851x4[_0x221c[235]]-_0xc851x3[_0x221c[117]]*_0xc851x2),_0xc851x3[_0x221c[236]]=Math[_0x221c[160]](_0xc851x3[_0x221c[236]],_0xc851x4[_0x221c[236]]-_0xc851x3[_0x221c[119]]*_0xc851x2)}}};mxGraph[_0x221c[202]][_0x221c[1750]]=function(_0xc851x2){if(null!=_0xc851x2){for(var _0xc851x3={},_0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){var _0xc851x5=mxCellPath[_0x221c[385]](_0xc851x2[_0xc851x4]);_0xc851x3[_0xc851x5]=_0xc851x2[_0xc851x4]};this[_0x221c[251]][_0x221c[473]]();try{for(_0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){var _0xc851x9=this[_0x221c[251]][_0x221c[264]](_0xc851x2[_0xc851x4]);if(null!=_0xc851x9){for(_0xc851x5=0;_0xc851x5<_0xc851x9[_0x221c[67]];_0xc851x5++){var _0xc851xa=this[_0x221c[441]][_0x221c[248]](_0xc851x9[_0xc851x5]),_0xc851x12=null!=_0xc851xa?_0xc851xa[_0x221c[1710]](!0):this[_0x221c[441]][_0x221c[1710]](_0xc851x9[_0xc851x5],!0),_0xc851x13=null!=_0xc851xa?_0xc851xa[_0x221c[1710]](!1):this[_0x221c[441]][_0x221c[1710]](_0xc851x9[_0xc851x5],!1),_0xc851x14=mxCellPath[_0x221c[385]](_0xc851x12),_0xc851x15=mxCellPath[_0x221c[385]](_0xc851x13);(null==_0xc851x3[_0xc851x14]||null==_0xc851x3[_0xc851x15])&&this[_0x221c[1809]](_0xc851x9[_0xc851x5])}};this[_0x221c[1750]](this[_0x221c[251]][_0x221c[1953]](_0xc851x2[_0xc851x4]))}}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[1809]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[251]][_0x221c[1721]](_0xc851x2);null!=_0xc851x3&&(null!=_0xc851x3[_0x221c[1525]]&&0<_0xc851x3[_0x221c[1525]][_0x221c[67]])&&(_0xc851x3=_0xc851x3[_0x221c[238]](),_0xc851x3[_0x221c[1525]]=[],this[_0x221c[251]][_0x221c[1724]](_0xc851x2,_0xc851x3));return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[2538]]=function(_0xc851x2,_0xc851x3){return null!=_0xc851x2&&null!=_0xc851x2[_0x221c[253]]&&null!=_0xc851x2[_0x221c[253]][_0x221c[1561]]?_0xc851x2[_0x221c[253]][_0x221c[1561]][_0x221c[1531]]:null};mxGraph[_0x221c[202]][_0x221c[2288]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=null;var _0xc851x5=_0xc851x2[_0x221c[124]][_0xc851x4?mxConstants[_0x221c[2539]]:mxConstants[_0x221c[2540]]];if(null!=_0xc851x5){var _0xc851x9=_0xc851x2[_0x221c[124]][_0xc851x4?mxConstants[_0x221c[2541]]:mxConstants[_0x221c[2542]]];null!=_0xc851x9&&(_0xc851x3= new mxPoint(parseFloat(_0xc851x5),parseFloat(_0xc851x9)))};_0xc851x5= !1;null!=_0xc851x3&&(_0xc851x5=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],_0xc851x4?mxConstants[_0x221c[2543]]:mxConstants[_0x221c[2544]],!0));return  new mxConnectionConstraint(_0xc851x3,_0xc851x5)};mxGraph[_0x221c[202]][_0x221c[2545]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(null!=_0xc851x5){this[_0x221c[251]][_0x221c[473]]();try{null==_0xc851x5||null==_0xc851x5[_0x221c[2546]]?(this[_0x221c[1717]](_0xc851x4?mxConstants[_0x221c[2539]]:mxConstants[_0x221c[2540]],null,[_0xc851x2]),this[_0x221c[1717]](_0xc851x4?mxConstants[_0x221c[2541]]:mxConstants[_0x221c[2542]],null,[_0xc851x2]),this[_0x221c[1717]](_0xc851x4?mxConstants[_0x221c[2543]]:mxConstants[_0x221c[2544]],null,[_0xc851x2])):null!=_0xc851x5[_0x221c[2546]]&&(this[_0x221c[1717]](_0xc851x4?mxConstants[_0x221c[2539]]:mxConstants[_0x221c[2540]],_0xc851x5[_0x221c[2546]][_0x221c[235]],[_0xc851x2]),this[_0x221c[1717]](_0xc851x4?mxConstants[_0x221c[2541]]:mxConstants[_0x221c[2542]],_0xc851x5[_0x221c[2546]][_0x221c[236]],[_0xc851x2]),_0xc851x5[_0x221c[591]]?this[_0x221c[1717]](_0xc851x4?mxConstants[_0x221c[2543]]:mxConstants[_0x221c[2544]],null,[_0xc851x2]):this[_0x221c[1717]](_0xc851x4?mxConstants[_0x221c[2543]]:mxConstants[_0x221c[2544]],_0x221c[468],[_0xc851x2]))}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[2290]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=null;if(null!=_0xc851x2){var _0xc851x5=this[_0x221c[441]][_0x221c[2087]](_0xc851x2),_0xc851x9= new mxPoint(_0xc851x5[_0x221c[241]](),_0xc851x5[_0x221c[242]]()),_0xc851xa=_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2011]]],_0xc851x12=0;if(null!=_0xc851xa&&(_0x221c[700]==_0xc851xa?_0xc851x12+=270:_0x221c[703]==_0xc851xa?_0xc851x12+=180:_0x221c[701]==_0xc851xa&&(_0xc851x12+=90),_0x221c[700]==_0xc851xa||_0x221c[701]==_0xc851xa)){_0xc851x5[_0x221c[235]]+=_0xc851x5[_0x221c[117]]/2-_0xc851x5[_0x221c[119]]/2;_0xc851x5[_0x221c[236]]+=_0xc851x5[_0x221c[119]]/2-_0xc851x5[_0x221c[117]]/2;var _0xc851x13=_0xc851x5[_0x221c[117]];_0xc851x5[_0x221c[117]]=_0xc851x5[_0x221c[119]];_0xc851x5[_0x221c[119]]=_0xc851x13};if(null!=_0xc851x3[_0x221c[2546]]){var _0xc851x14=_0xc851x4=1,_0xc851x15=0,_0xc851x16=0;if(this[_0x221c[502]]()[_0x221c[1193]](_0xc851x2[_0x221c[246]])){var _0xc851x17=_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2547]]],_0xc851x18=_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2548]]];null!=_0xc851x2[_0x221c[253]][_0x221c[1561]]&&(_0xc851x17=1==mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],_0x221c[1607],0)||_0xc851x17,_0xc851x18=1==mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],_0x221c[1608],0)||_0xc851x18);if(_0x221c[700]==_0xc851xa||_0x221c[701]==_0xc851xa){_0xc851x13=_0xc851x17,_0xc851x17=_0xc851x18,_0xc851x18=_0xc851x13};_0xc851x17&&(_0xc851x4= -1,_0xc851x15=-_0xc851x5[_0x221c[117]]);_0xc851x18&&(_0xc851x14= -1,_0xc851x16=-_0xc851x5[_0x221c[119]])};_0xc851x4= new mxPoint(_0xc851x5[_0x221c[235]]+_0xc851x3[_0x221c[2546]][_0x221c[235]]*_0xc851x5[_0x221c[117]]*_0xc851x4-_0xc851x15,_0xc851x5[_0x221c[236]]+_0xc851x3[_0x221c[2546]][_0x221c[236]]*_0xc851x5[_0x221c[119]]*_0xc851x14-_0xc851x16)};_0xc851xa=_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2278]]]||0;_0xc851x3[_0x221c[591]]?(0!=_0xc851x12&&null!=_0xc851x4&&(_0xc851x13=_0xc851x5=0,90==_0xc851x12?_0xc851x13=1:180==_0xc851x12?_0xc851x5= -1:270==_0xc851xa&&(_0xc851x13= -1),_0xc851x4=mxUtils[_0x221c[432]](_0xc851x4,_0xc851x5,_0xc851x13,_0xc851x9)),null!=_0xc851x4&&_0xc851x3[_0x221c[591]]&&(_0xc851x4=this[_0x221c[441]][_0x221c[2302]](_0xc851x2,_0xc851x4,!1))):_0xc851xa+=_0xc851x12;0!=_0xc851xa&&null!=_0xc851x4&&(_0xc851x12=mxUtils[_0x221c[431]](_0xc851xa),_0xc851x5=Math[_0x221c[426]](_0xc851x12),_0xc851x13=Math[_0x221c[427]](_0xc851x12),_0xc851x4=mxUtils[_0x221c[432]](_0xc851x4,_0xc851x5,_0xc851x13,_0xc851x9))};return _0xc851x4};mxGraph[_0x221c[202]][_0x221c[851]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[251]][_0x221c[473]]();try{var _0xc851x9=this[_0x221c[251]][_0x221c[1709]](_0xc851x2,_0xc851x4);this[_0x221c[852]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5);this[_0x221c[746]]( new mxEventObject(mxEvent.CONNECT_CELL,_0x221c[1989],_0xc851x2,_0x221c[1984],_0xc851x3,_0x221c[1097],_0xc851x4,_0x221c[257],_0xc851x9))}finally{this[_0x221c[251]][_0x221c[476]]()};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[852]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(null!=_0xc851x2){this[_0x221c[251]][_0x221c[473]]();try{var _0xc851x9=this[_0x221c[251]][_0x221c[1709]](_0xc851x2,_0xc851x4);this[_0x221c[2545]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5);this[_0x221c[2549]]()&&(_0xc851x5=null,this[_0x221c[1908]](_0xc851x3)&&(_0xc851x5=_0xc851x3[_0x221c[1103]](),_0xc851x3=this[_0x221c[2550]](_0xc851x3,_0xc851x4)),this[_0x221c[1717]](_0xc851x4?mxConstants[_0x221c[2303]]:mxConstants[_0x221c[2304]],_0xc851x5,[_0xc851x2]));this[_0x221c[251]][_0x221c[1957]](_0xc851x2,_0xc851x3,_0xc851x4);this[_0x221c[2401]]&&this[_0x221c[1809]](_0xc851x2);this[_0x221c[746]]( new mxEventObject(mxEvent.CELL_CONNECTED,_0x221c[1989],_0xc851x2,_0x221c[1984],_0xc851x3,_0x221c[1097],_0xc851x4,_0x221c[257],_0xc851x9))}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[2531]]=function(_0xc851x2){if(null!=_0xc851x2){this[_0x221c[251]][_0x221c[473]]();try{for(var _0xc851x3=this[_0x221c[441]][_0x221c[255]],_0xc851x4=this[_0x221c[441]][_0x221c[513]],_0xc851x5={},_0xc851x9=0;_0xc851x9<_0xc851x2[_0x221c[67]];_0xc851x9++){var _0xc851xa=mxCellPath[_0x221c[385]](_0xc851x2[_0xc851x9]);_0xc851x5[_0xc851xa]=_0xc851x2[_0xc851x9]};for(_0xc851x9=0;_0xc851x9<_0xc851x2[_0x221c[67]];_0xc851x9++){if(this[_0x221c[251]][_0x221c[250]](_0xc851x2[_0xc851x9])){var _0xc851x12=this[_0x221c[251]][_0x221c[1721]](_0xc851x2[_0xc851x9]);if(null!=_0xc851x12){var _0xc851x13=this[_0x221c[441]][_0x221c[248]](_0xc851x2[_0xc851x9]),_0xc851x14=this[_0x221c[441]][_0x221c[248]](this[_0x221c[251]][_0x221c[1197]](_0xc851x2[_0xc851x9]));if(null!=_0xc851x13&&null!=_0xc851x14){var _0xc851x12=_0xc851x12[_0x221c[238]](),_0xc851x15=-_0xc851x14[_0x221c[2078]][_0x221c[235]],_0xc851x16=-_0xc851x14[_0x221c[2078]][_0x221c[236]],_0xc851x17=_0xc851x13[_0x221c[439]],_0xc851x18=this[_0x221c[251]][_0x221c[1709]](_0xc851x2[_0xc851x9],!0);if(null!=_0xc851x18&&this[_0x221c[2551]](_0xc851x2[_0xc851x9],_0xc851x18,!0)){for(var _0xc851x19=mxCellPath[_0x221c[385]](_0xc851x18);null!=_0xc851x18&&null==_0xc851x5[_0xc851x19];){_0xc851x18=this[_0x221c[251]][_0x221c[1197]](_0xc851x18),_0xc851x19=mxCellPath[_0x221c[385]](_0xc851x18)};null==_0xc851x18&&(_0xc851x12[_0x221c[2007]]( new mxPoint(_0xc851x17[0][_0x221c[235]]/_0xc851x3-_0xc851x4[_0x221c[235]]+_0xc851x15,_0xc851x17[0][_0x221c[236]]/_0xc851x3-_0xc851x4[_0x221c[236]]+_0xc851x16),!0),this[_0x221c[251]][_0x221c[1957]](_0xc851x2[_0xc851x9],null,!0))};var _0xc851x1a=this[_0x221c[251]][_0x221c[1709]](_0xc851x2[_0xc851x9],!1);if(null!=_0xc851x1a&&this[_0x221c[2551]](_0xc851x2[_0xc851x9],_0xc851x1a,!1)){for(var _0xc851x1b=mxCellPath[_0x221c[385]](_0xc851x1a);null!=_0xc851x1a&&null==_0xc851x5[_0xc851x1b];){_0xc851x1a=this[_0x221c[251]][_0x221c[1197]](_0xc851x1a),_0xc851x1b=mxCellPath[_0x221c[385]](_0xc851x1a)};if(null==_0xc851x1a){var _0xc851x1c=_0xc851x17[_0x221c[67]]-1;_0xc851x12[_0x221c[2007]]( new mxPoint(_0xc851x17[_0xc851x1c][_0x221c[235]]/_0xc851x3-_0xc851x4[_0x221c[235]]+_0xc851x15,_0xc851x17[_0xc851x1c][_0x221c[236]]/_0xc851x3-_0xc851x4[_0x221c[236]]+_0xc851x16),!1);this[_0x221c[251]][_0x221c[1957]](_0xc851x2[_0xc851x9],null,!1)}};this[_0x221c[251]][_0x221c[1724]](_0xc851x2[_0xc851x9],_0xc851x12)}}}}}finally{this[_0x221c[251]][_0x221c[476]]()}}};mxGraph[_0x221c[202]][_0x221c[2534]]=function(){return this[_0x221c[441]][_0x221c[1741]]};mxGraph[_0x221c[202]][_0x221c[2326]]=function(_0xc851x2){return null};mxGraph[_0x221c[202]][_0x221c[1908]]=function(_0xc851x2){return !1};mxGraph[_0x221c[202]][_0x221c[2550]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[251]][_0x221c[1197]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2280]]=function(_0xc851x2){return null};mxGraph[_0x221c[202]][_0x221c[2552]]=function(_0xc851x2){_0xc851x2=_0xc851x2||this[_0x221c[2452]]();null!=_0xc851x2&&this[_0x221c[2553]](_0xc851x2)&&(this[_0x221c[441]][_0x221c[2257]](_0xc851x2),this[_0x221c[2440]]())};mxGraph[_0x221c[202]][_0x221c[2554]]=function(){var _0xc851x2=this[_0x221c[251]][_0x221c[501]](),_0xc851x3=this[_0x221c[2534]]();if(null!=_0xc851x3){for(var _0xc851x4=this[_0x221c[251]][_0x221c[1197]](_0xc851x3);_0xc851x4!=_0xc851x2&&!this[_0x221c[2553]](_0xc851x4)&&this[_0x221c[251]][_0x221c[1197]](_0xc851x4)!=_0xc851x2;){_0xc851x4=this[_0x221c[251]][_0x221c[1197]](_0xc851x4)};_0xc851x4==_0xc851x2||this[_0x221c[251]][_0x221c[1197]](_0xc851x4)==_0xc851x2?this[_0x221c[441]][_0x221c[2257]](null):this[_0x221c[441]][_0x221c[2257]](_0xc851x4);null!=this[_0x221c[441]][_0x221c[248]](_0xc851x3)&&this[_0x221c[2450]](_0xc851x3)}};mxGraph[_0x221c[202]][_0x221c[2442]]=function(){var _0xc851x2=this[_0x221c[2534]]();null!=_0xc851x2&&(this[_0x221c[441]][_0x221c[2257]](null),null!=this[_0x221c[441]][_0x221c[248]](_0xc851x2)&&this[_0x221c[2450]](_0xc851x2))};mxGraph[_0x221c[202]][_0x221c[2553]]=function(_0xc851x2){return null!=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[517]]=function(){return this[_0x221c[441]][_0x221c[517]]()};mxGraph[_0x221c[202]][_0x221c[2555]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=[_0xc851x2];_0xc851x3&&(_0xc851x5=_0xc851x5[_0x221c[1919]](this[_0x221c[251]][_0x221c[264]](_0xc851x2)));_0xc851x5=this[_0x221c[441]][_0x221c[1799]](_0xc851x5);if(_0xc851x4){_0xc851x4=this[_0x221c[251]][_0x221c[262]](_0xc851x2);for(var _0xc851x9=0;_0xc851x9<_0xc851x4;_0xc851x9++){var _0xc851xa=this[_0x221c[2555]](this[_0x221c[251]][_0x221c[263]](_0xc851x2,_0xc851x9),_0xc851x3,!0);null!=_0xc851x5?_0xc851x5[_0x221c[99]](_0xc851xa):_0xc851x5=_0xc851xa}};return _0xc851x5};mxGraph[_0x221c[202]][_0x221c[1729]]=function(_0xc851x2,_0xc851x3){_0xc851x3=null!=_0xc851x3?_0xc851x3:!1;var _0xc851x4=null;if(null!=_0xc851x2){for(var _0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){if(_0xc851x3||this[_0x221c[251]][_0x221c[1193]](_0xc851x2[_0xc851x5])){var _0xc851x9=this[_0x221c[1198]](_0xc851x2[_0xc851x5]);if(null!=_0xc851x9){var _0xc851xa=_0xc851x9[_0x221c[1525]];if(null!=_0xc851xa&&0<_0xc851xa[_0x221c[67]]){for(var _0xc851x12= new mxRectangle(_0xc851xa[0][_0x221c[235]],_0xc851xa[0][_0x221c[236]],0,0),_0xc851x13=function(_0xc851x2){null!=_0xc851x2&&_0xc851x12[_0x221c[99]]( new mxRectangle(_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]],0,0))},_0xc851x14=1;_0xc851x14<_0xc851xa[_0x221c[67]];_0xc851x14++){_0xc851x13(_0xc851xa[_0xc851x14])};_0xc851x13(_0xc851x9[_0x221c[2006]](!0));_0xc851x13(_0xc851x9[_0x221c[2006]](!1))};null==_0xc851x4?_0xc851x4= new mxRectangle(_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[236]],_0xc851x9[_0x221c[117]],_0xc851x9[_0x221c[119]]):_0xc851x4[_0x221c[99]](_0xc851x9)}}}};return _0xc851x4};mxGraph[_0x221c[202]][_0x221c[802]]=function(_0xc851x2){this[_0x221c[441]][_0x221c[200]](_0xc851x2,null==_0xc851x2);this[_0x221c[441]][_0x221c[2264]]();this[_0x221c[2258]]();this[_0x221c[746]]( new mxEventObject(mxEvent.REFRESH))};mxGraph[_0x221c[202]][_0x221c[1021]]=function(_0xc851x2){this[_0x221c[991]]&&(_0xc851x2=Math[_0x221c[488]](_0xc851x2/this[_0x221c[1020]])*this[_0x221c[1020]]);return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[1135]]=function(_0xc851x2,_0xc851x3){if(this[_0x221c[2365]]&&mxUtils[_0x221c[1134]](this[_0x221c[526]])){this[_0x221c[526]][_0x221c[360]]= -_0xc851x2,this[_0x221c[526]][_0x221c[190]]= -_0xc851x3}else {var _0xc851x4=this[_0x221c[441]][_0x221c[2051]]();if(this[_0x221c[507]]==mxConstants[_0x221c[508]]){if(0==_0xc851x2&&0==_0xc851x3){if(mxClient[_0x221c[80]]?_0xc851x4[_0x221c[57]](_0x221c[535],_0x221c[536]+_0xc851x2+_0x221c[537]+_0xc851x3+_0x221c[460]):_0xc851x4[_0x221c[1390]](_0x221c[535]),null!=this[_0x221c[2556]]){for(var _0xc851x5=this[_0x221c[2556]][_0x221c[285]];null!=_0xc851x5;){var _0xc851x9=_0xc851x5[_0x221c[287]];this[_0x221c[526]][_0x221c[62]](_0xc851x5);_0xc851x5=_0xc851x9};this[_0x221c[2556]][_0x221c[265]][_0x221c[266]](this[_0x221c[2556]]);this[_0x221c[2556]]=null;this[_0x221c[526]][_0x221c[62]](_0xc851x4[_0x221c[265]]);for(_0xc851x5=this[_0x221c[2557]][_0x221c[285]];null!=_0xc851x5;){_0xc851x9=_0xc851x5[_0x221c[287]],this[_0x221c[526]][_0x221c[62]](_0xc851x5),_0xc851x5=_0xc851x9};this[_0x221c[2557]][_0x221c[265]][_0x221c[266]](this[_0x221c[2557]]);this[_0x221c[2557]]=null}}else {_0xc851x4[_0x221c[57]](_0x221c[535],_0x221c[536]+_0xc851x2+_0x221c[537]+_0xc851x3+_0x221c[460]);if(null==this[_0x221c[2556]]){this[_0x221c[2556]]=document[_0x221c[55]](_0x221c[485]);this[_0x221c[2556]][_0x221c[124]][_0x221c[491]]=_0x221c[492];this[_0x221c[2556]][_0x221c[124]][_0x221c[277]]=_0x221c[189];this[_0x221c[2557]]=document[_0x221c[55]](_0x221c[485]);this[_0x221c[2557]][_0x221c[124]][_0x221c[491]]=_0x221c[492];this[_0x221c[2557]][_0x221c[124]][_0x221c[277]]=_0x221c[189];for(var _0xc851xa=this[_0x221c[2556]],_0xc851x5=this[_0x221c[526]][_0x221c[285]];null!=_0xc851x5;){_0xc851x9=_0xc851x5[_0x221c[287]],_0xc851x5!=_0xc851x4[_0x221c[265]]?_0xc851xa[_0x221c[62]](_0xc851x5):_0xc851xa=this[_0x221c[2557]],_0xc851x5=_0xc851x9};this[_0x221c[526]][_0x221c[950]](this[_0x221c[2556]],_0xc851x4[_0x221c[265]]);this[_0x221c[526]][_0x221c[62]](this[_0x221c[2557]])};this[_0x221c[2556]][_0x221c[124]][_0x221c[361]]=_0xc851x2+_0x221c[168];this[_0x221c[2556]][_0x221c[124]][_0x221c[125]]=_0xc851x3+_0x221c[168];this[_0x221c[2557]][_0x221c[124]][_0x221c[361]]=_0xc851x2+_0x221c[168];this[_0x221c[2557]][_0x221c[124]][_0x221c[125]]=_0xc851x3+_0x221c[168]}}else {_0xc851x4[_0x221c[124]][_0x221c[361]]=_0xc851x2+_0x221c[168],_0xc851x4[_0x221c[124]][_0x221c[125]]=_0xc851x3+_0x221c[168]};this[_0x221c[1136]]=_0xc851x2;this[_0x221c[1137]]=_0xc851x3;this[_0x221c[746]]( new mxEventObject(mxEvent.PAN))}};mxGraph[_0x221c[202]][_0x221c[2558]]=function(){this[_0x221c[499]](this[_0x221c[2395]])};mxGraph[_0x221c[202]][_0x221c[2559]]=function(){this[_0x221c[499]](1/this[_0x221c[2395]])};mxGraph[_0x221c[202]][_0x221c[2560]]=function(){1==this[_0x221c[441]][_0x221c[255]]?this[_0x221c[441]][_0x221c[1147]](0,0):(this[_0x221c[441]][_0x221c[513]][_0x221c[235]]=0,this[_0x221c[441]][_0x221c[513]][_0x221c[236]]=0,this[_0x221c[441]][_0x221c[2262]](1))};mxGraph[_0x221c[202]][_0x221c[2561]]=function(_0xc851x2,_0xc851x3){this[_0x221c[499]](_0xc851x2/this[_0x221c[441]][_0x221c[255]],_0xc851x3)};mxGraph[_0x221c[202]][_0x221c[499]]=function(_0xc851x2,_0xc851x3){_0xc851x3=null!=_0xc851x3?_0xc851x3:this[_0x221c[2397]];var _0xc851x4=this[_0x221c[441]][_0x221c[255]]*_0xc851x2,_0xc851x5=this[_0x221c[441]][_0x221c[248]](this[_0x221c[2452]]());if(this[_0x221c[2396]]&&null!=_0xc851x5){_0xc851x5= new mxRectangle(_0xc851x5[_0x221c[235]]*_0xc851x2,_0xc851x5[_0x221c[236]]*_0xc851x2,_0xc851x5[_0x221c[117]]*_0xc851x2,_0xc851x5[_0x221c[119]]*_0xc851x2),this[_0x221c[441]][_0x221c[255]]=_0xc851x4,this[_0x221c[2562]](_0xc851x5)||(this[_0x221c[441]][_0x221c[2259]](),this[_0x221c[441]][_0x221c[2262]](_0xc851x4))}else {if(_0xc851x3&&!mxUtils[_0x221c[1134]](this[_0x221c[526]])){var _0xc851x5=this[_0x221c[526]][_0x221c[359]],_0xc851x9=this[_0x221c[526]][_0x221c[167]];if(1<_0xc851x2){var _0xc851xa=(_0xc851x2-1)/(2*_0xc851x4),_0xc851x5=_0xc851x5* -_0xc851xa,_0xc851x9=_0xc851x9* -_0xc851xa}else {_0xc851xa=(1/_0xc851x2-1)/(2*this[_0x221c[441]][_0x221c[255]]),_0xc851x5*=_0xc851xa,_0xc851x9*=_0xc851xa};this[_0x221c[441]][_0x221c[829]](_0xc851x4,this[_0x221c[441]][_0x221c[513]][_0x221c[235]]+_0xc851x5,this[_0x221c[441]][_0x221c[513]][_0x221c[236]]+_0xc851x9)}else {this[_0x221c[441]][_0x221c[2262]](_0xc851x4),mxUtils[_0x221c[1134]](this[_0x221c[526]])&&(_0xc851x9=_0xc851x5=0,_0xc851x3&&(_0xc851x5=this[_0x221c[526]][_0x221c[359]]*(_0xc851x2-1)/2,_0xc851x9=this[_0x221c[526]][_0x221c[167]]*(_0xc851x2-1)/2),this[_0x221c[526]][_0x221c[360]]=Math[_0x221c[488]](this[_0x221c[526]][_0x221c[360]]*_0xc851x2+_0xc851x5),this[_0x221c[526]][_0x221c[190]]=Math[_0x221c[488]](this[_0x221c[526]][_0x221c[190]]*_0xc851x2+_0xc851x9))}}};mxGraph[_0x221c[202]][_0x221c[2563]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[526]][_0x221c[159]]/_0xc851x2[_0x221c[117]]/(this[_0x221c[526]][_0x221c[157]]/_0xc851x2[_0x221c[119]]);_0xc851x2[_0x221c[235]]=Math[_0x221c[160]](0,_0xc851x2[_0x221c[235]]);_0xc851x2[_0x221c[236]]=Math[_0x221c[160]](0,_0xc851x2[_0x221c[236]]);var _0xc851x4=Math[_0x221c[243]](this[_0x221c[526]][_0x221c[1526]],_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]),_0xc851x5=Math[_0x221c[243]](this[_0x221c[526]][_0x221c[191]],_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]);_0xc851x2[_0x221c[117]]=_0xc851x4-_0xc851x2[_0x221c[235]];_0xc851x2[_0x221c[119]]=_0xc851x5-_0xc851x2[_0x221c[236]];1>_0xc851x3?(_0xc851x3=_0xc851x2[_0x221c[119]]/_0xc851x3,_0xc851x4=(_0xc851x3-_0xc851x2[_0x221c[119]])/2,_0xc851x2[_0x221c[119]]=_0xc851x3,_0xc851x3=Math[_0x221c[243]](_0xc851x2[_0x221c[236]],_0xc851x4),_0xc851x2[_0x221c[236]]-=_0xc851x3,_0xc851x5=Math[_0x221c[243]](this[_0x221c[526]][_0x221c[191]],_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]),_0xc851x2[_0x221c[119]]=_0xc851x5-_0xc851x2[_0x221c[236]]):(_0xc851x3*=_0xc851x2[_0x221c[117]],_0xc851x4=(_0xc851x3-_0xc851x2[_0x221c[117]])/2,_0xc851x2[_0x221c[117]]=_0xc851x3,_0xc851x3=Math[_0x221c[243]](_0xc851x2[_0x221c[235]],_0xc851x4),_0xc851x2[_0x221c[235]]-=_0xc851x3,_0xc851x4=Math[_0x221c[243]](this[_0x221c[526]][_0x221c[1526]],_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]),_0xc851x2[_0x221c[117]]=_0xc851x4-_0xc851x2[_0x221c[235]]);_0xc851x3=this[_0x221c[526]][_0x221c[159]]/_0xc851x2[_0x221c[117]];_0xc851x4=this[_0x221c[441]][_0x221c[255]]*_0xc851x3;mxUtils[_0x221c[1134]](this[_0x221c[526]])?(this[_0x221c[441]][_0x221c[2262]](_0xc851x4),this[_0x221c[526]][_0x221c[360]]=Math[_0x221c[488]](_0xc851x2[_0x221c[235]]*_0xc851x3),this[_0x221c[526]][_0x221c[190]]=Math[_0x221c[488]](_0xc851x2[_0x221c[236]]*_0xc851x3)):this[_0x221c[441]][_0x221c[829]](_0xc851x4,this[_0x221c[441]][_0x221c[513]][_0x221c[235]]-_0xc851x2[_0x221c[235]]/this[_0x221c[441]][_0x221c[255]],this[_0x221c[441]][_0x221c[513]][_0x221c[236]]-_0xc851x2[_0x221c[236]]/this[_0x221c[441]][_0x221c[255]])};mxGraph[_0x221c[202]][_0x221c[933]]=function(_0xc851x2,_0xc851x3){if(null!=this[_0x221c[526]]){_0xc851x2=null!=_0xc851x2?_0xc851x2:0;_0xc851x3=null!=_0xc851x3?_0xc851x3:!1;var _0xc851x4=this[_0x221c[526]][_0x221c[159]],_0xc851x5=this[_0x221c[526]][_0x221c[157]],_0xc851x9=this[_0x221c[441]][_0x221c[517]]();_0xc851x3&&(null!=_0xc851x9[_0x221c[235]]&&null!=_0xc851x9[_0x221c[236]])&&(_0xc851x9[_0x221c[117]]+=_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[119]]+=_0xc851x9[_0x221c[236]],_0xc851x9[_0x221c[235]]=0,_0xc851x9[_0x221c[236]]=0);var _0xc851xa=this[_0x221c[441]][_0x221c[255]],_0xc851x12=_0xc851x9[_0x221c[117]]/_0xc851xa,_0xc851x13=_0xc851x9[_0x221c[119]]/_0xc851xa;null!=this[_0x221c[1617]]&&(_0xc851x12=Math[_0x221c[160]](_0xc851x12,this[_0x221c[1617]][_0x221c[117]]-_0xc851x9[_0x221c[235]]/_0xc851xa),_0xc851x13=Math[_0x221c[160]](_0xc851x13,this[_0x221c[1617]][_0x221c[119]]-_0xc851x9[_0x221c[236]]/_0xc851xa));var _0xc851x14=_0xc851x3?_0xc851x2:2*_0xc851x2,_0xc851x4=Math[_0x221c[519]](100*Math[_0x221c[243]](_0xc851x4/(_0xc851x12+_0xc851x14),_0xc851x5/(_0xc851x13+_0xc851x14)))/100;null!=this[_0x221c[2413]]&&(_0xc851x4=Math[_0x221c[160]](_0xc851x4,this[_0x221c[2413]]));null!=this[_0x221c[2414]]&&(_0xc851x4=Math[_0x221c[243]](_0xc851x4,this[_0x221c[2414]]));_0xc851x3?this[_0x221c[441]][_0x221c[255]]!=_0xc851x4&&this[_0x221c[441]][_0x221c[2262]](_0xc851x4):mxUtils[_0x221c[1134]](this[_0x221c[526]])?(this[_0x221c[441]][_0x221c[2262]](_0xc851x4),null!=_0xc851x9[_0x221c[235]]&&(this[_0x221c[526]][_0x221c[360]]=Math[_0x221c[488]](_0xc851x9[_0x221c[235]]/_0xc851xa)*_0xc851x4-_0xc851x2-Math[_0x221c[160]](0,(this[_0x221c[526]][_0x221c[159]]-_0xc851x12*_0xc851x4)/2)),null!=_0xc851x9[_0x221c[236]]&&(this[_0x221c[526]][_0x221c[190]]=Math[_0x221c[488]](_0xc851x9[_0x221c[236]]/_0xc851xa)*_0xc851x4-_0xc851x2-Math[_0x221c[160]](0,(this[_0x221c[526]][_0x221c[157]]-_0xc851x13*_0xc851x4)/2))):this[_0x221c[441]][_0x221c[829]](_0xc851x4,null!=_0xc851x9[_0x221c[235]]?Math[_0x221c[519]](this[_0x221c[441]][_0x221c[513]][_0x221c[235]]-_0xc851x9[_0x221c[235]]/_0xc851xa+_0xc851x2+1):_0xc851x2,null!=_0xc851x9[_0x221c[236]]?Math[_0x221c[519]](this[_0x221c[441]][_0x221c[513]][_0x221c[236]]-_0xc851x9[_0x221c[236]]/_0xc851xa+_0xc851x2+1):_0xc851x2)};return this[_0x221c[441]][_0x221c[255]]};mxGraph[_0x221c[202]][_0x221c[2564]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=-this[_0x221c[441]][_0x221c[513]][_0x221c[235]],_0xc851x5=-this[_0x221c[441]][_0x221c[513]][_0x221c[236]],_0xc851x9=this[_0x221c[441]][_0x221c[248]](_0xc851x2);null!=_0xc851x9&&(_0xc851x4= new mxRectangle(_0xc851x4+_0xc851x9[_0x221c[235]],_0xc851x5+_0xc851x9[_0x221c[236]],_0xc851x9[_0x221c[117]],_0xc851x9[_0x221c[119]]),_0xc851x3&&null!=this[_0x221c[526]]&&(_0xc851x5=this[_0x221c[526]][_0x221c[159]],_0xc851x9=this[_0x221c[526]][_0x221c[157]],_0xc851x4[_0x221c[235]]=_0xc851x4[_0x221c[241]]()-_0xc851x5/2,_0xc851x4[_0x221c[117]]=_0xc851x5,_0xc851x4[_0x221c[236]]=_0xc851x4[_0x221c[242]]()-_0xc851x9/2,_0xc851x4[_0x221c[119]]=_0xc851x9),this[_0x221c[2562]](_0xc851x4)&&this[_0x221c[441]][_0x221c[1147]](this[_0x221c[441]][_0x221c[513]][_0x221c[235]],this[_0x221c[441]][_0x221c[513]][_0x221c[236]]))};mxGraph[_0x221c[202]][_0x221c[2562]]=function(_0xc851x2){var _0xc851x3=!1;if(null!=_0xc851x2){var _0xc851x4=this[_0x221c[526]][_0x221c[359]],_0xc851x5=this[_0x221c[526]][_0x221c[167]],_0xc851x9=Math[_0x221c[243]](_0xc851x4,_0xc851x2[_0x221c[117]]),_0xc851xa=Math[_0x221c[243]](_0xc851x5,_0xc851x2[_0x221c[119]]);if(mxUtils[_0x221c[1134]](this[_0x221c[526]])){_0xc851x4=this[_0x221c[526]];_0xc851x2[_0x221c[235]]+=this[_0x221c[441]][_0x221c[513]][_0x221c[235]];_0xc851x2[_0x221c[236]]+=this[_0x221c[441]][_0x221c[513]][_0x221c[236]];var _0xc851x12=_0xc851x4[_0x221c[360]]-_0xc851x2[_0x221c[235]],_0xc851x5=Math[_0x221c[160]](_0xc851x12-_0xc851x4[_0x221c[360]],0);0<_0xc851x12?_0xc851x4[_0x221c[360]]-=_0xc851x12+2:(_0xc851x12=_0xc851x2[_0x221c[235]]+_0xc851x9-_0xc851x4[_0x221c[360]]-_0xc851x4[_0x221c[159]],0<_0xc851x12&&(_0xc851x4[_0x221c[360]]+=_0xc851x12+2));_0xc851x9=_0xc851x4[_0x221c[190]]-_0xc851x2[_0x221c[236]];_0xc851x12=Math[_0x221c[160]](0,_0xc851x9-_0xc851x4[_0x221c[190]]);0<_0xc851x9?_0xc851x4[_0x221c[190]]-=_0xc851x9+2:(_0xc851x9=_0xc851x2[_0x221c[236]]+_0xc851xa-_0xc851x4[_0x221c[190]]-_0xc851x4[_0x221c[157]],0<_0xc851x9&&(_0xc851x4[_0x221c[190]]+=_0xc851x9+2));!this[_0x221c[2365]]&&(0!=_0xc851x5||0!=_0xc851x12)&&this[_0x221c[441]][_0x221c[1147]](_0xc851x5,_0xc851x12)}else {var _0xc851x12=-this[_0x221c[441]][_0x221c[513]][_0x221c[235]],_0xc851x13=-this[_0x221c[441]][_0x221c[513]][_0x221c[236]],_0xc851x14=this[_0x221c[441]][_0x221c[255]];_0xc851x2[_0x221c[235]]+_0xc851x9>_0xc851x12+_0xc851x4&&(this[_0x221c[441]][_0x221c[513]][_0x221c[235]]-=(_0xc851x2[_0x221c[235]]+_0xc851x9-_0xc851x4-_0xc851x12)/_0xc851x14,_0xc851x3= !0);_0xc851x2[_0x221c[236]]+_0xc851xa>_0xc851x13+_0xc851x5&&(this[_0x221c[441]][_0x221c[513]][_0x221c[236]]-=(_0xc851x2[_0x221c[236]]+_0xc851xa-_0xc851x5-_0xc851x13)/_0xc851x14,_0xc851x3= !0);_0xc851x2[_0x221c[235]]<_0xc851x12&&(this[_0x221c[441]][_0x221c[513]][_0x221c[235]]+=(_0xc851x12-_0xc851x2[_0x221c[235]])/_0xc851x14,_0xc851x3= !0);_0xc851x2[_0x221c[236]]<_0xc851x13&&(this[_0x221c[441]][_0x221c[513]][_0x221c[236]]+=(_0xc851x13-_0xc851x2[_0x221c[236]])/_0xc851x14,_0xc851x3= !0);_0xc851x3&&(this[_0x221c[441]][_0x221c[802]](),null!=this[_0x221c[2432]]&&this[_0x221c[2432]][_0x221c[802]]())}};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[1198]]=function(_0xc851x2){return this[_0x221c[251]][_0x221c[1721]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[1714]]=function(_0xc851x2){return this[_0x221c[251]][_0x221c[174]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[1742]]=function(_0xc851x2){return this[_0x221c[251]][_0x221c[1971]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2565]]=function(_0xc851x2){return this[_0x221c[251]][_0x221c[1965]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2298]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2566]]];if(null!=_0xc851x3){return _0xc851x3};_0xc851x2=this[_0x221c[441]][_0x221c[2291]](_0xc851x2);return _0xc851x2==mxEdgeStyle[_0x221c[2567]]||_0xc851x2==mxEdgeStyle[_0x221c[2568]]||_0xc851x2==mxEdgeStyle[_0x221c[2569]]||_0xc851x2==mxEdgeStyle[_0x221c[2570]]||_0xc851x2==mxEdgeStyle[_0x221c[2571]]||_0xc851x2==mxEdgeStyle[_0x221c[2572]]};mxGraph[_0x221c[202]][_0x221c[2573]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[2089]](!0);_0xc851x2=_0xc851x2[_0x221c[2089]](!1);return null!=_0xc851x3&&_0xc851x3==_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2574]]=function(_0xc851x2){return mxEvent[_0x221c[775]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2462]]=function(_0xc851x2){return mxClient[_0x221c[2575]]?mxEvent[_0x221c[2576]](_0xc851x2):mxEvent[_0x221c[775]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[1018]]=function(_0xc851x2){return null!=_0xc851x2&&!mxEvent[_0x221c[2577]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2578]]=function(_0xc851x2){return mxEvent[_0x221c[774]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2579]]=function(_0xc851x2){return mxEvent[_0x221c[2577]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2580]]=function(_0xc851x2){mxUtils[_0x221c[150]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2581]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return null==this[_0x221c[2500]](_0xc851x2,_0xc851x3,_0xc851x4)};mxGraph[_0x221c[202]][_0x221c[2500]]=function(_0xc851x2,_0xc851x3,_0xc851x4){if(null!=_0xc851x2&&!this[_0x221c[2530]]()&&(null==_0xc851x3||null==_0xc851x4)){return _0x221c[110]};if(null!=_0xc851x2&&null==this[_0x221c[251]][_0x221c[1709]](_0xc851x2,!0)&&null==this[_0x221c[251]][_0x221c[1709]](_0xc851x2,!1)){return null};if(!this[_0x221c[2402]]&&_0xc851x3==_0xc851x4&&null!=_0xc851x3||!this[_0x221c[2582]](_0xc851x3,_0xc851x4)){return _0x221c[110]};if(null!=_0xc851x3&&null!=_0xc851x4){var _0xc851x5=_0x221c[110];if(!this[_0x221c[2404]]){var _0xc851x9=this[_0x221c[251]][_0x221c[1781]](_0xc851x3,_0xc851x4,!0);if(1<_0xc851x9[_0x221c[67]]||1==_0xc851x9[_0x221c[67]]&&_0xc851x9[0]!=_0xc851x2){_0xc851x5+=(mxResources[_0x221c[203]](this[_0x221c[2421]])||this[_0x221c[2421]])+_0x221c[192]}};var _0xc851x9=this[_0x221c[251]][_0x221c[1962]](_0xc851x3,!0,_0xc851x2),_0xc851xa=this[_0x221c[251]][_0x221c[1962]](_0xc851x4,!1,_0xc851x2);if(null!=this[_0x221c[2335]]){for(var _0xc851x12=0;_0xc851x12<this[_0x221c[2335]][_0x221c[67]];_0xc851x12++){var _0xc851x13=this[_0x221c[2335]][_0xc851x12][_0x221c[2583]](this,_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x9,_0xc851xa);null!=_0xc851x13&&(_0xc851x5+=_0xc851x13)}};_0xc851x13=this[_0x221c[2584]](_0xc851x2,_0xc851x3,_0xc851x4);null!=_0xc851x13&&(_0xc851x5+=_0xc851x13);return 0<_0xc851x5[_0x221c[67]]?_0xc851x5:null};return this[_0x221c[2406]]?null:_0x221c[110]};mxGraph[_0x221c[202]][_0x221c[2584]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return null};mxGraph[_0x221c[202]][_0x221c[2585]]=function(_0xc851x2,_0xc851x3){_0xc851x2=null!=_0xc851x2?_0xc851x2:this[_0x221c[251]][_0x221c[501]]();_0xc851x3=null!=_0xc851x3?_0xc851x3:{};for(var _0xc851x4=!0,_0xc851x5=this[_0x221c[251]][_0x221c[262]](_0xc851x2),_0xc851x9=0;_0xc851x9<_0xc851x5;_0xc851x9++){var _0xc851xa=this[_0x221c[251]][_0x221c[263]](_0xc851x2,_0xc851x9),_0xc851x12=_0xc851x3;this[_0x221c[2553]](_0xc851xa)&&(_0xc851x12={});_0xc851x12=this[_0x221c[2585]](_0xc851xa,_0xc851x12);null!=_0xc851x12?this[_0x221c[2447]](_0xc851xa,_0xc851x12[_0x221c[230]](/\n/g,_0x221c[545])):this[_0x221c[2447]](_0xc851xa,null);_0xc851x4=_0xc851x4&&null==_0xc851x12};_0xc851x5=_0x221c[110];this[_0x221c[1742]](_0xc851x2)&&!_0xc851x4&&(_0xc851x5+=(mxResources[_0x221c[203]](this[_0x221c[2423]])||this[_0x221c[2423]])+_0x221c[192]);_0xc851x5=this[_0x221c[251]][_0x221c[250]](_0xc851x2)?_0xc851x5+(this[_0x221c[2500]](_0xc851x2,this[_0x221c[251]][_0x221c[1709]](_0xc851x2,!0),this[_0x221c[251]][_0x221c[1709]](_0xc851x2,!1))||_0x221c[110]):_0xc851x5+(this[_0x221c[2586]](_0xc851x2)||_0x221c[110]);_0xc851x9=this[_0x221c[2587]](_0xc851x2,_0xc851x3);null!=_0xc851x9&&(_0xc851x5+=_0xc851x9);null==this[_0x221c[251]][_0x221c[1197]](_0xc851x2)&&this[_0x221c[441]][_0x221c[2264]]();return 0<_0xc851x5[_0x221c[67]]||!_0xc851x4?_0xc851x5:null};mxGraph[_0x221c[202]][_0x221c[2586]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[251]][_0x221c[1962]](_0xc851x2,!0),_0xc851x4=this[_0x221c[251]][_0x221c[1962]](_0xc851x2,!1);_0xc851x2=this[_0x221c[251]][_0x221c[433]](_0xc851x2);var _0xc851x5=_0x221c[110];if(null!=this[_0x221c[2335]]){for(var _0xc851x9=0;_0xc851x9<this[_0x221c[2335]][_0x221c[67]];_0xc851x9++){var _0xc851xa=this[_0x221c[2335]][_0xc851x9];if(_0xc851xa[_0x221c[1097]]&&mxUtils[_0x221c[1331]](_0xc851x2,_0xc851xa[_0x221c[60]],_0xc851xa[_0x221c[2588]],_0xc851xa[_0x221c[131]])&&(0==_0xc851xa[_0x221c[160]]&&0<_0xc851x3||1==_0xc851xa[_0x221c[243]]&&0==_0xc851x3||1==_0xc851xa[_0x221c[160]]&&1<_0xc851x3)){_0xc851x5+=_0xc851xa[_0x221c[2589]]+_0x221c[192]}else {if(!_0xc851xa[_0x221c[1097]]&&mxUtils[_0x221c[1331]](_0xc851x2,_0xc851xa[_0x221c[60]],_0xc851xa[_0x221c[2588]],_0xc851xa[_0x221c[131]])&&(0==_0xc851xa[_0x221c[160]]&&0<_0xc851x4||1==_0xc851xa[_0x221c[243]]&&0==_0xc851x4||1==_0xc851xa[_0x221c[160]]&&1<_0xc851x4)){_0xc851x5+=_0xc851xa[_0x221c[2589]]+_0x221c[192]}}}};return 0<_0xc851x5[_0x221c[67]]?_0xc851x5:null};mxGraph[_0x221c[202]][_0x221c[2587]]=function(_0xc851x2,_0xc851x3){return null};mxGraph[_0x221c[202]][_0x221c[2271]]=function(){return this[_0x221c[1617]]};mxGraph[_0x221c[202]][_0x221c[2590]]=function(_0xc851x2){this[_0x221c[1617]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2205]]=function(_0xc851x2){if(null!=_0xc851x2&&this[_0x221c[2206]]&&!this[_0x221c[502]]()[_0x221c[250]](_0xc851x2[_0x221c[246]])){var _0xc851x3=this[_0x221c[1742]](_0xc851x2[_0x221c[246]]);if(this[_0x221c[2516]](_0xc851x2[_0x221c[246]],!_0xc851x3)){return _0xc851x3?this[_0x221c[2415]]:this[_0x221c[2417]]}};return null};mxGraph[_0x221c[202]][_0x221c[2454]]=function(_0xc851x2){_0xc851x2=this[_0x221c[251]][_0x221c[433]](_0xc851x2);if(null!=_0xc851x2){if(mxUtils[_0x221c[1331]](_0xc851x2)){return _0xc851x2[_0x221c[301]]};if(_0x221c[279]== typeof _0xc851x2[_0x221c[2591]]){return _0xc851x2.toString()}};return _0x221c[110]};mxGraph[_0x221c[202]][_0x221c[2183]]=function(_0xc851x2){var _0xc851x3=_0x221c[110];if(this[_0x221c[2409]]&&null!=_0xc851x2){var _0xc851x4=this[_0x221c[441]][_0x221c[248]](_0xc851x2),_0xc851x4=null!=_0xc851x4?_0xc851x4[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);mxUtils[_0x221c[433]](_0xc851x4,mxConstants.STYLE_NOLABEL,!1)||(_0xc851x3=this[_0x221c[2454]](_0xc851x2))};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[2186]]=function(_0xc851x2){return this[_0x221c[2592]]()};mxGraph[_0x221c[202]][_0x221c[2592]]=function(){return this[_0x221c[2410]]};mxGraph[_0x221c[202]][_0x221c[2593]]=function(_0xc851x2){this[_0x221c[2410]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2131]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[441]][_0x221c[248]](_0xc851x2);_0xc851x2=null!=_0xc851x3?_0xc851x3[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);return null!=_0xc851x2?_0x221c[1333]==_0xc851x2[mxConstants[_0x221c[2594]]]:!1};mxGraph[_0x221c[202]][_0x221c[2130]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[441]][_0x221c[248]](_0xc851x2);_0xc851x2=null!=_0xc851x3?_0xc851x3[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);return null!=_0xc851x2?_0x221c[188]==_0xc851x2[mxConstants[_0x221c[2193]]]:!1};mxGraph[_0x221c[202]][_0x221c[2595]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=null;if(null!=_0xc851x2){if(null!=_0xc851x2[_0x221c[2207]]&&(_0xc851x3==_0xc851x2[_0x221c[2207]][_0x221c[252]]||_0xc851x3[_0x221c[265]]==_0xc851x2[_0x221c[2207]][_0x221c[252]])){_0xc851x9=this[_0x221c[2425]],_0xc851x9=mxResources[_0x221c[203]](_0xc851x9)||_0xc851x9};null==_0xc851x9&&null!=_0xc851x2[_0x221c[1211]]&&_0xc851x2[_0x221c[1211]][_0x221c[209]](function(_0xc851x2,_0xc851x4){if(null==_0xc851x9&&(_0xc851x3==_0xc851x4[_0x221c[252]]||_0xc851x3[_0x221c[265]]==_0xc851x4[_0x221c[252]])){_0xc851x9=_0xc851x4[_0x221c[2201]].toString()}});null==_0xc851x9&&(_0xc851x4=this[_0x221c[2432]][_0x221c[2596]](_0xc851x2[_0x221c[246]]),null!=_0xc851x4&&_0x221c[279]== typeof _0xc851x4[_0x221c[2597]]&&(_0xc851x9=_0xc851x4[_0x221c[2597]](_0xc851x3)));null==_0xc851x9&&(_0xc851x9=this[_0x221c[2598]](_0xc851x2[_0x221c[246]]))};return _0xc851x9};mxGraph[_0x221c[202]][_0x221c[2598]]=function(_0xc851x2){var _0xc851x3=null;return _0xc851x3=null!=_0xc851x2&&null!=_0xc851x2[_0x221c[2595]]?_0xc851x2[_0x221c[2595]]():this[_0x221c[2454]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2599]]=function(_0xc851x2){return null};mxGraph[_0x221c[202]][_0x221c[1731]]=function(_0xc851x2){var _0xc851x3= new mxRectangle,_0xc851x4=this[_0x221c[441]][_0x221c[248]](_0xc851x2);_0xc851x2=null!=_0xc851x4?_0xc851x4[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);null!=_0xc851x2&&(_0xc851x4=parseInt(mxUtils[_0x221c[433]](_0xc851x2,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils[_0x221c[433]](_0xc851x2,mxConstants.STYLE_HORIZONTAL,!0)?_0xc851x3[_0x221c[119]]=_0xc851x4:_0xc851x3[_0x221c[117]]=_0xc851x4);return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[1202]]=function(_0xc851x2){return null!=_0xc851x2&&null!=_0xc851x2[_0x221c[124]]?_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2484]]]:null};mxGraph[_0x221c[202]][_0x221c[2187]]=function(_0xc851x2){return null!=_0xc851x2&&null!=_0xc851x2[_0x221c[124]]?_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2063]]]||mxConstants[_0x221c[481]]:null};mxGraph[_0x221c[202]][_0x221c[2173]]=function(_0xc851x2){return null!=_0xc851x2&&null!=_0xc851x2[_0x221c[124]]?_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2600]]]:null};mxGraph[_0x221c[202]][_0x221c[2174]]=function(_0xc851x2){return null!=_0xc851x2&&null!=_0xc851x2[_0x221c[124]]?_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2601]]]:null};mxGraph[_0x221c[202]][_0x221c[2172]]=function(_0xc851x2){return null!=_0xc851x2&&null!=_0xc851x2[_0x221c[124]]?_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2602]]]:null};mxGraph[_0x221c[202]][_0x221c[2176]]=function(_0xc851x2){return null!=_0xc851x2&&null!=_0xc851x2[_0x221c[124]]?_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2603]]]:null};mxGraph[_0x221c[202]][_0x221c[2476]]=function(){return this[_0x221c[467]]};mxGraph[_0x221c[202]][_0x221c[2604]]=function(_0xc851x2){this[_0x221c[467]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[1730]]=function(_0xc851x2){if(null!=_0xc851x2&&this[_0x221c[251]][_0x221c[1197]](_0xc851x2)!=this[_0x221c[251]][_0x221c[501]]()){var _0xc851x3=this[_0x221c[441]][_0x221c[248]](_0xc851x2),_0xc851x3=null!=_0xc851x3?_0xc851x3[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);if(null!=_0xc851x3&&!this[_0x221c[251]][_0x221c[250]](_0xc851x2)){return _0xc851x3[mxConstants[_0x221c[2059]]]==mxConstants[_0x221c[2605]]}};return !1};mxGraph[_0x221c[202]][_0x221c[2606]]=function(){return this[_0x221c[2389]]};mxGraph[_0x221c[202]][_0x221c[2607]]=function(_0xc851x2){this[_0x221c[2389]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxGraph[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2608]]=function(){return this[_0x221c[2362]]};mxGraph[_0x221c[202]][_0x221c[2609]]=function(_0xc851x2){this[_0x221c[2362]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2134]]=function(){return this[_0x221c[2363]]};mxGraph[_0x221c[202]][_0x221c[2610]]=function(_0xc851x2){this[_0x221c[2363]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2125]]=function(){return this[_0x221c[2364]]};mxGraph[_0x221c[202]][_0x221c[2611]]=function(_0xc851x2){this[_0x221c[2364]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2612]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[251]][_0x221c[1721]](_0xc851x2);return this[_0x221c[2613]]()||null!=_0xc851x3&&this[_0x221c[251]][_0x221c[1193]](_0xc851x2)&&_0xc851x3[_0x221c[1500]]};mxGraph[_0x221c[202]][_0x221c[2613]]=function(){return this[_0x221c[2368]]};mxGraph[_0x221c[202]][_0x221c[2614]]=function(_0xc851x2){this[_0x221c[2368]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2615]]=function(_0xc851x2){return this[_0x221c[251]][_0x221c[1938]](_0xc851x2,mxUtils[_0x221c[885]](this,function(_0xc851x2){return this[_0x221c[2616]](_0xc851x2)}))};mxGraph[_0x221c[202]][_0x221c[2616]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[441]][_0x221c[248]](_0xc851x2);_0xc851x2=null!=_0xc851x3?_0xc851x3[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);return this[_0x221c[2617]]()&&0!=_0xc851x2[mxConstants[_0x221c[2618]]]};mxGraph[_0x221c[202]][_0x221c[2617]]=function(){return this[_0x221c[2369]]};mxGraph[_0x221c[202]][_0x221c[2619]]=function(_0xc851x2){this[_0x221c[2369]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[898]]=function(_0xc851x2){return this[_0x221c[251]][_0x221c[1938]](_0xc851x2,mxUtils[_0x221c[885]](this,function(_0xc851x2){return this[_0x221c[2620]](_0xc851x2)}))};mxGraph[_0x221c[202]][_0x221c[2620]]=function(_0xc851x2){return this[_0x221c[2366]]};mxGraph[_0x221c[202]][_0x221c[900]]=function(_0xc851x2){return this[_0x221c[251]][_0x221c[1938]](_0xc851x2,mxUtils[_0x221c[885]](this,function(_0xc851x2){return this[_0x221c[2621]](_0xc851x2)}))};mxGraph[_0x221c[202]][_0x221c[2621]]=function(_0xc851x2){return this[_0x221c[2367]]};mxGraph[_0x221c[202]][_0x221c[2102]]=function(_0xc851x2){return this[_0x221c[2622]]()};mxGraph[_0x221c[202]][_0x221c[2622]]=function(){return this[_0x221c[2379]]};mxGraph[_0x221c[202]][_0x221c[2623]]=function(_0xc851x2){this[_0x221c[2379]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2510]]=function(_0xc851x2){return this[_0x221c[251]][_0x221c[1938]](_0xc851x2,mxUtils[_0x221c[885]](this,function(_0xc851x2){return this[_0x221c[2624]](_0xc851x2)}))};mxGraph[_0x221c[202]][_0x221c[2624]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[441]][_0x221c[248]](_0xc851x2);_0xc851x2=null!=_0xc851x3?_0xc851x3[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);return this[_0x221c[2625]]()&&0!=_0xc851x2[mxConstants[_0x221c[2626]]]};mxGraph[_0x221c[202]][_0x221c[2625]]=function(){return this[_0x221c[2371]]};mxGraph[_0x221c[202]][_0x221c[2627]]=function(_0xc851x2){this[_0x221c[2371]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2628]]=function(_0xc851x2){return !this[_0x221c[2612]](_0xc851x2)&&(this[_0x221c[251]][_0x221c[250]](_0xc851x2)&&this[_0x221c[2373]]||this[_0x221c[251]][_0x221c[1193]](_0xc851x2)&&this[_0x221c[2374]])};mxGraph[_0x221c[202]][_0x221c[2629]]=function(_0xc851x2){return this[_0x221c[251]][_0x221c[1938]](_0xc851x2,mxUtils[_0x221c[885]](this,function(_0xc851x2){return this[_0x221c[1712]](_0xc851x2)}))};mxGraph[_0x221c[202]][_0x221c[1712]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[441]][_0x221c[248]](_0xc851x2),_0xc851x3=null!=_0xc851x3?_0xc851x3[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);return this[_0x221c[2630]]()&&!this[_0x221c[2612]](_0xc851x2)&&0!=_0xc851x3[mxConstants[_0x221c[2631]]]};mxGraph[_0x221c[202]][_0x221c[2630]]=function(){return this[_0x221c[2372]]};mxGraph[_0x221c[202]][_0x221c[2632]]=function(_0xc851x2){this[_0x221c[2372]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[997]]=function(){return this[_0x221c[991]]};mxGraph[_0x221c[202]][_0x221c[998]]=function(_0xc851x2){this[_0x221c[991]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2549]]=function(){return this[_0x221c[2348]]};mxGraph[_0x221c[202]][_0x221c[2633]]=function(_0xc851x2){this[_0x221c[2348]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2634]]=function(){return this[_0x221c[1020]]};mxGraph[_0x221c[202]][_0x221c[2635]]=function(_0xc851x2){this[_0x221c[1020]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2636]]=function(){return this[_0x221c[2353]]};mxGraph[_0x221c[202]][_0x221c[2637]]=function(_0xc851x2){this[_0x221c[2353]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2638]]=function(){return this[_0x221c[2374]]};mxGraph[_0x221c[202]][_0x221c[2639]]=function(_0xc851x2){this[_0x221c[2374]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2640]]=function(){return this[_0x221c[2373]]};mxGraph[_0x221c[202]][_0x221c[2641]]=function(_0xc851x2){this[_0x221c[2373]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2642]]=function(){return this[_0x221c[2412]]};mxGraph[_0x221c[202]][_0x221c[2643]]=function(_0xc851x2){this[_0x221c[2412]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2460]]=function(){return this[_0x221c[2411]]};mxGraph[_0x221c[202]][_0x221c[2644]]=function(_0xc851x2){this[_0x221c[2411]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2645]]=function(){return this[_0x221c[2404]]};mxGraph[_0x221c[202]][_0x221c[2646]]=function(_0xc851x2){this[_0x221c[2404]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2647]]=function(){return this[_0x221c[2402]]};mxGraph[_0x221c[202]][_0x221c[2648]]=function(_0xc851x2){this[_0x221c[2406]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2530]]=function(){return this[_0x221c[2406]]};mxGraph[_0x221c[202]][_0x221c[2649]]=function(_0xc851x2){this[_0x221c[2405]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2650]]=function(){return this[_0x221c[2405]]};mxGraph[_0x221c[202]][_0x221c[2651]]=function(_0xc851x2){this[_0x221c[2407]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2527]]=function(){return this[_0x221c[2407]]};mxGraph[_0x221c[202]][_0x221c[2652]]=function(_0xc851x2){this[_0x221c[2402]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2529]]=function(){return this[_0x221c[2408]]};mxGraph[_0x221c[202]][_0x221c[2653]]=function(_0xc851x2){this[_0x221c[2408]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[1015]]=function(){return this[_0x221c[2375]]};mxGraph[_0x221c[202]][_0x221c[2654]]=function(_0xc851x2){this[_0x221c[2375]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2655]]=function(){return this[_0x221c[2376]]};mxGraph[_0x221c[202]][_0x221c[2656]]=function(_0xc851x2){this[_0x221c[2376]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2657]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[441]][_0x221c[248]](_0xc851x2),_0xc851x3=null!=_0xc851x3?_0xc851x3[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);return this[_0x221c[2658]]()&&!this[_0x221c[2612]](_0xc851x2)&&0!=_0xc851x3[mxConstants[_0x221c[2659]]]};mxGraph[_0x221c[202]][_0x221c[2658]]=function(){return this[_0x221c[2377]]};mxGraph[_0x221c[202]][_0x221c[2660]]=function(_0xc851x2){this[_0x221c[2377]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2661]]=function(_0xc851x2,_0xc851x3){return !0};mxGraph[_0x221c[202]][_0x221c[2662]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[441]][_0x221c[248]](_0xc851x2),_0xc851x3=null!=_0xc851x3?_0xc851x3[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);return this[_0x221c[2663]]()&&!this[_0x221c[2612]](_0xc851x2)&&0!=_0xc851x3[mxConstants[_0x221c[2664]]]};mxGraph[_0x221c[202]][_0x221c[2663]]=function(){return this[_0x221c[2378]]};mxGraph[_0x221c[202]][_0x221c[2665]]=function(_0xc851x2){this[_0x221c[2378]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2453]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[441]][_0x221c[248]](_0xc851x2),_0xc851x3=null!=_0xc851x3?_0xc851x3[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);return this[_0x221c[2666]]()&&!this[_0x221c[2612]](_0xc851x2)&&0!=_0xc851x3[mxConstants[_0x221c[2667]]]};mxGraph[_0x221c[202]][_0x221c[2666]]=function(){return this[_0x221c[2370]]};mxGraph[_0x221c[202]][_0x221c[2668]]=function(_0xc851x2){this[_0x221c[2370]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2551]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return this[_0x221c[2669]]()&&!this[_0x221c[2612]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2669]]=function(){return this[_0x221c[2380]]};mxGraph[_0x221c[202]][_0x221c[2670]]=function(_0xc851x2){this[_0x221c[2380]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2671]]=function(_0xc851x2){return null==_0xc851x2&&this[_0x221c[2406]]||null!=_0xc851x2&&(!this[_0x221c[251]][_0x221c[250]](_0xc851x2)||this[_0x221c[2405]])&&this[_0x221c[2565]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2672]]=function(_0xc851x2){return this[_0x221c[2671]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2582]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[2671]](_0xc851x2)&&this[_0x221c[2672]](_0xc851x3)};mxGraph[_0x221c[202]][_0x221c[1995]]=function(_0xc851x2){this[_0x221c[2433]][_0x221c[995]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[1965]]=function(_0xc851x2){return this[_0x221c[2433]][_0x221c[994]]()};mxGraph[_0x221c[202]][_0x221c[2673]]=function(_0xc851x2){this[_0x221c[2276]][_0x221c[995]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2674]]=function(_0xc851x2){this[_0x221c[2316]][_0x221c[2431]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2203]]=function(_0xc851x2){if(null!=this[_0x221c[2347]]){var _0xc851x3=this[_0x221c[2347]][_0x221c[2148]]();return null==_0xc851x2?null!=_0xc851x3:_0xc851x2==_0xc851x3};return !1};mxGraph[_0x221c[202]][_0x221c[2455]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[441]][_0x221c[248]](_0xc851x2);_0xc851x2=null!=_0xc851x3?_0xc851x3[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);return this[_0x221c[2675]]()||1==_0xc851x2[mxConstants[_0x221c[2676]]]};mxGraph[_0x221c[202]][_0x221c[2675]]=function(){return this[_0x221c[2381]]};mxGraph[_0x221c[202]][_0x221c[2677]]=function(_0xc851x2){this[_0x221c[2381]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2507]]=function(_0xc851x2){return !this[_0x221c[502]]()[_0x221c[250]](_0xc851x2)&&this[_0x221c[2678]]()};mxGraph[_0x221c[202]][_0x221c[2678]]=function(){return this[_0x221c[2392]]};mxGraph[_0x221c[202]][_0x221c[2679]]=function(_0xc851x2){this[_0x221c[2392]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2506]]=function(){return this[_0x221c[2393]]};mxGraph[_0x221c[202]][_0x221c[2680]]=function(_0xc851x2){this[_0x221c[2393]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2536]]=function(_0xc851x2){return this[_0x221c[2681]]()&&!this[_0x221c[502]]()[_0x221c[250]](this[_0x221c[502]]()[_0x221c[1197]](_0xc851x2))};mxGraph[_0x221c[202]][_0x221c[2681]]=function(){return this[_0x221c[2391]]};mxGraph[_0x221c[202]][_0x221c[2682]]=function(_0xc851x2){this[_0x221c[2391]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2505]]=function(){return this[_0x221c[2390]]};mxGraph[_0x221c[202]][_0x221c[2528]]=function(_0xc851x2){this[_0x221c[2390]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2537]]=function(_0xc851x2){return this[_0x221c[2683]](_0xc851x2)?this[_0x221c[2354]]:0};mxGraph[_0x221c[202]][_0x221c[2683]]=function(_0xc851x2){return !1};mxGraph[_0x221c[202]][_0x221c[2513]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[251]][_0x221c[1938]](_0xc851x2,mxUtils[_0x221c[885]](this,function(_0xc851x2){return this[_0x221c[2516]](_0xc851x2,_0xc851x3)}))};mxGraph[_0x221c[202]][_0x221c[2516]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[441]][_0x221c[248]](_0xc851x2),_0xc851x4=null!=_0xc851x4?_0xc851x4[_0x221c[124]]:this[_0x221c[1705]](_0xc851x2);return 0<this[_0x221c[251]][_0x221c[262]](_0xc851x2)&&0!=_0xc851x4[mxConstants[_0x221c[2684]]]};mxGraph[_0x221c[202]][_0x221c[2685]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return null!=_0xc851x2&&(this[_0x221c[2655]]()&&this[_0x221c[2686]](_0xc851x2,_0xc851x3,_0xc851x4)||!this[_0x221c[251]][_0x221c[250]](_0xc851x2)&&(this[_0x221c[1730]](_0xc851x2)||0<this[_0x221c[251]][_0x221c[262]](_0xc851x2)&&!this[_0x221c[1742]](_0xc851x2)))};mxGraph[_0x221c[202]][_0x221c[2686]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return this[_0x221c[251]][_0x221c[250]](_0xc851x2)&&null!=_0xc851x3&&1==_0xc851x3[_0x221c[67]]&&this[_0x221c[2565]](_0xc851x3[0])&&null==this[_0x221c[2500]](_0xc851x2,this[_0x221c[251]][_0x221c[1709]](_0xc851x2,!0),_0xc851x3[0])?(_0xc851x4=this[_0x221c[251]][_0x221c[1709]](_0xc851x2,!0),_0xc851x2=this[_0x221c[251]][_0x221c[1709]](_0xc851x2,!1),!this[_0x221c[251]][_0x221c[1720]](_0xc851x3[0],_0xc851x4)&&!this[_0x221c[251]][_0x221c[1720]](_0xc851x3[0],_0xc851x2)):!1};mxGraph[_0x221c[202]][_0x221c[564]]=function(_0xc851x2,_0xc851x3,_0xc851x4){if(!this[_0x221c[2642]]()){for(var _0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){if(this[_0x221c[1730]](_0xc851x2[_0xc851x5])){return null}}};_0xc851x5=mxUtils[_0x221c[2196]](this[_0x221c[526]],mxEvent[_0x221c[731]](_0xc851x3),mxEvent[_0x221c[733]](_0xc851x3));_0xc851x5[_0x221c[235]]-=this[_0x221c[1136]];_0xc851x5[_0x221c[236]]-=this[_0x221c[1137]];_0xc851x5=this[_0x221c[2461]](_0xc851x5[_0x221c[235]],_0xc851x5[_0x221c[236]]);if(null==_0xc851x4){_0xc851x4=_0xc851x5}else {if(null!=_0xc851x5){for(var _0xc851x9=this[_0x221c[251]][_0x221c[1197]](_0xc851x5);null!=_0xc851x9&&this[_0x221c[1730]](_0xc851x9)&&_0xc851x9!=_0xc851x4;){_0xc851x9=this[_0x221c[251]][_0x221c[1197]](_0xc851x9)};_0xc851x9==_0xc851x4&&(_0xc851x4=_0xc851x5)}};for(;null!=_0xc851x4&&!this[_0x221c[2685]](_0xc851x4,_0xc851x2,_0xc851x3)&&!this[_0x221c[251]][_0x221c[1740]](_0xc851x4);){_0xc851x4=this[_0x221c[251]][_0x221c[1197]](_0xc851x4)};return !this[_0x221c[251]][_0x221c[1740]](_0xc851x4)&&0>mxUtils[_0x221c[2]](_0xc851x2,_0xc851x4)?_0xc851x4:null};mxGraph[_0x221c[202]][_0x221c[902]]=function(){var _0xc851x2=this[_0x221c[2355]];null==_0xc851x2&&(_0xc851x2=this[_0x221c[2534]](),null==_0xc851x2&&(_0xc851x2=this[_0x221c[251]][_0x221c[501]](),_0xc851x2=this[_0x221c[251]][_0x221c[263]](_0xc851x2,0)));return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[2687]]=function(_0xc851x2){this[_0x221c[2355]]=_0xc851x2};mxGraph[_0x221c[202]][_0x221c[2179]]=function(_0xc851x2){for(;null!=_0xc851x2&&!this[_0x221c[1730]](_0xc851x2);){_0xc851x2=this[_0x221c[251]][_0x221c[1197]](_0xc851x2)};return _0xc851x2};mxGraph[_0x221c[202]][_0x221c[2461]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=_0xc851x4||this[_0x221c[902]]();if(null!=_0xc851x4){for(var _0xc851x5=this[_0x221c[251]][_0x221c[262]](_0xc851x4),_0xc851x9=0;_0xc851x9<_0xc851x5;_0xc851x9++){var _0xc851xa=this[_0x221c[251]][_0x221c[263]](_0xc851x4,_0xc851x9),_0xc851x12=this[_0x221c[2461]](_0xc851x2,_0xc851x3,_0xc851xa);if(null!=_0xc851x12){return _0xc851x12};if(this[_0x221c[1730]](_0xc851xa)&&(_0xc851x12=this[_0x221c[441]][_0x221c[248]](_0xc851xa),this[_0x221c[1825]](_0xc851x12,_0xc851x2,_0xc851x3))){return _0xc851xa}}};return null};mxGraph[_0x221c[202]][_0x221c[999]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x5=null!=_0xc851x5?_0xc851x5:!0;_0xc851x9=null!=_0xc851x9?_0xc851x9:!0;_0xc851x4=null!=_0xc851x4?_0xc851x4:this[_0x221c[902]]();if(null!=_0xc851x4){for(var _0xc851xa=this[_0x221c[251]][_0x221c[262]](_0xc851x4)-1;0<=_0xc851xa;_0xc851xa--){var _0xc851x12=this[_0x221c[251]][_0x221c[263]](_0xc851x4,_0xc851xa),_0xc851x13=this[_0x221c[999]](_0xc851x2,_0xc851x3,_0xc851x12,_0xc851x5,_0xc851x9);if(null!=_0xc851x13){return _0xc851x13};if(this[_0x221c[1714]](_0xc851x12)&&(_0xc851x9&&this[_0x221c[251]][_0x221c[250]](_0xc851x12)||_0xc851x5&&this[_0x221c[251]][_0x221c[1193]](_0xc851x12))){if(_0xc851x13=this[_0x221c[441]][_0x221c[248]](_0xc851x12),this[_0x221c[1825]](_0xc851x13,_0xc851x2,_0xc851x3)){return _0xc851x12}}}};return null};mxGraph[_0x221c[202]][_0x221c[1825]]=function(_0xc851x2,_0xc851x3,_0xc851x4){if(null!=_0xc851x2){var _0xc851x5=_0xc851x2[_0x221c[439]];if(null!=_0xc851x5){_0xc851x2=this[_0x221c[2353]]*this[_0x221c[2353]];for(var _0xc851x9=_0xc851x5[0],_0xc851xa=1;_0xc851xa<_0xc851x5[_0x221c[67]];_0xc851xa++){var _0xc851x12=_0xc851x5[_0xc851xa];if(mxUtils[_0x221c[440]](_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[236]],_0xc851x12[_0x221c[235]],_0xc851x12[_0x221c[236]],_0xc851x3,_0xc851x4)<=_0xc851x2){return !0};_0xc851x9=_0xc851x12}}else {if(_0xc851x9=mxUtils[_0x221c[431]](mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_ROTATION)||0),0!=_0xc851x9&&(_0xc851x5=Math[_0x221c[426]](-_0xc851x9),_0xc851x9=Math[_0x221c[427]](-_0xc851x9),_0xc851xa= new mxPoint(_0xc851x2[_0x221c[241]](),_0xc851x2[_0x221c[242]]()),_0xc851x9=mxUtils[_0x221c[432]]( new mxPoint(_0xc851x3,_0xc851x4),_0xc851x5,_0xc851x9,_0xc851xa),_0xc851x3=_0xc851x9[_0x221c[235]],_0xc851x4=_0xc851x9[_0x221c[236]]),mxUtils[_0x221c[442]](_0xc851x2,_0xc851x3,_0xc851x4)){return !0}}};return !1};mxGraph[_0x221c[202]][_0x221c[2688]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[249]]()[_0x221c[248]](_0xc851x2);_0xc851x2=this[_0x221c[1731]](_0xc851x2);if(null!=_0xc851x5){var _0xc851x9=this[_0x221c[249]]()[_0x221c[518]]();_0xc851x3-=_0xc851x5[_0x221c[235]];_0xc851x4-=_0xc851x5[_0x221c[236]];if(0<_0xc851x2[_0x221c[117]]&&0<_0xc851x3&&_0xc851x3>_0xc851x2[_0x221c[117]]*_0xc851x9||0<_0xc851x2[_0x221c[119]]&&0<_0xc851x4&&_0xc851x4>_0xc851x2[_0x221c[119]]*_0xc851x9){return !0}};return !1};mxGraph[_0x221c[202]][_0x221c[1728]]=function(_0xc851x2){return this[_0x221c[1955]](_0xc851x2,!0,!1)};mxGraph[_0x221c[202]][_0x221c[1956]]=function(_0xc851x2){return this[_0x221c[1955]](_0xc851x2,!1,!0)};mxGraph[_0x221c[202]][_0x221c[1955]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2=null!=_0xc851x2?_0xc851x2:this[_0x221c[902]]();_0xc851x2=this[_0x221c[251]][_0x221c[1955]](_0xc851x2,null!=_0xc851x3?_0xc851x3:!1,null!=_0xc851x4?_0xc851x4:!1);_0xc851x3=[];for(_0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){this[_0x221c[1714]](_0xc851x2[_0xc851x4])&&_0xc851x3[_0x221c[207]](_0xc851x2[_0xc851x4])};return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[1756]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[264]](_0xc851x2,_0xc851x3,!0,!0,!1)};mxGraph[_0x221c[202]][_0x221c[1867]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[264]](_0xc851x2,_0xc851x3,!0,!1,!1)};mxGraph[_0x221c[202]][_0x221c[1963]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[264]](_0xc851x2,_0xc851x3,!1,!0,!1)};mxGraph[_0x221c[202]][_0x221c[264]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x4=null!=_0xc851x4?_0xc851x4:!0;_0xc851x5=null!=_0xc851x5?_0xc851x5:!0;_0xc851x9=null!=_0xc851x9?_0xc851x9:!0;_0xc851xa=null!=_0xc851xa?_0xc851xa:!1;for(var _0xc851x12=[],_0xc851x13=this[_0x221c[1742]](_0xc851x2),_0xc851x14=this[_0x221c[251]][_0x221c[262]](_0xc851x2),_0xc851x15=0;_0xc851x15<_0xc851x14;_0xc851x15++){var _0xc851x16=this[_0x221c[251]][_0x221c[263]](_0xc851x2,_0xc851x15);if(_0xc851x13||!this[_0x221c[1714]](_0xc851x16)){_0xc851x12=_0xc851x12[_0x221c[1919]](this[_0x221c[251]][_0x221c[264]](_0xc851x16,_0xc851x4,_0xc851x5))}};_0xc851x12=_0xc851x12[_0x221c[1919]](this[_0x221c[251]][_0x221c[264]](_0xc851x2,_0xc851x4,_0xc851x5));_0xc851x13=[];for(_0xc851x15=0;_0xc851x15<_0xc851x12[_0x221c[67]];_0xc851x15++){_0xc851x16=this[_0x221c[441]][_0x221c[248]](_0xc851x12[_0xc851x15]),_0xc851x14=null!=_0xc851x16?_0xc851x16[_0x221c[1710]](!0):this[_0x221c[441]][_0x221c[1710]](_0xc851x12[_0xc851x15],!0),_0xc851x16=null!=_0xc851x16?_0xc851x16[_0x221c[1710]](!1):this[_0x221c[441]][_0x221c[1710]](_0xc851x12[_0xc851x15],!1),(_0xc851x9&&_0xc851x14==_0xc851x16||_0xc851x14!=_0xc851x16&&(_0xc851x4&&_0xc851x16==_0xc851x2&&(null==_0xc851x3||this[_0x221c[1920]](_0xc851x14,_0xc851x3,_0xc851xa))||_0xc851x5&&_0xc851x14==_0xc851x2&&(null==_0xc851x3||this[_0x221c[1920]](_0xc851x16,_0xc851x3,_0xc851xa))))&&_0xc851x13[_0x221c[207]](_0xc851x12[_0xc851x15])};return _0xc851x13};mxGraph[_0x221c[202]][_0x221c[1920]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return _0xc851x4?this[_0x221c[251]][_0x221c[1720]](_0xc851x3,_0xc851x2):this[_0x221c[251]][_0x221c[1197]](_0xc851x2)==_0xc851x3};mxGraph[_0x221c[202]][_0x221c[1808]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x4=null!=_0xc851x4?_0xc851x4:!0;_0xc851x5=null!=_0xc851x5?_0xc851x5:!0;var _0xc851x9=[],_0xc851xa={};if(null!=_0xc851x2){for(var _0xc851x12=0;_0xc851x12<_0xc851x2[_0x221c[67]];_0xc851x12++){var _0xc851x13=this[_0x221c[441]][_0x221c[248]](_0xc851x2[_0xc851x12]),_0xc851x14=null!=_0xc851x13?_0xc851x13[_0x221c[1710]](!0):this[_0x221c[441]][_0x221c[1710]](_0xc851x2[_0xc851x12],!0),_0xc851x13=null!=_0xc851x13?_0xc851x13[_0x221c[1710]](!1):this[_0x221c[441]][_0x221c[1710]](_0xc851x2[_0xc851x12],!1);if(_0xc851x14==_0xc851x3&&null!=_0xc851x13&&_0xc851x13!=_0xc851x3&&_0xc851x5){var _0xc851x15=mxCellPath[_0x221c[385]](_0xc851x13);null==_0xc851xa[_0xc851x15]&&(_0xc851xa[_0xc851x15]=_0xc851x13,_0xc851x9[_0x221c[207]](_0xc851x13))}else {_0xc851x13==_0xc851x3&&(null!=_0xc851x14&&_0xc851x14!=_0xc851x3&&_0xc851x4)&&(_0xc851x15=mxCellPath[_0x221c[385]](_0xc851x14),null==_0xc851xa[_0xc851x15]&&(_0xc851xa[_0xc851x15]=_0xc851x14,_0xc851x9[_0x221c[207]](_0xc851x14)))}}};return _0xc851x9};mxGraph[_0x221c[202]][_0x221c[1781]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=null!=_0xc851x4?_0xc851x4:!1;for(var _0xc851x5=this[_0x221c[264]](_0xc851x2),_0xc851x9=[],_0xc851xa=0;_0xc851xa<_0xc851x5[_0x221c[67]];_0xc851xa++){var _0xc851x12=this[_0x221c[441]][_0x221c[248]](_0xc851x5[_0xc851xa]),_0xc851x13=null!=_0xc851x12?_0xc851x12[_0x221c[1710]](!0):this[_0x221c[441]][_0x221c[1710]](_0xc851x5[_0xc851xa],!0),_0xc851x12=null!=_0xc851x12?_0xc851x12[_0x221c[1710]](!1):this[_0x221c[441]][_0x221c[1710]](_0xc851x5[_0xc851xa],!1);(_0xc851x13==_0xc851x2&&_0xc851x12==_0xc851x3||!_0xc851x4&&_0xc851x13==_0xc851x3&&_0xc851x12==_0xc851x2)&&_0xc851x9[_0x221c[207]](_0xc851x5[_0xc851xa])};return _0xc851x9};mxGraph[_0x221c[202]][_0x221c[2689]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=mxUtils[_0x221c[2196]](this[_0x221c[526]],mxEvent[_0x221c[731]](_0xc851x2),mxEvent[_0x221c[733]](_0xc851x2)),_0xc851x5=this[_0x221c[441]][_0x221c[255]],_0xc851x9=this[_0x221c[441]][_0x221c[513]],_0xc851xa=!1!=_0xc851x3?this[_0x221c[1020]]/2:0;_0xc851x4[_0x221c[235]]=this[_0x221c[1021]](_0xc851x4[_0x221c[235]]/_0xc851x5-_0xc851x9[_0x221c[235]]-_0xc851xa);_0xc851x4[_0x221c[236]]=this[_0x221c[1021]](_0xc851x4[_0x221c[236]]/_0xc851x5-_0xc851x9[_0x221c[236]]-_0xc851xa);return _0xc851x4};mxGraph[_0x221c[202]][_0x221c[2690]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851xa=null!=_0xc851xa?_0xc851xa:[];if(0<_0xc851x4||0<_0xc851x5){var _0xc851x12=_0xc851x2+_0xc851x4,_0xc851x13=_0xc851x3+_0xc851x5;_0xc851x9=_0xc851x9||this[_0x221c[902]]();if(null!=_0xc851x9){for(var _0xc851x14=this[_0x221c[251]][_0x221c[262]](_0xc851x9),_0xc851x15=0;_0xc851x15<_0xc851x14;_0xc851x15++){var _0xc851x16=this[_0x221c[251]][_0x221c[263]](_0xc851x9,_0xc851x15),_0xc851x17=this[_0x221c[441]][_0x221c[248]](_0xc851x16);if(this[_0x221c[1714]](_0xc851x16)&&null!=_0xc851x17){var _0xc851x18=_0xc851x17,_0xc851x17=mxUtils[_0x221c[433]](_0xc851x17[_0x221c[124]],mxConstants.STYLE_ROTATION)||0;0!=_0xc851x17&&(_0xc851x18=mxUtils[_0x221c[1613]](_0xc851x18,_0xc851x17));_0xc851x18[_0x221c[235]]>=_0xc851x2&&_0xc851x18[_0x221c[236]]+_0xc851x18[_0x221c[119]]<=_0xc851x13&&_0xc851x18[_0x221c[236]]>=_0xc851x3&&_0xc851x18[_0x221c[235]]+_0xc851x18[_0x221c[117]]<=_0xc851x12?_0xc851xa[_0x221c[207]](_0xc851x16):this[_0x221c[2690]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x16,_0xc851xa)}}}};return _0xc851xa};mxGraph[_0x221c[202]][_0x221c[2691]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=[];if(_0xc851x5||_0xc851x9){if(null==_0xc851x4&&(_0xc851x4=this[_0x221c[902]]()),null!=_0xc851x4){for(var _0xc851x12=this[_0x221c[251]][_0x221c[262]](_0xc851x4),_0xc851x13=0;_0xc851x13<_0xc851x12;_0xc851x13++){var _0xc851x14=this[_0x221c[251]][_0x221c[263]](_0xc851x4,_0xc851x13),_0xc851x15=this[_0x221c[441]][_0x221c[248]](_0xc851x14);this[_0x221c[1714]](_0xc851x14)&&null!=_0xc851x15&&(!_0xc851x5||_0xc851x15[_0x221c[235]]>=_0xc851x2)&&(!_0xc851x9||_0xc851x15[_0x221c[236]]>=_0xc851x3)&&_0xc851xa[_0x221c[207]](_0xc851x14)}}};return _0xc851xa};mxGraph[_0x221c[202]][_0x221c[1757]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=null!=_0xc851x3?_0xc851x3:!1;_0xc851x4=null!=_0xc851x4?_0xc851x4:!1;var _0xc851x5=[];if(null!=_0xc851x2){for(var _0xc851x9=this[_0x221c[502]](),_0xc851xa=_0xc851x9[_0x221c[262]](_0xc851x2),_0xc851x12=null,_0xc851x13=0,_0xc851x14=0;_0xc851x14<_0xc851xa;_0xc851x14++){var _0xc851x15=_0xc851x9[_0x221c[263]](_0xc851x2,_0xc851x14);if(this[_0x221c[251]][_0x221c[1193]](_0xc851x15)&&this[_0x221c[1714]](_0xc851x15)){for(var _0xc851x16=this[_0x221c[1756]](_0xc851x15,_0xc851x3?_0xc851x2:null),_0xc851x17=0,_0xc851x18=0,_0xc851x19=0;_0xc851x19<_0xc851x16[_0x221c[67]];_0xc851x19++){this[_0x221c[441]][_0x221c[1710]](_0xc851x16[_0xc851x19],!0)==_0xc851x15?_0xc851x17++:_0xc851x18++};(_0xc851x4&&0==_0xc851x17&&0<_0xc851x18||!_0xc851x4&&0==_0xc851x18&&0<_0xc851x17)&&_0xc851x5[_0x221c[207]](_0xc851x15);_0xc851x16=_0xc851x4?_0xc851x18-_0xc851x17:_0xc851x17-_0xc851x18;_0xc851x16>_0xc851x13&&(_0xc851x13=_0xc851x16,_0xc851x12=_0xc851x15)}};0==_0xc851x5[_0x221c[67]]&&null!=_0xc851x12&&_0xc851x5[_0x221c[207]](_0xc851x12)};return _0xc851x5};mxGraph[_0x221c[202]][_0x221c[1706]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){if(null!=_0xc851x4&&null!=_0xc851x2){_0xc851x3=null!=_0xc851x3?_0xc851x3:!0;_0xc851x9=_0xc851x9||[];var _0xc851xa=mxCellPath[_0x221c[385]](_0xc851x2);if(null==_0xc851x9[_0xc851xa]&&(_0xc851x9[_0xc851xa]=_0xc851x2,_0xc851x5=_0xc851x4(_0xc851x2,_0xc851x5),null==_0xc851x5||_0xc851x5)){if(_0xc851x5=this[_0x221c[251]][_0x221c[1707]](_0xc851x2),0<_0xc851x5){for(_0xc851xa=0;_0xc851xa<_0xc851x5;_0xc851xa++){var _0xc851x12=this[_0x221c[251]][_0x221c[1708]](_0xc851x2,_0xc851xa),_0xc851x13=this[_0x221c[251]][_0x221c[1709]](_0xc851x12,!0)==_0xc851x2;if(!_0xc851x3||_0xc851x13){_0xc851x13=this[_0x221c[251]][_0x221c[1709]](_0xc851x12,!_0xc851x13),this[_0x221c[1706]](_0xc851x13,_0xc851x3,_0xc851x4,_0xc851x12,_0xc851x9)}}}}}};mxGraph[_0x221c[202]][_0x221c[2692]]=function(_0xc851x2){return this[_0x221c[2435]]()[_0x221c[2097]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2693]]=function(){return this[_0x221c[2435]]()[_0x221c[1107]]()};mxGraph[_0x221c[202]][_0x221c[2440]]=function(){return this[_0x221c[2435]]()[_0x221c[200]]()};mxGraph[_0x221c[202]][_0x221c[2694]]=function(){return this[_0x221c[2435]]()[_0x221c[895]][_0x221c[67]]};mxGraph[_0x221c[202]][_0x221c[2452]]=function(){return this[_0x221c[2435]]()[_0x221c[895]][0]};mxGraph[_0x221c[202]][_0x221c[897]]=function(){return this[_0x221c[2435]]()[_0x221c[895]][_0x221c[1853]]()};mxGraph[_0x221c[202]][_0x221c[2450]]=function(_0xc851x2){this[_0x221c[2435]]()[_0x221c[2099]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[904]]=function(_0xc851x2){this[_0x221c[2435]]()[_0x221c[2100]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2695]]=function(_0xc851x2){this[_0x221c[2435]]()[_0x221c[2103]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2696]]=function(_0xc851x2){this[_0x221c[2435]]()[_0x221c[832]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2697]]=function(_0xc851x2){this[_0x221c[2435]]()[_0x221c[2104]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2439]]=function(_0xc851x2){this[_0x221c[2435]]()[_0x221c[842]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2698]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[2690]](_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]],_0xc851x2[_0x221c[117]],_0xc851x2[_0x221c[119]]);this[_0x221c[2699]](_0xc851x4,_0xc851x3);return _0xc851x4};mxGraph[_0x221c[202]][_0x221c[2700]]=function(){this[_0x221c[2701]](!0)};mxGraph[_0x221c[202]][_0x221c[2702]]=function(){this[_0x221c[2701]]()};mxGraph[_0x221c[202]][_0x221c[2703]]=function(){this[_0x221c[2701]](!1,!0)};mxGraph[_0x221c[202]][_0x221c[2704]]=function(){this[_0x221c[2701]](!1,!1,!0)};mxGraph[_0x221c[202]][_0x221c[2701]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[2105]],_0xc851x9=0<_0xc851x5[_0x221c[895]][_0x221c[67]]?_0xc851x5[_0x221c[895]][0]:null;1<_0xc851x5[_0x221c[895]][_0x221c[67]]&&_0xc851x5[_0x221c[200]]();var _0xc851x5=null!=_0xc851x9?this[_0x221c[251]][_0x221c[1197]](_0xc851x9):this[_0x221c[902]](),_0xc851xa=this[_0x221c[251]][_0x221c[262]](_0xc851x5);null==_0xc851x9&&0<_0xc851xa?(_0xc851x2=this[_0x221c[251]][_0x221c[263]](_0xc851x5,0),this[_0x221c[2450]](_0xc851x2)):(null==_0xc851x9||_0xc851x3)&&null!=this[_0x221c[441]][_0x221c[248]](_0xc851x5)&&null!=this[_0x221c[251]][_0x221c[1721]](_0xc851x5)?this[_0x221c[2534]]()!=_0xc851x5&&this[_0x221c[2450]](_0xc851x5):null!=_0xc851x9&&_0xc851x4?0<this[_0x221c[251]][_0x221c[262]](_0xc851x9)&&(_0xc851x2=this[_0x221c[251]][_0x221c[263]](_0xc851x9,0),this[_0x221c[2450]](_0xc851x2)):0<_0xc851xa&&(_0xc851x3=_0xc851x5[_0x221c[1738]](_0xc851x9),_0xc851x2?(_0xc851x3++,_0xc851x2=this[_0x221c[251]][_0x221c[263]](_0xc851x5,_0xc851x3%_0xc851xa)):(_0xc851x3--,_0xc851x2=this[_0x221c[251]][_0x221c[263]](_0xc851x5,0>_0xc851x3?_0xc851xa-1:_0xc851x3)),this[_0x221c[2450]](_0xc851x2))};mxGraph[_0x221c[202]][_0x221c[2705]]=function(_0xc851x2){_0xc851x2=_0xc851x2||this[_0x221c[902]]();_0xc851x2=this[_0x221c[251]][_0x221c[1953]](_0xc851x2);null!=_0xc851x2&&this[_0x221c[904]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2706]]=function(_0xc851x2){this[_0x221c[2707]](!0,!1,_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2708]]=function(_0xc851x2){this[_0x221c[2707]](!1,!0,_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2707]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=_0xc851x4||this[_0x221c[902]]();var _0xc851x5=mxUtils[_0x221c[885]](this,function(_0xc851x4){return null!=this[_0x221c[441]][_0x221c[248]](_0xc851x4)&&0==this[_0x221c[251]][_0x221c[262]](_0xc851x4)&&(this[_0x221c[251]][_0x221c[1193]](_0xc851x4)&&_0xc851x2||this[_0x221c[251]][_0x221c[250]](_0xc851x4)&&_0xc851x3)});_0xc851x4=this[_0x221c[251]][_0x221c[1921]](_0xc851x5,_0xc851x4);this[_0x221c[904]](_0xc851x4)};mxGraph[_0x221c[202]][_0x221c[2459]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[2692]](_0xc851x2);this[_0x221c[2462]](_0xc851x3)?_0xc851x4?this[_0x221c[2697]](_0xc851x2):this[_0x221c[2695]](_0xc851x2):(!_0xc851x4||1!=this[_0x221c[2694]]())&&this[_0x221c[2450]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2699]]=function(_0xc851x2,_0xc851x3){this[_0x221c[2462]](_0xc851x3)?this[_0x221c[2696]](_0xc851x2):this[_0x221c[904]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[2709]]=function(_0xc851x2){var _0xc851x3=null;null!=_0xc851x2&&(this[_0x221c[251]][_0x221c[250]](_0xc851x2[_0x221c[246]])?(_0xc851x3=this[_0x221c[441]][_0x221c[2291]](_0xc851x2),_0xc851x3=this[_0x221c[2573]](_0xc851x2)||_0xc851x3==mxEdgeStyle[_0x221c[2568]]||_0xc851x3==mxEdgeStyle[_0x221c[2569]]||_0xc851x3==mxEdgeStyle[_0x221c[2570]]? new mxElbowEdgeHandler(_0xc851x2):_0xc851x3==mxEdgeStyle[_0x221c[2567]]||_0xc851x3==mxEdgeStyle[_0x221c[2572]]? new mxEdgeSegmentHandler(_0xc851x2): new mxEdgeHandler(_0xc851x2)):_0xc851x3= new mxVertexHandler(_0xc851x2));return _0xc851x3};mxGraph[_0x221c[202]][_0x221c[1133]]=function(_0xc851x2){null==this[_0x221c[2329]]&&(this[_0x221c[2329]]=[]);this[_0x221c[2329]][_0x221c[207]](_0xc851x2)};mxGraph[_0x221c[202]][_0x221c[1148]]=function(_0xc851x2){if(null!=this[_0x221c[2329]]){for(var _0xc851x3=0;_0xc851x3<this[_0x221c[2329]][_0x221c[67]];_0xc851x3++){if(this[_0x221c[2329]][_0xc851x3]==_0xc851x2){this[_0x221c[2329]][_0x221c[300]](_0xc851x3,1);break}}}};mxGraph[_0x221c[202]][_0x221c[2710]]=function(_0xc851x2){if(null==_0xc851x2[_0x221c[725]]||null==_0xc851x2[_0x221c[726]]){var _0xc851x3=mxUtils[_0x221c[2196]](this[_0x221c[526]],_0xc851x2[_0x221c[730]](),_0xc851x2[_0x221c[732]]());_0xc851x2[_0x221c[725]]=_0xc851x3[_0x221c[235]]-this[_0x221c[1136]];_0xc851x2[_0x221c[726]]=_0xc851x3[_0x221c[236]]-this[_0x221c[1137]]}};mxGraph[_0x221c[202]][_0x221c[758]]=function(_0xc851x2,_0xc851x3,_0xc851x4){null==_0xc851x4&&(_0xc851x4=this);this[_0x221c[2710]](_0xc851x3);_0xc851x2==mxEvent[_0x221c[2711]]&&(this[_0x221c[1009]]= !0);if(mxClient[_0x221c[754]]&&this[_0x221c[2349]]&&_0xc851x2==mxEvent[_0x221c[2711]]){var _0xc851x5=( new Date)[_0x221c[178]]();_0xc851x5-this[_0x221c[2213]]<this[_0x221c[2350]]&&Math[_0x221c[425]](this[_0x221c[2712]]-_0xc851x3[_0x221c[730]]())<this[_0x221c[2351]]&&Math[_0x221c[425]](this[_0x221c[2352]]-_0xc851x3[_0x221c[732]]())<this[_0x221c[2351]]?(this[_0x221c[2213]]=0,this[_0x221c[761]](_0xc851x3[_0x221c[727]](),_0xc851x3[_0x221c[736]]()),_0xc851x3[_0x221c[727]]()[_0x221c[786]]= !0):(this[_0x221c[2712]]=_0xc851x3[_0x221c[730]](),this[_0x221c[2352]]=_0xc851x3[_0x221c[732]](),this[_0x221c[2213]]=_0xc851x5)};_0xc851x5=2!=_0xc851x3[_0x221c[727]]()[_0x221c[764]];if(mxClient[_0x221c[80]]&&_0x221c[462]==document[_0x221c[135]]){if(null!=this[_0x221c[2713]]&&Math[_0x221c[425]](this[_0x221c[2713]]-_0xc851x3[_0x221c[730]]())>this[_0x221c[2351]]||null!=this[_0x221c[2714]]&&Math[_0x221c[425]](this[_0x221c[2714]]-_0xc851x3[_0x221c[732]]())>this[_0x221c[2351]]){_0xc851x5= !0};_0xc851x2==mxEvent[_0x221c[2715]]&&(this[_0x221c[2713]]=_0xc851x3[_0x221c[730]](),this[_0x221c[2714]]=_0xc851x3[_0x221c[732]]())};if((_0xc851x2!=mxEvent[_0x221c[2715]]||this[_0x221c[1009]])&&_0xc851x5){if(_0xc851x2==mxEvent[_0x221c[2715]]&&(this[_0x221c[1009]]= !1),!this[_0x221c[2203]]()&&(mxClient[_0x221c[71]]||mxClient[_0x221c[75]]||mxClient[_0x221c[76]]||mxClient[_0x221c[80]]&&mxClient[_0x221c[48]]||_0xc851x3[_0x221c[727]]()[_0x221c[772]]!=this[_0x221c[526]])){_0xc851x2==mxEvent[_0x221c[2716]]&&(this[_0x221c[1009]]&&this[_0x221c[1012]])&&this[_0x221c[1014]](_0xc851x3[_0x221c[734]](),_0xc851x3[_0x221c[735]](),this[_0x221c[1013]]);if(null!=this[_0x221c[2329]]){_0xc851x4=[_0xc851x4,_0xc851x3];_0xc851x3[_0x221c[727]]()[_0x221c[739]]= !0;for(_0xc851x5=0;_0xc851x5<this[_0x221c[2329]][_0x221c[67]];_0xc851x5++){var _0xc851x9=this[_0x221c[2329]][_0xc851x5];_0xc851x2==mxEvent[_0x221c[2711]]?_0xc851x9[_0x221c[787]][_0x221c[183]](_0xc851x9,_0xc851x4):_0xc851x2==mxEvent[_0x221c[2716]]?_0xc851x9[_0x221c[788]][_0x221c[183]](_0xc851x9,_0xc851x4):_0xc851x2==mxEvent[_0x221c[2715]]&&_0xc851x9[_0x221c[789]][_0x221c[183]](_0xc851x9,_0xc851x4)}};_0xc851x2==mxEvent[_0x221c[2715]]&&this[_0x221c[173]](_0xc851x3)}}else {_0xc851x2==mxEvent[_0x221c[2715]]&&(this[_0x221c[1009]]= !1)}};mxGraph[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[2717]]||(this[_0x221c[2717]]= !0,null!=this[_0x221c[2276]]&&this[_0x221c[2276]][_0x221c[515]](),null!=this[_0x221c[2432]]&&this[_0x221c[2432]][_0x221c[515]](),null!=this[_0x221c[2316]]&&this[_0x221c[2316]][_0x221c[515]](),null!=this[_0x221c[2433]]&&this[_0x221c[2433]][_0x221c[515]](),null!=this[_0x221c[1011]]&&this[_0x221c[1011]][_0x221c[515]](),null!=this[_0x221c[2347]]&&this[_0x221c[2347]][_0x221c[515]](),null!=this[_0x221c[441]]&&this[_0x221c[441]][_0x221c[515]](),null!=this[_0x221c[251]]&&null!=this[_0x221c[2343]]&&(this[_0x221c[251]][_0x221c[745]](this[_0x221c[2343]]),this[_0x221c[2343]]=null),this[_0x221c[526]]=null)};function mxCellOverlay(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){this[_0x221c[618]]=_0xc851x2;this[_0x221c[2718]]=_0xc851x3;this[_0x221c[611]]=null!=_0xc851x4?_0xc851x4:this[_0x221c[611]];this[_0x221c[123]]=null!=_0xc851x5?_0xc851x5:this[_0x221c[123]];this[_0x221c[1368]]=null!=_0xc851x9?_0xc851x9: new mxPoint;this[_0x221c[270]]=null!=_0xc851xa?_0xc851xa:_0x221c[2719]}mxCellOverlay[_0x221c[202]]= new mxEventSource;mxCellOverlay[_0x221c[202]][_0x221c[196]]=mxCellOverlay;mxCellOverlay[_0x221c[202]][_0x221c[618]]=null;mxCellOverlay[_0x221c[202]][_0x221c[2718]]=null;mxCellOverlay[_0x221c[202]][_0x221c[611]]=mxConstants[_0x221c[480]];mxCellOverlay[_0x221c[202]][_0x221c[123]]=mxConstants[_0x221c[482]];mxCellOverlay[_0x221c[202]][_0x221c[1368]]=null;mxCellOverlay[_0x221c[202]][_0x221c[270]]=null;mxCellOverlay[_0x221c[202]][_0x221c[2354]]=0.5;mxCellOverlay[_0x221c[202]][_0x221c[1799]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[441]][_0x221c[1179]][_0x221c[502]]()[_0x221c[250]](_0xc851x2[_0x221c[246]]),_0xc851x4=_0xc851x2[_0x221c[441]][_0x221c[255]],_0xc851x5=null,_0xc851x9=this[_0x221c[618]][_0x221c[117]],_0xc851xa=this[_0x221c[618]][_0x221c[119]];_0xc851x3?(_0xc851x3=_0xc851x2[_0x221c[439]],1==_0xc851x3[_0x221c[67]]%2?_0xc851x5=_0xc851x3[Math[_0x221c[519]](_0xc851x3[_0x221c[67]]/2)]:(_0xc851x5=_0xc851x3[_0x221c[67]]/2,_0xc851x2=_0xc851x3[_0xc851x5-1],_0xc851x3=_0xc851x3[_0xc851x5],_0xc851x5= new mxPoint(_0xc851x2[_0x221c[235]]+(_0xc851x3[_0x221c[235]]-_0xc851x2[_0x221c[235]])/2,_0xc851x2[_0x221c[236]]+(_0xc851x3[_0x221c[236]]-_0xc851x2[_0x221c[236]])/2))):(_0xc851x5= new mxPoint,_0xc851x5[_0x221c[235]]=this[_0x221c[611]]==mxConstants[_0x221c[2132]]?_0xc851x2[_0x221c[235]]:this[_0x221c[611]]==mxConstants[_0x221c[479]]?_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]/2:_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]],_0xc851x5[_0x221c[236]]=this[_0x221c[123]]==mxConstants[_0x221c[1687]]?_0xc851x2[_0x221c[236]]:this[_0x221c[123]]==mxConstants[_0x221c[481]]?_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]/2:_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]);return  new mxRectangle(Math[_0x221c[488]](_0xc851x5[_0x221c[235]]-(_0xc851x9*this[_0x221c[2354]]-this[_0x221c[1368]][_0x221c[235]])*_0xc851x4),Math[_0x221c[488]](_0xc851x5[_0x221c[236]]-(_0xc851xa*this[_0x221c[2354]]-this[_0x221c[1368]][_0x221c[236]])*_0xc851x4),_0xc851x9*_0xc851x4,_0xc851xa*_0xc851x4)};mxCellOverlay[_0x221c[202]][_0x221c[2591]]=function(){return this[_0x221c[2718]]};function mxOutline(_0xc851x2,_0xc851x3){this[_0x221c[1097]]=_0xc851x2;null!=_0xc851x3&&this[_0x221c[176]](_0xc851x3)}mxOutline[_0x221c[202]][_0x221c[1097]]=null;mxOutline[_0x221c[202]][_0x221c[2136]]=null;mxOutline[_0x221c[202]][_0x221c[2720]]=mxConstants[_0x221c[2333]];mxOutline[_0x221c[202]][_0x221c[984]]= !0;mxOutline[_0x221c[202]][_0x221c[2721]]= !0;mxOutline[_0x221c[202]][_0x221c[467]]=10;mxOutline[_0x221c[202]][_0x221c[2722]]=8;mxOutline[_0x221c[202]][_0x221c[2723]]= !1;mxOutline[_0x221c[202]][_0x221c[2724]]=null;mxOutline[_0x221c[202]][_0x221c[1063]]= !1;mxOutline[_0x221c[202]][_0x221c[176]]=function(_0xc851x2){this[_0x221c[2136]]= new mxGraph(_0xc851x2,this[_0x221c[1097]][_0x221c[502]](),this[_0x221c[2720]],this[_0x221c[1097]][_0x221c[2434]]());this[_0x221c[2136]][_0x221c[2206]]= !1;this[_0x221c[2136]][_0x221c[1012]]= !1;var _0xc851x3=this[_0x221c[2136]][_0x221c[1177]];this[_0x221c[2136]][_0x221c[1177]]=mxUtils[_0x221c[885]](this,function(_0xc851x2){!this[_0x221c[1063]]&&null!=this[_0x221c[2136]]&&_0xc851x3[_0x221c[183]](this[_0x221c[2136]],arguments)});mxClient[_0x221c[48]]&&(_0xc851x2=this[_0x221c[2136]][_0x221c[249]]()[_0x221c[2051]]()[_0x221c[265]],_0xc851x2[_0x221c[57]](_0x221c[2725],_0x221c[2726]),_0xc851x2[_0x221c[57]](_0x221c[2727],_0x221c[2726]));this[_0x221c[2136]][_0x221c[2409]]= !1;this[_0x221c[2136]][_0x221c[995]](!1);this[_0x221c[2728]]=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x3){!this[_0x221c[1063]]&&!this[_0x221c[1124]]&&this[_0x221c[2729]]()});this[_0x221c[1097]][_0x221c[502]]()[_0x221c[169]](mxEvent.CHANGE,this[_0x221c[2728]]);this[_0x221c[2136]][_0x221c[1133]](this);_0xc851x2=this[_0x221c[1097]][_0x221c[249]]();_0xc851x2[_0x221c[169]](mxEvent.SCALE,this[_0x221c[2728]]);_0xc851x2[_0x221c[169]](mxEvent.TRANSLATE,this[_0x221c[2728]]);_0xc851x2[_0x221c[169]](mxEvent.SCALE_AND_TRANSLATE,this[_0x221c[2728]]);_0xc851x2[_0x221c[169]](mxEvent.DOWN,this[_0x221c[2728]]);_0xc851x2[_0x221c[169]](mxEvent.UP,this[_0x221c[2728]]);mxEvent[_0x221c[169]](this[_0x221c[1097]][_0x221c[526]],_0x221c[276],this[_0x221c[2728]]);this[_0x221c[2730]]=mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[2723]]&&this[_0x221c[2728]][_0x221c[183]](this,arguments)});this[_0x221c[1097]][_0x221c[169]](mxEvent.PAN,this[_0x221c[2730]]);this[_0x221c[2731]]=mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[2136]][_0x221c[2341]](this[_0x221c[1097]][_0x221c[2434]]());this[_0x221c[2136]][_0x221c[802]]()});this[_0x221c[1097]][_0x221c[169]](mxEvent.REFRESH,this[_0x221c[2731]]);this[_0x221c[1562]]= new mxRectangle(0,0,0,0);this[_0x221c[2732]]= new mxRectangleShape(this[_0x221c[1562]],null,mxConstants.OUTLINE_COLOR,mxConstants.OUTLINE_STROKEWIDTH);this[_0x221c[2732]][_0x221c[507]]=this[_0x221c[2136]][_0x221c[507]]!=mxConstants[_0x221c[508]]?mxConstants[_0x221c[1523]]:mxConstants[_0x221c[508]];this[_0x221c[2732]][_0x221c[176]](this[_0x221c[2136]][_0x221c[249]]()[_0x221c[1524]]());mxEvent[_0x221c[2733]](this[_0x221c[2732]][_0x221c[252]],this[_0x221c[2136]]);this[_0x221c[2732]][_0x221c[252]][_0x221c[124]][_0x221c[1537]]=_0x221c[110];this[_0x221c[2734]]=this[_0x221c[2735]]();this[_0x221c[2734]][_0x221c[176]](this[_0x221c[2136]][_0x221c[249]]()[_0x221c[1524]]());this[_0x221c[984]]&&(this[_0x221c[2734]][_0x221c[252]][_0x221c[124]][_0x221c[270]]=_0x221c[356]);mxEvent[_0x221c[169]](this[_0x221c[2734]][_0x221c[252]],mxClient[_0x221c[754]]?_0x221c[755]:_0x221c[751],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[2136]][_0x221c[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xc851x2))}));this[_0x221c[2732]][_0x221c[252]][_0x221c[124]][_0x221c[495]]=this[_0x221c[2721]]?_0x221c[110]:_0x221c[130];this[_0x221c[2734]][_0x221c[252]][_0x221c[124]][_0x221c[495]]=this[_0x221c[2732]][_0x221c[252]][_0x221c[124]][_0x221c[495]];this[_0x221c[2732]][_0x221c[252]][_0x221c[124]][_0x221c[270]]=_0x221c[582];this[_0x221c[2729]](!1)};mxOutline[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxOutline[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxOutline[_0x221c[202]][_0x221c[2736]]=function(_0xc851x2){this[_0x221c[2734]][_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0xc851x2?_0x221c[189]:_0x221c[188]};mxOutline[_0x221c[202]][_0x221c[802]]=function(){this[_0x221c[2729]](!0)};mxOutline[_0x221c[202]][_0x221c[2735]]=function(){var _0xc851x2=null!=this[_0x221c[2724]]? new mxImageShape( new mxRectangle(0,0,this[_0x221c[2724]][_0x221c[117]],this[_0x221c[2724]][_0x221c[119]]),this[_0x221c[2724]][_0x221c[390]]): new mxRectangleShape( new mxRectangle(0,0,this[_0x221c[2722]],this[_0x221c[2722]]),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);_0xc851x2[_0x221c[507]]=this[_0x221c[2136]][_0x221c[507]];return _0xc851x2};mxOutline[_0x221c[202]][_0x221c[2737]]=function(){return  new mxRectangle(0,0,this[_0x221c[1097]][_0x221c[526]][_0x221c[1526]],this[_0x221c[1097]][_0x221c[526]][_0x221c[191]])};mxOutline[_0x221c[202]][_0x221c[2738]]=function(_0xc851x2){return null};mxOutline[_0x221c[202]][_0x221c[2729]]=function(_0xc851x2){if(null!=this[_0x221c[1097]]){var _0xc851x3=this[_0x221c[1097]][_0x221c[441]][_0x221c[255]],_0xc851x4=this[_0x221c[1097]][_0x221c[517]](),_0xc851x4= new mxRectangle(_0xc851x4[_0x221c[235]]/_0xc851x3+this[_0x221c[1097]][_0x221c[1136]],_0xc851x4[_0x221c[236]]/_0xc851x3+this[_0x221c[1097]][_0x221c[1137]],_0xc851x4[_0x221c[117]]/_0xc851x3,_0xc851x4[_0x221c[119]]/_0xc851x3),_0xc851x5= new mxRectangle(0,0,this[_0x221c[1097]][_0x221c[526]][_0x221c[159]]/_0xc851x3,this[_0x221c[1097]][_0x221c[526]][_0x221c[157]]/_0xc851x3),_0xc851x9=_0xc851x4[_0x221c[238]]();_0xc851x9[_0x221c[99]](_0xc851x5);var _0xc851xa=this[_0x221c[2737]](),_0xc851x5=Math[_0x221c[160]](_0xc851xa[_0x221c[117]]/_0xc851x3,_0xc851x9[_0x221c[117]]),_0xc851x3=Math[_0x221c[160]](_0xc851xa[_0x221c[119]]/_0xc851x3,_0xc851x9[_0x221c[119]]),_0xc851x9=Math[_0x221c[160]](0,this[_0x221c[2136]][_0x221c[526]][_0x221c[159]]-this[_0x221c[467]]),_0xc851xa=Math[_0x221c[160]](0,this[_0x221c[2136]][_0x221c[526]][_0x221c[157]]-this[_0x221c[467]]),_0xc851x9=Math[_0x221c[243]](_0xc851x9/_0xc851x5,_0xc851xa/_0xc851x3);if(0<_0xc851x9){this[_0x221c[2136]][_0x221c[249]]()[_0x221c[255]]!=_0xc851x9&&(this[_0x221c[2136]][_0x221c[249]]()[_0x221c[255]]=_0xc851x9,_0xc851x2= !0);_0xc851x5=this[_0x221c[2136]][_0x221c[249]]();_0xc851x5[_0x221c[1741]]!=this[_0x221c[1097]][_0x221c[249]]()[_0x221c[1741]]&&_0xc851x5[_0x221c[2257]](this[_0x221c[1097]][_0x221c[249]]()[_0x221c[1741]]);var _0xc851x3=this[_0x221c[1097]][_0x221c[441]][_0x221c[513]],_0xc851xa=_0xc851x3[_0x221c[235]]+this[_0x221c[1097]][_0x221c[1136]],_0xc851x12=_0xc851x3[_0x221c[236]]+this[_0x221c[1097]][_0x221c[1137]],_0xc851x9=this[_0x221c[2738]](_0xc851x9);null!=_0xc851x9&&(_0xc851xa+=_0xc851x9[_0x221c[235]],_0xc851x12+=_0xc851x9[_0x221c[236]]);0>_0xc851x4[_0x221c[235]]&&(_0xc851xa-=_0xc851x4[_0x221c[235]]);0>_0xc851x4[_0x221c[236]]&&(_0xc851x12-=_0xc851x4[_0x221c[236]]);if(_0xc851x5[_0x221c[513]][_0x221c[235]]!=_0xc851xa||_0xc851x5[_0x221c[513]][_0x221c[236]]!=_0xc851x12){_0xc851x5[_0x221c[513]][_0x221c[235]]=_0xc851xa,_0xc851x5[_0x221c[513]][_0x221c[236]]=_0xc851x12,_0xc851x2= !0};var _0xc851x4=_0xc851x5[_0x221c[513]],_0xc851x9=this[_0x221c[1097]][_0x221c[249]]()[_0x221c[255]],_0xc851xa=_0xc851x9/_0xc851x5[_0x221c[255]],_0xc851x12=1/_0xc851x5[_0x221c[255]],_0xc851x13=this[_0x221c[1097]][_0x221c[526]];this[_0x221c[1562]]= new mxRectangle((_0xc851x4[_0x221c[235]]-_0xc851x3[_0x221c[235]]-this[_0x221c[1097]][_0x221c[1136]])/_0xc851x12,(_0xc851x4[_0x221c[236]]-_0xc851x3[_0x221c[236]]-this[_0x221c[1097]][_0x221c[1137]])/_0xc851x12,_0xc851x13[_0x221c[159]]/_0xc851xa,_0xc851x13[_0x221c[157]]/_0xc851xa);this[_0x221c[1562]][_0x221c[235]]+=this[_0x221c[1097]][_0x221c[526]][_0x221c[360]]*_0xc851x5[_0x221c[255]]/_0xc851x9;this[_0x221c[1562]][_0x221c[236]]+=this[_0x221c[1097]][_0x221c[526]][_0x221c[190]]*_0xc851x5[_0x221c[255]]/_0xc851x9;_0xc851x4=this[_0x221c[2732]][_0x221c[1562]];if(_0xc851x4[_0x221c[235]]!=this[_0x221c[1562]][_0x221c[235]]||_0xc851x4[_0x221c[236]]!=this[_0x221c[1562]][_0x221c[236]]||_0xc851x4[_0x221c[117]]!=this[_0x221c[1562]][_0x221c[117]]||_0xc851x4[_0x221c[119]]!=this[_0x221c[1562]][_0x221c[119]]){this[_0x221c[2732]][_0x221c[1562]]=this[_0x221c[1562]],this[_0x221c[2732]][_0x221c[258]]()};_0xc851x4=this[_0x221c[2734]][_0x221c[1562]];_0xc851x5= new mxRectangle(this[_0x221c[1562]][_0x221c[235]]+this[_0x221c[1562]][_0x221c[117]]-_0xc851x4[_0x221c[117]]/2,this[_0x221c[1562]][_0x221c[236]]+this[_0x221c[1562]][_0x221c[119]]-_0xc851x4[_0x221c[119]]/2,_0xc851x4[_0x221c[117]],_0xc851x4[_0x221c[119]]);if(_0xc851x4[_0x221c[235]]!=_0xc851x5[_0x221c[235]]||_0xc851x4[_0x221c[236]]!=_0xc851x5[_0x221c[236]]||_0xc851x4[_0x221c[117]]!=_0xc851x5[_0x221c[117]]||_0xc851x4[_0x221c[119]]!=_0xc851x5[_0x221c[119]]){this[_0x221c[2734]][_0x221c[1562]]=_0xc851x5,_0x221c[188]!=this[_0x221c[2734]][_0x221c[252]][_0x221c[124]][_0x221c[187]]&&this[_0x221c[2734]][_0x221c[258]]()};_0xc851x2&&this[_0x221c[2136]][_0x221c[441]][_0x221c[2259]]()}}};mxOutline[_0x221c[202]][_0x221c[787]]=function(_0xc851x2,_0xc851x3){this[_0x221c[984]]&&this[_0x221c[2721]]&&(this[_0x221c[499]]=_0xc851x3[_0x221c[729]](this[_0x221c[2734]]),this[_0x221c[2739]]=_0xc851x3[_0x221c[730]](),this[_0x221c[2740]]=_0xc851x3[_0x221c[732]](),this[_0x221c[1124]]= !0,this[_0x221c[1097]][_0x221c[2365]]&&mxUtils[_0x221c[1134]](this[_0x221c[1097]][_0x221c[526]])?(this[_0x221c[2741]]=this[_0x221c[1097]][_0x221c[526]][_0x221c[360]],this[_0x221c[2742]]=this[_0x221c[1097]][_0x221c[526]][_0x221c[190]]):this[_0x221c[2742]]=this[_0x221c[2741]]=0);_0xc851x3[_0x221c[722]]()};mxOutline[_0x221c[202]][_0x221c[788]]=function(_0xc851x2,_0xc851x3){if(this[_0x221c[1124]]){this[_0x221c[2732]][_0x221c[252]][_0x221c[124]][_0x221c[495]]=this[_0x221c[2721]]?_0x221c[110]:_0x221c[130];this[_0x221c[2734]][_0x221c[252]][_0x221c[124]][_0x221c[495]]=this[_0x221c[2732]][_0x221c[252]][_0x221c[124]][_0x221c[495]];var _0xc851x4=_0xc851x3[_0x221c[730]]()-this[_0x221c[2739]],_0xc851x5=_0xc851x3[_0x221c[732]]()-this[_0x221c[2740]],_0xc851x9=null;if(this[_0x221c[499]]){_0xc851x9=this[_0x221c[1097]][_0x221c[526]],_0xc851x5=_0xc851x4/(_0xc851x9[_0x221c[159]]/_0xc851x9[_0x221c[157]]),_0xc851x9= new mxRectangle(this[_0x221c[1562]][_0x221c[235]],this[_0x221c[1562]][_0x221c[236]],Math[_0x221c[160]](1,this[_0x221c[1562]][_0x221c[117]]+_0xc851x4),Math[_0x221c[160]](1,this[_0x221c[1562]][_0x221c[119]]+_0xc851x5)),this[_0x221c[2732]][_0x221c[1562]]=_0xc851x9,this[_0x221c[2732]][_0x221c[258]]()}else {var _0xc851xa=this[_0x221c[2136]][_0x221c[249]]()[_0x221c[255]],_0xc851x9= new mxRectangle(this[_0x221c[1562]][_0x221c[235]]+_0xc851x4,this[_0x221c[1562]][_0x221c[236]]+_0xc851x5,this[_0x221c[1562]][_0x221c[117]],this[_0x221c[1562]][_0x221c[119]]);this[_0x221c[2732]][_0x221c[1562]]=_0xc851x9;this[_0x221c[2732]][_0x221c[258]]();_0xc851x4=_0xc851x4/_0xc851xa*this[_0x221c[1097]][_0x221c[249]]()[_0x221c[255]];_0xc851x5=_0xc851x5/_0xc851xa*this[_0x221c[1097]][_0x221c[249]]()[_0x221c[255]];this[_0x221c[1097]][_0x221c[1135]](-_0xc851x4-this[_0x221c[2741]],-_0xc851x5-this[_0x221c[2742]])};_0xc851x4=this[_0x221c[2734]][_0x221c[1562]];this[_0x221c[2734]][_0x221c[1562]]= new mxRectangle(_0xc851x9[_0x221c[235]]+_0xc851x9[_0x221c[117]]-_0xc851x4[_0x221c[117]]/2,_0xc851x9[_0x221c[236]]+_0xc851x9[_0x221c[119]]-_0xc851x4[_0x221c[119]]/2,_0xc851x4[_0x221c[117]],_0xc851x4[_0x221c[119]]);_0x221c[188]!=this[_0x221c[2734]][_0x221c[252]][_0x221c[124]][_0x221c[187]]&&this[_0x221c[2734]][_0x221c[258]]();_0xc851x3[_0x221c[722]]()}};mxOutline[_0x221c[202]][_0x221c[789]]=function(_0xc851x2,_0xc851x3){if(this[_0x221c[1124]]){var _0xc851x4=_0xc851x3[_0x221c[730]]()-this[_0x221c[2739]],_0xc851x5=_0xc851x3[_0x221c[732]]()-this[_0x221c[2740]];if(0<Math[_0x221c[425]](_0xc851x4)||0<Math[_0x221c[425]](_0xc851x5)){if(this[_0x221c[499]]){var _0xc851x5=this[_0x221c[2732]][_0x221c[1562]][_0x221c[117]],_0xc851x9=this[_0x221c[1097]][_0x221c[249]]()[_0x221c[255]];this[_0x221c[1097]][_0x221c[2561]](_0xc851x9-_0xc851x4*_0xc851x9/_0xc851x5,!1)}else {if(!this[_0x221c[1097]][_0x221c[2365]]||!mxUtils[_0x221c[1134]](this[_0x221c[1097]][_0x221c[526]])){this[_0x221c[1097]][_0x221c[1135]](0,0),_0xc851x4/=this[_0x221c[2136]][_0x221c[249]]()[_0x221c[255]],_0xc851x5/=this[_0x221c[2136]][_0x221c[249]]()[_0x221c[255]],_0xc851x9=this[_0x221c[1097]][_0x221c[249]]()[_0x221c[513]],this[_0x221c[1097]][_0x221c[249]]()[_0x221c[1147]](_0xc851x9[_0x221c[235]]-_0xc851x4,_0xc851x9[_0x221c[236]]-_0xc851x5)}};this[_0x221c[2729]]();_0xc851x3[_0x221c[722]]()};this[_0x221c[1983]]=null;this[_0x221c[1124]]= !1}};mxOutline[_0x221c[202]][_0x221c[515]]=function(){null!=this[_0x221c[1097]]&&(this[_0x221c[1097]][_0x221c[745]](this[_0x221c[2730]]),this[_0x221c[1097]][_0x221c[745]](this[_0x221c[2731]]),this[_0x221c[1097]][_0x221c[502]]()[_0x221c[745]](this[_0x221c[2728]]),this[_0x221c[1097]][_0x221c[249]]()[_0x221c[745]](this[_0x221c[2728]]),mxEvent[_0x221c[169]](this[_0x221c[1097]][_0x221c[526]],_0x221c[276],this[_0x221c[2728]]),this[_0x221c[1097]]=null);null!=this[_0x221c[2136]]&&(this[_0x221c[2136]][_0x221c[1148]](this),this[_0x221c[2136]][_0x221c[515]](),this[_0x221c[2136]]=null);null!=this[_0x221c[2732]]&&(this[_0x221c[2732]][_0x221c[515]](),this[_0x221c[2732]]=null);null!=this[_0x221c[2734]]&&(this[_0x221c[2734]][_0x221c[515]](),this[_0x221c[2734]]=null)};function mxMultiplicity(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15){this[_0x221c[1097]]=_0xc851x2;this[_0x221c[60]]=_0xc851x3;this[_0x221c[2588]]=_0xc851x4;this[_0x221c[131]]=_0xc851x5;this[_0x221c[243]]=null!=_0xc851x9?_0xc851x9:0;this[_0x221c[160]]=null!=_0xc851xa?_0xc851xa:_0x221c[2743];this[_0x221c[2744]]=_0xc851x12;this[_0x221c[2589]]=mxResources[_0x221c[203]](_0xc851x13)||_0xc851x13;this[_0x221c[2745]]=mxResources[_0x221c[203]](_0xc851x14)||_0xc851x14;this[_0x221c[2746]]=null!=_0xc851x15?_0xc851x15:!0}mxMultiplicity[_0x221c[202]][_0x221c[60]]=null;mxMultiplicity[_0x221c[202]][_0x221c[2588]]=null;mxMultiplicity[_0x221c[202]][_0x221c[131]]=null;mxMultiplicity[_0x221c[202]][_0x221c[1097]]=null;mxMultiplicity[_0x221c[202]][_0x221c[243]]=null;mxMultiplicity[_0x221c[202]][_0x221c[160]]=null;mxMultiplicity[_0x221c[202]][_0x221c[2744]]=null;mxMultiplicity[_0x221c[202]][_0x221c[2746]]= !0;mxMultiplicity[_0x221c[202]][_0x221c[2589]]=null;mxMultiplicity[_0x221c[202]][_0x221c[2745]]=null;mxMultiplicity[_0x221c[202]][_0x221c[2583]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){var _0xc851x12=_0x221c[110];if(this[_0x221c[1097]]&&this[_0x221c[2747]](_0xc851x2,_0xc851x4,_0xc851x3)||!this[_0x221c[1097]]&&this[_0x221c[2747]](_0xc851x2,_0xc851x5,_0xc851x3)){if(null!=this[_0x221c[2589]]&&(this[_0x221c[1097]]&&(0==this[_0x221c[160]]||_0xc851x9>=this[_0x221c[160]])||!this[_0x221c[1097]]&&(0==this[_0x221c[160]]||_0xc851xa>=this[_0x221c[160]]))){_0xc851x12+=this[_0x221c[2589]]+_0x221c[192]};null!=this[_0x221c[2744]]&&(null!=this[_0x221c[2745]]&&0<this[_0x221c[2744]][_0x221c[67]])&&(this[_0x221c[2748]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5)||(_0xc851x12+=this[_0x221c[2745]]+_0x221c[192]))};return 0<_0xc851x12[_0x221c[67]]?_0xc851x12:null};mxMultiplicity[_0x221c[202]][_0x221c[2748]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x3=_0xc851x2[_0x221c[251]][_0x221c[433]](_0xc851x4);_0xc851x5=_0xc851x2[_0x221c[251]][_0x221c[433]](_0xc851x5);_0xc851x4=!this[_0x221c[2746]];for(var _0xc851x9=this[_0x221c[2744]],_0xc851xa=0;_0xc851xa<_0xc851x9[_0x221c[67]];_0xc851xa++){if(this[_0x221c[1097]]&&this[_0x221c[2749]](_0xc851x2,_0xc851x5,_0xc851x9[_0xc851xa])){_0xc851x4=this[_0x221c[2746]];break}else {if(!this[_0x221c[1097]]&&this[_0x221c[2749]](_0xc851x2,_0xc851x3,_0xc851x9[_0xc851xa])){_0xc851x4=this[_0x221c[2746]];break}}};return _0xc851x4};mxMultiplicity[_0x221c[202]][_0x221c[2747]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=_0xc851x2[_0x221c[251]][_0x221c[433]](_0xc851x3);return this[_0x221c[2749]](_0xc851x2,_0xc851x3,this[_0x221c[60]],this[_0x221c[2588]],this[_0x221c[131]])};mxMultiplicity[_0x221c[202]][_0x221c[2749]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){return null!=_0xc851x3?isNaN(_0xc851x3[_0x221c[288]])?_0xc851x3==_0xc851x4:mxUtils[_0x221c[1331]](_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9):!1};function mxLayoutManager(_0xc851x2){this[_0x221c[2750]]=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x4){this[_0x221c[994]]()&&this[_0x221c[823]](_0xc851x4[_0x221c[720]](_0x221c[1061]))});this[_0x221c[2317]]=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x4){this[_0x221c[994]]()&&this[_0x221c[835]](_0xc851x4[_0x221c[720]](_0x221c[895]),_0xc851x4[_0x221c[720]](_0x221c[763]))});this[_0x221c[1178]](_0xc851x2)}mxLayoutManager[_0x221c[202]]= new mxEventSource;mxLayoutManager[_0x221c[202]][_0x221c[196]]=mxLayoutManager;mxLayoutManager[_0x221c[202]][_0x221c[1179]]=null;mxLayoutManager[_0x221c[202]][_0x221c[2751]]= !0;mxLayoutManager[_0x221c[202]][_0x221c[984]]= !0;mxLayoutManager[_0x221c[202]][_0x221c[2728]]=null;mxLayoutManager[_0x221c[202]][_0x221c[2317]]=null;mxLayoutManager[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxLayoutManager[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxLayoutManager[_0x221c[202]][_0x221c[2752]]=function(){return this[_0x221c[2751]]};mxLayoutManager[_0x221c[202]][_0x221c[2753]]=function(_0xc851x2){this[_0x221c[2751]]=_0xc851x2};mxLayoutManager[_0x221c[202]][_0x221c[1703]]=function(){return this[_0x221c[1179]]};mxLayoutManager[_0x221c[202]][_0x221c[1178]]=function(_0xc851x2){if(null!=this[_0x221c[1179]]){var _0xc851x3=this[_0x221c[1179]][_0x221c[502]]();_0xc851x3[_0x221c[745]](this[_0x221c[2750]]);this[_0x221c[1179]][_0x221c[745]](this[_0x221c[2317]])};this[_0x221c[1179]]=_0xc851x2;null!=this[_0x221c[1179]]&&(_0xc851x3=this[_0x221c[1179]][_0x221c[502]](),_0xc851x3[_0x221c[169]](mxEvent.BEFORE_UNDO,this[_0x221c[2750]]),this[_0x221c[1179]][_0x221c[169]](mxEvent.MOVE_CELLS,this[_0x221c[2317]]))};mxLayoutManager[_0x221c[202]][_0x221c[2754]]=function(_0xc851x2){return null};mxLayoutManager[_0x221c[202]][_0x221c[823]]=function(_0xc851x2){_0xc851x2=this[_0x221c[2755]](_0xc851x2[_0x221c[1065]]);var _0xc851x3=this[_0x221c[1703]]()[_0x221c[502]]();if(this[_0x221c[2752]]()){for(var _0xc851x4=_0xc851x3[_0x221c[1977]](_0xc851x2);0<_0xc851x4[_0x221c[67]];){_0xc851x2=_0xc851x2[_0x221c[1919]](_0xc851x4),_0xc851x4=_0xc851x3[_0x221c[1977]](_0xc851x4)}};this[_0x221c[828]](mxUtils[_0x221c[1779]](_0xc851x2,!1))};mxLayoutManager[_0x221c[202]][_0x221c[835]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2&&null!=_0xc851x3){for(var _0xc851x4=mxUtils[_0x221c[2196]](this[_0x221c[1703]]()[_0x221c[526]],mxEvent[_0x221c[731]](_0xc851x3),mxEvent[_0x221c[733]](_0xc851x3)),_0xc851x5=this[_0x221c[1703]]()[_0x221c[502]](),_0xc851x9=0;_0xc851x9<_0xc851x2[_0x221c[67]];_0xc851x9++){var _0xc851xa=this[_0x221c[2754]](_0xc851x5[_0x221c[1197]](_0xc851x2[_0xc851x9]));null!=_0xc851xa&&_0xc851xa[_0x221c[1702]](_0xc851x2[_0xc851x9],_0xc851x4[_0x221c[235]],_0xc851x4[_0x221c[236]])}}};mxLayoutManager[_0x221c[202]][_0x221c[2755]]=function(_0xc851x2){for(var _0xc851x3=[],_0xc851x4={},_0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){var _0xc851x9=_0xc851x2[_0xc851x5];if(_0xc851x9 instanceof mxRootChange){return []};for(var _0xc851x9=this[_0x221c[2756]](_0xc851x9),_0xc851xa=0;_0xc851xa<_0xc851x9[_0x221c[67]];_0xc851xa++){if(null!=_0xc851x9[_0xc851xa]){var _0xc851x12=mxCellPath[_0x221c[385]](_0xc851x9[_0xc851xa]);null==_0xc851x4[_0xc851x12]&&(_0xc851x4[_0xc851x12]=_0xc851x9[_0xc851xa],_0xc851x3[_0x221c[207]](_0xc851x9[_0xc851xa]))}}};return _0xc851x3};mxLayoutManager[_0x221c[202]][_0x221c[2756]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1703]]()[_0x221c[502]]();return _0xc851x2 instanceof mxChildChange?[_0xc851x2[_0x221c[247]],_0xc851x2[_0x221c[257]],_0xc851x3[_0x221c[1197]](_0xc851x2[_0x221c[247]])]:_0xc851x2 instanceof mxTerminalChange||_0xc851x2 instanceof mxGeometryChange?[_0xc851x2[_0x221c[246]],_0xc851x3[_0x221c[1197]](_0xc851x2[_0x221c[246]])]:[]};mxLayoutManager[_0x221c[202]][_0x221c[828]]=function(_0xc851x2){if(0<_0xc851x2[_0x221c[67]]){var _0xc851x3=this[_0x221c[1703]]()[_0x221c[502]]();_0xc851x3[_0x221c[473]]();try{for(var _0xc851x4=null,_0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){_0xc851x2[_0xc851x5]!=_0xc851x3[_0x221c[501]]()&&_0xc851x2[_0xc851x5]!=_0xc851x4&&(_0xc851x4=_0xc851x2[_0xc851x5],this[_0x221c[2757]](this[_0x221c[2754]](_0xc851x4),_0xc851x4))};this[_0x221c[746]]( new mxEventObject(mxEvent.LAYOUT_CELLS,_0x221c[895],_0xc851x2))}finally{_0xc851x3[_0x221c[476]]()}}};mxLayoutManager[_0x221c[202]][_0x221c[2757]]=function(_0xc851x2,_0xc851x3){null!=_0xc851x2&&null!=_0xc851x3&&_0xc851x2[_0x221c[350]](_0xc851x3)};mxLayoutManager[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[1178]](null)};function mxSpaceManager(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[2758]]=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x3){this[_0x221c[994]]()&&this[_0x221c[837]](_0xc851x3[_0x221c[720]](_0x221c[895]))});this[_0x221c[2759]]=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x3){this[_0x221c[994]]()&&this[_0x221c[837]](_0xc851x3[_0x221c[720]](_0x221c[895]))});this[_0x221c[2760]]=null!=_0xc851x3?_0xc851x3:!0;this[_0x221c[2761]]=null!=_0xc851x4?_0xc851x4:!0;this[_0x221c[2392]]=null!=_0xc851x5?_0xc851x5:!0;this[_0x221c[1178]](_0xc851x2)}mxSpaceManager[_0x221c[202]]= new mxEventSource;mxSpaceManager[_0x221c[202]][_0x221c[196]]=mxSpaceManager;mxSpaceManager[_0x221c[202]][_0x221c[1179]]=null;mxSpaceManager[_0x221c[202]][_0x221c[984]]= !0;mxSpaceManager[_0x221c[202]][_0x221c[2760]]= !0;mxSpaceManager[_0x221c[202]][_0x221c[2761]]= !0;mxSpaceManager[_0x221c[202]][_0x221c[2392]]= !0;mxSpaceManager[_0x221c[202]][_0x221c[2758]]=null;mxSpaceManager[_0x221c[202]][_0x221c[2759]]=null;mxSpaceManager[_0x221c[202]][_0x221c[2762]]=function(_0xc851x2){return !this[_0x221c[1703]]()[_0x221c[502]]()[_0x221c[1193]](_0xc851x2)};mxSpaceManager[_0x221c[202]][_0x221c[2763]]=function(_0xc851x2){return this[_0x221c[1703]]()[_0x221c[502]]()[_0x221c[1193]](_0xc851x2)&&this[_0x221c[1703]]()[_0x221c[1712]](_0xc851x2)};mxSpaceManager[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxSpaceManager[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxSpaceManager[_0x221c[202]][_0x221c[2764]]=function(){return this[_0x221c[2760]]};mxSpaceManager[_0x221c[202]][_0x221c[2765]]=function(_0xc851x2){this[_0x221c[2760]]=_0xc851x2};mxSpaceManager[_0x221c[202]][_0x221c[2766]]=function(){return this[_0x221c[2761]]};mxSpaceManager[_0x221c[202]][_0x221c[2767]]=function(_0xc851x2){this[_0x221c[2761]]=_0xc851x2};mxSpaceManager[_0x221c[202]][_0x221c[2678]]=function(){return this[_0x221c[2392]]};mxSpaceManager[_0x221c[202]][_0x221c[2679]]=function(_0xc851x2){this[_0x221c[2392]]=_0xc851x2};mxSpaceManager[_0x221c[202]][_0x221c[1703]]=function(){return this[_0x221c[1179]]};mxSpaceManager[_0x221c[202]][_0x221c[1178]]=function(_0xc851x2){null!=this[_0x221c[1179]]&&(this[_0x221c[1179]][_0x221c[745]](this[_0x221c[2758]]),this[_0x221c[1179]][_0x221c[745]](this[_0x221c[2759]]));this[_0x221c[1179]]=_0xc851x2;null!=this[_0x221c[1179]]&&(this[_0x221c[1179]][_0x221c[169]](mxEvent.RESIZE_CELLS,this[_0x221c[2758]]),this[_0x221c[1179]][_0x221c[169]](mxEvent.FOLD_CELLS,this[_0x221c[2759]]))};mxSpaceManager[_0x221c[202]][_0x221c[837]]=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[502]]();_0xc851x3[_0x221c[473]]();try{for(var _0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){if(!this[_0x221c[2762]](_0xc851x2[_0xc851x4])){this[_0x221c[2768]](_0xc851x2[_0xc851x4]);break}}}finally{_0xc851x3[_0x221c[476]]()}}};mxSpaceManager[_0x221c[202]][_0x221c[2768]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1703]](),_0xc851x4=_0xc851x3[_0x221c[249]](),_0xc851x5=_0xc851x3[_0x221c[502]](),_0xc851x9=_0xc851x4[_0x221c[248]](_0xc851x2),_0xc851xa=_0xc851x4[_0x221c[248]](_0xc851x5[_0x221c[1197]](_0xc851x2));if(null!=_0xc851x9&&null!=_0xc851xa){var _0xc851x12=this[_0x221c[2769]](_0xc851x9),_0xc851x13=_0xc851x5[_0x221c[1721]](_0xc851x2);if(null!=_0xc851x12&&null!=_0xc851x13){var _0xc851x14=_0xc851x4[_0x221c[513]],_0xc851x15=_0xc851x4[_0x221c[255]],_0xc851x4=_0xc851x9[_0x221c[235]]-_0xc851xa[_0x221c[2078]][_0x221c[235]]-_0xc851x14[_0x221c[235]]*_0xc851x15,_0xc851xa=_0xc851x9[_0x221c[236]]-_0xc851xa[_0x221c[2078]][_0x221c[236]]-_0xc851x14[_0x221c[236]]*_0xc851x15,_0xc851x14=_0xc851x9[_0x221c[235]]+_0xc851x9[_0x221c[117]],_0xc851x16=_0xc851x9[_0x221c[236]]+_0xc851x9[_0x221c[119]],_0xc851x17=_0xc851x9[_0x221c[117]]-_0xc851x13[_0x221c[117]]*_0xc851x15+_0xc851x4-_0xc851x13[_0x221c[235]]*_0xc851x15,_0xc851x18=_0xc851x9[_0x221c[119]]-_0xc851x13[_0x221c[119]]*_0xc851x15+_0xc851xa-_0xc851x13[_0x221c[236]]*_0xc851x15,_0xc851x19=1-_0xc851x13[_0x221c[117]]*_0xc851x15/_0xc851x9[_0x221c[117]],_0xc851x9=1-_0xc851x13[_0x221c[119]]*_0xc851x15/_0xc851x9[_0x221c[119]];_0xc851x5[_0x221c[473]]();try{for(_0xc851x13=0;_0xc851x13<_0xc851x12[_0x221c[67]];_0xc851x13++){_0xc851x12[_0xc851x13]!=_0xc851x2&&this[_0x221c[2763]](_0xc851x12[_0xc851x13])&&this[_0x221c[2770]](_0xc851x12[_0xc851x13],_0xc851x17,_0xc851x18,_0xc851x4,_0xc851xa,_0xc851x14,_0xc851x16,_0xc851x19,_0xc851x9,this[_0x221c[2678]]()&&_0xc851x3[_0x221c[2507]](_0xc851x12[_0xc851x13]))}}finally{_0xc851x5[_0x221c[476]]()}}}};mxSpaceManager[_0x221c[202]][_0x221c[2770]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14,_0xc851x15){_0xc851x5=this[_0x221c[1703]]();var _0xc851x16=_0xc851x5[_0x221c[249]]()[_0x221c[248]](_0xc851x2);if(null!=_0xc851x16){var _0xc851x17=_0xc851x5[_0x221c[502]](),_0xc851x18=_0xc851x17[_0x221c[1721]](_0xc851x2);if(null!=_0xc851x18){_0xc851x17[_0x221c[473]]();try{if(this[_0x221c[2764]]()){if(_0xc851x16[_0x221c[235]]>=_0xc851xa){_0xc851x18=_0xc851x18[_0x221c[238]](),_0xc851x18[_0x221c[513]](-_0xc851x3,0)}else {var _0xc851x19=Math[_0x221c[160]](0,_0xc851x16[_0x221c[235]]-x0),_0xc851x18=_0xc851x18[_0x221c[238]]();_0xc851x18[_0x221c[513]](-_0xc851x13*_0xc851x19,0)}};if(this[_0x221c[2766]]()){if(_0xc851x16[_0x221c[236]]>=_0xc851x12){_0xc851x18=_0xc851x18[_0x221c[238]](),_0xc851x18[_0x221c[513]](0,-_0xc851x4)}else {var _0xc851x1a=Math[_0x221c[160]](0,_0xc851x16[_0x221c[236]]-_0xc851x9),_0xc851x18=_0xc851x18[_0x221c[238]]();_0xc851x18[_0x221c[513]](0,-_0xc851x14*_0xc851x1a)}};_0xc851x18!=_0xc851x17[_0x221c[1721]](_0xc851x2)&&(_0xc851x17[_0x221c[1724]](_0xc851x2,_0xc851x18),_0xc851x15&&_0xc851x5[_0x221c[2508]](_0xc851x2))}finally{_0xc851x17[_0x221c[476]]()}}}};mxSpaceManager[_0x221c[202]][_0x221c[2769]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1703]](),_0xc851x4=_0xc851x3[_0x221c[502]]()[_0x221c[1197]](_0xc851x2[_0x221c[246]]),_0xc851x5=this[_0x221c[2766]](),_0xc851x9=this[_0x221c[2764]]();return _0xc851x3[_0x221c[2691]](_0xc851x2[_0x221c[235]]+(_0xc851x5?0:_0xc851x2[_0x221c[117]]),_0xc851x2[_0x221c[236]]+(_0xc851x5&&_0xc851x9?0:_0xc851x2[_0x221c[119]]),_0xc851x4,_0xc851x9,_0xc851x5)};mxSpaceManager[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[1178]](null)};function mxSwimlaneManager(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[662]]=null!=_0xc851x3?_0xc851x3:!0;this[_0x221c[2771]]=null!=_0xc851x4?_0xc851x4:!0;this[_0x221c[2772]]=null!=_0xc851x5?_0xc851x5:!0;this[_0x221c[2773]]=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x3){this[_0x221c[994]]()&&this[_0x221c[2774]]()&&this[_0x221c[833]](_0xc851x3[_0x221c[720]](_0x221c[895]))});this[_0x221c[2758]]=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x3){this[_0x221c[994]]()&&this[_0x221c[2775]]()&&this[_0x221c[837]](_0xc851x3[_0x221c[720]](_0x221c[895]))});this[_0x221c[1178]](_0xc851x2)}mxSwimlaneManager[_0x221c[202]]= new mxEventSource;mxSwimlaneManager[_0x221c[202]][_0x221c[196]]=mxSwimlaneManager;mxSwimlaneManager[_0x221c[202]][_0x221c[1179]]=null;mxSwimlaneManager[_0x221c[202]][_0x221c[984]]= !0;mxSwimlaneManager[_0x221c[202]][_0x221c[662]]= !0;mxSwimlaneManager[_0x221c[202]][_0x221c[2771]]= !0;mxSwimlaneManager[_0x221c[202]][_0x221c[2772]]= !0;mxSwimlaneManager[_0x221c[202]][_0x221c[2773]]=null;mxSwimlaneManager[_0x221c[202]][_0x221c[2758]]=null;mxSwimlaneManager[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxSwimlaneManager[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxSwimlaneManager[_0x221c[202]][_0x221c[1737]]=function(){return this[_0x221c[662]]};mxSwimlaneManager[_0x221c[202]][_0x221c[2776]]=function(_0xc851x2){this[_0x221c[662]]=_0xc851x2};mxSwimlaneManager[_0x221c[202]][_0x221c[2774]]=function(){return this[_0x221c[2771]]};mxSwimlaneManager[_0x221c[202]][_0x221c[2777]]=function(_0xc851x2){this[_0x221c[2771]]=_0xc851x2};mxSwimlaneManager[_0x221c[202]][_0x221c[2775]]=function(){return this[_0x221c[2772]]};mxSwimlaneManager[_0x221c[202]][_0x221c[2778]]=function(_0xc851x2){this[_0x221c[2772]]=_0xc851x2};mxSwimlaneManager[_0x221c[202]][_0x221c[1703]]=function(){return this[_0x221c[1179]]};mxSwimlaneManager[_0x221c[202]][_0x221c[1178]]=function(_0xc851x2){null!=this[_0x221c[1179]]&&(this[_0x221c[1179]][_0x221c[745]](this[_0x221c[2773]]),this[_0x221c[1179]][_0x221c[745]](this[_0x221c[2758]]));this[_0x221c[1179]]=_0xc851x2;null!=this[_0x221c[1179]]&&(this[_0x221c[1179]][_0x221c[169]](mxEvent.ADD_CELLS,this[_0x221c[2773]]),this[_0x221c[1179]][_0x221c[169]](mxEvent.CELLS_RESIZED,this[_0x221c[2758]]))};mxSwimlaneManager[_0x221c[202]][_0x221c[2779]]=function(_0xc851x2){return !this[_0x221c[1703]]()[_0x221c[1730]](_0xc851x2)};mxSwimlaneManager[_0x221c[202]][_0x221c[2780]]=function(_0xc851x2){if(this[_0x221c[1179]][_0x221c[1730]](_0xc851x2)){var _0xc851x3=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x2);_0xc851x2=null!=_0xc851x3?_0xc851x3[_0x221c[124]]:this[_0x221c[1179]][_0x221c[1705]](_0xc851x2);return 1==mxUtils[_0x221c[433]](_0xc851x2,mxConstants.STYLE_HORIZONTAL,1)};return !this[_0x221c[1737]]()};mxSwimlaneManager[_0x221c[202]][_0x221c[833]]=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=this[_0x221c[1703]]()[_0x221c[502]]();_0xc851x3[_0x221c[473]]();try{for(var _0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){this[_0x221c[2779]](_0xc851x2[_0xc851x4])||this[_0x221c[2781]](_0xc851x2[_0xc851x4])}}finally{_0xc851x3[_0x221c[476]]()}}};mxSwimlaneManager[_0x221c[202]][_0x221c[2781]]=function(_0xc851x2){for(var _0xc851x3=this[_0x221c[1703]]()[_0x221c[502]](),_0xc851x4=_0xc851x3[_0x221c[1197]](_0xc851x2),_0xc851x5=_0xc851x3[_0x221c[262]](_0xc851x4),_0xc851x9=null,_0xc851xa=0;_0xc851xa<_0xc851x5;_0xc851xa++){var _0xc851x12=_0xc851x3[_0x221c[263]](_0xc851x4,_0xc851xa);if(_0xc851x12!=_0xc851x2&&!this[_0x221c[2779]](_0xc851x12)&&(_0xc851x9=_0xc851x3[_0x221c[1721]](_0xc851x12),null!=_0xc851x9)){break}};null!=_0xc851x9&&this[_0x221c[2782]](_0xc851x2,_0xc851x9[_0x221c[117]],_0xc851x9[_0x221c[119]])};mxSwimlaneManager[_0x221c[202]][_0x221c[837]]=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=this[_0x221c[1703]]()[_0x221c[502]]();_0xc851x3[_0x221c[473]]();try{for(var _0xc851x4=0;_0xc851x4<_0xc851x2[_0x221c[67]];_0xc851x4++){if(!this[_0x221c[2779]](_0xc851x2[_0xc851x4])){var _0xc851x5=_0xc851x3[_0x221c[1721]](_0xc851x2[_0xc851x4]);if(null!=_0xc851x5){for(var _0xc851x9= new mxRectangle(0,0,_0xc851x5[_0x221c[117]],_0xc851x5[_0x221c[119]]),_0xc851xa=_0xc851x2[_0xc851x4],_0xc851x12=_0xc851xa;null!=_0xc851x12;){var _0xc851xa=_0xc851x12,_0xc851x12=_0xc851x3[_0x221c[1197]](_0xc851x12),_0xc851x13=this[_0x221c[1179]][_0x221c[1730]](_0xc851x12)?this[_0x221c[1179]][_0x221c[1731]](_0xc851x12): new mxRectangle;_0xc851x9[_0x221c[117]]+=_0xc851x13[_0x221c[117]];_0xc851x9[_0x221c[119]]+=_0xc851x13[_0x221c[119]]};this[_0x221c[2782]](_0xc851xa,_0xc851x9[_0x221c[117]],_0xc851x9[_0x221c[119]])}}}}finally{_0xc851x3[_0x221c[476]]()}}};mxSwimlaneManager[_0x221c[202]][_0x221c[2782]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1703]]()[_0x221c[502]]();_0xc851x5[_0x221c[473]]();try{if(!this[_0x221c[2779]](_0xc851x2)){var _0xc851x9=_0xc851x5[_0x221c[1721]](_0xc851x2);if(null!=_0xc851x9){var _0xc851xa=this[_0x221c[2780]](_0xc851x2);if(_0xc851xa&&_0xc851x9[_0x221c[119]]!=_0xc851x4||!_0xc851xa&&_0xc851x9[_0x221c[117]]!=_0xc851x3){_0xc851x9=_0xc851x9[_0x221c[238]](),_0xc851xa?_0xc851x9[_0x221c[119]]=_0xc851x4:_0xc851x9[_0x221c[117]]=_0xc851x3,_0xc851x5[_0x221c[1724]](_0xc851x2,_0xc851x9)}}};var _0xc851x12=this[_0x221c[1179]][_0x221c[1730]](_0xc851x2)?this[_0x221c[1179]][_0x221c[1731]](_0xc851x2): new mxRectangle;_0xc851x3-=_0xc851x12[_0x221c[117]];_0xc851x4-=_0xc851x12[_0x221c[119]];for(var _0xc851x13=_0xc851x5[_0x221c[262]](_0xc851x2),_0xc851x9=0;_0xc851x9<_0xc851x13;_0xc851x9++){var _0xc851x14=_0xc851x5[_0x221c[263]](_0xc851x2,_0xc851x9);this[_0x221c[2782]](_0xc851x14,_0xc851x3,_0xc851x4)}}finally{_0xc851x5[_0x221c[476]]()}};mxSwimlaneManager[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[1178]](null)};function mxTemporaryCellStates(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[441]]=_0xc851x2;_0xc851x3=null!=_0xc851x3?_0xc851x3:1;this[_0x221c[2783]]=_0xc851x2[_0x221c[517]]();this[_0x221c[2784]]=_0xc851x2[_0x221c[2312]]();this[_0x221c[2785]]=_0xc851x2[_0x221c[518]]();_0xc851x2[_0x221c[1517]]( new mxDictionary);_0xc851x2[_0x221c[2262]](_0xc851x3);if(null!=_0xc851x4){_0xc851x3=_0xc851x2[_0x221c[1230]]( new mxCell);for(var _0xc851x5=0;_0xc851x5<_0xc851x4[_0x221c[67]];_0xc851x5++){_0xc851x2[_0x221c[2267]](_0xc851x3,_0xc851x4[_0xc851x5])};for(var _0xc851x9=null,_0xc851x5=0;_0xc851x5<_0xc851x4[_0x221c[67]];_0xc851x5++){var _0xc851xa=_0xc851x2[_0x221c[2268]](_0xc851x3,_0xc851x4[_0xc851x5]);null==_0xc851x9?_0xc851x9=_0xc851xa:_0xc851x9[_0x221c[99]](_0xc851xa)};null==_0xc851x9&&(_0xc851x9= new mxRectangle);_0xc851x2[_0x221c[2256]](_0xc851x9)}}mxTemporaryCellStates[_0x221c[202]][_0x221c[441]]=null;mxTemporaryCellStates[_0x221c[202]][_0x221c[2784]]=null;mxTemporaryCellStates[_0x221c[202]][_0x221c[2783]]=null;mxTemporaryCellStates[_0x221c[202]][_0x221c[2785]]=null;mxTemporaryCellStates[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[441]][_0x221c[2262]](this[_0x221c[2785]]);this[_0x221c[441]][_0x221c[1517]](this[_0x221c[2784]]);this[_0x221c[441]][_0x221c[2256]](this[_0x221c[2783]])};function mxCellStatePreview(_0xc851x2){this[_0x221c[1179]]=_0xc851x2;this[_0x221c[2786]]={}}mxCellStatePreview[_0x221c[202]][_0x221c[1179]]=null;mxCellStatePreview[_0x221c[202]][_0x221c[2786]]=null;mxCellStatePreview[_0x221c[202]][_0x221c[2787]]=0;mxCellStatePreview[_0x221c[202]][_0x221c[1107]]=function(){return 0==this[_0x221c[2787]]};mxCellStatePreview[_0x221c[202]][_0x221c[1194]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x5=null!=_0xc851x5?_0xc851x5:!0;_0xc851x9=null!=_0xc851x9?_0xc851x9:!0;var _0xc851xa=mxCellPath[_0x221c[385]](_0xc851x2[_0x221c[246]]),_0xc851x12=this[_0x221c[2786]][_0xc851xa];null==_0xc851x12?(_0xc851x12= new mxPoint(_0xc851x3,_0xc851x4),this[_0x221c[2786]][_0xc851xa]=_0xc851x12,this[_0x221c[2787]]++):_0xc851x5?(_0xc851x12[_0x221c[2788]]+=_0xc851x3,_0xc851x12[_0x221c[2789]]+=_0xc851x4):(_0xc851x12[_0x221c[2788]]=_0xc851x3,_0xc851x12[_0x221c[2789]]=_0xc851x4);_0xc851x9&&this[_0x221c[2790]](_0xc851x2);return _0xc851x12};mxCellStatePreview[_0x221c[202]][_0x221c[539]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[502]](),_0xc851x4=_0xc851x3[_0x221c[501]](),_0xc851x5;for(_0xc851x5 in this[_0x221c[2786]]){var _0xc851x9=mxCellPath[_0x221c[2791]](_0xc851x4,_0xc851x5),_0xc851xa=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x9),_0xc851x12=this[_0x221c[2786]][_0xc851x5],_0xc851x9=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x3[_0x221c[1197]](_0xc851x9));this[_0x221c[2792]](_0xc851x9,_0xc851xa,_0xc851x12[_0x221c[235]],_0xc851x12[_0x221c[236]])};for(_0xc851x5 in this[_0x221c[2786]]){_0xc851x9=mxCellPath[_0x221c[2791]](_0xc851x4,_0xc851x5),_0xc851xa=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x9),_0xc851x12=this[_0x221c[2786]][_0xc851x5],_0xc851x9=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x3[_0x221c[1197]](_0xc851x9)),this[_0x221c[2793]](_0xc851x9,_0xc851xa,_0xc851x12[_0x221c[235]],_0xc851x12[_0x221c[236]],_0xc851x2)}};mxCellStatePreview[_0x221c[202]][_0x221c[2792]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(null!=_0xc851x3){var _0xc851x9=this[_0x221c[1179]][_0x221c[502]]();if(_0xc851x9[_0x221c[1193]](_0xc851x3[_0x221c[246]])){_0xc851x3[_0x221c[2080]]= !0;this[_0x221c[1179]][_0x221c[441]][_0x221c[2267]](_0xc851x2,_0xc851x3[_0x221c[246]]);_0xc851x2=_0xc851x9[_0x221c[1721]](_0xc851x3[_0x221c[246]]);var _0xc851xa=mxCellPath[_0x221c[385]](_0xc851x3[_0x221c[246]]);if((0!=_0xc851x4||0!=_0xc851x5)&&null!=_0xc851x2&&(!_0xc851x2[_0x221c[1500]]||null!=this[_0x221c[2786]][_0xc851xa])){_0xc851x3[_0x221c[235]]+=_0xc851x4,_0xc851x3[_0x221c[236]]+=_0xc851x5}};_0xc851x2=_0xc851x9[_0x221c[262]](_0xc851x3[_0x221c[246]]);for(_0xc851xa=0;_0xc851xa<_0xc851x2;_0xc851xa++){this[_0x221c[2792]](_0xc851x3,this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x9[_0x221c[263]](_0xc851x3[_0x221c[246]],_0xc851xa)),_0xc851x4,_0xc851x5)}}};mxCellStatePreview[_0x221c[202]][_0x221c[2793]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){if(null!=_0xc851x3){_0xc851x3[_0x221c[2080]]= !0;this[_0x221c[1179]][_0x221c[441]][_0x221c[2268]](_0xc851x2,_0xc851x3[_0x221c[246]]);var _0xc851xa=mxCellPath[_0x221c[385]](_0xc851x3[_0x221c[246]]),_0xc851x12=this[_0x221c[1179]][_0x221c[502]](),_0xc851x13=this[_0x221c[1179]][_0x221c[1198]](_0xc851x3[_0x221c[246]]);if((0!=_0xc851x4||0!=_0xc851x5)&&null!=_0xc851x13&&_0xc851x13[_0x221c[1500]]&&_0xc851x12[_0x221c[1193]](_0xc851x3[_0x221c[246]])&&(null==_0xc851x2||_0xc851x12[_0x221c[1193]](_0xc851x2[_0x221c[246]])||null!=this[_0x221c[2786]][_0xc851xa])){_0xc851x3[_0x221c[235]]+=_0xc851x4,_0xc851x3[_0x221c[236]]+=_0xc851x5,this[_0x221c[1179]][_0x221c[259]][_0x221c[258]](_0xc851x3)};null!=_0xc851x9&&_0xc851x9(_0xc851x3);_0xc851x2=_0xc851x12[_0x221c[262]](_0xc851x3[_0x221c[246]]);for(_0xc851xa=0;_0xc851xa<_0xc851x2;_0xc851xa++){this[_0x221c[2793]](_0xc851x3,this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x12[_0x221c[263]](_0xc851x3[_0x221c[246]],_0xc851xa)),_0xc851x4,_0xc851x5,_0xc851x9)}}};mxCellStatePreview[_0x221c[202]][_0x221c[2790]]=function(_0xc851x2){for(var _0xc851x3=this[_0x221c[1179]][_0x221c[502]](),_0xc851x4=_0xc851x3[_0x221c[1707]](_0xc851x2[_0x221c[246]]),_0xc851x5=0;_0xc851x5<_0xc851x4;_0xc851x5++){var _0xc851x9=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x3[_0x221c[1708]](_0xc851x2[_0x221c[246]],_0xc851x5));null!=_0xc851x9&&this[_0x221c[1194]](_0xc851x9,0,0)}};function mxConnectionConstraint(_0xc851x2,_0xc851x3){this[_0x221c[2546]]=_0xc851x2;this[_0x221c[591]]=null!=_0xc851x3?_0xc851x3:!0}mxConnectionConstraint[_0x221c[202]][_0x221c[2546]]=null;mxConnectionConstraint[_0x221c[202]][_0x221c[591]]=null;function mxGraphHandler(_0xc851x2){this[_0x221c[1179]]=_0xc851x2;this[_0x221c[1179]][_0x221c[1133]](this);this[_0x221c[2730]]=mxUtils[_0x221c[885]](this,function(){this[_0x221c[2794]]()});this[_0x221c[1179]][_0x221c[169]](mxEvent.PAN,this[_0x221c[2730]])}mxGraphHandler[_0x221c[202]][_0x221c[1179]]=null;mxGraphHandler[_0x221c[202]][_0x221c[2795]]=mxClient[_0x221c[80]]?20:50;mxGraphHandler[_0x221c[202]][_0x221c[984]]= !0;mxGraphHandler[_0x221c[202]][_0x221c[2796]]= !0;mxGraphHandler[_0x221c[202]][_0x221c[2797]]= !0;mxGraphHandler[_0x221c[202]][_0x221c[2798]]= !0;mxGraphHandler[_0x221c[202]][_0x221c[990]]= !1;mxGraphHandler[_0x221c[202]][_0x221c[2799]]=null;mxGraphHandler[_0x221c[202]][_0x221c[2800]]=null;mxGraphHandler[_0x221c[202]][_0x221c[2801]]=null;mxGraphHandler[_0x221c[202]][_0x221c[2802]]= !0;mxGraphHandler[_0x221c[202]][_0x221c[2803]]= !0;mxGraphHandler[_0x221c[202]][_0x221c[846]]= !0;mxGraphHandler[_0x221c[202]][_0x221c[2804]]= !1;mxGraphHandler[_0x221c[202]][_0x221c[2805]]= !0;mxGraphHandler[_0x221c[202]][_0x221c[923]]=6;mxGraphHandler[_0x221c[202]][_0x221c[2806]]=_0x221c[586];mxGraphHandler[_0x221c[202]][_0x221c[2807]]= !1;mxGraphHandler[_0x221c[202]][_0x221c[253]]=null;mxGraphHandler[_0x221c[202]][_0x221c[2808]]= !1;mxGraphHandler[_0x221c[202]][_0x221c[2809]]= !0;mxGraphHandler[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxGraphHandler[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxGraphHandler[_0x221c[202]][_0x221c[2810]]=function(){return this[_0x221c[2797]]};mxGraphHandler[_0x221c[202]][_0x221c[2811]]=function(_0xc851x2){this[_0x221c[2797]]=_0xc851x2};mxGraphHandler[_0x221c[202]][_0x221c[2812]]=function(){return this[_0x221c[2798]]};mxGraphHandler[_0x221c[202]][_0x221c[2813]]=function(_0xc851x2){this[_0x221c[2798]]=_0xc851x2};mxGraphHandler[_0x221c[202]][_0x221c[2814]]=function(){return this[_0x221c[2803]]};mxGraphHandler[_0x221c[202]][_0x221c[2815]]=function(_0xc851x2){this[_0x221c[2803]]=_0xc851x2};mxGraphHandler[_0x221c[202]][_0x221c[2816]]=function(){return this[_0x221c[846]]};mxGraphHandler[_0x221c[202]][_0x221c[2817]]=function(_0xc851x2){this[_0x221c[846]]=_0xc851x2};mxGraphHandler[_0x221c[202]][_0x221c[2818]]=function(_0xc851x2){return _0xc851x2[_0x221c[736]]()};mxGraphHandler[_0x221c[202]][_0x221c[2819]]=function(_0xc851x2){return this[_0x221c[1179]][_0x221c[2692]](_0xc851x2)};mxGraphHandler[_0x221c[202]][_0x221c[787]]=function(_0xc851x2,_0xc851x3){if(!_0xc851x3[_0x221c[721]]()&&this[_0x221c[994]]()&&this[_0x221c[1179]][_0x221c[994]]()&&!this[_0x221c[1179]][_0x221c[2579]](_0xc851x3[_0x221c[727]]())&&null!=_0xc851x3[_0x221c[248]]()){var _0xc851x4=this[_0x221c[2818]](_0xc851x3);this[_0x221c[246]]=null;this[_0x221c[2820]]=this[_0x221c[2819]](_0xc851x4);this[_0x221c[2814]]()&&!this[_0x221c[2820]]&&this[_0x221c[1179]][_0x221c[2459]](_0xc851x4,_0xc851x3[_0x221c[727]]());if(this[_0x221c[2812]]()){var _0xc851x5=this[_0x221c[1179]][_0x221c[251]],_0xc851x9=_0xc851x5[_0x221c[1721]](_0xc851x4);this[_0x221c[1179]][_0x221c[1712]](_0xc851x4)&&(!_0xc851x5[_0x221c[250]](_0xc851x4)||1<this[_0x221c[1179]][_0x221c[2694]]()||null!=_0xc851x9[_0x221c[1525]]&&0<_0xc851x9[_0x221c[1525]][_0x221c[67]]||null==_0xc851x5[_0x221c[1709]](_0xc851x4,!0)||null==_0xc851x5[_0x221c[1709]](_0xc851x4,!1)||this[_0x221c[1179]][_0x221c[2406]]||this[_0x221c[1179]][_0x221c[2574]](_0xc851x3[_0x221c[727]]())&&this[_0x221c[1179]][_0x221c[2617]]())&&this[_0x221c[861]](_0xc851x4,_0xc851x3[_0x221c[730]](),_0xc851x3[_0x221c[732]]());this[_0x221c[2821]]= !0;!mxClient[_0x221c[75]]&&!mxClient[_0x221c[76]]||_0x221c[2822]!=_0xc851x3[_0x221c[728]]()[_0x221c[301]]?_0xc851x3[_0x221c[722]]():mxClient[_0x221c[75]]&&_0x221c[2822]==_0xc851x3[_0x221c[728]]()[_0x221c[301]]&&(this[_0x221c[2821]]= !1,this[_0x221c[2823]]=null)}}};mxGraphHandler[_0x221c[202]][_0x221c[1010]]=function(){var _0xc851x2=this[_0x221c[1179]][_0x221c[902]](),_0xc851x3=this[_0x221c[1179]][_0x221c[502]](),_0xc851x4=mxUtils[_0x221c[885]](this,function(_0xc851x2){return null!=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x2)&&_0xc851x3[_0x221c[1193]](_0xc851x2)&&null!=_0xc851x3[_0x221c[1721]](_0xc851x2)&&!_0xc851x3[_0x221c[1721]](_0xc851x2)[_0x221c[1500]]});return this[_0x221c[1179]][_0x221c[441]][_0x221c[2313]](_0xc851x3[_0x221c[1921]](_0xc851x4,_0xc851x2))};mxGraphHandler[_0x221c[202]][_0x221c[2690]]=function(_0xc851x2){return !this[_0x221c[2820]]&&this[_0x221c[1179]][_0x221c[1712]](_0xc851x2)?[_0xc851x2]:this[_0x221c[1179]][_0x221c[2629]](this[_0x221c[1179]][_0x221c[897]]())};mxGraphHandler[_0x221c[202]][_0x221c[2824]]=function(_0xc851x2){_0xc851x2=this[_0x221c[1613]](_0xc851x2);null!=_0xc851x2&&(_0xc851x2[_0x221c[244]](-1,-1),_0xc851x2[_0x221c[117]]<this[_0x221c[923]]&&(_0xc851x2[_0x221c[235]]-=(this[_0x221c[923]]-_0xc851x2[_0x221c[117]])/2,_0xc851x2[_0x221c[117]]=this[_0x221c[923]]),_0xc851x2[_0x221c[119]]<this[_0x221c[923]]&&(_0xc851x2[_0x221c[236]]-=(this[_0x221c[923]]-_0xc851x2[_0x221c[119]])/2,_0xc851x2[_0x221c[119]]=this[_0x221c[923]]));return _0xc851x2};mxGraphHandler[_0x221c[202]][_0x221c[1613]]=function(_0xc851x2){var _0xc851x3=null;if(null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]){for(var _0xc851x4=this[_0x221c[1179]][_0x221c[502]](),_0xc851x5=0;_0xc851x5<_0xc851x2[_0x221c[67]];_0xc851x5++){if(_0xc851x4[_0x221c[1193]](_0xc851x2[_0xc851x5])||_0xc851x4[_0x221c[250]](_0xc851x2[_0xc851x5])){var _0xc851x9=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x2[_0xc851x5]);if(null!=_0xc851x9){var _0xc851xa=_0xc851x9;_0xc851x4[_0x221c[1193]](_0xc851x2[_0xc851x5])&&(null!=_0xc851x9[_0x221c[253]]&&null!=_0xc851x9[_0x221c[253]][_0x221c[1563]])&&(_0xc851xa=_0xc851x9[_0x221c[253]][_0x221c[1563]]);null==_0xc851x3?_0xc851x3= new mxRectangle(_0xc851xa[_0x221c[235]],_0xc851xa[_0x221c[236]],_0xc851xa[_0x221c[117]],_0xc851xa[_0x221c[119]]):_0xc851x3[_0x221c[99]](_0xc851xa)}}}};return _0xc851x3};mxGraphHandler[_0x221c[202]][_0x221c[2825]]=function(_0xc851x2){_0xc851x2= new mxRectangleShape(_0xc851x2,null,this[_0x221c[2806]]);_0xc851x2[_0x221c[1522]]= !0;this[_0x221c[2807]]?(_0xc851x2[_0x221c[507]]=mxConstants[_0x221c[1656]],_0xc851x2[_0x221c[176]](this[_0x221c[1179]][_0x221c[526]])):(_0xc851x2[_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]!=mxConstants[_0x221c[508]]?mxConstants[_0x221c[1523]]:mxConstants[_0x221c[508]],_0xc851x2[_0x221c[176]](this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1524]]()),_0xc851x2[_0x221c[1229]]= !1);return _0xc851x2};mxGraphHandler[_0x221c[202]][_0x221c[861]]=function(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[246]]=_0xc851x2;this[_0x221c[2823]]=mxUtils[_0x221c[2196]](this[_0x221c[1179]][_0x221c[526]],_0xc851x3,_0xc851x4);this[_0x221c[895]]=this[_0x221c[2690]](this[_0x221c[246]]);this[_0x221c[1562]]=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1799]](this[_0x221c[895]]);this[_0x221c[2826]]=this[_0x221c[2824]](this[_0x221c[895]]);this[_0x221c[990]]&&(this[_0x221c[2799]]= new mxGuide(this[_0x221c[1179]],this[_0x221c[1010]]()))};mxGraphHandler[_0x221c[202]][_0x221c[2827]]=function(_0xc851x2){return null!=this[_0x221c[2799]]?this[_0x221c[2799]][_0x221c[1019]](_0xc851x2[_0x221c[727]]()):!0};mxGraphHandler[_0x221c[202]][_0x221c[1021]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[2808]]?this[_0x221c[1179]][_0x221c[441]][_0x221c[255]]:1;_0xc851x2[_0x221c[235]]=this[_0x221c[1179]][_0x221c[1021]](_0xc851x2[_0x221c[235]]/_0xc851x3)*_0xc851x3;_0xc851x2[_0x221c[236]]=this[_0x221c[1179]][_0x221c[1021]](_0xc851x2[_0x221c[236]]/_0xc851x3)*_0xc851x3;return _0xc851x2};mxGraphHandler[_0x221c[202]][_0x221c[788]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]];if(!_0xc851x3[_0x221c[721]]()&&_0xc851x4[_0x221c[1009]]&&null!=this[_0x221c[246]]&&null!=this[_0x221c[2823]]&&null!=this[_0x221c[1562]]){var _0xc851x5=mxUtils[_0x221c[2196]](_0xc851x4[_0x221c[526]],_0xc851x3[_0x221c[730]](),_0xc851x3[_0x221c[732]]()),_0xc851x9=_0xc851x5[_0x221c[235]]-this[_0x221c[2823]][_0x221c[235]],_0xc851xa=_0xc851x5[_0x221c[236]]-this[_0x221c[2823]][_0x221c[236]],_0xc851x5=_0xc851x4[_0x221c[2353]];if(null!=this[_0x221c[253]]||Math[_0x221c[425]](_0xc851x9)>_0xc851x5||Math[_0x221c[425]](_0xc851xa)>_0xc851x5){null==this[_0x221c[1016]]&&(this[_0x221c[1016]]= new mxCellHighlight(this[_0x221c[1179]],mxConstants.DROP_TARGET_COLOR,3));null==this[_0x221c[253]]&&(this[_0x221c[253]]=this[_0x221c[2825]](this[_0x221c[1562]]));var _0xc851x12=_0xc851x4[_0x221c[1018]](_0xc851x3[_0x221c[727]]()),_0xc851x5=!0;if(null!=this[_0x221c[2799]]&&this[_0x221c[2827]](_0xc851x3)){_0xc851xa=this[_0x221c[2799]][_0x221c[582]](this[_0x221c[1562]], new mxPoint(_0xc851x9,_0xc851xa),_0xc851x12),_0xc851x5= !1,_0xc851x9=_0xc851xa[_0x221c[235]],_0xc851xa=_0xc851xa[_0x221c[236]]}else {if(_0xc851x12){var _0xc851x13=_0xc851x4[_0x221c[249]]()[_0x221c[513]],_0xc851x14=_0xc851x4[_0x221c[249]]()[_0x221c[255]],_0xc851x12=this[_0x221c[1562]][_0x221c[235]]-(_0xc851x4[_0x221c[1021]](this[_0x221c[1562]][_0x221c[235]]/_0xc851x14-_0xc851x13[_0x221c[235]])+_0xc851x13[_0x221c[235]])*_0xc851x14,_0xc851x13=this[_0x221c[1562]][_0x221c[236]]-(_0xc851x4[_0x221c[1021]](this[_0x221c[1562]][_0x221c[236]]/_0xc851x14-_0xc851x13[_0x221c[236]])+_0xc851x13[_0x221c[236]])*_0xc851x14,_0xc851xa=this[_0x221c[1021]]( new mxPoint(_0xc851x9,_0xc851xa)),_0xc851x9=_0xc851xa[_0x221c[235]]-_0xc851x12,_0xc851xa=_0xc851xa[_0x221c[236]]-_0xc851x13}};null!=this[_0x221c[2799]]&&_0xc851x5&&this[_0x221c[2799]][_0x221c[801]]();_0xc851x4[_0x221c[2578]](_0xc851x3[_0x221c[727]]())&&(Math[_0x221c[425]](_0xc851x9)>Math[_0x221c[425]](_0xc851xa)?_0xc851xa=0:_0xc851x9=0);this[_0x221c[2800]]=_0xc851x9;this[_0x221c[2801]]=_0xc851xa;this[_0x221c[2794]]();_0xc851x5=null;_0xc851xa=_0xc851x3[_0x221c[736]]();_0xc851x4[_0x221c[1015]]()&&this[_0x221c[2796]]&&(_0xc851x5=_0xc851x4[_0x221c[564]](this[_0x221c[895]],_0xc851x3[_0x221c[727]](),_0xc851xa));_0xc851x12=_0xc851x5;for(_0xc851x13=_0xc851x4[_0x221c[502]]();null!=_0xc851x12&&_0xc851x12!=this[_0x221c[895]][0];){_0xc851x12=_0xc851x13[_0x221c[1197]](_0xc851x12)};var _0xc851x14=_0xc851x4[_0x221c[2574]](_0xc851x3[_0x221c[727]]())&&_0xc851x4[_0x221c[2617]]()&&this[_0x221c[2810]](),_0xc851x9=_0xc851x4[_0x221c[249]]()[_0x221c[248]](_0xc851x5),_0xc851x15=!1;null!=_0xc851x9&&null==_0xc851x12&&(_0xc851x13[_0x221c[1197]](this[_0x221c[246]])!=_0xc851x5||_0xc851x14)?(this[_0x221c[772]]!=_0xc851x5&&(this[_0x221c[772]]=_0xc851x5,this[_0x221c[2828]](mxConstants.DROP_TARGET_COLOR)),_0xc851x15= !0):(this[_0x221c[772]]=null,this[_0x221c[2804]]&&(null!=_0xc851xa&&1==this[_0x221c[895]][_0x221c[67]]&&_0xc851x4[_0x221c[502]]()[_0x221c[1193]](_0xc851xa)&&_0xc851x4[_0x221c[2565]](_0xc851xa))&&(_0xc851x9=_0xc851x4[_0x221c[249]]()[_0x221c[248]](_0xc851xa),null!=_0xc851x9&&(_0xc851x4=null==_0xc851x4[_0x221c[2500]](null,this[_0x221c[246]],_0xc851xa)?mxConstants[_0x221c[2829]]:mxConstants[_0x221c[2830]],this[_0x221c[2828]](_0xc851x4),_0xc851x15= !0)));null!=_0xc851x9&&_0xc851x15?this[_0x221c[1016]][_0x221c[1016]](_0xc851x9):this[_0x221c[1016]][_0x221c[801]]()};_0xc851x3[_0x221c[722]]();mxEvent[_0x221c[722]](_0xc851x3[_0x221c[727]]())}else {if((this[_0x221c[2812]]()||this[_0x221c[2810]]())&&this[_0x221c[2802]]&&!_0xc851x3[_0x221c[721]]()&&null!=_0xc851x3[_0x221c[248]]()&&!_0xc851x4[_0x221c[1009]]){_0xc851x9=_0xc851x4[_0x221c[2599]](_0xc851x3[_0x221c[736]]()),null==_0xc851x9&&(_0xc851x4[_0x221c[994]]()&&_0xc851x4[_0x221c[1712]](_0xc851x3[_0x221c[736]]()))&&(_0xc851x9=_0xc851x4[_0x221c[502]]()[_0x221c[250]](_0xc851x3[_0x221c[736]]())?mxConstants[_0x221c[2831]]:mxConstants[_0x221c[2832]]),_0xc851x3[_0x221c[248]]()[_0x221c[1609]](_0xc851x9),_0xc851x3[_0x221c[722]]()}}};mxGraphHandler[_0x221c[202]][_0x221c[2794]]=function(){null!=this[_0x221c[253]]&&(this[_0x221c[253]][_0x221c[1562]]= new mxRectangle(Math[_0x221c[488]](this[_0x221c[2826]][_0x221c[235]]+this[_0x221c[2800]]-this[_0x221c[1179]][_0x221c[1136]]),Math[_0x221c[488]](this[_0x221c[2826]][_0x221c[236]]+this[_0x221c[2801]]-this[_0x221c[1179]][_0x221c[1137]]),this[_0x221c[2826]][_0x221c[117]],this[_0x221c[2826]][_0x221c[119]]),this[_0x221c[253]][_0x221c[258]]())};mxGraphHandler[_0x221c[202]][_0x221c[2828]]=function(_0xc851x2){null!=this[_0x221c[1016]]&&this[_0x221c[1016]][_0x221c[2828]](_0xc851x2)};mxGraphHandler[_0x221c[202]][_0x221c[789]]=function(_0xc851x2,_0xc851x3){if(!_0xc851x3[_0x221c[721]]()){var _0xc851x4=this[_0x221c[1179]];if(null!=this[_0x221c[246]]&&null!=this[_0x221c[2823]]&&null!=this[_0x221c[253]]&&null!=this[_0x221c[2800]]&&null!=this[_0x221c[2801]]){var _0xc851x5=_0xc851x4[_0x221c[249]]()[_0x221c[255]],_0xc851x9=_0xc851x4[_0x221c[2574]](_0xc851x3[_0x221c[727]]())&&_0xc851x4[_0x221c[2617]]()&&this[_0x221c[2810]](),_0xc851xa=this[_0x221c[2800]]/_0xc851x5,_0xc851x5=this[_0x221c[2801]]/_0xc851x5,_0xc851x12=_0xc851x3[_0x221c[736]]();this[_0x221c[2804]]&&null==this[_0x221c[772]]&&null!=_0xc851x12&&_0xc851x4[_0x221c[502]]()[_0x221c[1193]](_0xc851x12)&&_0xc851x4[_0x221c[2565]](_0xc851x12)&&_0xc851x4[_0x221c[2581]](null,this[_0x221c[246]],_0xc851x12)?_0xc851x4[_0x221c[2433]][_0x221c[807]](this[_0x221c[246]],_0xc851x12,_0xc851x3[_0x221c[727]]()):(_0xc851x12=this[_0x221c[772]],_0xc851x4[_0x221c[2655]]()&&_0xc851x4[_0x221c[2686]](_0xc851x12,this[_0x221c[895]],_0xc851x3[_0x221c[727]]())?_0xc851x4[_0x221c[853]](_0xc851x12,this[_0x221c[895]],null,_0xc851xa,_0xc851x5):this[_0x221c[834]](this[_0x221c[895]],_0xc851xa,_0xc851x5,_0xc851x9,this[_0x221c[772]],_0xc851x3[_0x221c[727]]()))}else {this[_0x221c[2814]]()&&(this[_0x221c[2820]]&&null!=this[_0x221c[246]])&&this[_0x221c[2833]](_0xc851x3)}};this[_0x221c[2821]]&&_0xc851x3[_0x221c[722]]();this[_0x221c[862]]()};mxGraphHandler[_0x221c[202]][_0x221c[2833]]=function(_0xc851x2){this[_0x221c[1179]][_0x221c[2459]](this[_0x221c[246]],_0xc851x2[_0x221c[727]]())};mxGraphHandler[_0x221c[202]][_0x221c[862]]=function(){this[_0x221c[2834]]();this[_0x221c[2820]]=this[_0x221c[2821]]= !1;this[_0x221c[772]]=this[_0x221c[246]]=this[_0x221c[2823]]=this[_0x221c[2835]]=this[_0x221c[2801]]=this[_0x221c[2800]]=null};mxGraphHandler[_0x221c[202]][_0x221c[2836]]=function(_0xc851x2,_0xc851x3,_0xc851x4){if(this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1193]](_0xc851x2)){_0xc851x2=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](_0xc851x2);_0xc851x4=mxUtils[_0x221c[2196]](this[_0x221c[1179]][_0x221c[526]],mxEvent[_0x221c[731]](_0xc851x4),mxEvent[_0x221c[733]](_0xc851x4));var _0xc851x5=mxUtils[_0x221c[431]](mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_ROTATION)||0);if(0!=_0xc851x5){_0xc851x3=Math[_0x221c[426]](-_0xc851x5);var _0xc851x5=Math[_0x221c[427]](-_0xc851x5),_0xc851x9= new mxPoint(_0xc851x2[_0x221c[241]](),_0xc851x2[_0x221c[242]]());_0xc851x4=mxUtils[_0x221c[432]](_0xc851x4,_0xc851x3,_0xc851x5,_0xc851x9)};return null!=_0xc851x2&&!mxUtils[_0x221c[442]](_0xc851x2,_0xc851x4[_0x221c[235]],_0xc851x4[_0x221c[236]])};return !1};mxGraphHandler[_0x221c[202]][_0x221c[834]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){_0xc851x5&&(_0xc851x2=this[_0x221c[1179]][_0x221c[2615]](_0xc851x2));null==_0xc851x9&&(this[_0x221c[2816]]()&&this[_0x221c[2836]](this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1197]](this[_0x221c[246]]),_0xc851x2,_0xc851xa))&&(_0xc851x9=this[_0x221c[1179]][_0x221c[902]]());_0xc851x2=this[_0x221c[1179]][_0x221c[834]](_0xc851x2,_0xc851x3-this[_0x221c[1179]][_0x221c[1136]]/this[_0x221c[1179]][_0x221c[441]][_0x221c[255]],_0xc851x4-this[_0x221c[1179]][_0x221c[1137]]/this[_0x221c[1179]][_0x221c[441]][_0x221c[255]],_0xc851x5,_0xc851x9,_0xc851xa);this[_0x221c[2814]]()&&this[_0x221c[2805]]&&this[_0x221c[1179]][_0x221c[2564]](_0xc851x2[0]);_0xc851x5&&this[_0x221c[1179]][_0x221c[904]](_0xc851x2)};mxGraphHandler[_0x221c[202]][_0x221c[2834]]=function(){null!=this[_0x221c[253]]&&(this[_0x221c[253]][_0x221c[515]](),this[_0x221c[253]]=null);null!=this[_0x221c[2799]]&&(this[_0x221c[2799]][_0x221c[515]](),this[_0x221c[2799]]=null);null!=this[_0x221c[1016]]&&(this[_0x221c[1016]][_0x221c[515]](),this[_0x221c[1016]]=null)};mxGraphHandler[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[1179]][_0x221c[1148]](this);this[_0x221c[1179]][_0x221c[745]](this[_0x221c[2730]]);this[_0x221c[2834]]()};function mxPanningHandler(_0xc851x2,_0xc851x3){null!=_0xc851x2&&(this[_0x221c[1179]]=_0xc851x2,this[_0x221c[1033]]=_0xc851x3,this[_0x221c[1179]][_0x221c[1133]](this),this[_0x221c[176]]())}mxPanningHandler[_0x221c[202]]= new mxPopupMenu;mxPanningHandler[_0x221c[202]][_0x221c[196]]=mxPanningHandler;mxPanningHandler[_0x221c[202]][_0x221c[1179]]=null;mxPanningHandler[_0x221c[202]][_0x221c[2837]]=null;mxPanningHandler[_0x221c[202]][_0x221c[2838]]=null;mxPanningHandler[_0x221c[202]][_0x221c[2839]]= !0;mxPanningHandler[_0x221c[202]][_0x221c[2840]]= !1;mxPanningHandler[_0x221c[202]][_0x221c[2841]]= !0;mxPanningHandler[_0x221c[202]][_0x221c[2842]]= !0;mxPanningHandler[_0x221c[202]][_0x221c[2843]]= !1;mxPanningHandler[_0x221c[202]][_0x221c[2844]]= !0;mxPanningHandler[_0x221c[202]][_0x221c[2845]]= !1;mxPanningHandler[_0x221c[202]][_0x221c[2431]]= !0;mxPanningHandler[_0x221c[202]][_0x221c[2846]]=function(){return this[_0x221c[2431]]};mxPanningHandler[_0x221c[202]][_0x221c[2847]]=function(_0xc851x2){this[_0x221c[2431]]=_0xc851x2};mxPanningHandler[_0x221c[202]][_0x221c[176]]=function(){mxPopupMenu[_0x221c[202]][_0x221c[176]][_0x221c[183]](this);mxEvent[_0x221c[169]](this[_0x221c[485]],mxClient[_0x221c[754]]?_0x221c[756]:_0x221c[752],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[1179]][_0x221c[2276]][_0x221c[801]]()}))};mxPanningHandler[_0x221c[202]][_0x221c[2848]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[727]]();return this[_0x221c[2840]]&&(this[_0x221c[2843]]||null==_0xc851x2[_0x221c[248]]())&&mxEvent[_0x221c[1158]](_0xc851x3)||mxEvent[_0x221c[775]](_0xc851x3)&&mxEvent[_0x221c[774]](_0xc851x3)||this[_0x221c[2839]]&&mxEvent[_0x221c[737]](_0xc851x3)};mxPanningHandler[_0x221c[202]][_0x221c[787]]=function(_0xc851x2,_0xc851x3){if(!_0xc851x3[_0x221c[721]]()&&this[_0x221c[994]]()){this[_0x221c[1032]]();this[_0x221c[2741]]=-this[_0x221c[1179]][_0x221c[526]][_0x221c[360]];this[_0x221c[2742]]=-this[_0x221c[1179]][_0x221c[526]][_0x221c[190]];var _0xc851x4=mxUtils[_0x221c[2196]](this[_0x221c[1179]][_0x221c[526]],_0xc851x3[_0x221c[730]](),_0xc851x3[_0x221c[732]]());this[_0x221c[2837]]=_0xc851x4[_0x221c[235]];this[_0x221c[2838]]=_0xc851x4[_0x221c[236]];this[_0x221c[2849]]=this[_0x221c[737]](_0xc851x3);this[_0x221c[2850]]=this[_0x221c[2846]]()&&this[_0x221c[2848]](_0xc851x3);this[_0x221c[2739]]=_0xc851x3[_0x221c[730]]();this[_0x221c[2740]]=_0xc851x3[_0x221c[732]]();this[_0x221c[2850]]&&this[_0x221c[2851]](_0xc851x3)}};mxPanningHandler[_0x221c[202]][_0x221c[2851]]=function(_0xc851x2){_0xc851x2[_0x221c[722]]()};mxPanningHandler[_0x221c[202]][_0x221c[788]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x3[_0x221c[730]]()-this[_0x221c[2739]],_0xc851x5=_0xc851x3[_0x221c[732]]()-this[_0x221c[2740]];if(this[_0x221c[1124]]){this[_0x221c[2844]]&&(this[_0x221c[2845]]&&(_0xc851x4=this[_0x221c[1179]][_0x221c[1021]](_0xc851x4),_0xc851x5=this[_0x221c[1179]][_0x221c[1021]](_0xc851x5)),this[_0x221c[1179]][_0x221c[1135]](_0xc851x4+this[_0x221c[2741]],_0xc851x5+this[_0x221c[2742]])),this[_0x221c[746]]( new mxEventObject(mxEvent.PAN,_0x221c[763],_0xc851x3)),_0xc851x3[_0x221c[722]]()}else {if(this[_0x221c[2850]]){var _0xc851x9=this[_0x221c[1124]];this[_0x221c[1124]]=Math[_0x221c[425]](_0xc851x4)>this[_0x221c[1179]][_0x221c[2353]]||Math[_0x221c[425]](_0xc851x5)>this[_0x221c[1179]][_0x221c[2353]];!_0xc851x9&&this[_0x221c[1124]]&&this[_0x221c[746]]( new mxEventObject(mxEvent.PAN_START,_0x221c[763],_0xc851x3))}}};mxPanningHandler[_0x221c[202]][_0x221c[789]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=Math[_0x221c[425]](_0xc851x3[_0x221c[730]]()-this[_0x221c[2739]]),_0xc851x5=Math[_0x221c[425]](_0xc851x3[_0x221c[732]]()-this[_0x221c[2740]]);if(this[_0x221c[1124]]){if(!this[_0x221c[1179]][_0x221c[2365]]||!mxUtils[_0x221c[1134]](this[_0x221c[1179]][_0x221c[526]])){_0xc851x4=_0xc851x3[_0x221c[730]]()-this[_0x221c[2739]];_0xc851x5=_0xc851x3[_0x221c[732]]()-this[_0x221c[2740]];this[_0x221c[2845]]&&(_0xc851x4=this[_0x221c[1179]][_0x221c[1021]](_0xc851x4),_0xc851x5=this[_0x221c[1179]][_0x221c[1021]](_0xc851x5));var _0xc851x9=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]],_0xc851xa=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[513]];this[_0x221c[1179]][_0x221c[1135]](0,0);this[_0x221c[1135]](_0xc851xa[_0x221c[235]]+_0xc851x4/_0xc851x9,_0xc851xa[_0x221c[236]]+_0xc851x5/_0xc851x9)};this[_0x221c[1124]]= !1;this[_0x221c[746]]( new mxEventObject(mxEvent.PAN_END,_0x221c[763],_0xc851x3));_0xc851x3[_0x221c[722]]()}else {this[_0x221c[2849]]&&(_0xc851x4<this[_0x221c[1179]][_0x221c[2353]]&&_0xc851x5<this[_0x221c[1179]][_0x221c[2353]])&&(_0xc851x4=this[_0x221c[2852]](_0xc851x3),this[_0x221c[1179]][_0x221c[994]]()&&this[_0x221c[2841]]&&null!=_0xc851x4&&!this[_0x221c[1179]][_0x221c[2692]](_0xc851x4)?this[_0x221c[1179]][_0x221c[2450]](_0xc851x4):this[_0x221c[2842]]&&null==_0xc851x4&&this[_0x221c[1179]][_0x221c[2440]](),this[_0x221c[1179]][_0x221c[2276]][_0x221c[801]](),_0xc851x5=mxUtils[_0x221c[444]](),_0xc851x5= new mxPoint(_0xc851x3[_0x221c[730]]()+_0xc851x5[_0x221c[235]],_0xc851x3[_0x221c[732]]()+_0xc851x5[_0x221c[236]]),this[_0x221c[152]](_0xc851x5[_0x221c[235]]+1,_0xc851x5[_0x221c[236]]+1,_0xc851x4,_0xc851x3[_0x221c[727]]()),_0xc851x3[_0x221c[722]]())};this[_0x221c[2849]]=this[_0x221c[2850]]= !1};mxPanningHandler[_0x221c[202]][_0x221c[2852]]=function(_0xc851x2){return _0xc851x2[_0x221c[736]]()};mxPanningHandler[_0x221c[202]][_0x221c[1135]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1147]](_0xc851x2,_0xc851x3)};mxPanningHandler[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[1179]][_0x221c[1148]](this);mxPopupMenu[_0x221c[202]][_0x221c[515]][_0x221c[183]](this)};function mxCellMarker(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){mxEventSource[_0x221c[239]](this);null!=_0xc851x2&&(this[_0x221c[1179]]=_0xc851x2,this[_0x221c[2853]]=null!=_0xc851x3?_0xc851x3:mxConstants[_0x221c[2854]],this[_0x221c[2855]]=null!=_0xc851x3?_0xc851x4:mxConstants[_0x221c[2856]],this[_0x221c[2857]]=null!=_0xc851x5?_0xc851x5:mxConstants[_0x221c[2858]],this[_0x221c[1016]]= new mxCellHighlight(_0xc851x2))}mxUtils[_0x221c[1284]](mxCellMarker,mxEventSource);mxCellMarker[_0x221c[202]][_0x221c[1179]]=null;mxCellMarker[_0x221c[202]][_0x221c[984]]= !0;mxCellMarker[_0x221c[202]][_0x221c[2857]]=mxConstants[_0x221c[2858]];mxCellMarker[_0x221c[202]][_0x221c[2859]]= !1;mxCellMarker[_0x221c[202]][_0x221c[2853]]=null;mxCellMarker[_0x221c[202]][_0x221c[2855]]=null;mxCellMarker[_0x221c[202]][_0x221c[2860]]=null;mxCellMarker[_0x221c[202]][_0x221c[2861]]=null;mxCellMarker[_0x221c[202]][_0x221c[2862]]=null;mxCellMarker[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxCellMarker[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxCellMarker[_0x221c[202]][_0x221c[2863]]=function(_0xc851x2){this[_0x221c[2857]]=_0xc851x2};mxCellMarker[_0x221c[202]][_0x221c[2864]]=function(){return this[_0x221c[2857]]};mxCellMarker[_0x221c[202]][_0x221c[2865]]=function(_0xc851x2){this[_0x221c[2859]]=_0xc851x2};mxCellMarker[_0x221c[202]][_0x221c[2866]]=function(){return this[_0x221c[2859]]};mxCellMarker[_0x221c[202]][_0x221c[2867]]=function(){return null!=this[_0x221c[2861]]};mxCellMarker[_0x221c[202]][_0x221c[2868]]=function(){return this[_0x221c[2861]]};mxCellMarker[_0x221c[202]][_0x221c[2869]]=function(){return this[_0x221c[2862]]};mxCellMarker[_0x221c[202]][_0x221c[862]]=function(){this[_0x221c[2861]]=null;null!=this[_0x221c[2862]]&&(this[_0x221c[2862]]=null,this[_0x221c[2870]]())};mxCellMarker[_0x221c[202]][_0x221c[2871]]=function(_0xc851x2){var _0xc851x3=null;if(this[_0x221c[994]]()){var _0xc851x3=this[_0x221c[248]](_0xc851x2),_0xc851x4=null!=_0xc851x3?this[_0x221c[2872]](_0xc851x3):!1;_0xc851x2=this[_0x221c[2873]](_0xc851x2[_0x221c[727]](),_0xc851x3,_0xc851x4);this[_0x221c[2861]]=_0xc851x4?_0xc851x3:null;if(_0xc851x3!=this[_0x221c[2862]]||_0xc851x2!=this[_0x221c[2860]]){this[_0x221c[2860]]=_0xc851x2,null!=_0xc851x3&&null!=this[_0x221c[2860]]?(this[_0x221c[2862]]=_0xc851x3,this[_0x221c[811]]()):null!=this[_0x221c[2862]]&&(this[_0x221c[2862]]=null,this[_0x221c[2870]]())}};return _0xc851x3};mxCellMarker[_0x221c[202]][_0x221c[2874]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](_0xc851x2);null!=_0xc851x4&&(this[_0x221c[2860]]=null!=_0xc851x3?_0xc851x3:this[_0x221c[2853]],this[_0x221c[2862]]=_0xc851x4,this[_0x221c[811]]())};mxCellMarker[_0x221c[202]][_0x221c[811]]=function(){this[_0x221c[1016]][_0x221c[2828]](this[_0x221c[2860]]);this[_0x221c[1016]][_0x221c[1016]](this[_0x221c[2862]]);this[_0x221c[746]]( new mxEventObject(mxEvent.MARK,_0x221c[724],this[_0x221c[2862]]))};mxCellMarker[_0x221c[202]][_0x221c[2870]]=function(){this[_0x221c[811]]()};mxCellMarker[_0x221c[202]][_0x221c[2872]]=function(_0xc851x2){return !0};mxCellMarker[_0x221c[202]][_0x221c[2873]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return _0xc851x4?this[_0x221c[2853]]:this[_0x221c[2855]]};mxCellMarker[_0x221c[202]][_0x221c[248]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[249]]();cell=this[_0x221c[736]](_0xc851x2);_0xc851x3=this[_0x221c[2875]](_0xc851x3[_0x221c[248]](cell));return null!=_0xc851x3&&this[_0x221c[1825]](_0xc851x3,_0xc851x2)?_0xc851x3:null};mxCellMarker[_0x221c[202]][_0x221c[736]]=function(_0xc851x2){return _0xc851x2[_0x221c[736]]()};mxCellMarker[_0x221c[202]][_0x221c[2875]]=function(_0xc851x2){return _0xc851x2};mxCellMarker[_0x221c[202]][_0x221c[1825]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[2859]]?mxUtils[_0x221c[2876]](_0xc851x2,_0xc851x3[_0x221c[734]](),_0xc851x3[_0x221c[735]](),this[_0x221c[2857]],mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE):!0};mxCellMarker[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[1179]][_0x221c[249]]()[_0x221c[745]](this[_0x221c[2877]]);this[_0x221c[1179]][_0x221c[502]]()[_0x221c[745]](this[_0x221c[2877]]);this[_0x221c[1016]][_0x221c[515]]()};function mxSelectionCellsHandler(_0xc851x2){mxEventSource[_0x221c[239]](this);this[_0x221c[1179]]=_0xc851x2;this[_0x221c[2878]]= new mxDictionary;this[_0x221c[1179]][_0x221c[1133]](this);this[_0x221c[2731]]=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x4){this[_0x221c[994]]()&&this[_0x221c[802]]()});this[_0x221c[1179]][_0x221c[2435]]()[_0x221c[169]](mxEvent.CHANGE,this[_0x221c[2731]]);this[_0x221c[1179]][_0x221c[502]]()[_0x221c[169]](mxEvent.CHANGE,this[_0x221c[2731]]);this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.SCALE,this[_0x221c[2731]]);this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.TRANSLATE,this[_0x221c[2731]]);this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.SCALE_AND_TRANSLATE,this[_0x221c[2731]]);this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.DOWN,this[_0x221c[2731]]);this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.UP,this[_0x221c[2731]])}mxUtils[_0x221c[1284]](mxSelectionCellsHandler,mxEventSource);mxSelectionCellsHandler[_0x221c[202]][_0x221c[1179]]=null;mxSelectionCellsHandler[_0x221c[202]][_0x221c[984]]= !0;mxSelectionCellsHandler[_0x221c[202]][_0x221c[2731]]=null;mxSelectionCellsHandler[_0x221c[202]][_0x221c[2879]]=100;mxSelectionCellsHandler[_0x221c[202]][_0x221c[2878]]=null;mxSelectionCellsHandler[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxSelectionCellsHandler[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxSelectionCellsHandler[_0x221c[202]][_0x221c[2596]]=function(_0xc851x2){return this[_0x221c[2878]][_0x221c[203]](_0xc851x2)};mxSelectionCellsHandler[_0x221c[202]][_0x221c[862]]=function(){this[_0x221c[2878]][_0x221c[209]](function(_0xc851x2,_0xc851x3){_0xc851x3[_0x221c[862]][_0x221c[183]](_0xc851x3)})};mxSelectionCellsHandler[_0x221c[202]][_0x221c[802]]=function(){var _0xc851x2=this[_0x221c[2878]];this[_0x221c[2878]]= new mxDictionary;for(var _0xc851x3=this[_0x221c[1179]][_0x221c[897]](),_0xc851x4=0;_0xc851x4<_0xc851x3[_0x221c[67]];_0xc851x4++){var _0xc851x5=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x3[_0xc851x4]);if(null!=_0xc851x5){var _0xc851x9=_0xc851x2[_0x221c[205]](_0xc851x3[_0xc851x4]);null!=_0xc851x9&&(_0xc851x9[_0x221c[724]]!=_0xc851x5?(_0xc851x9[_0x221c[515]](),_0xc851x9=null):_0xc851x9[_0x221c[258]]());null==_0xc851x9&&(_0xc851x9=this[_0x221c[1179]][_0x221c[2709]](_0xc851x5),this[_0x221c[746]]( new mxEventObject(mxEvent.ADD,_0x221c[724],_0xc851x5)));null!=_0xc851x9&&this[_0x221c[2878]][_0x221c[204]](_0xc851x3[_0xc851x4],_0xc851x9)}};_0xc851x2[_0x221c[209]](mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x3){this[_0x221c[746]]( new mxEventObject(mxEvent.REMOVE,_0x221c[724],_0xc851x3[_0x221c[724]]));_0xc851x3[_0x221c[515]]()}))};mxSelectionCellsHandler[_0x221c[202]][_0x221c[787]]=function(_0xc851x2,_0xc851x3){if(this[_0x221c[1179]][_0x221c[994]]()&&this[_0x221c[994]]()){var _0xc851x4=[_0xc851x2,_0xc851x3];this[_0x221c[2878]][_0x221c[209]](function(_0xc851x2,_0xc851x3){_0xc851x3[_0x221c[787]][_0x221c[183]](_0xc851x3,_0xc851x4)})}};mxSelectionCellsHandler[_0x221c[202]][_0x221c[788]]=function(_0xc851x2,_0xc851x3){if(this[_0x221c[1179]][_0x221c[994]]()&&this[_0x221c[994]]()){var _0xc851x4=[_0xc851x2,_0xc851x3];this[_0x221c[2878]][_0x221c[209]](function(_0xc851x2,_0xc851x3){_0xc851x3[_0x221c[788]][_0x221c[183]](_0xc851x3,_0xc851x4)})}};mxSelectionCellsHandler[_0x221c[202]][_0x221c[789]]=function(_0xc851x2,_0xc851x3){if(this[_0x221c[1179]][_0x221c[994]]()&&this[_0x221c[994]]()){var _0xc851x4=[_0xc851x2,_0xc851x3];this[_0x221c[2878]][_0x221c[209]](function(_0xc851x2,_0xc851x3){_0xc851x3[_0x221c[789]][_0x221c[183]](_0xc851x3,_0xc851x4)})}};mxSelectionCellsHandler[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[1179]][_0x221c[1148]](this);null!=this[_0x221c[2731]]&&(this[_0x221c[1179]][_0x221c[2435]]()[_0x221c[745]](this[_0x221c[2731]]),this[_0x221c[1179]][_0x221c[502]]()[_0x221c[745]](this[_0x221c[2731]]),this[_0x221c[1179]][_0x221c[249]]()[_0x221c[745]](this[_0x221c[2731]]),this[_0x221c[2731]]=null)};function mxConnectionHandler(_0xc851x2,_0xc851x3){mxEventSource[_0x221c[239]](this);null!=_0xc851x2&&(this[_0x221c[1179]]=_0xc851x2,this[_0x221c[1033]]=_0xc851x3,this[_0x221c[176]]())}mxUtils[_0x221c[1284]](mxConnectionHandler,mxEventSource);mxConnectionHandler[_0x221c[202]][_0x221c[1179]]=null;mxConnectionHandler[_0x221c[202]][_0x221c[1033]]= !0;mxConnectionHandler[_0x221c[202]][_0x221c[2880]]= !1;mxConnectionHandler[_0x221c[202]][_0x221c[2881]]= !1;mxConnectionHandler[_0x221c[202]][_0x221c[2882]]=null;mxConnectionHandler[_0x221c[202]][_0x221c[2883]]= !1;mxConnectionHandler[_0x221c[202]][_0x221c[984]]= !0;mxConnectionHandler[_0x221c[202]][_0x221c[804]]= !0;mxConnectionHandler[_0x221c[202]][_0x221c[2884]]= !1;mxConnectionHandler[_0x221c[202]][_0x221c[2885]]=null;mxConnectionHandler[_0x221c[202]][_0x221c[2886]]=null;mxConnectionHandler[_0x221c[202]][_0x221c[267]]=null;mxConnectionHandler[_0x221c[202]][_0x221c[2887]]= !1;mxConnectionHandler[_0x221c[202]][_0x221c[2888]]= !0;mxConnectionHandler[_0x221c[202]][_0x221c[2889]]=500;mxConnectionHandler[_0x221c[202]][_0x221c[2890]]= !1;mxConnectionHandler[_0x221c[202]][_0x221c[2891]]= !1;mxConnectionHandler[_0x221c[202]][_0x221c[2892]]=4;mxConnectionHandler[_0x221c[202]][_0x221c[2893]]=0;mxConnectionHandler[_0x221c[202]][_0x221c[2894]]=0;mxConnectionHandler[_0x221c[202]][_0x221c[2895]]= !1;mxConnectionHandler[_0x221c[202]][_0x221c[2823]]=null;mxConnectionHandler[_0x221c[202]][_0x221c[2896]]= new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET);mxConnectionHandler[_0x221c[202]][_0x221c[2897]]=null;mxConnectionHandler[_0x221c[202]][_0x221c[1176]]=null;mxConnectionHandler[_0x221c[202]][_0x221c[2898]]=null;mxConnectionHandler[_0x221c[202]][_0x221c[2899]]=0;mxConnectionHandler[_0x221c[202]][_0x221c[2900]]=mxClient[_0x221c[47]];mxConnectionHandler[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxConnectionHandler[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxConnectionHandler[_0x221c[202]][_0x221c[2901]]=function(){return this[_0x221c[2884]]};mxConnectionHandler[_0x221c[202]][_0x221c[2902]]=function(_0xc851x2){this[_0x221c[2884]]=_0xc851x2};mxConnectionHandler[_0x221c[202]][_0x221c[2156]]=function(){var _0xc851x2= new mxPolyline([],mxConstants.INVALID_COLOR);_0xc851x2[_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]!=mxConstants[_0x221c[508]]?mxConstants[_0x221c[1523]]:mxConstants[_0x221c[508]];_0xc851x2[_0x221c[176]](this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1524]]());_0xc851x2[_0x221c[1564]]=0;_0xc851x2[_0x221c[1229]]= !1;_0xc851x2[_0x221c[1522]]= !0;if(this[_0x221c[1179]][_0x221c[507]]==mxConstants[_0x221c[508]]){_0xc851x2[_0x221c[252]][_0x221c[57]](_0x221c[1377],_0x221c[130])}else {var _0xc851x3=mxUtils[_0x221c[885]](this,function(_0xc851x2){_0xc851x2=mxUtils[_0x221c[2196]](this[_0x221c[1179]][_0x221c[526]],mxEvent[_0x221c[731]](_0xc851x2),mxEvent[_0x221c[733]](_0xc851x2));return this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](this[_0x221c[1179]][_0x221c[999]](_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]]))});mxEvent[_0x221c[2733]](_0xc851x2[_0x221c[252]],this[_0x221c[1179]],_0xc851x3)};return _0xc851x2};mxConnectionHandler[_0x221c[202]][_0x221c[176]]=function(){this[_0x221c[1179]][_0x221c[1133]](this);this[_0x221c[2885]]=this[_0x221c[1689]]();this[_0x221c[2886]]= new mxConstraintHandler(this[_0x221c[1179]]);this[_0x221c[1176]]=mxUtils[_0x221c[885]](this,function(_0xc851x2){null!=this[_0x221c[2903]]&&(this[_0x221c[2903]]=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](this[_0x221c[2903]][_0x221c[246]]));null!=this[_0x221c[2903]]?this[_0x221c[2905]](this[_0x221c[2904]],this[_0x221c[2903]]):(this[_0x221c[2906]](this[_0x221c[2904]]),this[_0x221c[257]]=null);this[_0x221c[2886]][_0x221c[862]]()});this[_0x221c[1179]][_0x221c[502]]()[_0x221c[169]](mxEvent.CHANGE,this[_0x221c[1176]]);this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.SCALE,this[_0x221c[1176]]);this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.TRANSLATE,this[_0x221c[1176]]);this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.SCALE_AND_TRANSLATE,this[_0x221c[1176]]);this[_0x221c[2898]]=mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[2906]](this[_0x221c[2904]])});this[_0x221c[1179]][_0x221c[169]](mxEvent.START_EDITING,this[_0x221c[2898]]);this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.DOWN,this[_0x221c[2898]]);this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.UP,this[_0x221c[2898]])};mxConnectionHandler[_0x221c[202]][_0x221c[2907]]=function(_0xc851x2){return !0};mxConnectionHandler[_0x221c[202]][_0x221c[1689]]=function(){var _0xc851x2= new mxCellMarker(this[_0x221c[1179]]);_0xc851x2[_0x221c[2859]]= !0;_0xc851x2[_0x221c[736]]=mxUtils[_0x221c[885]](this,function(_0xc851x3,_0xc851x4){_0xc851x4=mxCellMarker[_0x221c[202]][_0x221c[736]][_0x221c[183]](_0xc851x2,arguments);this[_0x221c[267]]=null;if(!this[_0x221c[2907]](_0xc851x4)){return null};null!=_0xc851x4?this[_0x221c[2908]]()?null!=this[_0x221c[257]]&&(this[_0x221c[267]]=this[_0x221c[2909]](this[_0x221c[257]][_0x221c[246]],_0xc851x4),null!=this[_0x221c[267]]&&0==this[_0x221c[267]][_0x221c[67]]&&(_0xc851x4=null,this[_0x221c[2901]]()&&(this[_0x221c[267]]=null))):this[_0x221c[2671]](_0xc851x4)||(_0xc851x4=null):this[_0x221c[2908]]()&&(!this[_0x221c[2901]]()&&!this[_0x221c[1179]][_0x221c[2406]])&&(this[_0x221c[267]]=_0x221c[110]);return _0xc851x4});_0xc851x2[_0x221c[2872]]=mxUtils[_0x221c[885]](this,function(_0xc851x3){return this[_0x221c[2908]]()?null==this[_0x221c[267]]:mxCellMarker[_0x221c[202]][_0x221c[2872]][_0x221c[183]](_0xc851x2,arguments)});_0xc851x2[_0x221c[2873]]=mxUtils[_0x221c[885]](this,function(_0xc851x3,_0xc851x4,_0xc851x5){return null==this[_0x221c[2882]]||this[_0x221c[2908]]()?mxCellMarker[_0x221c[202]][_0x221c[2873]][_0x221c[183]](_0xc851x2,arguments):null});_0xc851x2[_0x221c[1825]]=mxUtils[_0x221c[885]](this,function(_0xc851x3,_0xc851x4){return null!=this[_0x221c[2882]]||this[_0x221c[2908]]()?!0:mxCellMarker[_0x221c[202]][_0x221c[1825]][_0x221c[183]](_0xc851x2,arguments)});return _0xc851x2};mxConnectionHandler[_0x221c[202]][_0x221c[861]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[257]]=_0xc851x2;this[_0x221c[2823]]= new mxPoint(_0xc851x3,_0xc851x4);this[_0x221c[2897]]=null!=_0xc851x5?_0xc851x5:this[_0x221c[2910]](null);this[_0x221c[2885]][_0x221c[2860]]=this[_0x221c[2885]][_0x221c[2853]];this[_0x221c[2885]][_0x221c[2862]]=_0xc851x2;this[_0x221c[2885]][_0x221c[811]]();this[_0x221c[746]]( new mxEventObject(mxEvent.START,_0x221c[724],this[_0x221c[257]]))};mxConnectionHandler[_0x221c[202]][_0x221c[2908]]=function(){return null!=this[_0x221c[2823]]&&null!=this[_0x221c[253]]};mxConnectionHandler[_0x221c[202]][_0x221c[2671]]=function(_0xc851x2){return this[_0x221c[1179]][_0x221c[2671]](_0xc851x2)};mxConnectionHandler[_0x221c[202]][_0x221c[2672]]=function(_0xc851x2){return !0};mxConnectionHandler[_0x221c[202]][_0x221c[2909]]=function(_0xc851x2,_0xc851x3){return !this[_0x221c[2672]](_0xc851x3)?_0x221c[110]:this[_0x221c[1179]][_0x221c[2500]](null,_0xc851x2,_0xc851x3)};mxConnectionHandler[_0x221c[202]][_0x221c[2911]]=function(_0xc851x2){return this[_0x221c[2882]]};mxConnectionHandler[_0x221c[202]][_0x221c[2912]]=function(_0xc851x2){return null!=_0xc851x2[_0x221c[963]]&&_0xc851x2[_0x221c[963]][_0x221c[252]][_0x221c[265]]==this[_0x221c[1179]][_0x221c[526]]?!0:this[_0x221c[2880]]};mxConnectionHandler[_0x221c[202]][_0x221c[2913]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[2911]](_0xc851x2);if(null!=_0xc851x3&&null!=_0xc851x2){this[_0x221c[2903]]=_0xc851x2;var _0xc851x4=[],_0xc851x5= new mxRectangle(0,0,_0xc851x3[_0x221c[117]],_0xc851x3[_0x221c[119]]),_0xc851x9= new mxImageShape(_0xc851x5,_0xc851x3[_0x221c[390]],null,null,0);_0xc851x9[_0x221c[1674]]= !1;this[_0x221c[2912]](_0xc851x2)?(_0xc851x9[_0x221c[507]]=mxConstants[_0x221c[1656]],_0xc851x9[_0x221c[176]](this[_0x221c[1179]][_0x221c[526]])):(_0xc851x9[_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]==mxConstants[_0x221c[508]]?mxConstants[_0x221c[508]]:mxConstants[_0x221c[1523]],_0xc851x9[_0x221c[176]](this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1524]]()),this[_0x221c[2881]]&&null!=_0xc851x9[_0x221c[252]][_0x221c[328]]&&_0xc851x9[_0x221c[252]][_0x221c[265]][_0x221c[950]](_0xc851x9[_0x221c[252]],_0xc851x9[_0x221c[252]][_0x221c[265]][_0x221c[285]]));_0xc851x9[_0x221c[252]][_0x221c[124]][_0x221c[270]]=mxConstants[_0x221c[2914]];var _0xc851xa=mxUtils[_0x221c[885]](this,function(){return null!=this[_0x221c[2915]]?this[_0x221c[2915]]:_0xc851x2}),_0xc851x3=mxUtils[_0x221c[885]](this,function(_0xc851x2){mxEvent[_0x221c[721]](_0xc851x2)||(this[_0x221c[2916]]=_0xc851x9,this[_0x221c[1179]][_0x221c[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xc851x2,_0xc851xa())))});mxEvent[_0x221c[2733]](_0xc851x9[_0x221c[252]],this[_0x221c[1179]],_0xc851xa,_0xc851x3);_0xc851x4[_0x221c[207]](_0xc851x9);this[_0x221c[2905]](_0xc851x4,this[_0x221c[2903]]);return _0xc851x4};return null};mxConnectionHandler[_0x221c[202]][_0x221c[2905]]=function(_0xc851x2,_0xc851x3){if(null!=_0xc851x2&&null!=_0xc851x2[0]&&null!=_0xc851x3){var _0xc851x4=this[_0x221c[2917]](_0xc851x2[0],_0xc851x3);_0xc851x2[0][_0x221c[1562]][_0x221c[235]]=_0xc851x4[_0x221c[235]];_0xc851x2[0][_0x221c[1562]][_0x221c[236]]=_0xc851x4[_0x221c[236]];_0xc851x2[0][_0x221c[258]]()}};mxConnectionHandler[_0x221c[202]][_0x221c[2917]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]],_0xc851x5=_0xc851x3[_0x221c[241]](),_0xc851x9=_0xc851x3[_0x221c[242]]();if(this[_0x221c[1179]][_0x221c[1730]](_0xc851x3[_0x221c[246]])){var _0xc851xa=this[_0x221c[1179]][_0x221c[1731]](_0xc851x3[_0x221c[246]]),_0xc851x5=0!=_0xc851xa[_0x221c[117]]?_0xc851x3[_0x221c[235]]+_0xc851xa[_0x221c[117]]*_0xc851x4/2:_0xc851x5,_0xc851x9=0!=_0xc851xa[_0x221c[119]]?_0xc851x3[_0x221c[236]]+_0xc851xa[_0x221c[119]]*_0xc851x4/2:_0xc851x9,_0xc851xa=mxUtils[_0x221c[431]](mxUtils[_0x221c[433]](_0xc851x3[_0x221c[124]],mxConstants.STYLE_ROTATION)||0);if(0!=_0xc851xa){var _0xc851x4=Math[_0x221c[426]](_0xc851xa),_0xc851xa=Math[_0x221c[427]](_0xc851xa),_0xc851x12= new mxPoint(_0xc851x3[_0x221c[241]](),_0xc851x3[_0x221c[242]]()),_0xc851x9=mxUtils[_0x221c[432]]( new mxPoint(_0xc851x5,_0xc851x9),_0xc851x4,_0xc851xa,_0xc851x12),_0xc851x5=_0xc851x9[_0x221c[235]],_0xc851x9=_0xc851x9[_0x221c[236]]}};return  new mxPoint(_0xc851x5-_0xc851x2[_0x221c[1562]][_0x221c[117]]/2,_0xc851x9-_0xc851x2[_0x221c[1562]][_0x221c[119]]/2)};mxConnectionHandler[_0x221c[202]][_0x221c[2906]]=function(_0xc851x2){if(null!=_0xc851x2){this[_0x221c[2903]]=null;for(var _0xc851x3=0;_0xc851x3<_0xc851x2[_0x221c[67]];_0xc851x3++){_0xc851x2[_0xc851x3][_0x221c[515]]()}}};mxConnectionHandler[_0x221c[202]][_0x221c[2918]]=function(_0xc851x2){return !this[_0x221c[1179]][_0x221c[2579]](_0xc851x2[_0x221c[727]]())&&(null!=this[_0x221c[2886]][_0x221c[2919]]&&null!=this[_0x221c[2886]][_0x221c[2920]]||null!=this[_0x221c[257]]&&null==this[_0x221c[267]]&&(null==this[_0x221c[2904]]||null!=this[_0x221c[2904]]&&null!=this[_0x221c[2916]]))};mxConnectionHandler[_0x221c[202]][_0x221c[787]]=function(_0xc851x2,_0xc851x3){this[_0x221c[2899]]++;if(this[_0x221c[994]]()&&this[_0x221c[1179]][_0x221c[994]]()&&!_0xc851x3[_0x221c[721]]()&&!this[_0x221c[2908]]()&&this[_0x221c[2918]](_0xc851x3)){null!=this[_0x221c[2886]][_0x221c[2920]]&&null!=this[_0x221c[2886]][_0x221c[2919]]&&null!=this[_0x221c[2886]][_0x221c[987]]?(this[_0x221c[2921]]=this[_0x221c[2886]][_0x221c[2920]],this[_0x221c[257]]=this[_0x221c[2886]][_0x221c[2919]],this[_0x221c[2823]]=this[_0x221c[2886]][_0x221c[987]][_0x221c[238]]()):this[_0x221c[2823]]= new mxPoint(_0xc851x3[_0x221c[734]](),_0xc851x3[_0x221c[735]]());this[_0x221c[2897]]=this[_0x221c[2910]](_0xc851x3);this[_0x221c[2899]]=1;this[_0x221c[2887]]&&null==this[_0x221c[253]]&&(this[_0x221c[2922]]=null,this[_0x221c[253]]=this[_0x221c[2156]]());if(null==this[_0x221c[257]]&&null!=this[_0x221c[2897]]){var _0xc851x4=this[_0x221c[1179]][_0x221c[2689]](_0xc851x3[_0x221c[727]]());this[_0x221c[2897]][_0x221c[246]][_0x221c[256]][_0x221c[2007]](_0xc851x4,!0)};this[_0x221c[746]]( new mxEventObject(mxEvent.START,_0x221c[724],this[_0x221c[257]]));_0xc851x3[_0x221c[722]]()}else {if(mxClient[_0x221c[754]]&&this[_0x221c[2888]]&&!this[_0x221c[2890]]&&this[_0x221c[994]]()&&this[_0x221c[1179]][_0x221c[994]]()&&!this[_0x221c[2908]]()){this[_0x221c[2890]]= !0;this[_0x221c[2893]]=_0xc851x3[_0x221c[730]]();this[_0x221c[2894]]=_0xc851x3[_0x221c[732]]();var _0xc851x5=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](this[_0x221c[2885]][_0x221c[736]](_0xc851x3));this[_0x221c[2923]]&&window[_0x221c[2924]](this[_0x221c[2923]]);this[_0x221c[2923]]=window[_0x221c[261]](mxUtils[_0x221c[885]](this,function(){this[_0x221c[2891]]&&this[_0x221c[2925]](_0xc851x3,_0xc851x5);this[_0x221c[2891]]=this[_0x221c[2890]]= !1}),this[_0x221c[2889]]);this[_0x221c[2891]]= !0}};this[_0x221c[2926]]=this[_0x221c[2916]];this[_0x221c[2916]]=null};mxConnectionHandler[_0x221c[202]][_0x221c[2925]]=function(_0xc851x2,_0xc851x3){null!=_0xc851x3&&(this[_0x221c[2885]][_0x221c[2860]]=this[_0x221c[2885]][_0x221c[2853]],this[_0x221c[2885]][_0x221c[2862]]=_0xc851x3,this[_0x221c[2885]][_0x221c[811]](),this[_0x221c[2823]]= new mxPoint(_0xc851x2[_0x221c[734]](),_0xc851x2[_0x221c[735]]()),this[_0x221c[2897]]=this[_0x221c[2910]](_0xc851x2),this[_0x221c[257]]=_0xc851x3,this[_0x221c[746]]( new mxEventObject(mxEvent.START,_0x221c[724],this[_0x221c[257]])))};mxConnectionHandler[_0x221c[202]][_0x221c[2927]]=function(_0xc851x2){return !this[_0x221c[1179]][_0x221c[1712]](_0xc851x2[_0x221c[246]])};mxConnectionHandler[_0x221c[202]][_0x221c[2910]]=function(_0xc851x2){return null};mxConnectionHandler[_0x221c[202]][_0x221c[2928]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[2885]][_0x221c[2871]](_0xc851x2);this[_0x221c[2886]][_0x221c[2729]](_0xc851x2,null==this[_0x221c[2823]]);this[_0x221c[2915]]=_0xc851x3};mxConnectionHandler[_0x221c[202]][_0x221c[2929]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[518]](),_0xc851x4=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[512]]();_0xc851x2[_0x221c[235]]=_0xc851x2[_0x221c[235]]/_0xc851x3-_0xc851x4[_0x221c[235]];_0xc851x2[_0x221c[236]]=_0xc851x2[_0x221c[236]]/_0xc851x3-_0xc851x4[_0x221c[236]]};mxConnectionHandler[_0x221c[202]][_0x221c[788]]=function(_0xc851x2,_0xc851x3){this[_0x221c[2891]]&&(this[_0x221c[2891]]=Math[_0x221c[425]](this[_0x221c[2893]]-_0xc851x3[_0x221c[730]]())<this[_0x221c[2892]]&&Math[_0x221c[425]](this[_0x221c[2894]]-_0xc851x3[_0x221c[732]]())<this[_0x221c[2892]]);if(!_0xc851x3[_0x221c[721]]()&&(this[_0x221c[2895]]||null!=this[_0x221c[2823]]||!this[_0x221c[1179]][_0x221c[1009]])){!this[_0x221c[994]]()&&null!=this[_0x221c[2915]]&&(this[_0x221c[2906]](this[_0x221c[2904]]),this[_0x221c[2915]]=null);(null!=this[_0x221c[2823]]||this[_0x221c[994]]()&&this[_0x221c[1179]][_0x221c[994]]())&&this[_0x221c[2928]](_0xc851x3);if(null!=this[_0x221c[2823]]){var _0xc851x4=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]],_0xc851x4= new mxPoint(this[_0x221c[1179]][_0x221c[1021]](_0xc851x3[_0x221c[734]]()/_0xc851x4)*_0xc851x4,this[_0x221c[1179]][_0x221c[1021]](_0xc851x3[_0x221c[735]]()/_0xc851x4)*_0xc851x4),_0xc851x5=null,_0xc851x9=_0xc851x4;null!=this[_0x221c[2886]][_0x221c[2920]]&&(null!=this[_0x221c[2886]][_0x221c[2919]]&&null!=this[_0x221c[2886]][_0x221c[987]])&&(_0xc851x5=this[_0x221c[2886]][_0x221c[2920]],_0xc851x9=this[_0x221c[2886]][_0x221c[987]][_0x221c[238]]());var _0xc851xa=this[_0x221c[2823]];if(null!=this[_0x221c[2926]]){var _0xc851x12=this[_0x221c[2926]][_0x221c[1562]][_0x221c[117]],_0xc851x13=this[_0x221c[2926]][_0x221c[1562]][_0x221c[119]];null!=this[_0x221c[2915]]&&this[_0x221c[2883]]?(_0xc851x12=this[_0x221c[2917]](this[_0x221c[2926]],this[_0x221c[2915]]),this[_0x221c[2926]][_0x221c[1562]][_0x221c[235]]=_0xc851x12[_0x221c[235]],this[_0x221c[2926]][_0x221c[1562]][_0x221c[236]]=_0xc851x12[_0x221c[236]]):(_0xc851x12= new mxRectangle(_0xc851x3[_0x221c[734]]()+this[_0x221c[2896]][_0x221c[235]],_0xc851x3[_0x221c[735]]()+this[_0x221c[2896]][_0x221c[236]],_0xc851x12,_0xc851x13),this[_0x221c[2926]][_0x221c[1562]]=_0xc851x12);this[_0x221c[2926]][_0x221c[258]]()};if(null!=this[_0x221c[2897]]){this[_0x221c[2897]][_0x221c[439]]=[null,null!=this[_0x221c[2915]]?null:_0xc851x9];this[_0x221c[1179]][_0x221c[441]][_0x221c[2289]](this[_0x221c[2897]],this[_0x221c[257]],!0,this[_0x221c[2921]]);null!=this[_0x221c[2915]]&&(null==_0xc851x5&&(_0xc851x5=this[_0x221c[1179]][_0x221c[2288]](this[_0x221c[2897]],this[_0x221c[257]],!1)),this[_0x221c[2897]][_0x221c[2088]](null,!1),this[_0x221c[1179]][_0x221c[441]][_0x221c[2289]](this[_0x221c[2897]],this[_0x221c[2915]],!1,_0xc851x5));_0xc851xa=null;if(null!=this[_0x221c[2922]]){_0xc851xa=[];for(_0xc851x9=0;_0xc851x9<this[_0x221c[2922]][_0x221c[67]];_0xc851x9++){_0xc851x5=this[_0x221c[2922]][_0xc851x9][_0x221c[238]](),this[_0x221c[2929]](_0xc851x5),_0xc851xa[_0xc851x9]=_0xc851x5}};this[_0x221c[1179]][_0x221c[441]][_0x221c[2282]](this[_0x221c[2897]],_0xc851xa,this[_0x221c[257]],this[_0x221c[2915]]);this[_0x221c[1179]][_0x221c[441]][_0x221c[2283]](this[_0x221c[2897]],this[_0x221c[257]],this[_0x221c[2915]]);_0xc851x9=this[_0x221c[2897]][_0x221c[439]][this[_0x221c[2897]][_0x221c[439]][_0x221c[67]]-1];_0xc851xa=this[_0x221c[2897]][_0x221c[439]][0]}else {null!=this[_0x221c[2915]]&&null==this[_0x221c[2886]][_0x221c[2920]]&&(_0xc851x12=this[_0x221c[2930]](this[_0x221c[2915]],_0xc851x3),null!=_0xc851x12&&(_0xc851x9=_0xc851x12)),null==this[_0x221c[2921]]&&null!=this[_0x221c[257]]&&(_0xc851x12=this[_0x221c[2931]](this[_0x221c[257]],null!=this[_0x221c[2922]]&&0<this[_0x221c[2922]][_0x221c[67]]?this[_0x221c[2922]][0]:_0xc851x9,_0xc851x3),null!=_0xc851x12&&(_0xc851xa=_0xc851x12))};if(null==this[_0x221c[2915]]&&this[_0x221c[2900]]){_0xc851x12=_0xc851xa;null!=this[_0x221c[2897]]&&2<this[_0x221c[2897]][_0x221c[439]][_0x221c[67]]&&(_0xc851x5=this[_0x221c[2897]][_0x221c[439]][this[_0x221c[2897]][_0x221c[439]][_0x221c[67]]-2],null!=_0xc851x5&&(_0xc851x12=_0xc851x5));_0xc851x5=_0xc851x9[_0x221c[235]]-_0xc851x12[_0x221c[235]];_0xc851x12=_0xc851x9[_0x221c[236]]-_0xc851x12[_0x221c[236]];_0xc851x13=Math[_0x221c[428]](_0xc851x5*_0xc851x5+_0xc851x12*_0xc851x12);if(0==_0xc851x13){return};_0xc851x9[_0x221c[235]]-=4*_0xc851x5/_0xc851x13;_0xc851x9[_0x221c[236]]-=4*_0xc851x12/_0xc851x13};if(null==this[_0x221c[253]]&&(_0xc851x5=Math[_0x221c[425]](_0xc851x4[_0x221c[235]]-this[_0x221c[2823]][_0x221c[235]]),_0xc851x12=Math[_0x221c[425]](_0xc851x4[_0x221c[236]]-this[_0x221c[2823]][_0x221c[236]]),_0xc851x5>this[_0x221c[1179]][_0x221c[2353]]||_0xc851x12>this[_0x221c[1179]][_0x221c[2353]])){this[_0x221c[253]]=this[_0x221c[2156]](),this[_0x221c[2928]](_0xc851x3)};null!=this[_0x221c[253]]&&(null!=this[_0x221c[2897]]?this[_0x221c[253]][_0x221c[1525]]=this[_0x221c[2897]][_0x221c[439]]:(_0xc851x4=[_0xc851xa],null!=this[_0x221c[2922]]&&(_0xc851x4=_0xc851x4[_0x221c[1919]](this[_0x221c[2922]])),_0xc851x4[_0x221c[207]](_0xc851x9),this[_0x221c[253]][_0x221c[1525]]=_0xc851x4),this[_0x221c[2932]]());mxEvent[_0x221c[722]](_0xc851x3[_0x221c[727]]());_0xc851x3[_0x221c[722]]()}else {!this[_0x221c[994]]()||!this[_0x221c[1179]][_0x221c[994]]()?this[_0x221c[2886]][_0x221c[862]]():this[_0x221c[257]]!=this[_0x221c[2915]]&&null==this[_0x221c[2897]]?(this[_0x221c[2906]](this[_0x221c[2904]]),this[_0x221c[2904]]=null,null!=this[_0x221c[2915]]&&null==this[_0x221c[267]]&&(this[_0x221c[2904]]=this[_0x221c[2913]](this[_0x221c[2915]]),null==this[_0x221c[2904]]&&(this[_0x221c[2915]][_0x221c[1609]](mxConstants.CURSOR_CONNECT),_0xc851x3[_0x221c[722]]())),this[_0x221c[257]]=this[_0x221c[2915]]):this[_0x221c[257]]==this[_0x221c[2915]]&&(null!=this[_0x221c[2915]]&&null==this[_0x221c[2904]]&&!this[_0x221c[1179]][_0x221c[1009]])&&_0xc851x3[_0x221c[722]]()};null!=this[_0x221c[2886]][_0x221c[2920]]&&this[_0x221c[2885]][_0x221c[862]]();if(!this[_0x221c[1179]][_0x221c[1009]]&&null!=this[_0x221c[2915]]&&null!=this[_0x221c[2904]]){_0xc851x4= !1;_0xc851xa=_0xc851x3[_0x221c[728]]();for(_0xc851x9=0;_0xc851x9<this[_0x221c[2904]][_0x221c[67]]&& !_0xc851x4;_0xc851x9++){_0xc851x4=_0xc851xa==this[_0x221c[2904]][_0xc851x9][_0x221c[252]]||_0xc851xa[_0x221c[265]]==this[_0x221c[2904]][_0xc851x9][_0x221c[252]]};_0xc851x4||this[_0x221c[2933]](this[_0x221c[2915]],this[_0x221c[2904]],_0xc851x3)}}else {this[_0x221c[2886]][_0x221c[862]]()}};mxConnectionHandler[_0x221c[202]][_0x221c[2930]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=null,_0xc851x5=_0xc851x2[_0x221c[441]],_0xc851x9=_0xc851x5[_0x221c[2305]](_0xc851x2);if(null!=_0xc851x9){var _0xc851xa=null!=this[_0x221c[2922]]&&0<this[_0x221c[2922]][_0x221c[67]]?this[_0x221c[2922]][this[_0x221c[2922]][_0x221c[67]]-1]: new mxPoint(this[_0x221c[257]][_0x221c[241]](),this[_0x221c[257]][_0x221c[242]]()),_0xc851x5=_0xc851x9(_0xc851x5[_0x221c[2087]](_0xc851x2),this[_0x221c[2897]],_0xc851xa,!1);null!=_0xc851x5&&(_0xc851x4=_0xc851x5)}else {_0xc851x4= new mxPoint(_0xc851x2[_0x221c[241]](),_0xc851x2[_0x221c[242]]())};return _0xc851x4};mxConnectionHandler[_0x221c[202]][_0x221c[2931]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x4=null;var _0xc851x5=_0xc851x2[_0x221c[441]],_0xc851x9=_0xc851x5[_0x221c[2305]](_0xc851x2),_0xc851xa= new mxPoint(_0xc851x2[_0x221c[241]](),_0xc851x2[_0x221c[242]]());if(null!=_0xc851x9){var _0xc851x12=mxUtils[_0x221c[433]](_0xc851x2[_0x221c[124]],mxConstants.STYLE_ROTATION,0),_0xc851x13=-_0xc851x12*(Math[_0x221c[424]]/180);0!=_0xc851x12&&(_0xc851x3=mxUtils[_0x221c[432]]( new mxPoint(_0xc851x3[_0x221c[235]],_0xc851x3[_0x221c[236]]),Math[_0x221c[426]](_0xc851x13),Math[_0x221c[427]](_0xc851x13),_0xc851xa));_0xc851x2=_0xc851x9(_0xc851x5[_0x221c[2087]](_0xc851x2),_0xc851x2,_0xc851x3,!1);null!=_0xc851x2&&(0!=_0xc851x12&&(_0xc851x2=mxUtils[_0x221c[432]]( new mxPoint(_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]]),Math[_0x221c[426]](-_0xc851x13),Math[_0x221c[427]](-_0xc851x13),_0xc851xa)),_0xc851x4=_0xc851x2)}else {_0xc851x4=_0xc851xa};return _0xc851x4};mxConnectionHandler[_0x221c[202]][_0x221c[2933]]=function(_0xc851x2,_0xc851x3,_0xc851x4){};mxConnectionHandler[_0x221c[202]][_0x221c[2934]]=function(_0xc851x2){return null!=_0xc851x2[_0x221c[248]]()};mxConnectionHandler[_0x221c[202]][_0x221c[2935]]=function(_0xc851x2){var _0xc851x3=mxUtils[_0x221c[2196]](this[_0x221c[1179]][_0x221c[526]],_0xc851x2[_0x221c[730]](),_0xc851x2[_0x221c[732]]()),_0xc851x4=Math[_0x221c[425]](_0xc851x3[_0x221c[235]]-this[_0x221c[2823]][_0x221c[235]]),_0xc851x3=Math[_0x221c[425]](_0xc851x3[_0x221c[236]]-this[_0x221c[2823]][_0x221c[236]]);if(null!=this[_0x221c[2922]]||1<this[_0x221c[2899]]&&(_0xc851x4>this[_0x221c[1179]][_0x221c[2353]]||_0xc851x3>this[_0x221c[1179]][_0x221c[2353]])){null==this[_0x221c[2922]]&&(this[_0x221c[2922]]=[]),_0xc851x4=this[_0x221c[1179]][_0x221c[441]][_0x221c[255]],_0xc851x3= new mxPoint(this[_0x221c[1179]][_0x221c[1021]](_0xc851x2[_0x221c[734]]()/_0xc851x4)*_0xc851x4,this[_0x221c[1179]][_0x221c[1021]](_0xc851x2[_0x221c[735]]()/_0xc851x4)*_0xc851x4),this[_0x221c[2922]][_0x221c[207]](_0xc851x3)}};mxConnectionHandler[_0x221c[202]][_0x221c[789]]=function(_0xc851x2,_0xc851x3){if(!_0xc851x3[_0x221c[721]]()&&this[_0x221c[2908]]()){if(this[_0x221c[2887]]&&!this[_0x221c[2934]](_0xc851x3)){this[_0x221c[2935]](_0xc851x3);_0xc851x3[_0x221c[722]]();return};if(null==this[_0x221c[267]]){var _0xc851x4=null!=this[_0x221c[257]]?this[_0x221c[257]][_0x221c[246]]:null,_0xc851x5=null;null!=this[_0x221c[2886]][_0x221c[2920]]&&null!=this[_0x221c[2886]][_0x221c[2919]]&&(_0xc851x5=this[_0x221c[2886]][_0x221c[2919]][_0x221c[246]]);null==_0xc851x5&&this[_0x221c[2885]][_0x221c[2867]]()&&(_0xc851x5=this[_0x221c[2885]][_0x221c[2861]][_0x221c[246]]);this[_0x221c[807]](_0xc851x4,_0xc851x5,_0xc851x3[_0x221c[727]](),_0xc851x3[_0x221c[736]]())}else {null!=this[_0x221c[257]]&&(null!=this[_0x221c[2885]][_0x221c[2861]]&&this[_0x221c[257]][_0x221c[246]]==this[_0x221c[2885]][_0x221c[2861]][_0x221c[246]])&&this[_0x221c[1179]][_0x221c[2459]](this[_0x221c[2885]][_0x221c[1097]],evt),0<this[_0x221c[267]][_0x221c[67]]&&this[_0x221c[1179]][_0x221c[2580]](this[_0x221c[267]])};this[_0x221c[2906]](this[_0x221c[2904]]);_0xc851x3[_0x221c[722]]()};null!=this[_0x221c[2823]]&&this[_0x221c[862]]();this[_0x221c[2891]]=this[_0x221c[2890]]= !1};mxConnectionHandler[_0x221c[202]][_0x221c[862]]=function(){null!=this[_0x221c[253]]&&(this[_0x221c[253]][_0x221c[515]](),this[_0x221c[253]]=null);this[_0x221c[2906]](this[_0x221c[2904]]);this[_0x221c[2904]]=null;this[_0x221c[2885]][_0x221c[862]]();this[_0x221c[2886]][_0x221c[862]]();this[_0x221c[2921]]=this[_0x221c[267]]=this[_0x221c[257]]=this[_0x221c[2897]]=this[_0x221c[2926]]=null;this[_0x221c[2899]]=0;this[_0x221c[2916]]=this[_0x221c[2823]]=null;this[_0x221c[746]]( new mxEventObject(mxEvent.RESET))};mxConnectionHandler[_0x221c[202]][_0x221c[2932]]=function(){var _0xc851x2=null==this[_0x221c[267]];this[_0x221c[253]][_0x221c[1307]]=this[_0x221c[2936]](_0xc851x2);_0xc851x2=this[_0x221c[2937]](_0xc851x2);this[_0x221c[253]][_0x221c[1336]]=_0xc851x2;this[_0x221c[253]][_0x221c[258]]()};mxConnectionHandler[_0x221c[202]][_0x221c[2937]]=function(_0xc851x2){return _0xc851x2?mxConstants[_0x221c[2829]]:mxConstants[_0x221c[2938]]};mxConnectionHandler[_0x221c[202]][_0x221c[2936]]=function(_0xc851x2){return _0xc851x2?3:1};mxConnectionHandler[_0x221c[202]][_0x221c[807]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(null!=_0xc851x3||this[_0x221c[2901]]()||this[_0x221c[1179]][_0x221c[2406]]){var _0xc851x9=this[_0x221c[1179]][_0x221c[502]](),_0xc851xa=null;_0xc851x9[_0x221c[473]]();try{if(null!=_0xc851x2&&(null==_0xc851x3&&this[_0x221c[2901]]())&&(_0xc851x3=this[_0x221c[2939]](_0xc851x4,_0xc851x2),null!=_0xc851x3)){_0xc851x5=this[_0x221c[1179]][_0x221c[564]]([_0xc851x3],_0xc851x4,_0xc851x5);if(null==_0xc851x5||!this[_0x221c[1179]][_0x221c[502]]()[_0x221c[250]](_0xc851x5)){var _0xc851x12=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](_0xc851x5);if(null!=_0xc851x12){var _0xc851x13=_0xc851x9[_0x221c[1721]](_0xc851x3);_0xc851x13[_0x221c[235]]-=_0xc851x12[_0x221c[2078]][_0x221c[235]];_0xc851x13[_0x221c[236]]-=_0xc851x12[_0x221c[2078]][_0x221c[236]]}}else {_0xc851x5=this[_0x221c[1179]][_0x221c[902]]()};this[_0x221c[1179]][_0x221c[2103]](_0xc851x3,_0xc851x5)};var _0xc851x14=this[_0x221c[1179]][_0x221c[902]]();null!=_0xc851x2&&(null!=_0xc851x3&&_0xc851x9[_0x221c[1197]](_0xc851x2)==_0xc851x9[_0x221c[1197]](_0xc851x3)&&_0xc851x9[_0x221c[1197]](_0xc851x9[_0x221c[1197]](_0xc851x2))!=_0xc851x9[_0x221c[501]]())&&(_0xc851x14=_0xc851x9[_0x221c[1197]](_0xc851x2),null!=_0xc851x2[_0x221c[256]]&&_0xc851x2[_0x221c[256]][_0x221c[1500]]&&(null!=_0xc851x3[_0x221c[256]]&&_0xc851x3[_0x221c[256]][_0x221c[1500]])&&(_0xc851x14=_0xc851x9[_0x221c[1197]](_0xc851x14)));_0xc851x13=_0xc851x12=null;null!=this[_0x221c[2897]]&&(_0xc851x12=this[_0x221c[2897]][_0x221c[246]][_0x221c[131]],_0xc851x13=this[_0x221c[2897]][_0x221c[246]][_0x221c[124]]);_0xc851xa=this[_0x221c[1960]](_0xc851x14,null,_0xc851x12,_0xc851x2,_0xc851x3,_0xc851x13);if(null!=_0xc851xa){this[_0x221c[1179]][_0x221c[2545]](_0xc851xa,_0xc851x2,!0,this[_0x221c[2921]]);this[_0x221c[1179]][_0x221c[2545]](_0xc851xa,_0xc851x3,!1,this[_0x221c[2886]][_0x221c[2920]]);null!=this[_0x221c[2897]]&&_0xc851x9[_0x221c[1724]](_0xc851xa,this[_0x221c[2897]][_0x221c[246]][_0x221c[256]]);var _0xc851x15=_0xc851x9[_0x221c[1721]](_0xc851xa);null==_0xc851x15&&(_0xc851x15= new mxGeometry,_0xc851x15[_0x221c[1500]]= !0,_0xc851x9[_0x221c[1724]](_0xc851xa,_0xc851x15));if(null!=this[_0x221c[2922]]&&0<this[_0x221c[2922]][_0x221c[67]]){var _0xc851x16=this[_0x221c[1179]][_0x221c[441]][_0x221c[255]],_0xc851x17=this[_0x221c[1179]][_0x221c[441]][_0x221c[513]];_0xc851x15[_0x221c[1525]]=[];for(_0xc851x2=0;_0xc851x2<this[_0x221c[2922]][_0x221c[67]];_0xc851x2++){var _0xc851x18=this[_0x221c[2922]][_0xc851x2];_0xc851x15[_0x221c[1525]][_0x221c[207]]( new mxPoint(_0xc851x18[_0x221c[235]]/_0xc851x16-_0xc851x17[_0x221c[235]],_0xc851x18[_0x221c[236]]/_0xc851x16-_0xc851x17[_0x221c[236]]))}};null==_0xc851x3&&(_0xc851x18=this[_0x221c[1179]][_0x221c[2689]](_0xc851x4,!1),_0xc851x18[_0x221c[235]]-=this[_0x221c[1179]][_0x221c[1136]]/this[_0x221c[1179]][_0x221c[441]][_0x221c[255]],_0xc851x18[_0x221c[236]]-=this[_0x221c[1179]][_0x221c[1137]]/this[_0x221c[1179]][_0x221c[441]][_0x221c[255]],_0xc851x15[_0x221c[2007]](_0xc851x18,!1));this[_0x221c[746]]( new mxEventObject(mxEvent.CONNECT,_0x221c[246],_0xc851xa,_0x221c[763],_0xc851x4,_0x221c[772],_0xc851x5))}}catch(q){mxLog[_0x221c[539]](),mxLog[_0x221c[143]](q[_0x221c[281]])}finally{_0xc851x9[_0x221c[476]]()};this[_0x221c[804]]&&this[_0x221c[2707]](_0xc851xa,_0xc851x3)}};mxConnectionHandler[_0x221c[202]][_0x221c[2707]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1179]][_0x221c[2450]](_0xc851x2)};mxConnectionHandler[_0x221c[202]][_0x221c[1960]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){if(null==this[_0x221c[1033]]){return this[_0x221c[1179]][_0x221c[1960]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa)};_0xc851x3=this[_0x221c[2503]](_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa);return _0xc851x3=this[_0x221c[1179]][_0x221c[2504]](_0xc851x3,_0xc851x2,_0xc851x5,_0xc851x9)};mxConnectionHandler[_0x221c[202]][_0x221c[2939]]=function(_0xc851x2,_0xc851x3){for(var _0xc851x4=this[_0x221c[1179]][_0x221c[1198]](_0xc851x3);null!=_0xc851x4&&_0xc851x4[_0x221c[1500]];){_0xc851x3=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1197]](_0xc851x3),_0xc851x4=this[_0x221c[1179]][_0x221c[1198]](_0xc851x3)};var _0xc851x5=this[_0x221c[1179]][_0x221c[899]]([_0xc851x3])[0],_0xc851x4=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1721]](_0xc851x5);if(null!=_0xc851x4){var _0xc851x9=this[_0x221c[1179]][_0x221c[2689]](_0xc851x2);_0xc851x4[_0x221c[235]]=this[_0x221c[1179]][_0x221c[1021]](_0xc851x9[_0x221c[235]]-_0xc851x4[_0x221c[117]]/2)-this[_0x221c[1179]][_0x221c[1136]]/this[_0x221c[1179]][_0x221c[441]][_0x221c[255]];_0xc851x4[_0x221c[236]]=this[_0x221c[1179]][_0x221c[1021]](_0xc851x9[_0x221c[236]]-_0xc851x4[_0x221c[119]]/2)-this[_0x221c[1179]][_0x221c[1137]]/this[_0x221c[1179]][_0x221c[441]][_0x221c[255]];if(null!=this[_0x221c[2823]]){var _0xc851xa=this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x3);if(null!=_0xc851xa){var _0xc851x12=this[_0x221c[2940]]();Math[_0x221c[425]](this[_0x221c[1179]][_0x221c[1021]](this[_0x221c[2823]][_0x221c[235]])-this[_0x221c[1179]][_0x221c[1021]](_0xc851x9[_0x221c[235]]))<=_0xc851x12?_0xc851x4[_0x221c[235]]=_0xc851xa[_0x221c[235]]:Math[_0x221c[425]](this[_0x221c[1179]][_0x221c[1021]](this[_0x221c[2823]][_0x221c[236]])-this[_0x221c[1179]][_0x221c[1021]](_0xc851x9[_0x221c[236]]))<=_0xc851x12&&(_0xc851x4[_0x221c[236]]=_0xc851xa[_0x221c[236]])}}};return _0xc851x5};mxConnectionHandler[_0x221c[202]][_0x221c[2940]]=function(){return this[_0x221c[1179]][_0x221c[997]]()?this[_0x221c[1179]][_0x221c[1020]]:this[_0x221c[1179]][_0x221c[2353]]};mxConnectionHandler[_0x221c[202]][_0x221c[2503]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=null;null!=this[_0x221c[1033]]&&(_0xc851x9=this[_0x221c[1033]](_0xc851x3,_0xc851x4,_0xc851x5));null==_0xc851x9&&(_0xc851x9= new mxCell(_0xc851x2||_0x221c[110]),_0xc851x9[_0x221c[1994]](!0),_0xc851x9[_0x221c[475]](_0xc851x5),_0xc851x2= new mxGeometry,_0xc851x2[_0x221c[1500]]= !0,_0xc851x9[_0x221c[1724]](_0xc851x2));return _0xc851x9};mxConnectionHandler[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[1179]][_0x221c[1148]](this);null!=this[_0x221c[253]]&&(this[_0x221c[253]][_0x221c[515]](),this[_0x221c[253]]=null);null!=this[_0x221c[2885]]&&(this[_0x221c[2885]][_0x221c[515]](),this[_0x221c[2885]]=null);null!=this[_0x221c[2886]]&&(this[_0x221c[2886]][_0x221c[515]](),this[_0x221c[2886]]=null);null!=this[_0x221c[1176]]&&(this[_0x221c[1179]][_0x221c[502]]()[_0x221c[745]](this[_0x221c[1176]]),this[_0x221c[1179]][_0x221c[249]]()[_0x221c[745]](this[_0x221c[1176]]),this[_0x221c[1176]]=null);null!=this[_0x221c[2898]]&&(this[_0x221c[1179]][_0x221c[745]](this[_0x221c[2898]]),this[_0x221c[1179]][_0x221c[249]]()[_0x221c[745]](this[_0x221c[2898]]),this[_0x221c[2898]]=null)};function mxConstraintHandler(_0xc851x2){this[_0x221c[1179]]=_0xc851x2}mxConstraintHandler[_0x221c[202]][_0x221c[2941]]= new mxImage(mxClient[_0x221c[88]]+_0x221c[2942],5,5);mxConstraintHandler[_0x221c[202]][_0x221c[1179]]=null;mxConstraintHandler[_0x221c[202]][_0x221c[984]]= !0;mxConstraintHandler[_0x221c[202]][_0x221c[2943]]=mxConstants[_0x221c[2854]];mxConstraintHandler[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxConstraintHandler[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxConstraintHandler[_0x221c[202]][_0x221c[862]]=function(){if(null!=this[_0x221c[2944]]){for(var _0xc851x2=0;_0xc851x2<this[_0x221c[2944]][_0x221c[67]];_0xc851x2++){this[_0x221c[2944]][_0xc851x2][_0x221c[515]]()};this[_0x221c[2944]]=null};null!=this[_0x221c[2945]]&&(this[_0x221c[2945]][_0x221c[515]](),this[_0x221c[2945]]=null);this[_0x221c[2946]]=this[_0x221c[2919]]=this[_0x221c[987]]=this[_0x221c[2947]]=this[_0x221c[2920]]=null};mxConstraintHandler[_0x221c[202]][_0x221c[2636]]=function(){return this[_0x221c[1179]][_0x221c[2636]]()};mxConstraintHandler[_0x221c[202]][_0x221c[2948]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return this[_0x221c[2941]]};mxConstraintHandler[_0x221c[202]][_0x221c[2949]]=function(_0xc851x2,_0xc851x3){return !1};mxConstraintHandler[_0x221c[202]][_0x221c[2729]]=function(_0xc851x2,_0xc851x3){if(this[_0x221c[994]]()&&!this[_0x221c[2949]](_0xc851x2)){var _0xc851x4=this[_0x221c[2636]](),_0xc851x5= new mxRectangle(_0xc851x2[_0x221c[734]]()-_0xc851x4,_0xc851x2[_0x221c[735]]()-_0xc851x4,2*_0xc851x4,2*_0xc851x4),_0xc851x9=null!=_0xc851x2[_0x221c[736]]()?this[_0x221c[1179]][_0x221c[2565]](_0xc851x2[_0x221c[736]]()):!1;if(null==this[_0x221c[2947]]||!mxUtils[_0x221c[1825]](this[_0x221c[2947]],_0xc851x5)||null!=_0xc851x2[_0x221c[248]]()&&null!=this[_0x221c[2919]]&&_0xc851x9){if(this[_0x221c[2947]]=null,_0xc851x2[_0x221c[248]]()!=this[_0x221c[2919]]){if(this[_0x221c[2919]]=null,this[_0x221c[1531]]=null!=_0xc851x2[_0x221c[248]]()&&_0xc851x9?this[_0x221c[1179]][_0x221c[2538]](_0xc851x2[_0x221c[248]](),_0xc851x3):null,null!=this[_0x221c[1531]]){this[_0x221c[2919]]=_0xc851x2[_0x221c[248]]();this[_0x221c[2947]]= new mxRectangle(_0xc851x2[_0x221c[248]]()[_0x221c[235]],_0xc851x2[_0x221c[248]]()[_0x221c[236]],_0xc851x2[_0x221c[248]]()[_0x221c[117]],_0xc851x2[_0x221c[248]]()[_0x221c[119]]);if(null!=this[_0x221c[2944]]){for(_0xc851x9=0;_0xc851x9<this[_0x221c[2944]][_0x221c[67]];_0xc851x9++){this[_0x221c[2944]][_0xc851x9][_0x221c[515]]()};this[_0x221c[2946]]=this[_0x221c[2944]]=null};this[_0x221c[2944]]=[];this[_0x221c[2946]]=[];for(_0xc851x9=0;_0xc851x9<this[_0x221c[1531]][_0x221c[67]];_0xc851x9++){var _0xc851xa=this[_0x221c[1179]][_0x221c[2290]](_0xc851x2[_0x221c[248]](),this[_0x221c[1531]][_0xc851x9]),_0xc851x12=this[_0x221c[2948]](_0xc851x2[_0x221c[248]](),this[_0x221c[1531]][_0xc851x9],_0xc851xa),_0xc851x13=_0xc851x12[_0x221c[390]],_0xc851x12= new mxRectangle(_0xc851xa[_0x221c[235]]-_0xc851x12[_0x221c[117]]/2,_0xc851xa[_0x221c[236]]-_0xc851x12[_0x221c[119]]/2,_0xc851x12[_0x221c[117]],_0xc851x12[_0x221c[119]]),_0xc851x12= new mxImageShape(_0xc851x12,_0xc851x13);_0xc851x12[_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]!=mxConstants[_0x221c[508]]?mxConstants[_0x221c[2334]]:mxConstants[_0x221c[508]];_0xc851x12[_0x221c[1674]]= !1;_0xc851x12[_0x221c[176]](this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1524]]());null!=_0xc851x12[_0x221c[252]][_0x221c[328]]&&_0xc851x12[_0x221c[252]][_0x221c[265]][_0x221c[950]](_0xc851x12[_0x221c[252]],_0xc851x12[_0x221c[252]][_0x221c[265]][_0x221c[285]]);_0xc851x13=mxUtils[_0x221c[885]](this,function(){return null!=this[_0x221c[2919]]?this[_0x221c[2919]]:_0xc851x2[_0x221c[248]]()});_0xc851x12[_0x221c[258]]();mxEvent[_0x221c[2733]](_0xc851x12[_0x221c[252]],this[_0x221c[1179]],_0xc851x13);this[_0x221c[2947]][_0x221c[99]](_0xc851x12[_0x221c[1562]]);this[_0x221c[2944]][_0x221c[207]](_0xc851x12);this[_0x221c[2946]][_0x221c[207]](_0xc851xa)};this[_0x221c[2947]][_0x221c[244]](_0xc851x4)}else {if(null!=this[_0x221c[2944]]){null!=this[_0x221c[2945]]&&(this[_0x221c[2945]][_0x221c[515]](),this[_0x221c[2945]]=null);for(_0xc851x9=0;_0xc851x9<this[_0x221c[2944]][_0x221c[67]];_0xc851x9++){this[_0x221c[2944]][_0xc851x9][_0x221c[515]]()};this[_0x221c[2946]]=this[_0x221c[2944]]=null}}}};this[_0x221c[987]]=this[_0x221c[2920]]=null;if(null!=this[_0x221c[2944]]&&null!=this[_0x221c[1531]]&&(null==_0xc851x2[_0x221c[248]]()||this[_0x221c[2919]]==_0xc851x2[_0x221c[248]]())){for(_0xc851x9=0;_0xc851x9<this[_0x221c[2944]][_0x221c[67]];_0xc851x9++){if(mxUtils[_0x221c[1825]](this[_0x221c[2944]][_0xc851x9][_0x221c[1562]],_0xc851x5)){this[_0x221c[2920]]=this[_0x221c[1531]][_0xc851x9];this[_0x221c[987]]=this[_0x221c[2946]][_0xc851x9];_0xc851x4=this[_0x221c[2944]][_0xc851x9][_0x221c[1562]][_0x221c[238]]();_0xc851x4[_0x221c[244]](mxClient[_0x221c[80]]?3:2);mxClient[_0x221c[80]]&&(_0xc851x4[_0x221c[117]]-=1,_0xc851x4[_0x221c[119]]-=1);null==this[_0x221c[2945]]?(_0xc851x4= new mxRectangleShape(_0xc851x4,null,this[_0x221c[2943]],3),_0xc851x4[_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]==mxConstants[_0x221c[508]]?mxConstants[_0x221c[508]]:mxConstants[_0x221c[1523]],_0xc851x4[_0x221c[176]](this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1524]]()),this[_0x221c[2945]]=_0xc851x4,_0xc851x13=mxUtils[_0x221c[885]](this,function(){return null!=this[_0x221c[2919]]?this[_0x221c[2919]]:_0xc851x2[_0x221c[248]]()}),mxEvent[_0x221c[2733]](_0xc851x4[_0x221c[252]],this[_0x221c[1179]],_0xc851x13)):(this[_0x221c[2945]][_0x221c[1562]]=_0xc851x4,this[_0x221c[2945]][_0x221c[258]]());break}}};null==this[_0x221c[2920]]&&null!=this[_0x221c[2945]]&&(this[_0x221c[2945]][_0x221c[515]](),this[_0x221c[2945]]=null)}};mxConstraintHandler[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[862]]()};function mxRubberband(_0xc851x2){null!=_0xc851x2&&(this[_0x221c[1179]]=_0xc851x2,this[_0x221c[1179]][_0x221c[1133]](this),this[_0x221c[2730]]=mxUtils[_0x221c[885]](this,function(){this[_0x221c[2950]]()}),this[_0x221c[1179]][_0x221c[169]](mxEvent.PAN,this[_0x221c[2730]]),mxClient[_0x221c[80]]&&mxEvent[_0x221c[169]](window,_0x221c[2428],mxUtils[_0x221c[885]](this,function(){this[_0x221c[515]]()})))}mxRubberband[_0x221c[202]][_0x221c[2951]]=20;mxRubberband[_0x221c[202]][_0x221c[984]]= !0;mxRubberband[_0x221c[202]][_0x221c[485]]=null;mxRubberband[_0x221c[202]][_0x221c[2952]]=null;mxRubberband[_0x221c[202]][_0x221c[2953]]=0;mxRubberband[_0x221c[202]][_0x221c[2954]]=0;mxRubberband[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxRubberband[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxRubberband[_0x221c[202]][_0x221c[787]]=function(_0xc851x2,_0xc851x3){if(!_0xc851x3[_0x221c[721]]()&&this[_0x221c[994]]()&&this[_0x221c[1179]][_0x221c[994]]()&&(this[_0x221c[1179]][_0x221c[2579]](_0xc851x3[_0x221c[727]]())||null==_0xc851x3[_0x221c[248]]())){var _0xc851x4=mxUtils[_0x221c[445]](this[_0x221c[1179]][_0x221c[526]]),_0xc851x5=mxUtils[_0x221c[444]](this[_0x221c[1179]][_0x221c[526]]);_0xc851x5[_0x221c[235]]-=_0xc851x4[_0x221c[235]];_0xc851x5[_0x221c[236]]-=_0xc851x4[_0x221c[236]];this[_0x221c[861]](_0xc851x3[_0x221c[730]]()+_0xc851x5[_0x221c[235]],_0xc851x3[_0x221c[732]]()+_0xc851x5[_0x221c[236]]);if(mxClient[_0x221c[133]]&&!mxClient[_0x221c[75]]&&!mxClient[_0x221c[76]]){var _0xc851x9=this[_0x221c[1179]][_0x221c[526]],_0xc851xa=function(_0xc851x2){_0xc851x2= new mxMouseEvent(_0xc851x2);var _0xc851x3=mxUtils[_0x221c[2196]](_0xc851x9,_0xc851x2[_0x221c[730]](),_0xc851x2[_0x221c[732]]());_0xc851x2[_0x221c[725]]=_0xc851x3[_0x221c[235]];_0xc851x2[_0x221c[726]]=_0xc851x3[_0x221c[236]];return _0xc851x2};this[_0x221c[2955]]=mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[788]](this[_0x221c[1179]],_0xc851xa(_0xc851x2))});this[_0x221c[981]]=mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[789]](this[_0x221c[1179]],_0xc851xa(_0xc851x2))});mxEvent[_0x221c[169]](document,_0x221c[752],this[_0x221c[2955]]);mxEvent[_0x221c[169]](document,_0x221c[753],this[_0x221c[981]])};_0xc851x3[_0x221c[722]](!1)}};mxRubberband[_0x221c[202]][_0x221c[861]]=function(_0xc851x2,_0xc851x3){this[_0x221c[2823]]= new mxPoint(_0xc851x2,_0xc851x3)};mxRubberband[_0x221c[202]][_0x221c[788]]=function(_0xc851x2,_0xc851x3){if(!_0xc851x3[_0x221c[721]]()&&null!=this[_0x221c[2823]]){var _0xc851x4=mxUtils[_0x221c[444]](this[_0x221c[1179]][_0x221c[526]]),_0xc851x5=mxUtils[_0x221c[445]](this[_0x221c[1179]][_0x221c[526]]);_0xc851x4[_0x221c[235]]-=_0xc851x5[_0x221c[235]];_0xc851x4[_0x221c[236]]-=_0xc851x5[_0x221c[236]];var _0xc851x5=_0xc851x3[_0x221c[730]]()+_0xc851x4[_0x221c[235]],_0xc851x4=_0xc851x3[_0x221c[732]]()+_0xc851x4[_0x221c[236]],_0xc851x9=this[_0x221c[2823]][_0x221c[235]]-_0xc851x5,_0xc851xa=this[_0x221c[2823]][_0x221c[236]]-_0xc851x4,_0xc851x12=this[_0x221c[1179]][_0x221c[2353]];if(null!=this[_0x221c[485]]||Math[_0x221c[425]](_0xc851x9)>_0xc851x12||Math[_0x221c[425]](_0xc851xa)>_0xc851x12){null==this[_0x221c[485]]&&(this[_0x221c[485]]=this[_0x221c[2156]]()),mxUtils[_0x221c[2440]](),this[_0x221c[2729]](_0xc851x5,_0xc851x4),_0xc851x3[_0x221c[722]]()}}};mxRubberband[_0x221c[202]][_0x221c[2156]]=function(){null==this[_0x221c[2952]]&&(this[_0x221c[2952]]=document[_0x221c[55]](_0x221c[485]),this[_0x221c[2952]][_0x221c[926]]=_0x221c[2956],mxUtils[_0x221c[254]](this[_0x221c[2952]],this[_0x221c[2951]]));this[_0x221c[1179]][_0x221c[526]][_0x221c[62]](this[_0x221c[2952]]);return this[_0x221c[2952]]};mxRubberband[_0x221c[202]][_0x221c[789]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=null!=this[_0x221c[485]];this[_0x221c[862]]();_0xc851x4&&(_0xc851x4= new mxRectangle(this[_0x221c[235]],this[_0x221c[236]],this[_0x221c[117]],this[_0x221c[119]]),this[_0x221c[1179]][_0x221c[2698]](_0xc851x4,_0xc851x3[_0x221c[727]]()),_0xc851x3[_0x221c[722]]())};mxRubberband[_0x221c[202]][_0x221c[862]]=function(){null!=this[_0x221c[485]]&&this[_0x221c[485]][_0x221c[265]][_0x221c[266]](this[_0x221c[485]]);null!=this[_0x221c[2955]]&&(mxEvent[_0x221c[745]](document,_0x221c[752],this[_0x221c[2955]]),this[_0x221c[2955]]=null);null!=this[_0x221c[981]]&&(mxEvent[_0x221c[745]](document,_0x221c[753],this[_0x221c[981]]),this[_0x221c[981]]=null);this[_0x221c[2954]]=this[_0x221c[2953]]=0;this[_0x221c[485]]=this[_0x221c[2823]]=null};mxRubberband[_0x221c[202]][_0x221c[2729]]=function(_0xc851x2,_0xc851x3){this[_0x221c[2953]]=_0xc851x2;this[_0x221c[2954]]=_0xc851x3;this[_0x221c[2950]]()};mxRubberband[_0x221c[202]][_0x221c[2950]]=function(){if(null!=this[_0x221c[485]]){var _0xc851x2=this[_0x221c[2953]]-this[_0x221c[1179]][_0x221c[1136]],_0xc851x3=this[_0x221c[2954]]-this[_0x221c[1179]][_0x221c[1137]];this[_0x221c[235]]=Math[_0x221c[243]](this[_0x221c[2823]][_0x221c[235]],_0xc851x2);this[_0x221c[236]]=Math[_0x221c[243]](this[_0x221c[2823]][_0x221c[236]],_0xc851x3);this[_0x221c[117]]=Math[_0x221c[160]](this[_0x221c[2823]][_0x221c[235]],_0xc851x2)-this[_0x221c[235]];this[_0x221c[119]]=Math[_0x221c[160]](this[_0x221c[2823]][_0x221c[236]],_0xc851x3)-this[_0x221c[236]];_0xc851x2=mxClient[_0x221c[47]]?this[_0x221c[1179]][_0x221c[1137]]:0;this[_0x221c[485]][_0x221c[124]][_0x221c[361]]=this[_0x221c[235]]+(mxClient[_0x221c[47]]?this[_0x221c[1179]][_0x221c[1136]]:0)+_0x221c[168];this[_0x221c[485]][_0x221c[124]][_0x221c[125]]=this[_0x221c[236]]+_0xc851x2+_0x221c[168];this[_0x221c[485]][_0x221c[124]][_0x221c[117]]=Math[_0x221c[160]](1,this[_0x221c[117]])+_0x221c[168];this[_0x221c[485]][_0x221c[124]][_0x221c[119]]=Math[_0x221c[160]](1,this[_0x221c[119]])+_0x221c[168]}};mxRubberband[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[2717]]||(this[_0x221c[2717]]= !0,this[_0x221c[1179]][_0x221c[1148]](this),this[_0x221c[1179]][_0x221c[745]](this[_0x221c[2730]]),this[_0x221c[862]](),null!=this[_0x221c[2952]]&&(this[_0x221c[2952]]=null))};function mxVertexHandler(_0xc851x2){null!=_0xc851x2&&(this[_0x221c[724]]=_0xc851x2,this[_0x221c[176]]())}mxVertexHandler[_0x221c[202]][_0x221c[1179]]=null;mxVertexHandler[_0x221c[202]][_0x221c[724]]=null;mxVertexHandler[_0x221c[202]][_0x221c[2957]]= !1;mxVertexHandler[_0x221c[202]][_0x221c[1983]]=null;mxVertexHandler[_0x221c[202]][_0x221c[2958]]= !0;mxVertexHandler[_0x221c[202]][_0x221c[2959]]=null;mxVertexHandler[_0x221c[202]][_0x221c[2353]]=0;mxVertexHandler[_0x221c[202]][_0x221c[2809]]= !1;mxVertexHandler[_0x221c[202]][_0x221c[2960]]= !0;mxVertexHandler[_0x221c[202]][_0x221c[176]]=function(){this[_0x221c[1179]]=this[_0x221c[724]][_0x221c[441]][_0x221c[1179]];this[_0x221c[2961]]=this[_0x221c[2962]](this[_0x221c[724]]);this[_0x221c[1562]]= new mxRectangle(this[_0x221c[2961]][_0x221c[235]],this[_0x221c[2961]][_0x221c[236]],this[_0x221c[2961]][_0x221c[117]],this[_0x221c[2961]][_0x221c[119]]);this[_0x221c[2732]]=this[_0x221c[2963]](this[_0x221c[1562]]);this[_0x221c[2732]][_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]!=mxConstants[_0x221c[508]]?mxConstants[_0x221c[1523]]:mxConstants[_0x221c[508]];this[_0x221c[2732]][_0x221c[1229]]= !1;this[_0x221c[2732]][_0x221c[176]](this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1524]]());this[_0x221c[1179]][_0x221c[1712]](this[_0x221c[724]][_0x221c[246]])&&(this[_0x221c[2732]][_0x221c[252]][_0x221c[124]][_0x221c[270]]=mxConstants[_0x221c[2832]]);mxEvent[_0x221c[2733]](this[_0x221c[2732]][_0x221c[252]],this[_0x221c[1179]],this[_0x221c[724]]);if(0>=mxGraphHandler[_0x221c[202]][_0x221c[2795]]||this[_0x221c[1179]][_0x221c[2694]]()<mxGraphHandler[_0x221c[202]][_0x221c[2795]]){var _0xc851x2=this[_0x221c[1179]][_0x221c[2657]](this[_0x221c[724]][_0x221c[246]]);this[_0x221c[2964]]=[];if(_0xc851x2||this[_0x221c[1179]][_0x221c[2628]](this[_0x221c[724]][_0x221c[246]])&&2<=this[_0x221c[724]][_0x221c[117]]&&2<=this[_0x221c[724]][_0x221c[119]]){var _0xc851x3=0;_0xc851x2&&(this[_0x221c[2957]]||(this[_0x221c[2964]][_0x221c[207]](this[_0x221c[2735]](_0x221c[936],_0xc851x3++)),this[_0x221c[2964]][_0x221c[207]](this[_0x221c[2735]](_0x221c[2965],_0xc851x3++)),this[_0x221c[2964]][_0x221c[207]](this[_0x221c[2735]](_0x221c[2966],_0xc851x3++)),this[_0x221c[2964]][_0x221c[207]](this[_0x221c[2735]](_0x221c[2967],_0xc851x3++)),this[_0x221c[2964]][_0x221c[207]](this[_0x221c[2735]](_0x221c[2968],_0xc851x3++)),this[_0x221c[2964]][_0x221c[207]](this[_0x221c[2735]](_0x221c[2969],_0xc851x3++)),this[_0x221c[2964]][_0x221c[207]](this[_0x221c[2735]](_0x221c[2970],_0xc851x3++))),this[_0x221c[2964]][_0x221c[207]](this[_0x221c[2735]](_0x221c[2971],_0xc851x3++)));_0xc851x2=this[_0x221c[1179]][_0x221c[251]][_0x221c[1721]](this[_0x221c[724]][_0x221c[246]]);null!=_0xc851x2&&(!_0xc851x2[_0x221c[1500]]&&!this[_0x221c[1179]][_0x221c[1730]](this[_0x221c[724]][_0x221c[246]])&&this[_0x221c[1179]][_0x221c[2628]](this[_0x221c[724]][_0x221c[246]]))&&(this[_0x221c[2972]]=this[_0x221c[2735]](mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR),this[_0x221c[2964]][_0x221c[207]](this[_0x221c[2972]]))}else {this[_0x221c[1179]][_0x221c[1712]](this[_0x221c[724]][_0x221c[246]])&&(!this[_0x221c[1179]][_0x221c[2657]](this[_0x221c[724]][_0x221c[246]])&&2>this[_0x221c[724]][_0x221c[117]]&&2>this[_0x221c[724]][_0x221c[119]])&&(this[_0x221c[2972]]=this[_0x221c[2735]](mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this[_0x221c[2964]][_0x221c[207]](this[_0x221c[2972]]))}};if(this[_0x221c[2809]]&&(0>=mxGraphHandler[_0x221c[202]][_0x221c[2795]]||this[_0x221c[1179]][_0x221c[2694]]()<mxGraphHandler[_0x221c[202]][_0x221c[2795]])){this[_0x221c[2973]]=this[_0x221c[2735]](_0x221c[356],mxEvent.ROTATION_HANDLE,mxConstants[_0x221c[2974]]+3,mxConstants.HANDLE_FILLCOLOR),this[_0x221c[2964]][_0x221c[207]](this[_0x221c[2973]])};this[_0x221c[258]]()};mxVertexHandler[_0x221c[202]][_0x221c[2962]]=function(_0xc851x2){return  new mxRectangle(Math[_0x221c[488]](_0xc851x2[_0x221c[235]]),Math[_0x221c[488]](_0xc851x2[_0x221c[236]]),Math[_0x221c[488]](_0xc851x2[_0x221c[117]]),Math[_0x221c[488]](_0xc851x2[_0x221c[119]]))};mxVertexHandler[_0x221c[202]][_0x221c[2963]]=function(_0xc851x2){_0xc851x2= new mxRectangleShape(_0xc851x2,null,this[_0x221c[2975]]());_0xc851x2[_0x221c[1307]]=this[_0x221c[2976]]();_0xc851x2[_0x221c[1522]]=this[_0x221c[2977]]();return _0xc851x2};mxVertexHandler[_0x221c[202]][_0x221c[2975]]=function(){return mxConstants[_0x221c[2978]]};mxVertexHandler[_0x221c[202]][_0x221c[2976]]=function(){return mxConstants[_0x221c[2979]]};mxVertexHandler[_0x221c[202]][_0x221c[2977]]=function(){return mxConstants[_0x221c[2980]]};mxVertexHandler[_0x221c[202]][_0x221c[2735]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){_0xc851x4=_0xc851x4||mxConstants[_0x221c[2974]];_0xc851x4= new mxRectangle(0,0,_0xc851x4,_0xc851x4);_0xc851x5=this[_0x221c[2981]](_0xc851x4,_0xc851x3,_0xc851x5);_0xc851x5[_0x221c[1567]]()&&null!=this[_0x221c[724]][_0x221c[963]]&&this[_0x221c[724]][_0x221c[963]][_0x221c[252]][_0x221c[265]]==this[_0x221c[1179]][_0x221c[526]]?(_0xc851x5[_0x221c[1562]][_0x221c[119]]-=1,_0xc851x5[_0x221c[1562]][_0x221c[117]]-=1,_0xc851x5[_0x221c[507]]=mxConstants[_0x221c[1656]],_0xc851x5[_0x221c[176]](this[_0x221c[1179]][_0x221c[526]])):(_0xc851x5[_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]!=mxConstants[_0x221c[508]]?mxConstants[_0x221c[2334]]:mxConstants[_0x221c[508]],_0xc851x5[_0x221c[176]](this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1524]]()));mxEvent[_0x221c[2733]](_0xc851x5[_0x221c[252]],this[_0x221c[1179]],this[_0x221c[724]]);this[_0x221c[1179]][_0x221c[994]]()&&(_0xc851x5[_0x221c[252]][_0x221c[124]][_0x221c[270]]=_0xc851x2);this[_0x221c[2982]](_0xc851x3)||(_0xc851x5[_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[188]);return _0xc851x5};mxVertexHandler[_0x221c[202]][_0x221c[2982]]=function(_0xc851x2){return !0};mxVertexHandler[_0x221c[202]][_0x221c[2981]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return null!=this[_0x221c[2959]]?(_0xc851x2[_0x221c[117]]=this[_0x221c[2959]][_0x221c[117]],_0xc851x2[_0x221c[119]]=this[_0x221c[2959]][_0x221c[119]], new mxImageShape(_0xc851x2,this[_0x221c[2959]][_0x221c[390]])):_0xc851x3==mxEvent[_0x221c[2983]]? new mxEllipse(_0xc851x2,_0xc851x4||mxConstants[_0x221c[2984]],mxConstants.HANDLE_STROKECOLOR): new mxRectangleShape(_0xc851x2,_0xc851x4||mxConstants[_0x221c[2984]],mxConstants.HANDLE_STROKECOLOR)};mxVertexHandler[_0x221c[202]][_0x221c[2985]]=function(_0xc851x2,_0xc851x3,_0xc851x4){null!=_0xc851x2&&(_0xc851x2[_0x221c[1562]][_0x221c[235]]=Math[_0x221c[488]](_0xc851x3-_0xc851x2[_0x221c[1562]][_0x221c[117]]/2),_0xc851x2[_0x221c[1562]][_0x221c[236]]=Math[_0x221c[488]](_0xc851x4-_0xc851x2[_0x221c[1562]][_0x221c[119]]/2),_0xc851x2[_0x221c[258]]())};mxVertexHandler[_0x221c[202]][_0x221c[2986]]=function(_0xc851x2){if(_0xc851x2[_0x221c[729]](this[_0x221c[2973]])){return mxEvent[_0x221c[2983]]};if(_0xc851x2[_0x221c[729]](this[_0x221c[2972]])){return mxEvent[_0x221c[2987]]};if(null!=this[_0x221c[2964]]){for(var _0xc851x3=this[_0x221c[2353]],_0xc851x3=this[_0x221c[2958]]&&(mxClient[_0x221c[80]]||0<_0xc851x3)? new mxRectangle(_0xc851x2[_0x221c[734]]()-_0xc851x3,_0xc851x2[_0x221c[735]]()-_0xc851x3,2*_0xc851x3,2*_0xc851x3):null,_0xc851x4=0;_0xc851x4<this[_0x221c[2964]][_0x221c[67]];_0xc851x4++){if(_0xc851x2[_0x221c[729]](this[_0x221c[2964]][_0xc851x4])||null!=_0xc851x3&&mxUtils[_0x221c[1825]](this[_0x221c[2964]][_0xc851x4][_0x221c[1562]],_0xc851x3)){return _0xc851x4}}};return null};mxVertexHandler[_0x221c[202]][_0x221c[787]]=function(_0xc851x2,_0xc851x3){if(!_0xc851x3[_0x221c[721]]()&&this[_0x221c[1179]][_0x221c[994]]()&&!this[_0x221c[1179]][_0x221c[2579]](_0xc851x3[_0x221c[727]]())&&(0<this[_0x221c[2353]]||_0xc851x3[_0x221c[248]]()==this[_0x221c[724]])){var _0xc851x4=this[_0x221c[2986]](_0xc851x3);null!=_0xc851x4&&(this[_0x221c[861]](_0xc851x3[_0x221c[730]](),_0xc851x3[_0x221c[732]](),_0xc851x4),_0xc851x3[_0x221c[722]]())}};mxVertexHandler[_0x221c[202]][_0x221c[861]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2=mxUtils[_0x221c[2196]](this[_0x221c[1179]][_0x221c[526]],_0xc851x2,_0xc851x3);this[_0x221c[2739]]=_0xc851x2[_0x221c[235]];this[_0x221c[2740]]=_0xc851x2[_0x221c[236]];this[_0x221c[1983]]=_0xc851x4;this[_0x221c[2732]][_0x221c[252]][_0x221c[124]][_0x221c[495]]=_0xc851x4==mxEvent[_0x221c[2983]]?_0x221c[497]:_0x221c[130];this[_0x221c[2988]]=this[_0x221c[2963]](this[_0x221c[1562]]);!(mxClient[_0x221c[48]]&&0!=Number(this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2278]]]||_0x221c[468]))&&null!=this[_0x221c[724]][_0x221c[963]]&&this[_0x221c[724]][_0x221c[963]][_0x221c[252]][_0x221c[265]]==this[_0x221c[1179]][_0x221c[526]]?(this[_0x221c[2988]][_0x221c[507]]=mxConstants[_0x221c[1656]],this[_0x221c[2988]][_0x221c[176]](this[_0x221c[1179]][_0x221c[526]])):(this[_0x221c[2988]][_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]!=mxConstants[_0x221c[508]]?mxConstants[_0x221c[1523]]:mxConstants[_0x221c[508]],this[_0x221c[2988]][_0x221c[176]](this[_0x221c[1179]][_0x221c[441]][_0x221c[1524]]()))};mxVertexHandler[_0x221c[202]][_0x221c[788]]=function(_0xc851x2,_0xc851x3){if(!_0xc851x3[_0x221c[721]]()&&null!=this[_0x221c[1983]]){var _0xc851x4= new mxPoint(_0xc851x3[_0x221c[734]](),_0xc851x3[_0x221c[735]]()),_0xc851x5=this[_0x221c[1179]][_0x221c[1018]](_0xc851x3[_0x221c[727]]()),_0xc851x9=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]];if(this[_0x221c[1983]]==mxEvent[_0x221c[2987]]){_0xc851x5&&(_0xc851x4[_0x221c[235]]=this[_0x221c[1179]][_0x221c[1021]](_0xc851x4[_0x221c[235]]/_0xc851x9)*_0xc851x9,_0xc851x4[_0x221c[236]]=this[_0x221c[1179]][_0x221c[1021]](_0xc851x4[_0x221c[236]]/_0xc851x9)*_0xc851x9),this[_0x221c[2985]](this[_0x221c[2964]][this[_0x221c[2964]][_0x221c[67]]-1],_0xc851x4[_0x221c[235]],_0xc851x4[_0x221c[236]])}else {if(this[_0x221c[1983]]==mxEvent[_0x221c[2983]]){var _0xc851xa=this[_0x221c[724]][_0x221c[235]]+this[_0x221c[724]][_0x221c[117]]/2-_0xc851x4[_0x221c[235]],_0xc851x12=this[_0x221c[724]][_0x221c[236]]+this[_0x221c[724]][_0x221c[119]]/2-_0xc851x4[_0x221c[236]];this[_0x221c[2989]]=0!=_0xc851xa?180*Math[_0x221c[2990]](_0xc851x12/_0xc851xa)/Math[_0x221c[424]]+90:0>_0xc851x12?180:0;0<_0xc851xa&&(this[_0x221c[2989]]-=180);this[_0x221c[2960]]&&(_0xc851xa=_0xc851x4[_0x221c[235]]-this[_0x221c[724]][_0x221c[241]](),_0xc851x12=_0xc851x4[_0x221c[236]]-this[_0x221c[724]][_0x221c[242]](),_0xc851xa=Math[_0x221c[425]](Math[_0x221c[428]](_0xc851xa*_0xc851xa+_0xc851x12*_0xc851x12)-this[_0x221c[724]][_0x221c[119]]/2-20),_0xc851xa=Math[_0x221c[160]](1,5*Math[_0x221c[243]](3,Math[_0x221c[160]](0,Math[_0x221c[488]](80/Math[_0x221c[425]](_0xc851xa))))),this[_0x221c[2989]]=Math[_0x221c[488]](this[_0x221c[2989]]/_0xc851xa)*_0xc851xa);this[_0x221c[2732]][_0x221c[603]]=this[_0x221c[2989]];this[_0x221c[2732]][_0x221c[258]]()}else {var _0xc851x13=mxUtils[_0x221c[431]](this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2278]]]||_0x221c[468]),_0xc851x14=Math[_0x221c[426]](-_0xc851x13),_0xc851x15=Math[_0x221c[427]](-_0xc851x13),_0xc851x16= new mxPoint(this[_0x221c[724]][_0x221c[241]](),this[_0x221c[724]][_0x221c[242]]()),_0xc851xa=_0xc851x4[_0x221c[235]]-this[_0x221c[2739]],_0xc851x12=_0xc851x4[_0x221c[236]]-this[_0x221c[2740]],_0xc851x4=this[_0x221c[1179]][_0x221c[441]][_0x221c[513]],_0xc851x17=_0xc851x15*_0xc851xa+_0xc851x14*_0xc851x12,_0xc851xa=_0xc851x14*_0xc851xa-_0xc851x15*_0xc851x12;this[_0x221c[1562]]=this[_0x221c[2991]](this[_0x221c[2961]],_0xc851xa,_0xc851x17,this[_0x221c[1983]],_0xc851x5,_0xc851x9,_0xc851x4);_0xc851x14=Math[_0x221c[426]](_0xc851x13);_0xc851x15=Math[_0x221c[427]](_0xc851x13);_0xc851x12= new mxPoint(this[_0x221c[1562]][_0x221c[241]](),this[_0x221c[1562]][_0x221c[242]]());_0xc851xa=_0xc851x12[_0x221c[235]]-_0xc851x16[_0x221c[235]];_0xc851x12=_0xc851x12[_0x221c[236]]-_0xc851x16[_0x221c[236]];_0xc851x16=_0xc851x15*_0xc851xa+_0xc851x14*_0xc851x12-_0xc851x12;this[_0x221c[1562]][_0x221c[235]]+=_0xc851x14*_0xc851xa-_0xc851x15*_0xc851x12-_0xc851xa;this[_0x221c[1562]][_0x221c[236]]+=_0xc851x16;this[_0x221c[2932]]()}};_0xc851x3[_0x221c[722]]()}else {null!=this[_0x221c[2986]](_0xc851x3)&&_0xc851x3[_0x221c[722]](!1)}};mxVertexHandler[_0x221c[202]][_0x221c[789]]=function(_0xc851x2,_0xc851x3){if(!_0xc851x3[_0x221c[721]]()&&null!=this[_0x221c[1983]]&&null!=this[_0x221c[724]]){var _0xc851x4= new mxPoint(_0xc851x3[_0x221c[734]](),_0xc851x3[_0x221c[735]]());this[_0x221c[1179]][_0x221c[502]]()[_0x221c[473]]();try{if(this[_0x221c[1983]]==mxEvent[_0x221c[2983]]){null!=this[_0x221c[2989]]&&this[_0x221c[2992]](this[_0x221c[724]][_0x221c[246]],this[_0x221c[2989]]-(this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2278]]]||0))}else {var _0xc851x5=this[_0x221c[1179]][_0x221c[1018]](_0xc851x3[_0x221c[727]]()),_0xc851x9=mxUtils[_0x221c[431]](this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2278]]]||_0x221c[468]),_0xc851xa=Math[_0x221c[426]](-_0xc851x9),_0xc851x12=Math[_0x221c[427]](-_0xc851x9),_0xc851x13=_0xc851x4[_0x221c[235]]-this[_0x221c[2739]],_0xc851x14=_0xc851x4[_0x221c[236]]-this[_0x221c[2740]],_0xc851x4=_0xc851x12*_0xc851x13+_0xc851xa*_0xc851x14,_0xc851x13=_0xc851xa*_0xc851x13-_0xc851x12*_0xc851x14,_0xc851x14=_0xc851x4,_0xc851x15=this[_0x221c[1179]][_0x221c[441]][_0x221c[255]];this[_0x221c[2526]](this[_0x221c[724]][_0x221c[246]],_0xc851x13/_0xc851x15,_0xc851x14/_0xc851x15,this[_0x221c[1983]],_0xc851x5)}}finally{this[_0x221c[1179]][_0x221c[502]]()[_0x221c[476]]()};this[_0x221c[862]]();_0xc851x3[_0x221c[722]]()}};mxVertexHandler[_0x221c[202]][_0x221c[2992]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[502]]();if(_0xc851x4[_0x221c[1193]](_0xc851x2)){var _0xc851x5=_0xc851x2==this[_0x221c[724]]?this[_0x221c[724]]:this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x2);null!=_0xc851x5&&this[_0x221c[1179]][_0x221c[1717]](mxConstants.STYLE_ROTATION,(_0xc851x5[_0x221c[124]][mxConstants[_0x221c[2278]]]||0)+_0xc851x3,[_0xc851x2]);if(this[_0x221c[724]][_0x221c[246]]!=_0xc851x2&&(_0xc851x5=this[_0x221c[1179]][_0x221c[1198]](_0xc851x2),null!=_0xc851x5&&!_0xc851x5[_0x221c[1500]])){if(0!=_0xc851x3){var _0xc851x9=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1197]](_0xc851x2),_0xc851xa=this[_0x221c[1179]][_0x221c[1198]](_0xc851x9);if(!_0xc851x5[_0x221c[1500]]&&null!=_0xc851xa){var _0xc851x12=mxUtils[_0x221c[431]](_0xc851x3),_0xc851x9=Math[_0x221c[426]](_0xc851x12),_0xc851x12=Math[_0x221c[427]](_0xc851x12),_0xc851x13= new mxPoint(_0xc851x5[_0x221c[241]](),_0xc851x5[_0x221c[242]]()),_0xc851xa= new mxPoint(_0xc851xa[_0x221c[117]]/2,_0xc851xa[_0x221c[119]]/2),_0xc851x9=mxUtils[_0x221c[432]](_0xc851x13,_0xc851x9,_0xc851x12,_0xc851xa),_0xc851x5=_0xc851x5[_0x221c[238]]();_0xc851x5[_0x221c[235]]=_0xc851x9[_0x221c[235]]-_0xc851x5[_0x221c[117]]/2;_0xc851x5[_0x221c[236]]=_0xc851x9[_0x221c[236]]-_0xc851x5[_0x221c[119]]/2;_0xc851x4[_0x221c[1724]](_0xc851x2,_0xc851x5)}}else {_0xc851x5=_0xc851x5[_0x221c[238]](),_0xc851x5[_0x221c[235]]+=dx,_0xc851x5[_0x221c[236]]+=dy,_0xc851x4[_0x221c[1724]](_0xc851x2,_0xc851x5)}};_0xc851x5=_0xc851x4[_0x221c[262]](_0xc851x2);for(_0xc851x9=0;_0xc851x9<_0xc851x5;_0xc851x9++){this[_0x221c[2992]](_0xc851x4[_0x221c[263]](_0xc851x2,_0xc851x9),_0xc851x3)}}};mxVertexHandler[_0x221c[202]][_0x221c[862]]=function(){this[_0x221c[1983]]=this[_0x221c[2989]]=null;null!=this[_0x221c[2988]]&&(this[_0x221c[2988]][_0x221c[515]](),this[_0x221c[2988]]=null);null!=this[_0x221c[2732]]&&(this[_0x221c[2732]][_0x221c[252]][_0x221c[124]][_0x221c[495]]=_0x221c[497],this[_0x221c[2961]]=this[_0x221c[2962]](this[_0x221c[724]]),this[_0x221c[1562]]= new mxRectangle(this[_0x221c[2961]][_0x221c[235]],this[_0x221c[2961]][_0x221c[236]],this[_0x221c[2961]][_0x221c[117]],this[_0x221c[2961]][_0x221c[119]]),this[_0x221c[2932]]())};mxVertexHandler[_0x221c[202]][_0x221c[2526]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=this[_0x221c[1179]][_0x221c[251]][_0x221c[1721]](_0xc851x2);if(null!=_0xc851xa){if(_0xc851x5==mxEvent[_0x221c[2987]]){_0xc851x5=this[_0x221c[1179]][_0x221c[441]][_0x221c[255]],_0xc851x3=(this[_0x221c[2972]][_0x221c[1562]][_0x221c[241]]()-this[_0x221c[2739]])/_0xc851x5,_0xc851x4=(this[_0x221c[2972]][_0x221c[1562]][_0x221c[242]]()-this[_0x221c[2740]])/_0xc851x5,_0xc851xa=_0xc851xa[_0x221c[238]](),null==_0xc851xa[_0x221c[1368]]?_0xc851xa[_0x221c[1368]]= new mxPoint(_0xc851x3,_0xc851x4):(_0xc851xa[_0x221c[1368]][_0x221c[235]]+=_0xc851x3,_0xc851xa[_0x221c[1368]][_0x221c[236]]+=_0xc851x4),this[_0x221c[1179]][_0x221c[251]][_0x221c[1724]](_0xc851x2,_0xc851xa)}else {_0xc851x5=this[_0x221c[2991]](_0xc851xa,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,1, new mxPoint(0,0));var _0xc851x12=mxUtils[_0x221c[431]](this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2278]]]||_0x221c[468]);if(0!=_0xc851x12){_0xc851x3=_0xc851x5[_0x221c[241]]()-_0xc851xa[_0x221c[241]]();_0xc851x4=_0xc851x5[_0x221c[242]]()-_0xc851xa[_0x221c[242]]();_0xc851x9=Math[_0x221c[426]](_0xc851x12);var _0xc851x13=Math[_0x221c[427]](_0xc851x12),_0xc851x12=_0xc851x9*_0xc851x3-_0xc851x13*_0xc851x4-_0xc851x3;_0xc851x3=_0xc851x13*_0xc851x3+_0xc851x9*_0xc851x4-_0xc851x4;_0xc851x4=_0xc851x5[_0x221c[235]]-_0xc851xa[_0x221c[235]];var _0xc851x14=_0xc851x5[_0x221c[236]]-_0xc851xa[_0x221c[236]],_0xc851x15=_0xc851x9*_0xc851x4-_0xc851x13*_0xc851x14;_0xc851x9=_0xc851x13*_0xc851x4+_0xc851x9*_0xc851x14;_0xc851x5[_0x221c[235]]+=_0xc851x12;_0xc851x5[_0x221c[236]]+=_0xc851x3;if(!this[_0x221c[1179]][_0x221c[1742]](_0xc851x2)&&(0!=_0xc851x12||0!=_0xc851x3)){_0xc851x4=_0xc851xa[_0x221c[235]]-_0xc851x5[_0x221c[235]]+_0xc851x15,_0xc851x14=_0xc851xa[_0x221c[236]]-_0xc851x5[_0x221c[236]]+_0xc851x9,this[_0x221c[2993]](_0xc851x2,_0xc851x4,_0xc851x14)}};this[_0x221c[1179]][_0x221c[2526]](_0xc851x2,_0xc851x5)}}};mxVertexHandler[_0x221c[202]][_0x221c[2993]]=function(_0xc851x2,_0xc851x3,_0xc851x4){for(var _0xc851x5=this[_0x221c[1179]][_0x221c[502]](),_0xc851x9=_0xc851x5[_0x221c[262]](_0xc851x2),_0xc851xa=0;_0xc851xa<_0xc851x9;_0xc851xa++){var _0xc851x12=_0xc851x5[_0x221c[263]](_0xc851x2,_0xc851xa);if(_0xc851x5[_0x221c[1193]](_0xc851x12)){var _0xc851x13=this[_0x221c[1179]][_0x221c[1198]](_0xc851x12);null!=_0xc851x13&&!_0xc851x13[_0x221c[1500]]&&(_0xc851x13=_0xc851x13[_0x221c[238]](),_0xc851x13[_0x221c[235]]+=_0xc851x3,_0xc851x13[_0x221c[236]]+=_0xc851x4,_0xc851x5[_0x221c[1724]](_0xc851x12,_0xc851x13))}}};mxVertexHandler[_0x221c[202]][_0x221c[2991]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12){if(this[_0x221c[2957]]){_0xc851x12=_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]+_0xc851x3;var _0xc851x13=_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]+_0xc851x4;_0xc851x9&&(_0xc851x12=this[_0x221c[1179]][_0x221c[1021]](_0xc851x12/_0xc851xa)*_0xc851xa,_0xc851x13=this[_0x221c[1179]][_0x221c[1021]](_0xc851x13/_0xc851xa)*_0xc851xa);_0xc851xa= new mxRectangle(_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]],0,0);_0xc851xa[_0x221c[99]]( new mxRectangle(_0xc851x12,_0xc851x13,0,0));return _0xc851xa};var _0xc851x13=_0xc851x2[_0x221c[235]]-_0xc851x12[_0x221c[235]]*_0xc851xa,_0xc851x14=_0xc851x13+_0xc851x2[_0x221c[117]],_0xc851x15=_0xc851x2[_0x221c[236]]-_0xc851x12[_0x221c[236]]*_0xc851xa;_0xc851x2=_0xc851x15+_0xc851x2[_0x221c[119]];4<_0xc851x5?(_0xc851x2+=_0xc851x4,_0xc851x9&&(_0xc851x2=this[_0x221c[1179]][_0x221c[1021]](_0xc851x2/_0xc851xa)*_0xc851xa)):3>_0xc851x5&&(_0xc851x15+=_0xc851x4,_0xc851x9&&(_0xc851x15=this[_0x221c[1179]][_0x221c[1021]](_0xc851x15/_0xc851xa)*_0xc851xa));if(0==_0xc851x5||3==_0xc851x5||5==_0xc851x5){_0xc851x13+=_0xc851x3,_0xc851x9&&(_0xc851x13=this[_0x221c[1179]][_0x221c[1021]](_0xc851x13/_0xc851xa)*_0xc851xa)}else {if(2==_0xc851x5||4==_0xc851x5||7==_0xc851x5){_0xc851x14+=_0xc851x3,_0xc851x9&&(_0xc851x14=this[_0x221c[1179]][_0x221c[1021]](_0xc851x14/_0xc851xa)*_0xc851xa)}};_0xc851x9=_0xc851x14-_0xc851x13;_0xc851x2-=_0xc851x15;0>_0xc851x9&&(_0xc851x13+=_0xc851x9,_0xc851x9=Math[_0x221c[425]](_0xc851x9));0>_0xc851x2&&(_0xc851x15+=_0xc851x2,_0xc851x2=Math[_0x221c[425]](_0xc851x2));return  new mxRectangle(_0xc851x13+_0xc851x12[_0x221c[235]]*_0xc851xa,_0xc851x15+_0xc851x12[_0x221c[236]]*_0xc851xa,_0xc851x9,_0xc851x2)};mxVertexHandler[_0x221c[202]][_0x221c[258]]=function(){this[_0x221c[2961]]=this[_0x221c[2962]](this[_0x221c[724]]);this[_0x221c[1562]]= new mxRectangle(this[_0x221c[724]][_0x221c[235]],this[_0x221c[724]][_0x221c[236]],this[_0x221c[724]][_0x221c[117]],this[_0x221c[724]][_0x221c[119]]);var _0xc851x2=this[_0x221c[724]];if(null!=this[_0x221c[2964]]){var _0xc851x3=_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]],_0xc851x4=_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]];if(this[_0x221c[2957]]){this[_0x221c[2985]](this[_0x221c[2964]][0],_0xc851x3,_0xc851x4)}else {var _0xc851x5=_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]/2,_0xc851x9=_0xc851x2[_0x221c[236]]+_0xc851x2[_0x221c[119]]/2;if(1<this[_0x221c[2964]][_0x221c[67]]){var _0xc851xa=mxUtils[_0x221c[431]](_0xc851x2[_0x221c[124]][mxConstants[_0x221c[2278]]]||_0x221c[468]),_0xc851x12=Math[_0x221c[426]](_0xc851xa),_0xc851xa=Math[_0x221c[427]](_0xc851xa),_0xc851x13= new mxPoint(_0xc851x2[_0x221c[241]](),_0xc851x2[_0x221c[242]]()),_0xc851x14=mxUtils[_0x221c[432]]( new mxPoint(_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]]),_0xc851x12,_0xc851xa,_0xc851x13);this[_0x221c[2985]](this[_0x221c[2964]][0],_0xc851x14[_0x221c[235]],_0xc851x14[_0x221c[236]]);_0xc851x14[_0x221c[235]]=_0xc851x5;_0xc851x14[_0x221c[236]]=_0xc851x2[_0x221c[236]];_0xc851x14=mxUtils[_0x221c[432]](_0xc851x14,_0xc851x12,_0xc851xa,_0xc851x13);this[_0x221c[2985]](this[_0x221c[2964]][1],_0xc851x14[_0x221c[235]],_0xc851x14[_0x221c[236]]);_0xc851x14[_0x221c[235]]=_0xc851x3;_0xc851x14[_0x221c[236]]=_0xc851x2[_0x221c[236]];_0xc851x14=mxUtils[_0x221c[432]](_0xc851x14,_0xc851x12,_0xc851xa,_0xc851x13);this[_0x221c[2985]](this[_0x221c[2964]][2],_0xc851x14[_0x221c[235]],_0xc851x14[_0x221c[236]]);_0xc851x14[_0x221c[235]]=_0xc851x2[_0x221c[235]];_0xc851x14[_0x221c[236]]=_0xc851x9;_0xc851x14=mxUtils[_0x221c[432]](_0xc851x14,_0xc851x12,_0xc851xa,_0xc851x13);this[_0x221c[2985]](this[_0x221c[2964]][3],_0xc851x14[_0x221c[235]],_0xc851x14[_0x221c[236]]);_0xc851x14[_0x221c[235]]=_0xc851x3;_0xc851x14[_0x221c[236]]=_0xc851x9;_0xc851x14=mxUtils[_0x221c[432]](_0xc851x14,_0xc851x12,_0xc851xa,_0xc851x13);this[_0x221c[2985]](this[_0x221c[2964]][4],_0xc851x14[_0x221c[235]],_0xc851x14[_0x221c[236]]);_0xc851x14[_0x221c[235]]=_0xc851x2[_0x221c[235]];_0xc851x14[_0x221c[236]]=_0xc851x4;_0xc851x14=mxUtils[_0x221c[432]](_0xc851x14,_0xc851x12,_0xc851xa,_0xc851x13);this[_0x221c[2985]](this[_0x221c[2964]][5],_0xc851x14[_0x221c[235]],_0xc851x14[_0x221c[236]]);_0xc851x14[_0x221c[235]]=_0xc851x5;_0xc851x14[_0x221c[236]]=_0xc851x4;_0xc851x14=mxUtils[_0x221c[432]](_0xc851x14,_0xc851x12,_0xc851xa,_0xc851x13);this[_0x221c[2985]](this[_0x221c[2964]][6],_0xc851x14[_0x221c[235]],_0xc851x14[_0x221c[236]]);_0xc851x14[_0x221c[235]]=_0xc851x3;_0xc851x14[_0x221c[236]]=_0xc851x4;_0xc851x14=mxUtils[_0x221c[432]](_0xc851x14,_0xc851x12,_0xc851xa,_0xc851x13);this[_0x221c[2985]](this[_0x221c[2964]][7],_0xc851x14[_0x221c[235]],_0xc851x14[_0x221c[236]]);this[_0x221c[2985]](this[_0x221c[2964]][8],_0xc851x5+_0xc851x2[_0x221c[2079]][_0x221c[235]],_0xc851x9+_0xc851x2[_0x221c[2079]][_0x221c[236]])}else {2<=this[_0x221c[724]][_0x221c[117]]&&2<=this[_0x221c[724]][_0x221c[119]]?this[_0x221c[2985]](this[_0x221c[2964]][0],_0xc851x5+_0xc851x2[_0x221c[2079]][_0x221c[235]],_0xc851x9+_0xc851x2[_0x221c[2079]][_0x221c[236]]):this[_0x221c[2985]](this[_0x221c[2964]][0],_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]])}}};null!=this[_0x221c[2973]]&&(_0xc851xa=mxUtils[_0x221c[431]](this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2278]]]||_0x221c[468]),_0xc851x12=Math[_0x221c[426]](_0xc851xa),_0xc851xa=Math[_0x221c[427]](_0xc851xa),_0xc851x13= new mxPoint(this[_0x221c[724]][_0x221c[241]](),this[_0x221c[724]][_0x221c[242]]()),_0xc851x14=mxUtils[_0x221c[432]]( new mxPoint(_0xc851x2[_0x221c[235]]+_0xc851x2[_0x221c[117]]/2,_0xc851x2[_0x221c[236]]-16),_0xc851x12,_0xc851xa,_0xc851x13),this[_0x221c[2985]](this[_0x221c[2973]],_0xc851x14[_0x221c[235]],_0xc851x14[_0x221c[236]]));this[_0x221c[2732]][_0x221c[603]]=Number(this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2278]]]||_0x221c[468]);this[_0x221c[2932]]()};mxVertexHandler[_0x221c[202]][_0x221c[2932]]=function(){null!=this[_0x221c[2988]]&&(this[_0x221c[2988]][_0x221c[1562]]=this[_0x221c[1562]],this[_0x221c[2988]][_0x221c[252]][_0x221c[265]]==this[_0x221c[1179]][_0x221c[526]]&&(this[_0x221c[2988]][_0x221c[1562]][_0x221c[117]]=Math[_0x221c[160]](0,this[_0x221c[2988]][_0x221c[1562]][_0x221c[117]]-1),this[_0x221c[2988]][_0x221c[1562]][_0x221c[119]]=Math[_0x221c[160]](0,this[_0x221c[2988]][_0x221c[1562]][_0x221c[119]]-1)),this[_0x221c[2988]][_0x221c[603]]=Number(this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2278]]]||_0x221c[468]),this[_0x221c[2988]][_0x221c[258]]());this[_0x221c[2732]][_0x221c[1562]]=this[_0x221c[1562]];this[_0x221c[2732]][_0x221c[258]]()};mxVertexHandler[_0x221c[202]][_0x221c[515]]=function(){null!=this[_0x221c[2988]]&&(this[_0x221c[2988]][_0x221c[515]](),this[_0x221c[2988]]=null);this[_0x221c[2732]][_0x221c[515]]();this[_0x221c[2972]]=this[_0x221c[2732]]=null;if(null!=this[_0x221c[2964]]){for(var _0xc851x2=0;_0xc851x2<this[_0x221c[2964]][_0x221c[67]];_0xc851x2++){this[_0x221c[2964]][_0xc851x2][_0x221c[515]](),this[_0x221c[2964]][_0xc851x2]=null}}};function mxEdgeHandler(_0xc851x2){null!=_0xc851x2&&(this[_0x221c[724]]=_0xc851x2,this[_0x221c[176]]())}mxEdgeHandler[_0x221c[202]][_0x221c[1179]]=null;mxEdgeHandler[_0x221c[202]][_0x221c[724]]=null;mxEdgeHandler[_0x221c[202]][_0x221c[2885]]=null;mxEdgeHandler[_0x221c[202]][_0x221c[2886]]=null;mxEdgeHandler[_0x221c[202]][_0x221c[267]]=null;mxEdgeHandler[_0x221c[202]][_0x221c[253]]=null;mxEdgeHandler[_0x221c[202]][_0x221c[2994]]=null;mxEdgeHandler[_0x221c[202]][_0x221c[2972]]=null;mxEdgeHandler[_0x221c[202]][_0x221c[2797]]= !0;mxEdgeHandler[_0x221c[202]][_0x221c[2771]]= !1;mxEdgeHandler[_0x221c[202]][_0x221c[2995]]= !1;mxEdgeHandler[_0x221c[202]][_0x221c[574]]= !1;mxEdgeHandler[_0x221c[202]][_0x221c[2958]]= !0;mxEdgeHandler[_0x221c[202]][_0x221c[2996]]= !1;mxEdgeHandler[_0x221c[202]][_0x221c[2959]]=null;mxEdgeHandler[_0x221c[202]][_0x221c[2353]]=0;mxEdgeHandler[_0x221c[202]][_0x221c[176]]=function(){this[_0x221c[1179]]=this[_0x221c[724]][_0x221c[441]][_0x221c[1179]];this[_0x221c[2885]]=this[_0x221c[1689]]();this[_0x221c[2886]]= new mxConstraintHandler(this[_0x221c[1179]]);this[_0x221c[1525]]=[];this[_0x221c[2997]]=this[_0x221c[2998]](this[_0x221c[724]]);this[_0x221c[253]]=this[_0x221c[2963]](this[_0x221c[2997]]);this[_0x221c[253]][_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]!=mxConstants[_0x221c[508]]?mxConstants[_0x221c[2334]]:mxConstants[_0x221c[508]];this[_0x221c[253]][_0x221c[176]](this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1524]]());this[_0x221c[253]][_0x221c[1564]]=0;this[_0x221c[253]][_0x221c[252]][_0x221c[124]][_0x221c[270]]=mxConstants[_0x221c[2831]];mxEvent[_0x221c[169]](this[_0x221c[253]][_0x221c[252]],_0x221c[760],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[1179]][_0x221c[761]](_0xc851x2,this[_0x221c[724]][_0x221c[246]])}));mxEvent[_0x221c[759]](this[_0x221c[253]][_0x221c[252]],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[2771]]&&this[_0x221c[2999]](_0xc851x2)?this[_0x221c[3000]](this[_0x221c[724]],_0xc851x2):this[_0x221c[1179]][_0x221c[758]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0xc851x2,this[_0x221c[724]]))}),mxUtils[_0x221c[885]](this,function(_0xc851x2){var _0xc851x4=this[_0x221c[724]][_0x221c[246]];if(null!=this[_0x221c[1983]]){var _0xc851x5=mxUtils[_0x221c[2196]](this[_0x221c[1179]][_0x221c[526]],mxEvent[_0x221c[731]](_0xc851x2),mxEvent[_0x221c[733]](_0xc851x2)),_0xc851x4=this[_0x221c[1179]][_0x221c[999]](_0xc851x5[_0x221c[235]],_0xc851x5[_0x221c[236]]);this[_0x221c[1179]][_0x221c[1730]](_0xc851x4)&&this[_0x221c[1179]][_0x221c[2688]](_0xc851x4,_0xc851x5[_0x221c[235]],_0xc851x5[_0x221c[236]])&&(_0xc851x4=null)};this[_0x221c[1179]][_0x221c[758]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0xc851x2,this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](_0xc851x4)))}),mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[1179]][_0x221c[758]](mxEvent.MOUSE_UP, new mxMouseEvent(_0xc851x2,this[_0x221c[724]]))}));this[_0x221c[574]]=null!=this[_0x221c[724]][_0x221c[963]]&&this[_0x221c[724]][_0x221c[963]][_0x221c[252]][_0x221c[265]]==this[_0x221c[1179]][_0x221c[526]];if(!this[_0x221c[574]]){var _0xc851x2=this[_0x221c[724]][_0x221c[2089]](!0);null!=_0xc851x2&&(this[_0x221c[574]]=null!=_0xc851x2[_0x221c[963]]&&_0xc851x2[_0x221c[963]][_0x221c[252]][_0x221c[265]]==this[_0x221c[1179]][_0x221c[526]]);this[_0x221c[574]]||(_0xc851x2=this[_0x221c[724]][_0x221c[2089]](!1),null!=_0xc851x2&&(this[_0x221c[574]]=null!=_0xc851x2[_0x221c[963]]&&_0xc851x2[_0x221c[963]][_0x221c[252]][_0x221c[265]]==this[_0x221c[1179]][_0x221c[526]]))};if(this[_0x221c[1179]][_0x221c[2694]]()<mxGraphHandler[_0x221c[202]][_0x221c[2795]]||0>=mxGraphHandler[_0x221c[202]][_0x221c[2795]]){this[_0x221c[2994]]=this[_0x221c[3001]]()};this[_0x221c[685]]= new mxPoint(this[_0x221c[724]][_0x221c[2079]][_0x221c[235]],this[_0x221c[724]][_0x221c[2079]][_0x221c[236]]);this[_0x221c[2972]]= new mxRectangleShape( new mxRectangle,mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR);this[_0x221c[2972]][_0x221c[1229]]= !1;this[_0x221c[3002]](this[_0x221c[2972]]);this[_0x221c[2972]][_0x221c[252]][_0x221c[124]][_0x221c[270]]=mxConstants[_0x221c[3003]];mxEvent[_0x221c[2733]](this[_0x221c[2972]][_0x221c[252]],this[_0x221c[1179]],this[_0x221c[724]]);this[_0x221c[258]]()};mxEdgeHandler[_0x221c[202]][_0x221c[2999]]=function(_0xc851x2){return mxEvent[_0x221c[774]](_0xc851x2)};mxEdgeHandler[_0x221c[202]][_0x221c[3004]]=function(_0xc851x2){return mxEvent[_0x221c[774]](_0xc851x2)};mxEdgeHandler[_0x221c[202]][_0x221c[2998]]=function(_0xc851x2){return _0xc851x2[_0x221c[439]]};mxEdgeHandler[_0x221c[202]][_0x221c[2963]]=function(_0xc851x2){_0xc851x2= new mxPolyline(_0xc851x2,this[_0x221c[2975]]());_0xc851x2[_0x221c[1307]]=this[_0x221c[2976]]();_0xc851x2[_0x221c[1522]]=this[_0x221c[2977]]();return _0xc851x2};mxEdgeHandler[_0x221c[202]][_0x221c[2975]]=function(){return mxConstants[_0x221c[3005]]};mxEdgeHandler[_0x221c[202]][_0x221c[2976]]=function(){return mxConstants[_0x221c[3006]]};mxEdgeHandler[_0x221c[202]][_0x221c[2977]]=function(){return mxConstants[_0x221c[3007]]};mxEdgeHandler[_0x221c[202]][_0x221c[2907]]=function(_0xc851x2){return !0};mxEdgeHandler[_0x221c[202]][_0x221c[1689]]=function(){var _0xc851x2= new mxCellMarker(this[_0x221c[1179]]),_0xc851x3=this;_0xc851x2[_0x221c[736]]=function(_0xc851x2){var _0xc851x5=mxCellMarker[_0x221c[202]][_0x221c[736]][_0x221c[183]](this,arguments);if(!_0xc851x3[_0x221c[2907]](_0xc851x5)){return null};var _0xc851x9=_0xc851x3[_0x221c[1179]][_0x221c[502]]();if(_0xc851x5==_0xc851x3[_0x221c[724]][_0x221c[246]]||null!=_0xc851x5&&!_0xc851x3[_0x221c[1179]][_0x221c[2405]]&&_0xc851x9[_0x221c[250]](_0xc851x5)){_0xc851x5=null};return _0xc851x5};_0xc851x2[_0x221c[2872]]=function(_0xc851x2){var _0xc851x5=_0xc851x3[_0x221c[1179]][_0x221c[502]](),_0xc851x5=_0xc851x3[_0x221c[1179]][_0x221c[441]][_0x221c[2292]](_0xc851x2,_0xc851x3[_0x221c[1179]][_0x221c[441]][_0x221c[248]](_0xc851x5[_0x221c[1709]](_0xc851x3[_0x221c[724]][_0x221c[246]],!_0xc851x3[_0x221c[729]])),!_0xc851x3[_0x221c[729]]),_0xc851x5=null!=_0xc851x5?_0xc851x5[_0x221c[246]]:null;_0xc851x3[_0x221c[267]]=_0xc851x3[_0x221c[2909]](_0xc851x3[_0x221c[729]]?_0xc851x2[_0x221c[246]]:_0xc851x5,_0xc851x3[_0x221c[729]]?_0xc851x5:_0xc851x2[_0x221c[246]]);return null==_0xc851x3[_0x221c[267]]};return _0xc851x2};mxEdgeHandler[_0x221c[202]][_0x221c[2909]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[1179]][_0x221c[2500]](this[_0x221c[724]][_0x221c[246]],_0xc851x2,_0xc851x3)};mxEdgeHandler[_0x221c[202]][_0x221c[3001]]=function(){for(var _0xc851x2=this[_0x221c[724]][_0x221c[246]],_0xc851x3=[],_0xc851x4=0;_0xc851x4<this[_0x221c[2997]][_0x221c[67]];_0xc851x4++){if(this[_0x221c[3008]](_0xc851x4)){var _0xc851x5=_0xc851x4==this[_0x221c[2997]][_0x221c[67]]-1;if((_0xc851x5=0==_0xc851x4||_0xc851x5)||this[_0x221c[1179]][_0x221c[2662]](_0xc851x2)){var _0xc851x9=this[_0x221c[3009]](_0xc851x4);this[_0x221c[3002]](_0xc851x9);mxClient[_0x221c[754]]&&_0xc851x9[_0x221c[252]][_0x221c[57]](_0x221c[1377],_0x221c[130]);if(this[_0x221c[3010]](_0xc851x4)){if(mxClient[_0x221c[754]]){var _0xc851xa=mxUtils[_0x221c[885]](this,function(_0xc851x2){_0xc851x2=mxUtils[_0x221c[2196]](this[_0x221c[1179]][_0x221c[526]],mxEvent[_0x221c[731]](_0xc851x2),mxEvent[_0x221c[733]](_0xc851x2));return this[_0x221c[1179]][_0x221c[441]][_0x221c[248]](this[_0x221c[1179]][_0x221c[999]](_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]]))});mxEvent[_0x221c[2733]](_0xc851x9[_0x221c[252]],this[_0x221c[1179]],_0xc851xa)}else {_0xc851x9[_0x221c[252]][_0x221c[124]][_0x221c[270]]=mxConstants[_0x221c[3011]],mxEvent[_0x221c[2733]](_0xc851x9[_0x221c[252]],this[_0x221c[1179]],this[_0x221c[724]])}};_0xc851x3[_0x221c[207]](_0xc851x9);_0xc851x5||(this[_0x221c[1525]][_0x221c[207]]( new mxPoint(0,0)),_0xc851x9[_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[188])}}};return _0xc851x3};mxEdgeHandler[_0x221c[202]][_0x221c[3010]]=function(_0xc851x2){return !0};mxEdgeHandler[_0x221c[202]][_0x221c[3008]]=function(_0xc851x2){return !0};mxEdgeHandler[_0x221c[202]][_0x221c[3009]]=function(_0xc851x2){if(null!=this[_0x221c[2959]]){return  new mxImageShape( new mxRectangle(0,0,this[_0x221c[2959]][_0x221c[117]],this[_0x221c[2959]][_0x221c[119]]),this[_0x221c[2959]][_0x221c[390]])};_0xc851x2=mxConstants[_0x221c[2974]];this[_0x221c[574]]&&(_0xc851x2-=1);return  new mxRectangleShape( new mxRectangle(0,0,_0xc851x2,_0xc851x2),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};mxEdgeHandler[_0x221c[202]][_0x221c[3002]]=function(_0xc851x2){this[_0x221c[574]]?(_0xc851x2[_0x221c[507]]=mxConstants[_0x221c[1656]],_0xc851x2[_0x221c[176]](this[_0x221c[1179]][_0x221c[526]])):(_0xc851x2[_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]!=mxConstants[_0x221c[508]]?mxConstants[_0x221c[2334]]:mxConstants[_0x221c[508]],_0xc851x2[_0x221c[176]](this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1524]]()))};mxEdgeHandler[_0x221c[202]][_0x221c[2986]]=function(_0xc851x2){if(null!=this[_0x221c[2994]]){for(var _0xc851x3=this[_0x221c[2353]],_0xc851x3=this[_0x221c[2958]]&&(mxClient[_0x221c[80]]||0<_0xc851x3)? new mxRectangle(_0xc851x2[_0x221c[734]]()-_0xc851x3,_0xc851x2[_0x221c[735]]()-_0xc851x3,2*_0xc851x3,2*_0xc851x3):null,_0xc851x4=0;_0xc851x4<this[_0x221c[2994]][_0x221c[67]];_0xc851x4++){if((_0xc851x2[_0x221c[729]](this[_0x221c[2994]][_0xc851x4])||null!=_0xc851x3&&mxUtils[_0x221c[1825]](this[_0x221c[2994]][_0xc851x4][_0x221c[1562]],_0xc851x3))&&_0x221c[188]!=this[_0x221c[2994]][_0xc851x4][_0x221c[252]][_0x221c[124]][_0x221c[187]]){return _0xc851x4}}};if(_0xc851x2[_0x221c[729]](this[_0x221c[2972]])&&_0x221c[188]!=this[_0x221c[2972]][_0x221c[252]][_0x221c[124]][_0x221c[187]]||_0xc851x2[_0x221c[729]](this[_0x221c[724]][_0x221c[963]])){if(!mxClient[_0x221c[75]]&&!mxClient[_0x221c[76]]||_0x221c[2822]!=_0xc851x2[_0x221c[728]]()[_0x221c[301]]){return mxEvent[_0x221c[2987]]}};return null};mxEdgeHandler[_0x221c[202]][_0x221c[787]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=null,_0xc851x4=this[_0x221c[2986]](_0xc851x3);null!=_0xc851x4&&(!_0xc851x3[_0x221c[721]]()&&this[_0x221c[1179]][_0x221c[994]]()&&!this[_0x221c[1179]][_0x221c[2579]](_0xc851x3[_0x221c[727]]()))&&(this[_0x221c[2995]]&&this[_0x221c[3004]](_0xc851x3[_0x221c[727]]())?this[_0x221c[3012]](this[_0x221c[724]],_0xc851x4):(_0xc851x4!=mxEvent[_0x221c[2987]]||this[_0x221c[1179]][_0x221c[2628]](_0xc851x3[_0x221c[736]]()))&&this[_0x221c[861]](_0xc851x3[_0x221c[730]](),_0xc851x3[_0x221c[732]](),_0xc851x4),_0xc851x3[_0x221c[722]]())};mxEdgeHandler[_0x221c[202]][_0x221c[861]]=function(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[2739]]=_0xc851x2;this[_0x221c[2740]]=_0xc851x3;this[_0x221c[729]]=null==this[_0x221c[2994]]?!1:0==_0xc851x4;this[_0x221c[3013]]=null==this[_0x221c[2994]]?!1:_0xc851x4==this[_0x221c[2994]][_0x221c[67]]-1;this[_0x221c[3014]]=_0xc851x4==mxEvent[_0x221c[2987]];if(this[_0x221c[729]]||this[_0x221c[3013]]){if(_0xc851x2=this[_0x221c[724]][_0x221c[246]],_0xc851x3=this[_0x221c[1179]][_0x221c[251]][_0x221c[1709]](_0xc851x2,this[_0x221c[729]]),null==_0xc851x3&&this[_0x221c[1179]][_0x221c[2661]](_0xc851x2,this[_0x221c[729]])||null!=_0xc851x3&&this[_0x221c[1179]][_0x221c[2551]](_0xc851x2,_0xc851x3,this[_0x221c[729]])){this[_0x221c[1983]]=_0xc851x4}}else {this[_0x221c[1983]]=_0xc851x4}};mxEdgeHandler[_0x221c[202]][_0x221c[3015]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[724]][_0x221c[238]]()};mxEdgeHandler[_0x221c[202]][_0x221c[3016]]=function(){return this[_0x221c[1179]][_0x221c[1020]]*this[_0x221c[1179]][_0x221c[441]][_0x221c[255]]/2};mxEdgeHandler[_0x221c[202]][_0x221c[2689]]=function(_0xc851x2){var _0xc851x3= new mxPoint(_0xc851x2[_0x221c[734]](),_0xc851x2[_0x221c[735]]()),_0xc851x4=this[_0x221c[3016]](),_0xc851x5=this[_0x221c[1179]][_0x221c[249]](),_0xc851x9=!1,_0xc851xa=!1;if(this[_0x221c[2996]]&&0<_0xc851x4){var _0xc851x12=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x5=_0xc851x2[_0x221c[235]];Math[_0x221c[425]](_0xc851x3[_0x221c[235]]-_0xc851x5)<_0xc851x4&&(_0xc851x3[_0x221c[235]]=_0xc851x5,_0xc851x9= !0);_0xc851x2=_0xc851x2[_0x221c[236]];Math[_0x221c[425]](_0xc851x3[_0x221c[236]]-_0xc851x2)<_0xc851x4&&(_0xc851x3[_0x221c[236]]=_0xc851x2,_0xc851xa= !0)}},_0xc851x13=function(_0xc851x2){null!=_0xc851x2&&_0xc851x12[_0x221c[239]](this, new mxPoint(_0xc851x5[_0x221c[2230]](_0xc851x2),_0xc851x5[_0x221c[2228]](_0xc851x2)))};_0xc851x13[_0x221c[239]](this,this[_0x221c[724]][_0x221c[2089]](!0));_0xc851x13[_0x221c[239]](this,this[_0x221c[724]][_0x221c[2089]](!1));if(null!=this[_0x221c[2997]]){for(_0xc851x13=0;_0xc851x13<this[_0x221c[2997]];_0xc851x13++){_0xc851x13!=this[_0x221c[1983]]&&_0xc851x12[_0x221c[239]](this,this[_0x221c[2997]][_0xc851x13])}}};this[_0x221c[1179]][_0x221c[1018]](_0xc851x2[_0x221c[727]]())&&(_0xc851x2=_0xc851x5[_0x221c[255]],_0xc851x13=_0xc851x5[_0x221c[513]],_0xc851x9||(_0xc851x3[_0x221c[235]]=(this[_0x221c[1179]][_0x221c[1021]](_0xc851x3[_0x221c[235]]/_0xc851x2-_0xc851x13[_0x221c[235]])+_0xc851x13[_0x221c[235]])*_0xc851x2),_0xc851xa||(_0xc851x3[_0x221c[236]]=(this[_0x221c[1179]][_0x221c[1021]](_0xc851x3[_0x221c[236]]/_0xc851x2-_0xc851x13[_0x221c[236]])+_0xc851x13[_0x221c[236]])*_0xc851x2));return _0xc851x3};mxEdgeHandler[_0x221c[202]][_0x221c[3017]]=function(_0xc851x2){this[_0x221c[2886]][_0x221c[2729]](_0xc851x2,this[_0x221c[729]]);this[_0x221c[2885]][_0x221c[2871]](_0xc851x2);_0xc851x2=this[_0x221c[2885]][_0x221c[2868]]();var _0xc851x3=null;null!=this[_0x221c[2886]][_0x221c[2919]]&&null!=this[_0x221c[2886]][_0x221c[2920]]&&this[_0x221c[2885]][_0x221c[862]]();null!=_0xc851x2?_0xc851x3=_0xc851x2:null!=this[_0x221c[2886]][_0x221c[2920]]&&null!=this[_0x221c[2886]][_0x221c[2919]]&&(_0xc851x3=this[_0x221c[2886]][_0x221c[2919]]);return _0xc851x3};mxEdgeHandler[_0x221c[202]][_0x221c[3018]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[1198]](this[_0x221c[724]][_0x221c[246]]),_0xc851x3=null!=_0xc851x3[_0x221c[1525]]?_0xc851x3[_0x221c[1525]][_0x221c[1853]]():null;!this[_0x221c[729]]&&!this[_0x221c[3013]]?(this[_0x221c[2196]](_0xc851x2,!1),null==_0xc851x3?_0xc851x3=[_0xc851x2]:_0xc851x3[this[_0x221c[1983]]-1]=_0xc851x2):this[_0x221c[1179]][_0x221c[2401]]&&(_0xc851x3=null);return _0xc851x3};mxEdgeHandler[_0x221c[202]][_0x221c[3019]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[729]]?_0xc851x4:this[_0x221c[724]][_0x221c[2089]](!0),_0xc851x9=this[_0x221c[3013]]?_0xc851x4:this[_0x221c[724]][_0x221c[2089]](!1),_0xc851xa=this[_0x221c[1179]][_0x221c[2288]](_0xc851x2,_0xc851x5,!0),_0xc851x12=this[_0x221c[1179]][_0x221c[2288]](_0xc851x2,_0xc851x9,!1),_0xc851x13=this[_0x221c[2886]][_0x221c[2920]];null==_0xc851x13&&(_0xc851x13= new mxConnectionConstraint);this[_0x221c[729]]?_0xc851xa=_0xc851x13:this[_0x221c[3013]]&&(_0xc851x12=_0xc851x13);(!this[_0x221c[729]]||null!=_0xc851x5)&&_0xc851x2[_0x221c[441]][_0x221c[2289]](_0xc851x2,_0xc851x5,!0,_0xc851xa);(!this[_0x221c[3013]]||null!=_0xc851x9)&&_0xc851x2[_0x221c[441]][_0x221c[2289]](_0xc851x2,_0xc851x9,!1,_0xc851x12);if((this[_0x221c[729]]||this[_0x221c[3013]])&&null==_0xc851x4){_0xc851x2[_0x221c[2088]](_0xc851x3,this[_0x221c[729]]),null==this[_0x221c[2885]][_0x221c[2869]]()&&(this[_0x221c[267]]=this[_0x221c[1179]][_0x221c[2406]]?null:_0x221c[110])};_0xc851x2[_0x221c[441]][_0x221c[2282]](_0xc851x2,this[_0x221c[1525]],_0xc851x5,_0xc851x9);_0xc851x2[_0x221c[441]][_0x221c[2283]](_0xc851x2,_0xc851x5,_0xc851x9)};mxEdgeHandler[_0x221c[202]][_0x221c[788]]=function(_0xc851x2,_0xc851x3){if(null!=this[_0x221c[1983]]&&null!=this[_0x221c[2885]]){var _0xc851x4=this[_0x221c[2689]](_0xc851x3);if(this[_0x221c[3014]]){this[_0x221c[685]][_0x221c[235]]=_0xc851x4[_0x221c[235]],this[_0x221c[685]][_0x221c[236]]=_0xc851x4[_0x221c[236]]}else {this[_0x221c[1525]]=this[_0x221c[3018]](_0xc851x4);var _0xc851x5=this[_0x221c[729]]||this[_0x221c[3013]]?this[_0x221c[3017]](_0xc851x3):null,_0xc851x9=this[_0x221c[3015]](_0xc851x4,null!=_0xc851x5?_0xc851x5[_0x221c[246]]:null);this[_0x221c[3019]](_0xc851x9,_0xc851x4,_0xc851x5);this[_0x221c[3020]](null==this[_0x221c[267]]?this[_0x221c[2885]][_0x221c[2853]]:this[_0x221c[2885]][_0x221c[2855]]);this[_0x221c[2997]]=_0xc851x9[_0x221c[439]];this[_0x221c[1124]]= !0};this[_0x221c[2932]]();mxEvent[_0x221c[722]](_0xc851x3[_0x221c[727]]());_0xc851x3[_0x221c[722]]()}else {mxClient[_0x221c[80]]&&null!=this[_0x221c[2986]](_0xc851x3)&&_0xc851x3[_0x221c[722]](!1)}};mxEdgeHandler[_0x221c[202]][_0x221c[789]]=function(_0xc851x2,_0xc851x3){if(null!=this[_0x221c[1983]]&&null!=this[_0x221c[2885]]){var _0xc851x4=this[_0x221c[724]][_0x221c[246]];if(_0xc851x3[_0x221c[730]]()!=this[_0x221c[2739]]||_0xc851x3[_0x221c[732]]()!=this[_0x221c[2740]]){if(null!=this[_0x221c[267]]){0<this[_0x221c[267]][_0x221c[67]]&&this[_0x221c[1179]][_0x221c[2580]](this[_0x221c[267]])}else {if(this[_0x221c[3014]]){this[_0x221c[3021]](this[_0x221c[724]],this[_0x221c[685]][_0x221c[235]],this[_0x221c[685]][_0x221c[236]])}else {if(this[_0x221c[729]]||this[_0x221c[3013]]){var _0xc851x5=null;null!=this[_0x221c[2886]][_0x221c[2920]]&&null!=this[_0x221c[2886]][_0x221c[2919]]&&(_0xc851x5=this[_0x221c[2886]][_0x221c[2919]][_0x221c[246]]);null==_0xc851x5&&this[_0x221c[2885]][_0x221c[2867]]()&&(_0xc851x5=this[_0x221c[2885]][_0x221c[2861]][_0x221c[246]]);if(null!=_0xc851x5){_0xc851x4=this[_0x221c[807]](_0xc851x4,_0xc851x5,this[_0x221c[729]],this[_0x221c[1179]][_0x221c[2574]](_0xc851x3[_0x221c[727]]())&&this[_0x221c[2797]]&&this[_0x221c[1179]][_0x221c[2617]](),_0xc851x3)}else {if(this[_0x221c[1179]][_0x221c[2530]]()){_0xc851x5=this[_0x221c[2997]][this[_0x221c[729]]?0:this[_0x221c[2997]][_0x221c[67]]-1];_0xc851x5[_0x221c[235]]=_0xc851x5[_0x221c[235]]/this[_0x221c[1179]][_0x221c[441]][_0x221c[255]]-this[_0x221c[1179]][_0x221c[441]][_0x221c[513]][_0x221c[235]];_0xc851x5[_0x221c[236]]=_0xc851x5[_0x221c[236]]/this[_0x221c[1179]][_0x221c[441]][_0x221c[255]]-this[_0x221c[1179]][_0x221c[441]][_0x221c[513]][_0x221c[236]];var _0xc851x9=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1197]](_0xc851x4));null!=_0xc851x9&&(_0xc851x5[_0x221c[235]]-=_0xc851x9[_0x221c[2078]][_0x221c[235]],_0xc851x5[_0x221c[236]]-=_0xc851x9[_0x221c[2078]][_0x221c[236]]);_0xc851x5[_0x221c[235]]-=this[_0x221c[1179]][_0x221c[1136]]/this[_0x221c[1179]][_0x221c[441]][_0x221c[255]];_0xc851x5[_0x221c[236]]-=this[_0x221c[1179]][_0x221c[1137]]/this[_0x221c[1179]][_0x221c[441]][_0x221c[255]];this[_0x221c[3022]](_0xc851x4,_0xc851x5,this[_0x221c[729]])}}}else {this[_0x221c[1124]]?this[_0x221c[3023]](_0xc851x4,this[_0x221c[1525]]):(this[_0x221c[1179]][_0x221c[249]]()[_0x221c[2263]](this[_0x221c[724]][_0x221c[246]]),this[_0x221c[1179]][_0x221c[249]]()[_0x221c[2259]](this[_0x221c[724]][_0x221c[246]]))}}}};null!=this[_0x221c[2885]]&&(this[_0x221c[862]](),_0xc851x4!=this[_0x221c[724]][_0x221c[246]]&&this[_0x221c[1179]][_0x221c[2450]](_0xc851x4));_0xc851x3[_0x221c[722]]()}};mxEdgeHandler[_0x221c[202]][_0x221c[862]]=function(){this[_0x221c[1525]]=this[_0x221c[685]]=this[_0x221c[1983]]=this[_0x221c[267]]=null;this[_0x221c[3013]]=this[_0x221c[729]]=this[_0x221c[3014]]=this[_0x221c[1124]]= !1;this[_0x221c[2885]][_0x221c[862]]();this[_0x221c[2886]][_0x221c[862]]();this[_0x221c[3020]](mxConstants.EDGE_SELECTION_COLOR);this[_0x221c[258]]()};mxEdgeHandler[_0x221c[202]][_0x221c[3020]]=function(_0xc851x2){null!=this[_0x221c[253]]&&(this[_0x221c[253]][_0x221c[1336]]=_0xc851x2)};mxEdgeHandler[_0x221c[202]][_0x221c[2196]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[518]](),_0xc851x5=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[512]]();_0xc851x3&&(_0xc851x2[_0x221c[235]]=this[_0x221c[1179]][_0x221c[1021]](_0xc851x2[_0x221c[235]]),_0xc851x2[_0x221c[236]]=this[_0x221c[1179]][_0x221c[1021]](_0xc851x2[_0x221c[236]]));_0xc851x2[_0x221c[235]]=Math[_0x221c[488]](_0xc851x2[_0x221c[235]]/_0xc851x4-_0xc851x5[_0x221c[235]]);_0xc851x2[_0x221c[236]]=Math[_0x221c[488]](_0xc851x2[_0x221c[236]]/_0xc851x4-_0xc851x5[_0x221c[236]]);_0xc851x4=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1197]](this[_0x221c[724]][_0x221c[246]]));null!=_0xc851x4&&(_0xc851x2[_0x221c[235]]-=_0xc851x4[_0x221c[2078]][_0x221c[235]],_0xc851x2[_0x221c[236]]-=_0xc851x4[_0x221c[2078]][_0x221c[236]]);return _0xc851x2};mxEdgeHandler[_0x221c[202]][_0x221c[3021]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1179]][_0x221c[502]](),_0xc851x9=_0xc851x5[_0x221c[1721]](_0xc851x2[_0x221c[246]]);if(null!=_0xc851x9){var _0xc851x9=_0xc851x9[_0x221c[238]](),_0xc851xa=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[2308]](_0xc851x2,_0xc851x3,_0xc851x4);_0xc851x9[_0x221c[235]]=_0xc851xa[_0x221c[235]];_0xc851x9[_0x221c[236]]=_0xc851xa[_0x221c[236]];var _0xc851x12=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]];_0xc851x9[_0x221c[1368]]= new mxPoint(0,0);_0xc851xa=this[_0x221c[1179]][_0x221c[441]][_0x221c[245]](_0xc851x2,_0xc851x9);_0xc851x9[_0x221c[1368]]= new mxPoint((_0xc851x3-_0xc851xa[_0x221c[235]])/_0xc851x12,(_0xc851x4-_0xc851xa[_0x221c[236]])/_0xc851x12);_0xc851x5[_0x221c[1724]](_0xc851x2[_0x221c[246]],_0xc851x9)}};mxEdgeHandler[_0x221c[202]][_0x221c[807]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x9=this[_0x221c[1179]][_0x221c[502]]();var _0xc851xa=_0xc851x9[_0x221c[1197]](_0xc851x2);_0xc851x9[_0x221c[473]]();try{if(_0xc851x5){var _0xc851x12=_0xc851x2[_0x221c[238]]();_0xc851x9[_0x221c[99]](_0xc851xa,_0xc851x12,_0xc851x9[_0x221c[262]](_0xc851xa));var _0xc851x13=_0xc851x9[_0x221c[1709]](_0xc851x2,!_0xc851x4);this[_0x221c[1179]][_0x221c[851]](_0xc851x12,_0xc851x13,!_0xc851x4);_0xc851x2=_0xc851x12};var _0xc851x14=this[_0x221c[2886]][_0x221c[2920]];null==_0xc851x14&&(_0xc851x14= new mxConnectionConstraint);this[_0x221c[1179]][_0x221c[851]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x14)}finally{_0xc851x9[_0x221c[476]]()};return _0xc851x2};mxEdgeHandler[_0x221c[202]][_0x221c[3022]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1179]][_0x221c[502]](),_0xc851x9=_0xc851x5[_0x221c[1721]](_0xc851x2);if(null!=_0xc851x9){_0xc851x5[_0x221c[473]]();try{_0xc851x9=_0xc851x9[_0x221c[238]](),_0xc851x9[_0x221c[2007]](_0xc851x3,_0xc851x4),_0xc851x5[_0x221c[1724]](_0xc851x2,_0xc851x9),this[_0x221c[1179]][_0x221c[851]](_0xc851x2,null,_0xc851x4, new mxConnectionConstraint)}finally{_0xc851x5[_0x221c[476]]()}}};mxEdgeHandler[_0x221c[202]][_0x221c[3023]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[502]](),_0xc851x5=_0xc851x4[_0x221c[1721]](_0xc851x2);null!=_0xc851x5&&(_0xc851x5=_0xc851x5[_0x221c[238]](),_0xc851x5[_0x221c[1525]]=_0xc851x3,_0xc851x4[_0x221c[1724]](_0xc851x2,_0xc851x5))};mxEdgeHandler[_0x221c[202]][_0x221c[3000]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=mxUtils[_0x221c[2196]](this[_0x221c[1179]][_0x221c[526]],mxEvent[_0x221c[731]](_0xc851x3),mxEvent[_0x221c[733]](_0xc851x3)),_0xc851x5=this[_0x221c[1179]][_0x221c[1018]](_0xc851x3);this[_0x221c[2196]](_0xc851x4,_0xc851x5);this[_0x221c[3024]](_0xc851x2,_0xc851x4[_0x221c[235]],_0xc851x4[_0x221c[236]]);mxEvent[_0x221c[722]](_0xc851x3)};mxEdgeHandler[_0x221c[202]][_0x221c[3024]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[1179]][_0x221c[1198]](_0xc851x2[_0x221c[246]]);_0xc851x3= new mxPoint(_0xc851x3,_0xc851x4);if(null!=_0xc851x5){_0xc851x5=_0xc851x5[_0x221c[238]]();_0xc851x4=this[_0x221c[1179]][_0x221c[441]][_0x221c[513]];var _0xc851x9=this[_0x221c[1179]][_0x221c[441]][_0x221c[255]];_0xc851x4=mxUtils[_0x221c[3025]](_0xc851x2,(_0xc851x3[_0x221c[235]]+_0xc851x4[_0x221c[235]])*_0xc851x9,(_0xc851x3[_0x221c[236]]+_0xc851x4[_0x221c[236]])*_0xc851x9);null==_0xc851x5[_0x221c[1525]]?_0xc851x5[_0x221c[1525]]=[_0xc851x3]:_0xc851x5[_0x221c[1525]][_0x221c[300]](_0xc851x4,0,_0xc851x3);this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1724]](_0xc851x2[_0x221c[246]],_0xc851x5);this[_0x221c[515]]();this[_0x221c[176]]()}};mxEdgeHandler[_0x221c[202]][_0x221c[3012]]=function(_0xc851x2,_0xc851x3){if(0<_0xc851x3&&_0xc851x3<this[_0x221c[2997]][_0x221c[67]]-1){var _0xc851x4=this[_0x221c[1179]][_0x221c[1198]](this[_0x221c[724]][_0x221c[246]]);null!=_0xc851x4&&null!=_0xc851x4[_0x221c[1525]]&&(_0xc851x4=_0xc851x4[_0x221c[238]](),_0xc851x4[_0x221c[1525]][_0x221c[300]](_0xc851x3-1,1),this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1724]](_0xc851x2[_0x221c[246]],_0xc851x4),this[_0x221c[515]](),this[_0x221c[176]]())}};mxEdgeHandler[_0x221c[202]][_0x221c[3026]]=function(_0xc851x2){_0xc851x2=0==_0xc851x2;var _0xc851x3=this[_0x221c[724]][_0x221c[246]],_0xc851x4=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1709]](_0xc851x3,_0xc851x2),_0xc851x5=mxConstants[_0x221c[2984]];null!=_0xc851x4&&!this[_0x221c[1179]][_0x221c[2551]](_0xc851x3,_0xc851x4,_0xc851x2)||null==_0xc851x4&&!this[_0x221c[1179]][_0x221c[2661]](_0xc851x3,_0xc851x2)?_0xc851x5=mxConstants[_0x221c[3027]]:null!=_0xc851x4&&this[_0x221c[1179]][_0x221c[2551]](_0xc851x3,_0xc851x4,_0xc851x2)&&(_0xc851x5=mxConstants[_0x221c[3028]]);return _0xc851x5};mxEdgeHandler[_0x221c[202]][_0x221c[258]]=function(){this[_0x221c[2997]]=this[_0x221c[724]][_0x221c[439]][_0x221c[1853]]();var _0xc851x2=this[_0x221c[724]][_0x221c[246]],_0xc851x3=mxConstants[_0x221c[3029]];this[_0x221c[685]]= new mxPoint(this[_0x221c[724]][_0x221c[2079]][_0x221c[235]],this[_0x221c[724]][_0x221c[2079]][_0x221c[236]]);this[_0x221c[2972]][_0x221c[1562]]= new mxRectangle(Math[_0x221c[488]](this[_0x221c[685]][_0x221c[235]]-_0xc851x3/2),Math[_0x221c[488]](this[_0x221c[685]][_0x221c[236]]-_0xc851x3/2),_0xc851x3,_0xc851x3);this[_0x221c[2972]][_0x221c[258]]();_0xc851x3=this[_0x221c[1179]][_0x221c[2183]](_0xc851x2);null!=_0xc851x3&&0<_0xc851x3[_0x221c[67]]&&this[_0x221c[1179]][_0x221c[2628]](_0xc851x2)?this[_0x221c[2972]][_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[189]:this[_0x221c[2972]][_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[188];if(null!=this[_0x221c[2994]]&&0<this[_0x221c[2994]][_0x221c[67]]){var _0xc851x4=this[_0x221c[2997]][_0x221c[67]]-1,_0xc851x2=this[_0x221c[2997]][0],_0xc851x5=this[_0x221c[2997]][0][_0x221c[236]],_0xc851x3=this[_0x221c[2994]][0][_0x221c[1562]];this[_0x221c[2994]][0][_0x221c[1562]]= new mxRectangle(Math[_0x221c[488]](this[_0x221c[2997]][0][_0x221c[235]]-_0xc851x3[_0x221c[117]]/2),Math[_0x221c[488]](_0xc851x5-_0xc851x3[_0x221c[119]]/2),_0xc851x3[_0x221c[117]],_0xc851x3[_0x221c[119]]);this[_0x221c[2994]][0][_0x221c[1334]]=this[_0x221c[3026]](0);this[_0x221c[2994]][0][_0x221c[258]]();var _0xc851x5=this[_0x221c[2997]][_0xc851x4],_0xc851x9=this[_0x221c[2997]][_0xc851x4][_0x221c[235]],_0xc851x4=this[_0x221c[2997]][_0xc851x4][_0x221c[236]],_0xc851xa=this[_0x221c[2994]][_0x221c[67]]-1,_0xc851x3=this[_0x221c[2994]][_0xc851xa][_0x221c[1562]];this[_0x221c[2994]][_0xc851xa][_0x221c[1562]]= new mxRectangle(Math[_0x221c[488]](_0xc851x9-_0xc851x3[_0x221c[117]]/2),Math[_0x221c[488]](_0xc851x4-_0xc851x3[_0x221c[119]]/2),_0xc851x3[_0x221c[117]],_0xc851x3[_0x221c[119]]);this[_0x221c[2994]][_0xc851xa][_0x221c[1334]]=this[_0x221c[3026]](_0xc851xa);this[_0x221c[2994]][_0xc851xa][_0x221c[258]]();this[_0x221c[3030]](_0xc851x2,_0xc851x5)};this[_0x221c[2932]]()};mxEdgeHandler[_0x221c[202]][_0x221c[3030]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1721]](this[_0x221c[724]][_0x221c[246]])[_0x221c[1525]];if(null!=_0xc851x4){null==this[_0x221c[1525]]&&(this[_0x221c[1525]]=[]);for(var _0xc851x5=1;_0xc851x5<this[_0x221c[2994]][_0x221c[67]]-1;_0xc851x5++){if(null!=this[_0x221c[2994]][_0xc851x5]){if(null!=this[_0x221c[2997]][_0xc851x5]){var _0xc851x9=this[_0x221c[2997]][_0xc851x5][_0x221c[235]],_0xc851xa=this[_0x221c[2997]][_0xc851x5][_0x221c[236]],_0xc851x12=this[_0x221c[2994]][_0xc851x5][_0x221c[1562]];this[_0x221c[2994]][_0xc851x5][_0x221c[252]][_0x221c[124]][_0x221c[187]]=_0x221c[189];this[_0x221c[2994]][_0xc851x5][_0x221c[1562]]= new mxRectangle(Math[_0x221c[488]](_0xc851x9-_0xc851x12[_0x221c[117]]/2),Math[_0x221c[488]](_0xc851xa-_0xc851x12[_0x221c[119]]/2),_0xc851x12[_0x221c[117]],_0xc851x12[_0x221c[119]]);this[_0x221c[2994]][_0xc851x5][_0x221c[258]]();this[_0x221c[1525]][_0xc851x5-1]=_0xc851x4[_0xc851x5-1]}else {this[_0x221c[2994]][_0xc851x5][_0x221c[515]](),this[_0x221c[2994]][_0xc851x5]=null}}}}};mxEdgeHandler[_0x221c[202]][_0x221c[2932]]=function(){if(this[_0x221c[3014]]){var _0xc851x2=mxConstants[_0x221c[3029]],_0xc851x2= new mxRectangle(Math[_0x221c[488]](this[_0x221c[685]][_0x221c[235]]-_0xc851x2/2),Math[_0x221c[488]](this[_0x221c[685]][_0x221c[236]]-_0xc851x2/2),_0xc851x2,_0xc851x2);this[_0x221c[2972]][_0x221c[1562]]=_0xc851x2;this[_0x221c[2972]][_0x221c[258]]()}else {this[_0x221c[253]][_0x221c[1525]]=this[_0x221c[2997]],this[_0x221c[253]][_0x221c[258]]()}};mxEdgeHandler[_0x221c[202]][_0x221c[515]]=function(){null!=this[_0x221c[2885]]&&(this[_0x221c[2885]][_0x221c[515]](),this[_0x221c[2885]]=null);null!=this[_0x221c[253]]&&(this[_0x221c[253]][_0x221c[515]](),this[_0x221c[253]]=null);null!=this[_0x221c[2972]]&&(this[_0x221c[2972]][_0x221c[515]](),this[_0x221c[2972]]=null);null!=this[_0x221c[2886]]&&(this[_0x221c[2886]][_0x221c[515]](),this[_0x221c[2886]]=null);if(null!=this[_0x221c[2994]]){for(var _0xc851x2=0;_0xc851x2<this[_0x221c[2994]][_0x221c[67]];_0xc851x2++){null!=this[_0x221c[2994]][_0xc851x2]&&(this[_0x221c[2994]][_0xc851x2][_0x221c[515]](),this[_0x221c[2994]][_0xc851x2]=null)}}};function mxElbowEdgeHandler(_0xc851x2){mxEdgeHandler[_0x221c[239]](this,_0xc851x2)}mxUtils[_0x221c[1284]](mxElbowEdgeHandler,mxEdgeHandler);mxElbowEdgeHandler[_0x221c[202]]= new mxEdgeHandler;mxElbowEdgeHandler[_0x221c[202]][_0x221c[196]]=mxElbowEdgeHandler;mxElbowEdgeHandler[_0x221c[202]][_0x221c[3031]]= !0;mxElbowEdgeHandler[_0x221c[202]][_0x221c[3032]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[3033]:_0x221c[110];mxElbowEdgeHandler[_0x221c[202]][_0x221c[3001]]=function(){var _0xc851x2=[],_0xc851x3=this[_0x221c[3009]](0);this[_0x221c[3002]](_0xc851x3);_0xc851x3[_0x221c[252]][_0x221c[124]][_0x221c[270]]=mxConstants[_0x221c[3011]];mxEvent[_0x221c[2733]](_0xc851x3[_0x221c[252]],this[_0x221c[1179]],this[_0x221c[724]]);_0xc851x2[_0x221c[207]](_0xc851x3);mxClient[_0x221c[754]]&&_0xc851x3[_0x221c[252]][_0x221c[57]](_0x221c[1377],_0x221c[130]);_0xc851x2[_0x221c[207]](this[_0x221c[3034]]());this[_0x221c[1525]][_0x221c[207]]( new mxPoint(0,0));_0xc851x3=this[_0x221c[3009]](2);this[_0x221c[3002]](_0xc851x3);_0xc851x3[_0x221c[252]][_0x221c[124]][_0x221c[270]]=mxConstants[_0x221c[3011]];mxEvent[_0x221c[2733]](_0xc851x3[_0x221c[252]],this[_0x221c[1179]],this[_0x221c[724]]);_0xc851x2[_0x221c[207]](_0xc851x3);mxClient[_0x221c[754]]&&_0xc851x3[_0x221c[252]][_0x221c[57]](_0x221c[1377],_0x221c[130]);return _0xc851x2};mxElbowEdgeHandler[_0x221c[202]][_0x221c[3034]]=function(){var _0xc851x2=this[_0x221c[3009]]();this[_0x221c[3002]](_0xc851x2);var _0xc851x3=this[_0x221c[3035]]();_0xc851x2[_0x221c[252]][_0x221c[124]][_0x221c[270]]=_0xc851x3;_0xc851x3=mxUtils[_0x221c[885]](this,function(_0xc851x2){!mxEvent[_0x221c[721]](_0xc851x2)&&this[_0x221c[3031]]&&(this[_0x221c[1179]][_0x221c[854]](this[_0x221c[724]][_0x221c[246]],_0xc851x2),mxEvent[_0x221c[722]](_0xc851x2))});mxEvent[_0x221c[2733]](_0xc851x2[_0x221c[252]],this[_0x221c[1179]],this[_0x221c[724]],null,null,null,_0xc851x3);this[_0x221c[1179]][_0x221c[2662]](this[_0x221c[724]][_0x221c[246]])||(_0xc851x2[_0x221c[252]][_0x221c[124]][_0x221c[495]]=_0x221c[130]);return _0xc851x2};mxElbowEdgeHandler[_0x221c[202]][_0x221c[3035]]=function(){return this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2294]]]==mxEdgeStyle[_0x221c[2570]]||this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2294]]]==mxConstants[_0x221c[3036]]||(this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2294]]]==mxEdgeStyle[_0x221c[2568]]||this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2294]]]==mxConstants[_0x221c[3037]])&&this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2231]]]==mxConstants[_0x221c[2232]]?_0x221c[3038]:_0x221c[3039]};mxElbowEdgeHandler[_0x221c[202]][_0x221c[2597]]=function(_0xc851x2){var _0xc851x3=null;if(null!=this[_0x221c[2994]]&&null!=this[_0x221c[2994]][1]&&(_0xc851x2==this[_0x221c[2994]][1][_0x221c[252]]||_0xc851x2[_0x221c[265]]==this[_0x221c[2994]][1][_0x221c[252]])){_0xc851x3=this[_0x221c[3032]],_0xc851x3=mxResources[_0x221c[203]](_0xc851x3)||_0xc851x3};return _0xc851x3};mxElbowEdgeHandler[_0x221c[202]][_0x221c[2196]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[518]](),_0xc851x5=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[512]](),_0xc851x9=this[_0x221c[724]][_0x221c[2078]];_0xc851x3&&(_0xc851x2[_0x221c[235]]=this[_0x221c[1179]][_0x221c[1021]](_0xc851x2[_0x221c[235]]),_0xc851x2[_0x221c[236]]=this[_0x221c[1179]][_0x221c[1021]](_0xc851x2[_0x221c[236]]));_0xc851x2[_0x221c[235]]=Math[_0x221c[488]](_0xc851x2[_0x221c[235]]/_0xc851x4-_0xc851x5[_0x221c[235]]-_0xc851x9[_0x221c[235]]);_0xc851x2[_0x221c[236]]=Math[_0x221c[488]](_0xc851x2[_0x221c[236]]/_0xc851x4-_0xc851x5[_0x221c[236]]-_0xc851x9[_0x221c[236]])};mxElbowEdgeHandler[_0x221c[202]][_0x221c[3030]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1721]](this[_0x221c[724]][_0x221c[246]])[_0x221c[1525]],_0xc851x4=null!=_0xc851x4?_0xc851x4[0]:null,_0xc851x4=null==_0xc851x4? new mxPoint(_0xc851x2[_0x221c[235]]+(_0xc851x3[_0x221c[235]]-_0xc851x2[_0x221c[235]])/2,_0xc851x2[_0x221c[236]]+(_0xc851x3[_0x221c[236]]-_0xc851x2[_0x221c[236]])/2): new mxPoint(this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]]*(_0xc851x4[_0x221c[235]]+this[_0x221c[1179]][_0x221c[249]]()[_0x221c[513]][_0x221c[235]]+this[_0x221c[724]][_0x221c[2078]][_0x221c[235]]),this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]]*(_0xc851x4[_0x221c[236]]+this[_0x221c[1179]][_0x221c[249]]()[_0x221c[513]][_0x221c[236]]+this[_0x221c[724]][_0x221c[2078]][_0x221c[236]])),_0xc851x5=this[_0x221c[2994]][1][_0x221c[1562]],_0xc851x9=_0xc851x5[_0x221c[117]],_0xc851x5=_0xc851x5[_0x221c[119]];null==this[_0x221c[2959]]&&(_0xc851x5=_0xc851x9=mxConstants[_0x221c[2974]]);var _0xc851xa= new mxRectangle(Math[_0x221c[488]](_0xc851x4[_0x221c[235]]-_0xc851x9/2),Math[_0x221c[488]](_0xc851x4[_0x221c[236]]-_0xc851x5/2),_0xc851x9,_0xc851x5);null==this[_0x221c[2959]]&&(_0x221c[188]!=this[_0x221c[2972]][_0x221c[252]][_0x221c[124]][_0x221c[187]]&&mxUtils[_0x221c[1825]](_0xc851xa,this[_0x221c[2972]][_0x221c[1562]]))&&(_0xc851x9+=3,_0xc851x5+=3,_0xc851xa= new mxRectangle(Math[_0x221c[488]](_0xc851x4[_0x221c[235]]-_0xc851x9/2),Math[_0x221c[488]](_0xc851x4[_0x221c[236]]-_0xc851x5/2),_0xc851x9,_0xc851x5));this[_0x221c[2994]][1][_0x221c[1562]]=_0xc851xa;this[_0x221c[2994]][1][_0x221c[258]]()};function mxEdgeSegmentHandler(_0xc851x2){mxEdgeHandler[_0x221c[239]](this,_0xc851x2)}mxUtils[_0x221c[1284]](mxEdgeSegmentHandler,mxEdgeHandler);mxEdgeSegmentHandler[_0x221c[202]]= new mxElbowEdgeHandler;mxEdgeSegmentHandler[_0x221c[202]][_0x221c[196]]=mxEdgeSegmentHandler;mxEdgeSegmentHandler[_0x221c[202]][_0x221c[3018]]=function(_0xc851x2){if(this[_0x221c[729]]||this[_0x221c[3013]]){return mxElbowEdgeHandler[_0x221c[202]][_0x221c[3018]][_0x221c[183]](this,arguments)};this[_0x221c[2196]](_0xc851x2,!1);var _0xc851x3=this[_0x221c[724]][_0x221c[439]],_0xc851x4=_0xc851x3[0][_0x221c[238]]();this[_0x221c[2196]](_0xc851x4,!1);for(var _0xc851x5=[],_0xc851x9=1;_0xc851x9<_0xc851x3[_0x221c[67]];_0xc851x9++){var _0xc851xa=_0xc851x3[_0xc851x9][_0x221c[238]]();this[_0x221c[2196]](_0xc851xa,!1);_0xc851x9==this[_0x221c[1983]]&&(_0xc851x4[_0x221c[235]]==_0xc851xa[_0x221c[235]]?(_0xc851x4[_0x221c[235]]=_0xc851x2[_0x221c[235]],_0xc851xa[_0x221c[235]]=_0xc851x2[_0x221c[235]]):(_0xc851x4[_0x221c[236]]=_0xc851x2[_0x221c[236]],_0xc851xa[_0x221c[236]]=_0xc851x2[_0x221c[236]]));_0xc851x9<_0xc851x3[_0x221c[67]]-1&&_0xc851x5[_0x221c[207]](_0xc851xa);_0xc851x4=_0xc851xa};if(1==_0xc851x5[_0x221c[67]]){if(_0xc851x4=this[_0x221c[724]][_0x221c[441]],_0xc851x9=this[_0x221c[724]][_0x221c[2089]](!0),_0xc851xa=this[_0x221c[724]][_0x221c[2089]](!1),null!=_0xc851xa&null!=_0xc851x9){var _0xc851x12=this[_0x221c[724]][_0x221c[2078]][_0x221c[235]],_0xc851x13=this[_0x221c[724]][_0x221c[2078]][_0x221c[236]];mxUtils[_0x221c[442]](_0xc851xa,_0xc851x5[0][_0x221c[235]]+_0xc851x12,_0xc851x5[0][_0x221c[236]]+_0xc851x13)?_0xc851x3[1][_0x221c[236]]==_0xc851x3[2][_0x221c[236]]?_0xc851x5[0][_0x221c[236]]=_0xc851x4[_0x221c[2228]](_0xc851x9)-_0xc851x13:_0xc851x5[0][_0x221c[235]]=_0xc851x4[_0x221c[2230]](_0xc851x9)-_0xc851x12:mxUtils[_0x221c[442]](_0xc851x9,_0xc851x5[0][_0x221c[235]]+_0xc851x12,_0xc851x5[0][_0x221c[236]]+_0xc851x13)&&(_0xc851x3[1][_0x221c[236]]==_0xc851x3[0][_0x221c[236]]?_0xc851x5[0][_0x221c[236]]=_0xc851x4[_0x221c[2228]](_0xc851xa)-_0xc851x13:_0xc851x5[0][_0x221c[235]]=_0xc851x4[_0x221c[2230]](_0xc851xa)-_0xc851x12)}}else {0==_0xc851x5[_0x221c[67]]&&(_0xc851x5=[_0xc851x2])};return _0xc851x5};mxEdgeSegmentHandler[_0x221c[202]][_0x221c[3001]]=function(){var _0xc851x2=[],_0xc851x3=this[_0x221c[3009]](0);this[_0x221c[3002]](_0xc851x3);_0xc851x3[_0x221c[252]][_0x221c[124]][_0x221c[270]]=mxConstants[_0x221c[3011]];mxEvent[_0x221c[2733]](_0xc851x3[_0x221c[252]],this[_0x221c[1179]],this[_0x221c[724]]);_0xc851x2[_0x221c[207]](_0xc851x3);mxClient[_0x221c[754]]&&_0xc851x3[_0x221c[252]][_0x221c[57]](_0x221c[1377],_0x221c[130]);var _0xc851x4=this[_0x221c[724]][_0x221c[439]];if(this[_0x221c[1179]][_0x221c[2662]](this[_0x221c[724]][_0x221c[246]])){null==this[_0x221c[1525]]&&(this[_0x221c[1525]]=[]);for(var _0xc851x5=0;_0xc851x5<_0xc851x4[_0x221c[67]]-1;_0xc851x5++){_0xc851x3=this[_0x221c[3034]](),_0xc851x2[_0x221c[207]](_0xc851x3),_0xc851x3[_0x221c[252]][_0x221c[124]][_0x221c[270]]=0==_0xc851x4[_0xc851x5][_0x221c[235]]-_0xc851x4[_0xc851x5+1][_0x221c[235]]?_0x221c[3039]:_0x221c[3038],this[_0x221c[1525]][_0x221c[207]]( new mxPoint(0,0)),mxClient[_0x221c[754]]&&_0xc851x3[_0x221c[252]][_0x221c[57]](_0x221c[1377],_0x221c[130])}};_0xc851x3=this[_0x221c[3009]](_0xc851x4[_0x221c[67]]);this[_0x221c[3002]](_0xc851x3);_0xc851x3[_0x221c[252]][_0x221c[124]][_0x221c[270]]=mxConstants[_0x221c[3011]];mxEvent[_0x221c[2733]](_0xc851x3[_0x221c[252]],this[_0x221c[1179]],this[_0x221c[724]]);_0xc851x2[_0x221c[207]](_0xc851x3);mxClient[_0x221c[754]]&&_0xc851x3[_0x221c[252]][_0x221c[57]](_0x221c[1377],_0x221c[130]);return _0xc851x2};mxEdgeSegmentHandler[_0x221c[202]][_0x221c[258]]=function(){this[_0x221c[802]]();mxEdgeHandler[_0x221c[202]][_0x221c[258]][_0x221c[183]](this,arguments)};mxEdgeSegmentHandler[_0x221c[202]][_0x221c[802]]=function(){if(null!=this[_0x221c[2994]]){for(var _0xc851x2=0;_0xc851x2<this[_0x221c[2994]][_0x221c[67]];_0xc851x2++){null!=this[_0x221c[2994]][_0xc851x2]&&(this[_0x221c[2994]][_0xc851x2][_0x221c[515]](),this[_0x221c[2994]][_0xc851x2]=null)};this[_0x221c[2994]]=this[_0x221c[3001]]()}};mxEdgeSegmentHandler[_0x221c[202]][_0x221c[3030]]=function(_0xc851x2,_0xc851x3){if(this[_0x221c[1179]][_0x221c[2662]](this[_0x221c[724]][_0x221c[246]])){var _0xc851x4=mxConstants[_0x221c[2974]],_0xc851x5=this[_0x221c[724]][_0x221c[439]];if(null!=_0xc851x5&&1<_0xc851x5[_0x221c[67]]){for(var _0xc851x9=0;_0xc851x9<this[_0x221c[724]][_0x221c[439]][_0x221c[67]]-1;_0xc851x9++){if(null!=this[_0x221c[2994]][_0xc851x9+1]){_0xc851x2=_0xc851x5[_0xc851x9];_0xc851x3=_0xc851x5[_0xc851x9+1];var _0xc851xa= new mxPoint(_0xc851x2[_0x221c[235]]+(_0xc851x3[_0x221c[235]]-_0xc851x2[_0x221c[235]])/2,_0xc851x2[_0x221c[236]]+(_0xc851x3[_0x221c[236]]-_0xc851x2[_0x221c[236]])/2);this[_0x221c[2994]][_0xc851x9+1][_0x221c[1562]]= new mxRectangle(Math[_0x221c[488]](_0xc851xa[_0x221c[235]]-_0xc851x4/2),Math[_0x221c[488]](_0xc851xa[_0x221c[236]]-_0xc851x4/2),_0xc851x4,_0xc851x4);this[_0x221c[2994]][_0xc851x9+1][_0x221c[258]]()}}}}};mxEdgeSegmentHandler[_0x221c[202]][_0x221c[3023]]=function(_0xc851x2,_0xc851x3){_0xc851x3=[];var _0xc851x4=this[_0x221c[2997]];if(1<_0xc851x4[_0x221c[67]]){for(var _0xc851x5=_0xc851x4[0],_0xc851x9=_0xc851x4[1],_0xc851xa=2;_0xc851xa<_0xc851x4[_0x221c[67]];_0xc851xa++){var _0xc851x12=_0xc851x4[_0xc851xa];if((Math[_0x221c[488]](_0xc851x5[_0x221c[235]])!=Math[_0x221c[488]](_0xc851x9[_0x221c[235]])||Math[_0x221c[488]](_0xc851x9[_0x221c[235]])!=Math[_0x221c[488]](_0xc851x12[_0x221c[235]]))&&(Math[_0x221c[488]](_0xc851x5[_0x221c[236]])!=Math[_0x221c[488]](_0xc851x9[_0x221c[236]])||Math[_0x221c[488]](_0xc851x9[_0x221c[236]])!=Math[_0x221c[488]](_0xc851x12[_0x221c[236]]))){_0xc851x5=_0xc851x9,_0xc851x9=_0xc851x9[_0x221c[238]](),this[_0x221c[2196]](_0xc851x9,!1),_0xc851x3[_0x221c[207]](_0xc851x9)};_0xc851x9=_0xc851x12}};mxElbowEdgeHandler[_0x221c[202]][_0x221c[3023]][_0x221c[183]](this,arguments)};function mxKeyHandler(_0xc851x2,_0xc851x3){null!=_0xc851x2&&(this[_0x221c[1179]]=_0xc851x2,this[_0x221c[772]]=_0xc851x3||document[_0x221c[158]],this[_0x221c[3040]]=[],this[_0x221c[3041]]=[],this[_0x221c[3042]]=[],this[_0x221c[3043]]=[],mxEvent[_0x221c[169]](this[_0x221c[772]],_0x221c[2123],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[3044]](_0xc851x2)})),mxClient[_0x221c[80]]&&mxEvent[_0x221c[169]](window,_0x221c[2428],mxUtils[_0x221c[885]](this,function(){this[_0x221c[515]]()})))}mxKeyHandler[_0x221c[202]][_0x221c[1179]]=null;mxKeyHandler[_0x221c[202]][_0x221c[772]]=null;mxKeyHandler[_0x221c[202]][_0x221c[3040]]=null;mxKeyHandler[_0x221c[202]][_0x221c[3041]]=null;mxKeyHandler[_0x221c[202]][_0x221c[3042]]=null;mxKeyHandler[_0x221c[202]][_0x221c[3043]]=null;mxKeyHandler[_0x221c[202]][_0x221c[984]]= !0;mxKeyHandler[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxKeyHandler[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxKeyHandler[_0x221c[202]][_0x221c[3045]]=function(_0xc851x2,_0xc851x3){this[_0x221c[3040]][_0xc851x2]=_0xc851x3};mxKeyHandler[_0x221c[202]][_0x221c[3046]]=function(_0xc851x2,_0xc851x3){this[_0x221c[3041]][_0xc851x2]=_0xc851x3};mxKeyHandler[_0x221c[202]][_0x221c[3047]]=function(_0xc851x2,_0xc851x3){this[_0x221c[3042]][_0xc851x2]=_0xc851x3};mxKeyHandler[_0x221c[202]][_0x221c[3048]]=function(_0xc851x2,_0xc851x3){this[_0x221c[3043]][_0xc851x2]=_0xc851x3};mxKeyHandler[_0x221c[202]][_0x221c[775]]=function(_0xc851x2){return mxEvent[_0x221c[775]](_0xc851x2)};mxKeyHandler[_0x221c[202]][_0x221c[3049]]=function(_0xc851x2){return null!=_0xc851x2?this[_0x221c[775]](_0xc851x2)?mxEvent[_0x221c[774]](_0xc851x2)?this[_0x221c[3043]][_0xc851x2[_0x221c[2124]]]:this[_0x221c[3042]][_0xc851x2[_0x221c[2124]]]:mxEvent[_0x221c[774]](_0xc851x2)?this[_0x221c[3041]][_0xc851x2[_0x221c[2124]]]:this[_0x221c[3040]][_0xc851x2[_0x221c[2124]]]:null};mxKeyHandler[_0x221c[202]][_0x221c[3050]]=function(_0xc851x2){_0xc851x2=mxEvent[_0x221c[728]](_0xc851x2);if(_0xc851x2==this[_0x221c[772]]||_0xc851x2[_0x221c[265]]==this[_0x221c[772]]||null!=this[_0x221c[1179]][_0x221c[2347]]&&_0xc851x2==this[_0x221c[1179]][_0x221c[2347]][_0x221c[126]]){return !0};for(;null!=_0xc851x2;){if(_0xc851x2==this[_0x221c[1179]][_0x221c[526]]){return !0};_0xc851x2=_0xc851x2[_0x221c[265]]};return !1};mxKeyHandler[_0x221c[202]][_0x221c[3044]]=function(_0xc851x2){if(this[_0x221c[1179]][_0x221c[994]]()&&!mxEvent[_0x221c[721]](_0xc851x2)&&this[_0x221c[3050]](_0xc851x2)&&this[_0x221c[994]]()){if(27==_0xc851x2[_0x221c[2124]]){this[_0x221c[859]](_0xc851x2)}else {if(!this[_0x221c[1179]][_0x221c[2203]]()){var _0xc851x3=this[_0x221c[3049]](_0xc851x2);null!=_0xc851x3&&(_0xc851x3(_0xc851x2),mxEvent[_0x221c[722]](_0xc851x2))}}}};mxKeyHandler[_0x221c[202]][_0x221c[859]]=function(_0xc851x2){this[_0x221c[1179]][_0x221c[2608]]()&&this[_0x221c[1179]][_0x221c[859]](_0xc851x2)};mxKeyHandler[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[772]]=null};function mxTooltipHandler(_0xc851x2,_0xc851x3){null!=_0xc851x2&&(this[_0x221c[1179]]=_0xc851x2,this[_0x221c[1140]]=_0xc851x3||500,this[_0x221c[1179]][_0x221c[1133]](this))}mxTooltipHandler[_0x221c[202]][_0x221c[931]]=10005;mxTooltipHandler[_0x221c[202]][_0x221c[1179]]=null;mxTooltipHandler[_0x221c[202]][_0x221c[1140]]=null;mxTooltipHandler[_0x221c[202]][_0x221c[3051]]= !1;mxTooltipHandler[_0x221c[202]][_0x221c[984]]= !0;mxTooltipHandler[_0x221c[202]][_0x221c[994]]=function(){return this[_0x221c[984]]};mxTooltipHandler[_0x221c[202]][_0x221c[995]]=function(_0xc851x2){this[_0x221c[984]]=_0xc851x2};mxTooltipHandler[_0x221c[202]][_0x221c[2277]]=function(){return this[_0x221c[3051]]};mxTooltipHandler[_0x221c[202]][_0x221c[3052]]=function(_0xc851x2){this[_0x221c[3051]]=_0xc851x2};mxTooltipHandler[_0x221c[202]][_0x221c[176]]=function(){null!=document[_0x221c[112]]&&(this[_0x221c[485]]=document[_0x221c[55]](_0x221c[485]),this[_0x221c[485]][_0x221c[926]]=_0x221c[3053],this[_0x221c[485]][_0x221c[124]][_0x221c[187]]=_0x221c[188],this[_0x221c[485]][_0x221c[124]][_0x221c[931]]=this[_0x221c[931]],document[_0x221c[112]][_0x221c[62]](this[_0x221c[485]]),mxEvent[_0x221c[169]](this[_0x221c[485]],_0x221c[751],mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[3054]]()})))};mxTooltipHandler[_0x221c[202]][_0x221c[787]]=function(_0xc851x2,_0xc851x3){this[_0x221c[862]](_0xc851x3,!1);this[_0x221c[3054]]()};mxTooltipHandler[_0x221c[202]][_0x221c[788]]=function(_0xc851x2,_0xc851x3){if(_0xc851x3[_0x221c[730]]()!=this[_0x221c[1217]]||_0xc851x3[_0x221c[732]]()!=this[_0x221c[1218]]){this[_0x221c[862]](_0xc851x3,!0),(this[_0x221c[2277]]()||_0xc851x3[_0x221c[248]]()!=this[_0x221c[724]]||_0xc851x3[_0x221c[728]]()!=this[_0x221c[252]]&&(!this[_0x221c[3055]]||null!=_0xc851x3[_0x221c[248]]()&&this[_0x221c[3055]]==(_0xc851x3[_0x221c[729]](_0xc851x3[_0x221c[248]]()[_0x221c[253]])||!_0xc851x3[_0x221c[729]](_0xc851x3[_0x221c[248]]()[_0x221c[963]]))))&&this[_0x221c[3054]]()};this[_0x221c[1217]]=_0xc851x3[_0x221c[730]]();this[_0x221c[1218]]=_0xc851x3[_0x221c[732]]()};mxTooltipHandler[_0x221c[202]][_0x221c[789]]=function(_0xc851x2,_0xc851x3){this[_0x221c[862]](_0xc851x3,!0);this[_0x221c[3054]]()};mxTooltipHandler[_0x221c[202]][_0x221c[3056]]=function(){null!=this[_0x221c[1123]]&&(window[_0x221c[2924]](this[_0x221c[1123]]),this[_0x221c[1123]]=null)};mxTooltipHandler[_0x221c[202]][_0x221c[862]]=function(_0xc851x2,_0xc851x3){this[_0x221c[3056]]();if(_0xc851x3&&this[_0x221c[994]]()&&null!=_0xc851x2[_0x221c[248]]()&&(null==this[_0x221c[485]]||_0x221c[188]==this[_0x221c[485]][_0x221c[124]][_0x221c[187]])){var _0xc851x4=_0xc851x2[_0x221c[248]](),_0xc851x5=_0xc851x2[_0x221c[728]](),_0xc851x9=_0xc851x2[_0x221c[730]](),_0xc851xa=_0xc851x2[_0x221c[732]](),_0xc851x12=_0xc851x2[_0x221c[729]](_0xc851x4[_0x221c[253]])||_0xc851x2[_0x221c[729]](_0xc851x4[_0x221c[963]]);this[_0x221c[1123]]=window[_0x221c[261]](mxUtils[_0x221c[885]](this,function(){if(!this[_0x221c[1179]][_0x221c[2203]]()&&!this[_0x221c[1179]][_0x221c[2316]][_0x221c[1031]]()){var _0xc851x2=this[_0x221c[1179]][_0x221c[2595]](_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa);this[_0x221c[539]](_0xc851x2,_0xc851x9,_0xc851xa);this[_0x221c[724]]=_0xc851x4;this[_0x221c[252]]=_0xc851x5;this[_0x221c[3055]]=_0xc851x12}}),this[_0x221c[1140]])}};mxTooltipHandler[_0x221c[202]][_0x221c[801]]=function(){this[_0x221c[3056]]();this[_0x221c[3054]]()};mxTooltipHandler[_0x221c[202]][_0x221c[3054]]=function(){null!=this[_0x221c[485]]&&(this[_0x221c[485]][_0x221c[124]][_0x221c[187]]=_0x221c[188])};mxTooltipHandler[_0x221c[202]][_0x221c[539]]=function(_0xc851x2,_0xc851x3,_0xc851x4){if(null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]){null==this[_0x221c[485]]&&this[_0x221c[176]]();var _0xc851x5=mxUtils[_0x221c[444]]();this[_0x221c[485]][_0x221c[124]][_0x221c[361]]=_0xc851x3+_0xc851x5[_0x221c[235]]+_0x221c[168];this[_0x221c[485]][_0x221c[124]][_0x221c[125]]=_0xc851x4+mxConstants[_0x221c[560]]+_0xc851x5[_0x221c[236]]+_0x221c[168];mxUtils[_0x221c[1331]](_0xc851x2)?(this[_0x221c[485]][_0x221c[339]]=_0x221c[110],this[_0x221c[485]][_0x221c[62]](_0xc851x2)):this[_0x221c[485]][_0x221c[339]]=_0xc851x2[_0x221c[230]](/\n/g,_0x221c[545]);this[_0x221c[485]][_0x221c[124]][_0x221c[187]]=_0x221c[110];mxUtils[_0x221c[933]](this[_0x221c[485]])}};mxTooltipHandler[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[1179]][_0x221c[1148]](this);mxEvent[_0x221c[762]](this[_0x221c[485]]);null!=this[_0x221c[485]]&&null!=this[_0x221c[485]][_0x221c[265]]&&this[_0x221c[485]][_0x221c[265]][_0x221c[266]](this[_0x221c[485]]);this[_0x221c[485]]=null};function mxCellTracker(_0xc851x2,_0xc851x3,_0xc851x4){mxCellMarker[_0x221c[239]](this,_0xc851x2,_0xc851x3);this[_0x221c[1179]][_0x221c[1133]](this);null!=_0xc851x4&&(this[_0x221c[736]]=_0xc851x4);mxClient[_0x221c[80]]&&mxEvent[_0x221c[169]](window,_0x221c[2428],mxUtils[_0x221c[885]](this,function(){this[_0x221c[515]]()}))}mxUtils[_0x221c[1284]](mxCellTracker,mxCellMarker);mxCellTracker[_0x221c[202]][_0x221c[787]]=function(_0xc851x2,_0xc851x3){};mxCellTracker[_0x221c[202]][_0x221c[788]]=function(_0xc851x2,_0xc851x3){this[_0x221c[994]]()&&this[_0x221c[2871]](_0xc851x3)};mxCellTracker[_0x221c[202]][_0x221c[789]]=function(_0xc851x2,_0xc851x3){this[_0x221c[862]]()};mxCellTracker[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[2717]]||(this[_0x221c[2717]]= !0,this[_0x221c[1179]][_0x221c[1148]](this),mxCellMarker[_0x221c[202]][_0x221c[515]][_0x221c[183]](this))};function mxCellHighlight(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){null!=_0xc851x2&&(this[_0x221c[1179]]=_0xc851x2,this[_0x221c[2943]]=null!=_0xc851x3?_0xc851x3:mxConstants[_0x221c[2854]],this[_0x221c[610]]=null!=_0xc851x4?_0xc851x4:mxConstants[_0x221c[3057]],this[_0x221c[648]]=null!=_0xc851x5?_0xc851x5:!1,this[_0x221c[3058]]=mxUtils[_0x221c[885]](this,function(){this[_0x221c[2950]]()}),this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.SCALE,this[_0x221c[3058]]),this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.TRANSLATE,this[_0x221c[3058]]),this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.SCALE_AND_TRANSLATE,this[_0x221c[3058]]),this[_0x221c[1179]][_0x221c[502]]()[_0x221c[169]](mxEvent.CHANGE,this[_0x221c[3058]]),this[_0x221c[2877]]=mxUtils[_0x221c[885]](this,function(){this[_0x221c[801]]()}),this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.DOWN,this[_0x221c[2877]]),this[_0x221c[1179]][_0x221c[249]]()[_0x221c[169]](mxEvent.UP,this[_0x221c[2877]]))}mxCellHighlight[_0x221c[202]][_0x221c[3059]]= !1;mxCellHighlight[_0x221c[202]][_0x221c[1179]]= !0;mxCellHighlight[_0x221c[202]][_0x221c[724]]=null;mxCellHighlight[_0x221c[202]][_0x221c[657]]=2;mxCellHighlight[_0x221c[202]][_0x221c[2877]]=null;mxCellHighlight[_0x221c[202]][_0x221c[2828]]=function(_0xc851x2){this[_0x221c[2943]]=_0xc851x2;null!=this[_0x221c[253]]&&(this[_0x221c[253]][_0x221c[1336]]=_0xc851x2)};mxCellHighlight[_0x221c[202]][_0x221c[3060]]=function(){this[_0x221c[253]]=this[_0x221c[2156]]();this[_0x221c[2950]]();!this[_0x221c[3059]]&&this[_0x221c[253]][_0x221c[252]][_0x221c[265]][_0x221c[285]]!=this[_0x221c[253]][_0x221c[252]]&&this[_0x221c[253]][_0x221c[252]][_0x221c[265]][_0x221c[950]](this[_0x221c[253]][_0x221c[252]],this[_0x221c[253]][_0x221c[252]][_0x221c[265]][_0x221c[285]])};mxCellHighlight[_0x221c[202]][_0x221c[2156]]=function(){var _0xc851x2=null,_0xc851x2=this[_0x221c[1179]][_0x221c[251]][_0x221c[250]](this[_0x221c[724]][_0x221c[246]])? new mxPolyline(this[_0x221c[724]][_0x221c[439]],this[_0x221c[2943]],this[_0x221c[610]]): new mxRectangleShape( new mxRectangle,null,this[_0x221c[2943]],this[_0x221c[610]]);_0xc851x2[_0x221c[507]]=this[_0x221c[1179]][_0x221c[507]]!=mxConstants[_0x221c[508]]?mxConstants[_0x221c[1523]]:mxConstants[_0x221c[508]];_0xc851x2[_0x221c[176]](this[_0x221c[1179]][_0x221c[249]]()[_0x221c[1524]]());mxEvent[_0x221c[2733]](_0xc851x2[_0x221c[252]],this[_0x221c[1179]],this[_0x221c[724]]);_0xc851x2[_0x221c[1564]]=0;_0xc851x2[_0x221c[1229]]= !1;_0xc851x2[_0x221c[1522]]=this[_0x221c[648]];return _0xc851x2};mxCellHighlight[_0x221c[202]][_0x221c[2950]]=function(){if(null!=this[_0x221c[724]]&&null!=this[_0x221c[253]]){var _0xc851x2=0;this[_0x221c[1179]][_0x221c[251]][_0x221c[250]](this[_0x221c[724]][_0x221c[246]])?this[_0x221c[253]][_0x221c[1525]]=this[_0x221c[724]][_0x221c[439]]:(this[_0x221c[253]][_0x221c[1562]]= new mxRectangle(this[_0x221c[724]][_0x221c[235]]-this[_0x221c[657]],this[_0x221c[724]][_0x221c[236]]-this[_0x221c[657]],this[_0x221c[724]][_0x221c[117]]+2*this[_0x221c[657]],this[_0x221c[724]][_0x221c[119]]+2*this[_0x221c[657]]),_0xc851x2=Number(this[_0x221c[724]][_0x221c[124]][mxConstants[_0x221c[2278]]]||_0x221c[468]));null!=this[_0x221c[724]][_0x221c[253]]&&this[_0x221c[253]][_0x221c[1609]](this[_0x221c[724]][_0x221c[253]][_0x221c[1610]]());0!=_0xc851x2&&(this[_0x221c[253]][_0x221c[603]]=_0xc851x2);this[_0x221c[253]][_0x221c[258]]()}};mxCellHighlight[_0x221c[202]][_0x221c[801]]=function(){this[_0x221c[1016]](null)};mxCellHighlight[_0x221c[202]][_0x221c[1016]]=function(_0xc851x2){this[_0x221c[724]]!=_0xc851x2&&(null!=this[_0x221c[253]]&&(this[_0x221c[253]][_0x221c[515]](),this[_0x221c[253]]=null),this[_0x221c[724]]=_0xc851x2,null!=this[_0x221c[724]]&&this[_0x221c[3060]]())};mxCellHighlight[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[1179]][_0x221c[249]]()[_0x221c[745]](this[_0x221c[3058]]);this[_0x221c[1179]][_0x221c[502]]()[_0x221c[745]](this[_0x221c[3058]]);this[_0x221c[1179]][_0x221c[249]]()[_0x221c[745]](this[_0x221c[2877]]);this[_0x221c[1179]][_0x221c[502]]()[_0x221c[745]](this[_0x221c[2877]]);null!=this[_0x221c[253]]&&(this[_0x221c[253]][_0x221c[515]](),this[_0x221c[253]]=null)};function mxDefaultKeyHandler(_0xc851x2){if(null!=_0xc851x2){this[_0x221c[3061]]=_0xc851x2;this[_0x221c[2458]]= new mxKeyHandler(_0xc851x2[_0x221c[1179]]);var _0xc851x3=this[_0x221c[2458]][_0x221c[859]];this[_0x221c[2458]][_0x221c[859]]=function(_0xc851x4){_0xc851x3[_0x221c[183]](this,arguments);_0xc851x2[_0x221c[3062]]();_0xc851x2[_0x221c[746]]( new mxEventObject(mxEvent.ESCAPE,_0x221c[763],_0xc851x4))}}}mxDefaultKeyHandler[_0x221c[202]][_0x221c[3061]]=null;mxDefaultKeyHandler[_0x221c[202]][_0x221c[2458]]=null;mxDefaultKeyHandler[_0x221c[202]][_0x221c[3063]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=mxUtils[_0x221c[885]](this,function(){this[_0x221c[3061]][_0x221c[350]](_0xc851x3)});_0xc851x4?this[_0x221c[2458]][_0x221c[3047]](_0xc851x2,_0xc851x5):this[_0x221c[2458]][_0x221c[3045]](_0xc851x2,_0xc851x5)};mxDefaultKeyHandler[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[2458]][_0x221c[515]]();this[_0x221c[2458]]=null};function mxDefaultPopupMenu(_0xc851x2){this[_0x221c[3064]]=_0xc851x2}mxDefaultPopupMenu[_0x221c[202]][_0x221c[88]]=null;mxDefaultPopupMenu[_0x221c[202]][_0x221c[3064]]=null;mxDefaultPopupMenu[_0x221c[202]][_0x221c[3065]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){if(null!=this[_0x221c[3064]]){var _0xc851x9=this[_0x221c[3066]](_0xc851x2,_0xc851x4,_0xc851x5);this[_0x221c[3067]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,this[_0x221c[3064]][_0x221c[285]],null)}};mxDefaultPopupMenu[_0x221c[202]][_0x221c[3067]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12){for(var _0xc851x13=!1;null!=_0xc851xa;){if(_0x221c[99]==_0xc851xa[_0x221c[301]]){var _0xc851x14=_0xc851xa[_0x221c[284]](_0x221c[3068]);if(null==_0xc851x14||_0xc851x9[_0xc851x14]){var _0xc851x14=_0xc851xa[_0x221c[284]](_0x221c[3069]),_0xc851x14=mxResources[_0x221c[203]](_0xc851x14)||_0xc851x14,_0xc851x15=mxUtils[_0x221c[1545]](mxUtils[_0x221c[329]](_0xc851xa)),_0xc851x16=_0xc851xa[_0x221c[284]](_0x221c[892]),_0xc851x17=_0xc851xa[_0x221c[284]](_0x221c[2916]),_0xc851x18=_0xc851xa[_0x221c[284]](_0x221c[3070]);_0xc851x13&&(_0xc851x3[_0x221c[1051]](_0xc851x12),_0xc851x13= !1);null!=_0xc851x17&&this[_0x221c[88]]&&(_0xc851x17=this[_0x221c[88]]+_0xc851x17);_0xc851x14=this[_0x221c[3071]](_0xc851x3,_0xc851x2,_0xc851x14,_0xc851x17,_0xc851x15,_0xc851x16,_0xc851x4,_0xc851x12,_0xc851x18);this[_0x221c[3067]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa[_0x221c[285]],_0xc851x14)}}else {_0x221c[3072]==_0xc851xa[_0x221c[301]]&&(_0xc851x13= !0)};_0xc851xa=_0xc851xa[_0x221c[287]]}};mxDefaultPopupMenu[_0x221c[202]][_0x221c[3071]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa,_0xc851x12,_0xc851x13,_0xc851x14){return _0xc851x2[_0x221c[1025]](_0xc851x4,_0xc851x5,function(_0xc851x2){_0x221c[279]== typeof _0xc851x9&&_0xc851x9[_0x221c[239]](_0xc851x3,_0xc851x3,_0xc851x12,_0xc851x2);null!=_0xc851xa&&_0xc851x3[_0x221c[350]](_0xc851xa,_0xc851x12,_0xc851x2)},_0xc851x13,_0xc851x14)};mxDefaultPopupMenu[_0x221c[202]][_0x221c[3066]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=_0xc851x2[_0x221c[1179]][_0x221c[502]](),_0xc851x9=_0xc851x5[_0x221c[262]](_0xc851x3),_0xc851xa=[];_0xc851xa[_0x221c[3073]]=null==_0xc851x3;_0xc851xa[_0x221c[3074]]=1<_0xc851x2[_0x221c[1179]][_0x221c[2694]]();_0xc851xa[_0x221c[3075]]=_0xc851x5[_0x221c[501]]()!=_0xc851x5[_0x221c[1197]](_0xc851x2[_0x221c[1179]][_0x221c[902]]());_0xc851xa[_0x221c[246]]=null!=_0xc851x3;_0xc851x5=null!=_0xc851x3&&1==_0xc851x2[_0x221c[1179]][_0x221c[2694]]();_0xc851xa[_0x221c[3076]]=_0xc851x5&&0<_0xc851x9;_0xc851xa[_0x221c[3077]]=_0xc851x5&&_0xc851x2[_0x221c[1179]][_0x221c[2516]](_0xc851x3,!1);_0xc851xa[_0x221c[3078]]=_0xc851x5&&_0xc851x2[_0x221c[1179]][_0x221c[2516]](_0xc851x3,!0);_0xc851xa[_0x221c[3079]]=_0xc851x5&&_0xc851x2[_0x221c[1179]][_0x221c[2553]](_0xc851x3);_0xc851xa[_0x221c[3080]]=_0xc851xa[_0x221c[3079]]&&0==_0xc851x9;_0xc851xa[_0x221c[687]]=_0xc851x5&&_0xc851x2[_0x221c[1179]][_0x221c[1730]](_0xc851x3);_0xc851x9=this[_0x221c[3064]][_0x221c[64]](_0x221c[3081]);for(_0xc851x5=0;_0xc851x5<_0xc851x9[_0x221c[67]];_0xc851x5++){var _0xc851x12=mxUtils[_0x221c[1545]](mxUtils[_0x221c[329]](_0xc851x9[_0xc851x5])),_0xc851x13=_0xc851x9[_0xc851x5][_0x221c[284]](_0x221c[298]);null!=_0xc851x13&&_0x221c[279]== typeof _0xc851x12&&(_0xc851xa[_0xc851x13]=_0xc851x12(_0xc851x2,_0xc851x3,_0xc851x4))};return _0xc851xa};function mxDefaultToolbar(_0xc851x2,_0xc851x3){this[_0x221c[3061]]=_0xc851x3;null!=_0xc851x2&&null!=_0xc851x3&&this[_0x221c[176]](_0xc851x2)}mxDefaultToolbar[_0x221c[202]][_0x221c[3061]]=null;mxDefaultToolbar[_0x221c[202]][_0x221c[3082]]=null;mxDefaultToolbar[_0x221c[202]][_0x221c[2877]]=null;mxDefaultToolbar[_0x221c[202]][_0x221c[657]]=4;mxDefaultToolbar[_0x221c[202]][_0x221c[2804]]= !1;mxDefaultToolbar[_0x221c[202]][_0x221c[176]]=function(_0xc851x2){null!=_0xc851x2&&(this[_0x221c[3082]]= new mxToolbar(_0xc851x2),this[_0x221c[3082]][_0x221c[169]](mxEvent.SELECT,mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x4){var _0xc851x5=_0xc851x4[_0x221c[720]](_0x221c[279]);this[_0x221c[3061]][_0x221c[3083]]=null!=_0xc851x5?mxUtils[_0x221c[885]](this,function(){_0xc851x5[_0x221c[183]](this,arguments);this[_0x221c[3082]][_0x221c[1050]]()}):null})),this[_0x221c[2877]]=mxUtils[_0x221c[885]](this,function(){null!=this[_0x221c[3082]]&&this[_0x221c[3082]][_0x221c[1050]](!0)}),this[_0x221c[3061]][_0x221c[1179]][_0x221c[169]](mxEvent.DOUBLE_CLICK,this[_0x221c[2877]]),this[_0x221c[3061]][_0x221c[169]](mxEvent.ESCAPE,this[_0x221c[2877]]))};mxDefaultToolbar[_0x221c[202]][_0x221c[1025]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=mxUtils[_0x221c[885]](this,function(){null!=_0xc851x4&&0<_0xc851x4[_0x221c[67]]&&this[_0x221c[3061]][_0x221c[350]](_0xc851x4)});return this[_0x221c[3082]][_0x221c[1025]](_0xc851x2,_0xc851x3,_0xc851x9,_0xc851x5)};mxDefaultToolbar[_0x221c[202]][_0x221c[1051]]=function(_0xc851x2){_0xc851x2=_0xc851x2||mxClient[_0x221c[88]]+_0x221c[3084];this[_0x221c[3082]][_0x221c[1051]](_0xc851x2)};mxDefaultToolbar[_0x221c[202]][_0x221c[970]]=function(){return this[_0x221c[3082]][_0x221c[970]]()};mxDefaultToolbar[_0x221c[202]][_0x221c[1038]]=function(_0xc851x2){return this[_0x221c[3082]][_0x221c[1038]](_0xc851x2)};mxDefaultToolbar[_0x221c[202]][_0x221c[3085]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=mxUtils[_0x221c[885]](this,function(){this[_0x221c[3061]][_0x221c[350]](_0xc851x4)});this[_0x221c[972]](_0xc851x2,_0xc851x3,_0xc851x5)};mxDefaultToolbar[_0x221c[202]][_0x221c[972]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return this[_0x221c[3082]][_0x221c[972]](_0xc851x2,_0xc851x3,_0xc851x4)};mxDefaultToolbar[_0x221c[202]][_0x221c[1048]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){var _0xc851xa=mxUtils[_0x221c[885]](this,function(){this[_0x221c[3061]][_0x221c[3086]](_0xc851x4);null!=_0xc851x9&&_0xc851x9(this[_0x221c[3061]])});return this[_0x221c[3082]][_0x221c[1042]](_0xc851x2,_0xc851x3,_0xc851xa,_0xc851x5)};mxDefaultToolbar[_0x221c[202]][_0x221c[3087]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9,_0xc851xa){var _0xc851x12=function(){return _0x221c[279]== typeof _0xc851x4?_0xc851x4():null!=_0xc851x4?_0xc851x4[_0x221c[238]]():null},_0xc851x13=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x3){_0x221c[279]== typeof _0xc851x9?_0xc851x9(this[_0x221c[3061]],_0xc851x12(),_0xc851x2,_0xc851x3):this[_0x221c[1008]](_0xc851x12(),_0xc851x2,_0xc851x3);this[_0x221c[3082]][_0x221c[1050]]();mxEvent[_0x221c[722]](_0xc851x2)});_0xc851x2=this[_0x221c[3082]][_0x221c[1048]](_0xc851x2,_0xc851x3,_0xc851x13,_0xc851x5,null,_0xc851xa);this[_0x221c[3088]](_0xc851x2,function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x13(_0xc851x3,_0xc851x4)});return _0xc851x2};mxDefaultToolbar[_0x221c[202]][_0x221c[1008]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[3061]][_0x221c[1179]],_0xc851x9=_0xc851x5[_0x221c[502]]();if(null==_0xc851x4||_0xc851x9[_0x221c[250]](_0xc851x4)||!this[_0x221c[2804]]||!_0xc851x5[_0x221c[2565]](_0xc851x4)){for(;null!=_0xc851x4&&!_0xc851x5[_0x221c[2685]](_0xc851x4,[_0xc851x2],_0xc851x3);){_0xc851x4=_0xc851x9[_0x221c[1197]](_0xc851x4)};this[_0x221c[1937]](_0xc851x2,_0xc851x3,_0xc851x4)}else {this[_0x221c[807]](_0xc851x2,_0xc851x3,_0xc851x4)}};mxDefaultToolbar[_0x221c[202]][_0x221c[1937]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[3061]][_0x221c[1179]];if(_0xc851x5[_0x221c[2621]](_0xc851x2)){var _0xc851x9=mxEvent[_0x221c[731]](_0xc851x3),_0xc851xa=mxEvent[_0x221c[733]](_0xc851x3),_0xc851x9=mxUtils[_0x221c[2196]](_0xc851x5[_0x221c[526]],_0xc851x9,_0xc851xa);return _0xc851x5[_0x221c[2655]]()&&_0xc851x5[_0x221c[2686]](_0xc851x4,[_0xc851x2],_0xc851x3)?_0xc851x5[_0x221c[853]](_0xc851x4,[_0xc851x2],null,_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[236]]):this[_0x221c[3061]][_0x221c[817]](_0xc851x4,_0xc851x2,_0xc851x9[_0x221c[235]],_0xc851x9[_0x221c[236]])};return null};mxDefaultToolbar[_0x221c[202]][_0x221c[807]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=this[_0x221c[3061]][_0x221c[1179]];var _0xc851x5=_0xc851x3[_0x221c[502]]();if(null!=_0xc851x4&&_0xc851x3[_0x221c[2565]](_0xc851x2)&&_0xc851x3[_0x221c[2581]](null,_0xc851x4,_0xc851x2)){var _0xc851x9=null;_0xc851x5[_0x221c[473]]();try{var _0xc851xa=_0xc851x5[_0x221c[1721]](_0xc851x4),_0xc851x12=_0xc851x5[_0x221c[1721]](_0xc851x2)[_0x221c[238]]();_0xc851x12[_0x221c[235]]=_0xc851xa[_0x221c[235]]+(_0xc851xa[_0x221c[117]]-_0xc851x12[_0x221c[117]])/2;_0xc851x12[_0x221c[236]]=_0xc851xa[_0x221c[236]]+(_0xc851xa[_0x221c[119]]-_0xc851x12[_0x221c[119]])/2;var _0xc851x13=this[_0x221c[657]]*_0xc851x3[_0x221c[1020]],_0xc851x14=20*_0xc851x5[_0x221c[1962]](_0xc851x4,!0);this[_0x221c[3061]][_0x221c[3089]]?_0xc851x12[_0x221c[235]]+=(_0xc851x12[_0x221c[117]]+_0xc851xa[_0x221c[117]])/2+_0xc851x13+_0xc851x14:_0xc851x12[_0x221c[236]]+=(_0xc851x12[_0x221c[119]]+_0xc851xa[_0x221c[119]])/2+_0xc851x13+_0xc851x14;_0xc851x2[_0x221c[1724]](_0xc851x12);var _0xc851x15=_0xc851x5[_0x221c[1197]](_0xc851x4);_0xc851x3[_0x221c[2103]](_0xc851x2,_0xc851x15);_0xc851x3[_0x221c[2509]](_0xc851x2);_0xc851x9=this[_0x221c[3061]][_0x221c[2503]](_0xc851x4,_0xc851x2);if(null==_0xc851x5[_0x221c[1721]](_0xc851x9)){var _0xc851x16= new mxGeometry;_0xc851x16[_0x221c[1500]]= !0;_0xc851x5[_0x221c[1724]](_0xc851x9,_0xc851x16)};_0xc851x3[_0x221c[2504]](_0xc851x9,_0xc851x15,_0xc851x4,_0xc851x2)}finally{_0xc851x5[_0x221c[476]]()};_0xc851x3[_0x221c[904]]([_0xc851x2,_0xc851x9]);_0xc851x3[_0x221c[2564]](_0xc851x2)}};mxDefaultToolbar[_0x221c[202]][_0x221c[3088]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=document[_0x221c[55]](_0x221c[466]);_0xc851x4[_0x221c[57]](_0x221c[390],_0xc851x2[_0x221c[284]](_0x221c[390]));var _0xc851x5=mxUtils[_0x221c[885]](this,function(_0xc851x9){_0xc851x4[_0x221c[124]][_0x221c[117]]=2*_0xc851x2[_0x221c[359]]+_0x221c[168];_0xc851x4[_0x221c[124]][_0x221c[119]]=2*_0xc851x2[_0x221c[167]]+_0x221c[168];mxUtils[_0x221c[3090]](_0xc851x2,this[_0x221c[3061]][_0x221c[1179]],_0xc851x3,_0xc851x4);mxEvent[_0x221c[745]](_0xc851x4,_0x221c[219],_0xc851x5)});mxClient[_0x221c[80]]?_0xc851x5():mxEvent[_0x221c[169]](_0xc851x4,_0x221c[219],_0xc851x5)};mxDefaultToolbar[_0x221c[202]][_0x221c[515]]=function(){null!=this[_0x221c[2877]]&&(this[_0x221c[3061]][_0x221c[1179]][_0x221c[745]](_0x221c[760],this[_0x221c[2877]]),this[_0x221c[3061]][_0x221c[745]](_0x221c[859],this[_0x221c[2877]]),this[_0x221c[2877]]=null);null!=this[_0x221c[3082]]&&(this[_0x221c[3082]][_0x221c[515]](),this[_0x221c[3082]]=null)};function mxEditor(_0xc851x2){this[_0x221c[3091]]=[];this[_0x221c[3092]]();if(null!=document[_0x221c[112]]){this[_0x221c[3093]]=[];this[_0x221c[3094]]= new mxDefaultPopupMenu;this[_0x221c[3095]]= new mxUndoManager;this[_0x221c[1179]]=this[_0x221c[3096]]();this[_0x221c[3082]]=this[_0x221c[3097]]();this[_0x221c[3098]]= new mxDefaultKeyHandler(this);this[_0x221c[3099]](_0xc851x2);this[_0x221c[1179]][_0x221c[2180]]=this[_0x221c[3100]];!mxClient[_0x221c[3101]]&&null!=this[_0x221c[1056]]&&(this[_0x221c[812]]=this[_0x221c[3102]]());if(null!=this[_0x221c[1987]]){this[_0x221c[1987]]()};mxClient[_0x221c[80]]&&mxEvent[_0x221c[169]](window,_0x221c[2428],mxUtils[_0x221c[885]](this,function(){this[_0x221c[515]]()}))}}mxLoadResources&&mxResources[_0x221c[99]](mxClient[_0x221c[86]]+_0x221c[3103]);mxEditor[_0x221c[202]]= new mxEventSource;mxEditor[_0x221c[202]][_0x221c[196]]=mxEditor;mxEditor[_0x221c[202]][_0x221c[3104]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[3105]:_0x221c[110];mxEditor[_0x221c[202]][_0x221c[3106]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[3107]:_0x221c[110];mxEditor[_0x221c[202]][_0x221c[3108]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[3109]:_0x221c[110];mxEditor[_0x221c[202]][_0x221c[3110]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[716]:_0x221c[110];mxEditor[_0x221c[202]][_0x221c[3111]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[3112]:_0x221c[110];mxEditor[_0x221c[202]][_0x221c[3113]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[2719]:_0x221c[110];mxEditor[_0x221c[202]][_0x221c[3114]]=_0x221c[130]!=mxClient[_0x221c[90]]?_0x221c[2136]:_0x221c[110];mxEditor[_0x221c[202]][_0x221c[2136]]=null;mxEditor[_0x221c[202]][_0x221c[1179]]=null;mxEditor[_0x221c[202]][_0x221c[2720]]=null;mxEditor[_0x221c[202]][_0x221c[3082]]=null;mxEditor[_0x221c[202]][_0x221c[812]]=null;mxEditor[_0x221c[202]][_0x221c[879]]=null;mxEditor[_0x221c[202]][_0x221c[3094]]=null;mxEditor[_0x221c[202]][_0x221c[3095]]=null;mxEditor[_0x221c[202]][_0x221c[3098]]=null;mxEditor[_0x221c[202]][_0x221c[3091]]=null;mxEditor[_0x221c[202]][_0x221c[3115]]=_0x221c[1061];mxEditor[_0x221c[202]][_0x221c[3116]]= !1;mxEditor[_0x221c[202]][_0x221c[1157]]= !0;mxEditor[_0x221c[202]][_0x221c[3083]]=null;mxEditor[_0x221c[202]][_0x221c[3117]]= !1;mxEditor[_0x221c[202]][_0x221c[3118]]=null;mxEditor[_0x221c[202]][_0x221c[2075]]=null;mxEditor[_0x221c[202]][_0x221c[3119]]=null;mxEditor[_0x221c[202]][_0x221c[3120]]=null;mxEditor[_0x221c[202]][_0x221c[3121]]=null;mxEditor[_0x221c[202]][_0x221c[3122]]=null;mxEditor[_0x221c[202]][_0x221c[1069]]=_0x221c[336];mxEditor[_0x221c[202]][_0x221c[3123]]=_0x221c[338];mxEditor[_0x221c[202]][_0x221c[1070]]= !0;mxEditor[_0x221c[202]][_0x221c[3124]]=null;mxEditor[_0x221c[202]][_0x221c[3125]]=null;mxEditor[_0x221c[202]][_0x221c[1056]]=null;mxEditor[_0x221c[202]][_0x221c[1058]]=null;mxEditor[_0x221c[202]][_0x221c[1057]]=null;mxEditor[_0x221c[202]][_0x221c[3089]]= !1;mxEditor[_0x221c[202]][_0x221c[3126]]= !1;mxEditor[_0x221c[202]][_0x221c[3127]]=0;mxEditor[_0x221c[202]][_0x221c[3128]]= !1;mxEditor[_0x221c[202]][_0x221c[3129]]= !1;mxEditor[_0x221c[202]][_0x221c[3093]]=null;mxEditor[_0x221c[202]][_0x221c[3130]]=0;mxEditor[_0x221c[202]][_0x221c[3100]]=_0x221c[604];mxEditor[_0x221c[202]][_0x221c[3112]]=null;mxEditor[_0x221c[202]][_0x221c[3131]]=null;mxEditor[_0x221c[202]][_0x221c[3132]]=20;mxEditor[_0x221c[202]][_0x221c[2719]]=null;mxEditor[_0x221c[202]][_0x221c[3133]]=null;mxEditor[_0x221c[202]][_0x221c[3134]]=null;mxEditor[_0x221c[202]][_0x221c[3135]]=300;mxEditor[_0x221c[202]][_0x221c[3136]]=260;mxEditor[_0x221c[202]][_0x221c[3137]]=240;mxEditor[_0x221c[202]][_0x221c[3138]]=null;mxEditor[_0x221c[202]][_0x221c[3139]]= !1;mxEditor[_0x221c[202]][_0x221c[3140]]= !1;mxEditor[_0x221c[202]][_0x221c[2113]]= !1;mxEditor[_0x221c[202]][_0x221c[2133]]=function(){return this[_0x221c[2113]]};mxEditor[_0x221c[202]][_0x221c[2128]]=function(_0xc851x2){this[_0x221c[2113]]=_0xc851x2};mxEditor[_0x221c[202]][_0x221c[3092]]=function(){this[_0x221c[3071]](_0x221c[815],function(_0xc851x2){_0xc851x2[_0x221c[815]]()});this[_0x221c[3071]](_0x221c[540],function(_0xc851x2){( new mxPrintPreview(_0xc851x2[_0x221c[1179]],1))[_0x221c[392]]()});this[_0x221c[3071]](_0x221c[539],function(_0xc851x2){mxUtils[_0x221c[539]](_0xc851x2[_0x221c[1179]],null,10,10)});this[_0x221c[3071]](_0x221c[3141],function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[3142]]();if(null==_0xc851x3||mxClient[_0x221c[3101]]){_0xc851x2[_0x221c[350]](_0x221c[539])}else {var _0xc851x4=mxUtils[_0x221c[3143]](_0xc851x2[_0x221c[1179]],1),_0xc851x4=mxUtils[_0x221c[875]](_0xc851x4,_0x221c[192]);mxUtils[_0x221c[894]](_0xc851x3,_0xc851x2[_0x221c[3123]]+_0x221c[226]+encodeURIComponent(_0xc851x4),document,_0x221c[3144])}});this[_0x221c[3071]](_0x221c[802],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[802]]()});this[_0x221c[3071]](_0x221c[3145],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&mxClipboard[_0x221c[3145]](_0xc851x2[_0x221c[1179]])});this[_0x221c[3071]](_0x221c[149],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&mxClipboard[_0x221c[149]](_0xc851x2[_0x221c[1179]])});this[_0x221c[3071]](_0x221c[3146],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&mxClipboard[_0x221c[3146]](_0xc851x2[_0x221c[1179]])});this[_0x221c[3071]](_0x221c[3147],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[842]]()});this[_0x221c[3071]](_0x221c[1504],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2450]](_0xc851x2[_0x221c[844]]())});this[_0x221c[3071]](_0x221c[3148],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[904]](_0xc851x2[_0x221c[1179]][_0x221c[845]]())});this[_0x221c[3071]](_0x221c[1997],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[846]]()});this[_0x221c[3071]](_0x221c[824],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[824]]()});this[_0x221c[3071]](_0x221c[825],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[825]]()});this[_0x221c[3071]](_0x221c[2558],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[2558]]()});this[_0x221c[3071]](_0x221c[2559],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[2559]]()});this[_0x221c[3071]](_0x221c[3149],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[2560]]()});this[_0x221c[3071]](_0x221c[933],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[933]]()});this[_0x221c[3071]](_0x221c[3150],function(_0xc851x2,_0xc851x3){_0xc851x2[_0x221c[3150]](_0xc851x3)});this[_0x221c[3071]](_0x221c[2705],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2705]]()});this[_0x221c[3071]](_0x221c[3151],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2440]]()});this[_0x221c[3071]](_0x221c[2706],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2706]]()});this[_0x221c[3071]](_0x221c[2708],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2708]]()});this[_0x221c[3071]](_0x221c[1061],function(_0xc851x2,_0xc851x3){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2453]](_0xc851x3)&&_0xc851x2[_0x221c[1179]][_0x221c[2451]](_0xc851x3)});this[_0x221c[3071]](_0x221c[3152],function(_0xc851x2,_0xc851x3){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[840]](!0)});this[_0x221c[3071]](_0x221c[3153],function(_0xc851x2,_0xc851x3){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[840]](!1)});this[_0x221c[3071]](_0x221c[2552],function(_0xc851x2,_0xc851x3){_0xc851x2[_0x221c[1179]][_0x221c[2552]](_0xc851x3)});this[_0x221c[3071]](_0x221c[2554],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[2554]]()});this[_0x221c[3071]](_0x221c[2442],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[2442]]()});this[_0x221c[3071]](_0x221c[3154],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2702]]()});this[_0x221c[3071]](_0x221c[3155],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2700]]()});this[_0x221c[3071]](_0x221c[3156],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2703]]()});this[_0x221c[3071]](_0x221c[3157],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2704]]()});this[_0x221c[3071]](_0x221c[2514],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[847]](!0)});this[_0x221c[3071]](_0x221c[3158],function(_0xc851x2){if(_0xc851x2[_0x221c[1179]][_0x221c[994]]()){var _0xc851x3=_0xc851x2[_0x221c[1179]][_0x221c[1728]]();_0xc851x2[_0x221c[1179]][_0x221c[847]](!0,!1,_0xc851x3)}});this[_0x221c[3071]](_0x221c[3159],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[847]](!1)});this[_0x221c[3071]](_0x221c[3160],function(_0xc851x2){if(_0xc851x2[_0x221c[1179]][_0x221c[994]]()){var _0xc851x3=_0xc851x2[_0x221c[1179]][_0x221c[1728]]();_0xc851x2[_0x221c[1179]][_0x221c[847]](!1,!1,_0xc851x3)}});this[_0x221c[3071]](_0x221c[1447],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2491]](mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_BOLD)});this[_0x221c[3071]](_0x221c[1449],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2491]](mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_ITALIC)});this[_0x221c[3071]](_0x221c[355],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2491]](mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_UNDERLINE)});this[_0x221c[3071]](_0x221c[639],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[2491]](mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_SHADOW)});this[_0x221c[3071]](_0x221c[3161],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[849]](mxConstants.ALIGN_LEFT)});this[_0x221c[3071]](_0x221c[3162],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[849]](mxConstants.ALIGN_CENTER)});this[_0x221c[3071]](_0x221c[3163],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[849]](mxConstants.ALIGN_RIGHT)});this[_0x221c[3071]](_0x221c[3164],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[849]](mxConstants.ALIGN_TOP)});this[_0x221c[3071]](_0x221c[3165],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[849]](mxConstants.ALIGN_MIDDLE)});this[_0x221c[3071]](_0x221c[3166],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[849]](mxConstants.ALIGN_BOTTOM)});this[_0x221c[3071]](_0x221c[3167],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[1717]](mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT)});this[_0x221c[3071]](_0x221c[3168],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[1717]](mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER)});this[_0x221c[3071]](_0x221c[3169],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[1717]](mxConstants.STYLE_ALIGN,mxConstants.ALIGN_RIGHT)});this[_0x221c[3071]](_0x221c[3170],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[1717]](mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_TOP)});this[_0x221c[3071]](_0x221c[3171],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[1717]](mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)});this[_0x221c[3071]](_0x221c[3172],function(_0xc851x2){_0xc851x2[_0x221c[1179]][_0x221c[994]]()&&_0xc851x2[_0x221c[1179]][_0x221c[1717]](mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_BOTTOM)});this[_0x221c[3071]](_0x221c[499],function(_0xc851x2){var _0xc851x3=100*_0xc851x2[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]],_0xc851x3=parseFloat(mxUtils[_0x221c[3173]](mxResources[_0x221c[203]](_0xc851x2[_0x221c[3104]])||_0xc851x2[_0x221c[3104]],_0xc851x3))/100;isNaN(_0xc851x3)||_0xc851x2[_0x221c[1179]][_0x221c[249]]()[_0x221c[2262]](_0xc851x3)});this[_0x221c[3071]](_0x221c[3174],function(_0xc851x2){null!=_0xc851x2[_0x221c[3112]]?_0xc851x2[_0x221c[3112]][_0x221c[175]](!_0xc851x2[_0x221c[3112]][_0x221c[174]]()):_0xc851x2[_0x221c[3175]]()});this[_0x221c[3071]](_0x221c[3176],function(_0xc851x2){null!=_0xc851x2[_0x221c[2719]]?_0xc851x2[_0x221c[2719]][_0x221c[175]](!_0xc851x2[_0x221c[2719]][_0x221c[174]]()):_0xc851x2[_0x221c[3177]]()});this[_0x221c[3071]](_0x221c[3178],function(_0xc851x2){null==_0xc851x2[_0x221c[2136]]?_0xc851x2[_0x221c[3179]]():_0xc851x2[_0x221c[2136]][_0x221c[175]](!_0xc851x2[_0x221c[2136]][_0x221c[174]]())});this[_0x221c[3071]](_0x221c[3180],function(_0xc851x2){mxLog[_0x221c[175]](!mxLog[_0x221c[174]]())})};mxEditor[_0x221c[202]][_0x221c[3102]]=function(){var _0xc851x2=mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[746]]( new mxEventObject(mxEvent.SESSION,_0x221c[812],_0xc851x2))});return this[_0x221c[807]](this[_0x221c[1056]],this[_0x221c[1057]],this[_0x221c[1058]],_0xc851x2)};mxEditor[_0x221c[202]][_0x221c[3099]]=function(_0xc851x2){null!=_0xc851x2&&(( new mxCodec(_0xc851x2[_0x221c[295]]))[_0x221c[1093]](_0xc851x2,this),this[_0x221c[3181]]())};mxEditor[_0x221c[202]][_0x221c[3182]]=function(){document[_0x221c[3183]]=_0x221c[3184]};mxEditor[_0x221c[202]][_0x221c[3181]]=function(){this[_0x221c[1184]]=( new Date)[_0x221c[178]]();this[_0x221c[3095]][_0x221c[200]]();this[_0x221c[1183]]=0;this[_0x221c[2128]](!1)};mxEditor[_0x221c[202]][_0x221c[3071]]=function(_0xc851x2,_0xc851x3){this[_0x221c[3091]][_0xc851x2]=_0xc851x3};mxEditor[_0x221c[202]][_0x221c[350]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[3091]][_0xc851x2];if(null!=_0xc851x5){try{var _0xc851x9=arguments;_0xc851x9[0]=this;_0xc851x5[_0x221c[183]](this,_0xc851x9)}catch(f){throw mxUtils[_0x221c[267]](_0x221c[3185]+_0xc851x2+_0x221c[3186]+f[_0x221c[281]],280,!0),f}}else {mxUtils[_0x221c[267]](_0x221c[3187]+_0xc851x2,280,!0)}};mxEditor[_0x221c[202]][_0x221c[3188]]=function(_0xc851x2,_0xc851x3){this[_0x221c[3118]][_0xc851x2]=_0xc851x3};mxEditor[_0x221c[202]][_0x221c[3189]]=function(_0xc851x2){return this[_0x221c[3118]][_0xc851x2]};mxEditor[_0x221c[202]][_0x221c[3096]]=function(){var _0xc851x2= new mxGraph(null,null,this[_0x221c[2720]]);_0xc851x2[_0x221c[2673]](!0);_0xc851x2[_0x221c[2674]](!0);this[_0x221c[3190]](_0xc851x2);this[_0x221c[3191]](_0xc851x2);this[_0x221c[3192]](_0xc851x2);this[_0x221c[3193]](_0xc851x2);this[_0x221c[3194]](_0xc851x2);_0xc851x2[_0x221c[2316]][_0x221c[1033]]=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x4,_0xc851x5){return this[_0x221c[3195]](_0xc851x2,_0xc851x4,_0xc851x5)});_0xc851x2[_0x221c[2433]][_0x221c[1033]]=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x4){return this[_0x221c[2503]](_0xc851x2,_0xc851x4)});this[_0x221c[3196]](_0xc851x2);this[_0x221c[3197]](_0xc851x2);return _0xc851x2};mxEditor[_0x221c[202]][_0x221c[3196]]=function(_0xc851x2){_0xc851x2= new mxSwimlaneManager(_0xc851x2,!1);_0xc851x2[_0x221c[1737]]=mxUtils[_0x221c[885]](this,function(){return this[_0x221c[3089]]});_0xc851x2[_0x221c[994]]=mxUtils[_0x221c[885]](this,function(){return this[_0x221c[3128]]});return _0xc851x2};mxEditor[_0x221c[202]][_0x221c[3197]]=function(_0xc851x2){var _0xc851x3= new mxLayoutManager(_0xc851x2),_0xc851x4=this;_0xc851x3[_0x221c[2754]]=function(_0xc851x3){var _0xc851x9=null,_0xc851xa=_0xc851x4[_0x221c[1179]][_0x221c[502]]();if(null!=_0xc851xa[_0x221c[1197]](_0xc851x3)){if(_0xc851x4[_0x221c[3129]]&&_0xc851x2[_0x221c[1730]](_0xc851x3)){null==_0xc851x4[_0x221c[3198]]&&(_0xc851x4[_0x221c[3198]]=_0xc851x4[_0x221c[3199]]()),_0xc851x9=_0xc851x4[_0x221c[3198]]}else {if(_0xc851x4[_0x221c[3126]]&&(_0xc851x2[_0x221c[2553]](_0xc851x3)||null==_0xc851xa[_0x221c[1197]](_0xc851xa[_0x221c[1197]](_0xc851x3)))){null==_0xc851x4[_0x221c[3200]]&&(_0xc851x4[_0x221c[3200]]=_0xc851x4[_0x221c[3201]]()),_0xc851x9=_0xc851x4[_0x221c[3200]]}}};return _0xc851x9};return _0xc851x3};mxEditor[_0x221c[202]][_0x221c[3202]]=function(_0xc851x2){null==this[_0x221c[1179]][_0x221c[526]]&&(this[_0x221c[1179]][_0x221c[176]](_0xc851x2),this[_0x221c[3203]]= new mxRubberband(this[_0x221c[1179]]),this[_0x221c[1157]]&&mxEvent[_0x221c[1157]](_0xc851x2),mxClient[_0x221c[496]]&& new mxDivResizer(_0xc851x2))};mxEditor[_0x221c[202]][_0x221c[3190]]=function(_0xc851x2){_0xc851x2[_0x221c[169]](mxEvent.DOUBLE_CLICK,mxUtils[_0x221c[885]](this,function(_0xc851x3,_0xc851x4){var _0xc851x5=_0xc851x4[_0x221c[720]](_0x221c[246]);null!=_0xc851x5&&(_0xc851x2[_0x221c[994]]()&&null!=this[_0x221c[3115]])&&(this[_0x221c[350]](this[_0x221c[3115]],_0xc851x5),_0xc851x4[_0x221c[722]]())}))};mxEditor[_0x221c[202]][_0x221c[3191]]=function(_0xc851x2){var _0xc851x3=mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x3){var _0xc851x9=_0xc851x3[_0x221c[720]](_0x221c[1061]);this[_0x221c[3095]][_0x221c[1114]](_0xc851x9)});_0xc851x2[_0x221c[502]]()[_0x221c[169]](mxEvent.UNDO,_0xc851x3);_0xc851x2[_0x221c[249]]()[_0x221c[169]](mxEvent.UNDO,_0xc851x3);_0xc851x3=function(_0xc851x3,_0xc851x5){var _0xc851x9=_0xc851x5[_0x221c[720]](_0x221c[1061])[_0x221c[1065]];_0xc851x2[_0x221c[904]](_0xc851x2[_0x221c[2436]](_0xc851x9))};this[_0x221c[3095]][_0x221c[169]](mxEvent.UNDO,_0xc851x3);this[_0x221c[3095]][_0x221c[169]](mxEvent.REDO,_0xc851x3)};mxEditor[_0x221c[202]][_0x221c[3192]]=function(_0xc851x2){var _0xc851x3=mxUtils[_0x221c[885]](this,function(_0xc851x2){this[_0x221c[746]]( new mxEventObject(mxEvent.ROOT))});_0xc851x2[_0x221c[249]]()[_0x221c[169]](mxEvent.DOWN,_0xc851x3);_0xc851x2[_0x221c[249]]()[_0x221c[169]](mxEvent.UP,_0xc851x3)};mxEditor[_0x221c[202]][_0x221c[3193]]=function(_0xc851x2){var _0xc851x3=mxUtils[_0x221c[885]](this,function(_0xc851x3,_0xc851x5){this[_0x221c[2128]](!0);!0==this[_0x221c[3140]]&&_0xc851x2[_0x221c[2585]]();for(var _0xc851x9=_0xc851x5[_0x221c[720]](_0x221c[1061])[_0x221c[1065]],_0xc851xa=0;_0xc851xa<_0xc851x9[_0x221c[67]];_0xc851xa++){var _0xc851x12=_0xc851x9[_0xc851xa];if(_0xc851x12 instanceof mxRootChange||_0xc851x12 instanceof mxValueChange&&_0xc851x12[_0x221c[246]]==this[_0x221c[1179]][_0x221c[251]][_0x221c[813]]||_0xc851x12 instanceof mxCellAttributeChange&&_0xc851x12[_0x221c[246]]==this[_0x221c[1179]][_0x221c[251]][_0x221c[813]]){this[_0x221c[746]]( new mxEventObject(mxEvent.ROOT));break}}});_0xc851x2[_0x221c[502]]()[_0x221c[169]](mxEvent.CHANGE,_0xc851x3)};mxEditor[_0x221c[202]][_0x221c[3194]]=function(_0xc851x2){var _0xc851x3=this;_0xc851x2[_0x221c[1133]]({mouseDown:function(_0xc851x2,_0xc851x5){if(null!=_0xc851x3[_0x221c[3083]]&&!_0xc851x5[_0x221c[737]]()&&(_0xc851x3[_0x221c[3117]]||null==_0xc851x5[_0x221c[248]]())){_0xc851x3[_0x221c[1179]][_0x221c[2440]](),_0xc851x3[_0x221c[3083]](_0xc851x5[_0x221c[727]](),_0xc851x5[_0x221c[736]]()),this[_0x221c[1142]]= !0,_0xc851x5[_0x221c[722]]()}},mouseMove:function(_0xc851x2,_0xc851x3){this[_0x221c[1142]]&&_0xc851x3[_0x221c[722]]()},mouseUp:function(_0xc851x2,_0xc851x3){this[_0x221c[1142]]&&(this[_0x221c[1142]]= !1,_0xc851x3[_0x221c[722]]())}})};mxEditor[_0x221c[202]][_0x221c[3201]]=function(){var _0xc851x2=this[_0x221c[1179]][_0x221c[1020]],_0xc851x3= new mxStackLayout(this[_0x221c[1179]],!this[_0x221c[3089]],this[_0x221c[3127]],2*_0xc851x2,2*_0xc851x2);_0xc851x3[_0x221c[1713]]=function(_0xc851x2){return !_0xc851x3[_0x221c[1179]][_0x221c[1730]](_0xc851x2)};return _0xc851x3};mxEditor[_0x221c[202]][_0x221c[3199]]=function(){return  new mxCompactTreeLayout(this[_0x221c[1179]],this[_0x221c[3089]])};mxEditor[_0x221c[202]][_0x221c[3097]]=function(){return  new mxDefaultToolbar(null,this)};mxEditor[_0x221c[202]][_0x221c[3204]]=function(_0xc851x2){this[_0x221c[3082]][_0x221c[176]](_0xc851x2);mxClient[_0x221c[496]]&& new mxDivResizer(_0xc851x2)};mxEditor[_0x221c[202]][_0x221c[3205]]=function(_0xc851x2){null==this[_0x221c[879]]&&(this[_0x221c[879]]=_0xc851x2,this[_0x221c[169]](mxEvent.SAVE,mxUtils[_0x221c[885]](this,function(){var _0xc851x2=( new Date)[_0x221c[3206]]();this[_0x221c[3207]]((mxResources[_0x221c[203]](this[_0x221c[3106]])||this[_0x221c[3106]])+_0x221c[3186]+_0xc851x2)})),this[_0x221c[169]](mxEvent.OPEN,mxUtils[_0x221c[885]](this,function(){this[_0x221c[3207]]((mxResources[_0x221c[203]](this[_0x221c[3108]])||this[_0x221c[3108]])+_0x221c[3186]+this[_0x221c[3122]])})),mxClient[_0x221c[496]]&& new mxDivResizer(_0xc851x2))};mxEditor[_0x221c[202]][_0x221c[3207]]=function(_0xc851x2){null!=this[_0x221c[879]]&&null!=_0xc851x2&&(this[_0x221c[879]][_0x221c[339]]=_0xc851x2)};mxEditor[_0x221c[202]][_0x221c[3208]]=function(_0xc851x2){this[_0x221c[169]](mxEvent.ROOT,mxUtils[_0x221c[885]](this,function(_0xc851x3){_0xc851x2[_0x221c[339]]=this[_0x221c[3209]]()}));mxClient[_0x221c[496]]&& new mxDivResizer(_0xc851x2)};mxEditor[_0x221c[202]][_0x221c[3210]]=function(_0xc851x2,_0xc851x3){null!=_0xc851x2&&( new mxCompactTreeLayout(this[_0x221c[1179]],_0xc851x3))[_0x221c[350]](_0xc851x2)};mxEditor[_0x221c[202]][_0x221c[3209]]=function(){for(var _0xc851x2=_0x221c[110],_0xc851x3=this[_0x221c[1179]],_0xc851x4=_0xc851x3[_0x221c[2534]]();null!=_0xc851x4&&null!=_0xc851x3[_0x221c[502]]()[_0x221c[1197]](_0xc851x3[_0x221c[502]]()[_0x221c[1197]](_0xc851x4));){_0xc851x3[_0x221c[2553]](_0xc851x4)&&(_0xc851x2=_0x221c[3211]+_0xc851x3[_0x221c[2454]](_0xc851x4)+_0xc851x2),_0xc851x4=_0xc851x3[_0x221c[502]]()[_0x221c[1197]](_0xc851x4)};return this[_0x221c[3212]]()+_0xc851x2};mxEditor[_0x221c[202]][_0x221c[3212]]=function(){var _0xc851x2=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[501]]();return this[_0x221c[1179]][_0x221c[2454]](_0xc851x2)};mxEditor[_0x221c[202]][_0x221c[824]]=function(){this[_0x221c[3095]][_0x221c[824]]()};mxEditor[_0x221c[202]][_0x221c[825]]=function(){this[_0x221c[3095]][_0x221c[825]]()};mxEditor[_0x221c[202]][_0x221c[844]]=function(){var _0xc851x2=null!=this[_0x221c[3121]]?this[_0x221c[3121]]:this[_0x221c[1179]][_0x221c[1020]];return this[_0x221c[1179]][_0x221c[844]](this[_0x221c[3213]](),_0xc851x2)};mxEditor[_0x221c[202]][_0x221c[3213]]=function(){return this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1978]](this[_0x221c[3120]])};mxEditor[_0x221c[202]][_0x221c[392]]=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=mxUtils[_0x221c[219]](_0xc851x2)[_0x221c[875]]();this[_0x221c[3214]](_0xc851x3[_0x221c[158]]);this[_0x221c[3122]]=_0xc851x2;this[_0x221c[746]]( new mxEventObject(mxEvent.OPEN,_0x221c[3122],_0xc851x2))}};mxEditor[_0x221c[202]][_0x221c[3214]]=function(_0xc851x2){( new mxCodec(_0xc851x2[_0x221c[295]]))[_0x221c[1093]](_0xc851x2,this[_0x221c[1179]][_0x221c[502]]());this[_0x221c[3181]]()};mxEditor[_0x221c[202]][_0x221c[815]]=function(_0xc851x2,_0xc851x3){_0xc851x2=_0xc851x2||this[_0x221c[3215]]();if(null!=_0xc851x2&&0<_0xc851x2[_0x221c[67]]){var _0xc851x4=this[_0x221c[3216]](_0xc851x3);this[_0x221c[3217]](_0xc851x2,_0xc851x4);this[_0x221c[2128]](!1)};this[_0x221c[746]]( new mxEventObject(mxEvent.SAVE,_0x221c[863],_0xc851x2))};mxEditor[_0x221c[202]][_0x221c[3217]]=function(_0xc851x2,_0xc851x3){this[_0x221c[1070]]&&(_0xc851x3=encodeURIComponent(_0xc851x3));mxUtils[_0x221c[814]](_0xc851x2,this[_0x221c[3123]]+_0x221c[226]+_0xc851x3,mxUtils[_0x221c[885]](this,function(_0xc851x4){this[_0x221c[746]]( new mxEventObject(mxEvent.POST,_0x221c[870],_0xc851x4,_0x221c[863],_0xc851x2,_0x221c[410],_0xc851x3))}))};mxEditor[_0x221c[202]][_0x221c[3216]]=function(_0xc851x2){_0xc851x2=null!=_0xc851x2?_0xc851x2:this[_0x221c[1069]];var _0xc851x3=( new mxCodec)[_0x221c[514]](this[_0x221c[1179]][_0x221c[502]]());return mxUtils[_0x221c[875]](_0xc851x3,_0xc851x2)};mxEditor[_0x221c[202]][_0x221c[3215]]=function(){return this[_0x221c[3124]]};mxEditor[_0x221c[202]][_0x221c[3142]]=function(){return this[_0x221c[3125]]};mxEditor[_0x221c[202]][_0x221c[807]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){var _0xc851x9=null;mxClient[_0x221c[3101]]||(_0xc851x9= new mxSession(this[_0x221c[1179]][_0x221c[502]](),_0xc851x2,_0xc851x3,_0xc851x4),_0xc851x9[_0x221c[169]](mxEvent.RECEIVE,mxUtils[_0x221c[885]](this,function(_0xc851x2,_0xc851x3){null!=_0xc851x3[_0x221c[720]](_0x221c[252])[_0x221c[284]](_0x221c[1088])&&this[_0x221c[3181]]()})),_0xc851x9[_0x221c[169]](mxEvent.DISCONNECT,_0xc851x5),_0xc851x9[_0x221c[169]](mxEvent.CONNECT,_0xc851x5),_0xc851x9[_0x221c[169]](mxEvent.NOTIFY,_0xc851x5),_0xc851x9[_0x221c[169]](mxEvent.GET,_0xc851x5),_0xc851x9[_0x221c[861]]());return _0xc851x9};mxEditor[_0x221c[202]][_0x221c[3218]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=this[_0x221c[1179]][_0x221c[2434]]()[_0x221c[2054]][_0xc851x3];this[_0x221c[1179]][_0x221c[249]]()[_0x221c[2434]]()[_0x221c[2074]](_0xc851x3,this[_0x221c[1179]][_0x221c[2434]]()[_0x221c[2054]][_0xc851x2]);this[_0x221c[1179]][_0x221c[2434]]()[_0x221c[2074]](_0xc851x2,_0xc851x4);this[_0x221c[1179]][_0x221c[802]]()};mxEditor[_0x221c[202]][_0x221c[3150]]=function(_0xc851x2){_0xc851x2=_0xc851x2||this[_0x221c[1179]][_0x221c[2452]]();null==_0xc851x2&&(_0xc851x2=this[_0x221c[1179]][_0x221c[2534]](),null==_0xc851x2&&(_0xc851x2=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[501]]()));if(null!=_0xc851x2){this[_0x221c[1179]][_0x221c[2126]](!0);var _0xc851x3=mxUtils[_0x221c[445]](this[_0x221c[1179]][_0x221c[526]]),_0xc851x4=_0xc851x3[_0x221c[235]]+10,_0xc851x3=_0xc851x3[_0x221c[236]];if(null!=this[_0x221c[716]]&&!this[_0x221c[3139]]){_0xc851x4=this[_0x221c[716]][_0x221c[730]](),_0xc851x3=this[_0x221c[716]][_0x221c[732]]()}else {var _0xc851x5=this[_0x221c[1179]][_0x221c[2555]](_0xc851x2);null!=_0xc851x5&&(_0xc851x4+=_0xc851x5[_0x221c[235]]+Math[_0x221c[243]](200,_0xc851x5[_0x221c[117]]),_0xc851x3+=_0xc851x5[_0x221c[236]])};this[_0x221c[3062]]();_0xc851x2=this[_0x221c[3219]](_0xc851x2);null!=_0xc851x2&&(this[_0x221c[716]]= new mxWindow(mxResources[_0x221c[203]](this[_0x221c[3110]])||this[_0x221c[3110]],_0xc851x2,_0xc851x4,_0xc851x3,this[_0x221c[3137]],this[_0x221c[3138]],!1),this[_0x221c[716]][_0x221c[175]](!0))}};mxEditor[_0x221c[202]][_0x221c[3220]]=function(){return null!=this[_0x221c[716]]};mxEditor[_0x221c[202]][_0x221c[3219]]=function(_0xc851x2){var _0xc851x3=this[_0x221c[1179]][_0x221c[502]](),_0xc851x4=_0xc851x3[_0x221c[433]](_0xc851x2);if(mxUtils[_0x221c[1331]](_0xc851x4)){var _0xc851x5= new mxForm(_0x221c[716]);_0xc851x5[_0x221c[961]](_0x221c[3222],_0xc851x2[_0x221c[1103]]())[_0x221c[57]](_0x221c[3221],_0x221c[128]);var _0xc851x9=null,_0xc851xa=null,_0xc851x12=null,_0xc851x13=null,_0xc851x14=null;_0xc851x3[_0x221c[1193]](_0xc851x2)&&(_0xc851x9=_0xc851x3[_0x221c[1721]](_0xc851x2),null!=_0xc851x9&&(_0xc851xa=_0xc851x5[_0x221c[961]](_0x221c[125],_0xc851x9[_0x221c[236]]),_0xc851x12=_0xc851x5[_0x221c[961]](_0x221c[361],_0xc851x9[_0x221c[235]]),_0xc851x13=_0xc851x5[_0x221c[961]](_0x221c[117],_0xc851x9[_0x221c[117]]),_0xc851x14=_0xc851x5[_0x221c[961]](_0x221c[119],_0xc851x9[_0x221c[119]])));for(var _0xc851x15=_0xc851x3[_0x221c[474]](_0xc851x2),_0xc851x16=_0xc851x5[_0x221c[961]](_0x221c[3223],_0xc851x15||_0x221c[110]),_0xc851x17=_0xc851x4[_0x221c[320]],_0xc851x18=[],_0xc851x4=0;_0xc851x4<_0xc851x17[_0x221c[67]];_0xc851x4++){_0xc851x18[_0xc851x4]=_0xc851x5[_0x221c[968]](_0xc851x17[_0xc851x4][_0x221c[301]],_0xc851x17[_0xc851x4][_0x221c[318]],_0x221c[685]==_0xc851x17[_0xc851x4][_0x221c[301]]?4:2)};_0xc851x4=mxUtils[_0x221c[885]](this,function(){this[_0x221c[3062]]();_0xc851x3[_0x221c[473]]();try{null!=_0xc851x9&&(_0xc851x9=_0xc851x9[_0x221c[238]](),_0xc851x9[_0x221c[235]]=parseFloat(_0xc851x12[_0x221c[131]]),_0xc851x9[_0x221c[236]]=parseFloat(_0xc851xa[_0x221c[131]]),_0xc851x9[_0x221c[117]]=parseFloat(_0xc851x13[_0x221c[131]]),_0xc851x9[_0x221c[119]]=parseFloat(_0xc851x14[_0x221c[131]]),_0xc851x3[_0x221c[1724]](_0xc851x2,_0xc851x9));0<_0xc851x16[_0x221c[131]][_0x221c[67]]?_0xc851x3[_0x221c[475]](_0xc851x2,_0xc851x16[_0x221c[131]]):_0xc851x3[_0x221c[475]](_0xc851x2,null);for(var _0xc851x4=0;_0xc851x4<_0xc851x17[_0x221c[67]];_0xc851x4++){var _0xc851x5= new mxCellAttributeChange(_0xc851x2,_0xc851x17[_0xc851x4][_0x221c[301]],_0xc851x18[_0xc851x4][_0x221c[131]]);_0xc851x3[_0x221c[350]](_0xc851x5)};this[_0x221c[1179]][_0x221c[2455]](_0xc851x2)&&this[_0x221c[1179]][_0x221c[858]](_0xc851x2)}finally{_0xc851x3[_0x221c[476]]()}});_0xc851x15=mxUtils[_0x221c[885]](this,function(){this[_0x221c[3062]]()});_0xc851x5[_0x221c[956]](_0xc851x4,_0xc851x15);return _0xc851x5[_0x221c[116]]};return null};mxEditor[_0x221c[202]][_0x221c[3062]]=function(){null!=this[_0x221c[716]]&&(this[_0x221c[716]][_0x221c[515]](),this[_0x221c[716]]=null)};mxEditor[_0x221c[202]][_0x221c[3175]]=function(){if(null==this[_0x221c[3112]]){var _0xc851x2=document[_0x221c[55]](_0x221c[485]);_0xc851x2[_0x221c[124]][_0x221c[549]]=_0x221c[952];_0xc851x2[_0x221c[124]][_0x221c[357]]=_0x221c[550];var _0xc851x3=document[_0x221c[112]][_0x221c[159]],_0xc851x3= new mxWindow(mxResources[_0x221c[203]](this[_0x221c[3111]])||this[_0x221c[3111]],_0xc851x2,_0xc851x3-220,this[_0x221c[3132]],200);_0xc851x3[_0x221c[164]](!0);_0xc851x3[_0x221c[165]]= !1;var _0xc851x4=mxUtils[_0x221c[885]](this,function(_0xc851x3){mxEvent[_0x221c[762]](_0xc851x2);_0xc851x2[_0x221c[339]]=_0x221c[110];this[_0x221c[3224]](_0xc851x2)});this[_0x221c[1179]][_0x221c[502]]()[_0x221c[169]](mxEvent.CHANGE,_0xc851x4);this[_0x221c[1179]][_0x221c[2435]]()[_0x221c[169]](mxEvent.CHANGE,_0xc851x4);this[_0x221c[1179]][_0x221c[169]](mxEvent.ROOT,_0xc851x4);null!=this[_0x221c[3131]]&&_0xc851x3[_0x221c[951]](this[_0x221c[3131]]);this[_0x221c[3112]]=_0xc851x3;this[_0x221c[3224]](_0xc851x2)};this[_0x221c[3112]][_0x221c[175]](!0)};mxEditor[_0x221c[202]][_0x221c[3225]]=function(_0xc851x2){null!=this[_0x221c[3112]]&&(_0xc851x2=this[_0x221c[3112]][_0x221c[905]],mxEvent[_0x221c[762]](_0xc851x2),_0xc851x2[_0x221c[339]]=_0x221c[110],this[_0x221c[3224]](_0xc851x2))};mxEditor[_0x221c[202]][_0x221c[3224]]=function(_0xc851x2){};mxEditor[_0x221c[202]][_0x221c[3177]]=function(_0xc851x2){if(null==this[_0x221c[2719]]){var _0xc851x3=document[_0x221c[55]](_0x221c[389]);_0xc851x3[_0x221c[57]](_0x221c[390],mxResources[_0x221c[203]](_0x221c[3134])||this[_0x221c[3134]]);_0xc851x3[_0x221c[57]](_0x221c[119],_0x221c[118]);_0xc851x3[_0x221c[57]](_0x221c[117],_0x221c[118]);_0xc851x3[_0x221c[57]](_0x221c[3226],_0x221c[468]);_0xc851x3[_0x221c[124]][_0x221c[1028]]=_0x221c[1391];_0xc851x2=document[_0x221c[112]][_0x221c[159]];var _0xc851x4=document[_0x221c[112]][_0x221c[157]]||document[_0x221c[158]][_0x221c[157]],_0xc851x5= new mxWindow(mxResources[_0x221c[203]](this[_0x221c[3113]])||this[_0x221c[3113]],_0xc851x3,(_0xc851x2-this[_0x221c[3135]])/2,(_0xc851x4-this[_0x221c[3136]])/3,this[_0x221c[3135]],this[_0x221c[3136]]);_0xc851x5[_0x221c[161]](!0);_0xc851x5[_0x221c[164]](!0);_0xc851x5[_0x221c[165]]= !1;_0xc851x5[_0x221c[163]](!0);null!=this[_0x221c[3133]]&&_0xc851x5[_0x221c[951]](this[_0x221c[3133]]);mxClient[_0x221c[133]]&&(_0xc851x2=function(_0xc851x2){_0xc851x3[_0x221c[57]](_0x221c[119],_0xc851x5[_0x221c[485]][_0x221c[167]]-26+_0x221c[168])},_0xc851x5[_0x221c[169]](mxEvent.RESIZE_END,_0xc851x2),_0xc851x5[_0x221c[169]](mxEvent.MAXIMIZE,_0xc851x2),_0xc851x5[_0x221c[169]](mxEvent.NORMALIZE,_0xc851x2),_0xc851x5[_0x221c[169]](mxEvent.SHOW,_0xc851x2));this[_0x221c[2719]]=_0xc851x5};this[_0x221c[2719]][_0x221c[175]](!0)};mxEditor[_0x221c[202]][_0x221c[3179]]=function(){if(null==this[_0x221c[2136]]){var _0xc851x2=document[_0x221c[55]](_0x221c[485]);_0xc851x2[_0x221c[124]][_0x221c[277]]=_0x221c[188];_0xc851x2[_0x221c[124]][_0x221c[117]]=_0x221c[118];_0xc851x2[_0x221c[124]][_0x221c[119]]=_0x221c[118];_0xc851x2[_0x221c[124]][_0x221c[1537]]=_0x221c[1391];_0xc851x2[_0x221c[124]][_0x221c[270]]=_0x221c[582];var _0xc851x3= new mxWindow(mxResources[_0x221c[203]](this[_0x221c[3114]])||this[_0x221c[3114]],_0xc851x2,600,480,200,200,!1),_0xc851x4= new mxOutline(this[_0x221c[1179]],_0xc851x2);_0xc851x3[_0x221c[164]](!0);_0xc851x3[_0x221c[163]](!0);_0xc851x3[_0x221c[165]]= !1;_0xc851x3[_0x221c[169]](mxEvent.RESIZE_END,function(){_0xc851x4[_0x221c[2729]]()});this[_0x221c[2136]]=_0xc851x3;this[_0x221c[2136]][_0x221c[2136]]=_0xc851x4};this[_0x221c[2136]][_0x221c[175]](!0);this[_0x221c[2136]][_0x221c[2136]][_0x221c[2729]](!0)};mxEditor[_0x221c[202]][_0x221c[3086]]=function(_0xc851x2){_0x221c[804]==_0xc851x2?(this[_0x221c[1179]][_0x221c[2316]][_0x221c[2840]]= !1,this[_0x221c[1179]][_0x221c[1995]](!1)):_0x221c[807]==_0xc851x2?(this[_0x221c[1179]][_0x221c[2316]][_0x221c[2840]]= !1,this[_0x221c[1179]][_0x221c[1995]](!0)):_0x221c[796]==_0xc851x2&&(this[_0x221c[1179]][_0x221c[2316]][_0x221c[2840]]= !0,this[_0x221c[1179]][_0x221c[1995]](!1))};mxEditor[_0x221c[202]][_0x221c[3195]]=function(_0xc851x2,_0xc851x3,_0xc851x4){this[_0x221c[3094]][_0x221c[3065]](this,_0xc851x2,_0xc851x3,_0xc851x4)};mxEditor[_0x221c[202]][_0x221c[2503]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=null;if(null!=this[_0x221c[2075]]){_0xc851x4=this[_0x221c[1179]][_0x221c[502]]()[_0x221c[1978]](this[_0x221c[2075]])}else {_0xc851x4= new mxCell(_0x221c[110]);_0xc851x4[_0x221c[1994]](!0);var _0xc851x5= new mxGeometry;_0xc851x5[_0x221c[1500]]= !0;_0xc851x4[_0x221c[1724]](_0xc851x5)};_0xc851x5=this[_0x221c[2291]]();null!=_0xc851x5&&_0xc851x4[_0x221c[475]](_0xc851x5);return _0xc851x4};mxEditor[_0x221c[202]][_0x221c[2291]]=function(){return this[_0x221c[3119]]};mxEditor[_0x221c[202]][_0x221c[3227]]=function(_0xc851x2){return null!=this[_0x221c[3093]]&&0<this[_0x221c[3093]][_0x221c[67]]&&this[_0x221c[1179]][_0x221c[1730]](_0xc851x2)?this[_0x221c[3093]][this[_0x221c[3130]]++ %this[_0x221c[3093]][_0x221c[67]]]:null};mxEditor[_0x221c[202]][_0x221c[3228]]=function(_0xc851x2){if(null!=this[_0x221c[3100]]){var _0xc851x3=this[_0x221c[3227]](_0xc851x2);null!=_0xc851x3&&_0xc851x2[_0x221c[475]](_0xc851x2[_0x221c[474]]()+_0x221c[471]+this[_0x221c[3100]]+_0x221c[226]+_0xc851x3)}};mxEditor[_0x221c[202]][_0x221c[817]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){for(var _0xc851x9=this[_0x221c[1179]][_0x221c[502]]();null!=_0xc851x2&&!this[_0x221c[1179]][_0x221c[2685]](_0xc851x2);){_0xc851x2=_0xc851x9[_0x221c[1197]](_0xc851x2)};_0xc851x2=null!=_0xc851x2?_0xc851x2:this[_0x221c[1179]][_0x221c[2461]](_0xc851x4,_0xc851x5);var _0xc851xa=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[255]],_0xc851x12=_0xc851x9[_0x221c[1721]](_0xc851x3),_0xc851x13=_0xc851x9[_0x221c[1721]](_0xc851x2);if(this[_0x221c[1179]][_0x221c[1730]](_0xc851x3)&&!this[_0x221c[1179]][_0x221c[2412]]){_0xc851x2=null}else {if(null==_0xc851x2&&this[_0x221c[3116]]){return null};if(null!=_0xc851x2&&null!=_0xc851x13){var _0xc851x14=this[_0x221c[1179]][_0x221c[249]]()[_0x221c[248]](_0xc851x2);if(null!=_0xc851x14){if(_0xc851x4-=_0xc851x14[_0x221c[2078]][_0x221c[235]]*_0xc851xa,_0xc851x5-=_0xc851x14[_0x221c[2078]][_0x221c[236]]*_0xc851xa,this[_0x221c[1179]][_0x221c[3229]]){var _0xc851x13=_0xc851x12[_0x221c[117]],_0xc851x15=_0xc851x12[_0x221c[119]],_0xc851x16=_0xc851x14[_0x221c[235]]+_0xc851x14[_0x221c[117]];_0xc851x4+_0xc851x13>_0xc851x16&&(_0xc851x4-=_0xc851x4+_0xc851x13-_0xc851x16);_0xc851x16=_0xc851x14[_0x221c[236]]+_0xc851x14[_0x221c[119]];_0xc851x5+_0xc851x15>_0xc851x16&&(_0xc851x5-=_0xc851x5+_0xc851x15-_0xc851x16)}}else {null!=_0xc851x13&&(_0xc851x4-=_0xc851x13[_0x221c[235]]*_0xc851xa,_0xc851x5-=_0xc851x13[_0x221c[236]]*_0xc851xa)}}};_0xc851x12=_0xc851x12[_0x221c[238]]();_0xc851x12[_0x221c[235]]=this[_0x221c[1179]][_0x221c[1021]](_0xc851x4/_0xc851xa-this[_0x221c[1179]][_0x221c[249]]()[_0x221c[513]][_0x221c[235]]-this[_0x221c[1179]][_0x221c[1020]]/2);_0xc851x12[_0x221c[236]]=this[_0x221c[1179]][_0x221c[1021]](_0xc851x5/_0xc851xa-this[_0x221c[1179]][_0x221c[249]]()[_0x221c[513]][_0x221c[236]]-this[_0x221c[1179]][_0x221c[1020]]/2);_0xc851x3[_0x221c[1724]](_0xc851x12);null==_0xc851x2&&(_0xc851x2=this[_0x221c[1179]][_0x221c[902]]());this[_0x221c[3228]](_0xc851x3);this[_0x221c[746]]( new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,_0x221c[1988],_0xc851x3,_0x221c[1101],_0xc851x2));_0xc851x9[_0x221c[473]]();try{_0xc851x3=this[_0x221c[1179]][_0x221c[2103]](_0xc851x3,_0xc851x2),null!=_0xc851x3&&(this[_0x221c[1179]][_0x221c[2509]](_0xc851x3),this[_0x221c[746]]( new mxEventObject(mxEvent.ADD_VERTEX,_0x221c[1988],_0xc851x3)))}finally{_0xc851x9[_0x221c[476]]()};null!=_0xc851x3&&(this[_0x221c[1179]][_0x221c[2450]](_0xc851x3),this[_0x221c[1179]][_0x221c[2564]](_0xc851x3),this[_0x221c[746]]( new mxEventObject(mxEvent.AFTER_ADD_VERTEX,_0x221c[1988],_0xc851x3)));return _0xc851x3};mxEditor[_0x221c[202]][_0x221c[515]]=function(){this[_0x221c[2717]]||(this[_0x221c[2717]]= !0,null!=this[_0x221c[3112]]&&this[_0x221c[3112]][_0x221c[515]](),null!=this[_0x221c[2136]]&&this[_0x221c[2136]][_0x221c[515]](),null!=this[_0x221c[716]]&&this[_0x221c[716]][_0x221c[515]](),null!=this[_0x221c[3098]]&&this[_0x221c[3098]][_0x221c[515]](),null!=this[_0x221c[3203]]&&this[_0x221c[3203]][_0x221c[515]](),null!=this[_0x221c[3082]]&&this[_0x221c[3082]][_0x221c[515]](),null!=this[_0x221c[1179]]&&this[_0x221c[1179]][_0x221c[515]](),this[_0x221c[3118]]=this[_0x221c[879]]=null)};var mxCodecRegistry={codecs:[],aliases:[],register:function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[718]]();mxCodecRegistry[_0x221c[3230]][_0xc851x3]=_0xc851x2;var _0xc851x4=mxUtils[_0x221c[197]](_0xc851x2[_0x221c[3231]][_0x221c[196]]);_0xc851x4!=_0xc851x3&&mxCodecRegistry[_0x221c[3232]](_0xc851x4,_0xc851x3)};return _0xc851x2},addAlias:function(_0xc851x2,_0xc851x3){mxCodecRegistry[_0x221c[3233]][_0xc851x2]=_0xc851x3},getCodec:function(_0xc851x2){var _0xc851x3=null;if(null!=_0xc851x2){var _0xc851x3=mxUtils[_0x221c[197]](_0xc851x2),_0xc851x4=mxCodecRegistry[_0x221c[3233]][_0xc851x3];null!=_0xc851x4&&(_0xc851x3=_0xc851x4);_0xc851x3=mxCodecRegistry[_0x221c[3230]][_0xc851x3];if(null==_0xc851x3){try{_0xc851x3= new mxObjectCodec( new _0xc851x2),mxCodecRegistry[_0x221c[3234]](_0xc851x3)}catch(d){}}};return _0xc851x3}};function mxCodec(_0xc851x2){this[_0x221c[395]]=_0xc851x2||mxUtils[_0x221c[306]]();this[_0x221c[68]]=[]}mxCodec[_0x221c[202]][_0x221c[395]]=null;mxCodec[_0x221c[202]][_0x221c[68]]=null;mxCodec[_0x221c[202]][_0x221c[3235]]= !1;mxCodec[_0x221c[202]][_0x221c[1104]]=function(_0xc851x2,_0xc851x3){return this[_0x221c[68]][_0xc851x2]=_0xc851x3};mxCodec[_0x221c[202]][_0x221c[3236]]=function(_0xc851x2){var _0xc851x3=null;null!=_0xc851x2&&(_0xc851x3=this[_0x221c[68]][_0xc851x2],null==_0xc851x3&&(_0xc851x3=this[_0x221c[1060]](_0xc851x2),null==_0xc851x3&&(_0xc851x2=this[_0x221c[1362]](_0xc851x2),null!=_0xc851x2&&(_0xc851x3=this[_0x221c[1093]](_0xc851x2)))));return _0xc851x3};mxCodec[_0x221c[202]][_0x221c[1060]]=function(_0xc851x2){return null};mxCodec[_0x221c[202]][_0x221c[1362]]=function(_0xc851x2,_0xc851x3){return mxUtils[_0x221c[290]](this[_0x221c[395]][_0x221c[158]],null!=_0xc851x3?_0xc851x3:_0x221c[1363],_0xc851x2)};mxCodec[_0x221c[202]][_0x221c[1103]]=function(_0xc851x2){var _0xc851x3=null;null!=_0xc851x2&&(_0xc851x3=this[_0x221c[3237]](_0xc851x2),null==_0xc851x3&&_0xc851x2 instanceof mxCell&&(_0xc851x3=_0xc851x2[_0x221c[1103]](),null==_0xc851x3&&(_0xc851x3=mxCellPath[_0x221c[385]](_0xc851x2),0==_0xc851x3[_0x221c[67]]&&(_0xc851x3=_0x221c[813]))));return _0xc851x3};mxCodec[_0x221c[202]][_0x221c[3237]]=function(_0xc851x2){return null};mxCodec[_0x221c[202]][_0x221c[514]]=function(_0xc851x2){var _0xc851x3=null;if(null!=_0xc851x2&&null!=_0xc851x2[_0x221c[196]]){var _0xc851x4=mxCodecRegistry[_0x221c[3238]](_0xc851x2[_0x221c[196]]);null!=_0xc851x4?_0xc851x3=_0xc851x4[_0x221c[514]](this,_0xc851x2):mxUtils[_0x221c[1331]](_0xc851x2)?_0xc851x3=mxClient[_0x221c[80]]?_0xc851x2[_0x221c[511]](!0):this[_0x221c[395]][_0x221c[3239]](_0xc851x2,!0):mxLog[_0x221c[283]](_0x221c[3240]+mxUtils[_0x221c[197]](_0xc851x2[_0x221c[196]]))};return _0xc851x3};mxCodec[_0x221c[202]][_0x221c[1093]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=null;if(null!=_0xc851x2&&_0xc851x2[_0x221c[288]]==mxConstants[_0x221c[289]]){var _0xc851x5=null;try{_0xc851x5=eval(_0xc851x2[_0x221c[301]])}catch(e){};try{var _0xc851xa=mxCodecRegistry[_0x221c[3238]](_0xc851x5);null!=_0xc851xa?_0xc851x4=_0xc851xa[_0x221c[1093]](this,_0xc851x2,_0xc851x3):(_0xc851x4=_0xc851x2[_0x221c[511]](!0),_0xc851x4[_0x221c[1390]](_0x221c[3069]))}catch(g){mxLog[_0x221c[143]](_0x221c[3241]+_0xc851x2[_0x221c[301]]+_0x221c[3186]+g[_0x221c[281]])}};return _0xc851x4};mxCodec[_0x221c[202]][_0x221c[3242]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3[_0x221c[62]](this[_0x221c[514]](_0xc851x2));if(null==_0xc851x4||_0xc851x4){_0xc851x4=_0xc851x2[_0x221c[262]]();for(var _0xc851x5=0;_0xc851x5<_0xc851x4;_0xc851x5++){this[_0x221c[3242]](_0xc851x2[_0x221c[263]](_0xc851x5),_0xc851x3)}}};mxCodec[_0x221c[202]][_0x221c[3243]]=function(_0xc851x2){return null!=_0xc851x2&&_0x221c[279]== typeof _0xc851x2[_0x221c[3243]]?_0xc851x2[_0x221c[3243]]():!1};mxCodec[_0x221c[202]][_0x221c[3244]]=function(_0xc851x2,_0xc851x3){_0xc851x3=null!=_0xc851x3?_0xc851x3:!0;var _0xc851x4=null;if(null!=_0xc851x2&&_0xc851x2[_0x221c[288]]==mxConstants[_0x221c[289]]){_0xc851x4=mxCodecRegistry[_0x221c[3238]](_0xc851x2[_0x221c[301]]);if(!this[_0x221c[3243]](_0xc851x4)){for(var _0xc851x5=_0xc851x2[_0x221c[285]];null!=_0xc851x5&&!this[_0x221c[3243]](_0xc851x4);){_0xc851x4=mxCodecRegistry[_0x221c[3238]](_0xc851x5[_0x221c[301]]),_0xc851x5=_0xc851x5[_0x221c[287]]}};this[_0x221c[3243]](_0xc851x4)||(_0xc851x4=mxCodecRegistry[_0x221c[3238]](mxCell));_0xc851x4=_0xc851x4[_0x221c[1093]](this,_0xc851x2);_0xc851x3&&this[_0x221c[3245]](_0xc851x4)};return _0xc851x4};mxCodec[_0x221c[202]][_0x221c[3245]]=function(_0xc851x2){var _0xc851x3=_0xc851x2[_0x221c[1101]],_0xc851x4=_0xc851x2[_0x221c[1709]](!0),_0xc851x5=_0xc851x2[_0x221c[1709]](!1);_0xc851x2[_0x221c[1957]](null,!1);_0xc851x2[_0x221c[1957]](null,!0);_0xc851x2[_0x221c[1101]]=null;null!=_0xc851x3&&_0xc851x3[_0x221c[1937]](_0xc851x2);null!=_0xc851x4&&_0xc851x4[_0x221c[1960]](_0xc851x2,!0);null!=_0xc851x5&&_0xc851x5[_0x221c[1960]](_0xc851x2,!1)};mxCodec[_0x221c[202]][_0x221c[57]]=function(_0xc851x2,_0xc851x3,_0xc851x4){null!=_0xc851x3&&null!=_0xc851x4&&_0xc851x2[_0x221c[57]](_0xc851x3,_0xc851x4)};function mxObjectCodec(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){this[_0x221c[3231]]=_0xc851x2;this[_0x221c[3246]]=null!=_0xc851x3?_0xc851x3:[];this[_0x221c[3247]]=null!=_0xc851x4?_0xc851x4:[];this[_0x221c[3248]]=null!=_0xc851x5?_0xc851x5:[];this[_0x221c[3249]]={};for(var _0xc851x9 in this[_0x221c[3248]]){this[_0x221c[3249]][this[_0x221c[3248]][_0xc851x9]]=_0xc851x9}}mxObjectCodec[_0x221c[202]][_0x221c[3231]]=null;mxObjectCodec[_0x221c[202]][_0x221c[3246]]=null;mxObjectCodec[_0x221c[202]][_0x221c[3247]]=null;mxObjectCodec[_0x221c[202]][_0x221c[3248]]=null;mxObjectCodec[_0x221c[202]][_0x221c[3249]]=null;mxObjectCodec[_0x221c[202]][_0x221c[718]]=function(){return mxUtils[_0x221c[197]](this[_0x221c[3231]][_0x221c[196]])};mxObjectCodec[_0x221c[202]][_0x221c[3250]]=function(){return  new this[_0x221c[3231]][_0x221c[196]]};mxObjectCodec[_0x221c[202]][_0x221c[3251]]=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=this[_0x221c[3249]][_0xc851x2];null!=_0xc851x3&&(_0xc851x2=_0xc851x3)};return _0xc851x2};mxObjectCodec[_0x221c[202]][_0x221c[3252]]=function(_0xc851x2){if(null!=_0xc851x2){var _0xc851x3=this[_0x221c[3248]][_0xc851x2];null!=_0xc851x3&&(_0xc851x2=_0xc851x3)};return _0xc851x2};mxObjectCodec[_0x221c[202]][_0x221c[3253]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){return _0xc851x3==mxObjectIdentity[_0x221c[195]]||0<=mxUtils[_0x221c[2]](this[_0x221c[3246]],_0xc851x3)};mxObjectCodec[_0x221c[202]][_0x221c[3254]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){return 0<=mxUtils[_0x221c[2]](this[_0x221c[3247]],_0xc851x3)};mxObjectCodec[_0x221c[202]][_0x221c[514]]=function(_0xc851x2,_0xc851x3){var _0xc851x4=_0xc851x2[_0x221c[395]][_0x221c[55]](this[_0x221c[718]]());_0xc851x3=this[_0x221c[3255]](_0xc851x2,_0xc851x3,_0xc851x4);this[_0x221c[3256]](_0xc851x2,_0xc851x3,_0xc851x4);return this[_0x221c[3257]](_0xc851x2,_0xc851x3,_0xc851x4)};mxObjectCodec[_0x221c[202]][_0x221c[3256]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2[_0x221c[57]](_0xc851x4,_0x221c[1363],_0xc851x2[_0x221c[1103]](_0xc851x3));for(var _0xc851x5 in _0xc851x3){var _0xc851x9=_0xc851x5,_0xc851xa=_0xc851x3[_0xc851x9];null!=_0xc851xa&&!this[_0x221c[3253]](_0xc851x3,_0xc851x9,_0xc851xa,!0)&&(mxUtils[_0x221c[1946]](_0xc851x9)&&(_0xc851x9=null),this[_0x221c[3258]](_0xc851x2,_0xc851x3,_0xc851x9,_0xc851xa,_0xc851x4))}};mxObjectCodec[_0x221c[202]][_0x221c[3258]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){if(null!=_0xc851x5){if(this[_0x221c[3254]](_0xc851x3,_0xc851x4,_0xc851x5,!0)){var _0xc851xa=_0xc851x2[_0x221c[1103]](_0xc851x5);if(null==_0xc851xa){mxLog[_0x221c[283]](_0x221c[3259]+this[_0x221c[718]]()+_0x221c[87]+_0xc851x4+_0x221c[226]+_0xc851x5);return};_0xc851x5=_0xc851xa};_0xc851xa=this[_0x221c[3231]][_0xc851x4];if(null==_0xc851x4||_0xc851x2[_0x221c[3235]]||_0xc851xa!=_0xc851x5){_0xc851x4=this[_0x221c[3252]](_0xc851x4),this[_0x221c[3260]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9)}}};mxObjectCodec[_0x221c[202]][_0x221c[3260]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0x221c[194]!= typeof _0xc851x5?this[_0x221c[3261]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9):this[_0x221c[3262]](_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9)};mxObjectCodec[_0x221c[202]][_0x221c[3261]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x5=this[_0x221c[3263]](_0xc851x5);null==_0xc851x4?(_0xc851x3=_0xc851x2[_0x221c[395]][_0x221c[55]](_0x221c[99]),_0x221c[279]== typeof _0xc851x5?_0xc851x3[_0x221c[62]](_0xc851x2[_0x221c[395]][_0x221c[344]](_0xc851x5)):_0xc851x2[_0x221c[57]](_0xc851x3,_0x221c[131],_0xc851x5),_0xc851x9[_0x221c[62]](_0xc851x3)):_0x221c[279]!= typeof _0xc851x5&&_0xc851x2[_0x221c[57]](_0xc851x9,_0xc851x4,_0xc851x5)};mxObjectCodec[_0x221c[202]][_0x221c[3262]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5,_0xc851x9){_0xc851x2=_0xc851x2[_0x221c[514]](_0xc851x5);null!=_0xc851x2?(null!=_0xc851x4&&_0xc851x2[_0x221c[57]](_0x221c[3069],_0xc851x4),_0xc851x9[_0x221c[62]](_0xc851x2)):mxLog[_0x221c[283]](_0x221c[3264]+this[_0x221c[718]]()+_0x221c[87]+_0xc851x4+_0x221c[3186]+_0xc851x5)};mxObjectCodec[_0x221c[202]][_0x221c[3263]]=function(_0xc851x2){if(_0x221c[82]== typeof _0xc851x2[_0x221c[67]]&&(!0==_0xc851x2||!1==_0xc851x2)){_0xc851x2=!0==_0xc851x2?_0x221c[500]:_0x221c[468]};return _0xc851x2};mxObjectCodec[_0x221c[202]][_0x221c[3265]]=function(_0xc851x2){mxUtils[_0x221c[1946]](_0xc851x2)&&(_0xc851x2=parseFloat(_0xc851x2));return _0xc851x2};mxObjectCodec[_0x221c[202]][_0x221c[3255]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return _0xc851x3};mxObjectCodec[_0x221c[202]][_0x221c[3257]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return _0xc851x4};mxObjectCodec[_0x221c[202]][_0x221c[1093]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=_0xc851x3[_0x221c[284]](_0x221c[1363]),_0xc851x9=_0xc851x2[_0x221c[68]][_0xc851x5];null==_0xc851x9&&(_0xc851x9=_0xc851x4||this[_0x221c[3250]](),null!=_0xc851x5&&_0xc851x2[_0x221c[1104]](_0xc851x5,_0xc851x9));_0xc851x3=this[_0x221c[3266]](_0xc851x2,_0xc851x3,_0xc851x9);this[_0x221c[3267]](_0xc851x2,_0xc851x3,_0xc851x9);return this[_0x221c[3268]](_0xc851x2,_0xc851x3,_0xc851x9)};mxObjectCodec[_0x221c[202]][_0x221c[3267]]=function(_0xc851x2,_0xc851x3,_0xc851x4){null!=_0xc851x3&&(this[_0x221c[3269]](_0xc851x2,_0xc851x3,_0xc851x4),this[_0x221c[3270]](_0xc851x2,_0xc851x3,_0xc851x4))};mxObjectCodec[_0x221c[202]][_0x221c[3269]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x3=_0xc851x3[_0x221c[320]];if(null!=_0xc851x3){for(var _0xc851x5=0;_0xc851x5<_0xc851x3[_0x221c[67]];_0xc851x5++){this[_0x221c[3271]](_0xc851x2,_0xc851x3[_0xc851x5],_0xc851x4)}}};mxObjectCodec[_0x221c[202]][_0x221c[3271]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=_0xc851x3[_0x221c[301]];if(_0x221c[3069]!=_0xc851x5&&_0x221c[1363]!=_0xc851x5){_0xc851x3=this[_0x221c[3265]](_0xc851x3[_0x221c[318]]);var _0xc851x9=this[_0x221c[3251]](_0xc851x5);if(this[_0x221c[3254]](_0xc851x4,_0xc851x9,_0xc851x3,!1)){_0xc851x2=_0xc851x2[_0x221c[3236]](_0xc851x3);if(null==_0xc851x2){mxLog[_0x221c[283]](_0x221c[3272]+this[_0x221c[718]]()+_0x221c[87]+_0xc851x5+_0x221c[226]+_0xc851x3);return};_0xc851x3=_0xc851x2};this[_0x221c[3253]](_0xc851x4,_0xc851x5,_0xc851x3,!1)||(_0xc851x4[_0xc851x5]=_0xc851x3)}};mxObjectCodec[_0x221c[202]][_0x221c[3270]]=function(_0xc851x2,_0xc851x3,_0xc851x4){for(_0xc851x3=_0xc851x3[_0x221c[285]];null!=_0xc851x3;){var _0xc851x5=_0xc851x3[_0x221c[287]];_0xc851x3[_0x221c[288]]==mxConstants[_0x221c[289]]&&!this[_0x221c[3273]](_0xc851x2,_0xc851x3,_0xc851x4)&&this[_0x221c[3274]](_0xc851x2,_0xc851x3,_0xc851x4);_0xc851x3=_0xc851x5}};mxObjectCodec[_0x221c[202]][_0x221c[3274]]=function(_0xc851x2,_0xc851x3,_0xc851x4){var _0xc851x5=this[_0x221c[3251]](_0xc851x3[_0x221c[284]](_0x221c[3069]));if(null==_0xc851x5||!this[_0x221c[3253]](_0xc851x4,_0xc851x5,_0xc851x3,!1)){var _0xc851x9=this[_0x221c[3275]](_0xc851x4,_0xc851x5,_0xc851x3),_0xc851xa=null;_0x221c[99]==_0xc851x3[_0x221c[301]]?(_0xc851xa=_0xc851x3[_0x221c[284]](_0x221c[131]),null==_0xc851xa&&(_0xc851xa=mxUtils[_0x221c[1545]](mxUtils[_0x221c[329]](_0xc851x3)))):_0xc851xa=_0xc851x2[_0x221c[1093]](_0xc851x3,_0xc851x9);this[_0x221c[3276]](_0xc851x4,_0xc851x5,_0xc851xa,_0xc851x9)}};mxObjectCodec[_0x221c[202]][_0x221c[3275]]=function(_0xc851x2,_0xc851x3,_0xc851x4){_0xc851x2=_0xc851x2[_0xc851x3];_0xc851x2 instanceof Array&&0<_0xc851x2[_0x221c[67]]&&(_0xc851x2=null);return _0xc851x2};mxObjectCodec[_0x221c[202]][_0x221c[3276]]=function(_0xc851x2,_0xc851x3,_0xc851x4,_0xc851x5){null!=_0xc851x4&&_0xc851x4!=_0xc851x5&&(null!=_0xc851x3&&0<_0xc851x3[_0x221c[67]]?_0xc851x2[_0xc851x3]=_0xc851x4:_0xc851x2[_0x221c[207]](_0xc851x4))};mxObjectCodec[_0x221c[202]][_0x221c[3273]]=function(_0xc851x2,_0xc851x3,_0xc851x4){if(_0x221c[3277]==_0xc851x3[_0x221c[301]]){_0xc851x3=_0xc851x3[_0x221c[284]](_0x221c[298]);if(null!=_0xc851x3){try{var _0xc851x5=mxUtils[_0x221c[219]](_0xc851x3)[_0x221c[874]]();null!=_0xc851x5&&_0xc851x2[_0x221c[1093]](_0xc851x5,_0xc851x4)}catch(e){}};return !0};return !1};mxObjectCodec[_0x221c[202]][_0x221c[3266]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return _0xc851x3};mxObjectCodec[_0x221c[202]][_0x221c[3268]]=function(_0xc851x2,_0xc851x3,_0xc851x4){return _0xc851x4};mxCodecRegistry[_0x221c[3234]](function(){var _0xc851x2= new mxObjectCodec( new mxCell,[_0x221c[1954],_0x221c[1842],_0x221c[1211],_0x221c[1991]],[_0x221c[1101],_0x221c[1097],_0x221c[772]]);_0xc851x2[_0x221c[3243]]=function(){return !0};_0xc851x2[_0x221c[3253]]=function(_0xc851x2,_0xc851x4,_0xc851x5,_0xc851x9){return mxObjectCodec[_0x221c[202]][_0x221c[3253]][_0x221c[183]](this,arguments)||_0xc851x9&&_0x221c[131]==_0xc851x4&&_0xc851x5[_0x221c[288]]==mxConstants[_0x221c[289]]};_0xc851x2[_0x221c[3257]]=function(_0xc851x2,_0xc851x4,_0xc851x5){if(null!=_0xc851x4[_0x221c[131]]&&_0xc851x4[_0x221c[131]][_0x221c[288]]==mxConstants[_0x221c[289]]){var _0xc851x9=_0xc851x5;_0xc851x5=mxClient[_0x221c[80]]?_0xc851x4[_0x221c[131]][_0x221c[511]](!0):_0xc851x2[_0x221c[395]][_0x221c[3239]](_0xc851x4[_0x221c[131]],!0);_0xc851x5[_0x221c[62]](_0xc851x9);_0xc851x2=_0xc851x9[_0x221c[284]](_0x221c[1363]);_0xc851x5[_0x221c[57]](_0x221c[1363],_0xc851x2);_0xc851x9[_0x221c[1390]](_0x221c[1363])};return _0xc851x5};_0xc851x2[_0x221c[3266]]=function(_0xc851x2,_0xc851x4,_0xc851x5){var _0xc851x9=_0xc851x4,_0xc851xa=this[_0x221c[718]]();_0xc851x4[_0x221c[301]]!=_0xc851xa?(_0xc851x9=_0xc851x4[_0x221c[64]](_0xc851xa)[0],null!=_0xc851x9&&_0xc851x9[_0x221c[265]]==_0xc851x4?(mxUtils[_0x221c[3278]](_0xc851x9,!0),mxUtils[_0x221c[3278]](_0xc851x9,!1),_0xc851x9[_0x221c[265]][_0x221c[266]](_0xc851x9)):_0xc851x9=null,_0xc851x5[_0x221c[131]]=_0xc851x4[_0x221c[511]](!0),_0xc851x4=_0xc851x5[_0x221c[131]][_0x221c[284]](_0x221c[1363]),null!=_0xc851x4&&(_0xc851x5[_0x221c[1945]](_0xc851x4),_0xc851x5[_0x221c[131]][_0x221c[1390]](_0x221c[1363]))):_0xc851x5[_0x221c[1945]](_0xc851x4[_0x221c[284]](_0x221c[1363]));if(null!=_0xc851x9){for(_0xc851x4=0;_0xc851x4<this[_0x221c[3247]][_0x221c[67]];_0xc851x4++){var _0xc851xa=this[_0x221c[3247]][_0xc851x4],_0xc851x12=_0xc851x9[_0x221c[284]](_0xc851xa);if(null!=_0xc851x12){_0xc851x9[_0x221c[1390]](_0xc851xa);var _0xc851x13=_0xc851x2[_0x221c[68]][_0xc851x12]||_0xc851x2[_0x221c[1060]](_0xc851x12);null==_0xc851x13&&(_0xc851x12=_0xc851x2[_0x221c[1362]](_0xc851x12),null!=_0xc851x12&&(_0xc851x13=(mxCodecRegistry[_0x221c[3230]][_0xc851x12[_0x221c[301]]]||this)[_0x221c[1093]](_0xc851x2,_0xc851x12)));_0xc851x5[_0xc851xa]=_0xc851x13}}};return _0xc851x9};return _0xc851x2}());mxCodecRegistry[_0x221c[3234]](function(){var _0xc851x2= new mxObjectCodec( new mxGraphModel);_0xc851x2[_0x221c[3256]]=function(_0xc851x2,_0xc851x4,_0xc851x5){var _0xc851x9=_0xc851x2[_0x221c[395]][_0x221c[55]](_0x221c[813]);_0xc851x2[_0x221c[3242]](_0xc851x4[_0x221c[501]](),_0xc851x9);_0xc851x5[_0x221c[62]](_0xc851x9)};_0xc851x2[_0x221c[3274]]=function(_0xc851x2,_0xc851x4,_0xc851x5){_0x221c[813]==_0xc851x4[_0x221c[301]]?this[_0x221c[3279]](_0xc851x2,_0xc851x4,_0xc851x5):mxObjectCodec[_0x221c[202]][_0x221c[3274]][_0x221c[183]](this,arguments)};_0xc851x2[_0x221c[3279]]=function(_0xc851x2,_0xc851x4,_0xc851x5){var _0xc851x9=null;for(_0xc851x4=_0xc851x4[_0x221c[285]];null!=_0xc851x4;){var _0xc851xa=_0xc851x2[_0x221c[3244]](_0xc851x4);null!=_0xc851xa&&null==_0xc851xa[_0x221c[1197]]()&&(_0xc851x9=_0xc851xa);_0xc851x4=_0xc851x4[_0x221c[287]]};null!=_0xc851x9&&_0xc851x5[_0x221c[1927]](_0xc851x9)};return _0xc851x2}());mxCodecRegistry[_0x221c[3234]](function(){var _0xc851x2= new mxObjectCodec( new mxRootChange,[_0x221c[251],_0x221c[257],_0x221c[813]]);_0xc851x2[_0x221c[3257]]=function(_0xc851x2,_0xc851x4,_0xc851x5){_0xc851x2[_0x221c[3242]](_0xc851x4[_0x221c[813]],_0xc851x5);return _0xc851x5};_0xc851x2[_0x221c[3266]]=function(_0xc851x2,_0xc851x4,_0xc851x5){if(null!=_0xc851x4[_0x221c[285]]&&_0xc851x4[_0x221c[285]][_0x221c[288]]==mxConstants[_0x221c[289]]){_0xc851x4=_0xc851x4[_0x221c[511]](!0);var _0xc851x9=_0xc851x4[_0x221c[285]];_0xc851x5[_0x221c[813]]=_0xc851x2[_0x221c[3244]](_0xc851x9,!1);_0xc851x5=_0xc851x9[_0x221c[287]];_0xc851x9[_0x221c[265]][_0x221c[266]](_0xc851x9);for(_0xc851x9=_0xc851x5;null!=_0xc851x9;){_0xc851x5=_0xc851x9[_0x221c[287]],_0xc851x2[_0x221c[3244]](_0xc851x9),_0xc851x9[_0x221c[265]][_0x221c[266]](_0xc851x9),_0xc851x9=_0xc851x5}};return _0xc851x4};_0xc851x2[_0x221c[3268]]=function(_0xc851x2,_0xc851x4,_0xc851x5){_0xc851x5[_0x221c[257]]=_0xc851x5[_0x221c[813]];return _0xc851x5};return _0xc851x2}());mxCodecRegistry[_0x221c[3234]](function(){var _0xc851x2= new mxObjectCodec( new mxChildChange,[_0x221c[251],_0x221c[247],_0x221c[1982]],[_0x221c[1101],_0x221c[257]]);_0xc851x2[_0x221c[3254]]=function(_0xc851x2,_0xc851x4,_0xc851x5,_0xc851x9){return _0x221c[247]==_0xc851x4&&(null!=_0xc851x2[_0x221c[257]]|| !_0xc851x9)?!0:0<=mxUtils[_0x221c[2]](this[_0x221c[3247]],_0xc851x4)};_0xc851x2[_0x221c[3257]]=function(_0xc851x2,_0xc851x4,_0xc851x5){this[_0x221c[3254]](_0xc851x4,_0x221c[247],_0xc851x4[_0x221c[247]],!0)?_0xc851x5[_0x221c[57]](_0x221c[247],_0xc851x2[_0x221c[1103]](_0xc851x4[_0x221c[247]])):_0xc851x2[_0x221c[3242]](_0xc851x4[_0x221c[247]],_0xc851x5);return _0xc851x5};_0xc851x2[_0x221c[3266]]=function(_0xc851x2,_0xc851x4,_0xc851x5){if(null!=_0xc851x4[_0x221c[285]]&&_0xc851x4[_0x221c[285]][_0x221c[288]]==mxConstants[_0x221c[289]]){_0xc851x4=_0xc851x4[_0x221c[511]](!0);var _0xc851x9=_0xc851x4[_0x221c[285]];_0xc851x5[_0x221c[247]]=_0xc851x2[_0x221c[3244]](_0xc851x9,!1);_0xc851x5=_0xc851x9[_0x221c[287]];_0xc851x9[_0x221c[265]][_0x221c[266]](_0xc851x9);for(_0xc851x9=_0xc851x5;null!=_0xc851x9;){_0xc851x5=_0xc851x9[_0x221c[287]];if(_0xc851x9[_0x221c[288]]==mxConstants[_0x221c[289]]){var _0xc851xa=_0xc851x9[_0x221c[284]](_0x221c[1363]);null==_0xc851x2[_0x221c[1060]](_0xc851xa)&&_0xc851x2[_0x221c[3244]](_0xc851x9)};_0xc851x9[_0x221c[265]][_0x221c[266]](_0xc851x9);_0xc851x9=_0xc851x5}}else {_0xc851x9=_0xc851x4[_0x221c[284]](_0x221c[247]),_0xc851x5[_0x221c[247]]=_0xc851x2[_0x221c[3236]](_0xc851x9)};return _0xc851x4};_0xc851x2[_0x221c[3268]]=function(_0xc851x2,_0xc851x4,_0xc851x5){_0xc851x5[_0x221c[247]][_0x221c[1101]]=_0xc851x5[_0x221c[257]];_0xc851x5[_0x221c[257]]=_0xc851x5[_0x221c[1101]];_0xc851x5[_0x221c[1982]]=_0xc851x5[_0x221c[1983]];return _0xc851x5};return _0xc851x2}());mxCodecRegistry[_0x221c[3234]](function(){var _0xc851x2= new mxObjectCodec( new mxTerminalChange,[_0x221c[251],_0x221c[257]],[_0x221c[246],_0x221c[1984]]);_0xc851x2[_0x221c[3268]]=function(_0xc851x2,_0xc851x4,_0xc851x5){_0xc851x5[_0x221c[257]]=_0xc851x5[_0x221c[1984]];return _0xc851x5};return _0xc851x2}());var mxGenericChangeCodec=function(_0xc851x2,_0xc851x3){var _0xc851x4= new mxObjectCodec(_0xc851x2,[_0x221c[251],_0x221c[257]],[_0x221c[246]]);_0xc851x4[_0x221c[3268]]=function(_0xc851x2,_0xc851x4,_0xc851xa){mxUtils[_0x221c[1331]](_0xc851xa[_0x221c[246]])&&(_0xc851xa[_0x221c[246]]=_0xc851x2[_0x221c[3244]](_0xc851xa[_0x221c[246]],!1));_0xc851xa[_0x221c[257]]=_0xc851xa[_0xc851x3];return _0xc851xa};return _0xc851x4};mxCodecRegistry[_0x221c[3234]](mxGenericChangeCodec( new mxValueChange,_0x221c[131]));mxCodecRegistry[_0x221c[3234]](mxGenericChangeCodec( new mxStyleChange,_0x221c[124]));mxCodecRegistry[_0x221c[3234]](mxGenericChangeCodec( new mxGeometryChange,_0x221c[256]));mxCodecRegistry[_0x221c[3234]](mxGenericChangeCodec( new mxCollapseChange,_0x221c[1985]));mxCodecRegistry[_0x221c[3234]](mxGenericChangeCodec( new mxVisibleChange,_0x221c[189]));mxCodecRegistry[_0x221c[3234]](mxGenericChangeCodec( new mxCellAttributeChange,_0x221c[131]));mxCodecRegistry[_0x221c[3234]](function(){return  new mxObjectCodec( new mxGraph,_0x221c[3280][_0x221c[224]](_0x221c[185]))}());mxCodecRegistry[_0x221c[3234]](function(){var _0xc851x2= new mxObjectCodec( new mxGraphView);_0xc851x2[_0x221c[514]]=function(_0xc851x2,_0xc851x4){return this[_0x221c[3242]](_0xc851x2,_0xc851x4,_0xc851x4[_0x221c[1179]][_0x221c[502]]()[_0x221c[501]]())};_0xc851x2[_0x221c[3242]]=function(_0xc851x2,_0xc851x4,_0xc851x5){var _0xc851x9=_0xc851x4[_0x221c[1179]][_0x221c[502]](),_0xc851xa=_0xc851x4[_0x221c[248]](_0xc851x5),_0xc851x12=_0xc851x9[_0x221c[1197]](_0xc851x5);if(null==_0xc851x12||null!=_0xc851xa){var _0xc851x13=_0xc851x9[_0x221c[262]](_0xc851x5),_0xc851x14=_0xc851x4[_0x221c[1179]][_0x221c[1198]](_0xc851x5),_0xc851x15=null;_0xc851x12==_0xc851x9[_0x221c[501]]()?_0xc851x15=_0x221c[3281]:null==_0xc851x12?_0xc851x15=_0x221c[1179]:_0xc851x9[_0x221c[250]](_0xc851x5)?_0xc851x15=_0x221c[1989]:0<_0xc851x13&&null!=_0xc851x14?_0xc851x15=_0x221c[1504]:_0xc851x9[_0x221c[1193]](_0xc851x5)&&(_0xc851x15=_0x221c[1988]);if(null!=_0xc851x15){var _0xc851x16=_0xc851x2[_0x221c[395]][_0x221c[55]](_0xc851x15);null!=_0xc851x4[_0x221c[1179]][_0x221c[2183]](_0xc851x5)&&(_0xc851x16[_0x221c[57]](_0x221c[685],_0xc851x4[_0x221c[1179]][_0x221c[2183]](_0xc851x5)),_0xc851x4[_0x221c[1179]][_0x221c[2186]](_0xc851x5)&&_0xc851x16[_0x221c[57]](_0x221c[1428],!0));if(null==_0xc851x12){var _0xc851x17=_0xc851x4[_0x221c[517]]();null!=_0xc851x17&&(_0xc851x16[_0x221c[57]](_0x221c[235],Math[_0x221c[488]](_0xc851x17[_0x221c[235]])),_0xc851x16[_0x221c[57]](_0x221c[236],Math[_0x221c[488]](_0xc851x17[_0x221c[236]])),_0xc851x16[_0x221c[57]](_0x221c[117],Math[_0x221c[488]](_0xc851x17[_0x221c[117]])),_0xc851x16[_0x221c[57]](_0x221c[119],Math[_0x221c[488]](_0xc851x17[_0x221c[119]])));_0xc851x16[_0x221c[57]](_0x221c[255],_0xc851x4[_0x221c[255]])}else {if(null!=_0xc851xa&&null!=_0xc851x14){for(_0xc851x17 in _0xc851xa[_0x221c[124]]){_0xc851x12=_0xc851xa[_0x221c[124]][_0xc851x17],_0x221c[279]== typeof _0xc851x12&&_0x221c[194]== typeof _0xc851x12&&(_0xc851x12=mxStyleRegistry[_0x221c[718]](_0xc851x12)),null!=_0xc851x12&&(_0x221c[279]!= typeof _0xc851x12&&_0x221c[194]!= typeof _0xc851x12)&&_0xc851x16[_0x221c[57]](_0xc851x17,_0xc851x12)};_0xc851x12=_0xc851xa[_0x221c[439]];if(null!=_0xc851x12&&0<_0xc851x12[_0x221c[67]]){_0xc851x14=Math[_0x221c[488]](_0xc851x12[0][_0x221c[235]])+_0x221c[537]+Math[_0x221c[488]](_0xc851x12[0][_0x221c[236]]);for(_0xc851x17=1;_0xc851x17<_0xc851x12[_0x221c[67]];_0xc851x17++){_0xc851x14+=_0x221c[185]+Math[_0x221c[488]](_0xc851x12[_0xc851x17][_0x221c[235]])+_0x221c[537]+Math[_0x221c[488]](_0xc851x12[_0xc851x17][_0x221c[236]])};_0xc851x16[_0x221c[57]](_0x221c[1525],_0xc851x14)}else {_0xc851x16[_0x221c[57]](_0x221c[235],Math[_0x221c[488]](_0xc851xa[_0x221c[235]])),_0xc851x16[_0x221c[57]](_0x221c[236],Math[_0x221c[488]](_0xc851xa[_0x221c[236]])),_0xc851x16[_0x221c[57]](_0x221c[117],Math[_0x221c[488]](_0xc851xa[_0x221c[117]])),_0xc851x16[_0x221c[57]](_0x221c[119],Math[_0x221c[488]](_0xc851xa[_0x221c[119]]))};_0xc851x17=_0xc851xa[_0x221c[2079]];null!=_0xc851x17&&(0!=_0xc851x17[_0x221c[235]]&&_0xc851x16[_0x221c[57]](_0x221c[1126],Math[_0x221c[488]](_0xc851x17[_0x221c[235]])),0!=_0xc851x17[_0x221c[236]]&&_0xc851x16[_0x221c[57]](_0x221c[1125],Math[_0x221c[488]](_0xc851x17[_0x221c[236]])))}};for(_0xc851x17=0;_0xc851x17<_0xc851x13;_0xc851x17++){_0xc851xa=this[_0x221c[3242]](_0xc851x2,_0xc851x4,_0xc851x9[_0x221c[263]](_0xc851x5,_0xc851x17)),null!=_0xc851xa&&_0xc851x16[_0x221c[62]](_0xc851xa)}}};return _0xc851x16};return _0xc851x2}());mxCodecRegistry[_0x221c[3234]](function(){var _0xc851x2= new mxObjectCodec( new mxStylesheet);_0xc851x2[_0x221c[514]]=function(_0xc851x2,_0xc851x4){var _0xc851x5=_0xc851x2[_0x221c[395]][_0x221c[55]](this[_0x221c[718]]()),_0xc851x9;for(_0xc851x9 in _0xc851x4[_0x221c[2054]]){var _0xc851xa=_0xc851x4[_0x221c[2054]][_0xc851x9],_0xc851x12=_0xc851x2[_0x221c[395]][_0x221c[55]](_0x221c[99]);if(null!=_0xc851x9){_0xc851x12[_0x221c[57]](_0x221c[3069],_0xc851x9);for(var _0xc851x13 in _0xc851xa){var _0xc851x14=this[_0x221c[3282]](_0xc851x13,_0xc851xa[_0xc851x13]);if(null!=_0xc851x14){var _0xc851x15=_0xc851x2[_0x221c[395]][_0x221c[55]](_0x221c[99]);_0xc851x15[_0x221c[57]](_0x221c[131],_0xc851x14);_0xc851x15[_0x221c[57]](_0x221c[3069],_0xc851x13);_0xc851x12[_0x221c[62]](_0xc851x15)}};0<_0xc851x12[_0x221c[271]][_0x221c[67]]&&_0xc851x5[_0x221c[62]](_0xc851x12)}};return _0xc851x5};_0xc851x2[_0x221c[3282]]=function(_0xc851x2,_0xc851x4){var _0xc851x5= typeof _0xc851x4;_0x221c[279]==_0xc851x5?_0xc851x4=mxStyleRegistry[_0x221c[718]](style[j]):_0x221c[194]==_0xc851x5&&(_0xc851x4=null);return _0xc851x4};_0xc851x2[_0x221c[1093]]=function(_0xc851x2,_0xc851x4,_0xc851x5){_0xc851x5=_0xc851x5|| new this[_0x221c[3231]][_0x221c[196]];var _0xc851x9=_0xc851x4[_0x221c[284]](_0x221c[1363]);null!=_0xc851x9&&(_0xc851x2[_0x221c[68]][_0xc851x9]=_0xc851x5);for(_0xc851x4=_0xc851x4[_0x221c[285]];null!=_0xc851x4;){if(!this[_0x221c[3273]](_0xc851x2,_0xc851x4,_0xc851x5)&&_0x221c[99]==_0xc851x4[_0x221c[301]]&&(_0xc851x9=_0xc851x4[_0x221c[284]](_0x221c[3069]),null!=_0xc851x9)){var _0xc851xa=_0xc851x4[_0x221c[284]](_0x221c[1284]),_0xc851x12=null!=_0xc851xa?mxUtils[_0x221c[238]](_0xc851x5[_0x221c[2054]][_0xc851xa]):null;null==_0xc851x12&&(null!=_0xc851xa&&mxLog[_0x221c[283]](_0x221c[3283]+_0xc851xa+_0x221c[3284]),_0xc851x12={});for(_0xc851xa=_0xc851x4[_0x221c[285]];null!=_0xc851xa;){if(_0xc851xa[_0x221c[288]]==mxConstants[_0x221c[289]]){var _0xc851x13=_0xc851xa[_0x221c[284]](_0x221c[3069]);if(_0x221c[99]==_0xc851xa[_0x221c[301]]){var _0xc851x14=mxUtils[_0x221c[329]](_0xc851xa),_0xc851x15=null;null!=_0xc851x14&&0<_0xc851x14[_0x221c[67]]?_0xc851x15=mxUtils[_0x221c[1545]](_0xc851x14):(_0xc851x15=_0xc851xa[_0x221c[284]](_0x221c[131]),mxUtils[_0x221c[1946]](_0xc851x15)&&(_0xc851x15=parseFloat(_0xc851x15)));null!=_0xc851x15&&(_0xc851x12[_0xc851x13]=_0xc851x15)}else {_0x221c[205]==_0xc851xa[_0x221c[301]]&& delete _0xc851x12[_0xc851x13]}};_0xc851xa=_0xc851xa[_0x221c[287]]};_0xc851x5[_0x221c[2074]](_0xc851x9,_0xc851x12)};_0xc851x4=_0xc851x4[_0x221c[287]]};return _0xc851x5};return _0xc851x2}());mxCodecRegistry[_0x221c[3234]](function(){var _0xc851x2= new mxObjectCodec( new mxDefaultKeyHandler);_0xc851x2[_0x221c[514]]=function(_0xc851x2,_0xc851x4){return null};_0xc851x2[_0x221c[1093]]=function(_0xc851x2,_0xc851x4,_0xc851x5){if(null!=_0xc851x5){for(_0xc851x4=_0xc851x4[_0x221c[285]];null!=_0xc851x4;){if(!this[_0x221c[3273]](_0xc851x2,_0xc851x4,_0xc851x5)&&_0x221c[99]==_0xc851x4[_0x221c[301]]){var _0xc851x9=_0xc851x4[_0x221c[284]](_0x221c[3069]),_0xc851xa=_0xc851x4[_0x221c[284]](_0x221c[892]),_0xc851x12=_0xc851x4[_0x221c[284]](_0x221c[2207]);_0xc851x5[_0x221c[3063]](_0xc851x9,_0xc851xa,_0xc851x12)};_0xc851x4=_0xc851x4[_0x221c[287]]}};return _0xc851x5};return _0xc851x2}());mxCodecRegistry[_0x221c[3234]](function(){var _0xc851x2= new mxObjectCodec( new mxDefaultToolbar);_0xc851x2[_0x221c[514]]=function(_0xc851x2,_0xc851x4){return null};_0xc851x2[_0x221c[1093]]=function(_0xc851x2,_0xc851x4,_0xc851x5){if(null!=_0xc851x5){var _0xc851x9=_0xc851x5[_0x221c[3061]];for(_0xc851x4=_0xc851x4[_0x221c[285]];null!=_0xc851x4;){if(_0xc851x4[_0x221c[288]]==mxConstants[_0x221c[289]]&&!this[_0x221c[3273]](_0xc851x2,_0xc851x4,_0xc851x5)){if(_0x221c[3072]==_0xc851x4[_0x221c[301]]){_0xc851x5[_0x221c[1051]]()}else {if(_0x221c[345]==_0xc851x4[_0x221c[301]]){_0xc851x5[_0x221c[3082]][_0x221c[1052]]()}else {if(_0x221c[1054]==_0xc851x4[_0x221c[301]]){_0xc851x5[_0x221c[3082]][_0x221c[1053]]()}else {if(_0x221c[99]==_0xc851x4[_0x221c[301]]){var _0xc851xa=_0xc851x4[_0x221c[284]](_0x221c[3069]),_0xc851xa=mxResources[_0x221c[203]](_0xc851xa)||_0xc851xa,_0xc851x12=_0xc851x4[_0x221c[284]](_0x221c[2916]),_0xc851x13=_0xc851x4[_0x221c[284]](_0x221c[3285]),_0xc851x14=_0xc851x4[_0x221c[284]](_0x221c[892]),_0xc851x15=_0xc851x4[_0x221c[284]](_0x221c[3286]),_0xc851x16=_0xc851x4[_0x221c[284]](_0x221c[3231]),_0xc851x17=_0x221c[468]!=_0xc851x4[_0x221c[284]](_0x221c[3287]),_0xc851x18=mxUtils[_0x221c[329]](_0xc851x4),_0xc851x19=null;if(null!=_0xc851x14){_0xc851x19=_0xc851x5[_0x221c[1025]](_0xc851xa,_0xc851x12,_0xc851x14,_0xc851x13)}else {if(null!=_0xc851x15){var _0xc851x1a=mxUtils[_0x221c[1545]](_0xc851x18),_0xc851x19=_0xc851x5[_0x221c[1048]](_0xc851xa,_0xc851x12,_0xc851x15,_0xc851x13,_0xc851x1a)}else {if(null!=_0xc851x16||null!=_0xc851x18&&0<_0xc851x18[_0x221c[67]]){_0xc851x19=_0xc851x9[_0x221c[3118]][_0xc851x16],_0xc851x16=_0xc851x4[_0x221c[284]](_0x221c[124]),null!=_0xc851x19&&null!=_0xc851x16&&(_0xc851x19=_0xc851x19[_0x221c[238]](),_0xc851x19[_0x221c[475]](_0xc851x16)),_0xc851x16=null,null!=_0xc851x18&&0<_0xc851x18[_0x221c[67]]&&(_0xc851x16=mxUtils[_0x221c[1545]](_0xc851x18)),_0xc851x19=_0xc851x5[_0x221c[3087]](_0xc851xa,_0xc851x12,_0xc851x19,_0xc851x13,_0xc851x16,_0xc851x17)}else {if(_0xc851x13=mxUtils[_0x221c[1540]](_0xc851x4),0<_0xc851x13[_0x221c[67]]){if(null==_0xc851x12){_0xc851x16=_0xc851x5[_0x221c[1038]](_0xc851xa);for(_0xc851xa=0;_0xc851xa<_0xc851x13[_0x221c[67]];_0xc851xa++){_0xc851x17=_0xc851x13[_0xc851xa],_0x221c[3072]==_0xc851x17[_0x221c[301]]?_0xc851x5[_0x221c[972]](_0xc851x16,_0x221c[3288]):_0x221c[99]==_0xc851x17[_0x221c[301]]&&(_0xc851x12=_0xc851x17[_0x221c[284]](_0x221c[3069]),_0xc851x17=_0xc851x17[_0x221c[284]](_0x221c[892]),_0xc851x5[_0x221c[3085]](_0xc851x16,_0xc851x12,_0xc851x17))}}else {var _0xc851x1b=null,_0xc851x1c=_0xc851x5[_0x221c[3087]](_0xc851xa,_0xc851x12,function(){var _0xc851x2=_0xc851x9[_0x221c[3118]][_0xc851x1b[_0x221c[131]]];if(null!=_0xc851x2){var _0xc851x2=_0xc851x2[_0x221c[238]](),_0xc851x3=_0xc851x1b[_0x221c[1040]][_0xc851x1b[_0x221c[1039]]][_0x221c[3289]];null!=_0xc851x3&&_0xc851x2[_0x221c[475]](_0xc851x3);return _0xc851x2};mxLog[_0x221c[283]](_0x221c[3290]+_0xc851x2+_0x221c[3291]);return null},null,null,_0xc851x17),_0xc851x1b=_0xc851x5[_0x221c[970]]();mxEvent[_0x221c[169]](_0xc851x1b,_0x221c[826],function(){_0xc851x5[_0x221c[3082]][_0x221c[1047]](_0xc851x1c,function(_0xc851x2){_0xc851x2=mxUtils[_0x221c[2196]](_0xc851x9[_0x221c[1179]][_0x221c[526]],mxEvent[_0x221c[731]](_0xc851x2),mxEvent[_0x221c[733]](_0xc851x2));return _0xc851x9[_0x221c[817]](null,_0xc851x1a(),_0xc851x2[_0x221c[235]],_0xc851x2[_0x221c[236]])});_0xc851x5[_0x221c[3082]][_0x221c[1023]]= !1});for(_0xc851xa=0;_0xc851xa<_0xc851x13[_0x221c[67]];_0xc851xa++){_0xc851x17=_0xc851x13[_0xc851xa],_0x221c[3072]==_0xc851x17[_0x221c[301]]?_0xc851x5[_0x221c[972]](_0xc851x1b,_0x221c[3288]):_0x221c[99]==_0xc851x17[_0x221c[301]]&&(_0xc851x12=_0xc851x17[_0x221c[284]](_0x221c[3069]),_0xc851x18=_0xc851x17[_0x221c[284]](_0x221c[3231]),_0xc851x5[_0x221c[972]](_0xc851x1b,_0xc851x12,_0xc851x18||_0xc851x16)[_0x221c[3289]]=_0xc851x17[_0x221c[284]](_0x221c[124]))}}}}}};null!=_0xc851x19&&(_0xc851x16=_0xc851x4[_0x221c[284]](_0x221c[1363]),null!=_0xc851x16&&0<_0xc851x16[_0x221c[67]]&&_0xc851x19[_0x221c[57]](_0x221c[1363],_0xc851x16))}}}}};_0xc851x4=_0xc851x4[_0x221c[287]]}};return _0xc851x5};return _0xc851x2}());mxCodecRegistry[_0x221c[3234]](function(){var _0xc851x2= new mxObjectCodec( new mxDefaultPopupMenu);_0xc851x2[_0x221c[514]]=function(_0xc851x2,_0xc851x4){return null};_0xc851x2[_0x221c[1093]]=function(_0xc851x2,_0xc851x4,_0xc851x5){var _0xc851x9=_0xc851x4[_0x221c[64]](_0x221c[3277])[0];null!=_0xc851x9?this[_0x221c[3273]](_0xc851x2,_0xc851x9,_0xc851x5):null!=_0xc851x5&&(_0xc851x5[_0x221c[3064]]=_0xc851x4);return _0xc851x5};return _0xc851x2}());mxCodecRegistry[_0x221c[3234]](function(){var _0xc851x2= new mxObjectCodec( new mxEditor,_0x221c[3292][_0x221c[224]](_0x221c[185]));_0xc851x2[_0x221c[3268]]=function(_0xc851x2,_0xc851x4,_0xc851x5){_0xc851x2=_0xc851x4[_0x221c[284]](_0x221c[2075]);null!=_0xc851x2&&(_0xc851x4[_0x221c[1390]](_0x221c[2075]),_0xc851x5[_0x221c[2075]]=_0xc851x5[_0x221c[3118]][_0xc851x2]);_0xc851x2=_0xc851x4[_0x221c[284]](_0x221c[3120]);null!=_0xc851x2&&(_0xc851x4[_0x221c[1390]](_0x221c[3120]),_0xc851x5[_0x221c[3120]]=_0xc851x5[_0x221c[3118]][_0xc851x2]);return _0xc851x5};_0xc851x2[_0x221c[3274]]=function(_0xc851x2,_0xc851x4,_0xc851x5){if(_0x221c[3293]==_0xc851x4[_0x221c[301]]){if(_0x221c[3118]==_0xc851x4[_0x221c[284]](_0x221c[3069])){this[_0x221c[3294]](_0xc851x2,_0xc851x4,_0xc851x5);return}}else {if(_0x221c[3295]==_0xc851x4[_0x221c[301]]){this[_0x221c[3296]](_0xc851x2,_0xc851x4,_0xc851x5);return}};mxObjectCodec[_0x221c[202]][_0x221c[3274]][_0x221c[183]](this,arguments)};_0xc851x2[_0x221c[3296]]=function(_0xc851x2,_0xc851x4,_0xc851x5){for(_0xc851x2=_0xc851x4[_0x221c[285]];null!=_0xc851x2;){if(_0x221c[99]==_0xc851x2[_0x221c[301]]){_0xc851x4=_0xc851x2[_0x221c[284]](_0x221c[3069]);var _0xc851x9=_0xc851x2[_0x221c[284]](_0x221c[980]),_0xc851xa=_0xc851x2[_0x221c[284]](_0x221c[124]),_0xc851x12=null;if(null!=_0xc851x9){_0xc851x12=document[_0x221c[1362]](_0xc851x9),null!=_0xc851x12&&null!=_0xc851xa&&(_0xc851x12[_0x221c[124]][_0x221c[103]]+=_0x221c[471]+_0xc851xa)}else {var _0xc851x9=parseInt(_0xc851x2[_0x221c[284]](_0x221c[235])),_0xc851x13=parseInt(_0xc851x2[_0x221c[284]](_0x221c[236])),_0xc851x14=_0xc851x2[_0x221c[284]](_0x221c[117]),_0xc851x15=_0xc851x2[_0x221c[284]](_0x221c[119]),_0xc851x12=document[_0x221c[55]](_0x221c[485]);_0xc851x12[_0x221c[124]][_0x221c[103]]=_0xc851xa;( new mxWindow(mxResources[_0x221c[203]](_0xc851x4)||_0xc851x4,_0xc851x12,_0xc851x9,_0xc851x13,_0xc851x14,_0xc851x15,!1,!0))[_0x221c[175]](!0)};_0x221c[1179]==_0xc851x4?_0xc851x5[_0x221c[3202]](_0xc851x12):_0x221c[3082]==_0xc851x4?_0xc851x5[_0x221c[3204]](_0xc851x12):_0x221c[924]==_0xc851x4?_0xc851x5[_0x221c[3208]](_0xc851x12):_0x221c[879]==_0xc851x4?_0xc851x5[_0x221c[3205]](_0xc851x12):_0x221c[201]==_0xc851x4&&_0xc851x5[_0x221c[3297]](_0xc851x12)}else {_0x221c[3298]==_0xc851x2[_0x221c[301]]?mxResources[_0x221c[99]](_0xc851x2[_0x221c[284]](_0x221c[3299])):_0x221c[94]==_0xc851x2[_0x221c[301]]&&mxClient[_0x221c[54]](_0x221c[94],_0xc851x2[_0x221c[284]](_0x221c[298]))};_0xc851x2=_0xc851x2[_0x221c[287]]}};_0xc851x2[_0x221c[3294]]=function(_0xc851x2,_0xc851x4,_0xc851x5){null==_0xc851x5[_0x221c[3118]]&&(_0xc851x5[_0x221c[3118]]=[]);_0xc851x4=mxUtils[_0x221c[1540]](_0xc851x4);for(var _0xc851x9=0;_0xc851x9<_0xc851x4[_0x221c[67]];_0xc851x9++){for(var _0xc851xa=_0xc851x4[_0xc851x9][_0x221c[284]](_0x221c[3069]),_0xc851x12=_0xc851x4[_0xc851x9][_0x221c[285]];null!=_0xc851x12&&1!=_0xc851x12[_0x221c[288]];){_0xc851x12=_0xc851x12[_0x221c[287]]};null!=_0xc851x12&&(_0xc851x5[_0x221c[3118]][_0xc851xa]=_0xc851x2[_0x221c[3244]](_0xc851x12))}};return _0xc851x2}())
\ No newline at end of file
index aeaa420..ade50c9 100644 (file)
@@ -1,634 +1 @@
-'use strict';
-/**
- * $Id: Actions.js,v 1.7 2013-02-14 07:48:01 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Constructs the actions object for the given UI.
- */
-function Actions(editorUi) {
-       this.editorUi = editorUi;
-       this.actions = new Object();
-       this.init();
-};
-
-/**
- * Adds the default actions.
- */
-Actions.prototype.init = function() {
-       var ui = this.editorUi;
-       var editor = ui.editor;
-       var graph = editor.graph;
-
-       // File actions
-       this.addAction('new', function() {
-               ui.showDialog(new NewDialog(ui).container, 300, 180, true, true);
-       });
-       this.addAction('open', function() {
-               ui.showDialog(new OpenDialog(ui).container, 300, 180, true, true);
-       });
-       this.addAction('save', function() {
-               ui.saveFile(false);
-       }, null, null, 'Ctrl+S');
-       this.addAction('saveAs', function() {
-               ui.saveFile(true);
-       }, null, null, 'Ctrl+Shift-S');
-       this.addAction('publish', function() {
-               ui.publishFile(false);
-       }, null, null, 'Ctrl+Shift+P');
-       this.addAction('variable', function() {
-               ui.showDialog(new VariableDialog(ui).container, 300, 180, true, true);
-       });
-       this.addAction('import', function() {
-               ui.showDialog(new ImportDialog(ui).container, 300, 200, true, true);
-       });
-       this.addAction('export', function() {
-               ui.showDialog(new ExportDialog(ui).container, 300, 200, true, true);
-       }, null, null, 'Ctrl+E');
-       this.put('editFile', new Action(mxResources.get('edit'), mxUtils.bind(this,
-               function() {
-                       this.editorUi.showDialog(new EditFileDialog(ui).container, 620, 420,
-                               true, true);
-               })));
-       this.addAction('rename', function() {
-               ui.showDialog(new RenameDialog(ui).container, 300, 180, true, true);
-       });
-       this.addAction('print', function() {
-               mxUtils.printScreen(graph);
-       }, null, 'sprite-print', 'Ctrl+P');
-       this.addAction('preview', function() {
-               mxUtils.show(graph, null, 10, 10);
-       });
-
-       // Edit actions
-       this.addAction('undo', function() {
-               editor.undoManager.undo();
-       }, null, 'sprite-undo', 'Ctrl+Z');
-       this.addAction('redo', function() {
-               editor.undoManager.redo();
-       }, null, 'sprite-redo', 'Ctrl+Y');
-       this.addAction('cut', function() {
-               mxClipboard.cut(graph);
-       }, null, 'sprite-cut', 'Ctrl+X');
-       this.addAction('copy', function() {
-               mxClipboard.copy(graph);
-       }, null, 'sprite-copy', 'Ctrl+C');
-       this.addAction('paste', function() {
-               mxClipboard.paste(graph);
-       }, false, 'sprite-paste', 'Ctrl+V');
-       this.addAction('delete', function() {
-               graph.removeCells();
-       }, null, null, 'Delete');
-       this.addAction('duplicate', function() {
-               var s = graph.gridSize;
-               graph.setSelectionCells(graph.moveCells(graph.getSelectionCells(), s, s,
-                       true));
-       }, null, null, 'Ctrl+D');
-       this.addAction('selectVertices', function() {
-               graph.selectVertices();
-       }, null, null, 'Ctrl+Shift+V');
-       this.addAction('selectEdges', function() {
-               graph.selectEdges();
-       }, null, null, 'Ctrl+Shift+E');
-       this.addAction('selectAll', function() {
-               graph.selectAll();
-       }, null, null, 'Ctrl+A');
-
-       // Navigation actions
-       this.addAction('home', function() {
-               graph.home();
-       }, null, null, 'Home');
-       this.addAction('exitGroup', function() {
-               graph.exitGroup();
-       }, null, null, 'Page Up');
-       this.addAction('enterGroup', function() {
-               graph.enterGroup();
-       }, null, null, 'Page Down');
-       this.addAction('expand', function() {
-               graph.foldCells(false);
-       }, null, null, 'Enter');
-       this.addAction('collapse', function() {
-               graph.foldCells(true);
-       }, null, null, 'Backspace');
-
-       // Arrange actions
-       this.addAction('toFront', function() {
-               graph.orderCells(false);
-       }, null, null, 'Ctrl+F');
-       this.addAction('toBack', function() {
-               graph.orderCells(true);
-       }, null, null, 'Ctrl+B');
-       this.addAction('group', function() {
-               graph.setSelectionCell(graph.groupCells(null, 0));
-       }, null, null, 'Ctrl+G');
-       this.addAction('ungroup', function() {
-               graph.setSelectionCells(graph.ungroupCells());
-       }, null, null, 'Ctrl+U');
-       this.addAction('removeFromGroup', function() {
-               graph.removeCellsFromParent();
-       });
-       this.addAction('editLink', function() {
-               var cell = graph.getSelectionCell();
-               var link = graph.getLinkForCell(cell);
-
-               if (link == null) {
-                       link = '';
-               }
-
-               link = mxUtils.prompt(mxResources.get('enterValue'), link);
-
-               if (link != null) {
-                       graph.setLinkForCell(cell, link);
-               }
-       });
-       this.addAction('openLink', function() {
-               var cell = graph.getSelectionCell();
-               var link = graph.getLinkForCell(cell);
-
-               if (link != null) {
-                       window.open(link);
-               }
-       });
-       this.addAction('autosize', function() {
-               var cells = graph.getSelectionCells();
-
-               if (cells != null) {
-                       graph.getModel().beginUpdate();
-                       try {
-                               for (var i = 0; i < cells.length; i++) {
-                                       var cell = cells[i];
-
-                                       if (graph.getModel().getChildCount(cell)) {
-                                               graph.updateGroupBounds([cell], 20);
-                                       } else {
-                                               graph.updateCellSize(cell);
-                                       }
-                               }
-                       } finally {
-                               graph.getModel().endUpdate();
-                       }
-               }
-       });
-       this.addAction('wordWrap', function() {
-               var state = graph.getView().getState(graph.getSelectionCell());
-               var value = 'wrap';
-
-               if (state != null && state.style[mxConstants.STYLE_WHITE_SPACE] == 'wrap') {
-                       value = null;
-               }
-
-               graph.setCellStyles(mxConstants.STYLE_WHITE_SPACE, value);
-       });
-       this.addAction('rotation', function() {
-               var value = '0';
-               var state = graph.getView().getState(graph.getSelectionCell());
-
-               if (state != null) {
-                       value = state.style[mxConstants.STYLE_ROTATION] || value;
-               }
-
-               value = mxUtils.prompt(mxResources.get('enterValue') + ' (' +
-                       mxResources.get('rotation') + ' 0-360)', value);
-
-               if (value != null) {
-                       graph.setCellStyles(mxConstants.STYLE_ROTATION, value);
-               }
-       });
-       this.addAction('tilt', function() {
-               var cells = graph.getSelectionCells();
-
-               if (cells != null) {
-                       graph.getModel().beginUpdate();
-                       try {
-                               for (var i = 0; i < cells.length; i++) {
-                                       var cell = cells[i];
-
-                                       if (graph.getModel().isVertex(cell) && graph.getModel().getChildCount(
-                                                       cell) == 0) {
-                                               var geo = graph.getCellGeometry(cell);
-
-                                               if (geo != null) {
-                                                       // Rotates the size and position in the geometry
-                                                       geo = geo.clone();
-                                                       geo.x += geo.width / 2 - geo.height / 2;
-                                                       geo.y += geo.height / 2 - geo.width / 2;
-                                                       var tmp = geo.width;
-                                                       geo.width = geo.height;
-                                                       geo.height = tmp;
-                                                       graph.getModel().setGeometry(cell, geo);
-
-                                                       // Reads the current direction and advances by 90 degrees
-                                                       var state = graph.view.getState(cell);
-
-                                                       if (state != null) {
-                                                               var dir = state.style[mxConstants.STYLE_DIRECTION] || 'east' /*default*/ ;
-
-                                                               if (dir == 'east') {
-                                                                       dir = 'south';
-                                                               } else if (dir == 'south') {
-                                                                       dir = 'west';
-                                                               } else if (dir == 'west') {
-                                                                       dir = 'north';
-                                                               } else if (dir == 'north') {
-                                                                       dir = 'east';
-                                                               }
-
-                                                               graph.setCellStyles(mxConstants.STYLE_DIRECTION, dir, [cell]);
-                                                       }
-                                               }
-                                       }
-                               }
-                       } finally {
-                               graph.getModel().endUpdate();
-                       }
-               }
-       }, null, null, 'Ctrl+R');
-
-       // View actions
-       this.addAction('actualSize', function() {
-               graph.zoomTo(1);
-       });
-       this.addAction('zoomIn', function() {
-               graph.zoomIn();
-       }, null, null, 'Add');
-       this.addAction('zoomOut', function() {
-               graph.zoomOut();
-       }, null, null, 'Subtract');
-       this.addAction('fitWindow', function() {
-               graph.fit();
-       });
-
-       this.addAction('fitPage', mxUtils.bind(this, function() {
-               if (!graph.pageVisible) {
-                       this.get('pageView').funct();
-               }
-
-               var fmt = graph.pageFormat;
-               var ps = graph.pageScale;
-               var cw = graph.container.clientWidth - 20;
-               var ch = graph.container.clientHeight - 20;
-
-               var scale = Math.floor(100 * Math.min(cw / fmt.width / ps, ch / fmt.height /
-                       ps)) / 100;
-               graph.zoomTo(scale);
-
-               graph.container.scrollLeft = Math.round(graph.view.translate.x * scale -
-                       Math.max(10, (graph.container.clientWidth - fmt.width * ps * scale) / 2)
-               );
-               graph.container.scrollTop = Math.round(graph.view.translate.y * scale -
-                       Math.max(10, (graph.container.clientHeight - fmt.height * ps * scale) /
-                               2));
-       }));
-       this.addAction('fitPageWidth', mxUtils.bind(this, function() {
-               if (!graph.pageVisible) {
-                       this.get('pageView').funct();
-               }
-
-               var fmt = graph.pageFormat;
-               var ps = graph.pageScale;
-               var cw = graph.container.clientWidth - 20;
-
-               var scale = Math.floor(100 * cw / fmt.width / ps) / 100;
-               graph.zoomTo(scale);
-
-               graph.container.scrollLeft = Math.round(graph.view.translate.x * scale -
-                       Math.max(10, (graph.container.clientWidth - fmt.width * ps * scale) / 2)
-               );
-               graph.container.scrollTop = Math.round(graph.view.translate.y * scale -
-                       Math.max(10, (graph.container.clientHeight - fmt.height * ps * scale) /
-                               2));
-       }));
-       this.put('customZoom', new Action(mxResources.get('custom'), function() {
-               var value = mxUtils.prompt(mxResources.get('enterValue') + ' (%)',
-                       parseInt(graph.getView().getScale() * 100));
-
-               if (value != null && value.length > 0 && !isNaN(parseInt(value))) {
-                       graph.zoomTo(parseInt(value) / 100);
-               }
-       }));
-
-       // Option actions
-       var action = null;
-       action = this.addAction('grid', function() {
-               graph.setGridEnabled(!graph.isGridEnabled());
-               editor.updateGraphComponents();
-       }, null, null, 'Ctrl+Shift+G');
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.isGridEnabled();
-       });
-       action = this.addAction('guides', function() {
-               graph.graphHandler.guidesEnabled = !graph.graphHandler.guidesEnabled;
-       });
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.graphHandler.guidesEnabled;
-       });
-       action = this.addAction('tooltips', function() {
-               graph.tooltipHandler.setEnabled(!graph.tooltipHandler.isEnabled());
-       });
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.tooltipHandler.isEnabled();
-       });
-       action = this.addAction('navigation', function() {
-               graph.foldingEnabled = !graph.foldingEnabled;
-               graph.view.revalidate();
-       });
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.foldingEnabled;
-       });
-       action = this.addAction('scrollbars', function() {
-               graph.scrollbars = !graph.scrollbars;
-               editor.updateGraphComponents();
-
-               if (!graph.scrollbars) {
-                       var t = graph.view.translate;
-                       graph.view.setTranslate(t.x - graph.container.scrollLeft / graph.view.scale,
-                               t.y - graph.container.scrollTop / graph.view.scale);
-                       graph.container.scrollLeft = 0;
-                       graph.container.scrollTop = 0;
-                       graph.sizeDidChange();
-               } else {
-                       var dx = graph.view.translate.x;
-                       var dy = graph.view.translate.y;
-
-                       graph.view.translate.x = 0;
-                       graph.view.translate.y = 0;
-                       graph.sizeDidChange();
-                       graph.container.scrollLeft -= Math.round(dx * graph.view.scale);
-                       graph.container.scrollTop -= Math.round(dy * graph.view.scale);
-               }
-       }, !mxClient.IS_TOUCH);
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.container.style.overflow == 'auto';
-       });
-       action = this.addAction('pageView', mxUtils.bind(this, function() {
-               graph.pageVisible = !graph.pageVisible;
-               graph.pageBreaksVisible = graph.pageVisible;
-               graph.preferPageSize = graph.pageBreaksVisible;
-               graph.view.validate();
-               graph.sizeDidChange();
-
-               editor.updateGraphComponents();
-               editor.outline.update();
-
-               if (mxUtils.hasScrollbars(graph.container)) {
-                       if (graph.pageVisible) {
-                               graph.container.scrollLeft -= 20;
-                               graph.container.scrollTop -= 20;
-                       } else {
-                               graph.container.scrollLeft += 20;
-                               graph.container.scrollTop += 20;
-                       }
-               }
-       }));
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.pageVisible;
-       });
-       action = this.addAction('connect', function() {
-               graph.setConnectable(!graph.connectionHandler.isEnabled());
-       }, null, null, 'Ctrl+Q');
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.connectionHandler.isEnabled();
-       });
-       action = this.addAction('copyConnect', function() {
-               graph.connectionHandler.setCreateTarget(!graph.connectionHandler.isCreateTarget());
-       });
-       action.setToggleAction(true);
-       action.setSelectedCallback(function() {
-               return graph.connectionHandler.isCreateTarget();
-       });
-
-       // Help actions
-       this.addAction('help', function() {
-               var ext = '';
-
-               if (mxResources.isLanguageSupported(mxClient.language)) {
-                       ext = '_' + mxClient.language;
-               }
-
-               window.open(RESOURCES_PATH + '/help' + ext + '.html');
-       });
-       this.put('about', new Action(mxResources.get('about') + ' Cally Square',
-               function() {
-                       ui.showDialog(new AboutDialog(ui).container, 320, 280, true, true);
-               }, null, null, 'F1'));
-
-       // Font style actions
-       var toggleFontStyle = mxUtils.bind(this, function(key, style) {
-               this.addAction(key, function() {
-                       graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE, style);
-               });
-       });
-
-       toggleFontStyle('bold', mxConstants.FONT_BOLD);
-       toggleFontStyle('italic', mxConstants.FONT_ITALIC);
-       toggleFontStyle('underline', mxConstants.FONT_UNDERLINE);
-
-       // Format actions
-       this.addAction('shadow', function() {
-               graph.toggleCellStyles(mxConstants.STYLE_SHADOW);
-       });
-       this.addAction('dashed', function() {
-               graph.toggleCellStyles(mxConstants.STYLE_DASHED);
-       });
-       this.addAction('rounded', function() {
-               graph.toggleCellStyles(mxConstants.STYLE_ROUNDED);
-       });
-       this.addAction('curved', function() {
-               graph.toggleCellStyles(mxConstants.STYLE_CURVED);
-       });
-       this.addAction('style', function() {
-               var cells = graph.getSelectionCells();
-
-               if (cells != null && cells.length > 0) {
-                       var model = graph.getModel();
-                       var style = mxUtils.prompt(mxResources.get('enterValue') + ' (' +
-                               mxResources.get('style') + ')',
-                               model.getStyle(cells[0]) || '');
-
-                       if (style != null) {
-                               graph.setCellStyle(style, cells);
-                       }
-               }
-       });
-       this.addAction('setAsDefaultEdge', function() {
-               graph.setDefaultEdge(graph.getSelectionCell());
-       });
-       this.addAction('addWaypoint', function() {
-               var cell = graph.getSelectionCell();
-
-               if (cell != null && graph.getModel().isEdge(cell)) {
-                       var handler = editor.graph.selectionCellsHandler.getHandler(cell);
-
-                       if (handler instanceof mxEdgeHandler) {
-                               var t = graph.view.translate;
-                               var s = graph.view.scale;
-                               var dx = t.x;
-                               var dy = t.y;
-
-                               var parent = graph.getModel().getParent(cell);
-                               var pgeo = graph.getCellGeometry(parent);
-
-                               if (graph.getModel().isVertex(parent) && pgeo != null) {
-                                       dx += pgeo.x;
-                                       dy += pgeo.y;
-                               }
-
-                               handler.addPointAt(handler.state, graph.panningHandler.triggerX / s - dx,
-                                       graph.panningHandler.triggerY / s - dy);
-                       }
-               }
-       });
-       this.addAction('removeWaypoint', function() {
-               // TODO: Action should run with "this" set to action
-               var rmWaypointAction = ui.actions.get('removeWaypoint');
-
-               if (rmWaypointAction.handler != null) {
-                       // NOTE: Popupevent handled and action updated in Menus.createPopupMenu
-                       rmWaypointAction.handler.removePoint(rmWaypointAction.handler.state,
-                               rmWaypointAction.index);
-               }
-       });
-       this.addAction('image', function() {
-               function updateImage(value, w, h) {
-                       var select = null;
-                       var cells = graph.getSelectionCells();
-
-                       graph.getModel().beginUpdate();
-                       try {
-                               // Inserts new cell if no cell is selected
-                               if (cells.length == 0) {
-                                       var gs = graph.getGridSize();
-                                       cells = [graph.insertVertex(graph.getDefaultParent(), null, '', gs, gs,
-                                               w, h)];
-                                       select = cells;
-                               }
-
-                               graph.setCellStyles(mxConstants.STYLE_IMAGE, value, cells);
-                               graph.setCellStyles(mxConstants.STYLE_SHAPE, 'image', cells);
-
-                               if (graph.getSelectionCount() == 1) {
-                                       if (w != null && h != null) {
-                                               var cell = cells[0];
-                                               var geo = graph.getModel().getGeometry(cell);
-
-                                               if (geo != null) {
-                                                       geo = geo.clone();
-                                                       geo.width = w;
-                                                       geo.height = h;
-                                                       graph.getModel().setGeometry(cell, geo);
-                                               }
-                                       }
-                               }
-                       } finally {
-                               graph.getModel().endUpdate();
-                       }
-
-                       if (select != null) {
-                               graph.setSelectionCells(select);
-                               graph.scrollCellToVisible(select[0]);
-                       }
-               };
-
-               var value = '';
-               var state = graph.getView().getState(graph.getSelectionCell());
-
-               if (state != null) {
-                       value = state.style[mxConstants.STYLE_IMAGE] || value;
-               }
-
-               value = mxUtils.prompt(mxResources.get('enterValue') + ' (' + mxResources.get(
-                       'url') + ')', value);
-
-               if (value != null) {
-                       if (value.length > 0) {
-                               var img = new Image();
-
-                               img.onload = function() {
-                                       updateImage(value, img.width, img.height);
-                               };
-                               img.onerror = function() {
-                                       mxUtils.alert(mxResources.get('fileNotFound'));
-                               };
-
-                               img.src = value;
-                       }
-               }
-       });
-};
-
-/**
- * Registers the given action under the given name.
- */
-Actions.prototype.addAction = function(key, funct, enabled, iconCls, shortcut) {
-       return this.put(key, new Action(mxResources.get(key), funct, enabled, iconCls,
-               shortcut));
-};
-
-/**
- * Registers the given action under the given name.
- */
-Actions.prototype.put = function(name, action) {
-       this.actions[name] = action;
-
-       return action;
-};
-
-/**
- * Returns the action for the given name or null if no such action exists.
- */
-Actions.prototype.get = function(name) {
-       return this.actions[name];
-};
-
-/**
- * Constructs a new action for the given parameters.
- */
-function Action(label, funct, enabled, iconCls, shortcut) {
-       mxEventSource.call(this);
-       this.label = label;
-       this.funct = funct;
-       this.enabled = (enabled != null) ? enabled : true;
-       this.iconCls = iconCls;
-       this.shortcut = shortcut;
-};
-
-// Action inherits from mxEventSource
-mxUtils.extend(Action, mxEventSource);
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Action.prototype.setEnabled = function(value) {
-       if (this.enabled != value) {
-               this.enabled = value;
-               this.fireEvent(new mxEventObject('stateChanged'));
-       }
-};
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Action.prototype.setToggleAction = function(value) {
-       this.toggleAction = value;
-};
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Action.prototype.setSelectedCallback = function(funct) {
-       this.selectedCallback = funct;
-};
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Action.prototype.isSelected = function() {
-       return this.selectedCallback();
-};
+var _0x9b3b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x61\x63\x74\x69\x6F\x6E\x73","\x69\x6E\x69\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x65\x64\x69\x74\x6F\x72","\x67\x72\x61\x70\x68","\x6E\x65\x77","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x43\x74\x72\x6C\x2B\x53","\x73\x61\x76\x65\x41\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2D\x53","\x70\x75\x62\x6C\x69\x73\x68","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x50","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x43\x74\x72\x6C\x2B\x45","\x65\x64\x69\x74\x46\x69\x6C\x65","\x65\x64\x69\x74","\x67\x65\x74","\x62\x69\x6E\x64","\x70\x75\x74","\x72\x65\x6E\x61\x6D\x65","\x70\x72\x69\x6E\x74","\x70\x72\x69\x6E\x74\x53\x63\x72\x65\x65\x6E","\x73\x70\x72\x69\x74\x65\x2D\x70\x72\x69\x6E\x74","\x43\x74\x72\x6C\x2B\x50","\x70\x72\x65\x76\x69\x65\x77","\x73\x68\x6F\x77","\x75\x6E\x64\x6F","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x73\x70\x72\x69\x74\x65\x2D\x75\x6E\x64\x6F","\x43\x74\x72\x6C\x2B\x5A","\x72\x65\x64\x6F","\x73\x70\x72\x69\x74\x65\x2D\x72\x65\x64\x6F","\x43\x74\x72\x6C\x2B\x59","\x63\x75\x74","\x73\x70\x72\x69\x74\x65\x2D\x63\x75\x74","\x43\x74\x72\x6C\x2B\x58","\x63\x6F\x70\x79","\x73\x70\x72\x69\x74\x65\x2D\x63\x6F\x70\x79","\x43\x74\x72\x6C\x2B\x43","\x70\x61\x73\x74\x65","\x73\x70\x72\x69\x74\x65\x2D\x70\x61\x73\x74\x65","\x43\x74\x72\x6C\x2B\x56","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x44\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x67\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x44","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x56","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x45","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x43\x74\x72\x6C\x2B\x41","\x68\x6F\x6D\x65","\x48\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x50\x61\x67\x65\x20\x55\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x50\x61\x67\x65\x20\x44\x6F\x77\x6E","\x65\x78\x70\x61\x6E\x64","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x45\x6E\x74\x65\x72","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x42\x61\x63\x6B\x73\x70\x61\x63\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x6F\x72\x64\x65\x72\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x46","\x74\x6F\x42\x61\x63\x6B","\x43\x74\x72\x6C\x2B\x42","\x67\x72\x6F\x75\x70","\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x43\x74\x72\x6C\x2B\x47","\x75\x6E\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70\x43\x65\x6C\x6C\x73","\x43\x74\x72\x6C\x2B\x55","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x70\x72\x6F\x6D\x70\x74","\x73\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x6C\x65\x6E\x67\x74\x68","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x75\x70\x64\x61\x74\x65\x47\x72\x6F\x75\x70\x42\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x43\x65\x6C\x6C\x53\x69\x7A\x65","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x77\x72\x61\x70","\x53\x54\x59\x4C\x45\x5F\x57\x48\x49\x54\x45\x5F\x53\x50\x41\x43\x45","\x73\x74\x79\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x30","\x53\x54\x59\x4C\x45\x5F\x52\x4F\x54\x41\x54\x49\x4F\x4E","\x20\x28","\x20\x30\x2D\x33\x36\x30\x29","\x74\x69\x6C\x74","\x69\x73\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x63\x6C\x6F\x6E\x65","\x78","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x79","\x73\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x76\x69\x65\x77","\x53\x54\x59\x4C\x45\x5F\x44\x49\x52\x45\x43\x54\x49\x4F\x4E","\x65\x61\x73\x74","\x73\x6F\x75\x74\x68","\x77\x65\x73\x74","\x6E\x6F\x72\x74\x68","\x43\x74\x72\x6C\x2B\x52","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x41\x64\x64","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x53\x75\x62\x74\x72\x61\x63\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x66\x69\x74","\x66\x69\x74\x50\x61\x67\x65","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x66\x75\x6E\x63\x74","\x70\x61\x67\x65\x56\x69\x65\x77","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x66\x6C\x6F\x6F\x72","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x6D\x61\x78","\x72\x6F\x75\x6E\x64","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x63\x75\x73\x74\x6F\x6D","\x20\x28\x25\x29","\x67\x65\x74\x53\x63\x61\x6C\x65","\x67\x72\x69\x64","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x75\x70\x64\x61\x74\x65\x47\x72\x61\x70\x68\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x43\x74\x72\x6C\x2B\x53\x68\x69\x66\x74\x2B\x47","\x73\x65\x74\x54\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x65\x64\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x67\x75\x69\x64\x65\x73","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x73","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x72\x65\x76\x61\x6C\x69\x64\x61\x74\x65","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x73\x63\x61\x6C\x65","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x61\x75\x74\x6F","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x76\x61\x6C\x69\x64\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x43\x74\x72\x6C\x2B\x51","\x63\x6F\x70\x79\x43\x6F\x6E\x6E\x65\x63\x74","\x69\x73\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x68\x65\x6C\x70","\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x73\x4C\x61\x6E\x67\x75\x61\x67\x65\x53\x75\x70\x70\x6F\x72\x74\x65\x64","\x5F","\x2F\x68\x65\x6C\x70","\x2E\x68\x74\x6D\x6C","\x61\x62\x6F\x75\x74","\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x46\x31","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x46\x6C\x61\x67\x73","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x73\x68\x61\x64\x6F\x77","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x63\x75\x72\x76\x65\x64","\x29","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x73\x74\x61\x74\x65","\x74\x72\x69\x67\x67\x65\x72\x58","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x74\x72\x69\x67\x67\x65\x72\x59","\x61\x64\x64\x50\x6F\x69\x6E\x74\x41\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x72\x65\x6D\x6F\x76\x65\x50\x6F\x69\x6E\x74","\x69\x6D\x61\x67\x65","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x69\x6E\x73\x65\x72\x74\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x65\x74\x47\x65\x6F\x6D\x65\x74\x72\x79","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x53\x54\x59\x4C\x45\x5F\x49\x4D\x41\x47\x45","\x75\x72\x6C","\x6F\x6E\x6C\x6F\x61\x64","\x6F\x6E\x65\x72\x72\x6F\x72","\x66\x69\x6C\x65\x4E\x6F\x74\x46\x6F\x75\x6E\x64","\x61\x6C\x65\x72\x74","\x73\x72\x63","\x63\x61\x6C\x6C","\x6C\x61\x62\x65\x6C","\x65\x6E\x61\x62\x6C\x65\x64","\x69\x63\x6F\x6E\x43\x6C\x73","\x73\x68\x6F\x72\x74\x63\x75\x74","\x65\x78\x74\x65\x6E\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x65\x64\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64"];_0x9b3b[0];function Actions(_0xbab7x2){this[_0x9b3b[1]]=_0xbab7x2;this[_0x9b3b[2]]= new Object();this[_0x9b3b[3]]()}Actions[_0x9b3b[4]][_0x9b3b[3]]=function(){var _0xbab7x3=this[_0x9b3b[1]];var _0xbab7x4=_0xbab7x3[_0x9b3b[5]];var _0xbab7x5=_0xbab7x4[_0x9b3b[6]];this[_0x9b3b[10]](_0x9b3b[7],function(){_0xbab7x3[_0x9b3b[9]]( new NewDialog(_0xbab7x3)[_0x9b3b[8]],300,180,true,true)});this[_0x9b3b[10]](_0x9b3b[11],function(){_0xbab7x3[_0x9b3b[9]]( new OpenDialog(_0xbab7x3)[_0x9b3b[8]],300,180,true,true)});this[_0x9b3b[10]](_0x9b3b[12],function(){_0xbab7x3[_0x9b3b[13]](false)},null,null,_0x9b3b[14]);this[_0x9b3b[10]](_0x9b3b[15],function(){_0xbab7x3[_0x9b3b[13]](true)},null,null,_0x9b3b[16]);this[_0x9b3b[10]](_0x9b3b[17],function(){_0xbab7x3[_0x9b3b[18]](false)},null,null,_0x9b3b[19]);this[_0x9b3b[10]](_0x9b3b[20],function(){_0xbab7x3[_0x9b3b[9]]( new VariableDialog(_0xbab7x3)[_0x9b3b[8]],300,180,true,true)});this[_0x9b3b[10]](_0x9b3b[21],function(){_0xbab7x3[_0x9b3b[9]]( new ImportDialog(_0xbab7x3)[_0x9b3b[8]],300,200,true,true)});this[_0x9b3b[10]](_0x9b3b[22],function(){_0xbab7x3[_0x9b3b[9]]( new ExportDialog(_0xbab7x3)[_0x9b3b[8]],300,200,true,true)},null,null,_0x9b3b[23]);this[_0x9b3b[28]](_0x9b3b[24], new Action(mxResources[_0x9b3b[26]](_0x9b3b[25]),mxUtils[_0x9b3b[27]](this,function(){this[_0x9b3b[1]][_0x9b3b[9]]( new EditFileDialog(_0xbab7x3)[_0x9b3b[8]],620,420,true,true)})));this[_0x9b3b[10]](_0x9b3b[29],function(){_0xbab7x3[_0x9b3b[9]]( new RenameDialog(_0xbab7x3)[_0x9b3b[8]],300,180,true,true)});this[_0x9b3b[10]](_0x9b3b[30],function(){mxUtils[_0x9b3b[31]](_0xbab7x5)},null,_0x9b3b[32],_0x9b3b[33]);this[_0x9b3b[10]](_0x9b3b[34],function(){mxUtils[_0x9b3b[35]](_0xbab7x5,null,10,10)});this[_0x9b3b[10]](_0x9b3b[36],function(){_0xbab7x4[_0x9b3b[37]][_0x9b3b[36]]()},null,_0x9b3b[38],_0x9b3b[39]);this[_0x9b3b[10]](_0x9b3b[40],function(){_0xbab7x4[_0x9b3b[37]][_0x9b3b[40]]()},null,_0x9b3b[41],_0x9b3b[42]);this[_0x9b3b[10]](_0x9b3b[43],function(){mxClipboard[_0x9b3b[43]](_0xbab7x5)},null,_0x9b3b[44],_0x9b3b[45]);this[_0x9b3b[10]](_0x9b3b[46],function(){mxClipboard[_0x9b3b[46]](_0xbab7x5)},null,_0x9b3b[47],_0x9b3b[48]);this[_0x9b3b[10]](_0x9b3b[49],function(){mxClipboard[_0x9b3b[49]](_0xbab7x5)},false,_0x9b3b[50],_0x9b3b[51]);this[_0x9b3b[10]](_0x9b3b[52],function(){_0xbab7x5[_0x9b3b[53]]()},null,null,_0x9b3b[54]);this[_0x9b3b[10]](_0x9b3b[55],function(){var _0xbab7x6=_0xbab7x5[_0x9b3b[56]];_0xbab7x5[_0x9b3b[59]](_0xbab7x5[_0x9b3b[58]](_0xbab7x5[_0x9b3b[57]](),_0xbab7x6,_0xbab7x6,true))},null,null,_0x9b3b[60]);this[_0x9b3b[10]](_0x9b3b[61],function(){_0xbab7x5[_0x9b3b[61]]()},null,null,_0x9b3b[62]);this[_0x9b3b[10]](_0x9b3b[63],function(){_0xbab7x5[_0x9b3b[63]]()},null,null,_0x9b3b[64]);this[_0x9b3b[10]](_0x9b3b[65],function(){_0xbab7x5[_0x9b3b[65]]()},null,null,_0x9b3b[66]);this[_0x9b3b[10]](_0x9b3b[67],function(){_0xbab7x5[_0x9b3b[67]]()},null,null,_0x9b3b[68]);this[_0x9b3b[10]](_0x9b3b[69],function(){_0xbab7x5[_0x9b3b[69]]()},null,null,_0x9b3b[70]);this[_0x9b3b[10]](_0x9b3b[71],function(){_0xbab7x5[_0x9b3b[71]]()},null,null,_0x9b3b[72]);this[_0x9b3b[10]](_0x9b3b[73],function(){_0xbab7x5[_0x9b3b[74]](false)},null,null,_0x9b3b[75]);this[_0x9b3b[10]](_0x9b3b[76],function(){_0xbab7x5[_0x9b3b[74]](true)},null,null,_0x9b3b[77]);this[_0x9b3b[10]](_0x9b3b[78],function(){_0xbab7x5[_0x9b3b[79]](false)},null,null,_0x9b3b[80]);this[_0x9b3b[10]](_0x9b3b[81],function(){_0xbab7x5[_0x9b3b[79]](true)},null,null,_0x9b3b[82]);this[_0x9b3b[10]](_0x9b3b[83],function(){_0xbab7x5[_0x9b3b[85]](_0xbab7x5[_0x9b3b[84]](null,0))},null,null,_0x9b3b[86]);this[_0x9b3b[10]](_0x9b3b[87],function(){_0xbab7x5[_0x9b3b[59]](_0xbab7x5[_0x9b3b[88]]())},null,null,_0x9b3b[89]);this[_0x9b3b[10]](_0x9b3b[90],function(){_0xbab7x5[_0x9b3b[91]]()});this[_0x9b3b[10]](_0x9b3b[92],function(){var _0xbab7x7=_0xbab7x5[_0x9b3b[93]]();var _0xbab7x8=_0xbab7x5[_0x9b3b[94]](_0xbab7x7);if(_0xbab7x8==null){_0xbab7x8=_0x9b3b[95]};_0xbab7x8=mxUtils[_0x9b3b[97]](mxResources[_0x9b3b[26]](_0x9b3b[96]),_0xbab7x8);if(_0xbab7x8!=null){_0xbab7x5[_0x9b3b[98]](_0xbab7x7,_0xbab7x8)}});this[_0x9b3b[10]](_0x9b3b[99],function(){var _0xbab7x7=_0xbab7x5[_0x9b3b[93]]();var _0xbab7x8=_0xbab7x5[_0x9b3b[94]](_0xbab7x7);if(_0xbab7x8!=null){window[_0x9b3b[11]](_0xbab7x8)}});this[_0x9b3b[10]](_0x9b3b[100],function(){var _0xbab7x9=_0xbab7x5[_0x9b3b[57]]();if(_0xbab7x9!=null){_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[101]]();try{for(var _0xbab7xa=0;_0xbab7xa<_0xbab7x9[_0x9b3b[103]];_0xbab7xa++){var _0xbab7x7=_0xbab7x9[_0xbab7xa];if(_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[104]](_0xbab7x7)){_0xbab7x5[_0x9b3b[105]]([_0xbab7x7],20)}else {_0xbab7x5[_0x9b3b[106]](_0xbab7x7)}}}finally{_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[107]]()}}});this[_0x9b3b[10]](_0x9b3b[108],function(){var _0xbab7xb=_0xbab7x5[_0x9b3b[110]]()[_0x9b3b[109]](_0xbab7x5[_0x9b3b[93]]());var _0xbab7xc=_0x9b3b[111];if(_0xbab7xb!=null&&_0xbab7xb[_0x9b3b[113]][mxConstants[_0x9b3b[112]]]==_0x9b3b[111]){_0xbab7xc=null};_0xbab7x5[_0x9b3b[114]](mxConstants.STYLE_WHITE_SPACE,_0xbab7xc)});this[_0x9b3b[10]](_0x9b3b[115],function(){var _0xbab7xc=_0x9b3b[116];var _0xbab7xb=_0xbab7x5[_0x9b3b[110]]()[_0x9b3b[109]](_0xbab7x5[_0x9b3b[93]]());if(_0xbab7xb!=null){_0xbab7xc=_0xbab7xb[_0x9b3b[113]][mxConstants[_0x9b3b[117]]]||_0xbab7xc};_0xbab7xc=mxUtils[_0x9b3b[97]](mxResources[_0x9b3b[26]](_0x9b3b[96])+_0x9b3b[118]+mxResources[_0x9b3b[26]](_0x9b3b[115])+_0x9b3b[119],_0xbab7xc);if(_0xbab7xc!=null){_0xbab7x5[_0x9b3b[114]](mxConstants.STYLE_ROTATION,_0xbab7xc)}});this[_0x9b3b[10]](_0x9b3b[120],function(){var _0xbab7x9=_0xbab7x5[_0x9b3b[57]]();if(_0xbab7x9!=null){_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[101]]();try{for(var _0xbab7xa=0;_0xbab7xa<_0xbab7x9[_0x9b3b[103]];_0xbab7xa++){var _0xbab7x7=_0xbab7x9[_0xbab7xa];if(_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[121]](_0xbab7x7)&&_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[104]](_0xbab7x7)==0){var _0xbab7xd=_0xbab7x5[_0x9b3b[122]](_0xbab7x7);if(_0xbab7xd!=null){_0xbab7xd=_0xbab7xd[_0x9b3b[123]]();_0xbab7xd[_0x9b3b[124]]+=_0xbab7xd[_0x9b3b[125]]/2-_0xbab7xd[_0x9b3b[126]]/2;_0xbab7xd[_0x9b3b[127]]+=_0xbab7xd[_0x9b3b[126]]/2-_0xbab7xd[_0x9b3b[125]]/2;var _0xbab7xe=_0xbab7xd[_0x9b3b[125]];_0xbab7xd[_0x9b3b[125]]=_0xbab7xd[_0x9b3b[126]];_0xbab7xd[_0x9b3b[126]]=_0xbab7xe;_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[128]](_0xbab7x7,_0xbab7xd);var _0xbab7xb=_0xbab7x5[_0x9b3b[129]][_0x9b3b[109]](_0xbab7x7);if(_0xbab7xb!=null){var _0xbab7xf=_0xbab7xb[_0x9b3b[113]][mxConstants[_0x9b3b[130]]]||_0x9b3b[131];if(_0xbab7xf==_0x9b3b[131]){_0xbab7xf=_0x9b3b[132]}else {if(_0xbab7xf==_0x9b3b[132]){_0xbab7xf=_0x9b3b[133]}else {if(_0xbab7xf==_0x9b3b[133]){_0xbab7xf=_0x9b3b[134]}else {if(_0xbab7xf==_0x9b3b[134]){_0xbab7xf=_0x9b3b[131]}}}};_0xbab7x5[_0x9b3b[114]](mxConstants.STYLE_DIRECTION,_0xbab7xf,[_0xbab7x7])}}}}}finally{_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[107]]()}}},null,null,_0x9b3b[135]);this[_0x9b3b[10]](_0x9b3b[136],function(){_0xbab7x5[_0x9b3b[137]](1)});this[_0x9b3b[10]](_0x9b3b[138],function(){_0xbab7x5[_0x9b3b[138]]()},null,null,_0x9b3b[139]);this[_0x9b3b[10]](_0x9b3b[140],function(){_0xbab7x5[_0x9b3b[140]]()},null,null,_0x9b3b[141]);this[_0x9b3b[10]](_0x9b3b[142],function(){_0xbab7x5[_0x9b3b[143]]()});this[_0x9b3b[10]](_0x9b3b[144],mxUtils[_0x9b3b[27]](this,function(){if(!_0xbab7x5[_0x9b3b[145]]){this[_0x9b3b[26]](_0x9b3b[147])[_0x9b3b[146]]()};var _0xbab7x10=_0xbab7x5[_0x9b3b[148]];var _0xbab7x11=_0xbab7x5[_0x9b3b[149]];var _0xbab7x12=_0xbab7x5[_0x9b3b[8]][_0x9b3b[150]]-20;var _0xbab7x13=_0xbab7x5[_0x9b3b[8]][_0x9b3b[151]]-20;var _0xbab7x14=Math[_0x9b3b[153]](100*Math[_0x9b3b[152]](_0xbab7x12/_0xbab7x10[_0x9b3b[125]]/_0xbab7x11,_0xbab7x13/_0xbab7x10[_0x9b3b[126]]/_0xbab7x11))/100;_0xbab7x5[_0x9b3b[137]](_0xbab7x14);_0xbab7x5[_0x9b3b[8]][_0x9b3b[154]]=Math[_0x9b3b[157]](_0xbab7x5[_0x9b3b[129]][_0x9b3b[155]][_0x9b3b[124]]*_0xbab7x14-Math[_0x9b3b[156]](10,(_0xbab7x5[_0x9b3b[8]][_0x9b3b[150]]-_0xbab7x10[_0x9b3b[125]]*_0xbab7x11*_0xbab7x14)/2));_0xbab7x5[_0x9b3b[8]][_0x9b3b[158]]=Math[_0x9b3b[157]](_0xbab7x5[_0x9b3b[129]][_0x9b3b[155]][_0x9b3b[127]]*_0xbab7x14-Math[_0x9b3b[156]](10,(_0xbab7x5[_0x9b3b[8]][_0x9b3b[151]]-_0xbab7x10[_0x9b3b[126]]*_0xbab7x11*_0xbab7x14)/2))}));this[_0x9b3b[10]](_0x9b3b[159],mxUtils[_0x9b3b[27]](this,function(){if(!_0xbab7x5[_0x9b3b[145]]){this[_0x9b3b[26]](_0x9b3b[147])[_0x9b3b[146]]()};var _0xbab7x10=_0xbab7x5[_0x9b3b[148]];var _0xbab7x11=_0xbab7x5[_0x9b3b[149]];var _0xbab7x12=_0xbab7x5[_0x9b3b[8]][_0x9b3b[150]]-20;var _0xbab7x14=Math[_0x9b3b[153]](100*_0xbab7x12/_0xbab7x10[_0x9b3b[125]]/_0xbab7x11)/100;_0xbab7x5[_0x9b3b[137]](_0xbab7x14);_0xbab7x5[_0x9b3b[8]][_0x9b3b[154]]=Math[_0x9b3b[157]](_0xbab7x5[_0x9b3b[129]][_0x9b3b[155]][_0x9b3b[124]]*_0xbab7x14-Math[_0x9b3b[156]](10,(_0xbab7x5[_0x9b3b[8]][_0x9b3b[150]]-_0xbab7x10[_0x9b3b[125]]*_0xbab7x11*_0xbab7x14)/2));_0xbab7x5[_0x9b3b[8]][_0x9b3b[158]]=Math[_0x9b3b[157]](_0xbab7x5[_0x9b3b[129]][_0x9b3b[155]][_0x9b3b[127]]*_0xbab7x14-Math[_0x9b3b[156]](10,(_0xbab7x5[_0x9b3b[8]][_0x9b3b[151]]-_0xbab7x10[_0x9b3b[126]]*_0xbab7x11*_0xbab7x14)/2))}));this[_0x9b3b[28]](_0x9b3b[160], new Action(mxResources[_0x9b3b[26]](_0x9b3b[161]),function(){var _0xbab7xc=mxUtils[_0x9b3b[97]](mxResources[_0x9b3b[26]](_0x9b3b[96])+_0x9b3b[162],parseInt(_0xbab7x5[_0x9b3b[110]]()[_0x9b3b[163]]()*100));if(_0xbab7xc!=null&&_0xbab7xc[_0x9b3b[103]]>0&&!isNaN(parseInt(_0xbab7xc))){_0xbab7x5[_0x9b3b[137]](parseInt(_0xbab7xc)/100)}}));var _0xbab7x15=null;_0xbab7x15=this[_0x9b3b[10]](_0x9b3b[164],function(){_0xbab7x5[_0x9b3b[166]](!_0xbab7x5[_0x9b3b[165]]());_0xbab7x4[_0x9b3b[167]]()},null,null,_0x9b3b[168]);_0xbab7x15[_0x9b3b[169]](true);_0xbab7x15[_0x9b3b[170]](function(){return _0xbab7x5[_0x9b3b[165]]()});_0xbab7x15=this[_0x9b3b[10]](_0x9b3b[171],function(){_0xbab7x5[_0x9b3b[173]][_0x9b3b[172]]=!_0xbab7x5[_0x9b3b[173]][_0x9b3b[172]]});_0xbab7x15[_0x9b3b[169]](true);_0xbab7x15[_0x9b3b[170]](function(){return _0xbab7x5[_0x9b3b[173]][_0x9b3b[172]]});_0xbab7x15=this[_0x9b3b[10]](_0x9b3b[174],function(){_0xbab7x5[_0x9b3b[176]][_0x9b3b[177]](!_0xbab7x5[_0x9b3b[176]][_0x9b3b[175]]())});_0xbab7x15[_0x9b3b[169]](true);_0xbab7x15[_0x9b3b[170]](function(){return _0xbab7x5[_0x9b3b[176]][_0x9b3b[175]]()});_0xbab7x15=this[_0x9b3b[10]](_0x9b3b[178],function(){_0xbab7x5[_0x9b3b[179]]=!_0xbab7x5[_0x9b3b[179]];_0xbab7x5[_0x9b3b[129]][_0x9b3b[180]]()});_0xbab7x15[_0x9b3b[169]](true);_0xbab7x15[_0x9b3b[170]](function(){return _0xbab7x5[_0x9b3b[179]]});_0xbab7x15=this[_0x9b3b[10]](_0x9b3b[181],function(){_0xbab7x5[_0x9b3b[181]]=!_0xbab7x5[_0x9b3b[181]];_0xbab7x4[_0x9b3b[167]]();if(!_0xbab7x5[_0x9b3b[181]]){var _0xbab7x16=_0xbab7x5[_0x9b3b[129]][_0x9b3b[155]];_0xbab7x5[_0x9b3b[129]][_0x9b3b[183]](_0xbab7x16[_0x9b3b[124]]-_0xbab7x5[_0x9b3b[8]][_0x9b3b[154]]/_0xbab7x5[_0x9b3b[129]][_0x9b3b[182]],_0xbab7x16[_0x9b3b[127]]-_0xbab7x5[_0x9b3b[8]][_0x9b3b[158]]/_0xbab7x5[_0x9b3b[129]][_0x9b3b[182]]);_0xbab7x5[_0x9b3b[8]][_0x9b3b[154]]=0;_0xbab7x5[_0x9b3b[8]][_0x9b3b[158]]=0;_0xbab7x5[_0x9b3b[184]]()}else {var _0xbab7x17=_0xbab7x5[_0x9b3b[129]][_0x9b3b[155]][_0x9b3b[124]];var _0xbab7x18=_0xbab7x5[_0x9b3b[129]][_0x9b3b[155]][_0x9b3b[127]];_0xbab7x5[_0x9b3b[129]][_0x9b3b[155]][_0x9b3b[124]]=0;_0xbab7x5[_0x9b3b[129]][_0x9b3b[155]][_0x9b3b[127]]=0;_0xbab7x5[_0x9b3b[184]]();_0xbab7x5[_0x9b3b[8]][_0x9b3b[154]]-=Math[_0x9b3b[157]](_0xbab7x17*_0xbab7x5[_0x9b3b[129]][_0x9b3b[182]]);_0xbab7x5[_0x9b3b[8]][_0x9b3b[158]]-=Math[_0x9b3b[157]](_0xbab7x18*_0xbab7x5[_0x9b3b[129]][_0x9b3b[182]])}},!mxClient.IS_TOUCH);_0xbab7x15[_0x9b3b[169]](true);_0xbab7x15[_0x9b3b[170]](function(){return _0xbab7x5[_0x9b3b[8]][_0x9b3b[113]][_0x9b3b[185]]==_0x9b3b[186]});_0xbab7x15=this[_0x9b3b[10]](_0x9b3b[147],mxUtils[_0x9b3b[27]](this,function(){_0xbab7x5[_0x9b3b[145]]=!_0xbab7x5[_0x9b3b[145]];_0xbab7x5[_0x9b3b[187]]=_0xbab7x5[_0x9b3b[145]];_0xbab7x5[_0x9b3b[188]]=_0xbab7x5[_0x9b3b[187]];_0xbab7x5[_0x9b3b[129]][_0x9b3b[189]]();_0xbab7x5[_0x9b3b[184]]();_0xbab7x4[_0x9b3b[167]]();_0xbab7x4[_0x9b3b[191]][_0x9b3b[190]]();if(mxUtils[_0x9b3b[192]](_0xbab7x5[_0x9b3b[8]])){if(_0xbab7x5[_0x9b3b[145]]){_0xbab7x5[_0x9b3b[8]][_0x9b3b[154]]-=20;_0xbab7x5[_0x9b3b[8]][_0x9b3b[158]]-=20}else {_0xbab7x5[_0x9b3b[8]][_0x9b3b[154]]+=20;_0xbab7x5[_0x9b3b[8]][_0x9b3b[158]]+=20}}}));_0xbab7x15[_0x9b3b[169]](true);_0xbab7x15[_0x9b3b[170]](function(){return _0xbab7x5[_0x9b3b[145]]});_0xbab7x15=this[_0x9b3b[10]](_0x9b3b[193],function(){_0xbab7x5[_0x9b3b[195]](!_0xbab7x5[_0x9b3b[194]][_0x9b3b[175]]())},null,null,_0x9b3b[196]);_0xbab7x15[_0x9b3b[169]](true);_0xbab7x15[_0x9b3b[170]](function(){return _0xbab7x5[_0x9b3b[194]][_0x9b3b[175]]()});_0xbab7x15=this[_0x9b3b[10]](_0x9b3b[197],function(){_0xbab7x5[_0x9b3b[194]][_0x9b3b[199]](!_0xbab7x5[_0x9b3b[194]][_0x9b3b[198]]())});_0xbab7x15[_0x9b3b[169]](true);_0xbab7x15[_0x9b3b[170]](function(){return _0xbab7x5[_0x9b3b[194]][_0x9b3b[198]]()});this[_0x9b3b[10]](_0x9b3b[200],function(){var _0xbab7x19=_0x9b3b[95];if(mxResources[_0x9b3b[202]](mxClient[_0x9b3b[201]])){_0xbab7x19=_0x9b3b[203]+mxClient[_0x9b3b[201]]};window[_0x9b3b[11]](RESOURCES_PATH+_0x9b3b[204]+_0xbab7x19+_0x9b3b[205])});this[_0x9b3b[28]](_0x9b3b[206], new Action(mxResources[_0x9b3b[26]](_0x9b3b[206])+_0x9b3b[207],function(){_0xbab7x3[_0x9b3b[9]]( new AboutDialog(_0xbab7x3)[_0x9b3b[8]],320,280,true,true)},null,null,_0x9b3b[208]));var _0xbab7x1a=mxUtils[_0x9b3b[27]](this,function(_0xbab7x1b,_0xbab7x1c){this[_0x9b3b[10]](_0xbab7x1b,function(){_0xbab7x5[_0x9b3b[209]](mxConstants.STYLE_FONTSTYLE,_0xbab7x1c)})});_0xbab7x1a(_0x9b3b[210],mxConstants.FONT_BOLD);_0xbab7x1a(_0x9b3b[211],mxConstants.FONT_ITALIC);_0xbab7x1a(_0x9b3b[212],mxConstants.FONT_UNDERLINE);this[_0x9b3b[10]](_0x9b3b[213],function(){_0xbab7x5[_0x9b3b[214]](mxConstants.STYLE_SHADOW)});this[_0x9b3b[10]](_0x9b3b[215],function(){_0xbab7x5[_0x9b3b[214]](mxConstants.STYLE_DASHED)});this[_0x9b3b[10]](_0x9b3b[216],function(){_0xbab7x5[_0x9b3b[214]](mxConstants.STYLE_ROUNDED)});this[_0x9b3b[10]](_0x9b3b[217],function(){_0xbab7x5[_0x9b3b[214]](mxConstants.STYLE_CURVED)});this[_0x9b3b[10]](_0x9b3b[113],function(){var _0xbab7x9=_0xbab7x5[_0x9b3b[57]]();if(_0xbab7x9!=null&&_0xbab7x9[_0x9b3b[103]]>0){var _0xbab7x1d=_0xbab7x5[_0x9b3b[102]]();var _0xbab7x1c=mxUtils[_0x9b3b[97]](mxResources[_0x9b3b[26]](_0x9b3b[96])+_0x9b3b[118]+mxResources[_0x9b3b[26]](_0x9b3b[113])+_0x9b3b[218],_0xbab7x1d[_0x9b3b[219]](_0xbab7x9[0])||_0x9b3b[95]);if(_0xbab7x1c!=null){_0xbab7x5[_0x9b3b[220]](_0xbab7x1c,_0xbab7x9)}}});this[_0x9b3b[10]](_0x9b3b[221],function(){_0xbab7x5[_0x9b3b[222]](_0xbab7x5[_0x9b3b[93]]())});this[_0x9b3b[10]](_0x9b3b[223],function(){var _0xbab7x7=_0xbab7x5[_0x9b3b[93]]();if(_0xbab7x7!=null&&_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[224]](_0xbab7x7)){var _0xbab7x1e=_0xbab7x4[_0x9b3b[6]][_0x9b3b[226]][_0x9b3b[225]](_0xbab7x7);if(_0xbab7x1e instanceof mxEdgeHandler){var _0xbab7x16=_0xbab7x5[_0x9b3b[129]][_0x9b3b[155]];var _0xbab7x6=_0xbab7x5[_0x9b3b[129]][_0x9b3b[182]];var _0xbab7x17=_0xbab7x16[_0x9b3b[124]];var _0xbab7x18=_0xbab7x16[_0x9b3b[127]];var _0xbab7x1f=_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[227]](_0xbab7x7);var _0xbab7x20=_0xbab7x5[_0x9b3b[122]](_0xbab7x1f);if(_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[121]](_0xbab7x1f)&&_0xbab7x20!=null){_0xbab7x17+=_0xbab7x20[_0x9b3b[124]];_0xbab7x18+=_0xbab7x20[_0x9b3b[127]]};_0xbab7x1e[_0x9b3b[232]](_0xbab7x1e[_0x9b3b[228]],_0xbab7x5[_0x9b3b[230]][_0x9b3b[229]]/_0xbab7x6-_0xbab7x17,_0xbab7x5[_0x9b3b[230]][_0x9b3b[231]]/_0xbab7x6-_0xbab7x18)}}});this[_0x9b3b[10]](_0x9b3b[233],function(){var _0xbab7x21=_0xbab7x3[_0x9b3b[2]][_0x9b3b[26]](_0x9b3b[233]);if(_0xbab7x21[_0x9b3b[234]]!=null){_0xbab7x21[_0x9b3b[234]][_0x9b3b[236]](_0xbab7x21[_0x9b3b[234]][_0x9b3b[228]],_0xbab7x21[_0x9b3b[235]])}});this[_0x9b3b[10]](_0x9b3b[237],function(){function _0xbab7x22(_0xbab7xc,_0xbab7x23,_0xbab7x24){var _0xbab7x25=null;var _0xbab7x9=_0xbab7x5[_0x9b3b[57]]();_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[101]]();try{if(_0xbab7x9[_0x9b3b[103]]==0){var _0xbab7x26=_0xbab7x5[_0x9b3b[238]]();_0xbab7x9=[_0xbab7x5[_0x9b3b[240]](_0xbab7x5[_0x9b3b[239]](),null,_0x9b3b[95],_0xbab7x26,_0xbab7x26,_0xbab7x23,_0xbab7x24)];_0xbab7x25=_0xbab7x9};_0xbab7x5[_0x9b3b[114]](mxConstants.STYLE_IMAGE,_0xbab7xc,_0xbab7x9);_0xbab7x5[_0x9b3b[114]](mxConstants.STYLE_SHAPE,_0x9b3b[237],_0xbab7x9);if(_0xbab7x5[_0x9b3b[241]]()==1){if(_0xbab7x23!=null&&_0xbab7x24!=null){var _0xbab7x7=_0xbab7x9[0];var _0xbab7xd=_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[242]](_0xbab7x7);if(_0xbab7xd!=null){_0xbab7xd=_0xbab7xd[_0x9b3b[123]]();_0xbab7xd[_0x9b3b[125]]=_0xbab7x23;_0xbab7xd[_0x9b3b[126]]=_0xbab7x24;_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[128]](_0xbab7x7,_0xbab7xd)}}}}finally{_0xbab7x5[_0x9b3b[102]]()[_0x9b3b[107]]()};if(_0xbab7x25!=null){_0xbab7x5[_0x9b3b[59]](_0xbab7x25);_0xbab7x5[_0x9b3b[243]](_0xbab7x25[0])}}var _0xbab7xc=_0x9b3b[95];var _0xbab7xb=_0xbab7x5[_0x9b3b[110]]()[_0x9b3b[109]](_0xbab7x5[_0x9b3b[93]]());if(_0xbab7xb!=null){_0xbab7xc=_0xbab7xb[_0x9b3b[113]][mxConstants[_0x9b3b[244]]]||_0xbab7xc};_0xbab7xc=mxUtils[_0x9b3b[97]](mxResources[_0x9b3b[26]](_0x9b3b[96])+_0x9b3b[118]+mxResources[_0x9b3b[26]](_0x9b3b[245])+_0x9b3b[218],_0xbab7xc);if(_0xbab7xc!=null){if(_0xbab7xc[_0x9b3b[103]]>0){var _0xbab7x27= new Image();_0xbab7x27[_0x9b3b[246]]=function(){_0xbab7x22(_0xbab7xc,_0xbab7x27[_0x9b3b[125]],_0xbab7x27[_0x9b3b[126]])};_0xbab7x27[_0x9b3b[247]]=function(){mxUtils[_0x9b3b[249]](mxResources[_0x9b3b[26]](_0x9b3b[248]))};_0xbab7x27[_0x9b3b[250]]=_0xbab7xc}}})};Actions[_0x9b3b[4]][_0x9b3b[10]]=function(_0xbab7x1b,_0xbab7x28,_0xbab7x29,_0xbab7x2a,_0xbab7x2b){return this[_0x9b3b[28]](_0xbab7x1b, new Action(mxResources[_0x9b3b[26]](_0xbab7x1b),_0xbab7x28,_0xbab7x29,_0xbab7x2a,_0xbab7x2b))};Actions[_0x9b3b[4]][_0x9b3b[28]]=function(_0xbab7x2c,_0xbab7x15){this[_0x9b3b[2]][_0xbab7x2c]=_0xbab7x15;return _0xbab7x15};Actions[_0x9b3b[4]][_0x9b3b[26]]=function(_0xbab7x2c){return this[_0x9b3b[2]][_0xbab7x2c]};function Action(_0xbab7x2e,_0xbab7x28,_0xbab7x29,_0xbab7x2a,_0xbab7x2b){mxEventSource[_0x9b3b[251]](this);this[_0x9b3b[252]]=_0xbab7x2e;this[_0x9b3b[146]]=_0xbab7x28;this[_0x9b3b[253]]=(_0xbab7x29!=null)?_0xbab7x29:true;this[_0x9b3b[254]]=_0xbab7x2a;this[_0x9b3b[255]]=_0xbab7x2b}mxUtils[_0x9b3b[256]](Action,mxEventSource);Action[_0x9b3b[4]][_0x9b3b[177]]=function(_0xbab7xc){if(this[_0x9b3b[253]]!=_0xbab7xc){this[_0x9b3b[253]]=_0xbab7xc;this[_0x9b3b[258]]( new mxEventObject(_0x9b3b[257]))}};Action[_0x9b3b[4]][_0x9b3b[169]]=function(_0xbab7xc){this[_0x9b3b[259]]=_0xbab7xc};Action[_0x9b3b[4]][_0x9b3b[170]]=function(_0xbab7x28){this[_0x9b3b[260]]=_0xbab7x28};Action[_0x9b3b[4]][_0x9b3b[261]]=function(){return this[_0x9b3b[260]]()}
\ No newline at end of file
index c78d34e..67d3637 100644 (file)
@@ -1,1048 +1 @@
-'use strict';
-/**
- * $Id: Dialogs.js,v 1.5 2013-01-29 17:23:31 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Constructs a new dialog.
- */
-
-function createCheckbox(value) {
-       var input = document.createElement('input');
-       input.setAttribute('type', 'checkbox');
-       if (value) {
-               input.setAttribute('checked', true);
-       }
-       return input;
-}
-
-function createDropdownFromApi(path, value, option_name, option_value, editorUi, keys, pattern) {
-       var req = new XMLHttpRequest();
-       req.open('GET', path, false); // `false` makes the request synchronous
-       req.setRequestHeader('Authorization', 'Bearer ' + editorUi.editor.data.token);
-       req.send(null);
-       var res = [];
-       if (req.status === 200) {
-               res = JSON.parse(req.response);
-       }
-       var input = document.createElement('select');
-       var option = document.createElement('option');
-       option.text = '-- None --';
-       option.value = '-1';
-       input.appendChild(option);
-       res.rows.forEach(function(elem) {
-               option = document.createElement('option');
-               option.text = elem[option_name];
-               if (keys && pattern) {
-                       keys.forEach(function(key) {
-                               pattern = pattern.replace('%' + key + '%', elem[key]);
-                       });
-                       option.value = pattern;
-                       option.selected = (pattern == value);
-               } else {
-                       option.value = elem[option_value];
-                       option.selected = (elem[option_value] == value);
-               }
-               input.appendChild(option);
-       });
-       input.className = 'form-control select2';
-
-       return input;
-}
-
-function createGroupedDropdownFromApi(path, value, option_name, option_value, editorUi, associationField) {
-       var req = new XMLHttpRequest();
-       req.open('GET', path, false); // `false` makes the request synchronous
-       req.setRequestHeader('Authorization', 'Bearer ' + editorUi.editor.data.token);
-       req.send(null);
-       var res = [];
-       if (req.status === 200) {
-               res = JSON.parse(req.response);
-       }
-       var input = document.createElement('select');
-       var option = document.createElement('option');
-       option.text = '-- None --';
-       option.value = '0';
-       input.appendChild(option);
-       var mainFilter = {};
-       var groupFilter = {};
-       mainFilter[associationField] = null;
-       var mainValues = _.filter(res.rows, mainFilter);
-       var groupValues = {};
-       mainValues.forEach(function(elem) {
-               option = document.createElement('option');
-               option.className = 'select-group-father';
-               option.text = elem[option_name].toUpperCase();
-               option.value = elem[option_value];
-               option.selected = (elem[option_value] == value);
-               input.appendChild(option);
-               groupFilter[associationField] = elem[option_value];
-               groupValues = _.filter(res.rows, groupFilter);
-               groupValues.forEach(function(elem) {
-                       option = document.createElement('option');
-                       option.className = 'select-group-son';
-                       option.text = '-' + _.capitalize(elem[option_name]);
-                       option.value = elem[option_value];
-                       option.selected = (elem[option_value] == value);
-                       input.appendChild(option);
-               });
-       })
-       input.className = 'form-control select2';
-
-       return input;
-}
-
-function createDropdownFromArray(array, value) {
-       var input = document.createElement('select');
-
-       for (var item in array) {
-               var option = document.createElement('option');
-               option.text = array[item];
-               option.value = item;
-               if (value > 0 || value != '')
-                       option.selected = (value === item) ? true : false;
-
-               input.appendChild(option);
-       }
-
-       input.className = 'form-control select2';
-
-       return input;
-}
-
-function Dialog(editorUi, elt, w, h, modal, closable, onClose) {
-       var dx = 0;
-
-       if (mxClient.IS_IE && document.documentMode != 9) {
-               dx = 60;
-       }
-
-       w += dx;
-       h += dx;
-
-       var left = Math.max(0, Math.round((document.body.scrollWidth - w) / 2));
-       var top = Math.max(0, Math.round((Math.max(document.body.scrollHeight,
-               document.documentElement.scrollHeight) - h) / 3));
-
-       var div = editorUi.createDiv('geDialog');
-       div.className = 'modal fade in center';
-       div.style.display = 'block';
-       div.style.paddingRight = '12px';
-       // div.style.width = w + 'px';
-       // div.style.height = h + 'px';
-       // div.style.left = left + 'px';
-       // div.style.top = top + 'px';
-
-       var divModalDialog = editorUi.createDiv('geModalDialog');
-       divModalDialog.className = 'modal-dialog';
-
-       divModalDialog.appendChild(elt);
-       div.appendChild(divModalDialog);
-
-       if (this.bg == null) {
-               this.bg = editorUi.createDiv('background');
-               this.bg.className = 'modal-backdrop fade in';
-
-               if (mxClient.IS_QUIRKS) {
-                       new mxDivResizer(this.bg);
-               }
-       }
-
-       if (modal) {
-               document.body.appendChild(this.bg);
-       }
-
-       document.body.appendChild(div);
-
-       this.onDialogClose = onClose;
-       this.container = div;
-};
-
-/**
- * Removes the dialog from the DOM.
- */
-Dialog.prototype.close = function() {
-       if (this.onDialogClose != null) {
-               this.onDialogClose();
-               this.onDialogClose = null;
-       }
-
-       this.container.parentNode.removeChild(this.container);
-       this.bg.parentNode.removeChild(this.bg);
-};
-
-/**
- * Constructs a new open dialog.
- */
-function ImportDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('import') + ' XML');
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-12');
-
-       var textarea = document.createElement('textarea');
-       textarea.style.width = '100%';
-       textarea.style.height = '374px';
-
-       var input = document.createElement('input');
-       input.type = 'file';
-       input.setAttribute('accept', 'text/xml');
-
-       input.addEventListener('change', function readSingleFile(evt) {
-               //Retrieve the first (and only!) File from the FileList object
-               var f = evt.target.files[0];
-               console.log(f);
-               if (f) {
-                       if (f.type === 'text/xml') {
-                               var r = new FileReader();
-                               r.onload = function(e) {
-                                       var contents = e.target.result;
-                                       mxUtils.write(textarea, contents);
-                               };
-                               r.readAsText(f);
-                       } else {
-                               alert('Failed to load format file');
-                       }
-               } else {
-                       alert('Failed to load file');
-               }
-       }, false);
-
-       col1.appendChild(input);
-       col1.appendChild(textarea);
-
-       row.appendChild(col1);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('import'), mxUtils.bind(this,
-               function(data) {
-                       var doc = mxUtils.parseXml(textarea.value);
-                       editorUi.editor.setGraphXml(doc.documentElement);
-                       editorUi.hideDialog();
-               }));
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-
-};
-
-/**
- * Constructs a new about dialog.
- */
-function AboutDialog(editorUi) {
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('about') + ' Cally Square');
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var img = document.createElement('img');
-       img.style.border = '0px';
-       img.setAttribute('width', '176');
-       img.setAttribute('width', '151');
-       img.setAttribute('src', IMAGE_PATH + '/logo.png');
-       body.appendChild(img);
-       mxUtils.br(body);
-       mxUtils.write(body, 'Powered by Xenialab ' + mxClient.VERSION);
-       mxUtils.br(body);
-       var link = document.createElement('a');
-       link.setAttribute('href', 'http://www.callysquare.com/');
-       link.setAttribute('target', '_blank');
-       mxUtils.write(link, 'www.callysquare.com');
-       body.appendChild(link);
-       mxUtils.br(body);
-       mxUtils.br(body);
-       //--- END BODY
-
-       var close = mxUtils.button(mxResources.get('close'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-};
-
-/**
- * Constructs a new save dialog.
- */
-function SaveDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('saveAs'));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var name = 'name';
-       var id = '_' + name;
-       var value = editorUi.editor.getOrCreateFilename();
-
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-4');
-       var col2 = editorUi.createDiv('col-md-8');
-
-       var label = document.createElement('label');
-       label.className = 'control-label pull-right';
-       mxUtils.write(label, mxResources.get(name));
-       col1.appendChild(label);
-
-       var select = document.createElement('input');
-       select.setAttribute('value', value + '_copy');
-       select.setAttribute('id', id)
-       select.className = 'form-control';
-       col2.appendChild(select);
-
-       row.appendChild(col1);
-       row.appendChild(col2);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('save'), function() {
-               editorUi.saveAs(select.value);
-               editorUi.hideDialog();
-       });
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-       //nameInput.setAttribute('value', editorUi.editor.getOrCreateFilename());
-};
-
-/**
- * Constructs a new save dialog.
- */
-function NewDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('new'));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var name = 'name';
-       var id = '_' + name;
-       var value = editorUi.editor.getOrCreateFilename();
-
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-4');
-       var col2 = editorUi.createDiv('col-md-8');
-
-       var label = document.createElement('label');
-       label.className = 'control-label pull-right';
-       mxUtils.write(label, mxResources.get(name));
-       col1.appendChild(label);
-
-       var select = document.createElement('input');
-       select.setAttribute('value', value + '_new');
-       select.setAttribute('id', id)
-       select.className = 'form-control';
-       col2.appendChild(select);
-
-       row.appendChild(col1);
-       row.appendChild(col2);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('new'), function() {
-               editorUi.new(select.value);
-               editorUi.hideDialog();
-       });
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-       //nameInput.setAttribute('value', editorUi.editor.getOrCreateFilename());
-};
-
-/**
- * Constructs a new save dialog.
- */
-function VariableDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('variable'));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var name = 'name';
-       var id = '_' + name;
-       var value = editorUi.editor.getOrCreateFilename();
-
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-4');
-       var col2 = editorUi.createDiv('col-md-8');
-
-       var label = document.createElement('label');
-       label.className = 'control-label pull-right';
-       mxUtils.write(label, mxResources.get(name));
-       col1.appendChild(label);
-
-       var select = document.createElement('input');
-       select.setAttribute('value', 'variable name');
-       select.setAttribute('id', id)
-       select.className = 'form-control';
-       col2.appendChild(select);
-
-       row.appendChild(col1);
-       row.appendChild(col2);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('new'), function() {
-               editorUi.variable(select.value);
-               editorUi.hideDialog();
-       });
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-       //nameInput.setAttribute('value', editorUi.editor.getOrCreateFilename());
-};
-
-/**
- * Constructs a new save dialog.
- */
-function OpenDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('open'));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-4');
-       var col2 = editorUi.createDiv('col-md-8');
-
-       var label = document.createElement('label');
-       label.className = 'control-label pull-right';
-       mxUtils.write(label, mxResources.get('name'));
-       col1.appendChild(label);
-
-       var req = new XMLHttpRequest();
-       req.open('GET', '/api/square/projects', false); // `false` makes the request synchronous
-       req.setRequestHeader('Authorization', 'Bearer ' + editorUi.editor.data.token);
-       req.send(null);
-       var res = [];
-       if (req.status === 200) {
-               res = JSON.parse(req.response);
-       }
-
-       var select = document.createElement('select');
-
-       for (var j = 0; j < res.length; j++) {
-               var option = document.createElement('option');
-               option.text = res[j].name;
-               option.value = res[j].id;
-               select.appendChild(option);
-       }
-       select.className = 'form-control';
-       col2.appendChild(select);
-
-       row.appendChild(col1);
-       row.appendChild(col2);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('open'), function() {
-               console.log(select);
-               console.log(select.value);
-               window.open('square/project/' + select.value, '_blank');
-               editorUi.hideDialog();
-       });
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-       //nameInput.setAttribute('value', editorUi.editor.getOrCreateFilename());
-};
-/**
- * Constructs a new rename dialog.
- */
-function RenameDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('rename'));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-4');
-       var col2 = editorUi.createDiv('col-md-8');
-
-       var label = document.createElement('label');
-       label.className = 'control-label pull-right';
-       mxUtils.write(label, mxResources.get('name'));
-       col1.appendChild(label);
-       var name = editorUi.editor.filename;
-       var input = document.createElement('input');
-       input.setAttribute('value', name);
-       input.className = 'form-control';
-
-       col2.appendChild(input);
-
-       row.appendChild(col1);
-       row.appendChild(col2);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('save'), function() {
-               var req = new XMLHttpRequest();
-
-               req.open("PUT", SAVE_URL + editorUi.editor.data.id, true);
-               req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-               req.setRequestHeader('Authorization', 'Bearer ' + editorUi.editor.data.token);
-               req.send('name=' + input.value);
-
-               req.onload = function(e) {
-                       if (req.status === 200) {
-                               editorUi.editor.setStatus('Project successfully renamed');
-                               editorUi.editor.filename = input.value;
-
-                       } else {
-                               console.log(req.response);
-                               editorUi.editor.setStatus(JSON.parse(req.response).errors[0].message);
-                       }
-               }
-               req.onerror = function(e) {
-                       mxUtils.alert(req.statusText);
-               };
-               editorUi.hideDialog();
-       });
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-       //nameInput.setAttribute('value', editorUi.editor.getOrCreateFilename());
-};
-
-/**
- * Constructs a new edit file dialog.
- */
-function EditFileDialog(editorUi) {
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('edit'));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var row = editorUi.createDiv('row');
-       var col1 = editorUi.createDiv('col-md-12');
-
-       var textarea = document.createElement('textarea');
-       textarea.style.width = '100%';
-       textarea.style.height = '374px';
-       textarea.value = mxUtils.getPrettyXml(editorUi.editor.getGraphXml());
-
-       // Enables dropping files
-       if (fileSupport) {
-               function handleDrop(evt) {
-                       evt.stopPropagation();
-                       evt.preventDefault();
-
-                       if (evt.dataTransfer.files.length > 0) {
-                               var file = evt.dataTransfer.files[0];
-
-                               var reader = new FileReader();
-                               reader.onload = function(e) {
-                                       textarea.value = e.target.result;
-                               };
-                               reader.readAsText(file);
-                       }
-               };
-
-               function handleDragOver(evt) {
-                       evt.stopPropagation();
-                       evt.preventDefault();
-               };
-
-               // Setup the dnd listeners.
-               textarea.addEventListener('dragover', handleDragOver, false);
-               textarea.addEventListener('drop', handleDrop, false);
-       }
-       col1.appendChild(textarea);
-
-       row.appendChild(col1);
-       body.appendChild(row);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('save'), function() {
-               var doc = mxUtils.parseXml(textarea.value);
-               editorUi.editor.setGraphXml(doc.documentElement);
-               editorUi.hideDialog();
-       });
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-};
-
-/**
- * Constructs a new export dialog.
- */
-function ExportDialog(editorUi) {
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body form');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('export') + ' XML');
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var form = editorUi.createDiv('form-horizontal form-row-seperated');
-       var group = editorUi.createDiv('form-group last');
-
-       var label = document.createElement('label');
-       label.className = 'col-sm-4 control-label';
-       mxUtils.write(label, mxResources.get('filename'));
-
-       var input = document.createElement('input');
-       input.setAttribute('value', editorUi.editor.getOrCreateFilename());
-       input.className = 'form-control';
-
-       var div = editorUi.createDiv('col-sm-8');
-       div.appendChild(input);
-
-       group.appendChild(label);
-       group.appendChild(div);
-       form.appendChild(group);
-
-       body.appendChild(form);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('export'), mxUtils.bind(this,
-               function(data) {
-                       editorUi.save(false);
-
-                       var xml = encodeURIComponent(mxUtils.getXml(editorUi.editor.getGraphXml()));
-                       new mxXmlRequest(SAVE_URL + editorUi.editor.data.id + '/download',
-                               'filename=' + input.value, 'GET').simulate(document, "_blank");
-                       editorUi.hideDialog();
-               }));
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-};
-
-/**
- * Giuseppe Careri
- * Constructs a new general dialog.
- */
-function GeneralDialog(editorUi, cell) {
-       var graph = editorUi.editor.graph;
-
-       var content = editorUi.createDiv('modal-content');
-       var header = editorUi.createDiv('modal-header');
-       var body = editorUi.createDiv('modal-body form modal-body-scroll');
-       var footer = editorUi.createDiv('modal-footer');
-
-       //--- START HEADER
-       var title = editorUi.createHeader('h4');
-       mxUtils.write(title, mxResources.get('edit') + ' ' + mxResources.get(cell.value
-               .nodeName));
-
-       var x = mxUtils.button('', function() {
-               editorUi.hideDialog();
-       });
-       x.className = 'close';
-
-       header.appendChild(x);
-       header.appendChild(title);
-       //--- END HEADER
-
-       //--- START BODY
-       var length = cell.value.attributes.length;
-       var form = editorUi.createDiv('form-horizontal form-row-seperated');
-
-       for (var i = 0; i < length; i++) {
-               var name = cell.value.attributes[i].name;
-               var id = '_' + name;
-               var value = cell.value.attributes[i].value;
-
-               var group = editorUi.createDiv((i == length - 1) ? 'form-group last' :
-                       'form-group');
-
-               var label = document.createElement('label');
-               label.className = 'col-sm-4 control-label';
-               mxUtils.write(label, mxResources.get(name));
-               group.appendChild(label);
-
-               var input;
-
-               switch (name) {
-                       case 'sip_id':
-                               input = createDropdownFromApi('/api/agents', value, 'name', 'id', editorUi);
-                               break;
-                       case 'queue_id':
-                               input = createDropdownFromApi('/api/voice/queues', value, 'name', 'name', editorUi);
-                               break;
-                       case 'trunk_id':
-                               input = createDropdownFromApi('/api/trunks', value, 'name', 'id', editorUi);
-                               break;
-                       case 'variable_id':
-                               input = createDropdownFromApi('/api/variables', value, 'name', 'id', editorUi);
-                               break;
-                       case 'context':
-                               input = createDropdownFromApi('/api/voice/contexts', value, 'name', 'name', editorUi);
-                               break;
-                       case 'mailbox':
-                               input = createDropdownFromApi('/api/voice/voicemails', value, 'mailbox', 'id', editorUi, ['mailbox', 'context'], '%mailbox%@%context%');
-                               break;
-                       case 'model':
-                               input = createDropdownFromArray(ISPEECHASRMODEL, value);
-                               break;
-                       case 'ispeech_asr_language':
-                               input = createDropdownFromArray(ISPEECHASRLANG, value);
-                               break;
-                       case 'ispeech_tts_language':
-                               input = createDropdownFromArray(ISPEECHLANG, value);
-                               break;
-                       case 'google_tts_language':
-                               input = createDropdownFromArray(GOOGLETTSLANG, value);
-                               break;
-                       case 'interval_id':
-                               input = createGroupedDropdownFromApi('/api/intervals', value, 'name', 'id', editorUi, 'IntervalId');
-                               break;
-                       case 'project_id':
-                               input = createDropdownFromApi('/api/square/projects', value, 'name', 'id', editorUi);
-                               break;
-                       case 'odbc_id':
-                               input = createDropdownFromApi('/api/square/odbc', value, 'name', 'id', editorUi);
-                               break;
-                       case 'file_id':
-                               input = createDropdownFromApi('/api/sounds', value, 'display_name', 'id', editorUi);
-                               break;
-                       case 'timeout':
-                       case 'digit':
-                       case 'mindigit':
-                       case 'maxdigit':
-                       case 'response':
-                       case 'retry':
-                               input = document.createElement('input');
-                               input.setAttribute('type', 'number');
-                               input.setAttribute('min', 0);
-                               input.setAttribute('max', 1000);
-                               input.setAttribute('value', value);
-                               input.className = 'form-control';
-                               break;
-                       case 'text':
-                       case 'key':
-                       case 'query':
-                       case 'condition':
-                       case 'command':
-                               input = document.createElement('textarea');
-                               input.innerHTML = value;
-                               input.className = 'form-control';
-                               break;
-                       default:
-                               input = document.createElement('input');
-                               input.setAttribute('value', value);
-                               input.className = 'form-control';
-                               break;
-               }
-
-               input.setAttribute('id', id)
-
-               var div = editorUi.createDiv('col-sm-8');
-               div.appendChild(input);
-
-               // Help
-               if (mxResources.get('help_' + name)) {
-                       var help = editorUi.createDiv('p');
-                       help.className = 'help-block';
-                       mxUtils.write(help, mxResources.get('help_' + name));
-                       div.appendChild(help);
-               }
-
-               group.appendChild(div);
-               form.appendChild(group);
-       }
-       body.appendChild(form);
-       //--- END BODY
-
-       //--- START FOOTER
-       var save = mxUtils.button(mxResources.get('save'), mxUtils.bind(this,
-               function(data) {
-                       for (var i = 0; i < cell.value.attributes.length; i++) {
-                               var id = '_' + cell.value.attributes[i].name;
-                               var name = cell.value.attributes[i].name;
-                               console.log(name, document.getElementById(id).value);
-                               cell.setAttribute(name, document.getElementById(id).value);
-                       };
-                       graph.refresh(cell);
-                       editorUi.hideDialog();
-               }));
-       save.className = 'btn blue';
-
-       var close = mxUtils.button(mxResources.get('cancel'), function() {
-               editorUi.hideDialog();
-       });
-       close.className = 'btn default';
-
-       footer.appendChild(save);
-       footer.appendChild(close);
-       //--- END FOOTER
-
-       //--- START CONTENT
-       content.appendChild(header);
-       content.appendChild(body);
-       content.appendChild(footer);
-       //--- END CONTENT
-
-       this.container = content;
-};
+var _0xa5e5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x6E\x70\x75\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x74\x79\x70\x65","\x63\x68\x65\x63\x6B\x62\x6F\x78","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x68\x65\x63\x6B\x65\x64","\x47\x45\x54","\x6F\x70\x65\x6E","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x64\x61\x74\x61","\x65\x64\x69\x74\x6F\x72","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x73\x65\x6C\x65\x63\x74","\x6F\x70\x74\x69\x6F\x6E","\x74\x65\x78\x74","\x2D\x2D\x20\x4E\x6F\x6E\x65\x20\x2D\x2D","\x76\x61\x6C\x75\x65","\x2D\x31","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x25","\x72\x65\x70\x6C\x61\x63\x65","\x66\x6F\x72\x45\x61\x63\x68","\x73\x65\x6C\x65\x63\x74\x65\x64","\x72\x6F\x77\x73","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x66\x6F\x72\x6D\x2D\x63\x6F\x6E\x74\x72\x6F\x6C\x20\x73\x65\x6C\x65\x63\x74\x32","\x30","\x66\x69\x6C\x74\x65\x72","\x73\x65\x6C\x65\x63\x74\x2D\x67\x72\x6F\x75\x70\x2D\x66\x61\x74\x68\x65\x72","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x73\x65\x6C\x65\x63\x74\x2D\x67\x72\x6F\x75\x70\x2D\x73\x6F\x6E","\x2D","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x73\x63\x72\x6F\x6C\x6C\x57\x69\x64\x74\x68","\x62\x6F\x64\x79","\x72\x6F\x75\x6E\x64","\x6D\x61\x78","\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x44\x69\x61\x6C\x6F\x67","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x6D\x6F\x64\x61\x6C\x20\x66\x61\x64\x65\x20\x69\x6E\x20\x63\x65\x6E\x74\x65\x72","\x64\x69\x73\x70\x6C\x61\x79","\x73\x74\x79\x6C\x65","\x62\x6C\x6F\x63\x6B","\x70\x61\x64\x64\x69\x6E\x67\x52\x69\x67\x68\x74","\x31\x32\x70\x78","\x67\x65\x4D\x6F\x64\x61\x6C\x44\x69\x61\x6C\x6F\x67","\x6D\x6F\x64\x61\x6C\x2D\x64\x69\x61\x6C\x6F\x67","\x62\x67","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x6D\x6F\x64\x61\x6C\x2D\x62\x61\x63\x6B\x64\x72\x6F\x70\x20\x66\x61\x64\x65\x20\x69\x6E","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x6E\x44\x69\x61\x6C\x6F\x67\x43\x6C\x6F\x73\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x6C\x6F\x73\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x64\x61\x6C\x2D\x63\x6F\x6E\x74\x65\x6E\x74","\x6D\x6F\x64\x61\x6C\x2D\x68\x65\x61\x64\x65\x72","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79","\x6D\x6F\x64\x61\x6C\x2D\x66\x6F\x6F\x74\x65\x72","\x68\x34","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x69\x6D\x70\x6F\x72\x74","\x67\x65\x74","\x20\x58\x4D\x4C","\x77\x72\x69\x74\x65","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x62\x75\x74\x74\x6F\x6E","\x72\x6F\x77","\x63\x6F\x6C\x2D\x6D\x64\x2D\x31\x32","\x74\x65\x78\x74\x61\x72\x65\x61","\x77\x69\x64\x74\x68","\x31\x30\x30\x25","\x68\x65\x69\x67\x68\x74","\x33\x37\x34\x70\x78","\x66\x69\x6C\x65","\x61\x63\x63\x65\x70\x74","\x74\x65\x78\x74\x2F\x78\x6D\x6C","\x63\x68\x61\x6E\x67\x65","\x66\x69\x6C\x65\x73","\x74\x61\x72\x67\x65\x74","\x6C\x6F\x67","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x73\x75\x6C\x74","\x72\x65\x61\x64\x41\x73\x54\x65\x78\x74","\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6C\x6F\x61\x64\x20\x66\x6F\x72\x6D\x61\x74\x20\x66\x69\x6C\x65","\x46\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x6C\x6F\x61\x64\x20\x66\x69\x6C\x65","\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x62\x69\x6E\x64","\x62\x74\x6E\x20\x62\x6C\x75\x65","\x63\x61\x6E\x63\x65\x6C","\x62\x74\x6E\x20\x64\x65\x66\x61\x75\x6C\x74","\x61\x62\x6F\x75\x74","\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x69\x6D\x67","\x62\x6F\x72\x64\x65\x72","\x30\x70\x78","\x31\x37\x36","\x31\x35\x31","\x73\x72\x63","\x2F\x6C\x6F\x67\x6F\x2E\x70\x6E\x67","\x62\x72","\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x58\x65\x6E\x69\x61\x6C\x61\x62\x20","\x56\x45\x52\x53\x49\x4F\x4E","\x61","\x68\x72\x65\x66","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65\x2E\x63\x6F\x6D\x2F","\x5F\x62\x6C\x61\x6E\x6B","\x77\x77\x77\x2E\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65\x2E\x63\x6F\x6D","\x73\x61\x76\x65\x41\x73","\x6E\x61\x6D\x65","\x5F","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x63\x6F\x6C\x2D\x6D\x64\x2D\x34","\x63\x6F\x6C\x2D\x6D\x64\x2D\x38","\x6C\x61\x62\x65\x6C","\x63\x6F\x6E\x74\x72\x6F\x6C\x2D\x6C\x61\x62\x65\x6C\x20\x70\x75\x6C\x6C\x2D\x72\x69\x67\x68\x74","\x5F\x63\x6F\x70\x79","\x69\x64","\x66\x6F\x72\x6D\x2D\x63\x6F\x6E\x74\x72\x6F\x6C","\x73\x61\x76\x65","\x6E\x65\x77","\x5F\x6E\x65\x77","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x6E\x61\x6D\x65","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x72\x65\x6E\x61\x6D\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x50\x55\x54","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x6E\x61\x6D\x65\x3D","\x50\x72\x6F\x6A\x65\x63\x74\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6C\x6C\x79\x20\x72\x65\x6E\x61\x6D\x65\x64","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x6D\x65\x73\x73\x61\x67\x65","\x65\x72\x72\x6F\x72\x73","\x6F\x6E\x65\x72\x72\x6F\x72","\x73\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x61\x6C\x65\x72\x74","\x65\x64\x69\x74","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E","\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74","\x64\x61\x74\x61\x54\x72\x61\x6E\x73\x66\x65\x72","\x64\x72\x61\x67\x6F\x76\x65\x72","\x64\x72\x6F\x70","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D","\x65\x78\x70\x6F\x72\x74","\x66\x6F\x72\x6D\x2D\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x20\x66\x6F\x72\x6D\x2D\x72\x6F\x77\x2D\x73\x65\x70\x65\x72\x61\x74\x65\x64","\x66\x6F\x72\x6D\x2D\x67\x72\x6F\x75\x70\x20\x6C\x61\x73\x74","\x63\x6F\x6C\x2D\x73\x6D\x2D\x34\x20\x63\x6F\x6E\x74\x72\x6F\x6C\x2D\x6C\x61\x62\x65\x6C","\x63\x6F\x6C\x2D\x73\x6D\x2D\x38","\x67\x65\x74\x58\x6D\x6C","\x73\x69\x6D\x75\x6C\x61\x74\x65","\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D","\x67\x72\x61\x70\x68","\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D\x20\x6D\x6F\x64\x61\x6C\x2D\x62\x6F\x64\x79\x2D\x73\x63\x72\x6F\x6C\x6C","\x20","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x6F\x72\x6D\x2D\x67\x72\x6F\x75\x70","\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x73","\x73\x69\x70\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x71\x75\x65\x75\x65\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x63\x6F\x6E\x74\x65\x78\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x6D\x61\x69\x6C\x62\x6F\x78","\x25\x6D\x61\x69\x6C\x62\x6F\x78\x25\x40\x25\x63\x6F\x6E\x74\x65\x78\x74\x25","\x6D\x6F\x64\x65\x6C","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x6F\x64\x62\x63\x5F\x69\x64","\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x73","\x64\x69\x73\x70\x6C\x61\x79\x5F\x6E\x61\x6D\x65","\x66\x69\x6C\x65\x5F\x69\x64","\x74\x69\x6D\x65\x6F\x75\x74","\x64\x69\x67\x69\x74","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x6D\x61\x78\x64\x69\x67\x69\x74","\x6E\x75\x6D\x62\x65\x72","\x6D\x69\x6E","\x72\x65\x74\x72\x79","\x6B\x65\x79","\x71\x75\x65\x72\x79","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x63\x6F\x6D\x6D\x61\x6E\x64","\x68\x65\x6C\x70\x5F","\x70","\x68\x65\x6C\x70\x2D\x62\x6C\x6F\x63\x6B","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x72\x65\x66\x72\x65\x73\x68"];_0xa5e5[0];function createCheckbox(_0xd1aax2){var _0xd1aax3=document[_0xa5e5[2]](_0xa5e5[1]);_0xd1aax3[_0xa5e5[5]](_0xa5e5[3],_0xa5e5[4]);if(_0xd1aax2){_0xd1aax3[_0xa5e5[5]](_0xa5e5[6],true)};return _0xd1aax3}function createDropdownFromApi(_0xd1aax5,_0xd1aax2,_0xd1aax6,_0xd1aax7,_0xd1aax8,_0xd1aax9,_0xd1aaxa){var _0xd1aaxb= new XMLHttpRequest();_0xd1aaxb[_0xa5e5[8]](_0xa5e5[7],_0xd1aax5,false);_0xd1aaxb[_0xa5e5[14]](_0xa5e5[9],_0xa5e5[10]+_0xd1aax8[_0xa5e5[13]][_0xa5e5[12]][_0xa5e5[11]]);_0xd1aaxb[_0xa5e5[15]](null);var _0xd1aaxc=[];if(_0xd1aaxb[_0xa5e5[16]]===200){_0xd1aaxc=JSON[_0xa5e5[18]](_0xd1aaxb[_0xa5e5[17]])};var _0xd1aax3=document[_0xa5e5[2]](_0xa5e5[19]);var _0xd1aaxd=document[_0xa5e5[2]](_0xa5e5[20]);_0xd1aaxd[_0xa5e5[21]]=_0xa5e5[22];_0xd1aaxd[_0xa5e5[23]]=_0xa5e5[24];_0xd1aax3[_0xa5e5[25]](_0xd1aaxd);_0xd1aaxc[_0xa5e5[30]][_0xa5e5[28]](function(_0xd1aaxe){_0xd1aaxd=document[_0xa5e5[2]](_0xa5e5[20]);_0xd1aaxd[_0xa5e5[21]]=_0xd1aaxe[_0xd1aax6];if(_0xd1aax9&&_0xd1aaxa){_0xd1aax9[_0xa5e5[28]](function(_0xd1aaxf){_0xd1aaxa=_0xd1aaxa[_0xa5e5[27]](_0xa5e5[26]+_0xd1aaxf+_0xa5e5[26],_0xd1aaxe[_0xd1aaxf])});_0xd1aaxd[_0xa5e5[23]]=_0xd1aaxa;_0xd1aaxd[_0xa5e5[29]]=(_0xd1aaxa==_0xd1aax2)}else {_0xd1aaxd[_0xa5e5[23]]=_0xd1aaxe[_0xd1aax7];_0xd1aaxd[_0xa5e5[29]]=(_0xd1aaxe[_0xd1aax7]==_0xd1aax2)};_0xd1aax3[_0xa5e5[25]](_0xd1aaxd)});_0xd1aax3[_0xa5e5[31]]=_0xa5e5[32];return _0xd1aax3}function createGroupedDropdownFromApi(_0xd1aax5,_0xd1aax2,_0xd1aax6,_0xd1aax7,_0xd1aax8,_0xd1aax11){var _0xd1aaxb= new XMLHttpRequest();_0xd1aaxb[_0xa5e5[8]](_0xa5e5[7],_0xd1aax5,false);_0xd1aaxb[_0xa5e5[14]](_0xa5e5[9],_0xa5e5[10]+_0xd1aax8[_0xa5e5[13]][_0xa5e5[12]][_0xa5e5[11]]);_0xd1aaxb[_0xa5e5[15]](null);var _0xd1aaxc=[];if(_0xd1aaxb[_0xa5e5[16]]===200){_0xd1aaxc=JSON[_0xa5e5[18]](_0xd1aaxb[_0xa5e5[17]])};var _0xd1aax3=document[_0xa5e5[2]](_0xa5e5[19]);var _0xd1aaxd=document[_0xa5e5[2]](_0xa5e5[20]);_0xd1aaxd[_0xa5e5[21]]=_0xa5e5[22];_0xd1aaxd[_0xa5e5[23]]=_0xa5e5[33];_0xd1aax3[_0xa5e5[25]](_0xd1aaxd);var _0xd1aax12={};var _0xd1aax13={};_0xd1aax12[_0xd1aax11]=null;var _0xd1aax14=_[_0xa5e5[34]](_0xd1aaxc[_0xa5e5[30]],_0xd1aax12);var _0xd1aax15={};_0xd1aax14[_0xa5e5[28]](function(_0xd1aaxe){_0xd1aaxd=document[_0xa5e5[2]](_0xa5e5[20]);_0xd1aaxd[_0xa5e5[31]]=_0xa5e5[35];_0xd1aaxd[_0xa5e5[21]]=_0xd1aaxe[_0xd1aax6][_0xa5e5[36]]();_0xd1aaxd[_0xa5e5[23]]=_0xd1aaxe[_0xd1aax7];_0xd1aaxd[_0xa5e5[29]]=(_0xd1aaxe[_0xd1aax7]==_0xd1aax2);_0xd1aax3[_0xa5e5[25]](_0xd1aaxd);_0xd1aax13[_0xd1aax11]=_0xd1aaxe[_0xd1aax7];_0xd1aax15=_[_0xa5e5[34]](_0xd1aaxc[_0xa5e5[30]],_0xd1aax13);_0xd1aax15[_0xa5e5[28]](function(_0xd1aaxe){_0xd1aaxd=document[_0xa5e5[2]](_0xa5e5[20]);_0xd1aaxd[_0xa5e5[31]]=_0xa5e5[37];_0xd1aaxd[_0xa5e5[21]]=_0xa5e5[38]+_[_0xa5e5[39]](_0xd1aaxe[_0xd1aax6]);_0xd1aaxd[_0xa5e5[23]]=_0xd1aaxe[_0xd1aax7];_0xd1aaxd[_0xa5e5[29]]=(_0xd1aaxe[_0xd1aax7]==_0xd1aax2);_0xd1aax3[_0xa5e5[25]](_0xd1aaxd)})});_0xd1aax3[_0xa5e5[31]]=_0xa5e5[32];return _0xd1aax3}function createDropdownFromArray(_0xd1aax17,_0xd1aax2){var _0xd1aax3=document[_0xa5e5[2]](_0xa5e5[19]);for(var _0xd1aax18 in _0xd1aax17){var _0xd1aaxd=document[_0xa5e5[2]](_0xa5e5[20]);_0xd1aaxd[_0xa5e5[21]]=_0xd1aax17[_0xd1aax18];_0xd1aaxd[_0xa5e5[23]]=_0xd1aax18;if(_0xd1aax2>0||_0xd1aax2!=_0xa5e5[40]){_0xd1aaxd[_0xa5e5[29]]=(_0xd1aax2===_0xd1aax18)?true:false};_0xd1aax3[_0xa5e5[25]](_0xd1aaxd)};_0xd1aax3[_0xa5e5[31]]=_0xa5e5[32];return _0xd1aax3}function Dialog(_0xd1aax8,_0xd1aax1a,_0xd1aax1b,_0xd1aax1c,_0xd1aax1d,_0xd1aax1e,_0xd1aax1f){var _0xd1aax20=0;if(mxClient[_0xa5e5[41]]&&document[_0xa5e5[42]]!=9){_0xd1aax20=60};_0xd1aax1b+=_0xd1aax20;_0xd1aax1c+=_0xd1aax20;var _0xd1aax21=Math[_0xa5e5[46]](0,Math[_0xa5e5[45]]((document[_0xa5e5[44]][_0xa5e5[43]]-_0xd1aax1b)/2));var _0xd1aax22=Math[_0xa5e5[46]](0,Math[_0xa5e5[45]]((Math[_0xa5e5[46]](document[_0xa5e5[44]][_0xa5e5[47]],document[_0xa5e5[48]][_0xa5e5[47]])-_0xd1aax1c)/3));var _0xd1aax23=_0xd1aax8[_0xa5e5[50]](_0xa5e5[49]);_0xd1aax23[_0xa5e5[31]]=_0xa5e5[51];_0xd1aax23[_0xa5e5[53]][_0xa5e5[52]]=_0xa5e5[54];_0xd1aax23[_0xa5e5[53]][_0xa5e5[55]]=_0xa5e5[56];var _0xd1aax24=_0xd1aax8[_0xa5e5[50]](_0xa5e5[57]);_0xd1aax24[_0xa5e5[31]]=_0xa5e5[58];_0xd1aax24[_0xa5e5[25]](_0xd1aax1a);_0xd1aax23[_0xa5e5[25]](_0xd1aax24);if(this[_0xa5e5[59]]==null){this[_0xa5e5[59]]=_0xd1aax8[_0xa5e5[50]](_0xa5e5[60]);this[_0xa5e5[59]][_0xa5e5[31]]=_0xa5e5[61];if(mxClient[_0xa5e5[62]]){ new mxDivResizer(this[_0xa5e5[59]])}};if(_0xd1aax1d){document[_0xa5e5[44]][_0xa5e5[25]](this[_0xa5e5[59]])};document[_0xa5e5[44]][_0xa5e5[25]](_0xd1aax23);this[_0xa5e5[63]]=_0xd1aax1f;this[_0xa5e5[64]]=_0xd1aax23}Dialog[_0xa5e5[66]][_0xa5e5[65]]=function(){if(this[_0xa5e5[63]]!=null){this[_0xa5e5[63]]();this[_0xa5e5[63]]=null};this[_0xa5e5[64]][_0xa5e5[68]][_0xa5e5[67]](this[_0xa5e5[64]]);this[_0xa5e5[59]][_0xa5e5[68]][_0xa5e5[67]](this[_0xa5e5[59]])};function ImportDialog(_0xd1aax8){var _0xd1aax26=_0xd1aax8[_0xa5e5[50]](_0xa5e5[69]);var _0xd1aax27=_0xd1aax8[_0xa5e5[50]](_0xa5e5[70]);var _0xd1aax28=_0xd1aax8[_0xa5e5[50]](_0xa5e5[71]);var _0xd1aax29=_0xd1aax8[_0xa5e5[50]](_0xa5e5[72]);var _0xd1aax2a=_0xd1aax8[_0xa5e5[74]](_0xa5e5[73]);mxUtils[_0xa5e5[78]](_0xd1aax2a,mxResources[_0xa5e5[76]](_0xa5e5[75])+_0xa5e5[77]);var _0xd1aax2b=mxUtils[_0xa5e5[80]](_0xa5e5[40],function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax2b[_0xa5e5[31]]=_0xa5e5[65];_0xd1aax27[_0xa5e5[25]](_0xd1aax2b);_0xd1aax27[_0xa5e5[25]](_0xd1aax2a);var _0xd1aax2c=_0xd1aax8[_0xa5e5[50]](_0xa5e5[81]);var _0xd1aax2d=_0xd1aax8[_0xa5e5[50]](_0xa5e5[82]);var _0xd1aax2e=document[_0xa5e5[2]](_0xa5e5[83]);_0xd1aax2e[_0xa5e5[53]][_0xa5e5[84]]=_0xa5e5[85];_0xd1aax2e[_0xa5e5[53]][_0xa5e5[86]]=_0xa5e5[87];var _0xd1aax3=document[_0xa5e5[2]](_0xa5e5[1]);_0xd1aax3[_0xa5e5[3]]=_0xa5e5[88];_0xd1aax3[_0xa5e5[5]](_0xa5e5[89],_0xa5e5[90]);_0xd1aax3[_0xa5e5[100]](_0xa5e5[91],function _0xd1aax2f(_0xd1aax30){var _0xd1aax31=_0xd1aax30[_0xa5e5[93]][_0xa5e5[92]][0];console[_0xa5e5[94]](_0xd1aax31);if(_0xd1aax31){if(_0xd1aax31[_0xa5e5[3]]===_0xa5e5[90]){var _0xd1aax32= new FileReader();_0xd1aax32[_0xa5e5[95]]=function(_0xd1aax33){var _0xd1aax34=_0xd1aax33[_0xa5e5[93]][_0xa5e5[96]];mxUtils[_0xa5e5[78]](_0xd1aax2e,_0xd1aax34)};_0xd1aax32[_0xa5e5[97]](_0xd1aax31)}else {alert(_0xa5e5[98])}}else {alert(_0xa5e5[99])}},false);_0xd1aax2d[_0xa5e5[25]](_0xd1aax3);_0xd1aax2d[_0xa5e5[25]](_0xd1aax2e);_0xd1aax2c[_0xa5e5[25]](_0xd1aax2d);_0xd1aax28[_0xa5e5[25]](_0xd1aax2c);var _0xd1aax35=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[75]),mxUtils[_0xa5e5[103]](this,function(_0xd1aax36){var _0xd1aax37=mxUtils[_0xa5e5[101]](_0xd1aax2e[_0xa5e5[23]]);_0xd1aax8[_0xa5e5[13]][_0xa5e5[102]](_0xd1aax37[_0xa5e5[48]]);_0xd1aax8[_0xa5e5[79]]()}));_0xd1aax35[_0xa5e5[31]]=_0xa5e5[104];var _0xd1aax38=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[105]),function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax38[_0xa5e5[31]]=_0xa5e5[106];_0xd1aax29[_0xa5e5[25]](_0xd1aax35);_0xd1aax29[_0xa5e5[25]](_0xd1aax38);_0xd1aax26[_0xa5e5[25]](_0xd1aax27);_0xd1aax26[_0xa5e5[25]](_0xd1aax28);_0xd1aax26[_0xa5e5[25]](_0xd1aax29);this[_0xa5e5[64]]=_0xd1aax26}function AboutDialog(_0xd1aax8){var _0xd1aax26=_0xd1aax8[_0xa5e5[50]](_0xa5e5[69]);var _0xd1aax27=_0xd1aax8[_0xa5e5[50]](_0xa5e5[70]);var _0xd1aax28=_0xd1aax8[_0xa5e5[50]](_0xa5e5[71]);var _0xd1aax29=_0xd1aax8[_0xa5e5[50]](_0xa5e5[72]);var _0xd1aax2a=_0xd1aax8[_0xa5e5[74]](_0xa5e5[73]);mxUtils[_0xa5e5[78]](_0xd1aax2a,mxResources[_0xa5e5[76]](_0xa5e5[107])+_0xa5e5[108]);var _0xd1aax2b=mxUtils[_0xa5e5[80]](_0xa5e5[40],function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax2b[_0xa5e5[31]]=_0xa5e5[65];_0xd1aax27[_0xa5e5[25]](_0xd1aax2b);_0xd1aax27[_0xa5e5[25]](_0xd1aax2a);var _0xd1aax3a=document[_0xa5e5[2]](_0xa5e5[109]);_0xd1aax3a[_0xa5e5[53]][_0xa5e5[110]]=_0xa5e5[111];_0xd1aax3a[_0xa5e5[5]](_0xa5e5[84],_0xa5e5[112]);_0xd1aax3a[_0xa5e5[5]](_0xa5e5[84],_0xa5e5[113]);_0xd1aax3a[_0xa5e5[5]](_0xa5e5[114],IMAGE_PATH+_0xa5e5[115]);_0xd1aax28[_0xa5e5[25]](_0xd1aax3a);mxUtils[_0xa5e5[116]](_0xd1aax28);mxUtils[_0xa5e5[78]](_0xd1aax28,_0xa5e5[117]+mxClient[_0xa5e5[118]]);mxUtils[_0xa5e5[116]](_0xd1aax28);var _0xd1aax3b=document[_0xa5e5[2]](_0xa5e5[119]);_0xd1aax3b[_0xa5e5[5]](_0xa5e5[120],_0xa5e5[121]);_0xd1aax3b[_0xa5e5[5]](_0xa5e5[93],_0xa5e5[122]);mxUtils[_0xa5e5[78]](_0xd1aax3b,_0xa5e5[123]);_0xd1aax28[_0xa5e5[25]](_0xd1aax3b);mxUtils[_0xa5e5[116]](_0xd1aax28);mxUtils[_0xa5e5[116]](_0xd1aax28);var _0xd1aax38=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[65]),function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax38[_0xa5e5[31]]=_0xa5e5[106];_0xd1aax29[_0xa5e5[25]](_0xd1aax38);_0xd1aax26[_0xa5e5[25]](_0xd1aax27);_0xd1aax26[_0xa5e5[25]](_0xd1aax28);_0xd1aax26[_0xa5e5[25]](_0xd1aax29);this[_0xa5e5[64]]=_0xd1aax26}function SaveDialog(_0xd1aax8){var _0xd1aax26=_0xd1aax8[_0xa5e5[50]](_0xa5e5[69]);var _0xd1aax27=_0xd1aax8[_0xa5e5[50]](_0xa5e5[70]);var _0xd1aax28=_0xd1aax8[_0xa5e5[50]](_0xa5e5[71]);var _0xd1aax29=_0xd1aax8[_0xa5e5[50]](_0xa5e5[72]);var _0xd1aax2a=_0xd1aax8[_0xa5e5[74]](_0xa5e5[73]);mxUtils[_0xa5e5[78]](_0xd1aax2a,mxResources[_0xa5e5[76]](_0xa5e5[124]));var _0xd1aax2b=mxUtils[_0xa5e5[80]](_0xa5e5[40],function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax2b[_0xa5e5[31]]=_0xa5e5[65];_0xd1aax27[_0xa5e5[25]](_0xd1aax2b);_0xd1aax27[_0xa5e5[25]](_0xd1aax2a);var _0xd1aax3d=_0xa5e5[125];var _0xd1aax3e=_0xa5e5[126]+_0xd1aax3d;var _0xd1aax2=_0xd1aax8[_0xa5e5[13]][_0xa5e5[127]]();var _0xd1aax2c=_0xd1aax8[_0xa5e5[50]](_0xa5e5[81]);var _0xd1aax2d=_0xd1aax8[_0xa5e5[50]](_0xa5e5[128]);var _0xd1aax3f=_0xd1aax8[_0xa5e5[50]](_0xa5e5[129]);var _0xd1aax40=document[_0xa5e5[2]](_0xa5e5[130]);_0xd1aax40[_0xa5e5[31]]=_0xa5e5[131];mxUtils[_0xa5e5[78]](_0xd1aax40,mxResources[_0xa5e5[76]](_0xd1aax3d));_0xd1aax2d[_0xa5e5[25]](_0xd1aax40);var _0xd1aax41=document[_0xa5e5[2]](_0xa5e5[1]);_0xd1aax41[_0xa5e5[5]](_0xa5e5[23],_0xd1aax2+_0xa5e5[132]);_0xd1aax41[_0xa5e5[5]](_0xa5e5[133],_0xd1aax3e);_0xd1aax41[_0xa5e5[31]]=_0xa5e5[134];_0xd1aax3f[_0xa5e5[25]](_0xd1aax41);_0xd1aax2c[_0xa5e5[25]](_0xd1aax2d);_0xd1aax2c[_0xa5e5[25]](_0xd1aax3f);_0xd1aax28[_0xa5e5[25]](_0xd1aax2c);var _0xd1aax35=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[135]),function(){_0xd1aax8[_0xa5e5[124]](_0xd1aax41[_0xa5e5[23]]);_0xd1aax8[_0xa5e5[79]]()});_0xd1aax35[_0xa5e5[31]]=_0xa5e5[104];var _0xd1aax38=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[105]),function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax38[_0xa5e5[31]]=_0xa5e5[106];_0xd1aax29[_0xa5e5[25]](_0xd1aax35);_0xd1aax29[_0xa5e5[25]](_0xd1aax38);_0xd1aax26[_0xa5e5[25]](_0xd1aax27);_0xd1aax26[_0xa5e5[25]](_0xd1aax28);_0xd1aax26[_0xa5e5[25]](_0xd1aax29);this[_0xa5e5[64]]=_0xd1aax26}function NewDialog(_0xd1aax8){var _0xd1aax26=_0xd1aax8[_0xa5e5[50]](_0xa5e5[69]);var _0xd1aax27=_0xd1aax8[_0xa5e5[50]](_0xa5e5[70]);var _0xd1aax28=_0xd1aax8[_0xa5e5[50]](_0xa5e5[71]);var _0xd1aax29=_0xd1aax8[_0xa5e5[50]](_0xa5e5[72]);var _0xd1aax2a=_0xd1aax8[_0xa5e5[74]](_0xa5e5[73]);mxUtils[_0xa5e5[78]](_0xd1aax2a,mxResources[_0xa5e5[76]](_0xa5e5[136]));var _0xd1aax2b=mxUtils[_0xa5e5[80]](_0xa5e5[40],function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax2b[_0xa5e5[31]]=_0xa5e5[65];_0xd1aax27[_0xa5e5[25]](_0xd1aax2b);_0xd1aax27[_0xa5e5[25]](_0xd1aax2a);var _0xd1aax3d=_0xa5e5[125];var _0xd1aax3e=_0xa5e5[126]+_0xd1aax3d;var _0xd1aax2=_0xd1aax8[_0xa5e5[13]][_0xa5e5[127]]();var _0xd1aax2c=_0xd1aax8[_0xa5e5[50]](_0xa5e5[81]);var _0xd1aax2d=_0xd1aax8[_0xa5e5[50]](_0xa5e5[128]);var _0xd1aax3f=_0xd1aax8[_0xa5e5[50]](_0xa5e5[129]);var _0xd1aax40=document[_0xa5e5[2]](_0xa5e5[130]);_0xd1aax40[_0xa5e5[31]]=_0xa5e5[131];mxUtils[_0xa5e5[78]](_0xd1aax40,mxResources[_0xa5e5[76]](_0xd1aax3d));_0xd1aax2d[_0xa5e5[25]](_0xd1aax40);var _0xd1aax41=document[_0xa5e5[2]](_0xa5e5[1]);_0xd1aax41[_0xa5e5[5]](_0xa5e5[23],_0xd1aax2+_0xa5e5[137]);_0xd1aax41[_0xa5e5[5]](_0xa5e5[133],_0xd1aax3e);_0xd1aax41[_0xa5e5[31]]=_0xa5e5[134];_0xd1aax3f[_0xa5e5[25]](_0xd1aax41);_0xd1aax2c[_0xa5e5[25]](_0xd1aax2d);_0xd1aax2c[_0xa5e5[25]](_0xd1aax3f);_0xd1aax28[_0xa5e5[25]](_0xd1aax2c);var _0xd1aax35=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[136]),function(){_0xd1aax8[_0xa5e5[136]](_0xd1aax41[_0xa5e5[23]]);_0xd1aax8[_0xa5e5[79]]()});_0xd1aax35[_0xa5e5[31]]=_0xa5e5[104];var _0xd1aax38=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[105]),function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax38[_0xa5e5[31]]=_0xa5e5[106];_0xd1aax29[_0xa5e5[25]](_0xd1aax35);_0xd1aax29[_0xa5e5[25]](_0xd1aax38);_0xd1aax26[_0xa5e5[25]](_0xd1aax27);_0xd1aax26[_0xa5e5[25]](_0xd1aax28);_0xd1aax26[_0xa5e5[25]](_0xd1aax29);this[_0xa5e5[64]]=_0xd1aax26}function VariableDialog(_0xd1aax8){var _0xd1aax26=_0xd1aax8[_0xa5e5[50]](_0xa5e5[69]);var _0xd1aax27=_0xd1aax8[_0xa5e5[50]](_0xa5e5[70]);var _0xd1aax28=_0xd1aax8[_0xa5e5[50]](_0xa5e5[71]);var _0xd1aax29=_0xd1aax8[_0xa5e5[50]](_0xa5e5[72]);var _0xd1aax2a=_0xd1aax8[_0xa5e5[74]](_0xa5e5[73]);mxUtils[_0xa5e5[78]](_0xd1aax2a,mxResources[_0xa5e5[76]](_0xa5e5[138]));var _0xd1aax2b=mxUtils[_0xa5e5[80]](_0xa5e5[40],function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax2b[_0xa5e5[31]]=_0xa5e5[65];_0xd1aax27[_0xa5e5[25]](_0xd1aax2b);_0xd1aax27[_0xa5e5[25]](_0xd1aax2a);var _0xd1aax3d=_0xa5e5[125];var _0xd1aax3e=_0xa5e5[126]+_0xd1aax3d;var _0xd1aax2=_0xd1aax8[_0xa5e5[13]][_0xa5e5[127]]();var _0xd1aax2c=_0xd1aax8[_0xa5e5[50]](_0xa5e5[81]);var _0xd1aax2d=_0xd1aax8[_0xa5e5[50]](_0xa5e5[128]);var _0xd1aax3f=_0xd1aax8[_0xa5e5[50]](_0xa5e5[129]);var _0xd1aax40=document[_0xa5e5[2]](_0xa5e5[130]);_0xd1aax40[_0xa5e5[31]]=_0xa5e5[131];mxUtils[_0xa5e5[78]](_0xd1aax40,mxResources[_0xa5e5[76]](_0xd1aax3d));_0xd1aax2d[_0xa5e5[25]](_0xd1aax40);var _0xd1aax41=document[_0xa5e5[2]](_0xa5e5[1]);_0xd1aax41[_0xa5e5[5]](_0xa5e5[23],_0xa5e5[139]);_0xd1aax41[_0xa5e5[5]](_0xa5e5[133],_0xd1aax3e);_0xd1aax41[_0xa5e5[31]]=_0xa5e5[134];_0xd1aax3f[_0xa5e5[25]](_0xd1aax41);_0xd1aax2c[_0xa5e5[25]](_0xd1aax2d);_0xd1aax2c[_0xa5e5[25]](_0xd1aax3f);_0xd1aax28[_0xa5e5[25]](_0xd1aax2c);var _0xd1aax35=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[136]),function(){_0xd1aax8[_0xa5e5[138]](_0xd1aax41[_0xa5e5[23]]);_0xd1aax8[_0xa5e5[79]]()});_0xd1aax35[_0xa5e5[31]]=_0xa5e5[104];var _0xd1aax38=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[105]),function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax38[_0xa5e5[31]]=_0xa5e5[106];_0xd1aax29[_0xa5e5[25]](_0xd1aax35);_0xd1aax29[_0xa5e5[25]](_0xd1aax38);_0xd1aax26[_0xa5e5[25]](_0xd1aax27);_0xd1aax26[_0xa5e5[25]](_0xd1aax28);_0xd1aax26[_0xa5e5[25]](_0xd1aax29);this[_0xa5e5[64]]=_0xd1aax26}function OpenDialog(_0xd1aax8){var _0xd1aax26=_0xd1aax8[_0xa5e5[50]](_0xa5e5[69]);var _0xd1aax27=_0xd1aax8[_0xa5e5[50]](_0xa5e5[70]);var _0xd1aax28=_0xd1aax8[_0xa5e5[50]](_0xa5e5[71]);var _0xd1aax29=_0xd1aax8[_0xa5e5[50]](_0xa5e5[72]);var _0xd1aax2a=_0xd1aax8[_0xa5e5[74]](_0xa5e5[73]);mxUtils[_0xa5e5[78]](_0xd1aax2a,mxResources[_0xa5e5[76]](_0xa5e5[8]));var _0xd1aax2b=mxUtils[_0xa5e5[80]](_0xa5e5[40],function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax2b[_0xa5e5[31]]=_0xa5e5[65];_0xd1aax27[_0xa5e5[25]](_0xd1aax2b);_0xd1aax27[_0xa5e5[25]](_0xd1aax2a);var _0xd1aax2c=_0xd1aax8[_0xa5e5[50]](_0xa5e5[81]);var _0xd1aax2d=_0xd1aax8[_0xa5e5[50]](_0xa5e5[128]);var _0xd1aax3f=_0xd1aax8[_0xa5e5[50]](_0xa5e5[129]);var _0xd1aax40=document[_0xa5e5[2]](_0xa5e5[130]);_0xd1aax40[_0xa5e5[31]]=_0xa5e5[131];mxUtils[_0xa5e5[78]](_0xd1aax40,mxResources[_0xa5e5[76]](_0xa5e5[125]));_0xd1aax2d[_0xa5e5[25]](_0xd1aax40);var _0xd1aaxb= new XMLHttpRequest();_0xd1aaxb[_0xa5e5[8]](_0xa5e5[7],_0xa5e5[140],false);_0xd1aaxb[_0xa5e5[14]](_0xa5e5[9],_0xa5e5[10]+_0xd1aax8[_0xa5e5[13]][_0xa5e5[12]][_0xa5e5[11]]);_0xd1aaxb[_0xa5e5[15]](null);var _0xd1aaxc=[];if(_0xd1aaxb[_0xa5e5[16]]===200){_0xd1aaxc=JSON[_0xa5e5[18]](_0xd1aaxb[_0xa5e5[17]])};var _0xd1aax41=document[_0xa5e5[2]](_0xa5e5[19]);for(var _0xd1aax45=0;_0xd1aax45<_0xd1aaxc[_0xa5e5[141]];_0xd1aax45++){var _0xd1aaxd=document[_0xa5e5[2]](_0xa5e5[20]);_0xd1aaxd[_0xa5e5[21]]=_0xd1aaxc[_0xd1aax45][_0xa5e5[125]];_0xd1aaxd[_0xa5e5[23]]=_0xd1aaxc[_0xd1aax45][_0xa5e5[133]];_0xd1aax41[_0xa5e5[25]](_0xd1aaxd)};_0xd1aax41[_0xa5e5[31]]=_0xa5e5[134];_0xd1aax3f[_0xa5e5[25]](_0xd1aax41);_0xd1aax2c[_0xa5e5[25]](_0xd1aax2d);_0xd1aax2c[_0xa5e5[25]](_0xd1aax3f);_0xd1aax28[_0xa5e5[25]](_0xd1aax2c);var _0xd1aax35=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[8]),function(){console[_0xa5e5[94]](_0xd1aax41);console[_0xa5e5[94]](_0xd1aax41[_0xa5e5[23]]);window[_0xa5e5[8]](_0xa5e5[142]+_0xd1aax41[_0xa5e5[23]],_0xa5e5[122]);_0xd1aax8[_0xa5e5[79]]()});_0xd1aax35[_0xa5e5[31]]=_0xa5e5[104];var _0xd1aax38=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[105]),function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax38[_0xa5e5[31]]=_0xa5e5[106];_0xd1aax29[_0xa5e5[25]](_0xd1aax35);_0xd1aax29[_0xa5e5[25]](_0xd1aax38);_0xd1aax26[_0xa5e5[25]](_0xd1aax27);_0xd1aax26[_0xa5e5[25]](_0xd1aax28);_0xd1aax26[_0xa5e5[25]](_0xd1aax29);this[_0xa5e5[64]]=_0xd1aax26}function RenameDialog(_0xd1aax8){var _0xd1aax26=_0xd1aax8[_0xa5e5[50]](_0xa5e5[69]);var _0xd1aax27=_0xd1aax8[_0xa5e5[50]](_0xa5e5[70]);var _0xd1aax28=_0xd1aax8[_0xa5e5[50]](_0xa5e5[71]);var _0xd1aax29=_0xd1aax8[_0xa5e5[50]](_0xa5e5[72]);var _0xd1aax2a=_0xd1aax8[_0xa5e5[74]](_0xa5e5[73]);mxUtils[_0xa5e5[78]](_0xd1aax2a,mxResources[_0xa5e5[76]](_0xa5e5[143]));var _0xd1aax2b=mxUtils[_0xa5e5[80]](_0xa5e5[40],function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax2b[_0xa5e5[31]]=_0xa5e5[65];_0xd1aax27[_0xa5e5[25]](_0xd1aax2b);_0xd1aax27[_0xa5e5[25]](_0xd1aax2a);var _0xd1aax2c=_0xd1aax8[_0xa5e5[50]](_0xa5e5[81]);var _0xd1aax2d=_0xd1aax8[_0xa5e5[50]](_0xa5e5[128]);var _0xd1aax3f=_0xd1aax8[_0xa5e5[50]](_0xa5e5[129]);var _0xd1aax40=document[_0xa5e5[2]](_0xa5e5[130]);_0xd1aax40[_0xa5e5[31]]=_0xa5e5[131];mxUtils[_0xa5e5[78]](_0xd1aax40,mxResources[_0xa5e5[76]](_0xa5e5[125]));_0xd1aax2d[_0xa5e5[25]](_0xd1aax40);var _0xd1aax3d=_0xd1aax8[_0xa5e5[13]][_0xa5e5[144]];var _0xd1aax3=document[_0xa5e5[2]](_0xa5e5[1]);_0xd1aax3[_0xa5e5[5]](_0xa5e5[23],_0xd1aax3d);_0xd1aax3[_0xa5e5[31]]=_0xa5e5[134];_0xd1aax3f[_0xa5e5[25]](_0xd1aax3);_0xd1aax2c[_0xa5e5[25]](_0xd1aax2d);_0xd1aax2c[_0xa5e5[25]](_0xd1aax3f);_0xd1aax28[_0xa5e5[25]](_0xd1aax2c);var _0xd1aax35=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[135]),function(){var _0xd1aaxb= new XMLHttpRequest();_0xd1aaxb[_0xa5e5[8]](_0xa5e5[145],SAVE_URL+_0xd1aax8[_0xa5e5[13]][_0xa5e5[12]][_0xa5e5[133]],true);_0xd1aaxb[_0xa5e5[14]](_0xa5e5[146],_0xa5e5[147]);_0xd1aaxb[_0xa5e5[14]](_0xa5e5[9],_0xa5e5[10]+_0xd1aax8[_0xa5e5[13]][_0xa5e5[12]][_0xa5e5[11]]);_0xd1aaxb[_0xa5e5[15]](_0xa5e5[148]+_0xd1aax3[_0xa5e5[23]]);_0xd1aaxb[_0xa5e5[95]]=function(_0xd1aax33){if(_0xd1aaxb[_0xa5e5[16]]===200){_0xd1aax8[_0xa5e5[13]][_0xa5e5[150]](_0xa5e5[149]);_0xd1aax8[_0xa5e5[13]][_0xa5e5[144]]=_0xd1aax3[_0xa5e5[23]]}else {console[_0xa5e5[94]](_0xd1aaxb[_0xa5e5[17]]);_0xd1aax8[_0xa5e5[13]][_0xa5e5[150]](JSON[_0xa5e5[18]](_0xd1aaxb[_0xa5e5[17]])[_0xa5e5[152]][0][_0xa5e5[151]])}};_0xd1aaxb[_0xa5e5[153]]=function(_0xd1aax33){mxUtils[_0xa5e5[155]](_0xd1aaxb[_0xa5e5[154]])};_0xd1aax8[_0xa5e5[79]]()});_0xd1aax35[_0xa5e5[31]]=_0xa5e5[104];var _0xd1aax38=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[105]),function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax38[_0xa5e5[31]]=_0xa5e5[106];_0xd1aax29[_0xa5e5[25]](_0xd1aax35);_0xd1aax29[_0xa5e5[25]](_0xd1aax38);_0xd1aax26[_0xa5e5[25]](_0xd1aax27);_0xd1aax26[_0xa5e5[25]](_0xd1aax28);_0xd1aax26[_0xa5e5[25]](_0xd1aax29);this[_0xa5e5[64]]=_0xd1aax26}function EditFileDialog(_0xd1aax8){var _0xd1aax26=_0xd1aax8[_0xa5e5[50]](_0xa5e5[69]);var _0xd1aax27=_0xd1aax8[_0xa5e5[50]](_0xa5e5[70]);var _0xd1aax28=_0xd1aax8[_0xa5e5[50]](_0xa5e5[71]);var _0xd1aax29=_0xd1aax8[_0xa5e5[50]](_0xa5e5[72]);var _0xd1aax2a=_0xd1aax8[_0xa5e5[74]](_0xa5e5[73]);mxUtils[_0xa5e5[78]](_0xd1aax2a,mxResources[_0xa5e5[76]](_0xa5e5[156]));var _0xd1aax2b=mxUtils[_0xa5e5[80]](_0xa5e5[40],function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax2b[_0xa5e5[31]]=_0xa5e5[65];_0xd1aax27[_0xa5e5[25]](_0xd1aax2b);_0xd1aax27[_0xa5e5[25]](_0xd1aax2a);var _0xd1aax2c=_0xd1aax8[_0xa5e5[50]](_0xa5e5[81]);var _0xd1aax2d=_0xd1aax8[_0xa5e5[50]](_0xa5e5[82]);var _0xd1aax2e=document[_0xa5e5[2]](_0xa5e5[83]);_0xd1aax2e[_0xa5e5[53]][_0xa5e5[84]]=_0xa5e5[85];_0xd1aax2e[_0xa5e5[53]][_0xa5e5[86]]=_0xa5e5[87];_0xd1aax2e[_0xa5e5[23]]=mxUtils[_0xa5e5[158]](_0xd1aax8[_0xa5e5[13]][_0xa5e5[157]]());if(fileSupport){function _0xd1aax48(_0xd1aax30){_0xd1aax30[_0xa5e5[159]]();_0xd1aax30[_0xa5e5[160]]();if(_0xd1aax30[_0xa5e5[161]][_0xa5e5[92]][_0xa5e5[141]]>0){var _0xd1aax49=_0xd1aax30[_0xa5e5[161]][_0xa5e5[92]][0];var _0xd1aax4a= new FileReader();_0xd1aax4a[_0xa5e5[95]]=function(_0xd1aax33){_0xd1aax2e[_0xa5e5[23]]=_0xd1aax33[_0xa5e5[93]][_0xa5e5[96]]};_0xd1aax4a[_0xa5e5[97]](_0xd1aax49)}}function _0xd1aax4b(_0xd1aax30){_0xd1aax30[_0xa5e5[159]]();_0xd1aax30[_0xa5e5[160]]()}_0xd1aax2e[_0xa5e5[100]](_0xa5e5[162],_0xd1aax4b,false);_0xd1aax2e[_0xa5e5[100]](_0xa5e5[163],_0xd1aax48,false)};_0xd1aax2d[_0xa5e5[25]](_0xd1aax2e);_0xd1aax2c[_0xa5e5[25]](_0xd1aax2d);_0xd1aax28[_0xa5e5[25]](_0xd1aax2c);var _0xd1aax35=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[135]),function(){var _0xd1aax37=mxUtils[_0xa5e5[101]](_0xd1aax2e[_0xa5e5[23]]);_0xd1aax8[_0xa5e5[13]][_0xa5e5[102]](_0xd1aax37[_0xa5e5[48]]);_0xd1aax8[_0xa5e5[79]]()});_0xd1aax35[_0xa5e5[31]]=_0xa5e5[104];var _0xd1aax38=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[105]),function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax38[_0xa5e5[31]]=_0xa5e5[106];_0xd1aax29[_0xa5e5[25]](_0xd1aax35);_0xd1aax29[_0xa5e5[25]](_0xd1aax38);_0xd1aax26[_0xa5e5[25]](_0xd1aax27);_0xd1aax26[_0xa5e5[25]](_0xd1aax28);_0xd1aax26[_0xa5e5[25]](_0xd1aax29);this[_0xa5e5[64]]=_0xd1aax26}function ExportDialog(_0xd1aax8){var _0xd1aax26=_0xd1aax8[_0xa5e5[50]](_0xa5e5[69]);var _0xd1aax27=_0xd1aax8[_0xa5e5[50]](_0xa5e5[70]);var _0xd1aax28=_0xd1aax8[_0xa5e5[50]](_0xa5e5[164]);var _0xd1aax29=_0xd1aax8[_0xa5e5[50]](_0xa5e5[72]);var _0xd1aax2a=_0xd1aax8[_0xa5e5[74]](_0xa5e5[73]);mxUtils[_0xa5e5[78]](_0xd1aax2a,mxResources[_0xa5e5[76]](_0xa5e5[165])+_0xa5e5[77]);var _0xd1aax2b=mxUtils[_0xa5e5[80]](_0xa5e5[40],function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax2b[_0xa5e5[31]]=_0xa5e5[65];_0xd1aax27[_0xa5e5[25]](_0xd1aax2b);_0xd1aax27[_0xa5e5[25]](_0xd1aax2a);var _0xd1aax4d=_0xd1aax8[_0xa5e5[50]](_0xa5e5[166]);var _0xd1aax4e=_0xd1aax8[_0xa5e5[50]](_0xa5e5[167]);var _0xd1aax40=document[_0xa5e5[2]](_0xa5e5[130]);_0xd1aax40[_0xa5e5[31]]=_0xa5e5[168];mxUtils[_0xa5e5[78]](_0xd1aax40,mxResources[_0xa5e5[76]](_0xa5e5[144]));var _0xd1aax3=document[_0xa5e5[2]](_0xa5e5[1]);_0xd1aax3[_0xa5e5[5]](_0xa5e5[23],_0xd1aax8[_0xa5e5[13]][_0xa5e5[127]]());_0xd1aax3[_0xa5e5[31]]=_0xa5e5[134];var _0xd1aax23=_0xd1aax8[_0xa5e5[50]](_0xa5e5[169]);_0xd1aax23[_0xa5e5[25]](_0xd1aax3);_0xd1aax4e[_0xa5e5[25]](_0xd1aax40);_0xd1aax4e[_0xa5e5[25]](_0xd1aax23);_0xd1aax4d[_0xa5e5[25]](_0xd1aax4e);_0xd1aax28[_0xa5e5[25]](_0xd1aax4d);var _0xd1aax35=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[165]),mxUtils[_0xa5e5[103]](this,function(_0xd1aax36){_0xd1aax8[_0xa5e5[135]](false);var _0xd1aax4f=encodeURIComponent(mxUtils[_0xa5e5[170]](_0xd1aax8[_0xa5e5[13]][_0xa5e5[157]]())); new mxXmlRequest(SAVE_URL+_0xd1aax8[_0xa5e5[13]][_0xa5e5[12]][_0xa5e5[133]]+_0xa5e5[172],_0xa5e5[173]+_0xd1aax3[_0xa5e5[23]],_0xa5e5[7])[_0xa5e5[171]](document,_0xa5e5[122]);_0xd1aax8[_0xa5e5[79]]()}));_0xd1aax35[_0xa5e5[31]]=_0xa5e5[104];var _0xd1aax38=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[105]),function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax38[_0xa5e5[31]]=_0xa5e5[106];_0xd1aax29[_0xa5e5[25]](_0xd1aax35);_0xd1aax29[_0xa5e5[25]](_0xd1aax38);_0xd1aax26[_0xa5e5[25]](_0xd1aax27);_0xd1aax26[_0xa5e5[25]](_0xd1aax28);_0xd1aax26[_0xa5e5[25]](_0xd1aax29);this[_0xa5e5[64]]=_0xd1aax26}function GeneralDialog(_0xd1aax8,_0xd1aax51){var _0xd1aax52=_0xd1aax8[_0xa5e5[13]][_0xa5e5[174]];var _0xd1aax26=_0xd1aax8[_0xa5e5[50]](_0xa5e5[69]);var _0xd1aax27=_0xd1aax8[_0xa5e5[50]](_0xa5e5[70]);var _0xd1aax28=_0xd1aax8[_0xa5e5[50]](_0xa5e5[175]);var _0xd1aax29=_0xd1aax8[_0xa5e5[50]](_0xa5e5[72]);var _0xd1aax2a=_0xd1aax8[_0xa5e5[74]](_0xa5e5[73]);mxUtils[_0xa5e5[78]](_0xd1aax2a,mxResources[_0xa5e5[76]](_0xa5e5[156])+_0xa5e5[176]+mxResources[_0xa5e5[76]](_0xd1aax51[_0xa5e5[23]][_0xa5e5[177]]));var _0xd1aax2b=mxUtils[_0xa5e5[80]](_0xa5e5[40],function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax2b[_0xa5e5[31]]=_0xa5e5[65];_0xd1aax27[_0xa5e5[25]](_0xd1aax2b);_0xd1aax27[_0xa5e5[25]](_0xd1aax2a);var _0xd1aax53=_0xd1aax51[_0xa5e5[23]][_0xa5e5[178]][_0xa5e5[141]];var _0xd1aax4d=_0xd1aax8[_0xa5e5[50]](_0xa5e5[166]);for(var _0xd1aax54=0;_0xd1aax54<_0xd1aax53;_0xd1aax54++){var _0xd1aax3d=_0xd1aax51[_0xa5e5[23]][_0xa5e5[178]][_0xd1aax54][_0xa5e5[125]];var _0xd1aax3e=_0xa5e5[126]+_0xd1aax3d;var _0xd1aax2=_0xd1aax51[_0xa5e5[23]][_0xa5e5[178]][_0xd1aax54][_0xa5e5[23]];var _0xd1aax4e=_0xd1aax8[_0xa5e5[50]]((_0xd1aax54==_0xd1aax53-1)?_0xa5e5[167]:_0xa5e5[179]);var _0xd1aax40=document[_0xa5e5[2]](_0xa5e5[130]);_0xd1aax40[_0xa5e5[31]]=_0xa5e5[168];mxUtils[_0xa5e5[78]](_0xd1aax40,mxResources[_0xa5e5[76]](_0xd1aax3d));_0xd1aax4e[_0xa5e5[25]](_0xd1aax40);var _0xd1aax3;switch(_0xd1aax3d){case _0xa5e5[181]:_0xd1aax3=createDropdownFromApi(_0xa5e5[180],_0xd1aax2,_0xa5e5[125],_0xa5e5[133],_0xd1aax8);break;case _0xa5e5[183]:_0xd1aax3=createDropdownFromApi(_0xa5e5[182],_0xd1aax2,_0xa5e5[125],_0xa5e5[125],_0xd1aax8);break;case _0xa5e5[185]:_0xd1aax3=createDropdownFromApi(_0xa5e5[184],_0xd1aax2,_0xa5e5[125],_0xa5e5[133],_0xd1aax8);break;case _0xa5e5[187]:_0xd1aax3=createDropdownFromApi(_0xa5e5[186],_0xd1aax2,_0xa5e5[125],_0xa5e5[133],_0xd1aax8);break;case _0xa5e5[189]:_0xd1aax3=createDropdownFromApi(_0xa5e5[188],_0xd1aax2,_0xa5e5[125],_0xa5e5[125],_0xd1aax8);break;case _0xa5e5[191]:_0xd1aax3=createDropdownFromApi(_0xa5e5[190],_0xd1aax2,_0xa5e5[191],_0xa5e5[133],_0xd1aax8,[_0xa5e5[191],_0xa5e5[189]],_0xa5e5[192]);break;case _0xa5e5[193]:_0xd1aax3=createDropdownFromArray(ISPEECHASRMODEL,_0xd1aax2);break;case _0xa5e5[194]:_0xd1aax3=createDropdownFromArray(ISPEECHASRLANG,_0xd1aax2);break;case _0xa5e5[195]:_0xd1aax3=createDropdownFromArray(ISPEECHLANG,_0xd1aax2);break;case _0xa5e5[196]:_0xd1aax3=createDropdownFromArray(GOOGLETTSLANG,_0xd1aax2);break;case _0xa5e5[199]:_0xd1aax3=createGroupedDropdownFromApi(_0xa5e5[197],_0xd1aax2,_0xa5e5[125],_0xa5e5[133],_0xd1aax8,_0xa5e5[198]);break;case _0xa5e5[200]:_0xd1aax3=createDropdownFromApi(_0xa5e5[140],_0xd1aax2,_0xa5e5[125],_0xa5e5[133],_0xd1aax8);break;case _0xa5e5[202]:_0xd1aax3=createDropdownFromApi(_0xa5e5[201],_0xd1aax2,_0xa5e5[125],_0xa5e5[133],_0xd1aax8);break;case _0xa5e5[205]:_0xd1aax3=createDropdownFromApi(_0xa5e5[203],_0xd1aax2,_0xa5e5[204],_0xa5e5[133],_0xd1aax8);break;case _0xa5e5[206]:;case _0xa5e5[207]:;case _0xa5e5[208]:;case _0xa5e5[209]:;case _0xa5e5[17]:;case _0xa5e5[212]:_0xd1aax3=document[_0xa5e5[2]](_0xa5e5[1]);_0xd1aax3[_0xa5e5[5]](_0xa5e5[3],_0xa5e5[210]);_0xd1aax3[_0xa5e5[5]](_0xa5e5[211],0);_0xd1aax3[_0xa5e5[5]](_0xa5e5[46],1000);_0xd1aax3[_0xa5e5[5]](_0xa5e5[23],_0xd1aax2);_0xd1aax3[_0xa5e5[31]]=_0xa5e5[134];break;case _0xa5e5[21]:;case _0xa5e5[213]:;case _0xa5e5[214]:;case _0xa5e5[215]:;case _0xa5e5[217]:_0xd1aax3=document[_0xa5e5[2]](_0xa5e5[83]);_0xd1aax3[_0xa5e5[216]]=_0xd1aax2;_0xd1aax3[_0xa5e5[31]]=_0xa5e5[134];break;default:_0xd1aax3=document[_0xa5e5[2]](_0xa5e5[1]);_0xd1aax3[_0xa5e5[5]](_0xa5e5[23],_0xd1aax2);_0xd1aax3[_0xa5e5[31]]=_0xa5e5[134];break};_0xd1aax3[_0xa5e5[5]](_0xa5e5[133],_0xd1aax3e);var _0xd1aax23=_0xd1aax8[_0xa5e5[50]](_0xa5e5[169]);_0xd1aax23[_0xa5e5[25]](_0xd1aax3);if(mxResources[_0xa5e5[76]](_0xa5e5[218]+_0xd1aax3d)){var _0xd1aax55=_0xd1aax8[_0xa5e5[50]](_0xa5e5[219]);_0xd1aax55[_0xa5e5[31]]=_0xa5e5[220];mxUtils[_0xa5e5[78]](_0xd1aax55,mxResources[_0xa5e5[76]](_0xa5e5[218]+_0xd1aax3d));_0xd1aax23[_0xa5e5[25]](_0xd1aax55)};_0xd1aax4e[_0xa5e5[25]](_0xd1aax23);_0xd1aax4d[_0xa5e5[25]](_0xd1aax4e)};_0xd1aax28[_0xa5e5[25]](_0xd1aax4d);var _0xd1aax35=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[135]),mxUtils[_0xa5e5[103]](this,function(_0xd1aax36){for(var _0xd1aax54=0;_0xd1aax54<_0xd1aax51[_0xa5e5[23]][_0xa5e5[178]][_0xa5e5[141]];_0xd1aax54++){var _0xd1aax3e=_0xa5e5[126]+_0xd1aax51[_0xa5e5[23]][_0xa5e5[178]][_0xd1aax54][_0xa5e5[125]];var _0xd1aax3d=_0xd1aax51[_0xa5e5[23]][_0xa5e5[178]][_0xd1aax54][_0xa5e5[125]];console[_0xa5e5[94]](_0xd1aax3d,document[_0xa5e5[221]](_0xd1aax3e)[_0xa5e5[23]]);_0xd1aax51[_0xa5e5[5]](_0xd1aax3d,document[_0xa5e5[221]](_0xd1aax3e)[_0xa5e5[23]])};_0xd1aax52[_0xa5e5[222]](_0xd1aax51);_0xd1aax8[_0xa5e5[79]]()}));_0xd1aax35[_0xa5e5[31]]=_0xa5e5[104];var _0xd1aax38=mxUtils[_0xa5e5[80]](mxResources[_0xa5e5[76]](_0xa5e5[105]),function(){_0xd1aax8[_0xa5e5[79]]()});_0xd1aax38[_0xa5e5[31]]=_0xa5e5[106];_0xd1aax29[_0xa5e5[25]](_0xd1aax35);_0xd1aax29[_0xa5e5[25]](_0xd1aax38);_0xd1aax26[_0xa5e5[25]](_0xd1aax27);_0xd1aax26[_0xa5e5[25]](_0xd1aax28);_0xd1aax26[_0xa5e5[25]](_0xd1aax29);this[_0xa5e5[64]]=_0xd1aax26}
\ No newline at end of file
index 9858989..0f959a1 100644 (file)
@@ -1,888 +1 @@
-/**
- * $Id: Editor.js,v 1.14 2013/03/06 17:57:10 boris Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-// Specifies if local storage should be used (eg. on the iPad which has no filesystem)
-var useLocalStorage = (mxClient.IS_TOUCH || urlParams['storage'] == 'local') && typeof(localStorage) != 'undefined';
-var fileSupport = window.File != null && window.FileReader != null && window.FileList != null;
-
-// Specifies if connector should be shown on selected cells
-var touchStyle = mxClient.IS_TOUCH || urlParams['touch'] == '1';
-
-// Counts open editor tabs (must be global for cross-window access)
-var counter = 0;
-
-// Cross-domain window access is not allowed in FF, so if we
-// were opened from another domain then this will fail.
-try {
-       var op = window;
-
-       while (op.opener != null && !isNaN(op.opener.counter)) {
-               op = op.opener;
-       }
-
-       // Increments the counter in the first opener in the chain
-       if (op != null) {
-               op.counter++;
-               counter = op.counter;
-       }
-} catch (e) {
-       // ignore
-}
-
-/**
- * Editor constructor executed on page load.
- */
-Editor = function() {
-       mxEventSource.call(this);
-       this.init();
-       this.initStencilRegistry();
-       this.graph = new Graph();
-       this.outline = new mxOutline(this.graph);
-       this.outline.updateOnPan = true;
-       this.undoManager = this.createUndoManager();
-       this.status = '';
-
-       // Contains the name which was used for the last save. Default value is null.
-       this.filename = null;
-
-       this.getOrCreateFilename = function() {
-               return this.filename || mxResources.get('drawing', [counter]) + '.xml';
-       };
-
-       this.getFilename = function() {
-               return this.filename;
-       };
-
-       // Sets the status and fires a statusChanged event
-       this.setStatus = function(value) {
-               this.status = value;
-               this.fireEvent(new mxEventObject('statusChanged'));
-       };
-
-       // Returns the current status
-       this.getStatus = function() {
-               return this.status;
-       };
-
-       // Contains the current modified state of the diagram. This is false for
-       // new diagrams and after the diagram was saved.
-       this.modified = false;
-
-       // Updates modified state if graph changes
-       this.graphChangeListener = function() {
-               this.modified = true;
-       };
-       this.graph.getModel().addListener(mxEvent.CHANGE, mxUtils.bind(this, function() {
-               this.graphChangeListener.apply(this, arguments);
-       }));
-
-       // Installs dialog if browser window is closed without saving
-       // This must be disabled during save and image export
-       window.onbeforeunload = mxUtils.bind(this, function() {
-               if (this.modified) {
-                       return mxResources.get('allChangesLost');
-               }
-       });
-
-       // Sets persistent graph state defaults
-       this.graph.resetViewOnRootChange = false;
-       this.graph.scrollbars = true;
-       this.graph.background = null;
-};
-
-// Editor inherits from mxEventSource
-mxUtils.extend(Editor, mxEventSource);
-
-/**
- * Specifies the image URL to be used for the grid.
- */
-Editor.prototype.gridImage = IMAGE_PATH + '/grid.gif';
-
-/**
- * Specifies the image URL to be used for the transparent background.
- */
-Editor.prototype.transparentImage = IMAGE_PATH + '/transparent.gif';
-
-/**
- * Sets the XML node for the current diagram.
- */
-Editor.prototype.setGraphXml = function(node) {
-       var dec = new mxCodec(node.ownerDocument);
-
-       if (node.nodeName == 'mxGraphModel') {
-               this.graph.view.scale = 1;
-               this.graph.gridEnabled = node.getAttribute('grid') != '0';
-               this.graph.graphHandler.guidesEnabled = node.getAttribute('guides') != '0';
-               this.graph.setTooltips(node.getAttribute('tooltips') != '0');
-               this.graph.setConnectable(node.getAttribute('connect') != '0');
-               this.graph.foldingEnabled = node.getAttribute('fold') != '0';
-               this.graph.scrollbars = node.getAttribute('scrollbars') != '0';
-
-               if (!this.graph.scrollbars) {
-                       this.graph.container.scrollLeft = 0;
-                       this.graph.container.scrollTop = 0;
-                       this.graph.view.translate.x = Number(node.getAttribute('dx') || 0);
-                       this.graph.view.translate.y = Number(node.getAttribute('dy') || 0);
-               }
-
-               this.graph.pageVisible = node.getAttribute('page') == '1';
-               this.graph.pageBreaksVisible = this.graph.pageVisible;
-               this.graph.preferPageSize = this.graph.pageBreaksVisible;
-
-               // Loads the persistent state settings
-               var ps = node.getAttribute('pageScale');
-
-               if (ps != null) {
-                       this.graph.pageScale = ps;
-               } else {
-                       this.graph.pageScale = 1.5;
-               }
-
-               var pw = node.getAttribute('pageWidth');
-               var ph = node.getAttribute('pageHeight');
-
-               if (pw != null && ph != null) {
-                       this.graph.pageFormat = new mxRectangle(0, 0, parseFloat(pw), parseFloat(ph));
-                       this.outline.outline.pageFormat = this.graph.pageFormat;
-               }
-
-               // Loads the persistent state settings
-               var bg = node.getAttribute('background');
-
-               if (bg != null && bg.length > 0) {
-                       this.graph.background = bg;
-               }
-
-               dec.decode(node, this.graph.getModel());
-               this.updateGraphComponents();
-       }
-};
-
-/**
- * Returns the XML node that represents the current diagram.
- */
-Editor.prototype.getGraphXml = function() {
-       var enc = new mxCodec(mxUtils.createXmlDocument());
-       var node = enc.encode(this.graph.getModel());
-
-       if (this.graph.view.translate.x != 0 || this.graph.view.translate.y != 0) {
-               node.setAttribute('dx', Math.round(this.graph.view.translate.x * 100) / 100);
-               node.setAttribute('dy', Math.round(this.graph.view.translate.y * 100) / 100);
-       }
-
-       node.setAttribute('grid', (this.graph.isGridEnabled()) ? '1' : '0');
-       node.setAttribute('guides', (this.graph.graphHandler.guidesEnabled) ? '1' : '0');
-       node.setAttribute('guides', (this.graph.graphHandler.guidesEnabled) ? '1' : '0');
-       node.setAttribute('tooltips', (this.graph.tooltipHandler.isEnabled()) ? '1' : '0');
-       node.setAttribute('connect', (this.graph.connectionHandler.isEnabled()) ? '1' : '0');
-       node.setAttribute('fold', (this.graph.foldingEnabled) ? '1' : '0');
-       node.setAttribute('page', (this.graph.pageVisible) ? '1' : '0');
-       node.setAttribute('pageScale', this.graph.pageScale);
-       node.setAttribute('pageWidth', this.graph.pageFormat.width);
-       node.setAttribute('pageHeight', this.graph.pageFormat.height);
-
-       if (!this.graph.scrollbars) {
-               node.setAttribute('scrollbars', '0');
-       }
-
-       if (this.graph.background != null) {
-               node.setAttribute('background', this.graph.background);
-       }
-
-       return node;
-};
-
-/**
- * Keeps the graph container in sync with the persistent graph state
- */
-Editor.prototype.updateGraphComponents = function() {
-       var graph = this.graph;
-       var outline = this.outline;
-
-       if (graph.container != null && outline.outline.container != null) {
-               if (graph.background != null) {
-                       if (graph.background == 'none') {
-                               graph.container.style.backgroundColor = 'transparent';
-                       } else {
-                               if (graph.view.backgroundPageShape != null) {
-                                       graph.view.backgroundPageShape.fill = graph.background;
-                                       graph.view.backgroundPageShape.reconfigure();
-                               }
-
-                               graph.container.style.backgroundColor = graph.background;
-                       }
-               } else {
-                       graph.container.style.backgroundColor = '';
-               }
-
-               if (graph.pageVisible) {
-                       graph.container.style.backgroundColor = '#ebebeb';
-                       graph.container.style.borderStyle = 'solid';
-                       graph.container.style.borderColor = '#e5e5e5';
-                       graph.container.style.borderTopWidth = '1px';
-                       graph.container.style.borderLeftWidth = '1px';
-                       graph.container.style.borderRightWidth = '0px';
-                       graph.container.style.borderBottomWidth = '0px';
-               } else {
-                       graph.container.style.border = '';
-               }
-
-               outline.outline.container.style.backgroundColor = graph.container.style.backgroundColor;
-
-               if (outline.outline.pageVisible != graph.pageVisible ||
-                       outline.outline.pageScale != graph.pageScale) {
-                       outline.outline.pageScale = graph.pageScale;
-                       outline.outline.pageVisible = graph.pageVisible;
-                       outline.outline.view.validate();
-               }
-
-               if (graph.scrollbars && graph.container.style.overflow == 'hidden' && !touchStyle) {
-                       graph.container.style.overflow = 'auto';
-               } else if (!graph.scrollbars || touchStyle) {
-                       graph.container.style.overflow = 'hidden';
-               }
-
-               // Transparent.gif is a workaround for focus repaint problems in IE
-               var noBackground = (mxClient.IS_IE && document.documentMode >= 9) ? 'url(' + this.transparentImage + ')' : 'none';
-               graph.container.style.backgroundImage = (!graph.pageVisible && graph.isGridEnabled()) ? 'url(' + this.gridImage + ')' : noBackground;
-
-               if (graph.view.backgroundPageShape != null) {
-                       graph.view.backgroundPageShape.node.style.backgroundImage = (this.graph.isGridEnabled()) ? 'url(' + this.gridImage + ')' : 'none';
-               }
-       }
-};
-
-/**
- * Initializes the environment.
- */
-Editor.prototype.init = function() {
-       // Adds stylesheet for IE6
-       if (mxClient.IS_IE6) {
-               mxClient.link('stylesheet', CSS_PATH + '/grapheditor-ie6.css');
-       }
-
-       // Adds required resources (disables loading of fallback properties, this can only
-       // be used if we know that all keys are defined in the language specific file)
-       mxResources.loadDefaultBundle = false;
-       mxResources.add(RESOURCE_BASE);
-
-       // Makes the connection hotspot smaller
-       mxConstants.DEFAULT_HOTSPOT = 0.3;
-
-       var mxConnectionHandlerCreateMarker = mxConnectionHandler.prototype.createMarker;
-       mxConnectionHandler.prototype.createMarker = function() {
-               var marker = mxConnectionHandlerCreateMarker.apply(this, arguments);
-
-               // Overrides to ignore hotspot only for target terminal
-               marker.intersects = mxUtils.bind(this, function(state, evt) {
-                       if (this.isConnecting()) {
-                               return true;
-                       }
-
-                       return mxCellMarker.prototype.intersects.apply(marker, arguments);
-               });
-
-               return marker;
-       };
-
-       // Makes the shadow brighter
-       mxConstants.SHADOWCOLOR = '#d0d0d0';
-
-       // Changes some default colors
-       mxConstants.HANDLE_FILLCOLOR = '#99ccff';
-       mxConstants.HANDLE_STROKECOLOR = '#0088cf';
-       mxConstants.VERTEX_SELECTION_COLOR = '#00a8ff';
-       mxConstants.OUTLINE_COLOR = '#00a8ff';
-       mxConstants.OUTLINE_HANDLE_FILLCOLOR = '#99ccff';
-       mxConstants.OUTLINE_HANDLE_STROKECOLOR = '#00a8ff';
-       mxConstants.CONNECT_HANDLE_FILLCOLOR = '#cee7ff';
-       mxConstants.EDGE_SELECTION_COLOR = '#00a8ff';
-       mxConstants.DEFAULT_VALID_COLOR = '#00a8ff';
-       mxConstants.LABEL_HANDLE_FILLCOLOR = '#cee7ff';
-       mxConstants.GUIDE_COLOR = '#0088cf';
-
-       mxGraph.prototype.pageBreakColor = '#c0c0c0';
-       mxGraph.prototype.pageScale = 1;
-
-       // Increases default rubberband opacity (default is 20)
-       mxRubberband.prototype.defaultOpacity = 30;
-
-       // Changes border color of background page shape
-       mxGraphView.prototype.createBackgroundPageShape = function(bounds) {
-               return new mxRectangleShape(bounds, this.graph.background || 'white', '#cacaca');
-       };
-
-       // Fits the number of background pages to the graph
-       mxGraphView.prototype.getBackgroundPageBounds = function() {
-               var gb = this.getGraphBounds();
-
-               // Computes unscaled, untranslated graph bounds
-               var x = (gb.width > 0) ? gb.x / this.scale - this.translate.x : 0;
-               var y = (gb.height > 0) ? gb.y / this.scale - this.translate.y : 0;
-               var w = gb.width / this.scale;
-               var h = gb.height / this.scale;
-
-               var fmt = this.graph.pageFormat;
-               var ps = this.graph.pageScale;
-
-               var pw = fmt.width * ps;
-               var ph = fmt.height * ps;
-
-               var x0 = Math.floor(Math.min(0, x) / pw);
-               var y0 = Math.floor(Math.min(0, y) / ph);
-               var xe = Math.ceil(Math.max(1, x + w) / pw);
-               var ye = Math.ceil(Math.max(1, y + h) / ph);
-
-               var rows = xe - x0;
-               var cols = ye - y0;
-
-               var bounds = new mxRectangle(this.scale * (this.translate.x + x0 * pw), this.scale *
-                       (this.translate.y + y0 * ph), this.scale * rows * pw, this.scale * cols * ph);
-
-               return bounds;
-       };
-
-       // Add panning for background page in VML
-       var graphPanGraph = mxGraph.prototype.panGraph;
-       mxGraph.prototype.panGraph = function(dx, dy) {
-               graphPanGraph.apply(this, arguments);
-
-               if ((this.dialect != mxConstants.DIALECT_SVG && this.view.backgroundPageShape != null) &&
-                       (!this.useScrollbarsForPanning || !mxUtils.hasScrollbars(this.container))) {
-                       this.view.backgroundPageShape.node.style.marginLeft = dx + 'px';
-                       this.view.backgroundPageShape.node.style.marginTop = dy + 'px';
-               }
-       };
-
-       var editor = this;
-
-       // Uses HTML for background pages (to support grid background image)
-       mxGraphView.prototype.validateBackground = function() {
-               var bg = this.graph.getBackgroundImage();
-
-               if (bg != null) {
-                       if (this.backgroundImage == null || this.backgroundImage.image != bg.src) {
-                               if (this.backgroundImage != null) {
-                                       this.backgroundImage.destroy();
-                               }
-
-                               var bounds = new mxRectangle(0, 0, 1, 1);
-
-                               this.backgroundImage = new mxImageShape(bounds, bg.src);
-                               this.backgroundImage.dialect = this.graph.dialect;
-                               this.backgroundImage.init(this.backgroundPane);
-                               this.backgroundImage.redraw();
-                       }
-
-                       this.redrawBackgroundImage(this.backgroundImage, bg);
-               } else if (this.backgroundImage != null) {
-                       this.backgroundImage.destroy();
-                       this.backgroundImage = null;
-               }
-
-               if (this.graph.pageVisible) {
-                       var bounds = this.getBackgroundPageBounds();
-
-                       if (this.backgroundPageShape == null) {
-                               this.backgroundPageShape = this.createBackgroundPageShape(bounds);
-                               this.backgroundPageShape.scale = 1;
-                               this.backgroundPageShape.isShadow = true;
-                               this.backgroundPageShape.dialect = mxConstants.DIALECT_STRICTHTML;
-                               this.backgroundPageShape.init(this.graph.container);
-                               // Required for the browser to render the background page in correct order
-                               this.graph.container.firstChild.style.position = 'absolute';
-                               this.graph.container.insertBefore(this.backgroundPageShape.node, this.graph.container.firstChild);
-                               this.backgroundPageShape.redraw();
-
-                               this.backgroundPageShape.node.className = 'geBackgroundPage';
-                               this.backgroundPageShape.node.style.backgroundPosition = '-1px -1px';
-
-                               // Adds listener for double click handling on background
-                               mxEvent.addListener(this.backgroundPageShape.node, 'dblclick',
-                                       mxUtils.bind(this, function(evt) {
-                                               this.graph.dblClick(evt);
-                                       })
-                               );
-
-                               // Adds basic listeners for graph event dispatching outside of the
-                               // container and finishing the handling of a single gesture
-                               mxEvent.addGestureListeners(this.backgroundPageShape.node,
-                                       mxUtils.bind(this, function(evt) {
-                                               this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(evt));
-                                       }),
-                                       mxUtils.bind(this, function(evt) {
-                                               // Hides the tooltip if mouse is outside container
-                                               if (this.graph.tooltipHandler != null &&
-                                                       this.graph.tooltipHandler.isHideOnHover()) {
-                                                       this.graph.tooltipHandler.hide();
-                                               }
-
-                                               if (this.graph.isMouseDown &&
-                                                       !mxEvent.isConsumed(evt)) {
-                                                       this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,
-                                                               new mxMouseEvent(evt));
-                                               }
-                                       }),
-                                       mxUtils.bind(this, function(evt) {
-                                               this.graph.fireMouseEvent(mxEvent.MOUSE_UP,
-                                                       new mxMouseEvent(evt));
-                                       }));
-                       } else {
-                               this.backgroundPageShape.scale = 1;
-                               this.backgroundPageShape.bounds = bounds;
-                               this.backgroundPageShape.redraw();
-                       }
-
-                       this.backgroundPageShape.node.style.backgroundImage = (this.graph.isGridEnabled()) ?
-                               'url(' + editor.gridImage + ')' : 'none';
-               } else if (this.backgroundPageShape != null) {
-                       this.backgroundPageShape.destroy();
-                       this.backgroundPageShape = null;
-               }
-       };
-
-       // Draws page breaks only within the page
-       mxGraph.prototype.updatePageBreaks = function(visible, width, height) {
-               var scale = this.view.scale;
-               var tr = this.view.translate;
-               var fmt = this.pageFormat;
-               var ps = scale * this.pageScale;
-
-               var bounds2 = this.view.getBackgroundPageBounds();
-
-               width = bounds2.width;
-               height = bounds2.height;
-               var bounds = new mxRectangle(scale * tr.x, scale * tr.y,
-                       fmt.width * ps, fmt.height * ps);
-
-               // Does not show page breaks if the scale is too small
-               visible = visible && Math.min(bounds.width, bounds.height) > this.minPageBreakDist;
-
-               var horizontalCount = (visible) ? Math.ceil(width / bounds.width) - 1 : 0;
-               var verticalCount = (visible) ? Math.ceil(height / bounds.height) - 1 : 0;
-               var right = bounds2.x + width;
-               var bottom = bounds2.y + height;
-
-               if (this.horizontalPageBreaks == null && horizontalCount > 0) {
-                       this.horizontalPageBreaks = [];
-               }
-
-               if (this.horizontalPageBreaks != null) {
-                       for (var i = 0; i <= horizontalCount; i++) {
-                               var pts = [new mxPoint(bounds2.x + (i + 1) * bounds.width, bounds2.y),
-                                       new mxPoint(bounds2.x + (i + 1) * bounds.width, bottom)
-                               ];
-
-                               if (this.horizontalPageBreaks[i] != null) {
-                                       this.horizontalPageBreaks[i].scale = 1;
-                                       this.horizontalPageBreaks[i].points = pts;
-                                       this.horizontalPageBreaks[i].redraw();
-                               } else {
-                                       var pageBreak = new mxPolyline(pts, this.pageBreakColor, this.scale);
-                                       pageBreak.dialect = this.dialect;
-                                       pageBreak.isDashed = this.pageBreakDashed;
-                                       pageBreak.addPipe = false;
-                                       pageBreak.scale = scale;
-                                       pageBreak.init(this.view.backgroundPane);
-                                       pageBreak.redraw();
-
-                                       this.horizontalPageBreaks[i] = pageBreak;
-                               }
-                       }
-
-                       for (var i = horizontalCount; i < this.horizontalPageBreaks.length; i++) {
-                               this.horizontalPageBreaks[i].destroy();
-                       }
-
-                       this.horizontalPageBreaks.splice(horizontalCount, this.horizontalPageBreaks.length - horizontalCount);
-               }
-
-               if (this.verticalPageBreaks == null && verticalCount > 0) {
-                       this.verticalPageBreaks = [];
-               }
-
-               if (this.verticalPageBreaks != null) {
-                       for (var i = 0; i <= verticalCount; i++) {
-                               var pts = [new mxPoint(bounds2.x, bounds2.y + (i + 1) * bounds.height),
-                                       new mxPoint(right, bounds2.y + (i + 1) * bounds.height)
-                               ];
-
-                               if (this.verticalPageBreaks[i] != null) {
-                                       this.verticalPageBreaks[i].scale = 1; //scale;
-                                       this.verticalPageBreaks[i].points = pts;
-                                       this.verticalPageBreaks[i].redraw();
-                               } else {
-                                       var pageBreak = new mxPolyline(pts, this.pageBreakColor, scale);
-                                       pageBreak.dialect = this.dialect;
-                                       pageBreak.isDashed = this.pageBreakDashed;
-                                       pageBreak.addPipe = false;
-                                       pageBreak.scale = scale;
-                                       pageBreak.init(this.view.backgroundPane);
-                                       pageBreak.redraw();
-
-                                       this.verticalPageBreaks[i] = pageBreak;
-                               }
-                       }
-
-                       for (var i = verticalCount; i < this.verticalPageBreaks.length; i++) {
-                               this.verticalPageBreaks[i].destroy();
-                       }
-
-                       this.verticalPageBreaks.splice(verticalCount, this.verticalPageBreaks.length - verticalCount);
-               }
-       };
-
-       // Enables snapping to off-grid terminals for edge waypoints
-       mxEdgeHandler.prototype.snapToTerminals = true;
-
-       // Enables guides
-       mxGraphHandler.prototype.guidesEnabled = true;
-
-       // Disables removing relative children from parents
-       var mxGraphHandlerShouldRemoveCellsFromParent = mxGraphHandler.prototype.shouldRemoveCellsFromParent;
-       mxGraphHandler.prototype.shouldRemoveCellsFromParent = function(parent, cells, evt) {
-               for (var i = 0; i < cells.length; i++) {
-                       if (this.graph.getModel().isVertex(cells[i])) {
-                               var geo = this.graph.getCellGeometry(cells[i]);
-
-                               if (geo != null && geo.relative) {
-                                       return false;
-                               }
-                       }
-               }
-
-               return mxGraphHandlerShouldRemoveCellsFromParent.apply(this, arguments);
-       };
-
-       // Alt-move disables guides
-       mxGuide.prototype.isEnabledForEvent = function(evt) {
-               return !mxEvent.isAltDown(evt);
-       };
-
-       // Consumes click events for disabled menu items
-       mxPopupMenuAddItem = mxPopupMenu.prototype.addItem;
-       mxPopupMenu.prototype.addItem = function(title, image, funct, parent, iconCls, enabled) {
-               var result = mxPopupMenuAddItem.apply(this, arguments);
-
-               if (enabled != null && !enabled) {
-                       mxEvent.addListener(result, 'mousedown', function(evt) {
-                               mxEvent.consume(evt);
-                       });
-               }
-
-               return result;
-       };
-
-       // Selects descendants before children selection mode
-       var graphHandlerGetInitialCellForEvent = mxGraphHandler.prototype.getInitialCellForEvent;
-       mxGraphHandler.prototype.getInitialCellForEvent = function(me) {
-               var model = this.graph.getModel();
-               var psel = model.getParent(this.graph.getSelectionCell());
-               var cell = graphHandlerGetInitialCellForEvent.apply(this, arguments);
-               var parent = model.getParent(cell);
-
-               if (psel == null || (psel != cell && psel != parent)) {
-                       while (!this.graph.isCellSelected(cell) && !this.graph.isCellSelected(parent) &&
-                               model.isVertex(parent) && !this.graph.isValidRoot(parent)) {
-                               cell = parent;
-                               parent = this.graph.getModel().getParent(cell);
-                       }
-               }
-
-               return cell;
-       };
-
-       // Selection is delayed to mouseup if child selected
-       var graphHandlerIsDelayedSelection = mxGraphHandler.prototype.isDelayedSelection;
-       mxGraphHandler.prototype.isDelayedSelection = function(cell) {
-               var result = graphHandlerIsDelayedSelection.apply(this, arguments);
-               var model = this.graph.getModel();
-               var psel = model.getParent(this.graph.getSelectionCell());
-               var parent = model.getParent(cell);
-
-               if (psel == null || (psel != cell && psel != parent)) {
-                       if (!this.graph.isCellSelected(cell) && model.isVertex(parent) && !this.graph.isValidRoot(parent)) {
-                               result = true;
-                       }
-               }
-
-               return result;
-       };
-
-       // Delayed selection of parent group
-       mxGraphHandler.prototype.selectDelayed = function(me) {
-               var cell = me.getCell();
-
-               if (cell == null) {
-                       cell = this.cell;
-               }
-
-               var model = this.graph.getModel();
-               var parent = model.getParent(cell);
-
-               while (this.graph.isCellSelected(cell) && model.isVertex(parent) && !this.graph.isValidRoot(parent)) {
-                       cell = parent;
-                       parent = model.getParent(cell);
-               }
-
-               this.graph.selectCellForEvent(cell, me.getEvent());
-       };
-
-       // Returns last selected ancestor
-       mxPanningHandler.prototype.getCellForPopupEvent = function(me) {
-               var cell = me.getCell();
-               var model = this.graph.getModel();
-               var parent = model.getParent(cell);
-
-               while (model.isVertex(parent) && !this.graph.isValidRoot(parent)) {
-                       if (this.graph.isCellSelected(parent)) {
-                               cell = parent;
-                       }
-
-                       parent = model.getParent(parent);
-               }
-
-               return cell;
-       };
-};
-
-/**
- * Creates and returns a new undo manager.
- */
-Editor.prototype.createUndoManager = function() {
-       var graph = this.graph;
-       var undoMgr = new mxUndoManager();
-
-       // Installs the command history
-       var listener = function(sender, evt) {
-               undoMgr.undoableEditHappened(evt.getProperty('edit'));
-       };
-
-       graph.getModel().addListener(mxEvent.UNDO, listener);
-       graph.getView().addListener(mxEvent.UNDO, listener);
-
-       // Keeps the selection in sync with the history
-       var undoHandler = function(sender, evt) {
-               var cand = graph.getSelectionCellsForChanges(evt.getProperty('edit').changes);
-               var cells = [];
-
-               for (var i = 1; i < cand.length; i++) {
-                       if (graph.view.getState(cand[i]) != null) {
-                               cells.push(cand[i]);
-                       }
-               }
-
-               graph.setSelectionCells(cells);
-       };
-
-       undoMgr.addListener(mxEvent.UNDO, undoHandler);
-       undoMgr.addListener(mxEvent.REDO, undoHandler);
-
-       return undoMgr;
-};
-
-/**
- * Adds basic stencil set (no namespace).
- */
-Editor.prototype.initStencilRegistry = function() {
-       // Loads default stencils
-       mxStencilRegistry.loadStencilSet(STENCIL_PATH + '/general.xml');
-};
-
-/**
- * Overrides stencil registry for dynamic loading of stencils.
- */
-(function() {
-       /**
-        * Maps from library names to an array of Javascript filenames,
-        * which are synchronously loaded. Currently only stencil files
-        * (.xml) and JS files (.js) are supported.
-        * IMPORTANT: For embedded diagrams to work entries must also
-        * be added in EmbedServlet.java.
-        */
-       mxStencilRegistry.libraries = {};
-
-       /**
-        * Stores all package names that have been dynamically loaded.
-        * Each package is only loaded once.
-        */
-       mxStencilRegistry.packages = [];
-
-       // Extends the default stencil registry to add dynamic loading
-       mxStencilRegistry.getStencil = function(name) {
-               var result = mxStencilRegistry.stencils[name];
-
-               if (result == null) {
-                       var basename = mxStencilRegistry.getBasenameForStencil(name);
-
-                       // Loads stencil files and tries again
-                       if (basename != null) {
-                               var libs = mxStencilRegistry.libraries[basename];
-
-                               if (libs != null) {
-                                       if (mxStencilRegistry.packages[basename] == null) {
-                                               mxStencilRegistry.packages[basename] = 1;
-
-                                               for (var i = 0; i < libs.length; i++) {
-                                                       var fname = libs[i];
-
-                                                       if (fname.toLowerCase().substring(fname.length - 4, fname.length) == '.xml') {
-                                                               mxStencilRegistry.loadStencilSet(fname, null);
-                                                       } else if (fname.toLowerCase().substring(fname.length - 3, fname.length) == '.js') {
-                                                               var req = mxUtils.load(fname);
-
-                                                               if (req != null) {
-                                                                       eval.call(window, req.getText());
-                                                               }
-                                                       } else {
-                                                               // FIXME: This does not yet work as the loading is triggered after
-                                                               // the shape was used in the graph, at which point the keys have
-                                                               // typically been translated in the calling method.
-                                                               //mxResources.add(fname);
-                                                       }
-                                               }
-                                       }
-                               } else {
-                                       mxStencilRegistry.loadStencilSet(STENCIL_PATH + '/' + basename + '.xml', null);
-                               }
-
-                               result = mxStencilRegistry.stencils[name];
-                       }
-               }
-
-               return result;
-       };
-
-       // Returns the basename for the given stencil or null if no file must be
-       // loaded to render the given stencil.
-       mxStencilRegistry.getBasenameForStencil = function(name) {
-               var parts = name.split('.');
-               var tmp = null;
-
-               if (parts.length > 0 && parts[0] == 'mxgraph') {
-                       tmp = parts[1];
-
-                       for (var i = 2; i < parts.length - 1; i++) {
-                               tmp += '/' + parts[i];
-                       }
-               }
-
-               return tmp;
-       };
-
-       // Loads the given stencil set
-       mxStencilRegistry.loadStencilSet = function(stencilFile, postStencilLoad, force) {
-               force = (force != null) ? force : false;
-
-               // Uses additional cache for detecting previous load attempts
-               var xmlDoc = mxStencilRegistry.packages[stencilFile];
-
-               if (force || xmlDoc == null) {
-                       var install = false;
-
-                       if (xmlDoc == null) {
-                               var req = mxUtils.load(stencilFile);
-                               xmlDoc = req.getXml();
-                               mxStencilRegistry.packages[stencilFile] = xmlDoc;
-                               install = true;
-                       }
-
-                       mxStencilRegistry.parseStencilSet(xmlDoc, postStencilLoad, install);
-               }
-       };
-
-       // Parses the given stencil set
-       mxStencilRegistry.parseStencilSet = function(xmlDocument, postStencilLoad, install) {
-               install = (install != null) ? install : true;
-               var root = xmlDocument.documentElement;
-               var shape = root.firstChild;
-               var packageName = '';
-               var name = root.getAttribute('name');
-
-               if (name != null) {
-                       packageName = name + '.';
-               }
-
-               while (shape != null) {
-                       if (shape.nodeType == mxConstants.NODETYPE_ELEMENT) {
-                               name = shape.getAttribute('name');
-
-                               if (name != null) {
-                                       packageName = packageName.toLowerCase();
-                                       var stencilName = name.replace(/ /g, "_");
-
-                                       if (install) {
-                                               mxStencilRegistry.addStencil(packageName + stencilName.toLowerCase(), new mxStencil(shape));
-                                       }
-
-                                       if (postStencilLoad != null) {
-                                               var w = shape.getAttribute('w');
-                                               var h = shape.getAttribute('h');
-
-                                               w = (w == null) ? 80 : parseInt(w, 10);
-                                               h = (h == null) ? 80 : parseInt(h, 10);
-
-                                               postStencilLoad(packageName, stencilName, name, w, h);
-                                       }
-                               }
-                       }
-
-                       shape = shape.nextSibling;
-               }
-       };
-})();
-
-/**
- * Class for asynchronously opening a new window and loading a file at the same
- * time. This acts as a bridge between the open dialog and the new editor.
- */
-OpenFile = function(done) {
-       this.producer = null;
-       this.consumer = null;
-       this.done = done;
-};
-
-/**
- * Registers the editor from the new window.
- */
-OpenFile.prototype.setConsumer = function(value) {
-       this.consumer = value;
-       this.execute();
-};
-
-/**
- * Sets the data from the loaded file.
- */
-OpenFile.prototype.setData = function(value, filename) {
-       this.data = value;
-       this.filename = filename;
-       this.execute();
-};
-
-/**
- * Displays an error message.
- */
-OpenFile.prototype.error = function(msg) {
-       this.cancel();
-       mxUtils.alert(msg);
-};
-
-/**
- * Consumes the data.
- */
-OpenFile.prototype.execute = function() {
-       if (this.consumer != null && this.data != null) {
-               this.consumer(this.data, this.filename);
-               this.cancel();
-       }
-};
-
-/**
- * Cancels the operation.
- */
-OpenFile.prototype.cancel = function() {
-       if (this.done != null) {
-               this.done();
-       }
-};
+var _0xed54=["\x49\x53\x5F\x54\x4F\x55\x43\x48","\x73\x74\x6F\x72\x61\x67\x65","\x6C\x6F\x63\x61\x6C","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x46\x69\x6C\x65","\x46\x69\x6C\x65\x52\x65\x61\x64\x65\x72","\x46\x69\x6C\x65\x4C\x69\x73\x74","\x74\x6F\x75\x63\x68","\x31","\x6F\x70\x65\x6E\x65\x72","\x63\x6F\x75\x6E\x74\x65\x72","\x63\x61\x6C\x6C","\x69\x6E\x69\x74","\x69\x6E\x69\x74\x53\x74\x65\x6E\x63\x69\x6C\x52\x65\x67\x69\x73\x74\x72\x79","\x67\x72\x61\x70\x68","\x6F\x75\x74\x6C\x69\x6E\x65","\x75\x70\x64\x61\x74\x65\x4F\x6E\x50\x61\x6E","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x63\x72\x65\x61\x74\x65\x55\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x73\x74\x61\x74\x75\x73","","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x64\x72\x61\x77\x69\x6E\x67","\x67\x65\x74","\x2E\x78\x6D\x6C","\x67\x65\x74\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x67\x72\x61\x70\x68\x43\x68\x61\x6E\x67\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x70\x70\x6C\x79","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x6F\x6E\x62\x65\x66\x6F\x72\x65\x75\x6E\x6C\x6F\x61\x64","\x61\x6C\x6C\x43\x68\x61\x6E\x67\x65\x73\x4C\x6F\x73\x74","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x73\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x65\x78\x74\x65\x6E\x64","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x2F\x67\x72\x69\x64\x2E\x67\x69\x66","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x2F\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x2E\x67\x69\x66","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x6D\x78\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x73\x63\x61\x6C\x65","\x76\x69\x65\x77","\x67\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x69\x64","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x30","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x67\x75\x69\x64\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x66\x6F\x6C\x64","\x73\x63\x72\x6F\x6C\x6C\x4C\x65\x66\x74","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x78","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65","\x64\x78","\x79","\x64\x79","\x70\x61\x67\x65\x56\x69\x73\x69\x62\x6C\x65","\x70\x61\x67\x65","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x73\x56\x69\x73\x69\x62\x6C\x65","\x70\x72\x65\x66\x65\x72\x50\x61\x67\x65\x53\x69\x7A\x65","\x70\x61\x67\x65\x53\x63\x61\x6C\x65","\x70\x61\x67\x65\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x48\x65\x69\x67\x68\x74","\x70\x61\x67\x65\x46\x6F\x72\x6D\x61\x74","\x6C\x65\x6E\x67\x74\x68","\x64\x65\x63\x6F\x64\x65","\x75\x70\x64\x61\x74\x65\x47\x72\x61\x70\x68\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x65\x6E\x63\x6F\x64\x65","\x72\x6F\x75\x6E\x64","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x6E\x6F\x6E\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x73\x74\x79\x6C\x65","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x66\x69\x6C\x6C","\x72\x65\x63\x6F\x6E\x66\x69\x67\x75\x72\x65","\x23\x65\x62\x65\x62\x65\x62","\x62\x6F\x72\x64\x65\x72\x53\x74\x79\x6C\x65","\x73\x6F\x6C\x69\x64","\x62\x6F\x72\x64\x65\x72\x43\x6F\x6C\x6F\x72","\x23\x65\x35\x65\x35\x65\x35","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70\x57\x69\x64\x74\x68","\x31\x70\x78","\x62\x6F\x72\x64\x65\x72\x4C\x65\x66\x74\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72\x52\x69\x67\x68\x74\x57\x69\x64\x74\x68","\x30\x70\x78","\x62\x6F\x72\x64\x65\x72\x42\x6F\x74\x74\x6F\x6D\x57\x69\x64\x74\x68","\x62\x6F\x72\x64\x65\x72","\x76\x61\x6C\x69\x64\x61\x74\x65","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x68\x69\x64\x64\x65\x6E","\x61\x75\x74\x6F","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x72\x6C\x28","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x6E\x6F\x64\x65","\x49\x53\x5F\x49\x45\x36","\x73\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x2F\x67\x72\x61\x70\x68\x65\x64\x69\x74\x6F\x72\x2D\x69\x65\x36\x2E\x63\x73\x73","\x6C\x69\x6E\x6B","\x6C\x6F\x61\x64\x44\x65\x66\x61\x75\x6C\x74\x42\x75\x6E\x64\x6C\x65","\x61\x64\x64","\x44\x45\x46\x41\x55\x4C\x54\x5F\x48\x4F\x54\x53\x50\x4F\x54","\x63\x72\x65\x61\x74\x65\x4D\x61\x72\x6B\x65\x72","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x73","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6E\x67","\x53\x48\x41\x44\x4F\x57\x43\x4F\x4C\x4F\x52","\x23\x64\x30\x64\x30\x64\x30","\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x39\x39\x63\x63\x66\x66","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x23\x30\x30\x38\x38\x63\x66","\x56\x45\x52\x54\x45\x58\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x23\x30\x30\x61\x38\x66\x66","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x43\x4F\x4C\x4F\x52","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x4F\x55\x54\x4C\x49\x4E\x45\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x43\x4F\x4C\x4F\x52","\x43\x4F\x4E\x4E\x45\x43\x54\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x23\x63\x65\x65\x37\x66\x66","\x45\x44\x47\x45\x5F\x53\x45\x4C\x45\x43\x54\x49\x4F\x4E\x5F\x43\x4F\x4C\x4F\x52","\x44\x45\x46\x41\x55\x4C\x54\x5F\x56\x41\x4C\x49\x44\x5F\x43\x4F\x4C\x4F\x52","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x46\x49\x4C\x4C\x43\x4F\x4C\x4F\x52","\x47\x55\x49\x44\x45\x5F\x43\x4F\x4C\x4F\x52","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x43\x6F\x6C\x6F\x72","\x23\x63\x30\x63\x30\x63\x30","\x64\x65\x66\x61\x75\x6C\x74\x4F\x70\x61\x63\x69\x74\x79","\x63\x72\x65\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x53\x68\x61\x70\x65","\x77\x68\x69\x74\x65","\x23\x63\x61\x63\x61\x63\x61","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65\x42\x6F\x75\x6E\x64\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x6D\x69\x6E","\x66\x6C\x6F\x6F\x72","\x6D\x61\x78","\x63\x65\x69\x6C","\x70\x61\x6E\x47\x72\x61\x70\x68","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x75\x73\x65\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x68\x61\x73\x53\x63\x72\x6F\x6C\x6C\x62\x61\x72\x73","\x6D\x61\x72\x67\x69\x6E\x4C\x65\x66\x74","\x70\x78","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x67\x65\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x69\x6D\x61\x67\x65","\x73\x72\x63","\x64\x65\x73\x74\x72\x6F\x79","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x6E\x65","\x72\x65\x64\x72\x61\x77","\x72\x65\x64\x72\x61\x77\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x69\x73\x53\x68\x61\x64\x6F\x77","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x54\x52\x49\x43\x54\x48\x54\x4D\x4C","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x69\x6E\x73\x65\x72\x74\x42\x65\x66\x6F\x72\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x61\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x64\x62\x6C\x63\x6C\x69\x63\x6B","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x69\x73\x48\x69\x64\x65\x4F\x6E\x48\x6F\x76\x65\x72","\x68\x69\x64\x65","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x62\x6F\x75\x6E\x64\x73","\x75\x70\x64\x61\x74\x65\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x6D\x69\x6E\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x69\x73\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x70\x6F\x69\x6E\x74\x73","\x69\x73\x44\x61\x73\x68\x65\x64","\x70\x61\x67\x65\x42\x72\x65\x61\x6B\x44\x61\x73\x68\x65\x64","\x61\x64\x64\x50\x69\x70\x65","\x73\x70\x6C\x69\x63\x65","\x76\x65\x72\x74\x69\x63\x61\x6C\x50\x61\x67\x65\x42\x72\x65\x61\x6B\x73","\x73\x6E\x61\x70\x54\x6F\x54\x65\x72\x6D\x69\x6E\x61\x6C\x73","\x73\x68\x6F\x75\x6C\x64\x52\x65\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73\x46\x72\x6F\x6D\x50\x61\x72\x65\x6E\x74","\x69\x73\x56\x65\x72\x74\x65\x78","\x67\x65\x74\x43\x65\x6C\x6C\x47\x65\x6F\x6D\x65\x74\x72\x79","\x72\x65\x6C\x61\x74\x69\x76\x65","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x41\x6C\x74\x44\x6F\x77\x6E","\x61\x64\x64\x49\x74\x65\x6D","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6F\x6E\x73\x75\x6D\x65","\x67\x65\x74\x49\x6E\x69\x74\x69\x61\x6C\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x69\x73\x44\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x73\x65\x6C\x65\x63\x74\x44\x65\x6C\x61\x79\x65\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x63\x65\x6C\x6C","\x67\x65\x74\x45\x76\x65\x6E\x74","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x46\x6F\x72\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x65\x6C\x6C\x46\x6F\x72\x50\x6F\x70\x75\x70\x45\x76\x65\x6E\x74","\x65\x64\x69\x74","\x67\x65\x74\x50\x72\x6F\x70\x65\x72\x74\x79","\x75\x6E\x64\x6F\x61\x62\x6C\x65\x45\x64\x69\x74\x48\x61\x70\x70\x65\x6E\x65\x64","\x67\x65\x74\x56\x69\x65\x77","\x63\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x46\x6F\x72\x43\x68\x61\x6E\x67\x65\x73","\x67\x65\x74\x53\x74\x61\x74\x65","\x70\x75\x73\x68","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x2F\x67\x65\x6E\x65\x72\x61\x6C\x2E\x78\x6D\x6C","\x6C\x6F\x61\x64\x53\x74\x65\x6E\x63\x69\x6C\x53\x65\x74","\x6C\x69\x62\x72\x61\x72\x69\x65\x73","\x70\x61\x63\x6B\x61\x67\x65\x73","\x67\x65\x74\x53\x74\x65\x6E\x63\x69\x6C","\x73\x74\x65\x6E\x63\x69\x6C\x73","\x67\x65\x74\x42\x61\x73\x65\x6E\x61\x6D\x65\x46\x6F\x72\x53\x74\x65\x6E\x63\x69\x6C","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x2E\x6A\x73","\x6C\x6F\x61\x64","\x67\x65\x74\x54\x65\x78\x74","\x2F","\x2E","\x73\x70\x6C\x69\x74","\x6D\x78\x67\x72\x61\x70\x68","\x67\x65\x74\x58\x6D\x6C","\x70\x61\x72\x73\x65\x53\x74\x65\x6E\x63\x69\x6C\x53\x65\x74","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x6E\x61\x6D\x65","\x6E\x6F\x64\x65\x54\x79\x70\x65","\x4E\x4F\x44\x45\x54\x59\x50\x45\x5F\x45\x4C\x45\x4D\x45\x4E\x54","\x5F","\x72\x65\x70\x6C\x61\x63\x65","\x61\x64\x64\x53\x74\x65\x6E\x63\x69\x6C","\x77","\x68","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x70\x72\x6F\x64\x75\x63\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65\x72","\x64\x6F\x6E\x65","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x65\x78\x65\x63\x75\x74\x65","\x73\x65\x74\x44\x61\x74\x61","\x64\x61\x74\x61","\x65\x72\x72\x6F\x72","\x63\x61\x6E\x63\x65\x6C","\x61\x6C\x65\x72\x74"];var useLocalStorage=(mxClient[_0xed54[0]]||urlParams[_0xed54[1]]==_0xed54[2])&& typeof (localStorage)!=_0xed54[3];var fileSupport=window[_0xed54[4]]!=null&&window[_0xed54[5]]!=null&&window[_0xed54[6]]!=null;var touchStyle=mxClient[_0xed54[0]]||urlParams[_0xed54[7]]==_0xed54[8];var counter=0;try{var op=window;while(op[_0xed54[9]]!=null&&!isNaN(op[_0xed54[9]][_0xed54[10]])){op=op[_0xed54[9]]};if(op!=null){op[_0xed54[10]]++;counter=op[_0xed54[10]]}}catch(e){};Editor=function(){mxEventSource[_0xed54[11]](this);this[_0xed54[12]]();this[_0xed54[13]]();this[_0xed54[14]]= new Graph();this[_0xed54[15]]= new mxOutline(this[_0xed54[14]]);this[_0xed54[15]][_0xed54[16]]=true;this[_0xed54[17]]=this[_0xed54[18]]();this[_0xed54[19]]=_0xed54[20];this[_0xed54[21]]=null;this[_0xed54[22]]=function(){return this[_0xed54[21]]||mxResources[_0xed54[24]](_0xed54[23],[counter])+_0xed54[25]};this[_0xed54[26]]=function(){return this[_0xed54[21]]};this[_0xed54[27]]=function(_0x8147x6){this[_0xed54[19]]=_0x8147x6;this[_0xed54[29]]( new mxEventObject(_0xed54[28]))};this[_0xed54[30]]=function(){return this[_0xed54[19]]};this[_0xed54[31]]=false;this[_0xed54[32]]=function(){this[_0xed54[31]]=true};this[_0xed54[14]][_0xed54[36]]()[_0xed54[35]](mxEvent.CHANGE,mxUtils[_0xed54[34]](this,function(){this[_0xed54[32]][_0xed54[33]](this,arguments)}));window[_0xed54[37]]=mxUtils[_0xed54[34]](this,function(){if(this[_0xed54[31]]){return mxResources[_0xed54[24]](_0xed54[38])}});this[_0xed54[14]][_0xed54[39]]=false;this[_0xed54[14]][_0xed54[40]]=true;this[_0xed54[14]][_0xed54[41]]=null};mxUtils[_0xed54[42]](Editor,mxEventSource);Editor[_0xed54[44]][_0xed54[43]]=IMAGE_PATH+_0xed54[45];Editor[_0xed54[44]][_0xed54[46]]=IMAGE_PATH+_0xed54[47];Editor[_0xed54[44]][_0xed54[48]]=function(_0x8147x7){var _0x8147x8= new mxCodec(_0x8147x7[_0xed54[49]]);if(_0x8147x7[_0xed54[50]]==_0xed54[51]){this[_0xed54[14]][_0xed54[53]][_0xed54[52]]=1;this[_0xed54[14]][_0xed54[54]]=_0x8147x7[_0xed54[56]](_0xed54[55])!=_0xed54[57];this[_0xed54[14]][_0xed54[59]][_0xed54[58]]=_0x8147x7[_0xed54[56]](_0xed54[60])!=_0xed54[57];this[_0xed54[14]][_0xed54[62]](_0x8147x7[_0xed54[56]](_0xed54[61])!=_0xed54[57]);this[_0xed54[14]][_0xed54[64]](_0x8147x7[_0xed54[56]](_0xed54[63])!=_0xed54[57]);this[_0xed54[14]][_0xed54[65]]=_0x8147x7[_0xed54[56]](_0xed54[66])!=_0xed54[57];this[_0xed54[14]][_0xed54[40]]=_0x8147x7[_0xed54[56]](_0xed54[40])!=_0xed54[57];if(!this[_0xed54[14]][_0xed54[40]]){this[_0xed54[14]][_0xed54[68]][_0xed54[67]]=0;this[_0xed54[14]][_0xed54[68]][_0xed54[69]]=0;this[_0xed54[14]][_0xed54[53]][_0xed54[71]][_0xed54[70]]=Number(_0x8147x7[_0xed54[56]](_0xed54[72])||0);this[_0xed54[14]][_0xed54[53]][_0xed54[71]][_0xed54[73]]=Number(_0x8147x7[_0xed54[56]](_0xed54[74])||0)};this[_0xed54[14]][_0xed54[75]]=_0x8147x7[_0xed54[56]](_0xed54[76])==_0xed54[8];this[_0xed54[14]][_0xed54[77]]=this[_0xed54[14]][_0xed54[75]];this[_0xed54[14]][_0xed54[78]]=this[_0xed54[14]][_0xed54[77]];var _0x8147x9=_0x8147x7[_0xed54[56]](_0xed54[79]);if(_0x8147x9!=null){this[_0xed54[14]][_0xed54[79]]=_0x8147x9}else {this[_0xed54[14]][_0xed54[79]]=1.5};var _0x8147xa=_0x8147x7[_0xed54[56]](_0xed54[80]);var _0x8147xb=_0x8147x7[_0xed54[56]](_0xed54[81]);if(_0x8147xa!=null&&_0x8147xb!=null){this[_0xed54[14]][_0xed54[82]]= new mxRectangle(0,0,parseFloat(_0x8147xa),parseFloat(_0x8147xb));this[_0xed54[15]][_0xed54[15]][_0xed54[82]]=this[_0xed54[14]][_0xed54[82]]};var _0x8147xc=_0x8147x7[_0xed54[56]](_0xed54[41]);if(_0x8147xc!=null&&_0x8147xc[_0xed54[83]]>0){this[_0xed54[14]][_0xed54[41]]=_0x8147xc};_0x8147x8[_0xed54[84]](_0x8147x7,this[_0xed54[14]][_0xed54[36]]());this[_0xed54[85]]()}};Editor[_0xed54[44]][_0xed54[86]]=function(){var _0x8147xd= new mxCodec(mxUtils[_0xed54[87]]());var _0x8147x7=_0x8147xd[_0xed54[88]](this[_0xed54[14]][_0xed54[36]]());if(this[_0xed54[14]][_0xed54[53]][_0xed54[71]][_0xed54[70]]!=0||this[_0xed54[14]][_0xed54[53]][_0xed54[71]][_0xed54[73]]!=0){_0x8147x7[_0xed54[90]](_0xed54[72],Math[_0xed54[89]](this[_0xed54[14]][_0xed54[53]][_0xed54[71]][_0xed54[70]]*100)/100);_0x8147x7[_0xed54[90]](_0xed54[74],Math[_0xed54[89]](this[_0xed54[14]][_0xed54[53]][_0xed54[71]][_0xed54[73]]*100)/100)};_0x8147x7[_0xed54[90]](_0xed54[55],(this[_0xed54[14]][_0xed54[91]]())?_0xed54[8]:_0xed54[57]);_0x8147x7[_0xed54[90]](_0xed54[60],(this[_0xed54[14]][_0xed54[59]][_0xed54[58]])?_0xed54[8]:_0xed54[57]);_0x8147x7[_0xed54[90]](_0xed54[60],(this[_0xed54[14]][_0xed54[59]][_0xed54[58]])?_0xed54[8]:_0xed54[57]);_0x8147x7[_0xed54[90]](_0xed54[61],(this[_0xed54[14]][_0xed54[93]][_0xed54[92]]())?_0xed54[8]:_0xed54[57]);_0x8147x7[_0xed54[90]](_0xed54[63],(this[_0xed54[14]][_0xed54[94]][_0xed54[92]]())?_0xed54[8]:_0xed54[57]);_0x8147x7[_0xed54[90]](_0xed54[66],(this[_0xed54[14]][_0xed54[65]])?_0xed54[8]:_0xed54[57]);_0x8147x7[_0xed54[90]](_0xed54[76],(this[_0xed54[14]][_0xed54[75]])?_0xed54[8]:_0xed54[57]);_0x8147x7[_0xed54[90]](_0xed54[79],this[_0xed54[14]][_0xed54[79]]);_0x8147x7[_0xed54[90]](_0xed54[80],this[_0xed54[14]][_0xed54[82]][_0xed54[95]]);_0x8147x7[_0xed54[90]](_0xed54[81],this[_0xed54[14]][_0xed54[82]][_0xed54[96]]);if(!this[_0xed54[14]][_0xed54[40]]){_0x8147x7[_0xed54[90]](_0xed54[40],_0xed54[57])};if(this[_0xed54[14]][_0xed54[41]]!=null){_0x8147x7[_0xed54[90]](_0xed54[41],this[_0xed54[14]][_0xed54[41]])};return _0x8147x7};Editor[_0xed54[44]][_0xed54[85]]=function(){var _0x8147xe=this[_0xed54[14]];var _0x8147xf=this[_0xed54[15]];if(_0x8147xe[_0xed54[68]]!=null&&_0x8147xf[_0xed54[15]][_0xed54[68]]!=null){if(_0x8147xe[_0xed54[41]]!=null){if(_0x8147xe[_0xed54[41]]==_0xed54[97]){_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[98]]=_0xed54[100]}else {if(_0x8147xe[_0xed54[53]][_0xed54[101]]!=null){_0x8147xe[_0xed54[53]][_0xed54[101]][_0xed54[102]]=_0x8147xe[_0xed54[41]];_0x8147xe[_0xed54[53]][_0xed54[101]][_0xed54[103]]()};_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[98]]=_0x8147xe[_0xed54[41]]}}else {_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[98]]=_0xed54[20]};if(_0x8147xe[_0xed54[75]]){_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[98]]=_0xed54[104];_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[105]]=_0xed54[106];_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[107]]=_0xed54[108];_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[109]]=_0xed54[110];_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[111]]=_0xed54[110];_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[112]]=_0xed54[113];_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[114]]=_0xed54[113]}else {_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[115]]=_0xed54[20]};_0x8147xf[_0xed54[15]][_0xed54[68]][_0xed54[99]][_0xed54[98]]=_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[98]];if(_0x8147xf[_0xed54[15]][_0xed54[75]]!=_0x8147xe[_0xed54[75]]||_0x8147xf[_0xed54[15]][_0xed54[79]]!=_0x8147xe[_0xed54[79]]){_0x8147xf[_0xed54[15]][_0xed54[79]]=_0x8147xe[_0xed54[79]];_0x8147xf[_0xed54[15]][_0xed54[75]]=_0x8147xe[_0xed54[75]];_0x8147xf[_0xed54[15]][_0xed54[53]][_0xed54[116]]()};if(_0x8147xe[_0xed54[40]]&&_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[117]]==_0xed54[118]&& !touchStyle){_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[117]]=_0xed54[119]}else {if(!_0x8147xe[_0xed54[40]]||touchStyle){_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[117]]=_0xed54[118]}};var _0x8147x10=(mxClient[_0xed54[120]]&&document[_0xed54[121]]>=9)?_0xed54[122]+this[_0xed54[46]]+_0xed54[123]:_0xed54[97];_0x8147xe[_0xed54[68]][_0xed54[99]][_0xed54[124]]=(!_0x8147xe[_0xed54[75]]&&_0x8147xe[_0xed54[91]]())?_0xed54[122]+this[_0xed54[43]]+_0xed54[123]:_0x8147x10;if(_0x8147xe[_0xed54[53]][_0xed54[101]]!=null){_0x8147xe[_0xed54[53]][_0xed54[101]][_0xed54[125]][_0xed54[99]][_0xed54[124]]=(this[_0xed54[14]][_0xed54[91]]())?_0xed54[122]+this[_0xed54[43]]+_0xed54[123]:_0xed54[97]}}};Editor[_0xed54[44]][_0xed54[12]]=function(){if(mxClient[_0xed54[126]]){mxClient[_0xed54[129]](_0xed54[127],CSS_PATH+_0xed54[128])};mxResources[_0xed54[130]]=false;mxResources[_0xed54[131]](RESOURCE_BASE);mxConstants[_0xed54[132]]=0.3;var _0x8147x11=mxConnectionHandler[_0xed54[44]][_0xed54[133]];mxConnectionHandler[_0xed54[44]][_0xed54[133]]=function(){var _0x8147x12=_0x8147x11[_0xed54[33]](this,arguments);_0x8147x12[_0xed54[134]]=mxUtils[_0xed54[34]](this,function(_0x8147x13,_0x8147x14){if(this[_0xed54[135]]()){return true};return mxCellMarker[_0xed54[44]][_0xed54[134]][_0xed54[33]](_0x8147x12,arguments)});return _0x8147x12};mxConstants[_0xed54[136]]=_0xed54[137];mxConstants[_0xed54[138]]=_0xed54[139];mxConstants[_0xed54[140]]=_0xed54[141];mxConstants[_0xed54[142]]=_0xed54[143];mxConstants[_0xed54[144]]=_0xed54[143];mxConstants[_0xed54[145]]=_0xed54[139];mxConstants[_0xed54[146]]=_0xed54[143];mxConstants[_0xed54[147]]=_0xed54[148];mxConstants[_0xed54[149]]=_0xed54[143];mxConstants[_0xed54[150]]=_0xed54[143];mxConstants[_0xed54[151]]=_0xed54[148];mxConstants[_0xed54[152]]=_0xed54[141];mxGraph[_0xed54[44]][_0xed54[153]]=_0xed54[154];mxGraph[_0xed54[44]][_0xed54[79]]=1;mxRubberband[_0xed54[44]][_0xed54[155]]=30;mxGraphView[_0xed54[44]][_0xed54[156]]=function(_0x8147x15){return  new mxRectangleShape(_0x8147x15,this[_0xed54[14]][_0xed54[41]]||_0xed54[157],_0xed54[158])};mxGraphView[_0xed54[44]][_0xed54[159]]=function(){var _0x8147x16=this[_0xed54[160]]();var _0x8147x17=(_0x8147x16[_0xed54[95]]>0)?_0x8147x16[_0xed54[70]]/this[_0xed54[52]]-this[_0xed54[71]][_0xed54[70]]:0;var _0x8147x18=(_0x8147x16[_0xed54[96]]>0)?_0x8147x16[_0xed54[73]]/this[_0xed54[52]]-this[_0xed54[71]][_0xed54[73]]:0;var _0x8147x19=_0x8147x16[_0xed54[95]]/this[_0xed54[52]];var _0x8147x1a=_0x8147x16[_0xed54[96]]/this[_0xed54[52]];var _0x8147x1b=this[_0xed54[14]][_0xed54[82]];var _0x8147x9=this[_0xed54[14]][_0xed54[79]];var _0x8147xa=_0x8147x1b[_0xed54[95]]*_0x8147x9;var _0x8147xb=_0x8147x1b[_0xed54[96]]*_0x8147x9;var _0x8147x1c=Math[_0xed54[162]](Math[_0xed54[161]](0,_0x8147x17)/_0x8147xa);var _0x8147x1d=Math[_0xed54[162]](Math[_0xed54[161]](0,_0x8147x18)/_0x8147xb);var _0x8147x1e=Math[_0xed54[164]](Math[_0xed54[163]](1,_0x8147x17+_0x8147x19)/_0x8147xa);var _0x8147x1f=Math[_0xed54[164]](Math[_0xed54[163]](1,_0x8147x18+_0x8147x1a)/_0x8147xb);var _0x8147x20=_0x8147x1e-_0x8147x1c;var _0x8147x21=_0x8147x1f-_0x8147x1d;var _0x8147x15= new mxRectangle(this[_0xed54[52]]*(this[_0xed54[71]][_0xed54[70]]+_0x8147x1c*_0x8147xa),this[_0xed54[52]]*(this[_0xed54[71]][_0xed54[73]]+_0x8147x1d*_0x8147xb),this[_0xed54[52]]*_0x8147x20*_0x8147xa,this[_0xed54[52]]*_0x8147x21*_0x8147xb);return _0x8147x15};var _0x8147x22=mxGraph[_0xed54[44]][_0xed54[165]];mxGraph[_0xed54[44]][_0xed54[165]]=function(_0x8147x23,_0x8147x24){_0x8147x22[_0xed54[33]](this,arguments);if((this[_0xed54[166]]!=mxConstants[_0xed54[167]]&&this[_0xed54[53]][_0xed54[101]]!=null)&&(!this[_0xed54[168]]||!mxUtils[_0xed54[169]](this[_0xed54[68]]))){this[_0xed54[53]][_0xed54[101]][_0xed54[125]][_0xed54[99]][_0xed54[170]]=_0x8147x23+_0xed54[171];this[_0xed54[53]][_0xed54[101]][_0xed54[125]][_0xed54[99]][_0xed54[172]]=_0x8147x24+_0xed54[171]}};var _0x8147x25=this;mxGraphView[_0xed54[44]][_0xed54[173]]=function(){var _0x8147xc=this[_0xed54[14]][_0xed54[174]]();if(_0x8147xc!=null){if(this[_0xed54[124]]==null||this[_0xed54[124]][_0xed54[175]]!=_0x8147xc[_0xed54[176]]){if(this[_0xed54[124]]!=null){this[_0xed54[124]][_0xed54[177]]()};var _0x8147x15= new mxRectangle(0,0,1,1);this[_0xed54[124]]= new mxImageShape(_0x8147x15,_0x8147xc[_0xed54[176]]);this[_0xed54[124]][_0xed54[166]]=this[_0xed54[14]][_0xed54[166]];this[_0xed54[124]][_0xed54[12]](this[_0xed54[178]]);this[_0xed54[124]][_0xed54[179]]()};this[_0xed54[180]](this[_0xed54[124]],_0x8147xc)}else {if(this[_0xed54[124]]!=null){this[_0xed54[124]][_0xed54[177]]();this[_0xed54[124]]=null}};if(this[_0xed54[14]][_0xed54[75]]){var _0x8147x15=this[_0xed54[159]]();if(this[_0xed54[101]]==null){this[_0xed54[101]]=this[_0xed54[156]](_0x8147x15);this[_0xed54[101]][_0xed54[52]]=1;this[_0xed54[101]][_0xed54[181]]=true;this[_0xed54[101]][_0xed54[166]]=mxConstants[_0xed54[182]];this[_0xed54[101]][_0xed54[12]](this[_0xed54[14]][_0xed54[68]]);this[_0xed54[14]][_0xed54[68]][_0xed54[184]][_0xed54[99]][_0xed54[183]]=_0xed54[185];this[_0xed54[14]][_0xed54[68]][_0xed54[186]](this[_0xed54[101]][_0xed54[125]],this[_0xed54[14]][_0xed54[68]][_0xed54[184]]);this[_0xed54[101]][_0xed54[179]]();this[_0xed54[101]][_0xed54[125]][_0xed54[187]]=_0xed54[188];this[_0xed54[101]][_0xed54[125]][_0xed54[99]][_0xed54[189]]=_0xed54[190];mxEvent[_0xed54[35]](this[_0xed54[101]][_0xed54[125]],_0xed54[191],mxUtils[_0xed54[34]](this,function(_0x8147x14){this[_0xed54[14]][_0xed54[192]](_0x8147x14)}));mxEvent[_0xed54[198]](this[_0xed54[101]][_0xed54[125]],mxUtils[_0xed54[34]](this,function(_0x8147x14){this[_0xed54[14]][_0xed54[193]](mxEvent.MOUSE_DOWN, new mxMouseEvent(_0x8147x14))}),mxUtils[_0xed54[34]](this,function(_0x8147x14){if(this[_0xed54[14]][_0xed54[93]]!=null&&this[_0xed54[14]][_0xed54[93]][_0xed54[194]]()){this[_0xed54[14]][_0xed54[93]][_0xed54[195]]()};if(this[_0xed54[14]][_0xed54[196]]&&!mxEvent[_0xed54[197]](_0x8147x14)){this[_0xed54[14]][_0xed54[193]](mxEvent.MOUSE_MOVE, new mxMouseEvent(_0x8147x14))}}),mxUtils[_0xed54[34]](this,function(_0x8147x14){this[_0xed54[14]][_0xed54[193]](mxEvent.MOUSE_UP, new mxMouseEvent(_0x8147x14))}))}else {this[_0xed54[101]][_0xed54[52]]=1;this[_0xed54[101]][_0xed54[199]]=_0x8147x15;this[_0xed54[101]][_0xed54[179]]()};this[_0xed54[101]][_0xed54[125]][_0xed54[99]][_0xed54[124]]=(this[_0xed54[14]][_0xed54[91]]())?_0xed54[122]+_0x8147x25[_0xed54[43]]+_0xed54[123]:_0xed54[97]}else {if(this[_0xed54[101]]!=null){this[_0xed54[101]][_0xed54[177]]();this[_0xed54[101]]=null}}};mxGraph[_0xed54[44]][_0xed54[200]]=function(_0x8147x26,_0x8147x27,_0x8147x28){var _0x8147x29=this[_0xed54[53]][_0xed54[52]];var _0x8147x2a=this[_0xed54[53]][_0xed54[71]];var _0x8147x1b=this[_0xed54[82]];var _0x8147x9=_0x8147x29*this[_0xed54[79]];var _0x8147x2b=this[_0xed54[53]][_0xed54[159]]();_0x8147x27=_0x8147x2b[_0xed54[95]];_0x8147x28=_0x8147x2b[_0xed54[96]];var _0x8147x15= new mxRectangle(_0x8147x29*_0x8147x2a[_0xed54[70]],_0x8147x29*_0x8147x2a[_0xed54[73]],_0x8147x1b[_0xed54[95]]*_0x8147x9,_0x8147x1b[_0xed54[96]]*_0x8147x9);_0x8147x26=_0x8147x26&&Math[_0xed54[161]](_0x8147x15[_0xed54[95]],_0x8147x15[_0xed54[96]])>this[_0xed54[201]];var _0x8147x2c=(_0x8147x26)?Math[_0xed54[164]](_0x8147x27/_0x8147x15[_0xed54[95]])-1:0;var _0x8147x2d=(_0x8147x26)?Math[_0xed54[164]](_0x8147x28/_0x8147x15[_0xed54[96]])-1:0;var _0x8147x2e=_0x8147x2b[_0xed54[70]]+_0x8147x27;var _0x8147x2f=_0x8147x2b[_0xed54[73]]+_0x8147x28;if(this[_0xed54[202]]==null&&_0x8147x2c>0){this[_0xed54[202]]=[]};if(this[_0xed54[202]]!=null){for(var _0x8147x30=0;_0x8147x30<=_0x8147x2c;_0x8147x30++){var _0x8147x31=[ new mxPoint(_0x8147x2b[_0xed54[70]]+(_0x8147x30+1)*_0x8147x15[_0xed54[95]],_0x8147x2b[_0xed54[73]]), new mxPoint(_0x8147x2b[_0xed54[70]]+(_0x8147x30+1)*_0x8147x15[_0xed54[95]],_0x8147x2f)];if(this[_0xed54[202]][_0x8147x30]!=null){this[_0xed54[202]][_0x8147x30][_0xed54[52]]=1;this[_0xed54[202]][_0x8147x30][_0xed54[203]]=_0x8147x31;this[_0xed54[202]][_0x8147x30][_0xed54[179]]()}else {var _0x8147x32= new mxPolyline(_0x8147x31,this[_0xed54[153]],this[_0xed54[52]]);_0x8147x32[_0xed54[166]]=this[_0xed54[166]];_0x8147x32[_0xed54[204]]=this[_0xed54[205]];_0x8147x32[_0xed54[206]]=false;_0x8147x32[_0xed54[52]]=_0x8147x29;_0x8147x32[_0xed54[12]](this[_0xed54[53]][_0xed54[178]]);_0x8147x32[_0xed54[179]]();this[_0xed54[202]][_0x8147x30]=_0x8147x32}};for(var _0x8147x30=_0x8147x2c;_0x8147x30<this[_0xed54[202]][_0xed54[83]];_0x8147x30++){this[_0xed54[202]][_0x8147x30][_0xed54[177]]()};this[_0xed54[202]][_0xed54[207]](_0x8147x2c,this[_0xed54[202]][_0xed54[83]]-_0x8147x2c)};if(this[_0xed54[208]]==null&&_0x8147x2d>0){this[_0xed54[208]]=[]};if(this[_0xed54[208]]!=null){for(var _0x8147x30=0;_0x8147x30<=_0x8147x2d;_0x8147x30++){var _0x8147x31=[ new mxPoint(_0x8147x2b[_0xed54[70]],_0x8147x2b[_0xed54[73]]+(_0x8147x30+1)*_0x8147x15[_0xed54[96]]), new mxPoint(_0x8147x2e,_0x8147x2b[_0xed54[73]]+(_0x8147x30+1)*_0x8147x15[_0xed54[96]])];if(this[_0xed54[208]][_0x8147x30]!=null){this[_0xed54[208]][_0x8147x30][_0xed54[52]]=1;this[_0xed54[208]][_0x8147x30][_0xed54[203]]=_0x8147x31;this[_0xed54[208]][_0x8147x30][_0xed54[179]]()}else {var _0x8147x32= new mxPolyline(_0x8147x31,this[_0xed54[153]],_0x8147x29);_0x8147x32[_0xed54[166]]=this[_0xed54[166]];_0x8147x32[_0xed54[204]]=this[_0xed54[205]];_0x8147x32[_0xed54[206]]=false;_0x8147x32[_0xed54[52]]=_0x8147x29;_0x8147x32[_0xed54[12]](this[_0xed54[53]][_0xed54[178]]);_0x8147x32[_0xed54[179]]();this[_0xed54[208]][_0x8147x30]=_0x8147x32}};for(var _0x8147x30=_0x8147x2d;_0x8147x30<this[_0xed54[208]][_0xed54[83]];_0x8147x30++){this[_0xed54[208]][_0x8147x30][_0xed54[177]]()};this[_0xed54[208]][_0xed54[207]](_0x8147x2d,this[_0xed54[208]][_0xed54[83]]-_0x8147x2d)}};mxEdgeHandler[_0xed54[44]][_0xed54[209]]=true;mxGraphHandler[_0xed54[44]][_0xed54[58]]=true;var _0x8147x33=mxGraphHandler[_0xed54[44]][_0xed54[210]];mxGraphHandler[_0xed54[44]][_0xed54[210]]=function(_0x8147x34,_0x8147x35,_0x8147x14){for(var _0x8147x30=0;_0x8147x30<_0x8147x35[_0xed54[83]];_0x8147x30++){if(this[_0xed54[14]][_0xed54[36]]()[_0xed54[211]](_0x8147x35[_0x8147x30])){var _0x8147x36=this[_0xed54[14]][_0xed54[212]](_0x8147x35[_0x8147x30]);if(_0x8147x36!=null&&_0x8147x36[_0xed54[213]]){return false}}};return _0x8147x33[_0xed54[33]](this,arguments)};mxGuide[_0xed54[44]][_0xed54[214]]=function(_0x8147x14){return !mxEvent[_0xed54[215]](_0x8147x14)};mxPopupMenuAddItem=mxPopupMenu[_0xed54[44]][_0xed54[216]];mxPopupMenu[_0xed54[44]][_0xed54[216]]=function(_0x8147x37,_0x8147x38,_0x8147x39,_0x8147x34,_0x8147x3a,_0x8147x3b){var _0x8147x3c=mxPopupMenuAddItem[_0xed54[33]](this,arguments);if(_0x8147x3b!=null&& !_0x8147x3b){mxEvent[_0xed54[35]](_0x8147x3c,_0xed54[217],function(_0x8147x14){mxEvent[_0xed54[218]](_0x8147x14)})};return _0x8147x3c};var _0x8147x3d=mxGraphHandler[_0xed54[44]][_0xed54[219]];mxGraphHandler[_0xed54[44]][_0xed54[219]]=function(_0x8147x3e){var _0x8147x3f=this[_0xed54[14]][_0xed54[36]]();var _0x8147x40=_0x8147x3f[_0xed54[221]](this[_0xed54[14]][_0xed54[220]]());var _0x8147x41=_0x8147x3d[_0xed54[33]](this,arguments);var _0x8147x34=_0x8147x3f[_0xed54[221]](_0x8147x41);if(_0x8147x40==null||(_0x8147x40!=_0x8147x41&&_0x8147x40!=_0x8147x34)){while(!this[_0xed54[14]][_0xed54[222]](_0x8147x41)&&!this[_0xed54[14]][_0xed54[222]](_0x8147x34)&&_0x8147x3f[_0xed54[211]](_0x8147x34)&&!this[_0xed54[14]][_0xed54[223]](_0x8147x34)){_0x8147x41=_0x8147x34;_0x8147x34=this[_0xed54[14]][_0xed54[36]]()[_0xed54[221]](_0x8147x41)}};return _0x8147x41};var _0x8147x42=mxGraphHandler[_0xed54[44]][_0xed54[224]];mxGraphHandler[_0xed54[44]][_0xed54[224]]=function(_0x8147x41){var _0x8147x3c=_0x8147x42[_0xed54[33]](this,arguments);var _0x8147x3f=this[_0xed54[14]][_0xed54[36]]();var _0x8147x40=_0x8147x3f[_0xed54[221]](this[_0xed54[14]][_0xed54[220]]());var _0x8147x34=_0x8147x3f[_0xed54[221]](_0x8147x41);if(_0x8147x40==null||(_0x8147x40!=_0x8147x41&&_0x8147x40!=_0x8147x34)){if(!this[_0xed54[14]][_0xed54[222]](_0x8147x41)&&_0x8147x3f[_0xed54[211]](_0x8147x34)&&!this[_0xed54[14]][_0xed54[223]](_0x8147x34)){_0x8147x3c=true}};return _0x8147x3c};mxGraphHandler[_0xed54[44]][_0xed54[225]]=function(_0x8147x3e){var _0x8147x41=_0x8147x3e[_0xed54[226]]();if(_0x8147x41==null){_0x8147x41=this[_0xed54[227]]};var _0x8147x3f=this[_0xed54[14]][_0xed54[36]]();var _0x8147x34=_0x8147x3f[_0xed54[221]](_0x8147x41);while(this[_0xed54[14]][_0xed54[222]](_0x8147x41)&&_0x8147x3f[_0xed54[211]](_0x8147x34)&&!this[_0xed54[14]][_0xed54[223]](_0x8147x34)){_0x8147x41=_0x8147x34;_0x8147x34=_0x8147x3f[_0xed54[221]](_0x8147x41)};this[_0xed54[14]][_0xed54[229]](_0x8147x41,_0x8147x3e[_0xed54[228]]())};mxPanningHandler[_0xed54[44]][_0xed54[230]]=function(_0x8147x3e){var _0x8147x41=_0x8147x3e[_0xed54[226]]();var _0x8147x3f=this[_0xed54[14]][_0xed54[36]]();var _0x8147x34=_0x8147x3f[_0xed54[221]](_0x8147x41);while(_0x8147x3f[_0xed54[211]](_0x8147x34)&&!this[_0xed54[14]][_0xed54[223]](_0x8147x34)){if(this[_0xed54[14]][_0xed54[222]](_0x8147x34)){_0x8147x41=_0x8147x34};_0x8147x34=_0x8147x3f[_0xed54[221]](_0x8147x34)};return _0x8147x41}};Editor[_0xed54[44]][_0xed54[18]]=function(){var _0x8147xe=this[_0xed54[14]];var _0x8147x43= new mxUndoManager();var _0x8147x44=function(_0x8147x45,_0x8147x14){_0x8147x43[_0xed54[233]](_0x8147x14[_0xed54[232]](_0xed54[231]))};_0x8147xe[_0xed54[36]]()[_0xed54[35]](mxEvent.UNDO,_0x8147x44);_0x8147xe[_0xed54[234]]()[_0xed54[35]](mxEvent.UNDO,_0x8147x44);var _0x8147x46=function(_0x8147x45,_0x8147x14){var _0x8147x47=_0x8147xe[_0xed54[236]](_0x8147x14[_0xed54[232]](_0xed54[231])[_0xed54[235]]);var _0x8147x35=[];for(var _0x8147x30=1;_0x8147x30<_0x8147x47[_0xed54[83]];_0x8147x30++){if(_0x8147xe[_0xed54[53]][_0xed54[237]](_0x8147x47[_0x8147x30])!=null){_0x8147x35[_0xed54[238]](_0x8147x47[_0x8147x30])}};_0x8147xe[_0xed54[239]](_0x8147x35)};_0x8147x43[_0xed54[35]](mxEvent.UNDO,_0x8147x46);_0x8147x43[_0xed54[35]](mxEvent.REDO,_0x8147x46);return _0x8147x43};Editor[_0xed54[44]][_0xed54[13]]=function(){mxStencilRegistry[_0xed54[241]](STENCIL_PATH+_0xed54[240])};(function(){mxStencilRegistry[_0xed54[242]]={};mxStencilRegistry[_0xed54[243]]=[];mxStencilRegistry[_0xed54[244]]=function(_0x8147x48){var _0x8147x3c=mxStencilRegistry[_0xed54[245]][_0x8147x48];if(_0x8147x3c==null){var _0x8147x49=mxStencilRegistry[_0xed54[246]](_0x8147x48);if(_0x8147x49!=null){var _0x8147x4a=mxStencilRegistry[_0xed54[242]][_0x8147x49];if(_0x8147x4a!=null){if(mxStencilRegistry[_0xed54[243]][_0x8147x49]==null){mxStencilRegistry[_0xed54[243]][_0x8147x49]=1;for(var _0x8147x30=0;_0x8147x30<_0x8147x4a[_0xed54[83]];_0x8147x30++){var _0x8147x4b=_0x8147x4a[_0x8147x30];if(_0x8147x4b[_0xed54[248]]()[_0xed54[247]](_0x8147x4b[_0xed54[83]]-4,_0x8147x4b[_0xed54[83]])==_0xed54[25]){mxStencilRegistry[_0xed54[241]](_0x8147x4b,null)}else {if(_0x8147x4b[_0xed54[248]]()[_0xed54[247]](_0x8147x4b[_0xed54[83]]-3,_0x8147x4b[_0xed54[83]])==_0xed54[249]){var _0x8147x4c=mxUtils[_0xed54[250]](_0x8147x4b);if(_0x8147x4c!=null){eval[_0xed54[11]](window,_0x8147x4c[_0xed54[251]]())}}else {}}}}}else {mxStencilRegistry[_0xed54[241]](STENCIL_PATH+_0xed54[252]+_0x8147x49+_0xed54[25],null)};_0x8147x3c=mxStencilRegistry[_0xed54[245]][_0x8147x48]}};return _0x8147x3c};mxStencilRegistry[_0xed54[246]]=function(_0x8147x48){var _0x8147x4d=_0x8147x48[_0xed54[254]](_0xed54[253]);var _0x8147x4e=null;if(_0x8147x4d[_0xed54[83]]>0&&_0x8147x4d[0]==_0xed54[255]){_0x8147x4e=_0x8147x4d[1];for(var _0x8147x30=2;_0x8147x30<_0x8147x4d[_0xed54[83]]-1;_0x8147x30++){_0x8147x4e+=_0xed54[252]+_0x8147x4d[_0x8147x30]}};return _0x8147x4e};mxStencilRegistry[_0xed54[241]]=function(_0x8147x4f,_0x8147x50,_0x8147x51){_0x8147x51=(_0x8147x51!=null)?_0x8147x51:false;var _0x8147x52=mxStencilRegistry[_0xed54[243]][_0x8147x4f];if(_0x8147x51||_0x8147x52==null){var _0x8147x53=false;if(_0x8147x52==null){var _0x8147x4c=mxUtils[_0xed54[250]](_0x8147x4f);_0x8147x52=_0x8147x4c[_0xed54[256]]();mxStencilRegistry[_0xed54[243]][_0x8147x4f]=_0x8147x52;_0x8147x53=true};mxStencilRegistry[_0xed54[257]](_0x8147x52,_0x8147x50,_0x8147x53)}};mxStencilRegistry[_0xed54[257]]=function(_0x8147x54,_0x8147x50,_0x8147x53){_0x8147x53=(_0x8147x53!=null)?_0x8147x53:true;var _0x8147x55=_0x8147x54[_0xed54[258]];var _0x8147x56=_0x8147x55[_0xed54[184]];var _0x8147x57=_0xed54[20];var _0x8147x48=_0x8147x55[_0xed54[56]](_0xed54[259]);if(_0x8147x48!=null){_0x8147x57=_0x8147x48+_0xed54[253]};while(_0x8147x56!=null){if(_0x8147x56[_0xed54[260]]==mxConstants[_0xed54[261]]){_0x8147x48=_0x8147x56[_0xed54[56]](_0xed54[259]);if(_0x8147x48!=null){_0x8147x57=_0x8147x57[_0xed54[248]]();var _0x8147x58=_0x8147x48[_0xed54[263]](/ /g,_0xed54[262]);if(_0x8147x53){mxStencilRegistry[_0xed54[264]](_0x8147x57+_0x8147x58[_0xed54[248]](), new mxStencil(_0x8147x56))};if(_0x8147x50!=null){var _0x8147x19=_0x8147x56[_0xed54[56]](_0xed54[265]);var _0x8147x1a=_0x8147x56[_0xed54[56]](_0xed54[266]);_0x8147x19=(_0x8147x19==null)?80:parseInt(_0x8147x19,10);_0x8147x1a=(_0x8147x1a==null)?80:parseInt(_0x8147x1a,10);_0x8147x50(_0x8147x57,_0x8147x58,_0x8147x48,_0x8147x19,_0x8147x1a)}}};_0x8147x56=_0x8147x56[_0xed54[267]]}}})();OpenFile=function(_0x8147x59){this[_0xed54[268]]=null;this[_0xed54[269]]=null;this[_0xed54[270]]=_0x8147x59};OpenFile[_0xed54[44]][_0xed54[271]]=function(_0x8147x6){this[_0xed54[269]]=_0x8147x6;this[_0xed54[272]]()};OpenFile[_0xed54[44]][_0xed54[273]]=function(_0x8147x6,_0x8147x5a){this[_0xed54[274]]=_0x8147x6;this[_0xed54[21]]=_0x8147x5a;this[_0xed54[272]]()};OpenFile[_0xed54[44]][_0xed54[275]]=function(_0x8147x5b){this[_0xed54[276]]();mxUtils[_0xed54[277]](_0x8147x5b)};OpenFile[_0xed54[44]][_0xed54[272]]=function(){if(this[_0xed54[269]]!=null&&this[_0xed54[274]]!=null){this[_0xed54[269]](this[_0xed54[274]],this[_0xed54[21]]);this[_0xed54[276]]()}};OpenFile[_0xed54[44]][_0xed54[276]]=function(){if(this[_0xed54[270]]!=null){this[_0xed54[270]]()}}
\ No newline at end of file
index 4104913..ef13f11 100644 (file)
@@ -1,1484 +1 @@
-/**
- * $Id: EditorUi.js,v 1.21 2013/03/14 20:46:36 david Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Constructs a new graph editor
- */
-EditorUi = function(editor, container) {
-       this.editor = editor || new Editor();
-       this.container = container || document.getElementById('geEditor');
-       var graph = editor.graph;
-       var self = this;
-
-       // Disables scrollbars
-       this.container.style.overflow = 'hidden';
-
-       // Pre-fetches submenu image
-       new Image().src = mxPopupMenu.prototype.submenuImage;
-
-       // Pre-fetches connect image
-       if (mxConnectionHandler.prototype.connectImage != null) {
-               new Image().src = mxConnectionHandler.prototype.connectImage.src;
-       }
-
-       // Creates the user interface
-       this.actions = new Actions(this);
-       this.menus = new Menus(this);
-       this.createDivs();
-       this.refresh();
-       this.createUi();
-
-       // Disables HTML and text selection
-       var textEditing = mxUtils.bind(this, function(evt) {
-               if (evt == null) {
-                       evt = window.event;
-               }
-
-               if (this.isSelectionAllowed(evt)) {
-                       return true;
-               }
-
-               return graph.isEditing();
-       });
-
-       // Disables text selection while not editing and no dialog visible
-       if (this.container == document.body) {
-               this.menubarContainer.onselectstart = textEditing;
-               this.menubarContainer.onmousedown = textEditing;
-               this.toolbarContainer.onselectstart = textEditing;
-               this.toolbarContainer.onmousedown = textEditing;
-               this.diagramContainer.onselectstart = textEditing;
-               this.diagramContainer.onmousedown = textEditing;
-               this.sidebarContainer.onselectstart = textEditing;
-               this.sidebarContainer.onmousedown = textEditing;
-               this.footerContainer.onselectstart = textEditing;
-               this.footerContainer.onmousedown = textEditing;
-       }
-
-       // And uses built-in context menu while editing
-       if (mxClient.IS_IE && (typeof(document.documentMode) === 'undefined' ||
-                       document.documentMode < 9)) {
-               mxEvent.addListener(this.diagramContainer, 'contextmenu', textEditing);
-               mxEvent.addListener(this.sidebarContainer, 'contextmenu', textEditing);
-       } else {
-               // Allows browser context menu outside of diagram and sidebar
-               this.diagramContainer.oncontextmenu = textEditing;
-               this.sidebarContainer.oncontextmenu = textEditing;
-       }
-
-       // Contains the main graph instance inside the given panel
-       graph.init(this.diagramContainer);
-       graph.refresh();
-
-       // Enables scrollbars and sets cursor style for the container
-       graph.container.setAttribute('tabindex', '0');
-       // graph.container.style.overflow = (touchStyle) ? 'hidden' : 'auto';
-       graph.container.style.cursor = 'default';
-       graph.container.style.backgroundImage = 'url(' + editor.gridImage + ')';
-       graph.container.style.backgroundPosition = '-1px -1px';
-       graph.container.focus();
-
-       // Keeps graph container focused on mouse down
-       var graphFireMouseEvent = graph.fireMouseEvent;
-       graph.fireMouseEvent = function(evtName, me, sender) {
-               if (evtName == mxEvent.MOUSE_DOWN) {
-                       this.container.focus();
-               }
-
-               graphFireMouseEvent.apply(this, arguments);
-       };
-
-       // Giuseppe Careri
-       // Defines invalid connections along with the error messages that they produce.
-       this.createMultiplicities(graph.multiplicities, ['start', 'finally', 'end'], [
-               [1, 1],
-               [1, 1],
-               [0, 0]
-       ], [
-               [0, 0],
-               [0, 0],
-               [1, 'n']
-       ]);
-       this.createMultiplicities(graph.multiplicities, ['answer', 'hangup', 'dial',
-               'ext_dial', 'queue', 'voicemail', 'callback'
-       ], [
-               [1, 1],
-               [0, 0],
-               [0, 1],
-               [0, 1],
-               [0, 1],
-               [1, 1],
-               [0, 1]
-       ], [
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n']
-       ]);
-       this.createMultiplicities(graph.multiplicities, ['set', 'math'], [
-               [1, 1],
-               [1, 1]
-       ], [
-               [1, 'n'],
-               [1, 'n']
-       ]);
-       this.createMultiplicities(graph.multiplicities, ['background', 'playback',
-               'menu', 'saydigits', 'saynumber', 'sayphonetic', 'tts', 'ispeechtts', 'getdigits'
-       ], [
-               [1, 'n'],
-               [1, 1],
-               [1, 'n'],
-               [1, 1],
-               [1, 1],
-               [1, 1],
-               [1, 1],
-               [1, 1],
-               [1, 'n']
-       ], [
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n']
-       ]);
-       this.createMultiplicities(graph.multiplicities, ['record'], [
-               [1, 1]
-       ], [
-               [1, 'n']
-       ]);
-       this.createMultiplicities(graph.multiplicities, ['database', 'ispeechasr'], [
-               [1, 1],
-               [1, 1]
-       ], [
-               [1, 'n'],
-               [1, 'n']
-       ]);
-       this.createMultiplicities(graph.multiplicities, ['gotoc', 'gotoif',
-               'gotoiftime', 'gotoifmultitime', 'vswitch'
-       ], [
-               [0, 0],
-               [1, 2],
-               [1, 2],
-               [1, 2],
-               [1, 'n']
-       ], [
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n']
-       ]);
-       this.createMultiplicities(graph.multiplicities, ['queuelog', 'goal'], [
-               [1, 1],
-               [1, 1]
-       ], [
-               [1, 'n'],
-               [1, 'n']
-       ]);
-       this.createMultiplicities(graph.multiplicities, ['noop', 'system', 'agi',
-               'subproject', 'custom_app'
-       ], [
-               [1, 1],
-               [1, 1],
-               [0, 1],
-               [0, 1],
-               [0, 1]
-       ], [
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n'],
-               [1, 'n']
-       ]);
-
-       // Giuseppe Careri
-       // Processes a doubleclick on an optional cell and fires a <dblclick> event.
-       // The event is fired initially.
-       // If the graph is enabled and the event has not been consumed, then <edit> is called with the given cell.
-       // The event is ignored if no cell was specified.
-       graph.dblClick = function(evt, cell) {
-               var edges = ['background', 'gotoif', 'gotoiftime', 'menu', 'getdigits', 'vswitch'];
-               var mxe = new mxEventObject(mxEvent.DOUBLE_CLICK, 'event', evt, 'cell',
-                       cell);
-               this.fireEvent(mxe);
-
-               if (this.isEnabled() && !mxEvent.isConsumed(evt) && !mxe.isConsumed()) {
-                       // Override dblClick Vertices and Edges
-                       if (this.getModel().isEdge(cell)) {
-                               if (edges.indexOf(cell.source.value.tagName) >= 0)
-                                       this.startEditingAtCell(cell);
-                       } else if (this.getModel().isVertex(cell)) {
-                               console.log(self);
-                               console.log(cell);
-                               self.showDialog(new GeneralDialog(self, cell).container, 320, 280, true,
-                                       true);
-                       }
-                       mxe.consume();
-               }
-       }
-
-       // Configures automatic expand on mouseover
-       graph.panningHandler.autoExpand = true;
-
-       // Installs context menu
-       graph.panningHandler.factoryMethod = mxUtils.bind(this, function(menu, cell,
-               evt) {
-               this.menus.createPopupMenu(menu, cell, evt);
-       });
-
-       // Initializes the outline
-       editor.outline.init(this.outlineContainer);
-
-       // Hides context menu
-       mxEvent.addGestureListeners(document, mxUtils.bind(this, function(evt) {
-               graph.panningHandler.hideMenu();
-       }));
-
-       // Adds gesture handling (pinch to zoom)
-       if (mxClient.IS_TOUCH) {
-               mxEvent.addListener(graph.container, 'gesturechange',
-                       mxUtils.bind(this, function(evt) {
-                               graph.view.getDrawPane().setAttribute('transform', 'scale(' + evt.scale +
-                                       ')');
-                               graph.view.getOverlayPane().style.visibility = 'hidden';
-                       })
-               );
-
-               mxEvent.addListener(graph.container, 'gestureend',
-                       mxUtils.bind(this, function(evt) {
-                               graph.view.getDrawPane().removeAttribute('transform');
-                               graph.zoomToCenter = true;
-                               graph.zoom(evt.scale);
-                               graph.view.getOverlayPane().style.visibility = 'visible';
-                       })
-               );
-       }
-
-       // Create handler for key events
-       var keyHandler = this.createKeyHandler(editor);
-
-       // Getter for key handler
-       this.getKeyHandler = function() {
-               return keyHandler;
-       };
-
-       // Updates the editor UI after the window has been resized
-       mxEvent.addListener(window, 'resize', mxUtils.bind(this, function() {
-               this.refresh();
-               graph.sizeDidChange();
-               this.editor.outline.update(false);
-               this.editor.outline.outline.sizeDidChange();
-       }));
-
-       // Updates action and menu states
-       this.init();
-       this.open();
-};
-
-/**
- * Specifies the size of the split bar.
- */
-EditorUi.prototype.splitSize = (mxClient.IS_TOUCH) ? 16 : 8;
-
-/**
- * Specifies the height of the menubar. Default is 34.
- */
-EditorUi.prototype.menubarHeight = 33;
-
-/**
- * Specifies the height of the toolbar. Default is 36.
- */
-EditorUi.prototype.toolbarHeight = 36;
-
-/**
- * Specifies the height of the footer. Default is 28.
- */
-EditorUi.prototype.footerHeight = 28;
-
-/**
- * Specifies the position of the horizontal split bar. Default is 212.
- */
-EditorUi.prototype.hsplitPosition = 204;
-
-/**
- * Specifies the position of the vertical split bar. Default is 190.
- */
-EditorUi.prototype.vsplitPosition = 190;
-
-/**
- * Installs the listeners to update the action states.
- */
-EditorUi.prototype.init = function() {
-       // Updates action states
-       this.addUndoListener();
-       this.addSelectionListener();
-
-       // Overrides clipboard to update paste action state
-       var paste = this.actions.get('paste');
-
-       var updatePaste = function() {
-               paste.setEnabled(!mxClipboard.isEmpty());
-       };
-
-       var mxClipboardCut = mxClipboard.cut;
-       mxClipboard.cut = function() {
-               mxClipboardCut.apply(this, arguments);
-               updatePaste();
-       };
-
-       var mxClipboardCopy = mxClipboard.copy;
-       mxClipboard.copy = function() {
-               mxClipboardCopy.apply(this, arguments);
-               updatePaste();
-       };
-};
-
-/**
- * Hook for allowing selection and context menu for certain events.
- */
-EditorUi.prototype.isSelectionAllowed = function(evt) {
-       return false;
-};
-
-/**
- * Opens the current diagram via the window.opener if one exists.
- */
-EditorUi.prototype.open = function() {
-       // Cross-domain window access is not allowed in FF, so if we
-       // were opened from another domain then this will fail.
-       try {
-               if (window.opener != null && window.opener.openFile != null) {
-                       window.opener.openFile.setConsumer(mxUtils.bind(this, function(xml,
-                               filename) {
-                               try {
-                                       var doc = mxUtils.parseXml(xml);
-                                       this.editor.setGraphXml(doc.documentElement);
-                                       this.editor.modified = false;
-                                       this.editor.undoManager.clear();
-
-                                       if (filename != null) {
-                                               this.editor.filename = filename;
-                                       }
-                               } catch (e) {
-                                       mxUtils.alert(mxResources.get('invalidOrMissingFile') + ': ' + e.message);
-                               }
-                       }));
-               }
-       } catch (e) {
-               // ignore
-       }
-};
-
-/**
- * Giuseppe Careri
- * Opens the current diagram via string.
- */
-EditorUi.prototype.openString = function(xml, filename, data) {
-       try {
-               var doc = mxUtils.parseXml(xml);
-               this.editor.setGraphXml(doc.documentElement);
-               this.editor.modified = false;
-               this.editor.undoManager.clear();
-
-               if (filename != null) {
-                       this.editor.filename = filename;
-               }
-
-               if (data != null) {
-                       this.editor.data = data;
-               }
-       } catch (e) {
-               mxUtils.alert(mxResources.get('invalidOrMissingFile') + ': ' + e.message);
-       }
-};
-
-/**
- * Saves As the current graph under the given project name.
- */
-EditorUi.prototype.new = function(name) {
-       var editor = this.editor;
-
-       if (name != null) {
-               var xml = mxUtils.getPrettyXml(this.editor.getGraphXml());
-               try {
-                       if (useLocalStorage) {
-                               if (localStorage.getItem(name) != null &&
-                                       !mxUtils.confirm(mxResources.get('replace', [name]))) {
-                                       return;
-                               }
-
-                               localStorage.setItem(name, xml);
-                               this.editor.setStatus(mxResources.get('saved') + ' ' + new Date());
-                       } else {
-                               console.log(xml.length);
-                               console.log(MAX_REQUEST_SIZE);
-                               if (xml.length < MAX_REQUEST_SIZE) {
-                                       xml = encodeURIComponent(xml);
-                                       name = encodeURIComponent(name);
-
-                                       var xhr = new XMLHttpRequest();
-                                       xhr.open("POST", SAVE_URL, true);
-                                       xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-                                       xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
-                                       xhr.onload = function(e) {
-                                               if (xhr.readyState === 4) {
-                                                       if (xhr.status === 201) {
-                                                               editor.setStatus('Project ' + JSON.parse(xhr.response).name +
-                                                                       ' is opening in new window!');
-                                                               setTimeout(function() {
-                                                                       window.open('square/project/' + JSON.parse(xhr.response).id,
-                                                                               '_blank');
-                                                               }, 1500);
-                                                       } else {
-                                                               editor.setStatus('Error creating project: ' +
-                                                                       JSON.parse(xhr.response).errors[0].message);
-                                                       }
-                                               }
-                                       };
-                                       xhr.onerror = function(e) {
-                                               mxUtils.alert(xhr.statusText);
-                                       };
-                                       xhr.send('description=project_new&name=' + name);
-                               } else {
-                                       mxUtils.alert(mxResources.get('drawingTooLarge'));
-                                       mxUtils.popup(xml);
-
-                                       return;
-                               }
-                       }
-
-                       this.editor.filename = name;
-                       this.editor.modified = false;
-               } catch (e) {
-                       this.editor.setStatus('Error creating project');
-               }
-       } else {
-               this.editor.setStatus('Error creating project');
-       }
-};
-
-
-/**
- * Saves the current graph under the given project name.
- */
-EditorUi.prototype.save = function(name) {
-       var editor = this.editor;
-
-       if (name != null) {
-               var xml = mxUtils.getPrettyXml(this.editor.getGraphXml());
-               try {
-                       if (useLocalStorage) {
-                               if (localStorage.getItem(name) != null &&
-                                       !mxUtils.confirm(mxResources.get('replace', [name]))) {
-                                       return;
-                               }
-
-                               localStorage.setItem(name, xml);
-                               this.editor.setStatus(mxResources.get('saved') + ' ' + new Date());
-                       } else {
-                               console.log(xml.length);
-                               console.log(MAX_REQUEST_SIZE);
-                               if (xml.length < MAX_REQUEST_SIZE) {
-                                       xml = encodeURIComponent(xml);
-
-                                       var xhr = new XMLHttpRequest();
-                                       xhr.open("PUT", SAVE_URL + this.editor.data.id, true);
-                                       xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-                                       xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
-                                       xhr.onload = function(e) {
-                                               if (xhr.readyState === 4) {
-                                                       if (xhr.status === 200) {
-                                                               editor.setStatus('Updated at ' + JSON.parse(xhr.response).updatedAt +
-                                                                       ' (' + xhr.status + ' ' + xhr.statusText + ')');
-                                                       } else {
-                                                               editor.setStatus('Error saving project: ' +
-                                                                       JSON.parse(xhr.response).errors[0].message);
-                                                       }
-                                               }
-                                       };
-                                       xhr.onerror = function(e) {
-                                               mxUtils.alert(xhr.statusText);
-                                       };
-                                       xhr.send('preproduction=' + xml);
-                               } else {
-                                       mxUtils.alert(mxResources.get('drawingTooLarge'));
-                                       mxUtils.popup(xml);
-
-                                       return;
-                               }
-                       }
-
-                       this.editor.filename = name;
-                       this.editor.modified = false;
-               } catch (e) {
-                       this.editor.setStatus('Error saving file');
-               }
-       } else {
-               this.editor.setStatus('Error saving file');
-       }
-};
-
-/**
- * Saves As the current graph under the given project name.
- */
-EditorUi.prototype.saveAs = function(name) {
-       var editor = this.editor;
-
-       if (name != null) {
-               var xml = mxUtils.getPrettyXml(this.editor.getGraphXml());
-               try {
-                       if (useLocalStorage) {
-                               if (localStorage.getItem(name) != null &&
-                                       !mxUtils.confirm(mxResources.get('replace', [name]))) {
-                                       return;
-                               }
-
-                               localStorage.setItem(name, xml);
-                               this.editor.setStatus(mxResources.get('saved') + ' ' + new Date());
-                       } else {
-                               console.log(xml.length);
-                               console.log(MAX_REQUEST_SIZE);
-                               if (xml.length < MAX_REQUEST_SIZE) {
-                                       xml = encodeURIComponent(xml);
-                                       name = encodeURIComponent(name);
-
-                                       var xhr = new XMLHttpRequest();
-                                       xhr.open("POST", SAVE_URL, true);
-                                       xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-                                       xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
-                                       xhr.onload = function(e) {
-                                               if (xhr.readyState === 4) {
-                                                       if (xhr.status === 201) {
-                                                               editor.setStatus('Project ' + JSON.parse(xhr.response).name +
-                                                                       ' is opening in new window!');
-                                                               setTimeout(function() {
-                                                                       window.open('square/project/' + JSON.parse(xhr.response).id,
-                                                                               '_blank');
-                                                               }, 1500);
-                                                       } else {
-                                                               editor.setStatus('Error cloning project: ' +
-                                                                       JSON.parse(xhr.response).errors[0].message);
-                                                       }
-                                               }
-                                       };
-                                       xhr.onerror = function(e) {
-                                               mxUtils.alert(xhr.statusText);
-                                       };
-                                       xhr.send('description=project_cloned&name=' + name +
-                                               '&preproduction=' + xml + '&production=' + xml);
-                               } else {
-                                       mxUtils.alert(mxResources.get('drawingTooLarge'));
-                                       mxUtils.popup(xml);
-
-                                       return;
-                               }
-                       }
-
-                       this.editor.filename = name;
-                       this.editor.modified = false;
-               } catch (e) {
-                       this.editor.setStatus('Error saving file');
-               }
-       } else {
-               this.editor.setStatus('Error saving file');
-       }
-};
-
-/**
- * Plush the current graph under the given project name.
- */
-EditorUi.prototype.validate = function(a, b) {
-       var graph = this.editor.graph;
-       for (var a = a != null ? a : graph.model.getRoot(), b = b != null ? b : {}, c = true, d = graph.model.getChildCount(a), e = 0; e < d; e++) {
-               var f = graph.model.getChildAt(a, e),
-                       g = b;
-               graph.isValidRoot(f) && (g = {});
-               g = this.validate(f, g);
-               g != null ? graph.setCellWarning(f, g.replace(/\n/g, "<br>")) : graph.setCellWarning(f, null);
-               c = c && g == null
-       }
-
-       d = "";
-
-       //--- Giuseppe Careri - Modify 12/12/2013 - giuseppe.careri@gmail.com
-       if (graph.model.isVertex(a)) {
-               switch (a.value.nodeName) {
-                       case 'start':
-                               d = this.validateBlock('start') ? '' : "Only one Start block is allowed" + "\n";
-                               break;
-                       case 'finally':
-                               d = this.validateBlock('finally') ? '' : "Only one Finally block is allowed" + "\n";
-                               break;
-                       case 'playback':
-                               d = (a.value.getAttribute('file_id') > 0) ? "" : mxResources.get('noAudioSelected') + "\n";
-                               break;
-                       case 'background':
-                       case 'menu':
-                               d = (a.value.getAttribute('file_id') > 0) ? "" : mxResources.get('noAudioSelected') + "\n";
-                               d += (a.value.getAttribute('variable_id') > 0) ? "" : mxResources.get('noVariableSelected') + "\n";
-                               break;
-                       case 'getdigits':
-                               d = (a.value.getAttribute('file_id') > 0) ? "" : mxResources.get('noAudioSelected') + "\n";
-                               d += (a.value.getAttribute('variable_id') > 0) ? "" : mxResources.get('noVariableSelected') + "\n";
-                               break;
-                       case 'vswitch':
-                               d = (a.value.getAttribute('variable') !== "") ? "" : mxResources.get('noVariableSelected') + "\n";
-                               break;
-                       case 'database':
-                               d = (a.value.getAttribute('odbc_id') > 0) ? "" : mxResources.get('noDatabaseSelected') + "\n";
-                               break;
-                       case 'set':
-                       case 'math':
-                               d = (a.value.getAttribute('variable_id') > 0) ? "" : mxResources.get('noVariableSelected') + "\n";
-                               break;
-                       case 'gotoc':
-                               d = (a.value.getAttribute('extension') !== "") ? "" : mxResources.get('noExtensionSelected') + "\n";
-                               break;
-                       case 'system':
-                       case 'agi':
-                               d = (a.value.getAttribute('command') !== "") ? "" : mxResources.get('noCommandSelected') + "\n";
-                               break;
-                       case 'gotoif':
-                               d = (a.value.getAttribute('condition') !== "") ? "" : mxResources.get('noConditionSelected') + "\n";
-                               break;
-                       case 'saydigits':
-                               d = (a.value.getAttribute('digits') !== "") ? "" : mxResources.get('noDigitsSelected') + "\n";
-                               break;
-                       case 'saynumber':
-                               d = (a.value.getAttribute('number') !== "") ? "" : mxResources.get('noNumberSelected') + "\n";
-                               break;
-                       case 'sayphonetic':
-                               d = (a.value.getAttribute('text') !== "") ? "" : mxResources.get('noTextSelected') + "\n";
-                               break;
-                       case 'record':
-                               d = (a.value.getAttribute('filename') !== "") ? "" : mxResources.get('noFileSelected') + "\n";
-                               break;
-                       case 'goal':
-                               d = (a.value.getAttribute('goalname') !== "") ? "" : mxResources.get('noGoalSelected') + "\n";
-                               break;
-                       case 'ext_dial':
-                               d = (a.value.getAttribute('phone') !== "") ? "" : mxResources.get('noIdentifierSelected') + "\n";
-                               break;
-                       case 'dial':
-                               d = (a.value.getAttribute('sip_id') > 0) ? "" : mxResources.get('noIdentifierSelected') + "\n";
-                               break;
-                       case 'queue':
-                               d = (a.value.getAttribute('queue_id') !== "-1") ? "" : mxResources.get('noQueueSelected') + "\n";
-                               break;
-                       case 'callback':
-                               d = (a.value.getAttribute('list_id') > 0) ? "" : mxResources.get('noListSelected') + "\n";
-                               break;
-                       case 'gotoiftime':
-                               d = (a.value.getAttribute('interval_id') > 0) ? "" : mxResources.get('noIntervalSelected') + "\n";
-                               break;
-                       case 'gotoifmultitime':
-                               d = (a.value.getAttribute('interval_id') != "") ? "" : mxResources.get('noIntervalSelected') + "\n";
-                               break;
-                       case 'voicemail':
-                               d = (a.value.getAttribute('mailbox') !== "") ? "" : mxResources.get('noBoxNumberSelected') + "\n";
-                               break;
-                       case 'subproject':
-                               d = (a.value.getAttribute('project_id') > 0) ? "" : mxResources.get('noProjectSelected') + "\n";
-                               break;
-                       case 'tts':
-                               d = (a.value.getAttribute('text') !== "") ? "" : mxResources.get('noTextSelected') + "\n";
-                               break;
-                       case 'ispeechtts':
-                               d = (a.value.getAttribute('text') !== "") ? "" : mxResources.get('noTextSelected') + "\n";
-                               d += (a.value.getAttribute('key') !== "") ? "" : mxResources.get('noKeySelected') + "\n";
-                               break;
-                       case 'ispeechasr':
-                               d = (a.value.getAttribute('key') !== "") ? "" : mxResources.get('noKeySelected') + "\n";
-                               break;
-               }
-       }
-
-       if (graph.model.isEdge(a)) {
-               var z = graph.model.getCell(a.source.getId());
-               switch (z.value.nodeName) {
-                       case 'background':
-                               var patt = /^[0-9]{1,45}$|^[i]{1}$|^[t]{1}|^[#]{1}|^[*]{1}$/;
-                               d = d + ((patt.test(String(a.getValue()))) ? "" : mxResources.get('numberOrInvalidOrTimeout') + "\n");
-                               break;
-                       case 'menu':
-                               var patt = /^[0-9]{1,45}$|^[-]{1}$|^[i]{1}$|^[t]{1}|^[#]{1}|^[*]{1}$/;
-                               var str = String(a.getValue());
-                               var res = str.split(",");
-                               res.forEach(function(entry) {
-                                       d = d + ((patt.test(entry)) ? "" : mxResources.get('numberOrAll') + "\n");
-                               });
-                               break;
-                       case 'getdigits':
-                               var patt = /^(x|i|-)$/;
-                               var str = String(a.getValue());
-                               d = d + ((patt.test(str)) ? "" : mxResources.get('numberOrInvalidOrDefault') + "\n");
-                               break;
-                       case 'gotoif':
-                       case 'gotoiftime':
-                       case 'gotoifmultitime':
-                               var patt = /^(true){1}$|^(false){1}$/;
-                               d = d + ((patt.test(String(a.getValue()))) ? "" : mxResources.get('trueOrFalse') + "\n");
-                               break;
-
-               }
-       }
-       // -----------------------------------------------------------------
-
-
-       graph.isCellCollapsed(a) && !c && (d = d + ((mxResources.get(graph.containsValidationErrorsResource) || graph.containsValidationErrorsResource) + "\n"));
-       d = graph.model.isEdge(a) ?
-               d + (graph.getEdgeValidationError(a, graph.model.getTerminal(a, true), graph.model.getTerminal(a, false)) || "") : d + (graph.getCellValidationError(a) || "");
-       e = graph.validateCell(a, b);
-       e != null && (d = d + e);
-       graph.model.getParent(a) == null && graph.view.validate();
-       return d.length > 0 || !c ? d : null
-};
-EditorUi.prototype.validateBlock = function(blockName) {
-       var graph = this.editor.graph;
-       var parent = graph.getDefaultParent();
-       var count = 0;
-       // var model = graph.getModel();
-       //We can also use model.getChildren(parent)
-       parent.children.forEach(function(n) {
-               if (graph.model.isVertex(n) && n.value.nodeName == blockName) {
-                       count++;
-               }
-       });
-       return count > 1 ? false : true;
-}
-EditorUi.prototype.publish = function(name) {
-       var editor = this.editor;
-
-       if (name != null) {
-               var response = this.validate();
-               if (response === null) {
-
-                       var xml = mxUtils.getPrettyXml(this.editor.getGraphXml());
-                       try {
-                               if (useLocalStorage) {
-                                       if (localStorage.getItem(name) != null &&
-                                               !mxUtils.confirm(mxResources.get('replace', [name]))) {
-                                               return;
-                                       }
-
-                                       localStorage.setItem(name, xml);
-                                       this.editor.setStatus(mxResources.get('saved') + ' ' + new Date());
-                               } else {
-                                       console.log(xml.length);
-                                       console.log(MAX_REQUEST_SIZE);
-                                       if (xml.length < MAX_REQUEST_SIZE) {
-                                               xml = encodeURIComponent(xml);
-
-                                               var xhr = new XMLHttpRequest();
-                                               xhr.open("PUT", SAVE_URL + this.editor.data.id, true);
-                                               xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-                                               xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
-                                               xhr.onload = function(e) {
-                                                       if (xhr.readyState === 4) {
-                                                               if (xhr.status === 200) {
-                                                                       editor.setStatus('Published at ' + JSON.parse(xhr.response).updatedAt +
-                                                                               ' (' + xhr.status + ' ' + xhr.statusText + ')');
-                                                               } else {
-                                                                       editor.setStatus('Error saving project: ' +
-                                                                               JSON.parse(xhr.response).errors[0].message);
-                                                               }
-                                                       }
-                                               };
-                                               xhr.onerror = function(e) {
-                                                       mxUtils.alert(xhr.statusText);
-                                               };
-                                               xhr.send('preproduction=' + xml + '&production=' + xml);
-                                       } else {
-                                               mxUtils.alert(mxResources.get('drawingTooLarge'));
-                                               mxUtils.popup(xml);
-
-                                               return;
-                                       }
-                               }
-
-                               this.editor.filename = name;
-                               this.editor.modified = false;
-                       } catch (e) {
-                               this.editor.setStatus('Error publishing file');
-                       }
-               } else {
-                       editor.setStatus('Error publishing project: ');
-               }
-       } else {
-               this.editor.setStatus('Error publishing file');
-       }
-};
-
-
-/**
- * Create variable
- */
-EditorUi.prototype.variable = function(name) {
-       var editor = this.editor;
-
-       if (name != null) {
-               try {
-
-                       var xhr = new XMLHttpRequest();
-                       xhr.open("POST", VARIABLE_URL, true);
-                       xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-                       xhr.setRequestHeader('Authorization', 'Bearer ' + editor.data.token);
-                       xhr.onload = function(e) {
-                               if (xhr.readyState === 4) {
-                                       if (xhr.status === 201) {
-                                               editor.setStatus('Variable created at ' + JSON.parse(xhr.response).createdAt +
-                                                       ' (' + xhr.status + ' ' + xhr.statusText + ')');
-                                       } else {
-                                               editor.setStatus('Error creating variable: ' +
-                                                       JSON.parse(xhr.response).errors[0].message);
-                                       }
-                               }
-                       };
-                       xhr.onerror = function(e) {
-                               mxUtils.alert(xhr.statusText);
-                       };
-                       xhr.send('name=' + name);
-               } catch (e) {
-                       this.editor.setStatus('Error creating variable');
-               }
-       } else {
-               this.editor.setStatus('Error creating variable');
-       }
-};
-
-/**
- * Returns the URL for a copy of this editor with no state.
- */
-EditorUi.prototype.getUrl = function(pathname) {
-       var href = (pathname != null) ? pathname : window.location.pathname;
-       var parms = (href.indexOf('?') > 0) ? 1 : 0;
-
-       // Removes template URL parameter for new blank diagram
-       for (var key in urlParams) {
-               if (parms == 0) {
-                       href += '?';
-               } else {
-                       href += '&';
-               }
-
-               href += key + '=' + urlParams[key];
-               parms++;
-       }
-
-       return href;
-};
-
-/**
- * Updates the states of the given undo/redo items.
- */
-EditorUi.prototype.addUndoListener = function() {
-       var undo = this.actions.get('undo');
-       var redo = this.actions.get('redo');
-
-       var undoMgr = this.editor.undoManager;
-
-       var undoListener = function() {
-               undo.setEnabled(undoMgr.canUndo());
-               redo.setEnabled(undoMgr.canRedo());
-       };
-
-       undoMgr.addListener(mxEvent.ADD, undoListener);
-       undoMgr.addListener(mxEvent.UNDO, undoListener);
-       undoMgr.addListener(mxEvent.REDO, undoListener);
-       undoMgr.addListener(mxEvent.CLEAR, undoListener);
-
-       // Updates the button states once
-       undoListener();
-};
-
-/**
- * Updates the states of the given toolbar items based on the selection.
- */
-EditorUi.prototype.addSelectionListener = function() {
-       var selectionListener = mxUtils.bind(this, function() {
-               var graph = this.editor.graph;
-               var selected = !graph.isSelectionEmpty();
-               var vertexSelected = false;
-               var edgeSelected = false;
-
-               var cells = graph.getSelectionCells();
-
-               if (cells != null) {
-                       for (var i = 0; i < cells.length; i++) {
-                               var cell = cells[i];
-
-                               if (graph.getModel().isEdge(cell)) {
-                                       edgeSelected = true;
-                               }
-
-                               if (graph.getModel().isVertex(cell)) {
-                                       vertexSelected = true;
-                               }
-
-                               if (edgeSelected && vertexSelected) {
-                                       break;
-                               }
-                       }
-               }
-
-               // Updates action states
-               var actions = ['cut', 'copy', 'delete', 'duplicate', 'bold', 'italic',
-                       'style', 'underline', 'toFront', 'toBack', 'dashed', 'rounded',
-                       'shadow',
-                       'tilt', 'autosize'
-               ];
-
-               for (var i = 0; i < actions.length; i++) {
-                       this.actions.get(actions[i]).setEnabled(selected);
-               }
-
-               this.actions.get('curved').setEnabled(edgeSelected);
-               this.actions.get('rotation').setEnabled(vertexSelected);
-               this.actions.get('wordWrap').setEnabled(vertexSelected);
-               this.actions.get('group').setEnabled(graph.getSelectionCount() > 1);
-               this.actions.get('ungroup').setEnabled(graph.getSelectionCount() == 1 &&
-                       graph.getModel().getChildCount(graph.getSelectionCell()) > 0);
-               var oneVertexSelected = vertexSelected && graph.getSelectionCount() == 1;
-               this.actions.get('removeFromGroup').setEnabled(oneVertexSelected &&
-                       graph.getModel().isVertex(graph.getModel().getParent(graph.getSelectionCell()))
-               );
-
-               // Updates menu states
-               var menus = ['fontFamily', 'fontSize', 'alignment', 'position', 'text',
-                       'format',
-                       'arrange', 'linewidth', 'spacing'
-               ];
-
-               for (var i = 0; i < menus.length; i++) {
-                       this.menus.get(menus[i]).setEnabled(selected);
-               }
-
-               menus = ['line', 'lineend', 'linestart'];
-
-               for (var i = 0; i < menus.length; i++) {
-                       this.menus.get(menus[i]).setEnabled(edgeSelected);
-               }
-
-               this.actions.get('setAsDefaultEdge').setEnabled(edgeSelected);
-
-               this.menus.get('align').setEnabled(graph.getSelectionCount() > 1);
-               this.menus.get('direction').setEnabled(vertexSelected || (edgeSelected &&
-                       graph.isLoop(graph.view.getState(graph.getSelectionCell()))));
-               this.menus.get('navigation').setEnabled(graph.foldingEnabled && ((graph.view
-                               .currentRoot != null) ||
-                       (graph.getSelectionCount() == 1 && graph.isValidRoot(graph.getSelectionCell()))
-               ));
-               this.actions.get('home').setEnabled(graph.view.currentRoot != null);
-               this.actions.get('exitGroup').setEnabled(graph.view.currentRoot != null);
-               var groupEnabled = graph.getSelectionCount() == 1 && graph.isValidRoot(
-                       graph.getSelectionCell());
-               this.actions.get('enterGroup').setEnabled(groupEnabled);
-               this.actions.get('expand').setEnabled(groupEnabled);
-               this.actions.get('collapse').setEnabled(groupEnabled);
-               this.actions.get('editLink').setEnabled(graph.getSelectionCount() == 1);
-               this.actions.get('openLink').setEnabled(graph.getSelectionCount() == 1 &&
-                       graph.getLinkForCell(graph.getSelectionCell()) != null);
-       });
-
-       this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,
-               selectionListener);
-       selectionListener();
-};
-
-/**
- * Refreshes the viewport.
- */
-EditorUi.prototype.refresh = function() {
-       var quirks = mxClient.IS_IE && (document.documentMode == null || document.documentMode ==
-               5);
-       var w = this.container.clientWidth;
-       var h = this.container.clientHeight;
-
-       if (this.container == document.body) {
-               w = document.body.clientWidth || document.documentElement.clientWidth;
-               h = (quirks) ? document.body.clientHeight || document.documentElement.clientHeight :
-                       document.documentElement.clientHeight;
-       }
-
-       var effHsplitPosition = Math.max(0, Math.min(this.hsplitPosition, w - this.splitSize -
-               20));
-       var effVsplitPosition = Math.max(0, Math.min(this.vsplitPosition, h - this.menubarHeight -
-               this.toolbarHeight - this.footerHeight - this.splitSize - 1));
-
-       this.menubarContainer.style.height = this.menubarHeight + 'px';
-       this.toolbarContainer.style.top = this.menubarHeight + 'px';
-       this.toolbarContainer.style.height = this.toolbarHeight + 'px';
-
-       var tmp = this.menubarHeight + this.toolbarHeight;
-
-       if (!mxClient.IS_QUIRKS) {
-               tmp += 1;
-       }
-
-       this.sidebarContainer.style.top = tmp + 'px';
-       this.sidebarContainer.style.width = effHsplitPosition + 'px';
-       this.outlineContainer.style.width = effHsplitPosition + 'px';
-       this.outlineContainer.style.height = effVsplitPosition + 'px';
-       this.outlineContainer.style.bottom = this.footerHeight + 'px';
-       this.diagramContainer.style.left = (effHsplitPosition + this.splitSize) +
-               'px';
-       this.diagramContainer.style.top = this.sidebarContainer.style.top;
-       this.footerContainer.style.height = this.footerHeight + 'px';
-       this.footerContainer.style.display = 'none';
-       this.hsplit.style.top = this.sidebarContainer.style.top;
-       this.hsplit.style.bottom = this.outlineContainer.style.bottom;
-       this.hsplit.style.left = effHsplitPosition + 'px';
-       this.vsplit.style.width = this.sidebarContainer.style.width;
-       this.vsplit.style.bottom = (effVsplitPosition + this.footerHeight) + 'px';
-
-       if (quirks) {
-               this.menubarContainer.style.width = w + 'px';
-               this.toolbarContainer.style.width = this.menubarContainer.style.width;
-               var sidebarHeight = (h - effVsplitPosition - this.splitSize - this.footerHeight -
-                       this.menubarHeight - this.toolbarHeight);
-               this.sidebarContainer.style.height = sidebarHeight + 'px';
-               this.diagramContainer.style.width = (w - effHsplitPosition - this.splitSize) +
-                       'px';
-               var diagramHeight = (h - this.footerHeight - this.menubarHeight - this.toolbarHeight);
-               this.diagramContainer.style.height = diagramHeight + 'px';
-               this.footerContainer.style.width = this.menubarContainer.style.width;
-               this.hsplit.style.height = diagramHeight + 'px';
-       } else {
-               this.sidebarContainer.style.bottom = (effVsplitPosition + this.splitSize +
-                       this.footerHeight) + 'px';
-               this.diagramContainer.style.bottom = this.outlineContainer.style.bottom;
-       }
-};
-
-/**
- * Creates the required containers.
- */
-EditorUi.prototype.createDivs = function() {
-       this.menubarContainer = this.createDiv('geMenubarContainer');
-       this.toolbarContainer = this.createDiv('geToolbarContainer');
-       this.sidebarContainer = this.createDiv('geSidebarContainer');
-       this.outlineContainer = this.createDiv('geOutlineContainer');
-       this.diagramContainer = this.createDiv('geDiagramContainer');
-       this.footerContainer = this.createDiv('geFooterContainer');
-       this.hsplit = this.createDiv('geHsplit');
-       this.vsplit = this.createDiv('geVsplit');
-
-       // Sets static style for containers
-       this.menubarContainer.style.top = '0px';
-       this.menubarContainer.style.left = '0px';
-       this.menubarContainer.style.right = '0px';
-       this.toolbarContainer.style.left = '0px';
-       this.toolbarContainer.style.right = '0px';
-       this.sidebarContainer.style.left = '0px';
-       this.outlineContainer.style.left = '0px';
-       this.diagramContainer.style.right = '0px';
-       this.footerContainer.style.left = '0px';
-       this.footerContainer.style.right = '0px';
-       this.footerContainer.style.bottom = '0px';
-       this.vsplit.style.left = '0px';
-       this.vsplit.style.height = this.splitSize + 'px';
-       this.hsplit.style.width = this.splitSize + 'px';
-};
-
-/**
- * Creates the required containers.
- */
-EditorUi.prototype.createUi = function() {
-       // Creates menubar
-       this.menubar = this.menus.createMenubar(this.createDiv('geMenubar'));
-       this.menubarContainer.appendChild(this.menubar.container);
-
-       // Creates toolbar
-       this.toolbar = this.createToolbar(this.createDiv('geToolbar'));
-       this.toolbarContainer.appendChild(this.toolbar.container);
-
-       // Creates the sidebar
-       this.sidebar = this.createSidebar(this.sidebarContainer);
-
-       // Creates the footer
-       this.footerContainer.appendChild(this.createFooter());
-
-       // Adds status bar in menubar
-       this.statusContainer = this.createStatusContainer();
-
-       // Connects the status bar to the editor status
-       this.editor.addListener('statusChanged', mxUtils.bind(this, function() {
-               this.setStatusText(this.editor.getStatus());
-       }));
-
-       this.setStatusText(this.editor.getStatus());
-       this.menubar.container.appendChild(this.statusContainer);
-
-       // Inserts into DOM
-       this.container.appendChild(this.menubarContainer);
-       this.container.appendChild(this.toolbarContainer);
-       this.container.appendChild(this.sidebarContainer);
-       this.container.appendChild(this.outlineContainer);
-       this.container.appendChild(this.diagramContainer);
-       this.container.appendChild(this.footerContainer);
-       this.container.appendChild(this.hsplit);
-       this.container.appendChild(this.vsplit);
-
-       // HSplit
-       this.addSplitHandler(this.hsplit, true, 0, mxUtils.bind(this, function(
-               value) {
-               this.hsplitPosition = value;
-               this.refresh();
-               this.editor.graph.sizeDidChange();
-               this.editor.outline.update(false);
-               this.editor.outline.outline.sizeDidChange();
-       }));
-
-       // VSplit
-       this.addSplitHandler(this.vsplit, false, this.footerHeight, mxUtils.bind(
-               this,
-               function(value) {
-                       this.vsplitPosition = value;
-                       this.refresh();
-                       this.editor.outline.update(false);
-                       this.editor.outline.outline.sizeDidChange();
-               }));
-};
-
-/**
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.createStatusContainer = function() {
-       var container = document.createElement('a');
-       container.className = 'geItem geStatus';
-
-       return container;
-};
-
-/**
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.createStatusContainer = function() {
-       var container = document.createElement('a');
-       container.className = 'geItem geStatus';
-
-       return container;
-};
-
-/**
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.setStatusText = function(value) {
-       this.statusContainer.innerHTML = value;
-};
-
-/**
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.createToolbar = function(container) {
-       return new Toolbar(this, container);
-};
-
-/**
- * Creates a new sidebar for the given container.
- */
-EditorUi.prototype.createSidebar = function(container) {
-       return new Sidebar(this, container);
-};
-
-/**
- * Creates and returns a new footer.
- */
-EditorUi.prototype.createFooter = function() {
-       return this.createDiv('geFooter');
-};
-
-/**
- * Creates the actual toolbar for the toolbar container.
- */
-EditorUi.prototype.createDiv = function(classname) {
-       var elt = document.createElement('div');
-       elt.className = classname;
-
-       return elt;
-};
-
-/**
- * Creates the custom header.
- */
-EditorUi.prototype.createHeader = function(classname) {
-       var elt = document.createElement(classname);
-       return elt;
-};
-
-/**
- * Creates the custom header.
- */
-EditorUi.prototype.createForm = function(classname) {
-       var elt = document.createElement('form');
-       elt.className = classname;
-
-       return elt;
-};
-
-/**
- * Updates the states of the given undo/redo items.
- */
-EditorUi.prototype.addSplitHandler = function(elt, horizontal, dx, onChange) {
-       var start = null;
-       var initial = null;
-
-       function getValue() {
-               return parseInt(((horizontal) ? elt.style.left : elt.style.bottom));
-       };
-
-       function moveHandler(evt) {
-               if (start != null) {
-                       var pt = new mxPoint(mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-                       onChange(Math.max(0, initial + ((horizontal) ? (pt.x - start.x) : (start.y -
-                               pt.y)) - dx));
-                       mxEvent.consume(evt);
-               }
-       };
-
-       function dropHandler(evt) {
-               moveHandler(evt);
-               start = null;
-               initial = null;
-       };
-
-       mxEvent.addGestureListeners(elt, function(evt) {
-               start = new mxPoint(mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-               initial = getValue();
-               mxEvent.consume(evt);
-       });
-
-       mxEvent.addListener(document, 'mousemove', moveHandler);
-       mxEvent.addListener(document, 'touchmove', moveHandler);
-       mxEvent.addListener(document, 'mouseup', dropHandler);
-       mxEvent.addListener(document, 'touchend', dropHandler);
-};
-
-/**
- * Displays a print dialog.
- */
-EditorUi.prototype.showDialog = function(elt, w, h, modal, closable, onClose) {
-       this.hideDialog();
-       this.dialog = new Dialog(this, elt, w, (mxClient.IS_VML) ? h - 12 : h,
-               modal,
-               closable, onClose);
-};
-
-/**
- * Displays a print dialog.
- */
-EditorUi.prototype.hideDialog = function() {
-       if (this.dialog != null) {
-               this.dialog.close();
-               this.dialog = null;
-               this.editor.graph.container.focus();
-       }
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-EditorUi.prototype.saveFile = function(forceDialog) {
-       if (!forceDialog && this.editor.filename != null) {
-               this.save(this.editor.getOrCreateFilename());
-       } else {
-               this.showDialog(new SaveDialog(this).container, 300, 100, true, true);
-       }
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-EditorUi.prototype.publishFile = function(forceDialog) {
-       if (!forceDialog && this.editor.filename != null) {
-               this.publish(this.editor.getOrCreateFilename());
-       } else {
-               //this.showDialog(new SaveDialog(this).container, 300, 100, true, true);
-       }
-};
-
-/**
- * Executes the given layout.
- */
-EditorUi.prototype.executeLayout = function(layout, animate, ignoreChildCount) {
-       var graph = this.editor.graph;
-       var cell = graph.getSelectionCell();
-
-       // Allow global overridding of animation
-       animate = this.animate != null ? this.animate : animate;
-
-       graph.getModel().beginUpdate();
-       try {
-               layout.execute(graph.getDefaultParent(), cell);
-       } catch (e) {
-               throw e;
-       } finally {
-               // Animates the changes in the graph model except
-               // for Camino, where animation is too slow
-               if (animate && navigator.userAgent.indexOf('Camino') < 0) {
-                       // New API for animating graph layout results asynchronously
-                       var morph = new mxMorphing(graph);
-                       morph.addListener(mxEvent.DONE, mxUtils.bind(this, function() {
-                               graph.getModel().endUpdate();
-                       }));
-
-                       morph.startAnimation();
-               } else {
-                       graph.getModel().endUpdate();
-               }
-       }
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-EditorUi.prototype.createKeyHandler = function(editor) {
-       var graph = this.editor.graph;
-       var keyHandler = new mxKeyHandler(graph);
-
-       // Routes command-key to control-key on Mac
-       keyHandler.isControlDown = function(evt) {
-               return mxEvent.isControlDown(evt) || (mxClient.IS_MAC && evt.metaKey);
-       };
-
-       // Helper function to move cells with the cursor keys
-       function nudge(keyCode) {
-               if (!graph.isSelectionEmpty()) {
-                       var dx = 0;
-                       var dy = 0;
-
-                       if (keyCode == 37) {
-                               dx = -1;
-                       } else if (keyCode == 38) {
-                               dy = -1;
-                       } else if (keyCode == 39) {
-                               dx = 1;
-                       } else if (keyCode == 40) {
-                               dy = 1;
-                       }
-
-                       graph.moveCells(graph.getSelectionCells(), dx, dy);
-                       graph.scrollCellToVisible(graph.getSelectionCell());
-               }
-       };
-
-       // Binds keystrokes to actions
-       var bindAction = mxUtils.bind(this, function(code, control, key, shift) {
-               var action = this.actions.get(key);
-
-               if (action != null) {
-                       var f = function() {
-                               if (action.enabled) {
-                                       action.funct();
-                               }
-                       };
-
-                       if (control) {
-                               if (shift) {
-                                       keyHandler.bindControlShiftKey(code, f);
-                               } else {
-                                       keyHandler.bindControlKey(code, f);
-                               }
-                       } else {
-                               if (shift) {
-                                       keyHandler.bindShiftKey(code, f);
-                               } else {
-                                       keyHandler.bindKey(code, f);
-                               }
-                       }
-               }
-       });
-
-       var ui = this;
-       var keyHandleEscape = keyHandler.escape;
-       keyHandler.escape = function(evt) {
-               ui.hideDialog();
-               keyHandleEscape.apply(this, arguments);
-       };
-
-       // Ignores enter keystroke. Remove this line if you want the
-       // enter keystroke to stop editing.
-       keyHandler.enter = function() {};
-       keyHandler.bindKey(8, function() {
-               graph.foldCells(true);
-       }); // Backspace
-       keyHandler.bindKey(13, function() {
-               graph.foldCells(false);
-       }); // Enter
-       keyHandler.bindKey(33, function() {
-               graph.exitGroup();
-       }); // Page Up
-       keyHandler.bindKey(34, function() {
-               graph.enterGroup();
-       }); // Page Down
-       keyHandler.bindKey(36, function() {
-               graph.home();
-       }); // Home
-       keyHandler.bindKey(35, function() {
-               graph.refresh();
-       }); // End
-       keyHandler.bindKey(37, function() {
-               nudge(37);
-       }); // Left arrow
-       keyHandler.bindKey(38, function() {
-               nudge(38);
-       }); // Up arrow
-       keyHandler.bindKey(39, function() {
-               nudge(39);
-       }); // Right arrow
-       keyHandler.bindKey(40, function() {
-               nudge(40);
-       }); // Down arrow
-       keyHandler.bindKey(113, function() {
-               graph.startEditingAtCell();
-       });
-       bindAction(46, false, 'delete'); // Delete
-       bindAction(82, true, 'tilt'); // Ctrl+R
-       bindAction(83, true, 'save'); // Ctrl+S
-       bindAction(83, true, 'saveAs', true); // Ctrl+Shift+S
-       bindAction(107, false, 'zoomIn'); // Add
-       bindAction(109, false, 'zoomOut'); // Subtract
-       bindAction(65, true, 'selectAll'); // Ctrl+A
-       bindAction(86, true, 'selectVertices', true); // Ctrl+Shift+V
-       bindAction(69, true, 'selectEdges', true); // Ctrl+Shift+E
-       bindAction(69, true, 'export'); // Ctrl+Shift+E
-       bindAction(66, true, 'toBack'); // Ctrl+B
-       bindAction(70, true, 'toFront'); // Ctrl+F
-       bindAction(68, true, 'duplicate'); // Ctrl+D
-       bindAction(90, true, 'undo'); // Ctrl+Z
-       bindAction(89, true, 'redo'); // Ctrl+Y
-       bindAction(88, true, 'cut'); // Ctrl+X
-       bindAction(67, true, 'copy'); // Ctrl+C
-       bindAction(81, true, 'connect'); // Ctrl+Q
-       bindAction(86, true, 'paste'); // Ctrl+V
-       bindAction(71, true, 'group'); // Ctrl+G
-       bindAction(71, true, 'grid', true); // Ctrl+Shift+G
-       bindAction(85, true, 'ungroup'); // Ctrl+U
-       bindAction(112, false, 'about'); // F1
-       bindAction(80, true, 'publish', true); // Ctrl+Shift+P
-
-       return keyHandler;
-};
-
-/**
- * Giuseppe Careri
- * Creates a new toolbar for the given container.
- */
-EditorUi.prototype.createMultiplicities = function(graph, cells, source,
-       target) {
-       for (var i = 0; i < cells.length; i++) {
-
-               graph.push(new mxMultiplicity(true, cells[i], null, null, source[i][0],
-                       source[i][1], null, mxResources.get(cells[i]) + mxResources.get('musthave') + source[i][0] + mxResources.get('outgoingedge'), null));
-               graph.push(new mxMultiplicity(false, cells[i], null, null, target[i][0],
-                       target[i][1], null, mxResources.get(cells[i]) + mxResources.get('musthave') + target[i][0] + mxResources.get('incomingedge'), null));
-       };
-};
+var _0x21fa=["\x65\x64\x69\x74\x6F\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x45\x64\x69\x74\x6F\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x67\x72\x61\x70\x68","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x73\x72\x63","\x73\x75\x62\x6D\x65\x6E\x75\x49\x6D\x61\x67\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x61\x63\x74\x69\x6F\x6E\x73","\x6D\x65\x6E\x75\x73","\x63\x72\x65\x61\x74\x65\x44\x69\x76\x73","\x72\x65\x66\x72\x65\x73\x68","\x63\x72\x65\x61\x74\x65\x55\x69","\x65\x76\x65\x6E\x74","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x41\x6C\x6C\x6F\x77\x65\x64","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x62\x69\x6E\x64","\x62\x6F\x64\x79","\x6F\x6E\x73\x65\x6C\x65\x63\x74\x73\x74\x61\x72\x74","\x6D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x6E\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x74\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x64\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x66\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x49\x53\x5F\x49\x45","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x4D\x6F\x64\x65","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6F\x6E\x63\x6F\x6E\x74\x65\x78\x74\x6D\x65\x6E\x75","\x69\x6E\x69\x74","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x75\x72\x73\x6F\x72","\x64\x65\x66\x61\x75\x6C\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x67\x72\x69\x64\x49\x6D\x61\x67\x65","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x2D\x31\x70\x78\x20\x2D\x31\x70\x78","\x66\x6F\x63\x75\x73","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x61\x70\x70\x6C\x79","\x6D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x73\x74\x61\x72\x74","\x66\x69\x6E\x61\x6C\x6C\x79","\x65\x6E\x64","\x6E","\x63\x72\x65\x61\x74\x65\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x69\x74\x69\x65\x73","\x61\x6E\x73\x77\x65\x72","\x68\x61\x6E\x67\x75\x70","\x64\x69\x61\x6C","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x71\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x73\x65\x74","\x6D\x61\x74\x68","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x6D\x65\x6E\x75","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x74\x74\x73","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x72\x65\x63\x6F\x72\x64","\x64\x61\x74\x61\x62\x61\x73\x65","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x67\x6F\x74\x6F\x63","\x67\x6F\x74\x6F\x69\x66","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x67\x6F\x74\x6F\x69\x66\x6D\x75\x6C\x74\x69\x74\x69\x6D\x65","\x76\x73\x77\x69\x74\x63\x68","\x71\x75\x65\x75\x65\x6C\x6F\x67","\x67\x6F\x61\x6C","\x6E\x6F\x6F\x70","\x73\x79\x73\x74\x65\x6D","\x61\x67\x69","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x65\x6C\x6C","\x66\x69\x72\x65\x45\x76\x65\x6E\x74","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x74\x61\x67\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x73\x6F\x75\x72\x63\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x74\x61\x72\x74\x45\x64\x69\x74\x69\x6E\x67\x41\x74\x43\x65\x6C\x6C","\x69\x73\x56\x65\x72\x74\x65\x78","\x6C\x6F\x67","\x73\x68\x6F\x77\x44\x69\x61\x6C\x6F\x67","\x63\x6F\x6E\x73\x75\x6D\x65","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x6F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x6F\x75\x74\x6C\x69\x6E\x65","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x67\x65\x73\x74\x75\x72\x65\x63\x68\x61\x6E\x67\x65","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x73\x63\x61\x6C\x65\x28","\x73\x63\x61\x6C\x65","\x67\x65\x74\x44\x72\x61\x77\x50\x61\x6E\x65","\x76\x69\x65\x77","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x73\x74\x75\x72\x65\x65\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x7A\x6F\x6F\x6D\x54\x6F\x43\x65\x6E\x74\x65\x72","\x7A\x6F\x6F\x6D","\x76\x69\x73\x69\x62\x6C\x65","\x63\x72\x65\x61\x74\x65\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x4B\x65\x79\x48\x61\x6E\x64\x6C\x65\x72","\x72\x65\x73\x69\x7A\x65","\x73\x69\x7A\x65\x44\x69\x64\x43\x68\x61\x6E\x67\x65","\x75\x70\x64\x61\x74\x65","\x6F\x70\x65\x6E","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6D\x65\x6E\x75\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x74\x6F\x6F\x6C\x62\x61\x72\x48\x65\x69\x67\x68\x74","\x66\x6F\x6F\x74\x65\x72\x48\x65\x69\x67\x68\x74","\x68\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x73\x70\x6C\x69\x74\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x55\x6E\x64\x6F\x4C\x69\x73\x74\x65\x6E\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x73\x74\x65","\x67\x65\x74","\x69\x73\x45\x6D\x70\x74\x79","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x74","\x63\x6F\x70\x79","\x6F\x70\x65\x6E\x65\x72","\x6F\x70\x65\x6E\x46\x69\x6C\x65","\x70\x61\x72\x73\x65\x58\x6D\x6C","\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x73\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x6D\x6F\x64\x69\x66\x69\x65\x64","\x63\x6C\x65\x61\x72","\x75\x6E\x64\x6F\x4D\x61\x6E\x61\x67\x65\x72","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x69\x6E\x76\x61\x6C\x69\x64\x4F\x72\x4D\x69\x73\x73\x69\x6E\x67\x46\x69\x6C\x65","\x3A\x20","\x6D\x65\x73\x73\x61\x67\x65","\x61\x6C\x65\x72\x74","\x73\x65\x74\x43\x6F\x6E\x73\x75\x6D\x65\x72","\x6F\x70\x65\x6E\x53\x74\x72\x69\x6E\x67","\x64\x61\x74\x61","\x6E\x65\x77","\x67\x65\x74\x47\x72\x61\x70\x68\x58\x6D\x6C","\x67\x65\x74\x50\x72\x65\x74\x74\x79\x58\x6D\x6C","\x67\x65\x74\x49\x74\x65\x6D","\x72\x65\x70\x6C\x61\x63\x65","\x63\x6F\x6E\x66\x69\x72\x6D","\x73\x65\x74\x49\x74\x65\x6D","\x73\x61\x76\x65\x64","\x20","\x73\x65\x74\x53\x74\x61\x74\x75\x73","\x6C\x65\x6E\x67\x74\x68","\x50\x4F\x53\x54","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x65\x61\x72\x65\x72\x20","\x74\x6F\x6B\x65\x6E","\x6F\x6E\x6C\x6F\x61\x64","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x50\x72\x6F\x6A\x65\x63\x74\x20","\x6E\x61\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x70\x61\x72\x73\x65","\x20\x69\x73\x20\x6F\x70\x65\x6E\x69\x6E\x67\x20\x69\x6E\x20\x6E\x65\x77\x20\x77\x69\x6E\x64\x6F\x77\x21","\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x2F","\x69\x64","\x5F\x62\x6C\x61\x6E\x6B","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x65\x72\x72\x6F\x72\x73","\x6F\x6E\x65\x72\x72\x6F\x72","\x73\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x65\x77\x26\x6E\x61\x6D\x65\x3D","\x73\x65\x6E\x64","\x64\x72\x61\x77\x69\x6E\x67\x54\x6F\x6F\x4C\x61\x72\x67\x65","\x70\x6F\x70\x75\x70","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74","\x73\x61\x76\x65","\x50\x55\x54","\x55\x70\x64\x61\x74\x65\x64\x20\x61\x74\x20","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x20\x28","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x66\x69\x6C\x65","\x73\x61\x76\x65\x41\x73","\x45\x72\x72\x6F\x72\x20\x63\x6C\x6F\x6E\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x3D\x70\x72\x6F\x6A\x65\x63\x74\x5F\x63\x6C\x6F\x6E\x65\x64\x26\x6E\x61\x6D\x65\x3D","\x26\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x26\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E\x3D","\x76\x61\x6C\x69\x64\x61\x74\x65","\x67\x65\x74\x52\x6F\x6F\x74","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x43\x68\x69\x6C\x64\x43\x6F\x75\x6E\x74","\x67\x65\x74\x43\x68\x69\x6C\x64\x41\x74","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x3C\x62\x72\x3E","\x73\x65\x74\x43\x65\x6C\x6C\x57\x61\x72\x6E\x69\x6E\x67","","\x76\x61\x6C\x69\x64\x61\x74\x65\x42\x6C\x6F\x63\x6B","\x4F\x6E\x6C\x79\x20\x6F\x6E\x65\x20\x53\x74\x61\x72\x74\x20\x62\x6C\x6F\x63\x6B\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64","\x0A","\x4F\x6E\x6C\x79\x20\x6F\x6E\x65\x20\x46\x69\x6E\x61\x6C\x6C\x79\x20\x62\x6C\x6F\x63\x6B\x20\x69\x73\x20\x61\x6C\x6C\x6F\x77\x65\x64","\x66\x69\x6C\x65\x5F\x69\x64","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6E\x6F\x41\x75\x64\x69\x6F\x53\x65\x6C\x65\x63\x74\x65\x64","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6E\x6F\x56\x61\x72\x69\x61\x62\x6C\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6F\x64\x62\x63\x5F\x69\x64","\x6E\x6F\x44\x61\x74\x61\x62\x61\x73\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6E\x6F\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x6F\x6D\x6D\x61\x6E\x64","\x6E\x6F\x43\x6F\x6D\x6D\x61\x6E\x64\x53\x65\x6C\x65\x63\x74\x65\x64","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x6E\x6F\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x53\x65\x6C\x65\x63\x74\x65\x64","\x64\x69\x67\x69\x74\x73","\x6E\x6F\x44\x69\x67\x69\x74\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x6E\x75\x6D\x62\x65\x72","\x6E\x6F\x4E\x75\x6D\x62\x65\x72\x53\x65\x6C\x65\x63\x74\x65\x64","\x74\x65\x78\x74","\x6E\x6F\x54\x65\x78\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x46\x69\x6C\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x67\x6F\x61\x6C\x6E\x61\x6D\x65","\x6E\x6F\x47\x6F\x61\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x70\x68\x6F\x6E\x65","\x6E\x6F\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x53\x65\x6C\x65\x63\x74\x65\x64","\x73\x69\x70\x5F\x69\x64","\x71\x75\x65\x75\x65\x5F\x69\x64","\x2D\x31","\x6E\x6F\x51\x75\x65\x75\x65\x53\x65\x6C\x65\x63\x74\x65\x64","\x6C\x69\x73\x74\x5F\x69\x64","\x6E\x6F\x4C\x69\x73\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x6E\x6F\x49\x6E\x74\x65\x72\x76\x61\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x6D\x61\x69\x6C\x62\x6F\x78","\x6E\x6F\x42\x6F\x78\x4E\x75\x6D\x62\x65\x72\x53\x65\x6C\x65\x63\x74\x65\x64","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x6E\x6F\x50\x72\x6F\x6A\x65\x63\x74\x53\x65\x6C\x65\x63\x74\x65\x64","\x6B\x65\x79","\x6E\x6F\x4B\x65\x79\x53\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x67\x65\x74\x49\x64","\x67\x65\x74\x43\x65\x6C\x6C","\x67\x65\x74\x56\x61\x6C\x75\x65","\x74\x65\x73\x74","\x6E\x75\x6D\x62\x65\x72\x4F\x72\x49\x6E\x76\x61\x6C\x69\x64\x4F\x72\x54\x69\x6D\x65\x6F\x75\x74","\x2C","\x73\x70\x6C\x69\x74","\x6E\x75\x6D\x62\x65\x72\x4F\x72\x41\x6C\x6C","\x66\x6F\x72\x45\x61\x63\x68","\x6E\x75\x6D\x62\x65\x72\x4F\x72\x49\x6E\x76\x61\x6C\x69\x64\x4F\x72\x44\x65\x66\x61\x75\x6C\x74","\x74\x72\x75\x65\x4F\x72\x46\x61\x6C\x73\x65","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6C\x6C\x61\x70\x73\x65\x64","\x63\x6F\x6E\x74\x61\x69\x6E\x73\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72\x73\x52\x65\x73\x6F\x75\x72\x63\x65","\x67\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C","\x67\x65\x74\x45\x64\x67\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x67\x65\x74\x43\x65\x6C\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E\x45\x72\x72\x6F\x72","\x76\x61\x6C\x69\x64\x61\x74\x65\x43\x65\x6C\x6C","\x67\x65\x74\x50\x61\x72\x65\x6E\x74","\x67\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x50\x61\x72\x65\x6E\x74","\x63\x68\x69\x6C\x64\x72\x65\x6E","\x70\x75\x62\x6C\x69\x73\x68","\x50\x75\x62\x6C\x69\x73\x68\x65\x64\x20\x61\x74\x20","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x66\x69\x6C\x65","\x45\x72\x72\x6F\x72\x20\x70\x75\x62\x6C\x69\x73\x68\x69\x6E\x67\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20","\x56\x61\x72\x69\x61\x62\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64\x20\x61\x74\x20","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x3A\x20","\x6E\x61\x6D\x65\x3D","\x45\x72\x72\x6F\x72\x20\x63\x72\x65\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65","\x67\x65\x74\x55\x72\x6C","\x70\x61\x74\x68\x6E\x61\x6D\x65","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x26","\x3D","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x61\x6E\x55\x6E\x64\x6F","\x63\x61\x6E\x52\x65\x64\x6F","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x64\x61\x73\x68\x65\x64","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x68\x61\x64\x6F\x77","\x74\x69\x6C\x74","\x61\x75\x74\x6F\x73\x69\x7A\x65","\x63\x75\x72\x76\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x77\x6F\x72\x64\x57\x72\x61\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x67\x72\x6F\x75\x70","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x6F\x72\x6D\x61\x74","\x61\x72\x72\x61\x6E\x67\x65","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x73\x70\x61\x63\x69\x6E\x67","\x6C\x69\x6E\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x61\x6C\x69\x67\x6E","\x67\x65\x74\x53\x74\x61\x74\x65","\x69\x73\x4C\x6F\x6F\x70","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x63\x75\x72\x72\x65\x6E\x74\x52\x6F\x6F\x74","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x65\x64\x69\x74\x4C\x69\x6E\x6B","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74","\x6D\x69\x6E","\x6D\x61\x78","\x68\x65\x69\x67\x68\x74","\x70\x78","\x74\x6F\x70","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x77\x69\x64\x74\x68","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x64\x69\x73\x70\x6C\x61\x79","\x6E\x6F\x6E\x65","\x68\x73\x70\x6C\x69\x74","\x76\x73\x70\x6C\x69\x74","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x44\x69\x76","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x4F\x75\x74\x6C\x69\x6E\x65\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x44\x69\x61\x67\x72\x61\x6D\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x46\x6F\x6F\x74\x65\x72\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x67\x65\x48\x73\x70\x6C\x69\x74","\x67\x65\x56\x73\x70\x6C\x69\x74","\x30\x70\x78","\x72\x69\x67\x68\x74","\x6D\x65\x6E\x75\x62\x61\x72","\x67\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x74\x6F\x6F\x6C\x62\x61\x72","\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x54\x6F\x6F\x6C\x62\x61\x72","\x73\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x53\x69\x64\x65\x62\x61\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x6F\x74\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x75\x73\x43\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x73\x74\x61\x74\x75\x73\x43\x68\x61\x6E\x67\x65\x64","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x65\x74\x53\x74\x61\x74\x75\x73\x54\x65\x78\x74","\x61\x64\x64\x53\x70\x6C\x69\x74\x48\x61\x6E\x64\x6C\x65\x72","\x61","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D\x20\x67\x65\x53\x74\x61\x74\x75\x73","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x67\x65\x46\x6F\x6F\x74\x65\x72","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x48\x65\x61\x64\x65\x72","\x63\x72\x65\x61\x74\x65\x46\x6F\x72\x6D","\x66\x6F\x72\x6D","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x78","\x79","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x74\x6F\x75\x63\x68\x6D\x6F\x76\x65","\x6D\x6F\x75\x73\x65\x75\x70","\x74\x6F\x75\x63\x68\x65\x6E\x64","\x68\x69\x64\x65\x44\x69\x61\x6C\x6F\x67","\x64\x69\x61\x6C\x6F\x67","\x49\x53\x5F\x56\x4D\x4C","\x63\x6C\x6F\x73\x65","\x73\x61\x76\x65\x46\x69\x6C\x65","\x67\x65\x74\x4F\x72\x43\x72\x65\x61\x74\x65\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x70\x75\x62\x6C\x69\x73\x68\x46\x69\x6C\x65","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x61\x6E\x69\x6D\x61\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x65\x78\x65\x63\x75\x74\x65","\x43\x61\x6D\x69\x6E\x6F","\x75\x73\x65\x72\x41\x67\x65\x6E\x74","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x41\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x49\x53\x5F\x4D\x41\x43","\x6D\x65\x74\x61\x4B\x65\x79","\x6D\x6F\x76\x65\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x65\x6E\x61\x62\x6C\x65\x64","\x66\x75\x6E\x63\x74","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x43\x6F\x6E\x74\x72\x6F\x6C\x4B\x65\x79","\x62\x69\x6E\x64\x53\x68\x69\x66\x74\x4B\x65\x79","\x62\x69\x6E\x64\x4B\x65\x79","\x65\x73\x63\x61\x70\x65","\x65\x6E\x74\x65\x72","\x66\x6F\x6C\x64\x43\x65\x6C\x6C\x73","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x65\x78\x70\x6F\x72\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x67\x72\x69\x64","\x61\x62\x6F\x75\x74","\x6D\x75\x73\x74\x68\x61\x76\x65","\x6F\x75\x74\x67\x6F\x69\x6E\x67\x65\x64\x67\x65","\x70\x75\x73\x68","\x69\x6E\x63\x6F\x6D\x69\x6E\x67\x65\x64\x67\x65"];EditorUi=function(_0x7aa7x1,_0x7aa7x2){this[_0x21fa[0]]=_0x7aa7x1|| new Editor();this[_0x21fa[1]]=_0x7aa7x2||document[_0x21fa[3]](_0x21fa[2]);var _0x7aa7x3=_0x7aa7x1[_0x21fa[4]];var _0x7aa7x4=this;this[_0x21fa[1]][_0x21fa[6]][_0x21fa[5]]=_0x21fa[7]; new Image()[_0x21fa[8]]=mxPopupMenu[_0x21fa[10]][_0x21fa[9]];if(mxConnectionHandler[_0x21fa[10]][_0x21fa[11]]!=null){ new Image()[_0x21fa[8]]=mxConnectionHandler[_0x21fa[10]][_0x21fa[11]][_0x21fa[8]]};this[_0x21fa[12]]= new Actions(this);this[_0x21fa[13]]= new Menus(this);this[_0x21fa[14]]();this[_0x21fa[15]]();this[_0x21fa[16]]();var _0x7aa7x5=mxUtils[_0x21fa[20]](this,function(_0x7aa7x6){if(_0x7aa7x6==null){_0x7aa7x6=window[_0x21fa[17]]};if(this[_0x21fa[18]](_0x7aa7x6)){return true};return _0x7aa7x3[_0x21fa[19]]()});if(this[_0x21fa[1]]==document[_0x21fa[21]]){this[_0x21fa[23]][_0x21fa[22]]=_0x7aa7x5;this[_0x21fa[23]][_0x21fa[24]]=_0x7aa7x5;this[_0x21fa[25]][_0x21fa[22]]=_0x7aa7x5;this[_0x21fa[25]][_0x21fa[24]]=_0x7aa7x5;this[_0x21fa[26]][_0x21fa[22]]=_0x7aa7x5;this[_0x21fa[26]][_0x21fa[24]]=_0x7aa7x5;this[_0x21fa[27]][_0x21fa[22]]=_0x7aa7x5;this[_0x21fa[27]][_0x21fa[24]]=_0x7aa7x5;this[_0x21fa[28]][_0x21fa[22]]=_0x7aa7x5;this[_0x21fa[28]][_0x21fa[24]]=_0x7aa7x5};if(mxClient[_0x21fa[29]]&&( typeof (document[_0x21fa[30]])===_0x21fa[31]||document[_0x21fa[30]]<9)){mxEvent[_0x21fa[33]](this[_0x21fa[26]],_0x21fa[32],_0x7aa7x5);mxEvent[_0x21fa[33]](this[_0x21fa[27]],_0x21fa[32],_0x7aa7x5)}else {this[_0x21fa[26]][_0x21fa[34]]=_0x7aa7x5;this[_0x21fa[27]][_0x21fa[34]]=_0x7aa7x5};_0x7aa7x3[_0x21fa[35]](this[_0x21fa[26]]);_0x7aa7x3[_0x21fa[15]]();_0x7aa7x3[_0x21fa[1]][_0x21fa[38]](_0x21fa[36],_0x21fa[37]);_0x7aa7x3[_0x21fa[1]][_0x21fa[6]][_0x21fa[39]]=_0x21fa[40];_0x7aa7x3[_0x21fa[1]][_0x21fa[6]][_0x21fa[41]]=_0x21fa[42]+_0x7aa7x1[_0x21fa[43]]+_0x21fa[44];_0x7aa7x3[_0x21fa[1]][_0x21fa[6]][_0x21fa[45]]=_0x21fa[46];_0x7aa7x3[_0x21fa[1]][_0x21fa[47]]();var _0x7aa7x7=_0x7aa7x3[_0x21fa[48]];_0x7aa7x3[_0x21fa[48]]=function(_0x7aa7x8,_0x7aa7x9,_0x7aa7xa){if(_0x7aa7x8==mxEvent[_0x21fa[49]]){this[_0x21fa[1]][_0x21fa[47]]()};_0x7aa7x7[_0x21fa[50]](this,arguments)};this[_0x21fa[56]](_0x7aa7x3[_0x21fa[51]],[_0x21fa[52],_0x21fa[53],_0x21fa[54]],[[1,1],[1,1],[0,0]],[[0,0],[0,0],[1,_0x21fa[55]]]);this[_0x21fa[56]](_0x7aa7x3[_0x21fa[51]],[_0x21fa[57],_0x21fa[58],_0x21fa[59],_0x21fa[60],_0x21fa[61],_0x21fa[62],_0x21fa[63]],[[1,1],[0,0],[0,1],[0,1],[0,1],[1,1],[0,1]],[[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]]]);this[_0x21fa[56]](_0x7aa7x3[_0x21fa[51]],[_0x21fa[64],_0x21fa[65]],[[1,1],[1,1]],[[1,_0x21fa[55]],[1,_0x21fa[55]]]);this[_0x21fa[56]](_0x7aa7x3[_0x21fa[51]],[_0x21fa[66],_0x21fa[67],_0x21fa[68],_0x21fa[69],_0x21fa[70],_0x21fa[71],_0x21fa[72],_0x21fa[73],_0x21fa[74]],[[1,_0x21fa[55]],[1,1],[1,_0x21fa[55]],[1,1],[1,1],[1,1],[1,1],[1,1],[1,_0x21fa[55]]],[[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]]]);this[_0x21fa[56]](_0x7aa7x3[_0x21fa[51]],[_0x21fa[75]],[[1,1]],[[1,_0x21fa[55]]]);this[_0x21fa[56]](_0x7aa7x3[_0x21fa[51]],[_0x21fa[76],_0x21fa[77]],[[1,1],[1,1]],[[1,_0x21fa[55]],[1,_0x21fa[55]]]);this[_0x21fa[56]](_0x7aa7x3[_0x21fa[51]],[_0x21fa[78],_0x21fa[79],_0x21fa[80],_0x21fa[81],_0x21fa[82]],[[0,0],[1,2],[1,2],[1,2],[1,_0x21fa[55]]],[[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]]]);this[_0x21fa[56]](_0x7aa7x3[_0x21fa[51]],[_0x21fa[83],_0x21fa[84]],[[1,1],[1,1]],[[1,_0x21fa[55]],[1,_0x21fa[55]]]);this[_0x21fa[56]](_0x7aa7x3[_0x21fa[51]],[_0x21fa[85],_0x21fa[86],_0x21fa[87],_0x21fa[88],_0x21fa[89]],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]],[1,_0x21fa[55]]]);_0x7aa7x3[_0x21fa[90]]=function(_0x7aa7x6,_0x7aa7xb){var _0x7aa7xc=[_0x21fa[66],_0x21fa[79],_0x21fa[80],_0x21fa[68],_0x21fa[74],_0x21fa[82]];var _0x7aa7xd= new mxEventObject(mxEvent.DOUBLE_CLICK,_0x21fa[17],_0x7aa7x6,_0x21fa[91],_0x7aa7xb);this[_0x21fa[92]](_0x7aa7xd);if(this[_0x21fa[93]]()&&!mxEvent[_0x21fa[94]](_0x7aa7x6)&&!_0x7aa7xd[_0x21fa[94]]()){if(this[_0x21fa[96]]()[_0x21fa[95]](_0x7aa7xb)){if(_0x7aa7xc[_0x21fa[100]](_0x7aa7xb[_0x21fa[99]][_0x21fa[98]][_0x21fa[97]])>=0){this[_0x21fa[101]](_0x7aa7xb)}}else {if(this[_0x21fa[96]]()[_0x21fa[102]](_0x7aa7xb)){console[_0x21fa[103]](_0x7aa7x4);console[_0x21fa[103]](_0x7aa7xb);_0x7aa7x4[_0x21fa[104]]( new GeneralDialog(_0x7aa7x4,_0x7aa7xb)[_0x21fa[1]],320,280,true,true)}};_0x7aa7xd[_0x21fa[105]]()}};_0x7aa7x3[_0x21fa[107]][_0x21fa[106]]=true;_0x7aa7x3[_0x21fa[107]][_0x21fa[108]]=mxUtils[_0x21fa[20]](this,function(_0x7aa7xe,_0x7aa7xb,_0x7aa7x6){this[_0x21fa[13]][_0x21fa[109]](_0x7aa7xe,_0x7aa7xb,_0x7aa7x6)});_0x7aa7x1[_0x21fa[111]][_0x21fa[35]](this[_0x21fa[110]]);mxEvent[_0x21fa[113]](document,mxUtils[_0x21fa[20]](this,function(_0x7aa7x6){_0x7aa7x3[_0x21fa[107]][_0x21fa[112]]()}));if(mxClient[_0x21fa[114]]){mxEvent[_0x21fa[33]](_0x7aa7x3[_0x21fa[1]],_0x21fa[115],mxUtils[_0x21fa[20]](this,function(_0x7aa7x6){_0x7aa7x3[_0x21fa[120]][_0x21fa[119]]()[_0x21fa[38]](_0x21fa[116],_0x21fa[117]+_0x7aa7x6[_0x21fa[118]]+_0x21fa[44]);_0x7aa7x3[_0x21fa[120]][_0x21fa[122]]()[_0x21fa[6]][_0x21fa[121]]=_0x21fa[7]}));mxEvent[_0x21fa[33]](_0x7aa7x3[_0x21fa[1]],_0x21fa[123],mxUtils[_0x21fa[20]](this,function(_0x7aa7x6){_0x7aa7x3[_0x21fa[120]][_0x21fa[119]]()[_0x21fa[124]](_0x21fa[116]);_0x7aa7x3[_0x21fa[125]]=true;_0x7aa7x3[_0x21fa[126]](_0x7aa7x6[_0x21fa[118]]);_0x7aa7x3[_0x21fa[120]][_0x21fa[122]]()[_0x21fa[6]][_0x21fa[121]]=_0x21fa[127]}))};var _0x7aa7xf=this[_0x21fa[128]](_0x7aa7x1);this[_0x21fa[129]]=function(){return _0x7aa7xf};mxEvent[_0x21fa[33]](window,_0x21fa[130],mxUtils[_0x21fa[20]](this,function(){this[_0x21fa[15]]();_0x7aa7x3[_0x21fa[131]]();this[_0x21fa[0]][_0x21fa[111]][_0x21fa[132]](false);this[_0x21fa[0]][_0x21fa[111]][_0x21fa[111]][_0x21fa[131]]()}));this[_0x21fa[35]]();this[_0x21fa[133]]()};EditorUi[_0x21fa[10]][_0x21fa[134]]=(mxClient[_0x21fa[114]])?16:8;EditorUi[_0x21fa[10]][_0x21fa[135]]=33;EditorUi[_0x21fa[10]][_0x21fa[136]]=36;EditorUi[_0x21fa[10]][_0x21fa[137]]=28;EditorUi[_0x21fa[10]][_0x21fa[138]]=204;EditorUi[_0x21fa[10]][_0x21fa[139]]=190;EditorUi[_0x21fa[10]][_0x21fa[35]]=function(){this[_0x21fa[140]]();this[_0x21fa[141]]();var _0x7aa7x10=this[_0x21fa[12]][_0x21fa[143]](_0x21fa[142]);var _0x7aa7x11=function(){_0x7aa7x10[_0x21fa[145]](!mxClipboard[_0x21fa[144]]())};var _0x7aa7x12=mxClipboard[_0x21fa[146]];mxClipboard[_0x21fa[146]]=function(){_0x7aa7x12[_0x21fa[50]](this,arguments);_0x7aa7x11()};var _0x7aa7x13=mxClipboard[_0x21fa[147]];mxClipboard[_0x21fa[147]]=function(){_0x7aa7x13[_0x21fa[50]](this,arguments);_0x7aa7x11()}};EditorUi[_0x21fa[10]][_0x21fa[18]]=function(_0x7aa7x6){return false};EditorUi[_0x21fa[10]][_0x21fa[133]]=function(){try{if(window[_0x21fa[148]]!=null&&window[_0x21fa[148]][_0x21fa[149]]!=null){window[_0x21fa[148]][_0x21fa[149]][_0x21fa[161]](mxUtils[_0x21fa[20]](this,function(_0x7aa7x14,_0x7aa7x15){try{var _0x7aa7x16=mxUtils[_0x21fa[150]](_0x7aa7x14);this[_0x21fa[0]][_0x21fa[152]](_0x7aa7x16[_0x21fa[151]]);this[_0x21fa[0]][_0x21fa[153]]=false;this[_0x21fa[0]][_0x21fa[155]][_0x21fa[154]]();if(_0x7aa7x15!=null){this[_0x21fa[0]][_0x21fa[156]]=_0x7aa7x15}}catch(e){mxUtils[_0x21fa[160]](mxResources[_0x21fa[143]](_0x21fa[157])+_0x21fa[158]+e[_0x21fa[159]])}}))}}catch(e){}};EditorUi[_0x21fa[10]][_0x21fa[162]]=function(_0x7aa7x14,_0x7aa7x15,_0x7aa7x17){try{var _0x7aa7x16=mxUtils[_0x21fa[150]](_0x7aa7x14);this[_0x21fa[0]][_0x21fa[152]](_0x7aa7x16[_0x21fa[151]]);this[_0x21fa[0]][_0x21fa[153]]=false;this[_0x21fa[0]][_0x21fa[155]][_0x21fa[154]]();if(_0x7aa7x15!=null){this[_0x21fa[0]][_0x21fa[156]]=_0x7aa7x15};if(_0x7aa7x17!=null){this[_0x21fa[0]][_0x21fa[163]]=_0x7aa7x17}}catch(e){mxUtils[_0x21fa[160]](mxResources[_0x21fa[143]](_0x21fa[157])+_0x21fa[158]+e[_0x21fa[159]])}};EditorUi[_0x21fa[10]][_0x21fa[164]]=function(_0x7aa7x18){var _0x7aa7x1=this[_0x21fa[0]];if(_0x7aa7x18!=null){var _0x7aa7x14=mxUtils[_0x21fa[166]](this[_0x21fa[0]][_0x21fa[165]]());try{if(useLocalStorage){if(localStorage[_0x21fa[167]](_0x7aa7x18)!=null&&!mxUtils[_0x21fa[169]](mxResources[_0x21fa[143]](_0x21fa[168],[_0x7aa7x18]))){return};localStorage[_0x21fa[170]](_0x7aa7x18,_0x7aa7x14);this[_0x21fa[0]][_0x21fa[173]](mxResources[_0x21fa[143]](_0x21fa[171])+_0x21fa[172]+ new Date())}else {console[_0x21fa[103]](_0x7aa7x14[_0x21fa[174]]);console[_0x21fa[103]](MAX_REQUEST_SIZE);if(_0x7aa7x14[_0x21fa[174]]<MAX_REQUEST_SIZE){_0x7aa7x14=encodeURIComponent(_0x7aa7x14);_0x7aa7x18=encodeURIComponent(_0x7aa7x18);var _0x7aa7x19= new XMLHttpRequest();_0x7aa7x19[_0x21fa[133]](_0x21fa[175],SAVE_URL,true);_0x7aa7x19[_0x21fa[178]](_0x21fa[176],_0x21fa[177]);_0x7aa7x19[_0x21fa[178]](_0x21fa[179],_0x21fa[180]+_0x7aa7x1[_0x21fa[163]][_0x21fa[181]]);_0x7aa7x19[_0x21fa[182]]=function(_0x7aa7x1a){if(_0x7aa7x19[_0x21fa[183]]===4){if(_0x7aa7x19[_0x21fa[184]]===201){_0x7aa7x1[_0x21fa[173]](_0x21fa[185]+JSON[_0x21fa[188]](_0x7aa7x19[_0x21fa[187]])[_0x21fa[186]]+_0x21fa[189]);setTimeout(function(){window[_0x21fa[133]](_0x21fa[190]+JSON[_0x21fa[188]](_0x7aa7x19[_0x21fa[187]])[_0x21fa[191]],_0x21fa[192])},1500)}else {_0x7aa7x1[_0x21fa[173]](_0x21fa[193]+JSON[_0x21fa[188]](_0x7aa7x19[_0x21fa[187]])[_0x21fa[194]][0][_0x21fa[159]])}}};_0x7aa7x19[_0x21fa[195]]=function(_0x7aa7x1a){mxUtils[_0x21fa[160]](_0x7aa7x19[_0x21fa[196]])};_0x7aa7x19[_0x21fa[198]](_0x21fa[197]+_0x7aa7x18)}else {mxUtils[_0x21fa[160]](mxResources[_0x21fa[143]](_0x21fa[199]));mxUtils[_0x21fa[200]](_0x7aa7x14);return}};this[_0x21fa[0]][_0x21fa[156]]=_0x7aa7x18;this[_0x21fa[0]][_0x21fa[153]]=false}catch(e){this[_0x21fa[0]][_0x21fa[173]](_0x21fa[201])}}else {this[_0x21fa[0]][_0x21fa[173]](_0x21fa[201])}};EditorUi[_0x21fa[10]][_0x21fa[202]]=function(_0x7aa7x18){var _0x7aa7x1=this[_0x21fa[0]];if(_0x7aa7x18!=null){var _0x7aa7x14=mxUtils[_0x21fa[166]](this[_0x21fa[0]][_0x21fa[165]]());try{if(useLocalStorage){if(localStorage[_0x21fa[167]](_0x7aa7x18)!=null&&!mxUtils[_0x21fa[169]](mxResources[_0x21fa[143]](_0x21fa[168],[_0x7aa7x18]))){return};localStorage[_0x21fa[170]](_0x7aa7x18,_0x7aa7x14);this[_0x21fa[0]][_0x21fa[173]](mxResources[_0x21fa[143]](_0x21fa[171])+_0x21fa[172]+ new Date())}else {console[_0x21fa[103]](_0x7aa7x14[_0x21fa[174]]);console[_0x21fa[103]](MAX_REQUEST_SIZE);if(_0x7aa7x14[_0x21fa[174]]<MAX_REQUEST_SIZE){_0x7aa7x14=encodeURIComponent(_0x7aa7x14);var _0x7aa7x19= new XMLHttpRequest();_0x7aa7x19[_0x21fa[133]](_0x21fa[203],SAVE_URL+this[_0x21fa[0]][_0x21fa[163]][_0x21fa[191]],true);_0x7aa7x19[_0x21fa[178]](_0x21fa[176],_0x21fa[177]);_0x7aa7x19[_0x21fa[178]](_0x21fa[179],_0x21fa[180]+_0x7aa7x1[_0x21fa[163]][_0x21fa[181]]);_0x7aa7x19[_0x21fa[182]]=function(_0x7aa7x1a){if(_0x7aa7x19[_0x21fa[183]]===4){if(_0x7aa7x19[_0x21fa[184]]===200){_0x7aa7x1[_0x21fa[173]](_0x21fa[204]+JSON[_0x21fa[188]](_0x7aa7x19[_0x21fa[187]])[_0x21fa[205]]+_0x21fa[206]+_0x7aa7x19[_0x21fa[184]]+_0x21fa[172]+_0x7aa7x19[_0x21fa[196]]+_0x21fa[44])}else {_0x7aa7x1[_0x21fa[173]](_0x21fa[207]+JSON[_0x21fa[188]](_0x7aa7x19[_0x21fa[187]])[_0x21fa[194]][0][_0x21fa[159]])}}};_0x7aa7x19[_0x21fa[195]]=function(_0x7aa7x1a){mxUtils[_0x21fa[160]](_0x7aa7x19[_0x21fa[196]])};_0x7aa7x19[_0x21fa[198]](_0x21fa[208]+_0x7aa7x14)}else {mxUtils[_0x21fa[160]](mxResources[_0x21fa[143]](_0x21fa[199]));mxUtils[_0x21fa[200]](_0x7aa7x14);return}};this[_0x21fa[0]][_0x21fa[156]]=_0x7aa7x18;this[_0x21fa[0]][_0x21fa[153]]=false}catch(e){this[_0x21fa[0]][_0x21fa[173]](_0x21fa[209])}}else {this[_0x21fa[0]][_0x21fa[173]](_0x21fa[209])}};EditorUi[_0x21fa[10]][_0x21fa[210]]=function(_0x7aa7x18){var _0x7aa7x1=this[_0x21fa[0]];if(_0x7aa7x18!=null){var _0x7aa7x14=mxUtils[_0x21fa[166]](this[_0x21fa[0]][_0x21fa[165]]());try{if(useLocalStorage){if(localStorage[_0x21fa[167]](_0x7aa7x18)!=null&&!mxUtils[_0x21fa[169]](mxResources[_0x21fa[143]](_0x21fa[168],[_0x7aa7x18]))){return};localStorage[_0x21fa[170]](_0x7aa7x18,_0x7aa7x14);this[_0x21fa[0]][_0x21fa[173]](mxResources[_0x21fa[143]](_0x21fa[171])+_0x21fa[172]+ new Date())}else {console[_0x21fa[103]](_0x7aa7x14[_0x21fa[174]]);console[_0x21fa[103]](MAX_REQUEST_SIZE);if(_0x7aa7x14[_0x21fa[174]]<MAX_REQUEST_SIZE){_0x7aa7x14=encodeURIComponent(_0x7aa7x14);_0x7aa7x18=encodeURIComponent(_0x7aa7x18);var _0x7aa7x19= new XMLHttpRequest();_0x7aa7x19[_0x21fa[133]](_0x21fa[175],SAVE_URL,true);_0x7aa7x19[_0x21fa[178]](_0x21fa[176],_0x21fa[177]);_0x7aa7x19[_0x21fa[178]](_0x21fa[179],_0x21fa[180]+_0x7aa7x1[_0x21fa[163]][_0x21fa[181]]);_0x7aa7x19[_0x21fa[182]]=function(_0x7aa7x1a){if(_0x7aa7x19[_0x21fa[183]]===4){if(_0x7aa7x19[_0x21fa[184]]===201){_0x7aa7x1[_0x21fa[173]](_0x21fa[185]+JSON[_0x21fa[188]](_0x7aa7x19[_0x21fa[187]])[_0x21fa[186]]+_0x21fa[189]);setTimeout(function(){window[_0x21fa[133]](_0x21fa[190]+JSON[_0x21fa[188]](_0x7aa7x19[_0x21fa[187]])[_0x21fa[191]],_0x21fa[192])},1500)}else {_0x7aa7x1[_0x21fa[173]](_0x21fa[211]+JSON[_0x21fa[188]](_0x7aa7x19[_0x21fa[187]])[_0x21fa[194]][0][_0x21fa[159]])}}};_0x7aa7x19[_0x21fa[195]]=function(_0x7aa7x1a){mxUtils[_0x21fa[160]](_0x7aa7x19[_0x21fa[196]])};_0x7aa7x19[_0x21fa[198]](_0x21fa[212]+_0x7aa7x18+_0x21fa[213]+_0x7aa7x14+_0x21fa[214]+_0x7aa7x14)}else {mxUtils[_0x21fa[160]](mxResources[_0x21fa[143]](_0x21fa[199]));mxUtils[_0x21fa[200]](_0x7aa7x14);return}};this[_0x21fa[0]][_0x21fa[156]]=_0x7aa7x18;this[_0x21fa[0]][_0x21fa[153]]=false}catch(e){this[_0x21fa[0]][_0x21fa[173]](_0x21fa[209])}}else {this[_0x21fa[0]][_0x21fa[173]](_0x21fa[209])}};EditorUi[_0x21fa[10]][_0x21fa[215]]=function(_0x7aa7x1b,_0x7aa7x1c){var _0x7aa7x3=this[_0x21fa[0]][_0x21fa[4]];for(var _0x7aa7x1b=_0x7aa7x1b!=null?_0x7aa7x1b:_0x7aa7x3[_0x21fa[217]][_0x21fa[216]](),_0x7aa7x1c=_0x7aa7x1c!=null?_0x7aa7x1c:{},_0x7aa7x1d=true,_0x7aa7x1e=_0x7aa7x3[_0x21fa[217]][_0x21fa[218]](_0x7aa7x1b),_0x7aa7x1a=0;_0x7aa7x1a<_0x7aa7x1e;_0x7aa7x1a++){var _0x7aa7x1f=_0x7aa7x3[_0x21fa[217]][_0x21fa[219]](_0x7aa7x1b,_0x7aa7x1a),_0x7aa7x20=_0x7aa7x1c;_0x7aa7x3[_0x21fa[220]](_0x7aa7x1f)&&(_0x7aa7x20={});_0x7aa7x20=this[_0x21fa[215]](_0x7aa7x1f,_0x7aa7x20);_0x7aa7x20!=null?_0x7aa7x3[_0x21fa[222]](_0x7aa7x1f,_0x7aa7x20[_0x21fa[168]](/\n/g,_0x21fa[221])):_0x7aa7x3[_0x21fa[222]](_0x7aa7x1f,null);_0x7aa7x1d=_0x7aa7x1d&&_0x7aa7x20==null};_0x7aa7x1e=_0x21fa[223];if(_0x7aa7x3[_0x21fa[217]][_0x21fa[102]](_0x7aa7x1b)){switch(_0x7aa7x1b[_0x21fa[98]][_0x21fa[267]]){case _0x21fa[52]:_0x7aa7x1e=this[_0x21fa[224]](_0x21fa[52])?_0x21fa[223]:_0x21fa[225]+_0x21fa[226];break;case _0x21fa[53]:_0x7aa7x1e=this[_0x21fa[224]](_0x21fa[53])?_0x21fa[223]:_0x21fa[227]+_0x21fa[226];break;case _0x21fa[67]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[228])>0)?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[230])+_0x21fa[226];break;case _0x21fa[66]:;case _0x21fa[68]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[228])>0)?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[230])+_0x21fa[226];_0x7aa7x1e+=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[231])>0)?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[232])+_0x21fa[226];break;case _0x21fa[74]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[228])>0)?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[230])+_0x21fa[226];_0x7aa7x1e+=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[231])>0)?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[232])+_0x21fa[226];break;case _0x21fa[82]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[233])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[232])+_0x21fa[226];break;case _0x21fa[76]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[234])>0)?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[235])+_0x21fa[226];break;case _0x21fa[64]:;case _0x21fa[65]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[231])>0)?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[232])+_0x21fa[226];break;case _0x21fa[78]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[236])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[237])+_0x21fa[226];break;case _0x21fa[86]:;case _0x21fa[87]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[238])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[239])+_0x21fa[226];break;case _0x21fa[79]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[240])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[241])+_0x21fa[226];break;case _0x21fa[69]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[242])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[243])+_0x21fa[226];break;case _0x21fa[70]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[244])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[245])+_0x21fa[226];break;case _0x21fa[71]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[246])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[247])+_0x21fa[226];break;case _0x21fa[75]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[156])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[248])+_0x21fa[226];break;case _0x21fa[84]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[249])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[250])+_0x21fa[226];break;case _0x21fa[60]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[251])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[252])+_0x21fa[226];break;case _0x21fa[59]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[253])>0)?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[252])+_0x21fa[226];break;case _0x21fa[61]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[254])!==_0x21fa[255])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[256])+_0x21fa[226];break;case _0x21fa[63]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[257])>0)?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[258])+_0x21fa[226];break;case _0x21fa[80]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[259])>0)?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[260])+_0x21fa[226];break;case _0x21fa[81]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[259])!=_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[260])+_0x21fa[226];break;case _0x21fa[62]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[261])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[262])+_0x21fa[226];break;case _0x21fa[88]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[263])>0)?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[264])+_0x21fa[226];break;case _0x21fa[72]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[246])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[247])+_0x21fa[226];break;case _0x21fa[73]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[246])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[247])+_0x21fa[226];_0x7aa7x1e+=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[265])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[266])+_0x21fa[226];break;case _0x21fa[77]:_0x7aa7x1e=(_0x7aa7x1b[_0x21fa[98]][_0x21fa[229]](_0x21fa[265])!==_0x21fa[223])?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[266])+_0x21fa[226];break}};if(_0x7aa7x3[_0x21fa[217]][_0x21fa[95]](_0x7aa7x1b)){var _0x7aa7x21=_0x7aa7x3[_0x21fa[217]][_0x21fa[269]](_0x7aa7x1b[_0x21fa[99]][_0x21fa[268]]());switch(_0x7aa7x21[_0x21fa[98]][_0x21fa[267]]){case _0x21fa[66]:var _0x7aa7x22=/^[0-9]{1,45}$|^[i]{1}$|^[t]{1}|^[#]{1}|^[*]{1}$/;_0x7aa7x1e=_0x7aa7x1e+((_0x7aa7x22[_0x21fa[271]](String(_0x7aa7x1b[_0x21fa[270]]())))?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[272])+_0x21fa[226]);break;case _0x21fa[68]:var _0x7aa7x22=/^[0-9]{1,45}$|^[-]{1}$|^[i]{1}$|^[t]{1}|^[#]{1}|^[*]{1}$/;var _0x7aa7x23=String(_0x7aa7x1b[_0x21fa[270]]());var _0x7aa7x24=_0x7aa7x23[_0x21fa[274]](_0x21fa[273]);_0x7aa7x24[_0x21fa[276]](function(_0x7aa7x25){_0x7aa7x1e=_0x7aa7x1e+((_0x7aa7x22[_0x21fa[271]](_0x7aa7x25))?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[275])+_0x21fa[226])});break;case _0x21fa[74]:var _0x7aa7x22=/^(x|i|-)$/;var _0x7aa7x23=String(_0x7aa7x1b[_0x21fa[270]]());_0x7aa7x1e=_0x7aa7x1e+((_0x7aa7x22[_0x21fa[271]](_0x7aa7x23))?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[277])+_0x21fa[226]);break;case _0x21fa[79]:;case _0x21fa[80]:;case _0x21fa[81]:var _0x7aa7x22=/^(true){1}$|^(false){1}$/;_0x7aa7x1e=_0x7aa7x1e+((_0x7aa7x22[_0x21fa[271]](String(_0x7aa7x1b[_0x21fa[270]]())))?_0x21fa[223]:mxResources[_0x21fa[143]](_0x21fa[278])+_0x21fa[226]);break}};_0x7aa7x3[_0x21fa[279]](_0x7aa7x1b)&&!_0x7aa7x1d&&(_0x7aa7x1e=_0x7aa7x1e+((mxResources[_0x21fa[143]](_0x7aa7x3[_0x21fa[280]])||_0x7aa7x3[_0x21fa[280]])+_0x21fa[226]));_0x7aa7x1e=_0x7aa7x3[_0x21fa[217]][_0x21fa[95]](_0x7aa7x1b)?_0x7aa7x1e+(_0x7aa7x3[_0x21fa[282]](_0x7aa7x1b,_0x7aa7x3[_0x21fa[217]][_0x21fa[281]](_0x7aa7x1b,true),_0x7aa7x3[_0x21fa[217]][_0x21fa[281]](_0x7aa7x1b,false))||_0x21fa[223]):_0x7aa7x1e+(_0x7aa7x3[_0x21fa[283]](_0x7aa7x1b)||_0x21fa[223]);_0x7aa7x1a=_0x7aa7x3[_0x21fa[284]](_0x7aa7x1b,_0x7aa7x1c);_0x7aa7x1a!=null&&(_0x7aa7x1e=_0x7aa7x1e+_0x7aa7x1a);_0x7aa7x3[_0x21fa[217]][_0x21fa[285]](_0x7aa7x1b)==null&&_0x7aa7x3[_0x21fa[120]][_0x21fa[215]]();return _0x7aa7x1e[_0x21fa[174]]>0||!_0x7aa7x1d?_0x7aa7x1e:null};EditorUi[_0x21fa[10]][_0x21fa[224]]=function(_0x7aa7x26){var _0x7aa7x3=this[_0x21fa[0]][_0x21fa[4]];var _0x7aa7x27=_0x7aa7x3[_0x21fa[286]]();var _0x7aa7x28=0;_0x7aa7x27[_0x21fa[287]][_0x21fa[276]](function(_0x7aa7x29){if(_0x7aa7x3[_0x21fa[217]][_0x21fa[102]](_0x7aa7x29)&&_0x7aa7x29[_0x21fa[98]][_0x21fa[267]]==_0x7aa7x26){_0x7aa7x28++}});return _0x7aa7x28>1?false:true};EditorUi[_0x21fa[10]][_0x21fa[288]]=function(_0x7aa7x18){var _0x7aa7x1=this[_0x21fa[0]];if(_0x7aa7x18!=null){var _0x7aa7x2a=this[_0x21fa[215]]();if(_0x7aa7x2a===null){var _0x7aa7x14=mxUtils[_0x21fa[166]](this[_0x21fa[0]][_0x21fa[165]]());try{if(useLocalStorage){if(localStorage[_0x21fa[167]](_0x7aa7x18)!=null&&!mxUtils[_0x21fa[169]](mxResources[_0x21fa[143]](_0x21fa[168],[_0x7aa7x18]))){return};localStorage[_0x21fa[170]](_0x7aa7x18,_0x7aa7x14);this[_0x21fa[0]][_0x21fa[173]](mxResources[_0x21fa[143]](_0x21fa[171])+_0x21fa[172]+ new Date())}else {console[_0x21fa[103]](_0x7aa7x14[_0x21fa[174]]);console[_0x21fa[103]](MAX_REQUEST_SIZE);if(_0x7aa7x14[_0x21fa[174]]<MAX_REQUEST_SIZE){_0x7aa7x14=encodeURIComponent(_0x7aa7x14);var _0x7aa7x19= new XMLHttpRequest();_0x7aa7x19[_0x21fa[133]](_0x21fa[203],SAVE_URL+this[_0x21fa[0]][_0x21fa[163]][_0x21fa[191]],true);_0x7aa7x19[_0x21fa[178]](_0x21fa[176],_0x21fa[177]);_0x7aa7x19[_0x21fa[178]](_0x21fa[179],_0x21fa[180]+_0x7aa7x1[_0x21fa[163]][_0x21fa[181]]);_0x7aa7x19[_0x21fa[182]]=function(_0x7aa7x1a){if(_0x7aa7x19[_0x21fa[183]]===4){if(_0x7aa7x19[_0x21fa[184]]===200){_0x7aa7x1[_0x21fa[173]](_0x21fa[289]+JSON[_0x21fa[188]](_0x7aa7x19[_0x21fa[187]])[_0x21fa[205]]+_0x21fa[206]+_0x7aa7x19[_0x21fa[184]]+_0x21fa[172]+_0x7aa7x19[_0x21fa[196]]+_0x21fa[44])}else {_0x7aa7x1[_0x21fa[173]](_0x21fa[207]+JSON[_0x21fa[188]](_0x7aa7x19[_0x21fa[187]])[_0x21fa[194]][0][_0x21fa[159]])}}};_0x7aa7x19[_0x21fa[195]]=function(_0x7aa7x1a){mxUtils[_0x21fa[160]](_0x7aa7x19[_0x21fa[196]])};_0x7aa7x19[_0x21fa[198]](_0x21fa[208]+_0x7aa7x14+_0x21fa[214]+_0x7aa7x14)}else {mxUtils[_0x21fa[160]](mxResources[_0x21fa[143]](_0x21fa[199]));mxUtils[_0x21fa[200]](_0x7aa7x14);return}};this[_0x21fa[0]][_0x21fa[156]]=_0x7aa7x18;this[_0x21fa[0]][_0x21fa[153]]=false}catch(e){this[_0x21fa[0]][_0x21fa[173]](_0x21fa[290])}}else {_0x7aa7x1[_0x21fa[173]](_0x21fa[291])}}else {this[_0x21fa[0]][_0x21fa[173]](_0x21fa[290])}};EditorUi[_0x21fa[10]][_0x21fa[233]]=function(_0x7aa7x18){var _0x7aa7x1=this[_0x21fa[0]];if(_0x7aa7x18!=null){try{var _0x7aa7x19= new XMLHttpRequest();_0x7aa7x19[_0x21fa[133]](_0x21fa[175],VARIABLE_URL,true);_0x7aa7x19[_0x21fa[178]](_0x21fa[176],_0x21fa[177]);_0x7aa7x19[_0x21fa[178]](_0x21fa[179],_0x21fa[180]+_0x7aa7x1[_0x21fa[163]][_0x21fa[181]]);_0x7aa7x19[_0x21fa[182]]=function(_0x7aa7x1a){if(_0x7aa7x19[_0x21fa[183]]===4){if(_0x7aa7x19[_0x21fa[184]]===201){_0x7aa7x1[_0x21fa[173]](_0x21fa[292]+JSON[_0x21fa[188]](_0x7aa7x19[_0x21fa[187]])[_0x21fa[293]]+_0x21fa[206]+_0x7aa7x19[_0x21fa[184]]+_0x21fa[172]+_0x7aa7x19[_0x21fa[196]]+_0x21fa[44])}else {_0x7aa7x1[_0x21fa[173]](_0x21fa[294]+JSON[_0x21fa[188]](_0x7aa7x19[_0x21fa[187]])[_0x21fa[194]][0][_0x21fa[159]])}}};_0x7aa7x19[_0x21fa[195]]=function(_0x7aa7x1a){mxUtils[_0x21fa[160]](_0x7aa7x19[_0x21fa[196]])};_0x7aa7x19[_0x21fa[198]](_0x21fa[295]+_0x7aa7x18)}catch(e){this[_0x21fa[0]][_0x21fa[173]](_0x21fa[296])}}else {this[_0x21fa[0]][_0x21fa[173]](_0x21fa[296])}};EditorUi[_0x21fa[10]][_0x21fa[297]]=function(_0x7aa7x2b){var _0x7aa7x2c=(_0x7aa7x2b!=null)?_0x7aa7x2b:window[_0x21fa[299]][_0x21fa[298]];var _0x7aa7x2d=(_0x7aa7x2c[_0x21fa[100]](_0x21fa[300])>0)?1:0;for(var _0x7aa7x2e in urlParams){if(_0x7aa7x2d==0){_0x7aa7x2c+=_0x21fa[300]}else {_0x7aa7x2c+=_0x21fa[301]};_0x7aa7x2c+=_0x7aa7x2e+_0x21fa[302]+urlParams[_0x7aa7x2e];_0x7aa7x2d++};return _0x7aa7x2c};EditorUi[_0x21fa[10]][_0x21fa[140]]=function(){var _0x7aa7x2f=this[_0x21fa[12]][_0x21fa[143]](_0x21fa[303]);var _0x7aa7x30=this[_0x21fa[12]][_0x21fa[143]](_0x21fa[304]);var _0x7aa7x31=this[_0x21fa[0]][_0x21fa[155]];var _0x7aa7x32=function(){_0x7aa7x2f[_0x21fa[145]](_0x7aa7x31[_0x21fa[305]]());_0x7aa7x30[_0x21fa[145]](_0x7aa7x31[_0x21fa[306]]())};_0x7aa7x31[_0x21fa[33]](mxEvent.ADD,_0x7aa7x32);_0x7aa7x31[_0x21fa[33]](mxEvent.UNDO,_0x7aa7x32);_0x7aa7x31[_0x21fa[33]](mxEvent.REDO,_0x7aa7x32);_0x7aa7x31[_0x21fa[33]](mxEvent.CLEAR,_0x7aa7x32);_0x7aa7x32()};EditorUi[_0x21fa[10]][_0x21fa[141]]=function(){var _0x7aa7x33=mxUtils[_0x21fa[20]](this,function(){var _0x7aa7x3=this[_0x21fa[0]][_0x21fa[4]];var _0x7aa7x34=!_0x7aa7x3[_0x21fa[307]]();var _0x7aa7x35=false;var _0x7aa7x36=false;var _0x7aa7x37=_0x7aa7x3[_0x21fa[308]]();if(_0x7aa7x37!=null){for(var _0x7aa7x38=0;_0x7aa7x38<_0x7aa7x37[_0x21fa[174]];_0x7aa7x38++){var _0x7aa7xb=_0x7aa7x37[_0x7aa7x38];if(_0x7aa7x3[_0x21fa[96]]()[_0x21fa[95]](_0x7aa7xb)){_0x7aa7x36=true};if(_0x7aa7x3[_0x21fa[96]]()[_0x21fa[102]](_0x7aa7xb)){_0x7aa7x35=true};if(_0x7aa7x36&&_0x7aa7x35){break}}};var _0x7aa7x39=[_0x21fa[146],_0x21fa[147],_0x21fa[309],_0x21fa[310],_0x21fa[311],_0x21fa[312],_0x21fa[6],_0x21fa[313],_0x21fa[314],_0x21fa[315],_0x21fa[316],_0x21fa[317],_0x21fa[318],_0x21fa[319],_0x21fa[320]];for(var _0x7aa7x38=0;_0x7aa7x38<_0x7aa7x39[_0x21fa[174]];_0x7aa7x38++){this[_0x21fa[12]][_0x21fa[143]](_0x7aa7x39[_0x7aa7x38])[_0x21fa[145]](_0x7aa7x34)};this[_0x21fa[12]][_0x21fa[143]](_0x21fa[321])[_0x21fa[145]](_0x7aa7x36);this[_0x21fa[12]][_0x21fa[143]](_0x21fa[322])[_0x21fa[145]](_0x7aa7x35);this[_0x21fa[12]][_0x21fa[143]](_0x21fa[323])[_0x21fa[145]](_0x7aa7x35);this[_0x21fa[12]][_0x21fa[143]](_0x21fa[325])[_0x21fa[145]](_0x7aa7x3[_0x21fa[324]]()>1);this[_0x21fa[12]][_0x21fa[143]](_0x21fa[327])[_0x21fa[145]](_0x7aa7x3[_0x21fa[324]]()==1&&_0x7aa7x3[_0x21fa[96]]()[_0x21fa[218]](_0x7aa7x3[_0x21fa[326]]())>0);var _0x7aa7x3a=_0x7aa7x35&&_0x7aa7x3[_0x21fa[324]]()==1;this[_0x21fa[12]][_0x21fa[143]](_0x21fa[328])[_0x21fa[145]](_0x7aa7x3a&&_0x7aa7x3[_0x21fa[96]]()[_0x21fa[102]](_0x7aa7x3[_0x21fa[96]]()[_0x21fa[285]](_0x7aa7x3[_0x21fa[326]]())));var _0x7aa7x3b=[_0x21fa[329],_0x21fa[330],_0x21fa[331],_0x21fa[332],_0x21fa[246],_0x21fa[333],_0x21fa[334],_0x21fa[335],_0x21fa[336]];for(var _0x7aa7x38=0;_0x7aa7x38<_0x7aa7x3b[_0x21fa[174]];_0x7aa7x38++){this[_0x21fa[13]][_0x21fa[143]](_0x7aa7x3b[_0x7aa7x38])[_0x21fa[145]](_0x7aa7x34)};_0x7aa7x3b=[_0x21fa[337],_0x21fa[338],_0x21fa[339]];for(var _0x7aa7x38=0;_0x7aa7x38<_0x7aa7x3b[_0x21fa[174]];_0x7aa7x38++){this[_0x21fa[13]][_0x21fa[143]](_0x7aa7x3b[_0x7aa7x38])[_0x21fa[145]](_0x7aa7x36)};this[_0x21fa[12]][_0x21fa[143]](_0x21fa[340])[_0x21fa[145]](_0x7aa7x36);this[_0x21fa[13]][_0x21fa[143]](_0x21fa[341])[_0x21fa[145]](_0x7aa7x3[_0x21fa[324]]()>1);this[_0x21fa[13]][_0x21fa[143]](_0x21fa[344])[_0x21fa[145]](_0x7aa7x35||(_0x7aa7x36&&_0x7aa7x3[_0x21fa[343]](_0x7aa7x3[_0x21fa[120]][_0x21fa[342]](_0x7aa7x3[_0x21fa[326]]()))));this[_0x21fa[13]][_0x21fa[143]](_0x21fa[347])[_0x21fa[145]](_0x7aa7x3[_0x21fa[345]]&&((_0x7aa7x3[_0x21fa[120]][_0x21fa[346]]!=null)||(_0x7aa7x3[_0x21fa[324]]()==1&&_0x7aa7x3[_0x21fa[220]](_0x7aa7x3[_0x21fa[326]]()))));this[_0x21fa[12]][_0x21fa[143]](_0x21fa[348])[_0x21fa[145]](_0x7aa7x3[_0x21fa[120]][_0x21fa[346]]!=null);this[_0x21fa[12]][_0x21fa[143]](_0x21fa[349])[_0x21fa[145]](_0x7aa7x3[_0x21fa[120]][_0x21fa[346]]!=null);var _0x7aa7x3c=_0x7aa7x3[_0x21fa[324]]()==1&&_0x7aa7x3[_0x21fa[220]](_0x7aa7x3[_0x21fa[326]]());this[_0x21fa[12]][_0x21fa[143]](_0x21fa[350])[_0x21fa[145]](_0x7aa7x3c);this[_0x21fa[12]][_0x21fa[143]](_0x21fa[351])[_0x21fa[145]](_0x7aa7x3c);this[_0x21fa[12]][_0x21fa[143]](_0x21fa[352])[_0x21fa[145]](_0x7aa7x3c);this[_0x21fa[12]][_0x21fa[143]](_0x21fa[353])[_0x21fa[145]](_0x7aa7x3[_0x21fa[324]]()==1);this[_0x21fa[12]][_0x21fa[143]](_0x21fa[355])[_0x21fa[145]](_0x7aa7x3[_0x21fa[324]]()==1&&_0x7aa7x3[_0x21fa[354]](_0x7aa7x3[_0x21fa[326]]())!=null)});this[_0x21fa[0]][_0x21fa[4]][_0x21fa[356]]()[_0x21fa[33]](mxEvent.CHANGE,_0x7aa7x33);_0x7aa7x33()};EditorUi[_0x21fa[10]][_0x21fa[15]]=function(){var _0x7aa7x3d=mxClient[_0x21fa[29]]&&(document[_0x21fa[30]]==null||document[_0x21fa[30]]==5);var _0x7aa7x3e=this[_0x21fa[1]][_0x21fa[357]];var _0x7aa7x3f=this[_0x21fa[1]][_0x21fa[358]];if(this[_0x21fa[1]]==document[_0x21fa[21]]){_0x7aa7x3e=document[_0x21fa[21]][_0x21fa[357]]||document[_0x21fa[151]][_0x21fa[357]];_0x7aa7x3f=(_0x7aa7x3d)?document[_0x21fa[21]][_0x21fa[358]]||document[_0x21fa[151]][_0x21fa[358]]:document[_0x21fa[151]][_0x21fa[358]]};var _0x7aa7x40=Math[_0x21fa[360]](0,Math[_0x21fa[359]](this[_0x21fa[138]],_0x7aa7x3e-this[_0x21fa[134]]-20));var _0x7aa7x41=Math[_0x21fa[360]](0,Math[_0x21fa[359]](this[_0x21fa[139]],_0x7aa7x3f-this[_0x21fa[135]]-this[_0x21fa[136]]-this[_0x21fa[137]]-this[_0x21fa[134]]-1));this[_0x21fa[23]][_0x21fa[6]][_0x21fa[361]]=this[_0x21fa[135]]+_0x21fa[362];this[_0x21fa[25]][_0x21fa[6]][_0x21fa[363]]=this[_0x21fa[135]]+_0x21fa[362];this[_0x21fa[25]][_0x21fa[6]][_0x21fa[361]]=this[_0x21fa[136]]+_0x21fa[362];var _0x7aa7x42=this[_0x21fa[135]]+this[_0x21fa[136]];if(!mxClient[_0x21fa[364]]){_0x7aa7x42+=1};this[_0x21fa[27]][_0x21fa[6]][_0x21fa[363]]=_0x7aa7x42+_0x21fa[362];this[_0x21fa[27]][_0x21fa[6]][_0x21fa[365]]=_0x7aa7x40+_0x21fa[362];this[_0x21fa[110]][_0x21fa[6]][_0x21fa[365]]=_0x7aa7x40+_0x21fa[362];this[_0x21fa[110]][_0x21fa[6]][_0x21fa[361]]=_0x7aa7x41+_0x21fa[362];this[_0x21fa[110]][_0x21fa[6]][_0x21fa[366]]=this[_0x21fa[137]]+_0x21fa[362];this[_0x21fa[26]][_0x21fa[6]][_0x21fa[367]]=(_0x7aa7x40+this[_0x21fa[134]])+_0x21fa[362];this[_0x21fa[26]][_0x21fa[6]][_0x21fa[363]]=this[_0x21fa[27]][_0x21fa[6]][_0x21fa[363]];this[_0x21fa[28]][_0x21fa[6]][_0x21fa[361]]=this[_0x21fa[137]]+_0x21fa[362];this[_0x21fa[28]][_0x21fa[6]][_0x21fa[368]]=_0x21fa[369];this[_0x21fa[370]][_0x21fa[6]][_0x21fa[363]]=this[_0x21fa[27]][_0x21fa[6]][_0x21fa[363]];this[_0x21fa[370]][_0x21fa[6]][_0x21fa[366]]=this[_0x21fa[110]][_0x21fa[6]][_0x21fa[366]];this[_0x21fa[370]][_0x21fa[6]][_0x21fa[367]]=_0x7aa7x40+_0x21fa[362];this[_0x21fa[371]][_0x21fa[6]][_0x21fa[365]]=this[_0x21fa[27]][_0x21fa[6]][_0x21fa[365]];this[_0x21fa[371]][_0x21fa[6]][_0x21fa[366]]=(_0x7aa7x41+this[_0x21fa[137]])+_0x21fa[362];if(_0x7aa7x3d){this[_0x21fa[23]][_0x21fa[6]][_0x21fa[365]]=_0x7aa7x3e+_0x21fa[362];this[_0x21fa[25]][_0x21fa[6]][_0x21fa[365]]=this[_0x21fa[23]][_0x21fa[6]][_0x21fa[365]];var _0x7aa7x43=(_0x7aa7x3f-_0x7aa7x41-this[_0x21fa[134]]-this[_0x21fa[137]]-this[_0x21fa[135]]-this[_0x21fa[136]]);this[_0x21fa[27]][_0x21fa[6]][_0x21fa[361]]=_0x7aa7x43+_0x21fa[362];this[_0x21fa[26]][_0x21fa[6]][_0x21fa[365]]=(_0x7aa7x3e-_0x7aa7x40-this[_0x21fa[134]])+_0x21fa[362];var _0x7aa7x44=(_0x7aa7x3f-this[_0x21fa[137]]-this[_0x21fa[135]]-this[_0x21fa[136]]);this[_0x21fa[26]][_0x21fa[6]][_0x21fa[361]]=_0x7aa7x44+_0x21fa[362];this[_0x21fa[28]][_0x21fa[6]][_0x21fa[365]]=this[_0x21fa[23]][_0x21fa[6]][_0x21fa[365]];this[_0x21fa[370]][_0x21fa[6]][_0x21fa[361]]=_0x7aa7x44+_0x21fa[362]}else {this[_0x21fa[27]][_0x21fa[6]][_0x21fa[366]]=(_0x7aa7x41+this[_0x21fa[134]]+this[_0x21fa[137]])+_0x21fa[362];this[_0x21fa[26]][_0x21fa[6]][_0x21fa[366]]=this[_0x21fa[110]][_0x21fa[6]][_0x21fa[366]]}};EditorUi[_0x21fa[10]][_0x21fa[14]]=function(){this[_0x21fa[23]]=this[_0x21fa[373]](_0x21fa[372]);this[_0x21fa[25]]=this[_0x21fa[373]](_0x21fa[374]);this[_0x21fa[27]]=this[_0x21fa[373]](_0x21fa[375]);this[_0x21fa[110]]=this[_0x21fa[373]](_0x21fa[376]);this[_0x21fa[26]]=this[_0x21fa[373]](_0x21fa[377]);this[_0x21fa[28]]=this[_0x21fa[373]](_0x21fa[378]);this[_0x21fa[370]]=this[_0x21fa[373]](_0x21fa[379]);this[_0x21fa[371]]=this[_0x21fa[373]](_0x21fa[380]);this[_0x21fa[23]][_0x21fa[6]][_0x21fa[363]]=_0x21fa[381];this[_0x21fa[23]][_0x21fa[6]][_0x21fa[367]]=_0x21fa[381];this[_0x21fa[23]][_0x21fa[6]][_0x21fa[382]]=_0x21fa[381];this[_0x21fa[25]][_0x21fa[6]][_0x21fa[367]]=_0x21fa[381];this[_0x21fa[25]][_0x21fa[6]][_0x21fa[382]]=_0x21fa[381];this[_0x21fa[27]][_0x21fa[6]][_0x21fa[367]]=_0x21fa[381];this[_0x21fa[110]][_0x21fa[6]][_0x21fa[367]]=_0x21fa[381];this[_0x21fa[26]][_0x21fa[6]][_0x21fa[382]]=_0x21fa[381];this[_0x21fa[28]][_0x21fa[6]][_0x21fa[367]]=_0x21fa[381];this[_0x21fa[28]][_0x21fa[6]][_0x21fa[382]]=_0x21fa[381];this[_0x21fa[28]][_0x21fa[6]][_0x21fa[366]]=_0x21fa[381];this[_0x21fa[371]][_0x21fa[6]][_0x21fa[367]]=_0x21fa[381];this[_0x21fa[371]][_0x21fa[6]][_0x21fa[361]]=this[_0x21fa[134]]+_0x21fa[362];this[_0x21fa[370]][_0x21fa[6]][_0x21fa[365]]=this[_0x21fa[134]]+_0x21fa[362]};EditorUi[_0x21fa[10]][_0x21fa[16]]=function(){this[_0x21fa[383]]=this[_0x21fa[13]][_0x21fa[385]](this[_0x21fa[373]](_0x21fa[384]));this[_0x21fa[23]][_0x21fa[386]](this[_0x21fa[383]][_0x21fa[1]]);this[_0x21fa[387]]=this[_0x21fa[389]](this[_0x21fa[373]](_0x21fa[388]));this[_0x21fa[25]][_0x21fa[386]](this[_0x21fa[387]][_0x21fa[1]]);this[_0x21fa[390]]=this[_0x21fa[391]](this[_0x21fa[27]]);this[_0x21fa[28]][_0x21fa[386]](this[_0x21fa[392]]());this[_0x21fa[393]]=this[_0x21fa[394]]();this[_0x21fa[0]][_0x21fa[33]](_0x21fa[395],mxUtils[_0x21fa[20]](this,function(){this[_0x21fa[397]](this[_0x21fa[0]][_0x21fa[396]]())}));this[_0x21fa[397]](this[_0x21fa[0]][_0x21fa[396]]());this[_0x21fa[383]][_0x21fa[1]][_0x21fa[386]](this[_0x21fa[393]]);this[_0x21fa[1]][_0x21fa[386]](this[_0x21fa[23]]);this[_0x21fa[1]][_0x21fa[386]](this[_0x21fa[25]]);this[_0x21fa[1]][_0x21fa[386]](this[_0x21fa[27]]);this[_0x21fa[1]][_0x21fa[386]](this[_0x21fa[110]]);this[_0x21fa[1]][_0x21fa[386]](this[_0x21fa[26]]);this[_0x21fa[1]][_0x21fa[386]](this[_0x21fa[28]]);this[_0x21fa[1]][_0x21fa[386]](this[_0x21fa[370]]);this[_0x21fa[1]][_0x21fa[386]](this[_0x21fa[371]]);this[_0x21fa[398]](this[_0x21fa[370]],true,0,mxUtils[_0x21fa[20]](this,function(_0x7aa7x45){this[_0x21fa[138]]=_0x7aa7x45;this[_0x21fa[15]]();this[_0x21fa[0]][_0x21fa[4]][_0x21fa[131]]();this[_0x21fa[0]][_0x21fa[111]][_0x21fa[132]](false);this[_0x21fa[0]][_0x21fa[111]][_0x21fa[111]][_0x21fa[131]]()}));this[_0x21fa[398]](this[_0x21fa[371]],false,this[_0x21fa[137]],mxUtils[_0x21fa[20]](this,function(_0x7aa7x45){this[_0x21fa[139]]=_0x7aa7x45;this[_0x21fa[15]]();this[_0x21fa[0]][_0x21fa[111]][_0x21fa[132]](false);this[_0x21fa[0]][_0x21fa[111]][_0x21fa[111]][_0x21fa[131]]()}))};EditorUi[_0x21fa[10]][_0x21fa[394]]=function(){var _0x7aa7x2=document[_0x21fa[400]](_0x21fa[399]);_0x7aa7x2[_0x21fa[401]]=_0x21fa[402];return _0x7aa7x2};EditorUi[_0x21fa[10]][_0x21fa[394]]=function(){var _0x7aa7x2=document[_0x21fa[400]](_0x21fa[399]);_0x7aa7x2[_0x21fa[401]]=_0x21fa[402];return _0x7aa7x2};EditorUi[_0x21fa[10]][_0x21fa[397]]=function(_0x7aa7x45){this[_0x21fa[393]][_0x21fa[403]]=_0x7aa7x45};EditorUi[_0x21fa[10]][_0x21fa[389]]=function(_0x7aa7x2){return  new Toolbar(this,_0x7aa7x2)};EditorUi[_0x21fa[10]][_0x21fa[391]]=function(_0x7aa7x2){return  new Sidebar(this,_0x7aa7x2)};EditorUi[_0x21fa[10]][_0x21fa[392]]=function(){return this[_0x21fa[373]](_0x21fa[404])};EditorUi[_0x21fa[10]][_0x21fa[373]]=function(_0x7aa7x46){var _0x7aa7x47=document[_0x21fa[400]](_0x21fa[405]);_0x7aa7x47[_0x21fa[401]]=_0x7aa7x46;return _0x7aa7x47};EditorUi[_0x21fa[10]][_0x21fa[406]]=function(_0x7aa7x46){var _0x7aa7x47=document[_0x21fa[400]](_0x7aa7x46);return _0x7aa7x47};EditorUi[_0x21fa[10]][_0x21fa[407]]=function(_0x7aa7x46){var _0x7aa7x47=document[_0x21fa[400]](_0x21fa[408]);_0x7aa7x47[_0x21fa[401]]=_0x7aa7x46;return _0x7aa7x47};EditorUi[_0x21fa[10]][_0x21fa[398]]=function(_0x7aa7x47,_0x7aa7x48,_0x7aa7x49,_0x7aa7x4a){var _0x7aa7x4b=null;var _0x7aa7x4c=null;function _0x7aa7x4d(){return parseInt(((_0x7aa7x48)?_0x7aa7x47[_0x21fa[6]][_0x21fa[367]]:_0x7aa7x47[_0x21fa[6]][_0x21fa[366]]))}function _0x7aa7x4e(_0x7aa7x6){if(_0x7aa7x4b!=null){var _0x7aa7x4f= new mxPoint(mxEvent[_0x21fa[409]](_0x7aa7x6),mxEvent[_0x21fa[410]](_0x7aa7x6));_0x7aa7x4a(Math[_0x21fa[360]](0,_0x7aa7x4c+((_0x7aa7x48)?(_0x7aa7x4f[_0x21fa[411]]-_0x7aa7x4b[_0x21fa[411]]):(_0x7aa7x4b[_0x21fa[412]]-_0x7aa7x4f[_0x21fa[412]]))-_0x7aa7x49));mxEvent[_0x21fa[105]](_0x7aa7x6)}}function _0x7aa7x50(_0x7aa7x6){_0x7aa7x4e(_0x7aa7x6);_0x7aa7x4b=null;_0x7aa7x4c=null}mxEvent[_0x21fa[113]](_0x7aa7x47,function(_0x7aa7x6){_0x7aa7x4b= new mxPoint(mxEvent[_0x21fa[409]](_0x7aa7x6),mxEvent[_0x21fa[410]](_0x7aa7x6));_0x7aa7x4c=_0x7aa7x4d();mxEvent[_0x21fa[105]](_0x7aa7x6)});mxEvent[_0x21fa[33]](document,_0x21fa[413],_0x7aa7x4e);mxEvent[_0x21fa[33]](document,_0x21fa[414],_0x7aa7x4e);mxEvent[_0x21fa[33]](document,_0x21fa[415],_0x7aa7x50);mxEvent[_0x21fa[33]](document,_0x21fa[416],_0x7aa7x50)};EditorUi[_0x21fa[10]][_0x21fa[104]]=function(_0x7aa7x47,_0x7aa7x3e,_0x7aa7x3f,_0x7aa7x51,_0x7aa7x52,_0x7aa7x53){this[_0x21fa[417]]();this[_0x21fa[418]]= new Dialog(this,_0x7aa7x47,_0x7aa7x3e,(mxClient[_0x21fa[419]])?_0x7aa7x3f-12:_0x7aa7x3f,_0x7aa7x51,_0x7aa7x52,_0x7aa7x53)};EditorUi[_0x21fa[10]][_0x21fa[417]]=function(){if(this[_0x21fa[418]]!=null){this[_0x21fa[418]][_0x21fa[420]]();this[_0x21fa[418]]=null;this[_0x21fa[0]][_0x21fa[4]][_0x21fa[1]][_0x21fa[47]]()}};EditorUi[_0x21fa[10]][_0x21fa[421]]=function(_0x7aa7x54){if(!_0x7aa7x54&&this[_0x21fa[0]][_0x21fa[156]]!=null){this[_0x21fa[202]](this[_0x21fa[0]][_0x21fa[422]]())}else {this[_0x21fa[104]]( new SaveDialog(this)[_0x21fa[1]],300,100,true,true)}};EditorUi[_0x21fa[10]][_0x21fa[423]]=function(_0x7aa7x54){if(!_0x7aa7x54&&this[_0x21fa[0]][_0x21fa[156]]!=null){this[_0x21fa[288]](this[_0x21fa[0]][_0x21fa[422]]())}else {}};EditorUi[_0x21fa[10]][_0x21fa[424]]=function(_0x7aa7x55,_0x7aa7x56,_0x7aa7x57){var _0x7aa7x3=this[_0x21fa[0]][_0x21fa[4]];var _0x7aa7xb=_0x7aa7x3[_0x21fa[326]]();_0x7aa7x56=this[_0x21fa[425]]!=null?this[_0x21fa[425]]:_0x7aa7x56;_0x7aa7x3[_0x21fa[96]]()[_0x21fa[426]]();try{_0x7aa7x55[_0x21fa[427]](_0x7aa7x3[_0x21fa[286]](),_0x7aa7xb)}catch(e){throw e}finally{if(_0x7aa7x56&&navigator[_0x21fa[429]][_0x21fa[100]](_0x21fa[428])<0){var _0x7aa7x58= new mxMorphing(_0x7aa7x3);_0x7aa7x58[_0x21fa[33]](mxEvent.DONE,mxUtils[_0x21fa[20]](this,function(){_0x7aa7x3[_0x21fa[96]]()[_0x21fa[430]]()}));_0x7aa7x58[_0x21fa[431]]()}else {_0x7aa7x3[_0x21fa[96]]()[_0x21fa[430]]()}}};EditorUi[_0x21fa[10]][_0x21fa[128]]=function(_0x7aa7x1){var _0x7aa7x3=this[_0x21fa[0]][_0x21fa[4]];var _0x7aa7xf= new mxKeyHandler(_0x7aa7x3);_0x7aa7xf[_0x21fa[432]]=function(_0x7aa7x6){return mxEvent[_0x21fa[432]](_0x7aa7x6)||(mxClient[_0x21fa[433]]&&_0x7aa7x6[_0x21fa[434]])};function _0x7aa7x59(_0x7aa7x5a){if(!_0x7aa7x3[_0x21fa[307]]()){var _0x7aa7x49=0;var _0x7aa7x5b=0;if(_0x7aa7x5a==37){_0x7aa7x49= -1}else {if(_0x7aa7x5a==38){_0x7aa7x5b= -1}else {if(_0x7aa7x5a==39){_0x7aa7x49=1}else {if(_0x7aa7x5a==40){_0x7aa7x5b=1}}}};_0x7aa7x3[_0x21fa[435]](_0x7aa7x3[_0x21fa[308]](),_0x7aa7x49,_0x7aa7x5b);_0x7aa7x3[_0x21fa[436]](_0x7aa7x3[_0x21fa[326]]())}}var _0x7aa7x5c=mxUtils[_0x21fa[20]](this,function(_0x7aa7x5d,_0x7aa7x5e,_0x7aa7x2e,_0x7aa7x5f){var _0x7aa7x60=this[_0x21fa[12]][_0x21fa[143]](_0x7aa7x2e);if(_0x7aa7x60!=null){var _0x7aa7x1f=function(){if(_0x7aa7x60[_0x21fa[437]]){_0x7aa7x60[_0x21fa[438]]()}};if(_0x7aa7x5e){if(_0x7aa7x5f){_0x7aa7xf[_0x21fa[439]](_0x7aa7x5d,_0x7aa7x1f)}else {_0x7aa7xf[_0x21fa[440]](_0x7aa7x5d,_0x7aa7x1f)}}else {if(_0x7aa7x5f){_0x7aa7xf[_0x21fa[441]](_0x7aa7x5d,_0x7aa7x1f)}else {_0x7aa7xf[_0x21fa[442]](_0x7aa7x5d,_0x7aa7x1f)}}}});var _0x7aa7x61=this;var _0x7aa7x62=_0x7aa7xf[_0x21fa[443]];_0x7aa7xf[_0x21fa[443]]=function(_0x7aa7x6){_0x7aa7x61[_0x21fa[417]]();_0x7aa7x62[_0x21fa[50]](this,arguments)};_0x7aa7xf[_0x21fa[444]]=function(){};_0x7aa7xf[_0x21fa[442]](8,function(){_0x7aa7x3[_0x21fa[445]](true)});_0x7aa7xf[_0x21fa[442]](13,function(){_0x7aa7x3[_0x21fa[445]](false)});_0x7aa7xf[_0x21fa[442]](33,function(){_0x7aa7x3[_0x21fa[349]]()});_0x7aa7xf[_0x21fa[442]](34,function(){_0x7aa7x3[_0x21fa[350]]()});_0x7aa7xf[_0x21fa[442]](36,function(){_0x7aa7x3[_0x21fa[348]]()});_0x7aa7xf[_0x21fa[442]](35,function(){_0x7aa7x3[_0x21fa[15]]()});_0x7aa7xf[_0x21fa[442]](37,function(){_0x7aa7x59(37)});_0x7aa7xf[_0x21fa[442]](38,function(){_0x7aa7x59(38)});_0x7aa7xf[_0x21fa[442]](39,function(){_0x7aa7x59(39)});_0x7aa7xf[_0x21fa[442]](40,function(){_0x7aa7x59(40)});_0x7aa7xf[_0x21fa[442]](113,function(){_0x7aa7x3[_0x21fa[101]]()});_0x7aa7x5c(46,false,_0x21fa[309]);_0x7aa7x5c(82,true,_0x21fa[319]);_0x7aa7x5c(83,true,_0x21fa[202]);_0x7aa7x5c(83,true,_0x21fa[210],true);_0x7aa7x5c(107,false,_0x21fa[446]);_0x7aa7x5c(109,false,_0x21fa[447]);_0x7aa7x5c(65,true,_0x21fa[448]);_0x7aa7x5c(86,true,_0x21fa[449],true);_0x7aa7x5c(69,true,_0x21fa[450],true);_0x7aa7x5c(69,true,_0x21fa[451]);_0x7aa7x5c(66,true,_0x21fa[315]);_0x7aa7x5c(70,true,_0x21fa[314]);_0x7aa7x5c(68,true,_0x21fa[310]);_0x7aa7x5c(90,true,_0x21fa[303]);_0x7aa7x5c(89,true,_0x21fa[304]);_0x7aa7x5c(88,true,_0x21fa[146]);_0x7aa7x5c(67,true,_0x21fa[147]);_0x7aa7x5c(81,true,_0x21fa[452]);_0x7aa7x5c(86,true,_0x21fa[142]);_0x7aa7x5c(71,true,_0x21fa[325]);_0x7aa7x5c(71,true,_0x21fa[453],true);_0x7aa7x5c(85,true,_0x21fa[327]);_0x7aa7x5c(112,false,_0x21fa[454]);_0x7aa7x5c(80,true,_0x21fa[288],true);return _0x7aa7xf};EditorUi[_0x21fa[10]][_0x21fa[56]]=function(_0x7aa7x3,_0x7aa7x37,_0x7aa7x63,_0x7aa7x64){for(var _0x7aa7x38=0;_0x7aa7x38<_0x7aa7x37[_0x21fa[174]];_0x7aa7x38++){_0x7aa7x3[_0x21fa[457]]( new mxMultiplicity(true,_0x7aa7x37[_0x7aa7x38],null,null,_0x7aa7x63[_0x7aa7x38][0],_0x7aa7x63[_0x7aa7x38][1],null,mxResources[_0x21fa[143]](_0x7aa7x37[_0x7aa7x38])+mxResources[_0x21fa[143]](_0x21fa[455])+_0x7aa7x63[_0x7aa7x38][0]+mxResources[_0x21fa[143]](_0x21fa[456]),null));_0x7aa7x3[_0x21fa[457]]( new mxMultiplicity(false,_0x7aa7x37[_0x7aa7x38],null,null,_0x7aa7x64[_0x7aa7x38][0],_0x7aa7x64[_0x7aa7x38][1],null,mxResources[_0x21fa[143]](_0x7aa7x37[_0x7aa7x38])+mxResources[_0x21fa[143]](_0x21fa[455])+_0x7aa7x64[_0x7aa7x38][0]+mxResources[_0x21fa[143]](_0x21fa[458]),null))}}
\ No newline at end of file
index 46f34e4..aaa4212 100644 (file)
@@ -1,748 +1 @@
-/**
- * $Id: Graph.js,v 1.14 2013-02-16 10:19:54 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Constructs a new graph instance. Note that the constructor does not take a
- * container because the graph instance is needed for creating the UI, which
- * in turn will create the container for the graph. Hence, the container is
- * assigned later in EditorUi.
- */
-Graph = function(container, model, renderHint, stylesheet)
-{
-       mxGraph.call(this, container, model, renderHint, stylesheet);
-       
-       this.setConnectable(true);
-       this.setDropEnabled(false);
-       this.setPanning(true);
-       this.setTooltips(!mxClient.IS_TOUCH);
-       this.setAllowLoops(false);
-       this.setMultigraph(false);
-       this.allowAutoPanning = true;
-       this.resetEdgesOnConnect = false;
-       this.constrainChildren = false;
-       
-       // Centers the port icon on the target port
-    this.connectionHandler.targetConnectImage = true;
-
-    // Does not allow dangling edges
-    this.setAllowDanglingEdges(false);
-
-       // Enables cloning of connection sources
-       this.connectionHandler.setCreateTarget(false);
-       
-       // Disables built-in connection starts
-       this.connectionHandler.isValidSource = function()
-       {
-               return mxConnectionHandler.prototype.isValidSource.apply(this, arguments) && urlParams['connect'] != '2';
-       };
-
-       // Sets the style to be used when an elbow edge is double clicked
-       this.alternateEdgeStyle = 'vertical';
-
-       if (stylesheet == null)
-       {
-               this.loadStylesheet();
-       }
-       
-       // Creates rubberband selection
-    var rubberband = new mxRubberband(this);
-    
-    this.getRubberband = function()
-    {
-       return rubberband;
-    };
-    
-    // Shows hand cursor while panning
-       this.panningHandler.addListener(mxEvent.PAN_START, mxUtils.bind(this, function()
-       {
-               this.container.style.cursor = 'pointer';
-       }));
-                       
-       this.panningHandler.addListener(mxEvent.PAN_END, mxUtils.bind(this, function()
-       {
-               this.container.style.cursor = 'default';
-       }));
-
-    // Adds support for HTML labels via style. Note: Currently, only the Java
-    // backend supports HTML labels but CSS support is limited to the following:
-    // http://docs.oracle.com/javase/6/docs/api/index.html?javax/swing/text/html/CSS.html
-       this.isHtmlLabel = function(cell)
-       {
-               var state = this.view.getState(cell);
-               var style = (state != null) ? state.style : this.getCellStyle(cell);
-               
-               return style['html'] == '1' || style['whiteSpace'] == 'wrap';
-       };
-       
-       // HTML entities are displayed as plain text in wrapped plain text labels
-       this.cellRenderer.getLabelValue = function(state)
-       {
-               var result = mxCellRenderer.prototype.getLabelValue.apply(this, arguments);
-               
-               if (state.style['whiteSpace'] == 'wrap' && state.style['html'] != 1)
-               {
-                       result = mxUtils.htmlEntities(result, false);
-               }
-               
-               return result;
-       };
-       
-       // Unlocks all cells
-       this.isCellLocked = function(cell)
-       {
-               return false;
-       };
-
-       // Tap and hold brings up context menu.
-       // Tolerance slightly below graph tolerance is better.
-       this.connectionHandler.tapAndHoldTolerance = 16;
-       
-       //  Tap and hold on background starts rubberband on cell starts connecting
-       var connectionHandlerTapAndHold = this.connectionHandler.tapAndHold;
-       this.connectionHandler.tapAndHold = function(me, state)
-       {
-               if (state == null)
-               {
-                       if (!this.graph.panningHandler.active)
-                       {
-                               rubberband.start(me.getGraphX(), me.getGraphY());
-                               this.graph.panningHandler.panningTrigger = false;
-                       }
-               }
-               else if (tapAndHoldStartsConnection)
-               {
-                       connectionHandlerTapAndHold.apply(this, arguments);     
-               }
-               else if (this.graph.isCellSelected(state.cell) && this.graph.getSelectionCount() > 1)
-               {
-                       this.graph.removeSelectionCell(state.cell);
-               }
-       };
-
-       if (touchStyle)
-       {
-               this.initTouch();
-       }
-};
-
-// Graph inherits from mxGraph
-mxUtils.extend(Graph, mxGraph);
-
-/**
- * Allows to all values in fit.
- */
-Graph.prototype.minFitScale = null;
-
-/**
- * Allows to all values in fit.
- */
-Graph.prototype.maxFitScale = null;
-
-/**
- * Loads the stylesheet for this graph.
- */
-Graph.prototype.loadStylesheet = function()
-{
-    var node = mxUtils.load(STYLE_PATH + '/default.xml').getDocumentElement();
-       var dec = new mxCodec(node.ownerDocument);
-       dec.decode(node, this.getStylesheet());
-};
-
-/**
- * Inverts the elbow edge style without removing existing styles.
- */
-Graph.prototype.flipEdge = function(edge)
-{
-       if (edge != null)
-       {
-               var state = this.view.getState(edge);
-               var style = (state != null) ? state.style : this.getCellStyle(edge);
-               
-               if (style != null)
-               {
-                       var elbow = mxUtils.getValue(style, mxConstants.STYLE_ELBOW,
-                               mxConstants.ELBOW_HORIZONTAL);
-                       var value = (elbow == mxConstants.ELBOW_HORIZONTAL) ?
-                               mxConstants.ELBOW_VERTICAL : mxConstants.ELBOW_HORIZONTAL;
-                       this.setCellStyles(mxConstants.STYLE_ELBOW, value, [edge]);
-               }
-       }
-};
-
-/**
- * Sets the default edge for future connections.
- */
-Graph.prototype.setDefaultEdge = function(cell)
-{
-       if (cell != null && this.getModel().isEdge(cell))
-       {
-               // Take a snapshot of the cell at the moment of calling
-               var proto = this.getModel().cloneCells([cell])[0];
-               
-               // Delete existing points
-               if (proto.geometry != null)
-               {
-                       proto.geometry.points = null;
-               }
-               
-               // Delete entry-/exitXY styles
-               var style = proto.getStyle();
-               style = mxUtils.setStyle(style, mxConstants.STYLE_ENTRY_X, null);
-               style = mxUtils.setStyle(style, mxConstants.STYLE_ENTRY_Y, null);
-               style = mxUtils.setStyle(style, mxConstants.STYLE_EXIT_X, null);
-               style = mxUtils.setStyle(style, mxConstants.STYLE_EXIT_Y, null);
-               proto.setStyle(style);
-               
-               // Uses edge template for connect preview
-               this.connectionHandler.createEdgeState = function(me)
-               {
-               return this.graph.view.createState(proto);
-           };
-
-           // Creates new connections from edge template
-           this.connectionHandler.factoryMethod = function()
-           {
-               return this.graph.cloneCells([proto])[0];
-           };
-       }
-};
-
-/**
- * Disables folding for non-swimlanes.
- */
-Graph.prototype.isCellFoldable = function(cell)
-{
-       return this.foldingEnabled && this.isSwimlane(cell);
-};
-
-/**
- * Disables drill-down for non-swimlanes.
- */
-Graph.prototype.isValidRoot = function(cell)
-{
-       return this.isSwimlane(cell);
-};
-
-/**
- * Overrides createGroupCell to set the group style for new groups to 'group'.
- */
-Graph.prototype.createGroupCell = function()
-{
-       var group = mxGraph.prototype.createGroupCell.apply(this, arguments);
-       group.setStyle('group');
-       
-       return group;
-};
-
-/**
- * Giuseppe Careri
- * Overrides tooltips to show position and size
- */
-Graph.prototype.getTooltipForCell = function(cell)
-{
-       var tip = '';
-       
-       if (this.getModel().isVertex(cell))
-       {
-               // var geo = this.getCellGeometry(cell);
-               
-               // var f2 = function(x)
-               // {
-               //      return Math.round(parseFloat(x) * 100) / 100;
-               // };
-               
-               // if (geo != null)
-               // {
-               //      if (tip == null)
-               //      {
-               //              tip = '';
-               //      }
-               //      else if (tip.length > 0)
-               //      {
-               //              tip += '\n';
-               //      }
-                       
-               //      tip += 'X: ' + f2(geo.x) + '\nY: ' + f2(geo.y) + '\nW: ' + f2(geo.width) + '\nH: ' + f2(geo.height);
-               // }
-               
-               tip += mxResources.get('description_' + cell.value.nodeName);
-       }
-       else if (this.getModel().isEdge(cell))
-       {
-               tip = mxGraph.prototype.getTooltipForCell.apply(this, arguments);
-       }
-       
-       return tip;
-};
-
-/**
- * Giuseppe Careri
- * Returns the label for the given cell.
- */
-Graph.prototype.convertValueToString = function(cell)
-{
-       if (cell.value != null && typeof(cell.value) == 'object')
-       {
-               return cell.value.getAttribute('label');
-       }
-       
-       return mxGraph.prototype.convertValueToString.apply(this, arguments);
-};
-
-/**
- * Giuseppe Careri
- * Handles label changes for XML user objects.
- */
-Graph.prototype.cellLabelChanged = function(cell, value, autoSize)
-{
-       if (cell.value != null && typeof(cell.value) == 'object')
-       {
-               var tmp = cell.value.cloneNode(true);
-               tmp.setAttribute('label', value);
-               value = tmp;
-       }
-       
-       mxGraph.prototype.cellLabelChanged.apply(this, arguments);
-};
-
-/**
- * Sets the link for the given cell.
- */
-Graph.prototype.setLinkForCell = function(cell, link)
-{
-       var value = null;
-       
-       if (cell.value != null && typeof(cell.value) == 'object')
-       {
-               value = cell.value.cloneNode(true);
-       }
-       else
-       {
-               var doc = mxUtils.createXmlDocument();
-               
-               value = doc.createElement('UserObject');
-               value.setAttribute('label', cell.value);
-       }
-       
-       if (link != null && link.length > 0)
-       {
-               value.setAttribute('link', link);
-       }
-       else
-       {
-               value.removeAttribute('link');
-       }
-       
-       this.model.setValue(cell, value);
-};
-
-/**
- * Returns the link for the given cell.
- */
-Graph.prototype.getLinkForCell = function(cell)
-{
-       if (cell.value != null && typeof(cell.value) == 'object')
-       {
-               return cell.value.getAttribute('link');
-       }
-       
-       return null;
-};
-
-/**
- * Customized graph for touch devices.
- */
-Graph.prototype.initTouch = function()
-{
-       // Disables new connections via "hotspot"
-       this.connectionHandler.marker.isEnabled = function()
-       {
-               return this.graph.connectionHandler.first != null;
-       };
-
-       // Hides menu when editing starts
-       this.addListener(mxEvent.START_EDITING, function(sender, evt)
-       {
-               this.panningHandler.hideMenu();
-       });
-
-       // Context menu for touchstyle
-       var showMenu = false;
-       var menuCell = null;
-
-       // Checks if native hit detection did not return anything and does custom
-       // hit detection for edges to take into account the tolerance
-       this.updateMouseEvent = function(me)
-       {
-               mxGraph.prototype.updateMouseEvent.apply(this, arguments);
-
-               if (me.getState() == null)
-               {
-                       var cell = this.getCellAt(me.graphX, me.graphY);
-                       
-                       if (this.getModel().isEdge(cell))
-                       {
-                               me.state = this.view.getState(cell);
-                               
-                               if (me.state != null && me.state.shape != null)
-                               {
-                                       this.container.style.cursor = me.state.shape.node.style.cursor;
-                               }
-                       }
-               }
-               
-               if (me.getState() == null)
-               {
-                       this.container.style.cursor = 'default';
-               }
-       };
-       
-       // Handles popup menu on touch devices (tap selected cell)
-       this.fireMouseEvent = function(evtName, me, sender)
-       {
-               if (evtName == mxEvent.MOUSE_DOWN)
-               {
-                       if (!this.panningHandler.isMenuShowing())
-                       {
-                               menuCell = me.getCell();
-                               showMenu = (menuCell != null) ? this.isCellSelected(menuCell) : this.isSelectionEmpty();
-                       }
-                       else
-                       {
-                               showMenu = false;
-                               menuCell = null;
-                       }
-               }
-               else if (evtName == mxEvent.MOUSE_UP)
-               {
-                       if (showMenu && !this.isEditing())
-                       {
-                               if (!this.panningHandler.isMenuShowing())
-                               {
-                                       var x = mxEvent.getClientX(me.getEvent());
-                                       var y = mxEvent.getClientY(me.getEvent());
-                                       
-                                       this.panningHandler.popup(x + 16, y, menuCell, me.getEvent());
-                               }
-                               
-                               showMenu = false;
-                               menuCell = null;
-                               me.consume();
-                               
-                               return;
-                       }
-                       
-                       showMenu = false;
-                       menuCell = null;
-               }
-
-               mxGraph.prototype.fireMouseEvent.apply(this, arguments);
-
-               if (evtName == mxEvent.MOUSE_MOVE && me.isConsumed())
-               {
-                       showMenu = false;
-                       menuCell = null;
-               }
-       };
-};
-
-/**
- * Implements touch devices.
- */
-(function()
-{
-       // Enables rotation handle
-       mxVertexHandler.prototype.rotationEnabled = true;
-       
-       // Matches label positions of mxGraph 1.x
-       mxText.prototype.baseSpacingTop = 5;
-       mxText.prototype.baseSpacingBottom = 1;
-
-       // Touch-specific static overrides
-       if (touchStyle)
-       {
-               // Sets constants for touch style
-               mxConstants.HANDLE_SIZE = 16;
-               mxConstants.LABEL_HANDLE_SIZE = 7;
-               
-               // Larger tolerance and grid for real touch devices
-               if (mxClient.IS_TOUCH)
-               {
-                       mxVertexHandler.prototype.tolerance = 4;
-                       mxEdgeHandler.prototype.tolerance = 6;
-                       Graph.prototype.tolerance = 14;
-                       Graph.prototype.gridSize = 20;
-                       
-                       // One finger pans (no rubberband selection) must start regardless of mouse button
-                       mxPanningHandler.prototype.selectOnPopup = false;
-                       mxPanningHandler.prototype.useLeftButtonForPanning = true;
-                       mxPanningHandler.prototype.isPanningTrigger = function(me)
-                       {
-                               var evt = me.getEvent();
-                               
-                               return (this.useLeftButtonForPanning && (this.ignoreCell || me.getState() == null)/* &&
-                                               mxEvent.isLeftMouseButton(evt)*/) || (mxEvent.isControlDown(evt) &&
-                                               mxEvent.isShiftDown(evt)) || (this.usePopupTrigger &&
-                                               mxEvent.isPopupTrigger(evt));
-                       };
-               }
-               
-               // Don't clear selection if multiple cells selected
-               var graphHandlerMouseDown = mxGraphHandler.prototype.mouseDown;
-               mxGraphHandler.prototype.mouseDown = function(sender, me)
-               {
-                       graphHandlerMouseDown.apply(this, arguments);
-
-                       if (this.graph.isCellSelected(me.getCell()) && this.graph.getSelectionCount() > 1)
-                       {
-                               this.delayedSelection = false;
-                       }
-               };
-
-               // Changes order of panninghandler
-               Graph.prototype.createHandlers = function(container)
-               {
-                       this.tooltipHandler = new mxTooltipHandler(this);
-                       this.tooltipHandler.setEnabled(false);
-                       // Selection cells first
-                       this.selectionCellsHandler = new mxSelectionCellsHandler(this);
-                       this.panningHandler = new mxPanningHandler(this);
-                       this.panningHandler.panningEnabled = false;
-                       this.connectionHandler = new mxConnectionHandler(this);
-                       this.connectionHandler.setEnabled(false);
-                       this.graphHandler = new mxGraphHandler(this);
-               };
-
-               // On connect the target is selected and we clone the cell of the preview edge for insert
-               mxConnectionHandler.prototype.selectCells = function(edge, target)
-               {
-                       if (touchStyle && target != null)
-                       {
-                               this.graph.setSelectionCell(target);
-                       }
-                       else
-                       {
-                               this.graph.setSelectionCell(edge);
-                       }
-               };
-
-               // Overrides double click handling to use the tolerance
-               // FIXME: Double click on edges in iPad needs focus on textarea
-               var graphDblClick = mxGraph.prototype.dblClick;
-               Graph.prototype.dblClick = function(evt, cell)
-               {
-                       if (cell == null)
-                       {
-                               var pt = mxUtils.convertPoint(this.container,
-                                       mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-                               cell = this.getCellAt(pt.x, pt.y);
-                       }
-
-                       graphDblClick.call(this, evt, cell);
-               };
-
-               // Rounded edge and vertex handles
-               var touchHandle = new mxImage(IMAGE_PATH + '/touch-handle.png', 16, 16);
-               mxVertexHandler.prototype.handleImage = touchHandle;
-               mxEdgeHandler.prototype.handleImage = touchHandle;
-               mxOutline.prototype.sizerImage = touchHandle;
-               
-               // Pre-fetches touch handle
-               new Image().src = touchHandle.src;
-
-               // Adds connect icon to selected vertices
-               var connectorSrc = IMAGE_PATH + '/touch-connector.png';
-               
-               var vertexHandlerInit = mxVertexHandler.prototype.init;
-               mxVertexHandler.prototype.init = function()
-               {
-                       vertexHandlerInit.apply(this, arguments);
-
-                       // Only show connector image on one cell and do not show on containers
-                       if (showConnectorImg && this.graph.connectionHandler.isEnabled() &&
-                               this.graph.isCellConnectable(this.state.cell) &&
-                               !this.graph.isValidRoot(this.state.cell) &&
-                               this.graph.getSelectionCount() == 1)
-                       {
-                               this.connectorImg = mxUtils.createImage(connectorSrc);
-                               this.connectorImg.style.cursor = 'pointer';
-                               this.connectorImg.style.width = '29px';
-                               this.connectorImg.style.height = '29px';
-                               this.connectorImg.style.position = 'absolute';
-                               
-                               if (!mxClient.IS_TOUCH)
-                               {
-                                       this.connectorImg.setAttribute('title', mxResources.get('connect'));
-                                       mxEvent.redirectMouseEvents(this.connectorImg, this.graph, this.state);
-                               }
-
-                               // Adds 2px tolerance
-                               this.connectorImg.style.padding = '2px';
-                               
-                               // Starts connecting on touch/mouse down
-                               mxEvent.addGestureListeners(this.connectorImg,
-                                       mxUtils.bind(this, function(evt)
-                                       {
-                                               this.graph.panningHandler.hideMenu();
-                                               var pt = mxUtils.convertPoint(this.graph.container,
-                                                               mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-                                               this.graph.connectionHandler.start(this.state, pt.x, pt.y);
-                                               this.graph.isMouseDown = true;
-                                               mxEvent.consume(evt);
-                                       })
-                               );
-
-                               this.graph.container.appendChild(this.connectorImg);
-                       }
-
-                       this.redrawTools();
-               };
-               
-               var vertexHandlerRedraw = mxVertexHandler.prototype.redraw;
-               mxVertexHandler.prototype.redraw = function()
-               {
-                       vertexHandlerRedraw.apply(this);
-                       this.redrawTools();
-               };
-               
-               mxVertexHandler.prototype.redrawTools = function()
-               {
-                       if (this.state != null && this.connectorImg != null)
-                       {
-                               // Top right for single-sizer
-                               if (mxVertexHandler.prototype.singleSizer)
-                               {
-                                       this.connectorImg.style.left = (this.state.x + this.state.width - this.connectorImg.offsetWidth / 2) + 'px';
-                                       this.connectorImg.style.top = (this.state.y - this.connectorImg.offsetHeight / 2) + 'px';
-                               }
-                               else
-                               {
-                                       this.connectorImg.style.left = (this.state.x + this.state.width + mxConstants.HANDLE_SIZE / 2 + 4/* - 2 padding*/) + 'px';
-                                       this.connectorImg.style.top = (this.state.y + (this.state.height - this.connectorImg.offsetHeight) / 2) + 'px';
-                               }
-                       }
-               };
-               
-               var vertexHandlerDestroy = mxVertexHandler.prototype.destroy;
-               mxVertexHandler.prototype.destroy = function(sender, me)
-               {
-                       vertexHandlerDestroy.apply(this, arguments);
-
-                       if (this.connectorImg != null)
-                       {
-                               this.connectorImg.parentNode.removeChild(this.connectorImg);
-                               this.connectorImg = null;
-                       }
-               };
-               
-               // Pre-fetches touch connector
-               new Image().src = connectorSrc;
-       }
-       else
-       {
-               var img = new mxImage(IMAGE_PATH + '/connector.png', 15, 15);
-               mxConnectionHandler.prototype.connectImage = img;
-
-               // Pre-fetches img
-               new Image().src = img.src;
-               
-               if (urlParams['connect'] == '2') // not touchStyle
-               {
-                       var img = new mxImage(IMAGE_PATH + '/connector.png', 15, 15);
-                                       
-                       var vertexHandlerInit = mxVertexHandler.prototype.init;
-                       mxVertexHandler.prototype.init = function()
-                       {
-                               vertexHandlerInit.apply(this, arguments);
-       
-                               // Only show connector image on one cell and do not show on containers
-                               if (showConnectorImg && this.graph.connectionHandler.isEnabled() &&
-                                       this.graph.isCellConnectable(this.state.cell) &&
-                                       !this.graph.isValidRoot(this.state.cell) &&
-                                       this.graph.getSelectionCount() == 1)
-                               {
-                                       // Workaround for event redirection via image tag in quirks and IE8
-                                       if (mxClient.IS_IE && !mxClient.IS_SVG)
-                                       {
-                                               this.connectorImg = document.createElement('div');
-                                               this.connectorImg.style.backgroundImage = 'url(' + img.src + ')';
-                                               this.connectorImg.style.backgroundPosition = 'center';
-                                               this.connectorImg.style.backgroundRepeat = 'no-repeat';
-                                               this.connectorImg.style.width = (img.width + 4) + 'px';
-                                               this.connectorImg.style.height = (img.height + 4) + 'px';
-                                               this.connectorImg.style.display = (mxClient.IS_QUIRKS) ? 'inline' : 'inline-block';
-                                       }
-                                       else
-                                       {
-                                               this.connectorImg = mxUtils.createImage(img.src);
-                                               this.connectorImg.style.width = img.width + 'px';
-                                               this.connectorImg.style.height = img.height + 'px';
-                                       }
-                                       
-                                       this.connectorImg.style.cursor = 'pointer';
-                                       this.connectorImg.style.position = 'absolute';
-                                       this.connectorImg.setAttribute('title', mxResources.get('connect'));
-                                       mxEvent.redirectMouseEvents(this.connectorImg, this.graph, this.state);
-                                       
-                                       // Adds 2px tolerance
-                                       this.connectorImg.style.padding = '2px';
-                                       
-                                       // Starts connecting on touch/mouse down
-                                       mxEvent.addListener(this.connectorImg, 'mousedown',
-                                               mxUtils.bind(this, function(evt)
-                                               {
-                                                       this.graph.panningHandler.hideMenu();
-                                                       var pt = mxUtils.convertPoint(this.graph.container,
-                                                                       mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-                                                       this.graph.connectionHandler.start(this.state, pt.x, pt.y);
-                                                       this.graph.isMouseDown = true;
-                                                       mxEvent.consume(evt);
-                                               })
-                                       );
-       
-                                       this.graph.container.appendChild(this.connectorImg);
-                               }
-       
-                               this.redrawTools();
-                       };
-                       
-                       var vertexHandlerRedraw = mxVertexHandler.prototype.redraw;
-                       mxVertexHandler.prototype.redraw = function()
-                       {
-                               vertexHandlerRedraw.apply(this);
-                               this.redrawTools();
-                       };
-                       
-                       mxVertexHandler.prototype.redrawTools = function()
-                       {
-                               if (this.state != null && this.connectorImg != null)
-                               {
-                                       // Top right for single-sizer
-                                       if (mxVertexHandler.prototype.singleSizer)
-                                       {
-                                               this.connectorImg.style.left = (this.state.x + this.state.width - this.connectorImg.offsetWidth / 2) + 'px';
-                                               this.connectorImg.style.top = (this.state.y - this.connectorImg.offsetHeight / 2) + 'px';
-                                       }
-                                       else
-                                       {
-                                               this.connectorImg.style.left = (this.state.x + this.state.width + mxConstants.HANDLE_SIZE / 2 + 2/* - 2 padding*/) + 'px';
-                                               this.connectorImg.style.top = (this.state.y + (this.state.height - this.connectorImg.offsetHeight) / 2) + 'px';
-                                       }
-                               }
-                       };
-                       
-                       var vertexHandlerDestroy = mxVertexHandler.prototype.destroy;
-                       mxVertexHandler.prototype.destroy = function(sender, me)
-                       {
-                               vertexHandlerDestroy.apply(this, arguments);
-       
-                               if (this.connectorImg != null)
-                               {
-                                       this.connectorImg.parentNode.removeChild(this.connectorImg);
-                                       this.connectorImg = null;
-                               }
-                       };
-               }
-       }
-})();
+var _0x99b0=["\x63\x61\x6C\x6C","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x73\x65\x74\x44\x72\x6F\x70\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x50\x61\x6E\x6E\x69\x6E\x67","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x4C\x6F\x6F\x70\x73","\x73\x65\x74\x4D\x75\x6C\x74\x69\x67\x72\x61\x70\x68","\x61\x6C\x6C\x6F\x77\x41\x75\x74\x6F\x50\x61\x6E\x6E\x69\x6E\x67","\x72\x65\x73\x65\x74\x45\x64\x67\x65\x73\x4F\x6E\x43\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x43\x68\x69\x6C\x64\x72\x65\x6E","\x74\x61\x72\x67\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x41\x6C\x6C\x6F\x77\x44\x61\x6E\x67\x6C\x69\x6E\x67\x45\x64\x67\x65\x73","\x73\x65\x74\x43\x72\x65\x61\x74\x65\x54\x61\x72\x67\x65\x74","\x69\x73\x56\x61\x6C\x69\x64\x53\x6F\x75\x72\x63\x65","\x61\x70\x70\x6C\x79","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x6E\x65\x63\x74","\x32","\x61\x6C\x74\x65\x72\x6E\x61\x74\x65\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6C\x6F\x61\x64\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x67\x65\x74\x52\x75\x62\x62\x65\x72\x62\x61\x6E\x64","\x63\x75\x72\x73\x6F\x72","\x73\x74\x79\x6C\x65","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x65\x66\x61\x75\x6C\x74","\x69\x73\x48\x74\x6D\x6C\x4C\x61\x62\x65\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x76\x69\x65\x77","\x67\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65","\x68\x74\x6D\x6C","\x31","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x77\x72\x61\x70","\x67\x65\x74\x4C\x61\x62\x65\x6C\x56\x61\x6C\x75\x65","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x68\x74\x6D\x6C\x45\x6E\x74\x69\x74\x69\x65\x73","\x69\x73\x43\x65\x6C\x6C\x4C\x6F\x63\x6B\x65\x64","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64\x54\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x74\x61\x70\x41\x6E\x64\x48\x6F\x6C\x64","\x61\x63\x74\x69\x76\x65","\x67\x72\x61\x70\x68","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x73\x74\x61\x72\x74","\x70\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x63\x65\x6C\x6C","\x69\x73\x43\x65\x6C\x6C\x53\x65\x6C\x65\x63\x74\x65\x64","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x69\x6E\x69\x74\x54\x6F\x75\x63\x68","\x65\x78\x74\x65\x6E\x64","\x6D\x69\x6E\x46\x69\x74\x53\x63\x61\x6C\x65","\x6D\x61\x78\x46\x69\x74\x53\x63\x61\x6C\x65","\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x2F\x64\x65\x66\x61\x75\x6C\x74\x2E\x78\x6D\x6C","\x6C\x6F\x61\x64","\x6F\x77\x6E\x65\x72\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x64\x65\x63\x6F\x64\x65","\x66\x6C\x69\x70\x45\x64\x67\x65","\x67\x65\x74\x56\x61\x6C\x75\x65","\x45\x4C\x42\x4F\x57\x5F\x48\x4F\x52\x49\x5A\x4F\x4E\x54\x41\x4C","\x45\x4C\x42\x4F\x57\x5F\x56\x45\x52\x54\x49\x43\x41\x4C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x69\x73\x45\x64\x67\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x63\x6C\x6F\x6E\x65\x43\x65\x6C\x6C\x73","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x70\x6F\x69\x6E\x74\x73","\x67\x65\x74\x53\x74\x79\x6C\x65","\x73\x65\x74\x53\x74\x79\x6C\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x53\x74\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65","\x66\x61\x63\x74\x6F\x72\x79\x4D\x65\x74\x68\x6F\x64","\x69\x73\x43\x65\x6C\x6C\x46\x6F\x6C\x64\x61\x62\x6C\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x77\x69\x6D\x6C\x61\x6E\x65","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x63\x72\x65\x61\x74\x65\x47\x72\x6F\x75\x70\x43\x65\x6C\x6C","\x67\x72\x6F\x75\x70","\x67\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x46\x6F\x72\x43\x65\x6C\x6C","","\x69\x73\x56\x65\x72\x74\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x5F","\x6E\x6F\x64\x65\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x67\x65\x74","\x63\x6F\x6E\x76\x65\x72\x74\x56\x61\x6C\x75\x65\x54\x6F\x53\x74\x72\x69\x6E\x67","\x6F\x62\x6A\x65\x63\x74","\x6C\x61\x62\x65\x6C","\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x65\x6C\x6C\x4C\x61\x62\x65\x6C\x43\x68\x61\x6E\x67\x65\x64","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x73\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x55\x73\x65\x72\x4F\x62\x6A\x65\x63\x74","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x6C\x65\x6E\x67\x74\x68","\x6C\x69\x6E\x6B","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x73\x65\x74\x56\x61\x6C\x75\x65","\x6D\x6F\x64\x65\x6C","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x6D\x61\x72\x6B\x65\x72","\x66\x69\x72\x73\x74","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x75\x70\x64\x61\x74\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x67\x72\x61\x70\x68\x58","\x67\x72\x61\x70\x68\x59","\x67\x65\x74\x43\x65\x6C\x6C\x41\x74","\x73\x74\x61\x74\x65","\x73\x68\x61\x70\x65","\x6E\x6F\x64\x65","\x66\x69\x72\x65\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74","\x4D\x4F\x55\x53\x45\x5F\x44\x4F\x57\x4E","\x69\x73\x4D\x65\x6E\x75\x53\x68\x6F\x77\x69\x6E\x67","\x67\x65\x74\x43\x65\x6C\x6C","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x4D\x4F\x55\x53\x45\x5F\x55\x50","\x69\x73\x45\x64\x69\x74\x69\x6E\x67","\x67\x65\x74\x45\x76\x65\x6E\x74","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x4D\x4F\x55\x53\x45\x5F\x4D\x4F\x56\x45","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x72\x6F\x74\x61\x74\x69\x6F\x6E\x45\x6E\x61\x62\x6C\x65\x64","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x54\x6F\x70","\x62\x61\x73\x65\x53\x70\x61\x63\x69\x6E\x67\x42\x6F\x74\x74\x6F\x6D","\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x4C\x41\x42\x45\x4C\x5F\x48\x41\x4E\x44\x4C\x45\x5F\x53\x49\x5A\x45","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x67\x72\x69\x64\x53\x69\x7A\x65","\x73\x65\x6C\x65\x63\x74\x4F\x6E\x50\x6F\x70\x75\x70","\x75\x73\x65\x4C\x65\x66\x74\x42\x75\x74\x74\x6F\x6E\x46\x6F\x72\x50\x61\x6E\x6E\x69\x6E\x67","\x69\x73\x50\x61\x6E\x6E\x69\x6E\x67\x54\x72\x69\x67\x67\x65\x72","\x69\x67\x6E\x6F\x72\x65\x43\x65\x6C\x6C","\x69\x73\x43\x6F\x6E\x74\x72\x6F\x6C\x44\x6F\x77\x6E","\x69\x73\x53\x68\x69\x66\x74\x44\x6F\x77\x6E","\x75\x73\x65\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x6D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x64\x65\x6C\x61\x79\x65\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x43\x65\x6C\x6C\x73","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x64\x62\x6C\x43\x6C\x69\x63\x6B","\x63\x6F\x6E\x76\x65\x72\x74\x50\x6F\x69\x6E\x74","\x78","\x79","\x2F\x74\x6F\x75\x63\x68\x2D\x68\x61\x6E\x64\x6C\x65\x2E\x70\x6E\x67","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x73\x69\x7A\x65\x72\x49\x6D\x61\x67\x65","\x73\x72\x63","\x2F\x74\x6F\x75\x63\x68\x2D\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x2E\x70\x6E\x67","\x69\x6E\x69\x74","\x69\x73\x43\x65\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x49\x6D\x67","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x32\x39\x70\x78","\x68\x65\x69\x67\x68\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x74\x69\x74\x6C\x65","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x70\x61\x64\x64\x69\x6E\x67","\x32\x70\x78","\x69\x73\x4D\x6F\x75\x73\x65\x44\x6F\x77\x6E","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x72\x65\x64\x72\x61\x77\x54\x6F\x6F\x6C\x73","\x72\x65\x64\x72\x61\x77","\x73\x69\x6E\x67\x6C\x65\x53\x69\x7A\x65\x72","\x6C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x78","\x74\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x2F\x63\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x2E\x70\x6E\x67","\x63\x6F\x6E\x6E\x65\x63\x74\x49\x6D\x61\x67\x65","\x49\x53\x5F\x49\x45","\x49\x53\x5F\x53\x56\x47","\x64\x69\x76","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x65\x6E\x74\x65\x72","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x64\x69\x73\x70\x6C\x61\x79","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x69\x6E\x6C\x69\x6E\x65","\x69\x6E\x6C\x69\x6E\x65\x2D\x62\x6C\x6F\x63\x6B","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E"];Graph=function(_0x7086x1,_0x7086x2,_0x7086x3,_0x7086x4){mxGraph[_0x99b0[0]](this,_0x7086x1,_0x7086x2,_0x7086x3,_0x7086x4);this[_0x99b0[1]](true);this[_0x99b0[2]](false);this[_0x99b0[3]](true);this[_0x99b0[4]](!mxClient.IS_TOUCH);this[_0x99b0[5]](false);this[_0x99b0[6]](false);this[_0x99b0[7]]=true;this[_0x99b0[8]]=false;this[_0x99b0[9]]=false;this[_0x99b0[11]][_0x99b0[10]]=true;this[_0x99b0[12]](false);this[_0x99b0[11]][_0x99b0[13]](false);this[_0x99b0[11]][_0x99b0[14]]=function(){return mxConnectionHandler[_0x99b0[16]][_0x99b0[14]][_0x99b0[15]](this,arguments)&&urlParams[_0x99b0[17]]!=_0x99b0[18]};this[_0x99b0[19]]=_0x99b0[20];if(_0x7086x4==null){this[_0x99b0[21]]()};var _0x7086x5= new mxRubberband(this);this[_0x99b0[22]]=function(){return _0x7086x5};this[_0x99b0[29]][_0x99b0[28]](mxEvent.PAN_START,mxUtils[_0x99b0[27]](this,function(){this[_0x99b0[25]][_0x99b0[24]][_0x99b0[23]]=_0x99b0[26]}));this[_0x99b0[29]][_0x99b0[28]](mxEvent.PAN_END,mxUtils[_0x99b0[27]](this,function(){this[_0x99b0[25]][_0x99b0[24]][_0x99b0[23]]=_0x99b0[30]}));this[_0x99b0[31]]=function(_0x7086x6){var _0x7086x7=this[_0x99b0[33]][_0x99b0[32]](_0x7086x6);var _0x7086x8=(_0x7086x7!=null)?_0x7086x7[_0x99b0[24]]:this[_0x99b0[34]](_0x7086x6);return _0x7086x8[_0x99b0[35]]==_0x99b0[36]||_0x7086x8[_0x99b0[37]]==_0x99b0[38]};this[_0x99b0[40]][_0x99b0[39]]=function(_0x7086x7){var _0x7086x9=mxCellRenderer[_0x99b0[16]][_0x99b0[39]][_0x99b0[15]](this,arguments);if(_0x7086x7[_0x99b0[24]][_0x99b0[37]]==_0x99b0[38]&&_0x7086x7[_0x99b0[24]][_0x99b0[35]]!=1){_0x7086x9=mxUtils[_0x99b0[41]](_0x7086x9,false)};return _0x7086x9};this[_0x99b0[42]]=function(_0x7086x6){return false};this[_0x99b0[11]][_0x99b0[43]]=16;var _0x7086xa=this[_0x99b0[11]][_0x99b0[44]];this[_0x99b0[11]][_0x99b0[44]]=function(_0x7086xb,_0x7086x7){if(_0x7086x7==null){if(!this[_0x99b0[46]][_0x99b0[29]][_0x99b0[45]]){_0x7086x5[_0x99b0[49]](_0x7086xb[_0x99b0[47]](),_0x7086xb[_0x99b0[48]]());this[_0x99b0[46]][_0x99b0[29]][_0x99b0[50]]=false}}else {if(tapAndHoldStartsConnection){_0x7086xa[_0x99b0[15]](this,arguments)}else {if(this[_0x99b0[46]][_0x99b0[52]](_0x7086x7[_0x99b0[51]])&&this[_0x99b0[46]][_0x99b0[53]]()>1){this[_0x99b0[46]][_0x99b0[54]](_0x7086x7[_0x99b0[51]])}}}};if(touchStyle){this[_0x99b0[55]]()}};mxUtils[_0x99b0[56]](Graph,mxGraph);Graph[_0x99b0[16]][_0x99b0[57]]=null;Graph[_0x99b0[16]][_0x99b0[58]]=null;Graph[_0x99b0[16]][_0x99b0[21]]=function(){var _0x7086xc=mxUtils[_0x99b0[61]](STYLE_PATH+_0x99b0[60])[_0x99b0[59]]();var _0x7086xd= new mxCodec(_0x7086xc[_0x99b0[62]]);_0x7086xd[_0x99b0[64]](_0x7086xc,this[_0x99b0[63]]())};Graph[_0x99b0[16]][_0x99b0[65]]=function(_0x7086xe){if(_0x7086xe!=null){var _0x7086x7=this[_0x99b0[33]][_0x99b0[32]](_0x7086xe);var _0x7086x8=(_0x7086x7!=null)?_0x7086x7[_0x99b0[24]]:this[_0x99b0[34]](_0x7086xe);if(_0x7086x8!=null){var _0x7086xf=mxUtils[_0x99b0[66]](_0x7086x8,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL);var _0x7086x10=(_0x7086xf==mxConstants[_0x99b0[67]])?mxConstants[_0x99b0[68]]:mxConstants[_0x99b0[67]];this[_0x99b0[69]](mxConstants.STYLE_ELBOW,_0x7086x10,[_0x7086xe])}}};Graph[_0x99b0[16]][_0x99b0[70]]=function(_0x7086x6){if(_0x7086x6!=null&&this[_0x99b0[72]]()[_0x99b0[71]](_0x7086x6)){var _0x7086x11=this[_0x99b0[72]]()[_0x99b0[73]]([_0x7086x6])[0];if(_0x7086x11[_0x99b0[74]]!=null){_0x7086x11[_0x99b0[74]][_0x99b0[75]]=null};var _0x7086x8=_0x7086x11[_0x99b0[76]]();_0x7086x8=mxUtils[_0x99b0[77]](_0x7086x8,mxConstants.STYLE_ENTRY_X,null);_0x7086x8=mxUtils[_0x99b0[77]](_0x7086x8,mxConstants.STYLE_ENTRY_Y,null);_0x7086x8=mxUtils[_0x99b0[77]](_0x7086x8,mxConstants.STYLE_EXIT_X,null);_0x7086x8=mxUtils[_0x99b0[77]](_0x7086x8,mxConstants.STYLE_EXIT_Y,null);_0x7086x11[_0x99b0[77]](_0x7086x8);this[_0x99b0[11]][_0x99b0[78]]=function(_0x7086xb){return this[_0x99b0[46]][_0x99b0[33]][_0x99b0[79]](_0x7086x11)};this[_0x99b0[11]][_0x99b0[80]]=function(){return this[_0x99b0[46]][_0x99b0[73]]([_0x7086x11])[0]}}};Graph[_0x99b0[16]][_0x99b0[81]]=function(_0x7086x6){return this[_0x99b0[82]]&&this[_0x99b0[83]](_0x7086x6)};Graph[_0x99b0[16]][_0x99b0[84]]=function(_0x7086x6){return this[_0x99b0[83]](_0x7086x6)};Graph[_0x99b0[16]][_0x99b0[85]]=function(){var _0x7086x12=mxGraph[_0x99b0[16]][_0x99b0[85]][_0x99b0[15]](this,arguments);_0x7086x12[_0x99b0[77]](_0x99b0[86]);return _0x7086x12};Graph[_0x99b0[16]][_0x99b0[87]]=function(_0x7086x6){var _0x7086x13=_0x99b0[88];if(this[_0x99b0[72]]()[_0x99b0[89]](_0x7086x6)){_0x7086x13+=mxResources[_0x99b0[93]](_0x99b0[90]+_0x7086x6[_0x99b0[92]][_0x99b0[91]])}else {if(this[_0x99b0[72]]()[_0x99b0[71]](_0x7086x6)){_0x7086x13=mxGraph[_0x99b0[16]][_0x99b0[87]][_0x99b0[15]](this,arguments)}};return _0x7086x13};Graph[_0x99b0[16]][_0x99b0[94]]=function(_0x7086x6){if(_0x7086x6[_0x99b0[92]]!=null&& typeof (_0x7086x6[_0x99b0[92]])==_0x99b0[95]){return _0x7086x6[_0x99b0[92]][_0x99b0[97]](_0x99b0[96])};return mxGraph[_0x99b0[16]][_0x99b0[94]][_0x99b0[15]](this,arguments)};Graph[_0x99b0[16]][_0x99b0[98]]=function(_0x7086x6,_0x7086x10,_0x7086x14){if(_0x7086x6[_0x99b0[92]]!=null&& typeof (_0x7086x6[_0x99b0[92]])==_0x99b0[95]){var _0x7086x15=_0x7086x6[_0x99b0[92]][_0x99b0[99]](true);_0x7086x15[_0x99b0[100]](_0x99b0[96],_0x7086x10);_0x7086x10=_0x7086x15};mxGraph[_0x99b0[16]][_0x99b0[98]][_0x99b0[15]](this,arguments)};Graph[_0x99b0[16]][_0x99b0[101]]=function(_0x7086x6,_0x7086x16){var _0x7086x10=null;if(_0x7086x6[_0x99b0[92]]!=null&& typeof (_0x7086x6[_0x99b0[92]])==_0x99b0[95]){_0x7086x10=_0x7086x6[_0x99b0[92]][_0x99b0[99]](true)}else {var _0x7086x17=mxUtils[_0x99b0[102]]();_0x7086x10=_0x7086x17[_0x99b0[104]](_0x99b0[103]);_0x7086x10[_0x99b0[100]](_0x99b0[96],_0x7086x6[_0x99b0[92]])};if(_0x7086x16!=null&&_0x7086x16[_0x99b0[105]]>0){_0x7086x10[_0x99b0[100]](_0x99b0[106],_0x7086x16)}else {_0x7086x10[_0x99b0[107]](_0x99b0[106])};this[_0x99b0[109]][_0x99b0[108]](_0x7086x6,_0x7086x10)};Graph[_0x99b0[16]][_0x99b0[110]]=function(_0x7086x6){if(_0x7086x6[_0x99b0[92]]!=null&& typeof (_0x7086x6[_0x99b0[92]])==_0x99b0[95]){return _0x7086x6[_0x99b0[92]][_0x99b0[97]](_0x99b0[106])};return null};Graph[_0x99b0[16]][_0x99b0[55]]=function(){this[_0x99b0[11]][_0x99b0[112]][_0x99b0[111]]=function(){return this[_0x99b0[46]][_0x99b0[11]][_0x99b0[113]]!=null};this[_0x99b0[28]](mxEvent.START_EDITING,function(_0x7086x18,_0x7086x19){this[_0x99b0[29]][_0x99b0[114]]()});var _0x7086x1a=false;var _0x7086x1b=null;this[_0x99b0[115]]=function(_0x7086xb){mxGraph[_0x99b0[16]][_0x99b0[115]][_0x99b0[15]](this,arguments);if(_0x7086xb[_0x99b0[32]]()==null){var _0x7086x6=this[_0x99b0[118]](_0x7086xb[_0x99b0[116]],_0x7086xb[_0x99b0[117]]);if(this[_0x99b0[72]]()[_0x99b0[71]](_0x7086x6)){_0x7086xb[_0x99b0[119]]=this[_0x99b0[33]][_0x99b0[32]](_0x7086x6);if(_0x7086xb[_0x99b0[119]]!=null&&_0x7086xb[_0x99b0[119]][_0x99b0[120]]!=null){this[_0x99b0[25]][_0x99b0[24]][_0x99b0[23]]=_0x7086xb[_0x99b0[119]][_0x99b0[120]][_0x99b0[121]][_0x99b0[24]][_0x99b0[23]]}}};if(_0x7086xb[_0x99b0[32]]()==null){this[_0x99b0[25]][_0x99b0[24]][_0x99b0[23]]=_0x99b0[30]}};this[_0x99b0[122]]=function(_0x7086x1c,_0x7086xb,_0x7086x18){if(_0x7086x1c==mxEvent[_0x99b0[123]]){if(!this[_0x99b0[29]][_0x99b0[124]]()){_0x7086x1b=_0x7086xb[_0x99b0[125]]();_0x7086x1a=(_0x7086x1b!=null)?this[_0x99b0[52]](_0x7086x1b):this[_0x99b0[126]]()}else {_0x7086x1a=false;_0x7086x1b=null}}else {if(_0x7086x1c==mxEvent[_0x99b0[127]]){if(_0x7086x1a&&!this[_0x99b0[128]]()){if(!this[_0x99b0[29]][_0x99b0[124]]()){var _0x7086x1d=mxEvent[_0x99b0[130]](_0x7086xb[_0x99b0[129]]());var _0x7086x1e=mxEvent[_0x99b0[131]](_0x7086xb[_0x99b0[129]]());this[_0x99b0[29]][_0x99b0[132]](_0x7086x1d+16,_0x7086x1e,_0x7086x1b,_0x7086xb[_0x99b0[129]]())};_0x7086x1a=false;_0x7086x1b=null;_0x7086xb[_0x99b0[133]]();return};_0x7086x1a=false;_0x7086x1b=null}};mxGraph[_0x99b0[16]][_0x99b0[122]][_0x99b0[15]](this,arguments);if(_0x7086x1c==mxEvent[_0x99b0[134]]&&_0x7086xb[_0x99b0[135]]()){_0x7086x1a=false;_0x7086x1b=null}}};(function(){mxVertexHandler[_0x99b0[16]][_0x99b0[136]]=true;mxText[_0x99b0[16]][_0x99b0[137]]=5;mxText[_0x99b0[16]][_0x99b0[138]]=1;if(touchStyle){mxConstants[_0x99b0[139]]=16;mxConstants[_0x99b0[140]]=7;if(mxClient[_0x99b0[141]]){mxVertexHandler[_0x99b0[16]][_0x99b0[142]]=4;mxEdgeHandler[_0x99b0[16]][_0x99b0[142]]=6;Graph[_0x99b0[16]][_0x99b0[142]]=14;Graph[_0x99b0[16]][_0x99b0[143]]=20;mxPanningHandler[_0x99b0[16]][_0x99b0[144]]=false;mxPanningHandler[_0x99b0[16]][_0x99b0[145]]=true;mxPanningHandler[_0x99b0[16]][_0x99b0[146]]=function(_0x7086xb){var _0x7086x19=_0x7086xb[_0x99b0[129]]();return (this[_0x99b0[145]]&&(this[_0x99b0[147]]||_0x7086xb[_0x99b0[32]]()==null))||(mxEvent[_0x99b0[148]](_0x7086x19)&&mxEvent[_0x99b0[149]](_0x7086x19))||(this[_0x99b0[150]]&&mxEvent[_0x99b0[151]](_0x7086x19))}};var _0x7086x1f=mxGraphHandler[_0x99b0[16]][_0x99b0[152]];mxGraphHandler[_0x99b0[16]][_0x99b0[152]]=function(_0x7086x18,_0x7086xb){_0x7086x1f[_0x99b0[15]](this,arguments);if(this[_0x99b0[46]][_0x99b0[52]](_0x7086xb[_0x99b0[125]]())&&this[_0x99b0[46]][_0x99b0[53]]()>1){this[_0x99b0[153]]=false}};Graph[_0x99b0[16]][_0x99b0[154]]=function(_0x7086x1){this[_0x99b0[155]]= new mxTooltipHandler(this);this[_0x99b0[155]][_0x99b0[156]](false);this[_0x99b0[157]]= new mxSelectionCellsHandler(this);this[_0x99b0[29]]= new mxPanningHandler(this);this[_0x99b0[29]][_0x99b0[158]]=false;this[_0x99b0[11]]= new mxConnectionHandler(this);this[_0x99b0[11]][_0x99b0[156]](false);this[_0x99b0[159]]= new mxGraphHandler(this)};mxConnectionHandler[_0x99b0[16]][_0x99b0[160]]=function(_0x7086xe,_0x7086x20){if(touchStyle&&_0x7086x20!=null){this[_0x99b0[46]][_0x99b0[161]](_0x7086x20)}else {this[_0x99b0[46]][_0x99b0[161]](_0x7086xe)}};var _0x7086x21=mxGraph[_0x99b0[16]][_0x99b0[162]];Graph[_0x99b0[16]][_0x99b0[162]]=function(_0x7086x19,_0x7086x6){if(_0x7086x6==null){var _0x7086x22=mxUtils[_0x99b0[163]](this[_0x99b0[25]],mxEvent[_0x99b0[130]](_0x7086x19),mxEvent[_0x99b0[131]](_0x7086x19));_0x7086x6=this[_0x99b0[118]](_0x7086x22[_0x99b0[164]],_0x7086x22[_0x99b0[165]])};_0x7086x21[_0x99b0[0]](this,_0x7086x19,_0x7086x6)};var _0x7086x23= new mxImage(IMAGE_PATH+_0x99b0[166],16,16);mxVertexHandler[_0x99b0[16]][_0x99b0[167]]=_0x7086x23;mxEdgeHandler[_0x99b0[16]][_0x99b0[167]]=_0x7086x23;mxOutline[_0x99b0[16]][_0x99b0[168]]=_0x7086x23; new Image()[_0x99b0[169]]=_0x7086x23[_0x99b0[169]];var _0x7086x24=IMAGE_PATH+_0x99b0[170];var _0x7086x25=mxVertexHandler[_0x99b0[16]][_0x99b0[171]];mxVertexHandler[_0x99b0[16]][_0x99b0[171]]=function(){_0x7086x25[_0x99b0[15]](this,arguments);if(showConnectorImg&&this[_0x99b0[46]][_0x99b0[11]][_0x99b0[111]]()&&this[_0x99b0[46]][_0x99b0[172]](this[_0x99b0[119]][_0x99b0[51]])&&!this[_0x99b0[46]][_0x99b0[84]](this[_0x99b0[119]][_0x99b0[51]])&&this[_0x99b0[46]][_0x99b0[53]]()==1){this[_0x99b0[173]]=mxUtils[_0x99b0[174]](_0x7086x24);this[_0x99b0[173]][_0x99b0[24]][_0x99b0[23]]=_0x99b0[26];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[175]]=_0x99b0[176];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[177]]=_0x99b0[176];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[178]]=_0x99b0[179];if(!mxClient[_0x99b0[141]]){this[_0x99b0[173]][_0x99b0[100]](_0x99b0[180],mxResources[_0x99b0[93]](_0x99b0[17]));mxEvent[_0x99b0[181]](this[_0x99b0[173]],this[_0x99b0[46]],this[_0x99b0[119]])};this[_0x99b0[173]][_0x99b0[24]][_0x99b0[182]]=_0x99b0[183];mxEvent[_0x99b0[185]](this[_0x99b0[173]],mxUtils[_0x99b0[27]](this,function(_0x7086x19){this[_0x99b0[46]][_0x99b0[29]][_0x99b0[114]]();var _0x7086x22=mxUtils[_0x99b0[163]](this[_0x99b0[46]][_0x99b0[25]],mxEvent[_0x99b0[130]](_0x7086x19),mxEvent[_0x99b0[131]](_0x7086x19));this[_0x99b0[46]][_0x99b0[11]][_0x99b0[49]](this[_0x99b0[119]],_0x7086x22[_0x99b0[164]],_0x7086x22[_0x99b0[165]]);this[_0x99b0[46]][_0x99b0[184]]=true;mxEvent[_0x99b0[133]](_0x7086x19)}));this[_0x99b0[46]][_0x99b0[25]][_0x99b0[186]](this[_0x99b0[173]])};this[_0x99b0[187]]()};var _0x7086x26=mxVertexHandler[_0x99b0[16]][_0x99b0[188]];mxVertexHandler[_0x99b0[16]][_0x99b0[188]]=function(){_0x7086x26[_0x99b0[15]](this);this[_0x99b0[187]]()};mxVertexHandler[_0x99b0[16]][_0x99b0[187]]=function(){if(this[_0x99b0[119]]!=null&&this[_0x99b0[173]]!=null){if(mxVertexHandler[_0x99b0[16]][_0x99b0[189]]){this[_0x99b0[173]][_0x99b0[24]][_0x99b0[190]]=(this[_0x99b0[119]][_0x99b0[164]]+this[_0x99b0[119]][_0x99b0[175]]-this[_0x99b0[173]][_0x99b0[191]]/2)+_0x99b0[192];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[193]]=(this[_0x99b0[119]][_0x99b0[165]]-this[_0x99b0[173]][_0x99b0[194]]/2)+_0x99b0[192]}else {this[_0x99b0[173]][_0x99b0[24]][_0x99b0[190]]=(this[_0x99b0[119]][_0x99b0[164]]+this[_0x99b0[119]][_0x99b0[175]]+mxConstants[_0x99b0[139]]/2+4)+_0x99b0[192];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[193]]=(this[_0x99b0[119]][_0x99b0[165]]+(this[_0x99b0[119]][_0x99b0[177]]-this[_0x99b0[173]][_0x99b0[194]])/2)+_0x99b0[192]}}};var _0x7086x27=mxVertexHandler[_0x99b0[16]][_0x99b0[195]];mxVertexHandler[_0x99b0[16]][_0x99b0[195]]=function(_0x7086x18,_0x7086xb){_0x7086x27[_0x99b0[15]](this,arguments);if(this[_0x99b0[173]]!=null){this[_0x99b0[173]][_0x99b0[197]][_0x99b0[196]](this[_0x99b0[173]]);this[_0x99b0[173]]=null}}; new Image()[_0x99b0[169]]=_0x7086x24}else {var _0x7086x28= new mxImage(IMAGE_PATH+_0x99b0[198],15,15);mxConnectionHandler[_0x99b0[16]][_0x99b0[199]]=_0x7086x28; new Image()[_0x99b0[169]]=_0x7086x28[_0x99b0[169]];if(urlParams[_0x99b0[17]]==_0x99b0[18]){var _0x7086x28= new mxImage(IMAGE_PATH+_0x99b0[198],15,15);var _0x7086x25=mxVertexHandler[_0x99b0[16]][_0x99b0[171]];mxVertexHandler[_0x99b0[16]][_0x99b0[171]]=function(){_0x7086x25[_0x99b0[15]](this,arguments);if(showConnectorImg&&this[_0x99b0[46]][_0x99b0[11]][_0x99b0[111]]()&&this[_0x99b0[46]][_0x99b0[172]](this[_0x99b0[119]][_0x99b0[51]])&&!this[_0x99b0[46]][_0x99b0[84]](this[_0x99b0[119]][_0x99b0[51]])&&this[_0x99b0[46]][_0x99b0[53]]()==1){if(mxClient[_0x99b0[200]]&&!mxClient[_0x99b0[201]]){this[_0x99b0[173]]=document[_0x99b0[104]](_0x99b0[202]);this[_0x99b0[173]][_0x99b0[24]][_0x99b0[203]]=_0x99b0[204]+_0x7086x28[_0x99b0[169]]+_0x99b0[205];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[206]]=_0x99b0[207];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[208]]=_0x99b0[209];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[175]]=(_0x7086x28[_0x99b0[175]]+4)+_0x99b0[192];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[177]]=(_0x7086x28[_0x99b0[177]]+4)+_0x99b0[192];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[210]]=(mxClient[_0x99b0[211]])?_0x99b0[212]:_0x99b0[213]}else {this[_0x99b0[173]]=mxUtils[_0x99b0[174]](_0x7086x28[_0x99b0[169]]);this[_0x99b0[173]][_0x99b0[24]][_0x99b0[175]]=_0x7086x28[_0x99b0[175]]+_0x99b0[192];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[177]]=_0x7086x28[_0x99b0[177]]+_0x99b0[192]};this[_0x99b0[173]][_0x99b0[24]][_0x99b0[23]]=_0x99b0[26];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[178]]=_0x99b0[179];this[_0x99b0[173]][_0x99b0[100]](_0x99b0[180],mxResources[_0x99b0[93]](_0x99b0[17]));mxEvent[_0x99b0[181]](this[_0x99b0[173]],this[_0x99b0[46]],this[_0x99b0[119]]);this[_0x99b0[173]][_0x99b0[24]][_0x99b0[182]]=_0x99b0[183];mxEvent[_0x99b0[28]](this[_0x99b0[173]],_0x99b0[214],mxUtils[_0x99b0[27]](this,function(_0x7086x19){this[_0x99b0[46]][_0x99b0[29]][_0x99b0[114]]();var _0x7086x22=mxUtils[_0x99b0[163]](this[_0x99b0[46]][_0x99b0[25]],mxEvent[_0x99b0[130]](_0x7086x19),mxEvent[_0x99b0[131]](_0x7086x19));this[_0x99b0[46]][_0x99b0[11]][_0x99b0[49]](this[_0x99b0[119]],_0x7086x22[_0x99b0[164]],_0x7086x22[_0x99b0[165]]);this[_0x99b0[46]][_0x99b0[184]]=true;mxEvent[_0x99b0[133]](_0x7086x19)}));this[_0x99b0[46]][_0x99b0[25]][_0x99b0[186]](this[_0x99b0[173]])};this[_0x99b0[187]]()};var _0x7086x26=mxVertexHandler[_0x99b0[16]][_0x99b0[188]];mxVertexHandler[_0x99b0[16]][_0x99b0[188]]=function(){_0x7086x26[_0x99b0[15]](this);this[_0x99b0[187]]()};mxVertexHandler[_0x99b0[16]][_0x99b0[187]]=function(){if(this[_0x99b0[119]]!=null&&this[_0x99b0[173]]!=null){if(mxVertexHandler[_0x99b0[16]][_0x99b0[189]]){this[_0x99b0[173]][_0x99b0[24]][_0x99b0[190]]=(this[_0x99b0[119]][_0x99b0[164]]+this[_0x99b0[119]][_0x99b0[175]]-this[_0x99b0[173]][_0x99b0[191]]/2)+_0x99b0[192];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[193]]=(this[_0x99b0[119]][_0x99b0[165]]-this[_0x99b0[173]][_0x99b0[194]]/2)+_0x99b0[192]}else {this[_0x99b0[173]][_0x99b0[24]][_0x99b0[190]]=(this[_0x99b0[119]][_0x99b0[164]]+this[_0x99b0[119]][_0x99b0[175]]+mxConstants[_0x99b0[139]]/2+2)+_0x99b0[192];this[_0x99b0[173]][_0x99b0[24]][_0x99b0[193]]=(this[_0x99b0[119]][_0x99b0[165]]+(this[_0x99b0[119]][_0x99b0[177]]-this[_0x99b0[173]][_0x99b0[194]])/2)+_0x99b0[192]}}};var _0x7086x27=mxVertexHandler[_0x99b0[16]][_0x99b0[195]];mxVertexHandler[_0x99b0[16]][_0x99b0[195]]=function(_0x7086x18,_0x7086xb){_0x7086x27[_0x99b0[15]](this,arguments);if(this[_0x99b0[173]]!=null){this[_0x99b0[173]][_0x99b0[197]][_0x99b0[196]](this[_0x99b0[173]]);this[_0x99b0[173]]=null}}}}})()
\ No newline at end of file
index 8ef4252..9d4c0ec 100644 (file)
@@ -1,716 +1 @@
-/**
- * $Id: Menus.js,v 1.13 2013-02-20 16:21:29 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Constructs a new graph editor
- */
-Menus = function(editorUi) {
-       this.editorUi = editorUi;
-       this.menus = new Object();
-       this.init();
-
-       // Pre-fetches checkmark image
-       new Image().src = IMAGE_PATH + '/checkmark.gif';
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-Menus.prototype.init = function() {
-       var graph = this.editorUi.editor.graph;
-
-       this.put('fontFamily', new Menu(mxUtils.bind(this, function(menu, parent) {
-               var fonts = ['Helvetica', 'Verdana', 'Times New Roman', 'Garamond',
-                       'Comic Sans MS',
-                       'Courier New', 'Georgia', 'Lucida Console', 'Tahoma'
-               ];
-
-               for (var i = 0; i < fonts.length; i++) {
-                       var tr = this.styleChange(menu, fonts[i], [mxConstants.STYLE_FONTFAMILY], [
-                               fonts[i]
-                       ], null, parent);
-                       tr.firstChild.nextSibling.style.fontFamily = fonts[i];
-               }
-
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('custom'), '', mxConstants.DEFAULT_FONTFAMILY,
-                       mxConstants.STYLE_FONTFAMILY, parent);
-       })));
-       this.put('fontSize', new Menu(mxUtils.bind(this, function(menu, parent) {
-               var sizes = [6, 8, 9, 10, 11, 12, 14, 18, 24, 36, 48, 72];
-
-               for (var i = 0; i < sizes.length; i++) {
-                       this.styleChange(menu, sizes[i], [mxConstants.STYLE_FONTSIZE], [sizes[i]],
-                               null, parent);
-               }
-
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('custom'), '(pt)', '12',
-                       mxConstants.STYLE_FONTSIZE, parent);
-       })));
-       this.put('linewidth', new Menu(mxUtils.bind(this, function(menu, parent) {
-               var sizes = [1, 2, 3, 4, 8, 12, 16, 24];
-
-               for (var i = 0; i < sizes.length; i++) {
-                       this.styleChange(menu, sizes[i] + 'px', [mxConstants.STYLE_STROKEWIDTH], [
-                               sizes[i]
-                       ], null, parent);
-               }
-
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('custom'), '(px)', '1',
-                       mxConstants.STYLE_STROKEWIDTH, parent);
-       })));
-       this.put('line', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('straight'), [mxConstants.STYLE_EDGE], [
-                       null
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('entityRelation'), [mxConstants.STYLE_EDGE], [
-                       'entityRelationEdgeStyle'
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('horizontal'), [mxConstants.STYLE_EDGE,
-                       mxConstants.STYLE_ELBOW
-               ], ['elbowEdgeStyle', 'horizontal'], null, parent);
-               this.styleChange(menu, mxResources.get('vertical'), [mxConstants.STYLE_EDGE,
-                       mxConstants.STYLE_ELBOW
-               ], ['elbowEdgeStyle', 'vertical'], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('manual'), [mxConstants.STYLE_EDGE], [
-                       'segmentEdgeStyle'
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('automatic'), [mxConstants.STYLE_EDGE], [
-                       'orthogonalEdgeStyle'
-               ], null, parent);
-       })));
-       this.put('lineend', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('classic'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_CLASSIC
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('openArrow'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_OPEN
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('block'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_BLOCK
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('oval'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_OVAL
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('diamond'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_DIAMOND
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('diamondThin'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.ARROW_DIAMOND_THIN
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('none'), [mxConstants.STYLE_ENDARROW], [
-                       mxConstants.NONE
-               ], null, parent);
-               menu.addSeparator(parent);
-               menu.addItem(mxResources.get('transparent'), null, function() {
-                       graph.toggleCellStyles('endFill', true);
-               }, parent, null, true);
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('size'), '(px)', mxConstants.DEFAULT_MARKERSIZE,
-                       mxConstants.STYLE_ENDSIZE, parent);
-       })));
-       this.put('linestart', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('classic'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_CLASSIC
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('openArrow'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_OPEN
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('block'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_BLOCK
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('oval'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_OVAL
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('diamond'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_DIAMOND
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('diamondThin'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.ARROW_DIAMOND_THIN
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('none'), [mxConstants.STYLE_STARTARROW], [
-                       mxConstants.NONE
-               ], null, parent);
-               menu.addSeparator(parent);
-               menu.addItem(mxResources.get('transparent'), null, function() {
-                       graph.toggleCellStyles('startFill', true);
-               }, parent, null, true);
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('size'), '(px)', mxConstants.DEFAULT_MARKERSIZE,
-                       mxConstants.STYLE_STARTSIZE, parent);
-       })));
-       this.put('spacing', new Menu(mxUtils.bind(this, function(menu, parent) {
-               // Uses shadow action and line menu to analyze selection
-               var vertexSelected = this.editorUi.actions.get('shadow').enabled;
-               var edgeSelected = this.get('line').enabled;
-
-               if (vertexSelected || menu.showDisabled) {
-                       this.promptChange(menu, mxResources.get('top'), '(px)', '0',
-                               mxConstants.STYLE_SPACING_TOP, parent, vertexSelected);
-                       this.promptChange(menu, mxResources.get('right'), '(px)', '0',
-                               mxConstants.STYLE_SPACING_RIGHT, parent, vertexSelected);
-                       this.promptChange(menu, mxResources.get('bottom'), '(px)', '0',
-                               mxConstants.STYLE_SPACING_BOTTOM, parent, vertexSelected);
-                       this.promptChange(menu, mxResources.get('left'), '(px)', '0',
-                               mxConstants.STYLE_SPACING_LEFT, parent, vertexSelected);
-                       menu.addSeparator(parent);
-                       this.promptChange(menu, mxResources.get('global'), '(px)', '0',
-                               mxConstants.STYLE_SPACING, parent, vertexSelected);
-                       this.promptChange(menu, mxResources.get('perimeter'), '(px)', '0',
-                               mxConstants.STYLE_PERIMETER_SPACING, parent, vertexSelected);
-               }
-
-               if (edgeSelected || menu.showDisabled) {
-                       menu.addSeparator(parent);
-                       this.promptChange(menu, mxResources.get('sourceSpacing'), '(px)', '0',
-                               mxConstants.STYLE_SOURCE_PERIMETER_SPACING, parent, edgeSelected);
-                       this.promptChange(menu, mxResources.get('targetSpacing'), '(px)', '0',
-                               mxConstants.STYLE_TARGET_PERIMETER_SPACING, parent, edgeSelected);
-               }
-       })));
-       this.put('format', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItem(menu, 'style', parent);
-       })));
-       this.put('text', new Menu(mxUtils.bind(this, function(menu, parent) {
-               var enabled = this.get('text').enabled;
-               menu.addSeparator(parent);
-               this.addSubmenu('fontFamily', menu, parent);
-               this.addSubmenu('fontSize', menu, parent);
-               this.addMenuItems(menu, ['-', 'bold', 'italic', 'underline', '-'],
-                       parent);
-               this.addSubmenu('alignment', menu, parent);
-               this.addMenuItem(menu, 'wordWrap', parent);
-               menu.addSeparator(parent);
-               this.promptChange(menu, mxResources.get('textOpacity'), '(%)', '100',
-                       mxConstants.STYLE_TEXT_OPACITY, parent, enabled);
-               menu.addItem(mxResources.get('hide'), null, function() {
-                       graph.toggleCellStyles(mxConstants.STYLE_NOLABEL, false);
-               }, parent, null, enabled);
-       })));
-       this.put('alignment', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('leftAlign'), [mxConstants.STYLE_ALIGN], [
-                       mxConstants.ALIGN_LEFT
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('center'), [mxConstants.STYLE_ALIGN], [
-                       mxConstants.ALIGN_CENTER
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('rightAlign'), [mxConstants.STYLE_ALIGN], [
-                       mxConstants.ALIGN_RIGHT
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('topAlign'), [mxConstants.STYLE_VERTICAL_ALIGN], [
-                       mxConstants.ALIGN_TOP
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('middle'), [mxConstants.STYLE_VERTICAL_ALIGN], [
-                       mxConstants.ALIGN_MIDDLE
-               ], null, parent);
-               this.styleChange(menu, mxResources.get('bottomAlign'), [mxConstants.STYLE_VERTICAL_ALIGN], [
-                       mxConstants.ALIGN_BOTTOM
-               ], null, parent);
-               menu.addSeparator(parent);
-               this.addSubmenu('position', menu, parent);
-               this.addSubmenu('spacing', menu, parent);
-               menu.addSeparator(parent);
-               var enabled = this.get('text').enabled;
-               menu.addItem(mxResources.get('vertical'), null, function() {
-                       graph.toggleCellStyles(mxConstants.STYLE_HORIZONTAL, true);
-               }, parent, null, enabled);
-       })));
-       this.put('position', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.styleChange(menu, mxResources.get('left'), [mxConstants.STYLE_LABEL_POSITION,
-                       mxConstants.STYLE_ALIGN
-               ], [mxConstants.ALIGN_LEFT, mxConstants.ALIGN_RIGHT], null, parent);
-               this.styleChange(menu, mxResources.get('center'), [mxConstants.STYLE_LABEL_POSITION,
-                       mxConstants.STYLE_ALIGN
-               ], [mxConstants.ALIGN_CENTER, mxConstants.ALIGN_CENTER], null, parent);
-               this.styleChange(menu, mxResources.get('right'), [mxConstants.STYLE_LABEL_POSITION,
-                       mxConstants.STYLE_ALIGN
-               ], [mxConstants.ALIGN_RIGHT, mxConstants.ALIGN_LEFT], null, parent);
-               menu.addSeparator(parent);
-               this.styleChange(menu, mxResources.get('top'), [mxConstants.STYLE_VERTICAL_LABEL_POSITION,
-                       mxConstants.STYLE_VERTICAL_ALIGN
-               ], [mxConstants.ALIGN_TOP, mxConstants.ALIGN_BOTTOM], null, parent);
-               this.styleChange(menu, mxResources.get('middle'), [mxConstants.STYLE_VERTICAL_LABEL_POSITION,
-                       mxConstants.STYLE_VERTICAL_ALIGN
-               ], [mxConstants.ALIGN_MIDDLE, mxConstants.ALIGN_MIDDLE], null, parent);
-               this.styleChange(menu, mxResources.get('bottom'), [mxConstants.STYLE_VERTICAL_LABEL_POSITION,
-                       mxConstants.STYLE_VERTICAL_ALIGN
-               ], [mxConstants.ALIGN_BOTTOM, mxConstants.ALIGN_TOP], null, parent);
-       })));
-       this.put('direction', new Menu(mxUtils.bind(this, function(menu, parent) {
-               menu.addItem(mxResources.get('flipH'), null, function() {
-                       graph.toggleCellStyles(mxConstants.STYLE_FLIPH, false);
-               }, parent);
-               menu.addItem(mxResources.get('flipV'), null, function() {
-                       graph.toggleCellStyles(mxConstants.STYLE_FLIPV, false);
-               }, parent);
-               this.addMenuItems(menu, ['-', 'tilt', 'rotation'], parent);
-       })));
-       this.put('align', new Menu(mxUtils.bind(this, function(menu, parent) {
-               menu.addItem(mxResources.get('leftAlign'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_LEFT);
-               }, parent);
-               menu.addItem(mxResources.get('center'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_CENTER);
-               }, parent);
-               menu.addItem(mxResources.get('rightAlign'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_RIGHT);
-               }, parent);
-               menu.addSeparator(parent);
-               menu.addItem(mxResources.get('topAlign'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_TOP);
-               }, parent);
-               menu.addItem(mxResources.get('middle'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_MIDDLE);
-               }, parent);
-               menu.addItem(mxResources.get('bottomAlign'), null, function() {
-                       graph.alignCells(mxConstants.ALIGN_BOTTOM);
-               }, parent);
-       })));
-       this.put('layout', new Menu(mxUtils.bind(this, function(menu, parent) {
-               // menu.addItem(mxResources.get('horizontalTree'), null, mxUtils.bind(this, function()
-               // {
-               //      if (!graph.isSelectionEmpty())
-               //      {
-               //              var layout = new mxCompactTreeLayout(graph, true);
-               //              layout.edgeRouting = false;
-               //              layout.levelDistance = 30;
-               //              this.editorUi.executeLayout(layout, true, true);
-               //      }
-               // }), parent);
-               // menu.addItem(mxResources.get('verticalTree'), null, mxUtils.bind(this, function()
-               // {
-               //      if (!graph.isSelectionEmpty())
-               //      {
-               //              var layout = new mxCompactTreeLayout(graph, false);
-               //              layout.edgeRouting = false;
-               //              layout.levelDistance = 30;
-               //              this.editorUi.executeLayout(layout, true, true);
-               //      }
-               // }), parent);
-               // menu.addSeparator(parent);
-               menu.addItem(mxResources.get('horizontalFlow'), null, mxUtils.bind(this,
-                       function() {
-                               var layout = new mxHierarchicalLayout(graph, mxConstants.DIRECTION_WEST);
-                               this.editorUi.executeLayout(layout, true, true);
-                       }), parent);
-               menu.addItem(mxResources.get('verticalFlow'), null, mxUtils.bind(this,
-                       function() {
-                               var layout = new mxHierarchicalLayout(graph, mxConstants.DIRECTION_NORTH);
-                               this.editorUi.executeLayout(layout, true, true);
-                       }), parent);
-               //menu.addSeparator(parent);
-               // menu.addItem(mxResources.get('organic'), null, mxUtils.bind(this, function()
-               // {
-               //      var layout = new mxFastOrganicLayout(graph);
-               //              this.editorUi.executeLayout(layout, true, true);
-               // }), parent);
-               // menu.addItem(mxResources.get('circle'), null, mxUtils.bind(this, function()
-               // {
-               //      var layout = new mxCircleLayout(graph);
-               //              this.editorUi.executeLayout(layout, true, true, graph.getSelectionCells());
-               // }), parent);
-       })));
-       this.put('navigation', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['home', '-', 'exitGroup', 'enterGroup', '-',
-                       'expand', 'collapse'
-               ], parent);
-       })));
-       this.put('arrange', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['toFront', 'toBack', '-'], parent);
-               //this.addSubmenu('direction', menu, parent);
-               this.addSubmenu('layout', menu, parent);
-               //this.addSubmenu('align', menu, parent);
-               menu.addSeparator(parent);
-               //this.addSubmenu('navigation', menu, parent);
-               this.addMenuItems(menu, ['-', 'group', 'ungroup', 'removeFromGroup'],
-                       parent);
-               //this.addMenuItems(menu, ['-', 'group', 'ungroup', 'removeFromGroup', '-', 'autosize'], parent);
-       })));
-       this.put('view', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['actualSize'], parent);
-               menu.addSeparator();
-               var scales = [0.25, 0.5, 0.75, 1, 2, 4];
-
-               for (var i = 0; i < scales.length; i++) {
-                       (function(scale) {
-                               menu.addItem((scale * 100) + '%', null, function() {
-                                       graph.zoomTo(scale);
-                               }, parent);
-                       })(scales[i]);
-               }
-
-               this.addMenuItems(menu, ['-', 'zoomIn', 'zoomOut', '-', 'fitWindow',
-                       'customZoom', '-', 'fitPage', 'fitPageWidth'
-               ], parent);
-       })));
-       this.put('file', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['new', 'open', '-', 'save', 'saveAs', 'publish',
-                       '-', 'variable', '-', 'import', 'export', '-', 'editFile', 'rename', '-',
-                       'print'
-               ], parent);
-       })));
-       this.put('edit', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['undo', 'redo', '-', 'cut', 'copy', 'paste',
-                       'delete', '-', 'duplicate', '-',
-                       'selectVertices', 'selectEdges', 'selectAll'
-               ]);
-       })));
-       this.put('help', new Menu(mxUtils.bind(this, function(menu, parent) {
-               this.addMenuItems(menu, ['help', '-', 'about']);
-       })));
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-Menus.prototype.put = function(name, menu) {
-       this.menus[name] = menu;
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-Menus.prototype.get = function(name) {
-       return this.menus[name];
-};
-
-/**
- * Adds the given submenu.
- */
-Menus.prototype.addSubmenu = function(name, menu, parent) {
-       var enabled = this.get(name).enabled;
-
-       if (menu.showDisabled || enabled) {
-               var submenu = menu.addItem(mxResources.get(name), null, null, parent, null,
-                       enabled);
-               this.addMenu(name, menu, submenu);
-       }
-};
-
-/**
- * Adds the label menu items to the given menu and parent.
- */
-Menus.prototype.addMenu = function(name, popupMenu, parent) {
-       var menu = this.get(name);
-
-       if (menu != null && (popupMenu.showDisabled || menu.enabled)) {
-               this.get(name).execute(popupMenu, parent);
-       }
-};
-
-/**
- * Adds a style change item to the given menu.
- */
-Menus.prototype.styleChange = function(menu, label, keys, values, sprite,
-       parent) {
-       return menu.addItem(label, null, mxUtils.bind(this, function() {
-               var graph = this.editorUi.editor.graph;
-
-               graph.getModel().beginUpdate();
-               try {
-                       for (var i = 0; i < keys.length; i++) {
-                               graph.setCellStyles(keys[i], values[i]);
-                       }
-               } finally {
-                       graph.getModel().endUpdate();
-               }
-       }), parent, sprite);
-};
-
-/**
- * Adds a style change item with a prompt to the given menu.
- */
-Menus.prototype.promptChange = function(menu, label, hint, defaultValue, key,
-       parent, enabled) {
-       return menu.addItem(label, null, mxUtils.bind(this, function() {
-               var graph = this.editorUi.editor.graph;
-               var value = defaultValue;
-               var state = graph.getView().getState(graph.getSelectionCell());
-
-               if (state != null) {
-                       value = state.style[key] || value;
-               }
-
-               value = mxUtils.prompt(mxResources.get('enterValue') + ((hint.length > 0) ?
-                       (' ' + hint) : ''), value);
-
-               if (value != null && value.length > 0) {
-                       graph.setCellStyles(key, value);
-               }
-       }), parent, null, enabled);
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-Menus.prototype.addMenuItem = function(menu, key, parent) {
-       var action = this.editorUi.actions.get(key);
-
-       if (action != null && (menu.showDisabled || action.enabled)) {
-               var item = menu.addItem(action.label, null, action.funct, parent, null,
-                       action.enabled);
-
-               // Adds checkmark image
-               if (action.toggleAction && action.isSelected()) {
-                       this.addCheckmark(item);
-               }
-
-               this.addShortcut(item, action);
-
-               return item;
-       }
-
-       return null;
-};
-
-/**
- * Adds a checkmark to the given menuitem.
- */
-Menus.prototype.addShortcut = function(item, action) {
-       if (action.shortcut != null) {
-               var td = item.firstChild.nextSibling.nextSibling;
-               var span = document.createElement('span');
-               span.style.color = 'gray';
-               mxUtils.write(span, action.shortcut);
-               td.appendChild(span);
-       }
-};
-
-/**
- * Adds a checkmark to the given menuitem.
- */
-Menus.prototype.addCheckmark = function(item) {
-       var td = item.firstChild.nextSibling;
-       td.style.backgroundImage = 'url(' + IMAGE_PATH + '/checkmark.gif)';
-       td.style.backgroundRepeat = 'no-repeat';
-       td.style.backgroundPosition = '2px 50%';
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-Menus.prototype.addMenuItems = function(menu, keys, parent) {
-       for (var i = 0; i < keys.length; i++) {
-               if (keys[i] == '-') {
-                       menu.addSeparator(parent);
-               } else {
-                       this.addMenuItem(menu, keys[i], parent);
-               }
-       }
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-Menus.prototype.createPopupMenu = function(menu, cell, evt) {
-       var graph = this.editorUi.editor.graph;
-       menu.smartSeparators = true;
-
-       if (graph.isSelectionEmpty()) {
-               this.addMenuItems(menu, ['undo', 'redo', '-', 'paste', '-']);
-       } else {
-               this.addMenuItems(menu, ['delete', '-', 'cut', 'copy', '-', 'duplicate']);
-
-               if (graph.getSelectionCount() == 1 && graph.getModel().isEdge(graph.getSelectionCell())) {
-                       this.addMenuItems(menu, ['setAsDefaultEdge']);
-               }
-
-               menu.addSeparator();
-       }
-
-       if (graph.getSelectionCount() > 0) {
-               this.addMenuItems(menu, ['toFront', 'toBack', '-']);
-
-               if (graph.getModel().isEdge(graph.getSelectionCell())) {
-                       var isWaypoint = false;
-                       var cell = graph.getSelectionCell();
-
-                       if (cell != null && graph.getModel().isEdge(cell)) {
-                               var handler = graph.selectionCellsHandler.getHandler(cell);
-
-                               if (handler instanceof mxEdgeHandler && handler.bends != null && handler.bends
-                                       .length > 2) {
-                                       var index = handler.getHandleForEvent(new mxMouseEvent(evt));
-
-                                       // Configures removeWaypoint action before execution
-                                       var rmWaypointAction = this.editorUi.actions.get('removeWaypoint');
-                                       rmWaypointAction.handler = handler;
-                                       rmWaypointAction.index = index;
-
-                                       isWaypoint = index > 0 && index < handler.bends.length;
-                               }
-                       }
-
-                       this.addMenuItems(menu, ['-', (isWaypoint) ? 'removeWaypoint' :
-                               'addWaypoint'
-                       ]);
-               } else if (graph.getSelectionCount() > 1) {
-                       menu.addSeparator();
-                       this.addMenuItems(menu, ['group']);
-               }
-
-               menu.addSeparator();
-
-               if (graph.getSelectionCount() == 1) {
-                       var link = graph.getLinkForCell(graph.getSelectionCell());
-
-                       if (link != null) {
-                               this.addMenuItems(menu, ['openLink']);
-                       }
-               }
-       } else {
-               this.addMenuItems(menu, ['-', 'selectVertices', 'selectEdges', '-',
-                       'selectAll'
-               ]);
-       }
-};
-
-/**
- * Creates the keyboard event handler for the current graph and history.
- */
-Menus.prototype.createMenubar = function(container) {
-       var menubar = new Menubar(this.editorUi, container);
-       var menus = ['file', 'edit', 'view', 'format', 'text', 'arrange',
-               'help'
-       ];
-
-       for (var i = 0; i < menus.length; i++) {
-               menubar.addMenu(mxResources.get(menus[i]), this.get(menus[i]).funct);
-       }
-
-       return menubar;
-};
-
-/**
- * Construcs a new menubar for the given editor.
- */
-function Menubar(editorUi, container) {
-       this.editorUi = editorUi;
-       this.container = container;
-
-       // Global handler to hide the current menu
-       mxEvent.addGestureListeners(document, mxUtils.bind(this, function(evt) {
-               this.hideMenu();
-       }));
-};
-
-/**
- * Adds the menubar elements.
- */
-Menubar.prototype.hideMenu = function() {
-       if (this.currentMenu != null) {
-               this.currentMenu.hideMenu();
-       }
-};
-
-/**
- * Adds a submenu to this menubar.
- */
-Menubar.prototype.addMenu = function(label, funct) {
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geItem';
-       mxUtils.write(elt, label);
-
-       this.addMenuHandler(elt, funct);
-       this.container.appendChild(elt);
-
-       return elt;
-};
-
-/**
- * Adds a handler for showing a menu in the given element.
- */
-Menubar.prototype.addMenuHandler = function(elt, funct) {
-       if (funct != null) {
-               var show = true;
-
-               var clickHandler = mxUtils.bind(this, function(evt) {
-                       if (show && elt.enabled == null || elt.enabled) {
-                               this.editorUi.editor.graph.panningHandler.hideMenu();
-                               var menu = new mxPopupMenu(funct);
-                               menu.div.className += ' geMenubarMenu';
-                               menu.smartSeparators = true;
-                               menu.showDisabled = true;
-                               menu.autoExpand = true;
-
-                               // Disables autoexpand and destroys menu when hidden
-                               menu.hideMenu = mxUtils.bind(this, function() {
-                                       mxPopupMenu.prototype.hideMenu.apply(menu, arguments);
-                                       menu.destroy();
-                                       this.currentMenu = null;
-                                       this.currentElt = null;
-                               });
-
-                               // Added width of the page-sidebar
-                               var x = elt.offsetLeft + document.getElementById('page-sidebar').offsetWidth +
-                                       22;
-                               // Added static height of the page-navbar
-                               var y = elt.offsetTop + elt.offsetHeight + 140;
-
-                               menu.popup(x, y, null, evt);
-
-                               //menu.popup(elt.offsetLeft + 4, elt.offsetTop + elt.offsetHeight + 4, null, evt);
-                               this.currentMenu = menu;
-                               this.currentElt = elt;
-                       }
-
-                       show = true;
-                       mxEvent.consume(evt);
-               });
-
-               // Shows menu automatically while in expanded state
-               mxEvent.addListener(elt, 'mousemove', mxUtils.bind(this, function(evt) {
-                       if (this.currentMenu != null && this.currentElt != elt) {
-                               this.hideMenu();
-                               clickHandler(evt);
-                       }
-               }));
-
-               // Hides menu if already showing
-               mxEvent.addListener(elt, 'mousedown', mxUtils.bind(this, function() {
-                       show = this.currentElt != elt;
-               }));
-
-               mxEvent.addListener(elt, 'click', clickHandler);
-       }
-};
-
-/**
- * Constructs a new action for the given parameters.
- */
-function Menu(funct, enabled) {
-       mxEventSource.call(this);
-       this.funct = funct;
-       this.enabled = (enabled != null) ? enabled : true;
-};
-
-// Menu inherits from mxEventSource
-mxUtils.extend(Menu, mxEventSource);
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Menu.prototype.setEnabled = function(value) {
-       if (this.enabled != value) {
-               this.enabled = value;
-               this.fireEvent(new mxEventObject('stateChanged'));
-       }
-};
-
-/**
- * Sets the enabled state of the action and fires a stateChanged event.
- */
-Menu.prototype.execute = function(menu, parent) {
-       this.funct(menu, parent);
-};
+var _0x95fe=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x6D\x65\x6E\x75\x73","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x56\x65\x72\x64\x61\x6E\x61","\x54\x69\x6D\x65\x73\x20\x4E\x65\x77\x20\x52\x6F\x6D\x61\x6E","\x47\x61\x72\x61\x6D\x6F\x6E\x64","\x43\x6F\x6D\x69\x63\x20\x53\x61\x6E\x73\x20\x4D\x53","\x43\x6F\x75\x72\x69\x65\x72\x20\x4E\x65\x77","\x47\x65\x6F\x72\x67\x69\x61","\x4C\x75\x63\x69\x64\x61\x20\x43\x6F\x6E\x73\x6F\x6C\x65","\x54\x61\x68\x6F\x6D\x61","\x6C\x65\x6E\x67\x74\x68","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x73\x74\x79\x6C\x65\x43\x68\x61\x6E\x67\x65","\x73\x74\x79\x6C\x65","\x6E\x65\x78\x74\x53\x69\x62\x6C\x69\x6E\x67","\x66\x69\x72\x73\x74\x43\x68\x69\x6C\x64","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x63\x75\x73\x74\x6F\x6D","\x67\x65\x74","","\x70\x72\x6F\x6D\x70\x74\x43\x68\x61\x6E\x67\x65","\x62\x69\x6E\x64","\x70\x75\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x28\x70\x74\x29","\x31\x32","\x6C\x69\x6E\x65\x77\x69\x64\x74\x68","\x70\x78","\x53\x54\x59\x4C\x45\x5F\x53\x54\x52\x4F\x4B\x45\x57\x49\x44\x54\x48","\x28\x70\x78\x29","\x31","\x6C\x69\x6E\x65","\x73\x74\x72\x61\x69\x67\x68\x74","\x53\x54\x59\x4C\x45\x5F\x45\x44\x47\x45","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E","\x65\x6E\x74\x69\x74\x79\x52\x65\x6C\x61\x74\x69\x6F\x6E\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x53\x54\x59\x4C\x45\x5F\x45\x4C\x42\x4F\x57","\x65\x6C\x62\x6F\x77\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x76\x65\x72\x74\x69\x63\x61\x6C","\x6D\x61\x6E\x75\x61\x6C","\x73\x65\x67\x6D\x65\x6E\x74\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x61\x75\x74\x6F\x6D\x61\x74\x69\x63","\x6F\x72\x74\x68\x6F\x67\x6F\x6E\x61\x6C\x45\x64\x67\x65\x53\x74\x79\x6C\x65","\x6C\x69\x6E\x65\x65\x6E\x64","\x63\x6C\x61\x73\x73\x69\x63","\x53\x54\x59\x4C\x45\x5F\x45\x4E\x44\x41\x52\x52\x4F\x57","\x41\x52\x52\x4F\x57\x5F\x43\x4C\x41\x53\x53\x49\x43","\x6F\x70\x65\x6E\x41\x72\x72\x6F\x77","\x41\x52\x52\x4F\x57\x5F\x4F\x50\x45\x4E","\x62\x6C\x6F\x63\x6B","\x41\x52\x52\x4F\x57\x5F\x42\x4C\x4F\x43\x4B","\x6F\x76\x61\x6C","\x41\x52\x52\x4F\x57\x5F\x4F\x56\x41\x4C","\x64\x69\x61\x6D\x6F\x6E\x64","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44","\x64\x69\x61\x6D\x6F\x6E\x64\x54\x68\x69\x6E","\x41\x52\x52\x4F\x57\x5F\x44\x49\x41\x4D\x4F\x4E\x44\x5F\x54\x48\x49\x4E","\x6E\x6F\x6E\x65","\x4E\x4F\x4E\x45","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74","\x65\x6E\x64\x46\x69\x6C\x6C","\x74\x6F\x67\x67\x6C\x65\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x61\x64\x64\x49\x74\x65\x6D","\x73\x69\x7A\x65","\x6C\x69\x6E\x65\x73\x74\x61\x72\x74","\x53\x54\x59\x4C\x45\x5F\x53\x54\x41\x52\x54\x41\x52\x52\x4F\x57","\x73\x74\x61\x72\x74\x46\x69\x6C\x6C","\x73\x70\x61\x63\x69\x6E\x67","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x68\x61\x64\x6F\x77","\x61\x63\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x74\x6F\x70","\x30","\x72\x69\x67\x68\x74","\x62\x6F\x74\x74\x6F\x6D","\x6C\x65\x66\x74","\x67\x6C\x6F\x62\x61\x6C","\x70\x65\x72\x69\x6D\x65\x74\x65\x72","\x73\x6F\x75\x72\x63\x65\x53\x70\x61\x63\x69\x6E\x67","\x74\x61\x72\x67\x65\x74\x53\x70\x61\x63\x69\x6E\x67","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D","\x74\x65\x78\x74","\x61\x64\x64\x53\x75\x62\x6D\x65\x6E\x75","\x2D","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x61\x64\x64\x4D\x65\x6E\x75\x49\x74\x65\x6D\x73","\x61\x6C\x69\x67\x6E\x6D\x65\x6E\x74","\x77\x6F\x72\x64\x57\x72\x61\x70","\x74\x65\x78\x74\x4F\x70\x61\x63\x69\x74\x79","\x28\x25\x29","\x31\x30\x30","\x68\x69\x64\x65","\x6C\x65\x66\x74\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x4C\x45\x46\x54","\x63\x65\x6E\x74\x65\x72","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x72\x69\x67\x68\x74\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x74\x6F\x70\x41\x6C\x69\x67\x6E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x41\x4C\x49\x47\x4E","\x41\x4C\x49\x47\x4E\x5F\x54\x4F\x50","\x6D\x69\x64\x64\x6C\x65","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x62\x6F\x74\x74\x6F\x6D\x41\x6C\x69\x67\x6E","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x53\x54\x59\x4C\x45\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x53\x54\x59\x4C\x45\x5F\x56\x45\x52\x54\x49\x43\x41\x4C\x5F\x4C\x41\x42\x45\x4C\x5F\x50\x4F\x53\x49\x54\x49\x4F\x4E","\x64\x69\x72\x65\x63\x74\x69\x6F\x6E","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x74\x69\x6C\x74","\x72\x6F\x74\x61\x74\x69\x6F\x6E","\x61\x6C\x69\x67\x6E","\x61\x6C\x69\x67\x6E\x43\x65\x6C\x6C\x73","\x6C\x61\x79\x6F\x75\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C\x46\x6C\x6F\x77","\x65\x78\x65\x63\x75\x74\x65\x4C\x61\x79\x6F\x75\x74","\x76\x65\x72\x74\x69\x63\x61\x6C\x46\x6C\x6F\x77","\x6E\x61\x76\x69\x67\x61\x74\x69\x6F\x6E","\x68\x6F\x6D\x65","\x65\x78\x69\x74\x47\x72\x6F\x75\x70","\x65\x6E\x74\x65\x72\x47\x72\x6F\x75\x70","\x65\x78\x70\x61\x6E\x64","\x63\x6F\x6C\x6C\x61\x70\x73\x65","\x61\x72\x72\x61\x6E\x67\x65","\x74\x6F\x46\x72\x6F\x6E\x74","\x74\x6F\x42\x61\x63\x6B","\x67\x72\x6F\x75\x70","\x75\x6E\x67\x72\x6F\x75\x70","\x72\x65\x6D\x6F\x76\x65\x46\x72\x6F\x6D\x47\x72\x6F\x75\x70","\x76\x69\x65\x77","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x25","\x7A\x6F\x6F\x6D\x54\x6F","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x66\x69\x74\x57\x69\x6E\x64\x6F\x77","\x63\x75\x73\x74\x6F\x6D\x5A\x6F\x6F\x6D","\x66\x69\x74\x50\x61\x67\x65","\x66\x69\x74\x50\x61\x67\x65\x57\x69\x64\x74\x68","\x66\x69\x6C\x65","\x6E\x65\x77","\x6F\x70\x65\x6E","\x73\x61\x76\x65","\x73\x61\x76\x65\x41\x73","\x70\x75\x62\x6C\x69\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x69\x6D\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x65\x64\x69\x74\x46\x69\x6C\x65","\x72\x65\x6E\x61\x6D\x65","\x70\x72\x69\x6E\x74","\x65\x64\x69\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x75\x74","\x63\x6F\x70\x79","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x73\x65\x6C\x65\x63\x74\x56\x65\x72\x74\x69\x63\x65\x73","\x73\x65\x6C\x65\x63\x74\x45\x64\x67\x65\x73","\x73\x65\x6C\x65\x63\x74\x41\x6C\x6C","\x68\x65\x6C\x70","\x61\x62\x6F\x75\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x65\x78\x65\x63\x75\x74\x65","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x65\x6E\x74\x65\x72\x56\x61\x6C\x75\x65","\x20","\x70\x72\x6F\x6D\x70\x74","\x6C\x61\x62\x65\x6C","\x66\x75\x6E\x63\x74","\x74\x6F\x67\x67\x6C\x65\x41\x63\x74\x69\x6F\x6E","\x69\x73\x53\x65\x6C\x65\x63\x74\x65\x64","\x61\x64\x64\x43\x68\x65\x63\x6B\x6D\x61\x72\x6B","\x61\x64\x64\x53\x68\x6F\x72\x74\x63\x75\x74","\x73\x68\x6F\x72\x74\x63\x75\x74","\x73\x70\x61\x6E","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6F\x6C\x6F\x72","\x67\x72\x61\x79","\x77\x72\x69\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x2F\x63\x68\x65\x63\x6B\x6D\x61\x72\x6B\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x32\x70\x78\x20\x35\x30\x25","\x63\x72\x65\x61\x74\x65\x50\x6F\x70\x75\x70\x4D\x65\x6E\x75","\x73\x6D\x61\x72\x74\x53\x65\x70\x61\x72\x61\x74\x6F\x72\x73","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x6F\x75\x6E\x74","\x69\x73\x45\x64\x67\x65","\x73\x65\x74\x41\x73\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x72","\x73\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73\x48\x61\x6E\x64\x6C\x65\x72","\x62\x65\x6E\x64\x73","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x72\x65\x6D\x6F\x76\x65\x57\x61\x79\x70\x6F\x69\x6E\x74","\x68\x61\x6E\x64\x6C\x65\x72","\x69\x6E\x64\x65\x78","\x61\x64\x64\x57\x61\x79\x70\x6F\x69\x6E\x74","\x67\x65\x74\x4C\x69\x6E\x6B\x46\x6F\x72\x43\x65\x6C\x6C","\x6F\x70\x65\x6E\x4C\x69\x6E\x6B","\x63\x72\x65\x61\x74\x65\x4D\x65\x6E\x75\x62\x61\x72","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x49\x74\x65\x6D","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x64\x69\x76","\x20\x67\x65\x4D\x65\x6E\x75\x62\x61\x72\x4D\x65\x6E\x75","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x61\x70\x70\x6C\x79","\x64\x65\x73\x74\x72\x6F\x79","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x2D\x73\x69\x64\x65\x62\x61\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x63\x6C\x69\x63\x6B","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x66\x69\x72\x65\x45\x76\x65\x6E\x74"];Menus=function(_0x2c33x1){this[_0x95fe[0]]=_0x2c33x1;this[_0x95fe[1]]= new Object();this[_0x95fe[2]](); new Image()[_0x95fe[3]]=IMAGE_PATH+_0x95fe[4]};Menus[_0x95fe[5]][_0x95fe[2]]=function(){var _0x2c33x2=this[_0x95fe[0]][_0x95fe[7]][_0x95fe[6]];this[_0x95fe[30]](_0x95fe[8], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){var _0x2c33x5=[_0x95fe[9],_0x95fe[10],_0x95fe[11],_0x95fe[12],_0x95fe[13],_0x95fe[14],_0x95fe[15],_0x95fe[16],_0x95fe[17]];for(var _0x2c33x6=0;_0x2c33x6<_0x2c33x5[_0x95fe[18]];_0x2c33x6++){var _0x2c33x7=this[_0x95fe[20]](_0x2c33x3,_0x2c33x5[_0x2c33x6],[mxConstants[_0x95fe[19]]],[_0x2c33x5[_0x2c33x6]],null,_0x2c33x4);_0x2c33x7[_0x95fe[23]][_0x95fe[22]][_0x95fe[21]][_0x95fe[8]]=_0x2c33x5[_0x2c33x6]};_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[25]),_0x95fe[27],mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[31], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){var _0x2c33x8=[6,8,9,10,11,12,14,18,24,36,48,72];for(var _0x2c33x6=0;_0x2c33x6<_0x2c33x8[_0x95fe[18]];_0x2c33x6++){this[_0x95fe[20]](_0x2c33x3,_0x2c33x8[_0x2c33x6],[mxConstants[_0x95fe[32]]],[_0x2c33x8[_0x2c33x6]],null,_0x2c33x4)};_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[25]),_0x95fe[33],_0x95fe[34],mxConstants.STYLE_FONTSIZE,_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[35], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){var _0x2c33x8=[1,2,3,4,8,12,16,24];for(var _0x2c33x6=0;_0x2c33x6<_0x2c33x8[_0x95fe[18]];_0x2c33x6++){this[_0x95fe[20]](_0x2c33x3,_0x2c33x8[_0x2c33x6]+_0x95fe[36],[mxConstants[_0x95fe[37]]],[_0x2c33x8[_0x2c33x6]],null,_0x2c33x4)};_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[25]),_0x95fe[38],_0x95fe[39],mxConstants.STYLE_STROKEWIDTH,_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[40], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[41]),[mxConstants[_0x95fe[42]]],[null],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[43]),[mxConstants[_0x95fe[42]]],[_0x95fe[44]],null,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[45]),[mxConstants[_0x95fe[42]],mxConstants[_0x95fe[46]]],[_0x95fe[47],_0x95fe[45]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[48]),[mxConstants[_0x95fe[42]],mxConstants[_0x95fe[46]]],[_0x95fe[47],_0x95fe[48]],null,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[49]),[mxConstants[_0x95fe[42]]],[_0x95fe[50]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[51]),[mxConstants[_0x95fe[42]]],[_0x95fe[52]],null,_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[53], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[54]),[mxConstants[_0x95fe[55]]],[mxConstants[_0x95fe[56]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[57]),[mxConstants[_0x95fe[55]]],[mxConstants[_0x95fe[58]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[59]),[mxConstants[_0x95fe[55]]],[mxConstants[_0x95fe[60]]],null,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[61]),[mxConstants[_0x95fe[55]]],[mxConstants[_0x95fe[62]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[63]),[mxConstants[_0x95fe[55]]],[mxConstants[_0x95fe[64]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[65]),[mxConstants[_0x95fe[55]]],[mxConstants[_0x95fe[66]]],null,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[67]),[mxConstants[_0x95fe[55]]],[mxConstants[_0x95fe[68]]],null,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[69]),null,function(){_0x2c33x2[_0x95fe[71]](_0x95fe[70],true)},_0x2c33x4,null,true);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[73]),_0x95fe[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[74], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[54]),[mxConstants[_0x95fe[75]]],[mxConstants[_0x95fe[56]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[57]),[mxConstants[_0x95fe[75]]],[mxConstants[_0x95fe[58]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[59]),[mxConstants[_0x95fe[75]]],[mxConstants[_0x95fe[60]]],null,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[61]),[mxConstants[_0x95fe[75]]],[mxConstants[_0x95fe[62]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[63]),[mxConstants[_0x95fe[75]]],[mxConstants[_0x95fe[64]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[65]),[mxConstants[_0x95fe[75]]],[mxConstants[_0x95fe[66]]],null,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[67]),[mxConstants[_0x95fe[75]]],[mxConstants[_0x95fe[68]]],null,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[69]),null,function(){_0x2c33x2[_0x95fe[71]](_0x95fe[76],true)},_0x2c33x4,null,true);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[73]),_0x95fe[38],mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[77], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){var _0x2c33x9=this[_0x95fe[0]][_0x95fe[80]][_0x95fe[26]](_0x95fe[79])[_0x95fe[78]];var _0x2c33xa=this[_0x95fe[26]](_0x95fe[40])[_0x95fe[78]];if(_0x2c33x9||_0x2c33x3[_0x95fe[81]]){this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[82]),_0x95fe[38],_0x95fe[83],mxConstants.STYLE_SPACING_TOP,_0x2c33x4,_0x2c33x9);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[84]),_0x95fe[38],_0x95fe[83],mxConstants.STYLE_SPACING_RIGHT,_0x2c33x4,_0x2c33x9);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[85]),_0x95fe[38],_0x95fe[83],mxConstants.STYLE_SPACING_BOTTOM,_0x2c33x4,_0x2c33x9);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[86]),_0x95fe[38],_0x95fe[83],mxConstants.STYLE_SPACING_LEFT,_0x2c33x4,_0x2c33x9);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[87]),_0x95fe[38],_0x95fe[83],mxConstants.STYLE_SPACING,_0x2c33x4,_0x2c33x9);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[88]),_0x95fe[38],_0x95fe[83],mxConstants.STYLE_PERIMETER_SPACING,_0x2c33x4,_0x2c33x9)};if(_0x2c33xa||_0x2c33x3[_0x95fe[81]]){_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[89]),_0x95fe[38],_0x95fe[83],mxConstants.STYLE_SOURCE_PERIMETER_SPACING,_0x2c33x4,_0x2c33xa);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[90]),_0x95fe[38],_0x95fe[83],mxConstants.STYLE_TARGET_PERIMETER_SPACING,_0x2c33x4,_0x2c33xa)}})));this[_0x95fe[30]](_0x95fe[91], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){this[_0x95fe[92]](_0x2c33x3,_0x95fe[21],_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[93], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){var _0x2c33xb=this[_0x95fe[26]](_0x95fe[93])[_0x95fe[78]];_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[94]](_0x95fe[8],_0x2c33x3,_0x2c33x4);this[_0x95fe[94]](_0x95fe[31],_0x2c33x3,_0x2c33x4);this[_0x95fe[99]](_0x2c33x3,[_0x95fe[95],_0x95fe[96],_0x95fe[97],_0x95fe[98],_0x95fe[95]],_0x2c33x4);this[_0x95fe[94]](_0x95fe[100],_0x2c33x3,_0x2c33x4);this[_0x95fe[92]](_0x2c33x3,_0x95fe[101],_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[28]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[102]),_0x95fe[103],_0x95fe[104],mxConstants.STYLE_TEXT_OPACITY,_0x2c33x4,_0x2c33xb);_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[105]),null,function(){_0x2c33x2[_0x95fe[71]](mxConstants.STYLE_NOLABEL,false)},_0x2c33x4,null,_0x2c33xb)})));this[_0x95fe[30]](_0x95fe[100], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[106]),[mxConstants[_0x95fe[107]]],[mxConstants[_0x95fe[108]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[109]),[mxConstants[_0x95fe[107]]],[mxConstants[_0x95fe[110]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[111]),[mxConstants[_0x95fe[107]]],[mxConstants[_0x95fe[112]]],null,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[113]),[mxConstants[_0x95fe[114]]],[mxConstants[_0x95fe[115]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[116]),[mxConstants[_0x95fe[114]]],[mxConstants[_0x95fe[117]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[118]),[mxConstants[_0x95fe[114]]],[mxConstants[_0x95fe[119]]],null,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[94]](_0x95fe[120],_0x2c33x3,_0x2c33x4);this[_0x95fe[94]](_0x95fe[77],_0x2c33x3,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);var _0x2c33xb=this[_0x95fe[26]](_0x95fe[93])[_0x95fe[78]];_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[48]),null,function(){_0x2c33x2[_0x95fe[71]](mxConstants.STYLE_HORIZONTAL,true)},_0x2c33x4,null,_0x2c33xb)})));this[_0x95fe[30]](_0x95fe[120], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[86]),[mxConstants[_0x95fe[121]],mxConstants[_0x95fe[107]]],[mxConstants[_0x95fe[108]],mxConstants[_0x95fe[112]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[109]),[mxConstants[_0x95fe[121]],mxConstants[_0x95fe[107]]],[mxConstants[_0x95fe[110]],mxConstants[_0x95fe[110]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[84]),[mxConstants[_0x95fe[121]],mxConstants[_0x95fe[107]]],[mxConstants[_0x95fe[112]],mxConstants[_0x95fe[108]]],null,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[82]),[mxConstants[_0x95fe[122]],mxConstants[_0x95fe[114]]],[mxConstants[_0x95fe[115]],mxConstants[_0x95fe[119]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[116]),[mxConstants[_0x95fe[122]],mxConstants[_0x95fe[114]]],[mxConstants[_0x95fe[117]],mxConstants[_0x95fe[117]]],null,_0x2c33x4);this[_0x95fe[20]](_0x2c33x3,mxResources[_0x95fe[26]](_0x95fe[85]),[mxConstants[_0x95fe[122]],mxConstants[_0x95fe[114]]],[mxConstants[_0x95fe[119]],mxConstants[_0x95fe[115]]],null,_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[123], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[124]),null,function(){_0x2c33x2[_0x95fe[71]](mxConstants.STYLE_FLIPH,false)},_0x2c33x4);_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[125]),null,function(){_0x2c33x2[_0x95fe[71]](mxConstants.STYLE_FLIPV,false)},_0x2c33x4);this[_0x95fe[99]](_0x2c33x3,[_0x95fe[95],_0x95fe[126],_0x95fe[127]],_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[128], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[106]),null,function(){_0x2c33x2[_0x95fe[129]](mxConstants.ALIGN_LEFT)},_0x2c33x4);_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[109]),null,function(){_0x2c33x2[_0x95fe[129]](mxConstants.ALIGN_CENTER)},_0x2c33x4);_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[111]),null,function(){_0x2c33x2[_0x95fe[129]](mxConstants.ALIGN_RIGHT)},_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[113]),null,function(){_0x2c33x2[_0x95fe[129]](mxConstants.ALIGN_TOP)},_0x2c33x4);_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[116]),null,function(){_0x2c33x2[_0x95fe[129]](mxConstants.ALIGN_MIDDLE)},_0x2c33x4);_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[118]),null,function(){_0x2c33x2[_0x95fe[129]](mxConstants.ALIGN_BOTTOM)},_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[130], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[131]),null,mxUtils[_0x95fe[29]](this,function(){var _0x2c33xc= new mxHierarchicalLayout(_0x2c33x2,mxConstants.DIRECTION_WEST);this[_0x95fe[0]][_0x95fe[132]](_0x2c33xc,true,true)}),_0x2c33x4);_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x95fe[133]),null,mxUtils[_0x95fe[29]](this,function(){var _0x2c33xc= new mxHierarchicalLayout(_0x2c33x2,mxConstants.DIRECTION_NORTH);this[_0x95fe[0]][_0x95fe[132]](_0x2c33xc,true,true)}),_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[134], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){this[_0x95fe[99]](_0x2c33x3,[_0x95fe[135],_0x95fe[95],_0x95fe[136],_0x95fe[137],_0x95fe[95],_0x95fe[138],_0x95fe[139]],_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[140], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){this[_0x95fe[99]](_0x2c33x3,[_0x95fe[141],_0x95fe[142],_0x95fe[95]],_0x2c33x4);this[_0x95fe[94]](_0x95fe[130],_0x2c33x3,_0x2c33x4);_0x2c33x3[_0x95fe[24]](_0x2c33x4);this[_0x95fe[99]](_0x2c33x3,[_0x95fe[95],_0x95fe[143],_0x95fe[144],_0x95fe[145]],_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[146], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){this[_0x95fe[99]](_0x2c33x3,[_0x95fe[147]],_0x2c33x4);_0x2c33x3[_0x95fe[24]]();var _0x2c33xd=[0.25,0.5,0.75,1,2,4];for(var _0x2c33x6=0;_0x2c33x6<_0x2c33xd[_0x95fe[18]];_0x2c33x6++){(function(_0x2c33xe){_0x2c33x3[_0x95fe[72]]((_0x2c33xe*100)+_0x95fe[148],null,function(){_0x2c33x2[_0x95fe[149]](_0x2c33xe)},_0x2c33x4)})(_0x2c33xd[_0x2c33x6])};this[_0x95fe[99]](_0x2c33x3,[_0x95fe[95],_0x95fe[150],_0x95fe[151],_0x95fe[95],_0x95fe[152],_0x95fe[153],_0x95fe[95],_0x95fe[154],_0x95fe[155]],_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[156], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){this[_0x95fe[99]](_0x2c33x3,[_0x95fe[157],_0x95fe[158],_0x95fe[95],_0x95fe[159],_0x95fe[160],_0x95fe[161],_0x95fe[95],_0x95fe[162],_0x95fe[95],_0x95fe[163],_0x95fe[164],_0x95fe[95],_0x95fe[165],_0x95fe[166],_0x95fe[95],_0x95fe[167]],_0x2c33x4)})));this[_0x95fe[30]](_0x95fe[168], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){this[_0x95fe[99]](_0x2c33x3,[_0x95fe[169],_0x95fe[170],_0x95fe[95],_0x95fe[171],_0x95fe[172],_0x95fe[173],_0x95fe[174],_0x95fe[95],_0x95fe[175],_0x95fe[95],_0x95fe[176],_0x95fe[177],_0x95fe[178]])})));this[_0x95fe[30]](_0x95fe[179], new Menu(mxUtils[_0x95fe[29]](this,function(_0x2c33x3,_0x2c33x4){this[_0x95fe[99]](_0x2c33x3,[_0x95fe[179],_0x95fe[95],_0x95fe[180]])})))};Menus[_0x95fe[5]][_0x95fe[30]]=function(_0x2c33xf,_0x2c33x3){this[_0x95fe[1]][_0x2c33xf]=_0x2c33x3};Menus[_0x95fe[5]][_0x95fe[26]]=function(_0x2c33xf){return this[_0x95fe[1]][_0x2c33xf]};Menus[_0x95fe[5]][_0x95fe[94]]=function(_0x2c33xf,_0x2c33x3,_0x2c33x4){var _0x2c33xb=this[_0x95fe[26]](_0x2c33xf)[_0x95fe[78]];if(_0x2c33x3[_0x95fe[81]]||_0x2c33xb){var _0x2c33x10=_0x2c33x3[_0x95fe[72]](mxResources[_0x95fe[26]](_0x2c33xf),null,null,_0x2c33x4,null,_0x2c33xb);this[_0x95fe[181]](_0x2c33xf,_0x2c33x3,_0x2c33x10)}};Menus[_0x95fe[5]][_0x95fe[181]]=function(_0x2c33xf,_0x2c33x11,_0x2c33x4){var _0x2c33x3=this[_0x95fe[26]](_0x2c33xf);if(_0x2c33x3!=null&&(_0x2c33x11[_0x95fe[81]]||_0x2c33x3[_0x95fe[78]])){this[_0x95fe[26]](_0x2c33xf)[_0x95fe[182]](_0x2c33x11,_0x2c33x4)}};Menus[_0x95fe[5]][_0x95fe[20]]=function(_0x2c33x3,_0x2c33x12,_0x2c33x13,_0x2c33x14,_0x2c33x15,_0x2c33x4){return _0x2c33x3[_0x95fe[72]](_0x2c33x12,null,mxUtils[_0x95fe[29]](this,function(){var _0x2c33x2=this[_0x95fe[0]][_0x95fe[7]][_0x95fe[6]];_0x2c33x2[_0x95fe[184]]()[_0x95fe[183]]();try{for(var _0x2c33x6=0;_0x2c33x6<_0x2c33x13[_0x95fe[18]];_0x2c33x6++){_0x2c33x2[_0x95fe[185]](_0x2c33x13[_0x2c33x6],_0x2c33x14[_0x2c33x6])}}finally{_0x2c33x2[_0x95fe[184]]()[_0x95fe[186]]()}}),_0x2c33x4,_0x2c33x15)};Menus[_0x95fe[5]][_0x95fe[28]]=function(_0x2c33x3,_0x2c33x12,_0x2c33x16,_0x2c33x17,_0x2c33x18,_0x2c33x4,_0x2c33xb){return _0x2c33x3[_0x95fe[72]](_0x2c33x12,null,mxUtils[_0x95fe[29]](this,function(){var _0x2c33x2=this[_0x95fe[0]][_0x95fe[7]][_0x95fe[6]];var _0x2c33x19=_0x2c33x17;var _0x2c33x1a=_0x2c33x2[_0x95fe[189]]()[_0x95fe[188]](_0x2c33x2[_0x95fe[187]]());if(_0x2c33x1a!=null){_0x2c33x19=_0x2c33x1a[_0x95fe[21]][_0x2c33x18]||_0x2c33x19};_0x2c33x19=mxUtils[_0x95fe[192]](mxResources[_0x95fe[26]](_0x95fe[190])+((_0x2c33x16[_0x95fe[18]]>0)?(_0x95fe[191]+_0x2c33x16):_0x95fe[27]),_0x2c33x19);if(_0x2c33x19!=null&&_0x2c33x19[_0x95fe[18]]>0){_0x2c33x2[_0x95fe[185]](_0x2c33x18,_0x2c33x19)}}),_0x2c33x4,null,_0x2c33xb)};Menus[_0x95fe[5]][_0x95fe[92]]=function(_0x2c33x3,_0x2c33x18,_0x2c33x4){var _0x2c33x1b=this[_0x95fe[0]][_0x95fe[80]][_0x95fe[26]](_0x2c33x18);if(_0x2c33x1b!=null&&(_0x2c33x3[_0x95fe[81]]||_0x2c33x1b[_0x95fe[78]])){var _0x2c33x1c=_0x2c33x3[_0x95fe[72]](_0x2c33x1b[_0x95fe[193]],null,_0x2c33x1b[_0x95fe[194]],_0x2c33x4,null,_0x2c33x1b[_0x95fe[78]]);if(_0x2c33x1b[_0x95fe[195]]&&_0x2c33x1b[_0x95fe[196]]()){this[_0x95fe[197]](_0x2c33x1c)};this[_0x95fe[198]](_0x2c33x1c,_0x2c33x1b);return _0x2c33x1c};return null};Menus[_0x95fe[5]][_0x95fe[198]]=function(_0x2c33x1c,_0x2c33x1b){if(_0x2c33x1b[_0x95fe[199]]!=null){var _0x2c33x1d=_0x2c33x1c[_0x95fe[23]][_0x95fe[22]][_0x95fe[22]];var _0x2c33x1e=document[_0x95fe[201]](_0x95fe[200]);_0x2c33x1e[_0x95fe[21]][_0x95fe[202]]=_0x95fe[203];mxUtils[_0x95fe[204]](_0x2c33x1e,_0x2c33x1b[_0x95fe[199]]);_0x2c33x1d[_0x95fe[205]](_0x2c33x1e)}};Menus[_0x95fe[5]][_0x95fe[197]]=function(_0x2c33x1c){var _0x2c33x1d=_0x2c33x1c[_0x95fe[23]][_0x95fe[22]];_0x2c33x1d[_0x95fe[21]][_0x95fe[206]]=_0x95fe[207]+IMAGE_PATH+_0x95fe[208];_0x2c33x1d[_0x95fe[21]][_0x95fe[209]]=_0x95fe[210];_0x2c33x1d[_0x95fe[21]][_0x95fe[211]]=_0x95fe[212]};Menus[_0x95fe[5]][_0x95fe[99]]=function(_0x2c33x3,_0x2c33x13,_0x2c33x4){for(var _0x2c33x6=0;_0x2c33x6<_0x2c33x13[_0x95fe[18]];_0x2c33x6++){if(_0x2c33x13[_0x2c33x6]==_0x95fe[95]){_0x2c33x3[_0x95fe[24]](_0x2c33x4)}else {this[_0x95fe[92]](_0x2c33x3,_0x2c33x13[_0x2c33x6],_0x2c33x4)}}};Menus[_0x95fe[5]][_0x95fe[213]]=function(_0x2c33x3,_0x2c33x1f,_0x2c33x20){var _0x2c33x2=this[_0x95fe[0]][_0x95fe[7]][_0x95fe[6]];_0x2c33x3[_0x95fe[214]]=true;if(_0x2c33x2[_0x95fe[215]]()){this[_0x95fe[99]](_0x2c33x3,[_0x95fe[169],_0x95fe[170],_0x95fe[95],_0x95fe[173],_0x95fe[95]])}else {this[_0x95fe[99]](_0x2c33x3,[_0x95fe[174],_0x95fe[95],_0x95fe[171],_0x95fe[172],_0x95fe[95],_0x95fe[175]]);if(_0x2c33x2[_0x95fe[216]]()==1&&_0x2c33x2[_0x95fe[184]]()[_0x95fe[217]](_0x2c33x2[_0x95fe[187]]())){this[_0x95fe[99]](_0x2c33x3,[_0x95fe[218]])};_0x2c33x3[_0x95fe[24]]()};if(_0x2c33x2[_0x95fe[216]]()>0){this[_0x95fe[99]](_0x2c33x3,[_0x95fe[141],_0x95fe[142],_0x95fe[95]]);if(_0x2c33x2[_0x95fe[184]]()[_0x95fe[217]](_0x2c33x2[_0x95fe[187]]())){var _0x2c33x21=false;var _0x2c33x1f=_0x2c33x2[_0x95fe[187]]();if(_0x2c33x1f!=null&&_0x2c33x2[_0x95fe[184]]()[_0x95fe[217]](_0x2c33x1f)){var _0x2c33x22=_0x2c33x2[_0x95fe[220]][_0x95fe[219]](_0x2c33x1f);if(_0x2c33x22 instanceof mxEdgeHandler&&_0x2c33x22[_0x95fe[221]]!=null&&_0x2c33x22[_0x95fe[221]][_0x95fe[18]]>2){var _0x2c33x23=_0x2c33x22[_0x95fe[222]]( new mxMouseEvent(_0x2c33x20));var _0x2c33x24=this[_0x95fe[0]][_0x95fe[80]][_0x95fe[26]](_0x95fe[223]);_0x2c33x24[_0x95fe[224]]=_0x2c33x22;_0x2c33x24[_0x95fe[225]]=_0x2c33x23;_0x2c33x21=_0x2c33x23>0&&_0x2c33x23<_0x2c33x22[_0x95fe[221]][_0x95fe[18]]}};this[_0x95fe[99]](_0x2c33x3,[_0x95fe[95],(_0x2c33x21)?_0x95fe[223]:_0x95fe[226]])}else {if(_0x2c33x2[_0x95fe[216]]()>1){_0x2c33x3[_0x95fe[24]]();this[_0x95fe[99]](_0x2c33x3,[_0x95fe[143]])}};_0x2c33x3[_0x95fe[24]]();if(_0x2c33x2[_0x95fe[216]]()==1){var _0x2c33x25=_0x2c33x2[_0x95fe[227]](_0x2c33x2[_0x95fe[187]]());if(_0x2c33x25!=null){this[_0x95fe[99]](_0x2c33x3,[_0x95fe[228]])}}}else {this[_0x95fe[99]](_0x2c33x3,[_0x95fe[95],_0x95fe[176],_0x95fe[177],_0x95fe[95],_0x95fe[178]])}};Menus[_0x95fe[5]][_0x95fe[229]]=function(_0x2c33x26){var _0x2c33x27= new Menubar(this[_0x95fe[0]],_0x2c33x26);var _0x2c33x28=[_0x95fe[156],_0x95fe[168],_0x95fe[146],_0x95fe[91],_0x95fe[93],_0x95fe[140],_0x95fe[179]];for(var _0x2c33x6=0;_0x2c33x6<_0x2c33x28[_0x95fe[18]];_0x2c33x6++){_0x2c33x27[_0x95fe[181]](mxResources[_0x95fe[26]](_0x2c33x28[_0x2c33x6]),this[_0x95fe[26]](_0x2c33x28[_0x2c33x6])[_0x95fe[194]])};return _0x2c33x27};function Menubar(_0x2c33x1,_0x2c33x26){this[_0x95fe[0]]=_0x2c33x1;this[_0x95fe[230]]=_0x2c33x26;mxEvent[_0x95fe[232]](document,mxUtils[_0x95fe[29]](this,function(_0x2c33x20){this[_0x95fe[231]]()}))}Menubar[_0x95fe[5]][_0x95fe[231]]=function(){if(this[_0x95fe[233]]!=null){this[_0x95fe[233]][_0x95fe[231]]()}};Menubar[_0x95fe[5]][_0x95fe[181]]=function(_0x2c33x12,_0x2c33x2a){var _0x2c33x2b=document[_0x95fe[201]](_0x95fe[234]);_0x2c33x2b[_0x95fe[237]](_0x95fe[235],_0x95fe[236]);_0x2c33x2b[_0x95fe[238]]=_0x95fe[239];mxUtils[_0x95fe[204]](_0x2c33x2b,_0x2c33x12);this[_0x95fe[240]](_0x2c33x2b,_0x2c33x2a);this[_0x95fe[230]][_0x95fe[205]](_0x2c33x2b);return _0x2c33x2b};Menubar[_0x95fe[5]][_0x95fe[240]]=function(_0x2c33x2b,_0x2c33x2a){if(_0x2c33x2a!=null){var _0x2c33x2c=true;var _0x2c33x2d=mxUtils[_0x95fe[29]](this,function(_0x2c33x20){if(_0x2c33x2c&&_0x2c33x2b[_0x95fe[78]]==null||_0x2c33x2b[_0x95fe[78]]){this[_0x95fe[0]][_0x95fe[7]][_0x95fe[6]][_0x95fe[241]][_0x95fe[231]]();var _0x2c33x3= new mxPopupMenu(_0x2c33x2a);_0x2c33x3[_0x95fe[242]][_0x95fe[238]]+=_0x95fe[243];_0x2c33x3[_0x95fe[214]]=true;_0x2c33x3[_0x95fe[81]]=true;_0x2c33x3[_0x95fe[244]]=true;_0x2c33x3[_0x95fe[231]]=mxUtils[_0x95fe[29]](this,function(){mxPopupMenu[_0x95fe[5]][_0x95fe[231]][_0x95fe[245]](_0x2c33x3,arguments);_0x2c33x3[_0x95fe[246]]();this[_0x95fe[233]]=null;this[_0x95fe[247]]=null});var _0x2c33x2e=_0x2c33x2b[_0x95fe[248]]+document[_0x95fe[251]](_0x95fe[250])[_0x95fe[249]]+22;var _0x2c33x2f=_0x2c33x2b[_0x95fe[252]]+_0x2c33x2b[_0x95fe[253]]+140;_0x2c33x3[_0x95fe[254]](_0x2c33x2e,_0x2c33x2f,null,_0x2c33x20);this[_0x95fe[233]]=_0x2c33x3;this[_0x95fe[247]]=_0x2c33x2b};_0x2c33x2c=true;mxEvent[_0x95fe[255]](_0x2c33x20)});mxEvent[_0x95fe[257]](_0x2c33x2b,_0x95fe[256],mxUtils[_0x95fe[29]](this,function(_0x2c33x20){if(this[_0x95fe[233]]!=null&&this[_0x95fe[247]]!=_0x2c33x2b){this[_0x95fe[231]]();_0x2c33x2d(_0x2c33x20)}}));mxEvent[_0x95fe[257]](_0x2c33x2b,_0x95fe[258],mxUtils[_0x95fe[29]](this,function(){_0x2c33x2c=this[_0x95fe[247]]!=_0x2c33x2b}));mxEvent[_0x95fe[257]](_0x2c33x2b,_0x95fe[259],_0x2c33x2d)}};function Menu(_0x2c33x2a,_0x2c33xb){mxEventSource[_0x95fe[260]](this);this[_0x95fe[194]]=_0x2c33x2a;this[_0x95fe[78]]=(_0x2c33xb!=null)?_0x2c33xb:true}mxUtils[_0x95fe[261]](Menu,mxEventSource);Menu[_0x95fe[5]][_0x95fe[262]]=function(_0x2c33x19){if(this[_0x95fe[78]]!=_0x2c33x19){this[_0x95fe[78]]=_0x2c33x19;this[_0x95fe[264]]( new mxEventObject(_0x95fe[263]))}};Menu[_0x95fe[5]][_0x95fe[182]]=function(_0x2c33x3,_0x2c33x4){this[_0x95fe[194]](_0x2c33x3,_0x2c33x4)}
\ No newline at end of file
index 42e13ca..bcf7684 100644 (file)
@@ -1,1234 +1 @@
-/**
- * $Id: Shapes.js,v 1.13 2013-02-02 06:44:30 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-
-/**
- * Registers shapes.
- */
-(function()
-{
-       // Cube Shape, supports size style
-       function CubeShape() { };
-       CubeShape.prototype = new mxCylinder();
-       CubeShape.prototype.constructor = CubeShape;
-       CubeShape.prototype.size = 20;
-       CubeShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var s = Math.min(w, Math.min(h, mxUtils.getValue(this.style, 'size', this.size)));
-
-               if (isForeground)
-               {
-                       path.moveTo(s, h);
-                       path.lineTo(s, s);
-                       path.lineTo(0, 0);
-                       path.moveTo(s, s);
-                       path.lineTo(w, s);
-                       path.end();
-               }
-               else
-               {
-                       path.moveTo(0, 0);
-                       path.lineTo(w - s, 0);
-                       path.lineTo(w, s);
-                       path.lineTo(w, h);
-                       path.lineTo(s, h);
-                       path.lineTo(0, h - s);
-                       path.lineTo(0, 0);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['cube'] = CubeShape;
-
-       // Note Shape, supports size style
-       function NoteShape() { };
-       NoteShape.prototype = new mxCylinder();
-       NoteShape.prototype.constructor = NoteShape;
-       NoteShape.prototype.size = 30;
-       NoteShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var s = Math.min(w, Math.min(h, mxUtils.getValue(this.style, 'size', this.size)));
-
-               if (isForeground)
-               {
-                       path.moveTo(w - s, 0);
-                       path.lineTo(w - s, s);
-                       path.lineTo(w, s);
-                       path.end();
-               }
-               else
-               {
-                       path.moveTo(0, 0);
-                       path.lineTo(w - s, 0);
-                       path.lineTo(w, s);
-                       path.lineTo(w, h);
-                       path.lineTo(0, h);
-                       path.lineTo(0, 0);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['note'] = NoteShape;
-
-       // Folder Shape, supports tabWidth, tabHeight styles
-       function FolderShape() { };
-       FolderShape.prototype = new mxCylinder();
-       FolderShape.prototype.constructor = FolderShape;
-       FolderShape.prototype.tabWidth = 60;
-       FolderShape.prototype.tabHeight = 20;
-       FolderShape.prototype.tabPosition = 'right';
-       FolderShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var tw = mxUtils.getValue(this.style, 'tabWidth', this.tabWidth);
-               var th = mxUtils.getValue(this.style, 'tabHeight', this.tabHeight);
-               var tp = mxUtils.getValue(this.style, 'tabPosition', this.tabPosition);
-               var dx = Math.min(w, tw);
-               var dy = Math.min(h, th);
-
-               if (isForeground)
-               {
-                       if (tp == 'left')
-                       {
-                               path.moveTo(0, dy);
-                               path.lineTo(dx, dy);
-                       }
-                       // Right is default
-                       else
-                       {
-                               path.moveTo(w - dx, dy);
-                               path.lineTo(w, dy);
-                       }
-                       
-                       path.end();
-               }
-               else
-               {
-                       if (tp == 'left')
-                       {
-                               path.moveTo(0, 0);
-                               path.lineTo(dx, 0);
-                               path.lineTo(dx, dy);
-                               path.lineTo(w, dy);
-                       }
-                       // Right is default
-                       else
-                       {
-                               path.moveTo(0, dy);
-                               path.lineTo(w - dx, dy);
-                               path.lineTo(w - dx, 0);
-                               path.lineTo(w, 0);
-                       }
-                       
-                       path.lineTo(w, h);
-                       path.lineTo(0, h);
-                       path.lineTo(0, dy);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['folder'] = FolderShape;
-
-       // Card Shape, supports size style
-       function CardShape() { };
-       CardShape.prototype = new mxCylinder();
-       CardShape.prototype.constructor = CardShape;
-       CardShape.prototype.size = 30;
-       CardShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var s = Math.min(w, Math.min(h, mxUtils.getValue(this.style, 'size', this.size)));
-
-               if (!isForeground)
-               {
-                       path.moveTo(s, 0);
-                       path.lineTo(w, 0);
-                       path.lineTo(w, h);
-                       path.lineTo(0, h);
-                       path.lineTo(0, s);
-                       path.lineTo(s, 0);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['card'] = CardShape;
-
-       // Tape Shape, supports size style
-       function TapeShape() { };
-       TapeShape.prototype = new mxCylinder();
-       TapeShape.prototype.constructor = TapeShape;
-       TapeShape.prototype.size = 0.4;
-       TapeShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var s = mxUtils.getValue(this.style, 'size', this.size);
-               var dy = h * s;
-               var fy = 1.4;
-
-               if (!isForeground)
-               {
-                       path.moveTo(0, dy / 2);
-                       path.quadTo(w / 4, dy * fy, w / 2, dy / 2);
-                       path.quadTo(w * 3 / 4, dy * (1 - fy), w, dy / 2);
-                       path.lineTo(w, h - dy / 2);
-                       path.quadTo(w * 3 / 4, h - dy * fy, w / 2, h - dy / 2);
-                       path.quadTo(w / 4, h - dy * (1 - fy), 0, h - dy / 2);
-                       path.lineTo(0, dy / 2);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['tape'] = TapeShape;
-
-       // Tape Shape, supports size style
-       function StepShape() { };
-       StepShape.prototype = new mxCylinder();
-       StepShape.prototype.constructor = StepShape;
-       StepShape.prototype.size = 0.2;
-       StepShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var s =  w * mxUtils.getValue(this.style, 'size', this.size);
-
-               if (!isForeground)
-               {
-                       path.moveTo(0, 0);
-                       path.lineTo(w - s, 0);
-                       path.lineTo(w, h / 2);
-                       path.lineTo(w - s, h);
-                       path.lineTo(0, h);
-                       path.lineTo(s, h / 2);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['step'] = StepShape;
-
-       // Plus Shape
-       function PlusShape()
-       {
-               mxRectangleShape.call(this);
-       };
-       mxUtils.extend(PlusShape, mxRectangleShape);
-       PlusShape.prototype.isHtmlAllowed = function()
-       {
-               return false;
-       };
-       PlusShape.prototype.paintForeground = function(c, x, y, w, h)
-       {
-               var border = Math.min(w / 5, h / 5) + 1;
-               
-               c.begin();
-               c.moveTo(x + w / 2, y + border);
-               c.lineTo(x + w / 2, y + h - border);
-               c.moveTo(x + border, y + h / 2);
-               c.lineTo(x + w - border, y + h / 2);
-               c.end();
-               c.stroke();
-               mxRectangleShape.prototype.paintForeground.apply(this, arguments);
-       };
-
-       mxCellRenderer.prototype.defaultShapes['plus'] = PlusShape;
-
-       // CompositeShape
-       function ExtendedShape()
-       {
-               mxRectangleShape.call(this);
-       };
-       mxUtils.extend(ExtendedShape, mxRectangleShape);
-       ExtendedShape.prototype.isHtmlAllowed = function()
-       {
-               return false;
-       };
-       ExtendedShape.prototype.paintForeground = function(c, x, y, w, h)
-       {
-               if (this.style != null)
-               {
-                       if (this.style['double'] == 1)
-                       {
-                               var inset = Math.max(2, this.strokewidth + 1);
-       
-                               mxRectangleShape.prototype.paintBackground.call(this, c, x + inset, y + inset, w - 2 * inset, h - 2 * inset);
-                               mxRectangleShape.prototype.paintForeground.apply(this, arguments);
-                               
-                               x += inset;
-                               y += inset;
-                               w -= 2 * inset;
-                               h -= 2 * inset;
-                       }
-                       
-                       c.setDashed(false);
-                       
-                       // Draws the symbols defined in the style. The symbols are
-                       // numbered from 1...n. Possible postfixes are align,
-                       // verticalAlign, spacing, arcSpacing, width, height
-                       var counter = 0;
-                       var shape = null;
-                       
-                       do
-                       {
-                               shape = mxCellRenderer.prototype.defaultShapes[this.style['symbol' + counter]];
-                               
-                               if (shape != null)
-                               {
-                                       var align = this.style['symbol' + counter + 'Align'];
-                                       var valign = this.style['symbol' + counter + 'VerticalAlign'];
-                                       var width = this.style['symbol' + counter + 'Width'];
-                                       var height = this.style['symbol' + counter + 'Height'];
-                                       var spacing = this.style['symbol' + counter + 'Spacing'] || 0;
-                                       var arcspacing = this.style['symbol' + counter + 'ArcSpacing'];
-                                       
-                                       if (arcspacing != null)
-                                       {
-                                               spacing += this.getArcSize(w + this.strokewidth, h + this.strokewidth) * arcspacing;
-                                       }
-                                       
-                                       var x2 = x;
-                                       var y2 = y;
-                                       
-                                       if (align == mxConstants.ALIGN_CENTER)
-                                       {
-                                               x2 += (w - width) / 2;
-                                       }
-                                       else if (align == mxConstants.ALIGN_RIGHT)
-                                       {
-                                               x2 += w - width - spacing;
-                                       }
-                                       else
-                                       {
-                                               x2 += spacing;
-                                       }
-                                       
-                                       if (valign == mxConstants.ALIGN_MIDDLE)
-                                       {
-                                               y2 += (h - height) / 2;
-                                       }
-                                       else if (valign == mxConstants.ALIGN_BOTTOM)
-                                       {
-                                               y2 += h - height - spacing;
-                                       }
-                                       else
-                                       {
-                                               y2 += spacing;
-                                       }
-                                       
-                                       c.save();
-                                       
-                                       // Small hack to pass style along into subshape
-                                       var tmp = new shape();
-                                       // TODO: Clone style and override settings (eg. strokewidth)
-                                       tmp.style = this.style;
-                                       shape.prototype.paintVertexShape.call(tmp, c, x2, y2, width, height);
-                                       c.restore();
-                               }
-                               
-                               counter++;
-                       }
-                       while (shape != null);
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['ext'] = ExtendedShape;
-       
-       // Tape Shape, supports size style
-       function MessageShape() { };
-       MessageShape.prototype = new mxCylinder();
-       MessageShape.prototype.constructor = MessageShape;
-       MessageShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               if (isForeground)
-               {
-                       path.moveTo(0, 0);
-                       path.lineTo(w / 2, h / 2);
-                       path.lineTo(w, 0);
-                       path.end();
-               }
-               else
-               {
-                       path.moveTo(0, 0);
-                       path.lineTo(w, 0);
-                       path.lineTo(w, h);
-                       path.lineTo(0, h);
-                       path.close();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['message'] = MessageShape;
-       
-       // New Actor Shape
-       function UmlActorShape() { };
-       UmlActorShape.prototype = new mxCylinder();
-       UmlActorShape.prototype.constructor = UmlActorShape;
-       UmlActorShape.prototype.addPipe = true;
-       UmlActorShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var width = w / 3;
-               var height = h / 4;
-               
-               if (!isForeground)
-               {
-                       path.moveTo(w / 2, height);
-                       path.curveTo(w / 2 - width, height, w / 2 - width, 0, w / 2, 0);
-                       path.curveTo(w / 2 + width, 0, w / 2 + width, height, w / 2, height);
-                       path.close();
-
-                       path.moveTo(w / 2, height);
-                       path.lineTo(w / 2, 2 * h / 3);
-                       
-                       // Arms
-                       path.moveTo(w / 2, h / 3);
-                       path.lineTo(0, h / 3);
-                       path.moveTo(w / 2, h / 3);
-                       path.lineTo(w, h / 3);
-                       
-                       // Legs
-                       path.moveTo(w / 2, 2 * h / 3);
-                       path.lineTo(0, h);
-                       path.moveTo(w / 2, 2 * h / 3);
-                       path.lineTo(w, h);
-                       path.end();
-               }
-       };
-
-       // Replaces existing actor shape
-       mxCellRenderer.prototype.defaultShapes['umlActor'] = UmlActorShape;
-
-       // New Actor Shape
-       function LollipopShape() { };
-       LollipopShape.prototype = new mxCylinder();
-       LollipopShape.prototype.constructor = LollipopShape;
-       LollipopShape.prototype.size = 10;
-       LollipopShape.prototype.addPipe = true;
-       LollipopShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var ss = mxUtils.getValue(this.style, 'size', this.size);
-               var width = ss * 2 / 3;
-               var height = ss;
-               
-               if (!isForeground)
-               {
-                       path.moveTo(w / 2, height);
-                       path.curveTo(w / 2 - width, height, w / 2 - width, 0, w / 2, 0);
-                       path.curveTo(w / 2 + width, 0, w / 2 + width, height, w / 2, height);
-                       path.close();
-
-                       path.moveTo(w / 2, height);
-                       path.lineTo(w / 2, h);
-                       path.end();
-               }
-       };
-
-       // Replaces existing actor shape
-       mxCellRenderer.prototype.defaultShapes['lollipop'] = LollipopShape;
-       
-       // Folder Shape, supports tabWidth, tabHeight styles
-       function ComponentShape() { };
-       ComponentShape.prototype = new mxCylinder();
-       ComponentShape.prototype.constructor = ComponentShape;
-       ComponentShape.prototype.jettyWidth = 32;
-       ComponentShape.prototype.jettyHeight = 12;
-       ComponentShape.prototype.redrawPath = function(path, x, y, w, h, isForeground)
-       {
-               var dx = mxUtils.getValue(this.style, 'jettyWidth', this.jettyWidth);
-               var dy = mxUtils.getValue(this.style, 'jettyHeight', this.jettyHeight);
-               var x0 = dx / 2;
-               var x1 = x0 + dx / 2;
-               var y0 = 0.3 * h - dy / 2;
-               var y1 = 0.7 * h - dy / 2;
-
-               if (isForeground)
-               {
-                       path.moveTo(x0, y0);
-                       path.lineTo(x1, y0);
-                       path.lineTo(x1, y0 + dy);
-                       path.lineTo(x0, y0 + dy);
-                       path.moveTo(x0, y1);
-                       path.lineTo(x1, y1);
-                       path.lineTo(x1, y1 + dy);
-                       path.lineTo(x0, y1 + dy);
-                       path.end();
-               }
-               else
-               {
-                       path.moveTo(x0, 0);
-                       path.lineTo(w, 0);
-                       path.lineTo(w, h);
-                       path.lineTo(x0, h);
-                       path.lineTo(x0, y1 + dy);
-                       path.lineTo(0, y1 + dy);
-                       path.lineTo(0, y1);
-                       path.lineTo(x0, y1);
-                       path.lineTo(x0, y0 + dy);
-                       path.lineTo(0, y0 + dy);
-                       path.lineTo(0, y0);
-                       path.lineTo(x0, y0);
-                       path.close();
-                       path.end();
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['component'] = ComponentShape;
-       
-       // State Shapes derives from double ellipse
-       function StateShape() { };
-       StateShape.prototype = new mxDoubleEllipse();
-       StateShape.prototype.constructor = StateShape;
-       StateShape.prototype.outerStroke = true;
-       StateShape.prototype.paintVertexShape = function(c, x, y, w, h)
-       {
-               var inset = Math.min(4, Math.min(w / 5, h / 5));
-               
-               if (w > 0 && h > 0)
-               {
-                       c.ellipse(x + inset, y + inset, w - 2 * inset, h - 2 * inset);
-                       c.fillAndStroke();
-               }
-               
-               c.setShadow(false);
-
-               if (this.outerStroke)
-               {
-                       c.ellipse(x, y, w, h);
-                       c.stroke();                     
-               }
-       };
-
-       mxCellRenderer.prototype.defaultShapes['endState'] = StateShape;
-
-       function StartStateShape() { };
-       StartStateShape.prototype = new StateShape();
-       StartStateShape.prototype.constructor = StartStateShape;
-       StartStateShape.prototype.outerStroke = false;
-       
-       mxCellRenderer.prototype.defaultShapes['startState'] = StartStateShape;
-
-       // Image export for state shapes
-       var imageExportInitShapes = mxImageExport.prototype.initShapes;
-       mxImageExport.prototype.initShapes = function()
-       {
-               imageExportInitShapes.apply(this, arguments);
-
-               function createStateShape(outerStroke)
-               {
-                       return {
-                               drawShape: function(canvas, state, bounds, background)
-                               {
-                                       var x = bounds.x;
-                                       var y = bounds.y;
-                                       var w = bounds.width;
-                                       var h = bounds.height;
-                                       
-                                       if (background)
-                                       {
-                                               var inset = Math.min(4, Math.min(w / 5, h / 5));
-                                               x += inset;
-                                               y += inset;
-                                               w -= 2 * inset;
-                                               h -= 2 * inset;
-                                               
-                                               if (w > 0 && h > 0)
-                                               {
-                                                       canvas.ellipse(x, y, w, h);
-                                               }
-                                               
-                                               return true;
-                                       }
-                                       else
-                                       {
-                                               canvas.fillAndStroke();
-               
-                                               if (outerStroke)
-                                               {
-                                                       canvas.ellipse(x, y, w, h);
-                                                       canvas.stroke();
-                                               }
-                                       }
-                               }
-                       };
-               };
-               
-               this.shapes['endState'] = createStateShape(true);
-               this.shapes['startState'] = createStateShape(false);
-       };
-
-       // Defines custom edge shape
-       function LinkShape()
-       {
-               mxArrow.call(this);
-       };
-       mxUtils.extend(LinkShape, mxArrow);
-       LinkShape.prototype.paintEdgeShape = function(c, pts)
-       {
-               var width = 10;
-
-               // Base vector (between end points)
-               var p0 = pts[0];
-               var pe = pts[pts.length - 1];
-               
-               var dx = pe.x - p0.x;
-               var dy = pe.y - p0.y;
-               var dist = Math.sqrt(dx * dx + dy * dy);
-               var length = dist;
-               
-               // Computes the norm and the inverse norm
-               var nx = dx / dist;
-               var ny = dy / dist;
-               var basex = length * nx;
-               var basey = length * ny;
-               var floorx = width * ny/3;
-               var floory = -width * nx/3;
-               
-               // Computes points
-               var p0x = p0.x - floorx / 2;
-               var p0y = p0.y - floory / 2;
-               var p1x = p0x + floorx;
-               var p1y = p0y + floory;
-               var p2x = p1x + basex;
-               var p2y = p1y + basey;
-               var p3x = p2x + floorx;
-               var p3y = p2y + floory;
-               // p4 not necessary
-               var p5x = p3x - 3 * floorx;
-               var p5y = p3y - 3 * floory;
-               
-               c.begin();
-               c.moveTo(p1x, p1y);
-               c.lineTo(p2x, p2y);
-               c.moveTo(p5x + floorx, p5y + floory);
-               c.lineTo(p0x, p0y);
-               c.stroke();
-       };
-
-       // Registers the link shape
-       mxCellRenderer.prototype.defaultShapes['link'] = LinkShape;
-
-       // Registers and defines the custom marker
-       mxMarker.addMarker('dash', function(canvas, shape, type, pe, unitX, unitY, size, source, sw, filled)
-       {
-               var nx = unitX * (size + sw + 1);
-               var ny = unitY * (size + sw + 1);
-
-               return function()
-               {
-                       canvas.begin();
-                       canvas.moveTo(pe.x - nx / 2 - ny / 2, pe.y - ny / 2 + nx / 2);
-                       canvas.lineTo(pe.x + ny / 2 - 3 * nx / 2, pe.y - 3 * ny / 2 - nx / 2);
-                       canvas.stroke();
-               };
-       });
-
-       // Implements custom handlers
-       var SPECIAL_HANDLE_INDEX = -99;
-
-       // Handlers are only added if mxVertexHandler is defined (ie. not in embedded graph)
-       if (typeof(mxVertexHandler) != 'undefined')
-       {
-               function mxExtVertexHandler(state)
-               {
-                       mxVertexHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxExtVertexHandler, mxVertexHandler);
-       
-               mxExtVertexHandler.prototype.useGridForSpecialHandle = false;
-               
-               mxExtVertexHandler.prototype.init = function()
-               {
-                       this.horizontal = mxUtils.getValue(this.state.style, mxConstants.STYLE_HORIZONTAL, true);
-                       var graph = this.state.view.graph;
-       
-                       if (this.handleImage != null)
-                       {
-                               var bounds = new mxRectangle(0, 0, this.handleImage.width, this.handleImage.height);
-                               this.specialHandle = new mxImageShape(bounds, this.handleImage.src);
-                       }
-                       else
-                       {
-                               var size = 10;
-                               var bounds = new mxRectangle(0, 0, size, size);
-                               this.specialHandle = new mxRhombus(bounds, mxConstants.HANDLE_FILLCOLOR, mxConstants.HANDLE_STROKECOLOR);
-                       }
-                       
-                       this.specialHandle.dialect = (graph.dialect != mxConstants.DIALECT_SVG) ?
-                                       mxConstants.DIALECT_VML : mxConstants.DIALECT_SVG;
-                       this.specialHandle.init(graph.getView().getOverlayPane());
-                       this.specialHandle.node.style.cursor = this.getSpecialHandleCursor();
-       
-                       mxEvent.redirectMouseEvents(this.specialHandle.node, graph, this.state);
-                       mxVertexHandler.prototype.init.apply(this, arguments);
-               };
-               
-               mxExtVertexHandler.prototype.getSpecialHandleCursor = function()
-               {
-                       return 'default';
-               };
-               
-               mxExtVertexHandler.prototype.redraw = function()
-               {
-                       mxVertexHandler.prototype.redraw.apply(this, arguments);
-       
-                       var size = this.specialHandle.bounds.width;
-                       this.specialHandle.bounds = this.getSpecialHandleBounds(size);
-                       this.specialHandle.redraw();
-               };
-
-               mxExtVertexHandler.prototype.destroy = function()
-               {
-                       mxVertexHandler.prototype.destroy.apply(this, arguments);
-                       
-                       if (this.specialHandle != null)
-                       {
-                               this.specialHandle.destroy();
-                               this.specialHandle = null;
-                       }
-               };
-               
-               mxExtVertexHandler.prototype.getHandleForEvent = function(me)
-               {
-                       if (me.isSource(this.specialHandle))
-                       {
-                               return SPECIAL_HANDLE_INDEX;
-                       }
-                       
-                       return mxVertexHandler.prototype.getHandleForEvent.apply(this, arguments);
-               };
-
-               mxExtVertexHandler.prototype.mouseMove = function(sender, me)
-               {
-                       if (!me.isConsumed() && this.index == SPECIAL_HANDLE_INDEX)
-                       {
-                               var point = new mxPoint(me.getGraphX(), me.getGraphY());
-                               this.constrainPoint(point);
-                               var gridEnabled = this.graph.isGridEnabledEvent(me.getEvent());
-                               var scale = this.graph.getView().scale;
-                               
-                               if (gridEnabled && this.useGridForSpecialHandle)
-                               {
-                                       point.x = this.graph.snap(point.x / scale) * scale;
-                                       point.y = this.graph.snap(point.y / scale) * scale;
-                               }
-                               
-                               this.updateStyle(point);                        
-                               this.moveSizerTo(this.specialHandle, point.x, point.y);
-                               this.state.view.graph.cellRenderer.redraw(this.state, true);
-                               me.consume();
-                       }
-                       else
-                       {
-                               mxVertexHandler.prototype.mouseMove.apply(this, arguments);
-                       }
-               };
-
-               mxExtVertexHandler.prototype.mouseUp = function(sender, me)
-               {
-                       if (!me.isConsumed() && this.index == SPECIAL_HANDLE_INDEX)
-                       {
-                               this.applyStyle();
-                               this.reset();
-                               me.consume();
-                       }
-                       else
-                       {
-                               mxVertexHandler.prototype.mouseUp.apply(this, arguments);
-                       }
-               };
-
-               mxExtVertexHandler.prototype.getSpecialHandleBounds = function(size)
-               {
-                       var rotation = this.state.shape.getShapeRotation();
-                       var alpha = mxUtils.toRadians(rotation);
-                       var cos = Math.cos(alpha);
-                       var sin = Math.sin(alpha);
-                       
-                       var bounds = new mxRectangle(this.state.x, this.state.y, this.state.width, this.state.height);
-                       
-                       if (this.state.shape.isPaintBoundsInverted())
-                       {
-                               var t = (bounds.width - bounds.height) / 2;
-                               bounds.x += t;
-                               bounds.y -= t;
-                               var tmp = bounds.width;
-                               bounds.width = bounds.height;
-                               bounds.height = tmp;
-                       }
-       
-                       var pt = this.getSpecialHandlePoint(bounds);
-
-                       if (this.state.shape.flipH)
-                       {
-                               pt.x = 2 * bounds.x + bounds.width - pt.x;
-                       }
-                       
-                       if (this.state.shape.flipV)
-                       {
-                               pt.y = 2 * bounds.y + bounds.height - pt.y;
-                       }
-                       
-                       pt = mxUtils.getRotatedPoint(pt, cos, sin,
-                               new mxPoint(this.state.getCenterX(), this.state.getCenterY()));
-
-                       return new mxRectangle(pt.x - size / 2, pt.y - size / 2, size, size);
-               };
-               
-               mxExtVertexHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       // Hook for subclassers
-                       return null;
-               };
-       
-               mxExtVertexHandler.prototype.updateStyle = function(point)
-               {
-                       // Hook for subclassers
-               };
-               
-               mxExtVertexHandler.prototype.constrainPoint = function(point)
-               {
-                       point.x = Math.max(this.state.x, Math.min(this.state.x + this.state.width, point.x));
-                       point.y = Math.max(this.state.y, Math.min(this.state.y + this.state.height, point.y));
-               };
-               
-               mxExtVertexHandler.prototype.applyStyle = function()
-               {
-                       // Hook for subclassers
-               };
-
-               // Folder Handler
-               function mxFolderHandler(state)
-               {
-                       mxExtVertexHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxFolderHandler, mxExtVertexHandler);
-
-               mxFolderHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       var scale = this.graph.getView().scale;
-                       var tw = Math.min(bounds.width, mxUtils.getValue(this.state.style, 'tabWidth', 60) * scale);
-                       var th = Math.min(bounds.height, mxUtils.getValue(this.state.style, 'tabHeight', 20) * scale);
-                       
-                       var tp = mxUtils.getValue(this.state.style, 'tabPosition', 'right');
-                       var x = (tp == 'left') ? bounds.x + tw : bounds.x + bounds.width - tw;
-       
-                       return new mxPoint(x, bounds.y + th);
-               };
-               
-               mxFolderHandler.prototype.updateStyle = function(point)
-               {
-                       var rotation = this.state.shape.getShapeRotation();
-                       var alpha = mxUtils.toRadians(rotation);
-                       var cos = Math.cos(-alpha);
-                       var sin = Math.sin(-alpha);
-
-                       var bounds = new mxRectangle(this.state.x, this.state.y, this.state.width, this.state.height);
-                       
-                       if (this.state.shape.isPaintBoundsInverted())
-                       {
-                               var t = (bounds.width - bounds.height) / 2;
-                               bounds.x += t;
-                               bounds.y -= t;
-                               var tmp = bounds.width;
-                               bounds.width = bounds.height;
-                               bounds.height = tmp;
-                       }
-       
-                       var pt = new mxPoint(point.x, point.y);
-                       pt = mxUtils.getRotatedPoint(pt, cos, sin,
-                               new mxPoint(this.state.getCenterX(), this.state.getCenterY()));
-
-                       if (this.state.shape.flipH)
-                       {
-                               pt.x = 2 * bounds.x + bounds.width - pt.x;
-                       }
-                       
-                       if (this.state.shape.flipV)
-                       {
-                               pt.y = 2 * bounds.y + bounds.height - pt.y;
-                       }
-                       
-                       var result = this.updateStyleUnrotated(pt, bounds);
-               
-                       // Modifies point to use rotated coordinates of return value
-                       if (result != null)
-                       {
-                               if (this.state.shape.flipH)
-                               {
-                                       result.x = 2 * bounds.x + bounds.width - result.x;
-                               }
-                               
-                               if (this.state.shape.flipV)
-                               {
-                                       result.y = 2 * bounds.y + bounds.height - result.y;
-                               }
-                               
-                               cos = Math.cos(alpha);
-                               sin = Math.sin(alpha);
-                               result = mxUtils.getRotatedPoint(result, cos, sin,
-                                               new mxPoint(this.state.getCenterX(), this.state.getCenterY()));
-                               point.x = result.x;
-                               point.y = result.y;
-                       }
-               };
-               
-               mxFolderHandler.prototype.updateStyleUnrotated = function(pt, bounds)
-               {
-                       var tp = mxUtils.getValue(this.state.style, 'tabPosition', 'right');
-                       var tw = (tp == 'left') ? pt.x - bounds.x : bounds.x + bounds.width - pt.x;
-                       var th = pt.y - bounds.y;
-                       
-                       var scale = this.graph.getView().scale;
-                       this.state.style['tabWidth'] = Math.round(Math.max(1, tw) / scale);
-                       this.state.style['tabHeight'] =  Math.round(Math.max(1, th) / scale);
-               };
-               
-               mxFolderHandler.prototype.applyStyle = function()
-               {
-                       var model = this.graph.getModel();
-                       model.beginUpdate();
-                       try
-                       {
-                               this.state.view.graph.setCellStyles('tabWidth', this.state.style['tabWidth'], [this.state.cell]);
-                               this.state.view.graph.setCellStyles('tabHeight', this.state.style['tabHeight'], [this.state.cell]);
-                       }
-                       finally
-                       {
-                               model.endUpdate();
-                       }
-               };
-               
-               // Swimlane Handler
-               function mxSwimlaneHandler(state)
-               {
-                       mxFolderHandler.call(this, state);
-               };
-               
-               mxUtils.extend(mxSwimlaneHandler, mxFolderHandler);
-               
-               mxSwimlaneHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       var scale = this.graph.getView().scale;
-                       var startSize = mxUtils.getValue(this.state.style, mxConstants.STYLE_STARTSIZE, mxConstants.DEFAULT_STARTSIZE);
-
-                       return new mxPoint(bounds.x + bounds.width / 2, bounds.y + Math.min(bounds.height, startSize * scale));
-               };
-               
-               mxSwimlaneHandler.prototype.updateStyleUnrotated = function(point, bounds)
-               {
-                       point.x = bounds.x + bounds.width / 2;
-                       startSize = point.y - bounds.y;
-                       var scale = this.graph.getView().scale;
-                       this.state.style['startSize'] = Math.round(Math.max(1, startSize) / scale);
-                       
-                       return point;
-               };
-               
-               mxSwimlaneHandler.prototype.applyStyle = function()
-               {
-                       this.state.view.graph.setCellStyles('startSize', this.state.style['startSize'], [this.state.cell]);
-               };
-
-               // Cube Handler
-               function mxCubeHandler(state)
-               {
-                       mxFolderHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxCubeHandler, mxFolderHandler);
-               
-               mxCubeHandler.prototype.defaultValue = 20;
-       
-               mxCubeHandler.prototype.scaleFactor = 1;
-               
-               mxCubeHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       var scale = this.graph.getView().scale;
-                       var sz = Math.min(bounds.width, Math.min(bounds.height,
-                               mxUtils.getValue(this.state.style, 'size', this.defaultValue) * scale / this.scaleFactor));
-                       
-                       return new mxPoint(bounds.x + sz, bounds.y + sz);
-               };
-       
-               mxCubeHandler.prototype.updateStyleUnrotated = function(pt, bounds)
-               {
-                       var size = Math.max(0, Math.min(Math.min(bounds.width / this.scaleFactor, pt.x - bounds.x),
-                                       Math.min(bounds.height / this.scaleFactor, pt.y - bounds.y)));
-                       var scale = this.graph.getView().scale;
-                       this.state.style['size'] = Math.round(Math.max(1, size) / scale) * this.scaleFactor;
-                       
-                       // Stays on the diagonal
-                       return new mxPoint(bounds.x + size, bounds.y + size);
-               };
-               
-               mxCubeHandler.prototype.applyStyle = function()
-               {
-                       this.state.view.graph.setCellStyles('size', this.state.style['size'], [this.state.cell]);
-               };
-               
-               // Card Handler
-               function mxCardHandler(state)
-               {
-                       mxCubeHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxCardHandler, mxCubeHandler);
-               
-               mxCardHandler.prototype.defaultValue = 30;
-       
-               mxCardHandler.prototype.scaleFactor = 2;
-               
-               // Note Handler
-               function mxNoteHandler(state)
-               {
-                       mxCubeHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxNoteHandler, mxCubeHandler);
-               
-               mxNoteHandler.prototype.defaultValue = 30;
-       
-               mxNoteHandler.prototype.scaleFactor = 1;
-               
-               mxNoteHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       var scale = this.graph.getView().scale;
-                       var sz = Math.min(bounds.width, Math.min(bounds.height,
-                                       mxUtils.getValue(this.state.style, 'size', this.defaultValue) * scale / this.scaleFactor));
-                       
-                       return new mxPoint(bounds.x + bounds.width - sz, bounds.y + sz);
-               };
-               
-               mxNoteHandler.prototype.updateStyleUnrotated = function(pt, bounds)
-               {
-                       var size = Math.max(0, Math.min(Math.min(bounds.width / this.scaleFactor, pt.x - bounds.x + bounds.width),
-                                       Math.min(bounds.height / this.scaleFactor, pt.y - bounds.y)));
-                       var scale = this.graph.getView().scale;
-                       this.state.style['size'] = Math.round(Math.max(1, size) / scale) * this.scaleFactor;
-                       
-                       // Stays on the diagonal
-                       return new mxPoint(bounds.x + bounds.width - size, bounds.y + size);
-               };
-               
-               // Step Handler
-               function mxStepHandler(state)
-               {
-                       mxCubeHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxStepHandler, mxCubeHandler);
-               
-               mxStepHandler.prototype.defaultValue = 0.2;
-       
-               mxStepHandler.prototype.scaleFactor = 1;
-               
-               mxStepHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       var sz = mxUtils.getValue(this.state.style, 'size', this.defaultValue);
-                       
-                       return new mxPoint(bounds.x + bounds.width * sz, bounds.y + bounds.height / 2);
-               };
-       
-               mxStepHandler.prototype.updateStyleUnrotated = function(pt, bounds)
-               {
-                       var size = Math.min(1, (pt.x - bounds.x) / bounds.width);
-                       this.state.style['size'] = size;
-                       
-                       return new mxPoint(bounds.x + size * bounds.width, bounds.y + bounds.height / 2);
-               };
-               
-               // Tape Handler
-               function mxTapeHandler(state)
-               {
-                       mxCubeHandler.call(this, state);
-               };
-       
-               mxUtils.extend(mxTapeHandler, mxCubeHandler);
-               
-               mxTapeHandler.prototype.defaultValue = 0.4;
-       
-               mxTapeHandler.prototype.scaleFactor = 1;
-               
-               mxTapeHandler.prototype.getSpecialHandlePoint = function(bounds)
-               {
-                       var sz = mxUtils.getValue(this.state.style, 'size', this.defaultValue);
-       
-                       return new mxPoint(bounds.x + bounds.width / 2, bounds.y + sz * bounds.height / 2);
-               };
-       
-               mxTapeHandler.prototype.updateStyleUnrotated = function(pt, bounds)
-               {
-                       var size = Math.max(0, Math.min(1, ((pt.y - bounds.y) / bounds.height) * 2));
-                       this.state.style['size'] = size;
-                       
-                       return new mxPoint(bounds.x + bounds.width / 2, bounds.y + size * bounds.height / 2);
-               };
-               
-               var handlers = {'swimlane': mxSwimlaneHandler, 'folder': mxFolderHandler, 'cube': mxCubeHandler,
-                               'card': mxCardHandler, 'note': mxNoteHandler, 'step': mxStepHandler, 'tape': mxTapeHandler};
-
-               var mxGraphCreateHandler = mxGraph.prototype.createHandler;
-               mxGraph.prototype.createHandler = function(state)
-               {
-                       if (state != null)
-                       {
-                               var ctor = handlers[state.style['shape']];
-
-                               if (ctor != null)
-                               {
-                                       return new ctor(state);
-                               }
-                       }
-                       
-                       return mxGraphCreateHandler.apply(this, arguments);
-               };
-       }
-       
-       // Constraints
-       mxGraph.prototype.getAllConnectionConstraints = function(terminal, source)
-       {
-               if (terminal != null && terminal.shape != null)
-               {
-                       if (terminal.shape.stencil != null)
-                       {
-                               if (terminal.shape.stencil != null)
-                               {
-                                       return terminal.shape.stencil.constraints;
-                               }
-                       }
-                       else if (terminal.shape.constraints != null)
-                       {
-                               return terminal.shape.constraints;
-                       }
-               }
-
-               return null;
-       };
-
-       mxRectangleShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0), true),
-                                                 new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                                 new mxConnectionConstraint(new mxPoint(0.75, 0), true),
-                                                new mxConnectionConstraint(new mxPoint(0, 0.25), true),
-                                                new mxConnectionConstraint(new mxPoint(0, 0.5), true),
-                                                new mxConnectionConstraint(new mxPoint(0, 0.75), true),
-                                                new mxConnectionConstraint(new mxPoint(1, 0.25), true),
-                                                new mxConnectionConstraint(new mxPoint(1, 0.5), true),
-                                                new mxConnectionConstraint(new mxPoint(1, 0.75), true),
-                                                new mxConnectionConstraint(new mxPoint(0.25, 1), true),
-                                                new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                                new mxConnectionConstraint(new mxPoint(0.75, 1), true)];
-       mxLabel.prototype.constraints = mxRectangleShape.prototype.constraints;
-       mxImageShape.prototype.constraints = mxRectangleShape.prototype.constraints;
-       mxSwimlane.prototype.constraints = mxRectangleShape.prototype.constraints;
-       PlusShape.prototype.constraints = mxRectangleShape.prototype.constraints;
-       NoteShape.prototype.constraints = mxRectangleShape.prototype.constraints;
-       CardShape.prototype.constraints = mxRectangleShape.prototype.constraints;
-       CubeShape.prototype.constraints = mxRectangleShape.prototype.constraints;
-       FolderShape.prototype.constraints = mxRectangleShape.prototype.constraints;
-       mxCylinder.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.15, 0.05), false),
-                                        new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                        new mxConnectionConstraint(new mxPoint(0.85, 0.05), false),
-                                new mxConnectionConstraint(new mxPoint(0, 0.3), true),
-                                new mxConnectionConstraint(new mxPoint(0, 0.5), true),
-                                new mxConnectionConstraint(new mxPoint(0, 0.7), true),
-                                new mxConnectionConstraint(new mxPoint(1, 0.3), true),
-                                new mxConnectionConstraint(new mxPoint(1, 0.5), true),
-                                new mxConnectionConstraint(new mxPoint(1, 0.7), true),
-                                new mxConnectionConstraint(new mxPoint(0.15, 0.95), false),
-                                new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                new mxConnectionConstraint(new mxPoint(0.85, 0.95), false)];
-       UmlActorShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0.1), false),
-                                                 new mxConnectionConstraint(new mxPoint(0.5, 0), false),
-                                                 new mxConnectionConstraint(new mxPoint(0.75, 0.1), false),
-                                                new mxConnectionConstraint(new mxPoint(0, 1/3), false),
-                                                new mxConnectionConstraint(new mxPoint(0, 1), false),
-                                                new mxConnectionConstraint(new mxPoint(1, 1/3), false),
-                                                new mxConnectionConstraint(new mxPoint(1, 1), false),
-                                                new mxConnectionConstraint(new mxPoint(0.5, 0.5), false)];
-       ComponentShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0), true),
-                                                 new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                                 new mxConnectionConstraint(new mxPoint(0.75, 0), true),
-                                                new mxConnectionConstraint(new mxPoint(0, 0.3), true),
-                                                new mxConnectionConstraint(new mxPoint(0, 0.7), true),
-                                                new mxConnectionConstraint(new mxPoint(1, 0.25), true),
-                                                new mxConnectionConstraint(new mxPoint(1, 0.5), true),
-                                                new mxConnectionConstraint(new mxPoint(1, 0.75), true),
-                                                new mxConnectionConstraint(new mxPoint(0.25, 1), true),
-                                                new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                                new mxConnectionConstraint(new mxPoint(0.75, 1), true)];
-       mxActor.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                new mxConnectionConstraint(new mxPoint(0.25, 0.2), false),
-                                new mxConnectionConstraint(new mxPoint(0.1, 0.5), false),
-                                new mxConnectionConstraint(new mxPoint(0, 0.75), true),
-                                new mxConnectionConstraint(new mxPoint(0.75, 0.25), false),
-                                new mxConnectionConstraint(new mxPoint(0.9, 0.5), false),
-                                new mxConnectionConstraint(new mxPoint(1, 0.75), true),
-                                new mxConnectionConstraint(new mxPoint(0.25, 1), true),
-                                new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                new mxConnectionConstraint(new mxPoint(0.75, 1), true)];
-       TapeShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0, 0.35), false),
-                                          new mxConnectionConstraint(new mxPoint(0, 0.5), false),
-                                          new mxConnectionConstraint(new mxPoint(0, 0.65), false),
-                                          new mxConnectionConstraint(new mxPoint(1, 0.35), false),
-                                               new mxConnectionConstraint(new mxPoint(1, 0.5), false),
-                                               new mxConnectionConstraint(new mxPoint(1, 0.65), false),
-                                                                               new mxConnectionConstraint(new mxPoint(0.25, 1), false),
-                                                                               new mxConnectionConstraint(new mxPoint(0.75, 0), false)];
-       // TODO: Relative ports
-       StepShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0), true),
-                                       new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                       new mxConnectionConstraint(new mxPoint(0.75, 0), true),
-                                       new mxConnectionConstraint(new mxPoint(0.25, 1), true),
-                                                       new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                                       new mxConnectionConstraint(new mxPoint(0.75, 1), true),
-                                          new mxConnectionConstraint(new mxPoint(0.1, 0.25), false),
-                                          new mxConnectionConstraint(new mxPoint(0.2, 0.5), false),
-                                          new mxConnectionConstraint(new mxPoint(0.1, 0.75), false),
-                                          new mxConnectionConstraint(new mxPoint(0.9, 0.25), false),
-                                               new mxConnectionConstraint(new mxPoint(1, 0.5), false),
-                                               new mxConnectionConstraint(new mxPoint(0.9, 0.75), false)];
-       mxLine.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0, 0.5), false),
-                                       new mxConnectionConstraint(new mxPoint(0.25, 0.5), false),
-                                       new mxConnectionConstraint(new mxPoint(0.75, 0.5), false),
-                                                                       new mxConnectionConstraint(new mxPoint(1, 0.5), false)];
-       LollipopShape.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.5, 0), false),
-                                                                               new mxConnectionConstraint(new mxPoint(0.5, 1), false)];
-       mxEllipse.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0, 0), true), new mxConnectionConstraint(new mxPoint(1, 0), true),
-                                          new mxConnectionConstraint(new mxPoint(0, 1), true), new mxConnectionConstraint(new mxPoint(1, 1), true),
-                                          new mxConnectionConstraint(new mxPoint(0.5, 0), true), new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                                  new mxConnectionConstraint(new mxPoint(0, 0.5), true), new mxConnectionConstraint(new mxPoint(1, 0.5))];
-       mxDoubleEllipse.prototype.constraints = mxEllipse.prototype.constraints;
-       mxRhombus.prototype.constraints = mxEllipse.prototype.constraints;
-       mxTriangle.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0, 0.25), true),
-                                           new mxConnectionConstraint(new mxPoint(0, 0.5), true),
-                                          new mxConnectionConstraint(new mxPoint(0, 0.75), true),
-                                          new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                          new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                          new mxConnectionConstraint(new mxPoint(1, 0.5), true)];
-       mxHexagon.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.375, 0), true),
-                                           new mxConnectionConstraint(new mxPoint(0.5, 0), true),
-                                          new mxConnectionConstraint(new mxPoint(0.625, 0), true),
-                                          new mxConnectionConstraint(new mxPoint(0.125, 0.25), false),
-                                          new mxConnectionConstraint(new mxPoint(0, 0.5), true),
-                                          new mxConnectionConstraint(new mxPoint(0.125, 0.75), false),
-                                          new mxConnectionConstraint(new mxPoint(0.875, 0.25), false),
-                                          new mxConnectionConstraint(new mxPoint(0, 0.5), true),
-                                          new mxConnectionConstraint(new mxPoint(1, 0.5), true),
-                                          new mxConnectionConstraint(new mxPoint(0.875, 0.75), false),
-                                          new mxConnectionConstraint(new mxPoint(0.375, 1), true),
-                                           new mxConnectionConstraint(new mxPoint(0.5, 1), true),
-                                          new mxConnectionConstraint(new mxPoint(0.625, 1), true)];
-       mxCloud.prototype.constraints = [new mxConnectionConstraint(new mxPoint(0.25, 0.25), false),
-                                        new mxConnectionConstraint(new mxPoint(0.4, 0.1), false),
-                                        new mxConnectionConstraint(new mxPoint(0.16, 0.55), false),
-                                        new mxConnectionConstraint(new mxPoint(0.07, 0.4), false),
-                                        new mxConnectionConstraint(new mxPoint(0.31, 0.8), false),
-                                        new mxConnectionConstraint(new mxPoint(0.13, 0.77), false),
-                                        new mxConnectionConstraint(new mxPoint(0.8, 0.8), false),
-                                        new mxConnectionConstraint(new mxPoint(0.55, 0.95), false),
-                                        new mxConnectionConstraint(new mxPoint(0.875, 0.5), false),
-                                        new mxConnectionConstraint(new mxPoint(0.96, 0.7), false),
-                                        new mxConnectionConstraint(new mxPoint(0.625, 0.2), false),
-                                        new mxConnectionConstraint(new mxPoint(0.88, 0.25), false)];
-       mxArrow.prototype.constraints = null;
-})();
+var _0x75d1=["\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x73\x69\x7A\x65","\x72\x65\x64\x72\x61\x77\x50\x61\x74\x68","\x73\x74\x79\x6C\x65","\x67\x65\x74\x56\x61\x6C\x75\x65","\x6D\x69\x6E","\x6D\x6F\x76\x65\x54\x6F","\x6C\x69\x6E\x65\x54\x6F","\x65\x6E\x64","\x63\x6C\x6F\x73\x65","\x63\x75\x62\x65","\x64\x65\x66\x61\x75\x6C\x74\x53\x68\x61\x70\x65\x73","\x6E\x6F\x74\x65","\x74\x61\x62\x57\x69\x64\x74\x68","\x74\x61\x62\x48\x65\x69\x67\x68\x74","\x74\x61\x62\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x72\x69\x67\x68\x74","\x6C\x65\x66\x74","\x66\x6F\x6C\x64\x65\x72","\x63\x61\x72\x64","\x71\x75\x61\x64\x54\x6F","\x74\x61\x70\x65","\x73\x74\x65\x70","\x63\x61\x6C\x6C","\x65\x78\x74\x65\x6E\x64","\x69\x73\x48\x74\x6D\x6C\x41\x6C\x6C\x6F\x77\x65\x64","\x70\x61\x69\x6E\x74\x46\x6F\x72\x65\x67\x72\x6F\x75\x6E\x64","\x62\x65\x67\x69\x6E","\x73\x74\x72\x6F\x6B\x65","\x61\x70\x70\x6C\x79","\x70\x6C\x75\x73","\x64\x6F\x75\x62\x6C\x65","\x73\x74\x72\x6F\x6B\x65\x77\x69\x64\x74\x68","\x6D\x61\x78","\x70\x61\x69\x6E\x74\x42\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x73\x65\x74\x44\x61\x73\x68\x65\x64","\x73\x79\x6D\x62\x6F\x6C","\x41\x6C\x69\x67\x6E","\x56\x65\x72\x74\x69\x63\x61\x6C\x41\x6C\x69\x67\x6E","\x57\x69\x64\x74\x68","\x48\x65\x69\x67\x68\x74","\x53\x70\x61\x63\x69\x6E\x67","\x41\x72\x63\x53\x70\x61\x63\x69\x6E\x67","\x67\x65\x74\x41\x72\x63\x53\x69\x7A\x65","\x41\x4C\x49\x47\x4E\x5F\x43\x45\x4E\x54\x45\x52","\x41\x4C\x49\x47\x4E\x5F\x52\x49\x47\x48\x54","\x41\x4C\x49\x47\x4E\x5F\x4D\x49\x44\x44\x4C\x45","\x41\x4C\x49\x47\x4E\x5F\x42\x4F\x54\x54\x4F\x4D","\x73\x61\x76\x65","\x70\x61\x69\x6E\x74\x56\x65\x72\x74\x65\x78\x53\x68\x61\x70\x65","\x72\x65\x73\x74\x6F\x72\x65","\x65\x78\x74","\x6D\x65\x73\x73\x61\x67\x65","\x61\x64\x64\x50\x69\x70\x65","\x63\x75\x72\x76\x65\x54\x6F","\x75\x6D\x6C\x41\x63\x74\x6F\x72","\x6C\x6F\x6C\x6C\x69\x70\x6F\x70","\x6A\x65\x74\x74\x79\x57\x69\x64\x74\x68","\x6A\x65\x74\x74\x79\x48\x65\x69\x67\x68\x74","\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74","\x6F\x75\x74\x65\x72\x53\x74\x72\x6F\x6B\x65","\x65\x6C\x6C\x69\x70\x73\x65","\x66\x69\x6C\x6C\x41\x6E\x64\x53\x74\x72\x6F\x6B\x65","\x73\x65\x74\x53\x68\x61\x64\x6F\x77","\x65\x6E\x64\x53\x74\x61\x74\x65","\x73\x74\x61\x72\x74\x53\x74\x61\x74\x65","\x69\x6E\x69\x74\x53\x68\x61\x70\x65\x73","\x78","\x79","\x77\x69\x64\x74\x68","\x68\x65\x69\x67\x68\x74","\x73\x68\x61\x70\x65\x73","\x70\x61\x69\x6E\x74\x45\x64\x67\x65\x53\x68\x61\x70\x65","\x6C\x65\x6E\x67\x74\x68","\x73\x71\x72\x74","\x6C\x69\x6E\x6B","\x64\x61\x73\x68","\x61\x64\x64\x4D\x61\x72\x6B\x65\x72","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x75\x73\x65\x47\x72\x69\x64\x46\x6F\x72\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65","\x69\x6E\x69\x74","\x68\x6F\x72\x69\x7A\x6F\x6E\x74\x61\x6C","\x73\x74\x61\x74\x65","\x67\x72\x61\x70\x68","\x76\x69\x65\x77","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x67\x65","\x73\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65","\x73\x72\x63","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x44\x49\x41\x4C\x45\x43\x54\x5F\x56\x4D\x4C","\x67\x65\x74\x4F\x76\x65\x72\x6C\x61\x79\x50\x61\x6E\x65","\x67\x65\x74\x56\x69\x65\x77","\x63\x75\x72\x73\x6F\x72","\x6E\x6F\x64\x65","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x43\x75\x72\x73\x6F\x72","\x72\x65\x64\x69\x72\x65\x63\x74\x4D\x6F\x75\x73\x65\x45\x76\x65\x6E\x74\x73","\x64\x65\x66\x61\x75\x6C\x74","\x72\x65\x64\x72\x61\x77","\x62\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x42\x6F\x75\x6E\x64\x73","\x64\x65\x73\x74\x72\x6F\x79","\x67\x65\x74\x48\x61\x6E\x64\x6C\x65\x46\x6F\x72\x45\x76\x65\x6E\x74","\x69\x73\x53\x6F\x75\x72\x63\x65","\x6D\x6F\x75\x73\x65\x4D\x6F\x76\x65","\x69\x73\x43\x6F\x6E\x73\x75\x6D\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74\x47\x72\x61\x70\x68\x58","\x67\x65\x74\x47\x72\x61\x70\x68\x59","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x50\x6F\x69\x6E\x74","\x67\x65\x74\x45\x76\x65\x6E\x74","\x69\x73\x47\x72\x69\x64\x45\x6E\x61\x62\x6C\x65\x64\x45\x76\x65\x6E\x74","\x73\x63\x61\x6C\x65","\x73\x6E\x61\x70","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65","\x6D\x6F\x76\x65\x53\x69\x7A\x65\x72\x54\x6F","\x63\x65\x6C\x6C\x52\x65\x6E\x64\x65\x72\x65\x72","\x63\x6F\x6E\x73\x75\x6D\x65","\x6D\x6F\x75\x73\x65\x55\x70","\x61\x70\x70\x6C\x79\x53\x74\x79\x6C\x65","\x72\x65\x73\x65\x74","\x67\x65\x74\x53\x68\x61\x70\x65\x52\x6F\x74\x61\x74\x69\x6F\x6E","\x73\x68\x61\x70\x65","\x74\x6F\x52\x61\x64\x69\x61\x6E\x73","\x63\x6F\x73","\x73\x69\x6E","\x69\x73\x50\x61\x69\x6E\x74\x42\x6F\x75\x6E\x64\x73\x49\x6E\x76\x65\x72\x74\x65\x64","\x67\x65\x74\x53\x70\x65\x63\x69\x61\x6C\x48\x61\x6E\x64\x6C\x65\x50\x6F\x69\x6E\x74","\x66\x6C\x69\x70\x48","\x66\x6C\x69\x70\x56","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x58","\x67\x65\x74\x43\x65\x6E\x74\x65\x72\x59","\x67\x65\x74\x52\x6F\x74\x61\x74\x65\x64\x50\x6F\x69\x6E\x74","\x75\x70\x64\x61\x74\x65\x53\x74\x79\x6C\x65\x55\x6E\x72\x6F\x74\x61\x74\x65\x64","\x72\x6F\x75\x6E\x64","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x62\x65\x67\x69\x6E\x55\x70\x64\x61\x74\x65","\x63\x65\x6C\x6C","\x73\x65\x74\x43\x65\x6C\x6C\x53\x74\x79\x6C\x65\x73","\x65\x6E\x64\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x72\x74\x53\x69\x7A\x65","\x64\x65\x66\x61\x75\x6C\x74\x56\x61\x6C\x75\x65","\x73\x63\x61\x6C\x65\x46\x61\x63\x74\x6F\x72","\x63\x72\x65\x61\x74\x65\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73","\x73\x74\x65\x6E\x63\x69\x6C","\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73"];(function(){function _0xbf45x1(){}_0xbf45x1[_0x75d1[0]]= new mxCylinder();_0xbf45x1[_0x75d1[0]][_0x75d1[1]]=_0xbf45x1;_0xbf45x1[_0x75d1[0]][_0x75d1[2]]=20;_0xbf45x1[_0x75d1[0]][_0x75d1[3]]=function(_0xbf45x2,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6,_0xbf45x7){var _0xbf45x8=Math[_0x75d1[6]](_0xbf45x5,Math[_0x75d1[6]](_0xbf45x6,mxUtils[_0x75d1[5]](this[_0x75d1[4]],_0x75d1[2],this[_0x75d1[2]])));if(_0xbf45x7){_0xbf45x2[_0x75d1[7]](_0xbf45x8,_0xbf45x6);_0xbf45x2[_0x75d1[8]](_0xbf45x8,_0xbf45x8);_0xbf45x2[_0x75d1[8]](0,0);_0xbf45x2[_0x75d1[7]](_0xbf45x8,_0xbf45x8);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x8);_0xbf45x2[_0x75d1[9]]()}else {_0xbf45x2[_0x75d1[7]](0,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5-_0xbf45x8,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x8);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x6);_0xbf45x2[_0x75d1[8]](_0xbf45x8,_0xbf45x6);_0xbf45x2[_0x75d1[8]](0,_0xbf45x6-_0xbf45x8);_0xbf45x2[_0x75d1[8]](0,0);_0xbf45x2[_0x75d1[10]]();_0xbf45x2[_0x75d1[9]]()}};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[11]]=_0xbf45x1;function _0xbf45x9(){}_0xbf45x9[_0x75d1[0]]= new mxCylinder();_0xbf45x9[_0x75d1[0]][_0x75d1[1]]=_0xbf45x9;_0xbf45x9[_0x75d1[0]][_0x75d1[2]]=30;_0xbf45x9[_0x75d1[0]][_0x75d1[3]]=function(_0xbf45x2,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6,_0xbf45x7){var _0xbf45x8=Math[_0x75d1[6]](_0xbf45x5,Math[_0x75d1[6]](_0xbf45x6,mxUtils[_0x75d1[5]](this[_0x75d1[4]],_0x75d1[2],this[_0x75d1[2]])));if(_0xbf45x7){_0xbf45x2[_0x75d1[7]](_0xbf45x5-_0xbf45x8,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5-_0xbf45x8,_0xbf45x8);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x8);_0xbf45x2[_0x75d1[9]]()}else {_0xbf45x2[_0x75d1[7]](0,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5-_0xbf45x8,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x8);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x6);_0xbf45x2[_0x75d1[8]](0,_0xbf45x6);_0xbf45x2[_0x75d1[8]](0,0);_0xbf45x2[_0x75d1[10]]();_0xbf45x2[_0x75d1[9]]()}};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[13]]=_0xbf45x9;function _0xbf45xa(){}_0xbf45xa[_0x75d1[0]]= new mxCylinder();_0xbf45xa[_0x75d1[0]][_0x75d1[1]]=_0xbf45xa;_0xbf45xa[_0x75d1[0]][_0x75d1[14]]=60;_0xbf45xa[_0x75d1[0]][_0x75d1[15]]=20;_0xbf45xa[_0x75d1[0]][_0x75d1[16]]=_0x75d1[17];_0xbf45xa[_0x75d1[0]][_0x75d1[3]]=function(_0xbf45x2,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6,_0xbf45x7){var _0xbf45xb=mxUtils[_0x75d1[5]](this[_0x75d1[4]],_0x75d1[14],this[_0x75d1[14]]);var _0xbf45xc=mxUtils[_0x75d1[5]](this[_0x75d1[4]],_0x75d1[15],this[_0x75d1[15]]);var _0xbf45xd=mxUtils[_0x75d1[5]](this[_0x75d1[4]],_0x75d1[16],this[_0x75d1[16]]);var _0xbf45xe=Math[_0x75d1[6]](_0xbf45x5,_0xbf45xb);var _0xbf45xf=Math[_0x75d1[6]](_0xbf45x6,_0xbf45xc);if(_0xbf45x7){if(_0xbf45xd==_0x75d1[18]){_0xbf45x2[_0x75d1[7]](0,_0xbf45xf);_0xbf45x2[_0x75d1[8]](_0xbf45xe,_0xbf45xf)}else {_0xbf45x2[_0x75d1[7]](_0xbf45x5-_0xbf45xe,_0xbf45xf);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45xf)};_0xbf45x2[_0x75d1[9]]()}else {if(_0xbf45xd==_0x75d1[18]){_0xbf45x2[_0x75d1[7]](0,0);_0xbf45x2[_0x75d1[8]](_0xbf45xe,0);_0xbf45x2[_0x75d1[8]](_0xbf45xe,_0xbf45xf);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45xf)}else {_0xbf45x2[_0x75d1[7]](0,_0xbf45xf);_0xbf45x2[_0x75d1[8]](_0xbf45x5-_0xbf45xe,_0xbf45xf);_0xbf45x2[_0x75d1[8]](_0xbf45x5-_0xbf45xe,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5,0)};_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x6);_0xbf45x2[_0x75d1[8]](0,_0xbf45x6);_0xbf45x2[_0x75d1[8]](0,_0xbf45xf);_0xbf45x2[_0x75d1[10]]();_0xbf45x2[_0x75d1[9]]()}};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[19]]=_0xbf45xa;function _0xbf45x10(){}_0xbf45x10[_0x75d1[0]]= new mxCylinder();_0xbf45x10[_0x75d1[0]][_0x75d1[1]]=_0xbf45x10;_0xbf45x10[_0x75d1[0]][_0x75d1[2]]=30;_0xbf45x10[_0x75d1[0]][_0x75d1[3]]=function(_0xbf45x2,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6,_0xbf45x7){var _0xbf45x8=Math[_0x75d1[6]](_0xbf45x5,Math[_0x75d1[6]](_0xbf45x6,mxUtils[_0x75d1[5]](this[_0x75d1[4]],_0x75d1[2],this[_0x75d1[2]])));if(!_0xbf45x7){_0xbf45x2[_0x75d1[7]](_0xbf45x8,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x6);_0xbf45x2[_0x75d1[8]](0,_0xbf45x6);_0xbf45x2[_0x75d1[8]](0,_0xbf45x8);_0xbf45x2[_0x75d1[8]](_0xbf45x8,0);_0xbf45x2[_0x75d1[10]]();_0xbf45x2[_0x75d1[9]]()}};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[20]]=_0xbf45x10;function _0xbf45x11(){}_0xbf45x11[_0x75d1[0]]= new mxCylinder();_0xbf45x11[_0x75d1[0]][_0x75d1[1]]=_0xbf45x11;_0xbf45x11[_0x75d1[0]][_0x75d1[2]]=0.4;_0xbf45x11[_0x75d1[0]][_0x75d1[3]]=function(_0xbf45x2,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6,_0xbf45x7){var _0xbf45x8=mxUtils[_0x75d1[5]](this[_0x75d1[4]],_0x75d1[2],this[_0x75d1[2]]);var _0xbf45xf=_0xbf45x6*_0xbf45x8;var _0xbf45x12=1.4;if(!_0xbf45x7){_0xbf45x2[_0x75d1[7]](0,_0xbf45xf/2);_0xbf45x2[_0x75d1[21]](_0xbf45x5/4,_0xbf45xf*_0xbf45x12,_0xbf45x5/2,_0xbf45xf/2);_0xbf45x2[_0x75d1[21]](_0xbf45x5*3/4,_0xbf45xf*(1-_0xbf45x12),_0xbf45x5,_0xbf45xf/2);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x6-_0xbf45xf/2);_0xbf45x2[_0x75d1[21]](_0xbf45x5*3/4,_0xbf45x6-_0xbf45xf*_0xbf45x12,_0xbf45x5/2,_0xbf45x6-_0xbf45xf/2);_0xbf45x2[_0x75d1[21]](_0xbf45x5/4,_0xbf45x6-_0xbf45xf*(1-_0xbf45x12),0,_0xbf45x6-_0xbf45xf/2);_0xbf45x2[_0x75d1[8]](0,_0xbf45xf/2);_0xbf45x2[_0x75d1[10]]();_0xbf45x2[_0x75d1[9]]()}};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[22]]=_0xbf45x11;function _0xbf45x13(){}_0xbf45x13[_0x75d1[0]]= new mxCylinder();_0xbf45x13[_0x75d1[0]][_0x75d1[1]]=_0xbf45x13;_0xbf45x13[_0x75d1[0]][_0x75d1[2]]=0.2;_0xbf45x13[_0x75d1[0]][_0x75d1[3]]=function(_0xbf45x2,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6,_0xbf45x7){var _0xbf45x8=_0xbf45x5*mxUtils[_0x75d1[5]](this[_0x75d1[4]],_0x75d1[2],this[_0x75d1[2]]);if(!_0xbf45x7){_0xbf45x2[_0x75d1[7]](0,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5-_0xbf45x8,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x6/2);_0xbf45x2[_0x75d1[8]](_0xbf45x5-_0xbf45x8,_0xbf45x6);_0xbf45x2[_0x75d1[8]](0,_0xbf45x6);_0xbf45x2[_0x75d1[8]](_0xbf45x8,_0xbf45x6/2);_0xbf45x2[_0x75d1[10]]();_0xbf45x2[_0x75d1[9]]()}};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[23]]=_0xbf45x13;function _0xbf45x14(){mxRectangleShape[_0x75d1[24]](this)}mxUtils[_0x75d1[25]](_0xbf45x14,mxRectangleShape);_0xbf45x14[_0x75d1[0]][_0x75d1[26]]=function(){return false};_0xbf45x14[_0x75d1[0]][_0x75d1[27]]=function(_0xbf45x15,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6){var _0xbf45x16=Math[_0x75d1[6]](_0xbf45x5/5,_0xbf45x6/5)+1;_0xbf45x15[_0x75d1[28]]();_0xbf45x15[_0x75d1[7]](_0xbf45x3+_0xbf45x5/2,_0xbf45x4+_0xbf45x16);_0xbf45x15[_0x75d1[8]](_0xbf45x3+_0xbf45x5/2,_0xbf45x4+_0xbf45x6-_0xbf45x16);_0xbf45x15[_0x75d1[7]](_0xbf45x3+_0xbf45x16,_0xbf45x4+_0xbf45x6/2);_0xbf45x15[_0x75d1[8]](_0xbf45x3+_0xbf45x5-_0xbf45x16,_0xbf45x4+_0xbf45x6/2);_0xbf45x15[_0x75d1[9]]();_0xbf45x15[_0x75d1[29]]();mxRectangleShape[_0x75d1[0]][_0x75d1[27]][_0x75d1[30]](this,arguments)};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[31]]=_0xbf45x14;function _0xbf45x17(){mxRectangleShape[_0x75d1[24]](this)}mxUtils[_0x75d1[25]](_0xbf45x17,mxRectangleShape);_0xbf45x17[_0x75d1[0]][_0x75d1[26]]=function(){return false};_0xbf45x17[_0x75d1[0]][_0x75d1[27]]=function(_0xbf45x15,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6){if(this[_0x75d1[4]]!=null){if(this[_0x75d1[4]][_0x75d1[32]]==1){var _0xbf45x18=Math[_0x75d1[34]](2,this[_0x75d1[33]]+1);mxRectangleShape[_0x75d1[0]][_0x75d1[35]][_0x75d1[24]](this,_0xbf45x15,_0xbf45x3+_0xbf45x18,_0xbf45x4+_0xbf45x18,_0xbf45x5-2*_0xbf45x18,_0xbf45x6-2*_0xbf45x18);mxRectangleShape[_0x75d1[0]][_0x75d1[27]][_0x75d1[30]](this,arguments);_0xbf45x3+=_0xbf45x18;_0xbf45x4+=_0xbf45x18;_0xbf45x5-=2*_0xbf45x18;_0xbf45x6-=2*_0xbf45x18};_0xbf45x15[_0x75d1[36]](false);var _0xbf45x19=0;var _0xbf45x1a=null;do{_0xbf45x1a=mxCellRenderer[_0x75d1[0]][_0x75d1[12]][this[_0x75d1[4]][_0x75d1[37]+_0xbf45x19]];if(_0xbf45x1a!=null){var _0xbf45x1b=this[_0x75d1[4]][_0x75d1[37]+_0xbf45x19+_0x75d1[38]];var _0xbf45x1c=this[_0x75d1[4]][_0x75d1[37]+_0xbf45x19+_0x75d1[39]];var _0xbf45x1d=this[_0x75d1[4]][_0x75d1[37]+_0xbf45x19+_0x75d1[40]];var _0xbf45x1e=this[_0x75d1[4]][_0x75d1[37]+_0xbf45x19+_0x75d1[41]];var _0xbf45x1f=this[_0x75d1[4]][_0x75d1[37]+_0xbf45x19+_0x75d1[42]]||0;var _0xbf45x20=this[_0x75d1[4]][_0x75d1[37]+_0xbf45x19+_0x75d1[43]];if(_0xbf45x20!=null){_0xbf45x1f+=this[_0x75d1[44]](_0xbf45x5+this[_0x75d1[33]],_0xbf45x6+this[_0x75d1[33]])*_0xbf45x20};var _0xbf45x21=_0xbf45x3;var _0xbf45x22=_0xbf45x4;if(_0xbf45x1b==mxConstants[_0x75d1[45]]){_0xbf45x21+=(_0xbf45x5-_0xbf45x1d)/2}else {if(_0xbf45x1b==mxConstants[_0x75d1[46]]){_0xbf45x21+=_0xbf45x5-_0xbf45x1d-_0xbf45x1f}else {_0xbf45x21+=_0xbf45x1f}};if(_0xbf45x1c==mxConstants[_0x75d1[47]]){_0xbf45x22+=(_0xbf45x6-_0xbf45x1e)/2}else {if(_0xbf45x1c==mxConstants[_0x75d1[48]]){_0xbf45x22+=_0xbf45x6-_0xbf45x1e-_0xbf45x1f}else {_0xbf45x22+=_0xbf45x1f}};_0xbf45x15[_0x75d1[49]]();var _0xbf45x23= new _0xbf45x1a();_0xbf45x23[_0x75d1[4]]=this[_0x75d1[4]];_0xbf45x1a[_0x75d1[0]][_0x75d1[50]][_0x75d1[24]](_0xbf45x23,_0xbf45x15,_0xbf45x21,_0xbf45x22,_0xbf45x1d,_0xbf45x1e);_0xbf45x15[_0x75d1[51]]()};_0xbf45x19++}while(_0xbf45x1a!=null);}};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[52]]=_0xbf45x17;function _0xbf45x24(){}_0xbf45x24[_0x75d1[0]]= new mxCylinder();_0xbf45x24[_0x75d1[0]][_0x75d1[1]]=_0xbf45x24;_0xbf45x24[_0x75d1[0]][_0x75d1[3]]=function(_0xbf45x2,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6,_0xbf45x7){if(_0xbf45x7){_0xbf45x2[_0x75d1[7]](0,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5/2,_0xbf45x6/2);_0xbf45x2[_0x75d1[8]](_0xbf45x5,0);_0xbf45x2[_0x75d1[9]]()}else {_0xbf45x2[_0x75d1[7]](0,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x6);_0xbf45x2[_0x75d1[8]](0,_0xbf45x6);_0xbf45x2[_0x75d1[10]]()}};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[53]]=_0xbf45x24;function _0xbf45x25(){}_0xbf45x25[_0x75d1[0]]= new mxCylinder();_0xbf45x25[_0x75d1[0]][_0x75d1[1]]=_0xbf45x25;_0xbf45x25[_0x75d1[0]][_0x75d1[54]]=true;_0xbf45x25[_0x75d1[0]][_0x75d1[3]]=function(_0xbf45x2,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6,_0xbf45x7){var _0xbf45x1d=_0xbf45x5/3;var _0xbf45x1e=_0xbf45x6/4;if(!_0xbf45x7){_0xbf45x2[_0x75d1[7]](_0xbf45x5/2,_0xbf45x1e);_0xbf45x2[_0x75d1[55]](_0xbf45x5/2-_0xbf45x1d,_0xbf45x1e,_0xbf45x5/2-_0xbf45x1d,0,_0xbf45x5/2,0);_0xbf45x2[_0x75d1[55]](_0xbf45x5/2+_0xbf45x1d,0,_0xbf45x5/2+_0xbf45x1d,_0xbf45x1e,_0xbf45x5/2,_0xbf45x1e);_0xbf45x2[_0x75d1[10]]();_0xbf45x2[_0x75d1[7]](_0xbf45x5/2,_0xbf45x1e);_0xbf45x2[_0x75d1[8]](_0xbf45x5/2,2*_0xbf45x6/3);_0xbf45x2[_0x75d1[7]](_0xbf45x5/2,_0xbf45x6/3);_0xbf45x2[_0x75d1[8]](0,_0xbf45x6/3);_0xbf45x2[_0x75d1[7]](_0xbf45x5/2,_0xbf45x6/3);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x6/3);_0xbf45x2[_0x75d1[7]](_0xbf45x5/2,2*_0xbf45x6/3);_0xbf45x2[_0x75d1[8]](0,_0xbf45x6);_0xbf45x2[_0x75d1[7]](_0xbf45x5/2,2*_0xbf45x6/3);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x6);_0xbf45x2[_0x75d1[9]]()}};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[56]]=_0xbf45x25;function _0xbf45x26(){}_0xbf45x26[_0x75d1[0]]= new mxCylinder();_0xbf45x26[_0x75d1[0]][_0x75d1[1]]=_0xbf45x26;_0xbf45x26[_0x75d1[0]][_0x75d1[2]]=10;_0xbf45x26[_0x75d1[0]][_0x75d1[54]]=true;_0xbf45x26[_0x75d1[0]][_0x75d1[3]]=function(_0xbf45x2,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6,_0xbf45x7){var _0xbf45x27=mxUtils[_0x75d1[5]](this[_0x75d1[4]],_0x75d1[2],this[_0x75d1[2]]);var _0xbf45x1d=_0xbf45x27*2/3;var _0xbf45x1e=_0xbf45x27;if(!_0xbf45x7){_0xbf45x2[_0x75d1[7]](_0xbf45x5/2,_0xbf45x1e);_0xbf45x2[_0x75d1[55]](_0xbf45x5/2-_0xbf45x1d,_0xbf45x1e,_0xbf45x5/2-_0xbf45x1d,0,_0xbf45x5/2,0);_0xbf45x2[_0x75d1[55]](_0xbf45x5/2+_0xbf45x1d,0,_0xbf45x5/2+_0xbf45x1d,_0xbf45x1e,_0xbf45x5/2,_0xbf45x1e);_0xbf45x2[_0x75d1[10]]();_0xbf45x2[_0x75d1[7]](_0xbf45x5/2,_0xbf45x1e);_0xbf45x2[_0x75d1[8]](_0xbf45x5/2,_0xbf45x6);_0xbf45x2[_0x75d1[9]]()}};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[57]]=_0xbf45x26;function _0xbf45x28(){}_0xbf45x28[_0x75d1[0]]= new mxCylinder();_0xbf45x28[_0x75d1[0]][_0x75d1[1]]=_0xbf45x28;_0xbf45x28[_0x75d1[0]][_0x75d1[58]]=32;_0xbf45x28[_0x75d1[0]][_0x75d1[59]]=12;_0xbf45x28[_0x75d1[0]][_0x75d1[3]]=function(_0xbf45x2,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6,_0xbf45x7){var _0xbf45xe=mxUtils[_0x75d1[5]](this[_0x75d1[4]],_0x75d1[58],this[_0x75d1[58]]);var _0xbf45xf=mxUtils[_0x75d1[5]](this[_0x75d1[4]],_0x75d1[59],this[_0x75d1[59]]);var _0xbf45x29=_0xbf45xe/2;var _0xbf45x2a=_0xbf45x29+_0xbf45xe/2;var _0xbf45x2b=0.3*_0xbf45x6-_0xbf45xf/2;var _0xbf45x2c=0.7*_0xbf45x6-_0xbf45xf/2;if(_0xbf45x7){_0xbf45x2[_0x75d1[7]](_0xbf45x29,_0xbf45x2b);_0xbf45x2[_0x75d1[8]](_0xbf45x2a,_0xbf45x2b);_0xbf45x2[_0x75d1[8]](_0xbf45x2a,_0xbf45x2b+_0xbf45xf);_0xbf45x2[_0x75d1[8]](_0xbf45x29,_0xbf45x2b+_0xbf45xf);_0xbf45x2[_0x75d1[7]](_0xbf45x29,_0xbf45x2c);_0xbf45x2[_0x75d1[8]](_0xbf45x2a,_0xbf45x2c);_0xbf45x2[_0x75d1[8]](_0xbf45x2a,_0xbf45x2c+_0xbf45xf);_0xbf45x2[_0x75d1[8]](_0xbf45x29,_0xbf45x2c+_0xbf45xf);_0xbf45x2[_0x75d1[9]]()}else {_0xbf45x2[_0x75d1[7]](_0xbf45x29,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5,0);_0xbf45x2[_0x75d1[8]](_0xbf45x5,_0xbf45x6);_0xbf45x2[_0x75d1[8]](_0xbf45x29,_0xbf45x6);_0xbf45x2[_0x75d1[8]](_0xbf45x29,_0xbf45x2c+_0xbf45xf);_0xbf45x2[_0x75d1[8]](0,_0xbf45x2c+_0xbf45xf);_0xbf45x2[_0x75d1[8]](0,_0xbf45x2c);_0xbf45x2[_0x75d1[8]](_0xbf45x29,_0xbf45x2c);_0xbf45x2[_0x75d1[8]](_0xbf45x29,_0xbf45x2b+_0xbf45xf);_0xbf45x2[_0x75d1[8]](0,_0xbf45x2b+_0xbf45xf);_0xbf45x2[_0x75d1[8]](0,_0xbf45x2b);_0xbf45x2[_0x75d1[8]](_0xbf45x29,_0xbf45x2b);_0xbf45x2[_0x75d1[10]]();_0xbf45x2[_0x75d1[9]]()}};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[60]]=_0xbf45x28;function _0xbf45x2d(){}_0xbf45x2d[_0x75d1[0]]= new mxDoubleEllipse();_0xbf45x2d[_0x75d1[0]][_0x75d1[1]]=_0xbf45x2d;_0xbf45x2d[_0x75d1[0]][_0x75d1[61]]=true;_0xbf45x2d[_0x75d1[0]][_0x75d1[50]]=function(_0xbf45x15,_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6){var _0xbf45x18=Math[_0x75d1[6]](4,Math[_0x75d1[6]](_0xbf45x5/5,_0xbf45x6/5));if(_0xbf45x5>0&&_0xbf45x6>0){_0xbf45x15[_0x75d1[62]](_0xbf45x3+_0xbf45x18,_0xbf45x4+_0xbf45x18,_0xbf45x5-2*_0xbf45x18,_0xbf45x6-2*_0xbf45x18);_0xbf45x15[_0x75d1[63]]()};_0xbf45x15[_0x75d1[64]](false);if(this[_0x75d1[61]]){_0xbf45x15[_0x75d1[62]](_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6);_0xbf45x15[_0x75d1[29]]()}};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[65]]=_0xbf45x2d;function _0xbf45x2e(){}_0xbf45x2e[_0x75d1[0]]= new _0xbf45x2d();_0xbf45x2e[_0x75d1[0]][_0x75d1[1]]=_0xbf45x2e;_0xbf45x2e[_0x75d1[0]][_0x75d1[61]]=false;mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[66]]=_0xbf45x2e;var _0xbf45x2f=mxImageExport[_0x75d1[0]][_0x75d1[67]];mxImageExport[_0x75d1[0]][_0x75d1[67]]=function(){_0xbf45x2f[_0x75d1[30]](this,arguments);function _0xbf45x30(_0xbf45x31){return {drawShape:function(_0xbf45x32,_0xbf45x33,_0xbf45x34,_0xbf45x35){var _0xbf45x3=_0xbf45x34[_0x75d1[68]];var _0xbf45x4=_0xbf45x34[_0x75d1[69]];var _0xbf45x5=_0xbf45x34[_0x75d1[70]];var _0xbf45x6=_0xbf45x34[_0x75d1[71]];if(_0xbf45x35){var _0xbf45x18=Math[_0x75d1[6]](4,Math[_0x75d1[6]](_0xbf45x5/5,_0xbf45x6/5));_0xbf45x3+=_0xbf45x18;_0xbf45x4+=_0xbf45x18;_0xbf45x5-=2*_0xbf45x18;_0xbf45x6-=2*_0xbf45x18;if(_0xbf45x5>0&&_0xbf45x6>0){_0xbf45x32[_0x75d1[62]](_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6)};return true}else {_0xbf45x32[_0x75d1[63]]();if(_0xbf45x31){_0xbf45x32[_0x75d1[62]](_0xbf45x3,_0xbf45x4,_0xbf45x5,_0xbf45x6);_0xbf45x32[_0x75d1[29]]()}}}}}this[_0x75d1[72]][_0x75d1[65]]=_0xbf45x30(true);this[_0x75d1[72]][_0x75d1[66]]=_0xbf45x30(false)};function _0xbf45x36(){mxArrow[_0x75d1[24]](this)}mxUtils[_0x75d1[25]](_0xbf45x36,mxArrow);_0xbf45x36[_0x75d1[0]][_0x75d1[73]]=function(_0xbf45x15,_0xbf45x37){var _0xbf45x1d=10;var _0xbf45x38=_0xbf45x37[0];var _0xbf45x39=_0xbf45x37[_0xbf45x37[_0x75d1[74]]-1];var _0xbf45xe=_0xbf45x39[_0x75d1[68]]-_0xbf45x38[_0x75d1[68]];var _0xbf45xf=_0xbf45x39[_0x75d1[69]]-_0xbf45x38[_0x75d1[69]];var _0xbf45x3a=Math[_0x75d1[75]](_0xbf45xe*_0xbf45xe+_0xbf45xf*_0xbf45xf);var _0xbf45x3b=_0xbf45x3a;var _0xbf45x3c=_0xbf45xe/_0xbf45x3a;var _0xbf45x3d=_0xbf45xf/_0xbf45x3a;var _0xbf45x3e=_0xbf45x3b*_0xbf45x3c;var _0xbf45x3f=_0xbf45x3b*_0xbf45x3d;var _0xbf45x40=_0xbf45x1d*_0xbf45x3d/3;var _0xbf45x41=-_0xbf45x1d*_0xbf45x3c/3;var _0xbf45x42=_0xbf45x38[_0x75d1[68]]-_0xbf45x40/2;var _0xbf45x43=_0xbf45x38[_0x75d1[69]]-_0xbf45x41/2;var _0xbf45x44=_0xbf45x42+_0xbf45x40;var _0xbf45x45=_0xbf45x43+_0xbf45x41;var _0xbf45x46=_0xbf45x44+_0xbf45x3e;var _0xbf45x47=_0xbf45x45+_0xbf45x3f;var _0xbf45x48=_0xbf45x46+_0xbf45x40;var _0xbf45x49=_0xbf45x47+_0xbf45x41;var _0xbf45x4a=_0xbf45x48-3*_0xbf45x40;var _0xbf45x4b=_0xbf45x49-3*_0xbf45x41;_0xbf45x15[_0x75d1[28]]();_0xbf45x15[_0x75d1[7]](_0xbf45x44,_0xbf45x45);_0xbf45x15[_0x75d1[8]](_0xbf45x46,_0xbf45x47);_0xbf45x15[_0x75d1[7]](_0xbf45x4a+_0xbf45x40,_0xbf45x4b+_0xbf45x41);_0xbf45x15[_0x75d1[8]](_0xbf45x42,_0xbf45x43);_0xbf45x15[_0x75d1[29]]()};mxCellRenderer[_0x75d1[0]][_0x75d1[12]][_0x75d1[76]]=_0xbf45x36;mxMarker[_0x75d1[78]](_0x75d1[77],function(_0xbf45x32,_0xbf45x1a,_0xbf45x4c,_0xbf45x39,_0xbf45x4d,_0xbf45x4e,_0xbf45x4f,_0xbf45x50,_0xbf45x51,_0xbf45x52){var _0xbf45x3c=_0xbf45x4d*(_0xbf45x4f+_0xbf45x51+1);var _0xbf45x3d=_0xbf45x4e*(_0xbf45x4f+_0xbf45x51+1);return function(){_0xbf45x32[_0x75d1[28]]();_0xbf45x32[_0x75d1[7]](_0xbf45x39[_0x75d1[68]]-_0xbf45x3c/2-_0xbf45x3d/2,_0xbf45x39[_0x75d1[69]]-_0xbf45x3d/2+_0xbf45x3c/2);_0xbf45x32[_0x75d1[8]](_0xbf45x39[_0x75d1[68]]+_0xbf45x3d/2-3*_0xbf45x3c/2,_0xbf45x39[_0x75d1[69]]-3*_0xbf45x3d/2-_0xbf45x3c/2);_0xbf45x32[_0x75d1[29]]()}});var _0xbf45x53=-99;if( typeof (mxVertexHandler)!=_0x75d1[79]){function _0xbf45x54(_0xbf45x33){mxVertexHandler[_0x75d1[24]](this,_0xbf45x33)}mxUtils[_0x75d1[25]](_0xbf45x54,mxVertexHandler);_0xbf45x54[_0x75d1[0]][_0x75d1[80]]=false;_0xbf45x54[_0x75d1[0]][_0x75d1[81]]=function(){this[_0x75d1[82]]=mxUtils[_0x75d1[5]](this[_0x75d1[83]][_0x75d1[4]],mxConstants.STYLE_HORIZONTAL,true);var _0xbf45x55=this[_0x75d1[83]][_0x75d1[85]][_0x75d1[84]];if(this[_0x75d1[86]]!=null){var _0xbf45x34= new mxRectangle(0,0,this[_0x75d1[86]][_0x75d1[70]],this[_0x75d1[86]][_0x75d1[71]]);this[_0x75d1[87]]= new mxImageShape(_0xbf45x34,this[_0x75d1[86]][_0x75d1[88]])}else {var _0xbf45x4f=10;var _0xbf45x34= new mxRectangle(0,0,_0xbf45x4f,_0xbf45x4f);this[_0x75d1[87]]= new mxRhombus(_0xbf45x34,mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};this[_0x75d1[87]][_0x75d1[89]]=(_0xbf45x55[_0x75d1[89]]!=mxConstants[_0x75d1[90]])?mxConstants[_0x75d1[91]]:mxConstants[_0x75d1[90]];this[_0x75d1[87]][_0x75d1[81]](_0xbf45x55[_0x75d1[93]]()[_0x75d1[92]]());this[_0x75d1[87]][_0x75d1[95]][_0x75d1[4]][_0x75d1[94]]=this[_0x75d1[96]]();mxEvent[_0x75d1[97]](this[_0x75d1[87]][_0x75d1[95]],_0xbf45x55,this[_0x75d1[83]]);mxVertexHandler[_0x75d1[0]][_0x75d1[81]][_0x75d1[30]](this,arguments)};_0xbf45x54[_0x75d1[0]][_0x75d1[96]]=function(){return _0x75d1[98]};_0xbf45x54[_0x75d1[0]][_0x75d1[99]]=function(){mxVertexHandler[_0x75d1[0]][_0x75d1[99]][_0x75d1[30]](this,arguments);var _0xbf45x4f=this[_0x75d1[87]][_0x75d1[100]][_0x75d1[70]];this[_0x75d1[87]][_0x75d1[100]]=this[_0x75d1[101]](_0xbf45x4f);this[_0x75d1[87]][_0x75d1[99]]()};_0xbf45x54[_0x75d1[0]][_0x75d1[102]]=function(){mxVertexHandler[_0x75d1[0]][_0x75d1[102]][_0x75d1[30]](this,arguments);if(this[_0x75d1[87]]!=null){this[_0x75d1[87]][_0x75d1[102]]();this[_0x75d1[87]]=null}};_0xbf45x54[_0x75d1[0]][_0x75d1[103]]=function(_0xbf45x56){if(_0xbf45x56[_0x75d1[104]](this[_0x75d1[87]])){return _0xbf45x53};return mxVertexHandler[_0x75d1[0]][_0x75d1[103]][_0x75d1[30]](this,arguments)};_0xbf45x54[_0x75d1[0]][_0x75d1[105]]=function(_0xbf45x57,_0xbf45x56){if(!_0xbf45x56[_0x75d1[106]]()&&this[_0x75d1[107]]==_0xbf45x53){var _0xbf45x58= new mxPoint(_0xbf45x56[_0x75d1[108]](),_0xbf45x56[_0x75d1[109]]());this[_0x75d1[110]](_0xbf45x58);var _0xbf45x59=this[_0x75d1[84]][_0x75d1[112]](_0xbf45x56[_0x75d1[111]]());var _0xbf45x5a=this[_0x75d1[84]][_0x75d1[93]]()[_0x75d1[113]];if(_0xbf45x59&&this[_0x75d1[80]]){_0xbf45x58[_0x75d1[68]]=this[_0x75d1[84]][_0x75d1[114]](_0xbf45x58[_0x75d1[68]]/_0xbf45x5a)*_0xbf45x5a;_0xbf45x58[_0x75d1[69]]=this[_0x75d1[84]][_0x75d1[114]](_0xbf45x58[_0x75d1[69]]/_0xbf45x5a)*_0xbf45x5a};this[_0x75d1[115]](_0xbf45x58);this[_0x75d1[116]](this[_0x75d1[87]],_0xbf45x58[_0x75d1[68]],_0xbf45x58[_0x75d1[69]]);this[_0x75d1[83]][_0x75d1[85]][_0x75d1[84]][_0x75d1[117]][_0x75d1[99]](this[_0x75d1[83]],true);_0xbf45x56[_0x75d1[118]]()}else {mxVertexHandler[_0x75d1[0]][_0x75d1[105]][_0x75d1[30]](this,arguments)}};_0xbf45x54[_0x75d1[0]][_0x75d1[119]]=function(_0xbf45x57,_0xbf45x56){if(!_0xbf45x56[_0x75d1[106]]()&&this[_0x75d1[107]]==_0xbf45x53){this[_0x75d1[120]]();this[_0x75d1[121]]();_0xbf45x56[_0x75d1[118]]()}else {mxVertexHandler[_0x75d1[0]][_0x75d1[119]][_0x75d1[30]](this,arguments)}};_0xbf45x54[_0x75d1[0]][_0x75d1[101]]=function(_0xbf45x4f){var _0xbf45x5b=this[_0x75d1[83]][_0x75d1[123]][_0x75d1[122]]();var _0xbf45x5c=mxUtils[_0x75d1[124]](_0xbf45x5b);var _0xbf45x5d=Math[_0x75d1[125]](_0xbf45x5c);var _0xbf45x5e=Math[_0x75d1[126]](_0xbf45x5c);var _0xbf45x34= new mxRectangle(this[_0x75d1[83]][_0x75d1[68]],this[_0x75d1[83]][_0x75d1[69]],this[_0x75d1[83]][_0x75d1[70]],this[_0x75d1[83]][_0x75d1[71]]);if(this[_0x75d1[83]][_0x75d1[123]][_0x75d1[127]]()){var _0xbf45x5f=(_0xbf45x34[_0x75d1[70]]-_0xbf45x34[_0x75d1[71]])/2;_0xbf45x34[_0x75d1[68]]+=_0xbf45x5f;_0xbf45x34[_0x75d1[69]]-=_0xbf45x5f;var _0xbf45x23=_0xbf45x34[_0x75d1[70]];_0xbf45x34[_0x75d1[70]]=_0xbf45x34[_0x75d1[71]];_0xbf45x34[_0x75d1[71]]=_0xbf45x23};var _0xbf45x60=this[_0x75d1[128]](_0xbf45x34);if(this[_0x75d1[83]][_0x75d1[123]][_0x75d1[129]]){_0xbf45x60[_0x75d1[68]]=2*_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]-_0xbf45x60[_0x75d1[68]]};if(this[_0x75d1[83]][_0x75d1[123]][_0x75d1[130]]){_0xbf45x60[_0x75d1[69]]=2*_0xbf45x34[_0x75d1[69]]+_0xbf45x34[_0x75d1[71]]-_0xbf45x60[_0x75d1[69]]};_0xbf45x60=mxUtils[_0x75d1[133]](_0xbf45x60,_0xbf45x5d,_0xbf45x5e, new mxPoint(this[_0x75d1[83]][_0x75d1[131]](),this[_0x75d1[83]][_0x75d1[132]]()));return  new mxRectangle(_0xbf45x60[_0x75d1[68]]-_0xbf45x4f/2,_0xbf45x60[_0x75d1[69]]-_0xbf45x4f/2,_0xbf45x4f,_0xbf45x4f)};_0xbf45x54[_0x75d1[0]][_0x75d1[128]]=function(_0xbf45x34){return null};_0xbf45x54[_0x75d1[0]][_0x75d1[115]]=function(_0xbf45x58){};_0xbf45x54[_0x75d1[0]][_0x75d1[110]]=function(_0xbf45x58){_0xbf45x58[_0x75d1[68]]=Math[_0x75d1[34]](this[_0x75d1[83]][_0x75d1[68]],Math[_0x75d1[6]](this[_0x75d1[83]][_0x75d1[68]]+this[_0x75d1[83]][_0x75d1[70]],_0xbf45x58[_0x75d1[68]]));_0xbf45x58[_0x75d1[69]]=Math[_0x75d1[34]](this[_0x75d1[83]][_0x75d1[69]],Math[_0x75d1[6]](this[_0x75d1[83]][_0x75d1[69]]+this[_0x75d1[83]][_0x75d1[71]],_0xbf45x58[_0x75d1[69]]))};_0xbf45x54[_0x75d1[0]][_0x75d1[120]]=function(){};function _0xbf45x61(_0xbf45x33){_0xbf45x54[_0x75d1[24]](this,_0xbf45x33)}mxUtils[_0x75d1[25]](_0xbf45x61,_0xbf45x54);_0xbf45x61[_0x75d1[0]][_0x75d1[128]]=function(_0xbf45x34){var _0xbf45x5a=this[_0x75d1[84]][_0x75d1[93]]()[_0x75d1[113]];var _0xbf45xb=Math[_0x75d1[6]](_0xbf45x34[_0x75d1[70]],mxUtils[_0x75d1[5]](this[_0x75d1[83]][_0x75d1[4]],_0x75d1[14],60)*_0xbf45x5a);var _0xbf45xc=Math[_0x75d1[6]](_0xbf45x34[_0x75d1[71]],mxUtils[_0x75d1[5]](this[_0x75d1[83]][_0x75d1[4]],_0x75d1[15],20)*_0xbf45x5a);var _0xbf45xd=mxUtils[_0x75d1[5]](this[_0x75d1[83]][_0x75d1[4]],_0x75d1[16],_0x75d1[17]);var _0xbf45x3=(_0xbf45xd==_0x75d1[18])?_0xbf45x34[_0x75d1[68]]+_0xbf45xb:_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]-_0xbf45xb;return  new mxPoint(_0xbf45x3,_0xbf45x34[_0x75d1[69]]+_0xbf45xc)};_0xbf45x61[_0x75d1[0]][_0x75d1[115]]=function(_0xbf45x58){var _0xbf45x5b=this[_0x75d1[83]][_0x75d1[123]][_0x75d1[122]]();var _0xbf45x5c=mxUtils[_0x75d1[124]](_0xbf45x5b);var _0xbf45x5d=Math[_0x75d1[125]](-_0xbf45x5c);var _0xbf45x5e=Math[_0x75d1[126]](-_0xbf45x5c);var _0xbf45x34= new mxRectangle(this[_0x75d1[83]][_0x75d1[68]],this[_0x75d1[83]][_0x75d1[69]],this[_0x75d1[83]][_0x75d1[70]],this[_0x75d1[83]][_0x75d1[71]]);if(this[_0x75d1[83]][_0x75d1[123]][_0x75d1[127]]()){var _0xbf45x5f=(_0xbf45x34[_0x75d1[70]]-_0xbf45x34[_0x75d1[71]])/2;_0xbf45x34[_0x75d1[68]]+=_0xbf45x5f;_0xbf45x34[_0x75d1[69]]-=_0xbf45x5f;var _0xbf45x23=_0xbf45x34[_0x75d1[70]];_0xbf45x34[_0x75d1[70]]=_0xbf45x34[_0x75d1[71]];_0xbf45x34[_0x75d1[71]]=_0xbf45x23};var _0xbf45x60= new mxPoint(_0xbf45x58[_0x75d1[68]],_0xbf45x58[_0x75d1[69]]);_0xbf45x60=mxUtils[_0x75d1[133]](_0xbf45x60,_0xbf45x5d,_0xbf45x5e, new mxPoint(this[_0x75d1[83]][_0x75d1[131]](),this[_0x75d1[83]][_0x75d1[132]]()));if(this[_0x75d1[83]][_0x75d1[123]][_0x75d1[129]]){_0xbf45x60[_0x75d1[68]]=2*_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]-_0xbf45x60[_0x75d1[68]]};if(this[_0x75d1[83]][_0x75d1[123]][_0x75d1[130]]){_0xbf45x60[_0x75d1[69]]=2*_0xbf45x34[_0x75d1[69]]+_0xbf45x34[_0x75d1[71]]-_0xbf45x60[_0x75d1[69]]};var _0xbf45x62=this[_0x75d1[134]](_0xbf45x60,_0xbf45x34);if(_0xbf45x62!=null){if(this[_0x75d1[83]][_0x75d1[123]][_0x75d1[129]]){_0xbf45x62[_0x75d1[68]]=2*_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]-_0xbf45x62[_0x75d1[68]]};if(this[_0x75d1[83]][_0x75d1[123]][_0x75d1[130]]){_0xbf45x62[_0x75d1[69]]=2*_0xbf45x34[_0x75d1[69]]+_0xbf45x34[_0x75d1[71]]-_0xbf45x62[_0x75d1[69]]};_0xbf45x5d=Math[_0x75d1[125]](_0xbf45x5c);_0xbf45x5e=Math[_0x75d1[126]](_0xbf45x5c);_0xbf45x62=mxUtils[_0x75d1[133]](_0xbf45x62,_0xbf45x5d,_0xbf45x5e, new mxPoint(this[_0x75d1[83]][_0x75d1[131]](),this[_0x75d1[83]][_0x75d1[132]]()));_0xbf45x58[_0x75d1[68]]=_0xbf45x62[_0x75d1[68]];_0xbf45x58[_0x75d1[69]]=_0xbf45x62[_0x75d1[69]]}};_0xbf45x61[_0x75d1[0]][_0x75d1[134]]=function(_0xbf45x60,_0xbf45x34){var _0xbf45xd=mxUtils[_0x75d1[5]](this[_0x75d1[83]][_0x75d1[4]],_0x75d1[16],_0x75d1[17]);var _0xbf45xb=(_0xbf45xd==_0x75d1[18])?_0xbf45x60[_0x75d1[68]]-_0xbf45x34[_0x75d1[68]]:_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]-_0xbf45x60[_0x75d1[68]];var _0xbf45xc=_0xbf45x60[_0x75d1[69]]-_0xbf45x34[_0x75d1[69]];var _0xbf45x5a=this[_0x75d1[84]][_0x75d1[93]]()[_0x75d1[113]];this[_0x75d1[83]][_0x75d1[4]][_0x75d1[14]]=Math[_0x75d1[135]](Math[_0x75d1[34]](1,_0xbf45xb)/_0xbf45x5a);this[_0x75d1[83]][_0x75d1[4]][_0x75d1[15]]=Math[_0x75d1[135]](Math[_0x75d1[34]](1,_0xbf45xc)/_0xbf45x5a)};_0xbf45x61[_0x75d1[0]][_0x75d1[120]]=function(){var _0xbf45x63=this[_0x75d1[84]][_0x75d1[136]]();_0xbf45x63[_0x75d1[137]]();try{this[_0x75d1[83]][_0x75d1[85]][_0x75d1[84]][_0x75d1[139]](_0x75d1[14],this[_0x75d1[83]][_0x75d1[4]][_0x75d1[14]],[this[_0x75d1[83]][_0x75d1[138]]]);this[_0x75d1[83]][_0x75d1[85]][_0x75d1[84]][_0x75d1[139]](_0x75d1[15],this[_0x75d1[83]][_0x75d1[4]][_0x75d1[15]],[this[_0x75d1[83]][_0x75d1[138]]])}finally{_0xbf45x63[_0x75d1[140]]()}};function _0xbf45x64(_0xbf45x33){_0xbf45x61[_0x75d1[24]](this,_0xbf45x33)}mxUtils[_0x75d1[25]](_0xbf45x64,_0xbf45x61);_0xbf45x64[_0x75d1[0]][_0x75d1[128]]=function(_0xbf45x34){var _0xbf45x5a=this[_0x75d1[84]][_0x75d1[93]]()[_0x75d1[113]];var _0xbf45x65=mxUtils[_0x75d1[5]](this[_0x75d1[83]][_0x75d1[4]],mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);return  new mxPoint(_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]/2,_0xbf45x34[_0x75d1[69]]+Math[_0x75d1[6]](_0xbf45x34[_0x75d1[71]],_0xbf45x65*_0xbf45x5a))};_0xbf45x64[_0x75d1[0]][_0x75d1[134]]=function(_0xbf45x58,_0xbf45x34){_0xbf45x58[_0x75d1[68]]=_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]/2;startSize=_0xbf45x58[_0x75d1[69]]-_0xbf45x34[_0x75d1[69]];var _0xbf45x5a=this[_0x75d1[84]][_0x75d1[93]]()[_0x75d1[113]];this[_0x75d1[83]][_0x75d1[4]][_0x75d1[141]]=Math[_0x75d1[135]](Math[_0x75d1[34]](1,startSize)/_0xbf45x5a);return _0xbf45x58};_0xbf45x64[_0x75d1[0]][_0x75d1[120]]=function(){this[_0x75d1[83]][_0x75d1[85]][_0x75d1[84]][_0x75d1[139]](_0x75d1[141],this[_0x75d1[83]][_0x75d1[4]][_0x75d1[141]],[this[_0x75d1[83]][_0x75d1[138]]])};function _0xbf45x66(_0xbf45x33){_0xbf45x61[_0x75d1[24]](this,_0xbf45x33)}mxUtils[_0x75d1[25]](_0xbf45x66,_0xbf45x61);_0xbf45x66[_0x75d1[0]][_0x75d1[142]]=20;_0xbf45x66[_0x75d1[0]][_0x75d1[143]]=1;_0xbf45x66[_0x75d1[0]][_0x75d1[128]]=function(_0xbf45x34){var _0xbf45x5a=this[_0x75d1[84]][_0x75d1[93]]()[_0x75d1[113]];var _0xbf45x67=Math[_0x75d1[6]](_0xbf45x34[_0x75d1[70]],Math[_0x75d1[6]](_0xbf45x34[_0x75d1[71]],mxUtils[_0x75d1[5]](this[_0x75d1[83]][_0x75d1[4]],_0x75d1[2],this[_0x75d1[142]])*_0xbf45x5a/this[_0x75d1[143]]));return  new mxPoint(_0xbf45x34[_0x75d1[68]]+_0xbf45x67,_0xbf45x34[_0x75d1[69]]+_0xbf45x67)};_0xbf45x66[_0x75d1[0]][_0x75d1[134]]=function(_0xbf45x60,_0xbf45x34){var _0xbf45x4f=Math[_0x75d1[34]](0,Math[_0x75d1[6]](Math[_0x75d1[6]](_0xbf45x34[_0x75d1[70]]/this[_0x75d1[143]],_0xbf45x60[_0x75d1[68]]-_0xbf45x34[_0x75d1[68]]),Math[_0x75d1[6]](_0xbf45x34[_0x75d1[71]]/this[_0x75d1[143]],_0xbf45x60[_0x75d1[69]]-_0xbf45x34[_0x75d1[69]])));var _0xbf45x5a=this[_0x75d1[84]][_0x75d1[93]]()[_0x75d1[113]];this[_0x75d1[83]][_0x75d1[4]][_0x75d1[2]]=Math[_0x75d1[135]](Math[_0x75d1[34]](1,_0xbf45x4f)/_0xbf45x5a)*this[_0x75d1[143]];return  new mxPoint(_0xbf45x34[_0x75d1[68]]+_0xbf45x4f,_0xbf45x34[_0x75d1[69]]+_0xbf45x4f)};_0xbf45x66[_0x75d1[0]][_0x75d1[120]]=function(){this[_0x75d1[83]][_0x75d1[85]][_0x75d1[84]][_0x75d1[139]](_0x75d1[2],this[_0x75d1[83]][_0x75d1[4]][_0x75d1[2]],[this[_0x75d1[83]][_0x75d1[138]]])};function _0xbf45x68(_0xbf45x33){_0xbf45x66[_0x75d1[24]](this,_0xbf45x33)}mxUtils[_0x75d1[25]](_0xbf45x68,_0xbf45x66);_0xbf45x68[_0x75d1[0]][_0x75d1[142]]=30;_0xbf45x68[_0x75d1[0]][_0x75d1[143]]=2;function _0xbf45x69(_0xbf45x33){_0xbf45x66[_0x75d1[24]](this,_0xbf45x33)}mxUtils[_0x75d1[25]](_0xbf45x69,_0xbf45x66);_0xbf45x69[_0x75d1[0]][_0x75d1[142]]=30;_0xbf45x69[_0x75d1[0]][_0x75d1[143]]=1;_0xbf45x69[_0x75d1[0]][_0x75d1[128]]=function(_0xbf45x34){var _0xbf45x5a=this[_0x75d1[84]][_0x75d1[93]]()[_0x75d1[113]];var _0xbf45x67=Math[_0x75d1[6]](_0xbf45x34[_0x75d1[70]],Math[_0x75d1[6]](_0xbf45x34[_0x75d1[71]],mxUtils[_0x75d1[5]](this[_0x75d1[83]][_0x75d1[4]],_0x75d1[2],this[_0x75d1[142]])*_0xbf45x5a/this[_0x75d1[143]]));return  new mxPoint(_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]-_0xbf45x67,_0xbf45x34[_0x75d1[69]]+_0xbf45x67)};_0xbf45x69[_0x75d1[0]][_0x75d1[134]]=function(_0xbf45x60,_0xbf45x34){var _0xbf45x4f=Math[_0x75d1[34]](0,Math[_0x75d1[6]](Math[_0x75d1[6]](_0xbf45x34[_0x75d1[70]]/this[_0x75d1[143]],_0xbf45x60[_0x75d1[68]]-_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]),Math[_0x75d1[6]](_0xbf45x34[_0x75d1[71]]/this[_0x75d1[143]],_0xbf45x60[_0x75d1[69]]-_0xbf45x34[_0x75d1[69]])));var _0xbf45x5a=this[_0x75d1[84]][_0x75d1[93]]()[_0x75d1[113]];this[_0x75d1[83]][_0x75d1[4]][_0x75d1[2]]=Math[_0x75d1[135]](Math[_0x75d1[34]](1,_0xbf45x4f)/_0xbf45x5a)*this[_0x75d1[143]];return  new mxPoint(_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]-_0xbf45x4f,_0xbf45x34[_0x75d1[69]]+_0xbf45x4f)};function _0xbf45x6a(_0xbf45x33){_0xbf45x66[_0x75d1[24]](this,_0xbf45x33)}mxUtils[_0x75d1[25]](_0xbf45x6a,_0xbf45x66);_0xbf45x6a[_0x75d1[0]][_0x75d1[142]]=0.2;_0xbf45x6a[_0x75d1[0]][_0x75d1[143]]=1;_0xbf45x6a[_0x75d1[0]][_0x75d1[128]]=function(_0xbf45x34){var _0xbf45x67=mxUtils[_0x75d1[5]](this[_0x75d1[83]][_0x75d1[4]],_0x75d1[2],this[_0x75d1[142]]);return  new mxPoint(_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]*_0xbf45x67,_0xbf45x34[_0x75d1[69]]+_0xbf45x34[_0x75d1[71]]/2)};_0xbf45x6a[_0x75d1[0]][_0x75d1[134]]=function(_0xbf45x60,_0xbf45x34){var _0xbf45x4f=Math[_0x75d1[6]](1,(_0xbf45x60[_0x75d1[68]]-_0xbf45x34[_0x75d1[68]])/_0xbf45x34[_0x75d1[70]]);this[_0x75d1[83]][_0x75d1[4]][_0x75d1[2]]=_0xbf45x4f;return  new mxPoint(_0xbf45x34[_0x75d1[68]]+_0xbf45x4f*_0xbf45x34[_0x75d1[70]],_0xbf45x34[_0x75d1[69]]+_0xbf45x34[_0x75d1[71]]/2)};function _0xbf45x6b(_0xbf45x33){_0xbf45x66[_0x75d1[24]](this,_0xbf45x33)}mxUtils[_0x75d1[25]](_0xbf45x6b,_0xbf45x66);_0xbf45x6b[_0x75d1[0]][_0x75d1[142]]=0.4;_0xbf45x6b[_0x75d1[0]][_0x75d1[143]]=1;_0xbf45x6b[_0x75d1[0]][_0x75d1[128]]=function(_0xbf45x34){var _0xbf45x67=mxUtils[_0x75d1[5]](this[_0x75d1[83]][_0x75d1[4]],_0x75d1[2],this[_0x75d1[142]]);return  new mxPoint(_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]/2,_0xbf45x34[_0x75d1[69]]+_0xbf45x67*_0xbf45x34[_0x75d1[71]]/2)};_0xbf45x6b[_0x75d1[0]][_0x75d1[134]]=function(_0xbf45x60,_0xbf45x34){var _0xbf45x4f=Math[_0x75d1[34]](0,Math[_0x75d1[6]](1,((_0xbf45x60[_0x75d1[69]]-_0xbf45x34[_0x75d1[69]])/_0xbf45x34[_0x75d1[71]])*2));this[_0x75d1[83]][_0x75d1[4]][_0x75d1[2]]=_0xbf45x4f;return  new mxPoint(_0xbf45x34[_0x75d1[68]]+_0xbf45x34[_0x75d1[70]]/2,_0xbf45x34[_0x75d1[69]]+_0xbf45x4f*_0xbf45x34[_0x75d1[71]]/2)};var _0xbf45x6c={"\x73\x77\x69\x6D\x6C\x61\x6E\x65":_0xbf45x64,"\x66\x6F\x6C\x64\x65\x72":_0xbf45x61,"\x63\x75\x62\x65":_0xbf45x66,"\x63\x61\x72\x64":_0xbf45x68,"\x6E\x6F\x74\x65":_0xbf45x69,"\x73\x74\x65\x70":_0xbf45x6a,"\x74\x61\x70\x65":_0xbf45x6b};var _0xbf45x6d=mxGraph[_0x75d1[0]][_0x75d1[144]];mxGraph[_0x75d1[0]][_0x75d1[144]]=function(_0xbf45x33){if(_0xbf45x33!=null){var _0xbf45x6e=_0xbf45x6c[_0xbf45x33[_0x75d1[4]][_0x75d1[123]]];if(_0xbf45x6e!=null){return  new _0xbf45x6e(_0xbf45x33)}};return _0xbf45x6d[_0x75d1[30]](this,arguments)}};mxGraph[_0x75d1[0]][_0x75d1[145]]=function(_0xbf45x6f,_0xbf45x50){if(_0xbf45x6f!=null&&_0xbf45x6f[_0x75d1[123]]!=null){if(_0xbf45x6f[_0x75d1[123]][_0x75d1[146]]!=null){if(_0xbf45x6f[_0x75d1[123]][_0x75d1[146]]!=null){return _0xbf45x6f[_0x75d1[123]][_0x75d1[146]][_0x75d1[147]]}}else {if(_0xbf45x6f[_0x75d1[123]][_0x75d1[147]]!=null){return _0xbf45x6f[_0x75d1[123]][_0x75d1[147]]}}};return null};mxRectangleShape[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0,0.25),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(1,0.25),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];mxLabel[_0x75d1[0]][_0x75d1[147]]=mxRectangleShape[_0x75d1[0]][_0x75d1[147]];mxImageShape[_0x75d1[0]][_0x75d1[147]]=mxRectangleShape[_0x75d1[0]][_0x75d1[147]];mxSwimlane[_0x75d1[0]][_0x75d1[147]]=mxRectangleShape[_0x75d1[0]][_0x75d1[147]];_0xbf45x14[_0x75d1[0]][_0x75d1[147]]=mxRectangleShape[_0x75d1[0]][_0x75d1[147]];_0xbf45x9[_0x75d1[0]][_0x75d1[147]]=mxRectangleShape[_0x75d1[0]][_0x75d1[147]];_0xbf45x10[_0x75d1[0]][_0x75d1[147]]=mxRectangleShape[_0x75d1[0]][_0x75d1[147]];_0xbf45x1[_0x75d1[0]][_0x75d1[147]]=mxRectangleShape[_0x75d1[0]][_0x75d1[147]];_0xbf45xa[_0x75d1[0]][_0x75d1[147]]=mxRectangleShape[_0x75d1[0]][_0x75d1[147]];mxCylinder[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0.15,0.05),false), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.85,0.05),false), new mxConnectionConstraint( new mxPoint(0,0.3),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.7),true), new mxConnectionConstraint( new mxPoint(1,0.3),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.7),true), new mxConnectionConstraint( new mxPoint(0.15,0.95),false), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.85,0.95),false)];_0xbf45x25[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0.1),false), new mxConnectionConstraint( new mxPoint(0.5,0),false), new mxConnectionConstraint( new mxPoint(0.75,0.1),false), new mxConnectionConstraint( new mxPoint(0,1/3),false), new mxConnectionConstraint( new mxPoint(0,1),false), new mxConnectionConstraint( new mxPoint(1,1/3),false), new mxConnectionConstraint( new mxPoint(1,1),false), new mxConnectionConstraint( new mxPoint(0.5,0.5),false)];_0xbf45x28[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0,0.3),true), new mxConnectionConstraint( new mxPoint(0,0.7),true), new mxConnectionConstraint( new mxPoint(1,0.25),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];mxActor[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.25,0.2),false), new mxConnectionConstraint( new mxPoint(0.1,0.5),false), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(0.75,0.25),false), new mxConnectionConstraint( new mxPoint(0.9,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.75),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true)];_0xbf45x11[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.35),false), new mxConnectionConstraint( new mxPoint(0,0.5),false), new mxConnectionConstraint( new mxPoint(0,0.65),false), new mxConnectionConstraint( new mxPoint(1,0.35),false), new mxConnectionConstraint( new mxPoint(1,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.65),false), new mxConnectionConstraint( new mxPoint(0.25,1),false), new mxConnectionConstraint( new mxPoint(0.75,0),false)];_0xbf45x13[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.75,0),true), new mxConnectionConstraint( new mxPoint(0.25,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.75,1),true), new mxConnectionConstraint( new mxPoint(0.1,0.25),false), new mxConnectionConstraint( new mxPoint(0.2,0.5),false), new mxConnectionConstraint( new mxPoint(0.1,0.75),false), new mxConnectionConstraint( new mxPoint(0.9,0.25),false), new mxConnectionConstraint( new mxPoint(1,0.5),false), new mxConnectionConstraint( new mxPoint(0.9,0.75),false)];mxLine[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.5),false), new mxConnectionConstraint( new mxPoint(0.25,0.5),false), new mxConnectionConstraint( new mxPoint(0.75,0.5),false), new mxConnectionConstraint( new mxPoint(1,0.5),false)];_0xbf45x26[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0.5,0),false), new mxConnectionConstraint( new mxPoint(0.5,1),false)];mxEllipse[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0,0),true), new mxConnectionConstraint( new mxPoint(1,0),true), new mxConnectionConstraint( new mxPoint(0,1),true), new mxConnectionConstraint( new mxPoint(1,1),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.5))];mxDoubleEllipse[_0x75d1[0]][_0x75d1[147]]=mxEllipse[_0x75d1[0]][_0x75d1[147]];mxRhombus[_0x75d1[0]][_0x75d1[147]]=mxEllipse[_0x75d1[0]][_0x75d1[147]];mxTriangle[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0,0.25),true), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0,0.75),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(1,0.5),true)];mxHexagon[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0.375,0),true), new mxConnectionConstraint( new mxPoint(0.5,0),true), new mxConnectionConstraint( new mxPoint(0.625,0),true), new mxConnectionConstraint( new mxPoint(0.125,0.25),false), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(0.125,0.75),false), new mxConnectionConstraint( new mxPoint(0.875,0.25),false), new mxConnectionConstraint( new mxPoint(0,0.5),true), new mxConnectionConstraint( new mxPoint(1,0.5),true), new mxConnectionConstraint( new mxPoint(0.875,0.75),false), new mxConnectionConstraint( new mxPoint(0.375,1),true), new mxConnectionConstraint( new mxPoint(0.5,1),true), new mxConnectionConstraint( new mxPoint(0.625,1),true)];mxCloud[_0x75d1[0]][_0x75d1[147]]=[ new mxConnectionConstraint( new mxPoint(0.25,0.25),false), new mxConnectionConstraint( new mxPoint(0.4,0.1),false), new mxConnectionConstraint( new mxPoint(0.16,0.55),false), new mxConnectionConstraint( new mxPoint(0.07,0.4),false), new mxConnectionConstraint( new mxPoint(0.31,0.8),false), new mxConnectionConstraint( new mxPoint(0.13,0.77),false), new mxConnectionConstraint( new mxPoint(0.8,0.8),false), new mxConnectionConstraint( new mxPoint(0.55,0.95),false), new mxConnectionConstraint( new mxPoint(0.875,0.5),false), new mxConnectionConstraint( new mxPoint(0.96,0.7),false), new mxConnectionConstraint( new mxPoint(0.625,0.2),false), new mxConnectionConstraint( new mxPoint(0.88,0.25),false)];mxArrow[_0x75d1[0]][_0x75d1[147]]=null})()
\ No newline at end of file
index bdcb8ea..113848e 100644 (file)
@@ -1,904 +1 @@
-'use strict';
-
-/**
- * Construcs a new sidebar for the given editor.
- */
-function Sidebar(editorUi, container) {
-       this.editorUi = editorUi;
-       this.container = container;
-       this.palettes = new Object();
-       this.showTooltips = true;
-       this.graph = new Graph(document.createElement('div'), null, null, this.editorUi
-               .editor.graph.getStylesheet());
-       this.graph.resetViewOnRootChange = false;
-       this.graph.foldingEnabled = false;
-       this.graph.setConnectable(false);
-       this.graph.autoScroll = false;
-       this.graph.setTooltips(false);
-       this.graph.setEnabled(false);
-
-       // Container must be in the DOM for correct HTML rendering
-       this.graph.container.style.visibility = 'hidden';
-       this.graph.container.style.position = 'absolute';
-       document.body.appendChild(this.graph.container);
-
-       if (!mxClient.IS_TOUCH) {
-               mxEvent.addListener(document, 'mouseup', mxUtils.bind(this, function() {
-                       this.showTooltips = true;
-               }));
-
-               // Enables tooltips after scroll
-               mxEvent.addListener(container, 'scroll', mxUtils.bind(this, function() {
-                       this.showTooltips = true;
-               }));
-
-               mxEvent.addListener(document, 'mousedown', mxUtils.bind(this, function() {
-                       this.showTooltips = false;
-                       this.hideTooltip();
-               }));
-
-               mxEvent.addListener(document, 'mousemove', mxUtils.bind(this, function(evt) {
-                       var src = mxEvent.getSource(evt);
-
-                       while (src != null) {
-                               if (src == this.currentElt) {
-                                       return;
-                               }
-
-                               src = src.parentNode;
-                       }
-
-                       this.hideTooltip();
-               }));
-
-               // Handles mouse leaving the window
-               mxEvent.addListener(document, 'mouseout', mxUtils.bind(this, function(evt) {
-                       if (evt.toElement == null && evt.relatedTarget == null) {
-                               this.hideTooltip();
-                       }
-               }));
-       }
-
-       this.init();
-
-       // Pre-fetches tooltip image
-       new Image().src = IMAGE_PATH + '/tooltip.png';
-};
-
-/**
- * Adds all palettes to the sidebar.
- */
-Sidebar.prototype.init = function() {
-       var dir = STENCIL_PATH;
-       console.log(dir);
-
-       this.addImagePalette('entry', mxResources.get('entry'), dir + '/entry/',
-               '_128x128.png', ['start', 'finally', 'end'], [mxResources.get('start'),
-                       mxResources.get('finally'), mxResources.get('end')
-               ]);
-       this.addImagePalette('call_management', mxResources.get('call_management'),
-               dir + '/call_management/', '_128x128.png', ['answer', 'hangup', 'dial',
-                       'ext_dial', 'queue', 'voicemail'
-                       // , 'callback'
-               ], [mxResources.get('answer'), mxResources.get('hangup'), mxResources.get(
-                               'dial'), mxResources.get('ext_dial'), mxResources.get('queue'),
-                       mxResources.get('voicemail')
-                       // , mxResources.get('callback')
-               ]);
-       this.addImagePalette('variable', mxResources.get('variable'), dir +
-               '/variable/', '_128x128.png', ['set', 'math'], [mxResources.get('set'),
-                       mxResources.get('math')
-               ]);
-       this.addImagePalette('playback', mxResources.get('playback'), dir +
-               '/playback/', '_128x128.png', ['playback', 'menu',
-                       'saydigits', 'saynumber', 'sayphonetic', 'tts', 'ispeechtts', 'getdigits'
-               ], [mxResources.get('playback'), mxResources
-                       .get('menu'), mxResources.get('saydigits'), mxResources.get('saynumber'),
-                       mxResources.get('sayphonetic'), mxResources.get('tts'), mxResources.get('ispeechtts'), mxResources.get('getdigits')
-               ]);
-       this.addImagePalette('recording', mxResources.get('recording'), dir +
-               '/recording/', '_128x128.png', ['record'], [mxResources.get('record')]);
-       this.addImagePalette('integrationServer', mxResources.get('integrationServer'),
-               dir + '/integration_server/', '_128x128.png', ['database', 'ispeechasr'], [
-                       mxResources.get('database'), mxResources.get('ispeechasr')
-               ]);
-       this.addImagePalette('callflow', mxResources.get('callflow'), dir +
-               '/callflow/', '_128x128.png', ['gotoc', 'gotoif', 'gotoiftime', 'vswitch'], [
-                       mxResources.get('gotoc'), mxResources.get('gotoif'), mxResources.get(
-                               'gotoiftime'), mxResources.get('vswitch')
-               ]);
-       this.addImagePalette('stats', mxResources.get('stats'), dir + '/stats/',
-               '_128x128.png', [
-                       // 'queuelog',
-                       'goal'
-               ], [
-                       // mxResources.get('queuelog'),
-                       mxResources.get('goal')
-               ]);
-       this.addImagePalette('general', mxResources.get('general'), dir + '/general/',
-               '_128x128.png', ['noop', 'system', 'agi', 'subproject', 'custom_app'], [mxResources.get(
-                       'noop'), mxResources.get('system'), mxResources.get('agi'), mxResources.get(
-                       'subproject'), mxResources.get(
-                       'custom_app')]);
-
-};
-
-/**
- * Specifies if tooltips should be visible. Default is true.
- */
-Sidebar.prototype.enableTooltips = !mxClient.IS_TOUCH;
-
-/**
- * Specifies the delay for the tooltip. Default is 16 px.
- */
-Sidebar.prototype.tooltipBorder = 16;
-
-/**
- * Specifies the delay for the tooltip. Default is 3 px.
- */
-Sidebar.prototype.thumbBorder = 3;
-
-/**
- * Specifies the delay for the tooltip. Default is 300 ms.
- */
-Sidebar.prototype.tooltipDelay = 300;
-
-/**
- * Specifies if edges should be used as templates if clicked. Default is true.
- */
-Sidebar.prototype.installEdges = true;
-
-/**
- * Specifies the URL of the gear image.
- */
-Sidebar.prototype.gearImage = STENCIL_PATH + '/clipart/Gear_128x128.png';
-
-/**
- * Specifies the width of the thumbnails.
- */
-Sidebar.prototype.thumbWidth = 34;
-
-/**
- * Specifies the height of the thumbnails.
- */
-Sidebar.prototype.thumbHeight = 34;
-
-/**
- * Specifies the padding for the thumbnails. Default is 3.
- */
-Sidebar.prototype.thumbPadding = 2;
-
-/**
- * Specifies the size of the sidebar titles.
- */
-Sidebar.prototype.sidebarTitleSize = 9;
-
-/**
- * Specifies if titles in the sidebar should be enabled.
- */
-Sidebar.prototype.sidebarTitles = false;
-
-/**
- * Specifies if titles in the tooltips should be enabled.
- */
-Sidebar.prototype.tooltipTitles = false;
-
-/**
- * Adds all palettes to the sidebar.
- */
-Sidebar.prototype.showTooltip = function(elt, cells, title, showLabel) {
-       if (this.enableTooltips && this.showTooltips) {
-               if (this.currentElt != elt) {
-                       if (this.thread != null) {
-                               window.clearTimeout(this.thread);
-                               this.thread = null;
-                       }
-
-                       var show = mxUtils.bind(this, function() {
-                               // Lazy creation of the DOM nodes and graph instance
-                               if (this.tooltip == null) {
-                                       this.tooltip = document.createElement('div');
-                                       this.tooltip.className = 'geSidebarTooltip';
-                                       document.body.appendChild(this.tooltip);
-
-                                       this.graph2 = new Graph(this.tooltip, null, null, this.editorUi.editor.graph
-                                               .getStylesheet());
-                                       this.graph2.view.setTranslate(this.tooltipBorder, this.tooltipBorder);
-                                       this.graph2.resetViewOnRootChange = false;
-                                       this.graph2.foldingEnabled = false;
-                                       this.graph2.autoScroll = false;
-                                       this.graph2.setTooltips(false);
-                                       this.graph2.setConnectable(false);
-                                       this.graph2.setEnabled(false);
-
-                                       if (!mxClient.IS_SVG) {
-                                               this.graph2.view.canvas.style.position = 'relative';
-                                       }
-
-                                       this.tooltipImage = mxUtils.createImage(IMAGE_PATH + '/tooltip.png');
-                                       this.tooltipImage.style.position = 'absolute';
-                                       this.tooltipImage.style.width = '14px';
-                                       this.tooltipImage.style.height = '27px';
-
-                                       document.body.appendChild(this.tooltipImage);
-                               }
-
-                               this.tooltip.style.display = 'block';
-                               this.graph2.labelsVisible = (showLabel == null || showLabel);
-                               this.graph2.model.clear();
-                               this.graph2.addCells(cells);
-
-                               var bounds = this.graph2.getGraphBounds();
-                               var width = bounds.width + 2 * this.tooltipBorder;
-                               var height = bounds.height + 2 * this.tooltipBorder;
-
-                               if (mxClient.IS_QUIRKS) {
-                                       width += 4;
-                                       height += 4;
-                                       this.tooltip.style.overflow = 'hidden';
-                               } else {
-                                       this.tooltip.style.overflow = 'visible';
-                               }
-
-                               this.tooltipImage.style.visibility = 'visible';
-                               this.tooltip.style.width = width + 'px';
-
-                               // Adds title for entry
-                               if (this.tooltipTitles && title != null && title.length > 0) {
-                                       if (this.tooltipTitle == null) {
-                                               this.tooltipTitle = document.createElement('div');
-                                               this.tooltipTitle.style.borderTop = '1px solid gray';
-                                               this.tooltipTitle.style.textAlign = 'center';
-                                               this.tooltipTitle.style.width = '100%';
-
-                                               // Oversize titles are cut-off currently. Should make tooltip wider later.
-                                               this.tooltipTitle.style.overflow = 'hidden';
-
-                                               if (mxClient.IS_SVG) {
-                                                       this.tooltipTitle.style.paddingTop = '2px';
-                                               } else {
-                                                       this.tooltipTitle.style.position = 'absolute';
-                                                       this.tooltipTitle.style.paddingTop = '6px';
-                                               }
-
-                                               this.tooltip.appendChild(this.tooltipTitle);
-                                       } else {
-                                               this.tooltipTitle.innerHTML = '';
-                                       }
-
-                                       this.tooltipTitle.style.display = '';
-                                       mxUtils.write(this.tooltipTitle, title);
-
-                                       var dy = this.tooltipTitle.offsetHeight + 10;
-                                       height += dy;
-
-                                       if (mxClient.IS_SVG) {
-                                               this.tooltipTitle.style.marginTop = (-dy) + 'px';
-                                       } else {
-                                               height -= 6;
-                                               this.tooltipTitle.style.top = (height - dy) + 'px';
-                                       }
-                               } else if (this.tooltipTitle != null && this.tooltipTitle.parentNode !=
-                                       null) {
-                                       this.tooltipTitle.style.display = 'none';
-                               }
-
-                               this.tooltip.style.height = height + 'px';
-                               var x0 = -Math.min(0, bounds.x - this.tooltipBorder);
-                               var y0 = -Math.min(0, bounds.y - this.tooltipBorder);
-
-                               var left = this.container.clientWidth + this.editorUi.splitSize + 3;
-                               var top = Math.max(0, (this.container.offsetTop + elt.offsetTop - this.container
-                                       .scrollTop - height / 2 + 16));
-
-                               if (mxClient.IS_SVG) {
-                                       this.graph2.view.canvas.setAttribute('transform', 'translate(' + x0 +
-                                               ',' + y0 + ')');
-                               } else {
-                                       this.graph2.view.drawPane.style.left = x0 + 'px';
-                                       this.graph2.view.drawPane.style.top = y0 + 'px';
-                               }
-
-                               // Workaround for ignored position CSS style in IE9
-                               // (changes to relative without the following line)
-                               // Added width of the page-sidebar
-                               left += document.getElementById('page-sidebar').offsetWidth;
-                               // Added static height of the page-navbar
-                               top += 90;
-
-                               this.tooltip.style.position = 'absolute';
-                               this.tooltip.style.left = left + 'px';
-                               this.tooltip.style.top = top + 'px';
-                               this.tooltipImage.style.left = (left - 13) + 'px';
-                               this.tooltipImage.style.top = (top + height / 2 - 13) + 'px';
-                       });
-
-                       if (this.tooltip != null && this.tooltip.style.display != 'none') {
-                               show();
-                       } else {
-                               this.thread = window.setTimeout(show, this.tooltipDelay);
-                       }
-
-                       this.currentElt = elt;
-               }
-       }
-};
-
-/**
- * Hides the current tooltip.
- */
-Sidebar.prototype.hideTooltip = function() {
-       if (this.thread != null) {
-               window.clearTimeout(this.thread);
-               this.thread = null;
-       }
-
-       if (this.tooltip != null) {
-               this.tooltip.style.display = 'none';
-               this.tooltipImage.style.visibility = 'hidden';
-               this.currentElt = null;
-       }
-};
-
-/**
- * Creates and returns the given title element.
- */
-Sidebar.prototype.createTitle = function(label) {
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geTitle';
-       mxUtils.write(elt, label);
-
-       return elt;
-};
-
-/**
- * Creates a thumbnail for the given cells.
- */
-Sidebar.prototype.createThumb = function(cells, width, height, parent, title,
-       showLabel) {
-       this.graph.labelsVisible = (showLabel == null || showLabel);
-       this.graph.view.scaleAndTranslate(1, 0, 0);
-       this.graph.addCells(cells);
-       var bounds = this.graph.getGraphBounds();
-       var corr = this.thumbBorder;
-       var s = Math.min((width - 2) / (bounds.width - bounds.x + corr), (height - 2) /
-               (bounds.height - bounds.y + corr));
-       var x0 = -Math.min(bounds.x, 0);
-       var y0 = -Math.min(bounds.y, 0);
-       this.graph.view.scaleAndTranslate(s, x0, y0);
-
-       bounds = this.graph.getGraphBounds();
-       var dx = Math.max(0, Math.floor((width - bounds.width - bounds.x) / 2));
-       var dy = Math.max(0, Math.floor((height - bounds.height - bounds.y) / 2));
-
-       var node = null;
-
-       // For supporting HTML labels in IE9 standards mode the container is cloned instead
-       if (this.graph.dialect == mxConstants.DIALECT_SVG && !mxClient.NO_FO) {
-               node = this.graph.view.getCanvas().ownerSVGElement.cloneNode(true);
-       }
-       // LATER: Check if deep clone can be used for quirks if container in DOM
-       else {
-               node = this.graph.container.cloneNode(false);
-               node.innerHTML = this.graph.container.innerHTML;
-       }
-
-       this.graph.getModel().clear();
-
-       // Catch-all event handling
-       if (mxClient.IS_IE6) {
-               parent.style.backgroundImage = 'url(' + this.editorUi.editor.transparentImage +
-                       ')';
-       }
-
-       var dd = 3;
-       node.style.position = 'relative';
-       node.style.overflow = 'hidden';
-       node.style.cursor = 'pointer';
-       node.style.left = (dx + dd) + 'px';
-       node.style.top = (dy + dd) + 'px';
-       node.style.width = width + 'px';
-       node.style.height = height + 'px';
-       node.style.visibility = '';
-       node.style.minWidth = '';
-       node.style.minHeight = '';
-
-       parent.appendChild(node);
-
-       // Adds title for sidebar entries
-       if (this.sidebarTitles && title != null) {
-               var border = (mxClient.IS_QUIRKS) ? 2 * this.thumbPadding + 2 : 0;
-               parent.style.height = (this.thumbHeight + border + this.sidebarTitleSize + 8) +
-                       'px';
-
-               var div = document.createElement('div');
-               div.style.fontSize = this.sidebarTitleSize + 'px';
-               div.style.textAlign = 'center';
-               div.style.whiteSpace = 'nowrap';
-
-               if (mxClient.IS_IE) {
-                       div.style.height = (this.sidebarTitleSize + 12) + 'px';
-               }
-
-               div.style.paddingTop = '4px';
-               mxUtils.write(div, title);
-               parent.appendChild(div);
-       }
-};
-
-/**
- * Creates and returns a new palette item for the given image.
- */
-Sidebar.prototype.createItem = function(cells, title, showLabel) {
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geItem';
-       elt.style.overflow = 'hidden';
-       var border = (mxClient.IS_QUIRKS) ? 8 + 2 * this.thumbPadding : 6;
-       elt.style.width = (this.thumbWidth + border) + 'px';
-       elt.style.height = (this.thumbHeight + border) + 'px';
-       elt.style.padding = this.thumbPadding + 'px';
-
-       // Blocks default click action
-       mxEvent.addListener(elt, 'click', function(evt) {
-               mxEvent.consume(evt);
-       });
-
-       this.createThumb(cells, this.thumbWidth, this.thumbHeight, elt, title,
-               showLabel);
-
-       return elt;
-};
-
-/**
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createDropHandler = function(cells, allowSplit) {
-       return function(graph, evt, target, x, y) {
-               if (graph.isEnabled()) {
-                       cells = graph.getImportableCells(cells);
-
-                       if (cells.length > 0) {
-                               var validDropTarget = (target != null) ?
-                                       graph.isValidDropTarget(target, cells, evt) : false;
-                               var select = null;
-
-                               if (target != null && !validDropTarget) {
-                                       target = null;
-                               }
-
-                               // Splits the target edge or inserts into target group
-                               if (allowSplit && graph.isSplitEnabled() && graph.isSplitTarget(target,
-                                               cells, evt)) {
-                                       graph.splitEdge(target, cells, null, x, y);
-                                       select = cells;
-                               } else if (cells.length > 0) {
-                                       select = graph.importCells(cells, x, y, target);
-                               }
-
-                               if (select != null && select.length > 0) {
-                                       graph.scrollCellToVisible(select[0]);
-                                       graph.setSelectionCells(select);
-                               }
-                       }
-               }
-       };
-};
-
-/**
- * Creates and returns a preview element for the given width and height.
- */
-Sidebar.prototype.createDragPreview = function(width, height) {
-       var elt = document.createElement('div');
-       elt.style.border = '1px dashed black';
-       elt.style.width = width + 'px';
-       elt.style.height = height + 'px';
-
-       return elt;
-};
-
-/**
- * Creates a drag source for the given element.
- */
-Sidebar.prototype.createDragSource = function(elt, dropHandler, preview) {
-       var dragSource = mxUtils.makeDraggable(elt, this.editorUi.editor.graph,
-               dropHandler,
-               preview, 0, 0, this.editorUi.editor.graph.autoscroll, true, true);
-
-       // Allows drop into cell only if target is a valid root
-       dragSource.getDropTarget = function(graph, x, y) {
-               var target = mxDragSource.prototype.getDropTarget.apply(this, arguments);
-
-               if (!graph.isValidRoot(target)) {
-                       target = null;
-               }
-
-               return target;
-       };
-
-       return dragSource;
-};
-
-/**
- * Adds a handler for inserting the cell with a single click.
- */
-Sidebar.prototype.addClickHandler = function(elt, ds) {
-       var graph = this.editorUi.editor.graph;
-       var first = null;
-
-       mxEvent.addGestureListeners(elt, function(evt) {
-               first = new mxPoint(mxEvent.getClientX(evt), mxEvent.getClientY(evt));
-       });
-
-       var oldMouseUp = ds.mouseUp;
-       ds.mouseUp = function(evt) {
-               if (!mxEvent.isPopupTrigger(evt) && this.currentGraph == null && first !=
-                       null) {
-                       var tol = graph.tolerance;
-
-                       if (Math.abs(first.x - mxEvent.getClientX(evt)) <= tol &&
-                               Math.abs(first.y - mxEvent.getClientY(evt)) <= tol) {
-                               var gs = graph.getGridSize();
-                               ds.drop(graph, evt, null, gs, gs);
-                       }
-               }
-
-               oldMouseUp.apply(this, arguments);
-               first = null;
-       };
-};
-
-/**
- * Giuseppe Careri
- * Create xml document vertex
- */
-Sidebar.prototype.createXmlDocument = function(element, label, variables,
-       values) {
-       var doc = mxUtils.createXmlDocument();
-       var node = doc.createElement(element)
-       node.setAttribute('label', label);
-
-       variables.forEach(function(variable, index) {
-               node.setAttribute(variable, values[index] ? values[index] : '');
-       });
-
-       return node;
-}
-
-/**
- * Giuseppe Careri
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createVertexTemplate = function(style, width, height, value,
-       title, showLabel) {
-       var variables = [];
-       var values = [];
-
-       switch (value) {
-               case 'answer':
-                       break;
-               case 'ispeechasr':
-                       variables = ['key', 'model', 'ispeech_asr_language'];
-                       values = ['', 0, 'it-IT'];
-                       break;
-               case 'playback':
-                       variables = ['file_id', 'opts'];
-                       values = ['0'];
-                       break;
-               case 'background':
-                       variables = ['file_id', 'response', 'digit'];
-                       values = ['0', '5', '1'];
-                       break;
-               case 'menu':
-                       variables = ['file_id', 'response', 'digit', 'retry', 'variable_id'];
-                       values = ['0', '5', '1', '1', '0'];
-                       break;
-               case 'getdigits':
-                       variables = ['file_id', 'response', 'mindigit', 'maxdigit', 'retry', 'variable_id'];
-                       values = ['0', '5', '1', '10', '1', '0'];
-                       break;
-               case 'custom_app':
-                       variables = ['application', 'options'];
-                       values = ['', ''];
-                       break;
-               case 'set':
-                       variables = ['variable_id', 'variable_value'];
-                       values = ['0', ''];
-                       break;
-               case 'database':
-                       variables = ['odbc_id', 'query', 'variable_id'];
-                       values = ['0', '', '0'];
-                       break;
-               case 'noop':
-                       variables = ['output'];
-                       values = [];
-                       break;
-               case 'gotoc':
-                       variables = ['context', 'extension'];
-                       values = [];
-                       break;
-               case 'system':
-                       variables = ['variable_id', 'command'];
-                       values = [];
-                       break;
-               case 'agi':
-                       variables = ['args', 'command'];
-                       values = [];
-                       break;
-               case 'gotoif':
-                       variables = ['condition'];
-                       values = [];
-                       break;
-               case 'gotoiftime':
-                       variables = ['interval_id'];
-                       values = ['0'];
-                       break;
-               case 'gotoifmultitime':
-                       variables = ['interval_id'];
-                       values = ['0'];
-                       break;
-               case 'vswitch':
-                       variables = ['variable_id'];
-                       values = ['0'];
-                       break;
-               case 'saydigits':
-                       variables = ['digits', 'escape_digits'];
-                       values = ['', '#'];
-                       break;
-               case 'saynumber':
-                       variables = ['number', 'escape_digits'];
-                       values = ['', '#'];
-                       break;
-               case 'sayphonetic':
-                       variables = ['text', 'escape_digits'];
-                       values = ['', '#'];
-                       break;
-               case 'record':
-                       variables = ['file', 'timeout', 'escape_digits'];
-                       values = ['', '-1', '#'];
-                       break;
-               case 'dial':
-                       variables = ['sip_id', 'timeout', 'custom_app', 'url'];
-                       values = ['0', '60'];
-                       break;
-               case 'ext_dial':
-                       variables = ['phone', 'trunk_id', 'timeout', 'opts', 'url'];
-                       values = ['', '0', '60'];
-                       break;
-               case 'tts':
-                       variables = ['text', 'google_tts_language'];
-                       values = ['', 'it'];
-                       break;
-               case 'ispeechtts':
-                       variables = ['text', 'key', 'ispeech_tts_language'];
-                       values = ['', '', 'euritalianfemale'];
-                       break;
-               case 'queue':
-                       variables = ['queue_id', 'opts', 'url', 'file_id', 'timeout', 'agi',
-                               'macro', 'gosub', 'position'
-                       ];
-                       values = ['-1', '', '', '0', '300'];
-                       break;
-               case 'voicemail':
-                       variables = ['mailbox', 'options'];
-                       values = ['', ''];
-                       break;
-               case 'subproject':
-                       variables = ['project_id'];
-                       values = ['0'];
-                       break;
-               case 'math':
-                       variables = ['operation', 'variable_id'];
-                       values = ['', '0'];
-                       break;
-               case 'queuelog':
-                       variables = ['queuename', 'agent', 'queue_event', 'data1', 'data2', 'data3',
-                               'data4', 'data5'
-                       ];
-                       values = [];
-                       break;
-               case 'goal':
-                       variables = ['goalname'];
-                       values = [];
-                       break;
-               case 'callback':
-                       variables = ['list_id'];
-                       values = ['0', '{CALLERID(num)}'];
-                       break;
-               default:
-                       variables = [];
-                       values = [];
-                       break;
-       }
-
-       var node = this.createXmlDocument(value, title, variables, values);
-
-       //var cells = [new mxCell((value != null) ? value : '', new mxGeometry(0, 0, width, height), style)];
-       var cells = [new mxCell(node, new mxGeometry(0, 0, width, height), style)];
-       cells[0].vertex = true;
-
-       return this.createVertexTemplateFromCells(cells, width, height, title,
-               showLabel);
-};
-
-/**
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createVertexTemplateFromCells = function(cells, width, height,
-       title, showLabel) {
-       var elt = this.createItem(cells, title, showLabel);
-       var ds = this.createDragSource(elt, this.createDropHandler(cells, true), this
-               .createDragPreview(width, height));
-       this.addClickHandler(elt, ds);
-
-       // Uses guides for vertices only if enabled in graph
-       ds.isGuidesEnabled = mxUtils.bind(this, function() {
-               return this.editorUi.editor.graph.graphHandler.guidesEnabled;
-       });
-
-       // Shows a tooltip with the rendered cell
-       if (!touchStyle) {
-               mxEvent.addListener(elt, 'mousemove', mxUtils.bind(this, function(evt) {
-                       this.showTooltip(elt, cells, title, showLabel);
-               }));
-       }
-
-       return elt;
-};
-
-/**
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createEdgeTemplate = function(style, width, height, value,
-       title, showLabel) {
-       var cells = [new mxCell((value != null) ? value : '', new mxGeometry(0, 0,
-               width, height), style)];
-       cells[0].geometry.setTerminalPoint(new mxPoint(0, height), true);
-       cells[0].geometry.setTerminalPoint(new mxPoint(width, 0), false);
-       cells[0].geometry.relative = true;
-       cells[0].edge = true;
-
-       return this.createEdgeTemplateFromCells(cells, width, height, title,
-               showLabel);
-};
-
-/**
- * Creates a drop handler for inserting the given cells.
- */
-Sidebar.prototype.createEdgeTemplateFromCells = function(cells, width, height,
-       title, showLabel) {
-       var elt = this.createItem(cells, title, showLabel);
-       this.createDragSource(elt, this.createDropHandler(cells, false), this.createDragPreview(
-               width, height));
-
-       // Installs the default edge
-       var graph = this.editorUi.editor.graph;
-       mxEvent.addListener(elt, 'click', mxUtils.bind(this, function(evt) {
-               if (this.installEdges) {
-                       graph.setDefaultEdge(cells[0]);
-               }
-
-               // Highlights the entry for 200ms
-               elt.style.backgroundColor = '#ffffff';
-
-               window.setTimeout(function() {
-                       elt.style.backgroundColor = '';
-               }, 300);
-
-               mxEvent.consume(evt);
-       }));
-
-       // Shows a tooltip with the rendered cell
-       if (!touchStyle) {
-               mxEvent.addListener(elt, 'mousemove', mxUtils.bind(this, function(evt) {
-                       this.showTooltip(elt, cells, title, showLabel);
-               }));
-       }
-
-       return elt;
-};
-
-/**
- * Adds the given palette.
- */
-Sidebar.prototype.addPalette = function(id, title, expanded, onInit) {
-       var elt = this.createTitle(title);
-       this.container.appendChild(elt);
-
-       var div = document.createElement('div');
-       div.className = 'geSidebar';
-
-       if (expanded) {
-               onInit(div);
-               onInit = null;
-       } else {
-               div.style.display = 'none';
-       }
-
-       this.addFoldingHandler(elt, div, onInit);
-
-       var outer = document.createElement('div');
-       outer.appendChild(div);
-       this.container.appendChild(outer);
-
-       // Keeps references to the DOM nodes
-       if (id != null) {
-               this.palettes[id] = [elt, outer];
-       }
-};
-
-/**
- * Create the given title element.
- */
-Sidebar.prototype.addFoldingHandler = function(title, content, funct) {
-       var initialized = false;
-
-       title.style.backgroundImage = (content.style.display == 'none') ?
-               'url(' + IMAGE_PATH + '/collapsed.gif)' : 'url(' + IMAGE_PATH +
-               '/expanded.gif)';
-       title.style.backgroundRepeat = 'no-repeat';
-       title.style.backgroundPosition = '100% 50%';
-
-       mxEvent.addListener(title, 'click', function(evt) {
-               if (content.style.display == 'none') {
-                       if (!initialized) {
-                               initialized = true;
-
-                               if (funct != null) {
-                                       title.style.cursor = 'wait';
-                                       window.setTimeout(function() {
-                                               funct(content);
-                                               title.style.cursor = '';
-                                       }, 0);
-                               }
-                       }
-
-                       title.style.backgroundImage = 'url(' + IMAGE_PATH + '/expanded.gif)';
-                       content.style.display = 'block';
-               } else {
-                       title.style.backgroundImage = 'url(' + IMAGE_PATH + '/collapsed.gif)';
-                       content.style.display = 'none';
-               }
-
-               mxEvent.consume(evt);
-       });
-};
-
-/**
- * Removes the palette for the given ID.
- */
-Sidebar.prototype.removePalette = function(id) {
-       var elts = this.palettes[id];
-
-       if (elts != null) {
-               this.palettes[id] = null;
-
-               for (var i = 0; i < elts.length; i++) {
-                       this.container.removeChild(elts[i]);
-               }
-
-               return true;
-       }
-
-       return false;
-};
-
-/**
- * Adds the given image palette.
- */
-Sidebar.prototype.addImagePalette = function(id, title, prefix, postfix, items,
-       titles) {
-       // Giuseppe Careri
-       // Expanded Sidebar only entry
-       this.addPalette(id, title, (id === 'entry'), mxUtils.bind(this, function(
-               content) {
-               var showTitles = titles != null;
-
-               for (var i = 0; i < items.length; i++) {
-                       var icon = prefix + items[i] + postfix;
-                       content.appendChild(this.createVertexTemplate('image;image=' + icon, 80,
-                               80, items[i], (showTitles) ? titles[i] : null, showTitles));
-               }
-       }));
-};
+var _0x787e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x70\x61\x6C\x65\x74\x74\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x67\x72\x61\x70\x68","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x53\x74\x79\x6C\x65\x73\x68\x65\x65\x74","\x65\x64\x69\x74\x6F\x72","\x72\x65\x73\x65\x74\x56\x69\x65\x77\x4F\x6E\x52\x6F\x6F\x74\x43\x68\x61\x6E\x67\x65","\x66\x6F\x6C\x64\x69\x6E\x67\x45\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x43\x6F\x6E\x6E\x65\x63\x74\x61\x62\x6C\x65","\x61\x75\x74\x6F\x53\x63\x72\x6F\x6C\x6C","\x73\x65\x74\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x76\x69\x73\x69\x62\x69\x6C\x69\x74\x79","\x73\x74\x79\x6C\x65","\x68\x69\x64\x64\x65\x6E","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x62\x73\x6F\x6C\x75\x74\x65","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x62\x6F\x64\x79","\x49\x53\x5F\x54\x4F\x55\x43\x48","\x6D\x6F\x75\x73\x65\x75\x70","\x62\x69\x6E\x64","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x73\x63\x72\x6F\x6C\x6C","\x6D\x6F\x75\x73\x65\x64\x6F\x77\x6E","\x68\x69\x64\x65\x54\x6F\x6F\x6C\x74\x69\x70","\x6D\x6F\x75\x73\x65\x6D\x6F\x76\x65","\x67\x65\x74\x53\x6F\x75\x72\x63\x65","\x63\x75\x72\x72\x65\x6E\x74\x45\x6C\x74","\x70\x61\x72\x65\x6E\x74\x4E\x6F\x64\x65","\x6D\x6F\x75\x73\x65\x6F\x75\x74","\x74\x6F\x45\x6C\x65\x6D\x65\x6E\x74","\x72\x65\x6C\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74","\x69\x6E\x69\x74","\x73\x72\x63","\x2F\x74\x6F\x6F\x6C\x74\x69\x70\x2E\x70\x6E\x67","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67","\x65\x6E\x74\x72\x79","\x67\x65\x74","\x2F\x65\x6E\x74\x72\x79\x2F","\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x73\x74\x61\x72\x74","\x66\x69\x6E\x61\x6C\x6C\x79","\x65\x6E\x64","\x61\x64\x64\x49\x6D\x61\x67\x65\x50\x61\x6C\x65\x74\x74\x65","\x63\x61\x6C\x6C\x5F\x6D\x61\x6E\x61\x67\x65\x6D\x65\x6E\x74","\x2F\x63\x61\x6C\x6C\x5F\x6D\x61\x6E\x61\x67\x65\x6D\x65\x6E\x74\x2F","\x61\x6E\x73\x77\x65\x72","\x68\x61\x6E\x67\x75\x70","\x64\x69\x61\x6C","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x71\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x76\x61\x72\x69\x61\x62\x6C\x65","\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F","\x73\x65\x74","\x6D\x61\x74\x68","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x2F\x70\x6C\x61\x79\x62\x61\x63\x6B\x2F","\x6D\x65\x6E\x75","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x74\x74\x73","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F","\x72\x65\x63\x6F\x72\x64","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x53\x65\x72\x76\x65\x72","\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5F\x73\x65\x72\x76\x65\x72\x2F","\x64\x61\x74\x61\x62\x61\x73\x65","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x63\x61\x6C\x6C\x66\x6C\x6F\x77","\x2F\x63\x61\x6C\x6C\x66\x6C\x6F\x77\x2F","\x67\x6F\x74\x6F\x63","\x67\x6F\x74\x6F\x69\x66","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x76\x73\x77\x69\x74\x63\x68","\x73\x74\x61\x74\x73","\x2F\x73\x74\x61\x74\x73\x2F","\x67\x6F\x61\x6C","\x67\x65\x6E\x65\x72\x61\x6C","\x2F\x67\x65\x6E\x65\x72\x61\x6C\x2F","\x6E\x6F\x6F\x70","\x73\x79\x73\x74\x65\x6D","\x61\x67\x69","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x65\x6E\x61\x62\x6C\x65\x54\x6F\x6F\x6C\x74\x69\x70\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x42\x6F\x72\x64\x65\x72","\x74\x68\x75\x6D\x62\x42\x6F\x72\x64\x65\x72","\x74\x6F\x6F\x6C\x74\x69\x70\x44\x65\x6C\x61\x79","\x69\x6E\x73\x74\x61\x6C\x6C\x45\x64\x67\x65\x73","\x67\x65\x61\x72\x49\x6D\x61\x67\x65","\x2F\x63\x6C\x69\x70\x61\x72\x74\x2F\x47\x65\x61\x72\x5F\x31\x32\x38\x78\x31\x32\x38\x2E\x70\x6E\x67","\x74\x68\x75\x6D\x62\x57\x69\x64\x74\x68","\x74\x68\x75\x6D\x62\x48\x65\x69\x67\x68\x74","\x74\x68\x75\x6D\x62\x50\x61\x64\x64\x69\x6E\x67","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x53\x69\x7A\x65","\x73\x69\x64\x65\x62\x61\x72\x54\x69\x74\x6C\x65\x73","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65\x73","\x73\x68\x6F\x77\x54\x6F\x6F\x6C\x74\x69\x70","\x74\x68\x72\x65\x61\x64","\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x74\x6F\x6F\x6C\x74\x69\x70","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72\x54\x6F\x6F\x6C\x74\x69\x70","\x67\x72\x61\x70\x68\x32","\x73\x65\x74\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x76\x69\x65\x77","\x49\x53\x5F\x53\x56\x47","\x63\x61\x6E\x76\x61\x73","\x72\x65\x6C\x61\x74\x69\x76\x65","\x74\x6F\x6F\x6C\x74\x69\x70\x49\x6D\x61\x67\x65","\x63\x72\x65\x61\x74\x65\x49\x6D\x61\x67\x65","\x77\x69\x64\x74\x68","\x31\x34\x70\x78","\x68\x65\x69\x67\x68\x74","\x32\x37\x70\x78","\x64\x69\x73\x70\x6C\x61\x79","\x62\x6C\x6F\x63\x6B","\x6C\x61\x62\x65\x6C\x73\x56\x69\x73\x69\x62\x6C\x65","\x63\x6C\x65\x61\x72","\x6D\x6F\x64\x65\x6C","\x61\x64\x64\x43\x65\x6C\x6C\x73","\x67\x65\x74\x47\x72\x61\x70\x68\x42\x6F\x75\x6E\x64\x73","\x49\x53\x5F\x51\x55\x49\x52\x4B\x53","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x76\x69\x73\x69\x62\x6C\x65","\x70\x78","\x6C\x65\x6E\x67\x74\x68","\x74\x6F\x6F\x6C\x74\x69\x70\x54\x69\x74\x6C\x65","\x62\x6F\x72\x64\x65\x72\x54\x6F\x70","\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x67\x72\x61\x79","\x74\x65\x78\x74\x41\x6C\x69\x67\x6E","\x63\x65\x6E\x74\x65\x72","\x31\x30\x30\x25","\x70\x61\x64\x64\x69\x6E\x67\x54\x6F\x70","\x32\x70\x78","\x36\x70\x78","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","","\x77\x72\x69\x74\x65","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70","\x74\x6F\x70","\x6E\x6F\x6E\x65","\x78","\x6D\x69\x6E","\x79","\x63\x6C\x69\x65\x6E\x74\x57\x69\x64\x74\x68","\x73\x70\x6C\x69\x74\x53\x69\x7A\x65","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x73\x63\x72\x6F\x6C\x6C\x54\x6F\x70","\x6D\x61\x78","\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x28","\x2C","\x29","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x6C\x65\x66\x74","\x64\x72\x61\x77\x50\x61\x6E\x65","\x6F\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68","\x70\x61\x67\x65\x2D\x73\x69\x64\x65\x62\x61\x72","\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64","\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74","\x63\x72\x65\x61\x74\x65\x54\x69\x74\x6C\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x54\x69\x74\x6C\x65","\x63\x72\x65\x61\x74\x65\x54\x68\x75\x6D\x62","\x73\x63\x61\x6C\x65\x41\x6E\x64\x54\x72\x61\x6E\x73\x6C\x61\x74\x65","\x66\x6C\x6F\x6F\x72","\x64\x69\x61\x6C\x65\x63\x74","\x44\x49\x41\x4C\x45\x43\x54\x5F\x53\x56\x47","\x4E\x4F\x5F\x46\x4F","\x63\x6C\x6F\x6E\x65\x4E\x6F\x64\x65","\x6F\x77\x6E\x65\x72\x53\x56\x47\x45\x6C\x65\x6D\x65\x6E\x74","\x67\x65\x74\x43\x61\x6E\x76\x61\x73","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x49\x53\x5F\x49\x45\x36","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x49\x6D\x61\x67\x65","\x75\x72\x6C\x28","\x74\x72\x61\x6E\x73\x70\x61\x72\x65\x6E\x74\x49\x6D\x61\x67\x65","\x63\x75\x72\x73\x6F\x72","\x70\x6F\x69\x6E\x74\x65\x72","\x6D\x69\x6E\x57\x69\x64\x74\x68","\x6D\x69\x6E\x48\x65\x69\x67\x68\x74","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x6E\x6F\x77\x72\x61\x70","\x49\x53\x5F\x49\x45","\x34\x70\x78","\x63\x72\x65\x61\x74\x65\x49\x74\x65\x6D","\x67\x65\x49\x74\x65\x6D","\x70\x61\x64\x64\x69\x6E\x67","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x63\x72\x65\x61\x74\x65\x44\x72\x6F\x70\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x65\x74\x49\x6D\x70\x6F\x72\x74\x61\x62\x6C\x65\x43\x65\x6C\x6C\x73","\x69\x73\x56\x61\x6C\x69\x64\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x69\x73\x53\x70\x6C\x69\x74\x45\x6E\x61\x62\x6C\x65\x64","\x69\x73\x53\x70\x6C\x69\x74\x54\x61\x72\x67\x65\x74","\x73\x70\x6C\x69\x74\x45\x64\x67\x65","\x69\x6D\x70\x6F\x72\x74\x43\x65\x6C\x6C\x73","\x73\x63\x72\x6F\x6C\x6C\x43\x65\x6C\x6C\x54\x6F\x56\x69\x73\x69\x62\x6C\x65","\x73\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x50\x72\x65\x76\x69\x65\x77","\x62\x6F\x72\x64\x65\x72","\x31\x70\x78\x20\x64\x61\x73\x68\x65\x64\x20\x62\x6C\x61\x63\x6B","\x63\x72\x65\x61\x74\x65\x44\x72\x61\x67\x53\x6F\x75\x72\x63\x65","\x61\x75\x74\x6F\x73\x63\x72\x6F\x6C\x6C","\x6D\x61\x6B\x65\x44\x72\x61\x67\x67\x61\x62\x6C\x65","\x67\x65\x74\x44\x72\x6F\x70\x54\x61\x72\x67\x65\x74","\x61\x70\x70\x6C\x79","\x69\x73\x56\x61\x6C\x69\x64\x52\x6F\x6F\x74","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x58","\x67\x65\x74\x43\x6C\x69\x65\x6E\x74\x59","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x6D\x6F\x75\x73\x65\x55\x70","\x69\x73\x50\x6F\x70\x75\x70\x54\x72\x69\x67\x67\x65\x72","\x63\x75\x72\x72\x65\x6E\x74\x47\x72\x61\x70\x68","\x74\x6F\x6C\x65\x72\x61\x6E\x63\x65","\x61\x62\x73","\x67\x65\x74\x47\x72\x69\x64\x53\x69\x7A\x65","\x64\x72\x6F\x70","\x63\x72\x65\x61\x74\x65\x58\x6D\x6C\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x6C\x61\x62\x65\x6C","\x66\x6F\x72\x45\x61\x63\x68","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6B\x65\x79","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x74\x2D\x49\x54","\x66\x69\x6C\x65\x5F\x69\x64","\x6F\x70\x74\x73","\x30","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x64\x69\x67\x69\x74","\x35","\x31","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64","\x72\x65\x74\x72\x79","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x6D\x61\x78\x64\x69\x67\x69\x74","\x31\x30","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6F\x70\x74\x69\x6F\x6E\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x76\x61\x6C\x75\x65","\x6F\x64\x62\x63\x5F\x69\x64","\x71\x75\x65\x72\x79","\x6F\x75\x74\x70\x75\x74","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x63\x6F\x6D\x6D\x61\x6E\x64","\x61\x72\x67\x73","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x67\x6F\x74\x6F\x69\x66\x6D\x75\x6C\x74\x69\x74\x69\x6D\x65","\x64\x69\x67\x69\x74\x73","\x65\x73\x63\x61\x70\x65\x5F\x64\x69\x67\x69\x74\x73","\x23","\x6E\x75\x6D\x62\x65\x72","\x74\x65\x78\x74","\x66\x69\x6C\x65","\x74\x69\x6D\x65\x6F\x75\x74","\x2D\x31","\x73\x69\x70\x5F\x69\x64","\x75\x72\x6C","\x36\x30","\x70\x68\x6F\x6E\x65","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x69\x74","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x65\x75\x72\x69\x74\x61\x6C\x69\x61\x6E\x66\x65\x6D\x61\x6C\x65","\x71\x75\x65\x75\x65\x5F\x69\x64","\x6D\x61\x63\x72\x6F","\x67\x6F\x73\x75\x62","\x33\x30\x30","\x6D\x61\x69\x6C\x62\x6F\x78","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65\x6E\x61\x6D\x65","\x61\x67\x65\x6E\x74","\x71\x75\x65\x75\x65\x5F\x65\x76\x65\x6E\x74","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x64\x61\x74\x61\x34","\x64\x61\x74\x61\x35","\x71\x75\x65\x75\x65\x6C\x6F\x67","\x67\x6F\x61\x6C\x6E\x61\x6D\x65","\x6C\x69\x73\x74\x5F\x69\x64","\x7B\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x6E\x75\x6D\x29\x7D","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x76\x65\x72\x74\x65\x78","\x63\x72\x65\x61\x74\x65\x56\x65\x72\x74\x65\x78\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x69\x73\x47\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x75\x69\x64\x65\x73\x45\x6E\x61\x62\x6C\x65\x64","\x67\x72\x61\x70\x68\x48\x61\x6E\x64\x6C\x65\x72","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x73\x65\x74\x54\x65\x72\x6D\x69\x6E\x61\x6C\x50\x6F\x69\x6E\x74","\x67\x65\x6F\x6D\x65\x74\x72\x79","\x65\x64\x67\x65","\x63\x72\x65\x61\x74\x65\x45\x64\x67\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x46\x72\x6F\x6D\x43\x65\x6C\x6C\x73","\x73\x65\x74\x44\x65\x66\x61\x75\x6C\x74\x45\x64\x67\x65","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72","\x23\x66\x66\x66\x66\x66\x66","\x61\x64\x64\x50\x61\x6C\x65\x74\x74\x65","\x67\x65\x53\x69\x64\x65\x62\x61\x72","\x61\x64\x64\x46\x6F\x6C\x64\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x2F\x63\x6F\x6C\x6C\x61\x70\x73\x65\x64\x2E\x67\x69\x66\x29","\x2F\x65\x78\x70\x61\x6E\x64\x65\x64\x2E\x67\x69\x66\x29","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x52\x65\x70\x65\x61\x74","\x6E\x6F\x2D\x72\x65\x70\x65\x61\x74","\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x31\x30\x30\x25\x20\x35\x30\x25","\x77\x61\x69\x74","\x72\x65\x6D\x6F\x76\x65\x50\x61\x6C\x65\x74\x74\x65","\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64","\x69\x6D\x61\x67\x65\x3B\x69\x6D\x61\x67\x65\x3D"];_0x787e[0];function Sidebar(_0x731cx2,_0x731cx3){this[_0x787e[1]]=_0x731cx2;this[_0x787e[2]]=_0x731cx3;this[_0x787e[3]]= new Object();this[_0x787e[4]]=true;this[_0x787e[5]]= new Graph(document[_0x787e[7]](_0x787e[6]),null,null,this[_0x787e[1]][_0x787e[9]][_0x787e[5]][_0x787e[8]]());this[_0x787e[5]][_0x787e[10]]=false;this[_0x787e[5]][_0x787e[11]]=false;this[_0x787e[5]][_0x787e[12]](false);this[_0x787e[5]][_0x787e[13]]=false;this[_0x787e[5]][_0x787e[14]](false);this[_0x787e[5]][_0x787e[15]](false);this[_0x787e[5]][_0x787e[2]][_0x787e[17]][_0x787e[16]]=_0x787e[18];this[_0x787e[5]][_0x787e[2]][_0x787e[17]][_0x787e[19]]=_0x787e[20];document[_0x787e[22]][_0x787e[21]](this[_0x787e[5]][_0x787e[2]]);if(!mxClient[_0x787e[23]]){mxEvent[_0x787e[26]](document,_0x787e[24],mxUtils[_0x787e[25]](this,function(){this[_0x787e[4]]=true}));mxEvent[_0x787e[26]](_0x731cx3,_0x787e[27],mxUtils[_0x787e[25]](this,function(){this[_0x787e[4]]=true}));mxEvent[_0x787e[26]](document,_0x787e[28],mxUtils[_0x787e[25]](this,function(){this[_0x787e[4]]=false;this[_0x787e[29]]()}));mxEvent[_0x787e[26]](document,_0x787e[30],mxUtils[_0x787e[25]](this,function(_0x731cx4){var _0x731cx5=mxEvent[_0x787e[31]](_0x731cx4);while(_0x731cx5!=null){if(_0x731cx5==this[_0x787e[32]]){return};_0x731cx5=_0x731cx5[_0x787e[33]]};this[_0x787e[29]]()}));mxEvent[_0x787e[26]](document,_0x787e[34],mxUtils[_0x787e[25]](this,function(_0x731cx4){if(_0x731cx4[_0x787e[35]]==null&&_0x731cx4[_0x787e[36]]==null){this[_0x787e[29]]()}}))};this[_0x787e[37]](); new Image()[_0x787e[38]]=IMAGE_PATH+_0x787e[39]}Sidebar[_0x787e[40]][_0x787e[37]]=function(){var _0x731cx6=STENCIL_PATH;console[_0x787e[41]](_0x731cx6);this[_0x787e[49]](_0x787e[42],mxResources[_0x787e[43]](_0x787e[42]),_0x731cx6+_0x787e[44],_0x787e[45],[_0x787e[46],_0x787e[47],_0x787e[48]],[mxResources[_0x787e[43]](_0x787e[46]),mxResources[_0x787e[43]](_0x787e[47]),mxResources[_0x787e[43]](_0x787e[48])]);this[_0x787e[49]](_0x787e[50],mxResources[_0x787e[43]](_0x787e[50]),_0x731cx6+_0x787e[51],_0x787e[45],[_0x787e[52],_0x787e[53],_0x787e[54],_0x787e[55],_0x787e[56],_0x787e[57]],[mxResources[_0x787e[43]](_0x787e[52]),mxResources[_0x787e[43]](_0x787e[53]),mxResources[_0x787e[43]](_0x787e[54]),mxResources[_0x787e[43]](_0x787e[55]),mxResources[_0x787e[43]](_0x787e[56]),mxResources[_0x787e[43]](_0x787e[57])]);this[_0x787e[49]](_0x787e[58],mxResources[_0x787e[43]](_0x787e[58]),_0x731cx6+_0x787e[59],_0x787e[45],[_0x787e[60],_0x787e[61]],[mxResources[_0x787e[43]](_0x787e[60]),mxResources[_0x787e[43]](_0x787e[61])]);this[_0x787e[49]](_0x787e[62],mxResources[_0x787e[43]](_0x787e[62]),_0x731cx6+_0x787e[63],_0x787e[45],[_0x787e[62],_0x787e[64],_0x787e[65],_0x787e[66],_0x787e[67],_0x787e[68],_0x787e[69],_0x787e[70]],[mxResources[_0x787e[43]](_0x787e[62]),mxResources[_0x787e[43]](_0x787e[64]),mxResources[_0x787e[43]](_0x787e[65]),mxResources[_0x787e[43]](_0x787e[66]),mxResources[_0x787e[43]](_0x787e[67]),mxResources[_0x787e[43]](_0x787e[68]),mxResources[_0x787e[43]](_0x787e[69]),mxResources[_0x787e[43]](_0x787e[70])]);this[_0x787e[49]](_0x787e[71],mxResources[_0x787e[43]](_0x787e[71]),_0x731cx6+_0x787e[72],_0x787e[45],[_0x787e[73]],[mxResources[_0x787e[43]](_0x787e[73])]);this[_0x787e[49]](_0x787e[74],mxResources[_0x787e[43]](_0x787e[74]),_0x731cx6+_0x787e[75],_0x787e[45],[_0x787e[76],_0x787e[77]],[mxResources[_0x787e[43]](_0x787e[76]),mxResources[_0x787e[43]](_0x787e[77])]);this[_0x787e[49]](_0x787e[78],mxResources[_0x787e[43]](_0x787e[78]),_0x731cx6+_0x787e[79],_0x787e[45],[_0x787e[80],_0x787e[81],_0x787e[82],_0x787e[83]],[mxResources[_0x787e[43]](_0x787e[80]),mxResources[_0x787e[43]](_0x787e[81]),mxResources[_0x787e[43]](_0x787e[82]),mxResources[_0x787e[43]](_0x787e[83])]);this[_0x787e[49]](_0x787e[84],mxResources[_0x787e[43]](_0x787e[84]),_0x731cx6+_0x787e[85],_0x787e[45],[_0x787e[86]],[mxResources[_0x787e[43]](_0x787e[86])]);this[_0x787e[49]](_0x787e[87],mxResources[_0x787e[43]](_0x787e[87]),_0x731cx6+_0x787e[88],_0x787e[45],[_0x787e[89],_0x787e[90],_0x787e[91],_0x787e[92],_0x787e[93]],[mxResources[_0x787e[43]](_0x787e[89]),mxResources[_0x787e[43]](_0x787e[90]),mxResources[_0x787e[43]](_0x787e[91]),mxResources[_0x787e[43]](_0x787e[92]),mxResources[_0x787e[43]](_0x787e[93])])};Sidebar[_0x787e[40]][_0x787e[94]]=!mxClient[_0x787e[23]];Sidebar[_0x787e[40]][_0x787e[95]]=16;Sidebar[_0x787e[40]][_0x787e[96]]=3;Sidebar[_0x787e[40]][_0x787e[97]]=300;Sidebar[_0x787e[40]][_0x787e[98]]=true;Sidebar[_0x787e[40]][_0x787e[99]]=STENCIL_PATH+_0x787e[100];Sidebar[_0x787e[40]][_0x787e[101]]=34;Sidebar[_0x787e[40]][_0x787e[102]]=34;Sidebar[_0x787e[40]][_0x787e[103]]=2;Sidebar[_0x787e[40]][_0x787e[104]]=9;Sidebar[_0x787e[40]][_0x787e[105]]=false;Sidebar[_0x787e[40]][_0x787e[106]]=false;Sidebar[_0x787e[40]][_0x787e[107]]=function(_0x731cx7,_0x731cx8,_0x731cx9,_0x731cxa){if(this[_0x787e[94]]&&this[_0x787e[4]]){if(this[_0x787e[32]]!=_0x731cx7){if(this[_0x787e[108]]!=null){window[_0x787e[109]](this[_0x787e[108]]);this[_0x787e[108]]=null};var _0x731cxb=mxUtils[_0x787e[25]](this,function(){if(this[_0x787e[110]]==null){this[_0x787e[110]]=document[_0x787e[7]](_0x787e[6]);this[_0x787e[110]][_0x787e[111]]=_0x787e[112];document[_0x787e[22]][_0x787e[21]](this[_0x787e[110]]);this[_0x787e[113]]= new Graph(this[_0x787e[110]],null,null,this[_0x787e[1]][_0x787e[9]][_0x787e[5]][_0x787e[8]]());this[_0x787e[113]][_0x787e[115]][_0x787e[114]](this[_0x787e[95]],this[_0x787e[95]]);this[_0x787e[113]][_0x787e[10]]=false;this[_0x787e[113]][_0x787e[11]]=false;this[_0x787e[113]][_0x787e[13]]=false;this[_0x787e[113]][_0x787e[14]](false);this[_0x787e[113]][_0x787e[12]](false);this[_0x787e[113]][_0x787e[15]](false);if(!mxClient[_0x787e[116]]){this[_0x787e[113]][_0x787e[115]][_0x787e[117]][_0x787e[17]][_0x787e[19]]=_0x787e[118]};this[_0x787e[119]]=mxUtils[_0x787e[120]](IMAGE_PATH+_0x787e[39]);this[_0x787e[119]][_0x787e[17]][_0x787e[19]]=_0x787e[20];this[_0x787e[119]][_0x787e[17]][_0x787e[121]]=_0x787e[122];this[_0x787e[119]][_0x787e[17]][_0x787e[123]]=_0x787e[124];document[_0x787e[22]][_0x787e[21]](this[_0x787e[119]])};this[_0x787e[110]][_0x787e[17]][_0x787e[125]]=_0x787e[126];this[_0x787e[113]][_0x787e[127]]=(_0x731cxa==null||_0x731cxa);this[_0x787e[113]][_0x787e[129]][_0x787e[128]]();this[_0x787e[113]][_0x787e[130]](_0x731cx8);var _0x731cxc=this[_0x787e[113]][_0x787e[131]]();var _0x731cxd=_0x731cxc[_0x787e[121]]+2*this[_0x787e[95]];var _0x731cxe=_0x731cxc[_0x787e[123]]+2*this[_0x787e[95]];if(mxClient[_0x787e[132]]){_0x731cxd+=4;_0x731cxe+=4;this[_0x787e[110]][_0x787e[17]][_0x787e[133]]=_0x787e[18]}else {this[_0x787e[110]][_0x787e[17]][_0x787e[133]]=_0x787e[134]};this[_0x787e[119]][_0x787e[17]][_0x787e[16]]=_0x787e[134];this[_0x787e[110]][_0x787e[17]][_0x787e[121]]=_0x731cxd+_0x787e[135];if(this[_0x787e[106]]&&_0x731cx9!=null&&_0x731cx9[_0x787e[136]]>0){if(this[_0x787e[137]]==null){this[_0x787e[137]]=document[_0x787e[7]](_0x787e[6]);this[_0x787e[137]][_0x787e[17]][_0x787e[138]]=_0x787e[139];this[_0x787e[137]][_0x787e[17]][_0x787e[140]]=_0x787e[141];this[_0x787e[137]][_0x787e[17]][_0x787e[121]]=_0x787e[142];this[_0x787e[137]][_0x787e[17]][_0x787e[133]]=_0x787e[18];if(mxClient[_0x787e[116]]){this[_0x787e[137]][_0x787e[17]][_0x787e[143]]=_0x787e[144]}else {this[_0x787e[137]][_0x787e[17]][_0x787e[19]]=_0x787e[20];this[_0x787e[137]][_0x787e[17]][_0x787e[143]]=_0x787e[145]};this[_0x787e[110]][_0x787e[21]](this[_0x787e[137]])}else {this[_0x787e[137]][_0x787e[146]]=_0x787e[147]};this[_0x787e[137]][_0x787e[17]][_0x787e[125]]=_0x787e[147];mxUtils[_0x787e[148]](this[_0x787e[137]],_0x731cx9);var _0x731cxf=this[_0x787e[137]][_0x787e[149]]+10;_0x731cxe+=_0x731cxf;if(mxClient[_0x787e[116]]){this[_0x787e[137]][_0x787e[17]][_0x787e[150]]=(-_0x731cxf)+_0x787e[135]}else {_0x731cxe-=6;this[_0x787e[137]][_0x787e[17]][_0x787e[151]]=(_0x731cxe-_0x731cxf)+_0x787e[135]}}else {if(this[_0x787e[137]]!=null&&this[_0x787e[137]][_0x787e[33]]!=null){this[_0x787e[137]][_0x787e[17]][_0x787e[125]]=_0x787e[152]}};this[_0x787e[110]][_0x787e[17]][_0x787e[123]]=_0x731cxe+_0x787e[135];var _0x731cx10=-Math[_0x787e[154]](0,_0x731cxc[_0x787e[153]]-this[_0x787e[95]]);var _0x731cx11=-Math[_0x787e[154]](0,_0x731cxc[_0x787e[155]]-this[_0x787e[95]]);var _0x731cx12=this[_0x787e[2]][_0x787e[156]]+this[_0x787e[1]][_0x787e[157]]+3;var _0x731cx13=Math[_0x787e[160]](0,(this[_0x787e[2]][_0x787e[158]]+_0x731cx7[_0x787e[158]]-this[_0x787e[2]][_0x787e[159]]-_0x731cxe/2+16));if(mxClient[_0x787e[116]]){this[_0x787e[113]][_0x787e[115]][_0x787e[117]][_0x787e[165]](_0x787e[161],_0x787e[162]+_0x731cx10+_0x787e[163]+_0x731cx11+_0x787e[164])}else {this[_0x787e[113]][_0x787e[115]][_0x787e[167]][_0x787e[17]][_0x787e[166]]=_0x731cx10+_0x787e[135];this[_0x787e[113]][_0x787e[115]][_0x787e[167]][_0x787e[17]][_0x787e[151]]=_0x731cx11+_0x787e[135]};_0x731cx12+=document[_0x787e[170]](_0x787e[169])[_0x787e[168]];_0x731cx13+=90;this[_0x787e[110]][_0x787e[17]][_0x787e[19]]=_0x787e[20];this[_0x787e[110]][_0x787e[17]][_0x787e[166]]=_0x731cx12+_0x787e[135];this[_0x787e[110]][_0x787e[17]][_0x787e[151]]=_0x731cx13+_0x787e[135];this[_0x787e[119]][_0x787e[17]][_0x787e[166]]=(_0x731cx12-13)+_0x787e[135];this[_0x787e[119]][_0x787e[17]][_0x787e[151]]=(_0x731cx13+_0x731cxe/2-13)+_0x787e[135]});if(this[_0x787e[110]]!=null&&this[_0x787e[110]][_0x787e[17]][_0x787e[125]]!=_0x787e[152]){_0x731cxb()}else {this[_0x787e[108]]=window[_0x787e[171]](_0x731cxb,this[_0x787e[97]])};this[_0x787e[32]]=_0x731cx7}}};Sidebar[_0x787e[40]][_0x787e[29]]=function(){if(this[_0x787e[108]]!=null){window[_0x787e[109]](this[_0x787e[108]]);this[_0x787e[108]]=null};if(this[_0x787e[110]]!=null){this[_0x787e[110]][_0x787e[17]][_0x787e[125]]=_0x787e[152];this[_0x787e[119]][_0x787e[17]][_0x787e[16]]=_0x787e[18];this[_0x787e[32]]=null}};Sidebar[_0x787e[40]][_0x787e[172]]=function(_0x731cx14){var _0x731cx7=document[_0x787e[7]](_0x787e[173]);_0x731cx7[_0x787e[165]](_0x787e[174],_0x787e[175]);_0x731cx7[_0x787e[111]]=_0x787e[176];mxUtils[_0x787e[148]](_0x731cx7,_0x731cx14);return _0x731cx7};Sidebar[_0x787e[40]][_0x787e[177]]=function(_0x731cx8,_0x731cxd,_0x731cxe,_0x731cx15,_0x731cx9,_0x731cxa){this[_0x787e[5]][_0x787e[127]]=(_0x731cxa==null||_0x731cxa);this[_0x787e[5]][_0x787e[115]][_0x787e[178]](1,0,0);this[_0x787e[5]][_0x787e[130]](_0x731cx8);var _0x731cxc=this[_0x787e[5]][_0x787e[131]]();var _0x731cx16=this[_0x787e[96]];var _0x731cx17=Math[_0x787e[154]]((_0x731cxd-2)/(_0x731cxc[_0x787e[121]]-_0x731cxc[_0x787e[153]]+_0x731cx16),(_0x731cxe-2)/(_0x731cxc[_0x787e[123]]-_0x731cxc[_0x787e[155]]+_0x731cx16));var _0x731cx10=-Math[_0x787e[154]](_0x731cxc[_0x787e[153]],0);var _0x731cx11=-Math[_0x787e[154]](_0x731cxc[_0x787e[155]],0);this[_0x787e[5]][_0x787e[115]][_0x787e[178]](_0x731cx17,_0x731cx10,_0x731cx11);_0x731cxc=this[_0x787e[5]][_0x787e[131]]();var _0x731cx18=Math[_0x787e[160]](0,Math[_0x787e[179]]((_0x731cxd-_0x731cxc[_0x787e[121]]-_0x731cxc[_0x787e[153]])/2));var _0x731cxf=Math[_0x787e[160]](0,Math[_0x787e[179]]((_0x731cxe-_0x731cxc[_0x787e[123]]-_0x731cxc[_0x787e[155]])/2));var _0x731cx19=null;if(this[_0x787e[5]][_0x787e[180]]==mxConstants[_0x787e[181]]&&!mxClient[_0x787e[182]]){_0x731cx19=this[_0x787e[5]][_0x787e[115]][_0x787e[185]]()[_0x787e[184]][_0x787e[183]](true)}else {_0x731cx19=this[_0x787e[5]][_0x787e[2]][_0x787e[183]](false);_0x731cx19[_0x787e[146]]=this[_0x787e[5]][_0x787e[2]][_0x787e[146]]};this[_0x787e[5]][_0x787e[186]]()[_0x787e[128]]();if(mxClient[_0x787e[187]]){_0x731cx15[_0x787e[17]][_0x787e[188]]=_0x787e[189]+this[_0x787e[1]][_0x787e[9]][_0x787e[190]]+_0x787e[164]};var _0x731cx1a=3;_0x731cx19[_0x787e[17]][_0x787e[19]]=_0x787e[118];_0x731cx19[_0x787e[17]][_0x787e[133]]=_0x787e[18];_0x731cx19[_0x787e[17]][_0x787e[191]]=_0x787e[192];_0x731cx19[_0x787e[17]][_0x787e[166]]=(_0x731cx18+_0x731cx1a)+_0x787e[135];_0x731cx19[_0x787e[17]][_0x787e[151]]=(_0x731cxf+_0x731cx1a)+_0x787e[135];_0x731cx19[_0x787e[17]][_0x787e[121]]=_0x731cxd+_0x787e[135];_0x731cx19[_0x787e[17]][_0x787e[123]]=_0x731cxe+_0x787e[135];_0x731cx19[_0x787e[17]][_0x787e[16]]=_0x787e[147];_0x731cx19[_0x787e[17]][_0x787e[193]]=_0x787e[147];_0x731cx19[_0x787e[17]][_0x787e[194]]=_0x787e[147];_0x731cx15[_0x787e[21]](_0x731cx19);if(this[_0x787e[105]]&&_0x731cx9!=null){var _0x731cx1b=(mxClient[_0x787e[132]])?2*this[_0x787e[103]]+2:0;_0x731cx15[_0x787e[17]][_0x787e[123]]=(this[_0x787e[102]]+_0x731cx1b+this[_0x787e[104]]+8)+_0x787e[135];var _0x731cx1c=document[_0x787e[7]](_0x787e[6]);_0x731cx1c[_0x787e[17]][_0x787e[195]]=this[_0x787e[104]]+_0x787e[135];_0x731cx1c[_0x787e[17]][_0x787e[140]]=_0x787e[141];_0x731cx1c[_0x787e[17]][_0x787e[196]]=_0x787e[197];if(mxClient[_0x787e[198]]){_0x731cx1c[_0x787e[17]][_0x787e[123]]=(this[_0x787e[104]]+12)+_0x787e[135]};_0x731cx1c[_0x787e[17]][_0x787e[143]]=_0x787e[199];mxUtils[_0x787e[148]](_0x731cx1c,_0x731cx9);_0x731cx15[_0x787e[21]](_0x731cx1c)}};Sidebar[_0x787e[40]][_0x787e[200]]=function(_0x731cx8,_0x731cx9,_0x731cxa){var _0x731cx7=document[_0x787e[7]](_0x787e[173]);_0x731cx7[_0x787e[165]](_0x787e[174],_0x787e[175]);_0x731cx7[_0x787e[111]]=_0x787e[201];_0x731cx7[_0x787e[17]][_0x787e[133]]=_0x787e[18];var _0x731cx1b=(mxClient[_0x787e[132]])?8+2*this[_0x787e[103]]:6;_0x731cx7[_0x787e[17]][_0x787e[121]]=(this[_0x787e[101]]+_0x731cx1b)+_0x787e[135];_0x731cx7[_0x787e[17]][_0x787e[123]]=(this[_0x787e[102]]+_0x731cx1b)+_0x787e[135];_0x731cx7[_0x787e[17]][_0x787e[202]]=this[_0x787e[103]]+_0x787e[135];mxEvent[_0x787e[26]](_0x731cx7,_0x787e[203],function(_0x731cx4){mxEvent[_0x787e[204]](_0x731cx4)});this[_0x787e[177]](_0x731cx8,this[_0x787e[101]],this[_0x787e[102]],_0x731cx7,_0x731cx9,_0x731cxa);return _0x731cx7};Sidebar[_0x787e[40]][_0x787e[205]]=function(_0x731cx8,_0x731cx1d){return function(_0x731cx1e,_0x731cx4,_0x731cx1f,_0x731cx20,_0x731cx21){if(_0x731cx1e[_0x787e[206]]()){_0x731cx8=_0x731cx1e[_0x787e[207]](_0x731cx8);if(_0x731cx8[_0x787e[136]]>0){var _0x731cx22=(_0x731cx1f!=null)?_0x731cx1e[_0x787e[208]](_0x731cx1f,_0x731cx8,_0x731cx4):false;var _0x731cx23=null;if(_0x731cx1f!=null&& !_0x731cx22){_0x731cx1f=null};if(_0x731cx1d&&_0x731cx1e[_0x787e[209]]()&&_0x731cx1e[_0x787e[210]](_0x731cx1f,_0x731cx8,_0x731cx4)){_0x731cx1e[_0x787e[211]](_0x731cx1f,_0x731cx8,null,_0x731cx20,_0x731cx21);_0x731cx23=_0x731cx8}else {if(_0x731cx8[_0x787e[136]]>0){_0x731cx23=_0x731cx1e[_0x787e[212]](_0x731cx8,_0x731cx20,_0x731cx21,_0x731cx1f)}};if(_0x731cx23!=null&&_0x731cx23[_0x787e[136]]>0){_0x731cx1e[_0x787e[213]](_0x731cx23[0]);_0x731cx1e[_0x787e[214]](_0x731cx23)}}}}};Sidebar[_0x787e[40]][_0x787e[215]]=function(_0x731cxd,_0x731cxe){var _0x731cx7=document[_0x787e[7]](_0x787e[6]);_0x731cx7[_0x787e[17]][_0x787e[216]]=_0x787e[217];_0x731cx7[_0x787e[17]][_0x787e[121]]=_0x731cxd+_0x787e[135];_0x731cx7[_0x787e[17]][_0x787e[123]]=_0x731cxe+_0x787e[135];return _0x731cx7};Sidebar[_0x787e[40]][_0x787e[218]]=function(_0x731cx7,_0x731cx24,_0x731cx25){var _0x731cx26=mxUtils[_0x787e[220]](_0x731cx7,this[_0x787e[1]][_0x787e[9]][_0x787e[5]],_0x731cx24,_0x731cx25,0,0,this[_0x787e[1]][_0x787e[9]][_0x787e[5]][_0x787e[219]],true,true);_0x731cx26[_0x787e[221]]=function(_0x731cx1e,_0x731cx20,_0x731cx21){var _0x731cx1f=mxDragSource[_0x787e[40]][_0x787e[221]][_0x787e[222]](this,arguments);if(!_0x731cx1e[_0x787e[223]](_0x731cx1f)){_0x731cx1f=null};return _0x731cx1f};return _0x731cx26};Sidebar[_0x787e[40]][_0x787e[224]]=function(_0x731cx7,_0x731cx27){var _0x731cx1e=this[_0x787e[1]][_0x787e[9]][_0x787e[5]];var _0x731cx28=null;mxEvent[_0x787e[227]](_0x731cx7,function(_0x731cx4){_0x731cx28= new mxPoint(mxEvent[_0x787e[225]](_0x731cx4),mxEvent[_0x787e[226]](_0x731cx4))});var _0x731cx29=_0x731cx27[_0x787e[228]];_0x731cx27[_0x787e[228]]=function(_0x731cx4){if(!mxEvent[_0x787e[229]](_0x731cx4)&&this[_0x787e[230]]==null&&_0x731cx28!=null){var _0x731cx2a=_0x731cx1e[_0x787e[231]];if(Math[_0x787e[232]](_0x731cx28[_0x787e[153]]-mxEvent[_0x787e[225]](_0x731cx4))<=_0x731cx2a&&Math[_0x787e[232]](_0x731cx28[_0x787e[155]]-mxEvent[_0x787e[226]](_0x731cx4))<=_0x731cx2a){var _0x731cx2b=_0x731cx1e[_0x787e[233]]();_0x731cx27[_0x787e[234]](_0x731cx1e,_0x731cx4,null,_0x731cx2b,_0x731cx2b)}};_0x731cx29[_0x787e[222]](this,arguments);_0x731cx28=null}};Sidebar[_0x787e[40]][_0x787e[235]]=function(_0x731cx2c,_0x731cx14,_0x731cx2d,_0x731cx2e){var _0x731cx2f=mxUtils[_0x787e[235]]();var _0x731cx19=_0x731cx2f[_0x787e[7]](_0x731cx2c);_0x731cx19[_0x787e[165]](_0x787e[236],_0x731cx14);_0x731cx2d[_0x787e[237]](function(_0x731cx30,_0x731cx31){_0x731cx19[_0x787e[165]](_0x731cx30,_0x731cx2e[_0x731cx31]?_0x731cx2e[_0x731cx31]:_0x787e[147])});return _0x731cx19};Sidebar[_0x787e[40]][_0x787e[238]]=function(_0x731cx32,_0x731cxd,_0x731cxe,_0x731cx33,_0x731cx9,_0x731cxa){var _0x731cx2d=[];var _0x731cx2e=[];switch(_0x731cx33){case _0x787e[52]:break;case _0x787e[77]:_0x731cx2d=[_0x787e[239],_0x787e[129],_0x787e[240]];_0x731cx2e=[_0x787e[147],0,_0x787e[241]];break;case _0x787e[62]:_0x731cx2d=[_0x787e[242],_0x787e[243]];_0x731cx2e=[_0x787e[244]];break;case _0x787e[249]:_0x731cx2d=[_0x787e[242],_0x787e[245],_0x787e[246]];_0x731cx2e=[_0x787e[244],_0x787e[247],_0x787e[248]];break;case _0x787e[64]:_0x731cx2d=[_0x787e[242],_0x787e[245],_0x787e[246],_0x787e[250],_0x787e[251]];_0x731cx2e=[_0x787e[244],_0x787e[247],_0x787e[248],_0x787e[248],_0x787e[244]];break;case _0x787e[70]:_0x731cx2d=[_0x787e[242],_0x787e[245],_0x787e[252],_0x787e[253],_0x787e[250],_0x787e[251]];_0x731cx2e=[_0x787e[244],_0x787e[247],_0x787e[248],_0x787e[254],_0x787e[248],_0x787e[244]];break;case _0x787e[93]:_0x731cx2d=[_0x787e[255],_0x787e[256]];_0x731cx2e=[_0x787e[147],_0x787e[147]];break;case _0x787e[60]:_0x731cx2d=[_0x787e[251],_0x787e[257]];_0x731cx2e=[_0x787e[244],_0x787e[147]];break;case _0x787e[76]:_0x731cx2d=[_0x787e[258],_0x787e[259],_0x787e[251]];_0x731cx2e=[_0x787e[244],_0x787e[147],_0x787e[244]];break;case _0x787e[89]:_0x731cx2d=[_0x787e[260]];_0x731cx2e=[];break;case _0x787e[80]:_0x731cx2d=[_0x787e[261],_0x787e[262]];_0x731cx2e=[];break;case _0x787e[90]:_0x731cx2d=[_0x787e[251],_0x787e[263]];_0x731cx2e=[];break;case _0x787e[91]:_0x731cx2d=[_0x787e[264],_0x787e[263]];_0x731cx2e=[];break;case _0x787e[81]:_0x731cx2d=[_0x787e[265]];_0x731cx2e=[];break;case _0x787e[82]:_0x731cx2d=[_0x787e[266]];_0x731cx2e=[_0x787e[244]];break;case _0x787e[267]:_0x731cx2d=[_0x787e[266]];_0x731cx2e=[_0x787e[244]];break;case _0x787e[83]:_0x731cx2d=[_0x787e[251]];_0x731cx2e=[_0x787e[244]];break;case _0x787e[65]:_0x731cx2d=[_0x787e[268],_0x787e[269]];_0x731cx2e=[_0x787e[147],_0x787e[270]];break;case _0x787e[66]:_0x731cx2d=[_0x787e[271],_0x787e[269]];_0x731cx2e=[_0x787e[147],_0x787e[270]];break;case _0x787e[67]:_0x731cx2d=[_0x787e[272],_0x787e[269]];_0x731cx2e=[_0x787e[147],_0x787e[270]];break;case _0x787e[73]:_0x731cx2d=[_0x787e[273],_0x787e[274],_0x787e[269]];_0x731cx2e=[_0x787e[147],_0x787e[275],_0x787e[270]];break;case _0x787e[54]:_0x731cx2d=[_0x787e[276],_0x787e[274],_0x787e[93],_0x787e[277]];_0x731cx2e=[_0x787e[244],_0x787e[278]];break;case _0x787e[55]:_0x731cx2d=[_0x787e[279],_0x787e[280],_0x787e[274],_0x787e[243],_0x787e[277]];_0x731cx2e=[_0x787e[147],_0x787e[244],_0x787e[278]];break;case _0x787e[68]:_0x731cx2d=[_0x787e[272],_0x787e[281]];_0x731cx2e=[_0x787e[147],_0x787e[282]];break;case _0x787e[69]:_0x731cx2d=[_0x787e[272],_0x787e[239],_0x787e[283]];_0x731cx2e=[_0x787e[147],_0x787e[147],_0x787e[284]];break;case _0x787e[56]:_0x731cx2d=[_0x787e[285],_0x787e[243],_0x787e[277],_0x787e[242],_0x787e[274],_0x787e[91],_0x787e[286],_0x787e[287],_0x787e[19]];_0x731cx2e=[_0x787e[275],_0x787e[147],_0x787e[147],_0x787e[244],_0x787e[288]];break;case _0x787e[57]:_0x731cx2d=[_0x787e[289],_0x787e[256]];_0x731cx2e=[_0x787e[147],_0x787e[147]];break;case _0x787e[92]:_0x731cx2d=[_0x787e[290]];_0x731cx2e=[_0x787e[244]];break;case _0x787e[61]:_0x731cx2d=[_0x787e[291],_0x787e[251]];_0x731cx2e=[_0x787e[147],_0x787e[244]];break;case _0x787e[300]:_0x731cx2d=[_0x787e[292],_0x787e[293],_0x787e[294],_0x787e[295],_0x787e[296],_0x787e[297],_0x787e[298],_0x787e[299]];_0x731cx2e=[];break;case _0x787e[86]:_0x731cx2d=[_0x787e[301]];_0x731cx2e=[];break;case _0x787e[304]:_0x731cx2d=[_0x787e[302]];_0x731cx2e=[_0x787e[244],_0x787e[303]];break;default:_0x731cx2d=[];_0x731cx2e=[];break};var _0x731cx19=this[_0x787e[235]](_0x731cx33,_0x731cx9,_0x731cx2d,_0x731cx2e);var _0x731cx8=[ new mxCell(_0x731cx19, new mxGeometry(0,0,_0x731cxd,_0x731cxe),_0x731cx32)];_0x731cx8[0][_0x787e[305]]=true;return this[_0x787e[306]](_0x731cx8,_0x731cxd,_0x731cxe,_0x731cx9,_0x731cxa)};Sidebar[_0x787e[40]][_0x787e[306]]=function(_0x731cx8,_0x731cxd,_0x731cxe,_0x731cx9,_0x731cxa){var _0x731cx7=this[_0x787e[200]](_0x731cx8,_0x731cx9,_0x731cxa);var _0x731cx27=this[_0x787e[218]](_0x731cx7,this[_0x787e[205]](_0x731cx8,true),this[_0x787e[215]](_0x731cxd,_0x731cxe));this[_0x787e[224]](_0x731cx7,_0x731cx27);_0x731cx27[_0x787e[307]]=mxUtils[_0x787e[25]](this,function(){return this[_0x787e[1]][_0x787e[9]][_0x787e[5]][_0x787e[309]][_0x787e[308]]});if(!touchStyle){mxEvent[_0x787e[26]](_0x731cx7,_0x787e[30],mxUtils[_0x787e[25]](this,function(_0x731cx4){this[_0x787e[107]](_0x731cx7,_0x731cx8,_0x731cx9,_0x731cxa)}))};return _0x731cx7};Sidebar[_0x787e[40]][_0x787e[310]]=function(_0x731cx32,_0x731cxd,_0x731cxe,_0x731cx33,_0x731cx9,_0x731cxa){var _0x731cx8=[ new mxCell((_0x731cx33!=null)?_0x731cx33:_0x787e[147], new mxGeometry(0,0,_0x731cxd,_0x731cxe),_0x731cx32)];_0x731cx8[0][_0x787e[312]][_0x787e[311]]( new mxPoint(0,_0x731cxe),true);_0x731cx8[0][_0x787e[312]][_0x787e[311]]( new mxPoint(_0x731cxd,0),false);_0x731cx8[0][_0x787e[312]][_0x787e[118]]=true;_0x731cx8[0][_0x787e[313]]=true;return this[_0x787e[314]](_0x731cx8,_0x731cxd,_0x731cxe,_0x731cx9,_0x731cxa)};Sidebar[_0x787e[40]][_0x787e[314]]=function(_0x731cx8,_0x731cxd,_0x731cxe,_0x731cx9,_0x731cxa){var _0x731cx7=this[_0x787e[200]](_0x731cx8,_0x731cx9,_0x731cxa);this[_0x787e[218]](_0x731cx7,this[_0x787e[205]](_0x731cx8,false),this[_0x787e[215]](_0x731cxd,_0x731cxe));var _0x731cx1e=this[_0x787e[1]][_0x787e[9]][_0x787e[5]];mxEvent[_0x787e[26]](_0x731cx7,_0x787e[203],mxUtils[_0x787e[25]](this,function(_0x731cx4){if(this[_0x787e[98]]){_0x731cx1e[_0x787e[315]](_0x731cx8[0])};_0x731cx7[_0x787e[17]][_0x787e[316]]=_0x787e[317];window[_0x787e[171]](function(){_0x731cx7[_0x787e[17]][_0x787e[316]]=_0x787e[147]},300);mxEvent[_0x787e[204]](_0x731cx4)}));if(!touchStyle){mxEvent[_0x787e[26]](_0x731cx7,_0x787e[30],mxUtils[_0x787e[25]](this,function(_0x731cx4){this[_0x787e[107]](_0x731cx7,_0x731cx8,_0x731cx9,_0x731cxa)}))};return _0x731cx7};Sidebar[_0x787e[40]][_0x787e[318]]=function(_0x731cx34,_0x731cx9,_0x731cx35,_0x731cx36){var _0x731cx7=this[_0x787e[172]](_0x731cx9);this[_0x787e[2]][_0x787e[21]](_0x731cx7);var _0x731cx1c=document[_0x787e[7]](_0x787e[6]);_0x731cx1c[_0x787e[111]]=_0x787e[319];if(_0x731cx35){_0x731cx36(_0x731cx1c);_0x731cx36=null}else {_0x731cx1c[_0x787e[17]][_0x787e[125]]=_0x787e[152]};this[_0x787e[320]](_0x731cx7,_0x731cx1c,_0x731cx36);var _0x731cx37=document[_0x787e[7]](_0x787e[6]);_0x731cx37[_0x787e[21]](_0x731cx1c);this[_0x787e[2]][_0x787e[21]](_0x731cx37);if(_0x731cx34!=null){this[_0x787e[3]][_0x731cx34]=[_0x731cx7,_0x731cx37]}};Sidebar[_0x787e[40]][_0x787e[320]]=function(_0x731cx9,_0x731cx38,_0x731cx39){var _0x731cx3a=false;_0x731cx9[_0x787e[17]][_0x787e[188]]=(_0x731cx38[_0x787e[17]][_0x787e[125]]==_0x787e[152])?_0x787e[189]+IMAGE_PATH+_0x787e[321]:_0x787e[189]+IMAGE_PATH+_0x787e[322];_0x731cx9[_0x787e[17]][_0x787e[323]]=_0x787e[324];_0x731cx9[_0x787e[17]][_0x787e[325]]=_0x787e[326];mxEvent[_0x787e[26]](_0x731cx9,_0x787e[203],function(_0x731cx4){if(_0x731cx38[_0x787e[17]][_0x787e[125]]==_0x787e[152]){if(!_0x731cx3a){_0x731cx3a=true;if(_0x731cx39!=null){_0x731cx9[_0x787e[17]][_0x787e[191]]=_0x787e[327];window[_0x787e[171]](function(){_0x731cx39(_0x731cx38);_0x731cx9[_0x787e[17]][_0x787e[191]]=_0x787e[147]},0)}};_0x731cx9[_0x787e[17]][_0x787e[188]]=_0x787e[189]+IMAGE_PATH+_0x787e[322];_0x731cx38[_0x787e[17]][_0x787e[125]]=_0x787e[126]}else {_0x731cx9[_0x787e[17]][_0x787e[188]]=_0x787e[189]+IMAGE_PATH+_0x787e[321];_0x731cx38[_0x787e[17]][_0x787e[125]]=_0x787e[152]};mxEvent[_0x787e[204]](_0x731cx4)})};Sidebar[_0x787e[40]][_0x787e[328]]=function(_0x731cx34){var _0x731cx3b=this[_0x787e[3]][_0x731cx34];if(_0x731cx3b!=null){this[_0x787e[3]][_0x731cx34]=null;for(var _0x731cx3c=0;_0x731cx3c<_0x731cx3b[_0x787e[136]];_0x731cx3c++){this[_0x787e[2]][_0x787e[329]](_0x731cx3b[_0x731cx3c])};return true};return false};Sidebar[_0x787e[40]][_0x787e[49]]=function(_0x731cx34,_0x731cx9,_0x731cx3d,_0x731cx3e,_0x731cx3f,_0x731cx40){this[_0x787e[318]](_0x731cx34,_0x731cx9,(_0x731cx34===_0x787e[42]),mxUtils[_0x787e[25]](this,function(_0x731cx38){var _0x731cx41=_0x731cx40!=null;for(var _0x731cx3c=0;_0x731cx3c<_0x731cx3f[_0x787e[136]];_0x731cx3c++){var _0x731cx42=_0x731cx3d+_0x731cx3f[_0x731cx3c]+_0x731cx3e;_0x731cx38[_0x787e[21]](this[_0x787e[238]](_0x787e[330]+_0x731cx42,80,80,_0x731cx3f[_0x731cx3c],(_0x731cx41)?_0x731cx40[_0x731cx3c]:null,_0x731cx41))}}))}
\ No newline at end of file
index 7eab562..bd0235c 100644 (file)
@@ -1,407 +1 @@
-/**
- * $Id: Toolbar.js,v 1.3 2013-02-20 16:21:29 gaudenz Exp $
- * Copyright (c) 2006-2012, JGraph Ltd
- */
-/**
- * Construcs a new toolbar for the given editor.
- */
-function Toolbar(editorUi, container)
-{
-       this.editorUi = editorUi;
-       this.container = container;
-       this.init();
-
-       // Global handler to hide the current menu
-       mxEvent.addGestureListeners(document, mxUtils.bind(this, function(evt)
-       {
-               this.hideMenu();
-       }));
-};
-
-/**
- * Adds the toolbar elements.
- */
-Toolbar.prototype.init = function()
-{
-       this.addItems(['save', 'publish', '-', 'print', 'undo', 'redo', '-', 'copy', 'cut', 'paste', 'delete', '-', 'duplicate', '-', 'actualSize', 'zoomIn', 'zoomOut', '-']);
-       var fontElt = this.addMenu('Helvetica', mxResources.get('fontFamily'), true, 'fontFamily');
-       fontElt.style.whiteSpace = 'nowrap';
-       fontElt.style.overflow = 'hidden';
-       fontElt.style.width = '70px';
-       this.addSeparator();
-       var sizeElt = this.addMenu('12', mxResources.get('fontSize'), true, 'fontSize');
-       sizeElt.style.whiteSpace = 'nowrap';
-       sizeElt.style.overflow = 'hidden';
-       sizeElt.style.width = '30px';
-
-       this.addItems(['-', 'bold', 'italic', 'underline']);
-       // Giuseppe Careri
-       // var align = this.addMenuFunction('geSprite-left', mxResources.get('align'), false, mxUtils.bind(this, function(menu)
-       // {
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_LEFT], 'geIcon geSprite geSprite-left', null).setAttribute('title', mxResources.get('left'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_CENTER], 'geIcon geSprite geSprite-center', null).setAttribute('title', mxResources.get('center'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ALIGN], [mxConstants.ALIGN_RIGHT], 'geIcon geSprite geSprite-right', null).setAttribute('title', mxResources.get('right'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_TOP], 'geIcon geSprite geSprite-top', null).setAttribute('title', mxResources.get('top'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_MIDDLE], 'geIcon geSprite geSprite-middle', null).setAttribute('title', mxResources.get('middle'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_VERTICAL_ALIGN], [mxConstants.ALIGN_BOTTOM], 'geIcon geSprite geSprite-bottom', null).setAttribute('title', mxResources.get('bottom'));
-       // }));
-       // this.addItems(['fontColor', '-']);
-       // var line = this.addMenuFunction('geSprite-straight', mxResources.get('line'), false, mxUtils.bind(this, function(menu)
-       // {
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_EDGE], [null], 'geIcon geSprite geSprite-straight', null).setAttribute('title', mxResources.get('straight'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_EDGE], ['entityRelationEdgeStyle'], 'geIcon geSprite geSprite-entity', null).setAttribute('title', mxResources.get('entityRelation'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_EDGE, mxConstants.STYLE_ELBOW], ['elbowEdgeStyle', 'horizontal'], 'geIcon geSprite geSprite-helbow', null).setAttribute('title', mxResources.get('horizontal'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_EDGE, mxConstants.STYLE_ELBOW], ['elbowEdgeStyle', 'vertical'], 'geIcon geSprite geSprite-velbow', null).setAttribute('title', mxResources.get('vertical'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_EDGE], ['segmentEdgeStyle'], 'geIcon geSprite geSprite-segment', null).setAttribute('title', mxResources.get('manual'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_EDGE], ['orthogonalEdgeStyle'], 'geIcon geSprite geSprite-orthogonal', null).setAttribute('title', mxResources.get('automatic'));
-       // }));
-       // var linestart = this.addMenuFunction('geSprite-startclassic', mxResources.get('lineend'), false, mxUtils.bind(this, function(menu)
-       // {
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.NONE, 0], 'geIcon geSprite geSprite-noarrow', null).setAttribute('title', mxResources.get('none'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_CLASSIC, 1], 'geIcon geSprite geSprite-startclassic', null).setAttribute('title', mxResources.get('classic'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_OPEN, 1], 'geIcon geSprite geSprite-startopen', null).setAttribute('title', mxResources.get('openArrow'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_BLOCK, 1], 'geIcon geSprite geSprite-startblock', null).setAttribute('title', mxResources.get('block'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_OVAL, 1], 'geIcon geSprite geSprite-startoval', null).setAttribute('title', mxResources.get('oval'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_DIAMOND, 1], 'geIcon geSprite geSprite-startdiamond', null).setAttribute('title', mxResources.get('diamond'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_DIAMOND_THIN, 1], 'geIcon geSprite geSprite-startthindiamond', null).setAttribute('title', mxResources.get('diamondThin'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_CLASSIC, 0], 'geIcon geSprite geSprite-startclassictrans', null).setAttribute('title', mxResources.get('classic'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_BLOCK, 0], 'geIcon geSprite geSprite-startblocktrans', null).setAttribute('title', mxResources.get('block'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_OVAL, 0], 'geIcon geSprite geSprite-startovaltrans', null).setAttribute('title', mxResources.get('oval'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_DIAMOND, 0], 'geIcon geSprite geSprite-startdiamondtrans', null).setAttribute('title', mxResources.get('diamond'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_STARTARROW, 'startFill'], [mxConstants.ARROW_DIAMOND_THIN, 0], 'geIcon geSprite geSprite-startthindiamondtrans', null).setAttribute('title', mxResources.get('diamondThin'));
-       // }));
-       // var lineend = this.addMenuFunction('geSprite-endclassic', mxResources.get('lineend'), false, mxUtils.bind(this, function(menu)
-       // {
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.NONE, 0], 'geIcon geSprite geSprite-noarrow', null).setAttribute('title', mxResources.get('none'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_CLASSIC, 1], 'geIcon geSprite geSprite-endclassic', null).setAttribute('title', mxResources.get('classic'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_OPEN, 1], 'geIcon geSprite geSprite-endopen', null).setAttribute('title', mxResources.get('openArrow'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_BLOCK, 1], 'geIcon geSprite geSprite-endblock', null).setAttribute('title', mxResources.get('block'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_OVAL, 1], 'geIcon geSprite geSprite-endoval', null).setAttribute('title', mxResources.get('oval'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_DIAMOND, 1], 'geIcon geSprite geSprite-enddiamond', null).setAttribute('title', mxResources.get('diamond'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_DIAMOND_THIN, 1], 'geIcon geSprite geSprite-endthindiamond', null).setAttribute('title', mxResources.get('diamondThin'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_CLASSIC, 0], 'geIcon geSprite geSprite-endclassictrans', null).setAttribute('title', mxResources.get('classic'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_BLOCK, 0], 'geIcon geSprite geSprite-endblocktrans', null).setAttribute('title', mxResources.get('block'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_OVAL, 0], 'geIcon geSprite geSprite-endovaltrans', null).setAttribute('title', mxResources.get('oval'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_DIAMOND, 0], 'geIcon geSprite geSprite-enddiamondtrans', null).setAttribute('title', mxResources.get('diamond'));
-       //      this.editorUi.menus.styleChange(menu, '', [mxConstants.STYLE_ENDARROW, 'endFill'], [mxConstants.ARROW_DIAMOND_THIN, 0], 'geIcon geSprite geSprite-endthindiamondtrans', null).setAttribute('title', mxResources.get('diamondThin'));
-       // }));
-       // this.addItems(['-', 'strokeColor', 'image', 'fillColor']);
-       // this.addItem('geSprite-gradientcolor', 'gradientColor').setAttribute('title', mxResources.get('gradient'));
-       // this.addItems(['shadow']);
-
-       var graph = this.editorUi.editor.graph;
-
-       // Update font size and font family labels
-       var update = mxUtils.bind(this, function()
-       {
-               var ff = 'Helvetica';
-               var fs = '12';
-       var state = graph.getView().getState(graph.getSelectionCell());
-
-       if (state != null)
-       {
-               ff = state.style[mxConstants.STYLE_FONTFAMILY] || ff;
-               fs = state.style[mxConstants.STYLE_FONTSIZE] || fs;
-
-               if (ff.length > 10)
-               {
-                       ff = ff.substring(0, 8) + '...';
-               }
-
-               fontElt.innerHTML = ff;
-               sizeElt.innerHTML = fs;
-       }
-       });
-
-    graph.getSelectionModel().addListener(mxEvent.CHANGE, update);
-    graph.getModel().addListener(mxEvent.CHANGE, update);
-
-       // Giuseppe Careri
-       // Updates button states
-  //this.addEdgeSelectionHandler([line, linestart, lineend]);
-       //this.addSelectionHandler([align]);
-};
-
-/**
- * Hides the current menu.
- */
-Toolbar.prototype.hideMenu = function()
-{
-       if (this.currentMenu != null)
-       {
-               this.currentMenu.hideMenu();
-               this.currentMenu.destroy();
-               this.currentMenu = null;
-       }
-};
-
-/**
- * Adds a label to the toolbar.
- */
-Toolbar.prototype.addMenu = function(label, tooltip, showLabels, name)
-{
-       var menu = this.editorUi.menus.get(name);
-       var elt = this.addMenuFunction(label, tooltip, showLabels, menu.funct);
-
-       menu.addListener('stateChanged', function()
-       {
-               elt.setEnabled(menu.enabled);
-       });
-
-       return elt;
-};
-
-/**
- * Adds a label to the toolbar.
- */
-Toolbar.prototype.addMenuFunction = function(label, tooltip, showLabels, funct)
-{
-       var elt = (showLabels) ? this.createLabel(label) : this.createButton(label);
-       this.initElement(elt, tooltip);
-       this.addMenuHandler(elt, showLabels, funct);
-       this.container.appendChild(elt);
-
-       return elt;
-};
-
-/**
- * Adds a separator to the separator.
- */
-Toolbar.prototype.addSeparator = function()
-{
-       var elt = document.createElement('div');
-       elt.className = 'geSeparator';
-       this.container.appendChild(elt);
-
-       return elt;
-};
-
-/**
- * Adds given action item
- */
-Toolbar.prototype.addItems = function(keys)
-{
-       for (var i = 0; i < keys.length; i++)
-       {
-               var key = keys[i];
-
-               if (key == '-')
-               {
-                       this.addSeparator();
-               }
-               else
-               {
-                       this.addItem('geSprite-' + key.toLowerCase(), key);
-               }
-       }
-};
-
-/**
- * Adds given action item
- */
-Toolbar.prototype.addItem = function(sprite, key)
-{
-       var action = this.editorUi.actions.get(key);
-       var elt = null;
-
-       if (action != null)
-       {
-               elt = this.addButton(sprite, action.label, action.funct);
-               elt.setEnabled(action.enabled);
-
-               action.addListener('stateChanged', function()
-               {
-                       elt.setEnabled(action.enabled);
-               });
-       }
-
-       return elt;
-};
-
-/**
- * Adds a button to the toolbar.
- */
-Toolbar.prototype.addButton = function(classname, tooltip, funct)
-{
-       var elt = this.createButton(classname);
-
-       this.initElement(elt, tooltip);
-       this.addClickHandler(elt, funct);
-       this.container.appendChild(elt);
-
-       return elt;
-};
-
-/**
- * Updates the states of the given toolbar items based on the selection.
- */
-Toolbar.prototype.addSelectionHandler = function(items)
-{
-       var graph = this.editorUi.editor.graph;
-
-       var selectionListener = function()
-    {
-       var selected = !graph.isSelectionEmpty();
-
-       for (var i = 0; i < items.length; i++)
-       {
-               items[i].setEnabled(selected);
-       }
-    };
-
-    graph.getSelectionModel().addListener(mxEvent.CHANGE, selectionListener);
-    selectionListener();
-};
-
-/**
- * Updates the states of the given toolbar items based on the selection.
- */
-Toolbar.prototype.addEdgeSelectionHandler = function(items)
-{
-       var graph = this.editorUi.editor.graph;
-
-       var selectionListener = function()
-    {
-               var edgeSelected = false;
-
-               if (!graph.isSelectionEmpty())
-               {
-                       var cells = graph.getSelectionCells();
-
-                       for (var i = 0; i < cells.length; i++)
-                       {
-                               if (graph.getModel().isEdge(cells[i]))
-                               {
-                                       edgeSelected = true;
-                                       break;
-                               }
-                       }
-               }
-
-       for (var i = 0; i < items.length; i++)
-       {
-               items[i].setEnabled(edgeSelected);
-       }
-    };
-
-    graph.getSelectionModel().addListener(mxEvent.CHANGE, selectionListener);
-    selectionListener();
-};
-
-/**
- * Initializes the given toolbar element.
- */
-Toolbar.prototype.initElement = function(elt, tooltip)
-{
-       elt.setAttribute('tabindex', '0');
-
-       // Adds tooltip
-       if (tooltip != null)
-       {
-               elt.setAttribute('title', tooltip);
-       }
-
-       this.addEnabledState(elt);
-};
-
-/**
- * Adds enabled state with setter to DOM node (avoids JS wrapper).
- */
-Toolbar.prototype.addEnabledState = function(elt)
-{
-       var classname = elt.className;
-
-       elt.setEnabled = function(value)
-       {
-               elt.enabled = value;
-
-               if (value)
-               {
-                       elt.className = classname;
-               }
-               else
-               {
-                       elt.className = classname + ' geDisabled';
-               }
-       };
-
-       elt.setEnabled(true);
-};
-
-/**
- * Adds enabled state with setter to DOM node (avoids JS wrapper).
- */
-Toolbar.prototype.addClickHandler = function(elt, funct)
-{
-       if (funct != null)
-       {
-               mxEvent.addListener(elt, 'click', function(evt)
-               {
-                       if (elt.enabled)
-                       {
-                               funct(evt);
-                       }
-
-                       mxEvent.consume(evt);
-               });
-       }
-};
-
-/**
- * Creates and returns a new button.
- */
-Toolbar.prototype.createButton = function(classname)
-{
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geButton';
-
-       var inner = document.createElement('div');
-       inner.className = 'geSprite ' + classname;
-       elt.appendChild(inner);
-
-       return elt;
-};
-
-/**
- * Creates and returns a new button.
- */
-Toolbar.prototype.createLabel = function(label, tooltip)
-{
-       var elt = document.createElement('a');
-       elt.setAttribute('href', 'javascript:void(0);');
-       elt.className = 'geLabel';
-       mxUtils.write(elt, label);
-
-       return elt;
-};
-
-/**
- * Adds a handler for showing a menu in the given element.
- */
-Toolbar.prototype.addMenuHandler = function(elt, showLabels, funct, showAll)
-{
-       if (funct != null)
-       {
-               var graph = this.editorUi.editor.graph;
-               var menu = null;
-
-               mxEvent.addListener(elt, 'click', mxUtils.bind(this, function(evt)
-               {
-                       if (elt.enabled == null || elt.enabled)
-                       {
-                               graph.panningHandler.hideMenu();
-                               menu = new mxPopupMenu(funct);
-                               menu.div.className += ' geToolbarMenu';
-                               menu.showDisabled = showAll;
-                               menu.labels = showLabels;
-                               menu.autoExpand = true;
-
-                               menu.popup(elt.offsetLeft, elt.offsetTop + elt.offsetHeight + 34, null, evt);
-                               this.currentMenu = menu;
-                       }
-
-                       mxEvent.consume(evt);
-               }));
-       }
-};
+var _0xd3b0=["\x65\x64\x69\x74\x6F\x72\x55\x69","\x63\x6F\x6E\x74\x61\x69\x6E\x65\x72","\x69\x6E\x69\x74","\x68\x69\x64\x65\x4D\x65\x6E\x75","\x62\x69\x6E\x64","\x61\x64\x64\x47\x65\x73\x74\x75\x72\x65\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x61\x76\x65","\x70\x75\x62\x6C\x69\x73\x68","\x2D","\x70\x72\x69\x6E\x74","\x75\x6E\x64\x6F","\x72\x65\x64\x6F","\x63\x6F\x70\x79","\x63\x75\x74","\x70\x61\x73\x74\x65","\x64\x65\x6C\x65\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65","\x61\x63\x74\x75\x61\x6C\x53\x69\x7A\x65","\x7A\x6F\x6F\x6D\x49\x6E","\x7A\x6F\x6F\x6D\x4F\x75\x74","\x61\x64\x64\x49\x74\x65\x6D\x73","\x48\x65\x6C\x76\x65\x74\x69\x63\x61","\x66\x6F\x6E\x74\x46\x61\x6D\x69\x6C\x79","\x67\x65\x74","\x61\x64\x64\x4D\x65\x6E\x75","\x77\x68\x69\x74\x65\x53\x70\x61\x63\x65","\x73\x74\x79\x6C\x65","\x6E\x6F\x77\x72\x61\x70","\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x68\x69\x64\x64\x65\x6E","\x77\x69\x64\x74\x68","\x37\x30\x70\x78","\x61\x64\x64\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x31\x32","\x66\x6F\x6E\x74\x53\x69\x7A\x65","\x33\x30\x70\x78","\x62\x6F\x6C\x64","\x69\x74\x61\x6C\x69\x63","\x75\x6E\x64\x65\x72\x6C\x69\x6E\x65","\x67\x72\x61\x70\x68","\x65\x64\x69\x74\x6F\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C","\x67\x65\x74\x53\x74\x61\x74\x65","\x67\x65\x74\x56\x69\x65\x77","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x46\x41\x4D\x49\x4C\x59","\x53\x54\x59\x4C\x45\x5F\x46\x4F\x4E\x54\x53\x49\x5A\x45","\x6C\x65\x6E\x67\x74\x68","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x2E\x2E\x2E","\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C","\x61\x64\x64\x4C\x69\x73\x74\x65\x6E\x65\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x4D\x6F\x64\x65\x6C","\x67\x65\x74\x4D\x6F\x64\x65\x6C","\x63\x75\x72\x72\x65\x6E\x74\x4D\x65\x6E\x75","\x64\x65\x73\x74\x72\x6F\x79","\x6D\x65\x6E\x75\x73","\x66\x75\x6E\x63\x74","\x61\x64\x64\x4D\x65\x6E\x75\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x73\x74\x61\x74\x65\x43\x68\x61\x6E\x67\x65\x64","\x65\x6E\x61\x62\x6C\x65\x64","\x73\x65\x74\x45\x6E\x61\x62\x6C\x65\x64","\x63\x72\x65\x61\x74\x65\x4C\x61\x62\x65\x6C","\x63\x72\x65\x61\x74\x65\x42\x75\x74\x74\x6F\x6E","\x69\x6E\x69\x74\x45\x6C\x65\x6D\x65\x6E\x74","\x61\x64\x64\x4D\x65\x6E\x75\x48\x61\x6E\x64\x6C\x65\x72","\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64","\x64\x69\x76","\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74","\x63\x6C\x61\x73\x73\x4E\x61\x6D\x65","\x67\x65\x53\x65\x70\x61\x72\x61\x74\x6F\x72","\x67\x65\x53\x70\x72\x69\x74\x65\x2D","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x64\x49\x74\x65\x6D","\x61\x63\x74\x69\x6F\x6E\x73","\x6C\x61\x62\x65\x6C","\x61\x64\x64\x42\x75\x74\x74\x6F\x6E","\x61\x64\x64\x43\x6C\x69\x63\x6B\x48\x61\x6E\x64\x6C\x65\x72","\x61\x64\x64\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x45\x6D\x70\x74\x79","\x61\x64\x64\x45\x64\x67\x65\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x48\x61\x6E\x64\x6C\x65\x72","\x67\x65\x74\x53\x65\x6C\x65\x63\x74\x69\x6F\x6E\x43\x65\x6C\x6C\x73","\x69\x73\x45\x64\x67\x65","\x74\x61\x62\x69\x6E\x64\x65\x78","\x30","\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65","\x74\x69\x74\x6C\x65","\x61\x64\x64\x45\x6E\x61\x62\x6C\x65\x64\x53\x74\x61\x74\x65","\x20\x67\x65\x44\x69\x73\x61\x62\x6C\x65\x64","\x63\x6C\x69\x63\x6B","\x63\x6F\x6E\x73\x75\x6D\x65","\x61","\x68\x72\x65\x66","\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x76\x6F\x69\x64\x28\x30\x29\x3B","\x67\x65\x42\x75\x74\x74\x6F\x6E","\x67\x65\x53\x70\x72\x69\x74\x65\x20","\x67\x65\x4C\x61\x62\x65\x6C","\x77\x72\x69\x74\x65","\x70\x61\x6E\x6E\x69\x6E\x67\x48\x61\x6E\x64\x6C\x65\x72","\x20\x67\x65\x54\x6F\x6F\x6C\x62\x61\x72\x4D\x65\x6E\x75","\x73\x68\x6F\x77\x44\x69\x73\x61\x62\x6C\x65\x64","\x6C\x61\x62\x65\x6C\x73","\x61\x75\x74\x6F\x45\x78\x70\x61\x6E\x64","\x6F\x66\x66\x73\x65\x74\x4C\x65\x66\x74","\x6F\x66\x66\x73\x65\x74\x54\x6F\x70","\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74","\x70\x6F\x70\x75\x70"];function Toolbar(_0xf5b0x2,_0xf5b0x3){this[_0xd3b0[0]]=_0xf5b0x2;this[_0xd3b0[1]]=_0xf5b0x3;this[_0xd3b0[2]]();mxEvent[_0xd3b0[5]](document,mxUtils[_0xd3b0[4]](this,function(_0xf5b0x4){this[_0xd3b0[3]]()}))}Toolbar[_0xd3b0[6]][_0xd3b0[2]]=function(){this[_0xd3b0[21]]([_0xd3b0[7],_0xd3b0[8],_0xd3b0[9],_0xd3b0[10],_0xd3b0[11],_0xd3b0[12],_0xd3b0[9],_0xd3b0[13],_0xd3b0[14],_0xd3b0[15],_0xd3b0[16],_0xd3b0[9],_0xd3b0[17],_0xd3b0[9],_0xd3b0[18],_0xd3b0[19],_0xd3b0[20],_0xd3b0[9]]);var _0xf5b0x5=this[_0xd3b0[25]](_0xd3b0[22],mxResources[_0xd3b0[24]](_0xd3b0[23]),true,_0xd3b0[23]);_0xf5b0x5[_0xd3b0[27]][_0xd3b0[26]]=_0xd3b0[28];_0xf5b0x5[_0xd3b0[27]][_0xd3b0[29]]=_0xd3b0[30];_0xf5b0x5[_0xd3b0[27]][_0xd3b0[31]]=_0xd3b0[32];this[_0xd3b0[33]]();var _0xf5b0x6=this[_0xd3b0[25]](_0xd3b0[34],mxResources[_0xd3b0[24]](_0xd3b0[35]),true,_0xd3b0[35]);_0xf5b0x6[_0xd3b0[27]][_0xd3b0[26]]=_0xd3b0[28];_0xf5b0x6[_0xd3b0[27]][_0xd3b0[29]]=_0xd3b0[30];_0xf5b0x6[_0xd3b0[27]][_0xd3b0[31]]=_0xd3b0[36];this[_0xd3b0[21]]([_0xd3b0[9],_0xd3b0[37],_0xd3b0[38],_0xd3b0[39]]);var _0xf5b0x7=this[_0xd3b0[0]][_0xd3b0[41]][_0xd3b0[40]];var _0xf5b0x8=mxUtils[_0xd3b0[4]](this,function(){var _0xf5b0x9=_0xd3b0[22];var _0xf5b0xa=_0xd3b0[34];var _0xf5b0xb=_0xf5b0x7[_0xd3b0[44]]()[_0xd3b0[43]](_0xf5b0x7[_0xd3b0[42]]());if(_0xf5b0xb!=null){_0xf5b0x9=_0xf5b0xb[_0xd3b0[27]][mxConstants[_0xd3b0[45]]]||_0xf5b0x9;_0xf5b0xa=_0xf5b0xb[_0xd3b0[27]][mxConstants[_0xd3b0[46]]]||_0xf5b0xa;if(_0xf5b0x9[_0xd3b0[47]]>10){_0xf5b0x9=_0xf5b0x9[_0xd3b0[48]](0,8)+_0xd3b0[49]};_0xf5b0x5[_0xd3b0[50]]=_0xf5b0x9;_0xf5b0x6[_0xd3b0[50]]=_0xf5b0xa}});_0xf5b0x7[_0xd3b0[52]]()[_0xd3b0[51]](mxEvent.CHANGE,_0xf5b0x8);_0xf5b0x7[_0xd3b0[53]]()[_0xd3b0[51]](mxEvent.CHANGE,_0xf5b0x8)};Toolbar[_0xd3b0[6]][_0xd3b0[3]]=function(){if(this[_0xd3b0[54]]!=null){this[_0xd3b0[54]][_0xd3b0[3]]();this[_0xd3b0[54]][_0xd3b0[55]]();this[_0xd3b0[54]]=null}};Toolbar[_0xd3b0[6]][_0xd3b0[25]]=function(_0xf5b0xc,_0xf5b0xd,_0xf5b0xe,_0xf5b0xf){var _0xf5b0x10=this[_0xd3b0[0]][_0xd3b0[56]][_0xd3b0[24]](_0xf5b0xf);var _0xf5b0x11=this[_0xd3b0[58]](_0xf5b0xc,_0xf5b0xd,_0xf5b0xe,_0xf5b0x10[_0xd3b0[57]]);_0xf5b0x10[_0xd3b0[51]](_0xd3b0[59],function(){_0xf5b0x11[_0xd3b0[61]](_0xf5b0x10[_0xd3b0[60]])});return _0xf5b0x11};Toolbar[_0xd3b0[6]][_0xd3b0[58]]=function(_0xf5b0xc,_0xf5b0xd,_0xf5b0xe,_0xf5b0x12){var _0xf5b0x11=(_0xf5b0xe)?this[_0xd3b0[62]](_0xf5b0xc):this[_0xd3b0[63]](_0xf5b0xc);this[_0xd3b0[64]](_0xf5b0x11,_0xf5b0xd);this[_0xd3b0[65]](_0xf5b0x11,_0xf5b0xe,_0xf5b0x12);this[_0xd3b0[1]][_0xd3b0[66]](_0xf5b0x11);return _0xf5b0x11};Toolbar[_0xd3b0[6]][_0xd3b0[33]]=function(){var _0xf5b0x11=document[_0xd3b0[68]](_0xd3b0[67]);_0xf5b0x11[_0xd3b0[69]]=_0xd3b0[70];this[_0xd3b0[1]][_0xd3b0[66]](_0xf5b0x11);return _0xf5b0x11};Toolbar[_0xd3b0[6]][_0xd3b0[21]]=function(_0xf5b0x13){for(var _0xf5b0x14=0;_0xf5b0x14<_0xf5b0x13[_0xd3b0[47]];_0xf5b0x14++){var _0xf5b0x15=_0xf5b0x13[_0xf5b0x14];if(_0xf5b0x15==_0xd3b0[9]){this[_0xd3b0[33]]()}else {this[_0xd3b0[73]](_0xd3b0[71]+_0xf5b0x15[_0xd3b0[72]](),_0xf5b0x15)}}};Toolbar[_0xd3b0[6]][_0xd3b0[73]]=function(_0xf5b0x16,_0xf5b0x15){var _0xf5b0x17=this[_0xd3b0[0]][_0xd3b0[74]][_0xd3b0[24]](_0xf5b0x15);var _0xf5b0x11=null;if(_0xf5b0x17!=null){_0xf5b0x11=this[_0xd3b0[76]](_0xf5b0x16,_0xf5b0x17[_0xd3b0[75]],_0xf5b0x17[_0xd3b0[57]]);_0xf5b0x11[_0xd3b0[61]](_0xf5b0x17[_0xd3b0[60]]);_0xf5b0x17[_0xd3b0[51]](_0xd3b0[59],function(){_0xf5b0x11[_0xd3b0[61]](_0xf5b0x17[_0xd3b0[60]])})};return _0xf5b0x11};Toolbar[_0xd3b0[6]][_0xd3b0[76]]=function(_0xf5b0x18,_0xf5b0xd,_0xf5b0x12){var _0xf5b0x11=this[_0xd3b0[63]](_0xf5b0x18);this[_0xd3b0[64]](_0xf5b0x11,_0xf5b0xd);this[_0xd3b0[77]](_0xf5b0x11,_0xf5b0x12);this[_0xd3b0[1]][_0xd3b0[66]](_0xf5b0x11);return _0xf5b0x11};Toolbar[_0xd3b0[6]][_0xd3b0[78]]=function(_0xf5b0x19){var _0xf5b0x7=this[_0xd3b0[0]][_0xd3b0[41]][_0xd3b0[40]];var _0xf5b0x1a=function(){var _0xf5b0x1b=!_0xf5b0x7[_0xd3b0[79]]();for(var _0xf5b0x14=0;_0xf5b0x14<_0xf5b0x19[_0xd3b0[47]];_0xf5b0x14++){_0xf5b0x19[_0xf5b0x14][_0xd3b0[61]](_0xf5b0x1b)}};_0xf5b0x7[_0xd3b0[52]]()[_0xd3b0[51]](mxEvent.CHANGE,_0xf5b0x1a);_0xf5b0x1a()};Toolbar[_0xd3b0[6]][_0xd3b0[80]]=function(_0xf5b0x19){var _0xf5b0x7=this[_0xd3b0[0]][_0xd3b0[41]][_0xd3b0[40]];var _0xf5b0x1a=function(){var _0xf5b0x1c=false;if(!_0xf5b0x7[_0xd3b0[79]]()){var _0xf5b0x1d=_0xf5b0x7[_0xd3b0[81]]();for(var _0xf5b0x14=0;_0xf5b0x14<_0xf5b0x1d[_0xd3b0[47]];_0xf5b0x14++){if(_0xf5b0x7[_0xd3b0[53]]()[_0xd3b0[82]](_0xf5b0x1d[_0xf5b0x14])){_0xf5b0x1c=true;break}}};for(var _0xf5b0x14=0;_0xf5b0x14<_0xf5b0x19[_0xd3b0[47]];_0xf5b0x14++){_0xf5b0x19[_0xf5b0x14][_0xd3b0[61]](_0xf5b0x1c)}};_0xf5b0x7[_0xd3b0[52]]()[_0xd3b0[51]](mxEvent.CHANGE,_0xf5b0x1a);_0xf5b0x1a()};Toolbar[_0xd3b0[6]][_0xd3b0[64]]=function(_0xf5b0x11,_0xf5b0xd){_0xf5b0x11[_0xd3b0[85]](_0xd3b0[83],_0xd3b0[84]);if(_0xf5b0xd!=null){_0xf5b0x11[_0xd3b0[85]](_0xd3b0[86],_0xf5b0xd)};this[_0xd3b0[87]](_0xf5b0x11)};Toolbar[_0xd3b0[6]][_0xd3b0[87]]=function(_0xf5b0x11){var _0xf5b0x18=_0xf5b0x11[_0xd3b0[69]];_0xf5b0x11[_0xd3b0[61]]=function(_0xf5b0x1e){_0xf5b0x11[_0xd3b0[60]]=_0xf5b0x1e;if(_0xf5b0x1e){_0xf5b0x11[_0xd3b0[69]]=_0xf5b0x18}else {_0xf5b0x11[_0xd3b0[69]]=_0xf5b0x18+_0xd3b0[88]}};_0xf5b0x11[_0xd3b0[61]](true)};Toolbar[_0xd3b0[6]][_0xd3b0[77]]=function(_0xf5b0x11,_0xf5b0x12){if(_0xf5b0x12!=null){mxEvent[_0xd3b0[51]](_0xf5b0x11,_0xd3b0[89],function(_0xf5b0x4){if(_0xf5b0x11[_0xd3b0[60]]){_0xf5b0x12(_0xf5b0x4)};mxEvent[_0xd3b0[90]](_0xf5b0x4)})}};Toolbar[_0xd3b0[6]][_0xd3b0[63]]=function(_0xf5b0x18){var _0xf5b0x11=document[_0xd3b0[68]](_0xd3b0[91]);_0xf5b0x11[_0xd3b0[85]](_0xd3b0[92],_0xd3b0[93]);_0xf5b0x11[_0xd3b0[69]]=_0xd3b0[94];var _0xf5b0x1f=document[_0xd3b0[68]](_0xd3b0[67]);_0xf5b0x1f[_0xd3b0[69]]=_0xd3b0[95]+_0xf5b0x18;_0xf5b0x11[_0xd3b0[66]](_0xf5b0x1f);return _0xf5b0x11};Toolbar[_0xd3b0[6]][_0xd3b0[62]]=function(_0xf5b0xc,_0xf5b0xd){var _0xf5b0x11=document[_0xd3b0[68]](_0xd3b0[91]);_0xf5b0x11[_0xd3b0[85]](_0xd3b0[92],_0xd3b0[93]);_0xf5b0x11[_0xd3b0[69]]=_0xd3b0[96];mxUtils[_0xd3b0[97]](_0xf5b0x11,_0xf5b0xc);return _0xf5b0x11};Toolbar[_0xd3b0[6]][_0xd3b0[65]]=function(_0xf5b0x11,_0xf5b0xe,_0xf5b0x12,_0xf5b0x20){if(_0xf5b0x12!=null){var _0xf5b0x7=this[_0xd3b0[0]][_0xd3b0[41]][_0xd3b0[40]];var _0xf5b0x10=null;mxEvent[_0xd3b0[51]](_0xf5b0x11,_0xd3b0[89],mxUtils[_0xd3b0[4]](this,function(_0xf5b0x4){if(_0xf5b0x11[_0xd3b0[60]]==null||_0xf5b0x11[_0xd3b0[60]]){_0xf5b0x7[_0xd3b0[98]][_0xd3b0[3]]();_0xf5b0x10= new mxPopupMenu(_0xf5b0x12);_0xf5b0x10[_0xd3b0[67]][_0xd3b0[69]]+=_0xd3b0[99];_0xf5b0x10[_0xd3b0[100]]=_0xf5b0x20;_0xf5b0x10[_0xd3b0[101]]=_0xf5b0xe;_0xf5b0x10[_0xd3b0[102]]=true;_0xf5b0x10[_0xd3b0[106]](_0xf5b0x11[_0xd3b0[103]],_0xf5b0x11[_0xd3b0[104]]+_0xf5b0x11[_0xd3b0[105]]+34,null,_0xf5b0x4);this[_0xd3b0[54]]=_0xf5b0x10};mxEvent[_0xd3b0[90]](_0xf5b0x4)}))}}
\ No newline at end of file
index 39607c6..ad533e4 100644 (file)
@@ -1,283 +1 @@
-var urlParams = (function(url) {
-       var result = new Object();
-       var idx = url.lastIndexOf('?');
-
-       if (idx > 0) {
-               var params = url.substring(idx + 1).split('&');
-
-               for (var i = 0; i < params.length; i++) {
-                       idx = params[i].indexOf('=');
-
-                       if (idx > 0) {
-                               result[params[i].substring(0, idx)] = params[i].substring(idx + 1);
-                       }
-               }
-       }
-
-       return result;
-})(window.location.href);
-
-var t0 = new Date();
-
-// Public global variables
-var MAX_REQUEST_SIZE = 10485760;
-var MAX_WIDTH = 12000;
-var MAX_HEIGHT = 12000;
-
-// CUSTOM_PARAMETERS - URLs for save and export
-var EXPORT_URL = 'http://exp.draw.io/ImageExport2/export';
-var SHARE_HOST = 'http://localhost:3000';
-
-var SAVE_URL = 'api/square/projects/';
-var VARIABLE_URL = '/api/variables';
-
-// Paths and files
-var STENCIL_PATH = '/assets/plugins/square/stencils';
-var SHAPES_PATH = '/assets/plugins/square/shapes';
-var IMAGE_PATH = '/assets/plugins/mxgraph/images';
-// Path for images inside the diagram
-//var GRAPH_IMAGE_PATH = 'assets/plugins/mxgraph/img';
-//var ICONFINDER_PATH = 'iconfinder';
-var STYLE_PATH = '/assets/plugins/mxgraph/styles';
-var CSS_PATH = '/assets/plugins/mxgraph/styles';
-var OPEN_FORM = 'api/square/projects/open';
-var TEMPLATE_PATH = '/assets/plugins/square/templates';
-
-// Directory for i18 files and basename for main i18n file
-var RESOURCES_PATH = '/assets/plugins/square/resources';
-var RESOURCE_BASE = RESOURCES_PATH + '/dia';
-
-// Specifies connection mode for touch devices (at least one should be true)
-var tapAndHoldStartsConnection = true;
-var showConnectorImg = true;
-
-var mxLoadResources = false;
-// var mxLanguage = 'it';
-console.log('custom', localStorage.getItem("NG_TRANSLATE_LANG_KEY"));
-switch (localStorage.getItem("NG_TRANSLATE_LANG_KEY")) {
-       case 'en_EN':
-               mxLanguage = 'en';
-               break;
-       case 'it':
-               mxLanguage = 'it';
-               break;
-       default:
-               mxLanguage = 'en';
-}
-console.log('mxLanguage', mxLanguage);
-
-var mxLanguages = ['ar', 'bs', 'cs', 'da', 'de', 'el', 'es', 'es-ar', 'fr',
-       'hu', 'id', 'it', 'ja', 'ko', 'nl', 'no', 'pl', 'pt-br', 'pt', 'ro', 'ru',
-       'sr', 'sv', 'th', 'tr', 'uk', 'zh'
-];
-var mxBasePath = 'assets/plugins/mxgraph';
-var geBasePath = 'assets/plugins/mxgraph/js';
-
-var ISPEECHLANG = {
-       usenglishfemale: "US English Female",
-       usenglishmale: "US English Male",
-       ukenglishfemale: "UK English Female",
-       ukenglishmale: "UK English Male",
-       auenglishfemale: "Australian English",
-       usspanishfemale: "US Spanish Female",
-       usspanishmale: "US Spanish Male",
-       chchinesefemale: "Chinese Female",
-       chchinesemale: "Chinese Male",
-       hkchinesefemale: "Hong Kong Cantonese Female",
-       twchinesefemale: "Taiwan Chinese Female",
-       jpjapanesefemale: "Japanese Female",
-       jpjapanesemale: "Japanese Male",
-       krkoreanfemale: "Korean Female",
-       krkoreanmale: "Korean Male",
-       caenglishfemale: "Canadian English Female",
-       huhungarianfemale: "Hungarian Female",
-       brportuguesefemale: "Brazilian Portuguese Female",
-       eurportuguesefemale: "European Portuguese Female",
-       eurportuguesemale: "European Portuguese Male",
-       eurspanishfemale: "European Spanish Female",
-       eurspanishmale: "European Spanish Male",
-       eurcatalanfemale: "European Catalan Female",
-       eurczechfemale: "European Czech Female",
-       eurdanishfemale: "European Danish Female",
-       eurfinnishfemale: "European Finnish Female",
-       eurfrenchfemale: "European French Female",
-       eurfrenchmale: "European French Male",
-       eurnorwegianfemale: "European Norwegian Female",
-       eurdutchfemale: "European Dutch Female",
-       eurpolishfemale: "European Polish Female",
-       euritalianfemale: "European Italian Female",
-       eurturkishfemale: "European Turkish Female      ",
-       eurturkishmale: "European Turkish Male",
-       eurgermanfemale: "European German Female",
-       eurgermanmale: "European German Male",
-       rurussianfemale: "Russian Female",
-       rurussianmale: "Russian Male",
-       swswedishfemale: "Swedish Female",
-       cafrenchfemale: "Canadian French Female",
-       cafrenchmale: "Canadian French Male"
-};
-
-var ISPEECHASRLANG = {
-       "en-US": "English (US)",
-       "en-CA": "English (Canada)",
-       "en-GB": "English (UK)",
-       "en-AU": "English (Australia)",
-       "es-ES": "Spanish (Spain)",
-       "es-MX": "Spanish (Mexico)",
-       "it-IT": "Italian (Italy) / Finnish (Finland)",
-       "fr-FR": "French (France)",
-       "fr-CA": "French (Canada)",
-       "pl-PL": "Polish (Poland)",
-       "pt-PT": "Portuguese (Portugal)",
-       "ca-ES": "Catalan (Catalan)",
-       "zh-TW": "Chinese (Taiwan)",
-       "da-DK": "Danish (Denmark)",
-       "fr-FR": "German (Germany)",
-       "ja-JP": "Japanese (Japan)",
-       "ko-KR": "Korean (Korea)",
-       "nl-NL": "Dutch (Netherlands)",
-       "nb-NO": "Norwegian (Norway)",
-       "pt-BR": "Portuguese (Brazil)",
-       "ru-RU": "Russian (Russia)",
-       "sv-SE": "Swedish (Sweden)",
-       "zh-CN": "Chinese (China)",
-       "zh-HK": "Chinese (Hong Kong)"
-};
-
-var ISPEECHASRMODEL = {
-       0: "Default",
-       date: "Date",
-       usmoney: "US Money",
-       numbersto9: "Numbers to 9",
-       numbersto99: "Numbers to 99",
-       numbersto999: "Numbers to 999",
-       time: "Time",
-       phonenumber: "Phone number",
-       streets: "Streets",
-       citystate: "US City/States"
-};
-
-var GOOGLETTSLANG = {
-       "af": "Afrikaans",
-       "sq": "Albanian",
-       "am": "Amharic",
-       "ar": "Arabic",
-       "hy": "Armenian",
-       "az": "Azerbaijani",
-       "eu": "Basque",
-       "be": "Belarusian",
-       "bn": "Bengali",
-       "bh": "Bihari",
-       "bs": "Bosnian",
-       "br": "Breton",
-       "bg": "Bulgarian",
-       "km": "Cambodian",
-       "ca": "Catalan",
-       "zh-CN": "Chinese (Simplified)",
-       "zh-TW": "Chinese (Traditional)",
-       "co": "Corsican",
-       "hr": "Croatian",
-       "cs": "Czech",
-       "da": "Danish",
-       "nl": "Dutch",
-       "en": "English",
-       "eo": "Esperanto",
-       "et": "Estonian",
-       "fo": "Faroese",
-       "tl": "Filipino",
-       "fi": "Finnish",
-       "fr": "French",
-       "fy": "Frisian",
-       "gl": "Galician",
-       "ka": "Georgian",
-       "de": "German",
-       "el": "Greek",
-       "gn": "Guarani",
-       "gu": "Gujarati",
-       "xx-hacker": "Hacker",
-       "ha": "Hausa",
-       "iw": "Hebrew",
-       "hi": "Hindi",
-       "hu": "Hungarian",
-       "is": "Icelandic",
-       "id": "Indonesian",
-       "ia": "Interlingua",
-       "ga": "Irish",
-       "it": "Italian",
-       "jw": "Javanese",
-       "ja": "Japanese",
-       "kn": "Kannada",
-       "kk": "Kazakh",
-       "rw": "Kinyarwanda",
-       "rn": "Kirundi",
-       "xx-klingon": "Klingon",
-       "ku": "Kurdish",
-       "ko": "Korean",
-       "ky": "Kyrgyz",
-       "lo": "Laothian",
-       "la": "Latin",
-       "lv": "Latvian",
-       "ln": "Lingala",
-       "lt": "Lithuanian",
-       "mk": "Macedonian",
-       "mg": "Malagasy",
-       "ms": "Malay",
-       "ml": "Malayalam",
-       "mt": "Maltese",
-       "mi": "Maori",
-       "mr": "Marathi",
-       "mo": "Moldavian",
-       "mn": "Mongolian",
-       "sr-ME": "Montenegrin",
-       "ne": "Nepali",
-       "no": "Norwegian",
-       "nn": "Norwegian (Nynorsk)",
-       "oc": "Occitan",
-       "or": "Oriya",
-       "om": "Oromo",
-       "ps": "Pashto",
-       "fa": "Persian",
-       "xx-pirate": "Pirate",
-       "pl": "Polish",
-       "pt-BR": "Portuguese (Brazil)",
-       "pt-PT": "Portuguese (Portugal)",
-       "pa": "Punjabi",
-       "qu": "Quechua",
-       "ro": "Romanian",
-       "rm": "Romansh",
-       "ru": "Russian",
-       "gd": "Scots Gaelic",
-       "sr": "Serbian",
-       "sh": "Serbo-Croatian",
-       "st": "Sesotho",
-       "sn": "Shona",
-       "sd": "Sindhi",
-       "si": "Sinhalese",
-       "sk": "Slovak",
-       "sl": "Slovenian",
-       "so": "Somali",
-       "es": "Spanish",
-       "su": "Sundanese",
-       "sw": "Swahili",
-       "sv": "Swedish",
-       "tg": "Tajik",
-       "ta": "Tamil",
-       "tt": "Tatar",
-       "te": "Telugu",
-       "th": "Thai",
-       "ti": "Tigrinya",
-       "to": "Tonga",
-       "tr": "Turkish",
-       "tk": "Turkmen",
-       "tw": "Twi",
-       "ug": "Uighur",
-       "uk": "Ukrainian",
-       "ur": "Urdu",
-       "uz": "Uzbek",
-       "vi": "Vietnamese",
-       "cy": "Welsh",
-       "xh": "Xhosa",
-       "yi": "Yiddish",
-       "yo": "Yoruba",
-       "zu": "Zulu"
-};
+var _0xe0a1=["\x68\x72\x65\x66","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x3F","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x26","\x73\x70\x6C\x69\x74","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x6C\x65\x6E\x67\x74\x68","\x3D","\x69\x6E\x64\x65\x78\x4F\x66","\x68\x74\x74\x70\x3A\x2F\x2F\x65\x78\x70\x2E\x64\x72\x61\x77\x2E\x69\x6F\x2F\x49\x6D\x61\x67\x65\x45\x78\x70\x6F\x72\x74\x32\x2F\x65\x78\x70\x6F\x72\x74","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x33\x30\x30\x30","\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F","\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x73\x71\x75\x61\x72\x65\x2F\x73\x74\x65\x6E\x63\x69\x6C\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x73\x71\x75\x61\x72\x65\x2F\x73\x68\x61\x70\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x69\x6D\x61\x67\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x73\x74\x79\x6C\x65\x73","\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x6F\x70\x65\x6E","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x73\x71\x75\x61\x72\x65\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x2F\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x73\x71\x75\x61\x72\x65\x2F\x72\x65\x73\x6F\x75\x72\x63\x65\x73","\x2F\x64\x69\x61","\x63\x75\x73\x74\x6F\x6D","\x4E\x47\x5F\x54\x52\x41\x4E\x53\x4C\x41\x54\x45\x5F\x4C\x41\x4E\x47\x5F\x4B\x45\x59","\x67\x65\x74\x49\x74\x65\x6D","\x6C\x6F\x67","\x65\x6E","\x65\x6E\x5F\x45\x4E","\x69\x74","\x6D\x78\x4C\x61\x6E\x67\x75\x61\x67\x65","\x61\x72","\x62\x73","\x63\x73","\x64\x61","\x64\x65","\x65\x6C","\x65\x73","\x65\x73\x2D\x61\x72","\x66\x72","\x68\x75","\x69\x64","\x6A\x61","\x6B\x6F","\x6E\x6C","\x6E\x6F","\x70\x6C","\x70\x74\x2D\x62\x72","\x70\x74","\x72\x6F","\x72\x75","\x73\x72","\x73\x76","\x74\x68","\x74\x72","\x75\x6B","\x7A\x68","\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68","\x61\x73\x73\x65\x74\x73\x2F\x70\x6C\x75\x67\x69\x6E\x73\x2F\x6D\x78\x67\x72\x61\x70\x68\x2F\x6A\x73","\x55\x53\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x53\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x4D\x61\x6C\x65","\x55\x4B\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x4B\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x4D\x61\x6C\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68","\x55\x53\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x55\x53\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x4D\x61\x6C\x65","\x43\x68\x69\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x43\x68\x69\x6E\x65\x73\x65\x20\x4D\x61\x6C\x65","\x48\x6F\x6E\x67\x20\x4B\x6F\x6E\x67\x20\x43\x61\x6E\x74\x6F\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x54\x61\x69\x77\x61\x6E\x20\x43\x68\x69\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x4D\x61\x6C\x65","\x4B\x6F\x72\x65\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x4B\x6F\x72\x65\x61\x6E\x20\x4D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x48\x75\x6E\x67\x61\x72\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x42\x72\x61\x7A\x69\x6C\x69\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x53\x70\x61\x6E\x69\x73\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x43\x61\x74\x61\x6C\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x43\x7A\x65\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x44\x61\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x69\x6E\x6E\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x44\x75\x74\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x50\x6F\x6C\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x49\x74\x61\x6C\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x54\x75\x72\x6B\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65\x09","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x54\x75\x72\x6B\x69\x73\x68\x20\x4D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x47\x65\x72\x6D\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x45\x75\x72\x6F\x70\x65\x61\x6E\x20\x47\x65\x72\x6D\x61\x6E\x20\x4D\x61\x6C\x65","\x52\x75\x73\x73\x69\x61\x6E\x20\x46\x65\x6D\x61\x6C\x65","\x52\x75\x73\x73\x69\x61\x6E\x20\x4D\x61\x6C\x65","\x53\x77\x65\x64\x69\x73\x68\x20\x46\x65\x6D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x46\x65\x6D\x61\x6C\x65","\x43\x61\x6E\x61\x64\x69\x61\x6E\x20\x46\x72\x65\x6E\x63\x68\x20\x4D\x61\x6C\x65","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x55\x53\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x43\x61\x6E\x61\x64\x61\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x55\x4B\x29","\x45\x6E\x67\x6C\x69\x73\x68\x20\x28\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x29","\x53\x70\x61\x6E\x69\x73\x68\x20\x28\x53\x70\x61\x69\x6E\x29","\x53\x70\x61\x6E\x69\x73\x68\x20\x28\x4D\x65\x78\x69\x63\x6F\x29","\x49\x74\x61\x6C\x69\x61\x6E\x20\x28\x49\x74\x61\x6C\x79\x29\x20\x2F\x20\x46\x69\x6E\x6E\x69\x73\x68\x20\x28\x46\x69\x6E\x6C\x61\x6E\x64\x29","\x46\x72\x65\x6E\x63\x68\x20\x28\x46\x72\x61\x6E\x63\x65\x29","\x46\x72\x65\x6E\x63\x68\x20\x28\x43\x61\x6E\x61\x64\x61\x29","\x50\x6F\x6C\x69\x73\x68\x20\x28\x50\x6F\x6C\x61\x6E\x64\x29","\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x28\x50\x6F\x72\x74\x75\x67\x61\x6C\x29","\x43\x61\x74\x61\x6C\x61\x6E\x20\x28\x43\x61\x74\x61\x6C\x61\x6E\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x54\x61\x69\x77\x61\x6E\x29","\x44\x61\x6E\x69\x73\x68\x20\x28\x44\x65\x6E\x6D\x61\x72\x6B\x29","\x47\x65\x72\x6D\x61\x6E\x20\x28\x47\x65\x72\x6D\x61\x6E\x79\x29","\x4A\x61\x70\x61\x6E\x65\x73\x65\x20\x28\x4A\x61\x70\x61\x6E\x29","\x4B\x6F\x72\x65\x61\x6E\x20\x28\x4B\x6F\x72\x65\x61\x29","\x44\x75\x74\x63\x68\x20\x28\x4E\x65\x74\x68\x65\x72\x6C\x61\x6E\x64\x73\x29","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x28\x4E\x6F\x72\x77\x61\x79\x29","\x50\x6F\x72\x74\x75\x67\x75\x65\x73\x65\x20\x28\x42\x72\x61\x7A\x69\x6C\x29","\x52\x75\x73\x73\x69\x61\x6E\x20\x28\x52\x75\x73\x73\x69\x61\x29","\x53\x77\x65\x64\x69\x73\x68\x20\x28\x53\x77\x65\x64\x65\x6E\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x43\x68\x69\x6E\x61\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x48\x6F\x6E\x67\x20\x4B\x6F\x6E\x67\x29","\x44\x65\x66\x61\x75\x6C\x74","\x44\x61\x74\x65","\x55\x53\x20\x4D\x6F\x6E\x65\x79","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39\x39","\x4E\x75\x6D\x62\x65\x72\x73\x20\x74\x6F\x20\x39\x39\x39","\x54\x69\x6D\x65","\x50\x68\x6F\x6E\x65\x20\x6E\x75\x6D\x62\x65\x72","\x53\x74\x72\x65\x65\x74\x73","\x55\x53\x20\x43\x69\x74\x79\x2F\x53\x74\x61\x74\x65\x73","\x41\x66\x72\x69\x6B\x61\x61\x6E\x73","\x41\x6C\x62\x61\x6E\x69\x61\x6E","\x41\x6D\x68\x61\x72\x69\x63","\x41\x72\x61\x62\x69\x63","\x41\x72\x6D\x65\x6E\x69\x61\x6E","\x41\x7A\x65\x72\x62\x61\x69\x6A\x61\x6E\x69","\x42\x61\x73\x71\x75\x65","\x42\x65\x6C\x61\x72\x75\x73\x69\x61\x6E","\x42\x65\x6E\x67\x61\x6C\x69","\x42\x69\x68\x61\x72\x69","\x42\x6F\x73\x6E\x69\x61\x6E","\x42\x72\x65\x74\x6F\x6E","\x42\x75\x6C\x67\x61\x72\x69\x61\x6E","\x43\x61\x6D\x62\x6F\x64\x69\x61\x6E","\x43\x61\x74\x61\x6C\x61\x6E","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x53\x69\x6D\x70\x6C\x69\x66\x69\x65\x64\x29","\x43\x68\x69\x6E\x65\x73\x65\x20\x28\x54\x72\x61\x64\x69\x74\x69\x6F\x6E\x61\x6C\x29","\x43\x6F\x72\x73\x69\x63\x61\x6E","\x43\x72\x6F\x61\x74\x69\x61\x6E","\x43\x7A\x65\x63\x68","\x44\x61\x6E\x69\x73\x68","\x44\x75\x74\x63\x68","\x45\x6E\x67\x6C\x69\x73\x68","\x45\x73\x70\x65\x72\x61\x6E\x74\x6F","\x45\x73\x74\x6F\x6E\x69\x61\x6E","\x46\x61\x72\x6F\x65\x73\x65","\x46\x69\x6C\x69\x70\x69\x6E\x6F","\x46\x69\x6E\x6E\x69\x73\x68","\x46\x72\x65\x6E\x63\x68","\x46\x72\x69\x73\x69\x61\x6E","\x47\x61\x6C\x69\x63\x69\x61\x6E","\x47\x65\x6F\x72\x67\x69\x61\x6E","\x47\x65\x72\x6D\x61\x6E","\x47\x72\x65\x65\x6B","\x47\x75\x61\x72\x61\x6E\x69","\x47\x75\x6A\x61\x72\x61\x74\x69","\x48\x61\x63\x6B\x65\x72","\x48\x61\x75\x73\x61","\x48\x65\x62\x72\x65\x77","\x48\x69\x6E\x64\x69","\x48\x75\x6E\x67\x61\x72\x69\x61\x6E","\x49\x63\x65\x6C\x61\x6E\x64\x69\x63","\x49\x6E\x64\x6F\x6E\x65\x73\x69\x61\x6E","\x49\x6E\x74\x65\x72\x6C\x69\x6E\x67\x75\x61","\x49\x72\x69\x73\x68","\x49\x74\x61\x6C\x69\x61\x6E","\x4A\x61\x76\x61\x6E\x65\x73\x65","\x4A\x61\x70\x61\x6E\x65\x73\x65","\x4B\x61\x6E\x6E\x61\x64\x61","\x4B\x61\x7A\x61\x6B\x68","\x4B\x69\x6E\x79\x61\x72\x77\x61\x6E\x64\x61","\x4B\x69\x72\x75\x6E\x64\x69","\x4B\x6C\x69\x6E\x67\x6F\x6E","\x4B\x75\x72\x64\x69\x73\x68","\x4B\x6F\x72\x65\x61\x6E","\x4B\x79\x72\x67\x79\x7A","\x4C\x61\x6F\x74\x68\x69\x61\x6E","\x4C\x61\x74\x69\x6E","\x4C\x61\x74\x76\x69\x61\x6E","\x4C\x69\x6E\x67\x61\x6C\x61","\x4C\x69\x74\x68\x75\x61\x6E\x69\x61\x6E","\x4D\x61\x63\x65\x64\x6F\x6E\x69\x61\x6E","\x4D\x61\x6C\x61\x67\x61\x73\x79","\x4D\x61\x6C\x61\x79","\x4D\x61\x6C\x61\x79\x61\x6C\x61\x6D","\x4D\x61\x6C\x74\x65\x73\x65","\x4D\x61\x6F\x72\x69","\x4D\x61\x72\x61\x74\x68\x69","\x4D\x6F\x6C\x64\x61\x76\x69\x61\x6E","\x4D\x6F\x6E\x67\x6F\x6C\x69\x61\x6E","\x4D\x6F\x6E\x74\x65\x6E\x65\x67\x72\x69\x6E","\x4E\x65\x70\x61\x6C\x69","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E","\x4E\x6F\x72\x77\x65\x67\x69\x61\x6E\x20\x28\x4E\x79\x6E\x6F\x72\x73\x6B\x29","\x4F\x63\x63\x69\x74\x61\x6E","\x4F\x72\x69\x79\x61","\x4F\x72\x6F\x6D\x6F","\x50\x61\x73\x68\x74\x6F","\x50\x65\x72\x73\x69\x61\x6E","\x50\x69\x72\x61\x74\x65","\x50\x6F\x6C\x69\x73\x68","\x50\x75\x6E\x6A\x61\x62\x69","\x51\x75\x65\x63\x68\x75\x61","\x52\x6F\x6D\x61\x6E\x69\x61\x6E","\x52\x6F\x6D\x61\x6E\x73\x68","\x52\x75\x73\x73\x69\x61\x6E","\x53\x63\x6F\x74\x73\x20\x47\x61\x65\x6C\x69\x63","\x53\x65\x72\x62\x69\x61\x6E","\x53\x65\x72\x62\x6F\x2D\x43\x72\x6F\x61\x74\x69\x61\x6E","\x53\x65\x73\x6F\x74\x68\x6F","\x53\x68\x6F\x6E\x61","\x53\x69\x6E\x64\x68\x69","\x53\x69\x6E\x68\x61\x6C\x65\x73\x65","\x53\x6C\x6F\x76\x61\x6B","\x53\x6C\x6F\x76\x65\x6E\x69\x61\x6E","\x53\x6F\x6D\x61\x6C\x69","\x53\x70\x61\x6E\x69\x73\x68","\x53\x75\x6E\x64\x61\x6E\x65\x73\x65","\x53\x77\x61\x68\x69\x6C\x69","\x53\x77\x65\x64\x69\x73\x68","\x54\x61\x6A\x69\x6B","\x54\x61\x6D\x69\x6C","\x54\x61\x74\x61\x72","\x54\x65\x6C\x75\x67\x75","\x54\x68\x61\x69","\x54\x69\x67\x72\x69\x6E\x79\x61","\x54\x6F\x6E\x67\x61","\x54\x75\x72\x6B\x69\x73\x68","\x54\x75\x72\x6B\x6D\x65\x6E","\x54\x77\x69","\x55\x69\x67\x68\x75\x72","\x55\x6B\x72\x61\x69\x6E\x69\x61\x6E","\x55\x72\x64\x75","\x55\x7A\x62\x65\x6B","\x56\x69\x65\x74\x6E\x61\x6D\x65\x73\x65","\x57\x65\x6C\x73\x68","\x58\x68\x6F\x73\x61","\x59\x69\x64\x64\x69\x73\x68","\x59\x6F\x72\x75\x62\x61","\x5A\x75\x6C\x75"];var urlParams=(function(_0x706ax2){var _0x706ax3= new Object();var _0x706ax4=_0x706ax2[_0xe0a1[3]](_0xe0a1[2]);if(_0x706ax4>0){var _0x706ax5=_0x706ax2[_0xe0a1[6]](_0x706ax4+1)[_0xe0a1[5]](_0xe0a1[4]);for(var _0x706ax6=0;_0x706ax6<_0x706ax5[_0xe0a1[7]];_0x706ax6++){_0x706ax4=_0x706ax5[_0x706ax6][_0xe0a1[9]](_0xe0a1[8]);if(_0x706ax4>0){_0x706ax3[_0x706ax5[_0x706ax6][_0xe0a1[6]](0,_0x706ax4)]=_0x706ax5[_0x706ax6][_0xe0a1[6]](_0x706ax4+1)}}};return _0x706ax3})(window[_0xe0a1[1]][_0xe0a1[0]]);var t0= new Date();var MAX_REQUEST_SIZE=10485760;var MAX_WIDTH=12000;var MAX_HEIGHT=12000;var EXPORT_URL=_0xe0a1[10];var SHARE_HOST=_0xe0a1[11];var SAVE_URL=_0xe0a1[12];var VARIABLE_URL=_0xe0a1[13];var STENCIL_PATH=_0xe0a1[14];var SHAPES_PATH=_0xe0a1[15];var IMAGE_PATH=_0xe0a1[16];var STYLE_PATH=_0xe0a1[17];var CSS_PATH=_0xe0a1[17];var OPEN_FORM=_0xe0a1[18];var TEMPLATE_PATH=_0xe0a1[19];var RESOURCES_PATH=_0xe0a1[20];var RESOURCE_BASE=RESOURCES_PATH+_0xe0a1[21];var tapAndHoldStartsConnection=true;var showConnectorImg=true;var mxLoadResources=false;console[_0xe0a1[25]](_0xe0a1[22],localStorage[_0xe0a1[24]](_0xe0a1[23]));switch(localStorage[_0xe0a1[24]](_0xe0a1[23])){case _0xe0a1[27]:mxLanguage=_0xe0a1[26];break;case _0xe0a1[28]:mxLanguage=_0xe0a1[28];break;default:mxLanguage=_0xe0a1[26]};console[_0xe0a1[25]](_0xe0a1[29],mxLanguage);var mxLanguages=[_0xe0a1[30],_0xe0a1[31],_0xe0a1[32],_0xe0a1[33],_0xe0a1[34],_0xe0a1[35],_0xe0a1[36],_0xe0a1[37],_0xe0a1[38],_0xe0a1[39],_0xe0a1[40],_0xe0a1[28],_0xe0a1[41],_0xe0a1[42],_0xe0a1[43],_0xe0a1[44],_0xe0a1[45],_0xe0a1[46],_0xe0a1[47],_0xe0a1[48],_0xe0a1[49],_0xe0a1[50],_0xe0a1[51],_0xe0a1[52],_0xe0a1[53],_0xe0a1[54],_0xe0a1[55]];var mxBasePath=_0xe0a1[56];var geBasePath=_0xe0a1[57];var ISPEECHLANG={usenglishfemale:_0xe0a1[58],usenglishmale:_0xe0a1[59],ukenglishfemale:_0xe0a1[60],ukenglishmale:_0xe0a1[61],auenglishfemale:_0xe0a1[62],usspanishfemale:_0xe0a1[63],usspanishmale:_0xe0a1[64],chchinesefemale:_0xe0a1[65],chchinesemale:_0xe0a1[66],hkchinesefemale:_0xe0a1[67],twchinesefemale:_0xe0a1[68],jpjapanesefemale:_0xe0a1[69],jpjapanesemale:_0xe0a1[70],krkoreanfemale:_0xe0a1[71],krkoreanmale:_0xe0a1[72],caenglishfemale:_0xe0a1[73],huhungarianfemale:_0xe0a1[74],brportuguesefemale:_0xe0a1[75],eurportuguesefemale:_0xe0a1[76],eurportuguesemale:_0xe0a1[77],eurspanishfemale:_0xe0a1[78],eurspanishmale:_0xe0a1[79],eurcatalanfemale:_0xe0a1[80],eurczechfemale:_0xe0a1[81],eurdanishfemale:_0xe0a1[82],eurfinnishfemale:_0xe0a1[83],eurfrenchfemale:_0xe0a1[84],eurfrenchmale:_0xe0a1[85],eurnorwegianfemale:_0xe0a1[86],eurdutchfemale:_0xe0a1[87],eurpolishfemale:_0xe0a1[88],euritalianfemale:_0xe0a1[89],eurturkishfemale:_0xe0a1[90],eurturkishmale:_0xe0a1[91],eurgermanfemale:_0xe0a1[92],eurgermanmale:_0xe0a1[93],rurussianfemale:_0xe0a1[94],rurussianmale:_0xe0a1[95],swswedishfemale:_0xe0a1[96],cafrenchfemale:_0xe0a1[97],cafrenchmale:_0xe0a1[98]};var ISPEECHASRLANG={"\x65\x6E\x2D\x55\x53":_0xe0a1[99],"\x65\x6E\x2D\x43\x41":_0xe0a1[100],"\x65\x6E\x2D\x47\x42":_0xe0a1[101],"\x65\x6E\x2D\x41\x55":_0xe0a1[102],"\x65\x73\x2D\x45\x53":_0xe0a1[103],"\x65\x73\x2D\x4D\x58":_0xe0a1[104],"\x69\x74\x2D\x49\x54":_0xe0a1[105],"\x66\x72\x2D\x46\x52":_0xe0a1[106],"\x66\x72\x2D\x43\x41":_0xe0a1[107],"\x70\x6C\x2D\x50\x4C":_0xe0a1[108],"\x70\x74\x2D\x50\x54":_0xe0a1[109],"\x63\x61\x2D\x45\x53":_0xe0a1[110],"\x7A\x68\x2D\x54\x57":_0xe0a1[111],"\x64\x61\x2D\x44\x4B":_0xe0a1[112],"\x66\x72\x2D\x46\x52":_0xe0a1[113],"\x6A\x61\x2D\x4A\x50":_0xe0a1[114],"\x6B\x6F\x2D\x4B\x52":_0xe0a1[115],"\x6E\x6C\x2D\x4E\x4C":_0xe0a1[116],"\x6E\x62\x2D\x4E\x4F":_0xe0a1[117],"\x70\x74\x2D\x42\x52":_0xe0a1[118],"\x72\x75\x2D\x52\x55":_0xe0a1[119],"\x73\x76\x2D\x53\x45":_0xe0a1[120],"\x7A\x68\x2D\x43\x4E":_0xe0a1[121],"\x7A\x68\x2D\x48\x4B":_0xe0a1[122]};var ISPEECHASRMODEL={0:_0xe0a1[123],date:_0xe0a1[124],usmoney:_0xe0a1[125],numbersto9:_0xe0a1[126],numbersto99:_0xe0a1[127],numbersto999:_0xe0a1[128],time:_0xe0a1[129],phonenumber:_0xe0a1[130],streets:_0xe0a1[131],citystate:_0xe0a1[132]};var GOOGLETTSLANG={"\x61\x66":_0xe0a1[133],"\x73\x71":_0xe0a1[134],"\x61\x6D":_0xe0a1[135],"\x61\x72":_0xe0a1[136],"\x68\x79":_0xe0a1[137],"\x61\x7A":_0xe0a1[138],"\x65\x75":_0xe0a1[139],"\x62\x65":_0xe0a1[140],"\x62\x6E":_0xe0a1[141],"\x62\x68":_0xe0a1[142],"\x62\x73":_0xe0a1[143],"\x62\x72":_0xe0a1[144],"\x62\x67":_0xe0a1[145],"\x6B\x6D":_0xe0a1[146],"\x63\x61":_0xe0a1[147],"\x7A\x68\x2D\x43\x4E":_0xe0a1[148],"\x7A\x68\x2D\x54\x57":_0xe0a1[149],"\x63\x6F":_0xe0a1[150],"\x68\x72":_0xe0a1[151],"\x63\x73":_0xe0a1[152],"\x64\x61":_0xe0a1[153],"\x6E\x6C":_0xe0a1[154],"\x65\x6E":_0xe0a1[155],"\x65\x6F":_0xe0a1[156],"\x65\x74":_0xe0a1[157],"\x66\x6F":_0xe0a1[158],"\x74\x6C":_0xe0a1[159],"\x66\x69":_0xe0a1[160],"\x66\x72":_0xe0a1[161],"\x66\x79":_0xe0a1[162],"\x67\x6C":_0xe0a1[163],"\x6B\x61":_0xe0a1[164],"\x64\x65":_0xe0a1[165],"\x65\x6C":_0xe0a1[166],"\x67\x6E":_0xe0a1[167],"\x67\x75":_0xe0a1[168],"\x78\x78\x2D\x68\x61\x63\x6B\x65\x72":_0xe0a1[169],"\x68\x61":_0xe0a1[170],"\x69\x77":_0xe0a1[171],"\x68\x69":_0xe0a1[172],"\x68\x75":_0xe0a1[173],"\x69\x73":_0xe0a1[174],"\x69\x64":_0xe0a1[175],"\x69\x61":_0xe0a1[176],"\x67\x61":_0xe0a1[177],"\x69\x74":_0xe0a1[178],"\x6A\x77":_0xe0a1[179],"\x6A\x61":_0xe0a1[180],"\x6B\x6E":_0xe0a1[181],"\x6B\x6B":_0xe0a1[182],"\x72\x77":_0xe0a1[183],"\x72\x6E":_0xe0a1[184],"\x78\x78\x2D\x6B\x6C\x69\x6E\x67\x6F\x6E":_0xe0a1[185],"\x6B\x75":_0xe0a1[186],"\x6B\x6F":_0xe0a1[187],"\x6B\x79":_0xe0a1[188],"\x6C\x6F":_0xe0a1[189],"\x6C\x61":_0xe0a1[190],"\x6C\x76":_0xe0a1[191],"\x6C\x6E":_0xe0a1[192],"\x6C\x74":_0xe0a1[193],"\x6D\x6B":_0xe0a1[194],"\x6D\x67":_0xe0a1[195],"\x6D\x73":_0xe0a1[196],"\x6D\x6C":_0xe0a1[197],"\x6D\x74":_0xe0a1[198],"\x6D\x69":_0xe0a1[199],"\x6D\x72":_0xe0a1[200],"\x6D\x6F":_0xe0a1[201],"\x6D\x6E":_0xe0a1[202],"\x73\x72\x2D\x4D\x45":_0xe0a1[203],"\x6E\x65":_0xe0a1[204],"\x6E\x6F":_0xe0a1[205],"\x6E\x6E":_0xe0a1[206],"\x6F\x63":_0xe0a1[207],"\x6F\x72":_0xe0a1[208],"\x6F\x6D":_0xe0a1[209],"\x70\x73":_0xe0a1[210],"\x66\x61":_0xe0a1[211],"\x78\x78\x2D\x70\x69\x72\x61\x74\x65":_0xe0a1[212],"\x70\x6C":_0xe0a1[213],"\x70\x74\x2D\x42\x52":_0xe0a1[118],"\x70\x74\x2D\x50\x54":_0xe0a1[109],"\x70\x61":_0xe0a1[214],"\x71\x75":_0xe0a1[215],"\x72\x6F":_0xe0a1[216],"\x72\x6D":_0xe0a1[217],"\x72\x75":_0xe0a1[218],"\x67\x64":_0xe0a1[219],"\x73\x72":_0xe0a1[220],"\x73\x68":_0xe0a1[221],"\x73\x74":_0xe0a1[222],"\x73\x6E":_0xe0a1[223],"\x73\x64":_0xe0a1[224],"\x73\x69":_0xe0a1[225],"\x73\x6B":_0xe0a1[226],"\x73\x6C":_0xe0a1[227],"\x73\x6F":_0xe0a1[228],"\x65\x73":_0xe0a1[229],"\x73\x75":_0xe0a1[230],"\x73\x77":_0xe0a1[231],"\x73\x76":_0xe0a1[232],"\x74\x67":_0xe0a1[233],"\x74\x61":_0xe0a1[234],"\x74\x74":_0xe0a1[235],"\x74\x65":_0xe0a1[236],"\x74\x68":_0xe0a1[237],"\x74\x69":_0xe0a1[238],"\x74\x6F":_0xe0a1[239],"\x74\x72":_0xe0a1[240],"\x74\x6B":_0xe0a1[241],"\x74\x77":_0xe0a1[242],"\x75\x67":_0xe0a1[243],"\x75\x6B":_0xe0a1[244],"\x75\x72":_0xe0a1[245],"\x75\x7A":_0xe0a1[246],"\x76\x69":_0xe0a1[247],"\x63\x79":_0xe0a1[248],"\x78\x68":_0xe0a1[249],"\x79\x69":_0xe0a1[250],"\x79\x6F":_0xe0a1[251],"\x7A\x75":_0xe0a1[252]}
\ No newline at end of file
index 7e9edd7..7ab2d19 100644 (file)
@@ -24,7 +24,7 @@
 'use strict';
 
 angular.module('adf.structures.base', ['adf'])
-  .config(function(dashboardProvider){
+  .config(["dashboardProvider", function(dashboardProvider){
 
     dashboardProvider
       .structure('6-6', {
@@ -113,4 +113,4 @@ angular.module('adf.structures.base', ['adf'])
         }]
       });
 
-  });
+  }]);
diff --git a/public/bower_components/angucomplete-alt/angucomplete-alt.css b/public/bower_components/angucomplete-alt/angucomplete-alt.css
deleted file mode 100644 (file)
index 3406a5b..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-.angucomplete-holder {
-    position: relative;
-}
-
-.angucomplete-dropdown {
-    border-color: #ececec;
-    border-width: 1px;
-    border-style: solid;
-    border-radius: 2px;
-    width: 250px;
-    padding: 6px;
-    cursor: pointer;
-    z-index: 9999;
-    position: absolute;
-    /*top: 32px;
-    left: 0px;
-    */
-    margin-top: -6px;
-    background-color: #ffffff;
-}
-
-.angucomplete-searching {
-    color: #acacac;
-    font-size: 14px;
-}
-
-.angucomplete-description {
-    font-size: 14px;
-}
-
-.angucomplete-row {
-    padding: 5px;
-    color: #000000;
-    margin-bottom: 4px;
-    clear: both;
-}
-
-.angucomplete-selected-row {
-    background-color: lightblue;
-    color: #ffffff;
-}
-
-.angucomplete-image-holder {
-    padding-top: 2px;
-    float: left;
-    margin-right: 10px;
-    margin-left: 5px;
-}
-
-.angucomplete-image {
-    height: 34px;
-    width: 34px;
-    border-radius: 50%;
-    border-color: #ececec;
-    border-style: solid;
-    border-width: 1px;
-}
-
-.angucomplete-image-default {
-    /* Add your own default image here
-     background-image: url('/assets/default.png');
-    */
-    background-position: center;
-    background-size: contain;
-    height: 34px;
-    width: 34px;
-}
diff --git a/public/bower_components/angucomplete-alt/angucomplete-alt.js b/public/bower_components/angucomplete-alt/angucomplete-alt.js
deleted file mode 100644 (file)
index cb5b22c..0000000
+++ /dev/null
@@ -1,833 +0,0 @@
-/*
- * angucomplete-alt
- * Autocomplete directive for AngularJS
- * This is a fork of Daryl Rowland's angucomplete with some extra features.
- * By Hidenari Nozaki
- */
-
-/*! Copyright (c) 2014 Hidenari Nozaki and contributors | Licensed under the MIT license */
-
-(function (root, factory) {
-  'use strict';
-  if (typeof module !== 'undefined' && module.exports) {
-    // CommonJS
-    module.exports = factory(require('angular'));
-  } else if (typeof define === 'function' && define.amd) {
-    // AMD
-    define(['angular'], factory);
-  } else {
-    // Global Variables
-    factory(root.angular);
-  }
-}(window, function (angular) {
-  'use strict';
-
-  angular.module('angucomplete-alt', []).directive('angucompleteAlt', ['$q', '$parse', '$http', '$sce', '$timeout', '$templateCache', '$interpolate', function ($q, $parse, $http, $sce, $timeout, $templateCache, $interpolate) {
-    // keyboard events
-    var KEY_DW  = 40;
-    var KEY_RT  = 39;
-    var KEY_UP  = 38;
-    var KEY_LF  = 37;
-    var KEY_ES  = 27;
-    var KEY_EN  = 13;
-    var KEY_TAB =  9;
-
-    var MIN_LENGTH = 3;
-    var MAX_LENGTH = 524288;  // the default max length per the html maxlength attribute
-    var PAUSE = 500;
-    var BLUR_TIMEOUT = 200;
-
-    // string constants
-    var REQUIRED_CLASS = 'autocomplete-required';
-    var TEXT_SEARCHING = 'Searching...';
-    var TEXT_NORESULTS = 'No results found';
-    var TEMPLATE_URL = '/angucomplete-alt/index.html';
-
-    // Set the default template for this directive
-    $templateCache.put(TEMPLATE_URL,
-        '<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}">' +
-        '  <input id="{{id}}_value" name="{{inputName}}" tabindex="{{fieldTabindex}}" ng-class="{\'angucomplete-input-not-empty\': notEmpty}" ng-model="searchStr" ng-disabled="disableInput" type="{{inputType}}" placeholder="{{placeholder}}" maxlength="{{maxlength}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(searchStr)"/>' +
-        '  <div id="{{id}}_dropdown" class="angucomplete-dropdown" ng-show="showDropdown">' +
-        '    <div class="angucomplete-searching" ng-show="searching" ng-bind="textSearching"></div>' +
-        '    <div class="angucomplete-searching" ng-show="!searching && (!results || results.length == 0)" ng-bind="textNoResults"></div>' +
-        '    <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}">' +
-        '      <div ng-if="imageField" class="angucomplete-image-holder">' +
-        '        <img ng-if="result.image && result.image != \'\'" ng-src="{{result.image}}" class="angucomplete-image"/>' +
-        '        <div ng-if="!result.image && result.image != \'\'" class="angucomplete-image-default"></div>' +
-        '      </div>' +
-        '      <div class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title"></div>' +
-        '      <div class="angucomplete-title" ng-if="!matchClass">{{ result.title }}</div>' +
-        '      <div ng-if="matchClass && result.description && result.description != \'\'" class="angucomplete-description" ng-bind-html="result.description"></div>' +
-        '      <div ng-if="!matchClass && result.description && result.description != \'\'" class="angucomplete-description">{{result.description}}</div>' +
-        '    </div>' +
-        '  </div>' +
-        '</div>'
-    );
-
-    function link(scope, elem, attrs, ctrl) {
-      var inputField = elem.find('input');
-      var minlength = MIN_LENGTH;
-      var searchTimer = null;
-      var hideTimer;
-      var requiredClassName = REQUIRED_CLASS;
-      var responseFormatter;
-      var validState = null;
-      var httpCanceller = null;
-      var dd = elem[0].querySelector('.angucomplete-dropdown');
-      var isScrollOn = false;
-      var mousedownOn = null;
-      var unbindInitialValue;
-      var displaySearching;
-      var displayNoResults;
-
-      elem.on('mousedown', function(event) {
-        if (event.target.id) {
-          mousedownOn = event.target.id;
-          if (mousedownOn === scope.id + '_dropdown') {
-            document.body.addEventListener('click', clickoutHandlerForDropdown);
-          }
-        }
-        else {
-          mousedownOn = event.target.className;
-        }
-      });
-
-      scope.currentIndex = scope.focusFirst ? 0 : null;
-      scope.searching = false;
-      unbindInitialValue = scope.$watch('initialValue', function(newval) {
-        if (newval) {
-          // remove scope listener
-          unbindInitialValue();
-          // change input
-          handleInputChange(newval, true);
-        }
-      });
-
-      scope.$watch('fieldRequired', function(newval, oldval) {
-        if (newval !== oldval) {
-          if (!newval) {
-            ctrl[scope.inputName].$setValidity(requiredClassName, true);
-          }
-          else if (!validState || scope.currentIndex === -1) {
-            handleRequired(false);
-          }
-          else {
-            handleRequired(true);
-          }
-        }
-      });
-
-      scope.$on('angucomplete-alt:clearInput', function (event, elementId) {
-        if (!elementId || elementId === scope.id) {
-          scope.searchStr = null;
-          callOrAssign();
-          handleRequired(false);
-          clearResults();
-        }
-      });
-
-      scope.$on('angucomplete-alt:changeInput', function (event, elementId, newval) {
-        if (!!elementId && elementId === scope.id) {
-          handleInputChange(newval);
-        }
-      });
-
-      function handleInputChange(newval, initial) {
-        if (newval) {
-          if (typeof newval === 'object') {
-            scope.searchStr = extractTitle(newval);
-            callOrAssign({originalObject: newval});
-          } else if (typeof newval === 'string' && newval.length > 0) {
-            scope.searchStr = newval;
-          } else {
-            if (console && console.error) {
-              console.error('Tried to set ' + (!!initial ? 'initial' : '') + ' value of angucomplete to', newval, 'which is an invalid value');
-            }
-          }
-
-          handleRequired(true);
-        }
-      }
-
-      // #194 dropdown list not consistent in collapsing (bug).
-      function clickoutHandlerForDropdown(event) {
-        mousedownOn = null;
-        scope.hideResults(event);
-        document.body.removeEventListener('click', clickoutHandlerForDropdown);
-      }
-
-      // for IE8 quirkiness about event.which
-      function ie8EventNormalizer(event) {
-        return event.which ? event.which : event.keyCode;
-      }
-
-      function callOrAssign(value) {
-        if (typeof scope.selectedObject === 'function') {
-          scope.selectedObject(value);
-        }
-        else {
-          scope.selectedObject = value;
-        }
-
-        if (value) {
-          handleRequired(true);
-        }
-        else {
-          handleRequired(false);
-        }
-      }
-
-      function callFunctionOrIdentity(fn) {
-        return function(data) {
-          return scope[fn] ? scope[fn](data) : data;
-        };
-      }
-
-      function setInputString(str) {
-        callOrAssign({originalObject: str});
-
-        if (scope.clearSelected) {
-          scope.searchStr = null;
-        }
-        clearResults();
-      }
-
-      function extractTitle(data) {
-        // split title fields and run extractValue for each and join with ' '
-        return scope.titleField.split(',')
-          .map(function(field) {
-            return extractValue(data, field);
-          })
-          .join(' ');
-      }
-
-      function extractValue(obj, key) {
-        var keys, result;
-        if (key) {
-          keys= key.split('.');
-          result = obj;
-          for (var i = 0; i < keys.length; i++) {
-            result = result[keys[i]];
-          }
-        }
-        else {
-          result = obj;
-        }
-        return result;
-      }
-
-      function findMatchString(target, str) {
-        var result, matches, re;
-        // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
-        // Escape user input to be treated as a literal string within a regular expression
-        re = new RegExp(str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'i');
-        if (!target) { return; }
-        if (!target.match || !target.replace) { target = target.toString(); }
-        matches = target.match(re);
-        if (matches) {
-          result = target.replace(re,
-              '<span class="'+ scope.matchClass +'">'+ matches[0] +'</span>');
-        }
-        else {
-          result = target;
-        }
-        return $sce.trustAsHtml(result);
-      }
-
-      function handleRequired(valid) {
-        scope.notEmpty = valid;
-        validState = scope.searchStr;
-        if (scope.fieldRequired && ctrl && scope.inputName) {
-          ctrl[scope.inputName].$setValidity(requiredClassName, valid);
-        }
-      }
-
-      function keyupHandler(event) {
-        var which = ie8EventNormalizer(event);
-        if (which === KEY_LF || which === KEY_RT) {
-          // do nothing
-          return;
-        }
-
-        if (which === KEY_UP || which === KEY_EN) {
-          event.preventDefault();
-        }
-        else if (which === KEY_DW) {
-          event.preventDefault();
-          if (!scope.showDropdown && scope.searchStr && scope.searchStr.length >= minlength) {
-            initResults();
-            scope.searching = true;
-            searchTimerComplete(scope.searchStr);
-          }
-        }
-        else if (which === KEY_ES) {
-          clearResults();
-          scope.$apply(function() {
-            inputField.val(scope.searchStr);
-          });
-        }
-        else {
-          if (minlength === 0 && !scope.searchStr) {
-            return;
-          }
-
-          if (!scope.searchStr || scope.searchStr === '') {
-            scope.showDropdown = false;
-          } else if (scope.searchStr.length >= minlength) {
-            initResults();
-
-            if (searchTimer) {
-              $timeout.cancel(searchTimer);
-            }
-
-            scope.searching = true;
-
-            searchTimer = $timeout(function() {
-              searchTimerComplete(scope.searchStr);
-            }, scope.pause);
-          }
-
-          if (validState && validState !== scope.searchStr && !scope.clearSelected) {
-            scope.$apply(function() {
-              callOrAssign();
-            });
-          }
-        }
-      }
-
-      function handleOverrideSuggestions(event) {
-        if (scope.overrideSuggestions &&
-            !(scope.selectedObject && scope.selectedObject.originalObject === scope.searchStr)) {
-          if (event) {
-            event.preventDefault();
-          }
-
-          // cancel search timer
-          $timeout.cancel(searchTimer);
-          // cancel http request
-          cancelHttpRequest();
-
-          setInputString(scope.searchStr);
-        }
-      }
-
-      function dropdownRowOffsetHeight(row) {
-        var css = getComputedStyle(row);
-        return row.offsetHeight +
-          parseInt(css.marginTop, 10) + parseInt(css.marginBottom, 10);
-      }
-
-      function dropdownHeight() {
-        return dd.getBoundingClientRect().top +
-          parseInt(getComputedStyle(dd).maxHeight, 10);
-      }
-
-      function dropdownRow() {
-        return elem[0].querySelectorAll('.angucomplete-row')[scope.currentIndex];
-      }
-
-      function dropdownRowTop() {
-        return dropdownRow().getBoundingClientRect().top -
-          (dd.getBoundingClientRect().top +
-           parseInt(getComputedStyle(dd).paddingTop, 10));
-      }
-
-      function dropdownScrollTopTo(offset) {
-        dd.scrollTop = dd.scrollTop + offset;
-      }
-
-      function updateInputField(){
-        var current = scope.results[scope.currentIndex];
-        if (scope.matchClass) {
-          inputField.val(extractTitle(current.originalObject));
-        }
-        else {
-          inputField.val(current.title);
-        }
-      }
-
-      function keydownHandler(event) {
-        var which = ie8EventNormalizer(event);
-        var row = null;
-        var rowTop = null;
-
-        if (which === KEY_EN && scope.results) {
-          if (scope.currentIndex >= 0 && scope.currentIndex < scope.results.length) {
-            event.preventDefault();
-            scope.selectResult(scope.results[scope.currentIndex]);
-          } else {
-            handleOverrideSuggestions(event);
-            clearResults();
-          }
-          scope.$apply();
-        } else if (which === KEY_DW && scope.results) {
-          event.preventDefault();
-          if ((scope.currentIndex + 1) < scope.results.length && scope.showDropdown) {
-            scope.$apply(function() {
-              scope.currentIndex ++;
-              updateInputField();
-            });
-
-            if (isScrollOn) {
-              row = dropdownRow();
-              if (dropdownHeight() < row.getBoundingClientRect().bottom) {
-                dropdownScrollTopTo(dropdownRowOffsetHeight(row));
-              }
-            }
-          }
-        } else if (which === KEY_UP && scope.results) {
-          event.preventDefault();
-          if (scope.currentIndex >= 1) {
-            scope.$apply(function() {
-              scope.currentIndex --;
-              updateInputField();
-            });
-
-            if (isScrollOn) {
-              rowTop = dropdownRowTop();
-              if (rowTop < 0) {
-                dropdownScrollTopTo(rowTop - 1);
-              }
-            }
-          }
-          else if (scope.currentIndex === 0) {
-            scope.$apply(function() {
-              scope.currentIndex = -1;
-              inputField.val(scope.searchStr);
-            });
-          }
-        } else if (which === KEY_TAB) {
-          if (scope.results && scope.results.length > 0 && scope.showDropdown) {
-            if (scope.currentIndex === -1 && scope.overrideSuggestions) {
-              // intentionally not sending event so that it does not
-              // prevent default tab behavior
-              handleOverrideSuggestions();
-            }
-            else {
-              if (scope.currentIndex === -1) {
-                scope.currentIndex = 0;
-              }
-              scope.selectResult(scope.results[scope.currentIndex]);
-              scope.$digest();
-            }
-          }
-          else {
-            // no results
-            // intentionally not sending event so that it does not
-            // prevent default tab behavior
-            if (scope.searchStr && scope.searchStr.length > 0) {
-              handleOverrideSuggestions();
-            }
-          }
-        } else if (which === KEY_ES) {
-          // This is very specific to IE10/11 #272
-          // without this, IE clears the input text
-          event.preventDefault();
-        }
-      }
-
-      function httpSuccessCallbackGen(str) {
-        return function(responseData, status, headers, config) {
-          // normalize return obejct from promise
-          if (!status && !headers && !config && responseData.data) {
-            responseData = responseData.data;
-          }
-          scope.searching = false;
-          processResults(
-            extractValue(responseFormatter(responseData), scope.remoteUrlDataField),
-            str);
-        };
-      }
-
-      function httpErrorCallback(errorRes, status, headers, config) {
-        // cancelled/aborted
-        if (status === 0 || status === -1) { return; }
-
-        // normalize return obejct from promise
-        if (!status && !headers && !config) {
-          status = errorRes.status;
-        }
-        if (scope.remoteUrlErrorCallback) {
-          scope.remoteUrlErrorCallback(errorRes, status, headers, config);
-        }
-        else {
-          if (console && console.error) {
-            console.error('http error');
-          }
-        }
-      }
-
-      function cancelHttpRequest() {
-        if (httpCanceller) {
-          httpCanceller.resolve();
-        }
-      }
-
-      function getRemoteResults(str) {
-        var params = {},
-            url = scope.remoteUrl + encodeURIComponent(str);
-        if (scope.remoteUrlRequestFormatter) {
-          params = {params: scope.remoteUrlRequestFormatter(str)};
-          url = scope.remoteUrl;
-        }
-        if (!!scope.remoteUrlRequestWithCredentials) {
-          params.withCredentials = true;
-        }
-        cancelHttpRequest();
-        httpCanceller = $q.defer();
-        params.timeout = httpCanceller.promise;
-        $http.get(url, params)
-          .success(httpSuccessCallbackGen(str))
-          .error(httpErrorCallback);
-      }
-
-      function getRemoteResultsWithCustomHandler(str) {
-        cancelHttpRequest();
-
-        httpCanceller = $q.defer();
-
-        scope.remoteApiHandler(str, httpCanceller.promise)
-          .then(httpSuccessCallbackGen(str))
-          .catch(httpErrorCallback);
-
-        /* IE8 compatible
-        scope.remoteApiHandler(str, httpCanceller.promise)
-          ['then'](httpSuccessCallbackGen(str))
-          ['catch'](httpErrorCallback);
-        */
-      }
-
-      function clearResults() {
-        scope.showDropdown = false;
-        scope.results = [];
-        if (dd) {
-          dd.scrollTop = 0;
-        }
-      }
-
-      function initResults() {
-        scope.showDropdown = displaySearching;
-        scope.currentIndex = scope.focusFirst ? 0 : -1;
-        scope.results = [];
-      }
-
-      function getLocalResults(str) {
-        var i, match, s, value,
-            searchFields = scope.searchFields.split(','),
-            matches = [];
-        if (typeof scope.parseInput() !== 'undefined') {
-          str = scope.parseInput()(str);
-        }
-        for (i = 0; i < scope.localData.length; i++) {
-          match = false;
-
-          for (s = 0; s < searchFields.length; s++) {
-            value = extractValue(scope.localData[i], searchFields[s]) || '';
-            match = match || (value.toString().toLowerCase().indexOf(str.toString().toLowerCase()) >= 0);
-          }
-
-          if (match) {
-            matches[matches.length] = scope.localData[i];
-          }
-        }
-        return matches;
-      }
-
-      function checkExactMatch(result, obj, str){
-        if (!str) { return false; }
-        for(var key in obj){
-          if(obj[key].toLowerCase() === str.toLowerCase()){
-            scope.selectResult(result);
-            return true;
-          }
-        }
-        return false;
-      }
-
-      function searchTimerComplete(str) {
-        // Begin the search
-        if (!str || str.length < minlength) {
-          return;
-        }
-        if (scope.localData) {
-          scope.$apply(function() {
-            var matches;
-            if (typeof scope.localSearch() !== 'undefined') {
-              matches = scope.localSearch()(str);
-            } else {
-              matches = getLocalResults(str);
-            }
-            scope.searching = false;
-            processResults(matches, str);
-          });
-        }
-        else if (scope.remoteApiHandler) {
-          getRemoteResultsWithCustomHandler(str);
-        } else {
-          getRemoteResults(str);
-        }
-      }
-
-      function processResults(responseData, str) {
-        var i, description, image, text, formattedText, formattedDesc;
-
-        if (responseData && responseData.length > 0) {
-          scope.results = [];
-
-          for (i = 0; i < responseData.length; i++) {
-            if (scope.titleField && scope.titleField !== '') {
-              text = formattedText = extractTitle(responseData[i]);
-            }
-
-            description = '';
-            if (scope.descriptionField) {
-              description = formattedDesc = extractValue(responseData[i], scope.descriptionField);
-            }
-
-            image = '';
-            if (scope.imageField) {
-              image = extractValue(responseData[i], scope.imageField);
-            }
-
-            if (scope.matchClass) {
-              formattedText = findMatchString(text, str);
-              formattedDesc = findMatchString(description, str);
-            }
-
-            scope.results[scope.results.length] = {
-              title: formattedText,
-              description: formattedDesc,
-              image: image,
-              originalObject: responseData[i]
-            };
-          }
-
-        } else {
-          scope.results = [];
-        }
-
-        if (scope.autoMatch && scope.results.length === 1 &&
-            checkExactMatch(scope.results[0],
-              {title: text, desc: description || ''}, scope.searchStr)) {
-          scope.showDropdown = false;
-        } else if (scope.results.length === 0 && !displayNoResults) {
-          scope.showDropdown = false;
-        } else {
-          scope.showDropdown = true;
-        }
-      }
-
-      function showAll() {
-        if (scope.localData) {
-          processResults(scope.localData, '');
-        }
-        else if (scope.remoteApiHandler) {
-          getRemoteResultsWithCustomHandler('');
-        }
-        else {
-          getRemoteResults('');
-        }
-      }
-
-      scope.onFocusHandler = function() {
-        if (scope.focusIn) {
-          scope.focusIn();
-        }
-        if (minlength === 0 && (!scope.searchStr || scope.searchStr.length === 0)) {
-          scope.currentIndex = scope.focusFirst ? 0 : scope.currentIndex;
-          scope.showDropdown = true;
-          showAll();
-        }
-      };
-
-      scope.hideResults = function() {
-        if (mousedownOn &&
-            (mousedownOn === scope.id + '_dropdown' ||
-             mousedownOn.indexOf('angucomplete') >= 0)) {
-          mousedownOn = null;
-        }
-        else {
-          hideTimer = $timeout(function() {
-            clearResults();
-            scope.$apply(function() {
-              if (scope.searchStr && scope.searchStr.length > 0) {
-                inputField.val(scope.searchStr);
-              }
-            });
-          }, BLUR_TIMEOUT);
-          cancelHttpRequest();
-
-          if (scope.focusOut) {
-            scope.focusOut();
-          }
-
-          if (scope.overrideSuggestions) {
-            if (scope.searchStr && scope.searchStr.length > 0 && scope.currentIndex === -1) {
-              handleOverrideSuggestions();
-            }
-          }
-        }
-      };
-
-      scope.resetHideResults = function() {
-        if (hideTimer) {
-          $timeout.cancel(hideTimer);
-        }
-      };
-
-      scope.hoverRow = function(index) {
-        scope.currentIndex = index;
-      };
-
-      scope.selectResult = function(result) {
-        // Restore original values
-        if (scope.matchClass) {
-          result.title = extractTitle(result.originalObject);
-          result.description = extractValue(result.originalObject, scope.descriptionField);
-        }
-
-        if (scope.clearSelected) {
-          scope.searchStr = null;
-        }
-        else {
-          scope.searchStr = result.title;
-        }
-        callOrAssign(result);
-        clearResults();
-      };
-
-      scope.inputChangeHandler = function(str) {
-        if (str.length < minlength) {
-          cancelHttpRequest();
-          clearResults();
-        }
-        else if (str.length === 0 && minlength === 0) {
-          scope.searching = false;
-          showAll();
-        }
-
-        if (scope.inputChanged) {
-          str = scope.inputChanged(str);
-        }
-        return str;
-      };
-
-      // check required
-      if (scope.fieldRequiredClass && scope.fieldRequiredClass !== '') {
-        requiredClassName = scope.fieldRequiredClass;
-      }
-
-      // check min length
-      if (scope.minlength && scope.minlength !== '') {
-        minlength = parseInt(scope.minlength, 10);
-      }
-
-      // check pause time
-      if (!scope.pause) {
-        scope.pause = PAUSE;
-      }
-
-      // check clearSelected
-      if (!scope.clearSelected) {
-        scope.clearSelected = false;
-      }
-
-      // check override suggestions
-      if (!scope.overrideSuggestions) {
-        scope.overrideSuggestions = false;
-      }
-
-      // check required field
-      if (scope.fieldRequired && ctrl) {
-        // check initial value, if given, set validitity to true
-        if (scope.initialValue) {
-          handleRequired(true);
-        }
-        else {
-          handleRequired(false);
-        }
-      }
-
-      scope.inputType = attrs.type ? attrs.type : 'text';
-
-      // set strings for "Searching..." and "No results"
-      scope.textSearching = attrs.textSearching ? attrs.textSearching : TEXT_SEARCHING;
-      scope.textNoResults = attrs.textNoResults ? attrs.textNoResults : TEXT_NORESULTS;
-      displaySearching = scope.textSearching === 'false' ? false : true;
-      displayNoResults = scope.textNoResults === 'false' ? false : true;
-
-      // set max length (default to maxlength deault from html
-      scope.maxlength = attrs.maxlength ? attrs.maxlength : MAX_LENGTH;
-
-      // register events
-      inputField.on('keydown', keydownHandler);
-      inputField.on('keyup', keyupHandler);
-
-      // set response formatter
-      responseFormatter = callFunctionOrIdentity('remoteUrlResponseFormatter');
-
-      // set isScrollOn
-      $timeout(function() {
-        var css = getComputedStyle(dd);
-        isScrollOn = css.maxHeight && css.overflowY === 'auto';
-      });
-    }
-
-    return {
-      restrict: 'EA',
-      require: '^?form',
-      scope: {
-        selectedObject: '=',
-        disableInput: '=',
-        initialValue: '=',
-        localData: '=',
-        localSearch: '&',
-        remoteUrlRequestFormatter: '=',
-        remoteUrlRequestWithCredentials: '@',
-        remoteUrlResponseFormatter: '=',
-        remoteUrlErrorCallback: '=',
-        remoteApiHandler: '=',
-        id: '@',
-        type: '@',
-        placeholder: '@',
-        remoteUrl: '@',
-        remoteUrlDataField: '@',
-        titleField: '@',
-        descriptionField: '@',
-        imageField: '@',
-        inputClass: '@',
-        pause: '@',
-        searchFields: '@',
-        minlength: '@',
-        matchClass: '@',
-        clearSelected: '@',
-        overrideSuggestions: '@',
-        fieldRequired: '=',
-        fieldRequiredClass: '@',
-        inputChanged: '=',
-        autoMatch: '@',
-        focusOut: '&',
-        focusIn: '&',
-        fieldTabindex: '@',
-        inputName: '@',
-        focusFirst: '@',
-        parseInput: '&'
-      },
-      templateUrl: function(element, attrs) {
-        return attrs.templateUrl || TEMPLATE_URL;
-      },
-      compile: function(tElement) {
-        var startSym = $interpolate.startSymbol();
-        var endSym = $interpolate.endSymbol();
-        if (!(startSym === '{{' && endSym === '}}')) {
-          var interpolatedHtml = tElement.html()
-            .replace(/\{\{/g, startSym)
-            .replace(/\}\}/g, endSym);
-          tElement.html(interpolatedHtml);
-        }
-        return link;
-      }
-    };
-  }]);
-
-}));
index 3061004..cb3eeb5 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license AngularJS v1.4.8
+ * @license AngularJS v1.4.9
  * (c) 2010-2015 Google, Inc. http://angularjs.org
  * License: MIT
  */
@@ -7,6 +7,7 @@
 
 /* jshint ignore:start */
 var noop        = angular.noop;
+var copy        = angular.copy;
 var extend      = angular.extend;
 var jqLite      = angular.element;
 var forEach     = angular.forEach;
@@ -76,6 +77,7 @@ var isPromiseLike = function(p) {
   return p && p.then ? true : false;
 };
 
+var ngMinErr = angular.$$minErr('ng');
 function assertArg(arg, name, reason) {
   if (!arg) {
     throw ngMinErr('areq', "Argument '{0}' is {1}", (name || '?'), (reason || "required"));
@@ -788,9 +790,9 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
   var gcsStaggerLookup = createLocalCacheLookup();
 
   this.$get = ['$window', '$$jqLite', '$$AnimateRunner', '$timeout',
-               '$$forceReflow', '$sniffer', '$$rAFScheduler', '$animate',
+               '$$forceReflow', '$sniffer', '$$rAFScheduler', '$$animateQueue',
        function($window,   $$jqLite,   $$AnimateRunner,   $timeout,
-                $$forceReflow,   $sniffer,   $$rAFScheduler, $animate) {
+                $$forceReflow,   $sniffer,   $$rAFScheduler, $$animateQueue) {
 
     var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);
 
@@ -882,17 +884,24 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
       return timings;
     }
 
-    return function init(element, options) {
+    return function init(element, initialOptions) {
+      // all of the animation functions should create
+      // a copy of the options data, however, if a
+      // parent service has already created a copy then
+      // we should stick to using that
+      var options = initialOptions || {};
+      if (!options.$$prepared) {
+        options = prepareAnimationOptions(copy(options));
+      }
+
       var restoreStyles = {};
       var node = getDomNode(element);
       if (!node
           || !node.parentNode
-          || !$animate.enabled()) {
+          || !$$animateQueue.enabled()) {
         return closeAndReturnNoopAnimator();
       }
 
-      options = prepareAnimationOptions(options);
-
       var temporaryStyles = [];
       var classes = element.attr('class');
       var styles = packageStyles(options);
@@ -905,6 +914,8 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
       var maxDelayTime;
       var maxDuration;
       var maxDurationTime;
+      var startTime;
+      var events = [];
 
       if (options.duration === 0 || (!$sniffer.animations && !$sniffer.transitions)) {
         return closeAndReturnNoopAnimator();
@@ -1058,7 +1069,12 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
       }
 
       if (options.delay != null) {
-        var delayStyle = parseFloat(options.delay);
+        var delayStyle;
+        if (typeof options.delay !== "boolean") {
+          delayStyle = parseFloat(options.delay);
+          // number in options.delay means we have to recalculate the delay for the closing timeout
+          maxDelay = Math.max(delayStyle, 0);
+        }
 
         if (flags.applyTransitionDelay) {
           temporaryStyles.push(getCssDelayStyle(delayStyle));
@@ -1173,6 +1189,11 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
           options.onDone();
         }
 
+        if (events && events.length) {
+          // Remove the transitionend / animationend listener(s)
+          element.off(events.join(' '), onAnimationProgress);
+        }
+
         // if the preparation function fails then the promise is not setup
         if (runner) {
           runner.complete(!rejected);
@@ -1208,6 +1229,33 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
         };
       }
 
+      function onAnimationProgress(event) {
+        event.stopPropagation();
+        var ev = event.originalEvent || event;
+
+        // we now always use `Date.now()` due to the recent changes with
+        // event.timeStamp in Firefox, Webkit and Chrome (see #13494 for more info)
+        var timeStamp = ev.$manualTimeStamp || Date.now();
+
+        /* Firefox (or possibly just Gecko) likes to not round values up
+         * when a ms measurement is used for the animation */
+        var elapsedTime = parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES));
+
+        /* $manualTimeStamp is a mocked timeStamp value which is set
+         * within browserTrigger(). This is only here so that tests can
+         * mock animations properly. Real events fallback to event.timeStamp,
+         * or, if they don't, then a timeStamp is automatically created for them.
+         * We're checking to see if the timeStamp surpasses the expected delay,
+         * but we're using elapsedTime instead of the timeStamp on the 2nd
+         * pre-condition since animationPauseds sometimes close off early */
+        if (Math.max(timeStamp - startTime, 0) >= maxDelayTime && elapsedTime >= maxDuration) {
+          // we set this flag to ensure that if the transition is paused then, when resumed,
+          // the animation will automatically close itself since transitions cannot be paused.
+          animationCompleted = true;
+          close();
+        }
+      }
+
       function start() {
         if (animationClosed) return;
         if (!node.parentNode) {
@@ -1215,8 +1263,6 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
           return;
         }
 
-        var startTime, events = [];
-
         // even though we only pause keyframe animations here the pause flag
         // will still happen when transitions are used. Only the transition will
         // not be paused since that is not possible. If the animation ends when
@@ -1357,7 +1403,10 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
             element.data(ANIMATE_TIMER_KEY, animationsData);
           }
 
-          element.on(events.join(' '), onAnimationProgress);
+          if (events.length) {
+            element.on(events.join(' '), onAnimationProgress);
+          }
+
           if (options.to) {
             if (options.cleanupStyles) {
               registerRestorableStyles(restoreStyles, node, Object.keys(options.to));
@@ -1379,30 +1428,6 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) {
             element.removeData(ANIMATE_TIMER_KEY);
           }
         }
-
-        function onAnimationProgress(event) {
-          event.stopPropagation();
-          var ev = event.originalEvent || event;
-          var timeStamp = ev.$manualTimeStamp || ev.timeStamp || Date.now();
-
-          /* Firefox (or possibly just Gecko) likes to not round values up
-           * when a ms measurement is used for the animation */
-          var elapsedTime = parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES));
-
-          /* $manualTimeStamp is a mocked timeStamp value which is set
-           * within browserTrigger(). This is only here so that tests can
-           * mock animations properly. Real events fallback to event.timeStamp,
-           * or, if they don't, then a timeStamp is automatically created for them.
-           * We're checking to see if the timeStamp surpasses the expected delay,
-           * but we're using elapsedTime instead of the timeStamp on the 2nd
-           * pre-condition since animations sometimes close off early */
-          if (Math.max(timeStamp - startTime, 0) >= maxDelayTime && elapsedTime >= maxDuration) {
-            // we set this flag to ensure that if the transition is paused then, when resumed,
-            // the animation will automatically close itself since transitions cannot be paused.
-            animationCompleted = true;
-            close();
-          }
-        }
       }
     };
   }];
@@ -1687,6 +1712,8 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
     var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);
          // $animateJs(element, 'enter');
     return function(element, event, classes, options) {
+      var animationClosed = false;
+
       // the `classes` argument is optional and if it is not used
       // then the classes will be resolved from the element's className
       // property as well as options.addClass/options.removeClass.
@@ -1739,8 +1766,32 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
         applyAnimationClasses(element, options);
       }
 
+      function close() {
+        animationClosed = true;
+        applyOptions();
+        applyAnimationStyles(element, options);
+      }
+
+      var runner;
+
       return {
+        $$willAnimate: true,
+        end: function() {
+          if (runner) {
+            runner.end();
+          } else {
+            close();
+            runner = new $$AnimateRunner();
+            runner.complete(true);
+          }
+          return runner;
+        },
         start: function() {
+          if (runner) {
+            return runner;
+          }
+
+          runner = new $$AnimateRunner();
           var closeActiveAnimations;
           var chain = [];
 
@@ -1765,8 +1816,7 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
             });
           }
 
-          var animationClosed = false;
-          var runner = new $$AnimateRunner({
+          runner.setHost({
             end: function() {
               endAnimations();
             },
@@ -1779,9 +1829,7 @@ var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) {
           return runner;
 
           function onComplete(success) {
-            animationClosed = true;
-            applyOptions();
-            applyAnimationStyles(element, options);
+            close(success);
             runner.complete(success);
           }
 
@@ -2001,6 +2049,7 @@ var NG_ANIMATE_PIN_DATA = '$ngAnimatePin';
 var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
   var PRE_DIGEST_STATE = 1;
   var RUNNING_STATE = 2;
+  var ONE_SPACE = ' ';
 
   var rules = this.rules = {
     skip: [],
@@ -2008,6 +2057,29 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
     join: []
   };
 
+  function makeTruthyCssClassMap(classString) {
+    if (!classString) {
+      return null;
+    }
+
+    var keys = classString.split(ONE_SPACE);
+    var map = Object.create(null);
+
+    forEach(keys, function(key) {
+      map[key] = true;
+    });
+    return map;
+  }
+
+  function hasMatchingClasses(newClassString, currentClassString) {
+    if (newClassString && currentClassString) {
+      var currentClassMap = makeTruthyCssClassMap(currentClassString);
+      return newClassString.split(ONE_SPACE).some(function(className) {
+        return currentClassMap[className];
+      });
+    }
+  }
+
   function isAllowed(ruleType, element, currentAnimation, previousAnimation) {
     return rules[ruleType].some(function(fn) {
       return fn(element, currentAnimation, previousAnimation);
@@ -2055,11 +2127,19 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
   });
 
   rules.cancel.push(function(element, newAnimation, currentAnimation) {
-    var nO = newAnimation.options;
-    var cO = currentAnimation.options;
 
-    // if the exact same CSS class is added/removed then it's safe to cancel it
-    return (nO.addClass && nO.addClass === cO.removeClass) || (nO.removeClass && nO.removeClass === cO.addClass);
+
+    var nA = newAnimation.options.addClass;
+    var nR = newAnimation.options.removeClass;
+    var cA = currentAnimation.options.addClass;
+    var cR = currentAnimation.options.removeClass;
+
+    // early detection to save the global CPU shortage :)
+    if ((isUndefined(nA) && isUndefined(nR)) || (isUndefined(cA) && isUndefined(cR))) {
+      return false;
+    }
+
+    return (hasMatchingClasses(nA, cR)) || (hasMatchingClasses(nR, cA));
   });
 
   this.$get = ['$$rAF', '$rootScope', '$rootElement', '$document', '$$HashMap',
@@ -2135,6 +2215,13 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
       return mergeAnimationOptions(element, options, {});
     }
 
+    // IE9-11 has no method "contains" in SVG element and in Node.prototype. Bug #10259.
+    var contains = Node.prototype.contains || function(arg) {
+      // jshint bitwise: false
+      return this === arg || !!(this.compareDocumentPosition(arg) & 16);
+      // jshint bitwise: true
+    };
+
     function findCallbacks(parent, element, event) {
       var targetNode = getDomNode(element);
       var targetParentNode = getDomNode(parent);
@@ -2143,9 +2230,9 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
       var entries = callbackRegistry[event];
       if (entries) {
         forEach(entries, function(entry) {
-          if (entry.node.contains(targetNode)) {
+          if (contains.call(entry.node, targetNode)) {
             matches.push(entry.callback);
-          } else if (event === 'leave' && entry.node.contains(targetParentNode)) {
+          } else if (event === 'leave' && contains.call(entry.node, targetParentNode)) {
             matches.push(entry.callback);
           }
         });
@@ -2220,12 +2307,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
               bool = !recordExists;
             } else {
               // (element, bool) - Element setter
-              bool = !!bool;
-              if (!bool) {
-                disabledElementsLookup.put(node, true);
-              } else if (recordExists) {
-                disabledElementsLookup.remove(node);
-              }
+              disabledElementsLookup.put(node, !bool);
             }
           }
         }
@@ -2234,7 +2316,12 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
       }
     };
 
-    function queueAnimation(element, event, options) {
+    function queueAnimation(element, event, initialOptions) {
+      // we always make a copy of the options since
+      // there should never be any side effects on
+      // the input data when running `$animateCss`.
+      var options = copy(initialOptions);
+
       var node, parent;
       element = stripCommentsFromElement(element);
       if (element) {
@@ -2294,7 +2381,9 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
       // this is a hard disable of all animations for the application or on
       // the element itself, therefore  there is no need to continue further
       // past this point if not enabled
-      var skipAnimations = !animationsEnabled || disabledElementsLookup.get(node);
+      // Animations are also disabled if the document is currently hidden (page is not visible
+      // to the user), because browsers slow down or do not flush calls to requestAnimationFrame
+      var skipAnimations = !animationsEnabled || $document[0].hidden || disabledElementsLookup.get(node);
       var existingAnimation = (!skipAnimations && activeAnimationsLookup.get(node)) || {};
       var hasExistingAnimation = !!existingAnimation.state;
 
@@ -2503,15 +2592,15 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
       forEach(children, function(child) {
         var state = parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME));
         var animationDetails = activeAnimationsLookup.get(child);
-        switch (state) {
-          case RUNNING_STATE:
-            animationDetails.runner.end();
-            /* falls through */
-          case PRE_DIGEST_STATE:
-            if (animationDetails) {
+        if (animationDetails) {
+          switch (state) {
+            case RUNNING_STATE:
+              animationDetails.runner.end();
+              /* falls through */
+            case PRE_DIGEST_STATE:
               activeAnimationsLookup.remove(child);
-            }
-            break;
+              break;
+          }
         }
       });
     }
@@ -2526,12 +2615,20 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
       return getDomNode(nodeOrElmA) === getDomNode(nodeOrElmB);
     }
 
+    /**
+     * This fn returns false if any of the following is true:
+     * a) animations on any parent element are disabled, and animations on the element aren't explicitly allowed
+     * b) a parent element has an ongoing structural animation, and animateChildren is false
+     * c) the element is not a child of the body
+     * d) the element is not a child of the $rootElement
+     */
     function areAnimationsAllowed(element, parentElement, event) {
       var bodyElement = jqLite($document[0].body);
       var bodyElementDetected = isMatchingElement(element, bodyElement) || element[0].nodeName === 'HTML';
       var rootElementDetected = isMatchingElement(element, $rootElement);
       var parentAnimationDetected = false;
       var animateChildren;
+      var elementDisabled = disabledElementsLookup.get(getDomNode(element));
 
       var parentHost = element.data(NG_ANIMATE_PIN_DATA);
       if (parentHost) {
@@ -2556,7 +2653,18 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
         // therefore we can't allow any animations to take place
         // but if a parent animation is class-based then that's ok
         if (!parentAnimationDetected) {
-          parentAnimationDetected = details.structural || disabledElementsLookup.get(parentNode);
+          var parentElementDisabled = disabledElementsLookup.get(parentNode);
+
+          if (parentElementDisabled === true && elementDisabled !== false) {
+            // disable animations if the user hasn't explicitly enabled animations on the
+            // current element
+            elementDisabled = true;
+            // element is disabled via parent element, no need to check anything else
+            break;
+          } else if (parentElementDisabled === false) {
+            elementDisabled = false;
+          }
+          parentAnimationDetected = details.structural;
         }
 
         if (isUndefined(animateChildren) || animateChildren === true) {
@@ -2569,28 +2677,32 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
         // there is no need to continue traversing at this point
         if (parentAnimationDetected && animateChildren === false) break;
 
-        if (!rootElementDetected) {
-          // angular doesn't want to attempt to animate elements outside of the application
-          // therefore we need to ensure that the rootElement is an ancestor of the current element
-          rootElementDetected = isMatchingElement(parentElement, $rootElement);
-          if (!rootElementDetected) {
-            parentHost = parentElement.data(NG_ANIMATE_PIN_DATA);
-            if (parentHost) {
-              parentElement = parentHost;
-            }
-          }
-        }
-
         if (!bodyElementDetected) {
-          // we also need to ensure that the element is or will be apart of the body element
+          // we also need to ensure that the element is or will be a part of the body element
           // otherwise it is pointless to even issue an animation to be rendered
           bodyElementDetected = isMatchingElement(parentElement, bodyElement);
         }
 
+        if (bodyElementDetected && rootElementDetected) {
+          // If both body and root have been found, any other checks are pointless,
+          // as no animation data should live outside the application
+          break;
+        }
+
+        if (!rootElementDetected) {
+          // If no rootElement is detected, check if the parentElement is pinned to another element
+          parentHost = parentElement.data(NG_ANIMATE_PIN_DATA);
+          if (parentHost) {
+            // The pin target element becomes the next parent element
+            parentElement = parentHost;
+            continue;
+          }
+        }
+
         parentElement = parentElement.parent();
       }
 
-      var allowAnimation = !parentAnimationDetected || animateChildren;
+      var allowAnimation = (!parentAnimationDetected || animateChildren) && elementDisabled !== true;
       return allowAnimation && rootElementDetected && bodyElementDetected;
     }
 
@@ -2610,171 +2722,6 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) {
   }];
 }];
 
-var $$AnimateAsyncRunFactory = ['$$rAF', function($$rAF) {
-  var waitQueue = [];
-
-  function waitForTick(fn) {
-    waitQueue.push(fn);
-    if (waitQueue.length > 1) return;
-    $$rAF(function() {
-      for (var i = 0; i < waitQueue.length; i++) {
-        waitQueue[i]();
-      }
-      waitQueue = [];
-    });
-  }
-
-  return function() {
-    var passed = false;
-    waitForTick(function() {
-      passed = true;
-    });
-    return function(callback) {
-      passed ? callback() : waitForTick(callback);
-    };
-  };
-}];
-
-var $$AnimateRunnerFactory = ['$q', '$sniffer', '$$animateAsyncRun',
-                      function($q,   $sniffer,   $$animateAsyncRun) {
-
-  var INITIAL_STATE = 0;
-  var DONE_PENDING_STATE = 1;
-  var DONE_COMPLETE_STATE = 2;
-
-  AnimateRunner.chain = function(chain, callback) {
-    var index = 0;
-
-    next();
-    function next() {
-      if (index === chain.length) {
-        callback(true);
-        return;
-      }
-
-      chain[index](function(response) {
-        if (response === false) {
-          callback(false);
-          return;
-        }
-        index++;
-        next();
-      });
-    }
-  };
-
-  AnimateRunner.all = function(runners, callback) {
-    var count = 0;
-    var status = true;
-    forEach(runners, function(runner) {
-      runner.done(onProgress);
-    });
-
-    function onProgress(response) {
-      status = status && response;
-      if (++count === runners.length) {
-        callback(status);
-      }
-    }
-  };
-
-  function AnimateRunner(host) {
-    this.setHost(host);
-
-    this._doneCallbacks = [];
-    this._runInAnimationFrame = $$animateAsyncRun();
-    this._state = 0;
-  }
-
-  AnimateRunner.prototype = {
-    setHost: function(host) {
-      this.host = host || {};
-    },
-
-    done: function(fn) {
-      if (this._state === DONE_COMPLETE_STATE) {
-        fn();
-      } else {
-        this._doneCallbacks.push(fn);
-      }
-    },
-
-    progress: noop,
-
-    getPromise: function() {
-      if (!this.promise) {
-        var self = this;
-        this.promise = $q(function(resolve, reject) {
-          self.done(function(status) {
-            status === false ? reject() : resolve();
-          });
-        });
-      }
-      return this.promise;
-    },
-
-    then: function(resolveHandler, rejectHandler) {
-      return this.getPromise().then(resolveHandler, rejectHandler);
-    },
-
-    'catch': function(handler) {
-      return this.getPromise()['catch'](handler);
-    },
-
-    'finally': function(handler) {
-      return this.getPromise()['finally'](handler);
-    },
-
-    pause: function() {
-      if (this.host.pause) {
-        this.host.pause();
-      }
-    },
-
-    resume: function() {
-      if (this.host.resume) {
-        this.host.resume();
-      }
-    },
-
-    end: function() {
-      if (this.host.end) {
-        this.host.end();
-      }
-      this._resolve(true);
-    },
-
-    cancel: function() {
-      if (this.host.cancel) {
-        this.host.cancel();
-      }
-      this._resolve(false);
-    },
-
-    complete: function(response) {
-      var self = this;
-      if (self._state === INITIAL_STATE) {
-        self._state = DONE_PENDING_STATE;
-        self._runInAnimationFrame(function() {
-          self._resolve(response);
-        });
-      }
-    },
-
-    _resolve: function(response) {
-      if (this._state !== DONE_COMPLETE_STATE) {
-        forEach(this._doneCallbacks, function(fn) {
-          fn(response);
-        });
-        this._doneCallbacks.length = 0;
-        this._state = DONE_COMPLETE_STATE;
-      }
-    }
-  };
-
-  return AnimateRunner;
-}];
-
 var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
   var NG_ANIMATE_REF_ATTR = 'ng-animate-ref';
 
@@ -3178,7 +3125,6 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) {
    $$AnimateAsyncRunFactory,
    $$rAFSchedulerFactory,
    $$AnimateChildrenDirective,
-   $$AnimateRunnerFactory,
    $$AnimateQueueProvider,
    $$AnimationProvider,
    $AnimateCssProvider,
@@ -3914,9 +3860,6 @@ angular.module('ngAnimate', [])
   .directive('ngAnimateChildren', $$AnimateChildrenDirective)
   .factory('$$rAFScheduler', $$rAFSchedulerFactory)
 
-  .factory('$$AnimateRunner', $$AnimateRunnerFactory)
-  .factory('$$animateAsyncRun', $$AnimateAsyncRunFactory)
-
   .provider('$$animateQueue', $$AnimateQueueProvider)
   .provider('$$animation', $$AnimationProvider)
 
index f7137c1..d903c23 100644 (file)
@@ -121,7 +121,7 @@ angular.module('colorpicker.module', [])
 
         //parse a string to HSB
         setColor: function (val) {
-          val = val.toLowerCase();
+          val = (val) ? val.toLowerCase() : val;
           for (var key in Helper.stringParsers) {
             if (Helper.stringParsers.hasOwnProperty(key)) {
               var parser = Helper.stringParsers[key];
@@ -311,10 +311,10 @@ angular.module('colorpicker.module', [])
               });
           }
 
-          var bindMouseEvents = function() {
+          function bindMouseEvents() {
             $document.on('mousemove', mousemove);
             $document.on('mouseup', mouseup);
-          };
+          }
 
           if (thisFormat === 'rgba') {
             colorpickerTemplate.addClass('alpha');
@@ -373,9 +373,11 @@ angular.module('colorpicker.module', [])
 
           target.append(colorpickerTemplate);
 
-          if(ngModel) {
+          if (ngModel) {
             ngModel.$render = function () {
               elem.val(ngModel.$viewValue);
+
+              update();
             };
           }
 
@@ -387,7 +389,7 @@ angular.module('colorpicker.module', [])
             colorpickerTemplate.remove();
           });
 
-          var previewColor = function () {
+          function previewColor() {
             try {
               colorpickerPreview.css('backgroundColor', pickerColor[thisFormat]());
             } catch (e) {
@@ -397,10 +399,10 @@ angular.module('colorpicker.module', [])
             if (thisFormat === 'rgba') {
               sliderAlpha.css.backgroundColor = pickerColor.toHex();
             }
-          };
+          }
 
-          var mousemove = function (event) {
-            var
+          function mousemove(event) {
+            var 
                 left = Slider.getLeftPosition(event),
                 top = Slider.getTopPosition(event),
                 slider = Slider.getSlider();
@@ -416,22 +418,22 @@ angular.module('colorpicker.module', [])
             previewColor();
             var newColor = pickerColor[thisFormat]();
             elem.val(newColor);
-            if(ngModel) {
+            if (ngModel) {
               $scope.$apply(ngModel.$setViewValue(newColor));
             }
             if (withInput) {
               pickerColorInput.val(newColor);
             }
             return false;
-          };
+          }
 
-          var mouseup = function () {
+          function mouseup() {
             emitEvent('colorpicker-selected');
             $document.off('mousemove', mousemove);
             $document.off('mouseup', mouseup);
-          };
+          }
 
-          var update = function (omitInnerInput) {
+          function update(omitInnerInput) {
             pickerColor.setColor(elem.val());
             if (withInput && !omitInnerInput) {
               pickerColorInput.val(elem.val());
@@ -443,9 +445,9 @@ angular.module('colorpicker.module', [])
             pickerColorPointers.eq(1).css('top', 100 * (1 - pickerColor.value.h) + 'px');
             pickerColorPointers.eq(2).css('top', 100 * (1 - pickerColor.value.a) + 'px');
             previewColor();
-          };
+          }
 
-          var getColorpickerTemplatePosition = function() {
+          function getColorpickerTemplatePosition() {
             var
                 positionValue,
                 positionOffset = Helper.getOffset(elem[0]);
@@ -480,13 +482,13 @@ angular.module('colorpicker.module', [])
               'top': positionValue.top + 'px',
               'left': positionValue.left + 'px'
             };
-          };
+          }
 
-          var documentMousedownHandler = function() {
+          function documentMousedownHandler() {
             hideColorpickerTemplate();
-          };
+          }
 
-          var showColorpickerTemplate = function() {
+          function showColorpickerTemplate() {
 
             if (!colorpickerTemplate.hasClass('colorpicker-visible')) {
               update();
@@ -507,10 +509,9 @@ angular.module('colorpicker.module', [])
                 }
               }
             }
+          }
 
-          };
-
-          if(inline === false) {
+          if (inline === false) {
             elem.on('click', showColorpickerTemplate);
           } else {
             showColorpickerTemplate();
@@ -521,16 +522,16 @@ angular.module('colorpicker.module', [])
             event.preventDefault();
           });
 
-          var emitEvent = function(name) {
-            if(ngModel) {
+          function emitEvent(name) {
+            if (ngModel) {
               $scope.$emit(name, {
                 name: attrs.ngModel,
                 value: ngModel.$modelValue
               });
             }
-          };
+          }
 
-          var hideColorpickerTemplate = function() {
+          function hideColorpickerTemplate() {
             if (colorpickerTemplate.hasClass('colorpicker-visible')) {
               colorpickerTemplate.removeClass('colorpicker-visible');
               emitEvent('colorpicker-closed');
@@ -544,7 +545,7 @@ angular.module('colorpicker.module', [])
                 }
               }
             }
-          };
+          }
 
           colorpickerTemplate.find('button').on('click', function () {
             hideColorpickerTemplate();
@@ -561,7 +562,6 @@ angular.module('colorpicker.module', [])
 
             });
           }
-
         }
       };
     }]);
index 9ff195b..6bb3ade 100644 (file)
@@ -1,10 +1,30 @@
 angular.module('ui.bootstrap.contextMenu', [])
 
-.directive('contextMenu', ["$parse", function ($parse) {
-    var renderContextMenu = function ($scope, event, options, model) {
+.directive('contextMenu', ["$parse", "$q", function ($parse, $q) {
+
+    var contextMenus = [];
+
+    var removeContextMenus = function (level) {
+        while (contextMenus.length && (!level || contextMenus.length > level)) {
+            contextMenus.pop().remove();
+        }
+        if (contextMenus.length == 0 && $currentContextMenu) {
+            $currentContextMenu.remove();
+        }
+    };
+
+    var $currentContextMenu = null;
+
+    var renderContextMenu = function ($scope, event, options, model, level) {
+        if (!level) { level = 0; }
         if (!$) { var $ = angular.element; }
         $(event.currentTarget).addClass('context');
         var $contextMenu = $('<div>');
+        if ($currentContextMenu) {
+            $contextMenu = $currentContextMenu;
+        } else {
+            $currentContextMenu = $contextMenu;
+        }
         $contextMenu.addClass('dropdown clearfix');
         var $ul = $('<ul>');
         $ul.addClass('dropdown-menu');
@@ -13,26 +33,59 @@ angular.module('ui.bootstrap.contextMenu', [])
             display: 'block',
             position: 'absolute',
             left: event.pageX + 'px',
-            top: event.pageY + 'px'
+            top: event.pageY + 'px',
+            "z-index": 10000
         });
         angular.forEach(options, function (item, i) {
             var $li = $('<li>');
             if (item === null) {
                 $li.addClass('divider');
             } else {
+                var nestedMenu = angular.isArray(item[1])
+                  ? item[1] : angular.isArray(item[2])
+                  ? item[2] : angular.isArray(item[3])
+                  ? item[3] : null;
                 var $a = $('<a>');
+                $a.css("padding-right", "8px");
                 $a.attr({ tabindex: '-1', href: '#' });
                 var text = typeof item[0] == 'string' ? item[0] : item[0].call($scope, $scope, event, model);
-                $a.text(text);
+                $q.when(text).then(function (text) {
+                    $a.text(text);
+                    if (nestedMenu) {
+                        $a.css("cursor", "default");
+                        $a.append($('<strong style="font-family:monospace;font-weight:bold;float:right;">&gt;</strong>'));
+                    }
+                });
                 $li.append($a);
-                var enabled = angular.isDefined(item[2]) ? item[2].call($scope, $scope, event, text, model) : true;
+
+                var enabled = angular.isFunction(item[2]) ? item[2].call($scope, $scope, event, model, text) : true;
                 if (enabled) {
+                    var openNestedMenu = function ($event) {
+                        removeContextMenus(level + 1);
+                        var ev = {
+                            pageX: event.pageX + $ul[0].offsetWidth - 1,
+                            pageY: $ul[0].offsetTop + $li[0].offsetTop - 3
+                        };
+                        renderContextMenu($scope, ev, nestedMenu, model, level + 1);
+                    }
                     $li.on('click', function ($event) {
                         $event.preventDefault();
                         $scope.$apply(function () {
-                            $(event.currentTarget).removeClass('context');
-                            $contextMenu.remove();
-                            item[1].call($scope, $scope, event, model);
+                            if (nestedMenu) {
+                                openNestedMenu($event);
+                            } else {
+                                $(event.currentTarget).removeClass('context');
+                                removeContextMenus();
+                                item[1].call($scope, $scope, event, model, text);
+                            }
+                        });
+                    });
+
+                    $li.on('mouseover', function ($event) {
+                        $scope.$apply(function () {
+                            if (nestedMenu) {
+                                openNestedMenu($event);
+                            }
                         });
                     });
                 } else {
@@ -62,13 +115,18 @@ angular.module('ui.bootstrap.contextMenu', [])
         $contextMenu.on("mousedown", function (e) {
             if ($(e.target).hasClass('dropdown')) {
                 $(event.currentTarget).removeClass('context');
-                $contextMenu.remove();
+                removeContextMenus();
             }
         }).on('contextmenu', function (event) {
             $(event.currentTarget).removeClass('context');
             event.preventDefault();
-            $contextMenu.remove();
+            removeContextMenus(level);
+        });
+        $scope.$on("$destroy", function () {
+            removeContextMenus();
         });
+
+        contextMenus.push($ul);
     };
     return function ($scope, element, attrs) {
         element.on('contextmenu', function (event) {
index 8a04e12..9ceac71 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license AngularJS v1.4.8
+ * @license AngularJS v1.4.9
  * (c) 2010-2015 Google, Inc. http://angularjs.org
  * License: MIT
  */
index caea57d..d128c10 100644 (file)
@@ -485,7 +485,7 @@ if (typeof module !== "undefined" && module.exports) {
 
 },{}],3:[function(require,module,exports){
 'use strict';
-
+module.exports = 'ngFileSaver';
 /*
 *
 * A AngularJS module that implements the HTML5 W3C saveAs() in browsers that
index e731ad1..8216695 100644 (file)
@@ -1,14 +1,11 @@
 /**
  * An Angular module that gives you access to the browsers local storage
- * @version v0.2.3 - 2015-10-11
+ * @version v0.2.5 - 2016-02-23
  * @link https://github.com/grevory/angular-local-storage
  * @author grevory <greg@gregpike.ca>
  * @license MIT License, http://www.opensource.org/licenses/MIT
  */
-(function ( window, angular, undefined ) {
-/*jshint globalstrict:true*/
-'use strict';
-
+(function (window, angular) {
 var isDefined = angular.isDefined,
   isUndefined = angular.isUndefined,
   isNumber = angular.isNumber,
@@ -16,434 +13,434 @@ var isDefined = angular.isDefined,
   isArray = angular.isArray,
   extend = angular.extend,
   toJson = angular.toJson;
-var angularLocalStorage = angular.module('LocalStorageModule', []);
-
-angularLocalStorage.provider('localStorageService', function() {
-
-  // You should set a prefix to avoid overwriting any local storage variables from the rest of your app
-  // e.g. localStorageServiceProvider.setPrefix('yourAppName');
-  // With provider you can use config as this:
-  // myApp.config(function (localStorageServiceProvider) {
-  //    localStorageServiceProvider.prefix = 'yourAppName';
-  // });
-  this.prefix = 'ls';
-
-  // You could change web storage type localstorage or sessionStorage
-  this.storageType = 'localStorage';
-
-  // Cookie options (usually in case of fallback)
-  // expiry = Number of days before cookies expire // 0 = Does not expire
-  // path = The web path the cookie represents
-  this.cookie = {
-    expiry: 30,
-    path: '/'
-  };
-
-  // Send signals for each of the following actions?
-  this.notify = {
-    setItem: true,
-    removeItem: false
-  };
-
-  // Setter for the prefix
-  this.setPrefix = function(prefix) {
-    this.prefix = prefix;
-    return this;
-  };
-
-   // Setter for the storageType
-   this.setStorageType = function(storageType) {
-     this.storageType = storageType;
-     return this;
-   };
-
-  // Setter for cookie config
-  this.setStorageCookie = function(exp, path) {
-    this.cookie.expiry = exp;
-    this.cookie.path = path;
-    return this;
-  };
-
-  // Setter for cookie domain
-  this.setStorageCookieDomain = function(domain) {
-    this.cookie.domain = domain;
-    return this;
-  };
-
-  // Setter for notification config
-  // itemSet & itemRemove should be booleans
-  this.setNotify = function(itemSet, itemRemove) {
-    this.notify = {
-      setItem: itemSet,
-      removeItem: itemRemove
-    };
-    return this;
-  };
-
-  this.$get = ['$rootScope', '$window', '$document', '$parse', function($rootScope, $window, $document, $parse) {
-    var self = this;
-    var prefix = self.prefix;
-    var cookie = self.cookie;
-    var notify = self.notify;
-    var storageType = self.storageType;
-    var webStorage;
-
-    // When Angular's $document is not available
-    if (!$document) {
-      $document = document;
-    } else if ($document[0]) {
-      $document = $document[0];
-    }
-
-    // If there is a prefix set in the config lets use that with an appended period for readability
-    if (prefix.substr(-1) !== '.') {
-      prefix = !!prefix ? prefix + '.' : '';
-    }
-    var deriveQualifiedKey = function(key) {
-      return prefix + key;
+
+angular
+  .module('LocalStorageModule', [])
+  .provider('localStorageService', function() {
+    // You should set a prefix to avoid overwriting any local storage variables from the rest of your app
+    // e.g. localStorageServiceProvider.setPrefix('yourAppName');
+    // With provider you can use config as this:
+    // myApp.config(function (localStorageServiceProvider) {
+    //    localStorageServiceProvider.prefix = 'yourAppName';
+    // });
+    this.prefix = 'ls';
+
+    // You could change web storage type localstorage or sessionStorage
+    this.storageType = 'localStorage';
+
+    // Cookie options (usually in case of fallback)
+    // expiry = Number of days before cookies expire // 0 = Does not expire
+    // path = The web path the cookie represents
+    this.cookie = {
+      expiry: 30,
+      path: '/'
     };
-    // Checks the browser to see if local storage is supported
-    var browserSupportsLocalStorage = (function () {
-      try {
-        var supported = (storageType in $window && $window[storageType] !== null);
-
-        // When Safari (OS X or iOS) is in private browsing mode, it appears as though localStorage
-        // is available, but trying to call .setItem throws an exception.
-        //
-        // "QUOTA_EXCEEDED_ERR: DOM Exception 22: An attempt was made to add something to storage
-        // that exceeded the quota."
-        var key = deriveQualifiedKey('__' + Math.round(Math.random() * 1e7));
-        if (supported) {
-          webStorage = $window[storageType];
-          webStorage.setItem(key, '');
-          webStorage.removeItem(key);
-        }
 
-        return supported;
-      } catch (e) {
-        storageType = 'cookie';
-        $rootScope.$broadcast('LocalStorageModule.notification.error', e.message);
-        return false;
-      }
-    }());
-
-    // Directly adds a value to local storage
-    // If local storage is not available in the browser use cookies
-    // Example use: localStorageService.add('library','angular');
-    var addToLocalStorage = function (key, value) {
-      // Let's convert undefined values to null to get the value consistent
-      if (isUndefined(value)) {
-        value = null;
-      } else {
-        value = toJson(value);
-      }
+    // Send signals for each of the following actions?
+    this.notify = {
+      setItem: true,
+      removeItem: false
+    };
 
-      // If this browser does not support local storage use cookies
-      if (!browserSupportsLocalStorage || self.storageType === 'cookie') {
-        if (!browserSupportsLocalStorage) {
-            $rootScope.$broadcast('LocalStorageModule.notification.warning', 'LOCAL_STORAGE_NOT_SUPPORTED');
-        }
+    // Setter for the prefix
+    this.setPrefix = function(prefix) {
+      this.prefix = prefix;
+      return this;
+    };
 
-        if (notify.setItem) {
-          $rootScope.$broadcast('LocalStorageModule.notification.setitem', {key: key, newvalue: value, storageType: 'cookie'});
-        }
-        return addToCookies(key, value);
-      }
+    // Setter for the storageType
+    this.setStorageType = function(storageType) {
+      this.storageType = storageType;
+      return this;
+    };
 
-      try {
-        if (webStorage) {
-          webStorage.setItem(deriveQualifiedKey(key), value);
-        }
-        if (notify.setItem) {
-          $rootScope.$broadcast('LocalStorageModule.notification.setitem', {key: key, newvalue: value, storageType: self.storageType});
-        }
-      } catch (e) {
-        $rootScope.$broadcast('LocalStorageModule.notification.error', e.message);
-        return addToCookies(key, value);
-      }
-      return true;
+    // Setter for cookie config
+    this.setStorageCookie = function(exp, path) {
+      this.cookie.expiry = exp;
+      this.cookie.path = path;
+      return this;
     };
 
-    // Directly get a value from local storage
-    // Example use: localStorageService.get('library'); // returns 'angular'
-    var getFromLocalStorage = function (key) {
+    // Setter for cookie domain
+    this.setStorageCookieDomain = function(domain) {
+      this.cookie.domain = domain;
+      return this;
+    };
 
-      if (!browserSupportsLocalStorage || self.storageType === 'cookie') {
-        if (!browserSupportsLocalStorage) {
-          $rootScope.$broadcast('LocalStorageModule.notification.warning','LOCAL_STORAGE_NOT_SUPPORTED');
-        }
+    // Setter for notification config
+    // itemSet & itemRemove should be booleans
+    this.setNotify = function(itemSet, itemRemove) {
+      this.notify = {
+        setItem: itemSet,
+        removeItem: itemRemove
+      };
+      return this;
+    };
 
-        return getFromCookies(key);
+    this.$get = ['$rootScope', '$window', '$document', '$parse', function($rootScope, $window, $document, $parse) {
+      var self = this;
+      var prefix = self.prefix;
+      var cookie = self.cookie;
+      var notify = self.notify;
+      var storageType = self.storageType;
+      var webStorage;
+
+      // When Angular's $document is not available
+      if (!$document) {
+        $document = document;
+      } else if ($document[0]) {
+        $document = $document[0];
       }
 
-      var item = webStorage ? webStorage.getItem(deriveQualifiedKey(key)) : null;
-      // angular.toJson will convert null to 'null', so a proper conversion is needed
-      // FIXME not a perfect solution, since a valid 'null' string can't be stored
-      if (!item || item === 'null') {
-        return null;
+      // If there is a prefix set in the config lets use that with an appended period for readability
+      if (prefix.substr(-1) !== '.') {
+        prefix = !!prefix ? prefix + '.' : '';
       }
+      var deriveQualifiedKey = function(key) {
+        return prefix + key;
+      };
+      // Checks the browser to see if local storage is supported
+      var browserSupportsLocalStorage = (function () {
+        try {
+          var supported = (storageType in $window && $window[storageType] !== null);
+
+          // When Safari (OS X or iOS) is in private browsing mode, it appears as though localStorage
+          // is available, but trying to call .setItem throws an exception.
+          //
+          // "QUOTA_EXCEEDED_ERR: DOM Exception 22: An attempt was made to add something to storage
+          // that exceeded the quota."
+          var key = deriveQualifiedKey('__' + Math.round(Math.random() * 1e7));
+          if (supported) {
+            webStorage = $window[storageType];
+            webStorage.setItem(key, '');
+            webStorage.removeItem(key);
+          }
 
-      try {
-        return JSON.parse(item);
-      } catch (e) {
-        return item;
-      }
-    };
+          return supported;
+        } catch (e) {
+          storageType = 'cookie';
+          $rootScope.$broadcast('LocalStorageModule.notification.error', e.message);
+          return false;
+        }
+      }());
+
+      // Directly adds a value to local storage
+      // If local storage is not available in the browser use cookies
+      // Example use: localStorageService.add('library','angular');
+      var addToLocalStorage = function (key, value) {
+        // Let's convert undefined values to null to get the value consistent
+        if (isUndefined(value)) {
+          value = null;
+        } else {
+          value = toJson(value);
+        }
 
-    // Remove an item from local storage
-    // Example use: localStorageService.remove('library'); // removes the key/value pair of library='angular'
-    var removeFromLocalStorage = function () {
-      var i, key;
-      for (i=0; i<arguments.length; i++) {
-        key = arguments[i];
+        // If this browser does not support local storage use cookies
         if (!browserSupportsLocalStorage || self.storageType === 'cookie') {
           if (!browserSupportsLocalStorage) {
             $rootScope.$broadcast('LocalStorageModule.notification.warning', 'LOCAL_STORAGE_NOT_SUPPORTED');
           }
 
-          if (notify.removeItem) {
-            $rootScope.$broadcast('LocalStorageModule.notification.removeitem', {key: key, storageType: 'cookie'});
+          if (notify.setItem) {
+            $rootScope.$broadcast('LocalStorageModule.notification.setitem', {key: key, newvalue: value, storageType: 'cookie'});
           }
-          removeFromCookies(key);
+          return addToCookies(key, value);
         }
-        else {
-          try {
-            webStorage.removeItem(deriveQualifiedKey(key));
-            if (notify.removeItem) {
-              $rootScope.$broadcast('LocalStorageModule.notification.removeitem', {
-                key: key,
-                storageType: self.storageType
-              });
-            }
-          } catch (e) {
-            $rootScope.$broadcast('LocalStorageModule.notification.error', e.message);
-            removeFromCookies(key);
+
+        try {
+          if (webStorage) {
+            webStorage.setItem(deriveQualifiedKey(key), value);
           }
+          if (notify.setItem) {
+            $rootScope.$broadcast('LocalStorageModule.notification.setitem', {key: key, newvalue: value, storageType: self.storageType});
+          }
+        } catch (e) {
+          $rootScope.$broadcast('LocalStorageModule.notification.error', e.message);
+          return addToCookies(key, value);
         }
-      }
-    };
+        return true;
+      };
 
-    // Return array of keys for local storage
-    // Example use: var keys = localStorageService.keys()
-    var getKeysForLocalStorage = function () {
-
-      if (!browserSupportsLocalStorage) {
-        $rootScope.$broadcast('LocalStorageModule.notification.warning', 'LOCAL_STORAGE_NOT_SUPPORTED');
-        return false;
-      }
+      // Directly get a value from local storage
+      // Example use: localStorageService.get('library'); // returns 'angular'
+      var getFromLocalStorage = function (key) {
 
-      var prefixLength = prefix.length;
-      var keys = [];
-      for (var key in webStorage) {
-        // Only return keys that are for this app
-        if (key.substr(0,prefixLength) === prefix) {
-          try {
-            keys.push(key.substr(prefixLength));
-          } catch (e) {
-            $rootScope.$broadcast('LocalStorageModule.notification.error', e.Description);
-            return [];
+        if (!browserSupportsLocalStorage || self.storageType === 'cookie') {
+          if (!browserSupportsLocalStorage) {
+            $rootScope.$broadcast('LocalStorageModule.notification.warning','LOCAL_STORAGE_NOT_SUPPORTED');
           }
-        }
-      }
-      return keys;
-    };
-
-    // Remove all data for this app from local storage
-    // Also optionally takes a regular expression string and removes the matching key-value pairs
-    // Example use: localStorageService.clearAll();
-    // Should be used mostly for development purposes
-    var clearAllFromLocalStorage = function (regularExpression) {
 
-      // Setting both regular expressions independently
-      // Empty strings result in catchall RegExp
-      var prefixRegex = !!prefix ? new RegExp('^' + prefix) : new RegExp();
-      var testRegex = !!regularExpression ? new RegExp(regularExpression) : new RegExp();
+          return getFromCookies(key);
+        }
 
-      if (!browserSupportsLocalStorage || self.storageType === 'cookie') {
-        if (!browserSupportsLocalStorage) {
-          $rootScope.$broadcast('LocalStorageModule.notification.warning', 'LOCAL_STORAGE_NOT_SUPPORTED');
+        var item = webStorage ? webStorage.getItem(deriveQualifiedKey(key)) : null;
+        // angular.toJson will convert null to 'null', so a proper conversion is needed
+        // FIXME not a perfect solution, since a valid 'null' string can't be stored
+        if (!item || item === 'null') {
+          return null;
         }
-        return clearAllFromCookies();
-      }
 
-      var prefixLength = prefix.length;
+        try {
+          return JSON.parse(item);
+        } catch (e) {
+          return item;
+        }
+      };
+
+      // Remove an item from local storage
+      // Example use: localStorageService.remove('library'); // removes the key/value pair of library='angular'
+      var removeFromLocalStorage = function () {
+        var i, key;
+        for (i=0; i<arguments.length; i++) {
+          key = arguments[i];
+          if (!browserSupportsLocalStorage || self.storageType === 'cookie') {
+            if (!browserSupportsLocalStorage) {
+              $rootScope.$broadcast('LocalStorageModule.notification.warning', 'LOCAL_STORAGE_NOT_SUPPORTED');
+            }
 
-      for (var key in webStorage) {
-        // Only remove items that are for this app and match the regular expression
-        if (prefixRegex.test(key) && testRegex.test(key.substr(prefixLength))) {
-          try {
-            removeFromLocalStorage(key.substr(prefixLength));
-          } catch (e) {
-            $rootScope.$broadcast('LocalStorageModule.notification.error',e.message);
-            return clearAllFromCookies();
+            if (notify.removeItem) {
+              $rootScope.$broadcast('LocalStorageModule.notification.removeitem', {key: key, storageType: 'cookie'});
+            }
+            removeFromCookies(key);
+          }
+          else {
+            try {
+              webStorage.removeItem(deriveQualifiedKey(key));
+              if (notify.removeItem) {
+                $rootScope.$broadcast('LocalStorageModule.notification.removeitem', {
+                  key: key,
+                  storageType: self.storageType
+                });
+              }
+            } catch (e) {
+              $rootScope.$broadcast('LocalStorageModule.notification.error', e.message);
+              removeFromCookies(key);
+            }
           }
         }
-      }
-      return true;
-    };
+      };
 
-    // Checks the browser to see if cookies are supported
-    var browserSupportsCookies = (function() {
-      try {
-        return $window.navigator.cookieEnabled ||
-          ("cookie" in $document && ($document.cookie.length > 0 ||
-          ($document.cookie = "test").indexOf.call($document.cookie, "test") > -1));
-      } catch (e) {
-          $rootScope.$broadcast('LocalStorageModule.notification.error', e.message);
-          return false;
-      }
-    }());
+      // Return array of keys for local storage
+      // Example use: var keys = localStorageService.keys()
+      var getKeysForLocalStorage = function () {
 
-    // Directly adds a value to cookies
-    // Typically used as a fallback is local storage is not available in the browser
-    // Example use: localStorageService.cookie.add('library','angular');
-    var addToCookies = function (key, value, daysToExpiry) {
+        if (!browserSupportsLocalStorage) {
+          $rootScope.$broadcast('LocalStorageModule.notification.warning', 'LOCAL_STORAGE_NOT_SUPPORTED');
+          return false;
+        }
 
-      if (isUndefined(value)) {
-        return false;
-      } else if(isArray(value) || isObject(value)) {
-        value = toJson(value);
-      }
+        var prefixLength = prefix.length;
+        var keys = [];
+        for (var key in webStorage) {
+          // Only return keys that are for this app
+          if (key.substr(0,prefixLength) === prefix) {
+            try {
+              keys.push(key.substr(prefixLength));
+            } catch (e) {
+              $rootScope.$broadcast('LocalStorageModule.notification.error', e.Description);
+              return [];
+            }
+          }
+        }
+        return keys;
+      };
 
-      if (!browserSupportsCookies) {
-        $rootScope.$broadcast('LocalStorageModule.notification.error', 'COOKIES_NOT_SUPPORTED');
-        return false;
-      }
+      // Remove all data for this app from local storage
+      // Also optionally takes a regular expression string and removes the matching key-value pairs
+      // Example use: localStorageService.clearAll();
+      // Should be used mostly for development purposes
+      var clearAllFromLocalStorage = function (regularExpression) {
 
-      try {
-        var expiry = '',
-            expiryDate = new Date(),
-            cookieDomain = '';
+        // Setting both regular expressions independently
+        // Empty strings result in catchall RegExp
+        var prefixRegex = !!prefix ? new RegExp('^' + prefix) : new RegExp();
+        var testRegex = !!regularExpression ? new RegExp(regularExpression) : new RegExp();
 
-        if (value === null) {
-          // Mark that the cookie has expired one day ago
-          expiryDate.setTime(expiryDate.getTime() + (-1 * 24 * 60 * 60 * 1000));
-          expiry = "; expires=" + expiryDate.toGMTString();
-          value = '';
-        } else if (isNumber(daysToExpiry) && daysToExpiry !== 0) {
-          expiryDate.setTime(expiryDate.getTime() + (daysToExpiry * 24 * 60 * 60 * 1000));
-          expiry = "; expires=" + expiryDate.toGMTString();
-        } else if (cookie.expiry !== 0) {
-          expiryDate.setTime(expiryDate.getTime() + (cookie.expiry * 24 * 60 * 60 * 1000));
-          expiry = "; expires=" + expiryDate.toGMTString();
-        }
-        if (!!key) {
-          var cookiePath = "; path=" + cookie.path;
-          if(cookie.domain){
-            cookieDomain = "; domain=" + cookie.domain;
+        if (!browserSupportsLocalStorage || self.storageType === 'cookie') {
+          if (!browserSupportsLocalStorage) {
+            $rootScope.$broadcast('LocalStorageModule.notification.warning', 'LOCAL_STORAGE_NOT_SUPPORTED');
           }
-          $document.cookie = deriveQualifiedKey(key) + "=" + encodeURIComponent(value) + expiry + cookiePath + cookieDomain;
+          return clearAllFromCookies();
         }
-      } catch (e) {
-        $rootScope.$broadcast('LocalStorageModule.notification.error',e.message);
-        return false;
-      }
-      return true;
-    };
 
-    // Directly get a value from a cookie
-    // Example use: localStorageService.cookie.get('library'); // returns 'angular'
-    var getFromCookies = function (key) {
-      if (!browserSupportsCookies) {
-        $rootScope.$broadcast('LocalStorageModule.notification.error', 'COOKIES_NOT_SUPPORTED');
-        return false;
-      }
+        var prefixLength = prefix.length;
 
-      var cookies = $document.cookie && $document.cookie.split(';') || [];
-      for(var i=0; i < cookies.length; i++) {
-        var thisCookie = cookies[i];
-        while (thisCookie.charAt(0) === ' ') {
-          thisCookie = thisCookie.substring(1,thisCookie.length);
-        }
-        if (thisCookie.indexOf(deriveQualifiedKey(key) + '=') === 0) {
-          var storedValues = decodeURIComponent(thisCookie.substring(prefix.length + key.length + 1, thisCookie.length));
-          try {
-            return JSON.parse(storedValues);
-          } catch(e) {
-            return storedValues;
+        for (var key in webStorage) {
+          // Only remove items that are for this app and match the regular expression
+          if (prefixRegex.test(key) && testRegex.test(key.substr(prefixLength))) {
+            try {
+              removeFromLocalStorage(key.substr(prefixLength));
+            } catch (e) {
+              $rootScope.$broadcast('LocalStorageModule.notification.error',e.message);
+              return clearAllFromCookies();
+            }
           }
         }
-      }
-      return null;
-    };
-
-    var removeFromCookies = function (key) {
-      addToCookies(key,null);
-    };
+        return true;
+      };
 
-    var clearAllFromCookies = function () {
-      var thisCookie = null, thisKey = null;
-      var prefixLength = prefix.length;
-      var cookies = $document.cookie.split(';');
-      for(var i = 0; i < cookies.length; i++) {
-        thisCookie = cookies[i];
-
-        while (thisCookie.charAt(0) === ' ') {
-          thisCookie = thisCookie.substring(1, thisCookie.length);
-        }
+      // Checks the browser to see if cookies are supported
+      var browserSupportsCookies = (function() {
+        try {
+          return $window.navigator.cookieEnabled ||
+          ("cookie" in $document && ($document.cookie.length > 0 ||
+            ($document.cookie = "test").indexOf.call($document.cookie, "test") > -1));
+          } catch (e) {
+            $rootScope.$broadcast('LocalStorageModule.notification.error', e.message);
+            return false;
+          }
+        }());
 
-        var key = thisCookie.substring(prefixLength, thisCookie.indexOf('='));
-        removeFromCookies(key);
-      }
-    };
+        // Directly adds a value to cookies
+        // Typically used as a fallback is local storage is not available in the browser
+        // Example use: localStorageService.cookie.add('library','angular');
+        var addToCookies = function (key, value, daysToExpiry) {
 
-    var getStorageType = function() {
-      return storageType;
-    };
+          if (isUndefined(value)) {
+            return false;
+          } else if(isArray(value) || isObject(value)) {
+            value = toJson(value);
+          }
 
-    // Add a listener on scope variable to save its changes to local storage
-    // Return a function which when called cancels binding
-    var bindToScope = function(scope, key, def, lsKey) {
-      lsKey = lsKey || key;
-      var value = getFromLocalStorage(lsKey);
+          if (!browserSupportsCookies) {
+            $rootScope.$broadcast('LocalStorageModule.notification.error', 'COOKIES_NOT_SUPPORTED');
+            return false;
+          }
 
-      if (value === null && isDefined(def)) {
-        value = def;
-      } else if (isObject(value) && isObject(def)) {
-        value = extend(def, value);
-      }
+          try {
+            var expiry = '',
+            expiryDate = new Date(),
+            cookieDomain = '';
 
-      $parse(key).assign(scope, value);
+            if (value === null) {
+              // Mark that the cookie has expired one day ago
+              expiryDate.setTime(expiryDate.getTime() + (-1 * 24 * 60 * 60 * 1000));
+              expiry = "; expires=" + expiryDate.toGMTString();
+              value = '';
+            } else if (isNumber(daysToExpiry) && daysToExpiry !== 0) {
+              expiryDate.setTime(expiryDate.getTime() + (daysToExpiry * 24 * 60 * 60 * 1000));
+              expiry = "; expires=" + expiryDate.toGMTString();
+            } else if (cookie.expiry !== 0) {
+              expiryDate.setTime(expiryDate.getTime() + (cookie.expiry * 24 * 60 * 60 * 1000));
+              expiry = "; expires=" + expiryDate.toGMTString();
+            }
+            if (!!key) {
+              var cookiePath = "; path=" + cookie.path;
+              if(cookie.domain){
+                cookieDomain = "; domain=" + cookie.domain;
+              }
+              $document.cookie = deriveQualifiedKey(key) + "=" + encodeURIComponent(value) + expiry + cookiePath + cookieDomain;
+            }
+          } catch (e) {
+            $rootScope.$broadcast('LocalStorageModule.notification.error',e.message);
+            return false;
+          }
+          return true;
+        };
+
+        // Directly get a value from a cookie
+        // Example use: localStorageService.cookie.get('library'); // returns 'angular'
+        var getFromCookies = function (key) {
+          if (!browserSupportsCookies) {
+            $rootScope.$broadcast('LocalStorageModule.notification.error', 'COOKIES_NOT_SUPPORTED');
+            return false;
+          }
 
-      return scope.$watch(key, function(newVal) {
-        addToLocalStorage(lsKey, newVal);
-      }, isObject(scope[key]));
-    };
+          var cookies = $document.cookie && $document.cookie.split(';') || [];
+          for(var i=0; i < cookies.length; i++) {
+            var thisCookie = cookies[i];
+            while (thisCookie.charAt(0) === ' ') {
+              thisCookie = thisCookie.substring(1,thisCookie.length);
+            }
+            if (thisCookie.indexOf(deriveQualifiedKey(key) + '=') === 0) {
+              var storedValues = decodeURIComponent(thisCookie.substring(prefix.length + key.length + 1, thisCookie.length));
+              try {
+                return JSON.parse(storedValues);
+              } catch(e) {
+                return storedValues;
+              }
+            }
+          }
+          return null;
+        };
+
+        var removeFromCookies = function (key) {
+          addToCookies(key,null);
+        };
+
+        var clearAllFromCookies = function () {
+          var thisCookie = null, thisKey = null;
+          var prefixLength = prefix.length;
+          var cookies = $document.cookie.split(';');
+          for(var i = 0; i < cookies.length; i++) {
+            thisCookie = cookies[i];
+
+            while (thisCookie.charAt(0) === ' ') {
+              thisCookie = thisCookie.substring(1, thisCookie.length);
+            }
 
-    // Return localStorageService.length
-    // ignore keys that not owned
-    var lengthOfLocalStorage = function() {
-      var count = 0;
-      var storage = $window[storageType];
-      for(var i = 0; i < storage.length; i++) {
-        if(storage.key(i).indexOf(prefix) === 0 ) {
-          count++;
-        }
-      }
-      return count;
-    };
+            var key = thisCookie.substring(prefixLength, thisCookie.indexOf('='));
+            removeFromCookies(key);
+          }
+        };
+
+        var getStorageType = function() {
+          return storageType;
+        };
+
+        // Add a listener on scope variable to save its changes to local storage
+        // Return a function which when called cancels binding
+        var bindToScope = function(scope, key, def, lsKey) {
+          lsKey = lsKey || key;
+          var value = getFromLocalStorage(lsKey);
+
+          if (value === null && isDefined(def)) {
+            value = def;
+          } else if (isObject(value) && isObject(def)) {
+            value = extend(value, def);
+          }
 
-    return {
-      isSupported: browserSupportsLocalStorage,
-      getStorageType: getStorageType,
-      set: addToLocalStorage,
-      add: addToLocalStorage, //DEPRECATED
-      get: getFromLocalStorage,
-      keys: getKeysForLocalStorage,
-      remove: removeFromLocalStorage,
-      clearAll: clearAllFromLocalStorage,
-      bind: bindToScope,
-      deriveKey: deriveQualifiedKey,
-      length: lengthOfLocalStorage,
-      cookie: {
-        isSupported: browserSupportsCookies,
-        set: addToCookies,
-        add: addToCookies, //DEPRECATED
-        get: getFromCookies,
-        remove: removeFromCookies,
-        clearAll: clearAllFromCookies
-      }
-    };
-  }];
-});
-})( window, window.angular );
\ No newline at end of file
+          $parse(key).assign(scope, value);
+
+          return scope.$watch(key, function(newVal) {
+            addToLocalStorage(lsKey, newVal);
+          }, isObject(scope[key]));
+        };
+
+        // Return localStorageService.length
+        // ignore keys that not owned
+        var lengthOfLocalStorage = function() {
+          var count = 0;
+          var storage = $window[storageType];
+          for(var i = 0; i < storage.length; i++) {
+            if(storage.key(i).indexOf(prefix) === 0 ) {
+              count++;
+            }
+          }
+          return count;
+        };
+
+        return {
+          isSupported: browserSupportsLocalStorage,
+          getStorageType: getStorageType,
+          set: addToLocalStorage,
+          add: addToLocalStorage, //DEPRECATED
+          get: getFromLocalStorage,
+          keys: getKeysForLocalStorage,
+          remove: removeFromLocalStorage,
+          clearAll: clearAllFromLocalStorage,
+          bind: bindToScope,
+          deriveKey: deriveQualifiedKey,
+          length: lengthOfLocalStorage,
+          cookie: {
+            isSupported: browserSupportsCookies,
+            set: addToCookies,
+            add: addToCookies, //DEPRECATED
+            get: getFromCookies,
+            remove: removeFromCookies,
+            clearAll: clearAllFromCookies
+          }
+        };
+      }];
+  });
+})(window, window.angular);
\ No newline at end of file
diff --git a/public/bower_components/angular-object-diff/angular-object-diff.css b/public/bower_components/angular-object-diff/angular-object-diff.css
deleted file mode 100644 (file)
index ac40da9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-.diff{display:inline-block}.diff-level{margin-left:1.6em}.diff-holder{color:#666;margin:0}.diff-holder span{color:#AAA}del.diff{text-decoration:none;color:#b30000;background:#fadad7}ins.diff{background:#eaf2c2;color:#406619;text-decoration:none}del.diff-key{border:1px solid #f8a4a4}ins.diff-key{border:1px solid #a3ce4c;margin-top:-1px;position:relative}ins.diff span{color:#AABF40}del.diff span{color:#EE8177}.audit-obj{max-height:300px;max-width:300px;overflow:auto}
-/*# sourceMappingURL=angular-object-diff.css.map */
diff --git a/public/bower_components/angular-object-diff/angular-object-diff.js b/public/bower_components/angular-object-diff/angular-object-diff.js
deleted file mode 100644 (file)
index 974f6a5..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-(function () {
-    'use strict';
-
-    angular
-        .module('ds.objectDiff', [])
-        .factory('ObjectDiff', objectDiff)
-        .filter('toJsonView', toJsonViewFilter)
-        .filter('toJsonDiffView', toJsonDiffViewFilter)
-        .filter('objToJsonView', objToJsonViewFilter);
-    
-    objectDiff.$inject = ['$sce'];
-    toJsonViewFilter.$inject = ['ObjectDiff'];
-    toJsonDiffViewFilter.$inject = ['ObjectDiff'];
-    objToJsonViewFilter.$inject = ['ObjectDiff'];
-
-    /* service implementation */
-    function objectDiff($sce) {
-
-        var openChar = '{',
-            closeChar = '}',
-            service = {
-                setOpenChar: setOpenChar,
-                setCloseChar: setCloseChar,
-                diff: diff,
-                diffOwnProperties: diffOwnProperties,
-                toJsonView: formatToJsonXMLString,
-                objToJsonView: formatObjToJsonXMLString,
-                toJsonDiffView: formatChangesToXMLString
-            };
-
-        return service;
-
-
-        /* service methods */
-
-        /**
-         * @param char
-         */
-        function setOpenChar(char) {
-            openChar = char;
-        }
-
-        /**
-         * @param char
-         */
-        function setCloseChar(char) {
-            closeChar = char;
-        }
-
-        /**
-         * diff between object a and b
-         * @param {Object} a
-         * @param {Object} b
-         * @param shallow
-         * @param isOwn
-         * @return {Object}
-         */
-        function diff(a, b, shallow, isOwn) {
-
-            if (a === b) {
-                return equalObj(a);
-            }
-
-            var diffValue = {};
-            var equal = true;
-
-            for (var key in a) {
-                if ((!isOwn && key in b) || (isOwn && b.hasOwnProperty(key))) {
-                    if (a[key] === b[key]) {
-                        diffValue[key] = equalObj(a[key]);
-                    } else {
-                        if (!shallow && isValidAttr(a[key], b[key])) {
-                            var valueDiff = diff(a[key], b[key], isOwn);
-                            if (valueDiff.changed == 'equal') {
-                                diffValue[key] = equalObj(a[key]);
-                            } else {
-                                equal = false;
-                                diffValue[key] = valueDiff;
-                            }
-                        } else {
-                            equal = false;
-                            diffValue[key] = {
-                                changed: 'primitive change',
-                                removed: a[key],
-                                added: b[key]
-                            }
-                        }
-                    }
-                } else {
-                    equal = false;
-                    diffValue[key] = {
-                        changed: 'removed',
-                        value: a[key]
-                    }
-                }
-            }
-
-            for (key in b) {
-                if ((!isOwn && !(key in a)) || (isOwn && !a.hasOwnProperty(key))) {
-                    equal = false;
-                    diffValue[key] = {
-                        changed: 'added',
-                        value: b[key]
-                    }
-                }
-            }
-
-            if (equal) {
-                return equalObj(a);
-            } else {
-                return {
-                    changed: 'object change',
-                    value: diffValue
-                }
-            }
-        }
-
-
-        /**
-         * diff between object a and b own properties only
-         * @param {Object} a
-         * @param {Object} b
-         * @return {Object}
-         * @param deep
-         */
-        function diffOwnProperties(a, b, deep) {
-            return diff(a, b, deep, true);
-        }
-
-        /**
-         * Convert to a readable xml/html Json structure
-         * @param {Object} changes
-         * @return {string}
-         * @param shallow
-         */
-        function formatToJsonXMLString(changes, shallow) {
-            var properties = [];
-
-            var diff = changes.value;
-            if (changes.changed == 'equal') {
-                return inspect(diff, shallow);
-            }
-
-            for (var key in diff) {
-                properties.push(formatChange(key, diff[key], shallow));
-            }
-
-            return $sce.trustAsHtml('<span>' + openChar + '</span>\n<div class="diff-level">' + properties.join('<span>,</span>\n') + '\n</div><span>' + openChar + '</span>');
-
-        }
-
-        /**
-         * Convert to a readable xml/html Json structure
-         * @return {string}
-         * @param obj
-         * @param shallow
-         */
-        function formatObjToJsonXMLString(obj, shallow) {
-            return $sce.trustAsHtml(inspect(obj, shallow));
-        }
-
-        /**
-         * Convert to a readable xml/html Json structure
-         * @param {Object} changes
-         * @return {string}
-         * @param shallow
-         */
-        function formatChangesToXMLString(changes, shallow) {
-            var properties = [];
-
-            if (changes.changed == 'equal') {
-                return '';
-            }
-
-            var diff = changes.value;
-
-            for (var key in diff) {
-                var changed = diff[key].changed;
-                if (changed !== 'equal')
-                    properties.push(formatChange(key, diff[key], shallow, true));
-            }
-
-            return $sce.trustAsHtml('<span>' + openChar + '</span>\n<div class="diff-level">' + properties.join('<span>,</span>\n') + '\n</div><span>' + closeChar + '</span>');
-
-        }
-
-        /**
-         * @param obj
-         * @returns {{changed: string, value: *}}
-         */
-        function equalObj(obj) {
-            return {
-                changed: 'equal',
-                value: obj
-            }
-        }
-
-        /**
-         * @param a
-         * @param b
-         * @returns {*|boolean}
-         */
-        function isValidAttr(a, b) {
-            var typeA = typeof a;
-            var typeB = typeof b;
-            return (a && b && (typeA == 'object' || typeA == 'function') && (typeB == 'object' || typeB == 'function'));
-        }
-
-        /**
-         * @param key
-         * @param diffItem
-         * @returns {*}
-         * @param shallow
-         * @param diffOnly
-         */
-        function formatChange(key, diffItem, shallow, diffOnly) {
-            var changed = diffItem.changed;
-            var property;
-            switch (changed) {
-                case 'equal':
-                    property = (stringifyObjectKey(escapeHTML(key)) + '<span>: </span>' + inspect(diffItem.value));
-                    break;
-
-                case 'removed':
-                    property = ('<del class="diff">' + stringifyObjectKey(escapeHTML(key)) + '<span>: </span>' + inspect(diffItem.value) + '</del>');
-                    break;
-
-                case 'added':
-                    property = ('<ins class="diff">' + stringifyObjectKey(escapeHTML(key)) + '<span>: </span>' + inspect(diffItem.value) + '</ins>');
-                    break;
-
-                case 'primitive change':
-                    var prefix = stringifyObjectKey(escapeHTML(key)) + '<span>: </span>';
-                    property = (
-                    '<del class="diff diff-key">' + prefix + inspect(diffItem.removed) + '</del><span>,</span>\n' +
-                    '<ins class="diff diff-key">' + prefix + inspect(diffItem.added) + '</ins>');
-                    break;
-
-                case 'object change':
-                    property = shallow ? '' : (stringifyObjectKey(key) + '<span>: </span>' + ( diffOnly ? formatChangesToXMLString(diffItem) : formatToJsonXMLString(diffItem)));
-                    break;
-            }
-
-            return property;
-        }
-
-        /**
-         * @param {string} key
-         * @return {string}
-         */
-        function stringifyObjectKey(key) {
-            return /^[a-z0-9_$]*$/i.test(key) ?
-                key :
-                JSON.stringify(key);
-        }
-
-        /**
-         * @param {string} string
-         * @return {string}
-         */
-        function escapeHTML(string) {
-            return string.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
-        }
-
-        /**
-         * @param {Object} obj
-         * @return {string}
-         * @param shallow
-         */
-        function inspect(obj, shallow) {
-
-            return _inspect('', obj, shallow);
-
-            /**
-             * @param {string} accumulator
-             * @param {object} obj
-             * @see http://jsperf.com/continuation-passing-style/3
-             * @return {string}
-             * @param shallow
-             */
-            function _inspect(accumulator, obj, shallow) {
-                switch (typeof obj) {
-                    case 'object':
-                        if (!obj) {
-                            accumulator += 'null';
-                            break;
-                        }
-                        if (shallow) {
-                            accumulator += '[object]';
-                            break;
-                        }
-                        var keys = Object.keys(obj);
-                        var length = keys.length;
-                        if (length === 0) {
-                            accumulator += '<span>' + openChar + closeChar + '</span>';
-                        } else {
-                            accumulator += '<span>' + openChar + '</span>\n<div class="diff-level">';
-                            for (var i = 0; i < length; i++) {
-                                var key = keys[i];
-                                accumulator = _inspect(accumulator + stringifyObjectKey(escapeHTML(key)) + '<span>: </span>', obj[key]);
-                                if (i < length - 1) {
-                                    accumulator += '<span>,</span>\n';
-                                }
-                            }
-                            accumulator += '\n</div><span>' + closeChar + '</span>'
-                        }
-                        break;
-
-                    case 'string':
-                        accumulator += JSON.stringify(escapeHTML(obj));
-                        break;
-
-                    case 'undefined':
-                        accumulator += 'undefined';
-                        break;
-
-                    default:
-                        accumulator += escapeHTML(String(obj));
-                        break;
-                }
-                return accumulator;
-            }
-        }
-    }
-
-    /* filter implementation */
-    function toJsonViewFilter(ObjectDiff) {
-        return function (value) {
-            return ObjectDiff.toJsonView(value);
-        };
-    }
-
-    function toJsonDiffViewFilter(ObjectDiff) {
-        return function (value) {
-            return ObjectDiff.toJsonDiffView(value);
-        };
-    }
-
-    function objToJsonViewFilter(ObjectDiff) {
-        return function (value) {
-            return ObjectDiff.objToJsonView(value);
-        };
-    }
-})();
index 425d267..cce8fc6 100644 (file)
@@ -1,7 +1,7 @@
 /**
  * angular-permission
  * Route permission and access control as simple as it can get
- * @version v2.0.9 - 2016-02-15
+ * @version v2.1.3 - 2016-03-08
  * @link http://www.rafaelvidaurre.com
  * @author Rafael Vidaurre <narzerus@gmail.com>
  * @license MIT License, http://www.opensource.org/licenses/MIT
   permission.run(['$rootScope', '$state', '$q', 'Authorization', 'PermissionMap', function ($rootScope, $state, $q, Authorization, PermissionMap) {
     $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams, options) {
 
-      if (toState.$$isAuthorizationFinished) {
-        return;
-      }
-
-      if (areSetStatePermissions(toState)) {
+      if (!isAuthorizationFinished() && areSetStatePermissions(toState)) {
         event.preventDefault();
         setStateAuthorizationStatus(true);
 
-
         if (!areStateEventsDefaultPrevented()) {
           var compensatedPermissionMap = compensatePermissionMap(toState.data.permissions);
           authorizeForState(compensatedPermissionMap);
        * @param status {boolean} When true authorization has been already preceded
        */
       function setStateAuthorizationStatus(status) {
-        toState = angular.extend({'$$isAuthorizationFinished': status}, toState);
+        angular.extend(toState, {'$$isAuthorizationFinished': status});
+      }
+
+
+      /**
+       * Checks if state has been already checked for authorization
+       *
+       * @returns {boolean}
+       */
+      function isAuthorizationFinished() {
+        return toState.$$isAuthorizationFinished;
       }
 
       /**
@@ -76,7 +81,7 @@
        * keeping the order of permissions from the newest (children) to the oldest (parent)
        *
        * @param statePermissionMap {Object} Current state permission map
-       * @returns {{only: Array, except: Array}} Permission map
+       * @returns {PermissionMap} Permission map
        */
       function compensatePermissionMap(statePermissionMap) {
         var permissionMap = new PermissionMap({redirectTo: statePermissionMap.redirectTo});
       /**
        * Handles state authorization
        *
-       * @param permissions {Object} Map of "only" or "except" permission names
+       * @param permissions {PermissionMap} Map of permission names
        */
       function authorizeForState(permissions) {
         Authorization
           .authorize(permissions, toParams)
           .then(function () {
             $rootScope.$broadcast('$stateChangePermissionAccepted', toState, toParams, options);
-            goToState(toState.name);
+
+            $state
+              .go(toState.name, toParams, {notify: false})
+              .then(function () {
+                $rootScope.$broadcast('$stateChangeSuccess', toState, toParams);
+              });
           })
           .catch(function (rejectedPermission) {
             $rootScope.$broadcast('$stateChangePermissionDenied', toState, toParams, options);
-            permissions.redirectToState(rejectedPermission);
-          });
-      }
 
-      /**
-       * Redirects to states when permissions are met
-       *
-       * If authorized, use call state.go without triggering the event.
-       * Then trigger $stateChangeSuccess manually to resume the rest of the process
-       * Note: This is a pseudo-hacky fix which should be fixed in future ui-router versions
-       */
-      function goToState(name) {
-        $state
-          .go(name, toParams, angular.extend({}, options, {notify: false}))
-          .then(function () {
-            $rootScope.$broadcast('$stateChangeSuccess', toState, toParams, fromState, fromParams, options);
+            return permissions
+              .resolveRedirectState(rejectedPermission)
+              .then(function (redirectStateName) {
+                $state.go(redirectStateName, toParams);
+              });
+          })
+          .finally(function () {
+            setStateAuthorizationStatus(false);
           });
       }
 
   }]);
 }());
 
+
 (function () {
   'use strict';
 
   angular
     .module('permission')
-    .factory('PermissionMap', ['$q', '$state', function ($q, $state) {
+    .factory('PermissionMap', ['$q', function ($q) {
 
       /**
        * Constructs map object instructing authorization service how to handle authorizing
         this.except = this.except.concat(permissionMap.except);
       };
 
-
       /**
        * Redirects to fallback states when permissions fail
        *
        * @param rejectedPermissionName {String} Permission name
+       *
+       * @return {Promise}
        */
-      PermissionMap.prototype.redirectToState = function (rejectedPermissionName) {
+      PermissionMap.prototype.resolveRedirectState = function (rejectedPermissionName) {
         if (angular.isFunction(this.redirectTo)) {
-          handleFunctionRedirect(this.redirectTo, rejectedPermissionName);
+          return resolveFunctionRedirect(this.redirectTo, rejectedPermissionName);
         }
 
         if (angular.isObject(this.redirectTo)) {
-          handleObjectRedirect(this.redirectTo, rejectedPermissionName);
+          return resolveObjectRedirect(this.redirectTo, rejectedPermissionName);
         }
 
         if (angular.isString(this.redirectTo)) {
-          handleStringRedirect(this.redirectTo, this.toParams, this.options);
+          return $q.resolve(this.redirectTo);
         }
+
+        // If redirectTo state is not defined stay where you are
+        return $q.reject(null);
       };
 
       /**
        *
        * @param redirectFunction {Function} Redirection function
        * @param permission {String} Rejected permission
+       *
+       * @return {Promise}
        */
-      function handleFunctionRedirect(redirectFunction, permission) {
-        $q.when(redirectFunction.call(null, permission))
+      function resolveFunctionRedirect(redirectFunction, permission) {
+        return $q
+          .when(redirectFunction.call(null, permission))
           .then(function (redirectState) {
             if (!angular.isString(redirectState)) {
               throw new TypeError('When used "redirectTo" as function, returned value must be string with state name');
             }
-            handleStringRedirect(redirectState);
+            return redirectState;
           });
       }
 
        *
        * @param redirectObject {Object} Redirection function
        * @param permission {String} Rejected permission
+       *
+       * @return {Promise}
        */
-      function handleObjectRedirect(redirectObject, permission) {
+      function resolveObjectRedirect(redirectObject, permission) {
         if (!angular.isDefined(redirectObject['default'])) {
           throw new ReferenceError('When used "redirectTo" as object, property "default" must be defined');
         }
         }
 
         if (angular.isFunction(redirectState)) {
-          handleFunctionRedirect(redirectState, permission);
+          return resolveFunctionRedirect(redirectState, permission);
         }
 
         if (angular.isString(redirectState)) {
-          handleStringRedirect(redirectState);
+          return $q.resolve(redirectState);
         }
       }
 
       /**
-       * Handles string based redirection for rejected permissions
-       */
-      function handleStringRedirect(state, toParams, options) {
-        $state.go(state, toParams, options);
-      }
-
-      /**
        * Handles extraction of permission map "only" and "except" properties
        * @private
        *
        * @param [toState] {Object} UI-Router transition state object
        * @param [toParams] {Object} UI-Router transition state params
        * @param [options] {Object} UI-Router transition state options
+       *
        * @returns {Array} Array of permission "only" or "except" names
        */
       function resolvePermissionMapProperty(property, toState, toParams, options) {
       return PermissionMap;
     }]);
 }());
+
 (function () {
   'use strict';
 
       return Permission;
     }]);
 }());
+
 (function () {
   'use strict';
 
       return Role;
     }]);
 }());
+
 (function () {
   'use strict';
 
       }
     }]);
 }());
+
 (function () {
   'use strict';
 
       }
     }]);
 }());
+
 (function () {
   'use strict';
 
   /**
-   * Show/hide elements based on provided permissions
+   * Show/hide elements based on provided permissions/roles
    *
    * @example
    * <div permission only="'USER'"></div>
     .directive('permission', ['$log', 'Authorization', 'PermissionMap', function ($log, Authorization, PermissionMap) {
       return {
         restrict: 'A',
+        scope: true,
         bindToController: {
           only: '=',
           except: '='
     }]);
 }());
 
+
 (function () {
   'use strict';
 
       }
 
       /**
-       * Performs iteration over list of defined permissions looking for matching roles
+       * Performs iteration over list of defined permissions looking for matches
        * @private
        *
        * @param permissionNames {Array} Set of permission names
        */
       function findMatchingPermissions(permissionNames, toParams) {
         return permissionNames.map(function (permissionName) {
-          if (RoleStore.hasRoleDefinition(permissionName)) {
-            return handleRoleValidation(permissionName, toParams);
-          }
-
-          if (PermissionStore.hasPermissionDefinition(permissionName)) {
-            return handlePermissionValidation(permissionName, toParams);
-          }
-
-          if (permissionName) {
-            return $q.reject(permissionName);
-          }
-        });
-      }
+            if (RoleStore.hasRoleDefinition(permissionName)) {
+              var role = RoleStore.getRoleDefinition(permissionName);
+              return role.validateRole(toParams);
+            }
 
-      /**
-       * Executes role validation checking
-       * @private
-       *
-       * @param roleName {String} Store permission key
-       * @param toParams {Object} UI-Router params object
-       * @returns {Promise}
-       */
-      function handleRoleValidation(roleName, toParams) {
-        var role = RoleStore.getRoleDefinition(roleName);
-        return role.validateRole(toParams);
-      }
+            if (PermissionStore.hasPermissionDefinition(permissionName)) {
+              var permission = PermissionStore.getPermissionDefinition(permissionName);
+              return permission.validatePermission(toParams);
+            }
 
-      /**
-       * Executes permission validation checking
-       * @private
-       *
-       * @param permissionName {String} Store permission key
-       * @param toParams {Object} UI-Router params object
-       * @returns {Promise}
-       */
-      function handlePermissionValidation(permissionName, toParams) {
-        var permission = PermissionStore.getPermissionDefinition(permissionName);
-        return permission.validatePermission(toParams);
+            if (permissionName) {
+              return $q.reject(permissionName);
+            }
+          });
       }
     }]);
 })();
index 335859f..8e74b01 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license AngularJS v1.4.8
+ * @license AngularJS v1.4.9
  * (c) 2010-2015 Google, Inc. http://angularjs.org
  * License: MIT
  */
@@ -102,7 +102,7 @@ function shallowClearAndCopy(src, dst) {
  *   can escape it with `/\.`.
  *
  * @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in
- *   `actions` methods. If any of the parameter value is a function, it will be executed every time
+ *   `actions` methods. If a parameter value is a function, it will be executed every time
  *   when a param value needs to be obtained for a request (unless the param was overridden).
  *
  *   Each key value in the parameter object is first bound to url template if present and then any
@@ -155,8 +155,11 @@ function shallowClearAndCopy(src, dst) {
  *     GET request, otherwise if a cache instance built with
  *     {@link ng.$cacheFactory $cacheFactory}, this cache will be used for
  *     caching.
- *   - **`timeout`** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise} that
- *     should abort the request when resolved.
+ *   - **`timeout`** – `{number}` – timeout in milliseconds.<br />
+ *     **Note:** In contrast to {@link ng.$http#usage $http.config}, {@link ng.$q promises} are
+ *     **not** supported in $resource, because the same value would be used for multiple requests.
+ *     If you need support for cancellable $resource actions, you should upgrade to version 1.5 or
+ *     higher.
  *   - **`withCredentials`** - `{boolean}` - whether to set the `withCredentials` flag on the
  *     XHR object. See
  *     [requests with credentials](https://developer.mozilla.org/en/http_access_control#section_5)
@@ -231,7 +234,7 @@ function shallowClearAndCopy(src, dst) {
  *     {@link ngRoute.$routeProvider resolve section of $routeProvider.when()} to defer view
  *     rendering until the resource(s) are loaded.
  *
- *     On failure, the promise is resolved with the {@link ng.$http http response} object, without
+ *     On failure, the promise is rejected with the {@link ng.$http http response} object, without
  *     the `resource` property.
  *
  *     If an interceptor object was provided, the promise will instead be resolved with the value
@@ -370,7 +373,7 @@ angular.module('ngResource', ['ng']).
       }
     };
 
-    this.$get = ['$http', '$q', function($http, $q) {
+    this.$get = ['$http', '$log', '$q', function($http, $log, $q) {
 
       var noop = angular.noop,
         forEach = angular.forEach,
@@ -582,7 +585,14 @@ angular.module('ngResource', ['ng']).
                 case 'interceptor':
                   break;
                 case 'timeout':
-                  httpConfig[key] = value;
+                  if (value && !angular.isNumber(value)) {
+                    $log.debug('ngResource:\n' +
+                        '  Only numeric values are allowed as `timeout`.\n' +
+                        '  Promises are not supported in $resource, because the same value would ' +
+                        'be used for multiple requests.\n' +
+                        '  If you need support for cancellable $resource actions, you should ' +
+                        'upgrade to version 1.5 or higher.');
+                  }
                   break;
               }
             });
index 5e5c1f2..bc405bf 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license AngularJS v1.4.8
+ * @license AngularJS v1.4.9
  * (c) 2010-2015 Google, Inc. http://angularjs.org
  * License: MIT
  */
index 78dd37d..20af805 100644 (file)
@@ -9190,8 +9190,8 @@ return jQuery;
 }));
 
 /**
- * @license AngularJS v1.4.8
- * (c) 2010-2015 Google, Inc. http://angularjs.org
+ * @license AngularJS v1.5.0
+ * (c) 2010-2016 Google, Inc. http://angularjs.org
  * License: MIT
  */
 (function(window, document){
@@ -9249,7 +9249,7 @@ function minErr(module, ErrorConstructor) {
       return match;
     });
 
-    message += '\nhttp://errors.angularjs.org/1.4.8/' +
+    message += '\nhttp://errors.angularjs.org/1.5.0/' +
       (module ? module + '/' : '') + code;
 
     for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') {
@@ -9380,29 +9380,9 @@ var REGEX_STRING_REGEXP = /^\/(.+)\/([a-z]*)$/;
 // This is used so that it's possible for internal tests to create mock ValidityStates.
 var VALIDITY_STATE_PROPERTY = 'validity';
 
-/**
- * @ngdoc function
- * @name angular.lowercase
- * @module ng
- * @kind function
- *
- * @description Converts the specified string to lowercase.
- * @param {string} string String to be converted to lowercase.
- * @returns {string} Lowercased string.
- */
-var lowercase = function(string) {return isString(string) ? string.toLowerCase() : string;};
 var hasOwnProperty = Object.prototype.hasOwnProperty;
 
-/**
- * @ngdoc function
- * @name angular.uppercase
- * @module ng
- * @kind function
- *
- * @description Converts the specified string to uppercase.
- * @param {string} string String to be converted to uppercase.
- * @returns {string} Uppercased string.
- */
+var lowercase = function(string) {return isString(string) ? string.toLowerCase() : string;};
 var uppercase = function(string) {return isString(string) ? string.toUpperCase() : string;};
 
 
@@ -9422,7 +9402,7 @@ var manualUppercase = function(s) {
 
 // String#toLowerCase and String#toUpperCase don't produce correct results in browsers with Turkish
 // locale, for this reason we need to detect this case and redefine lowercase/uppercase methods
-// with correct but slower alternatives.
+// with correct but slower alternatives. See https://github.com/angular/angular.js/issues/11387
 if ('i' !== 'I'.toLowerCase()) {
   lowercase = manualLowercase;
   uppercase = manualUppercase;
@@ -9465,7 +9445,7 @@ function isArrayLike(obj) {
 
   // arrays, strings and jQuery/jqLite objects are array like
   // * jqLite is either the jQuery or jqLite constructor function
-  // * we have to check the existance of jqLite first as this method is called
+  // * we have to check the existence of jqLite first as this method is called
   //   via the forEach method when constructing the jqLite object in the first place
   if (isArray(obj) || isString(obj) || (jqLite && obj instanceof jqLite)) return true;
 
@@ -9476,7 +9456,8 @@ function isArrayLike(obj) {
   // NodeList objects (with `item` method) and
   // other objects with suitable length characteristics are array-like
   return isNumber(length) &&
-    (length >= 0 && (length - 1) in obj || typeof obj.item == 'function');
+    (length >= 0 && ((length - 1) in obj || obj instanceof Array) || typeof obj.item == 'function');
+
 }
 
 /**
@@ -9573,7 +9554,7 @@ function forEachSorted(obj, iterator, context) {
  * @returns {function(*, string)}
  */
 function reverseParams(iteratorFn) {
-  return function(value, key) { iteratorFn(key, value); };
+  return function(value, key) {iteratorFn(key, value);};
 }
 
 /**
@@ -9944,6 +9925,10 @@ function isTypedArray(value) {
   return value && isNumber(value.length) && TYPED_ARRAY_REGEXP.test(toString.call(value));
 }
 
+function isArrayBuffer(obj) {
+  return toString.call(obj) === '[object ArrayBuffer]';
+}
+
 
 var trim = function(value) {
   return isString(value) ? value.trim() : value;
@@ -9981,7 +9966,7 @@ function isElement(node) {
  * @returns {object} in the form of {key1:true, key2:true, ...}
  */
 function makeMap(str) {
-  var obj = {}, items = str.split(","), i;
+  var obj = {}, items = str.split(','), i;
   for (i = 0; i < items.length; i++) {
     obj[items[i]] = true;
   }
@@ -10068,7 +10053,7 @@ function copy(source, destination) {
   var stackDest = [];
 
   if (destination) {
-    if (isTypedArray(destination)) {
+    if (isTypedArray(destination) || isArrayBuffer(destination)) {
       throw ngMinErr('cpta', "Can't copy! TypedArray destination cannot be mutated.");
     }
     if (source === destination) {
@@ -10142,22 +10127,10 @@ function copy(source, destination) {
     }
 
     var needsRecurse = false;
-    var destination;
+    var destination = copyType(source);
 
-    if (isArray(source)) {
-      destination = [];
-      needsRecurse = true;
-    } else if (isTypedArray(source)) {
-      destination = new source.constructor(source);
-    } else if (isDate(source)) {
-      destination = new Date(source.getTime());
-    } else if (isRegExp(source)) {
-      destination = new RegExp(source.source, source.toString().match(/[^\/]*$/)[0]);
-      destination.lastIndex = source.lastIndex;
-    } else if (isFunction(source.cloneNode)) {
-        destination = source.cloneNode(true);
-    } else {
-      destination = Object.create(getPrototypeOf(source));
+    if (destination === undefined) {
+      destination = isArray(source) ? [] : Object.create(getPrototypeOf(source));
       needsRecurse = true;
     }
 
@@ -10168,6 +10141,45 @@ function copy(source, destination) {
       ? copyRecurse(source, destination)
       : destination;
   }
+
+  function copyType(source) {
+    switch (toString.call(source)) {
+      case '[object Int8Array]':
+      case '[object Int16Array]':
+      case '[object Int32Array]':
+      case '[object Float32Array]':
+      case '[object Float64Array]':
+      case '[object Uint8Array]':
+      case '[object Uint8ClampedArray]':
+      case '[object Uint16Array]':
+      case '[object Uint32Array]':
+        return new source.constructor(copyElement(source.buffer));
+
+      case '[object ArrayBuffer]':
+        //Support: IE10
+        if (!source.slice) {
+          var copied = new ArrayBuffer(source.byteLength);
+          new Uint8Array(copied).set(new Uint8Array(source));
+          return copied;
+        }
+        return source.slice(0);
+
+      case '[object Boolean]':
+      case '[object Number]':
+      case '[object String]':
+      case '[object Date]':
+        return new source.constructor(source.valueOf());
+
+      case '[object RegExp]':
+        var re = new RegExp(source.source, source.toString().match(/[^\/]*$/)[0]);
+        re.lastIndex = source.lastIndex;
+        return re;
+    }
+
+    if (isFunction(source.cloneNode)) {
+      return source.cloneNode(true);
+    }
+  }
 }
 
 /**
@@ -10230,38 +10242,37 @@ function equals(o1, o2) {
   if (o1 === null || o2 === null) return false;
   if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN
   var t1 = typeof o1, t2 = typeof o2, length, key, keySet;
-  if (t1 == t2) {
-    if (t1 == 'object') {
-      if (isArray(o1)) {
-        if (!isArray(o2)) return false;
-        if ((length = o1.length) == o2.length) {
-          for (key = 0; key < length; key++) {
-            if (!equals(o1[key], o2[key])) return false;
-          }
-          return true;
-        }
-      } else if (isDate(o1)) {
-        if (!isDate(o2)) return false;
-        return equals(o1.getTime(), o2.getTime());
-      } else if (isRegExp(o1)) {
-        return isRegExp(o2) ? o1.toString() == o2.toString() : false;
-      } else {
-        if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) ||
-          isArray(o2) || isDate(o2) || isRegExp(o2)) return false;
-        keySet = createMap();
-        for (key in o1) {
-          if (key.charAt(0) === '$' || isFunction(o1[key])) continue;
+  if (t1 == t2 && t1 == 'object') {
+    if (isArray(o1)) {
+      if (!isArray(o2)) return false;
+      if ((length = o1.length) == o2.length) {
+        for (key = 0; key < length; key++) {
           if (!equals(o1[key], o2[key])) return false;
-          keySet[key] = true;
-        }
-        for (key in o2) {
-          if (!(key in keySet) &&
-              key.charAt(0) !== '$' &&
-              isDefined(o2[key]) &&
-              !isFunction(o2[key])) return false;
         }
         return true;
       }
+    } else if (isDate(o1)) {
+      if (!isDate(o2)) return false;
+      return equals(o1.getTime(), o2.getTime());
+    } else if (isRegExp(o1)) {
+      if (!isRegExp(o2)) return false;
+      return o1.toString() == o2.toString();
+    } else {
+      if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) ||
+        isArray(o2) || isDate(o2) || isRegExp(o2)) return false;
+      keySet = createMap();
+      for (key in o1) {
+        if (key.charAt(0) === '$' || isFunction(o1[key])) continue;
+        if (!equals(o1[key], o2[key])) return false;
+        keySet[key] = true;
+      }
+      for (key in o2) {
+        if (!(key in keySet) &&
+            key.charAt(0) !== '$' &&
+            isDefined(o2[key]) &&
+            !isFunction(o2[key])) return false;
+      }
+      return true;
     }
   }
   return false;
@@ -10438,7 +10449,7 @@ function toJsonReplacer(key, value) {
  * @returns {string|undefined} JSON-ified string representing `obj`.
  */
 function toJson(obj, pretty) {
-  if (typeof obj === 'undefined') return undefined;
+  if (isUndefined(obj)) return undefined;
   if (!isNumber(pretty)) {
     pretty = pretty ? 2 : null;
   }
@@ -10465,7 +10476,10 @@ function fromJson(json) {
 }
 
 
+var ALL_COLONS = /:/g;
 function timezoneToOffset(timezone, fallback) {
+  // IE/Edge do not "understand" colon (`:`) in timezone
+  timezone = timezone.replace(ALL_COLONS, '');
   var requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;
   return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;
 }
@@ -10480,8 +10494,9 @@ function addDateMinutes(date, minutes) {
 
 function convertTimezoneToLocal(date, timezone, reverse) {
   reverse = reverse ? -1 : 1;
-  var timezoneOffset = timezoneToOffset(timezone, date.getTimezoneOffset());
-  return addDateMinutes(date, reverse * (timezoneOffset - date.getTimezoneOffset()));
+  var dateTimezoneOffset = date.getTimezoneOffset();
+  var timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);
+  return addDateMinutes(date, reverse * (timezoneOffset - dateTimezoneOffset));
 }
 
 
@@ -10500,7 +10515,7 @@ function startingTag(element) {
     return element[0].nodeType === NODE_TYPE_TEXT ? lowercase(elemHtml) :
         elemHtml.
           match(/^(<[^>]+>)/)[1].
-          replace(/^<([\w\-]+)/, function(match, nodeName) { return '<' + lowercase(nodeName); });
+          replace(/^<([\w\-]+)/, function(match, nodeName) {return '<' + lowercase(nodeName);});
   } catch (e) {
     return lowercase(elemHtml);
   }
@@ -10943,7 +10958,6 @@ function snake_case(name, separator) {
 }
 
 var bindJQueryFired = false;
-var skipDestroyOnNextJQueryCleanData;
 function bindJQuery() {
   var originalCleanData;
 
@@ -10977,15 +10991,11 @@ function bindJQuery() {
     originalCleanData = jQuery.cleanData;
     jQuery.cleanData = function(elems) {
       var events;
-      if (!skipDestroyOnNextJQueryCleanData) {
-        for (var i = 0, elem; (elem = elems[i]) != null; i++) {
-          events = jQuery._data(elem, "events");
-          if (events && events.$destroy) {
-            jQuery(elem).triggerHandler('$destroy');
-          }
+      for (var i = 0, elem; (elem = elems[i]) != null; i++) {
+        events = jQuery._data(elem, "events");
+        if (events && events.$destroy) {
+          jQuery(elem).triggerHandler('$destroy');
         }
-      } else {
-        skipDestroyOnNextJQueryCleanData = false;
       }
       originalCleanData(elems);
     };
@@ -11179,7 +11189,7 @@ function setupModuleLoader(window) {
      *        unspecified then the module is being retrieved for further configuration.
      * @param {Function=} configFn Optional configuration function for the module. Same as
      *        {@link angular.Module#config Module#config()}.
-     * @returns {module} new module with the {@link angular.Module} api.
+     * @returns {angular.Module} new module with the {@link angular.Module} api.
      */
     return function module(name, requires, configFn) {
       var assertNotHasOwnProperty = function(name, context) {
@@ -11387,6 +11397,19 @@ function setupModuleLoader(window) {
 
           /**
            * @ngdoc method
+           * @name angular.Module#component
+           * @module ng
+           * @param {string} name Name of the component in camel-case (i.e. myComp which will match as my-comp)
+           * @param {Object} options Component definition object (a simplified
+           *    {@link ng.$compile#directive-definition-object directive definition object})
+           *
+           * @description
+           * See {@link ng.$compileProvider#component $compileProvider.component()}.
+           */
+          component: invokeLaterAndSetModuleName('$compileProvider', 'component'),
+
+          /**
+           * @ngdoc method
            * @name angular.Module#config
            * @module ng
            * @param {Function} configFn Execute this function on module load. Useful for service
@@ -11536,11 +11559,14 @@ function toDebugString(obj) {
   $AnchorScrollProvider,
   $AnimateProvider,
   $CoreAnimateCssProvider,
+  $$CoreAnimateJsProvider,
   $$CoreAnimateQueueProvider,
-  $$CoreAnimateRunnerProvider,
+  $$AnimateRunnerFactoryProvider,
+  $$AnimateAsyncRunFactoryProvider,
   $BrowserProvider,
   $CacheFactoryProvider,
   $ControllerProvider,
+  $DateProvider,
   $DocumentProvider,
   $ExceptionHandlerProvider,
   $FilterProvider,
@@ -11590,11 +11616,11 @@ function toDebugString(obj) {
  * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
  */
 var version = {
-  full: '1.4.8',    // all of these placeholder strings will be replaced by grunt's
+  full: '1.5.0',    // all of these placeholder strings will be replaced by grunt's
   major: 1,    // package task
-  minor: 4,
-  dot: 8,
-  codeName: 'ice-manipulation'
+  minor: 5,
+  dot: 0,
+  codeName: 'ennoblement-facilitation'
 };
 
 
@@ -11696,8 +11722,10 @@ function publishExternalAPI(angular) {
         $anchorScroll: $AnchorScrollProvider,
         $animate: $AnimateProvider,
         $animateCss: $CoreAnimateCssProvider,
+        $$animateJs: $$CoreAnimateJsProvider,
         $$animateQueue: $$CoreAnimateQueueProvider,
-        $$AnimateRunner: $$CoreAnimateRunnerProvider,
+        $$AnimateRunner: $$AnimateRunnerFactoryProvider,
+        $$animateAsyncRun: $$AnimateAsyncRunFactoryProvider,
         $browser: $BrowserProvider,
         $cacheFactory: $CacheFactoryProvider,
         $controller: $ControllerProvider,
@@ -11768,16 +11796,22 @@ function publishExternalAPI(angular) {
  *
  * If jQuery is available, `angular.element` is an alias for the
  * [jQuery](http://api.jquery.com/jQuery/) function. If jQuery is not available, `angular.element`
- * delegates to Angular's built-in subset of jQuery, called "jQuery lite" or "jqLite."
+ * delegates to Angular's built-in subset of jQuery, called "jQuery lite" or **jqLite**.
+ *
+ * jqLite is a tiny, API-compatible subset of jQuery that allows
+ * Angular to manipulate the DOM in a cross-browser compatible way. jqLite implements only the most
+ * commonly needed functionality with the goal of having a very small footprint.
  *
- * <div class="alert alert-success">jqLite is a tiny, API-compatible subset of jQuery that allows
- * Angular to manipulate the DOM in a cross-browser compatible way. **jqLite** implements only the most
- * commonly needed functionality with the goal of having a very small footprint.</div>
+ * To use `jQuery`, simply ensure it is loaded before the `angular.js` file. You can also use the
+ * {@link ngJq `ngJq`} directive to specify that jqlite should be used over jQuery, or to use a
+ * specific version of jQuery if multiple versions exist on the page.
  *
- * To use `jQuery`, simply ensure it is loaded before the `angular.js` file.
+ * <div class="alert alert-info">**Note:** All element references in Angular are always wrapped with jQuery or
+ * jqLite (such as the element argument in a directive's compile / link function). They are never raw DOM references.</div>
  *
- * <div class="alert">**Note:** all element references in Angular are always wrapped with jQuery or
- * jqLite; they are never raw DOM references.</div>
+ * <div class="alert alert-warning">**Note:** Keep in mind that this function will not find elements
+ * by tag name / CSS selector. For lookups by tag name, try instead `angular.element(document).find(...)`
+ * or `$document.find()`, or use the standard DOM APIs, e.g. `document.querySelectorAll()`.</div>
  *
  * ## Angular's jqLite
  * jqLite provides only the following jQuery methods:
@@ -11790,7 +11824,8 @@ function publishExternalAPI(angular) {
  * - [`children()`](http://api.jquery.com/children/) - Does not support selectors
  * - [`clone()`](http://api.jquery.com/clone/)
  * - [`contents()`](http://api.jquery.com/contents/)
- * - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()`. As a setter, does not convert numbers to strings or append 'px'.
+ * - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()`.
+ *   As a setter, does not convert numbers to strings or append 'px', and also does not have automatic property prefixing.
  * - [`data()`](http://api.jquery.com/data/)
  * - [`detach()`](http://api.jquery.com/detach/)
  * - [`empty()`](http://api.jquery.com/empty/)
@@ -11924,6 +11959,12 @@ function jqLiteHasData(node) {
   return false;
 }
 
+function jqLiteCleanData(nodes) {
+  for (var i = 0, ii = nodes.length; i < ii; i++) {
+    jqLiteRemoveData(nodes[i]);
+  }
+}
+
 function jqLiteBuildFragment(html, context) {
   var tmp, tag, wrap,
       fragment = context.createDocumentFragment(),
@@ -11976,6 +12017,16 @@ function jqLiteParseHTML(html, context) {
   return [];
 }
 
+function jqLiteWrapNode(node, wrapper) {
+  var parent = node.parentNode;
+
+  if (parent) {
+    parent.replaceChild(wrapper, node);
+  }
+
+  wrapper.appendChild(node);
+}
+
 
 // IE9-11 has no method "contains" in SVG element and in Node.prototype. Bug #10259.
 var jqLiteContains = Node.prototype.contains || function(arg) {
@@ -12226,7 +12277,7 @@ function jqLiteRemove(element, keepData) {
 function jqLiteDocumentLoaded(action, win) {
   win = win || window;
   if (win.document.readyState === 'complete') {
-    // Force the action to be run async for consistent behaviour
+    // Force the action to be run async for consistent behavior
     // from the action's point of view
     // i.e. it will definitely not be in a $apply
     win.setTimeout(action);
@@ -12312,7 +12363,8 @@ function getAliasedAttrName(name) {
 forEach({
   data: jqLiteData,
   removeData: jqLiteRemoveData,
-  hasData: jqLiteHasData
+  hasData: jqLiteHasData,
+  cleanData: jqLiteCleanData
 }, function(fn, name) {
   JQLite[name] = fn;
 });
@@ -12667,12 +12719,7 @@ forEach({
   },
 
   wrap: function(element, wrapNode) {
-    wrapNode = jqLite(wrapNode).eq(0).clone()[0];
-    var parent = element.parentNode;
-    if (parent) {
-      parent.replaceChild(wrapNode, element);
-    }
-    wrapNode.appendChild(element);
+    jqLiteWrapNode(element, jqLite(wrapNode).eq(0).clone()[0]);
   },
 
   remove: jqLiteRemove,
@@ -12950,17 +12997,23 @@ var $$HashMapProvider = [function() {
  * Implicit module which gets automatically added to each {@link auto.$injector $injector}.
  */
 
+var ARROW_ARG = /^([^\(]+?)=>/;
 var FN_ARGS = /^[^\(]*\(\s*([^\)]*)\)/m;
 var FN_ARG_SPLIT = /,/;
 var FN_ARG = /^\s*(_?)(\S+?)\1\s*$/;
 var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
 var $injectorMinErr = minErr('$injector');
 
+function extractArgs(fn) {
+  var fnText = fn.toString().replace(STRIP_COMMENTS, ''),
+      args = fnText.match(ARROW_ARG) || fnText.match(FN_ARGS);
+  return args;
+}
+
 function anonFn(fn) {
   // For anonymous functions, showing at the very least the function signature can help in
   // debugging.
-  var fnText = fn.toString().replace(STRIP_COMMENTS, ''),
-      args = fnText.match(FN_ARGS);
+  var args = extractArgs(fn);
   if (args) {
     return 'function(' + (args[1] || '').replace(/[\s\r\n]+/, ' ') + ')';
   }
@@ -12969,7 +13022,6 @@ function anonFn(fn) {
 
 function annotate(fn, strictDi, name) {
   var $inject,
-      fnText,
       argDecl,
       last;
 
@@ -12984,8 +13036,7 @@ function annotate(fn, strictDi, name) {
           throw $injectorMinErr('strictdi',
             '{0} is not using explicit annotation and cannot be invoked in strict mode', name);
         }
-        fnText = fn.toString().replace(STRIP_COMMENTS, '');
-        argDecl = fnText.match(FN_ARGS);
+        argDecl = extractArgs(fn);
         forEach(argDecl[1].split(FN_ARG_SPLIT), function(arg) {
           arg.replace(FN_ARG, function(all, underscore, name) {
             $inject.push(name);
@@ -13375,8 +13426,20 @@ function annotate(fn, strictDi, name) {
  *
  * Register a **service constructor**, which will be invoked with `new` to create the service
  * instance.
- * This is short for registering a service where its provider's `$get` property is the service
- * constructor function that will be used to instantiate the service instance.
+ * This is short for registering a service where its provider's `$get` property is a factory
+ * function that returns an instance instantiated by the injector from the service constructor
+ * function.
+ *
+ * Internally it looks a bit like this:
+ *
+ * ```
+ * {
+ *   $get: function() {
+ *     return $injector.instantiate(constructor);
+ *   }
+ * }
+ * ```
+ *
  *
  * You should use {@link auto.$provide#service $provide.service(class)} if you define your service
  * as a type/class.
@@ -13477,7 +13540,7 @@ function annotate(fn, strictDi, name) {
  * @description
  *
  * Register a **service decorator** with the {@link auto.$injector $injector}. A service decorator
- * intercepts the creation of a service, allowing it to override or modify the behaviour of the
+ * intercepts the creation of a service, allowing it to override or modify the behavior of the
  * service. The object returned by the decorator may be the original service, or a new service
  * object which replaces or wraps and delegates to the original service.
  *
@@ -13526,14 +13589,19 @@ function createInjector(modulesToLoad, strictDi) {
             throw $injectorMinErr('unpr', "Unknown provider: {0}", path.join(' <- '));
           })),
       instanceCache = {},
-      instanceInjector = (instanceCache.$injector =
+      protoInstanceInjector =
           createInternalInjector(instanceCache, function(serviceName, caller) {
             var provider = providerInjector.get(serviceName + providerSuffix, caller);
-            return instanceInjector.invoke(provider.$get, provider, undefined, serviceName);
-          }));
-
+            return instanceInjector.invoke(
+                provider.$get, provider, undefined, serviceName);
+          }),
+      instanceInjector = protoInstanceInjector;
 
-  forEach(loadModules(modulesToLoad), function(fn) { if (fn) instanceInjector.invoke(fn); });
+  providerCache['$injector' + providerSuffix] = { $get: valueFn(protoInstanceInjector) };
+  var runBlocks = loadModules(modulesToLoad);
+  instanceInjector = protoInstanceInjector.get('$injector');
+  instanceInjector.strictDi = strictDi;
+  forEach(runBlocks, function(fn) { if (fn) instanceInjector.invoke(fn); });
 
   return instanceInjector;
 
@@ -13683,48 +13751,67 @@ function createInjector(modulesToLoad, strictDi) {
       }
     }
 
-    function invoke(fn, self, locals, serviceName) {
-      if (typeof locals === 'string') {
-        serviceName = locals;
-        locals = null;
-      }
 
+    function injectionArgs(fn, locals, serviceName) {
       var args = [],
-          $inject = createInjector.$$annotate(fn, strictDi, serviceName),
-          length, i,
-          key;
+          $inject = createInjector.$$annotate(fn, strictDi, serviceName);
 
-      for (i = 0, length = $inject.length; i < length; i++) {
-        key = $inject[i];
+      for (var i = 0, length = $inject.length; i < length; i++) {
+        var key = $inject[i];
         if (typeof key !== 'string') {
           throw $injectorMinErr('itkn',
                   'Incorrect injection token! Expected service name as string, got {0}', key);
         }
-        args.push(
-          locals && locals.hasOwnProperty(key)
-          ? locals[key]
-          : getService(key, serviceName)
-        );
+        args.push(locals && locals.hasOwnProperty(key) ? locals[key] :
+                                                         getService(key, serviceName));
+      }
+      return args;
+    }
+
+    function isClass(func) {
+      // IE 9-11 do not support classes and IE9 leaks with the code below.
+      if (msie <= 11) {
+        return false;
+      }
+      // Workaround for MS Edge.
+      // Check https://connect.microsoft.com/IE/Feedback/Details/2211653
+      return typeof func === 'function'
+        && /^(?:class\s|constructor\()/.test(Function.prototype.toString.call(func));
+    }
+
+    function invoke(fn, self, locals, serviceName) {
+      if (typeof locals === 'string') {
+        serviceName = locals;
+        locals = null;
       }
+
+      var args = injectionArgs(fn, locals, serviceName);
       if (isArray(fn)) {
-        fn = fn[length];
+        fn = fn[fn.length - 1];
       }
 
-      // http://jsperf.com/angularjs-invoke-apply-vs-switch
-      // #5388
-      return fn.apply(self, args);
+      if (!isClass(fn)) {
+        // http://jsperf.com/angularjs-invoke-apply-vs-switch
+        // #5388
+        return fn.apply(self, args);
+      } else {
+        args.unshift(null);
+        return new (Function.prototype.bind.apply(fn, args))();
+      }
     }
 
+
     function instantiate(Type, locals, serviceName) {
       // Check if Type is annotated and use just the given function at n-1 as parameter
       // e.g. someModule.factory('greeter', ['$window', function(renamed$window) {}]);
-      // Object creation: http://jsperf.com/create-constructor/2
-      var instance = Object.create((isArray(Type) ? Type[Type.length - 1] : Type).prototype || null);
-      var returnedValue = invoke(Type, instance, locals, serviceName);
-
-      return isObject(returnedValue) || isFunction(returnedValue) ? returnedValue : instance;
+      var ctor = (isArray(Type) ? Type[Type.length - 1] : Type);
+      var args = injectionArgs(Type, locals, serviceName);
+      // Empty object at position 0 is ignored for invocation with `new`, but required.
+      args.unshift(null);
+      return new (Function.prototype.bind.apply(ctor, args))();
     }
 
+
     return {
       invoke: invoke,
       instantiate: instantiate,
@@ -14063,27 +14150,8 @@ function prepareAnimateOptions(options) {
       : {};
 }
 
-var $$CoreAnimateRunnerProvider = function() {
-  this.$get = ['$q', '$$rAF', function($q, $$rAF) {
-    function AnimateRunner() {}
-    AnimateRunner.all = noop;
-    AnimateRunner.chain = noop;
-    AnimateRunner.prototype = {
-      end: noop,
-      cancel: noop,
-      resume: noop,
-      pause: noop,
-      complete: noop,
-      then: function(pass, fail) {
-        return $q(function(resolve) {
-          $$rAF(function() {
-            resolve();
-          });
-        }).then(pass, fail);
-      }
-    };
-    return AnimateRunner;
-  }];
+var $$CoreAnimateJsProvider = function() {
+  this.$get = function() {};
 };
 
 // this is prefixed with Core since it conflicts with
@@ -14111,7 +14179,12 @@ var $$CoreAnimateQueueProvider = function() {
           addRemoveClassesPostDigest(element, options.addClass, options.removeClass);
         }
 
-        return new $$AnimateRunner(); // jshint ignore:line
+        var runner = new $$AnimateRunner(); // jshint ignore:line
+
+        // since there are no animations to run the runner needs to be
+        // notified that the animation call is complete.
+        runner.complete();
+        return runner;
       }
     };
 
@@ -14353,8 +14426,8 @@ var $AnimateProvider = ['$provide', function($provide) {
        * // remove all the animation event listeners listening for `enter` on the given element and its children
        * $animate.off('enter', container);
        *
-       * // remove the event listener function provided by `listenerFn` that is set
-       * // to listen for `enter` on the given `element` as well as its children
+       * // remove the event listener function provided by `callback` that is set
+       * // to listen for `enter` on the given `container` as well as its children
        * $animate.off('enter', container, callback);
        * ```
        *
@@ -14576,17 +14649,30 @@ var $AnimateProvider = ['$provide', function($provide) {
        * @kind function
        *
        * @description Performs an inline animation on the element which applies the provided to and from CSS styles to the element.
-       * If any detected CSS transition, keyframe or JavaScript matches the provided className value then the animation will take
-       * on the provided styles. For example, if a transition animation is set for the given className then the provided from and
-       * to styles will be applied alongside the given transition. If a JavaScript animation is detected then the provided styles
-       * will be given in as function paramters into the `animate` method (or as apart of the `options` parameter).
+       * If any detected CSS transition, keyframe or JavaScript matches the provided className value, then the animation will take
+       * on the provided styles. For example, if a transition animation is set for the given classNamem, then the provided `from` and
+       * `to` styles will be applied alongside the given transition. If the CSS style provided in `from` does not have a corresponding
+       * style in `to`, the style in `from` is applied immediately, and no animation is run.
+       * If a JavaScript animation is detected then the provided styles will be given in as function parameters into the `animate`
+       * method (or as part of the `options` parameter):
+       *
+       * ```js
+       * ngModule.animation('.my-inline-animation', function() {
+       *   return {
+       *     animate : function(element, from, to, done, options) {
+       *       //animation
+       *       done();
+       *     }
+       *   }
+       * });
+       * ```
        *
        * @param {DOMElement} element the element which the CSS styles will be applied to
        * @param {object} from the from (starting) CSS styles that will be applied to the element and across the animation.
        * @param {object} to the to (destination) CSS styles that will be applied to the element and across the animation.
        * @param {string=} className an optional CSS class that will be applied to the element for the duration of the animation. If
        *    this value is left as empty then a CSS class of `ng-inline-animate` will be applied to the element.
-       *    (Note that if no animation is detected then this value will not be appplied to the element.)
+       *    (Note that if no animation is detected then this value will not be applied to the element.)
        * @param {object=} options an optional collection of options/styles that will be applied to the element
        *
        * @return {Promise} the animation callback promise
@@ -14604,6 +14690,190 @@ var $AnimateProvider = ['$provide', function($provide) {
   }];
 }];
 
+var $$AnimateAsyncRunFactoryProvider = function() {
+  this.$get = ['$$rAF', function($$rAF) {
+    var waitQueue = [];
+
+    function waitForTick(fn) {
+      waitQueue.push(fn);
+      if (waitQueue.length > 1) return;
+      $$rAF(function() {
+        for (var i = 0; i < waitQueue.length; i++) {
+          waitQueue[i]();
+        }
+        waitQueue = [];
+      });
+    }
+
+    return function() {
+      var passed = false;
+      waitForTick(function() {
+        passed = true;
+      });
+      return function(callback) {
+        passed ? callback() : waitForTick(callback);
+      };
+    };
+  }];
+};
+
+var $$AnimateRunnerFactoryProvider = function() {
+  this.$get = ['$q', '$sniffer', '$$animateAsyncRun', '$document', '$timeout',
+       function($q,   $sniffer,   $$animateAsyncRun,   $document,   $timeout) {
+
+    var INITIAL_STATE = 0;
+    var DONE_PENDING_STATE = 1;
+    var DONE_COMPLETE_STATE = 2;
+
+    AnimateRunner.chain = function(chain, callback) {
+      var index = 0;
+
+      next();
+      function next() {
+        if (index === chain.length) {
+          callback(true);
+          return;
+        }
+
+        chain[index](function(response) {
+          if (response === false) {
+            callback(false);
+            return;
+          }
+          index++;
+          next();
+        });
+      }
+    };
+
+    AnimateRunner.all = function(runners, callback) {
+      var count = 0;
+      var status = true;
+      forEach(runners, function(runner) {
+        runner.done(onProgress);
+      });
+
+      function onProgress(response) {
+        status = status && response;
+        if (++count === runners.length) {
+          callback(status);
+        }
+      }
+    };
+
+    function AnimateRunner(host) {
+      this.setHost(host);
+
+      var rafTick = $$animateAsyncRun();
+      var timeoutTick = function(fn) {
+        $timeout(fn, 0, false);
+      };
+
+      this._doneCallbacks = [];
+      this._tick = function(fn) {
+        var doc = $document[0];
+
+        // the document may not be ready or attached
+        // to the module for some internal tests
+        if (doc && doc.hidden) {
+          timeoutTick(fn);
+        } else {
+          rafTick(fn);
+        }
+      };
+      this._state = 0;
+    }
+
+    AnimateRunner.prototype = {
+      setHost: function(host) {
+        this.host = host || {};
+      },
+
+      done: function(fn) {
+        if (this._state === DONE_COMPLETE_STATE) {
+          fn();
+        } else {
+          this._doneCallbacks.push(fn);
+        }
+      },
+
+      progress: noop,
+
+      getPromise: function() {
+        if (!this.promise) {
+          var self = this;
+          this.promise = $q(function(resolve, reject) {
+            self.done(function(status) {
+              status === false ? reject() : resolve();
+            });
+          });
+        }
+        return this.promise;
+      },
+
+      then: function(resolveHandler, rejectHandler) {
+        return this.getPromise().then(resolveHandler, rejectHandler);
+      },
+
+      'catch': function(handler) {
+        return this.getPromise()['catch'](handler);
+      },
+
+      'finally': function(handler) {
+        return this.getPromise()['finally'](handler);
+      },
+
+      pause: function() {
+        if (this.host.pause) {
+          this.host.pause();
+        }
+      },
+
+      resume: function() {
+        if (this.host.resume) {
+          this.host.resume();
+        }
+      },
+
+      end: function() {
+        if (this.host.end) {
+          this.host.end();
+        }
+        this._resolve(true);
+      },
+
+      cancel: function() {
+        if (this.host.cancel) {
+          this.host.cancel();
+        }
+        this._resolve(false);
+      },
+
+      complete: function(response) {
+        var self = this;
+        if (self._state === INITIAL_STATE) {
+          self._state = DONE_PENDING_STATE;
+          self._tick(function() {
+            self._resolve(response);
+          });
+        }
+      },
+
+      _resolve: function(response) {
+        if (this._state !== DONE_COMPLETE_STATE) {
+          forEach(this._doneCallbacks, function(fn) {
+            fn(response);
+          });
+          this._doneCallbacks.length = 0;
+          this._state = DONE_COMPLETE_STATE;
+        }
+      }
+    };
+
+    return AnimateRunner;
+  }];
+};
+
 /**
  * @ngdoc service
  * @name $animateCss
@@ -14616,37 +14886,18 @@ var $AnimateProvider = ['$provide', function($provide) {
  * Click here {@link ngAnimate.$animateCss to read the documentation for $animateCss}.
  */
 var $CoreAnimateCssProvider = function() {
-  this.$get = ['$$rAF', '$q', function($$rAF, $q) {
+  this.$get = ['$$rAF', '$q', '$$AnimateRunner', function($$rAF, $q, $$AnimateRunner) {
 
-    var RAFPromise = function() {};
-    RAFPromise.prototype = {
-      done: function(cancel) {
-        this.defer && this.defer[cancel === true ? 'reject' : 'resolve']();
-      },
-      end: function() {
-        this.done();
-      },
-      cancel: function() {
-        this.done(true);
-      },
-      getPromise: function() {
-        if (!this.defer) {
-          this.defer = $q.defer();
-        }
-        return this.defer.promise;
-      },
-      then: function(f1,f2) {
-        return this.getPromise().then(f1,f2);
-      },
-      'catch': function(f1) {
-        return this.getPromise()['catch'](f1);
-      },
-      'finally': function(f1) {
-        return this.getPromise()['finally'](f1);
+    return function(element, initialOptions) {
+      // all of the animation functions should create
+      // a copy of the options data, however, if a
+      // parent service has already created a copy then
+      // we should stick to using that
+      var options = initialOptions || {};
+      if (!options.$$prepared) {
+        options = copy(options);
       }
-    };
 
-    return function(element, options) {
       // there is no point in applying the styles since
       // there is no animation that goes on at all in
       // this version of $animateCss.
@@ -14659,7 +14910,8 @@ var $CoreAnimateCssProvider = function() {
         options.from = null;
       }
 
-      var closed, runner = new RAFPromise();
+      /* jshint newcap: false */
+      var closed, runner = new $$AnimateRunner();
       return {
         start: run,
         end: run
@@ -14667,16 +14919,16 @@ var $CoreAnimateCssProvider = function() {
 
       function run() {
         $$rAF(function() {
-          close();
+          applyAnimationContents();
           if (!closed) {
-            runner.done();
+            runner.complete();
           }
           closed = true;
         });
         return runner;
       }
 
-      function close() {
+      function applyAnimationContents() {
         if (options.addClass) {
           element.addClass(options.addClass);
           options.addClass = null;
@@ -15584,7 +15836,7 @@ function $TemplateCacheProvider() {
  * When this property is set to true, the HTML compiler will collect DOM nodes between
  * nodes with the attributes `directive-name-start` and `directive-name-end`, and group them
  * together as the directive elements. It is recommended that this feature be used on directives
- * which are not strictly behavioural (such as {@link ngClick}), and which
+ * which are not strictly behavioral (such as {@link ngClick}), and which
  * do not manipulate or replace child nodes (such as {@link ngInclude}).
  *
  * #### `priority`
@@ -15622,35 +15874,62 @@ function $TemplateCacheProvider() {
  * is bound to the parent scope, via matching attributes on the directive's element:
  *
  * * `@` or `@attr` - bind a local scope property to the value of DOM attribute. The result is
- *   always a string since DOM attributes are strings. If no `attr` name is specified  then the
- *   attribute name is assumed to be the same as the local name.
- *   Given `<widget my-attr="hello {{name}}">` and widget definition
- *   of `scope: { localName:'@myAttr' }`, then widget scope property `localName` will reflect
- *   the interpolated value of `hello {{name}}`. As the `name` attribute changes so will the
- *   `localName` property on the widget scope. The `name` is read from the parent scope (not
- *   component scope).
- *
- * * `=` or `=attr` - set up bi-directional binding between a local scope property and the
- *   parent scope property of name defined via the value of the `attr` attribute. If no `attr`
- *   name is specified then the attribute name is assumed to be the same as the local name.
- *   Given `<widget my-attr="parentModel">` and widget definition of
- *   `scope: { localModel:'=myAttr' }`, then widget scope property `localModel` will reflect the
+ *   always a string since DOM attributes are strings. If no `attr` name is specified then the
+ *   attribute name is assumed to be the same as the local name. Given `<my-component
+ *   my-attr="hello {{name}}">` and the isolate scope definition `scope: { localName:'@myAttr' }`,
+ *   the directive's scope property `localName` will reflect the interpolated value of `hello
+ *   {{name}}`. As the `name` attribute changes so will the `localName` property on the directive's
+ *   scope. The `name` is read from the parent scope (not the directive's scope).
+ *
+ * * `=` or `=attr` - set up a bidirectional binding between a local scope property and an expression
+ *   passed via the attribute `attr`. The expression is evaluated in the context of the parent scope.
+ *   If no `attr` name is specified then the attribute name is assumed to be the same as the local
+ *   name. Given `<my-component my-attr="parentModel">` and the isolate scope definition `scope: {
+ *   localModel: '=myAttr' }`, the property `localModel` on the directive's scope will reflect the
+ *   value of `parentModel` on the parent scope. Changes to `parentModel` will be reflected in
+ *   `localModel` and vice versa. Optional attributes should be marked as such with a question mark:
+ *   `=?` or `=?attr`. If the binding expression is non-assignable, or if the attribute isn't
+ *   optional and doesn't exist, an exception ({@link error/$compile/nonassign `$compile:nonassign`})
+ *   will be thrown upon discovering changes to the local value, since it will be impossible to sync
+ *   them back to the parent scope. By default, the {@link ng.$rootScope.Scope#$watch `$watch`}
+ *   method is used for tracking changes, and the equality check is based on object identity.
+ *   However, if an object literal or an array literal is passed as the binding expression, the
+ *   equality check is done by value (using the {@link angular.equals} function). It's also possible
+ *   to watch the evaluated value shallowly with {@link ng.$rootScope.Scope#$watchCollection
+ *   `$watchCollection`}: use `=*` or `=*attr` (`=*?` or `=*?attr` if the attribute is optional).
+ *
+  * * `<` or `<attr` - set up a one-way (one-directional) binding between a local scope property and an
+ *   expression passed via the attribute `attr`. The expression is evaluated in the context of the
+ *   parent scope. If no `attr` name is specified then the attribute name is assumed to be the same as the
+ *   local name. You can also make the binding optional by adding `?`: `<?` or `<?attr`.
+ *
+ *   For example, given `<my-component my-attr="parentModel">` and directive definition of
+ *   `scope: { localModel:'<myAttr' }`, then the isolated scope property `localModel` will reflect the
  *   value of `parentModel` on the parent scope. Any changes to `parentModel` will be reflected
- *   in `localModel` and any changes in `localModel` will reflect in `parentModel`. If the parent
- *   scope property doesn't exist, it will throw a NON_ASSIGNABLE_MODEL_EXPRESSION exception. You
- *   can avoid this behavior using `=?` or `=?attr` in order to flag the property as optional. If
- *   you want to shallow watch for changes (i.e. $watchCollection instead of $watch) you can use
- *   `=*` or `=*attr` (`=*?` or `=*?attr` if the property is optional).
- *
- * * `&` or `&attr` - provides a way to execute an expression in the context of the parent scope.
- *   If no `attr` name is specified then the attribute name is assumed to be the same as the
- *   local name. Given `<widget my-attr="count = count + value">` and widget definition of
- *   `scope: { localFn:'&myAttr' }`, then isolate scope property `localFn` will point to
- *   a function wrapper for the `count = count + value` expression. Often it's desirable to
- *   pass data from the isolated scope via an expression to the parent scope, this can be
- *   done by passing a map of local variable names and values into the expression wrapper fn.
- *   For example, if the expression is `increment(amount)` then we can specify the amount value
- *   by calling the `localFn` as `localFn({amount: 22})`.
+ *   in `localModel`, but changes in `localModel` will not reflect in `parentModel`. There are however
+ *   two caveats:
+ *     1. one-way binding does not copy the value from the parent to the isolate scope, it simply
+ *     sets the same value. That means if your bound value is an object, changes to its properties
+ *     in the isolated scope will be reflected in the parent scope (because both reference the same object).
+ *     2. one-way binding watches changes to the **identity** of the parent value. That means the
+ *     {@link ng.$rootScope.Scope#$watch `$watch`} on the parent value only fires if the reference
+ *     to the value has changed. In most cases, this should not be of concern, but can be important
+ *     to know if you one-way bind to an object, and then replace that object in the isolated scope.
+ *     If you now change a property of the object in your parent scope, the change will not be
+ *     propagated to the isolated scope, because the identity of the object on the parent scope
+ *     has not changed. Instead you must assign a new object.
+ *
+ *   One-way binding is useful if you do not plan to propagate changes to your isolated scope bindings
+ *   back to the parent. However, it does not make this completely impossible.
+ *
+ * * `&` or `&attr` - provides a way to execute an expression in the context of the parent scope. If
+ *   no `attr` name is specified then the attribute name is assumed to be the same as the local name.
+ *   Given `<my-component my-attr="count = count + value">` and the isolate scope definition `scope: {
+ *   localFn:'&myAttr' }`, the isolate scope property `localFn` will point to a function wrapper for
+ *   the `count = count + value` expression. Often it's desirable to pass data from the isolated scope
+ *   via an expression to the parent scope. This can be done by passing a map of local variable names
+ *   and values into the expression wrapper fn. For example, if the expression is `increment(amount)`
+ *   then we can specify the amount value by calling the `localFn` as `localFn({amount: 22})`.
  *
  * In general it's possible to apply more than one directive to one element, but there might be limitations
  * depending on the type of scope required by the directives. The following points will help explain these limitations.
@@ -15668,9 +15947,32 @@ function $TemplateCacheProvider() {
  *
  *
  * #### `bindToController`
- * When an isolate scope is used for a component (see above), and `controllerAs` is used, `bindToController: true` will
- * allow a component to have its properties bound to the controller, rather than to scope. When the controller
- * is instantiated, the initial values of the isolate scope bindings are already available.
+ * This property is used to bind scope properties directly to the controller. It can be either
+ * `true` or an object hash with the same format as the `scope` property. Additionally, a controller
+ * alias must be set, either by using `controllerAs: 'myAlias'` or by specifying the alias in the controller
+ * definition: `controller: 'myCtrl as myAlias'`.
+ *
+ * When an isolate scope is used for a directive (see above), `bindToController: true` will
+ * allow a component to have its properties bound to the controller, rather than to scope.
+ *
+ * After the controller is instantiated, the initial values of the isolate scope bindings will be bound to the controller
+ * properties. You can access these bindings once they have been initialized by providing a controller method called
+ * `$onInit`, which is called after all the controllers on an element have been constructed and had their bindings
+ * initialized.
+ *
+ * <div class="alert alert-warning">
+ * **Deprecation warning:** although bindings for non-ES6 class controllers are currently
+ * bound to `this` before the controller constructor is called, this use is now deprecated. Please place initialization
+ * code that relies upon bindings inside a `$onInit` method on the controller, instead.
+ * </div>
+ *
+ * It is also possible to set `bindToController` to an object hash with the same format as the `scope` property.
+ * This will set up the scope bindings to the controller directly. Note that `scope` can still be used
+ * to define which kind of scope is created. By default, no scope is created. Use `scope: {}` to create an isolate
+ * scope (useful for component directives).
+ *
+ * If both `bindToController` and `scope` are defined and have object hashes, `bindToController` overrides `scope`.
+ *
  *
  * #### `controller`
  * Controller constructor function. The controller is instantiated before the
@@ -15682,10 +15984,10 @@ function $TemplateCacheProvider() {
  * * `$element` - Current element
  * * `$attrs` - Current attributes object for the element
  * * `$transclude` - A transclude linking function pre-bound to the correct transclusion scope:
- *   `function([scope], cloneLinkingFn, futureParentElement)`.
- *    * `scope`: optional argument to override the scope.
- *    * `cloneLinkingFn`: optional argument to create clones of the original transcluded content.
- *    * `futureParentElement`:
+ *   `function([scope], cloneLinkingFn, futureParentElement, slotName)`:
+ *    * `scope`: (optional) override the scope.
+ *    * `cloneLinkingFn`: (optional) argument to create clones of the original transcluded content.
+ *    * `futureParentElement` (optional):
  *        * defines the parent to which the `cloneLinkingFn` will add the cloned elements.
  *        * default: `$element.parent()` resp. `$element` for `transclude:'element'` resp. `transclude:true`.
  *        * only needed for transcludes that are allowed to contain non html elements (e.g. SVG elements)
@@ -15693,14 +15995,34 @@ function $TemplateCacheProvider() {
  *          as those elements need to created and cloned in a special way when they are defined outside their
  *          usual containers (e.g. like `<svg>`).
  *        * See also the `directive.templateNamespace` property.
+ *    * `slotName`: (optional) the name of the slot to transclude. If falsy (e.g. `null`, `undefined` or `''`)
+ *      then the default translusion is provided.
+ *    The `$transclude` function also has a method on it, `$transclude.isSlotFilled(slotName)`, which returns
+ *    `true` if the specified slot contains content (i.e. one or more DOM nodes).
  *
+ * The controller can provide the following methods that act as life-cycle hooks:
+ * * `$onInit` - Called on each controller after all the controllers on an element have been constructed and
+ *   had their bindings initialized (and before the pre &amp; post linking functions for the directives on
+ *   this element). This is a good place to put initialization code for your controller.
  *
  * #### `require`
  * Require another directive and inject its controller as the fourth argument to the linking function. The
- * `require` takes a string name (or array of strings) of the directive(s) to pass in. If an array is used, the
- * injected argument will be an array in corresponding order. If no such directive can be
- * found, or if the directive does not have a controller, then an error is raised (unless no link function
- * is specified, in which case error checking is skipped). The name can be prefixed with:
+ * `require` property can be a string, an array or an object:
+ * * a **string** containing the name of the directive to pass to the linking function
+ * * an **array** containing the names of directives to pass to the linking function. The argument passed to the
+ * linking function will be an array of controllers in the same order as the names in the `require` property
+ * * an **object** whose property values are the names of the directives to pass to the linking function. The argument
+ * passed to the linking function will also be an object with matching keys, whose values will hold the corresponding
+ * controllers.
+ *
+ * If the `require` property is an object and `bindToController` is truthy, then the required controllers are
+ * bound to the controller using the keys of the `require` property. This binding occurs after all the controllers
+ * have been constructed but before `$onInit` is called.
+ * See the {@link $compileProvider#component} helper for an example of how this can be used.
+ *
+ * If no such required directive(s) can be found, or if the directive does not have a controller, then an error is
+ * raised (unless no link function is specified and the required controllers are not being bound to the directive
+ * controller, in which case error checking is skipped). The name can be prefixed with:
  *
  * * (no prefix) - Locate the required controller on the current element. Throw an error if not found.
  * * `?` - Attempt to locate the required controller or pass `null` to the `link` fn if not found.
@@ -15793,14 +16115,6 @@ function $TemplateCacheProvider() {
  * The contents are compiled and provided to the directive as a **transclusion function**. See the
  * {@link $compile#transclusion Transclusion} section below.
  *
- * There are two kinds of transclusion depending upon whether you want to transclude just the contents of the
- * directive's element or the entire element:
- *
- * * `true` - transclude the content (i.e. the child nodes) of the directive's element.
- * * `'element'` - transclude the whole of the directive's element including any directives on this
- *   element that defined at a lower priority than this directive. When used, the `template`
- *   property is ignored.
- *
  *
  * #### `compile`
  *
@@ -15828,7 +16142,7 @@ function $TemplateCacheProvider() {
 
  * <div class="alert alert-warning">
  * **Note:** The compile function cannot handle directives that recursively use themselves in their
- * own templates or compile functions. Compiling these directives results in an infinite loop and a
+ * own templates or compile functions. Compiling these directives results in an infinite loop and
  * stack overflow errors.
  *
  * This can be avoided by manually using $compile in the postLink function to imperatively compile
@@ -15930,6 +16244,34 @@ function $TemplateCacheProvider() {
  * Testing Transclusion Directives}.
  * </div>
  *
+ * There are three kinds of transclusion depending upon whether you want to transclude just the contents of the
+ * directive's element, the entire element or multiple parts of the element contents:
+ *
+ * * `true` - transclude the content (i.e. the child nodes) of the directive's element.
+ * * `'element'` - transclude the whole of the directive's element including any directives on this
+ *   element that defined at a lower priority than this directive. When used, the `template`
+ *   property is ignored.
+ * * **`{...}` (an object hash):** - map elements of the content onto transclusion "slots" in the template.
+ *
+ * **Mult-slot transclusion** is declared by providing an object for the `transclude` property.
+ *
+ * This object is a map where the keys are the name of the slot to fill and the value is an element selector
+ * used to match the HTML to the slot. The element selector should be in normalized form (e.g. `myElement`)
+ * and will match the standard element variants (e.g. `my-element`, `my:element`, `data-my-element`, etc).
+ *
+ * For further information check out the guide on {@link guide/directive#matching-directives Matching Directives}
+ *
+ * If the element selector is prefixed with a `?` then that slot is optional.
+ *
+ * For example, the transclude object `{ slotA: '?myCustomElement' }` maps `<my-custom-element>` elements to
+ * the `slotA` slot, which can be accessed via the `$transclude` function or via the {@link ngTransclude} directive.
+ *
+ * Slots that are not marked as optional (`?`) will trigger a compile time error if there are no matching elements
+ * in the transclude content. If you wish to know if an optional slot was filled with content, then you can call
+ * `$transclude.isSlotFilled(slotName)` on the transclude function passed to the directive's link function and
+ * injectable into the directive's controller.
+ *
+ *
  * #### Transclusion Functions
  *
  * When a directive requests transclusion, the compiler extracts its contents and provides a **transclusion
@@ -15950,7 +16292,7 @@ function $TemplateCacheProvider() {
  * content and the `scope` is the newly created transclusion scope, to which the clone is bound.
  *
  * <div class="alert alert-info">
- * **Best Practice**: Always provide a `cloneFn` (clone attach function) when you call a translude function
+ * **Best Practice**: Always provide a `cloneFn` (clone attach function) when you call a transclude function
  * since you then get a fresh clone of the original DOM and also have access to the new transclusion scope.
  * </div>
  *
@@ -15982,7 +16324,7 @@ function $TemplateCacheProvider() {
  * </div>
  *
  * The built-in DOM manipulation directives, such as {@link ngIf}, {@link ngSwitch} and {@link ngRepeat}
- * automatically destroy their transluded clones as necessary so you do not need to worry about this if
+ * automatically destroy their transcluded clones as necessary so you do not need to worry about this if
  * you are simply using {@link ngTransclude} to inject the transclusion into your directive.
  *
  *
@@ -16007,19 +16349,19 @@ function $TemplateCacheProvider() {
  *
  * The `$parent` scope hierarchy will look like this:
  *
- * ```
- * - $rootScope
- *   - isolate
- *     - transclusion
- * ```
+   ```
+   - $rootScope
+     - isolate
+       - transclusion
+   ```
  *
  * but the scopes will inherit prototypically from different scopes to their `$parent`.
  *
- * ```
- * - $rootScope
- *   - transclusion
- * - isolate
- * ```
+   ```
+   - $rootScope
+     - transclusion
+   - isolate
+   ```
  *
  *
  * ### Attributes
@@ -16027,10 +16369,9 @@ function $TemplateCacheProvider() {
  * The {@link ng.$compile.directive.Attributes Attributes} object - passed as a parameter in the
  * `link()` or `compile()` functions. It has a variety of uses.
  *
- * accessing *Normalized attribute names:*
- * Directives like 'ngBind' can be expressed in many ways: 'ng:bind', `data-ng-bind`, or 'x-ng-bind'.
- * the attributes object allows for normalized access to
- *   the attributes.
+ * * *Accessing normalized attribute names:* Directives like 'ngBind' can be expressed in many ways:
+ *   'ng:bind', `data-ng-bind`, or 'x-ng-bind'. The attributes object allows for normalized access
+ *   to the attributes.
  *
  * * *Directive inter-communication:* All directives share the same instance of the attributes
  *   object which allows the directives to use the attributes object as inter directive
@@ -16151,8 +16492,15 @@ function $TemplateCacheProvider() {
  *        directives; if given, it will be passed through to the link functions of
  *        directives found in `element` during compilation.
  *      * `transcludeControllers` - an object hash with keys that map controller names
- *        to controller instances; if given, it will make the controllers
- *        available to directives.
+ *        to a hash with the key `instance`, which maps to the controller instance;
+ *        if given, it will make the controllers available to directives on the compileNode:
+ *        ```
+ *        {
+ *          parent: {
+ *            instance: parentControllerInstance
+ *          }
+ *        }
+ *        ```
  *      * `futureParentElement` - defines the parent to which the `cloneAttachFn` will add
  *        the cloned elements; only needed for transcludes that are allowed to contain non html
  *        elements (e.g. SVG elements). See also the directive.controller property.
@@ -16213,7 +16561,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
   var EVENT_HANDLER_ATTR_REGEXP = /^(on[a-z]+|formaction)$/;
 
   function parseIsolateBindings(scope, directiveName, isController) {
-    var LOCAL_REGEXP = /^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/;
+    var LOCAL_REGEXP = /^\s*([@&<]|=(\*?))(\??)\s*(\w*)\s*$/;
 
     var bindings = {};
 
@@ -16300,8 +16648,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
    * @param {string|Object} name Name of the directive in camel-case (i.e. <code>ngBind</code> which
    *    will match as <code>ng-bind</code>), or an object map of directives where the keys are the
    *    names and the values are the factories.
-   * @param {Function|Array} directiveFactory An injectable directive factory function. See
-   *    {@link guide/directive} for more info.
+   * @param {Function|Array} directiveFactory An injectable directive factory function. See the
+   *    {@link guide/directive directive guide} and the {@link $compile compile API} for more info.
    * @returns {ng.$compileProvider} Self for chaining.
    */
    this.directive = function registerDirective(name, directiveFactory) {
@@ -16348,6 +16696,128 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
     return this;
   };
 
+  /**
+   * @ngdoc method
+   * @name $compileProvider#component
+   * @module ng
+   * @param {string} name Name of the component in camelCase (i.e. `myComp` which will match `<my-comp>`)
+   * @param {Object} options Component definition object (a simplified
+   *    {@link ng.$compile#directive-definition-object directive definition object}),
+   *    with the following properties (all optional):
+   *
+   *    - `controller` – `{(string|function()=}` – controller constructor function that should be
+   *      associated with newly created scope or the name of a {@link ng.$compile#-controller-
+   *      registered controller} if passed as a string. An empty `noop` function by default.
+   *    - `controllerAs` – `{string=}` – identifier name for to reference the controller in the component's scope.
+   *      If present, the controller will be published to scope under the `controllerAs` name.
+   *      If not present, this will default to be `$ctrl`.
+   *    - `template` – `{string=|function()=}` – html template as a string or a function that
+   *      returns an html template as a string which should be used as the contents of this component.
+   *      Empty string by default.
+   *
+   *      If `template` is a function, then it is {@link auto.$injector#invoke injected} with
+   *      the following locals:
+   *
+   *      - `$element` - Current element
+   *      - `$attrs` - Current attributes object for the element
+   *
+   *    - `templateUrl` – `{string=|function()=}` – path or function that returns a path to an html
+   *      template that should be used  as the contents of this component.
+   *
+   *      If `templateUrl` is a function, then it is {@link auto.$injector#invoke injected} with
+   *      the following locals:
+   *
+   *      - `$element` - Current element
+   *      - `$attrs` - Current attributes object for the element
+   *
+   *    - `bindings` – `{object=}` – defines bindings between DOM attributes and component properties.
+   *      Component properties are always bound to the component controller and not to the scope.
+   *      See {@link ng.$compile#-bindtocontroller- `bindToController`}.
+   *    - `transclude` – `{boolean=}` – whether {@link $compile#transclusion content transclusion} is enabled.
+   *      Disabled by default.
+   *    - `$...` – `{function()=}` – additional annotations to provide to the directive factory function.
+   *
+   * @returns {ng.$compileProvider} the compile provider itself, for chaining of function calls.
+   * @description
+   * Register a **component definition** with the compiler. This is a shorthand for registering a special
+   * type of directive, which represents a self-contained UI component in your application. Such components
+   * are always isolated (i.e. `scope: {}`) and are always restricted to elements (i.e. `restrict: 'E'`).
+   *
+   * Component definitions are very simple and do not require as much configuration as defining general
+   * directives. Component definitions usually consist only of a template and a controller backing it.
+   *
+   * In order to make the definition easier, components enforce best practices like use of `controllerAs`,
+   * `bindToController`. They always have **isolate scope** and are restricted to elements.
+   *
+   * Here are a few examples of how you would usually define components:
+   *
+   * ```js
+   *   var myMod = angular.module(...);
+   *   myMod.component('myComp', {
+   *     template: '<div>My name is {{$ctrl.name}}</div>',
+   *     controller: function() {
+   *       this.name = 'shahar';
+   *     }
+   *   });
+   *
+   *   myMod.component('myComp', {
+   *     template: '<div>My name is {{$ctrl.name}}</div>',
+   *     bindings: {name: '@'}
+   *   });
+   *
+   *   myMod.component('myComp', {
+   *     templateUrl: 'views/my-comp.html',
+   *     controller: 'MyCtrl as ctrl',
+   *     bindings: {name: '@'}
+   *   });
+   *
+   * ```
+   * For more examples, and an in-depth guide, see the {@link guide/component component guide}.
+   *
+   * <br />
+   * See also {@link ng.$compileProvider#directive $compileProvider.directive()}.
+   */
+  this.component = function registerComponent(name, options) {
+    var controller = options.controller || function() {};
+
+    function factory($injector) {
+      function makeInjectable(fn) {
+        if (isFunction(fn) || isArray(fn)) {
+          return function(tElement, tAttrs) {
+            return $injector.invoke(fn, this, {$element: tElement, $attrs: tAttrs});
+          };
+        } else {
+          return fn;
+        }
+      }
+
+      var template = (!options.template && !options.templateUrl ? '' : options.template);
+      return {
+        controller: controller,
+        controllerAs: identifierForController(options.controller) || options.controllerAs || '$ctrl',
+        template: makeInjectable(template),
+        templateUrl: makeInjectable(options.templateUrl),
+        transclude: options.transclude,
+        scope: {},
+        bindToController: options.bindings || {},
+        restrict: 'E',
+        require: options.require
+      };
+    }
+
+    // Copy any annotation properties (starting with $) over to the factory function
+    // These could be used by libraries such as the new component router
+    forEach(options, function(val, key) {
+      if (key.charAt(0) === '$') {
+        factory[key] = val;
+      }
+    });
+
+    factory.$inject = ['$injector'];
+
+    return this.directive(name, factory);
+  };
+
 
   /**
    * @ngdoc method
@@ -16441,10 +16911,12 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
 
   this.$get = [
             '$injector', '$interpolate', '$exceptionHandler', '$templateRequest', '$parse',
-            '$controller', '$rootScope', '$document', '$sce', '$animate', '$$sanitizeUri',
+            '$controller', '$rootScope', '$sce', '$animate', '$$sanitizeUri',
     function($injector,   $interpolate,   $exceptionHandler,   $templateRequest,   $parse,
-             $controller,   $rootScope,   $document,   $sce,   $animate,   $$sanitizeUri) {
+             $controller,   $rootScope,   $sce,   $animate,   $$sanitizeUri) {
 
+    var SIMPLE_ATTR_NAME = /^\w/;
+    var specialAttrHolder = document.createElement('div');
     var Attributes = function(element, attributesToCopy) {
       if (attributesToCopy) {
         var keys = Object.keys(attributesToCopy);
@@ -16580,7 +17052,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
 
         nodeName = nodeName_(this.$$element);
 
-        if ((nodeName === 'a' && key === 'href') ||
+        if ((nodeName === 'a' && (key === 'href' || key === 'xlinkHref')) ||
             (nodeName === 'img' && key === 'src')) {
           // sanitize a[href] and img[src] values
           this[key] = value = $$sanitizeUri(value, key === 'src');
@@ -16624,7 +17096,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
           if (value === null || isUndefined(value)) {
             this.$$element.removeAttr(attrName);
           } else {
-            this.$$element.attr(attrName, value);
+            if (SIMPLE_ATTR_NAME.test(attrName)) {
+              this.$$element.attr(attrName, value);
+            } else {
+              setSpecialAttr(this.$$element[0], attrName, value);
+            }
           }
         }
 
@@ -16655,7 +17131,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
        * @param {string} key Normalized key. (ie ngAttribute) .
        * @param {function(interpolatedValue)} fn Function that will be called whenever
                 the interpolated value of the attribute changes.
-       *        See the {@link guide/directive#text-and-attribute-bindings Directives} guide for more info.
+       *        See the {@link guide/interpolation#how-text-and-attribute-bindings-work Interpolation
+       *        guide} for more info.
        * @returns {function()} Returns a deregistration function for this observer.
        */
       $observe: function(key, fn) {
@@ -16677,6 +17154,18 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
       }
     };
 
+    function setSpecialAttr(element, attrName, value) {
+      // Attributes names that do not start with letters (such as `(click)`) cannot be set using `setAttribute`
+      // so we have to jump through some hoops to get such an attribute
+      // https://github.com/angular/angular.js/pull/13318
+      specialAttrHolder.innerHTML = "<span " + attrName + ">";
+      var attributes = specialAttrHolder.firstChild.attributes;
+      var attribute = attributes[0];
+      // We have to remove the attribute from its container element before we can add it to the destination element
+      attributes.removeNamedItem(attribute.name);
+      attribute.value = value;
+      element.attributes.setNamedItem(attribute);
+    }
 
     function safeAddClass($element, className) {
       try {
@@ -16690,7 +17179,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
 
     var startSymbol = $interpolate.startSymbol(),
         endSymbol = $interpolate.endSymbol(),
-        denormalizeTemplate = (startSymbol == '{{' || endSymbol  == '}}')
+        denormalizeTemplate = (startSymbol == '{{' && endSymbol  == '}}')
             ? identity
             : function denormalizeTemplate(template) {
               return template.replace(/\{\{/g, startSymbol).replace(/}}/g, endSymbol);
@@ -16734,13 +17223,19 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
         // modify it.
         $compileNodes = jqLite($compileNodes);
       }
+
+      var NOT_EMPTY = /\S+/;
+
       // We can not compile top level text elements since text nodes can be merged and we will
       // not be able to attach scope data to them, so we will wrap them in <span>
-      forEach($compileNodes, function(node, index) {
-        if (node.nodeType == NODE_TYPE_TEXT && node.nodeValue.match(/\S+/) /* non-empty */ ) {
-          $compileNodes[index] = jqLite(node).wrap('<span></span>').parent()[0];
+      for (var i = 0, len = $compileNodes.length; i < len; i++) {
+        var domNode = $compileNodes[i];
+
+        if (domNode.nodeType === NODE_TYPE_TEXT && domNode.nodeValue.match(NOT_EMPTY) /* non-empty */) {
+          jqLiteWrapNode(domNode, $compileNodes[i] = document.createElement('span'));
         }
-      });
+      }
+
       var compositeLinkFn =
               compileNodes($compileNodes, transcludeFn, $compileNodes,
                            maxPriority, ignoreDirective, previousCompileContext);
@@ -16811,7 +17306,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
       if (!node) {
         return 'html';
       } else {
-        return nodeName_(node) !== 'foreignobject' && node.toString().match(/SVG/) ? 'svg' : 'html';
+        return nodeName_(node) !== 'foreignobject' && toString.call(node).match(/SVG/) ? 'svg' : 'html';
       }
     }
 
@@ -16945,6 +17440,17 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
         });
       };
 
+      // We need  to attach the transclusion slots onto the `boundTranscludeFn`
+      // so that they are available inside the `controllersBoundTransclude` function
+      var boundSlots = boundTranscludeFn.$$slots = createMap();
+      for (var slotName in transcludeFn.$$slots) {
+        if (transcludeFn.$$slots[slotName]) {
+          boundSlots[slotName] = createBoundTranscludeFn(scope, transcludeFn.$$slots[slotName], previousBoundTranscludeFn);
+        } else {
+          boundSlots[slotName] = null;
+        }
+      }
+
       return boundTranscludeFn;
     }
 
@@ -17104,6 +17610,37 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
     }
 
     /**
+     * A function generator that is used to support both eager and lazy compilation
+     * linking function.
+     * @param eager
+     * @param $compileNodes
+     * @param transcludeFn
+     * @param maxPriority
+     * @param ignoreDirective
+     * @param previousCompileContext
+     * @returns {Function}
+     */
+    function compilationGenerator(eager, $compileNodes, transcludeFn, maxPriority, ignoreDirective, previousCompileContext) {
+        if (eager) {
+            return compile($compileNodes, transcludeFn, maxPriority, ignoreDirective, previousCompileContext);
+        }
+
+        var compiled;
+
+        return function() {
+            if (!compiled) {
+                compiled = compile($compileNodes, transcludeFn, maxPriority, ignoreDirective, previousCompileContext);
+
+                // Null out all of these references in order to make them eligible for garbage collection
+                // since this is a potentially long lived closure
+                $compileNodes = transcludeFn = previousCompileContext = null;
+            }
+
+            return compiled.apply(this, arguments);
+        };
+    }
+
+    /**
      * Once the directives have been collected, their compile functions are executed. This method
      * is responsible for inlining directive templates as well as terminating the application
      * of the directives if the terminal directive has been reached.
@@ -17147,6 +17684,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
           replaceDirective = originalReplaceDirective,
           childTranscludeFn = transcludeFn,
           linkFn,
+          didScanForMultipleTransclusion = false,
+          mightHaveMultipleTransclusionError = false,
           directiveValue;
 
       // executes all directives on the current element
@@ -17189,6 +17728,27 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
 
         directiveName = directive.name;
 
+        // If we encounter a condition that can result in transclusion on the directive,
+        // then scan ahead in the remaining directives for others that may cause a multiple
+        // transclusion error to be thrown during the compilation process.  If a matching directive
+        // is found, then we know that when we encounter a transcluded directive, we need to eagerly
+        // compile the `transclude` function rather than doing it lazily in order to throw
+        // exceptions at the correct time
+        if (!didScanForMultipleTransclusion && ((directive.replace && (directive.templateUrl || directive.template))
+            || (directive.transclude && !directive.$$tlb))) {
+                var candidateDirective;
+
+                for (var scanningIndex = i + 1; candidateDirective = directives[scanningIndex++];) {
+                    if ((candidateDirective.transclude && !candidateDirective.$$tlb)
+                        || (candidateDirective.replace && (candidateDirective.templateUrl || candidateDirective.template))) {
+                        mightHaveMultipleTransclusionError = true;
+                        break;
+                    }
+                }
+
+                didScanForMultipleTransclusion = true;
+        }
+
         if (!directive.templateUrl && directive.controller) {
           directiveValue = directive.controller;
           controllerDirectives = controllerDirectives || createMap();
@@ -17218,7 +17778,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
             compileNode = $compileNode[0];
             replaceWith(jqCollection, sliceArgs($template), compileNode);
 
-            childTranscludeFn = compile($template, transcludeFn, terminalPriority,
+            childTranscludeFn = compilationGenerator(mightHaveMultipleTransclusionError, $template, transcludeFn, terminalPriority,
                                         replaceDirective && replaceDirective.name, {
                                           // Don't pass in:
                                           // - controllerDirectives - otherwise we'll create duplicates controllers
@@ -17230,10 +17790,69 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
                                           nonTlbTranscludeDirective: nonTlbTranscludeDirective
                                         });
           } else {
+
+            var slots = createMap();
+
             $template = jqLite(jqLiteClone(compileNode)).contents();
+
+            if (isObject(directiveValue)) {
+
+              // We have transclusion slots,
+              // collect them up, compile them and store their transclusion functions
+              $template = [];
+
+              var slotMap = createMap();
+              var filledSlots = createMap();
+
+              // Parse the element selectors
+              forEach(directiveValue, function(elementSelector, slotName) {
+                // If an element selector starts with a ? then it is optional
+                var optional = (elementSelector.charAt(0) === '?');
+                elementSelector = optional ? elementSelector.substring(1) : elementSelector;
+
+                slotMap[elementSelector] = slotName;
+
+                // We explicitly assign `null` since this implies that a slot was defined but not filled.
+                // Later when calling boundTransclusion functions with a slot name we only error if the
+                // slot is `undefined`
+                slots[slotName] = null;
+
+                // filledSlots contains `true` for all slots that are either optional or have been
+                // filled. This is used to check that we have not missed any required slots
+                filledSlots[slotName] = optional;
+              });
+
+              // Add the matching elements into their slot
+              forEach($compileNode.contents(), function(node) {
+                var slotName = slotMap[directiveNormalize(nodeName_(node))];
+                if (slotName) {
+                  filledSlots[slotName] = true;
+                  slots[slotName] = slots[slotName] || [];
+                  slots[slotName].push(node);
+                } else {
+                  $template.push(node);
+                }
+              });
+
+              // Check for required slots that were not filled
+              forEach(filledSlots, function(filled, slotName) {
+                if (!filled) {
+                  throw $compileMinErr('reqslot', 'Required transclusion slot `{0}` was not filled.', slotName);
+                }
+              });
+
+              for (var slotName in slots) {
+                if (slots[slotName]) {
+                  // Only define a transclusion function if the slot was filled
+                  slots[slotName] = compilationGenerator(mightHaveMultipleTransclusionError, slots[slotName], transcludeFn);
+                }
+              }
+            }
+
             $compileNode.empty(); // clear contents
-            childTranscludeFn = compile($template, transcludeFn, undefined,
+            childTranscludeFn = compilationGenerator(mightHaveMultipleTransclusionError, $template, transcludeFn, undefined,
                 undefined, { needsNewScope: directive.$$isolateScope || directive.$$newScope});
+            childTranscludeFn.$$slots = slots;
           }
         }
 
@@ -17396,6 +18015,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
           for (var i = 0, ii = require.length; i < ii; i++) {
             value[i] = getControllers(directiveName, require[i], $element, elementControllers);
           }
+        } else if (isObject(require)) {
+          value = {};
+          forEach(require, function(controller, property) {
+            value[property] = getControllers(directiveName, controller, $element, elementControllers);
+          });
         }
 
         return value || null;
@@ -17433,7 +18057,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
       }
 
       function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn) {
-        var linkFn, isolateScope, controllerScope, elementControllers, transcludeFn, $element,
+        var i, ii, linkFn, isolateScope, controllerScope, elementControllers, transcludeFn, $element,
             attrs, removeScopeBindingWatches, removeControllerBindingWatches;
 
         if (compileNode === linkNode) {
@@ -17456,6 +18080,10 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
           // is later passed as `parentBoundTranscludeFn` to `publicLinkFn`
           transcludeFn = controllersBoundTransclude;
           transcludeFn.$$boundTransclude = boundTranscludeFn;
+          // expose the slots on the `$transclude` function
+          transcludeFn.isSlotFilled = function(slotName) {
+            return !!boundTranscludeFn.$$slots[slotName];
+          };
         }
 
         if (controllerDirectives) {
@@ -17500,6 +18128,21 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
           }
         }
 
+        // Bind the required controllers to the controller, if `require` is an object and `bindToController` is truthy
+        forEach(controllerDirectives, function(controllerDirective, name) {
+          var require = controllerDirective.require;
+          if (controllerDirective.bindToController && !isArray(require) && isObject(require)) {
+            extend(elementControllers[name].instance, getControllers(name, require, $element, elementControllers));
+          }
+        });
+
+        // Trigger the `$onInit` method on all controllers that have one
+        forEach(elementControllers, function(controller) {
+          if (isFunction(controller.instance.$onInit)) {
+            controller.instance.$onInit();
+          }
+        });
+
         // PRELINKING
         for (i = 0, ii = preLinkFns.length; i < ii; i++) {
           linkFn = preLinkFns[i];
@@ -17535,11 +18178,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
 
         // This is the function that is injected as `$transclude`.
         // Note: all arguments are optional!
-        function controllersBoundTransclude(scope, cloneAttachFn, futureParentElement) {
+        function controllersBoundTransclude(scope, cloneAttachFn, futureParentElement, slotName) {
           var transcludeControllers;
-
           // No scope passed in:
           if (!isScope(scope)) {
+            slotName = futureParentElement;
             futureParentElement = cloneAttachFn;
             cloneAttachFn = scope;
             scope = undefined;
@@ -17551,7 +18194,23 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
           if (!futureParentElement) {
             futureParentElement = hasElementTranscludeDirective ? $element.parent() : $element;
           }
-          return boundTranscludeFn(scope, cloneAttachFn, transcludeControllers, futureParentElement, scopeToChild);
+          if (slotName) {
+            // slotTranscludeFn can be one of three things:
+            //  * a transclude function - a filled slot
+            //  * `null` - an optional slot that was not filled
+            //  * `undefined` - a slot that was not declared (i.e. invalid)
+            var slotTranscludeFn = boundTranscludeFn.$$slots[slotName];
+            if (slotTranscludeFn) {
+              return slotTranscludeFn(scope, cloneAttachFn, transcludeControllers, futureParentElement, scopeToChild);
+            } else if (isUndefined(slotTranscludeFn)) {
+              throw $compileMinErr('noslot',
+               'No parent directive that requires a transclusion with slot name "{0}". ' +
+               'Element: {1}',
+               slotName, startingTag($element));
+            }
+          } else {
+            return boundTranscludeFn(scope, cloneAttachFn, transcludeControllers, futureParentElement, scopeToChild);
+          }
         }
       }
     }
@@ -17983,9 +18642,14 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
         parent.replaceChild(newNode, firstElementToRemove);
       }
 
-      // TODO(perf): what's this document fragment for? is it needed? can we at least reuse it?
+      // Append all the `elementsToRemove` to a fragment. This will...
+      // - remove them from the DOM
+      // - allow them to still be traversed with .nextSibling
+      // - allow a single fragment.qSA to fetch all elements being removed
       var fragment = document.createDocumentFragment();
-      fragment.appendChild(firstElementToRemove);
+      for (i = 0; i < removeCount; i++) {
+        fragment.appendChild(elementsToRemove[i]);
+      }
 
       if (jqLite.hasData(firstElementToRemove)) {
         // Copy over user data (that includes Angular's $scope etc.). Don't copy private
@@ -17993,31 +18657,18 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
         // event listeners (which is the main use of private data) wouldn't work anyway.
         jqLite.data(newNode, jqLite.data(firstElementToRemove));
 
-        // Remove data of the replaced element. We cannot just call .remove()
-        // on the element it since that would deallocate scope that is needed
-        // for the new node. Instead, remove the data "manually".
-        if (!jQuery) {
-          delete jqLite.cache[firstElementToRemove[jqLite.expando]];
-        } else {
-          // jQuery 2.x doesn't expose the data storage. Use jQuery.cleanData to clean up after
-          // the replaced element. The cleanData version monkey-patched by Angular would cause
-          // the scope to be trashed and we do need the very same scope to work with the new
-          // element. However, we cannot just cache the non-patched version and use it here as
-          // that would break if another library patches the method after Angular does (one
-          // example is jQuery UI). Instead, set a flag indicating scope destroying should be
-          // skipped this one time.
-          skipDestroyOnNextJQueryCleanData = true;
-          jQuery.cleanData([firstElementToRemove]);
-        }
+        // Remove $destroy event listeners from `firstElementToRemove`
+        jqLite(firstElementToRemove).off('$destroy');
       }
 
-      for (var k = 1, kk = elementsToRemove.length; k < kk; k++) {
-        var element = elementsToRemove[k];
-        jqLite(element).remove(); // must do this way to clean up expando
-        fragment.appendChild(element);
-        delete elementsToRemove[k];
-      }
+      // Cleanup any data/listeners on the elements and children.
+      // This includes invoking the $destroy event on any elements with listeners.
+      jqLite.cleanData(fragment.querySelectorAll('*'));
 
+      // Update the jqLite collection to only contain the `newNode`
+      for (i = 1; i < removeCount; i++) {
+        delete elementsToRemove[i];
+      }
       elementsToRemove[0] = newNode;
       elementsToRemove.length = 1;
     }
@@ -18046,7 +18697,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
         optional = definition.optional,
         mode = definition.mode, // @, =, or &
         lastValue,
-        parentGet, parentSet, compare;
+        parentGet, parentSet, compare, removeWatch;
 
         switch (mode) {
 
@@ -18060,10 +18711,15 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
               }
             });
             attrs.$$observers[attrName].$$scope = scope;
-            if (isString(attrs[attrName])) {
+            lastValue = attrs[attrName];
+            if (isString(lastValue)) {
               // If the attribute has been provided then we trigger an interpolation to ensure
               // the value is there for use in the link fn
-              destination[scopeName] = $interpolate(attrs[attrName])(scope);
+              destination[scopeName] = $interpolate(lastValue)(scope);
+            } else if (isBoolean(lastValue)) {
+              // If the attributes is one of the BOOLEAN_ATTR then Angular will have converted
+              // the value to boolean rather than a string, so we special case this situation
+              destination[scopeName] = lastValue;
             }
             break;
 
@@ -18084,8 +18740,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
               // reset the change, or we will throw this exception on every $digest
               lastValue = destination[scopeName] = parentGet(scope);
               throw $compileMinErr('nonassign',
-                  "Expression '{0}' used with directive '{1}' is non-assignable!",
-                  attrs[attrName], directive.name);
+                  "Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!",
+                  attrs[attrName], attrName, directive.name);
             };
             lastValue = destination[scopeName] = parentGet(scope);
             var parentValueWatch = function parentValueWatch(parentValue) {
@@ -18102,7 +18758,6 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
               return lastValue = parentValue;
             };
             parentValueWatch.$stateful = true;
-            var removeWatch;
             if (definition.collection) {
               removeWatch = scope.$watchCollection(attrs[attrName], parentValueWatch);
             } else {
@@ -18111,6 +18766,24 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
             removeWatchCollection.push(removeWatch);
             break;
 
+          case '<':
+            if (!hasOwnProperty.call(attrs, attrName)) {
+              if (optional) break;
+              attrs[attrName] = void 0;
+            }
+            if (optional && !attrs[attrName]) break;
+
+            parentGet = $parse(attrs[attrName]);
+
+            destination[scopeName] = parentGet(scope);
+
+            removeWatch = scope.$watch(parentGet, function parentValueWatchAction(newParentValue) {
+              destination[scopeName] = newParentValue;
+            }, parentGet.literal);
+
+            removeWatchCollection.push(removeWatch);
+            break;
+
           case '&':
             // Don't assign Object.prototype method to scope
             parentGet = attrs.hasOwnProperty(attrName) ? $parse(attrs[attrName]) : noop;
@@ -18239,7 +18912,7 @@ function removeComments(jqNodes) {
 var $controllerMinErr = minErr('$controller');
 
 
-var CNTRL_REG = /^(\S+)(\s+as\s+(\w+))?$/;
+var CNTRL_REG = /^(\S+)(\s+as\s+([\w$]+))?$/;
 function identifierForController(controller, ident) {
   if (ident && isString(ident)) return ident;
   if (isString(controller)) {
@@ -19030,7 +19703,7 @@ function $HttpProvider() {
      *
      * ```
      * module.run(function($http) {
-     *   $http.defaults.headers.common.Authorization = 'Basic YmVlcDpib29w'
+     *   $http.defaults.headers.common.Authorization = 'Basic YmVlcDpib29w';
      * });
      * ```
      *
@@ -19258,13 +19931,13 @@ function $HttpProvider() {
      *
      * ### Cross Site Request Forgery (XSRF) Protection
      *
-     * [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) is a technique by which
-     * an unauthorized site can gain your user's private data. Angular provides a mechanism
-     * to counter XSRF. When performing XHR requests, the $http service reads a token from a cookie
-     * (by default, `XSRF-TOKEN`) and sets it as an HTTP header (`X-XSRF-TOKEN`). Since only
-     * JavaScript that runs on your domain could read the cookie, your server can be assured that
-     * the XHR came from JavaScript running on your domain. The header will not be set for
-     * cross-domain requests.
+     * [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) is an attack technique by
+     * which the attacker can trick an authenticated user into unknowingly executing actions on your
+     * website. Angular provides a mechanism to counter XSRF. When performing XHR requests, the
+     * $http service reads a token from a cookie (by default, `XSRF-TOKEN`) and sets it as an HTTP
+     * header (`X-XSRF-TOKEN`). Since only JavaScript that runs on your domain could read the
+     * cookie, your server can be assured that the XHR came from JavaScript running on your domain.
+     * The header will not be set for cross-domain requests.
      *
      * To take advantage of this, your server needs to set a token in a JavaScript readable session
      * cookie called `XSRF-TOKEN` on the first HTTP GET request. On subsequent XHR requests the
@@ -19423,10 +20096,14 @@ function $HttpProvider() {
      */
     function $http(requestConfig) {
 
-      if (!angular.isObject(requestConfig)) {
+      if (!isObject(requestConfig)) {
         throw minErr('$http')('badreq', 'Http request configuration must be an object.  Received: {0}', requestConfig);
       }
 
+      if (!isString(requestConfig.url)) {
+        throw minErr('$http')('badreq', 'Http request configuration url must be a string.  Received: {0}', requestConfig.url);
+      }
+
       var config = extend({
         method: 'get',
         transformRequest: defaults.transformRequest,
@@ -19539,7 +20216,7 @@ function $HttpProvider() {
 
         defHeaders = extend({}, defHeaders.common, defHeaders[lowercase(config.method)]);
 
-        // using for-in instead of forEach to avoid unecessary iteration after header has been found
+        // using for-in instead of forEach to avoid unnecessary iteration after header has been found
         defaultHeadersIteration:
         for (defHeaderName in defHeaders) {
           lowercaseDefHeaderName = lowercase(defHeaderName);
@@ -20038,8 +20715,16 @@ $interpolateMinErr.interr = function(text, err) {
  *
  * Used for configuring the interpolation markup. Defaults to `{{` and `}}`.
  *
+ * <div class="alert alert-danger">
+ * This feature is sometimes used to mix different markup languages, e.g. to wrap an Angular
+ * template within a Python Jinja template (or any other template language). Mixing templating
+ * languages is **very dangerous**. The embedding template language will not safely escape Angular
+ * expressions, so any user-controlled values in the template will cause Cross Site Scripting (XSS)
+ * security bugs!
+ * </div>
+ *
  * @example
-<example module="customInterpolationApp">
+<example name="custom-interpolation-markup" module="customInterpolationApp">
 <file name="index.html">
 <script>
   var customInterpolationApp = angular.module('customInterpolationApp', []);
@@ -20054,7 +20739,7 @@ $interpolateMinErr.interr = function(text, err) {
       this.label = "This binding is brought you by // interpolation symbols.";
   });
 </script>
-<div ng-app="App" ng-controller="DemoController as demo">
+<div ng-controller="DemoController as demo">
     //demo.label//
 </div>
 </file>
@@ -20138,6 +20823,15 @@ function $InterpolateProvider() {
       return value;
     }
 
+    //TODO: this is the same as the constantWatchDelegate in parse.js
+    function constantWatchDelegate(scope, listener, objectEquality, constantInterp) {
+      var unwatch;
+      return unwatch = scope.$watch(function constantInterpolateWatch(scope) {
+        unwatch();
+        return constantInterp(scope);
+      }, listener, objectEquality);
+    }
+
     /**
      * @ngdoc service
      * @name $interpolate
@@ -20233,6 +20927,19 @@ function $InterpolateProvider() {
      * - `context`: evaluation context for all expressions embedded in the interpolated text
      */
     function $interpolate(text, mustHaveExpression, trustedContext, allOrNothing) {
+      // Provide a quick exit and simplified result function for text with no interpolation
+      if (!text.length || text.indexOf(startSymbol) === -1) {
+        var constantInterp;
+        if (!mustHaveExpression) {
+          var unescapedText = unescapeText(text);
+          constantInterp = valueFn(unescapedText);
+          constantInterp.exp = text;
+          constantInterp.expressions = [];
+          constantInterp.$$watchDelegate = constantWatchDelegate;
+        }
+        return constantInterp;
+      }
+
       allOrNothing = !!allOrNothing;
       var startIndex,
           endIndex,
@@ -20369,8 +21076,8 @@ function $InterpolateProvider() {
 }
 
 function $IntervalProvider() {
-  this.$get = ['$rootScope', '$window', '$q', '$$q',
-       function($rootScope,   $window,   $q,   $$q) {
+  this.$get = ['$rootScope', '$window', '$q', '$$q', '$browser',
+       function($rootScope,   $window,   $q,   $$q,   $browser) {
     var intervals = {};
 
 
@@ -20511,11 +21218,12 @@ function $IntervalProvider() {
 
       count = isDefined(count) ? count : 0;
 
-      promise.then(null, null, (!hasParams) ? fn : function() {
-        fn.apply(null, args);
-      });
-
       promise.$$intervalId = setInterval(function tick() {
+        if (skipApply) {
+          $browser.defer(callback);
+        } else {
+          $rootScope.$evalAsync(callback);
+        }
         deferred.notify(iteration++);
 
         if (count > 0 && iteration >= count) {
@@ -20531,6 +21239,14 @@ function $IntervalProvider() {
       intervals[promise.$$intervalId] = deferred;
 
       return promise;
+
+      function callback() {
+        if (!hasParams) {
+          fn(iteration);
+        } else {
+          fn.apply(null, args);
+        }
+      }
     }
 
 
@@ -21770,23 +22486,22 @@ function ensureSafeMemberName(name, fullExpression) {
   return name;
 }
 
-function getStringValue(name, fullExpression) {
-  // From the JavaScript docs:
+function getStringValue(name) {
   // Property names must be strings. This means that non-string objects cannot be used
   // as keys in an object. Any non-string object, including a number, is typecasted
   // into a string via the toString method.
+  // -- MDN, https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Property_accessors#Property_names
   //
-  // So, to ensure that we are checking the same `name` that JavaScript would use,
-  // we cast it to a string, if possible.
-  // Doing `name + ''` can cause a repl error if the result to `toString` is not a string,
-  // this is, this will handle objects that misbehave.
-  name = name + '';
-  if (!isString(name)) {
-    throw $parseMinErr('iseccst',
-        'Cannot convert object to primitive value! '
-        + 'Expression: {0}', fullExpression);
-  }
-  return name;
+  // So, to ensure that we are checking the same `name` that JavaScript would use, we cast it
+  // to a string. It's not always possible. If `name` is an object and its `toString` method is
+  // 'broken' (doesn't return a string, isn't a function, etc.), an error will be thrown:
+  //
+  // TypeError: Cannot convert object to primitive value
+  //
+  // For performance reasons, we don't catch this error here and allow it to propagate up the call
+  // stack. Note that you'll get the same error in JavaScript if you try to access a property using
+  // such a 'broken' object as a key.
+  return name + '';
 }
 
 function ensureSafeObject(obj, fullExpression) {
@@ -22047,6 +22762,7 @@ AST.ArrayExpression = 'ArrayExpression';
 AST.Property = 'Property';
 AST.ObjectExpression = 'ObjectExpression';
 AST.ThisExpression = 'ThisExpression';
+AST.LocalsExpression = 'LocalsExpression';
 
 // Internal use only
 AST.NGValueParameter = 'NGValueParameter';
@@ -22347,7 +23063,8 @@ AST.prototype = {
     'false': { type: AST.Literal, value: false },
     'null': { type: AST.Literal, value: null },
     'undefined': {type: AST.Literal, value: undefined },
-    'this': {type: AST.ThisExpression }
+    'this': {type: AST.ThisExpression },
+    '$locals': {type: AST.LocalsExpression }
   }
 };
 
@@ -22467,6 +23184,10 @@ function findConstantAndWatchExpressions(ast, $filter) {
     ast.constant = false;
     ast.toWatch = [];
     break;
+  case AST.LocalsExpression:
+    ast.constant = false;
+    ast.toWatch = [];
+    break;
   }
 }
 
@@ -22710,6 +23431,9 @@ ASTCompiler.prototype = {
       intoId = intoId || this.nextId();
       self.recurse(ast.object, left, undefined, function() {
         self.if_(self.notNull(left), function() {
+          if (create && create !== 1) {
+            self.addEnsureSafeAssignContext(left);
+          }
           if (ast.computed) {
             right = self.nextId();
             self.recurse(ast.property, right);
@@ -22791,7 +23515,7 @@ ASTCompiler.prototype = {
       right = this.nextId();
       left = {};
       if (!isAssignable(ast.left)) {
-        throw $parseMinErr('lval', 'Trying to assing a value to a non l-value');
+        throw $parseMinErr('lval', 'Trying to assign a value to a non l-value');
       }
       this.recurse(ast.left, undefined, left, function() {
         self.if_(self.notNull(left.context), function() {
@@ -22833,6 +23557,10 @@ ASTCompiler.prototype = {
       this.assign(intoId, 's');
       recursionFn('s');
       break;
+    case AST.LocalsExpression:
+      this.assign(intoId, 'l');
+      recursionFn('l');
+      break;
     case AST.NGValueParameter:
       this.assign(intoId, 'v');
       recursionFn('v');
@@ -22940,7 +23668,7 @@ ASTCompiler.prototype = {
   },
 
   getStringValue: function(item) {
-    this.assign(item, 'getStringValue(' + item + ',text)');
+    this.assign(item, 'getStringValue(' + item + ')');
   },
 
   ensureSafeAssignContext: function(item) {
@@ -23160,6 +23888,10 @@ ASTInterpreter.prototype = {
       return function(scope) {
         return context ? {value: scope} : scope;
       };
+    case AST.LocalsExpression:
+      return function(scope, locals) {
+        return context ? {value: locals} : locals;
+      };
     case AST.NGValueParameter:
       return function(scope, locals, assign, inputs) {
         return context ? {value: assign} : assign;
@@ -23324,8 +24056,11 @@ ASTInterpreter.prototype = {
         rhs = right(scope, locals, assign, inputs);
         rhs = getStringValue(rhs);
         ensureSafeMemberName(rhs, expression);
-        if (create && create !== 1 && lhs && !(lhs[rhs])) {
-          lhs[rhs] = {};
+        if (create && create !== 1) {
+          ensureSafeAssignContext(lhs);
+          if (lhs && !(lhs[rhs])) {
+            lhs[rhs] = {};
+          }
         }
         value = lhs[rhs];
         ensureSafeObject(value, expression);
@@ -23340,8 +24075,11 @@ ASTInterpreter.prototype = {
   nonComputedMember: function(left, right, expensiveChecks, context, create, expression) {
     return function(scope, locals, assign, inputs) {
       var lhs = left(scope, locals, assign, inputs);
-      if (create && create !== 1 && lhs && !(lhs[right])) {
-        lhs[right] = {};
+      if (create && create !== 1) {
+        ensureSafeAssignContext(lhs);
+        if (lhs && !(lhs[right])) {
+          lhs[right] = {};
+        }
       }
       var value = lhs != null ? lhs[right] : undefined;
       if (expensiveChecks || isPossiblyDangerousMemberName(right)) {
@@ -23382,9 +24120,6 @@ Parser.prototype = {
   }
 };
 
-var getterFnCacheDefault = createMap();
-var getterFnCacheExpensive = createMap();
-
 function isPossiblyDangerousMemberName(name) {
   return name == 'constructor';
 }
@@ -23460,10 +24195,19 @@ function $ParseProvider() {
           csp: noUnsafeEval,
           expensiveChecks: true
         };
+    var runningChecksEnabled = false;
 
-    return function $parse(exp, interceptorFn, expensiveChecks) {
+    $parse.$$runningExpensiveChecks = function() {
+      return runningChecksEnabled;
+    };
+
+    return $parse;
+
+    function $parse(exp, interceptorFn, expensiveChecks) {
       var parsedExpression, oneTime, cacheKey;
 
+      expensiveChecks = expensiveChecks || runningChecksEnabled;
+
       switch (typeof exp) {
         case 'string':
           exp = exp.trim();
@@ -23489,6 +24233,9 @@ function $ParseProvider() {
             } else if (parsedExpression.inputs) {
               parsedExpression.$$watchDelegate = inputsWatchDelegate;
             }
+            if (expensiveChecks) {
+              parsedExpression = expensiveChecksInterceptor(parsedExpression);
+            }
             cache[cacheKey] = parsedExpression;
           }
           return addInterceptor(parsedExpression, interceptorFn);
@@ -23497,9 +24244,33 @@ function $ParseProvider() {
           return addInterceptor(exp, interceptorFn);
 
         default:
-          return noop;
+          return addInterceptor(noop, interceptorFn);
       }
-    };
+    }
+
+    function expensiveChecksInterceptor(fn) {
+      if (!fn) return fn;
+      expensiveCheckFn.$$watchDelegate = fn.$$watchDelegate;
+      expensiveCheckFn.assign = expensiveChecksInterceptor(fn.assign);
+      expensiveCheckFn.constant = fn.constant;
+      expensiveCheckFn.literal = fn.literal;
+      for (var i = 0; fn.inputs && i < fn.inputs.length; ++i) {
+        fn.inputs[i] = expensiveChecksInterceptor(fn.inputs[i]);
+      }
+      expensiveCheckFn.inputs = fn.inputs;
+
+      return expensiveCheckFn;
+
+      function expensiveCheckFn(scope, locals, assign, inputs) {
+        var expensiveCheckOldValue = runningChecksEnabled;
+        runningChecksEnabled = true;
+        try {
+          return fn(scope, locals, assign, inputs);
+        } finally {
+          runningChecksEnabled = expensiveCheckOldValue;
+        }
+      }
+    }
 
     function expressionInputDirtyCheck(newValue, oldValueOfValue) {
 
@@ -23616,13 +24387,9 @@ function $ParseProvider() {
     function constantWatchDelegate(scope, listener, objectEquality, parsedExpression) {
       var unwatch;
       return unwatch = scope.$watch(function constantWatch(scope) {
-        return parsedExpression(scope);
-      }, function constantListener(value, old, scope) {
-        if (isFunction(listener)) {
-          listener.apply(this, arguments);
-        }
         unwatch();
-      }, objectEquality);
+        return parsedExpression(scope);
+      }, listener, objectEquality);
     }
 
     function addInterceptor(parsedExpression, interceptorFn) {
@@ -23715,7 +24482,7 @@ function $ParseProvider() {
  *
  * Note: progress/notify callbacks are not currently supported via the ES6-style interface.
  *
- * Note: unlike ES6 behaviour, an exception thrown in the constructor function will NOT implicitly reject the promise.
+ * Note: unlike ES6 behavior, an exception thrown in the constructor function will NOT implicitly reject the promise.
  *
  * However, the more traditional CommonJS-style usage is still available, and documented below.
  *
@@ -23905,18 +24672,6 @@ function $$QProvider() {
  */
 function qFactory(nextTick, exceptionHandler) {
   var $qMinErr = minErr('$q', TypeError);
-  function callOnce(self, resolveFn, rejectFn) {
-    var called = false;
-    function wrap(fn) {
-      return function(value) {
-        if (called) return;
-        called = true;
-        fn.call(self, value);
-      };
-    }
-
-    return [wrap(resolveFn), wrap(rejectFn)];
-  }
 
   /**
    * @ngdoc method
@@ -23929,7 +24684,12 @@ function qFactory(nextTick, exceptionHandler) {
    * @returns {Deferred} Returns a new instance of deferred.
    */
   var defer = function() {
-    return new Deferred();
+    var d = new Deferred();
+    //Necessary to support unbound execution :/
+    d.resolve = simpleBind(d, d.resolve);
+    d.reject = simpleBind(d, d.reject);
+    d.notify = simpleBind(d, d.notify);
+    return d;
   };
 
   function Promise() {
@@ -24002,10 +24762,6 @@ function qFactory(nextTick, exceptionHandler) {
 
   function Deferred() {
     this.promise = new Promise();
-    //Necessary to support unbound execution :/
-    this.resolve = simpleBind(this, this.resolve);
-    this.reject = simpleBind(this, this.reject);
-    this.notify = simpleBind(this, this.notify);
   }
 
   extend(Deferred.prototype, {
@@ -24023,23 +24779,34 @@ function qFactory(nextTick, exceptionHandler) {
     },
 
     $$resolve: function(val) {
-      var then, fns;
-
-      fns = callOnce(this, this.$$resolve, this.$$reject);
+      var then;
+      var that = this;
+      var done = false;
       try {
         if ((isObject(val) || isFunction(val))) then = val && val.then;
         if (isFunction(then)) {
           this.promise.$$state.status = -1;
-          then.call(val, fns[0], fns[1], this.notify);
+          then.call(val, resolvePromise, rejectPromise, simpleBind(this, this.notify));
         } else {
           this.promise.$$state.value = val;
           this.promise.$$state.status = 1;
           scheduleProcessQueue(this.promise.$$state);
         }
       } catch (e) {
-        fns[1](e);
+        rejectPromise(e);
         exceptionHandler(e);
       }
+
+      function resolvePromise(val) {
+        if (done) return;
+        done = true;
+        that.$$resolve(val);
+      }
+      function rejectPromise(val) {
+        if (done) return;
+        done = true;
+        that.$$reject(val);
+      }
     },
 
     reject: function(reason) {
@@ -24228,11 +24995,6 @@ function qFactory(nextTick, exceptionHandler) {
       throw $qMinErr('norslvr', "Expected resolverFn, got '{0}'", resolver);
     }
 
-    if (!(this instanceof Q)) {
-      // More useful when $Q is the Promise itself.
-      return new Q(resolver);
-    }
-
     var deferred = new Deferred();
 
     function resolveFn(value) {
@@ -24248,6 +25010,10 @@ function qFactory(nextTick, exceptionHandler) {
     return deferred.promise;
   };
 
+  // Let's make the instanceof operator work for promises, so that
+  // `new $q(fn) instanceof $q` would evaluate to true.
+  $Q.prototype = Promise.prototype;
+
   $Q.defer = defer;
   $Q.reject = reject;
   $Q.when = when;
@@ -24381,8 +25147,8 @@ function $RootScopeProvider() {
     return ChildScope;
   }
 
-  this.$get = ['$injector', '$exceptionHandler', '$parse', '$browser',
-      function($injector, $exceptionHandler, $parse, $browser) {
+  this.$get = ['$exceptionHandler', '$parse', '$browser',
+      function($exceptionHandler, $parse, $browser) {
 
     function destroyChildScope($event) {
         $event.currentScope.$$destroyed = true;
@@ -24666,7 +25432,7 @@ function $RootScopeProvider() {
        *    - `newVal` contains the current value of the `watchExpression`
        *    - `oldVal` contains the previous value of the `watchExpression`
        *    - `scope` refers to the current scope
-       * @param {boolean=} objectEquality Compare for object equality using {@link angular.equals} instead of
+       * @param {boolean=} [objectEquality=false] Compare for object equality using {@link angular.equals} instead of
        *     comparing for reference equality.
        * @returns {function()} Returns a deregistration function for this listener.
        */
@@ -25031,7 +25797,7 @@ function $RootScopeProvider() {
        *
        */
       $digest: function() {
-        var watch, value, last,
+        var watch, value, last, fn, get,
             watchers,
             length,
             dirty, ttl = TTL,
@@ -25077,7 +25843,8 @@ function $RootScopeProvider() {
                   // Most common watches are on primitives, in which case we can short
                   // circuit it with === operator, only when === fails do we use .equals
                   if (watch) {
-                    if ((value = watch.get(current)) !== (last = watch.last) &&
+                    get = watch.get;
+                    if ((value = get(current)) !== (last = watch.last) &&
                         !(watch.eq
                             ? equals(value, last)
                             : (typeof value === 'number' && typeof last === 'number'
@@ -25085,7 +25852,8 @@ function $RootScopeProvider() {
                       dirty = true;
                       lastDirtyWatch = watch;
                       watch.last = watch.eq ? copy(value, null) : value;
-                      watch.fn(value, ((last === initWatchVal) ? value : last), current);
+                      fn = watch.fn;
+                      fn(value, ((last === initWatchVal) ? value : last), current);
                       if (ttl < 5) {
                         logIdx = 4 - ttl;
                         if (!watchLog[logIdx]) watchLog[logIdx] = [];
@@ -25285,7 +26053,7 @@ function $RootScopeProvider() {
           });
         }
 
-        asyncQueue.push({scope: this, expression: expr, locals: locals});
+        asyncQueue.push({scope: this, expression: $parse(expr), locals: locals});
       },
 
       $$postDigest: function(fn) {
@@ -25377,6 +26145,7 @@ function $RootScopeProvider() {
       $applyAsync: function(expr) {
         var scope = this;
         expr && applyAsyncQueue.push($applyAsyncExpression);
+        expr = $parse(expr);
         scheduleApplyAsync();
 
         function $applyAsyncExpression() {
@@ -25652,6 +26421,21 @@ function $RootScopeProvider() {
 }
 
 /**
+ * @ngdoc service
+ * @name $rootElement
+ *
+ * @description
+ * The root element of Angular application. This is either the element where {@link
+ * ng.directive:ngApp ngApp} was declared or the element passed into
+ * {@link angular.bootstrap}. The element represents the root element of application. It is also the
+ * location where the application's {@link auto.$injector $injector} service gets
+ * published, and can be retrieved using `$rootElement.injector()`.
+ */
+
+
+// the implementation is in angular.bootstrap
+
+/**
  * @description
  * Private service to sanitize uris for links and images. Used by $compile and $sanitize.
  */
@@ -25865,13 +26649,15 @@ function $SceDelegateProvider() {
    * @kind function
    *
    * @param {Array=} whitelist When provided, replaces the resourceUrlWhitelist with the value
-   *     provided.  This must be an array or null.  A snapshot of this array is used so further
-   *     changes to the array are ignored.
+   *    provided.  This must be an array or null.  A snapshot of this array is used so further
+   *    changes to the array are ignored.
    *
-   *     Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items
-   *     allowed in this array.
+   *    Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items
+   *    allowed in this array.
    *
-   *     Note: **an empty whitelist array will block all URLs**!
+   *    <div class="alert alert-warning">
+   *    **Note:** an empty whitelist array will block all URLs!
+   *    </div>
    *
    * @return {Array} the currently set whitelist array.
    *
@@ -25894,17 +26680,17 @@ function $SceDelegateProvider() {
    * @kind function
    *
    * @param {Array=} blacklist When provided, replaces the resourceUrlBlacklist with the value
-   *     provided.  This must be an array or null.  A snapshot of this array is used so further
-   *     changes to the array are ignored.
+   *    provided.  This must be an array or null.  A snapshot of this array is used so further
+   *    changes to the array are ignored.
    *
-   *     Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items
-   *     allowed in this array.
+   *    Follow {@link ng.$sce#resourceUrlPatternItem this link} for a description of the items
+   *    allowed in this array.
    *
-   *     The typical usage for the blacklist is to **block
-   *     [open redirects](http://cwe.mitre.org/data/definitions/601.html)** served by your domain as
-   *     these would otherwise be trusted but actually return content from the redirected domain.
+   *    The typical usage for the blacklist is to **block
+   *    [open redirects](http://cwe.mitre.org/data/definitions/601.html)** served by your domain as
+   *    these would otherwise be trusted but actually return content from the redirected domain.
    *
-   *     Finally, **the blacklist overrides the whitelist** and has the final say.
+   *    Finally, **the blacklist overrides the whitelist** and has the final say.
    *
    * @return {Array} the currently set blacklist array.
    *
@@ -26063,6 +26849,11 @@ function $SceDelegateProvider() {
      * returns the originally supplied value if the queried context type is a supertype of the
      * created type.  If this condition isn't satisfied, throws an exception.
      *
+     * <div class="alert alert-danger">
+     * Disabling auto-escaping is extremely dangerous, it usually creates a Cross Site Scripting
+     * (XSS) vulnerability in your application.
+     * </div>
+     *
      * @param {string} type The kind of context in which this value is to be used.
      * @param {*} maybeTrusted The result of a prior {@link ng.$sceDelegate#trustAs
      *     `$sceDelegate.trustAs`} call.
@@ -26870,26 +27661,63 @@ function $SnifferProvider() {
 var $compileMinErr = minErr('$compile');
 
 /**
- * @ngdoc service
- * @name $templateRequest
- *
+ * @ngdoc provider
+ * @name $templateRequestProvider
  * @description
- * The `$templateRequest` service runs security checks then downloads the provided template using
- * `$http` and, upon success, stores the contents inside of `$templateCache`. If the HTTP request
- * fails or the response data of the HTTP request is empty, a `$compile` error will be thrown (the
- * exception can be thwarted by setting the 2nd parameter of the function to true). Note that the
- * contents of `$templateCache` are trusted, so the call to `$sce.getTrustedUrl(tpl)` is omitted
- * when `tpl` is of type string and `$templateCache` has the matching entry.
- *
- * @param {string|TrustedResourceUrl} tpl The HTTP request template URL
- * @param {boolean=} ignoreRequestError Whether or not to ignore the exception when the request fails or the template is empty
- *
- * @return {Promise} a promise for the HTTP response data of the given URL.
+ * Used to configure the options passed to the {@link $http} service when making a template request.
  *
- * @property {number} totalPendingRequests total amount of pending template requests being downloaded.
+ * For example, it can be used for specifying the "Accept" header that is sent to the server, when
+ * requesting a template.
  */
 function $TemplateRequestProvider() {
+
+  var httpOptions;
+
+  /**
+   * @ngdoc method
+   * @name $templateRequestProvider#httpOptions
+   * @description
+   * The options to be passed to the {@link $http} service when making the request.
+   * You can use this to override options such as the "Accept" header for template requests.
+   *
+   * The {@link $templateRequest} will set the `cache` and the `transformResponse` properties of the
+   * options if not overridden here.
+   *
+   * @param {string=} value new value for the {@link $http} options.
+   * @returns {string|self} Returns the {@link $http} options when used as getter and self if used as setter.
+   */
+  this.httpOptions = function(val) {
+    if (val) {
+      httpOptions = val;
+      return this;
+    }
+    return httpOptions;
+  };
+
+  /**
+   * @ngdoc service
+   * @name $templateRequest
+   *
+   * @description
+   * The `$templateRequest` service runs security checks then downloads the provided template using
+   * `$http` and, upon success, stores the contents inside of `$templateCache`. If the HTTP request
+   * fails or the response data of the HTTP request is empty, a `$compile` error will be thrown (the
+   * exception can be thwarted by setting the 2nd parameter of the function to true). Note that the
+   * contents of `$templateCache` are trusted, so the call to `$sce.getTrustedUrl(tpl)` is omitted
+   * when `tpl` is of type string and `$templateCache` has the matching entry.
+   *
+   * If you want to pass custom options to the `$http` service, such as setting the Accept header you
+   * can configure this via {@link $templateRequestProvider#httpOptions}.
+   *
+   * @param {string|TrustedResourceUrl} tpl The HTTP request template URL
+   * @param {boolean=} ignoreRequestError Whether or not to ignore the exception when the request fails or the template is empty
+   *
+   * @return {Promise} a promise for the HTTP response data of the given URL.
+   *
+   * @property {number} totalPendingRequests total amount of pending template requests being downloaded.
+   */
   this.$get = ['$templateCache', '$http', '$q', '$sce', function($templateCache, $http, $q, $sce) {
+
     function handleRequestFn(tpl, ignoreRequestError) {
       handleRequestFn.totalPendingRequests++;
 
@@ -26912,12 +27740,10 @@ function $TemplateRequestProvider() {
         transformResponse = null;
       }
 
-      var httpOptions = {
-        cache: $templateCache,
-        transformResponse: transformResponse
-      };
-
-      return $http.get(tpl, httpOptions)
+      return $http.get(tpl, extend({
+          cache: $templateCache,
+          transformResponse: transformResponse
+        }, httpOptions))
         ['finally'](function() {
           handleRequestFn.totalPendingRequests--;
         })
@@ -27088,8 +27914,8 @@ function $TimeoutProvider() {
       * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise
       *   will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block.
       * @param {...*=} Pass additional parameters to the executed function.
-      * @returns {Promise} Promise that will be resolved when the timeout is reached. The value this
-      *   promise will be resolved with is the return value of the `fn` function.
+      * @returns {Promise} Promise that will be resolved when the timeout is reached. The promise
+      *   will be resolved with the return value of the `fn` function.
       *
       */
     function timeout(fn, delay, invokeApply) {
@@ -27765,6 +28591,10 @@ function getTypeForFilter(val) {
   return (val === null) ? 'null' : typeof val;
 }
 
+var MAX_DIGITS = 22;
+var DECIMAL_SEP = '.';
+var ZERO_CHAR = '0';
+
 /**
  * @ngdoc filter
  * @name currency
@@ -27854,7 +28684,7 @@ function currencyFilter($locale) {
  * @param {(number|string)=} fractionSize Number of decimal places to round the number to.
  * If this is not provided then the fraction size is computed from the current locale's number
  * formatting pattern. In the case of the default locale, it will be 3.
- * @returns {string} Number rounded to decimalPlaces and places a “,” after each third digit.
+ * @returns {string} Number rounded to fractionSize and places a “,” after each third digit.
  *
  * @example
    <example module="numberFilterExample">
@@ -27889,8 +28719,6 @@ function currencyFilter($locale) {
      </file>
    </example>
  */
-
-
 numberFilter.$inject = ['$locale'];
 function numberFilter($locale) {
   var formats = $locale.NUMBER_FORMATS;
@@ -27904,93 +28732,194 @@ function numberFilter($locale) {
   };
 }
 
-var DECIMAL_SEP = '.';
-function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {
-  if (isObject(number)) return '';
+/**
+ * Parse a number (as a string) into three components that can be used
+ * for formatting the number.
+ *
+ * (Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/)
+ *
+ * @param  {string} numStr The number to parse
+ * @return {object} An object describing this number, containing the following keys:
+ *  - d : an array of digits containing leading zeros as necessary
+ *  - i : the number of the digits in `d` that are to the left of the decimal point
+ *  - e : the exponent for numbers that would need more than `MAX_DIGITS` digits in `d`
+ *
+ */
+function parse(numStr) {
+  var exponent = 0, digits, numberOfIntegerDigits;
+  var i, j, zeros;
 
-  var isNegative = number < 0;
-  number = Math.abs(number);
+  // Decimal point?
+  if ((numberOfIntegerDigits = numStr.indexOf(DECIMAL_SEP)) > -1) {
+    numStr = numStr.replace(DECIMAL_SEP, '');
+  }
 
-  var isInfinity = number === Infinity;
-  if (!isInfinity && !isFinite(number)) return '';
+  // Exponential form?
+  if ((i = numStr.search(/e/i)) > 0) {
+    // Work out the exponent.
+    if (numberOfIntegerDigits < 0) numberOfIntegerDigits = i;
+    numberOfIntegerDigits += +numStr.slice(i + 1);
+    numStr = numStr.substring(0, i);
+  } else if (numberOfIntegerDigits < 0) {
+    // There was no decimal point or exponent so it is an integer.
+    numberOfIntegerDigits = numStr.length;
+  }
 
-  var numStr = number + '',
-      formatedText = '',
-      hasExponent = false,
-      parts = [];
+  // Count the number of leading zeros.
+  for (i = 0; numStr.charAt(i) == ZERO_CHAR; i++);
 
-  if (isInfinity) formatedText = '\u221e';
+  if (i == (zeros = numStr.length)) {
+    // The digits are all zero.
+    digits = [0];
+    numberOfIntegerDigits = 1;
+  } else {
+    // Count the number of trailing zeros
+    zeros--;
+    while (numStr.charAt(zeros) == ZERO_CHAR) zeros--;
 
-  if (!isInfinity && numStr.indexOf('e') !== -1) {
-    var match = numStr.match(/([\d\.]+)e(-?)(\d+)/);
-    if (match && match[2] == '-' && match[3] > fractionSize + 1) {
-      number = 0;
-    } else {
-      formatedText = numStr;
-      hasExponent = true;
+    // Trailing zeros are insignificant so ignore them
+    numberOfIntegerDigits -= i;
+    digits = [];
+    // Convert string to array of digits without leading/trailing zeros.
+    for (j = 0; i <= zeros; i++, j++) {
+      digits[j] = +numStr.charAt(i);
     }
   }
 
-  if (!isInfinity && !hasExponent) {
-    var fractionLen = (numStr.split(DECIMAL_SEP)[1] || '').length;
+  // If the number overflows the maximum allowed digits then use an exponent.
+  if (numberOfIntegerDigits > MAX_DIGITS) {
+    digits = digits.splice(0, MAX_DIGITS - 1);
+    exponent = numberOfIntegerDigits - 1;
+    numberOfIntegerDigits = 1;
+  }
 
-    // determine fractionSize if it is not specified
-    if (isUndefined(fractionSize)) {
-      fractionSize = Math.min(Math.max(pattern.minFrac, fractionLen), pattern.maxFrac);
+  return { d: digits, e: exponent, i: numberOfIntegerDigits };
+}
+
+/**
+ * Round the parsed number to the specified number of decimal places
+ * This function changed the parsedNumber in-place
+ */
+function roundNumber(parsedNumber, fractionSize, minFrac, maxFrac) {
+    var digits = parsedNumber.d;
+    var fractionLen = digits.length - parsedNumber.i;
+
+    // determine fractionSize if it is not specified; `+fractionSize` converts it to a number
+    fractionSize = (isUndefined(fractionSize)) ? Math.min(Math.max(minFrac, fractionLen), maxFrac) : +fractionSize;
+
+    // The index of the digit to where rounding is to occur
+    var roundAt = fractionSize + parsedNumber.i;
+    var digit = digits[roundAt];
+
+    if (roundAt > 0) {
+      digits.splice(roundAt);
+    } else {
+      // We rounded to zero so reset the parsedNumber
+      parsedNumber.i = 1;
+      digits.length = roundAt = fractionSize + 1;
+      for (var i=0; i < roundAt; i++) digits[i] = 0;
     }
 
-    // safely round numbers in JS without hitting imprecisions of floating-point arithmetics
-    // inspired by:
-    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
-    number = +(Math.round(+(number.toString() + 'e' + fractionSize)).toString() + 'e' + -fractionSize);
+    if (digit >= 5) digits[roundAt - 1]++;
 
-    var fraction = ('' + number).split(DECIMAL_SEP);
-    var whole = fraction[0];
-    fraction = fraction[1] || '';
+    // Pad out with zeros to get the required fraction length
+    for (; fractionLen < fractionSize; fractionLen++) digits.push(0);
 
-    var i, pos = 0,
-        lgroup = pattern.lgSize,
-        group = pattern.gSize;
 
-    if (whole.length >= (lgroup + group)) {
-      pos = whole.length - lgroup;
-      for (i = 0; i < pos; i++) {
-        if ((pos - i) % group === 0 && i !== 0) {
-          formatedText += groupSep;
-        }
-        formatedText += whole.charAt(i);
-      }
+    // Do any carrying, e.g. a digit was rounded up to 10
+    var carry = digits.reduceRight(function(carry, d, i, digits) {
+      d = d + carry;
+      digits[i] = d % 10;
+      return Math.floor(d / 10);
+    }, 0);
+    if (carry) {
+      digits.unshift(carry);
+      parsedNumber.i++;
     }
+}
 
-    for (i = pos; i < whole.length; i++) {
-      if ((whole.length - i) % lgroup === 0 && i !== 0) {
-        formatedText += groupSep;
-      }
-      formatedText += whole.charAt(i);
+/**
+ * Format a number into a string
+ * @param  {number} number       The number to format
+ * @param  {{
+ *           minFrac, // the minimum number of digits required in the fraction part of the number
+ *           maxFrac, // the maximum number of digits required in the fraction part of the number
+ *           gSize,   // number of digits in each group of separated digits
+ *           lgSize,  // number of digits in the last group of digits before the decimal separator
+ *           negPre,  // the string to go in front of a negative number (e.g. `-` or `(`))
+ *           posPre,  // the string to go in front of a positive number
+ *           negSuf,  // the string to go after a negative number (e.g. `)`)
+ *           posSuf   // the string to go after a positive number
+ *         }} pattern
+ * @param  {string} groupSep     The string to separate groups of number (e.g. `,`)
+ * @param  {string} decimalSep   The string to act as the decimal separator (e.g. `.`)
+ * @param  {[type]} fractionSize The size of the fractional part of the number
+ * @return {string}              The number formatted as a string
+ */
+function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {
+
+  if (!(isString(number) || isNumber(number)) || isNaN(number)) return '';
+
+  var isInfinity = !isFinite(number);
+  var isZero = false;
+  var numStr = Math.abs(number) + '',
+      formattedText = '',
+      parsedNumber;
+
+  if (isInfinity) {
+    formattedText = '\u221e';
+  } else {
+    parsedNumber = parse(numStr);
+
+    roundNumber(parsedNumber, fractionSize, pattern.minFrac, pattern.maxFrac);
+
+    var digits = parsedNumber.d;
+    var integerLen = parsedNumber.i;
+    var exponent = parsedNumber.e;
+    var decimals = [];
+    isZero = digits.reduce(function(isZero, d) { return isZero && !d; }, true);
+
+    // pad zeros for small numbers
+    while (integerLen < 0) {
+      digits.unshift(0);
+      integerLen++;
     }
 
-    // format fraction part.
-    while (fraction.length < fractionSize) {
-      fraction += '0';
+    // extract decimals digits
+    if (integerLen > 0) {
+      decimals = digits.splice(integerLen);
+    } else {
+      decimals = digits;
+      digits = [0];
     }
 
-    if (fractionSize && fractionSize !== "0") formatedText += decimalSep + fraction.substr(0, fractionSize);
-  } else {
-    if (fractionSize > 0 && number < 1) {
-      formatedText = number.toFixed(fractionSize);
-      number = parseFloat(formatedText);
-      formatedText = formatedText.replace(DECIMAL_SEP, decimalSep);
+    // format the integer digits with grouping separators
+    var groups = [];
+    if (digits.length > pattern.lgSize) {
+      groups.unshift(digits.splice(-pattern.lgSize).join(''));
     }
-  }
+    while (digits.length > pattern.gSize) {
+      groups.unshift(digits.splice(-pattern.gSize).join(''));
+    }
+    if (digits.length) {
+      groups.unshift(digits.join(''));
+    }
+    formattedText = groups.join(groupSep);
 
-  if (number === 0) {
-    isNegative = false;
-  }
+    // append the decimal digits
+    if (decimals.length) {
+      formattedText += decimalSep + decimals.join('');
+    }
 
-  parts.push(isNegative ? pattern.negPre : pattern.posPre,
-             formatedText,
-             isNegative ? pattern.negSuf : pattern.posSuf);
-  return parts.join('');
+    if (exponent) {
+      formattedText += 'e+' + exponent;
+    }
+  }
+  if (number < 0 && !isZero) {
+    return pattern.negPre + formattedText + pattern.negSuf;
+  } else {
+    return pattern.posPre + formattedText + pattern.posSuf;
+  }
 }
 
 function padNumber(num, digits, trim) {
@@ -28000,7 +28929,7 @@ function padNumber(num, digits, trim) {
     num = -num;
   }
   num = '' + num;
-  while (num.length < digits) num = '0' + num;
+  while (num.length < digits) num = ZERO_CHAR + num;
   if (trim) {
     num = num.substr(num.length - digits);
   }
@@ -28269,13 +29198,13 @@ function dateFilter($locale) {
 
     var dateTimezoneOffset = date.getTimezoneOffset();
     if (timezone) {
-      dateTimezoneOffset = timezoneToOffset(timezone, date.getTimezoneOffset());
+      dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);
       date = convertTimezoneToLocal(date, timezone, true);
     }
     forEach(parts, function(value) {
       fn = DATE_FORMATS[value];
       text += fn ? fn(date, $locale.DATETIME_FORMATS, dateTimezoneOffset)
-                 : value.replace(/(^'|'$)/g, '').replace(/''/g, "'");
+                 : value === "''" ? "'" : value.replace(/(^'|'$)/g, '').replace(/''/g, "'");
     });
 
     return text;
@@ -28479,8 +29408,9 @@ function limitToFilter() {
  * Orders a specified `array` by the `expression` predicate. It is ordered alphabetically
  * for strings and numerically for numbers. Note: if you notice numbers are not being sorted
  * as expected, make sure they are actually being saved as numbers and not strings.
+ * Array-like values (e.g. NodeLists, jQuery objects, TypedArrays, Strings, etc) are also supported.
  *
- * @param {Array} array The array to sort.
+ * @param {Array} array The array (or array-like object) to sort.
  * @param {function(*)|string|Array.<(function(*)|string)>=} expression A predicate to be
  *    used by the comparator to determine the order of elements.
  *
@@ -28511,17 +29441,6 @@ function limitToFilter() {
  * `reverse` is not set, which means it defaults to `false`.
    <example module="orderByExample">
      <file name="index.html">
-       <script>
-         angular.module('orderByExample', [])
-           .controller('ExampleController', ['$scope', function($scope) {
-             $scope.friends =
-                 [{name:'John', phone:'555-1212', age:10},
-                  {name:'Mary', phone:'555-9876', age:19},
-                  {name:'Mike', phone:'555-4321', age:21},
-                  {name:'Adam', phone:'555-5678', age:35},
-                  {name:'Julie', phone:'555-8765', age:29}];
-           }]);
-       </script>
        <div ng-controller="ExampleController">
          <table class="friend">
            <tr>
@@ -28537,6 +29456,17 @@ function limitToFilter() {
          </table>
        </div>
      </file>
+     <file name="script.js">
+       angular.module('orderByExample', [])
+         .controller('ExampleController', ['$scope', function($scope) {
+           $scope.friends =
+               [{name:'John', phone:'555-1212', age:10},
+                {name:'Mary', phone:'555-9876', age:19},
+                {name:'Mike', phone:'555-4321', age:21},
+                {name:'Adam', phone:'555-5678', age:35},
+                {name:'Julie', phone:'555-8765', age:29}];
+         }]);
+     </file>
    </example>
  *
  * The predicate and reverse parameters can be controlled dynamically through scope properties,
@@ -28544,49 +29474,24 @@ function limitToFilter() {
  * @example
    <example module="orderByExample">
      <file name="index.html">
-       <script>
-         angular.module('orderByExample', [])
-           .controller('ExampleController', ['$scope', function($scope) {
-             $scope.friends =
-                 [{name:'John', phone:'555-1212', age:10},
-                  {name:'Mary', phone:'555-9876', age:19},
-                  {name:'Mike', phone:'555-4321', age:21},
-                  {name:'Adam', phone:'555-5678', age:35},
-                  {name:'Julie', phone:'555-8765', age:29}];
-             $scope.predicate = 'age';
-             $scope.reverse = true;
-             $scope.order = function(predicate) {
-               $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
-               $scope.predicate = predicate;
-             };
-           }]);
-       </script>
-       <style type="text/css">
-         .sortorder:after {
-           content: '\25b2';
-         }
-         .sortorder.reverse:after {
-           content: '\25bc';
-         }
-       </style>
        <div ng-controller="ExampleController">
          <pre>Sorting predicate = {{predicate}}; reverse = {{reverse}}</pre>
          <hr/>
-         [ <a href="" ng-click="predicate=''">unsorted</a> ]
+         <button ng-click="predicate=''">Set to unsorted</button>
          <table class="friend">
            <tr>
-             <th>
-               <a href="" ng-click="order('name')">Name</a>
-               <span class="sortorder" ng-show="predicate === 'name'" ng-class="{reverse:reverse}"></span>
-             </th>
-             <th>
-               <a href="" ng-click="order('phone')">Phone Number</a>
-               <span class="sortorder" ng-show="predicate === 'phone'" ng-class="{reverse:reverse}"></span>
-             </th>
-             <th>
-               <a href="" ng-click="order('age')">Age</a>
-               <span class="sortorder" ng-show="predicate === 'age'" ng-class="{reverse:reverse}"></span>
-             </th>
+            <th>
+                <button ng-click="order('name')">Name</button>
+                <span class="sortorder" ng-show="predicate === 'name'" ng-class="{reverse:reverse}"></span>
+            </th>
+            <th>
+                <button ng-click="order('phone')">Phone Number</button>
+                <span class="sortorder" ng-show="predicate === 'phone'" ng-class="{reverse:reverse}"></span>
+            </th>
+            <th>
+                <button ng-click="order('age')">Age</button>
+                <span class="sortorder" ng-show="predicate === 'age'" ng-class="{reverse:reverse}"></span>
+            </th>
            </tr>
            <tr ng-repeat="friend in friends | orderBy:predicate:reverse">
              <td>{{friend.name}}</td>
@@ -28596,6 +29501,31 @@ function limitToFilter() {
          </table>
        </div>
      </file>
+     <file name="script.js">
+       angular.module('orderByExample', [])
+         .controller('ExampleController', ['$scope', function($scope) {
+           $scope.friends =
+               [{name:'John', phone:'555-1212', age:10},
+                {name:'Mary', phone:'555-9876', age:19},
+                {name:'Mike', phone:'555-4321', age:21},
+                {name:'Adam', phone:'555-5678', age:35},
+                {name:'Julie', phone:'555-8765', age:29}];
+           $scope.predicate = 'age';
+           $scope.reverse = true;
+           $scope.order = function(predicate) {
+             $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
+             $scope.predicate = predicate;
+           };
+         }]);
+      </file>
+     <file name="style.css">
+       .sortorder:after {
+         content: '\25b2';
+       }
+       .sortorder.reverse:after {
+         content: '\25bc';
+       }
+     </file>
    </example>
  *
  * It's also possible to call the orderBy filter manually, by injecting `$filter`, retrieving the
@@ -28607,21 +29537,30 @@ function limitToFilter() {
  * @example
   <example module="orderByExample">
     <file name="index.html">
-      <div ng-controller="ExampleController">
-        <table class="friend">
-          <tr>
-            <th><a href="" ng-click="reverse=false;order('name', false)">Name</a>
-              (<a href="" ng-click="order('-name',false)">^</a>)</th>
-            <th><a href="" ng-click="reverse=!reverse;order('phone', reverse)">Phone Number</a></th>
-            <th><a href="" ng-click="reverse=!reverse;order('age',reverse)">Age</a></th>
-          </tr>
-          <tr ng-repeat="friend in friends">
-            <td>{{friend.name}}</td>
-            <td>{{friend.phone}}</td>
-            <td>{{friend.age}}</td>
-          </tr>
-        </table>
-      </div>
+    <div ng-controller="ExampleController">
+      <pre>Sorting predicate = {{predicate}}; reverse = {{reverse}}</pre>
+      <table class="friend">
+        <tr>
+          <th>
+              <button ng-click="order('name')">Name</button>
+              <span class="sortorder" ng-show="predicate === 'name'" ng-class="{reverse:reverse}"></span>
+          </th>
+          <th>
+              <button ng-click="order('phone')">Phone Number</button>
+              <span class="sortorder" ng-show="predicate === 'phone'" ng-class="{reverse:reverse}"></span>
+          </th>
+          <th>
+              <button ng-click="order('age')">Age</button>
+              <span class="sortorder" ng-show="predicate === 'age'" ng-class="{reverse:reverse}"></span>
+          </th>
+        </tr>
+        <tr ng-repeat="friend in friends">
+          <td>{{friend.name}}</td>
+          <td>{{friend.phone}}</td>
+          <td>{{friend.age}}</td>
+        </tr>
+      </table>
+    </div>
     </file>
 
     <file name="script.js">
@@ -28635,19 +29574,33 @@ function limitToFilter() {
             { name: 'Adam',    phone: '555-5678',    age: 35 },
             { name: 'Julie',   phone: '555-8765',    age: 29 }
           ];
-          $scope.order = function(predicate, reverse) {
-            $scope.friends = orderBy($scope.friends, predicate, reverse);
+          $scope.order = function(predicate) {
+            $scope.predicate = predicate;
+            $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
+            $scope.friends = orderBy($scope.friends, predicate, $scope.reverse);
           };
-          $scope.order('-age',false);
+          $scope.order('age', true);
         }]);
     </file>
+
+    <file name="style.css">
+       .sortorder:after {
+         content: '\25b2';
+       }
+       .sortorder.reverse:after {
+         content: '\25bc';
+       }
+    </file>
 </example>
  */
 orderByFilter.$inject = ['$parse'];
 function orderByFilter($parse) {
   return function(array, sortPredicate, reverseOrder) {
 
-    if (!(isArrayLike(array))) return array;
+    if (array == null) return array;
+    if (!isArrayLike(array)) {
+      throw minErr('orderBy')('notarray', 'Expected array but received: {0}', array);
+    }
 
     if (!isArray(sortPredicate)) { sortPredicate = [sortPredicate]; }
     if (sortPredicate.length === 0) { sortPredicate = ['+']; }
@@ -28970,20 +29923,7 @@ var htmlAnchorDirective = valueFn({
  * {@link guide/expression expression} inside `ngDisabled` evaluates to truthy.
  *
  * A special directive is necessary because we cannot use interpolation inside the `disabled`
- * attribute.  The following example would make the button enabled on Chrome/Firefox
- * but not on older IEs:
- *
- * ```html
- * <!-- See below for an example of ng-disabled being used correctly -->
- * <div ng-init="isDisabled = false">
- *  <button disabled="{{isDisabled}}">Disabled</button>
- * </div>
- * ```
- *
- * This is because the HTML specification does not require browsers to preserve the values of
- * boolean attributes such as `disabled` (Their presence means true and their absence means false.)
- * If we put an Angular interpolation expression into such an attribute then the
- * binding information would be lost when the browser removes the attribute.
+ * attribute. See the {@link guide/interpolation interpolation guide} for more info.
  *
  * @example
     <example>
@@ -29018,15 +29958,9 @@ var htmlAnchorDirective = valueFn({
  * Note that this directive should not be used together with {@link ngModel `ngModel`},
  * as this can lead to unexpected behavior.
  *
- * ### Why do we need `ngChecked`?
+ * A special directive is necessary because we cannot use interpolation inside the `checked`
+ * attribute. See the {@link guide/interpolation interpolation guide} for more info.
  *
- * The HTML specification does not require browsers to preserve the values of boolean attributes
- * such as checked. (Their presence means true and their absence means false.)
- * If we put an Angular interpolation expression into such an attribute then the
- * binding information would be lost when the browser removes the attribute.
- * The `ngChecked` directive solves this problem for the `checked` attribute.
- * This complementary directive is not removed by the browser and so provides
- * a permanent reliable place to store the binding information.
  * @example
     <example>
       <file name="index.html">
@@ -29055,13 +29989,12 @@ var htmlAnchorDirective = valueFn({
  * @priority 100
  *
  * @description
- * The HTML specification does not require browsers to preserve the values of boolean attributes
- * such as readonly. (Their presence means true and their absence means false.)
- * If we put an Angular interpolation expression into such an attribute then the
- * binding information would be lost when the browser removes the attribute.
- * The `ngReadonly` directive solves this problem for the `readonly` attribute.
- * This complementary directive is not removed by the browser and so provides
- * a permanent reliable place to store the binding information.
+ *
+ * Sets the `readOnly` attribute on the element, if the expression inside `ngReadonly` is truthy.
+ *
+ * A special directive is necessary because we cannot use interpolation inside the `readOnly`
+ * attribute. See the {@link guide/interpolation interpolation guide} for more info.
+ *
  * @example
     <example>
       <file name="index.html">
@@ -29090,13 +30023,11 @@ var htmlAnchorDirective = valueFn({
  * @priority 100
  *
  * @description
- * The HTML specification does not require browsers to preserve the values of boolean attributes
- * such as selected. (Their presence means true and their absence means false.)
- * If we put an Angular interpolation expression into such an attribute then the
- * binding information would be lost when the browser removes the attribute.
- * The `ngSelected` directive solves this problem for the `selected` attribute.
- * This complementary directive is not removed by the browser and so provides
- * a permanent reliable place to store the binding information.
+ *
+ * Sets the `selected` attribute on the element, if the expression inside `ngSelected` is truthy.
+ *
+ * A special directive is necessary because we cannot use interpolation inside the `selected`
+ * attribute. See the {@link guide/interpolation interpolation guide} for more info.
  *
  * @example
     <example>
@@ -29128,13 +30059,12 @@ var htmlAnchorDirective = valueFn({
  * @priority 100
  *
  * @description
- * The HTML specification does not require browsers to preserve the values of boolean attributes
- * such as open. (Their presence means true and their absence means false.)
- * If we put an Angular interpolation expression into such an attribute then the
- * binding information would be lost when the browser removes the attribute.
- * The `ngOpen` directive solves this problem for the `open` attribute.
- * This complementary directive is not removed by the browser and so provides
- * a permanent reliable place to store the binding information.
+ *
+ * Sets the `open` attribute on the element, if the expression inside `ngOpen` is truthy.
+ *
+ * A special directive is necessary because we cannot use interpolation inside the `open`
+ * attribute. See the {@link guide/interpolation interpolation guide} for more info.
+ *
  * @example
      <example>
        <file name="index.html">
@@ -29380,7 +30310,7 @@ function FormController(element, attrs, $scope, $animate, $interpolate) {
    *
    * However, if the method is used programmatically, for example by adding dynamically created controls,
    * or controls that have been previously removed without destroying their corresponding DOM element,
-   * it's the developers responsiblity to make sure the current state propagates to the parent form.
+   * it's the developers responsibility to make sure the current state propagates to the parent form.
    *
    * For example, if an input control is added that is already `$dirty` and has `$error` properties,
    * calling `$setDirty()` and `$validate()` afterwards will propagate the state to the parent form.
@@ -29590,13 +30520,9 @@ function FormController(element, attrs, $scope, $animate, $interpolate) {
  *
  * In Angular, forms can be nested. This means that the outer form is valid when all of the child
  * forms are valid as well. However, browsers do not allow nesting of `<form>` elements, so
- * Angular provides the {@link ng.directive:ngForm `ngForm`} directive which behaves identically to
- * `<form>` but can be nested.  This allows you to have nested forms, which is very useful when
- * using Angular validation directives in forms that are dynamically generated using the
- * {@link ng.directive:ngRepeat `ngRepeat`} directive. Since you cannot dynamically generate the `name`
- * attribute of input elements using interpolation, you have to wrap each set of repeated inputs in an
- * `ngForm` directive and nest these in an outer `form` element.
- *
+ * Angular provides the {@link ng.directive:ngForm `ngForm`} directive, which behaves identically to
+ * `form` but can be nested. Nested forms can be useful, for example, if the validity of a sub-group
+ * of controls needs to be determined.
  *
  * # CSS classes
  *  - `ng-valid` is set if the form is valid.
@@ -29817,7 +30743,18 @@ var ngFormDirective = formDirectiveFactory(true);
 // Regex code is obtained from SO: https://stackoverflow.com/questions/3143070/javascript-regex-iso-datetime#answer-3143231
 var ISO_DATE_REGEXP = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;
 // See valid URLs in RFC3987 (http://tools.ietf.org/html/rfc3987)
-var URL_REGEXP = /^[A-Za-z][A-Za-z\d.+-]*:\/*(?:\w+(?::\w+)?@)?[^\s/]+(?::\d+)?(?:\/[\w#!:.?+=&%@\-/]*)?$/;
+// Note: We are being more lenient, because browsers are too.
+//   1. Scheme
+//   2. Slashes
+//   3. Username
+//   4. Password
+//   5. Hostname
+//   6. Port
+//   7. Path
+//   8. Query
+//   9. Fragment
+//                 1111111111111111 222   333333    44444        555555555555555555555555    666     77777777     8888888     999
+var URL_REGEXP = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i;
 var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;
 var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/;
 var DATE_REGEXP = /^(\d{4})-(\d{2})-(\d{2})$/;
@@ -29850,8 +30787,8 @@ var inputType = {
    * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string
    *    that contains the regular expression body that will be converted to a regular expression
    *    as in the ngPattern directive.
-   * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match
-   *    a RegExp found by evaluating the Angular expression given in the attribute value.
+   * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue}
+   *    does not match a RegExp found by evaluating the Angular expression given in the attribute value.
    *    If the expression evaluates to a RegExp object, then this is used directly.
    *    If the expression evaluates to a string, then it will be converted to a RegExp
    *    after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to
@@ -30138,7 +31075,7 @@ var inputType = {
    *
    * @description
    * Input with time validation and transformation. In browsers that do not yet support
-   * the HTML5 date input, a text element will be used. In that case, the text must be entered in a valid ISO-8601
+   * the HTML5 time input, a text element will be used. In that case, the text must be entered in a valid ISO-8601
    * local time format (HH:mm:ss), for example: `14:57:00`. Model must be a Date object. This binding will always output a
    * Date object to the model of January 1, 1970, or local date `new Date(1970, 0, 1, HH, mm, ss)`.
    *
@@ -30485,8 +31422,8 @@ var inputType = {
    * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string
    *    that contains the regular expression body that will be converted to a regular expression
    *    as in the ngPattern directive.
-   * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match
-   *    a RegExp found by evaluating the Angular expression given in the attribute value.
+   * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue}
+   *    does not match a RegExp found by evaluating the Angular expression given in the attribute value.
    *    If the expression evaluates to a RegExp object, then this is used directly.
    *    If the expression evaluates to a string, then it will be converted to a RegExp
    *    after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to
@@ -30583,8 +31520,8 @@ var inputType = {
    * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string
    *    that contains the regular expression body that will be converted to a regular expression
    *    as in the ngPattern directive.
-   * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match
-   *    a RegExp found by evaluating the Angular expression given in the attribute value.
+   * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue}
+   *    does not match a RegExp found by evaluating the Angular expression given in the attribute value.
    *    If the expression evaluates to a RegExp object, then this is used directly.
    *    If the expression evaluates to a string, then it will be converted to a RegExp
    *    after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to
@@ -30682,8 +31619,8 @@ var inputType = {
    * @param {string=} pattern Similar to `ngPattern` except that the attribute value is the actual string
    *    that contains the regular expression body that will be converted to a regular expression
    *    as in the ngPattern directive.
-   * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match
-   *    a RegExp found by evaluating the Angular expression given in the attribute value.
+   * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue}
+   *    does not match a RegExp found by evaluating the Angular expression given in the attribute value.
    *    If the expression evaluates to a RegExp object, then this is used directly.
    *    If the expression evaluates to a string, then it will be converted to a RegExp
    *    after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to
@@ -31143,11 +32080,7 @@ function badInputChecker(scope, element, attr, ctrl) {
   if (nativeValidation) {
     ctrl.$parsers.push(function(value) {
       var validity = element.prop(VALIDITY_STATE_PROPERTY) || {};
-      // Detect bug in FF35 for input[email] (https://bugzilla.mozilla.org/show_bug.cgi?id=1064430):
-      // - also sets validity.badInput (should only be validity.typeMismatch).
-      // - see http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#e-mail-state-(type=email)
-      // - can ignore this case as we can still read out the erroneous email...
-      return validity.badInput && !validity.typeMismatch ? undefined : value;
+      return validity.badInput || validity.typeMismatch ? undefined : value;
     });
   }
 }
@@ -31319,8 +32252,8 @@ function checkboxInputType(scope, element, attr, ctrl, $sniffer, $browser, $filt
  * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than
  *    maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any
  *    length.
- * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match
- *    a RegExp found by evaluating the Angular expression given in the attribute value.
+ * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue}
+ *    does not match a RegExp found by evaluating the Angular expression given in the attribute value.
  *    If the expression evaluates to a RegExp object, then this is used directly.
  *    If the expression evaluates to a string, then it will be converted to a RegExp
  *    after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to
@@ -31358,8 +32291,8 @@ function checkboxInputType(scope, element, attr, ctrl, $sniffer, $browser, $filt
  * @param {number=} ngMaxlength Sets `maxlength` validation error key if the value is longer than
  *    maxlength. Setting the attribute to a negative or non-numeric value, allows view values of any
  *    length.
- * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match
- *    a RegExp found by evaluating the Angular expression given in the attribute value.
+ * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel {@link ngModel.NgModelController#$viewValue $viewValue}
+ *    value does not match a RegExp found by evaluating the Angular expression given in the attribute value.
  *    If the expression evaluates to a RegExp object, then this is used directly.
  *    If the expression evaluates to a string, then it will be converted to a RegExp
  *    after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to
@@ -32585,7 +33518,7 @@ var ngControllerDirective = [function() {
  *
  * * no-inline-style: this stops Angular from injecting CSS styles into the DOM
  *
- * * no-unsafe-eval: this stops Angular from optimising $parse with unsafe eval of strings
+ * * no-unsafe-eval: this stops Angular from optimizing $parse with unsafe eval of strings
  *
  * You can use these values in the following combinations:
  *
@@ -32602,7 +33535,7 @@ var ngControllerDirective = [function() {
  * inline styles. E.g. `<body ng-csp="no-unsafe-eval">`.
  *
  * * Specifying only `no-inline-style` tells Angular that we must not inject styles, but that we can
- * run eval - no automcatic check for unsafe eval will occur. E.g. `<body ng-csp="no-inline-style">`
+ * run eval - no automatic check for unsafe eval will occur. E.g. `<body ng-csp="no-inline-style">`
  *
  * * Specifying both `no-unsafe-eval` and `no-inline-style` tells Angular that we must not inject
  * styles nor use eval, which is the same as an empty: ng-csp.
@@ -33581,6 +34514,8 @@ var ngIncludeDirective = ['$templateRequest', '$anchorScroll', '$animate',
             //set the 2nd param to true to ignore the template request error so that the inner
             //contents and scope can be cleaned up.
             $templateRequest(src, true).then(function(response) {
+              if (scope.$$destroyed) return;
+
               if (thisChangeId !== changeCounter) return;
               var newScope = scope.$new();
               ctrl.template = response;
@@ -33602,6 +34537,8 @@ var ngIncludeDirective = ['$templateRequest', '$anchorScroll', '$animate',
               currentScope.$emit('$includeContentLoaded', src);
               scope.$eval(onloadExp);
             }, function() {
+              if (scope.$$destroyed) return;
+
               if (thisChangeId === changeCounter) {
                 cleanupLastIncludeContent();
                 scope.$emit('$includeContentError', src);
@@ -33630,7 +34567,7 @@ var ngIncludeFillContentDirective = ['$compile',
       priority: -400,
       require: 'ngInclude',
       link: function(scope, $element, $attr, ctrl) {
-        if (/SVG/.test($element[0].toString())) {
+        if (toString.call($element[0]).match(/SVG/)) {
           // WebKit: https://bugs.webkit.org/show_bug.cgi?id=135698 --- SVG elements do not
           // support innerHTML, so detect this here and try to generate the contents
           // specially.
@@ -33859,7 +34796,9 @@ var VALID_CLASS = 'ng-valid',
     DIRTY_CLASS = 'ng-dirty',
     UNTOUCHED_CLASS = 'ng-untouched',
     TOUCHED_CLASS = 'ng-touched',
-    PENDING_CLASS = 'ng-pending';
+    PENDING_CLASS = 'ng-pending',
+    EMPTY_CLASS = 'ng-empty',
+    NOT_EMPTY_CLASS = 'ng-not-empty';
 
 var ngModelMinErr = minErr('ngModel');
 
@@ -34163,6 +35102,17 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
     return isUndefined(value) || value === '' || value === null || value !== value;
   };
 
+  this.$$updateEmptyClasses = function(value) {
+    if (ctrl.$isEmpty(value)) {
+      $animate.removeClass($element, NOT_EMPTY_CLASS);
+      $animate.addClass($element, EMPTY_CLASS);
+    } else {
+      $animate.removeClass($element, EMPTY_CLASS);
+      $animate.addClass($element, NOT_EMPTY_CLASS);
+    }
+  };
+
+
   var currentValidationRunId = 0;
 
   /**
@@ -34280,11 +35230,14 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
    * which may be caused by a pending debounced event or because the input is waiting for a some
    * future event.
    *
-   * If you have an input that uses `ng-model-options` to set up debounced events or events such
-   * as blur you can have a situation where there is a period when the `$viewValue`
-   * is out of synch with the ngModel's `$modelValue`.
+   * If you have an input that uses `ng-model-options` to set up debounced updates or updates that
+   * depend on special events such as blur, you can have a situation where there is a period when
+   * the `$viewValue` is out of sync with the ngModel's `$modelValue`.
+   *
+   * In this case, you can use `$rollbackViewValue()` to manually cancel the debounced / future update
+   * and reset the input to the last committed view value.
    *
-   * In this case, you can run into difficulties if you try to update the ngModel's `$modelValue`
+   * It is also possible that you run into difficulties if you try to update the ngModel's `$modelValue`
    * programmatically before these debounced/future events have resolved/occurred, because Angular's
    * dirty checking mechanism is not able to tell whether the model has actually changed or not.
    *
@@ -34297,39 +35250,63 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
    *     angular.module('cancel-update-example', [])
    *
    *     .controller('CancelUpdateController', ['$scope', function($scope) {
-   *       $scope.resetWithCancel = function(e) {
-   *         if (e.keyCode == 27) {
-   *           $scope.myForm.myInput1.$rollbackViewValue();
-   *           $scope.myValue = '';
-   *         }
-   *       };
-   *       $scope.resetWithoutCancel = function(e) {
+   *       $scope.model = {};
+   *
+   *       $scope.setEmpty = function(e, value, rollback) {
    *         if (e.keyCode == 27) {
-   *           $scope.myValue = '';
+   *           e.preventDefault();
+   *           if (rollback) {
+   *             $scope.myForm[value].$rollbackViewValue();
+   *           }
+   *           $scope.model[value] = '';
    *         }
    *       };
    *     }]);
    *   </file>
    *   <file name="index.html">
    *     <div ng-controller="CancelUpdateController">
-   *       <p>Try typing something in each input.  See that the model only updates when you
-   *          blur off the input.
-   *        </p>
-   *        <p>Now see what happens if you start typing then press the Escape key</p>
+   *        <p>Both of these inputs are only updated if they are blurred. Hitting escape should
+   *        empty them. Follow these steps and observe the difference:</p>
+   *       <ol>
+   *         <li>Type something in the input. You will see that the model is not yet updated</li>
+   *         <li>Press the Escape key.
+   *           <ol>
+   *             <li> In the first example, nothing happens, because the model is already '', and no
+   *             update is detected. If you blur the input, the model will be set to the current view.
+   *             </li>
+   *             <li> In the second example, the pending update is cancelled, and the input is set back
+   *             to the last committed view value (''). Blurring the input does nothing.
+   *             </li>
+   *           </ol>
+   *         </li>
+   *       </ol>
    *
    *       <form name="myForm" ng-model-options="{ updateOn: 'blur' }">
-   *         <p id="inputDescription1">With $rollbackViewValue()</p>
-   *         <input name="myInput1" aria-describedby="inputDescription1" ng-model="myValue"
-   *                ng-keydown="resetWithCancel($event)"><br/>
-   *         myValue: "{{ myValue }}"
-   *
-   *         <p id="inputDescription2">Without $rollbackViewValue()</p>
-   *         <input name="myInput2" aria-describedby="inputDescription2" ng-model="myValue"
-   *                ng-keydown="resetWithoutCancel($event)"><br/>
-   *         myValue: "{{ myValue }}"
+   *         <div>
+   *        <p id="inputDescription1">Without $rollbackViewValue():</p>
+   *         <input name="value1" aria-describedby="inputDescription1" ng-model="model.value1"
+   *                ng-keydown="setEmpty($event, 'value1')">
+   *         value1: "{{ model.value1 }}"
+   *         </div>
+   *
+   *         <div>
+   *        <p id="inputDescription2">With $rollbackViewValue():</p>
+   *         <input name="value2" aria-describedby="inputDescription2" ng-model="model.value2"
+   *                ng-keydown="setEmpty($event, 'value2', true)">
+   *         value2: "{{ model.value2 }}"
+   *         </div>
    *       </form>
    *     </div>
    *   </file>
+       <file name="style.css">
+          div {
+            display: table-cell;
+          }
+          div:nth-child(1) {
+            padding-right: 30px;
+          }
+
+        </file>
    * </example>
    */
   this.$rollbackViewValue = function() {
@@ -34443,7 +35420,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
       forEach(ctrl.$asyncValidators, function(validator, name) {
         var promise = validator(modelValue, viewValue);
         if (!isPromiseLike(promise)) {
-          throw ngModelMinErr("$asyncValidators",
+          throw ngModelMinErr('nopromise',
             "Expected asynchronous validator to return a promise but got '{0}' instead.", promise);
         }
         setValidity(name, undefined);
@@ -34499,6 +35476,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
     if (ctrl.$$lastCommittedViewValue === viewValue && (viewValue !== '' || !ctrl.$$hasNativeValidators)) {
       return;
     }
+    ctrl.$$updateEmptyClasses(viewValue);
     ctrl.$$lastCommittedViewValue = viewValue;
 
     // change to dirty
@@ -34597,7 +35575,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
    * However, custom controls might also pass objects to this method. In this case, we should make
    * a copy of the object before passing it to `$setViewValue`. This is because `ngModel` does not
    * perform a deep watch of objects, it only looks for a change of identity. If you only change
-   * the property of the object then ngModel will not realise that the object has changed and
+   * the property of the object then ngModel will not realize that the object has changed and
    * will not invoke the `$parsers` and `$validators` pipelines. For this reason, you should
    * not change properties of the copy once it has been passed to `$setViewValue`.
    * Otherwise you may cause the model value on the scope to change incorrectly.
@@ -34681,6 +35659,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
         viewValue = formatters[idx](viewValue);
       }
       if (ctrl.$viewValue !== viewValue) {
+        ctrl.$$updateEmptyClasses(viewValue);
         ctrl.$viewValue = ctrl.$$lastCommittedViewValue = viewValue;
         ctrl.$render();
 
@@ -34711,7 +35690,8 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
  *   require.
  * - Providing validation behavior (i.e. required, number, email, url).
  * - Keeping the state of the control (valid/invalid, dirty/pristine, touched/untouched, validation errors).
- * - Setting related css classes on the element (`ng-valid`, `ng-invalid`, `ng-dirty`, `ng-pristine`, `ng-touched`, `ng-untouched`) including animations.
+ * - Setting related css classes on the element (`ng-valid`, `ng-invalid`, `ng-dirty`, `ng-pristine`, `ng-touched`,
+ *   `ng-untouched`, `ng-empty`, `ng-not-empty`) including animations.
  * - Registering the control with its parent {@link ng.directive:form form}.
  *
  * Note: `ngModel` will try to bind to the property given by evaluating the expression on the
@@ -34739,6 +35719,22 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
  *  - {@link ng.directive:select select}
  *  - {@link ng.directive:textarea textarea}
  *
+ * # Complex Models (objects or collections)
+ *
+ * By default, `ngModel` watches the model by reference, not value. This is important to know when
+ * binding inputs to models that are objects (e.g. `Date`) or collections (e.g. arrays). If only properties of the
+ * object or collection change, `ngModel` will not be notified and so the input will not be  re-rendered.
+ *
+ * The model must be assigned an entirely new object or collection before a re-rendering will occur.
+ *
+ * Some directives have options that will cause them to use a custom `$watchCollection` on the model expression
+ * - for example, `ngOptions` will do so when a `track by` clause is included in the comprehension expression or
+ * if the select is given the `multiple` attribute.
+ *
+ * The `$watchCollection()` method only does a shallow comparison, meaning that changing properties deeper than the
+ * first level of the object (or only changing the properties of an item in the collection if it's an array) will still
+ * not trigger a re-rendering of the model.
+ *
  * # CSS classes
  * The following CSS classes are added and removed on the associated input/select/textarea element
  * depending on the validity of the model.
@@ -34752,13 +35748,16 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
  *  - `ng-touched`: the control has been blurred
  *  - `ng-untouched`: the control hasn't been blurred
  *  - `ng-pending`: any `$asyncValidators` are unfulfilled
+ *  - `ng-empty`: the view does not contain a value or the value is deemed "empty", as defined
+ *     by the {@link ngModel.NgModelController#$isEmpty} method
+ *  - `ng-not-empty`: the view contains a non-empty value
  *
  * Keep in mind that ngAnimate can detect each of these classes when added and removed.
  *
  * ## Animation Hooks
  *
  * Animations within models are triggered when any of the associated CSS classes are added and removed
- * on the input element which is attached to the model. These classes are: `.ng-pristine`, `.ng-dirty`,
+ * on the input element which is attached to the model. These classes include: `.ng-pristine`, `.ng-dirty`,
  * `.ng-invalid` and `.ng-valid` as well as any other validations that are performed on the model itself.
  * The animations that are triggered within ngModel are similar to how they work in ngClass and
  * animations can be hooked into using CSS transitions, keyframes as well as JS animations.
@@ -35651,14 +36650,10 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
   var optionTemplate = document.createElement('option'),
       optGroupTemplate = document.createElement('optgroup');
 
-
     function ngOptionsPostLink(scope, selectElement, attr, ctrls) {
 
-      // if ngModel is not defined, we don't need to do anything
-      var ngModelCtrl = ctrls[1];
-      if (!ngModelCtrl) return;
-
       var selectCtrl = ctrls[0];
+      var ngModelCtrl = ctrls[1];
       var multiple = attr.multiple;
 
       // The emptyOption allows the application developer to provide their own custom "empty"
@@ -35889,7 +36884,7 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
                 (current === emptyOption_ ||
                 current === unknownOption_ ||
                 current.nodeType === NODE_TYPE_COMMENT ||
-                current.value === '')) {
+                (nodeName_(current) === 'option' && current.value === ''))) {
             current = current.nextSibling;
           }
         }
@@ -35918,7 +36913,7 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
           var groupElement;
           var optionElement;
 
-          if (option.group) {
+          if (isDefined(option.group)) {
 
             // This option is to live in a group
             // See if we have already created this group
@@ -35979,7 +36974,8 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
         // Check to see if the value has changed due to the update to the options
         if (!ngModelCtrl.$isEmpty(previousValue)) {
           var nextValue = selectCtrl.readValue();
-          if (ngOptions.trackBy ? !equals(previousValue, nextValue) : previousValue !== nextValue) {
+          var isNotPrimitive = ngOptions.trackBy || multiple;
+          if (isNotPrimitive ? !equals(previousValue, nextValue) : previousValue !== nextValue) {
             ngModelCtrl.$setViewValue(nextValue);
             ngModelCtrl.$render();
           }
@@ -35991,7 +36987,7 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
   return {
     restrict: 'A',
     terminal: true,
-    require: ['select', '?ngModel'],
+    require: ['select', 'ngModel'],
     link: {
       pre: function ngOptionsPreLink(scope, selectElement, attr, ctrls) {
         // Deactivate the SelectController.register method to prevent
@@ -36219,7 +37215,7 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale,
         }
 
         // If both `count` and `lastCount` are NaN, we don't need to re-register a watch.
-        // In JS `NaN !== NaN`, so we have to exlicitly check.
+        // In JS `NaN !== NaN`, so we have to explicitly check.
         if ((count !== lastCount) && !(countIsNaN && isNumber(lastCount) && isNaN(lastCount))) {
           watchRemover();
           var whenExpFn = whensExpFns[count];
@@ -36336,7 +37332,7 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale,
  * by the identifier instead of the whole object. Should you reload your data later, `ngRepeat`
  * will not have to rebuild the DOM elements for items it has already rendered, even if the
  * JavaScript objects in the collection have been substituted for new ones. For large collections,
- * this signifincantly improves rendering performance. If you don't have a unique identifier,
+ * this significantly improves rendering performance. If you don't have a unique identifier,
  * `track by $index` can also provide a performance boost.
  * </div>
  * ```html
@@ -36413,6 +37409,8 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale,
  *
  * **.move** - when an adjacent item is filtered out causing a reorder or when the item contents are reordered
  *
+ * See the example below for defining CSS animations with ngRepeat.
+ *
  * @element ANY
  * @scope
  * @priority 1000
@@ -36465,22 +37463,11 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale,
  *     For example: `item in items | filter : x | orderBy : order | limitTo : limit as results` .
  *
  * @example
- * This example initializes the scope to a list of names and
- * then uses `ngRepeat` to display every person:
-  <example module="ngAnimate" deps="angular-animate.js" animations="true">
+ * This example uses `ngRepeat` to display a list of people. A filter is used to restrict the displayed
+ * results by name. New (entering) and removed (leaving) items are animated.
+  <example module="ngRepeat" name="ngRepeat" deps="angular-animate.js" animations="true">
     <file name="index.html">
-      <div ng-init="friends = [
-        {name:'John', age:25, gender:'boy'},
-        {name:'Jessie', age:30, gender:'girl'},
-        {name:'Johanna', age:28, gender:'girl'},
-        {name:'Joy', age:15, gender:'girl'},
-        {name:'Mary', age:28, gender:'girl'},
-        {name:'Peter', age:95, gender:'boy'},
-        {name:'Sebastian', age:50, gender:'boy'},
-        {name:'Erika', age:27, gender:'girl'},
-        {name:'Patrick', age:40, gender:'boy'},
-        {name:'Samantha', age:60, gender:'girl'}
-      ]">
+      <div ng-controller="repeatController">
         I have {{friends.length}} friends. They are:
         <input type="search" ng-model="q" placeholder="filter friends..." aria-label="filter friends" />
         <ul class="example-animate-container">
@@ -36493,6 +37480,22 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale,
         </ul>
       </div>
     </file>
+    <file name="script.js">
+      angular.module('ngRepeat', ['ngAnimate']).controller('repeatController', function($scope) {
+        $scope.friends = [
+          {name:'John', age:25, gender:'boy'},
+          {name:'Jessie', age:30, gender:'girl'},
+          {name:'Johanna', age:28, gender:'girl'},
+          {name:'Joy', age:15, gender:'girl'},
+          {name:'Mary', age:28, gender:'girl'},
+          {name:'Peter', age:95, gender:'boy'},
+          {name:'Sebastian', age:50, gender:'boy'},
+          {name:'Erika', age:27, gender:'girl'},
+          {name:'Patrick', age:40, gender:'boy'},
+          {name:'Samantha', age:60, gender:'girl'}
+        ];
+      });
+    </file>
     <file name="animations.css">
       .example-animate-container {
         background:white;
@@ -36503,7 +37506,7 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale,
       }
 
       .animate-repeat {
-        line-height:40px;
+        line-height:30px;
         list-style:none;
         box-sizing:border-box;
       }
@@ -36525,7 +37528,7 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale,
       .animate-repeat.ng-move.ng-move-active,
       .animate-repeat.ng-enter.ng-enter-active {
         opacity:1;
-        max-height:40px;
+        max-height:30px;
       }
     </file>
     <file name="protractor.js" type="protractor">
@@ -37382,67 +38385,186 @@ var ngSwitchDefaultDirective = ngDirective({
  * @description
  * Directive that marks the insertion point for the transcluded DOM of the nearest parent directive that uses transclusion.
  *
- * Any existing content of the element that this directive is placed on will be removed before the transcluded content is inserted.
+ * You can specify that you want to insert a named transclusion slot, instead of the default slot, by providing the slot name
+ * as the value of the `ng-transclude` or `ng-transclude-slot` attribute.
+ *
+ * If the transcluded content is not empty (i.e. contains one or more DOM nodes, including whitespace text nodes), any existing
+ * content of this element will be removed before the transcluded content is inserted.
+ * If the transcluded content is empty, the existing content is left intact. This lets you provide fallback content in the case
+ * that no transcluded content is provided.
  *
  * @element ANY
  *
+ * @param {string} ngTransclude|ngTranscludeSlot the name of the slot to insert at this point. If this is not provided, is empty
+ *                                               or its value is the same as the name of the attribute then the default slot is used.
+ *
  * @example
-   <example module="transcludeExample">
-     <file name="index.html">
-       <script>
-         angular.module('transcludeExample', [])
-          .directive('pane', function(){
-             return {
-               restrict: 'E',
-               transclude: true,
-               scope: { title:'@' },
-               template: '<div style="border: 1px solid black;">' +
-                           '<div style="background-color: gray">{{title}}</div>' +
-                           '<ng-transclude></ng-transclude>' +
-                         '</div>'
-             };
-         })
-         .controller('ExampleController', ['$scope', function($scope) {
-           $scope.title = 'Lorem Ipsum';
-           $scope.text = 'Neque porro quisquam est qui dolorem ipsum quia dolor...';
-         }]);
-       </script>
-       <div ng-controller="ExampleController">
-         <input ng-model="title" aria-label="title"> <br/>
-         <textarea ng-model="text" aria-label="text"></textarea> <br/>
-         <pane title="{{title}}">{{text}}</pane>
-       </div>
-     </file>
-     <file name="protractor.js" type="protractor">
-        it('should have transcluded', function() {
-          var titleElement = element(by.model('title'));
-          titleElement.clear();
-          titleElement.sendKeys('TITLE');
-          var textElement = element(by.model('text'));
-          textElement.clear();
-          textElement.sendKeys('TEXT');
-          expect(element(by.binding('title')).getText()).toEqual('TITLE');
-          expect(element(by.binding('text')).getText()).toEqual('TEXT');
-        });
-     </file>
-   </example>
+ * ### Basic transclusion
+ * This example demonstrates basic transclusion of content into a component directive.
+ * <example name="simpleTranscludeExample" module="transcludeExample">
+ *   <file name="index.html">
+ *     <script>
+ *       angular.module('transcludeExample', [])
+ *        .directive('pane', function(){
+ *           return {
+ *             restrict: 'E',
+ *             transclude: true,
+ *             scope: { title:'@' },
+ *             template: '<div style="border: 1px solid black;">' +
+ *                         '<div style="background-color: gray">{{title}}</div>' +
+ *                         '<ng-transclude></ng-transclude>' +
+ *                       '</div>'
+ *           };
+ *       })
+ *       .controller('ExampleController', ['$scope', function($scope) {
+ *         $scope.title = 'Lorem Ipsum';
+ *         $scope.text = 'Neque porro quisquam est qui dolorem ipsum quia dolor...';
+ *       }]);
+ *     </script>
+ *     <div ng-controller="ExampleController">
+ *       <input ng-model="title" aria-label="title"> <br/>
+ *       <textarea ng-model="text" aria-label="text"></textarea> <br/>
+ *       <pane title="{{title}}">{{text}}</pane>
+ *     </div>
+ *   </file>
+ *   <file name="protractor.js" type="protractor">
+ *      it('should have transcluded', function() {
+ *        var titleElement = element(by.model('title'));
+ *        titleElement.clear();
+ *        titleElement.sendKeys('TITLE');
+ *        var textElement = element(by.model('text'));
+ *        textElement.clear();
+ *        textElement.sendKeys('TEXT');
+ *        expect(element(by.binding('title')).getText()).toEqual('TITLE');
+ *        expect(element(by.binding('text')).getText()).toEqual('TEXT');
+ *      });
+ *   </file>
+ * </example>
+ *
+ * @example
+ * ### Transclude fallback content
+ * This example shows how to use `NgTransclude` with fallback content, that
+ * is displayed if no transcluded content is provided.
+ *
+ * <example module="transcludeFallbackContentExample">
+ * <file name="index.html">
+ * <script>
+ * angular.module('transcludeFallbackContentExample', [])
+ * .directive('myButton', function(){
+ *             return {
+ *               restrict: 'E',
+ *               transclude: true,
+ *               scope: true,
+ *               template: '<button style="cursor: pointer;">' +
+ *                           '<ng-transclude>' +
+ *                             '<b style="color: red;">Button1</b>' +
+ *                           '</ng-transclude>' +
+ *                         '</button>'
+ *             };
+ *         });
+ * </script>
+ * <!-- fallback button content -->
+ * <my-button id="fallback"></my-button>
+ * <!-- modified button content -->
+ * <my-button id="modified">
+ *   <i style="color: green;">Button2</i>
+ * </my-button>
+ * </file>
+ * <file name="protractor.js" type="protractor">
+ * it('should have different transclude element content', function() {
+ *          expect(element(by.id('fallback')).getText()).toBe('Button1');
+ *          expect(element(by.id('modified')).getText()).toBe('Button2');
+ *        });
+ * </file>
+ * </example>
  *
+ * @example
+ * ### Multi-slot transclusion
+ * This example demonstrates using multi-slot transclusion in a component directive.
+ * <example name="multiSlotTranscludeExample" module="multiSlotTranscludeExample">
+ *   <file name="index.html">
+ *    <style>
+ *      .title, .footer {
+ *        background-color: gray
+ *      }
+ *    </style>
+ *    <div ng-controller="ExampleController">
+ *      <input ng-model="title" aria-label="title"> <br/>
+ *      <textarea ng-model="text" aria-label="text"></textarea> <br/>
+ *      <pane>
+ *        <pane-title><a ng-href="{{link}}">{{title}}</a></pane-title>
+ *        <pane-body><p>{{text}}</p></pane-body>
+ *      </pane>
+ *    </div>
+ *   </file>
+ *   <file name="app.js">
+ *    angular.module('multiSlotTranscludeExample', [])
+ *     .directive('pane', function(){
+ *        return {
+ *          restrict: 'E',
+ *          transclude: {
+ *            'title': '?paneTitle',
+ *            'body': 'paneBody',
+ *            'footer': '?paneFooter'
+ *          },
+ *          template: '<div style="border: 1px solid black;">' +
+ *                      '<div class="title" ng-transclude="title">Fallback Title</div>' +
+ *                      '<div ng-transclude="body"></div>' +
+ *                      '<div class="footer" ng-transclude="footer">Fallback Footer</div>' +
+ *                    '</div>'
+ *        };
+ *    })
+ *    .controller('ExampleController', ['$scope', function($scope) {
+ *      $scope.title = 'Lorem Ipsum';
+ *      $scope.link = "https://google.com";
+ *      $scope.text = 'Neque porro quisquam est qui dolorem ipsum quia dolor...';
+ *    }]);
+ *   </file>
+ *   <file name="protractor.js" type="protractor">
+ *      it('should have transcluded the title and the body', function() {
+ *        var titleElement = element(by.model('title'));
+ *        titleElement.clear();
+ *        titleElement.sendKeys('TITLE');
+ *        var textElement = element(by.model('text'));
+ *        textElement.clear();
+ *        textElement.sendKeys('TEXT');
+ *        expect(element(by.css('.title')).getText()).toEqual('TITLE');
+ *        expect(element(by.binding('text')).getText()).toEqual('TEXT');
+ *        expect(element(by.css('.footer')).getText()).toEqual('Fallback Footer');
+ *      });
+ *   </file>
+ * </example>
  */
+var ngTranscludeMinErr = minErr('ngTransclude');
 var ngTranscludeDirective = ngDirective({
   restrict: 'EAC',
   link: function($scope, $element, $attrs, controller, $transclude) {
+
+    if ($attrs.ngTransclude === $attrs.$attr.ngTransclude) {
+      // If the attribute is of the form: `ng-transclude="ng-transclude"`
+      // then treat it like the default
+      $attrs.ngTransclude = '';
+    }
+
+    function ngTranscludeCloneAttachFn(clone) {
+      if (clone.length) {
+        $element.empty();
+        $element.append(clone);
+      }
+    }
+
     if (!$transclude) {
-      throw minErr('ngTransclude')('orphan',
+      throw ngTranscludeMinErr('orphan',
        'Illegal use of ngTransclude directive in the template! ' +
        'No parent directive that requires a transclusion found. ' +
        'Element: {0}',
        startingTag($element));
     }
 
-    $transclude(function(clone) {
-      $element.empty();
-      $element.append(clone);
-    });
+    // If there is no slot name defined or the slot name is not optional
+    // then transclude the slot
+    var slotName = $attrs.ngTransclude || $attrs.ngTranscludeSlot;
+    $transclude(ngTranscludeCloneAttachFn, null, slotName);
   }
 });
 
@@ -37574,6 +38696,9 @@ var SelectController =
 
   // Tell the select control that an option, with the given value, has been added
   self.addOption = function(value, element) {
+    // Skip comment nodes, as they only pollute the `optionsMap`
+    if (element[0].nodeType === NODE_TYPE_COMMENT) return;
+
     assertNotHasOwnProperty(value, '"option value"');
     if (value === '') {
       self.emptyOption = element;
@@ -37648,7 +38773,7 @@ var SelectController =
  *
  * The `select` directive is used together with {@link ngModel `ngModel`} to provide data-binding
  * between the scope and the `<select>` control (including setting default values).
- * Ìt also handles dynamic `<option>` elements, which can be added using the {@link ngRepeat `ngRepeat}` or
+ * It also handles dynamic `<option>` elements, which can be added using the {@link ngRepeat `ngRepeat}` or
  * {@link ngOptions `ngOptions`} directives.
  *
  * When an item in the `<select>` menu is selected, the value of the selected option will be bound
@@ -37658,7 +38783,7 @@ var SelectController =
  *
  * <div class="alert alert-warning">
  * Note that the value of a `select` directive used without `ngOptions` is always a string.
- * When the model needs to be bound to a non-string value, you must either explictly convert it
+ * When the model needs to be bound to a non-string value, you must either explicitly convert it
  * using a directive (see example below) or use `ngOptions` to specify the set of options.
  * This is because an option element can only be bound to string values at present.
  * </div>
@@ -37850,7 +38975,8 @@ var selectDirective = function() {
     controller: SelectController,
     priority: 1,
     link: {
-      pre: selectPreLink
+      pre: selectPreLink,
+      post: selectPostLink
     }
   };
 
@@ -37864,13 +38990,6 @@ var selectDirective = function() {
 
       selectCtrl.ngModelCtrl = ngModelCtrl;
 
-      // We delegate rendering to the `writeValue` method, which can be changed
-      // if the select can have multiple selected values or if the options are being
-      // generated by `ngOptions`
-      ngModelCtrl.$render = function() {
-        selectCtrl.writeValue(ngModelCtrl.$viewValue);
-      };
-
       // When the selected item(s) changes we delegate getting the value of the select control
       // to the `readValue` method, which can be changed if the select can have multiple
       // selected values or if the options are being generated by `ngOptions`
@@ -37924,6 +39043,23 @@ var selectDirective = function() {
 
       }
     }
+
+    function selectPostLink(scope, element, attrs, ctrls) {
+      // if ngModel is not defined, we don't need to do anything
+      var ngModelCtrl = ctrls[1];
+      if (!ngModelCtrl) return;
+
+      var selectCtrl = ctrls[0];
+
+      // We delegate rendering to the `writeValue` method, which can be changed
+      // if the select can have multiple selected values or if the options are being
+      // generated by `ngOptions`.
+      // This must be done in the postLink fn to prevent $render to be called before
+      // all nodes have been linked correctly.
+      ngModelCtrl.$render = function() {
+        selectCtrl.writeValue(ngModelCtrl.$viewValue);
+      };
+    }
 };
 
 
@@ -37935,7 +39071,6 @@ var optionDirective = ['$interpolate', function($interpolate) {
     restrict: 'E',
     priority: 100,
     compile: function(element, attr) {
-
       if (isDefined(attr.value)) {
         // If the value attribute is defined, check if it contains an interpolation
         var interpolateValueFn = $interpolate(attr.value, true);
@@ -37949,7 +39084,6 @@ var optionDirective = ['$interpolate', function($interpolate) {
       }
 
       return function(scope, element, attr) {
-
         // This is an optimization over using ^^ since we don't want to have to search
         // all the way to the root of the DOM for every single option element
         var selectCtrlName = '$selectController',
@@ -37970,6 +39104,64 @@ var styleDirective = valueFn({
   terminal: false
 });
 
+/**
+ * @ngdoc directive
+ * @name ngRequired
+ *
+ * @description
+ *
+ * ngRequired adds the required {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}.
+ * It is most often used for {@link input `input`} and {@link select `select`} controls, but can also be
+ * applied to custom controls.
+ *
+ * The directive sets the `required` attribute on the element if the Angular expression inside
+ * `ngRequired` evaluates to true. A special directive for setting `required` is necessary because we
+ * cannot use interpolation inside `required`. See the {@link guide/interpolation interpolation guide}
+ * for more info.
+ *
+ * The validator will set the `required` error key to true if the `required` attribute is set and
+ * calling {@link ngModel.NgModelController#$isEmpty `NgModelController.$isEmpty`} with the
+ * {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`} returns `true`. For example, the
+ * `$isEmpty()` implementation for `input[text]` checks the length of the `$viewValue`. When developing
+ * custom controls, `$isEmpty()` can be overwritten to account for a $viewValue that is not string-based.
+ *
+ * @example
+ * <example name="ngRequiredDirective" module="ngRequiredExample">
+ *   <file name="index.html">
+ *     <script>
+ *       angular.module('ngRequiredExample', [])
+ *         .controller('ExampleController', ['$scope', function($scope) {
+ *           $scope.required = true;
+ *         }]);
+ *     </script>
+ *     <div ng-controller="ExampleController">
+ *       <form name="form">
+ *         <label for="required">Toggle required: </label>
+ *         <input type="checkbox" ng-model="required" id="required" />
+ *         <br>
+ *         <label for="input">This input must be filled if `required` is true: </label>
+ *         <input type="text" ng-model="model" id="input" name="input" ng-required="required" /><br>
+ *         <hr>
+ *         required error set? = <code>{{form.input.$error.required}}</code><br>
+ *         model = <code>{{model}}</code>
+ *       </form>
+ *     </div>
+ *   </file>
+ *   <file name="protractor.js" type="protractor">
+       var required = element(by.binding('form.input.$error.required'));
+       var model = element(by.binding('model'));
+       var input = element(by.id('input'));
+
+       it('should set the required error', function() {
+         expect(required.getText()).toContain('true');
+
+         input.sendKeys('123');
+         expect(required.getText()).not.toContain('true');
+         expect(model.getText()).toContain('123');
+       });
+ *   </file>
+ * </example>
+ */
 var requiredDirective = function() {
   return {
     restrict: 'A',
@@ -37989,7 +39181,81 @@ var requiredDirective = function() {
   };
 };
 
+/**
+ * @ngdoc directive
+ * @name ngPattern
+ *
+ * @description
+ *
+ * ngPattern adds the pattern {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}.
+ * It is most often used for text-based {@link input `input`} controls, but can also be applied to custom text-based controls.
+ *
+ * The validator sets the `pattern` error key if the {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`}
+ * does not match a RegExp which is obtained by evaluating the Angular expression given in the
+ * `ngPattern` attribute value:
+ * * If the expression evaluates to a RegExp object, then this is used directly.
+ * * If the expression evaluates to a string, then it will be converted to a RegExp after wrapping it
+ * in `^` and `$` characters. For instance, `"abc"` will be converted to `new RegExp('^abc$')`.
+ *
+ * <div class="alert alert-info">
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to
+ * start at the index of the last search's match, thus not taking the whole input value into
+ * account.
+ * </div>
+ *
+ * <div class="alert alert-info">
+ * **Note:** This directive is also added when the plain `pattern` attribute is used, with two
+ * differences:
+ * <ol>
+ *   <li>
+ *     `ngPattern` does not set the `pattern` attribute and therefore HTML5 constraint validation is
+ *     not available.
+ *   </li>
+ *   <li>
+ *     The `ngPattern` attribute must be an expression, while the `pattern` value must be
+ *     interpolated.
+ *   </li>
+ * </ol>
+ * </div>
+ *
+ * @example
+ * <example name="ngPatternDirective" module="ngPatternExample">
+ *   <file name="index.html">
+ *     <script>
+ *       angular.module('ngPatternExample', [])
+ *         .controller('ExampleController', ['$scope', function($scope) {
+ *           $scope.regex = '\\d+';
+ *         }]);
+ *     </script>
+ *     <div ng-controller="ExampleController">
+ *       <form name="form">
+ *         <label for="regex">Set a pattern (regex string): </label>
+ *         <input type="text" ng-model="regex" id="regex" />
+ *         <br>
+ *         <label for="input">This input is restricted by the current pattern: </label>
+ *         <input type="text" ng-model="model" id="input" name="input" ng-pattern="regex" /><br>
+ *         <hr>
+ *         input valid? = <code>{{form.input.$valid}}</code><br>
+ *         model = <code>{{model}}</code>
+ *       </form>
+ *     </div>
+ *   </file>
+ *   <file name="protractor.js" type="protractor">
+       var model = element(by.binding('model'));
+       var input = element(by.id('input'));
+
+       it('should validate the input with the default pattern', function() {
+         input.sendKeys('aaa');
+         expect(model.getText()).not.toContain('aaa');
 
+         input.clear().then(function() {
+           input.sendKeys('123');
+           expect(model.getText()).toContain('123');
+         });
+       });
+ *   </file>
+ * </example>
+ */
 var patternDirective = function() {
   return {
     restrict: 'A',
@@ -38021,7 +39287,72 @@ var patternDirective = function() {
   };
 };
 
+/**
+ * @ngdoc directive
+ * @name ngMaxlength
+ *
+ * @description
+ *
+ * ngMaxlength adds the maxlength {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}.
+ * It is most often used for text-based {@link input `input`} controls, but can also be applied to custom text-based controls.
+ *
+ * The validator sets the `maxlength` error key if the {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`}
+ * is longer than the integer obtained by evaluating the Angular expression given in the
+ * `ngMaxlength` attribute value.
+ *
+ * <div class="alert alert-info">
+ * **Note:** This directive is also added when the plain `maxlength` attribute is used, with two
+ * differences:
+ * <ol>
+ *   <li>
+ *     `ngMaxlength` does not set the `maxlength` attribute and therefore HTML5 constraint
+ *     validation is not available.
+ *   </li>
+ *   <li>
+ *     The `ngMaxlength` attribute must be an expression, while the `maxlength` value must be
+ *     interpolated.
+ *   </li>
+ * </ol>
+ * </div>
+ *
+ * @example
+ * <example name="ngMaxlengthDirective" module="ngMaxlengthExample">
+ *   <file name="index.html">
+ *     <script>
+ *       angular.module('ngMaxlengthExample', [])
+ *         .controller('ExampleController', ['$scope', function($scope) {
+ *           $scope.maxlength = 5;
+ *         }]);
+ *     </script>
+ *     <div ng-controller="ExampleController">
+ *       <form name="form">
+ *         <label for="maxlength">Set a maxlength: </label>
+ *         <input type="number" ng-model="maxlength" id="maxlength" />
+ *         <br>
+ *         <label for="input">This input is restricted by the current maxlength: </label>
+ *         <input type="text" ng-model="model" id="input" name="input" ng-maxlength="maxlength" /><br>
+ *         <hr>
+ *         input valid? = <code>{{form.input.$valid}}</code><br>
+ *         model = <code>{{model}}</code>
+ *       </form>
+ *     </div>
+ *   </file>
+ *   <file name="protractor.js" type="protractor">
+       var model = element(by.binding('model'));
+       var input = element(by.id('input'));
+
+       it('should validate the input with the default maxlength', function() {
+         input.sendKeys('abcdef');
+         expect(model.getText()).not.toContain('abcdef');
 
+         input.clear().then(function() {
+           input.sendKeys('abcde');
+           expect(model.getText()).toContain('abcde');
+         });
+       });
+ *   </file>
+ * </example>
+ */
 var maxlengthDirective = function() {
   return {
     restrict: 'A',
@@ -38042,6 +39373,70 @@ var maxlengthDirective = function() {
   };
 };
 
+/**
+ * @ngdoc directive
+ * @name ngMinlength
+ *
+ * @description
+ *
+ * ngMinlength adds the minlength {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}.
+ * It is most often used for text-based {@link input `input`} controls, but can also be applied to custom text-based controls.
+ *
+ * The validator sets the `minlength` error key if the {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`}
+ * is shorter than the integer obtained by evaluating the Angular expression given in the
+ * `ngMinlength` attribute value.
+ *
+ * <div class="alert alert-info">
+ * **Note:** This directive is also added when the plain `minlength` attribute is used, with two
+ * differences:
+ * <ol>
+ *   <li>
+ *     `ngMinlength` does not set the `minlength` attribute and therefore HTML5 constraint
+ *     validation is not available.
+ *   </li>
+ *   <li>
+ *     The `ngMinlength` value must be an expression, while the `minlength` value must be
+ *     interpolated.
+ *   </li>
+ * </ol>
+ * </div>
+ *
+ * @example
+ * <example name="ngMinlengthDirective" module="ngMinlengthExample">
+ *   <file name="index.html">
+ *     <script>
+ *       angular.module('ngMinlengthExample', [])
+ *         .controller('ExampleController', ['$scope', function($scope) {
+ *           $scope.minlength = 3;
+ *         }]);
+ *     </script>
+ *     <div ng-controller="ExampleController">
+ *       <form name="form">
+ *         <label for="minlength">Set a minlength: </label>
+ *         <input type="number" ng-model="minlength" id="minlength" />
+ *         <br>
+ *         <label for="input">This input is restricted by the current minlength: </label>
+ *         <input type="text" ng-model="model" id="input" name="input" ng-minlength="minlength" /><br>
+ *         <hr>
+ *         input valid? = <code>{{form.input.$valid}}</code><br>
+ *         model = <code>{{model}}</code>
+ *       </form>
+ *     </div>
+ *   </file>
+ *   <file name="protractor.js" type="protractor">
+       var model = element(by.binding('model'));
+       var input = element(by.id('input'));
+
+       it('should validate the input with the default minlength', function() {
+         input.sendKeys('ab');
+         expect(model.getText()).not.toContain('ab');
+
+         input.sendKeys('abc');
+         expect(model.getText()).toContain('abc');
+       });
+ *   </file>
+ * </example>
+ */
 var minlengthDirective = function() {
   return {
     restrict: 'A',
@@ -38154,6 +39549,20 @@ $provide.value("$locale", {
       "Nov",
       "Dec"
     ],
+    "STANDALONEMONTH": [
+      "January",
+      "February",
+      "March",
+      "April",
+      "May",
+      "June",
+      "July",
+      "August",
+      "September",
+      "October",
+      "November",
+      "December"
+    ],
     "WEEKENDRANGE": [
       5,
       6
@@ -38197,6 +39606,7 @@ $provide.value("$locale", {
     ]
   },
   "id": "en-us",
+  "localeID": "en_US",
   "pluralCat": function(n, opt_precision) {  var i = n | 0;  var vf = getVF(n, opt_precision);  if (i == 1 && vf.v == 0) {    return PLURAL_CATEGORY.ONE;  }  return PLURAL_CATEGORY.OTHER;}
 });
 }]);
index 871bb9c..d8acea2 100644 (file)
@@ -1,5 +1,5 @@
 /** 
-* @version 2.1.5
+* @version 2.1.6
 * @license MIT
 */
 (function (ng, undefined){
@@ -330,81 +330,93 @@ ng.module('smart-table')
   }]);
 
 ng.module('smart-table')
-  .directive('stSort', ['stConfig', '$parse', '$timeout', function (stConfig, $parse, $timeout) {
-    return {
-      restrict: 'A',
-      require: '^stTable',
-      link: function (scope, element, attr, ctrl) {
-
-        var predicate = attr.stSort;
-        var getter = $parse(predicate);
-        var index = 0;
-        var classAscent = attr.stClassAscent || stConfig.sort.ascentClass;
-        var classDescent = attr.stClassDescent || stConfig.sort.descentClass;
-        var stateClasses = [classAscent, classDescent];
-        var sortDefault;
-        var skipNatural = attr.stSkipNatural !== undefined ? attr.stSkipNatural : stConfig.sort.skipNatural;
-        var promise = null;
-        var throttle = attr.stDelay || stConfig.sort.delay;
-
-        if (attr.stSortDefault) {
-          sortDefault = scope.$eval(attr.stSortDefault) !== undefined ? scope.$eval(attr.stSortDefault) : attr.stSortDefault;
-        }
-
-        //view --> table state
-        function sort () {
-          index++;
-          var func;
-          predicate = ng.isFunction(getter(scope)) || ng.isArray(getter(scope)) ? getter(scope) : attr.stSort;
-          if (index % 3 === 0 && !!skipNatural !== true) {
-            //manual reset
-            index = 0;
-            ctrl.tableState().sort = {};
-            ctrl.tableState().pagination.start = 0;
-            func = ctrl.pipe.bind(ctrl);
-          } else {
-            func = ctrl.sortBy.bind(ctrl, predicate, index % 2 === 0);
-          }
-          if (promise !== null) {
-            $timeout.cancel(promise);
-          }
-          if (throttle < 0) {
-            scope.$apply(func);
-          } else {
-            promise = $timeout(func, throttle);
-          }
-        }
-
-        element.bind('click', function sortClick () {
-          if (predicate) {
-            sort();
-          }
-        });
-
-        if (sortDefault) {
-          index = sortDefault === 'reverse' ? 1 : 0;
-          sort();
-        }
-
-        //table state --> view
-        scope.$watch(function () {
-          return ctrl.tableState().sort;
-        }, function (newValue) {
-          if (newValue.predicate !== predicate) {
-            index = 0;
-            element
-              .removeClass(classAscent)
-              .removeClass(classDescent);
-          } else {
-            index = newValue.reverse === true ? 2 : 1;
-            element
-              .removeClass(stateClasses[index % 2])
-              .addClass(stateClasses[index - 1]);
-          }
-        }, true);
-      }
-    };
-  }]);
+       .directive('stSort', ['stConfig', '$parse', '$timeout', function (stConfig, $parse, $timeout) {
+               return {
+                       restrict: 'A',
+                       require: '^stTable',
+                       link: function (scope, element, attr, ctrl) {
+
+                               var predicate = attr.stSort;
+                               var getter = $parse(predicate);
+                               var index = 0;
+                               var classAscent = attr.stClassAscent || stConfig.sort.ascentClass;
+                               var classDescent = attr.stClassDescent || stConfig.sort.descentClass;
+                               var stateClasses = [classAscent, classDescent];
+                               var sortDefault;
+                               var skipNatural = attr.stSkipNatural !== undefined ? attr.stSkipNatural : stConfig.sort.skipNatural;
+                               var descendingFirst = attr.stDescendingFirst === 'true';
+                               var promise = null;
+                               var throttle = attr.stDelay || stConfig.sort.delay;
+
+                               if (attr.stSortDefault) {
+                                       sortDefault = scope.$eval(attr.stSortDefault) !== undefined ? scope.$eval(attr.stSortDefault) : attr.stSortDefault;
+                               }
+
+                               //view --> table state
+                               function sort () {
+                                       if ( descendingFirst ) {
+                                               if ( index === 0 ) {
+                                                       index = 2;
+                                               } else if ( index === 2 ) {
+                                                       index = 1;
+                                               } else {
+                                                       index = 0;
+                                               }
+                                       } else {
+                                               index++;
+                                       }
+
+                                       var func;
+                                       predicate = ng.isFunction(getter(scope)) || ng.isArray(getter(scope)) ? getter(scope) : attr.stSort;
+                                       if (index % 3 === 0 && !!skipNatural !== true) {
+                                               //manual reset
+                                               index = 0;
+                                               ctrl.tableState().sort = {};
+                                               ctrl.tableState().pagination.start = 0;
+                                               func = ctrl.pipe.bind(ctrl);
+                                       } else {
+                                               func = ctrl.sortBy.bind(ctrl, predicate, index % 2 === 0);
+                                       }
+                                       if (promise !== null) {
+                                               $timeout.cancel(promise);
+                                       }
+                                       if (throttle < 0) {
+                                               func();
+                                       } else {
+                                               promise = $timeout(func, throttle);
+                                       }
+                               }
+
+                               element.bind('click', function sortClick () {
+                                       if (predicate) {
+                                               scope.$apply(sort);
+                                       }
+                               });
+
+                               if (sortDefault) {
+                                       index = sortDefault === 'reverse' ? 1 : 0;
+                                       sort();
+                               }
+
+                               //table state --> view
+                               scope.$watch(function () {
+                                       return ctrl.tableState().sort;
+                               }, function (newValue) {
+                                       if (newValue.predicate !== predicate) {
+                                               index = 0;
+                                               element
+                                                       .removeClass(classAscent)
+                                                       .removeClass(classDescent);
+                                       } else {
+                                               index = newValue.reverse === true ? 2 : 1;
+                                               element
+                                                       .removeClass(stateClasses[index % 2])
+                                                       .addClass(stateClasses[index - 1]);
+                                       }
+                               }, true);
+                       }
+               };
+       }]);
 
 ng.module('smart-table')
   .directive('stPagination', ['stConfig', function (stConfig) {
index 6417909..c365930 100644 (file)
@@ -1,7 +1,7 @@
 /**
- * angular-spinner version 0.8.0
+ * angular-spinner version 0.8.1
  * License: MIT.
- * Copyright (C) 2013, 2014, 2015, Uri Shaked and contributors.
+ * Copyright (C) 2013, 2014, 2015, 2016, Uri Shaked and contributors.
  */
 
 'format amd';
@@ -83,6 +83,7 @@
 
                                                        // order of precedence: element options, theme, defaults.
                                                        options = angular.extend(
+                                                               {},
                                                                usSpinnerConfig.config,
                                                                usSpinnerConfig.themes[attr.spinnerTheme],
                                                                options);
index f622e94..332be04 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license AngularJS v1.4.8
+ * @license AngularJS v1.4.9
  * (c) 2010-2015 Google, Inc. http://angularjs.org
  * License: MIT
  */
@@ -43,8 +43,7 @@ function nodeName_(element) {
      *
      * Requires the {@link ngTouch `ngTouch`} module to be installed.
      *
-     * `$swipe` is used by the `ngSwipeLeft` and `ngSwipeRight` directives in `ngTouch`, and by
-     * `ngCarousel` in a separate component.
+     * `$swipe` is used by the `ngSwipeLeft` and `ngSwipeRight` directives in `ngTouch`.
      *
      * # Usage
      * The `$swipe` service is an object with a single method: `bind`. `bind` takes an element
index 8104847..0b0acc2 100644 (file)
@@ -3,13 +3,13 @@
 @import (reference) "../../../less/bootstrap/bootstrap";
 
 .ui-grid-pager-panel {
-    position: absolute;
-    left: 0;
-    bottom: 0;
-    width: 100%;
-    padding-top: 3px;
-    padding-bottom: 3px;
-    box-sizing: content-box;
+  position: absolute;
+  left: 0;
+  bottom: 0;
+  width: 100%;
+  padding-top: 3px;
+  padding-bottom: 3px;
+  box-sizing: content-box;
 }
 
 .ui-grid-pager-container {
     margin-left: -3px;
   }
 
+  .first-bar-rtl {
+    width: 10px;
+    border-left: 2px solid #4d4d4d;
+    margin-top: -6px;
+    height: 12px;
+    margin-right: -7px;
+  }
+
   .first-triangle {
     width: 0;
     height: 0;
     height: 12px;
     margin-left: 1px;
   }
+
+  .last-bar-rtl {
+    width: 10px;
+    border-left: 2px solid #4d4d4d;
+    margin-top: -6px;
+    height: 12px;
+    margin-right: -11px;
+  }
+
+
 }
 
 .ui-grid-pager-row-count-picker {
index 6901e72..e0b9a27 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * ui-grid - v3.1.0 - 2016-01-19
+ * ui-grid - v3.1.1 - 2016-02-09
  * Copyright (c) 2016 ; License: MIT 
  */
 #ui-grid-twbs #ui-grid-twbs .form-horizontal .form-group:before,
@@ -680,9 +680,6 @@ fieldset[disabled] a.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button
 .open > .dropdown-toggle.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button {
   background-image: none;
 }
-.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled,
-.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled],
-fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button,
 .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled:hover,
 .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled]:hover,
 fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:hover,
@@ -691,13 +688,7 @@ fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:
 fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:focus,
 .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled.focus,
 .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled].focus,
-fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus,
-.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled:active,
-.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled]:active,
-fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button:active,
-.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.disabled.active,
-.ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button[disabled].active,
-fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.active {
+fieldset[disabled] .ui-grid-menu .ui-grid-menu-inner .ui-grid-menu-close-button.focus {
   background-color: transparent;
   border-color: transparent;
 }
@@ -1378,9 +1369,6 @@ fieldset[disabled] a.ui-grid-pager-control button {
 .open > .dropdown-toggle.ui-grid-pager-control button {
   background-image: none;
 }
-.ui-grid-pager-control button.disabled,
-.ui-grid-pager-control button[disabled],
-fieldset[disabled] .ui-grid-pager-control button,
 .ui-grid-pager-control button.disabled:hover,
 .ui-grid-pager-control button[disabled]:hover,
 fieldset[disabled] .ui-grid-pager-control button:hover,
@@ -1389,13 +1377,7 @@ fieldset[disabled] .ui-grid-pager-control button:hover,
 fieldset[disabled] .ui-grid-pager-control button:focus,
 .ui-grid-pager-control button.disabled.focus,
 .ui-grid-pager-control button[disabled].focus,
-fieldset[disabled] .ui-grid-pager-control button.focus,
-.ui-grid-pager-control button.disabled:active,
-.ui-grid-pager-control button[disabled]:active,
-fieldset[disabled] .ui-grid-pager-control button:active,
-.ui-grid-pager-control button.disabled.active,
-.ui-grid-pager-control button[disabled].active,
-fieldset[disabled] .ui-grid-pager-control button.active {
+fieldset[disabled] .ui-grid-pager-control button.focus {
   background-color: #f3f3f3;
   border-color: #cccccc;
 }
@@ -1446,6 +1428,10 @@ fieldset[disabled] .ui-grid-pager-control button.active {
 .ui-grid-pager-control input::-webkit-input-placeholder {
   color: #999999;
 }
+.ui-grid-pager-control input::-ms-expand {
+  border: 0;
+  background-color: transparent;
+}
 .ui-grid-pager-control input[disabled],
 .ui-grid-pager-control input[readonly],
 fieldset[disabled] .ui-grid-pager-control input {
@@ -1480,6 +1466,13 @@ select[multiple].ui-grid-pager-control input {
   height: 12px;
   margin-left: -3px;
 }
+.ui-grid-pager-control .first-bar-rtl {
+  width: 10px;
+  border-left: 2px solid #4d4d4d;
+  margin-top: -6px;
+  height: 12px;
+  margin-right: -7px;
+}
 .ui-grid-pager-control .first-triangle {
   width: 0;
   height: 0;
@@ -1509,6 +1502,13 @@ select[multiple].ui-grid-pager-control input {
   height: 12px;
   margin-left: 1px;
 }
+.ui-grid-pager-control .last-bar-rtl {
+  width: 10px;
+  border-left: 2px solid #4d4d4d;
+  margin-top: -6px;
+  height: 12px;
+  margin-right: -11px;
+}
 .ui-grid-pager-row-count-picker {
   float: left;
 }
@@ -1554,6 +1554,10 @@ select[multiple].ui-grid-pager-control input {
 .ui-grid-pager-row-count-picker select::-webkit-input-placeholder {
   color: #999999;
 }
+.ui-grid-pager-row-count-picker select::-ms-expand {
+  border: 0;
+  background-color: transparent;
+}
 .ui-grid-pager-row-count-picker select[disabled],
 .ui-grid-pager-row-count-picker select[readonly],
 fieldset[disabled] .ui-grid-pager-row-count-picker select {
index 94a994e..7c3e956 100644 (file)
Binary files a/public/bower_components/angular-ui-grid/ui-grid.eot and b/public/bower_components/angular-ui-grid/ui-grid.eot differ
index 7900f31..88bed45 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * ui-grid - v3.1.0 - 2016-01-19
+ * ui-grid - v3.1.1 - 2016-02-09
  * Copyright (c) 2016 ; License: MIT 
  */
 
@@ -285,7 +285,7 @@ function ( i18nService, uiGridConstants, gridUtil ) {
      *
      */
     setColMenuItemWatch: function ( $scope ){
-      var deregFunction = $scope.$watch('col.menuItems', function (n, o) {
+      var deregFunction = $scope.$watch('col.menuItems', function (n) {
         if (typeof(n) !== 'undefined' && n && angular.isArray(n)) {
           n.forEach(function (item) {
             if (typeof(item.context) === 'undefined' || !item.context) {
@@ -450,16 +450,6 @@ function ( i18nService, uiGridConstants, gridUtil ) {
             $event.stopPropagation();
             $scope.hideColumn();
           }
-        },
-        {
-          title: i18nService.getSafeText('columnMenu.close'),
-          screenReaderOnly: true,
-          shown: function(){
-            return true;
-          },
-          action: function($event){
-            $event.stopPropagation();
-          }
         }
       ];
     },
@@ -512,8 +502,6 @@ function ( i18nService, uiGridConstants, gridUtil ) {
      */
     repositionMenu: function( $scope, column, positionData, $elm, $columnElement ) {
       var menu = $elm[0].querySelectorAll('.ui-grid-menu');
-      var containerId = column.renderContainer ? column.renderContainer : 'body';
-      var renderContainer = column.grid.renderContainers[containerId];
 
       // It's possible that the render container of the column we're attaching to is
       // offset from the grid (i.e. pinned containers), we need to get the difference in the offsetLeft
@@ -616,6 +604,7 @@ function ($timeout, gridUtil, uiGridConstants, uiGridColumnMenuService, $documen
           $scope.colElement = $columnElement;
           $scope.colElementPosition = colElementPosition;
           $scope.$broadcast('show-menu', { originalEvent: event });
+
         }
       };
 
@@ -658,6 +647,8 @@ function ($timeout, gridUtil, uiGridConstants, uiGridColumnMenuService, $documen
       $scope.$on('menu-shown', function() {
         $timeout( function() {
           uiGridColumnMenuService.repositionMenu( $scope, $scope.col, $scope.colElementPosition, $elm, $scope.colElement );
+          //Focus on the first item
+          gridUtil.focus.bySelector($document, '.ui-grid-menu-items .ui-grid-menu-item', true);
           delete $scope.colElementPosition;
           delete $scope.columnElement;
         }, 200);
@@ -753,7 +744,7 @@ function ($timeout, gridUtil, uiGridConstants, uiGridColumnMenuService, $documen
     controller: ['$scope', function ($scope) {
       var self = this;
 
-      $scope.$watch('menuItems', function (n, o) {
+      $scope.$watch('menuItems', function (n) {
         self.menuItems = n;
       });
     }]
@@ -1058,8 +1049,8 @@ function ($timeout, gridUtil, uiGridConstants, uiGridColumnMenuService, $documen
             };
             $scope.isSortPriorityVisible = function() {
               //show sort priority if column is sorted and there is at least one other sorted column
-              return $scope.col.sort.priority && $scope.grid.columns.some(function(element, index){
-                  return element.sort.priority && element !== $scope.col;
+              return angular.isNumber($scope.col.sort.priority) && $scope.grid.columns.some(function(element, index){
+                  return angular.isNumber(element.sort.priority) && element !== $scope.col;
                 });
             };
             $scope.getSortDirectionAriaLabel = function(){
@@ -2003,8 +1994,6 @@ function ($compile, $timeout, $window, $document, gridUtil, uiGridConstants, i18
     templateUrl: 'ui-grid/uiGridMenu',
     replace: false,
     link: function ($scope, $elm, $attrs, uiGridCtrl) {
-      var menuMid;
-      var $animate;
       var gridMenuMaxHeight;
 
       $scope.dynamicStyles = '';
@@ -2059,17 +2048,22 @@ function ($compile, $timeout, $window, $document, gridUtil, uiGridConstants, i18
 
         // Turn off an existing document click handler
         angular.element(document).off('click touchstart', applyHideMenu);
+        $elm.off('keyup', checkKeyUp);
+        $elm.off('keydown', checkKeyDown);
 
         // Turn on the document click handler, but in a timeout so it doesn't apply to THIS click if there is one
         $timeout(function() {
           angular.element(document).on(docEventType, applyHideMenu);
+          $elm.on('keyup', checkKeyUp);
+          $elm.on('keydown', checkKeyDown);
+
         });
         //automatically set the focus to the first button element in the now open menu.
         gridUtil.focus.bySelector($elm, 'button[type=button]', true);
       };
 
 
-      $scope.hideMenu = function(event, args) {
+      $scope.hideMenu = function(event) {
         if ( $scope.shown ){
           /*
            * In order to animate cleanly we animate the addition of ng-hide, then use a $timeout to
@@ -2089,6 +2083,8 @@ function ($compile, $timeout, $window, $document, gridUtil, uiGridConstants, i18
         }
 
         angular.element(document).off('click touchstart', applyHideMenu);
+        $elm.off('keyup', checkKeyUp);
+        $elm.off('keydown', checkKeyDown);
       };
 
       $scope.$on('hide-menu', function (event, args) {
@@ -2109,6 +2105,34 @@ function ($compile, $timeout, $window, $document, gridUtil, uiGridConstants, i18
         }
       };
 
+      // close menu on ESC and keep tab cyclical
+      var checkKeyUp = function(event) {
+        if (event.keyCode === 27) {
+          $scope.hideMenu();
+        }
+      };
+
+      var checkKeyDown = function(event) {
+        var setFocus = function(elm) {
+          elm.focus();
+          event.preventDefault();
+          return false;
+        };
+        if (event.keyCode === 9) {
+          var firstMenuItem, lastMenuItem;
+          var menuItemButtons = $elm[0].querySelectorAll('button:not(.ng-hide)');
+          if (menuItemButtons.length > 0) {
+            firstMenuItem = menuItemButtons[0];
+            lastMenuItem = menuItemButtons[menuItemButtons.length - 1];
+            if (event.target === lastMenuItem && !event.shiftKey) {
+              setFocus(firstMenuItem);
+            } else if (event.target === firstMenuItem && event.shiftKey) {
+              setFocus(lastMenuItem);
+            }
+          }
+        }
+      };
+
       if (typeof($scope.autoHide) === 'undefined' || $scope.autoHide === undefined) {
         $scope.autoHide = true;
       }
@@ -2131,12 +2155,7 @@ function ($compile, $timeout, $window, $document, gridUtil, uiGridConstants, i18
       }
 
       $scope.$on('$destroy', $scope.$on(uiGridConstants.events.ITEM_DRAGGING, applyHideMenu ));
-    },
-
-
-    controller: ['$scope', '$element', '$attrs', function ($scope, $element, $attrs) {
-      var self = this;
-    }]
+    }
   };
 
   return uiGridMenu;
@@ -2156,15 +2175,12 @@ function ($compile, $timeout, $window, $document, gridUtil, uiGridConstants, i18
       leaveOpen: '=',
       screenReaderOnly: '='
     },
-    require: ['?^uiGrid', '^uiGridMenu'],
+    require: ['?^uiGrid'],
     templateUrl: 'ui-grid/uiGridMenuItem',
     replace: false,
-    compile: function($elm, $attrs) {
+    compile: function() {
       return {
-        pre: function ($scope, $elm, $attrs, controllers) {
-          var uiGridCtrl = controllers[0],
-              uiGridMenuCtrl = controllers[1];
-
+        pre: function ($scope, $elm) {
           if ($scope.templateUrl) {
             gridUtil.getTemplate($scope.templateUrl)
                 .then(function (contents) {
@@ -2176,8 +2192,7 @@ function ($compile, $timeout, $window, $document, gridUtil, uiGridConstants, i18
           }
         },
         post: function ($scope, $elm, $attrs, controllers) {
-          var uiGridCtrl = controllers[0],
-              uiGridMenuCtrl = controllers[1];
+          var uiGridCtrl = controllers[0];
 
           // TODO(c0bra): validate that shown and active are functions if they're defined. An exception is already thrown above this though
           // if (typeof($scope.shown) !== 'undefined' && $scope.shown && typeof($scope.shown) !== 'function') {
@@ -3141,10 +3156,10 @@ angular.module('ui.grid')
           }, dataWatchFunction) );
         } else {
           deregFunctions.push( $scope.$parent.$watch(function() { return $scope.uiGrid.data; }, dataWatchFunction) );
-          deregFunctions.push( $scope.$parent.$watch(function() { return $scope.uiGrid.data.length; }, dataWatchFunction) );
+          deregFunctions.push( $scope.$parent.$watch(function() { return $scope.uiGrid.data.length; }, function(){ dataWatchFunction($scope.uiGrid.data); }) );
         }
         deregFunctions.push( $scope.$parent.$watch(function() { return $scope.uiGrid.columnDefs; }, columnDefsWatchFunction) );
-        deregFunctions.push( $scope.$parent.$watch(function() { return $scope.uiGrid.columnDefs.length; }, columnDefsWatchFunction) );
+        deregFunctions.push( $scope.$parent.$watch(function() { return $scope.uiGrid.columnDefs.length; }, function(){ columnDefsWatchFunction($scope.uiGrid.columnDefs); }) );
       } else {
         if (angular.isString($scope.uiGrid.data)) {
           deregFunctions.push( $scope.$parent.$watchCollection($scope.uiGrid.data, dataWatchFunction) );
@@ -3157,7 +3172,7 @@ angular.module('ui.grid')
 
       function columnDefsWatchFunction(n, o) {
         if (n && n !== o) {
-          self.grid.options.columnDefs = n;
+          self.grid.options.columnDefs = $scope.uiGrid.columnDefs;
           self.grid.buildColumns({ orderByColumnDefs: true })
             .then(function(){
 
@@ -3407,13 +3422,13 @@ function uiGridDirective($compile, $templateCache, $timeout, $window, gridUtil,
               }
             });
 
-            if (grid.options.enableFiltering) {
-              var allColumnsHaveFilteringTurnedOff = grid.options.columnDefs.every(function(col) {
+            if (grid.options.enableFiltering  && !maxNumberOfFilters) {
+              var allColumnsHaveFilteringTurnedOff = grid.options.columnDefs.length && grid.options.columnDefs.every(function(col) {
                 return col.enableFiltering === false;
               });
 
               if (!allColumnsHaveFilteringTurnedOff) {
-                maxNumberOfFilters++;
+                maxNumberOfFilters = 1;
               }
             }
 
@@ -3923,12 +3938,12 @@ angular.module('ui.grid')
      * that have sorting on them, sorted in priority order.
      *
      * @param {$scope} scope The scope of the controller. This is used to deregister this event when the scope is destroyed.
-     * @param {Function} callBack Will be called when the event is emited. The function passes back an array of columns with
-     * sorts on them, in priority order.
+     * @param {Function} callBack Will be called when the event is emited. The function passes back the grid and an array of 
+     * columns with sorts on them, in priority order.
      *
      * @example
      * <pre>
-     *      gridApi.core.on.sortChanged( $scope, function(sortColumns){
+     *      gridApi.core.on.sortChanged( $scope, function(grid, sortColumns){
      *        // do something
      *      });
      * </pre>
@@ -3941,7 +3956,7 @@ angular.module('ui.grid')
      * @methodOf  ui.grid.core.api:PublicApi
      * @description The visibility of a column has changed,
      * the column itself is passed out as a parameter of the event.
-     * 
+     *
      * @param {$scope} scope The scope of the controller. This is used to deregister this event when the scope is destroyed.
      * @param {Function} callBack Will be called when the event is emited. The function passes back the GridCol that has changed.
      *
@@ -4631,17 +4646,17 @@ angular.module('ui.grid')
    *   append to the newRows and add to newHash
    *   run the processors
    * ```
-   * 
+   *
    * Rows are identified using the hashKey if configured.  If not configured, then rows
    * are identified using the gridOptions.rowEquality function
-   * 
+   *
    * This method is useful when trying to select rows immediately after loading data without
    * using a $timeout/$interval, e.g.:
-   * 
+   *
    *   $scope.gridOptions.data =  someData;
    *   $scope.gridApi.grid.modifyRows($scope.gridOptions.data);
    *   $scope.gridApi.selection.selectRow($scope.gridOptions.data[0]);
-   * 
+   *
    * OR to persist row selection after data update (e.g. rows selected, new data loaded, want
    * originally selected rows to be re-selected))
    */
@@ -5420,12 +5435,12 @@ angular.module('ui.grid')
         p = 0;
 
     self.columns.forEach(function (col) {
-      if (col.sort && col.sort.priority && col.sort.priority > p) {
-        p = col.sort.priority;
+      if (col.sort && col.sort.priority !== undefined && col.sort.priority >= p) {
+        p = col.sort.priority + 1;
       }
     });
 
-    return p + 1;
+    return p;
   };
 
   /**
@@ -5504,7 +5519,7 @@ angular.module('ui.grid')
 
     if (!add) {
       self.resetColumnSorting(column);
-      column.sort.priority = 0;
+      column.sort.priority = undefined;
       // Get the actual priority since there may be columns which have suppressRemoveSort set
       column.sort.priority = self.getNextColumnSortPriority();
     }
@@ -9808,14 +9823,14 @@ var module = angular.module('ui.grid');
 /**
  * @ngdoc object
  * @name ui.grid.class:RowSorter
- * @description RowSorter provides the default sorting mechanisms, 
- * including guessing column types and applying appropriate sort 
+ * @description RowSorter provides the default sorting mechanisms,
+ * including guessing column types and applying appropriate sort
  * algorithms
- * 
- */ 
+ *
+ */
 
 module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGridConstants) {
-  var currencyRegexStr = 
+  var currencyRegexStr =
     '(' +
     uiGridConstants.CURRENCY_SYMBOLS
       .map(function (a) { return '\\' + a; }) // Escape all the currency symbols ($ at least will jack up this regex)
@@ -9898,7 +9913,7 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
    * @methodOf ui.grid.class:RowSorter
    * @name basicSort
    * @description Sorts any values that provide the < method, including strings
-   * or numbers.  Handles nulls and undefined through calling handleNulls 
+   * or numbers.  Handles nulls and undefined through calling handleNulls
    * @param {object} a sort value a
    * @param {object} b sort value b
    * @returns {number} normal sort function, returns -ve, 0, +ve
@@ -9923,7 +9938,7 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
    * @ngdoc method
    * @methodOf ui.grid.class:RowSorter
    * @name sortNumber
-   * @description Sorts numerical values.  Handles nulls and undefined through calling handleNulls 
+   * @description Sorts numerical values.  Handles nulls and undefined through calling handleNulls
    * @param {object} a sort value a
    * @param {object} b sort value b
    * @returns {number} normal sort function, returns -ve, 0, +ve
@@ -9942,8 +9957,8 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
    * @ngdoc method
    * @methodOf ui.grid.class:RowSorter
    * @name sortNumberStr
-   * @description Sorts numerical values that are stored in a string (i.e. parses them to numbers first).  
-   * Handles nulls and undefined through calling handleNulls 
+   * @description Sorts numerical values that are stored in a string (i.e. parses them to numbers first).
+   * Handles nulls and undefined through calling handleNulls
    * @param {object} a sort value a
    * @param {object} b sort value b
    * @returns {number} normal sort function, returns -ve, 0, +ve
@@ -9957,36 +9972,36 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
           numB, // The parsed number form of 'b'
           badA = false,
           badB = false;
-  
+
       // Try to parse 'a' to a float
       numA = parseFloat(a.replace(/[^0-9.-]/g, ''));
-  
+
       // If 'a' couldn't be parsed to float, flag it as bad
       if (isNaN(numA)) {
           badA = true;
       }
-  
+
       // Try to parse 'b' to a float
       numB = parseFloat(b.replace(/[^0-9.-]/g, ''));
-  
+
       // If 'b' couldn't be parsed to float, flag it as bad
       if (isNaN(numB)) {
           badB = true;
       }
-  
+
       // We want bad ones to get pushed to the bottom... which effectively is "greater than"
       if (badA && badB) {
           return 0;
       }
-  
+
       if (badA) {
           return 1;
       }
-  
+
       if (badB) {
           return -1;
       }
-  
+
       return numA - numB;
     }
   };
@@ -9996,7 +10011,7 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
    * @ngdoc method
    * @methodOf ui.grid.class:RowSorter
    * @name sortAlpha
-   * @description Sorts string values. Handles nulls and undefined through calling handleNulls 
+   * @description Sorts string values. Handles nulls and undefined through calling handleNulls
    * @param {object} a sort value a
    * @param {object} b sort value b
    * @returns {number} normal sort function, returns -ve, 0, +ve
@@ -10008,7 +10023,7 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
     } else {
       var strA = a.toString().toLowerCase(),
           strB = b.toString().toLowerCase();
-  
+
       return strA === strB ? 0 : strA.localeCompare(strB);
     }
   };
@@ -10037,7 +10052,7 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
       }
       var timeA = a.getTime(),
           timeB = b.getTime();
-  
+
       return timeA === timeB ? 0 : (timeA < timeB ? -1 : 1);
     }
   };
@@ -10047,8 +10062,8 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
    * @ngdoc method
    * @methodOf ui.grid.class:RowSorter
    * @name sortBool
-   * @description Sorts boolean values, true is considered larger than false. 
-   * Handles nulls and undefined through calling handleNulls 
+   * @description Sorts boolean values, true is considered larger than false.
+   * Handles nulls and undefined through calling handleNulls
    * @param {object} a sort value a
    * @param {object} b sort value b
    * @returns {number} normal sort function, returns -ve, 0, +ve
@@ -10061,7 +10076,7 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
       if (a && b) {
         return 0;
       }
-  
+
       if (!a && !b) {
         return 0;
       }
@@ -10076,17 +10091,17 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
    * @ngdoc method
    * @methodOf ui.grid.class:RowSorter
    * @name getSortFn
-   * @description Get the sort function for the column.  Looks first in 
+   * @description Get the sort function for the column.  Looks first in
    * rowSorter.colSortFnCache using the column name, failing that it
    * looks at col.sortingAlgorithm (and puts it in the cache), failing that
    * it guesses the sort algorithm based on the data type.
-   * 
+   *
    * The cache currently seems a bit pointless, as none of the work we do is
    * processor intensive enough to need caching.  Presumably in future we might
    * inspect the row data itself to guess the sort function, and in that case
    * it would make sense to have a cache, the infrastructure is in place to allow
    * that.
-   * 
+   *
    * @param {Grid} grid the grid to consider
    * @param {GridCol} col the column to find a function for
    * @param {array} rows an array of grid rows.  Currently unused, but presumably in future
@@ -10139,7 +10154,7 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
    * @description Used where multiple columns are present in the sort criteria,
    * we determine which column should take precedence in the sort by sorting
    * the columns based on their sort.priority
-   * 
+   *
    * @param {gridColumn} a column a
    * @param {gridColumn} b column b
    * @returns {number} normal sort function, returns -ve, 0, +ve
@@ -10161,11 +10176,11 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
       }
     }
     // Only A has a priority
-    else if (a.sort.priority || a.sort.priority === 0) {
+    else if (a.sort.priority || a.sort.priority === undefined) {
       return -1;
     }
     // Only B has a priority
-    else if (b.sort.priority || b.sort.priority === 0) {
+    else if (b.sort.priority || b.sort.priority === undefined) {
       return 1;
     }
     // Neither has a priority
@@ -10182,14 +10197,14 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
    * @description Prevents the internal sorting from executing.  Events will
    * still be fired when the sort changes, and the sort information on
    * the columns will be updated, allowing an external sorter (for example,
-   * server sorting) to be implemented.  Defaults to false. 
-   * 
+   * server sorting) to be implemented.  Defaults to false.
+   *
    */
   /**
    * @ngdoc method
    * @methodOf ui.grid.class:RowSorter
    * @name sort
-   * @description sorts the grid 
+   * @description sorts the grid
    * @param {Object} grid the grid itself
    * @param {array} rows the rows to be sorted
    * @param {array} columns the columns in which to look
@@ -10201,7 +10216,7 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
     if (!rows) {
       return;
     }
-    
+
     if (grid.options.useExternalSorting){
       return rows;
     }
@@ -10263,7 +10278,7 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
         idx++;
       }
 
-      // Chrome doesn't implement a stable sort function.  If our sort returns 0 
+      // Chrome doesn't implement a stable sort function.  If our sort returns 0
       // (i.e. the items are equal), and we're at the last sort column in the list,
       // then return the previous order using our custom
       // index variable
@@ -10280,13 +10295,13 @@ module.service('rowSorter', ['$parse', 'uiGridConstants', function ($parse, uiGr
     };
 
     var newRows = rows.sort(rowSortFn);
-    
+
     // remove the custom index field on each row, used to make a stable sort out of unstable sorts (e.g. Chrome)
     var clearIndex = function( row, idx ){
        delete row.entity.$$uiGridIndex;
     };
     rows.forEach(clearIndex);
-    
+
     return newRows;
   };
 
@@ -10318,7 +10333,7 @@ if (typeof Function.prototype.bind !== "function") {
   };
 }
 
-function getStyles (elem) {
+function  getStyles (elem) {
   var e = elem;
   if (typeof(e.length) !== 'undefined' && e.length) {
     e = elem[0];
@@ -11472,7 +11487,7 @@ module.service('gridUtil', ['$log', '$window', '$document', '$http', '$templateC
       if (timeout) {
         $timeout.cancel(timeout);
       }
-      timeout = $timeout(later, wait);
+      timeout = $timeout(later, wait, false);
       if (callNow) {
         result = func.apply(context, args);
       }
@@ -11522,7 +11537,7 @@ module.service('gridUtil', ['$log', '$window', '$document', '$http', '$templateC
     function runFunc(endDate){
       lastCall = +new Date();
       func.apply(context, args);
-      $interval(function(){ queued = null; }, 0, 1);
+      $interval(function(){ queued = null; }, 0, 1, false);
     }
 
     return function(){
@@ -11535,7 +11550,7 @@ module.service('gridUtil', ['$log', '$window', '$document', '$http', '$templateC
           runFunc();
         }
         else if (options.trailing){
-          queued = $interval(runFunc, wait - sinceLast, 1);
+          queued = $interval(runFunc, wait - sinceLast, 1, false);
         }
       }
     };
@@ -12708,8 +12723,17 @@ module.filter('px', function() {
           jsonNotArray: 'インポートしたJSONファイルには配列が含まれている必要があります。処理を中止します。'
         },
         pagination: {
+          aria: {
+            pageToFirst: '最初のページ',
+            pageBack: '前のページ',
+            pageSelected: '現在のページ',
+            pageForward: '次のページ',
+            pageToLast: '最後のページ'
+          },
           sizes: '項目/ページ',
-          totalItems: '項目'
+          totalItems: '項目',
+          through: 'から',
+          of: '項目/全'
         }
       });
       return $delegate;
@@ -16337,7 +16361,7 @@ module.filter('px', function() {
                   $timeout(function () {
                     $elm[0].focus();
                     //only select text if it is not being replaced below in the cellNav viewPortKeyPress
-                    if ($scope.col.colDef.enableCellEditOnFocus || !(uiGridCtrl && uiGridCtrl.grid.api.cellNav)) {
+                    if ($elm[0].select && $scope.col.colDef.enableCellEditOnFocus || !(uiGridCtrl && uiGridCtrl.grid.api.cellNav)) {
                       $elm[0].select();
                     }
                     else {
@@ -16785,7 +16809,7 @@ module.filter('px', function() {
         /**
          *  @ngdoc object
          *  @name ui.grid.expandable.api:GridRow
-         * 
+         *
          *  @description Additional properties added to GridRow when using the expandable module
          */
         /**
@@ -16871,6 +16895,43 @@ module.filter('px', function() {
                */
               toggleAllRows: function() {
                 service.toggleAllRows(grid);
+              },
+              /**
+               * @ngdoc function
+               * @name expandRow
+               * @methodOf  ui.grid.expandable.api:PublicApi
+               * @description Expand the data row
+               * @param {object} rowEntity gridOptions.data[] array instance
+               */
+              expandRow: function (rowEntity) {
+                var row = grid.getRow(rowEntity);
+                if (row !== null && !row.isExpanded) {
+                  service.toggleRowExpansion(grid, row);
+                }
+              },
+              /**
+               * @ngdoc function
+               * @name collapseRow
+               * @methodOf  ui.grid.expandable.api:PublicApi
+               * @description Collapse the data row
+               * @param {object} rowEntity gridOptions.data[] array instance
+               */
+              collapseRow: function (rowEntity) {
+                var row = grid.getRow(rowEntity);
+                if (row !== null && row.isExpanded) {
+                  service.toggleRowExpansion(grid, row);
+                }
+              },
+              /**
+               * @ngdoc function
+               * @name getExpandedRows
+               * @methodOf  ui.grid.expandable.api:PublicApi
+               * @description returns all expandedRow's entity references
+               */
+              getExpandedRows: function () {
+                return service.getExpandedRows(grid).map(function (gridRow) {
+                  return gridRow.entity;
+                });
               }
             }
           }
@@ -16900,7 +16961,7 @@ module.filter('px', function() {
         if (angular.isUndefined(row.expandedRowHeight)){
           row.expandedRowHeight = grid.options.expandableRowHeight;
         }
-              
+
         if (row.isExpanded) {
           row.height = row.grid.options.rowHeight + row.expandedRowHeight;
         }
@@ -16938,6 +16999,12 @@ module.filter('px', function() {
         else {
           service.expandAllRows(grid);
         }
+      },
+
+      getExpandedRows: function (grid) {
+        return grid.rows.filter(function (row) {
+          return row.isExpanded;
+        });
       }
     };
     return service;
@@ -21374,45 +21441,91 @@ module.filter('px', function() {
                     }
                   }
 
+                  var targetIndex;
+
                   //Case where column should be moved to a position on its left
                   if (totalMouseMovement < 0) {
                     var totalColumnsLeftWidth = 0;
-                    for (var il = columnIndex - 1; il >= 0; il--) {
-                      if (angular.isUndefined(columns[il].colDef.visible) || columns[il].colDef.visible === true) {
-                        totalColumnsLeftWidth += columns[il].drawnWidth || columns[il].width || columns[il].colDef.width;
-                        if (totalColumnsLeftWidth > Math.abs(totalMouseMovement)) {
-                          uiGridMoveColumnService.redrawColumnAtPosition
-                          ($scope.grid, columnIndex, il + 1);
-                          break;
+                    var il;
+                    if ( $scope.grid.isRTL() ){
+                      for (il = columnIndex + 1; il < columns.length; il++) {
+                        if (angular.isUndefined(columns[il].colDef.visible) || columns[il].colDef.visible === true) {
+                          totalColumnsLeftWidth += columns[il].drawnWidth || columns[il].width || columns[il].colDef.width;
+                          if (totalColumnsLeftWidth > Math.abs(totalMouseMovement)) {
+                            uiGridMoveColumnService.redrawColumnAtPosition
+                            ($scope.grid, columnIndex, il - 1);
+                            break;
+                          }
+                        }
+                      }
+                    }
+                    else {
+                      for (il = columnIndex - 1; il >= 0; il--) {
+                        if (angular.isUndefined(columns[il].colDef.visible) || columns[il].colDef.visible === true) {
+                          totalColumnsLeftWidth += columns[il].drawnWidth || columns[il].width || columns[il].colDef.width;
+                          if (totalColumnsLeftWidth > Math.abs(totalMouseMovement)) {
+                            uiGridMoveColumnService.redrawColumnAtPosition
+                            ($scope.grid, columnIndex, il + 1);
+                            break;
+                          }
                         }
                       }
                     }
-                    //Case where column should be moved to beginning of the grid.
+
+                    //Case where column should be moved to beginning (or end in RTL) of the grid.
                     if (totalColumnsLeftWidth < Math.abs(totalMouseMovement)) {
+                      targetIndex = 0;
+                      if ( $scope.grid.isRTL() ){
+                        targetIndex = columns.length - 1;
+                      }
                       uiGridMoveColumnService.redrawColumnAtPosition
-                      ($scope.grid, columnIndex, 0);
+                      ($scope.grid, columnIndex, targetIndex);
                     }
                   }
 
                   //Case where column should be moved to a position on its right
                   else if (totalMouseMovement > 0) {
                     var totalColumnsRightWidth = 0;
-                    for (var ir = columnIndex + 1; ir < columns.length; ir++) {
-                      if (angular.isUndefined(columns[ir].colDef.visible) || columns[ir].colDef.visible === true) {
-                        totalColumnsRightWidth += columns[ir].drawnWidth || columns[ir].width || columns[ir].colDef.width;
-                        if (totalColumnsRightWidth > totalMouseMovement) {
-                          uiGridMoveColumnService.redrawColumnAtPosition
-                          ($scope.grid, columnIndex, ir - 1);
-                          break;
+                    var ir;
+                    if ( $scope.grid.isRTL() ){
+                      for (ir = columnIndex - 1; ir > 0; ir--) {
+                        if (angular.isUndefined(columns[ir].colDef.visible) || columns[ir].colDef.visible === true) {
+                          totalColumnsRightWidth += columns[ir].drawnWidth || columns[ir].width || columns[ir].colDef.width;
+                          if (totalColumnsRightWidth > totalMouseMovement) {
+                            uiGridMoveColumnService.redrawColumnAtPosition
+                            ($scope.grid, columnIndex, ir);
+                            break;
+                          }
                         }
                       }
                     }
-                    //Case where column should be moved to end of the grid.
+                    else {
+                      for (ir = columnIndex + 1; ir < columns.length; ir++) {
+                        if (angular.isUndefined(columns[ir].colDef.visible) || columns[ir].colDef.visible === true) {
+                          totalColumnsRightWidth += columns[ir].drawnWidth || columns[ir].width || columns[ir].colDef.width;
+                          if (totalColumnsRightWidth > totalMouseMovement) {
+                            uiGridMoveColumnService.redrawColumnAtPosition
+                            ($scope.grid, columnIndex, ir - 1);
+                            break;
+                          }
+                        }
+                      }
+                    }
+
+
+                    //Case where column should be moved to end (or beginning in RTL) of the grid.
                     if (totalColumnsRightWidth < totalMouseMovement) {
+                      targetIndex = columns.length - 1;
+                      if ( $scope.grid.isRTL() ){
+                        targetIndex = 0;
+                      }
                       uiGridMoveColumnService.redrawColumnAtPosition
-                      ($scope.grid, columnIndex, columns.length - 1);
+                      ($scope.grid, columnIndex, targetIndex);
                     }
                   }
+
+
+
                 };
 
                 var onDownEvents = function(){
@@ -21474,8 +21587,8 @@ module.filter('px', function() {
 
                   //Update css of moving column to adjust to new left value or fire scroll in case column has reached edge of grid
                   if ((currentElmLeft >= gridLeft || changeValue > 0) && (currentElmRight <= rightMoveLimit || changeValue < 0)) {
-                    movingElm.css({visibility: 'visible', 'left': (movingElm[0].offsetLeft + 
-                      (newElementLeft < rightMoveLimit ? changeValue : (rightMoveLimit - currentElmLeft))) + 'px'});
+                    movingElm.css({visibility: 'visible', 'left': (movingElm[0].offsetLeft +
+                    (newElementLeft < rightMoveLimit ? changeValue : (rightMoveLimit - currentElmLeft))) + 'px'});
                   }
                   else if (totalColumnWidth > Math.ceil(uiGridCtrl.grid.gridWidth)) {
                     changeValue *= 8;
@@ -22159,7 +22272,7 @@ module.filter('px', function() {
             return typeof(this.context.col.renderContainer) !== 'undefined' && this.context.col.renderContainer !== null && this.context.col.renderContainer !== 'body';
           },
           action: function () {
-            service.pinColumn(this.context.col.grid, this.context.col, uiGridPinningConstants.container.UNPIN);
+            service.pinColumn(this.context.col.grid, this.context.col, uiGridPinningConstants.container.NONE);
           }
         };
 
@@ -22177,6 +22290,7 @@ module.filter('px', function() {
       pinColumn: function(grid, col, container) {
         if (container === uiGridPinningConstants.container.NONE) {
           col.renderContainer = null;
+          col.colDef.pinnedLeft = col.colDef.pinnedRight = false;
         }
         else {
           col.renderContainer = container;
@@ -23781,6 +23895,7 @@ module.filter('px', function() {
           savedState.selection = service.saveSelection( grid );
           savedState.grouping = service.saveGrouping( grid );
           savedState.treeView = service.saveTreeView( grid );
+          savedState.pagination = service.savePagination( grid );
 
           return savedState;
         },
@@ -23817,6 +23932,10 @@ module.filter('px', function() {
             service.restoreTreeView( grid, state.treeView );
           }
 
+          if ( state.pagination ){
+            service.restorePagination( grid, state.pagination );
+          }
+
           grid.refresh();
         },
 
@@ -23970,6 +24089,26 @@ module.filter('px', function() {
 
         /**
          * @ngdoc function
+         * @name savePagination
+         * @methodOf  ui.grid.saveState.service:uiGridSaveStateService
+         * @description Saves the pagination state, if the pagination feature is enabled
+         * @param {Grid} grid the grid whose state we'd like to save
+         * @returns {object} the pagination state ready to be saved
+         */
+        savePagination: function( grid ) {
+          if ( !grid.api.pagination || !grid.options.paginationPageSize ){
+            return {};
+          }
+
+          return {
+            paginationCurrentPage: grid.options.paginationCurrentPage,
+            paginationPageSize: grid.options.paginationPageSize
+          };
+        },
+
+
+        /**
+         * @ngdoc function
          * @name saveTreeView
          * @methodOf  ui.grid.saveState.service:uiGridSaveStateService
          * @description Saves the tree view state, if the tree feature is enabled
@@ -24038,8 +24177,9 @@ module.filter('px', function() {
                 grid.api.core.raise.columnVisibilityChanged(currentCol);
               }
 
-              if ( grid.options.saveWidths ){
+              if ( grid.options.saveWidths && currentCol.width !== columnState.width){
                 currentCol.width = columnState.width;
+                currentCol.hasCustomWidth = true;
               }
 
               if ( grid.options.saveSort &&
@@ -24193,6 +24333,25 @@ module.filter('px', function() {
 
         /**
          * @ngdoc function
+         * @name restorePagination
+         * @methodOf  ui.grid.saveState.service:uiGridSaveStateService
+         * @description Restores the pagination information, if pagination is enabled.
+         * @param {Grid} grid the grid whose state we'd like to restore
+         * @param {object} pagination the pagination object to be restored
+         * @param {number} pagination.paginationCurrentPage the page number to restore
+         * @param {number} pagination.paginationPageSize the number of items displayed per page
+         */
+        restorePagination: function( grid, pagination ){
+          if ( !grid.api.pagination || !grid.options.paginationPageSize ){
+            return;
+          }
+
+          grid.options.paginationCurrentPage = pagination.paginationCurrentPage;
+          grid.options.paginationPageSize = pagination.paginationPageSize;
+        },
+
+        /**
+         * @ngdoc function
          * @name findRowByIdentity
          * @methodOf  ui.grid.saveState.service:uiGridSaveStateService
          * @description Finds a row given it's identity value, returns the first found row
@@ -25783,6 +25942,16 @@ module.filter('px', function() {
          *  <br/>Defaults to {}
          */
         gridOptions.treeCustomAggregations = gridOptions.treeCustomAggregations || {};
+
+        /**
+         *  @ngdoc object
+         *  @name enableExpandAll
+         *  @propertyOf  ui.grid.treeBase.api:GridOptions
+         *  @description Enable the expand all button at the top of the row header
+         *
+         *  <br/>Defaults to true
+         */
+        gridOptions.enableExpandAll = gridOptions.enableExpandAll !== false;
       },
 
 
@@ -27768,12 +27937,12 @@ angular.module('ui.grid').run(['$templateCache', function($templateCache) {
 
 
   $templateCache.put('ui-grid/uiGridHeaderCell',
-    "<div role=\"columnheader\" ng-class=\"{ 'sortable': sortable }\" ui-grid-one-bind-aria-labelledby-grid=\"col.uid + '-header-text ' + col.uid + '-sortdir-text'\" aria-sort=\"{{col.sort.direction == asc ? 'ascending' : ( col.sort.direction == desc ? 'descending' : (!col.sort.direction ? 'none' : 'other'))}}\"><div role=\"button\" tabindex=\"0\" class=\"ui-grid-cell-contents ui-grid-header-cell-primary-focus\" col-index=\"renderIndex\" title=\"TOOLTIP\"><span class=\"ui-grid-header-cell-label\" ui-grid-one-bind-id-grid=\"col.uid + '-header-text'\">{{ col.displayName CUSTOM_FILTERS }}</span> <span ui-grid-one-bind-id-grid=\"col.uid + '-sortdir-text'\" ui-grid-visible=\"col.sort.direction\" aria-label=\"{{getSortDirectionAriaLabel()}}\"><i ng-class=\"{ 'ui-grid-icon-up-dir': col.sort.direction == asc, 'ui-grid-icon-down-dir': col.sort.direction == desc, 'ui-grid-icon-blank': !col.sort.direction }\" title=\"{{isSortPriorityVisible() ? i18n.headerCell.priority + ' ' + col.sort.priority : null}}\" aria-hidden=\"true\"></i> <sub ui-grid-visible=\"isSortPriorityVisible()\" class=\"ui-grid-sort-priority-number\">{{col.sort.priority}}</sub></span></div><div role=\"button\" tabindex=\"0\" ui-grid-one-bind-id-grid=\"col.uid + '-menu-button'\" class=\"ui-grid-column-menu-button\" ng-if=\"grid.options.enableColumnMenus && !col.isRowHeader  && col.colDef.enableColumnMenu !== false\" ng-click=\"toggleMenu($event)\" ng-class=\"{'ui-grid-column-menu-button-last-col': isLastCol}\" ui-grid-one-bind-aria-label=\"i18n.headerCell.aria.columnMenuButtonLabel\" aria-haspopup=\"true\"><i class=\"ui-grid-icon-angle-down\" aria-hidden=\"true\">&nbsp;</i></div><div ui-grid-filter></div></div>"
+    "<div role=\"columnheader\" ng-class=\"{ 'sortable': sortable }\" ui-grid-one-bind-aria-labelledby-grid=\"col.uid + '-header-text ' + col.uid + '-sortdir-text'\" aria-sort=\"{{col.sort.direction == asc ? 'ascending' : ( col.sort.direction == desc ? 'descending' : (!col.sort.direction ? 'none' : 'other'))}}\"><div role=\"button\" tabindex=\"0\" class=\"ui-grid-cell-contents ui-grid-header-cell-primary-focus\" col-index=\"renderIndex\" title=\"TOOLTIP\"><span class=\"ui-grid-header-cell-label\" ui-grid-one-bind-id-grid=\"col.uid + '-header-text'\">{{ col.displayName CUSTOM_FILTERS }}</span> <span ui-grid-one-bind-id-grid=\"col.uid + '-sortdir-text'\" ui-grid-visible=\"col.sort.direction\" aria-label=\"{{getSortDirectionAriaLabel()}}\"><i ng-class=\"{ 'ui-grid-icon-up-dir': col.sort.direction == asc, 'ui-grid-icon-down-dir': col.sort.direction == desc, 'ui-grid-icon-blank': !col.sort.direction }\" title=\"{{isSortPriorityVisible() ? i18n.headerCell.priority + ' ' + ( col.sort.priority + 1 )  : null}}\" aria-hidden=\"true\"></i> <sub ui-grid-visible=\"isSortPriorityVisible()\" class=\"ui-grid-sort-priority-number\">{{col.sort.priority + 1}}</sub></span></div><div role=\"button\" tabindex=\"0\" ui-grid-one-bind-id-grid=\"col.uid + '-menu-button'\" class=\"ui-grid-column-menu-button\" ng-if=\"grid.options.enableColumnMenus && !col.isRowHeader  && col.colDef.enableColumnMenu !== false\" ng-click=\"toggleMenu($event)\" ng-class=\"{'ui-grid-column-menu-button-last-col': isLastCol}\" ui-grid-one-bind-aria-label=\"i18n.headerCell.aria.columnMenuButtonLabel\" aria-haspopup=\"true\"><i class=\"ui-grid-icon-angle-down\" aria-hidden=\"true\">&nbsp;</i></div><div ui-grid-filter></div></div>"
   );
 
 
   $templateCache.put('ui-grid/uiGridMenu',
-    "<div class=\"ui-grid-menu\" ng-if=\"shown\"><style ui-grid-style>{{dynamicStyles}}</style><div class=\"ui-grid-menu-mid\" ng-show=\"shownMid\"><div class=\"ui-grid-menu-inner\"><button type=\"button\" ng-focus=\"focus=true\" ng-blur=\"focus=false\" class=\"ui-grid-menu-close-button\" ng-class=\"{'ui-grid-sr-only': (!focus)}\"><i class=\"ui-grid-icon-cancel\" ui-grid-one-bind-aria-label=\"i18n.close\"></i></button><ul role=\"menu\" class=\"ui-grid-menu-items\"><li ng-repeat=\"item in menuItems\" role=\"menuitem\" ui-grid-menu-item ui-grid-one-bind-id=\"'menuitem-'+$index\" action=\"item.action\" name=\"item.title\" active=\"item.active\" icon=\"item.icon\" shown=\"item.shown\" context=\"item.context\" template-url=\"item.templateUrl\" leave-open=\"item.leaveOpen\" screen-reader-only=\"item.screenReaderOnly\"></li></ul></div></div></div>"
+    "<div class=\"ui-grid-menu\" ng-if=\"shown\"><style ui-grid-style>{{dynamicStyles}}</style><div class=\"ui-grid-menu-mid\" ng-show=\"shownMid\"><div class=\"ui-grid-menu-inner\"><ul role=\"menu\" class=\"ui-grid-menu-items\"><li ng-repeat=\"item in menuItems\" role=\"menuitem\" ui-grid-menu-item ui-grid-one-bind-id=\"'menuitem-'+$index\" action=\"item.action\" name=\"item.title\" active=\"item.active\" icon=\"item.icon\" shown=\"item.shown\" context=\"item.context\" template-url=\"item.templateUrl\" leave-open=\"item.leaveOpen\" screen-reader-only=\"item.screenReaderOnly\"></li></ul></div></div></div>"
   );
 
 
@@ -27843,7 +28012,7 @@ angular.module('ui.grid').run(['$templateCache', function($templateCache) {
 
 
   $templateCache.put('ui-grid/pagination',
-    "<div role=\"contentinfo\" class=\"ui-grid-pager-panel\" ui-grid-pager ng-show=\"grid.options.enablePaginationControls\"><div role=\"navigation\" class=\"ui-grid-pager-container\"><div role=\"menubar\" class=\"ui-grid-pager-control\"><button type=\"button\" role=\"menuitem\" class=\"ui-grid-pager-first\" ui-grid-one-bind-title=\"aria.pageToFirst\" ui-grid-one-bind-aria-label=\"aria.pageToFirst\" ng-click=\"pageFirstPageClick()\" ng-disabled=\"cantPageBackward()\"><div class=\"first-triangle\"><div class=\"first-bar\"></div></div></button> <button type=\"button\" role=\"menuitem\" class=\"ui-grid-pager-previous\" ui-grid-one-bind-title=\"aria.pageBack\" ui-grid-one-bind-aria-label=\"aria.pageBack\" ng-click=\"pagePreviousPageClick()\" ng-disabled=\"cantPageBackward()\"><div class=\"first-triangle prev-triangle\"></div></button> <input type=\"number\" ui-grid-one-bind-title=\"aria.pageSelected\" ui-grid-one-bind-aria-label=\"aria.pageSelected\" class=\"ui-grid-pager-control-input\" ng-model=\"grid.options.paginationCurrentPage\" min=\"1\" max=\"{{ paginationApi.getTotalPages() }}\" required> <span class=\"ui-grid-pager-max-pages-number\" ng-show=\"paginationApi.getTotalPages() > 0\"><abbr ui-grid-one-bind-title=\"paginationOf\">/</abbr> {{ paginationApi.getTotalPages() }}</span> <button type=\"button\" role=\"menuitem\" class=\"ui-grid-pager-next\" ui-grid-one-bind-title=\"aria.pageForward\" ui-grid-one-bind-aria-label=\"aria.pageForward\" ng-click=\"pageNextPageClick()\" ng-disabled=\"cantPageForward()\"><div class=\"last-triangle next-triangle\"></div></button> <button type=\"button\" role=\"menuitem\" class=\"ui-grid-pager-last\" ui-grid-one-bind-title=\"aria.pageToLast\" ui-grid-one-bind-aria-label=\"aria.pageToLast\" ng-click=\"pageLastPageClick()\" ng-disabled=\"cantPageToLast()\"><div class=\"last-triangle\"><div class=\"last-bar\"></div></div></button></div><div class=\"ui-grid-pager-row-count-picker\" ng-if=\"grid.options.paginationPageSizes.length > 1\"><select ui-grid-one-bind-aria-labelledby-grid=\"'items-per-page-label'\" ng-model=\"grid.options.paginationPageSize\" ng-options=\"o as o for o in grid.options.paginationPageSizes\"></select><span ui-grid-one-bind-id-grid=\"'items-per-page-label'\" class=\"ui-grid-pager-row-count-label\">&nbsp;{{sizesLabel}}</span></div><span ng-if=\"grid.options.paginationPageSizes.length <= 1\" class=\"ui-grid-pager-row-count-label\">{{grid.options.paginationPageSize}}&nbsp;{{sizesLabel}}</span></div><div class=\"ui-grid-pager-count-container\"><div class=\"ui-grid-pager-count\"><span ng-show=\"grid.options.totalItems > 0\">{{showingLow}} <abbr ui-grid-one-bind-title=\"paginationThrough\">-</abbr> {{showingHigh}} {{paginationOf}} {{grid.options.totalItems}} {{totalItemsLabel}}</span></div></div></div>"
+    "<div role=\"contentinfo\" class=\"ui-grid-pager-panel\" ui-grid-pager ng-show=\"grid.options.enablePaginationControls\"><div role=\"navigation\" class=\"ui-grid-pager-container\"><div role=\"menubar\" class=\"ui-grid-pager-control\"><button type=\"button\" role=\"menuitem\" class=\"ui-grid-pager-first\" ui-grid-one-bind-title=\"aria.pageToFirst\" ui-grid-one-bind-aria-label=\"aria.pageToFirst\" ng-click=\"pageFirstPageClick()\" ng-disabled=\"cantPageBackward()\"><div ng-class=\"grid.isRTL() ? 'last-triangle' : 'first-triangle'\"><div ng-class=\"grid.isRTL() ? 'last-bar-rtl' : 'first-bar'\"></div></div></button> <button type=\"button\" role=\"menuitem\" class=\"ui-grid-pager-previous\" ui-grid-one-bind-title=\"aria.pageBack\" ui-grid-one-bind-aria-label=\"aria.pageBack\" ng-click=\"pagePreviousPageClick()\" ng-disabled=\"cantPageBackward()\"><div ng-class=\"grid.isRTL() ? 'last-triangle prev-triangle' : 'first-triangle prev-triangle'\"></div></button> <input type=\"number\" ui-grid-one-bind-title=\"aria.pageSelected\" ui-grid-one-bind-aria-label=\"aria.pageSelected\" class=\"ui-grid-pager-control-input\" ng-model=\"grid.options.paginationCurrentPage\" min=\"1\" max=\"{{ paginationApi.getTotalPages() }}\" required> <span class=\"ui-grid-pager-max-pages-number\" ng-show=\"paginationApi.getTotalPages() > 0\"><abbr ui-grid-one-bind-title=\"paginationOf\">/</abbr> {{ paginationApi.getTotalPages() }}</span> <button type=\"button\" role=\"menuitem\" class=\"ui-grid-pager-next\" ui-grid-one-bind-title=\"aria.pageForward\" ui-grid-one-bind-aria-label=\"aria.pageForward\" ng-click=\"pageNextPageClick()\" ng-disabled=\"cantPageForward()\"><div ng-class=\"grid.isRTL() ? 'first-triangle next-triangle' : 'last-triangle next-triangle'\"></div></button> <button type=\"button\" role=\"menuitem\" class=\"ui-grid-pager-last\" ui-grid-one-bind-title=\"aria.pageToLast\" ui-grid-one-bind-aria-label=\"aria.pageToLast\" ng-click=\"pageLastPageClick()\" ng-disabled=\"cantPageToLast()\"><div ng-class=\"grid.isRTL() ? 'first-triangle' : 'last-triangle'\"><div ng-class=\"grid.isRTL() ? 'first-bar-rtl' : 'last-bar'\"></div></div></button></div><div class=\"ui-grid-pager-row-count-picker\" ng-if=\"grid.options.paginationPageSizes.length > 1\"><select ui-grid-one-bind-aria-labelledby-grid=\"'items-per-page-label'\" ng-model=\"grid.options.paginationPageSize\" ng-options=\"o as o for o in grid.options.paginationPageSizes\"></select><span ui-grid-one-bind-id-grid=\"'items-per-page-label'\" class=\"ui-grid-pager-row-count-label\">&nbsp;{{sizesLabel}}</span></div><span ng-if=\"grid.options.paginationPageSizes.length <= 1\" class=\"ui-grid-pager-row-count-label\">{{grid.options.paginationPageSize}}&nbsp;{{sizesLabel}}</span></div><div class=\"ui-grid-pager-count-container\"><div class=\"ui-grid-pager-count\"><span ng-show=\"grid.options.totalItems > 0\">{{showingLow}} <abbr ui-grid-one-bind-title=\"paginationThrough\">-</abbr> {{showingHigh}} {{paginationOf}} {{grid.options.totalItems}} {{totalItemsLabel}}</span></div></div></div>"
   );
 
 
@@ -27883,7 +28052,7 @@ angular.module('ui.grid').run(['$templateCache', function($templateCache) {
 
 
   $templateCache.put('ui-grid/treeBaseHeaderCell',
-    "<div><div class=\"ui-grid-cell-contents\" col-index=\"renderIndex\"><ui-grid-tree-base-expand-all-buttons></ui-grid-tree-base-expand-all-buttons></div></div>"
+    "<div><div class=\"ui-grid-cell-contents\" col-index=\"renderIndex\"><ui-grid-tree-base-expand-all-buttons ng-if=\"grid.options.enableExpandAll\"></ui-grid-tree-base-expand-all-buttons></div></div>"
   );
 
 
index 3d675f6..3556111 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" standalone="no"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 <svg xmlns="http://www.w3.org/2000/svg">
-<metadata>Copyright (C) 2015 by original authors @ fontello.com</metadata>
+<metadata>Copyright (C) 2016 by original authors @ fontello.com</metadata>
 <defs>
 <font id="ui-grid" horiz-adv-x="1000" >
 <font-face font-family="ui-grid" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
index 4995dad..9cee108 100644 (file)
Binary files a/public/bower_components/angular-ui-grid/ui-grid.ttf and b/public/bower_components/angular-ui-grid/ui-grid.ttf differ
index a595797..fbbbb4e 100644 (file)
Binary files a/public/bower_components/angular-ui-grid/ui-grid.woff and b/public/bower_components/angular-ui-grid/ui-grid.woff differ
index 57c62cc..26f7657 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * State-based routing for AngularJS
- * @version v0.2.15
+ * @version v0.2.18
  * @link http://angular-ui.github.com/
  * @license MIT License, http://www.opensource.org/licenses/MIT
  */
@@ -22,7 +22,8 @@ var isDefined = angular.isDefined,
     isArray = angular.isArray,
     forEach = angular.forEach,
     extend = angular.extend,
-    copy = angular.copy;
+    copy = angular.copy,
+    toJson = angular.toJson;
 
 function inherit(parent, extra) {
   return extend(new (extend(function() {}, { prototype: parent }))(), extra);
@@ -109,7 +110,7 @@ function inheritParams(currentParams, newParams, $current, $to) {
   var parents = ancestors($current, $to), parentParams, inherited = {}, inheritList = [];
 
   for (var i in parents) {
-    if (!parents[i].params) continue;
+    if (!parents[i] || !parents[i].params) continue;
     parentParams = objectKeys(parents[i].params);
     if (!parentParams.length) continue;
 
@@ -522,7 +523,7 @@ function $Resolve(  $q,    $injector) {
    * propagated immediately. Once the `$resolve` promise has been rejected, no 
    * further invocables will be called.
    * 
-   * Cyclic dependencies between invocables are not permitted and will caues `$resolve`
+   * Cyclic dependencies between invocables are not permitted and will cause `$resolve`
    * to throw an error. As a special case, an injectable can depend on a parameter 
    * with the same name as the injectable, which will be fulfilled from the `parent` 
    * injectable of the same name. This allows inherited values to be decorated. 
@@ -746,13 +747,13 @@ function UrlMatcher(pattern, config, parentMatcher) {
   // The regular expression is somewhat complicated due to the need to allow curly braces
   // inside the regular expression. The placeholder regexp breaks down as follows:
   //    ([:*])([\w\[\]]+)              - classic placeholder ($1 / $2) (search version has - for snake-case)
-  //    \{([\w\[\]]+)(?:\:( ... ))?\}  - curly brace placeholder ($3) with optional regexp/type ... ($4) (search version has - for snake-case
+  //    \{([\w\[\]]+)(?:\:\s*( ... ))?\}  - curly brace placeholder ($3) with optional regexp/type ... ($4) (search version has - for snake-case
   //    (?: ... | ... | ... )+         - the regexp consists of any number of atoms, an atom being either
   //    [^{}\\]+                       - anything other than curly braces or backslash
   //    \\.                            - a backslash escape
   //    \{(?:[^{}\\]+|\\.)*\}          - a matched set of curly braces containing other atoms
-  var placeholder       = /([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,
-      searchPlaceholder = /([:]?)([\w\[\]-]+)|\{([\w\[\]-]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,
+  var placeholder       = /([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,
+      searchPlaceholder = /([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,
       compiled = '^', last = 0, m,
       segments = this.segments = [],
       parentParams = parentMatcher ? parentMatcher.params : {},
@@ -762,7 +763,7 @@ function UrlMatcher(pattern, config, parentMatcher) {
   function addParameter(id, type, config, location) {
     paramNames.push(id);
     if (parentParams[id]) return parentParams[id];
-    if (!/^\w+(-+\w+)*(?:\[\])?$/.test(id)) throw new Error("Invalid parameter name '" + id + "' in pattern '" + pattern + "'");
+    if (!/^\w+([-.]+\w+)*(?:\[\])?$/.test(id)) throw new Error("Invalid parameter name '" + id + "' in pattern '" + pattern + "'");
     if (params[id]) throw new Error("Duplicate parameter name '" + id + "' in pattern '" + pattern + "'");
     params[id] = new $$UMFP.Param(id, type, config, location);
     return params[id];
@@ -773,7 +774,10 @@ function UrlMatcher(pattern, config, parentMatcher) {
     if (!pattern) return result;
     switch(squash) {
       case false: surroundPattern = ['(', ')' + (optional ? "?" : "")]; break;
-      case true:  surroundPattern = ['?(', ')?']; break;
+      case true:
+        result = result.replace(/\/$/, '');
+        surroundPattern = ['(?:\/(', ')|\/)?'];
+      break;
       default:    surroundPattern = ['(' + squash + "|", ')?']; break;
     }
     return result + surroundPattern[0] + pattern + surroundPattern[1];
@@ -789,7 +793,11 @@ function UrlMatcher(pattern, config, parentMatcher) {
     cfg         = config.params[id];
     segment     = pattern.substring(last, m.index);
     regexp      = isSearch ? m[4] : m[4] || (m[1] == '*' ? '.*' : null);
-    type        = $$UMFP.type(regexp || "string") || inherit($$UMFP.type("string"), { pattern: new RegExp(regexp, config.caseInsensitive ? 'i' : undefined) });
+
+    if (regexp) {
+      type      = $$UMFP.type(regexp) || inherit($$UMFP.type("string"), { pattern: new RegExp(regexp, config.caseInsensitive ? 'i' : undefined) });
+    }
+
     return {
       id: id, regexp: regexp, segment: segment, type: type, cfg: cfg
     };
@@ -919,20 +927,29 @@ UrlMatcher.prototype.exec = function (path, searchParams) {
     return map(allReversed, unquoteDashes).reverse();
   }
 
+  var param, paramVal;
   for (i = 0; i < nPath; i++) {
     paramName = paramNames[i];
-    var param = this.params[paramName];
-    var paramVal = m[i+1];
+    param = this.params[paramName];
+    paramVal = m[i+1];
     // if the param value matches a pre-replace pair, replace the value before decoding.
-    for (j = 0; j < param.replace; j++) {
+    for (j = 0; j < param.replace.length; j++) {
       if (param.replace[j].from === paramVal) paramVal = param.replace[j].to;
     }
     if (paramVal && param.array === true) paramVal = decodePathArray(paramVal);
+    if (isDefined(paramVal)) paramVal = param.type.decode(paramVal);
     values[paramName] = param.value(paramVal);
   }
   for (/**/; i < nTotal; i++) {
     paramName = paramNames[i];
     values[paramName] = this.params[paramName].value(searchParams[paramName]);
+    param = this.params[paramName];
+    paramVal = searchParams[paramName];
+    for (j = 0; j < param.replace.length; j++) {
+      if (param.replace[j].from === paramVal) paramVal = param.replace[j].to;
+    }
+    if (isDefined(paramVal)) paramVal = param.type.decode(paramVal);
+    values[paramName] = param.value(paramVal);
   }
 
   return values;
@@ -956,7 +973,7 @@ UrlMatcher.prototype.parameters = function (param) {
 
 /**
  * @ngdoc function
- * @name ui.router.util.type:UrlMatcher#validate
+ * @name ui.router.util.type:UrlMatcher#validates
  * @methodOf ui.router.util.type:UrlMatcher
  *
  * @description
@@ -1009,6 +1026,8 @@ UrlMatcher.prototype.format = function (values) {
 
     if (isPathParam) {
       var nextSegment = segments[i + 1];
+      var isFinalPathParam = i + 1 === nPath;
+
       if (squash === false) {
         if (encoded != null) {
           if (isArray(encoded)) {
@@ -1024,9 +1043,12 @@ UrlMatcher.prototype.format = function (values) {
       } else if (isString(squash)) {
         result += squash + nextSegment;
       }
+
+      if (isFinalPathParam && param.squash === true && result.slice(-1) === '/') result = result.slice(0, -1);
     } else {
       if (encoded == null || (isDefaultValue && squash !== false)) continue;
       if (!isArray(encoded)) encoded = [ encoded ];
+      if (encoded.length === 0) continue;
       encoded = map(encoded, encodeURIComponent).join('&' + name + '=');
       result += (search ? '&' : '?') + (name + '=' + encoded);
       search = true;
@@ -1191,6 +1213,7 @@ Type.prototype.$asArray = function(mode, isSearch) {
     // Wraps type (.is/.encode/.decode) functions to operate on each value of an array
     function arrayHandler(callback, allTruthyMode) {
       return function handleArray(val) {
+        if (isArray(val) && val.length === 0) return val;
         val = arrayWrap(val);
         var result = map(val, callback);
         if (allTruthyMode === true)
@@ -1239,11 +1262,15 @@ function $UrlMatcherFactory() {
 
   var isCaseInsensitive = false, isStrictMode = true, defaultSquashPolicy = false;
 
-  function valToString(val) { return val != null ? val.toString().replace(/\//g, "%2F") : val; }
-  function valFromString(val) { return val != null ? val.toString().replace(/%2F/g, "/") : val; }
+  // Use tildes to pre-encode slashes.
+  // If the slashes are simply URLEncoded, the browser can choose to pre-decode them,
+  // and bidirectional encoding/decoding fails.
+  // Tilde was chosen because it's not a RFC 3986 section 2.2 Reserved Character
+  function valToString(val) { return val != null ? val.toString().replace(/~/g, "~~").replace(/\//g, "~2F") : val; }
+  function valFromString(val) { return val != null ? val.toString().replace(/~2F/g, "/").replace(/~~/g, "~") : val; }
 
   var $types = {}, enqueue = true, typeQueue = [], injector, defaultTypes = {
-    string: {
+    "string": {
       encode: valToString,
       decode: valFromString,
       // TODO: in 1.0, make string .is() return false if value is undefined/null by default.
@@ -1251,19 +1278,19 @@ function $UrlMatcherFactory() {
       is: function(val) { return val == null || !isDefined(val) || typeof val === "string"; },
       pattern: /[^/]*/
     },
-    int: {
+    "int": {
       encode: valToString,
       decode: function(val) { return parseInt(val, 10); },
       is: function(val) { return isDefined(val) && this.decode(val.toString()) === val; },
       pattern: /\d+/
     },
-    bool: {
+    "bool": {
       encode: function(val) { return val ? 1 : 0; },
       decode: function(val) { return parseInt(val, 10) !== 0; },
       is: function(val) { return val === true || val === false; },
       pattern: /0|1/
     },
-    date: {
+    "date": {
       encode: function (val) {
         if (!this.is(val))
           return undefined;
@@ -1282,14 +1309,14 @@ function $UrlMatcherFactory() {
       pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,
       capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/
     },
-    json: {
+    "json": {
       encode: angular.toJson,
       decode: angular.fromJson,
       is: angular.isObject,
       equals: angular.equals,
       pattern: /[^/]*/
     },
-    any: { // does not encode/decode
+    "any": { // does not encode/decode
       encode: angular.identity,
       decode: angular.identity,
       equals: angular.equals,
@@ -1583,7 +1610,12 @@ function $UrlMatcherFactory() {
       if (config.type && urlType) throw new Error("Param '"+id+"' has two type configurations.");
       if (urlType) return urlType;
       if (!config.type) return (location === "config" ? $types.any : $types.string);
-      return config.type instanceof Type ? config.type : new Type(config.type);
+
+      if (angular.isString(config.type))
+        return $types[config.type];
+      if (config.type instanceof Type)
+        return config.type;
+      return new Type(config.type);
     }
 
     // array config: param name (param[]) overrides default settings.  explicit config overrides param name.
@@ -1778,7 +1810,7 @@ function $UrlRouterProvider(   $locationProvider,   $urlMatcherFactory) {
    * });
    * </pre>
    *
-   * @param {object} rule Handler function that takes `$injector` and `$location`
+   * @param {function} rule Handler function that takes `$injector` and `$location`
    * services as arguments. You can use them to return a valid path as a string.
    *
    * @return {object} `$urlRouterProvider` - `$urlRouterProvider` instance
@@ -1814,7 +1846,7 @@ function $UrlRouterProvider(   $locationProvider,   $urlMatcherFactory) {
    * });
    * </pre>
    *
-   * @param {string|object} rule The url path you want to redirect to or a function 
+   * @param {string|function} rule The url path you want to redirect to or a function 
    * rule that returns the url path. The function version is passed two params: 
    * `$injector` and `$location` services, and must return a url string.
    *
@@ -1843,7 +1875,9 @@ function $UrlRouterProvider(   $locationProvider,   $urlMatcherFactory) {
    * @methodOf ui.router.router.$urlRouterProvider
    *
    * @description
-   * Registers a handler for a given url matching. if handle is a string, it is
+   * Registers a handler for a given url matching. 
+   * 
+   * If the handler is a string, it is
    * treated as a redirect, and is interpolated according to the syntax of match
    * (i.e. like `String.replace()` for `RegExp`, or like a `UrlMatcher` pattern otherwise).
    *
@@ -1872,7 +1906,7 @@ function $UrlRouterProvider(   $locationProvider,   $urlMatcherFactory) {
    * </pre>
    *
    * @param {string|object} what The incoming path that you want to redirect.
-   * @param {string|object} handler The path you want to redirect your user to.
+   * @param {string|function} handler The path you want to redirect your user to.
    */
   this.when = function (what, handler) {
     var redirect, handlerIsString = isString(handler);
@@ -1983,8 +2017,8 @@ function $UrlRouterProvider(   $locationProvider,   $urlMatcherFactory) {
    *
    */
   this.$get = $get;
-  $get.$inject = ['$location', '$rootScope', '$injector', '$browser'];
-  function $get(   $location,   $rootScope,   $injector,   $browser) {
+  $get.$inject = ['$location', '$rootScope', '$injector', '$browser', '$sniffer'];
+  function $get(   $location,   $rootScope,   $injector,   $browser,   $sniffer) {
 
     var baseHref = $browser.baseHref(), location = $location.url(), lastPushedUrl;
 
@@ -2117,6 +2151,8 @@ function $UrlRouterProvider(   $locationProvider,   $urlMatcherFactory) {
         if (angular.isObject(isHtml5)) {
           isHtml5 = isHtml5.enabled;
         }
+
+        isHtml5 = isHtml5 && $sniffer.history;
         
         var url = urlMatcher.format(params);
         options = options || {};
@@ -2190,7 +2226,7 @@ function $StateProvider(   $urlRouterProvider,   $urlMatcherFactory) {
     // inherit 'data' from parent and override by own values (if any)
     data: function(state) {
       if (state.parent && state.parent.data) {
-        state.data = state.self.data = extend({}, state.parent.data, state.data);
+        state.data = state.self.data = inherit(state.parent.data, state.data);
       }
       return state.data;
     },
@@ -2224,7 +2260,8 @@ function $StateProvider(   $urlRouterProvider,   $urlMatcherFactory) {
 
     // Derive parameters for this state and ensure they're a super-set of parent's parameters
     params: function(state) {
-      return state.parent && state.parent.params ? extend(state.parent.params.$$new(), state.ownParams) : new $$UMFP.ParamSet();
+      var ownParams = pick(state.ownParams, state.ownParams.$$keys());
+      return state.parent && state.parent.params ? extend(state.parent.params.$$new(), ownParams) : new $$UMFP.ParamSet();
     },
 
     // If there is no explicit multi-view configuration, make one up so we don't have
@@ -2321,7 +2358,7 @@ function $StateProvider(   $urlRouterProvider,   $urlMatcherFactory) {
 
     var name = state.name;
     if (!isString(name) || name.indexOf('@') >= 0) throw new Error("State must have a valid name");
-    if (states.hasOwnProperty(name)) throw new Error("State '" + name + "'' is already defined");
+    if (states.hasOwnProperty(name)) throw new Error("State '" + name + "' is already defined");
 
     // Get parent name
     var parentName = (name.indexOf('.') !== -1) ? name.substring(0, name.lastIndexOf('.'))
@@ -2689,7 +2726,7 @@ function $StateProvider(   $urlRouterProvider,   $urlMatcherFactory) {
    *
    * Callback function for when a state is entered. Good way
    *   to trigger an action or dispatch an event, such as opening a dialog.
-   * If minifying your scripts, make sure to explictly annotate this function,
+   * If minifying your scripts, make sure to explicitly annotate this function,
    * because it won't be automatically annotated by your build tools.
    *
    * <pre>onEnter: function(MyService, $stateParams) {
@@ -2701,7 +2738,7 @@ function $StateProvider(   $urlRouterProvider,   $urlMatcherFactory) {
    *
    * Callback function for when a state is exited. Good way to
    *   trigger an action or dispatch an event, such as opening a dialog.
-   * If minifying your scripts, make sure to explictly annotate this function,
+   * If minifying your scripts, make sure to explicitly annotate this function,
    * because it won't be automatically annotated by your build tools.
    *
    * <pre>onExit: function(MyService, $stateParams) {
@@ -3032,7 +3069,8 @@ function $StateProvider(   $urlRouterProvider,   $urlMatcherFactory) {
      *
      * @param {object=} params A map of the parameters that will be sent to the state, 
      * will populate $stateParams. Any parameters that are not specified will be inherited from currently 
-     * defined parameters. This allows, for example, going to a sibling state that shares parameters
+     * defined parameters. Only parameters specified in the state definition can be overridden, new 
+     * parameters will be ignored. This allows, for example, going to a sibling state that shares parameters
      * specified in a parent state. Parameter inheritance only works between common ancestor states, I.e.
      * transitioning to a sibling will get you the parameters for all parents, transitioning to a child
      * will get you all current parameters, etc.
@@ -3044,9 +3082,10 @@ function $StateProvider(   $urlRouterProvider,   $urlMatcherFactory) {
      * - **`relative`** - {object=$state.$current}, When transitioning with relative path (e.g '^'), 
      *    defines which state to be relative from.
      * - **`notify`** - {boolean=true}, If `true` will broadcast $stateChangeStart and $stateChangeSuccess events.
-     * - **`reload`** (v0.2.5) - {boolean=false}, If `true` will force transition even if the state or params 
-     *    have not changed, aka a reload of the same state. It differs from reloadOnSearch because you'd
-     *    use this when you want to force a reload when *everything* is the same, including search params.
+     * - **`reload`** (v0.2.5) - {boolean=false|string|object}, If `true` will force transition even if no state or params
+     *    have changed.  It will reload the resolves and views of the current state and parent states.
+     *    If `reload` is a string (or state object), the state object is fetched (by name, or object reference); and \
+     *    the transition reloads the resolves and views for that matched state, and all its children states.
      *
      * @returns {promise} A promise representing the state of the new transition.
      *
@@ -3184,6 +3223,7 @@ function $StateProvider(   $urlRouterProvider,   $urlMatcherFactory) {
         if (hash) toParams['#'] = hash;
         $state.params = toParams;
         copy($state.params, $stateParams);
+        copy(filterByKeys(to.params.$$keys(), $stateParams), to.locals.globals.$stateParams);
         if (options.location && to.navigable && to.navigable.url) {
           $urlRouter.push(to.navigable.url, toParams, {
             $$avoidResync: true, replace: options.location === 'replace'
@@ -3196,7 +3236,10 @@ function $StateProvider(   $urlRouterProvider,   $urlMatcherFactory) {
 
       // Filter parameters before we pass them to event handlers etc.
       toParams = filterByKeys(to.params.$$keys(), toParams || {});
-
+      
+      // Re-add the saved hash before we start returning things or broadcasting $stateChangeStart
+      if (hash) toParams['#'] = hash;
+      
       // Broadcast start event and cancel the transition if requested
       if (options.notify) {
         /**
@@ -3226,9 +3269,10 @@ function $StateProvider(   $urlRouterProvider,   $urlMatcherFactory) {
          * })
          * </pre>
          */
-        if ($rootScope.$broadcast('$stateChangeStart', to.self, toParams, from.self, fromParams).defaultPrevented) {
+        if ($rootScope.$broadcast('$stateChangeStart', to.self, toParams, from.self, fromParams, options).defaultPrevented) {
           $rootScope.$broadcast('$stateChangeCancel', to.self, toParams, from.self, fromParams);
-          $urlRouter.update();
+          //Don't update and resync url if there's been a new transition started. see issue #2238, #600
+          if ($state.transition == null) $urlRouter.update();
           return TransitionPrevented;
         }
       }
@@ -3274,9 +3318,6 @@ function $StateProvider(   $urlRouterProvider,   $urlMatcherFactory) {
           }
         }
 
-        // Re-add the saved hash before we start returning things
-        if (hash) toParams['#'] = hash;
-
         // Run it again, to catch any transitions in callbacks
         if ($state.transition !== transition) return TransitionSuperseded;
 
@@ -3610,7 +3651,7 @@ function $StateProvider(   $urlRouterProvider,   $urlMatcherFactory) {
 }
 
 angular.module('ui.router.state')
-  .value('$stateParams', {})
+  .factory('$stateParams', function () { return {}; })
   .provider('$state', $StateProvider);
 
 
@@ -3651,32 +3692,6 @@ function $ViewProvider() {
         if (options.view) {
           result = $templateFactory.fromConfig(options.view, options.params, options.locals);
         }
-        if (result && options.notify) {
-        /**
-         * @ngdoc event
-         * @name ui.router.state.$state#$viewContentLoading
-         * @eventOf ui.router.state.$view
-         * @eventType broadcast on root scope
-         * @description
-         *
-         * Fired once the view **begins loading**, *before* the DOM is rendered.
-         *
-         * @param {Object} event Event object.
-         * @param {Object} viewConfig The view config properties (template, controller, etc).
-         *
-         * @example
-         *
-         * <pre>
-         * $scope.$on('$viewContentLoading',
-         * function(event, viewConfig){
-         *     // Access to all the view config properties.
-         *     // and one special property 'targetView'
-         *     // viewConfig.targetView
-         * });
-         * </pre>
-         */
-          $rootScope.$broadcast('$viewContentLoading', options);
-        }
         return result;
       }
     };
@@ -3738,6 +3753,8 @@ function $ViewScrollProvider() {
 
 angular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider);
 
+var ngMajorVer = angular.version.major;
+var ngMinorVer = angular.version.minor;
 /**
  * @ngdoc directive
  * @name ui.router.state.directive:ui-view
@@ -3762,6 +3779,9 @@ angular.module('ui.router.state').provider('$uiViewScroll', $ViewScrollProvider)
  * service, {@link ui.router.state.$uiViewScroll}. This custom service let's you
  * scroll ui-view elements into view when they are populated during a state activation.
  *
+ * @param {string=} noanimation If truthy, the non-animated renderer will be selected (no animations
+ * will be applied to the ui-view)
+ *
  * *Note: To revert back to old [`$anchorScroll`](http://docs.angularjs.org/api/ng.$anchorScroll)
  * functionality, call `$uiViewScrollProvider.useAnchorScroll()`.*
  *
@@ -3873,26 +3893,44 @@ function $ViewDirective(   $state,   $injector,   $uiViewScroll,   $interpolate)
   // Returns a set of DOM manipulation functions based on which Angular version
   // it should use
   function getRenderer(attrs, scope) {
-    var statics = function() {
-      return {
-        enter: function (element, target, cb) { target.after(element); cb(); },
-        leave: function (element, cb) { element.remove(); cb(); }
-      };
+    var statics = {
+      enter: function (element, target, cb) { target.after(element); cb(); },
+      leave: function (element, cb) { element.remove(); cb(); }
     };
 
+    if (!!attrs.noanimation) return statics;
+
+    function animEnabled(element) {
+      if (ngMajorVer === 1 && ngMinorVer >= 4) return !!$animate.enabled(element);
+      if (ngMajorVer === 1 && ngMinorVer >= 2) return !!$animate.enabled();
+      return (!!$animator);
+    }
+
+    // ng 1.2+
     if ($animate) {
       return {
         enter: function(element, target, cb) {
-          var promise = $animate.enter(element, null, target, cb);
-          if (promise && promise.then) promise.then(cb);
+          if (!animEnabled(element)) {
+            statics.enter(element, target, cb);
+          } else if (angular.version.minor > 2) {
+            $animate.enter(element, null, target).then(cb);
+          } else {
+            $animate.enter(element, null, target, cb);
+          }
         },
         leave: function(element, cb) {
-          var promise = $animate.leave(element, cb);
-          if (promise && promise.then) promise.then(cb);
+          if (!animEnabled(element)) {
+            statics.leave(element, cb);
+          } else if (angular.version.minor > 2) {
+            $animate.leave(element).then(cb);
+          } else {
+            $animate.leave(element, cb);
+          }
         }
       };
     }
 
+    // ng 1.1.5
     if ($animator) {
       var animate = $animator && $animator(scope, attrs);
 
@@ -3902,7 +3940,7 @@ function $ViewDirective(   $state,   $injector,   $uiViewScroll,   $interpolate)
       };
     }
 
-    return statics();
+    return statics;
   }
 
   var directive = {
@@ -3920,31 +3958,41 @@ function $ViewDirective(   $state,   $injector,   $uiViewScroll,   $interpolate)
         scope.$on('$stateChangeSuccess', function() {
           updateView(false);
         });
-        scope.$on('$viewContentLoading', function() {
-          updateView(false);
-        });
 
         updateView(true);
 
         function cleanupLastView() {
-          if (previousEl) {
-            previousEl.remove();
-            previousEl = null;
+          var _previousEl = previousEl;
+          var _currentScope = currentScope;
+
+          if (_currentScope) {
+            _currentScope._willBeDestroyed = true;
           }
 
-          if (currentScope) {
-            currentScope.$destroy();
-            currentScope = null;
+          function cleanOld() {
+            if (_previousEl) {
+              _previousEl.remove();
+            }
+
+            if (_currentScope) {
+              _currentScope.$destroy();
+            }
           }
 
           if (currentEl) {
             renderer.leave(currentEl, function() {
+              cleanOld();
               previousEl = null;
             });
 
             previousEl = currentEl;
-            currentEl = null;
+          } else {
+            cleanOld();
+            previousEl = null;
           }
+
+          currentEl = null;
+          currentScope = null;
         }
 
         function updateView(firstTime) {
@@ -3952,10 +4000,24 @@ function $ViewDirective(   $state,   $injector,   $uiViewScroll,   $interpolate)
               name            = getUiViewName(scope, attrs, $element, $interpolate),
               previousLocals  = name && $state.$current && $state.$current.locals[name];
 
-          if (!firstTime && previousLocals === latestLocals) return; // nothing to do
+          if (!firstTime && previousLocals === latestLocals || scope._willBeDestroyed) return; // nothing to do
           newScope = scope.$new();
           latestLocals = $state.$current.locals[name];
 
+          /**
+           * @ngdoc event
+           * @name ui.router.state.directive:ui-view#$viewContentLoading
+           * @eventOf ui.router.state.directive:ui-view
+           * @eventType emits on ui-view directive scope
+           * @description
+           *
+           * Fired once the view **begins loading**, *before* the DOM is rendered.
+           *
+           * @param {Object} event Event object.
+           * @param {string} viewName Name of the view.
+           */
+          newScope.$emit('$viewContentLoading', name);
+
           var clone = $transclude(newScope, function(clone) {
             renderer.enter(clone, $element, function onUiViewEnter() {
               if(currentScope) {
@@ -3976,12 +4038,13 @@ function $ViewDirective(   $state,   $injector,   $uiViewScroll,   $interpolate)
            * @name ui.router.state.directive:ui-view#$viewContentLoaded
            * @eventOf ui.router.state.directive:ui-view
            * @eventType emits on ui-view directive scope
-           * @description           *
+           * @description
            * Fired once the view is **loaded**, *after* the DOM is rendered.
            *
            * @param {Object} event Event object.
+           * @param {string} viewName Name of the view.
            */
-          currentScope.$emit('$viewContentLoaded');
+          currentScope.$emit('$viewContentLoaded', name);
           currentScope.$eval(onloadExp);
         }
       };
@@ -4058,6 +4121,43 @@ function stateContext(el) {
   }
 }
 
+function getTypeInfo(el) {
+  // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute.
+  var isSvg = Object.prototype.toString.call(el.prop('href')) === '[object SVGAnimatedString]';
+  var isForm = el[0].nodeName === "FORM";
+
+  return {
+    attr: isForm ? "action" : (isSvg ? 'xlink:href' : 'href'),
+    isAnchor: el.prop("tagName").toUpperCase() === "A",
+    clickable: !isForm
+  };
+}
+
+function clickHook(el, $state, $timeout, type, current) {
+  return function(e) {
+    var button = e.which || e.button, target = current();
+
+    if (!(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || el.attr('target'))) {
+      // HACK: This is to allow ng-clicks to be processed before the transition is initiated:
+      var transition = $timeout(function() {
+        $state.go(target.state, target.params, target.options);
+      });
+      e.preventDefault();
+
+      // if the state has no URL, ignore one preventDefault from the <a> directive.
+      var ignorePreventDefaultCount = type.isAnchor && !target.href ? 1: 0;
+
+      e.preventDefault = function() {
+        if (ignorePreventDefaultCount-- <= 0) $timeout.cancel(transition);
+      };
+    }
+  };
+}
+
+function defaultOpts(el, $state) {
+  return { relative: stateContext(el) || $state.$current, inherit: true };
+}
+
 /**
  * @ngdoc directive
  * @name ui.router.state.directive:ui-sref
@@ -4068,17 +4168,17 @@ function stateContext(el) {
  * @restrict A
  *
  * @description
- * A directive that binds a link (`<a>` tag) to a state. If the state has an associated 
- * URL, the directive will automatically generate & update the `href` attribute via 
- * the {@link ui.router.state.$state#methods_href $state.href()} method. Clicking 
- * the link will trigger a state transition with optional parameters. 
+ * A directive that binds a link (`<a>` tag) to a state. If the state has an associated
+ * URL, the directive will automatically generate & update the `href` attribute via
+ * the {@link ui.router.state.$state#methods_href $state.href()} method. Clicking
+ * the link will trigger a state transition with optional parameters.
  *
- * Also middle-clicking, right-clicking, and ctrl-clicking on the link will be 
+ * Also middle-clicking, right-clicking, and ctrl-clicking on the link will be
  * handled natively by the browser.
  *
- * You can also use relative state paths within ui-sref, just like the relative 
+ * You can also use relative state paths within ui-sref, just like the relative
  * paths passed to `$state.go()`. You just need to be aware that the path is relative
- * to the state that the link lives in, in other words the state that loaded the 
+ * to the state that the link lives in, in other words the state that loaded the
  * template containing the link.
  *
  * You can specify options to pass to {@link ui.router.state.$state#go $state.go()}
@@ -4086,22 +4186,22 @@ function stateContext(el) {
  * and `reload`.
  *
  * @example
- * Here's an example of how you'd use ui-sref and how it would compile. If you have the 
+ * Here's an example of how you'd use ui-sref and how it would compile. If you have the
  * following template:
  * <pre>
  * <a ui-sref="home">Home</a> | <a ui-sref="about">About</a> | <a ui-sref="{page: 2}">Next page</a>
- * 
+ *
  * <ul>
  *     <li ng-repeat="contact in contacts">
  *         <a ui-sref="contacts.detail({ id: contact.id })">{{ contact.name }}</a>
  *     </li>
  * </ul>
  * </pre>
- * 
+ *
  * Then the compiled html would be (assuming Html5Mode is off and current state is contacts):
  * <pre>
  * <a href="#/home" ui-sref="home">Home</a> | <a href="#/about" ui-sref="about">About</a> | <a href="#/contacts?page=2" ui-sref="{page: 2}">Next page</a>
- * 
+ *
  * <ul>
  *     <li ng-repeat="contact in contacts">
  *         <a href="#/contacts/1" ui-sref="contacts.detail({ id: contact.id })">Joe</a>
@@ -4122,78 +4222,83 @@ function stateContext(el) {
  */
 $StateRefDirective.$inject = ['$state', '$timeout'];
 function $StateRefDirective($state, $timeout) {
-  var allowedOptions = ['location', 'inherit', 'reload', 'absolute'];
-
   return {
     restrict: 'A',
     require: ['?^uiSrefActive', '?^uiSrefActiveEq'],
     link: function(scope, element, attrs, uiSrefActive) {
-      var ref = parseStateRef(attrs.uiSref, $state.current.name);
-      var params = null, url = null, base = stateContext(element) || $state.$current;
-      // SVGAElement does not use the href attribute, but rather the 'xlinkHref' attribute.
-      var hrefKind = Object.prototype.toString.call(element.prop('href')) === '[object SVGAnimatedString]' ?
-                 'xlink:href' : 'href';
-      var newHref = null, isAnchor = element.prop("tagName").toUpperCase() === "A";
-      var isForm = element[0].nodeName === "FORM";
-      var attr = isForm ? "action" : hrefKind, nav = true;
-
-      var options = { relative: base, inherit: true };
-      var optionsOverride = scope.$eval(attrs.uiSrefOpts) || {};
-
-      angular.forEach(allowedOptions, function(option) {
-        if (option in optionsOverride) {
-          options[option] = optionsOverride[option];
-        }
-      });
+      var ref    = parseStateRef(attrs.uiSref, $state.current.name);
+      var def    = { state: ref.state, href: null, params: null };
+      var type   = getTypeInfo(element);
+      var active = uiSrefActive[1] || uiSrefActive[0];
 
-      var update = function(newVal) {
-        if (newVal) params = angular.copy(newVal);
-        if (!nav) return;
+      def.options = extend(defaultOpts(element, $state), attrs.uiSrefOpts ? scope.$eval(attrs.uiSrefOpts) : {});
 
-        newHref = $state.href(ref.state, params, options);
+      var update = function(val) {
+        if (val) def.params = angular.copy(val);
+        def.href = $state.href(ref.state, def.params, def.options);
 
-        var activeDirective = uiSrefActive[1] || uiSrefActive[0];
-        if (activeDirective) {
-          activeDirective.$$addStateInfo(ref.state, params);
-        }
-        if (newHref === null) {
-          nav = false;
-          return false;
-        }
-        attrs.$set(attr, newHref);
+        if (active) active.$$addStateInfo(ref.state, def.params);
+        if (def.href !== null) attrs.$set(type.attr, def.href);
       };
 
       if (ref.paramExpr) {
-        scope.$watch(ref.paramExpr, function(newVal, oldVal) {
-          if (newVal !== params) update(newVal);
-        }, true);
-        params = angular.copy(scope.$eval(ref.paramExpr));
+        scope.$watch(ref.paramExpr, function(val) { if (val !== def.params) update(val); }, true);
+        def.params = angular.copy(scope.$eval(ref.paramExpr));
       }
       update();
 
-      if (isForm) return;
+      if (!type.clickable) return;
+      element.bind("click", clickHook(element, $state, $timeout, type, function() { return def; }));
+    }
+  };
+}
 
-      element.bind("click", function(e) {
-        var button = e.which || e.button;
-        if ( !(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || element.attr('target')) ) {
-          // HACK: This is to allow ng-clicks to be processed before the transition is initiated:
-          var transition = $timeout(function() {
-            $state.go(ref.state, params, options);
-          });
-          e.preventDefault();
-
-          // if the state has no URL, ignore one preventDefault from the <a> directive.
-          var ignorePreventDefaultCount = isAnchor && !newHref ? 1: 0;
-          e.preventDefault = function() {
-            if (ignorePreventDefaultCount-- <= 0)
-              $timeout.cancel(transition);
-          };
-        }
-      });
+/**
+ * @ngdoc directive
+ * @name ui.router.state.directive:ui-state
+ *
+ * @requires ui.router.state.uiSref
+ *
+ * @restrict A
+ *
+ * @description
+ * Much like ui-sref, but will accept named $scope properties to evaluate for a state definition,
+ * params and override options.
+ *
+ * @param {string} ui-state 'stateName' can be any valid absolute or relative state
+ * @param {Object} ui-state-params params to pass to {@link ui.router.state.$state#href $state.href()}
+ * @param {Object} ui-state-opts options to pass to {@link ui.router.state.$state#go $state.go()}
+ */
+$StateRefDynamicDirective.$inject = ['$state', '$timeout'];
+function $StateRefDynamicDirective($state, $timeout) {
+  return {
+    restrict: 'A',
+    require: ['?^uiSrefActive', '?^uiSrefActiveEq'],
+    link: function(scope, element, attrs, uiSrefActive) {
+      var type   = getTypeInfo(element);
+      var active = uiSrefActive[1] || uiSrefActive[0];
+      var group  = [attrs.uiState, attrs.uiStateParams || null, attrs.uiStateOpts || null];
+      var watch  = '[' + group.map(function(val) { return val || 'null'; }).join(', ') + ']';
+      var def    = { state: null, params: null, options: null, href: null };
+
+      function runStateRefLink (group) {
+        def.state = group[0]; def.params = group[1]; def.options = group[2];
+        def.href = $state.href(def.state, def.params, def.options);
+
+        if (active) active.$$addStateInfo(def.state, def.params);
+        if (def.href) attrs.$set(type.attr, def.href);
+      }
+
+      scope.$watch(watch, runStateRefLink, true);
+      runStateRefLink(scope.$eval(watch));
+
+      if (!type.clickable) return;
+      element.bind("click", clickHook(element, $state, $timeout, type, function() { return def; }));
     }
   };
 }
 
+
 /**
  * @ngdoc directive
  * @name ui.router.state.directive:ui-sref-active
@@ -4251,6 +4356,24 @@ function $StateRefDirective($state, $timeout) {
  *   </li>
  * </ul>
  * </pre>
+ *
+ * It is also possible to pass ui-sref-active an expression that evaluates
+ * to an object hash, whose keys represent active class names and whose
+ * values represent the respective state names/globs.
+ * ui-sref-active will match if the current active state **includes** any of
+ * the specified state names/globs, even the abstract ones.
+ *
+ * @Example
+ * Given the following template, with "admin" being an abstract state:
+ * <pre>
+ * <div ui-sref-active="{'active': 'admin.*'}">
+ *   <a ui-sref-active="active" ui-sref="admin.roles">Roles</a>
+ * </div>
+ * </pre>
+ *
+ * When the current state is "admin.roles" the "active" class will be applied
+ * to both the <div> and <a> elements. It is important to note that the state
+ * names/globs passed to ui-sref-active shadow the state provided by ui-sref.
  */
 
 /**
@@ -4272,53 +4395,98 @@ $StateRefActiveDirective.$inject = ['$state', '$stateParams', '$interpolate'];
 function $StateRefActiveDirective($state, $stateParams, $interpolate) {
   return  {
     restrict: "A",
-    controller: ['$scope', '$element', '$attrs', function ($scope, $element, $attrs) {
-      var states = [], activeClass;
+    controller: ['$scope', '$element', '$attrs', '$timeout', function ($scope, $element, $attrs, $timeout) {
+      var states = [], activeClasses = {}, activeEqClass, uiSrefActive;
 
       // There probably isn't much point in $observing this
       // uiSrefActive and uiSrefActiveEq share the same directive object with some
       // slight difference in logic routing
-      activeClass = $interpolate($attrs.uiSrefActiveEq || $attrs.uiSrefActive || '', false)($scope);
-
-      // Allow uiSref to communicate with uiSrefActive[Equals]
-      this.$$addStateInfo = function (newState, newParams) {
-        var state = $state.get(newState, stateContext($element));
+      activeEqClass = $interpolate($attrs.uiSrefActiveEq || '', false)($scope);
 
-        states.push({
-          state: state || { name: newState },
-          params: newParams
+      try {
+        uiSrefActive = $scope.$eval($attrs.uiSrefActive);
+      } catch (e) {
+        // Do nothing. uiSrefActive is not a valid expression.
+        // Fall back to using $interpolate below
+      }
+      uiSrefActive = uiSrefActive || $interpolate($attrs.uiSrefActive || '', false)($scope);
+      if (isObject(uiSrefActive)) {
+        forEach(uiSrefActive, function(stateOrName, activeClass) {
+          if (isString(stateOrName)) {
+            var ref = parseStateRef(stateOrName, $state.current.name);
+            addState(ref.state, $scope.$eval(ref.paramExpr), activeClass);
+          }
         });
+      }
 
+      // Allow uiSref to communicate with uiSrefActive[Equals]
+      this.$$addStateInfo = function (newState, newParams) {
+        // we already got an explicit state provided by ui-sref-active, so we
+        // shadow the one that comes from ui-sref
+        if (isObject(uiSrefActive) && states.length > 0) {
+          return;
+        }
+        addState(newState, newParams, uiSrefActive);
         update();
       };
 
       $scope.$on('$stateChangeSuccess', update);
 
-      // Update route state
-      function update() {
-        if (anyMatch()) {
-          $element.addClass(activeClass);
-        } else {
-          $element.removeClass(activeClass);
+      function addState(stateName, stateParams, activeClass) {
+        var state = $state.get(stateName, stateContext($element));
+        var stateHash = createStateHash(stateName, stateParams);
+
+        states.push({
+          state: state || { name: stateName },
+          params: stateParams,
+          hash: stateHash
+        });
+
+        activeClasses[stateHash] = activeClass;
+      }
+
+      /**
+       * @param {string} state
+       * @param {Object|string} [params]
+       * @return {string}
+       */
+      function createStateHash(state, params) {
+        if (!isString(state)) {
+          throw new Error('state should be a string');
+        }
+        if (isObject(params)) {
+          return state + toJson(params);
         }
+        params = $scope.$eval(params);
+        if (isObject(params)) {
+          return state + toJson(params);
+        }
+        return state;
       }
 
-      function anyMatch() {
+      // Update route state
+      function update() {
         for (var i = 0; i < states.length; i++) {
-          if (isMatch(states[i].state, states[i].params)) {
-            return true;
+          if (anyMatch(states[i].state, states[i].params)) {
+            addClass($element, activeClasses[states[i].hash]);
+          } else {
+            removeClass($element, activeClasses[states[i].hash]);
           }
-        }
-        return false;
-      }
 
-      function isMatch(state, params) {
-        if (typeof $attrs.uiSrefActiveEq !== 'undefined') {
-          return $state.is(state.name, params);
-        } else {
-          return $state.includes(state.name, params);
+          if (exactMatch(states[i].state, states[i].params)) {
+            addClass($element, activeEqClass);
+          } else {
+            removeClass($element, activeEqClass);
+          }
         }
       }
+
+      function addClass(el, className) { $timeout(function () { el.addClass(className); }); }
+      function removeClass(el, className) { el.removeClass(className); }
+      function anyMatch(state, params) { return $state.includes(state.name, params); }
+      function exactMatch(state, params) { return $state.is(state.name, params); }
+
+      update();
     }]
   };
 }
@@ -4326,7 +4494,8 @@ function $StateRefActiveDirective($state, $stateParams, $interpolate) {
 angular.module('ui.router.state')
   .directive('uiSref', $StateRefDirective)
   .directive('uiSrefActive', $StateRefActiveDirective)
-  .directive('uiSrefActiveEq', $StateRefActiveDirective);
+  .directive('uiSrefActiveEq', $StateRefActiveDirective)
+  .directive('uiState', $StateRefDynamicDirective);
 
 /**
  * @ngdoc filter
@@ -4339,8 +4508,8 @@ angular.module('ui.router.state')
  */
 $IsStateFilter.$inject = ['$state'];
 function $IsStateFilter($state) {
-  var isFilter = function (state) {
-    return $state.is(state);
+  var isFilter = function (state, params) {
+    return $state.is(state, params);
   };
   isFilter.$stateful = true;
   return isFilter;
@@ -4357,8 +4526,8 @@ function $IsStateFilter($state) {
  */
 $IncludedByStateFilter.$inject = ['$state'];
 function $IncludedByStateFilter($state) {
-  var includesFilter = function (state) {
-    return $state.includes(state);
+  var includesFilter = function (state, params, options) {
+    return $state.includes(state, params, options);
   };
   includesFilter.$stateful = true;
   return  includesFilter;
index 6e9b19f..8919a90 100644 (file)
@@ -1,7 +1,116 @@
-/*!
-angular-xeditable - 0.1.9
-Edit-in-place for angular.js
-Build date: 2015-03-26 
-*/
 
-.editable-wrap{display:inline-block;white-space:nowrap;margin:0}.editable-wrap .editable-controls,.editable-wrap .editable-error{margin-bottom:0}.editable-wrap .editable-controls>input,.editable-wrap .editable-controls>select,.editable-wrap .editable-controls>textarea{margin-bottom:0}.editable-wrap .editable-input{display:inline-block}.editable-buttons{display:inline-block;vertical-align:top}.editable-buttons button{margin-left:5px}.editable-input.editable-has-buttons{width:auto}.editable-bstime .editable-input input[type=text]{width:46px}.editable-bstime .well-small{margin-bottom:0;padding:10px}.editable-range output{display:inline-block;min-width:30px;vertical-align:top;text-align:center}.editable-color input[type=color]{width:50px}.editable-checkbox label span,.editable-checklist label span,.editable-radiolist label span{margin-left:7px;margin-right:10px}.editable-hide{display:none!important}.editable-click,a.editable-click{text-decoration:none;color:#428bca;border-bottom:dashed 1px #428bca}.editable-click:hover,a.editable-click:hover{text-decoration:none;color:#2a6496;border-bottom-color:#2a6496}.editable-empty,.editable-empty:hover,.editable-empty:focus,a.editable-empty,a.editable-empty:hover,a.editable-empty:focus{font-style:italic;color:#D14;text-decoration:none}
\ No newline at end of file
+/* ==== editable-form ==== */
+
+/* class for single editable element */
+.editable-wrap {
+  display: inline-block;
+  white-space: nowrap;
+  margin: 0;
+}
+
+/* remove bottom-margin for bootstrap */
+.editable-wrap .editable-controls,
+.editable-wrap .editable-error {
+  margin-bottom: 0;
+}
+
+/* remove bottom-margin of inputs */
+.editable-wrap .editable-controls > input,
+.editable-wrap .editable-controls > select,
+.editable-wrap .editable-controls > textarea {
+  margin-bottom: 0;
+}
+
+/* keep buttons on the same line */
+.editable-wrap .editable-input {
+  display: inline-block;
+}
+
+.editable-buttons {
+  display: inline-block;
+  vertical-align: top;
+}
+
+.editable-buttons button {
+  margin-left: 5px;
+}
+
+/* in bootstrap width: 100% => buttons go outside the box */
+.editable-input.editable-has-buttons {
+  width: auto;
+}
+
+/* ==== editable-bstime ==== */
+
+/* workaround for bootstrap that sets width: 100% and inputs become too wide */
+.editable-bstime .editable-input input[type="text"] {
+  width: 46px;
+}
+
+/* less padding for .well */
+.editable-bstime .well-small {
+  margin-bottom: 0;
+  padding: 10px;
+}
+
+/* ==== editable-range ==== */
+
+.editable-range output {
+  display: inline-block;
+  min-width: 30px;
+  vertical-align: top;
+  text-align: center;
+}
+
+/* ==== editable-color ==== */
+
+.editable-color input[type="color"] {
+  width: 50px;
+}
+
+
+/* ==== editable-checkbox ==== */
+/* ==== editable-checklist ==== */
+/* ==== editable-radiolist ==== */
+
+.editable-checkbox label span,
+.editable-checklist label span,
+.editable-radiolist label span {
+  margin-left: 7px;
+  margin-right: 10px;
+}
+
+/* ==== element ==== */
+
+/* hiding element */
+.editable-hide {
+  display: none !important;
+}
+
+.editable-click,
+a.editable-click {
+  text-decoration: none;
+  color: #428bca;
+  border-bottom: dashed 1px #428bca;
+}
+
+.editable-click:hover, 
+a.editable-click:hover {
+  text-decoration: none;
+  color: #2a6496;
+  border-bottom-color: #2a6496;
+}
+
+/* editable-empty */
+.editable-empty, 
+.editable-empty:hover, 
+.editable-empty:focus,
+a.editable-empty, 
+a.editable-empty:hover, 
+a.editable-empty:focus {
+  font-style: italic; 
+  color: #DD1144;  
+  text-decoration: none;
+}
+
+
index cde698b..c6e1378 100644 (file)
@@ -1,7 +1,7 @@
 /*!
-angular-xeditable - 0.1.9
+angular-xeditable - 0.1.10
 Edit-in-place for angular.js
-Build date: 2015-03-26 
+Build date: 2016-02-16 
 */
 /**
  * Angular-xeditable module 
@@ -228,9 +228,20 @@ angular.module('xeditable').directive('editableCombodate', ['editableDirectiveFa
       inputTpl: '<input type="text">',
       render: function() {
         this.parent.render.call(this);
-        var combodate = editableCombodate.getInstance(this.inputEl, {value: new Date(this.scope.$data)});
 
+        var options = {
+          value: new Date(this.scope.$data)
+        };
         var self = this;
+        angular.forEach(["format", "template", "minYear", "maxYear", "yearDescending", "minuteStep", "secondStep", "firstItem", "errorClass", "customClass", "roundTime", "smartDays"], function(name) {
+
+          var attrName = "e" + name.charAt(0).toUpperCase() + name.slice(1);
+          if (attrName in self.attrs) {
+            options[name] = self.attrs[attrName];
+          }
+        });
+
+        var combodate = editableCombodate.getInstance(this.inputEl, options);
         combodate.$widget.find('select').bind('change', function(e) {
           self.scope.$data = (new Date(combodate.getValue())).toISOString();
         });
@@ -238,6 +249,7 @@ angular.module('xeditable').directive('editableCombodate', ['editableDirectiveFa
     });
   }
 ]);
+
 /*
 Input types: text|email|tel|number|url|search|color|date|datetime|time|month|week
 */
@@ -857,7 +869,7 @@ function($parse, $compile, editableThemes, $rootScope, $document, editableContro
         // element wrapped by form
         if(ctrl[1]) {
           eFormCtrl = ctrl[1];
-          hasForm = true;
+          hasForm = attrs.eSingle === undefined;
         } else if(attrs.eForm) { // element not wrapped by <form>, but we hane `e-form` attr
           var getter = $parse(attrs.eForm)(scope);
           if(getter) { // form exists in scope (above), e.g. editable column
@@ -1040,6 +1052,11 @@ angular.module('xeditable').factory('editableFormController',
     }
   });
  
+  $rootScope.$on('closeEdit', function() {
+    for(var i=0; i < shown.length; i++) {
+      shown[i].$hide();
+    }
+  }); 
 
   var base = {
     $addEditable: function(editable) {
@@ -1058,6 +1075,7 @@ angular.module('xeditable').factory('editableFormController',
       if (this.$visible) {
         editable.catchError(editable.show());
       }
+      editable.catchError(editable.setWaiting(this.$waiting));
     },
 
     $removeEditable: function(editable) {
index a3aee7d..62ac185 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @license AngularJS v1.4.8
+ * @license AngularJS v1.4.9
  * (c) 2010-2015 Google, Inc. http://angularjs.org
  * License: MIT
  */
@@ -57,7 +57,7 @@ function minErr(module, ErrorConstructor) {
       return match;
     });
 
-    message += '\nhttp://errors.angularjs.org/1.4.8/' +
+    message += '\nhttp://errors.angularjs.org/1.4.9/' +
       (module ? module + '/' : '') + code;
 
     for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') {
@@ -284,7 +284,8 @@ function isArrayLike(obj) {
   // NodeList objects (with `item` method) and
   // other objects with suitable length characteristics are array-like
   return isNumber(length) &&
-    (length >= 0 && (length - 1) in obj || typeof obj.item == 'function');
+    (length >= 0 && ((length - 1) in obj || obj instanceof Array) || typeof obj.item == 'function');
+
 }
 
 /**
@@ -1987,7 +1988,7 @@ function setupModuleLoader(window) {
      *        unspecified then the module is being retrieved for further configuration.
      * @param {Function=} configFn Optional configuration function for the module. Same as
      *        {@link angular.Module#config Module#config()}.
-     * @returns {module} new module with the {@link angular.Module} api.
+     * @returns {angular.Module} new module with the {@link angular.Module} api.
      */
     return function module(name, requires, configFn) {
       var assertNotHasOwnProperty = function(name, context) {
@@ -2344,8 +2345,10 @@ function toDebugString(obj) {
   $AnchorScrollProvider,
   $AnimateProvider,
   $CoreAnimateCssProvider,
+  $$CoreAnimateJsProvider,
   $$CoreAnimateQueueProvider,
-  $$CoreAnimateRunnerProvider,
+  $$AnimateRunnerFactoryProvider,
+  $$AnimateAsyncRunFactoryProvider,
   $BrowserProvider,
   $CacheFactoryProvider,
   $ControllerProvider,
@@ -2398,11 +2401,11 @@ function toDebugString(obj) {
  * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
  */
 var version = {
-  full: '1.4.8',    // all of these placeholder strings will be replaced by grunt's
+  full: '1.4.9',    // all of these placeholder strings will be replaced by grunt's
   major: 1,    // package task
   minor: 4,
-  dot: 8,
-  codeName: 'ice-manipulation'
+  dot: 9,
+  codeName: 'implicit-superannuation'
 };
 
 
@@ -2504,8 +2507,10 @@ function publishExternalAPI(angular) {
         $anchorScroll: $AnchorScrollProvider,
         $animate: $AnimateProvider,
         $animateCss: $CoreAnimateCssProvider,
+        $$animateJs: $$CoreAnimateJsProvider,
         $$animateQueue: $$CoreAnimateQueueProvider,
-        $$AnimateRunner: $$CoreAnimateRunnerProvider,
+        $$AnimateRunner: $$AnimateRunnerFactoryProvider,
+        $$animateAsyncRun: $$AnimateAsyncRunFactoryProvider,
         $browser: $BrowserProvider,
         $cacheFactory: $CacheFactoryProvider,
         $controller: $ControllerProvider,
@@ -2576,16 +2581,22 @@ function publishExternalAPI(angular) {
  *
  * If jQuery is available, `angular.element` is an alias for the
  * [jQuery](http://api.jquery.com/jQuery/) function. If jQuery is not available, `angular.element`
- * delegates to Angular's built-in subset of jQuery, called "jQuery lite" or "jqLite."
+ * delegates to Angular's built-in subset of jQuery, called "jQuery lite" or **jqLite**.
+ *
+ * jqLite is a tiny, API-compatible subset of jQuery that allows
+ * Angular to manipulate the DOM in a cross-browser compatible way. jqLite implements only the most
+ * commonly needed functionality with the goal of having a very small footprint.
  *
- * <div class="alert alert-success">jqLite is a tiny, API-compatible subset of jQuery that allows
- * Angular to manipulate the DOM in a cross-browser compatible way. **jqLite** implements only the most
- * commonly needed functionality with the goal of having a very small footprint.</div>
+ * To use `jQuery`, simply ensure it is loaded before the `angular.js` file. You can also use the
+ * {@link ngJq `ngJq`} directive to specify that jqlite should be used over jQuery, or to use a
+ * specific version of jQuery if multiple versions exist on the page.
  *
- * To use `jQuery`, simply ensure it is loaded before the `angular.js` file.
+ * <div class="alert alert-info">**Note:** All element references in Angular are always wrapped with jQuery or
+ * jqLite (such as the element argument in a directive's compile / link function). They are never raw DOM references.</div>
  *
- * <div class="alert">**Note:** all element references in Angular are always wrapped with jQuery or
- * jqLite; they are never raw DOM references.</div>
+ * <div class="alert alert-warning">**Note:** Keep in mind that this function will not find elements
+ * by tag name / CSS selector. For lookups by tag name, try instead `angular.element(document).find(...)`
+ * or `$document.find()`, or use the standard DOM APIs, e.g. `document.querySelectorAll()`.</div>
  *
  * ## Angular's jqLite
  * jqLite provides only the following jQuery methods:
@@ -2598,7 +2609,8 @@ function publishExternalAPI(angular) {
  * - [`children()`](http://api.jquery.com/children/) - Does not support selectors
  * - [`clone()`](http://api.jquery.com/clone/)
  * - [`contents()`](http://api.jquery.com/contents/)
- * - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()`. As a setter, does not convert numbers to strings or append 'px'.
+ * - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()`.
+ *   As a setter, does not convert numbers to strings or append 'px', and also does not have automatic property prefixing.
  * - [`data()`](http://api.jquery.com/data/)
  * - [`detach()`](http://api.jquery.com/detach/)
  * - [`empty()`](http://api.jquery.com/empty/)
@@ -4285,7 +4297,7 @@ function annotate(fn, strictDi, name) {
  * @description
  *
  * Register a **service decorator** with the {@link auto.$injector $injector}. A service decorator
- * intercepts the creation of a service, allowing it to override or modify the behaviour of the
+ * intercepts the creation of a service, allowing it to override or modify the behavior of the
  * service. The object returned by the decorator may be the original service, or a new service
  * object which replaces or wraps and delegates to the original service.
  *
@@ -4871,27 +4883,8 @@ function prepareAnimateOptions(options) {
       : {};
 }
 
-var $$CoreAnimateRunnerProvider = function() {
-  this.$get = ['$q', '$$rAF', function($q, $$rAF) {
-    function AnimateRunner() {}
-    AnimateRunner.all = noop;
-    AnimateRunner.chain = noop;
-    AnimateRunner.prototype = {
-      end: noop,
-      cancel: noop,
-      resume: noop,
-      pause: noop,
-      complete: noop,
-      then: function(pass, fail) {
-        return $q(function(resolve) {
-          $$rAF(function() {
-            resolve();
-          });
-        }).then(pass, fail);
-      }
-    };
-    return AnimateRunner;
-  }];
+var $$CoreAnimateJsProvider = function() {
+  this.$get = function() {};
 };
 
 // this is prefixed with Core since it conflicts with
@@ -4919,7 +4912,12 @@ var $$CoreAnimateQueueProvider = function() {
           addRemoveClassesPostDigest(element, options.addClass, options.removeClass);
         }
 
-        return new $$AnimateRunner(); // jshint ignore:line
+        var runner = new $$AnimateRunner(); // jshint ignore:line
+
+        // since there are no animations to run the runner needs to be
+        // notified that the animation call is complete.
+        runner.complete();
+        return runner;
       }
     };
 
@@ -5384,10 +5382,23 @@ var $AnimateProvider = ['$provide', function($provide) {
        * @kind function
        *
        * @description Performs an inline animation on the element which applies the provided to and from CSS styles to the element.
-       * If any detected CSS transition, keyframe or JavaScript matches the provided className value then the animation will take
-       * on the provided styles. For example, if a transition animation is set for the given className then the provided from and
-       * to styles will be applied alongside the given transition. If a JavaScript animation is detected then the provided styles
-       * will be given in as function paramters into the `animate` method (or as apart of the `options` parameter).
+       * If any detected CSS transition, keyframe or JavaScript matches the provided className value, then the animation will take
+       * on the provided styles. For example, if a transition animation is set for the given className, then the provided `from` and
+       * `to` styles will be applied alongside the given transition. If the CSS style provided in `from` does not have a corresponding
+       * style in `to`, the style in `from` is applied immediately, and no animation is run.
+       * If a JavaScript animation is detected then the provided styles will be given in as function parameters into the `animate`
+       * method (or as part of the `options` parameter):
+       *
+       * ```js
+       * ngModule.animation('.my-inline-animation', function() {
+       *   return {
+       *     animate : function(element, from, to, done, options) {
+       *       //animation
+       *       done();
+       *     }
+       *   }
+       * });
+       * ```
        *
        * @param {DOMElement} element the element which the CSS styles will be applied to
        * @param {object} from the from (starting) CSS styles that will be applied to the element and across the animation.
@@ -5412,6 +5423,190 @@ var $AnimateProvider = ['$provide', function($provide) {
   }];
 }];
 
+var $$AnimateAsyncRunFactoryProvider = function() {
+  this.$get = ['$$rAF', function($$rAF) {
+    var waitQueue = [];
+
+    function waitForTick(fn) {
+      waitQueue.push(fn);
+      if (waitQueue.length > 1) return;
+      $$rAF(function() {
+        for (var i = 0; i < waitQueue.length; i++) {
+          waitQueue[i]();
+        }
+        waitQueue = [];
+      });
+    }
+
+    return function() {
+      var passed = false;
+      waitForTick(function() {
+        passed = true;
+      });
+      return function(callback) {
+        passed ? callback() : waitForTick(callback);
+      };
+    };
+  }];
+};
+
+var $$AnimateRunnerFactoryProvider = function() {
+  this.$get = ['$q', '$sniffer', '$$animateAsyncRun', '$document', '$timeout',
+       function($q,   $sniffer,   $$animateAsyncRun,   $document,   $timeout) {
+
+    var INITIAL_STATE = 0;
+    var DONE_PENDING_STATE = 1;
+    var DONE_COMPLETE_STATE = 2;
+
+    AnimateRunner.chain = function(chain, callback) {
+      var index = 0;
+
+      next();
+      function next() {
+        if (index === chain.length) {
+          callback(true);
+          return;
+        }
+
+        chain[index](function(response) {
+          if (response === false) {
+            callback(false);
+            return;
+          }
+          index++;
+          next();
+        });
+      }
+    };
+
+    AnimateRunner.all = function(runners, callback) {
+      var count = 0;
+      var status = true;
+      forEach(runners, function(runner) {
+        runner.done(onProgress);
+      });
+
+      function onProgress(response) {
+        status = status && response;
+        if (++count === runners.length) {
+          callback(status);
+        }
+      }
+    };
+
+    function AnimateRunner(host) {
+      this.setHost(host);
+
+      var rafTick = $$animateAsyncRun();
+      var timeoutTick = function(fn) {
+        $timeout(fn, 0, false);
+      };
+
+      this._doneCallbacks = [];
+      this._tick = function(fn) {
+        var doc = $document[0];
+
+        // the document may not be ready or attached
+        // to the module for some internal tests
+        if (doc && doc.hidden) {
+          timeoutTick(fn);
+        } else {
+          rafTick(fn);
+        }
+      };
+      this._state = 0;
+    }
+
+    AnimateRunner.prototype = {
+      setHost: function(host) {
+        this.host = host || {};
+      },
+
+      done: function(fn) {
+        if (this._state === DONE_COMPLETE_STATE) {
+          fn();
+        } else {
+          this._doneCallbacks.push(fn);
+        }
+      },
+
+      progress: noop,
+
+      getPromise: function() {
+        if (!this.promise) {
+          var self = this;
+          this.promise = $q(function(resolve, reject) {
+            self.done(function(status) {
+              status === false ? reject() : resolve();
+            });
+          });
+        }
+        return this.promise;
+      },
+
+      then: function(resolveHandler, rejectHandler) {
+        return this.getPromise().then(resolveHandler, rejectHandler);
+      },
+
+      'catch': function(handler) {
+        return this.getPromise()['catch'](handler);
+      },
+
+      'finally': function(handler) {
+        return this.getPromise()['finally'](handler);
+      },
+
+      pause: function() {
+        if (this.host.pause) {
+          this.host.pause();
+        }
+      },
+
+      resume: function() {
+        if (this.host.resume) {
+          this.host.resume();
+        }
+      },
+
+      end: function() {
+        if (this.host.end) {
+          this.host.end();
+        }
+        this._resolve(true);
+      },
+
+      cancel: function() {
+        if (this.host.cancel) {
+          this.host.cancel();
+        }
+        this._resolve(false);
+      },
+
+      complete: function(response) {
+        var self = this;
+        if (self._state === INITIAL_STATE) {
+          self._state = DONE_PENDING_STATE;
+          self._tick(function() {
+            self._resolve(response);
+          });
+        }
+      },
+
+      _resolve: function(response) {
+        if (this._state !== DONE_COMPLETE_STATE) {
+          forEach(this._doneCallbacks, function(fn) {
+            fn(response);
+          });
+          this._doneCallbacks.length = 0;
+          this._state = DONE_COMPLETE_STATE;
+        }
+      }
+    };
+
+    return AnimateRunner;
+  }];
+};
+
 /**
  * @ngdoc service
  * @name $animateCss
@@ -5424,37 +5619,18 @@ var $AnimateProvider = ['$provide', function($provide) {
  * Click here {@link ngAnimate.$animateCss to read the documentation for $animateCss}.
  */
 var $CoreAnimateCssProvider = function() {
-  this.$get = ['$$rAF', '$q', function($$rAF, $q) {
+  this.$get = ['$$rAF', '$q', '$$AnimateRunner', function($$rAF, $q, $$AnimateRunner) {
 
-    var RAFPromise = function() {};
-    RAFPromise.prototype = {
-      done: function(cancel) {
-        this.defer && this.defer[cancel === true ? 'reject' : 'resolve']();
-      },
-      end: function() {
-        this.done();
-      },
-      cancel: function() {
-        this.done(true);
-      },
-      getPromise: function() {
-        if (!this.defer) {
-          this.defer = $q.defer();
-        }
-        return this.defer.promise;
-      },
-      then: function(f1,f2) {
-        return this.getPromise().then(f1,f2);
-      },
-      'catch': function(f1) {
-        return this.getPromise()['catch'](f1);
-      },
-      'finally': function(f1) {
-        return this.getPromise()['finally'](f1);
+    return function(element, initialOptions) {
+      // all of the animation functions should create
+      // a copy of the options data, however, if a
+      // parent service has already created a copy then
+      // we should stick to using that
+      var options = initialOptions || {};
+      if (!options.$$prepared) {
+        options = copy(options);
       }
-    };
 
-    return function(element, options) {
       // there is no point in applying the styles since
       // there is no animation that goes on at all in
       // this version of $animateCss.
@@ -5467,7 +5643,8 @@ var $CoreAnimateCssProvider = function() {
         options.from = null;
       }
 
-      var closed, runner = new RAFPromise();
+      /* jshint newcap: false*/
+      var closed, runner = new $$AnimateRunner();
       return {
         start: run,
         end: run
@@ -5475,16 +5652,16 @@ var $CoreAnimateCssProvider = function() {
 
       function run() {
         $$rAF(function() {
-          close();
+          applyAnimationContents();
           if (!closed) {
-            runner.done();
+            runner.complete();
           }
           closed = true;
         });
         return runner;
       }
 
-      function close() {
+      function applyAnimationContents() {
         if (options.addClass) {
           element.addClass(options.addClass);
           options.addClass = null;
@@ -6476,10 +6653,23 @@ function $TemplateCacheProvider() {
  *
  *
  * #### `bindToController`
- * When an isolate scope is used for a component (see above), and `controllerAs` is used, `bindToController: true` will
+ * This property is used to bind scope properties directly to the controller. It can be either
+ * `true` or an object hash with the same format as the `scope` property. Additionally, a controller
+ * alias must be set, either by using `controllerAs: 'myAlias'` or by specifying the alias in the controller
+ * definition: `controller: 'myCtrl as myAlias'`.
+ *
+ * When an isolate scope is used for a directive (see above), `bindToController: true` will
  * allow a component to have its properties bound to the controller, rather than to scope. When the controller
  * is instantiated, the initial values of the isolate scope bindings are already available.
  *
+ * It is also possible to set `bindToController` to an object hash with the same format as the `scope` property.
+ * This will set up the scope bindings to the controller directly. Note that `scope` can still be used
+ * to define which kind of scope is created. By default, no scope is created. Use `scope: {}` to create an isolate
+ * scope (useful for component directives).
+ *
+ * If both `bindToController` and `scope` are defined and have object hashes, `bindToController` overrides `scope`.
+ *
+ *
  * #### `controller`
  * Controller constructor function. The controller is instantiated before the
  * pre-linking phase and can be accessed by other directives (see
@@ -6815,19 +7005,19 @@ function $TemplateCacheProvider() {
  *
  * The `$parent` scope hierarchy will look like this:
  *
- * ```
- * - $rootScope
- *   - isolate
- *     - transclusion
- * ```
+   ```
+   - $rootScope
+     - isolate
+       - transclusion
+   ```
  *
  * but the scopes will inherit prototypically from different scopes to their `$parent`.
  *
- * ```
- * - $rootScope
- *   - transclusion
- * - isolate
- * ```
+   ```
+   - $rootScope
+     - transclusion
+   - isolate
+   ```
  *
  *
  * ### Attributes
@@ -6959,8 +7149,15 @@ function $TemplateCacheProvider() {
  *        directives; if given, it will be passed through to the link functions of
  *        directives found in `element` during compilation.
  *      * `transcludeControllers` - an object hash with keys that map controller names
- *        to controller instances; if given, it will make the controllers
- *        available to directives.
+ *        to a hash with the key `instance`, which maps to the controller instance;
+ *        if given, it will make the controllers available to directives on the compileNode:
+ *        ```
+ *        {
+ *          parent: {
+ *            instance: parentControllerInstance
+ *          }
+ *        }
+ *        ```
  *      * `futureParentElement` - defines the parent to which the `cloneAttachFn` will add
  *        the cloned elements; only needed for transcludes that are allowed to contain non html
  *        elements (e.g. SVG elements). See also the directive.controller property.
@@ -7249,9 +7446,9 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
 
   this.$get = [
             '$injector', '$interpolate', '$exceptionHandler', '$templateRequest', '$parse',
-            '$controller', '$rootScope', '$document', '$sce', '$animate', '$$sanitizeUri',
+            '$controller', '$rootScope', '$sce', '$animate', '$$sanitizeUri',
     function($injector,   $interpolate,   $exceptionHandler,   $templateRequest,   $parse,
-             $controller,   $rootScope,   $document,   $sce,   $animate,   $$sanitizeUri) {
+             $controller,   $rootScope,   $sce,   $animate,   $$sanitizeUri) {
 
     var Attributes = function(element, attributesToCopy) {
       if (attributesToCopy) {
@@ -7463,7 +7660,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
        * @param {string} key Normalized key. (ie ngAttribute) .
        * @param {function(interpolatedValue)} fn Function that will be called whenever
                 the interpolated value of the attribute changes.
-       *        See the {@link guide/directive#text-and-attribute-bindings Directives} guide for more info.
+       *        See the {@link guide/interpolation#how-text-and-attribute-bindings-work Interpolation
+       *        guide} for more info.
        * @returns {function()} Returns a deregistration function for this observer.
        */
       $observe: function(key, fn) {
@@ -9047,7 +9245,7 @@ function removeComments(jqNodes) {
 var $controllerMinErr = minErr('$controller');
 
 
-var CNTRL_REG = /^(\S+)(\s+as\s+(\w+))?$/;
+var CNTRL_REG = /^(\S+)(\s+as\s+([\w$]+))?$/;
 function identifierForController(controller, ident) {
   if (ident && isString(ident)) return ident;
   if (isString(controller)) {
@@ -10235,6 +10433,10 @@ function $HttpProvider() {
         throw minErr('$http')('badreq', 'Http request configuration must be an object.  Received: {0}', requestConfig);
       }
 
+      if (!isString(requestConfig.url)) {
+        throw minErr('$http')('badreq', 'Http request configuration url must be a string.  Received: {0}', requestConfig.url);
+      }
+
       var config = extend({
         method: 'get',
         transformRequest: defaults.transformRequest,
@@ -10847,7 +11049,7 @@ $interpolateMinErr.interr = function(text, err) {
  * Used for configuring the interpolation markup. Defaults to `{{` and `}}`.
  *
  * @example
-<example module="customInterpolationApp">
+<example name="custom-interpolation-markup" module="customInterpolationApp">
 <file name="index.html">
 <script>
   var customInterpolationApp = angular.module('customInterpolationApp', []);
@@ -10862,7 +11064,7 @@ $interpolateMinErr.interr = function(text, err) {
       this.label = "This binding is brought you by // interpolation symbols.";
   });
 </script>
-<div ng-app="App" ng-controller="DemoController as demo">
+<div ng-controller="DemoController as demo">
     //demo.label//
 </div>
 </file>
@@ -13599,7 +13801,7 @@ ASTCompiler.prototype = {
       right = this.nextId();
       left = {};
       if (!isAssignable(ast.left)) {
-        throw $parseMinErr('lval', 'Trying to assing a value to a non l-value');
+        throw $parseMinErr('lval', 'Trying to assign a value to a non l-value');
       }
       this.recurse(ast.left, undefined, left, function() {
         self.if_(self.notNull(left.context), function() {
@@ -14190,9 +14392,6 @@ Parser.prototype = {
   }
 };
 
-var getterFnCacheDefault = createMap();
-var getterFnCacheExpensive = createMap();
-
 function isPossiblyDangerousMemberName(name) {
   return name == 'constructor';
 }
@@ -14305,7 +14504,7 @@ function $ParseProvider() {
           return addInterceptor(exp, interceptorFn);
 
         default:
-          return noop;
+          return addInterceptor(noop, interceptorFn);
       }
     };
 
@@ -16460,6 +16659,21 @@ function $RootScopeProvider() {
 }
 
 /**
+ * @ngdoc service
+ * @name $rootElement
+ *
+ * @description
+ * The root element of Angular application. This is either the element where {@link
+ * ng.directive:ngApp ngApp} was declared or the element passed into
+ * {@link angular.bootstrap}. The element represents the root element of application. It is also the
+ * location where the application's {@link auto.$injector $injector} service gets
+ * published, and can be retrieved using `$rootElement.injector()`.
+ */
+
+
+// the implementation is in angular.bootstrap
+
+/**
  * @description
  * Private service to sanitize uris for links and images. Used by $compile and $sanitize.
  */
@@ -17896,8 +18110,8 @@ function $TimeoutProvider() {
       * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise
       *   will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block.
       * @param {...*=} Pass additional parameters to the executed function.
-      * @returns {Promise} Promise that will be resolved when the timeout is reached. The value this
-      *   promise will be resolved with is the return value of the `fn` function.
+      * @returns {Promise} Promise that will be resolved when the timeout is reached. The promise
+      *   will be resolved with the return value of the `fn` function.
       *
       */
     function timeout(fn, delay, invokeApply) {
@@ -18573,6 +18787,10 @@ function getTypeForFilter(val) {
   return (val === null) ? 'null' : typeof val;
 }
 
+var MAX_DIGITS = 22;
+var DECIMAL_SEP = '.';
+var ZERO_CHAR = '0';
+
 /**
  * @ngdoc filter
  * @name currency
@@ -18662,7 +18880,7 @@ function currencyFilter($locale) {
  * @param {(number|string)=} fractionSize Number of decimal places to round the number to.
  * If this is not provided then the fraction size is computed from the current locale's number
  * formatting pattern. In the case of the default locale, it will be 3.
- * @returns {string} Number rounded to decimalPlaces and places a “,” after each third digit.
+ * @returns {string} Number rounded to fractionSize and places a “,” after each third digit.
  *
  * @example
    <example module="numberFilterExample">
@@ -18697,8 +18915,6 @@ function currencyFilter($locale) {
      </file>
    </example>
  */
-
-
 numberFilter.$inject = ['$locale'];
 function numberFilter($locale) {
   var formats = $locale.NUMBER_FORMATS;
@@ -18712,93 +18928,194 @@ function numberFilter($locale) {
   };
 }
 
-var DECIMAL_SEP = '.';
-function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {
-  if (isObject(number)) return '';
+/**
+ * Parse a number (as a string) into three components that can be used
+ * for formatting the number.
+ *
+ * (Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/)
+ *
+ * @param  {string} numStr The number to parse
+ * @return {object} An object describing this number, containing the following keys:
+ *  - d : an array of digits containing leading zeros as necessary
+ *  - i : the number of the digits in `d` that are to the left of the decimal point
+ *  - e : the exponent for numbers that would need more than `MAX_DIGITS` digits in `d`
+ *
+ */
+function parse(numStr) {
+  var exponent = 0, digits, numberOfIntegerDigits;
+  var i, j, zeros;
 
-  var isNegative = number < 0;
-  number = Math.abs(number);
+  // Decimal point?
+  if ((numberOfIntegerDigits = numStr.indexOf(DECIMAL_SEP)) > -1) {
+    numStr = numStr.replace(DECIMAL_SEP, '');
+  }
 
-  var isInfinity = number === Infinity;
-  if (!isInfinity && !isFinite(number)) return '';
+  // Exponential form?
+  if ((i = numStr.search(/e/i)) > 0) {
+    // Work out the exponent.
+    if (numberOfIntegerDigits < 0) numberOfIntegerDigits = i;
+    numberOfIntegerDigits += +numStr.slice(i + 1);
+    numStr = numStr.substring(0, i);
+  } else if (numberOfIntegerDigits < 0) {
+    // There was no decimal point or exponent so it is an integer.
+    numberOfIntegerDigits = numStr.length;
+  }
 
-  var numStr = number + '',
-      formatedText = '',
-      hasExponent = false,
-      parts = [];
+  // Count the number of leading zeros.
+  for (i = 0; numStr.charAt(i) == ZERO_CHAR; i++);
 
-  if (isInfinity) formatedText = '\u221e';
+  if (i == (zeros = numStr.length)) {
+    // The digits are all zero.
+    digits = [0];
+    numberOfIntegerDigits = 1;
+  } else {
+    // Count the number of trailing zeros
+    zeros--;
+    while (numStr.charAt(zeros) == ZERO_CHAR) zeros--;
 
-  if (!isInfinity && numStr.indexOf('e') !== -1) {
-    var match = numStr.match(/([\d\.]+)e(-?)(\d+)/);
-    if (match && match[2] == '-' && match[3] > fractionSize + 1) {
-      number = 0;
-    } else {
-      formatedText = numStr;
-      hasExponent = true;
+    // Trailing zeros are insignificant so ignore them
+    numberOfIntegerDigits -= i;
+    digits = [];
+    // Convert string to array of digits without leading/trailing zeros.
+    for (j = 0; i <= zeros; i++, j++) {
+      digits[j] = +numStr.charAt(i);
     }
   }
 
-  if (!isInfinity && !hasExponent) {
-    var fractionLen = (numStr.split(DECIMAL_SEP)[1] || '').length;
+  // If the number overflows the maximum allowed digits then use an exponent.
+  if (numberOfIntegerDigits > MAX_DIGITS) {
+    digits = digits.splice(0, MAX_DIGITS - 1);
+    exponent = numberOfIntegerDigits - 1;
+    numberOfIntegerDigits = 1;
+  }
+
+  return { d: digits, e: exponent, i: numberOfIntegerDigits };
+}
 
-    // determine fractionSize if it is not specified
-    if (isUndefined(fractionSize)) {
-      fractionSize = Math.min(Math.max(pattern.minFrac, fractionLen), pattern.maxFrac);
+/**
+ * Round the parsed number to the specified number of decimal places
+ * This function changed the parsedNumber in-place
+ */
+function roundNumber(parsedNumber, fractionSize, minFrac, maxFrac) {
+    var digits = parsedNumber.d;
+    var fractionLen = digits.length - parsedNumber.i;
+
+    // determine fractionSize if it is not specified; `+fractionSize` converts it to a number
+    fractionSize = (isUndefined(fractionSize)) ? Math.min(Math.max(minFrac, fractionLen), maxFrac) : +fractionSize;
+
+    // The index of the digit to where rounding is to occur
+    var roundAt = fractionSize + parsedNumber.i;
+    var digit = digits[roundAt];
+
+    if (roundAt > 0) {
+      digits.splice(roundAt);
+    } else {
+      // We rounded to zero so reset the parsedNumber
+      parsedNumber.i = 1;
+      digits.length = roundAt = fractionSize + 1;
+      for (var i=0; i < roundAt; i++) digits[i] = 0;
     }
 
-    // safely round numbers in JS without hitting imprecisions of floating-point arithmetics
-    // inspired by:
-    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/round
-    number = +(Math.round(+(number.toString() + 'e' + fractionSize)).toString() + 'e' + -fractionSize);
+    if (digit >= 5) digits[roundAt - 1]++;
 
-    var fraction = ('' + number).split(DECIMAL_SEP);
-    var whole = fraction[0];
-    fraction = fraction[1] || '';
+    // Pad out with zeros to get the required fraction length
+    for (; fractionLen < fractionSize; fractionLen++) digits.push(0);
 
-    var i, pos = 0,
-        lgroup = pattern.lgSize,
-        group = pattern.gSize;
 
-    if (whole.length >= (lgroup + group)) {
-      pos = whole.length - lgroup;
-      for (i = 0; i < pos; i++) {
-        if ((pos - i) % group === 0 && i !== 0) {
-          formatedText += groupSep;
-        }
-        formatedText += whole.charAt(i);
-      }
+    // Do any carrying, e.g. a digit was rounded up to 10
+    var carry = digits.reduceRight(function(carry, d, i, digits) {
+      d = d + carry;
+      digits[i] = d % 10;
+      return Math.floor(d / 10);
+    }, 0);
+    if (carry) {
+      digits.unshift(carry);
+      parsedNumber.i++;
     }
+}
 
-    for (i = pos; i < whole.length; i++) {
-      if ((whole.length - i) % lgroup === 0 && i !== 0) {
-        formatedText += groupSep;
-      }
-      formatedText += whole.charAt(i);
+/**
+ * Format a number into a string
+ * @param  {number} number       The number to format
+ * @param  {{
+ *           minFrac, // the minimum number of digits required in the fraction part of the number
+ *           maxFrac, // the maximum number of digits required in the fraction part of the number
+ *           gSize,   // number of digits in each group of separated digits
+ *           lgSize,  // number of digits in the last group of digits before the decimal separator
+ *           negPre,  // the string to go in front of a negative number (e.g. `-` or `(`))
+ *           posPre,  // the string to go in front of a positive number
+ *           negSuf,  // the string to go after a negative number (e.g. `)`)
+ *           posSuf   // the string to go after a positive number
+ *         }} pattern
+ * @param  {string} groupSep     The string to separate groups of number (e.g. `,`)
+ * @param  {string} decimalSep   The string to act as the decimal separator (e.g. `.`)
+ * @param  {[type]} fractionSize The size of the fractional part of the number
+ * @return {string}              The number formatted as a string
+ */
+function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {
+
+  if (!(isString(number) || isNumber(number)) || isNaN(number)) return '';
+
+  var isInfinity = !isFinite(number);
+  var isZero = false;
+  var numStr = Math.abs(number) + '',
+      formattedText = '',
+      parsedNumber;
+
+  if (isInfinity) {
+    formattedText = '\u221e';
+  } else {
+    parsedNumber = parse(numStr);
+
+    roundNumber(parsedNumber, fractionSize, pattern.minFrac, pattern.maxFrac);
+
+    var digits = parsedNumber.d;
+    var integerLen = parsedNumber.i;
+    var exponent = parsedNumber.e;
+    var decimals = [];
+    isZero = digits.reduce(function(isZero, d) { return isZero && !d; }, true);
+
+    // pad zeros for small numbers
+    while (integerLen < 0) {
+      digits.unshift(0);
+      integerLen++;
     }
 
-    // format fraction part.
-    while (fraction.length < fractionSize) {
-      fraction += '0';
+    // extract decimals digits
+    if (integerLen > 0) {
+      decimals = digits.splice(integerLen);
+    } else {
+      decimals = digits;
+      digits = [0];
     }
 
-    if (fractionSize && fractionSize !== "0") formatedText += decimalSep + fraction.substr(0, fractionSize);
-  } else {
-    if (fractionSize > 0 && number < 1) {
-      formatedText = number.toFixed(fractionSize);
-      number = parseFloat(formatedText);
-      formatedText = formatedText.replace(DECIMAL_SEP, decimalSep);
+    // format the integer digits with grouping separators
+    var groups = [];
+    if (digits.length > pattern.lgSize) {
+      groups.unshift(digits.splice(-pattern.lgSize).join(''));
     }
-  }
+    while (digits.length > pattern.gSize) {
+      groups.unshift(digits.splice(-pattern.gSize).join(''));
+    }
+    if (digits.length) {
+      groups.unshift(digits.join(''));
+    }
+    formattedText = groups.join(groupSep);
 
-  if (number === 0) {
-    isNegative = false;
-  }
+    // append the decimal digits
+    if (decimals.length) {
+      formattedText += decimalSep + decimals.join('');
+    }
 
-  parts.push(isNegative ? pattern.negPre : pattern.posPre,
-             formatedText,
-             isNegative ? pattern.negSuf : pattern.posSuf);
-  return parts.join('');
+    if (exponent) {
+      formattedText += 'e+' + exponent;
+    }
+  }
+  if (number < 0 && !isZero) {
+    return pattern.negPre + formattedText + pattern.negSuf;
+  } else {
+    return pattern.posPre + formattedText + pattern.posSuf;
+  }
 }
 
 function padNumber(num, digits, trim) {
@@ -18808,7 +19125,7 @@ function padNumber(num, digits, trim) {
     num = -num;
   }
   num = '' + num;
-  while (num.length < digits) num = '0' + num;
+  while (num.length < digits) num = ZERO_CHAR + num;
   if (trim) {
     num = num.substr(num.length - digits);
   }
@@ -19319,17 +19636,6 @@ function limitToFilter() {
  * `reverse` is not set, which means it defaults to `false`.
    <example module="orderByExample">
      <file name="index.html">
-       <script>
-         angular.module('orderByExample', [])
-           .controller('ExampleController', ['$scope', function($scope) {
-             $scope.friends =
-                 [{name:'John', phone:'555-1212', age:10},
-                  {name:'Mary', phone:'555-9876', age:19},
-                  {name:'Mike', phone:'555-4321', age:21},
-                  {name:'Adam', phone:'555-5678', age:35},
-                  {name:'Julie', phone:'555-8765', age:29}];
-           }]);
-       </script>
        <div ng-controller="ExampleController">
          <table class="friend">
            <tr>
@@ -19345,6 +19651,17 @@ function limitToFilter() {
          </table>
        </div>
      </file>
+     <file name="script.js">
+       angular.module('orderByExample', [])
+         .controller('ExampleController', ['$scope', function($scope) {
+           $scope.friends =
+               [{name:'John', phone:'555-1212', age:10},
+                {name:'Mary', phone:'555-9876', age:19},
+                {name:'Mike', phone:'555-4321', age:21},
+                {name:'Adam', phone:'555-5678', age:35},
+                {name:'Julie', phone:'555-8765', age:29}];
+         }]);
+     </file>
    </example>
  *
  * The predicate and reverse parameters can be controlled dynamically through scope properties,
@@ -19352,49 +19669,24 @@ function limitToFilter() {
  * @example
    <example module="orderByExample">
      <file name="index.html">
-       <script>
-         angular.module('orderByExample', [])
-           .controller('ExampleController', ['$scope', function($scope) {
-             $scope.friends =
-                 [{name:'John', phone:'555-1212', age:10},
-                  {name:'Mary', phone:'555-9876', age:19},
-                  {name:'Mike', phone:'555-4321', age:21},
-                  {name:'Adam', phone:'555-5678', age:35},
-                  {name:'Julie', phone:'555-8765', age:29}];
-             $scope.predicate = 'age';
-             $scope.reverse = true;
-             $scope.order = function(predicate) {
-               $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
-               $scope.predicate = predicate;
-             };
-           }]);
-       </script>
-       <style type="text/css">
-         .sortorder:after {
-           content: '\25b2';
-         }
-         .sortorder.reverse:after {
-           content: '\25bc';
-         }
-       </style>
        <div ng-controller="ExampleController">
          <pre>Sorting predicate = {{predicate}}; reverse = {{reverse}}</pre>
          <hr/>
-         [ <a href="" ng-click="predicate=''">unsorted</a> ]
+         <button ng-click="predicate=''">Set to unsorted</button>
          <table class="friend">
            <tr>
-             <th>
-               <a href="" ng-click="order('name')">Name</a>
-               <span class="sortorder" ng-show="predicate === 'name'" ng-class="{reverse:reverse}"></span>
-             </th>
-             <th>
-               <a href="" ng-click="order('phone')">Phone Number</a>
-               <span class="sortorder" ng-show="predicate === 'phone'" ng-class="{reverse:reverse}"></span>
-             </th>
-             <th>
-               <a href="" ng-click="order('age')">Age</a>
-               <span class="sortorder" ng-show="predicate === 'age'" ng-class="{reverse:reverse}"></span>
-             </th>
+            <th>
+                <button ng-click="order('name')">Name</button>
+                <span class="sortorder" ng-show="predicate === 'name'" ng-class="{reverse:reverse}"></span>
+            </th>
+            <th>
+                <button ng-click="order('phone')">Phone Number</button>
+                <span class="sortorder" ng-show="predicate === 'phone'" ng-class="{reverse:reverse}"></span>
+            </th>
+            <th>
+                <button ng-click="order('age')">Age</button>
+                <span class="sortorder" ng-show="predicate === 'age'" ng-class="{reverse:reverse}"></span>
+            </th>
            </tr>
            <tr ng-repeat="friend in friends | orderBy:predicate:reverse">
              <td>{{friend.name}}</td>
@@ -19404,6 +19696,31 @@ function limitToFilter() {
          </table>
        </div>
      </file>
+     <file name="script.js">
+       angular.module('orderByExample', [])
+         .controller('ExampleController', ['$scope', function($scope) {
+           $scope.friends =
+               [{name:'John', phone:'555-1212', age:10},
+                {name:'Mary', phone:'555-9876', age:19},
+                {name:'Mike', phone:'555-4321', age:21},
+                {name:'Adam', phone:'555-5678', age:35},
+                {name:'Julie', phone:'555-8765', age:29}];
+           $scope.predicate = 'age';
+           $scope.reverse = true;
+           $scope.order = function(predicate) {
+             $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
+             $scope.predicate = predicate;
+           };
+         }]);
+      </file>
+     <file name="style.css">
+       .sortorder:after {
+         content: '\25b2';
+       }
+       .sortorder.reverse:after {
+         content: '\25bc';
+       }
+     </file>
    </example>
  *
  * It's also possible to call the orderBy filter manually, by injecting `$filter`, retrieving the
@@ -19415,21 +19732,30 @@ function limitToFilter() {
  * @example
   <example module="orderByExample">
     <file name="index.html">
-      <div ng-controller="ExampleController">
-        <table class="friend">
-          <tr>
-            <th><a href="" ng-click="reverse=false;order('name', false)">Name</a>
-              (<a href="" ng-click="order('-name',false)">^</a>)</th>
-            <th><a href="" ng-click="reverse=!reverse;order('phone', reverse)">Phone Number</a></th>
-            <th><a href="" ng-click="reverse=!reverse;order('age',reverse)">Age</a></th>
-          </tr>
-          <tr ng-repeat="friend in friends">
-            <td>{{friend.name}}</td>
-            <td>{{friend.phone}}</td>
-            <td>{{friend.age}}</td>
-          </tr>
-        </table>
-      </div>
+    <div ng-controller="ExampleController">
+      <pre>Sorting predicate = {{predicate}}; reverse = {{reverse}}</pre>
+      <table class="friend">
+        <tr>
+          <th>
+              <button ng-click="order('name')">Name</button>
+              <span class="sortorder" ng-show="predicate === 'name'" ng-class="{reverse:reverse}"></span>
+          </th>
+          <th>
+              <button ng-click="order('phone')">Phone Number</button>
+              <span class="sortorder" ng-show="predicate === 'phone'" ng-class="{reverse:reverse}"></span>
+          </th>
+          <th>
+              <button ng-click="order('age')">Age</button>
+              <span class="sortorder" ng-show="predicate === 'age'" ng-class="{reverse:reverse}"></span>
+          </th>
+        </tr>
+        <tr ng-repeat="friend in friends">
+          <td>{{friend.name}}</td>
+          <td>{{friend.phone}}</td>
+          <td>{{friend.age}}</td>
+        </tr>
+      </table>
+    </div>
     </file>
 
     <file name="script.js">
@@ -19443,12 +19769,23 @@ function limitToFilter() {
             { name: 'Adam',    phone: '555-5678',    age: 35 },
             { name: 'Julie',   phone: '555-8765',    age: 29 }
           ];
-          $scope.order = function(predicate, reverse) {
-            $scope.friends = orderBy($scope.friends, predicate, reverse);
+          $scope.order = function(predicate) {
+            $scope.predicate = predicate;
+            $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
+            $scope.friends = orderBy($scope.friends, predicate, $scope.reverse);
           };
-          $scope.order('-age',false);
+          $scope.order('age', true);
         }]);
     </file>
+
+    <file name="style.css">
+       .sortorder:after {
+         content: '\25b2';
+       }
+       .sortorder.reverse:after {
+         content: '\25bc';
+       }
+    </file>
 </example>
  */
 orderByFilter.$inject = ['$parse'];
@@ -19778,20 +20115,7 @@ var htmlAnchorDirective = valueFn({
  * {@link guide/expression expression} inside `ngDisabled` evaluates to truthy.
  *
  * A special directive is necessary because we cannot use interpolation inside the `disabled`
- * attribute.  The following example would make the button enabled on Chrome/Firefox
- * but not on older IEs:
- *
- * ```html
- * <!-- See below for an example of ng-disabled being used correctly -->
- * <div ng-init="isDisabled = false">
- *  <button disabled="{{isDisabled}}">Disabled</button>
- * </div>
- * ```
- *
- * This is because the HTML specification does not require browsers to preserve the values of
- * boolean attributes such as `disabled` (Their presence means true and their absence means false.)
- * If we put an Angular interpolation expression into such an attribute then the
- * binding information would be lost when the browser removes the attribute.
+ * attribute. See the {@link guide/interpolation interpolation guide} for more info.
  *
  * @example
     <example>
@@ -19826,15 +20150,9 @@ var htmlAnchorDirective = valueFn({
  * Note that this directive should not be used together with {@link ngModel `ngModel`},
  * as this can lead to unexpected behavior.
  *
- * ### Why do we need `ngChecked`?
+ * A special directive is necessary because we cannot use interpolation inside the `checked`
+ * attribute. See the {@link guide/interpolation interpolation guide} for more info.
  *
- * The HTML specification does not require browsers to preserve the values of boolean attributes
- * such as checked. (Their presence means true and their absence means false.)
- * If we put an Angular interpolation expression into such an attribute then the
- * binding information would be lost when the browser removes the attribute.
- * The `ngChecked` directive solves this problem for the `checked` attribute.
- * This complementary directive is not removed by the browser and so provides
- * a permanent reliable place to store the binding information.
  * @example
     <example>
       <file name="index.html">
@@ -19863,13 +20181,12 @@ var htmlAnchorDirective = valueFn({
  * @priority 100
  *
  * @description
- * The HTML specification does not require browsers to preserve the values of boolean attributes
- * such as readonly. (Their presence means true and their absence means false.)
- * If we put an Angular interpolation expression into such an attribute then the
- * binding information would be lost when the browser removes the attribute.
- * The `ngReadonly` directive solves this problem for the `readonly` attribute.
- * This complementary directive is not removed by the browser and so provides
- * a permanent reliable place to store the binding information.
+ *
+ * Sets the `readOnly` attribute on the element, if the expression inside `ngReadonly` is truthy.
+ *
+ * A special directive is necessary because we cannot use interpolation inside the `readOnly`
+ * attribute. See the {@link guide/interpolation interpolation guide} for more info.
+ *
  * @example
     <example>
       <file name="index.html">
@@ -19898,13 +20215,11 @@ var htmlAnchorDirective = valueFn({
  * @priority 100
  *
  * @description
- * The HTML specification does not require browsers to preserve the values of boolean attributes
- * such as selected. (Their presence means true and their absence means false.)
- * If we put an Angular interpolation expression into such an attribute then the
- * binding information would be lost when the browser removes the attribute.
- * The `ngSelected` directive solves this problem for the `selected` attribute.
- * This complementary directive is not removed by the browser and so provides
- * a permanent reliable place to store the binding information.
+ *
+ * Sets the `selected` attribute on the element, if the expression inside `ngSelected` is truthy.
+ *
+ * A special directive is necessary because we cannot use interpolation inside the `selected`
+ * attribute. See the {@link guide/interpolation interpolation guide} for more info.
  *
  * @example
     <example>
@@ -19936,13 +20251,12 @@ var htmlAnchorDirective = valueFn({
  * @priority 100
  *
  * @description
- * The HTML specification does not require browsers to preserve the values of boolean attributes
- * such as open. (Their presence means true and their absence means false.)
- * If we put an Angular interpolation expression into such an attribute then the
- * binding information would be lost when the browser removes the attribute.
- * The `ngOpen` directive solves this problem for the `open` attribute.
- * This complementary directive is not removed by the browser and so provides
- * a permanent reliable place to store the binding information.
+ *
+ * Sets the `open` attribute on the element, if the expression inside `ngOpen` is truthy.
+ *
+ * A special directive is necessary because we cannot use interpolation inside the `open`
+ * attribute. See the {@link guide/interpolation interpolation guide} for more info.
+ *
  * @example
      <example>
        <file name="index.html">
@@ -20398,13 +20712,9 @@ function FormController(element, attrs, $scope, $animate, $interpolate) {
  *
  * In Angular, forms can be nested. This means that the outer form is valid when all of the child
  * forms are valid as well. However, browsers do not allow nesting of `<form>` elements, so
- * Angular provides the {@link ng.directive:ngForm `ngForm`} directive which behaves identically to
- * `<form>` but can be nested.  This allows you to have nested forms, which is very useful when
- * using Angular validation directives in forms that are dynamically generated using the
- * {@link ng.directive:ngRepeat `ngRepeat`} directive. Since you cannot dynamically generate the `name`
- * attribute of input elements using interpolation, you have to wrap each set of repeated inputs in an
- * `ngForm` directive and nest these in an outer `form` element.
- *
+ * Angular provides the {@link ng.directive:ngForm `ngForm`} directive, which behaves identically to
+ * `form` but can be nested. Nested forms can be useful, for example, if the validity of a sub-group
+ * of controls needs to be determined.
  *
  * # CSS classes
  *  - `ng-valid` is set if the form is valid.
@@ -20625,7 +20935,18 @@ var ngFormDirective = formDirectiveFactory(true);
 // Regex code is obtained from SO: https://stackoverflow.com/questions/3143070/javascript-regex-iso-datetime#answer-3143231
 var ISO_DATE_REGEXP = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;
 // See valid URLs in RFC3987 (http://tools.ietf.org/html/rfc3987)
-var URL_REGEXP = /^[A-Za-z][A-Za-z\d.+-]*:\/*(?:\w+(?::\w+)?@)?[^\s/]+(?::\d+)?(?:\/[\w#!:.?+=&%@\-/]*)?$/;
+// Note: We are being more lenient, because browsers are too.
+//   1. Scheme
+//   2. Slashes
+//   3. Username
+//   4. Password
+//   5. Hostname
+//   6. Port
+//   7. Path
+//   8. Query
+//   9. Fragment
+//                 1111111111111111 222   333333    44444        555555555555555555555555    666     77777777     8888888     999
+var URL_REGEXP = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i;
 var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;
 var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/;
 var DATE_REGEXP = /^(\d{4})-(\d{2})-(\d{2})$/;
@@ -24389,6 +24710,8 @@ var ngIncludeDirective = ['$templateRequest', '$anchorScroll', '$animate',
             //set the 2nd param to true to ignore the template request error so that the inner
             //contents and scope can be cleaned up.
             $templateRequest(src, true).then(function(response) {
+              if (scope.$$destroyed) return;
+
               if (thisChangeId !== changeCounter) return;
               var newScope = scope.$new();
               ctrl.template = response;
@@ -24410,6 +24733,8 @@ var ngIncludeDirective = ['$templateRequest', '$anchorScroll', '$animate',
               currentScope.$emit('$includeContentLoaded', src);
               scope.$eval(onloadExp);
             }, function() {
+              if (scope.$$destroyed) return;
+
               if (thisChangeId === changeCounter) {
                 cleanupLastIncludeContent();
                 scope.$emit('$includeContentError', src);
@@ -25088,11 +25413,14 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
    * which may be caused by a pending debounced event or because the input is waiting for a some
    * future event.
    *
-   * If you have an input that uses `ng-model-options` to set up debounced events or events such
-   * as blur you can have a situation where there is a period when the `$viewValue`
-   * is out of synch with the ngModel's `$modelValue`.
+   * If you have an input that uses `ng-model-options` to set up debounced updates or updates that
+   * depend on special events such as blur, you can have a situation where there is a period when
+   * the `$viewValue` is out of sync with the ngModel's `$modelValue`.
+   *
+   * In this case, you can use `$rollbackViewValue()` to manually cancel the debounced / future update
+   * and reset the input to the last committed view value.
    *
-   * In this case, you can run into difficulties if you try to update the ngModel's `$modelValue`
+   * It is also possible that you run into difficulties if you try to update the ngModel's `$modelValue`
    * programmatically before these debounced/future events have resolved/occurred, because Angular's
    * dirty checking mechanism is not able to tell whether the model has actually changed or not.
    *
@@ -25105,39 +25433,63 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
    *     angular.module('cancel-update-example', [])
    *
    *     .controller('CancelUpdateController', ['$scope', function($scope) {
-   *       $scope.resetWithCancel = function(e) {
-   *         if (e.keyCode == 27) {
-   *           $scope.myForm.myInput1.$rollbackViewValue();
-   *           $scope.myValue = '';
-   *         }
-   *       };
-   *       $scope.resetWithoutCancel = function(e) {
+   *       $scope.model = {};
+   *
+   *       $scope.setEmpty = function(e, value, rollback) {
    *         if (e.keyCode == 27) {
-   *           $scope.myValue = '';
+   *           e.preventDefault();
+   *           if (rollback) {
+   *             $scope.myForm[value].$rollbackViewValue();
+   *           }
+   *           $scope.model[value] = '';
    *         }
    *       };
    *     }]);
    *   </file>
    *   <file name="index.html">
    *     <div ng-controller="CancelUpdateController">
-   *       <p>Try typing something in each input.  See that the model only updates when you
-   *          blur off the input.
-   *        </p>
-   *        <p>Now see what happens if you start typing then press the Escape key</p>
+   *        <p>Both of these inputs are only updated if they are blurred. Hitting escape should
+   *        empty them. Follow these steps and observe the difference:</p>
+   *       <ol>
+   *         <li>Type something in the input. You will see that the model is not yet updated</li>
+   *         <li>Press the Escape key.
+   *           <ol>
+   *             <li> In the first example, nothing happens, because the model is already '', and no
+   *             update is detected. If you blur the input, the model will be set to the current view.
+   *             </li>
+   *             <li> In the second example, the pending update is cancelled, and the input is set back
+   *             to the last committed view value (''). Blurring the input does nothing.
+   *             </li>
+   *           </ol>
+   *         </li>
+   *       </ol>
    *
    *       <form name="myForm" ng-model-options="{ updateOn: 'blur' }">
-   *         <p id="inputDescription1">With $rollbackViewValue()</p>
-   *         <input name="myInput1" aria-describedby="inputDescription1" ng-model="myValue"
-   *                ng-keydown="resetWithCancel($event)"><br/>
-   *         myValue: "{{ myValue }}"
-   *
-   *         <p id="inputDescription2">Without $rollbackViewValue()</p>
-   *         <input name="myInput2" aria-describedby="inputDescription2" ng-model="myValue"
-   *                ng-keydown="resetWithoutCancel($event)"><br/>
-   *         myValue: "{{ myValue }}"
+   *         <div>
+   *        <p id="inputDescription1">Without $rollbackViewValue():</p>
+   *         <input name="value1" aria-describedby="inputDescription1" ng-model="model.value1"
+   *                ng-keydown="setEmpty($event, 'value1')">
+   *         value1: "{{ model.value1 }}"
+   *         </div>
+   *
+   *         <div>
+   *        <p id="inputDescription2">With $rollbackViewValue():</p>
+   *         <input name="value2" aria-describedby="inputDescription2" ng-model="model.value2"
+   *                ng-keydown="setEmpty($event, 'value2', true)">
+   *         value2: "{{ model.value2 }}"
+   *         </div>
    *       </form>
    *     </div>
    *   </file>
+       <file name="style.css">
+          div {
+            display: table-cell;
+          }
+          div:nth-child(1) {
+            padding-right: 30px;
+          }
+
+        </file>
    * </example>
    */
   this.$rollbackViewValue = function() {
@@ -25251,7 +25603,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
       forEach(ctrl.$asyncValidators, function(validator, name) {
         var promise = validator(modelValue, viewValue);
         if (!isPromiseLike(promise)) {
-          throw ngModelMinErr("$asyncValidators",
+          throw ngModelMinErr('nopromise',
             "Expected asynchronous validator to return a promise but got '{0}' instead.", promise);
         }
         setValidity(name, undefined);
@@ -26697,7 +27049,7 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
                 (current === emptyOption_ ||
                 current === unknownOption_ ||
                 current.nodeType === NODE_TYPE_COMMENT ||
-                current.value === '')) {
+                (nodeName_(current) === 'option' && current.value === ''))) {
             current = current.nextSibling;
           }
         }
@@ -26787,7 +27139,8 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
         // Check to see if the value has changed due to the update to the options
         if (!ngModelCtrl.$isEmpty(previousValue)) {
           var nextValue = selectCtrl.readValue();
-          if (ngOptions.trackBy ? !equals(previousValue, nextValue) : previousValue !== nextValue) {
+          var isNotPrimitive = ngOptions.trackBy || multiple;
+          if (isNotPrimitive ? !equals(previousValue, nextValue) : previousValue !== nextValue) {
             ngModelCtrl.$setViewValue(nextValue);
             ngModelCtrl.$render();
           }
@@ -28456,7 +28809,7 @@ var SelectController =
  *
  * The `select` directive is used together with {@link ngModel `ngModel`} to provide data-binding
  * between the scope and the `<select>` control (including setting default values).
- * Ìt also handles dynamic `<option>` elements, which can be added using the {@link ngRepeat `ngRepeat}` or
+ * It also handles dynamic `<option>` elements, which can be added using the {@link ngRepeat `ngRepeat}` or
  * {@link ngOptions `ngOptions`} directives.
  *
  * When an item in the `<select>` menu is selected, the value of the selected option will be bound
@@ -28658,7 +29011,8 @@ var selectDirective = function() {
     controller: SelectController,
     priority: 1,
     link: {
-      pre: selectPreLink
+      pre: selectPreLink,
+      post: selectPostLink
     }
   };
 
@@ -28672,13 +29026,6 @@ var selectDirective = function() {
 
       selectCtrl.ngModelCtrl = ngModelCtrl;
 
-      // We delegate rendering to the `writeValue` method, which can be changed
-      // if the select can have multiple selected values or if the options are being
-      // generated by `ngOptions`
-      ngModelCtrl.$render = function() {
-        selectCtrl.writeValue(ngModelCtrl.$viewValue);
-      };
-
       // When the selected item(s) changes we delegate getting the value of the select control
       // to the `readValue` method, which can be changed if the select can have multiple
       // selected values or if the options are being generated by `ngOptions`
@@ -28732,6 +29079,23 @@ var selectDirective = function() {
 
       }
     }
+
+    function selectPostLink(scope, element, attrs, ctrls) {
+      // if ngModel is not defined, we don't need to do anything
+      var ngModelCtrl = ctrls[1];
+      if (!ngModelCtrl) return;
+
+      var selectCtrl = ctrls[0];
+
+      // We delegate rendering to the `writeValue` method, which can be changed
+      // if the select can have multiple selected values or if the options are being
+      // generated by `ngOptions`.
+      // This must be done in the postLink fn to prevent $render to be called before
+      // all nodes have been linked correctly.
+      ngModelCtrl.$render = function() {
+        selectCtrl.writeValue(ngModelCtrl.$viewValue);
+      };
+    }
 };
 
 
@@ -28778,6 +29142,64 @@ var styleDirective = valueFn({
   terminal: false
 });
 
+/**
+ * @ngdoc directive
+ * @name ngRequired
+ *
+ * @description
+ *
+ * ngRequired adds the required {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}.
+ * It is most often used for {@link input `input`} and {@link select `select`} controls, but can also be
+ * applied to custom controls.
+ *
+ * The directive sets the `required` attribute on the element if the Angular expression inside
+ * `ngRequired` evaluates to true. A special directive for setting `required` is necessary because we
+ * cannot use interpolation inside `required`. See the {@link guide/interpolation interpolation guide}
+ * for more info.
+ *
+ * The validator will set the `required` error key to true if the `required` attribute is set and
+ * calling {@link ngModel.NgModelController#$isEmpty `NgModelController.$isEmpty` with the
+ * {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`} returns `true`. For example, the
+ * `$isEmpty()` implementation for `input[text]` checks the length of the `$viewValue`. When developing
+ * custom controls, `$isEmpty()` can be overwritten to account for a $viewValue that is not string-based.
+ *
+ * @example
+ * <example name="ngRequiredDirective" module="ngRequiredExample">
+ *   <file name="index.html">
+ *     <script>
+ *       angular.module('ngRequiredExample', [])
+ *         .controller('ExampleController', ['$scope', function($scope) {
+ *           $scope.required = true;
+ *         }]);
+ *     </script>
+ *     <div ng-controller="ExampleController">
+ *       <form name="form">
+ *         <label for="required">Toggle required: </label>
+ *         <input type="checkbox" ng-model="required" id="required" />
+ *         <br>
+ *         <label for="input">This input must be filled if `required` is true: </label>
+ *         <input type="text" ng-model="model" id="input" name="input" ng-required="required" /><br>
+ *         <hr>
+ *         required error set? = <code>{{form.input.$error.required}}</code><br>
+ *         model = <code>{{model}}</code>
+ *       </form>
+ *     </div>
+ *   </file>
+ *   <file name="protractor.js" type="protractor">
+       var required = element(by.binding('form.input.$error.required'));
+       var model = element(by.binding('model'));
+       var input = element(by.id('input'));
+
+       it('should set the required error', function() {
+         expect(required.getText()).toContain('true');
+
+         input.sendKeys('123');
+         expect(required.getText()).not.toContain('true');
+         expect(model.getText()).toContain('123');
+       });
+ *   </file>
+ * </example>
+ */
 var requiredDirective = function() {
   return {
     restrict: 'A',
@@ -28797,7 +29219,81 @@ var requiredDirective = function() {
   };
 };
 
+/**
+ * @ngdoc directive
+ * @name ngPattern
+ *
+ * @description
+ *
+ * ngPattern adds the pattern {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}.
+ * It is most often used for text-based {@link input `input`} controls, but can also be applied to custom text-based controls.
+ *
+ * The validator sets the `pattern` error key if the {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`}
+ * does not match a RegExp which is obtained by evaluating the Angular expression given in the
+ * `ngPattern` attribute value:
+ * * If the expression evaluates to a RegExp object, then this is used directly.
+ * * If the expression evaluates to a string, then it will be converted to a RegExp after wrapping it
+ * in `^` and `$` characters. For instance, `"abc"` will be converted to `new RegExp('^abc$')`.
+ *
+ * <div class="alert alert-info">
+ * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to
+ * start at the index of the last search's match, thus not taking the whole input value into
+ * account.
+ * </div>
+ *
+ * <div class="alert alert-info">
+ * **Note:** This directive is also added when the plain `pattern` attribute is used, with two
+ * differences:
+ * <ol>
+ *   <li>
+ *     `ngPattern` does not set the `pattern` attribute and therefore HTML5 constraint validation is
+ *     not available.
+ *   </li>
+ *   <li>
+ *     The `ngPattern` attribute must be an expression, while the `pattern` value must be
+ *     interpolated.
+ *   </li>
+ * </ol>
+ * </div>
+ *
+ * @example
+ * <example name="ngPatternDirective" module="ngPatternExample">
+ *   <file name="index.html">
+ *     <script>
+ *       angular.module('ngPatternExample', [])
+ *         .controller('ExampleController', ['$scope', function($scope) {
+ *           $scope.regex = '\\d+';
+ *         }]);
+ *     </script>
+ *     <div ng-controller="ExampleController">
+ *       <form name="form">
+ *         <label for="regex">Set a pattern (regex string): </label>
+ *         <input type="text" ng-model="regex" id="regex" />
+ *         <br>
+ *         <label for="input">This input is restricted by the current pattern: </label>
+ *         <input type="text" ng-model="model" id="input" name="input" ng-pattern="regex" /><br>
+ *         <hr>
+ *         input valid? = <code>{{form.input.$valid}}</code><br>
+ *         model = <code>{{model}}</code>
+ *       </form>
+ *     </div>
+ *   </file>
+ *   <file name="protractor.js" type="protractor">
+       var model = element(by.binding('model'));
+       var input = element(by.id('input'));
+
+       it('should validate the input with the default pattern', function() {
+         input.sendKeys('aaa');
+         expect(model.getText()).not.toContain('aaa');
 
+         input.clear().then(function() {
+           input.sendKeys('123');
+           expect(model.getText()).toContain('123');
+         });
+       });
+ *   </file>
+ * </example>
+ */
 var patternDirective = function() {
   return {
     restrict: 'A',
@@ -28829,7 +29325,72 @@ var patternDirective = function() {
   };
 };
 
+/**
+ * @ngdoc directive
+ * @name ngMaxlength
+ *
+ * @description
+ *
+ * ngMaxlength adds the maxlength {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}.
+ * It is most often used for text-based {@link input `input`} controls, but can also be applied to custom text-based controls.
+ *
+ * The validator sets the `maxlength` error key if the {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`}
+ * is longer than the integer obtained by evaluating the Angular expression given in the
+ * `ngMaxlength` attribute value.
+ *
+ * <div class="alert alert-info">
+ * **Note:** This directive is also added when the plain `maxlength` attribute is used, with two
+ * differences:
+ * <ol>
+ *   <li>
+ *     `ngMaxlength` does not set the `maxlength` attribute and therefore HTML5 constraint
+ *     validation is not available.
+ *   </li>
+ *   <li>
+ *     The `ngMaxlength` attribute must be an expression, while the `maxlength` value must be
+ *     interpolated.
+ *   </li>
+ * </ol>
+ * </div>
+ *
+ * @example
+ * <example name="ngMaxlengthDirective" module="ngMaxlengthExample">
+ *   <file name="index.html">
+ *     <script>
+ *       angular.module('ngMaxlengthExample', [])
+ *         .controller('ExampleController', ['$scope', function($scope) {
+ *           $scope.maxlength = 5;
+ *         }]);
+ *     </script>
+ *     <div ng-controller="ExampleController">
+ *       <form name="form">
+ *         <label for="maxlength">Set a maxlength: </label>
+ *         <input type="number" ng-model="maxlength" id="maxlength" />
+ *         <br>
+ *         <label for="input">This input is restricted by the current maxlength: </label>
+ *         <input type="text" ng-model="model" id="input" name="input" ng-maxlength="maxlength" /><br>
+ *         <hr>
+ *         input valid? = <code>{{form.input.$valid}}</code><br>
+ *         model = <code>{{model}}</code>
+ *       </form>
+ *     </div>
+ *   </file>
+ *   <file name="protractor.js" type="protractor">
+       var model = element(by.binding('model'));
+       var input = element(by.id('input'));
+
+       it('should validate the input with the default maxlength', function() {
+         input.sendKeys('abcdef');
+         expect(model.getText()).not.toContain('abcdef');
 
+         input.clear().then(function() {
+           input.sendKeys('abcde');
+           expect(model.getText()).toContain('abcde');
+         });
+       });
+ *   </file>
+ * </example>
+ */
 var maxlengthDirective = function() {
   return {
     restrict: 'A',
@@ -28850,6 +29411,70 @@ var maxlengthDirective = function() {
   };
 };
 
+/**
+ * @ngdoc directive
+ * @name ngMinlength
+ *
+ * @description
+ *
+ * ngMinlength adds the minlength {@link ngModel.NgModelController#$validators `validator`} to {@link ngModel `ngModel`}.
+ * It is most often used for text-based {@link input `input`} controls, but can also be applied to custom text-based controls.
+ *
+ * The validator sets the `minlength` error key if the {@link ngModel.NgModelController#$viewValue `ngModel.$viewValue`}
+ * is shorter than the integer obtained by evaluating the Angular expression given in the
+ * `ngMinlength` attribute value.
+ *
+ * <div class="alert alert-info">
+ * **Note:** This directive is also added when the plain `minlength` attribute is used, with two
+ * differences:
+ * <ol>
+ *   <li>
+ *     `ngMinlength` does not set the `minlength` attribute and therefore HTML5 constraint
+ *     validation is not available.
+ *   </li>
+ *   <li>
+ *     The `ngMinlength` value must be an expression, while the `minlength` value must be
+ *     interpolated.
+ *   </li>
+ * </ol>
+ * </div>
+ *
+ * @example
+ * <example name="ngMinlengthDirective" module="ngMinlengthExample">
+ *   <file name="index.html">
+ *     <script>
+ *       angular.module('ngMinlengthExample', [])
+ *         .controller('ExampleController', ['$scope', function($scope) {
+ *           $scope.minlength = 3;
+ *         }]);
+ *     </script>
+ *     <div ng-controller="ExampleController">
+ *       <form name="form">
+ *         <label for="minlength">Set a minlength: </label>
+ *         <input type="number" ng-model="minlength" id="minlength" />
+ *         <br>
+ *         <label for="input">This input is restricted by the current minlength: </label>
+ *         <input type="text" ng-model="model" id="input" name="input" ng-minlength="minlength" /><br>
+ *         <hr>
+ *         input valid? = <code>{{form.input.$valid}}</code><br>
+ *         model = <code>{{model}}</code>
+ *       </form>
+ *     </div>
+ *   </file>
+ *   <file name="protractor.js" type="protractor">
+       var model = element(by.binding('model'));
+       var input = element(by.id('input'));
+
+       it('should validate the input with the default minlength', function() {
+         input.sendKeys('ab');
+         expect(model.getText()).not.toContain('ab');
+
+         input.sendKeys('abc');
+         expect(model.getText()).toContain('abc');
+       });
+ *   </file>
+ * </example>
+ */
 var minlengthDirective = function() {
   return {
     restrict: 'A',
@@ -28962,6 +29587,20 @@ $provide.value("$locale", {
       "Nov",
       "Dec"
     ],
+    "STANDALONEMONTH": [
+      "January",
+      "February",
+      "March",
+      "April",
+      "May",
+      "June",
+      "July",
+      "August",
+      "September",
+      "October",
+      "November",
+      "December"
+    ],
     "WEEKENDRANGE": [
       5,
       6
index d2c0ad0..bd53d0a 100644 (file)
@@ -1512,7 +1512,7 @@ if (
             } else {
                 array_push.call(output, strSlice(string, lastLastIndex));
             }
-            return output.length > splitLimit ? strSlice(output, 0, splitLimit) : output;
+            return output.length > splitLimit ? arraySlice(output, 0, splitLimit) : output;
         };
     }());
 
index a4455d5..b6ddb80 100644 (file)
@@ -1,7 +1,7 @@
 /*! Copyright 2012, Ben Lin (http://dreamerslab.com/)
  * Licensed under the MIT License (LICENSE.txt).
  *
- * Version: 1.0.16
+ * Version: 1.0.18
  *
  * Requires: jQuery >= 1.2.3
  */
index 7381731..f6a4b84 100644 (file)
@@ -1,15 +1,14 @@
 {
   "name": "lodash",
   "homepage": "https://github.com/lodash/lodash",
-  "version": "4.5.1",
-  "_release": "4.5.1",
+  "version": "4.6.1",
+  "_release": "4.6.1",
   "_resolution": {
     "type": "version",
-    "tag": "4.5.1",
-    "commit": "1c1028b78ced111a320bbfb8ee8c2cf4b3d5265d"
+    "tag": "4.6.1",
+    "commit": "f5f152d28d26653e808c6bd58807bc6689660b7e"
   },
   "_source": "git://github.com/lodash/lodash.git",
   "_target": "^4.5.1",
-  "_originalSource": "lodash",
-  "_direct": true
+  "_originalSource": "lodash"
 }
\ No newline at end of file
index 2fd78f8..f95d490 100644 (file)
@@ -9,10 +9,10 @@ may have already been discussed or fixed in `master`. To contribute,
 
 ## Feature Requests
 
-Feature requests are always welcome. They should be submitted in the
+Feature requests should be submitted in the
 [issue tracker](https://github.com/lodash/lodash/issues), with a description of
 the expected behavior & use case, where they’ll remain closed until sufficient
-interest has been shown by the community. Before submitting a request,
+interest, e.g. :+1:’s, has been shown by the community. Before submitting a request,
 please search for similar ones in the
 [closed issues](https://github.com/lodash/lodash/issues?q=is%3Aissue+is%3Aclosed+label%3Aenhancement).
 
index cf36374..48bc131 100644 (file)
@@ -43,7 +43,7 @@ before_install:
       PATTERN[3]="|\s*else\s*\{\s*assocSet\(data\b[\s\S]+?\}|"
       PATTERN[4]="|\s*if\s*\(ctorString\b[\s\S]+?\}\s*\}|"
       PATTERN[5]="|\bindex,\s*iterable\)\s*===\s*false\)[^}]+?(break;)|"
-      PATTERN[6]="|\s*if\s*\(!lodashFunc\)\s*\{\s*return;\s*\}|"
+      PATTERN[6]="|\s*if\s*\(\!lodashFunc\)\s*\{\s*return;\s*\}|"
       PATTERN[7]="|\s*define\([\s\S]+?\);|"
       PATTERN[8]="|\s*root\._\s*=\s*_;|"
 
index ec7efa0..963fe25 100644 (file)
@@ -1,24 +1,41 @@
-# Contributor Code of Conduct
+# Contributor Covenant Code of Conduct
 
-As contributors and maintainers of this project, and in the interest of
-fostering an open and welcoming community, we pledge to respect all people who
-contribute through reporting issues, posting feature requests, updating
-documentation, submitting pull requests or patches, and other activities.
+## Our Pledge
 
-We are committed to making participation in this project a harassment-free
-experience for everyone, regardless of level of experience, gender, gender
-identity and expression, sexual orientation, disability, personal appearance,
-body size, race, ethnicity, age, religion, or nationality.
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, gender identity and expression, level of experience,
+nationality, personal appearance, race, religion, or sexual identity and
+orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
 
 Examples of unacceptable behavior by participants include:
 
-* The use of sexualized language or imagery
-* Personal attacks
-* Trolling or insulting/derogatory comments
+* The use of sexualized language or imagery and unwelcome sexual attention or
+advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
 * Public or private harassment
-* Publishing other's private information, such as physical or electronic
-  addresses, without explicit permission
-* Other unethical or unprofessional conduct
+* Publishing others' private information, such as a physical or electronic
+  address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+  professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
 
 Project maintainers have the right and responsibility to remove, edit, or
 reject comments, commits, code, wiki edits, issues, and other contributions
@@ -26,24 +43,32 @@ that are not aligned to this Code of Conduct, or to ban temporarily or
 permanently any contributor for other behaviors that they deem inappropriate,
 threatening, offensive, or harmful.
 
-By adopting this Code of Conduct, project maintainers commit themselves to
-fairly and consistently applying these principles to every aspect of managing
-this project. Project maintainers who do not follow or enforce the Code of
-Conduct may be permanently removed from the project team.
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.
 
-This code of conduct applies both within project spaces and in public spaces
-when an individual is representing the project or its community.
+## Enforcement
 
 Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported by contacting a project maintainer at
-[coc@lodash.com](mailto:coc@lodash.com). All complaints will be reviewed and
-investigated and will result in a response that is deemed necessary and
-appropriate to the circumstances. Maintainers are obligated to maintain
-confidentiality with regard to the reporter of an incident.
+reported by contacting the project team at [coc@lodash.com](mailto:coc@lodash.com).
+The project team will review and investigate all complaints, and will respond in
+a way that it deems appropriate to the circumstances. The project team is obligated
+to maintain confidentiality with regard to the reporter of an incident. Further
+details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+## Attribution
 
-This Code of Conduct is adapted from the [Contributor Covenant][homepage],
-version 1.3.0, available at
-[http://contributor-covenant.org/version/1/3/0/][version]
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
+available at [http://contributor-covenant.org/version/1/4][version]
 
 [homepage]: http://contributor-covenant.org
-[version]: http://contributor-covenant.org/version/1/3/0/
+[version]: http://contributor-covenant.org/version/1/4/
index 440a09d..1581d0a 100644 (file)
@@ -1,4 +1,4 @@
-# lodash v4.5.1
+# lodash v4.6.1
 
 The [lodash](https://lodash.com/) library exported as a [UMD](https://github.com/umdjs/umd) module.
 
@@ -20,11 +20,11 @@ $ lodash core -o ./dist/lodash.core.js
 
 ## Download
 
-Lodash is released under the [MIT license](https://raw.githubusercontent.com/lodash/lodash/4.5.1/LICENSE) & supports [modern environments](#support).<br>
+Lodash is released under the [MIT license](https://raw.githubusercontent.com/lodash/lodash/4.6.1/LICENSE) & supports [modern environments](#support).<br>
 Review the [build differences](https://github.com/lodash/lodash/wiki/build-differences) & pick one that’s right for you.
 
- * [Core build](https://raw.githubusercontent.com/lodash/lodash/4.5.1/dist/lodash.core.js) ([~4 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.5.1/dist/lodash.core.min.js))
- * [Full build](https://raw.githubusercontent.com/lodash/lodash/4.5.1/dist/lodash.js) ([~21 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.5.1/dist/lodash.min.js))
+ * [Core build](https://raw.githubusercontent.com/lodash/lodash/4.6.1/dist/lodash.core.js) ([~4 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.6.1/dist/lodash.core.min.js))
+ * [Full build](https://raw.githubusercontent.com/lodash/lodash/4.6.1/dist/lodash.js) ([~21 kB gzipped](https://raw.githubusercontent.com/lodash/lodash/4.6.1/dist/lodash.min.js))
  * [CDN copies](https://www.jsdelivr.com/projects/lodash)
 
 ## Why Lodash?
@@ -43,10 +43,10 @@ Lodash is available in a [variety of builds](https://lodash.com/custom-builds) &
  * [lodash](https://www.npmjs.com/package/lodash) & [per method packages](https://www.npmjs.com/browse/keyword/lodash-modularized)
  * [lodash-amd](https://www.npmjs.com/package/lodash-amd)
  * [lodash-es](https://www.npmjs.com/package/lodash-es) & [babel-plugin-lodash](https://www.npmjs.com/package/babel-plugin-lodash)
- * [lodash/fp](https://github.com/lodash/lodash/tree/4.5.1-npm/fp)
+ * [lodash/fp](https://github.com/lodash/lodash/tree/4.6.1-npm/fp)
 
 ## Further Reading
 
-  * [Contributing](https://github.com/lodash/lodash/blob/master/.github/CONTRIBUTING.md)
+  * [Contributing](https://github.com/lodash/lodash/blob/4.6.1/.github/CONTRIBUTING.md)
   * [Release Notes](https://github.com/lodash/lodash/releases/tag/4.0.0)
   * [Wiki (Changelog, Roadmap, etc.)](https://github.com/lodash/lodash/wiki)
index 2c541fb..d8ba4fd 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * @license
- * lodash 4.5.1 (Custom Build) <https://lodash.com/>
+ * lodash 4.6.1 (Custom Build) <https://lodash.com/>
  * Build: `lodash core -o ./dist/lodash.core.js`
  * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
  * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
   var undefined;
 
   /** Used as the semantic version number. */
-  var VERSION = '4.5.1';
+  var VERSION = '4.6.1';
+
+  /** Used as the `TypeError` message for "Functions" methods. */
+  var FUNC_ERROR_TEXT = 'Expected a function';
 
   /** Used to compose bitmasks for wrapper metadata. */
   var BIND_FLAG = 1,
@@ -23,9 +26,6 @@
   var UNORDERED_COMPARE_FLAG = 1,
       PARTIAL_COMPARE_FLAG = 2;
 
-  /** Used as the `TypeError` message for "Functions" methods. */
-  var FUNC_ERROR_TEXT = 'Expected a function';
-
   /** Used as references for various `Number` constants. */
   var INFINITY = 1 / 0,
       MAX_SAFE_INTEGER = 9007199254740991;
    * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,
    * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,
    * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,
-   * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, `difference`,
-   * `differenceBy`, `differenceWith`, `drop`, `dropRight`, `dropRightWhile`,
-   * `dropWhile`, `fill`, `filter`, `flatten`, `flattenDeep`, `flattenDepth`,
-   * `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, `functionsIn`,
-   * `groupBy`, `initial`, `intersection`, `intersectionBy`, `intersectionWith`,
-   * `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, `keys`, `keysIn`,
-   * `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, `memoize`,
-   * `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, `nthArg`,
-   * `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, `overEvery`,
-   * `overSome`, `partial`, `partialRight`, `partition`, `pick`, `pickBy`, `plant`,
-   * `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, `pullAt`, `push`,
-   * `range`, `rangeRight`, `rearg`, `reject`, `remove`, `rest`, `reverse`,
-   * `sampleSize`, `set`, `setWith`, `shuffle`, `slice`, `sort`, `sortBy`,
-   * `splice`, `spread`, `tail`, `take`, `takeRight`, `takeRightWhile`,
-   * `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, `toPairs`, `toPairsIn`,
-   * `toPath`, `toPlainObject`, `transform`, `unary`, `union`, `unionBy`,
-   * `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, `unshift`, `unzip`,
-   * `unzipWith`, `values`, `valuesIn`, `without`, `wrap`, `xor`, `xorBy`,
-   * `xorWith`, `zip`, `zipObject`, `zipObjectDeep`, and `zipWith`
+   * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,
+   * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,
+   * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,
+   * `flatten`, `flattenDeep`, `flattenDepth`, `flip`, `flow`, `flowRight`,
+   * `fromPairs`, `functions`, `functionsIn`, `groupBy`, `initial`, `intersection`,
+   * `intersectionBy`, `intersectionWith`, `invert`, `invertBy`, `invokeMap`,
+   * `iteratee`, `keyBy`, `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`,
+   * `matches`, `matchesProperty`, `memoize`, `merge`, `mergeWith`, `method`,
+   * `methodOf`, `mixin`, `negate`, `nthArg`, `omit`, `omitBy`, `once`, `orderBy`,
+   * `over`, `overArgs`, `overEvery`, `overSome`, `partial`, `partialRight`,
+   * `partition`, `pick`, `pickBy`, `plant`, `property`, `propertyOf`, `pull`,
+   * `pullAll`, `pullAllBy`, `pullAllWith`, `pullAt`, `push`, `range`,
+   * `rangeRight`, `rearg`, `reject`, `remove`, `rest`, `reverse`, `sampleSize`,
+   * `set`, `setWith`, `shuffle`, `slice`, `sort`, `sortBy`, `splice`, `spread`,
+   * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, `tap`, `throttle`,
+   * `thru`, `toArray`, `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`,
+   * `transform`, `unary`, `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`,
+   * `uniqWith`, `unset`, `unshift`, `unzip`, `unzipWith`, `update`, `values`,
+   * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, `zipObject`,
+   * `zipObjectDeep`, and `zipWith`
    *
    * The wrapper methods that are **not** chainable by default are:
    * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,
-   * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `deburr`, `endsWith`, `eq`,
-   * `escape`, `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,
-   * `findLastIndex`, `findLastKey`, `floor`, `forEach`, `forEachRight`, `forIn`,
-   * `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, `hasIn`,
-   * `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, `isArguments`,
-   * `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, `isBoolean`,
-   * `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, `isEqualWith`,
-   * `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, `isMap`,
-   * `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`,
-   * `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, `isSafeInteger`,
-   * `isSet`, `isString`, `isUndefined`, `isTypedArray`, `isWeakMap`, `isWeakSet`,
-   * `join`, `kebabCase`, `last`, `lastIndexOf`, `lowerCase`, `lowerFirst`,
-   * `lt`, `lte`, `max`, `maxBy`, `mean`, `min`, `minBy`, `noConflict`, `noop`,
-   * `now`, `pad`, `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`,
-   * `reduceRight`, `repeat`, `result`, `round`, `runInContext`, `sample`,
-   * `shift`, `size`, `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`,
-   * `sortedLastIndex`, `sortedLastIndexBy`, `startCase`, `startsWith`, `subtract`,
-   * `sum`, `sumBy`, `template`, `times`, `toLower`, `toInteger`, `toLength`,
+   * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `deburr`, `each`, `eachRight`,
+   * `endsWith`, `eq`, `escape`, `escapeRegExp`, `every`, `find`, `findIndex`,
+   * `findKey`, `findLast`, `findLastIndex`, `findLastKey`, `first`, `floor`,
+   * `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`,
+   * `get`, `gt`, `gte`, `has`, `hasIn`, `head`, `identity`, `includes`,
+   * `indexOf`, `inRange`, `invoke`, `isArguments`, `isArray`, `isArrayBuffer`,
+   * `isArrayLike`, `isArrayLikeObject`, `isBoolean`, `isBuffer`, `isDate`,
+   * `isElement`, `isEmpty`, `isEqual`, `isEqualWith`, `isError`, `isFinite`,
+   * `isFunction`, `isInteger`, `isLength`, `isMap`, `isMatch`, `isMatchWith`,
+   * `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`, `isObject`, `isObjectLike`,
+   * `isPlainObject`, `isRegExp`, `isSafeInteger`, `isSet`, `isString`,
+   * `isUndefined`, `isTypedArray`, `isWeakMap`, `isWeakSet`, `join`, `kebabCase`,
+   * `last`, `lastIndexOf`, `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`,
+   * `maxBy`, `mean`, `min`, `minBy`, `noConflict`, `noop`, `now`, `pad`,
+   * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,
+   * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,
+   * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,
+   * `sortedLastIndexBy`, `startCase`, `startsWith`, `subtract`, `sum`, `sumBy`,
+   * `template`, `times`, `toInteger`, `toJSON`, `toLength`, `toLower`,
    * `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, `trimEnd`,
    * `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, `upperFirst`,
    * `value`, and `words`
 
     if (!objIsArr) {
       objTag = objectToString.call(object);
-      if (objTag == argsTag) {
-        objTag = objectTag;
-      }
+      objTag = objTag == argsTag ? objectTag : objTag;
     }
     if (!othIsArr) {
       othTag = objectToString.call(other);
-      if (othTag == argsTag) {
-        othTag = objectTag;
-      }
+      othTag = othTag == argsTag ? objectTag : othTag;
     }
     var objIsObj = objTag == objectTag && !isHostObject(object),
         othIsObj = othTag == objectTag && !isHostObject(other),
         isSameTag = objTag == othTag;
 
-    if (isSameTag && !(objIsArr || objIsObj)) {
-      return equalByTag(object, other, objTag, equalFunc, customizer, bitmask);
+    stack || (stack = []);
+    var stacked = find(stack, function(entry) {
+      return entry[0] === object;
+    });
+    if (stacked && stacked[1]) {
+      return stacked[1] == other;
+    }
+    stack.push([object, other]);
+    if (isSameTag && !objIsObj) {
+      var result = (objIsArr || isTypedArray(object))
+        ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)
+        : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);
+      stack.pop();
+      return result;
     }
-    var isPartial = bitmask & PARTIAL_COMPARE_FLAG;
-    if (!isPartial) {
+    if (!(bitmask & PARTIAL_COMPARE_FLAG)) {
       var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
           othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
 
       if (objIsWrapped || othIsWrapped) {
-        return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, bitmask, stack);
+        var result = equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, bitmask, stack);
+        stack.pop();
+        return result;
       }
     }
     if (!isSameTag) {
       return false;
     }
-    stack || (stack = []);
-    var stacked = find(stack, function(entry) {
-      return entry[0] === object;
-    });
-    if (stacked && stacked[1]) {
-      return stacked[1] == other;
-    }
-    stack.push([object, other]);
-    var result =  (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, bitmask, stack);
+    var result = equalObjects(object, other, equalFunc, customizer, bitmask, stack);
     stack.pop();
     return result;
   }
    * @param {Array} array The array to compare.
    * @param {Array} other The other array to compare.
    * @param {Function} equalFunc The function to determine equivalents of values.
-   * @param {Function} [customizer] The function to customize comparisons.
-   * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.
-   * @param {Object} [stack] Tracks traversed `array` and `other` objects.
+   * @param {Function} customizer The function to customize comparisons.
+   * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details.
+   * @param {Object} stack Tracks traversed `array` and `other` objects.
    * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
    */
   function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
    * @param {Object} other The other object to compare.
    * @param {string} tag The `toStringTag` of the objects to compare.
    * @param {Function} equalFunc The function to determine equivalents of values.
-   * @param {Function} [customizer] The function to customize comparisons.
-   * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.
+   * @param {Function} customizer The function to customize comparisons.
+   * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details.
+   * @param {Object} stack Tracks traversed `object` and `other` objects.
    * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
    */
-  function equalByTag(object, other, tag, equalFunc, customizer, bitmask) {
+  function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
     switch (tag) {
 
       case boolTag:
    * @param {Object} object The object to compare.
    * @param {Object} other The other object to compare.
    * @param {Function} equalFunc The function to determine equivalents of values.
-   * @param {Function} [customizer] The function to customize comparisons.
-   * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.
-   * @param {Object} [stack] Tracks traversed `object` and `other` objects.
+   * @param {Function} customizer The function to customize comparisons.
+   * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details.
+   * @param {Object} stack Tracks traversed `object` and `other` objects.
    * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
    */
   function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
    */
   function isPrototype(value) {
     var Ctor = value && value.constructor,
-        proto = (isFunction(Ctor) && Ctor.prototype) || objectProto;
+        proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
 
     return value === proto;
   }
    * // => false
    */
   function isArrayLike(value) {
-    return value != null &&
-      !(typeof value == 'function' && isFunction(value)) && isLength(getLength(value));
+    return value != null && isLength(getLength(value)) && !isFunction(value);
   }
 
   /**
   }
 
   /**
-   * Checks if `value` is empty. A value is considered empty unless it's an
-   * `arguments` object, array, string, or jQuery-like collection with a length
-   * greater than `0` or an object with own enumerable properties.
+   * Checks if `value` is an empty collection or object. A value is considered
+   * empty if it's an `arguments` object, array, string, or jQuery-like collection
+   * with a length of `0` or has no own enumerable properties.
    *
    * @static
    * @memberOf _
    * @category Lang
-   * @param {Array|Object|string} value The value to inspect.
+   * @param {*} value The value to check.
    * @returns {boolean} Returns `true` if `value` is empty, else `false`.
    * @example
    *
    */
   function isFunction(value) {
     // The use of `Object#toString` avoids issues with the `typeof` operator
-    // in Safari 8 which returns 'object' for typed array constructors, and
-    // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+    // in Safari 8 which returns 'object' for typed array and weak map constructors,
+    // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
     var tag = isObject(value) ? objectToString.call(value) : '';
     return tag == funcTag || tag == genTag;
   }
index 8658b91..d6a4405 100644 (file)
@@ -1,29 +1,29 @@
 /**
  * @license
- * lodash 4.5.1 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
+ * lodash 4.6.1 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
  * Build: `lodash core -o ./dist/lodash.core.js`
  */
 ;(function(){function n(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];return n}function t(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(c===an?i===i:r(i,c)))var c=i,f=o}return f}function r(n,t,r){var e;return r(n,function(n,r,u){return t(n,r,u)?(e=n,false):void 0}),e}function e(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function u(n,t){return O(t,function(t){return n[t]})}function o(n){return n&&n.Object===Object?n:null}function i(n){return vn[n];
-}function c(n){var t=false;if(null!=n&&typeof n.toString!="function")try{t=!!(n+"")}catch(r){}return t}function f(n,t){return n=typeof n=="number"||hn.test(n)?+n:-1,n>-1&&0==n%1&&(null==t?9007199254740991:t)>n}function a(n){if(Y(n)&&!Pn(n)){if(n instanceof l)return n;if(En.call(n,"__wrapped__")){var t=new l(n.__wrapped__,n.__chain__);return t.__actions__=N(n.__actions__),t}}return new l(n)}function l(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function p(n,t,r,e){var u;return(u=n===an)||(u=xn[r],
-u=(n===u||n!==n&&u!==u)&&!En.call(e,r)),u?t:n}function s(n){return X(n)?Fn(n):{}}function h(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(an,r)},t)}function v(n,t){var r=true;return $n(n,function(n,e,u){return r=!!t(n,e,u)}),r}function y(n,t){var r=[];return $n(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function _(t,r,e,u){u||(u=[]);for(var o=-1,i=t.length;++o<i;){var c=t[o];r>0&&Y(c)&&L(c)&&(e||Pn(c)||K(c))?r>1?_(c,r-1,e,u):n(u,c):e||(u[u.length]=c);
-}return u}function g(n,t){return n&&qn(n,t,en)}function b(n,t){return y(t,function(t){return Q(n[t])})}function j(n,t,r,e,u){return n===t?true:null==n||null==t||!X(n)&&!Y(t)?n!==n&&t!==t:m(n,t,j,r,e,u)}function m(n,t,r,e,u,o){var i=Pn(n),f=Pn(t),a="[object Array]",l="[object Array]";i||(a=kn.call(n),"[object Arguments]"==a&&(a="[object Object]")),f||(l=kn.call(t),"[object Arguments]"==l&&(l="[object Object]"));var p="[object Object]"==a&&!c(n),f="[object Object]"==l&&!c(t);return!(l=a==l)||i||p?2&u||(a=p&&En.call(n,"__wrapped__"),
-f=f&&En.call(t,"__wrapped__"),!a&&!f)?l?(o||(o=[]),(a=J(o,function(t){return t[0]===n}))&&a[1]?a[1]==t:(o.push([n,t]),t=(i?I:q)(n,t,r,e,u,o),o.pop(),t)):false:r(a?n.value():n,f?t.value():t,e,u,o):$(n,t,a)}function d(n){var t=typeof n;return"function"==t?n:null==n?cn:("object"==t?x:A)(n)}function w(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function O(n,t){var r=-1,e=L(n)?Array(n.length):[];return $n(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function x(n){var t=en(n);return function(r){
-var e=t.length;if(null==r)return!e;for(r=Object(r);e--;){var u=t[e];if(!(u in r&&j(n[u],r[u],an,3)))return false}return true}}function E(n,t){return n=Object(n),P(t,function(t,r){return r in n&&(t[r]=n[r]),t},{})}function A(n){return function(t){return null==t?an:t[n]}}function k(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function N(n){return k(n,0,n.length)}function S(n,t){var r;return $n(n,function(n,e,u){return r=t(n,e,u),
-!r}),!!r}function T(t,r){return P(r,function(t,r){return r.func.apply(r.thisArg,n([t],r.args))},t)}function F(n,t,r,e){r||(r={});for(var u=-1,o=t.length;++u<o;){var i=t[u],c=e?e(r[i],n[i],i,r,n):n[i],f=r,a=f[i];En.call(f,i)&&(a===c||a!==a&&c!==c)&&(c!==an||i in f)||(f[i]=c)}return r}function R(n){return V(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:an,o=typeof o=="function"?(u--,o):an;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o)}return t})}function B(n){return function(){var t=arguments,r=s(n.prototype),t=n.apply(r,t);
-return X(t)?t:r}}function D(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==wn&&this instanceof e?u:n;++c<f;)a[c]=r[c];for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=B(n);return e}function I(n,t,r,e,u,o){var i=-1,c=1&u,f=n.length,a=t.length;if(f!=a&&!(2&u&&a>f))return false;for(a=true;++i<f;){var l=n[i],p=t[i];if(void 0!==an){a=false;break}if(c){if(!S(t,function(n){return l===n||r(l,n,e,u,o);
-})){a=false;break}}else if(l!==p&&!r(l,p,e,u,o)){a=false;break}}return a}function $(n,t,r){switch(r){case"[object Boolean]":case"[object Date]":return+n==+t;case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object Number]":return n!=+n?t!=+t:n==+t;case"[object RegExp]":case"[object String]":return n==t+""}return false}function q(n,t,r,e,u,o){var i=2&u,c=en(n),f=c.length,a=en(t).length;if(f!=a&&!i)return false;for(var l=f;l--;){var p=c[l];if(!(i?p in t:En.call(t,p)))return false}for(a=true;++l<f;){
-var p=c[l],s=n[p],h=t[p];if(void 0!==an||s!==h&&!r(s,h,e,u,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(a=false)),a}function z(n){var t=n?n.length:an;if(W(t)&&(Pn(n)||nn(n)||K(n))){n=String;for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);t=e}else t=null;return t}function C(n){var t=n&&n.constructor,t=Q(t)&&t.prototype||xn;return n===t}function G(n){
-return n?n[0]:an}function J(n,t){return r(n,d(t),$n)}function M(n,t){return $n(n,typeof t=="function"?t:cn)}function P(n,t,r){return e(n,d(t),r,3>arguments.length,$n)}function U(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Un(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=an),r}}function V(n){var t;if(typeof n!="function")throw new TypeError("Expected a function");return t=In(t===an?n.length-1:Un(t),0),function(){for(var r=arguments,e=-1,u=In(r.length-t,0),o=Array(u);++e<u;)o[e]=r[t+e];
-for(u=Array(t+1),e=-1;++e<t;)u[e]=r[e];return u[t]=o,n.apply(this,u)}}function H(n,t){return n>t}function K(n){return Y(n)&&L(n)&&En.call(n,"callee")&&(!Rn.call(n,"callee")||"[object Arguments]"==kn.call(n))}function L(n){return null!=n&&!(typeof n=="function"&&Q(n))&&W(zn(n))}function Q(n){return n=X(n)?kn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n}function W(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function X(n){var t=typeof n;return!!n&&("object"==t||"function"==t);
-}function Y(n){return!!n&&typeof n=="object"}function Z(n){return typeof n=="number"||Y(n)&&"[object Number]"==kn.call(n)}function nn(n){return typeof n=="string"||!Pn(n)&&Y(n)&&"[object String]"==kn.call(n)}function tn(n,t){return t>n}function rn(n){return typeof n=="string"?n:null==n?"":n+""}function en(n){var t=C(n);if(!t&&!L(n))return Dn(Object(n));var r,e=z(n),u=!!e,e=e||[],o=e.length;for(r in n)!En.call(n,r)||u&&("length"==r||f(r,o))||t&&"constructor"==r||e.push(r);return e}function un(n){for(var t=-1,r=C(n),e=w(n),u=e.length,o=z(n),i=!!o,o=o||[],c=o.length;++t<u;){
-var a=e[t];i&&("length"==a||f(a,c))||"constructor"==a&&(r||!En.call(n,a))||o.push(a)}return o}function on(n){return n?u(n,en(n)):[]}function cn(n){return n}function fn(t,r,e){var u=en(r),o=b(r,u);null!=e||X(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=b(r,en(r)));var i=X(e)&&"chain"in e?e.chain:true,c=Q(t);return $n(o,function(e){var u=r[e];t[e]=u,c&&(t.prototype[e]=function(){var r=this.__chain__;if(i||r){var e=t(this.__wrapped__);return(e.__actions__=N(this.__actions__)).push({func:u,args:arguments,
-thisArg:t}),e.__chain__=r,e}return u.apply(t,n([this.value()],arguments))})}),t}var an,ln=1/0,pn=/[&<>"'`]/g,sn=RegExp(pn.source),hn=/^(?:0|[1-9]\d*)$/,vn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},yn={"function":true,object:true},_n=yn[typeof exports]&&exports&&!exports.nodeType?exports:an,gn=yn[typeof module]&&module&&!module.nodeType?module:an,bn=gn&&gn.exports===_n?_n:an,jn=o(yn[typeof self]&&self),mn=o(yn[typeof window]&&window),dn=o(yn[typeof this]&&this),wn=o(_n&&gn&&typeof global=="object"&&global)||mn!==(dn&&dn.window)&&mn||jn||dn||Function("return this")(),On=Array.prototype,xn=Object.prototype,En=xn.hasOwnProperty,An=0,kn=xn.toString,Nn=wn._,Sn=wn.Reflect,Tn=Sn?Sn.f:an,Fn=Object.create,Rn=xn.propertyIsEnumerable,Bn=wn.isFinite,Dn=Object.keys,In=Math.max,$n=function(n,t){
-return function(r,e){if(null==r)return r;if(!L(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}(g),qn=function(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var c=e[n?i:++u];if(false===r(o[c],c,o))break}return t}}();Tn&&!Rn.call({valueOf:1},"valueOf")&&(w=function(n){n=Tn(n);for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r});var zn=A("length"),Cn=V(function(t,r){return Pn(t)||(t=null==t?[]:[Object(t)]),_(r,1),
-n(N(t),on)}),Gn=V(function(n,t,r){return D(n,t,r)}),Jn=V(function(n,t){return h(n,1,t)}),Mn=V(function(n,t,r){return h(n,Vn(t)||0,r)}),Pn=Array.isArray,Un=Number,Vn=Number,Hn=R(function(n,t){F(t,en(t),n)}),Kn=R(function(n,t){F(t,un(t),n)}),Ln=R(function(n,t,r,e){F(t,un(t),n,e)}),Qn=V(function(n){return n.push(an,p),Ln.apply(an,n)}),Wn=V(function(n,t){return null==n?{}:E(n,_(t,1))}),Xn=d;l.prototype=s(a.prototype),l.prototype.constructor=l,a.assignIn=Kn,a.before=U,a.bind=Gn,a.chain=function(n){return n=a(n),
-n.__chain__=true,n},a.compact=function(n){return y(n,Boolean)},a.concat=Cn,a.create=function(n,t){var r=s(n);return t?Hn(r,t):r},a.defaults=Qn,a.defer=Jn,a.delay=Mn,a.filter=function(n,t){return y(n,d(t))},a.flatten=function(n){return n&&n.length?_(n,1):[]},a.flattenDeep=function(n){return n&&n.length?_(n,ln):[]},a.iteratee=Xn,a.keys=en,a.map=function(n,t){return O(n,d(t))},a.matches=function(n){return x(Hn({},n))},a.mixin=fn,a.negate=function(n){if(typeof n!="function")throw new TypeError("Expected a function");
-return function(){return!n.apply(this,arguments)}},a.once=function(n){return U(2,n)},a.pick=Wn,a.slice=function(n,t,r){var e=n?n.length:0;return r=r===an?e:+r,e?k(n,null==t?0:+t,r):[]},a.sortBy=function(n,t){var r=0;return t=d(t),O(O(n,function(n,e,u){return{c:n,b:r++,a:t(n,e,u)}}).sort(function(n,t){var r;n:{r=n.a;var e=t.a;if(r!==e){var u=null===r,o=r===an,i=r===r,c=null===e,f=e===an,a=e===e;if(r>e&&!c||!i||u&&!f&&a||o&&a){r=1;break n}if(e>r&&!u||!a||c&&!o&&i||f&&i){r=-1;break n}}r=0}return r||n.b-t.b;
-}),A("c"))},a.tap=function(n,t){return t(n),n},a.thru=function(n,t){return t(n)},a.toArray=function(n){return L(n)?n.length?N(n):[]:on(n)},a.values=on,a.extend=Kn,fn(a,a),a.clone=function(n){return X(n)?Pn(n)?N(n):F(n,en(n)):n},a.escape=function(n){return(n=rn(n))&&sn.test(n)?n.replace(pn,i):n},a.every=function(n,t,r){return t=r?an:t,v(n,d(t))},a.find=J,a.forEach=M,a.has=function(n,t){return null!=n&&En.call(n,t)},a.head=G,a.identity=cn,a.indexOf=function(n,t,r){var e=n?n.length:0;r=typeof r=="number"?0>r?In(e+r,0):r:0,
-r=(r||0)-1;for(var u=t===t;++r<e;){var o=n[r];if(u?o===t:o!==o)return r}return-1},a.isArguments=K,a.isArray=Pn,a.isBoolean=function(n){return true===n||false===n||Y(n)&&"[object Boolean]"==kn.call(n)},a.isDate=function(n){return Y(n)&&"[object Date]"==kn.call(n)},a.isEmpty=function(n){if(L(n)&&(Pn(n)||nn(n)||Q(n.splice)||K(n)))return!n.length;for(var t in n)if(En.call(n,t))return false;return true},a.isEqual=function(n,t){return j(n,t)},a.isFinite=function(n){return typeof n=="number"&&Bn(n)},a.isFunction=Q,a.isNaN=function(n){
+}function c(n){var t=false;if(null!=n&&typeof n.toString!="function")try{t=!!(n+"")}catch(r){}return t}function f(n,t){return n=typeof n=="number"||hn.test(n)?+n:-1,n>-1&&0==n%1&&(null==t?9007199254740991:t)>n}function a(n){if(Y(n)&&!Pn(n)){if(n instanceof l)return n;if(An.call(n,"__wrapped__")){var t=new l(n.__wrapped__,n.__chain__);return t.__actions__=N(n.__actions__),t}}return new l(n)}function l(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t}function p(n,t,r,e){var u;return(u=n===an)||(u=xn[r],
+u=(n===u||n!==n&&u!==u)&&!An.call(e,r)),u?t:n}function s(n){return X(n)?Fn(n):{}}function h(n,t,r){if(typeof n!="function")throw new TypeError("Expected a function");return setTimeout(function(){n.apply(an,r)},t)}function v(n,t){var r=true;return $n(n,function(n,e,u){return r=!!t(n,e,u)}),r}function y(n,t){var r=[];return $n(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function _(t,r,e,u){u||(u=[]);for(var o=-1,i=t.length;++o<i;){var c=t[o];r>0&&Y(c)&&L(c)&&(e||Pn(c)||K(c))?r>1?_(c,r-1,e,u):n(u,c):e||(u[u.length]=c);
+}return u}function b(n,t){return n&&qn(n,t,en)}function g(n,t){return y(t,function(t){return Q(n[t])})}function j(n,t,r,e,u){return n===t?true:null==n||null==t||!X(n)&&!Y(t)?n!==n&&t!==t:d(n,t,j,r,e,u)}function d(n,t,r,e,u,o){var i=Pn(n),f=Pn(t),a="[object Array]",l="[object Array]";i||(a=kn.call(n),a="[object Arguments]"==a?"[object Object]":a),f||(l=kn.call(t),l="[object Arguments]"==l?"[object Object]":l);var p="[object Object]"==a&&!c(n),f="[object Object]"==l&&!c(t),l=a==l;o||(o=[]);var s=J(o,function(t){
+return t[0]===n});return s&&s[1]?s[1]==t:(o.push([n,t]),l&&!p?(t=i||isTypedArray(n)?I(n,t,r,e,u,o):$(n,t,a),o.pop(),t):2&u||(i=p&&An.call(n,"__wrapped__"),a=f&&An.call(t,"__wrapped__"),!i&&!a)?l?(t=q(n,t,r,e,u,o),o.pop(),t):false:(t=r(i?n.value():n,a?t.value():t,e,u,o),o.pop(),t))}function m(n){var t=typeof n;return"function"==t?n:null==n?cn:("object"==t?x:E)(n)}function w(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function O(n,t){var r=-1,e=L(n)?Array(n.length):[];return $n(n,function(n,u,o){
+e[++r]=t(n,u,o)}),e}function x(n){var t=en(n);return function(r){var e=t.length;if(null==r)return!e;for(r=Object(r);e--;){var u=t[e];if(!(u in r&&j(n[u],r[u],an,3)))return false}return true}}function A(n,t){return n=Object(n),P(t,function(t,r){return r in n&&(t[r]=n[r]),t},{})}function E(n){return function(t){return null==t?an:t[n]}}function k(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function N(n){return k(n,0,n.length);
+}function S(n,t){var r;return $n(n,function(n,e,u){return r=t(n,e,u),!r}),!!r}function T(t,r){return P(r,function(t,r){return r.func.apply(r.thisArg,n([t],r.args))},t)}function F(n,t,r,e){r||(r={});for(var u=-1,o=t.length;++u<o;){var i=t[u],c=e?e(r[i],n[i],i,r,n):n[i],f=r,a=f[i];An.call(f,i)&&(a===c||a!==a&&c!==c)&&(c!==an||i in f)||(f[i]=c)}return r}function R(n){return V(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:an,o=typeof o=="function"?(u--,o):an;for(t=Object(t);++e<u;){var i=r[e];i&&n(t,i,e,o);
+}return t})}function B(n){return function(){var t=arguments,r=s(n.prototype),t=n.apply(r,t);return X(t)?t:r}}function D(n,t,r){function e(){for(var o=-1,i=arguments.length,c=-1,f=r.length,a=Array(f+i),l=this&&this!==wn&&this instanceof e?u:n;++c<f;)a[c]=r[c];for(;i--;)a[c++]=arguments[++o];return l.apply(t,a)}if(typeof n!="function")throw new TypeError("Expected a function");var u=B(n);return e}function I(n,t,r,e,u,o){var i=-1,c=1&u,f=n.length,a=t.length;if(f!=a&&!(2&u&&a>f))return false;for(a=true;++i<f;){
+var l=n[i],p=t[i];if(void 0!==an){a=false;break}if(c){if(!S(t,function(n){return l===n||r(l,n,e,u,o)})){a=false;break}}else if(l!==p&&!r(l,p,e,u,o)){a=false;break}}return a}function $(n,t,r){switch(r){case"[object Boolean]":case"[object Date]":return+n==+t;case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object Number]":return n!=+n?t!=+t:n==+t;case"[object RegExp]":case"[object String]":return n==t+""}return false}function q(n,t,r,e,u,o){var i=2&u,c=en(n),f=c.length,a=en(t).length;if(f!=a&&!i)return false;
+for(var l=f;l--;){var p=c[l];if(!(i?p in t:An.call(t,p)))return false}for(a=true;++l<f;){var p=c[l],s=n[p],h=t[p];if(void 0!==an||s!==h&&!r(s,h,e,u,o)){a=false;break}i||(i="constructor"==p)}return a&&!i&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(a=false)),a}function z(n){var t=n?n.length:an;if(W(t)&&(Pn(n)||nn(n)||K(n))){n=String;for(var r=-1,e=Array(t);++r<t;)e[r]=n(r);t=e}else t=null;return t}
+function C(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||xn)}function G(n){return n?n[0]:an}function J(n,t){return r(n,m(t),$n)}function M(n,t){return $n(n,typeof t=="function"?t:cn)}function P(n,t,r){return e(n,m(t),r,3>arguments.length,$n)}function U(n,t){var r;if(typeof t!="function")throw new TypeError("Expected a function");return n=Un(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=an),r}}function V(n){var t;if(typeof n!="function")throw new TypeError("Expected a function");
+return t=In(t===an?n.length-1:Un(t),0),function(){for(var r=arguments,e=-1,u=In(r.length-t,0),o=Array(u);++e<u;)o[e]=r[t+e];for(u=Array(t+1),e=-1;++e<t;)u[e]=r[e];return u[t]=o,n.apply(this,u)}}function H(n,t){return n>t}function K(n){return Y(n)&&L(n)&&An.call(n,"callee")&&(!Rn.call(n,"callee")||"[object Arguments]"==kn.call(n))}function L(n){return null!=n&&W(zn(n))&&!Q(n)}function Q(n){return n=X(n)?kn.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n}function W(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n;
+}function X(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function Y(n){return!!n&&typeof n=="object"}function Z(n){return typeof n=="number"||Y(n)&&"[object Number]"==kn.call(n)}function nn(n){return typeof n=="string"||!Pn(n)&&Y(n)&&"[object String]"==kn.call(n)}function tn(n,t){return t>n}function rn(n){return typeof n=="string"?n:null==n?"":n+""}function en(n){var t=C(n);if(!t&&!L(n))return Dn(Object(n));var r,e=z(n),u=!!e,e=e||[],o=e.length;for(r in n)!An.call(n,r)||u&&("length"==r||f(r,o))||t&&"constructor"==r||e.push(r);
+return e}function un(n){for(var t=-1,r=C(n),e=w(n),u=e.length,o=z(n),i=!!o,o=o||[],c=o.length;++t<u;){var a=e[t];i&&("length"==a||f(a,c))||"constructor"==a&&(r||!An.call(n,a))||o.push(a)}return o}function on(n){return n?u(n,en(n)):[]}function cn(n){return n}function fn(t,r,e){var u=en(r),o=g(r,u);null!=e||X(r)&&(o.length||!u.length)||(e=r,r=t,t=this,o=g(r,en(r)));var i=X(e)&&"chain"in e?e.chain:true,c=Q(t);return $n(o,function(e){var u=r[e];t[e]=u,c&&(t.prototype[e]=function(){var r=this.__chain__;if(i||r){
+var e=t(this.__wrapped__);return(e.__actions__=N(this.__actions__)).push({func:u,args:arguments,thisArg:t}),e.__chain__=r,e}return u.apply(t,n([this.value()],arguments))})}),t}var an,ln=1/0,pn=/[&<>"'`]/g,sn=RegExp(pn.source),hn=/^(?:0|[1-9]\d*)$/,vn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},yn={"function":true,object:true},_n=yn[typeof exports]&&exports&&!exports.nodeType?exports:an,bn=yn[typeof module]&&module&&!module.nodeType?module:an,gn=bn&&bn.exports===_n?_n:an,jn=o(yn[typeof self]&&self),dn=o(yn[typeof window]&&window),mn=o(yn[typeof this]&&this),wn=o(_n&&bn&&typeof global=="object"&&global)||dn!==(mn&&mn.window)&&dn||jn||mn||Function("return this")(),On=Array.prototype,xn=Object.prototype,An=xn.hasOwnProperty,En=0,kn=xn.toString,Nn=wn._,Sn=wn.Reflect,Tn=Sn?Sn.f:an,Fn=Object.create,Rn=xn.propertyIsEnumerable,Bn=wn.isFinite,Dn=Object.keys,In=Math.max,$n=function(n,t){
+return function(r,e){if(null==r)return r;if(!L(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}(b),qn=function(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var c=e[n?i:++u];if(false===r(o[c],c,o))break}return t}}();Tn&&!Rn.call({valueOf:1},"valueOf")&&(w=function(n){n=Tn(n);for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r});var zn=E("length"),Cn=V(function(t,r){return Pn(t)||(t=null==t?[]:[Object(t)]),_(r,1),
+n(N(t),on)}),Gn=V(function(n,t,r){return D(n,t,r)}),Jn=V(function(n,t){return h(n,1,t)}),Mn=V(function(n,t,r){return h(n,Vn(t)||0,r)}),Pn=Array.isArray,Un=Number,Vn=Number,Hn=R(function(n,t){F(t,en(t),n)}),Kn=R(function(n,t){F(t,un(t),n)}),Ln=R(function(n,t,r,e){F(t,un(t),n,e)}),Qn=V(function(n){return n.push(an,p),Ln.apply(an,n)}),Wn=V(function(n,t){return null==n?{}:A(n,_(t,1))}),Xn=m;l.prototype=s(a.prototype),l.prototype.constructor=l,a.assignIn=Kn,a.before=U,a.bind=Gn,a.chain=function(n){return n=a(n),
+n.__chain__=true,n},a.compact=function(n){return y(n,Boolean)},a.concat=Cn,a.create=function(n,t){var r=s(n);return t?Hn(r,t):r},a.defaults=Qn,a.defer=Jn,a.delay=Mn,a.filter=function(n,t){return y(n,m(t))},a.flatten=function(n){return n&&n.length?_(n,1):[]},a.flattenDeep=function(n){return n&&n.length?_(n,ln):[]},a.iteratee=Xn,a.keys=en,a.map=function(n,t){return O(n,m(t))},a.matches=function(n){return x(Hn({},n))},a.mixin=fn,a.negate=function(n){if(typeof n!="function")throw new TypeError("Expected a function");
+return function(){return!n.apply(this,arguments)}},a.once=function(n){return U(2,n)},a.pick=Wn,a.slice=function(n,t,r){var e=n?n.length:0;return r=r===an?e:+r,e?k(n,null==t?0:+t,r):[]},a.sortBy=function(n,t){var r=0;return t=m(t),O(O(n,function(n,e,u){return{c:n,b:r++,a:t(n,e,u)}}).sort(function(n,t){var r;n:{r=n.a;var e=t.a;if(r!==e){var u=null===r,o=r===an,i=r===r,c=null===e,f=e===an,a=e===e;if(r>e&&!c||!i||u&&!f&&a||o&&a){r=1;break n}if(e>r&&!u||!a||c&&!o&&i||f&&i){r=-1;break n}}r=0}return r||n.b-t.b;
+}),E("c"))},a.tap=function(n,t){return t(n),n},a.thru=function(n,t){return t(n)},a.toArray=function(n){return L(n)?n.length?N(n):[]:on(n)},a.values=on,a.extend=Kn,fn(a,a),a.clone=function(n){return X(n)?Pn(n)?N(n):F(n,en(n)):n},a.escape=function(n){return(n=rn(n))&&sn.test(n)?n.replace(pn,i):n},a.every=function(n,t,r){return t=r?an:t,v(n,m(t))},a.find=J,a.forEach=M,a.has=function(n,t){return null!=n&&An.call(n,t)},a.head=G,a.identity=cn,a.indexOf=function(n,t,r){var e=n?n.length:0;r=typeof r=="number"?0>r?In(e+r,0):r:0,
+r=(r||0)-1;for(var u=t===t;++r<e;){var o=n[r];if(u?o===t:o!==o)return r}return-1},a.isArguments=K,a.isArray=Pn,a.isBoolean=function(n){return true===n||false===n||Y(n)&&"[object Boolean]"==kn.call(n)},a.isDate=function(n){return Y(n)&&"[object Date]"==kn.call(n)},a.isEmpty=function(n){if(L(n)&&(Pn(n)||nn(n)||Q(n.splice)||K(n)))return!n.length;for(var t in n)if(An.call(n,t))return false;return true},a.isEqual=function(n,t){return j(n,t)},a.isFinite=function(n){return typeof n=="number"&&Bn(n)},a.isFunction=Q,a.isNaN=function(n){
 return Z(n)&&n!=+n},a.isNull=function(n){return null===n},a.isNumber=Z,a.isObject=X,a.isRegExp=function(n){return X(n)&&"[object RegExp]"==kn.call(n)},a.isString=nn,a.isUndefined=function(n){return n===an},a.last=function(n){var t=n?n.length:0;return t?n[t-1]:an},a.max=function(n){return n&&n.length?t(n,cn,H):an},a.min=function(n){return n&&n.length?t(n,cn,tn):an},a.noConflict=function(){return wn._===this&&(wn._=Nn),this},a.noop=function(){},a.reduce=P,a.result=function(n,t,r){return t=null==n?an:n[t],
-t===an&&(t=r),Q(t)?t.call(n):t},a.size=function(n){return null==n?0:(n=L(n)?n:en(n),n.length)},a.some=function(n,t,r){return t=r?an:t,S(n,d(t))},a.uniqueId=function(n){var t=++An;return rn(n)+t},a.each=M,a.first=G,fn(a,function(){var n={};return g(a,function(t,r){En.call(a.prototype,r)||(n[r]=t)}),n}(),{chain:false}),a.VERSION="4.5.1",$n("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?String.prototype:On)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);
-a.prototype[n]=function(){var n=arguments;return e&&!this.__chain__?t.apply(this.value(),n):this[r](function(r){return t.apply(r,n)})}}),a.prototype.toJSON=a.prototype.valueOf=a.prototype.value=function(){return T(this.__wrapped__,this.__actions__)},(mn||jn||{})._=a,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return a}):_n&&gn?(bn&&((gn.exports=a)._=a),_n._=a):wn._=a}).call(this);
\ No newline at end of file
+t===an&&(t=r),Q(t)?t.call(n):t},a.size=function(n){return null==n?0:(n=L(n)?n:en(n),n.length)},a.some=function(n,t,r){return t=r?an:t,S(n,m(t))},a.uniqueId=function(n){var t=++En;return rn(n)+t},a.each=M,a.first=G,fn(a,function(){var n={};return b(a,function(t,r){An.call(a.prototype,r)||(n[r]=t)}),n}(),{chain:false}),a.VERSION="4.6.1",$n("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?String.prototype:On)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);
+a.prototype[n]=function(){var n=arguments;return e&&!this.__chain__?t.apply(this.value(),n):this[r](function(r){return t.apply(r,n)})}}),a.prototype.toJSON=a.prototype.valueOf=a.prototype.value=function(){return T(this.__wrapped__,this.__actions__)},(dn||jn||{})._=a,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return a}):_n&&bn?(gn&&((bn.exports=a)._=a),_n._=a):wn._=a}).call(this);
\ No newline at end of file
index 8e4aa5a..e3acdd6 100644 (file)
@@ -458,25 +458,25 @@ return /******/ (function(modules) { // webpackBootstrap
            'hasIn', 'includes', 'indexOf', 'intersection', 'invertBy', 'invoke', 'invokeMap',
            'isEqual', 'isMatch', 'join', 'keyBy', 'lastIndexOf', 'lt', 'lte', 'map',
            'mapKeys', 'mapValues', 'matchesProperty', 'maxBy', 'merge', 'minBy', 'omit',
-           'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt',
-           'partial', 'partialRight', 'partition', 'pick', 'pickBy', 'pull', 'pullAll',
-           'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
-           'repeat', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
-           'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
-           'split', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight', 'takeRightWhile',
-           'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars', 'trimCharsEnd',
-           'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith', 'unset',
-           'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject', 'zipObjectDeep'
+           'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',
+           'partialRight', 'partition', 'pick', 'pickBy', 'pull', 'pullAll', 'pullAt',
+           'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove', 'repeat', 'result',
+           'sampleSize', 'some', 'sortBy', 'sortedIndex', 'sortedIndexOf', 'sortedLastIndex',
+           'sortedLastIndexOf', 'sortedUniqBy', 'split', 'startsWith', 'subtract', 'sumBy',
+           'take', 'takeRight', 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru',
+           'times', 'trimChars', 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union',
+           'uniqBy', 'uniqWith', 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip',
+           'zipObject', 'zipObjectDeep'
          ],
          '3': [
            'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
            'getOr', 'inRange', 'intersectionBy', 'intersectionWith', 'isEqualWith',
-           'isMatchWith', 'mergeWith', 'orderBy', 'pullAllBy', 'reduce', 'reduceRight',
-           'replace', 'set', 'slice', 'sortedIndexBy', 'sortedLastIndexBy', 'transform',
-           'unionBy', 'unionWith', 'xorBy', 'xorWith', 'zipWith'
+           'isMatchWith', 'mergeWith', 'orderBy', 'pullAllBy', 'pullAllWith', 'reduce',
+           'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy', 'sortedLastIndexBy',
+           'transform', 'unionBy', 'unionWith', 'update', 'xorBy', 'xorWith', 'zipWith'
          ],
          '4': [
-           'fill', 'setWith'
+           'fill', 'setWith', 'updateWith'
          ]
        };
 
@@ -540,9 +540,11 @@ return /******/ (function(modules) { // webpackBootstrap
          'isMatchWith': [2, 1, 0],
          'mergeWith': [1, 2, 0],
          'pullAllBy': [2, 1, 0],
+         'pullAllWith': [2, 1, 0],
          'setWith': [3, 1, 2, 0],
          'sortedIndexBy': [2, 1, 0],
          'sortedLastIndexBy': [2, 1, 0],
+         'updateWith': [3, 1, 2, 0],
          'zipWith': [1, 2, 0]
        };
 
@@ -559,6 +561,7 @@ return /******/ (function(modules) { // webpackBootstrap
            'pull': true,
            'pullAll': true,
            'pullAllBy': true,
+           'pullAllWith': true,
            'pullAt': true,
            'remove': true,
            'reverse': true
@@ -576,7 +579,9 @@ return /******/ (function(modules) { // webpackBootstrap
          'set': {
            'set': true,
            'setWith': true,
-           'unset': true
+           'unset': true,
+           'update': true,
+           'updateWith': true
          }
        };
 
index 637f41a..991f04b 100644 (file)
@@ -1,13 +1,14 @@
-!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.fp=e():t.fp=e()}(this,function(){return function(t){function e(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return t[n].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}([function(t,e,r){function n(t,e){return i(t,t,e)}var i=r(1);"function"==typeof _&&(_=n(_.runInContext())),
-t.exports=n},function(t,e,r){function n(t,e,r,s){var u,c="function"==typeof e,p=e===Object(e);if(p&&(s=r,r=e,e=void 0),null==r)throw new TypeError;s||(s={});var l={cap:"cap"in s?s.cap:!0,curry:"curry"in s?s.curry:!0,fixed:"fixed"in s?s.fixed:!0,immutable:"immutable"in s?s.immutable:!0,rearg:"rearg"in s?s.rearg:!0},f="rearg"in s&&s.rearg,h=c?r:{ary:t.ary,clone:t.clone,curry:t.curry,forEach:t.forEach,isArray:t.isArray,isFunction:t.isFunction,iteratee:t.iteratee,keys:t.keys,rearg:t.rearg,spread:t.spread,
-toPath:t.toPath},d=h.ary,y=h.clone,g=h.curry,m=h.forEach,v=h.isArray,W=h.isFunction,x=h.keys,R=h.rearg,I=h.spread,O=h.toPath,b=x(i.aryMethod),A=function(t,e){return 2==e?function(e,r){return t.apply(void 0,arguments)}:function(e){return t.apply(void 0,arguments)}},B=function(t,e){return 2==e?function(e,r){return t(e,r)}:function(e){return t(e)}},E=function(t){for(var e=t?t.length:0,r=Array(e);e--;)r[e]=t[e];return r},j=function(t,e){e=O(e);for(var r=-1,n=e.length,i=y(Object(t)),a=i;null!=a&&++r<n;){
-var o=e[r],s=a[o];null!=s&&(a[o]=y(Object(s))),a=a[o]}return i},k=function(t){return function(e){return t({},e)}},w=function(t,e){return function(){var r=arguments.length;if(!r)return i;for(var n=Array(r);r--;)n[r]=arguments[r];var i=n[0]=e.apply(void 0,n);return t.apply(void 0,n),i}},q=function(t,e){return P(t,function(t){return"function"==typeof t?B(t,e):t})},z=function(t,e){return P(t,function(t){var r=e.length;return A(R(B(t,r),e),r)})},P=function(t,e,r){return function(){var r=arguments.length;
-if(!r)return t();for(var n=Array(r);r--;)n[r]=arguments[r];var i=l.rearg?0:r-1;return n[i]=e(n[i]),t.apply(void 0,n)}},M={castArray:function(t){return function(){var e=arguments[0];return v(e)?t(E(e)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var e=arguments[0],r=arguments[1],n=t(e,r),i=n.length;return l.cap&&"number"==typeof r?(r=r>2?r-2:1,i&&r>=i?n:B(n,r)):n}},mixin:function(t){return function(e){var r=this;if(!W(r))return t(r,Object(e));var n=[],i=[];return m(x(e),function(t){
-var a=e[t];W(a)&&(i.push(t),n.push(r.prototype[t]))}),t(r,Object(e)),m(i,function(t,e){var i=n[e];W(i)?r.prototype[t]=i:delete r.prototype[t]}),r}},runInContext:function(e){return function(r){return n(t,e(r),s)}}},L=function(t,e){t=i.aliasToReal[t]||t;var r=M[t];if(r)return r(e);var n=e;l.immutable&&(a.array[t]?n=w(e,E):a.object[t]?n=w(e,k(e)):a.set[t]&&(n=w(e,j)));var s;return m(b,function(e){return m(i.aryMethod[e],function(r){if(t==r){var a=!c&&i.iterateeAry[t],o=i.iterateeRearg[t],u=i.methodSpread[t];
-return s=n,l.fixed&&(s=void 0===u?d(s,e):I(s,u)),l.rearg&&e>1&&(f||!i.skipRearg[t])&&(s=R(s,i.methodRearg[t]||i.aryRearg[e])),l.cap&&(o?s=z(s,o):a&&(s=q(s,a))),l.curry&&e>1&&(s=g(s,e)),!1}}),!s}),s||(s=n),i.placeholder[t]&&(u=!0,e.placeholder=s.placeholder=o),s};if(!p)return L(e,r);var S=r,C=[];return m(b,function(t){m(i.aryMethod[t],function(t){var e=S[i.remap[t]||t];e&&C.push([t,L(t,e)])})}),m(C,function(t){S[t[0]]=t[1]}),u&&(S.placeholder=o),m(x(S),function(t){m(i.realToAlias[t]||[],function(e){
-S[e]=S[t]})}),S}var i=r(2),a=i.mutate,o={};t.exports=n},function(t,e){e.aliasToReal={__:"placeholder",all:"some",allPass:"overEvery",apply:"spread",assoc:"set",assocPath:"set",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",each:"forEach",eachRight:"forEachRight",equals:"isEqual",extend:"assignIn",extendWith:"assignInWith",first:"head",init:"initial",mapObj:"mapValues",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",pickAll:"pick",pipe:"flow",
+!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.fp=e():t.fp=e()}(this,function(){return function(t){function e(i){if(r[i])return r[i].exports;var n=r[i]={exports:{},id:i,loaded:!1};return t[i].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}([function(t,e,r){function i(t,e){return n(t,t,e)}var n=r(1);"function"==typeof _&&(_=i(_.runInContext())),
+t.exports=i},function(t,e,r){function i(t,e,r,u){var s,l="function"==typeof e,p=e===Object(e);if(p&&(u=r,r=e,e=void 0),null==r)throw new TypeError;u||(u={});var c={cap:"cap"in u?u.cap:!0,curry:"curry"in u?u.curry:!0,fixed:"fixed"in u?u.fixed:!0,immutable:"immutable"in u?u.immutable:!0,rearg:"rearg"in u?u.rearg:!0},h="rearg"in u&&u.rearg,f=l?r:{ary:t.ary,clone:t.clone,curry:t.curry,forEach:t.forEach,isArray:t.isArray,isFunction:t.isFunction,iteratee:t.iteratee,keys:t.keys,rearg:t.rearg,spread:t.spread,
+toPath:t.toPath},d=f.ary,y=f.clone,g=f.curry,m=f.forEach,v=f.isArray,W=f.isFunction,x=f.keys,R=f.rearg,I=f.spread,O=f.toPath,b=x(n.aryMethod),A=function(t,e){return 2==e?function(e,r){return t.apply(void 0,arguments)}:function(e){return t.apply(void 0,arguments)}},B=function(t,e){return 2==e?function(e,r){return t(e,r)}:function(e){return t(e)}},E=function(t){for(var e=t?t.length:0,r=Array(e);e--;)r[e]=t[e];return r},j=function(t,e){e=O(e);for(var r=-1,i=e.length,n=y(Object(t)),a=n;null!=a&&++r<i;){
+var o=e[r],u=a[o];null!=u&&(a[o]=y(Object(u))),a=a[o]}return n},k=function(t){return function(e){return t({},e)}},w=function(t,e){return function(){var r=arguments.length;if(!r)return n;for(var i=Array(r);r--;)i[r]=arguments[r];var n=i[0]=e.apply(void 0,i);return t.apply(void 0,i),n}},q=function(t,e){return P(t,function(t){return"function"==typeof t?B(t,e):t})},z=function(t,e){return P(t,function(t){var r=e.length;return A(R(B(t,r),e),r)})},P=function(t,e,r){return function(){var r=arguments.length;
+if(!r)return t();for(var i=Array(r);r--;)i[r]=arguments[r];var n=c.rearg?0:r-1;return i[n]=e(i[n]),t.apply(void 0,i)}},M={castArray:function(t){return function(){var e=arguments[0];return v(e)?t(E(e)):t.apply(void 0,arguments)}},iteratee:function(t){return function(){var e=arguments[0],r=arguments[1],i=t(e,r),n=i.length;return c.cap&&"number"==typeof r?(r=r>2?r-2:1,n&&r>=n?i:B(i,r)):i}},mixin:function(t){return function(e){var r=this;if(!W(r))return t(r,Object(e));var i=[],n=[];return m(x(e),function(t){
+var a=e[t];W(a)&&(n.push(t),i.push(r.prototype[t]))}),t(r,Object(e)),m(n,function(t,e){var n=i[e];W(n)?r.prototype[t]=n:delete r.prototype[t]}),r}},runInContext:function(e){return function(r){return i(t,e(r),u)}}},L=function(t,e){t=n.aliasToReal[t]||t;var r=M[t];if(r)return r(e);var i=e;c.immutable&&(a.array[t]?i=w(e,E):a.object[t]?i=w(e,k(e)):a.set[t]&&(i=w(e,j)));var u;return m(b,function(e){return m(n.aryMethod[e],function(r){if(t==r){var a=!l&&n.iterateeAry[t],o=n.iterateeRearg[t],s=n.methodSpread[t];
+return u=i,c.fixed&&(u=void 0===s?d(u,e):I(u,s)),c.rearg&&e>1&&(h||!n.skipRearg[t])&&(u=R(u,n.methodRearg[t]||n.aryRearg[e])),c.cap&&(o?u=z(u,o):a&&(u=q(u,a))),c.curry&&e>1&&(u=g(u,e)),!1}}),!u}),u||(u=i),n.placeholder[t]&&(s=!0,e.placeholder=u.placeholder=o),u};if(!p)return L(e,r);var S=r,C=[];return m(b,function(t){m(n.aryMethod[t],function(t){var e=S[n.remap[t]||t];e&&C.push([t,L(t,e)])})}),m(C,function(t){S[t[0]]=t[1]}),s&&(S.placeholder=o),m(x(S),function(t){m(n.realToAlias[t]||[],function(e){
+S[e]=S[t]})}),S}var n=r(2),a=n.mutate,o={};t.exports=i},function(t,e){e.aliasToReal={__:"placeholder",all:"some",allPass:"overEvery",apply:"spread",assoc:"set",assocPath:"set",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",each:"forEach",eachRight:"forEachRight",equals:"isEqual",extend:"assignIn",extendWith:"assignInWith",first:"head",init:"initial",mapObj:"mapValues",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",pickAll:"pick",pipe:"flow",
 prop:"get",propOf:"propertyOf",propOr:"getOr",somePass:"overSome",unapply:"rest",unnest:"flatten",useWith:"overArgs",whereEq:"filter",zipObj:"zipObject"},e.aryMethod={1:["attempt","castArray","ceil","create","curry","curryRight","floor","fromPairs","invert","iteratee","memoize","method","methodOf","mixin","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words"],2:["add","after","ary","assign","assignIn","at","before","bind","bindKey","chunk","cloneDeepWith","cloneWith","concat","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","delay","difference","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","merge","minBy","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],
-3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","getOr","inRange","intersectionBy","intersectionWith","isEqualWith","isMatchWith","mergeWith","orderBy","pullAllBy","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","xorBy","xorWith","zipWith"],4:["fill","setWith"]},e.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},e.iterateeAry={assignWith:2,assignInWith:2,cloneDeepWith:1,cloneWith:1,dropRightWhile:1,dropWhile:1,every:1,
-filter:1,find:1,findIndex:1,findKey:1,findLast:1,findLastIndex:1,findLastKey:1,flatMap:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,isEqualWith:2,isMatchWith:2,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},e.iterateeRearg={mapKeys:[1]},e.methodRearg={assignInWith:[1,2,0],assignWith:[1,2,0],getOr:[2,1,0],isMatchWith:[2,1,0],mergeWith:[1,2,0],pullAllBy:[2,1,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],
-sortedLastIndexBy:[2,1,0],zipWith:[1,2,0]},e.methodSpread={partial:1,partialRight:1},e.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignIn:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsDeep:!0,merge:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0}},e.placeholder={bind:!0,bindKey:!0,curry:!0,curryRight:!0,partial:!0,partialRight:!0},e.realToAlias=function(){var t=Object.prototype.hasOwnProperty,r=e.aliasToReal,n={};for(var i in r){
-var a=r[i];t.call(n,a)?n[a].push(i):n[a]=[i]}return n}(),e.remap={curryN:"curry",curryRightN:"curryRight",getOr:"get",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart"},e.skipRearg={add:!0,assign:!0,assignIn:!0,concat:!0,difference:!0,gt:!0,gte:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,partial:!0,partialRight:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0}}])});
\ No newline at end of file
+3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","getOr","inRange","intersectionBy","intersectionWith","isEqualWith","isMatchWith","mergeWith","orderBy","pullAllBy","pullAllWith","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},e.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},e.iterateeAry={assignWith:2,assignInWith:2,cloneDeepWith:1,cloneWith:1,
+dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findIndex:1,findKey:1,findLast:1,findLastIndex:1,findLastKey:1,flatMap:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,isEqualWith:2,isMatchWith:2,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},e.iterateeRearg={mapKeys:[1]},e.methodRearg={assignInWith:[1,2,0],assignWith:[1,2,0],getOr:[2,1,0],isMatchWith:[2,1,0],mergeWith:[1,2,0],pullAllBy:[2,1,0],
+pullAllWith:[2,1,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],updateWith:[3,1,2,0],zipWith:[1,2,0]},e.methodSpread={partial:1,partialRight:1},e.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignIn:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsDeep:!0,merge:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},e.placeholder={bind:!0,bindKey:!0,curry:!0,curryRight:!0,partial:!0,
+partialRight:!0},e.realToAlias=function(){var t=Object.prototype.hasOwnProperty,r=e.aliasToReal,i={};for(var n in r){var a=r[n];t.call(i,a)?i[a].push(n):i[a]=[n]}return i}(),e.remap={curryN:"curry",curryRightN:"curryRight",getOr:"get",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart"},e.skipRearg={add:!0,assign:!0,assignIn:!0,concat:!0,difference:!0,gt:!0,gte:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,partial:!0,partialRight:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,
+zipObject:!0}}])});
\ No newline at end of file
index 0873443..cab4e79 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * @license
- * lodash 4.5.1 (Custom Build) <https://lodash.com/>
+ * lodash 4.6.1 (Custom Build) <https://lodash.com/>
  * Build: `lodash -o ./dist/lodash.js`
  * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
  * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
   var undefined;
 
   /** Used as the semantic version number. */
-  var VERSION = '4.5.1';
+  var VERSION = '4.6.1';
+
+  /** Used as the size to enable large array optimizations. */
+  var LARGE_ARRAY_SIZE = 200;
+
+  /** Used as the `TypeError` message for "Functions" methods. */
+  var FUNC_ERROR_TEXT = 'Expected a function';
+
+  /** Used to stand-in for `undefined` hash values. */
+  var HASH_UNDEFINED = '__lodash_hash_undefined__';
+
+  /** Used as the internal argument placeholder. */
+  var PLACEHOLDER = '__lodash_placeholder__';
 
   /** Used to compose bitmasks for wrapper metadata. */
   var BIND_FLAG = 1,
   var HOT_COUNT = 150,
       HOT_SPAN = 16;
 
-  /** Used as the size to enable large array optimizations. */
-  var LARGE_ARRAY_SIZE = 200;
-
   /** Used to indicate the type of lazy iteratees. */
   var LAZY_FILTER_FLAG = 1,
       LAZY_MAP_FLAG = 2,
       LAZY_WHILE_FLAG = 3;
 
-  /** Used as the `TypeError` message for "Functions" methods. */
-  var FUNC_ERROR_TEXT = 'Expected a function';
-
-  /** Used to stand-in for `undefined` hash values. */
-  var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
   /** Used as references for various `Number` constants. */
   var INFINITY = 1 / 0,
       MAX_SAFE_INTEGER = 9007199254740991,
@@ -64,9 +67,6 @@
       MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,
       HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
 
-  /** Used as the internal argument placeholder. */
-  var PLACEHOLDER = '__lodash_placeholder__';
-
   /** `Object#toString` result references. */
   var argsTag = '[object Arguments]',
       arrayTag = '[object Array]',
    * @returns {Object} Returns `map`.
    */
   function addMapEntry(map, pair) {
+    // Don't return `Map#set` because it doesn't return the map instance in IE 11.
     map.set(pair[0], pair[1]);
     return map;
   }
   function arrayFilter(array, predicate) {
     var index = -1,
         length = array.length,
-        resIndex = -1,
+        resIndex = 0,
         result = [];
 
     while (++index < length) {
       var value = array[index];
       if (predicate(value, index, array)) {
-        result[++resIndex] = value;
+        result[resIndex++] = value;
       }
     }
     return result;
   }
 
   /**
-   * A specialized version of `_.includesWith` for arrays without support for
-   * specifying an index to search from.
+   * This function is like `arrayIncludes` except that it accepts a comparator.
    *
    * @private
    * @param {Array} array The array to search.
   }
 
   /**
+   * This function is like `baseIndexOf` except that it accepts a comparator.
+   *
+   * @private
+   * @param {Array} array The array to search.
+   * @param {*} value The value to search for.
+   * @param {number} fromIndex The index to search from.
+   * @param {Function} comparator The comparator invoked per element.
+   * @returns {number} Returns the index of the matched value, else `-1`.
+   */
+  function baseIndexOfWith(array, value, fromIndex, comparator) {
+    var index = fromIndex - 1,
+        length = array.length;
+
+    while (++index < length) {
+      if (comparator(array[index], value)) {
+        return index;
+      }
+    }
+    return -1;
+  }
+
+  /**
    * The base implementation of `_.reduce` and `_.reduceRight`, without support
    * for iteratee shorthands, which iterates over `collection` using `eachFunc`.
    *
   }
 
   /**
-   * The base implementation of `_.sortBy` which uses `comparer` to define
-   * the sort order of `array` and replaces criteria objects with their
-   * corresponding values.
+   * The base implementation of `_.sortBy` which uses `comparer` to define the
+   * sort order of `array` and replaces criteria objects with their corresponding
+   * values.
    *
    * @private
    * @param {Array} array The array to sort.
   function replaceHolders(array, placeholder) {
     var index = -1,
         length = array.length,
-        resIndex = -1,
+        resIndex = 0,
         result = [];
 
     while (++index < length) {
       var value = array[index];
       if (value === placeholder || value === PLACEHOLDER) {
         array[index] = PLACEHOLDER;
-        result[++resIndex] = index;
+        result[resIndex++] = index;
       }
     }
     return result;
     /** Used to store function metadata. */
     var metaMap = WeakMap && new WeakMap;
 
+    /** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */
+    var nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');
+
+    /** Used to lookup unminified function names. */
+    var realNames = {};
+
     /** Used to detect maps, sets, and weakmaps. */
     var mapCtorString = Map ? funcToString.call(Map) : '',
         setCtorString = Set ? funcToString.call(Set) : '',
 
     /** Used to convert symbols to primitives and strings. */
     var symbolProto = Symbol ? Symbol.prototype : undefined,
-        symbolValueOf = Symbol ? symbolProto.valueOf : undefined,
-        symbolToString = Symbol ? symbolProto.toString : undefined;
-
-    /** Used to lookup unminified function names. */
-    var realNames = {};
+        symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,
+        symbolToString = symbolProto ? symbolProto.toString : undefined;
 
     /*------------------------------------------------------------------------*/
 
      * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,
      * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,
      * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,
-     * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, `difference`,
-     * `differenceBy`, `differenceWith`, `drop`, `dropRight`, `dropRightWhile`,
-     * `dropWhile`, `fill`, `filter`, `flatten`, `flattenDeep`, `flattenDepth`,
-     * `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, `functionsIn`,
-     * `groupBy`, `initial`, `intersection`, `intersectionBy`, `intersectionWith`,
-     * `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, `keys`, `keysIn`,
-     * `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, `memoize`,
-     * `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, `nthArg`,
-     * `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, `overEvery`,
-     * `overSome`, `partial`, `partialRight`, `partition`, `pick`, `pickBy`, `plant`,
-     * `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, `pullAt`, `push`,
-     * `range`, `rangeRight`, `rearg`, `reject`, `remove`, `rest`, `reverse`,
-     * `sampleSize`, `set`, `setWith`, `shuffle`, `slice`, `sort`, `sortBy`,
-     * `splice`, `spread`, `tail`, `take`, `takeRight`, `takeRightWhile`,
-     * `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, `toPairs`, `toPairsIn`,
-     * `toPath`, `toPlainObject`, `transform`, `unary`, `union`, `unionBy`,
-     * `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, `unshift`, `unzip`,
-     * `unzipWith`, `values`, `valuesIn`, `without`, `wrap`, `xor`, `xorBy`,
-     * `xorWith`, `zip`, `zipObject`, `zipObjectDeep`, and `zipWith`
+     * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,
+     * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,
+     * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,
+     * `flatten`, `flattenDeep`, `flattenDepth`, `flip`, `flow`, `flowRight`,
+     * `fromPairs`, `functions`, `functionsIn`, `groupBy`, `initial`, `intersection`,
+     * `intersectionBy`, `intersectionWith`, `invert`, `invertBy`, `invokeMap`,
+     * `iteratee`, `keyBy`, `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`,
+     * `matches`, `matchesProperty`, `memoize`, `merge`, `mergeWith`, `method`,
+     * `methodOf`, `mixin`, `negate`, `nthArg`, `omit`, `omitBy`, `once`, `orderBy`,
+     * `over`, `overArgs`, `overEvery`, `overSome`, `partial`, `partialRight`,
+     * `partition`, `pick`, `pickBy`, `plant`, `property`, `propertyOf`, `pull`,
+     * `pullAll`, `pullAllBy`, `pullAllWith`, `pullAt`, `push`, `range`,
+     * `rangeRight`, `rearg`, `reject`, `remove`, `rest`, `reverse`, `sampleSize`,
+     * `set`, `setWith`, `shuffle`, `slice`, `sort`, `sortBy`, `splice`, `spread`,
+     * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, `tap`, `throttle`,
+     * `thru`, `toArray`, `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`,
+     * `transform`, `unary`, `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`,
+     * `uniqWith`, `unset`, `unshift`, `unzip`, `unzipWith`, `update`, `values`,
+     * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, `zipObject`,
+     * `zipObjectDeep`, and `zipWith`
      *
      * The wrapper methods that are **not** chainable by default are:
      * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,
-     * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `deburr`, `endsWith`, `eq`,
-     * `escape`, `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,
-     * `findLastIndex`, `findLastKey`, `floor`, `forEach`, `forEachRight`, `forIn`,
-     * `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, `hasIn`,
-     * `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, `isArguments`,
-     * `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, `isBoolean`,
-     * `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, `isEqualWith`,
-     * `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, `isMap`,
-     * `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`,
-     * `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, `isSafeInteger`,
-     * `isSet`, `isString`, `isUndefined`, `isTypedArray`, `isWeakMap`, `isWeakSet`,
-     * `join`, `kebabCase`, `last`, `lastIndexOf`, `lowerCase`, `lowerFirst`,
-     * `lt`, `lte`, `max`, `maxBy`, `mean`, `min`, `minBy`, `noConflict`, `noop`,
-     * `now`, `pad`, `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`,
-     * `reduceRight`, `repeat`, `result`, `round`, `runInContext`, `sample`,
-     * `shift`, `size`, `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`,
-     * `sortedLastIndex`, `sortedLastIndexBy`, `startCase`, `startsWith`, `subtract`,
-     * `sum`, `sumBy`, `template`, `times`, `toLower`, `toInteger`, `toLength`,
+     * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `deburr`, `each`, `eachRight`,
+     * `endsWith`, `eq`, `escape`, `escapeRegExp`, `every`, `find`, `findIndex`,
+     * `findKey`, `findLast`, `findLastIndex`, `findLastKey`, `first`, `floor`,
+     * `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`,
+     * `get`, `gt`, `gte`, `has`, `hasIn`, `head`, `identity`, `includes`,
+     * `indexOf`, `inRange`, `invoke`, `isArguments`, `isArray`, `isArrayBuffer`,
+     * `isArrayLike`, `isArrayLikeObject`, `isBoolean`, `isBuffer`, `isDate`,
+     * `isElement`, `isEmpty`, `isEqual`, `isEqualWith`, `isError`, `isFinite`,
+     * `isFunction`, `isInteger`, `isLength`, `isMap`, `isMatch`, `isMatchWith`,
+     * `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`, `isObject`, `isObjectLike`,
+     * `isPlainObject`, `isRegExp`, `isSafeInteger`, `isSet`, `isString`,
+     * `isUndefined`, `isTypedArray`, `isWeakMap`, `isWeakSet`, `join`, `kebabCase`,
+     * `last`, `lastIndexOf`, `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`,
+     * `maxBy`, `mean`, `min`, `minBy`, `noConflict`, `noop`, `now`, `pad`,
+     * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,
+     * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,
+     * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,
+     * `sortedLastIndexBy`, `startCase`, `startsWith`, `subtract`, `sum`, `sumBy`,
+     * `template`, `times`, `toInteger`, `toJSON`, `toLength`, `toLower`,
      * `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, `trimEnd`,
      * `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, `upperFirst`,
      * `value`, and `words`
     }
 
     /**
-     * This function is like `assignValue` except that it doesn't assign `undefined` values.
+     * This function is like `assignValue` except that it doesn't assign
+     * `undefined` values.
      *
      * @private
      * @param {Object} object The object to modify.
      * @private
      * @param {*} value The value to clone.
      * @param {boolean} [isDeep] Specify a deep clone.
+     * @param {boolean} [isFull] Specify a clone including symbols.
      * @param {Function} [customizer] The function to customize cloning.
      * @param {string} [key] The key of `value`.
      * @param {Object} [object] The parent object of `value`.
      * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
      * @returns {*} Returns the cloned value.
      */
-    function baseClone(value, isDeep, customizer, key, object, stack) {
+    function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
       var result;
       if (customizer) {
         result = object ? customizer(value, key, object, stack) : customizer(value);
           }
           result = initCloneObject(isFunc ? {} : value);
           if (!isDeep) {
-            return copySymbols(value, baseAssign(result, value));
+            result = baseAssign(result, value);
+            return isFull ? copySymbols(value, result) : result;
           }
         } else {
           if (!cloneableTags[tag]) {
 
       // Recursively populate clone (susceptible to call stack limits).
       (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) {
-        assignValue(result, key, baseClone(subValue, isDeep, customizer, key, value, stack));
+        assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
       });
-      return isArr ? result : copySymbols(value, result);
+      return (isFull && !isArr) ? copySymbols(value, result) : result;
     }
 
     /**
      */
     function baseIntersection(arrays, iteratee, comparator) {
       var includes = comparator ? arrayIncludesWith : arrayIncludes,
+          length = arrays[0].length,
           othLength = arrays.length,
           othIndex = othLength,
           caches = Array(othLength),
+          maxLength = Infinity,
           result = [];
 
       while (othIndex--) {
         if (othIndex && iteratee) {
           array = arrayMap(array, baseUnary(iteratee));
         }
-        caches[othIndex] = !comparator && (iteratee || array.length >= 120)
+        maxLength = nativeMin(array.length, maxLength);
+        caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
           ? new SetCache(othIndex && array)
           : undefined;
       }
       array = arrays[0];
 
       var index = -1,
-          length = array.length,
           seen = caches[0];
 
       outer:
-      while (++index < length) {
+      while (++index < length && result.length < maxLength) {
         var value = array[index],
             computed = iteratee ? iteratee(value) : value;
 
               ? cacheHas(seen, computed)
               : includes(result, computed, comparator)
             )) {
-          var othIndex = othLength;
+          othIndex = othLength;
           while (--othIndex) {
             var cache = caches[othIndex];
             if (!(cache
 
       if (!objIsArr) {
         objTag = getTag(object);
-        if (objTag == argsTag) {
-          objTag = objectTag;
-        } else if (objTag != objectTag) {
-          objIsArr = isTypedArray(object);
-        }
+        objTag = objTag == argsTag ? objectTag : objTag;
       }
       if (!othIsArr) {
         othTag = getTag(other);
-        if (othTag == argsTag) {
-          othTag = objectTag;
-        } else if (othTag != objectTag) {
-          othIsArr = isTypedArray(other);
-        }
+        othTag = othTag == argsTag ? objectTag : othTag;
       }
       var objIsObj = objTag == objectTag && !isHostObject(object),
           othIsObj = othTag == objectTag && !isHostObject(other),
           isSameTag = objTag == othTag;
 
-      if (isSameTag && !(objIsArr || objIsObj)) {
-        return equalByTag(object, other, objTag, equalFunc, customizer, bitmask);
+      if (isSameTag && !objIsObj) {
+        stack || (stack = new Stack);
+        return (objIsArr || isTypedArray(object))
+          ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)
+          : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);
       }
-      var isPartial = bitmask & PARTIAL_COMPARE_FLAG;
-      if (!isPartial) {
+      if (!(bitmask & PARTIAL_COMPARE_FLAG)) {
         var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
             othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
 
         if (objIsWrapped || othIsWrapped) {
+          stack || (stack = new Stack);
           return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, bitmask, stack);
         }
       }
         return false;
       }
       stack || (stack = new Stack);
-      return (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, bitmask, stack);
+      return equalObjects(object, other, equalFunc, customizer, bitmask, stack);
     }
 
     /**
           }
           else {
             isCommon = false;
-            newValue = baseClone(srcValue, true);
+            newValue = baseClone(srcValue, !customizer);
           }
         }
         else if (isPlainObject(srcValue) || isArguments(srcValue)) {
           }
           else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {
             isCommon = false;
-            newValue = baseClone(srcValue, true);
+            newValue = baseClone(srcValue, !customizer);
           }
           else {
             newValue = objValue;
         // Recursively merge objects and arrays (susceptible to call stack limits).
         mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
       }
+      stack['delete'](srcValue);
       assignMergeValue(object, key, newValue);
     }
 
      * @returns {Array} Returns the new sorted array.
      */
     function baseOrderBy(collection, iteratees, orders) {
-      var index = -1,
-          toIteratee = getIteratee();
-
-      iteratees = arrayMap(iteratees.length ? iteratees : Array(1), function(iteratee) {
-        return toIteratee(iteratee);
-      });
+      var index = -1;
+      iteratees = arrayMap(iteratees.length ? iteratees : Array(1), getIteratee());
 
       var result = baseMap(collection, function(value, key, collection) {
         var criteria = arrayMap(iteratees, function(iteratee) {
     }
 
     /**
-     * The base implementation of `_.pullAll`.
-     *
-     * @private
-     * @param {Array} array The array to modify.
-     * @param {Array} values The values to remove.
-     * @returns {Array} Returns `array`.
-     */
-    function basePullAll(array, values) {
-      return basePullAllBy(array, values);
-    }
-
-    /**
      * The base implementation of `_.pullAllBy` without support for iteratee
      * shorthands.
      *
      * @param {Array} array The array to modify.
      * @param {Array} values The values to remove.
      * @param {Function} [iteratee] The iteratee invoked per element.
+     * @param {Function} [comparator] The comparator invoked per element.
      * @returns {Array} Returns `array`.
      */
-    function basePullAllBy(array, values, iteratee) {
-      var index = -1,
+    function basePullAll(array, values, iteratee, comparator) {
+      var indexOf = comparator ? baseIndexOfWith : baseIndexOf,
+          index = -1,
           length = values.length,
           seen = array;
 
       if (iteratee) {
-        seen = arrayMap(array, function(value) { return iteratee(value); });
+        seen = arrayMap(array, baseUnary(iteratee));
       }
       while (++index < length) {
         var fromIndex = 0,
             value = values[index],
             computed = iteratee ? iteratee(value) : value;
 
-        while ((fromIndex = baseIndexOf(seen, computed, fromIndex)) > -1) {
+        while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {
           if (seen !== array) {
             splice.call(seen, fromIndex, 1);
           }
           value = array[0],
           computed = iteratee ? iteratee(value) : value,
           seen = computed,
-          resIndex = 0,
+          resIndex = 1,
           result = [value];
 
       while (++index < length) {
 
         if (!eq(computed, seen)) {
           seen = computed;
-          result[++resIndex] = value;
+          result[resIndex++] = value;
         }
       }
       return result;
     }
 
     /**
+     * The base implementation of `_.update`.
+     *
+     * @private
+     * @param {Object} object The object to query.
+     * @param {Array|string} path The path of the property to update.
+     * @param {Function} updater The function to produce the updated value.
+     * @param {Function} [customizer] The function to customize path creation.
+     * @returns {Object} Returns `object`.
+     */
+    function baseUpdate(object, path, updater, customizer) {
+      return baseSet(object, path, updater(baseGet(object, path)), customizer);
+    }
+
+    /**
      * The base implementation of methods like `_.dropWhile` and `_.takeWhile`
      * without support for iteratee shorthands.
      *
       if (isDeep) {
         return buffer.slice();
       }
-      var Ctor = buffer.constructor,
-          result = new Ctor(buffer.length);
-
+      var result = new buffer.constructor(buffer.length);
       buffer.copy(result);
       return result;
     }
      * @returns {ArrayBuffer} Returns the cloned array buffer.
      */
     function cloneArrayBuffer(arrayBuffer) {
-      var Ctor = arrayBuffer.constructor,
-          result = new Ctor(arrayBuffer.byteLength),
-          view = new Uint8Array(result);
-
-      view.set(new Uint8Array(arrayBuffer));
+      var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
+      new Uint8Array(result).set(new Uint8Array(arrayBuffer));
       return result;
     }
 
      * @returns {Object} Returns the cloned map.
      */
     function cloneMap(map) {
-      var Ctor = map.constructor;
-      return arrayReduce(mapToArray(map), addMapEntry, new Ctor);
+      return arrayReduce(mapToArray(map), addMapEntry, new map.constructor);
     }
 
     /**
      * @returns {Object} Returns the cloned regexp.
      */
     function cloneRegExp(regexp) {
-      var Ctor = regexp.constructor,
-          result = new Ctor(regexp.source, reFlags.exec(regexp));
-
+      var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
       result.lastIndex = regexp.lastIndex;
       return result;
     }
      * @returns {Object} Returns the cloned set.
      */
     function cloneSet(set) {
-      var Ctor = set.constructor;
-      return arrayReduce(setToArray(set), addSetEntry, new Ctor);
+      return arrayReduce(setToArray(set), addSetEntry, new set.constructor);
     }
 
     /**
      * @returns {Object} Returns the cloned symbol object.
      */
     function cloneSymbol(symbol) {
-      return Symbol ? Object(symbolValueOf.call(symbol)) : {};
+      return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
     }
 
     /**
      * @returns {Object} Returns the cloned typed array.
      */
     function cloneTypedArray(typedArray, isDeep) {
-      var arrayBuffer = typedArray.buffer,
-          buffer = isDeep ? cloneArrayBuffer(arrayBuffer) : arrayBuffer,
-          Ctor = typedArray.constructor;
-
-      return new Ctor(buffer, typedArray.byteOffset, typedArray.length);
+      var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
+      return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
     }
 
     /**
      * @param {Array} array The array to compare.
      * @param {Array} other The other array to compare.
      * @param {Function} equalFunc The function to determine equivalents of values.
-     * @param {Function} [customizer] The function to customize comparisons.
-     * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.
-     * @param {Object} [stack] Tracks traversed `array` and `other` objects.
+     * @param {Function} customizer The function to customize comparisons.
+     * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details.
+     * @param {Object} stack Tracks traversed `array` and `other` objects.
      * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
      */
     function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
      * @param {Object} other The other object to compare.
      * @param {string} tag The `toStringTag` of the objects to compare.
      * @param {Function} equalFunc The function to determine equivalents of values.
-     * @param {Function} [customizer] The function to customize comparisons.
-     * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.
+     * @param {Function} customizer The function to customize comparisons.
+     * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details.
+     * @param {Object} stack Tracks traversed `object` and `other` objects.
      * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
      */
-    function equalByTag(object, other, tag, equalFunc, customizer, bitmask) {
+    function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
       switch (tag) {
         case arrayBufferTag:
           if ((object.byteLength != other.byteLength) ||
           var isPartial = bitmask & PARTIAL_COMPARE_FLAG;
           convert || (convert = setToArray);
 
+          if (object.size != other.size && !isPartial) {
+            return false;
+          }
+          // Assume cyclic values are equal.
+          var stacked = stack.get(object);
+          if (stacked) {
+            return stacked == other;
+          }
           // Recursively compare objects (susceptible to call stack limits).
-          return (isPartial || object.size == other.size) &&
-            equalFunc(convert(object), convert(other), customizer, bitmask | UNORDERED_COMPARE_FLAG);
+          return equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask | UNORDERED_COMPARE_FLAG, stack.set(object, other));
 
         case symbolTag:
-          return !!Symbol && (symbolValueOf.call(object) == symbolValueOf.call(other));
+          if (symbolValueOf) {
+            return symbolValueOf.call(object) == symbolValueOf.call(other);
+          }
       }
       return false;
     }
      * @param {Object} object The object to compare.
      * @param {Object} other The other object to compare.
      * @param {Function} equalFunc The function to determine equivalents of values.
-     * @param {Function} [customizer] The function to customize comparisons.
-     * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.
-     * @param {Object} [stack] Tracks traversed `object` and `other` objects.
+     * @param {Function} customizer The function to customize comparisons.
+     * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details.
+     * @param {Object} stack Tracks traversed `object` and `other` objects.
      * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
      */
     function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
      * @returns {*} Returns the function if it's native, else `undefined`.
      */
     function getNative(object, key) {
-      var value = object == null ? undefined : object[key];
+      var value = object[key];
       return isNative(value) ? value : undefined;
     }
 
      * @returns {Object} Returns the initialized clone.
      */
     function initCloneObject(object) {
-      return (isFunction(object.constructor) && !isPrototype(object))
+      return (typeof object.constructor == 'function' && !isPrototype(object))
         ? baseCreate(getPrototypeOf(object))
         : {};
     }
      */
     function isPrototype(value) {
       var Ctor = value && value.constructor,
-          proto = (isFunction(Ctor) && Ctor.prototype) || objectProto;
+          proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
 
       return value === proto;
     }
      */
     function mergeDefaults(objValue, srcValue, key, object, source, stack) {
       if (isObject(objValue) && isObject(srcValue)) {
-        stack.set(srcValue, objValue);
-        baseMerge(objValue, srcValue, undefined, mergeDefaults, stack);
+        baseMerge(objValue, srcValue, undefined, mergeDefaults, stack.set(srcValue, objValue));
       }
       return objValue;
     }
         return [];
       }
       var index = 0,
-          resIndex = -1,
+          resIndex = 0,
           result = Array(nativeCeil(length / size));
 
       while (index < length) {
-        result[++resIndex] = baseSlice(array, index, (index += size));
+        result[resIndex++] = baseSlice(array, index, (index += size));
       }
       return result;
     }
     function compact(array) {
       var index = -1,
           length = array ? array.length : 0,
-          resIndex = -1,
+          resIndex = 0,
           result = [];
 
       while (++index < length) {
         var value = array[index];
         if (value) {
-          result[++resIndex] = value;
+          result[resIndex++] = value;
         }
       }
       return result;
     /**
      * Creates an array of unique `array` values not included in the other
      * given arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
-     * for equality comparisons.
+     * for equality comparisons. The order of result values is determined by the
+     * order they occur in the first array.
      *
      * @static
      * @memberOf _
     /**
      * This method is like `_.difference` except that it accepts `iteratee` which
      * is invoked for each element of `array` and `values` to generate the criterion
-     * by which uniqueness is computed. The iteratee is invoked with one argument: (value).
+     * by which they're compared. Result values are chosen from the first array.
+     * The iteratee is invoked with one argument: (value).
      *
      * @static
      * @memberOf _
 
     /**
      * This method is like `_.difference` except that it accepts `comparator`
-     * which is invoked to compare elements of `array` to `values`. The comparator
-     * is invoked with two arguments: (arrVal, othVal).
+     * which is invoked to compare elements of `array` to `values`. Result values
+     * are chosen from the first array. The comparator is invoked with two arguments:
+     * (arrVal, othVal).
      *
      * @static
      * @memberOf _
     /**
      * Creates an array of unique values that are included in all given arrays
      * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
-     * for equality comparisons.
+     * for equality comparisons. The order of result values is determined by the
+     * order they occur in the first array.
      *
      * @static
      * @memberOf _
      * @category Array
      * @param {...Array} [arrays] The arrays to inspect.
-     * @returns {Array} Returns the new array of shared values.
+     * @returns {Array} Returns the new array of intersecting values.
      * @example
      *
      * _.intersection([2, 1], [4, 2], [1, 2]);
     /**
      * This method is like `_.intersection` except that it accepts `iteratee`
      * which is invoked for each element of each `arrays` to generate the criterion
-     * by which uniqueness is computed. The iteratee is invoked with one argument: (value).
+     * by which they're compared. Result values are chosen from the first array.
+     * The iteratee is invoked with one argument: (value).
      *
      * @static
      * @memberOf _
      * @category Array
      * @param {...Array} [arrays] The arrays to inspect.
      * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element.
-     * @returns {Array} Returns the new array of shared values.
+     * @returns {Array} Returns the new array of intersecting values.
      * @example
      *
      * _.intersectionBy([2.1, 1.2], [4.3, 2.4], Math.floor);
 
     /**
      * This method is like `_.intersection` except that it accepts `comparator`
-     * which is invoked to compare elements of `arrays`. The comparator is invoked
-     * with two arguments: (arrVal, othVal).
+     * which is invoked to compare elements of `arrays`. Result values are chosen
+     * from the first array. The comparator is invoked with two arguments:
+     * (arrVal, othVal).
      *
      * @static
      * @memberOf _
      * @category Array
      * @param {...Array} [arrays] The arrays to inspect.
      * @param {Function} [comparator] The comparator invoked per element.
-     * @returns {Array} Returns the new array of shared values.
+     * @returns {Array} Returns the new array of intersecting values.
      * @example
      *
      * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
     /**
      * This method is like `_.pullAll` except that it accepts `iteratee` which is
      * invoked for each element of `array` and `values` to generate the criterion
-     * by which uniqueness is computed. The iteratee is invoked with one argument: (value).
+     * by which they're compared. The iteratee is invoked with one argument: (value).
      *
      * **Note:** Unlike `_.differenceBy`, this method mutates `array`.
      *
      */
     function pullAllBy(array, values, iteratee) {
       return (array && array.length && values && values.length)
-        ? basePullAllBy(array, values, getIteratee(iteratee))
+        ? basePullAll(array, values, getIteratee(iteratee))
+        : array;
+    }
+
+    /**
+     * This method is like `_.pullAll` except that it accepts `comparator` which
+     * is invoked to compare elements of `array` to `values`. The comparator is
+     * invoked with two arguments: (arrVal, othVal).
+     *
+     * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
+     *
+     * @static
+     * @memberOf _
+     * @category Array
+     * @param {Array} array The array to modify.
+     * @param {Array} values The values to remove.
+     * @param {Function} [comparator] The comparator invoked per element.
+     * @returns {Array} Returns `array`.
+     * @example
+     *
+     * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
+     *
+     * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
+     * console.log(array);
+     * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
+     */
+    function pullAllWith(array, values, comparator) {
+      return (array && array.length && values && values.length)
+        ? basePullAll(array, values, undefined, comparator)
         : array;
     }
 
 
     /**
      * Creates an array of unique values that is the [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
-     * of the given arrays.
+     * of the given arrays. The order of result values is determined by the order
+     * they occur in the arrays.
      *
      * @static
      * @memberOf _
     /**
      * This method is like `_.xor` except that it accepts `iteratee` which is
      * invoked for each element of each `arrays` to generate the criterion by which
-     * uniqueness is computed. The iteratee is invoked with one argument: (value).
+     * by which they're compared. The iteratee is invoked with one argument: (value).
      *
      * @static
      * @memberOf _
      * // => true
      */
     function clone(value) {
-      return baseClone(value);
+      return baseClone(value, false, true);
     }
 
     /**
      * // => 0
      */
     function cloneWith(value, customizer) {
-      return baseClone(value, false, customizer);
+      return baseClone(value, false, true, customizer);
     }
 
     /**
      * // => false
      */
     function cloneDeep(value) {
-      return baseClone(value, true);
+      return baseClone(value, true, true);
     }
 
     /**
      * // => 20
      */
     function cloneDeepWith(value, customizer) {
-      return baseClone(value, true, customizer);
+      return baseClone(value, true, true, customizer);
     }
 
     /**
      * // => false
      */
     function isArrayLike(value) {
-      return value != null &&
-        !(typeof value == 'function' && isFunction(value)) && isLength(getLength(value));
+      return value != null && isLength(getLength(value)) && !isFunction(value);
     }
 
     /**
     }
 
     /**
-     * Checks if `value` is empty. A value is considered empty unless it's an
-     * `arguments` object, array, string, or jQuery-like collection with a length
-     * greater than `0` or an object with own enumerable properties.
+     * Checks if `value` is an empty collection or object. A value is considered
+     * empty if it's an `arguments` object, array, string, or jQuery-like collection
+     * with a length of `0` or has no own enumerable properties.
      *
      * @static
      * @memberOf _
      * @category Lang
-     * @param {Array|Object|string} value The value to inspect.
+     * @param {*} value The value to check.
      * @returns {boolean} Returns `true` if `value` is empty, else `false`.
      * @example
      *
      */
     function isFunction(value) {
       // The use of `Object#toString` avoids issues with the `typeof` operator
-      // in Safari 8 which returns 'object' for typed array constructors, and
-      // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+      // in Safari 8 which returns 'object' for typed array and weak map constructors,
+      // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
       var tag = isObject(value) ? objectToString.call(value) : '';
       return tag == funcTag || tag == genTag;
     }
         return '';
       }
       if (isSymbol(value)) {
-        return Symbol ? symbolToString.call(value) : '';
+        return symbolToString ? symbolToString.call(value) : '';
       }
       var result = (value + '');
       return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
      * // => { 'a': 1, 'c': 3, 'e': 5 }
      */
     var assign = createAssigner(function(object, source) {
-      copyObject(source, keys(source), object);
+      if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {
+        copyObject(source, keys(source), object);
+        return;
+      }
+      for (var key in source) {
+        if (hasOwnProperty.call(source, key)) {
+          assignValue(object, key, source[key]);
+        }
+      }
     });
 
     /**
      * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5 }
      */
     var assignIn = createAssigner(function(object, source) {
-      copyObject(source, keysIn(source), object);
+      if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {
+        copyObject(source, keysIn(source), object);
+        return;
+      }
+      for (var key in source) {
+        assignValue(object, key, source[key]);
+      }
     });
 
     /**
     }
 
     /**
-     * Recursively merges own and inherited enumerable properties of source objects
-     * into the destination object. Source properties that resolve to `undefined`
-     * are skipped if a destination value exists. Array and plain object properties
-     * are merged recursively. Other objects and value types are overridden by
-     * assignment. Source objects are applied from left to right. Subsequent
-     * sources overwrite property assignments of previous sources.
+     * This method is like `_.assign` except that it recursively merges own and
+     * inherited enumerable properties of source objects into the destination
+     * object. Source properties that resolve to `undefined` are skipped if a
+     * destination value exists. Array and plain object properties are merged
+     * recursively.Other objects and value types are overridden by assignment.
+     * Source objects are applied from left to right. Subsequent sources
+     * overwrite property assignments of previous sources.
      *
      * **Note:** This method mutates `object`.
      *
      * @returns {Object} Returns `object`.
      * @example
      *
-     * _.setWith({ '0': { 'length': 2 } }, '[0][1][2]', 3, Object);
-     * // => { '0': { '1': { '2': 3 }, 'length': 2 } }
+     * var object = {};
+     *
+     * _.setWith(object, '[0][1]', 'a', Object);
+     * // => { '0': { '1': 'a' } }
      */
     function setWith(object, path, value, customizer) {
       customizer = typeof customizer == 'function' ? customizer : undefined;
     }
 
     /**
+     * This method is like `_.set` except that accepts `updater` to produce the
+     * value to set. Use `_.updateWith` to customize `path` creation. The `updater`
+     * is invoked with one argument: (value).
+     *
+     * **Note:** This method mutates `object`.
+     *
+     * @static
+     * @memberOf _
+     * @category Object
+     * @param {Object} object The object to modify.
+     * @param {Array|string} path The path of the property to set.
+     * @param {Function} updater The function to produce the updated value.
+     * @returns {Object} Returns `object`.
+     * @example
+     *
+     * var object = { 'a': [{ 'b': { 'c': 3 } }] };
+     *
+     * _.update(object, 'a[0].b.c', function(n) { return n * n; });
+     * console.log(object.a[0].b.c);
+     * // => 9
+     *
+     * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });
+     * console.log(object.x[0].y.z);
+     * // => 0
+     */
+    function update(object, path, updater) {
+      return object == null ? object : baseUpdate(object, path, baseCastFunction(updater));
+    }
+
+    /**
+     * This method is like `_.update` except that it accepts `customizer` which is
+     * invoked to produce the objects of `path`.  If `customizer` returns `undefined`
+     * path creation is handled by the method instead. The `customizer` is invoked
+     * with three arguments: (nsValue, key, nsObject).
+     *
+     * **Note:** This method mutates `object`.
+     *
+     * @static
+     * @memberOf _
+     * @category Object
+     * @param {Object} object The object to modify.
+     * @param {Array|string} path The path of the property to set.
+     * @param {Function} updater The function to produce the updated value.
+     * @param {Function} [customizer] The function to customize assigned values.
+     * @returns {Object} Returns `object`.
+     * @example
+     *
+     * var object = {};
+     *
+     * _.updateWith(object, '[0][1]', _.constant('a'), Object);
+     * // => { '0': { '1': 'a' } }
+     */
+    function updateWith(object, path, updater, customizer) {
+      customizer = typeof customizer == 'function' ? customizer : undefined;
+      return object == null ? object : baseUpdate(object, path, baseCastFunction(updater), customizer);
+    }
+
+    /**
      * Creates an array of the own enumerable property values of `object`.
      *
      * **Note:** Non-object values are coerced to objects.
     }
 
     /**
-     * Converts `string`, as a whole, to lower case.
+     * Converts `string`, as a whole, to lower case just like
+     * [String#toLowerCase](https://mdn.io/toLowerCase).
      *
      * @static
      * @memberOf _
     }
 
     /**
-     * Converts `string`, as a whole, to upper case.
+     * Converts `string`, as a whole, to upper case just like
+     * [String#toUpperCase](https://mdn.io/toUpperCase).
      *
      * @static
      * @memberOf _
 
     // Ensure wrappers are instances of `baseLodash`.
     lodash.prototype = baseLodash.prototype;
+    lodash.prototype.constructor = lodash;
 
     LodashWrapper.prototype = baseCreate(baseLodash.prototype);
     LodashWrapper.prototype.constructor = LodashWrapper;
     lodash.pull = pull;
     lodash.pullAll = pullAll;
     lodash.pullAllBy = pullAllBy;
+    lodash.pullAllWith = pullAllWith;
     lodash.pullAt = pullAt;
     lodash.range = range;
     lodash.rangeRight = rangeRight;
     lodash.unset = unset;
     lodash.unzip = unzip;
     lodash.unzipWith = unzipWith;
+    lodash.update = update;
+    lodash.updateWith = updateWith;
     lodash.values = values;
     lodash.valuesIn = valuesIn;
     lodash.without = without;
index d900b24..12c24c4 100644 (file)
 /**
  * @license
- * lodash 4.5.1 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
+ * lodash 4.6.1 (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
  * Build: `lodash -o ./dist/lodash.js`
  */
 ;(function(){function n(n,t){return n.set(t[0],t[1]),n}function t(n,t){return n.add(t),n}function r(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function e(n,t,r,e){for(var u=-1,o=n.length;++u<o;){var i=n[u];t(e,i,r(i),n)}return e}function u(n,t){for(var r=-1,e=n.length;++r<e&&false!==t(n[r],r,n););return n}function o(n,t){for(var r=-1,e=n.length;++r<e;)if(!t(n[r],r,n))return false;
-return true}function i(n,t){for(var r=-1,e=n.length,u=-1,o=[];++r<e;){var i=n[r];t(i,r,n)&&(o[++u]=i)}return o}function f(n,t){return!!n.length&&-1<d(n,t,0)}function c(n,t,r){for(var e=-1,u=n.length;++e<u;)if(r(t,n[e]))return true;return false}function a(n,t){for(var r=-1,e=n.length,u=Array(e);++r<e;)u[r]=t(n[r],r,n);return u}function l(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];return n}function s(n,t,r,e){var u=-1,o=n.length;for(e&&o&&(r=n[++u]);++u<o;)r=t(r,n[u],u,n);return r}function h(n,t,r,e){
-var u=n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function p(n,t){for(var r=-1,e=n.length;++r<e;)if(t(n[r],r,n))return true;return false}function _(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(f===Z?i===i:r(i,f)))var f=i,c=o}return c}function g(n,t,r,e){var u;return r(n,function(n,r,o){return t(n,r,o)?(u=e?r:n,false):void 0}),u}function v(n,t,r){for(var e=n.length,u=r?e:-1;r?u--:++u<e;)if(t(n[u],u,n))return u;return-1}function d(n,t,r){if(t!==t)return B(n,r);--r;for(var e=n.length;++r<e;)if(n[r]===t)return r;
-return-1}function y(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function b(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c;return n}function x(n,t){for(var r,e=-1,u=n.length;++e<u;){var o=t(n[e]);o!==Z&&(r=r===Z?o:r+o)}return r}function m(n,t){for(var r=-1,e=Array(n);++r<n;)e[r]=t(r);return e}function j(n,t){return a(t,function(t){return[t,n[t]]})}function w(n){return function(t){return n(t)}}function A(n,t){return a(t,function(t){return n[t]})}function O(n,t){for(var r=-1,e=n.length;++r<e&&-1<d(t,n[r],0););
-return r}function k(n,t){for(var r=n.length;r--&&-1<d(t,n[r],0););return r}function E(n){return n&&n.Object===Object?n:null}function I(n,t){if(n!==t){var r=null===n,e=n===Z,u=n===n,o=null===t,i=t===Z,f=t===t;if(n>t&&!o||!u||r&&!i&&f||e&&f)return 1;if(t>n&&!r||!f||o&&!e&&u||i&&u)return-1}return 0}function S(n){return Un[n]}function R(n){return zn[n]}function W(n){return"\\"+$n[n]}function B(n,t,r){var e=n.length;for(t+=r?0:-1;r?t--:++t<e;){var u=n[t];if(u!==u)return t}return-1}function C(n){var t=false;
-if(null!=n&&typeof n.toString!="function")try{t=!!(n+"")}catch(r){}return t}function U(n,t){return n=typeof n=="number"||yn.test(n)?+n:-1,n>-1&&0==n%1&&(null==t?9007199254740991:t)>n}function z(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}function M(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function L(n,t){for(var r=-1,e=n.length,u=-1,o=[];++r<e;){var i=n[r];(i===t||"__lodash_placeholder__"===i)&&(n[r]="__lodash_placeholder__",o[++u]=r)}return o;
-}function $(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=n}),r}function F(n){if(!n||!En.test(n))return n.length;for(var t=kn.lastIndex=0;kn.test(n);)t++;return t}function N(n){return Mn[n]}function D(E){function yn(n){if(we(n)&&!Zo(n)&&!(n instanceof An)){if(n instanceof wn)return n;if(lu.call(n,"__wrapped__"))return Pr(n)}return new wn(n)}function jn(){}function wn(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=Z}function An(n){
-this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Un(){}function zn(n){var t=-1,r=n?n.length:0;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Mn(n){var t=-1,r=n?n.length:0;for(this.__data__=new zn;++t<r;)this.push(n[t])}function Ln(n,t){var r=n.__data__;return $r(t)?(r=r.__data__,"__lodash_hash_undefined__"===(typeof t=="string"?r.string:r.hash)[t]):r.has(t)}function $n(n){var t=-1,r=n?n.length:0;
-for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Dn(n,t){var r=Pn(n,t);return 0>r?false:(r==n.length-1?n.pop():Iu.call(n,r,1),true)}function Zn(n,t){var r=Pn(n,t);return 0>r?Z:n[r][1]}function Pn(n,t){for(var r=n.length;r--;)if(pe(n[r][0],t))return r;return-1}function Tn(n,t,r){var e=Pn(n,t);0>e?n.push([t,r]):n[e][1]=r}function Kn(n,t,r,e){return n===Z||pe(n,cu[r])&&!lu.call(e,r)?t:n}function Gn(n,t,r){(r!==Z&&!pe(n[t],r)||typeof t=="number"&&r===Z&&!(t in n))&&(n[t]=r)}function Yn(n,t,r){
-var e=n[t];lu.call(n,t)&&pe(e,r)&&(r!==Z||t in n)||(n[t]=r)}function Hn(n,t,r,e){return Hu(n,function(n,u,o){t(e,n,r(n),o)}),e}function Qn(n,t){return n&&nr(t,De(t),n)}function Xn(n,t){for(var r=-1,e=null==n,u=t.length,o=Array(u);++r<u;)o[r]=e?Z:$e(n,t[r]);return o}function nt(n){return de(n)?n:[]}function tt(n){return typeof n=="function"?n:Ye}function rt(n){return Zo(n)?n:qr(n)}function et(n,t,r){return n===n&&(r!==Z&&(n=n>r?r:n),t!==Z&&(n=t>n?t:n)),n}function ut(n,t,r,e,o,i){var f;if(r&&(f=o?r(n,e,o,i):r(n)),
-f!==Z)return f;if(!je(n))return n;if(e=Zo(n)){if(f=Br(n),!t)return Xt(n,f)}else{var c=Rr(n),a="[object Function]"==c||"[object GeneratorFunction]"==c;if(qo(n))return Jt(n,t);if("[object Object]"==c||"[object Arguments]"==c||a&&!o){if(C(n))return o?n:{};if(f=Cr(a?{}:n),!t)return rr(n,Qn(f,n))}else{if(!Cn[c])return o?n:{};f=Ur(n,c,t)}}return i||(i=new $n),(o=i.get(n))?o:(i.set(n,f),(e?u:pt)(n,function(e,u){Yn(f,u,ut(e,t,r,u,n,i))}),e?f:rr(n,f))}function ot(n){var t=De(n),r=t.length;return function(e){
-if(null==e)return!r;for(var u=r;u--;){var o=t[u],i=n[o],f=e[o];if(f===Z&&!(o in Object(e))||!i(f))return false}return true}}function it(n){return je(n)?Ou(n):{}}function ft(n,t,r){if(typeof n!="function")throw new iu("Expected a function");return Eu(function(){n.apply(Z,r)},t)}function ct(n,t,r,e){var u=-1,o=f,i=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=a(t,w(r))),e?(o=c,i=false):t.length>=200&&(o=Ln,i=false,t=new Mn(t));n:for(;++u<l;){var p=n[u],_=r?r(p):p;if(i&&_===_){for(var g=h;g--;)if(t[g]===_)continue n;
-s.push(p)}else o(t,_,e)||s.push(p)}return s}function at(n,t){var r=true;return Hu(n,function(n,e,u){return r=!!t(n,e,u)}),r}function lt(n,t){var r=[];return Hu(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function st(n,t,r,e){e||(e=[]);for(var u=-1,o=n.length;++u<o;){var i=n[u];t>0&&de(i)&&(r||Zo(i)||ge(i))?t>1?st(i,t-1,r,e):l(e,i):r||(e[e.length]=i)}return e}function ht(n,t){return null==n?n:Xu(n,t,Ze)}function pt(n,t){return n&&Xu(n,t,De)}function _t(n,t){return n&&no(n,t,De)}function gt(n,t){return i(t,function(t){
-return be(n[t])})}function vt(n,t){t=Lr(t,n)?[t+""]:rt(t);for(var r=0,e=t.length;null!=n&&e>r;)n=n[t[r++]];return r&&r==e?n:Z}function dt(n,t){return lu.call(n,t)||typeof n=="object"&&t in n&&null===ju(n)}function yt(n,t){return t in Object(n)}function bt(n,t,r){for(var e=r?c:f,u=n.length,o=u,i=Array(u),l=[];o--;){var s=n[o];o&&t&&(s=a(s,w(t))),i[o]=r||!t&&120>s.length?Z:new Mn(o&&s)}var s=n[0],h=-1,p=s.length,_=i[0];n:for(;++h<p;){var g=s[h],v=t?t(g):g;if(_?!Ln(_,v):!e(l,v,r)){for(o=u;--o;){var d=i[o];
-if(d?!Ln(d,v):!e(n[o],v,r))continue n}_&&_.push(v),l.push(g)}}return l}function xt(n,t,r,e){return pt(n,function(n,u,o){t(e,r(n),u,o)}),e}function mt(n,t,e){return Lr(t,n)||(t=rt(t),n=Zr(n,t),t=Vr(t)),t=null==n?n:n[t],null==t?Z:r(t,n,e)}function jt(n,t,r,e,u){if(n===t)return true;if(null==n||null==t||!je(n)&&!we(t))return n!==n&&t!==t;n:{var o=Zo(n),i=Zo(t),f="[object Array]",c="[object Array]";o||(f=Rr(n),"[object Arguments]"==f?f="[object Object]":"[object Object]"!=f&&(o=Re(n))),i||(c=Rr(t),"[object Arguments]"==c?c="[object Object]":"[object Object]"!=c&&Re(t));
-var a="[object Object]"==f&&!C(n),i="[object Object]"==c&&!C(t),c=f==c;if(!c||o||a){if(!(2&e)&&(f=a&&lu.call(n,"__wrapped__"),i=i&&lu.call(t,"__wrapped__"),f||i)){n=jt(f?n.value():n,i?t.value():t,r,e,u);break n}c?(u||(u=new $n),n=(o?jr:Ar)(n,t,jt,r,e,u)):n=false}else n=wr(n,t,f,jt,r,e)}return n}function wt(n,t,r,e){var u=r.length,o=u,i=!e;if(null==n)return!o;for(n=Object(n);u--;){var f=r[u];if(i&&f[2]?f[1]!==n[f[0]]:!(f[0]in n))return false}for(;++u<o;){var f=r[u],c=f[0],a=n[c],l=f[1];if(i&&f[2]){if(a===Z&&!(c in n))return false;
-}else if(f=new $n,c=e?e(a,l,c,n,t,f):Z,c===Z?!jt(l,a,e,3,f):!c)return false}return true}function At(n){var t=typeof n;return"function"==t?n:null==n?Ye:"object"==t?Zo(n)?It(n[0],n[1]):Et(n):nu(n)}function Ot(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function kt(n,t){var r=-1,e=ve(n)?Array(n.length):[];return Hu(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function Et(n){var t=Er(n);if(1==t.length&&t[0][2]){var r=t[0][0],e=t[0][1];return function(n){return null==n?false:n[r]===e&&(e!==Z||r in Object(n));
-}}return function(r){return r===n||wt(r,n,t)}}function It(n,t){return function(r){var e=$e(r,n);return e===Z&&e===t?Ne(r,n):jt(t,e,Z,3)}}function St(n,t,r,e,o){if(n!==t){var i=Zo(t)||Re(t)?Z:Ze(t);u(i||t,function(u,f){if(i&&(f=u,u=t[f]),je(u)){o||(o=new $n);var c=f,a=o,l=n[c],s=t[c],h=a.get(s);if(!h){var h=e?e(l,s,c+"",n,t,a):Z,p=h===Z;p&&(h=s,Zo(s)||Re(s)?Zo(l)?h=l:de(l)?h=Xt(l):(p=false,h=ut(s,true)):ke(s)||ge(s)?ge(l)?h=Me(l):!je(l)||r&&be(l)?(p=false,h=ut(s,true)):h=l:p=false),a.set(s,h),p&&St(h,s,r,e,a)}
-Gn(n,c,h)}else c=e?e(n[f],u,f+"",n,t,o):Z,c===Z&&(c=u),Gn(n,f,c)})}}function Rt(n,t,r){var e=-1,u=kr();return t=a(t.length?t:Array(1),function(n){return u(n)}),n=kt(n,function(n,r,u){return{a:a(t,function(t){return t(n)}),b:++e,c:n}}),b(n,function(n,t){var e;n:{e=-1;for(var u=n.a,o=t.a,i=u.length,f=r.length;++e<i;){var c=I(u[e],o[e]);if(c){if(e>=f){e=c;break n}e=c*("desc"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function Wt(n,t){return n=Object(n),s(t,function(t,r){return r in n&&(t[r]=n[r]),t},{});
-}function Bt(n,t){var r={};return ht(n,function(n,e){t(n,e)&&(r[e]=n)}),r}function Ct(n){return function(t){return null==t?Z:t[n]}}function Ut(n){return function(t){return vt(t,n)}}function zt(n,t,r){var e=-1,u=t.length,o=n;for(r&&(o=a(n,function(n){return r(n)}));++e<u;)for(var i=0,f=t[e],f=r?r(f):f;-1<(i=d(o,f,i));)o!==n&&Iu.call(o,i,1),Iu.call(n,i,1);return n}function Mt(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];if(e==r||u!=o){var o=u;if(U(u))Iu.call(n,u,1);else if(Lr(u,n))delete n[u];else{
-var u=rt(u),i=Zr(n,u);null!=i&&delete i[Vr(u)]}}}return n}function Lt(n,t){return n+Ru(Lu()*(t-n+1))}function $t(n,t,r,e){t=Lr(t,n)?[t+""]:rt(t);for(var u=-1,o=t.length,i=o-1,f=n;null!=f&&++u<o;){var c=t[u];if(je(f)){var a=r;if(u!=i){var l=f[c],a=e?e(l,c,f):Z;a===Z&&(a=null==l?U(t[u+1])?[]:{}:l)}Yn(f,c,a)}f=f[c]}return n}function Ft(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function Nt(n,t){var r;return Hu(n,function(n,e,u){
-return r=t(n,e,u),!r}),!!r}function Dt(n,t,r){var e=0,u=n?n.length:e;if(typeof t=="number"&&t===t&&2147483647>=u){for(;u>e;){var o=e+u>>>1,i=n[o];(r?t>=i:t>i)&&null!==i?e=o+1:u=o}return u}return Zt(n,t,Ye,r)}function Zt(n,t,r,e){t=r(t);for(var u=0,o=n?n.length:0,i=t!==t,f=null===t,c=t===Z;o>u;){var a=Ru((u+o)/2),l=r(n[a]),s=l!==Z,h=l===l;(i?h||e:f?h&&s&&(e||null!=l):c?h&&(e||s):null==l?0:e?t>=l:t>l)?u=a+1:o=a}return zu(o,4294967294)}function qt(n,t){for(var r=0,e=n.length,u=n[0],o=t?t(u):u,i=o,f=0,c=[u];++r<e;)u=n[r],
-o=t?t(u):u,pe(o,i)||(i=o,c[++f]=u);return c}function Pt(n,t,r){var e=-1,u=f,o=n.length,i=true,a=[],l=a;if(r)i=false,u=c;else if(o<200)l=t?[]:a;else{if(u=t?null:ro(n))return $(u);i=false,u=Ln,l=new Mn}n:for(;++e<o;){var s=n[e],h=t?t(s):s;if(i&&h===h){for(var p=l.length;p--;)if(l[p]===h)continue n;t&&l.push(h),a.push(s)}else u(l,h,r)||(l!==a&&l.push(h),a.push(s))}return a}function Tt(n,t,r,e){for(var u=n.length,o=e?u:-1;(e?o--:++o<u)&&t(n[o],o,n););return r?Ft(n,e?0:o,e?o+1:u):Ft(n,e?o+1:0,e?u:o)}function Kt(n,t){
-var r=n;return r instanceof An&&(r=r.value()),s(t,function(n,t){return t.func.apply(t.thisArg,l([n],t.args))},r)}function Gt(n,t,r){for(var e=-1,u=n.length;++e<u;)var o=o?l(ct(o,n[e],t,r),ct(n[e],o,t,r)):n[e];return o&&o.length?Pt(o,t,r):[]}function Vt(n,t,r){for(var e=-1,u=n.length,o=t.length,i={};++e<u;)r(i,n[e],o>e?t[e]:Z);return i}function Jt(n,t){if(t)return n.slice();var r=new n.constructor(n.length);return n.copy(r),r}function Yt(n){var t=new n.constructor(n.byteLength);return new bu(t).set(new bu(n)),
-t}function Ht(n,t,r,e){var u=-1,o=n.length,i=r.length,f=-1,c=t.length,a=Uu(o-i,0),l=Array(c+a);for(e=!e;++f<c;)l[f]=t[f];for(;++u<i;)(e||o>u)&&(l[r[u]]=n[u]);for(;a--;)l[f++]=n[u++];return l}function Qt(n,t,r,e){var u=-1,o=n.length,i=-1,f=r.length,c=-1,a=t.length,l=Uu(o-f,0),s=Array(l+a);for(e=!e;++u<l;)s[u]=n[u];for(l=u;++c<a;)s[l+c]=t[c];for(;++i<f;)(e||o>u)&&(s[l+r[i]]=n[u++]);return s}function Xt(n,t){var r=-1,e=n.length;for(t||(t=Array(e));++r<e;)t[r]=n[r];return t}function nr(n,t,r){return tr(n,t,r);
-}function tr(n,t,r,e){r||(r={});for(var u=-1,o=t.length;++u<o;){var i=t[u],f=e?e(r[i],n[i],i,r,n):n[i];Yn(r,i,f)}return r}function rr(n,t){return nr(n,oo(n),t)}function er(n,t){return function(r,u){var o=Zo(r)?e:Hn,i=t?t():{};return o(r,n,kr(u),i)}}function ur(n){return he(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:Z,i=u>2?r[2]:Z,o=typeof o=="function"?(u--,o):Z;for(i&&Mr(r[0],r[1],i)&&(o=3>u?Z:o,u=1),t=Object(t);++e<u;)(i=r[e])&&n(t,i,e,o);return t})}function or(n,t){return function(r,e){if(null==r)return r;
-if(!ve(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}function ir(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var f=e[n?i:++u];if(false===r(o[f],f,o))break}return t}}function fr(n,t,r){function e(){return(this&&this!==Vn&&this instanceof e?o:n).apply(u?r:this,arguments)}var u=1&t,o=lr(n);return e}function cr(n){return function(t){t=Le(t);var r=En.test(t)?t.match(kn):Z,e=r?r[0]:t.charAt(0);return t=r?r.slice(1).join(""):t.slice(1),
-e[n]()+t}}function ar(n){return function(t){return s(Ve(Ke(t)),n,"")}}function lr(n){return function(){var t=arguments;switch(t.length){case 0:return new n;case 1:return new n(t[0]);case 2:return new n(t[0],t[1]);case 3:return new n(t[0],t[1],t[2]);case 4:return new n(t[0],t[1],t[2],t[3]);case 5:return new n(t[0],t[1],t[2],t[3],t[4]);case 6:return new n(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new n(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=it(n.prototype),t=n.apply(r,t);return je(t)?t:r}}function sr(n,t,e){
-function u(){for(var i=arguments.length,f=Array(i),c=i,a=Sr(u);c--;)f[c]=arguments[c];return c=3>i&&f[0]!==a&&f[i-1]!==a?[]:L(f,a),i-=c.length,e>i?br(n,t,pr,u.placeholder,Z,f,c,Z,Z,e-i):r(this&&this!==Vn&&this instanceof u?o:n,this,f)}var o=lr(n);return u}function hr(n){return he(function(t){t=st(t,1);var r=t.length,e=r,u=wn.prototype.thru;for(n&&t.reverse();e--;){var o=t[e];if(typeof o!="function")throw new iu("Expected a function");if(u&&!i&&"wrapper"==Or(o))var i=new wn([],true)}for(e=i?e:r;++e<r;)var o=t[e],u=Or(o),f="wrapper"==u?eo(o):Z,i=f&&Fr(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?i[Or(f[0])].apply(i,f[3]):1==o.length&&Fr(o)?i[u]():i.thru(o);
-return function(){var n=arguments,e=n[0];if(i&&1==n.length&&Zo(e)&&e.length>=200)return i.plant(e).value();for(var u=0,n=r?t[u].apply(this,n):e;++u<r;)n=t[u].call(this,n);return n}})}function pr(n,t,r,e,u,o,i,f,c,a){function l(){for(var d=arguments.length,y=d,b=Array(d);y--;)b[y]=arguments[y];if(_){var x,m=Sr(l),y=b.length;for(x=0;y--;)b[y]===m&&x++}if(e&&(b=Ht(b,e,u,_)),o&&(b=Qt(b,o,i,_)),d-=x,_&&a>d)return m=L(b,m),br(n,t,pr,l.placeholder,r,b,m,f,c,a-d);if(m=h?r:this,y=p?m[n]:n,d=b.length,f){x=b.length;
-for(var j=zu(f.length,x),w=Xt(b);j--;){var A=f[j];b[j]=U(A,x)?w[A]:Z}}else g&&d>1&&b.reverse();return s&&d>c&&(b.length=c),this&&this!==Vn&&this instanceof l&&(y=v||lr(y)),y.apply(m,b)}var s=128&t,h=1&t,p=2&t,_=24&t,g=512&t,v=p?Z:lr(n);return l}function _r(n,t){return function(r,e){return xt(r,n,t(e),{})}}function gr(n){return he(function(t){return t=a(st(t,1),kr()),he(function(e){var u=this;return n(t,function(n){return r(n,u,e)})})})}function vr(n,t,r){return t=Ce(t),n=F(n),t&&t>n?(t-=n,r=r===Z?" ":r+"",
-n=Ge(r,Su(t/F(r))),En.test(r)?n.match(kn).slice(0,t).join(""):n.slice(0,t)):""}function dr(n,t,e,u){function o(){for(var t=-1,c=arguments.length,a=-1,l=u.length,s=Array(l+c),h=this&&this!==Vn&&this instanceof o?f:n;++a<l;)s[a]=u[a];for(;c--;)s[a++]=arguments[++t];return r(h,i?e:this,s)}var i=1&t,f=lr(n);return o}function yr(n){return function(t,r,e){e&&typeof e!="number"&&Mr(t,r,e)&&(r=e=Z),t=ze(t),t=t===t?t:0,r===Z?(r=t,t=0):r=ze(r)||0,e=e===Z?r>t?1:-1:ze(e)||0;var u=-1;r=Uu(Su((r-t)/(e||1)),0);for(var o=Array(r);r--;)o[n?r:++u]=t,
-t+=e;return o}}function br(n,t,r,e,u,o,i,f,c,a){var l=8&t;f=f?Xt(f):Z;var s=l?i:Z;i=l?Z:i;var h=l?o:Z;return o=l?Z:o,t=(t|(l?32:64))&~(l?64:32),4&t||(t&=-4),t=[n,t,u,h,s,o,i,f,c,a],r=r.apply(Z,t),Fr(n)&&io(r,t),r.placeholder=e,r}function xr(n){var t=uu[n];return function(n,r){if(n=ze(n),r=Ce(r)){var e=(Le(n)+"e").split("e"),e=t(e[0]+"e"+(+e[1]+r)),e=(Le(e)+"e").split("e");return+(e[0]+"e"+(+e[1]-r))}return t(n)}}function mr(n,t,r,e,u,o,i,f){var c=2&t;if(!c&&typeof n!="function")throw new iu("Expected a function");
-var a=e?e.length:0;if(a||(t&=-97,e=u=Z),i=i===Z?i:Uu(Ce(i),0),f=f===Z?f:Ce(f),a-=u?u.length:0,64&t){var l=e,s=u;e=u=Z}var h=c?Z:eo(n);return o=[n,t,r,e,u,l,s,o,i,f],h&&(r=o[1],n=h[1],t=r|n,e=128==n&&8==r||128==n&&256==r&&h[8]>=o[7].length||384==n&&h[8]>=h[7].length&&8==r,131>t||e)&&(1&n&&(o[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=o[3],o[3]=e?Ht(e,r,h[4]):Xt(r),o[4]=e?L(o[3],"__lodash_placeholder__"):Xt(h[4])),(r=h[5])&&(e=o[5],o[5]=e?Qt(e,r,h[6]):Xt(r),o[6]=e?L(o[5],"__lodash_placeholder__"):Xt(h[6])),(r=h[7])&&(o[7]=Xt(r)),
-128&n&&(o[8]=null==o[8]?h[8]:zu(o[8],h[8])),null==o[9]&&(o[9]=h[9]),o[0]=h[0],o[1]=t),n=o[0],t=o[1],r=o[2],e=o[3],u=o[4],f=o[9]=null==o[9]?c?0:n.length:Uu(o[9]-a,0),!f&&24&t&&(t&=-25),c=t&&1!=t?8==t||16==t?sr(n,t,f):32!=t&&33!=t||u.length?pr.apply(Z,o):dr(n,t,r,e):fr(n,t,r),(h?to:io)(c,o)}function jr(n,t,r,e,u,o){var i=-1,f=2&u,c=1&u,a=n.length,l=t.length;if(!(a==l||f&&l>a))return false;if(l=o.get(n))return l==t;for(l=true,o.set(n,t);++i<a;){var s=n[i],h=t[i];if(e)var _=f?e(h,s,i,t,n,o):e(s,h,i,n,t,o);if(_!==Z){
-if(_)continue;l=false;break}if(c){if(!p(t,function(n){return s===n||r(s,n,e,u,o)})){l=false;break}}else if(s!==h&&!r(s,h,e,u,o)){l=false;break}}return o["delete"](n),l}function wr(n,t,r,e,u,o){switch(r){case"[object ArrayBuffer]":if(n.byteLength!=t.byteLength||!e(new bu(n),new bu(t)))break;return true;case"[object Boolean]":case"[object Date]":return+n==+t;case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object Number]":return n!=+n?t!=+t:n==+t;case"[object RegExp]":case"[object String]":
-return n==t+"";case"[object Map]":var i=M;case"[object Set]":return i||(i=$),(2&o||n.size==t.size)&&e(i(n),i(t),u,1|o);case"[object Symbol]":return!!yu&&Vu.call(n)==Vu.call(t)}return false}function Ar(n,t,r,e,u,o){var i=2&u,f=De(n),c=f.length,a=De(t).length;if(c!=a&&!i)return false;for(var l=c;l--;){var s=f[l];if(!(i?s in t:dt(t,s)))return false}if(a=o.get(n))return a==t;a=true,o.set(n,t);for(var h=i;++l<c;){var s=f[l],p=n[s],_=t[s];if(e)var g=i?e(_,p,s,t,n,o):e(p,_,s,n,t,o);if(g===Z?p!==_&&!r(p,_,e,u,o):!g){a=false;
-break}h||(h="constructor"==s)}return a&&!h&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(a=false)),o["delete"](n),a}function Or(n){for(var t=n.name+"",r=Yu[t],e=lu.call(Yu,t)?r.length:0;e--;){var u=r[e],o=u.func;if(null==o||o==n)return u.name}return t}function kr(){var n=yn.iteratee||He,n=n===He?At:n;return arguments.length?n(arguments[0],arguments[1]):n}function Er(n){n=qe(n);for(var t=n.length;t--;){
-var r,e=n[t];r=n[t][1],r=r===r&&!je(r),e[2]=r}return n}function Ir(n,t){var r=null==n?Z:n[t];return Ae(r)?r:Z}function Sr(n){return(lu.call(yn,"placeholder")?yn:n).placeholder}function Rr(n){return pu.call(n)}function Wr(n,t,r){if(null==n)return false;var e=r(n,t);return e||Lr(t)||(t=rt(t),n=Zr(n,t),null!=n&&(t=Vr(t),e=r(n,t))),r=n?n.length:Z,e||!!r&&me(r)&&U(t,r)&&(Zo(n)||Ie(n)||ge(n))}function Br(n){var t=n.length,r=n.constructor(t);return t&&"string"==typeof n[0]&&lu.call(n,"index")&&(r.index=n.index,
-r.input=n.input),r}function Cr(n){return be(n.constructor)&&!Nr(n)?it(ju(n)):{}}function Ur(r,e,u){var o=r.constructor;switch(e){case"[object ArrayBuffer]":return Yt(r);case"[object Boolean]":case"[object Date]":return new o(+r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return e=r.buffer,u=u?Yt(e):e,
-new r.constructor(u,r.byteOffset,r.length);case"[object Map]":return u=r.constructor,s(M(r),n,new u);case"[object Number]":case"[object String]":return new o(r);case"[object RegExp]":return u=new r.constructor(r.source,hn.exec(r)),u.lastIndex=r.lastIndex,u;case"[object Set]":return u=r.constructor,s($(r),t,new u);case"[object Symbol]":return yu?Object(Vu.call(r)):{}}}function zr(n){var t=n?n.length:Z;return me(t)&&(Zo(n)||Ie(n)||ge(n))?m(t,String):null}function Mr(n,t,r){if(!je(r))return false;var e=typeof t;
-return("number"==e?ve(r)&&U(t,r.length):"string"==e&&t in r)?pe(r[t],n):false}function Lr(n,t){return typeof n=="number"?true:!Zo(n)&&(rn.test(n)||!tn.test(n)||null!=t&&n in Object(t))}function $r(n){var t=typeof n;return"number"==t||"boolean"==t||"string"==t&&"__proto__"!=n||null==n}function Fr(n){var t=Or(n),r=yn[t];return typeof r=="function"&&t in An.prototype?n===r?true:(t=eo(r),!!t&&n===t[0]):false}function Nr(n){var t=n&&n.constructor,t=be(t)&&t.prototype||cu;return n===t}function Dr(n,t,r,e,u,o){return je(n)&&je(t)&&(o.set(t,n),
-St(n,t,Z,Dr,o)),n}function Zr(n,t){return 1==t.length?n:$e(n,Ft(t,0,-1))}function qr(n){var t=[];return Le(n).replace(en,function(n,r,e,u){t.push(e?u.replace(ln,"$1"):r||n)}),t}function Pr(n){if(n instanceof An)return n.clone();var t=new wn(n.__wrapped__,n.__chain__);return t.__actions__=Xt(n.__actions__),t.__index__=n.__index__,t.__values__=n.__values__,t}function Tr(n,t,r){var e=n?n.length:0;return e?(t=r||t===Z?1:Ce(t),Ft(n,0>t?0:t,e)):[]}function Kr(n,t,r){var e=n?n.length:0;return e?(t=r||t===Z?1:Ce(t),
-t=e-t,Ft(n,0,0>t?0:t)):[]}function Gr(n){return n?n[0]:Z}function Vr(n){var t=n?n.length:0;return t?n[t-1]:Z}function Jr(n,t){return n&&n.length&&t&&t.length?zt(n,t):n}function Yr(n){return n?$u.call(n):n}function Hr(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){return de(n)?(t=Uu(n.length,t),true):void 0}),m(t,function(t){return a(n,Ct(t))})}function Qr(n,t){if(!n||!n.length)return[];var e=Hr(n);return null==t?e:a(e,function(n){return r(t,Z,n)})}function Xr(n){return n=yn(n),n.__chain__=true,
-n}function ne(n,t){return t(n)}function te(){return this}function re(n,t){return typeof t=="function"&&Zo(n)?u(n,t):Hu(n,tt(t))}function ee(n,t){var r;if(typeof t=="function"&&Zo(n)){for(r=n.length;r--&&false!==t(n[r],r,n););r=n}else r=Qu(n,tt(t));return r}function ue(n,t){return(Zo(n)?a:kt)(n,kr(t,3))}function oe(n,t){var r=-1,e=Be(n),u=e.length,o=u-1;for(t=et(Ce(t),0,u);++r<t;){var u=Lt(r,o),i=e[u];e[u]=e[r],e[r]=i}return e.length=t,e}function ie(n,t,r){return t=r?Z:t,t=n&&null==t?n.length:t,mr(n,128,Z,Z,Z,Z,t);
-}function fe(n,t){var r;if(typeof t!="function")throw new iu("Expected a function");return n=Ce(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=Z),r}}function ce(n,t,r){return t=r?Z:t,n=mr(n,8,Z,Z,Z,Z,Z,t),n.placeholder=ce.placeholder,n}function ae(n,t,r){return t=r?Z:t,n=mr(n,16,Z,Z,Z,Z,Z,t),n.placeholder=ae.placeholder,n}function le(n,t,r){function e(){p&&xu(p),a&&xu(a),g=0,c=a=h=p=_=Z}function u(t,r){r&&xu(r),a=p=_=Z,t&&(g=Co(),l=n.apply(h,c),p||a||(c=h=Z))}function o(){var n=t-(Co()-s);
-0>=n||n>t?u(_,a):p=Eu(o,n)}function i(){u(y,p)}function f(){if(c=arguments,s=Co(),h=this,_=y&&(p||!v),false===d)var r=v&&!p;else{g||a||v||(g=s);var e=d-(s-g),u=(0>=e||e>d)&&(v||a);u?(a&&(a=xu(a)),g=s,l=n.apply(h,c)):a||(a=Eu(i,e))}return u&&p?p=xu(p):p||t===d||(p=Eu(o,t)),r&&(u=true,l=n.apply(h,c)),!u||p||a||(c=h=Z),l}var c,a,l,s,h,p,_,g=0,v=false,d=false,y=true;if(typeof n!="function")throw new iu("Expected a function");return t=ze(t)||0,je(r)&&(v=!!r.leading,d="maxWait"in r&&Uu(ze(r.maxWait)||0,t),y="trailing"in r?!!r.trailing:y),
-f.cancel=e,f.flush=function(){return(p&&_||a&&y)&&(l=n.apply(h,c)),e(),l},f}function se(n,t){if(typeof n!="function"||t&&typeof t!="function")throw new iu("Expected a function");var r=function(){var e=arguments,u=t?t.apply(this,e):e[0],o=r.cache;return o.has(u)?o.get(u):(e=n.apply(this,e),r.cache=o.set(u,e),e)};return r.cache=new se.Cache,r}function he(n,t){if(typeof n!="function")throw new iu("Expected a function");return t=Uu(t===Z?n.length-1:Ce(t),0),function(){for(var e=arguments,u=-1,o=Uu(e.length-t,0),i=Array(o);++u<o;)i[u]=e[t+u];
-switch(t){case 0:return n.call(this,i);case 1:return n.call(this,e[0],i);case 2:return n.call(this,e[0],e[1],i)}for(o=Array(t+1),u=-1;++u<t;)o[u]=e[u];return o[t]=i,r(n,this,o)}}function pe(n,t){return n===t||n!==n&&t!==t}function _e(n,t){return n>t}function ge(n){return de(n)&&lu.call(n,"callee")&&(!ku.call(n,"callee")||"[object Arguments]"==pu.call(n))}function ve(n){return null!=n&&!(typeof n=="function"&&be(n))&&me(uo(n))}function de(n){return we(n)&&ve(n)}function ye(n){return we(n)?"[object Error]"==pu.call(n)||typeof n.message=="string"&&typeof n.name=="string":false;
-}function be(n){return n=je(n)?pu.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n}function xe(n){return typeof n=="number"&&n==Ce(n)}function me(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function je(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function we(n){return!!n&&typeof n=="object"}function Ae(n){return null==n?false:be(n)?gu.test(au.call(n)):we(n)&&(C(n)?gu:vn).test(n)}function Oe(n){return typeof n=="number"||we(n)&&"[object Number]"==pu.call(n);
-}function ke(n){return!we(n)||"[object Object]"!=pu.call(n)||C(n)?false:(n=ju(n),null===n?true:(n=n.constructor,typeof n=="function"&&n instanceof n&&au.call(n)==hu))}function Ee(n){return je(n)&&"[object RegExp]"==pu.call(n)}function Ie(n){return typeof n=="string"||!Zo(n)&&we(n)&&"[object String]"==pu.call(n)}function Se(n){return typeof n=="symbol"||we(n)&&"[object Symbol]"==pu.call(n)}function Re(n){return we(n)&&me(n.length)&&!!Bn[pu.call(n)]}function We(n,t){return t>n}function Be(n){if(!n)return[];
-if(ve(n))return Ie(n)?n.match(kn):Xt(n);if(Au&&n[Au])return z(n[Au]());var t=Rr(n);return("[object Map]"==t?M:"[object Set]"==t?$:Pe)(n)}function Ce(n){if(!n)return 0===n?n:0;if(n=ze(n),n===q||n===-q)return 1.7976931348623157e308*(0>n?-1:1);var t=n%1;return n===n?t?n-t:n:0}function Ue(n){return n?et(Ce(n),0,4294967295):0}function ze(n){if(je(n)&&(n=be(n.valueOf)?n.valueOf():n,n=je(n)?n+"":n),typeof n!="string")return 0===n?n:+n;n=n.replace(fn,"");var t=gn.test(n);return t||dn.test(n)?Nn(n.slice(2),t?2:8):_n.test(n)?P:+n;
-}function Me(n){return nr(n,Ze(n))}function Le(n){if(typeof n=="string")return n;if(null==n)return"";if(Se(n))return yu?Ju.call(n):"";var t=n+"";return"0"==t&&1/n==-q?"-0":t}function $e(n,t,r){return n=null==n?Z:vt(n,t),n===Z?r:n}function Fe(n,t){return Wr(n,t,dt)}function Ne(n,t){return Wr(n,t,yt)}function De(n){var t=Nr(n);if(!t&&!ve(n))return Cu(Object(n));var r,e=zr(n),u=!!e,e=e||[],o=e.length;for(r in n)!dt(n,r)||u&&("length"==r||U(r,o))||t&&"constructor"==r||e.push(r);return e}function Ze(n){
-for(var t=-1,r=Nr(n),e=Ot(n),u=e.length,o=zr(n),i=!!o,o=o||[],f=o.length;++t<u;){var c=e[t];i&&("length"==c||U(c,f))||"constructor"==c&&(r||!lu.call(n,c))||o.push(c)}return o}function qe(n){return j(n,De(n))}function Pe(n){return n?A(n,De(n)):[]}function Te(n){return ci(Le(n).toLowerCase())}function Ke(n){return(n=Le(n))&&n.replace(bn,S).replace(On,"")}function Ge(n,t){n=Le(n),t=Ce(t);var r="";if(!n||1>t||t>9007199254740991)return r;do t%2&&(r+=n),t=Ru(t/2),n+=n;while(t);return r}function Ve(n,t,r){
-return n=Le(n),t=r?Z:t,t===Z&&(t=Rn.test(n)?Sn:In),n.match(t)||[]}function Je(n){return function(){return n}}function Ye(n){return n}function He(n){return At(typeof n=="function"?n:ut(n,true))}function Qe(n,t,r){var e=De(t),o=gt(t,e);null!=r||je(t)&&(o.length||!e.length)||(r=t,t=n,n=this,o=gt(t,De(t)));var i=je(r)&&"chain"in r?r.chain:true,f=be(n);return u(o,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(i||t){var r=n(this.__wrapped__);return(r.__actions__=Xt(this.__actions__)).push({
-func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,l([this.value()],arguments))})}),n}function Xe(){}function nu(n){return Lr(n)?Ct(n):Ut(n)}function tu(n){return n&&n.length?x(n,Ye):0}E=E?Jn.defaults({},E,Jn.pick(Vn,Wn)):Vn;var ru=E.Date,eu=E.Error,uu=E.Math,ou=E.RegExp,iu=E.TypeError,fu=E.Array.prototype,cu=E.Object.prototype,au=E.Function.prototype.toString,lu=cu.hasOwnProperty,su=0,hu=au.call(Object),pu=cu.toString,_u=Vn._,gu=ou("^"+au.call(lu).replace(un,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),vu=qn?E.Buffer:Z,du=E.Reflect,yu=E.Symbol,bu=E.Uint8Array,xu=E.clearTimeout,mu=du?du.enumerate:Z,ju=Object.getPrototypeOf,wu=Object.getOwnPropertySymbols,Au=typeof(Au=yu&&yu.iterator)=="symbol"?Au:Z,Ou=Object.create,ku=cu.propertyIsEnumerable,Eu=E.setTimeout,Iu=fu.splice,Su=uu.ceil,Ru=uu.floor,Wu=E.isFinite,Bu=fu.join,Cu=Object.keys,Uu=uu.max,zu=uu.min,Mu=E.parseInt,Lu=uu.random,$u=fu.reverse,Fu=Ir(E,"Map"),Nu=Ir(E,"Set"),Du=Ir(E,"WeakMap"),Zu=Ir(Object,"create"),qu=Du&&new Du,Pu=Fu?au.call(Fu):"",Tu=Nu?au.call(Nu):"",Ku=Du?au.call(Du):"",Gu=yu?yu.prototype:Z,Vu=yu?Gu.valueOf:Z,Ju=yu?Gu.toString:Z,Yu={};
-yn.templateSettings={escape:Q,evaluate:X,interpolate:nn,variable:"",imports:{_:yn}};var Hu=or(pt),Qu=or(_t,true),Xu=ir(),no=ir(true);mu&&!ku.call({valueOf:1},"valueOf")&&(Ot=function(n){return z(mu(n))});var to=qu?function(n,t){return qu.set(n,t),n}:Ye,ro=Nu&&2===new Nu([1,2]).size?function(n){return new Nu(n)}:Xe,eo=qu?function(n){return qu.get(n)}:Xe,uo=Ct("length"),oo=wu||function(){return[]};(Fu&&"[object Map]"!=Rr(new Fu)||Nu&&"[object Set]"!=Rr(new Nu)||Du&&"[object WeakMap]"!=Rr(new Du))&&(Rr=function(n){
-var t=pu.call(n);if(n="[object Object]"==t?n.constructor:null,n=typeof n=="function"?au.call(n):"")switch(n){case Pu:return"[object Map]";case Tu:return"[object Set]";case Ku:return"[object WeakMap]"}return t});var io=function(){var n=0,t=0;return function(r,e){var u=Co(),o=16-(u-t);if(t=u,o>0){if(150<=++n)return r}else n=0;return to(r,e)}}(),fo=he(function(n,t){Zo(n)||(n=null==n?[]:[Object(n)]),t=st(t,1);for(var r=n,e=t,u=-1,o=r.length,i=-1,f=e.length,c=Array(o+f);++u<o;)c[u]=r[u];for(;++i<f;)c[u++]=e[i];
-return c}),co=he(function(n,t){return de(n)?ct(n,st(t,1,true)):[]}),ao=he(function(n,t){var r=Vr(t);return de(r)&&(r=Z),de(n)?ct(n,st(t,1,true),kr(r)):[]}),lo=he(function(n,t){var r=Vr(t);return de(r)&&(r=Z),de(n)?ct(n,st(t,1,true),Z,r):[]}),so=he(function(n){var t=a(n,nt);return t.length&&t[0]===n[0]?bt(t):[]}),ho=he(function(n){var t=Vr(n),r=a(n,nt);return t===Vr(r)?t=Z:r.pop(),r.length&&r[0]===n[0]?bt(r,kr(t)):[]}),po=he(function(n){var t=Vr(n),r=a(n,nt);return t===Vr(r)?t=Z:r.pop(),r.length&&r[0]===n[0]?bt(r,Z,t):[];
-}),_o=he(Jr),go=he(function(n,t){t=a(st(t,1),String);var r=Xn(n,t);return Mt(n,t.sort(I)),r}),vo=he(function(n){return Pt(st(n,1,true))}),yo=he(function(n){var t=Vr(n);return de(t)&&(t=Z),Pt(st(n,1,true),kr(t))}),bo=he(function(n){var t=Vr(n);return de(t)&&(t=Z),Pt(st(n,1,true),Z,t)}),xo=he(function(n,t){return de(n)?ct(n,t):[]}),mo=he(function(n){return Gt(i(n,de))}),jo=he(function(n){var t=Vr(n);return de(t)&&(t=Z),Gt(i(n,de),kr(t))}),wo=he(function(n){var t=Vr(n);return de(t)&&(t=Z),Gt(i(n,de),Z,t)}),Ao=he(Hr),Oo=he(function(n){
-var t=n.length,t=t>1?n[t-1]:Z,t=typeof t=="function"?(n.pop(),t):Z;return Qr(n,t)}),ko=he(function(n){n=st(n,1);var t=n.length,r=t?n[0]:0,e=this.__wrapped__,u=function(t){return Xn(t,n)};return 1>=t&&!this.__actions__.length&&e instanceof An&&U(r)?(e=e.slice(r,+r+(t?1:0)),e.__actions__.push({func:ne,args:[u],thisArg:Z}),new wn(e,this.__chain__).thru(function(n){return t&&!n.length&&n.push(Z),n})):this.thru(u)}),Eo=er(function(n,t,r){lu.call(n,r)?++n[r]:n[r]=1}),Io=er(function(n,t,r){lu.call(n,r)?n[r].push(t):n[r]=[t];
-}),So=he(function(n,t,e){var u=-1,o=typeof t=="function",i=Lr(t),f=ve(n)?Array(n.length):[];return Hu(n,function(n){var c=o?t:i&&null!=n?n[t]:Z;f[++u]=c?r(c,n,e):mt(n,t,e)}),f}),Ro=er(function(n,t,r){n[r]=t}),Wo=er(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),Bo=he(function(n,t){if(null==n)return[];var r=t.length;return r>1&&Mr(n,t[0],t[1])?t=[]:r>2&&Mr(t[0],t[1],t[2])&&(t.length=1),Rt(n,st(t,1),[])}),Co=ru.now,Uo=he(function(n,t,r){var e=1;if(r.length)var u=L(r,Sr(Uo)),e=32|e;return mr(n,e,t,r,u);
-}),zo=he(function(n,t,r){var e=3;if(r.length)var u=L(r,Sr(zo)),e=32|e;return mr(t,e,n,r,u)}),Mo=he(function(n,t){return ft(n,1,t)}),Lo=he(function(n,t,r){return ft(n,ze(t)||0,r)}),$o=he(function(n,t){t=a(st(t,1),kr());var e=t.length;return he(function(u){for(var o=-1,i=zu(u.length,e);++o<i;)u[o]=t[o].call(this,u[o]);return r(n,this,u)})}),Fo=he(function(n,t){var r=L(t,Sr(Fo));return mr(n,32,Z,t,r)}),No=he(function(n,t){var r=L(t,Sr(No));return mr(n,64,Z,t,r)}),Do=he(function(n,t){return mr(n,256,Z,Z,Z,st(t,1));
-}),Zo=Array.isArray,qo=vu?function(n){return n instanceof vu}:Je(false),Po=ur(function(n,t){nr(t,De(t),n)}),To=ur(function(n,t){nr(t,Ze(t),n)}),Ko=ur(function(n,t,r,e){tr(t,Ze(t),n,e)}),Go=ur(function(n,t,r,e){tr(t,De(t),n,e)}),Vo=he(function(n,t){return Xn(n,st(t,1))}),Jo=he(function(n){return n.push(Z,Kn),r(Ko,Z,n)}),Yo=he(function(n){return n.push(Z,Dr),r(ti,Z,n)}),Ho=_r(function(n,t,r){n[t]=r},Je(Ye)),Qo=_r(function(n,t,r){lu.call(n,t)?n[t].push(r):n[t]=[r]},kr),Xo=he(mt),ni=ur(function(n,t,r){St(n,t,r);
-}),ti=ur(function(n,t,r,e){St(n,t,r,e)}),ri=he(function(n,t){return null==n?{}:(t=a(st(t,1),String),Wt(n,ct(Ze(n),t)))}),ei=he(function(n,t){return null==n?{}:Wt(n,st(t,1))}),ui=ar(function(n,t,r){return t=t.toLowerCase(),n+(r?Te(t):t)}),oi=ar(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),ii=ar(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),fi=cr("toLowerCase"),ci=cr("toUpperCase"),ai=ar(function(n,t,r){return n+(r?"_":"")+t.toLowerCase()}),li=ar(function(n,t,r){return n+(r?" ":"")+Te(t);
-}),si=ar(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),hi=he(function(n,t){try{return r(n,Z,t)}catch(e){return ye(e)?e:new eu(e)}}),pi=he(function(n,t){return u(st(t,1),function(t){n[t]=Uo(n[t],n)}),n}),_i=hr(),gi=hr(true),vi=he(function(n,t){return function(r){return mt(r,n,t)}}),di=he(function(n,t){return function(r){return mt(n,r,t)}}),yi=gr(a),bi=gr(o),xi=gr(p),mi=yr(),ji=yr(true),wi=xr("ceil"),Ai=xr("floor"),Oi=xr("round");return yn.prototype=jn.prototype,wn.prototype=it(jn.prototype),wn.prototype.constructor=wn,
-An.prototype=it(jn.prototype),An.prototype.constructor=An,Un.prototype=Zu?Zu(null):cu,zn.prototype.clear=function(){this.__data__={hash:new Un,map:Fu?new Fu:[],string:new Un}},zn.prototype["delete"]=function(n){var t=this.__data__;return $r(n)?(t=typeof n=="string"?t.string:t.hash,(Zu?t[n]!==Z:lu.call(t,n))&&delete t[n]):Fu?t.map["delete"](n):Dn(t.map,n)},zn.prototype.get=function(n){var t=this.__data__;return $r(n)?(t=typeof n=="string"?t.string:t.hash,Zu?(n=t[n],n="__lodash_hash_undefined__"===n?Z:n):n=lu.call(t,n)?t[n]:Z,
-n):Fu?t.map.get(n):Zn(t.map,n)},zn.prototype.has=function(n){var t=this.__data__;return $r(n)?(t=typeof n=="string"?t.string:t.hash,n=Zu?t[n]!==Z:lu.call(t,n)):n=Fu?t.map.has(n):-1<Pn(t.map,n),n},zn.prototype.set=function(n,t){var r=this.__data__;return $r(n)?(typeof n=="string"?r.string:r.hash)[n]=Zu&&t===Z?"__lodash_hash_undefined__":t:Fu?r.map.set(n,t):Tn(r.map,n,t),this},Mn.prototype.push=function(n){var t=this.__data__;$r(n)?(t=t.__data__,(typeof n=="string"?t.string:t.hash)[n]="__lodash_hash_undefined__"):t.set(n,"__lodash_hash_undefined__");
-},$n.prototype.clear=function(){this.__data__={array:[],map:null}},$n.prototype["delete"]=function(n){var t=this.__data__,r=t.array;return r?Dn(r,n):t.map["delete"](n)},$n.prototype.get=function(n){var t=this.__data__,r=t.array;return r?Zn(r,n):t.map.get(n)},$n.prototype.has=function(n){var t=this.__data__,r=t.array;return r?-1<Pn(r,n):t.map.has(n)},$n.prototype.set=function(n,t){var r=this.__data__,e=r.array;return e&&(199>e.length?Tn(e,n,t):(r.array=null,r.map=new zn(e))),(r=r.map)&&r.set(n,t),
-this},se.Cache=zn,yn.after=function(n,t){if(typeof t!="function")throw new iu("Expected a function");return n=Ce(n),function(){return 1>--n?t.apply(this,arguments):void 0}},yn.ary=ie,yn.assign=Po,yn.assignIn=To,yn.assignInWith=Ko,yn.assignWith=Go,yn.at=Vo,yn.before=fe,yn.bind=Uo,yn.bindAll=pi,yn.bindKey=zo,yn.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return Zo(n)?n:[n]},yn.chain=Xr,yn.chunk=function(n,t){t=Uu(Ce(t),0);var r=n?n.length:0;if(!r||1>t)return[];for(var e=0,u=-1,o=Array(Su(r/t));r>e;)o[++u]=Ft(n,e,e+=t);
-return o},yn.compact=function(n){for(var t=-1,r=n?n.length:0,e=-1,u=[];++t<r;){var o=n[t];o&&(u[++e]=o)}return u},yn.concat=fo,yn.cond=function(n){var t=n?n.length:0,e=kr();return n=t?a(n,function(n){if("function"!=typeof n[1])throw new iu("Expected a function");return[e(n[0]),n[1]]}):[],he(function(e){for(var u=-1;++u<t;){var o=n[u];if(r(o[0],this,e))return r(o[1],this,e)}})},yn.conforms=function(n){return ot(ut(n,true))},yn.constant=Je,yn.countBy=Eo,yn.create=function(n,t){var r=it(n);return t?Qn(r,t):r;
-},yn.curry=ce,yn.curryRight=ae,yn.debounce=le,yn.defaults=Jo,yn.defaultsDeep=Yo,yn.defer=Mo,yn.delay=Lo,yn.difference=co,yn.differenceBy=ao,yn.differenceWith=lo,yn.drop=Tr,yn.dropRight=Kr,yn.dropRightWhile=function(n,t){return n&&n.length?Tt(n,kr(t,3),true,true):[]},yn.dropWhile=function(n,t){return n&&n.length?Tt(n,kr(t,3),true):[]},yn.fill=function(n,t,r,e){var u=n?n.length:0;if(!u)return[];for(r&&typeof r!="number"&&Mr(n,t,r)&&(r=0,e=u),u=n.length,r=Ce(r),0>r&&(r=-r>u?0:u+r),e=e===Z||e>u?u:Ce(e),0>e&&(e+=u),
-e=r>e?0:Ue(e);e>r;)n[r++]=t;return n},yn.filter=function(n,t){return(Zo(n)?i:lt)(n,kr(t,3))},yn.flatMap=function(n,t){return st(ue(n,t),1)},yn.flatten=function(n){return n&&n.length?st(n,1):[]},yn.flattenDeep=function(n){return n&&n.length?st(n,q):[]},yn.flattenDepth=function(n,t){return n&&n.length?(t=t===Z?1:Ce(t),st(n,t)):[]},yn.flip=function(n){return mr(n,512)},yn.flow=_i,yn.flowRight=gi,yn.fromPairs=function(n){for(var t=-1,r=n?n.length:0,e={};++t<r;){var u=n[t];e[u[0]]=u[1]}return e},yn.functions=function(n){
-return null==n?[]:gt(n,De(n))},yn.functionsIn=function(n){return null==n?[]:gt(n,Ze(n))},yn.groupBy=Io,yn.initial=function(n){return Kr(n,1)},yn.intersection=so,yn.intersectionBy=ho,yn.intersectionWith=po,yn.invert=Ho,yn.invertBy=Qo,yn.invokeMap=So,yn.iteratee=He,yn.keyBy=Ro,yn.keys=De,yn.keysIn=Ze,yn.map=ue,yn.mapKeys=function(n,t){var r={};return t=kr(t,3),pt(n,function(n,e,u){r[t(n,e,u)]=n}),r},yn.mapValues=function(n,t){var r={};return t=kr(t,3),pt(n,function(n,e,u){r[e]=t(n,e,u)}),r},yn.matches=function(n){
-return Et(ut(n,true))},yn.matchesProperty=function(n,t){return It(n,ut(t,true))},yn.memoize=se,yn.merge=ni,yn.mergeWith=ti,yn.method=vi,yn.methodOf=di,yn.mixin=Qe,yn.negate=function(n){if(typeof n!="function")throw new iu("Expected a function");return function(){return!n.apply(this,arguments)}},yn.nthArg=function(n){return n=Ce(n),function(){return arguments[n]}},yn.omit=ri,yn.omitBy=function(n,t){return t=kr(t),Bt(n,function(n,r){return!t(n,r)})},yn.once=function(n){return fe(2,n)},yn.orderBy=function(n,t,r,e){
-return null==n?[]:(Zo(t)||(t=null==t?[]:[t]),r=e?Z:r,Zo(r)||(r=null==r?[]:[r]),Rt(n,t,r))},yn.over=yi,yn.overArgs=$o,yn.overEvery=bi,yn.overSome=xi,yn.partial=Fo,yn.partialRight=No,yn.partition=Wo,yn.pick=ei,yn.pickBy=function(n,t){return null==n?{}:Bt(n,kr(t))},yn.property=nu,yn.propertyOf=function(n){return function(t){return null==n?Z:vt(n,t)}},yn.pull=_o,yn.pullAll=Jr,yn.pullAllBy=function(n,t,r){return n&&n.length&&t&&t.length?zt(n,t,kr(r)):n},yn.pullAt=go,yn.range=mi,yn.rangeRight=ji,yn.rearg=Do,
-yn.reject=function(n,t){var r=Zo(n)?i:lt;return t=kr(t,3),r(n,function(n,r,e){return!t(n,r,e)})},yn.remove=function(n,t){var r=[];if(!n||!n.length)return r;var e=-1,u=[],o=n.length;for(t=kr(t,3);++e<o;){var i=n[e];t(i,e,n)&&(r.push(i),u.push(e))}return Mt(n,u),r},yn.rest=he,yn.reverse=Yr,yn.sampleSize=oe,yn.set=function(n,t,r){return null==n?n:$t(n,t,r)},yn.setWith=function(n,t,r,e){return e=typeof e=="function"?e:Z,null==n?n:$t(n,t,r,e)},yn.shuffle=function(n){return oe(n,4294967295)},yn.slice=function(n,t,r){
-var e=n?n.length:0;return e?(r&&typeof r!="number"&&Mr(n,t,r)?(t=0,r=e):(t=null==t?0:Ce(t),r=r===Z?e:Ce(r)),Ft(n,t,r)):[]},yn.sortBy=Bo,yn.sortedUniq=function(n){return n&&n.length?qt(n):[]},yn.sortedUniqBy=function(n,t){return n&&n.length?qt(n,kr(t)):[]},yn.split=function(n,t,r){return Le(n).split(t,r)},yn.spread=function(n,t){if(typeof n!="function")throw new iu("Expected a function");return t=t===Z?0:Uu(Ce(t),0),he(function(e){var u=e[t];return e=e.slice(0,t),u&&l(e,u),r(n,this,e)})},yn.tail=function(n){
-return Tr(n,1)},yn.take=function(n,t,r){return n&&n.length?(t=r||t===Z?1:Ce(t),Ft(n,0,0>t?0:t)):[]},yn.takeRight=function(n,t,r){var e=n?n.length:0;return e?(t=r||t===Z?1:Ce(t),t=e-t,Ft(n,0>t?0:t,e)):[]},yn.takeRightWhile=function(n,t){return n&&n.length?Tt(n,kr(t,3),false,true):[]},yn.takeWhile=function(n,t){return n&&n.length?Tt(n,kr(t,3)):[]},yn.tap=function(n,t){return t(n),n},yn.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new iu("Expected a function");return je(r)&&(e="leading"in r?!!r.leading:e,
-u="trailing"in r?!!r.trailing:u),le(n,t,{leading:e,maxWait:t,trailing:u})},yn.thru=ne,yn.toArray=Be,yn.toPairs=qe,yn.toPairsIn=function(n){return j(n,Ze(n))},yn.toPath=function(n){return Zo(n)?a(n,String):qr(n)},yn.toPlainObject=Me,yn.transform=function(n,t,r){var e=Zo(n)||Re(n);if(t=kr(t,4),null==r)if(e||je(n)){var o=n.constructor;r=e?Zo(n)?new o:[]:be(o)?it(ju(n)):{}}else r={};return(e?u:pt)(n,function(n,e,u){return t(r,n,e,u)}),r},yn.unary=function(n){return ie(n,1)},yn.union=vo,yn.unionBy=yo,
-yn.unionWith=bo,yn.uniq=function(n){return n&&n.length?Pt(n):[]},yn.uniqBy=function(n,t){return n&&n.length?Pt(n,kr(t)):[]},yn.uniqWith=function(n,t){return n&&n.length?Pt(n,Z,t):[]},yn.unset=function(n,t){var r;if(null==n)r=true;else{r=n;var e=t,e=Lr(e,r)?[e+""]:rt(e);r=Zr(r,e),e=Vr(e),r=null!=r&&Fe(r,e)?delete r[e]:true}return r},yn.unzip=Hr,yn.unzipWith=Qr,yn.values=Pe,yn.valuesIn=function(n){return null==n?[]:A(n,Ze(n))},yn.without=xo,yn.words=Ve,yn.wrap=function(n,t){return t=null==t?Ye:t,Fo(t,n);
-},yn.xor=mo,yn.xorBy=jo,yn.xorWith=wo,yn.zip=Ao,yn.zipObject=function(n,t){return Vt(n||[],t||[],Yn)},yn.zipObjectDeep=function(n,t){return Vt(n||[],t||[],$t)},yn.zipWith=Oo,yn.extend=To,yn.extendWith=Ko,Qe(yn,yn),yn.add=function(n,t){var r;return n===Z&&t===Z?0:(n!==Z&&(r=n),t!==Z&&(r=r===Z?t:r+t),r)},yn.attempt=hi,yn.camelCase=ui,yn.capitalize=Te,yn.ceil=wi,yn.clamp=function(n,t,r){return r===Z&&(r=t,t=Z),r!==Z&&(r=ze(r),r=r===r?r:0),t!==Z&&(t=ze(t),t=t===t?t:0),et(ze(n),t,r)},yn.clone=function(n){
-return ut(n)},yn.cloneDeep=function(n){return ut(n,true)},yn.cloneDeepWith=function(n,t){return ut(n,true,t)},yn.cloneWith=function(n,t){return ut(n,false,t)},yn.deburr=Ke,yn.endsWith=function(n,t,r){n=Le(n),t=typeof t=="string"?t:t+"";var e=n.length;return r=r===Z?e:et(Ce(r),0,e),r-=t.length,r>=0&&n.indexOf(t,r)==r},yn.eq=pe,yn.escape=function(n){return(n=Le(n))&&H.test(n)?n.replace(J,R):n},yn.escapeRegExp=function(n){return(n=Le(n))&&on.test(n)?n.replace(un,"\\$&"):n},yn.every=function(n,t,r){var e=Zo(n)?o:at;
-return r&&Mr(n,t,r)&&(t=Z),e(n,kr(t,3))},yn.find=function(n,t){if(t=kr(t,3),Zo(n)){var r=v(n,t);return r>-1?n[r]:Z}return g(n,t,Hu)},yn.findIndex=function(n,t){return n&&n.length?v(n,kr(t,3)):-1},yn.findKey=function(n,t){return g(n,kr(t,3),pt,true)},yn.findLast=function(n,t){if(t=kr(t,3),Zo(n)){var r=v(n,t,true);return r>-1?n[r]:Z}return g(n,t,Qu)},yn.findLastIndex=function(n,t){return n&&n.length?v(n,kr(t,3),true):-1},yn.findLastKey=function(n,t){return g(n,kr(t,3),_t,true)},yn.floor=Ai,yn.forEach=re,yn.forEachRight=ee,
-yn.forIn=function(n,t){return null==n?n:Xu(n,tt(t),Ze)},yn.forInRight=function(n,t){return null==n?n:no(n,tt(t),Ze)},yn.forOwn=function(n,t){return n&&pt(n,tt(t))},yn.forOwnRight=function(n,t){return n&&_t(n,tt(t))},yn.get=$e,yn.gt=_e,yn.gte=function(n,t){return n>=t},yn.has=Fe,yn.hasIn=Ne,yn.head=Gr,yn.identity=Ye,yn.includes=function(n,t,r,e){return n=ve(n)?n:Pe(n),r=r&&!e?Ce(r):0,e=n.length,0>r&&(r=Uu(e+r,0)),Ie(n)?e>=r&&-1<n.indexOf(t,r):!!e&&-1<d(n,t,r)},yn.indexOf=function(n,t,r){var e=n?n.length:0;
-return e?(r=Ce(r),0>r&&(r=Uu(e+r,0)),d(n,t,r)):-1},yn.inRange=function(n,t,r){return t=ze(t)||0,r===Z?(r=t,t=0):r=ze(r)||0,n=ze(n),n>=zu(t,r)&&n<Uu(t,r)},yn.invoke=Xo,yn.isArguments=ge,yn.isArray=Zo,yn.isArrayBuffer=function(n){return we(n)&&"[object ArrayBuffer]"==pu.call(n)},yn.isArrayLike=ve,yn.isArrayLikeObject=de,yn.isBoolean=function(n){return true===n||false===n||we(n)&&"[object Boolean]"==pu.call(n)},yn.isBuffer=qo,yn.isDate=function(n){return we(n)&&"[object Date]"==pu.call(n)},yn.isElement=function(n){
-return!!n&&1===n.nodeType&&we(n)&&!ke(n)},yn.isEmpty=function(n){if(ve(n)&&(Zo(n)||Ie(n)||be(n.splice)||ge(n)))return!n.length;for(var t in n)if(lu.call(n,t))return false;return true},yn.isEqual=function(n,t){return jt(n,t)},yn.isEqualWith=function(n,t,r){var e=(r=typeof r=="function"?r:Z)?r(n,t):Z;return e===Z?jt(n,t,r):!!e},yn.isError=ye,yn.isFinite=function(n){return typeof n=="number"&&Wu(n)},yn.isFunction=be,yn.isInteger=xe,yn.isLength=me,yn.isMap=function(n){return we(n)&&"[object Map]"==Rr(n)},yn.isMatch=function(n,t){
-return n===t||wt(n,t,Er(t))},yn.isMatchWith=function(n,t,r){return r=typeof r=="function"?r:Z,wt(n,t,Er(t),r)},yn.isNaN=function(n){return Oe(n)&&n!=+n},yn.isNative=Ae,yn.isNil=function(n){return null==n},yn.isNull=function(n){return null===n},yn.isNumber=Oe,yn.isObject=je,yn.isObjectLike=we,yn.isPlainObject=ke,yn.isRegExp=Ee,yn.isSafeInteger=function(n){return xe(n)&&n>=-9007199254740991&&9007199254740991>=n},yn.isSet=function(n){return we(n)&&"[object Set]"==Rr(n)},yn.isString=Ie,yn.isSymbol=Se,
-yn.isTypedArray=Re,yn.isUndefined=function(n){return n===Z},yn.isWeakMap=function(n){return we(n)&&"[object WeakMap]"==Rr(n)},yn.isWeakSet=function(n){return we(n)&&"[object WeakSet]"==pu.call(n)},yn.join=function(n,t){return n?Bu.call(n,t):""},yn.kebabCase=oi,yn.last=Vr,yn.lastIndexOf=function(n,t,r){var e=n?n.length:0;if(!e)return-1;var u=e;if(r!==Z&&(u=Ce(r),u=(0>u?Uu(e+u,0):zu(u,e-1))+1),t!==t)return B(n,u,true);for(;u--;)if(n[u]===t)return u;return-1},yn.lowerCase=ii,yn.lowerFirst=fi,yn.lt=We,
-yn.lte=function(n,t){return t>=n},yn.max=function(n){return n&&n.length?_(n,Ye,_e):Z},yn.maxBy=function(n,t){return n&&n.length?_(n,kr(t),_e):Z},yn.mean=function(n){return tu(n)/(n?n.length:0)},yn.min=function(n){return n&&n.length?_(n,Ye,We):Z},yn.minBy=function(n,t){return n&&n.length?_(n,kr(t),We):Z},yn.noConflict=function(){return Vn._===this&&(Vn._=_u),this},yn.noop=Xe,yn.now=Co,yn.pad=function(n,t,r){n=Le(n),t=Ce(t);var e=F(n);return t&&t>e?(e=(t-e)/2,t=Ru(e),e=Su(e),vr("",t,r)+n+vr("",e,r)):n;
-},yn.padEnd=function(n,t,r){return n=Le(n),n+vr(n,t,r)},yn.padStart=function(n,t,r){return n=Le(n),vr(n,t,r)+n},yn.parseInt=function(n,t,r){return r||null==t?t=0:t&&(t=+t),n=Le(n).replace(fn,""),Mu(n,t||(pn.test(n)?16:10))},yn.random=function(n,t,r){if(r&&typeof r!="boolean"&&Mr(n,t,r)&&(t=r=Z),r===Z&&(typeof t=="boolean"?(r=t,t=Z):typeof n=="boolean"&&(r=n,n=Z)),n===Z&&t===Z?(n=0,t=1):(n=ze(n)||0,t===Z?(t=n,n=0):t=ze(t)||0),n>t){var e=n;n=t,t=e}return r||n%1||t%1?(r=Lu(),zu(n+r*(t-n+Fn("1e-"+((r+"").length-1))),t)):Lt(n,t);
-},yn.reduce=function(n,t,r){var e=Zo(n)?s:y,u=3>arguments.length;return e(n,kr(t,4),r,u,Hu)},yn.reduceRight=function(n,t,r){var e=Zo(n)?h:y,u=3>arguments.length;return e(n,kr(t,4),r,u,Qu)},yn.repeat=Ge,yn.replace=function(){var n=arguments,t=Le(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},yn.result=function(n,t,r){if(Lr(t,n))e=null==n?Z:n[t];else{t=rt(t);var e=$e(n,t);n=Zr(n,t)}return e===Z&&(e=r),be(e)?e.call(n):e},yn.round=Oi,yn.runInContext=D,yn.sample=function(n){n=ve(n)?n:Pe(n);var t=n.length;
-return t>0?n[Lt(0,t-1)]:Z},yn.size=function(n){if(null==n)return 0;if(ve(n)){var t=n.length;return t&&Ie(n)?F(n):t}return De(n).length},yn.snakeCase=ai,yn.some=function(n,t,r){var e=Zo(n)?p:Nt;return r&&Mr(n,t,r)&&(t=Z),e(n,kr(t,3))},yn.sortedIndex=function(n,t){return Dt(n,t)},yn.sortedIndexBy=function(n,t,r){return Zt(n,t,kr(r))},yn.sortedIndexOf=function(n,t){var r=n?n.length:0;if(r){var e=Dt(n,t);if(r>e&&pe(n[e],t))return e}return-1},yn.sortedLastIndex=function(n,t){return Dt(n,t,true)},yn.sortedLastIndexBy=function(n,t,r){
-return Zt(n,t,kr(r),true)},yn.sortedLastIndexOf=function(n,t){if(n&&n.length){var r=Dt(n,t,true)-1;if(pe(n[r],t))return r}return-1},yn.startCase=li,yn.startsWith=function(n,t,r){return n=Le(n),r=et(Ce(r),0,n.length),n.lastIndexOf(t,r)==r},yn.subtract=function(n,t){var r;return n===Z&&t===Z?0:(n!==Z&&(r=n),t!==Z&&(r=r===Z?t:r-t),r)},yn.sum=tu,yn.sumBy=function(n,t){return n&&n.length?x(n,kr(t)):0},yn.template=function(n,t,r){var e=yn.templateSettings;r&&Mr(n,t,r)&&(t=Z),n=Le(n),t=Ko({},t,e,Kn),r=Ko({},t.imports,e.imports,Kn);
-var u,o,i=De(r),f=A(r,i),c=0;r=t.interpolate||xn;var a="__p+='";r=ou((t.escape||xn).source+"|"+r.source+"|"+(r===nn?sn:xn).source+"|"+(t.evaluate||xn).source+"|$","g");var l="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(n.replace(r,function(t,r,e,i,f,l){return e||(e=i),a+=n.slice(c,l).replace(mn,W),r&&(u=true,a+="'+__e("+r+")+'"),f&&(o=true,a+="';"+f+";\n__p+='"),e&&(a+="'+((__t=("+e+"))==null?'':__t)+'"),c=l+t.length,t}),a+="';",(t=t.variable)||(a="with(obj){"+a+"}"),a=(o?a.replace(T,""):a).replace(K,"$1").replace(G,"$1;"),
-a="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+a+"return __p}",t=hi(function(){return Function(i,l+"return "+a).apply(Z,f)}),t.source=a,ye(t))throw t;return t},yn.times=function(n,t){if(n=Ce(n),1>n||n>9007199254740991)return[];var r=4294967295,e=zu(n,4294967295);for(t=tt(t),n-=4294967295,e=m(e,t);++r<n;)t(r);return e},yn.toInteger=Ce,yn.toLength=Ue,yn.toLower=function(n){
-return Le(n).toLowerCase()},yn.toNumber=ze,yn.toSafeInteger=function(n){return et(Ce(n),-9007199254740991,9007199254740991)},yn.toString=Le,yn.toUpper=function(n){return Le(n).toUpperCase()},yn.trim=function(n,t,r){return(n=Le(n))?r||t===Z?n.replace(fn,""):(t+="")?(n=n.match(kn),t=t.match(kn),n.slice(O(n,t),k(n,t)+1).join("")):n:n},yn.trimEnd=function(n,t,r){return(n=Le(n))?r||t===Z?n.replace(an,""):(t+="")?(n=n.match(kn),n.slice(0,k(n,t.match(kn))+1).join("")):n:n},yn.trimStart=function(n,t,r){return(n=Le(n))?r||t===Z?n.replace(cn,""):(t+="")?(n=n.match(kn),
-n.slice(O(n,t.match(kn))).join("")):n:n},yn.truncate=function(n,t){var r=30,e="...";if(je(t))var u="separator"in t?t.separator:u,r="length"in t?Ce(t.length):r,e="omission"in t?Le(t.omission):e;n=Le(n);var o=n.length;if(En.test(n))var i=n.match(kn),o=i.length;if(r>=o)return n;if(o=r-F(e),1>o)return e;if(r=i?i.slice(0,o).join(""):n.slice(0,o),u===Z)return r+e;if(i&&(o+=r.length-o),Ee(u)){if(n.slice(o).search(u)){var f=r;for(u.global||(u=ou(u.source,Le(hn.exec(u))+"g")),u.lastIndex=0;i=u.exec(f);)var c=i.index;
-r=r.slice(0,c===Z?o:c)}}else n.indexOf(u,o)!=o&&(u=r.lastIndexOf(u),u>-1&&(r=r.slice(0,u)));return r+e},yn.unescape=function(n){return(n=Le(n))&&Y.test(n)?n.replace(V,N):n},yn.uniqueId=function(n){var t=++su;return Le(n)+t},yn.upperCase=si,yn.upperFirst=ci,yn.each=re,yn.eachRight=ee,yn.first=Gr,Qe(yn,function(){var n={};return pt(yn,function(t,r){lu.call(yn.prototype,r)||(n[r]=t)}),n}(),{chain:false}),yn.VERSION="4.5.1",u("bind bindKey curry curryRight partial partialRight".split(" "),function(n){yn[n].placeholder=yn;
-}),u(["drop","take"],function(n,t){An.prototype[n]=function(r){var e=this.__filtered__;if(e&&!t)return new An(this);r=r===Z?1:Uu(Ce(r),0);var u=this.clone();return e?u.__takeCount__=zu(r,u.__takeCount__):u.__views__.push({size:zu(r,4294967295),type:n+(0>u.__dir__?"Right":"")}),u},An.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),u(["filter","map","takeWhile"],function(n,t){var r=t+1,e=1==r||3==r;An.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({
-iteratee:kr(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),u(["head","last"],function(n,t){var r="take"+(t?"Right":"");An.prototype[n]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");An.prototype[n]=function(){return this.__filtered__?new An(this):this[r](1)}}),An.prototype.compact=function(){return this.filter(Ye)},An.prototype.find=function(n){return this.filter(n).head()},An.prototype.findLast=function(n){return this.reverse().find(n);
-},An.prototype.invokeMap=he(function(n,t){return typeof n=="function"?new An(this):this.map(function(r){return mt(r,n,t)})}),An.prototype.reject=function(n){return n=kr(n,3),this.filter(function(t){return!n(t)})},An.prototype.slice=function(n,t){n=Ce(n);var r=this;return r.__filtered__&&(n>0||0>t)?new An(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==Z&&(t=Ce(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},An.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},An.prototype.toArray=function(){
-return this.take(4294967295)},pt(An.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=yn[e?"take"+("last"==t?"Right":""):t],o=e||/^find/.test(t);u&&(yn.prototype[t]=function(){var t=this.__wrapped__,i=e?[1]:arguments,f=t instanceof An,c=i[0],a=f||Zo(t),s=function(n){return n=u.apply(yn,l([n],i)),e&&h?n[0]:n};a&&r&&typeof c=="function"&&1!=c.length&&(f=a=false);var h=this.__chain__,p=!!this.__actions__.length,c=o&&!h,f=f&&!p;return!o&&a?(t=f?t:new An(this),
-t=n.apply(t,i),t.__actions__.push({func:ne,args:[s],thisArg:Z}),new wn(t,h)):c&&f?n.apply(this,i):(t=this.thru(s),c?e?t.value()[0]:t.value():t)})}),u("pop push shift sort splice unshift".split(" "),function(n){var t=fu[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);yn.prototype[n]=function(){var n=arguments;return e&&!this.__chain__?t.apply(this.value(),n):this[r](function(r){return t.apply(r,n)})}}),pt(An.prototype,function(n,t){var r=yn[t];if(r){var e=r.name+"";(Yu[e]||(Yu[e]=[])).push({
-name:t,func:r})}}),Yu[pr(Z,2).name]=[{name:"wrapper",func:Z}],An.prototype.clone=function(){var n=new An(this.__wrapped__);return n.__actions__=Xt(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Xt(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Xt(this.__views__),n},An.prototype.reverse=function(){if(this.__filtered__){var n=new An(this);n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},An.prototype.value=function(){
-var n,t=this.__wrapped__.value(),r=this.__dir__,e=Zo(t),u=0>r,o=e?t.length:0;n=0;for(var i=o,f=this.__views__,c=-1,a=f.length;++c<a;){var l=f[c],s=l.size;switch(l.type){case"drop":n+=s;break;case"dropRight":i-=s;break;case"take":i=zu(i,n+s);break;case"takeRight":n=Uu(n,i-s)}}if(n={start:n,end:i},i=n.start,f=n.end,n=f-i,u=u?f:i-1,i=this.__iteratees__,f=i.length,c=0,a=zu(n,this.__takeCount__),!e||200>o||o==n&&a==n)return Kt(t,this.__actions__);e=[];n:for(;n--&&a>c;){for(u+=r,o=-1,l=t[u];++o<f;){var h=i[o],s=h.type,h=(0,
-h.iteratee)(l);if(2==s)l=h;else if(!h){if(1==s)continue n;break n}}e[c++]=l}return e},yn.prototype.at=ko,yn.prototype.chain=function(){return Xr(this)},yn.prototype.commit=function(){return new wn(this.value(),this.__chain__)},yn.prototype.flatMap=function(n){return this.map(n).flatten()},yn.prototype.next=function(){this.__values__===Z&&(this.__values__=Be(this.value()));var n=this.__index__>=this.__values__.length,t=n?Z:this.__values__[this.__index__++];return{done:n,value:t}},yn.prototype.plant=function(n){
-for(var t,r=this;r instanceof jn;){var e=Pr(r);e.__index__=0,e.__values__=Z,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},yn.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof An?(this.__actions__.length&&(n=new An(this)),n=n.reverse(),n.__actions__.push({func:ne,args:[Yr],thisArg:Z}),new wn(n,this.__chain__)):this.thru(Yr)},yn.prototype.toJSON=yn.prototype.valueOf=yn.prototype.value=function(){return Kt(this.__wrapped__,this.__actions__)},Au&&(yn.prototype[Au]=te),
-yn}var Z,q=1/0,P=NaN,T=/\b__p\+='';/g,K=/\b(__p\+=)''\+/g,G=/(__e\(.*?\)|\b__t\))\+'';/g,V=/&(?:amp|lt|gt|quot|#39|#96);/g,J=/[&<>"'`]/g,Y=RegExp(V.source),H=RegExp(J.source),Q=/<%-([\s\S]+?)%>/g,X=/<%([\s\S]+?)%>/g,nn=/<%=([\s\S]+?)%>/g,tn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,rn=/^\w*$/,en=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g,un=/[\\^$.*+?()[\]{}|]/g,on=RegExp(un.source),fn=/^\s+|\s+$/g,cn=/^\s+/,an=/\s+$/,ln=/\\(\\)?/g,sn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,hn=/\w*$/,pn=/^0x/i,_n=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,vn=/^\[object .+?Constructor\]$/,dn=/^0o[0-7]+$/i,yn=/^(?:0|[1-9]\d*)$/,bn=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,xn=/($^)/,mn=/['\n\r\u2028\u2029\\]/g,jn="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?)*",wn="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+jn,An="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",On=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]","g"),kn=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+An+jn,"g"),En=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),In=/[a-zA-Z0-9]+/g,Sn=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|\\d+",wn].join("|"),"g"),Rn=/[a-z][A-Z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn="Array Buffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Reflect RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Bn={};
-Bn["[object Float32Array]"]=Bn["[object Float64Array]"]=Bn["[object Int8Array]"]=Bn["[object Int16Array]"]=Bn["[object Int32Array]"]=Bn["[object Uint8Array]"]=Bn["[object Uint8ClampedArray]"]=Bn["[object Uint16Array]"]=Bn["[object Uint32Array]"]=true,Bn["[object Arguments]"]=Bn["[object Array]"]=Bn["[object ArrayBuffer]"]=Bn["[object Boolean]"]=Bn["[object Date]"]=Bn["[object Error]"]=Bn["[object Function]"]=Bn["[object Map]"]=Bn["[object Number]"]=Bn["[object Object]"]=Bn["[object RegExp]"]=Bn["[object Set]"]=Bn["[object String]"]=Bn["[object WeakMap]"]=false;
-var Cn={};Cn["[object Arguments]"]=Cn["[object Array]"]=Cn["[object ArrayBuffer]"]=Cn["[object Boolean]"]=Cn["[object Date]"]=Cn["[object Float32Array]"]=Cn["[object Float64Array]"]=Cn["[object Int8Array]"]=Cn["[object Int16Array]"]=Cn["[object Int32Array]"]=Cn["[object Map]"]=Cn["[object Number]"]=Cn["[object Object]"]=Cn["[object RegExp]"]=Cn["[object Set]"]=Cn["[object String]"]=Cn["[object Symbol]"]=Cn["[object Uint8Array]"]=Cn["[object Uint8ClampedArray]"]=Cn["[object Uint16Array]"]=Cn["[object Uint32Array]"]=true,
-Cn["[object Error]"]=Cn["[object Function]"]=Cn["[object WeakMap]"]=false;var Un={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O",
-"\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss"},zn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},Mn={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&#96;":"`"},Ln={"function":true,object:true},$n={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"
-},Fn=parseFloat,Nn=parseInt,Dn=Ln[typeof exports]&&exports&&!exports.nodeType?exports:Z,Zn=Ln[typeof module]&&module&&!module.nodeType?module:Z,qn=Zn&&Zn.exports===Dn?Dn:Z,Pn=E(Dn&&Zn&&typeof global=="object"&&global),Tn=E(Ln[typeof self]&&self),Kn=E(Ln[typeof window]&&window),Gn=E(Ln[typeof this]&&this),Vn=Pn||Kn!==(Gn&&Gn.window)&&Kn||Tn||Gn||Function("return this")(),Jn=D();(Kn||Tn||{})._=Jn,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return Jn}):Dn&&Zn?(qn&&((Zn.exports=Jn)._=Jn),
-Dn._=Jn):Vn._=Jn}).call(this);
\ No newline at end of file
+return true}function i(n,t){for(var r=-1,e=n.length,u=0,o=[];++r<e;){var i=n[r];t(i,r,n)&&(o[u++]=i)}return o}function f(n,t){return!!n.length&&-1<d(n,t,0)}function c(n,t,r){for(var e=-1,u=n.length;++e<u;)if(r(t,n[e]))return true;return false}function a(n,t){for(var r=-1,e=n.length,u=Array(e);++r<e;)u[r]=t(n[r],r,n);return u}function l(n,t){for(var r=-1,e=t.length,u=n.length;++r<e;)n[u+r]=t[r];return n}function s(n,t,r,e){var u=-1,o=n.length;for(e&&o&&(r=n[++u]);++u<o;)r=t(r,n[u],u,n);return r}function h(n,t,r,e){
+var u=n.length;for(e&&u&&(r=n[--u]);u--;)r=t(r,n[u],u,n);return r}function p(n,t){for(var r=-1,e=n.length;++r<e;)if(t(n[r],r,n))return true;return false}function _(n,t,r){for(var e=-1,u=n.length;++e<u;){var o=n[e],i=t(o);if(null!=i&&(f===q?i===i:r(i,f)))var f=i,c=o}return c}function v(n,t,r,e){var u;return r(n,function(n,r,o){return t(n,r,o)?(u=e?r:n,false):void 0}),u}function g(n,t,r){for(var e=n.length,u=r?e:-1;r?u--:++u<e;)if(t(n[u],u,n))return u;return-1}function d(n,t,r){if(t!==t)return C(n,r);--r;for(var e=n.length;++r<e;)if(n[r]===t)return r;
+return-1}function y(n,t,r,e){--r;for(var u=n.length;++r<u;)if(e(n[r],t))return r;return-1}function b(n,t,r,e,u){return u(n,function(n,u,o){r=e?(e=false,n):t(r,n,u,o)}),r}function x(n,t){var r=n.length;for(n.sort(t);r--;)n[r]=n[r].c;return n}function j(n,t){for(var r,e=-1,u=n.length;++e<u;){var o=t(n[e]);o!==q&&(r=r===q?o:r+o)}return r}function m(n,t){for(var r=-1,e=Array(n);++r<n;)e[r]=t(r);return e}function w(n,t){return a(t,function(t){return[t,n[t]]})}function A(n){return function(t){return n(t)};
+}function O(n,t){return a(t,function(t){return n[t]})}function k(n,t){for(var r=-1,e=n.length;++r<e&&-1<d(t,n[r],0););return r}function E(n,t){for(var r=n.length;r--&&-1<d(t,n[r],0););return r}function I(n){return n&&n.Object===Object?n:null}function S(n,t){if(n!==t){var r=null===n,e=n===q,u=n===n,o=null===t,i=t===q,f=t===t;if(n>t&&!o||!u||r&&!i&&f||e&&f)return 1;if(t>n&&!r||!f||o&&!e&&u||i&&u)return-1}return 0}function R(n){return zn[n]}function W(n){return Mn[n]}function B(n){return"\\"+Fn[n]}function C(n,t,r){
+var e=n.length;for(t+=r?0:-1;r?t--:++t<e;){var u=n[t];if(u!==u)return t}return-1}function U(n){var t=false;if(null!=n&&typeof n.toString!="function")try{t=!!(n+"")}catch(r){}return t}function z(n,t){return n=typeof n=="number"||bn.test(n)?+n:-1,n>-1&&0==n%1&&(null==t?9007199254740991:t)>n}function M(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}function L(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function $(n,t){for(var r=-1,e=n.length,u=0,o=[];++r<e;){
+var i=n[r];i!==t&&"__lodash_placeholder__"!==i||(n[r]="__lodash_placeholder__",o[u++]=r)}return o}function F(n){var t=-1,r=Array(n.size);return n.forEach(function(n){r[++t]=n}),r}function N(n){if(!n||!In.test(n))return n.length;for(var t=En.lastIndex=0;En.test(n);)t++;return t}function D(n){return Ln[n]}function Z(I){function bn(n){if(we(n)&&!qo(n)&&!(n instanceof On)){if(n instanceof An)return n;if(lu.call(n,"__wrapped__"))return Pr(n)}return new An(n)}function wn(){}function An(n,t){this.__wrapped__=n,
+this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=q}function On(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function zn(){}function Mn(n){var t=-1,r=n?n.length:0;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Ln(n){var t=-1,r=n?n.length:0;for(this.__data__=new Mn;++t<r;)this.push(n[t])}function $n(n,t){var r=n.__data__;return $r(t)?(r=r.__data__,"__lodash_hash_undefined__"===(typeof t=="string"?r.string:r.hash)[t]):r.has(t);
+}function Fn(n){var t=-1,r=n?n.length:0;for(this.clear();++t<r;){var e=n[t];this.set(e[0],e[1])}}function Zn(n,t){var r=Tn(n,t);return 0>r?false:(r==n.length-1?n.pop():Iu.call(n,r,1),true)}function qn(n,t){var r=Tn(n,t);return 0>r?q:n[r][1]}function Tn(n,t){for(var r=n.length;r--;)if(pe(n[r][0],t))return r;return-1}function Kn(n,t,r){var e=Tn(n,t);0>e?n.push([t,r]):n[e][1]=r}function Gn(n,t,r,e){return n===q||pe(n,cu[r])&&!lu.call(e,r)?t:n}function Yn(n,t,r){(r===q||pe(n[t],r))&&(typeof t!="number"||r!==q||t in n)||(n[t]=r);
+}function Hn(n,t,r){var e=n[t];lu.call(n,t)&&pe(e,r)&&(r!==q||t in n)||(n[t]=r)}function Qn(n,t,r,e){return Qu(n,function(n,u,o){t(e,n,r(n),o)}),e}function Xn(n,t){return n&&tr(t,De(t),n)}function nt(n,t){for(var r=-1,e=null==n,u=t.length,o=Array(u);++r<u;)o[r]=e?q:$e(n,t[r]);return o}function tt(n){return de(n)?n:[]}function rt(n){return typeof n=="function"?n:Ye}function et(n){return qo(n)?n:qr(n)}function ut(n,t,r){return n===n&&(r!==q&&(n=n>r?r:n),t!==q&&(n=t>n?t:n)),n}function ot(n,t,r,e,o,i,f){
+var c;if(e&&(c=i?e(n,o,i,f):e(n)),c!==q)return c;if(!me(n))return n;if(o=qo(n)){if(c=Br(n),!t)return nr(n,c)}else{var a=Rr(n),l="[object Function]"==a||"[object GeneratorFunction]"==a;if(Po(n))return Yt(n,t);if("[object Object]"==a||"[object Arguments]"==a||l&&!i){if(U(n))return i?n:{};if(c=Cr(l?{}:n),!t)return c=Xn(c,n),r?er(n,c):c}else{if(!Un[a])return i?n:{};c=Ur(n,a,t)}}return f||(f=new Fn),(i=f.get(n))?i:(f.set(n,c),(o?u:_t)(n,function(u,o){Hn(c,o,ot(u,t,r,e,o,n,f))}),r&&!o?er(n,c):c)}function it(n){
+var t=De(n),r=t.length;return function(e){if(null==e)return!r;for(var u=r;u--;){var o=t[u],i=n[o],f=e[o];if(f===q&&!(o in Object(e))||!i(f))return false}return true}}function ft(n){return me(n)?Ou(n):{}}function ct(n,t,r){if(typeof n!="function")throw new iu("Expected a function");return Eu(function(){n.apply(q,r)},t)}function at(n,t,r,e){var u=-1,o=f,i=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=a(t,A(r))),e?(o=c,i=false):t.length>=200&&(o=$n,i=false,t=new Ln(t));n:for(;++u<l;){var p=n[u],_=r?r(p):p;if(i&&_===_){
+for(var v=h;v--;)if(t[v]===_)continue n;s.push(p)}else o(t,_,e)||s.push(p)}return s}function lt(n,t){var r=true;return Qu(n,function(n,e,u){return r=!!t(n,e,u)}),r}function st(n,t){var r=[];return Qu(n,function(n,e,u){t(n,e,u)&&r.push(n)}),r}function ht(n,t,r,e){e||(e=[]);for(var u=-1,o=n.length;++u<o;){var i=n[u];t>0&&de(i)&&(r||qo(i)||ve(i))?t>1?ht(i,t-1,r,e):l(e,i):r||(e[e.length]=i)}return e}function pt(n,t){null==n||no(n,t,Ze)}function _t(n,t){return n&&no(n,t,De)}function vt(n,t){return n&&to(n,t,De);
+}function gt(n,t){return i(t,function(t){return be(n[t])})}function dt(n,t){t=Lr(t,n)?[t+""]:et(t);for(var r=0,e=t.length;null!=n&&e>r;)n=n[t[r++]];return r&&r==e?n:q}function yt(n,t){return lu.call(n,t)||typeof n=="object"&&t in n&&null===mu(n)}function bt(n,t){return t in Object(n)}function xt(n,t,r){for(var e=r?c:f,u=n[0].length,o=n.length,i=o,l=Array(o),s=1/0,h=[];i--;){var p=n[i];i&&t&&(p=a(p,A(t))),s=zu(p.length,s),l[i]=r||!t&&(120>u||120>p.length)?q:new Ln(i&&p)}var p=n[0],_=-1,v=l[0];n:for(;++_<u&&s>h.length;){
+var g=p[_],d=t?t(g):g;if(v?!$n(v,d):!e(h,d,r)){for(i=o;--i;){var y=l[i];if(y?!$n(y,d):!e(n[i],d,r))continue n}v&&v.push(d),h.push(g)}}return h}function jt(n,t,r){var e={};return _t(n,function(n,u,o){t(e,r(n),u,o)}),e}function mt(n,t,e){return Lr(t,n)||(t=et(t),n=Zr(n,t),t=Vr(t)),t=null==n?n:n[t],null==t?q:r(t,n,e)}function wt(n,t,r,e,u){if(n===t)n=true;else if(null==n||null==t||!me(n)&&!we(t))n=n!==n&&t!==t;else n:{var o=qo(n),i=qo(t),f="[object Array]",c="[object Array]";o||(f=Rr(n),f="[object Arguments]"==f?"[object Object]":f),
+i||(c=Rr(t),c="[object Arguments]"==c?"[object Object]":c);var a="[object Object]"==f&&!U(n),i="[object Object]"==c&&!U(t);if((c=f==c)&&!a)u||(u=new Fn),n=o||Re(n)?wr(n,t,wt,r,e,u):Ar(n,t,f,wt,r,e,u);else{if(!(2&e)&&(o=a&&lu.call(n,"__wrapped__"),f=i&&lu.call(t,"__wrapped__"),o||f)){u||(u=new Fn),n=wt(o?n.value():n,f?t.value():t,r,e,u);break n}if(c)t:if(u||(u=new Fn),o=2&e,f=De(n),i=f.length,c=De(t).length,i==c||o){for(a=i;a--;){var l=f[a];if(!(o?l in t:yt(t,l))){n=false;break t}}if(c=u.get(n))n=c==t;else{
+c=true,u.set(n,t);for(var s=o;++a<i;){var l=f[a],h=n[l],p=t[l];if(r)var _=o?r(p,h,l,t,n,u):r(h,p,l,n,t,u);if(_===q?h!==p&&!wt(h,p,r,e,u):!_){c=false;break}s||(s="constructor"==l)}c&&!s&&(r=n.constructor,e=t.constructor,r!=e&&"constructor"in n&&"constructor"in t&&!(typeof r=="function"&&r instanceof r&&typeof e=="function"&&e instanceof e)&&(c=false)),u["delete"](n),n=c}}else n=false;else n=false}}return n}function At(n,t,r,e){var u=r.length,o=u,i=!e;if(null==n)return!o;for(n=Object(n);u--;){var f=r[u];if(i&&f[2]?f[1]!==n[f[0]]:!(f[0]in n))return false;
+}for(;++u<o;){var f=r[u],c=f[0],a=n[c],l=f[1];if(i&&f[2]){if(a===q&&!(c in n))return false}else if(f=new Fn,c=e?e(a,l,c,n,t,f):q,c===q?!wt(l,a,e,3,f):!c)return false}return true}function Ot(n){var t=typeof n;return"function"==t?n:null==n?Ye:"object"==t?qo(n)?St(n[0],n[1]):It(n):nu(n)}function kt(n){n=null==n?n:Object(n);var t,r=[];for(t in n)r.push(t);return r}function Et(n,t){var r=-1,e=ge(n)?Array(n.length):[];return Qu(n,function(n,u,o){e[++r]=t(n,u,o)}),e}function It(n){var t=Er(n);if(1==t.length&&t[0][2]){
+var r=t[0][0],e=t[0][1];return function(n){return null==n?false:n[r]===e&&(e!==q||r in Object(n))}}return function(r){return r===n||At(r,n,t)}}function St(n,t){return function(r){var e=$e(r,n);return e===q&&e===t?Ne(r,n):wt(t,e,q,3)}}function Rt(n,t,r,e,o){if(n!==t){var i=qo(t)||Re(t)?q:Ze(t);u(i||t,function(u,f){if(i&&(f=u,u=t[f]),me(u)){o||(o=new Fn);var c=f,a=o,l=n[c],s=t[c],h=a.get(s);if(h)Yn(n,c,h);else{var h=e?e(l,s,c+"",n,t,a):q,p=h===q;p&&(h=s,qo(s)||Re(s)?qo(l)?h=l:de(l)?h=nr(l):(p=false,h=ot(s,!e)):ke(s)||ve(s)?ve(l)?h=Me(l):!me(l)||r&&be(l)?(p=false,
+h=ot(s,!e)):h=l:p=false),a.set(s,h),p&&Rt(h,s,r,e,a),a["delete"](s),Yn(n,c,h)}}else c=e?e(n[f],u,f+"",n,t,o):q,c===q&&(c=u),Yn(n,f,c)})}}function Wt(n,t,r){var e=-1;return t=a(t.length?t:Array(1),kr()),n=Et(n,function(n){return{a:a(t,function(t){return t(n)}),b:++e,c:n}}),x(n,function(n,t){var e;n:{e=-1;for(var u=n.a,o=t.a,i=u.length,f=r.length;++e<i;){var c=S(u[e],o[e]);if(c){e=f>e?c*("desc"==r[e]?-1:1):c;break n}}e=n.b-t.b}return e})}function Bt(n,t){return n=Object(n),s(t,function(t,r){return r in n&&(t[r]=n[r]),
+t},{})}function Ct(n,t){var r={};return pt(n,function(n,e){t(n,e)&&(r[e]=n)}),r}function Ut(n){return function(t){return null==t?q:t[n]}}function zt(n){return function(t){return dt(t,n)}}function Mt(n,t,r,e){var u=e?y:d,o=-1,i=t.length,f=n;for(r&&(f=a(n,A(r)));++o<i;)for(var c=0,l=t[o],l=r?r(l):l;-1<(c=u(f,l,c,e));)f!==n&&Iu.call(f,c,1),Iu.call(n,c,1);return n}function Lt(n,t){for(var r=n?t.length:0,e=r-1;r--;){var u=t[r];if(e==r||u!=o){var o=u;if(z(u))Iu.call(n,u,1);else if(Lr(u,n))delete n[u];else{
+var u=et(u),i=Zr(n,u);null!=i&&delete i[Vr(u)]}}}}function $t(n,t){return n+Ru(Lu()*(t-n+1))}function Ft(n,t,r,e){t=Lr(t,n)?[t+""]:et(t);for(var u=-1,o=t.length,i=o-1,f=n;null!=f&&++u<o;){var c=t[u];if(me(f)){var a=r;if(u!=i){var l=f[c],a=e?e(l,c,f):q;a===q&&(a=null==l?z(t[u+1])?[]:{}:l)}Hn(f,c,a)}f=f[c]}return n}function Nt(n,t,r){var e=-1,u=n.length;for(0>t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Array(u);++e<u;)r[e]=n[e+t];return r}function Dt(n,t){var r;return Qu(n,function(n,e,u){
+return r=t(n,e,u),!r}),!!r}function Zt(n,t,r){var e=0,u=n?n.length:e;if(typeof t=="number"&&t===t&&2147483647>=u){for(;u>e;){var o=e+u>>>1,i=n[o];(r?t>=i:t>i)&&null!==i?e=o+1:u=o}return u}return qt(n,t,Ye,r)}function qt(n,t,r,e){t=r(t);for(var u=0,o=n?n.length:0,i=t!==t,f=null===t,c=t===q;o>u;){var a=Ru((u+o)/2),l=r(n[a]),s=l!==q,h=l===l;(i?h||e:f?h&&s&&(e||null!=l):c?h&&(e||s):null==l?0:e?t>=l:t>l)?u=a+1:o=a}return zu(o,4294967294)}function Pt(n,t){for(var r=0,e=n.length,u=n[0],o=t?t(u):u,i=o,f=1,c=[u];++r<e;)u=n[r],
+o=t?t(u):u,pe(o,i)||(i=o,c[f++]=u);return c}function Tt(n,t,r){var e=-1,u=f,o=n.length,i=true,a=[],l=a;if(r)i=false,u=c;else if(o<200)l=t?[]:a;else{if(u=t?null:eo(n))return F(u);i=false,u=$n,l=new Ln}n:for(;++e<o;){var s=n[e],h=t?t(s):s;if(i&&h===h){for(var p=l.length;p--;)if(l[p]===h)continue n;t&&l.push(h),a.push(s)}else u(l,h,r)||(l!==a&&l.push(h),a.push(s))}return a}function Kt(n,t,r,e){for(var u=n.length,o=e?u:-1;(e?o--:++o<u)&&t(n[o],o,n););return r?Nt(n,e?0:o,e?o+1:u):Nt(n,e?o+1:0,e?u:o)}function Gt(n,t){
+var r=n;return r instanceof On&&(r=r.value()),s(t,function(n,t){return t.func.apply(t.thisArg,l([n],t.args))},r)}function Vt(n,t,r){for(var e=-1,u=n.length;++e<u;)var o=o?l(at(o,n[e],t,r),at(n[e],o,t,r)):n[e];return o&&o.length?Tt(o,t,r):[]}function Jt(n,t,r){for(var e=-1,u=n.length,o=t.length,i={};++e<u;)r(i,n[e],o>e?t[e]:q);return i}function Yt(n,t){if(t)return n.slice();var r=new n.constructor(n.length);return n.copy(r),r}function Ht(n){var t=new n.constructor(n.byteLength);return new bu(t).set(new bu(n)),
+t}function Qt(n,t,r,e){var u=-1,o=n.length,i=r.length,f=-1,c=t.length,a=Uu(o-i,0),l=Array(c+a);for(e=!e;++f<c;)l[f]=t[f];for(;++u<i;)(e||o>u)&&(l[r[u]]=n[u]);for(;a--;)l[f++]=n[u++];return l}function Xt(n,t,r,e){var u=-1,o=n.length,i=-1,f=r.length,c=-1,a=t.length,l=Uu(o-f,0),s=Array(l+a);for(e=!e;++u<l;)s[u]=n[u];for(l=u;++c<a;)s[l+c]=t[c];for(;++i<f;)(e||o>u)&&(s[l+r[i]]=n[u++]);return s}function nr(n,t){var r=-1,e=n.length;for(t||(t=Array(e));++r<e;)t[r]=n[r];return t}function tr(n,t,r){return rr(n,t,r);
+}function rr(n,t,r,e){r||(r={});for(var u=-1,o=t.length;++u<o;){var i=t[u],f=e?e(r[i],n[i],i,r,n):n[i];Hn(r,i,f)}return r}function er(n,t){return tr(n,io(n),t)}function ur(n,t){return function(r,u){var o=qo(r)?e:Qn,i=t?t():{};return o(r,n,kr(u),i)}}function or(n){return he(function(t,r){var e=-1,u=r.length,o=u>1?r[u-1]:q,i=u>2?r[2]:q,o=typeof o=="function"?(u--,o):q;for(i&&Mr(r[0],r[1],i)&&(o=3>u?q:o,u=1),t=Object(t);++e<u;)(i=r[e])&&n(t,i,e,o);return t})}function ir(n,t){return function(r,e){if(null==r)return r;
+if(!ge(r))return n(r,e);for(var u=r.length,o=t?u:-1,i=Object(r);(t?o--:++o<u)&&false!==e(i[o],o,i););return r}}function fr(n){return function(t,r,e){var u=-1,o=Object(t);e=e(t);for(var i=e.length;i--;){var f=e[n?i:++u];if(false===r(o[f],f,o))break}return t}}function cr(n,t,r){function e(){return(this&&this!==Vn&&this instanceof e?o:n).apply(u?r:this,arguments)}var u=1&t,o=sr(n);return e}function ar(n){return function(t){t=Le(t);var r=In.test(t)?t.match(En):q,e=r?r[0]:t.charAt(0);return t=r?r.slice(1).join(""):t.slice(1),
+e[n]()+t}}function lr(n){return function(t){return s(Ve(Ke(t)),n,"")}}function sr(n){return function(){var t=arguments;switch(t.length){case 0:return new n;case 1:return new n(t[0]);case 2:return new n(t[0],t[1]);case 3:return new n(t[0],t[1],t[2]);case 4:return new n(t[0],t[1],t[2],t[3]);case 5:return new n(t[0],t[1],t[2],t[3],t[4]);case 6:return new n(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new n(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=ft(n.prototype),t=n.apply(r,t);return me(t)?t:r}}function hr(n,t,e){
+function u(){for(var i=arguments.length,f=Array(i),c=i,a=Sr(u);c--;)f[c]=arguments[c];return c=3>i&&f[0]!==a&&f[i-1]!==a?[]:$(f,a),i-=c.length,e>i?xr(n,t,_r,u.placeholder,q,f,c,q,q,e-i):r(this&&this!==Vn&&this instanceof u?o:n,this,f)}var o=sr(n);return u}function pr(n){return he(function(t){t=ht(t,1);var r=t.length,e=r,u=An.prototype.thru;for(n&&t.reverse();e--;){var o=t[e];if(typeof o!="function")throw new iu("Expected a function");if(u&&!i&&"wrapper"==Or(o))var i=new An([],true)}for(e=i?e:r;++e<r;)var o=t[e],u=Or(o),f="wrapper"==u?uo(o):q,i=f&&Fr(f[0])&&424==f[1]&&!f[4].length&&1==f[9]?i[Or(f[0])].apply(i,f[3]):1==o.length&&Fr(o)?i[u]():i.thru(o);
+return function(){var n=arguments,e=n[0];if(i&&1==n.length&&qo(e)&&e.length>=200)return i.plant(e).value();for(var u=0,n=r?t[u].apply(this,n):e;++u<r;)n=t[u].call(this,n);return n}})}function _r(n,t,r,e,u,o,i,f,c,a){function l(){for(var d=arguments.length,y=d,b=Array(d);y--;)b[y]=arguments[y];if(_){var x,j=Sr(l),y=b.length;for(x=0;y--;)b[y]===j&&x++}if(e&&(b=Qt(b,e,u,_)),o&&(b=Xt(b,o,i,_)),d-=x,_&&a>d)return j=$(b,j),xr(n,t,_r,l.placeholder,r,b,j,f,c,a-d);if(j=h?r:this,y=p?j[n]:n,d=b.length,f){x=b.length;
+for(var m=zu(f.length,x),w=nr(b);m--;){var A=f[m];b[m]=z(A,x)?w[A]:q}}else v&&d>1&&b.reverse();return s&&d>c&&(b.length=c),this&&this!==Vn&&this instanceof l&&(y=g||sr(y)),y.apply(j,b)}var s=128&t,h=1&t,p=2&t,_=24&t,v=512&t,g=p?q:sr(n);return l}function vr(n,t){return function(r,e){return jt(r,n,t(e))}}function gr(n){return he(function(t){return t=a(ht(t,1),kr()),he(function(e){var u=this;return n(t,function(n){return r(n,u,e)})})})}function dr(n,t,r){return t=Ce(t),n=N(n),t&&t>n?(t-=n,r=r===q?" ":r+"",
+n=Ge(r,Su(t/N(r))),In.test(r)?n.match(En).slice(0,t).join(""):n.slice(0,t)):""}function yr(n,t,e,u){function o(){for(var t=-1,c=arguments.length,a=-1,l=u.length,s=Array(l+c),h=this&&this!==Vn&&this instanceof o?f:n;++a<l;)s[a]=u[a];for(;c--;)s[a++]=arguments[++t];return r(h,i?e:this,s)}var i=1&t,f=sr(n);return o}function br(n){return function(t,r,e){e&&typeof e!="number"&&Mr(t,r,e)&&(r=e=q),t=ze(t),t=t===t?t:0,r===q?(r=t,t=0):r=ze(r)||0,e=e===q?r>t?1:-1:ze(e)||0;var u=-1;r=Uu(Su((r-t)/(e||1)),0);for(var o=Array(r);r--;)o[n?r:++u]=t,
+t+=e;return o}}function xr(n,t,r,e,u,o,i,f,c,a){var l=8&t;f=f?nr(f):q;var s=l?i:q;i=l?q:i;var h=l?o:q;return o=l?q:o,t=(t|(l?32:64))&~(l?64:32),4&t||(t&=-4),t=[n,t,u,h,s,o,i,f,c,a],r=r.apply(q,t),Fr(n)&&fo(r,t),r.placeholder=e,r}function jr(n){var t=uu[n];return function(n,r){if(n=ze(n),r=Ce(r)){var e=(Le(n)+"e").split("e"),e=t(e[0]+"e"+(+e[1]+r)),e=(Le(e)+"e").split("e");return+(e[0]+"e"+(+e[1]-r))}return t(n)}}function mr(n,t,r,e,u,o,i,f){var c=2&t;if(!c&&typeof n!="function")throw new iu("Expected a function");
+var a=e?e.length:0;if(a||(t&=-97,e=u=q),i=i===q?i:Uu(Ce(i),0),f=f===q?f:Ce(f),a-=u?u.length:0,64&t){var l=e,s=u;e=u=q}var h=c?q:uo(n);return o=[n,t,r,e,u,l,s,o,i,f],h&&(r=o[1],n=h[1],t=r|n,e=128==n&&8==r||128==n&&256==r&&h[8]>=o[7].length||384==n&&h[8]>=h[7].length&&8==r,131>t||e)&&(1&n&&(o[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=o[3],o[3]=e?Qt(e,r,h[4]):nr(r),o[4]=e?$(o[3],"__lodash_placeholder__"):nr(h[4])),(r=h[5])&&(e=o[5],o[5]=e?Xt(e,r,h[6]):nr(r),o[6]=e?$(o[5],"__lodash_placeholder__"):nr(h[6])),(r=h[7])&&(o[7]=nr(r)),
+128&n&&(o[8]=null==o[8]?h[8]:zu(o[8],h[8])),null==o[9]&&(o[9]=h[9]),o[0]=h[0],o[1]=t),n=o[0],t=o[1],r=o[2],e=o[3],u=o[4],f=o[9]=null==o[9]?c?0:n.length:Uu(o[9]-a,0),!f&&24&t&&(t&=-25),(h?ro:fo)(t&&1!=t?8==t||16==t?hr(n,t,f):32!=t&&33!=t||u.length?_r.apply(q,o):yr(n,t,r,e):cr(n,t,r),o)}function wr(n,t,r,e,u,o){var i=-1,f=2&u,c=1&u,a=n.length,l=t.length;if(!(a==l||f&&l>a))return false;if(l=o.get(n))return l==t;for(l=true,o.set(n,t);++i<a;){var s=n[i],h=t[i];if(e)var _=f?e(h,s,i,t,n,o):e(s,h,i,n,t,o);if(_!==q){
+if(_)continue;l=false;break}if(c){if(!p(t,function(n){return s===n||r(s,n,e,u,o)})){l=false;break}}else if(s!==h&&!r(s,h,e,u,o)){l=false;break}}return o["delete"](n),l}function Ar(n,t,r,e,u,o,i){switch(r){case"[object ArrayBuffer]":if(n.byteLength!=t.byteLength||!e(new bu(n),new bu(t)))break;return true;case"[object Boolean]":case"[object Date]":return+n==+t;case"[object Error]":return n.name==t.name&&n.message==t.message;case"[object Number]":return n!=+n?t!=+t:n==+t;case"[object RegExp]":case"[object String]":
+return n==t+"";case"[object Map]":var f=L;case"[object Set]":if(f||(f=F),n.size!=t.size&&!(2&o))break;return(r=i.get(n))?r==t:wr(f(n),f(t),e,u,1|o,i.set(n,t));case"[object Symbol]":if(Yu)return Yu.call(n)==Yu.call(t)}return false}function Or(n){for(var t=n.name+"",r=Tu[t],e=lu.call(Tu,t)?r.length:0;e--;){var u=r[e],o=u.func;if(null==o||o==n)return u.name}return t}function kr(){var n=bn.iteratee||He,n=n===He?Ot:n;return arguments.length?n(arguments[0],arguments[1]):n}function Er(n){n=qe(n);for(var t=n.length;t--;){
+var r=n[t][1];n[t][2]=r===r&&!me(r)}return n}function Ir(n,t){var r=n[t];return Ae(r)?r:q}function Sr(n){return(lu.call(bn,"placeholder")?bn:n).placeholder}function Rr(n){return pu.call(n)}function Wr(n,t,r){if(null==n)return false;var e=r(n,t);return e||Lr(t)||(t=et(t),n=Zr(n,t),null!=n&&(t=Vr(t),e=r(n,t))),r=n?n.length:q,e||!!r&&je(r)&&z(t,r)&&(qo(n)||Ie(n)||ve(n))}function Br(n){var t=n.length,r=n.constructor(t);return t&&"string"==typeof n[0]&&lu.call(n,"index")&&(r.index=n.index,r.input=n.input),
+r}function Cr(n){return typeof n.constructor!="function"||Nr(n)?{}:ft(mu(n))}function Ur(r,e,u){var o=r.constructor;switch(e){case"[object ArrayBuffer]":return Ht(r);case"[object Boolean]":case"[object Date]":return new o(+r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return e=u?Ht(r.buffer):r.buffer,
+new r.constructor(e,r.byteOffset,r.length);case"[object Map]":return s(L(r),n,new r.constructor);case"[object Number]":case"[object String]":return new o(r);case"[object RegExp]":return e=new r.constructor(r.source,pn.exec(r)),e.lastIndex=r.lastIndex,e;case"[object Set]":return s(F(r),t,new r.constructor);case"[object Symbol]":return Yu?Object(Yu.call(r)):{}}}function zr(n){var t=n?n.length:q;return je(t)&&(qo(n)||Ie(n)||ve(n))?m(t,String):null}function Mr(n,t,r){if(!me(r))return false;var e=typeof t;
+return("number"==e?ge(r)&&z(t,r.length):"string"==e&&t in r)?pe(r[t],n):false}function Lr(n,t){return typeof n=="number"?true:!qo(n)&&(en.test(n)||!rn.test(n)||null!=t&&n in Object(t))}function $r(n){var t=typeof n;return"number"==t||"boolean"==t||"string"==t&&"__proto__"!=n||null==n}function Fr(n){var t=Or(n),r=bn[t];return typeof r=="function"&&t in On.prototype?n===r?true:(t=uo(r),!!t&&n===t[0]):false}function Nr(n){var t=n&&n.constructor;return n===(typeof t=="function"&&t.prototype||cu)}function Dr(n,t,r,e,u,o){
+return me(n)&&me(t)&&Rt(n,t,q,Dr,o.set(t,n)),n}function Zr(n,t){return 1==t.length?n:$e(n,Nt(t,0,-1))}function qr(n){var t=[];return Le(n).replace(un,function(n,r,e,u){t.push(e?u.replace(sn,"$1"):r||n)}),t}function Pr(n){if(n instanceof On)return n.clone();var t=new An(n.__wrapped__,n.__chain__);return t.__actions__=nr(n.__actions__),t.__index__=n.__index__,t.__values__=n.__values__,t}function Tr(n,t,r){var e=n?n.length:0;return e?(t=r||t===q?1:Ce(t),Nt(n,0>t?0:t,e)):[]}function Kr(n,t,r){var e=n?n.length:0;
+return e?(t=r||t===q?1:Ce(t),t=e-t,Nt(n,0,0>t?0:t)):[]}function Gr(n){return n?n[0]:q}function Vr(n){var t=n?n.length:0;return t?n[t-1]:q}function Jr(n,t){return n&&n.length&&t&&t.length?Mt(n,t):n}function Yr(n){return n?$u.call(n):n}function Hr(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){return de(n)?(t=Uu(n.length,t),true):void 0}),m(t,function(t){return a(n,Ut(t))})}function Qr(n,t){if(!n||!n.length)return[];var e=Hr(n);return null==t?e:a(e,function(n){return r(t,q,n)})}function Xr(n){
+return n=bn(n),n.__chain__=true,n}function ne(n,t){return t(n)}function te(){return this}function re(n,t){return typeof t=="function"&&qo(n)?u(n,t):Qu(n,rt(t))}function ee(n,t){var r;if(typeof t=="function"&&qo(n)){for(r=n.length;r--&&false!==t(n[r],r,n););r=n}else r=Xu(n,rt(t));return r}function ue(n,t){return(qo(n)?a:Et)(n,kr(t,3))}function oe(n,t){var r=-1,e=Be(n),u=e.length,o=u-1;for(t=ut(Ce(t),0,u);++r<t;){var u=$t(r,o),i=e[u];e[u]=e[r],e[r]=i}return e.length=t,e}function ie(n,t,r){return t=r?q:t,
+t=n&&null==t?n.length:t,mr(n,128,q,q,q,q,t)}function fe(n,t){var r;if(typeof t!="function")throw new iu("Expected a function");return n=Ce(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=q),r}}function ce(n,t,r){return t=r?q:t,n=mr(n,8,q,q,q,q,q,t),n.placeholder=ce.placeholder,n}function ae(n,t,r){return t=r?q:t,n=mr(n,16,q,q,q,q,q,t),n.placeholder=ae.placeholder,n}function le(n,t,r){function e(){p&&xu(p),a&&xu(a),v=0,c=a=h=p=_=q}function u(t,r){r&&xu(r),a=p=_=q,t&&(v=Uo(),l=n.apply(h,c),
+p||a||(c=h=q))}function o(){var n=t-(Uo()-s);0>=n||n>t?u(_,a):p=Eu(o,n)}function i(){u(y,p)}function f(){if(c=arguments,s=Uo(),h=this,_=y&&(p||!g),false===d)var r=g&&!p;else{v||a||g||(v=s);var e=d-(s-v),u=(0>=e||e>d)&&(g||a);u?(a&&(a=xu(a)),v=s,l=n.apply(h,c)):a||(a=Eu(i,e))}return u&&p?p=xu(p):p||t===d||(p=Eu(o,t)),r&&(u=true,l=n.apply(h,c)),!u||p||a||(c=h=q),l}var c,a,l,s,h,p,_,v=0,g=false,d=false,y=true;if(typeof n!="function")throw new iu("Expected a function");return t=ze(t)||0,me(r)&&(g=!!r.leading,d="maxWait"in r&&Uu(ze(r.maxWait)||0,t),
+y="trailing"in r?!!r.trailing:y),f.cancel=e,f.flush=function(){return(p&&_||a&&y)&&(l=n.apply(h,c)),e(),l},f}function se(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],o=r.cache;return o.has(u)?o.get(u):(e=n.apply(this,e),r.cache=o.set(u,e),e)}if(typeof n!="function"||t&&typeof t!="function")throw new iu("Expected a function");return r.cache=new se.Cache,r}function he(n,t){if(typeof n!="function")throw new iu("Expected a function");return t=Uu(t===q?n.length-1:Ce(t),0),function(){for(var e=arguments,u=-1,o=Uu(e.length-t,0),i=Array(o);++u<o;)i[u]=e[t+u];
+switch(t){case 0:return n.call(this,i);case 1:return n.call(this,e[0],i);case 2:return n.call(this,e[0],e[1],i)}for(o=Array(t+1),u=-1;++u<t;)o[u]=e[u];return o[t]=i,r(n,this,o)}}function pe(n,t){return n===t||n!==n&&t!==t}function _e(n,t){return n>t}function ve(n){return de(n)&&lu.call(n,"callee")&&(!ku.call(n,"callee")||"[object Arguments]"==pu.call(n))}function ge(n){return null!=n&&je(oo(n))&&!be(n)}function de(n){return we(n)&&ge(n)}function ye(n){return we(n)?"[object Error]"==pu.call(n)||typeof n.message=="string"&&typeof n.name=="string":false;
+}function be(n){return n=me(n)?pu.call(n):"","[object Function]"==n||"[object GeneratorFunction]"==n}function xe(n){return typeof n=="number"&&n==Ce(n)}function je(n){return typeof n=="number"&&n>-1&&0==n%1&&9007199254740991>=n}function me(n){var t=typeof n;return!!n&&("object"==t||"function"==t)}function we(n){return!!n&&typeof n=="object"}function Ae(n){return null==n?false:be(n)?vu.test(au.call(n)):we(n)&&(U(n)?vu:dn).test(n)}function Oe(n){return typeof n=="number"||we(n)&&"[object Number]"==pu.call(n);
+}function ke(n){return!we(n)||"[object Object]"!=pu.call(n)||U(n)?false:(n=mu(n),null===n?true:(n=n.constructor,typeof n=="function"&&n instanceof n&&au.call(n)==hu))}function Ee(n){return me(n)&&"[object RegExp]"==pu.call(n)}function Ie(n){return typeof n=="string"||!qo(n)&&we(n)&&"[object String]"==pu.call(n)}function Se(n){return typeof n=="symbol"||we(n)&&"[object Symbol]"==pu.call(n)}function Re(n){return we(n)&&je(n.length)&&!!Cn[pu.call(n)]}function We(n,t){return t>n}function Be(n){if(!n)return[];
+if(ge(n))return Ie(n)?n.match(En):nr(n);if(Au&&n[Au])return M(n[Au]());var t=Rr(n);return("[object Map]"==t?L:"[object Set]"==t?F:Pe)(n)}function Ce(n){if(!n)return 0===n?n:0;if(n=ze(n),n===P||n===-P)return 1.7976931348623157e308*(0>n?-1:1);var t=n%1;return n===n?t?n-t:n:0}function Ue(n){return n?ut(Ce(n),0,4294967295):0}function ze(n){if(me(n)&&(n=be(n.valueOf)?n.valueOf():n,n=me(n)?n+"":n),typeof n!="string")return 0===n?n:+n;n=n.replace(cn,"");var t=gn.test(n);return t||yn.test(n)?Dn(n.slice(2),t?2:8):vn.test(n)?T:+n;
+}function Me(n){return tr(n,Ze(n))}function Le(n){if(typeof n=="string")return n;if(null==n)return"";if(Se(n))return Hu?Hu.call(n):"";var t=n+"";return"0"==t&&1/n==-P?"-0":t}function $e(n,t,r){return n=null==n?q:dt(n,t),n===q?r:n}function Fe(n,t){return Wr(n,t,yt)}function Ne(n,t){return Wr(n,t,bt)}function De(n){var t=Nr(n);if(!t&&!ge(n))return Cu(Object(n));var r,e=zr(n),u=!!e,e=e||[],o=e.length;for(r in n)!yt(n,r)||u&&("length"==r||z(r,o))||t&&"constructor"==r||e.push(r);return e}function Ze(n){
+for(var t=-1,r=Nr(n),e=kt(n),u=e.length,o=zr(n),i=!!o,o=o||[],f=o.length;++t<u;){var c=e[t];i&&("length"==c||z(c,f))||"constructor"==c&&(r||!lu.call(n,c))||o.push(c)}return o}function qe(n){return w(n,De(n))}function Pe(n){return n?O(n,De(n)):[]}function Te(n){return ai(Le(n).toLowerCase())}function Ke(n){return(n=Le(n))&&n.replace(xn,R).replace(kn,"")}function Ge(n,t){n=Le(n),t=Ce(t);var r="";if(!n||1>t||t>9007199254740991)return r;do t%2&&(r+=n),t=Ru(t/2),n+=n;while(t);return r}function Ve(n,t,r){
+return n=Le(n),t=r?q:t,t===q&&(t=Wn.test(n)?Rn:Sn),n.match(t)||[]}function Je(n){return function(){return n}}function Ye(n){return n}function He(n){return Ot(typeof n=="function"?n:ot(n,true))}function Qe(n,t,r){var e=De(t),o=gt(t,e);null!=r||me(t)&&(o.length||!e.length)||(r=t,t=n,n=this,o=gt(t,De(t)));var i=me(r)&&"chain"in r?r.chain:true,f=be(n);return u(o,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(i||t){var r=n(this.__wrapped__);return(r.__actions__=nr(this.__actions__)).push({
+func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,l([this.value()],arguments))})}),n}function Xe(){}function nu(n){return Lr(n)?Ut(n):zt(n)}function tu(n){return n&&n.length?j(n,Ye):0}I=I?Jn.defaults({},I,Jn.pick(Vn,Bn)):Vn;var ru=I.Date,eu=I.Error,uu=I.Math,ou=I.RegExp,iu=I.TypeError,fu=I.Array.prototype,cu=I.Object.prototype,au=I.Function.prototype.toString,lu=cu.hasOwnProperty,su=0,hu=au.call(Object),pu=cu.toString,_u=Vn._,vu=ou("^"+au.call(lu).replace(on,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),gu=Pn?I.Buffer:q,du=I.Reflect,yu=I.Symbol,bu=I.Uint8Array,xu=I.clearTimeout,ju=du?du.f:q,mu=Object.getPrototypeOf,wu=Object.getOwnPropertySymbols,Au=typeof(Au=yu&&yu.iterator)=="symbol"?Au:q,Ou=Object.create,ku=cu.propertyIsEnumerable,Eu=I.setTimeout,Iu=fu.splice,Su=uu.ceil,Ru=uu.floor,Wu=I.isFinite,Bu=fu.join,Cu=Object.keys,Uu=uu.max,zu=uu.min,Mu=I.parseInt,Lu=uu.random,$u=fu.reverse,Fu=Ir(I,"Map"),Nu=Ir(I,"Set"),Du=Ir(I,"WeakMap"),Zu=Ir(Object,"create"),qu=Du&&new Du,Pu=!ku.call({
+valueOf:1},"valueOf"),Tu={},Ku=Fu?au.call(Fu):"",Gu=Nu?au.call(Nu):"",Vu=Du?au.call(Du):"",Ju=yu?yu.prototype:q,Yu=Ju?Ju.valueOf:q,Hu=Ju?Ju.toString:q;bn.templateSettings={escape:X,evaluate:nn,interpolate:tn,variable:"",imports:{_:bn}};var Qu=ir(_t),Xu=ir(vt,true),no=fr(),to=fr(true);ju&&!ku.call({valueOf:1},"valueOf")&&(kt=function(n){return M(ju(n))});var ro=qu?function(n,t){return qu.set(n,t),n}:Ye,eo=Nu&&2===new Nu([1,2]).size?function(n){return new Nu(n)}:Xe,uo=qu?function(n){return qu.get(n)}:Xe,oo=Ut("length"),io=wu||function(){
+return[]};(Fu&&"[object Map]"!=Rr(new Fu)||Nu&&"[object Set]"!=Rr(new Nu)||Du&&"[object WeakMap]"!=Rr(new Du))&&(Rr=function(n){var t=pu.call(n);if(n="[object Object]"==t?n.constructor:null,n=typeof n=="function"?au.call(n):"")switch(n){case Ku:return"[object Map]";case Gu:return"[object Set]";case Vu:return"[object WeakMap]"}return t});var fo=function(){var n=0,t=0;return function(r,e){var u=Uo(),o=16-(u-t);if(t=u,o>0){if(150<=++n)return r}else n=0;return ro(r,e)}}(),co=he(function(n,t){qo(n)||(n=null==n?[]:[Object(n)]),
+t=ht(t,1);for(var r=n,e=t,u=-1,o=r.length,i=-1,f=e.length,c=Array(o+f);++u<o;)c[u]=r[u];for(;++i<f;)c[u++]=e[i];return c}),ao=he(function(n,t){return de(n)?at(n,ht(t,1,true)):[]}),lo=he(function(n,t){var r=Vr(t);return de(r)&&(r=q),de(n)?at(n,ht(t,1,true),kr(r)):[]}),so=he(function(n,t){var r=Vr(t);return de(r)&&(r=q),de(n)?at(n,ht(t,1,true),q,r):[]}),ho=he(function(n){var t=a(n,tt);return t.length&&t[0]===n[0]?xt(t):[]}),po=he(function(n){var t=Vr(n),r=a(n,tt);return t===Vr(r)?t=q:r.pop(),r.length&&r[0]===n[0]?xt(r,kr(t)):[];
+}),_o=he(function(n){var t=Vr(n),r=a(n,tt);return t===Vr(r)?t=q:r.pop(),r.length&&r[0]===n[0]?xt(r,q,t):[]}),vo=he(Jr),go=he(function(n,t){t=a(ht(t,1),String);var r=nt(n,t);return Lt(n,t.sort(S)),r}),yo=he(function(n){return Tt(ht(n,1,true))}),bo=he(function(n){var t=Vr(n);return de(t)&&(t=q),Tt(ht(n,1,true),kr(t))}),xo=he(function(n){var t=Vr(n);return de(t)&&(t=q),Tt(ht(n,1,true),q,t)}),jo=he(function(n,t){return de(n)?at(n,t):[]}),mo=he(function(n){return Vt(i(n,de))}),wo=he(function(n){var t=Vr(n);return de(t)&&(t=q),
+Vt(i(n,de),kr(t))}),Ao=he(function(n){var t=Vr(n);return de(t)&&(t=q),Vt(i(n,de),q,t)}),Oo=he(Hr),ko=he(function(n){var t=n.length,t=t>1?n[t-1]:q,t=typeof t=="function"?(n.pop(),t):q;return Qr(n,t)}),Eo=he(function(n){function t(t){return nt(t,n)}n=ht(n,1);var r=n.length,e=r?n[0]:0,u=this.__wrapped__;return 1>=r&&!this.__actions__.length&&u instanceof On&&z(e)?(u=u.slice(e,+e+(r?1:0)),u.__actions__.push({func:ne,args:[t],thisArg:q}),new An(u,this.__chain__).thru(function(n){return r&&!n.length&&n.push(q),
+n})):this.thru(t)}),Io=ur(function(n,t,r){lu.call(n,r)?++n[r]:n[r]=1}),So=ur(function(n,t,r){lu.call(n,r)?n[r].push(t):n[r]=[t]}),Ro=he(function(n,t,e){var u=-1,o=typeof t=="function",i=Lr(t),f=ge(n)?Array(n.length):[];return Qu(n,function(n){var c=o?t:i&&null!=n?n[t]:q;f[++u]=c?r(c,n,e):mt(n,t,e)}),f}),Wo=ur(function(n,t,r){n[r]=t}),Bo=ur(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),Co=he(function(n,t){if(null==n)return[];var r=t.length;return r>1&&Mr(n,t[0],t[1])?t=[]:r>2&&Mr(t[0],t[1],t[2])&&(t.length=1),
+Wt(n,ht(t,1),[])}),Uo=ru.now,zo=he(function(n,t,r){var e=1;if(r.length)var u=$(r,Sr(zo)),e=32|e;return mr(n,e,t,r,u)}),Mo=he(function(n,t,r){var e=3;if(r.length)var u=$(r,Sr(Mo)),e=32|e;return mr(t,e,n,r,u)}),Lo=he(function(n,t){return ct(n,1,t)}),$o=he(function(n,t,r){return ct(n,ze(t)||0,r)}),Fo=he(function(n,t){t=a(ht(t,1),kr());var e=t.length;return he(function(u){for(var o=-1,i=zu(u.length,e);++o<i;)u[o]=t[o].call(this,u[o]);return r(n,this,u)})}),No=he(function(n,t){var r=$(t,Sr(No));return mr(n,32,q,t,r);
+}),Do=he(function(n,t){var r=$(t,Sr(Do));return mr(n,64,q,t,r)}),Zo=he(function(n,t){return mr(n,256,q,q,q,ht(t,1))}),qo=Array.isArray,Po=gu?function(n){return n instanceof gu}:Je(false),To=or(function(n,t){if(Pu||Nr(t)||ge(t))tr(t,De(t),n);else for(var r in t)lu.call(t,r)&&Hn(n,r,t[r])}),Ko=or(function(n,t){if(Pu||Nr(t)||ge(t))tr(t,Ze(t),n);else for(var r in t)Hn(n,r,t[r])}),Go=or(function(n,t,r,e){rr(t,Ze(t),n,e)}),Vo=or(function(n,t,r,e){rr(t,De(t),n,e)}),Jo=he(function(n,t){return nt(n,ht(t,1))}),Yo=he(function(n){
+return n.push(q,Gn),r(Go,q,n)}),Ho=he(function(n){return n.push(q,Dr),r(ri,q,n)}),Qo=vr(function(n,t,r){n[t]=r},Je(Ye)),Xo=vr(function(n,t,r){lu.call(n,t)?n[t].push(r):n[t]=[r]},kr),ni=he(mt),ti=or(function(n,t,r){Rt(n,t,r)}),ri=or(function(n,t,r,e){Rt(n,t,r,e)}),ei=he(function(n,t){return null==n?{}:(t=a(ht(t,1),String),Bt(n,at(Ze(n),t)))}),ui=he(function(n,t){return null==n?{}:Bt(n,ht(t,1))}),oi=lr(function(n,t,r){return t=t.toLowerCase(),n+(r?Te(t):t)}),ii=lr(function(n,t,r){return n+(r?"-":"")+t.toLowerCase();
+}),fi=lr(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),ci=ar("toLowerCase"),ai=ar("toUpperCase"),li=lr(function(n,t,r){return n+(r?"_":"")+t.toLowerCase()}),si=lr(function(n,t,r){return n+(r?" ":"")+Te(t)}),hi=lr(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),pi=he(function(n,t){try{return r(n,q,t)}catch(e){return ye(e)?e:new eu(e)}}),_i=he(function(n,t){return u(ht(t,1),function(t){n[t]=zo(n[t],n)}),n}),vi=pr(),gi=pr(true),di=he(function(n,t){return function(r){return mt(r,n,t)}}),yi=he(function(n,t){
+return function(r){return mt(n,r,t)}}),bi=gr(a),xi=gr(o),ji=gr(p),mi=br(),wi=br(true),Ai=jr("ceil"),Oi=jr("floor"),ki=jr("round");return bn.prototype=wn.prototype,bn.prototype.constructor=bn,An.prototype=ft(wn.prototype),An.prototype.constructor=An,On.prototype=ft(wn.prototype),On.prototype.constructor=On,zn.prototype=Zu?Zu(null):cu,Mn.prototype.clear=function(){this.__data__={hash:new zn,map:Fu?new Fu:[],string:new zn}},Mn.prototype["delete"]=function(n){var t=this.__data__;return $r(n)?(t=typeof n=="string"?t.string:t.hash,
+n=(Zu?t[n]!==q:lu.call(t,n))&&delete t[n]):n=Fu?t.map["delete"](n):Zn(t.map,n),n},Mn.prototype.get=function(n){var t=this.__data__;return $r(n)?(t=typeof n=="string"?t.string:t.hash,Zu?(n=t[n],n="__lodash_hash_undefined__"===n?q:n):n=lu.call(t,n)?t[n]:q):n=Fu?t.map.get(n):qn(t.map,n),n},Mn.prototype.has=function(n){var t=this.__data__;return $r(n)?(t=typeof n=="string"?t.string:t.hash,n=Zu?t[n]!==q:lu.call(t,n)):n=Fu?t.map.has(n):-1<Tn(t.map,n),n},Mn.prototype.set=function(n,t){var r=this.__data__;
+return $r(n)?(typeof n=="string"?r.string:r.hash)[n]=Zu&&t===q?"__lodash_hash_undefined__":t:Fu?r.map.set(n,t):Kn(r.map,n,t),this},Ln.prototype.push=function(n){var t=this.__data__;$r(n)?(t=t.__data__,(typeof n=="string"?t.string:t.hash)[n]="__lodash_hash_undefined__"):t.set(n,"__lodash_hash_undefined__")},Fn.prototype.clear=function(){this.__data__={array:[],map:null}},Fn.prototype["delete"]=function(n){var t=this.__data__,r=t.array;return r?Zn(r,n):t.map["delete"](n)},Fn.prototype.get=function(n){
+var t=this.__data__,r=t.array;return r?qn(r,n):t.map.get(n)},Fn.prototype.has=function(n){var t=this.__data__,r=t.array;return r?-1<Tn(r,n):t.map.has(n)},Fn.prototype.set=function(n,t){var r=this.__data__,e=r.array;return e&&(199>e.length?Kn(e,n,t):(r.array=null,r.map=new Mn(e))),(r=r.map)&&r.set(n,t),this},se.Cache=Mn,bn.after=function(n,t){if(typeof t!="function")throw new iu("Expected a function");return n=Ce(n),function(){return 1>--n?t.apply(this,arguments):void 0}},bn.ary=ie,bn.assign=To,bn.assignIn=Ko,
+bn.assignInWith=Go,bn.assignWith=Vo,bn.at=Jo,bn.before=fe,bn.bind=zo,bn.bindAll=_i,bn.bindKey=Mo,bn.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return qo(n)?n:[n]},bn.chain=Xr,bn.chunk=function(n,t){t=Uu(Ce(t),0);var r=n?n.length:0;if(!r||1>t)return[];for(var e=0,u=0,o=Array(Su(r/t));r>e;)o[u++]=Nt(n,e,e+=t);return o},bn.compact=function(n){for(var t=-1,r=n?n.length:0,e=0,u=[];++t<r;){var o=n[t];o&&(u[e++]=o)}return u},bn.concat=co,bn.cond=function(n){var t=n?n.length:0,e=kr();
+return n=t?a(n,function(n){if("function"!=typeof n[1])throw new iu("Expected a function");return[e(n[0]),n[1]]}):[],he(function(e){for(var u=-1;++u<t;){var o=n[u];if(r(o[0],this,e))return r(o[1],this,e)}})},bn.conforms=function(n){return it(ot(n,true))},bn.constant=Je,bn.countBy=Io,bn.create=function(n,t){var r=ft(n);return t?Xn(r,t):r},bn.curry=ce,bn.curryRight=ae,bn.debounce=le,bn.defaults=Yo,bn.defaultsDeep=Ho,bn.defer=Lo,bn.delay=$o,bn.difference=ao,bn.differenceBy=lo,bn.differenceWith=so,bn.drop=Tr,
+bn.dropRight=Kr,bn.dropRightWhile=function(n,t){return n&&n.length?Kt(n,kr(t,3),true,true):[]},bn.dropWhile=function(n,t){return n&&n.length?Kt(n,kr(t,3),true):[]},bn.fill=function(n,t,r,e){var u=n?n.length:0;if(!u)return[];for(r&&typeof r!="number"&&Mr(n,t,r)&&(r=0,e=u),u=n.length,r=Ce(r),0>r&&(r=-r>u?0:u+r),e=e===q||e>u?u:Ce(e),0>e&&(e+=u),e=r>e?0:Ue(e);e>r;)n[r++]=t;return n},bn.filter=function(n,t){return(qo(n)?i:st)(n,kr(t,3))},bn.flatMap=function(n,t){return ht(ue(n,t),1)},bn.flatten=function(n){
+return n&&n.length?ht(n,1):[]},bn.flattenDeep=function(n){return n&&n.length?ht(n,P):[]},bn.flattenDepth=function(n,t){return n&&n.length?(t=t===q?1:Ce(t),ht(n,t)):[]},bn.flip=function(n){return mr(n,512)},bn.flow=vi,bn.flowRight=gi,bn.fromPairs=function(n){for(var t=-1,r=n?n.length:0,e={};++t<r;){var u=n[t];e[u[0]]=u[1]}return e},bn.functions=function(n){return null==n?[]:gt(n,De(n))},bn.functionsIn=function(n){return null==n?[]:gt(n,Ze(n))},bn.groupBy=So,bn.initial=function(n){return Kr(n,1)},bn.intersection=ho,
+bn.intersectionBy=po,bn.intersectionWith=_o,bn.invert=Qo,bn.invertBy=Xo,bn.invokeMap=Ro,bn.iteratee=He,bn.keyBy=Wo,bn.keys=De,bn.keysIn=Ze,bn.map=ue,bn.mapKeys=function(n,t){var r={};return t=kr(t,3),_t(n,function(n,e,u){r[t(n,e,u)]=n}),r},bn.mapValues=function(n,t){var r={};return t=kr(t,3),_t(n,function(n,e,u){r[e]=t(n,e,u)}),r},bn.matches=function(n){return It(ot(n,true))},bn.matchesProperty=function(n,t){return St(n,ot(t,true))},bn.memoize=se,bn.merge=ti,bn.mergeWith=ri,bn.method=di,bn.methodOf=yi,
+bn.mixin=Qe,bn.negate=function(n){if(typeof n!="function")throw new iu("Expected a function");return function(){return!n.apply(this,arguments)}},bn.nthArg=function(n){return n=Ce(n),function(){return arguments[n]}},bn.omit=ei,bn.omitBy=function(n,t){return t=kr(t),Ct(n,function(n,r){return!t(n,r)})},bn.once=function(n){return fe(2,n)},bn.orderBy=function(n,t,r,e){return null==n?[]:(qo(t)||(t=null==t?[]:[t]),r=e?q:r,qo(r)||(r=null==r?[]:[r]),Wt(n,t,r))},bn.over=bi,bn.overArgs=Fo,bn.overEvery=xi,bn.overSome=ji,
+bn.partial=No,bn.partialRight=Do,bn.partition=Bo,bn.pick=ui,bn.pickBy=function(n,t){return null==n?{}:Ct(n,kr(t))},bn.property=nu,bn.propertyOf=function(n){return function(t){return null==n?q:dt(n,t)}},bn.pull=vo,bn.pullAll=Jr,bn.pullAllBy=function(n,t,r){return n&&n.length&&t&&t.length?Mt(n,t,kr(r)):n},bn.pullAllWith=function(n,t,r){return n&&n.length&&t&&t.length?Mt(n,t,q,r):n},bn.pullAt=go,bn.range=mi,bn.rangeRight=wi,bn.rearg=Zo,bn.reject=function(n,t){var r=qo(n)?i:st;return t=kr(t,3),r(n,function(n,r,e){
+return!t(n,r,e)})},bn.remove=function(n,t){var r=[];if(!n||!n.length)return r;var e=-1,u=[],o=n.length;for(t=kr(t,3);++e<o;){var i=n[e];t(i,e,n)&&(r.push(i),u.push(e))}return Lt(n,u),r},bn.rest=he,bn.reverse=Yr,bn.sampleSize=oe,bn.set=function(n,t,r){return null==n?n:Ft(n,t,r)},bn.setWith=function(n,t,r,e){return e=typeof e=="function"?e:q,null==n?n:Ft(n,t,r,e)},bn.shuffle=function(n){return oe(n,4294967295)},bn.slice=function(n,t,r){var e=n?n.length:0;return e?(r&&typeof r!="number"&&Mr(n,t,r)?(t=0,
+r=e):(t=null==t?0:Ce(t),r=r===q?e:Ce(r)),Nt(n,t,r)):[]},bn.sortBy=Co,bn.sortedUniq=function(n){return n&&n.length?Pt(n):[]},bn.sortedUniqBy=function(n,t){return n&&n.length?Pt(n,kr(t)):[]},bn.split=function(n,t,r){return Le(n).split(t,r)},bn.spread=function(n,t){if(typeof n!="function")throw new iu("Expected a function");return t=t===q?0:Uu(Ce(t),0),he(function(e){var u=e[t];return e=e.slice(0,t),u&&l(e,u),r(n,this,e)})},bn.tail=function(n){return Tr(n,1)},bn.take=function(n,t,r){return n&&n.length?(t=r||t===q?1:Ce(t),
+Nt(n,0,0>t?0:t)):[]},bn.takeRight=function(n,t,r){var e=n?n.length:0;return e?(t=r||t===q?1:Ce(t),t=e-t,Nt(n,0>t?0:t,e)):[]},bn.takeRightWhile=function(n,t){return n&&n.length?Kt(n,kr(t,3),false,true):[]},bn.takeWhile=function(n,t){return n&&n.length?Kt(n,kr(t,3)):[]},bn.tap=function(n,t){return t(n),n},bn.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new iu("Expected a function");return me(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),le(n,t,{leading:e,maxWait:t,
+trailing:u})},bn.thru=ne,bn.toArray=Be,bn.toPairs=qe,bn.toPairsIn=function(n){return w(n,Ze(n))},bn.toPath=function(n){return qo(n)?a(n,String):qr(n)},bn.toPlainObject=Me,bn.transform=function(n,t,r){var e=qo(n)||Re(n);if(t=kr(t,4),null==r)if(e||me(n)){var o=n.constructor;r=e?qo(n)?new o:[]:be(o)?ft(mu(n)):{}}else r={};return(e?u:_t)(n,function(n,e,u){return t(r,n,e,u)}),r},bn.unary=function(n){return ie(n,1)},bn.union=yo,bn.unionBy=bo,bn.unionWith=xo,bn.uniq=function(n){return n&&n.length?Tt(n):[];
+},bn.uniqBy=function(n,t){return n&&n.length?Tt(n,kr(t)):[]},bn.uniqWith=function(n,t){return n&&n.length?Tt(n,q,t):[]},bn.unset=function(n,t){var r;if(null==n)r=true;else{r=n;var e=t,e=Lr(e,r)?[e+""]:et(e);r=Zr(r,e),e=Vr(e),r=null!=r&&Fe(r,e)?delete r[e]:true}return r},bn.unzip=Hr,bn.unzipWith=Qr,bn.update=function(n,t,r){return null==n?n:Ft(n,t,rt(r)(dt(n,t)),void 0)},bn.updateWith=function(n,t,r,e){return e=typeof e=="function"?e:q,null!=n&&(n=Ft(n,t,rt(r)(dt(n,t)),e)),n},bn.values=Pe,bn.valuesIn=function(n){
+return null==n?[]:O(n,Ze(n))},bn.without=jo,bn.words=Ve,bn.wrap=function(n,t){return t=null==t?Ye:t,No(t,n)},bn.xor=mo,bn.xorBy=wo,bn.xorWith=Ao,bn.zip=Oo,bn.zipObject=function(n,t){return Jt(n||[],t||[],Hn)},bn.zipObjectDeep=function(n,t){return Jt(n||[],t||[],Ft)},bn.zipWith=ko,bn.extend=Ko,bn.extendWith=Go,Qe(bn,bn),bn.add=function(n,t){var r;return n===q&&t===q?0:(n!==q&&(r=n),t!==q&&(r=r===q?t:r+t),r)},bn.attempt=pi,bn.camelCase=oi,bn.capitalize=Te,bn.ceil=Ai,bn.clamp=function(n,t,r){return r===q&&(r=t,
+t=q),r!==q&&(r=ze(r),r=r===r?r:0),t!==q&&(t=ze(t),t=t===t?t:0),ut(ze(n),t,r)},bn.clone=function(n){return ot(n,false,true)},bn.cloneDeep=function(n){return ot(n,true,true)},bn.cloneDeepWith=function(n,t){return ot(n,true,true,t)},bn.cloneWith=function(n,t){return ot(n,false,true,t)},bn.deburr=Ke,bn.endsWith=function(n,t,r){n=Le(n),t=typeof t=="string"?t:t+"";var e=n.length;return r=r===q?e:ut(Ce(r),0,e),r-=t.length,r>=0&&n.indexOf(t,r)==r},bn.eq=pe,bn.escape=function(n){return(n=Le(n))&&Q.test(n)?n.replace(Y,W):n},
+bn.escapeRegExp=function(n){return(n=Le(n))&&fn.test(n)?n.replace(on,"\\$&"):n},bn.every=function(n,t,r){var e=qo(n)?o:lt;return r&&Mr(n,t,r)&&(t=q),e(n,kr(t,3))},bn.find=function(n,t){if(t=kr(t,3),qo(n)){var r=g(n,t);return r>-1?n[r]:q}return v(n,t,Qu)},bn.findIndex=function(n,t){return n&&n.length?g(n,kr(t,3)):-1},bn.findKey=function(n,t){return v(n,kr(t,3),_t,true)},bn.findLast=function(n,t){if(t=kr(t,3),qo(n)){var r=g(n,t,true);return r>-1?n[r]:q}return v(n,t,Xu)},bn.findLastIndex=function(n,t){return n&&n.length?g(n,kr(t,3),true):-1;
+},bn.findLastKey=function(n,t){return v(n,kr(t,3),vt,true)},bn.floor=Oi,bn.forEach=re,bn.forEachRight=ee,bn.forIn=function(n,t){return null==n?n:no(n,rt(t),Ze)},bn.forInRight=function(n,t){return null==n?n:to(n,rt(t),Ze)},bn.forOwn=function(n,t){return n&&_t(n,rt(t))},bn.forOwnRight=function(n,t){return n&&vt(n,rt(t))},bn.get=$e,bn.gt=_e,bn.gte=function(n,t){return n>=t},bn.has=Fe,bn.hasIn=Ne,bn.head=Gr,bn.identity=Ye,bn.includes=function(n,t,r,e){return n=ge(n)?n:Pe(n),r=r&&!e?Ce(r):0,e=n.length,0>r&&(r=Uu(e+r,0)),
+Ie(n)?e>=r&&-1<n.indexOf(t,r):!!e&&-1<d(n,t,r)},bn.indexOf=function(n,t,r){var e=n?n.length:0;return e?(r=Ce(r),0>r&&(r=Uu(e+r,0)),d(n,t,r)):-1},bn.inRange=function(n,t,r){return t=ze(t)||0,r===q?(r=t,t=0):r=ze(r)||0,n=ze(n),n>=zu(t,r)&&n<Uu(t,r)},bn.invoke=ni,bn.isArguments=ve,bn.isArray=qo,bn.isArrayBuffer=function(n){return we(n)&&"[object ArrayBuffer]"==pu.call(n)},bn.isArrayLike=ge,bn.isArrayLikeObject=de,bn.isBoolean=function(n){return true===n||false===n||we(n)&&"[object Boolean]"==pu.call(n)},bn.isBuffer=Po,
+bn.isDate=function(n){return we(n)&&"[object Date]"==pu.call(n)},bn.isElement=function(n){return!!n&&1===n.nodeType&&we(n)&&!ke(n)},bn.isEmpty=function(n){if(ge(n)&&(qo(n)||Ie(n)||be(n.splice)||ve(n)))return!n.length;for(var t in n)if(lu.call(n,t))return false;return true},bn.isEqual=function(n,t){return wt(n,t)},bn.isEqualWith=function(n,t,r){var e=(r=typeof r=="function"?r:q)?r(n,t):q;return e===q?wt(n,t,r):!!e},bn.isError=ye,bn.isFinite=function(n){return typeof n=="number"&&Wu(n)},bn.isFunction=be,bn.isInteger=xe,
+bn.isLength=je,bn.isMap=function(n){return we(n)&&"[object Map]"==Rr(n)},bn.isMatch=function(n,t){return n===t||At(n,t,Er(t))},bn.isMatchWith=function(n,t,r){return r=typeof r=="function"?r:q,At(n,t,Er(t),r)},bn.isNaN=function(n){return Oe(n)&&n!=+n},bn.isNative=Ae,bn.isNil=function(n){return null==n},bn.isNull=function(n){return null===n},bn.isNumber=Oe,bn.isObject=me,bn.isObjectLike=we,bn.isPlainObject=ke,bn.isRegExp=Ee,bn.isSafeInteger=function(n){return xe(n)&&n>=-9007199254740991&&9007199254740991>=n;
+},bn.isSet=function(n){return we(n)&&"[object Set]"==Rr(n)},bn.isString=Ie,bn.isSymbol=Se,bn.isTypedArray=Re,bn.isUndefined=function(n){return n===q},bn.isWeakMap=function(n){return we(n)&&"[object WeakMap]"==Rr(n)},bn.isWeakSet=function(n){return we(n)&&"[object WeakSet]"==pu.call(n)},bn.join=function(n,t){return n?Bu.call(n,t):""},bn.kebabCase=ii,bn.last=Vr,bn.lastIndexOf=function(n,t,r){var e=n?n.length:0;if(!e)return-1;var u=e;if(r!==q&&(u=Ce(r),u=(0>u?Uu(e+u,0):zu(u,e-1))+1),t!==t)return C(n,u,true);
+for(;u--;)if(n[u]===t)return u;return-1},bn.lowerCase=fi,bn.lowerFirst=ci,bn.lt=We,bn.lte=function(n,t){return t>=n},bn.max=function(n){return n&&n.length?_(n,Ye,_e):q},bn.maxBy=function(n,t){return n&&n.length?_(n,kr(t),_e):q},bn.mean=function(n){return tu(n)/(n?n.length:0)},bn.min=function(n){return n&&n.length?_(n,Ye,We):q},bn.minBy=function(n,t){return n&&n.length?_(n,kr(t),We):q},bn.noConflict=function(){return Vn._===this&&(Vn._=_u),this},bn.noop=Xe,bn.now=Uo,bn.pad=function(n,t,r){n=Le(n),
+t=Ce(t);var e=N(n);return t&&t>e?(e=(t-e)/2,t=Ru(e),e=Su(e),dr("",t,r)+n+dr("",e,r)):n},bn.padEnd=function(n,t,r){return n=Le(n),n+dr(n,t,r)},bn.padStart=function(n,t,r){return n=Le(n),dr(n,t,r)+n},bn.parseInt=function(n,t,r){return r||null==t?t=0:t&&(t=+t),n=Le(n).replace(cn,""),Mu(n,t||(_n.test(n)?16:10))},bn.random=function(n,t,r){if(r&&typeof r!="boolean"&&Mr(n,t,r)&&(t=r=q),r===q&&(typeof t=="boolean"?(r=t,t=q):typeof n=="boolean"&&(r=n,n=q)),n===q&&t===q?(n=0,t=1):(n=ze(n)||0,t===q?(t=n,n=0):t=ze(t)||0),
+n>t){var e=n;n=t,t=e}return r||n%1||t%1?(r=Lu(),zu(n+r*(t-n+Nn("1e-"+((r+"").length-1))),t)):$t(n,t)},bn.reduce=function(n,t,r){var e=qo(n)?s:b,u=3>arguments.length;return e(n,kr(t,4),r,u,Qu)},bn.reduceRight=function(n,t,r){var e=qo(n)?h:b,u=3>arguments.length;return e(n,kr(t,4),r,u,Xu)},bn.repeat=Ge,bn.replace=function(){var n=arguments,t=Le(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},bn.result=function(n,t,r){if(Lr(t,n))e=null==n?q:n[t];else{t=et(t);var e=$e(n,t);n=Zr(n,t)}return e===q&&(e=r),
+be(e)?e.call(n):e},bn.round=ki,bn.runInContext=Z,bn.sample=function(n){n=ge(n)?n:Pe(n);var t=n.length;return t>0?n[$t(0,t-1)]:q},bn.size=function(n){if(null==n)return 0;if(ge(n)){var t=n.length;return t&&Ie(n)?N(n):t}return De(n).length},bn.snakeCase=li,bn.some=function(n,t,r){var e=qo(n)?p:Dt;return r&&Mr(n,t,r)&&(t=q),e(n,kr(t,3))},bn.sortedIndex=function(n,t){return Zt(n,t)},bn.sortedIndexBy=function(n,t,r){return qt(n,t,kr(r))},bn.sortedIndexOf=function(n,t){var r=n?n.length:0;if(r){var e=Zt(n,t);
+if(r>e&&pe(n[e],t))return e}return-1},bn.sortedLastIndex=function(n,t){return Zt(n,t,true)},bn.sortedLastIndexBy=function(n,t,r){return qt(n,t,kr(r),true)},bn.sortedLastIndexOf=function(n,t){if(n&&n.length){var r=Zt(n,t,true)-1;if(pe(n[r],t))return r}return-1},bn.startCase=si,bn.startsWith=function(n,t,r){return n=Le(n),r=ut(Ce(r),0,n.length),n.lastIndexOf(t,r)==r},bn.subtract=function(n,t){var r;return n===q&&t===q?0:(n!==q&&(r=n),t!==q&&(r=r===q?t:r-t),r)},bn.sum=tu,bn.sumBy=function(n,t){return n&&n.length?j(n,kr(t)):0;
+},bn.template=function(n,t,r){var e=bn.templateSettings;r&&Mr(n,t,r)&&(t=q),n=Le(n),t=Go({},t,e,Gn),r=Go({},t.imports,e.imports,Gn);var u,o,i=De(r),f=O(r,i),c=0;r=t.interpolate||jn;var a="__p+='";r=ou((t.escape||jn).source+"|"+r.source+"|"+(r===tn?hn:jn).source+"|"+(t.evaluate||jn).source+"|$","g");var l="sourceURL"in t?"//# sourceURL="+t.sourceURL+"\n":"";if(n.replace(r,function(t,r,e,i,f,l){return e||(e=i),a+=n.slice(c,l).replace(mn,B),r&&(u=true,a+="'+__e("+r+")+'"),f&&(o=true,a+="';"+f+";\n__p+='"),
+e&&(a+="'+((__t=("+e+"))==null?'':__t)+'"),c=l+t.length,t}),a+="';",(t=t.variable)||(a="with(obj){"+a+"}"),a=(o?a.replace(K,""):a).replace(G,"$1").replace(V,"$1;"),a="function("+(t||"obj")+"){"+(t?"":"obj||(obj={});")+"var __t,__p=''"+(u?",__e=_.escape":"")+(o?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":";")+a+"return __p}",t=pi(function(){return Function(i,l+"return "+a).apply(q,f)}),t.source=a,ye(t))throw t;return t},bn.times=function(n,t){if(n=Ce(n),1>n||n>9007199254740991)return[];
+var r=4294967295,e=zu(n,4294967295);for(t=rt(t),n-=4294967295,e=m(e,t);++r<n;)t(r);return e},bn.toInteger=Ce,bn.toLength=Ue,bn.toLower=function(n){return Le(n).toLowerCase()},bn.toNumber=ze,bn.toSafeInteger=function(n){return ut(Ce(n),-9007199254740991,9007199254740991)},bn.toString=Le,bn.toUpper=function(n){return Le(n).toUpperCase()},bn.trim=function(n,t,r){return(n=Le(n))?r||t===q?n.replace(cn,""):(t+="")?(n=n.match(En),t=t.match(En),n.slice(k(n,t),E(n,t)+1).join("")):n:n},bn.trimEnd=function(n,t,r){
+return(n=Le(n))?r||t===q?n.replace(ln,""):(t+="")?(n=n.match(En),n.slice(0,E(n,t.match(En))+1).join("")):n:n},bn.trimStart=function(n,t,r){return(n=Le(n))?r||t===q?n.replace(an,""):(t+="")?(n=n.match(En),n.slice(k(n,t.match(En))).join("")):n:n},bn.truncate=function(n,t){var r=30,e="...";if(me(t))var u="separator"in t?t.separator:u,r="length"in t?Ce(t.length):r,e="omission"in t?Le(t.omission):e;n=Le(n);var o=n.length;if(In.test(n))var i=n.match(En),o=i.length;if(r>=o)return n;if(o=r-N(e),1>o)return e;
+if(r=i?i.slice(0,o).join(""):n.slice(0,o),u===q)return r+e;if(i&&(o+=r.length-o),Ee(u)){if(n.slice(o).search(u)){var f=r;for(u.global||(u=ou(u.source,Le(pn.exec(u))+"g")),u.lastIndex=0;i=u.exec(f);)var c=i.index;r=r.slice(0,c===q?o:c)}}else n.indexOf(u,o)!=o&&(u=r.lastIndexOf(u),u>-1&&(r=r.slice(0,u)));return r+e},bn.unescape=function(n){return(n=Le(n))&&H.test(n)?n.replace(J,D):n},bn.uniqueId=function(n){var t=++su;return Le(n)+t},bn.upperCase=hi,bn.upperFirst=ai,bn.each=re,bn.eachRight=ee,bn.first=Gr,
+Qe(bn,function(){var n={};return _t(bn,function(t,r){lu.call(bn.prototype,r)||(n[r]=t)}),n}(),{chain:false}),bn.VERSION="4.6.1",u("bind bindKey curry curryRight partial partialRight".split(" "),function(n){bn[n].placeholder=bn}),u(["drop","take"],function(n,t){On.prototype[n]=function(r){var e=this.__filtered__;if(e&&!t)return new On(this);r=r===q?1:Uu(Ce(r),0);var u=this.clone();return e?u.__takeCount__=zu(r,u.__takeCount__):u.__views__.push({size:zu(r,4294967295),type:n+(0>u.__dir__?"Right":"")}),
+u},On.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),u(["filter","map","takeWhile"],function(n,t){var r=t+1,e=1==r||3==r;On.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:kr(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),u(["head","last"],function(n,t){var r="take"+(t?"Right":"");On.prototype[n]=function(){return this[r](1).value()[0]}}),u(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");On.prototype[n]=function(){return this.__filtered__?new On(this):this[r](1);
+}}),On.prototype.compact=function(){return this.filter(Ye)},On.prototype.find=function(n){return this.filter(n).head()},On.prototype.findLast=function(n){return this.reverse().find(n)},On.prototype.invokeMap=he(function(n,t){return typeof n=="function"?new On(this):this.map(function(r){return mt(r,n,t)})}),On.prototype.reject=function(n){return n=kr(n,3),this.filter(function(t){return!n(t)})},On.prototype.slice=function(n,t){n=Ce(n);var r=this;return r.__filtered__&&(n>0||0>t)?new On(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),
+t!==q&&(t=Ce(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},On.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},On.prototype.toArray=function(){return this.take(4294967295)},_t(On.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=bn[e?"take"+("last"==t?"Right":""):t],o=e||/^find/.test(t);u&&(bn.prototype[t]=function(){function t(n){return n=u.apply(bn,l([n],f)),e&&h?n[0]:n}var i=this.__wrapped__,f=e?[1]:arguments,c=i instanceof On,a=f[0],s=c||qo(i);
+s&&r&&typeof a=="function"&&1!=a.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,a=o&&!h,c=c&&!p;return!o&&s?(i=c?i:new On(this),i=n.apply(i,f),i.__actions__.push({func:ne,args:[t],thisArg:q}),new An(i,h)):a&&c?n.apply(this,f):(i=this.thru(t),a?e?i.value()[0]:i.value():i)})}),u("pop push shift sort splice unshift".split(" "),function(n){var t=fu[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);bn.prototype[n]=function(){var n=arguments;return e&&!this.__chain__?t.apply(this.value(),n):this[r](function(r){
+return t.apply(r,n)})}}),_t(On.prototype,function(n,t){var r=bn[t];if(r){var e=r.name+"";(Tu[e]||(Tu[e]=[])).push({name:t,func:r})}}),Tu[_r(q,2).name]=[{name:"wrapper",func:q}],On.prototype.clone=function(){var n=new On(this.__wrapped__);return n.__actions__=nr(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=nr(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=nr(this.__views__),n},On.prototype.reverse=function(){if(this.__filtered__){var n=new On(this);
+n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},On.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=qo(t),u=0>r,o=e?t.length:0;n=o;for(var i=this.__views__,f=0,c=-1,a=i.length;++c<a;){var l=i[c],s=l.size;switch(l.type){case"drop":f+=s;break;case"dropRight":n-=s;break;case"take":n=zu(n,f+s);break;case"takeRight":f=Uu(f,n-s)}}if(n={start:f,end:n},i=n.start,f=n.end,n=f-i,u=u?f:i-1,i=this.__iteratees__,f=i.length,c=0,a=zu(n,this.__takeCount__),!e||200>o||o==n&&a==n)return Gt(t,this.__actions__);
+e=[];n:for(;n--&&a>c;){for(u+=r,o=-1,l=t[u];++o<f;){var h=i[o],s=h.type,h=(0,h.iteratee)(l);if(2==s)l=h;else if(!h){if(1==s)continue n;break n}}e[c++]=l}return e},bn.prototype.at=Eo,bn.prototype.chain=function(){return Xr(this)},bn.prototype.commit=function(){return new An(this.value(),this.__chain__)},bn.prototype.flatMap=function(n){return this.map(n).flatten()},bn.prototype.next=function(){this.__values__===q&&(this.__values__=Be(this.value()));var n=this.__index__>=this.__values__.length,t=n?q:this.__values__[this.__index__++];
+return{done:n,value:t}},bn.prototype.plant=function(n){for(var t,r=this;r instanceof wn;){var e=Pr(r);e.__index__=0,e.__values__=q,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},bn.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof On?(this.__actions__.length&&(n=new On(this)),n=n.reverse(),n.__actions__.push({func:ne,args:[Yr],thisArg:q}),new An(n,this.__chain__)):this.thru(Yr)},bn.prototype.toJSON=bn.prototype.valueOf=bn.prototype.value=function(){return Gt(this.__wrapped__,this.__actions__);
+},Au&&(bn.prototype[Au]=te),bn}var q,P=1/0,T=NaN,K=/\b__p\+='';/g,G=/\b(__p\+=)''\+/g,V=/(__e\(.*?\)|\b__t\))\+'';/g,J=/&(?:amp|lt|gt|quot|#39|#96);/g,Y=/[&<>"'`]/g,H=RegExp(J.source),Q=RegExp(Y.source),X=/<%-([\s\S]+?)%>/g,nn=/<%([\s\S]+?)%>/g,tn=/<%=([\s\S]+?)%>/g,rn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,en=/^\w*$/,un=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]/g,on=/[\\^$.*+?()[\]{}|]/g,fn=RegExp(on.source),cn=/^\s+|\s+$/g,an=/^\s+/,ln=/\s+$/,sn=/\\(\\)?/g,hn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,pn=/\w*$/,_n=/^0x/i,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\[object .+?Constructor\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\d*)$/,xn=/[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g,jn=/($^)/,mn=/['\n\r\u2028\u2029\\]/g,wn="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|\\ud83c[\\udffb-\\udfff])?)*",An="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+wn,On="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]?|[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",kn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0]","g"),En=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+On+wn,"g"),In=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe23\\u20d0-\\u20f0\\ufe0e\\ufe0f]"),Sn=/[a-zA-Z0-9]+/g,Rn=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2018\\u2019\\u201c\\u201d \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|\\d+",An].join("|"),"g"),Wn=/[a-z][A-Z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Bn="Array Buffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Reflect RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Cn={};
+Cn["[object Float32Array]"]=Cn["[object Float64Array]"]=Cn["[object Int8Array]"]=Cn["[object Int16Array]"]=Cn["[object Int32Array]"]=Cn["[object Uint8Array]"]=Cn["[object Uint8ClampedArray]"]=Cn["[object Uint16Array]"]=Cn["[object Uint32Array]"]=true,Cn["[object Arguments]"]=Cn["[object Array]"]=Cn["[object ArrayBuffer]"]=Cn["[object Boolean]"]=Cn["[object Date]"]=Cn["[object Error]"]=Cn["[object Function]"]=Cn["[object Map]"]=Cn["[object Number]"]=Cn["[object Object]"]=Cn["[object RegExp]"]=Cn["[object Set]"]=Cn["[object String]"]=Cn["[object WeakMap]"]=false;
+var Un={};Un["[object Arguments]"]=Un["[object Array]"]=Un["[object ArrayBuffer]"]=Un["[object Boolean]"]=Un["[object Date]"]=Un["[object Float32Array]"]=Un["[object Float64Array]"]=Un["[object Int8Array]"]=Un["[object Int16Array]"]=Un["[object Int32Array]"]=Un["[object Map]"]=Un["[object Number]"]=Un["[object Object]"]=Un["[object RegExp]"]=Un["[object Set]"]=Un["[object String]"]=Un["[object Symbol]"]=Un["[object Uint8Array]"]=Un["[object Uint8ClampedArray]"]=Un["[object Uint16Array]"]=Un["[object Uint32Array]"]=true,
+Un["[object Error]"]=Un["[object Function]"]=Un["[object WeakMap]"]=false;var zn={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O",
+"\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss"},Mn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","`":"&#96;"},Ln={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&#96;":"`"},$n={"function":true,object:true},Fn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"
+},Nn=parseFloat,Dn=parseInt,Zn=$n[typeof exports]&&exports&&!exports.nodeType?exports:q,qn=$n[typeof module]&&module&&!module.nodeType?module:q,Pn=qn&&qn.exports===Zn?Zn:q,Tn=I($n[typeof self]&&self),Kn=I($n[typeof window]&&window),Gn=I($n[typeof this]&&this),Vn=I(Zn&&qn&&typeof global=="object"&&global)||Kn!==(Gn&&Gn.window)&&Kn||Tn||Gn||Function("return this")(),Jn=Z();(Kn||Tn||{})._=Jn,typeof define=="function"&&typeof define.amd=="object"&&define.amd? define(function(){return Jn}):Zn&&qn?(Pn&&((qn.exports=Jn)._=Jn),
+Zn._=Jn):Vn._=Jn}).call(this);
\ No newline at end of file
index ba7376c..aace656 100644 (file)
@@ -111,25 +111,25 @@ return /******/ (function(modules) { // webpackBootstrap
            'hasIn', 'includes', 'indexOf', 'intersection', 'invertBy', 'invoke', 'invokeMap',
            'isEqual', 'isMatch', 'join', 'keyBy', 'lastIndexOf', 'lt', 'lte', 'map',
            'mapKeys', 'mapValues', 'matchesProperty', 'maxBy', 'merge', 'minBy', 'omit',
-           'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt',
-           'partial', 'partialRight', 'partition', 'pick', 'pickBy', 'pull', 'pullAll',
-           'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
-           'repeat', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
-           'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
-           'split', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight', 'takeRightWhile',
-           'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars', 'trimCharsEnd',
-           'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith', 'unset',
-           'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject', 'zipObjectDeep'
+           'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',
+           'partialRight', 'partition', 'pick', 'pickBy', 'pull', 'pullAll', 'pullAt',
+           'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove', 'repeat', 'result',
+           'sampleSize', 'some', 'sortBy', 'sortedIndex', 'sortedIndexOf', 'sortedLastIndex',
+           'sortedLastIndexOf', 'sortedUniqBy', 'split', 'startsWith', 'subtract', 'sumBy',
+           'take', 'takeRight', 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru',
+           'times', 'trimChars', 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union',
+           'uniqBy', 'uniqWith', 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip',
+           'zipObject', 'zipObjectDeep'
          ],
          '3': [
            'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
            'getOr', 'inRange', 'intersectionBy', 'intersectionWith', 'isEqualWith',
-           'isMatchWith', 'mergeWith', 'orderBy', 'pullAllBy', 'reduce', 'reduceRight',
-           'replace', 'set', 'slice', 'sortedIndexBy', 'sortedLastIndexBy', 'transform',
-           'unionBy', 'unionWith', 'xorBy', 'xorWith', 'zipWith'
+           'isMatchWith', 'mergeWith', 'orderBy', 'pullAllBy', 'pullAllWith', 'reduce',
+           'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy', 'sortedLastIndexBy',
+           'transform', 'unionBy', 'unionWith', 'update', 'xorBy', 'xorWith', 'zipWith'
          ],
          '4': [
-           'fill', 'setWith'
+           'fill', 'setWith', 'updateWith'
          ]
        };
 
@@ -193,9 +193,11 @@ return /******/ (function(modules) { // webpackBootstrap
          'isMatchWith': [2, 1, 0],
          'mergeWith': [1, 2, 0],
          'pullAllBy': [2, 1, 0],
+         'pullAllWith': [2, 1, 0],
          'setWith': [3, 1, 2, 0],
          'sortedIndexBy': [2, 1, 0],
          'sortedLastIndexBy': [2, 1, 0],
+         'updateWith': [3, 1, 2, 0],
          'zipWith': [1, 2, 0]
        };
 
@@ -212,6 +214,7 @@ return /******/ (function(modules) { // webpackBootstrap
            'pull': true,
            'pullAll': true,
            'pullAllBy': true,
+           'pullAllWith': true,
            'pullAt': true,
            'remove': true,
            'reverse': true
@@ -229,7 +232,9 @@ return /******/ (function(modules) { // webpackBootstrap
          'set': {
            'set': true,
            'setWith': true,
-           'unset': true
+           'unset': true,
+           'update': true,
+           'updateWith': true
          }
        };
 
index ef5893c..cce7cf4 100644 (file)
@@ -1,4 +1,4 @@
-# <a href="https://lodash.com/">lodash</a> <span>v4.5.1</span>
+# <a href="https://lodash.com/">lodash</a> <span>v4.6.1</span>
 
 <!-- div class="toc-container" -->
 
@@ -35,6 +35,7 @@
 * <a href="#_pullarray-values">`_.pull`</a>
 * <a href="#_pullallarray-values">`_.pullAll`</a>
 * <a href="#_pullallbyarray-values-iteratee_identity">`_.pullAllBy`</a>
+* <a href="#_pullallwitharray-values-comparator">`_.pullAllWith`</a>
 * <a href="#_pullatarray-indexes">`_.pullAt`</a>
 * <a href="#_removearray-predicate_identity">`_.remove`</a>
 * <a href="#_reverse">`_.reverse`</a>
 * <a href="#_topairsinobject">`_.toPairsIn`</a>
 * <a href="#_transformobject-iteratee_identity-accumulator">`_.transform`</a>
 * <a href="#_unsetobject-path">`_.unset`</a>
+* <a href="#_updateobject-path-updater">`_.update`</a>
+* <a href="#_updatewithobject-path-updater-customizer">`_.updateWith`</a>
 * <a href="#_valuesobject">`_.values`</a>
 * <a href="#_valuesinobject">`_.valuesIn`</a>
 
 <!-- div -->
 
 ### <a id="_chunkarray-size0"></a>`_.chunk(array, [size=0])`
-<a href="#_chunkarray-size0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5480 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.chunk "See the npm package")
+<a href="#_chunkarray-size0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5505 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.chunk "See the npm package")
 
 Creates an array of elements split into groups the length of `size`.
 If `array` can't be split evenly, the final chunk will be the remaining
@@ -419,7 +422,7 @@ _.chunk(['a', 'b', 'c', 'd'], 3);
 <!-- div -->
 
 ### <a id="_compactarray"></a>`_.compact(array)`
-<a href="#_compactarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5511 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.compact "See the npm package")
+<a href="#_compactarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5536 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.compact "See the npm package")
 
 Creates an array with all falsey values removed. The values `false`, `null`,
 `0`, `""`, `undefined`, and `NaN` are falsey.
@@ -442,7 +445,7 @@ _.compact([0, 1, false, 2, '', 3]);
 <!-- div -->
 
 ### <a id="_concatarray-values"></a>`_.concat(array, [values])`
-<a href="#_concatarray-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5547 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.concat "See the npm package")
+<a href="#_concatarray-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5572 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.concat "See the npm package")
 
 Creates a new array concatenating `array` with any additional arrays
 and/or values.
@@ -472,11 +475,12 @@ console.log(array);
 <!-- div -->
 
 ### <a id="_differencearray-values"></a>`_.difference(array, [values])`
-<a href="#_differencearray-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5571 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.difference "See the npm package")
+<a href="#_differencearray-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5597 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.difference "See the npm package")
 
 Creates an array of unique `array` values not included in the other
 given arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
-for equality comparisons.
+for equality comparisons. The order of result values is determined by the
+order they occur in the first array.
 
 #### Arguments
 1. `array` *(Array)*: The array to inspect.
@@ -497,11 +501,12 @@ _.difference([3, 2, 1], [4, 2]);
 <!-- div -->
 
 ### <a id="_differencebyarray-values-iteratee_identity"></a>`_.differenceBy(array, [values], [iteratee=_.identity])`
-<a href="#_differencebyarray-values-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5598 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.differenceby "See the npm package")
+<a href="#_differencebyarray-values-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5625 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.differenceby "See the npm package")
 
 This method is like `_.difference` except that it accepts `iteratee` which
 is invoked for each element of `array` and `values` to generate the criterion
-by which uniqueness is computed. The iteratee is invoked with one argument: (value).
+by which they're compared. Result values are chosen from the first array.
+The iteratee is invoked with one argument: (value).
 
 #### Arguments
 1. `array` *(Array)*: The array to inspect.
@@ -527,11 +532,12 @@ _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
 <!-- div -->
 
 ### <a id="_differencewitharray-values-comparator"></a>`_.differenceWith(array, [values], [comparator])`
-<a href="#_differencewitharray-values-comparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5627 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.differencewith "See the npm package")
+<a href="#_differencewitharray-values-comparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5655 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.differencewith "See the npm package")
 
 This method is like `_.difference` except that it accepts `comparator`
-which is invoked to compare elements of `array` to `values`. The comparator
-is invoked with two arguments: (arrVal, othVal).
+which is invoked to compare elements of `array` to `values`. Result values
+are chosen from the first array. The comparator is invoked with two arguments:<br>
+(arrVal, othVal).
 
 #### Arguments
 1. `array` *(Array)*: The array to inspect.
@@ -555,7 +561,7 @@ _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);
 <!-- div -->
 
 ### <a id="_droparray-n1"></a>`_.drop(array, [n=1])`
-<a href="#_droparray-n1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5661 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.drop "See the npm package")
+<a href="#_droparray-n1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5689 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.drop "See the npm package")
 
 Creates a slice of `array` with `n` elements dropped from the beginning.
 
@@ -587,7 +593,7 @@ _.drop([1, 2, 3], 0);
 <!-- div -->
 
 ### <a id="_droprightarray-n1"></a>`_.dropRight(array, [n=1])`
-<a href="#_droprightarray-n1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5694 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.dropright "See the npm package")
+<a href="#_droprightarray-n1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5722 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.dropright "See the npm package")
 
 Creates a slice of `array` with `n` elements dropped from the end.
 
@@ -619,7 +625,7 @@ _.dropRight([1, 2, 3], 0);
 <!-- div -->
 
 ### <a id="_droprightwhilearray-predicate_identity"></a>`_.dropRightWhile(array, [predicate=_.identity])`
-<a href="#_droprightwhilearray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5738 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.droprightwhile "See the npm package")
+<a href="#_droprightwhilearray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5766 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.droprightwhile "See the npm package")
 
 Creates a slice of `array` excluding elements dropped from the end.
 Elements are dropped until `predicate` returns falsey. The predicate is
@@ -662,7 +668,7 @@ _.dropRightWhile(users, 'active');
 <!-- div -->
 
 ### <a id="_dropwhilearray-predicate_identity"></a>`_.dropWhile(array, [predicate=_.identity])`
-<a href="#_dropwhilearray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5778 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.dropwhile "See the npm package")
+<a href="#_dropwhilearray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5806 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.dropwhile "See the npm package")
 
 Creates a slice of `array` excluding elements dropped from the beginning.
 Elements are dropped until `predicate` returns falsey. The predicate is
@@ -705,7 +711,7 @@ _.dropWhile(users, 'active');
 <!-- div -->
 
 ### <a id="_fillarray-value-start0-endarraylength"></a>`_.fill(array, value, [start=0], [end=array.length])`
-<a href="#_fillarray-value-start0-endarraylength">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5812 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.fill "See the npm package")
+<a href="#_fillarray-value-start0-endarraylength">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5840 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.fill "See the npm package")
 
 Fills elements of `array` with `value` from `start` up to, but not
 including, `end`.
@@ -743,7 +749,7 @@ _.fill([4, 6, 8, 10], '*', 1, 3);
 <!-- div -->
 
 ### <a id="_findindexarray-predicate_identity"></a>`_.findIndex(array, [predicate=_.identity])`
-<a href="#_findindexarray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5857 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.findindex "See the npm package")
+<a href="#_findindexarray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5885 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.findindex "See the npm package")
 
 This method is like `_.find` except that it returns the index of the first
 element `predicate` returns truthy for instead of the element itself.
@@ -785,7 +791,7 @@ _.findIndex(users, 'active');
 <!-- div -->
 
 ### <a id="_findlastindexarray-predicate_identity"></a>`_.findLastIndex(array, [predicate=_.identity])`
-<a href="#_findlastindexarray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5896 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.findlastindex "See the npm package")
+<a href="#_findlastindexarray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5924 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.findlastindex "See the npm package")
 
 This method is like `_.findIndex` except that it iterates over elements
 of `collection` from right to left.
@@ -827,7 +833,7 @@ _.findLastIndex(users, 'active');
 <!-- div -->
 
 ### <a id="_flattenarray"></a>`_.flatten(array)`
-<a href="#_flattenarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5915 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flatten "See the npm package")
+<a href="#_flattenarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5943 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flatten "See the npm package")
 
 Flattens `array` a single level deep.
 
@@ -849,7 +855,7 @@ _.flatten([1, [2, [3, [4]], 5]]);
 <!-- div -->
 
 ### <a id="_flattendeeparray"></a>`_.flattenDeep(array)`
-<a href="#_flattendeeparray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5933 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flattendeep "See the npm package")
+<a href="#_flattendeeparray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5961 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flattendeep "See the npm package")
 
 Recursively flattens `array`.
 
@@ -871,7 +877,7 @@ _.flattenDeep([1, [2, [3, [4]], 5]]);
 <!-- div -->
 
 ### <a id="_flattendeptharray-depth1"></a>`_.flattenDepth(array, [depth=1])`
-<a href="#_flattendeptharray-depth1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5957 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flattendepth "See the npm package")
+<a href="#_flattendeptharray-depth1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L5985 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flattendepth "See the npm package")
 
 Recursively flatten `array` up to `depth` times.
 
@@ -899,7 +905,7 @@ _.flattenDepth(array, 2);
 <!-- div -->
 
 ### <a id="_frompairspairs"></a>`_.fromPairs(pairs)`
-<a href="#_frompairspairs">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L5980 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.frompairs "See the npm package")
+<a href="#_frompairspairs">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6008 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.frompairs "See the npm package")
 
 The inverse of `_.toPairs`; this method returns an object composed
 from key-value `pairs`.
@@ -922,7 +928,7 @@ _.fromPairs([['fred', 30], ['barney', 40]]);
 <!-- div -->
 
 ### <a id="_headarray"></a>`_.head(array)`
-<a href="#_headarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6009 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.head "See the npm package")
+<a href="#_headarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6037 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.head "See the npm package")
 
 Gets the first element of `array`.
 
@@ -950,7 +956,7 @@ _.head([]);
 <!-- div -->
 
 ### <a id="_indexofarray-value-fromindex0"></a>`_.indexOf(array, value, [fromIndex=0])`
-<a href="#_indexofarray-value-fromindex0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6035 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.indexof "See the npm package")
+<a href="#_indexofarray-value-fromindex0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6063 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.indexof "See the npm package")
 
 Gets the index at which the first occurrence of `value` is found in `array`
 using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
@@ -981,7 +987,7 @@ _.indexOf([1, 2, 1, 2], 2, 2);
 <!-- div -->
 
 ### <a id="_initialarray"></a>`_.initial(array)`
-<a href="#_initialarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6060 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.initial "See the npm package")
+<a href="#_initialarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6088 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.initial "See the npm package")
 
 Gets all but the last element of `array`.
 
@@ -1003,17 +1009,18 @@ _.initial([1, 2, 3]);
 <!-- div -->
 
 ### <a id="_intersectionarrays"></a>`_.intersection([arrays])`
-<a href="#_intersectionarrays">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6079 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.intersection "See the npm package")
+<a href="#_intersectionarrays">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6108 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.intersection "See the npm package")
 
 Creates an array of unique values that are included in all given arrays
 using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
-for equality comparisons.
+for equality comparisons. The order of result values is determined by the
+order they occur in the first array.
 
 #### Arguments
 1. `[arrays]` *(...Array)*: The arrays to inspect.
 
 #### Returns
-*(Array)*:  Returns the new array of shared values.
+*(Array)*:  Returns the new array of intersecting values.
 
 #### Example
 ```js
@@ -1027,18 +1034,19 @@ _.intersection([2, 1], [4, 2], [1, 2]);
 <!-- div -->
 
 ### <a id="_intersectionbyarrays-iteratee_identity"></a>`_.intersectionBy([arrays], [iteratee=_.identity])`
-<a href="#_intersectionbyarrays-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6106 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.intersectionby "See the npm package")
+<a href="#_intersectionbyarrays-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6136 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.intersectionby "See the npm package")
 
 This method is like `_.intersection` except that it accepts `iteratee`
 which is invoked for each element of each `arrays` to generate the criterion
-by which uniqueness is computed. The iteratee is invoked with one argument: (value).
+by which they're compared. Result values are chosen from the first array.
+The iteratee is invoked with one argument: (value).
 
 #### Arguments
 1. `[arrays]` *(...Array)*: The arrays to inspect.
 2. `[iteratee=_.identity]` *(Function|Object|string)*: The iteratee invoked per element.
 
 #### Returns
-*(Array)*:  Returns the new array of shared values.
+*(Array)*:  Returns the new array of intersecting values.
 
 #### Example
 ```js
@@ -1056,18 +1064,19 @@ _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
 <!-- div -->
 
 ### <a id="_intersectionwitharrays-comparator"></a>`_.intersectionWith([arrays], [comparator])`
-<a href="#_intersectionwitharrays-comparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6139 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.intersectionwith "See the npm package")
+<a href="#_intersectionwitharrays-comparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6170 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.intersectionwith "See the npm package")
 
 This method is like `_.intersection` except that it accepts `comparator`
-which is invoked to compare elements of `arrays`. The comparator is invoked
-with two arguments: (arrVal, othVal).
+which is invoked to compare elements of `arrays`. Result values are chosen
+from the first array. The comparator is invoked with two arguments:<br>
+(arrVal, othVal).
 
 #### Arguments
 1. `[arrays]` *(...Array)*: The arrays to inspect.
 2. `[comparator]` *(Function)*: The comparator invoked per element.
 
 #### Returns
-*(Array)*:  Returns the new array of shared values.
+*(Array)*:  Returns the new array of intersecting values.
 
 #### Example
 ```js
@@ -1084,7 +1093,7 @@ _.intersectionWith(objects, others, _.isEqual);
 <!-- div -->
 
 ### <a id="_joinarray-separator-"></a>`_.join(array, [separator=','])`
-<a href="#_joinarray-separator-">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6167 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.join "See the npm package")
+<a href="#_joinarray-separator-">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6198 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.join "See the npm package")
 
 Converts all elements in `array` into a string separated by `separator`.
 
@@ -1107,7 +1116,7 @@ _.join(['a', 'b', 'c'], '~');
 <!-- div -->
 
 ### <a id="_lastarray"></a>`_.last(array)`
-<a href="#_lastarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6184 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.last "See the npm package")
+<a href="#_lastarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6215 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.last "See the npm package")
 
 Gets the last element of `array`.
 
@@ -1129,7 +1138,7 @@ _.last([1, 2, 3]);
 <!-- div -->
 
 ### <a id="_lastindexofarray-value-fromindexarraylength-1"></a>`_.lastIndexOf(array, value, [fromIndex=array.length-1])`
-<a href="#_lastindexofarray-value-fromindexarraylength-1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6209 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.lastindexof "See the npm package")
+<a href="#_lastindexofarray-value-fromindexarraylength-1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6240 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.lastindexof "See the npm package")
 
 This method is like `_.indexOf` except that it iterates over elements of
 `array` from right to left.
@@ -1158,7 +1167,7 @@ _.lastIndexOf([1, 2, 1, 2], 2, 2);
 <!-- div -->
 
 ### <a id="_pullarray-values"></a>`_.pull(array, [values])`
-<a href="#_pullarray-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6252 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pull "See the npm package")
+<a href="#_pullarray-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6283 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pull "See the npm package")
 
 Removes all given values from `array` using
 [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
@@ -1190,7 +1199,7 @@ console.log(array);
 <!-- div -->
 
 ### <a id="_pullallarray-values"></a>`_.pullAll(array, values)`
-<a href="#_pullallarray-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6273 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pullall "See the npm package")
+<a href="#_pullallarray-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6304 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pullall "See the npm package")
 
 This method is like `_.pull` except that it accepts an array of values to remove.
 <br>
@@ -1219,11 +1228,11 @@ console.log(array);
 <!-- div -->
 
 ### <a id="_pullallbyarray-values-iteratee_identity"></a>`_.pullAllBy(array, values, [iteratee=_.identity])`
-<a href="#_pullallbyarray-values-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6301 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pullallby "See the npm package")
+<a href="#_pullallbyarray-values-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6332 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pullallby "See the npm package")
 
 This method is like `_.pullAll` except that it accepts `iteratee` which is
 invoked for each element of `array` and `values` to generate the criterion
-by which uniqueness is computed. The iteratee is invoked with one argument: (value).
+by which they're compared. The iteratee is invoked with one argument: (value).
 <br>
 <br>
 **Note:** Unlike `_.differenceBy`, this method mutates `array`.
@@ -1250,8 +1259,40 @@ console.log(array);
 
 <!-- div -->
 
+### <a id="_pullallwitharray-values-comparator"></a>`_.pullAllWith(array, values, [comparator])`
+<a href="#_pullallwitharray-values-comparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6360 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pullallwith "See the npm package")
+
+This method is like `_.pullAll` except that it accepts `comparator` which
+is invoked to compare elements of `array` to `values`. The comparator is
+invoked with two arguments: (arrVal, othVal).
+<br>
+<br>
+**Note:** Unlike `_.differenceWith`, this method mutates `array`.
+
+#### Arguments
+1. `array` *(Array)*: The array to modify.
+2. `values` *(Array)*: The values to remove.
+3. `[comparator]` *(Function)*: The comparator invoked per element.
+
+#### Returns
+*(Array)*:  Returns `array`.
+
+#### Example
+```js
+var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
+
+_.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
+console.log(array);
+// => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
+```
+* * *
+
+<!-- /div -->
+
+<!-- div -->
+
 ### <a id="_pullatarray-indexes"></a>`_.pullAt(array, [indexes])`
-<a href="#_pullatarray-indexes">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6331 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pullat "See the npm package")
+<a href="#_pullatarray-indexes">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6390 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pullat "See the npm package")
 
 Removes elements from `array` corresponding to `indexes` and returns an
 array of removed elements.
@@ -1284,7 +1325,7 @@ console.log(evens);
 <!-- div -->
 
 ### <a id="_removearray-predicate_identity"></a>`_.remove(array, [predicate=_.identity])`
-<a href="#_removearray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6366 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.remove "See the npm package")
+<a href="#_removearray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6425 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.remove "See the npm package")
 
 Removes all elements from `array` that `predicate` returns truthy for
 and returns an array of the removed elements. The predicate is invoked
@@ -1321,7 +1362,7 @@ console.log(evens);
 <!-- div -->
 
 ### <a id="_reverse"></a>`_.reverse()`
-<a href="#_reverse">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6408 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.reverse "See the npm package")
+<a href="#_reverse">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6467 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.reverse "See the npm package")
 
 Reverses `array` so that the first element becomes the last, the second
 element becomes the second to last, and so on.
@@ -1350,7 +1391,7 @@ console.log(array);
 <!-- div -->
 
 ### <a id="_slicearray-start0-endarraylength"></a>`_.slice(array, [start=0], [end=array.length])`
-<a href="#_slicearray-start0-endarraylength">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6426 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.slice "See the npm package")
+<a href="#_slicearray-start0-endarraylength">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6485 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.slice "See the npm package")
 
 Creates a slice of `array` from `start` up to, but not including, `end`.
 <br>
@@ -1373,7 +1414,7 @@ to ensure dense arrays are returned.
 <!-- div -->
 
 ### <a id="_sortedindexarray-value"></a>`_.sortedIndex(array, value)`
-<a href="#_sortedindexarray-value">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6460 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortedindex "See the npm package")
+<a href="#_sortedindexarray-value">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6519 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortedindex "See the npm package")
 
 Uses a binary search to determine the lowest index at which `value` should
 be inserted into `array` in order to maintain its sort order.
@@ -1400,7 +1441,7 @@ _.sortedIndex([4, 5], 4);
 <!-- div -->
 
 ### <a id="_sortedindexbyarray-value-iteratee_identity"></a>`_.sortedIndexBy(array, value, [iteratee=_.identity])`
-<a href="#_sortedindexbyarray-value-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6487 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortedindexby "See the npm package")
+<a href="#_sortedindexbyarray-value-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6546 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortedindexby "See the npm package")
 
 This method is like `_.sortedIndex` except that it accepts `iteratee`
 which is invoked for `value` and each element of `array` to compute their
@@ -1432,7 +1473,7 @@ _.sortedIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');
 <!-- div -->
 
 ### <a id="_sortedindexofarray-value"></a>`_.sortedIndexOf(array, value)`
-<a href="#_sortedindexofarray-value">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6506 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortedindexof "See the npm package")
+<a href="#_sortedindexofarray-value">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6565 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortedindexof "See the npm package")
 
 This method is like `_.indexOf` except that it performs a binary
 search on a sorted `array`.
@@ -1456,7 +1497,7 @@ _.sortedIndexOf([1, 1, 2, 2], 2);
 <!-- div -->
 
 ### <a id="_sortedlastindexarray-value"></a>`_.sortedLastIndex(array, value)`
-<a href="#_sortedlastindexarray-value">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6533 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortedlastindex "See the npm package")
+<a href="#_sortedlastindexarray-value">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6592 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortedlastindex "See the npm package")
 
 This method is like `_.sortedIndex` except that it returns the highest
 index at which `value` should be inserted into `array` in order to
@@ -1481,7 +1522,7 @@ _.sortedLastIndex([4, 5], 4);
 <!-- div -->
 
 ### <a id="_sortedlastindexbyarray-value-iteratee_identity"></a>`_.sortedLastIndexBy(array, value, [iteratee=_.identity])`
-<a href="#_sortedlastindexbyarray-value-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6555 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortedlastindexby "See the npm package")
+<a href="#_sortedlastindexbyarray-value-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6614 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortedlastindexby "See the npm package")
 
 This method is like `_.sortedLastIndex` except that it accepts `iteratee`
 which is invoked for `value` and each element of `array` to compute their
@@ -1508,7 +1549,7 @@ _.sortedLastIndexBy([{ 'x': 4 }, { 'x': 5 }], { 'x': 4 }, 'x');
 <!-- div -->
 
 ### <a id="_sortedlastindexofarray-value"></a>`_.sortedLastIndexOf(array, value)`
-<a href="#_sortedlastindexofarray-value">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6574 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortedlastindexof "See the npm package")
+<a href="#_sortedlastindexofarray-value">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6633 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortedlastindexof "See the npm package")
 
 This method is like `_.lastIndexOf` except that it performs a binary
 search on a sorted `array`.
@@ -1532,7 +1573,7 @@ _.sortedLastIndexOf([1, 1, 2, 2], 2);
 <!-- div -->
 
 ### <a id="_sorteduniqarray"></a>`_.sortedUniq(array)`
-<a href="#_sorteduniqarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6599 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sorteduniq "See the npm package")
+<a href="#_sorteduniqarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6658 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sorteduniq "See the npm package")
 
 This method is like `_.uniq` except that it's designed and optimized
 for sorted arrays.
@@ -1555,7 +1596,7 @@ _.sortedUniq([1, 1, 2]);
 <!-- div -->
 
 ### <a id="_sorteduniqbyarray-iteratee"></a>`_.sortedUniqBy(array, [iteratee])`
-<a href="#_sorteduniqbyarray-iteratee">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6620 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sorteduniqby "See the npm package")
+<a href="#_sorteduniqbyarray-iteratee">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6679 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sorteduniqby "See the npm package")
 
 This method is like `_.uniqBy` except that it's designed and optimized
 for sorted arrays.
@@ -1579,7 +1620,7 @@ _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);
 <!-- div -->
 
 ### <a id="_tailarray"></a>`_.tail(array)`
-<a href="#_tailarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6639 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tail "See the npm package")
+<a href="#_tailarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6698 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tail "See the npm package")
 
 Gets all but the first element of `array`.
 
@@ -1601,7 +1642,7 @@ _.tail([1, 2, 3]);
 <!-- div -->
 
 ### <a id="_takearray-n1"></a>`_.take(array, [n=1])`
-<a href="#_takearray-n1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6667 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.take "See the npm package")
+<a href="#_takearray-n1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6726 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.take "See the npm package")
 
 Creates a slice of `array` with `n` elements taken from the beginning.
 
@@ -1633,7 +1674,7 @@ _.take([1, 2, 3], 0);
 <!-- div -->
 
 ### <a id="_takerightarray-n1"></a>`_.takeRight(array, [n=1])`
-<a href="#_takerightarray-n1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6699 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.takeright "See the npm package")
+<a href="#_takerightarray-n1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6758 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.takeright "See the npm package")
 
 Creates a slice of `array` with `n` elements taken from the end.
 
@@ -1665,7 +1706,7 @@ _.takeRight([1, 2, 3], 0);
 <!-- div -->
 
 ### <a id="_takerightwhilearray-predicate_identity"></a>`_.takeRightWhile(array, [predicate=_.identity])`
-<a href="#_takerightwhilearray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6743 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.takerightwhile "See the npm package")
+<a href="#_takerightwhilearray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6802 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.takerightwhile "See the npm package")
 
 Creates a slice of `array` with elements taken from the end. Elements are
 taken until `predicate` returns falsey. The predicate is invoked with three
@@ -1708,7 +1749,7 @@ _.takeRightWhile(users, 'active');
 <!-- div -->
 
 ### <a id="_takewhilearray-predicate_identity"></a>`_.takeWhile(array, [predicate=_.identity])`
-<a href="#_takewhilearray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6783 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.takewhile "See the npm package")
+<a href="#_takewhilearray-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6842 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.takewhile "See the npm package")
 
 Creates a slice of `array` with elements taken from the beginning. Elements
 are taken until `predicate` returns falsey. The predicate is invoked with
@@ -1751,7 +1792,7 @@ _.takeWhile(users, 'active');
 <!-- div -->
 
 ### <a id="_unionarrays"></a>`_.union([arrays])`
-<a href="#_unionarrays">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6804 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.union "See the npm package")
+<a href="#_unionarrays">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6863 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.union "See the npm package")
 
 Creates an array of unique values, in order, from all given arrays using
 [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
@@ -1775,7 +1816,7 @@ _.union([2, 1], [4, 2], [1, 2]);
 <!-- div -->
 
 ### <a id="_unionbyarrays-iteratee_identity"></a>`_.unionBy([arrays], [iteratee=_.identity])`
-<a href="#_unionbyarrays-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6828 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unionby "See the npm package")
+<a href="#_unionbyarrays-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6887 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unionby "See the npm package")
 
 This method is like `_.union` except that it accepts `iteratee` which is
 invoked for each element of each `arrays` to generate the criterion by which
@@ -1804,7 +1845,7 @@ _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
 <!-- div -->
 
 ### <a id="_unionwitharrays-comparator"></a>`_.unionWith([arrays], [comparator])`
-<a href="#_unionwitharrays-comparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6855 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unionwith "See the npm package")
+<a href="#_unionwitharrays-comparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6914 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unionwith "See the npm package")
 
 This method is like `_.union` except that it accepts `comparator` which
 is invoked to compare elements of `arrays`. The comparator is invoked
@@ -1832,7 +1873,7 @@ _.unionWith(objects, others, _.isEqual);
 <!-- div -->
 
 ### <a id="_uniqarray"></a>`_.uniq(array)`
-<a href="#_uniqarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6879 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.uniq "See the npm package")
+<a href="#_uniqarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6938 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.uniq "See the npm package")
 
 Creates a duplicate-free version of an array, using
 [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
@@ -1857,7 +1898,7 @@ _.uniq([2, 1, 2]);
 <!-- div -->
 
 ### <a id="_uniqbyarray-iteratee_identity"></a>`_.uniqBy(array, [iteratee=_.identity])`
-<a href="#_uniqbyarray-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6905 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.uniqby "See the npm package")
+<a href="#_uniqbyarray-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6964 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.uniqby "See the npm package")
 
 This method is like `_.uniq` except that it accepts `iteratee` which is
 invoked for each element in `array` to generate the criterion by which
@@ -1886,7 +1927,7 @@ _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');
 <!-- div -->
 
 ### <a id="_uniqwitharray-comparator"></a>`_.uniqWith(array, [comparator])`
-<a href="#_uniqwitharray-comparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6929 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.uniqwith "See the npm package")
+<a href="#_uniqwitharray-comparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L6988 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.uniqwith "See the npm package")
 
 This method is like `_.uniq` except that it accepts `comparator` which
 is invoked to compare elements of `array`. The comparator is invoked with
@@ -1913,7 +1954,7 @@ _.uniqWith(objects, _.isEqual);
 <!-- div -->
 
 ### <a id="_unziparray"></a>`_.unzip(array)`
-<a href="#_unziparray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6953 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unzip "See the npm package")
+<a href="#_unziparray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7012 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unzip "See the npm package")
 
 This method is like `_.zip` except that it accepts an array of grouped
 elements and creates an array regrouping the elements to their pre-zip
@@ -1940,7 +1981,7 @@ _.unzip(zipped);
 <!-- div -->
 
 ### <a id="_unzipwitharray-iteratee_identity"></a>`_.unzipWith(array, [iteratee=_.identity])`
-<a href="#_unzipwitharray-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L6988 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unzipwith "See the npm package")
+<a href="#_unzipwitharray-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7047 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unzipwith "See the npm package")
 
 This method is like `_.unzip` except that it accepts `iteratee` to specify
 how regrouped values should be combined. The iteratee is invoked with the
@@ -1968,7 +2009,7 @@ _.unzipWith(zipped, _.add);
 <!-- div -->
 
 ### <a id="_withoutarray-values"></a>`_.without(array, [values])`
-<a href="#_withoutarray-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7017 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.without "See the npm package")
+<a href="#_withoutarray-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7076 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.without "See the npm package")
 
 Creates an array excluding all given values using
 [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
@@ -1993,10 +2034,11 @@ _.without([1, 2, 1, 3], 1, 2);
 <!-- div -->
 
 ### <a id="_xorarrays"></a>`_.xor([arrays])`
-<a href="#_xorarrays">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7037 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.xor "See the npm package")
+<a href="#_xorarrays">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7097 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.xor "See the npm package")
 
 Creates an array of unique values that is the [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
-of the given arrays.
+of the given arrays. The order of result values is determined by the order
+they occur in the arrays.
 
 #### Arguments
 1. `[arrays]` *(...Array)*: The arrays to inspect.
@@ -2016,11 +2058,11 @@ _.xor([2, 1], [4, 2]);
 <!-- div -->
 
 ### <a id="_xorbyarrays-iteratee_identity"></a>`_.xorBy([arrays], [iteratee=_.identity])`
-<a href="#_xorbyarrays-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7061 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.xorby "See the npm package")
+<a href="#_xorbyarrays-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7121 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.xorby "See the npm package")
 
 This method is like `_.xor` except that it accepts `iteratee` which is
 invoked for each element of each `arrays` to generate the criterion by which
-uniqueness is computed. The iteratee is invoked with one argument: (value).
+by which they're compared. The iteratee is invoked with one argument: (value).
 
 #### Arguments
 1. `[arrays]` *(...Array)*: The arrays to inspect.
@@ -2045,7 +2087,7 @@ _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
 <!-- div -->
 
 ### <a id="_xorwitharrays-comparator"></a>`_.xorWith([arrays], [comparator])`
-<a href="#_xorwitharrays-comparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7088 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.xorwith "See the npm package")
+<a href="#_xorwitharrays-comparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7148 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.xorwith "See the npm package")
 
 This method is like `_.xor` except that it accepts `comparator` which is
 invoked to compare elements of `arrays`. The comparator is invoked with
@@ -2073,7 +2115,7 @@ _.xorWith(objects, others, _.isEqual);
 <!-- div -->
 
 ### <a id="_ziparrays"></a>`_.zip([arrays])`
-<a href="#_ziparrays">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7111 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.zip "See the npm package")
+<a href="#_ziparrays">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7171 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.zip "See the npm package")
 
 Creates an array of grouped elements, the first of which contains the first
 elements of the given arrays, the second of which contains the second elements
@@ -2097,7 +2139,7 @@ _.zip(['fred', 'barney'], [30, 40], [true, false]);
 <!-- div -->
 
 ### <a id="_zipobjectprops-values"></a>`_.zipObject([props=[]], [values=[]])`
-<a href="#_zipobjectprops-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7128 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.zipobject "See the npm package")
+<a href="#_zipobjectprops-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7188 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.zipobject "See the npm package")
 
 This method is like `_.fromPairs` except that it accepts two arrays,
 one of property names and one of corresponding values.
@@ -2121,7 +2163,7 @@ _.zipObject(['a', 'b'], [1, 2]);
 <!-- div -->
 
 ### <a id="_zipobjectdeepprops-values"></a>`_.zipObjectDeep([props=[]], [values=[]])`
-<a href="#_zipobjectdeepprops-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7146 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.zipobjectdeep "See the npm package")
+<a href="#_zipobjectdeepprops-values">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7206 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.zipobjectdeep "See the npm package")
 
 This method is like `_.zipObject` except that it supports property paths.
 
@@ -2144,7 +2186,7 @@ _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);
 <!-- div -->
 
 ### <a id="_zipwitharrays-iteratee_identity"></a>`_.zipWith([arrays], [iteratee=_.identity])`
-<a href="#_zipwitharrays-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7168 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.zipwith "See the npm package")
+<a href="#_zipwitharrays-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7228 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.zipwith "See the npm package")
 
 This method is like `_.zip` except that it accepts `iteratee` to specify
 how grouped values should be combined. The iteratee is invoked with the
@@ -2177,7 +2219,7 @@ _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {
 <!-- div -->
 
 ### <a id="_countbycollection-iteratee_identity"></a>`_.countBy(collection, [iteratee=_.identity])`
-<a href="#_countbycollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7559 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.countby "See the npm package")
+<a href="#_countbycollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7619 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.countby "See the npm package")
 
 Creates an object composed of keys generated from the results of running
 each element of `collection` through `iteratee`. The corresponding value
@@ -2206,7 +2248,7 @@ _.countBy(['one', 'two', 'three'], 'length');
 <!-- div -->
 
 ### <a id="_everycollection-predicate_identity"></a>`_.every(collection, [predicate=_.identity])`
-<a href="#_everycollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7597 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.every "See the npm package")
+<a href="#_everycollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7657 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.every "See the npm package")
 
 Checks if `predicate` returns truthy for **all** elements of `collection`.
 Iteration is stopped once `predicate` returns falsey. The predicate is
@@ -2248,7 +2290,7 @@ _.every(users, 'active');
 <!-- div -->
 
 ### <a id="_filtercollection-predicate_identity"></a>`_.filter(collection, [predicate=_.identity])`
-<a href="#_filtercollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7638 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.filter "See the npm package")
+<a href="#_filtercollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7698 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.filter "See the npm package")
 
 Iterates over elements of `collection`, returning an array of all elements
 `predicate` returns truthy for. The predicate is invoked with three arguments:<br>
@@ -2290,7 +2332,7 @@ _.filter(users, 'active');
 <!-- div -->
 
 ### <a id="_findcollection-predicate_identity"></a>`_.find(collection, [predicate=_.identity])`
-<a href="#_findcollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7677 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.find "See the npm package")
+<a href="#_findcollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7737 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.find "See the npm package")
 
 Iterates over elements of `collection`, returning the first element
 `predicate` returns truthy for. The predicate is invoked with three arguments:<br>
@@ -2333,7 +2375,7 @@ _.find(users, 'active');
 <!-- div -->
 
 ### <a id="_findlastcollection-predicate_identity"></a>`_.findLast(collection, [predicate=_.identity])`
-<a href="#_findlastcollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7703 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.findlast "See the npm package")
+<a href="#_findlastcollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7763 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.findlast "See the npm package")
 
 This method is like `_.find` except that it iterates over elements of
 `collection` from right to left.
@@ -2359,7 +2401,7 @@ _.findLast([1, 2, 3, 4], function(n) {
 <!-- div -->
 
 ### <a id="_flatmapcollection-iteratee_identity"></a>`_.flatMap(collection, [iteratee=_.identity])`
-<a href="#_flatmapcollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7732 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flatmap "See the npm package")
+<a href="#_flatmapcollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7792 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flatmap "See the npm package")
 
 Creates an array of flattened values by running each element in `collection`
 through `iteratee` and concating its result to the other mapped values.
@@ -2388,7 +2430,7 @@ _.flatMap([1, 2], duplicate);
 <!-- div -->
 
 ### <a id="_foreachcollection-iteratee_identity"></a>`_.forEach(collection, [iteratee=_.identity])`
-<a href="#_foreachcollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7764 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.foreach "See the npm package")
+<a href="#_foreachcollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7824 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.foreach "See the npm package")
 
 Iterates over elements of `collection` invoking `iteratee` for each element.
 The iteratee is invoked with three arguments: (value, index|key, collection).
@@ -2428,7 +2470,7 @@ _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
 <!-- div -->
 
 ### <a id="_foreachrightcollection-iteratee_identity"></a>`_.forEachRight(collection, [iteratee=_.identity])`
-<a href="#_foreachrightcollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7788 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.foreachright "See the npm package")
+<a href="#_foreachrightcollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7848 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.foreachright "See the npm package")
 
 This method is like `_.forEach` except that it iterates over elements of
 `collection` from right to left.
@@ -2457,7 +2499,7 @@ _.forEachRight([1, 2], function(value) {
 <!-- div -->
 
 ### <a id="_groupbycollection-iteratee_identity"></a>`_.groupBy(collection, [iteratee=_.identity])`
-<a href="#_groupbycollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7815 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.groupby "See the npm package")
+<a href="#_groupbycollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7875 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.groupby "See the npm package")
 
 Creates an object composed of keys generated from the results of running
 each element of `collection` through `iteratee`. The corresponding value
@@ -2487,7 +2529,7 @@ _.groupBy(['one', 'two', 'three'], 'length');
 <!-- div -->
 
 ### <a id="_includescollection-value-fromindex0"></a>`_.includes(collection, value, [fromIndex=0])`
-<a href="#_includescollection-value-fromindex0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7851 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.includes "See the npm package")
+<a href="#_includescollection-value-fromindex0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7911 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.includes "See the npm package")
 
 Checks if `value` is in `collection`. If `collection` is a string it's checked
 for a substring of `value`, otherwise [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
@@ -2523,7 +2565,7 @@ _.includes('pebbles', 'eb');
 <!-- div -->
 
 ### <a id="_invokemapcollection-path-args"></a>`_.invokeMap(collection, path, [args])`
-<a href="#_invokemapcollection-path-args">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7886 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.invokemap "See the npm package")
+<a href="#_invokemapcollection-path-args">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7946 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.invokemap "See the npm package")
 
 Invokes the method at `path` of each element in `collection`, returning
 an array of the results of each invoked method. Any additional arguments
@@ -2553,7 +2595,7 @@ _.invokeMap([123, 456], String.prototype.split, '');
 <!-- div -->
 
 ### <a id="_keybycollection-iteratee_identity"></a>`_.keyBy(collection, [iteratee=_.identity])`
-<a href="#_keybycollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7926 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.keyby "See the npm package")
+<a href="#_keybycollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7986 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.keyby "See the npm package")
 
 Creates an object composed of keys generated from the results of running
 each element of `collection` through `iteratee`. The corresponding value
@@ -2589,7 +2631,7 @@ _.keyBy(array, 'dir');
 <!-- div -->
 
 ### <a id="_mapcollection-iteratee_identity"></a>`_.map(collection, [iteratee=_.identity])`
-<a href="#_mapcollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7971 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.map "See the npm package")
+<a href="#_mapcollection-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8031 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.map "See the npm package")
 
 Creates an array of values by running each element in `collection` through
 `iteratee`. The iteratee is invoked with three arguments:<br>
@@ -2641,7 +2683,7 @@ _.map(users, 'user');
 <!-- div -->
 
 ### <a id="_orderbycollection-iteratees-_identity-orders"></a>`_.orderBy(collection, [iteratees=[_.identity]], [orders])`
-<a href="#_orderbycollection-iteratees-_identity-orders">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8003 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.orderby "See the npm package")
+<a href="#_orderbycollection-iteratees-_identity-orders">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8063 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.orderby "See the npm package")
 
 This method is like `_.sortBy` except that it allows specifying the sort
 orders of the iteratees to sort by. If `orders` is unspecified, all values
@@ -2676,7 +2718,7 @@ _.orderBy(users, ['user', 'age'], ['asc', 'desc']);
 <!-- div -->
 
 ### <a id="_partitioncollection-predicate_identity"></a>`_.partition(collection, [predicate=_.identity])`
-<a href="#_partitioncollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8052 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.partition "See the npm package")
+<a href="#_partitioncollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8112 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.partition "See the npm package")
 
 Creates an array of elements split into two groups, the first of which
 contains elements `predicate` returns truthy for, the second of which
@@ -2720,7 +2762,7 @@ _.partition(users, 'active');
 <!-- div -->
 
 ### <a id="_reducecollection-iteratee_identity-accumulator"></a>`_.reduce(collection, [iteratee=_.identity], [accumulator])`
-<a href="#_reducecollection-iteratee_identity-accumulator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8091 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.reduce "See the npm package")
+<a href="#_reducecollection-iteratee_identity-accumulator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8151 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.reduce "See the npm package")
 
 Reduces `collection` to a value which is the accumulated result of running
 each element in `collection` through `iteratee`, where each successive
@@ -2766,7 +2808,7 @@ _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
 <!-- div -->
 
 ### <a id="_reducerightcollection-iteratee_identity-accumulator"></a>`_.reduceRight(collection, [iteratee=_.identity], [accumulator])`
-<a href="#_reducerightcollection-iteratee_identity-accumulator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8118 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.reduceright "See the npm package")
+<a href="#_reducerightcollection-iteratee_identity-accumulator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8178 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.reduceright "See the npm package")
 
 This method is like `_.reduce` except that it iterates over elements of
 `collection` from right to left.
@@ -2795,7 +2837,7 @@ _.reduceRight(array, function(flattened, other) {
 <!-- div -->
 
 ### <a id="_rejectcollection-predicate_identity"></a>`_.reject(collection, [predicate=_.identity])`
-<a href="#_rejectcollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8157 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.reject "See the npm package")
+<a href="#_rejectcollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8217 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.reject "See the npm package")
 
 The opposite of `_.filter`; this method returns the elements of `collection`
 that `predicate` does **not** return truthy for.
@@ -2836,7 +2878,7 @@ _.reject(users, 'active');
 <!-- div -->
 
 ### <a id="_samplecollection"></a>`_.sample(collection)`
-<a href="#_samplecollection">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8178 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sample "See the npm package")
+<a href="#_samplecollection">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8238 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sample "See the npm package")
 
 Gets a random element from `collection`.
 
@@ -2858,7 +2900,7 @@ _.sample([1, 2, 3, 4]);
 <!-- div -->
 
 ### <a id="_samplesizecollection-n0"></a>`_.sampleSize(collection, [n=0])`
-<a href="#_samplesizecollection-n0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8203 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.samplesize "See the npm package")
+<a href="#_samplesizecollection-n0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8263 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.samplesize "See the npm package")
 
 Gets `n` random elements at unique keys from `collection` up to the
 size of `collection`.
@@ -2885,7 +2927,7 @@ _.sampleSize([1, 2, 3], 4);
 <!-- div -->
 
 ### <a id="_shufflecollection"></a>`_.shuffle(collection)`
-<a href="#_shufflecollection">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8235 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.shuffle "See the npm package")
+<a href="#_shufflecollection">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8295 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.shuffle "See the npm package")
 
 Creates an array of shuffled values, using a version of the
 [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).
@@ -2908,7 +2950,7 @@ _.shuffle([1, 2, 3, 4]);
 <!-- div -->
 
 ### <a id="_sizecollection"></a>`_.size(collection)`
-<a href="#_sizecollection">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8259 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.size "See the npm package")
+<a href="#_sizecollection">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8319 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.size "See the npm package")
 
 Gets the size of `collection` by returning its length for array-like
 values or the number of own enumerable properties for objects.
@@ -2937,7 +2979,7 @@ _.size('pebbles');
 <!-- div -->
 
 ### <a id="_somecollection-predicate_identity"></a>`_.some(collection, [predicate=_.identity])`
-<a href="#_somecollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8304 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.some "See the npm package")
+<a href="#_somecollection-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8364 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.some "See the npm package")
 
 Checks if `predicate` returns truthy for **any** element of `collection`.
 Iteration is stopped once `predicate` returns truthy. The predicate is
@@ -2979,7 +3021,7 @@ _.some(users, 'active');
 <!-- div -->
 
 ### <a id="_sortbycollection-iteratees-_identity"></a>`_.sortBy(collection, [iteratees=[_.identity]])`
-<a href="#_sortbycollection-iteratees-_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8345 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortby "See the npm package")
+<a href="#_sortbycollection-iteratees-_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8405 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sortby "See the npm package")
 
 Creates an array of elements, sorted in ascending order by the results of
 running each element in a collection through each iteratee. This method
@@ -3026,7 +3068,7 @@ _.sortBy(users, 'user', function(o) {
 <!-- div -->
 
 ### <a id="_now"></a>`_.now()`
-<a href="#_now">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8376 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.now "See the npm package")
+<a href="#_now">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8436 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.now "See the npm package")
 
 ({Function}): Gets the timestamp of the number of milliseconds that have elapsed since
 the Unix epoch (1 January 1970 00:00:00 UTC).
@@ -3054,7 +3096,7 @@ _.defer(function(stamp) {
 <!-- div -->
 
 ### <a id="_aftern-func"></a>`_.after(n, func)`
-<a href="#_aftern-func">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8403 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.after "See the npm package")
+<a href="#_aftern-func">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8463 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.after "See the npm package")
 
 The opposite of `_.before`; this method creates a function that invokes
 `func` once it's called `n` or more times.
@@ -3086,7 +3128,7 @@ _.forEach(saves, function(type) {
 <!-- div -->
 
 ### <a id="_aryfunc-nfunclength"></a>`_.ary(func, [n=func.length])`
-<a href="#_aryfunc-nfunclength">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8431 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.ary "See the npm package")
+<a href="#_aryfunc-nfunclength">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8491 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.ary "See the npm package")
 
 Creates a function that accepts up to `n` arguments, ignoring any
 additional arguments.
@@ -3110,7 +3152,7 @@ _.map(['6', '8', '10'], _.ary(parseInt, 1));
 <!-- div -->
 
 ### <a id="_beforen-func"></a>`_.before(n, func)`
-<a href="#_beforen-func">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8453 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.before "See the npm package")
+<a href="#_beforen-func">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8513 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.before "See the npm package")
 
 Creates a function that invokes `func`, with the `this` binding and arguments
 of the created function, while it's called less than `n` times. Subsequent
@@ -3135,7 +3177,7 @@ jQuery(element).on('click', _.before(5, addContactToList));
 <!-- div -->
 
 ### <a id="_bindfunc-thisarg-partials"></a>`_.bind(func, thisArg, [partials])`
-<a href="#_bindfunc-thisarg-partials">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8505 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.bind "See the npm package")
+<a href="#_bindfunc-thisarg-partials">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8565 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.bind "See the npm package")
 
 Creates a function that invokes `func` with the `this` binding of `thisArg`
 and prepends any additional `_.bind` arguments to those provided to the
@@ -3181,7 +3223,7 @@ bound('hi');
 <!-- div -->
 
 ### <a id="_bindkeyobject-key-partials"></a>`_.bindKey(object, key, [partials])`
-<a href="#_bindkeyobject-key-partials">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8558 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.bindkey "See the npm package")
+<a href="#_bindkeyobject-key-partials">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8618 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.bindkey "See the npm package")
 
 Creates a function that invokes the method at `object[key]` and prepends
 any additional `_.bindKey` arguments to those provided to the bound function.
@@ -3236,7 +3278,7 @@ bound('hi');
 <!-- div -->
 
 ### <a id="_curryfunc-arityfunclength"></a>`_.curry(func, [arity=func.length])`
-<a href="#_curryfunc-arityfunclength">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8607 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.curry "See the npm package")
+<a href="#_curryfunc-arityfunclength">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8667 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.curry "See the npm package")
 
 Creates a function that accepts arguments of `func` and either invokes
 `func` returning its result, if at least `arity` number of arguments have
@@ -3286,7 +3328,7 @@ curried(1)(_, 3)(2);
 <!-- div -->
 
 ### <a id="_curryrightfunc-arityfunclength"></a>`_.curryRight(func, [arity=func.length])`
-<a href="#_curryrightfunc-arityfunclength">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8651 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.curryright "See the npm package")
+<a href="#_curryrightfunc-arityfunclength">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8711 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.curryright "See the npm package")
 
 This method is like `_.curry` except that arguments are applied to `func`
 in the manner of `_.partialRight` instead of `_.partial`.
@@ -3333,7 +3375,7 @@ curried(3)(1, _)(2);
 <!-- div -->
 
 ### <a id="_debouncefunc-wait0-options"></a>`_.debounce(func, [wait=0], [options])`
-<a href="#_debouncefunc-wait0-options">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8707 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.debounce "See the npm package")
+<a href="#_debouncefunc-wait0-options">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8767 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.debounce "See the npm package")
 
 Creates a debounced function that delays invoking `func` until after `wait`
 milliseconds have elapsed since the last time the debounced function was
@@ -3390,7 +3432,7 @@ jQuery(window).on('popstate', debounced.cancel);
 <!-- div -->
 
 ### <a id="_deferfunc-args"></a>`_.defer(func, [args])`
-<a href="#_deferfunc-args">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8841 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.defer "See the npm package")
+<a href="#_deferfunc-args">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8901 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.defer "See the npm package")
 
 Defers invoking the `func` until the current call stack has cleared. Any
 additional arguments are provided to `func` when it's invoked.
@@ -3416,7 +3458,7 @@ _.defer(function(text) {
 <!-- div -->
 
 ### <a id="_delayfunc-wait-args"></a>`_.delay(func, wait, [args])`
-<a href="#_delayfunc-wait-args">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8863 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.delay "See the npm package")
+<a href="#_delayfunc-wait-args">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8923 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.delay "See the npm package")
 
 Invokes `func` after `wait` milliseconds. Any additional arguments are
 provided to `func` when it's invoked.
@@ -3443,7 +3485,7 @@ _.delay(function(text) {
 <!-- div -->
 
 ### <a id="_flipfunc"></a>`_.flip(func)`
-<a href="#_flipfunc">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8884 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flip "See the npm package")
+<a href="#_flipfunc">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8944 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flip "See the npm package")
 
 Creates a function that invokes `func` with arguments reversed.
 
@@ -3469,7 +3511,7 @@ flipped('a', 'b', 'c', 'd');
 <!-- div -->
 
 ### <a id="_memoizefunc-resolver"></a>`_.memoize(func, [resolver])`
-<a href="#_memoizefunc-resolver">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8930 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.memoize "See the npm package")
+<a href="#_memoizefunc-resolver">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L8990 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.memoize "See the npm package")
 
 Creates a function that memoizes the result of `func`. If `resolver` is
 provided it determines the cache key for storing the result based on the
@@ -3521,7 +3563,7 @@ _.memoize.Cache = WeakMap;
 <!-- div -->
 
 ### <a id="_negatepredicate"></a>`_.negate(predicate)`
-<a href="#_negatepredicate">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8969 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.negate "See the npm package")
+<a href="#_negatepredicate">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9029 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.negate "See the npm package")
 
 Creates a function that negates the result of the predicate `func`. The
 `func` predicate is invoked with the `this` binding and arguments of the
@@ -3549,7 +3591,7 @@ _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));
 <!-- div -->
 
 ### <a id="_oncefunc"></a>`_.once(func)`
-<a href="#_oncefunc">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L8995 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.once "See the npm package")
+<a href="#_oncefunc">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9055 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.once "See the npm package")
 
 Creates a function that is restricted to invoking `func` once. Repeat calls
 to the function return the value of the first invocation. The `func` is
@@ -3575,7 +3617,7 @@ initialize();
 <!-- div -->
 
 ### <a id="_overargsfunc-transforms"></a>`_.overArgs(func, [transforms])`
-<a href="#_overargsfunc-transforms">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9030 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.overargs "See the npm package")
+<a href="#_overargsfunc-transforms">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9090 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.overargs "See the npm package")
 
 Creates a function that invokes `func` with arguments transformed by
 corresponding `transforms`.
@@ -3614,7 +3656,7 @@ func(10, 5);
 <!-- div -->
 
 ### <a id="_partialfunc-partials"></a>`_.partial(func, [partials])`
-<a href="#_partialfunc-partials">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9077 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.partial "See the npm package")
+<a href="#_partialfunc-partials">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9137 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.partial "See the npm package")
 
 Creates a function that invokes `func` with `partial` arguments prepended
 to those provided to the new function. This method is like `_.bind` except
@@ -3657,7 +3699,7 @@ greetFred('hi');
 <!-- div -->
 
 ### <a id="_partialrightfunc-partials"></a>`_.partialRight(func, [partials])`
-<a href="#_partialrightfunc-partials">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9113 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.partialright "See the npm package")
+<a href="#_partialrightfunc-partials">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9173 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.partialright "See the npm package")
 
 This method is like `_.partial` except that partially applied arguments
 are appended to those provided to the new function.
@@ -3699,7 +3741,7 @@ sayHelloTo('fred');
 <!-- div -->
 
 ### <a id="_reargfunc-indexes"></a>`_.rearg(func, indexes)`
-<a href="#_reargfunc-indexes">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9140 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.rearg "See the npm package")
+<a href="#_reargfunc-indexes">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9200 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.rearg "See the npm package")
 
 Creates a function that invokes `func` with arguments arranged according
 to the specified indexes where the argument value at the first index is
@@ -3729,7 +3771,7 @@ rearged('b', 'c', 'a')
 <!-- div -->
 
 ### <a id="_restfunc-startfunclength-1"></a>`_.rest(func, [start=func.length-1])`
-<a href="#_restfunc-startfunclength-1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9166 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.rest "See the npm package")
+<a href="#_restfunc-startfunclength-1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9226 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.rest "See the npm package")
 
 Creates a function that invokes `func` with the `this` binding of the
 created function and arguments from `start` and beyond provided as an array.
@@ -3761,7 +3803,7 @@ say('hello', 'fred', 'barney', 'pebbles');
 <!-- div -->
 
 ### <a id="_spreadfunc-start0"></a>`_.spread(func, [start=0])`
-<a href="#_spreadfunc-start0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9226 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.spread "See the npm package")
+<a href="#_spreadfunc-start0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9286 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.spread "See the npm package")
 
 Creates a function that invokes `func` with the `this` binding of the created
 function and an array of arguments much like [`Function#apply`](https://es5.github.io/#x15.3.4.3).
@@ -3802,7 +3844,7 @@ numbers.then(_.spread(function(x, y) {
 <!-- div -->
 
 ### <a id="_throttlefunc-wait0-options"></a>`_.throttle(func, [wait=0], [options])`
-<a href="#_throttlefunc-wait0-options">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9282 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.throttle "See the npm package")
+<a href="#_throttlefunc-wait0-options">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9342 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.throttle "See the npm package")
 
 Creates a throttled function that only invokes `func` at most once per
 every `wait` milliseconds. The throttled function comes with a `cancel`
@@ -3851,7 +3893,7 @@ jQuery(window).on('popstate', throttled.cancel);
 <!-- div -->
 
 ### <a id="_unaryfunc"></a>`_.unary(func)`
-<a href="#_unaryfunc">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9314 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unary "See the npm package")
+<a href="#_unaryfunc">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9374 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unary "See the npm package")
 
 Creates a function that accepts up to one argument, ignoring any
 additional arguments.
@@ -3874,7 +3916,7 @@ _.map(['6', '8', '10'], _.unary(parseInt));
 <!-- div -->
 
 ### <a id="_wrapvalue-wrapperidentity"></a>`_.wrap(value, [wrapper=identity])`
-<a href="#_wrapvalue-wrapperidentity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9339 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.wrap "See the npm package")
+<a href="#_wrapvalue-wrapperidentity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9399 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.wrap "See the npm package")
 
 Creates a function that provides `value` to the wrapper function as its
 first argument. Any additional arguments provided to the function are
@@ -3910,7 +3952,7 @@ p('fred, barney, & pebbles');
 <!-- div -->
 
 ### <a id="_castarrayvalue"></a>`_.castArray(value)`
-<a href="#_castarrayvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9378 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.castarray "See the npm package")
+<a href="#_castarrayvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9438 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.castarray "See the npm package")
 
 Casts `value` as an array if it's not one.
 
@@ -3951,7 +3993,7 @@ console.log(_.castArray(array) === array);
 <!-- div -->
 
 ### <a id="_clonevalue"></a>`_.clone(value)`
-<a href="#_clonevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9410 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.clone "See the npm package")
+<a href="#_clonevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9470 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.clone "See the npm package")
 
 Creates a shallow clone of `value`.
 <br>
@@ -3985,7 +4027,7 @@ console.log(shallow[0] === objects[0]);
 <!-- div -->
 
 ### <a id="_clonedeepvalue"></a>`_.cloneDeep(value)`
-<a href="#_clonedeepvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9463 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.clonedeep "See the npm package")
+<a href="#_clonedeepvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9523 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.clonedeep "See the npm package")
 
 This method is like `_.clone` except that it recursively clones `value`.
 
@@ -4010,7 +4052,7 @@ console.log(deep[0] === objects[0]);
 <!-- div -->
 
 ### <a id="_clonedeepwithvalue-customizer"></a>`_.cloneDeepWith(value, [customizer])`
-<a href="#_clonedeepwithvalue-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9493 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.clonedeepwith "See the npm package")
+<a href="#_clonedeepwithvalue-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9553 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.clonedeepwith "See the npm package")
 
 This method is like `_.cloneWith` except that it recursively clones `value`.
 
@@ -4045,7 +4087,7 @@ console.log(el.childNodes.length);
 <!-- div -->
 
 ### <a id="_clonewithvalue-customizer"></a>`_.cloneWith(value, [customizer])`
-<a href="#_clonewithvalue-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9443 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.clonewith "See the npm package")
+<a href="#_clonewithvalue-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9503 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.clonewith "See the npm package")
 
 This method is like `_.clone` except that it accepts `customizer` which
 is invoked to produce the cloned value. If `customizer` returns `undefined`
@@ -4083,7 +4125,7 @@ console.log(el.childNodes.length);
 <!-- div -->
 
 ### <a id="_eqvalue-other"></a>`_.eq(value, other)`
-<a href="#_eqvalue-other">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9527 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.eq "See the npm package")
+<a href="#_eqvalue-other">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9587 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.eq "See the npm package")
 
 Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
 comparison between two values to determine if they are equivalent.
@@ -4122,7 +4164,7 @@ _.eq(NaN, NaN);
 <!-- div -->
 
 ### <a id="_gtvalue-other"></a>`_.gt(value, other)`
-<a href="#_gtvalue-other">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9551 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.gt "See the npm package")
+<a href="#_gtvalue-other">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9611 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.gt "See the npm package")
 
 Checks if `value` is greater than `other`.
 
@@ -4151,7 +4193,7 @@ _.gt(1, 3);
 <!-- div -->
 
 ### <a id="_gtevalue-other"></a>`_.gte(value, other)`
-<a href="#_gtevalue-other">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9575 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.gte "See the npm package")
+<a href="#_gtevalue-other">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9635 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.gte "See the npm package")
 
 Checks if `value` is greater than or equal to `other`.
 
@@ -4180,7 +4222,7 @@ _.gte(1, 3);
 <!-- div -->
 
 ### <a id="_isargumentsvalue"></a>`_.isArguments(value)`
-<a href="#_isargumentsvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9595 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isarguments "See the npm package")
+<a href="#_isargumentsvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9655 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isarguments "See the npm package")
 
 Checks if `value` is likely an `arguments` object.
 
@@ -4205,7 +4247,7 @@ _.isArguments([1, 2, 3]);
 <!-- div -->
 
 ### <a id="_isarrayvalue"></a>`_.isArray(value)`
-<a href="#_isarrayvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9624 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isarray "See the npm package")
+<a href="#_isarrayvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9684 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isarray "See the npm package")
 
 ({Function}): Checks if `value` is classified as an `Array` object.
 
@@ -4236,7 +4278,7 @@ _.isArray(_.noop);
 <!-- div -->
 
 ### <a id="_isarraybuffervalue"></a>`_.isArrayBuffer(value)`
-<a href="#_isarraybuffervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9642 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isarraybuffer "See the npm package")
+<a href="#_isarraybuffervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9702 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isarraybuffer "See the npm package")
 
 Checks if `value` is classified as an `ArrayBuffer` object.
 
@@ -4261,7 +4303,7 @@ _.isArrayBuffer(new Array(2));
 <!-- div -->
 
 ### <a id="_isarraylikevalue"></a>`_.isArrayLike(value)`
-<a href="#_isarraylikevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9670 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isarraylike "See the npm package")
+<a href="#_isarraylikevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9730 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isarraylike "See the npm package")
 
 Checks if `value` is array-like. A value is considered array-like if it's
 not a function and has a `value.length` that's an integer greater than or
@@ -4294,7 +4336,7 @@ _.isArrayLike(_.noop);
 <!-- div -->
 
 ### <a id="_isarraylikeobjectvalue"></a>`_.isArrayLikeObject(value)`
-<a href="#_isarraylikeobjectvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9698 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isarraylikeobject "See the npm package")
+<a href="#_isarraylikeobjectvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9757 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isarraylikeobject "See the npm package")
 
 This method is like `_.isArrayLike` except that it also checks if `value`
 is an object.
@@ -4326,7 +4368,7 @@ _.isArrayLikeObject(_.noop);
 <!-- div -->
 
 ### <a id="_isbooleanvalue"></a>`_.isBoolean(value)`
-<a href="#_isbooleanvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9718 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isboolean "See the npm package")
+<a href="#_isbooleanvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9777 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isboolean "See the npm package")
 
 Checks if `value` is classified as a boolean primitive or object.
 
@@ -4351,7 +4393,7 @@ _.isBoolean(null);
 <!-- div -->
 
 ### <a id="_isbuffervalue"></a>`_.isBuffer(value)`
-<a href="#_isbuffervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9739 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isbuffer "See the npm package")
+<a href="#_isbuffervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9798 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isbuffer "See the npm package")
 
 Checks if `value` is a buffer.
 
@@ -4376,7 +4418,7 @@ _.isBuffer(new Uint8Array(2));
 <!-- div -->
 
 ### <a id="_isdatevalue"></a>`_.isDate(value)`
-<a href="#_isdatevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9759 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isdate "See the npm package")
+<a href="#_isdatevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9818 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isdate "See the npm package")
 
 Checks if `value` is classified as a `Date` object.
 
@@ -4401,7 +4443,7 @@ _.isDate('Mon April 23 2012');
 <!-- div -->
 
 ### <a id="_iselementvalue"></a>`_.isElement(value)`
-<a href="#_iselementvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9779 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.iselement "See the npm package")
+<a href="#_iselementvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9838 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.iselement "See the npm package")
 
 Checks if `value` is likely a DOM element.
 
@@ -4426,14 +4468,14 @@ _.isElement('<body>');
 <!-- div -->
 
 ### <a id="_isemptyvalue"></a>`_.isEmpty(value)`
-<a href="#_isemptyvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9810 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isempty "See the npm package")
+<a href="#_isemptyvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9869 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isempty "See the npm package")
 
-Checks if `value` is empty. A value is considered empty unless it's an
-`arguments` object, array, string, or jQuery-like collection with a length
-greater than `0` or an object with own enumerable properties.
+Checks if `value` is an empty collection or object. A value is considered
+empty if it's an `arguments` object, array, string, or jQuery-like collection
+with a length of `0` or has no own enumerable properties.
 
 #### Arguments
-1. `value` *(Array|Object|string)*: The value to inspect.
+1. `value` *(&#42;)*: The value to check.
 
 #### Returns
 *(boolean)*:  Returns `true` if `value` is empty, else `false`.
@@ -4462,7 +4504,7 @@ _.isEmpty({ 'a': 1 });
 <!-- div -->
 
 ### <a id="_isequalvalue-other"></a>`_.isEqual(value, other)`
-<a href="#_isequalvalue-other">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9851 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isequal "See the npm package")
+<a href="#_isequalvalue-other">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9910 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isequal "See the npm package")
 
 Performs a deep comparison between two values to determine if they are
 equivalent.
@@ -4499,7 +4541,7 @@ object === other;
 <!-- div -->
 
 ### <a id="_isequalwithvalue-other-customizer"></a>`_.isEqualWith(value, other, [customizer])`
-<a href="#_isequalwithvalue-other-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9886 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isequalwith "See the npm package")
+<a href="#_isequalwithvalue-other-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9945 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isequalwith "See the npm package")
 
 This method is like `_.isEqual` except that it accepts `customizer` which
 is invoked to compare values. If `customizer` returns `undefined` comparisons
@@ -4539,7 +4581,7 @@ _.isEqualWith(array, other, customizer);
 <!-- div -->
 
 ### <a id="_iserrorvalue"></a>`_.isError(value)`
-<a href="#_iserrorvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9909 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.iserror "See the npm package")
+<a href="#_iserrorvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L9968 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.iserror "See the npm package")
 
 Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,
 `SyntaxError`, `TypeError`, or `URIError` object.
@@ -4565,7 +4607,7 @@ _.isError(Error);
 <!-- div -->
 
 ### <a id="_isfinitevalue"></a>`_.isFinite(value)`
-<a href="#_isfinitevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9941 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isfinite "See the npm package")
+<a href="#_isfinitevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10000 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isfinite "See the npm package")
 
 Checks if `value` is a finite primitive number.
 <br>
@@ -4599,7 +4641,7 @@ _.isFinite(Infinity);
 <!-- div -->
 
 ### <a id="_isfunctionvalue"></a>`_.isFunction(value)`
-<a href="#_isfunctionvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9961 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isfunction "See the npm package")
+<a href="#_isfunctionvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10020 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isfunction "See the npm package")
 
 Checks if `value` is classified as a `Function` object.
 
@@ -4624,7 +4666,7 @@ _.isFunction(/abc/);
 <!-- div -->
 
 ### <a id="_isintegervalue"></a>`_.isInteger(value)`
-<a href="#_isintegervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L9993 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isinteger "See the npm package")
+<a href="#_isintegervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10052 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isinteger "See the npm package")
 
 Checks if `value` is an integer.
 <br>
@@ -4658,7 +4700,7 @@ _.isInteger('3');
 <!-- div -->
 
 ### <a id="_islengthvalue"></a>`_.isLength(value)`
-<a href="#_islengthvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10021 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.islength "See the npm package")
+<a href="#_islengthvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10080 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.islength "See the npm package")
 
 Checks if `value` is a valid array-like length.
 <br>
@@ -4692,7 +4734,7 @@ _.isLength('3');
 <!-- div -->
 
 ### <a id="_ismapvalue"></a>`_.isMap(value)`
-<a href="#_ismapvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10097 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.ismap "See the npm package")
+<a href="#_ismapvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10156 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.ismap "See the npm package")
 
 Checks if `value` is classified as a `Map` object.
 
@@ -4717,7 +4759,7 @@ _.isMap(new WeakMap);
 <!-- div -->
 
 ### <a id="_ismatchobject-source"></a>`_.isMatch(object, source)`
-<a href="#_ismatchobject-source">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10124 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.ismatch "See the npm package")
+<a href="#_ismatchobject-source">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10183 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.ismatch "See the npm package")
 
 Performs a partial deep comparison between `object` and `source` to
 determine if `object` contains equivalent property values. This method is
@@ -4750,7 +4792,7 @@ _.isMatch(object, { 'age': 36 });
 <!-- div -->
 
 ### <a id="_ismatchwithobject-source-customizer"></a>`_.isMatchWith(object, source, [customizer])`
-<a href="#_ismatchwithobject-source-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10159 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.ismatchwith "See the npm package")
+<a href="#_ismatchwithobject-source-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10218 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.ismatchwith "See the npm package")
 
 This method is like `_.isMatch` except that it accepts `customizer` which
 is invoked to compare values. If `customizer` returns `undefined` comparisons
@@ -4790,7 +4832,7 @@ _.isMatchWith(object, source, customizer);
 <!-- div -->
 
 ### <a id="_isnanvalue"></a>`_.isNaN(value)`
-<a href="#_isnanvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10189 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isnan "See the npm package")
+<a href="#_isnanvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10248 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isnan "See the npm package")
 
 Checks if `value` is `NaN`.
 <br>
@@ -4825,7 +4867,7 @@ _.isNaN(undefined);
 <!-- div -->
 
 ### <a id="_isnativevalue"></a>`_.isNative(value)`
-<a href="#_isnativevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10211 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isnative "See the npm package")
+<a href="#_isnativevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10270 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isnative "See the npm package")
 
 Checks if `value` is a native function.
 
@@ -4850,7 +4892,7 @@ _.isNative(_);
 <!-- div -->
 
 ### <a id="_isnilvalue"></a>`_.isNil(value)`
-<a href="#_isnilvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10261 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isnil "See the npm package")
+<a href="#_isnilvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10320 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isnil "See the npm package")
 
 Checks if `value` is `null` or `undefined`.
 
@@ -4878,7 +4920,7 @@ _.isNil(NaN);
 <!-- div -->
 
 ### <a id="_isnullvalue"></a>`_.isNull(value)`
-<a href="#_isnullvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10238 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isnull "See the npm package")
+<a href="#_isnullvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10297 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isnull "See the npm package")
 
 Checks if `value` is `null`.
 
@@ -4903,7 +4945,7 @@ _.isNull(void 0);
 <!-- div -->
 
 ### <a id="_isnumbervalue"></a>`_.isNumber(value)`
-<a href="#_isnumbervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10290 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isnumber "See the npm package")
+<a href="#_isnumbervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10349 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isnumber "See the npm package")
 
 Checks if `value` is classified as a `Number` primitive or object.
 <br>
@@ -4938,7 +4980,7 @@ _.isNumber('3');
 <!-- div -->
 
 ### <a id="_isobjectvalue"></a>`_.isObject(value)`
-<a href="#_isobjectvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10049 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isobject "See the npm package")
+<a href="#_isobjectvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10108 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isobject "See the npm package")
 
 Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
 (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
@@ -4970,7 +5012,7 @@ _.isObject(null);
 <!-- div -->
 
 ### <a id="_isobjectlikevalue"></a>`_.isObjectLike(value)`
-<a href="#_isobjectlikevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10077 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isobjectlike "See the npm package")
+<a href="#_isobjectlikevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10136 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isobjectlike "See the npm package")
 
 Checks if `value` is object-like. A value is object-like if it's not `null`
 and has a `typeof` result of "object".
@@ -5002,7 +5044,7 @@ _.isObjectLike(null);
 <!-- div -->
 
 ### <a id="_isplainobjectvalue"></a>`_.isPlainObject(value)`
-<a href="#_isplainobjectvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10322 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isplainobject "See the npm package")
+<a href="#_isplainobjectvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10381 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isplainobject "See the npm package")
 
 Checks if `value` is a plain object, that is, an object created by the
 `Object` constructor or one with a `[[Prototype]]` of `null`.
@@ -5038,7 +5080,7 @@ _.isPlainObject(Object.create(null));
 <!-- div -->
 
 ### <a id="_isregexpvalue"></a>`_.isRegExp(value)`
-<a href="#_isregexpvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10352 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isregexp "See the npm package")
+<a href="#_isregexpvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10411 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isregexp "See the npm package")
 
 Checks if `value` is classified as a `RegExp` object.
 
@@ -5063,7 +5105,7 @@ _.isRegExp('/abc/');
 <!-- div -->
 
 ### <a id="_issafeintegervalue"></a>`_.isSafeInteger(value)`
-<a href="#_issafeintegervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10381 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.issafeinteger "See the npm package")
+<a href="#_issafeintegervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10440 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.issafeinteger "See the npm package")
 
 Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754
 double precision number which isn't the result of a rounded unsafe integer.
@@ -5098,7 +5140,7 @@ _.isSafeInteger('3');
 <!-- div -->
 
 ### <a id="_issetvalue"></a>`_.isSet(value)`
-<a href="#_issetvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10401 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isset "See the npm package")
+<a href="#_issetvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10460 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isset "See the npm package")
 
 Checks if `value` is classified as a `Set` object.
 
@@ -5123,7 +5165,7 @@ _.isSet(new WeakSet);
 <!-- div -->
 
 ### <a id="_isstringvalue"></a>`_.isString(value)`
-<a href="#_isstringvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10421 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isstring "See the npm package")
+<a href="#_isstringvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10480 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isstring "See the npm package")
 
 Checks if `value` is classified as a `String` primitive or object.
 
@@ -5148,7 +5190,7 @@ _.isString(1);
 <!-- div -->
 
 ### <a id="_issymbolvalue"></a>`_.isSymbol(value)`
-<a href="#_issymbolvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10442 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.issymbol "See the npm package")
+<a href="#_issymbolvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10501 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.issymbol "See the npm package")
 
 Checks if `value` is classified as a `Symbol` primitive or object.
 
@@ -5173,7 +5215,7 @@ _.isSymbol('abc');
 <!-- div -->
 
 ### <a id="_istypedarrayvalue"></a>`_.isTypedArray(value)`
-<a href="#_istypedarrayvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10463 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.istypedarray "See the npm package")
+<a href="#_istypedarrayvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10522 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.istypedarray "See the npm package")
 
 Checks if `value` is classified as a typed array.
 
@@ -5198,7 +5240,7 @@ _.isTypedArray([]);
 <!-- div -->
 
 ### <a id="_isundefinedvalue"></a>`_.isUndefined(value)`
-<a href="#_isundefinedvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10484 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isundefined "See the npm package")
+<a href="#_isundefinedvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10543 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isundefined "See the npm package")
 
 Checks if `value` is `undefined`.
 
@@ -5223,7 +5265,7 @@ _.isUndefined(null);
 <!-- div -->
 
 ### <a id="_isweakmapvalue"></a>`_.isWeakMap(value)`
-<a href="#_isweakmapvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10504 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isweakmap "See the npm package")
+<a href="#_isweakmapvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10563 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isweakmap "See the npm package")
 
 Checks if `value` is classified as a `WeakMap` object.
 
@@ -5248,7 +5290,7 @@ _.isWeakMap(new Map);
 <!-- div -->
 
 ### <a id="_isweaksetvalue"></a>`_.isWeakSet(value)`
-<a href="#_isweaksetvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10524 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isweakset "See the npm package")
+<a href="#_isweaksetvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10583 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.isweakset "See the npm package")
 
 Checks if `value` is classified as a `WeakSet` object.
 
@@ -5273,7 +5315,7 @@ _.isWeakSet(new Set);
 <!-- div -->
 
 ### <a id="_ltvalue-other"></a>`_.lt(value, other)`
-<a href="#_ltvalue-other">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10548 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.lt "See the npm package")
+<a href="#_ltvalue-other">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10607 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.lt "See the npm package")
 
 Checks if `value` is less than `other`.
 
@@ -5302,7 +5344,7 @@ _.lt(3, 1);
 <!-- div -->
 
 ### <a id="_ltevalue-other"></a>`_.lte(value, other)`
-<a href="#_ltevalue-other">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10572 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.lte "See the npm package")
+<a href="#_ltevalue-other">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10631 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.lte "See the npm package")
 
 Checks if `value` is less than or equal to `other`.
 
@@ -5331,7 +5373,7 @@ _.lte(3, 1);
 <!-- div -->
 
 ### <a id="_toarrayvalue"></a>`_.toArray(value)`
-<a href="#_toarrayvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10598 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.toarray "See the npm package")
+<a href="#_toarrayvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10657 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.toarray "See the npm package")
 
 Converts `value` to an array.
 
@@ -5362,7 +5404,7 @@ _.toArray(null);
 <!-- div -->
 
 ### <a id="_tointegervalue"></a>`_.toInteger(value)`
-<a href="#_tointegervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10638 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tointeger "See the npm package")
+<a href="#_tointegervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10697 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tointeger "See the npm package")
 
 Converts `value` to an integer.
 <br>
@@ -5396,7 +5438,7 @@ _.toInteger('3');
 <!-- div -->
 
 ### <a id="_tolengthvalue"></a>`_.toLength(value)`
-<a href="#_tolengthvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10676 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tolength "See the npm package")
+<a href="#_tolengthvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10735 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tolength "See the npm package")
 
 Converts `value` to an integer suitable for use as the length of an
 array-like object.
@@ -5431,7 +5473,7 @@ _.toLength('3');
 <!-- div -->
 
 ### <a id="_tonumbervalue"></a>`_.toNumber(value)`
-<a href="#_tonumbervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10702 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tonumber "See the npm package")
+<a href="#_tonumbervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10761 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tonumber "See the npm package")
 
 Converts `value` to a number.
 
@@ -5462,7 +5504,7 @@ _.toNumber('3');
 <!-- div -->
 
 ### <a id="_toplainobjectvalue"></a>`_.toPlainObject(value)`
-<a href="#_toplainobjectvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10740 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.toplainobject "See the npm package")
+<a href="#_toplainobjectvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10799 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.toplainobject "See the npm package")
 
 Converts `value` to a plain object flattening inherited enumerable
 properties of `value` to own properties of the plain object.
@@ -5494,7 +5536,7 @@ _.assign({ 'a': 1 }, _.toPlainObject(new Foo));
 <!-- div -->
 
 ### <a id="_tosafeintegervalue"></a>`_.toSafeInteger(value)`
-<a href="#_tosafeintegervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10767 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tosafeinteger "See the npm package")
+<a href="#_tosafeintegervalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10826 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tosafeinteger "See the npm package")
 
 Converts `value` to a safe integer. A safe integer can be compared and
 represented correctly.
@@ -5526,7 +5568,7 @@ _.toSafeInteger('3');
 <!-- div -->
 
 ### <a id="_tostringvalue"></a>`_.toString(value)`
-<a href="#_tostringvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10791 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tostring "See the npm package")
+<a href="#_tostringvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10850 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tostring "See the npm package")
 
 Converts `value` to a string if it's not one. An empty string is returned
 for `null` and `undefined` values. The sign of `-0` is preserved.
@@ -5561,7 +5603,7 @@ _.toString([1, 2, 3]);
 <!-- div -->
 
 ### <a id="_addaugend-addend"></a>`_.add(augend, addend)`
-<a href="#_addaugend-addend">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14054 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.add "See the npm package")
+<a href="#_addaugend-addend">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14190 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.add "See the npm package")
 
 Adds two numbers.
 
@@ -5584,7 +5626,7 @@ _.add(6, 4);
 <!-- div -->
 
 ### <a id="_ceilnumber-precision0"></a>`_.ceil(number, [precision=0])`
-<a href="#_ceilnumber-precision0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14088 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.ceil "See the npm package")
+<a href="#_ceilnumber-precision0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14224 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.ceil "See the npm package")
 
 Computes `number` rounded up to `precision`.
 
@@ -5613,7 +5655,7 @@ _.ceil(6040, -2);
 <!-- div -->
 
 ### <a id="_floornumber-precision0"></a>`_.floor(number, [precision=0])`
-<a href="#_floornumber-precision0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14110 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.floor "See the npm package")
+<a href="#_floornumber-precision0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14246 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.floor "See the npm package")
 
 Computes `number` rounded down to `precision`.
 
@@ -5642,7 +5684,7 @@ _.floor(4060, -2);
 <!-- div -->
 
 ### <a id="_maxarray"></a>`_.max(array)`
-<a href="#_maxarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14129 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.max "See the npm package")
+<a href="#_maxarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14265 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.max "See the npm package")
 
 Computes the maximum value of `array`. If `array` is empty or falsey
 `undefined` is returned.
@@ -5668,7 +5710,7 @@ _.max([]);
 <!-- div -->
 
 ### <a id="_maxbyarray-iteratee_identity"></a>`_.maxBy(array, [iteratee=_.identity])`
-<a href="#_maxbyarray-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14157 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.maxby "See the npm package")
+<a href="#_maxbyarray-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14293 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.maxby "See the npm package")
 
 This method is like `_.max` except that it accepts `iteratee` which is
 invoked for each element in `array` to generate the criterion by which
@@ -5699,7 +5741,7 @@ _.maxBy(objects, 'n');
 <!-- div -->
 
 ### <a id="_meanarray"></a>`_.mean(array)`
-<a href="#_meanarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14176 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.mean "See the npm package")
+<a href="#_meanarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14312 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.mean "See the npm package")
 
 Computes the mean of the values in `array`.
 
@@ -5721,7 +5763,7 @@ _.mean([4, 2, 8, 6]);
 <!-- div -->
 
 ### <a id="_minarray"></a>`_.min(array)`
-<a href="#_minarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14197 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.min "See the npm package")
+<a href="#_minarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14333 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.min "See the npm package")
 
 Computes the minimum value of `array`. If `array` is empty or falsey
 `undefined` is returned.
@@ -5747,7 +5789,7 @@ _.min([]);
 <!-- div -->
 
 ### <a id="_minbyarray-iteratee_identity"></a>`_.minBy(array, [iteratee=_.identity])`
-<a href="#_minbyarray-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14225 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.minby "See the npm package")
+<a href="#_minbyarray-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14361 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.minby "See the npm package")
 
 This method is like `_.min` except that it accepts `iteratee` which is
 invoked for each element in `array` to generate the criterion by which
@@ -5778,7 +5820,7 @@ _.minBy(objects, 'n');
 <!-- div -->
 
 ### <a id="_roundnumber-precision0"></a>`_.round(number, [precision=0])`
-<a href="#_roundnumber-precision0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14251 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.round "See the npm package")
+<a href="#_roundnumber-precision0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14387 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.round "See the npm package")
 
 Computes `number` rounded to `precision`.
 
@@ -5807,7 +5849,7 @@ _.round(4060, -2);
 <!-- div -->
 
 ### <a id="_subtractminuend-subtrahend"></a>`_.subtract(minuend, subtrahend)`
-<a href="#_subtractminuend-subtrahend">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14267 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.subtract "See the npm package")
+<a href="#_subtractminuend-subtrahend">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14403 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.subtract "See the npm package")
 
 Subtract two numbers.
 
@@ -5830,7 +5872,7 @@ _.subtract(6, 4);
 <!-- div -->
 
 ### <a id="_sumarray"></a>`_.sum(array)`
-<a href="#_sumarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14294 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sum "See the npm package")
+<a href="#_sumarray">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14430 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sum "See the npm package")
 
 Computes the sum of the values in `array`.
 
@@ -5852,7 +5894,7 @@ _.sum([4, 2, 8, 6]);
 <!-- div -->
 
 ### <a id="_sumbyarray-iteratee_identity"></a>`_.sumBy(array, [iteratee=_.identity])`
-<a href="#_sumbyarray-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14322 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sumby "See the npm package")
+<a href="#_sumbyarray-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14458 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.sumby "See the npm package")
 
 This method is like `_.sum` except that it accepts `iteratee` which is
 invoked for each element in `array` to generate the value to be summed.
@@ -5889,7 +5931,7 @@ _.sumBy(objects, 'n');
 <!-- div -->
 
 ### <a id="_clampnumber-lower-upper"></a>`_.clamp(number, [lower], upper)`
-<a href="#_clampnumber-lower-upper">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12074 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.clamp "See the npm package")
+<a href="#_clampnumber-lower-upper">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12208 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.clamp "See the npm package")
 
 Clamps `number` within the inclusive `lower` and `upper` bounds.
 
@@ -5916,7 +5958,7 @@ _.clamp(10, -5, 5);
 <!-- div -->
 
 ### <a id="_inrangenumber-start0-end"></a>`_.inRange(number, [start=0], end)`
-<a href="#_inrangenumber-start0-end">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12126 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.inrange "See the npm package")
+<a href="#_inrangenumber-start0-end">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12260 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.inrange "See the npm package")
 
 Checks if `n` is between `start` and up to but not including, `end`. If
 `end` is not specified it's set to `start` with `start` then set to `0`.
@@ -5961,7 +6003,7 @@ _.inRange(-3, -2, -6);
 <!-- div -->
 
 ### <a id="_randomlower0-upper1-floating"></a>`_.random([lower=0], [upper=1], [floating])`
-<a href="#_randomlower0-upper1-floating">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12168 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.random "See the npm package")
+<a href="#_randomlower0-upper1-floating">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12302 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.random "See the npm package")
 
 Produces a random number between the inclusive `lower` and `upper` bounds.
 If only one argument is provided a number between `0` and the given number
@@ -6007,7 +6049,7 @@ _.random(1.2, 5.2);
 <!-- div -->
 
 ### <a id="_assignobject-sources"></a>`_.assign(object, [sources])`
-<a href="#_assignobject-sources">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10838 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.assign "See the npm package")
+<a href="#_assignobject-sources">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10897 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.assign "See the npm package")
 
 Assigns own enumerable properties of source objects to the destination
 object. Source objects are applied from left to right. Subsequent sources
@@ -6047,7 +6089,7 @@ _.assign({ 'a': 1 }, new Foo, new Bar);
 <!-- div -->
 
 ### <a id="_assigninobject-sources"></a>`_.assignIn(object, [sources])`
-<a href="#_assigninobject-sources">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10871 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.assignin "See the npm package")
+<a href="#_assigninobject-sources">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10938 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.assignin "See the npm package")
 
 This method is like `_.assign` except that it iterates over own and
 inherited source properties.
@@ -6088,7 +6130,7 @@ _.assignIn({ 'a': 1 }, new Foo, new Bar);
 <!-- div -->
 
 ### <a id="_assigninwithobject-sources-customizer"></a>`_.assignInWith(object, sources, [customizer])`
-<a href="#_assigninwithobject-sources-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10902 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.assigninwith "See the npm package")
+<a href="#_assigninwithobject-sources-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L10975 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.assigninwith "See the npm package")
 
 This method is like `_.assignIn` except that it accepts `customizer` which
 is invoked to produce the assigned values. If `customizer` returns `undefined`
@@ -6127,7 +6169,7 @@ defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
 <!-- div -->
 
 ### <a id="_assignwithobject-sources-customizer"></a>`_.assignWith(object, sources, [customizer])`
-<a href="#_assignwithobject-sources-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10932 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.assignwith "See the npm package")
+<a href="#_assignwithobject-sources-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11005 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.assignwith "See the npm package")
 
 This method is like `_.assign` except that it accepts `customizer` which
 is invoked to produce the assigned values. If `customizer` returns `undefined`
@@ -6163,7 +6205,7 @@ defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });
 <!-- div -->
 
 ### <a id="_atobject-paths"></a>`_.at(object, [paths])`
-<a href="#_atobject-paths">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10956 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.at "See the npm package")
+<a href="#_atobject-paths">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11029 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.at "See the npm package")
 
 Creates an array of values corresponding to `paths` of `object`.
 
@@ -6191,7 +6233,7 @@ _.at(['a', 'b', 'c'], 0, 2);
 <!-- div -->
 
 ### <a id="_createprototype-properties"></a>`_.create(prototype, [properties])`
-<a href="#_createprototype-properties">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L10992 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.create "See the npm package")
+<a href="#_createprototype-properties">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11065 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.create "See the npm package")
 
 Creates an object that inherits from the `prototype` object. If a `properties`
 object is given its own enumerable properties are assigned to the created object.
@@ -6232,7 +6274,7 @@ circle instanceof Shape;
 <!-- div -->
 
 ### <a id="_defaultsobject-sources"></a>`_.defaults(object, [sources])`
-<a href="#_defaultsobject-sources">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11016 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.defaults "See the npm package")
+<a href="#_defaultsobject-sources">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11089 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.defaults "See the npm package")
 
 Assigns own and inherited enumerable properties of source objects to the
 destination object for all destination properties that resolve to `undefined`.
@@ -6261,7 +6303,7 @@ _.defaults({ 'user': 'barney' }, { 'age': 36 }, { 'user': 'fred' });
 <!-- div -->
 
 ### <a id="_defaultsdeepobject-sources"></a>`_.defaultsDeep(object, [sources])`
-<a href="#_defaultsdeepobject-sources">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11039 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.defaultsdeep "See the npm package")
+<a href="#_defaultsdeepobject-sources">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11112 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.defaultsdeep "See the npm package")
 
 This method is like `_.defaults` except that it recursively assigns
 default properties.
@@ -6288,7 +6330,7 @@ _.defaultsDeep({ 'user': { 'name': 'barney' } }, { 'user': { 'name': 'fred', 'ag
 <!-- div -->
 
 ### <a id="_findkeyobject-predicate_identity"></a>`_.findKey(object, [predicate=_.identity])`
-<a href="#_findkeyobject-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11077 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.findkey "See the npm package")
+<a href="#_findkeyobject-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11150 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.findkey "See the npm package")
 
 This method is like `_.find` except that it returns the key of the first
 element `predicate` returns truthy for instead of the element itself.
@@ -6330,7 +6372,7 @@ _.findKey(users, 'active');
 <!-- div -->
 
 ### <a id="_findlastkeyobject-predicate_identity"></a>`_.findLastKey(object, [predicate=_.identity])`
-<a href="#_findlastkeyobject-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11114 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.findlastkey "See the npm package")
+<a href="#_findlastkeyobject-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11187 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.findlastkey "See the npm package")
 
 This method is like `_.findKey` except that it iterates over elements of
 a collection in the opposite order.
@@ -6372,7 +6414,7 @@ _.findLastKey(users, 'active');
 <!-- div -->
 
 ### <a id="_forinobject-iteratee_identity"></a>`_.forIn(object, [iteratee=_.identity])`
-<a href="#_forinobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11144 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.forin "See the npm package")
+<a href="#_forinobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11217 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.forin "See the npm package")
 
 Iterates over own and inherited enumerable properties of an object invoking
 `iteratee` for each property. The iteratee is invoked with three arguments:<br>
@@ -6407,7 +6449,7 @@ _.forIn(new Foo, function(value, key) {
 <!-- div -->
 
 ### <a id="_forinrightobject-iteratee_identity"></a>`_.forInRight(object, [iteratee=_.identity])`
-<a href="#_forinrightobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11174 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.forinright "See the npm package")
+<a href="#_forinrightobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11247 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.forinright "See the npm package")
 
 This method is like `_.forIn` except that it iterates over properties of
 `object` in the opposite order.
@@ -6440,7 +6482,7 @@ _.forInRight(new Foo, function(value, key) {
 <!-- div -->
 
 ### <a id="_forownobject-iteratee_identity"></a>`_.forOwn(object, [iteratee=_.identity])`
-<a href="#_forownobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11206 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.forown "See the npm package")
+<a href="#_forownobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11279 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.forown "See the npm package")
 
 Iterates over own enumerable properties of an object invoking `iteratee`
 for each property. The iteratee is invoked with three arguments:<br>
@@ -6475,7 +6517,7 @@ _.forOwn(new Foo, function(value, key) {
 <!-- div -->
 
 ### <a id="_forownrightobject-iteratee_identity"></a>`_.forOwnRight(object, [iteratee=_.identity])`
-<a href="#_forownrightobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11234 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.forownright "See the npm package")
+<a href="#_forownrightobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11307 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.forownright "See the npm package")
 
 This method is like `_.forOwn` except that it iterates over properties of
 `object` in the opposite order.
@@ -6508,7 +6550,7 @@ _.forOwnRight(new Foo, function(value, key) {
 <!-- div -->
 
 ### <a id="_functionsobject"></a>`_.functions(object)`
-<a href="#_functionsobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11259 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.functions "See the npm package")
+<a href="#_functionsobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11332 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.functions "See the npm package")
 
 Creates an array of function property names from own enumerable properties
 of `object`.
@@ -6538,7 +6580,7 @@ _.functions(new Foo);
 <!-- div -->
 
 ### <a id="_functionsinobject"></a>`_.functionsIn(object)`
-<a href="#_functionsinobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11284 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.functionsin "See the npm package")
+<a href="#_functionsinobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11357 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.functionsin "See the npm package")
 
 Creates an array of function property names from own and inherited
 enumerable properties of `object`.
@@ -6568,7 +6610,7 @@ _.functionsIn(new Foo);
 <!-- div -->
 
 ### <a id="_getobject-path-defaultvalue"></a>`_.get(object, path, [defaultValue])`
-<a href="#_getobject-path-defaultvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11312 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.get "See the npm package")
+<a href="#_getobject-path-defaultvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11385 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.get "See the npm package")
 
 Gets the value at `path` of `object`. If the resolved value is
 `undefined` the `defaultValue` is used in its place.
@@ -6601,7 +6643,7 @@ _.get(object, 'a.b.c', 'default');
 <!-- div -->
 
 ### <a id="_hasobject-path"></a>`_.has(object, path)`
-<a href="#_hasobject-path">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11343 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.has "See the npm package")
+<a href="#_hasobject-path">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11416 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.has "See the npm package")
 
 Checks if `path` is a direct property of `object`.
 
@@ -6636,7 +6678,7 @@ _.has(other, 'a');
 <!-- div -->
 
 ### <a id="_hasinobject-path"></a>`_.hasIn(object, path)`
-<a href="#_hasinobject-path">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11372 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.hasin "See the npm package")
+<a href="#_hasinobject-path">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11445 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.hasin "See the npm package")
 
 Checks if `path` is a direct or inherited property of `object`.
 
@@ -6670,7 +6712,7 @@ _.hasIn(object, 'b');
 <!-- div -->
 
 ### <a id="_invertobject"></a>`_.invert(object)`
-<a href="#_invertobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11393 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.invert "See the npm package")
+<a href="#_invertobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11466 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.invert "See the npm package")
 
 Creates an object composed of the inverted keys and values of `object`.
 If `object` contains duplicate values, subsequent values overwrite property
@@ -6696,7 +6738,7 @@ _.invert(object);
 <!-- div -->
 
 ### <a id="_invertbyobject-iteratee_identity"></a>`_.invertBy(object, [iteratee=_.identity])`
-<a href="#_invertbyobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11422 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.invertby "See the npm package")
+<a href="#_invertbyobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11495 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.invertby "See the npm package")
 
 This method is like `_.invert` except that the inverted object is generated
 from the results of running each element of `object` through `iteratee`.
@@ -6730,7 +6772,7 @@ _.invertBy(object, function(value) {
 <!-- div -->
 
 ### <a id="_invokeobject-path-args"></a>`_.invoke(object, path, [args])`
-<a href="#_invokeobject-path-args">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11447 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.invoke "See the npm package")
+<a href="#_invokeobject-path-args">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11520 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.invoke "See the npm package")
 
 Invokes the method at `path` of `object`.
 
@@ -6756,7 +6798,7 @@ _.invoke(object, 'a[0].b.c.slice', 1, 3);
 <!-- div -->
 
 ### <a id="_keysobject"></a>`_.keys(object)`
-<a href="#_keysobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11476 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.keys "See the npm package")
+<a href="#_keysobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11549 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.keys "See the npm package")
 
 Creates an array of the own enumerable property names of `object`.
 <br>
@@ -6793,7 +6835,7 @@ _.keys('hi');
 <!-- div -->
 
 ### <a id="_keysinobject"></a>`_.keysIn(object)`
-<a href="#_keysinobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11518 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.keysin "See the npm package")
+<a href="#_keysinobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11591 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.keysin "See the npm package")
 
 Creates an array of the own and inherited enumerable property names of `object`.
 <br>
@@ -6825,7 +6867,7 @@ _.keysIn(new Foo);
 <!-- div -->
 
 ### <a id="_mapkeysobject-iteratee_identity"></a>`_.mapKeys(object, [iteratee=_.identity])`
-<a href="#_mapkeysobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11557 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.mapkeys "See the npm package")
+<a href="#_mapkeysobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11630 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.mapkeys "See the npm package")
 
 The opposite of `_.mapValues`; this method creates an object with the
 same values as `object` and keys generated by running each own enumerable
@@ -6853,7 +6895,7 @@ _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {
 <!-- div -->
 
 ### <a id="_mapvaluesobject-iteratee_identity"></a>`_.mapValues(object, [iteratee=_.identity])`
-<a href="#_mapvaluesobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11592 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.mapvalues "See the npm package")
+<a href="#_mapvaluesobject-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11665 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.mapvalues "See the npm package")
 
 Creates an object with the same keys as `object` and values generated by
 running each own enumerable property of `object` through `iteratee`. The
@@ -6887,14 +6929,15 @@ _.mapValues(users, 'age');
 <!-- div -->
 
 ### <a id="_mergeobject-sources"></a>`_.merge(object, [sources])`
-<a href="#_mergeobject-sources">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11631 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.merge "See the npm package")
-
-Recursively merges own and inherited enumerable properties of source objects
-into the destination object. Source properties that resolve to `undefined`
-are skipped if a destination value exists. Array and plain object properties
-are merged recursively. Other objects and value types are overridden by
-assignment. Source objects are applied from left to right. Subsequent
-sources overwrite property assignments of previous sources.
+<a href="#_mergeobject-sources">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11705 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.merge "See the npm package")
+
+This method is like `_.assign` except that it recursively merges own and
+inherited enumerable properties of source objects into the destination
+object. Source properties that resolve to `undefined` are skipped if a
+destination value exists. Array and plain object properties are merged
+recursively.Other objects and value types are overridden by assignment.
+Source objects are applied from left to right. Subsequent sources
+overwrite property assignments of previous sources.
 <br>
 <br>
 **Note:** This method mutates `object`.
@@ -6926,7 +6969,7 @@ _.merge(users, ages);
 <!-- div -->
 
 ### <a id="_mergewithobject-sources-customizer"></a>`_.mergeWith(object, sources, customizer)`
-<a href="#_mergewithobject-sources-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11672 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.mergewith "See the npm package")
+<a href="#_mergewithobject-sources-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11746 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.mergewith "See the npm package")
 
 This method is like `_.merge` except that it accepts `customizer` which
 is invoked to produce the merged values of the destination and source
@@ -6973,7 +7016,7 @@ _.mergeWith(object, other, customizer);
 <!-- div -->
 
 ### <a id="_omitobject-props"></a>`_.omit(object, [props])`
-<a href="#_omitobject-props">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11694 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.omit "See the npm package")
+<a href="#_omitobject-props">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11768 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.omit "See the npm package")
 
 The opposite of `_.pick`; this method creates an object composed of the
 own and inherited enumerable properties of `object` that are not omitted.
@@ -6999,7 +7042,7 @@ _.omit(object, ['a', 'c']);
 <!-- div -->
 
 ### <a id="_omitbyobject-predicate_identity"></a>`_.omitBy(object, [predicate=_.identity])`
-<a href="#_omitbyobject-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11721 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.omitby "See the npm package")
+<a href="#_omitbyobject-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11795 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.omitby "See the npm package")
 
 The opposite of `_.pickBy`; this method creates an object composed of
 the own and inherited enumerable properties of `object` that `predicate`
@@ -7027,7 +7070,7 @@ _.omitBy(object, _.isNumber);
 <!-- div -->
 
 ### <a id="_pickobject-props"></a>`_.pick(object, [props])`
-<a href="#_pickobject-props">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11745 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pick "See the npm package")
+<a href="#_pickobject-props">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11819 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pick "See the npm package")
 
 Creates an object composed of the picked `object` properties.
 
@@ -7052,7 +7095,7 @@ _.pick(object, ['a', 'c']);
 <!-- div -->
 
 ### <a id="_pickbyobject-predicate_identity"></a>`_.pickBy(object, [predicate=_.identity])`
-<a href="#_pickbyobject-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11766 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pickby "See the npm package")
+<a href="#_pickbyobject-predicate_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11840 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pickby "See the npm package")
 
 Creates an object composed of the `object` properties `predicate` returns
 truthy for. The predicate is invoked with two arguments: (value, key).
@@ -7078,7 +7121,7 @@ _.pickBy(object, _.isNumber);
 <!-- div -->
 
 ### <a id="_resultobject-path-defaultvalue"></a>`_.result(object, path, [defaultValue])`
-<a href="#_resultobject-path-defaultvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11798 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.result "See the npm package")
+<a href="#_resultobject-path-defaultvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11872 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.result "See the npm package")
 
 This method is like `_.get` except that if the resolved value is a function
 it's invoked with the `this` binding of its parent object and its result
@@ -7115,7 +7158,7 @@ _.result(object, 'a[0].b.c3', _.constant('default'));
 <!-- div -->
 
 ### <a id="_setobject-path-value"></a>`_.set(object, path, value)`
-<a href="#_setobject-path-value">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11839 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.set "See the npm package")
+<a href="#_setobject-path-value">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11913 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.set "See the npm package")
 
 Sets the value at `path` of `object`. If a portion of `path` doesn't exist
 it's created. Arrays are created for missing index properties while objects
@@ -7152,7 +7195,7 @@ console.log(object.x[0].y.z);
 <!-- div -->
 
 ### <a id="_setwithobject-path-value-customizer"></a>`_.setWith(object, path, value, [customizer])`
-<a href="#_setwithobject-path-value-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11864 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.setwith "See the npm package")
+<a href="#_setwithobject-path-value-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11940 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.setwith "See the npm package")
 
 This method is like `_.set` except that it accepts `customizer` which is
 invoked to produce the objects of `path`.  If `customizer` returns `undefined`
@@ -7173,8 +7216,10 @@ with three arguments: (nsValue, key, nsObject).
 
 #### Example
 ```js
-_.setWith({ '0': { 'length': 2 } }, '[0][1][2]', 3, Object);
-// => { '0': { '1': { '2': 3 }, 'length': 2 } }
+var object = {};
+
+_.setWith(object, '[0][1]', 'a', Object);
+// => { '0': { '1': 'a' } }
 ```
 * * *
 
@@ -7183,7 +7228,7 @@ _.setWith({ '0': { 'length': 2 } }, '[0][1][2]', 3, Object);
 <!-- div -->
 
 ### <a id="_topairsobject"></a>`_.toPairs(object)`
-<a href="#_topairsobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11890 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.topairs "See the npm package")
+<a href="#_topairsobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11966 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.topairs "See the npm package")
 
 Creates an array of own enumerable key-value pairs for `object` which
 can be consumed by `_.fromPairs`.
@@ -7213,7 +7258,7 @@ _.toPairs(new Foo);
 <!-- div -->
 
 ### <a id="_topairsinobject"></a>`_.toPairsIn(object)`
-<a href="#_topairsinobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11915 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.topairsin "See the npm package")
+<a href="#_topairsinobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L11991 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.topairsin "See the npm package")
 
 Creates an array of own and inherited enumerable key-value pairs for
 `object` which can be consumed by `_.fromPairs`.
@@ -7243,7 +7288,7 @@ _.toPairsIn(new Foo);
 <!-- div -->
 
 ### <a id="_transformobject-iteratee_identity-accumulator"></a>`_.transform(object, [iteratee=_.identity], [accumulator])`
-<a href="#_transformobject-iteratee_identity-accumulator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11947 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.transform "See the npm package")
+<a href="#_transformobject-iteratee_identity-accumulator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12023 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.transform "See the npm package")
 
 An alternative to `_.reduce`; this method transforms `object` to a new
 `accumulator` object which is the result of running each of its own enumerable
@@ -7280,7 +7325,7 @@ _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
 <!-- div -->
 
 ### <a id="_unsetobject-path"></a>`_.unset(object, path)`
-<a href="#_unsetobject-path">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L11995 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unset "See the npm package")
+<a href="#_unsetobject-path">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12071 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unset "See the npm package")
 
 Removes the property at `path` of `object`.
 <br>
@@ -7315,8 +7360,77 @@ console.log(object);
 
 <!-- div -->
 
+### <a id="_updateobject-path-updater"></a>`_.update(object, path, updater)`
+<a href="#_updateobject-path-updater">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12101 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.update "See the npm package")
+
+This method is like `_.set` except that accepts `updater` to produce the
+value to set. Use `_.updateWith` to customize `path` creation. The `updater`
+is invoked with one argument: (value).
+<br>
+<br>
+**Note:** This method mutates `object`.
+
+#### Arguments
+1. `object` *(Object)*: The object to modify.
+2. `path` *(Array|string)*: The path of the property to set.
+3. `updater` *(Function)*: The function to produce the updated value.
+
+#### Returns
+*(Object)*:  Returns `object`.
+
+#### Example
+```js
+var object = { 'a': [{ 'b': { 'c': 3 } }] };
+
+_.update(object, 'a[0].b.c', function(n) { return n * n; });
+console.log(object.a[0].b.c);
+// => 9
+
+_.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });
+console.log(object.x[0].y.z);
+// => 0
+```
+* * *
+
+<!-- /div -->
+
+<!-- div -->
+
+### <a id="_updatewithobject-path-updater-customizer"></a>`_.updateWith(object, path, updater, [customizer])`
+<a href="#_updatewithobject-path-updater-customizer">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12128 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.updatewith "See the npm package")
+
+This method is like `_.update` except that it accepts `customizer` which is
+invoked to produce the objects of `path`.  If `customizer` returns `undefined`
+path creation is handled by the method instead. The `customizer` is invoked
+with three arguments: (nsValue, key, nsObject).
+<br>
+<br>
+**Note:** This method mutates `object`.
+
+#### Arguments
+1. `object` *(Object)*: The object to modify.
+2. `path` *(Array|string)*: The path of the property to set.
+3. `updater` *(Function)*: The function to produce the updated value.
+4. `[customizer]` *(Function)*: The function to customize assigned values.
+
+#### Returns
+*(Object)*:  Returns `object`.
+
+#### Example
+```js
+var object = {};
+
+_.updateWith(object, '[0][1]', _.constant('a'), Object);
+// => { '0': { '1': 'a' } }
+```
+* * *
+
+<!-- /div -->
+
+<!-- div -->
+
 ### <a id="_valuesobject"></a>`_.values(object)`
-<a href="#_valuesobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12024 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.values "See the npm package")
+<a href="#_valuesobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12158 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.values "See the npm package")
 
 Creates an array of the own enumerable property values of `object`.
 <br>
@@ -7351,7 +7465,7 @@ _.values('hi');
 <!-- div -->
 
 ### <a id="_valuesinobject"></a>`_.valuesIn(object)`
-<a href="#_valuesinobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12050 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.valuesin "See the npm package")
+<a href="#_valuesinobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12184 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.valuesin "See the npm package")
 
 Creates an array of the own and inherited enumerable property values of `object`.
 <br>
@@ -7389,7 +7503,7 @@ _.valuesIn(new Foo);
 <!-- div -->
 
 ### <a id="_value"></a>`_(value)`
-<a href="#_value">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L1500 "View in source") [&#x24C9;][1]
+<a href="#_value">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L1527 "View in source") [&#x24C9;][1]
 
 Creates a `lodash` object which wraps `value` to enable implicit method
 chaining. Methods that operate on and return arrays, collections, and
@@ -7441,47 +7555,49 @@ The chainable wrapper methods are:<br>
 `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,
 `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,
 `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,
-`curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, `difference`,
-`differenceBy`, `differenceWith`, `drop`, `dropRight`, `dropRightWhile`,
-`dropWhile`, `fill`, `filter`, `flatten`, `flattenDeep`, `flattenDepth`,
-`flip`, `flow`, `flowRight`, `fromPairs`, `functions`, `functionsIn`,
-`groupBy`, `initial`, `intersection`, `intersectionBy`, `intersectionWith`,
-`invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, `keys`, `keysIn`,
-`map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, `memoize`,
-`merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, `nthArg`,
-`omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, `overEvery`,
-`overSome`, `partial`, `partialRight`, `partition`, `pick`, `pickBy`, `plant`,
-`property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, `pullAt`, `push`,
-`range`, `rangeRight`, `rearg`, `reject`, `remove`, `rest`, `reverse`,
-`sampleSize`, `set`, `setWith`, `shuffle`, `slice`, `sort`, `sortBy`,
-`splice`, `spread`, `tail`, `take`, `takeRight`, `takeRightWhile`,
-`takeWhile`, `tap`, `throttle`, `thru`, `toArray`, `toPairs`, `toPairsIn`,
-`toPath`, `toPlainObject`, `transform`, `unary`, `union`, `unionBy`,
-`unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, `unshift`, `unzip`,
-`unzipWith`, `values`, `valuesIn`, `without`, `wrap`, `xor`, `xorBy`,
-`xorWith`, `zip`, `zipObject`, `zipObjectDeep`, and `zipWith`
+`curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,
+`difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,
+`dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,
+`flatten`, `flattenDeep`, `flattenDepth`, `flip`, `flow`, `flowRight`,
+`fromPairs`, `functions`, `functionsIn`, `groupBy`, `initial`, `intersection`,
+`intersectionBy`, `intersectionWith`, `invert`, `invertBy`, `invokeMap`,
+`iteratee`, `keyBy`, `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`,
+`matches`, `matchesProperty`, `memoize`, `merge`, `mergeWith`, `method`,
+`methodOf`, `mixin`, `negate`, `nthArg`, `omit`, `omitBy`, `once`, `orderBy`,
+`over`, `overArgs`, `overEvery`, `overSome`, `partial`, `partialRight`,
+`partition`, `pick`, `pickBy`, `plant`, `property`, `propertyOf`, `pull`,
+`pullAll`, `pullAllBy`, `pullAllWith`, `pullAt`, `push`, `range`,
+`rangeRight`, `rearg`, `reject`, `remove`, `rest`, `reverse`, `sampleSize`,
+`set`, `setWith`, `shuffle`, `slice`, `sort`, `sortBy`, `splice`, `spread`,
+`tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, `tap`, `throttle`,
+`thru`, `toArray`, `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`,
+`transform`, `unary`, `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`,
+`uniqWith`, `unset`, `unshift`, `unzip`, `unzipWith`, `update`, `values`,
+`valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, `zipObject`,
+`zipObjectDeep`, and `zipWith`
 <br>
 <br>
 The wrapper methods that are **not** chainable by default are:<br>
 `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,
-`cloneDeep`, `cloneDeepWith`, `cloneWith`, `deburr`, `endsWith`, `eq`,
-`escape`, `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,
-`findLastIndex`, `findLastKey`, `floor`, `forEach`, `forEachRight`, `forIn`,
-`forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, `hasIn`,
-`head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, `isArguments`,
-`isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, `isBoolean`,
-`isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, `isEqualWith`,
-`isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, `isMap`,
-`isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`,
-`isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, `isSafeInteger`,
-`isSet`, `isString`, `isUndefined`, `isTypedArray`, `isWeakMap`, `isWeakSet`,
-`join`, `kebabCase`, `last`, `lastIndexOf`, `lowerCase`, `lowerFirst`,
-`lt`, `lte`, `max`, `maxBy`, `mean`, `min`, `minBy`, `noConflict`, `noop`,
-`now`, `pad`, `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`,
-`reduceRight`, `repeat`, `result`, `round`, `runInContext`, `sample`,
-`shift`, `size`, `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`,
-`sortedLastIndex`, `sortedLastIndexBy`, `startCase`, `startsWith`, `subtract`,
-`sum`, `sumBy`, `template`, `times`, `toLower`, `toInteger`, `toLength`,
+`cloneDeep`, `cloneDeepWith`, `cloneWith`, `deburr`, `each`, `eachRight`,
+`endsWith`, `eq`, `escape`, `escapeRegExp`, `every`, `find`, `findIndex`,
+`findKey`, `findLast`, `findLastIndex`, `findLastKey`, `first`, `floor`,
+`forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`,
+`get`, `gt`, `gte`, `has`, `hasIn`, `head`, `identity`, `includes`,
+`indexOf`, `inRange`, `invoke`, `isArguments`, `isArray`, `isArrayBuffer`,
+`isArrayLike`, `isArrayLikeObject`, `isBoolean`, `isBuffer`, `isDate`,
+`isElement`, `isEmpty`, `isEqual`, `isEqualWith`, `isError`, `isFinite`,
+`isFunction`, `isInteger`, `isLength`, `isMap`, `isMatch`, `isMatchWith`,
+`isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`, `isObject`, `isObjectLike`,
+`isPlainObject`, `isRegExp`, `isSafeInteger`, `isSet`, `isString`,
+`isUndefined`, `isTypedArray`, `isWeakMap`, `isWeakSet`, `join`, `kebabCase`,
+`last`, `lastIndexOf`, `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`,
+`maxBy`, `mean`, `min`, `minBy`, `noConflict`, `noop`, `now`, `pad`,
+`padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,
+`repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,
+`snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,
+`sortedLastIndexBy`, `startCase`, `startsWith`, `subtract`, `sum`, `sumBy`,
+`template`, `times`, `toInteger`, `toJSON`, `toLength`, `toLower`,
 `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, `trimEnd`,
 `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, `upperFirst`,
 `value`, and `words`
@@ -7520,7 +7636,7 @@ _.isArray(squares.value());
 <!-- div -->
 
 ### <a id="_chainvalue"></a>`_.chain(value)`
-<a href="#_chainvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7205 "View in source") [&#x24C9;][1]
+<a href="#_chainvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7265 "View in source") [&#x24C9;][1]
 
 Creates a `lodash` object that wraps `value` with explicit method chaining enabled.
 The result of such method chaining must be unwrapped with `_#value`.
@@ -7556,7 +7672,7 @@ var youngest = _
 <!-- div -->
 
 ### <a id="_tapvalue-interceptor"></a>`_.tap(value, interceptor)`
-<a href="#_tapvalue-interceptor">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7233 "View in source") [&#x24C9;][1]
+<a href="#_tapvalue-interceptor">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7293 "View in source") [&#x24C9;][1]
 
 This method invokes `interceptor` and returns `value`. The interceptor
 is invoked with one argument; (value). The purpose of this method is to
@@ -7587,7 +7703,7 @@ _([1, 2, 3])
 <!-- div -->
 
 ### <a id="_thruvalue-interceptor"></a>`_.thru(value, interceptor)`
-<a href="#_thruvalue-interceptor">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7260 "View in source") [&#x24C9;][1]
+<a href="#_thruvalue-interceptor">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7320 "View in source") [&#x24C9;][1]
 
 This method is like `_.tap` except that it returns the result of `interceptor`.
 The purpose of this method is to "pass thru" values replacing intermediate
@@ -7618,7 +7734,7 @@ _('  abc  ')
 <!-- div -->
 
 ### <a id="_prototypesymboliterator"></a>`_.prototype[Symbol.iterator]()`
-<a href="#_prototypesymboliterator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7436 "View in source") [&#x24C9;][1]
+<a href="#_prototypesymboliterator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7496 "View in source") [&#x24C9;][1]
 
 Enables the wrapper to be iterable.
 
@@ -7642,7 +7758,7 @@ Array.from(wrapped);
 <!-- div -->
 
 ### <a id="_prototypeatpaths"></a>`_.prototype.at([paths])`
-<a href="#_prototypeatpaths">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7283 "View in source") [&#x24C9;][1]
+<a href="#_prototypeatpaths">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7343 "View in source") [&#x24C9;][1]
 
 This method is the wrapper version of `_.at`.
 
@@ -7669,7 +7785,7 @@ _(['a', 'b', 'c']).at(0, 2).value();
 <!-- div -->
 
 ### <a id="_prototypechain"></a>`_.prototype.chain()`
-<a href="#_prototypechain">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7334 "View in source") [&#x24C9;][1]
+<a href="#_prototypechain">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7394 "View in source") [&#x24C9;][1]
 
 Enables explicit method chaining on the wrapper object.
 
@@ -7702,7 +7818,7 @@ _(users)
 <!-- div -->
 
 ### <a id="_prototypecommit"></a>`_.prototype.commit()`
-<a href="#_prototypecommit">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7363 "View in source") [&#x24C9;][1]
+<a href="#_prototypecommit">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7423 "View in source") [&#x24C9;][1]
 
 Executes the chained sequence and returns the wrapped result.
 
@@ -7734,7 +7850,7 @@ console.log(array);
 <!-- div -->
 
 ### <a id="_prototypeflatmapiteratee_identity"></a>`_.prototype.flatMap([iteratee=_.identity])`
-<a href="#_prototypeflatmapiteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7384 "View in source") [&#x24C9;][1]
+<a href="#_prototypeflatmapiteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7444 "View in source") [&#x24C9;][1]
 
 This method is the wrapper version of `_.flatMap`.
 
@@ -7760,7 +7876,7 @@ _([1, 2]).flatMap(duplicate).value();
 <!-- div -->
 
 ### <a id="_prototypenext"></a>`_.prototype.next()`
-<a href="#_prototypenext">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7409 "View in source") [&#x24C9;][1]
+<a href="#_prototypenext">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7469 "View in source") [&#x24C9;][1]
 
 Gets the next value on a wrapped object following the
 [iterator protocol](https://mdn.io/iteration_protocols#iterator).
@@ -7788,7 +7904,7 @@ wrapped.next();
 <!-- div -->
 
 ### <a id="_prototypeplantvalue"></a>`_.prototype.plant(value)`
-<a href="#_prototypeplantvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7463 "View in source") [&#x24C9;][1]
+<a href="#_prototypeplantvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7523 "View in source") [&#x24C9;][1]
 
 Creates a clone of the chained sequence planting `value` as the wrapped value.
 
@@ -7820,7 +7936,7 @@ wrapped.value();
 <!-- div -->
 
 ### <a id="_prototypereverse"></a>`_.prototype.reverse()`
-<a href="#_prototypereverse">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7502 "View in source") [&#x24C9;][1]
+<a href="#_prototypereverse">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7562 "View in source") [&#x24C9;][1]
 
 This method is the wrapper version of `_.reverse`.
 <br>
@@ -7847,7 +7963,7 @@ console.log(array);
 <!-- div -->
 
 ### <a id="_prototypevalue"></a>`_.prototype.value()`
-<a href="#_prototypevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L7533 "View in source") [&#x24C9;][1]
+<a href="#_prototypevalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L7593 "View in source") [&#x24C9;][1]
 
 Executes the chained sequence to extract the unwrapped value.
 
@@ -7875,7 +7991,7 @@ _([1, 2, 3]).value();
 <!-- div -->
 
 ### <a id="_camelcasestring"></a>`_.camelCase([string=''])`
-<a href="#_camelcasestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12228 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.camelcase "See the npm package")
+<a href="#_camelcasestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12362 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.camelcase "See the npm package")
 
 Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).
 
@@ -7903,7 +8019,7 @@ _.camelCase('__foo_bar__');
 <!-- div -->
 
 ### <a id="_capitalizestring"></a>`_.capitalize([string=''])`
-<a href="#_capitalizestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12247 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.capitalize "See the npm package")
+<a href="#_capitalizestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12381 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.capitalize "See the npm package")
 
 Converts the first character of `string` to upper case and the remaining
 to lower case.
@@ -7926,7 +8042,7 @@ _.capitalize('FRED');
 <!-- div -->
 
 ### <a id="_deburrstring"></a>`_.deburr([string=''])`
-<a href="#_deburrstring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12265 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.deburr "See the npm package")
+<a href="#_deburrstring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12399 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.deburr "See the npm package")
 
 Deburrs `string` by converting [latin-1 supplementary letters](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)
 to basic latin letters and removing [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).
@@ -7949,7 +8065,7 @@ _.deburr('déjà vu');
 <!-- div -->
 
 ### <a id="_endswithstring-target-positionstringlength"></a>`_.endsWith([string=''], [target], [position=string.length])`
-<a href="#_endswithstring-target-positionstringlength">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12291 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.endswith "See the npm package")
+<a href="#_endswithstring-target-positionstringlength">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12425 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.endswith "See the npm package")
 
 Checks if `string` ends with the given target string.
 
@@ -7979,7 +8095,7 @@ _.endsWith('abc', 'b', 2);
 <!-- div -->
 
 ### <a id="_escapestring"></a>`_.escape([string=''])`
-<a href="#_escapestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12336 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.escape "See the npm package")
+<a href="#_escapestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12470 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.escape "See the npm package")
 
 Converts the characters "&", "<", ">", '"', "'", and "\`" in `string` to
 their corresponding HTML entities.
@@ -8024,7 +8140,7 @@ _.escape('fred, barney, & pebbles');
 <!-- div -->
 
 ### <a id="_escaperegexpstring"></a>`_.escapeRegExp([string=''])`
-<a href="#_escaperegexpstring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12357 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.escaperegexp "See the npm package")
+<a href="#_escaperegexpstring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12491 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.escaperegexp "See the npm package")
 
 Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+",
 "?", "(", ")", "[", "]", "{", "}", and "|" in `string`.
@@ -8047,7 +8163,7 @@ _.escapeRegExp('[lodash](https://lodash.com/)');
 <!-- div -->
 
 ### <a id="_kebabcasestring"></a>`_.kebabCase([string=''])`
-<a href="#_kebabcasestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12383 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.kebabcase "See the npm package")
+<a href="#_kebabcasestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12517 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.kebabcase "See the npm package")
 
 Converts `string` to [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).
 
@@ -8075,7 +8191,7 @@ _.kebabCase('__foo_bar__');
 <!-- div -->
 
 ### <a id="_lowercasestring"></a>`_.lowerCase([string=''])`
-<a href="#_lowercasestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12406 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.lowercase "See the npm package")
+<a href="#_lowercasestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12540 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.lowercase "See the npm package")
 
 Converts `string`, as space separated words, to lower case.
 
@@ -8103,7 +8219,7 @@ _.lowerCase('__FOO_BAR__');
 <!-- div -->
 
 ### <a id="_lowerfirststring"></a>`_.lowerFirst([string=''])`
-<a href="#_lowerfirststring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12426 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.lowerfirst "See the npm package")
+<a href="#_lowerfirststring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12560 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.lowerfirst "See the npm package")
 
 Converts the first character of `string` to lower case.
 
@@ -8128,7 +8244,7 @@ _.lowerFirst('FRED');
 <!-- div -->
 
 ### <a id="_padstring-length0-chars"></a>`_.pad([string=''], [length=0], [chars=' '])`
-<a href="#_padstring-length0-chars">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12468 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pad "See the npm package")
+<a href="#_padstring-length0-chars">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12602 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.pad "See the npm package")
 
 Pads `string` on the left and right sides if it's shorter than `length`.
 Padding characters are truncated if they can't be evenly divided by `length`.
@@ -8159,7 +8275,7 @@ _.pad('abc', 3);
 <!-- div -->
 
 ### <a id="_padendstring-length0-chars"></a>`_.padEnd([string=''], [length=0], [chars=' '])`
-<a href="#_padendstring-length0-chars">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12505 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.padend "See the npm package")
+<a href="#_padendstring-length0-chars">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12639 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.padend "See the npm package")
 
 Pads `string` on the right side if it's shorter than `length`. Padding
 characters are truncated if they exceed `length`.
@@ -8190,7 +8306,7 @@ _.padEnd('abc', 3);
 <!-- div -->
 
 ### <a id="_padstartstring-length0-chars"></a>`_.padStart([string=''], [length=0], [chars=' '])`
-<a href="#_padstartstring-length0-chars">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12532 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.padstart "See the npm package")
+<a href="#_padstartstring-length0-chars">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12666 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.padstart "See the npm package")
 
 Pads `string` on the left side if it's shorter than `length`. Padding
 characters are truncated if they exceed `length`.
@@ -8221,7 +8337,7 @@ _.padStart('abc', 3);
 <!-- div -->
 
 ### <a id="_parseintstring-radix10"></a>`_.parseInt(string, [radix=10])`
-<a href="#_parseintstring-radix10">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12560 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.parseint "See the npm package")
+<a href="#_parseintstring-radix10">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12694 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.parseint "See the npm package")
 
 Converts `string` to an integer of the specified radix. If `radix` is
 `undefined` or `0`, a `radix` of `10` is used unless `value` is a hexadecimal,
@@ -8253,7 +8369,7 @@ _.map(['6', '08', '10'], _.parseInt);
 <!-- div -->
 
 ### <a id="_repeatstring-n0"></a>`_.repeat([string=''], [n=0])`
-<a href="#_repeatstring-n0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12592 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.repeat "See the npm package")
+<a href="#_repeatstring-n0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12726 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.repeat "See the npm package")
 
 Repeats the given string `n` times.
 
@@ -8282,7 +8398,7 @@ _.repeat('abc', 0);
 <!-- div -->
 
 ### <a id="_replacestring-pattern-replacement"></a>`_.replace([string=''], pattern, replacement)`
-<a href="#_replacestring-pattern-replacement">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12630 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.replace "See the npm package")
+<a href="#_replacestring-pattern-replacement">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12764 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.replace "See the npm package")
 
 Replaces matches for `pattern` in `string` with `replacement`.
 <br>
@@ -8309,7 +8425,7 @@ _.replace('Hi Fred', 'Fred', 'Barney');
 <!-- div -->
 
 ### <a id="_snakecasestring"></a>`_.snakeCase([string=''])`
-<a href="#_snakecasestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12656 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.snakecase "See the npm package")
+<a href="#_snakecasestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12790 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.snakecase "See the npm package")
 
 Converts `string` to [snake case](https://en.wikipedia.org/wiki/Snake_case).
 
@@ -8337,7 +8453,7 @@ _.snakeCase('--foo-bar');
 <!-- div -->
 
 ### <a id="_splitstring-separator-limit"></a>`_.split([string=''], separator, [limit])`
-<a href="#_splitstring-separator-limit">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12677 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.split "See the npm package")
+<a href="#_splitstring-separator-limit">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12811 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.split "See the npm package")
 
 Splits `string` by `separator`.
 <br>
@@ -8364,7 +8480,7 @@ _.split('a-b-c', '-', 2);
 <!-- div -->
 
 ### <a id="_startcasestring"></a>`_.startCase([string=''])`
-<a href="#_startcasestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12700 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.startcase "See the npm package")
+<a href="#_startcasestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12834 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.startcase "See the npm package")
 
 Converts `string` to [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).
 
@@ -8392,7 +8508,7 @@ _.startCase('__foo_bar__');
 <!-- div -->
 
 ### <a id="_startswithstring-target-position0"></a>`_.startsWith([string=''], [target], [position=0])`
-<a href="#_startswithstring-target-position0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12725 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.startswith "See the npm package")
+<a href="#_startswithstring-target-position0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12859 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.startswith "See the npm package")
 
 Checks if `string` starts with the given target string.
 
@@ -8422,7 +8538,7 @@ _.startsWith('abc', 'b', 1);
 <!-- div -->
 
 ### <a id="_templatestring-options"></a>`_.template([string=''], [options])`
-<a href="#_templatestring-options">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12827 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.template "See the npm package")
+<a href="#_templatestring-options">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12961 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.template "See the npm package")
 
 Creates a compiled template function that can interpolate data properties
 in "interpolate" delimiters, HTML-escape interpolated data properties in
@@ -8529,9 +8645,10 @@ fs.writeFileSync(path.join(cwd, 'jst.js'), '\
 <!-- div -->
 
 ### <a id="_tolowerstring"></a>`_.toLower([string=''])`
-<a href="#_tolowerstring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12953 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tolower "See the npm package")
+<a href="#_tolowerstring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13088 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.tolower "See the npm package")
 
-Converts `string`, as a whole, to lower case.
+Converts `string`, as a whole, to lower case just like
+[String#toLowerCase](https://mdn.io/toLowerCase).
 
 #### Arguments
 1. `[string='']` *(string)*: The string to convert.
@@ -8557,9 +8674,10 @@ _.toLower('__FOO_BAR__');
 <!-- div -->
 
 ### <a id="_toupperstring"></a>`_.toUpper([string=''])`
-<a href="#_toupperstring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12976 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.toupper "See the npm package")
+<a href="#_toupperstring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13112 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.toupper "See the npm package")
 
-Converts `string`, as a whole, to upper case.
+Converts `string`, as a whole, to upper case just like
+[String#toUpperCase](https://mdn.io/toUpperCase).
 
 #### Arguments
 1. `[string='']` *(string)*: The string to convert.
@@ -8585,7 +8703,7 @@ _.toUpper('__foo_bar__');
 <!-- div -->
 
 ### <a id="_trimstring-charswhitespace"></a>`_.trim([string=''], [chars=whitespace])`
-<a href="#_trimstring-charswhitespace">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13001 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.trim "See the npm package")
+<a href="#_trimstring-charswhitespace">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13137 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.trim "See the npm package")
 
 Removes leading and trailing whitespace or specified characters from `string`.
 
@@ -8614,7 +8732,7 @@ _.map(['  foo  ', '  bar  '], _.trim);
 <!-- div -->
 
 ### <a id="_trimendstring-charswhitespace"></a>`_.trimEnd([string=''], [chars=whitespace])`
-<a href="#_trimendstring-charswhitespace">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13039 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.trimend "See the npm package")
+<a href="#_trimendstring-charswhitespace">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13175 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.trimend "See the npm package")
 
 Removes trailing whitespace or specified characters from `string`.
 
@@ -8640,7 +8758,7 @@ _.trimEnd('-_-abc-_-', '_-');
 <!-- div -->
 
 ### <a id="_trimstartstring-charswhitespace"></a>`_.trimStart([string=''], [chars=whitespace])`
-<a href="#_trimstartstring-charswhitespace">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13075 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.trimstart "See the npm package")
+<a href="#_trimstartstring-charswhitespace">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13211 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.trimstart "See the npm package")
 
 Removes leading whitespace or specified characters from `string`.
 
@@ -8666,7 +8784,7 @@ _.trimStart('-_-abc-_-', '_-');
 <!-- div -->
 
 ### <a id="_truncatestring-options-optionslength30-optionsomission-optionsseparator"></a>`_.truncate([string=''], [options=({})], [options.length=30], [options.omission='...'], [options.separator])`
-<a href="#_truncatestring-options-optionslength30-optionsomission-optionsseparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13129 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.truncate "See the npm package")
+<a href="#_truncatestring-options-optionslength30-optionsomission-optionsseparator">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13265 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.truncate "See the npm package")
 
 Truncates `string` if it's longer than the given maximum string length.
 The last characters of the truncated string are replaced with the omission
@@ -8711,7 +8829,7 @@ _.truncate('hi-diddly-ho there, neighborino', {
 <!-- div -->
 
 ### <a id="_unescapestring"></a>`_.unescape([string=''])`
-<a href="#_unescapestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13203 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unescape "See the npm package")
+<a href="#_unescapestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13339 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.unescape "See the npm package")
 
 The inverse of `_.escape`; this method converts the HTML entities
 `&amp;`, `&lt;`, `&gt;`, `&quot;`, `&#39;`, and `&#96;` in `string` to their
@@ -8739,7 +8857,7 @@ _.unescape('fred, barney, &amp; pebbles');
 <!-- div -->
 
 ### <a id="_uppercasestring"></a>`_.upperCase([string=''])`
-<a href="#_uppercasestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13229 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.uppercase "See the npm package")
+<a href="#_uppercasestring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13365 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.uppercase "See the npm package")
 
 Converts `string`, as space separated words, to upper case.
 
@@ -8767,7 +8885,7 @@ _.upperCase('__foo_bar__');
 <!-- div -->
 
 ### <a id="_upperfirststring"></a>`_.upperFirst([string=''])`
-<a href="#_upperfirststring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L12444 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.upperfirst "See the npm package")
+<a href="#_upperfirststring">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L12578 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.upperfirst "See the npm package")
 
 Converts the first character of `string` to upper case.
 
@@ -8792,7 +8910,7 @@ _.upperFirst('FRED');
 <!-- div -->
 
 ### <a id="_wordsstring-pattern"></a>`_.words([string=''], [pattern])`
-<a href="#_wordsstring-pattern">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13251 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.words "See the npm package")
+<a href="#_wordsstring-pattern">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13387 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.words "See the npm package")
 
 Splits `string` into an array of its words.
 
@@ -8824,7 +8942,7 @@ _.words('fred, barney, & pebbles', /[^, ]+/g);
 <!-- div -->
 
 ### <a id="_attemptfunc"></a>`_.attempt(func)`
-<a href="#_attemptfunc">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13283 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.attempt "See the npm package")
+<a href="#_attemptfunc">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13419 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.attempt "See the npm package")
 
 Attempts to invoke `func`, returning either the result or the caught error
 object. Any additional arguments are provided to `func` when it's invoked.
@@ -8853,7 +8971,7 @@ if (_.isError(elements)) {
 <!-- div -->
 
 ### <a id="_bindallobject-methodnames"></a>`_.bindAll(object, methodNames)`
-<a href="#_bindallobject-methodnames">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13317 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.bindall "See the npm package")
+<a href="#_bindallobject-methodnames">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13453 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.bindall "See the npm package")
 
 Binds methods of an object to the object itself, overwriting the existing
 method.
@@ -8888,7 +9006,7 @@ jQuery(element).on('click', view.onClick);
 <!-- div -->
 
 ### <a id="_condpairs"></a>`_.cond(pairs)`
-<a href="#_condpairs">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13352 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.cond "See the npm package")
+<a href="#_condpairs">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13488 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.cond "See the npm package")
 
 Creates a function that iterates over `pairs` invoking the corresponding
 function of the first predicate to return truthy. The predicate-function
@@ -8925,7 +9043,7 @@ func({ 'a': '1', 'b': '2' });
 <!-- div -->
 
 ### <a id="_conformssource"></a>`_.conforms(source)`
-<a href="#_conformssource">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13394 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.conforms "See the npm package")
+<a href="#_conformssource">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13530 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.conforms "See the npm package")
 
 Creates a function that invokes the predicate properties of `source` with
 the corresponding property values of a given object, returning `true` if
@@ -8954,7 +9072,7 @@ _.filter(users, _.conforms({ 'age': _.partial(_.gt, _, 38) }));
 <!-- div -->
 
 ### <a id="_constantvalue"></a>`_.constant(value)`
-<a href="#_constantvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13414 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.constant "See the npm package")
+<a href="#_constantvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13550 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.constant "See the npm package")
 
 Creates a function that returns `value`.
 
@@ -8979,7 +9097,7 @@ getter() === object;
 <!-- div -->
 
 ### <a id="_flowfuncs"></a>`_.flow([funcs])`
-<a href="#_flowfuncs">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13440 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flow "See the npm package")
+<a href="#_flowfuncs">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13576 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flow "See the npm package")
 
 Creates a function that returns the result of invoking the given functions
 with the `this` binding of the created function, where each successive
@@ -9008,7 +9126,7 @@ addSquare(1, 2);
 <!-- div -->
 
 ### <a id="_flowrightfuncs"></a>`_.flowRight([funcs])`
-<a href="#_flowrightfuncs">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13461 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flowright "See the npm package")
+<a href="#_flowrightfuncs">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13597 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.flowright "See the npm package")
 
 This method is like `_.flow` except that it creates a function that
 invokes the given functions from right to left.
@@ -9036,7 +9154,7 @@ addSquare(1, 2);
 <!-- div -->
 
 ### <a id="_identityvalue"></a>`_.identity(value)`
-<a href="#_identityvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13478 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.identity "See the npm package")
+<a href="#_identityvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13614 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.identity "See the npm package")
 
 This method returns the first argument given to it.
 
@@ -9060,7 +9178,7 @@ _.identity(object) === object;
 <!-- div -->
 
 ### <a id="_iterateefunc_identity"></a>`_.iteratee([func=_.identity])`
-<a href="#_iterateefunc_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13512 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.iteratee "See the npm package")
+<a href="#_iterateefunc_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13648 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.iteratee "See the npm package")
 
 Creates a function that invokes `func` with the arguments of the created
 function. If `func` is a property name the created callback returns the
@@ -9099,7 +9217,7 @@ _.filter(users, 'age > 36');
 <!-- div -->
 
 ### <a id="_matchessource"></a>`_.matches(source)`
-<a href="#_matchessource">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13539 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.matches "See the npm package")
+<a href="#_matchessource">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13675 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.matches "See the npm package")
 
 Creates a function that performs a partial deep comparison between a given
 object and `source`, returning `true` if the given object has equivalent
@@ -9132,7 +9250,7 @@ _.filter(users, _.matches({ 'age': 40, 'active': false }));
 <!-- div -->
 
 ### <a id="_matchespropertypath-srcvalue"></a>`_.matchesProperty(path, srcValue)`
-<a href="#_matchespropertypath-srcvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13566 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.matchesproperty "See the npm package")
+<a href="#_matchespropertypath-srcvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13702 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.matchesproperty "See the npm package")
 
 Creates a function that performs a partial deep comparison between the
 value at `path` of a given object to `srcValue`, returning `true` if the
@@ -9165,7 +9283,7 @@ _.find(users, _.matchesProperty('user', 'fred'));
 <!-- div -->
 
 ### <a id="_methodpath-args"></a>`_.method(path, [args])`
-<a href="#_methodpath-args">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13593 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.method "See the npm package")
+<a href="#_methodpath-args">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13729 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.method "See the npm package")
 
 Creates a function that invokes the method at `path` of a given object.
 Any additional arguments are provided to the invoked method.
@@ -9197,7 +9315,7 @@ _.invokeMap(_.sortBy(objects, _.method(['a', 'b', 'c'])), 'a.b.c');
 <!-- div -->
 
 ### <a id="_methodofobject-args"></a>`_.methodOf(object, [args])`
-<a href="#_methodofobject-args">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13621 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.methodof "See the npm package")
+<a href="#_methodofobject-args">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13757 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.methodof "See the npm package")
 
 The opposite of `_.method`; this method creates a function that invokes
 the method at a given path of `object`. Any additional arguments are
@@ -9228,7 +9346,7 @@ _.map([['a', '2'], ['c', '0']], _.methodOf(object));
 <!-- div -->
 
 ### <a id="_mixinobjectlodash-source-options"></a>`_.mixin([object=lodash], source, [options])`
-<a href="#_mixinobjectlodash-source-options">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13663 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.mixin "See the npm package")
+<a href="#_mixinobjectlodash-source-options">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13799 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.mixin "See the npm package")
 
 Adds all own enumerable function properties of a source object to the
 destination object. If `object` is a function then methods are added to
@@ -9273,7 +9391,7 @@ _('fred').vowels();
 <!-- div -->
 
 ### <a id="_noconflict"></a>`_.noConflict()`
-<a href="#_noconflict">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13711 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.noconflict "See the npm package")
+<a href="#_noconflict">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13847 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.noconflict "See the npm package")
 
 Reverts the `_` variable to its previous value and returns a reference to
 the `lodash` function.
@@ -9292,7 +9410,7 @@ var lodash = _.noConflict();
 <!-- div -->
 
 ### <a id="_noop"></a>`_.noop()`
-<a href="#_noop">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13732 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.noop "See the npm package")
+<a href="#_noop">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13868 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.noop "See the npm package")
 
 A no-operation function that returns `undefined` regardless of the
 arguments it receives.
@@ -9311,7 +9429,7 @@ _.noop(object) === undefined;
 <!-- div -->
 
 ### <a id="_nthargn0"></a>`_.nthArg([n=0])`
-<a href="#_nthargn0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13751 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.ntharg "See the npm package")
+<a href="#_nthargn0">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13887 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.ntharg "See the npm package")
 
 Creates a function that returns its nth argument.
 
@@ -9335,7 +9453,7 @@ func('a', 'b', 'c');
 <!-- div -->
 
 ### <a id="_overiteratees"></a>`_.over(iteratees)`
-<a href="#_overiteratees">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13774 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.over "See the npm package")
+<a href="#_overiteratees">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13910 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.over "See the npm package")
 
 Creates a function that invokes `iteratees` with the arguments provided
 to the created function and returns their results.
@@ -9360,7 +9478,7 @@ func(1, 2, 3, 4);
 <!-- div -->
 
 ### <a id="_overeverypredicates"></a>`_.overEvery(predicates)`
-<a href="#_overeverypredicates">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13798 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.overevery "See the npm package")
+<a href="#_overeverypredicates">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13934 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.overevery "See the npm package")
 
 Creates a function that checks if **all** of the `predicates` return
 truthy when invoked with the arguments provided to the created function.
@@ -9391,7 +9509,7 @@ func(NaN);
 <!-- div -->
 
 ### <a id="_oversomepredicates"></a>`_.overSome(predicates)`
-<a href="#_oversomepredicates">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13822 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.oversome "See the npm package")
+<a href="#_oversomepredicates">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13958 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.oversome "See the npm package")
 
 Creates a function that checks if **any** of the `predicates` return
 truthy when invoked with the arguments provided to the created function.
@@ -9422,7 +9540,7 @@ func(NaN);
 <!-- div -->
 
 ### <a id="_propertypath"></a>`_.property(path)`
-<a href="#_propertypath">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13845 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.property "See the npm package")
+<a href="#_propertypath">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L13981 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.property "See the npm package")
 
 Creates a function that returns the value at `path` of a given object.
 
@@ -9452,7 +9570,7 @@ _.map(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c');
 <!-- div -->
 
 ### <a id="_propertyofobject"></a>`_.propertyOf(object)`
-<a href="#_propertyofobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13869 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.propertyof "See the npm package")
+<a href="#_propertyofobject">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14005 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.propertyof "See the npm package")
 
 The opposite of `_.property`; this method creates a function that returns
 the value at a given path of `object`.
@@ -9481,7 +9599,7 @@ _.map([['a', '2'], ['c', '0']], _.propertyOf(object));
 <!-- div -->
 
 ### <a id="_rangestart0-end-step1"></a>`_.range([start=0], end, [step=1])`
-<a href="#_rangestart0-end-step1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13914 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.range "See the npm package")
+<a href="#_rangestart0-end-step1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14050 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.range "See the npm package")
 
 Creates an array of numbers (positive and/or negative) progressing from
 `start` up to, but not including, `end`. A step of `-1` is used if a negative
@@ -9530,7 +9648,7 @@ _.range(0);
 <!-- div -->
 
 ### <a id="_rangerightstart0-end-step1"></a>`_.rangeRight([start=0], end, [step=1])`
-<a href="#_rangerightstart0-end-step1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13950 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.rangeright "See the npm package")
+<a href="#_rangerightstart0-end-step1">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14086 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.rangeright "See the npm package")
 
 This method is like `_.range` except that it populates values in
 descending order.
@@ -9573,7 +9691,7 @@ _.rangeRight(0);
 <!-- div -->
 
 ### <a id="_runincontextcontextroot"></a>`_.runInContext([context=root])`
-<a href="#_runincontextcontextroot">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L1296 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.runincontext "See the npm package")
+<a href="#_runincontextcontextroot">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L1318 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.runincontext "See the npm package")
 
 Create a new pristine `lodash` function using the `context` object.
 
@@ -9617,7 +9735,7 @@ var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;
 <!-- div -->
 
 ### <a id="_timesn-iteratee_identity"></a>`_.times(n, [iteratee=_.identity])`
-<a href="#_timesn-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L13970 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.times "See the npm package")
+<a href="#_timesn-iteratee_identity">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14106 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.times "See the npm package")
 
 Invokes the iteratee `n` times, returning an array of the results of
 each invocation. The iteratee is invoked with one argument; (index).
@@ -9644,7 +9762,7 @@ _.times(3, String);
 <!-- div -->
 
 ### <a id="_topathvalue"></a>`_.toPath(value)`
-<a href="#_topathvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14013 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.topath "See the npm package")
+<a href="#_topathvalue">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14149 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.topath "See the npm package")
 
 Converts `value` to a property path array.
 
@@ -9678,7 +9796,7 @@ console.log(path === newPath);
 <!-- div -->
 
 ### <a id="_uniqueidprefix"></a>`_.uniqueId([prefix=''])`
-<a href="#_uniqueidprefix">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14033 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.uniqueid "See the npm package")
+<a href="#_uniqueidprefix">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14169 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.uniqueid "See the npm package")
 
 Generates a unique ID. If `prefix` is given the ID is appended to it.
 
@@ -9709,7 +9827,7 @@ _.uniqueId();
 <!-- div -->
 
 ### <a id="_version"></a>`_.VERSION`
-<a href="#_version">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L14680 "View in source") [&#x24C9;][1]
+<a href="#_version">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L14820 "View in source") [&#x24C9;][1]
 
 ({string}): The semantic version number.
 
@@ -9720,7 +9838,7 @@ _.uniqueId();
 <!-- div -->
 
 ### <a id="_templatesettings"></a>`_.templateSettings`
-<a href="#_templatesettings">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L1545 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.templatesettings "See the npm package")
+<a href="#_templatesettings">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L1572 "View in source") [&#x24C9;][1] [&#x24C3;](https://www.npmjs.com/package/lodash.templatesettings "See the npm package")
 
 ({Object}): By default, the template delimiters used by lodash are like those in
 embedded Ruby (ERB). Change the following template settings to use
@@ -9733,7 +9851,7 @@ alternative delimiters.
 <!-- div -->
 
 ### <a id="_templatesettingsescape"></a>`_.templateSettings.escape`
-<a href="#_templatesettingsescape">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L1553 "View in source") [&#x24C9;][1]
+<a href="#_templatesettingsescape">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L1580 "View in source") [&#x24C9;][1]
 
 ({RegExp}): Used to detect `data` property values to be HTML-escaped.
 
@@ -9744,7 +9862,7 @@ alternative delimiters.
 <!-- div -->
 
 ### <a id="_templatesettingsevaluate"></a>`_.templateSettings.evaluate`
-<a href="#_templatesettingsevaluate">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L1561 "View in source") [&#x24C9;][1]
+<a href="#_templatesettingsevaluate">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L1588 "View in source") [&#x24C9;][1]
 
 ({RegExp}): Used to detect code to be evaluated.
 
@@ -9755,7 +9873,7 @@ alternative delimiters.
 <!-- div -->
 
 ### <a id="_templatesettingsimports"></a>`_.templateSettings.imports`
-<a href="#_templatesettingsimports">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L1585 "View in source") [&#x24C9;][1]
+<a href="#_templatesettingsimports">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L1612 "View in source") [&#x24C9;][1]
 
 ({Object}): Used to import variables into the compiled template.
 
@@ -9766,7 +9884,7 @@ alternative delimiters.
 <!-- div -->
 
 ### <a id="_templatesettingsimports_"></a>`_.templateSettings.imports._`
-<a href="#_templatesettingsimports_">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L1593 "View in source") [&#x24C9;][1]
+<a href="#_templatesettingsimports_">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L1620 "View in source") [&#x24C9;][1]
 
 ({Function}): A reference to the `lodash` function.
 
@@ -9777,7 +9895,7 @@ alternative delimiters.
 <!-- div -->
 
 ### <a id="_templatesettingsinterpolate"></a>`_.templateSettings.interpolate`
-<a href="#_templatesettingsinterpolate">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L1569 "View in source") [&#x24C9;][1]
+<a href="#_templatesettingsinterpolate">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L1596 "View in source") [&#x24C9;][1]
 
 ({RegExp}): Used to detect `data` property values to inject.
 
@@ -9788,7 +9906,7 @@ alternative delimiters.
 <!-- div -->
 
 ### <a id="_templatesettingsvariable"></a>`_.templateSettings.variable`
-<a href="#_templatesettingsvariable">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.5.1/lodash.js#L1577 "View in source") [&#x24C9;][1]
+<a href="#_templatesettingsvariable">#</a> [&#x24C8;](https://github.com/lodash/lodash/blob/4.6.1/lodash.js#L1604 "View in source") [&#x24C9;][1]
 
 ({string}): Used to reference the data object in the template text.
 
index 30d3706..b074100 100644 (file)
@@ -1,6 +1,6 @@
 var mapping = require('./_mapping'),
     mutateMap = mapping.mutate,
-    placeholder = {};
+    fallbackHolder = {};
 
 /**
  * The base implementation of `convert` which accepts a `util` object of methods
@@ -40,7 +40,8 @@ function baseConvert(util, name, func, options) {
     'rearg': 'rearg' in options ? options.rearg : true
   };
 
-  var forceRearg = ('rearg' in options) && options.rearg;
+  var forceRearg = ('rearg' in options) && options.rearg,
+      placeholder = isLib ? func : fallbackHolder;
 
   var helpers = isLib ? func : {
     'ary': util.ary,
index b3ac217..1d33d4b 100644 (file)
@@ -55,25 +55,25 @@ exports.aryMethod = {
     'hasIn', 'includes', 'indexOf', 'intersection', 'invertBy', 'invoke', 'invokeMap',
     'isEqual', 'isMatch', 'join', 'keyBy', 'lastIndexOf', 'lt', 'lte', 'map',
     'mapKeys', 'mapValues', 'matchesProperty', 'maxBy', 'merge', 'minBy', 'omit',
-    'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt',
-    'partial', 'partialRight', 'partition', 'pick', 'pickBy', 'pull', 'pullAll',
-    'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',
-    'repeat', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',
-    'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',
-    'split', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight', 'takeRightWhile',
-    'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars', 'trimCharsEnd',
-    'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith', 'unset',
-    'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject', 'zipObjectDeep'
+    'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',
+    'partialRight', 'partition', 'pick', 'pickBy', 'pull', 'pullAll', 'pullAt',
+    'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove', 'repeat', 'result',
+    'sampleSize', 'some', 'sortBy', 'sortedIndex', 'sortedIndexOf', 'sortedLastIndex',
+    'sortedLastIndexOf', 'sortedUniqBy', 'split', 'startsWith', 'subtract', 'sumBy',
+    'take', 'takeRight', 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru',
+    'times', 'trimChars', 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union',
+    'uniqBy', 'uniqWith', 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip',
+    'zipObject', 'zipObjectDeep'
   ],
   '3': [
     'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',
     'getOr', 'inRange', 'intersectionBy', 'intersectionWith', 'isEqualWith',
-    'isMatchWith', 'mergeWith', 'orderBy', 'pullAllBy', 'reduce', 'reduceRight',
-    'replace', 'set', 'slice', 'sortedIndexBy', 'sortedLastIndexBy', 'transform',
-    'unionBy', 'unionWith', 'xorBy', 'xorWith', 'zipWith'
+    'isMatchWith', 'mergeWith', 'orderBy', 'pullAllBy', 'pullAllWith', 'reduce',
+    'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy', 'sortedLastIndexBy',
+    'transform', 'unionBy', 'unionWith', 'update', 'xorBy', 'xorWith', 'zipWith'
   ],
   '4': [
-    'fill', 'setWith'
+    'fill', 'setWith', 'updateWith'
   ]
 };
 
@@ -137,9 +137,11 @@ exports.methodRearg = {
   'isMatchWith': [2, 1, 0],
   'mergeWith': [1, 2, 0],
   'pullAllBy': [2, 1, 0],
+  'pullAllWith': [2, 1, 0],
   'setWith': [3, 1, 2, 0],
   'sortedIndexBy': [2, 1, 0],
   'sortedLastIndexBy': [2, 1, 0],
+  'updateWith': [3, 1, 2, 0],
   'zipWith': [1, 2, 0]
 };
 
@@ -156,6 +158,7 @@ exports.mutate = {
     'pull': true,
     'pullAll': true,
     'pullAllBy': true,
+    'pullAllWith': true,
     'pullAt': true,
     'remove': true,
     'reverse': true
@@ -173,7 +176,9 @@ exports.mutate = {
   'set': {
     'set': true,
     'setWith': true,
-    'unset': true
+    'unset': true,
+    'update': true,
+    'updateWith': true
   }
 };
 
index bba62d2..350b9a7 100644 (file)
@@ -18,9 +18,11 @@ var templateData = {
 };
 
 function toArgOrder(array) {
-  return '`(' + _.map(array, function(value) {
-    return argNames[value];
-  }).join(', ') + ')`';
+  var reordered = [];
+  _.each(array, function(newIndex, index) {
+    reordered[newIndex] = argNames[index];
+  });
+  return '`(' + reordered.join(', ') + ')`';
 }
 
 function toFuncList(array) {
index e66b7cd..1704c13 100644 (file)
@@ -35,9 +35,11 @@ var categories = [
 var ignored = [
   '_*.js',
   'core.js',
+  'core.min.js',
   'fp.js',
   'index.js',
-  'lodash.js'
+  'lodash.js',
+  'lodash.min.js'
 ];
 
 function isAlias(funcName) {
index 90d3b65..7b69bf5 100644 (file)
@@ -25,7 +25,7 @@ var extend = require('lodash/fp/extend');
 
 ## Convert
 
-Although `lodash/fp` & its method modules come pre-converted there are times when
+Although `lodash/fp` & its method modules come pre-converted, there are times when
 you may want to convert another lodash package or create a customized conversion.
 That’s when the `convert` module comes in handy.
 
@@ -72,9 +72,9 @@ filter(function(value, index) {
 
 ## Mapping
 
-Immutable auto-curried iteratee-first data-last methods sound great, but what’s
-that really mean for each method? Below is a breakdown of the mapping used to
-convert each method.
+Immutable auto-curried iteratee-first data-last methods sound great, but what
+does that really mean for each method? Below is a breakdown of the mapping used
+to convert each method.
 
 #### Capped Iteratee Arguments
 
@@ -131,5 +131,5 @@ Methods created to accommodate Lodash’s variadic methods:<br>
 
 There are <%= _.size(mapping.aliasToReal) %> method aliases:<br>
 <%= _.map(mapping.aliasToReal, function(realName, alias) {
-  return ' * Added `_.' + alias + '` as an alias of `_.' + realName + '`';
+  return ' * `_.' + alias + '` is an alias of `_.' + realName + '`';
 }).join('\n') %>
index f1860f1..402910d 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * @license
- * lodash 4.5.1 <https://lodash.com/>
+ * lodash 4.6.1 <https://lodash.com/>
  * Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
  * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
  * Copyright 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
   var undefined;
 
   /** Used as the semantic version number. */
-  var VERSION = '4.5.1';
+  var VERSION = '4.6.1';
+
+  /** Used as the size to enable large array optimizations. */
+  var LARGE_ARRAY_SIZE = 200;
+
+  /** Used as the `TypeError` message for "Functions" methods. */
+  var FUNC_ERROR_TEXT = 'Expected a function';
+
+  /** Used to stand-in for `undefined` hash values. */
+  var HASH_UNDEFINED = '__lodash_hash_undefined__';
+
+  /** Used as the internal argument placeholder. */
+  var PLACEHOLDER = '__lodash_placeholder__';
 
   /** Used to compose bitmasks for wrapper metadata. */
   var BIND_FLAG = 1,
   var HOT_COUNT = 150,
       HOT_SPAN = 16;
 
-  /** Used as the size to enable large array optimizations. */
-  var LARGE_ARRAY_SIZE = 200;
-
   /** Used to indicate the type of lazy iteratees. */
   var LAZY_FILTER_FLAG = 1,
       LAZY_MAP_FLAG = 2,
       LAZY_WHILE_FLAG = 3;
 
-  /** Used as the `TypeError` message for "Functions" methods. */
-  var FUNC_ERROR_TEXT = 'Expected a function';
-
-  /** Used to stand-in for `undefined` hash values. */
-  var HASH_UNDEFINED = '__lodash_hash_undefined__';
-
   /** Used as references for various `Number` constants. */
   var INFINITY = 1 / 0,
       MAX_SAFE_INTEGER = 9007199254740991,
@@ -63,9 +66,6 @@
       MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,
       HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;
 
-  /** Used as the internal argument placeholder. */
-  var PLACEHOLDER = '__lodash_placeholder__';
-
   /** `Object#toString` result references. */
   var argsTag = '[object Arguments]',
       arrayTag = '[object Array]',
    * @returns {Object} Returns `map`.
    */
   function addMapEntry(map, pair) {
+    // Don't return `Map#set` because it doesn't return the map instance in IE 11.
     map.set(pair[0], pair[1]);
     return map;
   }
   function arrayFilter(array, predicate) {
     var index = -1,
         length = array.length,
-        resIndex = -1,
+        resIndex = 0,
         result = [];
 
     while (++index < length) {
       var value = array[index];
       if (predicate(value, index, array)) {
-        result[++resIndex] = value;
+        result[resIndex++] = value;
       }
     }
     return result;
   }
 
   /**
-   * A specialized version of `_.includesWith` for arrays without support for
-   * specifying an index to search from.
+   * This function is like `arrayIncludes` except that it accepts a comparator.
    *
    * @private
    * @param {Array} array The array to search.
   }
 
   /**
+   * This function is like `baseIndexOf` except that it accepts a comparator.
+   *
+   * @private
+   * @param {Array} array The array to search.
+   * @param {*} value The value to search for.
+   * @param {number} fromIndex The index to search from.
+   * @param {Function} comparator The comparator invoked per element.
+   * @returns {number} Returns the index of the matched value, else `-1`.
+   */
+  function baseIndexOfWith(array, value, fromIndex, comparator) {
+    var index = fromIndex - 1,
+        length = array.length;
+
+    while (++index < length) {
+      if (comparator(array[index], value)) {
+        return index;
+      }
+    }
+    return -1;
+  }
+
+  /**
    * The base implementation of `_.reduce` and `_.reduceRight`, without support
    * for iteratee shorthands, which iterates over `collection` using `eachFunc`.
    *
   }
 
   /**
-   * The base implementation of `_.sortBy` which uses `comparer` to define
-   * the sort order of `array` and replaces criteria objects with their
-   * corresponding values.
+   * The base implementation of `_.sortBy` which uses `comparer` to define the
+   * sort order of `array` and replaces criteria objects with their corresponding
+   * values.
    *
    * @private
    * @param {Array} array The array to sort.
   function replaceHolders(array, placeholder) {
     var index = -1,
         length = array.length,
-        resIndex = -1,
+        resIndex = 0,
         result = [];
 
     while (++index < length) {
       var value = array[index];
       if (value === placeholder || value === PLACEHOLDER) {
         array[index] = PLACEHOLDER;
-        result[++resIndex] = index;
+        result[resIndex++] = index;
       }
     }
     return result;
     /** Used to store function metadata. */
     var metaMap = WeakMap && new WeakMap;
 
+    /** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */
+    var nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');
+
+    /** Used to lookup unminified function names. */
+    var realNames = {};
+
     /** Used to detect maps, sets, and weakmaps. */
     var mapCtorString = Map ? funcToString.call(Map) : '',
         setCtorString = Set ? funcToString.call(Set) : '',
 
     /** Used to convert symbols to primitives and strings. */
     var symbolProto = Symbol ? Symbol.prototype : undefined,
-        symbolValueOf = Symbol ? symbolProto.valueOf : undefined,
-        symbolToString = Symbol ? symbolProto.toString : undefined;
-
-    /** Used to lookup unminified function names. */
-    var realNames = {};
+        symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,
+        symbolToString = symbolProto ? symbolProto.toString : undefined;
 
     /*------------------------------------------------------------------------*/
 
      * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,
      * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,
      * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,
-     * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, `difference`,
-     * `differenceBy`, `differenceWith`, `drop`, `dropRight`, `dropRightWhile`,
-     * `dropWhile`, `fill`, `filter`, `flatten`, `flattenDeep`, `flattenDepth`,
-     * `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, `functionsIn`,
-     * `groupBy`, `initial`, `intersection`, `intersectionBy`, `intersectionWith`,
-     * `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, `keys`, `keysIn`,
-     * `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, `memoize`,
-     * `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, `nthArg`,
-     * `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, `overEvery`,
-     * `overSome`, `partial`, `partialRight`, `partition`, `pick`, `pickBy`, `plant`,
-     * `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, `pullAt`, `push`,
-     * `range`, `rangeRight`, `rearg`, `reject`, `remove`, `rest`, `reverse`,
-     * `sampleSize`, `set`, `setWith`, `shuffle`, `slice`, `sort`, `sortBy`,
-     * `splice`, `spread`, `tail`, `take`, `takeRight`, `takeRightWhile`,
-     * `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, `toPairs`, `toPairsIn`,
-     * `toPath`, `toPlainObject`, `transform`, `unary`, `union`, `unionBy`,
-     * `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, `unshift`, `unzip`,
-     * `unzipWith`, `values`, `valuesIn`, `without`, `wrap`, `xor`, `xorBy`,
-     * `xorWith`, `zip`, `zipObject`, `zipObjectDeep`, and `zipWith`
+     * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,
+     * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,
+     * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,
+     * `flatten`, `flattenDeep`, `flattenDepth`, `flip`, `flow`, `flowRight`,
+     * `fromPairs`, `functions`, `functionsIn`, `groupBy`, `initial`, `intersection`,
+     * `intersectionBy`, `intersectionWith`, `invert`, `invertBy`, `invokeMap`,
+     * `iteratee`, `keyBy`, `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`,
+     * `matches`, `matchesProperty`, `memoize`, `merge`, `mergeWith`, `method`,
+     * `methodOf`, `mixin`, `negate`, `nthArg`, `omit`, `omitBy`, `once`, `orderBy`,
+     * `over`, `overArgs`, `overEvery`, `overSome`, `partial`, `partialRight`,
+     * `partition`, `pick`, `pickBy`, `plant`, `property`, `propertyOf`, `pull`,
+     * `pullAll`, `pullAllBy`, `pullAllWith`, `pullAt`, `push`, `range`,
+     * `rangeRight`, `rearg`, `reject`, `remove`, `rest`, `reverse`, `sampleSize`,
+     * `set`, `setWith`, `shuffle`, `slice`, `sort`, `sortBy`, `splice`, `spread`,
+     * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, `tap`, `throttle`,
+     * `thru`, `toArray`, `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`,
+     * `transform`, `unary`, `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`,
+     * `uniqWith`, `unset`, `unshift`, `unzip`, `unzipWith`, `update`, `values`,
+     * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, `zipObject`,
+     * `zipObjectDeep`, and `zipWith`
      *
      * The wrapper methods that are **not** chainable by default are:
      * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,
-     * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `deburr`, `endsWith`, `eq`,
-     * `escape`, `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,
-     * `findLastIndex`, `findLastKey`, `floor`, `forEach`, `forEachRight`, `forIn`,
-     * `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, `hasIn`,
-     * `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, `isArguments`,
-     * `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, `isBoolean`,
-     * `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, `isEqualWith`,
-     * `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, `isMap`,
-     * `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`,
-     * `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, `isSafeInteger`,
-     * `isSet`, `isString`, `isUndefined`, `isTypedArray`, `isWeakMap`, `isWeakSet`,
-     * `join`, `kebabCase`, `last`, `lastIndexOf`, `lowerCase`, `lowerFirst`,
-     * `lt`, `lte`, `max`, `maxBy`, `mean`, `min`, `minBy`, `noConflict`, `noop`,
-     * `now`, `pad`, `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`,
-     * `reduceRight`, `repeat`, `result`, `round`, `runInContext`, `sample`,
-     * `shift`, `size`, `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`,
-     * `sortedLastIndex`, `sortedLastIndexBy`, `startCase`, `startsWith`, `subtract`,
-     * `sum`, `sumBy`, `template`, `times`, `toLower`, `toInteger`, `toLength`,
+     * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `deburr`, `each`, `eachRight`,
+     * `endsWith`, `eq`, `escape`, `escapeRegExp`, `every`, `find`, `findIndex`,
+     * `findKey`, `findLast`, `findLastIndex`, `findLastKey`, `first`, `floor`,
+     * `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`,
+     * `get`, `gt`, `gte`, `has`, `hasIn`, `head`, `identity`, `includes`,
+     * `indexOf`, `inRange`, `invoke`, `isArguments`, `isArray`, `isArrayBuffer`,
+     * `isArrayLike`, `isArrayLikeObject`, `isBoolean`, `isBuffer`, `isDate`,
+     * `isElement`, `isEmpty`, `isEqual`, `isEqualWith`, `isError`, `isFinite`,
+     * `isFunction`, `isInteger`, `isLength`, `isMap`, `isMatch`, `isMatchWith`,
+     * `isNaN`, `isNative`, `isNil`, `isNull`, `isNumber`, `isObject`, `isObjectLike`,
+     * `isPlainObject`, `isRegExp`, `isSafeInteger`, `isSet`, `isString`,
+     * `isUndefined`, `isTypedArray`, `isWeakMap`, `isWeakSet`, `join`, `kebabCase`,
+     * `last`, `lastIndexOf`, `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`,
+     * `maxBy`, `mean`, `min`, `minBy`, `noConflict`, `noop`, `now`, `pad`,
+     * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,
+     * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,
+     * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,
+     * `sortedLastIndexBy`, `startCase`, `startsWith`, `subtract`, `sum`, `sumBy`,
+     * `template`, `times`, `toInteger`, `toJSON`, `toLength`, `toLower`,
      * `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, `trimEnd`,
      * `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, `upperFirst`,
      * `value`, and `words`
     }
 
     /**
-     * This function is like `assignValue` except that it doesn't assign `undefined` values.
+     * This function is like `assignValue` except that it doesn't assign
+     * `undefined` values.
      *
      * @private
      * @param {Object} object The object to modify.
      * @private
      * @param {*} value The value to clone.
      * @param {boolean} [isDeep] Specify a deep clone.
+     * @param {boolean} [isFull] Specify a clone including symbols.
      * @param {Function} [customizer] The function to customize cloning.
      * @param {string} [key] The key of `value`.
      * @param {Object} [object] The parent object of `value`.
      * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
      * @returns {*} Returns the cloned value.
      */
-    function baseClone(value, isDeep, customizer, key, object, stack) {
+    function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
       var result;
       if (customizer) {
         result = object ? customizer(value, key, object, stack) : customizer(value);
           }
           result = initCloneObject(isFunc ? {} : value);
           if (!isDeep) {
-            return copySymbols(value, baseAssign(result, value));
+            result = baseAssign(result, value);
+            return isFull ? copySymbols(value, result) : result;
           }
         } else {
           if (!cloneableTags[tag]) {
 
       // Recursively populate clone (susceptible to call stack limits).
       (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) {
-        assignValue(result, key, baseClone(subValue, isDeep, customizer, key, value, stack));
+        assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
       });
-      return isArr ? result : copySymbols(value, result);
+      return (isFull && !isArr) ? copySymbols(value, result) : result;
     }
 
     /**
      */
     function baseIntersection(arrays, iteratee, comparator) {
       var includes = comparator ? arrayIncludesWith : arrayIncludes,
+          length = arrays[0].length,
           othLength = arrays.length,
           othIndex = othLength,
           caches = Array(othLength),
+          maxLength = Infinity,
           result = [];
 
       while (othIndex--) {
         if (othIndex && iteratee) {
           array = arrayMap(array, baseUnary(iteratee));
         }
-        caches[othIndex] = !comparator && (iteratee || array.length >= 120)
+        maxLength = nativeMin(array.length, maxLength);
+        caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
           ? new SetCache(othIndex && array)
           : undefined;
       }
       array = arrays[0];
 
       var index = -1,
-          length = array.length,
           seen = caches[0];
 
       outer:
-      while (++index < length) {
+      while (++index < length && result.length < maxLength) {
         var value = array[index],
             computed = iteratee ? iteratee(value) : value;
 
               ? cacheHas(seen, computed)
               : includes(result, computed, comparator)
             )) {
-          var othIndex = othLength;
+          othIndex = othLength;
           while (--othIndex) {
             var cache = caches[othIndex];
             if (!(cache
 
       if (!objIsArr) {
         objTag = getTag(object);
-        if (objTag == argsTag) {
-          objTag = objectTag;
-        } else if (objTag != objectTag) {
-          objIsArr = isTypedArray(object);
-        }
+        objTag = objTag == argsTag ? objectTag : objTag;
       }
       if (!othIsArr) {
         othTag = getTag(other);
-        if (othTag == argsTag) {
-          othTag = objectTag;
-        } else if (othTag != objectTag) {
-          othIsArr = isTypedArray(other);
-        }
+        othTag = othTag == argsTag ? objectTag : othTag;
       }
       var objIsObj = objTag == objectTag && !isHostObject(object),
           othIsObj = othTag == objectTag && !isHostObject(other),
           isSameTag = objTag == othTag;
 
-      if (isSameTag && !(objIsArr || objIsObj)) {
-        return equalByTag(object, other, objTag, equalFunc, customizer, bitmask);
+      if (isSameTag && !objIsObj) {
+        stack || (stack = new Stack);
+        return (objIsArr || isTypedArray(object))
+          ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)
+          : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);
       }
-      var isPartial = bitmask & PARTIAL_COMPARE_FLAG;
-      if (!isPartial) {
+      if (!(bitmask & PARTIAL_COMPARE_FLAG)) {
         var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
             othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
 
         if (objIsWrapped || othIsWrapped) {
+          stack || (stack = new Stack);
           return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, bitmask, stack);
         }
       }
         return false;
       }
       stack || (stack = new Stack);
-      return (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, bitmask, stack);
+      return equalObjects(object, other, equalFunc, customizer, bitmask, stack);
     }
 
     /**
           }
           else {
             isCommon = false;
-            newValue = baseClone(srcValue, true);
+            newValue = baseClone(srcValue, !customizer);
           }
         }
         else if (isPlainObject(srcValue) || isArguments(srcValue)) {
           }
           else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {
             isCommon = false;
-            newValue = baseClone(srcValue, true);
+            newValue = baseClone(srcValue, !customizer);
           }
           else {
             newValue = objValue;
         // Recursively merge objects and arrays (susceptible to call stack limits).
         mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
       }
+      stack['delete'](srcValue);
       assignMergeValue(object, key, newValue);
     }
 
      * @returns {Array} Returns the new sorted array.
      */
     function baseOrderBy(collection, iteratees, orders) {
-      var index = -1,
-          toIteratee = getIteratee();
-
-      iteratees = arrayMap(iteratees.length ? iteratees : Array(1), function(iteratee) {
-        return toIteratee(iteratee);
-      });
+      var index = -1;
+      iteratees = arrayMap(iteratees.length ? iteratees : Array(1), getIteratee());
 
       var result = baseMap(collection, function(value, key, collection) {
         var criteria = arrayMap(iteratees, function(iteratee) {
     }
 
     /**
-     * The base implementation of `_.pullAll`.
-     *
-     * @private
-     * @param {Array} array The array to modify.
-     * @param {Array} values The values to remove.
-     * @returns {Array} Returns `array`.
-     */
-    function basePullAll(array, values) {
-      return basePullAllBy(array, values);
-    }
-
-    /**
      * The base implementation of `_.pullAllBy` without support for iteratee
      * shorthands.
      *
      * @param {Array} array The array to modify.
      * @param {Array} values The values to remove.
      * @param {Function} [iteratee] The iteratee invoked per element.
+     * @param {Function} [comparator] The comparator invoked per element.
      * @returns {Array} Returns `array`.
      */
-    function basePullAllBy(array, values, iteratee) {
-      var index = -1,
+    function basePullAll(array, values, iteratee, comparator) {
+      var indexOf = comparator ? baseIndexOfWith : baseIndexOf,
+          index = -1,
           length = values.length,
           seen = array;
 
       if (iteratee) {
-        seen = arrayMap(array, function(value) { return iteratee(value); });
+        seen = arrayMap(array, baseUnary(iteratee));
       }
       while (++index < length) {
         var fromIndex = 0,
             value = values[index],
             computed = iteratee ? iteratee(value) : value;
 
-        while ((fromIndex = baseIndexOf(seen, computed, fromIndex)) > -1) {
+        while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {
           if (seen !== array) {
             splice.call(seen, fromIndex, 1);
           }
           value = array[0],
           computed = iteratee ? iteratee(value) : value,
           seen = computed,
-          resIndex = 0,
+          resIndex = 1,
           result = [value];
 
       while (++index < length) {
 
         if (!eq(computed, seen)) {
           seen = computed;
-          result[++resIndex] = value;
+          result[resIndex++] = value;
         }
       }
       return result;
     }
 
     /**
+     * The base implementation of `_.update`.
+     *
+     * @private
+     * @param {Object} object The object to query.
+     * @param {Array|string} path The path of the property to update.
+     * @param {Function} updater The function to produce the updated value.
+     * @param {Function} [customizer] The function to customize path creation.
+     * @returns {Object} Returns `object`.
+     */
+    function baseUpdate(object, path, updater, customizer) {
+      return baseSet(object, path, updater(baseGet(object, path)), customizer);
+    }
+
+    /**
      * The base implementation of methods like `_.dropWhile` and `_.takeWhile`
      * without support for iteratee shorthands.
      *
       if (isDeep) {
         return buffer.slice();
       }
-      var Ctor = buffer.constructor,
-          result = new Ctor(buffer.length);
-
+      var result = new buffer.constructor(buffer.length);
       buffer.copy(result);
       return result;
     }
      * @returns {ArrayBuffer} Returns the cloned array buffer.
      */
     function cloneArrayBuffer(arrayBuffer) {
-      var Ctor = arrayBuffer.constructor,
-          result = new Ctor(arrayBuffer.byteLength),
-          view = new Uint8Array(result);
-
-      view.set(new Uint8Array(arrayBuffer));
+      var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
+      new Uint8Array(result).set(new Uint8Array(arrayBuffer));
       return result;
     }
 
      * @returns {Object} Returns the cloned map.
      */
     function cloneMap(map) {
-      var Ctor = map.constructor;
-      return arrayReduce(mapToArray(map), addMapEntry, new Ctor);
+      return arrayReduce(mapToArray(map), addMapEntry, new map.constructor);
     }
 
     /**
      * @returns {Object} Returns the cloned regexp.
      */
     function cloneRegExp(regexp) {
-      var Ctor = regexp.constructor,
-          result = new Ctor(regexp.source, reFlags.exec(regexp));
-
+      var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
       result.lastIndex = regexp.lastIndex;
       return result;
     }
      * @returns {Object} Returns the cloned set.
      */
     function cloneSet(set) {
-      var Ctor = set.constructor;
-      return arrayReduce(setToArray(set), addSetEntry, new Ctor);
+      return arrayReduce(setToArray(set), addSetEntry, new set.constructor);
     }
 
     /**
      * @returns {Object} Returns the cloned symbol object.
      */
     function cloneSymbol(symbol) {
-      return Symbol ? Object(symbolValueOf.call(symbol)) : {};
+      return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
     }
 
     /**
      * @returns {Object} Returns the cloned typed array.
      */
     function cloneTypedArray(typedArray, isDeep) {
-      var arrayBuffer = typedArray.buffer,
-          buffer = isDeep ? cloneArrayBuffer(arrayBuffer) : arrayBuffer,
-          Ctor = typedArray.constructor;
-
-      return new Ctor(buffer, typedArray.byteOffset, typedArray.length);
+      var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
+      return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
     }
 
     /**
      * @param {Array} array The array to compare.
      * @param {Array} other The other array to compare.
      * @param {Function} equalFunc The function to determine equivalents of values.
-     * @param {Function} [customizer] The function to customize comparisons.
-     * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.
-     * @param {Object} [stack] Tracks traversed `array` and `other` objects.
+     * @param {Function} customizer The function to customize comparisons.
+     * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details.
+     * @param {Object} stack Tracks traversed `array` and `other` objects.
      * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
      */
     function equalArrays(array, other, equalFunc, customizer, bitmask, stack) {
      * @param {Object} other The other object to compare.
      * @param {string} tag The `toStringTag` of the objects to compare.
      * @param {Function} equalFunc The function to determine equivalents of values.
-     * @param {Function} [customizer] The function to customize comparisons.
-     * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.
+     * @param {Function} customizer The function to customize comparisons.
+     * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details.
+     * @param {Object} stack Tracks traversed `object` and `other` objects.
      * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
      */
-    function equalByTag(object, other, tag, equalFunc, customizer, bitmask) {
+    function equalByTag(object, other, tag, equalFunc, customizer, bitmask, stack) {
       switch (tag) {
         case arrayBufferTag:
           if ((object.byteLength != other.byteLength) ||
           var isPartial = bitmask & PARTIAL_COMPARE_FLAG;
           convert || (convert = setToArray);
 
+          if (object.size != other.size && !isPartial) {
+            return false;
+          }
+          // Assume cyclic values are equal.
+          var stacked = stack.get(object);
+          if (stacked) {
+            return stacked == other;
+          }
           // Recursively compare objects (susceptible to call stack limits).
-          return (isPartial || object.size == other.size) &&
-            equalFunc(convert(object), convert(other), customizer, bitmask | UNORDERED_COMPARE_FLAG);
+          return equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask | UNORDERED_COMPARE_FLAG, stack.set(object, other));
 
         case symbolTag:
-          return !!Symbol && (symbolValueOf.call(object) == symbolValueOf.call(other));
+          if (symbolValueOf) {
+            return symbolValueOf.call(object) == symbolValueOf.call(other);
+          }
       }
       return false;
     }
      * @param {Object} object The object to compare.
      * @param {Object} other The other object to compare.
      * @param {Function} equalFunc The function to determine equivalents of values.
-     * @param {Function} [customizer] The function to customize comparisons.
-     * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual` for more details.
-     * @param {Object} [stack] Tracks traversed `object` and `other` objects.
+     * @param {Function} customizer The function to customize comparisons.
+     * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual` for more details.
+     * @param {Object} stack Tracks traversed `object` and `other` objects.
      * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
      */
     function equalObjects(object, other, equalFunc, customizer, bitmask, stack) {
      * @returns {*} Returns the function if it's native, else `undefined`.
      */
     function getNative(object, key) {
-      var value = object == null ? undefined : object[key];
+      var value = object[key];
       return isNative(value) ? value : undefined;
     }
 
      * @returns {Object} Returns the initialized clone.
      */
     function initCloneObject(object) {
-      return (isFunction(object.constructor) && !isPrototype(object))
+      return (typeof object.constructor == 'function' && !isPrototype(object))
         ? baseCreate(getPrototypeOf(object))
         : {};
     }
      */
     function isPrototype(value) {
       var Ctor = value && value.constructor,
-          proto = (isFunction(Ctor) && Ctor.prototype) || objectProto;
+          proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
 
       return value === proto;
     }
      */
     function mergeDefaults(objValue, srcValue, key, object, source, stack) {
       if (isObject(objValue) && isObject(srcValue)) {
-        stack.set(srcValue, objValue);
-        baseMerge(objValue, srcValue, undefined, mergeDefaults, stack);
+        baseMerge(objValue, srcValue, undefined, mergeDefaults, stack.set(srcValue, objValue));
       }
       return objValue;
     }
         return [];
       }
       var index = 0,
-          resIndex = -1,
+          resIndex = 0,
           result = Array(nativeCeil(length / size));
 
       while (index < length) {
-        result[++resIndex] = baseSlice(array, index, (index += size));
+        result[resIndex++] = baseSlice(array, index, (index += size));
       }
       return result;
     }
     function compact(array) {
       var index = -1,
           length = array ? array.length : 0,
-          resIndex = -1,
+          resIndex = 0,
           result = [];
 
       while (++index < length) {
         var value = array[index];
         if (value) {
-          result[++resIndex] = value;
+          result[resIndex++] = value;
         }
       }
       return result;
     /**
      * Creates an array of unique `array` values not included in the other
      * given arrays using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
-     * for equality comparisons.
+     * for equality comparisons. The order of result values is determined by the
+     * order they occur in the first array.
      *
      * @static
      * @memberOf _
     /**
      * This method is like `_.difference` except that it accepts `iteratee` which
      * is invoked for each element of `array` and `values` to generate the criterion
-     * by which uniqueness is computed. The iteratee is invoked with one argument: (value).
+     * by which they're compared. Result values are chosen from the first array.
+     * The iteratee is invoked with one argument: (value).
      *
      * @static
      * @memberOf _
 
     /**
      * This method is like `_.difference` except that it accepts `comparator`
-     * which is invoked to compare elements of `array` to `values`. The comparator
-     * is invoked with two arguments: (arrVal, othVal).
+     * which is invoked to compare elements of `array` to `values`. Result values
+     * are chosen from the first array. The comparator is invoked with two arguments:
+     * (arrVal, othVal).
      *
      * @static
      * @memberOf _
     /**
      * Creates an array of unique values that are included in all given arrays
      * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
-     * for equality comparisons.
+     * for equality comparisons. The order of result values is determined by the
+     * order they occur in the first array.
      *
      * @static
      * @memberOf _
      * @category Array
      * @param {...Array} [arrays] The arrays to inspect.
-     * @returns {Array} Returns the new array of shared values.
+     * @returns {Array} Returns the new array of intersecting values.
      * @example
      *
      * _.intersection([2, 1], [4, 2], [1, 2]);
     /**
      * This method is like `_.intersection` except that it accepts `iteratee`
      * which is invoked for each element of each `arrays` to generate the criterion
-     * by which uniqueness is computed. The iteratee is invoked with one argument: (value).
+     * by which they're compared. Result values are chosen from the first array.
+     * The iteratee is invoked with one argument: (value).
      *
      * @static
      * @memberOf _
      * @category Array
      * @param {...Array} [arrays] The arrays to inspect.
      * @param {Function|Object|string} [iteratee=_.identity] The iteratee invoked per element.
-     * @returns {Array} Returns the new array of shared values.
+     * @returns {Array} Returns the new array of intersecting values.
      * @example
      *
      * _.intersectionBy([2.1, 1.2], [4.3, 2.4], Math.floor);
 
     /**
      * This method is like `_.intersection` except that it accepts `comparator`
-     * which is invoked to compare elements of `arrays`. The comparator is invoked
-     * with two arguments: (arrVal, othVal).
+     * which is invoked to compare elements of `arrays`. Result values are chosen
+     * from the first array. The comparator is invoked with two arguments:
+     * (arrVal, othVal).
      *
      * @static
      * @memberOf _
      * @category Array
      * @param {...Array} [arrays] The arrays to inspect.
      * @param {Function} [comparator] The comparator invoked per element.
-     * @returns {Array} Returns the new array of shared values.
+     * @returns {Array} Returns the new array of intersecting values.
      * @example
      *
      * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
     /**
      * This method is like `_.pullAll` except that it accepts `iteratee` which is
      * invoked for each element of `array` and `values` to generate the criterion
-     * by which uniqueness is computed. The iteratee is invoked with one argument: (value).
+     * by which they're compared. The iteratee is invoked with one argument: (value).
      *
      * **Note:** Unlike `_.differenceBy`, this method mutates `array`.
      *
      */
     function pullAllBy(array, values, iteratee) {
       return (array && array.length && values && values.length)
-        ? basePullAllBy(array, values, getIteratee(iteratee))
+        ? basePullAll(array, values, getIteratee(iteratee))
+        : array;
+    }
+
+    /**
+     * This method is like `_.pullAll` except that it accepts `comparator` which
+     * is invoked to compare elements of `array` to `values`. The comparator is
+     * invoked with two arguments: (arrVal, othVal).
+     *
+     * **Note:** Unlike `_.differenceWith`, this method mutates `array`.
+     *
+     * @static
+     * @memberOf _
+     * @category Array
+     * @param {Array} array The array to modify.
+     * @param {Array} values The values to remove.
+     * @param {Function} [comparator] The comparator invoked per element.
+     * @returns {Array} Returns `array`.
+     * @example
+     *
+     * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
+     *
+     * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
+     * console.log(array);
+     * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
+     */
+    function pullAllWith(array, values, comparator) {
+      return (array && array.length && values && values.length)
+        ? basePullAll(array, values, undefined, comparator)
         : array;
     }
 
 
     /**
      * Creates an array of unique values that is the [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
-     * of the given arrays.
+     * of the given arrays. The order of result values is determined by the order
+     * they occur in the arrays.
      *
      * @static
      * @memberOf _
     /**
      * This method is like `_.xor` except that it accepts `iteratee` which is
      * invoked for each element of each `arrays` to generate the criterion by which
-     * uniqueness is computed. The iteratee is invoked with one argument: (value).
+     * by which they're compared. The iteratee is invoked with one argument: (value).
      *
      * @static
      * @memberOf _
      * // => true
      */
     function clone(value) {
-      return baseClone(value);
+      return baseClone(value, false, true);
     }
 
     /**
      * // => 0
      */
     function cloneWith(value, customizer) {
-      return baseClone(value, false, customizer);
+      return baseClone(value, false, true, customizer);
     }
 
     /**
      * // => false
      */
     function cloneDeep(value) {
-      return baseClone(value, true);
+      return baseClone(value, true, true);
     }
 
     /**
      * // => 20
      */
     function cloneDeepWith(value, customizer) {
-      return baseClone(value, true, customizer);
+      return baseClone(value, true, true, customizer);
     }
 
     /**
      * // => false
      */
     function isArrayLike(value) {
-      return value != null &&
-        !(typeof value == 'function' && isFunction(value)) && isLength(getLength(value));
+      return value != null && isLength(getLength(value)) && !isFunction(value);
     }
 
     /**
     }
 
     /**
-     * Checks if `value` is empty. A value is considered empty unless it's an
-     * `arguments` object, array, string, or jQuery-like collection with a length
-     * greater than `0` or an object with own enumerable properties.
+     * Checks if `value` is an empty collection or object. A value is considered
+     * empty if it's an `arguments` object, array, string, or jQuery-like collection
+     * with a length of `0` or has no own enumerable properties.
      *
      * @static
      * @memberOf _
      * @category Lang
-     * @param {Array|Object|string} value The value to inspect.
+     * @param {*} value The value to check.
      * @returns {boolean} Returns `true` if `value` is empty, else `false`.
      * @example
      *
      */
     function isFunction(value) {
       // The use of `Object#toString` avoids issues with the `typeof` operator
-      // in Safari 8 which returns 'object' for typed array constructors, and
-      // PhantomJS 1.9 which returns 'function' for `NodeList` instances.
+      // in Safari 8 which returns 'object' for typed array and weak map constructors,
+      // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.
       var tag = isObject(value) ? objectToString.call(value) : '';
       return tag == funcTag || tag == genTag;
     }
         return '';
       }
       if (isSymbol(value)) {
-        return Symbol ? symbolToString.call(value) : '';
+        return symbolToString ? symbolToString.call(value) : '';
       }
       var result = (value + '');
       return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
      * // => { 'a': 1, 'c': 3, 'e': 5 }
      */
     var assign = createAssigner(function(object, source) {
-      copyObject(source, keys(source), object);
+      if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {
+        copyObject(source, keys(source), object);
+        return;
+      }
+      for (var key in source) {
+        if (hasOwnProperty.call(source, key)) {
+          assignValue(object, key, source[key]);
+        }
+      }
     });
 
     /**
      * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5 }
      */
     var assignIn = createAssigner(function(object, source) {
-      copyObject(source, keysIn(source), object);
+      if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {
+        copyObject(source, keysIn(source), object);
+        return;
+      }
+      for (var key in source) {
+        assignValue(object, key, source[key]);
+      }
     });
 
     /**
     }
 
     /**
-     * Recursively merges own and inherited enumerable properties of source objects
-     * into the destination object. Source properties that resolve to `undefined`
-     * are skipped if a destination value exists. Array and plain object properties
-     * are merged recursively. Other objects and value types are overridden by
-     * assignment. Source objects are applied from left to right. Subsequent
-     * sources overwrite property assignments of previous sources.
+     * This method is like `_.assign` except that it recursively merges own and
+     * inherited enumerable properties of source objects into the destination
+     * object. Source properties that resolve to `undefined` are skipped if a
+     * destination value exists. Array and plain object properties are merged
+     * recursively.Other objects and value types are overridden by assignment.
+     * Source objects are applied from left to right. Subsequent sources
+     * overwrite property assignments of previous sources.
      *
      * **Note:** This method mutates `object`.
      *
      * @returns {Object} Returns `object`.
      * @example
      *
-     * _.setWith({ '0': { 'length': 2 } }, '[0][1][2]', 3, Object);
-     * // => { '0': { '1': { '2': 3 }, 'length': 2 } }
+     * var object = {};
+     *
+     * _.setWith(object, '[0][1]', 'a', Object);
+     * // => { '0': { '1': 'a' } }
      */
     function setWith(object, path, value, customizer) {
       customizer = typeof customizer == 'function' ? customizer : undefined;
     }
 
     /**
+     * This method is like `_.set` except that accepts `updater` to produce the
+     * value to set. Use `_.updateWith` to customize `path` creation. The `updater`
+     * is invoked with one argument: (value).
+     *
+     * **Note:** This method mutates `object`.
+     *
+     * @static
+     * @memberOf _
+     * @category Object
+     * @param {Object} object The object to modify.
+     * @param {Array|string} path The path of the property to set.
+     * @param {Function} updater The function to produce the updated value.
+     * @returns {Object} Returns `object`.
+     * @example
+     *
+     * var object = { 'a': [{ 'b': { 'c': 3 } }] };
+     *
+     * _.update(object, 'a[0].b.c', function(n) { return n * n; });
+     * console.log(object.a[0].b.c);
+     * // => 9
+     *
+     * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });
+     * console.log(object.x[0].y.z);
+     * // => 0
+     */
+    function update(object, path, updater) {
+      return object == null ? object : baseUpdate(object, path, baseCastFunction(updater));
+    }
+
+    /**
+     * This method is like `_.update` except that it accepts `customizer` which is
+     * invoked to produce the objects of `path`.  If `customizer` returns `undefined`
+     * path creation is handled by the method instead. The `customizer` is invoked
+     * with three arguments: (nsValue, key, nsObject).
+     *
+     * **Note:** This method mutates `object`.
+     *
+     * @static
+     * @memberOf _
+     * @category Object
+     * @param {Object} object The object to modify.
+     * @param {Array|string} path The path of the property to set.
+     * @param {Function} updater The function to produce the updated value.
+     * @param {Function} [customizer] The function to customize assigned values.
+     * @returns {Object} Returns `object`.
+     * @example
+     *
+     * var object = {};
+     *
+     * _.updateWith(object, '[0][1]', _.constant('a'), Object);
+     * // => { '0': { '1': 'a' } }
+     */
+    function updateWith(object, path, updater, customizer) {
+      customizer = typeof customizer == 'function' ? customizer : undefined;
+      return object == null ? object : baseUpdate(object, path, baseCastFunction(updater), customizer);
+    }
+
+    /**
      * Creates an array of the own enumerable property values of `object`.
      *
      * **Note:** Non-object values are coerced to objects.
     }
 
     /**
-     * Converts `string`, as a whole, to lower case.
+     * Converts `string`, as a whole, to lower case just like
+     * [String#toLowerCase](https://mdn.io/toLowerCase).
      *
      * @static
      * @memberOf _
     }
 
     /**
-     * Converts `string`, as a whole, to upper case.
+     * Converts `string`, as a whole, to upper case just like
+     * [String#toUpperCase](https://mdn.io/toUpperCase).
      *
      * @static
      * @memberOf _
 
     // Ensure wrappers are instances of `baseLodash`.
     lodash.prototype = baseLodash.prototype;
+    lodash.prototype.constructor = lodash;
 
     LodashWrapper.prototype = baseCreate(baseLodash.prototype);
     LodashWrapper.prototype.constructor = LodashWrapper;
     lodash.pull = pull;
     lodash.pullAll = pullAll;
     lodash.pullAllBy = pullAllBy;
+    lodash.pullAllWith = pullAllWith;
     lodash.pullAt = pullAt;
     lodash.range = range;
     lodash.rangeRight = rangeRight;
     lodash.unset = unset;
     lodash.unzip = unzip;
     lodash.unzipWith = unzipWith;
+    lodash.update = update;
+    lodash.updateWith = updateWith;
     lodash.values = values;
     lodash.valuesIn = valuesIn;
     lodash.without = without;
index 10fcef4..2f9987f 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "lodash",
-  "version": "4.5.1",
+  "version": "4.6.1",
   "main": "lodash.js",
   "private": true,
   "devDependencies": {
@@ -8,7 +8,7 @@
     "benchmark": "^2.1.0",
     "chalk": "^1.1.1",
     "codecov.io": "~0.1.6",
-    "coveralls": "^2.11.6",
+    "coveralls": "^2.11.8",
     "curl-amd": "~0.8.12",
     "docdown": "~0.4.1",
     "dojo": "^1.10.4",
     "fs-extra": "~0.26.5",
     "glob": "^7.0.0",
     "istanbul": "0.4.2",
-    "jquery": "^2.2.0",
+    "jquery": "^2.2.1",
     "jscs": "^2.10.1",
-    "lodash": "4.4.0",
+    "lodash": "4.5.0",
     "platform": "^1.3.1",
-    "qunit-extras": "^1.4.5",
-    "qunitjs": "~1.21.0",
+    "qunit-extras": "^1.5.0",
+    "qunitjs": "~1.22.0",
     "request": "^2.69.0",
     "requirejs": "^2.1.22",
     "sauce-tunnel": "^2.4.0",
-    "uglify-js": "2.6.1",
-    "webpack": "^1.12.13"
+    "uglify-js": "2.6.2",
+    "webpack": "^1.12.14"
   },
   "scripts": {
     "build": "npm run build:main & npm run build:fp",
index 583ea93..c69d948 100644 (file)
@@ -21,6 +21,9 @@
       slice = arrayProto.slice,
       WeakMap = root.WeakMap;
 
+  // Leak to avoid sporadic `noglobals` fails on Edge in Sauce Labs.
+  root.msWDfn = undefined;
+
   /*--------------------------------------------------------------------------*/
 
   /** Use a single "load" function. */
         deepObject = { 'a': { 'b': 2, 'c': 3 } };
 
     QUnit.test('should not mutate values', function(assert) {
-      assert.expect(38);
+      assert.expect(42);
 
       function Foo() {}
       Foo.prototype = { 'b': 2 };
 
       assert.deepEqual(value, deepObject, 'fp.unset');
       assert.deepEqual(actual, { 'a': { 'c': 3 } }, 'fp.unset');
+
+      value = _.cloneDeep(deepObject);
+      actual = fp.update('a.b')(function(n) { return n * n; })(value);
+
+      assert.deepEqual(value, deepObject, 'fp.update');
+      assert.deepEqual(actual, { 'a': { 'b': 4, 'c': 3 } }, 'fp.update');
+
+      value = _.cloneDeep(deepObject);
+      actual = fp.updateWith(Object)('d.e')(_.constant(4))(value);
+
+      assert.deepEqual(value, deepObject, 'fp.updateWith');
+      assert.deepEqual(actual, { 'a': { 'b': 2, 'c': 3 }, 'd': { 'e': 4 } }, 'fp.updateWith');
     });
   }());
 
   QUnit.module('placeholder methods');
 
   (function() {
-    QUnit.test('should support placeholders', function(assert) {
+    QUnit.test('should use `fp` as the default placeholder', function(assert) {
+      assert.expect(3);
+
+      var actual = fp.add(fp, 'b')('a');
+      assert.strictEqual(actual, 'ab');
+
+      actual = fp.slice(fp, 2)(1)(['a', 'b', 'c']);
+      assert.deepEqual(actual, ['b']);
+
+      actual = fp.fill(fp, 2)(1, '*')([1, 2, 3]);
+      assert.deepEqual(actual, [1, '*', 3]);
+    });
+
+    QUnit.test('should support `fp.placeholder`', function(assert) {
       assert.expect(6);
 
       _.each([[], fp.__], function(ph) {
         deepObject = { 'a': { 'b': 2, 'c': 3 } };
 
     QUnit.test('should only clone objects in `path`', function(assert) {
-      assert.expect(8);
+      assert.expect(11);
 
       var object = { 'a': { 'b': { 'c': 1 }, 'd': { 'e': 1 } } },
           value = _.cloneDeep(object),
       assert.strictEqual(actual.d, value.d, 'fp.set');
 
       value = _.cloneDeep(object);
-      actual = fp.setWith(Object)('a.b.c')(2)(value);
+      actual = fp.setWith(Object)('[0][1]')('a')(value);
 
-      assert.strictEqual(actual.a.b.c, 2, 'fp.setWith');
-      assert.strictEqual(actual.d, value.d, 'fp.setWith');
+      assert.deepEqual(actual[0], { '1': 'a' }, 'fp.setWith');
 
       value = _.cloneDeep(object);
       actual = fp.unset('a.b')(value);
 
       assert.notOk('b' in actual, 'fp.unset');
       assert.strictEqual(actual.d, value.d, 'fp.unset');
+
+      value = _.cloneDeep(deepObject);
+      actual = fp.update('a.b')(function(n) { return n * n; })(value);
+
+      assert.strictEqual(actual.a.b, 4, 'fp.update');
+      assert.strictEqual(actual.d, value.d, 'fp.update');
+
+      value = _.cloneDeep(deepObject);
+      actual = fp.updateWith(Object)('[0][1]')(_.constant('a'))(value);
+
+      assert.deepEqual(actual[0], { '1': 'a' }, 'fp.updateWith');
+      assert.strictEqual(actual.d, value.d, 'fp.updateWith');
     });
   }());
 
         object = { 'a': 1 };
 
     QUnit.test('should provide the correct `customizer` arguments', function(assert) {
-      assert.expect(4);
+      assert.expect(5);
 
       var args,
           value = _.clone(object);
       })('b.c')(2)(value);
 
       assert.deepEqual(args, [undefined, 'b', { 'a': 1 }], 'fp.setWith');
+
+      args = undefined;
+      value = _.clone(object);
+
+      fp.updateWith(function() {
+        args || (args = _.map(arguments, _.cloneDeep));
+      })('b.c')(_.constant(2))(value);
+
+      assert.deepEqual(args, [undefined, 'b', { 'a': 1 }], 'fp.updateWith');
     });
   }());
 
index 54673f4..dc8aa17 100644 (file)
 
       assert.deepEqual(actual, source);
     });
+
+    QUnit.test('`_.' + methodName + '` should treat sparse array sources as dense', function(assert) {
+      assert.expect(1);
+
+      var array = [1];
+      array[2] = 3;
+
+      assert.deepEqual(func({}, array), { '0': 1, '1': undefined, '2': 3 });
+    });
+
+    QUnit.test('`_.' + methodName + '` should assign values of prototype objects', function(assert) {
+      assert.expect(1);
+
+      function Foo() {}
+      Foo.prototype.a = 1;
+
+      assert.deepEqual(func({}, Foo.prototype), { 'a': 1 });
+    });
+
+    QUnit.test('`_.' + methodName + '` should coerce string sources to objects', function(assert) {
+      assert.expect(1);
+
+      assert.deepEqual(func({}, 'a'), { '0': 'a' });
+    });
   });
 
   /*--------------------------------------------------------------------------*/
       QUnit.test('`_.' + methodName + '` should clone `lastIndex` regexp property', function(assert) {
         assert.expect(1);
 
-        // Avoid a regexp literal for older Opera and use `exec` for older Safari.
-        var regexp = RegExp('c', 'g');
-
+        var regexp = /c/g;
         regexp.exec('abcde');
 
-        var actual = func(regexp);
-        assert.strictEqual(actual.lastIndex, 3);
+        assert.strictEqual(func(regexp).lastIndex, 3);
       });
 
       QUnit.test('`_.' + methodName + '` should clone expando properties', function(assert) {
       assert.strictEqual(actual.a.b, null);
     });
 
+    QUnit.test('should not overwrite regexp values', function(assert) {
+      assert.expect(1);
+
+      var object = { 'a': { 'b': /x/ } },
+          source = { 'a': { 'b': /y/ } },
+          actual = _.defaultsDeep(object, source);
+
+      assert.deepEqual(actual.a.b, /x/);
+    });
+
     QUnit.test('should not convert function properties to objects', function(assert) {
       assert.expect(2);
 
     });
 
     QUnit.test('should merge sources containing circular references', function(assert) {
-      assert.expect(1);
+      assert.expect(2);
 
       var object = {
         'foo': { 'b': { 'c': { 'd': {} } } },
       source.bar.b = source.foo.b;
 
       var actual = _.defaultsDeep(object, source);
-      assert.ok(actual.bar.b === actual.foo.b && actual.foo.b.c.d === actual.foo.b.c.d.foo.b.c.d);
+
+      assert.strictEqual(actual.bar.b, actual.foo.b);
+      assert.strictEqual(actual.foo.b.c.d, actual.foo.b.c.d.foo.b.c.d);
     });
 
     QUnit.test('should not modify sources', function(assert) {
   QUnit.module('lodash.differenceWith');
 
   (function() {
-    var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
-
     QUnit.test('should work with a `comparator` argument', function(assert) {
       assert.expect(1);
 
-      var actual = _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], lodashStable.isEqual);
-      assert.deepEqual(actual, [{ 'x': 2, 'y': 1 }]);
+      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }],
+          actual = _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], lodashStable.isEqual);
+
+      assert.deepEqual(actual, [objects[1]]);
     });
   }());
 
   QUnit.module('lodash.intersectionWith');
 
   (function() {
-    var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
-
     QUnit.test('should work with a `comparator` argument', function(assert) {
       assert.expect(1);
 
-      var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }],
+      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }],
+          others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }],
           actual = _.intersectionWith(objects, others, lodashStable.isEqual);
 
-      assert.deepEqual(actual, [{ 'x': 1, 'y': 2 }]);
+      assert.deepEqual(actual, [objects[0]]);
     });
   }());
 
       }
     });
 
+    QUnit.test('should compare maps with circular references', function(assert) {
+      assert.expect(2);
+
+      if (Map) {
+        var map1 = new Map,
+            map2 = new Map;
+
+        map1.set('a', map1);
+        map2.set('a', map2);
+        assert.strictEqual(_.isEqual(map1, map2), true);
+
+        map1.set('b', 1);
+        map2.set('b', 2);
+        assert.strictEqual(_.isEqual(map1, map2), false);
+      }
+      else {
+        skipAssert(assert, 2);
+      }
+    });
+
     QUnit.test('should compare regexes', function(assert) {
       assert.expect(5);
 
       }
     });
 
+    QUnit.test('should compare sets with circular references', function(assert) {
+      assert.expect(2);
+
+      if (Set) {
+        var set1 = new Set,
+            set2 = new Set;
+
+        set1.add(set1);
+        set2.add(set2);
+        assert.strictEqual(_.isEqual(set1, set2), true);
+
+        set1.add(1);
+        set2.add(2);
+        assert.strictEqual(_.isEqual(set1, set2), false);
+      }
+      else {
+        skipAssert(assert, 2);
+      }
+    });
+
     QUnit.test('should compare typed arrays', function(assert) {
       assert.expect(1);
 
     });
 
     QUnit.test('should merge sources containing circular references', function(assert) {
-      assert.expect(1);
+      assert.expect(2);
 
       var object = {
         'foo': { 'a': 1 },
       source.bar.b = source.foo.b;
 
       var actual = _.merge(object, source);
-      assert.ok(actual.bar.b === actual.foo.b && actual.foo.b.c.d === actual.foo.b.c.d.foo.b.c.d);
+
+      assert.notStrictEqual(actual.bar.b, actual.foo.b);
+      assert.strictEqual(actual.foo.b.c.d, actual.foo.b.c.d.foo.b.c.d);
     });
 
     QUnit.test('should work with four arguments', function(assert) {
     QUnit.test('should treat sparse array sources as dense', function(assert) {
       assert.expect(2);
 
-      var array = Array(3);
-      array[0] = 1;
+      var array = [1];
       array[2] = 3;
 
       var actual = _.merge([], array),
       var array1 = [0],
           array2 = [0, 0],
           array3 = [0, 0, 0, 0],
-          array4 = lodashStable.range(0, 8, 0);
+          array4 = [0, 0, 0, 0, 0, 0, 0, 0];
 
       var arrays = [array2, array1, array4, array3, array2, array4, array4, array3, array2],
           buffer = ArrayBuffer && new ArrayBuffer(8);
 
-      // juggle for `Float64Array` shim
+      // Juggle for `Float64Array` shim.
       if (root.Float64Array && (new Float64Array(buffer)).length == 8) {
         arrays[1] = array4;
       }
     QUnit.test('should skip `undefined` values in array sources if a destination value exists', function(assert) {
       assert.expect(2);
 
-      var array = Array(3);
-      array[0] = 1;
+      var array = [1];
       array[2] = 3;
 
       var actual = _.merge([4, 5, 6], array),
 
       assert.deepEqual(actual, { 'a': { 'b': ['c'] } });
     });
+
+    QUnit.test('should pop the stack of sources for each sibling property', function(assert) {
+      assert.expect(1);
+
+      var array = ['b', 'c'],
+          object = { 'a': ['a'] },
+          source = { 'a': array, 'b': array };
+
+      var actual = _.mergeWith(object, source, function(a, b) {
+        return lodashStable.isArray(a) ? a.concat(b) : undefined;
+      });
+
+      assert.deepEqual(actual, { 'a': ['a', 'b', 'c'], 'b': ['b', 'c'] });
+    });
   }());
 
   /*--------------------------------------------------------------------------*/
 
   /*--------------------------------------------------------------------------*/
 
+  QUnit.module('lodash.pullAllBy');
+
+  (function() {
+    QUnit.test('should accept an `iteratee` argument', function(assert) {
+      assert.expect(1);
+
+      var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
+
+      var actual = _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], function(object) {
+        return object.x;
+      });
+
+      assert.deepEqual(actual, [{ 'x': 2 }]);
+    });
+
+    QUnit.test('should provide the correct `iteratee` arguments', function(assert) {
+      assert.expect(1);
+
+      var args,
+          array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
+
+      _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], function() {
+        args || (args = slice.call(arguments));
+      });
+
+      assert.deepEqual(args, [{ 'x': 1 }]);
+    });
+  }());
+
+  /*--------------------------------------------------------------------------*/
+
+  QUnit.module('lodash.pullAllWith');
+
+  (function() {
+    QUnit.test('should work with a `comparator` argument', function(assert) {
+      assert.expect(1);
+
+      var objects = [{ 'x': 1, 'y': 1 }, { 'x': 2, 'y': 2 }, { 'x': 3, 'y': 3 }],
+          expected = [objects[0], objects[2]],
+          actual = _.pullAllWith(objects, [{ 'x': 2, 'y': 2 }], lodashStable.isEqual);
+
+      assert.deepEqual(actual, expected);
+    });
+  }());
+
+  /*--------------------------------------------------------------------------*/
+
   QUnit.module('pull methods');
 
-  lodashStable.each(['pull', 'pullAll'], function(methodName) {
+  lodashStable.each(['pull', 'pullAll', 'pullAllWith'], function(methodName) {
     var func = _[methodName],
         isPull = methodName == 'pull';
 
 
   /*--------------------------------------------------------------------------*/
 
-  QUnit.module('lodash.pullAllBy');
-
-  (function() {
-    QUnit.test('should accept an `iteratee` argument', function(assert) {
-      assert.expect(1);
-
-      var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
-
-      var actual = _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], function(object) {
-        return object.x;
-      });
-
-      assert.deepEqual(actual, [{ 'x': 2 }]);
-    });
-
-    QUnit.test('should provide the correct `iteratee` arguments', function(assert) {
-      assert.expect(1);
-
-      var args,
-          array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];
-
-      _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], function() {
-        args || (args = slice.call(arguments));
-      });
-
-      assert.deepEqual(args, [{ 'x': 1 }]);
-    });
-  }());
-
-  /*--------------------------------------------------------------------------*/
-
   QUnit.module('lodash.pullAt');
 
   (function() {
 
   QUnit.module('set methods');
 
-  lodashStable.each(['set', 'setWith'], function(methodName) {
-    var func = _[methodName];
+  lodashStable.each(['update', 'updateWith', 'set', 'setWith'], function(methodName) {
+    var func = _[methodName],
+        isUpdate = methodName == 'update' || methodName == 'updateWith';
+
+    var oldValue = 1,
+        value = 2,
+        updater = isUpdate ? lodashStable.constant(value) : value;
 
     QUnit.test('`_.' + methodName + '` should set property values', function(assert) {
       assert.expect(4);
 
-      var object = { 'a': 1 };
+      var object = { 'a': oldValue };
 
       lodashStable.each(['a', ['a']], function(path) {
-        var actual = func(object, path, 2);
+        var actual = func(object, path, updater);
 
         assert.strictEqual(actual, object);
-        assert.strictEqual(object.a, 2);
+        assert.strictEqual(object.a, value);
 
-        object.a = 1;
+        object.a = oldValue;
       });
     });
 
     QUnit.test('`_.' + methodName + '` should set deep property values', function(assert) {
       assert.expect(4);
 
-      var object = { 'a': { 'b': { 'c': 3 } } };
+      var object = { 'a': { 'b': { 'c': oldValue } } };
 
       lodashStable.each(['a.b.c', ['a', 'b', 'c']], function(path) {
-        var actual = func(object, path, 4);
+        var actual = func(object, path, updater);
 
         assert.strictEqual(actual, object);
-        assert.strictEqual(object.a.b.c, 4);
+        assert.strictEqual(object.a.b.c, value);
 
-        object.a.b.c = 3;
+        object.a.b.c = oldValue;
       });
     });
 
     QUnit.test('`_.' + methodName + '` should set a key over a path', function(assert) {
       assert.expect(4);
 
-      var object = { 'a.b.c': 3 };
+      var object = { 'a.b.c': oldValue };
 
       lodashStable.each(['a.b.c', ['a.b.c']], function(path) {
-        var actual = func(object, path, 4);
+        var actual = func(object, path, updater);
 
         assert.strictEqual(actual, object);
-        assert.deepEqual(object, { 'a.b.c': 4 });
+        assert.deepEqual(object, { 'a.b.c': value });
 
-        object['a.b.c'] = 3;
+        object['a.b.c'] = oldValue;
       });
     });
 
     QUnit.test('`_.' + methodName + '` should not coerce array paths to strings', function(assert) {
       assert.expect(1);
 
-      var object = { 'a,b,c': 3, 'a': { 'b': { 'c': 3 } } };
-      func(object, ['a', 'b', 'c'], 4);
-      assert.strictEqual(object.a.b.c, 4);
+      var object = { 'a,b,c': 1, 'a': { 'b': { 'c': 1 } } };
+
+      func(object, ['a', 'b', 'c'], updater);
+      assert.strictEqual(object.a.b.c, value);
     });
 
     QUnit.test('`_.' + methodName + '` should ignore empty brackets', function(assert) {
       assert.expect(1);
 
       var object = {};
-      func(object, 'a[]', 1);
-      assert.deepEqual(object, { 'a': 1 });
+
+      func(object, 'a[]', updater);
+      assert.deepEqual(object, { 'a': value });
     });
 
     QUnit.test('`_.' + methodName + '` should handle empty paths', function(assert) {
       lodashStable.each([['', ''], [[], ['']]], function(pair, index) {
         var object = {};
 
-        func(object, pair[0], 1);
-        assert.deepEqual(object, index ? {} : { '': 1 });
+        func(object, pair[0], updater);
+        assert.deepEqual(object, index ? {} : { '': value });
 
-        func(object, pair[1], 2);
-        assert.deepEqual(object, { '': 2 });
+        func(object, pair[1], updater);
+        assert.deepEqual(object, { '': value });
       });
     });
 
     QUnit.test('`_.' + methodName + '` should handle complex paths', function(assert) {
       assert.expect(2);
 
-      var object = { 'a': { '1.23': { '["b"]': { 'c': { "['d']": { '\ne\n': { 'f': { 'g': 8 } } } } } } } };
+      var object = { 'a': { '1.23': { '["b"]': { 'c': { "['d']": { '\ne\n': { 'f': { 'g': oldValue } } } } } } } };
 
       var paths = [
         'a[-1.23]["[\\"b\\"]"].c[\'[\\\'d\\\']\'][\ne\n][f].g',
       ];
 
       lodashStable.each(paths, function(path) {
-        func(object, path, 10);
-        assert.strictEqual(object.a[-1.23]['["b"]'].c["['d']"]['\ne\n'].f.g, 10);
-        object.a[-1.23]['["b"]'].c["['d']"]['\ne\n'].f.g = 8;
+        func(object, path, updater);
+        assert.strictEqual(object.a[-1.23]['["b"]'].c["['d']"]['\ne\n'].f.g, value);
+        object.a[-1.23]['["b"]'].c["['d']"]['\ne\n'].f.g = oldValue;
       });
     });
 
       var object = {};
 
       lodashStable.each(['a[1].b.c', ['a', '1', 'b', 'c']], function(path) {
-        var actual = func(object, path, 4);
+        var actual = func(object, path, updater);
 
         assert.strictEqual(actual, object);
-        assert.deepEqual(actual, { 'a': [undefined, { 'b': { 'c': 4 } }] });
+        assert.deepEqual(actual, { 'a': [undefined, { 'b': { 'c': value } }] });
         assert.notOk('0' in object.a);
 
         delete object.a;
 
       var actual = lodashStable.map(values, function(value) {
         try {
-          return [func(value, 'a.b', 1), func(value, ['a', 'b'], 1)];
+          return [func(value, 'a.b', updater), func(value, ['a', 'b'], updater)];
         } catch (e) {
           return e.message;
         }
           paths = ['constructor.prototype.a', ['constructor', 'prototype', 'a']];
 
       lodashStable.each(paths, function(path) {
-        func(0, path, 1);
-        assert.strictEqual(0..a, 1);
+        func(0, path, updater);
+        assert.strictEqual(0..a, value);
         delete numberProto.a;
       });
 
       lodashStable.each(['a.replace.b', ['a', 'replace', 'b']], function(path) {
-        func(object, path, 1);
-        assert.strictEqual(stringProto.replace.b, 1);
+        func(object, path, updater);
+        assert.strictEqual(stringProto.replace.b, value);
         delete stringProto.replace.b;
       });
     });
 
       assert.expect(2);
 
-      numberProto.a = 0;
+      numberProto.a = oldValue;
 
       lodashStable.each(['a', 'a.a.a'], function(path) {
         try {
-          func(0, path, 1);
-          assert.strictEqual(0..a, 0);
+          func(0, path, updater);
+          assert.strictEqual(0..a, oldValue);
         } catch (e) {
           assert.ok(false, e.message);
         }
-        numberProto.a = 0;
+        numberProto.a = oldValue;
       });
 
       delete numberProto.a;
 
       var object = {};
 
-      func(object, ['1a', '2b', '3c'], 1);
-      assert.deepEqual(object, { '1a': { '2b': { '3c': 1 } } });
+      func(object, ['1a', '2b', '3c'], updater);
+      assert.deepEqual(object, { '1a': { '2b': { '3c': value } } });
     });
 
     QUnit.test('`_.' + methodName + '` should not assign values that are the same as their destinations', function(assert) {
       lodashStable.each(['a', ['a'], { 'a': 1 }, NaN], function(value) {
         if (defineProperty) {
           var object = {},
-              pass = true;
+              pass = true,
+              updater = isUpdate ? lodashStable.constant(value) : value;
 
           defineProperty(object, 'a', {
             'enumerable': true,
             'set': function() { pass = false; }
           });
 
-          func(object, 'a', value);
+          func(object, 'a', updater);
           assert.ok(pass);
         }
         else {
 
   /*--------------------------------------------------------------------------*/
 
+  QUnit.module('lodash.unary');
+
+  (function() {
+    function fn() {
+      return slice.call(arguments);
+    }
+
+    QUnit.test('should cap the number of arguments provided to `func`', function(assert) {
+      assert.expect(1);
+
+      var actual = lodashStable.map(['6', '8', '10'], _.unary(parseInt));
+      assert.deepEqual(actual, [6, 8, 10]);
+    });
+
+    QUnit.test('should work when provided less than the capped number of arguments', function(assert) {
+      assert.expect(1);
+
+      var capped = _.unary(fn);
+      assert.deepEqual(capped(), []);
+    });
+  }());
+
+  /*--------------------------------------------------------------------------*/
+
   QUnit.module('lodash.unescape');
 
   (function() {
 
   /*--------------------------------------------------------------------------*/
 
-  QUnit.module('lodash.upperCase');
+  QUnit.module('lodash.unionBy');
 
   (function() {
-    QUnit.test('should uppercase as space-separated words', function(assert) {
-      assert.expect(3);
+    QUnit.test('should accept an `iteratee` argument', function(assert) {
+      assert.expect(2);
 
-      assert.strictEqual(_.upperCase('--foo-bar'), 'FOO BAR');
-      assert.strictEqual(_.upperCase('fooBar'), 'FOO BAR');
-      assert.strictEqual(_.upperCase('__foo_bar__'), 'FOO BAR');
+      var actual = _.unionBy([2.1, 1.2], [4.3, 2.4], Math.floor);
+      assert.deepEqual(actual, [2.1, 1.2, 4.3]);
+
+      actual = _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
+      assert.deepEqual(actual, [{ 'x': 1 }, { 'x': 2 }]);
     });
-  }());
 
-  /*--------------------------------------------------------------------------*/
+    QUnit.test('should provide the correct `iteratee` arguments', function(assert) {
+      assert.expect(1);
 
-  QUnit.module('lodash.upperFirst');
+      var args;
 
-  (function() {
-    QUnit.test('should uppercase only the first character', function(assert) {
-      assert.expect(3);
+      _.unionBy([2.1, 1.2], [4.3, 2.4], function() {
+        args || (args = slice.call(arguments));
+      });
 
-      assert.strictEqual(_.upperFirst('fred'), 'Fred');
-      assert.strictEqual(_.upperFirst('Fred'), 'Fred');
-      assert.strictEqual(_.upperFirst('FRED'), 'FRED');
+      assert.deepEqual(args, [2.1]);
     });
   }());
 
   /*--------------------------------------------------------------------------*/
 
-  QUnit.module('lodash.unary');
+  QUnit.module('lodash.unionWith');
 
   (function() {
-    function fn() {
-      return slice.call(arguments);
-    }
-
-    QUnit.test('should cap the number of arguments provided to `func`', function(assert) {
+    QUnit.test('should work with a `comparator` argument', function(assert) {
       assert.expect(1);
 
-      var actual = lodashStable.map(['6', '8', '10'], _.unary(parseInt));
-      assert.deepEqual(actual, [6, 8, 10]);
-    });
-
-    QUnit.test('should work when provided less than the capped number of arguments', function(assert) {
-      assert.expect(1);
+      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }],
+          others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }],
+          actual = _.unionWith(objects, others, lodashStable.isEqual);
 
-      var capped = _.unary(fn);
-      assert.deepEqual(capped(), []);
+      assert.deepEqual(actual, [objects[0], objects[1], others[0]]);
     });
   }());
 
 
   /*--------------------------------------------------------------------------*/
 
-  QUnit.module('lodash.unionBy');
+  QUnit.module('lodash.uniq');
 
   (function() {
-    QUnit.test('should accept an `iteratee` argument', function(assert) {
+    QUnit.test('should perform an unsorted uniq when used as an iteratee for methods like `_.map`', function(assert) {
+      assert.expect(1);
+
+      var array = [[2, 1, 2], [1, 2, 1]],
+          actual = lodashStable.map(array, lodashStable.uniq);
+
+      assert.deepEqual(actual, [[2, 1], [1, 2]]);
+    });
+  }());
+
+  /*--------------------------------------------------------------------------*/
+
+  QUnit.module('uniqBy methods');
+
+  lodashStable.each(['uniqBy', 'sortedUniqBy'], function(methodName) {
+    var func = _[methodName],
+        isSorted = methodName == 'sortedUniqBy',
+        objects = [{ 'a': 2 }, { 'a': 3 }, { 'a': 1 }, { 'a': 2 }, { 'a': 3 }, { 'a': 1 }];
+
+    if (isSorted) {
+      objects = _.sortBy(objects, 'a');
+    }
+    QUnit.test('`_.' + methodName + '` should work with an `iteratee` argument', function(assert) {
+      assert.expect(1);
+
+      var expected = isSorted ? [{ 'a': 1 }, { 'a': 2 }, { 'a': 3 }] : objects.slice(0, 3);
+
+      var actual = func(objects, function(object) {
+        return object.a;
+      });
+
+      assert.deepEqual(actual, expected);
+    });
+
+    QUnit.test('should work with large arrays', function(assert) {
       assert.expect(2);
 
-      var actual = _.unionBy([2.1, 1.2], [4.3, 2.4], Math.floor);
-      assert.deepEqual(actual, [2.1, 1.2, 4.3]);
+      var largeArray = lodashStable.times(LARGE_ARRAY_SIZE, function() {
+        return [1, 2];
+      });
 
-      actual = _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');
-      assert.deepEqual(actual, [{ 'x': 1 }, { 'x': 2 }]);
+      var actual = func(largeArray, String);
+
+      assert.deepEqual(actual, [[1, 2]]);
+      assert.strictEqual(actual[0], largeArray[0]);
     });
 
-    QUnit.test('should provide the correct `iteratee` arguments', function(assert) {
+    QUnit.test('`_.' + methodName + '` should provide the correct `iteratee` arguments', function(assert) {
       assert.expect(1);
 
       var args;
 
-      _.unionBy([2.1, 1.2], [4.3, 2.4], function() {
+      func(objects, function() {
         args || (args = slice.call(arguments));
       });
 
-      assert.deepEqual(args, [2.1]);
+      assert.deepEqual(args, [objects[0]]);
     });
-  }());
 
-  /*--------------------------------------------------------------------------*/
+    QUnit.test('`_.' + methodName + '` should work with "_.property" shorthands', function(assert) {
+      assert.expect(2);
 
-  QUnit.module('lodash.unionWith');
+      var expected = isSorted ? [{ 'a': 1 }, { 'a': 2 }, { 'a': 3 }] : objects.slice(0, 3),
+          actual = func(objects, 'a');
 
-  (function() {
-    var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
+      assert.deepEqual(actual, expected);
 
-    QUnit.test('should work with a `comparator` argument', function(assert) {
-      assert.expect(1);
+      var arrays = [[2], [3], [1], [2], [3], [1]];
+      if (isSorted) {
+        arrays = lodashStable.sortBy(arrays, 0);
+      }
+      expected = isSorted ? [[1], [2], [3]] : arrays.slice(0, 3);
+      actual = func(arrays, 0);
 
-      var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }],
-          actual = _.unionWith(objects, others, lodashStable.isEqual);
+      assert.deepEqual(actual, expected);
+    });
 
-      assert.deepEqual(actual, [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]);
+    lodashStable.each({
+      'an array': [0, 'a'],
+      'an object': { '0': 'a' },
+      'a number': 0,
+      'a string': '0'
+    },
+    function(iteratee, key) {
+      QUnit.test('`_.' + methodName + '` should work with ' + key + ' for `iteratee`', function(assert) {
+        assert.expect(1);
+
+        var actual = func([['a'], ['a'], ['b']], iteratee);
+        assert.deepEqual(actual, [['a'], ['b']]);
+      });
     });
-  }());
+  });
 
   /*--------------------------------------------------------------------------*/
 
-  QUnit.module('lodash.uniq');
+  QUnit.module('lodash.uniqWith');
 
   (function() {
-    QUnit.test('should perform an unsorted uniq when used as an iteratee for methods like `_.map`', function(assert) {
+    QUnit.test('should work with a `comparator` argument', function(assert) {
       assert.expect(1);
 
-      var array = [[2, 1, 2], [1, 2, 1]],
-          actual = lodashStable.map(array, lodashStable.uniq);
+      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 },  { 'x': 1, 'y': 2 }],
+          actual = _.uniqWith(objects, lodashStable.isEqual);
 
-      assert.deepEqual(actual, [[2, 1], [1, 2]]);
+      assert.deepEqual(actual, [objects[0], objects[1]]);
     });
   }());
 
 
   /*--------------------------------------------------------------------------*/
 
-  QUnit.module('uniqBy methods');
-
-  lodashStable.each(['uniqBy', 'sortedUniqBy'], function(methodName) {
-    var func = _[methodName],
-        isSorted = methodName == 'sortedUniqBy',
-        objects = [{ 'a': 2 }, { 'a': 3 }, { 'a': 1 }, { 'a': 2 }, { 'a': 3 }, { 'a': 1 }];
-
-    if (isSorted) {
-      objects = _.sortBy(objects, 'a');
-    }
-    QUnit.test('`_.' + methodName + '` should work with an `iteratee` argument', function(assert) {
-      assert.expect(1);
-
-      var expected = isSorted ? [{ 'a': 1 }, { 'a': 2 }, { 'a': 3 }] : objects.slice(0, 3);
-
-      var actual = func(objects, function(object) {
-        return object.a;
-      });
-
-      assert.deepEqual(actual, expected);
-    });
-
-    QUnit.test('should work with large arrays', function(assert) {
-      assert.expect(2);
-
-      var largeArray = lodashStable.times(LARGE_ARRAY_SIZE, function() {
-        return [1, 2];
-      });
-
-      var actual = func(largeArray, String);
-
-      assert.deepEqual(actual, [[1, 2]]);
-      assert.strictEqual(actual[0], largeArray[0]);
-    });
-
-    QUnit.test('`_.' + methodName + '` should provide the correct `iteratee` arguments', function(assert) {
-      assert.expect(1);
-
-      var args;
-
-      func(objects, function() {
-        args || (args = slice.call(arguments));
-      });
-
-      assert.deepEqual(args, [objects[0]]);
-    });
-
-    QUnit.test('`_.' + methodName + '` should work with "_.property" shorthands', function(assert) {
-      assert.expect(2);
-
-      var expected = isSorted ? [{ 'a': 1 }, { 'a': 2 }, { 'a': 3 }] : objects.slice(0, 3),
-          actual = func(objects, 'a');
-
-      assert.deepEqual(actual, expected);
-
-      var arrays = [[2], [3], [1], [2], [3], [1]];
-      if (isSorted) {
-        arrays = lodashStable.sortBy(arrays, 0);
-      }
-      expected = isSorted ? [[1], [2], [3]] : arrays.slice(0, 3);
-      actual = func(arrays, 0);
-
-      assert.deepEqual(actual, expected);
-    });
-
-    lodashStable.each({
-      'an array': [0, 'a'],
-      'an object': { '0': 'a' },
-      'a number': 0,
-      'a string': '0'
-    },
-    function(iteratee, key) {
-      QUnit.test('`_.' + methodName + '` should work with ' + key + ' for `iteratee`', function(assert) {
-        assert.expect(1);
-
-        var actual = func([['a'], ['a'], ['b']], iteratee);
-        assert.deepEqual(actual, [['a'], ['b']]);
-      });
-    });
-  });
-
-  /*--------------------------------------------------------------------------*/
-
-  QUnit.module('lodash.uniqWith');
-
-  (function() {
-    var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 },  { 'x': 1, 'y': 2 }];
-
-    QUnit.test('should work with a `comparator` argument', function(assert) {
-      assert.expect(1);
-
-      var actual = _.uniqWith(objects, lodashStable.isEqual);
-      assert.deepEqual(actual, [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]);
-    });
-  }());
-
-  /*--------------------------------------------------------------------------*/
-
   QUnit.module('lodash.uniqueId');
 
   (function() {
 
   /*--------------------------------------------------------------------------*/
 
+  QUnit.module('update methods');
+
+  lodashStable.each(['update', 'updateWith'], function(methodName) {
+    var func = _[methodName],
+        oldValue = 1,
+        value = 2;
+
+    QUnit.test('`_.' + methodName + '` should invoke `updater` with the value on `path` of `object`', function(assert) {
+      assert.expect(4);
+
+      var object = { 'a': [{ 'b': { 'c': oldValue } }] },
+          expected = oldValue + 1;
+
+      lodashStable.each(['a[0].b.c', ['a', '0', 'b', 'c']], function(path) {
+        func(object, path, function(n) {
+          assert.strictEqual(n, oldValue);
+          return ++n;
+        });
+
+        assert.strictEqual(object.a[0].b.c, expected);
+        object.a[0].b.c = oldValue;
+      });
+    });
+  });
+
+  /*--------------------------------------------------------------------------*/
+
+  QUnit.module('lodash.upperCase');
+
+  (function() {
+    QUnit.test('should uppercase as space-separated words', function(assert) {
+      assert.expect(3);
+
+      assert.strictEqual(_.upperCase('--foo-bar'), 'FOO BAR');
+      assert.strictEqual(_.upperCase('fooBar'), 'FOO BAR');
+      assert.strictEqual(_.upperCase('__foo_bar__'), 'FOO BAR');
+    });
+  }());
+
+  /*--------------------------------------------------------------------------*/
+
+  QUnit.module('lodash.upperFirst');
+
+  (function() {
+    QUnit.test('should uppercase only the first character', function(assert) {
+      assert.expect(3);
+
+      assert.strictEqual(_.upperFirst('fred'), 'Fred');
+      assert.strictEqual(_.upperFirst('Fred'), 'Fred');
+      assert.strictEqual(_.upperFirst('FRED'), 'FRED');
+    });
+  }());
+
+  /*--------------------------------------------------------------------------*/
+
   QUnit.module('values methods');
 
   lodashStable.each(['values', 'valuesIn'], function(methodName) {
   QUnit.module('lodash.xorWith');
 
   (function() {
-    var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
-
     QUnit.test('should work with a `comparator` argument', function(assert) {
       assert.expect(1);
 
-      var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }],
+      var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }],
+          others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }],
           actual = _.xorWith(objects, others, lodashStable.isEqual);
 
-      assert.deepEqual(actual, [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]);
+      assert.deepEqual(actual, [objects[1], others[0]]);
     });
   }());
 
     var acceptFalsey = lodashStable.difference(allMethods, rejectFalsey);
 
     QUnit.test('should accept falsey arguments', function(assert) {
-      assert.expect(297);
+      assert.expect(300);
 
       var emptyArrays = lodashStable.map(falsey, alwaysEmptyArray);
 
index c1b4df2..7300c21 100644 (file)
       // Only excuse in Sauce Labs.
       if (!ui.isSauceLabs) {
         delete QUnit.config.excused.Functions['throttle repeatedly with results'];
-        delete QUnit.config.excused.Functions['more throttle does not trigger leading call when leading is set to false'];
         delete QUnit.config.excused.Functions['throttle does not trigger trailing call when trailing is set to false'];
         delete QUnit.config.excused.Utility.now;
       }
index 0a74df0..9ecd56c 100644 (file)
@@ -5,15 +5,16 @@
     function jsTreeCtrl() {
         /*jshint validthis:true */
         var nodeSerialId = 1;
+        var vm = this;
 
-        this.nodesFingerprint = function (e) {
+        vm.nodesFingerprint = function (e) {
             if (!e.__uiNodeId) {
                 e.__uiNodeId = nodeSerialId++;
             }
             return '' + e.__uiNodeId + (e.id || '') + (e.text || '') + (e.type || '');
         };
 
-        this.changeWatcher = function (arraySource, tokenFn) {
+        vm.changeWatcher = function (arraySource, tokenFn) {
             var self;
             var getTokens = function () {
                 var result = [], token, el;
@@ -95,6 +96,7 @@
             restrict: 'A',
             scope: {
                 treeData: '=ngModel',
+                treeEventsObj: '=?treeEventsObj',
                 shouldApply : '&'
             },
             controller: 'jsTreeCtrl',
                                 s.tree.on(evt, s.$parent.$eval(cb));
                             }
                         }
+                    } else if (angular.isObject(s.treeEventsObj)) {
+                        angular.forEach(s.treeEventsObj, function(cb, name) {
+                            var evt = name + '.jstree';
+                            s.tree.on(evt, cb);
+                        });
                     }
                 }
 
                     if (attrs.tree) {
                         if (attrs.tree.indexOf('.') !== -1) {
                             var split = attrs.tree.split('.');
-                            scope.tree = scope.$parent[split[0]][split[1]] = elm;
+                            var tree = split.pop();
+                            var context = scope.$parent;
+                            for (var i = 0; i < split.length; i++) {
+                                context = context[split[i]];
+                            }
+                            scope.tree = context[tree] = elm;
                         }
                         else {
                             scope.tree = scope.$parent[attrs.tree] = elm;
index 4d55122..951254a 100644 (file)
@@ -1 +1 @@
-!function(){"use strict";function a(){this.defaults={scrollButtons:{enable:!1},axis:"yx"},$.mCustomScrollbar.defaults.scrollButtons=this.defaults.scrollButtons,$.mCustomScrollbar.defaults.axis=this.defaults.axis,this.$get=function(){return{defaults:this.defaults}}}function b(a){return{scope:{ngScrollbarsConfig:"&"},link:function(b,c){var d=a.defaults,e=$.mCustomScrollbar.defaults,f=b.ngScrollbarsConfig();f||(f={});for(var g in d)if(d.hasOwnProperty(g))switch(g){case"scrollButtons":f.hasOwnProperty(g)||(e.scrollButtons=d[g]);break;case"axis":f.hasOwnProperty(g)||(e.axis=d[g]);break;default:f.hasOwnProperty(g)||(f[g]=d[g])}c.mCustomScrollbar(f)}}}angular.module("ngScrollbars",[]).provider("ScrollBars",a).directive("ngScrollbars",b),a.$inject=[],b.$inject=["ScrollBars"]}();
\ No newline at end of file
+!function(){"use strict";function a(){this.defaults={scrollButtons:{enable:!0},axis:"yx"},$.mCustomScrollbar.defaults.scrollButtons=this.defaults.scrollButtons,$.mCustomScrollbar.defaults.axis=this.defaults.axis,this.$get=function(){return{defaults:this.defaults}}}function b(a,b,c,d){c.mCustomScrollbar("destroy");var e={};d.ngScrollbarsConfig&&(e=d.ngScrollbarsConfig);for(var f in a)if(a.hasOwnProperty(f))switch(f){case"scrollButtons":e.hasOwnProperty(f)||(b.scrollButtons=a[f]);break;case"axis":e.hasOwnProperty(f)||(b.axis=a[f]);break;default:e.hasOwnProperty(f)||(e[f]=a[f])}c.mCustomScrollbar(e)}function c(a){return{scope:{ngScrollbarsConfig:"=?",ngScrollbarsUpdate:"=?",element:"=?"},link:function(c,d,e){c.elem=d;var f=a.defaults,g=$.mCustomScrollbar.defaults;c.ngScrollbarsUpdate=function(){d.mCustomScrollbar.apply(d,arguments)},c.$watch("ngScrollbarsConfig",function(a,e){void 0!==a&&b(f,g,d,c)}),b(f,g,d,c)}}}angular.module("ngScrollbars",[]).provider("ScrollBars",a).directive("ngScrollbars",c),a.$inject=[],c.$inject=["ScrollBars"]}();
\ No newline at end of file
index 69e8bc7..9b0e044 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * Select2 4.0.1
+ * Select2 4.0.2
  * https://select2.github.io
  *
  * Released under the MIT license
@@ -1142,11 +1142,7 @@ S2.define('select2/results',[
       this.$results.on('mousewheel', function (e) {
         var top = self.$results.scrollTop();
 
-        var bottom = (
-          self.$results.get(0).scrollHeight -
-          self.$results.scrollTop() +
-          e.deltaY
-        );
+        var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;
 
         var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;
         var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();
@@ -3332,7 +3328,7 @@ S2.define('select2/data/array',[
         var $existingOption = $existing.filter(onlyItem(item));
 
         var existingData = this.item($existingOption);
-        var newData = $.extend(true, {}, existingData, item);
+        var newData = $.extend(true, {}, item, existingData);
 
         var $newOption = this.option(newData);
 
@@ -3440,7 +3436,9 @@ S2.define('select2/data/ajax',[
 
         callback(results);
       }, function () {
-        // TODO: Handle AJAX errors
+        self.trigger('results:message', {
+          message: 'errorLoading'
+        });
       });
 
       self._request = $request;
@@ -3472,6 +3470,12 @@ S2.define('select2/data/tags',[
       this.createTag = createTag;
     }
 
+    var insertTag = options.get('insertTag');
+
+    if (insertTag !== undefined) {
+        this.insertTag = insertTag;
+    }
+
     decorated.call(this, $element, options);
 
     if ($.isArray(tags)) {
@@ -4171,7 +4175,6 @@ S2.define('select2/dropdown/attachBody',[
 
     var newDirection = null;
 
-    var position = this.$container.position();
     var offset = this.$container.offset();
 
     offset.bottom = offset.top + this.$container.outerHeight(false);
@@ -4200,14 +4203,20 @@ S2.define('select2/dropdown/attachBody',[
       top: container.bottom
     };
 
-    // Fix positioning with static parents
-    if (this.$dropdownParent[0].style.position !== 'static') {
-      var parentOffset = this.$dropdownParent.offset();
+    // Determine what the parent element is to use for calciulating the offset
+    var $offsetParent = this.$dropdownParent;
 
-      css.top -= parentOffset.top;
-      css.left -= parentOffset.left;
+    // For statically positoned elements, we need to get the element
+    // that is determining the offset
+    if ($offsetParent.css('position') === 'static') {
+      $offsetParent = $offsetParent.offsetParent();
     }
 
+    var parentOffset = $offsetParent.offset();
+
+    css.top -= parentOffset.top;
+    css.left -= parentOffset.left;
+
     if (!isCurrentlyAbove && !isCurrentlyBelow) {
       newDirection = 'below';
     }
@@ -4474,7 +4483,7 @@ S2.define('select2/defaults',[
   }
 
   Defaults.prototype.apply = function (options) {
-    options = $.extend({}, this.defaults, options);
+    options = $.extend(true, {}, this.defaults, options);
 
     if (options.dataAdapter == null) {
       if (options.ajax != null) {
@@ -5038,6 +5047,7 @@ S2.define('select2/core',[
       id = Utils.generateChars(4);
     }
 
+    id = id.replace(/(:|\.|\[|\]|,)/g, '');
     id = 'select2-' + id;
 
     return id;
index 4cf54e2..e26ad23 100644 (file)
@@ -1,11 +1,7 @@
 @font-face {
   font-family: 'simple-line-icons';
-  src:  url('../fonts/Simple-Line-Icons.eot?v=2.2.2');
-  src:  url('../fonts/Simple-Line-Icons.eot?#iefix&v=2.2.2') format('embedded-opentype'),
-        url('../fonts/Simple-Line-Icons.ttf?v=2.2.2') format('truetype'),
-        url('../fonts/Simple-Line-Icons.woff2?v=2.2.2') format('woff2'),
-        url('../fonts/Simple-Line-Icons.woff?v=2.2.2') format('woff'),
-        url('../fonts/Simple-Line-Icons.svg?v=2.2.2#simple-line-icons') format('svg');
+  src: url('../fonts/Simple-Line-Icons.eot?v=2.2.2');
+  src: url('../fonts/Simple-Line-Icons.eot?#iefix&v=2.2.2') format('embedded-opentype'), url('../fonts/Simple-Line-Icons.ttf?v=2.2.2') format('truetype'), url('../fonts/Simple-Line-Icons.woff2?v=2.2.2') format('woff2'), url('../fonts/Simple-Line-Icons.woff?v=2.2.2') format('woff'), url('../fonts/Simple-Line-Icons.svg?v=2.2.2#simple-line-icons') format('svg');
   font-weight: normal;
   font-style: normal;
 }
@@ -94,7 +90,7 @@
 .icon-film,
 .icon-feed,
 .icon-drop,
-.icon-drawar,
+.icon-drawer,
 .icon-docs,
 .icon-doc,
 .icon-diamond,
 .icon-reload,
 .icon-settings,
 .icon-star,
-.icon-symble-female,
+.icon-symbol-female,
 .icon-symbol-male,
 .icon-target,
 .icon-credit-card,
 .icon-drop:before {
   content: "\e03e";
 }
-.icon-drawar:before {
+.icon-drawer:before {
   content: "\e03f";
 }
 .icon-docs:before {
 .icon-star:before {
   content: "\e09b";
 }
-.icon-symble-female:before {
+.icon-symbol-female:before {
   content: "\e09c";
 }
 .icon-symbol-male:before {
index 1fe21a4..66a7869 100644 (file)
   &film,
   &feed,
   &drop,
-  &drawar,
+  &drawer,
   &docs,
   &doc,
   &diamond,
   &reload,
   &settings,
   &star,
-  &symble-female,
+  &symbol-female,
   &symbol-male,
   &target,
   &credit-card,
   content: "\e03e";
 }
 
-.@{simple-line-icon-prefix}drawar:before {
+.@{simple-line-icon-prefix}drawer:before {
   content: "\e03f";
 }
 
   content: "\e09b";
 }
 
-.@{simple-line-icon-prefix}symble-female:before {
+.@{simple-line-icon-prefix}symbol-female:before {
   content: "\e09c";
 }
 
index 56a6a03..e8bc9aa 100644 (file)
@@ -100,7 +100,7 @@ $simple-line-icon-prefix: "icon-" !default;
   &film,
   &feed,
   &drop,
-  &drawar,
+  &drawer,
   &docs,
   &doc,
   &diamond,
@@ -179,7 +179,7 @@ $simple-line-icon-prefix: "icon-" !default;
   &reload,
   &settings,
   &star,
-  &symble-female,
+  &symbol-female,
   &symbol-male,
   &target,
   &credit-card,
@@ -540,7 +540,7 @@ $simple-line-icon-prefix: "icon-" !default;
   content: "\e03e";
 }
 
-.#{$simple-line-icon-prefix}drawar:before {
+.#{$simple-line-icon-prefix}drawer:before {
   content: "\e03f";
 }
 
@@ -856,7 +856,7 @@ $simple-line-icon-prefix: "icon-" !default;
   content: "\e09b";
 }
 
-.#{$simple-line-icon-prefix}symble-female:before {
+.#{$simple-line-icon-prefix}symbol-female:before {
   content: "\e09c";
 }
 
index 546067f..8e9feb2 100644 (file)
@@ -7,7 +7,7 @@
  * Code distributed by Google as part of the polymer project is also
  * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
  */
-// @version 0.7.20
+// @version 0.7.21
 (function() {
   window.WebComponents = window.WebComponents || {
     flags: {}
@@ -3420,10 +3420,7 @@ if (WebComponents.flags.shadow) {
         var unwrappedActiveElement = unwrap(this).ownerDocument.activeElement;
         if (!unwrappedActiveElement || !unwrappedActiveElement.nodeType) return null;
         var activeElement = wrap(unwrappedActiveElement);
-        if (activeElement === this.host) {
-          return null;
-        }
-        while (!this.contains(activeElement) && !this.host.contains(activeElement)) {
+        while (!this.contains(activeElement)) {
           while (activeElement.parentNode) {
             activeElement = activeElement.parentNode;
           }
@@ -6368,7 +6365,7 @@ window.HTMLImports.addModule(function(scope) {
       if (doc && this._mayParse.indexOf(doc) < 0) {
         this._mayParse.push(doc);
         var nodes = doc.querySelectorAll(this.parseSelectorsForNode(doc));
-        for (var i = 0, l = nodes.length, p = 0, n; i < l && (n = nodes[i]); i++) {
+        for (var i = 0, l = nodes.length, n; i < l && (n = nodes[i]); i++) {
           if (!this.isParsed(n)) {
             if (this.hasResource(n)) {
               return nodeIsImport(n) ? this.nextToParseInDoc(n.__doc, n) : n;
index bdb46d0..df16811 100644 (file)
@@ -12,7 +12,7 @@
     <meta name="description" content="">
     <meta name="viewport" content="width=device-width">
     <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
-    <link rel="stylesheet" href="app/fc48ba87.vendor.css">
+    <link rel="stylesheet" href="app/75872991.vendor.css">
     <link rel="stylesheet" href="app/e9688178.app.css">
 
     <!-- BEGIN DYMANICLY LOADED CSS FILES (all plugin and page related styles must be loaded between GLOBAL and THEME css files ) -->
@@ -59,9 +59,9 @@
     <script src="bower_components/es5-shim/es5-shim.js"></script>
     <script src="bower_components/json3/lib/json3.min.js"></script>
     <![endif]-->
-    <script src="app/47e08aab.vendor.js"></script>
+    <script src="app/41989707.vendor.js"></script>
 
-    <script src="app/a62711dc.app.js"></script>
+    <script src="app/be15a8f1.app.js"></script>
 
     <!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->
     <!-- BEGIN CORE PLUGINS -->
index 9bb1900..ab2d7d0 100644 (file)
@@ -1,5 +1,11 @@
 # xCALLY MOTION Changelog
 
+- * db7e0ed - 2016-03-16: Added queueStatus filter for voice realtime 
+- * c7cb7eb - 2016-03-16: add complete and abandon fields for report chat 
+- * c26b760 - 2016-03-16: Added queue and queuestatus for voice realtime 
+- * 2ec954b - 2016-03-16: History service update 
+- * efaf89f - 2016-03-16: Updated history service 
+- * c2bff74 - 2016-03-16: chanspy include 
 - * b7b498e - 2016-03-15: post-mege.sh 
 - * e83121e - 2016-03-15: test commit 1 
 - * 0035cf9 - 2016-03-15: add scripts in gruntfile 
 - * b11a1cb - 2016-03-09: add save of proxy and remote address (chat visitor) 
 - * f3491b2 - 2016-03-09: Fix outbound custom app setup 
 - * a284ad1 - 2016-03-09: Fixed set variable in callysquare for math and database 
-- * 6a83138 - 2016-03-09: jscripty directive and template update for input type checkbox 
-- * c3b6839 - 2016-03-09: add language text 
-- * 101d497 - 2016-03-09: change ip from request (snippet) 
-- * d44c2db - 2016-03-09: Deleted jscripty input, questions and sessions route 
-- * 64d0d16 - 2016-03-09: jscripty questions summary and detail api update 
-- * a160bce - 2016-03-09: add default value in chat action 
-- * 7b8fc98 - 2016-03-09: jscripty report section update 
-- * 9450e7f - 2016-03-09: I modified jscripty directive so that if an outgoing edge has a value separated by a comma, the value is split by comma and edges with the values are inserted in the edges array. 
-- * 02c286d - 2016-03-09: hide column context in queue list 
-- * 8fe5ceb - 2016-03-09: client app main gridOptions 
-- * 8277cc2 - 2016-03-09: server side models mail_application, mail_room, telephone 
-- * 41ca05b - 2016-03-09: I added validation error if block has an empty label 
-- * 24ea297 - 2016-03-09: server side api 
-- * 0aa20be - 2016-03-09: client app channel mail inbox filter role based 
-- * d1c98cf - 2016-03-09: add rating configuration in wizard 
-- * b173fd1 - 2016-03-09: add rating configuration in website view 
-- * 65834b5 - 2016-03-08: add rating (snippet and only after close by client) 
 
index 1090bff..785db3f 100644 (file)
@@ -1,113 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/actions              ->  index
- * POST    /api/actions              ->  create
- * GET     /api/actions/:id          ->  show
- * PUT     /api/actions/:id          ->  update
- * DELETE  /api/actions/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-
-var Action = require('../../models').Action;
-var sequelize = require('../../models').sequelize;
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of Actions
-exports.index = function(req, res) {
-  Action.findAll()
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single Action from the DB
-exports.show = function(req, res) {
-  // Action.findById(req.params.id)
-  //   .then(handleEntityNotFound(res))
-  //   .then(responseWithResult(res))
-  //   .catch(handleError(res));
-}
-
-// Creates a new Action in the DB
-exports.create = function(req, res, next) {
-  req.body.UserId = req.user.id;
-  return sequelize.transaction().then(function(t) {
-    return Action
-      .create(_.merge(req.body, req.params), {
-        transaction: t,
-        body: req.body
-      }).then(function(action) {
-        t.commit();
-        return res.status(201).send(action);
-      }).catch(function(err) {
-        t.rollback();
-        console.log(err);
-        return handleError(res, err);
-      });
-  });
-}
-
-// Updates an existing Action in the DB
-exports.update = function(req, res) {
-  // if (req.body.id) {
-  //   delete req.body.id;
-  // }
-  // Action.findById(req.params.id)
-  //   .then(handleEntityNotFound(res))
-  //   .then(saveUpdates(req.body))
-  //   .then(responseWithResult(res))
-  //   .catch(handleError(res));
-}
-
-// Deletes a Action from the DB
-exports.destroy = function(req, res) {
-  // Action.findById(req.params.id)
-  //   .then(handleEntityNotFound(res))
-  //   .then(removeEntity(res))
-  //   .catch(handleError(res));
-}
+var _0xd796=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x41\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x55\x73\x65\x72\x49\x64","\x62\x6F\x64\x79","\x69\x64","\x75\x73\x65\x72","\x6C\x6F\x67","\x70\x61\x72\x61\x6D\x73","\x6D\x65\x72\x67\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65"];_0xd796[0];var _=require(_0xd796[1]);var Action=require(_0xd796[3])[_0xd796[2]];var sequelize=require(_0xd796[3])[_0xd796[4]];function handleError(_0x5b5bx5,_0x5b5bx6){return _0x5b5bx5[_0xd796[6]](500)[_0xd796[5]](_0x5b5bx6)}function responseWithResult(_0x5b5bx5,_0x5b5bx8){_0x5b5bx8=_0x5b5bx8||200;return function(_0x5b5bx9){if(_0x5b5bx9){_0x5b5bx5[_0xd796[6]](_0x5b5bx8)[_0xd796[7]](_0x5b5bx9)}}}function handleEntityNotFound(_0x5b5bx5){return function(_0x5b5bx9){if(!_0x5b5bx9){_0x5b5bx5[_0xd796[6]](404)[_0xd796[8]]();return null};return _0x5b5bx9}}function saveUpdates(_0x5b5bxc){return function(_0x5b5bx9){return _0x5b5bx9[_0xd796[10]](_0x5b5bxc)[_0xd796[9]](function(_0x5b5bxd){return _0x5b5bxd})}}function removeEntity(_0x5b5bx5){return function(_0x5b5bx9){if(_0x5b5bx9){return _0x5b5bx9[_0xd796[11]]()[_0xd796[9]](function(){_0x5b5bx5[_0xd796[6]](204)[_0xd796[8]]()})}}}exports[_0xd796[12]]=function(_0x5b5bxf,_0x5b5bx5){Action[_0xd796[14]]()[_0xd796[9]](responseWithResult(_0x5b5bx5))[_0xd796[13]](handleError(_0x5b5bx5))};exports[_0xd796[15]]=function(_0x5b5bxf,_0x5b5bx5){};exports[_0xd796[16]]=function(_0x5b5bxf,_0x5b5bx5,_0x5b5bx10){_0x5b5bxf[_0xd796[18]][_0xd796[17]]=_0x5b5bxf[_0xd796[20]][_0xd796[19]];return sequelize[_0xd796[24]](function(_0x5b5bx12){return Action[_0xd796[16]](_[_0xd796[23]](_0x5b5bxf[_0xd796[18]],_0x5b5bxf[_0xd796[22]]),{transaction:_0x5b5bx12,body:_0x5b5bxf[_0xd796[18]]})})[_0xd796[9]](function(_0x5b5bx11){return _0x5b5bx5[_0xd796[6]](201)[_0xd796[5]](_0x5b5bx11)})[_0xd796[13]](function(_0x5b5bx6){console[_0xd796[21]](_0x5b5bx6);return handleError(_0x5b5bx5,_0x5b5bx6)})};exports[_0xd796[25]]=function(_0x5b5bxf,_0x5b5bx5){};exports[_0xd796[11]]=function(_0x5b5bxf,_0x5b5bx5){}
\ No newline at end of file
index 36c2faa..9deb424 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Action = require('../../models').Action;
-
-exports.register = function (socket) {
-  Action.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  Action.afterUpdate(function (doc) {
-    onSave(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('Action:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('Action:remove', doc);
-}
+var _0xe7aa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x41\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x41\x63\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x41\x63\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0xe7aa[0];var Action=require(_0xe7aa[2])[_0xe7aa[1]];exports[_0xe7aa[3]]=function(_0xa701x2){Action[_0xe7aa[4]](function(_0xa701x3){onSave(_0xa701x2,_0xa701x3)});Action[_0xe7aa[5]](function(_0xa701x3){onSave(_0xa701x2,_0xa701x3)})};function onSave(_0xa701x2,_0xa701x3,_0xa701x5){_0xa701x2[_0xe7aa[7]](_0xe7aa[6],_0xa701x3)}function onRemove(_0xa701x2,_0xa701x3,_0xa701x5){_0xa701x2[_0xe7aa[7]](_0xe7aa[8],_0xa701x3)}
\ No newline at end of file
index 8a3909e..f05c5a7 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-
-var auth = require('../../auth/auth.service');
-var controller = require('./action.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-// router.get('/:id', auth.isAuthenticated(), controller.show);
-// router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/:name', auth.isAuthenticated(), controller.create);
-// router.put('/:id', auth.isAuthenticated(), controller.update);
-// router.patch('/:id', auth.isAuthenticated(), controller.update);
-// router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0xa1db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x6E\x61\x6D\x65","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xa1db[0];var express=require(_0xa1db[1]);var auth=require(_0xa1db[2]);var controller=require(_0xa1db[3]);var router=express.Router();router[_0xa1db[7]](_0xa1db[4],auth[_0xa1db[5]](),controller[_0xa1db[6]]);router[_0xa1db[10]](_0xa1db[8],auth[_0xa1db[5]](),controller[_0xa1db[9]]);module[_0xa1db[11]]=router
\ No newline at end of file
index e5aa7d5..952654a 100644 (file)
@@ -1,152 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var sequelize = require('../../models').sequelize;
-
-var Util = require('../../config/util');
-
-var Agent = require('../../models').User;
-var Team = require('../../models').Team;
-var MailRoom = require('../../models').MailRoom;
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return Agent
-    .scope('agent', {
-        method: ['checkPauseStatus', req.query]
-      }, {
-        method: ['checkOnlineStatus', req.query]
-      }, {
-        method: ['checkSipStatus', req.query]
-      },
-      'queues')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      return res.status(200).send(result);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Get a single agent
-exports.show = function(req, res) {
-  return Agent
-    .scope('agent')
-    .findById(req.params.id)
-    .then(function(agent) {
-      if (!agent) {
-        return res.sendStatus(404);
-      }
-      return res.send(agent);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new agent in the DB.
-exports.create = function(req, res) {
-  var _agent;
-
-  return Agent
-    .scope('agent')
-    .create(req.body)
-    .then(function(agent) {
-      _agent = agent;
-
-      return Team
-        .findOne({
-          where: {
-            defaultEntry: true
-          }
-        });
-    })
-    .then(function(team) {
-      return team
-        .addUser(_agent.id);
-    })
-    .then(function() {
-      return res.status(201).send(_agent);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      return Util.errorManager.handleUniqueConstraintError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing agent in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return Agent
-    .findById(req.params.id)
-    .then(function(agent) {
-      if (!agent) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(agent, req.body);
-      return updated
-        .save();
-    })
-    .then(function(agent) {
-      return res.status(200).send(agent);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      return Util.errorManager.handleUniqueConstraintError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a agent from the DB.
-exports.destroy = function(req, res) {
-  var _agent;
-
-  return Agent
-    .findById(req.params.id)
-    .then(function(agent) {
-      _agent = agent;
-      if (!agent) {
-        return res.sendStatus(404);
-      }
-      return agent
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(sequelize.ForeignKeyConstraintError, function(err) {
-      return Util.errorManager.handleForeignKeyConstraintError(res, 'agent', _agent.name, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
-  return Agent
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xfbb2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x55\x73\x65\x72","\x54\x65\x61\x6D","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x69\x6E\x64\x65\x78","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x61\x67\x65\x6E\x74","\x63\x68\x65\x63\x6B\x50\x61\x75\x73\x65\x53\x74\x61\x74\x75\x73","\x63\x68\x65\x63\x6B\x51\x75\x65\x75\x65\x53\x74\x61\x74\x75\x73","\x63\x68\x65\x63\x6B\x4F\x6E\x6C\x69\x6E\x65\x53\x74\x61\x74\x75\x73","\x63\x68\x65\x63\x6B\x53\x69\x70\x53\x74\x61\x74\x75\x73","\x71\x75\x65\x75\x65\x73","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x61\x64\x64\x55\x73\x65\x72","\x66\x69\x6E\x64\x4F\x6E\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x6E\x61\x6D\x65","\x68\x61\x6E\x64\x6C\x65\x46\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0xfbb2[0];var _=require(_0xfbb2[1]);var sequelize=require(_0xfbb2[3])[_0xfbb2[2]];var Util=require(_0xfbb2[4]);var Agent=require(_0xfbb2[3])[_0xfbb2[5]];var Team=require(_0xfbb2[3])[_0xfbb2[6]];var MailRoom=require(_0xfbb2[3])[_0xfbb2[7]];exports[_0xfbb2[8]]=function(_0x8819x7,_0x8819x8,_0x8819x9){return Agent[_0xfbb2[23]](_0xfbb2[17],{method:[_0xfbb2[18],_0x8819x7[_0xfbb2[14]]]},{method:[_0xfbb2[19],_0x8819x7[_0xfbb2[14]]]},{method:[_0xfbb2[20],_0x8819x7[_0xfbb2[14]]]},{method:[_0xfbb2[21],_0x8819x7[_0xfbb2[14]]]},_0xfbb2[22])[_0xfbb2[16]](Util[_0xfbb2[15]](_0x8819x7[_0xfbb2[14]]))[_0xfbb2[13]](function(_0x8819xb){return _0x8819x8[_0xfbb2[12]](200)[_0xfbb2[11]](_0x8819xb)})[_0xfbb2[10]](function(_0x8819xa){console[_0xfbb2[9]](_0x8819xa);return handleError(_0x8819x8,_0x8819xa)})};exports[_0xfbb2[24]]=function(_0x8819x7,_0x8819x8){return Agent[_0xfbb2[23]](_0xfbb2[17])[_0xfbb2[28]](_0x8819x7[_0xfbb2[27]][_0xfbb2[26]])[_0xfbb2[13]](function(_0x8819xc){if(!_0x8819xc){return _0x8819x8[_0xfbb2[25]](404)};return _0x8819x8[_0xfbb2[11]](_0x8819xc)})[_0xfbb2[10]](function(_0x8819xa){return handleError(_0x8819x8,_0x8819xa)})};exports[_0xfbb2[29]]=function(_0x8819x7,_0x8819x8){var _0x8819xd;return Agent[_0xfbb2[23]](_0xfbb2[17])[_0xfbb2[29]](_0x8819x7[_0xfbb2[34]])[_0xfbb2[13]](function(_0x8819xc){_0x8819xd=_0x8819xc;return Team[_0xfbb2[33]]({where:{defaultEntry:true}})})[_0xfbb2[13]](function(_0x8819xe){return _0x8819xe[_0xfbb2[32]](_0x8819xd[_0xfbb2[26]])})[_0xfbb2[13]](function(){return _0x8819x8[_0xfbb2[12]](201)[_0xfbb2[11]](_0x8819xd)})[_0xfbb2[10]](sequelize.UniqueConstraintError,function(_0x8819xa){return Util[_0xfbb2[31]][_0xfbb2[30]](_0x8819x8,_0x8819xa)})[_0xfbb2[10]](function(_0x8819xa){return handleError(_0x8819x8,_0x8819xa)})};exports[_0xfbb2[35]]=function(_0x8819x7,_0x8819x8){if(_0x8819x7[_0xfbb2[34]][_0xfbb2[26]]){delete _0x8819x7[_0xfbb2[34]][_0xfbb2[26]]};return Agent[_0xfbb2[28]](_0x8819x7[_0xfbb2[27]][_0xfbb2[26]])[_0xfbb2[13]](function(_0x8819xc){if(!_0x8819xc){return _0x8819x8[_0xfbb2[25]](404)};var _0x8819xf=_[_0xfbb2[36]](_0x8819xc,_0x8819x7[_0xfbb2[34]]);return _0x8819xf[_0xfbb2[37]]()})[_0xfbb2[13]](function(_0x8819xc){return _0x8819x8[_0xfbb2[12]](200)[_0xfbb2[11]](_0x8819xc)})[_0xfbb2[10]](sequelize.UniqueConstraintError,function(_0x8819xa){return Util[_0xfbb2[31]][_0xfbb2[30]](_0x8819x8,_0x8819xa)})[_0xfbb2[10]](function(_0x8819xa){return handleError(_0x8819x8,_0x8819xa)})};exports[_0xfbb2[38]]=function(_0x8819x7,_0x8819x8){var _0x8819xd;return Agent[_0xfbb2[28]](_0x8819x7[_0xfbb2[27]][_0xfbb2[26]])[_0xfbb2[13]](function(_0x8819xc){_0x8819xd=_0x8819xc;if(!_0x8819xc){return _0x8819x8[_0xfbb2[25]](404)};return _0x8819xc[_0xfbb2[38]]()})[_0xfbb2[13]](function(){return _0x8819x8[_0xfbb2[25]](204)})[_0xfbb2[10]](sequelize.ForeignKeyConstraintError,function(_0x8819xa){return Util[_0xfbb2[31]][_0xfbb2[40]](_0x8819x8,_0xfbb2[17],_0x8819xd[_0xfbb2[39]],_0x8819xa)})[_0xfbb2[10]](function(_0x8819xa){return handleError(_0x8819x8,_0x8819xa)})};exports[_0xfbb2[41]]=function(_0x8819x7,_0x8819x8){return Agent[_0xfbb2[38]]({where:{id:_0x8819x7[_0xfbb2[14]][_0xfbb2[42]]},individualHooks:true})[_0xfbb2[13]](function(){return _0x8819x8[_0xfbb2[25]](204)})[_0xfbb2[10]](function(_0x8819xa){return handleError(_0x8819x8,_0x8819xa)})};function handleError(_0x8819x8,_0x8819xa){return _0x8819x8[_0xfbb2[12]](500)[_0xfbb2[11]](_0x8819xa)}
\ No newline at end of file
index 5535cb7..2bd351a 100644 (file)
@@ -1,33 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var agent = require('../../models').User;
-
-exports.register = function(socket) {
-  agent.afterCreate(function(doc) {
-    if (doc.role === 'agent') {
-      onSave(socket, doc);
-    }
-  });
-  agent.afterUpdate(function(doc) {
-    if (doc.role === 'agent') {
-      onSave(socket, doc);
-    }
-  });
-  agent.afterDestroy(function(doc) {
-    if (doc.role === 'agent') {
-      onRemove(socket, doc);
-    }
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('agent:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('agent:remove', doc);
-}
+var _0x3f09=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x67\x65\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x61\x67\x65\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3f09[0];var agent=require(_0x3f09[2])[_0x3f09[1]];exports[_0x3f09[3]]=function(_0x5e53x2){agent[_0x3f09[6]](function(_0x5e53x3){if(_0x5e53x3[_0x3f09[4]]===_0x3f09[5]){onSave(_0x5e53x2,_0x5e53x3)}});agent[_0x3f09[7]](function(_0x5e53x3){if(_0x5e53x3[_0x3f09[4]]===_0x3f09[5]){onSave(_0x5e53x2,_0x5e53x3)}});agent[_0x3f09[8]](function(_0x5e53x3){if(_0x5e53x3[_0x3f09[4]]===_0x3f09[5]){onRemove(_0x5e53x2,_0x5e53x3)}})};function onSave(_0x5e53x2,_0x5e53x3,_0x5e53x5){_0x5e53x2[_0x3f09[10]](_0x3f09[9],_0x5e53x3)}function onRemove(_0x5e53x2,_0x5e53x3,_0x5e53x5){_0x5e53x2[_0x3f09[10]](_0x3f09[11],_0x5e53x3)}
\ No newline at end of file
index ebfd805..a322d7c 100644 (file)
@@ -1,17 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./agent.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x3eb2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x61\x67\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x3eb2[0];var express=require(_0x3eb2[1]);var controller=require(_0x3eb2[2]);var auth=require(_0x3eb2[3]);var router=express.Router();router[_0x3eb2[7]](_0x3eb2[4],auth[_0x3eb2[5]](),controller[_0x3eb2[6]]);router[_0x3eb2[7]](_0x3eb2[8],auth[_0x3eb2[5]](),controller[_0x3eb2[9]]);router[_0x3eb2[11]](_0x3eb2[4],auth[_0x3eb2[5]](),controller[_0x3eb2[10]]);router[_0x3eb2[13]](_0x3eb2[8],auth[_0x3eb2[5]](),controller[_0x3eb2[12]]);router[_0x3eb2[14]](_0x3eb2[8],auth[_0x3eb2[5]](),controller[_0x3eb2[12]]);router[_0x3eb2[16]](_0x3eb2[4],auth[_0x3eb2[5]](),controller[_0x3eb2[15]]);router[_0x3eb2[16]](_0x3eb2[8],auth[_0x3eb2[5]](),controller[_0x3eb2[17]]);module[_0x3eb2[18]]=router
\ No newline at end of file
index 2684197..826f367 100644 (file)
@@ -1,37 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Ami = require('../../models').Ami;
-var async = require('async');
-var _ = require('lodash');
-
-var ami = null;
-
-exports.register = function(ami) {
-  this.ami = ami;
-}
-
-exports.action = function(action, cb) {
-  if (this.ami && this.ami.isConnected()) {
-    this.ami.action(action, function(err, res) {
-      if (err) {
-        cb(err);
-      }
-      var data = _.merge(res, action);
-      Ami
-        .create(data)
-        .then(function(ami) {
-          cb(null, ami)
-        })
-        .catch(function(err) {
-          return cb(err);
-        });
-
-    });
-  } else {
-    cb(new Error('Asterisk Manager disconnected..'));
-  }
-}
+var _0x2bbd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x41\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x61\x73\x79\x6E\x63","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x6D\x69","\x61\x63\x74\x69\x6F\x6E","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x41\x73\x74\x65\x72\x69\x73\x6B\x20\x4D\x61\x6E\x61\x67\x65\x72\x20\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x2E\x2E"];_0x2bbd[0];var Ami=require(_0x2bbd[2])[_0x2bbd[1]];var async=require(_0x2bbd[3]);var _=require(_0x2bbd[4]);var ami=null;exports[_0x2bbd[5]]=function(ami){this[_0x2bbd[6]]=ami};exports[_0x2bbd[7]]=function(_0xd11bx5,_0xd11bx6){if(this[_0x2bbd[6]]&&this[_0x2bbd[6]][_0x2bbd[8]]()){this[_0x2bbd[6]][_0x2bbd[7]](_0xd11bx5,function(_0xd11bx7,_0xd11bx8){if(_0xd11bx7){_0xd11bx6(_0xd11bx7)};var _0xd11bx9=_[_0x2bbd[9]](_0xd11bx8,_0xd11bx5);Ami[_0x2bbd[12]](_0xd11bx9)[_0x2bbd[11]](function(ami){_0xd11bx6(null,ami)})[_0x2bbd[10]](function(_0xd11bx7){return _0xd11bx6(_0xd11bx7)})})}else {_0xd11bx6( new Error(_0x2bbd[13]))}}
\ No newline at end of file
index dc409ab..a3984a5 100644 (file)
@@ -1,101 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Ami = require('../../models').Ami;
-
-// Get list of amis
-exports.index = function(req, res) {
-  Ami
-    .findAll()
-    .then(function(amis) {
-      return res.status(200).send(amis);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single ami
-exports.show = function(req, res) {
-  Ami
-    .findById(req.params.id)
-    .then(function(ami) {
-      if (!ami) {
-        return res.sendStatus(404);
-      }
-      return res.send(ami);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new ami in the DB.
-exports.create = function(req, res) {
-
-  req.body.data = JSON.stringify(req.body);
-  req.body.UserId = req.user.id;
-
-  require('./ami.ami').action(req.body, function(err, result) {
-    if (err) {
-      handleError(res, err);
-    } else {
-      return res.status(201).send(result);
-    }
-  });
-
-};
-
-// Updates an existing ami in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  Ami
-    .findById(req.params.id)
-    .then(function(ami) {
-      if (!ami) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(ami, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(ami);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a ami from the DB.
-exports.destroy = function(req, res) {
-  Ami
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(ami) {
-      if (!ami) {
-        return res.sendStatus(404);
-      }
-      ami.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xd2a0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x41\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x64\x61\x74\x61","\x62\x6F\x64\x79","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x55\x73\x65\x72\x49\x64","\x75\x73\x65\x72","\x61\x63\x74\x69\x6F\x6E","\x2E\x2F\x61\x6D\x69\x2E\x61\x6D\x69","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64"];_0xd2a0[0];var _=require(_0xd2a0[1]);var Ami=require(_0xd2a0[3])[_0xd2a0[2]];exports[_0xd2a0[4]]=function(_0xf8cax3,_0xf8cax4){Ami[_0xd2a0[9]]()[_0xd2a0[8]](function(_0xf8cax6){return _0xf8cax4[_0xd2a0[7]](200)[_0xd2a0[6]](_0xf8cax6)})[_0xd2a0[5]](function(_0xf8cax5){return handleError(_0xf8cax4,_0xf8cax5)})};exports[_0xd2a0[10]]=function(_0xf8cax3,_0xf8cax4){Ami[_0xd2a0[14]](_0xf8cax3[_0xd2a0[13]][_0xd2a0[12]])[_0xd2a0[8]](function(_0xf8cax7){if(!_0xf8cax7){return _0xf8cax4[_0xd2a0[11]](404)};return _0xf8cax4[_0xd2a0[6]](_0xf8cax7)})[_0xd2a0[5]](function(_0xf8cax5){return handleError(_0xf8cax4,_0xf8cax5)})};exports[_0xd2a0[15]]=function(_0xf8cax3,_0xf8cax4){_0xf8cax3[_0xd2a0[17]][_0xd2a0[16]]=JSON[_0xd2a0[18]](_0xf8cax3[_0xd2a0[17]]);_0xf8cax3[_0xd2a0[17]][_0xd2a0[19]]=_0xf8cax3[_0xd2a0[20]][_0xd2a0[12]];require(_0xd2a0[22])[_0xd2a0[21]](_0xf8cax3[_0xd2a0[17]],function(_0xf8cax5,_0xf8cax8){if(_0xf8cax5){handleError(_0xf8cax4,_0xf8cax5)}else {return _0xf8cax4[_0xd2a0[7]](201)[_0xd2a0[6]](_0xf8cax8)}})};exports[_0xd2a0[23]]=function(_0xf8cax3,_0xf8cax4){if(_0xf8cax3[_0xd2a0[17]][_0xd2a0[12]]){delete _0xf8cax3[_0xd2a0[17]][_0xd2a0[12]]};Ami[_0xd2a0[14]](_0xf8cax3[_0xd2a0[13]][_0xd2a0[12]])[_0xd2a0[8]](function(_0xf8cax7){if(!_0xf8cax7){return _0xf8cax4[_0xd2a0[11]](404)};var _0xf8cax9=_[_0xd2a0[24]](_0xf8cax7,_0xf8cax3[_0xd2a0[17]]);_0xf8cax9[_0xd2a0[25]]()[_0xd2a0[8]](function(){return _0xf8cax4[_0xd2a0[7]](200)[_0xd2a0[6]](_0xf8cax7)})[_0xd2a0[5]](function(_0xf8cax5){return handleError(_0xf8cax4,_0xf8cax5)})})[_0xd2a0[5]](function(_0xf8cax5){return handleError(_0xf8cax4,_0xf8cax5)})};exports[_0xd2a0[26]]=function(_0xf8cax3,_0xf8cax4){Ami[_0xd2a0[27]]({where:{id:_0xf8cax3[_0xd2a0[13]][_0xd2a0[12]]}})[_0xd2a0[8]](function(_0xf8cax7){if(!_0xf8cax7){return _0xf8cax4[_0xd2a0[11]](404)};_0xf8cax7[_0xd2a0[26]]()[_0xd2a0[8]](function(){return _0xf8cax4[_0xd2a0[11]](204)})[_0xd2a0[5]](function(_0xf8cax5){return handleError(_0xf8cax4,_0xf8cax5)})})[_0xd2a0[5]](function(_0xf8cax5){return handleError(_0xf8cax4,_0xf8cax5)})};function handleError(_0xf8cax4,_0xf8cax5){return _0xf8cax4[_0xd2a0[7]](500)[_0xd2a0[6]](_0xf8cax5)}
\ No newline at end of file
index 6047274..7298e12 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Ami = require('../../models').Ami;
-
-exports.register = function(socket) {
-  Ami.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  Ami.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('ami:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('ami:remove', doc);
-}
+var _0x380e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x41\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x6D\x69\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x61\x6D\x69\x3A\x72\x65\x6D\x6F\x76\x65"];_0x380e[0];var Ami=require(_0x380e[2])[_0x380e[1]];exports[_0x380e[3]]=function(_0xe23cx2){Ami[_0x380e[4]](function(_0xe23cx3){onSave(_0xe23cx2,_0xe23cx3)});Ami[_0x380e[5]](function(_0xe23cx3){onRemove(_0xe23cx2,_0xe23cx3)})};function onSave(_0xe23cx2,_0xe23cx3,_0xe23cx5){_0xe23cx2[_0x380e[7]](_0x380e[6],_0xe23cx3)}function onRemove(_0xe23cx2,_0xe23cx3,_0xe23cx5){_0xe23cx2[_0x380e[7]](_0x380e[8],_0xe23cx3)}
\ No newline at end of file
index a7502d7..be7c4fa 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/ami', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/ami')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0x53b4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x6D\x69","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x6D\x69","\x67\x65\x74"];_0x53b4[0];var should=require(_0x53b4[1]);var app=require(_0x53b4[2]);var request=require(_0x53b4[3]);describe(_0x53b4[4],function(){it(_0x53b4[5],function(_0x104ex4){request(app)[_0x53b4[13]](_0x53b4[12])[_0x53b4[11]](200)[_0x53b4[11]](_0x53b4[10],/json/)[_0x53b4[9]](function(_0x104ex5,_0x104ex6){if(_0x104ex5){return _0x104ex4(_0x104ex5)};_0x104ex6[_0x53b4[8]][_0x53b4[1]][_0x53b4[7]][_0x53b4[6]](Array);_0x104ex4()})})})
\ No newline at end of file
index b926b75..093dddc 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./ami.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-// router.get('/:id', controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-// router.put('/:id', controller.update);
-// router.patch('/:id', controller.update);
-// router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0xb3c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x61\x6D\x69\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xb3c6[0];var express=require(_0xb3c6[1]);var controller=require(_0xb3c6[2]);var auth=require(_0xb3c6[3]);var router=express.Router();router[_0xb3c6[7]](_0xb3c6[4],auth[_0xb3c6[5]](),controller[_0xb3c6[6]]);router[_0xb3c6[9]](_0xb3c6[4],auth[_0xb3c6[5]](),controller[_0xb3c6[8]]);module[_0xb3c6[10]]=router
\ No newline at end of file
index 762c4c9..0530072 100644 (file)
@@ -1,200 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var Util = require('../../config/util');
-var sequelize = require('../../models').sequelize;
-
-var Automation = require('../../models').Automation;
-var ToolsCondition = require('../../models').ToolsCondition;
-var ToolsAction = require('../../models').ToolsAction;
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return Automation
-    .scope('all')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single Automation
-exports.show = function(req, res) {
-  Automation
-    .scope('all')
-    .findById(req.params.id)
-    .then(function(Automation) {
-      if (!Automation) {
-        return res.sendStatus(404);
-      }
-      return res.send(Automation);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new Automation in the DB.
-exports.create = function(req, res, next) {
-  Automation
-    .create(req.body, {
-      include: [{
-        model: ToolsCondition,
-        as: 'All'
-      }, {
-        model: ToolsCondition,
-        as: 'Any'
-      }, {
-        model: ToolsAction,
-        as: 'Actions'
-      }]
-    })
-    .then(function() {
-      return res.sendStatus(201);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing Automation in the DB.
-exports.update = function(req, res, next) {
-  var _automation;
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return sequelize.transaction(function(t) {
-      return Automation
-        .findById(req.params.id)
-        .then(function(automation) {
-          if (!automation) {
-            return res.sendStatus(404);
-          }
-          var updated = _.merge(automation, req.body);
-          return updated
-            .save({
-              transaction: t
-            });
-        })
-        .then(function(automation) {
-          _automation = automation;
-          if (req.body.Any) {
-            return ToolsCondition
-              .destroy({
-                where: {
-                  AutomationAnyId: req.params.id
-                },
-                transaction: t
-              });
-          }
-        })
-        .then(function() {
-          if (req.body.Any && Array.isArray(req.body.Any) && req.body.Any.length) {
-            _.forEach(req.body.Any, function(elem) {
-              elem.AutomationAnyId = req.params.id;
-            });
-            return ToolsCondition
-              .bulkCreate(req.body.Any, {
-                transaction: t
-              });
-          }
-        })
-        .then(function() {
-          if (req.body.All) {
-            return ToolsCondition
-              .destroy({
-                where: {
-                  AutomationAllId: req.params.id
-                },
-                transaction: t
-              });
-          }
-        })
-        .then(function() {
-          if (req.body.All && Array.isArray(req.body.All) && req.body.All.length) {
-            _.forEach(req.body.All, function(elem) {
-              elem.AutomationAllId = req.params.id;
-            });
-            return ToolsCondition
-              .bulkCreate(req.body.All, {
-                transaction: t
-              });
-          }
-        })
-        .then(function() {
-          if (req.body.Actions) {
-            return ToolsAction
-              .destroy({
-                where: {
-                  AutomationId: req.params.id
-                },
-                transaction: t
-              });
-          }
-        })
-        .then(function() {
-          if (req.body.Actions && Array.isArray(req.body.Actions) && req.body.Actions.length) {
-            _.forEach(req.body.Actions, function(elem) {
-              elem.AutomationId = req.params.id;
-            });
-            return ToolsAction
-              .bulkCreate(req.body.Actions, {
-                transaction: t
-              });
-          }
-        });
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-
-// Deletes a Automation from the DB.
-exports.destroy = function(req, res) {
-  Automation
-    .findById(req.params.id)
-    .then(function(Automation) {
-      if (!Automation) {
-        return res.sendStatus(404);
-      }
-      Automation.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-}
-
-exports.bulkDestroy = function(req, res) {
-  Automation
-    .destroy({
-      where: {
-        id: req.query.id
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x6404=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x54\x6F\x6F\x6C\x73\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x6F\x6F\x6C\x73\x41\x63\x74\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x61\x6C\x6C","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x41\x6C\x6C","\x41\x6E\x79","\x41\x63\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x6C\x6F\x67","\x69\x73\x41\x72\x72\x61\x79","\x6C\x65\x6E\x67\x74\x68","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x49\x64","\x66\x6F\x72\x45\x61\x63\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x41\x6C\x6C\x49\x64","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x41\x6E\x79\x49\x64","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x6404[0];var _=require(_0x6404[1]);var util=require(_0x6404[2]);var Util=require(_0x6404[3]);var sequelize=require(_0x6404[5])[_0x6404[4]];var Automation=require(_0x6404[5])[_0x6404[6]];var ToolsCondition=require(_0x6404[5])[_0x6404[7]];var ToolsAction=require(_0x6404[5])[_0x6404[8]];exports[_0x6404[9]]=function(_0xeca5x8,_0xeca5x9,_0xeca5xa){return Automation[_0x6404[18]](_0x6404[17])[_0x6404[16]](Util[_0x6404[15]](_0xeca5x8[_0x6404[14]]))[_0x6404[13]](function(_0xeca5xc){_0xeca5x9[_0x6404[12]](200)[_0x6404[11]](_0xeca5xc)})[_0x6404[10]](function(_0xeca5xb){return handleError(_0xeca5x9,_0xeca5xb)})};exports[_0x6404[19]]=function(_0xeca5x8,_0xeca5x9){Automation[_0x6404[18]](_0x6404[17])[_0x6404[23]](_0xeca5x8[_0x6404[22]][_0x6404[21]])[_0x6404[13]](function(Automation){if(!Automation){return _0xeca5x9[_0x6404[20]](404)};return _0xeca5x9[_0x6404[11]](Automation)})[_0x6404[10]](function(_0xeca5xb){return handleError(_0xeca5x9,_0xeca5xb)})};exports[_0x6404[24]]=function(_0xeca5x8,_0xeca5x9,_0xeca5xa){Automation[_0x6404[24]](_0xeca5x8[_0x6404[25]],{include:[{model:ToolsCondition,as:_0x6404[26]},{model:ToolsCondition,as:_0x6404[27]},{model:ToolsAction,as:_0x6404[28]}]})[_0x6404[13]](function(){return _0xeca5x9[_0x6404[20]](201)})[_0x6404[10]](function(_0xeca5xb){return handleError(_0xeca5x9,_0xeca5xb)})};exports[_0x6404[29]]=function(_0xeca5x8,_0xeca5x9,_0xeca5xa){var _0xeca5xd;if(_0xeca5x8[_0x6404[25]][_0x6404[21]]){delete _0xeca5x8[_0x6404[25]][_0x6404[21]]};return sequelize[_0x6404[41]](function(_0xeca5xe){return Automation[_0x6404[23]](_0xeca5x8[_0x6404[22]][_0x6404[21]])[_0x6404[13]](function(_0xeca5x10){if(!_0xeca5x10){return _0xeca5x9[_0x6404[20]](404)};var _0xeca5x11=_[_0x6404[39]](_0xeca5x10,_0xeca5x8[_0x6404[25]]);return _0xeca5x11[_0x6404[40]]({transaction:_0xeca5xe})})[_0x6404[13]](function(_0xeca5x10){_0xeca5xd=_0xeca5x10;if(_0xeca5x8[_0x6404[25]][_0x6404[27]]){return ToolsCondition[_0x6404[36]]({where:{AutomationAnyId:_0xeca5x8[_0x6404[22]][_0x6404[21]]},transaction:_0xeca5xe})}})[_0x6404[13]](function(){if(_0xeca5x8[_0x6404[25]][_0x6404[27]]&&Array[_0x6404[31]](_0xeca5x8[_0x6404[25]].Any)&&_0xeca5x8[_0x6404[25]][_0x6404[27]][_0x6404[32]]){_[_0x6404[34]](_0xeca5x8[_0x6404[25]].Any,function(_0xeca5xf){_0xeca5xf[_0x6404[38]]=_0xeca5x8[_0x6404[22]][_0x6404[21]]});return ToolsCondition[_0x6404[35]](_0xeca5x8[_0x6404[25]].Any,{transaction:_0xeca5xe})}})[_0x6404[13]](function(){if(_0xeca5x8[_0x6404[25]][_0x6404[26]]){return ToolsCondition[_0x6404[36]]({where:{AutomationAllId:_0xeca5x8[_0x6404[22]][_0x6404[21]]},transaction:_0xeca5xe})}})[_0x6404[13]](function(){if(_0xeca5x8[_0x6404[25]][_0x6404[26]]&&Array[_0x6404[31]](_0xeca5x8[_0x6404[25]].All)&&_0xeca5x8[_0x6404[25]][_0x6404[26]][_0x6404[32]]){_[_0x6404[34]](_0xeca5x8[_0x6404[25]].All,function(_0xeca5xf){_0xeca5xf[_0x6404[37]]=_0xeca5x8[_0x6404[22]][_0x6404[21]]});return ToolsCondition[_0x6404[35]](_0xeca5x8[_0x6404[25]].All,{transaction:_0xeca5xe})}})[_0x6404[13]](function(){if(_0xeca5x8[_0x6404[25]][_0x6404[28]]){return ToolsAction[_0x6404[36]]({where:{AutomationId:_0xeca5x8[_0x6404[22]][_0x6404[21]]},transaction:_0xeca5xe})}})[_0x6404[13]](function(){if(_0xeca5x8[_0x6404[25]][_0x6404[28]]&&Array[_0x6404[31]](_0xeca5x8[_0x6404[25]].Actions)&&_0xeca5x8[_0x6404[25]][_0x6404[28]][_0x6404[32]]){_[_0x6404[34]](_0xeca5x8[_0x6404[25]].Actions,function(_0xeca5xf){_0xeca5xf[_0x6404[33]]=_0xeca5x8[_0x6404[22]][_0x6404[21]]});return ToolsAction[_0x6404[35]](_0xeca5x8[_0x6404[25]].Actions,{transaction:_0xeca5xe})}})})[_0x6404[13]](function(){return _0xeca5x9[_0x6404[20]](200)})[_0x6404[10]](function(_0xeca5xb){console[_0x6404[30]](_0xeca5xb);return handleError(_0xeca5x9,_0xeca5xb)})};exports[_0x6404[36]]=function(_0xeca5x8,_0xeca5x9){Automation[_0x6404[23]](_0xeca5x8[_0x6404[22]][_0x6404[21]])[_0x6404[13]](function(Automation){if(!Automation){return _0xeca5x9[_0x6404[20]](404)};Automation[_0x6404[36]]()[_0x6404[13]](function(){return _0xeca5x9[_0x6404[20]](204)})[_0x6404[10]](function(_0xeca5xb){return handleError(_0xeca5x9,_0xeca5xb)})})[_0x6404[10]](function(_0xeca5xb){return handleError(_0xeca5x9,_0xeca5xb)})};exports[_0x6404[42]]=function(_0xeca5x8,_0xeca5x9){Automation[_0x6404[36]]({where:{id:_0xeca5x8[_0x6404[14]][_0x6404[21]]},individualHooks:true})[_0x6404[13]](function(){return _0xeca5x9[_0x6404[20]](204)})[_0x6404[10]](function(_0xeca5xb){return handleError(_0xeca5x9,_0xeca5xb)})};function handleError(_0xeca5x9,_0xeca5xb){return _0xeca5x9[_0x6404[12]](500)[_0x6404[11]](_0xeca5xb)}
\ No newline at end of file
index 2c55b60..c50965d 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Automation = require('../../models').Automation;
-
-exports.register = function(socket) {
-  Automation.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Automation.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('automation:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('automation:remove', doc);
-}
+var _0x8510=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8510[0];var Automation=require(_0x8510[2])[_0x8510[1]];exports[_0x8510[3]]=function(_0xc621x2){Automation[_0x8510[4]](function(_0xc621x3){onSave(_0xc621x2,_0xc621x3)});Automation[_0x8510[5]](function(_0xc621x3){onRemove(_0xc621x2,_0xc621x3)})};function onSave(_0xc621x2,_0xc621x3,_0xc621x5){_0xc621x2[_0x8510[7]](_0x8510[6],_0xc621x3)}function onRemove(_0xc621x2,_0xc621x3,_0xc621x5){_0xc621x2[_0x8510[7]](_0x8510[8],_0xc621x3)}
\ No newline at end of file
index ab8c5b4..619adcf 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/automations', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/automations')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0xb3b2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0xb3b2[0];var should=require(_0xb3b2[1]);var app=require(_0xb3b2[2]);var request=require(_0xb3b2[3]);describe(_0xb3b2[4],function(){it(_0xb3b2[5],function(_0x7044x4){request(app)[_0xb3b2[13]](_0xb3b2[12])[_0xb3b2[11]](200)[_0xb3b2[11]](_0xb3b2[10],/json/)[_0xb3b2[9]](function(_0x7044x5,_0x7044x6){if(_0x7044x5){return _0x7044x4(_0x7044x5)};_0x7044x6[_0xb3b2[8]][_0xb3b2[1]][_0xb3b2[7]][_0xb3b2[6]](Array);_0x7044x4()})})})
\ No newline at end of file
index 98acf5a..8cd3658 100644 (file)
@@ -1,17 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./automation.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-
-module.exports = router;
+var _0x6837=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x6837[0];var express=require(_0x6837[1]);var controller=require(_0x6837[2]);var auth=require(_0x6837[3]);var router=express.Router();router[_0x6837[7]](_0x6837[4],auth[_0x6837[5]](),controller[_0x6837[6]]);router[_0x6837[7]](_0x6837[8],auth[_0x6837[5]](),controller[_0x6837[9]]);router[_0x6837[11]](_0x6837[4],auth[_0x6837[5]](),controller[_0x6837[10]]);router[_0x6837[13]](_0x6837[8],auth[_0x6837[5]](),controller[_0x6837[12]]);router[_0x6837[14]](_0x6837[8],auth[_0x6837[5]](),controller[_0x6837[12]]);router[_0x6837[16]](_0x6837[8],auth[_0x6837[5]](),controller[_0x6837[15]]);router[_0x6837[16]](_0x6837[4],auth[_0x6837[5]](),controller[_0x6837[17]]);module[_0x6837[18]]=router
\ No newline at end of file
index 2078d7a..7e1bd5f 100644 (file)
@@ -1,128 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/answers              ->  index
- * POST    /api/answers              ->  create
- * GET     /api/answers/:id          ->  show
- * PUT     /api/answers/:id          ->  update
- * DELETE  /api/answers/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-var Util = require('../../config/util');
-
-var CannedAnswer = require('../../models').CannedAnswer;
-
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return CannedAnswer
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Gets a single CannedAnswer from the DB
-exports.show = function(req, res) {
-  CannedAnswer.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new CannedAnswer in the DB
-exports.create = function(req, res) {
-  CannedAnswer.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing CannedAnswer in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  CannedAnswer.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a CannedAnswer from the DB
-exports.destroy = function(req, res) {
-  CannedAnswer.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
-
-// Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
-  return CannedAnswer
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
+var _0x3355=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64\x73"];_0x3355[0];var _=require(_0x3355[1]);var Util=require(_0x3355[2]);var CannedAnswer=require(_0x3355[4])[_0x3355[3]];function handleError(_0x22b2x5,_0x22b2x6){_0x22b2x6=_0x22b2x6||500;return function(_0x22b2x7){_0x22b2x5[_0x3355[6]](_0x22b2x6)[_0x3355[5]](_0x22b2x7)}}function responseWithResult(_0x22b2x5,_0x22b2x6){_0x22b2x6=_0x22b2x6||200;return function(_0x22b2x9){if(_0x22b2x9){_0x22b2x5[_0x3355[6]](_0x22b2x6)[_0x3355[7]](_0x22b2x9)}}}function handleEntityNotFound(_0x22b2x5){return function(_0x22b2x9){if(!_0x22b2x9){_0x22b2x5[_0x3355[6]](404)[_0x3355[8]]();return null};return _0x22b2x9}}function saveUpdates(_0x22b2xc){return function(_0x22b2x9){return _0x22b2x9[_0x3355[10]](_0x22b2xc)[_0x3355[9]](function(_0x22b2xd){return _0x22b2xd})}}function removeEntity(_0x22b2x5){return function(_0x22b2x9){if(_0x22b2x9){return _0x22b2x9[_0x3355[11]]()[_0x3355[9]](function(){_0x22b2x5[_0x3355[6]](204)[_0x3355[8]]()})}}}exports[_0x3355[12]]=function(_0x22b2xf,_0x22b2x5,_0x22b2x10){return CannedAnswer[_0x3355[17]](Util[_0x3355[16]](_0x22b2xf[_0x3355[15]]))[_0x3355[9]](function(_0x22b2x11){_0x22b2x5[_0x3355[6]](200)[_0x3355[5]](_0x22b2x11)})[_0x3355[14]](function(_0x22b2x7){console[_0x3355[13]](_0x22b2x7);return handleError(_0x22b2x5,_0x22b2x7)})};exports[_0x3355[18]]=function(_0x22b2xf,_0x22b2x5){CannedAnswer[_0x3355[21]](_0x22b2xf[_0x3355[20]][_0x3355[19]])[_0x3355[9]](handleEntityNotFound(_0x22b2x5))[_0x3355[9]](responseWithResult(_0x22b2x5))[_0x3355[14]](handleError(_0x22b2x5))};exports[_0x3355[22]]=function(_0x22b2xf,_0x22b2x5){CannedAnswer[_0x3355[22]](_0x22b2xf[_0x3355[23]])[_0x3355[9]](responseWithResult(_0x22b2x5,201))[_0x3355[14]](handleError(_0x22b2x5))};exports[_0x3355[24]]=function(_0x22b2xf,_0x22b2x5){if(_0x22b2xf[_0x3355[23]][_0x3355[19]]){delete _0x22b2xf[_0x3355[23]][_0x3355[19]]};CannedAnswer[_0x3355[21]](_0x22b2xf[_0x3355[20]][_0x3355[19]])[_0x3355[9]](handleEntityNotFound(_0x22b2x5))[_0x3355[9]](saveUpdates(_0x22b2xf[_0x3355[23]]))[_0x3355[9]](responseWithResult(_0x22b2x5))[_0x3355[14]](handleError(_0x22b2x5))};exports[_0x3355[11]]=function(_0x22b2xf,_0x22b2x5){CannedAnswer[_0x3355[21]](_0x22b2xf[_0x3355[20]][_0x3355[19]])[_0x3355[9]](handleEntityNotFound(_0x22b2x5))[_0x3355[9]](removeEntity(_0x22b2x5))[_0x3355[14]](handleError(_0x22b2x5))};exports[_0x3355[25]]=function(_0x22b2xf,_0x22b2x5){return CannedAnswer[_0x3355[11]]({where:{id:_0x22b2xf[_0x3355[15]][_0x3355[27]]},individualHooks:true})[_0x3355[9]](function(){return _0x22b2x5[_0x3355[26]](204)})[_0x3355[14]](function(_0x22b2x7){return handleError(_0x22b2x5,_0x22b2x7)})}
\ No newline at end of file
index 1998ba4..18e3ce1 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var CannedAnswer = require('../../models').CannedAnswer;
-
-exports.register = function(socket) {
-  CannedAnswer.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  CannedAnswer.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('canned_answer:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('canned_answer:remove', doc);
-}
+var _0xd19c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72\x3A\x72\x65\x6D\x6F\x76\x65"];_0xd19c[0];var CannedAnswer=require(_0xd19c[2])[_0xd19c[1]];exports[_0xd19c[3]]=function(_0xd6fdx2){CannedAnswer[_0xd19c[4]](function(_0xd6fdx3){onSave(_0xd6fdx2,_0xd6fdx3)});CannedAnswer[_0xd19c[5]](function(_0xd6fdx3){onRemove(_0xd6fdx2,_0xd6fdx3)})};function onSave(_0xd6fdx2,_0xd6fdx3,_0xd6fdx5){_0xd6fdx2[_0xd19c[7]](_0xd19c[6],_0xd6fdx3)}function onRemove(_0xd6fdx2,_0xd6fdx3,_0xd6fdx5){_0xd6fdx2[_0xd19c[7]](_0xd19c[8],_0xd6fdx3)}
\ No newline at end of file
index b9d0dcd..630d55c 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./canned_answer.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xedd9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xedd9[0];var express=require(_0xedd9[1]);var auth=require(_0xedd9[2]);var controller=require(_0xedd9[3]);var router=express.Router();router[_0xedd9[7]](_0xedd9[4],auth[_0xedd9[5]](),controller[_0xedd9[6]]);router[_0xedd9[7]](_0xedd9[8],auth[_0xedd9[5]](),controller[_0xedd9[9]]);router[_0xedd9[11]](_0xedd9[4],auth[_0xedd9[5]](),controller[_0xedd9[10]]);router[_0xedd9[13]](_0xedd9[8],auth[_0xedd9[5]](),controller[_0xedd9[12]]);router[_0xedd9[14]](_0xedd9[8],auth[_0xedd9[5]](),controller[_0xedd9[12]]);router[_0xedd9[16]](_0xedd9[4],auth[_0xedd9[5]](),controller[_0xedd9[15]]);router[_0xedd9[16]](_0xedd9[8],auth[_0xedd9[5]](),controller[_0xedd9[17]]);module[_0xedd9[18]]=router
\ No newline at end of file
index e3dafb3..6dd387b 100644 (file)
@@ -1,107 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var ChanSpy = require('../../models').ChanSpy;
-var Util = require('../../config/util');
-
-// Get list of chanspy
-exports.index = function(req, res, next) {
-  return ChanSpy
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Get a single chanspy
-exports.show = function(req, res) {
-  return ChanSpy
-    .findById(req.params.id)
-    .then(function(chanspy) {
-      if (!chanspy) {
-        return res.sendStatus(404);
-      }
-      return res.send(chanspy);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new chanspy in the DB.
-exports.create = function(req, res) {
-  return ChanSpy
-    .create(req.body)
-    .then(function(chanspy) {
-      return res.status(201).send(chanspy);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing chanspy in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return ChanSpy
-    .findById(req.params.id)
-    .then(function(chanspy) {
-      if (!chanspy) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(chanspy, req.body);
-      return updated
-        .save();
-    })
-    .then(function(chanspy) {
-      return res.status(200).send(chanspy);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a chanspy from the DB.
-exports.destroy = function(req, res) {
-  return ChanSpy
-    .findById(req.params.id)
-    .then(function(chanspy) {
-      if (!chanspy) {
-        return res.sendStatus(404);
-      }
-      return chanspy.destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.bulkDestroy = function(req, res) {
-  return ChanSpy
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xd4eb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x43\x68\x61\x6E\x53\x70\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0xd4eb[0];var _=require(_0xd4eb[1]);var ChanSpy=require(_0xd4eb[3])[_0xd4eb[2]];var Util=require(_0xd4eb[4]);exports[_0xd4eb[5]]=function(_0xcf71x4,_0xcf71x5,_0xcf71x6){return ChanSpy[_0xd4eb[13]](Util[_0xd4eb[12]](_0xcf71x4[_0xd4eb[11]]))[_0xd4eb[10]](function(_0xcf71x8){_0xcf71x5[_0xd4eb[9]](200)[_0xd4eb[8]](_0xcf71x8)})[_0xd4eb[7]](function(_0xcf71x7){console[_0xd4eb[6]](_0xcf71x7);return handleError(_0xcf71x5,_0xcf71x7)})};exports[_0xd4eb[14]]=function(_0xcf71x4,_0xcf71x5){return ChanSpy[_0xd4eb[18]](_0xcf71x4[_0xd4eb[17]][_0xd4eb[16]])[_0xd4eb[10]](function(_0xcf71x9){if(!_0xcf71x9){return _0xcf71x5[_0xd4eb[15]](404)};return _0xcf71x5[_0xd4eb[8]](_0xcf71x9)})[_0xd4eb[7]](function(_0xcf71x7){return handleError(_0xcf71x5,_0xcf71x7)})};exports[_0xd4eb[19]]=function(_0xcf71x4,_0xcf71x5){return ChanSpy[_0xd4eb[19]](_0xcf71x4[_0xd4eb[20]])[_0xd4eb[10]](function(_0xcf71x9){return _0xcf71x5[_0xd4eb[9]](201)[_0xd4eb[8]](_0xcf71x9)})[_0xd4eb[7]](function(_0xcf71x7){return handleError(_0xcf71x5,_0xcf71x7)})};exports[_0xd4eb[21]]=function(_0xcf71x4,_0xcf71x5){if(_0xcf71x4[_0xd4eb[20]][_0xd4eb[16]]){delete _0xcf71x4[_0xd4eb[20]][_0xd4eb[16]]};return ChanSpy[_0xd4eb[18]](_0xcf71x4[_0xd4eb[17]][_0xd4eb[16]])[_0xd4eb[10]](function(_0xcf71x9){if(!_0xcf71x9){return _0xcf71x5[_0xd4eb[15]](404)};var _0xcf71xa=_[_0xd4eb[22]](_0xcf71x9,_0xcf71x4[_0xd4eb[20]]);return _0xcf71xa[_0xd4eb[23]]()})[_0xd4eb[10]](function(_0xcf71x9){return _0xcf71x5[_0xd4eb[9]](200)[_0xd4eb[8]](_0xcf71x9)})[_0xd4eb[7]](function(_0xcf71x7){return handleError(_0xcf71x5,_0xcf71x7)})};exports[_0xd4eb[24]]=function(_0xcf71x4,_0xcf71x5){return ChanSpy[_0xd4eb[18]](_0xcf71x4[_0xd4eb[17]][_0xd4eb[16]])[_0xd4eb[10]](function(_0xcf71x9){if(!_0xcf71x9){return _0xcf71x5[_0xd4eb[15]](404)};return _0xcf71x9[_0xd4eb[24]]()})[_0xd4eb[10]](function(){return _0xcf71x5[_0xd4eb[15]](204)})[_0xd4eb[7]](function(_0xcf71x7){return handleError(_0xcf71x5,_0xcf71x7)})};exports[_0xd4eb[25]]=function(_0xcf71x4,_0xcf71x5){return ChanSpy[_0xd4eb[24]]({where:{id:_0xcf71x4[_0xd4eb[11]][_0xd4eb[26]]},individualHooks:true})[_0xd4eb[10]](function(){return _0xcf71x5[_0xd4eb[15]](204)})[_0xd4eb[7]](function(_0xcf71x7){return handleError(_0xcf71x5,_0xcf71x7)})};function handleError(_0xcf71x5,_0xcf71x7){return _0xcf71x5[_0xd4eb[9]](500)[_0xd4eb[8]](_0xcf71x7)}
\ No newline at end of file
index 9fb1324..481dfc8 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ChanSpy = require('../../models').ChanSpy;
-
-exports.register = function(socket) {
-  ChanSpy.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  ChanSpy.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('chanspy:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('chanspy:remove', doc);
-}
+var _0x234f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x6E\x53\x70\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x6E\x73\x70\x79\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x6E\x73\x70\x79\x3A\x72\x65\x6D\x6F\x76\x65"];_0x234f[0];var ChanSpy=require(_0x234f[2])[_0x234f[1]];exports[_0x234f[3]]=function(_0x3d2ax2){ChanSpy[_0x234f[4]](function(_0x3d2ax3){onSave(_0x3d2ax2,_0x3d2ax3)});ChanSpy[_0x234f[5]](function(_0x3d2ax3){onRemove(_0x3d2ax2,_0x3d2ax3)})};function onSave(_0x3d2ax2,_0x3d2ax3,_0x3d2ax5){_0x3d2ax2[_0x234f[7]](_0x234f[6],_0x3d2ax3)}function onRemove(_0x3d2ax2,_0x3d2ax3,_0x3d2ax5){_0x3d2ax2[_0x234f[7]](_0x234f[8],_0x3d2ax3)}
\ No newline at end of file
index 97d091d..4e979e9 100644 (file)
@@ -1,17 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./chanspy.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), auth.hasRole('admin'), controller.index);
-router.get('/:id', auth.isAuthenticated(), auth.hasRole('admin'), controller.show);
-router.post('/', auth.isAuthenticated(), auth.hasRole('admin'), controller.create);
-router.put('/:id', auth.isAuthenticated(), auth.hasRole('admin'), controller.update);
-router.patch('/:id', auth.isAuthenticated(), auth.hasRole('admin'), controller.update);
-router.delete('/', auth.isAuthenticated(), auth.hasRole('admin'), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), auth.hasRole('admin'), controller.destroy);
-
-module.exports = router;
+var _0x79dd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x6E\x73\x70\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x61\x64\x6D\x69\x6E","\x68\x61\x73\x52\x6F\x6C\x65","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x79dd[0];var express=require(_0x79dd[1]);var controller=require(_0x79dd[2]);var auth=require(_0x79dd[3]);var router=express.Router();router[_0x79dd[9]](_0x79dd[4],auth[_0x79dd[5]](),auth[_0x79dd[7]](_0x79dd[6]),controller[_0x79dd[8]]);router[_0x79dd[9]](_0x79dd[10],auth[_0x79dd[5]](),auth[_0x79dd[7]](_0x79dd[6]),controller[_0x79dd[11]]);router[_0x79dd[13]](_0x79dd[4],auth[_0x79dd[5]](),auth[_0x79dd[7]](_0x79dd[6]),controller[_0x79dd[12]]);router[_0x79dd[15]](_0x79dd[10],auth[_0x79dd[5]](),auth[_0x79dd[7]](_0x79dd[6]),controller[_0x79dd[14]]);router[_0x79dd[16]](_0x79dd[10],auth[_0x79dd[5]](),auth[_0x79dd[7]](_0x79dd[6]),controller[_0x79dd[14]]);router[_0x79dd[18]](_0x79dd[4],auth[_0x79dd[5]](),auth[_0x79dd[7]](_0x79dd[6]),controller[_0x79dd[17]]);router[_0x79dd[18]](_0x79dd[10],auth[_0x79dd[5]](),auth[_0x79dd[7]](_0x79dd[6]),controller[_0x79dd[19]]);module[_0x79dd[20]]=router
\ No newline at end of file
index 9c2085d..10a4567 100644 (file)
@@ -1,105 +1 @@
-'use strict';
-var _ = require('lodash');
-var ChatApplication = require('../../models').ChatApplication;
-// Get list of chat_applications
-exports.index = function(req, res) {
-  ChatApplication
-    .findAll({
-      where: req.query,
-      order: 'priority',
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(chat_applications) {
-      return res.status(200).send(chat_applications);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Get a single chat_application
-exports.show = function(req, res) {
-  ChatApplication
-    .findById(req.params.id)
-    .then(function(chat_application) {
-      if (!chat_application) {
-        return res.sendStatus(404);
-      }
-      return res.send(chat_application);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Creates a new chat_application in the DB.
-exports.create = function(req, res, next) {
-  ChatApplication.max('priority', {
-    where: {
-      ChatWebsiteId: req.body.ChatWebsiteId
-    }
-  }).then(function(max) {
-    // SET PRIORITY
-    req.body.priority = max ? ++max : 1;
-    ChatApplication
-      .create(req.body)
-      .then(function(mailApplication) {
-        return res.status(201).send(mailApplication);
-      })
-      .catch(function(err) {
-        return next(err);
-      });
-  }).catch(function(err) {
-    next(err);
-  });
-};
-// Updates an existing chat_application in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  ChatApplication
-    .findById(req.params.id)
-    .then(function(chat_application) {
-      if (!chat_application) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(chat_application, req.body);
-      updated
-        .save()
-        .then(function() {
-          return res.status(200).send(chat_application);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Deletes a chat_application from the DB.
-exports.destroy = function(req, res) {
-  ChatApplication
-    .findById(req.params.id)
-    .then(function(chat_application) {
-      if (!chat_application) {
-        return res.sendStatus(404);
-      }
-      chat_application
-        .destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x50d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x70\x72\x69\x6F\x72\x69\x74\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x49\x64","\x6D\x61\x78","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x50d0[0];var _=require(_0x50d0[1]);var ChatApplication=require(_0x50d0[3])[_0x50d0[2]];exports[_0x50d0[4]]=function(_0xbe5ax3,_0xbe5ax4){ChatApplication[_0x50d0[11]]({where:_0xbe5ax3[_0x50d0[9]],order:_0x50d0[10],include:[{all:true}]})[_0x50d0[8]](function(_0xbe5ax6){return _0xbe5ax4[_0x50d0[7]](200)[_0x50d0[6]](_0xbe5ax6)})[_0x50d0[5]](function(_0xbe5ax5){return handleError(_0xbe5ax4,_0xbe5ax5)})};exports[_0x50d0[12]]=function(_0xbe5ax3,_0xbe5ax4){ChatApplication[_0x50d0[16]](_0xbe5ax3[_0x50d0[15]][_0x50d0[14]])[_0x50d0[8]](function(_0xbe5ax7){if(!_0xbe5ax7){return _0xbe5ax4[_0x50d0[13]](404)};return _0xbe5ax4[_0x50d0[6]](_0xbe5ax7)})[_0x50d0[5]](function(_0xbe5ax5){return handleError(_0xbe5ax4,_0xbe5ax5)})};exports[_0x50d0[17]]=function(_0xbe5ax3,_0xbe5ax4,_0xbe5ax8){ChatApplication[_0x50d0[20]](_0x50d0[10],{where:{ChatWebsiteId:_0xbe5ax3[_0x50d0[18]][_0x50d0[19]]}})[_0x50d0[8]](function(_0xbe5ax9){_0xbe5ax3[_0x50d0[18]][_0x50d0[10]]=_0xbe5ax9?++_0xbe5ax9:1;ChatApplication[_0x50d0[17]](_0xbe5ax3[_0x50d0[18]])[_0x50d0[8]](function(_0xbe5axa){return _0xbe5ax4[_0x50d0[7]](201)[_0x50d0[6]](_0xbe5axa)})[_0x50d0[5]](function(_0xbe5ax5){return _0xbe5ax8(_0xbe5ax5)})})[_0x50d0[5]](function(_0xbe5ax5){_0xbe5ax8(_0xbe5ax5)})};exports[_0x50d0[21]]=function(_0xbe5ax3,_0xbe5ax4){if(_0xbe5ax3[_0x50d0[18]][_0x50d0[14]]){delete _0xbe5ax3[_0x50d0[18]][_0x50d0[14]]};ChatApplication[_0x50d0[16]](_0xbe5ax3[_0x50d0[15]][_0x50d0[14]])[_0x50d0[8]](function(_0xbe5ax7){if(!_0xbe5ax7){return _0xbe5ax4[_0x50d0[13]](404)};var _0xbe5axb=_[_0x50d0[22]](_0xbe5ax7,_0xbe5ax3[_0x50d0[18]]);_0xbe5axb[_0x50d0[23]]()[_0x50d0[8]](function(){return _0xbe5ax4[_0x50d0[7]](200)[_0x50d0[6]](_0xbe5ax7)})[_0x50d0[5]](function(_0xbe5ax5){return handleError(_0xbe5ax4,_0xbe5ax5)})})[_0x50d0[5]](function(_0xbe5ax5){return handleError(_0xbe5ax4,_0xbe5ax5)})};exports[_0x50d0[24]]=function(_0xbe5ax3,_0xbe5ax4){ChatApplication[_0x50d0[16]](_0xbe5ax3[_0x50d0[15]][_0x50d0[14]])[_0x50d0[8]](function(_0xbe5ax7){if(!_0xbe5ax7){return _0xbe5ax4[_0x50d0[13]](404)};_0xbe5ax7[_0x50d0[24]]()[_0x50d0[8]](function(){return _0xbe5ax4[_0x50d0[13]](204)})[_0x50d0[5]](function(_0xbe5ax5){return handleError(_0xbe5ax4,_0xbe5ax5)})})[_0x50d0[5]](function(_0xbe5ax5){return handleError(_0xbe5ax4,_0xbe5ax5)})};function handleError(_0xbe5ax4,_0xbe5ax5){return _0xbe5ax4[_0x50d0[7]](500)[_0x50d0[6]](_0xbe5ax5)}
\ No newline at end of file
index 8776f3a..69c0b9f 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ChatApplication = require('../../models').ChatApplication;
-
-exports.register = function(socket) {
-  ChatApplication.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  ChatApplication.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('chat_application:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('chat_application:remove', doc);
-}
+var _0x6556=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x6556[0];var ChatApplication=require(_0x6556[2])[_0x6556[1]];exports[_0x6556[3]]=function(_0x6ecdx2){ChatApplication[_0x6556[4]](function(_0x6ecdx3){onSave(_0x6ecdx2,_0x6ecdx3)});ChatApplication[_0x6556[5]](function(_0x6ecdx3){onRemove(_0x6ecdx2,_0x6ecdx3)})};function onSave(_0x6ecdx2,_0x6ecdx3,_0x6ecdx5){_0x6ecdx2[_0x6556[7]](_0x6556[6],_0x6ecdx3)}function onRemove(_0x6ecdx2,_0x6ecdx3,_0x6ecdx5){_0x6ecdx2[_0x6556[7]](_0x6556[8],_0x6ecdx3)}
\ No newline at end of file
index 215f533..b5431e9 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/chat/applications', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/chat/applications')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x18a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0x18a1[0];var should=require(_0x18a1[1]);var app=require(_0x18a1[2]);var request=require(_0x18a1[3]);describe(_0x18a1[4],function(){it(_0x18a1[5],function(_0xb22fx4){request(app)[_0x18a1[13]](_0x18a1[12])[_0x18a1[11]](200)[_0x18a1[11]](_0x18a1[10],/json/)[_0x18a1[9]](function(_0xb22fx5,_0xb22fx6){if(_0xb22fx5){return _0xb22fx4(_0xb22fx5)};_0xb22fx6[_0x18a1[8]][_0x18a1[1]][_0x18a1[7]][_0x18a1[6]](Array);_0xb22fx4()})})})
\ No newline at end of file
index d85a510..9270a4f 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./chat_application.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
\ No newline at end of file
+var _0xdb56=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xdb56[0];var express=require(_0xdb56[1]);var controller=require(_0xdb56[2]);var router=express.Router();router[_0xdb56[5]](_0xdb56[3],controller[_0xdb56[4]]);router[_0xdb56[5]](_0xdb56[6],controller[_0xdb56[7]]);router[_0xdb56[9]](_0xdb56[3],controller[_0xdb56[8]]);router[_0xdb56[11]](_0xdb56[6],controller[_0xdb56[10]]);router[_0xdb56[12]](_0xdb56[6],controller[_0xdb56[10]]);router[_0xdb56[14]](_0xdb56[6],controller[_0xdb56[13]]);module[_0xdb56[15]]=router
\ No newline at end of file
index d72924b..12f9aed 100644 (file)
@@ -1,106 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Util = require('../../config/util');
-
-var ChatEnquiry = require('../../models').ChatEnquiry;
-var ChatVisitor = require('../../models').ChatVisitor;
-var ChatWebsite = require('../../models').ChatWebsite;
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return ChatEnquiry
-    .findAndCountAll(_.merge(Util.getQuery(req.query), {
-      include: [{
-        model: ChatWebsite,
-        attributes: ['id', 'name']
-      }]
-    }))
-    .then(function(result) {
-      return res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single enquiry
-exports.show = function(req, res) {
-  return ChatEnquiry
-    .findById(req.params.id, {
-      include: [{
-        model: ChatWebsite,
-        attributes: ['id', 'name']
-      }, {
-        model: ChatVisitor
-      }]
-    })
-    .then(function(enquiry) {
-      if (!enquiry) {
-        return res.sendStatus(404);
-      }
-      return res.send(enquiry);
-    })
-    .catch(function(err) {
-      console.error(err);
-      return handleError(res, err);
-    });
-};
-
-// Creates a new enquiry in the DB.
-exports.create = function(req, res) {
-  return ChatEnquiry
-    .create(req.body)
-    .then(function(enquiry) {
-      return res.status(201).send(enquiry);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing enquiry in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return ChatEnquiry
-    .findById(req.params.id)
-    .then(function(enquiry) {
-      if (!enquiry) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(enquiry, req.body);
-      return updated
-        .save();
-    })
-    .then(function(enquiry) {
-      return res.status(200).send(enquiry);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a enquiry from the DB.
-exports.destroy = function(req, res) {
-  return ChatEnquiry
-    .findById(req.params.id)
-    .then(function(enquiry) {
-      if (!enquiry) {
-        return res.sendStatus(404);
-      }
-      return enquiry
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x3adf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x69\x64","\x6E\x61\x6D\x65","\x6D\x65\x72\x67\x65","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x65\x72\x72\x6F\x72","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x3adf[0];var _=require(_0x3adf[1]);var Util=require(_0x3adf[2]);var ChatEnquiry=require(_0x3adf[4])[_0x3adf[3]];var ChatVisitor=require(_0x3adf[4])[_0x3adf[5]];var ChatWebsite=require(_0x3adf[4])[_0x3adf[6]];exports[_0x3adf[7]]=function(_0xe592x6,_0xe592x7,_0xe592x8){return ChatEnquiry[_0x3adf[17]](_[_0x3adf[16]](Util[_0x3adf[13]](_0xe592x6[_0x3adf[12]]),{include:[{model:ChatWebsite,attributes:[_0x3adf[14],_0x3adf[15]]}]}))[_0x3adf[11]](function(_0xe592xa){return _0xe592x7[_0x3adf[10]](200)[_0x3adf[9]](_0xe592xa)})[_0x3adf[8]](function(_0xe592x9){return handleError(_0xe592x7,_0xe592x9)})};exports[_0x3adf[18]]=function(_0xe592x6,_0xe592x7){return ChatEnquiry[_0x3adf[22]](_0xe592x6[_0x3adf[21]][_0x3adf[14]],{include:[{model:ChatWebsite,attributes:[_0x3adf[14],_0x3adf[15]]},{model:ChatVisitor}]})[_0x3adf[11]](function(_0xe592xb){if(!_0xe592xb){return _0xe592x7[_0x3adf[20]](404)};return _0xe592x7[_0x3adf[9]](_0xe592xb)})[_0x3adf[8]](function(_0xe592x9){console[_0x3adf[19]](_0xe592x9);return handleError(_0xe592x7,_0xe592x9)})};exports[_0x3adf[23]]=function(_0xe592x6,_0xe592x7){return ChatEnquiry[_0x3adf[23]](_0xe592x6[_0x3adf[24]])[_0x3adf[11]](function(_0xe592xb){return _0xe592x7[_0x3adf[10]](201)[_0x3adf[9]](_0xe592xb)})[_0x3adf[8]](function(_0xe592x9){return handleError(_0xe592x7,_0xe592x9)})};exports[_0x3adf[25]]=function(_0xe592x6,_0xe592x7){if(_0xe592x6[_0x3adf[24]][_0x3adf[14]]){delete _0xe592x6[_0x3adf[24]][_0x3adf[14]]};return ChatEnquiry[_0x3adf[22]](_0xe592x6[_0x3adf[21]][_0x3adf[14]])[_0x3adf[11]](function(_0xe592xb){if(!_0xe592xb){return _0xe592x7[_0x3adf[20]](404)};var _0xe592xc=_[_0x3adf[16]](_0xe592xb,_0xe592x6[_0x3adf[24]]);return _0xe592xc[_0x3adf[26]]()})[_0x3adf[11]](function(_0xe592xb){return _0xe592x7[_0x3adf[10]](200)[_0x3adf[9]](_0xe592xb)})[_0x3adf[8]](function(_0xe592x9){return handleError(_0xe592x7,_0xe592x9)})};exports[_0x3adf[27]]=function(_0xe592x6,_0xe592x7){return ChatEnquiry[_0x3adf[22]](_0xe592x6[_0x3adf[21]][_0x3adf[14]])[_0x3adf[11]](function(_0xe592xb){if(!_0xe592xb){return _0xe592x7[_0x3adf[20]](404)};return _0xe592xb[_0x3adf[27]]()})[_0x3adf[11]](function(){return _0xe592x7[_0x3adf[20]](204)})[_0x3adf[8]](function(_0xe592x9){return handleError(_0xe592x7,_0xe592x9)})};function handleError(_0xe592x7,_0xe592x9){return _0xe592x7[_0x3adf[10]](500)[_0x3adf[9]](_0xe592x9)}
\ No newline at end of file
index b7b69e1..7c9e2e7 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var enquiry = require('../../models').ChatEnquiry;
-
-exports.register = function(socket) {
-  enquiry.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  enquiry.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('enquiry:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('enquiry:remove', doc);
-}
+var _0xe452=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x65\x6E\x71\x75\x69\x72\x79\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x65\x6E\x71\x75\x69\x72\x79\x3A\x72\x65\x6D\x6F\x76\x65"];_0xe452[0];var enquiry=require(_0xe452[2])[_0xe452[1]];exports[_0xe452[3]]=function(_0xe939x2){enquiry[_0xe452[4]](function(_0xe939x3){onSave(_0xe939x2,_0xe939x3)});enquiry[_0xe452[5]](function(_0xe939x3){onRemove(_0xe939x2,_0xe939x3)})};function onSave(_0xe939x2,_0xe939x3,_0xe939x5){_0xe939x2[_0xe452[7]](_0xe452[6],_0xe939x3)}function onRemove(_0xe939x2,_0xe939x3,_0xe939x5){_0xe939x2[_0xe452[7]](_0xe452[8],_0xe939x3)}
\ No newline at end of file
index 84a2544..92e5661 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./enquiry.controller');
-var license = require('../../config/license/license.service');
-var router = express.Router();
-
-router.get('/', license.isValidDate(), license.hasChat(), controller.index);
-router.get('/:id', license.isValidDate(), license.hasChat(), controller.show);
-router.post('/', license.isValidDate(), license.hasChat(), controller.create);
-router.put('/:id', license.isValidDate(), license.hasChat(), controller.update);
-router.patch('/:id', license.isValidDate(), license.hasChat(), controller.update);
-router.delete('/:id', license.isValidDate(), license.hasChat(), controller.destroy);
-
-module.exports = router;
+var _0xf0ad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x65\x6E\x71\x75\x69\x72\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x68\x61\x73\x43\x68\x61\x74","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf0ad[0];var express=require(_0xf0ad[1]);var controller=require(_0xf0ad[2]);var license=require(_0xf0ad[3]);var router=express.Router();router[_0xf0ad[8]](_0xf0ad[4],license[_0xf0ad[5]](),license[_0xf0ad[6]](),controller[_0xf0ad[7]]);router[_0xf0ad[8]](_0xf0ad[9],license[_0xf0ad[5]](),license[_0xf0ad[6]](),controller[_0xf0ad[10]]);router[_0xf0ad[12]](_0xf0ad[4],license[_0xf0ad[5]](),license[_0xf0ad[6]](),controller[_0xf0ad[11]]);router[_0xf0ad[14]](_0xf0ad[9],license[_0xf0ad[5]](),license[_0xf0ad[6]](),controller[_0xf0ad[13]]);router[_0xf0ad[15]](_0xf0ad[9],license[_0xf0ad[5]](),license[_0xf0ad[6]](),controller[_0xf0ad[13]]);router[_0xf0ad[17]](_0xf0ad[9],license[_0xf0ad[5]](),license[_0xf0ad[6]](),controller[_0xf0ad[16]]);module[_0xf0ad[18]]=router
\ No newline at end of file
index 958ca19..e42b618 100644 (file)
@@ -1,267 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var md5 = require('md5');
-
-var User = require('../../models').User;
-var ChatRoom = require('../../models').ChatRoom;
-var ChatMessage = require('../../models').ChatMessage;
-var ChatVisitor = require('../../models').ChatVisitor;
-
-// Get list of chat_messages
-exports.index = function (req, res) {
-  ChatMessage
-    .findAll()
-    .then(function (chat_messages) {
-      return res.status(200).send(chat_messages);
-    })
-    .catch(function (err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single chatMessage
-exports.show = function (req, res) {
-  ChatMessage
-    .findById(req.params.id)
-    .then(function (chatMessage) {
-      if (!chatMessage) {
-        return res.sendStatus(404);
-      }
-      return res.send(chatMessage);
-    })
-    .catch(function (err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new chatMessage in the DB.
-exports.create = function (req, res, next) {
-  // if (req.body.ChatRoomId && req.body.to) {
-  //   return handleError(res, new Error('Select ChatRoomId or to'));
-  // } else if (req.body.to) {
-  //
-  //   switch (req.body.type) {
-  //     case 'internal':
-  //       User
-  //         .findOne({
-  //           where: {
-  //             $or: [{
-  //               id: {
-  //                 $like: req.body.to
-  //               }
-  //             }, {
-  //               name: req.body.to
-  //             }]
-  //           }
-  //         })
-  //         .then(function(user) {
-  //           if (user) {
-  //
-  //             var users = _.sortBy([user, req.user], 'id');
-  //             var participants = {
-  //               users: {
-  //                 ids: [users[0].id, users[1].id]
-  //               },
-  //               visitors: {
-  //                 ids: []
-  //               }
-  //             };
-  //
-  //             var token = md5(JSON.stringify(participants)).toString(
-  //               'base64');
-  //
-  //             participants.users.fullnames = [users[0].fullname, users[1].fullname];
-  //             participants.visitors.fullnames = [];
-  //
-  //             ChatRoom
-  //               .findOrCreate({
-  //                 where: {
-  //                   token: token
-  //                 },
-  //                 defaults: {
-  //                   type: req.body.type,
-  //                   token: token,
-  //                   participants: JSON.stringify(participants)
-  //                 }
-  //               })
-  //               .spread(function(chatRoom, created) {
-  //
-  //                 chatRoom
-  //                   .updateAttributes({
-  //                     participants: JSON.stringify(participants)
-  //                   });
-  //
-  //                 ChatMessage
-  //                   .create({
-  //                     body: req.body.body,
-  //                     fullname: req.user.fullname,
-  //                     email: req.user.email,
-  //                     ChatRoomId: chatRoom.id,
-  //                     userId: req.user.id
-  //                   })
-  //                   .then(function(chatMessage) {
-  //                     return res.status(201).send(chatMessage);
-  //                   })
-  //                   .catch(function(err) {
-  //                     return handleError(res, err);
-  //                   });
-  //               });
-  //
-  //           } else {
-  //             return handleError(res, new Error('User not found'));
-  //           }
-  //         })
-  //         .catch(function(err) {
-  //           return handleError(res, err);
-  //         });
-  //
-  //       break;
-  //     case 'external':
-  //       ChatVisitor
-  //         .findOne({
-  //           where: {
-  //             $or: [{
-  //               id: {
-  //                 $like: req.body.to
-  //               }
-  //             }, {
-  //               fullname: req.body.to
-  //             }]
-  //           }
-  //         })
-  //         .then(function(chatVisitor) {
-  //           if (chatVisitor) {
-  //
-  //             var participants = {
-  //               users: {
-  //                 ids: [req.user.id]
-  //               },
-  //               visitors: {
-  //                 ids: [chatVisitor.id]
-  //               }
-  //             };
-  //
-  //             var token = md5(JSON.stringify(participants)).toString(
-  //               'base64');
-  //
-  //             participants.users.fullnames = [req.user.fullname];
-  //             participants.visitors.fullnames = [chatVisitor.fullname];
-  //
-  //             ChatRoom
-  //               .findOrCreate({
-  //                 where: {
-  //                   token: token
-  //                 },
-  //                 defaults: {
-  //                   type: req.body.type,
-  //                   token: token,
-  //                   participants: JSON.stringify(participants)
-  //                 }
-  //               })
-  //               .spread(function(chatRoom, created) {
-  //
-  //                 chatRoom
-  //                   .updateAttributes({
-  //                     participants: JSON.stringify(participants)
-  //                   });
-  //
-  //                 ChatMessage
-  //                   .create({
-  //                     body: req.body.body,
-  //                     fullname: req.user.fullname,
-  //                     email: req.user.email,
-  //                     ChatRoomId: chatRoom.id,
-  //                     userId: req.user.id
-  //                   })
-  //                   .then(function(chatMessage) {
-  //                     return res.status(201).send(chatMessage);
-  //                   })
-  //                   .catch(function(err) {
-  //                     return handleError(res, err);
-  //                   });
-  //               });
-  //           }
-  //         });
-  //       break;
-  //     default:
-  //       return handleError(res, new Error('Room type unsupported'));
-  //   }
-  //
-  //
-  // } else if (req.body.ChatRoomId) {
-  //
-  //   ChatMessage
-  //     .create(_.merge({
-  //       userId: req.user.id,
-  //       email: req.user.email,
-  //       fullname: req.user.fullname
-  //     }, req.body))
-  //     .then(function(chatMessage) {
-  //       return res.status(201).send(chatMessage);
-  //     })
-  //     .catch(function(err) {
-  //       return handleError(res, err);
-  //     });
-  // } else {
-  //   return handleError(res, new Error('Select ChatRoomId or to'));
-  // }
-  ChatMessage
-    .create(_.merge(req.body, {
-      UserId: req.user.id
-    }))
-    .then(function (chatMessage) {
-      return res.status(201).send(chatMessage);
-    })
-    .catch(function (err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing chatMessage in the DB.
-exports.update = function (req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return ChatMessage
-    .findById(req.params.id)
-    .then(function (chatMessage) {
-      if (!chatMessage) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(chatMessage, req.body);
-      return updated.save();
-    })
-    .then(function (chatMessage) {
-      return res.status(200).send(chatMessage);
-    })
-    .catch(function (err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a chatMessage from the DB.
-exports.destroy = function (req, res) {
-  ChatMessage
-    .findById(req.params.id)
-    .then(function (chatMessage) {
-      if (!chatMessage) {
-        return res.sendStatus(404);
-      }
-      chatMessage.destroy()
-        .then(function () {
-          return res.sendStatus(204);
-        })
-        .catch(function (err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function (err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x5c6c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x64\x35","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x73\x65\x72","\x6D\x65\x72\x67\x65","\x75\x70\x64\x61\x74\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x5c6c[0];var _=require(_0x5c6c[1]);var md5=require(_0x5c6c[2]);var User=require(_0x5c6c[4])[_0x5c6c[3]];var ChatRoom=require(_0x5c6c[4])[_0x5c6c[5]];var ChatMessage=require(_0x5c6c[4])[_0x5c6c[6]];var ChatVisitor=require(_0x5c6c[4])[_0x5c6c[7]];exports[_0x5c6c[8]]=function(_0xc446x7,_0xc446x8){ChatMessage[_0x5c6c[13]]()[_0x5c6c[12]](function(_0xc446xa){return _0xc446x8[_0x5c6c[11]](200)[_0x5c6c[10]](_0xc446xa)})[_0x5c6c[9]](function(_0xc446x9){return handleError(_0xc446x8,_0xc446x9)})};exports[_0x5c6c[14]]=function(_0xc446x7,_0xc446x8){ChatMessage[_0x5c6c[18]](_0xc446x7[_0x5c6c[17]][_0x5c6c[16]])[_0x5c6c[12]](function(_0xc446xb){if(!_0xc446xb){return _0xc446x8[_0x5c6c[15]](404)};return _0xc446x8[_0x5c6c[10]](_0xc446xb)})[_0x5c6c[9]](function(_0xc446x9){return handleError(_0xc446x8,_0xc446x9)})};exports[_0x5c6c[19]]=function(_0xc446x7,_0xc446x8,_0xc446xc){ChatMessage[_0x5c6c[19]](_[_0x5c6c[22]](_0xc446x7[_0x5c6c[20]],{UserId:_0xc446x7[_0x5c6c[21]][_0x5c6c[16]]}))[_0x5c6c[12]](function(_0xc446xb){return _0xc446x8[_0x5c6c[11]](201)[_0x5c6c[10]](_0xc446xb)})[_0x5c6c[9]](function(_0xc446x9){return handleError(_0xc446x8,_0xc446x9)})};exports[_0x5c6c[23]]=function(_0xc446x7,_0xc446x8){if(_0xc446x7[_0x5c6c[20]][_0x5c6c[16]]){delete _0xc446x7[_0x5c6c[20]][_0x5c6c[16]]};return ChatMessage[_0x5c6c[18]](_0xc446x7[_0x5c6c[17]][_0x5c6c[16]])[_0x5c6c[12]](function(_0xc446xb){if(!_0xc446xb){return _0xc446x8[_0x5c6c[15]](404)};var _0xc446xd=_[_0x5c6c[22]](_0xc446xb,_0xc446x7[_0x5c6c[20]]);return _0xc446xd[_0x5c6c[24]]()})[_0x5c6c[12]](function(_0xc446xb){return _0xc446x8[_0x5c6c[11]](200)[_0x5c6c[10]](_0xc446xb)})[_0x5c6c[9]](function(_0xc446x9){return handleError(_0xc446x8,_0xc446x9)})};exports[_0x5c6c[25]]=function(_0xc446x7,_0xc446x8){ChatMessage[_0x5c6c[18]](_0xc446x7[_0x5c6c[17]][_0x5c6c[16]])[_0x5c6c[12]](function(_0xc446xb){if(!_0xc446xb){return _0xc446x8[_0x5c6c[15]](404)};_0xc446xb[_0x5c6c[25]]()[_0x5c6c[12]](function(){return _0xc446x8[_0x5c6c[15]](204)})[_0x5c6c[9]](function(_0xc446x9){return handleError(_0xc446x8,_0xc446x9)})})[_0x5c6c[9]](function(_0xc446x9){return handleError(_0xc446x8,_0xc446x9)})};function handleError(_0xc446x8,_0xc446x9){return _0xc446x8[_0x5c6c[11]](500)[_0x5c6c[10]](_0xc446x9)}
\ No newline at end of file
index dccab23..ee8c1ba 100644 (file)
@@ -1,59 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var chat_message = require('../../models').ChatMessage;
-var _ = require('lodash');
-
-exports.register = function (socket) {
-  chat_message.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  chat_message.afterUpdate(function (doc) {
-    onSave(socket, doc);
-  });
-  chat_message.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  return doc
-    .getChatRoom()
-    .then(function (chatRoom) {
-      return [chatRoom
-        .getUsers({
-          attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal'],
-          raw: true
-        }), chatRoom
-        .getChatVisitor({
-          attributes: ['id', 'fullname', 'email'],
-          raw: true
-        })
-      ];
-    })
-    .spread(function (users, visitor) {
-      var sender = _.find(users, {
-        id: doc.UserId
-      });
-
-      users.forEach(function (user) {
-        // SOCKET FILTER
-        if (socket.userId == user.id && (sender || visitor)) {
-          socket.emit('chat_message:save', _.merge(doc.dataValues, {
-            User: sender, // TODO modify to sender
-            ChatVisitor: visitor // TODO modify to visitor
-          }));
-        }
-      });
-    })
-    .catch(function (err) {
-      console.error(err);
-    });
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('chat_message:remove', doc);
-}
+var _0x5dc8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x55\x73\x65\x72\x49\x64","\x66\x69\x6E\x64","\x75\x73\x65\x72\x49\x64","\x69\x64","\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x73\x61\x76\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x6D\x65\x72\x67\x65","\x65\x6D\x69\x74","\x66\x6F\x72\x45\x61\x63\x68","\x73\x70\x72\x65\x61\x64","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x72\x6F\x6C\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x67\x65\x74\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x74\x68\x65\x6E","\x67\x65\x74\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x5dc8[0];var chat_message=require(_0x5dc8[2])[_0x5dc8[1]];var _=require(_0x5dc8[3]);exports[_0x5dc8[4]]=function(_0xb078x3){chat_message[_0x5dc8[5]](function(_0xb078x4){onSave(_0xb078x3,_0xb078x4)});chat_message[_0x5dc8[6]](function(_0xb078x4){onSave(_0xb078x3,_0xb078x4)});chat_message[_0x5dc8[7]](function(_0xb078x4){onRemove(_0xb078x3,_0xb078x4)})};function onSave(_0xb078x3,_0xb078x4,_0xb078x6){return _0xb078x4[_0x5dc8[28]]()[_0x5dc8[27]](function(_0xb078xc){return [_0xb078xc[_0x5dc8[25]]({attributes:[_0x5dc8[13],_0x5dc8[20],_0x5dc8[21],_0x5dc8[22],_0x5dc8[23],_0x5dc8[24]],raw:true}),_0xb078xc[_0x5dc8[26]]({attributes:[_0x5dc8[13],_0x5dc8[21],_0x5dc8[22]],raw:true})]})[_0x5dc8[19]](function(_0xb078x8,_0xb078x9){var _0xb078xa=_[_0x5dc8[11]](_0xb078x8,{id:_0xb078x4[_0x5dc8[10]]});_0xb078x8[_0x5dc8[18]](function(_0xb078xb){if(_0xb078x3[_0x5dc8[12]]==_0xb078xb[_0x5dc8[13]]&&(_0xb078xa||_0xb078x9)){_0xb078x3[_0x5dc8[17]](_0x5dc8[14],_[_0x5dc8[16]](_0xb078x4[_0x5dc8[15]],{User:_0xb078xa,ChatVisitor:_0xb078x9}))}})})[_0x5dc8[9]](function(_0xb078x7){console[_0x5dc8[8]](_0xb078x7)})}function onRemove(_0xb078x3,_0xb078x4,_0xb078x6){_0xb078x3[_0x5dc8[17]](_0x5dc8[29],_0xb078x4)}
\ No newline at end of file
index f646838..6558a2a 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/chat/messages', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/chat/messages')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x5a6b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74"];_0x5a6b[0];var should=require(_0x5a6b[1]);var app=require(_0x5a6b[2]);var request=require(_0x5a6b[3]);describe(_0x5a6b[4],function(){it(_0x5a6b[5],function(_0x47ccx4){request(app)[_0x5a6b[13]](_0x5a6b[12])[_0x5a6b[11]](200)[_0x5a6b[11]](_0x5a6b[10],/json/)[_0x5a6b[9]](function(_0x47ccx5,_0x47ccx6){if(_0x47ccx5){return _0x47ccx4(_0x47ccx5)};_0x47ccx6[_0x5a6b[8]][_0x5a6b[1]][_0x5a6b[7]][_0x5a6b[6]](Array);_0x47ccx4()})})})
\ No newline at end of file
index efcb4e1..e1e5fa8 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./chat_message.controller');
-var auth = require('../../auth/auth.service');
-var license = require('../../config/license/license.service');
-var router = express.Router();
-
-router.get('/', license.isValidDate(), license.hasChat(), controller.index);
-router.get('/:id', license.isValidDate(), license.hasChat(), controller.show);
-router.post('/', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.create);
-router.put('/:id', license.isValidDate(), license.hasChat(), controller.update);
-router.delete('/:id', license.isValidDate(), license.hasChat(), controller.destroy);
-
-module.exports = router;
+var _0x44f5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x68\x61\x73\x43\x68\x61\x74","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x44f5[0];var express=require(_0x44f5[1]);var controller=require(_0x44f5[2]);var auth=require(_0x44f5[3]);var license=require(_0x44f5[4]);var router=express.Router();router[_0x44f5[9]](_0x44f5[5],license[_0x44f5[6]](),license[_0x44f5[7]](),controller[_0x44f5[8]]);router[_0x44f5[9]](_0x44f5[10],license[_0x44f5[6]](),license[_0x44f5[7]](),controller[_0x44f5[11]]);router[_0x44f5[14]](_0x44f5[5],license[_0x44f5[6]](),license[_0x44f5[7]](),auth[_0x44f5[12]](),controller[_0x44f5[13]]);router[_0x44f5[16]](_0x44f5[10],license[_0x44f5[6]](),license[_0x44f5[7]](),controller[_0x44f5[15]]);router[_0x44f5[18]](_0x44f5[10],license[_0x44f5[6]](),license[_0x44f5[7]](),controller[_0x44f5[17]]);module[_0x44f5[19]]=router
\ No newline at end of file
index 8e3b8ba..f07c466 100644 (file)
@@ -1,112 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/chat/proactives              ->  index
- * POST    /api/chat/proactives              ->  create
- * GET     /api/chat/proactives/:id          ->  show
- * PUT     /api/chat/proactives/:id          ->  update
- * DELETE  /api/chat/proactives/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-var Util = require('../../config/util');
-
-var ChatProactiveAction = require('../../models').ChatProactiveAction;
-
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function responseWithoutResult(res, statusCode) {
-  statusCode = statusCode || 204;
-  return function() {
-    res.sendStatus(statusCode);
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) { 
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of ChatProactiveActions
-exports.index = function(req, res) {
-  return ChatProactiveAction.findAll(Util.getQuery(req.query))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single ChatProactiveAction from the DB
-exports.show = function(req, res) {
-  return ChatProactiveAction.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new ChatProactiveAction in the DB
-exports.create = function(req, res) {
-  return ChatProactiveAction.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing ChatProactiveAction in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return ChatProactiveAction.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a ChatProactiveAction from the DB
-exports.destroy = function(req, res) {
-  return ChatProactiveAction.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
+var _0x6459=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65"];_0x6459[0];var _=require(_0x6459[1]);var Util=require(_0x6459[2]);var ChatProactiveAction=require(_0x6459[4])[_0x6459[3]];function handleError(_0x10f8x5,_0x10f8x6){_0x10f8x6=_0x10f8x6||500;return function(_0x10f8x7){_0x10f8x5[_0x6459[6]](_0x10f8x6)[_0x6459[5]](_0x10f8x7)}}function responseWithResult(_0x10f8x5,_0x10f8x6){_0x10f8x6=_0x10f8x6||200;return function(_0x10f8x9){if(_0x10f8x9){_0x10f8x5[_0x6459[6]](_0x10f8x6)[_0x6459[7]](_0x10f8x9)}}}function responseWithoutResult(_0x10f8x5,_0x10f8x6){_0x10f8x6=_0x10f8x6||204;return function(){_0x10f8x5[_0x6459[8]](_0x10f8x6)}}function handleEntityNotFound(_0x10f8x5){return function(_0x10f8x9){if(!_0x10f8x9){_0x10f8x5[_0x6459[6]](404)[_0x6459[9]]();return null};return _0x10f8x9}}function saveUpdates(_0x10f8xd){return function(_0x10f8x9){return _0x10f8x9[_0x6459[11]](_0x10f8xd)[_0x6459[10]](function(_0x10f8xe){return _0x10f8xe})}}function removeEntity(_0x10f8x5){return function(_0x10f8x9){if(_0x10f8x9){return _0x10f8x9[_0x6459[12]]()[_0x6459[10]](function(){_0x10f8x5[_0x6459[6]](204)[_0x6459[9]]()})}}}exports[_0x6459[13]]=function(_0x10f8x10,_0x10f8x5){return ChatProactiveAction[_0x6459[17]](Util[_0x6459[16]](_0x10f8x10[_0x6459[15]]))[_0x6459[10]](responseWithResult(_0x10f8x5))[_0x6459[14]](handleError(_0x10f8x5))};exports[_0x6459[18]]=function(_0x10f8x10,_0x10f8x5){return ChatProactiveAction[_0x6459[21]](_0x10f8x10[_0x6459[20]][_0x6459[19]])[_0x6459[10]](handleEntityNotFound(_0x10f8x5))[_0x6459[10]](responseWithResult(_0x10f8x5))[_0x6459[14]](handleError(_0x10f8x5))};exports[_0x6459[22]]=function(_0x10f8x10,_0x10f8x5){return ChatProactiveAction[_0x6459[22]](_0x10f8x10[_0x6459[23]])[_0x6459[10]](responseWithResult(_0x10f8x5,201))[_0x6459[14]](handleError(_0x10f8x5))};exports[_0x6459[24]]=function(_0x10f8x10,_0x10f8x5){if(_0x10f8x10[_0x6459[23]][_0x6459[19]]){delete _0x10f8x10[_0x6459[23]][_0x6459[19]]};return ChatProactiveAction[_0x6459[21]](_0x10f8x10[_0x6459[20]][_0x6459[19]])[_0x6459[10]](handleEntityNotFound(_0x10f8x5))[_0x6459[10]](saveUpdates(_0x10f8x10[_0x6459[23]]))[_0x6459[10]](responseWithResult(_0x10f8x5))[_0x6459[14]](handleError(_0x10f8x5))};exports[_0x6459[12]]=function(_0x10f8x10,_0x10f8x5){return ChatProactiveAction[_0x6459[21]](_0x10f8x10[_0x6459[20]][_0x6459[19]])[_0x6459[10]](handleEntityNotFound(_0x10f8x5))[_0x6459[10]](removeEntity(_0x10f8x5))[_0x6459[14]](handleError(_0x10f8x5))}
\ No newline at end of file
index ca71aaf..a1f4fef 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ChatProactiveAction = require('../../models').ChatProactiveAction;
-
-exports.register = function(socket) {
-  ChatProactiveAction.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  ChatProactiveAction.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('chat_proactive_action:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('chat_proactive_action:remove', doc);
-}
+var _0x61df=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x74\x5F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x74\x5F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x61df[0];var ChatProactiveAction=require(_0x61df[2])[_0x61df[1]];exports[_0x61df[3]]=function(_0xbb18x2){ChatProactiveAction[_0x61df[4]](function(_0xbb18x3){onSave(_0xbb18x2,_0xbb18x3)});ChatProactiveAction[_0x61df[5]](function(_0xbb18x3){onRemove(_0xbb18x2,_0xbb18x3)})};function onSave(_0xbb18x2,_0xbb18x3,_0xbb18x5){_0xbb18x2[_0x61df[7]](_0x61df[6],_0xbb18x3)}function onRemove(_0xbb18x2,_0xbb18x3,_0xbb18x5){_0xbb18x2[_0x61df[7]](_0x61df[8],_0xbb18x3)}
\ No newline at end of file
index f38d95e..a76d63b 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./chat_proactive_action.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xc42e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x63\x68\x61\x74\x5F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc42e[0];var express=require(_0xc42e[1]);var auth=require(_0xc42e[2]);var controller=require(_0xc42e[3]);var router=express.Router();router[_0xc42e[7]](_0xc42e[4],auth[_0xc42e[5]](),controller[_0xc42e[6]]);router[_0xc42e[7]](_0xc42e[8],auth[_0xc42e[5]](),controller[_0xc42e[9]]);router[_0xc42e[11]](_0xc42e[4],auth[_0xc42e[5]](),controller[_0xc42e[10]]);router[_0xc42e[13]](_0xc42e[8],auth[_0xc42e[5]](),controller[_0xc42e[12]]);router[_0xc42e[14]](_0xc42e[8],auth[_0xc42e[5]](),controller[_0xc42e[12]]);router[_0xc42e[16]](_0xc42e[8],auth[_0xc42e[5]](),controller[_0xc42e[15]]);module[_0xc42e[17]]=router
\ No newline at end of file
index 2b9c66a..92d9c97 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var chatProactiveActionCtrlStub = {
-  index: 'chatProactiveActionCtrl.index',
-  show: 'chatProactiveActionCtrl.show',
-  create: 'chatProactiveActionCtrl.create',
-  update: 'chatProactiveActionCtrl.update',
-  destroy: 'chatProactiveActionCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var chatProactiveActionIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './chat_proactive_action.controller': chatProactiveActionCtrlStub
-});
-
-describe('ChatProactiveAction API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(chatProactiveActionIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/chat/proactives', function() {
-
-    it('should route to chatProactiveAction.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'chatProactiveActionCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/chat/proactives/:id', function() {
-
-    it('should route to chatProactiveAction.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'chatProactiveActionCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/chat/proactives', function() {
-
-    it('should route to chatProactiveAction.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'chatProactiveActionCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/chat/proactives/:id', function() {
-
-    it('should route to chatProactiveAction.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'chatProactiveActionCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/chat/proactives/:id', function() {
-
-    it('should route to chatProactiveAction.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'chatProactiveActionCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/chat/proactives/:id', function() {
-
-    it('should route to chatProactiveAction.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'chatProactiveActionCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0x1d4c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x1d4c[0];var proxyquire=require(_0x1d4c[2])[_0x1d4c[1]]();var chatProactiveActionCtrlStub={index:_0x1d4c[3],show:_0x1d4c[4],create:_0x1d4c[5],update:_0x1d4c[6],destroy:_0x1d4c[7]};var routerStub={get:sinon[_0x1d4c[8]](),put:sinon[_0x1d4c[8]](),patch:sinon[_0x1d4c[8]](),post:sinon[_0x1d4c[8]](),delete:sinon[_0x1d4c[8]]()};var chatProactiveActionIndex=proxyquire(_0x1d4c[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x63\x68\x61\x74\x5F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":chatProactiveActionCtrlStub});describe(_0x1d4c[10],function(){it(_0x1d4c[11],function(){expect(chatProactiveActionIndex)[_0x1d4c[13]][_0x1d4c[12]](routerStub)});describe(_0x1d4c[14],function(){it(_0x1d4c[15],function(){expect(routerStub[_0x1d4c[21]][_0x1d4c[20]](_0x1d4c[19],_0x1d4c[3]))[_0x1d4c[13]][_0x1d4c[18]][_0x1d4c[17]][_0x1d4c[16]]})});describe(_0x1d4c[22],function(){it(_0x1d4c[23],function(){expect(routerStub[_0x1d4c[21]][_0x1d4c[20]](_0x1d4c[24],_0x1d4c[4]))[_0x1d4c[13]][_0x1d4c[18]][_0x1d4c[17]][_0x1d4c[16]]})});describe(_0x1d4c[25],function(){it(_0x1d4c[26],function(){expect(routerStub[_0x1d4c[27]][_0x1d4c[20]](_0x1d4c[19],_0x1d4c[5]))[_0x1d4c[13]][_0x1d4c[18]][_0x1d4c[17]][_0x1d4c[16]]})});describe(_0x1d4c[28],function(){it(_0x1d4c[29],function(){expect(routerStub[_0x1d4c[30]][_0x1d4c[20]](_0x1d4c[24],_0x1d4c[6]))[_0x1d4c[13]][_0x1d4c[18]][_0x1d4c[17]][_0x1d4c[16]]})});describe(_0x1d4c[31],function(){it(_0x1d4c[29],function(){expect(routerStub[_0x1d4c[32]][_0x1d4c[20]](_0x1d4c[24],_0x1d4c[6]))[_0x1d4c[13]][_0x1d4c[18]][_0x1d4c[17]][_0x1d4c[16]]})});describe(_0x1d4c[33],function(){it(_0x1d4c[34],function(){expect(routerStub[_0x1d4c[35]][_0x1d4c[20]](_0x1d4c[24],_0x1d4c[7]))[_0x1d4c[13]][_0x1d4c[18]][_0x1d4c[17]][_0x1d4c[16]]})})})
\ No newline at end of file
index e7c8ffd..5df18d1 100644 (file)
@@ -1,200 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Util = require('../../config/util');
-
-var ChatQueue = require('../../models').ChatQueue;
-var User = require('../../models').User;
-var UserHasChatQueue = require('../../models').UserHasChatQueue;
-
-// Get list of mailQueues
-exports.index = function(req, res) {
-  return ChatQueue
-    .scope('default')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get list of my chat_rooms
-exports.me = function(req, res, next) {
-  UserHasChatQueue
-    .findAll({
-      where: {
-        UserId: req.user.id
-      }
-    })
-    .then(function(userHasChatQueues) {
-      return res.status(200).send(userHasChatQueues);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single chat_queue
-exports.show = function(req, res) {
-  ChatQueue
-    .findById(req.params.id)
-    .then(function(chat_queue) {
-      if (!chat_queue) {
-        return res.sendStatus(404);
-      }
-      return res.send(chat_queue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single queue
-exports.showAgents = function(req, res) {
-  return ChatQueue
-    .findById(req.params.id)
-    .then(function(queue) {
-      if (!queue) {
-        return res.sendStatus(404);
-      }
-      return queue
-        .getUsers({
-          where: {
-            role: 'agent'
-          },
-          attributes: ['id', 'name', 'fullname', 'email']
-        });
-    })
-    .then(function(agents) {
-      return res.status(200).send(agents);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new chat_queue in the DB.
-exports.create = function(req, res) {
-  return ChatQueue
-    .create(req.body)
-    .then(function(chat_queue) {
-      return res.status(201).send(chat_queue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing chat_queue in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return ChatQueue
-    .findById(req.params.id)
-    .then(function(chat_queue) {
-      if (!chat_queue) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(chat_queue, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(chat_queue);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Add agents to chat queues
-exports.addAgents = function(req, res, next) {
-
-  return ChatQueue
-    .findById(req.params.id)
-    .then(function(chatQueue) {
-      if (!chatQueue) {
-        return res.sendStatus(404);
-      }
-      return chatQueue
-        .addUsers(req.body.agents, {
-          penalty: req.body.penalty,
-          queue: chatQueue.name
-        }, {
-          individualHooks: true
-        });
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.removeAgents = function(req, res, next) {
-  return ChatQueue
-    .findById(req.params.id)
-    .then(function(chatQueue) {
-      if (!chatQueue) {
-        return res.sendStatus(404);
-      }
-      return chatQueue
-        .removeUsers(req.query.agents, {
-          individualHooks: true
-        });
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a chat_queue from the DB.
-exports.destroy = function(req, res) {
-  ChatQueue
-    .findById(req.params.id)
-    .then(function(chat_queue) {
-      if (!chat_queue) {
-        return res.sendStatus(404);
-      }
-      chat_queue.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
-  return ChatQueue
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x821b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x64\x65\x66\x61\x75\x6C\x74","\x73\x63\x6F\x70\x65","\x6D\x65","\x69\x64","\x75\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x55\x73\x65\x72\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72\x73","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0x821b[0];var _=require(_0x821b[1]);var Util=require(_0x821b[2]);var ChatQueue=require(_0x821b[4])[_0x821b[3]];var User=require(_0x821b[4])[_0x821b[5]];var UserHasChatQueue=require(_0x821b[4])[_0x821b[6]];exports[_0x821b[7]]=function(_0xc422x6,_0xc422x7){return ChatQueue[_0x821b[16]](_0x821b[15])[_0x821b[14]](Util[_0x821b[13]](_0xc422x6[_0x821b[12]]))[_0x821b[11]](function(_0xc422x9){_0xc422x7[_0x821b[10]](200)[_0x821b[9]](_0xc422x9)})[_0x821b[8]](function(_0xc422x8){return handleError(_0xc422x7,_0xc422x8)})};exports[_0x821b[17]]=function(_0xc422x6,_0xc422x7,_0xc422xa){UserHasChatQueue[_0x821b[20]]({where:{UserId:_0xc422x6[_0x821b[19]][_0x821b[18]]}})[_0x821b[11]](function(_0xc422xb){return _0xc422x7[_0x821b[10]](200)[_0x821b[9]](_0xc422xb)})[_0x821b[8]](function(_0xc422x8){return handleError(_0xc422x7,_0xc422x8)})};exports[_0x821b[21]]=function(_0xc422x6,_0xc422x7){ChatQueue[_0x821b[24]](_0xc422x6[_0x821b[23]][_0x821b[18]])[_0x821b[11]](function(_0xc422xc){if(!_0xc422xc){return _0xc422x7[_0x821b[22]](404)};return _0xc422x7[_0x821b[9]](_0xc422xc)})[_0x821b[8]](function(_0xc422x8){return handleError(_0xc422x7,_0xc422x8)})};exports[_0x821b[25]]=function(_0xc422x6,_0xc422x7){return ChatQueue[_0x821b[24]](_0xc422x6[_0x821b[23]][_0x821b[18]])[_0x821b[11]](function(_0xc422xe){if(!_0xc422xe){return _0xc422x7[_0x821b[22]](404)};return _0xc422xe[_0x821b[30]]({where:{role:_0x821b[26]},attributes:[_0x821b[18],_0x821b[27],_0x821b[28],_0x821b[29]]})})[_0x821b[11]](function(_0xc422xd){return _0xc422x7[_0x821b[10]](200)[_0x821b[9]](_0xc422xd)})[_0x821b[8]](function(_0xc422x8){return handleError(_0xc422x7,_0xc422x8)})};exports[_0x821b[31]]=function(_0xc422x6,_0xc422x7){return ChatQueue[_0x821b[31]](_0xc422x6[_0x821b[32]])[_0x821b[11]](function(_0xc422xc){return _0xc422x7[_0x821b[10]](201)[_0x821b[9]](_0xc422xc)})[_0x821b[8]](function(_0xc422x8){return handleError(_0xc422x7,_0xc422x8)})};exports[_0x821b[33]]=function(_0xc422x6,_0xc422x7){if(_0xc422x6[_0x821b[32]][_0x821b[18]]){delete _0xc422x6[_0x821b[32]][_0x821b[18]]};return ChatQueue[_0x821b[24]](_0xc422x6[_0x821b[23]][_0x821b[18]])[_0x821b[11]](function(_0xc422xc){if(!_0xc422xc){return _0xc422x7[_0x821b[22]](404)};var _0xc422xf=_[_0x821b[34]](_0xc422xc,_0xc422x6[_0x821b[32]]);_0xc422xf[_0x821b[35]]()[_0x821b[11]](function(){return _0xc422x7[_0x821b[10]](200)[_0x821b[9]](_0xc422xc)})[_0x821b[8]](function(_0xc422x8){return handleError(_0xc422x7,_0xc422x8)})})[_0x821b[8]](function(_0xc422x8){return handleError(_0xc422x7,_0xc422x8)})};exports[_0x821b[36]]=function(_0xc422x6,_0xc422x7,_0xc422xa){return ChatQueue[_0x821b[24]](_0xc422x6[_0x821b[23]][_0x821b[18]])[_0x821b[11]](function(_0xc422x10){if(!_0xc422x10){return _0xc422x7[_0x821b[22]](404)};return _0xc422x10[_0x821b[39]](_0xc422x6[_0x821b[32]][_0x821b[37]],{penalty:_0xc422x6[_0x821b[32]][_0x821b[38]],queue:_0xc422x10[_0x821b[27]]},{individualHooks:true})})[_0x821b[11]](function(){return _0xc422x7[_0x821b[22]](200)})[_0x821b[8]](function(_0xc422x8){return handleError(_0xc422x7,_0xc422x8)})};exports[_0x821b[40]]=function(_0xc422x6,_0xc422x7,_0xc422xa){return ChatQueue[_0x821b[24]](_0xc422x6[_0x821b[23]][_0x821b[18]])[_0x821b[11]](function(_0xc422x10){if(!_0xc422x10){return _0xc422x7[_0x821b[22]](404)};return _0xc422x10[_0x821b[41]](_0xc422x6[_0x821b[12]][_0x821b[37]],{individualHooks:true})})[_0x821b[11]](function(){return _0xc422x7[_0x821b[22]](200)})[_0x821b[8]](function(_0xc422x8){return handleError(_0xc422x7,_0xc422x8)})};exports[_0x821b[42]]=function(_0xc422x6,_0xc422x7){ChatQueue[_0x821b[24]](_0xc422x6[_0x821b[23]][_0x821b[18]])[_0x821b[11]](function(_0xc422xc){if(!_0xc422xc){return _0xc422x7[_0x821b[22]](404)};_0xc422xc[_0x821b[42]]()[_0x821b[11]](function(){return _0xc422x7[_0x821b[22]](204)})[_0x821b[8]](function(_0xc422x8){return handleError(_0xc422x7,_0xc422x8)})})[_0x821b[8]](function(_0xc422x8){return handleError(_0xc422x7,_0xc422x8)})};exports[_0x821b[43]]=function(_0xc422x6,_0xc422x7){return ChatQueue[_0x821b[42]]({where:{id:_0xc422x6[_0x821b[12]][_0x821b[44]]},individualHooks:true})[_0x821b[11]](function(){return _0xc422x7[_0x821b[22]](204)})[_0x821b[8]](function(_0xc422x8){return handleError(_0xc422x7,_0xc422x8)})};function handleError(_0xc422x7,_0xc422x8){return _0xc422x7[_0x821b[10]](500)[_0x821b[9]](_0xc422x8)}
\ No newline at end of file
index 2e7f5d4..8252805 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var chatQueue = require('../../models').ChatQueue;
-
-exports.register = function (socket) {
-  chatQueue.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  chatQueue.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('chat_queue:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('chat_queue:remove', doc);
-}
+var _0x562d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x562d[0];var chatQueue=require(_0x562d[2])[_0x562d[1]];exports[_0x562d[3]]=function(_0xdc1bx2){chatQueue[_0x562d[4]](function(_0xdc1bx3){onSave(_0xdc1bx2,_0xdc1bx3)});chatQueue[_0x562d[5]](function(_0xdc1bx3){onRemove(_0xdc1bx2,_0xdc1bx3)})};function onSave(_0xdc1bx2,_0xdc1bx3,_0xdc1bx5){_0xdc1bx2[_0x562d[7]](_0x562d[6],_0xdc1bx3)}function onRemove(_0xdc1bx2,_0xdc1bx3,_0xdc1bx5){_0xdc1bx2[_0x562d[7]](_0x562d[8],_0xdc1bx3)}
\ No newline at end of file
index d4cc855..8af1ba5 100644 (file)
@@ -1,21 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./chat_queue.controller');
-var auth = require('../../auth/auth.service');
-var license = require('../../config/license/license.service');
-var router = express.Router();
-
-router.get('/', license.isValidDate(), license.hasChat(), controller.index);
-router.get('/me', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.me);
-router.get('/:id/agents', auth.isAuthenticated(), license.hasChat(), controller.showAgents);
-router.get('/:id', license.isValidDate(), license.hasChat(), controller.show);
-router.post('/', license.isValidDate(), license.hasChat(), controller.create);
-router.post('/:id/agents', license.isValidDate(), license.hasChat(), controller.addAgents);
-router.put('/:id', license.isValidDate(), license.hasChat(), controller.update);
-router.delete('/:id/agents', license.isValidDate(), license.hasChat(), controller.removeAgents);
-router.patch('/:id', license.isValidDate(), license.hasChat(), controller.update);
-router.delete('/', license.isValidDate(), license.hasChat(), controller.bulkDestroy);
-router.delete('/:id', license.isValidDate(), license.hasChat(), controller.destroy);
-
-module.exports = router;
+var _0xbf58=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x68\x61\x73\x43\x68\x61\x74","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x6D\x65","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x6D\x65","\x2F\x3A\x69\x64\x2F\x61\x67\x65\x6E\x74\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x64\x65\x6C\x65\x74\x65","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xbf58[0];var express=require(_0xbf58[1]);var controller=require(_0xbf58[2]);var auth=require(_0xbf58[3]);var license=require(_0xbf58[4]);var router=express.Router();router[_0xbf58[9]](_0xbf58[5],license[_0xbf58[6]](),license[_0xbf58[7]](),controller[_0xbf58[8]]);router[_0xbf58[9]](_0xbf58[10],license[_0xbf58[6]](),license[_0xbf58[7]](),auth[_0xbf58[11]](),controller[_0xbf58[12]]);router[_0xbf58[9]](_0xbf58[13],auth[_0xbf58[11]](),license[_0xbf58[7]](),controller[_0xbf58[14]]);router[_0xbf58[9]](_0xbf58[15],license[_0xbf58[6]](),license[_0xbf58[7]](),controller[_0xbf58[16]]);router[_0xbf58[18]](_0xbf58[5],license[_0xbf58[6]](),license[_0xbf58[7]](),controller[_0xbf58[17]]);router[_0xbf58[18]](_0xbf58[13],license[_0xbf58[6]](),license[_0xbf58[7]](),controller[_0xbf58[19]]);router[_0xbf58[21]](_0xbf58[15],license[_0xbf58[6]](),license[_0xbf58[7]](),controller[_0xbf58[20]]);router[_0xbf58[23]](_0xbf58[13],license[_0xbf58[6]](),license[_0xbf58[7]](),controller[_0xbf58[22]]);router[_0xbf58[24]](_0xbf58[15],license[_0xbf58[6]](),license[_0xbf58[7]](),controller[_0xbf58[20]]);router[_0xbf58[23]](_0xbf58[5],license[_0xbf58[6]](),license[_0xbf58[7]](),controller[_0xbf58[25]]);router[_0xbf58[23]](_0xbf58[15],license[_0xbf58[6]](),license[_0xbf58[7]](),controller[_0xbf58[26]]);module[_0xbf58[27]]=router
\ No newline at end of file
index efdde6b..be46178 100644 (file)
@@ -1,499 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var md5 = require('md5');
-var moment = require('moment');
-var csv = require('to-csv');
-
-var Util = require('../../config/util');
-
-var User = require('../../models').User;
-var ChatRoom = require('../../models').ChatRoom;
-var ChatMessage = require('../../models').ChatMessage;
-var ChatVisitor = require('../../models').ChatVisitor;
-var UserHasChatRoom = require('../../models').UserHasChatRoom;
-
-
-// Get list of chat_rooms
-exports.index = function(req, res, next) {
-  return ChatRoom
-    .findAndCountAll(_.merge(Util.getQuery(req.query), {
-      include: [{
-        model: User,
-        attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
-      }, {
-        model: ChatMessage
-      }, {
-        model: ChatVisitor
-      }]
-    }))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Get list of my chat_rooms
-exports.me = function(req, res) {
-  return User
-    .findById(req.user.id)
-    .then(function(user) {
-      return user
-        .getChatRooms({
-          include: [{
-            model: ChatVisitor,
-            attributes: ['id', 'fullname', 'email']
-          }, {
-            model: User,
-            attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
-          }]
-        });
-    })
-    .then(function(chatRooms) {
-      if (!chatRooms) {
-        return res.sendStatus(404);
-      }
-      return res.send(chatRooms);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single chatRoom
-exports.show = function(req, res) {
-  return ChatRoom
-    .findById(req.params.id, {
-      include: [{
-        model: ChatMessage,
-        include: [{
-          model: ChatVisitor,
-          attributes: ['id', 'email', 'fullname']
-        }, {
-          model: User,
-          attributes: ['id', 'email', 'name', 'fullname', 'userpic']
-        }]
-      }, {
-        model: User,
-        attributes: ['id', 'email', 'name', 'fullname']
-      }, {
-        model: ChatVisitor
-      }]
-    })
-    .then(function(chatRoom) {
-      if (!chatRoom) {
-        return res.sendStatus(404);
-      }
-      return res.send(chatRoom);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single chatRoom by users
-exports.getRoomByUsers = function(req, res, next) {
-
-  var _chatRoom;
-
-  return ChatRoom
-    .findOrCreate({
-      where: {
-        token: md5(JSON.stringify(req.query.users.sort())).toString('base64')
-      },
-      defaults: {
-        type: 'internal',
-        token: md5(JSON.stringify(req.query.users.sort())).toString('base64'),
-        status: 'OPEN'
-      },
-      include: [{
-        model: ChatMessage,
-        include: [{
-          model: ChatVisitor,
-          attributes: ['id', 'email', 'fullname']
-        }, {
-          model: User,
-          attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
-        }]
-      }, {
-        model: User,
-        attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
-      }]
-    })
-    .spread(function(chatRoom, created) {
-      _chatRoom = chatRoom;
-      // _chatRoom.dataValues.ChatMessages = [];
-      if (created) {
-        return _chatRoom
-          .setUsers(req.query.users);
-      } else {
-        return;
-      }
-    })
-    .then(function() {
-      return _chatRoom
-        .getUsers();
-    })
-    .then(function(users) {
-      return res.status(200).send(_.merge(_chatRoom.dataValues, {
-        Users: users
-      }));
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.export = function(req, res, next) {
-  console.log('export');
-  return ChatRoom
-    .findById(req.params.id, {
-      include: [{
-        model: ChatMessage,
-        include: [{
-          model: ChatVisitor,
-          attributes: ['id', 'fullname']
-        }, {
-          model: User,
-          attributes: ['id', 'fullname']
-        }]
-      }]
-    })
-    .then(function(chatRoom) {
-      var chatMessageForCSV = [];
-      chatRoom.ChatMessages.forEach(function(chatMessage) {
-        chatMessageForCSV.push({
-          name: chatMessage.User ? chatMessage.User.fullname : chatMessage.ChatVisitor.fullname,
-          text: chatMessage.body.replace(/(\r\n|\n|\r)/gm, " "),
-          date: chatMessage.createdAt
-        });
-      });
-      return res.type('text/csv').status(200).send(csv(chatMessageForCSV));
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single chatRoom
-exports.getRoomByType = function(req, res) {
-  User
-    .findById(req.user.id)
-    .then(function(user) {
-      user
-        .getChatRooms({
-          where: {
-            type: req.params.type
-          },
-          include: [{
-            model: ChatVisitor,
-            attributes: ['id', 'fullname', 'email']
-          }]
-        })
-        .then(function(chatRooms) {
-          if (!chatRooms) {
-            return res.sendStatus(404);
-          }
-          return res.send(chatRooms);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single chatRoom
-exports.getRoomGroups = function(req, res) {
-  User
-    .findById(req.user.id)
-    .then(function(user) {
-      user
-        .getChatRooms({
-          include: [{
-            model: ChatVisitor,
-            attributes: ['id', 'fullname', 'email']
-          }, {
-            model: User,
-            attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
-          }]
-        })
-        .then(function(chatRooms) {
-          if (!chatRooms) {
-            return res.sendStatus(404);
-          }
-          return res.send(chatRooms);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new chatRoom in the DB.
-exports.create = function(req, res) {
-  // if (req.body.to) {
-  //
-  //   var token;
-  //   var participants = {
-  //     users: {
-  //       ids: []
-  //     },
-  //     visitor: {}
-  //   };
-  //
-  //   switch (req.body.type) {
-  //     case 'internal':
-  //
-  //       if (!req.body.to.isArray) {
-  //         req.body.to = [parseInt(req.body.to, 10)];
-  //       }
-  //
-  //       participants.users.ids = req.body.to;
-  //
-  //       if (!_.contains(req.body.to, req.user.id)) {
-  //         participants.users.ids.push(req.user.id);
-  //       }
-  //
-  //       participants.users.ids.sort();
-  //
-  //       token = md5(JSON.stringify(participants)).toString(
-  //         'base64');
-  //
-  //       participants.users.fullnames = [];
-  //
-  //       User
-  //         .findAll({
-  //           where: {
-  //             id: {
-  //               $in: req.body.to
-  //             }
-  //           },
-  //           attributes: ['id', 'fullname']
-  //         })
-  //         .then(function(users) {
-  //
-  //           _.sortBy(users, 'id').forEach(function(item, index) {
-  //             participants.users.fullnames.push(item.fullname);
-  //           });
-  //
-  //           ChatRoom
-  //             .findOrCreate({
-  //               where: {
-  //                 token: token
-  //               },
-  //               defaults: _.merge({
-  //                 token: token,
-  //                 participants: JSON.stringify(participants)
-  //               }, req.body),
-  //               include: [{
-  //                 model: ChatMessage
-  //               }]
-  //             })
-  //             .spread(function(chatRoom, created) {
-  //
-  //               if (created) {
-  //                 chatRoom
-  //                   .setUsers(participants.users.ids)
-  //                   .then(function() {
-  //                     return res.status(201).send(chatRoom);
-  //                   })
-  //                   .catch(function(err) {
-  //                     return handleError(res, err);
-  //                   });
-  //               } else {
-  //                 return res.status(201).send(chatRoom);
-  //               }
-  //
-  //             })
-  //             .catch(function(err) {
-  //               return handleError(res, err);
-  //             });
-  //         })
-  //         .catch(function(err) {
-  //           return handleError(res, err);
-  //         });
-  //
-  //       break;
-  //     case 'external':
-  //
-  //       participants.visitor.id = req.body.to;
-  //       participants.users.ids.push(req.user.id);
-  //       participants.users.ids.sort();
-  //
-  //       token = md5(JSON.stringify(participants)).toString('base64');
-  //
-  //       participants.users.fullnames = [req.user.fullname];
-  //
-  //       ChatVisitor
-  //         .findById(req.body.to, {
-  //           attributes: ['id', 'fullname', 'email', 'referer']
-  //         })
-  //         .then(function(chatVisitor) {
-  //           participants.visitor.fullname = chatVisitor.fullname;
-  //           participants.visitor.referer = chatVisitor.referer;
-  //           participants.visitor.email = chatVisitor.email;
-  //
-  //           ChatRoom
-  //             .findOrCreate({
-  //               where: {
-  //                 token: token
-  //               },
-  //               defaults: _.merge({
-  //                 token: token,
-  //                 participants: JSON.stringify(participants)
-  //               }, req.body),
-  //               include: [{
-  //                 model: ChatMessage
-  //               }, {
-  //                 model: ChatVisitor
-  //               }, {
-  //                 model: User,
-  //               }]
-  //             })
-  //             .spread(function(chatRoom, created) {
-  //               if (created) {
-  //
-  //                 chatRoom
-  //                   .setUsers(participants.users.ids, {
-  //                     individualHooks: true
-  //                   })
-  //                   .then(function() {
-  //                     chatRoom
-  //                       .setChatVisitor(participants.visitor.id)
-  //                       .then(function() {
-  //                         return res.status(201).send(chatRoom);
-  //                       })
-  //                       .catch(function(err) {
-  //                         return handleError(res, err);
-  //                       });
-  //                   })
-  //                   .catch(function(err) {
-  //                     return handleError(res, err);
-  //                   });
-  //               } else {
-  //                 return res.status(201).send(chatRoom);
-  //               }
-  //
-  //             })
-  //             .catch(function(err) {
-  //               return handleError(res, err);
-  //             });
-  //         })
-  //         .catch(function(err) {
-  //           return handleError(res, err);
-  //         });
-  //
-  //       break;
-  //     default:
-  //   }
-  // } else {
-  //   return handleError(res, new Error('field "to" omitted'));
-  // }
-};
-
-// Updates an existing chatRoom in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  ChatRoom
-    .findById(req.params.id)
-    .then(function(chatRoom) {
-      if (!chatRoom) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(chatRoom, req.body);
-      updated
-        .save()
-        .then(function() {
-          return res.status(200).send(chatRoom);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing chatRoom in the DB.
-exports.updateUsers = function(req, res) {
-  var _chatRoom;
-
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return ChatRoom
-    .findById(req.params.id)
-    .then(function(chatRoom) {
-      if (!chatRoom || !req.body.users) {
-        return res.sendStatus(404);
-      }
-      return chatRoom;
-    })
-    .then(function(chatRoom) {
-      return chatRoom
-        .update({
-          token: md5(JSON.stringify(req.body.users.sort())).toString('base64')
-        });
-    })
-    .then(function(chatRoom) {
-      _chatRoom = chatRoom;
-      return chatRoom
-        .setUsers(req.body.users.sort(), {
-          individualHooks: true
-        });
-    })
-    .then(function() {
-      return _chatRoom
-        .getUsers();
-    })
-    .then(function(users) {
-      return res.status(200).send(_.merge(_chatRoom.dataValues, {
-        Users: users,
-        ChatMessages: []
-      }));
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a chatRoom from the DB.
-exports.destroy = function(req, res) {
-  ChatRoom
-    .findById(req.params.id)
-    .then(function(chatRoom) {
-      if (!chatRoom) {
-        return res.sendStatus(404);
-      }
-
-      chatRoom
-        .destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xb35a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x64\x35","\x6D\x6F\x6D\x65\x6E\x74","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x69\x6E\x64\x65\x78","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x69\x64","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x72\x6F\x6C\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6D\x65\x72\x67\x65","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x6D\x65","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x67\x65\x74\x43\x68\x61\x74\x52\x6F\x6F\x6D\x73","\x75\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x68\x6F\x77","\x70\x61\x72\x61\x6D\x73","\x75\x73\x65\x72\x70\x69\x63","\x67\x65\x74\x52\x6F\x6F\x6D\x42\x79\x55\x73\x65\x72\x73","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x67\x65\x74\x55\x73\x65\x72\x73","\x75\x73\x65\x72\x73","\x73\x65\x74\x55\x73\x65\x72\x73","\x73\x70\x72\x65\x61\x64","\x62\x61\x73\x65\x36\x34","\x73\x6F\x72\x74","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x4F\x50\x45\x4E","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74","\x20","\x72\x65\x70\x6C\x61\x63\x65","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x74\x65\x78\x74\x2F\x63\x73\x76","\x74\x79\x70\x65","\x67\x65\x74\x52\x6F\x6F\x6D\x42\x79\x54\x79\x70\x65","\x67\x65\x74\x52\x6F\x6F\x6D\x47\x72\x6F\x75\x70\x73","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65\x55\x73\x65\x72\x73","\x64\x65\x73\x74\x72\x6F\x79"];_0xb35a[0];var _=require(_0xb35a[1]);var md5=require(_0xb35a[2]);var moment=require(_0xb35a[3]);var csv=require(_0xb35a[4]);var Util=require(_0xb35a[5]);var User=require(_0xb35a[7])[_0xb35a[6]];var ChatRoom=require(_0xb35a[7])[_0xb35a[8]];var ChatMessage=require(_0xb35a[7])[_0xb35a[9]];var ChatVisitor=require(_0xb35a[7])[_0xb35a[10]];var UserHasChatRoom=require(_0xb35a[7])[_0xb35a[11]];exports[_0xb35a[12]]=function(_0xfcbbxb,_0xfcbbxc,_0xfcbbxd){return ChatRoom[_0xb35a[27]](_[_0xb35a[26]](Util[_0xb35a[19]](_0xfcbbxb[_0xb35a[18]]),{include:[{model:User,attributes:[_0xb35a[20],_0xb35a[21],_0xb35a[22],_0xb35a[23],_0xb35a[24],_0xb35a[25]]},{model:ChatMessage},{model:ChatVisitor}]}))[_0xb35a[17]](function(_0xfcbbxf){_0xfcbbxc[_0xb35a[16]](200)[_0xb35a[15]](_0xfcbbxf)})[_0xb35a[14]](function(_0xfcbbxe){console[_0xb35a[13]](_0xfcbbxe);return handleError(_0xfcbbxc,_0xfcbbxe)})};exports[_0xb35a[28]]=function(_0xfcbbxb,_0xfcbbxc){return User[_0xb35a[32]](_0xfcbbxb[_0xb35a[31]][_0xb35a[20]])[_0xb35a[17]](function(_0xfcbbx11){return _0xfcbbx11[_0xb35a[30]]({include:[{model:ChatVisitor,attributes:[_0xb35a[20],_0xb35a[22],_0xb35a[23]]},{model:User,attributes:[_0xb35a[20],_0xb35a[21],_0xb35a[22],_0xb35a[23],_0xb35a[24],_0xb35a[25]]}]})})[_0xb35a[17]](function(_0xfcbbx10){if(!_0xfcbbx10){return _0xfcbbxc[_0xb35a[29]](404)};return _0xfcbbxc[_0xb35a[15]](_0xfcbbx10)})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})};exports[_0xb35a[33]]=function(_0xfcbbxb,_0xfcbbxc){return ChatRoom[_0xb35a[32]](_0xfcbbxb[_0xb35a[34]][_0xb35a[20]],{include:[{model:ChatMessage,include:[{model:ChatVisitor,attributes:[_0xb35a[20],_0xb35a[23],_0xb35a[22]]},{model:User,attributes:[_0xb35a[20],_0xb35a[23],_0xb35a[21],_0xb35a[22],_0xb35a[35]]}]},{model:User,attributes:[_0xb35a[20],_0xb35a[23],_0xb35a[21],_0xb35a[22]]},{model:ChatVisitor}]})[_0xb35a[17]](function(_0xfcbbx12){if(!_0xfcbbx12){return _0xfcbbxc[_0xb35a[29]](404)};return _0xfcbbxc[_0xb35a[15]](_0xfcbbx12)})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})};exports[_0xb35a[36]]=function(_0xfcbbxb,_0xfcbbxc,_0xfcbbxd){var _0xfcbbx13;return ChatRoom[_0xb35a[46]]({where:{token:md5(JSON[_0xb35a[44]](_0xfcbbxb[_0xb35a[18]][_0xb35a[39]][_0xb35a[43]]())).toString(_0xb35a[42])},defaults:{type:_0xb35a[25],token:md5(JSON[_0xb35a[44]](_0xfcbbxb[_0xb35a[18]][_0xb35a[39]][_0xb35a[43]]())).toString(_0xb35a[42]),status:_0xb35a[45]},include:[{model:ChatMessage,include:[{model:ChatVisitor,attributes:[_0xb35a[20],_0xb35a[23],_0xb35a[22]]},{model:User,attributes:[_0xb35a[20],_0xb35a[21],_0xb35a[22],_0xb35a[23],_0xb35a[24],_0xb35a[25]]}]},{model:User,attributes:[_0xb35a[20],_0xb35a[21],_0xb35a[22],_0xb35a[23],_0xb35a[24],_0xb35a[25]]}]})[_0xb35a[41]](function(_0xfcbbx12,_0xfcbbx15){_0xfcbbx13=_0xfcbbx12;if(_0xfcbbx15){return _0xfcbbx13[_0xb35a[40]](_0xfcbbxb[_0xb35a[18]][_0xb35a[39]])}else {return}})[_0xb35a[17]](function(){return _0xfcbbx13[_0xb35a[38]]()})[_0xb35a[17]](function(_0xfcbbx14){return _0xfcbbxc[_0xb35a[16]](200)[_0xb35a[15]](_[_0xb35a[26]](_0xfcbbx13[_0xb35a[37]],{Users:_0xfcbbx14}))})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})};exports[_0xb35a[47]]=function(_0xfcbbxb,_0xfcbbxc,_0xfcbbxd){console[_0xb35a[13]](_0xb35a[47]);return ChatRoom[_0xb35a[32]](_0xfcbbxb[_0xb35a[34]][_0xb35a[20]],{include:[{model:ChatMessage,include:[{model:ChatVisitor,attributes:[_0xb35a[20],_0xb35a[22]]},{model:User,attributes:[_0xb35a[20],_0xb35a[22]]}]}]})[_0xb35a[17]](function(_0xfcbbx12){var _0xfcbbx16=[];_0xfcbbx12[_0xb35a[54]][_0xb35a[53]](function(_0xfcbbx17){_0xfcbbx16[_0xb35a[52]]({name:_0xfcbbx17[_0xb35a[6]]?_0xfcbbx17[_0xb35a[6]][_0xb35a[22]]:_0xfcbbx17[_0xb35a[10]][_0xb35a[22]],text:_0xfcbbx17[_0xb35a[50]][_0xb35a[49]](/(\r\n|\n|\r)/gm,_0xb35a[48]),date:_0xfcbbx17[_0xb35a[51]]})});return _0xfcbbxc[_0xb35a[56]](_0xb35a[55])[_0xb35a[16]](200)[_0xb35a[15]](csv(_0xfcbbx16))})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})};exports[_0xb35a[57]]=function(_0xfcbbxb,_0xfcbbxc){User[_0xb35a[32]](_0xfcbbxb[_0xb35a[31]][_0xb35a[20]])[_0xb35a[17]](function(_0xfcbbx11){_0xfcbbx11[_0xb35a[30]]({where:{type:_0xfcbbxb[_0xb35a[34]][_0xb35a[56]]},include:[{model:ChatVisitor,attributes:[_0xb35a[20],_0xb35a[22],_0xb35a[23]]}]})[_0xb35a[17]](function(_0xfcbbx10){if(!_0xfcbbx10){return _0xfcbbxc[_0xb35a[29]](404)};return _0xfcbbxc[_0xb35a[15]](_0xfcbbx10)})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})};exports[_0xb35a[58]]=function(_0xfcbbxb,_0xfcbbxc){User[_0xb35a[32]](_0xfcbbxb[_0xb35a[31]][_0xb35a[20]])[_0xb35a[17]](function(_0xfcbbx11){_0xfcbbx11[_0xb35a[30]]({include:[{model:ChatVisitor,attributes:[_0xb35a[20],_0xb35a[22],_0xb35a[23]]},{model:User,attributes:[_0xb35a[20],_0xb35a[21],_0xb35a[22],_0xb35a[23],_0xb35a[24],_0xb35a[25]]}]})[_0xb35a[17]](function(_0xfcbbx10){if(!_0xfcbbx10){return _0xfcbbxc[_0xb35a[29]](404)};return _0xfcbbxc[_0xb35a[15]](_0xfcbbx10)})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})};exports[_0xb35a[59]]=function(_0xfcbbxb,_0xfcbbxc){};exports[_0xb35a[60]]=function(_0xfcbbxb,_0xfcbbxc){if(_0xfcbbxb[_0xb35a[50]][_0xb35a[20]]){delete _0xfcbbxb[_0xb35a[50]][_0xb35a[20]]};ChatRoom[_0xb35a[32]](_0xfcbbxb[_0xb35a[34]][_0xb35a[20]])[_0xb35a[17]](function(_0xfcbbx12){if(!_0xfcbbx12){return _0xfcbbxc[_0xb35a[29]](404)};var _0xfcbbx18=_[_0xb35a[26]](_0xfcbbx12,_0xfcbbxb[_0xb35a[50]]);_0xfcbbx18[_0xb35a[61]]()[_0xb35a[17]](function(){return _0xfcbbxc[_0xb35a[16]](200)[_0xb35a[15]](_0xfcbbx12)})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})};exports[_0xb35a[62]]=function(_0xfcbbxb,_0xfcbbxc){var _0xfcbbx13;if(_0xfcbbxb[_0xb35a[50]][_0xb35a[20]]){delete _0xfcbbxb[_0xb35a[50]][_0xb35a[20]]};return ChatRoom[_0xb35a[32]](_0xfcbbxb[_0xb35a[34]][_0xb35a[20]])[_0xb35a[17]](function(_0xfcbbx12){if(!_0xfcbbx12||!_0xfcbbxb[_0xb35a[50]][_0xb35a[39]]){return _0xfcbbxc[_0xb35a[29]](404)};return _0xfcbbx12})[_0xb35a[17]](function(_0xfcbbx12){return _0xfcbbx12[_0xb35a[60]]({token:md5(JSON[_0xb35a[44]](_0xfcbbxb[_0xb35a[50]][_0xb35a[39]][_0xb35a[43]]())).toString(_0xb35a[42])})})[_0xb35a[17]](function(_0xfcbbx12){_0xfcbbx13=_0xfcbbx12;return _0xfcbbx12[_0xb35a[40]](_0xfcbbxb[_0xb35a[50]][_0xb35a[39]][_0xb35a[43]](),{individualHooks:true})})[_0xb35a[17]](function(){return _0xfcbbx13[_0xb35a[38]]()})[_0xb35a[17]](function(_0xfcbbx14){return _0xfcbbxc[_0xb35a[16]](200)[_0xb35a[15]](_[_0xb35a[26]](_0xfcbbx13[_0xb35a[37]],{Users:_0xfcbbx14,ChatMessages:[]}))})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})};exports[_0xb35a[63]]=function(_0xfcbbxb,_0xfcbbxc){ChatRoom[_0xb35a[32]](_0xfcbbxb[_0xb35a[34]][_0xb35a[20]])[_0xb35a[17]](function(_0xfcbbx12){if(!_0xfcbbx12){return _0xfcbbxc[_0xb35a[29]](404)};_0xfcbbx12[_0xb35a[63]]()[_0xb35a[17]](function(){return _0xfcbbxc[_0xb35a[29]](204)})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})})[_0xb35a[14]](function(_0xfcbbxe){return handleError(_0xfcbbxc,_0xfcbbxe)})};function handleError(_0xfcbbxc,_0xfcbbxe){return _0xfcbbxc[_0xb35a[16]](500)[_0xb35a[15]](_0xfcbbxe)}
\ No newline at end of file
index 2f75a98..e40a753 100644 (file)
@@ -1,30 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var User = require('../../models').User;
-var ChatRoom = require('../../models').ChatRoom;
-var ChatMessage = require('../../models').ChatMessage;
-var ChatVisitor = require('../../models').ChatVisitor;
-
-exports.register = function (socket) {
-  ChatRoom.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  ChatRoom.afterUpdate(function (doc) {
-    onSave(socket, doc);
-  });
-  ChatRoom.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('chat_room:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('chat_room:remove', doc);
-}
+var _0x8ac6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8ac6[0];var User=require(_0x8ac6[2])[_0x8ac6[1]];var ChatRoom=require(_0x8ac6[2])[_0x8ac6[3]];var ChatMessage=require(_0x8ac6[2])[_0x8ac6[4]];var ChatVisitor=require(_0x8ac6[2])[_0x8ac6[5]];exports[_0x8ac6[6]]=function(_0x8ebex5){ChatRoom[_0x8ac6[7]](function(_0x8ebex6){onSave(_0x8ebex5,_0x8ebex6)});ChatRoom[_0x8ac6[8]](function(_0x8ebex6){onSave(_0x8ebex5,_0x8ebex6)});ChatRoom[_0x8ac6[9]](function(_0x8ebex6){onRemove(_0x8ebex5,_0x8ebex6)})};function onSave(_0x8ebex5,_0x8ebex6,_0x8ebex8){_0x8ebex5[_0x8ac6[11]](_0x8ac6[10],_0x8ebex6)}function onRemove(_0x8ebex5,_0x8ebex6,_0x8ebex8){_0x8ebex5[_0x8ac6[11]](_0x8ac6[12],_0x8ebex6)}
\ No newline at end of file
index 731381f..d332eee 100644 (file)
@@ -1,22 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./chat_room.controller');
-var auth = require('../../auth/auth.service');
-var license = require('../../config/license/license.service');
-var router = express.Router();
-
-router.get('/', license.isValidDate(), license.hasChat(), controller.index);
-router.get('/me', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.me);
-router.get('/users', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.getRoomByUsers);
-router.get('/groups', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.getRoomGroups);
-router.get('/type/:type', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.getRoomByType);
-router.get('/:id', license.isValidDate(), license.hasChat(), controller.show);
-router.get('/:id/export', license.isValidDate(), license.hasChat(), controller.export);
-router.post('/', license.isValidDate(), license.hasChat(), auth.isAuthenticated(), controller.create);
-router.put('/:id', license.isValidDate(), license.hasChat(), controller.update);
-router.put('/:id/users', license.isValidDate(), license.hasChat(), controller.updateUsers);
-router.patch('/:id', license.isValidDate(), license.hasChat(), controller.update);
-router.delete('/:id', license.isValidDate(), license.hasChat(), controller.destroy);
-
-module.exports = router;
+var _0xfc26=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x68\x61\x73\x43\x68\x61\x74","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x6D\x65","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x6D\x65","\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x52\x6F\x6F\x6D\x42\x79\x55\x73\x65\x72\x73","\x2F\x67\x72\x6F\x75\x70\x73","\x67\x65\x74\x52\x6F\x6F\x6D\x47\x72\x6F\x75\x70\x73","\x2F\x74\x79\x70\x65\x2F\x3A\x74\x79\x70\x65","\x67\x65\x74\x52\x6F\x6F\x6D\x42\x79\x54\x79\x70\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x65\x78\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x75\x70\x64\x61\x74\x65\x55\x73\x65\x72\x73","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfc26[0];var express=require(_0xfc26[1]);var controller=require(_0xfc26[2]);var auth=require(_0xfc26[3]);var license=require(_0xfc26[4]);var router=express.Router();router[_0xfc26[9]](_0xfc26[5],license[_0xfc26[6]](),license[_0xfc26[7]](),controller[_0xfc26[8]]);router[_0xfc26[9]](_0xfc26[10],license[_0xfc26[6]](),license[_0xfc26[7]](),auth[_0xfc26[11]](),controller[_0xfc26[12]]);router[_0xfc26[9]](_0xfc26[13],license[_0xfc26[6]](),license[_0xfc26[7]](),auth[_0xfc26[11]](),controller[_0xfc26[14]]);router[_0xfc26[9]](_0xfc26[15],license[_0xfc26[6]](),license[_0xfc26[7]](),auth[_0xfc26[11]](),controller[_0xfc26[16]]);router[_0xfc26[9]](_0xfc26[17],license[_0xfc26[6]](),license[_0xfc26[7]](),auth[_0xfc26[11]](),controller[_0xfc26[18]]);router[_0xfc26[9]](_0xfc26[19],license[_0xfc26[6]](),license[_0xfc26[7]](),controller[_0xfc26[20]]);router[_0xfc26[9]](_0xfc26[21],license[_0xfc26[6]](),license[_0xfc26[7]](),controller[_0xfc26[22]]);router[_0xfc26[24]](_0xfc26[5],license[_0xfc26[6]](),license[_0xfc26[7]](),auth[_0xfc26[11]](),controller[_0xfc26[23]]);router[_0xfc26[26]](_0xfc26[19],license[_0xfc26[6]](),license[_0xfc26[7]](),controller[_0xfc26[25]]);router[_0xfc26[26]](_0xfc26[27],license[_0xfc26[6]](),license[_0xfc26[7]](),controller[_0xfc26[28]]);router[_0xfc26[29]](_0xfc26[19],license[_0xfc26[6]](),license[_0xfc26[7]](),controller[_0xfc26[25]]);router[_0xfc26[31]](_0xfc26[19],license[_0xfc26[6]](),license[_0xfc26[7]](),controller[_0xfc26[30]]);module[_0xfc26[32]]=router
\ No newline at end of file
index 38e5d14..fb229fc 100644 (file)
@@ -1,104 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Util = require('../../config/util');
-
-var ChatVisitor = require('../../models').ChatVisitor;
-var ChatEnquiry = require('../../models').ChatEnquiry;
-var ChatWebsite = require('../../models').ChatWebsite;
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return ChatVisitor
-    .findAndCountAll(_.merge(Util.getQuery(req.query), {
-      include: [{
-        model: ChatWebsite
-      }]
-    }))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      console.error(err);
-      return handleError(res, err);
-    });
-};
-
-// Get a single chatVisitor
-exports.show = function(req, res) {
-  return ChatVisitor
-    .findById(req.params.id, {
-      include: [{
-        model: ChatEnquiry
-      }, {
-        model: ChatWebsite
-      }]
-    })
-    .then(function(chatVisitor) {
-      if (!chatVisitor) {
-        return res.sendStatus(404);
-      }
-      return res.send(chatVisitor);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new chatVisitor in the DB.
-exports.create = function(req, res) {
-  return ChatVisitor
-    .create(req.body)
-    .then(function(chatVisitor) {
-      return res.status(201).send(chatVisitor);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing chatVisitor in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return ChatVisitor
-    .findById(req.params.id)
-    .then(function(chatVisitor) {
-      if (!chatVisitor) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(chatVisitor, req.body);
-      return updated
-        .save();
-    })
-    .then(function(chatVisitor) {
-      return res.status(200).send(chatVisitor);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a chatVisitor from the DB.
-exports.destroy = function(req, res) {
-  return ChatVisitor
-    .findById(req.params.id)
-    .then(function(chatVisitor) {
-      if (!chatVisitor) {
-        return res.sendStatus(404);
-      }
-      return chatVisitor
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x2e4f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x69\x6E\x64\x65\x78","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x6D\x65\x72\x67\x65","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x2e4f[0];var _=require(_0x2e4f[1]);var Util=require(_0x2e4f[2]);var ChatVisitor=require(_0x2e4f[4])[_0x2e4f[3]];var ChatEnquiry=require(_0x2e4f[4])[_0x2e4f[5]];var ChatWebsite=require(_0x2e4f[4])[_0x2e4f[6]];exports[_0x2e4f[7]]=function(_0xa2b7x6,_0xa2b7x7,_0xa2b7x8){return ChatVisitor[_0x2e4f[16]](_[_0x2e4f[15]](Util[_0x2e4f[14]](_0xa2b7x6[_0x2e4f[13]]),{include:[{model:ChatWebsite}]}))[_0x2e4f[12]](function(_0xa2b7xa){_0xa2b7x7[_0x2e4f[11]](200)[_0x2e4f[10]](_0xa2b7xa)})[_0x2e4f[9]](function(_0xa2b7x9){console[_0x2e4f[8]](_0xa2b7x9);return handleError(_0xa2b7x7,_0xa2b7x9)})};exports[_0x2e4f[17]]=function(_0xa2b7x6,_0xa2b7x7){return ChatVisitor[_0x2e4f[21]](_0xa2b7x6[_0x2e4f[20]][_0x2e4f[19]],{include:[{model:ChatEnquiry},{model:ChatWebsite}]})[_0x2e4f[12]](function(_0xa2b7xb){if(!_0xa2b7xb){return _0xa2b7x7[_0x2e4f[18]](404)};return _0xa2b7x7[_0x2e4f[10]](_0xa2b7xb)})[_0x2e4f[9]](function(_0xa2b7x9){return handleError(_0xa2b7x7,_0xa2b7x9)})};exports[_0x2e4f[22]]=function(_0xa2b7x6,_0xa2b7x7){return ChatVisitor[_0x2e4f[22]](_0xa2b7x6[_0x2e4f[23]])[_0x2e4f[12]](function(_0xa2b7xb){return _0xa2b7x7[_0x2e4f[11]](201)[_0x2e4f[10]](_0xa2b7xb)})[_0x2e4f[9]](function(_0xa2b7x9){return handleError(_0xa2b7x7,_0xa2b7x9)})};exports[_0x2e4f[24]]=function(_0xa2b7x6,_0xa2b7x7){if(_0xa2b7x6[_0x2e4f[23]][_0x2e4f[19]]){delete _0xa2b7x6[_0x2e4f[23]][_0x2e4f[19]]};return ChatVisitor[_0x2e4f[21]](_0xa2b7x6[_0x2e4f[20]][_0x2e4f[19]])[_0x2e4f[12]](function(_0xa2b7xb){if(!_0xa2b7xb){return _0xa2b7x7[_0x2e4f[18]](404)};var _0xa2b7xc=_[_0x2e4f[15]](_0xa2b7xb,_0xa2b7x6[_0x2e4f[23]]);return _0xa2b7xc[_0x2e4f[25]]()})[_0x2e4f[12]](function(_0xa2b7xb){return _0xa2b7x7[_0x2e4f[11]](200)[_0x2e4f[10]](_0xa2b7xb)})[_0x2e4f[9]](function(_0xa2b7x9){return handleError(_0xa2b7x7,_0xa2b7x9)})};exports[_0x2e4f[26]]=function(_0xa2b7x6,_0xa2b7x7){return ChatVisitor[_0x2e4f[21]](_0xa2b7x6[_0x2e4f[20]][_0x2e4f[19]])[_0x2e4f[12]](function(_0xa2b7xb){if(!_0xa2b7xb){return _0xa2b7x7[_0x2e4f[18]](404)};return _0xa2b7xb[_0x2e4f[26]]()})[_0x2e4f[12]](function(){return _0xa2b7x7[_0x2e4f[18]](204)})[_0x2e4f[9]](function(_0xa2b7x9){return handleError(_0xa2b7x7,_0xa2b7x9)})};function handleError(_0xa2b7x7,_0xa2b7x9){return _0xa2b7x7[_0x2e4f[11]](500)[_0x2e4f[10]](_0xa2b7x9)}
\ No newline at end of file
index a283bfc..4a24be2 100644 (file)
@@ -1,27 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var chat_visitor = require('../../models').ChatVisitor;
-
-exports.register = function(socket) {
-  chat_visitor.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  chat_visitor.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  chat_visitor.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('chat_visitor:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('chat_visitor:remove', doc);
-}
+var _0xb364=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x3A\x72\x65\x6D\x6F\x76\x65"];_0xb364[0];var chat_visitor=require(_0xb364[2])[_0xb364[1]];exports[_0xb364[3]]=function(_0x8fa7x2){chat_visitor[_0xb364[4]](function(_0x8fa7x3){onSave(_0x8fa7x2,_0x8fa7x3)});chat_visitor[_0xb364[5]](function(_0x8fa7x3){onSave(_0x8fa7x2,_0x8fa7x3)});chat_visitor[_0xb364[6]](function(_0x8fa7x3){onRemove(_0x8fa7x2,_0x8fa7x3)})};function onSave(_0x8fa7x2,_0x8fa7x3,_0x8fa7x5){_0x8fa7x2[_0xb364[8]](_0xb364[7],_0x8fa7x3)}function onRemove(_0x8fa7x2,_0x8fa7x3,_0x8fa7x5){_0x8fa7x2[_0xb364[8]](_0xb364[9],_0x8fa7x3)}
\ No newline at end of file
index c58a917..0ed4d35 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./chat_visitor.controller');
-var license = require('../../config/license/license.service');
-var router = express.Router();
-
-router.get('/', license.isValidDate(), license.hasChat(), controller.index);
-router.get('/:id', license.isValidDate(), license.hasChat(), controller.show);
-router.post('/', license.isValidDate(), license.hasChat(), controller.create);
-router.put('/:id', license.isValidDate(), license.hasChat(), controller.update);
-router.patch('/:id', license.isValidDate(), license.hasChat(), controller.update);
-router.delete('/:id', license.isValidDate(), license.hasChat(), controller.destroy);
-
-module.exports = router;
+var _0x3bef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x68\x61\x73\x43\x68\x61\x74","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3bef[0];var express=require(_0x3bef[1]);var controller=require(_0x3bef[2]);var license=require(_0x3bef[3]);var router=express.Router();router[_0x3bef[8]](_0x3bef[4],license[_0x3bef[5]](),license[_0x3bef[6]](),controller[_0x3bef[7]]);router[_0x3bef[8]](_0x3bef[9],license[_0x3bef[5]](),license[_0x3bef[6]](),controller[_0x3bef[10]]);router[_0x3bef[12]](_0x3bef[4],license[_0x3bef[5]](),license[_0x3bef[6]](),controller[_0x3bef[11]]);router[_0x3bef[14]](_0x3bef[9],license[_0x3bef[5]](),license[_0x3bef[6]](),controller[_0x3bef[13]]);router[_0x3bef[15]](_0x3bef[9],license[_0x3bef[5]](),license[_0x3bef[6]](),controller[_0x3bef[13]]);router[_0x3bef[17]](_0x3bef[9],license[_0x3bef[5]](),license[_0x3bef[6]](),controller[_0x3bef[16]]);module[_0x3bef[18]]=router
\ No newline at end of file
index 084d688..e721291 100644 (file)
@@ -1,383 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var async = require('async');
-var Mustache = require('mustache');
-var Util = require('../../config/util');
-
-var sequelize = require('../../models').sequelize;
-var ChatWebsite = require('../../models').ChatWebsite;
-var ChatQueue = require('../../models').ChatQueue;
-var User = require('../../models').User;
-var ChatApplication = require('../../models').ChatApplication;
-var ChatWebsitesField = require('../../models').ChatWebsitesField;
-var ChatProactiveAction = require('../../models').ChatProactiveAction;
-var snippet = require('../../components/xchatty').snippet;
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return ChatWebsite
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Get a single chat_website
-exports.show = function(req, res) {
-  return ChatWebsite
-    .findById(req.params.id)
-    .then(function(chat_website) {
-      if (!chat_website) {
-        return res.sendStatus(404);
-      }
-      return res.send(chat_website);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single mailAccount
-exports.showApplications = function(req, res, next) {
-  return ChatWebsite
-    // .scope('default')
-    .findById(req.params.id)
-    .then(function(chatWebsite) {
-      if (!chatWebsite) {
-        return res.sendStatus(404);
-      }
-      return chatWebsite
-        .getChatApplications(_.merge(Util.getQuery(req.query), {
-          include: [{
-            model: ChatQueue,
-            attributes: ['id', 'name']
-          }, {
-            model: User,
-            attributes: ['id', 'name']
-          }]
-        }));
-    })
-    .then(function(chatApplications) {
-      return res.send({
-        count: chatApplications.length,
-        rows: chatApplications
-      });
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-exports.showProactiveActions = function(req, res, next) {
-  return ChatWebsite
-    .findById(req.params.id)
-    .then(function(chatWebsite) {
-      if (!chatWebsite) {
-        return res.sendStatus(404);
-      }
-      return chatWebsite
-        .getChatProactiveActions(Util.getQuery(req.query));
-    })
-    .then(function(chatProactiveActions) {
-      return res.send({
-        count: chatProactiveActions.length,
-        rows: chatProactiveActions
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a snippet for chat_website
-exports.getSnippetCode = function(req, res) {
-  return ChatWebsite
-    .findById(req.params.id)
-    .then(function(chat_website) {
-      var configSnippet = {
-        remote: chat_website.remote,
-        websiteId: req.params.id
-      };
-      var html = Mustache.render(snippet, configSnippet);
-      return res.status(200).send({
-        html: html
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new chat_website in the DB.
-exports.create = function(req, res) {
-  return ChatWebsite
-    .create(req.body)
-    .then(function(chat_website) {
-      return res.status(201).send(chat_website);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing chat_website in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return ChatWebsite
-    .findById(req.params.id)
-    .then(function(chat_website) {
-      if (!chat_website) {
-        return res.sendStatus(404);
-      }
-
-      return chat_website
-        .update(req.body)
-        .then(function(chat_website) {
-          return res.status(200).send(chat_website);
-        })
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing mailAccount in the DB.
-exports.updateApplications = function(req, res) {
-
-  var priority = 0;
-  var apps = req.body;
-
-  apps.forEach(function(app) {
-    delete app.id;
-    delete app.createdAt;
-    delete app.updatedAt;
-
-    app.priority = ++priority;
-  });
-
-  return sequelize.transaction(function(t) {
-    return ChatApplication
-      .destroy({
-        where: {
-          ChatWebsiteId: req.params.id
-        },
-        individualHooks: true,
-        transaction: t
-      }).then(function() {
-        return ChatApplication
-          .bulkCreate(apps, {
-            individualHooks: true,
-            transaction: t
-          });
-      });
-  }).then(function(chatApplications) {
-    return res.status(200).send({
-      count: chatApplications.length,
-      rows: chatApplications
-    });
-  }).catch(function(err) {
-    return handleError(res, err);
-  });
-};
-
-// Deletes a chat_website from the DB.
-exports.destroy = function(req, res) {
-  return ChatWebsite
-    .findById(req.params.id)
-    .then(function(chat_website) {
-      if (!chat_website) {
-        return res.sendStatus(404);
-      }
-      return chat_website
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
-  return ChatWebsite
-    .destroy({
-      where: {
-        id: req.query.websites
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a agent from the DB.
-exports.bulkDestroyApplications = function(req, res) {
-  return ChatApplication
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a mailAccount from the DB.
-exports.destroyApplication = function(req, res, next) {
-  return ChatApplication
-    .findById(req.params.appId)
-    .then(function(mailApplication) {
-      if (!mailApplication) {
-        return res.sendStatus(404);
-      }
-
-      return mailApplication
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.getForms = function(req, res) {
-  return ChatWebsitesField
-    .scope({
-      method: [req.params.type, req.params.id]
-    })
-    .findAll()
-    .then(function(data) {
-      return res.status(200).json(data);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-}
-
-exports.updateForms = function(req, res, next) {
-  return ChatWebsitesField
-    .destroy({
-      where: req.params.type === 'online' ? {
-        OnlineId: req.params.id
-      } : {
-        OfflineId: req.params.id
-      }
-    })
-    .then(function() {
-      _.forEach(req.body, function(value) {
-        if (req.params.type === 'online') {
-          value.OnlineId = req.params.id;
-        } else if (req.params.type === 'offline') {
-          value.OfflineId = req.params.id;
-        }
-      });
-      return ChatWebsitesField.bulkCreate(req.body);
-    })
-    .then(function(fields) {
-      res.status(201).json(fields);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-}
-
-exports.bulkDestroyProactiveActions = function(req, res) {
-  return ChatProactiveAction
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a mailAccount from the DB.
-exports.destroyProactiveAction = function(req, res, next) {
-  return ChatProactiveAction
-    .findById(req.params.pactionId)
-    .then(function(chatProactiveAction) {
-      if (!chatProactiveAction) {
-        return res.sendStatus(404);
-      }
-      return chatProactiveAction.destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.createProactiveAction = function(req, res, next) {
-  return ChatWebsite
-    .findById(req.params.id)
-    .then(function(chatWebsite) {
-      if (!chatWebsite) {
-        return res.sendStatus(404);
-      }
-      req.body.ChatWebsiteId = chatWebsite.id;
-      return ChatProactiveAction.create(req.body);
-    })
-    .then(function(chatProactiveAction) {
-      return res.status(201).send(chatProactiveAction);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.updateProactiveAction = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return ChatProactiveAction
-    .findById(req.params.pactionId)
-    .then(function(chatProactiveAction) {
-      if (!chatProactiveAction) {
-        return res.sendStatus(404);
-      }
-
-      return chatProactiveAction
-        .update(req.body)
-        .then(function(chatProactiveAction) {
-          console.log(chatProactiveAction);
-          return res.status(200).send(chatProactiveAction);
-        })
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x43e9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x73\x79\x6E\x63","\x6D\x75\x73\x74\x61\x63\x68\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x55\x73\x65\x72","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x73\x6E\x69\x70\x70\x65\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x78\x63\x68\x61\x74\x74\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x68\x6F\x77\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6C\x6F\x67","\x6C\x65\x6E\x67\x74\x68","\x6E\x61\x6D\x65","\x6D\x65\x72\x67\x65","\x67\x65\x74\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x53\x6E\x69\x70\x70\x65\x74\x43\x6F\x64\x65","\x72\x65\x6D\x6F\x74\x65","\x72\x65\x6E\x64\x65\x72","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x75\x70\x64\x61\x74\x65\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x70\x72\x69\x6F\x72\x69\x74\x79","\x66\x6F\x72\x45\x61\x63\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x77\x65\x62\x73\x69\x74\x65\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x69\x64\x73","\x64\x65\x73\x74\x72\x6F\x79\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x70\x70\x49\x64","\x67\x65\x74\x46\x6F\x72\x6D\x73","\x6A\x73\x6F\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x74\x79\x70\x65","\x73\x63\x6F\x70\x65","\x75\x70\x64\x61\x74\x65\x46\x6F\x72\x6D\x73","\x6F\x6E\x6C\x69\x6E\x65","\x4F\x6E\x6C\x69\x6E\x65\x49\x64","\x6F\x66\x66\x6C\x69\x6E\x65","\x4F\x66\x66\x6C\x69\x6E\x65\x49\x64","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x64\x65\x73\x74\x72\x6F\x79\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x70\x61\x63\x74\x69\x6F\x6E\x49\x64","\x63\x72\x65\x61\x74\x65\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x49\x64","\x75\x70\x64\x61\x74\x65\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E"];_0x43e9[0];var _=require(_0x43e9[1]);var util=require(_0x43e9[2]);var async=require(_0x43e9[3]);var Mustache=require(_0x43e9[4]);var Util=require(_0x43e9[5]);var sequelize=require(_0x43e9[7])[_0x43e9[6]];var ChatWebsite=require(_0x43e9[7])[_0x43e9[8]];var ChatQueue=require(_0x43e9[7])[_0x43e9[9]];var User=require(_0x43e9[7])[_0x43e9[10]];var ChatApplication=require(_0x43e9[7])[_0x43e9[11]];var ChatWebsitesField=require(_0x43e9[7])[_0x43e9[12]];var ChatProactiveAction=require(_0x43e9[7])[_0x43e9[13]];var snippet=require(_0x43e9[15])[_0x43e9[14]];exports[_0x43e9[16]]=function(_0x47b7xe,_0x47b7xf,_0x47b7x10){return ChatWebsite[_0x43e9[23]](Util[_0x43e9[22]](_0x47b7xe[_0x43e9[21]]))[_0x43e9[20]](function(_0x47b7x12){_0x47b7xf[_0x43e9[19]](200)[_0x43e9[18]](_0x47b7x12)})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[24]]=function(_0x47b7xe,_0x47b7xf){return ChatWebsite[_0x43e9[28]](_0x47b7xe[_0x43e9[27]][_0x43e9[26]])[_0x43e9[20]](function(_0x47b7x13){if(!_0x47b7x13){return _0x47b7xf[_0x43e9[25]](404)};return _0x47b7xf[_0x43e9[18]](_0x47b7x13)})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[29]]=function(_0x47b7xe,_0x47b7xf,_0x47b7x10){return ChatWebsite[_0x43e9[28]](_0x47b7xe[_0x43e9[27]][_0x43e9[26]])[_0x43e9[20]](function(_0x47b7x15){if(!_0x47b7x15){return _0x47b7xf[_0x43e9[25]](404)};return _0x47b7x15[_0x43e9[34]](_[_0x43e9[33]](Util[_0x43e9[22]](_0x47b7xe[_0x43e9[21]]),{include:[{model:ChatQueue,attributes:[_0x43e9[26],_0x43e9[32]]},{model:User,attributes:[_0x43e9[26],_0x43e9[32]]}]}))})[_0x43e9[20]](function(_0x47b7x14){return _0x47b7xf[_0x43e9[18]]({count:_0x47b7x14[_0x43e9[31]],rows:_0x47b7x14})})[_0x43e9[17]](function(_0x47b7x11){console[_0x43e9[30]](_0x47b7x11);return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[35]]=function(_0x47b7xe,_0x47b7xf,_0x47b7x10){return ChatWebsite[_0x43e9[28]](_0x47b7xe[_0x43e9[27]][_0x43e9[26]])[_0x43e9[20]](function(_0x47b7x15){if(!_0x47b7x15){return _0x47b7xf[_0x43e9[25]](404)};return _0x47b7x15[_0x43e9[36]](Util[_0x43e9[22]](_0x47b7xe[_0x43e9[21]]))})[_0x43e9[20]](function(_0x47b7x16){return _0x47b7xf[_0x43e9[18]]({count:_0x47b7x16[_0x43e9[31]],rows:_0x47b7x16})})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[37]]=function(_0x47b7xe,_0x47b7xf){return ChatWebsite[_0x43e9[28]](_0x47b7xe[_0x43e9[27]][_0x43e9[26]])[_0x43e9[20]](function(_0x47b7x13){var _0x47b7x17={remote:_0x47b7x13[_0x43e9[38]],websiteId:_0x47b7xe[_0x43e9[27]][_0x43e9[26]]};var _0x47b7x18=Mustache[_0x43e9[39]](snippet,_0x47b7x17);return _0x47b7xf[_0x43e9[19]](200)[_0x43e9[18]]({html:_0x47b7x18})})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[40]]=function(_0x47b7xe,_0x47b7xf){return ChatWebsite[_0x43e9[40]](_0x47b7xe[_0x43e9[41]])[_0x43e9[20]](function(_0x47b7x13){return _0x47b7xf[_0x43e9[19]](201)[_0x43e9[18]](_0x47b7x13)})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[42]]=function(_0x47b7xe,_0x47b7xf){if(_0x47b7xe[_0x43e9[41]][_0x43e9[26]]){delete _0x47b7xe[_0x43e9[41]][_0x43e9[26]]};return ChatWebsite[_0x43e9[28]](_0x47b7xe[_0x43e9[27]][_0x43e9[26]])[_0x43e9[20]](function(_0x47b7x13){if(!_0x47b7x13){return _0x47b7xf[_0x43e9[25]](404)};return _0x47b7x13[_0x43e9[42]](_0x47b7xe[_0x43e9[41]])[_0x43e9[20]](function(_0x47b7x13){return _0x47b7xf[_0x43e9[19]](200)[_0x43e9[18]](_0x47b7x13)})})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[43]]=function(_0x47b7xe,_0x47b7xf){var _0x47b7x19=0;var _0x47b7x1a=_0x47b7xe[_0x43e9[41]];_0x47b7x1a[_0x43e9[47]](function(_0x47b7x1b){delete _0x47b7x1b[_0x43e9[26]];delete _0x47b7x1b[_0x43e9[44]];delete _0x47b7x1b[_0x43e9[45]];_0x47b7x1b[_0x43e9[46]]= ++_0x47b7x19});return sequelize[_0x43e9[50]](function(_0x47b7x1c){return ChatApplication[_0x43e9[49]]({where:{ChatWebsiteId:_0x47b7xe[_0x43e9[27]][_0x43e9[26]]},individualHooks:true,transaction:_0x47b7x1c})[_0x43e9[20]](function(){return ChatApplication[_0x43e9[48]](_0x47b7x1a,{individualHooks:true,transaction:_0x47b7x1c})})})[_0x43e9[20]](function(_0x47b7x14){return _0x47b7xf[_0x43e9[19]](200)[_0x43e9[18]]({count:_0x47b7x14[_0x43e9[31]],rows:_0x47b7x14})})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[49]]=function(_0x47b7xe,_0x47b7xf){return ChatWebsite[_0x43e9[28]](_0x47b7xe[_0x43e9[27]][_0x43e9[26]])[_0x43e9[20]](function(_0x47b7x13){if(!_0x47b7x13){return _0x47b7xf[_0x43e9[25]](404)};return _0x47b7x13[_0x43e9[49]]()})[_0x43e9[20]](function(){return _0x47b7xf[_0x43e9[25]](204)})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[51]]=function(_0x47b7xe,_0x47b7xf){return ChatWebsite[_0x43e9[49]]({where:{id:_0x47b7xe[_0x43e9[21]][_0x43e9[52]]},individualHooks:true})[_0x43e9[20]](function(){return _0x47b7xf[_0x43e9[25]](204)})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[53]]=function(_0x47b7xe,_0x47b7xf){return ChatApplication[_0x43e9[49]]({where:{id:_0x47b7xe[_0x43e9[21]][_0x43e9[54]]},individualHooks:true})[_0x43e9[20]](function(){return _0x47b7xf[_0x43e9[25]](204)})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[55]]=function(_0x47b7xe,_0x47b7xf,_0x47b7x10){return ChatApplication[_0x43e9[28]](_0x47b7xe[_0x43e9[27]][_0x43e9[56]])[_0x43e9[20]](function(_0x47b7x1d){if(!_0x47b7x1d){return _0x47b7xf[_0x43e9[25]](404)};return _0x47b7x1d[_0x43e9[49]]()})[_0x43e9[20]](function(){return _0x47b7xf[_0x43e9[25]](204)})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[57]]=function(_0x47b7xe,_0x47b7xf){return ChatWebsitesField[_0x43e9[61]]({method:[_0x47b7xe[_0x43e9[27]][_0x43e9[60]],_0x47b7xe[_0x43e9[27]][_0x43e9[26]]]})[_0x43e9[59]]()[_0x43e9[20]](function(_0x47b7x1e){return _0x47b7xf[_0x43e9[19]](200)[_0x43e9[58]](_0x47b7x1e)})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[62]]=function(_0x47b7xe,_0x47b7xf,_0x47b7x10){return ChatWebsitesField[_0x43e9[49]]({where:_0x47b7xe[_0x43e9[27]][_0x43e9[60]]===_0x43e9[63]?{OnlineId:_0x47b7xe[_0x43e9[27]][_0x43e9[26]]}:{OfflineId:_0x47b7xe[_0x43e9[27]][_0x43e9[26]]}})[_0x43e9[20]](function(){_[_0x43e9[47]](_0x47b7xe[_0x43e9[41]],function(_0x47b7x20){if(_0x47b7xe[_0x43e9[27]][_0x43e9[60]]===_0x43e9[63]){_0x47b7x20[_0x43e9[64]]=_0x47b7xe[_0x43e9[27]][_0x43e9[26]]}else {if(_0x47b7xe[_0x43e9[27]][_0x43e9[60]]===_0x43e9[65]){_0x47b7x20[_0x43e9[66]]=_0x47b7xe[_0x43e9[27]][_0x43e9[26]]}}});return ChatWebsitesField[_0x43e9[48]](_0x47b7xe[_0x43e9[41]])})[_0x43e9[20]](function(_0x47b7x1f){_0x47b7xf[_0x43e9[19]](201)[_0x43e9[58]](_0x47b7x1f)})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[67]]=function(_0x47b7xe,_0x47b7xf){return ChatProactiveAction[_0x43e9[49]]({where:{id:_0x47b7xe[_0x43e9[21]][_0x43e9[54]]},individualHooks:true})[_0x43e9[20]](function(){return _0x47b7xf[_0x43e9[25]](204)})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[68]]=function(_0x47b7xe,_0x47b7xf,_0x47b7x10){return ChatProactiveAction[_0x43e9[28]](_0x47b7xe[_0x43e9[27]][_0x43e9[69]])[_0x43e9[20]](function(_0x47b7x21){if(!_0x47b7x21){return _0x47b7xf[_0x43e9[25]](404)};return _0x47b7x21[_0x43e9[49]]()})[_0x43e9[20]](function(){return _0x47b7xf[_0x43e9[25]](204)})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[70]]=function(_0x47b7xe,_0x47b7xf,_0x47b7x10){return ChatWebsite[_0x43e9[28]](_0x47b7xe[_0x43e9[27]][_0x43e9[26]])[_0x43e9[20]](function(_0x47b7x15){if(!_0x47b7x15){return _0x47b7xf[_0x43e9[25]](404)};_0x47b7xe[_0x43e9[41]][_0x43e9[71]]=_0x47b7x15[_0x43e9[26]];return ChatProactiveAction[_0x43e9[40]](_0x47b7xe[_0x43e9[41]])})[_0x43e9[20]](function(_0x47b7x21){return _0x47b7xf[_0x43e9[19]](201)[_0x43e9[18]](_0x47b7x21)})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};exports[_0x43e9[72]]=function(_0x47b7xe,_0x47b7xf){if(_0x47b7xe[_0x43e9[41]][_0x43e9[26]]){delete _0x47b7xe[_0x43e9[41]][_0x43e9[26]]};return ChatProactiveAction[_0x43e9[28]](_0x47b7xe[_0x43e9[27]][_0x43e9[69]])[_0x43e9[20]](function(_0x47b7x21){if(!_0x47b7x21){return _0x47b7xf[_0x43e9[25]](404)};return _0x47b7x21[_0x43e9[42]](_0x47b7xe[_0x43e9[41]])[_0x43e9[20]](function(_0x47b7x21){console[_0x43e9[30]](_0x47b7x21);return _0x47b7xf[_0x43e9[19]](200)[_0x43e9[18]](_0x47b7x21)})})[_0x43e9[17]](function(_0x47b7x11){return handleError(_0x47b7xf,_0x47b7x11)})};function handleError(_0x47b7xf,_0x47b7x11){return _0x47b7xf[_0x43e9[19]](500)[_0x43e9[18]](_0x47b7x11)}
\ No newline at end of file
index 49f62d6..c5dcb15 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var chat_website = require('../../models').ChatWebsite;
-
-exports.register = function(socket) {
-  chat_website.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  chat_website.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('chat_website:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('chat_website:remove', doc);
-}
+var _0x3858=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3858[0];var chat_website=require(_0x3858[2])[_0x3858[1]];exports[_0x3858[3]]=function(_0xc0f2x2){chat_website[_0x3858[4]](function(_0xc0f2x3){onSave(_0xc0f2x2,_0xc0f2x3)});chat_website[_0x3858[5]](function(_0xc0f2x3){onRemove(_0xc0f2x2,_0xc0f2x3)})};function onSave(_0xc0f2x2,_0xc0f2x3,_0xc0f2x5){_0xc0f2x2[_0x3858[7]](_0x3858[6],_0xc0f2x3)}function onRemove(_0xc0f2x2,_0xc0f2x3,_0xc0f2x5){_0xc0f2x2[_0x3858[7]](_0x3858[8],_0xc0f2x3)}
\ No newline at end of file
index b7d89c0..8856a3a 100644 (file)
@@ -1,29 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./chat_website.controller');
-var auth = require('../../auth/auth.service');
-var license = require('../../config/license/license.service');
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/applications', auth.isAuthenticated(), controller.showApplications);
-router.get('/:id/proactive', auth.isAuthenticated(), controller.showProactiveActions);
-router.get('/:id/fields/:type', auth.isAuthenticated(), controller.getForms);
-router.get('/:id/snippet', auth.isAuthenticated(), controller.getSnippetCode);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/:id/proactive', auth.isAuthenticated(), controller.createProactiveAction);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.put('/:id/applications', auth.isAuthenticated(), controller.updateApplications);
-router.put('/:id/proactive/:pactionId', auth.isAuthenticated(), controller.updateProactiveAction);
-router.put('/:id/fields/:type', auth.isAuthenticated(), controller.updateForms);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-router.delete('/:id/applications', auth.isAuthenticated(), controller.bulkDestroyApplications);
-router.delete('/:id/proactive', auth.isAuthenticated(), controller.bulkDestroyProactiveActions);
-router.delete('/:id/applications/:appId', auth.isAuthenticated(), controller.destroyApplication);
-router.delete('/:id/proactive/:pactionId', auth.isAuthenticated(), controller.destroyProactiveAction);
-
-module.exports = router;
+var _0xb55d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65","\x73\x68\x6F\x77\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x74\x79\x70\x65","\x67\x65\x74\x46\x6F\x72\x6D\x73","\x2F\x3A\x69\x64\x2F\x73\x6E\x69\x70\x70\x65\x74","\x67\x65\x74\x53\x6E\x69\x70\x70\x65\x74\x43\x6F\x64\x65","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x75\x70\x64\x61\x74\x65\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x2F\x3A\x70\x61\x63\x74\x69\x6F\x6E\x49\x64","\x75\x70\x64\x61\x74\x65\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65\x46\x6F\x72\x6D\x73","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x61\x70\x70\x49\x64","\x64\x65\x73\x74\x72\x6F\x79\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x64\x65\x73\x74\x72\x6F\x79\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73"];_0xb55d[0];var express=require(_0xb55d[1]);var controller=require(_0xb55d[2]);var auth=require(_0xb55d[3]);var license=require(_0xb55d[4]);var router=express.Router();router[_0xb55d[8]](_0xb55d[5],auth[_0xb55d[6]](),controller[_0xb55d[7]]);router[_0xb55d[8]](_0xb55d[9],auth[_0xb55d[6]](),controller[_0xb55d[10]]);router[_0xb55d[8]](_0xb55d[11],auth[_0xb55d[6]](),controller[_0xb55d[12]]);router[_0xb55d[8]](_0xb55d[13],auth[_0xb55d[6]](),controller[_0xb55d[14]]);router[_0xb55d[8]](_0xb55d[15],auth[_0xb55d[6]](),controller[_0xb55d[16]]);router[_0xb55d[8]](_0xb55d[17],auth[_0xb55d[6]](),controller[_0xb55d[18]]);router[_0xb55d[20]](_0xb55d[5],auth[_0xb55d[6]](),controller[_0xb55d[19]]);router[_0xb55d[20]](_0xb55d[13],auth[_0xb55d[6]](),controller[_0xb55d[21]]);router[_0xb55d[23]](_0xb55d[9],auth[_0xb55d[6]](),controller[_0xb55d[22]]);router[_0xb55d[23]](_0xb55d[11],auth[_0xb55d[6]](),controller[_0xb55d[24]]);router[_0xb55d[23]](_0xb55d[25],auth[_0xb55d[6]](),controller[_0xb55d[26]]);router[_0xb55d[23]](_0xb55d[15],auth[_0xb55d[6]](),controller[_0xb55d[27]]);router[_0xb55d[28]](_0xb55d[9],auth[_0xb55d[6]](),controller[_0xb55d[22]]);router[_0xb55d[30]](_0xb55d[5],auth[_0xb55d[6]](),controller[_0xb55d[29]]);router[_0xb55d[30]](_0xb55d[9],auth[_0xb55d[6]](),controller[_0xb55d[31]]);router[_0xb55d[30]](_0xb55d[11],auth[_0xb55d[6]](),controller[_0xb55d[32]]);router[_0xb55d[30]](_0xb55d[13],auth[_0xb55d[6]](),controller[_0xb55d[33]]);router[_0xb55d[30]](_0xb55d[34],auth[_0xb55d[6]](),controller[_0xb55d[35]]);router[_0xb55d[30]](_0xb55d[25],auth[_0xb55d[6]](),controller[_0xb55d[36]]);module[_0xb55d[37]]=router
\ No newline at end of file
index 78c9c47..179b565 100644 (file)
@@ -1,112 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/chat/websites/fields              ->  index
- * POST    /api/chat/websites/fields              ->  create
- * GET     /api/chat/websites/fields/:id          ->  show
- * PUT     /api/chat/websites/fields/:id          ->  update
- * DELETE  /api/chat/websites/fields/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-var Util = require('../../config/util');
-
-var ChatWebsitesField = require('../../models').ChatWebsitesField;
-
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function responseWithoutResult(res, statusCode) {
-  statusCode = statusCode || 204;
-  return function() {
-    res.sendStatus(statusCode);
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) { 
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of ChatWebsitesFields
-exports.index = function(req, res) {
-  return ChatWebsitesField.findAll(Util.getQuery(req.query))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single ChatWebsitesField from the DB
-exports.show = function(req, res) {
-  return ChatWebsitesField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new ChatWebsitesField in the DB
-exports.create = function(req, res) {
-  return ChatWebsitesField.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing ChatWebsitesField in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return ChatWebsitesField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a ChatWebsitesField from the DB
-exports.destroy = function(req, res) {
-  return ChatWebsitesField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
+var _0xe291=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65"];_0xe291[0];var _=require(_0xe291[1]);var Util=require(_0xe291[2]);var ChatWebsitesField=require(_0xe291[4])[_0xe291[3]];function handleError(_0x5cbcx5,_0x5cbcx6){_0x5cbcx6=_0x5cbcx6||500;return function(_0x5cbcx7){_0x5cbcx5[_0xe291[6]](_0x5cbcx6)[_0xe291[5]](_0x5cbcx7)}}function responseWithResult(_0x5cbcx5,_0x5cbcx6){_0x5cbcx6=_0x5cbcx6||200;return function(_0x5cbcx9){if(_0x5cbcx9){_0x5cbcx5[_0xe291[6]](_0x5cbcx6)[_0xe291[7]](_0x5cbcx9)}}}function responseWithoutResult(_0x5cbcx5,_0x5cbcx6){_0x5cbcx6=_0x5cbcx6||204;return function(){_0x5cbcx5[_0xe291[8]](_0x5cbcx6)}}function handleEntityNotFound(_0x5cbcx5){return function(_0x5cbcx9){if(!_0x5cbcx9){_0x5cbcx5[_0xe291[6]](404)[_0xe291[9]]();return null};return _0x5cbcx9}}function saveUpdates(_0x5cbcxd){return function(_0x5cbcx9){return _0x5cbcx9[_0xe291[11]](_0x5cbcxd)[_0xe291[10]](function(_0x5cbcxe){return _0x5cbcxe})}}function removeEntity(_0x5cbcx5){return function(_0x5cbcx9){if(_0x5cbcx9){return _0x5cbcx9[_0xe291[12]]()[_0xe291[10]](function(){_0x5cbcx5[_0xe291[6]](204)[_0xe291[9]]()})}}}exports[_0xe291[13]]=function(_0x5cbcx10,_0x5cbcx5){return ChatWebsitesField[_0xe291[17]](Util[_0xe291[16]](_0x5cbcx10[_0xe291[15]]))[_0xe291[10]](responseWithResult(_0x5cbcx5))[_0xe291[14]](handleError(_0x5cbcx5))};exports[_0xe291[18]]=function(_0x5cbcx10,_0x5cbcx5){return ChatWebsitesField[_0xe291[21]](_0x5cbcx10[_0xe291[20]][_0xe291[19]])[_0xe291[10]](handleEntityNotFound(_0x5cbcx5))[_0xe291[10]](responseWithResult(_0x5cbcx5))[_0xe291[14]](handleError(_0x5cbcx5))};exports[_0xe291[22]]=function(_0x5cbcx10,_0x5cbcx5){return ChatWebsitesField[_0xe291[22]](_0x5cbcx10[_0xe291[23]])[_0xe291[10]](responseWithResult(_0x5cbcx5,201))[_0xe291[14]](handleError(_0x5cbcx5))};exports[_0xe291[24]]=function(_0x5cbcx10,_0x5cbcx5){if(_0x5cbcx10[_0xe291[23]][_0xe291[19]]){delete _0x5cbcx10[_0xe291[23]][_0xe291[19]]};return ChatWebsitesField[_0xe291[21]](_0x5cbcx10[_0xe291[20]][_0xe291[19]])[_0xe291[10]](handleEntityNotFound(_0x5cbcx5))[_0xe291[10]](saveUpdates(_0x5cbcx10[_0xe291[23]]))[_0xe291[10]](responseWithResult(_0x5cbcx5))[_0xe291[14]](handleError(_0x5cbcx5))};exports[_0xe291[12]]=function(_0x5cbcx10,_0x5cbcx5){return ChatWebsitesField[_0xe291[21]](_0x5cbcx10[_0xe291[20]][_0xe291[19]])[_0xe291[10]](handleEntityNotFound(_0x5cbcx5))[_0xe291[10]](removeEntity(_0x5cbcx5))[_0xe291[14]](handleError(_0x5cbcx5))}
\ No newline at end of file
index e6f0f21..f421621 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ChatWebsitesField = require('../../models').ChatWebsitesField;
-
-exports.register = function(socket) {
-  ChatWebsitesField.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  ChatWebsitesField.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('chat_websites_field:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('chat_websites_field:remove', doc);
-}
+var _0x6857=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73\x5F\x66\x69\x65\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73\x5F\x66\x69\x65\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x6857[0];var ChatWebsitesField=require(_0x6857[2])[_0x6857[1]];exports[_0x6857[3]]=function(_0xa224x2){ChatWebsitesField[_0x6857[4]](function(_0xa224x3){onSave(_0xa224x2,_0xa224x3)});ChatWebsitesField[_0x6857[5]](function(_0xa224x3){onRemove(_0xa224x2,_0xa224x3)})};function onSave(_0xa224x2,_0xa224x3,_0xa224x5){_0xa224x2[_0x6857[7]](_0x6857[6],_0xa224x3)}function onRemove(_0xa224x2,_0xa224x3,_0xa224x5){_0xa224x2[_0x6857[7]](_0x6857[8],_0xa224x3)}
\ No newline at end of file
index dccf6d7..e0a58a3 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./chat_websites_field.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x10d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x10d0[0];var express=require(_0x10d0[1]);var auth=require(_0x10d0[2]);var controller=require(_0x10d0[3]);var router=express.Router();router[_0x10d0[7]](_0x10d0[4],auth[_0x10d0[5]](),controller[_0x10d0[6]]);router[_0x10d0[7]](_0x10d0[8],auth[_0x10d0[5]](),controller[_0x10d0[9]]);router[_0x10d0[11]](_0x10d0[4],auth[_0x10d0[5]](),controller[_0x10d0[10]]);router[_0x10d0[13]](_0x10d0[8],auth[_0x10d0[5]](),controller[_0x10d0[12]]);router[_0x10d0[14]](_0x10d0[8],auth[_0x10d0[5]](),controller[_0x10d0[12]]);router[_0x10d0[16]](_0x10d0[8],auth[_0x10d0[5]](),controller[_0x10d0[15]]);module[_0x10d0[17]]=router
\ No newline at end of file
index c50e6e0..92e434c 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var chatWebsitesFieldCtrlStub = {
-  index: 'chatWebsitesFieldCtrl.index',
-  show: 'chatWebsitesFieldCtrl.show',
-  create: 'chatWebsitesFieldCtrl.create',
-  update: 'chatWebsitesFieldCtrl.update',
-  destroy: 'chatWebsitesFieldCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var chatWebsitesFieldIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './chat_websites_field.controller': chatWebsitesFieldCtrlStub
-});
-
-describe('ChatWebsitesField API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(chatWebsitesFieldIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/chat/websites/fields', function() {
-
-    it('should route to chatWebsitesField.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'chatWebsitesFieldCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/chat/websites/fields/:id', function() {
-
-    it('should route to chatWebsitesField.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'chatWebsitesFieldCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/chat/websites/fields', function() {
-
-    it('should route to chatWebsitesField.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'chatWebsitesFieldCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/chat/websites/fields/:id', function() {
-
-    it('should route to chatWebsitesField.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'chatWebsitesFieldCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/chat/websites/fields/:id', function() {
-
-    it('should route to chatWebsitesField.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'chatWebsitesFieldCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/chat/websites/fields/:id', function() {
-
-    it('should route to chatWebsitesField.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'chatWebsitesFieldCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0xf222=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0xf222[0];var proxyquire=require(_0xf222[2])[_0xf222[1]]();var chatWebsitesFieldCtrlStub={index:_0xf222[3],show:_0xf222[4],create:_0xf222[5],update:_0xf222[6],destroy:_0xf222[7]};var routerStub={get:sinon[_0xf222[8]](),put:sinon[_0xf222[8]](),patch:sinon[_0xf222[8]](),post:sinon[_0xf222[8]](),delete:sinon[_0xf222[8]]()};var chatWebsitesFieldIndex=proxyquire(_0xf222[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":chatWebsitesFieldCtrlStub});describe(_0xf222[10],function(){it(_0xf222[11],function(){expect(chatWebsitesFieldIndex)[_0xf222[13]][_0xf222[12]](routerStub)});describe(_0xf222[14],function(){it(_0xf222[15],function(){expect(routerStub[_0xf222[21]][_0xf222[20]](_0xf222[19],_0xf222[3]))[_0xf222[13]][_0xf222[18]][_0xf222[17]][_0xf222[16]]})});describe(_0xf222[22],function(){it(_0xf222[23],function(){expect(routerStub[_0xf222[21]][_0xf222[20]](_0xf222[24],_0xf222[4]))[_0xf222[13]][_0xf222[18]][_0xf222[17]][_0xf222[16]]})});describe(_0xf222[25],function(){it(_0xf222[26],function(){expect(routerStub[_0xf222[27]][_0xf222[20]](_0xf222[19],_0xf222[5]))[_0xf222[13]][_0xf222[18]][_0xf222[17]][_0xf222[16]]})});describe(_0xf222[28],function(){it(_0xf222[29],function(){expect(routerStub[_0xf222[30]][_0xf222[20]](_0xf222[24],_0xf222[6]))[_0xf222[13]][_0xf222[18]][_0xf222[17]][_0xf222[16]]})});describe(_0xf222[31],function(){it(_0xf222[29],function(){expect(routerStub[_0xf222[32]][_0xf222[20]](_0xf222[24],_0xf222[6]))[_0xf222[13]][_0xf222[18]][_0xf222[17]][_0xf222[16]]})});describe(_0xf222[33],function(){it(_0xf222[34],function(){expect(routerStub[_0xf222[35]][_0xf222[20]](_0xf222[24],_0xf222[7]))[_0xf222[13]][_0xf222[18]][_0xf222[17]][_0xf222[16]]})})})
\ No newline at end of file
index 3229f81..e903e7e 100644 (file)
@@ -1,156 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Company = require('../../models').Company;
-var util = require('util');
-var Util = require('../../config/util');
-
-// Get list of companies
-exports.index = function(req, res, next) {
-  return Company
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.companyValidation = function(req, res) {
-  console.log(req.body);
-  Company
-    .findAll({
-      where: {
-        name: req.body.name
-      }
-    })
-    .then(function(companies) {
-      if (!companies) {
-        return res.sendStatus(404);
-      }
-      return res.send(companies);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single company
-exports.show = function(req, res) {
-  Company
-    .findById(req.params.id)
-    .then(function(company) {
-      if (!company) {
-        return res.sendStatus(404);
-      }
-      return res.send(company);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new company in the DB.
-exports.create = function(req, res) {
-  Company
-    .create(req.body)
-    .then(function(company) {
-      return res.status(201).send(company);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing company in the DB.
-exports.update = function(req, res) {
-  Company
-    .findAll({
-      where: {
-        name: req.body.name,
-        id: {
-          $ne: req.body.id
-        }
-      }
-    })
-    .then(function(companies) {
-      if (!companies) {
-        return res.sendStatus(404);
-      }
-      if (companies.length > 0) {
-        return res.status(500).send({
-          message: 'MESSAGE_EXIST_COMPANY'
-        })
-      }
-      if (req.body.id) {
-        delete req.body.id;
-      }
-      Company
-        .find({
-          where: {
-            id: req.params.id
-          }
-        })
-        .then(function(company) {
-          if (!company) {
-            return res.sendStatus(404);
-          }
-          var updated = _.merge(company, req.body);
-          updated.save()
-            .then(function() {
-              return res.status(200).send(company);
-            })
-            .catch(function(err) {
-              return handleError(res, err);
-            });
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a company from the DB.
-exports.destroy = function(req, res) {
-  Company
-    .findById(req.params.id)
-    .then(function(company) {
-      if (!company) {
-        return res.sendStatus(404);
-      }
-      company.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.bulkDestroy = function(req, res) {
-  Company
-    .destroy({
-      where: {
-        id: req.query.id
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x46a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x43\x6F\x6D\x70\x61\x6E\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x63\x6F\x6D\x70\x61\x6E\x79\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6E\x61\x6D\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x43\x4F\x4D\x50\x41\x4E\x59","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x46a1[0];var _=require(_0x46a1[1]);var Company=require(_0x46a1[3])[_0x46a1[2]];var util=require(_0x46a1[4]);var Util=require(_0x46a1[5]);exports[_0x46a1[6]]=function(_0x1483x5,_0x1483x6,_0x1483x7){return Company[_0x46a1[13]](Util[_0x46a1[12]](_0x1483x5[_0x46a1[11]]))[_0x46a1[10]](function(_0x1483x9){_0x1483x6[_0x46a1[9]](200)[_0x46a1[8]](_0x1483x9)})[_0x46a1[7]](function(_0x1483x8){return handleError(_0x1483x6,_0x1483x8)})};exports[_0x46a1[14]]=function(_0x1483x5,_0x1483x6){console[_0x46a1[16]](_0x1483x5[_0x46a1[15]]);Company[_0x46a1[19]]({where:{name:_0x1483x5[_0x46a1[15]][_0x46a1[18]]}})[_0x46a1[10]](function(_0x1483xa){if(!_0x1483xa){return _0x1483x6[_0x46a1[17]](404)};return _0x1483x6[_0x46a1[8]](_0x1483xa)})[_0x46a1[7]](function(_0x1483x8){return handleError(_0x1483x6,_0x1483x8)})};exports[_0x46a1[20]]=function(_0x1483x5,_0x1483x6){Company[_0x46a1[23]](_0x1483x5[_0x46a1[22]][_0x46a1[21]])[_0x46a1[10]](function(_0x1483xb){if(!_0x1483xb){return _0x1483x6[_0x46a1[17]](404)};return _0x1483x6[_0x46a1[8]](_0x1483xb)})[_0x46a1[7]](function(_0x1483x8){return handleError(_0x1483x6,_0x1483x8)})};exports[_0x46a1[24]]=function(_0x1483x5,_0x1483x6){Company[_0x46a1[24]](_0x1483x5[_0x46a1[15]])[_0x46a1[10]](function(_0x1483xb){return _0x1483x6[_0x46a1[9]](201)[_0x46a1[8]](_0x1483xb)})[_0x46a1[7]](function(_0x1483x8){return handleError(_0x1483x6,_0x1483x8)})};exports[_0x46a1[25]]=function(_0x1483x5,_0x1483x6){Company[_0x46a1[19]]({where:{name:_0x1483x5[_0x46a1[15]][_0x46a1[18]],id:{$ne:_0x1483x5[_0x46a1[15]][_0x46a1[21]]}}})[_0x46a1[10]](function(_0x1483xa){if(!_0x1483xa){return _0x1483x6[_0x46a1[17]](404)};if(_0x1483xa[_0x46a1[26]]>0){return _0x1483x6[_0x46a1[9]](500)[_0x46a1[8]]({message:_0x46a1[27]})};if(_0x1483x5[_0x46a1[15]][_0x46a1[21]]){delete _0x1483x5[_0x46a1[15]][_0x46a1[21]]};Company[_0x46a1[30]]({where:{id:_0x1483x5[_0x46a1[22]][_0x46a1[21]]}})[_0x46a1[10]](function(_0x1483xb){if(!_0x1483xb){return _0x1483x6[_0x46a1[17]](404)};var _0x1483xc=_[_0x46a1[28]](_0x1483xb,_0x1483x5[_0x46a1[15]]);_0x1483xc[_0x46a1[29]]()[_0x46a1[10]](function(){return _0x1483x6[_0x46a1[9]](200)[_0x46a1[8]](_0x1483xb)})[_0x46a1[7]](function(_0x1483x8){return handleError(_0x1483x6,_0x1483x8)})})[_0x46a1[7]](function(_0x1483x8){return handleError(_0x1483x6,_0x1483x8)})})[_0x46a1[7]](function(_0x1483x8){return handleError(_0x1483x6,_0x1483x8)})};exports[_0x46a1[31]]=function(_0x1483x5,_0x1483x6){Company[_0x46a1[23]](_0x1483x5[_0x46a1[22]][_0x46a1[21]])[_0x46a1[10]](function(_0x1483xb){if(!_0x1483xb){return _0x1483x6[_0x46a1[17]](404)};_0x1483xb[_0x46a1[31]]()[_0x46a1[10]](function(){return _0x1483x6[_0x46a1[17]](204)})[_0x46a1[7]](function(_0x1483x8){return handleError(_0x1483x6,_0x1483x8)})})[_0x46a1[7]](function(_0x1483x8){return handleError(_0x1483x6,_0x1483x8)})};exports[_0x46a1[32]]=function(_0x1483x5,_0x1483x6){Company[_0x46a1[31]]({where:{id:_0x1483x5[_0x46a1[11]][_0x46a1[21]]},individualHooks:true})[_0x46a1[10]](function(){return _0x1483x6[_0x46a1[17]](204)})[_0x46a1[7]](function(_0x1483x8){return handleError(_0x1483x6,_0x1483x8)})};function handleError(_0x1483x6,_0x1483x8){return _0x1483x6[_0x46a1[9]](500)[_0x46a1[8]](_0x1483x8)}
\ No newline at end of file
index 850be4a..df26fe4 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Company = require('../../models').Company;
-
-exports.register = function(socket) {
-  Company.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Company.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('company:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('company:remove', doc);
-}
+var _0x942d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x6F\x6D\x70\x61\x6E\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x6F\x6D\x70\x61\x6E\x79\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x6F\x6D\x70\x61\x6E\x79\x3A\x72\x65\x6D\x6F\x76\x65"];_0x942d[0];var Company=require(_0x942d[2])[_0x942d[1]];exports[_0x942d[3]]=function(_0xeef8x2){Company[_0x942d[4]](function(_0xeef8x3){onSave(_0xeef8x2,_0xeef8x3)});Company[_0x942d[5]](function(_0xeef8x3){onRemove(_0xeef8x2,_0xeef8x3)})};function onSave(_0xeef8x2,_0xeef8x3,_0xeef8x5){_0xeef8x2[_0x942d[7]](_0x942d[6],_0xeef8x3)}function onRemove(_0xeef8x2,_0xeef8x3,_0xeef8x5){_0xeef8x2[_0x942d[7]](_0x942d[8],_0xeef8x3)}
\ No newline at end of file
index 37c8889..05c4b34 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/contactmanager/companies', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/contactmanager/companies')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0x81d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x67\x65\x74"];_0x81d2[0];var should=require(_0x81d2[1]);var app=require(_0x81d2[2]);var request=require(_0x81d2[3]);describe(_0x81d2[4],function(){it(_0x81d2[5],function(_0x13ddx4){request(app)[_0x81d2[13]](_0x81d2[12])[_0x81d2[11]](200)[_0x81d2[11]](_0x81d2[10],/json/)[_0x81d2[9]](function(_0x13ddx5,_0x13ddx6){if(_0x13ddx5){return _0x13ddx4(_0x13ddx5)};_0x13ddx6[_0x81d2[8]][_0x81d2[1]][_0x81d2[7]][_0x81d2[6]](Array);_0x13ddx4()})})})
\ No newline at end of file
index 734f562..649f68a 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./company.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/validate', auth.isAuthenticated(), controller.companyValidation);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x8675=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x6F\x6D\x70\x61\x6E\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x63\x6F\x6D\x70\x61\x6E\x79\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x8675[0];var express=require(_0x8675[1]);var controller=require(_0x8675[2]);var auth=require(_0x8675[3]);var router=express.Router();router[_0x8675[7]](_0x8675[4],auth[_0x8675[5]](),controller[_0x8675[6]]);router[_0x8675[7]](_0x8675[8],auth[_0x8675[5]](),controller[_0x8675[9]]);router[_0x8675[11]](_0x8675[4],auth[_0x8675[5]](),controller[_0x8675[10]]);router[_0x8675[11]](_0x8675[12],auth[_0x8675[5]](),controller[_0x8675[13]]);router[_0x8675[15]](_0x8675[8],auth[_0x8675[5]](),controller[_0x8675[14]]);router[_0x8675[16]](_0x8675[8],auth[_0x8675[5]](),controller[_0x8675[14]]);router[_0x8675[18]](_0x8675[4],auth[_0x8675[5]](),controller[_0x8675[17]]);router[_0x8675[18]](_0x8675[8],auth[_0x8675[5]](),controller[_0x8675[19]]);module[_0x8675[20]]=router
\ No newline at end of file
index 9457eb1..2a5ff8b 100644 (file)
@@ -1,429 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Contact = require('../../models').Contact;
-var ContactPhone = require('../../models').ContactPhone;
-var ContactEmail = require('../../models').ContactEmail;
-var CustomField = require('../../models').CustomField;
-var ReportCall = require('../../models').ReportCall;
-var ReportIntegration = require('../../models').ReportIntegration;
-var Service = require('../../models').Service;
-var ReportCallHistory = require('../../models').history.ReportCallHistory;
-var ReportMailSession = require('../../models').ReportMailSession;
-var ReportMailSessionHistory = require('../../models').history.ReportMailSessionHistory;
-var Tag = require('../../models').Tag;
-var stream = require('stream');
-var sequelize = require('../../models').sequelize;
-var util = require('util');
-var Util = require('../../config/util');
-
-// Get list of contacts
-exports.index = function(req, res, next) {
-  return Contact
-    .scope('service')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single managed_contact
-exports.show = function(req, res) {
-  Contact
-    .findById(req.params.id, {
-      include: [{
-        model: ContactPhone,
-        as: 'Phones',
-        include: [{
-          model: ReportCall,
-          as: 'Inbounds',
-          include: [{
-            all: true
-          }]
-        }, {
-          model: ReportCall,
-          as: 'Outbounds',
-          include: [{
-            all: true
-          }]
-        }, {
-          model: ReportCallHistory,
-          as: 'HistoryInbounds',
-          include: [{
-            all: true
-          }]
-        }, {
-          model: ReportCallHistory,
-          as: 'HistoryOutbounds',
-          include: [{
-            all: true
-          }]
-        }]
-      }, {
-        model: ContactEmail,
-        as: 'Emails',
-        include: [{
-          model: ReportMailSession,
-          as: 'InboundMessages',
-          include: [{
-            all: true
-          }]
-        }, {
-          model: ReportMailSession,
-          as: 'OutboundMessages',
-          include: [{
-            all: true
-          }]
-        }, {
-          model: ReportMailSessionHistory,
-          as: 'HistoryInboundMessages',
-          include: [{
-            all: true
-          }]
-        }, {
-          model: ReportMailSessionHistory,
-          as: 'HistoryOutboundMessages',
-          include: [{
-            all: true
-          }]
-        }]
-      }, {
-        model: CustomField,
-        as: 'CustomFields'
-      }, {
-        model: Service
-      }]
-    })
-    .then(function(managed_contact) {
-      if (!managed_contact) {
-        return res.sendStatus(404);
-      }
-      return res.status(200).send(managed_contact);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-exports.getEventContacts = function(req, res) {
-  ReportIntegration
-    .findById(req.params.id)
-    .then(function(event) {
-      var modelInclude = {};
-      switch (event.eventChannel) {
-        case 'voice':
-          modelInclude = {
-            model: ContactPhone,
-            as: 'Phones',
-            where: {
-              phone: event.calleridnum
-            }
-          };
-          break;
-        case 'mail':
-          modelInclude = {
-            model: ContactEmail,
-            as: 'Emails',
-            where: {
-              email: event.from
-            }
-          };
-          break;
-        default:
-      }
-      return Contact.findAll({
-        include: [modelInclude, {
-          model: Service,
-          where: {
-            id: _.map(_.map(req.user.Services, 'dataValues'), 'id')
-          }
-        }]
-      });
-    })
-    .then(function(contacts) {
-      return res.status(200).send(contacts);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-
-};
-
-// validate contact uniqueness
-exports.contactValidation = function(req, res) {
-  Contact.findAll({
-      where: {
-        $or: {
-          '$Phones.phone$': req.body.phones,
-          '$Emails.email$': req.body.emails
-        }
-      },
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(contacts) {
-      console.log(contacts);
-      return res.status(200).send(contacts);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Creates a new managed_contact in the DB.
-exports.create = function(req, res, next) {
-  var newPhones = [],
-    newEmails = [],
-    newCustomFields = {};
-  Tag.findAll()
-    .then(function(tags) {
-      var newTags = [];
-      var tagList = _.map(_.map(tags, 'dataValues'), 'name');
-      if (req.body.tags) {
-        var contactTags = req.body.tags.split(',');
-        contactTags.forEach(function(elem) {
-          if (!_.includes(tags, elem)) {
-            newTags.push({
-              name: elem
-            });
-          }
-        });
-        if (newTags.length) {
-          Tag.bulkCreate(newTags, {
-            individualHooks: true
-          });
-        }
-      }
-      req.body.UserId = req.user.id;
-      var phones = _.uniq(_.map(req.body.Phones, 'phone'));
-      var contactPhones = [];
-      phones.forEach(function(elem) {
-        contactPhones.push(ContactPhone.findOrCreate({
-          where: {
-            phone: elem
-          },
-          defaults: {
-            phone: elem
-          }
-        }));
-      });
-      return contactPhones;
-    })
-    .all()
-    .then(function(res) {
-      newPhones = _.map(res, function(elem) {
-        return elem[0];
-      });
-
-      var contactEmails = [];
-      var emails = _.uniq(_.map(req.body.Emails, 'email'));
-      emails.forEach(function(elem) {
-        contactEmails.push(ContactEmail.findOrCreate({
-          where: {
-            email: elem
-          },
-          defaults: {
-            email: elem
-          }
-        }));
-      });
-      return contactEmails;
-    })
-    .all()
-    .then(function(res) {
-      newEmails = _.map(res, function(elem) {
-        return elem[0];
-      });
-      delete req.body.Phones;
-      delete req.body.Emails;
-      newCustomFields = _.clone(req.body.customFields);
-      delete req.body.customFields;
-
-      return Contact.create(req.body);
-    })
-    .then(function(contact) {
-      return [contact, contact.setPhones(newPhones)];
-    })
-    .spread(function(contact) {
-      return [contact, contact.setEmails(newEmails)];
-    })
-    .spread(function(contact) {
-      var customFieldsIds = _.keys(newCustomFields);
-      return [contact, CustomField.findAll({
-        where: {
-          id: customFieldsIds
-        }
-      })];
-    })
-    .spread(function(contact, customFields) {
-      customFields.forEach(function(elem) {
-        elem.ContactHasCustomField = {
-          value: newCustomFields[String(elem.id)]
-        }
-      });
-      return [contact, contact.setCustomFields(customFields)];
-    })
-    .spread(function(contact) {
-      return res.status(201).send(contact);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return next(err);
-    });
-};
-
-// Updates an existing managed_contact in the DB.
-exports.update = function(req, res, next) {
-  var newPhones = [],
-    newEmails = [],
-    newCustomFields = {};
-  Tag.findAll()
-    .then(function(tags) {
-      var newTags = [];
-      var tagList = _.map(_.map(tags, 'dataValues'), 'name');
-      if (req.body.tags) {
-        var contactTags = req.body.tags.split(',');
-        contactTags.forEach(function(elem) {
-          if (!_.includes(tags, elem)) {
-            newTags.push({
-              name: elem
-            });
-          }
-        });
-        if (newTags.length) {
-          Tag.bulkCreate(newTags, {
-            individualHooks: true
-          });
-        }
-      }
-      var contactPhones = [];
-      var phones = _.uniq(_.map(req.body.Phones, 'phone'));
-      phones.forEach(function(elem) {
-        contactPhones.push(ContactPhone.findOrCreate({
-          where: {
-            phone: elem
-          },
-          defaults: {
-            phone: elem
-          }
-        }));
-      });
-      return contactPhones;
-    })
-    .all()
-    .then(function(res) {
-      newPhones = _.map(res, function(elem) {
-        return elem[0];
-      });
-
-      var contactEmails = [];
-      var emails = _.uniq(_.map(req.body.Emails, 'email'));
-      emails.forEach(function(elem) {
-        contactEmails.push(ContactEmail.findOrCreate({
-          where: {
-            email: elem
-          },
-          defaults: {
-            email: elem
-          }
-        }));
-      });
-      return contactEmails;
-    })
-    .all()
-    .then(function(res) {
-      newEmails = _.map(res, function(elem) {
-        return elem[0];
-      });
-      delete req.body.Phones;
-      delete req.body.Emails;
-      newCustomFields = _.clone(req.body.customFields);
-      delete req.body.customFields;
-      delete req.body.CustomFields;
-      var updateId = req.body.id;
-      delete req.body.id;
-
-      return Contact.findById(updateId);
-    })
-    .then(function(contact) {
-      return [contact, contact.setPhones(newPhones)];
-    })
-    .spread(function(contact) {
-      return [contact, contact.setEmails(newEmails)];
-    })
-    .spread(function(contact) {
-      var customFieldsIds = _.keys(newCustomFields);
-      return [contact, CustomField.findAll({
-        where: {
-          id: customFieldsIds
-        }
-      })];
-    })
-    .spread(function(contact, customFields) {
-      customFields.forEach(function(elem) {
-        elem.ContactHasCustomField = {
-          value: newCustomFields[String(elem.id)]
-        }
-      });
-      return [contact, contact.setCustomFields(customFields)];
-    })
-    .spread(function(contact) {
-      return contact.updateAttributes(req.body)
-    })
-    .then(function(contact) {
-      return res.status(200).send(contact);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Deletes a managed_contact from the DB.
-exports.destroy = function(req, res) {
-  Contact
-    .findById(req.params.id)
-    .then(function(managed_contact) {
-      if (!managed_contact) {
-        return res.sendStatus(404);
-      }
-      managed_contact.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a managed_contact from the DB.
-exports.bulkDestroy = function(req, res) {
-  Contact
-    .destroy({
-      where: {
-        id: req.query.id
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xe7d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74\x50\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x53\x65\x72\x76\x69\x63\x65","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C\x48\x69\x73\x74\x6F\x72\x79","\x68\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x54\x61\x67","\x73\x74\x72\x65\x61\x6D","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x65\x72\x76\x69\x63\x65","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x6C\x6F\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x50\x68\x6F\x6E\x65\x73","\x49\x6E\x62\x6F\x75\x6E\x64\x73","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x73","\x48\x69\x73\x74\x6F\x72\x79\x49\x6E\x62\x6F\x75\x6E\x64\x73","\x48\x69\x73\x74\x6F\x72\x79\x4F\x75\x74\x62\x6F\x75\x6E\x64\x73","\x45\x6D\x61\x69\x6C\x73","\x49\x6E\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x48\x69\x73\x74\x6F\x72\x79\x49\x6E\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x48\x69\x73\x74\x6F\x72\x79\x4F\x75\x74\x62\x6F\x75\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x73","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x45\x76\x65\x6E\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x76\x6F\x69\x63\x65","\x66\x72\x6F\x6D","\x6D\x61\x69\x6C","\x65\x76\x65\x6E\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x75\x73\x65\x72","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x6F\x6E\x74\x61\x63\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x68\x6F\x6E\x65\x73","\x62\x6F\x64\x79","\x65\x6D\x61\x69\x6C\x73","\x63\x72\x65\x61\x74\x65","\x73\x70\x72\x65\x61\x64","\x43\x6F\x6E\x74\x61\x63\x74\x48\x61\x73\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x66\x6F\x72\x45\x61\x63\x68","\x73\x65\x74\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x6B\x65\x79\x73","\x73\x65\x74\x45\x6D\x61\x69\x6C\x73","\x73\x65\x74\x50\x68\x6F\x6E\x65\x73","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x63\x6C\x6F\x6E\x65","\x61\x6C\x6C","\x65\x6D\x61\x69\x6C","\x75\x6E\x69\x71","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x70\x75\x73\x68","\x6E\x61\x6D\x65","\x74\x61\x67\x73","\x2C","\x73\x70\x6C\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x6C\x65\x6E\x67\x74\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72\x49\x64","\x70\x68\x6F\x6E\x65","\x75\x70\x64\x61\x74\x65","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xe7d2[0];var _=require(_0xe7d2[1]);var Contact=require(_0xe7d2[3])[_0xe7d2[2]];var ContactPhone=require(_0xe7d2[3])[_0xe7d2[4]];var ContactEmail=require(_0xe7d2[3])[_0xe7d2[5]];var CustomField=require(_0xe7d2[3])[_0xe7d2[6]];var ReportCall=require(_0xe7d2[3])[_0xe7d2[7]];var ReportIntegration=require(_0xe7d2[3])[_0xe7d2[8]];var Service=require(_0xe7d2[3])[_0xe7d2[9]];var ReportCallHistory=require(_0xe7d2[3])[_0xe7d2[11]][_0xe7d2[10]];var ReportMailSession=require(_0xe7d2[3])[_0xe7d2[12]];var ReportMailSessionHistory=require(_0xe7d2[3])[_0xe7d2[11]][_0xe7d2[13]];var Tag=require(_0xe7d2[3])[_0xe7d2[14]];var stream=require(_0xe7d2[15]);var sequelize=require(_0xe7d2[3])[_0xe7d2[16]];var util=require(_0xe7d2[17]);var Util=require(_0xe7d2[18]);exports[_0xe7d2[19]]=function(_0xce72x11,_0xce72x12,_0xce72x13){return Contact[_0xe7d2[28]](_0xe7d2[27])[_0xe7d2[26]](Util[_0xe7d2[25]](_0xce72x11[_0xe7d2[24]]))[_0xe7d2[23]](function(_0xce72x15){_0xce72x12[_0xe7d2[22]](200)[_0xe7d2[21]](_0xce72x15)})[_0xe7d2[20]](function(_0xce72x14){return handleError(_0xce72x12,_0xce72x14)})};exports[_0xe7d2[29]]=function(_0xce72x11,_0xce72x12){Contact[_0xe7d2[45]](_0xce72x11[_0xe7d2[33]][_0xe7d2[32]],{include:[{model:ContactPhone,as:_0xe7d2[34],include:[{model:ReportCall,as:_0xe7d2[35],include:[{all:true}]},{model:ReportCall,as:_0xe7d2[36],include:[{all:true}]},{model:ReportCallHistory,as:_0xe7d2[37],include:[{all:true}]},{model:ReportCallHistory,as:_0xe7d2[38],include:[{all:true}]}]},{model:ContactEmail,as:_0xe7d2[39],include:[{model:ReportMailSession,as:_0xe7d2[40],include:[{all:true}]},{model:ReportMailSession,as:_0xe7d2[41],include:[{all:true}]},{model:ReportMailSessionHistory,as:_0xe7d2[42],include:[{all:true}]},{model:ReportMailSessionHistory,as:_0xe7d2[43],include:[{all:true}]}]},{model:CustomField,as:_0xe7d2[44]},{model:Service}]})[_0xe7d2[23]](function(_0xce72x16){if(!_0xce72x16){return _0xce72x12[_0xe7d2[31]](404)};return _0xce72x12[_0xe7d2[22]](200)[_0xe7d2[21]](_0xce72x16)})[_0xe7d2[20]](function(_0xce72x14){console[_0xe7d2[30]](_0xce72x14);return handleError(_0xce72x12,_0xce72x14)})};exports[_0xe7d2[46]]=function(_0xce72x11,_0xce72x12){ReportIntegration[_0xe7d2[45]](_0xce72x11[_0xe7d2[33]][_0xe7d2[32]])[_0xe7d2[23]](function(_0xce72x18){var _0xce72x19={};switch(_0xce72x18[_0xe7d2[51]]){case _0xe7d2[48]:_0xce72x19={model:ContactPhone,as:_0xe7d2[34],where:{phone:_0xce72x18[_0xe7d2[47]]}};break;case _0xe7d2[50]:_0xce72x19={model:ContactEmail,as:_0xe7d2[39],where:{email:_0xce72x18[_0xe7d2[49]]}};break;default:};return Contact[_0xe7d2[55]]({include:[_0xce72x19,{model:Service,where:{id:_[_0xe7d2[54]](_[_0xe7d2[54]](_0xce72x11[_0xe7d2[52]].Services,_0xe7d2[53]),_0xe7d2[32])}}]})})[_0xe7d2[23]](function(_0xce72x17){return _0xce72x12[_0xe7d2[22]](200)[_0xe7d2[21]](_0xce72x17)})[_0xe7d2[20]](function(_0xce72x14){console[_0xe7d2[30]](_0xce72x14);return handleError(_0xce72x12,_0xce72x14)})};exports[_0xe7d2[56]]=function(_0xce72x11,_0xce72x12){Contact[_0xe7d2[55]]({where:{$or:{"\x24\x50\x68\x6F\x6E\x65\x73\x2E\x70\x68\x6F\x6E\x65\x24":_0xce72x11[_0xe7d2[58]][_0xe7d2[57]],"\x24\x45\x6D\x61\x69\x6C\x73\x2E\x65\x6D\x61\x69\x6C\x24":_0xce72x11[_0xe7d2[58]][_0xe7d2[59]]}},include:[{all:true}]})[_0xe7d2[23]](function(_0xce72x17){console[_0xe7d2[30]](_0xce72x17);return _0xce72x12[_0xe7d2[22]](200)[_0xe7d2[21]](_0xce72x17)})[_0xe7d2[20]](function(_0xce72x14){console[_0xe7d2[30]](_0xce72x14);return handleError(_0xce72x12,_0xce72x14)})};exports[_0xe7d2[60]]=function(_0xce72x11,_0xce72x12,_0xce72x13){var _0xce72x1a=[],_0xce72x1b=[],_0xce72x1c={};Tag[_0xe7d2[55]]()[_0xe7d2[23]](function(_0xce72x23){var _0xce72x24=[];var _0xce72x25=_[_0xe7d2[54]](_[_0xe7d2[54]](_0xce72x23,_0xe7d2[53]),_0xe7d2[75]);if(_0xce72x11[_0xe7d2[58]][_0xe7d2[76]]){var _0xce72x26=_0xce72x11[_0xe7d2[58]][_0xe7d2[76]][_0xe7d2[78]](_0xe7d2[77]);_0xce72x26[_0xe7d2[63]](function(_0xce72x1f){if(!_[_0xe7d2[79]](_0xce72x23,_0xce72x1f)){_0xce72x24[_0xe7d2[74]]({name:_0xce72x1f})}});if(_0xce72x24[_0xe7d2[80]]){Tag[_0xe7d2[81]](_0xce72x24,{individualHooks:true})}};_0xce72x11[_0xe7d2[58]][_0xe7d2[82]]=_0xce72x11[_0xe7d2[52]][_0xe7d2[32]];var _0xce72x27=_[_0xe7d2[72]](_[_0xe7d2[54]](_0xce72x11[_0xe7d2[58]].Phones,_0xe7d2[83]));var _0xce72x28=[];_0xce72x27[_0xe7d2[63]](function(_0xce72x1f){_0xce72x28[_0xe7d2[74]](ContactPhone[_0xe7d2[73]]({where:{phone:_0xce72x1f},defaults:{phone:_0xce72x1f}}))});return _0xce72x28})[_0xe7d2[70]]()[_0xe7d2[23]](function(_0xce72x12){_0xce72x1a=_[_0xe7d2[54]](_0xce72x12,function(_0xce72x1f){return _0xce72x1f[0]});var _0xce72x21=[];var _0xce72x22=_[_0xe7d2[72]](_[_0xe7d2[54]](_0xce72x11[_0xe7d2[58]].Emails,_0xe7d2[71]));_0xce72x22[_0xe7d2[63]](function(_0xce72x1f){_0xce72x21[_0xe7d2[74]](ContactEmail[_0xe7d2[73]]({where:{email:_0xce72x1f},defaults:{email:_0xce72x1f}}))});return _0xce72x21})[_0xe7d2[70]]()[_0xe7d2[23]](function(_0xce72x12){_0xce72x1b=_[_0xe7d2[54]](_0xce72x12,function(_0xce72x1f){return _0xce72x1f[0]});delete _0xce72x11[_0xe7d2[58]][_0xe7d2[34]];delete _0xce72x11[_0xe7d2[58]][_0xe7d2[39]];_0xce72x1c=_[_0xe7d2[69]](_0xce72x11[_0xe7d2[58]][_0xe7d2[68]]);delete _0xce72x11[_0xe7d2[58]][_0xe7d2[68]];return Contact[_0xe7d2[60]](_0xce72x11[_0xe7d2[58]])})[_0xe7d2[23]](function(_0xce72x1d){return [_0xce72x1d,_0xce72x1d[_0xe7d2[67]](_0xce72x1a)]})[_0xe7d2[61]](function(_0xce72x1d){return [_0xce72x1d,_0xce72x1d[_0xe7d2[66]](_0xce72x1b)]})[_0xe7d2[61]](function(_0xce72x1d){var _0xce72x20=_[_0xe7d2[65]](_0xce72x1c);return [_0xce72x1d,CustomField[_0xe7d2[55]]({where:{id:_0xce72x20}})]})[_0xe7d2[61]](function(_0xce72x1d,_0xce72x1e){_0xce72x1e[_0xe7d2[63]](function(_0xce72x1f){_0xce72x1f[_0xe7d2[62]]={value:_0xce72x1c[String(_0xce72x1f[_0xe7d2[32]])]}});return [_0xce72x1d,_0xce72x1d[_0xe7d2[64]](_0xce72x1e)]})[_0xe7d2[61]](function(_0xce72x1d){return _0xce72x12[_0xe7d2[22]](201)[_0xe7d2[21]](_0xce72x1d)})[_0xe7d2[20]](function(_0xce72x14){console[_0xe7d2[30]](_0xce72x14);return _0xce72x13(_0xce72x14)})};exports[_0xe7d2[84]]=function(_0xce72x11,_0xce72x12,_0xce72x13){var _0xce72x1a=[],_0xce72x1b=[],_0xce72x1c={};Tag[_0xe7d2[55]]()[_0xe7d2[23]](function(_0xce72x23){var _0xce72x24=[];var _0xce72x25=_[_0xe7d2[54]](_[_0xe7d2[54]](_0xce72x23,_0xe7d2[53]),_0xe7d2[75]);if(_0xce72x11[_0xe7d2[58]][_0xe7d2[76]]){var _0xce72x26=_0xce72x11[_0xe7d2[58]][_0xe7d2[76]][_0xe7d2[78]](_0xe7d2[77]);_0xce72x26[_0xe7d2[63]](function(_0xce72x1f){if(!_[_0xe7d2[79]](_0xce72x23,_0xce72x1f)){_0xce72x24[_0xe7d2[74]]({name:_0xce72x1f})}});if(_0xce72x24[_0xe7d2[80]]){Tag[_0xe7d2[81]](_0xce72x24,{individualHooks:true})}};var _0xce72x28=[];var _0xce72x27=_[_0xe7d2[72]](_[_0xe7d2[54]](_0xce72x11[_0xe7d2[58]].Phones,_0xe7d2[83]));_0xce72x27[_0xe7d2[63]](function(_0xce72x1f){_0xce72x28[_0xe7d2[74]](ContactPhone[_0xe7d2[73]]({where:{phone:_0xce72x1f},defaults:{phone:_0xce72x1f}}))});return _0xce72x28})[_0xe7d2[70]]()[_0xe7d2[23]](function(_0xce72x12){_0xce72x1a=_[_0xe7d2[54]](_0xce72x12,function(_0xce72x1f){return _0xce72x1f[0]});var _0xce72x21=[];var _0xce72x22=_[_0xe7d2[72]](_[_0xe7d2[54]](_0xce72x11[_0xe7d2[58]].Emails,_0xe7d2[71]));_0xce72x22[_0xe7d2[63]](function(_0xce72x1f){_0xce72x21[_0xe7d2[74]](ContactEmail[_0xe7d2[73]]({where:{email:_0xce72x1f},defaults:{email:_0xce72x1f}}))});return _0xce72x21})[_0xe7d2[70]]()[_0xe7d2[23]](function(_0xce72x12){_0xce72x1b=_[_0xe7d2[54]](_0xce72x12,function(_0xce72x1f){return _0xce72x1f[0]});delete _0xce72x11[_0xe7d2[58]][_0xe7d2[34]];delete _0xce72x11[_0xe7d2[58]][_0xe7d2[39]];_0xce72x1c=_[_0xe7d2[69]](_0xce72x11[_0xe7d2[58]][_0xe7d2[68]]);delete _0xce72x11[_0xe7d2[58]][_0xe7d2[68]];delete _0xce72x11[_0xe7d2[58]][_0xe7d2[44]];var _0xce72x29=_0xce72x11[_0xe7d2[58]][_0xe7d2[32]];delete _0xce72x11[_0xe7d2[58]][_0xe7d2[32]];return Contact[_0xe7d2[45]](_0xce72x29)})[_0xe7d2[23]](function(_0xce72x1d){return [_0xce72x1d,_0xce72x1d[_0xe7d2[67]](_0xce72x1a)]})[_0xe7d2[61]](function(_0xce72x1d){return [_0xce72x1d,_0xce72x1d[_0xe7d2[66]](_0xce72x1b)]})[_0xe7d2[61]](function(_0xce72x1d){var _0xce72x20=_[_0xe7d2[65]](_0xce72x1c);return [_0xce72x1d,CustomField[_0xe7d2[55]]({where:{id:_0xce72x20}})]})[_0xe7d2[61]](function(_0xce72x1d,_0xce72x1e){_0xce72x1e[_0xe7d2[63]](function(_0xce72x1f){_0xce72x1f[_0xe7d2[62]]={value:_0xce72x1c[String(_0xce72x1f[_0xe7d2[32]])]}});return [_0xce72x1d,_0xce72x1d[_0xe7d2[64]](_0xce72x1e)]})[_0xe7d2[61]](function(_0xce72x1d){return _0xce72x1d[_0xe7d2[85]](_0xce72x11[_0xe7d2[58]])})[_0xe7d2[23]](function(_0xce72x1d){return _0xce72x12[_0xe7d2[22]](200)[_0xe7d2[21]](_0xce72x1d)})[_0xe7d2[20]](function(_0xce72x14){console[_0xe7d2[30]](_0xce72x14);return handleError(_0xce72x12,_0xce72x14)})};exports[_0xe7d2[86]]=function(_0xce72x11,_0xce72x12){Contact[_0xe7d2[45]](_0xce72x11[_0xe7d2[33]][_0xe7d2[32]])[_0xe7d2[23]](function(_0xce72x16){if(!_0xce72x16){return _0xce72x12[_0xe7d2[31]](404)};_0xce72x16[_0xe7d2[86]]()[_0xe7d2[23]](function(){return _0xce72x12[_0xe7d2[31]](204)})[_0xe7d2[20]](function(_0xce72x14){return handleError(_0xce72x12,_0xce72x14)})})[_0xe7d2[20]](function(_0xce72x14){return handleError(_0xce72x12,_0xce72x14)})};exports[_0xe7d2[87]]=function(_0xce72x11,_0xce72x12){Contact[_0xe7d2[86]]({where:{id:_0xce72x11[_0xe7d2[24]][_0xe7d2[32]]},individualHooks:true})[_0xe7d2[23]](function(){return _0xce72x12[_0xe7d2[31]](204)})[_0xe7d2[20]](function(_0xce72x14){return handleError(_0xce72x12,_0xce72x14)})};function handleError(_0xce72x12,_0xce72x14){return _0xce72x12[_0xe7d2[22]](500)[_0xe7d2[21]](_0xce72x14)}
\ No newline at end of file
index addfca0..4dd1e88 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Contact = require('../../models').Contact;
-
-exports.register = function(socket) {
-  Contact.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Contact.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('contact_manager:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('contact_manager:remove', doc);
-}
+var _0x9e39=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72\x3A\x72\x65\x6D\x6F\x76\x65"];_0x9e39[0];var Contact=require(_0x9e39[2])[_0x9e39[1]];exports[_0x9e39[3]]=function(_0xb909x2){Contact[_0x9e39[4]](function(_0xb909x3){onSave(_0xb909x2,_0xb909x3)});Contact[_0x9e39[5]](function(_0xb909x3){onRemove(_0xb909x2,_0xb909x3)})};function onSave(_0xb909x2,_0xb909x3,_0xb909x5){_0xb909x2[_0x9e39[7]](_0x9e39[6],_0xb909x3)}function onRemove(_0xb909x2,_0xb909x3,_0xb909x5){_0xb909x2[_0x9e39[7]](_0x9e39[8],_0xb909x3)}
\ No newline at end of file
index f212dfb..6babd00 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/contactmanager/contacts', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/contactmanager')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0x5504=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72","\x67\x65\x74"];_0x5504[0];var should=require(_0x5504[1]);var app=require(_0x5504[2]);var request=require(_0x5504[3]);describe(_0x5504[4],function(){it(_0x5504[5],function(_0x530ax4){request(app)[_0x5504[13]](_0x5504[12])[_0x5504[11]](200)[_0x5504[11]](_0x5504[10],/json/)[_0x5504[9]](function(_0x530ax5,_0x530ax6){if(_0x530ax5){return _0x530ax4(_0x530ax5)};_0x530ax6[_0x5504[8]][_0x5504[1]][_0x5504[7]][_0x5504[6]](Array);_0x530ax4()})})})
\ No newline at end of file
index 18623b0..1b9427f 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./contact_manager.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id/checkevent', auth.isAuthenticated(), controller.getEventContacts);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/validate', auth.isAuthenticated(), controller.contactValidation);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xf3cf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64\x2F\x63\x68\x65\x63\x6B\x65\x76\x65\x6E\x74","\x67\x65\x74\x45\x76\x65\x6E\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x63\x6F\x6E\x74\x61\x63\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xf3cf[0];var express=require(_0xf3cf[1]);var controller=require(_0xf3cf[2]);var auth=require(_0xf3cf[3]);var router=express.Router();router[_0xf3cf[7]](_0xf3cf[4],auth[_0xf3cf[5]](),controller[_0xf3cf[6]]);router[_0xf3cf[7]](_0xf3cf[8],auth[_0xf3cf[5]](),controller[_0xf3cf[9]]);router[_0xf3cf[7]](_0xf3cf[10],auth[_0xf3cf[5]](),controller[_0xf3cf[11]]);router[_0xf3cf[13]](_0xf3cf[4],auth[_0xf3cf[5]](),controller[_0xf3cf[12]]);router[_0xf3cf[13]](_0xf3cf[14],auth[_0xf3cf[5]](),controller[_0xf3cf[15]]);router[_0xf3cf[17]](_0xf3cf[10],auth[_0xf3cf[5]](),controller[_0xf3cf[16]]);router[_0xf3cf[18]](_0xf3cf[10],auth[_0xf3cf[5]](),controller[_0xf3cf[16]]);router[_0xf3cf[20]](_0xf3cf[4],auth[_0xf3cf[5]](),controller[_0xf3cf[19]]);router[_0xf3cf[20]](_0xf3cf[10],auth[_0xf3cf[5]](),controller[_0xf3cf[21]]);module[_0xf3cf[22]]=router
\ No newline at end of file
index 12e3404..25186da 100644 (file)
@@ -1,326 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var sequelize = require('../../models').sequelize;
-var CustomReport = require('../../models').CustomReport;
-var ReportField = require('../../models').ReportField;
-var Metric = require('../../models').Metric;
-var ExtractedReport = require('../../models').ExtractedReport;
-var extractUtils = require('../../utils/report_extraction');
-var reportBuildUtils = require('../../utils/report_build');
-var Util = require('../../config/util');
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return CustomReport
-    .findAndCountAll(Util.getQuery(_.merge(req.query, req.params)))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.preview = function(req, res) {
-  var _countAll;
-  return CustomReport
-    .scope('fields')
-    .findById(req.params.id)
-    .then(function(report) {
-      console.log('found report');
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      var query = reportBuildUtils.buildReport(report.dataValues, req.query);
-      // console.log(query);
-      return sequelize.query(query, {
-        type: sequelize.QueryTypes.SELECT
-      });
-    })
-    .then(function(results) {
-      _countAll = results.length;
-      if (req.query.limit) {
-        results = _(results).slice(req.query.offset || 0).take(req.query.limit).value();
-      }
-      res.status(200).send({
-        rows: results,
-        count: _countAll
-      });
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-exports.extractPdf = function(req, res) {
-  // console.log('extractPdf api function');
-  docExtract(req, res, 'PDF')
-};
-
-exports.extractCsv = function(req, res) {
-  // console.log('extractCsv api function');
-  docExtract(req, res, 'CSV');
-};
-
-function docExtract(req, res, typeFunction) {
-  // console.log('common docExtract api function');
-  CustomReport
-    .scope('fields')
-    .findById(req.params.id)
-    .then(function(report) {
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      // console.log('found the report, creating the new DB row for extracted reports..');
-      //CREATE A DB ROW IN A TABLE WITH THE REPORT INFO, QUERY DATES, AND THE STATUS 'ELABORATING'
-      return [report, ExtractedReport.create({
-        name: report.name,
-        startDate: req.query.startDate || null,
-        endDate: req.query.endDate || null,
-        output: typeFunction
-      })]
-    })
-    .spread(function(report, extractedReport) {
-      // console.log('created new extracted reports db entry, calling external extraction function: ' + typeFunction);
-      extractUtils['extract' + typeFunction](report, req.query, extractedReport.id);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-  return res.sendStatus(200);
-}
-
-// Get a single report
-exports.show = function(req, res) {
-  return CustomReport
-    .scope('fields')
-    .findById(req.params.id)
-    .then(function(report) {
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      return res.send(report);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Copy a custom report
-exports.copy = function(req, res) {
-  var _fields;
-  return sequelize.transaction(function(t) {
-      return CustomReport
-        .scope('fields')
-        .findById(req.params.id)
-        .then(function(report) {
-          if (!report) {
-            return res.sendStatus(404);
-          }
-          var newReport = report.dataValues;
-          delete newReport.id;
-          delete newReport.createdAt;
-          delete newReport.updatedAt;
-          newReport.parent = req.body.parent;
-          _fields = _.map(newReport.Fields, 'dataValues');
-          return CustomReport
-            .create(newReport, {
-              transaction: t
-            });
-        })
-        .then(function(report) {
-          return [report, _fields];
-        })
-        .spread(createFields(t));
-    })
-    .then(function() {
-      return res.sendStatus(201);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Creates a new report in the DB.
-exports.create = function(req, res) {
-  var _report;
-  return sequelize.transaction(function(t) {
-      return CustomReport
-        .create(req.body, {
-          transaction: t
-        })
-        .then(function(report) {
-          _report = report;
-          return [_report, req.body.Fields];
-        })
-        .spread(createFields(t));
-    })
-    .then(function() {
-      return res.status(201).send(_report);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  var _report;
-  return sequelize.transaction(function(t) {
-      return CustomReport
-        .findById(req.params.id)
-        .then(function(report) {
-          if (!report) {
-            return res.sendStatus(404);
-          }
-          var updated = _.merge(report, req.body);
-          return report
-            .save({
-              transaction: t
-            });
-        })
-        .then(function(report) {
-          _report = report;
-          if (req.body.Fields) {
-            return ReportField.destroy({
-              where: {
-                CustomReportId: req.params.id
-              },
-              transaction: t
-            });
-          }
-        })
-        .then(function() {
-          return [_report, req.body.Fields];
-        })
-        .spread(createFields(t));
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-}
-
-function createFields(t) {
-  return function(report, fields) {
-    if (fields && Array.isArray(fields) && fields.length) {
-      var tableModel = getTable(report.table);
-      if (tableModel) {
-        var _tableFields;
-        return tableModel
-          .describe()
-          .then(function(tableFields) {
-            _tableFields = _.keys(tableFields);
-            return Metric
-              .findAll();
-          })
-          .then(function(metrics) {
-            var bulkFields = [];
-            metrics = _.map(metrics, 'dataValues');
-            fields.forEach(function(elem) {
-              elem.CustomReportId = report.id;
-              if (elem.MetricId) {
-                var metric = _.find(metrics, {
-                  id: elem.MetricId
-                });
-                if (metric) {
-                  elem.field = metric.metric;
-                  bulkFields.push(ReportField
-                    .create(elem, {
-                      transaction: t
-                    }));
-                } else {
-                  throw new Error("The metric with id " + elem.MetricId + " you specified does not exist");
-                }
-              } else {
-                if (_.includes(_tableFields, elem.field)) {
-                  bulkFields.push(ReportField
-                    .create(elem, {
-                      transaction: t
-                    }));
-                } else {
-                  throw new Error("The field " + elem.field + " you specified does not exist in the table");
-                }
-              }
-            });
-            return bulkFields;
-          })
-          .all();
-      } else {
-        throw new Error("You have not specified the table or the table does not exist");
-      }
-    }
-  }
-}
-
-function getTable(table) {
-  var tableModel;
-  switch (table) {
-    case 'report_agent_history':
-      tableModel = require('../../models').history.ReportAgentHistory;
-      break;
-    case 'report_mail_session_history':
-      tableModel = require('../../models').history.ReportMailSessionHistory;
-      break;
-    case 'report_queue_history':
-      tableModel = require('../../models').history.ReportQueueHistory;
-      break;
-    case 'report_chat_session_history':
-      tableModel = require('../../models').history.ReportChatSessionHistory;
-      break;
-    default:
-  }
-  return tableModel;
-}
-
-// Deletes a report from the DB.
-exports.destroy = function(req, res) {
-  CustomReport
-    .findById(req.params.id)
-    .then(function(report) {
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      report.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.bulkDestroy = function(req, res) {
-  CustomReport
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x7ba0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x52\x65\x70\x6F\x72\x74\x46\x69\x65\x6C\x64","\x4D\x65\x74\x72\x69\x63","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x5F\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x5F\x62\x75\x69\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x70\x61\x72\x61\x6D\x73","\x6D\x65\x72\x67\x65","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x70\x72\x65\x76\x69\x65\x77","\x6C\x6F\x67","\x6C\x65\x6E\x67\x74\x68","\x6C\x69\x6D\x69\x74","\x76\x61\x6C\x75\x65","\x74\x61\x6B\x65","\x6F\x66\x66\x73\x65\x74","\x73\x6C\x69\x63\x65","\x66\x6F\x75\x6E\x64\x20\x72\x65\x70\x6F\x72\x74","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x62\x75\x69\x6C\x64\x52\x65\x70\x6F\x72\x74","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x66\x69\x65\x6C\x64\x73","\x73\x63\x6F\x70\x65","\x65\x78\x74\x72\x61\x63\x74\x50\x64\x66","\x50\x44\x46","\x65\x78\x74\x72\x61\x63\x74\x43\x73\x76","\x43\x53\x56","\x65\x78\x74\x72\x61\x63\x74","\x73\x70\x72\x65\x61\x64","\x6E\x61\x6D\x65","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x65\x6E\x64\x44\x61\x74\x65","\x63\x72\x65\x61\x74\x65","\x73\x68\x6F\x77","\x63\x6F\x70\x79","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x70\x61\x72\x65\x6E\x74","\x62\x6F\x64\x79","\x6D\x61\x70","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64\x73","\x75\x70\x64\x61\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x73\x61\x76\x65","\x69\x73\x41\x72\x72\x61\x79","\x74\x61\x62\x6C\x65","\x61\x6C\x6C","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x49\x64","\x4D\x65\x74\x72\x69\x63\x49\x64","\x66\x69\x6E\x64","\x66\x69\x65\x6C\x64","\x6D\x65\x74\x72\x69\x63","\x70\x75\x73\x68","\x54\x68\x65\x20\x6D\x65\x74\x72\x69\x63\x20\x77\x69\x74\x68\x20\x69\x64\x20","\x20\x79\x6F\x75\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x64\x6F\x65\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x54\x68\x65\x20\x66\x69\x65\x6C\x64\x20","\x20\x79\x6F\x75\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x64\x6F\x65\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74\x20\x69\x6E\x20\x74\x68\x65\x20\x74\x61\x62\x6C\x65","\x66\x6F\x72\x45\x61\x63\x68","\x6B\x65\x79\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x63\x72\x69\x62\x65","\x59\x6F\x75\x20\x68\x61\x76\x65\x20\x6E\x6F\x74\x20\x73\x70\x65\x63\x69\x66\x69\x65\x64\x20\x74\x68\x65\x20\x74\x61\x62\x6C\x65\x20\x6F\x72\x20\x74\x68\x65\x20\x74\x61\x62\x6C\x65\x20\x64\x6F\x65\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x48\x69\x73\x74\x6F\x72\x79","\x68\x69\x73\x74\x6F\x72\x79","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x5F\x68\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x5F\x68\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65\x48\x69\x73\x74\x6F\x72\x79","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x5F\x68\x69\x73\x74\x6F\x72\x79","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x5F\x68\x69\x73\x74\x6F\x72\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0x7ba0[0];var _=require(_0x7ba0[1]);var util=require(_0x7ba0[2]);var sequelize=require(_0x7ba0[4])[_0x7ba0[3]];var CustomReport=require(_0x7ba0[4])[_0x7ba0[5]];var ReportField=require(_0x7ba0[4])[_0x7ba0[6]];var Metric=require(_0x7ba0[4])[_0x7ba0[7]];var ExtractedReport=require(_0x7ba0[4])[_0x7ba0[8]];var extractUtils=require(_0x7ba0[9]);var reportBuildUtils=require(_0x7ba0[10]);var Util=require(_0x7ba0[11]);exports[_0x7ba0[12]]=function(_0x702cxb,_0x702cxc,_0x702cxd){return CustomReport[_0x7ba0[21]](Util[_0x7ba0[20]](_[_0x7ba0[19]](_0x702cxb[_0x7ba0[17]],_0x702cxb[_0x7ba0[18]])))[_0x7ba0[16]](function(_0x702cxf){_0x702cxc[_0x7ba0[15]](200)[_0x7ba0[14]](_0x702cxf)})[_0x7ba0[13]](function(_0x702cxe){return handleError(_0x702cxc,_0x702cxe)})};exports[_0x7ba0[22]]=function(_0x702cxb,_0x702cxc){var _0x702cx10;return CustomReport[_0x7ba0[39]](_0x7ba0[38])[_0x7ba0[37]](_0x702cxb[_0x7ba0[18]][_0x7ba0[36]])[_0x7ba0[16]](function(_0x702cx12){console[_0x7ba0[23]](_0x7ba0[30]);if(!_0x702cx12){return _0x702cxc[_0x7ba0[31]](404)};var _0x702cx13=reportBuildUtils[_0x7ba0[33]](_0x702cx12[_0x7ba0[32]],_0x702cxb[_0x7ba0[17]]);return sequelize[_0x7ba0[17]](_0x702cx13,{type:sequelize[_0x7ba0[35]][_0x7ba0[34]]})})[_0x7ba0[16]](function(_0x702cx11){_0x702cx10=_0x702cx11[_0x7ba0[24]];if(_0x702cxb[_0x7ba0[17]][_0x7ba0[25]]){_0x702cx11=_(_0x702cx11)[_0x7ba0[29]](_0x702cxb[_0x7ba0[17]][_0x7ba0[28]]||0)[_0x7ba0[27]](_0x702cxb[_0x7ba0[17]][_0x7ba0[25]])[_0x7ba0[26]]()};_0x702cxc[_0x7ba0[15]](200)[_0x7ba0[14]]({rows:_0x702cx11,count:_0x702cx10})})[_0x7ba0[13]](function(_0x702cxe){console[_0x7ba0[23]](_0x702cxe);return handleError(_0x702cxc,_0x702cxe)})};exports[_0x7ba0[40]]=function(_0x702cxb,_0x702cxc){docExtract(_0x702cxb,_0x702cxc,_0x7ba0[41])};exports[_0x7ba0[42]]=function(_0x702cxb,_0x702cxc){docExtract(_0x702cxb,_0x702cxc,_0x7ba0[43])};function docExtract(_0x702cxb,_0x702cxc,_0x702cx15){CustomReport[_0x7ba0[39]](_0x7ba0[38])[_0x7ba0[37]](_0x702cxb[_0x7ba0[18]][_0x7ba0[36]])[_0x7ba0[16]](function(_0x702cx12){if(!_0x702cx12){return _0x702cxc[_0x7ba0[31]](404)};return [_0x702cx12,ExtractedReport[_0x7ba0[49]]({name:_0x702cx12[_0x7ba0[46]],startDate:_0x702cxb[_0x7ba0[17]][_0x7ba0[47]]||null,endDate:_0x702cxb[_0x7ba0[17]][_0x7ba0[48]]||null,output:_0x702cx15})]})[_0x7ba0[45]](function(_0x702cx12,_0x702cx16){extractUtils[_0x7ba0[44]+_0x702cx15](_0x702cx12,_0x702cxb[_0x7ba0[17]],_0x702cx16[_0x7ba0[36]])})[_0x7ba0[13]](function(_0x702cxe){console[_0x7ba0[23]](_0x702cxe);return handleError(_0x702cxc,_0x702cxe)});return _0x702cxc[_0x7ba0[31]](200)}exports[_0x7ba0[50]]=function(_0x702cxb,_0x702cxc){return CustomReport[_0x7ba0[39]](_0x7ba0[38])[_0x7ba0[37]](_0x702cxb[_0x7ba0[18]][_0x7ba0[36]])[_0x7ba0[16]](function(_0x702cx12){if(!_0x702cx12){return _0x702cxc[_0x7ba0[31]](404)};return _0x702cxc[_0x7ba0[14]](_0x702cx12)})[_0x7ba0[13]](function(_0x702cxe){return handleError(_0x702cxc,_0x702cxe)})};exports[_0x7ba0[51]]=function(_0x702cxb,_0x702cxc){var _0x702cx17;return sequelize[_0x7ba0[57]](function(_0x702cx18){return CustomReport[_0x7ba0[39]](_0x7ba0[38])[_0x7ba0[37]](_0x702cxb[_0x7ba0[18]][_0x7ba0[36]])[_0x7ba0[16]](function(_0x702cx12){if(!_0x702cx12){return _0x702cxc[_0x7ba0[31]](404)};var _0x702cx19=_0x702cx12[_0x7ba0[32]];delete _0x702cx19[_0x7ba0[36]];delete _0x702cx19[_0x7ba0[52]];delete _0x702cx19[_0x7ba0[53]];_0x702cx19[_0x7ba0[54]]=_0x702cxb[_0x7ba0[55]][_0x7ba0[54]];_0x702cx17=_[_0x7ba0[56]](_0x702cx19.Fields,_0x7ba0[32]);return CustomReport[_0x7ba0[49]](_0x702cx19,{transaction:_0x702cx18})})[_0x7ba0[16]](function(_0x702cx12){return [_0x702cx12,_0x702cx17]})[_0x7ba0[45]](createFields(_0x702cx18))})[_0x7ba0[16]](function(){return _0x702cxc[_0x7ba0[31]](201)})[_0x7ba0[13]](function(_0x702cxe){console[_0x7ba0[23]](_0x702cxe);return handleError(_0x702cxc,_0x702cxe)})};exports[_0x7ba0[49]]=function(_0x702cxb,_0x702cxc){var _0x702cx1a;return sequelize[_0x7ba0[57]](function(_0x702cx18){return CustomReport[_0x7ba0[49]](_0x702cxb[_0x7ba0[55]],{transaction:_0x702cx18})[_0x7ba0[16]](function(_0x702cx12){_0x702cx1a=_0x702cx12;return [_0x702cx1a,_0x702cxb[_0x7ba0[55]][_0x7ba0[58]]]})[_0x7ba0[45]](createFields(_0x702cx18))})[_0x7ba0[16]](function(){return _0x702cxc[_0x7ba0[15]](201)[_0x7ba0[14]](_0x702cx1a)})[_0x7ba0[13]](function(_0x702cxe){console[_0x7ba0[23]](_0x702cxe);return handleError(_0x702cxc,_0x702cxe)})};exports[_0x7ba0[59]]=function(_0x702cxb,_0x702cxc){if(_0x702cxb[_0x7ba0[55]][_0x7ba0[36]]){delete _0x702cxb[_0x7ba0[55]][_0x7ba0[36]]};var _0x702cx1a;return sequelize[_0x7ba0[57]](function(_0x702cx18){return CustomReport[_0x7ba0[37]](_0x702cxb[_0x7ba0[18]][_0x7ba0[36]])[_0x7ba0[16]](function(_0x702cx12){if(!_0x702cx12){return _0x702cxc[_0x7ba0[31]](404)};var _0x702cx1b=_[_0x7ba0[19]](_0x702cx12,_0x702cxb[_0x7ba0[55]]);return _0x702cx12[_0x7ba0[61]]({transaction:_0x702cx18})})[_0x7ba0[16]](function(_0x702cx12){_0x702cx1a=_0x702cx12;if(_0x702cxb[_0x7ba0[55]][_0x7ba0[58]]){return ReportField[_0x7ba0[60]]({where:{CustomReportId:_0x702cxb[_0x7ba0[18]][_0x7ba0[36]]},transaction:_0x702cx18})}})[_0x7ba0[16]](function(){return [_0x702cx1a,_0x702cxb[_0x7ba0[55]][_0x7ba0[58]]]})[_0x7ba0[45]](createFields(_0x702cx18))})[_0x7ba0[16]](function(){return _0x702cxc[_0x7ba0[31]](200)})[_0x7ba0[13]](function(_0x702cxe){console[_0x7ba0[23]](_0x702cxe);return handleError(_0x702cxc,_0x702cxe)})};function createFields(_0x702cx18){return function(_0x702cx12,_0x702cx1d){if(_0x702cx1d&&Array[_0x7ba0[62]](_0x702cx1d)&&_0x702cx1d[_0x7ba0[24]]){var _0x702cx1e=getTable(_0x702cx12[_0x7ba0[63]]);if(_0x702cx1e){var _0x702cx1f;return _0x702cx1e[_0x7ba0[79]]()[_0x7ba0[16]](function(_0x702cx24){_0x702cx1f=_[_0x7ba0[77]](_0x702cx24);return Metric[_0x7ba0[78]]()})[_0x7ba0[16]](function(_0x702cx20){var _0x702cx21=[];_0x702cx20=_[_0x7ba0[56]](_0x702cx20,_0x7ba0[32]);_0x702cx1d[_0x7ba0[76]](function(_0x702cx22){_0x702cx22[_0x7ba0[65]]=_0x702cx12[_0x7ba0[36]];if(_0x702cx22[_0x7ba0[66]]){var _0x702cx23=_[_0x7ba0[67]](_0x702cx20,{id:_0x702cx22[_0x7ba0[66]]});if(_0x702cx23){_0x702cx22[_0x7ba0[68]]=_0x702cx23[_0x7ba0[69]];_0x702cx21[_0x7ba0[70]](ReportField[_0x7ba0[49]](_0x702cx22,{transaction:_0x702cx18}))}else {throw  new Error(_0x7ba0[71]+_0x702cx22[_0x7ba0[66]]+_0x7ba0[72])}}else {if(_[_0x7ba0[73]](_0x702cx1f,_0x702cx22[_0x7ba0[68]])){_0x702cx21[_0x7ba0[70]](ReportField[_0x7ba0[49]](_0x702cx22,{transaction:_0x702cx18}))}else {throw  new Error(_0x7ba0[74]+_0x702cx22[_0x7ba0[68]]+_0x7ba0[75])}}});return _0x702cx21})[_0x7ba0[64]]()}else {throw  new Error(_0x7ba0[80])}}}}function getTable(_0x702cx26){var _0x702cx1e;switch(_0x702cx26){case _0x7ba0[83]:_0x702cx1e=require(_0x7ba0[4])[_0x7ba0[82]][_0x7ba0[81]];break;case _0x7ba0[85]:_0x702cx1e=require(_0x7ba0[4])[_0x7ba0[82]][_0x7ba0[84]];break;case _0x7ba0[87]:_0x702cx1e=require(_0x7ba0[4])[_0x7ba0[82]][_0x7ba0[86]];break;case _0x7ba0[89]:_0x702cx1e=require(_0x7ba0[4])[_0x7ba0[82]][_0x7ba0[88]];break;default:};return _0x702cx1e}exports[_0x7ba0[60]]=function(_0x702cxb,_0x702cxc){CustomReport[_0x7ba0[37]](_0x702cxb[_0x7ba0[18]][_0x7ba0[36]])[_0x7ba0[16]](function(_0x702cx12){if(!_0x702cx12){return _0x702cxc[_0x7ba0[31]](404)};_0x702cx12[_0x7ba0[60]]()[_0x7ba0[16]](function(){return _0x702cxc[_0x7ba0[31]](204)})[_0x7ba0[13]](function(_0x702cxe){return handleError(_0x702cxc,_0x702cxe)})})[_0x7ba0[13]](function(_0x702cxe){return handleError(_0x702cxc,_0x702cxe)})};exports[_0x7ba0[90]]=function(_0x702cxb,_0x702cxc){CustomReport[_0x7ba0[60]]({where:{id:_0x702cxb[_0x7ba0[17]][_0x7ba0[91]]},individualHooks:true})[_0x7ba0[16]](function(){return _0x702cxc[_0x7ba0[31]](204)})[_0x7ba0[13]](function(_0x702cxe){return handleError(_0x702cxc,_0x702cxe)})};function handleError(_0x702cxc,_0x702cxe){return _0x702cxc[_0x7ba0[15]](500)[_0x7ba0[14]](_0x702cxe)}
\ No newline at end of file
index 07bf827..107b647 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var CustomReport = require('../../models').CustomReport;
-
-exports.register = function(socket) {
-  CustomReport.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  CustomReport.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('custom_report:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('custom_report:remove', doc);
-}
+var _0xa6b6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xa6b6[0];var CustomReport=require(_0xa6b6[2])[_0xa6b6[1]];exports[_0xa6b6[3]]=function(_0xb292x2){CustomReport[_0xa6b6[4]](function(_0xb292x3){onSave(_0xb292x2,_0xb292x3)});CustomReport[_0xa6b6[5]](function(_0xb292x3){onRemove(_0xb292x2,_0xb292x3)})};function onSave(_0xb292x2,_0xb292x3,_0xb292x5){_0xb292x2[_0xa6b6[7]](_0xa6b6[6],_0xb292x3)}function onRemove(_0xb292x2,_0xb292x3,_0xb292x5){_0xb292x2[_0xa6b6[7]](_0xa6b6[8],_0xb292x3)}
\ No newline at end of file
index 905f802..e5953c4 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/analytics/reports/custom', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/analytic/reports/custom')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0x8269=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x63\x75\x73\x74\x6F\x6D","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x63\x75\x73\x74\x6F\x6D","\x67\x65\x74"];_0x8269[0];var should=require(_0x8269[1]);var app=require(_0x8269[2]);var request=require(_0x8269[3]);describe(_0x8269[4],function(){it(_0x8269[5],function(_0x8979x4){request(app)[_0x8269[13]](_0x8269[12])[_0x8269[11]](200)[_0x8269[11]](_0x8269[10],/json/)[_0x8269[9]](function(_0x8979x5,_0x8979x6){if(_0x8979x5){return _0x8979x4(_0x8979x5)};_0x8979x6[_0x8269[8]][_0x8269[1]][_0x8269[7]][_0x8269[6]](Array);_0x8979x4()})})})
\ No newline at end of file
index 132d3cc..5e8f88f 100644 (file)
@@ -1,21 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./custom_report.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id/preview', controller.preview);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.get('/:id/extract/pdf', controller.extractPdf);
-router.get('/:id/extract/csv', controller.extractCsv);
-router.post('/import', controller.create);
-router.post('/:id/copy', controller.copy);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/', controller.bulkDestroy);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0xb4b3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64\x2F\x70\x72\x65\x76\x69\x65\x77","\x70\x72\x65\x76\x69\x65\x77","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x65\x78\x74\x72\x61\x63\x74\x2F\x70\x64\x66","\x65\x78\x74\x72\x61\x63\x74\x50\x64\x66","\x2F\x3A\x69\x64\x2F\x65\x78\x74\x72\x61\x63\x74\x2F\x63\x73\x76","\x65\x78\x74\x72\x61\x63\x74\x43\x73\x76","\x2F\x69\x6D\x70\x6F\x72\x74","\x2F\x3A\x69\x64\x2F\x63\x6F\x70\x79","\x63\x6F\x70\x79","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xb4b3[0];var express=require(_0xb4b3[1]);var controller=require(_0xb4b3[2]);var router=express.Router();router[_0xb4b3[5]](_0xb4b3[3],controller[_0xb4b3[4]]);router[_0xb4b3[5]](_0xb4b3[6],controller[_0xb4b3[7]]);router[_0xb4b3[5]](_0xb4b3[8],controller[_0xb4b3[9]]);router[_0xb4b3[11]](_0xb4b3[3],controller[_0xb4b3[10]]);router[_0xb4b3[5]](_0xb4b3[12],controller[_0xb4b3[13]]);router[_0xb4b3[5]](_0xb4b3[14],controller[_0xb4b3[15]]);router[_0xb4b3[11]](_0xb4b3[16],controller[_0xb4b3[10]]);router[_0xb4b3[11]](_0xb4b3[17],controller[_0xb4b3[18]]);router[_0xb4b3[20]](_0xb4b3[8],controller[_0xb4b3[19]]);router[_0xb4b3[21]](_0xb4b3[8],controller[_0xb4b3[19]]);router[_0xb4b3[23]](_0xb4b3[3],controller[_0xb4b3[22]]);router[_0xb4b3[23]](_0xb4b3[8],controller[_0xb4b3[24]]);module[_0xb4b3[25]]=router
\ No newline at end of file
index 4eb8756..ad3dfe5 100644 (file)
@@ -1,147 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var Dashboard = require('../../models').Dashboard;
-var Util = require('../../config/util');
-
-// Get list of dashboards
-exports.index = function(req, res, next) {
-  return Dashboard
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single dashboard
-exports.all = function(req, res) {
-  Dashboard
-    .findAll()
-    .then(function(dashboards) {
-      if (!dashboards) {
-        return res.sendStatus(404);
-      }
-      return res.status(200).send(dashboards);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single dashboard
-exports.show = function(req, res) {
-  Dashboard
-    .findById(req.params.id)
-    .then(function(dashboard) {
-      if (!dashboard) {
-        return res.sendStatus(404);
-      }
-      return res.send(dashboard);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new dashboard in the DB.
-exports.create = function(req, res) {
-  Dashboard
-    .create(req.body)
-    .then(function(dashboard) {
-      return res.status(201).send(dashboard);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Clone a dashboard in the DB.
-exports.clone = function(req, res) {
-  Dashboard
-    .findById(req.params.id)
-    .then(function(dashboard) {
-      var newDashboard = dashboard.dataValues;
-      delete newDashboard.id;
-      newDashboard.editable = true;
-      newDashboard.defaultEntry = false;
-      newDashboard.name = req.body.name || newDashboard.name;
-      return Dashboard
-        .create(newDashboard);
-    })
-    .then(function(dashboard) {
-      return res.status(201).send(dashboard);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing dashboard in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  Dashboard
-    .findById(req.params.id)
-    .then(function(dashboard) {
-      if (!dashboard) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(dashboard, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(dashboard);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a dashboard from the DB.
-exports.destroy = function(req, res) {
-  Dashboard
-    .findById(req.params.id)
-    .then(function(dashboard) {
-      if (!dashboard) {
-        return res.sendStatus(404);
-      }
-      dashboard.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.bulkDestroy = function(req, res) {
-  Dashboard
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x2732=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x61\x6C\x6C","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x63\x6C\x6F\x6E\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x65\x64\x69\x74\x61\x62\x6C\x65","\x64\x65\x66\x61\x75\x6C\x74\x45\x6E\x74\x72\x79","\x6E\x61\x6D\x65","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0x2732[0];var _=require(_0x2732[1]);var util=require(_0x2732[2]);var Dashboard=require(_0x2732[4])[_0x2732[3]];var Util=require(_0x2732[5]);exports[_0x2732[6]]=function(_0x1792x5,_0x1792x6,_0x1792x7){return Dashboard[_0x2732[13]](Util[_0x2732[12]](_0x1792x5[_0x2732[11]]))[_0x2732[10]](function(_0x1792x9){_0x1792x6[_0x2732[9]](200)[_0x2732[8]](_0x1792x9)})[_0x2732[7]](function(_0x1792x8){return handleError(_0x1792x6,_0x1792x8)})};exports[_0x2732[14]]=function(_0x1792x5,_0x1792x6){Dashboard[_0x2732[16]]()[_0x2732[10]](function(_0x1792xa){if(!_0x1792xa){return _0x1792x6[_0x2732[15]](404)};return _0x1792x6[_0x2732[9]](200)[_0x2732[8]](_0x1792xa)})[_0x2732[7]](function(_0x1792x8){return handleError(_0x1792x6,_0x1792x8)})};exports[_0x2732[17]]=function(_0x1792x5,_0x1792x6){Dashboard[_0x2732[20]](_0x1792x5[_0x2732[19]][_0x2732[18]])[_0x2732[10]](function(_0x1792xb){if(!_0x1792xb){return _0x1792x6[_0x2732[15]](404)};return _0x1792x6[_0x2732[8]](_0x1792xb)})[_0x2732[7]](function(_0x1792x8){return handleError(_0x1792x6,_0x1792x8)})};exports[_0x2732[21]]=function(_0x1792x5,_0x1792x6){Dashboard[_0x2732[21]](_0x1792x5[_0x2732[22]])[_0x2732[10]](function(_0x1792xb){return _0x1792x6[_0x2732[9]](201)[_0x2732[8]](_0x1792xb)})[_0x2732[7]](function(_0x1792x8){return handleError(_0x1792x6,_0x1792x8)})};exports[_0x2732[23]]=function(_0x1792x5,_0x1792x6){Dashboard[_0x2732[20]](_0x1792x5[_0x2732[19]][_0x2732[18]])[_0x2732[10]](function(_0x1792xb){var _0x1792xc=_0x1792xb[_0x2732[24]];delete _0x1792xc[_0x2732[18]];_0x1792xc[_0x2732[25]]=true;_0x1792xc[_0x2732[26]]=false;_0x1792xc[_0x2732[27]]=_0x1792x5[_0x2732[22]][_0x2732[27]]||_0x1792xc[_0x2732[27]];return Dashboard[_0x2732[21]](_0x1792xc)})[_0x2732[10]](function(_0x1792xb){return _0x1792x6[_0x2732[9]](201)[_0x2732[8]](_0x1792xb)})[_0x2732[7]](function(_0x1792x8){return handleError(_0x1792x6,_0x1792x8)})};exports[_0x2732[28]]=function(_0x1792x5,_0x1792x6){if(_0x1792x5[_0x2732[22]][_0x2732[18]]){delete _0x1792x5[_0x2732[22]][_0x2732[18]]};Dashboard[_0x2732[20]](_0x1792x5[_0x2732[19]][_0x2732[18]])[_0x2732[10]](function(_0x1792xb){if(!_0x1792xb){return _0x1792x6[_0x2732[15]](404)};var _0x1792xd=_[_0x2732[29]](_0x1792xb,_0x1792x5[_0x2732[22]]);_0x1792xd[_0x2732[30]]()[_0x2732[10]](function(){return _0x1792x6[_0x2732[9]](200)[_0x2732[8]](_0x1792xb)})[_0x2732[7]](function(_0x1792x8){return handleError(_0x1792x6,_0x1792x8)})})[_0x2732[7]](function(_0x1792x8){return handleError(_0x1792x6,_0x1792x8)})};exports[_0x2732[31]]=function(_0x1792x5,_0x1792x6){Dashboard[_0x2732[20]](_0x1792x5[_0x2732[19]][_0x2732[18]])[_0x2732[10]](function(_0x1792xb){if(!_0x1792xb){return _0x1792x6[_0x2732[15]](404)};_0x1792xb[_0x2732[31]]()[_0x2732[10]](function(){return _0x1792x6[_0x2732[15]](204)})[_0x2732[7]](function(_0x1792x8){return handleError(_0x1792x6,_0x1792x8)})})[_0x2732[7]](function(_0x1792x8){return handleError(_0x1792x6,_0x1792x8)})};exports[_0x2732[32]]=function(_0x1792x5,_0x1792x6){Dashboard[_0x2732[31]]({where:{id:_0x1792x5[_0x2732[11]][_0x2732[33]]},individualHooks:true})[_0x2732[10]](function(){return _0x1792x6[_0x2732[15]](204)})[_0x2732[7]](function(_0x1792x8){return handleError(_0x1792x6,_0x1792x8)})};function handleError(_0x1792x6,_0x1792x8){return _0x1792x6[_0x2732[9]](500)[_0x2732[8]](_0x1792x8)}
\ No newline at end of file
index 9bf2215..fd80b6a 100644 (file)
@@ -1,27 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Dashboard = require('../../models').Dashboard;
-
-exports.register = function(socket) {
-  Dashboard.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Dashboard.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  Dashboard.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('dashboard:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('dashboard:remove', doc);
-}
+var _0x3a09=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3a09[0];var Dashboard=require(_0x3a09[2])[_0x3a09[1]];exports[_0x3a09[3]]=function(_0xef89x2){Dashboard[_0x3a09[4]](function(_0xef89x3){onSave(_0xef89x2,_0xef89x3)});Dashboard[_0x3a09[5]](function(_0xef89x3){onSave(_0xef89x2,_0xef89x3)});Dashboard[_0x3a09[6]](function(_0xef89x3){onRemove(_0xef89x2,_0xef89x3)})};function onSave(_0xef89x2,_0xef89x3,_0xef89x5){_0xef89x2[_0x3a09[8]](_0x3a09[7],_0xef89x3)}function onRemove(_0xef89x2,_0xef89x3,_0xef89x5){_0xef89x2[_0x3a09[8]](_0x3a09[9],_0xef89x3)}
\ No newline at end of file
index 4784e74..26ec61b 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/dashboards', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/dashboards')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x228e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x67\x65\x74"];_0x228e[0];var should=require(_0x228e[1]);var app=require(_0x228e[2]);var request=require(_0x228e[3]);describe(_0x228e[4],function(){it(_0x228e[5],function(_0x12a9x4){request(app)[_0x228e[13]](_0x228e[12])[_0x228e[11]](200)[_0x228e[11]](_0x228e[10],/json/)[_0x228e[9]](function(_0x12a9x5,_0x12a9x6){if(_0x12a9x5){return _0x12a9x4(_0x12a9x5)};_0x12a9x6[_0x228e[8]][_0x228e[1]][_0x228e[7]][_0x228e[6]](Array);_0x12a9x4()})})})
\ No newline at end of file
index 393fb11..feae8b4 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./dashboard.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/all', auth.isAuthenticated(), controller.all);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/:id/clone', auth.isAuthenticated(), controller.clone);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x3aa8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x61\x6C\x6C","\x61\x6C\x6C","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x63\x6C\x6F\x6E\x65","\x63\x6C\x6F\x6E\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x3aa8[0];var express=require(_0x3aa8[1]);var controller=require(_0x3aa8[2]);var auth=require(_0x3aa8[3]);var router=express.Router();router[_0x3aa8[7]](_0x3aa8[4],auth[_0x3aa8[5]](),controller[_0x3aa8[6]]);router[_0x3aa8[7]](_0x3aa8[8],auth[_0x3aa8[5]](),controller[_0x3aa8[9]]);router[_0x3aa8[7]](_0x3aa8[10],auth[_0x3aa8[5]](),controller[_0x3aa8[11]]);router[_0x3aa8[13]](_0x3aa8[4],auth[_0x3aa8[5]](),controller[_0x3aa8[12]]);router[_0x3aa8[13]](_0x3aa8[14],auth[_0x3aa8[5]](),controller[_0x3aa8[15]]);router[_0x3aa8[17]](_0x3aa8[10],auth[_0x3aa8[5]](),controller[_0x3aa8[16]]);router[_0x3aa8[18]](_0x3aa8[10],auth[_0x3aa8[5]](),controller[_0x3aa8[16]]);router[_0x3aa8[20]](_0x3aa8[4],auth[_0x3aa8[5]](),controller[_0x3aa8[19]]);router[_0x3aa8[20]](_0x3aa8[10],auth[_0x3aa8[5]](),controller[_0x3aa8[21]]);module[_0x3aa8[22]]=router
\ No newline at end of file
index 4fc95af..7b8fb90 100644 (file)
@@ -1,234 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var DefaultReport = require('../../models').DefaultReport;
-var sequelize = require('../../models').sequelize;
-var CustomReport = require('../../models').CustomReport;
-var ExtractedReport = require('../../models').ExtractedReport;
-var extractUtils = require('../../utils/report_extraction');
-var reportBuildUtils = require('../../utils/report_build');
-var Util = require('../../config/util');
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return DefaultReport
-    .findAndCountAll(Util.getQuery(_.merge(req.query, req.params)))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-
-exports.preview = function(req, res) {
-  var _countAll;
-  DefaultReport
-    .findById(req.params.id, {
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(report) {
-      console.log('found report');
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      var query = reportBuildUtils.buildReport(report.dataValues, req.query);
-      // console.log(query);
-      return sequelize.query(query, {
-        type: sequelize.QueryTypes.SELECT
-      });
-    })
-    .then(function(results) {
-      _countAll = results.length;
-      if (req.query.limit) {
-        var results = _(results).slice(req.query.offset || 0).take(req.query.limit).value();
-      }
-      res.status(200).send({
-        rows: results,
-        count: _countAll
-      });
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-exports.extractPdf = function(req, res) {
-  // console.log('extractPdf api function');
-  docExtract(req, res, 'PDF')
-};
-
-exports.extractCsv = function(req, res) {
-  // console.log('extractCsv api function');
-  docExtract(req, res, 'CSV');
-};
-
-function docExtract(req, res, typeFunction) {
-  // console.log('common docExtract api function');
-  DefaultReport
-    .findById(req.params.id, {
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(report) {
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      // console.log('found the report, creating the new DB row for extracted reports..');
-      //CREATE A DB ROW IN A TABLE WITH THE REPORT INFO, QUERY DATES, AND THE STATUS 'ELABORATING'
-      return [report, ExtractedReport.create({
-        name: report.name,
-        startDate: req.query.startDate || null,
-        endDate: req.query.endDate || null,
-        output: typeFunction
-      })]
-    })
-    .spread(function(report, extractedReport) {
-      // console.log('created new extracted reports db entry, calling external extraction function: ' + typeFunction);
-      extractUtils['extract' + typeFunction](report, req.query, extractedReport.id);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-  return res.sendStatus(200);
-}
-
-function getConditions(group) {
-  if (!group) return "";
-  for (var str = "(", i = 0; i < group.rules.length; i++) {
-    i > 0 && (str += " " + group.operator + " ");
-    str += group.rules[i].group ?
-      getConditions(group.rules[i].group) :
-      group.rules[i].field + " " + group.rules[i].condition + " '" + (group.rules[i].condition === 'LIKE' ? "%" + group.rules[i].value + "%" : group.rules[i].value) + "'";
-  }
-
-  return str + ')';
-}
-
-// Get a single report
-exports.show = function(req, res) {
-  DefaultReport
-    .findById(req.params.id, {
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(report) {
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      return res.send(report);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Copy a default report
-exports.copy = function(req, res) {
-  DefaultReport
-    .findById(req.params.id, {
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(report) {
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      var newReport = report.dataValues;
-      delete newReport.id;
-      delete newReport.createdAt;
-      delete newReport.updatedAt;
-      newReport.parent = req.body.parent;
-      newReport.Fields = _.map(newReport.Fields, 'dataValues');
-      _.forEach(newReport.Fields, function(elem) {
-        delete elem.id;
-        delete elem.DefaultReportId;
-        delete elem.createdAt;
-        delete elem.updatedAt;
-      });
-
-      return CustomReport.create(newReport, {
-        include: [{
-          all: true
-        }]
-      })
-    })
-    .then(function() {
-      return res.sendStatus(201);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Creates a new report in the DB.
-exports.create = function(req, res) {
-  DefaultReport
-    .create(req.body)
-    .then(function(report) {
-      return res.status(201).send(report);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing report in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  DefaultReport
-    .findById(req.params.id)
-    .then(function(report) {
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(report, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(report);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a report from the DB.
-exports.destroy = function(req, res) {
-  DefaultReport
-    .findById(req.params.id)
-    .then(function(report) {
-      if (!report) {
-        return res.sendStatus(404);
-      }
-      report.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xc605=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x5F\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x5F\x62\x75\x69\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x70\x61\x72\x61\x6D\x73","\x6D\x65\x72\x67\x65","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x70\x72\x65\x76\x69\x65\x77","\x6C\x6F\x67","\x6C\x65\x6E\x67\x74\x68","\x6C\x69\x6D\x69\x74","\x76\x61\x6C\x75\x65","\x74\x61\x6B\x65","\x6F\x66\x66\x73\x65\x74","\x73\x6C\x69\x63\x65","\x66\x6F\x75\x6E\x64\x20\x72\x65\x70\x6F\x72\x74","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x62\x75\x69\x6C\x64\x52\x65\x70\x6F\x72\x74","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x65\x78\x74\x72\x61\x63\x74\x50\x64\x66","\x50\x44\x46","\x65\x78\x74\x72\x61\x63\x74\x43\x73\x76","\x43\x53\x56","\x65\x78\x74\x72\x61\x63\x74","\x73\x70\x72\x65\x61\x64","\x6E\x61\x6D\x65","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x65\x6E\x64\x44\x61\x74\x65","\x63\x72\x65\x61\x74\x65","","\x28","\x72\x75\x6C\x65\x73","\x20","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x67\x72\x6F\x75\x70","\x66\x69\x65\x6C\x64","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x20\x27","\x4C\x49\x4B\x45","\x25","\x27","\x29","\x73\x68\x6F\x77","\x63\x6F\x70\x79","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x70\x61\x72\x65\x6E\x74","\x62\x6F\x64\x79","\x46\x69\x65\x6C\x64\x73","\x6D\x61\x70","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x49\x64","\x66\x6F\x72\x45\x61\x63\x68","\x75\x70\x64\x61\x74\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xc605[0];var _=require(_0xc605[1]);var util=require(_0xc605[2]);var DefaultReport=require(_0xc605[4])[_0xc605[3]];var sequelize=require(_0xc605[4])[_0xc605[5]];var CustomReport=require(_0xc605[4])[_0xc605[6]];var ExtractedReport=require(_0xc605[4])[_0xc605[7]];var extractUtils=require(_0xc605[8]);var reportBuildUtils=require(_0xc605[9]);var Util=require(_0xc605[10]);exports[_0xc605[11]]=function(_0x978axa,_0x978axb,_0x978axc){return DefaultReport[_0xc605[20]](Util[_0xc605[19]](_[_0xc605[18]](_0x978axa[_0xc605[16]],_0x978axa[_0xc605[17]])))[_0xc605[15]](function(_0x978axe){_0x978axb[_0xc605[14]](200)[_0xc605[13]](_0x978axe)})[_0xc605[12]](function(_0x978axd){return handleError(_0x978axb,_0x978axd)})};exports[_0xc605[21]]=function(_0x978axa,_0x978axb){var _0x978axf;DefaultReport[_0xc605[36]](_0x978axa[_0xc605[17]][_0xc605[35]],{include:[{all:true}]})[_0xc605[15]](function(_0x978ax11){console[_0xc605[22]](_0xc605[29]);if(!_0x978ax11){return _0x978axb[_0xc605[30]](404)};var _0x978ax12=reportBuildUtils[_0xc605[32]](_0x978ax11[_0xc605[31]],_0x978axa[_0xc605[16]]);return sequelize[_0xc605[16]](_0x978ax12,{type:sequelize[_0xc605[34]][_0xc605[33]]})})[_0xc605[15]](function(_0x978ax10){_0x978axf=_0x978ax10[_0xc605[23]];if(_0x978axa[_0xc605[16]][_0xc605[24]]){var _0x978ax10=_(_0x978ax10)[_0xc605[28]](_0x978axa[_0xc605[16]][_0xc605[27]]||0)[_0xc605[26]](_0x978axa[_0xc605[16]][_0xc605[24]])[_0xc605[25]]()};_0x978axb[_0xc605[14]](200)[_0xc605[13]]({rows:_0x978ax10,count:_0x978axf})})[_0xc605[12]](function(_0x978axd){console[_0xc605[22]](_0x978axd);return handleError(_0x978axb,_0x978axd)})};exports[_0xc605[37]]=function(_0x978axa,_0x978axb){docExtract(_0x978axa,_0x978axb,_0xc605[38])};exports[_0xc605[39]]=function(_0x978axa,_0x978axb){docExtract(_0x978axa,_0x978axb,_0xc605[40])};function docExtract(_0x978axa,_0x978axb,_0x978ax14){DefaultReport[_0xc605[36]](_0x978axa[_0xc605[17]][_0xc605[35]],{include:[{all:true}]})[_0xc605[15]](function(_0x978ax11){if(!_0x978ax11){return _0x978axb[_0xc605[30]](404)};return [_0x978ax11,ExtractedReport[_0xc605[46]]({name:_0x978ax11[_0xc605[43]],startDate:_0x978axa[_0xc605[16]][_0xc605[44]]||null,endDate:_0x978axa[_0xc605[16]][_0xc605[45]]||null,output:_0x978ax14})]})[_0xc605[42]](function(_0x978ax11,_0x978ax15){extractUtils[_0xc605[41]+_0x978ax14](_0x978ax11,_0x978axa[_0xc605[16]],_0x978ax15[_0xc605[35]])})[_0xc605[12]](function(_0x978axd){console[_0xc605[22]](_0x978axd);return handleError(_0x978axb,_0x978axd)});return _0x978axb[_0xc605[30]](200)}function getConditions(_0x978ax17){if(!_0x978ax17){return _0xc605[47]};for(var _0x978ax18=_0xc605[48],_0x978ax19=0;_0x978ax19<_0x978ax17[_0xc605[49]][_0xc605[23]];_0x978ax19++){_0x978ax19>0&&(_0x978ax18+=_0xc605[50]+_0x978ax17[_0xc605[51]]+_0xc605[50]);_0x978ax18+=_0x978ax17[_0xc605[49]][_0x978ax19][_0xc605[52]]?getConditions(_0x978ax17[_0xc605[49]][_0x978ax19][_0xc605[52]]):_0x978ax17[_0xc605[49]][_0x978ax19][_0xc605[53]]+_0xc605[50]+_0x978ax17[_0xc605[49]][_0x978ax19][_0xc605[54]]+_0xc605[55]+(_0x978ax17[_0xc605[49]][_0x978ax19][_0xc605[54]]===_0xc605[56]?_0xc605[57]+_0x978ax17[_0xc605[49]][_0x978ax19][_0xc605[25]]+_0xc605[57]:_0x978ax17[_0xc605[49]][_0x978ax19][_0xc605[25]])+_0xc605[58]};return _0x978ax18+_0xc605[59]}exports[_0xc605[60]]=function(_0x978axa,_0x978axb){DefaultReport[_0xc605[36]](_0x978axa[_0xc605[17]][_0xc605[35]],{include:[{all:true}]})[_0xc605[15]](function(_0x978ax11){if(!_0x978ax11){return _0x978axb[_0xc605[30]](404)};return _0x978axb[_0xc605[13]](_0x978ax11)})[_0xc605[12]](function(_0x978axd){return handleError(_0x978axb,_0x978axd)})};exports[_0xc605[61]]=function(_0x978axa,_0x978axb){DefaultReport[_0xc605[36]](_0x978axa[_0xc605[17]][_0xc605[35]],{include:[{all:true}]})[_0xc605[15]](function(_0x978ax11){if(!_0x978ax11){return _0x978axb[_0xc605[30]](404)};var _0x978ax1a=_0x978ax11[_0xc605[31]];delete _0x978ax1a[_0xc605[35]];delete _0x978ax1a[_0xc605[62]];delete _0x978ax1a[_0xc605[63]];_0x978ax1a[_0xc605[64]]=_0x978axa[_0xc605[65]][_0xc605[64]];_0x978ax1a[_0xc605[66]]=_[_0xc605[67]](_0x978ax1a.Fields,_0xc605[31]);_[_0xc605[69]](_0x978ax1a.Fields,function(_0x978ax1b){delete _0x978ax1b[_0xc605[35]];delete _0x978ax1b[_0xc605[68]];delete _0x978ax1b[_0xc605[62]];delete _0x978ax1b[_0xc605[63]]});return CustomReport[_0xc605[46]](_0x978ax1a,{include:[{all:true}]})})[_0xc605[15]](function(){return _0x978axb[_0xc605[30]](201)})[_0xc605[12]](function(_0x978axd){console[_0xc605[22]](_0x978axd);return handleError(_0x978axb,_0x978axd)})};exports[_0xc605[46]]=function(_0x978axa,_0x978axb){DefaultReport[_0xc605[46]](_0x978axa[_0xc605[65]])[_0xc605[15]](function(_0x978ax11){return _0x978axb[_0xc605[14]](201)[_0xc605[13]](_0x978ax11)})[_0xc605[12]](function(_0x978axd){return handleError(_0x978axb,_0x978axd)})};exports[_0xc605[70]]=function(_0x978axa,_0x978axb){if(_0x978axa[_0xc605[65]][_0xc605[35]]){delete _0x978axa[_0xc605[65]][_0xc605[35]]};DefaultReport[_0xc605[36]](_0x978axa[_0xc605[17]][_0xc605[35]])[_0xc605[15]](function(_0x978ax11){if(!_0x978ax11){return _0x978axb[_0xc605[30]](404)};var _0x978ax1c=_[_0xc605[18]](_0x978ax11,_0x978axa[_0xc605[65]]);_0x978ax1c[_0xc605[71]]()[_0xc605[15]](function(){return _0x978axb[_0xc605[14]](200)[_0xc605[13]](_0x978ax11)})[_0xc605[12]](function(_0x978axd){return handleError(_0x978axb,_0x978axd)})})[_0xc605[12]](function(_0x978axd){return handleError(_0x978axb,_0x978axd)})};exports[_0xc605[72]]=function(_0x978axa,_0x978axb){DefaultReport[_0xc605[36]](_0x978axa[_0xc605[17]][_0xc605[35]])[_0xc605[15]](function(_0x978ax11){if(!_0x978ax11){return _0x978axb[_0xc605[30]](404)};_0x978ax11[_0xc605[72]]()[_0xc605[15]](function(){return _0x978axb[_0xc605[30]](204)})[_0xc605[12]](function(_0x978axd){return handleError(_0x978axb,_0x978axd)})})[_0xc605[12]](function(_0x978axd){return handleError(_0x978axb,_0x978axd)})};function handleError(_0x978axb,_0x978axd){return _0x978axb[_0xc605[14]](500)[_0xc605[13]](_0x978axd)}
\ No newline at end of file
index 2acd563..ef3a277 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var DefaultReport = require('../../models').DefaultReport;
-
-exports.register = function(socket) {
-  DefaultReport.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  DefaultReport.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('default_report:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('default_report:remove', doc);
-}
+var _0x88e4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x88e4[0];var DefaultReport=require(_0x88e4[2])[_0x88e4[1]];exports[_0x88e4[3]]=function(_0x47abx2){DefaultReport[_0x88e4[4]](function(_0x47abx3){onSave(_0x47abx2,_0x47abx3)});DefaultReport[_0x88e4[5]](function(_0x47abx3){onRemove(_0x47abx2,_0x47abx3)})};function onSave(_0x47abx2,_0x47abx3,_0x47abx5){_0x47abx2[_0x88e4[7]](_0x88e4[6],_0x47abx3)}function onRemove(_0x47abx2,_0x47abx3,_0x47abx5){_0x47abx2[_0x88e4[7]](_0x88e4[8],_0x47abx3)}
\ No newline at end of file
index 2a6c81d..a3ef5a7 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/analytics/reports/default', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/analytic/reports/default')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0xc8ab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x64\x65\x66\x61\x75\x6C\x74","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x64\x65\x66\x61\x75\x6C\x74","\x67\x65\x74"];_0xc8ab[0];var should=require(_0xc8ab[1]);var app=require(_0xc8ab[2]);var request=require(_0xc8ab[3]);describe(_0xc8ab[4],function(){it(_0xc8ab[5],function(_0xaf37x4){request(app)[_0xc8ab[13]](_0xc8ab[12])[_0xc8ab[11]](200)[_0xc8ab[11]](_0xc8ab[10],/json/)[_0xc8ab[9]](function(_0xaf37x5,_0xaf37x6){if(_0xaf37x5){return _0xaf37x4(_0xaf37x5)};_0xaf37x6[_0xc8ab[8]][_0xc8ab[1]][_0xc8ab[7]][_0xc8ab[6]](Array);_0xaf37x4()})})})
\ No newline at end of file
index 550ecd6..fe1e769 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./default_report.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id/preview', controller.preview);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.get('/:id/extract/pdf', controller.extractPdf);
-router.get('/:id/extract/csv', controller.extractCsv);
-router.post('/:id/copy', controller.copy);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0xf656=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64\x2F\x70\x72\x65\x76\x69\x65\x77","\x70\x72\x65\x76\x69\x65\x77","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x65\x78\x74\x72\x61\x63\x74\x2F\x70\x64\x66","\x65\x78\x74\x72\x61\x63\x74\x50\x64\x66","\x2F\x3A\x69\x64\x2F\x65\x78\x74\x72\x61\x63\x74\x2F\x63\x73\x76","\x65\x78\x74\x72\x61\x63\x74\x43\x73\x76","\x2F\x3A\x69\x64\x2F\x63\x6F\x70\x79","\x63\x6F\x70\x79","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf656[0];var express=require(_0xf656[1]);var controller=require(_0xf656[2]);var router=express.Router();router[_0xf656[5]](_0xf656[3],controller[_0xf656[4]]);router[_0xf656[5]](_0xf656[6],controller[_0xf656[7]]);router[_0xf656[5]](_0xf656[8],controller[_0xf656[9]]);router[_0xf656[11]](_0xf656[3],controller[_0xf656[10]]);router[_0xf656[5]](_0xf656[12],controller[_0xf656[13]]);router[_0xf656[5]](_0xf656[14],controller[_0xf656[15]]);router[_0xf656[11]](_0xf656[16],controller[_0xf656[17]]);router[_0xf656[19]](_0xf656[8],controller[_0xf656[18]]);router[_0xf656[20]](_0xf656[8],controller[_0xf656[18]]);router[_0xf656[22]](_0xf656[8],controller[_0xf656[21]]);module[_0xf656[23]]=router
\ No newline at end of file
index 78e1902..8cf1879 100644 (file)
@@ -1,256 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var desk = require('desk.js');
-
-var DeskAccount = require('../../models').DeskAccount;
-
-// Get list of desk_accounts
-exports.index = function(req, res) {
-  var attributes = ['description', 'name', 'username', 'remoteUri'];
-  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
-  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
-
-  var query = {
-    where: {},
-    limit: per_page,
-    offset: page * per_page
-  };
-
-  _.forIn(req.query, function(value, key) {
-    switch (key) {
-      case 'per_page':
-      case 'page':
-        break;
-      case 'sort_by':
-        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
-        break;
-      case 'sort_order':
-        break;
-      case '$':
-        query.where.$or = [];
-        attributes.forEach(function(attribute) {
-          var tmp = {};
-          tmp[attribute] = {
-            $like: '%' + value + '%'
-          };
-
-          query.where.$or.push(tmp);
-        });
-        break;
-      default:
-        query.where[key] = {
-          $like: {}
-        };
-        query.where[key].$like = '%' + value + '%';
-    }
-  });
-
-  DeskAccount
-    .findAndCountAll(query)
-    .then(function(result) {
-
-      var total_pages = Math.ceil(result.count / per_page);
-      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
-      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
-
-      return res.status(200).send({
-        count: result.count,
-        rows: result.rows,
-        next_page: next_page,
-        previous_page: previous_page,
-        total_pages: total_pages
-      });
-
-    })
-    .catch(function(err) {
-      return res.status(500).send({
-        error: 'Something blew up!'
-      });
-    });
-};
-
-// Get a single desk_account
-exports.show = function(req, res) {
-  DeskAccount
-    .findById(req.params.id)
-    .then(function(desk_account) {
-      if (!desk_account) {
-        return res.sendStatus(404);
-      }
-      return res.send(desk_account);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new desk_account in the DB.
-exports.create = function(req, res, next) {
-  DeskAccount
-    .create(req.body)
-    .then(function(desk_account) {
-      return res.status(201).send(desk_account);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing desk_account in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  DeskAccount
-    .findById(req.params.id)
-    .then(function(desk_account) {
-      if (!desk_account) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(desk_account, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(desk_account);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a desk_account from the DB.
-exports.destroy = function(req, res) {
-  DeskAccount
-    .findById(req.params.id)
-    .then(function(desk_account) {
-      if (!desk_account) {
-        return res.sendStatus(404);
-      }
-      desk_account.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.checkAccount = function(req, res) {
-  DeskAccount
-    .findById(req.params.id)
-    .then(function(account) {
-      var desk_account = {
-        endpoint: stripTrailingSlash(account.remoteUri),
-        retry: false
-      };
-      if (account.authType === 'basic') {
-        desk_account.username = account.username;
-        desk_account.password = account.password;
-      } else if (account.authType === 'oauth') {
-        desk_account.consumerKey = account.consumerKey;
-        desk_account.consumerSecret = account.consumerSecret;
-        desk_account.token = account.token;
-        desk_account.tokenSecret = account.tokenSecret;
-      }
-      var client = desk.createClient(desk_account);
-      client.get('/api/v2/users/me', function(err, body, response) {
-        if (err) {
-          return handleError(res, err);
-        }
-        return res.sendStatus(200);
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.deskValidation = function(req, res) {
-  var where = {};
-  where[req.params.field] = req.body.value;
-  DeskAccount
-    .findAndCountAll({
-      where: where
-    })
-    .then(function(result) {
-      if (result.count) {
-        return res.status(200).send({
-          isValid: false,
-          value: req.body.value
-        });
-      }
-      return res.status(200).send({
-        isValid: true,
-        value: req.body.value
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.getFields = function(req, res) {
-  DeskAccount
-    .findById(req.params.id)
-    .then(function(account) {
-      var desk_account = {
-        endpoint: stripTrailingSlash(account.remoteUri),
-        retry: false
-      };
-      if (account.authType === 'basic') {
-        desk_account.username = account.username;
-        desk_account.password = account.password;
-      } else if (account.authType === 'oauth') {
-        desk_account.consumerKey = account.consumerKey;
-        desk_account.consumerSecret = account.consumerSecret;
-        desk_account.token = account.token;
-        desk_account.tokenSecret = account.tokenSecret;
-      }
-      var client = desk.createClient(desk_account);
-      client.get('/api/v2/custom_fields', function(err, body, response) {
-        if (err) {
-          return handleError(res, err);
-        }
-        return res.status(200).json(body._embedded.entries);
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-}
-
-exports.bulkDestroy = function(req, res) {
-  DeskAccount
-    .destroy({
-      where: {
-        id: req.query.id
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function stripTrailingSlash(str) {
-  if (str.substr(-1) === '/') {
-    return str.substr(0, str.length - 1);
-  }
-  return str;
-}
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x10a5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x64\x65\x73\x6B\x2E\x6A\x73","\x44\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x61\x75\x74\x68\x54\x79\x70\x65","\x62\x61\x73\x69\x63","\x70\x61\x73\x73\x77\x6F\x72\x64","\x6F\x61\x75\x74\x68","\x63\x6F\x6E\x73\x75\x6D\x65\x72\x4B\x65\x79","\x63\x6F\x6E\x73\x75\x6D\x65\x72\x53\x65\x63\x72\x65\x74","\x74\x6F\x6B\x65\x6E","\x74\x6F\x6B\x65\x6E\x53\x65\x63\x72\x65\x74","\x63\x72\x65\x61\x74\x65\x43\x6C\x69\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x76\x32\x2F\x75\x73\x65\x72\x73\x2F\x6D\x65","\x67\x65\x74","\x64\x65\x73\x6B\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x61\x70\x69\x2F\x76\x32\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x65\x6E\x74\x72\x69\x65\x73","\x5F\x65\x6D\x62\x65\x64\x64\x65\x64","\x6A\x73\x6F\x6E","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x73\x75\x62\x73\x74\x72","\x2F","\x6C\x65\x6E\x67\x74\x68"];_0x10a5[0];var _=require(_0x10a5[1]);var util=require(_0x10a5[2]);var desk=require(_0x10a5[3]);var DeskAccount=require(_0x10a5[5])[_0x10a5[4]];exports[_0x10a5[6]]=function(_0x9282x5,_0x9282x6){var _0x9282x7=[_0x10a5[7],_0x10a5[8],_0x10a5[9],_0x10a5[10]];var _0x9282x8=_0x9282x5[_0x10a5[12]][_0x10a5[11]]?parseInt(_0x9282x5[_0x10a5[12]][_0x10a5[11]],10):100;var _0x9282x9=_0x9282x5[_0x10a5[12]][_0x10a5[13]]?parseInt(_0x9282x5[_0x10a5[12]][_0x10a5[13]],10):0;var _0x9282xa={where:{},limit:_0x9282x8,offset:_0x9282x9*_0x9282x8};_[_0x10a5[27]](_0x9282x5[_0x10a5[12]],function(_0x9282xb,_0x9282xc){switch(_0x9282xc){case _0x10a5[11]:;case _0x10a5[13]:break;case _0x10a5[16]:_0x9282xa[_0x10a5[14]]=util[_0x10a5[19]](_0x10a5[15],_0x9282x5[_0x10a5[12]][_0x10a5[16]],_0x9282x5[_0x10a5[12]][_0x10a5[17]]||_0x10a5[18])||null;break;case _0x10a5[17]:break;case _0x10a5[25]:_0x9282xa[_0x10a5[21]][_0x10a5[20]]=[];_0x9282x7[_0x10a5[24]](function(_0x9282xd){var _0x9282xe={};_0x9282xe[_0x9282xd]={$like:_0x10a5[22]+_0x9282xb+_0x10a5[22]};_0x9282xa[_0x10a5[21]][_0x10a5[20]][_0x10a5[23]](_0x9282xe)});break;default:_0x9282xa[_0x10a5[21]][_0x9282xc]={$like:{}};_0x9282xa[_0x10a5[21]][_0x9282xc][_0x10a5[26]]=_0x10a5[22]+_0x9282xb+_0x10a5[22]}});DeskAccount[_0x10a5[42]](_0x9282xa)[_0x10a5[41]](function(_0x9282x10){var _0x9282x11=Math[_0x10a5[33]](_0x9282x10[_0x10a5[32]]/_0x9282x8);var _0x9282x12=_0x9282x11>(_0x9282xa[_0x10a5[34]]+1)?util[_0x10a5[19]](_0x10a5[35],_0x9282x5[_0x10a5[36]],_0x9282x5[_0x10a5[38]][_0x10a5[37]],_0x9282x5[_0x10a5[39]],_0x9282x9+1):null;var _0x9282x13=_0x9282x9>0?util[_0x10a5[19]](_0x10a5[35],_0x9282x5[_0x10a5[36]],_0x9282x5[_0x10a5[38]][_0x10a5[37]],_0x9282x5[_0x10a5[39]],_0x9282x9-1):null;return _0x9282x6[_0x10a5[30]](200)[_0x10a5[29]]({count:_0x9282x10[_0x10a5[32]],rows:_0x9282x10[_0x10a5[40]],next_page:_0x9282x12,previous_page:_0x9282x13,total_pages:_0x9282x11})})[_0x10a5[31]](function(_0x9282xf){return _0x9282x6[_0x10a5[30]](500)[_0x10a5[29]]({error:_0x10a5[28]})})};exports[_0x10a5[43]]=function(_0x9282x5,_0x9282x6){DeskAccount[_0x10a5[47]](_0x9282x5[_0x10a5[46]][_0x10a5[45]])[_0x10a5[41]](function(_0x9282x14){if(!_0x9282x14){return _0x9282x6[_0x10a5[44]](404)};return _0x9282x6[_0x10a5[29]](_0x9282x14)})[_0x10a5[31]](function(_0x9282xf){return handleError(_0x9282x6,_0x9282xf)})};exports[_0x10a5[48]]=function(_0x9282x5,_0x9282x6,_0x9282x15){DeskAccount[_0x10a5[48]](_0x9282x5[_0x10a5[49]])[_0x10a5[41]](function(_0x9282x14){return _0x9282x6[_0x10a5[30]](201)[_0x10a5[29]](_0x9282x14)})[_0x10a5[31]](function(_0x9282xf){return handleError(_0x9282x6,_0x9282xf)})};exports[_0x10a5[50]]=function(_0x9282x5,_0x9282x6){if(_0x9282x5[_0x10a5[49]][_0x10a5[45]]){delete _0x9282x5[_0x10a5[49]][_0x10a5[45]]};DeskAccount[_0x10a5[47]](_0x9282x5[_0x10a5[46]][_0x10a5[45]])[_0x10a5[41]](function(_0x9282x14){if(!_0x9282x14){return _0x9282x6[_0x10a5[44]](404)};var _0x9282x16=_[_0x10a5[51]](_0x9282x14,_0x9282x5[_0x10a5[49]]);_0x9282x16[_0x10a5[52]]()[_0x10a5[41]](function(){return _0x9282x6[_0x10a5[30]](200)[_0x10a5[29]](_0x9282x14)})[_0x10a5[31]](function(_0x9282xf){return handleError(_0x9282x6,_0x9282xf)})})[_0x10a5[31]](function(_0x9282xf){return handleError(_0x9282x6,_0x9282xf)})};exports[_0x10a5[53]]=function(_0x9282x5,_0x9282x6){DeskAccount[_0x10a5[47]](_0x9282x5[_0x10a5[46]][_0x10a5[45]])[_0x10a5[41]](function(_0x9282x14){if(!_0x9282x14){return _0x9282x6[_0x10a5[44]](404)};_0x9282x14[_0x10a5[53]]()[_0x10a5[41]](function(){return _0x9282x6[_0x10a5[44]](204)})[_0x10a5[31]](function(_0x9282xf){return handleError(_0x9282x6,_0x9282xf)})})[_0x10a5[31]](function(_0x9282xf){return handleError(_0x9282x6,_0x9282xf)})};exports[_0x10a5[54]]=function(_0x9282x5,_0x9282x6){DeskAccount[_0x10a5[47]](_0x9282x5[_0x10a5[46]][_0x10a5[45]])[_0x10a5[41]](function(_0x9282x17){var _0x9282x14={endpoint:stripTrailingSlash(_0x9282x17[_0x10a5[10]]),retry:false};if(_0x9282x17[_0x10a5[55]]===_0x10a5[56]){_0x9282x14[_0x10a5[9]]=_0x9282x17[_0x10a5[9]];_0x9282x14[_0x10a5[57]]=_0x9282x17[_0x10a5[57]]}else {if(_0x9282x17[_0x10a5[55]]===_0x10a5[58]){_0x9282x14[_0x10a5[59]]=_0x9282x17[_0x10a5[59]];_0x9282x14[_0x10a5[60]]=_0x9282x17[_0x10a5[60]];_0x9282x14[_0x10a5[61]]=_0x9282x17[_0x10a5[61]];_0x9282x14[_0x10a5[62]]=_0x9282x17[_0x10a5[62]]}};var _0x9282x18=desk[_0x10a5[63]](_0x9282x14);_0x9282x18[_0x10a5[65]](_0x10a5[64],function(_0x9282xf,_0x9282x19,_0x9282x1a){if(_0x9282xf){return handleError(_0x9282x6,_0x9282xf)};return _0x9282x6[_0x10a5[44]](200)})})[_0x10a5[31]](function(_0x9282xf){return handleError(_0x9282x6,_0x9282xf)})};exports[_0x10a5[66]]=function(_0x9282x5,_0x9282x6){var _0x9282x1b={};_0x9282x1b[_0x9282x5[_0x10a5[46]][_0x10a5[67]]]=_0x9282x5[_0x10a5[49]][_0x10a5[68]];DeskAccount[_0x10a5[42]]({where:_0x9282x1b})[_0x10a5[41]](function(_0x9282x10){if(_0x9282x10[_0x10a5[32]]){return _0x9282x6[_0x10a5[30]](200)[_0x10a5[29]]({isValid:false,value:_0x9282x5[_0x10a5[49]][_0x10a5[68]]})};return _0x9282x6[_0x10a5[30]](200)[_0x10a5[29]]({isValid:true,value:_0x9282x5[_0x10a5[49]][_0x10a5[68]]})})[_0x10a5[31]](function(_0x9282xf){return handleError(_0x9282x6,_0x9282xf)})};exports[_0x10a5[69]]=function(_0x9282x5,_0x9282x6){DeskAccount[_0x10a5[47]](_0x9282x5[_0x10a5[46]][_0x10a5[45]])[_0x10a5[41]](function(_0x9282x17){var _0x9282x14={endpoint:stripTrailingSlash(_0x9282x17[_0x10a5[10]]),retry:false};if(_0x9282x17[_0x10a5[55]]===_0x10a5[56]){_0x9282x14[_0x10a5[9]]=_0x9282x17[_0x10a5[9]];_0x9282x14[_0x10a5[57]]=_0x9282x17[_0x10a5[57]]}else {if(_0x9282x17[_0x10a5[55]]===_0x10a5[58]){_0x9282x14[_0x10a5[59]]=_0x9282x17[_0x10a5[59]];_0x9282x14[_0x10a5[60]]=_0x9282x17[_0x10a5[60]];_0x9282x14[_0x10a5[61]]=_0x9282x17[_0x10a5[61]];_0x9282x14[_0x10a5[62]]=_0x9282x17[_0x10a5[62]]}};var _0x9282x18=desk[_0x10a5[63]](_0x9282x14);_0x9282x18[_0x10a5[65]](_0x10a5[70],function(_0x9282xf,_0x9282x19,_0x9282x1a){if(_0x9282xf){return handleError(_0x9282x6,_0x9282xf)};return _0x9282x6[_0x10a5[30]](200)[_0x10a5[73]](_0x9282x19[_0x10a5[72]][_0x10a5[71]])})})[_0x10a5[31]](function(_0x9282xf){return handleError(_0x9282x6,_0x9282xf)})};exports[_0x10a5[74]]=function(_0x9282x5,_0x9282x6){DeskAccount[_0x10a5[53]]({where:{id:_0x9282x5[_0x10a5[12]][_0x10a5[45]]},individualHooks:true})[_0x10a5[41]](function(){return _0x9282x6[_0x10a5[44]](204)})[_0x10a5[31]](function(_0x9282xf){return handleError(_0x9282x6,_0x9282xf)})};function stripTrailingSlash(_0x9282x1d){if(_0x9282x1d[_0x10a5[75]](-1)===_0x10a5[76]){return _0x9282x1d[_0x10a5[75]](0,_0x9282x1d[_0x10a5[77]]-1)};return _0x9282x1d}function handleError(_0x9282x6,_0x9282xf){return _0x9282x6[_0x10a5[30]](500)[_0x10a5[29]](_0x9282xf)}
\ No newline at end of file
index 3f7badd..2c931d0 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var DeskAccount = require('../../models').DeskAccount;
-
-exports.register = function(socket) {
-  DeskAccount.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  DeskAccount.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('desk_account:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('desk_account:remove', doc);
-}
+var _0x8e83=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x44\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8e83[0];var DeskAccount=require(_0x8e83[2])[_0x8e83[1]];exports[_0x8e83[3]]=function(_0x9a6bx2){DeskAccount[_0x8e83[4]](function(_0x9a6bx3){onSave(_0x9a6bx2,_0x9a6bx3)});DeskAccount[_0x8e83[5]](function(_0x9a6bx3){onRemove(_0x9a6bx2,_0x9a6bx3)})};function onSave(_0x9a6bx2,_0x9a6bx3,_0x9a6bx5){_0x9a6bx2[_0x8e83[7]](_0x8e83[6],_0x9a6bx3)}function onRemove(_0x9a6bx2,_0x9a6bx3,_0x9a6bx5){_0x9a6bx2[_0x8e83[7]](_0x8e83[8],_0x9a6bx3)}
\ No newline at end of file
index a56fc11..a77ca31 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/desk/accounts', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/desk/accounts')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0xb935=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74"];_0xb935[0];var should=require(_0xb935[1]);var app=require(_0xb935[2]);var request=require(_0xb935[3]);describe(_0xb935[4],function(){it(_0xb935[5],function(_0x1275x4){request(app)[_0xb935[13]](_0xb935[12])[_0xb935[11]](200)[_0xb935[11]](_0xb935[10],/json/)[_0xb935[9]](function(_0x1275x5,_0x1275x6){if(_0x1275x5){return _0x1275x4(_0x1275x5)};_0x1275x6[_0xb935[8]][_0xb935[1]][_0xb935[7]][_0xb935[6]](Array);_0x1275x4()})})})
\ No newline at end of file
index 4a593d0..4613bc1 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./desk_account.controller');
-var auth = require('../../auth/auth.service');
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/check', auth.isAuthenticated(), controller.checkAccount);
-router.get('/:id/fields', auth.isAuthenticated(), controller.getFields);
-router.post('/validate/:field', auth.isAuthenticated(), controller.deskValidation);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x95c4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x68\x65\x63\x6B","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x64\x65\x73\x6B\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x95c4[0];var express=require(_0x95c4[1]);var controller=require(_0x95c4[2]);var auth=require(_0x95c4[3]);var router=express.Router();router[_0x95c4[7]](_0x95c4[4],auth[_0x95c4[5]](),controller[_0x95c4[6]]);router[_0x95c4[7]](_0x95c4[8],auth[_0x95c4[5]](),controller[_0x95c4[9]]);router[_0x95c4[7]](_0x95c4[10],auth[_0x95c4[5]](),controller[_0x95c4[11]]);router[_0x95c4[7]](_0x95c4[12],auth[_0x95c4[5]](),controller[_0x95c4[13]]);router[_0x95c4[16]](_0x95c4[14],auth[_0x95c4[5]](),controller[_0x95c4[15]]);router[_0x95c4[16]](_0x95c4[4],auth[_0x95c4[5]](),controller[_0x95c4[17]]);router[_0x95c4[19]](_0x95c4[8],auth[_0x95c4[5]](),controller[_0x95c4[18]]);router[_0x95c4[20]](_0x95c4[8],auth[_0x95c4[5]](),controller[_0x95c4[18]]);router[_0x95c4[22]](_0x95c4[4],auth[_0x95c4[5]](),controller[_0x95c4[21]]);router[_0x95c4[22]](_0x95c4[8],auth[_0x95c4[5]](),controller[_0x95c4[23]]);module[_0x95c4[24]]=router
\ No newline at end of file
index 3824ca1..9ea904a 100644 (file)
@@ -1,145 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/desk/configurations              ->  index
- * POST    /api/desk/configurations              ->  create
- * GET     /api/desk/configurations/:id          ->  show
- * PUT     /api/desk/configurations/:id          ->  update
- * DELETE  /api/desk/configurations/:id          ->  destroy
- */
-
-'use strict';
-
-var _ = require('lodash');
-
-var DeskConfiguration = require('../../models').DeskConfiguration;
-var DeskField = require('../../models').DeskField;
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of DeskConfigurations
-exports.index = function(req, res) {
-  DeskConfiguration.findAll({
-      where: req.query
-    })
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single DeskConfiguration from the DB
-exports.show = function(req, res) {
-  DeskConfiguration.find({
-      where: {
-        id: req.params.id
-      },
-      include: [{
-        model: DeskField,
-        as: 'Subject'
-      }, {
-        model: DeskField,
-        as: 'Description'
-      }, {
-        model: DeskField,
-        as: 'Field'
-      }]
-    })
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new DeskConfiguration in the DB
-exports.create = function(req, res) {
-  DeskConfiguration.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing DeskConfiguration in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  DeskConfiguration.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a DeskConfiguration from the DB
-exports.destroy = function(req, res) {
-  DeskConfiguration.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
-
-exports.addConfigurationField = function(req, res, next) {
-  // console.log(req.params);
-  var deskConfiguration;
-  DeskConfiguration
-    .findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(function(desk_configuration) {
-      deskConfiguration = desk_configuration;
-      return DeskField.create(req.body)
-    })
-    .then(function(deskField) {
-      switch (req.params.type) {
-        case 'subject':
-          return [deskConfiguration.addSubject(deskField), deskField];
-        case 'description':
-          return [deskConfiguration.addDescription(deskField), deskField];
-        case 'field':
-          return [deskConfiguration.addField(deskField), deskField];
-      }
-    })
-    .spread(function(data, deskField) {
-      return res.status(201).json(deskField);
-    })
-    .catch(handleError(res));
-};
+var _0x755d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x44\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x44\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x53\x75\x62\x6A\x65\x63\x74","\x73\x75\x62\x6A\x65\x63\x74","\x61\x64\x64\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x65\x6C\x64","\x66\x69\x65\x6C\x64","\x74\x79\x70\x65"];_0x755d[0];var _=require(_0x755d[1]);var DeskConfiguration=require(_0x755d[3])[_0x755d[2]];var DeskField=require(_0x755d[3])[_0x755d[4]];function handleError(_0xd4b6x5,_0xd4b6x6){_0xd4b6x6=_0xd4b6x6||500;return function(_0xd4b6x7){_0xd4b6x5[_0x755d[6]](_0xd4b6x6)[_0x755d[5]](_0xd4b6x7)}}function responseWithResult(_0xd4b6x5,_0xd4b6x6){_0xd4b6x6=_0xd4b6x6||200;return function(_0xd4b6x9){if(_0xd4b6x9){_0xd4b6x5[_0x755d[6]](_0xd4b6x6)[_0x755d[7]](_0xd4b6x9)}}}function handleEntityNotFound(_0xd4b6x5){return function(_0xd4b6x9){if(!_0xd4b6x9){_0xd4b6x5[_0x755d[6]](404)[_0x755d[8]]();return null};return _0xd4b6x9}}function saveUpdates(_0xd4b6xc){return function(_0xd4b6x9){return _0xd4b6x9[_0x755d[10]](_0xd4b6xc)[_0x755d[9]](function(_0xd4b6xd){return _0xd4b6xd})}}function removeEntity(_0xd4b6x5){return function(_0xd4b6x9){if(_0xd4b6x9){return _0xd4b6x9[_0x755d[11]]()[_0x755d[9]](function(){_0xd4b6x5[_0x755d[6]](204)[_0x755d[8]]()})}}}exports[_0x755d[12]]=function(_0xd4b6xf,_0xd4b6x5){DeskConfiguration[_0x755d[15]]({where:_0xd4b6xf[_0x755d[14]]})[_0x755d[9]](responseWithResult(_0xd4b6x5))[_0x755d[13]](handleError(_0xd4b6x5))};exports[_0x755d[16]]=function(_0xd4b6xf,_0xd4b6x5){DeskConfiguration[_0x755d[22]]({where:{id:_0xd4b6xf[_0x755d[18]][_0x755d[17]]},include:[{model:DeskField,as:_0x755d[19]},{model:DeskField,as:_0x755d[20]},{model:DeskField,as:_0x755d[21]}]})[_0x755d[9]](handleEntityNotFound(_0xd4b6x5))[_0x755d[9]](responseWithResult(_0xd4b6x5))[_0x755d[13]](handleError(_0xd4b6x5))};exports[_0x755d[23]]=function(_0xd4b6xf,_0xd4b6x5){DeskConfiguration[_0x755d[23]](_0xd4b6xf[_0x755d[24]])[_0x755d[9]](responseWithResult(_0xd4b6x5,201))[_0x755d[13]](handleError(_0xd4b6x5))};exports[_0x755d[25]]=function(_0xd4b6xf,_0xd4b6x5){if(_0xd4b6xf[_0x755d[24]][_0x755d[17]]){delete _0xd4b6xf[_0x755d[24]][_0x755d[17]]};DeskConfiguration[_0x755d[26]](_0xd4b6xf[_0x755d[18]][_0x755d[17]])[_0x755d[9]](handleEntityNotFound(_0xd4b6x5))[_0x755d[9]](saveUpdates(_0xd4b6xf[_0x755d[24]]))[_0x755d[9]](responseWithResult(_0xd4b6x5))[_0x755d[13]](handleError(_0xd4b6x5))};exports[_0x755d[11]]=function(_0xd4b6xf,_0xd4b6x5){DeskConfiguration[_0x755d[26]](_0xd4b6xf[_0x755d[18]][_0x755d[17]])[_0x755d[9]](handleEntityNotFound(_0xd4b6x5))[_0x755d[9]](removeEntity(_0xd4b6x5))[_0x755d[13]](handleError(_0xd4b6x5))};exports[_0x755d[27]]=function(_0xd4b6xf,_0xd4b6x5,_0xd4b6x10){var _0xd4b6x11;DeskConfiguration[_0x755d[26]](_0xd4b6xf[_0x755d[18]][_0x755d[17]])[_0x755d[9]](handleEntityNotFound(_0xd4b6x5))[_0x755d[9]](function(_0xd4b6x14){_0xd4b6x11=_0xd4b6x14;return DeskField[_0x755d[23]](_0xd4b6xf[_0x755d[24]])})[_0x755d[9]](function(_0xd4b6x13){switch(_0xd4b6xf[_0x755d[18]][_0x755d[35]]){case _0x755d[30]:return [_0xd4b6x11[_0x755d[29]](_0xd4b6x13),_0xd4b6x13];case _0x755d[32]:return [_0xd4b6x11[_0x755d[31]](_0xd4b6x13),_0xd4b6x13];case _0x755d[34]:return [_0xd4b6x11[_0x755d[33]](_0xd4b6x13),_0xd4b6x13]}})[_0x755d[28]](function(_0xd4b6x12,_0xd4b6x13){return _0xd4b6x5[_0x755d[6]](201)[_0x755d[7]](_0xd4b6x13)})[_0x755d[13]](handleError(_0xd4b6x5))}
\ No newline at end of file
index d26e4f6..1f07f7e 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var DeskConfiguration = require('../../models').DeskConfiguration;
-
-exports.register = function(socket) {
-  DeskConfiguration.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  DeskConfiguration.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('desk_configuration:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('desk_configuration:remove', doc);
-}
+var _0xd001=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x44\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0xd001[0];var DeskConfiguration=require(_0xd001[2])[_0xd001[1]];exports[_0xd001[3]]=function(_0xfa6dx2){DeskConfiguration[_0xd001[4]](function(_0xfa6dx3){onSave(_0xfa6dx2,_0xfa6dx3)});DeskConfiguration[_0xd001[5]](function(_0xfa6dx3){onRemove(_0xfa6dx2,_0xfa6dx3)})};function onSave(_0xfa6dx2,_0xfa6dx3,_0xfa6dx5){_0xfa6dx2[_0xd001[7]](_0xd001[6],_0xfa6dx3)}function onRemove(_0xfa6dx2,_0xfa6dx3,_0xfa6dx5){_0xfa6dx2[_0xd001[7]](_0xd001[8],_0xfa6dx3)}
\ No newline at end of file
index 91adaf0..b8ea269 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./desk_configuration.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0x2d65=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x3A\x74\x79\x70\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2d65[0];var express=require(_0x2d65[1]);var auth=require(_0x2d65[2]);var controller=require(_0x2d65[3]);var router=express.Router();router[_0x2d65[7]](_0x2d65[4],auth[_0x2d65[5]](),controller[_0x2d65[6]]);router[_0x2d65[7]](_0x2d65[8],auth[_0x2d65[5]](),controller[_0x2d65[9]]);router[_0x2d65[11]](_0x2d65[4],auth[_0x2d65[5]](),controller[_0x2d65[10]]);router[_0x2d65[13]](_0x2d65[8],auth[_0x2d65[5]](),controller[_0x2d65[12]]);router[_0x2d65[11]](_0x2d65[14],auth[_0x2d65[5]](),controller[_0x2d65[15]]);router[_0x2d65[16]](_0x2d65[8],auth[_0x2d65[5]](),controller[_0x2d65[12]]);router[_0x2d65[18]](_0x2d65[8],auth[_0x2d65[5]](),controller[_0x2d65[17]]);module[_0x2d65[19]]=router
\ No newline at end of file
index fd6b650..1cf62d8 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var deskConfigurationCtrlStub = {
-  index: 'deskConfigurationCtrl.index',
-  show: 'deskConfigurationCtrl.show',
-  create: 'deskConfigurationCtrl.create',
-  update: 'deskConfigurationCtrl.update',
-  destroy: 'deskConfigurationCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var deskConfigurationIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './desk_configuration.controller': deskConfigurationCtrlStub
-});
-
-describe('DeskConfiguration API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(deskConfigurationIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/desk/configurations', function() {
-
-    it('should route to deskConfiguration.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'deskConfigurationCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/desk/configurations/:id', function() {
-
-    it('should route to deskConfiguration.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'deskConfigurationCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/desk/configurations', function() {
-
-    it('should route to deskConfiguration.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'deskConfigurationCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/desk/configurations/:id', function() {
-
-    it('should route to deskConfiguration.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'deskConfigurationCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/desk/configurations/:id', function() {
-
-    it('should route to deskConfiguration.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'deskConfigurationCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/desk/configurations/:id', function() {
-
-    it('should route to deskConfiguration.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'deskConfigurationCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0xdfac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x44\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0xdfac[0];var proxyquire=require(_0xdfac[2])[_0xdfac[1]]();var deskConfigurationCtrlStub={index:_0xdfac[3],show:_0xdfac[4],create:_0xdfac[5],update:_0xdfac[6],destroy:_0xdfac[7]};var routerStub={get:sinon[_0xdfac[8]](),put:sinon[_0xdfac[8]](),patch:sinon[_0xdfac[8]](),post:sinon[_0xdfac[8]](),delete:sinon[_0xdfac[8]]()};var deskConfigurationIndex=proxyquire(_0xdfac[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":deskConfigurationCtrlStub});describe(_0xdfac[10],function(){it(_0xdfac[11],function(){expect(deskConfigurationIndex)[_0xdfac[13]][_0xdfac[12]](routerStub)});describe(_0xdfac[14],function(){it(_0xdfac[15],function(){expect(routerStub[_0xdfac[21]][_0xdfac[20]](_0xdfac[19],_0xdfac[3]))[_0xdfac[13]][_0xdfac[18]][_0xdfac[17]][_0xdfac[16]]})});describe(_0xdfac[22],function(){it(_0xdfac[23],function(){expect(routerStub[_0xdfac[21]][_0xdfac[20]](_0xdfac[24],_0xdfac[4]))[_0xdfac[13]][_0xdfac[18]][_0xdfac[17]][_0xdfac[16]]})});describe(_0xdfac[25],function(){it(_0xdfac[26],function(){expect(routerStub[_0xdfac[27]][_0xdfac[20]](_0xdfac[19],_0xdfac[5]))[_0xdfac[13]][_0xdfac[18]][_0xdfac[17]][_0xdfac[16]]})});describe(_0xdfac[28],function(){it(_0xdfac[29],function(){expect(routerStub[_0xdfac[30]][_0xdfac[20]](_0xdfac[24],_0xdfac[6]))[_0xdfac[13]][_0xdfac[18]][_0xdfac[17]][_0xdfac[16]]})});describe(_0xdfac[31],function(){it(_0xdfac[29],function(){expect(routerStub[_0xdfac[32]][_0xdfac[20]](_0xdfac[24],_0xdfac[6]))[_0xdfac[13]][_0xdfac[18]][_0xdfac[17]][_0xdfac[16]]})});describe(_0xdfac[33],function(){it(_0xdfac[34],function(){expect(routerStub[_0xdfac[35]][_0xdfac[20]](_0xdfac[24],_0xdfac[7]))[_0xdfac[13]][_0xdfac[18]][_0xdfac[17]][_0xdfac[16]]})})})
\ No newline at end of file
index 6b39f83..5a2d948 100644 (file)
@@ -1,104 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/desk/fields              ->  index
- * POST    /api/desk/fields              ->  create
- * GET     /api/desk/fields/:id          ->  show
- * PUT     /api/desk/fields/:id          ->  update
- * DELETE  /api/desk/fields/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-
-var DeskField = require('../../models').DeskField;
-
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of DeskFields
-exports.index = function(req, res) {
-  DeskField.findAll()
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single DeskField from the DB
-exports.show = function(req, res) {
-  DeskField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new DeskField in the DB
-exports.create = function(req, res) {
-  DeskField.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing DeskField in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  DeskField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a DeskField from the DB
-exports.destroy = function(req, res) {
-  DeskField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
+var _0xfb73=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x44\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65"];_0xfb73[0];var _=require(_0xfb73[1]);var DeskField=require(_0xfb73[3])[_0xfb73[2]];function handleError(_0x2048x4,_0x2048x5){_0x2048x5=_0x2048x5||500;return function(_0x2048x6){_0x2048x4[_0xfb73[5]](_0x2048x5)[_0xfb73[4]](_0x2048x6)}}function responseWithResult(_0x2048x4,_0x2048x5){_0x2048x5=_0x2048x5||200;return function(_0x2048x8){if(_0x2048x8){_0x2048x4[_0xfb73[5]](_0x2048x5)[_0xfb73[6]](_0x2048x8)}}}function handleEntityNotFound(_0x2048x4){return function(_0x2048x8){if(!_0x2048x8){_0x2048x4[_0xfb73[5]](404)[_0xfb73[7]]();return null};return _0x2048x8}}function saveUpdates(_0x2048xb){return function(_0x2048x8){return _0x2048x8[_0xfb73[9]](_0x2048xb)[_0xfb73[8]](function(_0x2048xc){return _0x2048xc})}}function removeEntity(_0x2048x4){return function(_0x2048x8){if(_0x2048x8){return _0x2048x8[_0xfb73[10]]()[_0xfb73[8]](function(){_0x2048x4[_0xfb73[5]](204)[_0xfb73[7]]()})}}}exports[_0xfb73[11]]=function(_0x2048xe,_0x2048x4){DeskField[_0xfb73[13]]()[_0xfb73[8]](responseWithResult(_0x2048x4))[_0xfb73[12]](handleError(_0x2048x4))};exports[_0xfb73[14]]=function(_0x2048xe,_0x2048x4){DeskField[_0xfb73[17]](_0x2048xe[_0xfb73[16]][_0xfb73[15]])[_0xfb73[8]](handleEntityNotFound(_0x2048x4))[_0xfb73[8]](responseWithResult(_0x2048x4))[_0xfb73[12]](handleError(_0x2048x4))};exports[_0xfb73[18]]=function(_0x2048xe,_0x2048x4){DeskField[_0xfb73[18]](_0x2048xe[_0xfb73[19]])[_0xfb73[8]](responseWithResult(_0x2048x4,201))[_0xfb73[12]](handleError(_0x2048x4))};exports[_0xfb73[20]]=function(_0x2048xe,_0x2048x4){if(_0x2048xe[_0xfb73[19]][_0xfb73[15]]){delete _0x2048xe[_0xfb73[19]][_0xfb73[15]]};DeskField[_0xfb73[17]](_0x2048xe[_0xfb73[16]][_0xfb73[15]])[_0xfb73[8]](handleEntityNotFound(_0x2048x4))[_0xfb73[8]](saveUpdates(_0x2048xe[_0xfb73[19]]))[_0xfb73[8]](responseWithResult(_0x2048x4))[_0xfb73[12]](handleError(_0x2048x4))};exports[_0xfb73[10]]=function(_0x2048xe,_0x2048x4){DeskField[_0xfb73[17]](_0x2048xe[_0xfb73[16]][_0xfb73[15]])[_0xfb73[8]](handleEntityNotFound(_0x2048x4))[_0xfb73[8]](removeEntity(_0x2048x4))[_0xfb73[12]](handleError(_0x2048x4))}
\ No newline at end of file
index b01d8f1..c85ebda 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var DeskField = require('../../models').DeskField;
-
-exports.register = function(socket) {
-  DeskField.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  DeskField.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('desk_field:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('desk_field:remove', doc);
-}
+var _0x7bfd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x44\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x7bfd[0];var DeskField=require(_0x7bfd[2])[_0x7bfd[1]];exports[_0x7bfd[3]]=function(_0x7115x2){DeskField[_0x7bfd[4]](function(_0x7115x3){onSave(_0x7115x2,_0x7115x3)});DeskField[_0x7bfd[5]](function(_0x7115x3){onRemove(_0x7115x2,_0x7115x3)})};function onSave(_0x7115x2,_0x7115x3,_0x7115x5){_0x7115x2[_0x7bfd[7]](_0x7bfd[6],_0x7115x3)}function onRemove(_0x7115x2,_0x7115x3,_0x7115x5){_0x7115x2[_0x7bfd[7]](_0x7bfd[8],_0x7115x3)}
\ No newline at end of file
index 266676c..e944c38 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./desk_field.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0x83d8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x83d8[0];var express=require(_0x83d8[1]);var auth=require(_0x83d8[2]);var controller=require(_0x83d8[3]);var router=express.Router();router[_0x83d8[7]](_0x83d8[4],auth[_0x83d8[5]](),controller[_0x83d8[6]]);router[_0x83d8[7]](_0x83d8[8],auth[_0x83d8[5]](),controller[_0x83d8[9]]);router[_0x83d8[11]](_0x83d8[4],auth[_0x83d8[5]](),controller[_0x83d8[10]]);router[_0x83d8[13]](_0x83d8[8],auth[_0x83d8[5]](),controller[_0x83d8[12]]);router[_0x83d8[14]](_0x83d8[8],auth[_0x83d8[5]](),controller[_0x83d8[12]]);router[_0x83d8[16]](_0x83d8[8],auth[_0x83d8[5]](),controller[_0x83d8[15]]);module[_0x83d8[17]]=router
\ No newline at end of file
index fef888c..711f423 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var deskFieldCtrlStub = {
-  index: 'deskFieldCtrl.index',
-  show: 'deskFieldCtrl.show',
-  create: 'deskFieldCtrl.create',
-  update: 'deskFieldCtrl.update',
-  destroy: 'deskFieldCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var deskFieldIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './desk_field.controller': deskFieldCtrlStub
-});
-
-describe('DeskField API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(deskFieldIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/desk/fields', function() {
-
-    it('should route to deskField.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'deskFieldCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/desk/fields/:id', function() {
-
-    it('should route to deskField.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'deskFieldCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/desk/fields', function() {
-
-    it('should route to deskField.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'deskFieldCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/desk/fields/:id', function() {
-
-    it('should route to deskField.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'deskFieldCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/desk/fields/:id', function() {
-
-    it('should route to deskField.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'deskFieldCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/desk/fields/:id', function() {
-
-    it('should route to deskField.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'deskFieldCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0x2853=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x44\x65\x73\x6B\x46\x69\x65\x6C\x64\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x2853[0];var proxyquire=require(_0x2853[2])[_0x2853[1]]();var deskFieldCtrlStub={index:_0x2853[3],show:_0x2853[4],create:_0x2853[5],update:_0x2853[6],destroy:_0x2853[7]};var routerStub={get:sinon[_0x2853[8]](),put:sinon[_0x2853[8]](),patch:sinon[_0x2853[8]](),post:sinon[_0x2853[8]](),delete:sinon[_0x2853[8]]()};var deskFieldIndex=proxyquire(_0x2853[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":deskFieldCtrlStub});describe(_0x2853[10],function(){it(_0x2853[11],function(){expect(deskFieldIndex)[_0x2853[13]][_0x2853[12]](routerStub)});describe(_0x2853[14],function(){it(_0x2853[15],function(){expect(routerStub[_0x2853[21]][_0x2853[20]](_0x2853[19],_0x2853[3]))[_0x2853[13]][_0x2853[18]][_0x2853[17]][_0x2853[16]]})});describe(_0x2853[22],function(){it(_0x2853[23],function(){expect(routerStub[_0x2853[21]][_0x2853[20]](_0x2853[24],_0x2853[4]))[_0x2853[13]][_0x2853[18]][_0x2853[17]][_0x2853[16]]})});describe(_0x2853[25],function(){it(_0x2853[26],function(){expect(routerStub[_0x2853[27]][_0x2853[20]](_0x2853[19],_0x2853[5]))[_0x2853[13]][_0x2853[18]][_0x2853[17]][_0x2853[16]]})});describe(_0x2853[28],function(){it(_0x2853[29],function(){expect(routerStub[_0x2853[30]][_0x2853[20]](_0x2853[24],_0x2853[6]))[_0x2853[13]][_0x2853[18]][_0x2853[17]][_0x2853[16]]})});describe(_0x2853[31],function(){it(_0x2853[29],function(){expect(routerStub[_0x2853[32]][_0x2853[20]](_0x2853[24],_0x2853[6]))[_0x2853[13]][_0x2853[18]][_0x2853[17]][_0x2853[16]]})});describe(_0x2853[33],function(){it(_0x2853[34],function(){expect(routerStub[_0x2853[35]][_0x2853[20]](_0x2853[24],_0x2853[7]))[_0x2853[13]][_0x2853[18]][_0x2853[17]][_0x2853[16]]})})})
\ No newline at end of file
index 3d57d37..617a17f 100644 (file)
@@ -1,197 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var ExtractedReport = require('../../models').ExtractedReport;
-var util = require('util');
-var path = require('path');
-var moment = require('moment');
-var config = require('../../config/environment');
-var base64 = require('file-base64');
-var fs = require('fs');
-var Util = require('../../config/util');
-
-// Get list of extracted_reports
-exports.index = function(req, res, next) {
-  return ExtractedReport
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single extracted_reports
-exports.show = function(req, res) {
-  ExtractedReport
-    .findById(req.params.id)
-    .then(function(extracted) {
-      if (!extracted) {
-        return res.sendStatus(404);
-      }
-      return res.send(extracted);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.download = function(req, res) {
-  ExtractedReport
-    .findById(req.params.id)
-    .then(function(extract) {
-      if (!extract) {
-        return res.status(404).send(extract);
-      }
-      var filepath = path.join(config.root, 'server', 'files', 'reports', extract.savename);
-      base64.encode(filepath, function(err, base64String) {
-        if (err) {
-          console.log(err);
-          return handleError(res, err);
-        } else {
-          return res.status(200).send({
-            downloadString: base64String
-          });
-        }
-      });
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Creates a new extracted_report in the DB.
-exports.create = function(req, res) {
-  ExtractedReport
-    .create(req.body)
-    .then(function(extracted) {
-      return res.status(201).send(extracted);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing extracted_report in the DB.
-exports.update = function(req, res) {
-  ExtractedReport
-    .findAll({
-      where: {
-        name: req.body.name,
-        id: {
-          $ne: req.body.id
-        }
-      }
-    })
-    .then(function(extracted_reports) {
-      if (!extracted_reports) {
-        return res.sendStatus(404);
-      }
-      if (req.body.id) {
-        delete req.body.id;
-      }
-      ExtractedReport
-        .findById(req.params.id)
-        .then(function(extracted) {
-          if (!extracted) {
-            return res.sendStatus(404);
-          }
-          var updated = _.merge(extracted, req.body);
-          updated.save()
-            .then(function() {
-              return res.status(200).send(extracted);
-            })
-            .catch(function(err) {
-              return handleError(res, err);
-            });
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes an extracted_report from the DB.
-exports.destroy = function(req, res) {
-  var _extracted;
-  ExtractedReport
-    .findById(req.params.id)
-    .then(function(extracted) {
-      _extracted = extracted;
-      if (!extracted) {
-        return res.sendStatus(404);
-      }
-      return extracted.destroy();
-    })
-    .then(function() {
-      if (_extracted.savename) {
-        var filepath = path.join(config.root, 'server', 'files', 'reports', _extracted.savename);
-        fs.access(filepath, fs.R_OK | fs.W_OK, function(err) {
-          if (err) {
-            console.error('File does not exist or operation not permitted');
-          } else {
-            fs.unlink(filepath, function(err) {
-              if (err) {
-                console.error('error deleting file :', err);
-              } else {
-                console.log('file deleted');
-              }
-            })
-          }
-        });
-      }
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-exports.bulkDestroy = function(req, res) {
-  ExtractedReport
-    .findAll({
-      where: {
-        id: req.query.ids
-      }
-    })
-    .then(function(extracts) {
-      extracts.forEach(function(extracted) {
-        extracted.destroy()
-          .then(function() {
-            if (extracted.savename) {
-              var filepath = path.join(config.root, 'server', 'files', 'reports', extracted.savename);
-              fs.access(filepath, fs.R_OK | fs.W_OK, function(err) {
-                if (err) {
-                  console.error('File does not exist or operation not permitted');
-                } else {
-                  fs.unlink(filepath, function(err) {
-                    if (err) {
-                      console.error('error deleting file :', err);
-                    } else {
-                      console.log('file deleted');
-                    }
-                  })
-                }
-              });
-            }
-          })
-          .catch(function(err) {
-            console.log(err);
-          });
-      });
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x9685=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x66\x69\x6C\x65\x2D\x62\x61\x73\x65\x36\x34","\x66\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x6C\x6F\x67","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x72\x65\x70\x6F\x72\x74\x73","\x73\x61\x76\x65\x6E\x61\x6D\x65","\x6A\x6F\x69\x6E","\x65\x6E\x63\x6F\x64\x65","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x6E\x61\x6D\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x74\x72\x6F\x79","\x52\x5F\x4F\x4B","\x57\x5F\x4F\x4B","\x46\x69\x6C\x65\x20\x64\x6F\x65\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74\x20\x6F\x72\x20\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E\x20\x6E\x6F\x74\x20\x70\x65\x72\x6D\x69\x74\x74\x65\x64","\x65\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x20\x64\x65\x6C\x65\x74\x69\x6E\x67\x20\x66\x69\x6C\x65\x20\x3A","\x66\x69\x6C\x65\x20\x64\x65\x6C\x65\x74\x65\x64","\x75\x6E\x6C\x69\x6E\x6B","\x61\x63\x63\x65\x73\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x66\x6F\x72\x45\x61\x63\x68","\x69\x64\x73"];_0x9685[0];var _=require(_0x9685[1]);var ExtractedReport=require(_0x9685[3])[_0x9685[2]];var util=require(_0x9685[4]);var path=require(_0x9685[5]);var moment=require(_0x9685[6]);var config=require(_0x9685[7]);var base64=require(_0x9685[8]);var fs=require(_0x9685[9]);var Util=require(_0x9685[10]);exports[_0x9685[11]]=function(_0x3cfcxa,_0x3cfcxb,_0x3cfcxc){return ExtractedReport[_0x9685[18]](Util[_0x9685[17]](_0x3cfcxa[_0x9685[16]]))[_0x9685[15]](function(_0x3cfcxe){_0x3cfcxb[_0x9685[14]](200)[_0x9685[13]](_0x3cfcxe)})[_0x9685[12]](function(_0x3cfcxd){return handleError(_0x3cfcxb,_0x3cfcxd)})};exports[_0x9685[19]]=function(_0x3cfcxa,_0x3cfcxb){ExtractedReport[_0x9685[23]](_0x3cfcxa[_0x9685[22]][_0x9685[21]])[_0x9685[15]](function(_0x3cfcxf){if(!_0x3cfcxf){return _0x3cfcxb[_0x9685[20]](404)};return _0x3cfcxb[_0x9685[13]](_0x3cfcxf)})[_0x9685[12]](function(_0x3cfcxd){return handleError(_0x3cfcxb,_0x3cfcxd)})};exports[_0x9685[24]]=function(_0x3cfcxa,_0x3cfcxb){ExtractedReport[_0x9685[23]](_0x3cfcxa[_0x9685[22]][_0x9685[21]])[_0x9685[15]](function(_0x3cfcx10){if(!_0x3cfcx10){return _0x3cfcxb[_0x9685[14]](404)[_0x9685[13]](_0x3cfcx10)};var _0x3cfcx11=path[_0x9685[31]](config[_0x9685[26]],_0x9685[27],_0x9685[28],_0x9685[29],_0x3cfcx10[_0x9685[30]]);base64[_0x9685[32]](_0x3cfcx11,function(_0x3cfcxd,_0x3cfcx12){if(_0x3cfcxd){console[_0x9685[25]](_0x3cfcxd);return handleError(_0x3cfcxb,_0x3cfcxd)}else {return _0x3cfcxb[_0x9685[14]](200)[_0x9685[13]]({downloadString:_0x3cfcx12})}})})[_0x9685[12]](function(_0x3cfcxd){console[_0x9685[25]](_0x3cfcxd);return handleError(_0x3cfcxb,_0x3cfcxd)})};exports[_0x9685[33]]=function(_0x3cfcxa,_0x3cfcxb){ExtractedReport[_0x9685[33]](_0x3cfcxa[_0x9685[34]])[_0x9685[15]](function(_0x3cfcxf){return _0x3cfcxb[_0x9685[14]](201)[_0x9685[13]](_0x3cfcxf)})[_0x9685[12]](function(_0x3cfcxd){return handleError(_0x3cfcxb,_0x3cfcxd)})};exports[_0x9685[35]]=function(_0x3cfcxa,_0x3cfcxb){ExtractedReport[_0x9685[39]]({where:{name:_0x3cfcxa[_0x9685[34]][_0x9685[38]],id:{$ne:_0x3cfcxa[_0x9685[34]][_0x9685[21]]}}})[_0x9685[15]](function(_0x3cfcx13){if(!_0x3cfcx13){return _0x3cfcxb[_0x9685[20]](404)};if(_0x3cfcxa[_0x9685[34]][_0x9685[21]]){delete _0x3cfcxa[_0x9685[34]][_0x9685[21]]};ExtractedReport[_0x9685[23]](_0x3cfcxa[_0x9685[22]][_0x9685[21]])[_0x9685[15]](function(_0x3cfcxf){if(!_0x3cfcxf){return _0x3cfcxb[_0x9685[20]](404)};var _0x3cfcx14=_[_0x9685[36]](_0x3cfcxf,_0x3cfcxa[_0x9685[34]]);_0x3cfcx14[_0x9685[37]]()[_0x9685[15]](function(){return _0x3cfcxb[_0x9685[14]](200)[_0x9685[13]](_0x3cfcxf)})[_0x9685[12]](function(_0x3cfcxd){return handleError(_0x3cfcxb,_0x3cfcxd)})})[_0x9685[12]](function(_0x3cfcxd){return handleError(_0x3cfcxb,_0x3cfcxd)})})[_0x9685[12]](function(_0x3cfcxd){return handleError(_0x3cfcxb,_0x3cfcxd)})};exports[_0x9685[40]]=function(_0x3cfcxa,_0x3cfcxb){var _0x3cfcx15;ExtractedReport[_0x9685[23]](_0x3cfcxa[_0x9685[22]][_0x9685[21]])[_0x9685[15]](function(_0x3cfcxf){_0x3cfcx15=_0x3cfcxf;if(!_0x3cfcxf){return _0x3cfcxb[_0x9685[20]](404)};return _0x3cfcxf[_0x9685[40]]()})[_0x9685[15]](function(){if(_0x3cfcx15[_0x9685[30]]){var _0x3cfcx11=path[_0x9685[31]](config[_0x9685[26]],_0x9685[27],_0x9685[28],_0x9685[29],_0x3cfcx15[_0x9685[30]]);fs[_0x9685[48]](_0x3cfcx11,fs[_0x9685[41]]|fs[_0x9685[42]],function(_0x3cfcxd){if(_0x3cfcxd){console[_0x9685[44]](_0x9685[43])}else {fs[_0x9685[47]](_0x3cfcx11,function(_0x3cfcxd){if(_0x3cfcxd){console[_0x9685[44]](_0x9685[45],_0x3cfcxd)}else {console[_0x9685[25]](_0x9685[46])}})}})};return _0x3cfcxb[_0x9685[20]](204)})[_0x9685[12]](function(_0x3cfcxd){console[_0x9685[25]](_0x3cfcxd);return handleError(_0x3cfcxb,_0x3cfcxd)})};exports[_0x9685[49]]=function(_0x3cfcxa,_0x3cfcxb){ExtractedReport[_0x9685[39]]({where:{id:_0x3cfcxa[_0x9685[16]][_0x9685[51]]}})[_0x9685[15]](function(_0x3cfcx16){_0x3cfcx16[_0x9685[50]](function(_0x3cfcxf){_0x3cfcxf[_0x9685[40]]()[_0x9685[15]](function(){if(_0x3cfcxf[_0x9685[30]]){var _0x3cfcx11=path[_0x9685[31]](config[_0x9685[26]],_0x9685[27],_0x9685[28],_0x9685[29],_0x3cfcxf[_0x9685[30]]);fs[_0x9685[48]](_0x3cfcx11,fs[_0x9685[41]]|fs[_0x9685[42]],function(_0x3cfcxd){if(_0x3cfcxd){console[_0x9685[44]](_0x9685[43])}else {fs[_0x9685[47]](_0x3cfcx11,function(_0x3cfcxd){if(_0x3cfcxd){console[_0x9685[44]](_0x9685[45],_0x3cfcxd)}else {console[_0x9685[25]](_0x9685[46])}})}})}})[_0x9685[12]](function(_0x3cfcxd){console[_0x9685[25]](_0x3cfcxd)})});return _0x3cfcxb[_0x9685[20]](204)})[_0x9685[12]](function(_0x3cfcxd){return handleError(_0x3cfcxb,_0x3cfcxd)})};function handleError(_0x3cfcxb,_0x3cfcxd){return _0x3cfcxb[_0x9685[14]](500)[_0x9685[13]](_0x3cfcxd)}
\ No newline at end of file
index faf3482..831bd61 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ExtractedReport = require('../../models').ExtractedReport;
-
-exports.register = function(socket) {
-  ExtractedReport.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  ExtractedReport.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('extracted_report:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('extracted_report:remove', doc);
-}
+var _0x533a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x533a[0];var ExtractedReport=require(_0x533a[2])[_0x533a[1]];exports[_0x533a[3]]=function(_0x4ec8x2){ExtractedReport[_0x533a[4]](function(_0x4ec8x3){onSave(_0x4ec8x2,_0x4ec8x3)});ExtractedReport[_0x533a[5]](function(_0x4ec8x3){onRemove(_0x4ec8x2,_0x4ec8x3)})};function onSave(_0x4ec8x2,_0x4ec8x3,_0x4ec8x5){_0x4ec8x2[_0x533a[7]](_0x533a[6],_0x4ec8x3)}function onRemove(_0x4ec8x2,_0x4ec8x3,_0x4ec8x5){_0x4ec8x2[_0x533a[7]](_0x533a[8],_0x4ec8x3)}
\ No newline at end of file
index 0830865..e74b203 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/analytics/extracted', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/analytics/extracted')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0x948c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64","\x67\x65\x74"];_0x948c[0];var should=require(_0x948c[1]);var app=require(_0x948c[2]);var request=require(_0x948c[3]);describe(_0x948c[4],function(){it(_0x948c[5],function(_0xfae5x4){request(app)[_0x948c[13]](_0x948c[12])[_0x948c[11]](200)[_0x948c[11]](_0x948c[10],/json/)[_0x948c[9]](function(_0xfae5x5,_0xfae5x6){if(_0xfae5x5){return _0xfae5x4(_0xfae5x5)};_0xfae5x6[_0x948c[8]][_0x948c[1]][_0x948c[7]][_0x948c[6]](Array);_0xfae5x4()})})})
\ No newline at end of file
index 21b8e1c..904b8c2 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./extracted_report.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id/download', auth.isAuthenticated(), controller.download);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x66a2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x66a2[0];var express=require(_0x66a2[1]);var controller=require(_0x66a2[2]);var auth=require(_0x66a2[3]);var router=express.Router();router[_0x66a2[7]](_0x66a2[4],auth[_0x66a2[5]](),controller[_0x66a2[6]]);router[_0x66a2[7]](_0x66a2[8],auth[_0x66a2[5]](),controller[_0x66a2[9]]);router[_0x66a2[7]](_0x66a2[10],auth[_0x66a2[5]](),controller[_0x66a2[11]]);router[_0x66a2[13]](_0x66a2[4],auth[_0x66a2[5]](),controller[_0x66a2[12]]);router[_0x66a2[15]](_0x66a2[10],auth[_0x66a2[5]](),controller[_0x66a2[14]]);router[_0x66a2[16]](_0x66a2[10],auth[_0x66a2[5]](),controller[_0x66a2[14]]);router[_0x66a2[18]](_0x66a2[4],auth[_0x66a2[5]](),controller[_0x66a2[17]]);router[_0x66a2[18]](_0x66a2[10],auth[_0x66a2[5]](),controller[_0x66a2[19]]);module[_0x66a2[20]]=router
\ No newline at end of file
index d550303..215e70f 100644 (file)
@@ -1,374 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var async = require('async');
-
-var Trunk = require('../../models').Trunk;
-var FaxAccount = require('../../models').FaxAccount;
-var FaxApplication = require('../../models').FaxApplication;
-var VoiceExtension = require('../../models').VoiceExtension;
-var sequelize = require('../../models').sequelize;
-
-// Get list of agents
-exports.index = function(req, res, next) {
-
-  var attributes = ['description', 'name', 'phone'];
-  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
-  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
-
-  var query = {
-    where: {},
-    limit: per_page,
-    offset: page * per_page
-  };
-
-  _.forIn(req.query, function(value, key) {
-    switch (key) {
-      case 'per_page':
-      case 'page':
-        break;
-      case 'sort_by':
-        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
-        break;
-      case 'sort_order':
-        break;
-      case '$':
-        query.where.$or = [];
-        attributes.forEach(function(attribute) {
-          var tmp = {};
-          tmp[attribute] = {
-            $like: '%' + value + '%'
-          };
-
-          query.where.$or.push(tmp);
-        });
-        break;
-      default:
-        query.where[key] = {
-          $like: {}
-        };
-        query.where[key].$like = '%' + value + '%';
-    }
-  });
-
-  FaxAccount
-    .findAndCountAll(query)
-    .then(function(result) {
-
-      var total_pages = Math.ceil(result.count / per_page);
-      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
-      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
-
-      res.status(200).send({
-        count: result.count,
-        rows: result.rows,
-        next_page: next_page,
-        previous_page: previous_page,
-        total_pages: total_pages
-      });
-
-    })
-    .catch(function(err) {
-      res.status(500).send({
-        error: 'Something blew up!'
-      });
-    });
-};
-
-// Get a single faxAccount
-exports.show = function(req, res, next) {
-  FaxAccount
-    .findById(req.params.id)
-    .then(function(faxAccount) {
-      if (!faxAccount) {
-        return res.sendStatus(404);
-      }
-      return res.send(faxAccount);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-// Creates a new faxAccount in the DB.
-exports.create = function(req, res, next) {
-  // console.log(req.body);
-  return sequelize
-    .transaction()
-    .then(function(t) {
-      async.waterfall([
-        function(callback) {
-          return FaxAccount
-            .create(req.body, {
-              transaction: t
-            })
-            .then(function(faxAccount) {
-              callback(null, faxAccount);
-            })
-            .catch(function(err) {
-              callback(err);
-            });
-        },
-        function(faxAccount, callback) {
-          return Trunk
-            .findById(req.body.TrunkId, {
-              transaction: t
-            })
-            .then(function(faxTrunk) {
-              callback(null, faxAccount, faxTrunk);
-            })
-            .catch(function(err) {
-              callback(err);
-            });
-        },
-        function(faxAccount, faxTrunk, callback) {
-          return VoiceExtension
-            .create({
-              context: faxTrunk.context,
-              exten: req.body.phone,
-              priority: 1,
-              app: 'Goto',
-              appdata: 'inbound-fax,s,1',
-              type: 'inbound-fax',
-              TrunkId: faxTrunk.id
-            }, {
-              transaction: t
-            })
-            .then(function(voiceExtension) {
-              callback(null, faxAccount);
-            })
-            .catch(function(err) {
-              callback(err);
-            });
-        }
-      ], function(err, faxAccount) {
-        if (err) {
-          console.log(err);
-          t.rollback();
-          return res.status(404).send(err);
-        } else {
-          console.log('ok');
-          t.commit();
-          return res.status(201).send(faxAccount);
-        }
-      })
-    });
-};
-
-// Updates an existing faxAccount in the DB.
-exports.update = function(req, res, next) {
-  // console.log(req.body);
-  // console.log(req.params);
-
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return sequelize
-    .transaction()
-    .then(function(t) {
-      async.waterfall([
-        function(callback) {
-          return FaxAccount
-            .findOne({
-              where: {
-                id: req.params.id
-              },
-              include: [{
-                model: Trunk
-              }]
-            }, {
-              transaction: t
-            })
-            .then(function(faxAccount) {
-              callback(null, faxAccount);
-            })
-            .catch(function(err) {
-              callback(err);
-            });
-        },
-        function(faxAccount, callback) {
-          return Trunk
-            .findById(req.body.TrunkId, {
-              transaction: t
-            })
-            .then(function(trunk) {
-              return faxAccount
-                .updateAttributes({
-                  TrunkId: trunk.id
-                }, {
-                  transaction: t
-                })
-                .then(function(data) {
-                  callback(null, faxAccount, trunk);
-                })
-                .catch(function(err) {
-                  callback(err);
-                });
-            })
-            .catch(function(err) {
-              callback(err);
-            });
-        },
-        function(faxAccount, trunk, callback) {
-          return VoiceExtension
-            .findOne({
-              where: {
-                priority: 1,
-                exten: faxAccount.phone,
-                context: faxAccount.Trunk.context
-              }
-            }, {
-              transaction: t
-            })
-            .then(function(voiceExtension) {
-              if (!voiceExtension) {
-                callback(null, faxAccount);
-              }
-              return voiceExtension
-                .updateAttributes({
-                  exten: req.body.phone,
-                  context: trunk.context,
-                  TrunkId: req.body.UserId
-                }, {
-                  transaction: t
-                })
-                .then(function() {
-                  console.log('voiceExtension edited');
-                  callback(null, faxAccount);
-                })
-                .catch(function(err) {
-                  callback(err);
-                });
-            })
-            .catch(function(err) {
-              callback(err);
-            });
-        },
-        function(faxAccount, callback) {
-          var updated = _.merge(faxAccount, req.body);
-          return updated.save({
-              transaction: t
-            })
-            .then(function() {
-              console.log('faxAccount saved');
-              callback(null, faxAccount);
-            })
-            .catch(function(err) {
-              callback(err);
-            });
-        }
-      ], function(err, faxAccount) {
-        if (err) {
-          console.log(err);
-          t.rollback();
-          return res.status(404).send(err);
-        } else {
-          console.log('ok');
-          t.commit();
-          return res.status(201).send(faxAccount);
-        }
-      })
-    });
-};
-
-// Deletes a faxAccount from the DB.
-exports.destroy = function(req, res, next) {
-  FaxAccount
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(faxAccount) {
-      if (!faxAccount) {
-        return res.sendStatus(404);
-      }
-      faxAccount.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          next(err);
-        });
-    })
-    .catch(function(err) {
-      next(err);
-    });
-};
-
-exports.addApplications = function(req, res, next) {
-
-  FaxApplication
-    .findAll({
-      where: {
-        id: req.body.applications
-      }
-    })
-    .then(function(faxApplications) {
-      var tmpFaxApplications = faxApplications;
-
-      return sequelize.transaction(function(t) {
-        return FaxApplication.destroy({
-          where: {
-            id: req.body.applications
-          }
-        }, {
-          transaction: t
-        }).then(function() {
-
-          var sortedApplications = [];
-
-          for (var i = 0; i < req.body.applications.length; i++) {
-
-            var tmpFaxApplication = _.find(tmpFaxApplications, {
-              'id': req.body.applications[i]
-            });
-
-            if (tmpFaxApplication) {
-              tmpFaxApplication.priority = i + 1;
-              sortedApplications.push(tmpFaxApplication.dataValues);
-            }
-          }
-
-          return FaxApplication.bulkCreate(sortedApplications, {
-            transaction: t
-          }).then(function(data) {
-            return data;
-          });
-        });
-      }).then(function(result) {
-        return res.status(200).send(result);
-        // Transaction has been committed
-        // result is whatever the result of the promise chain returned to the transaction callback
-      }).catch(function(err) {
-        return handleError(res, err);
-        // Transaction has been rolled back
-        // err is whatever rejected the promise chain returned to the transaction callback
-      });
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-exports.bulkDestroy = function(req, res) {
-  FaxAccount
-    .destroy({
-      where: {
-        id: req.query.id
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x139f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x73\x79\x6E\x63","\x54\x72\x75\x6E\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x70\x68\x6F\x6E\x65","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x63\x6F\x6E\x74\x65\x78\x74","\x47\x6F\x74\x6F","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78\x2C\x73\x2C\x31","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6C\x6F\x67","\x72\x6F\x6C\x6C\x62\x61\x63\x6B","\x6F\x6B","\x63\x6F\x6D\x6D\x69\x74","\x77\x61\x74\x65\x72\x66\x61\x6C\x6C","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x65\x64\x69\x74\x65\x64","\x55\x73\x65\x72\x49\x64","\x6D\x65\x72\x67\x65","\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x20\x73\x61\x76\x65\x64","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6C\x65\x6E\x67\x74\x68","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x70\x72\x69\x6F\x72\x69\x74\x79","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x139f[0];var _=require(_0x139f[1]);var util=require(_0x139f[2]);var async=require(_0x139f[3]);var Trunk=require(_0x139f[5])[_0x139f[4]];var FaxAccount=require(_0x139f[5])[_0x139f[6]];var FaxApplication=require(_0x139f[5])[_0x139f[7]];var VoiceExtension=require(_0x139f[5])[_0x139f[8]];var sequelize=require(_0x139f[5])[_0x139f[9]];exports[_0x139f[10]]=function(_0x78bcx9,_0x78bcxa,_0x78bcxb){var _0x78bcxc=[_0x139f[11],_0x139f[12],_0x139f[13]];var _0x78bcxd=_0x78bcx9[_0x139f[15]][_0x139f[14]]?parseInt(_0x78bcx9[_0x139f[15]][_0x139f[14]],10):100;var _0x78bcxe=_0x78bcx9[_0x139f[15]][_0x139f[16]]?parseInt(_0x78bcx9[_0x139f[15]][_0x139f[16]],10):0;var _0x78bcxf={where:{},limit:_0x78bcxd,offset:_0x78bcxe*_0x78bcxd};_[_0x139f[30]](_0x78bcx9[_0x139f[15]],function(_0x78bcx10,_0x78bcx11){switch(_0x78bcx11){case _0x139f[14]:;case _0x139f[16]:break;case _0x139f[19]:_0x78bcxf[_0x139f[17]]=util[_0x139f[22]](_0x139f[18],_0x78bcx9[_0x139f[15]][_0x139f[19]],_0x78bcx9[_0x139f[15]][_0x139f[20]]||_0x139f[21])||null;break;case _0x139f[20]:break;case _0x139f[28]:_0x78bcxf[_0x139f[24]][_0x139f[23]]=[];_0x78bcxc[_0x139f[27]](function(_0x78bcx12){var _0x78bcx13={};_0x78bcx13[_0x78bcx12]={$like:_0x139f[25]+_0x78bcx10+_0x139f[25]};_0x78bcxf[_0x139f[24]][_0x139f[23]][_0x139f[26]](_0x78bcx13)});break;default:_0x78bcxf[_0x139f[24]][_0x78bcx11]={$like:{}};_0x78bcxf[_0x139f[24]][_0x78bcx11][_0x139f[29]]=_0x139f[25]+_0x78bcx10+_0x139f[25]}});FaxAccount[_0x139f[45]](_0x78bcxf)[_0x139f[44]](function(_0x78bcx15){var _0x78bcx16=Math[_0x139f[36]](_0x78bcx15[_0x139f[35]]/_0x78bcxd);var _0x78bcx17=_0x78bcx16>(_0x78bcxf[_0x139f[37]]+1)?util[_0x139f[22]](_0x139f[38],_0x78bcx9[_0x139f[39]],_0x78bcx9[_0x139f[41]][_0x139f[40]],_0x78bcx9[_0x139f[42]],_0x78bcxe+1):null;var _0x78bcx18=_0x78bcxe>0?util[_0x139f[22]](_0x139f[38],_0x78bcx9[_0x139f[39]],_0x78bcx9[_0x139f[41]][_0x139f[40]],_0x78bcx9[_0x139f[42]],_0x78bcxe-1):null;_0x78bcxa[_0x139f[33]](200)[_0x139f[32]]({count:_0x78bcx15[_0x139f[35]],rows:_0x78bcx15[_0x139f[43]],next_page:_0x78bcx17,previous_page:_0x78bcx18,total_pages:_0x78bcx16})})[_0x139f[34]](function(_0x78bcx14){_0x78bcxa[_0x139f[33]](500)[_0x139f[32]]({error:_0x139f[31]})})};exports[_0x139f[46]]=function(_0x78bcx9,_0x78bcxa,_0x78bcxb){FaxAccount[_0x139f[50]](_0x78bcx9[_0x139f[49]][_0x139f[48]])[_0x139f[44]](function(_0x78bcx19){if(!_0x78bcx19){return _0x78bcxa[_0x139f[47]](404)};return _0x78bcxa[_0x139f[32]](_0x78bcx19)})[_0x139f[34]](function(_0x78bcx14){return _0x78bcxb(_0x78bcx14)})};exports[_0x139f[51]]=function(_0x78bcx9,_0x78bcxa,_0x78bcxb){return sequelize[_0x139f[62]]()[_0x139f[44]](function(_0x78bcx1a){async[_0x139f[61]]([function(_0x78bcx1b){return FaxAccount[_0x139f[51]](_0x78bcx9[_0x139f[52]],{transaction:_0x78bcx1a})[_0x139f[44]](function(_0x78bcx19){_0x78bcx1b(null,_0x78bcx19)})[_0x139f[34]](function(_0x78bcx14){_0x78bcx1b(_0x78bcx14)})},function(_0x78bcx19,_0x78bcx1b){return Trunk[_0x139f[50]](_0x78bcx9[_0x139f[52]].TrunkId,{transaction:_0x78bcx1a})[_0x139f[44]](function(_0x78bcx1c){_0x78bcx1b(null,_0x78bcx19,_0x78bcx1c)})[_0x139f[34]](function(_0x78bcx14){_0x78bcx1b(_0x78bcx14)})},function(_0x78bcx19,_0x78bcx1c,_0x78bcx1b){return VoiceExtension[_0x139f[51]]({context:_0x78bcx1c[_0x139f[53]],exten:_0x78bcx9[_0x139f[52]][_0x139f[13]],priority:1,app:_0x139f[54],appdata:_0x139f[55],type:_0x139f[56],TrunkId:_0x78bcx1c[_0x139f[48]]},{transaction:_0x78bcx1a})[_0x139f[44]](function(_0x78bcx1d){_0x78bcx1b(null,_0x78bcx19)})[_0x139f[34]](function(_0x78bcx14){_0x78bcx1b(_0x78bcx14)})}],function(_0x78bcx14,_0x78bcx19){if(_0x78bcx14){console[_0x139f[57]](_0x78bcx14);_0x78bcx1a[_0x139f[58]]();return _0x78bcxa[_0x139f[33]](404)[_0x139f[32]](_0x78bcx14)}else {console[_0x139f[57]](_0x139f[59]);_0x78bcx1a[_0x139f[60]]();return _0x78bcxa[_0x139f[33]](201)[_0x139f[32]](_0x78bcx19)}})})};exports[_0x139f[63]]=function(_0x78bcx9,_0x78bcxa,_0x78bcxb){if(_0x78bcx9[_0x139f[52]][_0x139f[48]]){delete _0x78bcx9[_0x139f[52]][_0x139f[48]]};return sequelize[_0x139f[62]]()[_0x139f[44]](function(_0x78bcx1a){async[_0x139f[61]]([function(_0x78bcx1b){return FaxAccount[_0x139f[64]]({where:{id:_0x78bcx9[_0x139f[49]][_0x139f[48]]},include:[{model:Trunk}]},{transaction:_0x78bcx1a})[_0x139f[44]](function(_0x78bcx19){_0x78bcx1b(null,_0x78bcx19)})[_0x139f[34]](function(_0x78bcx14){_0x78bcx1b(_0x78bcx14)})},function(_0x78bcx19,_0x78bcx1b){return Trunk[_0x139f[50]](_0x78bcx9[_0x139f[52]].TrunkId,{transaction:_0x78bcx1a})[_0x139f[44]](function(_0x78bcx1e){return _0x78bcx19[_0x139f[65]]({TrunkId:_0x78bcx1e[_0x139f[48]]},{transaction:_0x78bcx1a})[_0x139f[44]](function(_0x78bcx1f){_0x78bcx1b(null,_0x78bcx19,_0x78bcx1e)})[_0x139f[34]](function(_0x78bcx14){_0x78bcx1b(_0x78bcx14)})})[_0x139f[34]](function(_0x78bcx14){_0x78bcx1b(_0x78bcx14)})},function(_0x78bcx19,_0x78bcx1e,_0x78bcx1b){return VoiceExtension[_0x139f[64]]({where:{priority:1,exten:_0x78bcx19[_0x139f[13]],context:_0x78bcx19[_0x139f[4]][_0x139f[53]]}},{transaction:_0x78bcx1a})[_0x139f[44]](function(_0x78bcx1d){if(!_0x78bcx1d){_0x78bcx1b(null,_0x78bcx19)};return _0x78bcx1d[_0x139f[65]]({exten:_0x78bcx9[_0x139f[52]][_0x139f[13]],context:_0x78bcx1e[_0x139f[53]],TrunkId:_0x78bcx9[_0x139f[52]][_0x139f[67]]},{transaction:_0x78bcx1a})[_0x139f[44]](function(){console[_0x139f[57]](_0x139f[66]);_0x78bcx1b(null,_0x78bcx19)})[_0x139f[34]](function(_0x78bcx14){_0x78bcx1b(_0x78bcx14)})})[_0x139f[34]](function(_0x78bcx14){_0x78bcx1b(_0x78bcx14)})},function(_0x78bcx19,_0x78bcx1b){var _0x78bcx20=_[_0x139f[68]](_0x78bcx19,_0x78bcx9[_0x139f[52]]);return _0x78bcx20[_0x139f[70]]({transaction:_0x78bcx1a})[_0x139f[44]](function(){console[_0x139f[57]](_0x139f[69]);_0x78bcx1b(null,_0x78bcx19)})[_0x139f[34]](function(_0x78bcx14){_0x78bcx1b(_0x78bcx14)})}],function(_0x78bcx14,_0x78bcx19){if(_0x78bcx14){console[_0x139f[57]](_0x78bcx14);_0x78bcx1a[_0x139f[58]]();return _0x78bcxa[_0x139f[33]](404)[_0x139f[32]](_0x78bcx14)}else {console[_0x139f[57]](_0x139f[59]);_0x78bcx1a[_0x139f[60]]();return _0x78bcxa[_0x139f[33]](201)[_0x139f[32]](_0x78bcx19)}})})};exports[_0x139f[71]]=function(_0x78bcx9,_0x78bcxa,_0x78bcxb){FaxAccount[_0x139f[72]]({where:{id:_0x78bcx9[_0x139f[49]][_0x139f[48]]}})[_0x139f[44]](function(_0x78bcx19){if(!_0x78bcx19){return _0x78bcxa[_0x139f[47]](404)};_0x78bcx19[_0x139f[71]]()[_0x139f[44]](function(){return _0x78bcxa[_0x139f[47]](204)})[_0x139f[34]](function(_0x78bcx14){_0x78bcxb(_0x78bcx14)})})[_0x139f[34]](function(_0x78bcx14){_0x78bcxb(_0x78bcx14)})};exports[_0x139f[73]]=function(_0x78bcx9,_0x78bcxa,_0x78bcxb){FaxApplication[_0x139f[79]]({where:{id:_0x78bcx9[_0x139f[52]][_0x139f[75]]}})[_0x139f[44]](function(_0x78bcx21){var _0x78bcx22=_0x78bcx21;return sequelize[_0x139f[62]](function(_0x78bcx1a){return FaxApplication[_0x139f[71]]({where:{id:_0x78bcx9[_0x139f[52]][_0x139f[75]]}},{transaction:_0x78bcx1a})[_0x139f[44]](function(){var _0x78bcx23=[];for(var _0x78bcx24=0;_0x78bcx24<_0x78bcx9[_0x139f[52]][_0x139f[75]][_0x139f[74]];_0x78bcx24++){var _0x78bcx25=_[_0x139f[72]](_0x78bcx22,{"\x69\x64":_0x78bcx9[_0x139f[52]][_0x139f[75]][_0x78bcx24]});if(_0x78bcx25){_0x78bcx25[_0x139f[76]]=_0x78bcx24+1;_0x78bcx23[_0x139f[26]](_0x78bcx25[_0x139f[77]])}};return FaxApplication[_0x139f[78]](_0x78bcx23,{transaction:_0x78bcx1a})[_0x139f[44]](function(_0x78bcx1f){return _0x78bcx1f})})})[_0x139f[44]](function(_0x78bcx15){return _0x78bcxa[_0x139f[33]](200)[_0x139f[32]](_0x78bcx15)})[_0x139f[34]](function(_0x78bcx14){return handleError(_0x78bcxa,_0x78bcx14)})})[_0x139f[34]](function(_0x78bcx14){return _0x78bcxb(_0x78bcx14)})};exports[_0x139f[80]]=function(_0x78bcx9,_0x78bcxa){FaxAccount[_0x139f[71]]({where:{id:_0x78bcx9[_0x139f[15]][_0x139f[48]]},individualHooks:true})[_0x139f[44]](function(){return _0x78bcxa[_0x139f[47]](204)})[_0x139f[34]](function(_0x78bcx14){return handleError(_0x78bcxa,_0x78bcx14)})};function handleError(_0x78bcxa,_0x78bcx14){return _0x78bcxa[_0x139f[33]](500)[_0x139f[32]](_0x78bcx14)}
\ No newline at end of file
index e28dde9..25d7c90 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var fax_account = require('../../models').FaxAccount;
-
-exports.register = function(socket) {
-  fax_account.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  fax_account.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('fax_account:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('fax_account:remove', doc);
-}
+var _0x2a19=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x2a19[0];var fax_account=require(_0x2a19[2])[_0x2a19[1]];exports[_0x2a19[3]]=function(_0x2c1bx2){fax_account[_0x2a19[4]](function(_0x2c1bx3){onSave(_0x2c1bx2,_0x2c1bx3)});fax_account[_0x2a19[5]](function(_0x2c1bx3){onRemove(_0x2c1bx2,_0x2c1bx3)})};function onSave(_0x2c1bx2,_0x2c1bx3,_0x2c1bx5){_0x2c1bx2[_0x2a19[7]](_0x2a19[6],_0x2c1bx3)}function onRemove(_0x2c1bx2,_0x2c1bx3,_0x2c1bx5){_0x2c1bx2[_0x2a19[7]](_0x2a19[8],_0x2c1bx3)}
\ No newline at end of file
index 0399e33..2127350 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/fax/accounts', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/fax/accounts')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x5315=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74"];_0x5315[0];var should=require(_0x5315[1]);var app=require(_0x5315[2]);var request=require(_0x5315[3]);describe(_0x5315[4],function(){it(_0x5315[5],function(_0xced8x4){request(app)[_0x5315[13]](_0x5315[12])[_0x5315[11]](200)[_0x5315[11]](_0x5315[10],/json/)[_0x5315[9]](function(_0xced8x5,_0xced8x6){if(_0xced8x5){return _0xced8x4(_0xced8x5)};_0xced8x6[_0x5315[8]][_0x5315[1]][_0x5315[7]][_0x5315[6]](Array);_0xced8x4()})})})
\ No newline at end of file
index 15886c9..d1a98a7 100644 (file)
@@ -1,17 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./fax_account.controller');
-var auth = require('../../auth/auth.service');
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.post('/:id/applications', controller.addApplications);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/', controller.bulkDestroy);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0xd79f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xd79f[0];var express=require(_0xd79f[1]);var controller=require(_0xd79f[2]);var auth=require(_0xd79f[3]);var router=express.Router();router[_0xd79f[7]](_0xd79f[4],auth[_0xd79f[5]](),controller[_0xd79f[6]]);router[_0xd79f[7]](_0xd79f[8],controller[_0xd79f[9]]);router[_0xd79f[11]](_0xd79f[4],controller[_0xd79f[10]]);router[_0xd79f[11]](_0xd79f[12],controller[_0xd79f[13]]);router[_0xd79f[15]](_0xd79f[8],controller[_0xd79f[14]]);router[_0xd79f[16]](_0xd79f[8],controller[_0xd79f[14]]);router[_0xd79f[18]](_0xd79f[4],controller[_0xd79f[17]]);router[_0xd79f[18]](_0xd79f[8],controller[_0xd79f[19]]);module[_0xd79f[20]]=router
\ No newline at end of file
index 59b09cb..7eebece 100644 (file)
@@ -1,94 +1 @@
-'use strict';
-var _ = require('lodash');
-var FaxApplication = require('../../models').FaxApplication;
-// Get list of fax_applications
-exports.index = function(req, res) {
-  FaxApplication.findAll({
-    where: req.query
-  }).then(function(fax_applications) {
-    return res.status(200).send(fax_applications);
-  }).catch(function(err) {
-    return handleError(res, err);
-  });
-};
-// Get a single fax_application
-exports.show = function(req, res) {
-  FaxApplication.findById(req.params.id).then(function(fax_application) {
-    if (!fax_application) {
-      return res.sendStatus(404);
-    }
-    return res.send(fax_application);
-  }).catch(function(err) {
-    return handleError(res, err);
-  });
-};
-// Creates a new fax_application in the DB.
-exports.create = function(req, res, next) {
-  console.log(req.body);
-  FaxApplication.max('priority', {
-    where: {
-      FaxAccountId: req.body.FaxAccountId
-    }
-  }).then(function(max) {
-    // SET PRIORITY
-    req.body.priority = max ? ++max : 1;
-    FaxApplication.create(req.body).then(function(faxApplication) {
-      return res.status(201).send(faxApplication);
-    }).catch(function(err) {
-      return next(err);
-    });
-    console.log(max);
-  }).catch(function(err) {
-    next(err);
-  });
-  // FaxApplication
-  // .create(req.body)
-  // .then(function(fax_application) {
-  //   return res.status(201).send(fax_application);
-  // })
-  // .catch(function(err) {
-  //   return handleError(res, err);
-  // });
-};
-// Updates an existing fax_application in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  FaxApplication.findById(req.params.id).then(function(fax_application) {
-    if (!fax_application) {
-      return res.sendStatus(404);
-    }
-    var updated = _.merge(fax_application, req.body);
-    updated.save().then(function() {
-      return res.status(200).send(fax_application);
-    }).catch(function(err) {
-      return handleError(res, err);
-    });
-  }).catch(function(err) {
-    return handleError(res, err);
-  });
-};
-// Deletes a fax_application from the DB.
-exports.destroy = function(req, res) {
-  FaxApplication.find({
-    where: {
-      id: req.params.id
-    }
-  }).then(function(fax_application) {
-    if (!fax_application) {
-      return res.sendStatus(404);
-    }
-    fax_application.destroy().then(function() {
-      return res.sendStatus(204);
-    }).catch(function(err) {
-      return handleError(res, err);
-    });
-  }).catch(function(err) {
-    return handleError(res, err);
-  });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x2ad9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x6C\x6F\x67","\x70\x72\x69\x6F\x72\x69\x74\x79","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x6D\x61\x78","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64"];_0x2ad9[0];var _=require(_0x2ad9[1]);var FaxApplication=require(_0x2ad9[3])[_0x2ad9[2]];exports[_0x2ad9[4]]=function(_0xe1dfx3,_0xe1dfx4){FaxApplication[_0x2ad9[10]]({where:_0xe1dfx3[_0x2ad9[9]]})[_0x2ad9[8]](function(_0xe1dfx6){return _0xe1dfx4[_0x2ad9[7]](200)[_0x2ad9[6]](_0xe1dfx6)})[_0x2ad9[5]](function(_0xe1dfx5){return handleError(_0xe1dfx4,_0xe1dfx5)})};exports[_0x2ad9[11]]=function(_0xe1dfx3,_0xe1dfx4){FaxApplication[_0x2ad9[15]](_0xe1dfx3[_0x2ad9[14]][_0x2ad9[13]])[_0x2ad9[8]](function(_0xe1dfx7){if(!_0xe1dfx7){return _0xe1dfx4[_0x2ad9[12]](404)};return _0xe1dfx4[_0x2ad9[6]](_0xe1dfx7)})[_0x2ad9[5]](function(_0xe1dfx5){return handleError(_0xe1dfx4,_0xe1dfx5)})};exports[_0x2ad9[16]]=function(_0xe1dfx3,_0xe1dfx4,_0xe1dfx8){console[_0x2ad9[18]](_0xe1dfx3[_0x2ad9[17]]);FaxApplication[_0x2ad9[21]](_0x2ad9[19],{where:{FaxAccountId:_0xe1dfx3[_0x2ad9[17]][_0x2ad9[20]]}})[_0x2ad9[8]](function(_0xe1dfx9){_0xe1dfx3[_0x2ad9[17]][_0x2ad9[19]]=_0xe1dfx9?++_0xe1dfx9:1;FaxApplication[_0x2ad9[16]](_0xe1dfx3[_0x2ad9[17]])[_0x2ad9[8]](function(_0xe1dfxa){return _0xe1dfx4[_0x2ad9[7]](201)[_0x2ad9[6]](_0xe1dfxa)})[_0x2ad9[5]](function(_0xe1dfx5){return _0xe1dfx8(_0xe1dfx5)});console[_0x2ad9[18]](_0xe1dfx9)})[_0x2ad9[5]](function(_0xe1dfx5){_0xe1dfx8(_0xe1dfx5)})};exports[_0x2ad9[22]]=function(_0xe1dfx3,_0xe1dfx4){if(_0xe1dfx3[_0x2ad9[17]][_0x2ad9[13]]){delete _0xe1dfx3[_0x2ad9[17]][_0x2ad9[13]]};FaxApplication[_0x2ad9[15]](_0xe1dfx3[_0x2ad9[14]][_0x2ad9[13]])[_0x2ad9[8]](function(_0xe1dfx7){if(!_0xe1dfx7){return _0xe1dfx4[_0x2ad9[12]](404)};var _0xe1dfxb=_[_0x2ad9[23]](_0xe1dfx7,_0xe1dfx3[_0x2ad9[17]]);_0xe1dfxb[_0x2ad9[24]]()[_0x2ad9[8]](function(){return _0xe1dfx4[_0x2ad9[7]](200)[_0x2ad9[6]](_0xe1dfx7)})[_0x2ad9[5]](function(_0xe1dfx5){return handleError(_0xe1dfx4,_0xe1dfx5)})})[_0x2ad9[5]](function(_0xe1dfx5){return handleError(_0xe1dfx4,_0xe1dfx5)})};exports[_0x2ad9[25]]=function(_0xe1dfx3,_0xe1dfx4){FaxApplication[_0x2ad9[26]]({where:{id:_0xe1dfx3[_0x2ad9[14]][_0x2ad9[13]]}})[_0x2ad9[8]](function(_0xe1dfx7){if(!_0xe1dfx7){return _0xe1dfx4[_0x2ad9[12]](404)};_0xe1dfx7[_0x2ad9[25]]()[_0x2ad9[8]](function(){return _0xe1dfx4[_0x2ad9[12]](204)})[_0x2ad9[5]](function(_0xe1dfx5){return handleError(_0xe1dfx4,_0xe1dfx5)})})[_0x2ad9[5]](function(_0xe1dfx5){return handleError(_0xe1dfx4,_0xe1dfx5)})};function handleError(_0xe1dfx4,_0xe1dfx5){return _0xe1dfx4[_0x2ad9[7]](500)[_0x2ad9[6]](_0xe1dfx5)}
\ No newline at end of file
index 2a677d7..63498dc 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var fax_application = require('../../models').FaxApplication;
-
-exports.register = function(socket) {
-  fax_application.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  fax_application.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('fax_application:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('fax_application:remove', doc);
-}
+var _0x1f86=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x1f86[0];var fax_application=require(_0x1f86[2])[_0x1f86[1]];exports[_0x1f86[3]]=function(_0x189bx2){fax_application[_0x1f86[4]](function(_0x189bx3){onSave(_0x189bx2,_0x189bx3)});fax_application[_0x1f86[5]](function(_0x189bx3){onRemove(_0x189bx2,_0x189bx3)})};function onSave(_0x189bx2,_0x189bx3,_0x189bx5){_0x189bx2[_0x1f86[7]](_0x1f86[6],_0x189bx3)}function onRemove(_0x189bx2,_0x189bx3,_0x189bx5){_0x189bx2[_0x1f86[7]](_0x1f86[8],_0x189bx3)}
\ No newline at end of file
index 9eeaee8..3bb4202 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/fax/applications', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/fax/applications')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x7871=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0x7871[0];var should=require(_0x7871[1]);var app=require(_0x7871[2]);var request=require(_0x7871[3]);describe(_0x7871[4],function(){it(_0x7871[5],function(_0x77fex4){request(app)[_0x7871[13]](_0x7871[12])[_0x7871[11]](200)[_0x7871[11]](_0x7871[10],/json/)[_0x7871[9]](function(_0x77fex5,_0x77fex6){if(_0x77fex5){return _0x77fex4(_0x77fex5)};_0x77fex6[_0x7871[8]][_0x7871[1]][_0x7871[7]][_0x7871[6]](Array);_0x77fex4()})})})
\ No newline at end of file
index b27e419..569b3fd 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./fax_application.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
\ No newline at end of file
+var _0xfb82=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfb82[0];var express=require(_0xfb82[1]);var controller=require(_0xfb82[2]);var router=express.Router();router[_0xfb82[5]](_0xfb82[3],controller[_0xfb82[4]]);router[_0xfb82[5]](_0xfb82[6],controller[_0xfb82[7]]);router[_0xfb82[9]](_0xfb82[3],controller[_0xfb82[8]]);router[_0xfb82[11]](_0xfb82[6],controller[_0xfb82[10]]);router[_0xfb82[12]](_0xfb82[6],controller[_0xfb82[10]]);router[_0xfb82[14]](_0xfb82[6],controller[_0xfb82[13]]);module[_0xfb82[15]]=router
\ No newline at end of file
index 2d69e42..f585e76 100644 (file)
@@ -1,64 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-
-var FaxMessage = require('../../models').FaxMessage;
-var Trunk = require('../../models').User;
-
-exports.register = function(ami) {
-
-  FaxMessage.afterCreate(function(doc) {
-    console.log('FaxMessage afterCreate');
-    onSave(ami, doc);
-  });
-};
-
-function onSave(ami, doc, cb) {
-  if (doc.status === 'NOT SENT' && !doc.actionid) {
-    // I have to send the fax with the Originate
-    var faxBody = JSON.parse(doc.body);
-    console.log('faxBody', faxBody);
-
-    Trunk
-      .findById(faxBody.trunk.id)
-      .then(function(trunk) {
-        var action = {
-          Action: 'originate',
-          CallerID: faxBody.from,
-          Channel: util.format('%s/%s@%s', faxBody.technology, faxBody.to, trunk.name),
-          Context: 'outbound-fax',
-          Exten: 's',
-          Priority: 1,
-          Async: 'true',
-          Variable: {
-            MAXRATE: faxBody.maxrate,
-            MINRATE: faxBody.minrate,
-            ECM: faxBody.ecm ? 'yes' : 'no',
-            LOCALID: faxBody.fax_localid,
-            FAXFILE: faxBody.fax_file,
-            // 'FAXFILE': 'test.tiff', // Scommentare se si fanno prove in locale!
-            FAXHEADER: faxBody.fax_header,
-            FAXUUID: faxBody.uuid
-          }
-        };
-
-        ami.action(action, function(err, res) {
-          if (err) {
-            doc.updateAttributes({
-              status: 'FAILED'
-            });
-          } else {
-            if (res.response && res.actionid) {
-              doc.updateAttributes({
-                actionid: res.actionid
-              });
-            }
-          }
-        });
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
+var _0xb088=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x20\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x6C\x6F\x67","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x4E\x4F\x54\x20\x53\x45\x4E\x54","\x61\x63\x74\x69\x6F\x6E\x69\x64","\x62\x6F\x64\x79","\x70\x61\x72\x73\x65","\x66\x61\x78\x42\x6F\x64\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x66\x72\x6F\x6D","\x25\x73\x2F\x25\x73\x40\x25\x73","\x74\x65\x63\x68\x6E\x6F\x6C\x6F\x67\x79","\x74\x6F","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x73","\x74\x72\x75\x65","\x6D\x61\x78\x72\x61\x74\x65","\x6D\x69\x6E\x72\x61\x74\x65","\x65\x63\x6D","\x79\x65\x73","\x6E\x6F","\x66\x61\x78\x5F\x6C\x6F\x63\x61\x6C\x69\x64","\x66\x61\x78\x5F\x66\x69\x6C\x65","\x66\x61\x78\x5F\x68\x65\x61\x64\x65\x72","\x75\x75\x69\x64","\x46\x41\x49\x4C\x45\x44","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x61\x63\x74\x69\x6F\x6E","\x74\x68\x65\x6E","\x69\x64","\x74\x72\x75\x6E\x6B","\x66\x69\x6E\x64\x42\x79\x49\x64"];_0xb088[0];var _=require(_0xb088[1]);var util=require(_0xb088[2]);var FaxMessage=require(_0xb088[4])[_0xb088[3]];var Trunk=require(_0xb088[4])[_0xb088[5]];exports[_0xb088[6]]=function(_0xd74dx5){FaxMessage[_0xb088[9]](function(_0xd74dx6){console[_0xb088[8]](_0xb088[7]);onSave(_0xd74dx5,_0xd74dx6)})};function onSave(_0xd74dx5,_0xd74dx6,_0xd74dx8){if(_0xd74dx6[_0xb088[10]]===_0xb088[11]&&!_0xd74dx6[_0xb088[12]]){var _0xd74dx9=JSON[_0xb088[14]](_0xd74dx6[_0xb088[13]]);console[_0xb088[8]](_0xb088[15],_0xd74dx9);Trunk[_0xb088[44]](_0xd74dx9[_0xb088[43]][_0xb088[42]])[_0xb088[41]](function(_0xd74dxb){var _0xd74dxc={Action:_0xb088[18],CallerID:_0xd74dx9[_0xb088[19]],Channel:util[_0xb088[24]](_0xb088[20],_0xd74dx9[_0xb088[21]],_0xd74dx9[_0xb088[22]],_0xd74dxb[_0xb088[23]]),Context:_0xb088[25],Exten:_0xb088[26],Priority:1,Async:_0xb088[27],Variable:{MAXRATE:_0xd74dx9[_0xb088[28]],MINRATE:_0xd74dx9[_0xb088[29]],ECM:_0xd74dx9[_0xb088[30]]?_0xb088[31]:_0xb088[32],LOCALID:_0xd74dx9[_0xb088[33]],FAXFILE:_0xd74dx9[_0xb088[34]],FAXHEADER:_0xd74dx9[_0xb088[35]],FAXUUID:_0xd74dx9[_0xb088[36]]}};_0xd74dx5[_0xb088[40]](_0xd74dxc,function(_0xd74dxa,_0xd74dxd){if(_0xd74dxa){_0xd74dx6[_0xb088[38]]({status:_0xb088[37]})}else {if(_0xd74dxd[_0xb088[39]]&&_0xd74dxd[_0xb088[12]]){_0xd74dx6[_0xb088[38]]({actionid:_0xd74dxd[_0xb088[12]]})}}})})[_0xb088[17]](function(_0xd74dxa){console[_0xb088[16]](_0xd74dxa)})}}
\ No newline at end of file
index e354d5f..47fe559 100644 (file)
@@ -1,422 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var fs = require('fs');
-var path = require('path');
-var uploadFile = require('upload-file');
-var uuidLib = require('node-uuid');
-var pdf = require('html-pdf');
-var spindrift = require('spindrift');
-var formidable = require('formidable');
-var exec = require('child_process').exec;
-var config = require('../../config/environment');
-
-var FaxMessage = require('../../models').FaxMessage;
-var FaxRoom = require('../../models').FaxRoom;
-var FaxAccount = require('../../models').FaxAccount;
-var Contact = require('../../models').Contact;
-
-// Get list of fax_messages
-exports.index = function(req, res) {
-  FaxMessage
-    .findAll({
-      where: req.query,
-      order: 'createdAt DESC',
-      include: [{
-        model: Contact,
-        as: 'From'
-      }, {
-        model: Contact,
-        as: 'To'
-      }, {
-        model: FaxRoom,
-        include: [{
-          model: FaxAccount
-        }]
-      }]
-    })
-    .then(function(fax_messages) {
-      return res.status(200).send(fax_messages);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single fax_message
-exports.show = function(req, res) {
-  FaxMessage
-    .findOne({
-      where: {
-        id: req.params.id
-      },
-      include: [{
-        model: Contact,
-        as: 'From'
-      }, {
-        model: Contact,
-        as: 'To'
-      }]
-    })
-    .then(function(fax_message) {
-      if (!fax_message) {
-        return res.sendStatus(404);
-      }
-      return res.send(fax_message);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new fax_message in the DB.
-exports.create = function(req, res, next) {
-  // FaxMessage
-  //   .create(req.body)
-  //   .then(function(fax_message) {
-  //     return res.status(201).send(fax_message);
-  //   })
-  //   .catch(function(err) {
-  //     return handleError(res, err);
-  //   });
-
-  var form = new formidable.IncomingForm();
-  // form.encoding = 'utf-8';
-  form.uploadDir = path.join(config.root, 'server/files/fax/outbound/original');
-  form.keepExtensions = true;
-  form.multiples = false;
-
-  if (req.body.onlyText) {
-    //There is not file, only text
-    // console.log(req.body);
-    if (req.body.html) {
-      //There is the html message -> convert
-      var uuid = uuidLib.v4()
-      var dest = path.join(config.root, 'server/files/fax/outbound/original', uuid + '.pdf');
-      pdf.create(req.body.html, {
-        "timeout": 30000
-      }).toFile(dest, function(err, result) {
-        console.log('Fax: HTML Converted');
-        convertPdfAndSendFax(req, res, uuid, req.body);
-      });
-    }
-  } else {
-    form.parse(req, function(err, fields, files) {
-      if (err) {
-        return handleError(res, err);
-      }
-
-      if (fields.html) {
-        //There is HTML with PDF
-        var uuid = uuidLib.v4();
-        var dest = path.join(config.root, 'server/files/fax/outbound/original', uuid + '.pdf');
-        pdf.create(fields.html, {
-          "timeout": 30000
-        }).toFile(dest, function(err, result) {
-          console.log('Fax: HTML Converted');
-          var pdfHTML = spindrift(result.filename);
-          var pdfUploaded = spindrift(files.file.path);
-          var uuid = uuidLib.v4();
-          spindrift.join(pdfHTML, pdfUploaded).pdfStream().pipe(fs.createWriteStream(path.join(config.root, 'server/files/fax/outbound/original', uuid + '.pdf')));
-          console.log('Fax: HTML joined with PDF uploaded');
-          convertPdfAndSendFax(req, res, uuid, fields);
-        });
-      } else {
-        //There is only PDF
-        var uuid = uuidLib.v4();
-        var dest = path.join(config.root, 'server/files/fax/outbound/original', uuid + '.pdf');
-        fs.rename(files.file.path, dest, function(err) {
-          if (err) {
-            console.error(err);
-            return handleError(res, req);
-            // return next(err);
-          }
-          console.log('Fax: PDF Rename');
-          convertPdfAndSendFax(req, res, uuid, fields);
-        });
-      }
-
-    });
-  }
-};
-
-function convertPdfAndSendFax(req, res, filenameInput, fields) {
-  var inputPath = path.join(config.root, 'server', 'files', 'fax', 'outbound', 'original', filenameInput + '.pdf');
-  var resultPath = path.join(config.root, 'server', 'files', 'fax', 'outbound', 'converted', filenameInput + '.tif');
-  var command = 'gs' + ' -q -dNOPAUSE -dBATCH -sDEVICE=tiffg4 ' + '-sPAPERSIZE=letter -sOutputFile=' + resultPath + ' ' + inputPath;
-  // console.log(inputPath, resultPath, command);
-
-  var uuidFax = uuidLib.v4();
-  FaxAccount
-    .findById(fields.accountId)
-    .then(function(faxAccount) {
-      // console.log('FaxAccount', faxAccount);
-
-      if (faxAccount) {
-        var faxBody = {
-          technology: 'SIP',
-          to: fields.toNum,
-          from: faxAccount.phone,
-          fax_file: resultPath,
-          fax_header: faxAccount.faxheader,
-          fax_localid: faxAccount.localid,
-          maxrate: faxAccount.maxrate,
-          minrate: faxAccount.minrate,
-          ecm: faxAccount.ecm,
-          uuid: uuidFax,
-          trunk: {
-            id: faxAccount.TrunkId
-          }
-        };
-
-        fs.exists(inputPath, function(exists) {
-          if (!exists) {
-            // console.log('File not exist');
-            handleError(res, new Error('File not exists'));
-          } else {
-            exec(command, function(err) {
-              if (err) {
-                console.error(err);
-                handleError(res, err);
-              } else {
-                console.log('Fax: PDF converted to TIFF');
-                fs.chmod(resultPath, 511, function(err) {
-                  if (fields.roomId) {
-                    // Room already exists -> create new message and associate
-                    FaxRoom
-                      .findOrCreate({
-                        where: {
-                          id: fields.roomId
-                        },
-                        defaults: {}
-                      })
-                      .spread(function(faxRoom, created) {
-                        // TODO Verify if we have to manage also the created
-                        FaxMessage
-                          .create({
-                            status: 'NOT SENT',
-                            read: true,
-                            filenamePDF: filenameInput + '.pdf',
-                            filename: filenameInput + '.tif',
-                            body: JSON.stringify(faxBody),
-                            uuid: uuidFax,
-                            FaxRoomId: faxRoom.id
-                          })
-                          .then(function(faxMessage) {
-                            // Fax message created, now association
-                            Contact
-                              .findOrCreate({
-                                where: {
-                                  phone: faxBody.from
-                                },
-                                defaults: {
-                                  phone: faxBody.from,
-                                  fullname: faxBody.from
-                                }
-                              })
-                              .spread(function(contact, created) {
-                                // console.log('Set relationship with from', created);
-                                faxMessage.setFrom(contact);
-                              });
-
-                            Contact
-                              .findOrCreate({
-                                where: {
-                                  phone: faxBody.to
-                                },
-                                defaults: {
-                                  phone: faxBody.to,
-                                  fullname: faxBody.to
-                                }
-                              })
-                              .spread(function(contact, created) {
-                                // console.log('Set relationship with to', created);
-                                faxMessage.setTo(contact);
-                              });
-
-                            return res.status(200).send(faxMessage);
-                          })
-                          .catch(function(err) {
-                            handleError(res, err);
-                            // console.error(err);
-                            // next(err);
-                          });
-                      });
-                  } else {
-                    // Room not exists -> create room, message and associate
-                    FaxRoom
-                      .create({
-                        status: 'OPEN',
-                        from: fields.toNum,
-                        FaxAccountId: fields.accountId,
-                        UserId: fields.userId
-                      })
-                      .then(function(faxRoom) {
-                        // Room created, now message
-                        FaxMessage
-                          .create({
-                            status: 'NOT SENT',
-                            read: true,
-                            filenamePDF: filenameInput + '.pdf',
-                            filename: filenameInput + '.tif',
-                            body: JSON.stringify(faxBody),
-                            uuid: uuidFax,
-                            FaxRoomId: faxRoom.id
-                          })
-                          .then(function(faxMessage) {
-                            // Fax message created, now association
-
-                            Contact
-                              .findOrCreate({
-                                where: {
-                                  phone: faxBody.from
-                                },
-                                defaults: {
-                                  phone: faxBody.from,
-                                  fullname: faxBody.from
-                                }
-                              })
-                              .spread(function(contact, created) {
-                                faxMessage.setFrom(contact);
-                              });
-
-                            Contact
-                              .findOrCreate({
-                                where: {
-                                  phone: faxBody.to
-                                },
-                                defaults: {
-                                  phone: faxBody.to,
-                                  fullname: faxBody.to
-                                }
-                              })
-                              .spread(function(contact, created) {
-                                faxMessage.setTo(contact);
-                              });
-
-                            return res.status(200).send(
-                              faxMessage);
-                          })
-                          .catch(function(err) {
-                            handleError(res, err);
-                          });
-                      })
-                      .catch(function(err) {
-                        handleError(res, err);
-                      });
-                  }
-                });
-              }
-            });
-          }
-        });
-      }
-    });
-}
-
-// Updates an existing fax_message in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  FaxMessage
-    .findOne({
-      where: {
-        id: req.params.id
-      },
-      include: [{
-        model: Contact,
-        as: 'From'
-      }, {
-        model: Contact,
-        as: 'To'
-      }]
-    })
-    .then(function(fax_message) {
-      if (!fax_message) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(fax_message, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(fax_message);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a fax_message from the DB.
-exports.destroy = function(req, res) {
-  FaxMessage
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(fax_message) {
-      if (!fax_message) {
-        return res.sendStatus(404);
-      }
-      fax_message.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.getContentFromMessage = function(req, res) {
-
-  FaxMessage
-    .findById(req.params.id)
-    .then(function(fax_message) {
-
-      // console.log(fax_message);
-
-      if (!fax_message) {
-        return res.sendStatus(404);
-      }
-
-      if (fax_message.filenamePDF) {
-
-        if (fax_message.status === 'RECEIVED') {
-          var pdfPath = path.join(config.root, 'server', 'files', 'fax', 'inbound', fax_message.filenamePDF);
-          fs.exists(pdfPath, function(exists) {
-            if (exists)
-              return res.sendFile(pdfPath);
-            else
-              return res.sendStatus(404);
-          });
-        } else if (fax_message.status === 'NOT SENT' || fax_message.directory ===
-          'SENT' || fax_message.status === 'FAILED') {
-          var pdfPath = path.join(config.root, 'server', 'files', 'fax', 'outbound', 'original', fax_message.filenamePDF);
-          fs.exists(pdfPath, function(exists) {
-            if (exists)
-              return res.sendFile(pdfPath);
-            else
-              return res.sendStatus(404);
-          });
-        }
-      } else {
-        res.sendStatus(404);
-      }
-
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x9746=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x66\x73","\x70\x61\x74\x68","\x75\x70\x6C\x6F\x61\x64\x2D\x66\x69\x6C\x65","\x6E\x6F\x64\x65\x2D\x75\x75\x69\x64","\x68\x74\x6D\x6C\x2D\x70\x64\x66","\x73\x70\x69\x6E\x64\x72\x69\x66\x74","\x66\x6F\x72\x6D\x69\x64\x61\x62\x6C\x65","\x65\x78\x65\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x52\x6F\x6F\x6D","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x44\x45\x53\x43","\x46\x72\x6F\x6D","\x54\x6F","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x63\x72\x65\x61\x74\x65","\x75\x70\x6C\x6F\x61\x64\x44\x69\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x66\x61\x78\x2F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2F\x6F\x72\x69\x67\x69\x6E\x61\x6C","\x6A\x6F\x69\x6E","\x6B\x65\x65\x70\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x6D\x75\x6C\x74\x69\x70\x6C\x65\x73","\x6F\x6E\x6C\x79\x54\x65\x78\x74","\x62\x6F\x64\x79","\x68\x74\x6D\x6C","\x76\x34","\x2E\x70\x64\x66","\x46\x61\x78\x3A\x20\x48\x54\x4D\x4C\x20\x43\x6F\x6E\x76\x65\x72\x74\x65\x64","\x6C\x6F\x67","\x74\x6F\x46\x69\x6C\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x66\x69\x6C\x65","\x63\x72\x65\x61\x74\x65\x57\x72\x69\x74\x65\x53\x74\x72\x65\x61\x6D","\x70\x69\x70\x65","\x70\x64\x66\x53\x74\x72\x65\x61\x6D","\x46\x61\x78\x3A\x20\x48\x54\x4D\x4C\x20\x6A\x6F\x69\x6E\x65\x64\x20\x77\x69\x74\x68\x20\x50\x44\x46\x20\x75\x70\x6C\x6F\x61\x64\x65\x64","\x65\x72\x72\x6F\x72","\x46\x61\x78\x3A\x20\x50\x44\x46\x20\x52\x65\x6E\x61\x6D\x65","\x72\x65\x6E\x61\x6D\x65","\x70\x61\x72\x73\x65","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x6F\x72\x69\x67\x69\x6E\x61\x6C","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x2E\x74\x69\x66","\x67\x73","\x20\x2D\x71\x20\x2D\x64\x4E\x4F\x50\x41\x55\x53\x45\x20\x2D\x64\x42\x41\x54\x43\x48\x20\x2D\x73\x44\x45\x56\x49\x43\x45\x3D\x74\x69\x66\x66\x67\x34\x20","\x2D\x73\x50\x41\x50\x45\x52\x53\x49\x5A\x45\x3D\x6C\x65\x74\x74\x65\x72\x20\x2D\x73\x4F\x75\x74\x70\x75\x74\x46\x69\x6C\x65\x3D","\x20","\x53\x49\x50","\x74\x6F\x4E\x75\x6D","\x70\x68\x6F\x6E\x65","\x66\x61\x78\x68\x65\x61\x64\x65\x72","\x6C\x6F\x63\x61\x6C\x69\x64","\x6D\x61\x78\x72\x61\x74\x65","\x6D\x69\x6E\x72\x61\x74\x65","\x65\x63\x6D","\x54\x72\x75\x6E\x6B\x49\x64","\x46\x69\x6C\x65\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74\x73","\x46\x61\x78\x3A\x20\x50\x44\x46\x20\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x20\x74\x6F\x20\x54\x49\x46\x46","\x72\x6F\x6F\x6D\x49\x64","\x73\x65\x74\x46\x72\x6F\x6D","\x73\x70\x72\x65\x61\x64","\x66\x72\x6F\x6D","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x73\x65\x74\x54\x6F","\x74\x6F","\x4E\x4F\x54\x20\x53\x45\x4E\x54","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x4F\x50\x45\x4E","\x61\x63\x63\x6F\x75\x6E\x74\x49\x64","\x75\x73\x65\x72\x49\x64","\x63\x68\x6D\x6F\x64","\x65\x78\x69\x73\x74\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x67\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x46\x72\x6F\x6D\x4D\x65\x73\x73\x61\x67\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65\x50\x44\x46","\x52\x45\x43\x45\x49\x56\x45\x44","\x69\x6E\x62\x6F\x75\x6E\x64","\x73\x65\x6E\x64\x46\x69\x6C\x65","\x64\x69\x72\x65\x63\x74\x6F\x72\x79","\x53\x45\x4E\x54","\x46\x41\x49\x4C\x45\x44"];_0x9746[0];var _=require(_0x9746[1]);var fs=require(_0x9746[2]);var path=require(_0x9746[3]);var uploadFile=require(_0x9746[4]);var uuidLib=require(_0x9746[5]);var pdf=require(_0x9746[6]);var spindrift=require(_0x9746[7]);var formidable=require(_0x9746[8]);var exec=require(_0x9746[10])[_0x9746[9]];var config=require(_0x9746[11]);var FaxMessage=require(_0x9746[13])[_0x9746[12]];var FaxRoom=require(_0x9746[13])[_0x9746[14]];var FaxAccount=require(_0x9746[13])[_0x9746[15]];var Contact=require(_0x9746[13])[_0x9746[16]];exports[_0x9746[17]]=function(_0x6d83xf,_0x6d83x10){FaxMessage[_0x9746[26]]({where:_0x6d83xf[_0x9746[22]],order:_0x9746[23],include:[{model:Contact,as:_0x9746[24]},{model:Contact,as:_0x9746[25]},{model:FaxRoom,include:[{model:FaxAccount}]}]})[_0x9746[21]](function(_0x6d83x12){return _0x6d83x10[_0x9746[20]](200)[_0x9746[19]](_0x6d83x12)})[_0x9746[18]](function(_0x6d83x11){return handleError(_0x6d83x10,_0x6d83x11)})};exports[_0x9746[27]]=function(_0x6d83xf,_0x6d83x10){FaxMessage[_0x9746[31]]({where:{id:_0x6d83xf[_0x9746[30]][_0x9746[29]]},include:[{model:Contact,as:_0x9746[24]},{model:Contact,as:_0x9746[25]}]})[_0x9746[21]](function(_0x6d83x13){if(!_0x6d83x13){return _0x6d83x10[_0x9746[28]](404)};return _0x6d83x10[_0x9746[19]](_0x6d83x13)})[_0x9746[18]](function(_0x6d83x11){return handleError(_0x6d83x10,_0x6d83x11)})};exports[_0x9746[32]]=function(_0x6d83xf,_0x6d83x10,_0x6d83x14){var _0x6d83x15= new formidable.IncomingForm();_0x6d83x15[_0x9746[33]]=path[_0x9746[36]](config[_0x9746[34]],_0x9746[35]);_0x6d83x15[_0x9746[37]]=true;_0x6d83x15[_0x9746[38]]=false;if(_0x6d83xf[_0x9746[40]][_0x9746[39]]){if(_0x6d83xf[_0x9746[40]][_0x9746[41]]){var _0x6d83x16=uuidLib[_0x9746[42]]();var _0x6d83x17=path[_0x9746[36]](config[_0x9746[34]],_0x9746[35],_0x6d83x16+_0x9746[43]);pdf[_0x9746[32]](_0x6d83xf[_0x9746[40]][_0x9746[41]],{"\x74\x69\x6D\x65\x6F\x75\x74":30000})[_0x9746[46]](_0x6d83x17,function(_0x6d83x11,_0x6d83x18){console[_0x9746[45]](_0x9746[44]);convertPdfAndSendFax(_0x6d83xf,_0x6d83x10,_0x6d83x16,_0x6d83xf[_0x9746[40]])})}}else {_0x6d83x15[_0x9746[56]](_0x6d83xf,function(_0x6d83x11,_0x6d83x19,_0x6d83x1a){if(_0x6d83x11){return handleError(_0x6d83x10,_0x6d83x11)};if(_0x6d83x19[_0x9746[41]]){var _0x6d83x16=uuidLib[_0x9746[42]]();var _0x6d83x17=path[_0x9746[36]](config[_0x9746[34]],_0x9746[35],_0x6d83x16+_0x9746[43]);pdf[_0x9746[32]](_0x6d83x19[_0x9746[41]],{"\x74\x69\x6D\x65\x6F\x75\x74":30000})[_0x9746[46]](_0x6d83x17,function(_0x6d83x11,_0x6d83x18){console[_0x9746[45]](_0x9746[44]);var _0x6d83x1b=spindrift(_0x6d83x18[_0x9746[47]]);var _0x6d83x1c=spindrift(_0x6d83x1a[_0x9746[48]][_0x9746[3]]);var _0x6d83x16=uuidLib[_0x9746[42]]();spindrift[_0x9746[36]](_0x6d83x1b,_0x6d83x1c)[_0x9746[51]]()[_0x9746[50]](fs[_0x9746[49]](path[_0x9746[36]](config[_0x9746[34]],_0x9746[35],_0x6d83x16+_0x9746[43])));console[_0x9746[45]](_0x9746[52]);convertPdfAndSendFax(_0x6d83xf,_0x6d83x10,_0x6d83x16,_0x6d83x19)})}else {var _0x6d83x16=uuidLib[_0x9746[42]]();var _0x6d83x17=path[_0x9746[36]](config[_0x9746[34]],_0x9746[35],_0x6d83x16+_0x9746[43]);fs[_0x9746[55]](_0x6d83x1a[_0x9746[48]][_0x9746[3]],_0x6d83x17,function(_0x6d83x11){if(_0x6d83x11){console[_0x9746[53]](_0x6d83x11);return handleError(_0x6d83x10,_0x6d83xf)};console[_0x9746[45]](_0x9746[54]);convertPdfAndSendFax(_0x6d83xf,_0x6d83x10,_0x6d83x16,_0x6d83x19)})}})}};function convertPdfAndSendFax(_0x6d83xf,_0x6d83x10,_0x6d83x1e,_0x6d83x19){var _0x6d83x1f=path[_0x9746[36]](config[_0x9746[34]],_0x9746[57],_0x9746[58],_0x9746[59],_0x9746[60],_0x9746[61],_0x6d83x1e+_0x9746[43]);var _0x6d83x20=path[_0x9746[36]](config[_0x9746[34]],_0x9746[57],_0x9746[58],_0x9746[59],_0x9746[60],_0x9746[62],_0x6d83x1e+_0x9746[63]);var _0x6d83x21=_0x9746[64]+_0x9746[65]+_0x9746[66]+_0x6d83x20+_0x9746[67]+_0x6d83x1f;var _0x6d83x22=uuidLib[_0x9746[42]]();FaxAccount[_0x9746[93]](_0x6d83x19[_0x9746[89]])[_0x9746[21]](function(_0x6d83x23){if(_0x6d83x23){var _0x6d83x24={technology:_0x9746[68],to:_0x6d83x19[_0x9746[69]],from:_0x6d83x23[_0x9746[70]],fax_file:_0x6d83x20,fax_header:_0x6d83x23[_0x9746[71]],fax_localid:_0x6d83x23[_0x9746[72]],maxrate:_0x6d83x23[_0x9746[73]],minrate:_0x6d83x23[_0x9746[74]],ecm:_0x6d83x23[_0x9746[75]],uuid:_0x6d83x22,trunk:{id:_0x6d83x23[_0x9746[76]]}};fs[_0x9746[92]](_0x6d83x1f,function(_0x6d83x25){if(!_0x6d83x25){handleError(_0x6d83x10, new Error(_0x9746[77]))}else {exec(_0x6d83x21,function(_0x6d83x11){if(_0x6d83x11){console[_0x9746[53]](_0x6d83x11);handleError(_0x6d83x10,_0x6d83x11)}else {console[_0x9746[45]](_0x9746[78]);fs[_0x9746[91]](_0x6d83x20,511,function(_0x6d83x11){if(_0x6d83x19[_0x9746[79]]){FaxRoom[_0x9746[83]]({where:{id:_0x6d83x19[_0x9746[79]]},defaults:{}})[_0x9746[81]](function(_0x6d83x26,_0x6d83x27){FaxMessage[_0x9746[32]]({status:_0x9746[86],read:true,filenamePDF:_0x6d83x1e+_0x9746[43],filename:_0x6d83x1e+_0x9746[63],body:JSON[_0x9746[87]](_0x6d83x24),uuid:_0x6d83x22,FaxRoomId:_0x6d83x26[_0x9746[29]]})[_0x9746[21]](function(_0x6d83x28){Contact[_0x9746[83]]({where:{phone:_0x6d83x24[_0x9746[82]]},defaults:{phone:_0x6d83x24[_0x9746[82]],fullname:_0x6d83x24[_0x9746[82]]}})[_0x9746[81]](function(_0x6d83x29,_0x6d83x27){_0x6d83x28[_0x9746[80]](_0x6d83x29)});Contact[_0x9746[83]]({where:{phone:_0x6d83x24[_0x9746[85]]},defaults:{phone:_0x6d83x24[_0x9746[85]],fullname:_0x6d83x24[_0x9746[85]]}})[_0x9746[81]](function(_0x6d83x29,_0x6d83x27){_0x6d83x28[_0x9746[84]](_0x6d83x29)});return _0x6d83x10[_0x9746[20]](200)[_0x9746[19]](_0x6d83x28)})[_0x9746[18]](function(_0x6d83x11){handleError(_0x6d83x10,_0x6d83x11)})})}else {FaxRoom[_0x9746[32]]({status:_0x9746[88],from:_0x6d83x19[_0x9746[69]],FaxAccountId:_0x6d83x19[_0x9746[89]],UserId:_0x6d83x19[_0x9746[90]]})[_0x9746[21]](function(_0x6d83x26){FaxMessage[_0x9746[32]]({status:_0x9746[86],read:true,filenamePDF:_0x6d83x1e+_0x9746[43],filename:_0x6d83x1e+_0x9746[63],body:JSON[_0x9746[87]](_0x6d83x24),uuid:_0x6d83x22,FaxRoomId:_0x6d83x26[_0x9746[29]]})[_0x9746[21]](function(_0x6d83x28){Contact[_0x9746[83]]({where:{phone:_0x6d83x24[_0x9746[82]]},defaults:{phone:_0x6d83x24[_0x9746[82]],fullname:_0x6d83x24[_0x9746[82]]}})[_0x9746[81]](function(_0x6d83x29,_0x6d83x27){_0x6d83x28[_0x9746[80]](_0x6d83x29)});Contact[_0x9746[83]]({where:{phone:_0x6d83x24[_0x9746[85]]},defaults:{phone:_0x6d83x24[_0x9746[85]],fullname:_0x6d83x24[_0x9746[85]]}})[_0x9746[81]](function(_0x6d83x29,_0x6d83x27){_0x6d83x28[_0x9746[84]](_0x6d83x29)});return _0x6d83x10[_0x9746[20]](200)[_0x9746[19]](_0x6d83x28)})[_0x9746[18]](function(_0x6d83x11){handleError(_0x6d83x10,_0x6d83x11)})})[_0x9746[18]](function(_0x6d83x11){handleError(_0x6d83x10,_0x6d83x11)})}})}})}})}})}exports[_0x9746[94]]=function(_0x6d83xf,_0x6d83x10){if(_0x6d83xf[_0x9746[40]][_0x9746[29]]){delete _0x6d83xf[_0x9746[40]][_0x9746[29]]};FaxMessage[_0x9746[31]]({where:{id:_0x6d83xf[_0x9746[30]][_0x9746[29]]},include:[{model:Contact,as:_0x9746[24]},{model:Contact,as:_0x9746[25]}]})[_0x9746[21]](function(_0x6d83x13){if(!_0x6d83x13){return _0x6d83x10[_0x9746[28]](404)};var _0x6d83x2a=_[_0x9746[95]](_0x6d83x13,_0x6d83xf[_0x9746[40]]);_0x6d83x2a[_0x9746[96]]()[_0x9746[21]](function(){return _0x6d83x10[_0x9746[20]](200)[_0x9746[19]](_0x6d83x13)})[_0x9746[18]](function(_0x6d83x11){return handleError(_0x6d83x10,_0x6d83x11)})})[_0x9746[18]](function(_0x6d83x11){return handleError(_0x6d83x10,_0x6d83x11)})};exports[_0x9746[97]]=function(_0x6d83xf,_0x6d83x10){FaxMessage[_0x9746[98]]({where:{id:_0x6d83xf[_0x9746[30]][_0x9746[29]]}})[_0x9746[21]](function(_0x6d83x13){if(!_0x6d83x13){return _0x6d83x10[_0x9746[28]](404)};_0x6d83x13[_0x9746[97]]()[_0x9746[21]](function(){return _0x6d83x10[_0x9746[28]](204)})[_0x9746[18]](function(_0x6d83x11){return handleError(_0x6d83x10,_0x6d83x11)})})[_0x9746[18]](function(_0x6d83x11){return handleError(_0x6d83x10,_0x6d83x11)})};exports[_0x9746[99]]=function(_0x6d83xf,_0x6d83x10){FaxMessage[_0x9746[93]](_0x6d83xf[_0x9746[30]][_0x9746[29]])[_0x9746[21]](function(_0x6d83x13){if(!_0x6d83x13){return _0x6d83x10[_0x9746[28]](404)};if(_0x6d83x13[_0x9746[100]]){if(_0x6d83x13[_0x9746[20]]===_0x9746[101]){var _0x6d83x2b=path[_0x9746[36]](config[_0x9746[34]],_0x9746[57],_0x9746[58],_0x9746[59],_0x9746[102],_0x6d83x13[_0x9746[100]]);fs[_0x9746[92]](_0x6d83x2b,function(_0x6d83x25){if(_0x6d83x25){return _0x6d83x10[_0x9746[103]](_0x6d83x2b)}else {return _0x6d83x10[_0x9746[28]](404)}})}else {if(_0x6d83x13[_0x9746[20]]===_0x9746[86]||_0x6d83x13[_0x9746[104]]===_0x9746[105]||_0x6d83x13[_0x9746[20]]===_0x9746[106]){var _0x6d83x2b=path[_0x9746[36]](config[_0x9746[34]],_0x9746[57],_0x9746[58],_0x9746[59],_0x9746[60],_0x9746[61],_0x6d83x13[_0x9746[100]]);fs[_0x9746[92]](_0x6d83x2b,function(_0x6d83x25){if(_0x6d83x25){return _0x6d83x10[_0x9746[103]](_0x6d83x2b)}else {return _0x6d83x10[_0x9746[28]](404)}})}}}else {_0x6d83x10[_0x9746[28]](404)}})[_0x9746[18]](function(_0x6d83x11){return handleError(_0x6d83x10,_0x6d83x11)})};function handleError(_0x6d83x10,_0x6d83x11){return _0x6d83x10[_0x9746[20]](500)[_0x9746[19]](_0x6d83x11)}
\ No newline at end of file
index 79a31ad..7b06724 100644 (file)
@@ -1,85 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var FaxMessage = require('../../models').FaxMessage;
-var Contact = require('../../models').Contact;
-var FaxRoom = require('../../models').FaxRoom;
-var FaxAccount = require('../../models').FaxAccount;
-
-exports.register = function(socket) {
-  FaxMessage.afterCreate(function(doc) {
-    FaxMessage
-      .findOne({
-        where: {
-          id: doc.id
-        },
-        include: [{
-          model: Contact,
-          as: 'From'
-        }, {
-          model: Contact,
-          as: 'To'
-        }, {
-          model: FaxRoom,
-          include: [{
-            model: FaxAccount
-          }]
-        }]
-      })
-      .then(function(faxMessage) {
-        onSave(socket, faxMessage);
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  });
-
-  FaxMessage.afterUpdate(function(doc) {
-    FaxMessage
-      .findOne({
-        where: {
-          id: doc.id
-        },
-        include: [{
-          model: Contact,
-          as: 'From'
-        }, {
-          model: Contact,
-          as: 'To'
-        }, {
-          model: FaxRoom,
-          include: [{
-            model: FaxAccount
-          }]
-        }]
-      })
-      .then(function(faxMessage) {
-        onSave(socket, faxMessage);
-        onUpdate(socket, faxMessage);
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  });
-
-  FaxMessage.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('fax_message:save', doc);
-  // socket.emit('fax_message:' + doc.directory + ':save', doc);
-}
-
-function onUpdate(socket, doc, cb) {
-  socket.emit('fax_message:update', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('fax_message:remove', doc);
-  // socket.emit('fax_message:' + doc.directory + ':remove', doc);
-}
+var _0x36a2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x46\x61\x78\x52\x6F\x6F\x6D","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x72\x65\x67\x69\x73\x74\x65\x72","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x69\x64","\x46\x72\x6F\x6D","\x54\x6F","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x75\x70\x64\x61\x74\x65","\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x36a2[0];var FaxMessage=require(_0x36a2[2])[_0x36a2[1]];var Contact=require(_0x36a2[2])[_0x36a2[3]];var FaxRoom=require(_0x36a2[2])[_0x36a2[4]];var FaxAccount=require(_0x36a2[2])[_0x36a2[5]];exports[_0x36a2[6]]=function(_0x1a35x5){FaxMessage[_0x36a2[14]](function(_0x1a35x6){FaxMessage[_0x36a2[13]]({where:{id:_0x1a35x6[_0x36a2[10]]},include:[{model:Contact,as:_0x36a2[11]},{model:Contact,as:_0x36a2[12]},{model:FaxRoom,include:[{model:FaxAccount}]}]})[_0x36a2[9]](function(_0x1a35x8){onSave(_0x1a35x5,_0x1a35x8)})[_0x36a2[8]](function(_0x1a35x7){console[_0x36a2[7]](_0x1a35x7)})});FaxMessage[_0x36a2[15]](function(_0x1a35x6){FaxMessage[_0x36a2[13]]({where:{id:_0x1a35x6[_0x36a2[10]]},include:[{model:Contact,as:_0x36a2[11]},{model:Contact,as:_0x36a2[12]},{model:FaxRoom,include:[{model:FaxAccount}]}]})[_0x36a2[9]](function(_0x1a35x8){onSave(_0x1a35x5,_0x1a35x8);onUpdate(_0x1a35x5,_0x1a35x8)})[_0x36a2[8]](function(_0x1a35x7){console[_0x36a2[7]](_0x1a35x7)})});FaxMessage[_0x36a2[16]](function(_0x1a35x6){onRemove(_0x1a35x5,_0x1a35x6)})};function onSave(_0x1a35x5,_0x1a35x6,_0x1a35xa){_0x1a35x5[_0x36a2[18]](_0x36a2[17],_0x1a35x6)}function onUpdate(_0x1a35x5,_0x1a35x6,_0x1a35xa){_0x1a35x5[_0x36a2[18]](_0x36a2[19],_0x1a35x6)}function onRemove(_0x1a35x5,_0x1a35x6,_0x1a35xa){_0x1a35x5[_0x36a2[18]](_0x36a2[20],_0x1a35x6)}
\ No newline at end of file
index d61f66e..fecc20a 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/fax/messages', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/fax/messages')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0xb8f4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74"];_0xb8f4[0];var should=require(_0xb8f4[1]);var app=require(_0xb8f4[2]);var request=require(_0xb8f4[3]);describe(_0xb8f4[4],function(){it(_0xb8f4[5],function(_0xdc3fx4){request(app)[_0xb8f4[13]](_0xb8f4[12])[_0xb8f4[11]](200)[_0xb8f4[11]](_0xb8f4[10],/json/)[_0xb8f4[9]](function(_0xdc3fx5,_0xdc3fx6){if(_0xdc3fx5){return _0xdc3fx4(_0xdc3fx5)};_0xdc3fx6[_0xb8f4[8]][_0xb8f4[1]][_0xb8f4[7]][_0xb8f4[6]](Array);_0xdc3fx4()})})})
\ No newline at end of file
index b237a79..a3686c1 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./fax_message.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id/content', controller.getContentFromMessage);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0x1e4e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x65\x6E\x74","\x67\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x46\x72\x6F\x6D\x4D\x65\x73\x73\x61\x67\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1e4e[0];var express=require(_0x1e4e[1]);var controller=require(_0x1e4e[2]);var router=express.Router();router[_0x1e4e[5]](_0x1e4e[3],controller[_0x1e4e[4]]);router[_0x1e4e[5]](_0x1e4e[6],controller[_0x1e4e[7]]);router[_0x1e4e[5]](_0x1e4e[8],controller[_0x1e4e[9]]);router[_0x1e4e[11]](_0x1e4e[3],controller[_0x1e4e[10]]);router[_0x1e4e[13]](_0x1e4e[8],controller[_0x1e4e[12]]);router[_0x1e4e[14]](_0x1e4e[8],controller[_0x1e4e[12]]);router[_0x1e4e[16]](_0x1e4e[8],controller[_0x1e4e[15]]);module[_0x1e4e[17]]=router
\ No newline at end of file
index 65cffaf..f8b1b9b 100644 (file)
@@ -1,185 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Util = require('../../config/util');
-
-var FaxQueue = require('../../models').FaxQueue;
-
-// Get list of fax_queues
-exports.index = function(req, res) {
-  return FaxQueue
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single fax_queue
-exports.show = function(req, res) {
-  FaxQueue
-    .findById(req.params.id)
-    .then(function(fax_queue) {
-      if (!fax_queue) {
-        return res.sendStatus(404);
-      }
-      return res.send(fax_queue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new fax_queue in the DB.
-exports.create = function(req, res) {
-  FaxQueue
-    .create(req.body)
-    .then(function(fax_queue) {
-      return res.status(201).send(fax_queue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing fax_queue in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  FaxQueue
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(fax_queue) {
-      if (!fax_queue) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(fax_queue, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(fax_queue);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a fax_queue from the DB.
-exports.destroy = function(req, res) {
-  FaxQueue
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(fax_queue) {
-      if (!fax_queue) {
-        return res.sendStatus(404);
-      }
-      fax_queue.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.addAgents = function(req, res, next) {
-
-  return FaxQueue
-    .findById(req.params.id)
-    .then(function(faxQueue) {
-      if (!faxQueue) {
-        return res.sendStatus(404);
-      }
-      return faxQueue
-        .addUsers(req.body.agents, {
-          penalty: req.body.penalty,
-          queue: faxQueue.name
-        }, {
-          individualHooks: true
-        });
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.showAgents = function(req, res) {
-  return FaxQueue
-    .findById(req.params.id)
-    .then(function(queue) {
-      if (!queue) {
-        return res.sendStatus(404);
-      }
-      return queue
-        .getUsers({
-          where: {
-            role: 'agent'
-          },
-          attributes: ['id', 'name', 'fullname', 'email']
-        });
-    })
-    .then(function(agents) {
-      return res.status(200).send(agents);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.removeAgents = function(req, res, next) {
-  return FaxQueue
-    .findById(req.params.id)
-    .then(function(queue) {
-      if (!queue) {
-        return res.sendStatus(404);
-      }
-      return queue
-        .removeUser(req.query.agents);
-    })
-    .then(function() {
-      return res.sendStatus(202);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-// Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
-  FaxQueue
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x4e3e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x6E\x61\x6D\x65","\x61\x64\x64\x55\x73\x65\x72\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0x4e3e[0];var _=require(_0x4e3e[1]);var Util=require(_0x4e3e[2]);var FaxQueue=require(_0x4e3e[4])[_0x4e3e[3]];exports[_0x4e3e[5]]=function(_0xf3dfx4,_0xf3dfx5){return FaxQueue[_0x4e3e[12]](Util[_0x4e3e[11]](_0xf3dfx4[_0x4e3e[10]]))[_0x4e3e[9]](function(_0xf3dfx7){_0xf3dfx5[_0x4e3e[8]](200)[_0x4e3e[7]](_0xf3dfx7)})[_0x4e3e[6]](function(_0xf3dfx6){return handleError(_0xf3dfx5,_0xf3dfx6)})};exports[_0x4e3e[13]]=function(_0xf3dfx4,_0xf3dfx5){FaxQueue[_0x4e3e[17]](_0xf3dfx4[_0x4e3e[16]][_0x4e3e[15]])[_0x4e3e[9]](function(_0xf3dfx8){if(!_0xf3dfx8){return _0xf3dfx5[_0x4e3e[14]](404)};return _0xf3dfx5[_0x4e3e[7]](_0xf3dfx8)})[_0x4e3e[6]](function(_0xf3dfx6){return handleError(_0xf3dfx5,_0xf3dfx6)})};exports[_0x4e3e[18]]=function(_0xf3dfx4,_0xf3dfx5){FaxQueue[_0x4e3e[18]](_0xf3dfx4[_0x4e3e[19]])[_0x4e3e[9]](function(_0xf3dfx8){return _0xf3dfx5[_0x4e3e[8]](201)[_0x4e3e[7]](_0xf3dfx8)})[_0x4e3e[6]](function(_0xf3dfx6){return handleError(_0xf3dfx5,_0xf3dfx6)})};exports[_0x4e3e[20]]=function(_0xf3dfx4,_0xf3dfx5){if(_0xf3dfx4[_0x4e3e[19]][_0x4e3e[15]]){delete _0xf3dfx4[_0x4e3e[19]][_0x4e3e[15]]};FaxQueue[_0x4e3e[23]]({where:{id:_0xf3dfx4[_0x4e3e[16]][_0x4e3e[15]]}})[_0x4e3e[9]](function(_0xf3dfx8){if(!_0xf3dfx8){return _0xf3dfx5[_0x4e3e[14]](404)};var _0xf3dfx9=_[_0x4e3e[21]](_0xf3dfx8,_0xf3dfx4[_0x4e3e[19]]);_0xf3dfx9[_0x4e3e[22]]()[_0x4e3e[9]](function(){return _0xf3dfx5[_0x4e3e[8]](200)[_0x4e3e[7]](_0xf3dfx8)})[_0x4e3e[6]](function(_0xf3dfx6){return handleError(_0xf3dfx5,_0xf3dfx6)})})[_0x4e3e[6]](function(_0xf3dfx6){return handleError(_0xf3dfx5,_0xf3dfx6)})};exports[_0x4e3e[24]]=function(_0xf3dfx4,_0xf3dfx5){FaxQueue[_0x4e3e[23]]({where:{id:_0xf3dfx4[_0x4e3e[16]][_0x4e3e[15]]}})[_0x4e3e[9]](function(_0xf3dfx8){if(!_0xf3dfx8){return _0xf3dfx5[_0x4e3e[14]](404)};_0xf3dfx8[_0x4e3e[24]]()[_0x4e3e[9]](function(){return _0xf3dfx5[_0x4e3e[14]](204)})[_0x4e3e[6]](function(_0xf3dfx6){return handleError(_0xf3dfx5,_0xf3dfx6)})})[_0x4e3e[6]](function(_0xf3dfx6){return handleError(_0xf3dfx5,_0xf3dfx6)})};exports[_0x4e3e[25]]=function(_0xf3dfx4,_0xf3dfx5,_0xf3dfxa){return FaxQueue[_0x4e3e[17]](_0xf3dfx4[_0x4e3e[16]][_0x4e3e[15]])[_0x4e3e[9]](function(_0xf3dfxb){if(!_0xf3dfxb){return _0xf3dfx5[_0x4e3e[14]](404)};return _0xf3dfxb[_0x4e3e[29]](_0xf3dfx4[_0x4e3e[19]][_0x4e3e[26]],{penalty:_0xf3dfx4[_0x4e3e[19]][_0x4e3e[27]],queue:_0xf3dfxb[_0x4e3e[28]]},{individualHooks:true})})[_0x4e3e[9]](function(){return _0xf3dfx5[_0x4e3e[14]](200)})[_0x4e3e[6]](function(_0xf3dfx6){return handleError(_0xf3dfx5,_0xf3dfx6)})};exports[_0x4e3e[30]]=function(_0xf3dfx4,_0xf3dfx5){return FaxQueue[_0x4e3e[17]](_0xf3dfx4[_0x4e3e[16]][_0x4e3e[15]])[_0x4e3e[9]](function(_0xf3dfxd){if(!_0xf3dfxd){return _0xf3dfx5[_0x4e3e[14]](404)};return _0xf3dfxd[_0x4e3e[34]]({where:{role:_0x4e3e[31]},attributes:[_0x4e3e[15],_0x4e3e[28],_0x4e3e[32],_0x4e3e[33]]})})[_0x4e3e[9]](function(_0xf3dfxc){return _0xf3dfx5[_0x4e3e[8]](200)[_0x4e3e[7]](_0xf3dfxc)})[_0x4e3e[6]](function(_0xf3dfx6){return handleError(_0xf3dfx5,_0xf3dfx6)})};exports[_0x4e3e[35]]=function(_0xf3dfx4,_0xf3dfx5,_0xf3dfxa){return FaxQueue[_0x4e3e[17]](_0xf3dfx4[_0x4e3e[16]][_0x4e3e[15]])[_0x4e3e[9]](function(_0xf3dfxd){if(!_0xf3dfxd){return _0xf3dfx5[_0x4e3e[14]](404)};return _0xf3dfxd[_0x4e3e[36]](_0xf3dfx4[_0x4e3e[10]][_0x4e3e[26]])})[_0x4e3e[9]](function(){return _0xf3dfx5[_0x4e3e[14]](202)})[_0x4e3e[6]](function(_0xf3dfx6){return _0xf3dfxa(_0xf3dfx6)})};exports[_0x4e3e[37]]=function(_0xf3dfx4,_0xf3dfx5){FaxQueue[_0x4e3e[24]]({where:{id:_0xf3dfx4[_0x4e3e[10]][_0x4e3e[38]]},individualHooks:true})[_0x4e3e[9]](function(){return _0xf3dfx5[_0x4e3e[14]](204)})[_0x4e3e[6]](function(_0xf3dfx6){return handleError(_0xf3dfx5,_0xf3dfx6)})};function handleError(_0xf3dfx5,_0xf3dfx6){return _0xf3dfx5[_0x4e3e[8]](500)[_0x4e3e[7]](_0xf3dfx6)}
\ No newline at end of file
index 243ed07..b96e254 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var fax_queue = require('../../models').FaxQueue;
-
-exports.register = function(socket) {
-  fax_queue.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  fax_queue.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('fax_queue:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('fax_queue:remove', doc);
-}
+var _0xc000=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xc000[0];var fax_queue=require(_0xc000[2])[_0xc000[1]];exports[_0xc000[3]]=function(_0x1bb1x2){fax_queue[_0xc000[4]](function(_0x1bb1x3){onSave(_0x1bb1x2,_0x1bb1x3)});fax_queue[_0xc000[5]](function(_0x1bb1x3){onRemove(_0x1bb1x2,_0x1bb1x3)})};function onSave(_0x1bb1x2,_0x1bb1x3,_0x1bb1x5){_0x1bb1x2[_0xc000[7]](_0xc000[6],_0x1bb1x3)}function onRemove(_0x1bb1x2,_0x1bb1x3,_0x1bb1x5){_0x1bb1x2[_0xc000[7]](_0xc000[8],_0x1bb1x3)}
\ No newline at end of file
index 9148967..890c049 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/fax/queues', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/fax/queues')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0xf738=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x71\x75\x65\x75\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x71\x75\x65\x75\x65\x73","\x67\x65\x74"];_0xf738[0];var should=require(_0xf738[1]);var app=require(_0xf738[2]);var request=require(_0xf738[3]);describe(_0xf738[4],function(){it(_0xf738[5],function(_0x4c9bx4){request(app)[_0xf738[13]](_0xf738[12])[_0xf738[11]](200)[_0xf738[11]](_0xf738[10],/json/)[_0xf738[9]](function(_0x4c9bx5,_0x4c9bx6){if(_0x4c9bx5){return _0x4c9bx4(_0x4c9bx5)};_0x4c9bx6[_0xf738[8]][_0xf738[1]][_0xf738[7]][_0xf738[6]](Array);_0x4c9bx4()})})})
\ No newline at end of file
index 9f1fac3..ffdcad1 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./fax_queue.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/agents', auth.isAuthenticated(), controller.showAgents);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/:id/agents', auth.isAuthenticated(), controller.addAgents);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-router.delete('/:id/agents', auth.isAuthenticated(), controller.removeAgents);
-
-module.exports = router;
+var _0xcf50=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x67\x65\x6E\x74\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xcf50[0];var express=require(_0xcf50[1]);var controller=require(_0xcf50[2]);var auth=require(_0xcf50[3]);var router=express.Router();router[_0xcf50[7]](_0xcf50[4],auth[_0xcf50[5]](),controller[_0xcf50[6]]);router[_0xcf50[7]](_0xcf50[8],auth[_0xcf50[5]](),controller[_0xcf50[9]]);router[_0xcf50[7]](_0xcf50[10],auth[_0xcf50[5]](),controller[_0xcf50[11]]);router[_0xcf50[13]](_0xcf50[4],auth[_0xcf50[5]](),controller[_0xcf50[12]]);router[_0xcf50[13]](_0xcf50[10],auth[_0xcf50[5]](),controller[_0xcf50[14]]);router[_0xcf50[16]](_0xcf50[8],auth[_0xcf50[5]](),controller[_0xcf50[15]]);router[_0xcf50[17]](_0xcf50[8],auth[_0xcf50[5]](),controller[_0xcf50[15]]);router[_0xcf50[19]](_0xcf50[4],auth[_0xcf50[5]](),controller[_0xcf50[18]]);router[_0xcf50[19]](_0xcf50[8],auth[_0xcf50[5]](),controller[_0xcf50[20]]);router[_0xcf50[19]](_0xcf50[10],auth[_0xcf50[5]](),controller[_0xcf50[21]]);module[_0xcf50[22]]=router
\ No newline at end of file
index a139fd5..573b581 100644 (file)
@@ -1,151 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var FaxRoom = require('../../models').FaxRoom;
-var FaxAccount = require('../../models').FaxAccount;
-var FaxMessage = require('../../models').FaxMessage;
-var Contact = require('../../models').Contact;
-var User = require('../../models').User;
-
-// Get list of fax_rooms
-exports.index = function(req, res) {
-  FaxRoom
-    .findAll({
-      include: [{
-        model: FaxMessage,
-        attributes: ['id']
-      }, {
-        model: FaxAccount
-      }, {
-        model: User
-      }]
-    })
-    .then(function(fax_rooms) {
-      return res.status(200).send(fax_rooms);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get list of agent mailRooms
-exports.agentIndex = function(req, res, next) {
-  FaxRoom
-    .findAll({
-      where: {
-        UserId: req.params.id
-      },
-      include: [{
-        model: FaxAccount
-      }, {
-        model: User
-      }]
-    })
-    .then(function(faxRooms) {
-      return res.status(200).send(faxRooms);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-// Get a single fax_room
-exports.show = function(req, res) {
-  FaxRoom
-    .findOne({
-      where: {
-        id: req.params.id
-      },
-      include: [{
-        model: FaxMessage,
-        include: [{
-          model: FaxRoom,
-          include: [{
-            model: FaxAccount
-          }]
-        }, {
-          model: Contact,
-          as: 'From'
-        }, {
-          model: Contact,
-          as: 'To'
-        }]
-      }, {
-        model: FaxAccount
-      }],
-      order: [
-        [FaxMessage, 'createdAt', 'DESC']
-      ]
-    })
-    .then(function(fax_room) {
-      if (!fax_room) {
-        return res.sendStatus(404);
-      }
-      return res.send(fax_room);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new fax_room in the DB.
-exports.create = function(req, res) {
-  FaxRoom
-    .create(req.body)
-    .then(function(fax_room) {
-      return res.status(201).send(fax_room);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing fax_room in the DB.
-exports.update = function(req, res) {
-  // if (req.body.id) {
-  //   delete req.body.id;
-  // }
-  FaxRoom
-    .findById(req.params.id)
-    .then(function(fax_room) {
-      if (!fax_room) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(fax_room, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(fax_room);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a fax_room from the DB.
-exports.destroy = function(req, res) {
-  FaxRoom
-    .findById(req.params.id)
-    .then(function(fax_room) {
-      if (!fax_room) {
-        return res.sendStatus(404);
-      }
-      fax_room.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x5d33=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x46\x61\x78\x52\x6F\x6F\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x43\x6F\x6E\x74\x61\x63\x74","\x55\x73\x65\x72","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x41\x6C\x6C","\x61\x67\x65\x6E\x74\x49\x6E\x64\x65\x78","\x70\x61\x72\x61\x6D\x73","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x46\x72\x6F\x6D","\x54\x6F","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x44\x45\x53\x43","\x66\x69\x6E\x64\x4F\x6E\x65","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0x5d33[0];var _=require(_0x5d33[1]);var FaxRoom=require(_0x5d33[3])[_0x5d33[2]];var FaxAccount=require(_0x5d33[3])[_0x5d33[4]];var FaxMessage=require(_0x5d33[3])[_0x5d33[5]];var Contact=require(_0x5d33[3])[_0x5d33[6]];var User=require(_0x5d33[3])[_0x5d33[7]];exports[_0x5d33[8]]=function(_0x92dex7,_0x92dex8){FaxRoom[_0x5d33[14]]({include:[{model:FaxMessage,attributes:[_0x5d33[13]]},{model:FaxAccount},{model:User}]})[_0x5d33[12]](function(_0x92dexa){return _0x92dex8[_0x5d33[11]](200)[_0x5d33[10]](_0x92dexa)})[_0x5d33[9]](function(_0x92dex9){return handleError(_0x92dex8,_0x92dex9)})};exports[_0x5d33[15]]=function(_0x92dex7,_0x92dex8,_0x92dexb){FaxRoom[_0x5d33[14]]({where:{UserId:_0x92dex7[_0x5d33[16]][_0x5d33[13]]},include:[{model:FaxAccount},{model:User}]})[_0x5d33[12]](function(_0x92dexc){return _0x92dex8[_0x5d33[11]](200)[_0x5d33[10]](_0x92dexc)})[_0x5d33[9]](function(_0x92dex9){return _0x92dexb(_0x92dex9)})};exports[_0x5d33[17]]=function(_0x92dex7,_0x92dex8){FaxRoom[_0x5d33[23]]({where:{id:_0x92dex7[_0x5d33[16]][_0x5d33[13]]},include:[{model:FaxMessage,include:[{model:FaxRoom,include:[{model:FaxAccount}]},{model:Contact,as:_0x5d33[19]},{model:Contact,as:_0x5d33[20]}]},{model:FaxAccount}],order:[[FaxMessage,_0x5d33[21],_0x5d33[22]]]})[_0x5d33[12]](function(_0x92dexd){if(!_0x92dexd){return _0x92dex8[_0x5d33[18]](404)};return _0x92dex8[_0x5d33[10]](_0x92dexd)})[_0x5d33[9]](function(_0x92dex9){return handleError(_0x92dex8,_0x92dex9)})};exports[_0x5d33[24]]=function(_0x92dex7,_0x92dex8){FaxRoom[_0x5d33[24]](_0x92dex7[_0x5d33[25]])[_0x5d33[12]](function(_0x92dexd){return _0x92dex8[_0x5d33[11]](201)[_0x5d33[10]](_0x92dexd)})[_0x5d33[9]](function(_0x92dex9){return handleError(_0x92dex8,_0x92dex9)})};exports[_0x5d33[26]]=function(_0x92dex7,_0x92dex8){FaxRoom[_0x5d33[29]](_0x92dex7[_0x5d33[16]][_0x5d33[13]])[_0x5d33[12]](function(_0x92dexd){if(!_0x92dexd){return _0x92dex8[_0x5d33[18]](404)};var _0x92dexe=_[_0x5d33[27]](_0x92dexd,_0x92dex7[_0x5d33[25]]);_0x92dexe[_0x5d33[28]]()[_0x5d33[12]](function(){return _0x92dex8[_0x5d33[11]](200)[_0x5d33[10]](_0x92dexd)})[_0x5d33[9]](function(_0x92dex9){return handleError(_0x92dex8,_0x92dex9)})})[_0x5d33[9]](function(_0x92dex9){return handleError(_0x92dex8,_0x92dex9)})};exports[_0x5d33[30]]=function(_0x92dex7,_0x92dex8){FaxRoom[_0x5d33[29]](_0x92dex7[_0x5d33[16]][_0x5d33[13]])[_0x5d33[12]](function(_0x92dexd){if(!_0x92dexd){return _0x92dex8[_0x5d33[18]](404)};_0x92dexd[_0x5d33[30]]()[_0x5d33[12]](function(){return _0x92dex8[_0x5d33[18]](204)})[_0x5d33[9]](function(_0x92dex9){return handleError(_0x92dex8,_0x92dex9)})})[_0x5d33[9]](function(_0x92dex9){return handleError(_0x92dex8,_0x92dex9)})};function handleError(_0x92dex8,_0x92dex9){return _0x92dex8[_0x5d33[11]](500)[_0x5d33[10]](_0x92dex9)}
\ No newline at end of file
index ba9c227..ca20382 100644 (file)
@@ -1,64 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var User = require('../../models').User;
-var FaxRoom = require('../../models').FaxRoom;
-var FaxQueue = require('../../models').FaxQueue;
-var FaxAccount = require('../../models').FaxAccount;
-var FaxApplication = require('../../models').FaxApplication;
-
-exports.register = function(queue) {
-  FaxRoom.afterCreate(function(doc) {
-    onSave(queue, doc);
-  });
-}
-
-function onSave(queue, doc, cb) {
-  if (doc.status === 'NEW') {
-    FaxAccount
-      .findById(doc.FaxAccountId)
-      .then(function(faxAccount) {
-        faxAccount
-          .getFaxApplications({
-            include: [{
-              model: User,
-              attributes: ['id']
-            }, {
-              model: FaxQueue,
-              attributes: ['id', 'strategy', 'timeout'],
-              include: {
-                model: User,
-                attributes: ['id']
-              }
-            }],
-            order: [
-              ['priority']
-            ]
-          })
-          .then(function(faxApplications) {
-
-            var data = {
-              roomId: doc.id,
-              accountId: doc.FaxAccountId,
-              channel: 'FAX',
-              msg: {
-                from: doc.from
-              },
-              applications: faxApplications
-            };
-
-            // Create queue process
-            queue.create('fax', data).save();
-          })
-          .catch(function(err) {
-            console.error(err);
-          });
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
+var _0x2e4e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x52\x6F\x6F\x6D","\x46\x61\x78\x51\x75\x65\x75\x65","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x4E\x45\x57","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x64","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x46\x41\x58","\x66\x72\x6F\x6D","\x73\x61\x76\x65","\x66\x61\x78","\x63\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x73\x74\x72\x61\x74\x65\x67\x79","\x74\x69\x6D\x65\x6F\x75\x74","\x70\x72\x69\x6F\x72\x69\x74\x79","\x67\x65\x74\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x42\x79\x49\x64"];_0x2e4e[0];var User=require(_0x2e4e[2])[_0x2e4e[1]];var FaxRoom=require(_0x2e4e[2])[_0x2e4e[3]];var FaxQueue=require(_0x2e4e[2])[_0x2e4e[4]];var FaxAccount=require(_0x2e4e[2])[_0x2e4e[5]];var FaxApplication=require(_0x2e4e[2])[_0x2e4e[6]];exports[_0x2e4e[7]]=function(_0xc117x6){FaxRoom[_0x2e4e[8]](function(_0xc117x7){onSave(_0xc117x6,_0xc117x7)})};function onSave(_0xc117x6,_0xc117x7,_0xc117x9){if(_0xc117x7[_0x2e4e[9]]===_0x2e4e[10]){FaxAccount[_0x2e4e[25]](_0xc117x7.FaxAccountId)[_0x2e4e[20]](function(_0xc117xb){_0xc117xb[_0x2e4e[24]]({include:[{model:User,attributes:[_0x2e4e[13]]},{model:FaxQueue,attributes:[_0x2e4e[13],_0x2e4e[21],_0x2e4e[22]],include:{model:User,attributes:[_0x2e4e[13]]}}],order:[[_0x2e4e[23]]]})[_0x2e4e[20]](function(_0xc117xc){var _0xc117xd={roomId:_0xc117x7[_0x2e4e[13]],accountId:_0xc117x7[_0x2e4e[14]],channel:_0x2e4e[15],msg:{from:_0xc117x7[_0x2e4e[16]]},applications:_0xc117xc};_0xc117x6[_0x2e4e[19]](_0x2e4e[18],_0xc117xd)[_0x2e4e[17]]()})[_0x2e4e[12]](function(_0xc117xa){console[_0x2e4e[11]](_0xc117xa)})})[_0x2e4e[12]](function(_0xc117xa){console[_0x2e4e[11]](_0xc117xa)})}}
\ No newline at end of file
index 92f71b0..8e5c18e 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var fax_room = require('../../models').FaxRoom;
-
-exports.register = function(socket) {
-  fax_room.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  fax_room.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('fax_room:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('fax_room:remove', doc);
-}
+var _0x6595=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x61\x78\x52\x6F\x6F\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x3A\x72\x65\x6D\x6F\x76\x65"];_0x6595[0];var fax_room=require(_0x6595[2])[_0x6595[1]];exports[_0x6595[3]]=function(_0xb29fx2){fax_room[_0x6595[4]](function(_0xb29fx3){onSave(_0xb29fx2,_0xb29fx3)});fax_room[_0x6595[5]](function(_0xb29fx3){onRemove(_0xb29fx2,_0xb29fx3)})};function onSave(_0xb29fx2,_0xb29fx3,_0xb29fx5){_0xb29fx2[_0x6595[7]](_0x6595[6],_0xb29fx3)}function onRemove(_0xb29fx2,_0xb29fx3,_0xb29fx5){_0xb29fx2[_0x6595[7]](_0x6595[8],_0xb29fx3)}
\ No newline at end of file
index 1a5ae47..0a45a19 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/fax/rooms', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/fax/rooms')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0xc178=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x72\x6F\x6F\x6D\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x72\x6F\x6F\x6D\x73","\x67\x65\x74"];_0xc178[0];var should=require(_0xc178[1]);var app=require(_0xc178[2]);var request=require(_0xc178[3]);describe(_0xc178[4],function(){it(_0xc178[5],function(_0x7836x4){request(app)[_0xc178[13]](_0xc178[12])[_0xc178[11]](200)[_0xc178[11]](_0xc178[10],/json/)[_0xc178[9]](function(_0x7836x5,_0x7836x6){if(_0x7836x5){return _0x7836x4(_0x7836x5)};_0x7836x6[_0xc178[8]][_0xc178[1]][_0xc178[7]][_0xc178[6]](Array);_0x7836x4()})})})
\ No newline at end of file
index 73e938a..bbadbc7 100644 (file)
@@ -1,17 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./fax_room.controller');
-var license = require('../../config/license/license.service');
-
-var router = express.Router();
-
-router.get('/', license.isValidDate(), license.hasFax(), controller.index);
-router.get('/agent/:id', controller.agentIndex);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0xadd7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x68\x61\x73\x46\x61\x78","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x61\x67\x65\x6E\x74\x2F\x3A\x69\x64","\x61\x67\x65\x6E\x74\x49\x6E\x64\x65\x78","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xadd7[0];var express=require(_0xadd7[1]);var controller=require(_0xadd7[2]);var license=require(_0xadd7[3]);var router=express.Router();router[_0xadd7[8]](_0xadd7[4],license[_0xadd7[5]](),license[_0xadd7[6]](),controller[_0xadd7[7]]);router[_0xadd7[8]](_0xadd7[9],controller[_0xadd7[10]]);router[_0xadd7[8]](_0xadd7[11],controller[_0xadd7[12]]);router[_0xadd7[14]](_0xadd7[4],controller[_0xadd7[13]]);router[_0xadd7[16]](_0xadd7[11],controller[_0xadd7[15]]);router[_0xadd7[17]](_0xadd7[11],controller[_0xadd7[15]]);router[_0xadd7[19]](_0xadd7[11],controller[_0xadd7[18]]);module[_0xadd7[20]]=router
\ No newline at end of file
index ae9ab8a..a0061e2 100644 (file)
@@ -1,239 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/freshdesk/accounts              ->  index
- * POST    /api/freshdesk/accounts              ->  create
- * GET     /api/freshdesk/accounts/:id          ->  show
- * PUT     /api/freshdesk/accounts/:id          ->  update
- * DELETE  /api/freshdesk/accounts/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-var util = require('util');
-var _fd = require('freshdesk');
-
-var FreshdeskAccount = require('../../models').FreshdeskAccount;
-
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of FreshdeskAccounts
-exports.index = function(req, res) {
-  var attributes = ['description', 'name', 'username', 'remoteUri'];
-  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
-  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
-
-  var query = {
-    where: {},
-    limit: per_page,
-    offset: page * per_page
-  };
-
-  _.forIn(req.query, function(value, key) {
-    switch (key) {
-      case 'per_page':
-      case 'page':
-        break;
-      case 'sort_by':
-        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
-        break;
-      case 'sort_order':
-        break;
-      case '$':
-        query.where.$or = [];
-        attributes.forEach(function(attribute) {
-          var tmp = {};
-          tmp[attribute] = {
-            $like: '%' + value + '%'
-          };
-
-          query.where.$or.push(tmp);
-        });
-        break;
-      default:
-        query.where[key] = {
-          $like: {}
-        };
-        query.where[key].$like = '%' + value + '%';
-    }
-  });
-
-  FreshdeskAccount
-    .findAndCountAll(query)
-    .then(function(result) {
-
-      var total_pages = Math.ceil(result.count / per_page);
-      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
-      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
-
-      return res.status(200).send({
-        count: result.count,
-        rows: result.rows,
-        next_page: next_page,
-        previous_page: previous_page,
-        total_pages: total_pages
-      });
-
-    })
-    .catch(function(err) {
-      return res.status(500).send({
-        error: 'Something blew up!'
-      });
-    });
-}
-
-// Gets a single FreshdeskAccount from the DB
-exports.show = function(req, res) {
-  FreshdeskAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new FreshdeskAccount in the DB
-exports.create = function(req, res) {
-  FreshdeskAccount.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing FreshdeskAccount in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  FreshdeskAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a FreshdeskAccount from the DB
-exports.destroy = function(req, res) {
-  FreshdeskAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
-
-exports.bulkDestroy = function(req, res) {
-  FreshdeskAccount
-    .destroy({
-      where: {
-        id: req.query.id
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.checkAccount = function(req, res) {
-  FreshdeskAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(function(account) {
-      var freshdesk = new _fd(account.remoteUri, account.apiKey);
-      freshdesk.listTickets(function(err, response, body) {
-        if (err) {
-          return res.sendStatus(400);
-        }
-        body = JSON.parse(body);
-        if (body.require_login) {
-          return res.sendStatus(400);
-        }
-        return res.sendStatus(200);
-      })
-    })
-    .catch(handleError(res));
-}
-
-exports.accountValidation = function(req, res) {
-  var where = {};
-  where[req.params.field] = req.body.value;
-  FreshdeskAccount
-    .findAndCountAll({
-      where: where
-    })
-    .then(function(result) {
-      if (result.count) {
-        return res.status(200).send({
-          isValid: false,
-          value: req.body.value
-        });
-      }
-      return res.status(200).send({
-        isValid: true,
-        value: req.body.value
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.getFields = function(req, res, next) {
-  FreshdeskAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(function(account) {
-      var Freshdesk = new _fd(account.remoteUri, account.apiKey);
-      Freshdesk.get('/ticket_fields.json', function(err, response, body) {
-        if (err) {
-          return next(err);
-        }
-        body = JSON.parse(body);
-        return res.status(200).send(body);
-      });
-    })
-    .catch(handleError(res));
-};
+var _0x7578=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x61\x70\x69\x4B\x65\x79","\x70\x61\x72\x73\x65","\x72\x65\x71\x75\x69\x72\x65\x5F\x6C\x6F\x67\x69\x6E","\x6C\x69\x73\x74\x54\x69\x63\x6B\x65\x74\x73","\x61\x63\x63\x6F\x75\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x74\x69\x63\x6B\x65\x74\x5F\x66\x69\x65\x6C\x64\x73\x2E\x6A\x73\x6F\x6E","\x67\x65\x74"];_0x7578[0];var _=require(_0x7578[1]);var util=require(_0x7578[2]);var _fd=require(_0x7578[3]);var FreshdeskAccount=require(_0x7578[5])[_0x7578[4]];function handleError(_0x2f01x6,_0x2f01x7){_0x2f01x7=_0x2f01x7||500;return function(_0x2f01x8){_0x2f01x6[_0x7578[7]](_0x2f01x7)[_0x7578[6]](_0x2f01x8)}}function responseWithResult(_0x2f01x6,_0x2f01x7){_0x2f01x7=_0x2f01x7||200;return function(_0x2f01xa){if(_0x2f01xa){_0x2f01x6[_0x7578[7]](_0x2f01x7)[_0x7578[8]](_0x2f01xa)}}}function handleEntityNotFound(_0x2f01x6){return function(_0x2f01xa){if(!_0x2f01xa){_0x2f01x6[_0x7578[7]](404)[_0x7578[9]]();return null};return _0x2f01xa}}function saveUpdates(_0x2f01xd){return function(_0x2f01xa){return _0x2f01xa[_0x7578[11]](_0x2f01xd)[_0x7578[10]](function(_0x2f01xe){return _0x2f01xe})}}function removeEntity(_0x2f01x6){return function(_0x2f01xa){if(_0x2f01xa){return _0x2f01xa[_0x7578[12]]()[_0x7578[10]](function(){_0x2f01x6[_0x7578[7]](204)[_0x7578[9]]()})}}}exports[_0x7578[13]]=function(_0x2f01x10,_0x2f01x6){var _0x2f01x11=[_0x7578[14],_0x7578[15],_0x7578[16],_0x7578[17]];var _0x2f01x12=_0x2f01x10[_0x7578[19]][_0x7578[18]]?parseInt(_0x2f01x10[_0x7578[19]][_0x7578[18]],10):100;var _0x2f01x13=_0x2f01x10[_0x7578[19]][_0x7578[20]]?parseInt(_0x2f01x10[_0x7578[19]][_0x7578[20]],10):0;var _0x2f01x14={where:{},limit:_0x2f01x12,offset:_0x2f01x13*_0x2f01x12};_[_0x7578[34]](_0x2f01x10[_0x7578[19]],function(_0x2f01x15,_0x2f01x16){switch(_0x2f01x16){case _0x7578[18]:;case _0x7578[20]:break;case _0x7578[23]:_0x2f01x14[_0x7578[21]]=util[_0x7578[26]](_0x7578[22],_0x2f01x10[_0x7578[19]][_0x7578[23]],_0x2f01x10[_0x7578[19]][_0x7578[24]]||_0x7578[25])||null;break;case _0x7578[24]:break;case _0x7578[32]:_0x2f01x14[_0x7578[28]][_0x7578[27]]=[];_0x2f01x11[_0x7578[31]](function(_0x2f01x17){var _0x2f01x18={};_0x2f01x18[_0x2f01x17]={$like:_0x7578[29]+_0x2f01x15+_0x7578[29]};_0x2f01x14[_0x7578[28]][_0x7578[27]][_0x7578[30]](_0x2f01x18)});break;default:_0x2f01x14[_0x7578[28]][_0x2f01x16]={$like:{}};_0x2f01x14[_0x7578[28]][_0x2f01x16][_0x7578[33]]=_0x7578[29]+_0x2f01x15+_0x7578[29]}});FreshdeskAccount[_0x7578[46]](_0x2f01x14)[_0x7578[10]](function(_0x2f01x19){var _0x2f01x1a=Math[_0x7578[38]](_0x2f01x19[_0x7578[37]]/_0x2f01x12);var _0x2f01x1b=_0x2f01x1a>(_0x2f01x14[_0x7578[39]]+1)?util[_0x7578[26]](_0x7578[40],_0x2f01x10[_0x7578[41]],_0x2f01x10[_0x7578[43]][_0x7578[42]],_0x2f01x10[_0x7578[44]],_0x2f01x13+1):null;var _0x2f01x1c=_0x2f01x13>0?util[_0x7578[26]](_0x7578[40],_0x2f01x10[_0x7578[41]],_0x2f01x10[_0x7578[43]][_0x7578[42]],_0x2f01x10[_0x7578[44]],_0x2f01x13-1):null;return _0x2f01x6[_0x7578[7]](200)[_0x7578[6]]({count:_0x2f01x19[_0x7578[37]],rows:_0x2f01x19[_0x7578[45]],next_page:_0x2f01x1b,previous_page:_0x2f01x1c,total_pages:_0x2f01x1a})})[_0x7578[36]](function(_0x2f01x8){return _0x2f01x6[_0x7578[7]](500)[_0x7578[6]]({error:_0x7578[35]})})};exports[_0x7578[47]]=function(_0x2f01x10,_0x2f01x6){FreshdeskAccount[_0x7578[50]](_0x2f01x10[_0x7578[49]][_0x7578[48]])[_0x7578[10]](handleEntityNotFound(_0x2f01x6))[_0x7578[10]](responseWithResult(_0x2f01x6))[_0x7578[36]](handleError(_0x2f01x6))};exports[_0x7578[51]]=function(_0x2f01x10,_0x2f01x6){FreshdeskAccount[_0x7578[51]](_0x2f01x10[_0x7578[52]])[_0x7578[10]](responseWithResult(_0x2f01x6,201))[_0x7578[36]](handleError(_0x2f01x6))};exports[_0x7578[53]]=function(_0x2f01x10,_0x2f01x6){if(_0x2f01x10[_0x7578[52]][_0x7578[48]]){delete _0x2f01x10[_0x7578[52]][_0x7578[48]]};FreshdeskAccount[_0x7578[50]](_0x2f01x10[_0x7578[49]][_0x7578[48]])[_0x7578[10]](handleEntityNotFound(_0x2f01x6))[_0x7578[10]](saveUpdates(_0x2f01x10[_0x7578[52]]))[_0x7578[10]](responseWithResult(_0x2f01x6))[_0x7578[36]](handleError(_0x2f01x6))};exports[_0x7578[12]]=function(_0x2f01x10,_0x2f01x6){FreshdeskAccount[_0x7578[50]](_0x2f01x10[_0x7578[49]][_0x7578[48]])[_0x7578[10]](handleEntityNotFound(_0x2f01x6))[_0x7578[10]](removeEntity(_0x2f01x6))[_0x7578[36]](handleError(_0x2f01x6))};exports[_0x7578[54]]=function(_0x2f01x10,_0x2f01x6){FreshdeskAccount[_0x7578[12]]({where:{id:_0x2f01x10[_0x7578[19]][_0x7578[48]]},individualHooks:true})[_0x7578[10]](function(){return _0x2f01x6[_0x7578[55]](204)})[_0x7578[36]](function(_0x2f01x8){return handleError(_0x2f01x6,_0x2f01x8)})};exports[_0x7578[56]]=function(_0x2f01x10,_0x2f01x6){FreshdeskAccount[_0x7578[50]](_0x2f01x10[_0x7578[49]][_0x7578[48]])[_0x7578[10]](handleEntityNotFound(_0x2f01x6))[_0x7578[10]](function(_0x2f01x1d){var _0x2f01x1e= new _fd(_0x2f01x1d[_0x7578[17]],_0x2f01x1d[_0x7578[57]]);_0x2f01x1e[_0x7578[60]](function(_0x2f01x8,_0x2f01x1f,_0x2f01x20){if(_0x2f01x8){return _0x2f01x6[_0x7578[55]](400)};_0x2f01x20=JSON[_0x7578[58]](_0x2f01x20);if(_0x2f01x20[_0x7578[59]]){return _0x2f01x6[_0x7578[55]](400)};return _0x2f01x6[_0x7578[55]](200)})})[_0x7578[36]](handleError(_0x2f01x6))};exports[_0x7578[61]]=function(_0x2f01x10,_0x2f01x6){var _0x2f01x21={};_0x2f01x21[_0x2f01x10[_0x7578[49]][_0x7578[62]]]=_0x2f01x10[_0x7578[52]][_0x7578[63]];FreshdeskAccount[_0x7578[46]]({where:_0x2f01x21})[_0x7578[10]](function(_0x2f01x19){if(_0x2f01x19[_0x7578[37]]){return _0x2f01x6[_0x7578[7]](200)[_0x7578[6]]({isValid:false,value:_0x2f01x10[_0x7578[52]][_0x7578[63]]})};return _0x2f01x6[_0x7578[7]](200)[_0x7578[6]]({isValid:true,value:_0x2f01x10[_0x7578[52]][_0x7578[63]]})})[_0x7578[36]](function(_0x2f01x8){return handleError(_0x2f01x6,_0x2f01x8)})};exports[_0x7578[64]]=function(_0x2f01x10,_0x2f01x6,_0x2f01x22){FreshdeskAccount[_0x7578[50]](_0x2f01x10[_0x7578[49]][_0x7578[48]])[_0x7578[10]](handleEntityNotFound(_0x2f01x6))[_0x7578[10]](function(_0x2f01x1d){var _0x2f01x23= new _fd(_0x2f01x1d[_0x7578[17]],_0x2f01x1d[_0x7578[57]]);_0x2f01x23[_0x7578[66]](_0x7578[65],function(_0x2f01x8,_0x2f01x1f,_0x2f01x20){if(_0x2f01x8){return _0x2f01x22(_0x2f01x8)};_0x2f01x20=JSON[_0x7578[58]](_0x2f01x20);return _0x2f01x6[_0x7578[7]](200)[_0x7578[6]](_0x2f01x20)})})[_0x7578[36]](handleError(_0x2f01x6))}
\ No newline at end of file
index 2aabaae..c8a7cdf 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var FreshdeskAccount = require('../../models').FreshdeskAccount;
-
-exports.register = function(socket) {
-  FreshdeskAccount.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  FreshdeskAccount.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('freshdesk_account:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('freshdesk_account:remove', doc);
-}
+var _0x244c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x244c[0];var FreshdeskAccount=require(_0x244c[2])[_0x244c[1]];exports[_0x244c[3]]=function(_0x169dx2){FreshdeskAccount[_0x244c[4]](function(_0x169dx3){onSave(_0x169dx2,_0x169dx3)});FreshdeskAccount[_0x244c[5]](function(_0x169dx3){onRemove(_0x169dx2,_0x169dx3)})};function onSave(_0x169dx2,_0x169dx3,_0x169dx5){_0x169dx2[_0x244c[7]](_0x244c[6],_0x169dx3)}function onRemove(_0x169dx2,_0x169dx3,_0x169dx5){_0x169dx2[_0x244c[7]](_0x244c[8],_0x169dx3)}
\ No newline at end of file
index a7385b7..19eb8eb 100644 (file)
@@ -1,21 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./freshdesk_account.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/fields', auth.isAuthenticated(), controller.getFields);
-router.get('/:id/check', auth.isAuthenticated(), controller.checkAccount);
-router.post('/validate/:field', auth.isAuthenticated(), controller.accountValidation);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0x50fb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x63\x68\x65\x63\x6B","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x61\x63\x63\x6F\x75\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x50fb[0];var express=require(_0x50fb[1]);var auth=require(_0x50fb[2]);var controller=require(_0x50fb[3]);var router=express.Router();router[_0x50fb[7]](_0x50fb[4],auth[_0x50fb[5]](),controller[_0x50fb[6]]);router[_0x50fb[7]](_0x50fb[8],auth[_0x50fb[5]](),controller[_0x50fb[9]]);router[_0x50fb[7]](_0x50fb[10],auth[_0x50fb[5]](),controller[_0x50fb[11]]);router[_0x50fb[7]](_0x50fb[12],auth[_0x50fb[5]](),controller[_0x50fb[13]]);router[_0x50fb[16]](_0x50fb[14],auth[_0x50fb[5]](),controller[_0x50fb[15]]);router[_0x50fb[16]](_0x50fb[4],auth[_0x50fb[5]](),controller[_0x50fb[17]]);router[_0x50fb[19]](_0x50fb[8],auth[_0x50fb[5]](),controller[_0x50fb[18]]);router[_0x50fb[20]](_0x50fb[8],auth[_0x50fb[5]](),controller[_0x50fb[18]]);router[_0x50fb[22]](_0x50fb[4],auth[_0x50fb[5]](),controller[_0x50fb[21]]);router[_0x50fb[22]](_0x50fb[8],auth[_0x50fb[5]](),controller[_0x50fb[23]]);module[_0x50fb[24]]=router
\ No newline at end of file
index 6d7fc75..93e6ba1 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var freshdeskAccountCtrlStub = {
-  index: 'freshdeskAccountCtrl.index',
-  show: 'freshdeskAccountCtrl.show',
-  create: 'freshdeskAccountCtrl.create',
-  update: 'freshdeskAccountCtrl.update',
-  destroy: 'freshdeskAccountCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var freshdeskAccountIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './freshdesk_account.controller': freshdeskAccountCtrlStub
-});
-
-describe('FreshdeskAccount API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(freshdeskAccountIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/freshdesk/accounts', function() {
-
-    it('should route to freshdeskAccount.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'freshdeskAccountCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/freshdesk/accounts/:id', function() {
-
-    it('should route to freshdeskAccount.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'freshdeskAccountCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/freshdesk/accounts', function() {
-
-    it('should route to freshdeskAccount.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'freshdeskAccountCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/freshdesk/accounts/:id', function() {
-
-    it('should route to freshdeskAccount.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'freshdeskAccountCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/freshdesk/accounts/:id', function() {
-
-    it('should route to freshdeskAccount.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'freshdeskAccountCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/freshdesk/accounts/:id', function() {
-
-    it('should route to freshdeskAccount.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'freshdeskAccountCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0xe028=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0xe028[0];var proxyquire=require(_0xe028[2])[_0xe028[1]]();var freshdeskAccountCtrlStub={index:_0xe028[3],show:_0xe028[4],create:_0xe028[5],update:_0xe028[6],destroy:_0xe028[7]};var routerStub={get:sinon[_0xe028[8]](),put:sinon[_0xe028[8]](),patch:sinon[_0xe028[8]](),post:sinon[_0xe028[8]](),delete:sinon[_0xe028[8]]()};var freshdeskAccountIndex=proxyquire(_0xe028[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":freshdeskAccountCtrlStub});describe(_0xe028[10],function(){it(_0xe028[11],function(){expect(freshdeskAccountIndex)[_0xe028[13]][_0xe028[12]](routerStub)});describe(_0xe028[14],function(){it(_0xe028[15],function(){expect(routerStub[_0xe028[21]][_0xe028[20]](_0xe028[19],_0xe028[3]))[_0xe028[13]][_0xe028[18]][_0xe028[17]][_0xe028[16]]})});describe(_0xe028[22],function(){it(_0xe028[23],function(){expect(routerStub[_0xe028[21]][_0xe028[20]](_0xe028[24],_0xe028[4]))[_0xe028[13]][_0xe028[18]][_0xe028[17]][_0xe028[16]]})});describe(_0xe028[25],function(){it(_0xe028[26],function(){expect(routerStub[_0xe028[27]][_0xe028[20]](_0xe028[19],_0xe028[5]))[_0xe028[13]][_0xe028[18]][_0xe028[17]][_0xe028[16]]})});describe(_0xe028[28],function(){it(_0xe028[29],function(){expect(routerStub[_0xe028[30]][_0xe028[20]](_0xe028[24],_0xe028[6]))[_0xe028[13]][_0xe028[18]][_0xe028[17]][_0xe028[16]]})});describe(_0xe028[31],function(){it(_0xe028[29],function(){expect(routerStub[_0xe028[32]][_0xe028[20]](_0xe028[24],_0xe028[6]))[_0xe028[13]][_0xe028[18]][_0xe028[17]][_0xe028[16]]})});describe(_0xe028[33],function(){it(_0xe028[34],function(){expect(routerStub[_0xe028[35]][_0xe028[20]](_0xe028[24],_0xe028[7]))[_0xe028[13]][_0xe028[18]][_0xe028[17]][_0xe028[16]]})})})
\ No newline at end of file
index 4c3d44d..47e6b8a 100644 (file)
@@ -1,146 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/freshdesk/configurations              ->  index
- * POST    /api/freshdesk/configurations              ->  create
- * GET     /api/freshdesk/configurations/:id          ->  show
- * PUT     /api/freshdesk/configurations/:id          ->  update
- * DELETE  /api/freshdesk/configurations/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-
-var FreshdeskConfiguration = require('../../models').FreshdeskConfiguration;
-var FreshdeskField = require('../../models').FreshdeskField;
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of FreshdeskConfigurations
-exports.index = function(req, res) {
-  FreshdeskConfiguration.findAll({
-      where: req.query
-    })
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single FreshdeskConfiguration from the DB
-exports.show = function(req, res) {
-  FreshdeskConfiguration.find({
-      where: {
-        id: req.params.id
-      },
-      include: [{
-        model: FreshdeskField,
-        as: 'Subject'
-      }, {
-        model: FreshdeskField,
-        as: 'Description'
-      }, {
-        model: FreshdeskField,
-        as: 'Field'
-      }]
-    })
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new FreshdeskConfiguration in the DB
-exports.create = function(req, res) {
-  FreshdeskConfiguration.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing FreshdeskConfiguration in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  FreshdeskConfiguration.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a FreshdeskConfiguration from the DB
-exports.destroy = function(req, res) {
-  FreshdeskConfiguration.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
-
-exports.addConfigurationField = function(req, res, next) {
-  // console.log(req.params);
-  var freshdeskConfiguration;
-  FreshdeskConfiguration
-    .findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(function(salesforce_configuration) {
-      freshdeskConfiguration = salesforce_configuration;
-      return FreshdeskField.create(req.body)
-    })
-    .then(function(freshdeskField) {
-      switch (req.params.type) {
-        case 'subject':
-          return [freshdeskConfiguration.addSubject(freshdeskField), freshdeskField];
-        case 'description':
-          return [freshdeskConfiguration.addDescription(freshdeskField), freshdeskField];
-        case 'field':
-          return [freshdeskConfiguration.addField(freshdeskField), freshdeskField];
-      }
-    })
-    .spread(function(data, freshdeskField) {
-      return res.status(201).json(freshdeskField);
-    })
-    .catch(handleError(res));
-};
+var _0x40c8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x53\x75\x62\x6A\x65\x63\x74","\x73\x75\x62\x6A\x65\x63\x74","\x61\x64\x64\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x65\x6C\x64","\x66\x69\x65\x6C\x64","\x74\x79\x70\x65"];_0x40c8[0];var _=require(_0x40c8[1]);var FreshdeskConfiguration=require(_0x40c8[3])[_0x40c8[2]];var FreshdeskField=require(_0x40c8[3])[_0x40c8[4]];function handleError(_0xe442x5,_0xe442x6){_0xe442x6=_0xe442x6||500;return function(_0xe442x7){_0xe442x5[_0x40c8[6]](_0xe442x6)[_0x40c8[5]](_0xe442x7)}}function responseWithResult(_0xe442x5,_0xe442x6){_0xe442x6=_0xe442x6||200;return function(_0xe442x9){if(_0xe442x9){_0xe442x5[_0x40c8[6]](_0xe442x6)[_0x40c8[7]](_0xe442x9)}}}function handleEntityNotFound(_0xe442x5){return function(_0xe442x9){if(!_0xe442x9){_0xe442x5[_0x40c8[6]](404)[_0x40c8[8]]();return null};return _0xe442x9}}function saveUpdates(_0xe442xc){return function(_0xe442x9){return _0xe442x9[_0x40c8[10]](_0xe442xc)[_0x40c8[9]](function(_0xe442xd){return _0xe442xd})}}function removeEntity(_0xe442x5){return function(_0xe442x9){if(_0xe442x9){return _0xe442x9[_0x40c8[11]]()[_0x40c8[9]](function(){_0xe442x5[_0x40c8[6]](204)[_0x40c8[8]]()})}}}exports[_0x40c8[12]]=function(_0xe442xf,_0xe442x5){FreshdeskConfiguration[_0x40c8[15]]({where:_0xe442xf[_0x40c8[14]]})[_0x40c8[9]](responseWithResult(_0xe442x5))[_0x40c8[13]](handleError(_0xe442x5))};exports[_0x40c8[16]]=function(_0xe442xf,_0xe442x5){FreshdeskConfiguration[_0x40c8[22]]({where:{id:_0xe442xf[_0x40c8[18]][_0x40c8[17]]},include:[{model:FreshdeskField,as:_0x40c8[19]},{model:FreshdeskField,as:_0x40c8[20]},{model:FreshdeskField,as:_0x40c8[21]}]})[_0x40c8[9]](handleEntityNotFound(_0xe442x5))[_0x40c8[9]](responseWithResult(_0xe442x5))[_0x40c8[13]](handleError(_0xe442x5))};exports[_0x40c8[23]]=function(_0xe442xf,_0xe442x5){FreshdeskConfiguration[_0x40c8[23]](_0xe442xf[_0x40c8[24]])[_0x40c8[9]](responseWithResult(_0xe442x5,201))[_0x40c8[13]](handleError(_0xe442x5))};exports[_0x40c8[25]]=function(_0xe442xf,_0xe442x5){if(_0xe442xf[_0x40c8[24]][_0x40c8[17]]){delete _0xe442xf[_0x40c8[24]][_0x40c8[17]]};FreshdeskConfiguration[_0x40c8[26]](_0xe442xf[_0x40c8[18]][_0x40c8[17]])[_0x40c8[9]](handleEntityNotFound(_0xe442x5))[_0x40c8[9]](saveUpdates(_0xe442xf[_0x40c8[24]]))[_0x40c8[9]](responseWithResult(_0xe442x5))[_0x40c8[13]](handleError(_0xe442x5))};exports[_0x40c8[11]]=function(_0xe442xf,_0xe442x5){FreshdeskConfiguration[_0x40c8[26]](_0xe442xf[_0x40c8[18]][_0x40c8[17]])[_0x40c8[9]](handleEntityNotFound(_0xe442x5))[_0x40c8[9]](removeEntity(_0xe442x5))[_0x40c8[13]](handleError(_0xe442x5))};exports[_0x40c8[27]]=function(_0xe442xf,_0xe442x5,_0xe442x10){var _0xe442x11;FreshdeskConfiguration[_0x40c8[26]](_0xe442xf[_0x40c8[18]][_0x40c8[17]])[_0x40c8[9]](handleEntityNotFound(_0xe442x5))[_0x40c8[9]](function(_0xe442x14){_0xe442x11=_0xe442x14;return FreshdeskField[_0x40c8[23]](_0xe442xf[_0x40c8[24]])})[_0x40c8[9]](function(_0xe442x13){switch(_0xe442xf[_0x40c8[18]][_0x40c8[35]]){case _0x40c8[30]:return [_0xe442x11[_0x40c8[29]](_0xe442x13),_0xe442x13];case _0x40c8[32]:return [_0xe442x11[_0x40c8[31]](_0xe442x13),_0xe442x13];case _0x40c8[34]:return [_0xe442x11[_0x40c8[33]](_0xe442x13),_0xe442x13]}})[_0x40c8[28]](function(_0xe442x12,_0xe442x13){return _0xe442x5[_0x40c8[6]](201)[_0x40c8[7]](_0xe442x13)})[_0x40c8[13]](handleError(_0xe442x5))}
\ No newline at end of file
index 4ce7f30..4ac6114 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var FreshdeskConfiguration = require('../../models').FreshdeskConfiguration;
-
-exports.register = function(socket) {
-  FreshdeskConfiguration.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  FreshdeskConfiguration.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('freshdesk_configuration:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('freshdesk_configuration:remove', doc);
-}
+var _0x8438=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8438[0];var FreshdeskConfiguration=require(_0x8438[2])[_0x8438[1]];exports[_0x8438[3]]=function(_0x2486x2){FreshdeskConfiguration[_0x8438[4]](function(_0x2486x3){onSave(_0x2486x2,_0x2486x3)});FreshdeskConfiguration[_0x8438[5]](function(_0x2486x3){onRemove(_0x2486x2,_0x2486x3)})};function onSave(_0x2486x2,_0x2486x3,_0x2486x5){_0x2486x2[_0x8438[7]](_0x8438[6],_0x2486x3)}function onRemove(_0x2486x2,_0x2486x3,_0x2486x5){_0x2486x2[_0x8438[7]](_0x8438[8],_0x2486x3)}
\ No newline at end of file
index e08945f..e9d0acb 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./freshdesk_configuration.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0x8e53=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x3A\x74\x79\x70\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8e53[0];var express=require(_0x8e53[1]);var auth=require(_0x8e53[2]);var controller=require(_0x8e53[3]);var router=express.Router();router[_0x8e53[7]](_0x8e53[4],auth[_0x8e53[5]](),controller[_0x8e53[6]]);router[_0x8e53[7]](_0x8e53[8],auth[_0x8e53[5]](),controller[_0x8e53[9]]);router[_0x8e53[11]](_0x8e53[4],auth[_0x8e53[5]](),controller[_0x8e53[10]]);router[_0x8e53[13]](_0x8e53[8],auth[_0x8e53[5]](),controller[_0x8e53[12]]);router[_0x8e53[11]](_0x8e53[14],auth[_0x8e53[5]](),controller[_0x8e53[15]]);router[_0x8e53[16]](_0x8e53[8],auth[_0x8e53[5]](),controller[_0x8e53[12]]);router[_0x8e53[18]](_0x8e53[8],auth[_0x8e53[5]](),controller[_0x8e53[17]]);module[_0x8e53[19]]=router
\ No newline at end of file
index b297c23..96906bf 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var freshdeskConfigurationCtrlStub = {
-  index: 'freshdeskConfigurationCtrl.index',
-  show: 'freshdeskConfigurationCtrl.show',
-  create: 'freshdeskConfigurationCtrl.create',
-  update: 'freshdeskConfigurationCtrl.update',
-  destroy: 'freshdeskConfigurationCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var freshdeskConfigurationIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './freshdesk_configuration.controller': freshdeskConfigurationCtrlStub
-});
-
-describe('FreshdeskConfiguration API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(freshdeskConfigurationIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/freshdesk/configurations', function() {
-
-    it('should route to freshdeskConfiguration.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'freshdeskConfigurationCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/freshdesk/configurations/:id', function() {
-
-    it('should route to freshdeskConfiguration.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'freshdeskConfigurationCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/freshdesk/configurations', function() {
-
-    it('should route to freshdeskConfiguration.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'freshdeskConfigurationCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/freshdesk/configurations/:id', function() {
-
-    it('should route to freshdeskConfiguration.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'freshdeskConfigurationCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/freshdesk/configurations/:id', function() {
-
-    it('should route to freshdeskConfiguration.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'freshdeskConfigurationCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/freshdesk/configurations/:id', function() {
-
-    it('should route to freshdeskConfiguration.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'freshdeskConfigurationCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0xf1e6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0xf1e6[0];var proxyquire=require(_0xf1e6[2])[_0xf1e6[1]]();var freshdeskConfigurationCtrlStub={index:_0xf1e6[3],show:_0xf1e6[4],create:_0xf1e6[5],update:_0xf1e6[6],destroy:_0xf1e6[7]};var routerStub={get:sinon[_0xf1e6[8]](),put:sinon[_0xf1e6[8]](),patch:sinon[_0xf1e6[8]](),post:sinon[_0xf1e6[8]](),delete:sinon[_0xf1e6[8]]()};var freshdeskConfigurationIndex=proxyquire(_0xf1e6[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":freshdeskConfigurationCtrlStub});describe(_0xf1e6[10],function(){it(_0xf1e6[11],function(){expect(freshdeskConfigurationIndex)[_0xf1e6[13]][_0xf1e6[12]](routerStub)});describe(_0xf1e6[14],function(){it(_0xf1e6[15],function(){expect(routerStub[_0xf1e6[21]][_0xf1e6[20]](_0xf1e6[19],_0xf1e6[3]))[_0xf1e6[13]][_0xf1e6[18]][_0xf1e6[17]][_0xf1e6[16]]})});describe(_0xf1e6[22],function(){it(_0xf1e6[23],function(){expect(routerStub[_0xf1e6[21]][_0xf1e6[20]](_0xf1e6[24],_0xf1e6[4]))[_0xf1e6[13]][_0xf1e6[18]][_0xf1e6[17]][_0xf1e6[16]]})});describe(_0xf1e6[25],function(){it(_0xf1e6[26],function(){expect(routerStub[_0xf1e6[27]][_0xf1e6[20]](_0xf1e6[19],_0xf1e6[5]))[_0xf1e6[13]][_0xf1e6[18]][_0xf1e6[17]][_0xf1e6[16]]})});describe(_0xf1e6[28],function(){it(_0xf1e6[29],function(){expect(routerStub[_0xf1e6[30]][_0xf1e6[20]](_0xf1e6[24],_0xf1e6[6]))[_0xf1e6[13]][_0xf1e6[18]][_0xf1e6[17]][_0xf1e6[16]]})});describe(_0xf1e6[31],function(){it(_0xf1e6[29],function(){expect(routerStub[_0xf1e6[32]][_0xf1e6[20]](_0xf1e6[24],_0xf1e6[6]))[_0xf1e6[13]][_0xf1e6[18]][_0xf1e6[17]][_0xf1e6[16]]})});describe(_0xf1e6[33],function(){it(_0xf1e6[34],function(){expect(routerStub[_0xf1e6[35]][_0xf1e6[20]](_0xf1e6[24],_0xf1e6[7]))[_0xf1e6[13]][_0xf1e6[18]][_0xf1e6[17]][_0xf1e6[16]]})})})
\ No newline at end of file
index 4a35db8..8ac0cd9 100644 (file)
@@ -1,104 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/freshdesk/fields              ->  index
- * POST    /api/freshdesk/fields              ->  create
- * GET     /api/freshdesk/fields/:id          ->  show
- * PUT     /api/freshdesk/fields/:id          ->  update
- * DELETE  /api/freshdesk/fields/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-
-var FreshdeskField = require('../../models').FreshdeskField;
-
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of FreshdeskFields
-exports.index = function(req, res) {
-  FreshdeskField.findAll()
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single FreshdeskField from the DB
-exports.show = function(req, res) {
-  FreshdeskField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new FreshdeskField in the DB
-exports.create = function(req, res) {
-  FreshdeskField.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing FreshdeskField in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  FreshdeskField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a FreshdeskField from the DB
-exports.destroy = function(req, res) {
-  FreshdeskField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
+var _0xe587=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65"];_0xe587[0];var _=require(_0xe587[1]);var FreshdeskField=require(_0xe587[3])[_0xe587[2]];function handleError(_0x50b1x4,_0x50b1x5){_0x50b1x5=_0x50b1x5||500;return function(_0x50b1x6){_0x50b1x4[_0xe587[5]](_0x50b1x5)[_0xe587[4]](_0x50b1x6)}}function responseWithResult(_0x50b1x4,_0x50b1x5){_0x50b1x5=_0x50b1x5||200;return function(_0x50b1x8){if(_0x50b1x8){_0x50b1x4[_0xe587[5]](_0x50b1x5)[_0xe587[6]](_0x50b1x8)}}}function handleEntityNotFound(_0x50b1x4){return function(_0x50b1x8){if(!_0x50b1x8){_0x50b1x4[_0xe587[5]](404)[_0xe587[7]]();return null};return _0x50b1x8}}function saveUpdates(_0x50b1xb){return function(_0x50b1x8){return _0x50b1x8[_0xe587[9]](_0x50b1xb)[_0xe587[8]](function(_0x50b1xc){return _0x50b1xc})}}function removeEntity(_0x50b1x4){return function(_0x50b1x8){if(_0x50b1x8){return _0x50b1x8[_0xe587[10]]()[_0xe587[8]](function(){_0x50b1x4[_0xe587[5]](204)[_0xe587[7]]()})}}}exports[_0xe587[11]]=function(_0x50b1xe,_0x50b1x4){FreshdeskField[_0xe587[13]]()[_0xe587[8]](responseWithResult(_0x50b1x4))[_0xe587[12]](handleError(_0x50b1x4))};exports[_0xe587[14]]=function(_0x50b1xe,_0x50b1x4){FreshdeskField[_0xe587[17]](_0x50b1xe[_0xe587[16]][_0xe587[15]])[_0xe587[8]](handleEntityNotFound(_0x50b1x4))[_0xe587[8]](responseWithResult(_0x50b1x4))[_0xe587[12]](handleError(_0x50b1x4))};exports[_0xe587[18]]=function(_0x50b1xe,_0x50b1x4){FreshdeskField[_0xe587[18]](_0x50b1xe[_0xe587[19]])[_0xe587[8]](responseWithResult(_0x50b1x4,201))[_0xe587[12]](handleError(_0x50b1x4))};exports[_0xe587[20]]=function(_0x50b1xe,_0x50b1x4){if(_0x50b1xe[_0xe587[19]][_0xe587[15]]){delete _0x50b1xe[_0xe587[19]][_0xe587[15]]};FreshdeskField[_0xe587[17]](_0x50b1xe[_0xe587[16]][_0xe587[15]])[_0xe587[8]](handleEntityNotFound(_0x50b1x4))[_0xe587[8]](saveUpdates(_0x50b1xe[_0xe587[19]]))[_0xe587[8]](responseWithResult(_0x50b1x4))[_0xe587[12]](handleError(_0x50b1x4))};exports[_0xe587[10]]=function(_0x50b1xe,_0x50b1x4){FreshdeskField[_0xe587[17]](_0x50b1xe[_0xe587[16]][_0xe587[15]])[_0xe587[8]](handleEntityNotFound(_0x50b1x4))[_0xe587[8]](removeEntity(_0x50b1x4))[_0xe587[12]](handleError(_0x50b1x4))}
\ No newline at end of file
index b351442..e5a6c03 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var FreshdeskField = require('../../models').FreshdeskField;
-
-exports.register = function(socket) {
-  FreshdeskField.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  FreshdeskField.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('freshdesk_field:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('freshdesk_field:remove', doc);
-}
+var _0xa573=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0xa573[0];var FreshdeskField=require(_0xa573[2])[_0xa573[1]];exports[_0xa573[3]]=function(_0x8fb2x2){FreshdeskField[_0xa573[4]](function(_0x8fb2x3){onSave(_0x8fb2x2,_0x8fb2x3)});FreshdeskField[_0xa573[5]](function(_0x8fb2x3){onRemove(_0x8fb2x2,_0x8fb2x3)})};function onSave(_0x8fb2x2,_0x8fb2x3,_0x8fb2x5){_0x8fb2x2[_0xa573[7]](_0xa573[6],_0x8fb2x3)}function onRemove(_0x8fb2x2,_0x8fb2x3,_0x8fb2x5){_0x8fb2x2[_0xa573[7]](_0xa573[8],_0x8fb2x3)}
\ No newline at end of file
index d17268f..b84c050 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./freshdesk_field.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0x68c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x68c3[0];var express=require(_0x68c3[1]);var auth=require(_0x68c3[2]);var controller=require(_0x68c3[3]);var router=express.Router();router[_0x68c3[7]](_0x68c3[4],auth[_0x68c3[5]](),controller[_0x68c3[6]]);router[_0x68c3[7]](_0x68c3[8],auth[_0x68c3[5]](),controller[_0x68c3[9]]);router[_0x68c3[11]](_0x68c3[4],auth[_0x68c3[5]](),controller[_0x68c3[10]]);router[_0x68c3[13]](_0x68c3[8],auth[_0x68c3[5]](),controller[_0x68c3[12]]);router[_0x68c3[14]](_0x68c3[8],auth[_0x68c3[5]](),controller[_0x68c3[12]]);router[_0x68c3[16]](_0x68c3[8],auth[_0x68c3[5]](),controller[_0x68c3[15]]);module[_0x68c3[17]]=router
\ No newline at end of file
index b5c0fb8..af4de0b 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var freshdeskFieldCtrlStub = {
-  index: 'freshdeskFieldCtrl.index',
-  show: 'freshdeskFieldCtrl.show',
-  create: 'freshdeskFieldCtrl.create',
-  update: 'freshdeskFieldCtrl.update',
-  destroy: 'freshdeskFieldCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var freshdeskFieldIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './freshdesk_field.controller': freshdeskFieldCtrlStub
-});
-
-describe('FreshdeskField API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(freshdeskFieldIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/freshdesk/fields', function() {
-
-    it('should route to freshdeskField.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'freshdeskFieldCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/freshdesk/fields/:id', function() {
-
-    it('should route to freshdeskField.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'freshdeskFieldCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/freshdesk/fields', function() {
-
-    it('should route to freshdeskField.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'freshdeskFieldCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/freshdesk/fields/:id', function() {
-
-    it('should route to freshdeskField.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'freshdeskFieldCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/freshdesk/fields/:id', function() {
-
-    it('should route to freshdeskField.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'freshdeskFieldCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/freshdesk/fields/:id', function() {
-
-    it('should route to freshdeskField.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'freshdeskFieldCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0x14dd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x14dd[0];var proxyquire=require(_0x14dd[2])[_0x14dd[1]]();var freshdeskFieldCtrlStub={index:_0x14dd[3],show:_0x14dd[4],create:_0x14dd[5],update:_0x14dd[6],destroy:_0x14dd[7]};var routerStub={get:sinon[_0x14dd[8]](),put:sinon[_0x14dd[8]](),patch:sinon[_0x14dd[8]](),post:sinon[_0x14dd[8]](),delete:sinon[_0x14dd[8]]()};var freshdeskFieldIndex=proxyquire(_0x14dd[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":freshdeskFieldCtrlStub});describe(_0x14dd[10],function(){it(_0x14dd[11],function(){expect(freshdeskFieldIndex)[_0x14dd[13]][_0x14dd[12]](routerStub)});describe(_0x14dd[14],function(){it(_0x14dd[15],function(){expect(routerStub[_0x14dd[21]][_0x14dd[20]](_0x14dd[19],_0x14dd[3]))[_0x14dd[13]][_0x14dd[18]][_0x14dd[17]][_0x14dd[16]]})});describe(_0x14dd[22],function(){it(_0x14dd[23],function(){expect(routerStub[_0x14dd[21]][_0x14dd[20]](_0x14dd[24],_0x14dd[4]))[_0x14dd[13]][_0x14dd[18]][_0x14dd[17]][_0x14dd[16]]})});describe(_0x14dd[25],function(){it(_0x14dd[26],function(){expect(routerStub[_0x14dd[27]][_0x14dd[20]](_0x14dd[19],_0x14dd[5]))[_0x14dd[13]][_0x14dd[18]][_0x14dd[17]][_0x14dd[16]]})});describe(_0x14dd[28],function(){it(_0x14dd[29],function(){expect(routerStub[_0x14dd[30]][_0x14dd[20]](_0x14dd[24],_0x14dd[6]))[_0x14dd[13]][_0x14dd[18]][_0x14dd[17]][_0x14dd[16]]})});describe(_0x14dd[31],function(){it(_0x14dd[29],function(){expect(routerStub[_0x14dd[32]][_0x14dd[20]](_0x14dd[24],_0x14dd[6]))[_0x14dd[13]][_0x14dd[18]][_0x14dd[17]][_0x14dd[16]]})});describe(_0x14dd[33],function(){it(_0x14dd[34],function(){expect(routerStub[_0x14dd[35]][_0x14dd[20]](_0x14dd[24],_0x14dd[7]))[_0x14dd[13]][_0x14dd[18]][_0x14dd[17]][_0x14dd[16]]})})})
\ No newline at end of file
index 5789126..f5d073b 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./integration.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
\ No newline at end of file
+var _0xa59e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa59e[0];var express=require(_0xa59e[1]);var controller=require(_0xa59e[2]);var router=express.Router();router[_0xa59e[5]](_0xa59e[3],controller[_0xa59e[4]]);router[_0xa59e[5]](_0xa59e[6],controller[_0xa59e[7]]);router[_0xa59e[9]](_0xa59e[3],controller[_0xa59e[8]]);router[_0xa59e[11]](_0xa59e[6],controller[_0xa59e[10]]);router[_0xa59e[12]](_0xa59e[6],controller[_0xa59e[10]]);router[_0xa59e[14]](_0xa59e[6],controller[_0xa59e[13]]);module[_0xa59e[15]]=router
\ No newline at end of file
index cc5e706..916fd6a 100644 (file)
@@ -1,178 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var uploadFile = require('upload-file');
-var config = require('../../config/environment');
-var path = require('path');
-var sr = require('simple-random');
-var admZip = require('adm-zip');
-var str2json = require('string-to-json');
-var fs = require('fs');
-var Util = require('../../config/util');
-
-var Integration = require('../../models').Integration;
-
-// Get list of Integration
-exports.index = function(req, res, next) {
-  return Integration
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single integration
-exports.show = function(req, res) {
-  Integration
-    .findById(req.params.id)
-    .then(function(integration) {
-      if (!integration) {
-        return res.sendStatus(404);
-      }
-      return res.send(integration);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new integration in the DB.
-exports.create = function(req, res) {
-  var upload = new uploadFile({
-    dest: path.join(config.root, 'server/files/integrations'),
-    maxFileSize: 5 * 1000000,
-    maxNumberOfFiles: 1,
-    minNumberOfFiles: 1,
-    acceptFileTypes: /(\.|\/)(zip)$/i,
-    messages: {
-      maxNumberOfFiles: "Max number of files upload exceeded",
-      acceptFileTypes: "Only zip format accepted",
-      maxFileSize: "The maximum file size is 5 Mb",
-      invalidRequest: "Invalid request"
-    }
-  });
-
-  upload.on('end', function(fields, files) {
-    var zip = new admZip(files.file.path);
-
-    var manifest = false;
-    var zipEntries = zip.getEntries();
-    zipEntries.forEach(function(zipEntry) {
-      if (zipEntry.name === 'manifest.json') {
-        var str = zipEntry.getData().toString('utf8');
-        console.log('uploadZip', str);
-        try {
-          manifest = JSON.parse(str);
-          console.log('uploadZip', manifest);
-          Integration
-            .create(_.merge(files.file, manifest))
-            .then(function(integration) {
-
-              // Extract All Zip and overwrite old directory
-              zip.extractAllTo(path.join(config.root,
-                'server/files/integrations'), true);
-
-              return res.status(201).send(integration);
-            })
-            .catch(function(err) {
-              return handleError(res, err);
-            });
-        } catch (e) {
-          console.log(e);
-          var err = {
-            errors: [{
-              type: 'json',
-              message: e
-            }]
-          };
-          return handleError(res, err);
-        }
-      }
-    });
-
-    fs.unlinkSync(files.file.path);
-
-    if (!manifest) {
-      var err = {
-        errors: [{
-          type: 'manifest',
-          message: 'manifest.json not found'
-        }]
-      };
-      return handleError(res, err);
-    }
-  });
-
-  upload.on('error', function(e) {
-    var err = {
-      errors: [{
-        type: 'upload',
-        message: e
-      }]
-    };
-    return handleError(res, err);
-  });
-
-  upload.parse(req);
-};
-
-// Updates an existing integration in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  Integration
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(integration) {
-      if (!integration) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(integration, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(integration);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a integration from the DB.
-exports.destroy = function(req, res) {
-  Integration
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(integration) {
-      if (!integration) {
-        return res.sendStatus(404);
-      }
-      integration.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x37c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x70\x6C\x6F\x61\x64\x2D\x66\x69\x6C\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x70\x61\x74\x68","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x61\x64\x6D\x2D\x7A\x69\x70","\x73\x74\x72\x69\x6E\x67\x2D\x74\x6F\x2D\x6A\x73\x6F\x6E","\x66\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x6A\x6F\x69\x6E","\x4D\x61\x78\x20\x6E\x75\x6D\x62\x65\x72\x20\x6F\x66\x20\x66\x69\x6C\x65\x73\x20\x75\x70\x6C\x6F\x61\x64\x20\x65\x78\x63\x65\x65\x64\x65\x64","\x4F\x6E\x6C\x79\x20\x7A\x69\x70\x20\x66\x6F\x72\x6D\x61\x74\x20\x61\x63\x63\x65\x70\x74\x65\x64","\x54\x68\x65\x20\x6D\x61\x78\x69\x6D\x75\x6D\x20\x66\x69\x6C\x65\x20\x73\x69\x7A\x65\x20\x69\x73\x20\x35\x20\x4D\x62","\x49\x6E\x76\x61\x6C\x69\x64\x20\x72\x65\x71\x75\x65\x73\x74","\x65\x6E\x64","\x66\x69\x6C\x65","\x67\x65\x74\x45\x6E\x74\x72\x69\x65\x73","\x6E\x61\x6D\x65","\x6D\x61\x6E\x69\x66\x65\x73\x74\x2E\x6A\x73\x6F\x6E","\x75\x74\x66\x38","\x67\x65\x74\x44\x61\x74\x61","\x75\x70\x6C\x6F\x61\x64\x5A\x69\x70","\x6C\x6F\x67","\x70\x61\x72\x73\x65","\x65\x78\x74\x72\x61\x63\x74\x41\x6C\x6C\x54\x6F","\x6D\x65\x72\x67\x65","\x6A\x73\x6F\x6E","\x66\x6F\x72\x45\x61\x63\x68","\x75\x6E\x6C\x69\x6E\x6B\x53\x79\x6E\x63","\x6D\x61\x6E\x69\x66\x65\x73\x74","\x6D\x61\x6E\x69\x66\x65\x73\x74\x2E\x6A\x73\x6F\x6E\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6F\x6E","\x65\x72\x72\x6F\x72","\x75\x70\x6C\x6F\x61\x64","\x75\x70\x64\x61\x74\x65","\x62\x6F\x64\x79","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0x37c6[0];var _=require(_0x37c6[1]);var uploadFile=require(_0x37c6[2]);var config=require(_0x37c6[3]);var path=require(_0x37c6[4]);var sr=require(_0x37c6[5]);var admZip=require(_0x37c6[6]);var str2json=require(_0x37c6[7]);var fs=require(_0x37c6[8]);var Util=require(_0x37c6[9]);var Integration=require(_0x37c6[11])[_0x37c6[10]];exports[_0x37c6[12]]=function(_0x970fxb,_0x970fxc,_0x970fxd){return Integration[_0x37c6[19]](Util[_0x37c6[18]](_0x970fxb[_0x37c6[17]]))[_0x37c6[16]](function(_0x970fxf){_0x970fxc[_0x37c6[15]](200)[_0x37c6[14]](_0x970fxf)})[_0x37c6[13]](function(_0x970fxe){return handleError(_0x970fxc,_0x970fxe)})};exports[_0x37c6[20]]=function(_0x970fxb,_0x970fxc){Integration[_0x37c6[24]](_0x970fxb[_0x37c6[23]][_0x37c6[22]])[_0x37c6[16]](function(_0x970fx10){if(!_0x970fx10){return _0x970fxc[_0x37c6[21]](404)};return _0x970fxc[_0x37c6[14]](_0x970fx10)})[_0x37c6[13]](function(_0x970fxe){return handleError(_0x970fxc,_0x970fxe)})};exports[_0x37c6[25]]=function(_0x970fxb,_0x970fxc){var _0x970fx11= new uploadFile({dest:path[_0x37c6[28]](config[_0x37c6[26]],_0x37c6[27]),maxFileSize:5*1000000,maxNumberOfFiles:1,minNumberOfFiles:1,acceptFileTypes:/(\.|\/)(zip)$/i,messages:{maxNumberOfFiles:_0x37c6[29],acceptFileTypes:_0x37c6[30],maxFileSize:_0x37c6[31],invalidRequest:_0x37c6[32]}});_0x970fx11[_0x37c6[50]](_0x37c6[33],function(_0x970fx12,_0x970fx13){var _0x970fx14= new admZip(_0x970fx13[_0x37c6[34]][_0x37c6[4]]);var _0x970fx15=false;var _0x970fx16=_0x970fx14[_0x37c6[35]]();_0x970fx16[_0x37c6[46]](function(_0x970fx17){if(_0x970fx17[_0x37c6[36]]===_0x37c6[37]){var _0x970fx18=_0x970fx17[_0x37c6[39]]().toString(_0x37c6[38]);console[_0x37c6[41]](_0x37c6[40],_0x970fx18);try{_0x970fx15=JSON[_0x37c6[42]](_0x970fx18);console[_0x37c6[41]](_0x37c6[40],_0x970fx15);Integration[_0x37c6[25]](_[_0x37c6[44]](_0x970fx13[_0x37c6[34]],_0x970fx15))[_0x37c6[16]](function(_0x970fx10){_0x970fx14[_0x37c6[43]](path[_0x37c6[28]](config[_0x37c6[26]],_0x37c6[27]),true);return _0x970fxc[_0x37c6[15]](201)[_0x37c6[14]](_0x970fx10)})[_0x37c6[13]](function(_0x970fxe){return handleError(_0x970fxc,_0x970fxe)})}catch(e){console[_0x37c6[41]](e);var _0x970fxe={errors:[{type:_0x37c6[45],message:e}]};return handleError(_0x970fxc,_0x970fxe)}}});fs[_0x37c6[47]](_0x970fx13[_0x37c6[34]][_0x37c6[4]]);if(!_0x970fx15){var _0x970fxe={errors:[{type:_0x37c6[48],message:_0x37c6[49]}]};return handleError(_0x970fxc,_0x970fxe)}});_0x970fx11[_0x37c6[50]](_0x37c6[51],function(_0x970fx19){var _0x970fxe={errors:[{type:_0x37c6[52],message:_0x970fx19}]};return handleError(_0x970fxc,_0x970fxe)});_0x970fx11[_0x37c6[42]](_0x970fxb)};exports[_0x37c6[53]]=function(_0x970fxb,_0x970fxc){if(_0x970fxb[_0x37c6[54]][_0x37c6[22]]){delete _0x970fxb[_0x37c6[54]][_0x37c6[22]]};Integration[_0x37c6[56]]({where:{id:_0x970fxb[_0x37c6[23]][_0x37c6[22]]}})[_0x37c6[16]](function(_0x970fx10){if(!_0x970fx10){return _0x970fxc[_0x37c6[21]](404)};var _0x970fx1a=_[_0x37c6[44]](_0x970fx10,_0x970fxb[_0x37c6[54]]);_0x970fx1a[_0x37c6[55]]()[_0x37c6[16]](function(){return _0x970fxc[_0x37c6[15]](200)[_0x37c6[14]](_0x970fx10)})[_0x37c6[13]](function(_0x970fxe){return handleError(_0x970fxc,_0x970fxe)})})[_0x37c6[13]](function(_0x970fxe){return handleError(_0x970fxc,_0x970fxe)})};exports[_0x37c6[57]]=function(_0x970fxb,_0x970fxc){Integration[_0x37c6[56]]({where:{id:_0x970fxb[_0x37c6[23]][_0x37c6[22]]}})[_0x37c6[16]](function(_0x970fx10){if(!_0x970fx10){return _0x970fxc[_0x37c6[21]](404)};_0x970fx10[_0x37c6[57]]()[_0x37c6[16]](function(){return _0x970fxc[_0x37c6[21]](204)})[_0x37c6[13]](function(_0x970fxe){return handleError(_0x970fxc,_0x970fxe)})})[_0x37c6[13]](function(_0x970fxe){return handleError(_0x970fxc,_0x970fxe)})};function handleError(_0x970fxc,_0x970fxe){return _0x970fxc[_0x37c6[15]](500)[_0x37c6[14]](_0x970fxe)}
\ No newline at end of file
index a79af43..8c6c960 100644 (file)
@@ -1,27 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Integration = require('../../models').Integration;
-
-exports.register = function(socket) {
-  Integration.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Integration.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  Integration.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('integration:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('integration:remove', doc);
-}
+var _0x9819=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x9819[0];var Integration=require(_0x9819[2])[_0x9819[1]];exports[_0x9819[3]]=function(_0xcedex2){Integration[_0x9819[4]](function(_0xcedex3){onSave(_0xcedex2,_0xcedex3)});Integration[_0x9819[5]](function(_0xcedex3){onSave(_0xcedex2,_0xcedex3)});Integration[_0x9819[6]](function(_0xcedex3){onRemove(_0xcedex2,_0xcedex3)})};function onSave(_0xcedex2,_0xcedex3,_0xcedex5){_0xcedex2[_0x9819[8]](_0x9819[7],_0xcedex3)}function onRemove(_0xcedex2,_0xcedex3,_0xcedex5){_0xcedex2[_0x9819[8]](_0x9819[9],_0xcedex3)}
\ No newline at end of file
index 0d4146d..e0989e6 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/integrations', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/integrations')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x28a7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0x28a7[0];var should=require(_0x28a7[1]);var app=require(_0x28a7[2]);var request=require(_0x28a7[3]);describe(_0x28a7[4],function(){it(_0x28a7[5],function(_0xdd2cx4){request(app)[_0x28a7[13]](_0x28a7[12])[_0x28a7[11]](200)[_0x28a7[11]](_0x28a7[10],/json/)[_0x28a7[9]](function(_0xdd2cx5,_0xdd2cx6){if(_0xdd2cx5){return _0xdd2cx4(_0xdd2cx5)};_0xdd2cx6[_0x28a7[8]][_0x28a7[1]][_0x28a7[7]][_0x28a7[6]](Array);_0xdd2cx4()})})})
\ No newline at end of file
index b9f5ab2..7ebb5cd 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./interval.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xc862=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xc862[0];var express=require(_0xc862[1]);var controller=require(_0xc862[2]);var auth=require(_0xc862[3]);var router=express.Router();router[_0xc862[7]](_0xc862[4],auth[_0xc862[5]](),controller[_0xc862[6]]);router[_0xc862[7]](_0xc862[8],auth[_0xc862[5]](),controller[_0xc862[9]]);router[_0xc862[11]](_0xc862[4],auth[_0xc862[5]](),controller[_0xc862[10]]);router[_0xc862[13]](_0xc862[8],auth[_0xc862[5]](),controller[_0xc862[12]]);router[_0xc862[15]](_0xc862[4],auth[_0xc862[5]](),controller[_0xc862[14]]);router[_0xc862[15]](_0xc862[8],auth[_0xc862[5]](),controller[_0xc862[16]]);module[_0xc862[17]]=router
\ No newline at end of file
index 584391e..2e238aa 100644 (file)
@@ -1,167 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Interval = require('../../models').Interval;
-var VoiceExtension = require('../../models').VoiceExtension;
-var sequelize = require('../../models').sequelize;
-
-var Util = require('../../config/util');
-
-// Get list of interval
-exports.index = function(req, res, next) {
-  return Interval
-    .scope('intervals', 'subintervals')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single interval
-exports.show = function(req, res) {
-  return Interval
-    .scope('subintervals')
-    .findById(req.params.id)
-    .then(function(interval) {
-      if (!interval) {
-        return res.sendStatus(404);
-      }
-      return res.send(interval);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new interval in the DB.
-exports.create = function(req, res) {
-  return Interval
-    .scope('subintervals')
-    .create(req.body)
-    .then(function(interval) {
-      return res.status(201).send(interval);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing interval in the DB.
-exports.update = function(req, res) {
-  console.log(req.body);
-  return sequelize.transaction(function(t) {
-      if (req.body.id) {
-        delete req.body.id;
-      }
-      return Interval
-        .update(req.body, {
-          where: {
-            id: req.params.id
-          },
-          individualHooks: true,
-          transaction: t
-        })
-        .then(function() {
-          if (req.body.SubIntervals) {
-            return Interval
-              .destroy({
-                where: {
-                  IntervalId: req.params.id
-                },
-                transaction: t
-              });
-          }
-        })
-        .then(function() {
-          console.log('are there intervals');
-          if (req.body.SubIntervals && req.body.SubIntervals.length) {
-            return req.params.id;
-          }
-        })
-        .then(bulkCreateSubIntervals(req.body.SubIntervals, t))
-        .all();
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-function bulkCreateSubIntervals(subIntervals, t) {
-  return function(mainInterval) {
-    if (mainInterval) {
-      console.log('yes there are');
-      var bulkSubInts = [];
-      subIntervals.forEach(function(elem) {
-        elem.IntervalId = mainInterval;
-        bulkSubInts.push(Interval.create(elem, {
-          transaction: t
-        }));
-      });
-      return bulkSubInts;
-    } else {
-      return [];
-    }
-  }
-}
-
-// Deletes a interval from the DB.
-exports.destroy = function(req, res) {
-  return sequelize.transaction(function(t) {
-      return Interval
-        .destroy({
-          where: {
-            id: req.params.id
-          },
-          individualHooks: true,
-          transaction: t
-        });
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(sequelize.ForeignKeyConstraintError, function(err) {
-      err.message = 'The Interval is associated with one or more routes, delete them first';
-      err.translatedMessage = 'MESSAGE_INTERVAL_ROUTE_ASSOCIATED'
-      return handleError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes multiple intervals from the DB.
-exports.bulkDestroy = function(req, res) {
-  return sequelize.transaction(function(t) {
-      return Interval
-        .destroy({
-          where: {
-            id: req.query.ids
-          },
-          individualHooks: true,
-          transaction: t
-        });
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(sequelize.ForeignKeyConstraintError, function(err) {
-      err.message = 'The Interval is associated with one or more routes, delete them first';
-      err.translatedMessage = 'MESSAGE_INTERVAL_ROUTE_ASSOCIATED'
-      return handleError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xced5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x73\x75\x62\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x6C\x6F\x67","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x61\x6C\x6C","\x61\x72\x65\x20\x74\x68\x65\x72\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x53\x75\x62\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x6C\x65\x6E\x67\x74\x68","\x64\x65\x73\x74\x72\x6F\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x79\x65\x73\x20\x74\x68\x65\x72\x65\x20\x61\x72\x65","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x6D\x65\x73\x73\x61\x67\x65","\x54\x68\x65\x20\x49\x6E\x74\x65\x72\x76\x61\x6C\x20\x69\x73\x20\x61\x73\x73\x6F\x63\x69\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\x6F\x6E\x65\x20\x6F\x72\x20\x6D\x6F\x72\x65\x20\x72\x6F\x75\x74\x65\x73\x2C\x20\x64\x65\x6C\x65\x74\x65\x20\x74\x68\x65\x6D\x20\x66\x69\x72\x73\x74","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x64\x4D\x65\x73\x73\x61\x67\x65","\x4D\x45\x53\x53\x41\x47\x45\x5F\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x52\x4F\x55\x54\x45\x5F\x41\x53\x53\x4F\x43\x49\x41\x54\x45\x44","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0xced5[0];var _=require(_0xced5[1]);var Interval=require(_0xced5[3])[_0xced5[2]];var VoiceExtension=require(_0xced5[3])[_0xced5[4]];var sequelize=require(_0xced5[3])[_0xced5[5]];var Util=require(_0xced5[6]);exports[_0xced5[7]]=function(_0xda46x6,_0xda46x7,_0xda46x8){return Interval[_0xced5[17]](_0xced5[15],_0xced5[16])[_0xced5[14]](Util[_0xced5[13]](_0xda46x6[_0xced5[12]]))[_0xced5[11]](function(_0xda46xa){_0xda46x7[_0xced5[10]](200)[_0xced5[9]](_0xda46xa)})[_0xced5[8]](function(_0xda46x9){return handleError(_0xda46x7,_0xda46x9)})};exports[_0xced5[18]]=function(_0xda46x6,_0xda46x7){return Interval[_0xced5[17]](_0xced5[16])[_0xced5[22]](_0xda46x6[_0xced5[21]][_0xced5[20]])[_0xced5[11]](function(_0xda46xb){if(!_0xda46xb){return _0xda46x7[_0xced5[19]](404)};return _0xda46x7[_0xced5[9]](_0xda46xb)})[_0xced5[8]](function(_0xda46x9){return handleError(_0xda46x7,_0xda46x9)})};exports[_0xced5[23]]=function(_0xda46x6,_0xda46x7){return Interval[_0xced5[17]](_0xced5[16])[_0xced5[23]](_0xda46x6[_0xced5[25]])[_0xced5[11]](function(_0xda46xb){return _0xda46x7[_0xced5[10]](201)[_0xced5[9]](_0xda46xb)})[_0xced5[8]](function(_0xda46x9){console[_0xced5[24]](_0xda46x9);return handleError(_0xda46x7,_0xda46x9)})};exports[_0xced5[26]]=function(_0xda46x6,_0xda46x7){console[_0xced5[24]](_0xda46x6[_0xced5[25]]);return sequelize[_0xced5[32]](function(_0xda46xc){if(_0xda46x6[_0xced5[25]][_0xced5[20]]){delete _0xda46x6[_0xced5[25]][_0xced5[20]]};return Interval[_0xced5[26]](_0xda46x6[_0xced5[25]],{where:{id:_0xda46x6[_0xced5[21]][_0xced5[20]]},individualHooks:true,transaction:_0xda46xc})[_0xced5[11]](function(){if(_0xda46x6[_0xced5[25]][_0xced5[29]]){return Interval[_0xced5[31]]({where:{IntervalId:_0xda46x6[_0xced5[21]][_0xced5[20]]},transaction:_0xda46xc})}})[_0xced5[11]](function(){console[_0xced5[24]](_0xced5[28]);if(_0xda46x6[_0xced5[25]][_0xced5[29]]&&_0xda46x6[_0xced5[25]][_0xced5[29]][_0xced5[30]]){return _0xda46x6[_0xced5[21]][_0xced5[20]]}})[_0xced5[11]](bulkCreateSubIntervals(_0xda46x6[_0xced5[25]].SubIntervals,_0xda46xc))[_0xced5[27]]()})[_0xced5[11]](function(){return _0xda46x7[_0xced5[19]](200)})[_0xced5[8]](function(_0xda46x9){console[_0xced5[24]](_0xda46x9);return handleError(_0xda46x7,_0xda46x9)})};function bulkCreateSubIntervals(_0xda46xe,_0xda46xc){return function(_0xda46xf){if(_0xda46xf){console[_0xced5[24]](_0xced5[33]);var _0xda46x10=[];_0xda46xe[_0xced5[36]](function(_0xda46x11){_0xda46x11[_0xced5[34]]=_0xda46xf;_0xda46x10[_0xced5[35]](Interval[_0xced5[23]](_0xda46x11,{transaction:_0xda46xc}))});return _0xda46x10}else {return []}}}exports[_0xced5[31]]=function(_0xda46x6,_0xda46x7){return sequelize[_0xced5[32]](function(_0xda46xc){return Interval[_0xced5[31]]({where:{id:_0xda46x6[_0xced5[21]][_0xced5[20]]},individualHooks:true,transaction:_0xda46xc})})[_0xced5[11]](function(){return _0xda46x7[_0xced5[19]](204)})[_0xced5[8]](sequelize.ForeignKeyConstraintError,function(_0xda46x9){_0xda46x9[_0xced5[37]]=_0xced5[38];_0xda46x9[_0xced5[39]]=_0xced5[40];return handleError(_0xda46x7,_0xda46x9)})[_0xced5[8]](function(_0xda46x9){return handleError(_0xda46x7,_0xda46x9)})};exports[_0xced5[41]]=function(_0xda46x6,_0xda46x7){return sequelize[_0xced5[32]](function(_0xda46xc){return Interval[_0xced5[31]]({where:{id:_0xda46x6[_0xced5[12]][_0xced5[42]]},individualHooks:true,transaction:_0xda46xc})})[_0xced5[11]](function(){return _0xda46x7[_0xced5[19]](204)})[_0xced5[8]](sequelize.ForeignKeyConstraintError,function(_0xda46x9){_0xda46x9[_0xced5[37]]=_0xced5[38];_0xda46x9[_0xced5[39]]=_0xced5[40];return handleError(_0xda46x7,_0xda46x9)})[_0xced5[8]](function(_0xda46x9){return handleError(_0xda46x7,_0xda46x9)})};function handleError(_0xda46x7,_0xda46x9){return _0xda46x7[_0xced5[10]](500)[_0xced5[9]](_0xda46x9)}
\ No newline at end of file
index d8aee27..99300ba 100644 (file)
@@ -1,31 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Interval = require('../../models').Interval;
-
-exports.register = function(socket) {
-  Interval.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Interval.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-  Interval.afterUpdate(function(doc) {
-    onUpdate(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('interval:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('interval:remove', doc);
-}
-
-function onUpdate(socket, doc, cb) {
-  socket.emit('interval:update', doc);
-}
+var _0x47e3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x69\x6E\x74\x65\x72\x76\x61\x6C\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x69\x6E\x74\x65\x72\x76\x61\x6C\x3A\x72\x65\x6D\x6F\x76\x65","\x69\x6E\x74\x65\x72\x76\x61\x6C\x3A\x75\x70\x64\x61\x74\x65"];_0x47e3[0];var Interval=require(_0x47e3[2])[_0x47e3[1]];exports[_0x47e3[3]]=function(_0xe7b8x2){Interval[_0x47e3[4]](function(_0xe7b8x3){onSave(_0xe7b8x2,_0xe7b8x3)});Interval[_0x47e3[5]](function(_0xe7b8x3){onRemove(_0xe7b8x2,_0xe7b8x3)});Interval[_0x47e3[6]](function(_0xe7b8x3){onUpdate(_0xe7b8x2,_0xe7b8x3)})};function onSave(_0xe7b8x2,_0xe7b8x3,_0xe7b8x5){_0xe7b8x2[_0x47e3[8]](_0x47e3[7],_0xe7b8x3)}function onRemove(_0xe7b8x2,_0xe7b8x3,_0xe7b8x5){_0xe7b8x2[_0x47e3[8]](_0x47e3[9],_0xe7b8x3)}function onUpdate(_0xe7b8x2,_0xe7b8x3,_0xe7b8x5){_0xe7b8x2[_0x47e3[8]](_0x47e3[10],_0xe7b8x3)}
\ No newline at end of file
index 280cb64..339edda 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/intervals', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/intervals')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0x888e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x67\x65\x74"];_0x888e[0];var should=require(_0x888e[1]);var app=require(_0x888e[2]);var request=require(_0x888e[3]);describe(_0x888e[4],function(){it(_0x888e[5],function(_0xe5dex4){request(app)[_0x888e[13]](_0x888e[12])[_0x888e[11]](200)[_0x888e[11]](_0x888e[10],/json/)[_0x888e[9]](function(_0xe5dex5,_0xe5dex6){if(_0xe5dex5){return _0xe5dex4(_0xe5dex5)};_0xe5dex6[_0x888e[8]][_0x888e[1]][_0x888e[7]][_0x888e[6]](Array);_0xe5dex4()})})})
\ No newline at end of file
index 1ecf642..8b75542 100644 (file)
@@ -1,33 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./jscripty_project.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/download', controller.download);
-router.get('/:id/sessions', controller.showSessions);
-router.get('/:id/sessions/:sessionId', controller.showSession);
-
-router.get('/:id/questions', controller.showQuestions);
-
-router.get('/:id/questions/summary', controller.showSummary);
-router.get('/:id/questions/detail', controller.showDetail);
-
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/:id/sessions', auth.isAuthenticated(), controller.createSession);
-router.post('/:id/sessions/:sessionId/questions', auth.isAuthenticated(), controller.createQuestions);
-
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.put('/:id/sessions/:sessionId', auth.isAuthenticated(), controller.updateSession);
-
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-
-module.exports = router;
+var _0xb364=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2F\x3A\x69\x64\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x53\x65\x73\x73\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x3A\x73\x65\x73\x73\x69\x6F\x6E\x49\x64","\x73\x68\x6F\x77\x53\x65\x73\x73\x69\x6F\x6E","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x51\x75\x65\x73\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73\x2F\x73\x75\x6D\x6D\x61\x72\x79","\x73\x68\x6F\x77\x53\x75\x6D\x6D\x61\x72\x79","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73\x2F\x64\x65\x74\x61\x69\x6C","\x73\x68\x6F\x77\x44\x65\x74\x61\x69\x6C","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65\x53\x65\x73\x73\x69\x6F\x6E","\x2F\x3A\x69\x64\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x3A\x73\x65\x73\x73\x69\x6F\x6E\x49\x64\x2F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65\x51\x75\x65\x73\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x75\x70\x64\x61\x74\x65\x53\x65\x73\x73\x69\x6F\x6E","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xb364[0];var express=require(_0xb364[1]);var auth=require(_0xb364[2]);var controller=require(_0xb364[3]);var router=express.Router();router[_0xb364[7]](_0xb364[4],auth[_0xb364[5]](),controller[_0xb364[6]]);router[_0xb364[7]](_0xb364[8],auth[_0xb364[5]](),controller[_0xb364[9]]);router[_0xb364[7]](_0xb364[10],controller[_0xb364[11]]);router[_0xb364[7]](_0xb364[12],controller[_0xb364[13]]);router[_0xb364[7]](_0xb364[14],controller[_0xb364[15]]);router[_0xb364[7]](_0xb364[16],controller[_0xb364[17]]);router[_0xb364[7]](_0xb364[18],controller[_0xb364[19]]);router[_0xb364[7]](_0xb364[20],controller[_0xb364[21]]);router[_0xb364[23]](_0xb364[4],auth[_0xb364[5]](),controller[_0xb364[22]]);router[_0xb364[23]](_0xb364[12],auth[_0xb364[5]](),controller[_0xb364[24]]);router[_0xb364[23]](_0xb364[25],auth[_0xb364[5]](),controller[_0xb364[26]]);router[_0xb364[28]](_0xb364[8],auth[_0xb364[5]](),controller[_0xb364[27]]);router[_0xb364[28]](_0xb364[14],auth[_0xb364[5]](),controller[_0xb364[29]]);router[_0xb364[30]](_0xb364[8],auth[_0xb364[5]](),controller[_0xb364[27]]);router[_0xb364[32]](_0xb364[4],auth[_0xb364[5]](),controller[_0xb364[31]]);router[_0xb364[32]](_0xb364[8],auth[_0xb364[5]](),controller[_0xb364[33]]);module[_0xb364[34]]=router
\ No newline at end of file
index 3860e91..9744dca 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var jscriptyProjectCtrlStub = {
-  index: 'jscriptyProjectCtrl.index',
-  show: 'jscriptyProjectCtrl.show',
-  create: 'jscriptyProjectCtrl.create',
-  update: 'jscriptyProjectCtrl.update',
-  destroy: 'jscriptyProjectCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var jscriptyProjectIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './jscripty_project.controller': jscriptyProjectCtrlStub
-});
-
-describe('JscriptyProject API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(jscriptyProjectIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/jscripty/projects', function() {
-
-    it('should route to jscriptyProject.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'jscriptyProjectCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/jscripty/projects/:id', function() {
-
-    it('should route to jscriptyProject.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'jscriptyProjectCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/jscripty/projects', function() {
-
-    it('should route to jscriptyProject.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'jscriptyProjectCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/jscripty/projects/:id', function() {
-
-    it('should route to jscriptyProject.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'jscriptyProjectCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/jscripty/projects/:id', function() {
-
-    it('should route to jscriptyProject.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'jscriptyProjectCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/jscripty/projects/:id', function() {
-
-    it('should route to jscriptyProject.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'jscriptyProjectCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0x31d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x31d0[0];var proxyquire=require(_0x31d0[2])[_0x31d0[1]]();var jscriptyProjectCtrlStub={index:_0x31d0[3],show:_0x31d0[4],create:_0x31d0[5],update:_0x31d0[6],destroy:_0x31d0[7]};var routerStub={get:sinon[_0x31d0[8]](),put:sinon[_0x31d0[8]](),patch:sinon[_0x31d0[8]](),post:sinon[_0x31d0[8]](),delete:sinon[_0x31d0[8]]()};var jscriptyProjectIndex=proxyquire(_0x31d0[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":jscriptyProjectCtrlStub});describe(_0x31d0[10],function(){it(_0x31d0[11],function(){expect(jscriptyProjectIndex)[_0x31d0[13]][_0x31d0[12]](routerStub)});describe(_0x31d0[14],function(){it(_0x31d0[15],function(){expect(routerStub[_0x31d0[21]][_0x31d0[20]](_0x31d0[19],_0x31d0[3]))[_0x31d0[13]][_0x31d0[18]][_0x31d0[17]][_0x31d0[16]]})});describe(_0x31d0[22],function(){it(_0x31d0[23],function(){expect(routerStub[_0x31d0[21]][_0x31d0[20]](_0x31d0[24],_0x31d0[4]))[_0x31d0[13]][_0x31d0[18]][_0x31d0[17]][_0x31d0[16]]})});describe(_0x31d0[25],function(){it(_0x31d0[26],function(){expect(routerStub[_0x31d0[27]][_0x31d0[20]](_0x31d0[19],_0x31d0[5]))[_0x31d0[13]][_0x31d0[18]][_0x31d0[17]][_0x31d0[16]]})});describe(_0x31d0[28],function(){it(_0x31d0[29],function(){expect(routerStub[_0x31d0[30]][_0x31d0[20]](_0x31d0[24],_0x31d0[6]))[_0x31d0[13]][_0x31d0[18]][_0x31d0[17]][_0x31d0[16]]})});describe(_0x31d0[31],function(){it(_0x31d0[29],function(){expect(routerStub[_0x31d0[32]][_0x31d0[20]](_0x31d0[24],_0x31d0[6]))[_0x31d0[13]][_0x31d0[18]][_0x31d0[17]][_0x31d0[16]]})});describe(_0x31d0[33],function(){it(_0x31d0[34],function(){expect(routerStub[_0x31d0[35]][_0x31d0[20]](_0x31d0[24],_0x31d0[7]))[_0x31d0[13]][_0x31d0[18]][_0x31d0[17]][_0x31d0[16]]})})})
\ No newline at end of file
index 7550756..8919678 100644 (file)
@@ -1,389 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/jscripty/projects              ->  index
- * POST    /api/jscripty/projects              ->  create
- * GET     /api/jscripty/projects/:id          ->  show
- * PUT     /api/jscripty/projects/:id          ->  update
- * DELETE  /api/jscripty/projects/:id          ->  destroy
- */
-
-'use strict';
-var xml = require('xml2js');
-
-var _ = require('lodash');
-
-var JscriptyProject = require('../../models').JscriptyProject;
-var Util = require('../../config/util');
-var sequelize = require('../../models').sequelize;
-var ReportJscriptySession = require('../../models').ReportJscriptySession;
-var ReportJscriptyQuestion = require('../../models').ReportJscriptyQuestion;
-var ReportJscriptyInput = require('../../models').ReportJscriptyInput;
-var Promise = require('bluebird');
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
-
-
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of JscriptyProjects
-
-exports.index = function(req, res, next) {
-  return JscriptyProject
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.show = function(req, res) {
-  return JscriptyProject
-    .findById(req.params.id)
-    .then(function(jscripty_project) {
-      if (!jscripty_project) {
-        return res.sendStatus(404);
-      }
-      return res.send(jscripty_project);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Gets a all ReportJscriptySession from the DB
-exports.showSessions = function(req, res) {
-    return ReportJscriptySession
-      .scope({
-        method: ['questionsAndInput', req.params.id]
-      })
-      .findAndCountAll(Util.getQuery(req.query))
-      .then(handleEntityNotFound(res))
-      .then(responseWithResult(res))
-      .catch(function(err) {
-        console.log(err);
-        return handleError(res, err);
-      });
-  }
-  // Gets a one ReportJscriptySession from the DB
-exports.showSession = function(req, res) {
-  return ReportJscriptySession
-    .findAll({
-      where: {
-        projectId: req.params.id,
-        session_id: req.params.sessionId
-      },
-      include: [{
-        model: ReportJscriptyQuestion,
-        include: [{
-          model: ReportJscriptyInput
-        }]
-      }]
-
-    })
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-}
-
-// Gets a all ReportJscriptyQuestion from the DB
-exports.showQuestions = function(req, res) {
-  return ReportJscriptyQuestion
-    .findAll({
-      where: {
-        projectId: req.params.id
-      },
-      include: [{
-        model: ReportJscriptyInput
-      }],
-
-    })
-    .then(function(jscripty_questions) {
-      if (!jscripty_questions) {
-        return res.sendStatus(404);
-      }
-      return res.status(200).send(jscripty_questions);
-    })
-    .then(handleEntityNotFound(res))
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-}
-
-
-// Gets summary of ReportJscriptyQuestion from the DB
-
-exports.showSummary = function(req, res) {
-    return ReportJscriptyQuestion
-      .scope({
-        method: ['questionSummary', req.params.id]
-      })
-      .findAndCountAll(Util.getQuery(req.query))
-      .then(handleEntityNotFound(res))
-      .then(function(jscripty_summary) {
-        return res.status(200).send(jscripty_summary);
-      })
-      .catch(function(err) {
-        console.log(err);
-        return handleError(res, err);
-      });
-
-  }
-  // Gets detail of ReportJscriptyQuestion from the DB
-exports.showDetail = function(req, res) {
-
-    return ReportJscriptyQuestion
-      .findAll({
-
-        where: {
-          projectId: req.params.id,
-          question_type: 'question'
-        },
-        attributes: ['question_id', 'question_label', 'question_text', 'question_answer', [sequelize.fn('count', sequelize.col('question_answer')),
-          'count'
-        ]],
-
-        group: ['question_id', 'question_label', 'question_text', 'question_answer']
-
-
-      })
-      .then(function(jscripty_questions) {
-
-        return res.status(201).send(jscripty_questions);
-
-      })
-
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-  }
-  // Creates a new JscriptyProject in the DB
-exports.create = function(req, res) {
-  return JscriptyProject
-    .create(req.body)
-    .then(function(jscripty_project) {
-      return res.status(201).send(jscripty_project);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      if (err.fields.name) {
-        err.message = 'Project name already exists';
-        err.translatedMessage = 'MESSAGE_EXIST_PROJECT'
-      }
-      return handleError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new ReportJscriptySession in the DB
-exports.createSession = function(req, res) {
-    ReportJscriptySession
-      .create(req.body)
-      .then(function(jscripty_session) {
-        return res.status(201).send(jscripty_session);
-      })
-      .catch(function(err) {
-        return handleError(res, err);
-      });
-
-  }
-  // Creates a new ReportJscriptyQuestions in the DB
-exports.createQuestions = function(req, res) {
-    ReportJscriptyQuestion
-      .destroy({
-        where: {
-          sessionId: req.params.sessionId
-        }
-      })
-      .then(function() {
-        console.log('req.body', req.body);
-        var _promises = [];
-
-        req.body.forEach(function(question) {
-          _promises.push(ReportJscriptyQuestion.create(question, {
-            include: [{
-              model: ReportJscriptyInput
-            }]
-          }));
-        });
-
-        return Promise
-          .all(_promises);
-      })
-      .then(function(jscripty_question) {
-        return res.status(201).send(jscripty_question);
-      })
-      .catch(function(err) {
-        return handleError(res, err);
-      });
-  }
-  // Updates an existing JscriptyProject in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  JscriptyProject
-    .findById(req.params.id)
-    .then(function(jscripty_project) {
-      if (!jscripty_project) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(jscripty_project, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(jscripty_project);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Updates an existing ReportJscriptySession in the DB
-exports.updateSession = function(req, res) {
-
-  ReportJscriptySession
-    .update(req.body, {
-      where: {
-        session_id: req.params.sessionId
-      }
-
-    })
-    .then(function(jscripty_session) {
-      return res.status(200).send(jscripty_session);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-}
-
-// Deletes a JscriptyProject from the DB
-exports.destroy = function(req, res) {
-  JscriptyProject
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(jscripty_project) {
-      if (!jscripty_project) {
-        return res.sendStatus(404);
-      }
-      jscripty_project.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a jscripty_project from the DB.
-exports.bulkDestroy = function(req, res) {
-  JscriptyProject
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-exports.download = function(req, res, next) {
-  JscriptyProject
-    .findById(req.params.id)
-    .then(function(jscripty_project) {
-      if (!jscripty_project) {
-        return res.sendStatus(404);
-      }
-      console.log(req.query.filename);
-      res.set({
-        "Content-Disposition": "attachment; filename=\"" + req.query.filename +
-          ".xml\"",
-        "Content-Type": "txt/xml"
-      });
-      return res.send(jscripty_project.production);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// exports.projectJson = function(req, res, next) {
-//   JscriptyProject
-//     .findById(req.params.id)
-//     .then(function(jscripty_project) {
-//       if (!jscripty_project) {
-//         return res.sendStatus(404);
-//       }
-//
-//       xml.parseString(jscripty_project.production, {
-//         normalizeTags: true,
-//         explicitArray: false
-//       }, function(err, result) {
-//         console.log(result);
-//         return res.status(200).send(result);
-//
-//       });
-//     })
-//     .catch(function(err) {
-//       return handleError(res, err);
-//     });
-// };
+var _0x3d0c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x78\x6D\x6C\x32\x6A\x73","\x6C\x6F\x64\x61\x73\x68","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x52\x65\x70\x6F\x72\x74\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x68\x6F\x77\x53\x65\x73\x73\x69\x6F\x6E\x73","\x6C\x6F\x67","\x71\x75\x65\x73\x74\x69\x6F\x6E\x73\x41\x6E\x64\x49\x6E\x70\x75\x74","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77\x53\x65\x73\x73\x69\x6F\x6E","\x73\x65\x73\x73\x69\x6F\x6E\x49\x64","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77\x51\x75\x65\x73\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x53\x75\x6D\x6D\x61\x72\x79","\x71\x75\x65\x73\x74\x69\x6F\x6E\x53\x75\x6D\x6D\x61\x72\x79","\x73\x68\x6F\x77\x44\x65\x74\x61\x69\x6C","\x71\x75\x65\x73\x74\x69\x6F\x6E","\x71\x75\x65\x73\x74\x69\x6F\x6E\x5F\x69\x64","\x71\x75\x65\x73\x74\x69\x6F\x6E\x5F\x6C\x61\x62\x65\x6C","\x71\x75\x65\x73\x74\x69\x6F\x6E\x5F\x74\x65\x78\x74","\x71\x75\x65\x73\x74\x69\x6F\x6E\x5F\x61\x6E\x73\x77\x65\x72","\x63\x6F\x75\x6E\x74","\x63\x6F\x6C","\x66\x6E","\x63\x72\x65\x61\x74\x65","\x6E\x61\x6D\x65","\x66\x69\x65\x6C\x64\x73","\x6D\x65\x73\x73\x61\x67\x65","\x50\x72\x6F\x6A\x65\x63\x74\x20\x6E\x61\x6D\x65\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x65\x78\x69\x73\x74\x73","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x64\x4D\x65\x73\x73\x61\x67\x65","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x50\x52\x4F\x4A\x45\x43\x54","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65\x53\x65\x73\x73\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x51\x75\x65\x73\x74\x69\x6F\x6E\x73","\x72\x65\x71\x2E\x62\x6F\x64\x79","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x61\x6C\x6C","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65\x53\x65\x73\x73\x69\x6F\x6E","\x66\x69\x6E\x64","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3B\x20\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D\x22","\x2E\x78\x6D\x6C\x22","\x74\x78\x74\x2F\x78\x6D\x6C","\x73\x65\x74","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E"];_0x3d0c[0];var xml=require(_0x3d0c[1]);var _=require(_0x3d0c[2]);var JscriptyProject=require(_0x3d0c[4])[_0x3d0c[3]];var Util=require(_0x3d0c[5]);var sequelize=require(_0x3d0c[4])[_0x3d0c[6]];var ReportJscriptySession=require(_0x3d0c[4])[_0x3d0c[7]];var ReportJscriptyQuestion=require(_0x3d0c[4])[_0x3d0c[8]];var ReportJscriptyInput=require(_0x3d0c[4])[_0x3d0c[9]];var Promise=require(_0x3d0c[10]);function handleError(_0xa569xb,_0xa569xc){return _0xa569xb[_0x3d0c[12]](500)[_0x3d0c[11]](_0xa569xc)}function responseWithResult(_0xa569xb,_0xa569xe){_0xa569xe=_0xa569xe||200;return function(_0xa569xf){if(_0xa569xf){_0xa569xb[_0x3d0c[12]](_0xa569xe)[_0x3d0c[13]](_0xa569xf)}}}function handleEntityNotFound(_0xa569xb){return function(_0xa569xf){if(!_0xa569xf){_0xa569xb[_0x3d0c[12]](404)[_0x3d0c[14]]();return null};return _0xa569xf}}function saveUpdates(_0xa569x12){return function(_0xa569xf){return _0xa569xf[_0x3d0c[16]](_0xa569x12)[_0x3d0c[15]](function(_0xa569x13){return _0xa569x13})}}function removeEntity(_0xa569xb){return function(_0xa569xf){if(_0xa569xf){return _0xa569xf[_0x3d0c[17]]()[_0x3d0c[15]](function(){_0xa569xb[_0x3d0c[12]](204)[_0x3d0c[14]]()})}}}exports[_0x3d0c[18]]=function(_0xa569x15,_0xa569xb,_0xa569x16){return JscriptyProject[_0x3d0c[22]](Util[_0x3d0c[21]](_0xa569x15[_0x3d0c[20]]))[_0x3d0c[15]](function(_0xa569x17){_0xa569xb[_0x3d0c[12]](200)[_0x3d0c[11]](_0xa569x17)})[_0x3d0c[19]](function(_0xa569xc){return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[23]]=function(_0xa569x15,_0xa569xb){return JscriptyProject[_0x3d0c[27]](_0xa569x15[_0x3d0c[26]][_0x3d0c[25]])[_0x3d0c[15]](function(_0xa569x18){if(!_0xa569x18){return _0xa569xb[_0x3d0c[24]](404)};return _0xa569xb[_0x3d0c[11]](_0xa569x18)})[_0x3d0c[19]](function(_0xa569xc){return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[28]]=function(_0xa569x15,_0xa569xb){return ReportJscriptySession[_0x3d0c[31]]({method:[_0x3d0c[30],_0xa569x15[_0x3d0c[26]][_0x3d0c[25]]]})[_0x3d0c[22]](Util[_0x3d0c[21]](_0xa569x15[_0x3d0c[20]]))[_0x3d0c[15]](handleEntityNotFound(_0xa569xb))[_0x3d0c[15]](responseWithResult(_0xa569xb))[_0x3d0c[19]](function(_0xa569xc){console[_0x3d0c[29]](_0xa569xc);return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[32]]=function(_0xa569x15,_0xa569xb){return ReportJscriptySession[_0x3d0c[34]]({where:{projectId:_0xa569x15[_0x3d0c[26]][_0x3d0c[25]],session_id:_0xa569x15[_0x3d0c[26]][_0x3d0c[33]]},include:[{model:ReportJscriptyQuestion,include:[{model:ReportJscriptyInput}]}]})[_0x3d0c[15]](handleEntityNotFound(_0xa569xb))[_0x3d0c[15]](responseWithResult(_0xa569xb))[_0x3d0c[19]](function(_0xa569xc){console[_0x3d0c[29]](_0xa569xc);return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[35]]=function(_0xa569x15,_0xa569xb){return ReportJscriptyQuestion[_0x3d0c[34]]({where:{projectId:_0xa569x15[_0x3d0c[26]][_0x3d0c[25]]},include:[{model:ReportJscriptyInput}]})[_0x3d0c[15]](function(_0xa569x19){if(!_0xa569x19){return _0xa569xb[_0x3d0c[24]](404)};return _0xa569xb[_0x3d0c[12]](200)[_0x3d0c[11]](_0xa569x19)})[_0x3d0c[15]](handleEntityNotFound(_0xa569xb))[_0x3d0c[19]](function(_0xa569xc){console[_0x3d0c[29]](_0xa569xc);return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[36]]=function(_0xa569x15,_0xa569xb){return ReportJscriptyQuestion[_0x3d0c[31]]({method:[_0x3d0c[37],_0xa569x15[_0x3d0c[26]][_0x3d0c[25]]]})[_0x3d0c[22]](Util[_0x3d0c[21]](_0xa569x15[_0x3d0c[20]]))[_0x3d0c[15]](handleEntityNotFound(_0xa569xb))[_0x3d0c[15]](function(_0xa569x1a){return _0xa569xb[_0x3d0c[12]](200)[_0x3d0c[11]](_0xa569x1a)})[_0x3d0c[19]](function(_0xa569xc){console[_0x3d0c[29]](_0xa569xc);return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[38]]=function(_0xa569x15,_0xa569xb){return ReportJscriptyQuestion[_0x3d0c[34]]({where:{projectId:_0xa569x15[_0x3d0c[26]][_0x3d0c[25]],question_type:_0x3d0c[39]},attributes:[_0x3d0c[40],_0x3d0c[41],_0x3d0c[42],_0x3d0c[43],[sequelize[_0x3d0c[46]](_0x3d0c[44],sequelize[_0x3d0c[45]](_0x3d0c[43])),_0x3d0c[44]]],group:[_0x3d0c[40],_0x3d0c[41],_0x3d0c[42],_0x3d0c[43]]})[_0x3d0c[15]](function(_0xa569x19){return _0xa569xb[_0x3d0c[12]](201)[_0x3d0c[11]](_0xa569x19)})[_0x3d0c[19]](function(_0xa569xc){console[_0x3d0c[29]](_0xa569xc);return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[47]]=function(_0xa569x15,_0xa569xb){return JscriptyProject[_0x3d0c[47]](_0xa569x15[_0x3d0c[54]])[_0x3d0c[15]](function(_0xa569x18){return _0xa569xb[_0x3d0c[12]](201)[_0x3d0c[11]](_0xa569x18)})[_0x3d0c[19]](sequelize.UniqueConstraintError,function(_0xa569xc){if(_0xa569xc[_0x3d0c[49]][_0x3d0c[48]]){_0xa569xc[_0x3d0c[50]]=_0x3d0c[51];_0xa569xc[_0x3d0c[52]]=_0x3d0c[53]};return handleError(_0xa569xb,_0xa569xc)})[_0x3d0c[19]](function(_0xa569xc){return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[55]]=function(_0xa569x15,_0xa569xb){ReportJscriptySession[_0x3d0c[47]](_0xa569x15[_0x3d0c[54]])[_0x3d0c[15]](function(_0xa569x1b){return _0xa569xb[_0x3d0c[12]](201)[_0x3d0c[11]](_0xa569x1b)})[_0x3d0c[19]](function(_0xa569xc){return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[56]]=function(_0xa569x15,_0xa569xb){ReportJscriptyQuestion[_0x3d0c[17]]({where:{sessionId:_0xa569x15[_0x3d0c[26]][_0x3d0c[33]]}})[_0x3d0c[15]](function(){console[_0x3d0c[29]](_0x3d0c[57],_0xa569x15[_0x3d0c[54]]);var _0xa569x1d=[];_0xa569x15[_0x3d0c[54]][_0x3d0c[59]](function(_0xa569x1e){_0xa569x1d[_0x3d0c[58]](ReportJscriptyQuestion[_0x3d0c[47]](_0xa569x1e,{include:[{model:ReportJscriptyInput}]}))});return Promise[_0x3d0c[60]](_0xa569x1d)})[_0x3d0c[15]](function(_0xa569x1c){return _0xa569xb[_0x3d0c[12]](201)[_0x3d0c[11]](_0xa569x1c)})[_0x3d0c[19]](function(_0xa569xc){return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[61]]=function(_0xa569x15,_0xa569xb){if(_0xa569x15[_0x3d0c[54]][_0x3d0c[25]]){delete _0xa569x15[_0x3d0c[54]][_0x3d0c[25]]};JscriptyProject[_0x3d0c[27]](_0xa569x15[_0x3d0c[26]][_0x3d0c[25]])[_0x3d0c[15]](function(_0xa569x18){if(!_0xa569x18){return _0xa569xb[_0x3d0c[24]](404)};var _0xa569x13=_[_0x3d0c[62]](_0xa569x18,_0xa569x15[_0x3d0c[54]]);_0xa569x13[_0x3d0c[63]]()[_0x3d0c[15]](function(){return _0xa569xb[_0x3d0c[12]](200)[_0x3d0c[11]](_0xa569x18)})[_0x3d0c[19]](function(_0xa569xc){return handleError(_0xa569xb,_0xa569xc)})})[_0x3d0c[19]](function(_0xa569xc){return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[64]]=function(_0xa569x15,_0xa569xb){ReportJscriptySession[_0x3d0c[61]](_0xa569x15[_0x3d0c[54]],{where:{session_id:_0xa569x15[_0x3d0c[26]][_0x3d0c[33]]}})[_0x3d0c[15]](function(_0xa569x1b){return _0xa569xb[_0x3d0c[12]](200)[_0x3d0c[11]](_0xa569x1b)})[_0x3d0c[19]](function(_0xa569xc){return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[17]]=function(_0xa569x15,_0xa569xb){JscriptyProject[_0x3d0c[65]]({where:{id:_0xa569x15[_0x3d0c[26]][_0x3d0c[25]]}})[_0x3d0c[15]](function(_0xa569x18){if(!_0xa569x18){return _0xa569xb[_0x3d0c[24]](404)};_0xa569x18[_0x3d0c[17]]()[_0x3d0c[15]](function(){return _0xa569xb[_0x3d0c[24]](204)})[_0x3d0c[19]](function(_0xa569xc){return handleError(_0xa569xb,_0xa569xc)})})[_0x3d0c[19]](function(_0xa569xc){return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[66]]=function(_0xa569x15,_0xa569xb){JscriptyProject[_0x3d0c[17]]({where:{id:_0xa569x15[_0x3d0c[20]][_0x3d0c[67]]},individualHooks:true})[_0x3d0c[15]](function(){return _0xa569xb[_0x3d0c[24]](204)})[_0x3d0c[19]](function(_0xa569xc){return handleError(_0xa569xb,_0xa569xc)})};exports[_0x3d0c[68]]=function(_0xa569x15,_0xa569xb,_0xa569x16){JscriptyProject[_0x3d0c[27]](_0xa569x15[_0x3d0c[26]][_0x3d0c[25]])[_0x3d0c[15]](function(_0xa569x18){if(!_0xa569x18){return _0xa569xb[_0x3d0c[24]](404)};console[_0x3d0c[29]](_0xa569x15[_0x3d0c[20]][_0x3d0c[69]]);_0xa569xb[_0x3d0c[73]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E":_0x3d0c[70]+_0xa569x15[_0x3d0c[20]][_0x3d0c[69]]+_0x3d0c[71],"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x3d0c[72]});return _0xa569xb[_0x3d0c[11]](_0xa569x18[_0x3d0c[74]])})[_0x3d0c[19]](function(_0xa569xc){return handleError(_0xa569xb,_0xa569xc)})}
\ No newline at end of file
index 4f5b49e..65ee9fc 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var JscriptyProject = require('../../models').JscriptyProject;
-
-exports.register = function(socket) {
-  JscriptyProject.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  JscriptyProject.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('jscripty_project:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('jscripty_project:remove', doc);
-}
+var _0x7bf4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x7bf4[0];var JscriptyProject=require(_0x7bf4[2])[_0x7bf4[1]];exports[_0x7bf4[3]]=function(_0xcce0x2){JscriptyProject[_0x7bf4[4]](function(_0xcce0x3){onSave(_0xcce0x2,_0xcce0x3)});JscriptyProject[_0x7bf4[5]](function(_0xcce0x3){onRemove(_0xcce0x2,_0xcce0x3)})};function onSave(_0xcce0x2,_0xcce0x3,_0xcce0x5){_0xcce0x2[_0x7bf4[7]](_0x7bf4[6],_0xcce0x3)}function onRemove(_0xcce0x2,_0xcce0x3,_0xcce0x5){_0xcce0x2[_0x7bf4[7]](_0x7bf4[8],_0xcce0x3)}
\ No newline at end of file
index 3eb5928..646cd58 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./license.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-
-// router.get('/:id', auth.isAuthenticated(), controller.show);
-// router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/request', auth.isAuthenticated(), controller.request);
-// router.put('/:id', auth.isAuthenticated(), controller.update);
-// router.patch('/:id', auth.isAuthenticated(), controller.update);
-// router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0xd788=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x72\x65\x71\x75\x65\x73\x74","\x72\x65\x71\x75\x65\x73\x74","\x70\x6F\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xd788[0];var express=require(_0xd788[1]);var auth=require(_0xd788[2]);var controller=require(_0xd788[3]);var router=express.Router();router[_0xd788[7]](_0xd788[4],auth[_0xd788[5]](),controller[_0xd788[6]]);router[_0xd788[10]](_0xd788[8],auth[_0xd788[5]](),controller[_0xd788[9]]);module[_0xd788[11]]=router
\ No newline at end of file
index 3d38afa..2de1dc7 100644 (file)
@@ -1,161 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/licenses              ->  index
- * POST    /api/licenses              ->  create
- * GET     /api/licenses/:id          ->  show
- * PUT     /api/licenses/:id          ->  update
- * DELETE  /api/licenses/:id          ->  destroy
- */
-
-'use strict';
-
-var _ = require('lodash');
-var rp = require('request-promise');
-
-var config = require('../../config/environment');
-var license = require('../../config/license/license.service');
-var Settings = require('../../models').Settings;
-
-var demoLicense = {
-  users: 1,
-  agents: 1,
-  telephones: 0,
-  chat: false,
-  mail: false,
-  fax: false,
-  description: 'DEMO LICENSE'
-};
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      if (entity.license) {
-        entity.dataValues.license = license.decrypt(entity.dataValues.license);
-        entity.dataValues.license = JSON.parse(entity.dataValues.license);
-      } else {
-        entity.dataValues.license = demoLicense;
-      }
-
-      entity.dataValues.license.token = license.getUuid();
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      entity = {
-        dataValues: {
-          license: demoLicense
-        }
-      };
-
-      entity.dataValues.license.token = license.getUuid();
-      res.status(201).json(entity);
-      return null;
-    }
-
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity
-      .updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity
-        .destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of Licenses
-exports.index = function(req, res) {
-  // License.findAll()
-  //   .then(responseWithResult(res))
-  //   .catch(handleError(res));
-
-  Settings
-    .findById(1)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single License from the DB
-exports.show = function(req, res) {
-  // License.findById(req.params.id)
-  //   .then(handleEntityNotFound(res))
-  //   .then(responseWithResult(res))
-  //   .catch(handleError(res));
-}
-
-// Creates a new License in the DB
-exports.create = function(req, res) {
-  // License.create(req.body)
-  //   .then(responseWithResult(res, 201))
-  //   .catch(handleError(res));
-}
-
-// Creates a new License in the DB
-exports.request = function(req, res) {
-  // License.create(req.body)
-  //   .then(responseWithResult(res, 201))
-  //   .catch(handleError(res));
-  return rp({
-      method: 'POST',
-      uri: config.provisioning + '/servers/' + license.getUuid() + '/request',
-      body: req.body,
-      json: true // Automatically stringifies the body to JSON
-    })
-    .then(function(data) {
-      console.log(data);
-      res.status(201).send(data);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return res.status(err.statusCode || 500).send(err);
-    });
-  // .catch(handleError(res));
-}
-
-// Updates an existing License in the DB
-exports.update = function(req, res) {
-  // if (req.body.id) {
-  //   delete req.body.id;
-  // }
-  // License.findById(req.params.id)
-  //   .then(handleEntityNotFound(res))
-  //   .then(saveUpdates(req.body))
-  //   .then(responseWithResult(res))
-  //   .catch(handleError(res));
-}
-
-// Deletes a License from the DB
-exports.destroy = function(req, res) {
-  // License.findById(req.params.id)
-  //   .then(handleEntityNotFound(res))
-  //   .then(removeEntity(res))
-  //   .catch(handleError(res));
-}
+var _0x7b16=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x53\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x44\x45\x4D\x4F\x20\x4C\x49\x43\x45\x4E\x53\x45","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6C\x69\x63\x65\x6E\x73\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x64\x65\x63\x72\x79\x70\x74","\x70\x61\x72\x73\x65","\x74\x6F\x6B\x65\x6E","\x67\x65\x74\x55\x75\x69\x64","\x6A\x73\x6F\x6E","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x72\x65\x71\x75\x65\x73\x74","\x6C\x6F\x67","\x73\x74\x61\x74\x75\x73\x43\x6F\x64\x65","\x50\x4F\x53\x54","\x70\x72\x6F\x76\x69\x73\x69\x6F\x6E\x69\x6E\x67","\x2F\x73\x65\x72\x76\x65\x72\x73\x2F","\x2F\x72\x65\x71\x75\x65\x73\x74","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65"];_0x7b16[0];var _=require(_0x7b16[1]);var rp=require(_0x7b16[2]);var config=require(_0x7b16[3]);var license=require(_0x7b16[4]);var Settings=require(_0x7b16[6])[_0x7b16[5]];var demoLicense={users:1,agents:1,telephones:0,chat:false,mail:false,fax:false,description:_0x7b16[7]};function handleError(_0xc395x8,_0xc395x9){_0xc395x9=_0xc395x9||500;return function(_0xc395xa){_0xc395x8[_0x7b16[9]](_0xc395x9)[_0x7b16[8]](_0xc395xa)}}function responseWithResult(_0xc395x8,_0xc395x9){_0xc395x9=_0xc395x9||200;return function(_0xc395xc){if(_0xc395xc){if(_0xc395xc[_0x7b16[10]]){_0xc395xc[_0x7b16[11]][_0x7b16[10]]=license[_0x7b16[12]](_0xc395xc[_0x7b16[11]][_0x7b16[10]]);_0xc395xc[_0x7b16[11]][_0x7b16[10]]=JSON[_0x7b16[13]](_0xc395xc[_0x7b16[11]][_0x7b16[10]])}else {_0xc395xc[_0x7b16[11]][_0x7b16[10]]=demoLicense};_0xc395xc[_0x7b16[11]][_0x7b16[10]][_0x7b16[14]]=license[_0x7b16[15]]();_0xc395x8[_0x7b16[9]](_0xc395x9)[_0x7b16[16]](_0xc395xc)}}}function handleEntityNotFound(_0xc395x8){return function(_0xc395xc){if(!_0xc395xc){_0xc395xc={dataValues:{license:demoLicense}};_0xc395xc[_0x7b16[11]][_0x7b16[10]][_0x7b16[14]]=license[_0x7b16[15]]();_0xc395x8[_0x7b16[9]](201)[_0x7b16[16]](_0xc395xc);return null};return _0xc395xc}}function saveUpdates(_0xc395xf){return function(_0xc395xc){return _0xc395xc[_0x7b16[18]](_0xc395xf)[_0x7b16[17]](function(_0xc395x10){return _0xc395x10})}}function removeEntity(_0xc395x8){return function(_0xc395xc){if(_0xc395xc){return _0xc395xc[_0x7b16[20]]()[_0x7b16[17]](function(){_0xc395x8[_0x7b16[9]](204)[_0x7b16[19]]()})}}}exports[_0x7b16[21]]=function(_0xc395x12,_0xc395x8){Settings[_0x7b16[23]](1)[_0x7b16[17]](handleEntityNotFound(_0xc395x8))[_0x7b16[17]](responseWithResult(_0xc395x8))[_0x7b16[22]](handleError(_0xc395x8))};exports[_0x7b16[24]]=function(_0xc395x12,_0xc395x8){};exports[_0x7b16[25]]=function(_0xc395x12,_0xc395x8){};exports[_0x7b16[26]]=function(_0xc395x12,_0xc395x8){return rp({method:_0x7b16[29],uri:config[_0x7b16[30]]+_0x7b16[31]+license[_0x7b16[15]]()+_0x7b16[32],body:_0xc395x12[_0x7b16[33]],json:true})[_0x7b16[17]](function(_0xc395x13){console[_0x7b16[27]](_0xc395x13);_0xc395x8[_0x7b16[9]](201)[_0x7b16[8]](_0xc395x13)})[_0x7b16[22]](function(_0xc395xa){console[_0x7b16[27]](_0xc395xa);return _0xc395x8[_0x7b16[9]](_0xc395xa[_0x7b16[28]]||500)[_0x7b16[8]](_0xc395xa)})};exports[_0x7b16[34]]=function(_0xc395x12,_0xc395x8){};exports[_0x7b16[20]]=function(_0xc395x12,_0xc395x8){}
\ No newline at end of file
index fb7f746..a96e457 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-// var License = require('../../models').License;
-
-exports.register = function (socket) {
-  // License.afterCreate(function(doc) {
-  //   onSave(socket, doc);
-  // });
-  // License.afterDestroy(function(doc) {
-  //   onRemove(socket, doc);
-  // });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('license:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('license:remove', doc);
-}
+var _0x5801=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x72\x65\x67\x69\x73\x74\x65\x72","\x6C\x69\x63\x65\x6E\x73\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6C\x69\x63\x65\x6E\x73\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x5801[0];exports[_0x5801[1]]=function(_0x28aax1){};function onSave(_0x28aax1,_0x28aax3,_0x28aax4){_0x28aax1[_0x5801[3]](_0x5801[2],_0x28aax3)}function onRemove(_0x28aax1,_0x28aax3,_0x28aax4){_0x28aax1[_0x5801[3]](_0x5801[4],_0x28aax3)}
\ No newline at end of file
index 92b8162..c09f195 100644 (file)
@@ -1,23 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./mail_account.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/applications', auth.isAuthenticated(), controller.showApplications);
-router.post('/', auth.isAuthenticated(), controller.create);
-// router.post('/:id/applications', auth.isAuthenticated(), controller.createApplications);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.put('/:id/applications', auth.isAuthenticated(), controller.updateApplications);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-router.delete('/:id/applications', auth.isAuthenticated(), controller.bulkDestroyApplications);
-router.delete('/:id/applications/:appId', auth.isAuthenticated(), controller.destroyApplication);
-
-
-module.exports = router;
+var _0x2344=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x77\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x75\x70\x64\x61\x74\x65\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x61\x70\x70\x49\x64","\x64\x65\x73\x74\x72\x6F\x79\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73"];_0x2344[0];var express=require(_0x2344[1]);var controller=require(_0x2344[2]);var auth=require(_0x2344[3]);var router=express.Router();router[_0x2344[7]](_0x2344[4],auth[_0x2344[5]](),controller[_0x2344[6]]);router[_0x2344[7]](_0x2344[8],auth[_0x2344[5]](),controller[_0x2344[9]]);router[_0x2344[7]](_0x2344[10],auth[_0x2344[5]](),controller[_0x2344[11]]);router[_0x2344[13]](_0x2344[4],auth[_0x2344[5]](),controller[_0x2344[12]]);router[_0x2344[15]](_0x2344[8],auth[_0x2344[5]](),controller[_0x2344[14]]);router[_0x2344[15]](_0x2344[10],auth[_0x2344[5]](),controller[_0x2344[16]]);router[_0x2344[17]](_0x2344[8],auth[_0x2344[5]](),controller[_0x2344[14]]);router[_0x2344[19]](_0x2344[4],auth[_0x2344[5]](),controller[_0x2344[18]]);router[_0x2344[19]](_0x2344[8],auth[_0x2344[5]](),controller[_0x2344[20]]);router[_0x2344[19]](_0x2344[10],auth[_0x2344[5]](),controller[_0x2344[21]]);router[_0x2344[19]](_0x2344[22],auth[_0x2344[5]](),controller[_0x2344[23]]);module[_0x2344[24]]=router
\ No newline at end of file
index 87e8593..232563f 100644 (file)
@@ -1,242 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var async = require('async');
-
-var Util = require('../../config/util');
-
-var sequelize = require('../../models').sequelize;
-var User = require('../../models').User;
-var MailQueue = require('../../models').MailQueue;
-var MailAccount = require('../../models').MailAccount;
-var MailServerIn = require('../../models').MailServerIn;
-var MailServerOut = require('../../models').MailServerOut;
-var MailApplication = require('../../models').MailApplication;
-
-// Get list of mailAccounts
-exports.index = function(req, res) {
-  return MailAccount
-    .scope('default')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single mailAccount
-exports.show = function(req, res, next) {
-  return MailAccount
-    .scope('default')
-    .findById(req.params.id)
-    .then(function(mailAccount) {
-      if (!mailAccount) {
-        return res.sendStatus(404);
-      }
-      return res.send(mailAccount);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single mailAccount
-exports.showApplications = function(req, res, next) {
-  return MailAccount
-    .scope('default')
-    .findById(req.params.id)
-    .then(function(mailAccount) {
-      if (!mailAccount) {
-        return res.sendStatus(404);
-      }
-      return mailAccount
-        .getMailApplications(_.merge(Util.getQuery(req.query), {
-          include: [{
-            model: MailQueue,
-            attributes: ['id', 'name']
-          }, {
-            model: User,
-            attributes: ['id', 'name', 'online']
-          }]
-        }));
-    })
-    .then(function(mailApplications) {
-      return res.send({
-        count: mailApplications.length,
-        rows: mailApplications
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new mailAccount in the DB.
-exports.create = function(req, res, next) {
-  return sequelize.transaction(function(t) {
-      return MailAccount
-        .create(req.body, {
-          include: [{
-            model: MailServerIn
-          }, {
-            model: MailServerOut
-          }],
-          transaction: t
-        });
-    }).then(function(mailAccount) {
-      return res.status(201).send(mailAccount);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      return Util.errorManager.handleUniqueConstraintError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing mailAccount in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return MailAccount
-    .findById(req.params.id)
-    .then(function(mailAccount) {
-      if (!mailAccount) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(mailAccount, req.body);
-      return updated
-        .save();
-    })
-    .then(function(mailAccount) {
-      return res.status(200).send(mailAccount);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      return Util.errorManager.handleUniqueConstraintError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing mailAccount in the DB.
-exports.updateApplications = function(req, res) {
-
-  var priority = 0;
-  var apps = req.body;
-
-  apps.forEach(function(app) {
-    delete app.id;
-    delete app.createdAt;
-    delete app.updatedAt;
-
-    app.priority = ++priority;
-  });
-
-  return sequelize.transaction(function(t) {
-    return MailApplication
-      .destroy({
-        where: {
-          MailAccountId: req.params.id
-        },
-        individualHooks: true,
-        transaction: t
-      }).then(function(mailApplication) {
-        return MailApplication
-          .bulkCreate(apps, {
-            individualHooks: true,
-            transaction: t
-          });
-      });
-  }).then(function(mailAccounts) {
-    return res.status(200).send({
-      count: mailAccounts.length,
-      rows: mailAccounts
-    });
-  }).catch(function(err) {
-    return handleError(res, err);
-  });
-};
-
-// Deletes a mailAccount from the DB.
-exports.destroy = function(req, res, next) {
-  return MailAccount
-    .findById(req.params.id)
-    .then(function(mailAccount) {
-      if (!mailAccount) {
-        return res.sendStatus(404);
-      }
-
-      return mailAccount
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a mailAccount from the DB.
-exports.destroyApplication = function(req, res, next) {
-  return MailApplication
-    .findById(req.params.appId)
-    .then(function(mailApplication) {
-      if (!mailApplication) {
-        return res.sendStatus(404);
-      }
-
-      return mailApplication
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
-  return MailAccount
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a agent from the DB.
-exports.bulkDestroyApplications = function(req, res) {
-  return MailApplication
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x8f20=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x73\x79\x6E\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x64\x65\x66\x61\x75\x6C\x74","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x68\x6F\x77\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x61\x6D\x65","\x6F\x6E\x6C\x69\x6E\x65","\x6D\x65\x72\x67\x65","\x67\x65\x74\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x62\x6F\x64\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x70\x72\x69\x6F\x72\x69\x74\x79","\x66\x6F\x72\x45\x61\x63\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x73\x74\x72\x6F\x79\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x70\x70\x49\x64","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73"];_0x8f20[0];var _=require(_0x8f20[1]);var util=require(_0x8f20[2]);var async=require(_0x8f20[3]);var Util=require(_0x8f20[4]);var sequelize=require(_0x8f20[6])[_0x8f20[5]];var User=require(_0x8f20[6])[_0x8f20[7]];var MailQueue=require(_0x8f20[6])[_0x8f20[8]];var MailAccount=require(_0x8f20[6])[_0x8f20[9]];var MailServerIn=require(_0x8f20[6])[_0x8f20[10]];var MailServerOut=require(_0x8f20[6])[_0x8f20[11]];var MailApplication=require(_0x8f20[6])[_0x8f20[12]];exports[_0x8f20[13]]=function(_0x7cc8xc,_0x7cc8xd){return MailAccount[_0x8f20[22]](_0x8f20[21])[_0x8f20[20]](Util[_0x8f20[19]](_0x7cc8xc[_0x8f20[18]]))[_0x8f20[17]](function(_0x7cc8xf){_0x7cc8xd[_0x8f20[16]](200)[_0x8f20[15]](_0x7cc8xf)})[_0x8f20[14]](function(_0x7cc8xe){return handleError(_0x7cc8xd,_0x7cc8xe)})};exports[_0x8f20[23]]=function(_0x7cc8xc,_0x7cc8xd,_0x7cc8x10){return MailAccount[_0x8f20[22]](_0x8f20[21])[_0x8f20[27]](_0x7cc8xc[_0x8f20[26]][_0x8f20[25]])[_0x8f20[17]](function(_0x7cc8x11){if(!_0x7cc8x11){return _0x7cc8xd[_0x8f20[24]](404)};return _0x7cc8xd[_0x8f20[15]](_0x7cc8x11)})[_0x8f20[14]](function(_0x7cc8xe){return handleError(_0x7cc8xd,_0x7cc8xe)})};exports[_0x8f20[28]]=function(_0x7cc8xc,_0x7cc8xd,_0x7cc8x10){return MailAccount[_0x8f20[22]](_0x8f20[21])[_0x8f20[27]](_0x7cc8xc[_0x8f20[26]][_0x8f20[25]])[_0x8f20[17]](function(_0x7cc8x11){if(!_0x7cc8x11){return _0x7cc8xd[_0x8f20[24]](404)};return _0x7cc8x11[_0x8f20[33]](_[_0x8f20[32]](Util[_0x8f20[19]](_0x7cc8xc[_0x8f20[18]]),{include:[{model:MailQueue,attributes:[_0x8f20[25],_0x8f20[30]]},{model:User,attributes:[_0x8f20[25],_0x8f20[30],_0x8f20[31]]}]}))})[_0x8f20[17]](function(_0x7cc8x12){return _0x7cc8xd[_0x8f20[15]]({count:_0x7cc8x12[_0x8f20[29]],rows:_0x7cc8x12})})[_0x8f20[14]](function(_0x7cc8xe){return handleError(_0x7cc8xd,_0x7cc8xe)})};exports[_0x8f20[34]]=function(_0x7cc8xc,_0x7cc8xd,_0x7cc8x10){return sequelize[_0x8f20[38]](function(_0x7cc8x13){return MailAccount[_0x8f20[34]](_0x7cc8xc[_0x8f20[37]],{include:[{model:MailServerIn},{model:MailServerOut}],transaction:_0x7cc8x13})})[_0x8f20[17]](function(_0x7cc8x11){return _0x7cc8xd[_0x8f20[16]](201)[_0x8f20[15]](_0x7cc8x11)})[_0x8f20[14]](sequelize.UniqueConstraintError,function(_0x7cc8xe){return Util[_0x8f20[36]][_0x8f20[35]](_0x7cc8xd,_0x7cc8xe)})[_0x8f20[14]](function(_0x7cc8xe){return handleError(_0x7cc8xd,_0x7cc8xe)})};exports[_0x8f20[39]]=function(_0x7cc8xc,_0x7cc8xd){if(_0x7cc8xc[_0x8f20[37]][_0x8f20[25]]){delete _0x7cc8xc[_0x8f20[37]][_0x8f20[25]]};return MailAccount[_0x8f20[27]](_0x7cc8xc[_0x8f20[26]][_0x8f20[25]])[_0x8f20[17]](function(_0x7cc8x11){if(!_0x7cc8x11){return _0x7cc8xd[_0x8f20[24]](404)};var _0x7cc8x14=_[_0x8f20[32]](_0x7cc8x11,_0x7cc8xc[_0x8f20[37]]);return _0x7cc8x14[_0x8f20[40]]()})[_0x8f20[17]](function(_0x7cc8x11){return _0x7cc8xd[_0x8f20[16]](200)[_0x8f20[15]](_0x7cc8x11)})[_0x8f20[14]](sequelize.UniqueConstraintError,function(_0x7cc8xe){return Util[_0x8f20[36]][_0x8f20[35]](_0x7cc8xd,_0x7cc8xe)})[_0x8f20[14]](function(_0x7cc8xe){return handleError(_0x7cc8xd,_0x7cc8xe)})};exports[_0x8f20[41]]=function(_0x7cc8xc,_0x7cc8xd){var _0x7cc8x15=0;var _0x7cc8x16=_0x7cc8xc[_0x8f20[37]];_0x7cc8x16[_0x8f20[45]](function(_0x7cc8x17){delete _0x7cc8x17[_0x8f20[25]];delete _0x7cc8x17[_0x8f20[42]];delete _0x7cc8x17[_0x8f20[43]];_0x7cc8x17[_0x8f20[44]]= ++_0x7cc8x15});return sequelize[_0x8f20[38]](function(_0x7cc8x13){return MailApplication[_0x8f20[47]]({where:{MailAccountId:_0x7cc8xc[_0x8f20[26]][_0x8f20[25]]},individualHooks:true,transaction:_0x7cc8x13})[_0x8f20[17]](function(_0x7cc8x19){return MailApplication[_0x8f20[46]](_0x7cc8x16,{individualHooks:true,transaction:_0x7cc8x13})})})[_0x8f20[17]](function(_0x7cc8x18){return _0x7cc8xd[_0x8f20[16]](200)[_0x8f20[15]]({count:_0x7cc8x18[_0x8f20[29]],rows:_0x7cc8x18})})[_0x8f20[14]](function(_0x7cc8xe){return handleError(_0x7cc8xd,_0x7cc8xe)})};exports[_0x8f20[47]]=function(_0x7cc8xc,_0x7cc8xd,_0x7cc8x10){return MailAccount[_0x8f20[27]](_0x7cc8xc[_0x8f20[26]][_0x8f20[25]])[_0x8f20[17]](function(_0x7cc8x11){if(!_0x7cc8x11){return _0x7cc8xd[_0x8f20[24]](404)};return _0x7cc8x11[_0x8f20[47]]()})[_0x8f20[17]](function(){return _0x7cc8xd[_0x8f20[24]](204)})[_0x8f20[14]](function(_0x7cc8xe){return handleError(_0x7cc8xd,_0x7cc8xe)})};exports[_0x8f20[48]]=function(_0x7cc8xc,_0x7cc8xd,_0x7cc8x10){return MailApplication[_0x8f20[27]](_0x7cc8xc[_0x8f20[26]][_0x8f20[49]])[_0x8f20[17]](function(_0x7cc8x19){if(!_0x7cc8x19){return _0x7cc8xd[_0x8f20[24]](404)};return _0x7cc8x19[_0x8f20[47]]()})[_0x8f20[17]](function(){return _0x7cc8xd[_0x8f20[24]](204)})[_0x8f20[14]](function(_0x7cc8xe){return handleError(_0x7cc8xd,_0x7cc8xe)})};exports[_0x8f20[50]]=function(_0x7cc8xc,_0x7cc8xd){return MailAccount[_0x8f20[47]]({where:{id:_0x7cc8xc[_0x8f20[18]][_0x8f20[51]]},individualHooks:true})[_0x8f20[17]](function(){return _0x7cc8xd[_0x8f20[24]](204)})[_0x8f20[14]](function(_0x7cc8xe){return handleError(_0x7cc8xd,_0x7cc8xe)})};exports[_0x8f20[52]]=function(_0x7cc8xc,_0x7cc8xd){return MailApplication[_0x8f20[47]]({where:{id:_0x7cc8xc[_0x8f20[18]][_0x8f20[51]]},individualHooks:true})[_0x8f20[17]](function(){return _0x7cc8xd[_0x8f20[24]](204)})[_0x8f20[14]](function(_0x7cc8xe){return handleError(_0x7cc8xd,_0x7cc8xe)})};function handleError(_0x7cc8xd,_0x7cc8xe){return _0x7cc8xd[_0x8f20[16]](500)[_0x8f20[15]](_0x7cc8xe)}
\ No newline at end of file
index 5b51c79..002e235 100644 (file)
@@ -1,27 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var MailAccount = require('../../models').MailAccount;
-
-exports.register = function(socket) {
-  MailAccount.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  MailAccount.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  MailAccount.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('mail_account:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('mail_account:remove', doc);
-}
+var _0x10e4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x10e4[0];var MailAccount=require(_0x10e4[2])[_0x10e4[1]];exports[_0x10e4[3]]=function(_0xc543x2){MailAccount[_0x10e4[4]](function(_0xc543x3){onSave(_0xc543x2,_0xc543x3)});MailAccount[_0x10e4[5]](function(_0xc543x3){onSave(_0xc543x2,_0xc543x3)});MailAccount[_0x10e4[6]](function(_0xc543x3){onRemove(_0xc543x2,_0xc543x3)})};function onSave(_0xc543x2,_0xc543x3,_0xc543x5){_0xc543x2[_0x10e4[8]](_0x10e4[7],_0xc543x3)}function onRemove(_0xc543x2,_0xc543x3,_0xc543x5){_0xc543x2[_0x10e4[8]](_0x10e4[9],_0xc543x3)}
\ No newline at end of file
index 3c132bb..0d8d464 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./mail_application.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
\ No newline at end of file
+var _0xee07=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xee07[0];var express=require(_0xee07[1]);var controller=require(_0xee07[2]);var router=express.Router();router[_0xee07[5]](_0xee07[3],controller[_0xee07[4]]);router[_0xee07[5]](_0xee07[6],controller[_0xee07[7]]);router[_0xee07[9]](_0xee07[3],controller[_0xee07[8]]);router[_0xee07[11]](_0xee07[6],controller[_0xee07[10]]);router[_0xee07[12]](_0xee07[6],controller[_0xee07[10]]);router[_0xee07[14]](_0xee07[6],controller[_0xee07[13]]);module[_0xee07[15]]=router
\ No newline at end of file
index 260557e..fe2dc5b 100644 (file)
@@ -1,111 +1 @@
-'use strict';
-var _ = require('lodash');
-var MailApplication = require('../../models').MailApplication;
-// Get list of mailApplications
-exports.index = function(req, res, next) {
-  MailApplication
-    .findAll({
-      where: req.query,
-      order: 'priority',
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(mailApplications) {
-      return res.status(200).send(mailApplications);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Get a single mailApplication
-exports.show = function(req, res, next) {
-  MailApplication
-    .findById(req.params.id, {
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(mailApplication) {
-      if (!mailApplication) {
-        return res.sendStatus(404);
-      }
-      return res.send(mailApplication);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Creates a new mailApplication in the DB.
-exports.create = function(req, res, next) {
-  MailApplication
-    .max('priority', {
-      where: {
-        MailAccountId: req.body.MailAccountId
-      }
-    }).then(function(max) {
-      // SET PRIORITY
-      req.body.priority = max ? ++max : 1;
-      MailApplication
-        .create(req.body)
-        .then(function(mailApplication) {
-          return res.status(201).send(mailApplication);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Updates an existing mailApplication in the DB.
-exports.update = function(req, res, next) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  MailApplication
-    .findById(req.params.id)
-    .then(function(mailApplication) {
-      if (!mailApplication) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(mailApplication, req.body);
-      updated
-        .save()
-        .then(function() {
-          return res.status(200).send(mailApplication);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Deletes a mailApplication from the DB.
-exports.destroy = function(req, res, next) {
-  MailApplication
-    .findById(req.params.id)
-    .then(function(mailApplication) {
-      if (!mailApplication) {
-        return res.sendStatus(404);
-      }
-      mailApplication
-        .destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xf5fe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x70\x72\x69\x6F\x72\x69\x74\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x6D\x61\x78","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xf5fe[0];var _=require(_0xf5fe[1]);var MailApplication=require(_0xf5fe[3])[_0xf5fe[2]];exports[_0xf5fe[4]]=function(_0xf927x3,_0xf927x4,_0xf927x5){MailApplication[_0xf5fe[11]]({where:_0xf927x3[_0xf5fe[9]],order:_0xf5fe[10],include:[{all:true}]})[_0xf5fe[8]](function(_0xf927x7){return _0xf927x4[_0xf5fe[7]](200)[_0xf5fe[6]](_0xf927x7)})[_0xf5fe[5]](function(_0xf927x6){return handleError(_0xf927x4,_0xf927x6)})};exports[_0xf5fe[12]]=function(_0xf927x3,_0xf927x4,_0xf927x5){MailApplication[_0xf5fe[16]](_0xf927x3[_0xf5fe[15]][_0xf5fe[14]],{include:[{all:true}]})[_0xf5fe[8]](function(_0xf927x8){if(!_0xf927x8){return _0xf927x4[_0xf5fe[13]](404)};return _0xf927x4[_0xf5fe[6]](_0xf927x8)})[_0xf5fe[5]](function(_0xf927x6){return handleError(_0xf927x4,_0xf927x6)})};exports[_0xf5fe[17]]=function(_0xf927x3,_0xf927x4,_0xf927x5){MailApplication[_0xf5fe[20]](_0xf5fe[10],{where:{MailAccountId:_0xf927x3[_0xf5fe[18]][_0xf5fe[19]]}})[_0xf5fe[8]](function(_0xf927x9){_0xf927x3[_0xf5fe[18]][_0xf5fe[10]]=_0xf927x9?++_0xf927x9:1;MailApplication[_0xf5fe[17]](_0xf927x3[_0xf5fe[18]])[_0xf5fe[8]](function(_0xf927x8){return _0xf927x4[_0xf5fe[7]](201)[_0xf5fe[6]](_0xf927x8)})[_0xf5fe[5]](function(_0xf927x6){return handleError(_0xf927x4,_0xf927x6)})})[_0xf5fe[5]](function(_0xf927x6){return handleError(_0xf927x4,_0xf927x6)})};exports[_0xf5fe[21]]=function(_0xf927x3,_0xf927x4,_0xf927x5){if(_0xf927x3[_0xf5fe[18]][_0xf5fe[14]]){delete _0xf927x3[_0xf5fe[18]][_0xf5fe[14]]};MailApplication[_0xf5fe[16]](_0xf927x3[_0xf5fe[15]][_0xf5fe[14]])[_0xf5fe[8]](function(_0xf927x8){if(!_0xf927x8){return _0xf927x4[_0xf5fe[13]](404)};var _0xf927xa=_[_0xf5fe[22]](_0xf927x8,_0xf927x3[_0xf5fe[18]]);_0xf927xa[_0xf5fe[23]]()[_0xf5fe[8]](function(){return _0xf927x4[_0xf5fe[7]](200)[_0xf5fe[6]](_0xf927x8)})[_0xf5fe[5]](function(_0xf927x6){return handleError(_0xf927x4,_0xf927x6)})})[_0xf5fe[5]](function(_0xf927x6){return handleError(_0xf927x4,_0xf927x6)})};exports[_0xf5fe[24]]=function(_0xf927x3,_0xf927x4,_0xf927x5){MailApplication[_0xf5fe[16]](_0xf927x3[_0xf5fe[15]][_0xf5fe[14]])[_0xf5fe[8]](function(_0xf927x8){if(!_0xf927x8){return _0xf927x4[_0xf5fe[13]](404)};_0xf927x8[_0xf5fe[24]]()[_0xf5fe[8]](function(){return _0xf927x4[_0xf5fe[13]](204)})[_0xf5fe[5]](function(_0xf927x6){return handleError(_0xf927x4,_0xf927x6)})})[_0xf5fe[5]](function(_0xf927x6){return handleError(_0xf927x4,_0xf927x6)})};function handleError(_0xf927x4,_0xf927x6){return _0xf927x4[_0xf5fe[7]](500)[_0xf5fe[6]](_0xf927x6)}
\ No newline at end of file
index ead0c90..492afac 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var mailApplication = require('../../models').MailApplication;
-
-exports.register = function(socket) {
-  mailApplication.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  mailApplication.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('mail_application:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('mail_application:remove', doc);
-}
+var _0xcf32=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0xcf32[0];var mailApplication=require(_0xcf32[2])[_0xcf32[1]];exports[_0xcf32[3]]=function(_0x7644x2){mailApplication[_0xcf32[4]](function(_0x7644x3){onSave(_0x7644x2,_0x7644x3)});mailApplication[_0xcf32[5]](function(_0x7644x3){onRemove(_0x7644x2,_0x7644x3)})};function onSave(_0x7644x2,_0x7644x3,_0x7644x5){_0x7644x2[_0xcf32[7]](_0xcf32[6],_0x7644x3)}function onRemove(_0x7644x2,_0x7644x3,_0x7644x5){_0x7644x2[_0xcf32[7]](_0xcf32[8],_0x7644x3)}
\ No newline at end of file
index 023b99b..c8509bd 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/mail/applications', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/mail/applications')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x342f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0x342f[0];var should=require(_0x342f[1]);var app=require(_0x342f[2]);var request=require(_0x342f[3]);describe(_0x342f[4],function(){it(_0x342f[5],function(_0xeadfx4){request(app)[_0x342f[13]](_0x342f[12])[_0x342f[11]](200)[_0x342f[11]](_0x342f[10],/json/)[_0x342f[9]](function(_0xeadfx5,_0xeadfx6){if(_0xeadfx5){return _0xeadfx4(_0xeadfx5)};_0xeadfx6[_0x342f[8]][_0x342f[1]][_0x342f[7]][_0x342f[6]](Array);_0xeadfx4()})})})
\ No newline at end of file
index f154de4..30ba071 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./mail_attachment.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
\ No newline at end of file
+var _0x3359=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3359[0];var express=require(_0x3359[1]);var controller=require(_0x3359[2]);var router=express.Router();router[_0x3359[5]](_0x3359[3],controller[_0x3359[4]]);router[_0x3359[5]](_0x3359[6],controller[_0x3359[7]]);router[_0x3359[9]](_0x3359[3],controller[_0x3359[8]]);router[_0x3359[11]](_0x3359[6],controller[_0x3359[10]]);router[_0x3359[12]](_0x3359[6],controller[_0x3359[10]]);router[_0x3359[14]](_0x3359[6],controller[_0x3359[13]]);module[_0x3359[15]]=router
\ No newline at end of file
index 72d2b7b..baae59f 100644 (file)
@@ -1,100 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var path = require('path');
-var fs = require('fs');
-var formidable = require('formidable');
-var Promise = require('bluebird');
-
-var config = require('../../config/environment');
-var MailAttachment = require('../../models').MailAttachment;
-
-// Get list of mailAttachments
-exports.index = function(req, res, next) {
-  return MailAttachment
-    .findAll()
-    .then(function(mailAttachments) {
-      return res.status(200).send(mailAttachments);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-// Get a single mailAttachment
-exports.show = function(req, res, next) {
-  return MailAttachment
-    .findById(req.params.id)
-    .then(function(mailAttachment) {
-      return res.download(mailAttachment.path, mailAttachment.name);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-// Creates a new mailAttachment in the DB.
-exports.create = function(req, res, next) {
-
-  var form = new formidable.IncomingForm();
-  form.uploadDir = path.join(config.root, 'server', 'files', 'attachments');
-  form.keepExtensions = true;
-  form.multiples = true;
-  form.hash = true;
-
-  form.parse(req, function(err, form, wrap) {
-    if (err) {
-      return res.status(500).send(err);
-    }
-    return res.status(201).send({
-      size: wrap.file.size,
-      path: wrap.file.path,
-      name: wrap.file.name,
-      type: wrap.file.type,
-      basename: path.basename(wrap.file.path)
-    });
-  });
-};
-
-// Updates an existing mailAttachment in the DB.
-exports.update = function(req, res, next) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  MailAttachment
-    .findById(req.params.id)
-    .then(function(mailAttachment) {
-      if (!mailAttachment) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(mailAttachment, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(mailAttachment);
-        })
-        .catch(function(err) {
-          return next(err);
-        });
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-// Deletes a mailAttachment from the DB.
-exports.destroy = function(req, res, next) {
-  var unlink = Promise.promisify(require("fs").unlink);
-  var _path = path.join(config.root, 'server', 'files', 'attachments', req.params.id);
-
-  return unlink(_path)
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xf9db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x74\x68","\x66\x73","\x66\x6F\x72\x6D\x69\x64\x61\x62\x6C\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x6E\x61\x6D\x65","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x6C\x6F\x61\x64\x44\x69\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x6A\x6F\x69\x6E","\x6B\x65\x65\x70\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x6D\x75\x6C\x74\x69\x70\x6C\x65\x73","\x68\x61\x73\x68","\x73\x69\x7A\x65","\x66\x69\x6C\x65","\x74\x79\x70\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x70\x61\x72\x73\x65","\x75\x70\x64\x61\x74\x65","\x62\x6F\x64\x79","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x75\x6E\x6C\x69\x6E\x6B","\x70\x72\x6F\x6D\x69\x73\x69\x66\x79"];_0xf9db[0];var _=require(_0xf9db[1]);var path=require(_0xf9db[2]);var fs=require(_0xf9db[3]);var formidable=require(_0xf9db[4]);var Promise=require(_0xf9db[5]);var config=require(_0xf9db[6]);var MailAttachment=require(_0xf9db[8])[_0xf9db[7]];exports[_0xf9db[9]]=function(_0xaf3cx8,_0xaf3cx9,_0xaf3cxa){return MailAttachment[_0xf9db[14]]()[_0xf9db[13]](function(_0xaf3cxc){return _0xaf3cx9[_0xf9db[12]](200)[_0xf9db[11]](_0xaf3cxc)})[_0xf9db[10]](function(_0xaf3cxb){return _0xaf3cxa(_0xaf3cxb)})};exports[_0xf9db[15]]=function(_0xaf3cx8,_0xaf3cx9,_0xaf3cxa){return MailAttachment[_0xf9db[20]](_0xaf3cx8[_0xf9db[19]][_0xf9db[18]])[_0xf9db[13]](function(_0xaf3cxd){return _0xaf3cx9[_0xf9db[17]](_0xaf3cxd[_0xf9db[2]],_0xaf3cxd[_0xf9db[16]])})[_0xf9db[10]](function(_0xaf3cxb){return _0xaf3cxa(_0xaf3cxb)})};exports[_0xf9db[21]]=function(_0xaf3cx8,_0xaf3cx9,_0xaf3cxa){var _0xaf3cxe= new formidable.IncomingForm();_0xaf3cxe[_0xf9db[22]]=path[_0xf9db[27]](config[_0xf9db[23]],_0xf9db[24],_0xf9db[25],_0xf9db[26]);_0xaf3cxe[_0xf9db[28]]=true;_0xaf3cxe[_0xf9db[29]]=true;_0xaf3cxe[_0xf9db[30]]=true;_0xaf3cxe[_0xf9db[35]](_0xaf3cx8,function(_0xaf3cxb,_0xaf3cxe,_0xaf3cxf){if(_0xaf3cxb){return _0xaf3cx9[_0xf9db[12]](500)[_0xf9db[11]](_0xaf3cxb)};return _0xaf3cx9[_0xf9db[12]](201)[_0xf9db[11]]({size:_0xaf3cxf[_0xf9db[32]][_0xf9db[31]],path:_0xaf3cxf[_0xf9db[32]][_0xf9db[2]],name:_0xaf3cxf[_0xf9db[32]][_0xf9db[16]],type:_0xaf3cxf[_0xf9db[32]][_0xf9db[33]],basename:path[_0xf9db[34]](_0xaf3cxf[_0xf9db[32]][_0xf9db[2]])})})};exports[_0xf9db[36]]=function(_0xaf3cx8,_0xaf3cx9,_0xaf3cxa){if(_0xaf3cx8[_0xf9db[37]][_0xf9db[18]]){delete _0xaf3cx8[_0xf9db[37]][_0xf9db[18]]};MailAttachment[_0xf9db[20]](_0xaf3cx8[_0xf9db[19]][_0xf9db[18]])[_0xf9db[13]](function(_0xaf3cxd){if(!_0xaf3cxd){return _0xaf3cx9[_0xf9db[38]](404)};var _0xaf3cx10=_[_0xf9db[39]](_0xaf3cxd,_0xaf3cx8[_0xf9db[37]]);_0xaf3cx10[_0xf9db[40]]()[_0xf9db[13]](function(){return _0xaf3cx9[_0xf9db[12]](200)[_0xf9db[11]](_0xaf3cxd)})[_0xf9db[10]](function(_0xaf3cxb){return _0xaf3cxa(_0xaf3cxb)})})[_0xf9db[10]](function(_0xaf3cxb){return _0xaf3cxa(_0xaf3cxb)})};exports[_0xf9db[41]]=function(_0xaf3cx8,_0xaf3cx9,_0xaf3cxa){var _0xaf3cx11=Promise[_0xf9db[43]](require(_0xf9db[3])[_0xf9db[42]]);var _0xaf3cx12=path[_0xf9db[27]](config[_0xf9db[23]],_0xf9db[24],_0xf9db[25],_0xf9db[26],_0xaf3cx8[_0xf9db[19]][_0xf9db[18]]);return _0xaf3cx11(_0xaf3cx12)[_0xf9db[13]](function(){return _0xaf3cx9[_0xf9db[38]](204)})[_0xf9db[10]](function(_0xaf3cxb){return handleError(_0xaf3cx9,_0xaf3cxb)})};function handleError(_0xaf3cx9,_0xaf3cxb){return _0xaf3cx9[_0xf9db[12]](500)[_0xf9db[11]](_0xaf3cxb)}
\ No newline at end of file
index 65c9085..557da03 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var mail_attachment = require('../../models').MailAttachment;
-
-exports.register = function(socket) {
-  mail_attachment.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  mail_attachment.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('mail_attachment:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('mail_attachment:remove', doc);
-}
+var _0xc05e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xc05e[0];var mail_attachment=require(_0xc05e[2])[_0xc05e[1]];exports[_0xc05e[3]]=function(_0xaf74x2){mail_attachment[_0xc05e[4]](function(_0xaf74x3){onSave(_0xaf74x2,_0xaf74x3)});mail_attachment[_0xc05e[5]](function(_0xaf74x3){onRemove(_0xaf74x2,_0xaf74x3)})};function onSave(_0xaf74x2,_0xaf74x3,_0xaf74x5){_0xaf74x2[_0xc05e[7]](_0xc05e[6],_0xaf74x3)}function onRemove(_0xaf74x2,_0xaf74x3,_0xaf74x5){_0xaf74x2[_0xc05e[7]](_0xc05e[8],_0xaf74x3)}
\ No newline at end of file
index 58b5988..4ba0d2e 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./mail_message.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/', auth.isAuthenticated(), controller.update);
-router.put('/delete/bulk', auth.isAuthenticated(), controller.bulkDelete);
-router.put('/delete/:id', auth.isAuthenticated(), controller.update);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xc193=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x64\x65\x6C\x65\x74\x65\x2F\x62\x75\x6C\x6B","\x62\x75\x6C\x6B\x44\x65\x6C\x65\x74\x65","\x2F\x64\x65\x6C\x65\x74\x65\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc193[0];var express=require(_0xc193[1]);var controller=require(_0xc193[2]);var auth=require(_0xc193[3]);var router=express.Router();router[_0xc193[7]](_0xc193[4],auth[_0xc193[5]](),controller[_0xc193[6]]);router[_0xc193[7]](_0xc193[8],auth[_0xc193[5]](),controller[_0xc193[9]]);router[_0xc193[11]](_0xc193[4],auth[_0xc193[5]](),controller[_0xc193[10]]);router[_0xc193[13]](_0xc193[4],auth[_0xc193[5]](),controller[_0xc193[12]]);router[_0xc193[13]](_0xc193[14],auth[_0xc193[5]](),controller[_0xc193[15]]);router[_0xc193[13]](_0xc193[16],auth[_0xc193[5]](),controller[_0xc193[12]]);router[_0xc193[13]](_0xc193[8],auth[_0xc193[5]](),controller[_0xc193[12]]);router[_0xc193[17]](_0xc193[8],auth[_0xc193[5]](),controller[_0xc193[12]]);router[_0xc193[19]](_0xc193[8],auth[_0xc193[5]](),controller[_0xc193[18]]);module[_0xc193[20]]=router
\ No newline at end of file
index 0105703..1330d70 100644 (file)
@@ -1,179 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var async = require('async');
-
-var htmlToText = require('html-to-text');
-var formidable = require('formidable');
-var path = require('path');
-
-var config = require('../../config/environment');
-var sequelize = require('../../models').sequelize;
-var MailMessage = require('../../models').MailMessage;
-var MailAttachment = require('../../models').MailAttachment;
-var MailRoom = require('../../models').MailRoom;
-var MailAccount = require('../../models').MailAccount;
-var ContactEmail = require('../../models').ContactEmail;
-var Contact = require('../../models').Contact;
-var User = require('../../models').User;
-
-// Get list of mail_messages
-exports.index = function(req, res, next) {
-  var params = {
-    order: 'createdAt DESC',
-    include: [{
-      all: true,
-      include: [{
-        all: true
-      }]
-    }]
-  };
-
-  switch (req.user.role) {
-    case 'admin':
-      params.where = req.query;
-      break;
-    case 'agent':
-      break;
-    default:
-  }
-
-  return MailMessage
-    .findAll(params)
-    .then(function(mail_messages) {
-      return res.status(200).send(mail_messages);
-    })
-    .catch(function(err) {
-      return handleError(res, err, next);
-    });
-};
-
-// Get a single mailMessage
-exports.show = function(req, res, next) {
-  return MailMessage
-    .findById(req.params.id, {
-      include: [{
-        model: MailAttachment
-      }, {
-        model: User,
-        attributes: ['id', 'name', 'fullname', 'email']
-      }]
-    })
-    .then(function(mailMessage) {
-      if (!mailMessage) {
-        return res.sendStatus(404);
-      }
-      return res.send(mailMessage);
-    })
-    .catch(function(err) {
-      return handleError(res, err, next);
-    });
-};
-
-// Creates a new mailMessage in the DB.
-exports.create = function(req, res, next) {
-  req.body.UserId = req.user.id;
-  req.body.text = req.body.text || htmlToText.fromString(req.body.html, {
-    wordwrap: false
-  });
-
-  return sequelize.transaction().then(function(t) {
-    return MailMessage
-      .create(req.body, {
-        include: [{
-          model: MailAttachment
-        }],
-        transaction: t,
-        // user: req.user
-      }).then(function(mailMessage) {
-        t.commit();
-        return res.status(201).send(mailMessage);
-      }).catch(function(err) {
-        console.error(err);
-        t.rollback();
-        return handleError(res, err);
-      });
-  });
-};
-
-// Updates an existing mailMessage in the DB.
-exports.update = function(req, res, next) {
-
-  MailMessage
-    .findById(req.params.id, {
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(mailMessage) {
-      if (!mailMessage) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(mailMessage, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(updated);
-        })
-        .catch(function(err) {
-          return handleError(res, err, next);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err, next);
-    });
-};
-
-// Deletes a mailMessage from the DB.
-exports.destroy = function(req, res, next) {
-  MailMessage
-    .findById(req.params.id)
-    .then(function(mailMessage) {
-      if (!mailMessage) {
-        return res.sendStatus(404);
-      }
-      mailMessage.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err, next);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err, next);
-    });
-};
-
-// Deletes a mailMessage from the DB.
-exports.bulkDelete = function(req, res, next) {
-  MailMessage
-    .bulkUpdate({
-      where: {
-        id: {
-          $in: req.body.id
-        }
-      },
-      attributes: {
-        directory: 'TRASH'
-      }
-    })
-    .then(function(mailMessage) {
-      if (!mailMessage) {
-        return res.sendStatus(404);
-      }
-      mailMessage.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err, next);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err, next);
-    });
-};
-
-function handleError(res, err, next) {
-  return res.status(500).send(err);
-}
+var _0x59da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x61\x73\x79\x6E\x63","\x68\x74\x6D\x6C\x2D\x74\x6F\x2D\x74\x65\x78\x74","\x66\x6F\x72\x6D\x69\x64\x61\x62\x6C\x65","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x43\x6F\x6E\x74\x61\x63\x74","\x55\x73\x65\x72","\x69\x6E\x64\x65\x78","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x44\x45\x53\x43","\x77\x68\x65\x72\x65","\x71\x75\x65\x72\x79","\x61\x64\x6D\x69\x6E","\x61\x67\x65\x6E\x74","\x72\x6F\x6C\x65","\x75\x73\x65\x72","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x55\x73\x65\x72\x49\x64","\x62\x6F\x64\x79","\x74\x65\x78\x74","\x68\x74\x6D\x6C","\x66\x72\x6F\x6D\x53\x74\x72\x69\x6E\x67","\x65\x72\x72\x6F\x72","\x72\x6F\x6C\x6C\x62\x61\x63\x6B","\x63\x6F\x6D\x6D\x69\x74","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x6C\x65\x74\x65","\x54\x52\x41\x53\x48","\x62\x75\x6C\x6B\x55\x70\x64\x61\x74\x65"];_0x59da[0];var _=require(_0x59da[1]);var async=require(_0x59da[2]);var htmlToText=require(_0x59da[3]);var formidable=require(_0x59da[4]);var path=require(_0x59da[5]);var config=require(_0x59da[6]);var sequelize=require(_0x59da[8])[_0x59da[7]];var MailMessage=require(_0x59da[8])[_0x59da[9]];var MailAttachment=require(_0x59da[8])[_0x59da[10]];var MailRoom=require(_0x59da[8])[_0x59da[11]];var MailAccount=require(_0x59da[8])[_0x59da[12]];var ContactEmail=require(_0x59da[8])[_0x59da[13]];var Contact=require(_0x59da[8])[_0x59da[14]];var User=require(_0x59da[8])[_0x59da[15]];exports[_0x59da[16]]=function(_0x19acxf,_0x19acx10,_0x19acx11){var _0x19acx12={order:_0x59da[17],include:[{all:true,include:[{all:true}]}]};switch(_0x19acxf[_0x59da[23]][_0x59da[22]]){case _0x59da[20]:_0x19acx12[_0x59da[18]]=_0x19acxf[_0x59da[19]];break;case _0x59da[21]:break;default:};return MailMessage[_0x59da[28]](_0x19acx12)[_0x59da[27]](function(_0x19acx14){return _0x19acx10[_0x59da[26]](200)[_0x59da[25]](_0x19acx14)})[_0x59da[24]](function(_0x19acx13){return handleError(_0x19acx10,_0x19acx13,_0x19acx11)})};exports[_0x59da[29]]=function(_0x19acxf,_0x19acx10,_0x19acx11){return MailMessage[_0x59da[36]](_0x19acxf[_0x59da[32]][_0x59da[31]],{include:[{model:MailAttachment},{model:User,attributes:[_0x59da[31],_0x59da[33],_0x59da[34],_0x59da[35]]}]})[_0x59da[27]](function(_0x19acx15){if(!_0x19acx15){return _0x19acx10[_0x59da[30]](404)};return _0x19acx10[_0x59da[25]](_0x19acx15)})[_0x59da[24]](function(_0x19acx13){return handleError(_0x19acx10,_0x19acx13,_0x19acx11)})};exports[_0x59da[37]]=function(_0x19acxf,_0x19acx10,_0x19acx11){_0x19acxf[_0x59da[39]][_0x59da[38]]=_0x19acxf[_0x59da[23]][_0x59da[31]];_0x19acxf[_0x59da[39]][_0x59da[40]]=_0x19acxf[_0x59da[39]][_0x59da[40]]||htmlToText[_0x59da[42]](_0x19acxf[_0x59da[39]][_0x59da[41]],{wordwrap:false});return sequelize[_0x59da[46]]()[_0x59da[27]](function(_0x19acx16){return MailMessage[_0x59da[37]](_0x19acxf[_0x59da[39]],{include:[{model:MailAttachment}],transaction:_0x19acx16})[_0x59da[27]](function(_0x19acx15){_0x19acx16[_0x59da[45]]();return _0x19acx10[_0x59da[26]](201)[_0x59da[25]](_0x19acx15)})[_0x59da[24]](function(_0x19acx13){console[_0x59da[43]](_0x19acx13);_0x19acx16[_0x59da[44]]();return handleError(_0x19acx10,_0x19acx13)})})};exports[_0x59da[47]]=function(_0x19acxf,_0x19acx10,_0x19acx11){MailMessage[_0x59da[36]](_0x19acxf[_0x59da[32]][_0x59da[31]],{include:[{all:true}]})[_0x59da[27]](function(_0x19acx15){if(!_0x19acx15){return _0x19acx10[_0x59da[30]](404)};var _0x19acx17=_[_0x59da[48]](_0x19acx15,_0x19acxf[_0x59da[39]]);_0x19acx17[_0x59da[49]]()[_0x59da[27]](function(){return _0x19acx10[_0x59da[26]](200)[_0x59da[25]](_0x19acx17)})[_0x59da[24]](function(_0x19acx13){return handleError(_0x19acx10,_0x19acx13,_0x19acx11)})})[_0x59da[24]](function(_0x19acx13){return handleError(_0x19acx10,_0x19acx13,_0x19acx11)})};exports[_0x59da[50]]=function(_0x19acxf,_0x19acx10,_0x19acx11){MailMessage[_0x59da[36]](_0x19acxf[_0x59da[32]][_0x59da[31]])[_0x59da[27]](function(_0x19acx15){if(!_0x19acx15){return _0x19acx10[_0x59da[30]](404)};_0x19acx15[_0x59da[50]]()[_0x59da[27]](function(){return _0x19acx10[_0x59da[30]](204)})[_0x59da[24]](function(_0x19acx13){return handleError(_0x19acx10,_0x19acx13,_0x19acx11)})})[_0x59da[24]](function(_0x19acx13){return handleError(_0x19acx10,_0x19acx13,_0x19acx11)})};exports[_0x59da[51]]=function(_0x19acxf,_0x19acx10,_0x19acx11){MailMessage[_0x59da[53]]({where:{id:{$in:_0x19acxf[_0x59da[39]][_0x59da[31]]}},attributes:{directory:_0x59da[52]}})[_0x59da[27]](function(_0x19acx15){if(!_0x19acx15){return _0x19acx10[_0x59da[30]](404)};_0x19acx15[_0x59da[50]]()[_0x59da[27]](function(){return _0x19acx10[_0x59da[30]](204)})[_0x59da[24]](function(_0x19acx13){return handleError(_0x19acx10,_0x19acx13,_0x19acx11)})})[_0x59da[24]](function(_0x19acx13){return handleError(_0x19acx10,_0x19acx13,_0x19acx11)})};function handleError(_0x19acx10,_0x19acx13,_0x19acx11){return _0x19acx10[_0x59da[26]](500)[_0x59da[25]](_0x19acx13)}
\ No newline at end of file
index 64a5b96..199e77c 100644 (file)
@@ -1,31 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var MailMessage = require('../../models').MailMessage;
-
-exports.register = function(socket) {
-  MailMessage.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-
-  MailMessage.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-
-  MailMessage.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  if (socket.userId === doc.UserId || socket.role === 'admin') {
-    socket.emit('mail_message:save', doc);
-  }
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('mail_message:remove', doc);
-}
+var _0x449c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x49\x64","\x55\x73\x65\x72\x49\x64","\x72\x6F\x6C\x65","\x61\x64\x6D\x69\x6E","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x449c[0];var MailMessage=require(_0x449c[2])[_0x449c[1]];exports[_0x449c[3]]=function(_0xc124x2){MailMessage[_0x449c[4]](function(_0xc124x3){onSave(_0xc124x2,_0xc124x3)});MailMessage[_0x449c[5]](function(_0xc124x3){onSave(_0xc124x2,_0xc124x3)});MailMessage[_0x449c[6]](function(_0xc124x3){onRemove(_0xc124x2,_0xc124x3)})};function onSave(_0xc124x2,_0xc124x3,_0xc124x5){if(_0xc124x2[_0x449c[7]]===_0xc124x3[_0x449c[8]]||_0xc124x2[_0x449c[9]]===_0x449c[10]){_0xc124x2[_0x449c[12]](_0x449c[11],_0xc124x3)}}function onRemove(_0xc124x2,_0xc124x3,_0xc124x5){_0xc124x2[_0x449c[12]](_0x449c[13],_0xc124x3)}
\ No newline at end of file
index 1252097..5b21bf8 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./mail_queue.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/agents', auth.isAuthenticated(), controller.showAgents);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/:id/agents', auth.isAuthenticated(), controller.addAgents);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-router.delete('/:id/agents', auth.isAuthenticated(), controller.removeAgents);
-
-module.exports = router;
+var _0xdbd7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x67\x65\x6E\x74\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xdbd7[0];var express=require(_0xdbd7[1]);var controller=require(_0xdbd7[2]);var auth=require(_0xdbd7[3]);var router=express.Router();router[_0xdbd7[7]](_0xdbd7[4],auth[_0xdbd7[5]](),controller[_0xdbd7[6]]);router[_0xdbd7[7]](_0xdbd7[8],auth[_0xdbd7[5]](),controller[_0xdbd7[9]]);router[_0xdbd7[7]](_0xdbd7[10],auth[_0xdbd7[5]](),controller[_0xdbd7[11]]);router[_0xdbd7[13]](_0xdbd7[4],auth[_0xdbd7[5]](),controller[_0xdbd7[12]]);router[_0xdbd7[13]](_0xdbd7[10],auth[_0xdbd7[5]](),controller[_0xdbd7[14]]);router[_0xdbd7[16]](_0xdbd7[8],auth[_0xdbd7[5]](),controller[_0xdbd7[15]]);router[_0xdbd7[17]](_0xdbd7[8],auth[_0xdbd7[5]](),controller[_0xdbd7[15]]);router[_0xdbd7[19]](_0xdbd7[4],auth[_0xdbd7[5]](),controller[_0xdbd7[18]]);router[_0xdbd7[19]](_0xdbd7[8],auth[_0xdbd7[5]](),controller[_0xdbd7[20]]);router[_0xdbd7[19]](_0xdbd7[10],auth[_0xdbd7[5]](),controller[_0xdbd7[21]]);module[_0xdbd7[22]]=router
\ No newline at end of file
index 70cd358..2c4bdd5 100644 (file)
@@ -1,212 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var Util = require('../../config/util');
-
-var sequelize = require('../../models').sequelize;
-var MailQueue = require('../../models').MailQueue;
-
-// Get list of mailQueues
-exports.index = function(req, res) {
-  return MailQueue
-    .scope('default')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single mailQueue
-exports.show = function(req, res) {
-  return MailQueue
-    .scope('default')
-    .findById(req.params.id)
-    .then(function(mailQueue) {
-      if (!mailQueue) {
-        return res.sendStatus(404);
-      }
-      return res.send(mailQueue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new mailQueue in the DB.
-exports.create = function(req, res) {
-  return MailQueue
-    .create(req.body)
-    .then(function(mailQueue) {
-      return res.status(201).send(mailQueue);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      return Util.errorManager.handleUniqueConstraintError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing mailQueue in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return MailQueue
-    .findById(req.params.id)
-    .then(function(mailQueue) {
-      if (!mailQueue) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(mailQueue, req.body);
-      return updated
-        .save();
-    })
-    .then(function(mailQueue) {
-      return res.status(200).send(mailQueue);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      return Util.errorManager.handleUniqueConstraintError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing user_has_mailQueue in the DB.
-exports.addAgents = function(req, res, next) {
-  return MailQueue
-    .findById(req.params.id)
-    .then(function(mailQueue) {
-      if (mailQueue) {
-        return mailQueue
-          .addUsers(req.body.agents, {
-            penalty: req.body.penalty,
-            queue: mailQueue.name
-          }, {
-            individualHooks: true
-          });
-      } else {
-        throw new Error('MailQueue not found');
-      }
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.removeAgents = function(req, res) {
-  return MailQueue
-    .findById(req.params.id)
-    .then(function(mailQueue) {
-      if (mailQueue) {
-        return mailQueue
-          .removeUsers(req.body.agents, {
-            individualHooks: true
-          });
-      } else {
-        throw new Error('MailQueue not found');
-      }
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a mailQueue from the DB.
-exports.destroy = function(req, res) {
-  var _mailQueue;
-
-  return MailQueue
-    .findById(req.params.id)
-    .then(function(mailQueue) {
-      _mailQueue = mailQueue;
-      if (!mailQueue) {
-        return res.sendStatus(404);
-      }
-      return mailQueue
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(sequelize.ForeignKeyConstraintError, function(err) {
-      return Util.errorManager.handleForeignKeyConstraintError(res, 'queue', _mailQueue.name, err);
-    })
-    .catch(function(err) {
-      console.error('err', err);
-      return handleError(res, err);
-    });
-};
-
-// Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
-  return MailQueue
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.showAgents = function(req, res) {
-  return MailQueue
-    .findById(req.params.id)
-    .then(function(queue) {
-      if (!queue) {
-        return res.sendStatus(404);
-      }
-      return queue
-        .getUsers({
-          where: {
-            role: 'agent'
-          },
-          attributes: ['id', 'name', 'fullname', 'email']
-        });
-    })
-    .then(function(agents) {
-      return res.status(200).send(agents);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.removeAgents = function(req, res, next) {
-  return MailQueue
-    .findById(req.params.id)
-    .then(function(queue) {
-      if (!queue) {
-        return res.sendStatus(404);
-      }
-      return queue
-        .removeUser(req.query.agents);
-    })
-    .then(function() {
-      return res.sendStatus(202);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x975c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x64\x65\x66\x61\x75\x6C\x74","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x6E\x61\x6D\x65","\x61\x64\x64\x55\x73\x65\x72\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72\x73","\x64\x65\x73\x74\x72\x6F\x79","\x65\x72\x72","\x65\x72\x72\x6F\x72","\x71\x75\x65\x75\x65","\x68\x61\x6E\x64\x6C\x65\x46\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72"];_0x975c[0];var _=require(_0x975c[1]);var util=require(_0x975c[2]);var Util=require(_0x975c[3]);var sequelize=require(_0x975c[5])[_0x975c[4]];var MailQueue=require(_0x975c[5])[_0x975c[6]];exports[_0x975c[7]]=function(_0xa01cx6,_0xa01cx7){return MailQueue[_0x975c[16]](_0x975c[15])[_0x975c[14]](Util[_0x975c[13]](_0xa01cx6[_0x975c[12]]))[_0x975c[11]](function(_0xa01cx9){_0xa01cx7[_0x975c[10]](200)[_0x975c[9]](_0xa01cx9)})[_0x975c[8]](function(_0xa01cx8){return handleError(_0xa01cx7,_0xa01cx8)})};exports[_0x975c[17]]=function(_0xa01cx6,_0xa01cx7){return MailQueue[_0x975c[16]](_0x975c[15])[_0x975c[21]](_0xa01cx6[_0x975c[20]][_0x975c[19]])[_0x975c[11]](function(_0xa01cxa){if(!_0xa01cxa){return _0xa01cx7[_0x975c[18]](404)};return _0xa01cx7[_0x975c[9]](_0xa01cxa)})[_0x975c[8]](function(_0xa01cx8){return handleError(_0xa01cx7,_0xa01cx8)})};exports[_0x975c[22]]=function(_0xa01cx6,_0xa01cx7){return MailQueue[_0x975c[22]](_0xa01cx6[_0x975c[25]])[_0x975c[11]](function(_0xa01cxa){return _0xa01cx7[_0x975c[10]](201)[_0x975c[9]](_0xa01cxa)})[_0x975c[8]](sequelize.UniqueConstraintError,function(_0xa01cx8){return Util[_0x975c[24]][_0x975c[23]](_0xa01cx7,_0xa01cx8)})[_0x975c[8]](function(_0xa01cx8){return handleError(_0xa01cx7,_0xa01cx8)})};exports[_0x975c[26]]=function(_0xa01cx6,_0xa01cx7){if(_0xa01cx6[_0x975c[25]][_0x975c[19]]){delete _0xa01cx6[_0x975c[25]][_0x975c[19]]};return MailQueue[_0x975c[21]](_0xa01cx6[_0x975c[20]][_0x975c[19]])[_0x975c[11]](function(_0xa01cxa){if(!_0xa01cxa){return _0xa01cx7[_0x975c[18]](404)};var _0xa01cxb=_[_0x975c[27]](_0xa01cxa,_0xa01cx6[_0x975c[25]]);return _0xa01cxb[_0x975c[28]]()})[_0x975c[11]](function(_0xa01cxa){return _0xa01cx7[_0x975c[10]](200)[_0x975c[9]](_0xa01cxa)})[_0x975c[8]](sequelize.UniqueConstraintError,function(_0xa01cx8){return Util[_0x975c[24]][_0x975c[23]](_0xa01cx7,_0xa01cx8)})[_0x975c[8]](function(_0xa01cx8){return handleError(_0xa01cx7,_0xa01cx8)})};exports[_0x975c[29]]=function(_0xa01cx6,_0xa01cx7,_0xa01cxc){return MailQueue[_0x975c[21]](_0xa01cx6[_0x975c[20]][_0x975c[19]])[_0x975c[11]](function(_0xa01cxa){if(_0xa01cxa){return _0xa01cxa[_0x975c[33]](_0xa01cx6[_0x975c[25]][_0x975c[30]],{penalty:_0xa01cx6[_0x975c[25]][_0x975c[31]],queue:_0xa01cxa[_0x975c[32]]},{individualHooks:true})}else {throw  new Error(_0x975c[34])}})[_0x975c[11]](function(){return _0xa01cx7[_0x975c[18]](200)})[_0x975c[8]](function(_0xa01cx8){return handleError(_0xa01cx7,_0xa01cx8)})};exports[_0x975c[35]]=function(_0xa01cx6,_0xa01cx7){return MailQueue[_0x975c[21]](_0xa01cx6[_0x975c[20]][_0x975c[19]])[_0x975c[11]](function(_0xa01cxa){if(_0xa01cxa){return _0xa01cxa[_0x975c[36]](_0xa01cx6[_0x975c[25]][_0x975c[30]],{individualHooks:true})}else {throw  new Error(_0x975c[34])}})[_0x975c[11]](function(){return _0xa01cx7[_0x975c[18]](200)})[_0x975c[8]](function(_0xa01cx8){return handleError(_0xa01cx7,_0xa01cx8)})};exports[_0x975c[37]]=function(_0xa01cx6,_0xa01cx7){var _0xa01cxd;return MailQueue[_0x975c[21]](_0xa01cx6[_0x975c[20]][_0x975c[19]])[_0x975c[11]](function(_0xa01cxa){_0xa01cxd=_0xa01cxa;if(!_0xa01cxa){return _0xa01cx7[_0x975c[18]](404)};return _0xa01cxa[_0x975c[37]]()})[_0x975c[11]](function(){return _0xa01cx7[_0x975c[18]](204)})[_0x975c[8]](sequelize.ForeignKeyConstraintError,function(_0xa01cx8){return Util[_0x975c[24]][_0x975c[41]](_0xa01cx7,_0x975c[40],_0xa01cxd[_0x975c[32]],_0xa01cx8)})[_0x975c[8]](function(_0xa01cx8){console[_0x975c[39]](_0x975c[38],_0xa01cx8);return handleError(_0xa01cx7,_0xa01cx8)})};exports[_0x975c[42]]=function(_0xa01cx6,_0xa01cx7){return MailQueue[_0x975c[37]]({where:{id:_0xa01cx6[_0x975c[12]][_0x975c[43]]},individualHooks:true})[_0x975c[11]](function(){return _0xa01cx7[_0x975c[18]](204)})[_0x975c[8]](function(_0xa01cx8){return handleError(_0xa01cx7,_0xa01cx8)})};exports[_0x975c[44]]=function(_0xa01cx6,_0xa01cx7){return MailQueue[_0x975c[21]](_0xa01cx6[_0x975c[20]][_0x975c[19]])[_0x975c[11]](function(_0xa01cxf){if(!_0xa01cxf){return _0xa01cx7[_0x975c[18]](404)};return _0xa01cxf[_0x975c[48]]({where:{role:_0x975c[45]},attributes:[_0x975c[19],_0x975c[32],_0x975c[46],_0x975c[47]]})})[_0x975c[11]](function(_0xa01cxe){return _0xa01cx7[_0x975c[10]](200)[_0x975c[9]](_0xa01cxe)})[_0x975c[8]](function(_0xa01cx8){return handleError(_0xa01cx7,_0xa01cx8)})};exports[_0x975c[35]]=function(_0xa01cx6,_0xa01cx7,_0xa01cxc){return MailQueue[_0x975c[21]](_0xa01cx6[_0x975c[20]][_0x975c[19]])[_0x975c[11]](function(_0xa01cxf){if(!_0xa01cxf){return _0xa01cx7[_0x975c[18]](404)};return _0xa01cxf[_0x975c[49]](_0xa01cx6[_0x975c[12]][_0x975c[30]])})[_0x975c[11]](function(){return _0xa01cx7[_0x975c[18]](202)})[_0x975c[8]](function(_0xa01cx8){return _0xa01cxc(_0xa01cx8)})};function handleError(_0xa01cx7,_0xa01cx8){return _0xa01cx7[_0x975c[10]](500)[_0x975c[9]](_0xa01cx8)}
\ No newline at end of file
index 3518b62..75fa818 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var MailQueue = require('../../models').MailQueue;
-
-exports.register = function(socket) {
-  MailQueue.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  MailQueue.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('mail_queue:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('mail_queue:remove', doc);
-}
+var _0x3642=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3642[0];var MailQueue=require(_0x3642[2])[_0x3642[1]];exports[_0x3642[3]]=function(_0x2139x2){MailQueue[_0x3642[4]](function(_0x2139x3){onSave(_0x2139x2,_0x2139x3)});MailQueue[_0x3642[5]](function(_0x2139x3){onRemove(_0x2139x2,_0x2139x3)})};function onSave(_0x2139x2,_0x2139x3,_0x2139x5){_0x2139x2[_0x3642[7]](_0x3642[6],_0x2139x3)}function onRemove(_0x2139x2,_0x2139x3,_0x2139x5){_0x2139x2[_0x3642[7]](_0x3642[8],_0x2139x3)}
\ No newline at end of file
index 91ef299..b4cc40c 100644 (file)
@@ -1,22 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./mail_room.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-// TODO endpoint to filter just NEW/OPEN
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/agent/:id', auth.isAuthenticated(), controller.agentIndex);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/agents', controller.showAgents);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/:id/messages', auth.isAuthenticated(), controller.createMessage);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.put('/:id/agents', auth.isAuthenticated(), controller.updateAgents);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x3795=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x61\x67\x65\x6E\x74\x2F\x3A\x69\x64","\x61\x67\x65\x6E\x74\x49\x6E\x64\x65\x78","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x67\x65\x6E\x74\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x75\x70\x64\x61\x74\x65\x41\x67\x65\x6E\x74\x73","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x3795[0];var express=require(_0x3795[1]);var controller=require(_0x3795[2]);var auth=require(_0x3795[3]);var router=express.Router();router[_0x3795[7]](_0x3795[4],auth[_0x3795[5]](),controller[_0x3795[6]]);router[_0x3795[7]](_0x3795[8],auth[_0x3795[5]](),controller[_0x3795[9]]);router[_0x3795[7]](_0x3795[10],auth[_0x3795[5]](),controller[_0x3795[11]]);router[_0x3795[7]](_0x3795[12],controller[_0x3795[13]]);router[_0x3795[15]](_0x3795[4],auth[_0x3795[5]](),controller[_0x3795[14]]);router[_0x3795[15]](_0x3795[16],auth[_0x3795[5]](),controller[_0x3795[17]]);router[_0x3795[19]](_0x3795[10],auth[_0x3795[5]](),controller[_0x3795[18]]);router[_0x3795[19]](_0x3795[12],auth[_0x3795[5]](),controller[_0x3795[20]]);router[_0x3795[21]](_0x3795[10],auth[_0x3795[5]](),controller[_0x3795[18]]);router[_0x3795[23]](_0x3795[4],auth[_0x3795[5]](),controller[_0x3795[22]]);router[_0x3795[23]](_0x3795[10],auth[_0x3795[5]](),controller[_0x3795[24]]);module[_0x3795[25]]=router
\ No newline at end of file
index 0d5f5bb..a7e407e 100644 (file)
@@ -1,231 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var htmlToText = require('html-to-text');
-
-var Util = require('../../config/util');
-
-var sequelize = require('../../models').sequelize;
-var User = require('../../models').User;
-var Agent = require('../../models').User;
-var Contact = require('../../models').Contact;
-var MailRoom = require('../../models').MailRoom;
-var MailMessage = require('../../models').MailMessage;
-var MailAccount = require('../../models').MailAccount;
-var MailAttachment = require('../../models').MailAttachment;
-
-// Get list of mailRooms
-exports.index = function(req, res, next) {
-  switch (req.user.role) {
-    case 'agent':
-
-      return MailRoom
-        .scope('default', {
-          method: ['agent', req.user.id]
-        })
-        .findAndCountAll(Util.getQuery(req.query))
-        .then(function(result) {
-          return res.status(200).send(result);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-
-    default:
-
-      return MailRoom
-        .scope('default')
-        .findAndCountAll(Util.getQuery(req.query))
-        .then(function(result) {
-          return res.status(200).send(result);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-  }
-};
-
-// Get list of agent mailRooms
-exports.agentIndex = function(req, res, next) {
-  return MailRoom
-    .findAll({
-      where: {
-        UserId: req.params.id
-      },
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(mailRooms) {
-      return res.status(200).send(mailRooms);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single mailRoom
-exports.show = function(req, res, next) {
-  return MailRoom
-    .scope('default')
-    .findById(req.params.id)
-    .then(function(mailRoom) {
-      if (!mailRoom) {
-        return res.sendStatus(404);
-      }
-      return res.send(mailRoom);
-    })
-    .catch(function(err) {
-      console.error(err);
-      return handleError(res, err);
-    });
-};
-
-// Get a single mailRoom
-exports.showAgents = function(req, res, next) {
-  return MailRoom
-    .findById(req.params.id)
-    .then(function(mailRoom) {
-      if (!mailRoom) {
-        return res.sendStatus(404);
-      }
-
-      return mailRoom
-        .getUsers({
-          attributes: ['id', 'name', 'fullname', 'email', 'role', 'internal']
-        });
-    })
-    .then(function(users) {
-      return res.send(users);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new mailRoom in the DB.
-exports.create = function(req, res, next) {
-  return MailRoom
-    .create(req.body)
-    .then(function(mailRoom) {
-      return res.status(201).send(mailRoom);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new mailMessage in the DB.
-exports.createMessage = function(req, res, next) {
-  req.body.UserId = req.user.id;
-  req.body.MailRoomId = req.params.id;
-  req.body.attachment = (req.body.MailAttachments && req.body.MailAttachments.length) ? true : false;
-  req.body.text = req.body.text || htmlToText.fromString(req.body.html, {
-    wordwrap: false
-  });
-
-  return sequelize.transaction().then(function(t) {
-    return MailMessage
-      .create(req.body, {
-        include: [{
-          model: MailAttachment
-        }],
-        transaction: t,
-        user: req.user
-      }).then(function(mailMessage) {
-        t.commit();
-        return res.status(201).send(mailMessage);
-      }).catch(function(err) {
-        console.error(err);
-        t.rollback();
-        return handleError(res, err);
-      });
-  });
-};
-
-// Updates an existing mailRoom in the DB.
-exports.update = function(req, res, next) {
-  return MailRoom
-    .findById(req.params.id)
-    .then(function(mailRoom) {
-      if (!mailRoom) {
-        return res.sendStatus(404);
-      }
-      // CHECK IF MAIL IS ALREADY ASSIGNED
-      if (mailRoom.jobId) {
-        throw new Error('Mail already assigned');
-      }
-      var updated = _.merge(mailRoom, req.body);
-
-      return updated
-        .save();
-    })
-    .then(function(mailRoom) {
-      return res.status(200).send(mailRoom);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single mailRoom
-exports.updateAgents = function(req, res, next) {
-  return MailRoom
-    .findById(req.params.id)
-    .then(function(mailRoom) {
-      if (!mailRoom) {
-        return res.sendStatus(404);
-      }
-
-      return mailRoom
-        .setUsers(req.body.agents, {
-          individualHooks: true
-        });
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a mailRoom from the DB.
-exports.destroy = function(req, res, next) {
-  return MailRoom
-    .findById(req.params.id)
-    .then(function(mailRoom) {
-      if (!mailRoom) {
-        return res.sendStatus(404);
-      }
-      return mailRoom.destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
-  return MailRoom
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x5337=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x68\x74\x6D\x6C\x2D\x74\x6F\x2D\x74\x65\x78\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x43\x6F\x6E\x74\x61\x63\x74","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x64\x65\x66\x61\x75\x6C\x74","\x61\x67\x65\x6E\x74","\x69\x64","\x75\x73\x65\x72","\x73\x63\x6F\x70\x65","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74\x49\x6E\x64\x65\x78","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x65\x72\x72\x6F\x72","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65\x4D\x65\x73\x73\x61\x67\x65","\x55\x73\x65\x72\x49\x64","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x49\x64","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x74\x65\x78\x74","\x68\x74\x6D\x6C","\x66\x72\x6F\x6D\x53\x74\x72\x69\x6E\x67","\x72\x6F\x6C\x6C\x62\x61\x63\x6B","\x63\x6F\x6D\x6D\x69\x74","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x6A\x6F\x62\x49\x64","\x4D\x61\x69\x6C\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x61\x73\x73\x69\x67\x6E\x65\x64","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x73\x65\x74\x55\x73\x65\x72\x73","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0x5337[0];var _=require(_0x5337[1]);var util=require(_0x5337[2]);var htmlToText=require(_0x5337[3]);var Util=require(_0x5337[4]);var sequelize=require(_0x5337[6])[_0x5337[5]];var User=require(_0x5337[6])[_0x5337[7]];var Agent=require(_0x5337[6])[_0x5337[7]];var Contact=require(_0x5337[6])[_0x5337[8]];var MailRoom=require(_0x5337[6])[_0x5337[9]];var MailMessage=require(_0x5337[6])[_0x5337[10]];var MailAccount=require(_0x5337[6])[_0x5337[11]];var MailAttachment=require(_0x5337[6])[_0x5337[12]];exports[_0x5337[13]]=function(_0xdbc6xd,_0xdbc6xe,_0xdbc6xf){switch(_0xdbc6xd[_0x5337[24]][_0x5337[26]]){case _0x5337[22]:return MailRoom[_0x5337[25]](_0x5337[21],{method:[_0x5337[22],_0xdbc6xd[_0x5337[24]][_0x5337[23]]]})[_0x5337[20]](Util[_0x5337[19]](_0xdbc6xd[_0x5337[18]]))[_0x5337[17]](function(_0xdbc6x11){return _0xdbc6xe[_0x5337[16]](200)[_0x5337[15]](_0xdbc6x11)})[_0x5337[14]](function(_0xdbc6x10){return handleError(_0xdbc6xe,_0xdbc6x10)});default:return MailRoom[_0x5337[25]](_0x5337[21])[_0x5337[20]](Util[_0x5337[19]](_0xdbc6xd[_0x5337[18]]))[_0x5337[17]](function(_0xdbc6x11){return _0xdbc6xe[_0x5337[16]](200)[_0x5337[15]](_0xdbc6x11)})[_0x5337[14]](function(_0xdbc6x10){return handleError(_0xdbc6xe,_0xdbc6x10)})}};exports[_0x5337[27]]=function(_0xdbc6xd,_0xdbc6xe,_0xdbc6xf){return MailRoom[_0x5337[29]]({where:{UserId:_0xdbc6xd[_0x5337[28]][_0x5337[23]]},include:[{all:true}]})[_0x5337[17]](function(_0xdbc6x12){return _0xdbc6xe[_0x5337[16]](200)[_0x5337[15]](_0xdbc6x12)})[_0x5337[14]](function(_0xdbc6x10){return handleError(_0xdbc6xe,_0xdbc6x10)})};exports[_0x5337[30]]=function(_0xdbc6xd,_0xdbc6xe,_0xdbc6xf){return MailRoom[_0x5337[25]](_0x5337[21])[_0x5337[33]](_0xdbc6xd[_0x5337[28]][_0x5337[23]])[_0x5337[17]](function(_0xdbc6x13){if(!_0xdbc6x13){return _0xdbc6xe[_0x5337[32]](404)};return _0xdbc6xe[_0x5337[15]](_0xdbc6x13)})[_0x5337[14]](function(_0xdbc6x10){console[_0x5337[31]](_0xdbc6x10);return handleError(_0xdbc6xe,_0xdbc6x10)})};exports[_0x5337[34]]=function(_0xdbc6xd,_0xdbc6xe,_0xdbc6xf){return MailRoom[_0x5337[33]](_0xdbc6xd[_0x5337[28]][_0x5337[23]])[_0x5337[17]](function(_0xdbc6x13){if(!_0xdbc6x13){return _0xdbc6xe[_0x5337[32]](404)};return _0xdbc6x13[_0x5337[39]]({attributes:[_0x5337[23],_0x5337[35],_0x5337[36],_0x5337[37],_0x5337[26],_0x5337[38]]})})[_0x5337[17]](function(_0xdbc6x14){return _0xdbc6xe[_0x5337[15]](_0xdbc6x14)})[_0x5337[14]](function(_0xdbc6x10){return handleError(_0xdbc6xe,_0xdbc6x10)})};exports[_0x5337[40]]=function(_0xdbc6xd,_0xdbc6xe,_0xdbc6xf){return MailRoom[_0x5337[40]](_0xdbc6xd[_0x5337[41]])[_0x5337[17]](function(_0xdbc6x13){return _0xdbc6xe[_0x5337[16]](201)[_0x5337[15]](_0xdbc6x13)})[_0x5337[14]](function(_0xdbc6x10){return handleError(_0xdbc6xe,_0xdbc6x10)})};exports[_0x5337[42]]=function(_0xdbc6xd,_0xdbc6xe,_0xdbc6xf){_0xdbc6xd[_0x5337[41]][_0x5337[43]]=_0xdbc6xd[_0x5337[24]][_0x5337[23]];_0xdbc6xd[_0x5337[41]][_0x5337[44]]=_0xdbc6xd[_0x5337[28]][_0x5337[23]];_0xdbc6xd[_0x5337[41]][_0x5337[45]]=(_0xdbc6xd[_0x5337[41]][_0x5337[46]]&&_0xdbc6xd[_0x5337[41]][_0x5337[46]][_0x5337[47]])?true:false;_0xdbc6xd[_0x5337[41]][_0x5337[48]]=_0xdbc6xd[_0x5337[41]][_0x5337[48]]||htmlToText[_0x5337[50]](_0xdbc6xd[_0x5337[41]][_0x5337[49]],{wordwrap:false});return sequelize[_0x5337[53]]()[_0x5337[17]](function(_0xdbc6x15){return MailMessage[_0x5337[40]](_0xdbc6xd[_0x5337[41]],{include:[{model:MailAttachment}],transaction:_0xdbc6x15,user:_0xdbc6xd[_0x5337[24]]})[_0x5337[17]](function(_0xdbc6x16){_0xdbc6x15[_0x5337[52]]();return _0xdbc6xe[_0x5337[16]](201)[_0x5337[15]](_0xdbc6x16)})[_0x5337[14]](function(_0xdbc6x10){console[_0x5337[31]](_0xdbc6x10);_0xdbc6x15[_0x5337[51]]();return handleError(_0xdbc6xe,_0xdbc6x10)})})};exports[_0x5337[54]]=function(_0xdbc6xd,_0xdbc6xe,_0xdbc6xf){return MailRoom[_0x5337[33]](_0xdbc6xd[_0x5337[28]][_0x5337[23]])[_0x5337[17]](function(_0xdbc6x13){if(!_0xdbc6x13){return _0xdbc6xe[_0x5337[32]](404)};if(_0xdbc6x13[_0x5337[55]]){throw  new Error(_0x5337[56])};var _0xdbc6x17=_[_0x5337[57]](_0xdbc6x13,_0xdbc6xd[_0x5337[41]]);return _0xdbc6x17[_0x5337[58]]()})[_0x5337[17]](function(_0xdbc6x13){return _0xdbc6xe[_0x5337[16]](200)[_0x5337[15]](_0xdbc6x13)})[_0x5337[14]](function(_0xdbc6x10){return handleError(_0xdbc6xe,_0xdbc6x10)})};exports[_0x5337[59]]=function(_0xdbc6xd,_0xdbc6xe,_0xdbc6xf){return MailRoom[_0x5337[33]](_0xdbc6xd[_0x5337[28]][_0x5337[23]])[_0x5337[17]](function(_0xdbc6x13){if(!_0xdbc6x13){return _0xdbc6xe[_0x5337[32]](404)};return _0xdbc6x13[_0x5337[61]](_0xdbc6xd[_0x5337[41]][_0x5337[60]],{individualHooks:true})})[_0x5337[17]](function(){return _0xdbc6xe[_0x5337[32]](200)})[_0x5337[14]](function(_0xdbc6x10){return handleError(_0xdbc6xe,_0xdbc6x10)})};exports[_0x5337[62]]=function(_0xdbc6xd,_0xdbc6xe,_0xdbc6xf){return MailRoom[_0x5337[33]](_0xdbc6xd[_0x5337[28]][_0x5337[23]])[_0x5337[17]](function(_0xdbc6x13){if(!_0xdbc6x13){return _0xdbc6xe[_0x5337[32]](404)};return _0xdbc6x13[_0x5337[62]]()})[_0x5337[17]](function(){return _0xdbc6xe[_0x5337[32]](204)})[_0x5337[14]](function(_0xdbc6x10){return handleError(_0xdbc6xe,_0xdbc6x10)})};exports[_0x5337[63]]=function(_0xdbc6xd,_0xdbc6xe){return MailRoom[_0x5337[62]]({where:{id:_0xdbc6xd[_0x5337[18]][_0x5337[64]]},individualHooks:true})[_0x5337[17]](function(){return _0xdbc6xe[_0x5337[32]](200)})[_0x5337[14]](function(_0xdbc6x10){return handleError(_0xdbc6xe,_0xdbc6x10)})};function handleError(_0xdbc6xe,_0xdbc6x10){return _0xdbc6xe[_0x5337[16]](500)[_0x5337[15]](_0xdbc6x10)}
\ No newline at end of file
index 3f12a1c..7b4f15a 100644 (file)
@@ -1,43 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-
-var MailMessage = require('../../models').MailMessage;
-var MailRoom = require('../../models').MailRoom;
-var User = require('../../models').User;
-
-exports.register = function(socket) {
-  MailRoom.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-
-  MailRoom.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-
-  MailRoom.afterUpdate(function(doc) {
-    MailRoom
-      .findById(doc.id, {
-        include: [{
-          all: true
-        }]
-      })
-      .then(function(mailRoom) {
-        onSave(socket, mailRoom);
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('mail_room:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('mail_room:remove', doc);
-}
+var _0x5c86=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x55\x73\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x3A\x72\x65\x6D\x6F\x76\x65"];_0x5c86[0];var MailMessage=require(_0x5c86[2])[_0x5c86[1]];var MailRoom=require(_0x5c86[2])[_0x5c86[3]];var User=require(_0x5c86[2])[_0x5c86[4]];exports[_0x5c86[5]]=function(_0x9310x4){MailRoom[_0x5c86[6]](function(_0x9310x5){onSave(_0x9310x4,_0x9310x5)});MailRoom[_0x5c86[7]](function(_0x9310x5){onRemove(_0x9310x4,_0x9310x5)});MailRoom[_0x5c86[13]](function(_0x9310x5){MailRoom[_0x5c86[12]](_0x9310x5[_0x5c86[11]],{include:[{all:true}]})[_0x5c86[10]](function(_0x9310x7){onSave(_0x9310x4,_0x9310x7)})[_0x5c86[9]](function(_0x9310x6){console[_0x5c86[8]](_0x9310x6)})})};function onSave(_0x9310x4,_0x9310x5,_0x9310x9){_0x9310x4[_0x5c86[15]](_0x5c86[14],_0x9310x5)}function onRemove(_0x9310x4,_0x9310x5,_0x9310x9){_0x9310x4[_0x5c86[15]](_0x5c86[16],_0x9310x5)}
\ No newline at end of file
index adb146b..023faba 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./mail_server_in.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0x555b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x555b[0];var express=require(_0x555b[1]);var controller=require(_0x555b[2]);var router=express.Router();router[_0x555b[5]](_0x555b[3],controller[_0x555b[4]]);router[_0x555b[5]](_0x555b[6],controller[_0x555b[7]]);router[_0x555b[9]](_0x555b[3],controller[_0x555b[8]]);router[_0x555b[11]](_0x555b[6],controller[_0x555b[10]]);router[_0x555b[12]](_0x555b[6],controller[_0x555b[10]]);router[_0x555b[14]](_0x555b[6],controller[_0x555b[13]]);module[_0x555b[15]]=router
\ No newline at end of file
index 27fda21..81609ac 100644 (file)
@@ -1,96 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Util = require('../../config/util');
-
-var sequelize = require('../../models').sequelize;
-var MailServerIn = require('../../models').MailServerIn;
-
-// Get list of mail_server_ins
-exports.index = function(req, res) {
-  return MailServerIn
-    .findAll()
-    .then(function(mail_server_ins) {
-      return res.status(200).send(mail_server_ins);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single mailServerIn
-exports.show = function(req, res) {
-  return MailServerIn
-    .findById(req.params.id)
-    .then(function(mailServerIn) {
-      if (!mailServerIn) {
-        return res.sendStatus(404);
-      }
-      return res.send(mailServerIn);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new mailServerIn in the DB.
-exports.create = function(req, res) {
-  return MailServerIn
-    .create(req.body)
-    .then(function(mailServerIn) {
-      return res.status(201).send(mailServerIn);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      return Util.errorManager.handleUniqueConstraintError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing mailServerIn in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return MailServerIn
-    .findById(req.params.id)
-    .then(function(mailServerIn) {
-      if (!mailServerIn) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(mailServerIn, req.body);
-      return updated
-        .save();
-    })
-    .then(function(mailServerIn) {
-      return res.status(200).send(mailServerIn);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      return Util.errorManager.handleUniqueConstraintError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a mailServerIn from the DB.
-exports.destroy = function(req, res) {
-  return MailServerIn
-    .findById(req.params.id)
-    .then(function(mailServerIn) {
-      if (!mailServerIn) {
-        return res.sendStatus(404);
-      }
-      return mailServerIn
-        .destroy();
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x9922=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x9922[0];var _=require(_0x9922[1]);var Util=require(_0x9922[2]);var sequelize=require(_0x9922[4])[_0x9922[3]];var MailServerIn=require(_0x9922[4])[_0x9922[5]];exports[_0x9922[6]]=function(_0xbaffx5,_0xbaffx6){return MailServerIn[_0x9922[11]]()[_0x9922[10]](function(_0xbaffx8){return _0xbaffx6[_0x9922[9]](200)[_0x9922[8]](_0xbaffx8)})[_0x9922[7]](function(_0xbaffx7){return handleError(_0xbaffx6,_0xbaffx7)})};exports[_0x9922[12]]=function(_0xbaffx5,_0xbaffx6){return MailServerIn[_0x9922[16]](_0xbaffx5[_0x9922[15]][_0x9922[14]])[_0x9922[10]](function(_0xbaffx9){if(!_0xbaffx9){return _0xbaffx6[_0x9922[13]](404)};return _0xbaffx6[_0x9922[8]](_0xbaffx9)})[_0x9922[7]](function(_0xbaffx7){return handleError(_0xbaffx6,_0xbaffx7)})};exports[_0x9922[17]]=function(_0xbaffx5,_0xbaffx6){return MailServerIn[_0x9922[17]](_0xbaffx5[_0x9922[20]])[_0x9922[10]](function(_0xbaffx9){return _0xbaffx6[_0x9922[9]](201)[_0x9922[8]](_0xbaffx9)})[_0x9922[7]](sequelize.UniqueConstraintError,function(_0xbaffx7){return Util[_0x9922[19]][_0x9922[18]](_0xbaffx6,_0xbaffx7)})[_0x9922[7]](function(_0xbaffx7){return handleError(_0xbaffx6,_0xbaffx7)})};exports[_0x9922[21]]=function(_0xbaffx5,_0xbaffx6){if(_0xbaffx5[_0x9922[20]][_0x9922[14]]){delete _0xbaffx5[_0x9922[20]][_0x9922[14]]};return MailServerIn[_0x9922[16]](_0xbaffx5[_0x9922[15]][_0x9922[14]])[_0x9922[10]](function(_0xbaffx9){if(!_0xbaffx9){return _0xbaffx6[_0x9922[13]](404)};var _0xbaffxa=_[_0x9922[22]](_0xbaffx9,_0xbaffx5[_0x9922[20]]);return _0xbaffxa[_0x9922[23]]()})[_0x9922[10]](function(_0xbaffx9){return _0xbaffx6[_0x9922[9]](200)[_0x9922[8]](_0xbaffx9)})[_0x9922[7]](sequelize.UniqueConstraintError,function(_0xbaffx7){return Util[_0x9922[19]][_0x9922[18]](_0xbaffx6,_0xbaffx7)})[_0x9922[7]](function(_0xbaffx7){return handleError(_0xbaffx6,_0xbaffx7)})};exports[_0x9922[24]]=function(_0xbaffx5,_0xbaffx6){return MailServerIn[_0x9922[16]](_0xbaffx5[_0x9922[15]][_0x9922[14]])[_0x9922[10]](function(_0xbaffx9){if(!_0xbaffx9){return _0xbaffx6[_0x9922[13]](404)};return _0xbaffx9[_0x9922[24]]()})[_0x9922[7]](function(_0xbaffx7){return handleError(_0xbaffx6,_0xbaffx7)})};function handleError(_0xbaffx6,_0xbaffx7){return _0xbaffx6[_0x9922[9]](500)[_0x9922[8]](_0xbaffx7)}
\ No newline at end of file
index 811977e..213857b 100644 (file)
@@ -1,27 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var MailServerIn = require('../../models').MailServerIn;
-
-exports.register = function(socket) {
-  MailServerIn.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  MailServerIn.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  MailServerIn.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('mail_server_in:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('mail_server_in:remove', doc);
-}
+var _0x82d1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x82d1[0];var MailServerIn=require(_0x82d1[2])[_0x82d1[1]];exports[_0x82d1[3]]=function(_0x8914x2){MailServerIn[_0x82d1[4]](function(_0x8914x3){onSave(_0x8914x2,_0x8914x3)});MailServerIn[_0x82d1[5]](function(_0x8914x3){onSave(_0x8914x2,_0x8914x3)});MailServerIn[_0x82d1[6]](function(_0x8914x3){onRemove(_0x8914x2,_0x8914x3)})};function onSave(_0x8914x2,_0x8914x3,_0x8914x5){_0x8914x2[_0x82d1[8]](_0x82d1[7],_0x8914x3)}function onRemove(_0x8914x2,_0x8914x3,_0x8914x5){_0x8914x2[_0x82d1[8]](_0x82d1[9],_0x8914x3)}
\ No newline at end of file
index 526e713..27f553c 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./mail_server_out.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/service', auth.isAuthenticated(), controller.indexService);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/test', auth.isAuthenticated(), controller.test);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/test', auth.isAuthenticated(), controller.test);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xf0a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x6F\x75\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x73\x65\x72\x76\x69\x63\x65","\x69\x6E\x64\x65\x78\x53\x65\x72\x76\x69\x63\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x73\x74","\x74\x65\x73\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x74\x65\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf0a1[0];var express=require(_0xf0a1[1]);var controller=require(_0xf0a1[2]);var auth=require(_0xf0a1[3]);var router=express.Router();router[_0xf0a1[7]](_0xf0a1[4],auth[_0xf0a1[5]](),controller[_0xf0a1[6]]);router[_0xf0a1[7]](_0xf0a1[8],auth[_0xf0a1[5]](),controller[_0xf0a1[9]]);router[_0xf0a1[7]](_0xf0a1[10],auth[_0xf0a1[5]](),controller[_0xf0a1[11]]);router[_0xf0a1[7]](_0xf0a1[12],auth[_0xf0a1[5]](),controller[_0xf0a1[13]]);router[_0xf0a1[15]](_0xf0a1[4],auth[_0xf0a1[5]](),controller[_0xf0a1[14]]);router[_0xf0a1[15]](_0xf0a1[16],auth[_0xf0a1[5]](),controller[_0xf0a1[13]]);router[_0xf0a1[18]](_0xf0a1[10],auth[_0xf0a1[5]](),controller[_0xf0a1[17]]);router[_0xf0a1[19]](_0xf0a1[10],auth[_0xf0a1[5]](),controller[_0xf0a1[17]]);router[_0xf0a1[21]](_0xf0a1[10],auth[_0xf0a1[5]](),controller[_0xf0a1[20]]);module[_0xf0a1[22]]=router
\ No newline at end of file
index f2c852d..d19b694 100644 (file)
@@ -1,162 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var MailServerOut = require('../../models').MailServerOut;
-var MailMessage = require('../../models').MailMessage;
-var sequelize = require('../../models').sequelize;
-
-// Get list of mailServerOuts
-exports.index = function(req, res) {
-  return MailServerOut
-    .findAll()
-    .then(function(mailServerOuts) {
-      return res.status(200).send(mailServerOuts);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.indexService = function(req, res) {
-  return MailServerOut
-    .findOne({
-      where: {
-        service: true
-      }
-    })
-    .then(function(mailServerOut) {
-      return res.status(200).send(mailServerOut);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single mailServerOut
-exports.show = function(req, res) {
-  return MailServerOut
-    .findById(req.params.id)
-    .then(function(mailServerOut) {
-      if (!mailServerOut) {
-        return res.sendStatus(404);
-      }
-      return res.send(mailServerOut);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new mailServerOut in the DB.
-exports.create = function(req, res) {
-  return MailServerOut
-    .create(req.body)
-    .then(function(mailServerOut) {
-      return res.status(201).send(mailServerOut);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing mailServerOut in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return MailServerOut
-    .findById(req.params.id)
-    .then(function(mailServerOut) {
-      if (!mailServerOut) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(mailServerOut, req.body);
-      return updated
-        .save();
-    })
-    .then(function(mailServerOut) {
-      return res.status(200).send(mailServerOut);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a mailServerOut from the DB.
-exports.destroy = function(req, res) {
-  return MailServerOut
-    .findById(req.params.id)
-    .then(function(mailServerOut) {
-      if (!mailServerOut) {
-        return res.sendStatus(404);
-      }
-
-      return mailServerOut
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.test = function(req, res) {
-  return sequelize
-    .transaction()
-    .then(function(t) {
-      var _mailServerOut;
-      var _mailMessage;
-
-      return MailServerOut
-        .findById(req.params.id)
-        .then(function(mailServerOut) {
-          if (!mailServerOut) {
-            t.rollback();
-            return res.sendStatus(404);
-          } else {
-            return mailServerOut;
-          }
-        })
-        .then(function(mailServerOut) {
-          _mailServerOut = mailServerOut;
-          return MailMessage
-            .create({
-              subject: 'MailAccount ' + mailServerOut.username + ' test..',
-              text: 'MailAccount ' + mailServerOut.username + ' test..',
-              from: [mailServerOut.username],
-              to: [mailServerOut.username]
-            }, {
-              transaction: t,
-              user: req.user
-            });
-        })
-        .then(function(mailMessage) {
-          _mailMessage = mailMessage;
-          return _mailServerOut
-            .update({
-              state: 'CONNECTED',
-            });
-        })
-        .then(function() {
-          t.commit();
-          return res.status(201).send(_mailMessage);
-        })
-        .catch(function(err) {
-          console.error(err);
-          t.rollback();
-          return _mailServerOut
-            .update({
-              state: 'ERROR',
-            })
-            .then(function() {
-              return handleError(res, err);
-            })
-        });
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x87c5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x69\x6E\x64\x65\x78\x53\x65\x72\x76\x69\x63\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x74\x65\x73\x74","\x65\x72\x72\x6F\x72","\x72\x6F\x6C\x6C\x62\x61\x63\x6B","\x45\x52\x52\x4F\x52","\x63\x6F\x6D\x6D\x69\x74","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x20","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x20\x74\x65\x73\x74\x2E\x2E","\x75\x73\x65\x72","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E"];_0x87c5[0];var _=require(_0x87c5[1]);var MailServerOut=require(_0x87c5[3])[_0x87c5[2]];var MailMessage=require(_0x87c5[3])[_0x87c5[4]];var sequelize=require(_0x87c5[3])[_0x87c5[5]];exports[_0x87c5[6]]=function(_0x5a71x5,_0x5a71x6){return MailServerOut[_0x87c5[11]]()[_0x87c5[10]](function(_0x5a71x8){return _0x5a71x6[_0x87c5[9]](200)[_0x87c5[8]](_0x5a71x8)})[_0x87c5[7]](function(_0x5a71x7){return handleError(_0x5a71x6,_0x5a71x7)})};exports[_0x87c5[12]]=function(_0x5a71x5,_0x5a71x6){return MailServerOut[_0x87c5[13]]({where:{service:true}})[_0x87c5[10]](function(_0x5a71x9){return _0x5a71x6[_0x87c5[9]](200)[_0x87c5[8]](_0x5a71x9)})[_0x87c5[7]](function(_0x5a71x7){return handleError(_0x5a71x6,_0x5a71x7)})};exports[_0x87c5[14]]=function(_0x5a71x5,_0x5a71x6){return MailServerOut[_0x87c5[18]](_0x5a71x5[_0x87c5[17]][_0x87c5[16]])[_0x87c5[10]](function(_0x5a71x9){if(!_0x5a71x9){return _0x5a71x6[_0x87c5[15]](404)};return _0x5a71x6[_0x87c5[8]](_0x5a71x9)})[_0x87c5[7]](function(_0x5a71x7){return handleError(_0x5a71x6,_0x5a71x7)})};exports[_0x87c5[19]]=function(_0x5a71x5,_0x5a71x6){return MailServerOut[_0x87c5[19]](_0x5a71x5[_0x87c5[20]])[_0x87c5[10]](function(_0x5a71x9){return _0x5a71x6[_0x87c5[9]](201)[_0x87c5[8]](_0x5a71x9)})[_0x87c5[7]](function(_0x5a71x7){return handleError(_0x5a71x6,_0x5a71x7)})};exports[_0x87c5[21]]=function(_0x5a71x5,_0x5a71x6){if(_0x5a71x5[_0x87c5[20]][_0x87c5[16]]){delete _0x5a71x5[_0x87c5[20]][_0x87c5[16]]};return MailServerOut[_0x87c5[18]](_0x5a71x5[_0x87c5[17]][_0x87c5[16]])[_0x87c5[10]](function(_0x5a71x9){if(!_0x5a71x9){return _0x5a71x6[_0x87c5[15]](404)};var _0x5a71xa=_[_0x87c5[22]](_0x5a71x9,_0x5a71x5[_0x87c5[20]]);return _0x5a71xa[_0x87c5[23]]()})[_0x87c5[10]](function(_0x5a71x9){return _0x5a71x6[_0x87c5[9]](200)[_0x87c5[8]](_0x5a71x9)})[_0x87c5[7]](function(_0x5a71x7){return handleError(_0x5a71x6,_0x5a71x7)})};exports[_0x87c5[24]]=function(_0x5a71x5,_0x5a71x6){return MailServerOut[_0x87c5[18]](_0x5a71x5[_0x87c5[17]][_0x87c5[16]])[_0x87c5[10]](function(_0x5a71x9){if(!_0x5a71x9){return _0x5a71x6[_0x87c5[15]](404)};return _0x5a71x9[_0x87c5[24]]()})[_0x87c5[10]](function(){return _0x5a71x6[_0x87c5[15]](204)})[_0x87c5[7]](function(_0x5a71x7){return handleError(_0x5a71x6,_0x5a71x7)})};exports[_0x87c5[25]]=function(_0x5a71x5,_0x5a71x6){return sequelize[_0x87c5[35]]()[_0x87c5[10]](function(_0x5a71xb){var _0x5a71xc;var _0x5a71xd;return MailServerOut[_0x87c5[18]](_0x5a71x5[_0x87c5[17]][_0x87c5[16]])[_0x87c5[10]](function(_0x5a71x9){if(!_0x5a71x9){_0x5a71xb[_0x87c5[27]]();return _0x5a71x6[_0x87c5[15]](404)}else {return _0x5a71x9}})[_0x87c5[10]](function(_0x5a71x9){_0x5a71xc=_0x5a71x9;return MailMessage[_0x87c5[19]]({subject:_0x87c5[31]+_0x5a71x9[_0x87c5[32]]+_0x87c5[33],text:_0x87c5[31]+_0x5a71x9[_0x87c5[32]]+_0x87c5[33],from:[_0x5a71x9[_0x87c5[32]]],to:[_0x5a71x9[_0x87c5[32]]]},{transaction:_0x5a71xb,user:_0x5a71x5[_0x87c5[34]]})})[_0x87c5[10]](function(_0x5a71xe){_0x5a71xd=_0x5a71xe;return _0x5a71xc[_0x87c5[21]]({state:_0x87c5[30]})})[_0x87c5[10]](function(){_0x5a71xb[_0x87c5[29]]();return _0x5a71x6[_0x87c5[9]](201)[_0x87c5[8]](_0x5a71xd)})[_0x87c5[7]](function(_0x5a71x7){console[_0x87c5[26]](_0x5a71x7);_0x5a71xb[_0x87c5[27]]();return _0x5a71xc[_0x87c5[21]]({state:_0x87c5[28]})[_0x87c5[10]](function(){return handleError(_0x5a71x6,_0x5a71x7)})})})};function handleError(_0x5a71x6,_0x5a71x7){return _0x5a71x6[_0x87c5[9]](500)[_0x87c5[8]](_0x5a71x7)}
\ No newline at end of file
index d9e6e91..72ce799 100644 (file)
@@ -1,26 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var MailServerOut = require('../../models').MailServerOut;
-
-exports.register = function(socket) {
-  MailServerOut.afterCreate(function(doc) {
-    console.log('MailServerOut afterCreate');
-    onSave(socket, doc);
-  });
-  MailServerOut.afterDestroy(function(doc) {
-    console.log('MailServerOut afterDestroy');
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('mail_server_out:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('mail_server_out:remove', doc);
-}
+var _0xa2b6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x20\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x6C\x6F\x67","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x20\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x6F\x75\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x6F\x75\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xa2b6[0];var MailServerOut=require(_0xa2b6[2])[_0xa2b6[1]];exports[_0xa2b6[3]]=function(_0x1065x2){MailServerOut[_0xa2b6[6]](function(_0x1065x3){console[_0xa2b6[5]](_0xa2b6[4]);onSave(_0x1065x2,_0x1065x3)});MailServerOut[_0xa2b6[8]](function(_0x1065x3){console[_0xa2b6[5]](_0xa2b6[7]);onRemove(_0x1065x2,_0x1065x3)})};function onSave(_0x1065x2,_0x1065x3,_0x1065x5){_0x1065x2[_0xa2b6[10]](_0xa2b6[9],_0x1065x3)}function onRemove(_0x1065x2,_0x1065x3,_0x1065x5){_0x1065x2[_0xa2b6[10]](_0xa2b6[11],_0x1065x3)}
\ No newline at end of file
index cb8e0b2..b3a2393 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./mail_template.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
\ No newline at end of file
+var _0xdd38=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xdd38[0];var express=require(_0xdd38[1]);var controller=require(_0xdd38[2]);var router=express.Router();router[_0xdd38[5]](_0xdd38[3],controller[_0xdd38[4]]);router[_0xdd38[5]](_0xdd38[6],controller[_0xdd38[7]]);router[_0xdd38[9]](_0xdd38[3],controller[_0xdd38[8]]);router[_0xdd38[11]](_0xdd38[6],controller[_0xdd38[10]]);router[_0xdd38[12]](_0xdd38[6],controller[_0xdd38[10]]);router[_0xdd38[14]](_0xdd38[6],controller[_0xdd38[13]]);module[_0xdd38[15]]=router
\ No newline at end of file
index 8853adc..78cd6c8 100644 (file)
@@ -1,92 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var Util = require('../../config/util');
-
-var MailTemplate = require('../../models').MailTemplate;
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return MailTemplate
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single mailTemplate
-exports.show = function(req, res) {
-  return MailTemplate
-    .findById(req.params.id)
-    .then(function(mailTemplate) {
-      if (!mailTemplate) {
-        return res.sendStatus(404);
-      }
-      return res.send(mailTemplate);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new mailTemplate in the DB.
-exports.create = function(req, res) {
-  return MailTemplate
-    .create(req.body)
-    .then(function(mailTemplate) {
-      return res.status(201).send(mailTemplate);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing mailTemplate in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return MailTemplate
-    .findById(req.params.id)
-    .then(function(mailTemplate) {
-      if (!mailTemplate) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(mailTemplate, req.body);
-      return updated
-        .save();
-    })
-    .then(function(mailTemplate) {
-      return res.status(200).send(mailTemplate);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a mailTemplate from the DB.
-exports.destroy = function(req, res) {
-  return MailTemplate
-    .findById(req.params.id)
-    .then(function(mailTemplate) {
-      if (!mailTemplate) {
-        return res.sendStatus(404);
-      }
-      mailTemplate
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x7adf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x4D\x61\x69\x6C\x54\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x7adf[0];var _=require(_0x7adf[1]);var util=require(_0x7adf[2]);var Util=require(_0x7adf[3]);var MailTemplate=require(_0x7adf[5])[_0x7adf[4]];exports[_0x7adf[6]]=function(_0xf4bax5,_0xf4bax6,_0xf4bax7){return MailTemplate[_0x7adf[13]](Util[_0x7adf[12]](_0xf4bax5[_0x7adf[11]]))[_0x7adf[10]](function(_0xf4bax9){_0xf4bax6[_0x7adf[9]](200)[_0x7adf[8]](_0xf4bax9)})[_0x7adf[7]](function(_0xf4bax8){return handleError(_0xf4bax6,_0xf4bax8)})};exports[_0x7adf[14]]=function(_0xf4bax5,_0xf4bax6){return MailTemplate[_0x7adf[18]](_0xf4bax5[_0x7adf[17]][_0x7adf[16]])[_0x7adf[10]](function(_0xf4baxa){if(!_0xf4baxa){return _0xf4bax6[_0x7adf[15]](404)};return _0xf4bax6[_0x7adf[8]](_0xf4baxa)})[_0x7adf[7]](function(_0xf4bax8){return handleError(_0xf4bax6,_0xf4bax8)})};exports[_0x7adf[19]]=function(_0xf4bax5,_0xf4bax6){return MailTemplate[_0x7adf[19]](_0xf4bax5[_0x7adf[20]])[_0x7adf[10]](function(_0xf4baxa){return _0xf4bax6[_0x7adf[9]](201)[_0x7adf[8]](_0xf4baxa)})[_0x7adf[7]](function(_0xf4bax8){return handleError(_0xf4bax6,_0xf4bax8)})};exports[_0x7adf[21]]=function(_0xf4bax5,_0xf4bax6){if(_0xf4bax5[_0x7adf[20]][_0x7adf[16]]){delete _0xf4bax5[_0x7adf[20]][_0x7adf[16]]};return MailTemplate[_0x7adf[18]](_0xf4bax5[_0x7adf[17]][_0x7adf[16]])[_0x7adf[10]](function(_0xf4baxa){if(!_0xf4baxa){return _0xf4bax6[_0x7adf[15]](404)};var _0xf4baxb=_[_0x7adf[22]](_0xf4baxa,_0xf4bax5[_0x7adf[20]]);return _0xf4baxb[_0x7adf[23]]()})[_0x7adf[10]](function(_0xf4baxa){return _0xf4bax6[_0x7adf[9]](200)[_0x7adf[8]](_0xf4baxa)})[_0x7adf[7]](function(_0xf4bax8){return handleError(_0xf4bax6,_0xf4bax8)})};exports[_0x7adf[24]]=function(_0xf4bax5,_0xf4bax6){return MailTemplate[_0x7adf[18]](_0xf4bax5[_0x7adf[17]][_0x7adf[16]])[_0x7adf[10]](function(_0xf4baxa){if(!_0xf4baxa){return _0xf4bax6[_0x7adf[15]](404)};_0xf4baxa[_0x7adf[24]]()})[_0x7adf[10]](function(){return _0xf4bax6[_0x7adf[15]](204)})[_0x7adf[7]](function(_0xf4bax8){return handleError(_0xf4bax6,_0xf4bax8)})};function handleError(_0xf4bax6,_0xf4bax8){return _0xf4bax6[_0x7adf[9]](500)[_0x7adf[8]](_0xf4bax8)}
\ No newline at end of file
index a01fb2e..3be49c6 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var MailTemplate = require('../../models').MailTemplate;
-
-exports.register = function(socket) {
-  MailTemplate.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  MailTemplate.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('mail_template:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('mail_template:remove', doc);
-}
+var _0x60ab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x54\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x60ab[0];var MailTemplate=require(_0x60ab[2])[_0x60ab[1]];exports[_0x60ab[3]]=function(_0x88d0x2){MailTemplate[_0x60ab[4]](function(_0x88d0x3){onSave(_0x88d0x2,_0x88d0x3)});MailTemplate[_0x60ab[5]](function(_0x88d0x3){onRemove(_0x88d0x2,_0x88d0x3)})};function onSave(_0x88d0x2,_0x88d0x3,_0x88d0x5){_0x88d0x2[_0x60ab[7]](_0x60ab[6],_0x88d0x3)}function onRemove(_0x88d0x2,_0x88d0x3,_0x88d0x5){_0x88d0x2[_0x60ab[7]](_0x60ab[8],_0x88d0x3)}
\ No newline at end of file
index d565c16..bb64375 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./metric.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/table', auth.isAuthenticated(), controller.getMetricsByTable);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/validate', auth.isAuthenticated(), controller.metricValidation);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x7f61=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x65\x74\x72\x69\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x74\x61\x62\x6C\x65","\x67\x65\x74\x4D\x65\x74\x72\x69\x63\x73\x42\x79\x54\x61\x62\x6C\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x6D\x65\x74\x72\x69\x63\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x7f61[0];var express=require(_0x7f61[1]);var controller=require(_0x7f61[2]);var auth=require(_0x7f61[3]);var router=express.Router();router[_0x7f61[7]](_0x7f61[4],auth[_0x7f61[5]](),controller[_0x7f61[6]]);router[_0x7f61[7]](_0x7f61[8],auth[_0x7f61[5]](),controller[_0x7f61[9]]);router[_0x7f61[7]](_0x7f61[10],auth[_0x7f61[5]](),controller[_0x7f61[11]]);router[_0x7f61[13]](_0x7f61[4],auth[_0x7f61[5]](),controller[_0x7f61[12]]);router[_0x7f61[13]](_0x7f61[14],auth[_0x7f61[5]](),controller[_0x7f61[15]]);router[_0x7f61[17]](_0x7f61[10],auth[_0x7f61[5]](),controller[_0x7f61[16]]);router[_0x7f61[18]](_0x7f61[10],auth[_0x7f61[5]](),controller[_0x7f61[16]]);router[_0x7f61[20]](_0x7f61[4],auth[_0x7f61[5]](),controller[_0x7f61[19]]);router[_0x7f61[20]](_0x7f61[10],auth[_0x7f61[5]](),controller[_0x7f61[21]]);module[_0x7f61[22]]=router
\ No newline at end of file
index ce77ec6..77dcd71 100644 (file)
@@ -1,180 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Metric = require('../../models').Metric;
-var util = require('util');
-var Util = require('../../config/util');
-
-// Get list of metrics
-exports.index = function(req, res, next) {
-  return Metric
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.metricValidation = function(req, res) {
-  Metric
-    .findAll({
-      where: {
-        name: req.body.name
-      }
-    })
-    .then(function(metrics) {
-      if (!metrics) {
-        return res.sendStatus(404);
-      }
-      return res.send(metrics);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.getMetricsByTable = function(req, res) {
-  Metric
-    .findAll({
-      where: {
-        table: req.query.table
-      }
-    })
-    .then(function(metrics) {
-      console.log(metrics);
-      if (!metrics) {
-        return res.sendStatus(404);
-      }
-      return res.status(200).send(metrics);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single metric
-exports.show = function(req, res) {
-  Metric
-    .findById(req.params.id)
-    .then(function(metric) {
-      if (!metric) {
-        return res.sendStatus(404);
-      }
-      return res.send(metric);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new metric in the DB.
-exports.create = function(req, res) {
-  Metric
-    .create(req.body)
-    .then(function(metric) {
-      return res.status(201).send(metric);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing metric in the DB.
-exports.update = function(req, res) {
-  Metric
-    .findAll({
-      where: {
-        name: req.body.name,
-        id: {
-          $ne: req.body.id
-        }
-      }
-    })
-    .then(function(metrics) {
-      if (!metrics) {
-        return res.sendStatus(404);
-      }
-      if (metrics.length > 0) {
-        return res.status(500).send({
-          message: 'MESSAGE_EXIST_METRIC'
-        })
-      }
-      if (req.body.id) {
-        delete req.body.id;
-      }
-      return Metric
-        .find({
-          where: {
-            id: req.params.id
-          }
-        });
-    })
-    .then(function(metric) {
-      if (!metric) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(metric, req.body);
-      return updated.save();
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Deletes a metric from the DB.
-exports.destroy = function(req, res) {
-  Metric
-    .findById(req.params.id)
-    .then(function(metric) {
-      if (!metric) {
-        return res.sendStatus(404);
-      }
-      metric.getZendeskTexts()
-        .then(function(texts) {
-          if (texts.length > 0) {
-            return res.status(500).send({
-              message: 'MESSAGE_METRIC_CONFIGURATION_ASSOCIATED'
-            });
-          }
-          metric.destroy()
-            .then(function() {
-              return res.sendStatus(204);
-            })
-            .catch(function(err) {
-              return handleError(res, err);
-            });
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.bulkDestroy = function(req, res) {
-  Metric
-    .destroy({
-      where: {
-        id: req.query.id
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x426d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x65\x74\x72\x69\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x6D\x65\x74\x72\x69\x63\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6E\x61\x6D\x65","\x62\x6F\x64\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x67\x65\x74\x4D\x65\x74\x72\x69\x63\x73\x42\x79\x54\x61\x62\x6C\x65","\x6C\x6F\x67","\x74\x61\x62\x6C\x65","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x4D\x45\x54\x52\x49\x43","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x4D\x45\x53\x53\x41\x47\x45\x5F\x4D\x45\x54\x52\x49\x43\x5F\x43\x4F\x4E\x46\x49\x47\x55\x52\x41\x54\x49\x4F\x4E\x5F\x41\x53\x53\x4F\x43\x49\x41\x54\x45\x44","\x67\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x54\x65\x78\x74\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x426d[0];var _=require(_0x426d[1]);var Metric=require(_0x426d[3])[_0x426d[2]];var util=require(_0x426d[4]);var Util=require(_0x426d[5]);exports[_0x426d[6]]=function(_0xc390x5,_0xc390x6,_0xc390x7){return Metric[_0x426d[13]](Util[_0x426d[12]](_0xc390x5[_0x426d[11]]))[_0x426d[10]](function(_0xc390x9){_0xc390x6[_0x426d[9]](200)[_0x426d[8]](_0xc390x9)})[_0x426d[7]](function(_0xc390x8){return handleError(_0xc390x6,_0xc390x8)})};exports[_0x426d[14]]=function(_0xc390x5,_0xc390x6){Metric[_0x426d[18]]({where:{name:_0xc390x5[_0x426d[17]][_0x426d[16]]}})[_0x426d[10]](function(_0xc390xa){if(!_0xc390xa){return _0xc390x6[_0x426d[15]](404)};return _0xc390x6[_0x426d[8]](_0xc390xa)})[_0x426d[7]](function(_0xc390x8){return handleError(_0xc390x6,_0xc390x8)})};exports[_0x426d[19]]=function(_0xc390x5,_0xc390x6){Metric[_0x426d[18]]({where:{table:_0xc390x5[_0x426d[11]][_0x426d[21]]}})[_0x426d[10]](function(_0xc390xa){console[_0x426d[20]](_0xc390xa);if(!_0xc390xa){return _0xc390x6[_0x426d[15]](404)};return _0xc390x6[_0x426d[9]](200)[_0x426d[8]](_0xc390xa)})[_0x426d[7]](function(_0xc390x8){return handleError(_0xc390x6,_0xc390x8)})};exports[_0x426d[22]]=function(_0xc390x5,_0xc390x6){Metric[_0x426d[25]](_0xc390x5[_0x426d[24]][_0x426d[23]])[_0x426d[10]](function(_0xc390xb){if(!_0xc390xb){return _0xc390x6[_0x426d[15]](404)};return _0xc390x6[_0x426d[8]](_0xc390xb)})[_0x426d[7]](function(_0xc390x8){return handleError(_0xc390x6,_0xc390x8)})};exports[_0x426d[26]]=function(_0xc390x5,_0xc390x6){Metric[_0x426d[26]](_0xc390x5[_0x426d[17]])[_0x426d[10]](function(_0xc390xb){return _0xc390x6[_0x426d[9]](201)[_0x426d[8]](_0xc390xb)})[_0x426d[7]](function(_0xc390x8){return handleError(_0xc390x6,_0xc390x8)})};exports[_0x426d[27]]=function(_0xc390x5,_0xc390x6){Metric[_0x426d[18]]({where:{name:_0xc390x5[_0x426d[17]][_0x426d[16]],id:{$ne:_0xc390x5[_0x426d[17]][_0x426d[23]]}}})[_0x426d[10]](function(_0xc390xa){if(!_0xc390xa){return _0xc390x6[_0x426d[15]](404)};if(_0xc390xa[_0x426d[30]]>0){return _0xc390x6[_0x426d[9]](500)[_0x426d[8]]({message:_0x426d[31]})};if(_0xc390x5[_0x426d[17]][_0x426d[23]]){delete _0xc390x5[_0x426d[17]][_0x426d[23]]};return Metric[_0x426d[32]]({where:{id:_0xc390x5[_0x426d[24]][_0x426d[23]]}})})[_0x426d[10]](function(_0xc390xb){if(!_0xc390xb){return _0xc390x6[_0x426d[15]](404)};var _0xc390xc=_[_0x426d[28]](_0xc390xb,_0xc390x5[_0x426d[17]]);return _0xc390xc[_0x426d[29]]()})[_0x426d[10]](function(){return _0xc390x6[_0x426d[15]](200)})[_0x426d[7]](function(_0xc390x8){console[_0x426d[20]](_0xc390x8);return handleError(_0xc390x6,_0xc390x8)})};exports[_0x426d[33]]=function(_0xc390x5,_0xc390x6){Metric[_0x426d[25]](_0xc390x5[_0x426d[24]][_0x426d[23]])[_0x426d[10]](function(_0xc390xb){if(!_0xc390xb){return _0xc390x6[_0x426d[15]](404)};_0xc390xb[_0x426d[35]]()[_0x426d[10]](function(_0xc390xd){if(_0xc390xd[_0x426d[30]]>0){return _0xc390x6[_0x426d[9]](500)[_0x426d[8]]({message:_0x426d[34]})};_0xc390xb[_0x426d[33]]()[_0x426d[10]](function(){return _0xc390x6[_0x426d[15]](204)})[_0x426d[7]](function(_0xc390x8){return handleError(_0xc390x6,_0xc390x8)})})[_0x426d[7]](function(_0xc390x8){return handleError(_0xc390x6,_0xc390x8)})})[_0x426d[7]](function(_0xc390x8){return handleError(_0xc390x6,_0xc390x8)})};exports[_0x426d[36]]=function(_0xc390x5,_0xc390x6){Metric[_0x426d[33]]({where:{id:_0xc390x5[_0x426d[11]][_0x426d[23]]},individualHooks:true})[_0x426d[10]](function(){return _0xc390x6[_0x426d[15]](204)})[_0x426d[7]](function(_0xc390x8){return handleError(_0xc390x6,_0xc390x8)})};function handleError(_0xc390x6,_0xc390x8){return _0xc390x6[_0x426d[9]](500)[_0x426d[8]](_0xc390x8)}
\ No newline at end of file
index e604bc9..ad5c18a 100644 (file)
@@ -1,41 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Metric = require('../../models').Metric;
-var ReportField = require('../../models').ReportField;
-
-exports.register = function(socket) {
-  Metric.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Metric.afterUpdate(function(doc) {
-    updateFields(doc);
-  });
-  Metric.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('metric:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('metric:remove', doc);
-}
-
-function updateFields(doc) {
-  return ReportField.update({
-      field: doc.metric
-    }, {
-      where: {
-        MetricId: doc.id
-      }
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
+var _0xc387=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x65\x74\x72\x69\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x46\x69\x65\x6C\x64","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x65\x74\x72\x69\x63\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x65\x74\x72\x69\x63\x3A\x72\x65\x6D\x6F\x76\x65","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x6D\x65\x74\x72\x69\x63","\x69\x64","\x75\x70\x64\x61\x74\x65"];_0xc387[0];var Metric=require(_0xc387[2])[_0xc387[1]];var ReportField=require(_0xc387[2])[_0xc387[3]];exports[_0xc387[4]]=function(_0x87edx3){Metric[_0xc387[5]](function(_0x87edx4){onSave(_0x87edx3,_0x87edx4)});Metric[_0xc387[6]](function(_0x87edx4){updateFields(_0x87edx4)});Metric[_0xc387[7]](function(_0x87edx4){onRemove(_0x87edx3,_0x87edx4)})};function onSave(_0x87edx3,_0x87edx4,_0x87edx6){_0x87edx3[_0xc387[9]](_0xc387[8],_0x87edx4)}function onRemove(_0x87edx3,_0x87edx4,_0x87edx6){_0x87edx3[_0xc387[9]](_0xc387[10],_0x87edx4)}function updateFields(_0x87edx4){return ReportField[_0xc387[15]]({field:_0x87edx4[_0xc387[13]]},{where:{MetricId:_0x87edx4[_0xc387[14]]}})[_0xc387[12]](function(_0x87edx9){console[_0xc387[11]](_0x87edx9)})}
\ No newline at end of file
index 076cab1..f05388a 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/analytics/metrics', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/analytics/metrics')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0x1c2b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x6D\x65\x74\x72\x69\x63\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x6D\x65\x74\x72\x69\x63\x73","\x67\x65\x74"];_0x1c2b[0];var should=require(_0x1c2b[1]);var app=require(_0x1c2b[2]);var request=require(_0x1c2b[3]);describe(_0x1c2b[4],function(){it(_0x1c2b[5],function(_0x6883x4){request(app)[_0x1c2b[13]](_0x1c2b[12])[_0x1c2b[11]](200)[_0x1c2b[11]](_0x1c2b[10],/json/)[_0x1c2b[9]](function(_0x6883x5,_0x6883x6){if(_0x6883x5){return _0x6883x4(_0x6883x5)};_0x6883x6[_0x1c2b[8]][_0x1c2b[1]][_0x1c2b[7]][_0x1c2b[6]](Array);_0x6883x4()})})})
\ No newline at end of file
index 8204682..cf20889 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./module.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0x1a10=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x6F\x64\x75\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1a10[0];var express=require(_0x1a10[1]);var controller=require(_0x1a10[2]);var router=express.Router();router[_0x1a10[5]](_0x1a10[3],controller[_0x1a10[4]]);router[_0x1a10[5]](_0x1a10[6],controller[_0x1a10[7]]);router[_0x1a10[9]](_0x1a10[3],controller[_0x1a10[8]]);router[_0x1a10[11]](_0x1a10[6],controller[_0x1a10[10]]);router[_0x1a10[12]](_0x1a10[6],controller[_0x1a10[10]]);router[_0x1a10[14]](_0x1a10[6],controller[_0x1a10[13]]);module[_0x1a10[15]]=router
\ No newline at end of file
index 9d6517c..13ab071 100644 (file)
@@ -1,92 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Module = require('../../models').Module;
-
-// Get list of modules
-exports.index = function(req, res) {
-  Module
-  .findAll()
-  .then(function (modules) {
-    return res.status(200).send(modules);
-  })
-  .catch(function(err) {
-    return handleError(res, err);
-  });
-};
-
-// Get a single module
-exports.show = function(req, res) {
-  var moduleId = req.params.id;
-
-  Module
-  .findById(moduleId)
-  .then(function (module) {
-    if(!module) { return res.sendStatus(404); }
-    return res.send(module);
-  })
-  .catch(function(err){
-    return handleError(res, err);
-  });
-};
-
-// Creates a new module in the DB.
-exports.create = function(req, res) {
-  Module
-  .create(req.body)
-  .then(function(module) {
-    return res.status(201).send(module);
-  })
-  .catch(function(err) {
-    return handleError(res, err);
-  });
-};
-
-// Updates an existing module in the DB.
-exports.update = function(req, res) {
-  var moduleId = req.body.id;
-
-  if(req.body.id) { delete req.body.id; }
-
-  Module
-  .findById(moduleId)
-  .then(function (module) {
-    if(!module) { return res.sendStatus(404); }
-    var updated = _.merge(module, req.body);
-    updated.save()
-    .then(function () {
-      return res.status(200).send(module);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-  })
-  .catch(function(err) {
-    return handleError(res, err);
-  });
-};
-
-// Deletes a module from the DB.
-exports.destroy = function(req, res) {
-  var moduleId = req.params.id;
-
-  Module
-  .findById(moduleId)
-  .then(function (module) {
-    if(!module) { return res.sendStatus(404); }
-    module.destroy()
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-  })
-  .catch(function(err) {
-    return handleError(res, err);
-  });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xad26=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x6F\x64\x75\x6C\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xad26[0];var _=require(_0xad26[1]);var Module=require(_0xad26[3])[_0xad26[2]];exports[_0xad26[4]]=function(_0x285dx3,_0x285dx4){Module[_0xad26[9]]()[_0xad26[8]](function(_0x285dx6){return _0x285dx4[_0xad26[7]](200)[_0xad26[6]](_0x285dx6)})[_0xad26[5]](function(_0x285dx5){return handleError(_0x285dx4,_0x285dx5)})};exports[_0xad26[10]]=function(_0x285dx3,_0x285dx4){var _0x285dx7=_0x285dx3[_0xad26[12]][_0xad26[11]];Module[_0xad26[14]](_0x285dx7)[_0xad26[8]](function(_0x285dx8){if(!_0x285dx8){return _0x285dx4[_0xad26[13]](404)};return _0x285dx4[_0xad26[6]](_0x285dx8)})[_0xad26[5]](function(_0x285dx5){return handleError(_0x285dx4,_0x285dx5)})};exports[_0xad26[15]]=function(_0x285dx3,_0x285dx4){Module[_0xad26[15]](_0x285dx3[_0xad26[16]])[_0xad26[8]](function(_0x285dx8){return _0x285dx4[_0xad26[7]](201)[_0xad26[6]](_0x285dx8)})[_0xad26[5]](function(_0x285dx5){return handleError(_0x285dx4,_0x285dx5)})};exports[_0xad26[17]]=function(_0x285dx3,_0x285dx4){var _0x285dx7=_0x285dx3[_0xad26[16]][_0xad26[11]];if(_0x285dx3[_0xad26[16]][_0xad26[11]]){delete _0x285dx3[_0xad26[16]][_0xad26[11]]};Module[_0xad26[14]](_0x285dx7)[_0xad26[8]](function(_0x285dx8){if(!_0x285dx8){return _0x285dx4[_0xad26[13]](404)};var _0x285dx9=_[_0xad26[18]](_0x285dx8,_0x285dx3[_0xad26[16]]);_0x285dx9[_0xad26[19]]()[_0xad26[8]](function(){return _0x285dx4[_0xad26[7]](200)[_0xad26[6]](_0x285dx8)})[_0xad26[5]](function(_0x285dx5){return handleError(_0x285dx4,_0x285dx5)})})[_0xad26[5]](function(_0x285dx5){return handleError(_0x285dx4,_0x285dx5)})};exports[_0xad26[20]]=function(_0x285dx3,_0x285dx4){var _0x285dx7=_0x285dx3[_0xad26[12]][_0xad26[11]];Module[_0xad26[14]](_0x285dx7)[_0xad26[8]](function(_0x285dx8){if(!_0x285dx8){return _0x285dx4[_0xad26[13]](404)};_0x285dx8[_0xad26[20]]()[_0xad26[8]](function(){return _0x285dx4[_0xad26[13]](204)})[_0xad26[5]](function(_0x285dx5){return handleError(_0x285dx4,_0x285dx5)})})[_0xad26[5]](function(_0x285dx5){return handleError(_0x285dx4,_0x285dx5)})};function handleError(_0x285dx4,_0x285dx5){return _0x285dx4[_0xad26[7]](500)[_0xad26[6]](_0x285dx5)}
\ No newline at end of file
index 0eade3b..8eb2c4c 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var module = require('../../models').Module;
-
-exports.register = function(socket) {
-  module.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  module.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('module:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('module:remove', doc);
-}
+var _0x3708=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x6F\x64\x75\x6C\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x6F\x64\x75\x6C\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x6F\x64\x75\x6C\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3708[0];var module=require(_0x3708[2])[_0x3708[1]];exports[_0x3708[3]]=function(_0xb7e9x2){module[_0x3708[4]](function(_0xb7e9x3){onSave(_0xb7e9x2,_0xb7e9x3)});module[_0x3708[5]](function(_0xb7e9x3){onRemove(_0xb7e9x2,_0xb7e9x3)})};function onSave(_0xb7e9x2,_0xb7e9x3,_0xb7e9x5){_0xb7e9x2[_0x3708[7]](_0x3708[6],_0xb7e9x3)}function onRemove(_0xb7e9x2,_0xb7e9x3,_0xb7e9x5){_0xb7e9x2[_0x3708[7]](_0x3708[8],_0xb7e9x3)}
\ No newline at end of file
index 45aa629..eae34ef 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/modules', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/modules')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0xbbcf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6D\x6F\x64\x75\x6C\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x6D\x6F\x64\x75\x6C\x65\x73","\x67\x65\x74"];_0xbbcf[0];var should=require(_0xbbcf[1]);var app=require(_0xbbcf[2]);var request=require(_0xbbcf[3]);describe(_0xbbcf[4],function(){it(_0xbbcf[5],function(_0x8780x4){request(app)[_0xbbcf[13]](_0xbbcf[12])[_0xbbcf[11]](200)[_0xbbcf[11]](_0xbbcf[10],/json/)[_0xbbcf[9]](function(_0x8780x5,_0x8780x6){if(_0x8780x5){return _0x8780x4(_0x8780x5)};_0x8780x6[_0xbbcf[8]][_0xbbcf[1]][_0xbbcf[7]][_0xbbcf[6]](Array);_0x8780x4()})})})
\ No newline at end of file
index f341cb4..ed93078 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./setting.controller');
-
-var router = express.Router();
-
-// router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0x59cc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x59cc[0];var express=require(_0x59cc[1]);var controller=require(_0x59cc[2]);var router=express.Router();router[_0x59cc[5]](_0x59cc[3],controller[_0x59cc[4]]);router[_0x59cc[8]](_0x59cc[6],controller[_0x59cc[7]]);router[_0x59cc[10]](_0x59cc[3],controller[_0x59cc[9]]);router[_0x59cc[11]](_0x59cc[3],controller[_0x59cc[9]]);router[_0x59cc[13]](_0x59cc[3],controller[_0x59cc[12]]);module[_0x59cc[14]]=router
\ No newline at end of file
index 3ebcb5c..991251e 100644 (file)
@@ -1,110 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var crypto = require('crypto');
-
-var Setting = require('../../models').Setting;
-
-// Get list of settings
-exports.index = function(req, res) {
-  Setting
-    .findAll()
-    .then(function(settings) {
-      return res.status(200).send(settings);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single setting
-exports.show = function(req, res) {
-  Setting
-    .findById(req.params.id)
-    .then(function(setting) {
-      if (!setting) {
-        return res.sendStatus(404);
-      }
-
-      if (setting.license) {
-        setting.license = decrypt('aes-256-ctr', util.format('%s:%s:%s',
-          setting.address, setting.netmask, setting.mac), setting.license);
-        setting.license = JSON.parse(setting.license);
-      }
-
-      return res.send(setting);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new setting in the DB.
-exports.create = function(req, res) {
-  Setting
-    .create(req.body)
-    .then(function(setting) {
-      return res.status(201).send(setting);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing setting in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  Setting
-    .findById(req.params.id)
-    .then(function(setting) {
-      if (!setting) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(setting, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(setting);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a setting from the DB.
-exports.destroy = function(req, res) {
-  Setting
-    .findById(req.params.id)
-    .then(function(setting) {
-      if (!setting) {
-        return res.sendStatus(404);
-      }
-      setting.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
-
-function decrypt(algorithm, password, text) {
-  var decipher = crypto.createDecipher(algorithm, password)
-  var dec = decipher.update(text, 'hex', 'utf8')
-  dec += decipher.final('utf8');
-  return dec;
-}
+var _0x913f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x63\x72\x79\x70\x74\x6F","\x53\x65\x74\x74\x69\x6E\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6C\x69\x63\x65\x6E\x73\x65","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x25\x73\x3A\x25\x73\x3A\x25\x73","\x61\x64\x64\x72\x65\x73\x73","\x6E\x65\x74\x6D\x61\x73\x6B","\x6D\x61\x63","\x66\x6F\x72\x6D\x61\x74","\x70\x61\x72\x73\x65","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x68\x65\x78","\x75\x74\x66\x38","\x66\x69\x6E\x61\x6C"];_0x913f[0];var _=require(_0x913f[1]);var util=require(_0x913f[2]);var crypto=require(_0x913f[3]);var Setting=require(_0x913f[5])[_0x913f[4]];exports[_0x913f[6]]=function(_0xcbd0x5,_0xcbd0x6){Setting[_0x913f[11]]()[_0x913f[10]](function(_0xcbd0x8){return _0xcbd0x6[_0x913f[9]](200)[_0x913f[8]](_0xcbd0x8)})[_0x913f[7]](function(_0xcbd0x7){return handleError(_0xcbd0x6,_0xcbd0x7)})};exports[_0x913f[12]]=function(_0xcbd0x5,_0xcbd0x6){Setting[_0x913f[24]](_0xcbd0x5[_0x913f[23]][_0x913f[22]])[_0x913f[10]](function(_0xcbd0x9){if(!_0xcbd0x9){return _0xcbd0x6[_0x913f[13]](404)};if(_0xcbd0x9[_0x913f[14]]){_0xcbd0x9[_0x913f[14]]=decrypt(_0x913f[15],util[_0x913f[20]](_0x913f[16],_0xcbd0x9[_0x913f[17]],_0xcbd0x9[_0x913f[18]],_0xcbd0x9[_0x913f[19]]),_0xcbd0x9[_0x913f[14]]);_0xcbd0x9[_0x913f[14]]=JSON[_0x913f[21]](_0xcbd0x9[_0x913f[14]])};return _0xcbd0x6[_0x913f[8]](_0xcbd0x9)})[_0x913f[7]](function(_0xcbd0x7){return handleError(_0xcbd0x6,_0xcbd0x7)})};exports[_0x913f[25]]=function(_0xcbd0x5,_0xcbd0x6){Setting[_0x913f[25]](_0xcbd0x5[_0x913f[26]])[_0x913f[10]](function(_0xcbd0x9){return _0xcbd0x6[_0x913f[9]](201)[_0x913f[8]](_0xcbd0x9)})[_0x913f[7]](function(_0xcbd0x7){return handleError(_0xcbd0x6,_0xcbd0x7)})};exports[_0x913f[27]]=function(_0xcbd0x5,_0xcbd0x6){if(_0xcbd0x5[_0x913f[26]][_0x913f[22]]){delete _0xcbd0x5[_0x913f[26]][_0x913f[22]]};Setting[_0x913f[24]](_0xcbd0x5[_0x913f[23]][_0x913f[22]])[_0x913f[10]](function(_0xcbd0x9){if(!_0xcbd0x9){return _0xcbd0x6[_0x913f[13]](404)};var _0xcbd0xa=_[_0x913f[28]](_0xcbd0x9,_0xcbd0x5[_0x913f[26]]);_0xcbd0xa[_0x913f[29]]()[_0x913f[10]](function(){return _0xcbd0x6[_0x913f[9]](200)[_0x913f[8]](_0xcbd0x9)})[_0x913f[7]](function(_0xcbd0x7){return handleError(_0xcbd0x6,_0xcbd0x7)})})[_0x913f[7]](function(_0xcbd0x7){return handleError(_0xcbd0x6,_0xcbd0x7)})};exports[_0x913f[30]]=function(_0xcbd0x5,_0xcbd0x6){Setting[_0x913f[24]](_0xcbd0x5[_0x913f[23]][_0x913f[22]])[_0x913f[10]](function(_0xcbd0x9){if(!_0xcbd0x9){return _0xcbd0x6[_0x913f[13]](404)};_0xcbd0x9[_0x913f[30]]()[_0x913f[10]](function(){return _0xcbd0x6[_0x913f[13]](204)})[_0x913f[7]](function(_0xcbd0x7){return handleError(_0xcbd0x6,_0xcbd0x7)})})[_0x913f[7]](function(_0xcbd0x7){return handleError(_0xcbd0x6,_0xcbd0x7)})};function handleError(_0xcbd0x6,_0xcbd0x7){return _0xcbd0x6[_0x913f[9]](500)[_0x913f[8]](_0xcbd0x7)}function decrypt(_0xcbd0xd,_0xcbd0xe,_0xcbd0xf){var _0xcbd0x10=crypto[_0x913f[31]](_0xcbd0xd,_0xcbd0xe);var _0xcbd0x11=_0xcbd0x10[_0x913f[27]](_0xcbd0xf,_0x913f[32],_0x913f[33]);_0xcbd0x11+=_0xcbd0x10[_0x913f[34]](_0x913f[33]);return _0xcbd0x11}
\ No newline at end of file
index 0784c1f..ef825cc 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Setting = require('../../models').Setting;
-
-exports.register = function(socket) {
-  Setting.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Setting.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('setting:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('setting:remove', doc);
-}
+var _0x7ab1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x65\x74\x74\x69\x6E\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x65\x74\x74\x69\x6E\x67\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x65\x74\x74\x69\x6E\x67\x3A\x72\x65\x6D\x6F\x76\x65"];_0x7ab1[0];var Setting=require(_0x7ab1[2])[_0x7ab1[1]];exports[_0x7ab1[3]]=function(_0xb18bx2){Setting[_0x7ab1[4]](function(_0xb18bx3){onSave(_0xb18bx2,_0xb18bx3)});Setting[_0x7ab1[5]](function(_0xb18bx3){onRemove(_0xb18bx2,_0xb18bx3)})};function onSave(_0xb18bx2,_0xb18bx3,_0xb18bx5){_0xb18bx2[_0x7ab1[7]](_0x7ab1[6],_0xb18bx3)}function onRemove(_0xb18bx2,_0xb18bx3,_0xb18bx5){_0xb18bx2[_0x7ab1[7]](_0x7ab1[8],_0xb18bx3)}
\ No newline at end of file
index eec76c9..7b2540d 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/settings', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/settings')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0xb1a3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x73","\x67\x65\x74"];_0xb1a3[0];var should=require(_0xb1a3[1]);var app=require(_0xb1a3[2]);var request=require(_0xb1a3[3]);describe(_0xb1a3[4],function(){it(_0xb1a3[5],function(_0x24b9x4){request(app)[_0xb1a3[13]](_0xb1a3[12])[_0xb1a3[11]](200)[_0xb1a3[11]](_0xb1a3[10],/json/)[_0xb1a3[9]](function(_0x24b9x5,_0x24b9x6){if(_0x24b9x5){return _0x24b9x4(_0x24b9x5)};_0x24b9x6[_0xb1a3[8]][_0xb1a3[1]][_0xb1a3[7]][_0xb1a3[6]](Array);_0x24b9x4()})})})
\ No newline at end of file
index fd9d420..3705d9e 100644 (file)
@@ -1,11 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./motionbar.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/:action/:state', auth.isAuthenticated(), controller.action);
-
-module.exports = router;
+var _0xd8e4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x3A\x61\x63\x74\x69\x6F\x6E\x2F\x3A\x73\x74\x61\x74\x65","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xd8e4[0];var express=require(_0xd8e4[1]);var controller=require(_0xd8e4[2]);var auth=require(_0xd8e4[3]);var router=express.Router();router[_0xd8e4[7]](_0xd8e4[4],auth[_0xd8e4[5]](),controller[_0xd8e4[6]]);module[_0xd8e4[8]]=router
\ No newline at end of file
index f0a79be..259a9b7 100644 (file)
@@ -1,32 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Motionbar = require('../../models').Motionbar;
-
-// Get list of motionbars
-exports.action = function(req, res) {
-
-  if (!req.query.userId) {
-    return handleError(res, {
-      message: 'Use userId'
-    });
-  }
-
-  req.body.UserId = parseInt(req.query.userId, 10);
-  req.body.action = req.params.action;
-  req.body.state = req.params.state;
-  req.body.AdminId = req.user.id;
-
-  Motionbar
-    .create(req.body)
-    .then(function(action) {
-      return res.status(201).send(action);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xdf13=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x4D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x61\x63\x74\x69\x6F\x6E","\x75\x73\x65\x72\x49\x64","\x71\x75\x65\x72\x79","\x55\x73\x65\x20\x75\x73\x65\x72\x49\x64","\x55\x73\x65\x72\x49\x64","\x62\x6F\x64\x79","\x70\x61\x72\x61\x6D\x73","\x73\x74\x61\x74\x65","\x41\x64\x6D\x69\x6E\x49\x64","\x69\x64","\x75\x73\x65\x72","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65"];_0xdf13[0];var _=require(_0xdf13[1]);var Motionbar=require(_0xdf13[3])[_0xdf13[2]];exports[_0xdf13[4]]=function(_0xa287x3,_0xa287x4){if(!_0xa287x3[_0xdf13[6]][_0xdf13[5]]){return handleError(_0xa287x4,{message:_0xdf13[7]})};_0xa287x3[_0xdf13[9]][_0xdf13[8]]=parseInt(_0xa287x3[_0xdf13[6]][_0xdf13[5]],10);_0xa287x3[_0xdf13[9]][_0xdf13[4]]=_0xa287x3[_0xdf13[10]][_0xdf13[4]];_0xa287x3[_0xdf13[9]][_0xdf13[11]]=_0xa287x3[_0xdf13[10]][_0xdf13[11]];_0xa287x3[_0xdf13[9]][_0xdf13[12]]=_0xa287x3[_0xdf13[14]][_0xdf13[13]];Motionbar[_0xdf13[19]](_0xa287x3[_0xdf13[9]])[_0xdf13[18]](function(_0xa287x6){return _0xa287x4[_0xdf13[17]](201)[_0xdf13[16]](_0xa287x6)})[_0xdf13[15]](function(_0xa287x5){return handleError(_0xa287x4,_0xa287x5)})};function handleError(_0xa287x4,_0xa287x5){return _0xa287x4[_0xdf13[17]](500)[_0xdf13[16]](_0xa287x5)}
\ No newline at end of file
index 0eb15d4..8fa4d0f 100644 (file)
@@ -1,27 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Motionbar = require('../../models').Motionbar;
-
-exports.register = function(socket) {
-  Motionbar.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Motionbar.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  // doc.UserId is string. You don't use ===
-  if (socket.userId == doc.UserId) {
-    socket.emit('motionbar:save', doc);
-  }
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('motionbar:remove', doc);
-}
+var _0x4d52=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x49\x64","\x55\x73\x65\x72\x49\x64","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x3A\x72\x65\x6D\x6F\x76\x65"];_0x4d52[0];var Motionbar=require(_0x4d52[2])[_0x4d52[1]];exports[_0x4d52[3]]=function(_0x6df0x2){Motionbar[_0x4d52[4]](function(_0x6df0x3){onSave(_0x6df0x2,_0x6df0x3)});Motionbar[_0x4d52[5]](function(_0x6df0x3){onRemove(_0x6df0x2,_0x6df0x3)})};function onSave(_0x6df0x2,_0x6df0x3,_0x6df0x5){if(_0x6df0x2[_0x4d52[6]]==_0x6df0x3[_0x4d52[7]]){_0x6df0x2[_0x4d52[9]](_0x4d52[8],_0x6df0x3)}}function onRemove(_0x6df0x2,_0x6df0x3,_0x6df0x5){_0x6df0x2[_0x4d52[9]](_0x4d52[10],_0x6df0x3)}
\ No newline at end of file
index bbbac7f..b154070 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/motionbar', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/motionbar')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x3d24=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x67\x65\x74"];_0x3d24[0];var should=require(_0x3d24[1]);var app=require(_0x3d24[2]);var request=require(_0x3d24[3]);describe(_0x3d24[4],function(){it(_0x3d24[5],function(_0x7cd2x4){request(app)[_0x3d24[13]](_0x3d24[12])[_0x3d24[11]](200)[_0x3d24[11]](_0x3d24[10],/json/)[_0x3d24[9]](function(_0x7cd2x5,_0x7cd2x6){if(_0x7cd2x5){return _0x7cd2x4(_0x7cd2x5)};_0x7cd2x6[_0x3d24[8]][_0x3d24[1]][_0x3d24[7]][_0x3d24[6]](Array);_0x7cd2x4()})})})
\ No newline at end of file
index bdf03bc..27e6ae0 100644 (file)
@@ -1,17 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./pause.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xab1a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x70\x61\x75\x73\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xab1a[0];var express=require(_0xab1a[1]);var auth=require(_0xab1a[2]);var controller=require(_0xab1a[3]);var router=express.Router();router[_0xab1a[7]](_0xab1a[4],auth[_0xab1a[5]](),controller[_0xab1a[6]]);router[_0xab1a[7]](_0xab1a[8],auth[_0xab1a[5]](),controller[_0xab1a[9]]);router[_0xab1a[11]](_0xab1a[4],auth[_0xab1a[5]](),controller[_0xab1a[10]]);router[_0xab1a[13]](_0xab1a[8],auth[_0xab1a[5]](),controller[_0xab1a[12]]);router[_0xab1a[14]](_0xab1a[8],auth[_0xab1a[5]](),controller[_0xab1a[12]]);router[_0xab1a[16]](_0xab1a[4],auth[_0xab1a[5]](),controller[_0xab1a[15]]);router[_0xab1a[16]](_0xab1a[8],auth[_0xab1a[5]](),controller[_0xab1a[17]]);module[_0xab1a[18]]=router
\ No newline at end of file
index 84c022b..9c66d80 100644 (file)
@@ -1,150 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/pauses              ->  index
- * POST    /api/pauses              ->  create
- * GET     /api/pauses/:id          ->  show
- * PUT     /api/pauses/:id          ->  update
- * DELETE  /api/pauses/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-var Util = require('../../config/util');
-
-var Pause = require('../../models').Pause;
-
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function (err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function (entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function (entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function (entity) {
-    return entity.updateAttributes(updates)
-      .then(function (updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function (entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function () {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of Pauses
-exports.index = function (req, res) {
-  return Pause
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function (result) {
-      res.status(200).send(result);
-    })
-    .catch(function (err) {
-      return handleError(res, err);
-    });
-}
-
-// Gets a single Pause from the DB
-exports.show = function (req, res) {
-  Pause.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new Pause in the DB
-exports.create = function (req, res) {
-  Pause.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing Pause in the DB
-exports.update = function (req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  Pause.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a Pause from the DB
-exports.destroy = function (req, res) {
-  Pause.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
-
-// Deletes a agent from the DB.
-exports.bulkDestroy = function (req, res) {
-
-  return Pause
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function () {
-      return res.sendStatus(204);
-    })
-    .catch(function (err) {
-      return handleError(res, err);
-    });
-};
-
-function getQuery(query) {
-  var _query = {
-    where: {}
-  };
-
-  _.forEach(query, function (value, key) {
-    switch (key) {
-    case 'limit':
-    case 'offset':
-    case 'order':
-      _query[key] = value;
-      break;
-    default:
-      _query.where[key] = {
-        $like: '%' + value + '%'
-      };
-    }
-  });
-
-  return _query;
-}
+var _0x52ca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x50\x61\x75\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64\x73","\x6C\x69\x6D\x69\x74","\x6F\x66\x66\x73\x65\x74","\x6F\x72\x64\x65\x72","\x77\x68\x65\x72\x65","\x25","\x66\x6F\x72\x45\x61\x63\x68"];_0x52ca[0];var _=require(_0x52ca[1]);var Util=require(_0x52ca[2]);var Pause=require(_0x52ca[4])[_0x52ca[3]];function handleError(_0x1fcax5,_0x1fcax6){_0x1fcax6=_0x1fcax6||500;return function(_0x1fcax7){_0x1fcax5[_0x52ca[6]](_0x1fcax6)[_0x52ca[5]](_0x1fcax7)}}function responseWithResult(_0x1fcax5,_0x1fcax6){_0x1fcax6=_0x1fcax6||200;return function(_0x1fcax9){if(_0x1fcax9){_0x1fcax5[_0x52ca[6]](_0x1fcax6)[_0x52ca[7]](_0x1fcax9)}}}function handleEntityNotFound(_0x1fcax5){return function(_0x1fcax9){if(!_0x1fcax9){_0x1fcax5[_0x52ca[6]](404)[_0x52ca[8]]();return null};return _0x1fcax9}}function saveUpdates(_0x1fcaxc){return function(_0x1fcax9){return _0x1fcax9[_0x52ca[10]](_0x1fcaxc)[_0x52ca[9]](function(_0x1fcaxd){return _0x1fcaxd})}}function removeEntity(_0x1fcax5){return function(_0x1fcax9){if(_0x1fcax9){return _0x1fcax9[_0x52ca[11]]()[_0x52ca[9]](function(){_0x1fcax5[_0x52ca[6]](204)[_0x52ca[8]]()})}}}exports[_0x52ca[12]]=function(_0x1fcaxf,_0x1fcax5){return Pause[_0x52ca[16]](Util[_0x52ca[15]](_0x1fcaxf[_0x52ca[14]]))[_0x52ca[9]](function(_0x1fcax10){_0x1fcax5[_0x52ca[6]](200)[_0x52ca[5]](_0x1fcax10)})[_0x52ca[13]](function(_0x1fcax7){return handleError(_0x1fcax5,_0x1fcax7)})};exports[_0x52ca[17]]=function(_0x1fcaxf,_0x1fcax5){Pause[_0x52ca[20]](_0x1fcaxf[_0x52ca[19]][_0x52ca[18]])[_0x52ca[9]](handleEntityNotFound(_0x1fcax5))[_0x52ca[9]](responseWithResult(_0x1fcax5))[_0x52ca[13]](handleError(_0x1fcax5))};exports[_0x52ca[21]]=function(_0x1fcaxf,_0x1fcax5){Pause[_0x52ca[21]](_0x1fcaxf[_0x52ca[22]])[_0x52ca[9]](responseWithResult(_0x1fcax5,201))[_0x52ca[13]](handleError(_0x1fcax5))};exports[_0x52ca[23]]=function(_0x1fcaxf,_0x1fcax5){if(_0x1fcaxf[_0x52ca[22]][_0x52ca[18]]){delete _0x1fcaxf[_0x52ca[22]][_0x52ca[18]]};Pause[_0x52ca[20]](_0x1fcaxf[_0x52ca[19]][_0x52ca[18]])[_0x52ca[9]](handleEntityNotFound(_0x1fcax5))[_0x52ca[9]](saveUpdates(_0x1fcaxf[_0x52ca[22]]))[_0x52ca[9]](responseWithResult(_0x1fcax5))[_0x52ca[13]](handleError(_0x1fcax5))};exports[_0x52ca[11]]=function(_0x1fcaxf,_0x1fcax5){Pause[_0x52ca[20]](_0x1fcaxf[_0x52ca[19]][_0x52ca[18]])[_0x52ca[9]](handleEntityNotFound(_0x1fcax5))[_0x52ca[9]](removeEntity(_0x1fcax5))[_0x52ca[13]](handleError(_0x1fcax5))};exports[_0x52ca[24]]=function(_0x1fcaxf,_0x1fcax5){return Pause[_0x52ca[11]]({where:{id:_0x1fcaxf[_0x52ca[14]][_0x52ca[26]]},individualHooks:true})[_0x52ca[9]](function(){return _0x1fcax5[_0x52ca[25]](204)})[_0x52ca[13]](function(_0x1fcax7){return handleError(_0x1fcax5,_0x1fcax7)})};function getQuery(_0x1fcax12){var _0x1fcax13={where:{}};_[_0x52ca[32]](_0x1fcax12,function(_0x1fcax14,_0x1fcax15){switch(_0x1fcax15){case _0x52ca[27]:;case _0x52ca[28]:;case _0x52ca[29]:_0x1fcax13[_0x1fcax15]=_0x1fcax14;break;default:_0x1fcax13[_0x52ca[30]][_0x1fcax15]={$like:_0x52ca[31]+_0x1fcax14+_0x52ca[31]}}});return _0x1fcax13}
\ No newline at end of file
index fd1c7b0..61e0f25 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Pause = require('../../models').Pause;
-
-exports.register = function(socket) {
-  Pause.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Pause.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('pause:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('pause:remove', doc);
-}
+var _0xd50f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x50\x61\x75\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x70\x61\x75\x73\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x70\x61\x75\x73\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xd50f[0];var Pause=require(_0xd50f[2])[_0xd50f[1]];exports[_0xd50f[3]]=function(_0x1930x2){Pause[_0xd50f[4]](function(_0x1930x3){onSave(_0x1930x2,_0x1930x3)});Pause[_0xd50f[5]](function(_0x1930x3){onRemove(_0x1930x2,_0x1930x3)})};function onSave(_0x1930x2,_0x1930x3,_0x1930x5){_0x1930x2[_0xd50f[7]](_0xd50f[6],_0x1930x3)}function onRemove(_0x1930x2,_0x1930x3,_0x1930x5){_0x1930x2[_0xd50f[7]](_0xd50f[8],_0x1930x3)}
\ No newline at end of file
index 92aec80..2bb03e6 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./report_agent.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/describe', controller.describe);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0x70b0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x70b0[0];var express=require(_0x70b0[1]);var controller=require(_0x70b0[2]);var router=express.Router();router[_0x70b0[5]](_0x70b0[3],controller[_0x70b0[4]]);router[_0x70b0[5]](_0x70b0[6],controller[_0x70b0[7]]);router[_0x70b0[5]](_0x70b0[8],controller[_0x70b0[9]]);router[_0x70b0[11]](_0x70b0[3],controller[_0x70b0[10]]);router[_0x70b0[13]](_0x70b0[8],controller[_0x70b0[12]]);router[_0x70b0[14]](_0x70b0[8],controller[_0x70b0[12]]);router[_0x70b0[16]](_0x70b0[8],controller[_0x70b0[15]]);module[_0x70b0[17]]=router
\ No newline at end of file
index 1b848da..ed4be4e 100644 (file)
@@ -1,106 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var ReportAgent = require('../../models').ReportAgent;
-var ReportAgentHistory = require('../../models').history.ReportAgentHistory;
-
-// Get list of report_agents
-exports.index = function(req, res) {
-  ReportAgent
-    .findAll()
-    .then(function(report_agents) {
-      return res.status(200).send(report_agents);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get list of fields
-exports.describe = function(req, res) {
-  ReportAgentHistory
-    .describe()
-    .then(function(fields) {
-      return res.status(200).send(fields);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single report_agent
-exports.show = function(req, res) {
-  ReportAgent
-    .findById(req.params.id)
-    .then(function(report_agent) {
-      if (!report_agent) {
-        return res.sendStatus(404);
-      }
-      return res.send(report_agent);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new report_agent in the DB.
-exports.create = function(req, res) {
-  ReportAgent
-    .create(req.body)
-    .then(function(report_agent) {
-      return res.status(201).send(report_agent);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing report_agent in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  ReportAgent
-    .findById(req.params.id)
-    .then(function(report_agent) {
-      if (!report_agent) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(report_agent, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(report_agent);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a report_agent from the DB.
-exports.destroy = function(req, res) {
-  ReportAgent
-    .findById(req.params.id)
-    .then(function(report_agent) {
-      if (!report_agent) {
-        return res.sendStatus(404);
-      }
-      report_agent.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xde4a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x48\x69\x73\x74\x6F\x72\x79","\x68\x69\x73\x74\x6F\x72\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x63\x72\x69\x62\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xde4a[0];var _=require(_0xde4a[1]);var ReportAgent=require(_0xde4a[3])[_0xde4a[2]];var ReportAgentHistory=require(_0xde4a[3])[_0xde4a[5]][_0xde4a[4]];exports[_0xde4a[6]]=function(_0xd16cx4,_0xd16cx5){ReportAgent[_0xde4a[11]]()[_0xde4a[10]](function(_0xd16cx7){return _0xd16cx5[_0xde4a[9]](200)[_0xde4a[8]](_0xd16cx7)})[_0xde4a[7]](function(_0xd16cx6){return handleError(_0xd16cx5,_0xd16cx6)})};exports[_0xde4a[12]]=function(_0xd16cx4,_0xd16cx5){ReportAgentHistory[_0xde4a[12]]()[_0xde4a[10]](function(_0xd16cx8){return _0xd16cx5[_0xde4a[9]](200)[_0xde4a[8]](_0xd16cx8)})[_0xde4a[7]](function(_0xd16cx6){return handleError(_0xd16cx5,_0xd16cx6)})};exports[_0xde4a[13]]=function(_0xd16cx4,_0xd16cx5){ReportAgent[_0xde4a[17]](_0xd16cx4[_0xde4a[16]][_0xde4a[15]])[_0xde4a[10]](function(_0xd16cx9){if(!_0xd16cx9){return _0xd16cx5[_0xde4a[14]](404)};return _0xd16cx5[_0xde4a[8]](_0xd16cx9)})[_0xde4a[7]](function(_0xd16cx6){return handleError(_0xd16cx5,_0xd16cx6)})};exports[_0xde4a[18]]=function(_0xd16cx4,_0xd16cx5){ReportAgent[_0xde4a[18]](_0xd16cx4[_0xde4a[19]])[_0xde4a[10]](function(_0xd16cx9){return _0xd16cx5[_0xde4a[9]](201)[_0xde4a[8]](_0xd16cx9)})[_0xde4a[7]](function(_0xd16cx6){return handleError(_0xd16cx5,_0xd16cx6)})};exports[_0xde4a[20]]=function(_0xd16cx4,_0xd16cx5){if(_0xd16cx4[_0xde4a[19]][_0xde4a[15]]){delete _0xd16cx4[_0xde4a[19]][_0xde4a[15]]};ReportAgent[_0xde4a[17]](_0xd16cx4[_0xde4a[16]][_0xde4a[15]])[_0xde4a[10]](function(_0xd16cx9){if(!_0xd16cx9){return _0xd16cx5[_0xde4a[14]](404)};var _0xd16cxa=_[_0xde4a[21]](_0xd16cx9,_0xd16cx4[_0xde4a[19]]);_0xd16cxa[_0xde4a[22]]()[_0xde4a[10]](function(){return _0xd16cx5[_0xde4a[9]](200)[_0xde4a[8]](_0xd16cx9)})[_0xde4a[7]](function(_0xd16cx6){return handleError(_0xd16cx5,_0xd16cx6)})})[_0xde4a[7]](function(_0xd16cx6){return handleError(_0xd16cx5,_0xd16cx6)})};exports[_0xde4a[23]]=function(_0xd16cx4,_0xd16cx5){ReportAgent[_0xde4a[17]](_0xd16cx4[_0xde4a[16]][_0xde4a[15]])[_0xde4a[10]](function(_0xd16cx9){if(!_0xd16cx9){return _0xd16cx5[_0xde4a[14]](404)};_0xd16cx9[_0xde4a[23]]()[_0xde4a[10]](function(){return _0xd16cx5[_0xde4a[14]](204)})[_0xde4a[7]](function(_0xd16cx6){return handleError(_0xd16cx5,_0xd16cx6)})})[_0xde4a[7]](function(_0xd16cx6){return handleError(_0xd16cx5,_0xd16cx6)})};function handleError(_0xd16cx5,_0xd16cx6){return _0xd16cx5[_0xde4a[9]](500)[_0xde4a[8]](_0xd16cx6)}
\ No newline at end of file
index 86cb2bb..cdd8df2 100644 (file)
@@ -1,30 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ReportAgent = require('../../models').ReportAgent;
-
-exports.register = function(socket) {
-  ReportAgent.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  ReportAgent.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  ReportAgent.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  if (socket.name === doc.membername || socket.role === 'admin') {
-    socket.emit('report_agent:save', doc);
-  }
-
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('report_agent:remove', doc);
-}
+var _0xb676=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x72\x6F\x6C\x65","\x61\x64\x6D\x69\x6E","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xb676[0];var ReportAgent=require(_0xb676[2])[_0xb676[1]];exports[_0xb676[3]]=function(_0xdd34x2){ReportAgent[_0xb676[4]](function(_0xdd34x3){onSave(_0xdd34x2,_0xdd34x3)});ReportAgent[_0xb676[5]](function(_0xdd34x3){onSave(_0xdd34x2,_0xdd34x3)});ReportAgent[_0xb676[6]](function(_0xdd34x3){onRemove(_0xdd34x2,_0xdd34x3)})};function onSave(_0xdd34x2,_0xdd34x3,_0xdd34x5){if(_0xdd34x2[_0xb676[7]]===_0xdd34x3[_0xb676[8]]||_0xdd34x2[_0xb676[9]]===_0xb676[10]){_0xdd34x2[_0xb676[12]](_0xb676[11],_0xdd34x3)}}function onRemove(_0xdd34x2,_0xdd34x3,_0xdd34x5){_0xdd34x2[_0xb676[12]](_0xb676[13],_0xdd34x3)}
\ No newline at end of file
index 7701153..1469969 100644 (file)
@@ -1,17 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./report_chat.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.get('/:id/accept/:uniqueid', auth.isAuthenticated(), controller.accept);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0x4d25=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x63\x63\x65\x70\x74\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x61\x63\x63\x65\x70\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4d25[0];var express=require(_0x4d25[1]);var controller=require(_0x4d25[2]);var auth=require(_0x4d25[3]);var router=express.Router();router[_0x4d25[6]](_0x4d25[4],controller[_0x4d25[5]]);router[_0x4d25[6]](_0x4d25[7],controller[_0x4d25[8]]);router[_0x4d25[6]](_0x4d25[9],auth[_0x4d25[10]](),controller[_0x4d25[11]]);router[_0x4d25[13]](_0x4d25[4],controller[_0x4d25[12]]);router[_0x4d25[15]](_0x4d25[7],controller[_0x4d25[14]]);router[_0x4d25[16]](_0x4d25[7],controller[_0x4d25[14]]);router[_0x4d25[18]](_0x4d25[7],controller[_0x4d25[17]]);module[_0x4d25[19]]=router
\ No newline at end of file
index 25acee0..527ce47 100644 (file)
@@ -1,156 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var md5 = require('md5');
-
-var ReportChat = require('../../models').ReportChat;
-var ChatRoom = require('../../models').ChatRoom;
-var ChatVisitor = require('../../models').ChatVisitor;
-var Agent = require('../../models').User;
-var sequelize = require('../../models').sequelize;
-
-var Util = require('../../config/util');
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return ReportChat
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Ge
-// Get a single reportChat
-exports.show = function(req, res) {
-  return ReportChat
-    .findById(req.params.id)
-    .then(function(reportChat) {
-      if (!reportChat) {
-        return res.sendStatus(404);
-      }
-      return res.send(reportChat);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single reportMail
-exports.accept = function(req, res) {
-  var _roomid = req.params.uniqueid.split('.')[1];
-  var _chatRoom;
-
-  return ChatRoom
-    .findById(_roomid)
-    .then(function(chatRoom) {
-      _chatRoom = chatRoom;
-      return _chatRoom
-        .addUser(req.user.id, {
-          individualHooks: true
-        });
-    })
-    .then(function() {
-      return _chatRoom
-        .update({
-          token: md5(JSON.stringify([req.user.id])).toString('base64')
-        })
-    })
-    .then(function() {
-      return ReportChat
-        .findById(req.params.id);
-    })
-    .then(function(reportChat) {
-      if (!reportChat) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(reportChat, {
-        connectid: req.params.uniqueid
-      });
-      return updated.save();
-    })
-    .then(function() {
-      return ChatVisitor.findById(_chatRoom.ChatVisitorId);
-    })
-    .then(function(chatVisitor) {
-      if (!chatVisitor) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(chatVisitor, {
-        status: 'accepted'
-      });
-      return updated.save();
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new reportChat in the DB.
-exports.create = function(req, res) {
-  return ReportChat
-    .create(req.body)
-    .then(function(reportChat) {
-      return res.status(201).send(reportChat);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing reportChat in the DB.
-exports.update = function(req, res, next) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return ReportChat
-    .findById(req.params.id)
-    .then(function(reportChat) {
-      if (!reportChat) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(reportChat, req.body);
-      return updated
-        .save()
-        .then(function() {
-          return res.status(200).send(reportChat);
-        });
-    })
-    .catch(sequelize.ValidationError, function(err) {
-      return handleError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a reportChat from the DB.
-exports.destroy = function(req, res) {
-  ReportChat
-    .findById(req.params.id)
-    .then(function(reportChat) {
-      if (!reportChat) {
-        return res.sendStatus(404);
-      }
-      reportChat.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xfba5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x64\x35","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x55\x73\x65\x72","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x63\x63\x65\x70\x74","\x2E","\x73\x70\x6C\x69\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x61\x63\x63\x65\x70\x74\x65\x64","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x62\x61\x73\x65\x36\x34","\x75\x73\x65\x72","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x75\x70\x64\x61\x74\x65","\x61\x64\x64\x55\x73\x65\x72","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x74\x72\x6F\x79"];_0xfba5[0];var _=require(_0xfba5[1]);var md5=require(_0xfba5[2]);var ReportChat=require(_0xfba5[4])[_0xfba5[3]];var ChatRoom=require(_0xfba5[4])[_0xfba5[5]];var ChatVisitor=require(_0xfba5[4])[_0xfba5[6]];var Agent=require(_0xfba5[4])[_0xfba5[7]];var sequelize=require(_0xfba5[4])[_0xfba5[8]];var Util=require(_0xfba5[9]);exports[_0xfba5[10]]=function(_0xcdbfx9,_0xcdbfxa,_0xcdbfxb){return ReportChat[_0xfba5[17]](Util[_0xfba5[16]](_0xcdbfx9[_0xfba5[15]]))[_0xfba5[14]](function(_0xcdbfxd){_0xcdbfxa[_0xfba5[13]](200)[_0xfba5[12]](_0xcdbfxd)})[_0xfba5[11]](function(_0xcdbfxc){return handleError(_0xcdbfxa,_0xcdbfxc)})};exports[_0xfba5[18]]=function(_0xcdbfx9,_0xcdbfxa){return ReportChat[_0xfba5[22]](_0xcdbfx9[_0xfba5[21]][_0xfba5[20]])[_0xfba5[14]](function(_0xcdbfxe){if(!_0xcdbfxe){return _0xcdbfxa[_0xfba5[19]](404)};return _0xcdbfxa[_0xfba5[12]](_0xcdbfxe)})[_0xfba5[11]](function(_0xcdbfxc){return handleError(_0xcdbfxa,_0xcdbfxc)})};exports[_0xfba5[23]]=function(_0xcdbfx9,_0xcdbfxa){var _0xcdbfxf=_0xcdbfx9[_0xfba5[21]][_0xfba5[26]][_0xfba5[25]](_0xfba5[24])[1];var _0xcdbfx10;return ChatRoom[_0xfba5[22]](_0xcdbfxf)[_0xfba5[14]](function(_0xcdbfx13){_0xcdbfx10=_0xcdbfx13;return _0xcdbfx10[_0xfba5[34]](_0xcdbfx9[_0xfba5[31]][_0xfba5[20]],{individualHooks:true})})[_0xfba5[14]](function(){return _0xcdbfx10[_0xfba5[33]]({token:md5(JSON[_0xfba5[32]]([_0xcdbfx9[_0xfba5[31]][_0xfba5[20]]])).toString(_0xfba5[30])})})[_0xfba5[14]](function(){return ReportChat[_0xfba5[22]](_0xcdbfx9[_0xfba5[21]][_0xfba5[20]])})[_0xfba5[14]](function(_0xcdbfxe){if(!_0xcdbfxe){return _0xcdbfxa[_0xfba5[19]](404)};var _0xcdbfx12=_[_0xfba5[28]](_0xcdbfxe,{connectid:_0xcdbfx9[_0xfba5[21]][_0xfba5[26]]});return _0xcdbfx12[_0xfba5[29]]()})[_0xfba5[14]](function(){return ChatVisitor[_0xfba5[22]](_0xcdbfx10.ChatVisitorId)})[_0xfba5[14]](function(_0xcdbfx11){if(!_0xcdbfx11){return _0xcdbfxa[_0xfba5[19]](404)};var _0xcdbfx12=_[_0xfba5[28]](_0xcdbfx11,{status:_0xfba5[27]});return _0xcdbfx12[_0xfba5[29]]()})[_0xfba5[14]](function(){return _0xcdbfxa[_0xfba5[19]](200)})[_0xfba5[11]](function(_0xcdbfxc){return handleError(_0xcdbfxa,_0xcdbfxc)})};exports[_0xfba5[35]]=function(_0xcdbfx9,_0xcdbfxa){return ReportChat[_0xfba5[35]](_0xcdbfx9[_0xfba5[36]])[_0xfba5[14]](function(_0xcdbfxe){return _0xcdbfxa[_0xfba5[13]](201)[_0xfba5[12]](_0xcdbfxe)})[_0xfba5[11]](function(_0xcdbfxc){return handleError(_0xcdbfxa,_0xcdbfxc)})};exports[_0xfba5[33]]=function(_0xcdbfx9,_0xcdbfxa,_0xcdbfxb){if(_0xcdbfx9[_0xfba5[36]][_0xfba5[20]]){delete _0xcdbfx9[_0xfba5[36]][_0xfba5[20]]};return ReportChat[_0xfba5[22]](_0xcdbfx9[_0xfba5[21]][_0xfba5[20]])[_0xfba5[14]](function(_0xcdbfxe){if(!_0xcdbfxe){return _0xcdbfxa[_0xfba5[19]](404)};var _0xcdbfx12=_[_0xfba5[28]](_0xcdbfxe,_0xcdbfx9[_0xfba5[36]]);return _0xcdbfx12[_0xfba5[29]]()[_0xfba5[14]](function(){return _0xcdbfxa[_0xfba5[13]](200)[_0xfba5[12]](_0xcdbfxe)})})[_0xfba5[11]](sequelize.ValidationError,function(_0xcdbfxc){return handleError(_0xcdbfxa,_0xcdbfxc)})[_0xfba5[11]](function(_0xcdbfxc){return handleError(_0xcdbfxa,_0xcdbfxc)})};exports[_0xfba5[37]]=function(_0xcdbfx9,_0xcdbfxa){ReportChat[_0xfba5[22]](_0xcdbfx9[_0xfba5[21]][_0xfba5[20]])[_0xfba5[14]](function(_0xcdbfxe){if(!_0xcdbfxe){return _0xcdbfxa[_0xfba5[19]](404)};_0xcdbfxe[_0xfba5[37]]()[_0xfba5[14]](function(){return _0xcdbfxa[_0xfba5[19]](204)})[_0xfba5[11]](function(_0xcdbfxc){return handleError(_0xcdbfxa,_0xcdbfxc)})})[_0xfba5[11]](function(_0xcdbfxc){return handleError(_0xcdbfxa,_0xcdbfxc)})};function handleError(_0xcdbfxa,_0xcdbfxc){return _0xcdbfxa[_0xfba5[13]](500)[_0xfba5[12]](_0xcdbfxc)}
\ No newline at end of file
index dd9728d..93e5bae 100644 (file)
@@ -1,35 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ReportChat = require('../../models').ReportChat;
-
-exports.register = function(socket) {
-  ReportChat.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  ReportChat.afterUpdate(function(doc) {
-    onUpdate(socket, doc);
-  });
-  ReportChat.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  if (socket.name === doc.agentname || socket.role === 'admin') {
-    socket.emit('report_chat:save', doc);
-  }
-}
-
-function onUpdate(socket, doc, cb) {
-  if (socket.name === doc.agentname || socket.role === 'admin') {
-    socket.emit('report_chat:update', doc);
-  }
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('report_chat:remove', doc);
-}
+var _0x3872=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6E\x61\x6D\x65","\x61\x67\x65\x6E\x74\x6E\x61\x6D\x65","\x72\x6F\x6C\x65","\x61\x64\x6D\x69\x6E","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x3A\x75\x70\x64\x61\x74\x65","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3872[0];var ReportChat=require(_0x3872[2])[_0x3872[1]];exports[_0x3872[3]]=function(_0x7a04x2){ReportChat[_0x3872[4]](function(_0x7a04x3){onSave(_0x7a04x2,_0x7a04x3)});ReportChat[_0x3872[5]](function(_0x7a04x3){onUpdate(_0x7a04x2,_0x7a04x3)});ReportChat[_0x3872[6]](function(_0x7a04x3){onRemove(_0x7a04x2,_0x7a04x3)})};function onSave(_0x7a04x2,_0x7a04x3,_0x7a04x5){if(_0x7a04x2[_0x3872[7]]===_0x7a04x3[_0x3872[8]]||_0x7a04x2[_0x3872[9]]===_0x3872[10]){_0x7a04x2[_0x3872[12]](_0x3872[11],_0x7a04x3)}}function onUpdate(_0x7a04x2,_0x7a04x3,_0x7a04x5){if(_0x7a04x2[_0x3872[7]]===_0x7a04x3[_0x3872[8]]||_0x7a04x2[_0x3872[9]]===_0x3872[10]){_0x7a04x2[_0x3872[12]](_0x3872[13],_0x7a04x3)}}function onRemove(_0x7a04x2,_0x7a04x3,_0x7a04x5){_0x7a04x2[_0x3872[12]](_0x3872[14],_0x7a04x3)}
\ No newline at end of file
index 030bd33..167c26c 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./report_chat_session.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/describe', controller.describe);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0x8603=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8603[0];var express=require(_0x8603[1]);var controller=require(_0x8603[2]);var router=express.Router();router[_0x8603[5]](_0x8603[3],controller[_0x8603[4]]);router[_0x8603[5]](_0x8603[6],controller[_0x8603[7]]);router[_0x8603[5]](_0x8603[8],controller[_0x8603[9]]);router[_0x8603[11]](_0x8603[3],controller[_0x8603[10]]);router[_0x8603[13]](_0x8603[8],controller[_0x8603[12]]);router[_0x8603[14]](_0x8603[8],controller[_0x8603[12]]);router[_0x8603[16]](_0x8603[8],controller[_0x8603[15]]);module[_0x8603[17]]=router
\ No newline at end of file
index c3cd755..69fa036 100644 (file)
@@ -1,107 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var ReportChatSession = require('../../models').ReportChatSession;
-var ReportChatSessionHistory = require('../../models').history.ReportChatSessionHistory;
-
-var Util = require('../../config/util');
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return ReportChatSession
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Get list of fields
-exports.describe = function(req, res) {
-  return ReportChatSessionHistory
-    .describe()
-    .then(function(fields) {
-      return res.status(200).send(fields);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single report_chat_session
-exports.show = function(req, res) {
-  return ReportChatSession
-    .findById(req.params.id)
-    .then(function(report_chat_session) {
-      if (!report_chat_session) {
-        return res.sendStatus(404);
-      }
-      return res.send(report_chat_session);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new report_chat_session in the DB.
-exports.create = function(req, res) {
-  return ReportChatSession
-    .create(req.body)
-    .then(function(report_chat_session) {
-      return res.status(201).send(report_chat_session);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing report_chat_session in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return ReportChatSession
-    .findById(req.params.id)
-    .then(function(report_chat_session) {
-      if (!report_chat_session) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(report_chat_session, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(report_chat_session);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a report_chat_session from the DB.
-exports.destroy = function(req, res) {
-  return ReportChatSession
-    .findById(req.params.id)
-    .then(function(report_chat_session) {
-      if (!report_chat_session) {
-        return res.sendStatus(404);
-      }
-      report_chat_session.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x73d1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x68\x69\x73\x74\x6F\x72\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x64\x65\x73\x63\x72\x69\x62\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x73d1[0];var _=require(_0x73d1[1]);var ReportChatSession=require(_0x73d1[3])[_0x73d1[2]];var ReportChatSessionHistory=require(_0x73d1[3])[_0x73d1[5]][_0x73d1[4]];var Util=require(_0x73d1[6]);exports[_0x73d1[7]]=function(_0x4b86x5,_0x4b86x6,_0x4b86x7){return ReportChatSession[_0x73d1[14]](Util[_0x73d1[13]](_0x4b86x5[_0x73d1[12]]))[_0x73d1[11]](function(_0x4b86x9){_0x4b86x6[_0x73d1[10]](200)[_0x73d1[9]](_0x4b86x9)})[_0x73d1[8]](function(_0x4b86x8){return handleError(_0x4b86x6,_0x4b86x8)})};exports[_0x73d1[15]]=function(_0x4b86x5,_0x4b86x6){return ReportChatSessionHistory[_0x73d1[15]]()[_0x73d1[11]](function(_0x4b86xa){return _0x4b86x6[_0x73d1[10]](200)[_0x73d1[9]](_0x4b86xa)})[_0x73d1[8]](function(_0x4b86x8){return handleError(_0x4b86x6,_0x4b86x8)})};exports[_0x73d1[16]]=function(_0x4b86x5,_0x4b86x6){return ReportChatSession[_0x73d1[20]](_0x4b86x5[_0x73d1[19]][_0x73d1[18]])[_0x73d1[11]](function(_0x4b86xb){if(!_0x4b86xb){return _0x4b86x6[_0x73d1[17]](404)};return _0x4b86x6[_0x73d1[9]](_0x4b86xb)})[_0x73d1[8]](function(_0x4b86x8){return handleError(_0x4b86x6,_0x4b86x8)})};exports[_0x73d1[21]]=function(_0x4b86x5,_0x4b86x6){return ReportChatSession[_0x73d1[21]](_0x4b86x5[_0x73d1[22]])[_0x73d1[11]](function(_0x4b86xb){return _0x4b86x6[_0x73d1[10]](201)[_0x73d1[9]](_0x4b86xb)})[_0x73d1[8]](function(_0x4b86x8){return handleError(_0x4b86x6,_0x4b86x8)})};exports[_0x73d1[23]]=function(_0x4b86x5,_0x4b86x6){if(_0x4b86x5[_0x73d1[22]][_0x73d1[18]]){delete _0x4b86x5[_0x73d1[22]][_0x73d1[18]]};return ReportChatSession[_0x73d1[20]](_0x4b86x5[_0x73d1[19]][_0x73d1[18]])[_0x73d1[11]](function(_0x4b86xb){if(!_0x4b86xb){return _0x4b86x6[_0x73d1[17]](404)};var _0x4b86xc=_[_0x73d1[24]](_0x4b86xb,_0x4b86x5[_0x73d1[22]]);_0x4b86xc[_0x73d1[25]]()[_0x73d1[11]](function(){return _0x4b86x6[_0x73d1[10]](200)[_0x73d1[9]](_0x4b86xb)})[_0x73d1[8]](function(_0x4b86x8){return handleError(_0x4b86x6,_0x4b86x8)})})[_0x73d1[8]](function(_0x4b86x8){return handleError(_0x4b86x6,_0x4b86x8)})};exports[_0x73d1[26]]=function(_0x4b86x5,_0x4b86x6){return ReportChatSession[_0x73d1[20]](_0x4b86x5[_0x73d1[19]][_0x73d1[18]])[_0x73d1[11]](function(_0x4b86xb){if(!_0x4b86xb){return _0x4b86x6[_0x73d1[17]](404)};_0x4b86xb[_0x73d1[26]]()[_0x73d1[11]](function(){return _0x4b86x6[_0x73d1[17]](204)})[_0x73d1[8]](function(_0x4b86x8){return handleError(_0x4b86x6,_0x4b86x8)})})[_0x73d1[8]](function(_0x4b86x8){return handleError(_0x4b86x6,_0x4b86x8)})};function handleError(_0x4b86x6,_0x4b86x8){return _0x4b86x6[_0x73d1[10]](500)[_0x73d1[9]](_0x4b86x8)}
\ No newline at end of file
index a378e10..c870e88 100644 (file)
@@ -1,27 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ReportChatSession = require('../../models').ReportChatSession;
-
-exports.register = function(socket) {
-  ReportChatSession.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  ReportChatSession.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  ReportChatSession.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('report_chat_session:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('report_chat_session:remove', doc);
-}
+var _0x1212=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x1212[0];var ReportChatSession=require(_0x1212[2])[_0x1212[1]];exports[_0x1212[3]]=function(_0x222cx2){ReportChatSession[_0x1212[4]](function(_0x222cx3){onSave(_0x222cx2,_0x222cx3)});ReportChatSession[_0x1212[5]](function(_0x222cx3){onSave(_0x222cx2,_0x222cx3)});ReportChatSession[_0x1212[6]](function(_0x222cx3){onRemove(_0x222cx2,_0x222cx3)})};function onSave(_0x222cx2,_0x222cx3,_0x222cx5){_0x222cx2[_0x1212[8]](_0x1212[7],_0x222cx3)}function onRemove(_0x222cx2,_0x222cx3,_0x222cx5){_0x222cx2[_0x1212[8]](_0x1212[9],_0x222cx3)}
\ No newline at end of file
index 451980f..b0cd0f1 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./report_integration.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/describe', controller.describe);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0x5262=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5262[0];var express=require(_0x5262[1]);var controller=require(_0x5262[2]);var router=express.Router();router[_0x5262[5]](_0x5262[3],controller[_0x5262[4]]);router[_0x5262[5]](_0x5262[6],controller[_0x5262[7]]);router[_0x5262[5]](_0x5262[8],controller[_0x5262[9]]);router[_0x5262[11]](_0x5262[3],controller[_0x5262[10]]);router[_0x5262[13]](_0x5262[8],controller[_0x5262[12]]);router[_0x5262[14]](_0x5262[8],controller[_0x5262[12]]);router[_0x5262[16]](_0x5262[8],controller[_0x5262[15]]);module[_0x5262[17]]=router
\ No newline at end of file
index 6fc6afb..232dc7b 100644 (file)
@@ -1,106 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var ReportIntegration = require('../../models').ReportIntegration;
-var ReportIntegrationHistory = require('../../models').history.ReportIntegrationHistory;
-
-// Get list of report_integrations
-exports.index = function(req, res) {
-  ReportIntegration
-    .findAll()
-    .then(function(report_integrations) {
-      return res.status(200).send(report_integrations);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get list of fields
-exports.describe = function(req, res) {
-  ReportIntegrationHistory
-    .describe()
-    .then(function(fields) {
-      return res.status(200).send(fields);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single report_integration
-exports.show = function(req, res) {
-  ReportIntegration
-    .findById(req.params.id)
-    .then(function(report_integration) {
-      if (!report_integration) {
-        return res.sendStatus(404);
-      }
-      return res.send(report_integration);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new report_integration in the DB.
-exports.create = function(req, res) {
-  ReportIntegration
-    .create(req.body)
-    .then(function(report_integration) {
-      return res.status(201).send(report_integration);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing report_integration in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  ReportIntegration
-    .findById(req.params.id)
-    .then(function(report_integration) {
-      if (!report_integration) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(report_integration, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(report_integration);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a report_integration from the DB.
-exports.destroy = function(req, res) {
-  ReportIntegration
-    .findById(req.params.id)
-    .then(function(report_integration) {
-      if (!report_integration) {
-        return res.sendStatus(404);
-      }
-      report_integration.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x5944=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x68\x69\x73\x74\x6F\x72\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x63\x72\x69\x62\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x5944[0];var _=require(_0x5944[1]);var ReportIntegration=require(_0x5944[3])[_0x5944[2]];var ReportIntegrationHistory=require(_0x5944[3])[_0x5944[5]][_0x5944[4]];exports[_0x5944[6]]=function(_0x4a09x4,_0x4a09x5){ReportIntegration[_0x5944[11]]()[_0x5944[10]](function(_0x4a09x7){return _0x4a09x5[_0x5944[9]](200)[_0x5944[8]](_0x4a09x7)})[_0x5944[7]](function(_0x4a09x6){return handleError(_0x4a09x5,_0x4a09x6)})};exports[_0x5944[12]]=function(_0x4a09x4,_0x4a09x5){ReportIntegrationHistory[_0x5944[12]]()[_0x5944[10]](function(_0x4a09x8){return _0x4a09x5[_0x5944[9]](200)[_0x5944[8]](_0x4a09x8)})[_0x5944[7]](function(_0x4a09x6){return handleError(_0x4a09x5,_0x4a09x6)})};exports[_0x5944[13]]=function(_0x4a09x4,_0x4a09x5){ReportIntegration[_0x5944[17]](_0x4a09x4[_0x5944[16]][_0x5944[15]])[_0x5944[10]](function(_0x4a09x9){if(!_0x4a09x9){return _0x4a09x5[_0x5944[14]](404)};return _0x4a09x5[_0x5944[8]](_0x4a09x9)})[_0x5944[7]](function(_0x4a09x6){return handleError(_0x4a09x5,_0x4a09x6)})};exports[_0x5944[18]]=function(_0x4a09x4,_0x4a09x5){ReportIntegration[_0x5944[18]](_0x4a09x4[_0x5944[19]])[_0x5944[10]](function(_0x4a09x9){return _0x4a09x5[_0x5944[9]](201)[_0x5944[8]](_0x4a09x9)})[_0x5944[7]](function(_0x4a09x6){return handleError(_0x4a09x5,_0x4a09x6)})};exports[_0x5944[20]]=function(_0x4a09x4,_0x4a09x5){if(_0x4a09x4[_0x5944[19]][_0x5944[15]]){delete _0x4a09x4[_0x5944[19]][_0x5944[15]]};ReportIntegration[_0x5944[17]](_0x4a09x4[_0x5944[16]][_0x5944[15]])[_0x5944[10]](function(_0x4a09x9){if(!_0x4a09x9){return _0x4a09x5[_0x5944[14]](404)};var _0x4a09xa=_[_0x5944[21]](_0x4a09x9,_0x4a09x4[_0x5944[19]]);_0x4a09xa[_0x5944[22]]()[_0x5944[10]](function(){return _0x4a09x5[_0x5944[9]](200)[_0x5944[8]](_0x4a09x9)})[_0x5944[7]](function(_0x4a09x6){return handleError(_0x4a09x5,_0x4a09x6)})})[_0x5944[7]](function(_0x4a09x6){return handleError(_0x4a09x5,_0x4a09x6)})};exports[_0x5944[23]]=function(_0x4a09x4,_0x4a09x5){ReportIntegration[_0x5944[17]](_0x4a09x4[_0x5944[16]][_0x5944[15]])[_0x5944[10]](function(_0x4a09x9){if(!_0x4a09x9){return _0x4a09x5[_0x5944[14]](404)};_0x4a09x9[_0x5944[23]]()[_0x5944[10]](function(){return _0x4a09x5[_0x5944[14]](204)})[_0x5944[7]](function(_0x4a09x6){return handleError(_0x4a09x5,_0x4a09x6)})})[_0x5944[7]](function(_0x4a09x6){return handleError(_0x4a09x5,_0x4a09x6)})};function handleError(_0x4a09x5,_0x4a09x6){return _0x4a09x5[_0x5944[9]](500)[_0x5944[8]](_0x4a09x6)}
\ No newline at end of file
index 2bd59ab..3674095 100644 (file)
@@ -1,23 +1 @@
-/**
- * Broadcast integrations update when the model changes
- */
-
-'use strict';
-
-var util = require('util');
-var ReportIntegration = require('../../models').ReportIntegration;
-
-exports.register = function(socket) {
-  ReportIntegration.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  console.log('socket name is ', socket.name);
-  console.log('doc membername is ', doc.membername);
-  if (socket.name === doc.membername) {
-    console.log('emitting');
-    socket.emit(util.format('report_integration:%s', doc.integration), doc);
-  }
-}
+var _0xedec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x73\x6F\x63\x6B\x65\x74\x20\x6E\x61\x6D\x65\x20\x69\x73\x20","\x6E\x61\x6D\x65","\x6C\x6F\x67","\x64\x6F\x63\x20\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65\x20\x69\x73\x20","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x65\x6D\x69\x74\x74\x69\x6E\x67","\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x3A\x25\x73","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x66\x6F\x72\x6D\x61\x74","\x65\x6D\x69\x74"];_0xedec[0];var util=require(_0xedec[1]);var ReportIntegration=require(_0xedec[3])[_0xedec[2]];exports[_0xedec[4]]=function(_0xe49ax3){ReportIntegration[_0xedec[5]](function(_0xe49ax4){onSave(_0xe49ax3,_0xe49ax4)})};function onSave(_0xe49ax3,_0xe49ax4,_0xe49ax6){console[_0xedec[8]](_0xedec[6],_0xe49ax3[_0xedec[7]]);console[_0xedec[8]](_0xedec[9],_0xe49ax4[_0xedec[10]]);if(_0xe49ax3[_0xedec[7]]===_0xe49ax4[_0xedec[10]]){console[_0xedec[8]](_0xedec[11]);_0xe49ax3[_0xedec[15]](util[_0xedec[14]](_0xedec[12],_0xe49ax4[_0xedec[13]]),_0xe49ax4)}}
\ No newline at end of file
index 2aadc12..aa19b07 100644 (file)
@@ -1,17 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./report_mail.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/accept/:uniqueid', auth.isAuthenticated(), controller.accept);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x5fa0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x63\x63\x65\x70\x74\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64","\x61\x63\x63\x65\x70\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5fa0[0];var express=require(_0x5fa0[1]);var controller=require(_0x5fa0[2]);var auth=require(_0x5fa0[3]);var router=express.Router();router[_0x5fa0[7]](_0x5fa0[4],auth[_0x5fa0[5]](),controller[_0x5fa0[6]]);router[_0x5fa0[7]](_0x5fa0[8],auth[_0x5fa0[5]](),controller[_0x5fa0[9]]);router[_0x5fa0[7]](_0x5fa0[10],auth[_0x5fa0[5]](),controller[_0x5fa0[11]]);router[_0x5fa0[13]](_0x5fa0[4],auth[_0x5fa0[5]](),controller[_0x5fa0[12]]);router[_0x5fa0[15]](_0x5fa0[8],auth[_0x5fa0[5]](),controller[_0x5fa0[14]]);router[_0x5fa0[16]](_0x5fa0[8],auth[_0x5fa0[5]](),controller[_0x5fa0[14]]);router[_0x5fa0[18]](_0x5fa0[8],auth[_0x5fa0[5]](),controller[_0x5fa0[17]]);module[_0x5fa0[19]]=router
\ No newline at end of file
index 9477b57..d603d92 100644 (file)
@@ -1,140 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var ReportMail = require('../../models').ReportMail;
-var Agent = require('../../models').User;
-var sequelize = require('../../models').sequelize;
-
-var Util = require('../../config/util');
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return ReportMail
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Get a single reportMail
-exports.show = function(req, res) {
-  return ReportMail
-    .findById(req.params.id)
-    .then(function(reportMail) {
-      if (!reportMail) {
-        return res.sendStatus(404);
-      }
-      return res.send(reportMail);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single reportMail
-exports.accept = function(req, res) {
-  var _agent;
-  var _roomid = req.params.uniqueid.split('.')[1];
-
-  return Agent
-    .findById(req.user.id, {
-      attributes: ['id', 'mailCapacity']
-    })
-    .then(function(agent) {
-      _agent = agent;
-      return agent
-        .getMailRooms({
-          where: {
-            status: {
-              $ne: 'CLOSED'
-            },
-            id: {
-              $ne: _roomid
-            }
-          },
-          attributes: ['id']
-        });
-    })
-    .then(function(mailRooms) {
-      return ReportMail
-        .findById(req.params.id);
-    })
-    .then(function(reportMail) {
-      if (!reportMail) {
-        return res.sendStatus(404);
-      }
-
-      var updated = _.merge(reportMail, {
-        connectid: req.params.uniqueid
-      });
-
-      return updated
-        .save();
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new reportMail in the DB.
-exports.create = function(req, res) {
-  return ReportMail
-    .create(req.body)
-    .then(function(reportMail) {
-      return res.status(201).send(reportMail);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing reportMail in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return ReportMail
-    .findById(req.params.id)
-    .then(function(reportMail) {
-      if (!reportMail) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(reportMail, req.body);
-      return updated
-        .save();
-    })
-    .then(function(reportMail) {
-      return res.status(200).send(reportMail);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a reportMail from the DB.
-exports.destroy = function(req, res) {
-  return ReportMail
-    .findById(req.params.id)
-    .then(function(reportMail) {
-      if (!reportMail) {
-        return res.sendStatus(404);
-      }
-      return reportMail
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x2c98=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x63\x63\x65\x70\x74","\x2E","\x73\x70\x6C\x69\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x43\x4C\x4F\x53\x45\x44","\x67\x65\x74\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x73","\x75\x73\x65\x72","\x6D\x61\x69\x6C\x43\x61\x70\x61\x63\x69\x74\x79","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x2c98[0];var _=require(_0x2c98[1]);var ReportMail=require(_0x2c98[3])[_0x2c98[2]];var Agent=require(_0x2c98[3])[_0x2c98[4]];var sequelize=require(_0x2c98[3])[_0x2c98[5]];var Util=require(_0x2c98[6]);exports[_0x2c98[7]]=function(_0xfecax6,_0xfecax7,_0xfecax8){return ReportMail[_0x2c98[14]](Util[_0x2c98[13]](_0xfecax6[_0x2c98[12]]))[_0x2c98[11]](function(_0xfecaxa){_0xfecax7[_0x2c98[10]](200)[_0x2c98[9]](_0xfecaxa)})[_0x2c98[8]](function(_0xfecax9){return handleError(_0xfecax7,_0xfecax9)})};exports[_0x2c98[15]]=function(_0xfecax6,_0xfecax7){return ReportMail[_0x2c98[19]](_0xfecax6[_0x2c98[18]][_0x2c98[17]])[_0x2c98[11]](function(_0xfecaxb){if(!_0xfecaxb){return _0xfecax7[_0x2c98[16]](404)};return _0xfecax7[_0x2c98[9]](_0xfecaxb)})[_0x2c98[8]](function(_0xfecax9){return handleError(_0xfecax7,_0xfecax9)})};exports[_0x2c98[20]]=function(_0xfecax6,_0xfecax7){var _0xfecaxc;var _0xfecaxd=_0xfecax6[_0x2c98[18]][_0x2c98[23]][_0x2c98[22]](_0x2c98[21])[1];return Agent[_0x2c98[19]](_0xfecax6[_0x2c98[28]][_0x2c98[17]],{attributes:[_0x2c98[17],_0x2c98[29]]})[_0x2c98[11]](function(_0xfecax10){_0xfecaxc=_0xfecax10;return _0xfecax10[_0x2c98[27]]({where:{status:{$ne:_0x2c98[26]},id:{$ne:_0xfecaxd}},attributes:[_0x2c98[17]]})})[_0x2c98[11]](function(_0xfecaxf){return ReportMail[_0x2c98[19]](_0xfecax6[_0x2c98[18]][_0x2c98[17]])})[_0x2c98[11]](function(_0xfecaxb){if(!_0xfecaxb){return _0xfecax7[_0x2c98[16]](404)};var _0xfecaxe=_[_0x2c98[24]](_0xfecaxb,{connectid:_0xfecax6[_0x2c98[18]][_0x2c98[23]]});return _0xfecaxe[_0x2c98[25]]()})[_0x2c98[11]](function(){return _0xfecax7[_0x2c98[16]](200)})[_0x2c98[8]](function(_0xfecax9){return handleError(_0xfecax7,_0xfecax9)})};exports[_0x2c98[30]]=function(_0xfecax6,_0xfecax7){return ReportMail[_0x2c98[30]](_0xfecax6[_0x2c98[31]])[_0x2c98[11]](function(_0xfecaxb){return _0xfecax7[_0x2c98[10]](201)[_0x2c98[9]](_0xfecaxb)})[_0x2c98[8]](function(_0xfecax9){return handleError(_0xfecax7,_0xfecax9)})};exports[_0x2c98[32]]=function(_0xfecax6,_0xfecax7){if(_0xfecax6[_0x2c98[31]][_0x2c98[17]]){delete _0xfecax6[_0x2c98[31]][_0x2c98[17]]};return ReportMail[_0x2c98[19]](_0xfecax6[_0x2c98[18]][_0x2c98[17]])[_0x2c98[11]](function(_0xfecaxb){if(!_0xfecaxb){return _0xfecax7[_0x2c98[16]](404)};var _0xfecaxe=_[_0x2c98[24]](_0xfecaxb,_0xfecax6[_0x2c98[31]]);return _0xfecaxe[_0x2c98[25]]()})[_0x2c98[11]](function(_0xfecaxb){return _0xfecax7[_0x2c98[10]](200)[_0x2c98[9]](_0xfecaxb)})[_0x2c98[8]](function(_0xfecax9){return handleError(_0xfecax7,_0xfecax9)})};exports[_0x2c98[33]]=function(_0xfecax6,_0xfecax7){return ReportMail[_0x2c98[19]](_0xfecax6[_0x2c98[18]][_0x2c98[17]])[_0x2c98[11]](function(_0xfecaxb){if(!_0xfecaxb){return _0xfecax7[_0x2c98[16]](404)};return _0xfecaxb[_0x2c98[33]]()})[_0x2c98[11]](function(){return _0xfecax7[_0x2c98[16]](204)})[_0x2c98[8]](function(_0xfecax9){return handleError(_0xfecax7,_0xfecax9)})};function handleError(_0xfecax7,_0xfecax9){return _0xfecax7[_0x2c98[10]](500)[_0x2c98[9]](_0xfecax9)}
\ No newline at end of file
index 1fec069..0169d50 100644 (file)
@@ -1,35 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ReportMail = require('../../models').ReportMail;
-
-exports.register = function(socket) {
-  ReportMail.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  ReportMail.afterUpdate(function(doc) {
-    onUpdate(socket, doc);
-  });
-  ReportMail.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  if (socket.name === doc.membername || socket.role === 'admin') {
-    socket.emit('report_mail:save', doc);
-  }
-}
-
-function onUpdate(socket, doc, cb) {
-  if (socket.name === doc.membername || socket.role === 'admin') {
-    socket.emit('report_mail:update', doc);
-  }
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('report_mail:remove', doc);
-}
+var _0x32c1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x72\x6F\x6C\x65","\x61\x64\x6D\x69\x6E","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x3A\x75\x70\x64\x61\x74\x65","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x3A\x72\x65\x6D\x6F\x76\x65"];_0x32c1[0];var ReportMail=require(_0x32c1[2])[_0x32c1[1]];exports[_0x32c1[3]]=function(_0xee00x2){ReportMail[_0x32c1[4]](function(_0xee00x3){onSave(_0xee00x2,_0xee00x3)});ReportMail[_0x32c1[5]](function(_0xee00x3){onUpdate(_0xee00x2,_0xee00x3)});ReportMail[_0x32c1[6]](function(_0xee00x3){onRemove(_0xee00x2,_0xee00x3)})};function onSave(_0xee00x2,_0xee00x3,_0xee00x5){if(_0xee00x2[_0x32c1[7]]===_0xee00x3[_0x32c1[8]]||_0xee00x2[_0x32c1[9]]===_0x32c1[10]){_0xee00x2[_0x32c1[12]](_0x32c1[11],_0xee00x3)}}function onUpdate(_0xee00x2,_0xee00x3,_0xee00x5){if(_0xee00x2[_0x32c1[7]]===_0xee00x3[_0x32c1[8]]||_0xee00x2[_0x32c1[9]]===_0x32c1[10]){_0xee00x2[_0x32c1[12]](_0x32c1[13],_0xee00x3)}}function onRemove(_0xee00x2,_0xee00x3,_0xee00x5){_0xee00x2[_0x32c1[12]](_0x32c1[14],_0xee00x3)}
\ No newline at end of file
index e63d04d..04bf867 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./report_mail_session.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/describe', controller.describe);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0xd5b5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd5b5[0];var express=require(_0xd5b5[1]);var controller=require(_0xd5b5[2]);var router=express.Router();router[_0xd5b5[5]](_0xd5b5[3],controller[_0xd5b5[4]]);router[_0xd5b5[5]](_0xd5b5[6],controller[_0xd5b5[7]]);router[_0xd5b5[5]](_0xd5b5[8],controller[_0xd5b5[9]]);router[_0xd5b5[11]](_0xd5b5[3],controller[_0xd5b5[10]]);router[_0xd5b5[13]](_0xd5b5[8],controller[_0xd5b5[12]]);router[_0xd5b5[14]](_0xd5b5[8],controller[_0xd5b5[12]]);router[_0xd5b5[16]](_0xd5b5[8],controller[_0xd5b5[15]]);module[_0xd5b5[17]]=router
\ No newline at end of file
index a964ba2..b345942 100644 (file)
@@ -1,104 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var ReportMailSession = require('../../models').ReportMailSession;
-var ReportMailSessionHistory = require('../../models').history.ReportMailSessionHistory;
-
-var Util = require('../../config/util');
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return ReportMailSession
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get list of fields
-exports.describe = function(req, res) {
-  return ReportMailSessionHistory
-    .describe()
-    .then(function(fields) {
-      return res.status(200).send(fields);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single reportMailSession
-exports.show = function(req, res) {
-  return ReportMailSession
-    .findById(req.params.id)
-    .then(function(reportMailSession) {
-      if (!reportMailSession) {
-        return res.sendStatus(404);
-      }
-      return res.send(reportMailSession);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new reportMailSession in the DB.
-exports.create = function(req, res) {
-  return ReportMailSession
-    .create(req.body)
-    .then(function(reportMailSession) {
-      return res.status(201).send(reportMailSession);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing reportMailSession in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return ReportMailSession
-    .findById(req.params.id)
-    .then(function(reportMailSession) {
-      if (!reportMailSession) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(reportMailSession, req.body);
-      return updated
-        .save();
-    })
-    .then(function(reportMailSession) {
-      return res.status(200).send(reportMailSession);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a reportMailSession from the DB.
-exports.destroy = function(req, res) {
-  return ReportMailSession
-    .findById(req.params.id)
-    .then(function(reportMailSession) {
-      if (!reportMailSession) {
-        return res.sendStatus(404);
-      }
-      return reportMailSession
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x3ade=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x68\x69\x73\x74\x6F\x72\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x64\x65\x73\x63\x72\x69\x62\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x3ade[0];var _=require(_0x3ade[1]);var ReportMailSession=require(_0x3ade[3])[_0x3ade[2]];var ReportMailSessionHistory=require(_0x3ade[3])[_0x3ade[5]][_0x3ade[4]];var Util=require(_0x3ade[6]);exports[_0x3ade[7]]=function(_0x3221x5,_0x3221x6,_0x3221x7){return ReportMailSession[_0x3ade[14]](Util[_0x3ade[13]](_0x3221x5[_0x3ade[12]]))[_0x3ade[11]](function(_0x3221x9){_0x3221x6[_0x3ade[10]](200)[_0x3ade[9]](_0x3221x9)})[_0x3ade[8]](function(_0x3221x8){return handleError(_0x3221x6,_0x3221x8)})};exports[_0x3ade[15]]=function(_0x3221x5,_0x3221x6){return ReportMailSessionHistory[_0x3ade[15]]()[_0x3ade[11]](function(_0x3221xa){return _0x3221x6[_0x3ade[10]](200)[_0x3ade[9]](_0x3221xa)})[_0x3ade[8]](function(_0x3221x8){return handleError(_0x3221x6,_0x3221x8)})};exports[_0x3ade[16]]=function(_0x3221x5,_0x3221x6){return ReportMailSession[_0x3ade[20]](_0x3221x5[_0x3ade[19]][_0x3ade[18]])[_0x3ade[11]](function(_0x3221xb){if(!_0x3221xb){return _0x3221x6[_0x3ade[17]](404)};return _0x3221x6[_0x3ade[9]](_0x3221xb)})[_0x3ade[8]](function(_0x3221x8){return handleError(_0x3221x6,_0x3221x8)})};exports[_0x3ade[21]]=function(_0x3221x5,_0x3221x6){return ReportMailSession[_0x3ade[21]](_0x3221x5[_0x3ade[22]])[_0x3ade[11]](function(_0x3221xb){return _0x3221x6[_0x3ade[10]](201)[_0x3ade[9]](_0x3221xb)})[_0x3ade[8]](function(_0x3221x8){return handleError(_0x3221x6,_0x3221x8)})};exports[_0x3ade[23]]=function(_0x3221x5,_0x3221x6){if(_0x3221x5[_0x3ade[22]][_0x3ade[18]]){delete _0x3221x5[_0x3ade[22]][_0x3ade[18]]};return ReportMailSession[_0x3ade[20]](_0x3221x5[_0x3ade[19]][_0x3ade[18]])[_0x3ade[11]](function(_0x3221xb){if(!_0x3221xb){return _0x3221x6[_0x3ade[17]](404)};var _0x3221xc=_[_0x3ade[24]](_0x3221xb,_0x3221x5[_0x3ade[22]]);return _0x3221xc[_0x3ade[25]]()})[_0x3ade[11]](function(_0x3221xb){return _0x3221x6[_0x3ade[10]](200)[_0x3ade[9]](_0x3221xb)})[_0x3ade[8]](function(_0x3221x8){return handleError(_0x3221x6,_0x3221x8)})};exports[_0x3ade[26]]=function(_0x3221x5,_0x3221x6){return ReportMailSession[_0x3ade[20]](_0x3221x5[_0x3ade[19]][_0x3ade[18]])[_0x3ade[11]](function(_0x3221xb){if(!_0x3221xb){return _0x3221x6[_0x3ade[17]](404)};return _0x3221xb[_0x3ade[26]]()})[_0x3ade[11]](function(){return _0x3221x6[_0x3ade[17]](204)})[_0x3ade[8]](function(_0x3221x8){return handleError(_0x3221x6,_0x3221x8)})};function handleError(_0x3221x6,_0x3221x8){return _0x3221x6[_0x3ade[10]](500)[_0x3ade[9]](_0x3221x8)}
\ No newline at end of file
index 6489a0d..d70b48a 100644 (file)
@@ -1,27 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ReportMailSession = require('../../models').ReportMailSession;
-
-exports.register = function(socket) {
-  ReportMailSession.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  ReportMailSession.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  ReportMailSession.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('report_mail_session:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('report_mail_session:remove', doc);
-}
+var _0x711c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x711c[0];var ReportMailSession=require(_0x711c[2])[_0x711c[1]];exports[_0x711c[3]]=function(_0x4baax2){ReportMailSession[_0x711c[4]](function(_0x4baax3){onSave(_0x4baax2,_0x4baax3)});ReportMailSession[_0x711c[5]](function(_0x4baax3){onSave(_0x4baax2,_0x4baax3)});ReportMailSession[_0x711c[6]](function(_0x4baax3){onRemove(_0x4baax2,_0x4baax3)})};function onSave(_0x4baax2,_0x4baax3,_0x4baax5){_0x4baax2[_0x711c[8]](_0x711c[7],_0x4baax3)}function onRemove(_0x4baax2,_0x4baax3,_0x4baax5){_0x4baax2[_0x711c[8]](_0x711c[9],_0x4baax3)}
\ No newline at end of file
index f92d5aa..515e9aa 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./report_queue.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/describe', controller.describe);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0xb3d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xb3d0[0];var express=require(_0xb3d0[1]);var controller=require(_0xb3d0[2]);var router=express.Router();router[_0xb3d0[5]](_0xb3d0[3],controller[_0xb3d0[4]]);router[_0xb3d0[5]](_0xb3d0[6],controller[_0xb3d0[7]]);router[_0xb3d0[5]](_0xb3d0[8],controller[_0xb3d0[9]]);router[_0xb3d0[11]](_0xb3d0[3],controller[_0xb3d0[10]]);router[_0xb3d0[13]](_0xb3d0[8],controller[_0xb3d0[12]]);router[_0xb3d0[14]](_0xb3d0[8],controller[_0xb3d0[12]]);router[_0xb3d0[16]](_0xb3d0[8],controller[_0xb3d0[15]]);module[_0xb3d0[17]]=router
\ No newline at end of file
index 7369229..0eeef21 100644 (file)
@@ -1,103 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var ReportQueue = require('../../models').ReportQueue;
-var ReportQueueHistory = require('../../models').history.ReportQueueHistory;
-
-// Get list of reportQueues
-exports.index = function(req, res) {
-  return ReportQueue
-    .findAll()
-    .then(function(reportQueues) {
-      return res.status(200).send(reportQueues);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get list of fields
-exports.describe = function(req, res) {
-  return ReportQueueHistory
-    .describe()
-    .then(function(fields) {
-      return res.status(200).send(fields);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single reportQueue
-exports.show = function(req, res) {
-  return ReportQueue
-    .findById(req.params.id)
-    .then(function(reportQueue) {
-      if (!reportQueue) {
-        return res.sendStatus(404);
-      }
-      return res.send(reportQueue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new reportQueue in the DB.
-exports.create = function(req, res) {
-  return ReportQueue
-    .create(req.body)
-    .then(function(reportQueue) {
-      return res.status(201).send(reportQueue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing reportQueue in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return ReportQueue
-    .findById(req.params.id)
-    .then(function(reportQueue) {
-      if (!reportQueue) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(reportQueue, req.body);
-      return updated
-        .save();
-    })
-    .then(function(reportQueue) {
-      return res.status(200).send(reportQueue);
-    })
-    .catch(function(err) {
-      console.error('err', err);
-      return handleError(res, err);
-    });
-};
-
-// Deletes a reportQueue from the DB.
-exports.destroy = function(req, res) {
-  return ReportQueue
-    .findById(req.params.id)
-    .then(function(reportQueue) {
-      if (!reportQueue) {
-        return res.sendStatus(404);
-      }
-      return reportQueue
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xcb12=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65\x48\x69\x73\x74\x6F\x72\x79","\x68\x69\x73\x74\x6F\x72\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x65\x73\x63\x72\x69\x62\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x65\x72\x72","\x65\x72\x72\x6F\x72","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0xcb12[0];var _=require(_0xcb12[1]);var ReportQueue=require(_0xcb12[3])[_0xcb12[2]];var ReportQueueHistory=require(_0xcb12[3])[_0xcb12[5]][_0xcb12[4]];exports[_0xcb12[6]]=function(_0xa521x4,_0xa521x5){return ReportQueue[_0xcb12[11]]()[_0xcb12[10]](function(_0xa521x7){return _0xa521x5[_0xcb12[9]](200)[_0xcb12[8]](_0xa521x7)})[_0xcb12[7]](function(_0xa521x6){return handleError(_0xa521x5,_0xa521x6)})};exports[_0xcb12[12]]=function(_0xa521x4,_0xa521x5){return ReportQueueHistory[_0xcb12[12]]()[_0xcb12[10]](function(_0xa521x8){return _0xa521x5[_0xcb12[9]](200)[_0xcb12[8]](_0xa521x8)})[_0xcb12[7]](function(_0xa521x6){return handleError(_0xa521x5,_0xa521x6)})};exports[_0xcb12[13]]=function(_0xa521x4,_0xa521x5){return ReportQueue[_0xcb12[17]](_0xa521x4[_0xcb12[16]][_0xcb12[15]])[_0xcb12[10]](function(_0xa521x9){if(!_0xa521x9){return _0xa521x5[_0xcb12[14]](404)};return _0xa521x5[_0xcb12[8]](_0xa521x9)})[_0xcb12[7]](function(_0xa521x6){return handleError(_0xa521x5,_0xa521x6)})};exports[_0xcb12[18]]=function(_0xa521x4,_0xa521x5){return ReportQueue[_0xcb12[18]](_0xa521x4[_0xcb12[19]])[_0xcb12[10]](function(_0xa521x9){return _0xa521x5[_0xcb12[9]](201)[_0xcb12[8]](_0xa521x9)})[_0xcb12[7]](function(_0xa521x6){return handleError(_0xa521x5,_0xa521x6)})};exports[_0xcb12[20]]=function(_0xa521x4,_0xa521x5){if(_0xa521x4[_0xcb12[19]][_0xcb12[15]]){delete _0xa521x4[_0xcb12[19]][_0xcb12[15]]};return ReportQueue[_0xcb12[17]](_0xa521x4[_0xcb12[16]][_0xcb12[15]])[_0xcb12[10]](function(_0xa521x9){if(!_0xa521x9){return _0xa521x5[_0xcb12[14]](404)};var _0xa521xa=_[_0xcb12[23]](_0xa521x9,_0xa521x4[_0xcb12[19]]);return _0xa521xa[_0xcb12[24]]()})[_0xcb12[10]](function(_0xa521x9){return _0xa521x5[_0xcb12[9]](200)[_0xcb12[8]](_0xa521x9)})[_0xcb12[7]](function(_0xa521x6){console[_0xcb12[22]](_0xcb12[21],_0xa521x6);return handleError(_0xa521x5,_0xa521x6)})};exports[_0xcb12[25]]=function(_0xa521x4,_0xa521x5){return ReportQueue[_0xcb12[17]](_0xa521x4[_0xcb12[16]][_0xcb12[15]])[_0xcb12[10]](function(_0xa521x9){if(!_0xa521x9){return _0xa521x5[_0xcb12[14]](404)};return _0xa521x9[_0xcb12[25]]()})[_0xcb12[10]](function(){return _0xa521x5[_0xcb12[14]](204)})[_0xcb12[7]](function(_0xa521x6){return handleError(_0xa521x5,_0xa521x6)})};function handleError(_0xa521x5,_0xa521x6){return _0xa521x5[_0xcb12[9]](500)[_0xcb12[8]](_0xa521x6)}
\ No newline at end of file
index 9f57869..2615f9b 100644 (file)
@@ -1,29 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ReportQueue = require('../../models').ReportQueue;
-
-exports.register = function(socket) {
-  ReportQueue.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  ReportQueue.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  ReportQueue.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  if (socket.role === 'admin') {
-    socket.emit('report_queue:save', doc);
-  }
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('report_queue:remove', doc);
-}
+var _0x3c61=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x72\x6F\x6C\x65","\x61\x64\x6D\x69\x6E","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3c61[0];var ReportQueue=require(_0x3c61[2])[_0x3c61[1]];exports[_0x3c61[3]]=function(_0x75dcx2){ReportQueue[_0x3c61[4]](function(_0x75dcx3){onSave(_0x75dcx2,_0x75dcx3)});ReportQueue[_0x3c61[5]](function(_0x75dcx3){onSave(_0x75dcx2,_0x75dcx3)});ReportQueue[_0x3c61[6]](function(_0x75dcx3){onRemove(_0x75dcx2,_0x75dcx3)})};function onSave(_0x75dcx2,_0x75dcx3,_0x75dcx5){if(_0x75dcx2[_0x3c61[7]]===_0x3c61[8]){_0x75dcx2[_0x3c61[10]](_0x3c61[9],_0x75dcx3)}}function onRemove(_0x75dcx2,_0x75dcx3,_0x75dcx5){_0x75dcx2[_0x3c61[10]](_0x3c61[11],_0x75dcx3)}
\ No newline at end of file
index 75fa91c..186805b 100644 (file)
@@ -1,12 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./report_tree.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-
-module.exports = router;
+var _0xa652=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x65\x78\x70\x6F\x72\x74\x73"];_0xa652[0];var express=require(_0xa652[1]);var controller=require(_0xa652[2]);var router=express.Router();router[_0xa652[5]](_0xa652[3],controller[_0xa652[4]]);router[_0xa652[8]](_0xa652[6],controller[_0xa652[7]]);router[_0xa652[9]](_0xa652[6],controller[_0xa652[7]]);module[_0xa652[10]]=router
\ No newline at end of file
index a6b11b0..d1141f9 100644 (file)
@@ -1,46 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var ReportTree = require('../../models').ReportTree;
-
-// Get the reports trees
-exports.index = function(req, res) {
-  ReportTree
-    .findAll()
-    .then(function(trees) {
-      if (!trees) {
-        return res.sendStatus(404);
-      }
-      return res.status(200).send(trees);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing report in the DB.
-exports.update = function(req, res) {
-  ReportTree
-    .findById(req.params.id)
-    .then(function(tree) {
-      if (!tree) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(tree, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(tree);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x3ebf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x75\x70\x64\x61\x74\x65","\x62\x6F\x64\x79","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64"];_0x3ebf[0];var _=require(_0x3ebf[1]);var util=require(_0x3ebf[2]);var ReportTree=require(_0x3ebf[4])[_0x3ebf[3]];exports[_0x3ebf[5]]=function(_0xa355x4,_0xa355x5){ReportTree[_0x3ebf[11]]()[_0x3ebf[10]](function(_0xa355x7){if(!_0xa355x7){return _0xa355x5[_0x3ebf[7]](404)};return _0xa355x5[_0x3ebf[9]](200)[_0x3ebf[8]](_0xa355x7)})[_0x3ebf[6]](function(_0xa355x6){return handleError(_0xa355x5,_0xa355x6)})};exports[_0x3ebf[12]]=function(_0xa355x4,_0xa355x5){ReportTree[_0x3ebf[18]](_0xa355x4[_0x3ebf[17]][_0x3ebf[16]])[_0x3ebf[10]](function(_0xa355x8){if(!_0xa355x8){return _0xa355x5[_0x3ebf[7]](404)};var _0xa355x9=_[_0x3ebf[14]](_0xa355x8,_0xa355x4[_0x3ebf[13]]);_0xa355x9[_0x3ebf[15]]()[_0x3ebf[10]](function(){return _0xa355x5[_0x3ebf[9]](200)[_0x3ebf[8]](_0xa355x8)})[_0x3ebf[6]](function(_0xa355x6){return handleError(_0xa355x5,_0xa355x6)})})[_0x3ebf[6]](function(_0xa355x6){return handleError(_0xa355x5,_0xa355x6)})};function handleError(_0xa355x5,_0xa355x6){return _0xa355x5[_0x3ebf[9]](500)[_0x3ebf[8]](_0xa355x6)}
\ No newline at end of file
index 389fa7a..57f97de 100644 (file)
@@ -1,27 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ReportTree = require('../../models').ReportTree;
-
-exports.register = function(socket) {
-  ReportTree.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  ReportTree.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  ReportTree.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('report_tree:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('report_tree:remove', doc);
-}
+var _0xd34b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xd34b[0];var ReportTree=require(_0xd34b[2])[_0xd34b[1]];exports[_0xd34b[3]]=function(_0xac19x2){ReportTree[_0xd34b[4]](function(_0xac19x3){onSave(_0xac19x2,_0xac19x3)});ReportTree[_0xd34b[5]](function(_0xac19x3){onSave(_0xac19x2,_0xac19x3)});ReportTree[_0xd34b[6]](function(_0xac19x3){onRemove(_0xac19x2,_0xac19x3)})};function onSave(_0xac19x2,_0xac19x3,_0xac19x5){_0xac19x2[_0xd34b[8]](_0xd34b[7],_0xac19x3)}function onRemove(_0xac19x2,_0xac19x3,_0xac19x5){_0xac19x2[_0xd34b[8]](_0xd34b[9],_0xac19x3)}
\ No newline at end of file
index 37d897a..b0d8e9b 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/analytics/reports/trees', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/analytic/reports/trees')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0xc9b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x74\x72\x65\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x74\x72\x65\x65\x73","\x67\x65\x74"];_0xc9b8[0];var should=require(_0xc9b8[1]);var app=require(_0xc9b8[2]);var request=require(_0xc9b8[3]);describe(_0xc9b8[4],function(){it(_0xc9b8[5],function(_0x1452x4){request(app)[_0xc9b8[13]](_0xc9b8[12])[_0xc9b8[11]](200)[_0xc9b8[11]](_0xc9b8[10],/json/)[_0xc9b8[9]](function(_0x1452x5,_0x1452x6){if(_0x1452x5){return _0x1452x4(_0x1452x5)};_0x1452x6[_0xc9b8[8]][_0xc9b8[1]][_0xc9b8[7]][_0xc9b8[6]](Array);_0x1452x4()})})})
\ No newline at end of file
index d8b47b0..05c4124 100644 (file)
@@ -1,21 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./salesforce_account.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/check', auth.isAuthenticated(), controller.checkAccount);
-router.get('/:id/fields', auth.isAuthenticated(), controller.getFields);
-router.post('/validate/:field', auth.isAuthenticated(), controller.accountValidation);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0x8975=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x68\x65\x63\x6B","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x61\x63\x63\x6F\x75\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x8975[0];var express=require(_0x8975[1]);var auth=require(_0x8975[2]);var controller=require(_0x8975[3]);var router=express.Router();router[_0x8975[7]](_0x8975[4],auth[_0x8975[5]](),controller[_0x8975[6]]);router[_0x8975[7]](_0x8975[8],auth[_0x8975[5]](),controller[_0x8975[9]]);router[_0x8975[7]](_0x8975[10],auth[_0x8975[5]](),controller[_0x8975[11]]);router[_0x8975[7]](_0x8975[12],auth[_0x8975[5]](),controller[_0x8975[13]]);router[_0x8975[16]](_0x8975[14],auth[_0x8975[5]](),controller[_0x8975[15]]);router[_0x8975[16]](_0x8975[4],auth[_0x8975[5]](),controller[_0x8975[17]]);router[_0x8975[19]](_0x8975[8],auth[_0x8975[5]](),controller[_0x8975[18]]);router[_0x8975[20]](_0x8975[8],auth[_0x8975[5]](),controller[_0x8975[18]]);router[_0x8975[22]](_0x8975[4],auth[_0x8975[5]](),controller[_0x8975[21]]);router[_0x8975[22]](_0x8975[8],auth[_0x8975[5]](),controller[_0x8975[23]]);module[_0x8975[24]]=router
\ No newline at end of file
index a03b303..1404819 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var salesforceAccountCtrlStub = {
-  index: 'salesforceAccountCtrl.index',
-  show: 'salesforceAccountCtrl.show',
-  create: 'salesforceAccountCtrl.create',
-  update: 'salesforceAccountCtrl.update',
-  destroy: 'salesforceAccountCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var salesforceAccountIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './salesforce_account.controller': salesforceAccountCtrlStub
-});
-
-describe('SalesforceAccount API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(salesforceAccountIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/salesforce/accounts', function() {
-
-    it('should route to salesforceAccount.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'salesforceAccountCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/salesforce/accounts/:id', function() {
-
-    it('should route to salesforceAccount.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'salesforceAccountCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/salesforce/accounts', function() {
-
-    it('should route to salesforceAccount.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'salesforceAccountCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/salesforce/accounts/:id', function() {
-
-    it('should route to salesforceAccount.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'salesforceAccountCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/salesforce/accounts/:id', function() {
-
-    it('should route to salesforceAccount.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'salesforceAccountCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/salesforce/accounts/:id', function() {
-
-    it('should route to salesforceAccount.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'salesforceAccountCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0x880d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x880d[0];var proxyquire=require(_0x880d[2])[_0x880d[1]]();var salesforceAccountCtrlStub={index:_0x880d[3],show:_0x880d[4],create:_0x880d[5],update:_0x880d[6],destroy:_0x880d[7]};var routerStub={get:sinon[_0x880d[8]](),put:sinon[_0x880d[8]](),patch:sinon[_0x880d[8]](),post:sinon[_0x880d[8]](),delete:sinon[_0x880d[8]]()};var salesforceAccountIndex=proxyquire(_0x880d[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":salesforceAccountCtrlStub});describe(_0x880d[10],function(){it(_0x880d[11],function(){expect(salesforceAccountIndex)[_0x880d[13]][_0x880d[12]](routerStub)});describe(_0x880d[14],function(){it(_0x880d[15],function(){expect(routerStub[_0x880d[21]][_0x880d[20]](_0x880d[19],_0x880d[3]))[_0x880d[13]][_0x880d[18]][_0x880d[17]][_0x880d[16]]})});describe(_0x880d[22],function(){it(_0x880d[23],function(){expect(routerStub[_0x880d[21]][_0x880d[20]](_0x880d[24],_0x880d[4]))[_0x880d[13]][_0x880d[18]][_0x880d[17]][_0x880d[16]]})});describe(_0x880d[25],function(){it(_0x880d[26],function(){expect(routerStub[_0x880d[27]][_0x880d[20]](_0x880d[19],_0x880d[5]))[_0x880d[13]][_0x880d[18]][_0x880d[17]][_0x880d[16]]})});describe(_0x880d[28],function(){it(_0x880d[29],function(){expect(routerStub[_0x880d[30]][_0x880d[20]](_0x880d[24],_0x880d[6]))[_0x880d[13]][_0x880d[18]][_0x880d[17]][_0x880d[16]]})});describe(_0x880d[31],function(){it(_0x880d[29],function(){expect(routerStub[_0x880d[32]][_0x880d[20]](_0x880d[24],_0x880d[6]))[_0x880d[13]][_0x880d[18]][_0x880d[17]][_0x880d[16]]})});describe(_0x880d[33],function(){it(_0x880d[34],function(){expect(routerStub[_0x880d[35]][_0x880d[20]](_0x880d[24],_0x880d[7]))[_0x880d[13]][_0x880d[18]][_0x880d[17]][_0x880d[16]]})})})
\ No newline at end of file
index 69c55e6..7efa186 100644 (file)
@@ -1,253 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/salesforce/accounts              ->  index
- * POST    /api/salesforce/accounts              ->  create
- * GET     /api/salesforce/accounts/:id          ->  show
- * PUT     /api/salesforce/accounts/:id          ->  update
- * DELETE  /api/salesforce/accounts/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-var util = require('util');
-var jsforce = require('jsforce');
-
-var SalesforceAccount = require('../../models').SalesforceAccount;
-
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of SalesforceAccounts
-exports.index = function(req, res) {
-  var attributes = ['description', 'name', 'username', 'remoteUri'];
-  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
-  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
-
-  var query = {
-    where: {},
-    limit: per_page,
-    offset: page * per_page
-  };
-
-  _.forIn(req.query, function(value, key) {
-    switch (key) {
-      case 'per_page':
-      case 'page':
-        break;
-      case 'sort_by':
-        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
-        break;
-      case 'sort_order':
-        break;
-      case '$':
-        query.where.$or = [];
-        attributes.forEach(function(attribute) {
-          var tmp = {};
-          tmp[attribute] = {
-            $like: '%' + value + '%'
-          };
-
-          query.where.$or.push(tmp);
-        });
-        break;
-      default:
-        query.where[key] = {
-          $like: {}
-        };
-        query.where[key].$like = '%' + value + '%';
-    }
-  });
-
-  SalesforceAccount
-    .findAndCountAll(query)
-    .then(function(result) {
-
-      var total_pages = Math.ceil(result.count / per_page);
-      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
-      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
-
-      return res.status(200).send({
-        count: result.count,
-        rows: result.rows,
-        next_page: next_page,
-        previous_page: previous_page,
-        total_pages: total_pages
-      });
-
-    })
-    .catch(function(err) {
-      return res.status(500).send({
-        error: 'Something blew up!'
-      });
-    });
-}
-
-// Gets a single SalesforceAccount from the DB
-exports.show = function(req, res) {
-  SalesforceAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new SalesforceAccount in the DB
-exports.create = function(req, res) {
-  SalesforceAccount.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing SalesforceAccount in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  SalesforceAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a SalesforceAccount from the DB
-exports.destroy = function(req, res) {
-  SalesforceAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
-
-exports.checkAccount = function(req, res) {
-  SalesforceAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(function(account) {
-      var conn = new jsforce.Connection({
-        oauth2: {
-          loginUrl: account.remoteUri,
-          clientId: account.clientId,
-          clientSecret: account.clientSecret,
-        }
-      });
-      var pwd = account.password.concat(account.securityToken);
-      conn.login(account.username, pwd, function(err, userInfo) {
-        if (err) {
-          return res.status(400).send(err);
-        }
-        return res.sendStatus(200);
-      });
-    })
-    .catch(handleError(res));
-}
-
-exports.accountValidation = function(req, res) {
-  var where = {};
-  where[req.params.field] = req.body.value;
-  SalesforceAccount
-    .findAndCountAll({
-      where: where
-    })
-    .then(function(result) {
-      if (result.count) {
-        return res.status(200).send({
-          isValid: false,
-          value: req.body.value
-        });
-      }
-      return res.status(200).send({
-        isValid: true,
-        value: req.body.value
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.getFields = function(req, res) {
-  SalesforceAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(function(account) {
-      var conn = new jsforce.Connection({
-        oauth2: {
-          loginUrl: account.remoteUri,
-          clientId: account.clientId,
-          clientSecret: account.clientSecret,
-        }
-      });
-      var pwd = account.password.concat(account.securityToken);
-      conn.login(account.username, pwd, function(err, userInfo) {
-        if (err) {
-          return res.status(400).send(err);
-        }
-        conn.sobject("Task").describe(function(err, meta) {
-          if (err) {
-            return res.status(400).send(err);
-          }
-          return res.status(200).send(meta.fields);
-        });
-      });
-    })
-    .catch(handleError(res));
-};
-
-exports.bulkDestroy = function(req, res) {
-  SalesforceAccount
-    .destroy({
-      where: {
-        id: req.query.id
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
+var _0xca22=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6A\x73\x66\x6F\x72\x63\x65","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x65\x72\x5F\x70\x61\x67\x65","\x71\x75\x65\x72\x79","\x70\x61\x67\x65","\x6F\x72\x64\x65\x72","\x25\x73\x20\x25\x73","\x73\x6F\x72\x74\x5F\x62\x79","\x73\x6F\x72\x74\x5F\x6F\x72\x64\x65\x72","\x41\x53\x43","\x66\x6F\x72\x6D\x61\x74","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x25","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x24","\x24\x6C\x69\x6B\x65","\x66\x6F\x72\x49\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x62\x6C\x65\x77\x20\x75\x70\x21","\x63\x61\x74\x63\x68","\x63\x6F\x75\x6E\x74","\x63\x65\x69\x6C","\x6F\x66\x66\x73\x65\x74","\x25\x73\x3A\x2F\x2F\x25\x73\x25\x73\x3F\x70\x61\x67\x65\x3D\x25\x64","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x6F\x73\x74","\x68\x65\x61\x64\x65\x72\x73","\x62\x61\x73\x65\x55\x72\x6C","\x72\x6F\x77\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x63\x6C\x69\x65\x6E\x74\x49\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x73\x65\x63\x75\x72\x69\x74\x79\x54\x6F\x6B\x65\x6E","\x63\x6F\x6E\x63\x61\x74","\x70\x61\x73\x73\x77\x6F\x72\x64","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6C\x6F\x67\x69\x6E","\x61\x63\x63\x6F\x75\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x66\x69\x65\x6C\x64\x73","\x64\x65\x73\x63\x72\x69\x62\x65","\x54\x61\x73\x6B","\x73\x6F\x62\x6A\x65\x63\x74","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xca22[0];var _=require(_0xca22[1]);var util=require(_0xca22[2]);var jsforce=require(_0xca22[3]);var SalesforceAccount=require(_0xca22[5])[_0xca22[4]];function handleError(_0xffdcx6,_0xffdcx7){_0xffdcx7=_0xffdcx7||500;return function(_0xffdcx8){_0xffdcx6[_0xca22[7]](_0xffdcx7)[_0xca22[6]](_0xffdcx8)}}function responseWithResult(_0xffdcx6,_0xffdcx7){_0xffdcx7=_0xffdcx7||200;return function(_0xffdcxa){if(_0xffdcxa){_0xffdcx6[_0xca22[7]](_0xffdcx7)[_0xca22[8]](_0xffdcxa)}}}function handleEntityNotFound(_0xffdcx6){return function(_0xffdcxa){if(!_0xffdcxa){_0xffdcx6[_0xca22[7]](404)[_0xca22[9]]();return null};return _0xffdcxa}}function saveUpdates(_0xffdcxd){return function(_0xffdcxa){return _0xffdcxa[_0xca22[11]](_0xffdcxd)[_0xca22[10]](function(_0xffdcxe){return _0xffdcxe})}}function removeEntity(_0xffdcx6){return function(_0xffdcxa){if(_0xffdcxa){return _0xffdcxa[_0xca22[12]]()[_0xca22[10]](function(){_0xffdcx6[_0xca22[7]](204)[_0xca22[9]]()})}}}exports[_0xca22[13]]=function(_0xffdcx10,_0xffdcx6){var _0xffdcx11=[_0xca22[14],_0xca22[15],_0xca22[16],_0xca22[17]];var _0xffdcx12=_0xffdcx10[_0xca22[19]][_0xca22[18]]?parseInt(_0xffdcx10[_0xca22[19]][_0xca22[18]],10):100;var _0xffdcx13=_0xffdcx10[_0xca22[19]][_0xca22[20]]?parseInt(_0xffdcx10[_0xca22[19]][_0xca22[20]],10):0;var _0xffdcx14={where:{},limit:_0xffdcx12,offset:_0xffdcx13*_0xffdcx12};_[_0xca22[34]](_0xffdcx10[_0xca22[19]],function(_0xffdcx15,_0xffdcx16){switch(_0xffdcx16){case _0xca22[18]:;case _0xca22[20]:break;case _0xca22[23]:_0xffdcx14[_0xca22[21]]=util[_0xca22[26]](_0xca22[22],_0xffdcx10[_0xca22[19]][_0xca22[23]],_0xffdcx10[_0xca22[19]][_0xca22[24]]||_0xca22[25])||null;break;case _0xca22[24]:break;case _0xca22[32]:_0xffdcx14[_0xca22[28]][_0xca22[27]]=[];_0xffdcx11[_0xca22[31]](function(_0xffdcx17){var _0xffdcx18={};_0xffdcx18[_0xffdcx17]={$like:_0xca22[29]+_0xffdcx15+_0xca22[29]};_0xffdcx14[_0xca22[28]][_0xca22[27]][_0xca22[30]](_0xffdcx18)});break;default:_0xffdcx14[_0xca22[28]][_0xffdcx16]={$like:{}};_0xffdcx14[_0xca22[28]][_0xffdcx16][_0xca22[33]]=_0xca22[29]+_0xffdcx15+_0xca22[29]}});SalesforceAccount[_0xca22[46]](_0xffdcx14)[_0xca22[10]](function(_0xffdcx19){var _0xffdcx1a=Math[_0xca22[38]](_0xffdcx19[_0xca22[37]]/_0xffdcx12);var _0xffdcx1b=_0xffdcx1a>(_0xffdcx14[_0xca22[39]]+1)?util[_0xca22[26]](_0xca22[40],_0xffdcx10[_0xca22[41]],_0xffdcx10[_0xca22[43]][_0xca22[42]],_0xffdcx10[_0xca22[44]],_0xffdcx13+1):null;var _0xffdcx1c=_0xffdcx13>0?util[_0xca22[26]](_0xca22[40],_0xffdcx10[_0xca22[41]],_0xffdcx10[_0xca22[43]][_0xca22[42]],_0xffdcx10[_0xca22[44]],_0xffdcx13-1):null;return _0xffdcx6[_0xca22[7]](200)[_0xca22[6]]({count:_0xffdcx19[_0xca22[37]],rows:_0xffdcx19[_0xca22[45]],next_page:_0xffdcx1b,previous_page:_0xffdcx1c,total_pages:_0xffdcx1a})})[_0xca22[36]](function(_0xffdcx8){return _0xffdcx6[_0xca22[7]](500)[_0xca22[6]]({error:_0xca22[35]})})};exports[_0xca22[47]]=function(_0xffdcx10,_0xffdcx6){SalesforceAccount[_0xca22[50]](_0xffdcx10[_0xca22[49]][_0xca22[48]])[_0xca22[10]](handleEntityNotFound(_0xffdcx6))[_0xca22[10]](responseWithResult(_0xffdcx6))[_0xca22[36]](handleError(_0xffdcx6))};exports[_0xca22[51]]=function(_0xffdcx10,_0xffdcx6){SalesforceAccount[_0xca22[51]](_0xffdcx10[_0xca22[52]])[_0xca22[10]](responseWithResult(_0xffdcx6,201))[_0xca22[36]](handleError(_0xffdcx6))};exports[_0xca22[53]]=function(_0xffdcx10,_0xffdcx6){if(_0xffdcx10[_0xca22[52]][_0xca22[48]]){delete _0xffdcx10[_0xca22[52]][_0xca22[48]]};SalesforceAccount[_0xca22[50]](_0xffdcx10[_0xca22[49]][_0xca22[48]])[_0xca22[10]](handleEntityNotFound(_0xffdcx6))[_0xca22[10]](saveUpdates(_0xffdcx10[_0xca22[52]]))[_0xca22[10]](responseWithResult(_0xffdcx6))[_0xca22[36]](handleError(_0xffdcx6))};exports[_0xca22[12]]=function(_0xffdcx10,_0xffdcx6){SalesforceAccount[_0xca22[50]](_0xffdcx10[_0xca22[49]][_0xca22[48]])[_0xca22[10]](handleEntityNotFound(_0xffdcx6))[_0xca22[10]](removeEntity(_0xffdcx6))[_0xca22[36]](handleError(_0xffdcx6))};exports[_0xca22[54]]=function(_0xffdcx10,_0xffdcx6){SalesforceAccount[_0xca22[50]](_0xffdcx10[_0xca22[49]][_0xca22[48]])[_0xca22[10]](handleEntityNotFound(_0xffdcx6))[_0xca22[10]](function(_0xffdcx1d){var _0xffdcx1e= new jsforce.Connection({oauth2:{loginUrl:_0xffdcx1d[_0xca22[17]],clientId:_0xffdcx1d[_0xca22[55]],clientSecret:_0xffdcx1d[_0xca22[56]]}});var _0xffdcx1f=_0xffdcx1d[_0xca22[59]][_0xca22[58]](_0xffdcx1d[_0xca22[57]]);_0xffdcx1e[_0xca22[61]](_0xffdcx1d[_0xca22[16]],_0xffdcx1f,function(_0xffdcx8,_0xffdcx20){if(_0xffdcx8){return _0xffdcx6[_0xca22[7]](400)[_0xca22[6]](_0xffdcx8)};return _0xffdcx6[_0xca22[60]](200)})})[_0xca22[36]](handleError(_0xffdcx6))};exports[_0xca22[62]]=function(_0xffdcx10,_0xffdcx6){var _0xffdcx21={};_0xffdcx21[_0xffdcx10[_0xca22[49]][_0xca22[63]]]=_0xffdcx10[_0xca22[52]][_0xca22[64]];SalesforceAccount[_0xca22[46]]({where:_0xffdcx21})[_0xca22[10]](function(_0xffdcx19){if(_0xffdcx19[_0xca22[37]]){return _0xffdcx6[_0xca22[7]](200)[_0xca22[6]]({isValid:false,value:_0xffdcx10[_0xca22[52]][_0xca22[64]]})};return _0xffdcx6[_0xca22[7]](200)[_0xca22[6]]({isValid:true,value:_0xffdcx10[_0xca22[52]][_0xca22[64]]})})[_0xca22[36]](function(_0xffdcx8){return handleError(_0xffdcx6,_0xffdcx8)})};exports[_0xca22[65]]=function(_0xffdcx10,_0xffdcx6){SalesforceAccount[_0xca22[50]](_0xffdcx10[_0xca22[49]][_0xca22[48]])[_0xca22[10]](handleEntityNotFound(_0xffdcx6))[_0xca22[10]](function(_0xffdcx1d){var _0xffdcx1e= new jsforce.Connection({oauth2:{loginUrl:_0xffdcx1d[_0xca22[17]],clientId:_0xffdcx1d[_0xca22[55]],clientSecret:_0xffdcx1d[_0xca22[56]]}});var _0xffdcx1f=_0xffdcx1d[_0xca22[59]][_0xca22[58]](_0xffdcx1d[_0xca22[57]]);_0xffdcx1e[_0xca22[61]](_0xffdcx1d[_0xca22[16]],_0xffdcx1f,function(_0xffdcx8,_0xffdcx20){if(_0xffdcx8){return _0xffdcx6[_0xca22[7]](400)[_0xca22[6]](_0xffdcx8)};_0xffdcx1e[_0xca22[69]](_0xca22[68])[_0xca22[67]](function(_0xffdcx8,_0xffdcx22){if(_0xffdcx8){return _0xffdcx6[_0xca22[7]](400)[_0xca22[6]](_0xffdcx8)};return _0xffdcx6[_0xca22[7]](200)[_0xca22[6]](_0xffdcx22[_0xca22[66]])})})})[_0xca22[36]](handleError(_0xffdcx6))};exports[_0xca22[70]]=function(_0xffdcx10,_0xffdcx6){SalesforceAccount[_0xca22[12]]({where:{id:_0xffdcx10[_0xca22[19]][_0xca22[48]]},individualHooks:true})[_0xca22[10]](function(){return _0xffdcx6[_0xca22[60]](204)})[_0xca22[36]](function(_0xffdcx8){return handleError(_0xffdcx6,_0xffdcx8)})}
\ No newline at end of file
index 2c58d15..fda7e0e 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var SalesforceAccount = require('../../models').SalesforceAccount;
-
-exports.register = function(socket) {
-  SalesforceAccount.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  SalesforceAccount.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('salesforce_account:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('salesforce_account:remove', doc);
-}
+var _0x4792=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x4792[0];var SalesforceAccount=require(_0x4792[2])[_0x4792[1]];exports[_0x4792[3]]=function(_0x9754x2){SalesforceAccount[_0x4792[4]](function(_0x9754x3){onSave(_0x9754x2,_0x9754x3)});SalesforceAccount[_0x4792[5]](function(_0x9754x3){onRemove(_0x9754x2,_0x9754x3)})};function onSave(_0x9754x2,_0x9754x3,_0x9754x5){_0x9754x2[_0x4792[7]](_0x4792[6],_0x9754x3)}function onRemove(_0x9754x2,_0x9754x3,_0x9754x5){_0x9754x2[_0x4792[7]](_0x4792[8],_0x9754x3)}
\ No newline at end of file
index 7936a09..ea65d0c 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./salesforce_configuration.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x95c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x3A\x74\x79\x70\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x95c3[0];var express=require(_0x95c3[1]);var auth=require(_0x95c3[2]);var controller=require(_0x95c3[3]);var router=express.Router();router[_0x95c3[7]](_0x95c3[4],auth[_0x95c3[5]](),controller[_0x95c3[6]]);router[_0x95c3[7]](_0x95c3[8],auth[_0x95c3[5]](),controller[_0x95c3[9]]);router[_0x95c3[11]](_0x95c3[4],auth[_0x95c3[5]](),controller[_0x95c3[10]]);router[_0x95c3[13]](_0x95c3[8],auth[_0x95c3[5]](),controller[_0x95c3[12]]);router[_0x95c3[11]](_0x95c3[14],auth[_0x95c3[5]](),controller[_0x95c3[15]]);router[_0x95c3[16]](_0x95c3[8],auth[_0x95c3[5]](),controller[_0x95c3[12]]);router[_0x95c3[18]](_0x95c3[8],auth[_0x95c3[5]](),controller[_0x95c3[17]]);module[_0x95c3[19]]=router
\ No newline at end of file
index 0d1e211..05c1d50 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var salesforceConfigurationCtrlStub = {
-  index: 'salesforceConfigurationCtrl.index',
-  show: 'salesforceConfigurationCtrl.show',
-  create: 'salesforceConfigurationCtrl.create',
-  update: 'salesforceConfigurationCtrl.update',
-  destroy: 'salesforceConfigurationCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var salesforceConfigurationIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './salesforce_configuration.controller': salesforceConfigurationCtrlStub
-});
-
-describe('SalesforceConfiguration API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(salesforceConfigurationIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/salesforce/configurations', function() {
-
-    it('should route to salesforceConfiguration.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'salesforceConfigurationCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/salesforce/configurations/:id', function() {
-
-    it('should route to salesforceConfiguration.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'salesforceConfigurationCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/salesforce/configurations', function() {
-
-    it('should route to salesforceConfiguration.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'salesforceConfigurationCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/salesforce/configurations/:id', function() {
-
-    it('should route to salesforceConfiguration.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'salesforceConfigurationCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/salesforce/configurations/:id', function() {
-
-    it('should route to salesforceConfiguration.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'salesforceConfigurationCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/salesforce/configurations/:id', function() {
-
-    it('should route to salesforceConfiguration.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'salesforceConfigurationCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0x8fab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x8fab[0];var proxyquire=require(_0x8fab[2])[_0x8fab[1]]();var salesforceConfigurationCtrlStub={index:_0x8fab[3],show:_0x8fab[4],create:_0x8fab[5],update:_0x8fab[6],destroy:_0x8fab[7]};var routerStub={get:sinon[_0x8fab[8]](),put:sinon[_0x8fab[8]](),patch:sinon[_0x8fab[8]](),post:sinon[_0x8fab[8]](),delete:sinon[_0x8fab[8]]()};var salesforceConfigurationIndex=proxyquire(_0x8fab[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":salesforceConfigurationCtrlStub});describe(_0x8fab[10],function(){it(_0x8fab[11],function(){expect(salesforceConfigurationIndex)[_0x8fab[13]][_0x8fab[12]](routerStub)});describe(_0x8fab[14],function(){it(_0x8fab[15],function(){expect(routerStub[_0x8fab[21]][_0x8fab[20]](_0x8fab[19],_0x8fab[3]))[_0x8fab[13]][_0x8fab[18]][_0x8fab[17]][_0x8fab[16]]})});describe(_0x8fab[22],function(){it(_0x8fab[23],function(){expect(routerStub[_0x8fab[21]][_0x8fab[20]](_0x8fab[24],_0x8fab[4]))[_0x8fab[13]][_0x8fab[18]][_0x8fab[17]][_0x8fab[16]]})});describe(_0x8fab[25],function(){it(_0x8fab[26],function(){expect(routerStub[_0x8fab[27]][_0x8fab[20]](_0x8fab[19],_0x8fab[5]))[_0x8fab[13]][_0x8fab[18]][_0x8fab[17]][_0x8fab[16]]})});describe(_0x8fab[28],function(){it(_0x8fab[29],function(){expect(routerStub[_0x8fab[30]][_0x8fab[20]](_0x8fab[24],_0x8fab[6]))[_0x8fab[13]][_0x8fab[18]][_0x8fab[17]][_0x8fab[16]]})});describe(_0x8fab[31],function(){it(_0x8fab[29],function(){expect(routerStub[_0x8fab[32]][_0x8fab[20]](_0x8fab[24],_0x8fab[6]))[_0x8fab[13]][_0x8fab[18]][_0x8fab[17]][_0x8fab[16]]})});describe(_0x8fab[33],function(){it(_0x8fab[34],function(){expect(routerStub[_0x8fab[35]][_0x8fab[20]](_0x8fab[24],_0x8fab[7]))[_0x8fab[13]][_0x8fab[18]][_0x8fab[17]][_0x8fab[16]]})})})
\ No newline at end of file
index 523aef6..e034c60 100644 (file)
@@ -1,147 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/salesforce/configurations              ->  index
- * POST    /api/salesforce/configurations              ->  create
- * GET     /api/salesforce/configurations/:id          ->  show
- * PUT     /api/salesforce/configurations/:id          ->  update
- * DELETE  /api/salesforce/configurations/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-
-var SalesforceConfiguration = require('../../models').SalesforceConfiguration;
-var SalesforceField = require('../../models').SalesforceField;
-
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of SalesforceConfigurations
-exports.index = function(req, res) {
-  SalesforceConfiguration.findAll({
-      where: req.query
-    })
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single SalesforceConfiguration from the DB
-exports.show = function(req, res) {
-  SalesforceConfiguration.find({
-      where: {
-        id: req.params.id
-      },
-      include: [{
-        model: SalesforceField,
-        as: 'Subject'
-      }, {
-        model: SalesforceField,
-        as: 'Description'
-      }, {
-        model: SalesforceField,
-        as: 'Field'
-      }]
-    })
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new SalesforceConfiguration in the DB
-exports.create = function(req, res) {
-  SalesforceConfiguration.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing SalesforceConfiguration in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  SalesforceConfiguration.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a SalesforceConfiguration from the DB
-exports.destroy = function(req, res) {
-  SalesforceConfiguration.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
-
-exports.addConfigurationField = function(req, res, next) {
-  // console.log(req.params);
-  var salesforceConfiguration;
-  SalesforceConfiguration
-    .findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(function(salesforce_configuration) {
-      salesforceConfiguration = salesforce_configuration;
-      return SalesforceField.create(req.body)
-    })
-    .then(function(salesforceField) {
-      switch (req.params.type) {
-        case 'subject':
-          return [salesforceConfiguration.addSubject(salesforceField), salesforceField];
-        case 'description':
-          return [salesforceConfiguration.addDescription(salesforceField), salesforceField];
-        case 'field':
-          return [salesforceConfiguration.addField(salesforceField), salesforceField];
-      }
-    })
-    .spread(function(data, salesforceField) {
-      return res.status(201).json(salesforceField);
-    })
-    .catch(handleError(res));
-};
+var _0xd4e1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x53\x75\x62\x6A\x65\x63\x74","\x73\x75\x62\x6A\x65\x63\x74","\x61\x64\x64\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x65\x6C\x64","\x66\x69\x65\x6C\x64","\x74\x79\x70\x65"];_0xd4e1[0];var _=require(_0xd4e1[1]);var SalesforceConfiguration=require(_0xd4e1[3])[_0xd4e1[2]];var SalesforceField=require(_0xd4e1[3])[_0xd4e1[4]];function handleError(_0x8dbfx5,_0x8dbfx6){_0x8dbfx6=_0x8dbfx6||500;return function(_0x8dbfx7){_0x8dbfx5[_0xd4e1[6]](_0x8dbfx6)[_0xd4e1[5]](_0x8dbfx7)}}function responseWithResult(_0x8dbfx5,_0x8dbfx6){_0x8dbfx6=_0x8dbfx6||200;return function(_0x8dbfx9){if(_0x8dbfx9){_0x8dbfx5[_0xd4e1[6]](_0x8dbfx6)[_0xd4e1[7]](_0x8dbfx9)}}}function handleEntityNotFound(_0x8dbfx5){return function(_0x8dbfx9){if(!_0x8dbfx9){_0x8dbfx5[_0xd4e1[6]](404)[_0xd4e1[8]]();return null};return _0x8dbfx9}}function saveUpdates(_0x8dbfxc){return function(_0x8dbfx9){return _0x8dbfx9[_0xd4e1[10]](_0x8dbfxc)[_0xd4e1[9]](function(_0x8dbfxd){return _0x8dbfxd})}}function removeEntity(_0x8dbfx5){return function(_0x8dbfx9){if(_0x8dbfx9){return _0x8dbfx9[_0xd4e1[11]]()[_0xd4e1[9]](function(){_0x8dbfx5[_0xd4e1[6]](204)[_0xd4e1[8]]()})}}}exports[_0xd4e1[12]]=function(_0x8dbfxf,_0x8dbfx5){SalesforceConfiguration[_0xd4e1[15]]({where:_0x8dbfxf[_0xd4e1[14]]})[_0xd4e1[9]](responseWithResult(_0x8dbfx5))[_0xd4e1[13]](handleError(_0x8dbfx5))};exports[_0xd4e1[16]]=function(_0x8dbfxf,_0x8dbfx5){SalesforceConfiguration[_0xd4e1[22]]({where:{id:_0x8dbfxf[_0xd4e1[18]][_0xd4e1[17]]},include:[{model:SalesforceField,as:_0xd4e1[19]},{model:SalesforceField,as:_0xd4e1[20]},{model:SalesforceField,as:_0xd4e1[21]}]})[_0xd4e1[9]](handleEntityNotFound(_0x8dbfx5))[_0xd4e1[9]](responseWithResult(_0x8dbfx5))[_0xd4e1[13]](handleError(_0x8dbfx5))};exports[_0xd4e1[23]]=function(_0x8dbfxf,_0x8dbfx5){SalesforceConfiguration[_0xd4e1[23]](_0x8dbfxf[_0xd4e1[24]])[_0xd4e1[9]](responseWithResult(_0x8dbfx5,201))[_0xd4e1[13]](handleError(_0x8dbfx5))};exports[_0xd4e1[25]]=function(_0x8dbfxf,_0x8dbfx5){if(_0x8dbfxf[_0xd4e1[24]][_0xd4e1[17]]){delete _0x8dbfxf[_0xd4e1[24]][_0xd4e1[17]]};SalesforceConfiguration[_0xd4e1[26]](_0x8dbfxf[_0xd4e1[18]][_0xd4e1[17]])[_0xd4e1[9]](handleEntityNotFound(_0x8dbfx5))[_0xd4e1[9]](saveUpdates(_0x8dbfxf[_0xd4e1[24]]))[_0xd4e1[9]](responseWithResult(_0x8dbfx5))[_0xd4e1[13]](handleError(_0x8dbfx5))};exports[_0xd4e1[11]]=function(_0x8dbfxf,_0x8dbfx5){SalesforceConfiguration[_0xd4e1[26]](_0x8dbfxf[_0xd4e1[18]][_0xd4e1[17]])[_0xd4e1[9]](handleEntityNotFound(_0x8dbfx5))[_0xd4e1[9]](removeEntity(_0x8dbfx5))[_0xd4e1[13]](handleError(_0x8dbfx5))};exports[_0xd4e1[27]]=function(_0x8dbfxf,_0x8dbfx5,_0x8dbfx10){var _0x8dbfx11;SalesforceConfiguration[_0xd4e1[26]](_0x8dbfxf[_0xd4e1[18]][_0xd4e1[17]])[_0xd4e1[9]](handleEntityNotFound(_0x8dbfx5))[_0xd4e1[9]](function(_0x8dbfx14){_0x8dbfx11=_0x8dbfx14;return SalesforceField[_0xd4e1[23]](_0x8dbfxf[_0xd4e1[24]])})[_0xd4e1[9]](function(_0x8dbfx13){switch(_0x8dbfxf[_0xd4e1[18]][_0xd4e1[35]]){case _0xd4e1[30]:return [_0x8dbfx11[_0xd4e1[29]](_0x8dbfx13),_0x8dbfx13];case _0xd4e1[32]:return [_0x8dbfx11[_0xd4e1[31]](_0x8dbfx13),_0x8dbfx13];case _0xd4e1[34]:return [_0x8dbfx11[_0xd4e1[33]](_0x8dbfx13),_0x8dbfx13]}})[_0xd4e1[28]](function(_0x8dbfx12,_0x8dbfx13){return _0x8dbfx5[_0xd4e1[6]](201)[_0xd4e1[7]](_0x8dbfx13)})[_0xd4e1[13]](handleError(_0x8dbfx5))}
\ No newline at end of file
index c45a482..2694534 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var SalesforceConfiguration = require('../../models').SalesforceConfiguration;
-
-exports.register = function(socket) {
-  SalesforceConfiguration.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  SalesforceConfiguration.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('salesforce_configuration:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('salesforce_configuration:remove', doc);
-}
+var _0xbaab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0xbaab[0];var SalesforceConfiguration=require(_0xbaab[2])[_0xbaab[1]];exports[_0xbaab[3]]=function(_0xcadcx2){SalesforceConfiguration[_0xbaab[4]](function(_0xcadcx3){onSave(_0xcadcx2,_0xcadcx3)});SalesforceConfiguration[_0xbaab[5]](function(_0xcadcx3){onRemove(_0xcadcx2,_0xcadcx3)})};function onSave(_0xcadcx2,_0xcadcx3,_0xcadcx5){_0xcadcx2[_0xbaab[7]](_0xbaab[6],_0xcadcx3)}function onRemove(_0xcadcx2,_0xcadcx3,_0xcadcx5){_0xcadcx2[_0xbaab[7]](_0xbaab[8],_0xcadcx3)}
\ No newline at end of file
index 4a0ccb2..fe57bd5 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./salesforce_field.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0x1070=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1070[0];var express=require(_0x1070[1]);var auth=require(_0x1070[2]);var controller=require(_0x1070[3]);var router=express.Router();router[_0x1070[7]](_0x1070[4],auth[_0x1070[5]](),controller[_0x1070[6]]);router[_0x1070[7]](_0x1070[8],auth[_0x1070[5]](),controller[_0x1070[9]]);router[_0x1070[11]](_0x1070[4],auth[_0x1070[5]](),controller[_0x1070[10]]);router[_0x1070[13]](_0x1070[8],auth[_0x1070[5]](),controller[_0x1070[12]]);router[_0x1070[14]](_0x1070[8],auth[_0x1070[5]](),controller[_0x1070[12]]);router[_0x1070[16]](_0x1070[8],auth[_0x1070[5]](),controller[_0x1070[15]]);module[_0x1070[17]]=router
\ No newline at end of file
index 639e318..36b9dc1 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var salesforceFieldCtrlStub = {
-  index: 'salesforceFieldCtrl.index',
-  show: 'salesforceFieldCtrl.show',
-  create: 'salesforceFieldCtrl.create',
-  update: 'salesforceFieldCtrl.update',
-  destroy: 'salesforceFieldCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var salesforceFieldIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './salesforce_field.controller': salesforceFieldCtrlStub
-});
-
-describe('SalesforceField API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(salesforceFieldIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/salesforce/fields', function() {
-
-    it('should route to salesforceField.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'salesforceFieldCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/salesforce/fields/:id', function() {
-
-    it('should route to salesforceField.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'salesforceFieldCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/salesforce/fields', function() {
-
-    it('should route to salesforceField.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'salesforceFieldCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/salesforce/fields/:id', function() {
-
-    it('should route to salesforceField.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'salesforceFieldCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/salesforce/fields/:id', function() {
-
-    it('should route to salesforceField.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'salesforceFieldCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/salesforce/fields/:id', function() {
-
-    it('should route to salesforceField.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'salesforceFieldCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0x6883=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x6883[0];var proxyquire=require(_0x6883[2])[_0x6883[1]]();var salesforceFieldCtrlStub={index:_0x6883[3],show:_0x6883[4],create:_0x6883[5],update:_0x6883[6],destroy:_0x6883[7]};var routerStub={get:sinon[_0x6883[8]](),put:sinon[_0x6883[8]](),patch:sinon[_0x6883[8]](),post:sinon[_0x6883[8]](),delete:sinon[_0x6883[8]]()};var salesforceFieldIndex=proxyquire(_0x6883[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":salesforceFieldCtrlStub});describe(_0x6883[10],function(){it(_0x6883[11],function(){expect(salesforceFieldIndex)[_0x6883[13]][_0x6883[12]](routerStub)});describe(_0x6883[14],function(){it(_0x6883[15],function(){expect(routerStub[_0x6883[21]][_0x6883[20]](_0x6883[19],_0x6883[3]))[_0x6883[13]][_0x6883[18]][_0x6883[17]][_0x6883[16]]})});describe(_0x6883[22],function(){it(_0x6883[23],function(){expect(routerStub[_0x6883[21]][_0x6883[20]](_0x6883[24],_0x6883[4]))[_0x6883[13]][_0x6883[18]][_0x6883[17]][_0x6883[16]]})});describe(_0x6883[25],function(){it(_0x6883[26],function(){expect(routerStub[_0x6883[27]][_0x6883[20]](_0x6883[19],_0x6883[5]))[_0x6883[13]][_0x6883[18]][_0x6883[17]][_0x6883[16]]})});describe(_0x6883[28],function(){it(_0x6883[29],function(){expect(routerStub[_0x6883[30]][_0x6883[20]](_0x6883[24],_0x6883[6]))[_0x6883[13]][_0x6883[18]][_0x6883[17]][_0x6883[16]]})});describe(_0x6883[31],function(){it(_0x6883[29],function(){expect(routerStub[_0x6883[32]][_0x6883[20]](_0x6883[24],_0x6883[6]))[_0x6883[13]][_0x6883[18]][_0x6883[17]][_0x6883[16]]})});describe(_0x6883[33],function(){it(_0x6883[34],function(){expect(routerStub[_0x6883[35]][_0x6883[20]](_0x6883[24],_0x6883[7]))[_0x6883[13]][_0x6883[18]][_0x6883[17]][_0x6883[16]]})})})
\ No newline at end of file
index bab61d7..86ae6d0 100644 (file)
@@ -1,104 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/salesforce/fields              ->  index
- * POST    /api/salesforce/fields              ->  create
- * GET     /api/salesforce/fields/:id          ->  show
- * PUT     /api/salesforce/fields/:id          ->  update
- * DELETE  /api/salesforce/fields/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-
-var SalesforceField = require('../../models').SalesforceField;
-
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of SalesforceFields
-exports.index = function(req, res) {
-  SalesforceField.findAll()
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single SalesforceField from the DB
-exports.show = function(req, res) {
-  SalesforceField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new SalesforceField in the DB
-exports.create = function(req, res) {
-  SalesforceField.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing SalesforceField in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  SalesforceField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a SalesforceField from the DB
-exports.destroy = function(req, res) {
-  SalesforceField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
+var _0x120e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65"];_0x120e[0];var _=require(_0x120e[1]);var SalesforceField=require(_0x120e[3])[_0x120e[2]];function handleError(_0x50acx4,_0x50acx5){_0x50acx5=_0x50acx5||500;return function(_0x50acx6){_0x50acx4[_0x120e[5]](_0x50acx5)[_0x120e[4]](_0x50acx6)}}function responseWithResult(_0x50acx4,_0x50acx5){_0x50acx5=_0x50acx5||200;return function(_0x50acx8){if(_0x50acx8){_0x50acx4[_0x120e[5]](_0x50acx5)[_0x120e[6]](_0x50acx8)}}}function handleEntityNotFound(_0x50acx4){return function(_0x50acx8){if(!_0x50acx8){_0x50acx4[_0x120e[5]](404)[_0x120e[7]]();return null};return _0x50acx8}}function saveUpdates(_0x50acxb){return function(_0x50acx8){return _0x50acx8[_0x120e[9]](_0x50acxb)[_0x120e[8]](function(_0x50acxc){return _0x50acxc})}}function removeEntity(_0x50acx4){return function(_0x50acx8){if(_0x50acx8){return _0x50acx8[_0x120e[10]]()[_0x120e[8]](function(){_0x50acx4[_0x120e[5]](204)[_0x120e[7]]()})}}}exports[_0x120e[11]]=function(_0x50acxe,_0x50acx4){SalesforceField[_0x120e[13]]()[_0x120e[8]](responseWithResult(_0x50acx4))[_0x120e[12]](handleError(_0x50acx4))};exports[_0x120e[14]]=function(_0x50acxe,_0x50acx4){SalesforceField[_0x120e[17]](_0x50acxe[_0x120e[16]][_0x120e[15]])[_0x120e[8]](handleEntityNotFound(_0x50acx4))[_0x120e[8]](responseWithResult(_0x50acx4))[_0x120e[12]](handleError(_0x50acx4))};exports[_0x120e[18]]=function(_0x50acxe,_0x50acx4){SalesforceField[_0x120e[18]](_0x50acxe[_0x120e[19]])[_0x120e[8]](responseWithResult(_0x50acx4,201))[_0x120e[12]](handleError(_0x50acx4))};exports[_0x120e[20]]=function(_0x50acxe,_0x50acx4){if(_0x50acxe[_0x120e[19]][_0x120e[15]]){delete _0x50acxe[_0x120e[19]][_0x120e[15]]};SalesforceField[_0x120e[17]](_0x50acxe[_0x120e[16]][_0x120e[15]])[_0x120e[8]](handleEntityNotFound(_0x50acx4))[_0x120e[8]](saveUpdates(_0x50acxe[_0x120e[19]]))[_0x120e[8]](responseWithResult(_0x50acx4))[_0x120e[12]](handleError(_0x50acx4))};exports[_0x120e[10]]=function(_0x50acxe,_0x50acx4){SalesforceField[_0x120e[17]](_0x50acxe[_0x120e[16]][_0x120e[15]])[_0x120e[8]](handleEntityNotFound(_0x50acx4))[_0x120e[8]](removeEntity(_0x50acx4))[_0x120e[12]](handleError(_0x50acx4))}
\ No newline at end of file
index b3f5775..6fdbee9 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var SalesforceField = require('../../models').SalesforceField;
-
-exports.register = function(socket) {
-  SalesforceField.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  SalesforceField.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('salesforce_field:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('salesforce_field:remove', doc);
-}
+var _0x8f09=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8f09[0];var SalesforceField=require(_0x8f09[2])[_0x8f09[1]];exports[_0x8f09[3]]=function(_0x8497x2){SalesforceField[_0x8f09[4]](function(_0x8497x3){onSave(_0x8497x2,_0x8497x3)});SalesforceField[_0x8f09[5]](function(_0x8497x3){onRemove(_0x8497x2,_0x8497x3)})};function onSave(_0x8497x2,_0x8497x3,_0x8497x5){_0x8497x2[_0x8f09[7]](_0x8f09[6],_0x8497x3)}function onRemove(_0x8497x2,_0x8497x3,_0x8497x5){_0x8497x2[_0x8f09[7]](_0x8f09[8],_0x8497x3)}
\ No newline at end of file
index c1bf88f..8474f9e 100644 (file)
@@ -1,24 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./service.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/customfields/:id', auth.isAuthenticated(), controller.showCustomField);
-router.get('/:id/customfields', auth.isAuthenticated(), controller.getCustomFields);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/validate', auth.isAuthenticated(), controller.serviceValidation);
-router.post('/:id/agents', auth.isAuthenticated(), controller.addAgents);
-router.post('/:id/customfields', auth.isAuthenticated(), controller.createCustomField);
-router.put('/customfields/:id', auth.isAuthenticated(), controller.updateCustomField);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.put('/:id/agents', auth.isAuthenticated(), controller.removeAgents);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-router.delete('/customfields/:id', auth.isAuthenticated(), controller.deactivateCustomField);
-
-module.exports = router;
+var _0xf862=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x63\x75\x73\x74\x6F\x6D\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x77\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x2F\x3A\x69\x64\x2F\x63\x75\x73\x74\x6F\x6D\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x73\x65\x72\x76\x69\x63\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x2F\x3A\x69\x64\x2F\x61\x67\x65\x6E\x74\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x75\x70\x64\x61\x74\x65\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x70\x75\x74","\x75\x70\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0xf862[0];var express=require(_0xf862[1]);var controller=require(_0xf862[2]);var auth=require(_0xf862[3]);var router=express.Router();router[_0xf862[7]](_0xf862[4],auth[_0xf862[5]](),controller[_0xf862[6]]);router[_0xf862[7]](_0xf862[8],auth[_0xf862[5]](),controller[_0xf862[9]]);router[_0xf862[7]](_0xf862[10],auth[_0xf862[5]](),controller[_0xf862[11]]);router[_0xf862[7]](_0xf862[12],auth[_0xf862[5]](),controller[_0xf862[13]]);router[_0xf862[15]](_0xf862[4],auth[_0xf862[5]](),controller[_0xf862[14]]);router[_0xf862[15]](_0xf862[16],auth[_0xf862[5]](),controller[_0xf862[17]]);router[_0xf862[15]](_0xf862[18],auth[_0xf862[5]](),controller[_0xf862[19]]);router[_0xf862[15]](_0xf862[10],auth[_0xf862[5]](),controller[_0xf862[20]]);router[_0xf862[22]](_0xf862[8],auth[_0xf862[5]](),controller[_0xf862[21]]);router[_0xf862[22]](_0xf862[12],auth[_0xf862[5]](),controller[_0xf862[23]]);router[_0xf862[22]](_0xf862[18],auth[_0xf862[5]](),controller[_0xf862[24]]);router[_0xf862[26]](_0xf862[4],auth[_0xf862[5]](),controller[_0xf862[25]]);router[_0xf862[26]](_0xf862[12],auth[_0xf862[5]](),controller[_0xf862[27]]);router[_0xf862[26]](_0xf862[8],auth[_0xf862[5]](),controller[_0xf862[28]]);module[_0xf862[29]]=router
\ No newline at end of file
index bb36742..cf7875a 100644 (file)
@@ -1,379 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-
-var User = require('../../models').User;
-var Service = require('../../models').Service;
-var UserHasService = require('../../models').UserHasService;
-var CustomField = require('../../models').CustomField;
-var Contact = require('../../models').Contact;
-var Util = require('../../config/util');
-
-// Get list of services
-exports.index = function(req, res, next) {
-  return Service
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get all custom_fields
-exports.getCustomFields = function(req, res) {
-  CustomField
-    .findAll({
-      where: {
-        ServiceId: req.params.id,
-        active: true
-      }
-    })
-    .then(function(customFields) {
-      return res.status(200).send(customFields);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-exports.showCustomField = function(req, res) {
-  CustomField
-    .findById(req.params.id)
-    .then(function(customField) {
-      if (!customField) {
-        return res.sendStatus(404);
-      }
-      return res.send(customField);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.updateCustomField = function(req, res) {
-  CustomField
-    .findAll({
-      where: {
-        name: req.body.name,
-        id: {
-          $ne: req.body.id
-        }
-      }
-    })
-    .then(function(customFields) {
-      if (!customFields) {
-        return res.sendStatus(404);
-      }
-      if (customFields.length > 0) {
-        return res.status(500).send({
-          message: 'MESSAGE_EXIST_CUSTOM_FIELD'
-        })
-      }
-      if (req.body.id) {
-        delete req.body.id;
-      }
-      CustomField
-        .findById(req.params.id)
-        .then(function(customField) {
-          if (!customField) {
-            return res.sendStatus(404);
-          }
-          var updated = _.merge(customField, req.body);
-          updated.save()
-            .then(function() {
-              return res.status(200).send(customField);
-            })
-            .catch(function(err) {
-              return handleError(res, err);
-            });
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.createCustomField = function(req, res) {
-  req.body.ServiceId = req.params.id;
-  CustomField
-    .create(req.body)
-    .then(function(customField) {
-      return res.status(201).send(customField);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single service
-exports.show = function(req, res) {
-  Service
-    .findById(req.params.id)
-    .then(function(service) {
-      if (!service) {
-        return res.sendStatus(404);
-      }
-      return res.send(service);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Validate the existence of a service
-exports.serviceValidation = function(req, res) {
-  console.log(req.body);
-  Service
-    .findAll({
-      where: {
-        id: req.body.id
-      }
-    })
-    .then(function(service) {
-      if (!service) {
-        return res.sendStatus(404);
-      }
-      return res.send(service);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new service in the DB.
-exports.create = function(req, res) {
-  Service
-    .findAll({
-      where: {
-        name: req.body.name
-      }
-    })
-    .then(function(existingServices) {
-      console.log(existingServices);
-      console.log('Finding app row.....');
-      if (!existingServices) {
-        return res.sendStatus(404);
-      }
-      if (existingServices.length > 0) {
-        return res.status(500).send({
-          message: 'MESSAGE_EXIST_SERVICE'
-        });
-      }
-      Service
-        .create(req.body)
-        .then(function(service) {
-          return res.status(201).send(service);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing service in the DB.
-exports.update = function(req, res) {
-  Service
-    .findAll({
-      where: {
-        name: req.body.name
-      }
-    })
-    .then(function(existingServices) {
-      console.log(existingServices);
-      console.log('Finding app row.....');
-      if (!existingServices) {
-        return res.sendStatus(404);
-      }
-      if (existingServices.length > 0) {
-        return res.status(500).send({
-          message: 'MESSAGE_EXIST_SERVICE'
-        });
-      }
-      return Service
-        .findById(req.params.id);
-    })
-    .then(function(service) {
-      if (!service) {
-        return res.sendStatus(404);
-      }
-      if (req.body.id) {
-        delete req.body.id;
-      }
-      var updated = _.merge(service, req.body);
-      return updated.save();
-    })
-    .then(function(service) {
-      return res.status(200).send(service);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-
-// Updates an existing user_has_service in the DB.
-exports.addAgents = function(req, res, next) {
-
-  console.log('addAgents');
-  console.log(req.params);
-  console.log(req.body);
-  User
-    .findAll({
-      where: {
-        id: {
-          $in: req.body.agents
-        }
-      }
-    })
-    .then(function(users) {
-      // console.log(users);
-      var userHasServices = _.map(users, function(user) {
-        return {
-          service: req.params.id,
-          membername: user.name,
-          UserId: user.id
-        };
-      });
-
-      UserHasService
-        .bulkCreate(userHasServices, {
-          individualHooks: true
-        })
-        .then(function() {
-          return res.sendStatus(200);
-        })
-        .catch(function(err) {
-          return next(err);
-        });
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-exports.removeAgents = function(req, res, next) {
-  Service
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(service) {
-      if (service) {
-        // SERVICE FOUND
-        // REMOVE AGENTS
-        service
-          .removeUsers(req.body.agents, {
-            individualHooks: true
-          })
-          .then(function() {
-            return res.sendStatus(200);
-          })
-          .catch(function(err) {
-            return next(err);
-          });
-      } else {
-        return next(new Error('no service found'));
-      }
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-// Deletes a service from the DB.
-exports.destroy = function(req, res) {
-  destroyService(req.params.id, res);
-};
-
-// Deletes multiple services from the DB.
-exports.bulkDestroy = function(req, res) { //add the check for associated contacts
-  destroyService(req.query.id, res);
-};
-
-function destroyService(id, res) {
-  return delOrUpdateCf(id)
-    .all()
-    .then(function() {
-      return Service.destroy({
-        where: {
-          id: id
-        },
-        individualHooks: true
-      });
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-}
-
-function delOrUpdateCf(id) {
-  return CustomField.findAll({
-      where: {
-        ServiceId: id
-      },
-      include: [{
-        model: Contact
-      }]
-    })
-    .then(function(customFields) {
-      console.log(customFields.length);
-      var delOrDeact = [];
-      _.forEach(customFields, function(elem) {
-        if (elem.Contacts.length) {
-          delOrDeact.push(elem.update({
-            active: false
-          }));
-        } else {
-          delOrDeact.push(elem.destroy());
-        }
-      });
-      return delOrDeact;
-    })
-}
-
-exports.deactivateCustomField = function(req, res) {
-  CustomField
-    .findById(req.params.id, {
-      include: [{
-        model: Contact
-      }]
-    })
-    .then(function(customField) {
-      if (!customField) {
-        return res.sendStatus(404);
-      }
-      if (customField.Contacts.length) {
-        return customField.update({
-          active: false
-        });
-      } else {
-        return customField.destroy();
-      }
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xc5cb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x53\x65\x72\x76\x69\x63\x65","\x55\x73\x65\x72\x48\x61\x73\x53\x65\x72\x76\x69\x63\x65","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x67\x65\x74\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x6C\x6F\x67","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x75\x70\x64\x61\x74\x65\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x43\x55\x53\x54\x4F\x4D\x5F\x46\x49\x45\x4C\x44","\x62\x6F\x64\x79","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x6E\x61\x6D\x65","\x63\x72\x65\x61\x74\x65\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x53\x65\x72\x76\x69\x63\x65\x49\x64","\x63\x72\x65\x61\x74\x65","\x73\x68\x6F\x77","\x73\x65\x72\x76\x69\x63\x65\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x46\x69\x6E\x64\x69\x6E\x67\x20\x61\x70\x70\x20\x72\x6F\x77\x2E\x2E\x2E\x2E\x2E","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x53\x45\x52\x56\x49\x43\x45","\x75\x70\x64\x61\x74\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x6D\x61\x70","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x61\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72\x73","\x6E\x6F\x20\x73\x65\x72\x76\x69\x63\x65\x20\x66\x6F\x75\x6E\x64","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x61\x6C\x6C","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x64\x65\x61\x63\x74\x69\x76\x61\x74\x65\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64"];_0xc5cb[0];var _=require(_0xc5cb[1]);var util=require(_0xc5cb[2]);var User=require(_0xc5cb[4])[_0xc5cb[3]];var Service=require(_0xc5cb[4])[_0xc5cb[5]];var UserHasService=require(_0xc5cb[4])[_0xc5cb[6]];var CustomField=require(_0xc5cb[4])[_0xc5cb[7]];var Contact=require(_0xc5cb[4])[_0xc5cb[8]];var Util=require(_0xc5cb[9]);exports[_0xc5cb[10]]=function(_0x7550x9,_0x7550xa,_0x7550xb){return Service[_0xc5cb[17]](Util[_0xc5cb[16]](_0x7550x9[_0xc5cb[15]]))[_0xc5cb[14]](function(_0x7550xd){_0x7550xa[_0xc5cb[13]](200)[_0xc5cb[12]](_0x7550xd)})[_0xc5cb[11]](function(_0x7550xc){return handleError(_0x7550xa,_0x7550xc)})};exports[_0xc5cb[18]]=function(_0x7550x9,_0x7550xa){CustomField[_0xc5cb[22]]({where:{ServiceId:_0x7550x9[_0xc5cb[21]][_0xc5cb[20]],active:true}})[_0xc5cb[14]](function(_0x7550xe){return _0x7550xa[_0xc5cb[13]](200)[_0xc5cb[12]](_0x7550xe)})[_0xc5cb[11]](function(_0x7550xc){console[_0xc5cb[19]](_0x7550xc);return handleError(_0x7550xa,_0x7550xc)})};exports[_0xc5cb[23]]=function(_0x7550x9,_0x7550xa){CustomField[_0xc5cb[25]](_0x7550x9[_0xc5cb[21]][_0xc5cb[20]])[_0xc5cb[14]](function(_0x7550xf){if(!_0x7550xf){return _0x7550xa[_0xc5cb[24]](404)};return _0x7550xa[_0xc5cb[12]](_0x7550xf)})[_0xc5cb[11]](function(_0x7550xc){return handleError(_0x7550xa,_0x7550xc)})};exports[_0xc5cb[26]]=function(_0x7550x9,_0x7550xa){CustomField[_0xc5cb[22]]({where:{name:_0x7550x9[_0xc5cb[29]][_0xc5cb[32]],id:{$ne:_0x7550x9[_0xc5cb[29]][_0xc5cb[20]]}}})[_0xc5cb[14]](function(_0x7550xe){if(!_0x7550xe){return _0x7550xa[_0xc5cb[24]](404)};if(_0x7550xe[_0xc5cb[27]]>0){return _0x7550xa[_0xc5cb[13]](500)[_0xc5cb[12]]({message:_0xc5cb[28]})};if(_0x7550x9[_0xc5cb[29]][_0xc5cb[20]]){delete _0x7550x9[_0xc5cb[29]][_0xc5cb[20]]};CustomField[_0xc5cb[25]](_0x7550x9[_0xc5cb[21]][_0xc5cb[20]])[_0xc5cb[14]](function(_0x7550xf){if(!_0x7550xf){return _0x7550xa[_0xc5cb[24]](404)};var _0x7550x10=_[_0xc5cb[30]](_0x7550xf,_0x7550x9[_0xc5cb[29]]);_0x7550x10[_0xc5cb[31]]()[_0xc5cb[14]](function(){return _0x7550xa[_0xc5cb[13]](200)[_0xc5cb[12]](_0x7550xf)})[_0xc5cb[11]](function(_0x7550xc){return handleError(_0x7550xa,_0x7550xc)})})[_0xc5cb[11]](function(_0x7550xc){return handleError(_0x7550xa,_0x7550xc)})})[_0xc5cb[11]](function(_0x7550xc){return handleError(_0x7550xa,_0x7550xc)})};exports[_0xc5cb[33]]=function(_0x7550x9,_0x7550xa){_0x7550x9[_0xc5cb[29]][_0xc5cb[34]]=_0x7550x9[_0xc5cb[21]][_0xc5cb[20]];CustomField[_0xc5cb[35]](_0x7550x9[_0xc5cb[29]])[_0xc5cb[14]](function(_0x7550xf){return _0x7550xa[_0xc5cb[13]](201)[_0xc5cb[12]](_0x7550xf)})[_0xc5cb[11]](function(_0x7550xc){return handleError(_0x7550xa,_0x7550xc)})};exports[_0xc5cb[36]]=function(_0x7550x9,_0x7550xa){Service[_0xc5cb[25]](_0x7550x9[_0xc5cb[21]][_0xc5cb[20]])[_0xc5cb[14]](function(_0x7550x11){if(!_0x7550x11){return _0x7550xa[_0xc5cb[24]](404)};return _0x7550xa[_0xc5cb[12]](_0x7550x11)})[_0xc5cb[11]](function(_0x7550xc){return handleError(_0x7550xa,_0x7550xc)})};exports[_0xc5cb[37]]=function(_0x7550x9,_0x7550xa){console[_0xc5cb[19]](_0x7550x9[_0xc5cb[29]]);Service[_0xc5cb[22]]({where:{id:_0x7550x9[_0xc5cb[29]][_0xc5cb[20]]}})[_0xc5cb[14]](function(_0x7550x11){if(!_0x7550x11){return _0x7550xa[_0xc5cb[24]](404)};return _0x7550xa[_0xc5cb[12]](_0x7550x11)})[_0xc5cb[11]](function(_0x7550xc){return handleError(_0x7550xa,_0x7550xc)})};exports[_0xc5cb[35]]=function(_0x7550x9,_0x7550xa){Service[_0xc5cb[22]]({where:{name:_0x7550x9[_0xc5cb[29]][_0xc5cb[32]]}})[_0xc5cb[14]](function(_0x7550x12){console[_0xc5cb[19]](_0x7550x12);console[_0xc5cb[19]](_0xc5cb[38]);if(!_0x7550x12){return _0x7550xa[_0xc5cb[24]](404)};if(_0x7550x12[_0xc5cb[27]]>0){return _0x7550xa[_0xc5cb[13]](500)[_0xc5cb[12]]({message:_0xc5cb[39]})};Service[_0xc5cb[35]](_0x7550x9[_0xc5cb[29]])[_0xc5cb[14]](function(_0x7550x11){return _0x7550xa[_0xc5cb[13]](201)[_0xc5cb[12]](_0x7550x11)})[_0xc5cb[11]](function(_0x7550xc){return handleError(_0x7550xa,_0x7550xc)})})[_0xc5cb[11]](function(_0x7550xc){return handleError(_0x7550xa,_0x7550xc)})};exports[_0xc5cb[40]]=function(_0x7550x9,_0x7550xa){Service[_0xc5cb[22]]({where:{name:_0x7550x9[_0xc5cb[29]][_0xc5cb[32]]}})[_0xc5cb[14]](function(_0x7550x12){console[_0xc5cb[19]](_0x7550x12);console[_0xc5cb[19]](_0xc5cb[38]);if(!_0x7550x12){return _0x7550xa[_0xc5cb[24]](404)};if(_0x7550x12[_0xc5cb[27]]>0){return _0x7550xa[_0xc5cb[13]](500)[_0xc5cb[12]]({message:_0xc5cb[39]})};return Service[_0xc5cb[25]](_0x7550x9[_0xc5cb[21]][_0xc5cb[20]])})[_0xc5cb[14]](function(_0x7550x11){if(!_0x7550x11){return _0x7550xa[_0xc5cb[24]](404)};if(_0x7550x9[_0xc5cb[29]][_0xc5cb[20]]){delete _0x7550x9[_0xc5cb[29]][_0xc5cb[20]]};var _0x7550x10=_[_0xc5cb[30]](_0x7550x11,_0x7550x9[_0xc5cb[29]]);return _0x7550x10[_0xc5cb[31]]()})[_0xc5cb[14]](function(_0x7550x11){return _0x7550xa[_0xc5cb[13]](200)[_0xc5cb[12]](_0x7550x11)})[_0xc5cb[11]](function(_0x7550xc){return handleError(_0x7550xa,_0x7550xc)})};exports[_0xc5cb[41]]=function(_0x7550x9,_0x7550xa,_0x7550xb){console[_0xc5cb[19]](_0xc5cb[41]);console[_0xc5cb[19]](_0x7550x9[_0xc5cb[21]]);console[_0xc5cb[19]](_0x7550x9[_0xc5cb[29]]);User[_0xc5cb[22]]({where:{id:{$in:_0x7550x9[_0xc5cb[29]][_0xc5cb[44]]}}})[_0xc5cb[14]](function(_0x7550x13){var _0x7550x14=_[_0xc5cb[42]](_0x7550x13,function(_0x7550x15){return {service:_0x7550x9[_0xc5cb[21]][_0xc5cb[20]],membername:_0x7550x15[_0xc5cb[32]],UserId:_0x7550x15[_0xc5cb[20]]}});UserHasService[_0xc5cb[43]](_0x7550x14,{individualHooks:true})[_0xc5cb[14]](function(){return _0x7550xa[_0xc5cb[24]](200)})[_0xc5cb[11]](function(_0x7550xc){return _0x7550xb(_0x7550xc)})})[_0xc5cb[11]](function(_0x7550xc){return _0x7550xb(_0x7550xc)})};exports[_0xc5cb[45]]=function(_0x7550x9,_0x7550xa,_0x7550xb){Service[_0xc5cb[48]]({where:{id:_0x7550x9[_0xc5cb[21]][_0xc5cb[20]]}})[_0xc5cb[14]](function(_0x7550x11){if(_0x7550x11){_0x7550x11[_0xc5cb[46]](_0x7550x9[_0xc5cb[29]][_0xc5cb[44]],{individualHooks:true})[_0xc5cb[14]](function(){return _0x7550xa[_0xc5cb[24]](200)})[_0xc5cb[11]](function(_0x7550xc){return _0x7550xb(_0x7550xc)})}else {return _0x7550xb( new Error(_0xc5cb[47]))}})[_0xc5cb[11]](function(_0x7550xc){return _0x7550xb(_0x7550xc)})};exports[_0xc5cb[49]]=function(_0x7550x9,_0x7550xa){destroyService(_0x7550x9[_0xc5cb[21]][_0xc5cb[20]],_0x7550xa)};exports[_0xc5cb[50]]=function(_0x7550x9,_0x7550xa){destroyService(_0x7550x9[_0xc5cb[15]][_0xc5cb[20]],_0x7550xa)};function destroyService(_0x7550x17,_0x7550xa){return delOrUpdateCf(_0x7550x17)[_0xc5cb[51]]()[_0xc5cb[14]](function(){return Service[_0xc5cb[49]]({where:{id:_0x7550x17},individualHooks:true})})[_0xc5cb[14]](function(){return _0x7550xa[_0xc5cb[24]](204)})[_0xc5cb[11]](function(_0x7550xc){console[_0xc5cb[19]](_0x7550xc);return handleError(_0x7550xa,_0x7550xc)})}function delOrUpdateCf(_0x7550x17){return CustomField[_0xc5cb[22]]({where:{ServiceId:_0x7550x17},include:[{model:Contact}]})[_0xc5cb[14]](function(_0x7550xe){console[_0xc5cb[19]](_0x7550xe[_0xc5cb[27]]);var _0x7550x19=[];_[_0xc5cb[54]](_0x7550xe,function(_0x7550x1a){if(_0x7550x1a[_0xc5cb[52]][_0xc5cb[27]]){_0x7550x19[_0xc5cb[53]](_0x7550x1a[_0xc5cb[40]]({active:false}))}else {_0x7550x19[_0xc5cb[53]](_0x7550x1a[_0xc5cb[49]]())}});return _0x7550x19})}exports[_0xc5cb[55]]=function(_0x7550x9,_0x7550xa){CustomField[_0xc5cb[25]](_0x7550x9[_0xc5cb[21]][_0xc5cb[20]],{include:[{model:Contact}]})[_0xc5cb[14]](function(_0x7550xf){if(!_0x7550xf){return _0x7550xa[_0xc5cb[24]](404)};if(_0x7550xf[_0xc5cb[52]][_0xc5cb[27]]){return _0x7550xf[_0xc5cb[40]]({active:false})}else {return _0x7550xf[_0xc5cb[49]]()}})[_0xc5cb[14]](function(){return _0x7550xa[_0xc5cb[24]](204)})[_0xc5cb[11]](function(_0x7550xc){return handleError(_0x7550xa,_0x7550xc)})};function handleError(_0x7550xa,_0x7550xc){return _0x7550xa[_0xc5cb[13]](500)[_0xc5cb[12]](_0x7550xc)}
\ No newline at end of file
index 981784a..f55184d 100644 (file)
@@ -1,33 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Service = require('../../models').Service;
-var CustomField = require('../../models').CustomField;
-
-exports.register = function(socket) {
-  Service.afterCreate(function(doc) {
-    onSave(socket, doc, 'service');
-  });
-  Service.afterDestroy(function(doc) {
-    console.log('destroy');
-    onRemove(socket, doc, 'service');
-  });
-  CustomField.afterCreate(function(doc) {
-    onSave(socket, doc, 'custom_field');
-  });
-  CustomField.afterDestroy(function(doc) {
-    onRemove(socket, doc, 'custom_field');
-  });
-}
-
-function onSave(socket, doc, type, cb) {
-  socket.emit(type + ':save', doc);
-}
-
-function onRemove(socket, doc, type, cb) {
-  console.log(type);
-  socket.emit(type + ':remove', doc);
-}
+var _0x3604=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x72\x65\x67\x69\x73\x74\x65\x72","\x73\x65\x72\x76\x69\x63\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x6C\x6F\x67","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64","\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3604[0];var Service=require(_0x3604[2])[_0x3604[1]];var CustomField=require(_0x3604[2])[_0x3604[3]];exports[_0x3604[4]]=function(_0xd125x3){Service[_0x3604[6]](function(_0xd125x4){onSave(_0xd125x3,_0xd125x4,_0x3604[5])});Service[_0x3604[9]](function(_0xd125x4){console[_0x3604[8]](_0x3604[7]);onRemove(_0xd125x3,_0xd125x4,_0x3604[5])});CustomField[_0x3604[6]](function(_0xd125x4){onSave(_0xd125x3,_0xd125x4,_0x3604[10])});CustomField[_0x3604[9]](function(_0xd125x4){onRemove(_0xd125x3,_0xd125x4,_0x3604[10])})};function onSave(_0xd125x3,_0xd125x4,_0xd125x6,_0xd125x7){_0xd125x3[_0x3604[12]](_0xd125x6+_0x3604[11],_0xd125x4)}function onRemove(_0xd125x3,_0xd125x4,_0xd125x6,_0xd125x7){console[_0x3604[8]](_0xd125x6);_0xd125x3[_0x3604[12]](_0xd125x6+_0x3604[13],_0xd125x4)}
\ No newline at end of file
index 7d84147..aa28d53 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/contactmanager/services', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/contactmanager/services')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0xe659=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x73\x65\x72\x76\x69\x63\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x73\x65\x72\x76\x69\x63\x65\x73","\x67\x65\x74"];_0xe659[0];var should=require(_0xe659[1]);var app=require(_0xe659[2]);var request=require(_0xe659[3]);describe(_0xe659[4],function(){it(_0xe659[5],function(_0x122bx4){request(app)[_0xe659[13]](_0xe659[12])[_0xe659[11]](200)[_0xe659[11]](_0xe659[10],/json/)[_0xe659[9]](function(_0x122bx5,_0x122bx6){if(_0x122bx5){return _0x122bx4(_0x122bx5)};_0x122bx6[_0xe659[8]][_0xe659[1]][_0xe659[7]][_0xe659[6]](Array);_0x122bx4()})})})
\ No newline at end of file
index e30286b..f908110 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./setting.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/internal', auth.isAuthenticated(), controller.getInternal);
-router.get('/mailbox', auth.isAuthenticated(), controller.getMailbox);
-router.get('/info', controller.getInfo);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x349b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x67\x65\x74\x49\x6E\x74\x65\x72\x6E\x61\x6C","\x2F\x6D\x61\x69\x6C\x62\x6F\x78","\x67\x65\x74\x4D\x61\x69\x6C\x62\x6F\x78","\x2F\x69\x6E\x66\x6F","\x67\x65\x74\x49\x6E\x66\x6F","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x349b[0];var express=require(_0x349b[1]);var controller=require(_0x349b[2]);var auth=require(_0x349b[3]);var router=express.Router();router[_0x349b[7]](_0x349b[4],auth[_0x349b[5]](),controller[_0x349b[6]]);router[_0x349b[7]](_0x349b[8],auth[_0x349b[5]](),controller[_0x349b[9]]);router[_0x349b[7]](_0x349b[10],auth[_0x349b[5]](),controller[_0x349b[11]]);router[_0x349b[7]](_0x349b[12],controller[_0x349b[13]]);router[_0x349b[7]](_0x349b[14],auth[_0x349b[5]](),controller[_0x349b[15]]);router[_0x349b[17]](_0x349b[4],auth[_0x349b[5]](),controller[_0x349b[16]]);router[_0x349b[19]](_0x349b[14],auth[_0x349b[5]](),controller[_0x349b[18]]);router[_0x349b[20]](_0x349b[14],auth[_0x349b[5]](),controller[_0x349b[18]]);router[_0x349b[22]](_0x349b[14],auth[_0x349b[5]](),controller[_0x349b[21]]);module[_0x349b[23]]=router
\ No newline at end of file
index 6c2943d..a7b0345 100644 (file)
@@ -1,172 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Settings = require('../../models').Settings;
-var Agent = require('../../models').User;
-var VoiceMail = require('../../models').VoiceVoicemail;
-
-// Get list of settings
-exports.index = function(req, res) {
-  return Settings
-    .findAll()
-    .then(function(settings) {
-      return res.status(200).send(settings);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get internal
-exports.getInternal = function(req, res) {
-  var _settings;
-  return Settings
-    .findById(1)
-    .then(function(settings) {
-      _settings = settings;
-      return Agent
-        .max('internal');
-    })
-    .then(function(internal) {
-      var _internal = {
-        value: 0
-      };
-
-      if (internal) {
-        _internal.value = ++internal;
-      } else {
-        _internal.value = _settings.min_internal;
-      }
-
-      return res.status(200).send(_internal);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get internal
-exports.getMailbox = function(req, res) {
-  var _settings;
-  return Settings
-    .findById(1)
-    .then(function(settings) {
-      _settings = settings;
-      return VoiceMail
-        .max('mailbox');
-    })
-    .then(function(mailbox) {
-      var _mailbox = {
-        value: 0
-      };
-
-      if (mailbox) {
-        _mailbox.value = ++mailbox;
-      } else {
-        _mailbox.value = _settings.min_mailbox;
-      }
-
-      return res.status(200).send(_mailbox);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Get list of settings
-exports.getInfo = function(req, res) {
-
-  var info = require('../../../package.json');
-
-  return res.status(200).send({
-    name: info.name,
-    version: info.version,
-    engines: info.engines
-  });
-};
-
-// Get a single setting
-exports.show = function(req, res) {
-  Settings
-    .findById(req.params.id)
-    .then(function(setting) {
-      if (!setting) {
-        return res.sendStatus(404);
-      }
-      return res.send(setting);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new setting in the DB.
-exports.create = function(req, res) {
-  Settings
-    .create(req.body)
-    .then(function(setting) {
-      return res.status(201).send(setting);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing setting in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  Settings
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(setting) {
-      if (!setting) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(setting, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(setting);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a setting from the DB.
-exports.destroy = function(req, res) {
-  Settings
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(setting) {
-      if (!setting) {
-        return res.sendStatus(404);
-      }
-      setting.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xb58b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x53\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x67\x65\x74\x49\x6E\x74\x65\x72\x6E\x61\x6C","\x76\x61\x6C\x75\x65","\x6D\x69\x6E\x5F\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6D\x61\x78","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x4D\x61\x69\x6C\x62\x6F\x78","\x6C\x6F\x67","\x6D\x69\x6E\x5F\x6D\x61\x69\x6C\x62\x6F\x78","\x6D\x61\x69\x6C\x62\x6F\x78","\x67\x65\x74\x49\x6E\x66\x6F","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x70\x61\x63\x6B\x61\x67\x65\x2E\x6A\x73\x6F\x6E","\x6E\x61\x6D\x65","\x76\x65\x72\x73\x69\x6F\x6E","\x65\x6E\x67\x69\x6E\x65\x73","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0xb58b[0];var _=require(_0xb58b[1]);var Settings=require(_0xb58b[3])[_0xb58b[2]];var Agent=require(_0xb58b[3])[_0xb58b[4]];var VoiceMail=require(_0xb58b[3])[_0xb58b[5]];exports[_0xb58b[6]]=function(_0x260dx5,_0x260dx6){return Settings[_0xb58b[11]]()[_0xb58b[10]](function(_0x260dx8){return _0x260dx6[_0xb58b[9]](200)[_0xb58b[8]](_0x260dx8)})[_0xb58b[7]](function(_0x260dx7){return handleError(_0x260dx6,_0x260dx7)})};exports[_0xb58b[12]]=function(_0x260dx5,_0x260dx6){var _0x260dx9;return Settings[_0xb58b[17]](1)[_0xb58b[10]](function(_0x260dx8){_0x260dx9=_0x260dx8;return Agent[_0xb58b[16]](_0xb58b[15])})[_0xb58b[10]](function(_0x260dxa){var _0x260dxb={value:0};if(_0x260dxa){_0x260dxb[_0xb58b[13]]= ++_0x260dxa}else {_0x260dxb[_0xb58b[13]]=_0x260dx9[_0xb58b[14]]};return _0x260dx6[_0xb58b[9]](200)[_0xb58b[8]](_0x260dxb)})[_0xb58b[7]](function(_0x260dx7){return handleError(_0x260dx6,_0x260dx7)})};exports[_0xb58b[18]]=function(_0x260dx5,_0x260dx6){var _0x260dx9;return Settings[_0xb58b[17]](1)[_0xb58b[10]](function(_0x260dx8){_0x260dx9=_0x260dx8;return VoiceMail[_0xb58b[16]](_0xb58b[21])})[_0xb58b[10]](function(_0x260dxc){var _0x260dxd={value:0};if(_0x260dxc){_0x260dxd[_0xb58b[13]]= ++_0x260dxc}else {_0x260dxd[_0xb58b[13]]=_0x260dx9[_0xb58b[20]]};return _0x260dx6[_0xb58b[9]](200)[_0xb58b[8]](_0x260dxd)})[_0xb58b[7]](function(_0x260dx7){console[_0xb58b[19]](_0x260dx7);return handleError(_0x260dx6,_0x260dx7)})};exports[_0xb58b[22]]=function(_0x260dx5,_0x260dx6){var _0x260dxe=require(_0xb58b[23]);return _0x260dx6[_0xb58b[9]](200)[_0xb58b[8]]({name:_0x260dxe[_0xb58b[24]],version:_0x260dxe[_0xb58b[25]],engines:_0x260dxe[_0xb58b[26]]})};exports[_0xb58b[27]]=function(_0x260dx5,_0x260dx6){Settings[_0xb58b[17]](_0x260dx5[_0xb58b[30]][_0xb58b[29]])[_0xb58b[10]](function(_0x260dxf){if(!_0x260dxf){return _0x260dx6[_0xb58b[28]](404)};return _0x260dx6[_0xb58b[8]](_0x260dxf)})[_0xb58b[7]](function(_0x260dx7){return handleError(_0x260dx6,_0x260dx7)})};exports[_0xb58b[31]]=function(_0x260dx5,_0x260dx6){Settings[_0xb58b[31]](_0x260dx5[_0xb58b[32]])[_0xb58b[10]](function(_0x260dxf){return _0x260dx6[_0xb58b[9]](201)[_0xb58b[8]](_0x260dxf)})[_0xb58b[7]](function(_0x260dx7){return handleError(_0x260dx6,_0x260dx7)})};exports[_0xb58b[33]]=function(_0x260dx5,_0x260dx6){if(_0x260dx5[_0xb58b[32]][_0xb58b[29]]){delete _0x260dx5[_0xb58b[32]][_0xb58b[29]]};Settings[_0xb58b[36]]({where:{id:_0x260dx5[_0xb58b[30]][_0xb58b[29]]}})[_0xb58b[10]](function(_0x260dxf){if(!_0x260dxf){return _0x260dx6[_0xb58b[28]](404)};var _0x260dx10=_[_0xb58b[34]](_0x260dxf,_0x260dx5[_0xb58b[32]]);_0x260dx10[_0xb58b[35]]()[_0xb58b[10]](function(){return _0x260dx6[_0xb58b[9]](200)[_0xb58b[8]](_0x260dxf)})[_0xb58b[7]](function(_0x260dx7){return handleError(_0x260dx6,_0x260dx7)})})[_0xb58b[7]](function(_0x260dx7){return handleError(_0x260dx6,_0x260dx7)})};exports[_0xb58b[37]]=function(_0x260dx5,_0x260dx6){Settings[_0xb58b[36]]({where:{id:_0x260dx5[_0xb58b[30]][_0xb58b[29]]}})[_0xb58b[10]](function(_0x260dxf){if(!_0x260dxf){return _0x260dx6[_0xb58b[28]](404)};_0x260dxf[_0xb58b[37]]()[_0xb58b[10]](function(){return _0x260dx6[_0xb58b[28]](204)})[_0xb58b[7]](function(_0x260dx7){return handleError(_0x260dx6,_0x260dx7)})})[_0xb58b[7]](function(_0x260dx7){return handleError(_0x260dx6,_0x260dx7)})};function handleError(_0x260dx6,_0x260dx7){return _0x260dx6[_0xb58b[9]](500)[_0xb58b[8]](_0x260dx7)}
\ No newline at end of file
index 611827e..154d2f4 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Settings = require('../../models').Settings;
-
-exports.register = function(socket) {
-  Settings.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Settings.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('setting:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('setting:remove', doc);
-}
+var _0x3014=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x65\x74\x74\x69\x6E\x67\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x65\x74\x74\x69\x6E\x67\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3014[0];var Settings=require(_0x3014[2])[_0x3014[1]];exports[_0x3014[3]]=function(_0x4826x2){Settings[_0x3014[4]](function(_0x4826x3){onSave(_0x4826x2,_0x4826x3)});Settings[_0x3014[5]](function(_0x4826x3){onRemove(_0x4826x2,_0x4826x3)})};function onSave(_0x4826x2,_0x4826x3,_0x4826x5){_0x4826x2[_0x3014[7]](_0x3014[6],_0x4826x3)}function onRemove(_0x4826x2,_0x4826x3,_0x4826x5){_0x4826x2[_0x3014[7]](_0x3014[8],_0x4826x3)}
\ No newline at end of file
index 4ade980..32efb18 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./sound.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/download', auth.isAuthenticated(), controller.download);
-router.get('/:id/stream', auth.isAuthenticated(), controller.stream);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x8c60=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x73\x6F\x75\x6E\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2F\x3A\x69\x64\x2F\x73\x74\x72\x65\x61\x6D","\x73\x74\x72\x65\x61\x6D","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8c60[0];var express=require(_0x8c60[1]);var controller=require(_0x8c60[2]);var auth=require(_0x8c60[3]);var router=express.Router();router[_0x8c60[7]](_0x8c60[4],auth[_0x8c60[5]](),controller[_0x8c60[6]]);router[_0x8c60[7]](_0x8c60[8],auth[_0x8c60[5]](),controller[_0x8c60[9]]);router[_0x8c60[7]](_0x8c60[10],auth[_0x8c60[5]](),controller[_0x8c60[11]]);router[_0x8c60[7]](_0x8c60[12],auth[_0x8c60[5]](),controller[_0x8c60[13]]);router[_0x8c60[15]](_0x8c60[4],auth[_0x8c60[5]](),controller[_0x8c60[14]]);router[_0x8c60[17]](_0x8c60[8],auth[_0x8c60[5]](),controller[_0x8c60[16]]);router[_0x8c60[18]](_0x8c60[8],auth[_0x8c60[5]](),controller[_0x8c60[16]]);router[_0x8c60[20]](_0x8c60[8],auth[_0x8c60[5]](),controller[_0x8c60[19]]);module[_0x8c60[21]]=router
\ No newline at end of file
index 335d2c9..8c0082b 100644 (file)
@@ -1,266 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Sound = require('../../models').Sound;
-var uploadFile = require('upload-file');
-var sr = require('simple-random');
-var sox = require('sox');
-var path = require('path');
-var config = require('../../config/environment');
-var fs = require('fs');
-var sequelize = require('../../models').sequelize;
-var base64 = require('file-base64');
-var Promise = require('bluebird');
-
-// Get list of Sounds
-exports.index = function(req, res) {
-  Sound
-    .findAndCountAll()
-    .then(function(Sounds) {
-      return res.status(200).send(Sounds);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single Sound
-exports.show = function(req, res) {
-  Sound
-    .findById(req.params.id)
-    .then(function(Sound) {
-      if (!Sound) {
-        return res.sendStatus(404);
-      }
-      return res.send(Sound);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new Sound in the DB.
-exports.create = function(req, res) {
-  var upload = new uploadFile({
-    dest: path.join(config.originalSounds),
-    maxFileSize: 15 * 1000000,
-    maxNumberOfFiles: 10,
-    minNumberOfFiles: 0,
-    acceptFileTypes: /(\.|\/)(wav|mp3|gsm|ogg)$/i,
-    rename: function(name, file) {
-      return sr() + path.extname(file.filename);
-    },
-    messages: {
-      maxNumberOfFiles: "Max number of files upload exceeded",
-      acceptFileTypes: "Only wav,mp3,gsm, and ogg format accepted",
-      maxFileSize: "The maximum file size is 15 Mb",
-      invalidRequest: "Invalid request"
-    }
-  });
-
-  upload.on('end', function(fields, files) {
-    if (!files.file.filename) {
-      return res.status(500).send(upload);
-    }
-
-    var job_details = {};
-    var original_format = path.extname(files.file.filename);
-    job_details.description = "";
-    job_details.original_format = path.extname(files.file.filename).substring(1);
-    job_details.converted_format = 'wav';
-    job_details.name = job_details.display_name = path.basename(files.file.path, original_format);
-    job_details.save_name = path.basename(files.file.filename, original_format);
-
-
-
-    var filepath = path.join(config.originalSounds, job_details.save_name + original_format);
-    var destination = path.join(config.convertedSounds, job_details.save_name + '.' + job_details.converted_format);
-    //
-
-    fs.chmodSync(filepath, parseInt('0777', 8));
-    sox.identify(filepath, function(err, result) {
-      // console.log('************** Result: ', result);
-    });
-
-    var job = sox.transcode(filepath, destination, {
-      sampleRate: 8000,
-      format: 'wav',
-      channelCount: 1,
-      bitRate: 192 * 1024,
-      compressionQuality: 5,
-    });
-
-
-
-    job.on('error', function(err) {
-      console.error('********** Conversion Error: ', err);
-      fs.unlink(filepath, function(err) {
-        if (err)
-          return handleError(res, err);
-      });
-      return handleError(res, err);
-    });
-
-    job.on('progress', function(amountDone, amountTotal) {
-      // console.log("*********** Progress", amountDone, amountTotal);
-    });
-
-    job.on('src', function(info) {
-      // console.log('********** src: ', info);
-      /* info looks like:
-      {
-        format: 'wav',
-        duration: 1.5,
-        sampleCount: 66150,
-        channelCount: 1,
-        bitRate: 722944,
-        sampleRate: 44100,
-      }
-      */
-      job_details.original_duration = isNaN(info.duration) ? null : info.duration * 1000;
-      job_details.original_sampleCount = isNaN(info.sampleCount) ? null : info.sampleCount;
-      job_details.original_channelCount = isNaN(info.channelCount) ? null : info.channelCount;
-      job_details.original_bitRate = isNaN(info.bitRate) ? null : info.bitRate;
-      job_details.original_sampleRate = isNaN(info.sampleRate) ? null : info.sampleRate;
-    });
-
-    job.on('dest', function(info) {
-      // console.log('********** dest: ', info);
-      /* info looks like:
-      {
-        sampleRate: 44100,
-        format: 'mp3',
-        channelCount: 2,
-        sampleCount: 67958,
-        duration: 1.540998,
-        bitRate: 196608,
-      }
-      */
-      job_details.converted_duration = isNaN(info.duration) ? null : info.duration * 1000;
-      job_details.converted_sampleCount = isNaN(info.sampleCount) ? null : info.sampleCount;
-      job_details.converted_channelCount = isNaN(info.channelCount) ? null : info.channelCount;
-      job_details.converted_bitRate = isNaN(info.bitRate) ? null : info.bitRate;
-      job_details.converted_sampleRate = isNaN(info.sampleRate) ? null : info.sampleRate;
-    });
-
-    job.on('end', function() {
-      console.log("Conversion completed");
-      fs.chmodSync(destination, parseInt('0777', 8));
-      Sound
-        .create(job_details)
-        .then(function(sound) {
-          return res.status(201).send(sound);
-        })
-        .catch(function(err) {
-          console.log(err);
-          return handleError(res, err);
-        });
-    });
-
-    job.start();
-
-  });
-
-  upload.on('error', function(err) {
-    console.log('********** Upload error :', err)
-    return handleError(res, err);
-  });
-
-  upload.parse(req);
-};
-
-// Updates an existing upload in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  Sound
-    .findById(req.params.id)
-    .then(function(sound) {
-      if (!sound) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(sound, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(sound);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a Sound from the DB.
-exports.destroy = function(req, res) {
-  Sound
-    .findById(req.params.id)
-    .then(function(sound) {
-      if (!sound) {
-        return res.status(404).send(sound);
-      }
-      var original_filepath = path.join(config.originalSounds, sound.save_name + '.' + sound.original_format);
-      var converted_filepath = path.join(config.convertedSounds, sound.save_name + '.' + sound.converted_format);
-      return sequelize.transaction(function(t) {
-          return sound.destroy({
-              transaction: t
-            })
-            .then(function() {
-              fs.unlink(original_filepath, function(err) {
-                if (err)
-                  return handleError(res, err);
-              });
-              fs.unlink(converted_filepath, function(err) {
-                if (err)
-                  return handleError(res, err);
-              });
-              return res.status(200).send(sound);
-            })
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-//Download an uploaded file
-exports.download = function(req, res) {
-  getStream(req, res, 'original');
-};
-
-//Stream an uploaded file
-exports.stream = function(req, res) {
-  getStream(req, res, 'converted');
-}
-
-
-function getStream(req, res, value) {
-  return Sound
-    .findById(req.params.id)
-    .then(function(sound) {
-      var readFile = Promise.promisify(fs.readFile);
-      return readFile(path.join(config[value + 'Sounds'], sound.save_name + '.' + sound[value + '_format']));
-    })
-    .then(function(result) {
-      var base64String = new Buffer(result, 'binary').toString('base64');
-      return base64String;
-    })
-    .then(function(base64String) {
-      return res.status(200).send({
-        downloadString: base64String
-      });
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-}
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x5f95=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x53\x6F\x75\x6E\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x70\x6C\x6F\x61\x64\x2D\x66\x69\x6C\x65","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x73\x6F\x78","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x66\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6C\x65\x2D\x62\x61\x73\x65\x36\x34","\x62\x6C\x75\x65\x62\x69\x72\x64","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x53\x6F\x75\x6E\x64\x73","\x6A\x6F\x69\x6E","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x4D\x61\x78\x20\x6E\x75\x6D\x62\x65\x72\x20\x6F\x66\x20\x66\x69\x6C\x65\x73\x20\x75\x70\x6C\x6F\x61\x64\x20\x65\x78\x63\x65\x65\x64\x65\x64","\x4F\x6E\x6C\x79\x20\x77\x61\x76\x2C\x6D\x70\x33\x2C\x67\x73\x6D\x2C\x20\x61\x6E\x64\x20\x6F\x67\x67\x20\x66\x6F\x72\x6D\x61\x74\x20\x61\x63\x63\x65\x70\x74\x65\x64","\x54\x68\x65\x20\x6D\x61\x78\x69\x6D\x75\x6D\x20\x66\x69\x6C\x65\x20\x73\x69\x7A\x65\x20\x69\x73\x20\x31\x35\x20\x4D\x62","\x49\x6E\x76\x61\x6C\x69\x64\x20\x72\x65\x71\x75\x65\x73\x74","\x65\x6E\x64","\x66\x69\x6C\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x66\x6F\x72\x6D\x61\x74","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x66\x6F\x72\x6D\x61\x74","\x77\x61\x76","\x6E\x61\x6D\x65","\x64\x69\x73\x70\x6C\x61\x79\x5F\x6E\x61\x6D\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x53\x6F\x75\x6E\x64\x73","\x2E","\x30\x37\x37\x37","\x63\x68\x6D\x6F\x64\x53\x79\x6E\x63","\x69\x64\x65\x6E\x74\x69\x66\x79","\x74\x72\x61\x6E\x73\x63\x6F\x64\x65","\x65\x72\x72\x6F\x72","\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x20\x43\x6F\x6E\x76\x65\x72\x73\x69\x6F\x6E\x20\x45\x72\x72\x6F\x72\x3A\x20","\x75\x6E\x6C\x69\x6E\x6B","\x6F\x6E","\x70\x72\x6F\x67\x72\x65\x73\x73","\x73\x72\x63","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x64\x75\x72\x61\x74\x69\x6F\x6E","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x62\x69\x74\x52\x61\x74\x65","\x62\x69\x74\x52\x61\x74\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x64\x65\x73\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x64\x75\x72\x61\x74\x69\x6F\x6E","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x62\x69\x74\x52\x61\x74\x65","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x43\x6F\x6E\x76\x65\x72\x73\x69\x6F\x6E\x20\x63\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x6C\x6F\x67","\x73\x74\x61\x72\x74","\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x20\x55\x70\x6C\x6F\x61\x64\x20\x65\x72\x72\x6F\x72\x20\x3A","\x70\x61\x72\x73\x65","\x75\x70\x64\x61\x74\x65","\x62\x6F\x64\x79","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x6F\x72\x69\x67\x69\x6E\x61\x6C","\x73\x74\x72\x65\x61\x6D","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x62\x61\x73\x65\x36\x34","\x62\x69\x6E\x61\x72\x79","\x72\x65\x61\x64\x46\x69\x6C\x65","\x70\x72\x6F\x6D\x69\x73\x69\x66\x79","\x53\x6F\x75\x6E\x64\x73","\x5F\x66\x6F\x72\x6D\x61\x74"];_0x5f95[0];var _=require(_0x5f95[1]);var Sound=require(_0x5f95[3])[_0x5f95[2]];var uploadFile=require(_0x5f95[4]);var sr=require(_0x5f95[5]);var sox=require(_0x5f95[6]);var path=require(_0x5f95[7]);var config=require(_0x5f95[8]);var fs=require(_0x5f95[9]);var sequelize=require(_0x5f95[3])[_0x5f95[10]];var base64=require(_0x5f95[11]);var Promise=require(_0x5f95[12]);exports[_0x5f95[13]]=function(_0xd2dexc,_0xd2dexd){Sound[_0x5f95[18]]()[_0x5f95[17]](function(_0xd2dexf){return _0xd2dexd[_0x5f95[16]](200)[_0x5f95[15]](_0xd2dexf)})[_0x5f95[14]](function(_0xd2dexe){return handleError(_0xd2dexd,_0xd2dexe)})};exports[_0x5f95[19]]=function(_0xd2dexc,_0xd2dexd){Sound[_0x5f95[23]](_0xd2dexc[_0x5f95[22]][_0x5f95[21]])[_0x5f95[17]](function(Sound){if(!Sound){return _0xd2dexd[_0x5f95[20]](404)};return _0xd2dexd[_0x5f95[15]](Sound)})[_0x5f95[14]](function(_0xd2dexe){return handleError(_0xd2dexd,_0xd2dexe)})};exports[_0x5f95[24]]=function(_0xd2dexc,_0xd2dexd){var _0xd2dex10= new uploadFile({dest:path[_0x5f95[26]](config[_0x5f95[25]]),maxFileSize:15*1000000,maxNumberOfFiles:10,minNumberOfFiles:0,acceptFileTypes:/(\.|\/)(wav|mp3|gsm|ogg)$/i,rename:function(_0xd2dex11,_0xd2dex12){return sr()+path[_0x5f95[28]](_0xd2dex12[_0x5f95[27]])},messages:{maxNumberOfFiles:_0x5f95[29],acceptFileTypes:_0x5f95[30],maxFileSize:_0x5f95[31],invalidRequest:_0x5f95[32]}});_0xd2dex10[_0x5f95[54]](_0x5f95[33],function(_0xd2dex13,_0xd2dex14){if(!_0xd2dex14[_0x5f95[34]][_0x5f95[27]]){return _0xd2dexd[_0x5f95[16]](500)[_0x5f95[15]](_0xd2dex10)};var _0xd2dex15={};var _0xd2dex16=path[_0x5f95[28]](_0xd2dex14[_0x5f95[34]][_0x5f95[27]]);_0xd2dex15[_0x5f95[35]]=_0x5f95[36];_0xd2dex15[_0x5f95[37]]=path[_0x5f95[28]](_0xd2dex14[_0x5f95[34]][_0x5f95[27]])[_0x5f95[38]](1);_0xd2dex15[_0x5f95[39]]=_0x5f95[40];_0xd2dex15[_0x5f95[41]]=_0xd2dex15[_0x5f95[42]]=path[_0x5f95[43]](_0xd2dex14[_0x5f95[34]][_0x5f95[7]],_0xd2dex16);_0xd2dex15[_0x5f95[44]]=path[_0x5f95[43]](_0xd2dex14[_0x5f95[34]][_0x5f95[27]],_0xd2dex16);var _0xd2dex17=path[_0x5f95[26]](config[_0x5f95[25]],_0xd2dex15[_0x5f95[44]]+_0xd2dex16);var _0xd2dex18=path[_0x5f95[26]](config[_0x5f95[45]],_0xd2dex15[_0x5f95[44]]+_0x5f95[46]+_0xd2dex15[_0x5f95[39]]);fs[_0x5f95[48]](_0xd2dex17,parseInt(_0x5f95[47],8));sox[_0x5f95[49]](_0xd2dex17,function(_0xd2dexe,_0xd2dex19){});var _0xd2dex1a=sox[_0x5f95[50]](_0xd2dex17,_0xd2dex18,{sampleRate:8000,format:_0x5f95[40],channelCount:1,bitRate:192*1024,compressionQuality:5});_0xd2dex1a[_0x5f95[54]](_0x5f95[51],function(_0xd2dexe){console[_0x5f95[51]](_0x5f95[52],_0xd2dexe);fs[_0x5f95[53]](_0xd2dex17,function(_0xd2dexe){if(_0xd2dexe){return handleError(_0xd2dexd,_0xd2dexe)}});return handleError(_0xd2dexd,_0xd2dexe)});_0xd2dex1a[_0x5f95[54]](_0x5f95[55],function(_0xd2dex1b,_0xd2dex1c){});_0xd2dex1a[_0x5f95[54]](_0x5f95[56],function(_0xd2dex1d){_0xd2dex15[_0x5f95[57]]=isNaN(_0xd2dex1d[_0x5f95[58]])?null:_0xd2dex1d[_0x5f95[58]]*1000;_0xd2dex15[_0x5f95[59]]=isNaN(_0xd2dex1d[_0x5f95[60]])?null:_0xd2dex1d[_0x5f95[60]];_0xd2dex15[_0x5f95[61]]=isNaN(_0xd2dex1d[_0x5f95[62]])?null:_0xd2dex1d[_0x5f95[62]];_0xd2dex15[_0x5f95[63]]=isNaN(_0xd2dex1d[_0x5f95[64]])?null:_0xd2dex1d[_0x5f95[64]];_0xd2dex15[_0x5f95[65]]=isNaN(_0xd2dex1d[_0x5f95[66]])?null:_0xd2dex1d[_0x5f95[66]]});_0xd2dex1a[_0x5f95[54]](_0x5f95[67],function(_0xd2dex1d){_0xd2dex15[_0x5f95[68]]=isNaN(_0xd2dex1d[_0x5f95[58]])?null:_0xd2dex1d[_0x5f95[58]]*1000;_0xd2dex15[_0x5f95[69]]=isNaN(_0xd2dex1d[_0x5f95[60]])?null:_0xd2dex1d[_0x5f95[60]];_0xd2dex15[_0x5f95[70]]=isNaN(_0xd2dex1d[_0x5f95[62]])?null:_0xd2dex1d[_0x5f95[62]];_0xd2dex15[_0x5f95[71]]=isNaN(_0xd2dex1d[_0x5f95[64]])?null:_0xd2dex1d[_0x5f95[64]];_0xd2dex15[_0x5f95[72]]=isNaN(_0xd2dex1d[_0x5f95[66]])?null:_0xd2dex1d[_0x5f95[66]]});_0xd2dex1a[_0x5f95[54]](_0x5f95[33],function(){console[_0x5f95[74]](_0x5f95[73]);fs[_0x5f95[48]](_0xd2dex18,parseInt(_0x5f95[47],8));Sound[_0x5f95[24]](_0xd2dex15)[_0x5f95[17]](function(_0xd2dex1e){return _0xd2dexd[_0x5f95[16]](201)[_0x5f95[15]](_0xd2dex1e)})[_0x5f95[14]](function(_0xd2dexe){console[_0x5f95[74]](_0xd2dexe);return handleError(_0xd2dexd,_0xd2dexe)})});_0xd2dex1a[_0x5f95[75]]()});_0xd2dex10[_0x5f95[54]](_0x5f95[51],function(_0xd2dexe){console[_0x5f95[74]](_0x5f95[76],_0xd2dexe);return handleError(_0xd2dexd,_0xd2dexe)});_0xd2dex10[_0x5f95[77]](_0xd2dexc)};exports[_0x5f95[78]]=function(_0xd2dexc,_0xd2dexd){if(_0xd2dexc[_0x5f95[79]][_0x5f95[21]]){delete _0xd2dexc[_0x5f95[79]][_0x5f95[21]]};Sound[_0x5f95[23]](_0xd2dexc[_0x5f95[22]][_0x5f95[21]])[_0x5f95[17]](function(_0xd2dex1e){if(!_0xd2dex1e){return _0xd2dexd[_0x5f95[20]](404)};var _0xd2dex1f=_[_0x5f95[80]](_0xd2dex1e,_0xd2dexc[_0x5f95[79]]);_0xd2dex1f[_0x5f95[81]]()[_0x5f95[17]](function(){return _0xd2dexd[_0x5f95[16]](200)[_0x5f95[15]](_0xd2dex1e)})[_0x5f95[14]](function(_0xd2dexe){return handleError(_0xd2dexd,_0xd2dexe)})})[_0x5f95[14]](function(_0xd2dexe){return handleError(_0xd2dexd,_0xd2dexe)})};exports[_0x5f95[82]]=function(_0xd2dexc,_0xd2dexd){Sound[_0x5f95[23]](_0xd2dexc[_0x5f95[22]][_0x5f95[21]])[_0x5f95[17]](function(_0xd2dex1e){if(!_0xd2dex1e){return _0xd2dexd[_0x5f95[16]](404)[_0x5f95[15]](_0xd2dex1e)};var _0xd2dex20=path[_0x5f95[26]](config[_0x5f95[25]],_0xd2dex1e[_0x5f95[44]]+_0x5f95[46]+_0xd2dex1e[_0x5f95[37]]);var _0xd2dex21=path[_0x5f95[26]](config[_0x5f95[45]],_0xd2dex1e[_0x5f95[44]]+_0x5f95[46]+_0xd2dex1e[_0x5f95[39]]);return sequelize[_0x5f95[83]](function(_0xd2dex22){return _0xd2dex1e[_0x5f95[82]]({transaction:_0xd2dex22})[_0x5f95[17]](function(){fs[_0x5f95[53]](_0xd2dex20,function(_0xd2dexe){if(_0xd2dexe){return handleError(_0xd2dexd,_0xd2dexe)}});fs[_0x5f95[53]](_0xd2dex21,function(_0xd2dexe){if(_0xd2dexe){return handleError(_0xd2dexd,_0xd2dexe)}});return _0xd2dexd[_0x5f95[16]](200)[_0x5f95[15]](_0xd2dex1e)})})[_0x5f95[14]](function(_0xd2dexe){return handleError(_0xd2dexd,_0xd2dexe)})})[_0x5f95[14]](function(_0xd2dexe){return handleError(_0xd2dexd,_0xd2dexe)})};exports[_0x5f95[84]]=function(_0xd2dexc,_0xd2dexd){getStream(_0xd2dexc,_0xd2dexd,_0x5f95[85])};exports[_0x5f95[86]]=function(_0xd2dexc,_0xd2dexd){getStream(_0xd2dexc,_0xd2dexd,_0x5f95[87])};function getStream(_0xd2dexc,_0xd2dexd,_0xd2dex24){return Sound[_0x5f95[23]](_0xd2dexc[_0x5f95[22]][_0x5f95[21]])[_0x5f95[17]](function(_0xd2dex1e){var _0xd2dex26=Promise[_0x5f95[91]](fs[_0x5f95[90]]);return _0xd2dex26(path[_0x5f95[26]](config[_0xd2dex24+_0x5f95[92]],_0xd2dex1e[_0x5f95[44]]+_0x5f95[46]+_0xd2dex1e[_0xd2dex24+_0x5f95[93]]))})[_0x5f95[17]](function(_0xd2dex19){var _0xd2dex25= new Buffer(_0xd2dex19,_0x5f95[89]).toString(_0x5f95[88]);return _0xd2dex25})[_0x5f95[17]](function(_0xd2dex25){return _0xd2dexd[_0x5f95[16]](200)[_0x5f95[15]]({downloadString:_0xd2dex25})})[_0x5f95[14]](function(_0xd2dexe){console[_0x5f95[74]](_0xd2dexe);return handleError(_0xd2dexd,_0xd2dexe)})}function handleError(_0xd2dexd,_0xd2dexe){return _0xd2dexd[_0x5f95[16]](500)[_0x5f95[15]](_0xd2dexe)}
\ No newline at end of file
index cef5b4b..e0e0bbb 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Sound = require('../../models').Sound;
-
-exports.register = function(socket) {
-  Sound.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Sound.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('sound:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('sound:remove', doc);
-}
+var _0xf372=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x6F\x75\x6E\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x6F\x75\x6E\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x6F\x75\x6E\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0xf372[0];var Sound=require(_0xf372[2])[_0xf372[1]];exports[_0xf372[3]]=function(_0xdd57x2){Sound[_0xf372[4]](function(_0xdd57x3){onSave(_0xdd57x2,_0xdd57x3)});Sound[_0xf372[5]](function(_0xdd57x3){onRemove(_0xdd57x2,_0xdd57x3)})};function onSave(_0xdd57x2,_0xdd57x3,_0xdd57x5){_0xdd57x2[_0xf372[7]](_0xf372[6],_0xdd57x3)}function onRemove(_0xdd57x2,_0xdd57x3,_0xdd57x5){_0xdd57x2[_0xf372[7]](_0xf372[8],_0xdd57x3)}
\ No newline at end of file
index 970195e..568186b 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/sounds', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/sounds')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0x1464=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x73","\x67\x65\x74"];_0x1464[0];var should=require(_0x1464[1]);var app=require(_0x1464[2]);var request=require(_0x1464[3]);describe(_0x1464[4],function(){it(_0x1464[5],function(_0x1995x4){request(app)[_0x1464[13]](_0x1464[12])[_0x1464[11]](200)[_0x1464[11]](_0x1464[10],/json/)[_0x1464[9]](function(_0x1995x5,_0x1995x6){if(_0x1995x5){return _0x1995x4(_0x1995x5)};_0x1995x6[_0x1464[8]][_0x1464[1]][_0x1464[7]][_0x1464[6]](Array);_0x1995x4()})})})
\ No newline at end of file
index 5f8a51e..c619ca2 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./square_odbc.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id/check', auth.isAuthenticated(), controller.checkConnection);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xbeaa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64\x2F\x63\x68\x65\x63\x6B","\x63\x68\x65\x63\x6B\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xbeaa[0];var express=require(_0xbeaa[1]);var controller=require(_0xbeaa[2]);var auth=require(_0xbeaa[3]);var router=express.Router();router[_0xbeaa[7]](_0xbeaa[4],auth[_0xbeaa[5]](),controller[_0xbeaa[6]]);router[_0xbeaa[7]](_0xbeaa[8],auth[_0xbeaa[5]](),controller[_0xbeaa[9]]);router[_0xbeaa[7]](_0xbeaa[10],auth[_0xbeaa[5]](),controller[_0xbeaa[11]]);router[_0xbeaa[13]](_0xbeaa[4],auth[_0xbeaa[5]](),controller[_0xbeaa[12]]);router[_0xbeaa[15]](_0xbeaa[10],auth[_0xbeaa[5]](),controller[_0xbeaa[14]]);router[_0xbeaa[16]](_0xbeaa[10],auth[_0xbeaa[5]](),controller[_0xbeaa[14]]);router[_0xbeaa[18]](_0xbeaa[4],auth[_0xbeaa[5]](),controller[_0xbeaa[17]]);router[_0xbeaa[18]](_0xbeaa[10],auth[_0xbeaa[5]](),controller[_0xbeaa[19]]);module[_0xbeaa[20]]=router
\ No newline at end of file
index 69af149..a4c3cf8 100644 (file)
@@ -1,135 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var db = require("odbc")();
-
-var SquareOdbc = require('../../models').SquareOdbc;
-var Util = require('../../config/util');
-
-// Get list of square_odbcs
-exports.index = function(req, res) {
-  return SquareOdbc
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single square_odbc
-exports.show = function(req, res) {
-  return SquareOdbc
-    .findById(req.params.id)
-    .then(function(square_odbc) {
-      if (!square_odbc) {
-        return res.sendStatus(404);
-      }
-      return res.send(square_odbc);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new square_odbc in the DB.
-exports.create = function(req, res) {
-  return SquareOdbc
-    .create(req.body)
-    .then(function(square_odbc) {
-      return res.status(201).send(square_odbc);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing square_odbc in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return SquareOdbc
-    .findById(req.params.id)
-    .then(function(square_odbc) {
-      if (!square_odbc) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(square_odbc, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(square_odbc);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a square_odbc from the DB.
-exports.destroy = function(req, res) {
-  return SquareOdbc
-    .findById(req.params.id)
-    .then(function(odbc) {
-      if (!odbc) {
-        return res.sendStatus(404);
-      }
-      return odbc
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a square_project from the DB.
-exports.bulkDestroy = function(req, res) {
-  return SquareOdbc
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.checkConnection = function(req, res) {
-  return SquareOdbc
-    .findById(req.params.id)
-    .then(function(square_odbc) {
-      if (!square_odbc) {
-        return res.sendStatus(404);
-      }
-      db.open(square_odbc.dsn, function(err) {
-        if (err) {
-          return handleError(res, err);
-        }
-        db.close(function(err) {
-          if (err) {
-            return handleError(res, err);
-          }
-          return res.sendStatus(200);
-        })
-      })
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x6f34=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6F\x64\x62\x63","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x63\x68\x65\x63\x6B\x43\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x64\x73\x6E","\x63\x6C\x6F\x73\x65","\x6F\x70\x65\x6E"];_0x6f34[0];var _=require(_0x6f34[1]);var db=require(_0x6f34[2])();var SquareOdbc=require(_0x6f34[4])[_0x6f34[3]];var Util=require(_0x6f34[5]);exports[_0x6f34[6]]=function(_0x5eb7x5,_0x5eb7x6){return SquareOdbc[_0x6f34[13]](Util[_0x6f34[12]](_0x5eb7x5[_0x6f34[11]]))[_0x6f34[10]](function(_0x5eb7x8){_0x5eb7x6[_0x6f34[9]](200)[_0x6f34[8]](_0x5eb7x8)})[_0x6f34[7]](function(_0x5eb7x7){return handleError(_0x5eb7x6,_0x5eb7x7)})};exports[_0x6f34[14]]=function(_0x5eb7x5,_0x5eb7x6){return SquareOdbc[_0x6f34[18]](_0x5eb7x5[_0x6f34[17]][_0x6f34[16]])[_0x6f34[10]](function(_0x5eb7x9){if(!_0x5eb7x9){return _0x5eb7x6[_0x6f34[15]](404)};return _0x5eb7x6[_0x6f34[8]](_0x5eb7x9)})[_0x6f34[7]](function(_0x5eb7x7){return handleError(_0x5eb7x6,_0x5eb7x7)})};exports[_0x6f34[19]]=function(_0x5eb7x5,_0x5eb7x6){return SquareOdbc[_0x6f34[19]](_0x5eb7x5[_0x6f34[20]])[_0x6f34[10]](function(_0x5eb7x9){return _0x5eb7x6[_0x6f34[9]](201)[_0x6f34[8]](_0x5eb7x9)})[_0x6f34[7]](function(_0x5eb7x7){return handleError(_0x5eb7x6,_0x5eb7x7)})};exports[_0x6f34[21]]=function(_0x5eb7x5,_0x5eb7x6){if(_0x5eb7x5[_0x6f34[20]][_0x6f34[16]]){delete _0x5eb7x5[_0x6f34[20]][_0x6f34[16]]};return SquareOdbc[_0x6f34[18]](_0x5eb7x5[_0x6f34[17]][_0x6f34[16]])[_0x6f34[10]](function(_0x5eb7x9){if(!_0x5eb7x9){return _0x5eb7x6[_0x6f34[15]](404)};var _0x5eb7xa=_[_0x6f34[22]](_0x5eb7x9,_0x5eb7x5[_0x6f34[20]]);_0x5eb7xa[_0x6f34[23]]()[_0x6f34[10]](function(){return _0x5eb7x6[_0x6f34[9]](200)[_0x6f34[8]](_0x5eb7x9)})[_0x6f34[7]](function(_0x5eb7x7){return handleError(_0x5eb7x6,_0x5eb7x7)})})[_0x6f34[7]](function(_0x5eb7x7){return handleError(_0x5eb7x6,_0x5eb7x7)})};exports[_0x6f34[24]]=function(_0x5eb7x5,_0x5eb7x6){return SquareOdbc[_0x6f34[18]](_0x5eb7x5[_0x6f34[17]][_0x6f34[16]])[_0x6f34[10]](function(_0x5eb7xb){if(!_0x5eb7xb){return _0x5eb7x6[_0x6f34[15]](404)};return _0x5eb7xb[_0x6f34[24]]()})[_0x6f34[10]](function(){return _0x5eb7x6[_0x6f34[15]](204)})[_0x6f34[7]](function(_0x5eb7x7){return handleError(_0x5eb7x6,_0x5eb7x7)})};exports[_0x6f34[25]]=function(_0x5eb7x5,_0x5eb7x6){return SquareOdbc[_0x6f34[24]]({where:{id:_0x5eb7x5[_0x6f34[11]][_0x6f34[26]]},individualHooks:true})[_0x6f34[10]](function(){return _0x5eb7x6[_0x6f34[15]](204)})[_0x6f34[7]](function(_0x5eb7x7){return handleError(_0x5eb7x6,_0x5eb7x7)})};exports[_0x6f34[27]]=function(_0x5eb7x5,_0x5eb7x6){return SquareOdbc[_0x6f34[18]](_0x5eb7x5[_0x6f34[17]][_0x6f34[16]])[_0x6f34[10]](function(_0x5eb7x9){if(!_0x5eb7x9){return _0x5eb7x6[_0x6f34[15]](404)};db[_0x6f34[30]](_0x5eb7x9[_0x6f34[28]],function(_0x5eb7x7){if(_0x5eb7x7){return handleError(_0x5eb7x6,_0x5eb7x7)};db[_0x6f34[29]](function(_0x5eb7x7){if(_0x5eb7x7){return handleError(_0x5eb7x6,_0x5eb7x7)};return _0x5eb7x6[_0x6f34[15]](200)})})})[_0x6f34[7]](function(_0x5eb7x7){return handleError(_0x5eb7x6,_0x5eb7x7)})};function handleError(_0x5eb7x6,_0x5eb7x7){return _0x5eb7x6[_0x6f34[9]](500)[_0x6f34[8]](_0x5eb7x7)}
\ No newline at end of file
index af0c04a..b210c3a 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var SquareOdbc = require('../../models').SquareOdbc;
-
-exports.register = function(socket) {
-  SquareOdbc.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  SquareOdbc.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('square_odbc:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('square_odbc:remove', doc);
-}
+var _0xb680=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63\x3A\x72\x65\x6D\x6F\x76\x65"];_0xb680[0];var SquareOdbc=require(_0xb680[2])[_0xb680[1]];exports[_0xb680[3]]=function(_0x7255x2){SquareOdbc[_0xb680[4]](function(_0x7255x3){onSave(_0x7255x2,_0x7255x3)});SquareOdbc[_0xb680[5]](function(_0x7255x3){onRemove(_0x7255x2,_0x7255x3)})};function onSave(_0x7255x2,_0x7255x3,_0x7255x5){_0x7255x2[_0xb680[7]](_0xb680[6],_0x7255x3)}function onRemove(_0x7255x2,_0x7255x3,_0x7255x5){_0x7255x2[_0xb680[7]](_0xb680[8],_0x7255x3)}
\ No newline at end of file
index ce9350c..5f9e25a 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/square/odbc', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/square/odbc')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0xf190=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x67\x65\x74"];_0xf190[0];var should=require(_0xf190[1]);var app=require(_0xf190[2]);var request=require(_0xf190[3]);describe(_0xf190[4],function(){it(_0xf190[5],function(_0x3a27x4){request(app)[_0xf190[13]](_0xf190[12])[_0xf190[11]](200)[_0xf190[11]](_0xf190[10],/json/)[_0xf190[9]](function(_0x3a27x5,_0x3a27x6){if(_0x3a27x5){return _0x3a27x4(_0x3a27x5)};_0x3a27x6[_0xf190[8]][_0xf190[1]][_0xf190[7]][_0xf190[6]](Array);_0x3a27x4()})})})
\ No newline at end of file
index 614ce23..e432a02 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./square_project.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/download', controller.download);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xc2f8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xc2f8[0];var express=require(_0xc2f8[1]);var controller=require(_0xc2f8[2]);var auth=require(_0xc2f8[3]);var router=express.Router();router[_0xc2f8[7]](_0xc2f8[4],auth[_0xc2f8[5]](),controller[_0xc2f8[6]]);router[_0xc2f8[7]](_0xc2f8[8],auth[_0xc2f8[5]](),controller[_0xc2f8[9]]);router[_0xc2f8[7]](_0xc2f8[10],controller[_0xc2f8[11]]);router[_0xc2f8[13]](_0xc2f8[4],auth[_0xc2f8[5]](),controller[_0xc2f8[12]]);router[_0xc2f8[15]](_0xc2f8[8],auth[_0xc2f8[5]](),controller[_0xc2f8[14]]);router[_0xc2f8[16]](_0xc2f8[8],auth[_0xc2f8[5]](),controller[_0xc2f8[14]]);router[_0xc2f8[18]](_0xc2f8[4],auth[_0xc2f8[5]](),controller[_0xc2f8[17]]);router[_0xc2f8[18]](_0xc2f8[8],auth[_0xc2f8[5]](),controller[_0xc2f8[19]]);module[_0xc2f8[20]]=router
\ No newline at end of file
index 3531326..678f1b9 100644 (file)
@@ -1,132 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var path = require('path');
-var config = require('../../config/environment');
-var Util = require('../../config/util');
-
-var SquareProject = require('../../models').SquareProject;
-
-// Get list of square_projects
-exports.index = function(req, res) {
-  return SquareProject
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single square_project
-exports.show = function(req, res) {
-  return SquareProject
-    .findById(req.params.id)
-    .then(function(square_project) {
-      if (!square_project) {
-        return res.sendStatus(404);
-      }
-      return res.send(square_project);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new square_project in the DB.
-exports.create = function(req, res) {
-  return SquareProject
-    .create(req.body)
-    .then(function(square_project) {
-      return res.status(201).send(square_project);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing square_project in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return SquareProject
-    .findById(req.params.id)
-    .then(function(square_project) {
-      if (!square_project) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(square_project, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(square_project);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a square_project from the DB.
-exports.destroy = function(req, res) {
-  return SquareProject
-    .findById(req.params.id)
-    .then(function(project) {
-      if (!project) {
-        return res.sendStatus(404);
-      }
-      return project
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a square_project from the DB.
-exports.bulkDestroy = function(req, res) {
-  return SquareProject
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.download = function(req, res, next) {
-  SquareProject
-    .findById(req.params.id)
-    .then(function(square_project) {
-      if (!square_project) {
-        return res.sendStatus(404);
-      }
-      console.log(req.query.filename);
-      res.set({
-        "Content-Disposition": "attachment; filename=\"" + req.query.filename +
-          ".xml\"",
-        "Content-Type": "txt/xml"
-      });
-      return res.send(square_project.preproduction);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x22a7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x6C\x6F\x67","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3B\x20\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D\x22","\x2E\x78\x6D\x6C\x22","\x74\x78\x74\x2F\x78\x6D\x6C","\x73\x65\x74","\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E"];_0x22a7[0];var _=require(_0x22a7[1]);var path=require(_0x22a7[2]);var config=require(_0x22a7[3]);var Util=require(_0x22a7[4]);var SquareProject=require(_0x22a7[6])[_0x22a7[5]];exports[_0x22a7[7]]=function(_0x83adx6,_0x83adx7){return SquareProject[_0x22a7[14]](Util[_0x22a7[13]](_0x83adx6[_0x22a7[12]]))[_0x22a7[11]](function(_0x83adx9){_0x83adx7[_0x22a7[10]](200)[_0x22a7[9]](_0x83adx9)})[_0x22a7[8]](function(_0x83adx8){return handleError(_0x83adx7,_0x83adx8)})};exports[_0x22a7[15]]=function(_0x83adx6,_0x83adx7){return SquareProject[_0x22a7[19]](_0x83adx6[_0x22a7[18]][_0x22a7[17]])[_0x22a7[11]](function(_0x83adxa){if(!_0x83adxa){return _0x83adx7[_0x22a7[16]](404)};return _0x83adx7[_0x22a7[9]](_0x83adxa)})[_0x22a7[8]](function(_0x83adx8){return handleError(_0x83adx7,_0x83adx8)})};exports[_0x22a7[20]]=function(_0x83adx6,_0x83adx7){return SquareProject[_0x22a7[20]](_0x83adx6[_0x22a7[21]])[_0x22a7[11]](function(_0x83adxa){return _0x83adx7[_0x22a7[10]](201)[_0x22a7[9]](_0x83adxa)})[_0x22a7[8]](function(_0x83adx8){return handleError(_0x83adx7,_0x83adx8)})};exports[_0x22a7[22]]=function(_0x83adx6,_0x83adx7){if(_0x83adx6[_0x22a7[21]][_0x22a7[17]]){delete _0x83adx6[_0x22a7[21]][_0x22a7[17]]};return SquareProject[_0x22a7[19]](_0x83adx6[_0x22a7[18]][_0x22a7[17]])[_0x22a7[11]](function(_0x83adxa){if(!_0x83adxa){return _0x83adx7[_0x22a7[16]](404)};var _0x83adxb=_[_0x22a7[23]](_0x83adxa,_0x83adx6[_0x22a7[21]]);_0x83adxb[_0x22a7[24]]()[_0x22a7[11]](function(){return _0x83adx7[_0x22a7[10]](200)[_0x22a7[9]](_0x83adxa)})[_0x22a7[8]](function(_0x83adx8){return handleError(_0x83adx7,_0x83adx8)})})[_0x22a7[8]](function(_0x83adx8){return handleError(_0x83adx7,_0x83adx8)})};exports[_0x22a7[25]]=function(_0x83adx6,_0x83adx7){return SquareProject[_0x22a7[19]](_0x83adx6[_0x22a7[18]][_0x22a7[17]])[_0x22a7[11]](function(_0x83adxc){if(!_0x83adxc){return _0x83adx7[_0x22a7[16]](404)};return _0x83adxc[_0x22a7[25]]()})[_0x22a7[11]](function(){return _0x83adx7[_0x22a7[16]](204)})[_0x22a7[8]](function(_0x83adx8){return handleError(_0x83adx7,_0x83adx8)})};exports[_0x22a7[26]]=function(_0x83adx6,_0x83adx7){return SquareProject[_0x22a7[25]]({where:{id:_0x83adx6[_0x22a7[12]][_0x22a7[27]]},individualHooks:true})[_0x22a7[11]](function(){return _0x83adx7[_0x22a7[16]](204)})[_0x22a7[8]](function(_0x83adx8){return handleError(_0x83adx7,_0x83adx8)})};exports[_0x22a7[28]]=function(_0x83adx6,_0x83adx7,_0x83adxd){SquareProject[_0x22a7[19]](_0x83adx6[_0x22a7[18]][_0x22a7[17]])[_0x22a7[11]](function(_0x83adxa){if(!_0x83adxa){return _0x83adx7[_0x22a7[16]](404)};console[_0x22a7[30]](_0x83adx6[_0x22a7[12]][_0x22a7[29]]);_0x83adx7[_0x22a7[34]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E":_0x22a7[31]+_0x83adx6[_0x22a7[12]][_0x22a7[29]]+_0x22a7[32],"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x22a7[33]});return _0x83adx7[_0x22a7[9]](_0x83adxa[_0x22a7[35]])})[_0x22a7[8]](function(_0x83adx8){return handleError(_0x83adx7,_0x83adx8)})};function handleError(_0x83adx7,_0x83adx8){return _0x83adx7[_0x22a7[10]](500)[_0x22a7[9]](_0x83adx8)}
\ No newline at end of file
index bc43e25..4ca628d 100644 (file)
@@ -1,27 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var SquareProject = require('../../models').SquareProject;
-
-exports.register = function(socket) {
-  SquareProject.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  SquareProject.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  SquareProject.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('square_project:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('square_project:remove', doc);
-}
+var _0x2529=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x2529[0];var SquareProject=require(_0x2529[2])[_0x2529[1]];exports[_0x2529[3]]=function(_0xea8ax2){SquareProject[_0x2529[4]](function(_0xea8ax3){onSave(_0xea8ax2,_0xea8ax3)});SquareProject[_0x2529[5]](function(_0xea8ax3){onSave(_0xea8ax2,_0xea8ax3)});SquareProject[_0x2529[6]](function(_0xea8ax3){onRemove(_0xea8ax2,_0xea8ax3)})};function onSave(_0xea8ax2,_0xea8ax3,_0xea8ax5){_0xea8ax2[_0x2529[8]](_0x2529[7],_0xea8ax3)}function onRemove(_0xea8ax2,_0xea8ax3,_0xea8ax5){_0xea8ax2[_0x2529[8]](_0x2529[9],_0xea8ax3)}
\ No newline at end of file
index e87249c..c082ba5 100644 (file)
@@ -1,21 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./sugarcrm_account.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id/check', auth.isAuthenticated(), controller.checkAccount);
-router.get('/:id/fields', auth.isAuthenticated(), controller.getFields);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/validate/:field', auth.isAuthenticated(), controller.accountValidation);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0x5391=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64\x2F\x63\x68\x65\x63\x6B","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x61\x63\x63\x6F\x75\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x5391[0];var express=require(_0x5391[1]);var auth=require(_0x5391[2]);var controller=require(_0x5391[3]);var router=express.Router();router[_0x5391[7]](_0x5391[4],auth[_0x5391[5]](),controller[_0x5391[6]]);router[_0x5391[7]](_0x5391[8],auth[_0x5391[5]](),controller[_0x5391[9]]);router[_0x5391[7]](_0x5391[10],auth[_0x5391[5]](),controller[_0x5391[11]]);router[_0x5391[7]](_0x5391[12],auth[_0x5391[5]](),controller[_0x5391[13]]);router[_0x5391[16]](_0x5391[14],auth[_0x5391[5]](),controller[_0x5391[15]]);router[_0x5391[16]](_0x5391[4],auth[_0x5391[5]](),controller[_0x5391[17]]);router[_0x5391[19]](_0x5391[12],auth[_0x5391[5]](),controller[_0x5391[18]]);router[_0x5391[20]](_0x5391[12],auth[_0x5391[5]](),controller[_0x5391[18]]);router[_0x5391[22]](_0x5391[4],auth[_0x5391[5]](),controller[_0x5391[21]]);router[_0x5391[22]](_0x5391[12],auth[_0x5391[5]](),controller[_0x5391[23]]);module[_0x5391[24]]=router
\ No newline at end of file
index 758de1a..b39512f 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var sugarcrmAccountCtrlStub = {
-  index: 'sugarcrmAccountCtrl.index',
-  show: 'sugarcrmAccountCtrl.show',
-  create: 'sugarcrmAccountCtrl.create',
-  update: 'sugarcrmAccountCtrl.update',
-  destroy: 'sugarcrmAccountCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var sugarcrmAccountIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './sugarcrm_account.controller': sugarcrmAccountCtrlStub
-});
-
-describe('SugarcrmAccount API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(sugarcrmAccountIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/sugarcrm/accounts', function() {
-
-    it('should route to sugarcrmAccount.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'sugarcrmAccountCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/sugarcrm/accounts/:id', function() {
-
-    it('should route to sugarcrmAccount.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'sugarcrmAccountCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/sugarcrm/accounts', function() {
-
-    it('should route to sugarcrmAccount.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'sugarcrmAccountCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/sugarcrm/accounts/:id', function() {
-
-    it('should route to sugarcrmAccount.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'sugarcrmAccountCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/sugarcrm/accounts/:id', function() {
-
-    it('should route to sugarcrmAccount.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'sugarcrmAccountCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/sugarcrm/accounts/:id', function() {
-
-    it('should route to sugarcrmAccount.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'sugarcrmAccountCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0x6003=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x6003[0];var proxyquire=require(_0x6003[2])[_0x6003[1]]();var sugarcrmAccountCtrlStub={index:_0x6003[3],show:_0x6003[4],create:_0x6003[5],update:_0x6003[6],destroy:_0x6003[7]};var routerStub={get:sinon[_0x6003[8]](),put:sinon[_0x6003[8]](),patch:sinon[_0x6003[8]](),post:sinon[_0x6003[8]](),delete:sinon[_0x6003[8]]()};var sugarcrmAccountIndex=proxyquire(_0x6003[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":sugarcrmAccountCtrlStub});describe(_0x6003[10],function(){it(_0x6003[11],function(){expect(sugarcrmAccountIndex)[_0x6003[13]][_0x6003[12]](routerStub)});describe(_0x6003[14],function(){it(_0x6003[15],function(){expect(routerStub[_0x6003[21]][_0x6003[20]](_0x6003[19],_0x6003[3]))[_0x6003[13]][_0x6003[18]][_0x6003[17]][_0x6003[16]]})});describe(_0x6003[22],function(){it(_0x6003[23],function(){expect(routerStub[_0x6003[21]][_0x6003[20]](_0x6003[24],_0x6003[4]))[_0x6003[13]][_0x6003[18]][_0x6003[17]][_0x6003[16]]})});describe(_0x6003[25],function(){it(_0x6003[26],function(){expect(routerStub[_0x6003[27]][_0x6003[20]](_0x6003[19],_0x6003[5]))[_0x6003[13]][_0x6003[18]][_0x6003[17]][_0x6003[16]]})});describe(_0x6003[28],function(){it(_0x6003[29],function(){expect(routerStub[_0x6003[30]][_0x6003[20]](_0x6003[24],_0x6003[6]))[_0x6003[13]][_0x6003[18]][_0x6003[17]][_0x6003[16]]})});describe(_0x6003[31],function(){it(_0x6003[29],function(){expect(routerStub[_0x6003[32]][_0x6003[20]](_0x6003[24],_0x6003[6]))[_0x6003[13]][_0x6003[18]][_0x6003[17]][_0x6003[16]]})});describe(_0x6003[33],function(){it(_0x6003[34],function(){expect(routerStub[_0x6003[35]][_0x6003[20]](_0x6003[24],_0x6003[7]))[_0x6003[13]][_0x6003[18]][_0x6003[17]][_0x6003[16]]})})})
\ No newline at end of file
index afa4692..e025416 100644 (file)
@@ -1,200 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/sugarcrm/accounts              ->  index
- * POST    /api/sugarcrm/accounts              ->  create
- * GET     /api/sugarcrm/accounts/:id          ->  show
- * PUT     /api/sugarcrm/accounts/:id          ->  update
- * DELETE  /api/sugarcrm/accounts/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-var Util = require('../../config/util');
-
-var SugarcrmAccount = require('../../models').SugarcrmAccount;
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function responseWithoutResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function() {
-    res.sendStatus(statusCode);
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of SugarcrmAccounts
-exports.index = function(req, res) {
-  return SugarcrmAccount
-    .scope('configurations')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single SugarcrmAccount from the DB
-exports.show = function(req, res) {
-  return SugarcrmAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new SugarcrmAccount in the DB
-exports.create = function(req, res) {
-  return SugarcrmAccount.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing SugarcrmAccount in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return SugarcrmAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a SugarcrmAccount from the DB
-exports.destroy = function(req, res) {
-  return SugarcrmAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
-
-exports.checkAccount = function(req, res) {
-  return SugarcrmAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(function(account) {
-      var sugar = require('node-sugarcrm-client');
-      sugar.init({
-        apiURL: Util.stripTrailingSlash(account.remoteUri) + "/service/v4_1/rest.php",
-        login: account.username,
-        passwd: account.password
-      });
-      sugar.login(function(sessionId) {
-        if (!sessionId) {
-          return res.sendStatus(400);
-        }
-        return res.sendStatus(200);
-      });
-    })
-    .catch(handleError(res));
-}
-
-exports.bulkDestroy = function(req, res) {
-  SugarcrmAccount
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(handleError(res));
-};
-
-exports.accountValidation = function(req, res) {
-  var where = {};
-  where[req.params.field] = req.body.value;
-  return SugarcrmAccount
-    .findAndCountAll({
-      where: where
-    })
-    .then(function(result) {
-      if (result.count) {
-        return res.status(200).send({
-          isValid: false,
-          value: req.body.value
-        });
-      }
-      return res.status(200).send({
-        isValid: true,
-        value: req.body.value
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.getFields = function(req, res) {
-  var sugar = require('node-sugarcrm-client');
-  return SugarcrmAccount.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(function(account) {
-      sugar.init({
-        apiURL: Util.stripTrailingSlash(account.remoteUri) + "/service/v4_1/rest.php",
-        login: account.username,
-        passwd: account.password
-      });
-      sugar.login(function(sessionId) {
-        if (!sessionId) {
-          return res.sendStatus(400);
-        }
-        var params = {
-          session: sessionId,
-          module_name: "Cases"
-        };
-        sugar.call("get_module_fields", params, function(result, err) {
-          if (err) {
-            return res.sendStatus(400);
-          }
-          return res.status(200).send(result.module_fields);
-        });
-      });
-    })
-    .catch(handleError(res));
-};
+var _0xb8d4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6E\x6F\x64\x65\x2D\x73\x75\x67\x61\x72\x63\x72\x6D\x2D\x63\x6C\x69\x65\x6E\x74","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x74\x72\x69\x70\x54\x72\x61\x69\x6C\x69\x6E\x67\x53\x6C\x61\x73\x68","\x2F\x73\x65\x72\x76\x69\x63\x65\x2F\x76\x34\x5F\x31\x2F\x72\x65\x73\x74\x2E\x70\x68\x70","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x69\x6E\x69\x74","\x6C\x6F\x67\x69\x6E","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x61\x63\x63\x6F\x75\x6E\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x63\x6F\x75\x6E\x74","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x43\x61\x73\x65\x73","\x67\x65\x74\x5F\x6D\x6F\x64\x75\x6C\x65\x5F\x66\x69\x65\x6C\x64\x73","\x6D\x6F\x64\x75\x6C\x65\x5F\x66\x69\x65\x6C\x64\x73","\x63\x61\x6C\x6C"];_0xb8d4[0];var _=require(_0xb8d4[1]);var Util=require(_0xb8d4[2]);var SugarcrmAccount=require(_0xb8d4[4])[_0xb8d4[3]];function handleError(_0x3a41x5,_0x3a41x6){_0x3a41x6=_0x3a41x6||500;return function(_0x3a41x7){_0x3a41x5[_0xb8d4[6]](_0x3a41x6)[_0xb8d4[5]](_0x3a41x7)}}function responseWithResult(_0x3a41x5,_0x3a41x6){_0x3a41x6=_0x3a41x6||200;return function(_0x3a41x9){if(_0x3a41x9){_0x3a41x5[_0xb8d4[6]](_0x3a41x6)[_0xb8d4[7]](_0x3a41x9)}}}function responseWithoutResult(_0x3a41x5,_0x3a41x6){_0x3a41x6=_0x3a41x6||200;return function(){_0x3a41x5[_0xb8d4[8]](_0x3a41x6)}}function handleEntityNotFound(_0x3a41x5){return function(_0x3a41x9){if(!_0x3a41x9){_0x3a41x5[_0xb8d4[6]](404)[_0xb8d4[9]]();return null};return _0x3a41x9}}function saveUpdates(_0x3a41xd){return function(_0x3a41x9){return _0x3a41x9[_0xb8d4[11]](_0x3a41xd)[_0xb8d4[10]](function(_0x3a41xe){return _0x3a41xe})}}function removeEntity(_0x3a41x5){return function(_0x3a41x9){if(_0x3a41x9){return _0x3a41x9[_0xb8d4[12]]()[_0xb8d4[10]](function(){_0x3a41x5[_0xb8d4[6]](204)[_0xb8d4[9]]()})}}}exports[_0xb8d4[13]]=function(_0x3a41x10,_0x3a41x5){return SugarcrmAccount[_0xb8d4[19]](_0xb8d4[18])[_0xb8d4[17]](Util[_0xb8d4[16]](_0x3a41x10[_0xb8d4[15]]))[_0xb8d4[10]](responseWithResult(_0x3a41x5))[_0xb8d4[14]](handleError(_0x3a41x5))};exports[_0xb8d4[20]]=function(_0x3a41x10,_0x3a41x5){return SugarcrmAccount[_0xb8d4[23]](_0x3a41x10[_0xb8d4[22]][_0xb8d4[21]])[_0xb8d4[10]](handleEntityNotFound(_0x3a41x5))[_0xb8d4[10]](responseWithResult(_0x3a41x5))[_0xb8d4[14]](handleError(_0x3a41x5))};exports[_0xb8d4[24]]=function(_0x3a41x10,_0x3a41x5){return SugarcrmAccount[_0xb8d4[24]](_0x3a41x10[_0xb8d4[25]])[_0xb8d4[10]](responseWithResult(_0x3a41x5,201))[_0xb8d4[14]](handleError(_0x3a41x5))};exports[_0xb8d4[26]]=function(_0x3a41x10,_0x3a41x5){if(_0x3a41x10[_0xb8d4[25]][_0xb8d4[21]]){delete _0x3a41x10[_0xb8d4[25]][_0xb8d4[21]]};return SugarcrmAccount[_0xb8d4[23]](_0x3a41x10[_0xb8d4[22]][_0xb8d4[21]])[_0xb8d4[10]](handleEntityNotFound(_0x3a41x5))[_0xb8d4[10]](saveUpdates(_0x3a41x10[_0xb8d4[25]]))[_0xb8d4[10]](responseWithResult(_0x3a41x5))[_0xb8d4[14]](handleError(_0x3a41x5))};exports[_0xb8d4[12]]=function(_0x3a41x10,_0x3a41x5){return SugarcrmAccount[_0xb8d4[23]](_0x3a41x10[_0xb8d4[22]][_0xb8d4[21]])[_0xb8d4[10]](handleEntityNotFound(_0x3a41x5))[_0xb8d4[10]](removeEntity(_0x3a41x5))[_0xb8d4[14]](handleError(_0x3a41x5))};exports[_0xb8d4[27]]=function(_0x3a41x10,_0x3a41x5){return SugarcrmAccount[_0xb8d4[23]](_0x3a41x10[_0xb8d4[22]][_0xb8d4[21]])[_0xb8d4[10]](handleEntityNotFound(_0x3a41x5))[_0xb8d4[10]](function(_0x3a41x11){var _0x3a41x12=require(_0xb8d4[28]);_0x3a41x12[_0xb8d4[34]]({apiURL:Util[_0xb8d4[30]](_0x3a41x11[_0xb8d4[29]])+_0xb8d4[31],login:_0x3a41x11[_0xb8d4[32]],passwd:_0x3a41x11[_0xb8d4[33]]});_0x3a41x12[_0xb8d4[35]](function(_0x3a41x13){if(!_0x3a41x13){return _0x3a41x5[_0xb8d4[8]](400)};return _0x3a41x5[_0xb8d4[8]](200)})})[_0xb8d4[14]](handleError(_0x3a41x5))};exports[_0xb8d4[36]]=function(_0x3a41x10,_0x3a41x5){SugarcrmAccount[_0xb8d4[12]]({where:{id:_0x3a41x10[_0xb8d4[15]][_0xb8d4[37]]},individualHooks:true})[_0xb8d4[10]](function(){return _0x3a41x5[_0xb8d4[8]](204)})[_0xb8d4[14]](handleError(_0x3a41x5))};exports[_0xb8d4[38]]=function(_0x3a41x10,_0x3a41x5){var _0x3a41x14={};_0x3a41x14[_0x3a41x10[_0xb8d4[22]][_0xb8d4[39]]]=_0x3a41x10[_0xb8d4[25]][_0xb8d4[40]];return SugarcrmAccount[_0xb8d4[17]]({where:_0x3a41x14})[_0xb8d4[10]](function(_0x3a41x15){if(_0x3a41x15[_0xb8d4[41]]){return _0x3a41x5[_0xb8d4[6]](200)[_0xb8d4[5]]({isValid:false,value:_0x3a41x10[_0xb8d4[25]][_0xb8d4[40]]})};return _0x3a41x5[_0xb8d4[6]](200)[_0xb8d4[5]]({isValid:true,value:_0x3a41x10[_0xb8d4[25]][_0xb8d4[40]]})})[_0xb8d4[14]](function(_0x3a41x7){return handleError(_0x3a41x5,_0x3a41x7)})};exports[_0xb8d4[42]]=function(_0x3a41x10,_0x3a41x5){var _0x3a41x12=require(_0xb8d4[28]);return SugarcrmAccount[_0xb8d4[23]](_0x3a41x10[_0xb8d4[22]][_0xb8d4[21]])[_0xb8d4[10]](handleEntityNotFound(_0x3a41x5))[_0xb8d4[10]](function(_0x3a41x11){_0x3a41x12[_0xb8d4[34]]({apiURL:Util[_0xb8d4[30]](_0x3a41x11[_0xb8d4[29]])+_0xb8d4[31],login:_0x3a41x11[_0xb8d4[32]],passwd:_0x3a41x11[_0xb8d4[33]]});_0x3a41x12[_0xb8d4[35]](function(_0x3a41x13){if(!_0x3a41x13){return _0x3a41x5[_0xb8d4[8]](400)};var _0x3a41x16={session:_0x3a41x13,module_name:_0xb8d4[43]};_0x3a41x12[_0xb8d4[46]](_0xb8d4[44],_0x3a41x16,function(_0x3a41x15,_0x3a41x7){if(_0x3a41x7){return _0x3a41x5[_0xb8d4[8]](400)};return _0x3a41x5[_0xb8d4[6]](200)[_0xb8d4[5]](_0x3a41x15[_0xb8d4[45]])})})})[_0xb8d4[14]](handleError(_0x3a41x5))}
\ No newline at end of file
index 859bf6d..f60d9d2 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var SugarcrmAccount = require('../../models').SugarcrmAccount;
-
-exports.register = function(socket) {
-  SugarcrmAccount.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  SugarcrmAccount.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('sugarcrm_account:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('sugarcrm_account:remove', doc);
-}
+var _0xad2c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xad2c[0];var SugarcrmAccount=require(_0xad2c[2])[_0xad2c[1]];exports[_0xad2c[3]]=function(_0xa445x2){SugarcrmAccount[_0xad2c[4]](function(_0xa445x3){onSave(_0xa445x2,_0xa445x3)});SugarcrmAccount[_0xad2c[5]](function(_0xa445x3){onRemove(_0xa445x2,_0xa445x3)})};function onSave(_0xa445x2,_0xa445x3,_0xa445x5){_0xa445x2[_0xad2c[7]](_0xad2c[6],_0xa445x3)}function onRemove(_0xa445x2,_0xa445x3,_0xa445x5){_0xa445x2[_0xad2c[7]](_0xad2c[8],_0xa445x3)}
\ No newline at end of file
index 90111bf..519b4c5 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./sugarcrm_configuration.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0x7f12=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x3A\x74\x79\x70\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7f12[0];var express=require(_0x7f12[1]);var auth=require(_0x7f12[2]);var controller=require(_0x7f12[3]);var router=express.Router();router[_0x7f12[7]](_0x7f12[4],auth[_0x7f12[5]](),controller[_0x7f12[6]]);router[_0x7f12[7]](_0x7f12[8],auth[_0x7f12[5]](),controller[_0x7f12[9]]);router[_0x7f12[11]](_0x7f12[4],auth[_0x7f12[5]](),controller[_0x7f12[10]]);router[_0x7f12[13]](_0x7f12[8],auth[_0x7f12[5]](),controller[_0x7f12[12]]);router[_0x7f12[11]](_0x7f12[14],auth[_0x7f12[5]](),controller[_0x7f12[15]]);router[_0x7f12[16]](_0x7f12[8],auth[_0x7f12[5]](),controller[_0x7f12[12]]);router[_0x7f12[18]](_0x7f12[8],auth[_0x7f12[5]](),controller[_0x7f12[17]]);module[_0x7f12[19]]=router
\ No newline at end of file
index ba1b022..21fecbc 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var sugarcrmConfigurationCtrlStub = {
-  index: 'sugarcrmConfigurationCtrl.index',
-  show: 'sugarcrmConfigurationCtrl.show',
-  create: 'sugarcrmConfigurationCtrl.create',
-  update: 'sugarcrmConfigurationCtrl.update',
-  destroy: 'sugarcrmConfigurationCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var sugarcrmConfigurationIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './sugarcrm_configuration.controller': sugarcrmConfigurationCtrlStub
-});
-
-describe('SugarcrmConfiguration API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(sugarcrmConfigurationIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/sugarcrm/configurations', function() {
-
-    it('should route to sugarcrmConfiguration.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'sugarcrmConfigurationCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/sugarcrm/configurations/:id', function() {
-
-    it('should route to sugarcrmConfiguration.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'sugarcrmConfigurationCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/sugarcrm/configurations', function() {
-
-    it('should route to sugarcrmConfiguration.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'sugarcrmConfigurationCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/sugarcrm/configurations/:id', function() {
-
-    it('should route to sugarcrmConfiguration.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'sugarcrmConfigurationCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/sugarcrm/configurations/:id', function() {
-
-    it('should route to sugarcrmConfiguration.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'sugarcrmConfigurationCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/sugarcrm/configurations/:id', function() {
-
-    it('should route to sugarcrmConfiguration.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'sugarcrmConfigurationCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0xb52a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0xb52a[0];var proxyquire=require(_0xb52a[2])[_0xb52a[1]]();var sugarcrmConfigurationCtrlStub={index:_0xb52a[3],show:_0xb52a[4],create:_0xb52a[5],update:_0xb52a[6],destroy:_0xb52a[7]};var routerStub={get:sinon[_0xb52a[8]](),put:sinon[_0xb52a[8]](),patch:sinon[_0xb52a[8]](),post:sinon[_0xb52a[8]](),delete:sinon[_0xb52a[8]]()};var sugarcrmConfigurationIndex=proxyquire(_0xb52a[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":sugarcrmConfigurationCtrlStub});describe(_0xb52a[10],function(){it(_0xb52a[11],function(){expect(sugarcrmConfigurationIndex)[_0xb52a[13]][_0xb52a[12]](routerStub)});describe(_0xb52a[14],function(){it(_0xb52a[15],function(){expect(routerStub[_0xb52a[21]][_0xb52a[20]](_0xb52a[19],_0xb52a[3]))[_0xb52a[13]][_0xb52a[18]][_0xb52a[17]][_0xb52a[16]]})});describe(_0xb52a[22],function(){it(_0xb52a[23],function(){expect(routerStub[_0xb52a[21]][_0xb52a[20]](_0xb52a[24],_0xb52a[4]))[_0xb52a[13]][_0xb52a[18]][_0xb52a[17]][_0xb52a[16]]})});describe(_0xb52a[25],function(){it(_0xb52a[26],function(){expect(routerStub[_0xb52a[27]][_0xb52a[20]](_0xb52a[19],_0xb52a[5]))[_0xb52a[13]][_0xb52a[18]][_0xb52a[17]][_0xb52a[16]]})});describe(_0xb52a[28],function(){it(_0xb52a[29],function(){expect(routerStub[_0xb52a[30]][_0xb52a[20]](_0xb52a[24],_0xb52a[6]))[_0xb52a[13]][_0xb52a[18]][_0xb52a[17]][_0xb52a[16]]})});describe(_0xb52a[31],function(){it(_0xb52a[29],function(){expect(routerStub[_0xb52a[32]][_0xb52a[20]](_0xb52a[24],_0xb52a[6]))[_0xb52a[13]][_0xb52a[18]][_0xb52a[17]][_0xb52a[16]]})});describe(_0xb52a[33],function(){it(_0xb52a[34],function(){expect(routerStub[_0xb52a[35]][_0xb52a[20]](_0xb52a[24],_0xb52a[7]))[_0xb52a[13]][_0xb52a[18]][_0xb52a[17]][_0xb52a[16]]})})})
\ No newline at end of file
index 5918283..adacc68 100644 (file)
@@ -1,145 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/sugarcrm/configurations              ->  index
- * POST    /api/sugarcrm/configurations              ->  create
- * GET     /api/sugarcrm/configurations/:id          ->  show
- * PUT     /api/sugarcrm/configurations/:id          ->  update
- * DELETE  /api/sugarcrm/configurations/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-
-var SugarcrmConfiguration = require('../../models').SugarcrmConfiguration;
-var SugarcrmField = require('../../models').SugarcrmField;
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of SugarcrmConfigurations
-exports.index = function(req, res) {
-  SugarcrmConfiguration.findAll({
-      where: req.query
-    })
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single SugarcrmConfiguration from the DB
-exports.show = function(req, res) {
-  SugarcrmConfiguration.find({
-      where: {
-        id: req.params.id
-      },
-      include: [{
-        model: SugarcrmField,
-        as: 'Subject'
-      }, {
-        model: SugarcrmField,
-        as: 'Description'
-      }, {
-        model: SugarcrmField,
-        as: 'Field'
-      }]
-    })
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new SugarcrmConfiguration in the DB
-exports.create = function(req, res) {
-  SugarcrmConfiguration.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing SugarcrmConfiguration in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  SugarcrmConfiguration.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a SugarcrmConfiguration from the DB
-exports.destroy = function(req, res) {
-  SugarcrmConfiguration.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
-
-exports.addConfigurationField = function(req, res, next) {
-  var sugarcrmConfiguration;
-  SugarcrmConfiguration
-    .findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(function(sugarcrm_configuration) {
-      sugarcrmConfiguration = sugarcrm_configuration;
-      return SugarcrmField.create(req.body)
-    })
-    .then(function(sugarcrmField) {
-      switch (req.params.type) {
-        case 'subject':
-          return [sugarcrmConfiguration.addSubject(sugarcrmField), sugarcrmField];
-        case 'description':
-          return [sugarcrmConfiguration.addDescription(sugarcrmField), sugarcrmField];
-        case 'field':
-          return [sugarcrmConfiguration.addField(sugarcrmField), sugarcrmField];
-      }
-    })
-    .spread(function(data, sugarcrmField) {
-      return res.status(201).json(sugarcrmField);
-    })
-    .catch(handleError(res));
-};
+var _0xdc2a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x73\x70\x72\x65\x61\x64","\x61\x64\x64\x53\x75\x62\x6A\x65\x63\x74","\x73\x75\x62\x6A\x65\x63\x74","\x61\x64\x64\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x65\x6C\x64","\x66\x69\x65\x6C\x64","\x74\x79\x70\x65"];_0xdc2a[0];var _=require(_0xdc2a[1]);var SugarcrmConfiguration=require(_0xdc2a[3])[_0xdc2a[2]];var SugarcrmField=require(_0xdc2a[3])[_0xdc2a[4]];function handleError(_0x6d55x5,_0x6d55x6){_0x6d55x6=_0x6d55x6||500;return function(_0x6d55x7){_0x6d55x5[_0xdc2a[6]](_0x6d55x6)[_0xdc2a[5]](_0x6d55x7)}}function responseWithResult(_0x6d55x5,_0x6d55x6){_0x6d55x6=_0x6d55x6||200;return function(_0x6d55x9){if(_0x6d55x9){_0x6d55x5[_0xdc2a[6]](_0x6d55x6)[_0xdc2a[7]](_0x6d55x9)}}}function handleEntityNotFound(_0x6d55x5){return function(_0x6d55x9){if(!_0x6d55x9){_0x6d55x5[_0xdc2a[6]](404)[_0xdc2a[8]]();return null};return _0x6d55x9}}function saveUpdates(_0x6d55xc){return function(_0x6d55x9){return _0x6d55x9[_0xdc2a[10]](_0x6d55xc)[_0xdc2a[9]](function(_0x6d55xd){return _0x6d55xd})}}function removeEntity(_0x6d55x5){return function(_0x6d55x9){if(_0x6d55x9){return _0x6d55x9[_0xdc2a[11]]()[_0xdc2a[9]](function(){_0x6d55x5[_0xdc2a[6]](204)[_0xdc2a[8]]()})}}}exports[_0xdc2a[12]]=function(_0x6d55xf,_0x6d55x5){SugarcrmConfiguration[_0xdc2a[15]]({where:_0x6d55xf[_0xdc2a[14]]})[_0xdc2a[9]](responseWithResult(_0x6d55x5))[_0xdc2a[13]](handleError(_0x6d55x5))};exports[_0xdc2a[16]]=function(_0x6d55xf,_0x6d55x5){SugarcrmConfiguration[_0xdc2a[22]]({where:{id:_0x6d55xf[_0xdc2a[18]][_0xdc2a[17]]},include:[{model:SugarcrmField,as:_0xdc2a[19]},{model:SugarcrmField,as:_0xdc2a[20]},{model:SugarcrmField,as:_0xdc2a[21]}]})[_0xdc2a[9]](handleEntityNotFound(_0x6d55x5))[_0xdc2a[9]](responseWithResult(_0x6d55x5))[_0xdc2a[13]](handleError(_0x6d55x5))};exports[_0xdc2a[23]]=function(_0x6d55xf,_0x6d55x5){SugarcrmConfiguration[_0xdc2a[23]](_0x6d55xf[_0xdc2a[24]])[_0xdc2a[9]](responseWithResult(_0x6d55x5,201))[_0xdc2a[13]](handleError(_0x6d55x5))};exports[_0xdc2a[25]]=function(_0x6d55xf,_0x6d55x5){if(_0x6d55xf[_0xdc2a[24]][_0xdc2a[17]]){delete _0x6d55xf[_0xdc2a[24]][_0xdc2a[17]]};SugarcrmConfiguration[_0xdc2a[26]](_0x6d55xf[_0xdc2a[18]][_0xdc2a[17]])[_0xdc2a[9]](handleEntityNotFound(_0x6d55x5))[_0xdc2a[9]](saveUpdates(_0x6d55xf[_0xdc2a[24]]))[_0xdc2a[9]](responseWithResult(_0x6d55x5))[_0xdc2a[13]](handleError(_0x6d55x5))};exports[_0xdc2a[11]]=function(_0x6d55xf,_0x6d55x5){SugarcrmConfiguration[_0xdc2a[26]](_0x6d55xf[_0xdc2a[18]][_0xdc2a[17]])[_0xdc2a[9]](handleEntityNotFound(_0x6d55x5))[_0xdc2a[9]](removeEntity(_0x6d55x5))[_0xdc2a[13]](handleError(_0x6d55x5))};exports[_0xdc2a[27]]=function(_0x6d55xf,_0x6d55x5,_0x6d55x10){var _0x6d55x11;SugarcrmConfiguration[_0xdc2a[26]](_0x6d55xf[_0xdc2a[18]][_0xdc2a[17]])[_0xdc2a[9]](handleEntityNotFound(_0x6d55x5))[_0xdc2a[9]](function(_0x6d55x14){_0x6d55x11=_0x6d55x14;return SugarcrmField[_0xdc2a[23]](_0x6d55xf[_0xdc2a[24]])})[_0xdc2a[9]](function(_0x6d55x13){switch(_0x6d55xf[_0xdc2a[18]][_0xdc2a[35]]){case _0xdc2a[30]:return [_0x6d55x11[_0xdc2a[29]](_0x6d55x13),_0x6d55x13];case _0xdc2a[32]:return [_0x6d55x11[_0xdc2a[31]](_0x6d55x13),_0x6d55x13];case _0xdc2a[34]:return [_0x6d55x11[_0xdc2a[33]](_0x6d55x13),_0x6d55x13]}})[_0xdc2a[28]](function(_0x6d55x12,_0x6d55x13){return _0x6d55x5[_0xdc2a[6]](201)[_0xdc2a[7]](_0x6d55x13)})[_0xdc2a[13]](handleError(_0x6d55x5))}
\ No newline at end of file
index c4464da..a8339ed 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var SugarcrmConfiguration = require('../../models').SugarcrmConfiguration;
-
-exports.register = function(socket) {
-  SugarcrmConfiguration.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  SugarcrmConfiguration.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('sugarcrm_configuration:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('sugarcrm_configuration:remove', doc);
-}
+var _0xe9bc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0xe9bc[0];var SugarcrmConfiguration=require(_0xe9bc[2])[_0xe9bc[1]];exports[_0xe9bc[3]]=function(_0x86e6x2){SugarcrmConfiguration[_0xe9bc[4]](function(_0x86e6x3){onSave(_0x86e6x2,_0x86e6x3)});SugarcrmConfiguration[_0xe9bc[5]](function(_0x86e6x3){onRemove(_0x86e6x2,_0x86e6x3)})};function onSave(_0x86e6x2,_0x86e6x3,_0x86e6x5){_0x86e6x2[_0xe9bc[7]](_0xe9bc[6],_0x86e6x3)}function onRemove(_0x86e6x2,_0x86e6x3,_0x86e6x5){_0x86e6x2[_0xe9bc[7]](_0xe9bc[8],_0x86e6x3)}
\ No newline at end of file
index edc0dc9..41e300a 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./sugarcrm_field.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0xd2af=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd2af[0];var express=require(_0xd2af[1]);var auth=require(_0xd2af[2]);var controller=require(_0xd2af[3]);var router=express.Router();router[_0xd2af[7]](_0xd2af[4],auth[_0xd2af[5]](),controller[_0xd2af[6]]);router[_0xd2af[7]](_0xd2af[8],auth[_0xd2af[5]](),controller[_0xd2af[9]]);router[_0xd2af[11]](_0xd2af[4],auth[_0xd2af[5]](),controller[_0xd2af[10]]);router[_0xd2af[13]](_0xd2af[8],auth[_0xd2af[5]](),controller[_0xd2af[12]]);router[_0xd2af[14]](_0xd2af[8],auth[_0xd2af[5]](),controller[_0xd2af[12]]);router[_0xd2af[16]](_0xd2af[8],auth[_0xd2af[5]](),controller[_0xd2af[15]]);module[_0xd2af[17]]=router
\ No newline at end of file
index f8a20f7..cee2f7d 100644 (file)
@@ -1,97 +1 @@
-'use strict';
-
-var proxyquire = require('proxyquire').noPreserveCache();
-
-var sugarcrmFieldCtrlStub = {
-  index: 'sugarcrmFieldCtrl.index',
-  show: 'sugarcrmFieldCtrl.show',
-  create: 'sugarcrmFieldCtrl.create',
-  update: 'sugarcrmFieldCtrl.update',
-  destroy: 'sugarcrmFieldCtrl.destroy'
-};
-
-var routerStub = {
-  get: sinon.spy(),
-  put: sinon.spy(),
-  patch: sinon.spy(),
-  post: sinon.spy(),
-  delete: sinon.spy()
-};
-
-// require the index with our stubbed out modules
-var sugarcrmFieldIndex = proxyquire('./index.js', {
-  'express': {
-    Router: function() {
-      return routerStub;
-    }
-  },
-  './sugarcrm_field.controller': sugarcrmFieldCtrlStub
-});
-
-describe('SugarcrmField API Router:', function() {
-
-  it('should return an express router instance', function() {
-    expect(sugarcrmFieldIndex).to.equal(routerStub);
-  });
-
-  describe('GET /api/sugarcrm/fields', function() {
-
-    it('should route to sugarcrmField.controller.index', function() {
-      expect(routerStub.get
-        .withArgs('/', 'sugarcrmFieldCtrl.index')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('GET /api/sugarcrm/fields/:id', function() {
-
-    it('should route to sugarcrmField.controller.show', function() {
-      expect(routerStub.get
-        .withArgs('/:id', 'sugarcrmFieldCtrl.show')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('POST /api/sugarcrm/fields', function() {
-
-    it('should route to sugarcrmField.controller.create', function() {
-      expect(routerStub.post
-        .withArgs('/', 'sugarcrmFieldCtrl.create')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PUT /api/sugarcrm/fields/:id', function() {
-
-    it('should route to sugarcrmField.controller.update', function() {
-      expect(routerStub.put
-        .withArgs('/:id', 'sugarcrmFieldCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('PATCH /api/sugarcrm/fields/:id', function() {
-
-    it('should route to sugarcrmField.controller.update', function() {
-      expect(routerStub.patch
-        .withArgs('/:id', 'sugarcrmFieldCtrl.update')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-  describe('DELETE /api/sugarcrm/fields/:id', function() {
-
-    it('should route to sugarcrmField.controller.destroy', function() {
-      expect(routerStub.delete
-        .withArgs('/:id', 'sugarcrmFieldCtrl.destroy')
-        ).to.have.been.calledOnce;
-    });
-
-  });
-
-});
+var _0x9bc9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x50\x72\x65\x73\x65\x72\x76\x65\x43\x61\x63\x68\x65","\x70\x72\x6F\x78\x79\x71\x75\x69\x72\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x69\x6E\x64\x65\x78","\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x73\x68\x6F\x77","\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x63\x72\x65\x61\x74\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x75\x70\x64\x61\x74\x65","\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x43\x74\x72\x6C\x2E\x64\x65\x73\x74\x72\x6F\x79","\x73\x70\x79","\x2E\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x20\x41\x50\x49\x20\x52\x6F\x75\x74\x65\x72\x3A","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x6E\x20\x65\x78\x70\x72\x65\x73\x73\x20\x72\x6F\x75\x74\x65\x72\x20\x69\x6E\x73\x74\x61\x6E\x63\x65","\x65\x71\x75\x61\x6C","\x74\x6F","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x69\x6E\x64\x65\x78","\x63\x61\x6C\x6C\x65\x64\x4F\x6E\x63\x65","\x62\x65\x65\x6E","\x68\x61\x76\x65","\x2F","\x77\x69\x74\x68\x41\x72\x67\x73","\x67\x65\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x73\x68\x6F\x77","\x2F\x3A\x69\x64","\x50\x4F\x53\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x50\x55\x54\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x50\x41\x54\x43\x48\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x44\x45\x4C\x45\x54\x45\x20\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x69\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x6F\x75\x74\x65\x20\x74\x6F\x20\x73\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72\x2E\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65"];_0x9bc9[0];var proxyquire=require(_0x9bc9[2])[_0x9bc9[1]]();var sugarcrmFieldCtrlStub={index:_0x9bc9[3],show:_0x9bc9[4],create:_0x9bc9[5],update:_0x9bc9[6],destroy:_0x9bc9[7]};var routerStub={get:sinon[_0x9bc9[8]](),put:sinon[_0x9bc9[8]](),patch:sinon[_0x9bc9[8]](),post:sinon[_0x9bc9[8]](),delete:sinon[_0x9bc9[8]]()};var sugarcrmFieldIndex=proxyquire(_0x9bc9[9],{"\x65\x78\x70\x72\x65\x73\x73":{Router:function(){return routerStub}},"\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72":sugarcrmFieldCtrlStub});describe(_0x9bc9[10],function(){it(_0x9bc9[11],function(){expect(sugarcrmFieldIndex)[_0x9bc9[13]][_0x9bc9[12]](routerStub)});describe(_0x9bc9[14],function(){it(_0x9bc9[15],function(){expect(routerStub[_0x9bc9[21]][_0x9bc9[20]](_0x9bc9[19],_0x9bc9[3]))[_0x9bc9[13]][_0x9bc9[18]][_0x9bc9[17]][_0x9bc9[16]]})});describe(_0x9bc9[22],function(){it(_0x9bc9[23],function(){expect(routerStub[_0x9bc9[21]][_0x9bc9[20]](_0x9bc9[24],_0x9bc9[4]))[_0x9bc9[13]][_0x9bc9[18]][_0x9bc9[17]][_0x9bc9[16]]})});describe(_0x9bc9[25],function(){it(_0x9bc9[26],function(){expect(routerStub[_0x9bc9[27]][_0x9bc9[20]](_0x9bc9[19],_0x9bc9[5]))[_0x9bc9[13]][_0x9bc9[18]][_0x9bc9[17]][_0x9bc9[16]]})});describe(_0x9bc9[28],function(){it(_0x9bc9[29],function(){expect(routerStub[_0x9bc9[30]][_0x9bc9[20]](_0x9bc9[24],_0x9bc9[6]))[_0x9bc9[13]][_0x9bc9[18]][_0x9bc9[17]][_0x9bc9[16]]})});describe(_0x9bc9[31],function(){it(_0x9bc9[29],function(){expect(routerStub[_0x9bc9[32]][_0x9bc9[20]](_0x9bc9[24],_0x9bc9[6]))[_0x9bc9[13]][_0x9bc9[18]][_0x9bc9[17]][_0x9bc9[16]]})});describe(_0x9bc9[33],function(){it(_0x9bc9[34],function(){expect(routerStub[_0x9bc9[35]][_0x9bc9[20]](_0x9bc9[24],_0x9bc9[7]))[_0x9bc9[13]][_0x9bc9[18]][_0x9bc9[17]][_0x9bc9[16]]})})})
\ No newline at end of file
index eb6fe3d..47244fe 100644 (file)
@@ -1,104 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/sugarcrm/fields              ->  index
- * POST    /api/sugarcrm/fields              ->  create
- * GET     /api/sugarcrm/fields/:id          ->  show
- * PUT     /api/sugarcrm/fields/:id          ->  update
- * DELETE  /api/sugarcrm/fields/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-
-var SugarcrmField = require('../../models').SugarcrmField;
-
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) { 
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of SugarcrmFields
-exports.index = function(req, res) {
-  SugarcrmField.findAll()
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single SugarcrmField from the DB
-exports.show = function(req, res) {
-  SugarcrmField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Creates a new SugarcrmField in the DB
-exports.create = function(req, res) {
-  SugarcrmField.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing SugarcrmField in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  SugarcrmField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a SugarcrmField from the DB
-exports.destroy = function(req, res) {
-  SugarcrmField.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
+var _0xb6b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65"];_0xb6b8[0];var _=require(_0xb6b8[1]);var SugarcrmField=require(_0xb6b8[3])[_0xb6b8[2]];function handleError(_0x4777x4,_0x4777x5){_0x4777x5=_0x4777x5||500;return function(_0x4777x6){_0x4777x4[_0xb6b8[5]](_0x4777x5)[_0xb6b8[4]](_0x4777x6)}}function responseWithResult(_0x4777x4,_0x4777x5){_0x4777x5=_0x4777x5||200;return function(_0x4777x8){if(_0x4777x8){_0x4777x4[_0xb6b8[5]](_0x4777x5)[_0xb6b8[6]](_0x4777x8)}}}function handleEntityNotFound(_0x4777x4){return function(_0x4777x8){if(!_0x4777x8){_0x4777x4[_0xb6b8[5]](404)[_0xb6b8[7]]();return null};return _0x4777x8}}function saveUpdates(_0x4777xb){return function(_0x4777x8){return _0x4777x8[_0xb6b8[9]](_0x4777xb)[_0xb6b8[8]](function(_0x4777xc){return _0x4777xc})}}function removeEntity(_0x4777x4){return function(_0x4777x8){if(_0x4777x8){return _0x4777x8[_0xb6b8[10]]()[_0xb6b8[8]](function(){_0x4777x4[_0xb6b8[5]](204)[_0xb6b8[7]]()})}}}exports[_0xb6b8[11]]=function(_0x4777xe,_0x4777x4){SugarcrmField[_0xb6b8[13]]()[_0xb6b8[8]](responseWithResult(_0x4777x4))[_0xb6b8[12]](handleError(_0x4777x4))};exports[_0xb6b8[14]]=function(_0x4777xe,_0x4777x4){SugarcrmField[_0xb6b8[17]](_0x4777xe[_0xb6b8[16]][_0xb6b8[15]])[_0xb6b8[8]](handleEntityNotFound(_0x4777x4))[_0xb6b8[8]](responseWithResult(_0x4777x4))[_0xb6b8[12]](handleError(_0x4777x4))};exports[_0xb6b8[18]]=function(_0x4777xe,_0x4777x4){SugarcrmField[_0xb6b8[18]](_0x4777xe[_0xb6b8[19]])[_0xb6b8[8]](responseWithResult(_0x4777x4,201))[_0xb6b8[12]](handleError(_0x4777x4))};exports[_0xb6b8[20]]=function(_0x4777xe,_0x4777x4){if(_0x4777xe[_0xb6b8[19]][_0xb6b8[15]]){delete _0x4777xe[_0xb6b8[19]][_0xb6b8[15]]};SugarcrmField[_0xb6b8[17]](_0x4777xe[_0xb6b8[16]][_0xb6b8[15]])[_0xb6b8[8]](handleEntityNotFound(_0x4777x4))[_0xb6b8[8]](saveUpdates(_0x4777xe[_0xb6b8[19]]))[_0xb6b8[8]](responseWithResult(_0x4777x4))[_0xb6b8[12]](handleError(_0x4777x4))};exports[_0xb6b8[10]]=function(_0x4777xe,_0x4777x4){SugarcrmField[_0xb6b8[17]](_0x4777xe[_0xb6b8[16]][_0xb6b8[15]])[_0xb6b8[8]](handleEntityNotFound(_0x4777x4))[_0xb6b8[8]](removeEntity(_0x4777x4))[_0xb6b8[12]](handleError(_0x4777x4))}
\ No newline at end of file
index bcc89cc..bbfe7f6 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var SugarcrmField = require('../../models').SugarcrmField;
-
-exports.register = function(socket) {
-  SugarcrmField.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  SugarcrmField.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('sugarcrm_field:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('sugarcrm_field:remove', doc);
-}
+var _0x4796=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x4796[0];var SugarcrmField=require(_0x4796[2])[_0x4796[1]];exports[_0x4796[3]]=function(_0x1289x2){SugarcrmField[_0x4796[4]](function(_0x1289x3){onSave(_0x1289x2,_0x1289x3)});SugarcrmField[_0x4796[5]](function(_0x1289x3){onRemove(_0x1289x2,_0x1289x3)})};function onSave(_0x1289x2,_0x1289x3,_0x1289x5){_0x1289x2[_0x4796[7]](_0x4796[6],_0x1289x3)}function onRemove(_0x1289x2,_0x1289x3,_0x1289x5){_0x1289x2[_0x4796[7]](_0x4796[8],_0x1289x3)}
\ No newline at end of file
index 17d7f06..e37bb01 100644 (file)
@@ -1,17 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./tag.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x5c93=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x74\x61\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x5c93[0];var express=require(_0x5c93[1]);var controller=require(_0x5c93[2]);var auth=require(_0x5c93[3]);var router=express.Router();router[_0x5c93[7]](_0x5c93[4],auth[_0x5c93[5]](),controller[_0x5c93[6]]);router[_0x5c93[7]](_0x5c93[8],auth[_0x5c93[5]](),controller[_0x5c93[9]]);router[_0x5c93[11]](_0x5c93[4],auth[_0x5c93[5]](),controller[_0x5c93[10]]);router[_0x5c93[13]](_0x5c93[8],auth[_0x5c93[5]](),controller[_0x5c93[12]]);router[_0x5c93[14]](_0x5c93[8],auth[_0x5c93[5]](),controller[_0x5c93[12]]);router[_0x5c93[16]](_0x5c93[4],auth[_0x5c93[5]](),controller[_0x5c93[15]]);router[_0x5c93[16]](_0x5c93[8],auth[_0x5c93[5]](),controller[_0x5c93[17]]);module[_0x5c93[18]]=router
\ No newline at end of file
index 38b0632..d3ba0bc 100644 (file)
@@ -1,116 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Tag = require('../../models').Tag;
-var Util = require('../../config/util');
-
-// Get list of tags
-exports.index = function(req, res, next) {
-  return Tag
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single tag
-exports.show = function(req, res) {
-  Tag
-    .findById(req.params.id)
-    .then(function(tag) {
-      if (!tag) {
-        return res.sendStatus(404);
-      }
-      return res.send(tag);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new tag in the DB.
-exports.create = function(req, res) {
-  Tag
-    .create(req.body)
-    .then(function(tag) {
-      return res.status(201).send(tag);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing tag in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return Tag
-    .findById(req.params.id)
-    .then(function(tag) {
-      if (!tag) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(tag, req.body);
-      return updated
-        .save();
-    })
-    .then(function(tag) {
-      return res.status(200).send(tag);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a tag from the DB.
-exports.destroy = function(req, res) {
-  return Tag
-    .scope('configuration')
-    .findById(req.params.id)
-    .then(function(tag) {
-      if (!tag) {
-        return res.sendStatus(404);
-      }
-      if (tagHasAssociation(tag)) {
-        var err = new Error();
-        err.message = 'Tag is associated with an integration\'s configuration';
-        throw err;
-      }
-      return tag.destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.bulkDestroy = function(req, res) {
-  Tag
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
-
-function tagHasAssociation(tag) {
-  return ((tag.ZendeskConfigurations && tag.ZendeskConfigurations.length > 0));
-}
+var _0x65b2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x54\x61\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x6D\x65\x73\x73\x61\x67\x65","\x54\x61\x67\x20\x69\x73\x20\x61\x73\x73\x6F\x63\x69\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\x61\x6E\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x27\x73\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x73\x63\x6F\x70\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x6C\x65\x6E\x67\x74\x68"];_0x65b2[0];var _=require(_0x65b2[1]);var Tag=require(_0x65b2[3])[_0x65b2[2]];var Util=require(_0x65b2[4]);exports[_0x65b2[5]]=function(_0xc1e5x4,_0xc1e5x5,_0xc1e5x6){return Tag[_0x65b2[12]](Util[_0x65b2[11]](_0xc1e5x4[_0x65b2[10]]))[_0x65b2[9]](function(_0xc1e5x8){_0xc1e5x5[_0x65b2[8]](200)[_0x65b2[7]](_0xc1e5x8)})[_0x65b2[6]](function(_0xc1e5x7){return handleError(_0xc1e5x5,_0xc1e5x7)})};exports[_0x65b2[13]]=function(_0xc1e5x4,_0xc1e5x5){Tag[_0x65b2[17]](_0xc1e5x4[_0x65b2[16]][_0x65b2[15]])[_0x65b2[9]](function(_0xc1e5x9){if(!_0xc1e5x9){return _0xc1e5x5[_0x65b2[14]](404)};return _0xc1e5x5[_0x65b2[7]](_0xc1e5x9)})[_0x65b2[6]](function(_0xc1e5x7){return handleError(_0xc1e5x5,_0xc1e5x7)})};exports[_0x65b2[18]]=function(_0xc1e5x4,_0xc1e5x5){Tag[_0x65b2[18]](_0xc1e5x4[_0x65b2[19]])[_0x65b2[9]](function(_0xc1e5x9){return _0xc1e5x5[_0x65b2[8]](201)[_0x65b2[7]](_0xc1e5x9)})[_0x65b2[6]](function(_0xc1e5x7){return handleError(_0xc1e5x5,_0xc1e5x7)})};exports[_0x65b2[20]]=function(_0xc1e5x4,_0xc1e5x5){if(_0xc1e5x4[_0x65b2[19]][_0x65b2[15]]){delete _0xc1e5x4[_0x65b2[19]][_0x65b2[15]]};return Tag[_0x65b2[17]](_0xc1e5x4[_0x65b2[16]][_0x65b2[15]])[_0x65b2[9]](function(_0xc1e5x9){if(!_0xc1e5x9){return _0xc1e5x5[_0x65b2[14]](404)};var _0xc1e5xa=_[_0x65b2[21]](_0xc1e5x9,_0xc1e5x4[_0x65b2[19]]);return _0xc1e5xa[_0x65b2[22]]()})[_0x65b2[9]](function(_0xc1e5x9){return _0xc1e5x5[_0x65b2[8]](200)[_0x65b2[7]](_0xc1e5x9)})[_0x65b2[6]](function(_0xc1e5x7){return handleError(_0xc1e5x5,_0xc1e5x7)})};exports[_0x65b2[23]]=function(_0xc1e5x4,_0xc1e5x5){return Tag[_0x65b2[27]](_0x65b2[26])[_0x65b2[17]](_0xc1e5x4[_0x65b2[16]][_0x65b2[15]])[_0x65b2[9]](function(_0xc1e5x9){if(!_0xc1e5x9){return _0xc1e5x5[_0x65b2[14]](404)};if(tagHasAssociation(_0xc1e5x9)){var _0xc1e5x7= new Error();_0xc1e5x7[_0x65b2[24]]=_0x65b2[25];throw _0xc1e5x7};return _0xc1e5x9[_0x65b2[23]]()})[_0x65b2[9]](function(){return _0xc1e5x5[_0x65b2[14]](204)})[_0x65b2[6]](function(_0xc1e5x7){return handleError(_0xc1e5x5,_0xc1e5x7)})};exports[_0x65b2[28]]=function(_0xc1e5x4,_0xc1e5x5){Tag[_0x65b2[23]]({where:{id:_0xc1e5x4[_0x65b2[10]][_0x65b2[29]]},individualHooks:true})[_0x65b2[9]](function(){return _0xc1e5x5[_0x65b2[14]](204)})[_0x65b2[6]](function(_0xc1e5x7){return handleError(_0xc1e5x5,_0xc1e5x7)})};function handleError(_0xc1e5x5,_0xc1e5x7){return _0xc1e5x5[_0x65b2[8]](500)[_0x65b2[7]](_0xc1e5x7)}function tagHasAssociation(_0xc1e5x9){return ((_0xc1e5x9[_0x65b2[30]]&&_0xc1e5x9[_0x65b2[30]][_0x65b2[31]]>0))}
\ No newline at end of file
index 790b0a2..1e527f4 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Tag = require('../../models').Tag;
-
-exports.register = function(socket) {
-  Tag.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Tag.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('tag:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('tag:remove', doc);
-}
+var _0x37e4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x54\x61\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x74\x61\x67\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x74\x61\x67\x3A\x72\x65\x6D\x6F\x76\x65"];_0x37e4[0];var Tag=require(_0x37e4[2])[_0x37e4[1]];exports[_0x37e4[3]]=function(_0xae36x2){Tag[_0x37e4[4]](function(_0xae36x3){onSave(_0xae36x2,_0xae36x3)});Tag[_0x37e4[5]](function(_0xae36x3){onRemove(_0xae36x2,_0xae36x3)})};function onSave(_0xae36x2,_0xae36x3,_0xae36x5){_0xae36x2[_0x37e4[7]](_0x37e4[6],_0xae36x3)}function onRemove(_0xae36x2,_0xae36x3,_0xae36x5){_0xae36x2[_0x37e4[7]](_0x37e4[8],_0xae36x3)}
\ No newline at end of file
index 794a03a..394ebb9 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/tags', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/tags')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0x3dbc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x74\x61\x67\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x74\x61\x67\x73","\x67\x65\x74"];_0x3dbc[0];var should=require(_0x3dbc[1]);var app=require(_0x3dbc[2]);var request=require(_0x3dbc[3]);describe(_0x3dbc[4],function(){it(_0x3dbc[5],function(_0x724fx4){request(app)[_0x3dbc[13]](_0x3dbc[12])[_0x3dbc[11]](200)[_0x3dbc[11]](_0x3dbc[10],/json/)[_0x3dbc[9]](function(_0x724fx5,_0x724fx6){if(_0x724fx5){return _0x724fx4(_0x724fx5)};_0x724fx6[_0x3dbc[8]][_0x3dbc[1]][_0x3dbc[7]][_0x3dbc[6]](Array);_0x724fx4()})})})
\ No newline at end of file
index afa9ea4..0557279 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./team.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/agents', auth.isAuthenticated(), controller.showAgents);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/:id/agents', auth.isAuthenticated(), controller.addAgents);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-router.delete('/:id/agents', auth.isAuthenticated(), controller.removeAgents);
-
-module.exports = router;
+var _0x9c5f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x74\x65\x61\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x67\x65\x6E\x74\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x9c5f[0];var express=require(_0x9c5f[1]);var controller=require(_0x9c5f[2]);var auth=require(_0x9c5f[3]);var router=express.Router();router[_0x9c5f[7]](_0x9c5f[4],auth[_0x9c5f[5]](),controller[_0x9c5f[6]]);router[_0x9c5f[7]](_0x9c5f[8],auth[_0x9c5f[5]](),controller[_0x9c5f[9]]);router[_0x9c5f[7]](_0x9c5f[10],auth[_0x9c5f[5]](),controller[_0x9c5f[11]]);router[_0x9c5f[13]](_0x9c5f[4],auth[_0x9c5f[5]](),controller[_0x9c5f[12]]);router[_0x9c5f[13]](_0x9c5f[10],auth[_0x9c5f[5]](),controller[_0x9c5f[14]]);router[_0x9c5f[16]](_0x9c5f[8],auth[_0x9c5f[5]](),controller[_0x9c5f[15]]);router[_0x9c5f[17]](_0x9c5f[8],auth[_0x9c5f[5]](),controller[_0x9c5f[15]]);router[_0x9c5f[19]](_0x9c5f[4],auth[_0x9c5f[5]](),controller[_0x9c5f[18]]);router[_0x9c5f[19]](_0x9c5f[8],auth[_0x9c5f[5]](),controller[_0x9c5f[20]]);router[_0x9c5f[19]](_0x9c5f[10],auth[_0x9c5f[5]](),controller[_0x9c5f[21]]);module[_0x9c5f[22]]=router
\ No newline at end of file
index e911873..cddb80f 100644 (file)
@@ -1,170 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var Util = require('../../config/util');
-
-var sequelize = require('../../models').sequelize;
-var Team = require('../../models').Team;
-var Agent = require('../../models').User;
-
-// Get list of teams
-exports.index = function(req, res) {
-  return Team
-    .scope('default')
-    .findAndCountAll(_.merge(Util.getQuery(req.query)))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single team
-exports.show = function(req, res) {
-  return Team
-    .scope('default')
-    .findById(req.params.id)
-    .then(function(team) {
-      if (!team) {
-        return res.sendStatus(404);
-      }
-      return res.send(team);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single team
-exports.showAgents = function(req, res) {
-  return Team
-    .scope('default')
-    .findById(req.params.id)
-    .then(function(team) {
-      if (!team) {
-        return res.sendStatus(404);
-      }
-      return res.status(200).send(team.Users);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new team in the DB.
-exports.create = function(req, res) {
-  return Team
-    .scope('default')
-    .create(req.body)
-    .then(function(team) {
-      return res.status(201).send(team);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      return Util.errorManager.handleUniqueConstraintError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing team in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return Team
-    .findById(req.params.id)
-    .then(function(team) {
-      if (!team) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(team, req.body);
-      return updated
-        .save();
-    })
-    .then(function(team) {
-      return res.status(200).send(team);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a team from the DB.
-exports.destroy = function(req, res) {
-  return Team
-    .findById(req.params.id)
-    .then(function(team) {
-      if (!team) {
-        return res.sendStatus(404);
-      }
-      return team.destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
-  return Team
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing user_has_mail_queue in the DB.
-exports.addAgents = function(req, res, next) {
-  return Team
-    .findById(req.params.id)
-    .then(function(team) {
-      if (!team) {
-        return res.sendStatus(404);
-      }
-      return team
-        .addUsers(req.body.agents);
-    })
-    .then(function() {
-      return res.sendStatus(201);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-exports.removeAgents = function(req, res, next) {
-  return Team
-    .findById(req.params.id)
-    .then(function(team) {
-      if (!team) {
-        return res.sendStatus(404);
-      }
-      return team
-        .removeUser(req.query.agents);
-    })
-    .then(function() {
-      return res.sendStatus(202);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x7f29=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x54\x65\x61\x6D","\x55\x73\x65\x72","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x6D\x65\x72\x67\x65","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x64\x65\x66\x61\x75\x6C\x74","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x61\x64\x64\x55\x73\x65\x72\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72"];_0x7f29[0];var _=require(_0x7f29[1]);var util=require(_0x7f29[2]);var Util=require(_0x7f29[3]);var sequelize=require(_0x7f29[5])[_0x7f29[4]];var Team=require(_0x7f29[5])[_0x7f29[6]];var Agent=require(_0x7f29[5])[_0x7f29[7]];exports[_0x7f29[8]]=function(_0x63acx7,_0x63acx8){return Team[_0x7f29[18]](_0x7f29[17])[_0x7f29[16]](_[_0x7f29[15]](Util[_0x7f29[14]](_0x63acx7[_0x7f29[13]])))[_0x7f29[12]](function(_0x63acxa){_0x63acx8[_0x7f29[11]](200)[_0x7f29[10]](_0x63acxa)})[_0x7f29[9]](function(_0x63acx9){return handleError(_0x63acx8,_0x63acx9)})};exports[_0x7f29[19]]=function(_0x63acx7,_0x63acx8){return Team[_0x7f29[18]](_0x7f29[17])[_0x7f29[23]](_0x63acx7[_0x7f29[22]][_0x7f29[21]])[_0x7f29[12]](function(_0x63acxb){if(!_0x63acxb){return _0x63acx8[_0x7f29[20]](404)};return _0x63acx8[_0x7f29[10]](_0x63acxb)})[_0x7f29[9]](function(_0x63acx9){return handleError(_0x63acx8,_0x63acx9)})};exports[_0x7f29[24]]=function(_0x63acx7,_0x63acx8){return Team[_0x7f29[18]](_0x7f29[17])[_0x7f29[23]](_0x63acx7[_0x7f29[22]][_0x7f29[21]])[_0x7f29[12]](function(_0x63acxb){if(!_0x63acxb){return _0x63acx8[_0x7f29[20]](404)};return _0x63acx8[_0x7f29[11]](200)[_0x7f29[10]](_0x63acxb.Users)})[_0x7f29[9]](function(_0x63acx9){return handleError(_0x63acx8,_0x63acx9)})};exports[_0x7f29[25]]=function(_0x63acx7,_0x63acx8){return Team[_0x7f29[18]](_0x7f29[17])[_0x7f29[25]](_0x63acx7[_0x7f29[28]])[_0x7f29[12]](function(_0x63acxb){return _0x63acx8[_0x7f29[11]](201)[_0x7f29[10]](_0x63acxb)})[_0x7f29[9]](sequelize.UniqueConstraintError,function(_0x63acx9){return Util[_0x7f29[27]][_0x7f29[26]](_0x63acx8,_0x63acx9)})[_0x7f29[9]](function(_0x63acx9){return handleError(_0x63acx8,_0x63acx9)})};exports[_0x7f29[29]]=function(_0x63acx7,_0x63acx8){if(_0x63acx7[_0x7f29[28]][_0x7f29[21]]){delete _0x63acx7[_0x7f29[28]][_0x7f29[21]]};return Team[_0x7f29[23]](_0x63acx7[_0x7f29[22]][_0x7f29[21]])[_0x7f29[12]](function(_0x63acxb){if(!_0x63acxb){return _0x63acx8[_0x7f29[20]](404)};var _0x63acxc=_[_0x7f29[15]](_0x63acxb,_0x63acx7[_0x7f29[28]]);return _0x63acxc[_0x7f29[30]]()})[_0x7f29[12]](function(_0x63acxb){return _0x63acx8[_0x7f29[11]](200)[_0x7f29[10]](_0x63acxb)})[_0x7f29[9]](function(_0x63acx9){return handleError(_0x63acx8,_0x63acx9)})};exports[_0x7f29[31]]=function(_0x63acx7,_0x63acx8){return Team[_0x7f29[23]](_0x63acx7[_0x7f29[22]][_0x7f29[21]])[_0x7f29[12]](function(_0x63acxb){if(!_0x63acxb){return _0x63acx8[_0x7f29[20]](404)};return _0x63acxb[_0x7f29[31]]()})[_0x7f29[12]](function(){return _0x63acx8[_0x7f29[20]](204)})[_0x7f29[9]](function(_0x63acx9){return handleError(_0x63acx8,_0x63acx9)})};exports[_0x7f29[32]]=function(_0x63acx7,_0x63acx8){return Team[_0x7f29[31]]({where:{id:_0x63acx7[_0x7f29[13]][_0x7f29[33]]},individualHooks:true})[_0x7f29[12]](function(){return _0x63acx8[_0x7f29[20]](204)})[_0x7f29[9]](function(_0x63acx9){return handleError(_0x63acx8,_0x63acx9)})};exports[_0x7f29[34]]=function(_0x63acx7,_0x63acx8,_0x63acxd){return Team[_0x7f29[23]](_0x63acx7[_0x7f29[22]][_0x7f29[21]])[_0x7f29[12]](function(_0x63acxb){if(!_0x63acxb){return _0x63acx8[_0x7f29[20]](404)};return _0x63acxb[_0x7f29[36]](_0x63acx7[_0x7f29[28]][_0x7f29[35]])})[_0x7f29[12]](function(){return _0x63acx8[_0x7f29[20]](201)})[_0x7f29[9]](function(_0x63acx9){return _0x63acxd(_0x63acx9)})};exports[_0x7f29[37]]=function(_0x63acx7,_0x63acx8,_0x63acxd){return Team[_0x7f29[23]](_0x63acx7[_0x7f29[22]][_0x7f29[21]])[_0x7f29[12]](function(_0x63acxb){if(!_0x63acxb){return _0x63acx8[_0x7f29[20]](404)};return _0x63acxb[_0x7f29[38]](_0x63acx7[_0x7f29[13]][_0x7f29[35]])})[_0x7f29[12]](function(){return _0x63acx8[_0x7f29[20]](202)})[_0x7f29[9]](function(_0x63acx9){return _0x63acxd(_0x63acx9)})};function handleError(_0x63acx8,_0x63acx9){return _0x63acx8[_0x7f29[11]](500)[_0x7f29[10]](_0x63acx9)}
\ No newline at end of file
index 3f89dc2..7e559fe 100644 (file)
@@ -1,27 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var team = require('../../models').Team;
-
-exports.register = function(socket) {
-  team.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  team.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  team.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('team:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('team:remove', doc);
-}
+var _0x89c8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x54\x65\x61\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x74\x65\x61\x6D\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x74\x65\x61\x6D\x3A\x72\x65\x6D\x6F\x76\x65"];_0x89c8[0];var team=require(_0x89c8[2])[_0x89c8[1]];exports[_0x89c8[3]]=function(_0x4d9cx2){team[_0x89c8[4]](function(_0x4d9cx3){onSave(_0x4d9cx2,_0x4d9cx3)});team[_0x89c8[5]](function(_0x4d9cx3){onSave(_0x4d9cx2,_0x4d9cx3)});team[_0x89c8[6]](function(_0x4d9cx3){onRemove(_0x4d9cx2,_0x4d9cx3)})};function onSave(_0x4d9cx2,_0x4d9cx3,_0x4d9cx5){_0x4d9cx2[_0x89c8[8]](_0x89c8[7],_0x4d9cx3)}function onRemove(_0x4d9cx2,_0x4d9cx3,_0x4d9cx5){_0x4d9cx2[_0x89c8[8]](_0x89c8[9],_0x4d9cx3)}
\ No newline at end of file
index b76928a..638f641 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/teams', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/teams')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x6ce6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74"];_0x6ce6[0];var should=require(_0x6ce6[1]);var app=require(_0x6ce6[2]);var request=require(_0x6ce6[3]);describe(_0x6ce6[4],function(){it(_0x6ce6[5],function(_0xc81fx4){request(app)[_0x6ce6[13]](_0x6ce6[12])[_0x6ce6[11]](200)[_0x6ce6[11]](_0x6ce6[10],/json/)[_0x6ce6[9]](function(_0xc81fx5,_0xc81fx6){if(_0xc81fx5){return _0xc81fx4(_0xc81fx5)};_0xc81fx6[_0x6ce6[8]][_0x6ce6[1]][_0x6ce6[7]][_0x6ce6[6]](Array);_0xc81fx4()})})})
\ No newline at end of file
index f7e10cb..f9761ac 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./telephone.controller');
-var license = require('../../config/license/license.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/internal', auth.isAuthenticated(), controller.getInternal);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), license.isValidDate(), license.isTelephonesLimit(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-
-module.exports = router;
+var _0x48f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x67\x65\x74\x49\x6E\x74\x65\x72\x6E\x61\x6C","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x69\x73\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73\x4C\x69\x6D\x69\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x48f9[0];var express=require(_0x48f9[1]);var auth=require(_0x48f9[2]);var controller=require(_0x48f9[3]);var license=require(_0x48f9[4]);var router=express.Router();router[_0x48f9[8]](_0x48f9[5],auth[_0x48f9[6]](),controller[_0x48f9[7]]);router[_0x48f9[8]](_0x48f9[9],auth[_0x48f9[6]](),controller[_0x48f9[10]]);router[_0x48f9[8]](_0x48f9[11],auth[_0x48f9[6]](),controller[_0x48f9[12]]);router[_0x48f9[16]](_0x48f9[5],auth[_0x48f9[6]](),license[_0x48f9[13]](),license[_0x48f9[14]](),controller[_0x48f9[15]]);router[_0x48f9[18]](_0x48f9[11],auth[_0x48f9[6]](),controller[_0x48f9[17]]);router[_0x48f9[19]](_0x48f9[11],auth[_0x48f9[6]](),controller[_0x48f9[17]]);router[_0x48f9[21]](_0x48f9[5],auth[_0x48f9[6]](),controller[_0x48f9[20]]);router[_0x48f9[21]](_0x48f9[11],auth[_0x48f9[6]](),controller[_0x48f9[22]]);module[_0x48f9[23]]=router
\ No newline at end of file
index 75bb5f7..f6db233 100644 (file)
@@ -1,174 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/telephones              ->  index
- * POST    /api/telephones              ->  create
- * GET     /api/telephones/:id          ->  show
- * PUT     /api/telephones/:id          ->  update
- * DELETE  /api/telephones/:id          ->  destroy
- */
-
-'use strict';
-
-var _ = require('lodash');
-var Util = require('../../config/util');
-
-var sequelize = require('../../models').sequelize;
-var Telephone = require('../../models').User;
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Gets a list of Telephones
-exports.index = function(req, res) {
-  return Telephone
-    .scope('telephone')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-}
-
-// Gets a single Telephone from the DB
-exports.show = function(req, res) {
-  Telephone.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Get list of settings
-exports.getInternal = function(req, res) {
-
-  var _tinternal;
-
-  return Telephone
-    .max('internal')
-    .then(function(tinternal) {
-      _tinternal = tinternal ? tinternal : 0;
-
-      res.status(200).send({
-        internal: _tinternal + 1
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Validate the existence of an internal number
-exports.getInternalValidation = function(req, res) {
-  console.log('req.params', req.params);
-  return Telephone
-    .findAll({
-      where: {
-        internal: req.body.internal
-      }
-    })
-    .then(function(internals) {
-      if (!internals) {
-        return res.sendStatus(404);
-      }
-      return res.send(internals);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new Telephone in the DB
-exports.create = function(req, res) {
-  req.body.role = 'telephone';
-  return Telephone
-    .create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      return Util.errorManager.handleUniqueConstraintError(res, err);
-    })
-    .catch(handleError(res));
-}
-
-// Updates an existing Telephone in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return Telephone.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      return Util.errorManager.handleUniqueConstraintError(res, err);
-    })
-    .catch(handleError(res));
-}
-
-// Deletes a Telephone from the DB
-exports.destroy = function(req, res) {
-  return Telephone.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
-
-// Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
-  return Telephone
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
+var _0x3350=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x49\x6E\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6D\x61\x78","\x67\x65\x74\x49\x6E\x74\x65\x72\x6E\x61\x6C\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x72\x65\x71\x2E\x70\x61\x72\x61\x6D\x73","\x6C\x6F\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x62\x6F\x64\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x72\x6F\x6C\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x75\x70\x64\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0x3350[0];var _=require(_0x3350[1]);var Util=require(_0x3350[2]);var sequelize=require(_0x3350[4])[_0x3350[3]];var Telephone=require(_0x3350[4])[_0x3350[5]];function handleError(_0x6cb7x6,_0x6cb7x7){_0x6cb7x7=_0x6cb7x7||500;return function(_0x6cb7x8){_0x6cb7x6[_0x3350[7]](_0x6cb7x7)[_0x3350[6]](_0x6cb7x8)}}function responseWithResult(_0x6cb7x6,_0x6cb7x7){_0x6cb7x7=_0x6cb7x7||200;return function(_0x6cb7xa){if(_0x6cb7xa){_0x6cb7x6[_0x3350[7]](_0x6cb7x7)[_0x3350[8]](_0x6cb7xa)}}}function handleEntityNotFound(_0x6cb7x6){return function(_0x6cb7xa){if(!_0x6cb7xa){_0x6cb7x6[_0x3350[7]](404)[_0x3350[9]]();return null};return _0x6cb7xa}}function saveUpdates(_0x6cb7xd){return function(_0x6cb7xa){return _0x6cb7xa[_0x3350[11]](_0x6cb7xd)[_0x3350[10]](function(_0x6cb7xe){return _0x6cb7xe})}}function removeEntity(_0x6cb7x6){return function(_0x6cb7xa){if(_0x6cb7xa){return _0x6cb7xa[_0x3350[12]]()[_0x3350[10]](function(){_0x6cb7x6[_0x3350[7]](204)[_0x3350[9]]()})}}}exports[_0x3350[13]]=function(_0x6cb7x10,_0x6cb7x6){return Telephone[_0x3350[19]](_0x3350[18])[_0x3350[17]](Util[_0x3350[16]](_0x6cb7x10[_0x3350[15]]))[_0x3350[10]](function(_0x6cb7x11){_0x6cb7x6[_0x3350[7]](200)[_0x3350[6]](_0x6cb7x11)})[_0x3350[14]](function(_0x6cb7x8){return handleError(_0x6cb7x6,_0x6cb7x8)})};exports[_0x3350[20]]=function(_0x6cb7x10,_0x6cb7x6){Telephone[_0x3350[23]](_0x6cb7x10[_0x3350[22]][_0x3350[21]])[_0x3350[10]](handleEntityNotFound(_0x6cb7x6))[_0x3350[10]](responseWithResult(_0x6cb7x6))[_0x3350[14]](handleError(_0x6cb7x6))};exports[_0x3350[24]]=function(_0x6cb7x10,_0x6cb7x6){var _0x6cb7x12;return Telephone[_0x3350[26]](_0x3350[25])[_0x3350[10]](function(_0x6cb7x13){_0x6cb7x12=_0x6cb7x13?_0x6cb7x13:0;_0x6cb7x6[_0x3350[7]](200)[_0x3350[6]]({internal:_0x6cb7x12+1})})[_0x3350[14]](function(_0x6cb7x8){return handleError(_0x6cb7x6,_0x6cb7x8)})};exports[_0x3350[27]]=function(_0x6cb7x10,_0x6cb7x6){console[_0x3350[29]](_0x3350[28],_0x6cb7x10[_0x3350[22]]);return Telephone[_0x3350[32]]({where:{internal:_0x6cb7x10[_0x3350[31]][_0x3350[25]]}})[_0x3350[10]](function(_0x6cb7x14){if(!_0x6cb7x14){return _0x6cb7x6[_0x3350[30]](404)};return _0x6cb7x6[_0x3350[6]](_0x6cb7x14)})[_0x3350[14]](function(_0x6cb7x8){return handleError(_0x6cb7x6,_0x6cb7x8)})};exports[_0x3350[33]]=function(_0x6cb7x10,_0x6cb7x6){_0x6cb7x10[_0x3350[31]][_0x3350[34]]=_0x3350[18];return Telephone[_0x3350[33]](_0x6cb7x10[_0x3350[31]])[_0x3350[10]](responseWithResult(_0x6cb7x6,201))[_0x3350[14]](sequelize.UniqueConstraintError,function(_0x6cb7x8){return Util[_0x3350[36]][_0x3350[35]](_0x6cb7x6,_0x6cb7x8)})[_0x3350[14]](handleError(_0x6cb7x6))};exports[_0x3350[37]]=function(_0x6cb7x10,_0x6cb7x6){if(_0x6cb7x10[_0x3350[31]][_0x3350[21]]){delete _0x6cb7x10[_0x3350[31]][_0x3350[21]]};return Telephone[_0x3350[23]](_0x6cb7x10[_0x3350[22]][_0x3350[21]])[_0x3350[10]](handleEntityNotFound(_0x6cb7x6))[_0x3350[10]](saveUpdates(_0x6cb7x10[_0x3350[31]]))[_0x3350[10]](responseWithResult(_0x6cb7x6))[_0x3350[14]](sequelize.UniqueConstraintError,function(_0x6cb7x8){return Util[_0x3350[36]][_0x3350[35]](_0x6cb7x6,_0x6cb7x8)})[_0x3350[14]](handleError(_0x6cb7x6))};exports[_0x3350[12]]=function(_0x6cb7x10,_0x6cb7x6){return Telephone[_0x3350[23]](_0x6cb7x10[_0x3350[22]][_0x3350[21]])[_0x3350[10]](handleEntityNotFound(_0x6cb7x6))[_0x3350[10]](removeEntity(_0x6cb7x6))[_0x3350[14]](handleError(_0x6cb7x6))};exports[_0x3350[38]]=function(_0x6cb7x10,_0x6cb7x6){return Telephone[_0x3350[12]]({where:{id:_0x6cb7x10[_0x3350[15]][_0x3350[39]]},individualHooks:true})[_0x3350[10]](function(){return _0x6cb7x6[_0x3350[30]](204)})[_0x3350[14]](function(_0x6cb7x8){return handleError(_0x6cb7x6,_0x6cb7x8)})}
\ No newline at end of file
index 11f6d7a..3a57c53 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-// var Telephone = require('../../models').Telephone;
-
-exports.register = function (socket) {
-  // Telephone.afterCreate(function(doc) {
-  //   onSave(socket, doc);
-  // });
-  // Telephone.afterDestroy(function(doc) {
-  //   onRemove(socket, doc);
-  // });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('telephone:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('telephone:remove', doc);
-}
+var _0x53b3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x72\x65\x67\x69\x73\x74\x65\x72","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x53b3[0];exports[_0x53b3[1]]=function(_0x653fx1){};function onSave(_0x653fx1,_0x653fx3,_0x653fx4){_0x653fx1[_0x53b3[3]](_0x53b3[2],_0x653fx3)}function onRemove(_0x653fx1,_0x653fx3,_0x653fx4){_0x653fx1[_0x53b3[3]](_0x53b3[4],_0x653fx3)}
\ No newline at end of file
index e2c0971..41b9516 100644 (file)
@@ -1,17 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./trigger.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-
-module.exports = router;
+var _0x2611=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x2611[0];var express=require(_0x2611[1]);var controller=require(_0x2611[2]);var auth=require(_0x2611[3]);var router=express.Router();router[_0x2611[7]](_0x2611[4],auth[_0x2611[5]](),controller[_0x2611[6]]);router[_0x2611[7]](_0x2611[8],auth[_0x2611[5]](),controller[_0x2611[9]]);router[_0x2611[11]](_0x2611[4],auth[_0x2611[5]](),controller[_0x2611[10]]);router[_0x2611[13]](_0x2611[8],auth[_0x2611[5]](),controller[_0x2611[12]]);router[_0x2611[14]](_0x2611[8],auth[_0x2611[5]](),controller[_0x2611[12]]);router[_0x2611[16]](_0x2611[8],auth[_0x2611[5]](),controller[_0x2611[15]]);router[_0x2611[16]](_0x2611[4],auth[_0x2611[5]](),controller[_0x2611[17]]);module[_0x2611[18]]=router
\ No newline at end of file
index 97bbaf4..4ad7aaa 100644 (file)
@@ -1,199 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var Util = require('../../config/util');
-var sequelize = require('../../models').sequelize;
-
-var Trigger = require('../../models').Trigger;
-var ToolsCondition = require('../../models').ToolsCondition;
-var ToolsAction = require('../../models').ToolsAction;
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return Trigger
-    .scope('all')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single Trigger
-exports.show = function(req, res) {
-  Trigger
-    .scope('all')
-    .findById(req.params.id)
-    .then(function(Trigger) {
-      if (!Trigger) {
-        return res.sendStatus(404);
-      }
-      return res.send(Trigger);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new Trigger in the DB.
-exports.create = function(req, res) {
-  Trigger
-    .create(req.body, {
-      include: [{
-        model: ToolsCondition,
-        as: 'All'
-      }, {
-        model: ToolsCondition,
-        as: 'Any'
-      }, {
-        model: ToolsAction,
-        as: 'Actions'
-      }]
-    })
-    .then(function() {
-      return res.sendStatus(201);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing Trigger in the DB.
-exports.update = function(req, res, next) {
-  var _trigger;
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return sequelize.transaction(function(t) {
-      return Trigger
-        .findById(req.params.id)
-        .then(function(trigger) {
-          if (!trigger) {
-            return res.sendStatus(404);
-          }
-          var updated = _.merge(trigger, req.body);
-          return updated
-            .save({
-              transaction: t
-            });
-        })
-        .then(function(trigger) {
-          _trigger = trigger;
-          if (req.body.Any) {
-            return ToolsCondition
-              .destroy({
-                where: {
-                  TriggerAnyId: req.params.id
-                },
-                transaction: t
-              });
-          }
-        })
-        .then(function() {
-          if (req.body.Any && Array.isArray(req.body.Any) && req.body.Any.length) {
-            _.forEach(req.body.Any, function(elem) {
-              elem.TriggerAnyId = req.params.id;
-            });
-            return ToolsCondition
-              .bulkCreate(req.body.Any, {
-                transaction: t
-              });
-          }
-        })
-        .then(function() {
-          if (req.body.All) {
-            return ToolsCondition
-              .destroy({
-                where: {
-                  TriggerAllId: req.params.id
-                },
-                transaction: t
-              });
-          }
-        })
-        .then(function() {
-          if (req.body.All && Array.isArray(req.body.All) && req.body.All.length) {
-            _.forEach(req.body.All, function(elem) {
-              elem.TriggerAllId = req.params.id;
-            });
-            return ToolsCondition
-              .bulkCreate(req.body.All, {
-                transaction: t
-              });
-          }
-        })
-        .then(function() {
-          if (req.body.Actions) {
-            return ToolsAction
-              .destroy({
-                where: {
-                  TriggerId: req.params.id
-                },
-                transaction: t
-              });
-          }
-        })
-        .then(function() {
-          if (req.body.Actions && Array.isArray(req.body.Actions) && req.body.Actions.length) {
-            _.forEach(req.body.Actions, function(elem) {
-              elem.TriggerId = req.params.id;
-            });
-            return ToolsAction
-              .bulkCreate(req.body.Actions, {
-                transaction: t
-              });
-          }
-        });
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Deletes a Trigger from the DB.
-exports.destroy = function(req, res) {
-  Trigger
-    .findById(req.params.id)
-    .then(function(Trigger) {
-      if (!Trigger) {
-        return res.sendStatus(404);
-      }
-      Trigger.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.bulkDestroy = function(req, res) {
-  Trigger
-    .destroy({
-      where: {
-        id: req.query.id
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xaeb5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x54\x72\x69\x67\x67\x65\x72","\x54\x6F\x6F\x6C\x73\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x6F\x6F\x6C\x73\x41\x63\x74\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x61\x6C\x6C","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x41\x6C\x6C","\x41\x6E\x79","\x41\x63\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x6C\x6F\x67","\x69\x73\x41\x72\x72\x61\x79","\x6C\x65\x6E\x67\x74\x68","\x54\x72\x69\x67\x67\x65\x72\x49\x64","\x66\x6F\x72\x45\x61\x63\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x54\x72\x69\x67\x67\x65\x72\x41\x6C\x6C\x49\x64","\x54\x72\x69\x67\x67\x65\x72\x41\x6E\x79\x49\x64","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xaeb5[0];var _=require(_0xaeb5[1]);var util=require(_0xaeb5[2]);var Util=require(_0xaeb5[3]);var sequelize=require(_0xaeb5[5])[_0xaeb5[4]];var Trigger=require(_0xaeb5[5])[_0xaeb5[6]];var ToolsCondition=require(_0xaeb5[5])[_0xaeb5[7]];var ToolsAction=require(_0xaeb5[5])[_0xaeb5[8]];exports[_0xaeb5[9]]=function(_0x3b89x8,_0x3b89x9,_0x3b89xa){return Trigger[_0xaeb5[18]](_0xaeb5[17])[_0xaeb5[16]](Util[_0xaeb5[15]](_0x3b89x8[_0xaeb5[14]]))[_0xaeb5[13]](function(_0x3b89xc){_0x3b89x9[_0xaeb5[12]](200)[_0xaeb5[11]](_0x3b89xc)})[_0xaeb5[10]](function(_0x3b89xb){return handleError(_0x3b89x9,_0x3b89xb)})};exports[_0xaeb5[19]]=function(_0x3b89x8,_0x3b89x9){Trigger[_0xaeb5[18]](_0xaeb5[17])[_0xaeb5[23]](_0x3b89x8[_0xaeb5[22]][_0xaeb5[21]])[_0xaeb5[13]](function(Trigger){if(!Trigger){return _0x3b89x9[_0xaeb5[20]](404)};return _0x3b89x9[_0xaeb5[11]](Trigger)})[_0xaeb5[10]](function(_0x3b89xb){return handleError(_0x3b89x9,_0x3b89xb)})};exports[_0xaeb5[24]]=function(_0x3b89x8,_0x3b89x9){Trigger[_0xaeb5[24]](_0x3b89x8[_0xaeb5[25]],{include:[{model:ToolsCondition,as:_0xaeb5[26]},{model:ToolsCondition,as:_0xaeb5[27]},{model:ToolsAction,as:_0xaeb5[28]}]})[_0xaeb5[13]](function(){return _0x3b89x9[_0xaeb5[20]](201)})[_0xaeb5[10]](function(_0x3b89xb){return handleError(_0x3b89x9,_0x3b89xb)})};exports[_0xaeb5[29]]=function(_0x3b89x8,_0x3b89x9,_0x3b89xa){var _0x3b89xd;if(_0x3b89x8[_0xaeb5[25]][_0xaeb5[21]]){delete _0x3b89x8[_0xaeb5[25]][_0xaeb5[21]]};return sequelize[_0xaeb5[41]](function(_0x3b89xe){return Trigger[_0xaeb5[23]](_0x3b89x8[_0xaeb5[22]][_0xaeb5[21]])[_0xaeb5[13]](function(_0x3b89x10){if(!_0x3b89x10){return _0x3b89x9[_0xaeb5[20]](404)};var _0x3b89x11=_[_0xaeb5[39]](_0x3b89x10,_0x3b89x8[_0xaeb5[25]]);return _0x3b89x11[_0xaeb5[40]]({transaction:_0x3b89xe})})[_0xaeb5[13]](function(_0x3b89x10){_0x3b89xd=_0x3b89x10;if(_0x3b89x8[_0xaeb5[25]][_0xaeb5[27]]){return ToolsCondition[_0xaeb5[36]]({where:{TriggerAnyId:_0x3b89x8[_0xaeb5[22]][_0xaeb5[21]]},transaction:_0x3b89xe})}})[_0xaeb5[13]](function(){if(_0x3b89x8[_0xaeb5[25]][_0xaeb5[27]]&&Array[_0xaeb5[31]](_0x3b89x8[_0xaeb5[25]].Any)&&_0x3b89x8[_0xaeb5[25]][_0xaeb5[27]][_0xaeb5[32]]){_[_0xaeb5[34]](_0x3b89x8[_0xaeb5[25]].Any,function(_0x3b89xf){_0x3b89xf[_0xaeb5[38]]=_0x3b89x8[_0xaeb5[22]][_0xaeb5[21]]});return ToolsCondition[_0xaeb5[35]](_0x3b89x8[_0xaeb5[25]].Any,{transaction:_0x3b89xe})}})[_0xaeb5[13]](function(){if(_0x3b89x8[_0xaeb5[25]][_0xaeb5[26]]){return ToolsCondition[_0xaeb5[36]]({where:{TriggerAllId:_0x3b89x8[_0xaeb5[22]][_0xaeb5[21]]},transaction:_0x3b89xe})}})[_0xaeb5[13]](function(){if(_0x3b89x8[_0xaeb5[25]][_0xaeb5[26]]&&Array[_0xaeb5[31]](_0x3b89x8[_0xaeb5[25]].All)&&_0x3b89x8[_0xaeb5[25]][_0xaeb5[26]][_0xaeb5[32]]){_[_0xaeb5[34]](_0x3b89x8[_0xaeb5[25]].All,function(_0x3b89xf){_0x3b89xf[_0xaeb5[37]]=_0x3b89x8[_0xaeb5[22]][_0xaeb5[21]]});return ToolsCondition[_0xaeb5[35]](_0x3b89x8[_0xaeb5[25]].All,{transaction:_0x3b89xe})}})[_0xaeb5[13]](function(){if(_0x3b89x8[_0xaeb5[25]][_0xaeb5[28]]){return ToolsAction[_0xaeb5[36]]({where:{TriggerId:_0x3b89x8[_0xaeb5[22]][_0xaeb5[21]]},transaction:_0x3b89xe})}})[_0xaeb5[13]](function(){if(_0x3b89x8[_0xaeb5[25]][_0xaeb5[28]]&&Array[_0xaeb5[31]](_0x3b89x8[_0xaeb5[25]].Actions)&&_0x3b89x8[_0xaeb5[25]][_0xaeb5[28]][_0xaeb5[32]]){_[_0xaeb5[34]](_0x3b89x8[_0xaeb5[25]].Actions,function(_0x3b89xf){_0x3b89xf[_0xaeb5[33]]=_0x3b89x8[_0xaeb5[22]][_0xaeb5[21]]});return ToolsAction[_0xaeb5[35]](_0x3b89x8[_0xaeb5[25]].Actions,{transaction:_0x3b89xe})}})})[_0xaeb5[13]](function(){return _0x3b89x9[_0xaeb5[20]](200)})[_0xaeb5[10]](function(_0x3b89xb){console[_0xaeb5[30]](_0x3b89xb);return handleError(_0x3b89x9,_0x3b89xb)})};exports[_0xaeb5[36]]=function(_0x3b89x8,_0x3b89x9){Trigger[_0xaeb5[23]](_0x3b89x8[_0xaeb5[22]][_0xaeb5[21]])[_0xaeb5[13]](function(Trigger){if(!Trigger){return _0x3b89x9[_0xaeb5[20]](404)};Trigger[_0xaeb5[36]]()[_0xaeb5[13]](function(){return _0x3b89x9[_0xaeb5[20]](204)})[_0xaeb5[10]](function(_0x3b89xb){return handleError(_0x3b89x9,_0x3b89xb)})})[_0xaeb5[10]](function(_0x3b89xb){return handleError(_0x3b89x9,_0x3b89xb)})};exports[_0xaeb5[42]]=function(_0x3b89x8,_0x3b89x9){Trigger[_0xaeb5[36]]({where:{id:_0x3b89x8[_0xaeb5[14]][_0xaeb5[21]]},individualHooks:true})[_0xaeb5[13]](function(){return _0x3b89x9[_0xaeb5[20]](204)})[_0xaeb5[10]](function(_0x3b89xb){return handleError(_0x3b89x9,_0x3b89xb)})};function handleError(_0x3b89x9,_0x3b89xb){return _0x3b89x9[_0xaeb5[12]](500)[_0xaeb5[11]](_0x3b89xb)}
\ No newline at end of file
index 7fe5fa2..6ca47f8 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Trigger = require('../../models').Trigger;
-
-exports.register = function(socket) {
-  Trigger.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Trigger.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('trigger:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('trigger:remove', doc);
-}
+var _0x84cf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x54\x72\x69\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x74\x72\x69\x67\x67\x65\x72\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x74\x72\x69\x67\x67\x65\x72\x3A\x72\x65\x6D\x6F\x76\x65"];_0x84cf[0];var Trigger=require(_0x84cf[2])[_0x84cf[1]];exports[_0x84cf[3]]=function(_0xe392x2){Trigger[_0x84cf[4]](function(_0xe392x3){onSave(_0xe392x2,_0xe392x3)});Trigger[_0x84cf[5]](function(_0xe392x3){onRemove(_0xe392x2,_0xe392x3)})};function onSave(_0xe392x2,_0xe392x3,_0xe392x5){_0xe392x2[_0x84cf[7]](_0x84cf[6],_0xe392x3)}function onRemove(_0xe392x2,_0xe392x3,_0xe392x5){_0xe392x2[_0x84cf[7]](_0x84cf[8],_0xe392x3)}
\ No newline at end of file
index c88586d..de71475 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/triggers', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/triggers')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0x94a8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x67\x65\x74"];_0x94a8[0];var should=require(_0x94a8[1]);var app=require(_0x94a8[2]);var request=require(_0x94a8[3]);describe(_0x94a8[4],function(){it(_0x94a8[5],function(_0x467cx4){request(app)[_0x94a8[13]](_0x94a8[12])[_0x94a8[11]](200)[_0x94a8[11]](_0x94a8[10],/json/)[_0x94a8[9]](function(_0x467cx5,_0x467cx6){if(_0x467cx5){return _0x467cx4(_0x467cx5)};_0x467cx6[_0x94a8[8]][_0x94a8[1]][_0x94a8[7]][_0x94a8[6]](Array);_0x467cx4()})})})
\ No newline at end of file
index ea72fdd..0115863 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./trunk.controller');
-var config = require('../../config/environment');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/validate', auth.isAuthenticated(), controller.trunkValidation);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xae6a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x74\x72\x75\x6E\x6B\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x74\x72\x75\x6E\x6B\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xae6a[0];var express=require(_0xae6a[1]);var controller=require(_0xae6a[2]);var config=require(_0xae6a[3]);var auth=require(_0xae6a[4]);var router=express.Router();router[_0xae6a[8]](_0xae6a[5],auth[_0xae6a[6]](),controller[_0xae6a[7]]);router[_0xae6a[8]](_0xae6a[9],auth[_0xae6a[6]](),controller[_0xae6a[10]]);router[_0xae6a[12]](_0xae6a[5],auth[_0xae6a[6]](),controller[_0xae6a[11]]);router[_0xae6a[12]](_0xae6a[13],auth[_0xae6a[6]](),controller[_0xae6a[14]]);router[_0xae6a[16]](_0xae6a[9],auth[_0xae6a[6]](),controller[_0xae6a[15]]);router[_0xae6a[18]](_0xae6a[5],auth[_0xae6a[6]](),controller[_0xae6a[17]]);router[_0xae6a[18]](_0xae6a[9],auth[_0xae6a[6]](),controller[_0xae6a[19]]);module[_0xae6a[20]]=router
\ No newline at end of file
index eff129a..06e3082 100644 (file)
@@ -1,160 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Trunk = require('../../models').Trunk;
-var VoiceExtension = require('../../models').VoiceExtension;
-var sequelize = require('../../models').sequelize;
-var util = require('util');
-var Util = require('../../config/util');
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return Trunk
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single trunk
-exports.show = function(req, res) {
-  return Trunk
-    .findById(req.params.id)
-    .then(function(trunk) {
-      if (!trunk) {
-        return res.sendStatus(404);
-      }
-      return res.send(trunk);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Validate the existence of a trunk
-exports.trunkValidation = function(req, res) {
-  return Trunk
-    .findAll({
-      where: {
-        name: req.body.name
-      }
-    })
-    .then(function(trunks) {
-      if (!trunks) {
-        return res.sendStatus(404);
-      }
-      return res.send(trunks);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new trunk in the DB.
-exports.create = function(req, res) {
-  return Trunk
-    .create(req.body)
-    .then(function(trunk) {
-      return res.status(201).send(trunk);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return Trunk
-    .findById(req.params.id)
-    .then(function(trunk) {
-      if (!trunk) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(trunk, req.body);
-      return updated
-        .save();
-    })
-    .then(function(trunk) {
-      return res.status(200).send(trunk);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Deletes a trunk from the DB.
-exports.destroy = function(req, res) {
-  return Trunk
-    .findById(req.params.id)
-    .then(function(trunk) {
-      if (!trunk) {
-        return res.sendStatus(404);
-      }
-      return trunk
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes multiple trunk from the DB.
-exports.bulkDestroy = function(req, res) {
-  var associatedTrunks = false;
-
-  Trunk
-    .findAll({
-      where: {
-        id: req.query.id
-      },
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(trunks) {
-      if (!trunks) {
-        return res.sendStatus(404);
-      }
-      trunks.forEach(function(element) {
-        if (element.VoiceExtensions.length > 0) {
-          associatedTrunks = true;
-        }
-      });
-      if (associatedTrunks) {
-        return res.status(500).send({
-          message: 'MESSAGE_TRUNK_OUTBOUND_ASSOCIATED'
-        });
-      }
-      Trunk
-        .destroy({
-          where: {
-            id: req.query.id
-          },
-          individualHooks: true
-        })
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x90a9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x54\x72\x75\x6E\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x74\x72\x75\x6E\x6B\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x62\x6F\x64\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x6C\x6F\x67","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x6C\x65\x6E\x67\x74\x68","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x66\x6F\x72\x45\x61\x63\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x54\x52\x55\x4E\x4B\x5F\x4F\x55\x54\x42\x4F\x55\x4E\x44\x5F\x41\x53\x53\x4F\x43\x49\x41\x54\x45\x44"];_0x90a9[0];var _=require(_0x90a9[1]);var Trunk=require(_0x90a9[3])[_0x90a9[2]];var VoiceExtension=require(_0x90a9[3])[_0x90a9[4]];var sequelize=require(_0x90a9[3])[_0x90a9[5]];var util=require(_0x90a9[6]);var Util=require(_0x90a9[7]);exports[_0x90a9[8]]=function(_0x929cx7,_0x929cx8,_0x929cx9){return Trunk[_0x90a9[15]](Util[_0x90a9[14]](_0x929cx7[_0x90a9[13]]))[_0x90a9[12]](function(_0x929cxb){_0x929cx8[_0x90a9[11]](200)[_0x90a9[10]](_0x929cxb)})[_0x90a9[9]](function(_0x929cxa){return handleError(_0x929cx8,_0x929cxa)})};exports[_0x90a9[16]]=function(_0x929cx7,_0x929cx8){return Trunk[_0x90a9[20]](_0x929cx7[_0x90a9[19]][_0x90a9[18]])[_0x90a9[12]](function(_0x929cxc){if(!_0x929cxc){return _0x929cx8[_0x90a9[17]](404)};return _0x929cx8[_0x90a9[10]](_0x929cxc)})[_0x90a9[9]](function(_0x929cxa){return handleError(_0x929cx8,_0x929cxa)})};exports[_0x90a9[21]]=function(_0x929cx7,_0x929cx8){return Trunk[_0x90a9[24]]({where:{name:_0x929cx7[_0x90a9[23]][_0x90a9[22]]}})[_0x90a9[12]](function(_0x929cxd){if(!_0x929cxd){return _0x929cx8[_0x90a9[17]](404)};return _0x929cx8[_0x90a9[10]](_0x929cxd)})[_0x90a9[9]](function(_0x929cxa){return handleError(_0x929cx8,_0x929cxa)})};exports[_0x90a9[25]]=function(_0x929cx7,_0x929cx8){return Trunk[_0x90a9[25]](_0x929cx7[_0x90a9[23]])[_0x90a9[12]](function(_0x929cxc){return _0x929cx8[_0x90a9[11]](201)[_0x90a9[10]](_0x929cxc)})[_0x90a9[9]](function(_0x929cxa){return handleError(_0x929cx8,_0x929cxa)})};exports[_0x90a9[26]]=function(_0x929cx7,_0x929cx8){if(_0x929cx7[_0x90a9[23]][_0x90a9[18]]){delete _0x929cx7[_0x90a9[23]][_0x90a9[18]]};return Trunk[_0x90a9[20]](_0x929cx7[_0x90a9[19]][_0x90a9[18]])[_0x90a9[12]](function(_0x929cxc){if(!_0x929cxc){return _0x929cx8[_0x90a9[17]](404)};var _0x929cxe=_[_0x90a9[28]](_0x929cxc,_0x929cx7[_0x90a9[23]]);return _0x929cxe[_0x90a9[29]]()})[_0x90a9[12]](function(_0x929cxc){return _0x929cx8[_0x90a9[11]](200)[_0x90a9[10]](_0x929cxc)})[_0x90a9[9]](function(_0x929cxa){console[_0x90a9[27]](_0x929cxa);return handleError(_0x929cx8,_0x929cxa)})};exports[_0x90a9[30]]=function(_0x929cx7,_0x929cx8){return Trunk[_0x90a9[20]](_0x929cx7[_0x90a9[19]][_0x90a9[18]])[_0x90a9[12]](function(_0x929cxc){if(!_0x929cxc){return _0x929cx8[_0x90a9[17]](404)};return _0x929cxc[_0x90a9[30]]()})[_0x90a9[12]](function(){return _0x929cx8[_0x90a9[17]](204)})[_0x90a9[9]](function(_0x929cxa){return handleError(_0x929cx8,_0x929cxa)})};exports[_0x90a9[31]]=function(_0x929cx7,_0x929cx8){var _0x929cxf=false;Trunk[_0x90a9[24]]({where:{id:_0x929cx7[_0x90a9[13]][_0x90a9[18]]},include:[{all:true}]})[_0x90a9[12]](function(_0x929cxd){if(!_0x929cxd){return _0x929cx8[_0x90a9[17]](404)};_0x929cxd[_0x90a9[34]](function(_0x929cx10){if(_0x929cx10[_0x90a9[33]][_0x90a9[32]]>0){_0x929cxf=true}});if(_0x929cxf){return _0x929cx8[_0x90a9[11]](500)[_0x90a9[10]]({message:_0x90a9[35]})};Trunk[_0x90a9[30]]({where:{id:_0x929cx7[_0x90a9[13]][_0x90a9[18]]},individualHooks:true})[_0x90a9[12]](function(){return _0x929cx8[_0x90a9[17]](204)})[_0x90a9[9]](function(_0x929cxa){return handleError(_0x929cx8,_0x929cxa)})})[_0x90a9[9]](function(_0x929cxa){return handleError(_0x929cx8,_0x929cxa)})};function handleError(_0x929cx8,_0x929cxa){return _0x929cx8[_0x90a9[11]](500)[_0x90a9[10]](_0x929cxa)}
\ No newline at end of file
index bf99ee7..ecd0fb1 100644 (file)
@@ -1,30 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Trunk = require('../../models').Trunk;
-
-exports.register = function(socket) {
-  Trunk.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Trunk.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-
-  Trunk.beforeUpdate(function(doc) {
-    if (doc.changed('name')) {
-      throw new Error("You can't modify a trunk name");
-    }
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('trunk:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('trunk:remove', doc);
-}
+var _0x7612=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x54\x72\x75\x6E\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6E\x61\x6D\x65","\x63\x68\x61\x6E\x67\x65\x64","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x74\x72\x75\x6E\x6B\x20\x6E\x61\x6D\x65","\x62\x65\x66\x6F\x72\x65\x55\x70\x64\x61\x74\x65","\x74\x72\x75\x6E\x6B\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x74\x72\x75\x6E\x6B\x3A\x72\x65\x6D\x6F\x76\x65"];_0x7612[0];var Trunk=require(_0x7612[2])[_0x7612[1]];exports[_0x7612[3]]=function(_0x85dfx2){Trunk[_0x7612[4]](function(_0x85dfx3){onSave(_0x85dfx2,_0x85dfx3)});Trunk[_0x7612[5]](function(_0x85dfx3){onRemove(_0x85dfx2,_0x85dfx3)});Trunk[_0x7612[9]](function(_0x85dfx3){if(_0x85dfx3[_0x7612[7]](_0x7612[6])){throw  new Error(_0x7612[8])}})};function onSave(_0x85dfx2,_0x85dfx3,_0x85dfx5){_0x85dfx2[_0x7612[11]](_0x7612[10],_0x85dfx3)}function onRemove(_0x85dfx2,_0x85dfx3,_0x85dfx5){_0x85dfx2[_0x7612[11]](_0x7612[12],_0x85dfx3)}
\ No newline at end of file
index 44410d3..4cbd835 100644 (file)
@@ -1,12 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./update.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), auth.hasRole('admin'), controller.index);
-router.get('/pull', auth.isAuthenticated(), auth.hasRole('admin'), controller.pull);
-
-module.exports = router;
+var _0x7e98=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x70\x64\x61\x74\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x61\x64\x6D\x69\x6E","\x68\x61\x73\x52\x6F\x6C\x65","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x70\x75\x6C\x6C","\x70\x75\x6C\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0x7e98[0];var express=require(_0x7e98[1]);var controller=require(_0x7e98[2]);var auth=require(_0x7e98[3]);var router=express.Router();router[_0x7e98[9]](_0x7e98[4],auth[_0x7e98[5]](),auth[_0x7e98[7]](_0x7e98[6]),controller[_0x7e98[8]]);router[_0x7e98[9]](_0x7e98[10],auth[_0x7e98[5]](),auth[_0x7e98[7]](_0x7e98[6]),controller[_0x7e98[11]]);module[_0x7e98[12]]=router
\ No newline at end of file
index f882d67..77c378f 100644 (file)
@@ -1,50 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var path = require('path');
-var moment = require('moment');
-var Promise = require('bluebird');
-var exec = Promise.promisify(require('child_process').exec);
-
-var config = require('../../config/environment');
-
-var Git = require('simple-git')(path.join(config.root));
-
-// Get list of updates
-exports.index = function(req, res) {
-  return Git
-    .log(function(err, logs) {
-      if (err) {
-        return handleError(res, err);
-      }
-
-      var rows = [];
-      for (var i = 0; i < 10 && i < logs.all.length; i++) {
-        rows.push({
-          version: logs.all[i].message.split('|')[1] || 'unknown',
-          message: logs.all[i].message.split('|')[0],
-          createdAt: moment(logs.all[i].date).format("YYYY-MM-DD HH:mm:ss")
-        });
-      }
-
-      return res.status(200).send({
-        rows: rows,
-        count: rows.length
-      });
-    });
-};
-
-// Get a single update
-exports.pull = function(req, res) {
-  return exec('git pull')
-    .then(function() {
-      return res.sendStatus(201).send();
-    })
-    .catch(function(err) {
-      console.error(err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xceeb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x74\x68","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x65\x78\x65\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x70\x72\x6F\x6D\x69\x73\x69\x66\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x72\x6F\x6F\x74","\x6A\x6F\x69\x6E","\x73\x69\x6D\x70\x6C\x65\x2D\x67\x69\x74","\x69\x6E\x64\x65\x78","\x6C\x65\x6E\x67\x74\x68","\x61\x6C\x6C","\x7C","\x73\x70\x6C\x69\x74","\x6D\x65\x73\x73\x61\x67\x65","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x64\x61\x74\x65","\x70\x75\x73\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6C\x6F\x67","\x70\x75\x6C\x6C","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x67\x69\x74\x20\x70\x75\x6C\x6C"];_0xceeb[0];var _=require(_0xceeb[1]);var path=require(_0xceeb[2]);var moment=require(_0xceeb[3]);var Promise=require(_0xceeb[4]);var exec=Promise[_0xceeb[7]](require(_0xceeb[6])[_0xceeb[5]]);var config=require(_0xceeb[8]);var Git=require(_0xceeb[11])(path[_0xceeb[10]](config[_0xceeb[9]]));exports[_0xceeb[12]]=function(_0x9778x8,_0x9778x9){return Git[_0xceeb[25]](function(_0x9778xa,_0x9778xb){if(_0x9778xa){return handleError(_0x9778x9,_0x9778xa)};var _0x9778xc=[];for(var _0x9778xd=0;_0x9778xd<10&&_0x9778xd<_0x9778xb[_0xceeb[14]][_0xceeb[13]];_0x9778xd++){_0x9778xc[_0xceeb[22]]({version:_0x9778xb[_0xceeb[14]][_0x9778xd][_0xceeb[17]][_0xceeb[16]](_0xceeb[15])[1]||_0xceeb[18],message:_0x9778xb[_0xceeb[14]][_0x9778xd][_0xceeb[17]][_0xceeb[16]](_0xceeb[15])[0],createdAt:moment(_0x9778xb[_0xceeb[14]][_0x9778xd][_0xceeb[21]])[_0xceeb[20]](_0xceeb[19])})};return _0x9778x9[_0xceeb[24]](200)[_0xceeb[23]]({rows:_0x9778xc,count:_0x9778xc[_0xceeb[13]]})})};exports[_0xceeb[26]]=function(_0x9778x8,_0x9778x9){return exec(_0xceeb[31])[_0xceeb[30]](function(){return _0x9778x9[_0xceeb[29]](201)[_0xceeb[23]]()})[_0xceeb[28]](function(_0x9778xa){console[_0xceeb[27]](_0x9778xa)})};function handleError(_0x9778x9,_0x9778xa){return _0x9778x9[_0xceeb[24]](500)[_0xceeb[23]](_0x9778xa)}
\ No newline at end of file
index 3d8b8b6..236c51f 100644 (file)
@@ -1,26 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./user.controller');
-var config = require('../../config/environment');
-var auth = require('../../auth/auth.service');
-var license = require('../../config/license/license.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/me', auth.isAuthenticated(), controller.me);
-router.get('/all', auth.isAuthenticated(), controller.getUsers);
-router.get('/avatar/:filename', controller.getAvatar);
-router.get('/:id/avatar', controller.getAvatarById);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/validate/:field', auth.isAuthenticated(), controller.userValidation);
-router.put('/password', auth.isAuthenticated(), controller.changePassword);
-router.put('/:id/password', auth.isAuthenticated(), auth.hasRole('admin'), controller.resetPassword);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.post('/', auth.isAuthenticated(), license.isValidDate(), license.isUsersLimit(), controller.create);
-router.post('/:id/avatar', auth.isAuthenticated(), controller.changeAvatar);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x92f6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x6D\x65","\x6D\x65","\x2F\x61\x6C\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x2F\x61\x76\x61\x74\x61\x72\x2F\x3A\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x67\x65\x74\x41\x76\x61\x74\x61\x72","\x2F\x3A\x69\x64\x2F\x61\x76\x61\x74\x61\x72","\x67\x65\x74\x41\x76\x61\x74\x61\x72\x42\x79\x49\x64","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x75\x73\x65\x72\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x2F\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x68\x61\x6E\x67\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x70\x61\x73\x73\x77\x6F\x72\x64","\x61\x64\x6D\x69\x6E","\x68\x61\x73\x52\x6F\x6C\x65","\x72\x65\x73\x65\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x75\x70\x64\x61\x74\x65","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x69\x73\x55\x73\x65\x72\x73\x4C\x69\x6D\x69\x74","\x63\x72\x65\x61\x74\x65","\x63\x68\x61\x6E\x67\x65\x41\x76\x61\x74\x61\x72","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x92f6[0];var express=require(_0x92f6[1]);var controller=require(_0x92f6[2]);var config=require(_0x92f6[3]);var auth=require(_0x92f6[4]);var license=require(_0x92f6[5]);var router=express.Router();router[_0x92f6[9]](_0x92f6[6],auth[_0x92f6[7]](),controller[_0x92f6[8]]);router[_0x92f6[9]](_0x92f6[10],auth[_0x92f6[7]](),controller[_0x92f6[11]]);router[_0x92f6[9]](_0x92f6[12],auth[_0x92f6[7]](),controller[_0x92f6[13]]);router[_0x92f6[9]](_0x92f6[14],controller[_0x92f6[15]]);router[_0x92f6[9]](_0x92f6[16],controller[_0x92f6[17]]);router[_0x92f6[9]](_0x92f6[18],auth[_0x92f6[7]](),controller[_0x92f6[19]]);router[_0x92f6[22]](_0x92f6[20],auth[_0x92f6[7]](),controller[_0x92f6[21]]);router[_0x92f6[25]](_0x92f6[23],auth[_0x92f6[7]](),controller[_0x92f6[24]]);router[_0x92f6[25]](_0x92f6[26],auth[_0x92f6[7]](),auth[_0x92f6[28]](_0x92f6[27]),controller[_0x92f6[29]]);router[_0x92f6[25]](_0x92f6[18],auth[_0x92f6[7]](),controller[_0x92f6[30]]);router[_0x92f6[22]](_0x92f6[6],auth[_0x92f6[7]](),license[_0x92f6[31]](),license[_0x92f6[32]](),controller[_0x92f6[33]]);router[_0x92f6[22]](_0x92f6[16],auth[_0x92f6[7]](),controller[_0x92f6[34]]);router[_0x92f6[36]](_0x92f6[6],auth[_0x92f6[7]](),controller[_0x92f6[35]]);router[_0x92f6[36]](_0x92f6[18],auth[_0x92f6[7]](),controller[_0x92f6[37]]);module[_0x92f6[38]]=router
\ No newline at end of file
index 2e46525..2dc82be 100644 (file)
@@ -1,369 +1 @@
-'use strict';
-
-var User = require('../../models').User;
-var Module = require('../../models').Module;
-var sequelize = require('../../models').sequelize;
-
-var config = require('../../config/environment');
-var Util = require('../../config/util');
-
-var passport = require('passport');
-var moment = require('moment');
-var jwt = require('jsonwebtoken');
-var uploadFile = require('upload-file');
-var path = require('path');
-var fs = require('fs');
-var _ = require('lodash');
-var util = require('util');
-var sr = require('simple-random');
-
-/**
- * Get list of admin/user
- */
-exports.index = function(req, res, next) {
-  return User
-    .scope('user')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-/**
- * Get list of admin/user/user
- */
-exports.getUsers = function(req, res, next) {
-  return User
-    .findAll({
-      where: {
-        role: {
-          $in: ['admin', 'user', 'user']
-        }
-      }
-    })
-    .then(function(users) {
-      return res.status(200).send(users);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-/**
- * Creates a new user
- */
-exports.create = function(req, res, next) {
-  return User
-    .create(req.body)
-    .then(function(user) {
-      return res.status(201).send(user);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      return Util.errorManager.handleUniqueConstraintError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-/**
- * Get a single user
- */
-exports.show = function(req, res, next) {
-  return User
-    .findById(req.params.id)
-    .then(function(user) {
-      if (!user) {
-        return res.sendStatus(404);
-      }
-
-      return res.status(200).send(user);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-/**
- * Deletes a user
- */
-exports.destroy = function(req, res, next) {
-  var userId = req.params.id;
-  var _user;
-
-  return User
-    .findById(userId)
-    .then(function(user) {
-      _user = user;
-      if (!user) {
-        return res.sendStatus(404);
-      }
-      return user
-        .destroy();
-    })
-    .then(function(user) {
-      return res.status(200).send(user);
-    })
-    .catch(sequelize.ForeignKeyConstraintError, function(err) {
-      return Util.errorManager.handleForeignKeyConstraintError(res, 'user', _user.name, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-/**
- * Change a user password
- */
-exports.changePassword = function(req, res, next) {
-  var userId = req.user.id;
-  var oldPass = String(req.body.oldPassword);
-  var newPass = String(req.body.newPassword);
-
-  return User
-    .findById(userId)
-    .then(function(user) {
-      if (user.authenticate(oldPass)) {
-        user.password = newPass;
-        user.save()
-          .then(function() {
-            return res.sendStatus(200);
-          })
-          .catch(function(err) {
-            return handleError(res, err);
-          });
-      } else {
-        return res.sendStatus(403);
-      }
-    });
-};
-
-/**
- * Change a user password by admin
- */
-exports.resetPassword = function(req, res, next) {
-  var newPass = String(req.body.newPassword);
-  return User
-    .findById(req.params.id)
-    .then(function(user) {
-      user.password = newPass;
-      return user
-        .save();
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-/**
- * Change the avatar of the user
- */
-exports.changeAvatar = function(req, res, next) {
-
-  var upload = new uploadFile({
-    dest: path.join(config.root, 'server', 'files', 'images'),
-    maxNumberOfFiles: 1,
-    minNumberOfFiles: 0,
-    acceptFileTypes: /(\.|\/)(jpeg|png)$/i,
-    rename: function(name, file) {
-      return sr() + path.extname(file.filename);
-    },
-    messages: {
-      maxNumberOfFiles: "Max number of files upload exceeded",
-      acceptFileTypes: "Only jpeg and png format accepted",
-      invalidRequest: "Invalid request"
-    }
-  });
-
-  upload.on('end', function(fields, files) {
-    if (!files.file.filename) {
-      return res.status(500).send(upload);
-    }
-
-    return User
-      .findById(req.params.id)
-      .then(function(user) {
-        if (!user) {
-          return res.sendStatus(404);
-        }
-
-        return user
-          .update({
-            userpic: files.file.filename
-          });
-      })
-      .then(function(user) {
-        return res.status(200).send(user);
-      })
-      .catch(function(err) {
-        return handleError(res, err);
-      });
-  });
-
-  upload.on('error', function(err) {
-    console.log('********** Upload error :', err)
-    return handleError(res, err);
-  });
-
-  upload.parse(req);
-};
-
-
-/**
- * Get my info
- */
-exports.me = function(req, res, next) {
-  var userId = req.user.id;
-
-  return User
-    .findOne({
-      where: {
-        id: userId
-      },
-      attributes: ['id', 'fullname', 'name', 'email', 'role', 'userpic'],
-      include: [Module]
-    })
-    .then(function(user) {
-      if (!user) {
-        return res.sendStatus(401);
-      }
-      return res.status(200).send(user);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-/**
- * Update my user
- */
-exports.update = function(req, res, next) {
-  var userId = req.user.id;
-  delete req.body.password;
-
-  return User
-    .findById(req.params.id)
-    .then(function(user) {
-      if (!user) {
-        return res.sendStatus(500);
-      }
-      return user
-        .update(req.body);
-    })
-    .then(function(user) {
-      return res.status(200).send(user);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-/**
- * Get my avatar
- */
-exports.getAvatar = function(req, res, next) {
-  var imgPath = path.join(config.root, 'server', 'files', 'images', req.params.filename);
-
-  fs.exists(imgPath, function(exists) {
-    if (!exists) {
-      imgPath = path.join(config.root, 'server', 'files', 'images', 'userpic.png');
-    }
-
-    return res.sendFile(imgPath);
-  });
-};
-
-/**
- * Get my avatar by id
- */
-exports.getAvatarById = function(req, res, next) {
-  if (req.params.id === 'visitor') {
-    var imgPath = path.join(config.root, 'server', 'files', 'images', 'customer.png');
-
-    fs.exists(imgPath, function(exists) {
-      return res.sendFile(imgPath);
-    });
-
-  } else {
-    return User
-      .findById(req.params.id)
-      .then(function(user) {
-        if (user) {
-          var imgPath = path.join(config.root, 'server', 'files', 'images', user.userpic ? user.userpic : 'userpic.png');
-
-          fs.exists(imgPath, function(exists) {
-            if (!exists) {
-              imgPath = path.join(config.root, 'server', 'files', 'images', 'userpic.png');
-            }
-
-            return res.sendFile(imgPath);
-          });
-        } else {
-          return res.sendStatus(500);
-        }
-      })
-      .catch(function(err) {
-        return handleError(res, err);
-      });
-  }
-};
-
-// Deletes a user from the DB.
-exports.bulkDestroy = function(req, res) {
-  return User
-    .destroy({
-      where: {
-        id: req.query.id
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.userValidation = function(req, res) {
-  var where = {};
-  where[req.params.field] = req.body.value;
-
-  return User
-    .findAndCountAll({
-      where: where
-    })
-    .then(function(result) {
-      if (result.count) {
-        return res.status(200).send({
-          isValid: false,
-          value: req.body.value
-        });
-      }
-      return res.status(200).send({
-        isValid: true,
-        value: req.body.value
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-
-};
-
-/**
- * Authentication callback
- */
-exports.authCallback = function(req, res, next) {
-  res.redirect('/');
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xc883=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x6F\x64\x75\x6C\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x70\x61\x73\x73\x70\x6F\x72\x74","\x6D\x6F\x6D\x65\x6E\x74","\x6A\x73\x6F\x6E\x77\x65\x62\x74\x6F\x6B\x65\x6E","\x75\x70\x6C\x6F\x61\x64\x2D\x66\x69\x6C\x65","\x70\x61\x74\x68","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x75\x73\x65\x72","\x73\x63\x6F\x70\x65","\x67\x65\x74\x55\x73\x65\x72\x73","\x61\x64\x6D\x69\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x62\x6F\x64\x79","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x64\x65\x73\x74\x72\x6F\x79","\x6E\x61\x6D\x65","\x68\x61\x6E\x64\x6C\x65\x46\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x63\x68\x61\x6E\x67\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x6F\x6C\x64\x50\x61\x73\x73\x77\x6F\x72\x64","\x6E\x65\x77\x50\x61\x73\x73\x77\x6F\x72\x64","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x73\x61\x76\x65","\x72\x65\x73\x65\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x63\x68\x61\x6E\x67\x65\x41\x76\x61\x74\x61\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x69\x6D\x61\x67\x65\x73","\x6A\x6F\x69\x6E","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x4D\x61\x78\x20\x6E\x75\x6D\x62\x65\x72\x20\x6F\x66\x20\x66\x69\x6C\x65\x73\x20\x75\x70\x6C\x6F\x61\x64\x20\x65\x78\x63\x65\x65\x64\x65\x64","\x4F\x6E\x6C\x79\x20\x6A\x70\x65\x67\x20\x61\x6E\x64\x20\x70\x6E\x67\x20\x66\x6F\x72\x6D\x61\x74\x20\x61\x63\x63\x65\x70\x74\x65\x64","\x49\x6E\x76\x61\x6C\x69\x64\x20\x72\x65\x71\x75\x65\x73\x74","\x65\x6E\x64","\x66\x69\x6C\x65","\x75\x70\x64\x61\x74\x65","\x6F\x6E","\x65\x72\x72\x6F\x72","\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x20\x55\x70\x6C\x6F\x61\x64\x20\x65\x72\x72\x6F\x72\x20\x3A","\x6C\x6F\x67","\x70\x61\x72\x73\x65","\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x72\x6F\x6C\x65","\x75\x73\x65\x72\x70\x69\x63","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x41\x76\x61\x74\x61\x72","\x75\x73\x65\x72\x70\x69\x63\x2E\x70\x6E\x67","\x73\x65\x6E\x64\x46\x69\x6C\x65","\x65\x78\x69\x73\x74\x73","\x67\x65\x74\x41\x76\x61\x74\x61\x72\x42\x79\x49\x64","\x76\x69\x73\x69\x74\x6F\x72","\x63\x75\x73\x74\x6F\x6D\x65\x72\x2E\x70\x6E\x67","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x63\x6F\x75\x6E\x74","\x61\x75\x74\x68\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x2F","\x72\x65\x64\x69\x72\x65\x63\x74"];_0xc883[0];var User=require(_0xc883[2])[_0xc883[1]];var Module=require(_0xc883[2])[_0xc883[3]];var sequelize=require(_0xc883[2])[_0xc883[4]];var config=require(_0xc883[5]);var Util=require(_0xc883[6]);var passport=require(_0xc883[7]);var moment=require(_0xc883[8]);var jwt=require(_0xc883[9]);var uploadFile=require(_0xc883[10]);var path=require(_0xc883[11]);var fs=require(_0xc883[12]);var _=require(_0xc883[13]);var util=require(_0xc883[14]);var sr=require(_0xc883[15]);exports[_0xc883[16]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){return User[_0xc883[25]](_0xc883[24])[_0xc883[23]](Util[_0xc883[22]](_0x5c03xf[_0xc883[21]]))[_0xc883[20]](function(_0x5c03x13){_0x5c03x10[_0xc883[19]](200)[_0xc883[18]](_0x5c03x13)})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})};exports[_0xc883[26]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){return User[_0xc883[28]]({where:{role:{$in:[_0xc883[27],_0xc883[24],_0xc883[24]]}}})[_0xc883[20]](function(_0x5c03x14){return _0x5c03x10[_0xc883[19]](200)[_0xc883[18]](_0x5c03x14)})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})};exports[_0xc883[29]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){return User[_0xc883[29]](_0x5c03xf[_0xc883[32]])[_0xc883[20]](function(_0x5c03x15){return _0x5c03x10[_0xc883[19]](201)[_0xc883[18]](_0x5c03x15)})[_0xc883[17]](sequelize.UniqueConstraintError,function(_0x5c03x12){return Util[_0xc883[31]][_0xc883[30]](_0x5c03x10,_0x5c03x12)})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})};exports[_0xc883[33]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){return User[_0xc883[37]](_0x5c03xf[_0xc883[36]][_0xc883[35]])[_0xc883[20]](function(_0x5c03x15){if(!_0x5c03x15){return _0x5c03x10[_0xc883[34]](404)};return _0x5c03x10[_0xc883[19]](200)[_0xc883[18]](_0x5c03x15)})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})};exports[_0xc883[38]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){var _0x5c03x16=_0x5c03xf[_0xc883[36]][_0xc883[35]];var _0x5c03x17;return User[_0xc883[37]](_0x5c03x16)[_0xc883[20]](function(_0x5c03x15){_0x5c03x17=_0x5c03x15;if(!_0x5c03x15){return _0x5c03x10[_0xc883[34]](404)};return _0x5c03x15[_0xc883[38]]()})[_0xc883[20]](function(_0x5c03x15){return _0x5c03x10[_0xc883[19]](200)[_0xc883[18]](_0x5c03x15)})[_0xc883[17]](sequelize.ForeignKeyConstraintError,function(_0x5c03x12){return Util[_0xc883[31]][_0xc883[40]](_0x5c03x10,_0xc883[24],_0x5c03x17[_0xc883[39]],_0x5c03x12)})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})};exports[_0xc883[41]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){var _0x5c03x16=_0x5c03xf[_0xc883[24]][_0xc883[35]];var _0x5c03x18=String(_0x5c03xf[_0xc883[32]][_0xc883[42]]);var _0x5c03x19=String(_0x5c03xf[_0xc883[32]][_0xc883[43]]);return User[_0xc883[37]](_0x5c03x16)[_0xc883[20]](function(_0x5c03x15){if(_0x5c03x15[_0xc883[44]](_0x5c03x18)){_0x5c03x15[_0xc883[45]]=_0x5c03x19;_0x5c03x15[_0xc883[46]]()[_0xc883[20]](function(){return _0x5c03x10[_0xc883[34]](200)})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})}else {return _0x5c03x10[_0xc883[34]](403)}})};exports[_0xc883[47]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){var _0x5c03x19=String(_0x5c03xf[_0xc883[32]][_0xc883[43]]);return User[_0xc883[37]](_0x5c03xf[_0xc883[36]][_0xc883[35]])[_0xc883[20]](function(_0x5c03x15){_0x5c03x15[_0xc883[45]]=_0x5c03x19;return _0x5c03x15[_0xc883[46]]()})[_0xc883[20]](function(){return _0x5c03x10[_0xc883[34]](200)})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})};exports[_0xc883[48]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){var _0x5c03x1a= new uploadFile({dest:path[_0xc883[53]](config[_0xc883[49]],_0xc883[50],_0xc883[51],_0xc883[52]),maxNumberOfFiles:1,minNumberOfFiles:0,acceptFileTypes:/(\.|\/)(jpeg|png)$/i,rename:function(_0x5c03x1b,_0x5c03x1c){return sr()+path[_0xc883[55]](_0x5c03x1c[_0xc883[54]])},messages:{maxNumberOfFiles:_0xc883[56],acceptFileTypes:_0xc883[57],invalidRequest:_0xc883[58]}});_0x5c03x1a[_0xc883[62]](_0xc883[59],function(_0x5c03x1d,_0x5c03x1e){if(!_0x5c03x1e[_0xc883[60]][_0xc883[54]]){return _0x5c03x10[_0xc883[19]](500)[_0xc883[18]](_0x5c03x1a)};return User[_0xc883[37]](_0x5c03xf[_0xc883[36]][_0xc883[35]])[_0xc883[20]](function(_0x5c03x15){if(!_0x5c03x15){return _0x5c03x10[_0xc883[34]](404)};return _0x5c03x15[_0xc883[61]]({userpic:_0x5c03x1e[_0xc883[60]][_0xc883[54]]})})[_0xc883[20]](function(_0x5c03x15){return _0x5c03x10[_0xc883[19]](200)[_0xc883[18]](_0x5c03x15)})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})});_0x5c03x1a[_0xc883[62]](_0xc883[63],function(_0x5c03x12){console[_0xc883[65]](_0xc883[64],_0x5c03x12);return handleError(_0x5c03x10,_0x5c03x12)});_0x5c03x1a[_0xc883[66]](_0x5c03xf)};exports[_0xc883[67]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){var _0x5c03x16=_0x5c03xf[_0xc883[24]][_0xc883[35]];return User[_0xc883[72]]({where:{id:_0x5c03x16},attributes:[_0xc883[35],_0xc883[68],_0xc883[39],_0xc883[69],_0xc883[70],_0xc883[71]],include:[Module]})[_0xc883[20]](function(_0x5c03x15){if(!_0x5c03x15){return _0x5c03x10[_0xc883[34]](401)};return _0x5c03x10[_0xc883[19]](200)[_0xc883[18]](_0x5c03x15)})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})};exports[_0xc883[61]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){var _0x5c03x16=_0x5c03xf[_0xc883[24]][_0xc883[35]];delete _0x5c03xf[_0xc883[32]][_0xc883[45]];return User[_0xc883[37]](_0x5c03xf[_0xc883[36]][_0xc883[35]])[_0xc883[20]](function(_0x5c03x15){if(!_0x5c03x15){return _0x5c03x10[_0xc883[34]](500)};return _0x5c03x15[_0xc883[61]](_0x5c03xf[_0xc883[32]])})[_0xc883[20]](function(_0x5c03x15){return _0x5c03x10[_0xc883[19]](200)[_0xc883[18]](_0x5c03x15)})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})};exports[_0xc883[73]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){var _0x5c03x1f=path[_0xc883[53]](config[_0xc883[49]],_0xc883[50],_0xc883[51],_0xc883[52],_0x5c03xf[_0xc883[36]][_0xc883[54]]);fs[_0xc883[76]](_0x5c03x1f,function(_0x5c03x20){if(!_0x5c03x20){_0x5c03x1f=path[_0xc883[53]](config[_0xc883[49]],_0xc883[50],_0xc883[51],_0xc883[52],_0xc883[74])};return _0x5c03x10[_0xc883[75]](_0x5c03x1f)})};exports[_0xc883[77]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){if(_0x5c03xf[_0xc883[36]][_0xc883[35]]===_0xc883[78]){var _0x5c03x1f=path[_0xc883[53]](config[_0xc883[49]],_0xc883[50],_0xc883[51],_0xc883[52],_0xc883[79]);fs[_0xc883[76]](_0x5c03x1f,function(_0x5c03x20){return _0x5c03x10[_0xc883[75]](_0x5c03x1f)})}else {return User[_0xc883[37]](_0x5c03xf[_0xc883[36]][_0xc883[35]])[_0xc883[20]](function(_0x5c03x15){if(_0x5c03x15){var _0x5c03x1f=path[_0xc883[53]](config[_0xc883[49]],_0xc883[50],_0xc883[51],_0xc883[52],_0x5c03x15[_0xc883[71]]?_0x5c03x15[_0xc883[71]]:_0xc883[74]);fs[_0xc883[76]](_0x5c03x1f,function(_0x5c03x20){if(!_0x5c03x20){_0x5c03x1f=path[_0xc883[53]](config[_0xc883[49]],_0xc883[50],_0xc883[51],_0xc883[52],_0xc883[74])};return _0x5c03x10[_0xc883[75]](_0x5c03x1f)})}else {return _0x5c03x10[_0xc883[34]](500)}})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})}};exports[_0xc883[80]]=function(_0x5c03xf,_0x5c03x10){return User[_0xc883[38]]({where:{id:_0x5c03xf[_0xc883[21]][_0xc883[35]]},individualHooks:true})[_0xc883[20]](function(){return _0x5c03x10[_0xc883[34]](204)})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})};exports[_0xc883[81]]=function(_0x5c03xf,_0x5c03x10){var _0x5c03x21={};_0x5c03x21[_0x5c03xf[_0xc883[36]][_0xc883[82]]]=_0x5c03xf[_0xc883[32]][_0xc883[83]];return User[_0xc883[23]]({where:_0x5c03x21})[_0xc883[20]](function(_0x5c03x13){if(_0x5c03x13[_0xc883[84]]){return _0x5c03x10[_0xc883[19]](200)[_0xc883[18]]({isValid:false,value:_0x5c03xf[_0xc883[32]][_0xc883[83]]})};return _0x5c03x10[_0xc883[19]](200)[_0xc883[18]]({isValid:true,value:_0x5c03xf[_0xc883[32]][_0xc883[83]]})})[_0xc883[17]](function(_0x5c03x12){return handleError(_0x5c03x10,_0x5c03x12)})};exports[_0xc883[85]]=function(_0x5c03xf,_0x5c03x10,_0x5c03x11){_0x5c03x10[_0xc883[87]](_0xc883[86])};function handleError(_0x5c03x10,_0x5c03x12){return _0x5c03x10[_0xc883[19]](500)[_0xc883[18]](_0x5c03x12)}
\ No newline at end of file
index e1071aa..89d5dc6 100644 (file)
@@ -1,31 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var user = require('../../models').User;
-
-exports.register = function(socket) {
-  user.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  user.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  user.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  if (doc.role === 'admin') {
-    socket.emit('user:save', doc);
-  }
-}
-
-function onRemove(socket, doc, cb) {
-  if (doc.role === 'admin') {
-    socket.emit('user:remove', doc);
-  }
-}
+var _0x7ebf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x72\x6F\x6C\x65","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x73\x65\x72\x3A\x72\x65\x6D\x6F\x76\x65"];_0x7ebf[0];var user=require(_0x7ebf[2])[_0x7ebf[1]];exports[_0x7ebf[3]]=function(_0x8caex2){user[_0x7ebf[4]](function(_0x8caex3){onSave(_0x8caex2,_0x8caex3)});user[_0x7ebf[5]](function(_0x8caex3){onSave(_0x8caex2,_0x8caex3)});user[_0x7ebf[6]](function(_0x8caex3){onRemove(_0x8caex2,_0x8caex3)})};function onSave(_0x8caex2,_0x8caex3,_0x8caex5){if(_0x8caex3[_0x7ebf[7]]===_0x7ebf[8]){_0x8caex2[_0x7ebf[10]](_0x7ebf[9],_0x8caex3)}}function onRemove(_0x8caex2,_0x8caex3,_0x8caex5){if(_0x8caex3[_0x7ebf[7]]===_0x7ebf[8]){_0x8caex2[_0x7ebf[10]](_0x7ebf[11],_0x8caex3)}}
\ No newline at end of file
index bce94e7..648e2a1 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./user_has_chat_queue.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
\ No newline at end of file
+var _0x3a16=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3a16[0];var express=require(_0x3a16[1]);var controller=require(_0x3a16[2]);var router=express.Router();router[_0x3a16[5]](_0x3a16[3],controller[_0x3a16[4]]);router[_0x3a16[5]](_0x3a16[6],controller[_0x3a16[7]]);router[_0x3a16[9]](_0x3a16[3],controller[_0x3a16[8]]);router[_0x3a16[11]](_0x3a16[6],controller[_0x3a16[10]]);router[_0x3a16[12]](_0x3a16[6],controller[_0x3a16[10]]);router[_0x3a16[14]](_0x3a16[6],controller[_0x3a16[13]]);module[_0x3a16[15]]=router
\ No newline at end of file
index b399892..8640775 100644 (file)
@@ -1,103 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var UserHasChatQueue = require('../../models').UserHasChatQueue;
-
-// Get list of userHasChatQueues
-exports.index = function(req, res) {
-  UserHasChatQueue
-    .findAll(req.query ? {
-      where: req.query
-    } : {})
-    .then(function(userHasChatQueues) {
-      return res.status(200).send(userHasChatQueues);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single userHasChatQueue
-exports.show = function(req, res) {
-  UserHasChatQueue
-    .findById(req.params.id)
-    .then(function(userHasChatQueue) {
-      if (!userHasChatQueue) {
-        return res.sendStatus(404);
-      }
-      return res.send(userHasChatQueue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new userHasChatQueue in the DB.
-exports.create = function(req, res) {
-  UserHasChatQueue
-    .create(req.body)
-    .then(function(userHasChatQueue) {
-      return res.status(201).send(userHasChatQueue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing userHasChatQueue in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  UserHasChatQueue
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(userHasChatQueue) {
-      if (!userHasChatQueue) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(userHasChatQueue, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(userHasChatQueue);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a userHasChatQueue from the DB.
-exports.destroy = function(req, res) {
-  UserHasChatQueue
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(userHasChatQueue) {
-      if (!userHasChatQueue) {
-        return res.sendStatus(404);
-      }
-      userHasChatQueue.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x4fb4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0x4fb4[0];var _=require(_0x4fb4[1]);var UserHasChatQueue=require(_0x4fb4[3])[_0x4fb4[2]];exports[_0x4fb4[4]]=function(_0xc71ax3,_0xc71ax4){UserHasChatQueue[_0x4fb4[10]](_0xc71ax3[_0x4fb4[9]]?{where:_0xc71ax3[_0x4fb4[9]]}:{})[_0x4fb4[8]](function(_0xc71ax6){return _0xc71ax4[_0x4fb4[7]](200)[_0x4fb4[6]](_0xc71ax6)})[_0x4fb4[5]](function(_0xc71ax5){return handleError(_0xc71ax4,_0xc71ax5)})};exports[_0x4fb4[11]]=function(_0xc71ax3,_0xc71ax4){UserHasChatQueue[_0x4fb4[15]](_0xc71ax3[_0x4fb4[14]][_0x4fb4[13]])[_0x4fb4[8]](function(_0xc71ax7){if(!_0xc71ax7){return _0xc71ax4[_0x4fb4[12]](404)};return _0xc71ax4[_0x4fb4[6]](_0xc71ax7)})[_0x4fb4[5]](function(_0xc71ax5){return handleError(_0xc71ax4,_0xc71ax5)})};exports[_0x4fb4[16]]=function(_0xc71ax3,_0xc71ax4){UserHasChatQueue[_0x4fb4[16]](_0xc71ax3[_0x4fb4[17]])[_0x4fb4[8]](function(_0xc71ax7){return _0xc71ax4[_0x4fb4[7]](201)[_0x4fb4[6]](_0xc71ax7)})[_0x4fb4[5]](function(_0xc71ax5){return handleError(_0xc71ax4,_0xc71ax5)})};exports[_0x4fb4[18]]=function(_0xc71ax3,_0xc71ax4){if(_0xc71ax3[_0x4fb4[17]][_0x4fb4[13]]){delete _0xc71ax3[_0x4fb4[17]][_0x4fb4[13]]};UserHasChatQueue[_0x4fb4[21]]({where:{id:_0xc71ax3[_0x4fb4[14]][_0x4fb4[13]]}})[_0x4fb4[8]](function(_0xc71ax7){if(!_0xc71ax7){return _0xc71ax4[_0x4fb4[12]](404)};var _0xc71ax8=_[_0x4fb4[19]](_0xc71ax7,_0xc71ax3[_0x4fb4[17]]);_0xc71ax8[_0x4fb4[20]]()[_0x4fb4[8]](function(){return _0xc71ax4[_0x4fb4[7]](200)[_0x4fb4[6]](_0xc71ax7)})[_0x4fb4[5]](function(_0xc71ax5){return handleError(_0xc71ax4,_0xc71ax5)})})[_0x4fb4[5]](function(_0xc71ax5){return handleError(_0xc71ax4,_0xc71ax5)})};exports[_0x4fb4[22]]=function(_0xc71ax3,_0xc71ax4){UserHasChatQueue[_0x4fb4[21]]({where:{id:_0xc71ax3[_0x4fb4[14]][_0x4fb4[13]]}})[_0x4fb4[8]](function(_0xc71ax7){if(!_0xc71ax7){return _0xc71ax4[_0x4fb4[12]](404)};_0xc71ax7[_0x4fb4[22]]()[_0x4fb4[8]](function(){return _0xc71ax4[_0x4fb4[12]](204)})[_0x4fb4[5]](function(_0xc71ax5){return handleError(_0xc71ax4,_0xc71ax5)})})[_0x4fb4[5]](function(_0xc71ax5){return handleError(_0xc71ax4,_0xc71ax5)})};function handleError(_0xc71ax4,_0xc71ax5){return _0xc71ax4[_0x4fb4[7]](500)[_0x4fb4[6]](_0xc71ax5)}
\ No newline at end of file
index 882e78a..5287383 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var UserHasChatQueue = require('../../models').UserHasChatQueue;
-
-exports.register = function(socket) {
-  UserHasChatQueue.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  UserHasChatQueue.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('user_has_chat_queue:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('user_has_chat_queue:remove', doc);
-}
+var _0xdad0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xdad0[0];var UserHasChatQueue=require(_0xdad0[2])[_0xdad0[1]];exports[_0xdad0[3]]=function(_0xfb67x2){UserHasChatQueue[_0xdad0[4]](function(_0xfb67x3){onSave(_0xfb67x2,_0xfb67x3)});UserHasChatQueue[_0xdad0[5]](function(_0xfb67x3){onRemove(_0xfb67x2,_0xfb67x3)})};function onSave(_0xfb67x2,_0xfb67x3,_0xfb67x5){_0xfb67x2[_0xdad0[7]](_0xdad0[6],_0xfb67x3)}function onRemove(_0xfb67x2,_0xfb67x3,_0xfb67x5){_0xfb67x2[_0xdad0[7]](_0xdad0[8],_0xfb67x3)}
\ No newline at end of file
index 539163a..9daf8d2 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/chat/user_has_queues', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/chat/user_has_queues')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x13a3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x67\x65\x74"];_0x13a3[0];var should=require(_0x13a3[1]);var app=require(_0x13a3[2]);var request=require(_0x13a3[3]);describe(_0x13a3[4],function(){it(_0x13a3[5],function(_0x6a6ex4){request(app)[_0x13a3[13]](_0x13a3[12])[_0x13a3[11]](200)[_0x13a3[11]](_0x13a3[10],/json/)[_0x13a3[9]](function(_0x6a6ex5,_0x6a6ex6){if(_0x6a6ex5){return _0x6a6ex4(_0x6a6ex5)};_0x6a6ex6[_0x13a3[8]][_0x13a3[1]][_0x13a3[7]][_0x13a3[6]](Array);_0x6a6ex4()})})})
\ No newline at end of file
index 381448d..008e6f8 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express     = require('express');
-var controller  = require('./user_has_chat_room.controller');
-var auth        = require('../../auth/auth.service');
-
-var router = express.Router();
-
-// router.get('/', controller.index);
-// router.get('/:id', controller.show);
-// router.post('/', controller.create);
-router.put('/:userId/:chatRoomId', controller.update);
-// router.patch('/:id', controller.update);
-// router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0x2c6d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x3A\x75\x73\x65\x72\x49\x64\x2F\x3A\x63\x68\x61\x74\x52\x6F\x6F\x6D\x49\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x2c6d[0];var express=require(_0x2c6d[1]);var controller=require(_0x2c6d[2]);var auth=require(_0x2c6d[3]);var router=express.Router();router[_0x2c6d[6]](_0x2c6d[4],controller[_0x2c6d[5]]);module[_0x2c6d[7]]=router
\ No newline at end of file
index d747380..ee5b7fb 100644 (file)
@@ -1,96 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var UserHasChatRoom = require('../../models').UserHasChatRoom;
-
-// Get list of user_has_chat_rooms
-exports.index = function(req, res) {
-  UserHasChatRoom
-  .findAll()
-  .then(function (user_has_chat_rooms) {
-    return res.status(200).send(user_has_chat_rooms);
-  })
-  .catch(function(err) {
-    return handleError(res, err);
-  });
-};
-
-// Get a single user_has_chat_room
-exports.show = function(req, res) {
-  UserHasChatRoom
-  .findById(req.params.id)
-  .then(function (user_has_chat_room) {
-    if(!user_has_chat_room) { return res.sendStatus(404); }
-    return res.send(user_has_chat_room);
-  })
-  .catch(function(err){
-    return handleError(res, err);
-  });
-};
-
-// Creates a new user_has_chat_room in the DB.
-exports.create = function(req, res) {
-
-  UserHasChatRoom
-    .create(req.body)
-    .then(function(user_has_chat_room) {
-      return res.status(201).send(user_has_chat_room);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing user_has_chat_room in the DB.
-exports.update = function(req, res) {
-
-  UserHasChatRoom
-    .findOne({
-      where: {
-        UserId: req.params.userId,
-        ChatRoomId: req.params.chatRoomId
-      },
-      limit: 1
-    })
-    .then(function (user_has_chat_room) {
-      if (!user_has_chat_room) {
-        return res.sendStatus(404);
-      }
-
-      user_has_chat_room
-        .updateAttributes(req.body)
-        .then(function () {
-          return res.status(200).send(user_has_chat_room);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a user_has_chat_room from the DB.
-exports.destroy = function(req, res) {
-
-  UserHasChatRoom
-  .findById(req.params.id)
-  .then(function (user_has_chat_room) {
-    if(!user_has_chat_room) { return res.sendStatus(404); }
-    user_has_chat_room.destroy()
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-  })
-  .catch(function(err) {
-    return handleError(res, err);
-  });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x4578=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x75\x73\x65\x72\x49\x64","\x63\x68\x61\x74\x52\x6F\x6F\x6D\x49\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x4578[0];var _=require(_0x4578[1]);var UserHasChatRoom=require(_0x4578[3])[_0x4578[2]];exports[_0x4578[4]]=function(_0x4b75x3,_0x4b75x4){UserHasChatRoom[_0x4578[9]]()[_0x4578[8]](function(_0x4b75x6){return _0x4b75x4[_0x4578[7]](200)[_0x4578[6]](_0x4b75x6)})[_0x4578[5]](function(_0x4b75x5){return handleError(_0x4b75x4,_0x4b75x5)})};exports[_0x4578[10]]=function(_0x4b75x3,_0x4b75x4){UserHasChatRoom[_0x4578[14]](_0x4b75x3[_0x4578[13]][_0x4578[12]])[_0x4578[8]](function(_0x4b75x7){if(!_0x4b75x7){return _0x4b75x4[_0x4578[11]](404)};return _0x4b75x4[_0x4578[6]](_0x4b75x7)})[_0x4578[5]](function(_0x4b75x5){return handleError(_0x4b75x4,_0x4b75x5)})};exports[_0x4578[15]]=function(_0x4b75x3,_0x4b75x4){UserHasChatRoom[_0x4578[15]](_0x4b75x3[_0x4578[16]])[_0x4578[8]](function(_0x4b75x7){return _0x4b75x4[_0x4578[7]](201)[_0x4578[6]](_0x4b75x7)})[_0x4578[5]](function(_0x4b75x5){return handleError(_0x4b75x4,_0x4b75x5)})};exports[_0x4578[17]]=function(_0x4b75x3,_0x4b75x4){UserHasChatRoom[_0x4578[21]]({where:{UserId:_0x4b75x3[_0x4578[13]][_0x4578[19]],ChatRoomId:_0x4b75x3[_0x4578[13]][_0x4578[20]]},limit:1})[_0x4578[8]](function(_0x4b75x7){if(!_0x4b75x7){return _0x4b75x4[_0x4578[11]](404)};_0x4b75x7[_0x4578[18]](_0x4b75x3[_0x4578[16]])[_0x4578[8]](function(){return _0x4b75x4[_0x4578[7]](200)[_0x4578[6]](_0x4b75x7)})[_0x4578[5]](function(_0x4b75x5){return handleError(_0x4b75x4,_0x4b75x5)})})[_0x4578[5]](function(_0x4b75x5){return handleError(_0x4b75x4,_0x4b75x5)})};exports[_0x4578[22]]=function(_0x4b75x3,_0x4b75x4){UserHasChatRoom[_0x4578[14]](_0x4b75x3[_0x4578[13]][_0x4578[12]])[_0x4578[8]](function(_0x4b75x7){if(!_0x4b75x7){return _0x4b75x4[_0x4578[11]](404)};_0x4b75x7[_0x4578[22]]()[_0x4578[8]](function(){return _0x4b75x4[_0x4578[11]](204)})[_0x4578[5]](function(_0x4b75x5){return handleError(_0x4b75x4,_0x4b75x5)})})[_0x4578[5]](function(_0x4b75x5){return handleError(_0x4b75x4,_0x4b75x5)})};function handleError(_0x4b75x4,_0x4b75x5){return _0x4b75x4[_0x4578[7]](500)[_0x4578[6]](_0x4b75x5)}
\ No newline at end of file
index e0be09b..619adc7 100644 (file)
@@ -1,66 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-var _ = require('lodash');
-var User = require('../../models').User;
-var ChatRoom = require('../../models').ChatRoom;
-var ChatVisitor = require('../../models').ChatVisitor;
-var ChatMessage = require('../../models').ChatMessage;
-var UserHasChatRoom = require('../../models').UserHasChatRoom;
-
-exports.register = function(socket) {
-  UserHasChatRoom.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  UserHasChatRoom.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc) {
-
-  var _chatRoom;
-
-  return ChatRoom
-    .findById(doc.ChatRoomId, {
-      include: [{
-        model: ChatVisitor,
-        attributes: ['id', 'email', 'fullname']
-      }, {
-        model: User,
-        attributes: ['id', 'email', 'name', 'fullname']
-      }, {
-        model: ChatMessage,
-        include: [{
-          model: ChatVisitor,
-          attributes: ['id', 'email', 'fullname']
-        }, {
-          model: User,
-          attributes: ['id', 'email', 'name', 'fullname']
-        }]
-      }]
-    })
-    .then(function(chatRoom) {
-      _chatRoom = chatRoom;
-      // _chatRoom.dataValues.ChatMessages = [];
-
-      var ids = _.map(_chatRoom.Users, 'id');
-
-      ids.forEach(function(id) {
-        if (socket.userId == id) {
-          socket.emit('user_has_chat_room:save', _chatRoom.dataValues)
-        }
-      });
-
-      return;
-    })
-    .catch(function(err) {
-      console.error(err);
-    });
-}
-
-function onRemove(socket, doc) {
-  socket.emit('user_has_chat_room:remove', doc);
-}
+var _0x92ca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x64","\x6D\x61\x70","\x75\x73\x65\x72\x49\x64","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x3A\x73\x61\x76\x65","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x65\x6D\x69\x74","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x65\x6D\x61\x69\x6C","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x3A\x72\x65\x6D\x6F\x76\x65"];_0x92ca[0];var _=require(_0x92ca[1]);var User=require(_0x92ca[3])[_0x92ca[2]];var ChatRoom=require(_0x92ca[3])[_0x92ca[4]];var ChatVisitor=require(_0x92ca[3])[_0x92ca[5]];var ChatMessage=require(_0x92ca[3])[_0x92ca[6]];var UserHasChatRoom=require(_0x92ca[3])[_0x92ca[7]];exports[_0x92ca[8]]=function(_0x3fd1x7){UserHasChatRoom[_0x92ca[9]](function(_0x3fd1x8){onSave(_0x3fd1x7,_0x3fd1x8)});UserHasChatRoom[_0x92ca[10]](function(_0x3fd1x8){onRemove(_0x3fd1x7,_0x3fd1x8)})};function onSave(_0x3fd1x7,_0x3fd1x8){var _0x3fd1xa;return ChatRoom[_0x92ca[24]](_0x3fd1x8.ChatRoomId,{include:[{model:ChatVisitor,attributes:[_0x92ca[13],_0x92ca[21],_0x92ca[22]]},{model:User,attributes:[_0x92ca[13],_0x92ca[21],_0x92ca[23],_0x92ca[22]]},{model:ChatMessage,include:[{model:ChatVisitor,attributes:[_0x92ca[13],_0x92ca[21],_0x92ca[22]]},{model:User,attributes:[_0x92ca[13],_0x92ca[21],_0x92ca[23],_0x92ca[22]]}]}]})[_0x92ca[20]](function(_0x3fd1xc){_0x3fd1xa=_0x3fd1xc;var _0x3fd1xd=_[_0x92ca[14]](_0x3fd1xa.Users,_0x92ca[13]);_0x3fd1xd[_0x92ca[19]](function(_0x3fd1xe){if(_0x3fd1x7[_0x92ca[15]]==_0x3fd1xe){_0x3fd1x7[_0x92ca[18]](_0x92ca[16],_0x3fd1xa[_0x92ca[17]])}});return})[_0x92ca[12]](function(_0x3fd1xb){console[_0x92ca[11]](_0x3fd1xb)})}function onRemove(_0x3fd1x7,_0x3fd1x8){_0x3fd1x7[_0x92ca[18]](_0x92ca[25],_0x3fd1x8)}
\ No newline at end of file
index b33382a..9c32379 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/chat/user_has_rooms', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/chat/user_has_rooms')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x928e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x72\x6F\x6F\x6D\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x72\x6F\x6F\x6D\x73","\x67\x65\x74"];_0x928e[0];var should=require(_0x928e[1]);var app=require(_0x928e[2]);var request=require(_0x928e[3]);describe(_0x928e[4],function(){it(_0x928e[5],function(_0x7f80x4){request(app)[_0x928e[13]](_0x928e[12])[_0x928e[11]](200)[_0x928e[11]](_0x928e[10],/json/)[_0x928e[9]](function(_0x7f80x5,_0x7f80x6){if(_0x7f80x5){return _0x7f80x4(_0x7f80x5)};_0x7f80x6[_0x928e[8]][_0x928e[1]][_0x928e[7]][_0x928e[6]](Array);_0x7f80x4()})})})
\ No newline at end of file
index 5805e3d..1a60ac0 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./user_has_fax_queue.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
\ No newline at end of file
+var _0xe3d6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe3d6[0];var express=require(_0xe3d6[1]);var controller=require(_0xe3d6[2]);var router=express.Router();router[_0xe3d6[5]](_0xe3d6[3],controller[_0xe3d6[4]]);router[_0xe3d6[5]](_0xe3d6[6],controller[_0xe3d6[7]]);router[_0xe3d6[9]](_0xe3d6[3],controller[_0xe3d6[8]]);router[_0xe3d6[11]](_0xe3d6[6],controller[_0xe3d6[10]]);router[_0xe3d6[12]](_0xe3d6[6],controller[_0xe3d6[10]]);router[_0xe3d6[14]](_0xe3d6[6],controller[_0xe3d6[13]]);module[_0xe3d6[15]]=router
\ No newline at end of file
index f92e570..4077297 100644 (file)
@@ -1,103 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var UserHasFaxQueue = require('../../models').UserHasFaxQueue;
-
-// Get list of user_has_fax_queues
-exports.index = function(req, res) {
-  UserHasFaxQueue
-    .findAll(req.query ? {
-      where: req.query
-    } : {})
-    .then(function(user_has_fax_queues) {
-      return res.status(200).send(user_has_fax_queues);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single user_has_fax_queue
-exports.show = function(req, res) {
-  UserHasFaxQueue
-    .findById(req.params.id)
-    .then(function(user_has_fax_queue) {
-      if (!user_has_fax_queue) {
-        return res.sendStatus(404);
-      }
-      return res.send(user_has_fax_queue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new user_has_fax_queue in the DB.
-exports.create = function(req, res) {
-  UserHasFaxQueue
-    .create(req.body)
-    .then(function(user_has_fax_queue) {
-      return res.status(201).send(user_has_fax_queue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing user_has_fax_queue in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  UserHasFaxQueue
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(user_has_fax_queue) {
-      if (!user_has_fax_queue) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(user_has_fax_queue, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(user_has_fax_queue);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a user_has_fax_queue from the DB.
-exports.destroy = function(req, res) {
-  UserHasFaxQueue
-    .find({
-      where: {
-        id: req.params.id
-      }
-    })
-    .then(function(user_has_fax_queue) {
-      if (!user_has_fax_queue) {
-        return res.sendStatus(404);
-      }
-      user_has_fax_queue.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x1a10=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79"];_0x1a10[0];var _=require(_0x1a10[1]);var UserHasFaxQueue=require(_0x1a10[3])[_0x1a10[2]];exports[_0x1a10[4]]=function(_0xa1d3x3,_0xa1d3x4){UserHasFaxQueue[_0x1a10[10]](_0xa1d3x3[_0x1a10[9]]?{where:_0xa1d3x3[_0x1a10[9]]}:{})[_0x1a10[8]](function(_0xa1d3x6){return _0xa1d3x4[_0x1a10[7]](200)[_0x1a10[6]](_0xa1d3x6)})[_0x1a10[5]](function(_0xa1d3x5){return handleError(_0xa1d3x4,_0xa1d3x5)})};exports[_0x1a10[11]]=function(_0xa1d3x3,_0xa1d3x4){UserHasFaxQueue[_0x1a10[15]](_0xa1d3x3[_0x1a10[14]][_0x1a10[13]])[_0x1a10[8]](function(_0xa1d3x7){if(!_0xa1d3x7){return _0xa1d3x4[_0x1a10[12]](404)};return _0xa1d3x4[_0x1a10[6]](_0xa1d3x7)})[_0x1a10[5]](function(_0xa1d3x5){return handleError(_0xa1d3x4,_0xa1d3x5)})};exports[_0x1a10[16]]=function(_0xa1d3x3,_0xa1d3x4){UserHasFaxQueue[_0x1a10[16]](_0xa1d3x3[_0x1a10[17]])[_0x1a10[8]](function(_0xa1d3x7){return _0xa1d3x4[_0x1a10[7]](201)[_0x1a10[6]](_0xa1d3x7)})[_0x1a10[5]](function(_0xa1d3x5){return handleError(_0xa1d3x4,_0xa1d3x5)})};exports[_0x1a10[18]]=function(_0xa1d3x3,_0xa1d3x4){if(_0xa1d3x3[_0x1a10[17]][_0x1a10[13]]){delete _0xa1d3x3[_0x1a10[17]][_0x1a10[13]]};UserHasFaxQueue[_0x1a10[21]]({where:{id:_0xa1d3x3[_0x1a10[14]][_0x1a10[13]]}})[_0x1a10[8]](function(_0xa1d3x7){if(!_0xa1d3x7){return _0xa1d3x4[_0x1a10[12]](404)};var _0xa1d3x8=_[_0x1a10[19]](_0xa1d3x7,_0xa1d3x3[_0x1a10[17]]);_0xa1d3x8[_0x1a10[20]]()[_0x1a10[8]](function(){return _0xa1d3x4[_0x1a10[7]](200)[_0x1a10[6]](_0xa1d3x7)})[_0x1a10[5]](function(_0xa1d3x5){return handleError(_0xa1d3x4,_0xa1d3x5)})})[_0x1a10[5]](function(_0xa1d3x5){return handleError(_0xa1d3x4,_0xa1d3x5)})};exports[_0x1a10[22]]=function(_0xa1d3x3,_0xa1d3x4){UserHasFaxQueue[_0x1a10[21]]({where:{id:_0xa1d3x3[_0x1a10[14]][_0x1a10[13]]}})[_0x1a10[8]](function(_0xa1d3x7){if(!_0xa1d3x7){return _0xa1d3x4[_0x1a10[12]](404)};_0xa1d3x7[_0x1a10[22]]()[_0x1a10[8]](function(){return _0xa1d3x4[_0x1a10[12]](204)})[_0x1a10[5]](function(_0xa1d3x5){return handleError(_0xa1d3x4,_0xa1d3x5)})})[_0x1a10[5]](function(_0xa1d3x5){return handleError(_0xa1d3x4,_0xa1d3x5)})};function handleError(_0xa1d3x4,_0xa1d3x5){return _0xa1d3x4[_0x1a10[7]](500)[_0x1a10[6]](_0xa1d3x5)}
\ No newline at end of file
index 4b0602a..5aac6da 100644 (file)
@@ -1,30 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var UserHasFaxQueue = require('../../models').UserHasFaxQueue;
-
-exports.register = function(socket) {
-  UserHasFaxQueue.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  UserHasFaxQueue.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-  UserHasFaxQueue.afterBulkCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  UserHasFaxQueue.afterBulkDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('user_has_fax_queue:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('user_has_fax_queue:remove', doc);
-}
+var _0x1644=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x42\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x42\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x1644[0];var UserHasFaxQueue=require(_0x1644[2])[_0x1644[1]];exports[_0x1644[3]]=function(_0xa86ex2){UserHasFaxQueue[_0x1644[4]](function(_0xa86ex3){onSave(_0xa86ex2,_0xa86ex3)});UserHasFaxQueue[_0x1644[5]](function(_0xa86ex3){onRemove(_0xa86ex2,_0xa86ex3)});UserHasFaxQueue[_0x1644[6]](function(_0xa86ex3){onSave(_0xa86ex2,_0xa86ex3)});UserHasFaxQueue[_0x1644[7]](function(_0xa86ex3){onRemove(_0xa86ex2,_0xa86ex3)})};function onSave(_0xa86ex2,_0xa86ex3,_0xa86ex5){_0xa86ex2[_0x1644[9]](_0x1644[8],_0xa86ex3)}function onRemove(_0xa86ex2,_0xa86ex3,_0xa86ex5){_0xa86ex2[_0x1644[9]](_0x1644[10],_0xa86ex3)}
\ No newline at end of file
index 992672c..3f47449 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/fax/user_has_queues', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/fax/user_has_queues')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x1f6d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x67\x65\x74"];_0x1f6d[0];var should=require(_0x1f6d[1]);var app=require(_0x1f6d[2]);var request=require(_0x1f6d[3]);describe(_0x1f6d[4],function(){it(_0x1f6d[5],function(_0x752ex4){request(app)[_0x1f6d[13]](_0x1f6d[12])[_0x1f6d[11]](200)[_0x1f6d[11]](_0x1f6d[10],/json/)[_0x1f6d[9]](function(_0x752ex5,_0x752ex6){if(_0x752ex5){return _0x752ex4(_0x752ex5)};_0x752ex6[_0x1f6d[8]][_0x1f6d[1]][_0x1f6d[7]][_0x1f6d[6]](Array);_0x752ex4()})})})
\ No newline at end of file
index 50b083e..098604e 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./user_has_mail_queue.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0xc2ce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc2ce[0];var express=require(_0xc2ce[1]);var controller=require(_0xc2ce[2]);var router=express.Router();router[_0xc2ce[5]](_0xc2ce[3],controller[_0xc2ce[4]]);router[_0xc2ce[5]](_0xc2ce[6],controller[_0xc2ce[7]]);router[_0xc2ce[9]](_0xc2ce[3],controller[_0xc2ce[8]]);router[_0xc2ce[11]](_0xc2ce[6],controller[_0xc2ce[10]]);router[_0xc2ce[12]](_0xc2ce[6],controller[_0xc2ce[10]]);router[_0xc2ce[14]](_0xc2ce[6],controller[_0xc2ce[13]]);module[_0xc2ce[15]]=router
\ No newline at end of file
index c15bc9d..74c42c7 100644 (file)
@@ -1,95 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var UserHasMailQueue = require('../../models').UserHasMailQueue;
-
-// Get list of user_has_mail_queues
-exports.index = function(req, res) {
-  UserHasMailQueue
-    .findAll(req.query ? {
-      where: req.query
-    } : {})
-    .then(function(user_has_mail_queues) {
-      return res.status(200).send(user_has_mail_queues);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single user_has_mail_queue
-exports.show = function(req, res) {
-  UserHasMailQueue
-    .findById(req.params.id)
-    .then(function(user_has_mail_queue) {
-      if (!user_has_mail_queue) {
-        return res.sendStatus(404);
-      }
-      return res.send(user_has_mail_queue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new user_has_mail_queue in the DB.
-exports.create = function(req, res) {
-  UserHasMailQueue
-    .create(req.body)
-    .then(function(user_has_mail_queue) {
-      return res.status(201).send(user_has_mail_queue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing user_has_mail_queue in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  UserHasMailQueue
-    .findById(req.params.id)
-    .then(function(user_has_mail_queue) {
-      if (!user_has_mail_queue) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(user_has_mail_queue, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(user_has_mail_queue);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a user_has_mail_queue from the DB.
-exports.destroy = function(req, res) {
-  UserHasMailQueue
-    .findById(req.params.id)
-    .then(function(user_has_mail_queue) {
-      if (!user_has_mail_queue) {
-        return res.sendStatus(404);
-      }
-      user_has_mail_queue.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x3553=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x3553[0];var _=require(_0x3553[1]);var UserHasMailQueue=require(_0x3553[3])[_0x3553[2]];exports[_0x3553[4]]=function(_0x63f3x3,_0x63f3x4){UserHasMailQueue[_0x3553[10]](_0x63f3x3[_0x3553[9]]?{where:_0x63f3x3[_0x3553[9]]}:{})[_0x3553[8]](function(_0x63f3x6){return _0x63f3x4[_0x3553[7]](200)[_0x3553[6]](_0x63f3x6)})[_0x3553[5]](function(_0x63f3x5){return handleError(_0x63f3x4,_0x63f3x5)})};exports[_0x3553[11]]=function(_0x63f3x3,_0x63f3x4){UserHasMailQueue[_0x3553[15]](_0x63f3x3[_0x3553[14]][_0x3553[13]])[_0x3553[8]](function(_0x63f3x7){if(!_0x63f3x7){return _0x63f3x4[_0x3553[12]](404)};return _0x63f3x4[_0x3553[6]](_0x63f3x7)})[_0x3553[5]](function(_0x63f3x5){return handleError(_0x63f3x4,_0x63f3x5)})};exports[_0x3553[16]]=function(_0x63f3x3,_0x63f3x4){UserHasMailQueue[_0x3553[16]](_0x63f3x3[_0x3553[17]])[_0x3553[8]](function(_0x63f3x7){return _0x63f3x4[_0x3553[7]](201)[_0x3553[6]](_0x63f3x7)})[_0x3553[5]](function(_0x63f3x5){return handleError(_0x63f3x4,_0x63f3x5)})};exports[_0x3553[18]]=function(_0x63f3x3,_0x63f3x4){if(_0x63f3x3[_0x3553[17]][_0x3553[13]]){delete _0x63f3x3[_0x3553[17]][_0x3553[13]]};UserHasMailQueue[_0x3553[15]](_0x63f3x3[_0x3553[14]][_0x3553[13]])[_0x3553[8]](function(_0x63f3x7){if(!_0x63f3x7){return _0x63f3x4[_0x3553[12]](404)};var _0x63f3x8=_[_0x3553[19]](_0x63f3x7,_0x63f3x3[_0x3553[17]]);_0x63f3x8[_0x3553[20]]()[_0x3553[8]](function(){return _0x63f3x4[_0x3553[7]](200)[_0x3553[6]](_0x63f3x7)})[_0x3553[5]](function(_0x63f3x5){return handleError(_0x63f3x4,_0x63f3x5)})})[_0x3553[5]](function(_0x63f3x5){return handleError(_0x63f3x4,_0x63f3x5)})};exports[_0x3553[21]]=function(_0x63f3x3,_0x63f3x4){UserHasMailQueue[_0x3553[15]](_0x63f3x3[_0x3553[14]][_0x3553[13]])[_0x3553[8]](function(_0x63f3x7){if(!_0x63f3x7){return _0x63f3x4[_0x3553[12]](404)};_0x63f3x7[_0x3553[21]]()[_0x3553[8]](function(){return _0x63f3x4[_0x3553[12]](204)})[_0x3553[5]](function(_0x63f3x5){return handleError(_0x63f3x4,_0x63f3x5)})})[_0x3553[5]](function(_0x63f3x5){return handleError(_0x63f3x4,_0x63f3x5)})};function handleError(_0x63f3x4,_0x63f3x5){return _0x63f3x4[_0x3553[7]](500)[_0x3553[6]](_0x63f3x5)}
\ No newline at end of file
index bea513c..142b7b1 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var UserHasMailQueue = require('../../models').UserHasMailQueue;
-
-exports.register = function(socket) {
-  UserHasMailQueue.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  UserHasMailQueue.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('user_has_mail_queue:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('user_has_mail_queue:remove', doc);
-}
+var _0x6965=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x6965[0];var UserHasMailQueue=require(_0x6965[2])[_0x6965[1]];exports[_0x6965[3]]=function(_0xf119x2){UserHasMailQueue[_0x6965[4]](function(_0xf119x3){onSave(_0xf119x2,_0xf119x3)});UserHasMailQueue[_0x6965[5]](function(_0xf119x3){onRemove(_0xf119x2,_0xf119x3)})};function onSave(_0xf119x2,_0xf119x3,_0xf119x5){_0xf119x2[_0x6965[7]](_0x6965[6],_0xf119x3)}function onRemove(_0xf119x2,_0xf119x3,_0xf119x5){_0xf119x2[_0x6965[7]](_0x6965[8],_0xf119x3)}
\ No newline at end of file
index 1e7edf7..15e4cb7 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./user_has_service.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0xb8cc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xb8cc[0];var express=require(_0xb8cc[1]);var controller=require(_0xb8cc[2]);var router=express.Router();router[_0xb8cc[5]](_0xb8cc[3],controller[_0xb8cc[4]]);router[_0xb8cc[5]](_0xb8cc[6],controller[_0xb8cc[7]]);router[_0xb8cc[9]](_0xb8cc[3],controller[_0xb8cc[8]]);router[_0xb8cc[11]](_0xb8cc[6],controller[_0xb8cc[10]]);router[_0xb8cc[12]](_0xb8cc[6],controller[_0xb8cc[10]]);router[_0xb8cc[14]](_0xb8cc[6],controller[_0xb8cc[13]]);module[_0xb8cc[15]]=router
\ No newline at end of file
index 377090e..67370d7 100644 (file)
@@ -1,98 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var UserHasService = require('../../models').UserHasService;
-
-// Get list of user_has_voice_queues
-exports.index = function(req, res) {
-  UserHasService
-    .findAll(req.query ? {
-      where: req.query
-    } : {})
-    .then(function(user_has_voice_queues) {
-      return res.status(200).send(user_has_voice_queues);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single userHasService
-exports.show = function(req, res) {
-  UserHasService
-    .findById(req.params.id)
-    .then(function(userHasService) {
-      if (!userHasService) {
-        return res.sendStatus(404);
-      }
-      return res.send(userHasService);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new userHasService in the DB.
-exports.create = function(req, res, next) {
-  console.log(req.body);
-  UserHasService
-    .create(req.body)
-    .then(function(userHasService) {
-      return res.status(201).send(userHasService);
-    })
-    .catch(function(err) {
-      console.error(err);
-      return next(err);
-      // return handleError(res, err);
-    });
-};
-
-// Updates an existing userHasService in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  UserHasService
-    .findById(req.params.id)
-    .then(function(userHasService) {
-      if (!userHasService) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(userHasService, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(userHasService);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a userHasService from the DB.
-exports.destroy = function(req, res) {
-  UserHasService
-    .findById(req.params.id)
-    .then(function(userHasService) {
-      if (!userHasService) {
-        return res.sendStatus(404);
-      }
-      userHasService.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x5507=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x53\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x6C\x6F\x67","\x65\x72\x72\x6F\x72","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x5507[0];var _=require(_0x5507[1]);var UserHasService=require(_0x5507[3])[_0x5507[2]];exports[_0x5507[4]]=function(_0xfc93x3,_0xfc93x4){UserHasService[_0x5507[10]](_0xfc93x3[_0x5507[9]]?{where:_0xfc93x3[_0x5507[9]]}:{})[_0x5507[8]](function(_0xfc93x6){return _0xfc93x4[_0x5507[7]](200)[_0x5507[6]](_0xfc93x6)})[_0x5507[5]](function(_0xfc93x5){return handleError(_0xfc93x4,_0xfc93x5)})};exports[_0x5507[11]]=function(_0xfc93x3,_0xfc93x4){UserHasService[_0x5507[15]](_0xfc93x3[_0x5507[14]][_0x5507[13]])[_0x5507[8]](function(_0xfc93x7){if(!_0xfc93x7){return _0xfc93x4[_0x5507[12]](404)};return _0xfc93x4[_0x5507[6]](_0xfc93x7)})[_0x5507[5]](function(_0xfc93x5){return handleError(_0xfc93x4,_0xfc93x5)})};exports[_0x5507[16]]=function(_0xfc93x3,_0xfc93x4,_0xfc93x8){console[_0x5507[18]](_0xfc93x3[_0x5507[17]]);UserHasService[_0x5507[16]](_0xfc93x3[_0x5507[17]])[_0x5507[8]](function(_0xfc93x7){return _0xfc93x4[_0x5507[7]](201)[_0x5507[6]](_0xfc93x7)})[_0x5507[5]](function(_0xfc93x5){console[_0x5507[19]](_0xfc93x5);return _0xfc93x8(_0xfc93x5)})};exports[_0x5507[20]]=function(_0xfc93x3,_0xfc93x4){if(_0xfc93x3[_0x5507[17]][_0x5507[13]]){delete _0xfc93x3[_0x5507[17]][_0x5507[13]]};UserHasService[_0x5507[15]](_0xfc93x3[_0x5507[14]][_0x5507[13]])[_0x5507[8]](function(_0xfc93x7){if(!_0xfc93x7){return _0xfc93x4[_0x5507[12]](404)};var _0xfc93x9=_[_0x5507[21]](_0xfc93x7,_0xfc93x3[_0x5507[17]]);_0xfc93x9[_0x5507[22]]()[_0x5507[8]](function(){return _0xfc93x4[_0x5507[7]](200)[_0x5507[6]](_0xfc93x7)})[_0x5507[5]](function(_0xfc93x5){return handleError(_0xfc93x4,_0xfc93x5)})})[_0x5507[5]](function(_0xfc93x5){return handleError(_0xfc93x4,_0xfc93x5)})};exports[_0x5507[23]]=function(_0xfc93x3,_0xfc93x4){UserHasService[_0x5507[15]](_0xfc93x3[_0x5507[14]][_0x5507[13]])[_0x5507[8]](function(_0xfc93x7){if(!_0xfc93x7){return _0xfc93x4[_0x5507[12]](404)};_0xfc93x7[_0x5507[23]]()[_0x5507[8]](function(){return _0xfc93x4[_0x5507[12]](204)})[_0x5507[5]](function(_0xfc93x5){return handleError(_0xfc93x4,_0xfc93x5)})})[_0x5507[5]](function(_0xfc93x5){return handleError(_0xfc93x4,_0xfc93x5)})};function handleError(_0xfc93x4,_0xfc93x5){return _0xfc93x4[_0x5507[7]](500)[_0x5507[6]](_0xfc93x5)}
\ No newline at end of file
index 816d536..daea044 100644 (file)
@@ -1,27 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var UserHasService = require('../../models').UserHasService;
-
-exports.register = function(socket) {
-  UserHasService.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  UserHasService.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  UserHasService.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('user_has_service:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('user_has_service:remove', doc);
-}
+var _0xb240=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72\x48\x61\x73\x53\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xb240[0];var UserHasService=require(_0xb240[2])[_0xb240[1]];exports[_0xb240[3]]=function(_0xadb8x2){UserHasService[_0xb240[4]](function(_0xadb8x3){onSave(_0xadb8x2,_0xadb8x3)});UserHasService[_0xb240[5]](function(_0xadb8x3){onSave(_0xadb8x2,_0xadb8x3)});UserHasService[_0xb240[6]](function(_0xadb8x3){onRemove(_0xadb8x2,_0xadb8x3)})};function onSave(_0xadb8x2,_0xadb8x3,_0xadb8x5){_0xadb8x2[_0xb240[8]](_0xb240[7],_0xadb8x3)}function onRemove(_0xadb8x2,_0xadb8x3,_0xadb8x5){_0xadb8x2[_0xb240[8]](_0xb240[9],_0xadb8x3)}
\ No newline at end of file
index 0822ab1..e3faf64 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/contactmanager/user_has_service', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/contactmanager/user_has_service')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0xcc3f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65","\x67\x65\x74"];_0xcc3f[0];var should=require(_0xcc3f[1]);var app=require(_0xcc3f[2]);var request=require(_0xcc3f[3]);describe(_0xcc3f[4],function(){it(_0xcc3f[5],function(_0x94b4x4){request(app)[_0xcc3f[13]](_0xcc3f[12])[_0xcc3f[11]](200)[_0xcc3f[11]](_0xcc3f[10],/json/)[_0xcc3f[9]](function(_0x94b4x5,_0x94b4x6){if(_0x94b4x5){return _0x94b4x4(_0x94b4x5)};_0x94b4x6[_0xcc3f[8]][_0xcc3f[1]][_0xcc3f[7]][_0xcc3f[6]](Array);_0x94b4x4()})})})
\ No newline at end of file
index 723bdc1..3637aa4 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./user_has_team.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
\ No newline at end of file
+var _0xd70d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd70d[0];var express=require(_0xd70d[1]);var controller=require(_0xd70d[2]);var router=express.Router();router[_0xd70d[5]](_0xd70d[3],controller[_0xd70d[4]]);router[_0xd70d[5]](_0xd70d[6],controller[_0xd70d[7]]);router[_0xd70d[9]](_0xd70d[3],controller[_0xd70d[8]]);router[_0xd70d[11]](_0xd70d[6],controller[_0xd70d[10]]);router[_0xd70d[12]](_0xd70d[6],controller[_0xd70d[10]]);router[_0xd70d[14]](_0xd70d[6],controller[_0xd70d[13]]);module[_0xd70d[15]]=router
\ No newline at end of file
index 7f0f426..4b83f3c 100644 (file)
@@ -1,96 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var UserHasTeam = require('../../models').UserHasTeam;
-
-// Get list of user_has_teams
-exports.index = function(req, res) {
-  console.log(req.query);
-  UserHasTeam
-    .findAll({
-      where: req.query
-    })
-    .then(function(user_has_teams) {
-      return res.status(200).send(user_has_teams);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single user_has_team
-exports.show = function(req, res) {
-  UserHasTeam
-    .findById(req.params.id)
-    .then(function(user_has_team) {
-      if (!user_has_team) {
-        return res.sendStatus(404);
-      }
-      return res.send(user_has_team);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new user_has_team in the DB.
-exports.create = function(req, res) {
-  UserHasTeam
-    .create(req.body)
-    .then(function(user_has_team) {
-      return res.status(201).send(user_has_team);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing user_has_team in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  UserHasTeam
-    .findById(req.params.id)
-    .then(function(user_has_team) {
-      if (!user_has_team) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(user_has_team, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(user_has_team);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a user_has_team from the DB.
-exports.destroy = function(req, res) {
-  UserHasTeam
-    .findById(req.params.id)
-    .then(function(user_has_team) {
-      if (!user_has_team) {
-        return res.sendStatus(404);
-      }
-      user_has_team.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x4970=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x71\x75\x65\x72\x79","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x4970[0];var _=require(_0x4970[1]);var UserHasTeam=require(_0x4970[3])[_0x4970[2]];exports[_0x4970[4]]=function(_0x6647x3,_0x6647x4){console[_0x4970[6]](_0x6647x3[_0x4970[5]]);UserHasTeam[_0x4970[11]]({where:_0x6647x3[_0x4970[5]]})[_0x4970[10]](function(_0x6647x6){return _0x6647x4[_0x4970[9]](200)[_0x4970[8]](_0x6647x6)})[_0x4970[7]](function(_0x6647x5){return handleError(_0x6647x4,_0x6647x5)})};exports[_0x4970[12]]=function(_0x6647x3,_0x6647x4){UserHasTeam[_0x4970[16]](_0x6647x3[_0x4970[15]][_0x4970[14]])[_0x4970[10]](function(_0x6647x7){if(!_0x6647x7){return _0x6647x4[_0x4970[13]](404)};return _0x6647x4[_0x4970[8]](_0x6647x7)})[_0x4970[7]](function(_0x6647x5){return handleError(_0x6647x4,_0x6647x5)})};exports[_0x4970[17]]=function(_0x6647x3,_0x6647x4){UserHasTeam[_0x4970[17]](_0x6647x3[_0x4970[18]])[_0x4970[10]](function(_0x6647x7){return _0x6647x4[_0x4970[9]](201)[_0x4970[8]](_0x6647x7)})[_0x4970[7]](function(_0x6647x5){return handleError(_0x6647x4,_0x6647x5)})};exports[_0x4970[19]]=function(_0x6647x3,_0x6647x4){if(_0x6647x3[_0x4970[18]][_0x4970[14]]){delete _0x6647x3[_0x4970[18]][_0x4970[14]]};UserHasTeam[_0x4970[16]](_0x6647x3[_0x4970[15]][_0x4970[14]])[_0x4970[10]](function(_0x6647x7){if(!_0x6647x7){return _0x6647x4[_0x4970[13]](404)};var _0x6647x8=_[_0x4970[20]](_0x6647x7,_0x6647x3[_0x4970[18]]);_0x6647x8[_0x4970[21]]()[_0x4970[10]](function(){return _0x6647x4[_0x4970[9]](200)[_0x4970[8]](_0x6647x7)})[_0x4970[7]](function(_0x6647x5){return handleError(_0x6647x4,_0x6647x5)})})[_0x4970[7]](function(_0x6647x5){return handleError(_0x6647x4,_0x6647x5)})};exports[_0x4970[22]]=function(_0x6647x3,_0x6647x4){UserHasTeam[_0x4970[16]](_0x6647x3[_0x4970[15]][_0x4970[14]])[_0x4970[10]](function(_0x6647x7){if(!_0x6647x7){return _0x6647x4[_0x4970[13]](404)};_0x6647x7[_0x4970[22]]()[_0x4970[10]](function(){return _0x6647x4[_0x4970[13]](204)})[_0x4970[7]](function(_0x6647x5){return handleError(_0x6647x4,_0x6647x5)})})[_0x4970[7]](function(_0x6647x5){return handleError(_0x6647x4,_0x6647x5)})};function handleError(_0x6647x4,_0x6647x5){return _0x6647x4[_0x4970[9]](500)[_0x4970[8]](_0x6647x5)}
\ No newline at end of file
index 6d5861d..df4ab30 100644 (file)
@@ -1,13 +1 @@
-'use strict';
-
-module.export = function(sequelize, DataTypes) {
-
-  var UserHasTeam = sequelize.define('UserHasTeam', {
-    name: String,
-    info: String,
-    active: Boolean
-  });
-
-  return UserHasTeam;
-
-};
+var _0xc783=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x64\x65\x66\x69\x6E\x65"];_0xc783[0];module[_0xc783[1]]=function(_0x9f6ex1,_0x9f6ex2){var _0x9f6ex3=_0x9f6ex1[_0xc783[3]](_0xc783[2],{name:String,info:String,active:Boolean});return _0x9f6ex3}
\ No newline at end of file
index 879043c..7f3b48f 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var user_has_team = require('../../models').UserHasTeam;
-
-exports.register = function(socket) {
-  user_has_team.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  user_has_team.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('user_has_team:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('user_has_team:remove', doc);
-}
+var _0x86dc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x3A\x72\x65\x6D\x6F\x76\x65"];_0x86dc[0];var user_has_team=require(_0x86dc[2])[_0x86dc[1]];exports[_0x86dc[3]]=function(_0x4244x2){user_has_team[_0x86dc[4]](function(_0x4244x3){onSave(_0x4244x2,_0x4244x3)});user_has_team[_0x86dc[5]](function(_0x4244x3){onRemove(_0x4244x2,_0x4244x3)})};function onSave(_0x4244x2,_0x4244x3,_0x4244x5){_0x4244x2[_0x86dc[7]](_0x86dc[6],_0x4244x3)}function onRemove(_0x4244x2,_0x4244x3,_0x4244x5){_0x4244x2[_0x86dc[7]](_0x86dc[8],_0x4244x3)}
\ No newline at end of file
index 5cc5226..420f5d6 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/user_has_teams', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/user_has_teams')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x12c2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x67\x65\x74"];_0x12c2[0];var should=require(_0x12c2[1]);var app=require(_0x12c2[2]);var request=require(_0x12c2[3]);describe(_0x12c2[4],function(){it(_0x12c2[5],function(_0x23aex4){request(app)[_0x12c2[13]](_0x12c2[12])[_0x12c2[11]](200)[_0x12c2[11]](_0x12c2[10],/json/)[_0x12c2[9]](function(_0x23aex5,_0x23aex6){if(_0x23aex5){return _0x23aex4(_0x23aex5)};_0x23aex6[_0x12c2[8]][_0x12c2[1]][_0x12c2[7]][_0x12c2[6]](Array);_0x23aex4()})})})
\ No newline at end of file
index 72551d5..93f5b40 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./user_has_voice_queue.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
\ No newline at end of file
+var _0x16ae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x16ae[0];var express=require(_0x16ae[1]);var controller=require(_0x16ae[2]);var router=express.Router();router[_0x16ae[5]](_0x16ae[3],controller[_0x16ae[4]]);router[_0x16ae[5]](_0x16ae[6],controller[_0x16ae[7]]);router[_0x16ae[9]](_0x16ae[3],controller[_0x16ae[8]]);router[_0x16ae[11]](_0x16ae[6],controller[_0x16ae[10]]);router[_0x16ae[12]](_0x16ae[6],controller[_0x16ae[10]]);router[_0x16ae[14]](_0x16ae[6],controller[_0x16ae[13]]);module[_0x16ae[15]]=router
\ No newline at end of file
index f3e5d22..0f2145b 100644 (file)
@@ -1,98 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var UserHasVoiceQueue = require('../../models').UserHasVoiceQueue;
-
-// Get list of user_has_voice_queues
-exports.index = function(req, res) {
-  UserHasVoiceQueue
-    .findAll(req.query ? {
-      where: req.query
-    } : {})
-    .then(function(user_has_voice_queues) {
-      return res.status(200).send(user_has_voice_queues);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single userHasVoiceQueue
-exports.show = function(req, res) {
-  UserHasVoiceQueue
-    .findById(req.params.id)
-    .then(function(userHasVoiceQueue) {
-      if (!userHasVoiceQueue) {
-        return res.sendStatus(404);
-      }
-      return res.send(userHasVoiceQueue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new userHasVoiceQueue in the DB.
-exports.create = function(req, res, next) {
-  console.log(req.body);
-  UserHasVoiceQueue
-    .create(req.body)
-    .then(function(userHasVoiceQueue) {
-      return res.status(201).send(userHasVoiceQueue);
-    })
-    .catch(function(err) {
-      console.error(err);
-      return next(err);
-      // return handleError(res, err);
-    });
-};
-
-// Updates an existing userHasVoiceQueue in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  UserHasVoiceQueue
-    .findById(req.params.id)
-    .then(function(userHasVoiceQueue) {
-      if (!userHasVoiceQueue) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(userHasVoiceQueue, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(userHasVoiceQueue);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a userHasVoiceQueue from the DB.
-exports.destroy = function(req, res) {
-  UserHasVoiceQueue
-    .findById(req.params.id)
-    .then(function(userHasVoiceQueue) {
-      if (!userHasVoiceQueue) {
-        return res.sendStatus(404);
-      }
-      userHasVoiceQueue.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x6d1c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x6C\x6F\x67","\x65\x72\x72\x6F\x72","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x6d1c[0];var _=require(_0x6d1c[1]);var UserHasVoiceQueue=require(_0x6d1c[3])[_0x6d1c[2]];exports[_0x6d1c[4]]=function(_0x11c6x3,_0x11c6x4){UserHasVoiceQueue[_0x6d1c[10]](_0x11c6x3[_0x6d1c[9]]?{where:_0x11c6x3[_0x6d1c[9]]}:{})[_0x6d1c[8]](function(_0x11c6x6){return _0x11c6x4[_0x6d1c[7]](200)[_0x6d1c[6]](_0x11c6x6)})[_0x6d1c[5]](function(_0x11c6x5){return handleError(_0x11c6x4,_0x11c6x5)})};exports[_0x6d1c[11]]=function(_0x11c6x3,_0x11c6x4){UserHasVoiceQueue[_0x6d1c[15]](_0x11c6x3[_0x6d1c[14]][_0x6d1c[13]])[_0x6d1c[8]](function(_0x11c6x7){if(!_0x11c6x7){return _0x11c6x4[_0x6d1c[12]](404)};return _0x11c6x4[_0x6d1c[6]](_0x11c6x7)})[_0x6d1c[5]](function(_0x11c6x5){return handleError(_0x11c6x4,_0x11c6x5)})};exports[_0x6d1c[16]]=function(_0x11c6x3,_0x11c6x4,_0x11c6x8){console[_0x6d1c[18]](_0x11c6x3[_0x6d1c[17]]);UserHasVoiceQueue[_0x6d1c[16]](_0x11c6x3[_0x6d1c[17]])[_0x6d1c[8]](function(_0x11c6x7){return _0x11c6x4[_0x6d1c[7]](201)[_0x6d1c[6]](_0x11c6x7)})[_0x6d1c[5]](function(_0x11c6x5){console[_0x6d1c[19]](_0x11c6x5);return _0x11c6x8(_0x11c6x5)})};exports[_0x6d1c[20]]=function(_0x11c6x3,_0x11c6x4){if(_0x11c6x3[_0x6d1c[17]][_0x6d1c[13]]){delete _0x11c6x3[_0x6d1c[17]][_0x6d1c[13]]};UserHasVoiceQueue[_0x6d1c[15]](_0x11c6x3[_0x6d1c[14]][_0x6d1c[13]])[_0x6d1c[8]](function(_0x11c6x7){if(!_0x11c6x7){return _0x11c6x4[_0x6d1c[12]](404)};var _0x11c6x9=_[_0x6d1c[21]](_0x11c6x7,_0x11c6x3[_0x6d1c[17]]);_0x11c6x9[_0x6d1c[22]]()[_0x6d1c[8]](function(){return _0x11c6x4[_0x6d1c[7]](200)[_0x6d1c[6]](_0x11c6x7)})[_0x6d1c[5]](function(_0x11c6x5){return handleError(_0x11c6x4,_0x11c6x5)})})[_0x6d1c[5]](function(_0x11c6x5){return handleError(_0x11c6x4,_0x11c6x5)})};exports[_0x6d1c[23]]=function(_0x11c6x3,_0x11c6x4){UserHasVoiceQueue[_0x6d1c[15]](_0x11c6x3[_0x6d1c[14]][_0x6d1c[13]])[_0x6d1c[8]](function(_0x11c6x7){if(!_0x11c6x7){return _0x11c6x4[_0x6d1c[12]](404)};_0x11c6x7[_0x6d1c[23]]()[_0x6d1c[8]](function(){return _0x11c6x4[_0x6d1c[12]](204)})[_0x6d1c[5]](function(_0x11c6x5){return handleError(_0x11c6x4,_0x11c6x5)})})[_0x6d1c[5]](function(_0x11c6x5){return handleError(_0x11c6x4,_0x11c6x5)})};function handleError(_0x11c6x4,_0x11c6x5){return _0x11c6x4[_0x6d1c[7]](500)[_0x6d1c[6]](_0x11c6x5)}
\ No newline at end of file
index 1ed4063..a7962a9 100644 (file)
@@ -1,42 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var UserHasVoiceQueue = require('../../models').UserHasVoiceQueue;
-
-exports.register = function(socket) {
-  UserHasVoiceQueue.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  UserHasVoiceQueue.afterUpdate(function(doc) {
-    onSave(socket, doc);
-  });
-  UserHasVoiceQueue.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('user_has_voice_queue:save', {
-    logged: doc.logged,
-    loggedAt: doc.loggedAt,
-    queue: doc.queue,
-    membername: doc.membername,
-    interface: doc.interface,
-    callstaken: doc.callstaken,
-    lastcall: doc.lastcall,
-    status: doc.status,
-    statusdesc: doc.statusdesc,
-    statusAt: doc.statusAt,
-    paused: doc.paused,
-    pausedAt: doc.pausedAt,
-    reason: doc.reason,
-    UserId: doc.UserId
-  });
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('user_has_voice_queue:remove', doc);
-}
+var _0x8d61=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x6C\x6F\x67\x67\x65\x64","\x6C\x6F\x67\x67\x65\x64\x41\x74","\x71\x75\x65\x75\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x63\x61\x6C\x6C\x73\x74\x61\x6B\x65\x6E","\x6C\x61\x73\x74\x63\x61\x6C\x6C","\x73\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73\x64\x65\x73\x63","\x73\x74\x61\x74\x75\x73\x41\x74","\x70\x61\x75\x73\x65\x64","\x70\x61\x75\x73\x65\x64\x41\x74","\x72\x65\x61\x73\x6F\x6E","\x55\x73\x65\x72\x49\x64","\x65\x6D\x69\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0x8d61[0];var UserHasVoiceQueue=require(_0x8d61[2])[_0x8d61[1]];exports[_0x8d61[3]]=function(_0x63bex2){UserHasVoiceQueue[_0x8d61[4]](function(_0x63bex3){onSave(_0x63bex2,_0x63bex3)});UserHasVoiceQueue[_0x8d61[5]](function(_0x63bex3){onSave(_0x63bex2,_0x63bex3)});UserHasVoiceQueue[_0x8d61[6]](function(_0x63bex3){onRemove(_0x63bex2,_0x63bex3)})};function onSave(_0x63bex2,_0x63bex3,_0x63bex5){_0x63bex2[_0x8d61[22]](_0x8d61[7],{logged:_0x63bex3[_0x8d61[8]],loggedAt:_0x63bex3[_0x8d61[9]],queue:_0x63bex3[_0x8d61[10]],membername:_0x63bex3[_0x8d61[11]],interface:_0x63bex3[_0x8d61[12]],callstaken:_0x63bex3[_0x8d61[13]],lastcall:_0x63bex3[_0x8d61[14]],status:_0x63bex3[_0x8d61[15]],statusdesc:_0x63bex3[_0x8d61[16]],statusAt:_0x63bex3[_0x8d61[17]],paused:_0x63bex3[_0x8d61[18]],pausedAt:_0x63bex3[_0x8d61[19]],reason:_0x63bex3[_0x8d61[20]],UserId:_0x63bex3[_0x8d61[21]]})}function onRemove(_0x63bex2,_0x63bex3,_0x63bex5){_0x63bex2[_0x8d61[22]](_0x8d61[23],_0x63bex3)}
\ No newline at end of file
index 0ac501f..20ee249 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/voice/user_has_queues', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/voice/user_has_queues')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0x11e5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x67\x65\x74"];_0x11e5[0];var should=require(_0x11e5[1]);var app=require(_0x11e5[2]);var request=require(_0x11e5[3]);describe(_0x11e5[4],function(){it(_0x11e5[5],function(_0x7f7cx4){request(app)[_0x11e5[13]](_0x11e5[12])[_0x11e5[11]](200)[_0x11e5[11]](_0x11e5[10],/json/)[_0x11e5[9]](function(_0x7f7cx5,_0x7f7cx6){if(_0x7f7cx5){return _0x7f7cx4(_0x7f7cx5)};_0x7f7cx6[_0x11e5[8]][_0x11e5[1]][_0x11e5[7]][_0x11e5[6]](Array);_0x7f7cx4()})})})
\ No newline at end of file
index 4c9decb..64eebeb 100644 (file)
@@ -1,17 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./variable.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xcca4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xcca4[0];var express=require(_0xcca4[1]);var controller=require(_0xcca4[2]);var auth=require(_0xcca4[3]);var router=express.Router();router[_0xcca4[7]](_0xcca4[4],auth[_0xcca4[5]](),controller[_0xcca4[6]]);router[_0xcca4[7]](_0xcca4[8],auth[_0xcca4[5]](),controller[_0xcca4[9]]);router[_0xcca4[11]](_0xcca4[4],auth[_0xcca4[5]](),controller[_0xcca4[10]]);router[_0xcca4[13]](_0xcca4[8],auth[_0xcca4[5]](),controller[_0xcca4[12]]);router[_0xcca4[14]](_0xcca4[8],auth[_0xcca4[5]](),controller[_0xcca4[12]]);router[_0xcca4[16]](_0xcca4[4],auth[_0xcca4[5]](),controller[_0xcca4[15]]);router[_0xcca4[16]](_0xcca4[8],auth[_0xcca4[5]](),controller[_0xcca4[17]]);module[_0xcca4[18]]=router
\ No newline at end of file
index 2378a95..076ddf4 100644 (file)
@@ -1,117 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Variable = require('../../models').Variable;
-var Util = require('../../config/util');
-
-// Get list of variables
-exports.index = function(req, res, next) {
-  return Variable
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single variable
-exports.show = function(req, res) {
-  return Variable
-    .findById(req.params.id)
-    .then(function(variable) {
-      if (!variable) {
-        return res.sendStatus(404);
-      }
-      return res.send(variable);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new variable in the DB.
-exports.create = function(req, res) {
-  return Variable
-    .create(req.body)
-    .then(function(variable) {
-      return res.status(201).send(variable);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing variable in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return Variable
-    .findById(req.params.id)
-    .then(function(variable) {
-      if (!variable) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(variable, req.body);
-      return updated
-        .save();
-    })
-    .then(function(variable) {
-      return res.status(200).send(variable);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a variable from the DB.
-exports.destroy = function(req, res) {
-  return Variable
-    .scope('fields')
-    .findById(req.params.id)
-    .then(function(variable) {
-      if (!variable) {
-        return res.sendStatus(404);
-      }
-      if (variableHasAssociation(variable)) {
-        var err = new Error();
-        err.message = 'Variable is associated with an integration\'s configuration';
-        throw err;
-      }
-      return variable.destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.bulkDestroy = function(req, res) {
-  return Variable
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
-
-function variableHasAssociation(variable) {
-  return ((variable.ZendeskFields && variable.ZendeskFields.length > 0) || (variable.DeskFields && variable.DeskFields.length > 0) || (variable.SalesforceFields && variable.SalesforceFields.length >
-    0) || (variable.FreshdeskFields && variable.FreshdeskFields.length > 0) || (variable.SugarcrmFields && variable.SugarcrmFields.length > 0));
-}
+var _0x9160=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x56\x61\x72\x69\x61\x62\x6C\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x6D\x65\x73\x73\x61\x67\x65","\x56\x61\x72\x69\x61\x62\x6C\x65\x20\x69\x73\x20\x61\x73\x73\x6F\x63\x69\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\x61\x6E\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x27\x73\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64\x73","\x73\x63\x6F\x70\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x44\x65\x73\x6B\x46\x69\x65\x6C\x64\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x73"];_0x9160[0];var _=require(_0x9160[1]);var Variable=require(_0x9160[3])[_0x9160[2]];var Util=require(_0x9160[4]);exports[_0x9160[5]]=function(_0x15bbx4,_0x15bbx5,_0x15bbx6){return Variable[_0x9160[12]](Util[_0x9160[11]](_0x15bbx4[_0x9160[10]]))[_0x9160[9]](function(_0x15bbx8){_0x15bbx5[_0x9160[8]](200)[_0x9160[7]](_0x15bbx8)})[_0x9160[6]](function(_0x15bbx7){return handleError(_0x15bbx5,_0x15bbx7)})};exports[_0x9160[13]]=function(_0x15bbx4,_0x15bbx5){return Variable[_0x9160[17]](_0x15bbx4[_0x9160[16]][_0x9160[15]])[_0x9160[9]](function(_0x15bbx9){if(!_0x15bbx9){return _0x15bbx5[_0x9160[14]](404)};return _0x15bbx5[_0x9160[7]](_0x15bbx9)})[_0x9160[6]](function(_0x15bbx7){return handleError(_0x15bbx5,_0x15bbx7)})};exports[_0x9160[18]]=function(_0x15bbx4,_0x15bbx5){return Variable[_0x9160[18]](_0x15bbx4[_0x9160[19]])[_0x9160[9]](function(_0x15bbx9){return _0x15bbx5[_0x9160[8]](201)[_0x9160[7]](_0x15bbx9)})[_0x9160[6]](function(_0x15bbx7){return handleError(_0x15bbx5,_0x15bbx7)})};exports[_0x9160[20]]=function(_0x15bbx4,_0x15bbx5){if(_0x15bbx4[_0x9160[19]][_0x9160[15]]){delete _0x15bbx4[_0x9160[19]][_0x9160[15]]};return Variable[_0x9160[17]](_0x15bbx4[_0x9160[16]][_0x9160[15]])[_0x9160[9]](function(_0x15bbx9){if(!_0x15bbx9){return _0x15bbx5[_0x9160[14]](404)};var _0x15bbxa=_[_0x9160[21]](_0x15bbx9,_0x15bbx4[_0x9160[19]]);return _0x15bbxa[_0x9160[22]]()})[_0x9160[9]](function(_0x15bbx9){return _0x15bbx5[_0x9160[8]](200)[_0x9160[7]](_0x15bbx9)})[_0x9160[6]](function(_0x15bbx7){return handleError(_0x15bbx5,_0x15bbx7)})};exports[_0x9160[23]]=function(_0x15bbx4,_0x15bbx5){return Variable[_0x9160[27]](_0x9160[26])[_0x9160[17]](_0x15bbx4[_0x9160[16]][_0x9160[15]])[_0x9160[9]](function(_0x15bbx9){if(!_0x15bbx9){return _0x15bbx5[_0x9160[14]](404)};if(variableHasAssociation(_0x15bbx9)){var _0x15bbx7= new Error();_0x15bbx7[_0x9160[24]]=_0x9160[25];throw _0x15bbx7};return _0x15bbx9[_0x9160[23]]()})[_0x9160[9]](function(){return _0x15bbx5[_0x9160[14]](204)})[_0x9160[6]](function(_0x15bbx7){return handleError(_0x15bbx5,_0x15bbx7)})};exports[_0x9160[28]]=function(_0x15bbx4,_0x15bbx5){return Variable[_0x9160[23]]({where:{id:_0x15bbx4[_0x9160[10]][_0x9160[29]]},individualHooks:true})[_0x9160[9]](function(){return _0x15bbx5[_0x9160[14]](204)})[_0x9160[6]](function(_0x15bbx7){return handleError(_0x15bbx5,_0x15bbx7)})};function handleError(_0x15bbx5,_0x15bbx7){return _0x15bbx5[_0x9160[8]](500)[_0x9160[7]](_0x15bbx7)}function variableHasAssociation(_0x15bbx9){return ((_0x15bbx9[_0x9160[30]]&&_0x15bbx9[_0x9160[30]][_0x9160[31]]>0)||(_0x15bbx9[_0x9160[32]]&&_0x15bbx9[_0x9160[32]][_0x9160[31]]>0)||(_0x15bbx9[_0x9160[33]]&&_0x15bbx9[_0x9160[33]][_0x9160[31]]>0)||(_0x15bbx9[_0x9160[34]]&&_0x15bbx9[_0x9160[34]][_0x9160[31]]>0)||(_0x15bbx9[_0x9160[35]]&&_0x15bbx9[_0x9160[35]][_0x9160[31]]>0))}
\ No newline at end of file
index 739f11c..7ce35c6 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var Variable = require('../../models').Variable;
-
-exports.register = function(socket) {
-  Variable.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  Variable.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('variable:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('variable:remove', doc);
-}
+var _0xd09f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x61\x72\x69\x61\x62\x6C\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x76\x61\x72\x69\x61\x62\x6C\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xd09f[0];var Variable=require(_0xd09f[2])[_0xd09f[1]];exports[_0xd09f[3]]=function(_0xb760x2){Variable[_0xd09f[4]](function(_0xb760x3){onSave(_0xb760x2,_0xb760x3)});Variable[_0xd09f[5]](function(_0xb760x3){onRemove(_0xb760x2,_0xb760x3)})};function onSave(_0xb760x2,_0xb760x3,_0xb760x5){_0xb760x2[_0xd09f[7]](_0xd09f[6],_0xb760x3)}function onRemove(_0xb760x2,_0xb760x3,_0xb760x5){_0xb760x2[_0xd09f[7]](_0xd09f[8],_0xb760x3)}
\ No newline at end of file
index 1b436c8..781ad34 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./voice_context.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/validate', auth.isAuthenticated(), controller.contextValidation);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-module.exports = router;
+var _0xe6ef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x63\x6F\x6E\x74\x65\x78\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xe6ef[0];var express=require(_0xe6ef[1]);var controller=require(_0xe6ef[2]);var auth=require(_0xe6ef[3]);var router=express.Router();router[_0xe6ef[7]](_0xe6ef[4],auth[_0xe6ef[5]](),controller[_0xe6ef[6]]);router[_0xe6ef[7]](_0xe6ef[8],auth[_0xe6ef[5]](),controller[_0xe6ef[9]]);router[_0xe6ef[11]](_0xe6ef[4],auth[_0xe6ef[5]](),controller[_0xe6ef[10]]);router[_0xe6ef[11]](_0xe6ef[12],auth[_0xe6ef[5]](),controller[_0xe6ef[13]]);router[_0xe6ef[15]](_0xe6ef[8],auth[_0xe6ef[5]](),controller[_0xe6ef[14]]);router[_0xe6ef[17]](_0xe6ef[4],auth[_0xe6ef[5]](),controller[_0xe6ef[16]]);router[_0xe6ef[17]](_0xe6ef[8],auth[_0xe6ef[5]](),controller[_0xe6ef[18]]);module[_0xe6ef[19]]=router
\ No newline at end of file
index c6ec224..a06cd0f 100644 (file)
@@ -1,227 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-
-var Util = require('../../config/util');
-var sequelize = require('../../models').sequelize;
-
-var VoiceContext = require('../../models').VoiceContext;
-var VoiceExtension = require('../../models').VoiceExtension;
-
-// Get list of agents
-exports.index = function(req, res, next) {
-  return VoiceContext
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single voiceContext
-exports.show = function(req, res) {
-  return VoiceContext
-    .findById(req.params.id)
-    .then(function(voiceContext) {
-      if (!voiceContext) {
-        return res.sendStatus(404);
-      }
-      return res.send(voiceContext);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Validate the existence of a context
-exports.contextValidation = function(req, res) {
-  return VoiceContext
-    .findAll({
-      where: {
-        name: req.body.name
-      }
-    })
-    .then(function(voiceContexts) {
-      if (!voiceContexts) {
-        return res.sendStatus(404);
-      }
-      return res.send(voiceContexts);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new voiceContext in the DB.
-exports.create = function(req, res) {
-  return VoiceContext
-    .create(req.body)
-    .then(function(voiceContext) {
-      return res.status(201).send(voiceContext);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      err.message = 'The context name already exists';
-      err.translatedMessage = 'MESSAGE_EXIST_CONTEXT'
-      return handleError(res, err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-
-};
-
-// Updates an existing voiceContext in the DB.
-exports.update = function(req, res) {
-  return VoiceContext
-    .findAll({
-      where: {
-        name: req.body.name,
-        id: {
-          $ne: req.body.id
-        }
-      }
-    })
-    .then(function(existingContexts) {
-      if (!existingContexts) {
-        return res.sendStatus(404);
-      }
-      if (existingContexts.length > 0) {
-        return res.status(500).send({
-          message: 'MESSAGE_EXIST_CONTEXT'
-        });
-      }
-      if (req.body.id) {
-        delete req.body.id;
-      }
-      return VoiceContext
-        .findById(req.params.id);
-    })
-    .then(function(voiceContext) {
-      if (!voiceContext) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(voiceContext, req.body);
-      return updated
-        .save();
-    })
-    .then(function(voiceContext) {
-      return res.status(200).send(voiceContext);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-
-};
-
-// Deletes a voiceContext from the DB.
-exports.destroy = function(req, res) {
-  var _voiceContext;
-
-  return VoiceContext
-    .findById(req.params.id)
-    .then(function(voiceContext) {
-      _voiceContext = voiceContext;
-      if (!_voiceContext) {
-        return res.sendStatus(404);
-      }
-      if (_voiceContext.defaultEntry) {
-        return res.status(500).send({
-          message: 'You can\'t delete a default entry!',
-          translatedMessage: 'MESSAGE_DEFAULT_ENTRY'
-        });
-      }
-      return VoiceExtension
-        .findAll({
-          where: {
-            context: _voiceContext.name,
-            VoiceContextId: null
-          }
-        });
-    })
-    .then(function(contextExtensions) {
-      console.log(contextExtensions);
-      if (contextExtensions.length > 0) {
-        return res.status(500).send({
-          message: 'The context is associated to a route, delete or change it first',
-          translatedMessage: 'MESSAGE_CONTEXT_ROUTE_ASSOCIATED'
-        });
-      }
-      return _voiceContext
-        .destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      console.log('err', err);
-      return handleError(res, err);
-    });
-
-};
-
-// Deletes a context from the DB.
-exports.bulkDestroy = function(req, res) {
-
-  var _voiceContexts;
-
-  return VoiceContext
-    .findAll({
-      where: {
-        id: req.query.ids
-      }
-    })
-    .then(function(voiceContexts) {
-      _voiceContexts = voiceContexts;
-      var isDefault = _.find(_voiceContexts, {
-        defaultEntry: true
-      });
-      if (isDefault) {
-        return res.status(500).send({
-          message: 'You can\'t delete a default entry!',
-          translatedMessage: 'MESSAGE_DEFAULT_ENTRY'
-        });
-      }
-      if (!_voiceContexts) {
-        return res.sendStatus(404);
-      }
-      var destroyContextsNames = _.map(_.map(_voiceContexts, 'dataValues'), 'name');
-
-      return VoiceExtension
-        .findAll({
-          where: {
-            context: destroyContextsNames,
-            VoiceContextId: null
-          }
-        });
-    })
-    .then(function(contextExtensions) {
-      if (contextExtensions.length > _voiceContexts.length) {
-        return res.status(500).send({
-          message: 'The context is associated to a route, delete or change it first',
-          translatedMessage: 'MESSAGE_CONTEXT_ROUTE_ASSOCIATED'
-        });
-      }
-
-      return VoiceContext
-        .destroy({
-          where: {
-            id: req.query.ids
-          },
-          individualHooks: true
-        });
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x1a3f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x6F\x6E\x74\x65\x78\x74\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x6E\x61\x6D\x65","\x62\x6F\x64\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x6D\x65\x73\x73\x61\x67\x65","\x54\x68\x65\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x6E\x61\x6D\x65\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x65\x78\x69\x73\x74\x73","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x64\x4D\x65\x73\x73\x61\x67\x65","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x43\x4F\x4E\x54\x45\x58\x54","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x6C\x65\x6E\x67\x74\x68","\x64\x65\x73\x74\x72\x6F\x79","\x65\x72\x72","\x6C\x6F\x67","\x54\x68\x65\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x69\x73\x20\x61\x73\x73\x6F\x63\x69\x61\x74\x65\x64\x20\x74\x6F\x20\x61\x20\x72\x6F\x75\x74\x65\x2C\x20\x64\x65\x6C\x65\x74\x65\x20\x6F\x72\x20\x63\x68\x61\x6E\x67\x65\x20\x69\x74\x20\x66\x69\x72\x73\x74","\x4D\x45\x53\x53\x41\x47\x45\x5F\x43\x4F\x4E\x54\x45\x58\x54\x5F\x52\x4F\x55\x54\x45\x5F\x41\x53\x53\x4F\x43\x49\x41\x54\x45\x44","\x64\x65\x66\x61\x75\x6C\x74\x45\x6E\x74\x72\x79","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x64\x65\x6C\x65\x74\x65\x20\x61\x20\x64\x65\x66\x61\x75\x6C\x74\x20\x65\x6E\x74\x72\x79\x21","\x4D\x45\x53\x53\x41\x47\x45\x5F\x44\x45\x46\x41\x55\x4C\x54\x5F\x45\x4E\x54\x52\x59","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x66\x69\x6E\x64","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x6D\x61\x70"];_0x1a3f[0];var _=require(_0x1a3f[1]);var util=require(_0x1a3f[2]);var Util=require(_0x1a3f[3]);var sequelize=require(_0x1a3f[5])[_0x1a3f[4]];var VoiceContext=require(_0x1a3f[5])[_0x1a3f[6]];var VoiceExtension=require(_0x1a3f[5])[_0x1a3f[7]];exports[_0x1a3f[8]]=function(_0x1af0x7,_0x1af0x8,_0x1af0x9){return VoiceContext[_0x1a3f[15]](Util[_0x1a3f[14]](_0x1af0x7[_0x1a3f[13]]))[_0x1a3f[12]](function(_0x1af0xb){_0x1af0x8[_0x1a3f[11]](200)[_0x1a3f[10]](_0x1af0xb)})[_0x1a3f[9]](function(_0x1af0xa){return handleError(_0x1af0x8,_0x1af0xa)})};exports[_0x1a3f[16]]=function(_0x1af0x7,_0x1af0x8){return VoiceContext[_0x1a3f[20]](_0x1af0x7[_0x1a3f[19]][_0x1a3f[18]])[_0x1a3f[12]](function(_0x1af0xc){if(!_0x1af0xc){return _0x1af0x8[_0x1a3f[17]](404)};return _0x1af0x8[_0x1a3f[10]](_0x1af0xc)})[_0x1a3f[9]](function(_0x1af0xa){return handleError(_0x1af0x8,_0x1af0xa)})};exports[_0x1a3f[21]]=function(_0x1af0x7,_0x1af0x8){return VoiceContext[_0x1a3f[24]]({where:{name:_0x1af0x7[_0x1a3f[23]][_0x1a3f[22]]}})[_0x1a3f[12]](function(_0x1af0xd){if(!_0x1af0xd){return _0x1af0x8[_0x1a3f[17]](404)};return _0x1af0x8[_0x1a3f[10]](_0x1af0xd)})[_0x1a3f[9]](function(_0x1af0xa){return handleError(_0x1af0x8,_0x1af0xa)})};exports[_0x1a3f[25]]=function(_0x1af0x7,_0x1af0x8){return VoiceContext[_0x1a3f[25]](_0x1af0x7[_0x1a3f[23]])[_0x1a3f[12]](function(_0x1af0xc){return _0x1af0x8[_0x1a3f[11]](201)[_0x1a3f[10]](_0x1af0xc)})[_0x1a3f[9]](sequelize.UniqueConstraintError,function(_0x1af0xa){_0x1af0xa[_0x1a3f[26]]=_0x1a3f[27];_0x1af0xa[_0x1a3f[28]]=_0x1a3f[29];return handleError(_0x1af0x8,_0x1af0xa)})[_0x1a3f[9]](function(_0x1af0xa){return handleError(_0x1af0x8,_0x1af0xa)})};exports[_0x1a3f[30]]=function(_0x1af0x7,_0x1af0x8){return VoiceContext[_0x1a3f[24]]({where:{name:_0x1af0x7[_0x1a3f[23]][_0x1a3f[22]],id:{$ne:_0x1af0x7[_0x1a3f[23]][_0x1a3f[18]]}}})[_0x1a3f[12]](function(_0x1af0xf){if(!_0x1af0xf){return _0x1af0x8[_0x1a3f[17]](404)};if(_0x1af0xf[_0x1a3f[33]]>0){return _0x1af0x8[_0x1a3f[11]](500)[_0x1a3f[10]]({message:_0x1a3f[29]})};if(_0x1af0x7[_0x1a3f[23]][_0x1a3f[18]]){delete _0x1af0x7[_0x1a3f[23]][_0x1a3f[18]]};return VoiceContext[_0x1a3f[20]](_0x1af0x7[_0x1a3f[19]][_0x1a3f[18]])})[_0x1a3f[12]](function(_0x1af0xc){if(!_0x1af0xc){return _0x1af0x8[_0x1a3f[17]](404)};var _0x1af0xe=_[_0x1a3f[31]](_0x1af0xc,_0x1af0x7[_0x1a3f[23]]);return _0x1af0xe[_0x1a3f[32]]()})[_0x1a3f[12]](function(_0x1af0xc){return _0x1af0x8[_0x1a3f[11]](200)[_0x1a3f[10]](_0x1af0xc)})[_0x1a3f[9]](function(_0x1af0xa){return handleError(_0x1af0x8,_0x1af0xa)})};exports[_0x1a3f[34]]=function(_0x1af0x7,_0x1af0x8){var _0x1af0x10;return VoiceContext[_0x1a3f[20]](_0x1af0x7[_0x1a3f[19]][_0x1a3f[18]])[_0x1a3f[12]](function(_0x1af0xc){_0x1af0x10=_0x1af0xc;if(!_0x1af0x10){return _0x1af0x8[_0x1a3f[17]](404)};if(_0x1af0x10[_0x1a3f[39]]){return _0x1af0x8[_0x1a3f[11]](500)[_0x1a3f[10]]({message:_0x1a3f[40],translatedMessage:_0x1a3f[41]})};return VoiceExtension[_0x1a3f[24]]({where:{context:_0x1af0x10[_0x1a3f[22]],VoiceContextId:null}})})[_0x1a3f[12]](function(_0x1af0x11){console[_0x1a3f[36]](_0x1af0x11);if(_0x1af0x11[_0x1a3f[33]]>0){return _0x1af0x8[_0x1a3f[11]](500)[_0x1a3f[10]]({message:_0x1a3f[37],translatedMessage:_0x1a3f[38]})};return _0x1af0x10[_0x1a3f[34]]()})[_0x1a3f[12]](function(){return _0x1af0x8[_0x1a3f[17]](204)})[_0x1a3f[9]](function(_0x1af0xa){console[_0x1a3f[36]](_0x1a3f[35],_0x1af0xa);return handleError(_0x1af0x8,_0x1af0xa)})};exports[_0x1a3f[42]]=function(_0x1af0x7,_0x1af0x8){var _0x1af0x12;return VoiceContext[_0x1a3f[24]]({where:{id:_0x1af0x7[_0x1a3f[13]][_0x1a3f[43]]}})[_0x1a3f[12]](function(_0x1af0xd){_0x1af0x12=_0x1af0xd;var _0x1af0x13=_[_0x1a3f[44]](_0x1af0x12,{defaultEntry:true});if(_0x1af0x13){return _0x1af0x8[_0x1a3f[11]](500)[_0x1a3f[10]]({message:_0x1a3f[40],translatedMessage:_0x1a3f[41]})};if(!_0x1af0x12){return _0x1af0x8[_0x1a3f[17]](404)};var _0x1af0x14=_[_0x1a3f[46]](_[_0x1a3f[46]](_0x1af0x12,_0x1a3f[45]),_0x1a3f[22]);return VoiceExtension[_0x1a3f[24]]({where:{context:_0x1af0x14,VoiceContextId:null}})})[_0x1a3f[12]](function(_0x1af0x11){if(_0x1af0x11[_0x1a3f[33]]>_0x1af0x12[_0x1a3f[33]]){return _0x1af0x8[_0x1a3f[11]](500)[_0x1a3f[10]]({message:_0x1a3f[37],translatedMessage:_0x1a3f[38]})};return VoiceContext[_0x1a3f[34]]({where:{id:_0x1af0x7[_0x1a3f[13]][_0x1a3f[43]]},individualHooks:true})})[_0x1a3f[12]](function(){return _0x1af0x8[_0x1a3f[17]](204)})[_0x1a3f[9]](function(_0x1af0xa){console[_0x1a3f[36]](_0x1af0xa);return handleError(_0x1af0x8,_0x1af0xa)})};function handleError(_0x1af0x8,_0x1af0xa){return _0x1af0x8[_0x1a3f[11]](500)[_0x1a3f[10]](_0x1af0xa)}
\ No newline at end of file
index c3841ec..670dd72 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var VoiceContext = require('../../models').VoiceContext;
-
-exports.register = function(socket) {
-  VoiceContext.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  VoiceContext.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('voice_context:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('voice_context:remove', doc);
-}
+var _0x40af=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0x40af[0];var VoiceContext=require(_0x40af[2])[_0x40af[1]];exports[_0x40af[3]]=function(_0x1a2dx2){VoiceContext[_0x40af[4]](function(_0x1a2dx3){onSave(_0x1a2dx2,_0x1a2dx3)});VoiceContext[_0x40af[5]](function(_0x1a2dx3){onRemove(_0x1a2dx2,_0x1a2dx3)})};function onSave(_0x1a2dx2,_0x1a2dx3,_0x1a2dx5){_0x1a2dx2[_0x40af[7]](_0x40af[6],_0x1a2dx3)}function onRemove(_0x1a2dx2,_0x1a2dx3,_0x1a2dx5){_0x1a2dx2[_0x40af[7]](_0x40af[8],_0x1a2dx3)}
\ No newline at end of file
index 1a60777..611de15 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/voice/contexts', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/voice/contexts')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0xc100=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x67\x65\x74"];_0xc100[0];var should=require(_0xc100[1]);var app=require(_0xc100[2]);var request=require(_0xc100[3]);describe(_0xc100[4],function(){it(_0xc100[5],function(_0x59b3x4){request(app)[_0xc100[13]](_0xc100[12])[_0xc100[11]](200)[_0xc100[11]](_0xc100[10],/json/)[_0xc100[9]](function(_0x59b3x5,_0x59b3x6){if(_0x59b3x5){return _0x59b3x4(_0x59b3x5)};_0x59b3x6[_0xc100[8]][_0xc100[1]][_0xc100[7]][_0xc100[6]](Array);_0x59b3x4()})})})
\ No newline at end of file
index b0215fc..4e6d3ad 100644 (file)
@@ -1,16 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./voice_extension.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy); //check it for apps
-router.delete('/:id', auth.isAuthenticated(), controller.destroy); //check it for apps
-
-module.exports = router;
+var _0xcaab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xcaab[0];var express=require(_0xcaab[1]);var controller=require(_0xcaab[2]);var auth=require(_0xcaab[3]);var router=express.Router();router[_0xcaab[7]](_0xcaab[4],auth[_0xcaab[5]](),controller[_0xcaab[6]]);router[_0xcaab[7]](_0xcaab[8],auth[_0xcaab[5]](),controller[_0xcaab[9]]);router[_0xcaab[11]](_0xcaab[4],auth[_0xcaab[5]](),controller[_0xcaab[10]]);router[_0xcaab[13]](_0xcaab[8],auth[_0xcaab[5]](),controller[_0xcaab[12]]);router[_0xcaab[15]](_0xcaab[4],auth[_0xcaab[5]](),controller[_0xcaab[14]]);router[_0xcaab[15]](_0xcaab[8],auth[_0xcaab[5]](),controller[_0xcaab[16]]);module[_0xcaab[17]]=router
\ No newline at end of file
index 6dc7233..d7fc287 100644 (file)
@@ -1,146 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var VoiceExtension = require('../../models').VoiceExtension;
-var Interval = require('../../models').Interval;
-var sequelize = require('../../models').sequelize;
-var Sequelize = require('../../models').Sequelize;
-var util = require('util');
-var async = require('async');
-var veUtil = require('../../utils/voice_extension');
-var Util = require('../../config/util');
-
-var Applications = veUtil.Applications;
-
-// Get list of extensions
-exports.index = function(req, res, next) {
-  return VoiceExtension
-    .scope('routes', 'application')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Get a single voice_extension or application
-exports.show = function(req, res) {
-  VoiceExtension
-    .scope('application')
-    .findOne({
-      where: {
-        id: req.params.id,
-        VoiceExtensionId: null
-      }
-    })
-    .then(function(voice_extension) {
-      if (!voice_extension) {
-        return res.sendStatus(404);
-      }
-      return res.send(voice_extension);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.create = function(req, res) {
-  var _route;
-  return sequelize.transaction(function(t) {
-      return VoiceExtension
-        .create(req.body, {
-          transaction: t
-        })
-        .then(function(route) {
-          _route = route;
-          if (req.body.Applications && Array.isArray(req.body.Applications) && req.body.Applications.length) {
-            return route;
-          }
-        })
-        .then(veUtil.createApps(req.body.Applications, t, res));
-    })
-    .then(function() {
-      return res.status(201).send(_route);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      err.message = 'Extension/context combination already exist';
-      err.translatedMessage = 'MESSAGE_EXIST_ROUTE'
-      return handleError(res, err);
-    })
-    .catch(sequelize.ValidationError, function(err) {
-      err.message = 'Extension/context combination already exist';
-      err.translatedMessage = 'MESSAGE_EXIST_ROUTE'
-      return handleError(res, err);
-    })
-    .catch(function(err) {
-      console.log('err', err);
-      return handleError(res, err);
-    });
-}
-
-
-
-// Updates an existing voice_extension in the DB.
-exports.update = function(req, res) {
-  return sequelize.transaction(function(t) {
-      return veUtil.routeUpdate(req, t);
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      err.message = 'Extension/context combination already exist';
-      err.translatedMessage = 'MESSAGE_EXIST_ROUTE'
-      console.log(err);
-      return handleError(res, err);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-}
-
-// Deletes a voice_extension from the DB.
-exports.destroy = function(req, res, next) {
-  return sequelize.transaction(function(t) {
-      return VoiceExtension
-        .findById(req.params.id)
-        .then(function(voice_extension) {
-          if (!voice_extension) {
-            return res.sendStatus(404);
-          }
-          return voice_extension.destroy();
-        });
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Deletes from the DB.
-exports.bulkDestroy = function(req, res) {
-  VoiceExtension
-    .destroy({
-      where: {
-        id: req.query.id
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x7dfd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x75\x74\x69\x6C","\x61\x73\x79\x6E\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x69\x6E\x64\x65\x78","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x72\x6F\x75\x74\x65\x73","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x63\x72\x65\x61\x74\x65","\x65\x72\x72","\x6D\x65\x73\x73\x61\x67\x65","\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2F\x63\x6F\x6E\x74\x65\x78\x74\x20\x63\x6F\x6D\x62\x69\x6E\x61\x74\x69\x6F\x6E\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x65\x78\x69\x73\x74","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x64\x4D\x65\x73\x73\x61\x67\x65","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x52\x4F\x55\x54\x45","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65\x41\x70\x70\x73","\x69\x73\x41\x72\x72\x61\x79","\x6C\x65\x6E\x67\x74\x68","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x72\x6F\x75\x74\x65\x55\x70\x64\x61\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64\x42\x79\x49\x64","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0x7dfd[0];var _=require(_0x7dfd[1]);var VoiceExtension=require(_0x7dfd[3])[_0x7dfd[2]];var Interval=require(_0x7dfd[3])[_0x7dfd[4]];var sequelize=require(_0x7dfd[3])[_0x7dfd[5]];var Sequelize=require(_0x7dfd[3])[_0x7dfd[6]];var util=require(_0x7dfd[7]);var async=require(_0x7dfd[8]);var veUtil=require(_0x7dfd[9]);var Util=require(_0x7dfd[10]);var Applications=veUtil[_0x7dfd[11]];exports[_0x7dfd[12]]=function(_0xef97xb,_0xef97xc,_0xef97xd){return VoiceExtension[_0x7dfd[23]](_0x7dfd[21],_0x7dfd[22])[_0x7dfd[20]](Util[_0x7dfd[19]](_0xef97xb[_0x7dfd[18]]))[_0x7dfd[17]](function(_0xef97xf){_0xef97xc[_0x7dfd[16]](200)[_0x7dfd[15]](_0xef97xf)})[_0x7dfd[14]](function(_0xef97xe){console[_0x7dfd[13]](_0xef97xe);return handleError(_0xef97xc,_0xef97xe)})};exports[_0x7dfd[24]]=function(_0xef97xb,_0xef97xc){VoiceExtension[_0x7dfd[23]](_0x7dfd[22])[_0x7dfd[28]]({where:{id:_0xef97xb[_0x7dfd[27]][_0x7dfd[26]],VoiceExtensionId:null}})[_0x7dfd[17]](function(_0xef97x10){if(!_0xef97x10){return _0xef97xc[_0x7dfd[25]](404)};return _0xef97xc[_0x7dfd[15]](_0xef97x10)})[_0x7dfd[14]](function(_0xef97xe){return handleError(_0xef97xc,_0xef97xe)})};exports[_0x7dfd[29]]=function(_0xef97xb,_0xef97xc){var _0xef97x11;return sequelize[_0x7dfd[39]](function(_0xef97x12){return VoiceExtension[_0x7dfd[29]](_0xef97xb[_0x7dfd[35]],{transaction:_0xef97x12})[_0x7dfd[17]](function(_0xef97x13){_0xef97x11=_0xef97x13;if(_0xef97xb[_0x7dfd[35]][_0x7dfd[11]]&&Array[_0x7dfd[37]](_0xef97xb[_0x7dfd[35]].Applications)&&_0xef97xb[_0x7dfd[35]][_0x7dfd[11]][_0x7dfd[38]]){return _0xef97x13}})[_0x7dfd[17]](veUtil[_0x7dfd[36]](_0xef97xb[_0x7dfd[35]].Applications,_0xef97x12,_0xef97xc))})[_0x7dfd[17]](function(){return _0xef97xc[_0x7dfd[16]](201)[_0x7dfd[15]](_0xef97x11)})[_0x7dfd[14]](sequelize.UniqueConstraintError,function(_0xef97xe){_0xef97xe[_0x7dfd[31]]=_0x7dfd[32];_0xef97xe[_0x7dfd[33]]=_0x7dfd[34];return handleError(_0xef97xc,_0xef97xe)})[_0x7dfd[14]](sequelize.ValidationError,function(_0xef97xe){_0xef97xe[_0x7dfd[31]]=_0x7dfd[32];_0xef97xe[_0x7dfd[33]]=_0x7dfd[34];return handleError(_0xef97xc,_0xef97xe)})[_0x7dfd[14]](function(_0xef97xe){console[_0x7dfd[13]](_0x7dfd[30],_0xef97xe);return handleError(_0xef97xc,_0xef97xe)})};exports[_0x7dfd[40]]=function(_0xef97xb,_0xef97xc){return sequelize[_0x7dfd[39]](function(_0xef97x12){return veUtil[_0x7dfd[41]](_0xef97xb,_0xef97x12)})[_0x7dfd[17]](function(){return _0xef97xc[_0x7dfd[25]](200)})[_0x7dfd[14]](sequelize.UniqueConstraintError,function(_0xef97xe){_0xef97xe[_0x7dfd[31]]=_0x7dfd[32];_0xef97xe[_0x7dfd[33]]=_0x7dfd[34];console[_0x7dfd[13]](_0xef97xe);return handleError(_0xef97xc,_0xef97xe)})[_0x7dfd[14]](function(_0xef97xe){console[_0x7dfd[13]](_0xef97xe);return handleError(_0xef97xc,_0xef97xe)})};exports[_0x7dfd[42]]=function(_0xef97xb,_0xef97xc,_0xef97xd){return sequelize[_0x7dfd[39]](function(_0xef97x12){return VoiceExtension[_0x7dfd[43]](_0xef97xb[_0x7dfd[27]][_0x7dfd[26]])[_0x7dfd[17]](function(_0xef97x10){if(!_0xef97x10){return _0xef97xc[_0x7dfd[25]](404)};return _0xef97x10[_0x7dfd[42]]()})})[_0x7dfd[17]](function(){return _0xef97xc[_0x7dfd[25]](204)})[_0x7dfd[14]](function(_0xef97xe){console[_0x7dfd[13]](_0xef97xe);return handleError(_0xef97xc,_0xef97xe)})};exports[_0x7dfd[44]]=function(_0xef97xb,_0xef97xc){VoiceExtension[_0x7dfd[42]]({where:{id:_0xef97xb[_0x7dfd[18]][_0x7dfd[26]]},individualHooks:true})[_0x7dfd[17]](function(){return _0xef97xc[_0x7dfd[25]](204)})[_0x7dfd[14]](function(_0xef97xe){return handleError(_0xef97xc,_0xef97xe)})};function handleError(_0xef97xc,_0xef97xe){return _0xef97xc[_0x7dfd[16]](500)[_0x7dfd[15]](_0xef97xe)}
\ No newline at end of file
index 8da1778..9999e95 100644 (file)
@@ -1,34 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var VoiceExtension = require('../../models').VoiceExtension;
-
-exports.register = function(socket) {
-  VoiceExtension.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  VoiceExtension.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-  // VoiceExtension.afterBulkDestroy(function(doc) {//causes a maximum stack range error due to the object sent being too big!!
-  //   onRemove(socket, doc);
-  // });
-  VoiceExtension.afterUpdate(function(doc) {
-    onUpdate(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('voice_extension:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('voice_extension:remove', doc);
-}
-
-function onUpdate(socket, doc, cb) {
-  socket.emit('voice_extension:update', doc);
-}
+var _0x93fc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65","\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x3A\x75\x70\x64\x61\x74\x65"];_0x93fc[0];var VoiceExtension=require(_0x93fc[2])[_0x93fc[1]];exports[_0x93fc[3]]=function(_0xd543x2){VoiceExtension[_0x93fc[4]](function(_0xd543x3){onSave(_0xd543x2,_0xd543x3)});VoiceExtension[_0x93fc[5]](function(_0xd543x3){onRemove(_0xd543x2,_0xd543x3)});VoiceExtension[_0x93fc[6]](function(_0xd543x3){onUpdate(_0xd543x2,_0xd543x3)})};function onSave(_0xd543x2,_0xd543x3,_0xd543x5){_0xd543x2[_0x93fc[8]](_0x93fc[7],_0xd543x3)}function onRemove(_0xd543x2,_0xd543x3,_0xd543x5){_0xd543x2[_0x93fc[8]](_0x93fc[9],_0xd543x3)}function onUpdate(_0xd543x2,_0xd543x3,_0xd543x5){_0xd543x2[_0x93fc[8]](_0x93fc[10],_0xd543x3)}
\ No newline at end of file
index 0971536..7aeb539 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/voice/extensions', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/voice/extensions')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0xdcdd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x67\x65\x74"];_0xdcdd[0];var should=require(_0xdcdd[1]);var app=require(_0xdcdd[2]);var request=require(_0xdcdd[3]);describe(_0xdcdd[4],function(){it(_0xdcdd[5],function(_0x4f38x4){request(app)[_0xdcdd[13]](_0xdcdd[12])[_0xdcdd[11]](200)[_0xdcdd[11]](_0xdcdd[10],/json/)[_0xdcdd[9]](function(_0x4f38x5,_0x4f38x6){if(_0x4f38x5){return _0x4f38x4(_0x4f38x5)};_0x4f38x6[_0xdcdd[8]][_0xdcdd[1]][_0xdcdd[7]][_0xdcdd[6]](Array);_0x4f38x4()})})})
\ No newline at end of file
index 59cc818..1fb2f76 100644 (file)
@@ -1,21 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./voice_musiconhold.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/stream', auth.isAuthenticated(), controller.stream);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/files', auth.isAuthenticated(), controller.showAudioFiles);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/validate', auth.isAuthenticated(), controller.mohValidation);
-router.post('/:id/files', auth.isAuthenticated(), controller.addFiles);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-router.delete('/:id/files', auth.isAuthenticated(), controller.deleteAudioFiles);
-
-module.exports = router;
+var _0xf575=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x73\x74\x72\x65\x61\x6D","\x73\x74\x72\x65\x61\x6D","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x6C\x65\x73","\x73\x68\x6F\x77\x41\x75\x64\x69\x6F\x46\x69\x6C\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x6D\x6F\x68\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x6C\x65\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65\x41\x75\x64\x69\x6F\x46\x69\x6C\x65\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xf575[0];var express=require(_0xf575[1]);var controller=require(_0xf575[2]);var auth=require(_0xf575[3]);var router=express.Router();router[_0xf575[7]](_0xf575[4],auth[_0xf575[5]](),controller[_0xf575[6]]);router[_0xf575[7]](_0xf575[8],auth[_0xf575[5]](),controller[_0xf575[9]]);router[_0xf575[7]](_0xf575[10],auth[_0xf575[5]](),controller[_0xf575[11]]);router[_0xf575[7]](_0xf575[12],auth[_0xf575[5]](),controller[_0xf575[13]]);router[_0xf575[15]](_0xf575[4],auth[_0xf575[5]](),controller[_0xf575[14]]);router[_0xf575[15]](_0xf575[16],auth[_0xf575[5]](),controller[_0xf575[17]]);router[_0xf575[15]](_0xf575[12],auth[_0xf575[5]](),controller[_0xf575[18]]);router[_0xf575[20]](_0xf575[10],auth[_0xf575[5]](),controller[_0xf575[19]]);router[_0xf575[22]](_0xf575[4],auth[_0xf575[5]](),controller[_0xf575[21]]);router[_0xf575[22]](_0xf575[10],auth[_0xf575[5]](),controller[_0xf575[23]]);router[_0xf575[22]](_0xf575[12],auth[_0xf575[5]](),controller[_0xf575[24]]);module[_0xf575[25]]=router
\ No newline at end of file
index 6c74d50..6b34047 100644 (file)
@@ -1,283 +1 @@
-'use strict';
-
-var fs = require('fs');
-var _ = require('lodash');
-var path = require('path');
-var util = require('util');
-var fse = require('fs-extra');
-var remove = require('remove');
-var base64 = require('file-base64');
-
-var config = require('../../config/environment');
-var Util = require('../../config/util');
-
-var Sound = require('../../models').Sound;
-var sequelize = require('../../models').sequelize;
-var VoiceMusicOnHold = require('../../models').VoiceMusicOnHold;
-
-
-// Get list of voice_musiconholds
-exports.index = function(req, res) {
-  return VoiceMusicOnHold
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single voiceMusiconhold
-exports.show = function(req, res) {
-  return VoiceMusicOnHold
-    .findById(req.params.id)
-    .then(function(voiceMusiconhold) {
-      if (!voiceMusiconhold) {
-        return res.sendStatus(404);
-      }
-      return res.send(voiceMusiconhold);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Add files to moh class
-exports.addFiles = function(req, res) {
-  var _voiceMusiconhold;
-  return VoiceMusicOnHold
-    .findById(req.params.id)
-    .then(function(voiceMusiconhold) {
-      if (!voiceMusiconhold) {
-        return res.sendStatus(404);
-      }
-      _voiceMusiconhold = voiceMusiconhold;
-
-      return Sound
-        .findAll({
-          where: {
-            id: req.body.sounds
-          }
-        });
-    })
-    .then(function(soundFiles) {
-      var origin = path.join(config.root, 'server/files/sounds/converted');
-      var dest;
-      soundFiles.forEach(function(elem) {
-        dest = path.join(_voiceMusiconhold.directory, elem.display_name + '.wav');
-        fse.copySync(path.join(origin, elem.save_name + '.wav'), dest);
-      });
-      fs.chmodSync(dest, parseInt('0777', 8));
-      res.sendStatus(200);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.showAudioFiles = function(req, res) {
-  var fileObject = {};
-  VoiceMusicOnHold
-    .findById(req.params.id)
-    .then(function(voiceMusiconhold) {
-      if (!voiceMusiconhold) {
-        return res.sendStatus(404);
-      }
-      fileObject.path = voiceMusiconhold.directory;
-      fs.readdir(voiceMusiconhold.directory, function(err, files) {
-        if (!err) {
-          fileObject.files = files;
-          return res.send(fileObject);
-        } else {
-          throw err;
-        }
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.deleteAudioFiles = function(req, res) {
-  VoiceMusicOnHold
-    .findById(req.params.id)
-    .then(function(voiceMusiconhold) {
-      if (!voiceMusiconhold) {
-        return res.sendStatus(404);
-      }
-      var deletePath = voiceMusiconhold.directory + '/' + req.query.filename;
-      fs.unlink(deletePath, function(err) {
-        if (err) {
-          return handleError(res, err);
-        } else {
-          return res.sendStatus(204);
-        }
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Validate the existence of a route
-exports.mohValidation = function(req, res) {
-  console.log(req.body);
-  VoiceMusicOnHold
-    .findAll({
-      where: {
-        name: req.body.name,
-      }
-    })
-    .then(function(voice_mohs) {
-      if (!voice_mohs) {
-        return res.sendStatus(404);
-      }
-      return res.send(voice_mohs);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new voiceMusiconhold in the DB.
-exports.create = function(req, res) {
-  return sequelize.transaction().then(function(t) {
-    req.body.directory = path.join(config.root, 'server/files/moh', req.body.name);
-    return VoiceMusicOnHold
-      .create(req.body, {
-        transaction: t
-      })
-      .then(function(voiceMusiconhold) {
-        fs.mkdir(voiceMusiconhold.directory, parseInt('0777', 8), function(err) {
-          if (err) {
-            console.log('file error');
-            t.rollback();
-            return res.status(500).send({
-              message: 'MESSAGE_FILE_CREATION_ERROR'
-            });
-          }
-          t.commit();
-          console.log('file created');
-          return res.status(201).send(voiceMusiconhold);
-        });
-      })
-      .catch(function(err) {
-        t.rollback();
-      });
-  })
-};
-
-// Updates an existing voiceMusiconhold in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return VoiceMusicOnHold
-    .findById(req.params.id)
-    .then(function(voiceMusiconhold) {
-      if (!voiceMusiconhold) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(voiceMusiconhold, req.body);
-
-      return updated
-        .save();
-    })
-    .then(function(voiceMusiconhold) {
-      return res.status(200).send(voiceMusiconhold);
-    })
-    .catch(function(err) {
-      console.error('err', err);
-      return handleError(res, err);
-    });
-};
-
-// Deletes a voiceMusiconhold from the DB.
-exports.destroy = function(req, res) {
-  var _voicemoh;
-  return sequelize.transaction(function(t) {
-      return VoiceMusicOnHold
-        .findById(req.params.id)
-        .then(function(voiceMusiconhold) {
-          if (!voiceMusiconhold) {
-            return res.sendStatus(404);
-          }
-          _voicemoh = voiceMusiconhold;
-          return voiceMusiconhold.destroy({
-            transaction: t
-          });
-        })
-        .then(function() {
-          remove(_voicemoh.directory, function(err) {
-            if (err) {
-              console.log(err);
-            }
-            return res.sendStatus(204);
-          });
-        })
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes multiple voice_musiconholds from the DB.
-exports.bulkDestroy = function(req, res) {
-  var _voicemohs;
-  return sequelize.transaction(function(t) {
-      return VoiceMusicOnHold
-        .findAll({
-          where: {
-            id: req.query.ids
-          }
-        })
-        .then(function(voice_musiconholds) {
-          if (!voice_musiconholds) {
-            return res.sendStatus(404);
-          }
-          _voicemohs = voice_musiconholds;
-          var bulkDest = [];
-          voice_musiconholds.forEach(function(element) {
-            bulkDest.push(element.destroy({
-              transaction: t
-            }));
-          });
-          return bulkDest;
-        })
-        .all()
-        .then(function() {
-          _voicemohs.forEach(function(element) {
-            remove(element.directory, function(err) {
-              if (err) {
-                console.log(err);
-                throw err
-              }
-            });
-          })
-        });
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// stream a moh file
-exports.stream = function(req, res) {
-  var filepath = decodeURI(req.query.path);
-  base64.encode(filepath, function(err, base64String) {
-    if (err) {
-      return handleError(res, err);
-    } else {
-      return res.status(200).send(base64String);
-    }
-  });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x8688=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x74\x68","\x75\x74\x69\x6C","\x66\x73\x2D\x65\x78\x74\x72\x61","\x72\x65\x6D\x6F\x76\x65","\x66\x69\x6C\x65\x2D\x62\x61\x73\x65\x36\x34","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x53\x6F\x75\x6E\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x64\x64\x46\x69\x6C\x65\x73","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x6A\x6F\x69\x6E","\x64\x69\x72\x65\x63\x74\x6F\x72\x79","\x64\x69\x73\x70\x6C\x61\x79\x5F\x6E\x61\x6D\x65","\x2E\x77\x61\x76","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x63\x6F\x70\x79\x53\x79\x6E\x63","\x66\x6F\x72\x45\x61\x63\x68","\x30\x37\x37\x37","\x63\x68\x6D\x6F\x64\x53\x79\x6E\x63","\x73\x6F\x75\x6E\x64\x73","\x62\x6F\x64\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77\x41\x75\x64\x69\x6F\x46\x69\x6C\x65\x73","\x66\x69\x6C\x65\x73","\x72\x65\x61\x64\x64\x69\x72","\x64\x65\x6C\x65\x74\x65\x41\x75\x64\x69\x6F\x46\x69\x6C\x65\x73","\x2F","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x75\x6E\x6C\x69\x6E\x6B","\x6D\x6F\x68\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x6C\x6F\x67","\x6E\x61\x6D\x65","\x63\x72\x65\x61\x74\x65","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x6D\x6F\x68","\x72\x6F\x6C\x6C\x62\x61\x63\x6B","\x66\x69\x6C\x65\x20\x65\x72\x72\x6F\x72","\x4D\x45\x53\x53\x41\x47\x45\x5F\x46\x49\x4C\x45\x5F\x43\x52\x45\x41\x54\x49\x4F\x4E\x5F\x45\x52\x52\x4F\x52","\x63\x6F\x6D\x6D\x69\x74","\x66\x69\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64","\x6D\x6B\x64\x69\x72","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x65\x72\x72","\x65\x72\x72\x6F\x72","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x61\x6C\x6C","\x70\x75\x73\x68","\x69\x64\x73","\x73\x74\x72\x65\x61\x6D","\x65\x6E\x63\x6F\x64\x65"];_0x8688[0];var fs=require(_0x8688[1]);var _=require(_0x8688[2]);var path=require(_0x8688[3]);var util=require(_0x8688[4]);var fse=require(_0x8688[5]);var remove=require(_0x8688[6]);var base64=require(_0x8688[7]);var config=require(_0x8688[8]);var Util=require(_0x8688[9]);var Sound=require(_0x8688[11])[_0x8688[10]];var sequelize=require(_0x8688[11])[_0x8688[12]];var VoiceMusicOnHold=require(_0x8688[11])[_0x8688[13]];exports[_0x8688[14]]=function(_0x5a26xd,_0x5a26xe){return VoiceMusicOnHold[_0x8688[21]](Util[_0x8688[20]](_0x5a26xd[_0x8688[19]]))[_0x8688[18]](function(_0x5a26x10){_0x5a26xe[_0x8688[17]](200)[_0x8688[16]](_0x5a26x10)})[_0x8688[15]](function(_0x5a26xf){return handleError(_0x5a26xe,_0x5a26xf)})};exports[_0x8688[22]]=function(_0x5a26xd,_0x5a26xe){return VoiceMusicOnHold[_0x8688[26]](_0x5a26xd[_0x8688[25]][_0x8688[24]])[_0x8688[18]](function(_0x5a26x11){if(!_0x5a26x11){return _0x5a26xe[_0x8688[23]](404)};return _0x5a26xe[_0x8688[16]](_0x5a26x11)})[_0x8688[15]](function(_0x5a26xf){return handleError(_0x5a26xe,_0x5a26xf)})};exports[_0x8688[27]]=function(_0x5a26xd,_0x5a26xe){var _0x5a26x12;return VoiceMusicOnHold[_0x8688[26]](_0x5a26xd[_0x8688[25]][_0x8688[24]])[_0x8688[18]](function(_0x5a26x11){if(!_0x5a26x11){return _0x5a26xe[_0x8688[23]](404)};_0x5a26x12=_0x5a26x11;return Sound[_0x8688[41]]({where:{id:_0x5a26xd[_0x8688[40]][_0x8688[39]]}})})[_0x8688[18]](function(_0x5a26x13){var _0x5a26x14=path[_0x8688[30]](config[_0x8688[28]],_0x8688[29]);var _0x5a26x15;_0x5a26x13[_0x8688[36]](function(_0x5a26x16){_0x5a26x15=path[_0x8688[30]](_0x5a26x12[_0x8688[31]],_0x5a26x16[_0x8688[32]]+_0x8688[33]);fse[_0x8688[35]](path[_0x8688[30]](_0x5a26x14,_0x5a26x16[_0x8688[34]]+_0x8688[33]),_0x5a26x15)});fs[_0x8688[38]](_0x5a26x15,parseInt(_0x8688[37],8));_0x5a26xe[_0x8688[23]](200)})[_0x8688[15]](function(_0x5a26xf){return handleError(_0x5a26xe,_0x5a26xf)})};exports[_0x8688[42]]=function(_0x5a26xd,_0x5a26xe){var _0x5a26x17={};VoiceMusicOnHold[_0x8688[26]](_0x5a26xd[_0x8688[25]][_0x8688[24]])[_0x8688[18]](function(_0x5a26x11){if(!_0x5a26x11){return _0x5a26xe[_0x8688[23]](404)};_0x5a26x17[_0x8688[3]]=_0x5a26x11[_0x8688[31]];fs[_0x8688[44]](_0x5a26x11[_0x8688[31]],function(_0x5a26xf,_0x5a26x18){if(!_0x5a26xf){_0x5a26x17[_0x8688[43]]=_0x5a26x18;return _0x5a26xe[_0x8688[16]](_0x5a26x17)}else {throw _0x5a26xf}})})[_0x8688[15]](function(_0x5a26xf){return handleError(_0x5a26xe,_0x5a26xf)})};exports[_0x8688[45]]=function(_0x5a26xd,_0x5a26xe){VoiceMusicOnHold[_0x8688[26]](_0x5a26xd[_0x8688[25]][_0x8688[24]])[_0x8688[18]](function(_0x5a26x11){if(!_0x5a26x11){return _0x5a26xe[_0x8688[23]](404)};var _0x5a26x19=_0x5a26x11[_0x8688[31]]+_0x8688[46]+_0x5a26xd[_0x8688[19]][_0x8688[47]];fs[_0x8688[48]](_0x5a26x19,function(_0x5a26xf){if(_0x5a26xf){return handleError(_0x5a26xe,_0x5a26xf)}else {return _0x5a26xe[_0x8688[23]](204)}})})[_0x8688[15]](function(_0x5a26xf){return handleError(_0x5a26xe,_0x5a26xf)})};exports[_0x8688[49]]=function(_0x5a26xd,_0x5a26xe){console[_0x8688[50]](_0x5a26xd[_0x8688[40]]);VoiceMusicOnHold[_0x8688[41]]({where:{name:_0x5a26xd[_0x8688[40]][_0x8688[51]]}})[_0x8688[18]](function(_0x5a26x1a){if(!_0x5a26x1a){return _0x5a26xe[_0x8688[23]](404)};return _0x5a26xe[_0x8688[16]](_0x5a26x1a)})[_0x8688[15]](function(_0x5a26xf){return handleError(_0x5a26xe,_0x5a26xf)})};exports[_0x8688[52]]=function(_0x5a26xd,_0x5a26xe){return sequelize[_0x8688[60]]()[_0x8688[18]](function(_0x5a26x1b){_0x5a26xd[_0x8688[40]][_0x8688[31]]=path[_0x8688[30]](config[_0x8688[28]],_0x8688[53],_0x5a26xd[_0x8688[40]][_0x8688[51]]);return VoiceMusicOnHold[_0x8688[52]](_0x5a26xd[_0x8688[40]],{transaction:_0x5a26x1b})[_0x8688[18]](function(_0x5a26x11){fs[_0x8688[59]](_0x5a26x11[_0x8688[31]],parseInt(_0x8688[37],8),function(_0x5a26xf){if(_0x5a26xf){console[_0x8688[50]](_0x8688[55]);_0x5a26x1b[_0x8688[54]]();return _0x5a26xe[_0x8688[17]](500)[_0x8688[16]]({message:_0x8688[56]})};_0x5a26x1b[_0x8688[57]]();console[_0x8688[50]](_0x8688[58]);return _0x5a26xe[_0x8688[17]](201)[_0x8688[16]](_0x5a26x11)})})[_0x8688[15]](function(_0x5a26xf){_0x5a26x1b[_0x8688[54]]()})})};exports[_0x8688[61]]=function(_0x5a26xd,_0x5a26xe){if(_0x5a26xd[_0x8688[40]][_0x8688[24]]){delete _0x5a26xd[_0x8688[40]][_0x8688[24]]};return VoiceMusicOnHold[_0x8688[26]](_0x5a26xd[_0x8688[25]][_0x8688[24]])[_0x8688[18]](function(_0x5a26x11){if(!_0x5a26x11){return _0x5a26xe[_0x8688[23]](404)};var _0x5a26x1c=_[_0x8688[64]](_0x5a26x11,_0x5a26xd[_0x8688[40]]);return _0x5a26x1c[_0x8688[65]]()})[_0x8688[18]](function(_0x5a26x11){return _0x5a26xe[_0x8688[17]](200)[_0x8688[16]](_0x5a26x11)})[_0x8688[15]](function(_0x5a26xf){console[_0x8688[63]](_0x8688[62],_0x5a26xf);return handleError(_0x5a26xe,_0x5a26xf)})};exports[_0x8688[66]]=function(_0x5a26xd,_0x5a26xe){var _0x5a26x1d;return sequelize[_0x8688[60]](function(_0x5a26x1b){return VoiceMusicOnHold[_0x8688[26]](_0x5a26xd[_0x8688[25]][_0x8688[24]])[_0x8688[18]](function(_0x5a26x11){if(!_0x5a26x11){return _0x5a26xe[_0x8688[23]](404)};_0x5a26x1d=_0x5a26x11;return _0x5a26x11[_0x8688[66]]({transaction:_0x5a26x1b})})[_0x8688[18]](function(){remove(_0x5a26x1d[_0x8688[31]],function(_0x5a26xf){if(_0x5a26xf){console[_0x8688[50]](_0x5a26xf)};return _0x5a26xe[_0x8688[23]](204)})})})[_0x8688[15]](function(_0x5a26xf){return handleError(_0x5a26xe,_0x5a26xf)})};exports[_0x8688[67]]=function(_0x5a26xd,_0x5a26xe){var _0x5a26x1e;return sequelize[_0x8688[60]](function(_0x5a26x1b){return VoiceMusicOnHold[_0x8688[41]]({where:{id:_0x5a26xd[_0x8688[19]][_0x8688[70]]}})[_0x8688[18]](function(_0x5a26x20){if(!_0x5a26x20){return _0x5a26xe[_0x8688[23]](404)};_0x5a26x1e=_0x5a26x20;var _0x5a26x21=[];_0x5a26x20[_0x8688[36]](function(_0x5a26x1f){_0x5a26x21[_0x8688[69]](_0x5a26x1f[_0x8688[66]]({transaction:_0x5a26x1b}))});return _0x5a26x21})[_0x8688[68]]()[_0x8688[18]](function(){_0x5a26x1e[_0x8688[36]](function(_0x5a26x1f){remove(_0x5a26x1f[_0x8688[31]],function(_0x5a26xf){if(_0x5a26xf){console[_0x8688[50]](_0x5a26xf);throw _0x5a26xf}})})})})[_0x8688[18]](function(){return _0x5a26xe[_0x8688[23]](204)})[_0x8688[15]](function(_0x5a26xf){return handleError(_0x5a26xe,_0x5a26xf)})};exports[_0x8688[71]]=function(_0x5a26xd,_0x5a26xe){var _0x5a26x22=decodeURI(_0x5a26xd[_0x8688[19]][_0x8688[3]]);base64[_0x8688[72]](_0x5a26x22,function(_0x5a26xf,_0x5a26x23){if(_0x5a26xf){return handleError(_0x5a26xe,_0x5a26xf)}else {return _0x5a26xe[_0x8688[17]](200)[_0x8688[16]](_0x5a26x23)}})};function handleError(_0x5a26xe,_0x5a26xf){return _0x5a26xe[_0x8688[17]](500)[_0x8688[16]](_0x5a26xf)}
\ No newline at end of file
index efa073f..8003f11 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var VoiceMusicOnHold = require('../../models').VoiceMusicOnHold;
-
-exports.register = function(socket) {
-  VoiceMusicOnHold.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  VoiceMusicOnHold.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('voice_musiconhold:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('voice_musiconhold:remove', doc);
-}
+var _0x7ca4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0x7ca4[0];var VoiceMusicOnHold=require(_0x7ca4[2])[_0x7ca4[1]];exports[_0x7ca4[3]]=function(_0x9b7dx2){VoiceMusicOnHold[_0x7ca4[4]](function(_0x9b7dx3){onSave(_0x9b7dx2,_0x9b7dx3)});VoiceMusicOnHold[_0x7ca4[5]](function(_0x9b7dx3){onRemove(_0x9b7dx2,_0x9b7dx3)})};function onSave(_0x9b7dx2,_0x9b7dx3,_0x9b7dx5){_0x9b7dx2[_0x7ca4[7]](_0x7ca4[6],_0x9b7dx3)}function onRemove(_0x9b7dx2,_0x9b7dx3,_0x9b7dx5){_0x9b7dx2[_0x7ca4[7]](_0x7ca4[8],_0x9b7dx3)}
\ No newline at end of file
index e992daf..e310e0e 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/voice/musiconhold', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/voice/musiconhold')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0xdf4e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x67\x65\x74"];_0xdf4e[0];var should=require(_0xdf4e[1]);var app=require(_0xdf4e[2]);var request=require(_0xdf4e[3]);describe(_0xdf4e[4],function(){it(_0xdf4e[5],function(_0xd2e4x4){request(app)[_0xdf4e[13]](_0xdf4e[12])[_0xdf4e[11]](200)[_0xdf4e[11]](_0xdf4e[10],/json/)[_0xdf4e[9]](function(_0xd2e4x5,_0xd2e4x6){if(_0xd2e4x5){return _0xd2e4x4(_0xd2e4x5)};_0xd2e4x6[_0xdf4e[8]][_0xdf4e[1]][_0xdf4e[7]][_0xdf4e[6]](Array);_0xd2e4x4()})})})
\ No newline at end of file
index f864580..f2ec6ce 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./voice_queue.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:name', auth.isAuthenticated(), controller.show);
-router.get('/:name/agents', auth.isAuthenticated(), controller.showAgents);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/:name/agents', auth.isAuthenticated(), controller.addAgents);
-router.put('/:name', auth.isAuthenticated(), controller.update);
-router.delete('/:name/agents', auth.isAuthenticated(), controller.removeAgents);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:name', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x5877=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x6E\x61\x6D\x65","\x73\x68\x6F\x77","\x2F\x3A\x6E\x61\x6D\x65\x2F\x61\x67\x65\x6E\x74\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x64\x65\x6C\x65\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x5877[0];var express=require(_0x5877[1]);var controller=require(_0x5877[2]);var auth=require(_0x5877[3]);var router=express.Router();router[_0x5877[7]](_0x5877[4],auth[_0x5877[5]](),controller[_0x5877[6]]);router[_0x5877[7]](_0x5877[8],auth[_0x5877[5]](),controller[_0x5877[9]]);router[_0x5877[7]](_0x5877[10],auth[_0x5877[5]](),controller[_0x5877[11]]);router[_0x5877[13]](_0x5877[4],auth[_0x5877[5]](),controller[_0x5877[12]]);router[_0x5877[13]](_0x5877[10],auth[_0x5877[5]](),controller[_0x5877[14]]);router[_0x5877[16]](_0x5877[8],auth[_0x5877[5]](),controller[_0x5877[15]]);router[_0x5877[18]](_0x5877[10],auth[_0x5877[5]](),controller[_0x5877[17]]);router[_0x5877[18]](_0x5877[4],auth[_0x5877[5]](),controller[_0x5877[19]]);router[_0x5877[18]](_0x5877[8],auth[_0x5877[5]](),controller[_0x5877[20]]);module[_0x5877[21]]=router
\ No newline at end of file
index 4143afc..53b6b0b 100644 (file)
@@ -1,211 +1 @@
-'use strict';
-
-var _ = require('lodash');
-
-var util = require('util');
-var Util = require('../../config/util');
-
-var sequelize = require('../../models').sequelize;
-var User = require('../../models').User;
-var VoiceQueue = require('../../models').VoiceQueue;
-var UserHasVoiceQueue = require('../../models').UserHasVoiceQueue;
-var VoiceExtension = require('../../models').VoiceExtension;
-
-// Get list of voiceQueues
-exports.index = function(req, res) {
-  return VoiceQueue
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single voiceQueue
-exports.show = function(req, res) {
-  return VoiceQueue
-    .findById(req.params.name)
-    .then(function(voiceQueue) {
-      if (!voiceQueue) {
-        return res.sendStatus(404);
-      }
-      return res.send(voiceQueue);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single queue
-exports.showAgents = function(req, res) {
-  return VoiceQueue
-    .findById(req.params.name)
-    .then(function(queue) {
-      if (!queue) {
-        return res.sendStatus(404);
-      }
-      return queue
-        .getUsers({
-          where: {
-            role: 'agent'
-          },
-          attributes: ['id', 'name', 'fullname', 'email']
-        });
-    })
-    .then(function(agents) {
-      return res.status(200).send(agents);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new voiceQueue in the DB.
-exports.create = function(req, res) {
-  return VoiceQueue
-    .create(req.body)
-    .then(function(voiceQueue) {
-      return res.status(201).send(voiceQueue);
-    })
-    .catch(sequelize.UniqueConstraintError, function(err) {
-      var paths = [];
-
-      err.errors.forEach(function(error) {
-        switch (error.path) {
-          case 'PRIMARY':
-            paths.push('name');
-            break;
-          default:
-            paths.push(error.path);
-        }
-      });
-
-      paths.push(' must be unique');
-      err.message = paths.join();
-      err.translatedMessage = 'MESSAGE_EXIST_QUEUE';
-
-      return res.status(500).send(err);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing voiceQueue in the DB.
-exports.update = function(req, res) {
-  if (req.body.name) {
-    delete req.body.name;
-  }
-
-  return VoiceQueue
-    .findById(req.params.name)
-    .then(function(voiceQueue) {
-      if (!voiceQueue) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(voiceQueue, req.body);
-      return updated
-        .save();
-    })
-    .then(function(voiceQueue) {
-      return res.status(200).send(voiceQueue);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-
-// Add agents to voice queues
-exports.addAgents = function(req, res, next) {
-  return User
-    .findAll({
-      where: {
-        id: {
-          $in: req.body.agents
-        }
-      }
-    })
-    .then(function(users) {
-      var userHasVoiceQueues = _.map(users, function(user) {
-        return {
-          queue: req.params.name,
-          location: util.format('SIP/%s', user.name),
-          membername: user.name,
-          UserId: user.id,
-          penalty: req.body.penalty
-        };
-      });
-
-      return UserHasVoiceQueue
-        .bulkCreate(userHasVoiceQueues, {
-          individualHooks: true
-        });
-    })
-    .then(function() {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return next(err);
-    });
-};
-
-exports.removeAgents = function(req, res, next) {
-  return UserHasVoiceQueue
-    .destroy({
-      where: {
-        UserId: req.query.agents,
-        queue: req.params.name
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(202);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-// Deletes a voiceQueue from the DB.
-exports.destroy = function(req, res) {
-  return VoiceQueue
-    .destroy({
-      where: {
-        name: req.params.name
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes multiple voiceQueues from the DB.
-exports.bulkDestroy = function(req, res) {
-  return VoiceQueue
-    .destroy({
-      where: {
-        name: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xc3a6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6E\x61\x6D\x65","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74","\x69\x64","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x63\x72\x65\x61\x74\x65","\x70\x75\x73\x68","\x50\x52\x49\x4D\x41\x52\x59","\x70\x61\x74\x68","\x66\x6F\x72\x45\x61\x63\x68","\x65\x72\x72\x6F\x72\x73","\x20\x6D\x75\x73\x74\x20\x62\x65\x20\x75\x6E\x69\x71\x75\x65","\x6D\x65\x73\x73\x61\x67\x65","\x6A\x6F\x69\x6E","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x64\x4D\x65\x73\x73\x61\x67\x65","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x51\x55\x45\x55\x45","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6C\x6F\x67","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x53\x49\x50\x2F\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x70\x65\x6E\x61\x6C\x74\x79","\x6D\x61\x70","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x61\x67\x65\x6E\x74\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0xc3a6[0];var _=require(_0xc3a6[1]);var util=require(_0xc3a6[2]);var Util=require(_0xc3a6[3]);var sequelize=require(_0xc3a6[5])[_0xc3a6[4]];var User=require(_0xc3a6[5])[_0xc3a6[6]];var VoiceQueue=require(_0xc3a6[5])[_0xc3a6[7]];var UserHasVoiceQueue=require(_0xc3a6[5])[_0xc3a6[8]];var VoiceExtension=require(_0xc3a6[5])[_0xc3a6[9]];exports[_0xc3a6[10]]=function(_0x59a5x9,_0x59a5xa){return VoiceQueue[_0xc3a6[17]](Util[_0xc3a6[16]](_0x59a5x9[_0xc3a6[15]]))[_0xc3a6[14]](function(_0x59a5xc){_0x59a5xa[_0xc3a6[13]](200)[_0xc3a6[12]](_0x59a5xc)})[_0xc3a6[11]](function(_0x59a5xb){return handleError(_0x59a5xa,_0x59a5xb)})};exports[_0xc3a6[18]]=function(_0x59a5x9,_0x59a5xa){return VoiceQueue[_0xc3a6[22]](_0x59a5x9[_0xc3a6[21]][_0xc3a6[20]])[_0xc3a6[14]](function(_0x59a5xd){if(!_0x59a5xd){return _0x59a5xa[_0xc3a6[19]](404)};return _0x59a5xa[_0xc3a6[12]](_0x59a5xd)})[_0xc3a6[11]](function(_0x59a5xb){return handleError(_0x59a5xa,_0x59a5xb)})};exports[_0xc3a6[23]]=function(_0x59a5x9,_0x59a5xa){return VoiceQueue[_0xc3a6[22]](_0x59a5x9[_0xc3a6[21]][_0xc3a6[20]])[_0xc3a6[14]](function(_0x59a5xf){if(!_0x59a5xf){return _0x59a5xa[_0xc3a6[19]](404)};return _0x59a5xf[_0xc3a6[28]]({where:{role:_0xc3a6[24]},attributes:[_0xc3a6[25],_0xc3a6[20],_0xc3a6[26],_0xc3a6[27]]})})[_0xc3a6[14]](function(_0x59a5xe){return _0x59a5xa[_0xc3a6[13]](200)[_0xc3a6[12]](_0x59a5xe)})[_0xc3a6[11]](function(_0x59a5xb){return handleError(_0x59a5xa,_0x59a5xb)})};exports[_0xc3a6[29]]=function(_0x59a5x9,_0x59a5xa){return VoiceQueue[_0xc3a6[29]](_0x59a5x9[_0xc3a6[40]])[_0xc3a6[14]](function(_0x59a5xd){return _0x59a5xa[_0xc3a6[13]](201)[_0xc3a6[12]](_0x59a5xd)})[_0xc3a6[11]](sequelize.UniqueConstraintError,function(_0x59a5xb){var _0x59a5x10=[];_0x59a5xb[_0xc3a6[34]][_0xc3a6[33]](function(_0x59a5x11){switch(_0x59a5x11[_0xc3a6[32]]){case _0xc3a6[31]:_0x59a5x10[_0xc3a6[30]](_0xc3a6[20]);break;default:_0x59a5x10[_0xc3a6[30]](_0x59a5x11[_0xc3a6[32]])}});_0x59a5x10[_0xc3a6[30]](_0xc3a6[35]);_0x59a5xb[_0xc3a6[36]]=_0x59a5x10[_0xc3a6[37]]();_0x59a5xb[_0xc3a6[38]]=_0xc3a6[39];return _0x59a5xa[_0xc3a6[13]](500)[_0xc3a6[12]](_0x59a5xb)})[_0xc3a6[11]](function(_0x59a5xb){return handleError(_0x59a5xa,_0x59a5xb)})};exports[_0xc3a6[41]]=function(_0x59a5x9,_0x59a5xa){if(_0x59a5x9[_0xc3a6[40]][_0xc3a6[20]]){delete _0x59a5x9[_0xc3a6[40]][_0xc3a6[20]]};return VoiceQueue[_0xc3a6[22]](_0x59a5x9[_0xc3a6[21]][_0xc3a6[20]])[_0xc3a6[14]](function(_0x59a5xd){if(!_0x59a5xd){return _0x59a5xa[_0xc3a6[19]](404)};var _0x59a5x12=_[_0xc3a6[43]](_0x59a5xd,_0x59a5x9[_0xc3a6[40]]);return _0x59a5x12[_0xc3a6[44]]()})[_0xc3a6[14]](function(_0x59a5xd){return _0x59a5xa[_0xc3a6[13]](200)[_0xc3a6[12]](_0x59a5xd)})[_0xc3a6[11]](function(_0x59a5xb){console[_0xc3a6[42]](_0x59a5xb);return handleError(_0x59a5xa,_0x59a5xb)})};exports[_0xc3a6[45]]=function(_0x59a5x9,_0x59a5xa,_0x59a5x13){return User[_0xc3a6[52]]({where:{id:{$in:_0x59a5x9[_0xc3a6[40]][_0xc3a6[51]]}}})[_0xc3a6[14]](function(_0x59a5x14){var _0x59a5x15=_[_0xc3a6[49]](_0x59a5x14,function(_0x59a5x16){return {queue:_0x59a5x9[_0xc3a6[21]][_0xc3a6[20]],location:util[_0xc3a6[47]](_0xc3a6[46],_0x59a5x16[_0xc3a6[20]]),membername:_0x59a5x16[_0xc3a6[20]],UserId:_0x59a5x16[_0xc3a6[25]],penalty:_0x59a5x9[_0xc3a6[40]][_0xc3a6[48]]}});return UserHasVoiceQueue[_0xc3a6[50]](_0x59a5x15,{individualHooks:true})})[_0xc3a6[14]](function(){return _0x59a5xa[_0xc3a6[19]](200)})[_0xc3a6[11]](function(_0x59a5xb){console[_0xc3a6[42]](_0x59a5xb);return _0x59a5x13(_0x59a5xb)})};exports[_0xc3a6[53]]=function(_0x59a5x9,_0x59a5xa,_0x59a5x13){return UserHasVoiceQueue[_0xc3a6[54]]({where:{UserId:_0x59a5x9[_0xc3a6[15]][_0xc3a6[51]],queue:_0x59a5x9[_0xc3a6[21]][_0xc3a6[20]]},individualHooks:true})[_0xc3a6[14]](function(){return _0x59a5xa[_0xc3a6[19]](202)})[_0xc3a6[11]](function(_0x59a5xb){return _0x59a5x13(_0x59a5xb)})};exports[_0xc3a6[54]]=function(_0x59a5x9,_0x59a5xa){return VoiceQueue[_0xc3a6[54]]({where:{name:_0x59a5x9[_0xc3a6[21]][_0xc3a6[20]]},individualHooks:true})[_0xc3a6[14]](function(){return _0x59a5xa[_0xc3a6[19]](204)})[_0xc3a6[11]](function(_0x59a5xb){return handleError(_0x59a5xa,_0x59a5xb)})};exports[_0xc3a6[55]]=function(_0x59a5x9,_0x59a5xa){return VoiceQueue[_0xc3a6[54]]({where:{name:_0x59a5x9[_0xc3a6[15]][_0xc3a6[56]]},individualHooks:true})[_0xc3a6[14]](function(){return _0x59a5xa[_0xc3a6[19]](204)})[_0xc3a6[11]](function(_0x59a5xb){return handleError(_0x59a5xa,_0x59a5xb)})};function handleError(_0x59a5xa,_0x59a5xb){return _0x59a5xa[_0xc3a6[13]](500)[_0xc3a6[12]](_0x59a5xb)}
\ No newline at end of file
index 6cb2204..08983a0 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var VoiceQueue = require('../../models').VoiceQueue;
-
-exports.register = function(socket) {
-  VoiceQueue.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  VoiceQueue.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('voice_queue:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('voice_queue:remove', doc);
-}
+var _0xecce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x72\x65\x6D\x6F\x76\x65"];_0xecce[0];var VoiceQueue=require(_0xecce[2])[_0xecce[1]];exports[_0xecce[3]]=function(_0xae3dx2){VoiceQueue[_0xecce[4]](function(_0xae3dx3){onSave(_0xae3dx2,_0xae3dx3)});VoiceQueue[_0xecce[5]](function(_0xae3dx3){onRemove(_0xae3dx2,_0xae3dx3)})};function onSave(_0xae3dx2,_0xae3dx3,_0xae3dx5){_0xae3dx2[_0xecce[7]](_0xecce[6],_0xae3dx3)}function onRemove(_0xae3dx2,_0xae3dx3,_0xae3dx5){_0xae3dx2[_0xecce[7]](_0xecce[8],_0xae3dx3)}
\ No newline at end of file
index 61bbb0d..f313ace 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./voice_recording.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/stream', auth.isAuthenticated(), controller.getStream);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xe836=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x73\x74\x72\x65\x61\x6D","\x67\x65\x74\x53\x74\x72\x65\x61\x6D","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xe836[0];var express=require(_0xe836[1]);var auth=require(_0xe836[2]);var controller=require(_0xe836[3]);var router=express.Router();router[_0xe836[7]](_0xe836[4],auth[_0xe836[5]](),controller[_0xe836[6]]);router[_0xe836[7]](_0xe836[8],auth[_0xe836[5]](),controller[_0xe836[9]]);router[_0xe836[7]](_0xe836[10],auth[_0xe836[5]](),controller[_0xe836[11]]);router[_0xe836[13]](_0xe836[4],auth[_0xe836[5]](),controller[_0xe836[12]]);router[_0xe836[15]](_0xe836[8],auth[_0xe836[5]](),controller[_0xe836[14]]);router[_0xe836[16]](_0xe836[8],auth[_0xe836[5]](),controller[_0xe836[14]]);router[_0xe836[18]](_0xe836[4],auth[_0xe836[5]](),controller[_0xe836[17]]);router[_0xe836[18]](_0xe836[8],auth[_0xe836[5]](),controller[_0xe836[19]]);module[_0xe836[20]]=router
\ No newline at end of file
index 0c800bc..9e9c741 100644 (file)
@@ -1,172 +1 @@
-/**
- * Using Rails-like standard naming convention for endpoints.
- * GET     /api/voice/recordings              ->  index
- * POST    /api/voice/recordings              ->  create
- * GET     /api/voice/recordings/:id          ->  show
- * PUT     /api/voice/recordings/:id          ->  update
- * DELETE  /api/voice/recordings/:id          ->  destroy
- */
-
-'use strict';
-
-
-var _ = require('lodash');
-var util = require('util');
-
-var VoiceRecording = require('../../models').VoiceRecording;
-var Promise = require('bluebird');
-// var base64 = Promise.promisifyAll(require('file-base64'));
-var base64 = require('file-base64');
-var fs = require('fs');
-
-function handleError(res) {
-  return function(err) {
-    if (err.cause && err.cause.code === 'ENOENT') {
-      err = {
-        message: 'No file or directory',
-        translatedMessage: 'MESSAGE_NO_FILE_OR_DIRECTORY'
-      };
-    }
-    return res.status(500).send(err);
-  }
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(body) {
-  return function(entity) {
-    return entity
-      .updateAttributes(body);
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-function getQuery(query) {
-  var _query = {};
-  _query.where = {};
-
-  _.forEach(query, function(value, key) {
-    switch (key) {
-      case 'limit':
-      case 'offset':
-        _query[key] = Number(value);
-        break;
-      case 'order':
-        _query[key] = value;
-        break;
-      default:
-        _query.where[key] = {
-          $like: '%' + value + '%'
-        };
-    }
-  });
-
-  return _query;
-}
-
-// Gets a list of VoiceRecordings
-exports.index = function(req, res) {
-  var _query = getQuery(req.query);
-  return VoiceRecording
-    .findAndCountAll(_query)
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single VoiceRecording from the DB
-exports.show = function(req, res) {
-  return VoiceRecording.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Gets a single VoiceRecording from the DB
-exports.getStream = function(req, res) {
-  return VoiceRecording
-    .findById(req.params.id)
-    .then(function(recording) {
-      var readFile = Promise.promisify(fs.readFile);
-      return readFile(recording.value);
-    })
-    .then(function(result) {
-      var base64String = new Buffer(result, 'binary').toString('base64');
-      return base64String;
-    })
-    .then(function(base64String) {
-      return res.status(200).send({
-        downloadString: base64String
-      });
-    })
-    .catch(handleError(res));
-}
-
-
-// Creates a new VoiceRecording in the DB
-exports.create = function(req, res) {
-  return VoiceRecording.create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-}
-
-// Updates an existing VoiceRecording in the DB
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return VoiceRecording.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-// Deletes a VoiceRecording from the DB
-exports.destroy = function(req, res) {
-  return VoiceRecording.findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-}
-
-// Deletes a agent from the DB.
-exports.bulkDestroy = function(req, res) {
-  return VoiceRecording
-    .destroy({
-      where: {
-        uniqueid: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(handleError(res));
-};
+var _0xd7ea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x62\x6C\x75\x65\x62\x69\x72\x64","\x66\x69\x6C\x65\x2D\x62\x61\x73\x65\x36\x34","\x66\x73","\x63\x61\x75\x73\x65","\x63\x6F\x64\x65","\x45\x4E\x4F\x45\x4E\x54","\x4E\x6F\x20\x66\x69\x6C\x65\x20\x6F\x72\x20\x64\x69\x72\x65\x63\x74\x6F\x72\x79","\x4D\x45\x53\x53\x41\x47\x45\x5F\x4E\x4F\x5F\x46\x49\x4C\x45\x5F\x4F\x52\x5F\x44\x49\x52\x45\x43\x54\x4F\x52\x59","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x65\x6E\x64","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x74\x68\x65\x6E","\x64\x65\x73\x74\x72\x6F\x79","\x77\x68\x65\x72\x65","\x6C\x69\x6D\x69\x74","\x6F\x66\x66\x73\x65\x74","\x6F\x72\x64\x65\x72","\x25","\x66\x6F\x72\x45\x61\x63\x68","\x69\x6E\x64\x65\x78","\x71\x75\x65\x72\x79","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x53\x74\x72\x65\x61\x6D","\x62\x61\x73\x65\x36\x34","\x62\x69\x6E\x61\x72\x79","\x72\x65\x61\x64\x46\x69\x6C\x65","\x70\x72\x6F\x6D\x69\x73\x69\x66\x79","\x76\x61\x6C\x75\x65","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64\x73"];_0xd7ea[0];var _=require(_0xd7ea[1]);var util=require(_0xd7ea[2]);var VoiceRecording=require(_0xd7ea[4])[_0xd7ea[3]];var Promise=require(_0xd7ea[5]);var base64=require(_0xd7ea[6]);var fs=require(_0xd7ea[7]);function handleError(_0x21f8x8){return function(_0x21f8x9){if(_0x21f8x9[_0xd7ea[8]]&&_0x21f8x9[_0xd7ea[8]][_0xd7ea[9]]===_0xd7ea[10]){_0x21f8x9={message:_0xd7ea[11],translatedMessage:_0xd7ea[12]}};return _0x21f8x8[_0xd7ea[14]](500)[_0xd7ea[13]](_0x21f8x9)}}function responseWithResult(_0x21f8x8,_0x21f8xb){_0x21f8xb=_0x21f8xb||200;return function(_0x21f8xc){if(_0x21f8xc){_0x21f8x8[_0xd7ea[14]](_0x21f8xb)[_0xd7ea[15]](_0x21f8xc)}}}function handleEntityNotFound(_0x21f8x8){return function(_0x21f8xc){if(!_0x21f8xc){_0x21f8x8[_0xd7ea[14]](404)[_0xd7ea[16]]();return null};return _0x21f8xc}}function saveUpdates(_0x21f8xf){return function(_0x21f8xc){return _0x21f8xc[_0xd7ea[17]](_0x21f8xf)}}function removeEntity(_0x21f8x8){return function(_0x21f8xc){if(_0x21f8xc){return _0x21f8xc[_0xd7ea[19]]()[_0xd7ea[18]](function(){_0x21f8x8[_0xd7ea[14]](204)[_0xd7ea[16]]()})}}}function getQuery(_0x21f8x12){var _0x21f8x13={};_0x21f8x13[_0xd7ea[20]]={};_[_0xd7ea[25]](_0x21f8x12,function(_0x21f8x14,_0x21f8x15){switch(_0x21f8x15){case _0xd7ea[21]:;case _0xd7ea[22]:_0x21f8x13[_0x21f8x15]=Number(_0x21f8x14);break;case _0xd7ea[23]:_0x21f8x13[_0x21f8x15]=_0x21f8x14;break;default:_0x21f8x13[_0xd7ea[20]][_0x21f8x15]={$like:_0xd7ea[24]+_0x21f8x14+_0xd7ea[24]}}});return _0x21f8x13}exports[_0xd7ea[26]]=function(_0x21f8x16,_0x21f8x8){var _0x21f8x13=getQuery(_0x21f8x16[_0xd7ea[27]]);return VoiceRecording[_0xd7ea[29]](_0x21f8x13)[_0xd7ea[18]](responseWithResult(_0x21f8x8))[_0xd7ea[28]](handleError(_0x21f8x8))};exports[_0xd7ea[30]]=function(_0x21f8x16,_0x21f8x8){return VoiceRecording[_0xd7ea[33]](_0x21f8x16[_0xd7ea[32]][_0xd7ea[31]])[_0xd7ea[18]](handleEntityNotFound(_0x21f8x8))[_0xd7ea[18]](responseWithResult(_0x21f8x8))[_0xd7ea[28]](handleError(_0x21f8x8))};exports[_0xd7ea[34]]=function(_0x21f8x16,_0x21f8x8){return VoiceRecording[_0xd7ea[33]](_0x21f8x16[_0xd7ea[32]][_0xd7ea[31]])[_0xd7ea[18]](function(_0x21f8x19){var _0x21f8x1a=Promise[_0xd7ea[38]](fs[_0xd7ea[37]]);return _0x21f8x1a(_0x21f8x19[_0xd7ea[39]])})[_0xd7ea[18]](function(_0x21f8x18){var _0x21f8x17= new Buffer(_0x21f8x18,_0xd7ea[36]).toString(_0xd7ea[35]);return _0x21f8x17})[_0xd7ea[18]](function(_0x21f8x17){return _0x21f8x8[_0xd7ea[14]](200)[_0xd7ea[13]]({downloadString:_0x21f8x17})})[_0xd7ea[28]](handleError(_0x21f8x8))};exports[_0xd7ea[40]]=function(_0x21f8x16,_0x21f8x8){return VoiceRecording[_0xd7ea[40]](_0x21f8x16[_0xd7ea[41]])[_0xd7ea[18]](responseWithResult(_0x21f8x8,201))[_0xd7ea[28]](handleError(_0x21f8x8))};exports[_0xd7ea[42]]=function(_0x21f8x16,_0x21f8x8){if(_0x21f8x16[_0xd7ea[41]][_0xd7ea[31]]){delete _0x21f8x16[_0xd7ea[41]][_0xd7ea[31]]};return VoiceRecording[_0xd7ea[33]](_0x21f8x16[_0xd7ea[32]][_0xd7ea[31]])[_0xd7ea[18]](handleEntityNotFound(_0x21f8x8))[_0xd7ea[18]](saveUpdates(_0x21f8x16[_0xd7ea[41]]))[_0xd7ea[18]](responseWithResult(_0x21f8x8))[_0xd7ea[28]](handleError(_0x21f8x8))};exports[_0xd7ea[19]]=function(_0x21f8x16,_0x21f8x8){return VoiceRecording[_0xd7ea[33]](_0x21f8x16[_0xd7ea[32]][_0xd7ea[31]])[_0xd7ea[18]](handleEntityNotFound(_0x21f8x8))[_0xd7ea[18]](removeEntity(_0x21f8x8))[_0xd7ea[28]](handleError(_0x21f8x8))};exports[_0xd7ea[43]]=function(_0x21f8x16,_0x21f8x8){return VoiceRecording[_0xd7ea[19]]({where:{uniqueid:_0x21f8x16[_0xd7ea[27]][_0xd7ea[45]]},individualHooks:true})[_0xd7ea[18]](function(){return _0x21f8x8[_0xd7ea[44]](204)})[_0xd7ea[28]](handleError(_0x21f8x8))}
\ No newline at end of file
index a0f969a..5b5d754 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var VoiceRecording = require('../../models').VoiceRecording;
-
-exports.register = function(socket) {
-  VoiceRecording.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  VoiceRecording.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-};
-
-function onSave(socket, doc, cb) {
-  socket.emit('voice_recording:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('voice_recording:remove', doc);
-}
+var _0x3496=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3496[0];var VoiceRecording=require(_0x3496[2])[_0x3496[1]];exports[_0x3496[3]]=function(_0x9f3cx2){VoiceRecording[_0x3496[4]](function(_0x9f3cx3){onSave(_0x9f3cx2,_0x9f3cx3)});VoiceRecording[_0x3496[5]](function(_0x9f3cx3){onRemove(_0x9f3cx2,_0x9f3cx3)})};function onSave(_0x9f3cx2,_0x9f3cx3,_0x9f3cx5){_0x9f3cx2[_0x3496[7]](_0x3496[6],_0x9f3cx3)}function onRemove(_0x9f3cx2,_0x9f3cx3,_0x9f3cx5){_0x9f3cx2[_0x3496[7]](_0x3496[8],_0x9f3cx3)}
\ No newline at end of file
index 96f6298..c886a9c 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./voice_voicemail.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:uniqueid', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/validate', auth.isAuthenticated(), controller.mailboxValidation);
-router.put('/:uniqueid', auth.isAuthenticated(), controller.update);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:uniqueid', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0xc0a8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65","\x6D\x61\x69\x6C\x62\x6F\x78\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xc0a8[0];var express=require(_0xc0a8[1]);var controller=require(_0xc0a8[2]);var auth=require(_0xc0a8[3]);var router=express.Router();router[_0xc0a8[7]](_0xc0a8[4],auth[_0xc0a8[5]](),controller[_0xc0a8[6]]);router[_0xc0a8[7]](_0xc0a8[8],auth[_0xc0a8[5]](),controller[_0xc0a8[9]]);router[_0xc0a8[11]](_0xc0a8[4],auth[_0xc0a8[5]](),controller[_0xc0a8[10]]);router[_0xc0a8[11]](_0xc0a8[12],auth[_0xc0a8[5]](),controller[_0xc0a8[13]]);router[_0xc0a8[15]](_0xc0a8[8],auth[_0xc0a8[5]](),controller[_0xc0a8[14]]);router[_0xc0a8[17]](_0xc0a8[16],auth[_0xc0a8[5]](),controller[_0xc0a8[14]]);router[_0xc0a8[19]](_0xc0a8[4],auth[_0xc0a8[5]](),controller[_0xc0a8[18]]);router[_0xc0a8[19]](_0xc0a8[8],auth[_0xc0a8[5]](),controller[_0xc0a8[20]]);module[_0xc0a8[21]]=router
\ No newline at end of file
index 69a1139..336404a 100644 (file)
@@ -1,190 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var stream = require('stream');
-var Util = require('../../config/util');
-
-var VoiceVoicemail = require('../../models').VoiceVoicemail;
-var VoiceVoicemailMessages = require('../../models').VoiceVoicemailMessages;
-
-// Get list of voice_voicemails
-exports.index = function(req, res) {
-  return VoiceVoicemail
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single voice_voicemail
-exports.show = function(req, res) {
-  VoiceVoicemail
-    .find({
-      where: {
-        uniqueid: req.params.uniqueid
-      }
-    })
-    .then(function(voice_voicemail) {
-      if (!voice_voicemail) {
-        return res.sendStatus(404);
-      }
-      return res.send(voice_voicemail);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// validate mailbox uniqueness
-exports.mailboxValidation = function(req, res) {
-  console.log(req.body);
-  VoiceVoicemail
-    .findAll({
-      where: {
-        mailbox: req.body.mailbox,
-        context: req.body.context
-      }
-    })
-    .then(function(voicemails) {
-      if (!voicemails) {
-        return res.sendStatus(404);
-      }
-      return res.send(voicemails);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-// Creates a new voice_voicemail in the DB.
-exports.create = function(req, res) {
-  VoiceVoicemail
-    .findAll({
-      where: {
-        mailbox: req.body.mailbox,
-        context: req.body.context
-      }
-    })
-    .then(function(voicemails) {
-      if (!voicemails) {
-        return res.sendStatus(404);
-      }
-      if (voicemails.length > 0) {
-        return res.status(500).send({
-          message: 'MESSAGE_EXIST_MAILBOX'
-        })
-      }
-      VoiceVoicemail
-        .create(req.body)
-        .then(function(voice_voicemail) {
-          return res.status(201).send(voice_voicemail);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-};
-
-// Updates an existing voice_voicemail in the DB.
-exports.update = function(req, res) {
-  VoiceVoicemail
-    .findAll({
-      where: {
-        mailbox: req.body.mailbox,
-        context: req.body.context,
-        uniqueid: {
-          $ne: req.body.uniqueid
-        }
-      }
-    })
-    .then(function(voicemails) {
-      if (!voicemails) {
-        return res.sendStatus(404);
-      }
-      if (voicemails.length > 0) {
-        return res.status(500).send({
-          message: 'MESSAGE_EXIST_MAILBOX'
-        })
-      }
-      if (req.body.uniqueid) {
-        delete req.body.uniqueid;
-      }
-      VoiceVoicemail
-        .find({
-          where: {
-            uniqueid: req.params.uniqueid
-          }
-        })
-        .then(function(voice_voicemail) {
-          if (!voice_voicemail) {
-            return res.sendStatus(404);
-          }
-          var updated = _.merge(voice_voicemail, req.body);
-          updated.save()
-            .then(function() {
-              return res.status(200).send(voice_voicemail);
-            })
-            .catch(function(err) {
-              return handleError(res, err);
-            });
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-
-};
-
-// Deletes a voice_voicemail from the DB.
-exports.destroy = function(req, res) {
-  VoiceVoicemail
-    .find({
-      where: {
-        uniqueid: req.params.uniqueid
-      }
-    })
-    .then(function(voice_voicemail) {
-      if (!voice_voicemail) {
-        return res.sendStatus(404);
-      }
-      voice_voicemail.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a voice_voicemail from the DB.
-exports.bulkDestroy = function(req, res) {
-  VoiceVoicemail
-    .destroy({
-      where: {
-        uniqueid: req.query.uniqueid
-      },
-      individualHooks: true
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xdaeb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x73\x74\x72\x65\x61\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x6D\x61\x69\x6C\x62\x6F\x78\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6C\x6F\x67","\x6D\x61\x69\x6C\x62\x6F\x78","\x63\x6F\x6E\x74\x65\x78\x74","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x72\x65\x61\x74\x65","\x6C\x65\x6E\x67\x74\x68","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x4D\x41\x49\x4C\x42\x4F\x58","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79"];_0xdaeb[0];var _=require(_0xdaeb[1]);var stream=require(_0xdaeb[2]);var Util=require(_0xdaeb[3]);var VoiceVoicemail=require(_0xdaeb[5])[_0xdaeb[4]];var VoiceVoicemailMessages=require(_0xdaeb[5])[_0xdaeb[6]];exports[_0xdaeb[7]]=function(_0x793dx6,_0x793dx7){return VoiceVoicemail[_0xdaeb[14]](Util[_0xdaeb[13]](_0x793dx6[_0xdaeb[12]]))[_0xdaeb[11]](function(_0x793dx9){_0x793dx7[_0xdaeb[10]](200)[_0xdaeb[9]](_0x793dx9)})[_0xdaeb[8]](function(_0x793dx8){return handleError(_0x793dx7,_0x793dx8)})};exports[_0xdaeb[15]]=function(_0x793dx6,_0x793dx7){VoiceVoicemail[_0xdaeb[19]]({where:{uniqueid:_0x793dx6[_0xdaeb[18]][_0xdaeb[17]]}})[_0xdaeb[11]](function(_0x793dxa){if(!_0x793dxa){return _0x793dx7[_0xdaeb[16]](404)};return _0x793dx7[_0xdaeb[9]](_0x793dxa)})[_0xdaeb[8]](function(_0x793dx8){return handleError(_0x793dx7,_0x793dx8)})};exports[_0xdaeb[20]]=function(_0x793dx6,_0x793dx7){console[_0xdaeb[22]](_0x793dx6[_0xdaeb[21]]);VoiceVoicemail[_0xdaeb[25]]({where:{mailbox:_0x793dx6[_0xdaeb[21]][_0xdaeb[23]],context:_0x793dx6[_0xdaeb[21]][_0xdaeb[24]]}})[_0xdaeb[11]](function(_0x793dxb){if(!_0x793dxb){return _0x793dx7[_0xdaeb[16]](404)};return _0x793dx7[_0xdaeb[9]](_0x793dxb)})[_0xdaeb[8]](function(_0x793dx8){return handleError(_0x793dx7,_0x793dx8)})};exports[_0xdaeb[26]]=function(_0x793dx6,_0x793dx7){VoiceVoicemail[_0xdaeb[25]]({where:{mailbox:_0x793dx6[_0xdaeb[21]][_0xdaeb[23]],context:_0x793dx6[_0xdaeb[21]][_0xdaeb[24]]}})[_0xdaeb[11]](function(_0x793dxb){if(!_0x793dxb){return _0x793dx7[_0xdaeb[16]](404)};if(_0x793dxb[_0xdaeb[27]]>0){return _0x793dx7[_0xdaeb[10]](500)[_0xdaeb[9]]({message:_0xdaeb[28]})};VoiceVoicemail[_0xdaeb[26]](_0x793dx6[_0xdaeb[21]])[_0xdaeb[11]](function(_0x793dxa){return _0x793dx7[_0xdaeb[10]](201)[_0xdaeb[9]](_0x793dxa)})[_0xdaeb[8]](function(_0x793dx8){return handleError(_0x793dx7,_0x793dx8)})[_0xdaeb[8]](function(_0x793dx8){return handleError(_0x793dx7,_0x793dx8)})})};exports[_0xdaeb[29]]=function(_0x793dx6,_0x793dx7){VoiceVoicemail[_0xdaeb[25]]({where:{mailbox:_0x793dx6[_0xdaeb[21]][_0xdaeb[23]],context:_0x793dx6[_0xdaeb[21]][_0xdaeb[24]],uniqueid:{$ne:_0x793dx6[_0xdaeb[21]][_0xdaeb[17]]}}})[_0xdaeb[11]](function(_0x793dxb){if(!_0x793dxb){return _0x793dx7[_0xdaeb[16]](404)};if(_0x793dxb[_0xdaeb[27]]>0){return _0x793dx7[_0xdaeb[10]](500)[_0xdaeb[9]]({message:_0xdaeb[28]})};if(_0x793dx6[_0xdaeb[21]][_0xdaeb[17]]){delete _0x793dx6[_0xdaeb[21]][_0xdaeb[17]]};VoiceVoicemail[_0xdaeb[19]]({where:{uniqueid:_0x793dx6[_0xdaeb[18]][_0xdaeb[17]]}})[_0xdaeb[11]](function(_0x793dxa){if(!_0x793dxa){return _0x793dx7[_0xdaeb[16]](404)};var _0x793dxc=_[_0xdaeb[30]](_0x793dxa,_0x793dx6[_0xdaeb[21]]);_0x793dxc[_0xdaeb[31]]()[_0xdaeb[11]](function(){return _0x793dx7[_0xdaeb[10]](200)[_0xdaeb[9]](_0x793dxa)})[_0xdaeb[8]](function(_0x793dx8){return handleError(_0x793dx7,_0x793dx8)})})[_0xdaeb[8]](function(_0x793dx8){return handleError(_0x793dx7,_0x793dx8)})})[_0xdaeb[8]](function(_0x793dx8){return handleError(_0x793dx7,_0x793dx8)})};exports[_0xdaeb[32]]=function(_0x793dx6,_0x793dx7){VoiceVoicemail[_0xdaeb[19]]({where:{uniqueid:_0x793dx6[_0xdaeb[18]][_0xdaeb[17]]}})[_0xdaeb[11]](function(_0x793dxa){if(!_0x793dxa){return _0x793dx7[_0xdaeb[16]](404)};_0x793dxa[_0xdaeb[32]]()[_0xdaeb[11]](function(){return _0x793dx7[_0xdaeb[16]](204)})[_0xdaeb[8]](function(_0x793dx8){return handleError(_0x793dx7,_0x793dx8)})})[_0xdaeb[8]](function(_0x793dx8){return handleError(_0x793dx7,_0x793dx8)})};exports[_0xdaeb[33]]=function(_0x793dx6,_0x793dx7){VoiceVoicemail[_0xdaeb[32]]({where:{uniqueid:_0x793dx6[_0xdaeb[12]][_0xdaeb[17]]},individualHooks:true})[_0xdaeb[11]](function(){return _0x793dx7[_0xdaeb[16]](204)})[_0xdaeb[8]](function(_0x793dx8){return handleError(_0x793dx7,_0x793dx8)})};function handleError(_0x793dx7,_0x793dx8){return _0x793dx7[_0xdaeb[10]](500)[_0xdaeb[9]](_0x793dx8)}
\ No newline at end of file
index 41e7a38..dcd10e0 100644 (file)
@@ -1,39 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var VoiceVoicemail = require('../../models').VoiceVoicemail;
-var VoiceVoicemailMessages = require('../../models').VoiceVoicemailMessages;
-
-exports.register = function(socket) {
-  VoiceVoicemail.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  VoiceVoicemail.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-  VoiceVoicemailMessages.afterCreate(function(doc) {
-    onMessageSave(socket, doc);
-  });
-  VoiceVoicemailMessages.afterDestroy(function(doc) {
-    onMessageRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('voice_voicemail:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('voice_voicemail:remove', doc);
-}
-
-function onMessageSave(socket, doc, cb) {
-  socket.emit('voice_voicemail_messages:save', doc);
-}
-
-function onMessageRemove(socket, doc, cb) {
-  socket.emit('voice_voicemail_messages:remove', doc);
-}
+var _0x72a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x3A\x72\x65\x6D\x6F\x76\x65","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73\x3A\x73\x61\x76\x65","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73\x3A\x72\x65\x6D\x6F\x76\x65"];_0x72a1[0];var VoiceVoicemail=require(_0x72a1[2])[_0x72a1[1]];var VoiceVoicemailMessages=require(_0x72a1[2])[_0x72a1[3]];exports[_0x72a1[4]]=function(_0x61abx3){VoiceVoicemail[_0x72a1[5]](function(_0x61abx4){onSave(_0x61abx3,_0x61abx4)});VoiceVoicemail[_0x72a1[6]](function(_0x61abx4){onRemove(_0x61abx3,_0x61abx4)});VoiceVoicemailMessages[_0x72a1[5]](function(_0x61abx4){onMessageSave(_0x61abx3,_0x61abx4)});VoiceVoicemailMessages[_0x72a1[6]](function(_0x61abx4){onMessageRemove(_0x61abx3,_0x61abx4)})};function onSave(_0x61abx3,_0x61abx4,_0x61abx6){_0x61abx3[_0x72a1[8]](_0x72a1[7],_0x61abx4)}function onRemove(_0x61abx3,_0x61abx4,_0x61abx6){_0x61abx3[_0x72a1[8]](_0x72a1[9],_0x61abx4)}function onMessageSave(_0x61abx3,_0x61abx4,_0x61abx6){_0x61abx3[_0x72a1[8]](_0x72a1[10],_0x61abx4)}function onMessageRemove(_0x61abx3,_0x61abx4,_0x61abx6){_0x61abx3[_0x72a1[8]](_0x72a1[11],_0x61abx4)}
\ No newline at end of file
index 5785825..8dd96bc 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/voice/voicemails', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/voice/voicemails')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x466f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x67\x65\x74"];_0x466f[0];var should=require(_0x466f[1]);var app=require(_0x466f[2]);var request=require(_0x466f[3]);describe(_0x466f[4],function(){it(_0x466f[5],function(_0xb937x4){request(app)[_0x466f[13]](_0x466f[12])[_0x466f[11]](200)[_0x466f[11]](_0x466f[10],/json/)[_0x466f[9]](function(_0xb937x5,_0xb937x6){if(_0xb937x5){return _0xb937x4(_0xb937x5)};_0xb937x6[_0x466f[8]][_0x466f[1]][_0x466f[7]][_0x466f[6]](Array);_0xb937x4()})})})
\ No newline at end of file
index b80b40a..aae3e87 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./voice_voicemail_messages.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/download', auth.isAuthenticated(), controller.download);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x2757=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x2757[0];var express=require(_0x2757[1]);var controller=require(_0x2757[2]);var auth=require(_0x2757[3]);var router=express.Router();router[_0x2757[7]](_0x2757[4],auth[_0x2757[5]](),controller[_0x2757[6]]);router[_0x2757[7]](_0x2757[8],auth[_0x2757[5]](),controller[_0x2757[9]]);router[_0x2757[7]](_0x2757[10],auth[_0x2757[5]](),controller[_0x2757[11]]);router[_0x2757[13]](_0x2757[4],auth[_0x2757[5]](),controller[_0x2757[12]]);router[_0x2757[13]](_0x2757[8],auth[_0x2757[5]](),controller[_0x2757[14]]);module[_0x2757[15]]=router
\ No newline at end of file
index 8268a61..ce6797d 100644 (file)
@@ -1,106 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var stream = require('stream');
-var Util = require('../../config/util');
-
-var VoiceVoicemailMessages = require('../../models').VoiceVoicemailMessages;
-
-// Get list of voicemail messages
-exports.index = function(req, res) {
-  return VoiceVoicemailMessages
-    .scope({
-      method: ['mailbox', req.query]
-    })
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(function(result) {
-      res.status(200).send(result);
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-// Get a single voicemail_message
-exports.show = function(req, res) {
-  return VoiceVoicemailMessages
-    .findById(req.params.id)
-    .then(function(voicemail_message) {
-      if (!voicemail_message) {
-        return res.sendStatus(404);
-      }
-      return res.send(voicemail_message);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a voicemail_message from the DB.
-exports.destroy = function(req, res) {
-  return VoiceVoicemailMessages
-    .findById(req.params.id)
-    .then(function(voicemail_message) {
-      if (!voicemail_message) {
-        return res.sendStatus(404);
-      }
-      voicemail_message.recording = null;
-      voicemail_message.destroy();
-    })
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes all voicemail_messages from the DB.
-exports.bulkDestroy = function(req, res) {
-  return VoiceVoicemailMessages
-    .findAll({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(function(voicemail_messages) {
-      var bulkDest = [];
-      voicemail_messages.forEach(function(message) {
-        voicemail_message.recording = null;
-        bulkDest.push(voicemail_message.destroy());
-      });
-      return bulkDest;
-    })
-    .all()
-    .then(function() {
-      return res.sendStatus(204);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.download = function(req, res) {
-  return VoiceVoicemailMessages
-    .findById(req.params.id)
-    .then(function(message) {
-      var base64String = new Buffer(message.recording, 'binary').toString('base64');
-      return base64String;
-    })
-    .then(function(base64String) {
-      return res.status(200).send({
-        downloadString: base64String
-      });
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0xb3b9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x73\x74\x72\x65\x61\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x6D\x61\x69\x6C\x62\x6F\x78","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x61\x6C\x6C","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x69\x64\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x62\x61\x73\x65\x36\x34","\x62\x69\x6E\x61\x72\x79"];_0xb3b9[0];var _=require(_0xb3b9[1]);var stream=require(_0xb3b9[2]);var Util=require(_0xb3b9[3]);var VoiceVoicemailMessages=require(_0xb3b9[5])[_0xb3b9[4]];exports[_0xb3b9[6]]=function(_0x1dc9x5,_0x1dc9x6){return VoiceVoicemailMessages[_0xb3b9[16]]({method:[_0xb3b9[15],_0x1dc9x5[_0xb3b9[12]]]})[_0xb3b9[14]](Util[_0xb3b9[13]](_0x1dc9x5[_0xb3b9[12]]))[_0xb3b9[11]](function(_0x1dc9x8){_0x1dc9x6[_0xb3b9[10]](200)[_0xb3b9[9]](_0x1dc9x8)})[_0xb3b9[8]](function(_0x1dc9x7){console[_0xb3b9[7]](_0x1dc9x7);return handleError(_0x1dc9x6,_0x1dc9x7)})};exports[_0xb3b9[17]]=function(_0x1dc9x5,_0x1dc9x6){return VoiceVoicemailMessages[_0xb3b9[21]](_0x1dc9x5[_0xb3b9[20]][_0xb3b9[19]])[_0xb3b9[11]](function(_0x1dc9x9){if(!_0x1dc9x9){return _0x1dc9x6[_0xb3b9[18]](404)};return _0x1dc9x6[_0xb3b9[9]](_0x1dc9x9)})[_0xb3b9[8]](function(_0x1dc9x7){return handleError(_0x1dc9x6,_0x1dc9x7)})};exports[_0xb3b9[22]]=function(_0x1dc9x5,_0x1dc9x6){return VoiceVoicemailMessages[_0xb3b9[21]](_0x1dc9x5[_0xb3b9[20]][_0xb3b9[19]])[_0xb3b9[11]](function(_0x1dc9x9){if(!_0x1dc9x9){return _0x1dc9x6[_0xb3b9[18]](404)};_0x1dc9x9[_0xb3b9[23]]=null;_0x1dc9x9[_0xb3b9[22]]()})[_0xb3b9[11]](function(){return _0x1dc9x6[_0xb3b9[18]](204)})[_0xb3b9[8]](function(_0x1dc9x7){return handleError(_0x1dc9x6,_0x1dc9x7)})};exports[_0xb3b9[24]]=function(_0x1dc9x5,_0x1dc9x6){return VoiceVoicemailMessages[_0xb3b9[29]]({where:{id:_0x1dc9x5[_0xb3b9[12]][_0xb3b9[28]]},individualHooks:true})[_0xb3b9[11]](function(_0x1dc9xa){var _0x1dc9xb=[];_0x1dc9xa[_0xb3b9[27]](function(_0x1dc9xc){voicemail_message[_0xb3b9[23]]=null;_0x1dc9xb[_0xb3b9[26]](voicemail_message[_0xb3b9[22]]())});return _0x1dc9xb})[_0xb3b9[25]]()[_0xb3b9[11]](function(){return _0x1dc9x6[_0xb3b9[18]](204)})[_0xb3b9[8]](function(_0x1dc9x7){return handleError(_0x1dc9x6,_0x1dc9x7)})};exports[_0xb3b9[30]]=function(_0x1dc9x5,_0x1dc9x6){return VoiceVoicemailMessages[_0xb3b9[21]](_0x1dc9x5[_0xb3b9[20]][_0xb3b9[19]])[_0xb3b9[11]](function(_0x1dc9xc){var _0x1dc9xd= new Buffer(_0x1dc9xc[_0xb3b9[23]],_0xb3b9[32]).toString(_0xb3b9[31]);return _0x1dc9xd})[_0xb3b9[11]](function(_0x1dc9xd){return _0x1dc9x6[_0xb3b9[10]](200)[_0xb3b9[9]]({downloadString:_0x1dc9xd})})[_0xb3b9[8]](function(_0x1dc9x7){console[_0xb3b9[7]](_0x1dc9x7);return handleError(_0x1dc9x6,_0x1dc9x7)})};function handleError(_0x1dc9x6,_0x1dc9x7){return _0x1dc9x6[_0xb3b9[10]](500)[_0xb3b9[9]](_0x1dc9x7)}
\ No newline at end of file
index ee0fbef..013297c 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var VoiceVoicemailMessages = require('../../models').VoiceVoicemailMessages;
-
-exports.register = function(socket) {
-  VoiceVoicemailMessages.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  VoiceVoicemailMessages.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('voice_voicemail_messages:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('voice_voicemail_messages:remove', doc);
-}
+var _0x2ca3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73\x3A\x72\x65\x6D\x6F\x76\x65"];_0x2ca3[0];var VoiceVoicemailMessages=require(_0x2ca3[2])[_0x2ca3[1]];exports[_0x2ca3[3]]=function(_0x9e3dx2){VoiceVoicemailMessages[_0x2ca3[4]](function(_0x9e3dx3){onSave(_0x9e3dx2,_0x9e3dx3)});VoiceVoicemailMessages[_0x2ca3[5]](function(_0x9e3dx3){onRemove(_0x9e3dx2,_0x9e3dx3)})};function onSave(_0x9e3dx2,_0x9e3dx3,_0x9e3dx5){_0x9e3dx2[_0x2ca3[7]](_0x2ca3[6],_0x9e3dx3)}function onRemove(_0x9e3dx2,_0x9e3dx3,_0x9e3dx5){_0x9e3dx2[_0x2ca3[7]](_0x2ca3[8],_0x9e3dx3)}
\ No newline at end of file
index 374e711..ae2809f 100644 (file)
@@ -1,19 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./widget.controller');
-var auth = require('../../auth/auth.service');
-
-var router = express.Router();
-
-// router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/counter', auth.isAuthenticated(), controller.counter);
-router.get('/table', auth.isAuthenticated(), controller.table);
-router.get('/piechart', auth.isAuthenticated(), controller.piechart);
-// router.get('/:id', auth.isAuthenticated(), controller.show);
-// router.post('/', auth.isAuthenticated(), controller.create);
-// router.put('/:id', auth.isAuthenticated(), controller.update);
-// router.patch('/:id', auth.isAuthenticated(), controller.update);
-// router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x1af1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x77\x69\x64\x67\x65\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x63\x6F\x75\x6E\x74\x65\x72","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x63\x6F\x75\x6E\x74\x65\x72","\x67\x65\x74","\x2F\x74\x61\x62\x6C\x65","\x74\x61\x62\x6C\x65","\x2F\x70\x69\x65\x63\x68\x61\x72\x74","\x70\x69\x65\x63\x68\x61\x72\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x1af1[0];var express=require(_0x1af1[1]);var controller=require(_0x1af1[2]);var auth=require(_0x1af1[3]);var router=express.Router();router[_0x1af1[7]](_0x1af1[4],auth[_0x1af1[5]](),controller[_0x1af1[6]]);router[_0x1af1[7]](_0x1af1[8],auth[_0x1af1[5]](),controller[_0x1af1[9]]);router[_0x1af1[7]](_0x1af1[10],auth[_0x1af1[5]](),controller[_0x1af1[11]]);module[_0x1af1[12]]=router
\ No newline at end of file
index 731df92..1cc7eac 100644 (file)
@@ -1,102 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var sequelize = require('../../models').sequelize;
-
-// var ReportAgent = require('../../models').ReportAgent;
-// var ReportCall = require('../../models').ReportCall;
-// var ReportDial = require('../../models').ReportDial;
-// var ReportMember = require('../../models').ReportMember;
-// var ReportQueue = require('../../models').ReportQueue;
-
-
-
-exports.counter = function(req, res) {
-  var query = util.format("SELECT %s FROM %s", req.query.select, req.query.table);
-  if (req.query.condition) {
-    query += util.format(" WHERE %s", decodeURIComponent(req.query.condition))
-  }
-  sequelize.query(query, {
-      type: sequelize.QueryTypes.SELECT
-    })
-    .then(function(result) {
-      return res.status(200).send({
-        result: result
-      });
-    })
-    .catch(function(err) {
-      console.log(err);
-      return handleError(res, err);
-    });
-};
-
-exports.table = function(req, res) {
-  var columns = [];
-  var elem;
-  if (req.query.fields) {
-    if (_.isArray(req.query.fields)) {
-      req.query.fields.forEach(function(element) {
-        elem = JSON.parse(element);
-        if (elem.column && elem.alias) {
-          columns.push(elem.column + ' AS "' + elem.alias + '"');
-        }
-      });
-    } else if (_.isString(req.query.fields)) {
-      elem = JSON.parse(req.query.fields);
-      if (elem.column && elem.alias) {
-        columns.push(elem.column + ' AS "' + elem.alias + '"');
-      }
-    }
-  }
-  var select = columns.length ? columns.join(',') : '*';
-  sequelize.query(util.format("SELECT %s FROM %s WHERE %s", select, 'report' + req.query.table, decodeURIComponent(req.query.condition)), {
-      type: sequelize.QueryTypes.SELECT
-    })
-    .then(function(result) {
-      return res.status(200).send(result);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.piechart = function(req, res) {
-  var columns = [];
-  var elem;
-  if (req.query.fields) {
-    if (_.isArray(req.query.fields)) {
-      req.query.fields.forEach(function(element) {
-        elem = JSON.parse(element);
-        if (elem.column && elem.alias) {
-          columns.push(elem.column + ' AS "' + elem.alias + '"');
-        }
-      });
-    } else if (_.isString(req.query.fields)) {
-      elem = JSON.parse(req.query.fields);
-      if (elem.column && elem.alias) {
-        columns.push(elem.column + ' AS "' + elem.alias + '"');
-      }
-    }
-  }
-  var select = columns.length ? columns.join(',') : '*';
-  var where = '';
-  if (req.query.condition !== 'undefined') {
-    where = util.format(' WHERE %s', decodeURIComponent(req.query.condition));
-  }
-  sequelize.query(util.format("SELECT %s FROM %s%s", select, req.query.table, where), {
-      type: sequelize.QueryTypes.SELECT
-    })
-    .then(function(result) {
-      return res.status(200).send({
-        result: result
-      });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x5f34=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x63\x6F\x75\x6E\x74\x65\x72","\x53\x45\x4C\x45\x43\x54\x20\x25\x73\x20\x46\x52\x4F\x4D\x20\x25\x73","\x73\x65\x6C\x65\x63\x74","\x71\x75\x65\x72\x79","\x74\x61\x62\x6C\x65","\x66\x6F\x72\x6D\x61\x74","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x20\x57\x48\x45\x52\x45\x20\x25\x73","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x66\x69\x65\x6C\x64\x73","\x69\x73\x41\x72\x72\x61\x79","\x70\x61\x72\x73\x65","\x63\x6F\x6C\x75\x6D\x6E","\x61\x6C\x69\x61\x73","\x20\x41\x53\x20\x22","\x22","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x69\x73\x53\x74\x72\x69\x6E\x67","\x6C\x65\x6E\x67\x74\x68","\x2C","\x6A\x6F\x69\x6E","\x2A","\x53\x45\x4C\x45\x43\x54\x20\x25\x73\x20\x46\x52\x4F\x4D\x20\x25\x73\x20\x57\x48\x45\x52\x45\x20\x25\x73","\x72\x65\x70\x6F\x72\x74","\x70\x69\x65\x63\x68\x61\x72\x74","","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x53\x45\x4C\x45\x43\x54\x20\x25\x73\x20\x46\x52\x4F\x4D\x20\x25\x73\x25\x73"];_0x5f34[0];var _=require(_0x5f34[1]);var util=require(_0x5f34[2]);var sequelize=require(_0x5f34[4])[_0x5f34[3]];exports[_0x5f34[5]]=function(_0xdb8cx4,_0xdb8cx5){var _0xdb8cx6=util[_0x5f34[10]](_0x5f34[6],_0xdb8cx4[_0x5f34[8]][_0x5f34[7]],_0xdb8cx4[_0x5f34[8]][_0x5f34[9]]);if(_0xdb8cx4[_0x5f34[8]][_0x5f34[11]]){_0xdb8cx6+=util[_0x5f34[10]](_0x5f34[12],decodeURIComponent(_0xdb8cx4[_0x5f34[8]][_0x5f34[11]]))};sequelize[_0x5f34[8]](_0xdb8cx6,{type:sequelize[_0x5f34[19]][_0x5f34[18]]})[_0x5f34[17]](function(_0xdb8cx8){return _0xdb8cx5[_0x5f34[16]](200)[_0x5f34[15]]({result:_0xdb8cx8})})[_0x5f34[14]](function(_0xdb8cx7){console[_0x5f34[13]](_0xdb8cx7);return handleError(_0xdb8cx5,_0xdb8cx7)})};exports[_0x5f34[9]]=function(_0xdb8cx4,_0xdb8cx5){var _0xdb8cx9=[];var _0xdb8cxa;if(_0xdb8cx4[_0x5f34[8]][_0x5f34[20]]){if(_[_0x5f34[21]](_0xdb8cx4[_0x5f34[8]][_0x5f34[20]])){_0xdb8cx4[_0x5f34[8]][_0x5f34[20]][_0x5f34[28]](function(_0xdb8cxb){_0xdb8cxa=JSON[_0x5f34[22]](_0xdb8cxb);if(_0xdb8cxa[_0x5f34[23]]&&_0xdb8cxa[_0x5f34[24]]){_0xdb8cx9[_0x5f34[27]](_0xdb8cxa[_0x5f34[23]]+_0x5f34[25]+_0xdb8cxa[_0x5f34[24]]+_0x5f34[26])}})}else {if(_[_0x5f34[29]](_0xdb8cx4[_0x5f34[8]][_0x5f34[20]])){_0xdb8cxa=JSON[_0x5f34[22]](_0xdb8cx4[_0x5f34[8]][_0x5f34[20]]);if(_0xdb8cxa[_0x5f34[23]]&&_0xdb8cxa[_0x5f34[24]]){_0xdb8cx9[_0x5f34[27]](_0xdb8cxa[_0x5f34[23]]+_0x5f34[25]+_0xdb8cxa[_0x5f34[24]]+_0x5f34[26])}}}};var _0xdb8cxc=_0xdb8cx9[_0x5f34[30]]?_0xdb8cx9[_0x5f34[32]](_0x5f34[31]):_0x5f34[33];sequelize[_0x5f34[8]](util[_0x5f34[10]](_0x5f34[34],_0xdb8cxc,_0x5f34[35]+_0xdb8cx4[_0x5f34[8]][_0x5f34[9]],decodeURIComponent(_0xdb8cx4[_0x5f34[8]][_0x5f34[11]])),{type:sequelize[_0x5f34[19]][_0x5f34[18]]})[_0x5f34[17]](function(_0xdb8cx8){return _0xdb8cx5[_0x5f34[16]](200)[_0x5f34[15]](_0xdb8cx8)})[_0x5f34[14]](function(_0xdb8cx7){return handleError(_0xdb8cx5,_0xdb8cx7)})};exports[_0x5f34[36]]=function(_0xdb8cx4,_0xdb8cx5){var _0xdb8cx9=[];var _0xdb8cxa;if(_0xdb8cx4[_0x5f34[8]][_0x5f34[20]]){if(_[_0x5f34[21]](_0xdb8cx4[_0x5f34[8]][_0x5f34[20]])){_0xdb8cx4[_0x5f34[8]][_0x5f34[20]][_0x5f34[28]](function(_0xdb8cxb){_0xdb8cxa=JSON[_0x5f34[22]](_0xdb8cxb);if(_0xdb8cxa[_0x5f34[23]]&&_0xdb8cxa[_0x5f34[24]]){_0xdb8cx9[_0x5f34[27]](_0xdb8cxa[_0x5f34[23]]+_0x5f34[25]+_0xdb8cxa[_0x5f34[24]]+_0x5f34[26])}})}else {if(_[_0x5f34[29]](_0xdb8cx4[_0x5f34[8]][_0x5f34[20]])){_0xdb8cxa=JSON[_0x5f34[22]](_0xdb8cx4[_0x5f34[8]][_0x5f34[20]]);if(_0xdb8cxa[_0x5f34[23]]&&_0xdb8cxa[_0x5f34[24]]){_0xdb8cx9[_0x5f34[27]](_0xdb8cxa[_0x5f34[23]]+_0x5f34[25]+_0xdb8cxa[_0x5f34[24]]+_0x5f34[26])}}}};var _0xdb8cxc=_0xdb8cx9[_0x5f34[30]]?_0xdb8cx9[_0x5f34[32]](_0x5f34[31]):_0x5f34[33];var _0xdb8cxd=_0x5f34[37];if(_0xdb8cx4[_0x5f34[8]][_0x5f34[11]]!==_0x5f34[38]){_0xdb8cxd=util[_0x5f34[10]](_0x5f34[12],decodeURIComponent(_0xdb8cx4[_0x5f34[8]][_0x5f34[11]]))};sequelize[_0x5f34[8]](util[_0x5f34[10]](_0x5f34[39],_0xdb8cxc,_0xdb8cx4[_0x5f34[8]][_0x5f34[9]],_0xdb8cxd),{type:sequelize[_0x5f34[19]][_0x5f34[18]]})[_0x5f34[17]](function(_0xdb8cx8){return _0xdb8cx5[_0x5f34[16]](200)[_0x5f34[15]]({result:_0xdb8cx8})})[_0x5f34[14]](function(_0xdb8cx7){return handleError(_0xdb8cx5,_0xdb8cx7)})};function handleError(_0xdb8cx5,_0xdb8cx7){return _0xdb8cx5[_0x5f34[16]](500)[_0x5f34[15]](_0xdb8cx7)}
\ No newline at end of file
index 94ea420..0ec2cd7 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/widgets', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/widgets')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0xb07b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x77\x69\x64\x67\x65\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x77\x69\x64\x67\x65\x74\x73","\x67\x65\x74"];_0xb07b[0];var should=require(_0xb07b[1]);var app=require(_0xb07b[2]);var request=require(_0xb07b[3]);describe(_0xb07b[4],function(){it(_0xb07b[5],function(_0xcf5ex4){request(app)[_0xb07b[13]](_0xb07b[12])[_0xb07b[11]](200)[_0xb07b[11]](_0xb07b[10],/json/)[_0xb07b[9]](function(_0xcf5ex5,_0xcf5ex6){if(_0xcf5ex5){return _0xcf5ex4(_0xcf5ex5)};_0xcf5ex6[_0xb07b[8]][_0xb07b[1]][_0xb07b[7]][_0xb07b[6]](Array);_0xcf5ex4()})})})
\ No newline at end of file
index e03bc91..d7774b0 100644 (file)
@@ -1,33 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./xchatty.controller');
-
-var router = express.Router();
-
-router.get('/jquery', controller.getJqueryLibrary);
-router.get('/assets', controller.getAssets);
-
-router.get('/status', controller.getStatus);
-router.get('/signup', controller.signupCustomer);
-router.get('/read', controller.getMessages);
-router.get('/send', controller.sendMessage);
-router.get('/signout', controller.signoutCustomer);
-router.get('/submit', controller.submitEnquiry);
-router.get('/unserved', controller.unservedCustomer);
-router.get('/transcript', controller.getTranscript);
-router.get('/rating', controller.setRating);
-router.get('/abandon', controller.abandonCustomer);
-
-router.get('/:id', controller.getJsByWebsite);
-router.get('/:id/html', controller.getHtmlByWebsite);
-router.get('/:id/proactive', controller.getProactiveActionsByWebsite);
-router.get('/:id/styles', controller.getStyleByWebsite);
-
-// router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0x31ad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x78\x63\x68\x61\x74\x74\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x6A\x71\x75\x65\x72\x79","\x67\x65\x74\x4A\x71\x75\x65\x72\x79\x4C\x69\x62\x72\x61\x72\x79","\x67\x65\x74","\x2F\x61\x73\x73\x65\x74\x73","\x67\x65\x74\x41\x73\x73\x65\x74\x73","\x2F\x73\x74\x61\x74\x75\x73","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x2F\x73\x69\x67\x6E\x75\x70","\x73\x69\x67\x6E\x75\x70\x43\x75\x73\x74\x6F\x6D\x65\x72","\x2F\x72\x65\x61\x64","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x2F\x73\x65\x6E\x64","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65","\x2F\x73\x69\x67\x6E\x6F\x75\x74","\x73\x69\x67\x6E\x6F\x75\x74\x43\x75\x73\x74\x6F\x6D\x65\x72","\x2F\x73\x75\x62\x6D\x69\x74","\x73\x75\x62\x6D\x69\x74\x45\x6E\x71\x75\x69\x72\x79","\x2F\x75\x6E\x73\x65\x72\x76\x65\x64","\x75\x6E\x73\x65\x72\x76\x65\x64\x43\x75\x73\x74\x6F\x6D\x65\x72","\x2F\x74\x72\x61\x6E\x73\x63\x72\x69\x70\x74","\x67\x65\x74\x54\x72\x61\x6E\x73\x63\x72\x69\x70\x74","\x2F\x72\x61\x74\x69\x6E\x67","\x73\x65\x74\x52\x61\x74\x69\x6E\x67","\x2F\x61\x62\x61\x6E\x64\x6F\x6E","\x61\x62\x61\x6E\x64\x6F\x6E\x43\x75\x73\x74\x6F\x6D\x65\x72","\x2F\x3A\x69\x64","\x67\x65\x74\x4A\x73\x42\x79\x57\x65\x62\x73\x69\x74\x65","\x2F\x3A\x69\x64\x2F\x68\x74\x6D\x6C","\x67\x65\x74\x48\x74\x6D\x6C\x42\x79\x57\x65\x62\x73\x69\x74\x65","\x2F\x3A\x69\x64\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65","\x67\x65\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73\x42\x79\x57\x65\x62\x73\x69\x74\x65","\x2F\x3A\x69\x64\x2F\x73\x74\x79\x6C\x65\x73","\x67\x65\x74\x53\x74\x79\x6C\x65\x42\x79\x57\x65\x62\x73\x69\x74\x65","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x31ad[0];var express=require(_0x31ad[1]);var controller=require(_0x31ad[2]);var router=express.Router();router[_0x31ad[5]](_0x31ad[3],controller[_0x31ad[4]]);router[_0x31ad[5]](_0x31ad[6],controller[_0x31ad[7]]);router[_0x31ad[5]](_0x31ad[8],controller[_0x31ad[9]]);router[_0x31ad[5]](_0x31ad[10],controller[_0x31ad[11]]);router[_0x31ad[5]](_0x31ad[12],controller[_0x31ad[13]]);router[_0x31ad[5]](_0x31ad[14],controller[_0x31ad[15]]);router[_0x31ad[5]](_0x31ad[16],controller[_0x31ad[17]]);router[_0x31ad[5]](_0x31ad[18],controller[_0x31ad[19]]);router[_0x31ad[5]](_0x31ad[20],controller[_0x31ad[21]]);router[_0x31ad[5]](_0x31ad[22],controller[_0x31ad[23]]);router[_0x31ad[5]](_0x31ad[24],controller[_0x31ad[25]]);router[_0x31ad[5]](_0x31ad[26],controller[_0x31ad[27]]);router[_0x31ad[5]](_0x31ad[28],controller[_0x31ad[29]]);router[_0x31ad[5]](_0x31ad[30],controller[_0x31ad[31]]);router[_0x31ad[5]](_0x31ad[32],controller[_0x31ad[33]]);router[_0x31ad[5]](_0x31ad[34],controller[_0x31ad[35]]);router[_0x31ad[38]](_0x31ad[36],controller[_0x31ad[37]]);router[_0x31ad[40]](_0x31ad[28],controller[_0x31ad[39]]);router[_0x31ad[41]](_0x31ad[28],controller[_0x31ad[39]]);router[_0x31ad[43]](_0x31ad[28],controller[_0x31ad[42]]);module[_0x31ad[44]]=router
\ No newline at end of file
index 017d746..67a8e0c 100644 (file)
@@ -1,829 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var jsmin = require('jsmin').jsmin;
-var Mustache = require('mustache');
-var querystring = require('querystring');
-var path = require('path');
-var md5 = require('md5');
-var fs = require('fs');
-var UAParser = require('ua-parser-js');
-var uaParser = new UAParser();
-var languageParser = require('accept-language-parser');
-var ipaddr = require('ipaddr.js');
-var geoip = require('geoip-lite');
-var csv = require('to-csv');
-var util = require('util');
-var moment = require('moment');
-
-var config = require('../../config/environment');
-var Xchatty = require('../../models').Xchatty;
-var xchatty_components = require('../../components/xchatty');
-var Util = require('../../config/util');
-
-var sequelize = require('../../models').sequelize;
-var User = require('../../models').User;
-var Agent = require('../../models').User;
-var ChatRoom = require('../../models').ChatRoom;
-var ChatEnquiry = require('../../models').ChatEnquiry;
-var ChatVisitor = require('../../models').ChatVisitor;
-var ChatMessage = require('../../models').ChatMessage;
-var ChatWebsite = require('../../models').ChatWebsite;
-var ChatWebsitesField = require('../../models').ChatWebsitesField;
-var ChatProactiveAction = require('../../models').ChatProactiveAction;
-var ReportChatSession = require('../../models').ReportChatSession;
-
-var id = 1;
-
-// Get list of xchattys
-exports.index = function(req, res, next) {
-  return Xchatty
-    .findAll()
-    .then(function(xchattys) {
-      return res.status(200).send(xchattys);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-exports.getJsByWebsite = function(req, res, next) {
-
-  // TO DO: Find the configuration of the website and replace configuration in the file
-  ChatWebsite
-    .findById(req.params.id)
-    .then(function(chatWebsite) {
-      res.set({
-        'Content-Type': 'application/javascript',
-        'x-timestamp': Date.now(),
-        'x-sent': true
-      });
-
-      var js = xchatty_components.js;
-      /*jshint multistr: true */
-      var configJS = {
-        websiteId: req.params.id,
-        // rootPath: path.join(chatWebsite.remote, 'api', 'xchatty/'),
-        rootPath: Util.stripTrailingSlash(chatWebsite.remote) + '/api/xchatty/',
-        signedUp: 'false',
-        windowFocused: 'false',
-        isNewPage: 'true',
-        processingSignUp: 'false',
-        processingEnquiry: 'false',
-        processingSend: 'false',
-        processingRating: 'false',
-        visitorFullname: '""',
-        visitorAvatar: '""',
-        timerReadMessages: 'null',
-        timerCheckStatus: 'null',
-        isOnline: 'false',
-        decayHistory: 0,
-        defaultTimeout: 5000,
-        isInitialStatusCheck: 'true',
-        muteNotificationSoundOnce: 'false',
-        assetBase: Util.stripTrailingSlash(chatWebsite.remote) + '/api/xchatty/assets',
-        hasSessionSaf: 'false',
-        restoreOpenState: 'false',
-        animateHover: chatWebsite.animation,
-        hideEmail: 'false',
-        hideOffline: 'false',
-        headerShape: chatWebsite.header_shape,
-        HeaderOnline: chatWebsite.header_online,
-        OnlineMessage: chatWebsite.online_message,
-        UsernamePlaceholder: chatWebsite.username_placeholder,
-        EmailPlaceholder: chatWebsite.email_placeholder,
-        StartChatButtonText: chatWebsite.start_chat_button,
-        OfflineMessage: chatWebsite.offline_message,
-        HeaderOffline: chatWebsite.header_offline,
-        EnquiryMessagePlaceholder: chatWebsite.enquiry_message_placeholder,
-        EnquiryButtonText: chatWebsite.enquiry_button,
-        downloadTranscript: chatWebsite.download_transcript,
-        RatingMessage: chatWebsite.rating_message,
-        RatingSend: chatWebsite.rating_send,
-        RatingSkip: chatWebsite.rating_skip
-      };
-
-      js = Mustache.render(js, configJS);
-      res.send(js);
-
-    })
-    .catch(function(err) {
-      next(err);
-    });
-
-};
-
-exports.getStyleByWebsite = function(req, res, next) {
-
-  // TO DO: Find the configuration of the website and replace configuration in the file
-  ChatWebsite
-    .findById(req.params.id)
-    .then(function(chatWebsite) {
-
-      res.set({
-        'Content-Type': 'text/css',
-        'x-timestamp': Date.now(),
-        'x-sent': true
-      });
-
-      var css = xchatty_components.css;
-
-      var configCSS = {
-        // assetBase: path.join(chatWebsite.remote, 'api', 'xchatty',
-        //   'assets'),
-        assetBase: Util.stripTrailingSlash(chatWebsite.remote) + '/api/xchatty/assets',
-        color: chatWebsite.color,
-        colorFocus: chatWebsite.color_focus,
-        colorButton: chatWebsite.color_button
-      };
-
-      css = Mustache.render(css, configCSS);
-      res.send(css);
-    })
-    .catch(function(err) {
-      next(err);
-    });
-};
-
-exports.getAssets = function(req, res, next) {
-  res.download(path.join(config.root, 'server', 'components', 'xchatty', 'assets', req.query.resource));
-};
-
-exports.getJqueryLibrary = function(req, res, next) {
-
-  // TODO: Find the configuration of the website and replace configuration in the file
-  res.set({
-    'Content-Type': 'application/javascript',
-    'x-timestamp': Date.now(),
-    'x-sent': true
-  });
-
-  var jquery = xchatty_components.jquery;
-  res.send(jquery);
-
-};
-
-exports.getStatus = function(req, res, next) {
-
-  if (!req.session.xchatty) {
-    req.session.xchatty = {};
-  }
-
-  var _jsonResponse = {};
-
-  return Agent
-    .findAll({
-      where: {
-        online: true,
-        role: 'agent'
-      }
-    })
-    .then(function(agents) {
-      if (req.query.data.open_state)
-        req.session.xchatty.open_state = req.query.data.open_state === 'true' ? true : false;
-      _jsonResponse = {
-        success: true,
-        has_session_saf: null,
-        signed_up: req.session.xchatty.room_id ? true : false,
-        fullname: req.session.xchatty.fullname ? req.session.xchatty.fullname : '',
-        email: req.session.xchatty.email ? req.session.xchatty.email : '',
-        avatar: req.session.xchatty.avatar ? req.session.xchatty.avatar : '',
-        open_state: req.session.xchatty.open_state || req.session.xchatty.room_id ? true : false,
-        online: agents.length ? true : false,
-        is_unserved: false,
-        room_id: 0
-      };
-      return;
-    })
-    .then(function() {
-      if (req.session.xchatty.visitor_id) {
-        return ChatRoom
-          .findOne({
-            where: {
-              ChatVisitorId: req.session.xchatty.visitor_id,
-              status: 'OPEN',
-              token: {
-                $ne: ''
-              }
-            }
-          });
-      }
-      return;
-    })
-    .then(function(chatRoom) {
-      if (chatRoom) {
-        req.session.xchatty.room_id = chatRoom.id;
-        _jsonResponse.room_id = chatRoom.id;
-        _jsonResponse.signed_up = true;
-      } else {
-        _jsonResponse.signed_up = false;
-      }
-      return;
-    })
-    .then(function() {
-      if (req.session.xchatty.visitor_id) {
-        return ChatVisitor
-          .findOne({
-            where: {
-              id: req.session.xchatty.visitor_id,
-              status: 'unserved'
-            }
-          })
-      }
-      return;
-    })
-    .then(function(visitor) {
-      if (visitor) {
-        _jsonResponse.is_unserved = true;
-      }
-      return res.send(req.query.callback + '(' + JSON.stringify(_jsonResponse) + ')');
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-exports.getMessages = function(req, res, next) {
-
-  /*jshint multistr: true */
-  var condition = {
-    where: {
-      ChatRoomId: req.session.xchatty.room_id
-    },
-    include: [{
-      model: User,
-      attributes: ['id', 'name', 'fullname', 'email']
-    }, {
-      model: ChatVisitor,
-      attributes: ['id', 'fullname', 'email']
-    }]
-  };
-
-  if (req.query.data.is_new_page === 'false') {
-    condition.where.id = {
-      $gt: req.query.data.last_id
-    };
-  }
-
-  ChatMessage
-    .findAll(condition)
-    .then(function(chatMessages) {
-      var json = {
-        success: true,
-        messages: chatMessages,
-        composing: false,
-        composing_fullname: null
-      };
-
-      res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
-    })
-    .catch(function(err) {
-      next(err);
-    });
-};
-
-exports.sendMessage = function(req, res, next) {
-
-  /*jshint multistr: true */
-  var condition = {
-    where: {
-      ChatRoomId: req.session.xchatty.room_id
-    },
-    include: [{
-      model: User,
-      attributes: ['id', 'name', 'fullname', 'email']
-    }, {
-      model: ChatVisitor,
-      attributes: ['id', 'fullname', 'email']
-    }]
-  };
-
-  if (req.query.data.is_new_page === 'false') {
-    condition.where.id = {
-      $gt: req.query.data.last_id
-    };
-  }
-
-  ChatMessage
-    .create({
-      body: req.query.data.Message.message,
-      ChatRoomId: req.session.xchatty.room_id,
-      ChatVisitorId: req.session.xchatty.visitor_id
-    })
-    .then(function(chatMessage) {
-      ChatMessage
-        .findAll(condition)
-        .then(function(chatMessages) {
-          var json = {
-            errors: [],
-            success: true,
-            data: chatMessage,
-            messages: chatMessages
-          };
-
-          res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
-        })
-        .catch(function(err) {
-          next(err);
-        });
-    })
-    .catch(function(err) {
-      next(err);
-    });
-
-};
-
-exports.signoutCustomer = function(req, res, next) {
-  return ChatRoom
-    .findById(req.session.xchatty.room_id)
-    .then(function(chatRoom) {
-      return chatRoom
-        .update({
-          status: 'CLOSED'
-        });
-    })
-    .then(function() {
-      var json = {
-        success: true,
-        errors: []
-      };
-      req.session.xchatty = {};
-      res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
-    })
-    .catch(function(err) {
-      next(err);
-    });
-};
-
-exports.signupCustomer = function(req, res, next) {
-
-  var ua = uaParser.setUA(req.headers['user-agent']).getResult();
-  var languages = languageParser.parse(req.headers['accept-language']);
-  // var addr = ipaddr.parse(req.connection.remoteAddress);
-
-  var remoteAddress = req.headers['x-forwarded-for'] ? req.headers['x-forwarded-for'] : req.connection.remoteAddress || req.ip;
-
-  // var ipv4Addr = "151.0.175.186";
-  // var geo = geoip.lookup(ipv4Addr);
-
-  var body = {
-    fullname: req.query.data.Discussion.fullname,
-    email: req.query.data.Discussion.email,
-    // remote_address: addr,
-    remote_address: remoteAddress,
-    user_agent: req.headers['user-agent'],
-    visitor_language: req.headers['accept-language'],
-    referer: req.headers.referer,
-    origin: 'webchat',
-    browser: ua.browser.name + ' ' + ua.browser.version,
-    engine: ua.engine.name + ' ' + ua.engine.version,
-    os: ua.os.name + ' ' + ua.os.version,
-    device: ua.device.model ? ua.device.model + ' ' + ua.device.vendor + ' ' + ua.device.type : null,
-    // country: geo.country,
-    // city: geo.city,
-    // region: geo.region,
-    // latitude: geo.ll.length ? geo.ll[0].toString() : null,
-    // longitude: geo.ll.length ? geo.ll[1].toString() : null,
-    ChatWebsiteId: req.query.chatWebsiteId
-  };
-
-  if (req.query.data.Discussion.data1 && req.query.data.Discussion.labelData1) {
-    body.data1 = req.query.data.Discussion.data1;
-    body.labelData1 = req.query.data.Discussion.labelData1;
-  }
-  if (req.query.data.Discussion.data2 && req.query.data.Discussion.labelData2) {
-    body.data2 = req.query.data.Discussion.data2;
-    body.labelData2 = req.query.data.Discussion.labelData2;
-  }
-  if (req.query.data.Discussion.data3 && req.query.data.Discussion.labelData3) {
-    body.data3 = req.query.data.Discussion.data3;
-    body.labelData3 = req.query.data.Discussion.labelData3;
-  }
-
-  return ChatVisitor
-    .create(body)
-    .then(function(chatVisitor) {
-
-      req.session.xchatty.fullname = chatVisitor.fullname;
-      req.session.xchatty.email = chatVisitor.email;
-      req.session.xchatty.avatar = md5(chatVisitor.email).toString('base64');
-      req.session.xchatty.visitor_id = chatVisitor.id;
-
-      var json = {
-        success: true,
-        errors: [],
-        chatVisitor: {
-          id: chatVisitor.id
-        }
-      };
-
-      /*jshint multistr: true */
-      res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
-    })
-    .catch(function(err) {
-      next(err);
-    });
-};
-
-exports.unservedCustomer = function(req, res, next) {
-  return ChatVisitor
-    .findById(req.session.xchatty.visitor_id)
-    .then(function(chatVisitor) {
-      return chatVisitor
-        .update({
-          status: 'unserved'
-        });
-    })
-    .then(function() {
-      var json = {
-        success: true,
-        errors: []
-      };
-      req.session.xchatty = {};
-      res.send(req.query.callback + '(' + JSON.stringify(json) + ')');
-    })
-    .catch(function(err) {
-      next(err);
-    });
-};
-
-exports.submitEnquiry = function(req, res, next) {
-
-  return sequelize.transaction().then(function(t) {
-
-    var remoteAddress = req.headers['x-forwarded-for'] ? req.headers['x-forwarded-for'] : req.connection.remoteAddress || req.ip;
-
-    var ua = uaParser.setUA(req.headers['user-agent']).getResult();
-    var languages = languageParser.parse(req.headers['accept-language']);
-    var body = {
-      fullname: req.query.data.Enquiry.fullname,
-      email: req.query.data.Enquiry.email,
-      remote_address: remoteAddress,
-      user_agent: req.headers['user-agent'],
-      visitor_language: req.headers['accept-language'],
-      browser: ua.browser.name + ' ' + ua.browser.version,
-      engine: ua.engine.name + ' ' + ua.engine.version,
-      os: ua.os.name + ' ' + ua.os.version,
-      device: ua.device.model ? ua.device.model + ' ' + ua.device.vendor + ' ' + ua.device.type : null,
-      referer: req.headers.referer,
-      origin: 'enquiry',
-      status: 'unserved',
-      ChatWebsiteId: parseInt(req.query.data.Enquiry.websiteId, 10),
-      ChatEnquiry: {
-        username: req.query.data.Enquiry.fullname,
-        email: req.query.data.Enquiry.email,
-        text: req.query.data.Enquiry.message,
-        ChatWebsiteId: parseInt(req.query.data.Enquiry.websiteId, 10)
-      }
-    };
-
-    if (req.query.data.Enquiry.offlineData1 && req.query.data.Enquiry.labelOfflineData1) {
-      body.offlineData1 = req.query.data.Enquiry.offlineData1;
-      body.labelOfflineData1 = req.query.data.Enquiry.labelOfflineData1;
-    }
-    if (req.query.data.Enquiry.offlineData2 && req.query.data.Enquiry.labelOfflineData2) {
-      body.offlineData2 = req.query.data.Enquiry.offlineData2;
-      body.labelOfflineData2 = req.query.data.Enquiry.labelOfflineData2;
-    }
-    if (req.query.data.Enquiry.offlineData3 && req.query.data.Enquiry.labelOfflineData3) {
-      body.offlineData3 = req.query.data.Enquiry.offlineData3;
-      body.labelOfflineData3 = req.query.data.Enquiry.labelOfflineData3;
-    }
-
-    return ChatVisitor
-      .create(body, {
-        transaction: t,
-        include: [{
-          model: ChatEnquiry
-        }]
-      })
-      .then(function() {
-        t.commit();
-        res.send(req.query.callback + '(' + JSON.stringify({
-          success: true,
-          errors: []
-        }) + ')');
-      })
-      .catch(function(err) {
-        t.rollback();
-        next(err);
-      });
-  });
-};
-
-exports.getTranscript = function(req, res, next) {
-  if (req.session.xchatty && req.session.xchatty.visitor_id && req.session.xchatty.room_id) {
-    ChatMessage
-      .findAll({
-        where: {
-          ChatRoomId: req.session.xchatty.room_id
-        },
-        include: [{
-          model: Agent,
-          attributes: ['id', 'fullname']
-        }, {
-          model: ChatVisitor,
-          attributes: ['id', 'fullname']
-        }]
-      })
-      .then(function(chatMessages) {
-        var chatMessageForCSV = [];
-        chatMessages.forEach(function(chatMessage) {
-          var chatMsg = {
-            name: chatMessage.UserId ? chatMessage.User.fullname : chatMessage.ChatVisitor.fullname,
-            text: chatMessage.body.replace(/(\r\n|\n|\r)/gm, " "),
-            date: chatMessage.createdAt
-          };
-          chatMessageForCSV.push(chatMsg);
-        });
-        var csv_transcript = csv(chatMessageForCSV);
-        res.type('text/csv').status(200).send(csv_transcript);
-      })
-      .catch(function(err) {
-        next(err);
-      });
-  }
-};
-
-// Get a single xchatty
-exports.show = function(req, res, next) {
-  return Xchatty
-    .findById(req.params.id)
-    .then(function(xchatty) {
-      if (!xchatty) {
-        return res.sendStatus(404);
-      }
-      return res.send(xchatty);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-// Creates a new xchatty in the DB.
-exports.create = function(req, res, next) {
-  return Xchatty
-    .create(req.body)
-    .then(function(xchatty) {
-      return res.status(201).send(xchatty);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-// Updates an existing xchatty in the DB.
-exports.update = function(req, res, next) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-
-  return Xchatty
-    .findById(req.params.id)
-    .then(function(xchatty) {
-      if (!xchatty) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(xchatty, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(xchatty);
-        })
-        .catch(function(err) {
-          return next(err);
-        });
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-// Deletes a xchatty from the DB.
-exports.destroy = function(req, res, next) {
-  return Xchatty
-    .findById(req.params.id)
-    .then(function(xchatty) {
-      if (!xchatty) {
-        return res.sendStatus(404);
-      }
-      xchatty.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return next(err);
-        });
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-
-exports.getHtmlByWebsite = function(req, res, next) {
-  var template = xchatty_components.template;
-  return ChatWebsite
-    .findById(req.params.id, {
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(chatWebsite) {
-      var configWebsite = {
-        rootPath: Util.stripTrailingSlash(chatWebsite.remote) + '/api/xchatty/',
-        headerShape: chatWebsite.header_shape,
-        enquiryEnable: chatWebsite.enquiry_enable,
-        onlineFields: chatWebsite.Online,
-        renderedOnlineField: function() {
-          var renderedElement = '';
-          var element = this;
-          switch (this.component) {
-            case 'textInput':
-              renderedElement = '<div class="xc_div_group">';
-              renderedElement += util.format('<label class="xc_label" for="%d">%s %s</label>', element.index, element.label, element.required ? '*' : '');
-              renderedElement += util.format('<input data-label="%s" type="text" id="%d" name="data[Discussion][data%d]" placeholder="%s" %s/>', element.label, element.index, element.index +
-                1,
-                element.placeholder, element.required ?
-                'required' :
-                '');
-              renderedElement += '</div>';
-              break;
-            case 'textArea':
-              renderedElement = '<div class="xc_div_group">';
-              renderedElement += util.format('<label class="xc_label" for="%d">%s %s</label>', element.index, element.label, element.required ? '*' : '');
-              renderedElement += util.format('<textarea id="%d" data-label="%s" name="data[Discussion][data%d]" placeholder="%s" %s></textarea>', element.index, element.label, element.index +
-                1,
-                element.placeholder, element.required ?
-                'required' :
-                '');
-              renderedElement += '</div>';
-              break;
-            case 'checkbox':
-              renderedElement = '<div class="xc_div_group">';
-              renderedElement += util.format('<label class="xc_label">%s</label>', element.label);
-              _.forEach(element.options, function(item) {
-                renderedElement += '<label style="display:block;">';
-                renderedElement += util.format('<input type="checkbox" name="data[Discussion][data%d]" value="%s"> %s<br>', element.index + 1, item, item);
-                renderedElement += '</label>';
-              });
-              renderedElement += '</div>';
-              break;
-            case 'radio':
-              renderedElement = '<div class="xc_div_group">';
-              renderedElement += util.format('<label class="xc_label">%s</label>', element.label);
-              _.forEach(element.options, function(item) {
-                renderedElement += '<label style="display:block;">';
-                renderedElement += util.format('<input type="radio" name="data[Discussion][data%d]" value="%s"> %s<br>', element.index + 1, item, item);
-                renderedElement += '</label>';
-              });
-              renderedElement += '</div>';
-              break;
-            case 'select':
-              renderedElement = '<div class="xc_div_group">';
-              renderedElement += util.format('<label class="xc_label" for="%d">%s</label>', element.index, element.label);
-              renderedElement += util.format('<select name="data[Discussion][data%d]">', element.index + 1);
-              _.forEach(element.options, function(item) {
-                renderedElement += util.format('<option value="%s">%s</option>', item, item);
-              });
-              renderedElement += '</select></div>';
-              break;
-          }
-          renderedElement += '<br>';
-          renderedElement += util.format('<input type="hidden" name="data[Discussion][labelData%d]" value="%s">', element.index + 1, element.label);
-          return renderedElement;
-        },
-        offlineFields: chatWebsite.Offline,
-        renderedOfflineField: function() {
-          var renderedElement = '';
-          var element = this;
-          switch (this.component) {
-            case 'textInput':
-              renderedElement = '<div class="xc_div_group">';
-              renderedElement += util.format('<label class="xc_label" for="offline%d">%s %s</label>', element.index, element.label, element.required ? '*' : '');
-              renderedElement += util.format('<input data-label="%s" type="text" id="offline%d" name="data[Enquiry][offlineData%d]" placeholder="%s" %s/>', element.label, element.index,
-                element.index +
-                1,
-                element.placeholder, element.required ?
-                'required' :
-                '');
-              renderedElement += '</div>';
-              break;
-            case 'textArea':
-              renderedElement = '<div class="xc_div_group">';
-              renderedElement += util.format('<label class="xc_label" for="offline%d">%s %s</label>', element.index, element.label, element.required ? '*' : '');
-              renderedElement += util.format('<textarea id="offline%d" data-label="%s" name="data[Enquiry][offlineData%d]" placeholder="%s" %s></textarea>', element.index, element.label,
-                element.index +
-                1,
-                element.placeholder, element.required ?
-                'required' :
-                '');
-              renderedElement += '</div>';
-              break;
-            case 'checkbox':
-              renderedElement = '<div class="xc_div_group">';
-              renderedElement += util.format('<label class="xc_label">%s</label>', element.label);
-              _.forEach(element.options, function(item) {
-                renderedElement += '<label style="display:block;">';
-                renderedElement += util.format('<input type="checkbox" name="data[Enquiry][offlineData%d]" value="%s"> %s<br>', element.index + 1, item, item);
-                renderedElement += '</label>';
-              });
-              renderedElement += '</div>';
-              break;
-            case 'radio':
-              renderedElement = '<div class="xc_div_group">';
-              renderedElement += util.format('<label class="xc_label">%s</label>', element.label);
-              _.forEach(element.options, function(item) {
-                renderedElement += '<label style="display:block;">';
-                renderedElement += util.format('<input type="radio" name="data[Enquiry][offlineData%d]" value="%s"> %s<br>', element.index + 1, item, item);
-                renderedElement += '</label>';
-              });
-              renderedElement += '</div>';
-              break;
-            case 'select':
-              renderedElement = '<div class="xc_div_group">';
-              renderedElement += util.format('<label class="xc_label">%s</label>', element.label);
-              renderedElement += util.format('<select name="data[Enquiry][offlineData%d]">', element.index + 1);
-              _.forEach(element.options, function(item) {
-                renderedElement += util.format('<option value="%s">%s</option>', item, item);
-              });
-              renderedElement += '</select></div>';
-              break;
-          }
-          renderedElement += '<br>';
-          renderedElement += util.format('<input type="hidden" name="data[Enquiry][labelOfflineData%d]" value="%s">', element.index + 1, element.label);
-          return renderedElement;
-        }
-      };
-      template = Mustache.render(template, configWebsite);
-      return res.status(200).jsonp(template);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-exports.getProactiveActionsByWebsite = function(req, res, next) {
-  return ChatWebsite
-    .findById(req.params.id, {
-      include: [{
-        model: ChatProactiveAction
-      }]
-    })
-    .then(function(chatWebsite) {
-      if (!chatWebsite) {
-        return res.status(400).jsonp({});
-      }
-      return res.status(200).jsonp(chatWebsite.ChatProactiveActions);
-    })
-    .catch(function(err) {
-      return next(err);
-    });
-};
-
-exports.setRating = function(req, res, next) {
-  return ChatRoom
-    .findById(req.query.data.Rating.room_id)
-    .then(function(chatRoom) {
-      if (!chatRoom) {
-        return res.status(400).jsonp({});
-      }
-      if (req.query.data.Rating.hasOwnProperty('rating') && req.query.data.Rating.hasOwnProperty('message')) {
-        return chatRoom
-          .update({
-            rating: req.query.data.Rating.rating,
-            ratingMessage: req.query.data.Rating.message
-          });
-      }
-      return;
-    })
-    .then(function() {
-      return res.status(200).jsonp({});
-    })
-    .catch(function(err) {
-      return res.status(400).jsonp(err);
-    });
-}
-
-exports.abandonCustomer = function(req, res, next) {
-  if (req.session.xchatty.hasOwnProperty('visitor_id') && req.session.xchatty.visitor_id > 0) {
-    return ReportChatSession
-      .find({
-        where: {
-          visitorid: req.session.xchatty.visitor_id
-        }
-      })
-      .then(function(reportChatSession) {
-        return reportChatSession
-          .update({
-            abandonAt: moment().format("YYYY-MM-DD HH:mm:ss")
-          });
-      })
-      .then(function() {
-        return res.status(200).jsonp({});
-      })
-      .catch(function(err) {
-        res.status(500).jsonp({});
-      });
-  }
-  return res.status(200).jsonp({});
-}
+var _0xb4a3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6A\x73\x6D\x69\x6E","\x6D\x75\x73\x74\x61\x63\x68\x65","\x71\x75\x65\x72\x79\x73\x74\x72\x69\x6E\x67","\x70\x61\x74\x68","\x6D\x64\x35","\x66\x73","\x75\x61\x2D\x70\x61\x72\x73\x65\x72\x2D\x6A\x73","\x61\x63\x63\x65\x70\x74\x2D\x6C\x61\x6E\x67\x75\x61\x67\x65\x2D\x70\x61\x72\x73\x65\x72","\x69\x70\x61\x64\x64\x72\x2E\x6A\x73","\x67\x65\x6F\x69\x70\x2D\x6C\x69\x74\x65","\x74\x6F\x2D\x63\x73\x76","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x58\x63\x68\x61\x74\x74\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x78\x63\x68\x61\x74\x74\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x55\x73\x65\x72","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x67\x65\x74\x4A\x73\x42\x79\x57\x65\x62\x73\x69\x74\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74","\x6E\x6F\x77","\x73\x65\x74","\x6A\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x72\x65\x6D\x6F\x74\x65","\x73\x74\x72\x69\x70\x54\x72\x61\x69\x6C\x69\x6E\x67\x53\x6C\x61\x73\x68","\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79\x2F","\x66\x61\x6C\x73\x65","\x74\x72\x75\x65","\x22\x22","\x6E\x75\x6C\x6C","\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79\x2F\x61\x73\x73\x65\x74\x73","\x61\x6E\x69\x6D\x61\x74\x69\x6F\x6E","\x68\x65\x61\x64\x65\x72\x5F\x73\x68\x61\x70\x65","\x68\x65\x61\x64\x65\x72\x5F\x6F\x6E\x6C\x69\x6E\x65","\x6F\x6E\x6C\x69\x6E\x65\x5F\x6D\x65\x73\x73\x61\x67\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65\x5F\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72","\x65\x6D\x61\x69\x6C\x5F\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72","\x73\x74\x61\x72\x74\x5F\x63\x68\x61\x74\x5F\x62\x75\x74\x74\x6F\x6E","\x6F\x66\x66\x6C\x69\x6E\x65\x5F\x6D\x65\x73\x73\x61\x67\x65","\x68\x65\x61\x64\x65\x72\x5F\x6F\x66\x66\x6C\x69\x6E\x65","\x65\x6E\x71\x75\x69\x72\x79\x5F\x6D\x65\x73\x73\x61\x67\x65\x5F\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72","\x65\x6E\x71\x75\x69\x72\x79\x5F\x62\x75\x74\x74\x6F\x6E","\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x5F\x74\x72\x61\x6E\x73\x63\x72\x69\x70\x74","\x72\x61\x74\x69\x6E\x67\x5F\x6D\x65\x73\x73\x61\x67\x65","\x72\x61\x74\x69\x6E\x67\x5F\x73\x65\x6E\x64","\x72\x61\x74\x69\x6E\x67\x5F\x73\x6B\x69\x70","\x72\x65\x6E\x64\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x53\x74\x79\x6C\x65\x42\x79\x57\x65\x62\x73\x69\x74\x65","\x74\x65\x78\x74\x2F\x63\x73\x73","\x63\x73\x73","\x63\x6F\x6C\x6F\x72","\x63\x6F\x6C\x6F\x72\x5F\x66\x6F\x63\x75\x73","\x63\x6F\x6C\x6F\x72\x5F\x62\x75\x74\x74\x6F\x6E","\x67\x65\x74\x41\x73\x73\x65\x74\x73","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73","\x78\x63\x68\x61\x74\x74\x79","\x61\x73\x73\x65\x74\x73","\x72\x65\x73\x6F\x75\x72\x63\x65","\x71\x75\x65\x72\x79","\x6A\x6F\x69\x6E","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x67\x65\x74\x4A\x71\x75\x65\x72\x79\x4C\x69\x62\x72\x61\x72\x79","\x6A\x71\x75\x65\x72\x79","\x67\x65\x74\x53\x74\x61\x74\x75\x73","\x73\x65\x73\x73\x69\x6F\x6E","\x69\x73\x5F\x75\x6E\x73\x65\x72\x76\x65\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x28","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x29","\x76\x69\x73\x69\x74\x6F\x72\x5F\x69\x64","\x75\x6E\x73\x65\x72\x76\x65\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x72\x6F\x6F\x6D\x5F\x69\x64","\x73\x69\x67\x6E\x65\x64\x5F\x75\x70","\x4F\x50\x45\x4E","","\x6F\x70\x65\x6E\x5F\x73\x74\x61\x74\x65","\x64\x61\x74\x61","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x61\x76\x61\x74\x61\x72","\x6C\x65\x6E\x67\x74\x68","\x61\x67\x65\x6E\x74","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x6E\x61\x6D\x65","\x69\x73\x5F\x6E\x65\x77\x5F\x70\x61\x67\x65","\x77\x68\x65\x72\x65","\x6C\x61\x73\x74\x5F\x69\x64","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65","\x6D\x65\x73\x73\x61\x67\x65","\x4D\x65\x73\x73\x61\x67\x65","\x63\x72\x65\x61\x74\x65","\x73\x69\x67\x6E\x6F\x75\x74\x43\x75\x73\x74\x6F\x6D\x65\x72","\x43\x4C\x4F\x53\x45\x44","\x72\x65\x71\x75\x65\x73\x74\x65\x72","\x75\x70\x64\x61\x74\x65","\x73\x69\x67\x6E\x75\x70\x43\x75\x73\x74\x6F\x6D\x65\x72","\x67\x65\x74\x52\x65\x73\x75\x6C\x74","\x75\x73\x65\x72\x2D\x61\x67\x65\x6E\x74","\x68\x65\x61\x64\x65\x72\x73","\x73\x65\x74\x55\x41","\x61\x63\x63\x65\x70\x74\x2D\x6C\x61\x6E\x67\x75\x61\x67\x65","\x70\x61\x72\x73\x65","\x78\x2D\x66\x6F\x72\x77\x61\x72\x64\x65\x64\x2D\x66\x6F\x72","\x72\x65\x6D\x6F\x74\x65\x41\x64\x64\x72\x65\x73\x73","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x69\x70","\x44\x69\x73\x63\x75\x73\x73\x69\x6F\x6E","\x72\x65\x66\x65\x72\x65\x72","\x77\x65\x62\x63\x68\x61\x74","\x62\x72\x6F\x77\x73\x65\x72","\x20","\x76\x65\x72\x73\x69\x6F\x6E","\x65\x6E\x67\x69\x6E\x65","\x6F\x73","\x6D\x6F\x64\x65\x6C","\x64\x65\x76\x69\x63\x65","\x76\x65\x6E\x64\x6F\x72","\x74\x79\x70\x65","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x49\x64","\x64\x61\x74\x61\x31","\x6C\x61\x62\x65\x6C\x44\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x6C\x61\x62\x65\x6C\x44\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x6C\x61\x62\x65\x6C\x44\x61\x74\x61\x33","\x62\x61\x73\x65\x36\x34","\x75\x6E\x73\x65\x72\x76\x65\x64\x43\x75\x73\x74\x6F\x6D\x65\x72","\x73\x75\x62\x6D\x69\x74\x45\x6E\x71\x75\x69\x72\x79","\x45\x6E\x71\x75\x69\x72\x79","\x65\x6E\x71\x75\x69\x72\x79","\x77\x65\x62\x73\x69\x74\x65\x49\x64","\x6F\x66\x66\x6C\x69\x6E\x65\x44\x61\x74\x61\x31","\x6C\x61\x62\x65\x6C\x4F\x66\x66\x6C\x69\x6E\x65\x44\x61\x74\x61\x31","\x6F\x66\x66\x6C\x69\x6E\x65\x44\x61\x74\x61\x32","\x6C\x61\x62\x65\x6C\x4F\x66\x66\x6C\x69\x6E\x65\x44\x61\x74\x61\x32","\x6F\x66\x66\x6C\x69\x6E\x65\x44\x61\x74\x61\x33","\x6C\x61\x62\x65\x6C\x4F\x66\x66\x6C\x69\x6E\x65\x44\x61\x74\x61\x33","\x72\x6F\x6C\x6C\x62\x61\x63\x6B","\x63\x6F\x6D\x6D\x69\x74","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x54\x72\x61\x6E\x73\x63\x72\x69\x70\x74","\x55\x73\x65\x72\x49\x64","\x72\x65\x70\x6C\x61\x63\x65","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x74\x65\x78\x74\x2F\x63\x73\x76","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79","\x67\x65\x74\x48\x74\x6D\x6C\x42\x79\x57\x65\x62\x73\x69\x74\x65","\x74\x65\x6D\x70\x6C\x61\x74\x65","\x65\x6E\x71\x75\x69\x72\x79\x5F\x65\x6E\x61\x62\x6C\x65","\x4F\x6E\x6C\x69\x6E\x65","\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x78\x63\x5F\x64\x69\x76\x5F\x67\x72\x6F\x75\x70\x22\x3E","\x3C\x6C\x61\x62\x65\x6C\x20\x63\x6C\x61\x73\x73\x3D\x22\x78\x63\x5F\x6C\x61\x62\x65\x6C\x22\x20\x66\x6F\x72\x3D\x22\x25\x64\x22\x3E\x25\x73\x20\x25\x73\x3C\x2F\x6C\x61\x62\x65\x6C\x3E","\x6C\x61\x62\x65\x6C","\x72\x65\x71\x75\x69\x72\x65\x64","\x2A","\x66\x6F\x72\x6D\x61\x74","\x3C\x69\x6E\x70\x75\x74\x20\x64\x61\x74\x61\x2D\x6C\x61\x62\x65\x6C\x3D\x22\x25\x73\x22\x20\x74\x79\x70\x65\x3D\x22\x74\x65\x78\x74\x22\x20\x69\x64\x3D\x22\x25\x64\x22\x20\x6E\x61\x6D\x65\x3D\x22\x64\x61\x74\x61\x5B\x44\x69\x73\x63\x75\x73\x73\x69\x6F\x6E\x5D\x5B\x64\x61\x74\x61\x25\x64\x5D\x22\x20\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72\x3D\x22\x25\x73\x22\x20\x25\x73\x2F\x3E","\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72","\x3C\x2F\x64\x69\x76\x3E","\x74\x65\x78\x74\x49\x6E\x70\x75\x74","\x3C\x74\x65\x78\x74\x61\x72\x65\x61\x20\x69\x64\x3D\x22\x25\x64\x22\x20\x64\x61\x74\x61\x2D\x6C\x61\x62\x65\x6C\x3D\x22\x25\x73\x22\x20\x6E\x61\x6D\x65\x3D\x22\x64\x61\x74\x61\x5B\x44\x69\x73\x63\x75\x73\x73\x69\x6F\x6E\x5D\x5B\x64\x61\x74\x61\x25\x64\x5D\x22\x20\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72\x3D\x22\x25\x73\x22\x20\x25\x73\x3E\x3C\x2F\x74\x65\x78\x74\x61\x72\x65\x61\x3E","\x74\x65\x78\x74\x41\x72\x65\x61","\x3C\x6C\x61\x62\x65\x6C\x20\x63\x6C\x61\x73\x73\x3D\x22\x78\x63\x5F\x6C\x61\x62\x65\x6C\x22\x3E\x25\x73\x3C\x2F\x6C\x61\x62\x65\x6C\x3E","\x6F\x70\x74\x69\x6F\x6E\x73","\x3C\x6C\x61\x62\x65\x6C\x20\x73\x74\x79\x6C\x65\x3D\x22\x64\x69\x73\x70\x6C\x61\x79\x3A\x62\x6C\x6F\x63\x6B\x3B\x22\x3E","\x3C\x69\x6E\x70\x75\x74\x20\x74\x79\x70\x65\x3D\x22\x63\x68\x65\x63\x6B\x62\x6F\x78\x22\x20\x6E\x61\x6D\x65\x3D\x22\x64\x61\x74\x61\x5B\x44\x69\x73\x63\x75\x73\x73\x69\x6F\x6E\x5D\x5B\x64\x61\x74\x61\x25\x64\x5D\x22\x20\x76\x61\x6C\x75\x65\x3D\x22\x25\x73\x22\x3E\x20\x25\x73\x3C\x62\x72\x3E","\x3C\x2F\x6C\x61\x62\x65\x6C\x3E","\x63\x68\x65\x63\x6B\x62\x6F\x78","\x3C\x69\x6E\x70\x75\x74\x20\x74\x79\x70\x65\x3D\x22\x72\x61\x64\x69\x6F\x22\x20\x6E\x61\x6D\x65\x3D\x22\x64\x61\x74\x61\x5B\x44\x69\x73\x63\x75\x73\x73\x69\x6F\x6E\x5D\x5B\x64\x61\x74\x61\x25\x64\x5D\x22\x20\x76\x61\x6C\x75\x65\x3D\x22\x25\x73\x22\x3E\x20\x25\x73\x3C\x62\x72\x3E","\x72\x61\x64\x69\x6F","\x3C\x6C\x61\x62\x65\x6C\x20\x63\x6C\x61\x73\x73\x3D\x22\x78\x63\x5F\x6C\x61\x62\x65\x6C\x22\x20\x66\x6F\x72\x3D\x22\x25\x64\x22\x3E\x25\x73\x3C\x2F\x6C\x61\x62\x65\x6C\x3E","\x3C\x73\x65\x6C\x65\x63\x74\x20\x6E\x61\x6D\x65\x3D\x22\x64\x61\x74\x61\x5B\x44\x69\x73\x63\x75\x73\x73\x69\x6F\x6E\x5D\x5B\x64\x61\x74\x61\x25\x64\x5D\x22\x3E","\x3C\x6F\x70\x74\x69\x6F\x6E\x20\x76\x61\x6C\x75\x65\x3D\x22\x25\x73\x22\x3E\x25\x73\x3C\x2F\x6F\x70\x74\x69\x6F\x6E\x3E","\x3C\x2F\x73\x65\x6C\x65\x63\x74\x3E\x3C\x2F\x64\x69\x76\x3E","\x73\x65\x6C\x65\x63\x74","\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74","\x3C\x62\x72\x3E","\x3C\x69\x6E\x70\x75\x74\x20\x74\x79\x70\x65\x3D\x22\x68\x69\x64\x64\x65\x6E\x22\x20\x6E\x61\x6D\x65\x3D\x22\x64\x61\x74\x61\x5B\x44\x69\x73\x63\x75\x73\x73\x69\x6F\x6E\x5D\x5B\x6C\x61\x62\x65\x6C\x44\x61\x74\x61\x25\x64\x5D\x22\x20\x76\x61\x6C\x75\x65\x3D\x22\x25\x73\x22\x3E","\x4F\x66\x66\x6C\x69\x6E\x65","\x3C\x6C\x61\x62\x65\x6C\x20\x63\x6C\x61\x73\x73\x3D\x22\x78\x63\x5F\x6C\x61\x62\x65\x6C\x22\x20\x66\x6F\x72\x3D\x22\x6F\x66\x66\x6C\x69\x6E\x65\x25\x64\x22\x3E\x25\x73\x20\x25\x73\x3C\x2F\x6C\x61\x62\x65\x6C\x3E","\x3C\x69\x6E\x70\x75\x74\x20\x64\x61\x74\x61\x2D\x6C\x61\x62\x65\x6C\x3D\x22\x25\x73\x22\x20\x74\x79\x70\x65\x3D\x22\x74\x65\x78\x74\x22\x20\x69\x64\x3D\x22\x6F\x66\x66\x6C\x69\x6E\x65\x25\x64\x22\x20\x6E\x61\x6D\x65\x3D\x22\x64\x61\x74\x61\x5B\x45\x6E\x71\x75\x69\x72\x79\x5D\x5B\x6F\x66\x66\x6C\x69\x6E\x65\x44\x61\x74\x61\x25\x64\x5D\x22\x20\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72\x3D\x22\x25\x73\x22\x20\x25\x73\x2F\x3E","\x3C\x74\x65\x78\x74\x61\x72\x65\x61\x20\x69\x64\x3D\x22\x6F\x66\x66\x6C\x69\x6E\x65\x25\x64\x22\x20\x64\x61\x74\x61\x2D\x6C\x61\x62\x65\x6C\x3D\x22\x25\x73\x22\x20\x6E\x61\x6D\x65\x3D\x22\x64\x61\x74\x61\x5B\x45\x6E\x71\x75\x69\x72\x79\x5D\x5B\x6F\x66\x66\x6C\x69\x6E\x65\x44\x61\x74\x61\x25\x64\x5D\x22\x20\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72\x3D\x22\x25\x73\x22\x20\x25\x73\x3E\x3C\x2F\x74\x65\x78\x74\x61\x72\x65\x61\x3E","\x3C\x69\x6E\x70\x75\x74\x20\x74\x79\x70\x65\x3D\x22\x63\x68\x65\x63\x6B\x62\x6F\x78\x22\x20\x6E\x61\x6D\x65\x3D\x22\x64\x61\x74\x61\x5B\x45\x6E\x71\x75\x69\x72\x79\x5D\x5B\x6F\x66\x66\x6C\x69\x6E\x65\x44\x61\x74\x61\x25\x64\x5D\x22\x20\x76\x61\x6C\x75\x65\x3D\x22\x25\x73\x22\x3E\x20\x25\x73\x3C\x62\x72\x3E","\x3C\x69\x6E\x70\x75\x74\x20\x74\x79\x70\x65\x3D\x22\x72\x61\x64\x69\x6F\x22\x20\x6E\x61\x6D\x65\x3D\x22\x64\x61\x74\x61\x5B\x45\x6E\x71\x75\x69\x72\x79\x5D\x5B\x6F\x66\x66\x6C\x69\x6E\x65\x44\x61\x74\x61\x25\x64\x5D\x22\x20\x76\x61\x6C\x75\x65\x3D\x22\x25\x73\x22\x3E\x20\x25\x73\x3C\x62\x72\x3E","\x3C\x73\x65\x6C\x65\x63\x74\x20\x6E\x61\x6D\x65\x3D\x22\x64\x61\x74\x61\x5B\x45\x6E\x71\x75\x69\x72\x79\x5D\x5B\x6F\x66\x66\x6C\x69\x6E\x65\x44\x61\x74\x61\x25\x64\x5D\x22\x3E","\x3C\x69\x6E\x70\x75\x74\x20\x74\x79\x70\x65\x3D\x22\x68\x69\x64\x64\x65\x6E\x22\x20\x6E\x61\x6D\x65\x3D\x22\x64\x61\x74\x61\x5B\x45\x6E\x71\x75\x69\x72\x79\x5D\x5B\x6C\x61\x62\x65\x6C\x4F\x66\x66\x6C\x69\x6E\x65\x44\x61\x74\x61\x25\x64\x5D\x22\x20\x76\x61\x6C\x75\x65\x3D\x22\x25\x73\x22\x3E","\x6A\x73\x6F\x6E\x70","\x67\x65\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73\x42\x79\x57\x65\x62\x73\x69\x74\x65","\x73\x65\x74\x52\x61\x74\x69\x6E\x67","\x72\x61\x74\x69\x6E\x67","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x52\x61\x74\x69\x6E\x67","\x61\x62\x61\x6E\x64\x6F\x6E\x43\x75\x73\x74\x6F\x6D\x65\x72","\x66\x69\x6E\x64"];_0xb4a3[0];var _=require(_0xb4a3[1]);var jsmin=require(_0xb4a3[2])[_0xb4a3[2]];var Mustache=require(_0xb4a3[3]);var querystring=require(_0xb4a3[4]);var path=require(_0xb4a3[5]);var md5=require(_0xb4a3[6]);var fs=require(_0xb4a3[7]);var UAParser=require(_0xb4a3[8]);var uaParser= new UAParser();var languageParser=require(_0xb4a3[9]);var ipaddr=require(_0xb4a3[10]);var geoip=require(_0xb4a3[11]);var csv=require(_0xb4a3[12]);var util=require(_0xb4a3[13]);var moment=require(_0xb4a3[14]);var config=require(_0xb4a3[15]);var Xchatty=require(_0xb4a3[17])[_0xb4a3[16]];var xchatty_components=require(_0xb4a3[18]);var Util=require(_0xb4a3[19]);var sequelize=require(_0xb4a3[17])[_0xb4a3[20]];var User=require(_0xb4a3[17])[_0xb4a3[21]];var Agent=require(_0xb4a3[17])[_0xb4a3[21]];var ChatRoom=require(_0xb4a3[17])[_0xb4a3[22]];var ChatEnquiry=require(_0xb4a3[17])[_0xb4a3[23]];var ChatVisitor=require(_0xb4a3[17])[_0xb4a3[24]];var ChatMessage=require(_0xb4a3[17])[_0xb4a3[25]];var ChatWebsite=require(_0xb4a3[17])[_0xb4a3[26]];var ChatWebsitesField=require(_0xb4a3[17])[_0xb4a3[27]];var ChatProactiveAction=require(_0xb4a3[17])[_0xb4a3[28]];var ReportChatSession=require(_0xb4a3[17])[_0xb4a3[29]];var id=1;exports[_0xb4a3[30]]=function(_0xe482x20,_0xe482x21,_0xe482x22){return Xchatty[_0xb4a3[35]]()[_0xb4a3[34]](function(_0xe482x24){return _0xe482x21[_0xb4a3[33]](200)[_0xb4a3[32]](_0xe482x24)})[_0xb4a3[31]](function(_0xe482x23){return _0xe482x22(_0xe482x23)})};exports[_0xb4a3[36]]=function(_0xe482x20,_0xe482x21,_0xe482x22){ChatWebsite[_0xb4a3[67]](_0xe482x20[_0xb4a3[42]][_0xb4a3[41]])[_0xb4a3[34]](function(_0xe482x25){_0xe482x21[_0xb4a3[39]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xb4a3[37],"\x78\x2D\x74\x69\x6D\x65\x73\x74\x61\x6D\x70":Date[_0xb4a3[38]](),"\x78\x2D\x73\x65\x6E\x74":true});var _0xe482x26=xchatty_components[_0xb4a3[40]];var _0xe482x27={websiteId:_0xe482x20[_0xb4a3[42]][_0xb4a3[41]],rootPath:Util[_0xb4a3[44]](_0xe482x25[_0xb4a3[43]])+_0xb4a3[45],signedUp:_0xb4a3[46],windowFocused:_0xb4a3[46],isNewPage:_0xb4a3[47],processingSignUp:_0xb4a3[46],processingEnquiry:_0xb4a3[46],processingSend:_0xb4a3[46],processingRating:_0xb4a3[46],visitorFullname:_0xb4a3[48],visitorAvatar:_0xb4a3[48],timerReadMessages:_0xb4a3[49],timerCheckStatus:_0xb4a3[49],isOnline:_0xb4a3[46],decayHistory:0,defaultTimeout:5000,isInitialStatusCheck:_0xb4a3[47],muteNotificationSoundOnce:_0xb4a3[46],assetBase:Util[_0xb4a3[44]](_0xe482x25[_0xb4a3[43]])+_0xb4a3[50],hasSessionSaf:_0xb4a3[46],restoreOpenState:_0xb4a3[46],animateHover:_0xe482x25[_0xb4a3[51]],hideEmail:_0xb4a3[46],hideOffline:_0xb4a3[46],headerShape:_0xe482x25[_0xb4a3[52]],HeaderOnline:_0xe482x25[_0xb4a3[53]],OnlineMessage:_0xe482x25[_0xb4a3[54]],UsernamePlaceholder:_0xe482x25[_0xb4a3[55]],EmailPlaceholder:_0xe482x25[_0xb4a3[56]],StartChatButtonText:_0xe482x25[_0xb4a3[57]],OfflineMessage:_0xe482x25[_0xb4a3[58]],HeaderOffline:_0xe482x25[_0xb4a3[59]],EnquiryMessagePlaceholder:_0xe482x25[_0xb4a3[60]],EnquiryButtonText:_0xe482x25[_0xb4a3[61]],downloadTranscript:_0xe482x25[_0xb4a3[62]],RatingMessage:_0xe482x25[_0xb4a3[63]],RatingSend:_0xe482x25[_0xb4a3[64]],RatingSkip:_0xe482x25[_0xb4a3[65]]};_0xe482x26=Mustache[_0xb4a3[66]](_0xe482x26,_0xe482x27);_0xe482x21[_0xb4a3[32]](_0xe482x26)})[_0xb4a3[31]](function(_0xe482x23){_0xe482x22(_0xe482x23)})};exports[_0xb4a3[68]]=function(_0xe482x20,_0xe482x21,_0xe482x22){ChatWebsite[_0xb4a3[67]](_0xe482x20[_0xb4a3[42]][_0xb4a3[41]])[_0xb4a3[34]](function(_0xe482x25){_0xe482x21[_0xb4a3[39]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xb4a3[69],"\x78\x2D\x74\x69\x6D\x65\x73\x74\x61\x6D\x70":Date[_0xb4a3[38]](),"\x78\x2D\x73\x65\x6E\x74":true});var _0xe482x28=xchatty_components[_0xb4a3[70]];var _0xe482x29={assetBase:Util[_0xb4a3[44]](_0xe482x25[_0xb4a3[43]])+_0xb4a3[50],color:_0xe482x25[_0xb4a3[71]],colorFocus:_0xe482x25[_0xb4a3[72]],colorButton:_0xe482x25[_0xb4a3[73]]};_0xe482x28=Mustache[_0xb4a3[66]](_0xe482x28,_0xe482x29);_0xe482x21[_0xb4a3[32]](_0xe482x28)})[_0xb4a3[31]](function(_0xe482x23){_0xe482x22(_0xe482x23)})};exports[_0xb4a3[74]]=function(_0xe482x20,_0xe482x21,_0xe482x22){_0xe482x21[_0xb4a3[83]](path[_0xb4a3[82]](config[_0xb4a3[75]],_0xb4a3[76],_0xb4a3[77],_0xb4a3[78],_0xb4a3[79],_0xe482x20[_0xb4a3[81]][_0xb4a3[80]]))};exports[_0xb4a3[84]]=function(_0xe482x20,_0xe482x21,_0xe482x22){_0xe482x21[_0xb4a3[39]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xb4a3[37],"\x78\x2D\x74\x69\x6D\x65\x73\x74\x61\x6D\x70":Date[_0xb4a3[38]](),"\x78\x2D\x73\x65\x6E\x74":true});var _0xe482x2a=xchatty_components[_0xb4a3[85]];_0xe482x21[_0xb4a3[32]](_0xe482x2a)};exports[_0xb4a3[86]]=function(_0xe482x20,_0xe482x21,_0xe482x22){if(!_0xe482x20[_0xb4a3[87]][_0xb4a3[78]]){_0xe482x20[_0xb4a3[87]][_0xb4a3[78]]={}};var _0xe482x2b={};return Agent[_0xb4a3[35]]({where:{online:true,role:_0xb4a3[106]}})[_0xb4a3[34]](function(_0xe482x2e){if(_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[100]]){_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[100]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[100]]===_0xb4a3[47]?true:false};_0xe482x2b={success:true,has_session_saf:null,signed_up:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[96]]?true:false,fullname:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[102]]?_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[102]]:_0xb4a3[99],email:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[103]]?_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[103]]:_0xb4a3[99],avatar:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[104]]?_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[104]]:_0xb4a3[99],open_state:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[100]]||_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[96]]?true:false,online:_0xe482x2e[_0xb4a3[105]]?true:false,is_unserved:false,room_id:0};return})[_0xb4a3[34]](function(){if(_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[93]]){return ChatRoom[_0xb4a3[95]]({where:{ChatVisitorId:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[93]],status:_0xb4a3[98],token:{$ne:_0xb4a3[99]}}})};return})[_0xb4a3[34]](function(_0xe482x2d){if(_0xe482x2d){_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[96]]=_0xe482x2d[_0xb4a3[41]];_0xe482x2b[_0xb4a3[96]]=_0xe482x2d[_0xb4a3[41]];_0xe482x2b[_0xb4a3[97]]=true}else {_0xe482x2b[_0xb4a3[97]]=false};return})[_0xb4a3[34]](function(){if(_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[93]]){return ChatVisitor[_0xb4a3[95]]({where:{id:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[93]],status:_0xb4a3[94]}})};return})[_0xb4a3[34]](function(_0xe482x2c){if(_0xe482x2c){_0xe482x2b[_0xb4a3[88]]=true};return _0xe482x21[_0xb4a3[32]](_0xe482x20[_0xb4a3[81]][_0xb4a3[89]]+_0xb4a3[90]+JSON[_0xb4a3[91]](_0xe482x2b)+_0xb4a3[92])})[_0xb4a3[31]](function(_0xe482x23){return _0xe482x22(_0xe482x23)})};exports[_0xb4a3[107]]=function(_0xe482x20,_0xe482x21,_0xe482x22){var _0xe482x2f={where:{ChatRoomId:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[96]]},include:[{model:User,attributes:[_0xb4a3[41],_0xb4a3[108],_0xb4a3[102],_0xb4a3[103]]},{model:ChatVisitor,attributes:[_0xb4a3[41],_0xb4a3[102],_0xb4a3[103]]}]};if(_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[109]]===_0xb4a3[46]){_0xe482x2f[_0xb4a3[110]][_0xb4a3[41]]={$gt:_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[111]]}};ChatMessage[_0xb4a3[35]](_0xe482x2f)[_0xb4a3[34]](function(_0xe482x30){var _0xe482x31={success:true,messages:_0xe482x30,composing:false,composing_fullname:null};_0xe482x21[_0xb4a3[32]](_0xe482x20[_0xb4a3[81]][_0xb4a3[89]]+_0xb4a3[90]+JSON[_0xb4a3[91]](_0xe482x31)+_0xb4a3[92])})[_0xb4a3[31]](function(_0xe482x23){_0xe482x22(_0xe482x23)})};exports[_0xb4a3[112]]=function(_0xe482x20,_0xe482x21,_0xe482x22){var _0xe482x2f={where:{ChatRoomId:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[96]]},include:[{model:User,attributes:[_0xb4a3[41],_0xb4a3[108],_0xb4a3[102],_0xb4a3[103]]},{model:ChatVisitor,attributes:[_0xb4a3[41],_0xb4a3[102],_0xb4a3[103]]}]};if(_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[109]]===_0xb4a3[46]){_0xe482x2f[_0xb4a3[110]][_0xb4a3[41]]={$gt:_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[111]]}};ChatMessage[_0xb4a3[115]]({body:_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[114]][_0xb4a3[113]],ChatRoomId:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[96]],ChatVisitorId:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[93]]})[_0xb4a3[34]](function(_0xe482x32){ChatMessage[_0xb4a3[35]](_0xe482x2f)[_0xb4a3[34]](function(_0xe482x30){var _0xe482x31={errors:[],success:true,data:_0xe482x32,messages:_0xe482x30};_0xe482x21[_0xb4a3[32]](_0xe482x20[_0xb4a3[81]][_0xb4a3[89]]+_0xb4a3[90]+JSON[_0xb4a3[91]](_0xe482x31)+_0xb4a3[92])})[_0xb4a3[31]](function(_0xe482x23){_0xe482x22(_0xe482x23)})})[_0xb4a3[31]](function(_0xe482x23){_0xe482x22(_0xe482x23)})};exports[_0xb4a3[116]]=function(_0xe482x20,_0xe482x21,_0xe482x22){return ChatRoom[_0xb4a3[67]](_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[96]])[_0xb4a3[34]](function(_0xe482x2d){return _0xe482x2d[_0xb4a3[119]]({status:_0xb4a3[117],completeReason:_0xb4a3[118]})})[_0xb4a3[34]](function(){var _0xe482x31={success:true,errors:[]};_0xe482x20[_0xb4a3[87]][_0xb4a3[78]]={};_0xe482x21[_0xb4a3[32]](_0xe482x20[_0xb4a3[81]][_0xb4a3[89]]+_0xb4a3[90]+JSON[_0xb4a3[91]](_0xe482x31)+_0xb4a3[92])})[_0xb4a3[31]](function(_0xe482x23){_0xe482x22(_0xe482x23)})};exports[_0xb4a3[120]]=function(_0xe482x20,_0xe482x21,_0xe482x22){var _0xe482x33=uaParser[_0xb4a3[124]](_0xe482x20[_0xb4a3[123]][_0xb4a3[122]])[_0xb4a3[121]]();var _0xe482x34=languageParser[_0xb4a3[126]](_0xe482x20[_0xb4a3[123]][_0xb4a3[125]]);var _0xe482x35=_0xe482x20[_0xb4a3[123]][_0xb4a3[127]]?_0xe482x20[_0xb4a3[123]][_0xb4a3[127]]:_0xe482x20[_0xb4a3[129]][_0xb4a3[128]]||_0xe482x20[_0xb4a3[130]];var _0xe482x36={fullname:_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[102]],email:_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[103]],remote_address:_0xe482x35,user_agent:_0xe482x20[_0xb4a3[123]][_0xb4a3[122]],visitor_language:_0xe482x20[_0xb4a3[123]][_0xb4a3[125]],referer:_0xe482x20[_0xb4a3[123]][_0xb4a3[132]],origin:_0xb4a3[133],browser:_0xe482x33[_0xb4a3[134]][_0xb4a3[108]]+_0xb4a3[135]+_0xe482x33[_0xb4a3[134]][_0xb4a3[136]],engine:_0xe482x33[_0xb4a3[137]][_0xb4a3[108]]+_0xb4a3[135]+_0xe482x33[_0xb4a3[137]][_0xb4a3[136]],os:_0xe482x33[_0xb4a3[138]][_0xb4a3[108]]+_0xb4a3[135]+_0xe482x33[_0xb4a3[138]][_0xb4a3[136]],device:_0xe482x33[_0xb4a3[140]][_0xb4a3[139]]?_0xe482x33[_0xb4a3[140]][_0xb4a3[139]]+_0xb4a3[135]+_0xe482x33[_0xb4a3[140]][_0xb4a3[141]]+_0xb4a3[135]+_0xe482x33[_0xb4a3[140]][_0xb4a3[142]]:null,ChatWebsiteId:_0xe482x20[_0xb4a3[81]][_0xb4a3[143]]};if(_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[144]]&&_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[145]]){_0xe482x36[_0xb4a3[144]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[144]];_0xe482x36[_0xb4a3[145]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[145]]};if(_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[146]]&&_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[147]]){_0xe482x36[_0xb4a3[146]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[146]];_0xe482x36[_0xb4a3[147]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[147]]};if(_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[148]]&&_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[149]]){_0xe482x36[_0xb4a3[148]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[148]];_0xe482x36[_0xb4a3[149]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[131]][_0xb4a3[149]]};return ChatVisitor[_0xb4a3[115]](_0xe482x36)[_0xb4a3[34]](function(_0xe482x37){_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[102]]=_0xe482x37[_0xb4a3[102]];_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[103]]=_0xe482x37[_0xb4a3[103]];_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[104]]=md5(_0xe482x37[_0xb4a3[103]]).toString(_0xb4a3[150]);_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[93]]=_0xe482x37[_0xb4a3[41]];var _0xe482x31={success:true,errors:[],chatVisitor:{id:_0xe482x37[_0xb4a3[41]]}};_0xe482x21[_0xb4a3[32]](_0xe482x20[_0xb4a3[81]][_0xb4a3[89]]+_0xb4a3[90]+JSON[_0xb4a3[91]](_0xe482x31)+_0xb4a3[92])})[_0xb4a3[31]](function(_0xe482x23){_0xe482x22(_0xe482x23)})};exports[_0xb4a3[151]]=function(_0xe482x20,_0xe482x21,_0xe482x22){return ChatVisitor[_0xb4a3[67]](_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[93]])[_0xb4a3[34]](function(_0xe482x37){return _0xe482x37[_0xb4a3[119]]({status:_0xb4a3[94]})})[_0xb4a3[34]](function(){var _0xe482x31={success:true,errors:[]};_0xe482x20[_0xb4a3[87]][_0xb4a3[78]]={};_0xe482x21[_0xb4a3[32]](_0xe482x20[_0xb4a3[81]][_0xb4a3[89]]+_0xb4a3[90]+JSON[_0xb4a3[91]](_0xe482x31)+_0xb4a3[92])})[_0xb4a3[31]](function(_0xe482x23){_0xe482x22(_0xe482x23)})};exports[_0xb4a3[152]]=function(_0xe482x20,_0xe482x21,_0xe482x22){return sequelize[_0xb4a3[164]]()[_0xb4a3[34]](function(_0xe482x38){var _0xe482x35=_0xe482x20[_0xb4a3[123]][_0xb4a3[127]]?_0xe482x20[_0xb4a3[123]][_0xb4a3[127]]:_0xe482x20[_0xb4a3[129]][_0xb4a3[128]]||_0xe482x20[_0xb4a3[130]];var _0xe482x33=uaParser[_0xb4a3[124]](_0xe482x20[_0xb4a3[123]][_0xb4a3[122]])[_0xb4a3[121]]();var _0xe482x34=languageParser[_0xb4a3[126]](_0xe482x20[_0xb4a3[123]][_0xb4a3[125]]);var _0xe482x36={fullname:_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[102]],email:_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[103]],remote_address:_0xe482x35,user_agent:_0xe482x20[_0xb4a3[123]][_0xb4a3[122]],visitor_language:_0xe482x20[_0xb4a3[123]][_0xb4a3[125]],browser:_0xe482x33[_0xb4a3[134]][_0xb4a3[108]]+_0xb4a3[135]+_0xe482x33[_0xb4a3[134]][_0xb4a3[136]],engine:_0xe482x33[_0xb4a3[137]][_0xb4a3[108]]+_0xb4a3[135]+_0xe482x33[_0xb4a3[137]][_0xb4a3[136]],os:_0xe482x33[_0xb4a3[138]][_0xb4a3[108]]+_0xb4a3[135]+_0xe482x33[_0xb4a3[138]][_0xb4a3[136]],device:_0xe482x33[_0xb4a3[140]][_0xb4a3[139]]?_0xe482x33[_0xb4a3[140]][_0xb4a3[139]]+_0xb4a3[135]+_0xe482x33[_0xb4a3[140]][_0xb4a3[141]]+_0xb4a3[135]+_0xe482x33[_0xb4a3[140]][_0xb4a3[142]]:null,referer:_0xe482x20[_0xb4a3[123]][_0xb4a3[132]],origin:_0xb4a3[154],status:_0xb4a3[94],ChatWebsiteId:parseInt(_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[155]],10),ChatEnquiry:{username:_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[102]],email:_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[103]],text:_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[113]],ChatWebsiteId:parseInt(_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[155]],10)}};if(_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[156]]&&_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[157]]){_0xe482x36[_0xb4a3[156]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[156]];_0xe482x36[_0xb4a3[157]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[157]]};if(_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[158]]&&_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[159]]){_0xe482x36[_0xb4a3[158]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[158]];_0xe482x36[_0xb4a3[159]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[159]]};if(_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[160]]&&_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[161]]){_0xe482x36[_0xb4a3[160]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[160]];_0xe482x36[_0xb4a3[161]]=_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[153]][_0xb4a3[161]]};return ChatVisitor[_0xb4a3[115]](_0xe482x36,{transaction:_0xe482x38,include:[{model:ChatEnquiry}]})[_0xb4a3[34]](function(){_0xe482x38[_0xb4a3[163]]();_0xe482x21[_0xb4a3[32]](_0xe482x20[_0xb4a3[81]][_0xb4a3[89]]+_0xb4a3[90]+JSON[_0xb4a3[91]]({success:true,errors:[]})+_0xb4a3[92])})[_0xb4a3[31]](function(_0xe482x23){_0xe482x38[_0xb4a3[162]]();_0xe482x22(_0xe482x23)})})};exports[_0xb4a3[165]]=function(_0xe482x20,_0xe482x21,_0xe482x22){if(_0xe482x20[_0xb4a3[87]][_0xb4a3[78]]&&_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[93]]&&_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[96]]){ChatMessage[_0xb4a3[35]]({where:{ChatRoomId:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[96]]},include:[{model:Agent,attributes:[_0xb4a3[41],_0xb4a3[102]]},{model:ChatVisitor,attributes:[_0xb4a3[41],_0xb4a3[102]]}]})[_0xb4a3[34]](function(_0xe482x30){var _0xe482x39=[];_0xe482x30[_0xb4a3[171]](function(_0xe482x32){var _0xe482x3a={name:_0xe482x32[_0xb4a3[166]]?_0xe482x32[_0xb4a3[21]][_0xb4a3[102]]:_0xe482x32[_0xb4a3[24]][_0xb4a3[102]],text:_0xe482x32[_0xb4a3[168]][_0xb4a3[167]](/(\r\n|\n|\r)/gm,_0xb4a3[135]),date:_0xe482x32[_0xb4a3[169]]};_0xe482x39[_0xb4a3[170]](_0xe482x3a)});var _0xe482x3b=csv(_0xe482x39);_0xe482x21[_0xb4a3[142]](_0xb4a3[172])[_0xb4a3[33]](200)[_0xb4a3[32]](_0xe482x3b)})[_0xb4a3[31]](function(_0xe482x23){_0xe482x22(_0xe482x23)})}};exports[_0xb4a3[173]]=function(_0xe482x20,_0xe482x21,_0xe482x22){return Xchatty[_0xb4a3[67]](_0xe482x20[_0xb4a3[42]][_0xb4a3[41]])[_0xb4a3[34]](function(_0xe482x3c){if(!_0xe482x3c){return _0xe482x21[_0xb4a3[174]](404)};return _0xe482x21[_0xb4a3[32]](_0xe482x3c)})[_0xb4a3[31]](function(_0xe482x23){return _0xe482x22(_0xe482x23)})};exports[_0xb4a3[115]]=function(_0xe482x20,_0xe482x21,_0xe482x22){return Xchatty[_0xb4a3[115]](_0xe482x20[_0xb4a3[168]])[_0xb4a3[34]](function(_0xe482x3c){return _0xe482x21[_0xb4a3[33]](201)[_0xb4a3[32]](_0xe482x3c)})[_0xb4a3[31]](function(_0xe482x23){return _0xe482x22(_0xe482x23)})};exports[_0xb4a3[119]]=function(_0xe482x20,_0xe482x21,_0xe482x22){if(_0xe482x20[_0xb4a3[168]][_0xb4a3[41]]){delete _0xe482x20[_0xb4a3[168]][_0xb4a3[41]]};return Xchatty[_0xb4a3[67]](_0xe482x20[_0xb4a3[42]][_0xb4a3[41]])[_0xb4a3[34]](function(_0xe482x3c){if(!_0xe482x3c){return _0xe482x21[_0xb4a3[174]](404)};var _0xe482x3d=_[_0xb4a3[175]](_0xe482x3c,_0xe482x20[_0xb4a3[168]]);_0xe482x3d[_0xb4a3[176]]()[_0xb4a3[34]](function(){return _0xe482x21[_0xb4a3[33]](200)[_0xb4a3[32]](_0xe482x3c)})[_0xb4a3[31]](function(_0xe482x23){return _0xe482x22(_0xe482x23)})})[_0xb4a3[31]](function(_0xe482x23){return _0xe482x22(_0xe482x23)})};exports[_0xb4a3[177]]=function(_0xe482x20,_0xe482x21,_0xe482x22){return Xchatty[_0xb4a3[67]](_0xe482x20[_0xb4a3[42]][_0xb4a3[41]])[_0xb4a3[34]](function(_0xe482x3c){if(!_0xe482x3c){return _0xe482x21[_0xb4a3[174]](404)};_0xe482x3c[_0xb4a3[177]]()[_0xb4a3[34]](function(){return _0xe482x21[_0xb4a3[174]](204)})[_0xb4a3[31]](function(_0xe482x23){return _0xe482x22(_0xe482x23)})})[_0xb4a3[31]](function(_0xe482x23){return _0xe482x22(_0xe482x23)})};exports[_0xb4a3[178]]=function(_0xe482x20,_0xe482x21,_0xe482x22){var _0xe482x3e=xchatty_components[_0xb4a3[179]];return ChatWebsite[_0xb4a3[67]](_0xe482x20[_0xb4a3[42]][_0xb4a3[41]],{include:[{all:true}]})[_0xb4a3[34]](function(_0xe482x25){var _0xe482x3f={rootPath:Util[_0xb4a3[44]](_0xe482x25[_0xb4a3[43]])+_0xb4a3[45],headerShape:_0xe482x25[_0xb4a3[52]],enquiryEnable:_0xe482x25[_0xb4a3[180]],onlineFields:_0xe482x25[_0xb4a3[181]],renderedOnlineField:function(){var _0xe482x40=_0xb4a3[99];var _0xe482x41=this;switch(this[_0xb4a3[207]]){case _0xb4a3[191]:_0xe482x40=_0xb4a3[182];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[183],_0xe482x41[_0xb4a3[30]],_0xe482x41[_0xb4a3[184]],_0xe482x41[_0xb4a3[185]]?_0xb4a3[186]:_0xb4a3[99]);_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[188],_0xe482x41[_0xb4a3[184]],_0xe482x41[_0xb4a3[30]],_0xe482x41[_0xb4a3[30]]+1,_0xe482x41[_0xb4a3[189]],_0xe482x41[_0xb4a3[185]]?_0xb4a3[185]:_0xb4a3[99]);_0xe482x40+=_0xb4a3[190];break;case _0xb4a3[193]:_0xe482x40=_0xb4a3[182];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[183],_0xe482x41[_0xb4a3[30]],_0xe482x41[_0xb4a3[184]],_0xe482x41[_0xb4a3[185]]?_0xb4a3[186]:_0xb4a3[99]);_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[192],_0xe482x41[_0xb4a3[30]],_0xe482x41[_0xb4a3[184]],_0xe482x41[_0xb4a3[30]]+1,_0xe482x41[_0xb4a3[189]],_0xe482x41[_0xb4a3[185]]?_0xb4a3[185]:_0xb4a3[99]);_0xe482x40+=_0xb4a3[190];break;case _0xb4a3[199]:_0xe482x40=_0xb4a3[182];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[194],_0xe482x41[_0xb4a3[184]]);_[_0xb4a3[171]](_0xe482x41[_0xb4a3[195]],function(_0xe482x42){_0xe482x40+=_0xb4a3[196];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[197],_0xe482x41[_0xb4a3[30]]+1,_0xe482x42,_0xe482x42);_0xe482x40+=_0xb4a3[198]});_0xe482x40+=_0xb4a3[190];break;case _0xb4a3[201]:_0xe482x40=_0xb4a3[182];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[194],_0xe482x41[_0xb4a3[184]]);_[_0xb4a3[171]](_0xe482x41[_0xb4a3[195]],function(_0xe482x42){_0xe482x40+=_0xb4a3[196];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[200],_0xe482x41[_0xb4a3[30]]+1,_0xe482x42,_0xe482x42);_0xe482x40+=_0xb4a3[198]});_0xe482x40+=_0xb4a3[190];break;case _0xb4a3[206]:_0xe482x40=_0xb4a3[182];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[202],_0xe482x41[_0xb4a3[30]],_0xe482x41[_0xb4a3[184]]);_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[203],_0xe482x41[_0xb4a3[30]]+1);_[_0xb4a3[171]](_0xe482x41[_0xb4a3[195]],function(_0xe482x42){_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[204],_0xe482x42,_0xe482x42)});_0xe482x40+=_0xb4a3[205];break};_0xe482x40+=_0xb4a3[208];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[209],_0xe482x41[_0xb4a3[30]]+1,_0xe482x41[_0xb4a3[184]]);return _0xe482x40},offlineFields:_0xe482x25[_0xb4a3[210]],renderedOfflineField:function(){var _0xe482x40=_0xb4a3[99];var _0xe482x41=this;switch(this[_0xb4a3[207]]){case _0xb4a3[191]:_0xe482x40=_0xb4a3[182];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[211],_0xe482x41[_0xb4a3[30]],_0xe482x41[_0xb4a3[184]],_0xe482x41[_0xb4a3[185]]?_0xb4a3[186]:_0xb4a3[99]);_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[212],_0xe482x41[_0xb4a3[184]],_0xe482x41[_0xb4a3[30]],_0xe482x41[_0xb4a3[30]]+1,_0xe482x41[_0xb4a3[189]],_0xe482x41[_0xb4a3[185]]?_0xb4a3[185]:_0xb4a3[99]);_0xe482x40+=_0xb4a3[190];break;case _0xb4a3[193]:_0xe482x40=_0xb4a3[182];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[211],_0xe482x41[_0xb4a3[30]],_0xe482x41[_0xb4a3[184]],_0xe482x41[_0xb4a3[185]]?_0xb4a3[186]:_0xb4a3[99]);_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[213],_0xe482x41[_0xb4a3[30]],_0xe482x41[_0xb4a3[184]],_0xe482x41[_0xb4a3[30]]+1,_0xe482x41[_0xb4a3[189]],_0xe482x41[_0xb4a3[185]]?_0xb4a3[185]:_0xb4a3[99]);_0xe482x40+=_0xb4a3[190];break;case _0xb4a3[199]:_0xe482x40=_0xb4a3[182];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[194],_0xe482x41[_0xb4a3[184]]);_[_0xb4a3[171]](_0xe482x41[_0xb4a3[195]],function(_0xe482x42){_0xe482x40+=_0xb4a3[196];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[214],_0xe482x41[_0xb4a3[30]]+1,_0xe482x42,_0xe482x42);_0xe482x40+=_0xb4a3[198]});_0xe482x40+=_0xb4a3[190];break;case _0xb4a3[201]:_0xe482x40=_0xb4a3[182];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[194],_0xe482x41[_0xb4a3[184]]);_[_0xb4a3[171]](_0xe482x41[_0xb4a3[195]],function(_0xe482x42){_0xe482x40+=_0xb4a3[196];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[215],_0xe482x41[_0xb4a3[30]]+1,_0xe482x42,_0xe482x42);_0xe482x40+=_0xb4a3[198]});_0xe482x40+=_0xb4a3[190];break;case _0xb4a3[206]:_0xe482x40=_0xb4a3[182];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[194],_0xe482x41[_0xb4a3[184]]);_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[216],_0xe482x41[_0xb4a3[30]]+1);_[_0xb4a3[171]](_0xe482x41[_0xb4a3[195]],function(_0xe482x42){_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[204],_0xe482x42,_0xe482x42)});_0xe482x40+=_0xb4a3[205];break};_0xe482x40+=_0xb4a3[208];_0xe482x40+=util[_0xb4a3[187]](_0xb4a3[217],_0xe482x41[_0xb4a3[30]]+1,_0xe482x41[_0xb4a3[184]]);return _0xe482x40}};_0xe482x3e=Mustache[_0xb4a3[66]](_0xe482x3e,_0xe482x3f);return _0xe482x21[_0xb4a3[33]](200)[_0xb4a3[218]](_0xe482x3e)})[_0xb4a3[31]](function(_0xe482x23){return _0xe482x22(_0xe482x23)})};exports[_0xb4a3[219]]=function(_0xe482x20,_0xe482x21,_0xe482x22){return ChatWebsite[_0xb4a3[67]](_0xe482x20[_0xb4a3[42]][_0xb4a3[41]],{include:[{model:ChatProactiveAction}]})[_0xb4a3[34]](function(_0xe482x25){if(!_0xe482x25){return _0xe482x21[_0xb4a3[33]](400)[_0xb4a3[218]]({})};return _0xe482x21[_0xb4a3[33]](200)[_0xb4a3[218]](_0xe482x25.ChatProactiveActions)})[_0xb4a3[31]](function(_0xe482x23){return _0xe482x22(_0xe482x23)})};exports[_0xb4a3[220]]=function(_0xe482x20,_0xe482x21,_0xe482x22){return ChatRoom[_0xb4a3[67]](_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[223]][_0xb4a3[96]])[_0xb4a3[34]](function(_0xe482x2d){if(!_0xe482x2d){return _0xe482x21[_0xb4a3[33]](400)[_0xb4a3[218]]({})};if(_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[223]][_0xb4a3[222]](_0xb4a3[221])&&_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[223]][_0xb4a3[222]](_0xb4a3[113])){return _0xe482x2d[_0xb4a3[119]]({rating:_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[223]][_0xb4a3[221]],ratingMessage:_0xe482x20[_0xb4a3[81]][_0xb4a3[101]][_0xb4a3[223]][_0xb4a3[113]]})};return})[_0xb4a3[34]](function(){return _0xe482x21[_0xb4a3[33]](200)[_0xb4a3[218]]({})})[_0xb4a3[31]](function(_0xe482x23){return _0xe482x21[_0xb4a3[33]](400)[_0xb4a3[218]](_0xe482x23)})};exports[_0xb4a3[224]]=function(_0xe482x20,_0xe482x21,_0xe482x22){if(_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[222]](_0xb4a3[93])&&_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[93]]>0){return ReportChatSession[_0xb4a3[225]]({where:{visitorid:_0xe482x20[_0xb4a3[87]][_0xb4a3[78]][_0xb4a3[93]]}})[_0xb4a3[34]](function(_0xe482x43){return _0xe482x43[_0xb4a3[119]]({abandon:true})})[_0xb4a3[34]](function(){return _0xe482x21[_0xb4a3[33]](200)[_0xb4a3[218]]({})})[_0xb4a3[31]](function(_0xe482x23){_0xe482x21[_0xb4a3[33]](500)[_0xb4a3[218]]({})})};return _0xe482x21[_0xb4a3[33]](200)[_0xb4a3[218]]({})}
\ No newline at end of file
index b8ec557..d364021 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var xchatty = require('../../models').Xchatty;
-
-exports.register = function(socket) {
-  // xchatty.afterCreate(function (doc) {
-  //   onSave(socket, doc);
-  // });
-  // xchatty.afterDestroy(function (doc) {
-  //   onRemove(socket, doc);
-  // });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('xchatty:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('xchatty:remove', doc);
-}
+var _0xe4ff=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x58\x63\x68\x61\x74\x74\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x78\x63\x68\x61\x74\x74\x79\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x78\x63\x68\x61\x74\x74\x79\x3A\x72\x65\x6D\x6F\x76\x65"];_0xe4ff[0];var xchatty=require(_0xe4ff[2])[_0xe4ff[1]];exports[_0xe4ff[3]]=function(_0x3ee6x2){};function onSave(_0x3ee6x2,_0x3ee6x4,_0x3ee6x5){_0x3ee6x2[_0xe4ff[5]](_0xe4ff[4],_0x3ee6x4)}function onRemove(_0x3ee6x2,_0x3ee6x4,_0x3ee6x5){_0x3ee6x2[_0xe4ff[5]](_0xe4ff[6],_0x3ee6x4)}
\ No newline at end of file
index 1d3a00a..5ac77af 100644 (file)
@@ -1,32 +1 @@
-'use strict';
-
-var express = require('express');
-var auth = require('../../auth/auth.service');
-var controller = require('./zendesk_account.controller');
-
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.get('/:id/check', auth.isAuthenticated(), controller.checkAccount);
-router.get('/:id/fields', auth.isAuthenticated(), controller.getFields);
-router.get('/:id/configurations', auth.isAuthenticated(), controller.getAccountConfigurations);
-router.get('/:id/configurations/:cid', auth.isAuthenticated(), controller.getConfiguration);
-router.post('/validate/:field', auth.isAuthenticated(), controller.zendeskValidation);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.post('/:id/configurations', auth.isAuthenticated(), controller.createConfiguration);
-router.post('/:id/configurations/:cid/:type', auth.isAuthenticated(), controller.createField);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-// router.put('/:id/configurations/:cid', auth.isAuthenticated(), controller.updateConfiguration);
-router.put('/:id/configurations/:cid/tags', auth.isAuthenticated(), controller.addConfigurationTags);
-router.put('/:id/configurations/:cid/fields/:fid', auth.isAuthenticated(), controller.updateField);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-// router.patch('/:id/configurations/:cid', auth.isAuthenticated(), controller.updateConfiguration);
-router.patch('/:id/configurations/:cid/fields/:fid', auth.isAuthenticated(), controller.updateField);
-router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-router.delete('/:id/configurations', auth.isAuthenticated(), controller.bulkDestroyConfigurations);
-router.delete('/:id/configurations/:cid', auth.isAuthenticated(), controller.destroyConfiguration);
-router.delete('/:id/configurations/:cid/fields/:fid', auth.isAuthenticated(), controller.destroyField);
-
-module.exports = router;
+var _0xb30d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x68\x65\x63\x6B","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x63\x63\x6F\x75\x6E\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x63\x69\x64","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x76\x61\x6C\x69\x64\x61\x74\x65\x2F\x3A\x66\x69\x65\x6C\x64","\x7A\x65\x6E\x64\x65\x73\x6B\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x70\x6F\x73\x74","\x63\x72\x65\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x63\x69\x64\x2F\x3A\x74\x79\x70\x65","\x63\x72\x65\x61\x74\x65\x46\x69\x65\x6C\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x63\x69\x64\x2F\x74\x61\x67\x73","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x54\x61\x67\x73","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73\x2F\x3A\x63\x69\x64\x2F\x66\x69\x65\x6C\x64\x73\x2F\x3A\x66\x69\x64","\x75\x70\x64\x61\x74\x65\x46\x69\x65\x6C\x64","\x70\x61\x74\x63\x68","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x73\x74\x72\x6F\x79\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x64\x65\x73\x74\x72\x6F\x79\x46\x69\x65\x6C\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0xb30d[0];var express=require(_0xb30d[1]);var auth=require(_0xb30d[2]);var controller=require(_0xb30d[3]);var router=express.Router();router[_0xb30d[7]](_0xb30d[4],auth[_0xb30d[5]](),controller[_0xb30d[6]]);router[_0xb30d[7]](_0xb30d[8],auth[_0xb30d[5]](),controller[_0xb30d[9]]);router[_0xb30d[7]](_0xb30d[10],auth[_0xb30d[5]](),controller[_0xb30d[11]]);router[_0xb30d[7]](_0xb30d[12],auth[_0xb30d[5]](),controller[_0xb30d[13]]);router[_0xb30d[7]](_0xb30d[14],auth[_0xb30d[5]](),controller[_0xb30d[15]]);router[_0xb30d[7]](_0xb30d[16],auth[_0xb30d[5]](),controller[_0xb30d[17]]);router[_0xb30d[20]](_0xb30d[18],auth[_0xb30d[5]](),controller[_0xb30d[19]]);router[_0xb30d[20]](_0xb30d[4],auth[_0xb30d[5]](),controller[_0xb30d[21]]);router[_0xb30d[20]](_0xb30d[14],auth[_0xb30d[5]](),controller[_0xb30d[22]]);router[_0xb30d[20]](_0xb30d[23],auth[_0xb30d[5]](),controller[_0xb30d[24]]);router[_0xb30d[26]](_0xb30d[8],auth[_0xb30d[5]](),controller[_0xb30d[25]]);router[_0xb30d[26]](_0xb30d[27],auth[_0xb30d[5]](),controller[_0xb30d[28]]);router[_0xb30d[26]](_0xb30d[29],auth[_0xb30d[5]](),controller[_0xb30d[30]]);router[_0xb30d[31]](_0xb30d[8],auth[_0xb30d[5]](),controller[_0xb30d[25]]);router[_0xb30d[31]](_0xb30d[29],auth[_0xb30d[5]](),controller[_0xb30d[30]]);router[_0xb30d[33]](_0xb30d[4],auth[_0xb30d[5]](),controller[_0xb30d[32]]);router[_0xb30d[33]](_0xb30d[8],auth[_0xb30d[5]](),controller[_0xb30d[34]]);router[_0xb30d[33]](_0xb30d[14],auth[_0xb30d[5]](),controller[_0xb30d[35]]);router[_0xb30d[33]](_0xb30d[16],auth[_0xb30d[5]](),controller[_0xb30d[36]]);router[_0xb30d[33]](_0xb30d[29],auth[_0xb30d[5]](),controller[_0xb30d[37]]);module[_0xb30d[38]]=router
\ No newline at end of file
index 78030cd..cc9f81a 100644 (file)
@@ -1,316 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Util = require('../../config/util');
-var zendesk = require('node-zendesk');
-
-var ZendeskAccount = require('../../models').ZendeskAccount;
-var ZendeskConfiguration = require('../../models').ZendeskConfiguration;
-var ZendeskField = require('../../models').ZendeskField;
-
-function handleError(res, statusCode) {
-  statusCode = statusCode || 500;
-  return function(err) {
-    console.error('Error:', err);
-    res.status(statusCode).send(err);
-  };
-}
-
-function responseWithResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function(entity) {
-    if (entity) {
-      res.status(statusCode).json(entity);
-    }
-  };
-}
-
-function responseWithoutResult(res, statusCode) {
-  statusCode = statusCode || 200;
-  return function() {
-    res.sendStatus(statusCode);
-  };
-}
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function saveUpdates(updates) {
-  return function(entity) {
-    return entity.updateAttributes(updates)
-      .then(function(updated) {
-        return updated;
-      });
-  };
-}
-
-function removeEntity(res) {
-  return function(entity) {
-    if (entity) {
-      return entity.destroy()
-        .then(function() {
-          res.status(204).end();
-        });
-    }
-  };
-}
-
-// Get list of zendesk_accounts
-exports.index = function(req, res, next) {
-  return ZendeskAccount
-    .scope('configurations')
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-};
-
-// Get a single zendesk_account
-exports.show = function(req, res) {
-  return ZendeskAccount
-    .findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-};
-
-// Creates a new zendesk_account in the DB.
-exports.create = function(req, res) {
-  return ZendeskAccount
-    .create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-};
-
-// Updates an existing zendesk_account in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return ZendeskAccount
-    .findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-};
-
-// Deletes a zendesk_account from the DB.
-exports.destroy = function(req, res) {
-  return ZendeskAccount
-    .findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-};
-
-exports.bulkDestroy = function(req, res) {
-  return ZendeskAccount
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(responseWithResult(res, 204))
-    .catch(handleError(res));
-};
-
-exports.zendeskValidation = function(req, res) {
-  var where = {};
-  where[req.params.field] = req.body.value;
-  return ZendeskAccount
-    .findAndCountAll({
-      where: where
-    })
-    .then(function(result) {
-      if (result.count) {
-        return res.status(200).send({
-          isValid: false,
-          value: req.body.value
-        });
-      }
-      return res.status(200).send({
-        isValid: true,
-        value: req.body.value
-      });
-    })
-    .catch(handleError(res));
-
-};
-
-exports.checkAccount = function(req, res) {
-  return ZendeskAccount
-    .findById(req.params.id)
-    .then(function(account) {
-      var accountZendesk = {
-        username: account.username,
-        remoteUri: account.remoteUri,
-        // debug: true
-      };
-      if (account.authType === 'password') {
-        accountZendesk.password = account.password;
-      } else if (account.authType === 'token') {
-        accountZendesk.token = account.token;
-        // accountZendesk.oauth = true;
-      }
-      // console.log(accountZendesk);
-      var client = zendesk.createClient(accountZendesk);
-      client.users.auth(function(err, res2, result) {
-        if (err) {
-          console.error(err);
-          return handleError(res, err);
-        }
-        // console.log(result);
-        if (!result.verified) {
-          return res.sendStatus(500);
-        }
-        return res.sendStatus(204);
-      });
-    })
-    .catch(handleError(res));
-};
-
-exports.getFields = function(req, res) {
-  return ZendeskAccount
-    .findById(req.params.id)
-    .then(function(account) {
-      var accountZendesk = {
-        username: account.username,
-        remoteUri: account.remoteUri,
-        // debug: true
-      };
-      if (account.authType === 'password') {
-        accountZendesk.password = account.password;
-      } else if (account.authType === 'token') {
-        accountZendesk.token = account.token;
-      }
-      var client = zendesk.createClient(accountZendesk);
-      client.ticketfields.list(function(err, res2, result) {
-        if (err) {
-          console.error(err);
-          return handleError(res, err);
-        }
-        return res.status(200).send(result);
-      });
-    })
-    .catch(handleError(res));
-}
-
-exports.getAccountConfigurations = function(req, res) {
-  return ZendeskConfiguration
-    .scope({
-      method: ['account', req.params.id]
-    })
-    .findAndCountAll(Util.getQuery(req.query))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-exports.getConfiguration = function(req, res) {
-
-  return ZendeskConfiguration
-    .scope({
-      method: ['account', req.params.id]
-    })
-    .findById(req.params.cid)
-    .then(handleEntityNotFound(res))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-}
-
-exports.destroyConfiguration = function(req, res) {
-  return ZendeskConfiguration
-    .scope({
-      method: ['account', req.params.id]
-    })
-    .findById(req.params.cid)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-};
-
-exports.bulkDestroyConfigurations = function(req, res) {
-  return ZendeskConfiguration
-    .destroy({
-      where: {
-        id: req.query.ids
-      },
-      individualHooks: true
-    })
-    .then(responseWithResult(res, 204))
-    .catch(handleError(res));
-};
-
-exports.createConfiguration = function(req, res) {
-  req.body['AccountId'] = req.params.id;
-  return ZendeskConfiguration
-    .create(req.body)
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-};
-
-exports.createField = function(req, res) {
-  return ZendeskConfiguration
-    .scope({
-      method: ['account', req.params.id]
-    })
-    .findById(req.params.cid)
-    .then(handleEntityNotFound(res))
-    .then(function(configuration) {
-      switch (req.params.type) {
-        case 'subject':
-          req.body['SubjectId'] = req.params.cid;
-          break;
-        case 'description':
-          req.body['DescriptionId'] = req.params.cid;
-          break;
-        case 'field':
-          req.body['FieldId'] = req.params.cid;
-          break;
-      }
-      return ZendeskField.create(req.body);
-    })
-    .then(responseWithResult(res, 201))
-    .catch(handleError(res));
-};
-
-exports.updateField = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return ZendeskField
-    .findById(req.params.fid)
-    .then(handleEntityNotFound(res))
-    .then(saveUpdates(req.body))
-    .then(responseWithResult(res))
-    .catch(handleError(res));
-};
-
-exports.destroyField = function(req, res) {
-  return ZendeskField
-    .findById(req.params.fid)
-    .then(handleEntityNotFound(res))
-    .then(removeEntity(res))
-    .catch(handleError(res));
-};
-
-exports.addConfigurationTags = function(req, res, next) {
-  return ZendeskConfiguration
-    .findById(req.params.cid)
-    .then(handleEntityNotFound(res))
-    .then(function(configuration) {
-      return configuration.setTags(req.body);
-    })
-    .then(responseWithoutResult(res, 200))
-    .catch(function(err) {
-      console.error(err);
-      return handleError(res, err);
-    });
-};
+var _0xb169=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x6E\x6F\x64\x65\x2D\x7A\x65\x6E\x64\x65\x73\x6B","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x45\x72\x72\x6F\x72\x3A","\x65\x72\x72\x6F\x72","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x71\x75\x65\x72\x79","\x67\x65\x74\x51\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x63\x6F\x70\x65","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x7A\x65\x6E\x64\x65\x73\x6B\x56\x61\x6C\x69\x64\x61\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x63\x6F\x75\x6E\x74","\x63\x68\x65\x63\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x75\x74\x68\x54\x79\x70\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E","\x63\x72\x65\x61\x74\x65\x43\x6C\x69\x65\x6E\x74","\x76\x65\x72\x69\x66\x69\x65\x64","\x61\x75\x74\x68","\x75\x73\x65\x72\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x6C\x69\x73\x74","\x74\x69\x63\x6B\x65\x74\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x41\x63\x63\x6F\x75\x6E\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x61\x63\x63\x6F\x75\x6E\x74","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x63\x69\x64","\x64\x65\x73\x74\x72\x6F\x79\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x63\x72\x65\x61\x74\x65\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x73\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64\x49\x64","\x74\x79\x70\x65","\x75\x70\x64\x61\x74\x65\x46\x69\x65\x6C\x64","\x66\x69\x64","\x64\x65\x73\x74\x72\x6F\x79\x46\x69\x65\x6C\x64","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x54\x61\x67\x73","\x73\x65\x74\x54\x61\x67\x73"];_0xb169[0];var _=require(_0xb169[1]);var Util=require(_0xb169[2]);var zendesk=require(_0xb169[3]);var ZendeskAccount=require(_0xb169[5])[_0xb169[4]];var ZendeskConfiguration=require(_0xb169[5])[_0xb169[6]];var ZendeskField=require(_0xb169[5])[_0xb169[7]];function handleError(_0x3bd6x8,_0x3bd6x9){_0x3bd6x9=_0x3bd6x9||500;return function(_0x3bd6xa){console[_0xb169[9]](_0xb169[8],_0x3bd6xa);_0x3bd6x8[_0xb169[11]](_0x3bd6x9)[_0xb169[10]](_0x3bd6xa)}}function responseWithResult(_0x3bd6x8,_0x3bd6x9){_0x3bd6x9=_0x3bd6x9||200;return function(_0x3bd6xc){if(_0x3bd6xc){_0x3bd6x8[_0xb169[11]](_0x3bd6x9)[_0xb169[12]](_0x3bd6xc)}}}function responseWithoutResult(_0x3bd6x8,_0x3bd6x9){_0x3bd6x9=_0x3bd6x9||200;return function(){_0x3bd6x8[_0xb169[13]](_0x3bd6x9)}}function handleEntityNotFound(_0x3bd6x8){return function(_0x3bd6xc){if(!_0x3bd6xc){_0x3bd6x8[_0xb169[11]](404)[_0xb169[14]]();return null};return _0x3bd6xc}}function saveUpdates(_0x3bd6x10){return function(_0x3bd6xc){return _0x3bd6xc[_0xb169[16]](_0x3bd6x10)[_0xb169[15]](function(_0x3bd6x11){return _0x3bd6x11})}}function removeEntity(_0x3bd6x8){return function(_0x3bd6xc){if(_0x3bd6xc){return _0x3bd6xc[_0xb169[17]]()[_0xb169[15]](function(){_0x3bd6x8[_0xb169[11]](204)[_0xb169[14]]()})}}}exports[_0xb169[18]]=function(_0x3bd6x13,_0x3bd6x8,_0x3bd6x14){return ZendeskAccount[_0xb169[24]](_0xb169[23])[_0xb169[22]](Util[_0xb169[21]](_0x3bd6x13[_0xb169[20]]))[_0xb169[15]](responseWithResult(_0x3bd6x8))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[25]]=function(_0x3bd6x13,_0x3bd6x8){return ZendeskAccount[_0xb169[28]](_0x3bd6x13[_0xb169[27]][_0xb169[26]])[_0xb169[15]](handleEntityNotFound(_0x3bd6x8))[_0xb169[15]](responseWithResult(_0x3bd6x8))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[29]]=function(_0x3bd6x13,_0x3bd6x8){return ZendeskAccount[_0xb169[29]](_0x3bd6x13[_0xb169[30]])[_0xb169[15]](responseWithResult(_0x3bd6x8,201))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[31]]=function(_0x3bd6x13,_0x3bd6x8){if(_0x3bd6x13[_0xb169[30]][_0xb169[26]]){delete _0x3bd6x13[_0xb169[30]][_0xb169[26]]};return ZendeskAccount[_0xb169[28]](_0x3bd6x13[_0xb169[27]][_0xb169[26]])[_0xb169[15]](handleEntityNotFound(_0x3bd6x8))[_0xb169[15]](saveUpdates(_0x3bd6x13[_0xb169[30]]))[_0xb169[15]](responseWithResult(_0x3bd6x8))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[17]]=function(_0x3bd6x13,_0x3bd6x8){return ZendeskAccount[_0xb169[28]](_0x3bd6x13[_0xb169[27]][_0xb169[26]])[_0xb169[15]](handleEntityNotFound(_0x3bd6x8))[_0xb169[15]](removeEntity(_0x3bd6x8))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[32]]=function(_0x3bd6x13,_0x3bd6x8){return ZendeskAccount[_0xb169[17]]({where:{id:_0x3bd6x13[_0xb169[20]][_0xb169[33]]},individualHooks:true})[_0xb169[15]](responseWithResult(_0x3bd6x8,204))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[34]]=function(_0x3bd6x13,_0x3bd6x8){var _0x3bd6x15={};_0x3bd6x15[_0x3bd6x13[_0xb169[27]][_0xb169[35]]]=_0x3bd6x13[_0xb169[30]][_0xb169[36]];return ZendeskAccount[_0xb169[22]]({where:_0x3bd6x15})[_0xb169[15]](function(_0x3bd6x16){if(_0x3bd6x16[_0xb169[37]]){return _0x3bd6x8[_0xb169[11]](200)[_0xb169[10]]({isValid:false,value:_0x3bd6x13[_0xb169[30]][_0xb169[36]]})};return _0x3bd6x8[_0xb169[11]](200)[_0xb169[10]]({isValid:true,value:_0x3bd6x13[_0xb169[30]][_0xb169[36]]})})[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[38]]=function(_0x3bd6x13,_0x3bd6x8){return ZendeskAccount[_0xb169[28]](_0x3bd6x13[_0xb169[27]][_0xb169[26]])[_0xb169[15]](function(_0x3bd6x17){var _0x3bd6x18={username:_0x3bd6x17[_0xb169[39]],remoteUri:_0x3bd6x17[_0xb169[40]]};if(_0x3bd6x17[_0xb169[41]]===_0xb169[42]){_0x3bd6x18[_0xb169[42]]=_0x3bd6x17[_0xb169[42]]}else {if(_0x3bd6x17[_0xb169[41]]===_0xb169[43]){_0x3bd6x18[_0xb169[43]]=_0x3bd6x17[_0xb169[43]]}};var _0x3bd6x19=zendesk[_0xb169[44]](_0x3bd6x18);_0x3bd6x19[_0xb169[47]][_0xb169[46]](function(_0x3bd6xa,_0x3bd6x1a,_0x3bd6x16){if(_0x3bd6xa){console[_0xb169[9]](_0x3bd6xa);return handleError(_0x3bd6x8,_0x3bd6xa)};if(!_0x3bd6x16[_0xb169[45]]){return _0x3bd6x8[_0xb169[13]](500)};return _0x3bd6x8[_0xb169[13]](204)})})[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[48]]=function(_0x3bd6x13,_0x3bd6x8){return ZendeskAccount[_0xb169[28]](_0x3bd6x13[_0xb169[27]][_0xb169[26]])[_0xb169[15]](function(_0x3bd6x17){var _0x3bd6x18={username:_0x3bd6x17[_0xb169[39]],remoteUri:_0x3bd6x17[_0xb169[40]]};if(_0x3bd6x17[_0xb169[41]]===_0xb169[42]){_0x3bd6x18[_0xb169[42]]=_0x3bd6x17[_0xb169[42]]}else {if(_0x3bd6x17[_0xb169[41]]===_0xb169[43]){_0x3bd6x18[_0xb169[43]]=_0x3bd6x17[_0xb169[43]]}};var _0x3bd6x19=zendesk[_0xb169[44]](_0x3bd6x18);_0x3bd6x19[_0xb169[50]][_0xb169[49]](function(_0x3bd6xa,_0x3bd6x1a,_0x3bd6x16){if(_0x3bd6xa){console[_0xb169[9]](_0x3bd6xa);return handleError(_0x3bd6x8,_0x3bd6xa)};return _0x3bd6x8[_0xb169[11]](200)[_0xb169[10]](_0x3bd6x16)})})[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[51]]=function(_0x3bd6x13,_0x3bd6x8){return ZendeskConfiguration[_0xb169[24]]({method:[_0xb169[52],_0x3bd6x13[_0xb169[27]][_0xb169[26]]]})[_0xb169[22]](Util[_0xb169[21]](_0x3bd6x13[_0xb169[20]]))[_0xb169[15]](responseWithResult(_0x3bd6x8))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[53]]=function(_0x3bd6x13,_0x3bd6x8){return ZendeskConfiguration[_0xb169[24]]({method:[_0xb169[52],_0x3bd6x13[_0xb169[27]][_0xb169[26]]]})[_0xb169[28]](_0x3bd6x13[_0xb169[27]][_0xb169[54]])[_0xb169[15]](handleEntityNotFound(_0x3bd6x8))[_0xb169[15]](responseWithResult(_0x3bd6x8))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[55]]=function(_0x3bd6x13,_0x3bd6x8){return ZendeskConfiguration[_0xb169[24]]({method:[_0xb169[52],_0x3bd6x13[_0xb169[27]][_0xb169[26]]]})[_0xb169[28]](_0x3bd6x13[_0xb169[27]][_0xb169[54]])[_0xb169[15]](handleEntityNotFound(_0x3bd6x8))[_0xb169[15]](removeEntity(_0x3bd6x8))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[56]]=function(_0x3bd6x13,_0x3bd6x8){return ZendeskConfiguration[_0xb169[17]]({where:{id:_0x3bd6x13[_0xb169[20]][_0xb169[33]]},individualHooks:true})[_0xb169[15]](responseWithResult(_0x3bd6x8,204))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[57]]=function(_0x3bd6x13,_0x3bd6x8){_0x3bd6x13[_0xb169[30]][_0xb169[58]]=_0x3bd6x13[_0xb169[27]][_0xb169[26]];return ZendeskConfiguration[_0xb169[29]](_0x3bd6x13[_0xb169[30]])[_0xb169[15]](responseWithResult(_0x3bd6x8,201))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[59]]=function(_0x3bd6x13,_0x3bd6x8){return ZendeskConfiguration[_0xb169[24]]({method:[_0xb169[52],_0x3bd6x13[_0xb169[27]][_0xb169[26]]]})[_0xb169[28]](_0x3bd6x13[_0xb169[27]][_0xb169[54]])[_0xb169[15]](handleEntityNotFound(_0x3bd6x8))[_0xb169[15]](function(_0x3bd6x1b){switch(_0x3bd6x13[_0xb169[27]][_0xb169[65]]){case _0xb169[61]:_0x3bd6x13[_0xb169[30]][_0xb169[60]]=_0x3bd6x13[_0xb169[27]][_0xb169[54]];break;case _0xb169[63]:_0x3bd6x13[_0xb169[30]][_0xb169[62]]=_0x3bd6x13[_0xb169[27]][_0xb169[54]];break;case _0xb169[35]:_0x3bd6x13[_0xb169[30]][_0xb169[64]]=_0x3bd6x13[_0xb169[27]][_0xb169[54]];break};return ZendeskField[_0xb169[29]](_0x3bd6x13[_0xb169[30]])})[_0xb169[15]](responseWithResult(_0x3bd6x8,201))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[66]]=function(_0x3bd6x13,_0x3bd6x8){if(_0x3bd6x13[_0xb169[30]][_0xb169[26]]){delete _0x3bd6x13[_0xb169[30]][_0xb169[26]]};return ZendeskField[_0xb169[28]](_0x3bd6x13[_0xb169[27]][_0xb169[67]])[_0xb169[15]](handleEntityNotFound(_0x3bd6x8))[_0xb169[15]](saveUpdates(_0x3bd6x13[_0xb169[30]]))[_0xb169[15]](responseWithResult(_0x3bd6x8))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[68]]=function(_0x3bd6x13,_0x3bd6x8){return ZendeskField[_0xb169[28]](_0x3bd6x13[_0xb169[27]][_0xb169[67]])[_0xb169[15]](handleEntityNotFound(_0x3bd6x8))[_0xb169[15]](removeEntity(_0x3bd6x8))[_0xb169[19]](handleError(_0x3bd6x8))};exports[_0xb169[69]]=function(_0x3bd6x13,_0x3bd6x8,_0x3bd6x14){return ZendeskConfiguration[_0xb169[28]](_0x3bd6x13[_0xb169[27]][_0xb169[54]])[_0xb169[15]](handleEntityNotFound(_0x3bd6x8))[_0xb169[15]](function(_0x3bd6x1b){return _0x3bd6x1b[_0xb169[70]](_0x3bd6x13[_0xb169[30]])})[_0xb169[15]](responseWithoutResult(_0x3bd6x8,200))[_0xb169[19]](function(_0x3bd6xa){console[_0xb169[9]](_0x3bd6xa);return handleError(_0x3bd6x8,_0x3bd6xa)})}
\ No newline at end of file
index 96c8214..3028806 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ZendeskAccount = require('../../models').ZendeskAccount;
-
-exports.register = function(socket) {
-  ZendeskAccount.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  ZendeskAccount.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('zendesk_account:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('zendesk_account:remove', doc);
-}
+var _0xfc8d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x3A\x72\x65\x6D\x6F\x76\x65"];_0xfc8d[0];var ZendeskAccount=require(_0xfc8d[2])[_0xfc8d[1]];exports[_0xfc8d[3]]=function(_0x85efx2){ZendeskAccount[_0xfc8d[4]](function(_0x85efx3){onSave(_0x85efx2,_0x85efx3)});ZendeskAccount[_0xfc8d[5]](function(_0x85efx3){onRemove(_0x85efx2,_0x85efx3)})};function onSave(_0x85efx2,_0x85efx3,_0x85efx5){_0x85efx2[_0xfc8d[7]](_0xfc8d[6],_0x85efx3)}function onRemove(_0x85efx2,_0x85efx3,_0x85efx5){_0x85efx2[_0xfc8d[7]](_0xfc8d[8],_0x85efx3)}
\ No newline at end of file
index 68c8389..ac36d85 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/zendesk/accounts', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/zendesk/accounts')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0xcb7a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74"];_0xcb7a[0];var should=require(_0xcb7a[1]);var app=require(_0xcb7a[2]);var request=require(_0xcb7a[3]);describe(_0xcb7a[4],function(){it(_0xcb7a[5],function(_0xfa3ex4){request(app)[_0xcb7a[13]](_0xcb7a[12])[_0xcb7a[11]](200)[_0xcb7a[11]](_0xcb7a[10],/json/)[_0xcb7a[9]](function(_0xfa3ex5,_0xfa3ex6){if(_0xfa3ex5){return _0xfa3ex4(_0xfa3ex5)};_0xfa3ex6[_0xcb7a[8]][_0xcb7a[1]][_0xcb7a[7]][_0xcb7a[6]](Array);_0xfa3ex4()})})})
\ No newline at end of file
index e0bc33f..c61b7b2 100644 (file)
@@ -1,17 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./zendesk_configuration.controller');
-var auth = require('../../auth/auth.service');
-var router = express.Router();
-
-router.get('/', auth.isAuthenticated(), controller.index);
-router.get('/:id', auth.isAuthenticated(), controller.show);
-router.post('/', auth.isAuthenticated(), controller.create);
-router.put('/:id', auth.isAuthenticated(), controller.update);
-router.post('/:id/tags', auth.isAuthenticated(), controller.addConfigurationTags);
-router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
-router.patch('/:id', auth.isAuthenticated(), controller.update);
-router.delete('/:id', auth.isAuthenticated(), controller.destroy);
-
-module.exports = router;
+var _0x277d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x75\x74\x68\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x74\x61\x67\x73","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x54\x61\x67\x73","\x2F\x3A\x69\x64\x2F\x3A\x74\x79\x70\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x277d[0];var express=require(_0x277d[1]);var controller=require(_0x277d[2]);var auth=require(_0x277d[3]);var router=express.Router();router[_0x277d[7]](_0x277d[4],auth[_0x277d[5]](),controller[_0x277d[6]]);router[_0x277d[7]](_0x277d[8],auth[_0x277d[5]](),controller[_0x277d[9]]);router[_0x277d[11]](_0x277d[4],auth[_0x277d[5]](),controller[_0x277d[10]]);router[_0x277d[13]](_0x277d[8],auth[_0x277d[5]](),controller[_0x277d[12]]);router[_0x277d[11]](_0x277d[14],auth[_0x277d[5]](),controller[_0x277d[15]]);router[_0x277d[11]](_0x277d[16],auth[_0x277d[5]](),controller[_0x277d[17]]);router[_0x277d[18]](_0x277d[8],auth[_0x277d[5]](),controller[_0x277d[12]]);router[_0x277d[20]](_0x277d[8],auth[_0x277d[5]](),controller[_0x277d[19]]);module[_0x277d[21]]=router
\ No newline at end of file
index e299424..e850e67 100644 (file)
@@ -1,181 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var ZendeskConfiguration = require('../../models').ZendeskConfiguration;
-var ZendeskField = require('../../models').ZendeskField;
-
-// Get list of zendesk_configurations
-exports.index = function(req, res) {
-  ZendeskConfiguration
-    .findAll({
-      where: req.query
-    })
-    .then(function(zendesk_configurations) {
-      return res.status(200).send(zendesk_configurations);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single zendesk_configuration
-exports.show = function(req, res) {
-  ZendeskConfiguration
-    .find({
-      where: {
-        id: req.params.id
-      },
-      include: [{
-        all: true
-      }]
-    })
-    .then(function(zendesk_configuration) {
-      if (!zendesk_configuration) {
-        return res.sendStatus(404);
-      }
-      return res.send(zendesk_configuration);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new zendesk_configuration in the DB.
-exports.create = function(req, res) {
-  ZendeskConfiguration
-    .create(req.body)
-    .then(function(zendesk_configuration) {
-      return res.status(201).send(zendesk_configuration);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing zendesk_configuration in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  ZendeskConfiguration
-    .findById(req.params.id)
-    .then(function(zendesk_configuration) {
-      if (!zendesk_configuration) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(zendesk_configuration, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(zendesk_configuration);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a zendesk_configuration from the DB.
-exports.destroy = function(req, res) {
-  ZendeskConfiguration
-    .findById(req.params.id)
-    .then(function(zendesk_configuration) {
-      if (!zendesk_configuration) {
-        return res.sendStatus(404);
-      }
-      zendesk_configuration.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-exports.addConfigurationField = function(req, res, next) {
-  // console.log(req.params);
-  ZendeskConfiguration
-    .findById(req.params.id)
-    .then(function(configuration) {
-      if (!configuration) {
-        return res.sendStatus(500);
-      }
-      ZendeskField
-        .create(req.body)
-        .then(function(field) {
-          switch (req.params.type) {
-            case 'subject':
-              configuration.addSubject(field)
-                .then(function() {
-                  return res.status(200).send(field);
-                })
-                .catch(function(err) {
-                  return handleError(res, err);
-                });
-              break;
-            case 'description':
-              configuration.addDescription(field)
-                .then(function() {
-                  return res.status(200).send(field);
-                })
-                .catch(function(err) {
-                  return handleError(res, err);
-                });
-              break;
-            case 'field':
-              configuration.addField(field)
-                .then(function() {
-                  return res.status(200).send(field);
-                })
-                .catch(function(err) {
-                  return handleError(res, err);
-                });
-              break;
-          }
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-          // return next(err);
-        });
-    })
-    .catch(function(err) {
-      // return next(err);
-      return handleError(res, err);
-    });
-};
-
-exports.addConfigurationTags = function(req, res, next) {
-  ZendeskConfiguration
-    .findById(req.params.id)
-    .then(handleEntityNotFound(res))
-    .then(function(configuration) {
-      return configuration.setTags(req.body);
-    })
-    .then(function(data) {
-      return res.sendStatus(200);
-    })
-    .catch(function(err) {
-      console.error(err);
-      return handleError(res, err);
-    });
-};
-
-function handleEntityNotFound(res) {
-  return function(entity) {
-    if (!entity) {
-      res.status(404).end();
-      return null;
-    }
-    return entity;
-  };
-}
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x5872=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x64\x65\x73\x74\x72\x6F\x79","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x46\x69\x65\x6C\x64","\x61\x64\x64\x53\x75\x62\x6A\x65\x63\x74","\x73\x75\x62\x6A\x65\x63\x74","\x61\x64\x64\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x46\x69\x65\x6C\x64","\x66\x69\x65\x6C\x64","\x74\x79\x70\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x54\x61\x67\x73","\x65\x72\x72\x6F\x72","\x73\x65\x74\x54\x61\x67\x73","\x65\x6E\x64"];_0x5872[0];var _=require(_0x5872[1]);var ZendeskConfiguration=require(_0x5872[3])[_0x5872[2]];var ZendeskField=require(_0x5872[3])[_0x5872[4]];exports[_0x5872[5]]=function(_0x9b9dx4,_0x9b9dx5){ZendeskConfiguration[_0x5872[11]]({where:_0x9b9dx4[_0x5872[10]]})[_0x5872[9]](function(_0x9b9dx7){return _0x9b9dx5[_0x5872[8]](200)[_0x5872[7]](_0x9b9dx7)})[_0x5872[6]](function(_0x9b9dx6){return handleError(_0x9b9dx5,_0x9b9dx6)})};exports[_0x5872[12]]=function(_0x9b9dx4,_0x9b9dx5){ZendeskConfiguration[_0x5872[16]]({where:{id:_0x9b9dx4[_0x5872[15]][_0x5872[14]]},include:[{all:true}]})[_0x5872[9]](function(_0x9b9dx8){if(!_0x9b9dx8){return _0x9b9dx5[_0x5872[13]](404)};return _0x9b9dx5[_0x5872[7]](_0x9b9dx8)})[_0x5872[6]](function(_0x9b9dx6){return handleError(_0x9b9dx5,_0x9b9dx6)})};exports[_0x5872[17]]=function(_0x9b9dx4,_0x9b9dx5){ZendeskConfiguration[_0x5872[17]](_0x9b9dx4[_0x5872[18]])[_0x5872[9]](function(_0x9b9dx8){return _0x9b9dx5[_0x5872[8]](201)[_0x5872[7]](_0x9b9dx8)})[_0x5872[6]](function(_0x9b9dx6){return handleError(_0x9b9dx5,_0x9b9dx6)})};exports[_0x5872[19]]=function(_0x9b9dx4,_0x9b9dx5){if(_0x9b9dx4[_0x5872[18]][_0x5872[14]]){delete _0x9b9dx4[_0x5872[18]][_0x5872[14]]};ZendeskConfiguration[_0x5872[22]](_0x9b9dx4[_0x5872[15]][_0x5872[14]])[_0x5872[9]](function(_0x9b9dx8){if(!_0x9b9dx8){return _0x9b9dx5[_0x5872[13]](404)};var _0x9b9dx9=_[_0x5872[20]](_0x9b9dx8,_0x9b9dx4[_0x5872[18]]);_0x9b9dx9[_0x5872[21]]()[_0x5872[9]](function(){return _0x9b9dx5[_0x5872[8]](200)[_0x5872[7]](_0x9b9dx8)})[_0x5872[6]](function(_0x9b9dx6){return handleError(_0x9b9dx5,_0x9b9dx6)})})[_0x5872[6]](function(_0x9b9dx6){return handleError(_0x9b9dx5,_0x9b9dx6)})};exports[_0x5872[23]]=function(_0x9b9dx4,_0x9b9dx5){ZendeskConfiguration[_0x5872[22]](_0x9b9dx4[_0x5872[15]][_0x5872[14]])[_0x5872[9]](function(_0x9b9dx8){if(!_0x9b9dx8){return _0x9b9dx5[_0x5872[13]](404)};_0x9b9dx8[_0x5872[23]]()[_0x5872[9]](function(){return _0x9b9dx5[_0x5872[13]](204)})[_0x5872[6]](function(_0x9b9dx6){return handleError(_0x9b9dx5,_0x9b9dx6)})})[_0x5872[6]](function(_0x9b9dx6){return handleError(_0x9b9dx5,_0x9b9dx6)})};exports[_0x5872[24]]=function(_0x9b9dx4,_0x9b9dx5,_0x9b9dxa){ZendeskConfiguration[_0x5872[22]](_0x9b9dx4[_0x5872[15]][_0x5872[14]])[_0x5872[9]](function(_0x9b9dxb){if(!_0x9b9dxb){return _0x9b9dx5[_0x5872[13]](500)};ZendeskField[_0x5872[17]](_0x9b9dx4[_0x5872[18]])[_0x5872[9]](function(_0x9b9dxc){switch(_0x9b9dx4[_0x5872[15]][_0x5872[31]]){case _0x5872[26]:_0x9b9dxb[_0x5872[25]](_0x9b9dxc)[_0x5872[9]](function(){return _0x9b9dx5[_0x5872[8]](200)[_0x5872[7]](_0x9b9dxc)})[_0x5872[6]](function(_0x9b9dx6){return handleError(_0x9b9dx5,_0x9b9dx6)});break;case _0x5872[28]:_0x9b9dxb[_0x5872[27]](_0x9b9dxc)[_0x5872[9]](function(){return _0x9b9dx5[_0x5872[8]](200)[_0x5872[7]](_0x9b9dxc)})[_0x5872[6]](function(_0x9b9dx6){return handleError(_0x9b9dx5,_0x9b9dx6)});break;case _0x5872[30]:_0x9b9dxb[_0x5872[29]](_0x9b9dxc)[_0x5872[9]](function(){return _0x9b9dx5[_0x5872[8]](200)[_0x5872[7]](_0x9b9dxc)})[_0x5872[6]](function(_0x9b9dx6){return handleError(_0x9b9dx5,_0x9b9dx6)});break}})[_0x5872[6]](function(_0x9b9dx6){return handleError(_0x9b9dx5,_0x9b9dx6)})})[_0x5872[6]](function(_0x9b9dx6){return handleError(_0x9b9dx5,_0x9b9dx6)})};exports[_0x5872[32]]=function(_0x9b9dx4,_0x9b9dx5,_0x9b9dxa){ZendeskConfiguration[_0x5872[22]](_0x9b9dx4[_0x5872[15]][_0x5872[14]])[_0x5872[9]](handleEntityNotFound(_0x9b9dx5))[_0x5872[9]](function(_0x9b9dxb){return _0x9b9dxb[_0x5872[34]](_0x9b9dx4[_0x5872[18]])})[_0x5872[9]](function(_0x9b9dxd){return _0x9b9dx5[_0x5872[13]](200)})[_0x5872[6]](function(_0x9b9dx6){console[_0x5872[33]](_0x9b9dx6);return handleError(_0x9b9dx5,_0x9b9dx6)})};function handleEntityNotFound(_0x9b9dx5){return function(_0x9b9dxf){if(!_0x9b9dxf){_0x9b9dx5[_0x5872[8]](404)[_0x5872[35]]();return null};return _0x9b9dxf}}function handleError(_0x9b9dx5,_0x9b9dx6){return _0x9b9dx5[_0x5872[8]](500)[_0x5872[7]](_0x9b9dx6)}
\ No newline at end of file
index d9a56f1..16f7062 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ZendeskConfiguration = require('../../models').ZendeskConfiguration;
-
-exports.register = function(socket) {
-  ZendeskConfiguration.afterCreate(function (doc) {
-    onSave(socket, doc);
-  });
-  ZendeskConfiguration.afterDestroy(function (doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('zendesk_configuration:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('zendesk_configuration:remove', doc);
-}
+var _0x3849=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x3A\x72\x65\x6D\x6F\x76\x65"];_0x3849[0];var ZendeskConfiguration=require(_0x3849[2])[_0x3849[1]];exports[_0x3849[3]]=function(_0x2811x2){ZendeskConfiguration[_0x3849[4]](function(_0x2811x3){onSave(_0x2811x2,_0x2811x3)});ZendeskConfiguration[_0x3849[5]](function(_0x2811x3){onRemove(_0x2811x2,_0x2811x3)})};function onSave(_0x2811x2,_0x2811x3,_0x2811x5){_0x2811x2[_0x3849[7]](_0x3849[6],_0x2811x3)}function onRemove(_0x2811x2,_0x2811x3,_0x2811x5){_0x2811x2[_0x3849[7]](_0x3849[8],_0x2811x3)}
\ No newline at end of file
index 3589f5d..30fc679 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/zendesk/configurations', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/zendesk/configurations')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
\ No newline at end of file
+var _0x8e44=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74"];_0x8e44[0];var should=require(_0x8e44[1]);var app=require(_0x8e44[2]);var request=require(_0x8e44[3]);describe(_0x8e44[4],function(){it(_0x8e44[5],function(_0xecd7x4){request(app)[_0x8e44[13]](_0x8e44[12])[_0x8e44[11]](200)[_0x8e44[11]](_0x8e44[10],/json/)[_0x8e44[9]](function(_0xecd7x5,_0xecd7x6){if(_0xecd7x5){return _0xecd7x4(_0xecd7x5)};_0xecd7x6[_0x8e44[8]][_0x8e44[1]][_0x8e44[7]][_0x8e44[6]](Array);_0xecd7x4()})})})
\ No newline at end of file
index 76f5c48..5cee72c 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-var express = require('express');
-var controller = require('./zendesk_field.controller');
-
-var router = express.Router();
-
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
-
-module.exports = router;
+var _0xb1d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x70\x61\x74\x63\x68","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xb1d0[0];var express=require(_0xb1d0[1]);var controller=require(_0xb1d0[2]);var router=express.Router();router[_0xb1d0[5]](_0xb1d0[3],controller[_0xb1d0[4]]);router[_0xb1d0[5]](_0xb1d0[6],controller[_0xb1d0[7]]);router[_0xb1d0[9]](_0xb1d0[3],controller[_0xb1d0[8]]);router[_0xb1d0[11]](_0xb1d0[6],controller[_0xb1d0[10]]);router[_0xb1d0[12]](_0xb1d0[6],controller[_0xb1d0[10]]);router[_0xb1d0[14]](_0xb1d0[6],controller[_0xb1d0[13]]);module[_0xb1d0[15]]=router
\ No newline at end of file
index 48d0c38..70be3df 100644 (file)
@@ -1,93 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var ZendeskField = require('../../models').ZendeskField;
-
-// Get list of zendesk_fields
-exports.index = function(req, res) {
-  ZendeskField
-    .findAll()
-    .then(function(zendesk_fields) {
-      return res.status(200).send(zendesk_fields);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Get a single zendesk_field
-exports.show = function(req, res) {
-  ZendeskField
-    .findById(req.params.id)
-    .then(function(zendesk_field) {
-      if (!zendesk_field) {
-        return res.sendStatus(404);
-      }
-      return res.send(zendesk_field);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Creates a new zendesk_field in the DB.
-exports.create = function(req, res) {
-  ZendeskField
-    .create(req.body)
-    .then(function(zendesk_field) {
-      return res.status(201).send(zendesk_field);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Updates an existing zendesk_field in the DB.
-exports.update = function(req, res) {
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  ZendeskField
-    .findById(req.params.id)
-    .then(function(zendesk_field) {
-      if (!zendesk_field) {
-        return res.sendStatus(404);
-      }
-      var updated = _.merge(zendesk_field, req.body);
-      updated.save()
-        .then(function() {
-          return res.status(200).send(zendesk_field);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-// Deletes a zendesk_field from the DB.
-exports.destroy = function(req, res) {
-  ZendeskField
-    .findById(req.params.id)
-    .then(function(zendesk_field) {
-      if (!zendesk_field) {
-        return res.sendStatus(404);
-      }
-      zendesk_field.destroy()
-        .then(function() {
-          return res.sendStatus(204);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-        });
-    })
-    .catch(function(err) {
-      return handleError(res, err);
-    });
-};
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x8a06=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64\x42\x79\x49\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x64\x65\x73\x74\x72\x6F\x79"];_0x8a06[0];var _=require(_0x8a06[1]);var ZendeskField=require(_0x8a06[3])[_0x8a06[2]];exports[_0x8a06[4]]=function(_0xa494x3,_0xa494x4){ZendeskField[_0x8a06[9]]()[_0x8a06[8]](function(_0xa494x6){return _0xa494x4[_0x8a06[7]](200)[_0x8a06[6]](_0xa494x6)})[_0x8a06[5]](function(_0xa494x5){return handleError(_0xa494x4,_0xa494x5)})};exports[_0x8a06[10]]=function(_0xa494x3,_0xa494x4){ZendeskField[_0x8a06[14]](_0xa494x3[_0x8a06[13]][_0x8a06[12]])[_0x8a06[8]](function(_0xa494x7){if(!_0xa494x7){return _0xa494x4[_0x8a06[11]](404)};return _0xa494x4[_0x8a06[6]](_0xa494x7)})[_0x8a06[5]](function(_0xa494x5){return handleError(_0xa494x4,_0xa494x5)})};exports[_0x8a06[15]]=function(_0xa494x3,_0xa494x4){ZendeskField[_0x8a06[15]](_0xa494x3[_0x8a06[16]])[_0x8a06[8]](function(_0xa494x7){return _0xa494x4[_0x8a06[7]](201)[_0x8a06[6]](_0xa494x7)})[_0x8a06[5]](function(_0xa494x5){return handleError(_0xa494x4,_0xa494x5)})};exports[_0x8a06[17]]=function(_0xa494x3,_0xa494x4){if(_0xa494x3[_0x8a06[16]][_0x8a06[12]]){delete _0xa494x3[_0x8a06[16]][_0x8a06[12]]};ZendeskField[_0x8a06[14]](_0xa494x3[_0x8a06[13]][_0x8a06[12]])[_0x8a06[8]](function(_0xa494x7){if(!_0xa494x7){return _0xa494x4[_0x8a06[11]](404)};var _0xa494x8=_[_0x8a06[18]](_0xa494x7,_0xa494x3[_0x8a06[16]]);_0xa494x8[_0x8a06[19]]()[_0x8a06[8]](function(){return _0xa494x4[_0x8a06[7]](200)[_0x8a06[6]](_0xa494x7)})[_0x8a06[5]](function(_0xa494x5){return handleError(_0xa494x4,_0xa494x5)})})[_0x8a06[5]](function(_0xa494x5){return handleError(_0xa494x4,_0xa494x5)})};exports[_0x8a06[20]]=function(_0xa494x3,_0xa494x4){ZendeskField[_0x8a06[14]](_0xa494x3[_0x8a06[13]][_0x8a06[12]])[_0x8a06[8]](function(_0xa494x7){if(!_0xa494x7){return _0xa494x4[_0x8a06[11]](404)};_0xa494x7[_0x8a06[20]]()[_0x8a06[8]](function(){return _0xa494x4[_0x8a06[11]](204)})[_0x8a06[5]](function(_0xa494x5){return handleError(_0xa494x4,_0xa494x5)})})[_0x8a06[5]](function(_0xa494x5){return handleError(_0xa494x4,_0xa494x5)})};function handleError(_0xa494x4,_0xa494x5){return _0xa494x4[_0x8a06[7]](500)[_0x8a06[6]](_0xa494x5)}
\ No newline at end of file
index 8a5419b..e4584ec 100644 (file)
@@ -1,24 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var ZendeskField = require('../../models').ZendeskField;
-
-exports.register = function(socket) {
-  ZendeskField.afterCreate(function(doc) {
-    onSave(socket, doc);
-  });
-  ZendeskField.afterDestroy(function(doc) {
-    onRemove(socket, doc);
-  });
-}
-
-function onSave(socket, doc, cb) {
-  socket.emit('zendesk_field:save', doc);
-}
-
-function onRemove(socket, doc, cb) {
-  socket.emit('zendesk_field:remove', doc);
-}
+var _0xf770=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x3A\x72\x65\x6D\x6F\x76\x65"];_0xf770[0];var ZendeskField=require(_0xf770[2])[_0xf770[1]];exports[_0xf770[3]]=function(_0x52a9x2){ZendeskField[_0xf770[4]](function(_0x52a9x3){onSave(_0x52a9x2,_0x52a9x3)});ZendeskField[_0xf770[5]](function(_0x52a9x3){onRemove(_0x52a9x2,_0x52a9x3)})};function onSave(_0x52a9x2,_0x52a9x3,_0x52a9x5){_0x52a9x2[_0xf770[7]](_0xf770[6],_0x52a9x3)}function onRemove(_0x52a9x2,_0x52a9x3,_0x52a9x5){_0x52a9x2[_0xf770[7]](_0xf770[8],_0x52a9x3)}
\ No newline at end of file
index 1527fe8..d625ce3 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var should = require('should');
-var app = require('../../app');
-var request = require('supertest');
-
-describe('GET /api/zendesk/fields', function() {
-
-  it('should respond with JSON array', function(done) {
-    request(app)
-      .get('/api/zendesk/fields')
-      .expect(200)
-      .expect('Content-Type', /json/)
-      .end(function(err, res) {
-        if (err) return done(err);
-        res.body.should.be.instanceof(Array);
-        done();
-      });
-  });
-});
+var _0x657f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x68\x6F\x75\x6C\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x70","\x73\x75\x70\x65\x72\x74\x65\x73\x74","\x47\x45\x54\x20\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x73\x68\x6F\x75\x6C\x64\x20\x72\x65\x73\x70\x6F\x6E\x64\x20\x77\x69\x74\x68\x20\x4A\x53\x4F\x4E\x20\x61\x72\x72\x61\x79","\x69\x6E\x73\x74\x61\x6E\x63\x65\x6F\x66","\x62\x65","\x62\x6F\x64\x79","\x65\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65","\x65\x78\x70\x65\x63\x74","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74"];_0x657f[0];var should=require(_0x657f[1]);var app=require(_0x657f[2]);var request=require(_0x657f[3]);describe(_0x657f[4],function(){it(_0x657f[5],function(_0x61a3x4){request(app)[_0x657f[13]](_0x657f[12])[_0x657f[11]](200)[_0x657f[11]](_0x657f[10],/json/)[_0x657f[9]](function(_0x61a3x5,_0x61a3x6){if(_0x61a3x5){return _0x61a3x4(_0x61a3x5)};_0x61a3x6[_0x657f[8]][_0x657f[1]][_0x657f[7]][_0x657f[6]](Array);_0x61a3x4()})})})
\ No newline at end of file
index 241452e..3010dba 100644 (file)
@@ -1,112 +1 @@
-/**
- * Main application file
- */
-
-'use strict';
-
-// Set default node environment to development
-process.env.NODE_ENV = process.env.NODE_ENV || 'development';
-process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;
-
-process.on('uncaughtException', function(err) {
-  if (typeof err === 'object') {
-    if (err.message) {
-      console.log('\nMessage: ' + err.message)
-    }
-    if (err.stack) {
-      console.log('\nStacktrace:')
-      console.log('====================')
-      console.log(err.stack);
-    }
-  } else {
-    console.log('dumpError :: argument is not an object');
-  }
-});
-
-var os = require('os');
-var http = require('http');
-var util = require('util');
-var crypto = require('crypto');
-var cronjob = require('cron').CronJob;
-var shelljs = require('shelljs/global');
-
-var express = require('express');
-var models = require('./models');
-var config = require('./config/environment');
-
-var Settings = models.Settings;
-
-// Setup server
-var app = express();
-var server = require('http').createServer(app);
-var io = require('socket.io')(server, {
-  serveClient: (config.env === 'production') ? false : true,
-  path: '/socket.io-client'
-});
-
-var ami = require('asterisk-manager')(config.asterisk.port,
-  config.asterisk.host,
-  config.asterisk.username,
-  config.asterisk.password,
-  true);
-ami.keepConnected();
-
-// Initialization Kue
-var kue = require('kue');
-kue.app.listen(3001);
-
-var _setting;
-var _license;
-
-require('./config/express')(app);
-require('./routes')(app);
-
-models
-  .sequelize
-  .sync()
-  .then(function() {
-
-    require('./routes')(app);
-    // Populate DB Develop with sample data
-    if (config.seedDB) {
-      require('./config/seed');
-    }
-    // Populate DB Production with sample data
-    if (config.seedPDB) {
-      require('./config/seedp');
-    }
-
-    // Start Cally Square Projects
-    require('./config/socketio')(io);
-    require('./config/routing/mail')();
-    require('./config/routing/chat')();
-    require('./config/automations/mail')();
-    require('./config/automations/fax')();
-    require('./config/triggers')(ami);
-    require('./config/imap')();
-    require('./config/smtp')();
-    require('./config/tools')();
-    require('./config/ami')(ami);
-    require('./config/agi')();
-    require('./config/license')();
-
-    // Start server
-    server.listen(config.port, config.ip, function() {
-      console.log('Express server listening on %d, in %s mode', config.port, app.get('env'));
-    });
-  })
-  .then(function() {
-    // Connect to database history
-    return models
-      .sequelize_history
-      .sync();
-  })
-  .then(function() {
-    require('./config/history/history')(cronjob);
-  })
-  .catch(function(err) {
-    console.error(err);
-  });
-
-// Expose app
-exports = module.exports = app;
+var _0xd870=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4E\x4F\x44\x45\x5F\x45\x4E\x56","\x65\x6E\x76","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x4E\x4F\x44\x45\x5F\x54\x4C\x53\x5F\x52\x45\x4A\x45\x43\x54\x5F\x55\x4E\x41\x55\x54\x48\x4F\x52\x49\x5A\x45\x44","\x75\x6E\x63\x61\x75\x67\x68\x74\x45\x78\x63\x65\x70\x74\x69\x6F\x6E","\x6F\x62\x6A\x65\x63\x74","\x6D\x65\x73\x73\x61\x67\x65","\x0A\x4D\x65\x73\x73\x61\x67\x65\x3A\x20","\x6C\x6F\x67","\x73\x74\x61\x63\x6B","\x0A\x53\x74\x61\x63\x6B\x74\x72\x61\x63\x65\x3A","\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D\x3D","\x64\x75\x6D\x70\x45\x72\x72\x6F\x72\x20\x3A\x3A\x20\x61\x72\x67\x75\x6D\x65\x6E\x74\x20\x69\x73\x20\x6E\x6F\x74\x20\x61\x6E\x20\x6F\x62\x6A\x65\x63\x74","\x6F\x6E","\x6F\x73","\x68\x74\x74\x70","\x75\x74\x69\x6C","\x63\x72\x79\x70\x74\x6F","\x43\x72\x6F\x6E\x4A\x6F\x62","\x63\x72\x6F\x6E","\x73\x68\x65\x6C\x6C\x6A\x73\x2F\x67\x6C\x6F\x62\x61\x6C","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x53\x65\x74\x74\x69\x6E\x67\x73","\x63\x72\x65\x61\x74\x65\x53\x65\x72\x76\x65\x72","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x2F\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x63\x6C\x69\x65\x6E\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F","\x70\x6F\x72\x74","\x61\x73\x74\x65\x72\x69\x73\x6B","\x68\x6F\x73\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x61\x73\x74\x65\x72\x69\x73\x6B\x2D\x6D\x61\x6E\x61\x67\x65\x72","\x6B\x65\x65\x70\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x6B\x75\x65","\x6C\x69\x73\x74\x65\x6E","\x61\x70\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x72\x6F\x75\x74\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x68\x69\x73\x74\x6F\x72\x79\x2F\x68\x69\x73\x74\x6F\x72\x79","\x74\x68\x65\x6E","\x73\x79\x6E\x63","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65\x5F\x68\x69\x73\x74\x6F\x72\x79","\x73\x65\x65\x64\x44\x42","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x65\x65\x64","\x73\x65\x65\x64\x50\x44\x42","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x65\x65\x64\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x6F\x63\x6B\x65\x74\x69\x6F","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x72\x6F\x75\x74\x69\x6E\x67\x2F\x6D\x61\x69\x6C","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x72\x6F\x75\x74\x69\x6E\x67\x2F\x63\x68\x61\x74","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73\x2F\x6D\x61\x69\x6C","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73\x2F\x66\x61\x78","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x69\x6D\x61\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x6D\x74\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x74\x6F\x6F\x6C\x73","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x6D\x69","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x67\x69","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x69\x70","\x45\x78\x70\x72\x65\x73\x73\x20\x73\x65\x72\x76\x65\x72\x20\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67\x20\x6F\x6E\x20\x25\x64\x2C\x20\x69\x6E\x20\x25\x73\x20\x6D\x6F\x64\x65","\x67\x65\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd870[0];process[_0xd870[2]][_0xd870[1]]=process[_0xd870[2]][_0xd870[1]]||_0xd870[3];process[_0xd870[2]][_0xd870[4]]=0;process[_0xd870[14]](_0xd870[5],function(_0xf6ddx1){if( typeof _0xf6ddx1===_0xd870[6]){if(_0xf6ddx1[_0xd870[7]]){console[_0xd870[9]](_0xd870[8]+_0xf6ddx1[_0xd870[7]])};if(_0xf6ddx1[_0xd870[10]]){console[_0xd870[9]](_0xd870[11]);console[_0xd870[9]](_0xd870[12]);console[_0xd870[9]](_0xf6ddx1[_0xd870[10]])}}else {console[_0xd870[9]](_0xd870[13])}});var os=require(_0xd870[15]);var http=require(_0xd870[16]);var util=require(_0xd870[17]);var crypto=require(_0xd870[18]);var cronjob=require(_0xd870[20])[_0xd870[19]];var shelljs=require(_0xd870[21]);var express=require(_0xd870[22]);var models=require(_0xd870[23]);var config=require(_0xd870[24]);var Settings=models[_0xd870[25]];var app=express();var server=require(_0xd870[16])[_0xd870[26]](app);var io=require(_0xd870[29])(server,{serveClient:(config[_0xd870[2]]===_0xd870[27])?false:true,path:_0xd870[28]});var ami=require(_0xd870[35])(config[_0xd870[31]][_0xd870[30]],config[_0xd870[31]][_0xd870[32]],config[_0xd870[31]][_0xd870[33]],config[_0xd870[31]][_0xd870[34]],true);ami[_0xd870[36]]();var kue=require(_0xd870[37]);kue[_0xd870[39]][_0xd870[38]](3001);var _setting;var _license;require(_0xd870[40])(app);require(_0xd870[41])(app);models[_0xd870[67]][_0xd870[46]]()[_0xd870[45]](function(){require(_0xd870[41])(app);if(config[_0xd870[48]]){require(_0xd870[49])};if(config[_0xd870[50]]){require(_0xd870[51])};require(_0xd870[52])(io);require(_0xd870[53])();require(_0xd870[54])();require(_0xd870[55])();require(_0xd870[56])();require(_0xd870[57])(ami);require(_0xd870[58])();require(_0xd870[59])();require(_0xd870[60])();require(_0xd870[61])(ami);require(_0xd870[62])();require(_0xd870[63])();server[_0xd870[38]](config[_0xd870[30]],config[_0xd870[64]],function(){console[_0xd870[9]](_0xd870[65],config[_0xd870[30]],app[_0xd870[66]](_0xd870[2]))})})[_0xd870[45]](function(){return models[_0xd870[47]][_0xd870[46]]()})[_0xd870[45]](function(){require(_0xd870[44])(cronjob)})[_0xd870[43]](function(_0xf6ddx1){console[_0xd870[42]](_0xf6ddx1)});exports=module[_0xd870[68]]=app
\ No newline at end of file
index f4e7fbe..28c7e36 100644 (file)
@@ -8,7 +8,6 @@
     "cwd": "/var/opt/motion/server",
     "error_file": "/var/log/xcally/motion-err.log",
     "out_file": "/var/log/xcally/motion-out.log",
-    "log_date_format": "YYYY-MM-DD HH:mm Z",
-    "watch": false
+    "log_date_format": "YYYY-MM-DD HH:mm Z"
   }]
 }
index a606070..1535acc 100644 (file)
@@ -1,95 +1 @@
-'use strict';
-
-//var mongoose = require('mongoose');
-var passport = require('passport');
-var config = require('../config/environment');
-var jwt = require('jsonwebtoken');
-var expressJwt = require('express-jwt');
-var compose = require('composable-middleware');
-// var User = require('../api/user/user.model');
-var User = require('../models').User;
-var Service = require('../models').Service;
-var validateJwt = expressJwt({
-  secret: config.session.secret
-});
-
-/**
- * Attaches the user object to the request if authenticated
- * Otherwise returns 403
- */
-function isAuthenticated() {
-  return compose()
-    // Validate jwt
-    .use(function(req, res, next) {
-      // allow access_token to be passed through query parameter as well
-      if (req.query && req.query.hasOwnProperty('access_token')) {
-        req.headers.authorization = 'Bearer ' + req.query.access_token;
-      }
-      validateJwt(req, res, next);
-    })
-    // Attach user to request
-    .use(function(req, res, next) {
-      User
-        .findById(req.user.id, {
-          include: [{
-            model: Service
-          }]
-        })
-        .then(function(user) {
-          if (!user) return res.send(401);
-          req.user = user;
-          return next();
-        })
-        .catch(function(err) {
-          return next(err);
-        });
-    });
-}
-
-/**
- * Checks if the user role meets the minimum requirements of the route
- */
-function hasRole(roleRequired) {
-  if (!roleRequired) throw new Error('Required role needs to be set');
-
-  return compose()
-    .use(isAuthenticated())
-    .use(function meetsRequirements(req, res, next) {
-      if (config.userRoles.indexOf(req.user.role) >= config.userRoles.indexOf(roleRequired)) {
-        return next();
-      } else {
-        return res.send(403);
-      }
-    });
-}
-
-/**
- * Returns a jwt token signed by the app secret
- */
-function signToken(id, role, remember) {
-  var expiresIn = 60 * 24 * 365 * 5; //If remember, it expires in 5 years
-  if (!remember)
-    expiresIn = "1d"; //Expire in one day
-  return jwt.sign({
-    id: id
-  }, config.session.secret, {
-    expiresIn: expiresIn
-  });
-}
-
-/**
- * Set token cookie directly for oAuth strategies
- */
-function setTokenCookie(req, res) {
-  if (!req.user) return res.json(404, {
-    message: 'Something went wrong, please try again.'
-  });
-  var token = signToken(req.user.id, req.user.role);
-  res.cookie('token', JSON.stringify(token));
-  res.redirect('/');
-}
-
-exports.isAuthenticated = isAuthenticated;
-exports.hasRole = hasRole;
-exports.signToken = signToken;
-exports.setTokenCookie = setTokenCookie;
+var _0xe795=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6A\x73\x6F\x6E\x77\x65\x62\x74\x6F\x6B\x65\x6E","\x65\x78\x70\x72\x65\x73\x73\x2D\x6A\x77\x74","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x55\x73\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x53\x65\x72\x76\x69\x63\x65","\x73\x65\x63\x72\x65\x74","\x73\x65\x73\x73\x69\x6F\x6E","\x63\x61\x74\x63\x68","\x73\x65\x6E\x64","\x75\x73\x65\x72","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x75\x73\x65","\x71\x75\x65\x72\x79","\x61\x63\x63\x65\x73\x73\x5F\x74\x6F\x6B\x65\x6E","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x61\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x68\x65\x61\x64\x65\x72\x73","\x42\x65\x61\x72\x65\x72\x20","\x52\x65\x71\x75\x69\x72\x65\x64\x20\x72\x6F\x6C\x65\x20\x6E\x65\x65\x64\x73\x20\x74\x6F\x20\x62\x65\x20\x73\x65\x74","\x72\x6F\x6C\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x75\x73\x65\x72\x52\x6F\x6C\x65\x73","\x31\x64","\x73\x69\x67\x6E","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x77\x65\x6E\x74\x20\x77\x72\x6F\x6E\x67\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x6A\x73\x6F\x6E","\x74\x6F\x6B\x65\x6E","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x63\x6F\x6F\x6B\x69\x65","\x2F","\x72\x65\x64\x69\x72\x65\x63\x74","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x68\x61\x73\x52\x6F\x6C\x65","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65"];_0xe795[0];var passport=require(_0xe795[1]);var config=require(_0xe795[2]);var jwt=require(_0xe795[3]);var expressJwt=require(_0xe795[4]);var compose=require(_0xe795[5]);var User=require(_0xe795[7])[_0xe795[6]];var Service=require(_0xe795[7])[_0xe795[8]];var validateJwt=expressJwt({secret:config[_0xe795[10]][_0xe795[9]]});function isAuthenticated(){return compose()[_0xe795[17]](function(_0xa8aaxa,_0xa8aaxb,_0xa8aaxc){if(_0xa8aaxa[_0xe795[18]]&&_0xa8aaxa[_0xe795[18]][_0xe795[20]](_0xe795[19])){_0xa8aaxa[_0xe795[22]][_0xe795[21]]=_0xe795[23]+_0xa8aaxa[_0xe795[18]][_0xe795[19]]};validateJwt(_0xa8aaxa,_0xa8aaxb,_0xa8aaxc)})[_0xe795[17]](function(_0xa8aaxa,_0xa8aaxb,_0xa8aaxc){User[_0xe795[16]](_0xa8aaxa[_0xe795[13]][_0xe795[15]],{include:[{model:Service}]})[_0xe795[14]](function(_0xa8aaxe){if(!_0xa8aaxe){return _0xa8aaxb[_0xe795[12]](401)};_0xa8aaxa[_0xe795[13]]=_0xa8aaxe;return _0xa8aaxc()})[_0xe795[11]](function(_0xa8aaxd){return _0xa8aaxc(_0xa8aaxd)})})}function hasRole(_0xa8aax10){if(!_0xa8aax10){throw  new Error(_0xe795[24])};return compose()[_0xe795[17]](isAuthenticated())[_0xe795[17]](function _0xa8aax11(_0xa8aaxa,_0xa8aaxb,_0xa8aaxc){if(config[_0xe795[27]][_0xe795[26]](_0xa8aaxa[_0xe795[13]][_0xe795[25]])>=config[_0xe795[27]][_0xe795[26]](_0xa8aax10)){return _0xa8aaxc()}else {return _0xa8aaxb[_0xe795[12]](403)}})}function signToken(_0xa8aax13,_0xa8aax14,_0xa8aax15){var _0xa8aax16=60*24*365*5;if(!_0xa8aax15){_0xa8aax16=_0xe795[28]};return jwt[_0xe795[29]]({id:_0xa8aax13},config[_0xe795[10]][_0xe795[9]],{expiresIn:_0xa8aax16})}function setTokenCookie(_0xa8aaxa,_0xa8aaxb){if(!_0xa8aaxa[_0xe795[13]]){return _0xa8aaxb[_0xe795[31]](404,{message:_0xe795[30]})};var _0xa8aax18=signToken(_0xa8aaxa[_0xe795[13]][_0xe795[15]],_0xa8aaxa[_0xe795[13]][_0xe795[25]]);_0xa8aaxb[_0xe795[34]](_0xe795[32],JSON[_0xe795[33]](_0xa8aax18));_0xa8aaxb[_0xe795[36]](_0xe795[35])}exports[_0xe795[37]]=isAuthenticated;exports[_0xe795[38]]=hasRole;exports[_0xe795[39]]=signToken;exports[_0xe795[40]]=setTokenCookie
\ No newline at end of file
index 4a6f878..7dfe321 100644 (file)
@@ -1,21 +1 @@
-'use strict';
-
-var express = require('express');
-var passport = require('passport');
-var auth = require('../auth.service');
-
-var router = express.Router();
-
-router
-  .get('/', passport.authenticate('facebook', {
-    scope: ['email', 'user_about_me'],
-    failureRedirect: '/signup',
-    session: false
-  }))
-
-  .get('/callback', passport.authenticate('facebook', {
-    failureRedirect: '/signup',
-    session: false
-  }), auth.setTokenCookie);
-
-module.exports = router;
\ No newline at end of file
+var _0x407f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x2F\x73\x69\x67\x6E\x75\x70","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x67\x65\x74","\x2F","\x65\x6D\x61\x69\x6C","\x75\x73\x65\x72\x5F\x61\x62\x6F\x75\x74\x5F\x6D\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x407f[0];var express=require(_0x407f[1]);var passport=require(_0x407f[2]);var auth=require(_0x407f[3]);var router=express.Router();router[_0x407f[9]](_0x407f[10],passport[_0x407f[7]](_0x407f[5],{scope:[_0x407f[11],_0x407f[12]],failureRedirect:_0x407f[6],session:false}))[_0x407f[9]](_0x407f[4],passport[_0x407f[7]](_0x407f[5],{failureRedirect:_0x407f[6],session:false}),auth[_0x407f[8]]);module[_0x407f[13]]=router
\ No newline at end of file
index 90ae489..877dc1b 100644 (file)
@@ -1,37 +1 @@
-var passport = require('passport');
-var FacebookStrategy = require('passport-facebook').Strategy;
-
-exports.setup = function (User, config) {
-  passport.use(new FacebookStrategy({
-      clientID: config.facebook.clientID,
-      clientSecret: config.facebook.clientSecret,
-      callbackURL: config.facebook.callbackURL
-    },
-    function(accessToken, refreshToken, profile, done) {
-      User.findOne({
-        'facebook.id': profile.id
-      },
-      function(err, user) {
-        if (err) {
-          return done(err);
-        }
-        if (!user) {
-          user = new User({
-            name: profile.displayName,
-            email: profile.emails[0].value,
-            role: 'user',
-            username: profile.username,
-            provider: 'facebook',
-            facebook: profile._json
-          });
-          user.save(function(err) {
-            if (err) done(err);
-            return done(err, user);
-          });
-        } else {
-          return done(err, user);
-        }
-      })
-    }
-  ));
-};
\ No newline at end of file
+var _0xce3a=["\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x73\x65\x74\x75\x70","\x63\x6C\x69\x65\x6E\x74\x49\x44","\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x52\x4C","\x69\x64","\x64\x69\x73\x70\x6C\x61\x79\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x65\x6D\x61\x69\x6C\x73","\x75\x73\x65\x72","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x5F\x6A\x73\x6F\x6E","\x73\x61\x76\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x73\x65"];var passport=require(_0xce3a[0]);var FacebookStrategy=require(_0xce3a[2])[_0xce3a[1]];exports[_0xce3a[3]]=function(_0xc516x3,_0xc516x4){passport[_0xce3a[17]]( new FacebookStrategy({clientID:_0xc516x4[_0xce3a[5]][_0xce3a[4]],clientSecret:_0xc516x4[_0xce3a[5]][_0xce3a[6]],callbackURL:_0xc516x4[_0xce3a[5]][_0xce3a[7]]},function(_0xc516x5,_0xc516x6,_0xc516x7,_0xc516x8){_0xc516x3[_0xce3a[16]]({"\x66\x61\x63\x65\x62\x6F\x6F\x6B\x2E\x69\x64":_0xc516x7[_0xce3a[8]]},function(_0xc516x9,_0xc516xa){if(_0xc516x9){return _0xc516x8(_0xc516x9)};if(!_0xc516xa){_0xc516xa= new _0xc516x3({name:_0xc516x7[_0xce3a[9]],email:_0xc516x7[_0xce3a[11]][0][_0xce3a[10]],role:_0xce3a[12],username:_0xc516x7[_0xce3a[13]],provider:_0xce3a[5],facebook:_0xc516x7[_0xce3a[14]]});_0xc516xa[_0xce3a[15]](function(_0xc516x9){if(_0xc516x9){_0xc516x8(_0xc516x9)};return _0xc516x8(_0xc516x9,_0xc516xa)})}else {return _0xc516x8(_0xc516x9,_0xc516xa)}})}))}
\ No newline at end of file
index 9b1ce39..2eec004 100644 (file)
@@ -1,24 +1 @@
-'use strict';
-
-var express = require('express');
-var passport = require('passport');
-var auth = require('../auth.service');
-
-var router = express.Router();
-
-router
-  .get('/', passport.authenticate('google', {
-    failureRedirect: '/signup',
-    scope: [
-      'https://www.googleapis.com/auth/userinfo.profile',
-      'https://www.googleapis.com/auth/userinfo.email'
-    ],
-    session: false
-  }))
-
-  .get('/callback', passport.authenticate('google', {
-    failureRedirect: '/signup',
-    session: false
-  }), auth.setTokenCookie);
-
-module.exports = router;
\ No newline at end of file
+var _0x6274=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x67\x6F\x6F\x67\x6C\x65","\x2F\x73\x69\x67\x6E\x75\x70","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x67\x65\x74","\x2F","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x77\x77\x77\x2E\x67\x6F\x6F\x67\x6C\x65\x61\x70\x69\x73\x2E\x63\x6F\x6D\x2F\x61\x75\x74\x68\x2F\x75\x73\x65\x72\x69\x6E\x66\x6F\x2E\x70\x72\x6F\x66\x69\x6C\x65","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x77\x77\x77\x2E\x67\x6F\x6F\x67\x6C\x65\x61\x70\x69\x73\x2E\x63\x6F\x6D\x2F\x61\x75\x74\x68\x2F\x75\x73\x65\x72\x69\x6E\x66\x6F\x2E\x65\x6D\x61\x69\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0x6274[0];var express=require(_0x6274[1]);var passport=require(_0x6274[2]);var auth=require(_0x6274[3]);var router=express.Router();router[_0x6274[9]](_0x6274[10],passport[_0x6274[7]](_0x6274[5],{failureRedirect:_0x6274[6],scope:[_0x6274[11],_0x6274[12]],session:false}))[_0x6274[9]](_0x6274[4],passport[_0x6274[7]](_0x6274[5],{failureRedirect:_0x6274[6],session:false}),auth[_0x6274[8]]);module[_0x6274[13]]=router
\ No newline at end of file
index d304e8a..3d9790a 100644 (file)
@@ -1,33 +1 @@
-var passport = require('passport');
-var GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;
-
-exports.setup = function (User, config) {
-  passport.use(new GoogleStrategy({
-      clientID: config.google.clientID,
-      clientSecret: config.google.clientSecret,
-      callbackURL: config.google.callbackURL
-    },
-    function(accessToken, refreshToken, profile, done) {
-      User.findOne({
-        'google.id': profile.id
-      }, function(err, user) {
-        if (!user) {
-          user = new User({
-            name: profile.displayName,
-            email: profile.emails[0].value,
-            role: 'user',
-            username: profile.username,
-            provider: 'google',
-            google: profile._json
-          });
-          user.save(function(err) {
-            if (err) done(err);
-            return done(err, user);
-          });
-        } else {
-          return done(err, user);
-        }
-      });
-    }
-  ));
-};
+var _0x8b3c=["\x70\x61\x73\x73\x70\x6F\x72\x74","\x4F\x41\x75\x74\x68\x32\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x67\x6F\x6F\x67\x6C\x65\x2D\x6F\x61\x75\x74\x68","\x73\x65\x74\x75\x70","\x63\x6C\x69\x65\x6E\x74\x49\x44","\x67\x6F\x6F\x67\x6C\x65","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x52\x4C","\x69\x64","\x64\x69\x73\x70\x6C\x61\x79\x4E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x65\x6D\x61\x69\x6C\x73","\x75\x73\x65\x72","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x5F\x6A\x73\x6F\x6E","\x73\x61\x76\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x73\x65"];var passport=require(_0x8b3c[0]);var GoogleStrategy=require(_0x8b3c[2])[_0x8b3c[1]];exports[_0x8b3c[3]]=function(_0x8512x3,_0x8512x4){passport[_0x8b3c[17]]( new GoogleStrategy({clientID:_0x8512x4[_0x8b3c[5]][_0x8b3c[4]],clientSecret:_0x8512x4[_0x8b3c[5]][_0x8b3c[6]],callbackURL:_0x8512x4[_0x8b3c[5]][_0x8b3c[7]]},function(_0x8512x5,_0x8512x6,_0x8512x7,_0x8512x8){_0x8512x3[_0x8b3c[16]]({"\x67\x6F\x6F\x67\x6C\x65\x2E\x69\x64":_0x8512x7[_0x8b3c[8]]},function(_0x8512x9,_0x8512xa){if(!_0x8512xa){_0x8512xa= new _0x8512x3({name:_0x8512x7[_0x8b3c[9]],email:_0x8512x7[_0x8b3c[11]][0][_0x8b3c[10]],role:_0x8b3c[12],username:_0x8512x7[_0x8b3c[13]],provider:_0x8b3c[5],google:_0x8512x7[_0x8b3c[14]]});_0x8512xa[_0x8b3c[15]](function(_0x8512x9){if(_0x8512x9){_0x8512x8(_0x8512x9)};return _0x8512x8(_0x8512x9,_0x8512xa)})}else {return _0x8512x8(_0x8512x9,_0x8512xa)}})}))}
\ No newline at end of file
index a034241..2cd9691 100644 (file)
@@ -1,22 +1 @@
-'use strict';
-
-var express   = require('express');
-var passport  = require('passport');
-var config    = require('../config/environment');
-var User      = require('../models').User;
-
-
-// Passport Configuration
-require('./local/passport').setup(User, config);
-require('./facebook/passport').setup(User, config);
-require('./google/passport').setup(User, config);
-require('./twitter/passport').setup(User, config);
-
-var router = express.Router();
-
-router.use('/local', require('./local'));
-router.use('/facebook', require('./facebook'));
-router.use('/twitter', require('./twitter'));
-router.use('/google', require('./google'));
-
-module.exports = router;
+var _0xd991=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x74\x75\x70","\x2E\x2F\x6C\x6F\x63\x61\x6C\x2F\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2F\x66\x61\x63\x65\x62\x6F\x6F\x6B\x2F\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2F\x67\x6F\x6F\x67\x6C\x65\x2F\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2F\x74\x77\x69\x74\x74\x65\x72\x2F\x70\x61\x73\x73\x70\x6F\x72\x74","\x2F\x6C\x6F\x63\x61\x6C","\x2E\x2F\x6C\x6F\x63\x61\x6C","\x75\x73\x65","\x2F\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x2E\x2F\x66\x61\x63\x65\x62\x6F\x6F\x6B","\x2F\x74\x77\x69\x74\x74\x65\x72","\x2E\x2F\x74\x77\x69\x74\x74\x65\x72","\x2F\x67\x6F\x6F\x67\x6C\x65","\x2E\x2F\x67\x6F\x6F\x67\x6C\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd991[0];var express=require(_0xd991[1]);var passport=require(_0xd991[2]);var config=require(_0xd991[3]);var User=require(_0xd991[5])[_0xd991[4]];require(_0xd991[7])[_0xd991[6]](User,config);require(_0xd991[8])[_0xd991[6]](User,config);require(_0xd991[9])[_0xd991[6]](User,config);require(_0xd991[10])[_0xd991[6]](User,config);var router=express.Router();router[_0xd991[13]](_0xd991[11],require(_0xd991[12]));router[_0xd991[13]](_0xd991[14],require(_0xd991[15]));router[_0xd991[13]](_0xd991[16],require(_0xd991[17]));router[_0xd991[13]](_0xd991[18],require(_0xd991[19]));module[_0xd991[20]]=router
\ No newline at end of file
index d60d5e0..a0e4ab9 100644 (file)
@@ -1,63 +1 @@
-'use strict';
-
-var express = require('express');
-var passport = require('passport');
-var async = require('async');
-
-var auth = require('../auth.service');
-var User = require('../../models').User;
-var Action = require('../../models').Action;
-var ReportMember = require('../../models').ReportMember;
-var license = require('../../config/license/license.service');
-
-var channels = ['voice', 'chat', 'mail', 'fax'];
-var router = express.Router();
-
-router.post('/', function(req, res, next) {
-  passport.authenticate('local-login', function(err, user, info) {
-    var error = err || info;
-    if (error) return res.status(401).json(error);
-    if (!user) return res.status(404).json({
-      message: 'Something went wrong, please try again.'
-    });
-
-    return Action
-      .create({
-        name: 'login',
-        data1: user.id,
-        data2: user.name,
-        UserId: user.id
-      })
-      .then(function(action) {
-        return res.json({
-          role: user.role,
-          token: auth.signToken(user.id, user.role, req.body.remember || false),
-          userId: user.id
-        });
-      })
-      .catch(function(err) {
-        return next(err);
-      });
-
-  })(req, res, next)
-});
-
-router
-  .get('/logout', auth.isAuthenticated(), function(req, res, next) {
-    return Action
-      .create({
-        name: 'logout',
-        data1: req.user.id,
-        data2: req.user.name,
-        UserId: req.user.id
-      })
-      .then(function() {
-        req.logout();
-        res.redirect('/');
-      })
-      .catch(function(err) {
-        return next(err);
-      });
-  });
-
-module.exports = router;
+var _0xe4b5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x61\x73\x79\x6E\x63","\x2E\x2E\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x41\x63\x74\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x76\x6F\x69\x63\x65","\x63\x68\x61\x74","\x6D\x61\x69\x6C","\x66\x61\x78","\x2F","\x6C\x6F\x63\x61\x6C\x2D\x6C\x6F\x67\x69\x6E","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x77\x65\x6E\x74\x20\x77\x72\x6F\x6E\x67\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x63\x61\x74\x63\x68","\x72\x6F\x6C\x65","\x69\x64","\x72\x65\x6D\x65\x6D\x62\x65\x72","\x62\x6F\x64\x79","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x74\x68\x65\x6E","\x6C\x6F\x67\x69\x6E","\x6E\x61\x6D\x65","\x63\x72\x65\x61\x74\x65","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x6C\x6F\x67\x6F\x75\x74","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x6C\x6F\x67\x6F\x75\x74","\x72\x65\x64\x69\x72\x65\x63\x74","\x75\x73\x65\x72","\x67\x65\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xe4b5[0];var express=require(_0xe4b5[1]);var passport=require(_0xe4b5[2]);var async=require(_0xe4b5[3]);var auth=require(_0xe4b5[4]);var User=require(_0xe4b5[6])[_0xe4b5[5]];var Action=require(_0xe4b5[6])[_0xe4b5[7]];var ReportMember=require(_0xe4b5[6])[_0xe4b5[8]];var license=require(_0xe4b5[9]);var channels=[_0xe4b5[10],_0xe4b5[11],_0xe4b5[12],_0xe4b5[13]];var router=express.Router();router[_0xe4b5[30]](_0xe4b5[14],function(_0xccb0xb,_0xccb0xc,_0xccb0xd){passport[_0xe4b5[29]](_0xe4b5[15],function(_0xccb0xe,_0xccb0xf,_0xccb0x10){var _0xccb0x11=_0xccb0xe||_0xccb0x10;if(_0xccb0x11){return _0xccb0xc[_0xe4b5[17]](401)[_0xe4b5[16]](_0xccb0x11)};if(!_0xccb0xf){return _0xccb0xc[_0xe4b5[17]](404)[_0xe4b5[16]]({message:_0xe4b5[18]})};return Action[_0xe4b5[28]]({name:_0xe4b5[26],data1:_0xccb0xf[_0xe4b5[21]],data2:_0xccb0xf[_0xe4b5[27]],UserId:_0xccb0xf[_0xe4b5[21]]})[_0xe4b5[25]](function(_0xccb0x12){return _0xccb0xc[_0xe4b5[16]]({role:_0xccb0xf[_0xe4b5[20]],token:auth[_0xe4b5[24]](_0xccb0xf[_0xe4b5[21]],_0xccb0xf[_0xe4b5[20]],_0xccb0xb[_0xe4b5[23]][_0xe4b5[22]]||false),userId:_0xccb0xf[_0xe4b5[21]]})})[_0xe4b5[19]](function(_0xccb0xe){return _0xccb0xd(_0xccb0xe)})})(_0xccb0xb,_0xccb0xc,_0xccb0xd)});router[_0xe4b5[36]](_0xe4b5[31],auth[_0xe4b5[32]](),function(_0xccb0xb,_0xccb0xc,_0xccb0xd){return Action[_0xe4b5[28]]({name:_0xe4b5[33],data1:_0xccb0xb[_0xe4b5[35]][_0xe4b5[21]],data2:_0xccb0xb[_0xe4b5[35]][_0xe4b5[27]],UserId:_0xccb0xb[_0xe4b5[35]][_0xe4b5[21]]})[_0xe4b5[25]](function(){_0xccb0xb[_0xe4b5[33]]();_0xccb0xc[_0xe4b5[34]](_0xe4b5[14])})[_0xe4b5[19]](function(_0xccb0xe){return _0xccb0xd(_0xccb0xe)})});module[_0xe4b5[37]]=router
\ No newline at end of file
index bfb533d..cbf51f1 100644 (file)
@@ -1,51 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var util = require('util');
-var amiController = require('../../api/ami/ami.ami');
-
-exports.logout = function(userid, username, queuename, callback) {
-  var body = {
-    action: 'QueuePause',
-    queue: queuename,
-    interface: util.format('SIP/%s', username),
-    paused: false
-  };
-  body.data = JSON.stringify(body);
-  body.UserId = userid;
-
-  amiController.action(body, function(err, res) {
-    if (err) {
-      console.log(err);
-    }
-    var body = {
-      action: 'QueueRemove',
-      queue: queuename,
-      interface: util.format('SIP/%s', username)
-    };
-    body.data = JSON.stringify(body);
-    body.UserId = userid;
-
-    amiController.action(body, callback);
-  });
-}
-
-exports.login = function(userid, username, queuename, callback) {
-
-  var body = {
-    action: 'QueueAdd',
-    queue: queuename,
-    interface: util.format('SIP/%s', username),
-    penalty: 0,
-    paused: false,
-    membername: username
-  };
-
-  body.data = JSON.stringify(body);
-  body.UserId = userid;
-
-  amiController.action(body, callback);
-}
+var _0x14cb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6D\x69\x2F\x61\x6D\x69\x2E\x61\x6D\x69","\x6C\x6F\x67\x6F\x75\x74","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x53\x49\x50\x2F\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x64\x61\x74\x61","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x55\x73\x65\x72\x49\x64","\x6C\x6F\x67","\x51\x75\x65\x75\x65\x52\x65\x6D\x6F\x76\x65","\x61\x63\x74\x69\x6F\x6E","\x6C\x6F\x67\x69\x6E","\x51\x75\x65\x75\x65\x41\x64\x64"];_0x14cb[0];var util=require(_0x14cb[1]);var amiController=require(_0x14cb[2]);exports[_0x14cb[3]]=function(_0x74b2x3,_0x74b2x4,_0x74b2x5,_0x74b2x6){var _0x74b2x7={action:_0x14cb[4],queue:_0x74b2x5,interface:util[_0x14cb[6]](_0x14cb[5],_0x74b2x4),paused:false};_0x74b2x7[_0x14cb[7]]=JSON[_0x14cb[8]](_0x74b2x7);_0x74b2x7[_0x14cb[9]]=_0x74b2x3;amiController[_0x14cb[12]](_0x74b2x7,function(_0x74b2x8,_0x74b2x9){if(_0x74b2x8){console[_0x14cb[10]](_0x74b2x8)};var _0x74b2x7={action:_0x14cb[11],queue:_0x74b2x5,interface:util[_0x14cb[6]](_0x14cb[5],_0x74b2x4)};_0x74b2x7[_0x14cb[7]]=JSON[_0x14cb[8]](_0x74b2x7);_0x74b2x7[_0x14cb[9]]=_0x74b2x3;amiController[_0x14cb[12]](_0x74b2x7,_0x74b2x6)})};exports[_0x14cb[13]]=function(_0x74b2x3,_0x74b2x4,_0x74b2x5,_0x74b2x6){var _0x74b2x7={action:_0x14cb[14],queue:_0x74b2x5,interface:util[_0x14cb[6]](_0x14cb[5],_0x74b2x4),penalty:0,paused:false,membername:_0x74b2x4};_0x74b2x7[_0x14cb[7]]=JSON[_0x14cb[8]](_0x74b2x7);_0x74b2x7[_0x14cb[9]]=_0x74b2x3;amiController[_0x14cb[12]](_0x74b2x7,_0x74b2x6)}
\ No newline at end of file
index e602ae6..258d66a 100644 (file)
@@ -1,93 +1 @@
-var passport = require('passport');
-var LocalStrategy = require('passport-local').Strategy;
-var Settings = require('../../models').Settings;
-var license = require('../../config/license/license.service');
-
-exports.setup = function(User, config) {
-
-  passport.use('local-login', new LocalStrategy({
-      usernameField: 'name',
-      passwordField: 'password' // this is the virtual field on the model
-    },
-    function(name, password, done) {
-      var _user;
-      var _settings;
-      var _license;
-
-      return User.findOne({
-          where: {
-            name: name
-          }
-        })
-        .then(function(user) {
-          _user = user;
-
-          if (!_user || !user.authenticate(password)) {
-            throw new Error({
-              message: 'Wrong credentials.'
-            });
-          }
-
-          return _user;
-        })
-        .then(license.isValidAgent())
-        .then(function(valid) {
-          if (valid) {
-            return done(null, _user);
-          } else {
-            return done(null, false, {
-              message: 'Maximum login limit has been reached.'
-            });
-
-          }
-        })
-        .catch(function(err) {
-          return done(null, false, err);
-        });
-    }
-  ));
-
-  // passport.use('local-signup', new LocalStrategy({
-  //     usernameField: 'name',
-  //     passwordField: 'password',
-  //     passReqToCallback: true
-  //   },
-  //   function(req, name, password, done) {
-  //
-  //     if (!req.user) {
-  //       User
-  //         .findOne({
-  //           where: {
-  //             name: name
-  //           }
-  //         })
-  //         .then(function(user) {
-  //           if (user) {
-  //             return done(null, false, {
-  //               message: 'That email is already taken.'
-  //             });
-  //           } else {
-  //             var newUser = User.build(req.body);
-  //             newUser.provider = 'local';
-  //             newUser.online = true;
-  //             newUser
-  //               .save()
-  //               .then(function() {
-  //                 return done(null, newUser);
-  //               })
-  //               .catch(function(err) {
-  //                 return done(err);
-  //               });
-  //           }
-  //         })
-  //         .catch(function(err) {
-  //           return done(err);
-  //         });
-  //     } else {
-  //       // user is logged in and already has a local account. Ignore signup. (You should log out before trying to create a new account, user!)
-  //       return done(null, req.user);
-  //     }
-  //   }
-  // ));
-
-};
+var _0xd3e2=["\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x6C\x6F\x63\x61\x6C","\x53\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x73\x65\x74\x75\x70","\x6C\x6F\x63\x61\x6C\x2D\x6C\x6F\x67\x69\x6E","\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x61\x74\x63\x68","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x6C\x6F\x67\x69\x6E\x20\x6C\x69\x6D\x69\x74\x20\x68\x61\x73\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64\x2E","\x74\x68\x65\x6E","\x69\x73\x56\x61\x6C\x69\x64\x41\x67\x65\x6E\x74","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x57\x72\x6F\x6E\x67\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x2E","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x73\x65"];var passport=require(_0xd3e2[0]);var LocalStrategy=require(_0xd3e2[2])[_0xd3e2[1]];var Settings=require(_0xd3e2[4])[_0xd3e2[3]];var license=require(_0xd3e2[5]);exports[_0xd3e2[6]]=function(_0xccacx5,_0xccacx6){passport[_0xd3e2[17]](_0xd3e2[7], new LocalStrategy({usernameField:_0xd3e2[8],passwordField:_0xd3e2[9]},function(_0xccacx7,_0xccacx8,_0xccacx9){var _0xccacxa;var _0xccacxb;var _0xccacxc;return _0xccacx5[_0xd3e2[16]]({where:{name:_0xccacx7}})[_0xd3e2[12]](function(_0xccacxf){_0xccacxa=_0xccacxf;if(!_0xccacxa||!_0xccacxf[_0xd3e2[14]](_0xccacx8)){throw  new Error({message:_0xd3e2[15]})};return _0xccacxa})[_0xd3e2[12]](license[_0xd3e2[13]]())[_0xd3e2[12]](function(_0xccacxe){if(_0xccacxe){return _0xccacx9(null,_0xccacxa)}else {return _0xccacx9(null,false,{message:_0xd3e2[11]})}})[_0xd3e2[10]](function(_0xccacxd){return _0xccacx9(null,false,_0xccacxd)})}))}
\ No newline at end of file
index 8360247..ee83139 100644 (file)
@@ -1,20 +1 @@
-'use strict';
-
-var express = require('express');
-var passport = require('passport');
-var auth = require('../auth.service');
-
-var router = express.Router();
-
-router
-  .get('/', passport.authenticate('twitter', {
-    failureRedirect: '/signup',
-    session: false
-  }))
-
-  .get('/callback', passport.authenticate('twitter', {
-    failureRedirect: '/signup',
-    session: false
-  }), auth.setTokenCookie);
-
-module.exports = router;
\ No newline at end of file
+var _0x782a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x75\x74\x68\x2E\x73\x65\x72\x76\x69\x63\x65","\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x74\x77\x69\x74\x74\x65\x72","\x2F\x73\x69\x67\x6E\x75\x70","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x67\x65\x74","\x2F","\x65\x78\x70\x6F\x72\x74\x73"];_0x782a[0];var express=require(_0x782a[1]);var passport=require(_0x782a[2]);var auth=require(_0x782a[3]);var router=express.Router();router[_0x782a[9]](_0x782a[10],passport[_0x782a[7]](_0x782a[5],{failureRedirect:_0x782a[6],session:false}))[_0x782a[9]](_0x782a[4],passport[_0x782a[7]](_0x782a[5],{failureRedirect:_0x782a[6],session:false}),auth[_0x782a[8]]);module[_0x782a[11]]=router
\ No newline at end of file
index a2eb4a5..b6ac54d 100644 (file)
@@ -1,35 +1 @@
-exports.setup = function (User, config) {
-  var passport = require('passport');
-  var TwitterStrategy = require('passport-twitter').Strategy;
-
-  passport.use(new TwitterStrategy({
-    consumerKey: config.twitter.clientID,
-    consumerSecret: config.twitter.clientSecret,
-    callbackURL: config.twitter.callbackURL
-  },
-  function(token, tokenSecret, profile, done) {
-    User.findOne({
-      'twitter.id_str': profile.id
-    }, function(err, user) {
-      if (err) {
-        return done(err);
-      }
-      if (!user) {
-        user = new User({
-          name: profile.displayName,
-          username: profile.username,
-          role: 'user',
-          provider: 'twitter',
-          twitter: profile._json
-        });
-        user.save(function(err) {
-          if (err) return done(err);
-          return done(err, user);
-        });
-      } else {
-        return done(err, user);
-      }
-    });
-    }
-  ));
-};
\ No newline at end of file
+var _0xebf2=["\x73\x65\x74\x75\x70","\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x74\x77\x69\x74\x74\x65\x72","\x63\x6C\x69\x65\x6E\x74\x49\x44","\x74\x77\x69\x74\x74\x65\x72","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x52\x4C","\x69\x64","\x64\x69\x73\x70\x6C\x61\x79\x4E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x75\x73\x65\x72","\x5F\x6A\x73\x6F\x6E","\x73\x61\x76\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x75\x73\x65"];exports[_0xebf2[0]]=function(_0x361dx1,_0x361dx2){var _0x361dx3=require(_0xebf2[1]);var _0x361dx4=require(_0xebf2[3])[_0xebf2[2]];_0x361dx3[_0xebf2[15]]( new _0x361dx4({consumerKey:_0x361dx2[_0xebf2[5]][_0xebf2[4]],consumerSecret:_0x361dx2[_0xebf2[5]][_0xebf2[6]],callbackURL:_0x361dx2[_0xebf2[5]][_0xebf2[7]]},function(_0x361dx5,_0x361dx6,_0x361dx7,_0x361dx8){_0x361dx1[_0xebf2[14]]({"\x74\x77\x69\x74\x74\x65\x72\x2E\x69\x64\x5F\x73\x74\x72":_0x361dx7[_0xebf2[8]]},function(_0x361dx9,_0x361dxa){if(_0x361dx9){return _0x361dx8(_0x361dx9)};if(!_0x361dxa){_0x361dxa= new _0x361dx1({name:_0x361dx7[_0xebf2[9]],username:_0x361dx7[_0xebf2[10]],role:_0xebf2[11],provider:_0xebf2[5],twitter:_0x361dx7[_0xebf2[12]]});_0x361dxa[_0xebf2[13]](function(_0x361dx9){if(_0x361dx9){return _0x361dx8(_0x361dx9)};return _0x361dx8(_0x361dx9,_0x361dxa)})}else {return _0x361dx8(_0x361dx9,_0x361dxa)}})}))}
\ No newline at end of file
index 6ab451e..e023fcc 100644 (file)
@@ -1,1216 +1 @@
-'use strict';
-
-var _ = require('lodash');
-
-var agi = require('agi');
-var util = require('util');
-var moment = require('moment');
-var xml = require('xml2js');
-var wait = require('wait.for');
-var sr = require('simple-random');
-var path = require('path');
-var config = require('../config/environment');
-var sh = require('shelljs');
-
-var db = require("odbc")();
-
-var SquareProject = require('../models').SquareProject;
-var Variable = require('../models').Variable;
-var SquareOdbc = require('../models').SquareOdbc;
-var Settings = require('../models').Settings;
-var User = require('../models').User;
-var VoiceQueue = require('../models').VoiceQueue;
-var Trunk = require('../models').Trunk;
-var Interval = require('../models').Interval;
-var Sound = require('../models').Sound;
-var ReportSquare = require('../models').ReportSquare;
-var ReportSquareDetail = require('../models').ReportSquareDetail;
-// var TempTable = require('../models').TempTable;
-// var FakeTable = require('../models').FakeTable;
-var users, trunks, variables, intervals, projects, sounds, queues, dbConnections, generalUniqueId;
-var agiPort;
-var weekDaysCollection = {
-  mon: 1,
-  tue: 2,
-  wed: 3,
-  thu: 4,
-  fri: 5,
-  sat: 6,
-  sun: 7
-};
-var monthsCollection = {
-  jan: 1,
-  feb: 2,
-  mar: 3,
-  apr: 4,
-  may: 5,
-  jun: 6,
-  jul: 7,
-  aug: 8,
-  sep: 9,
-  oct: 10,
-  nov: 11,
-  dec: 12
-};
-var methods = {};
-
-methods.answer = function(context, vertex, callback) {
-  console.log('--ANSWER BLOCK--');
-  console.log('Answering the call...');
-  context.send('ANSWER\n', function(err, res) {
-    callback(err, res);
-  });
-};
-
-methods.custom_app = function(context, vertex, callback) {
-  console.log('--CUSTOM APP BLOCK--');
-  console.log('Executing custom app "' + vertex.application + '"...');
-  context.exec(vertex.application, vertex.options, function(err, res) {
-    if (callback) {
-      callback(err, res);
-    }
-  });
-};
-
-
-methods.dial = function(context, vertex, callback) {
-  console.log('--INTERNAL_DIAL BLOCK--');
-  if (!users) {
-    getUsers(false);
-  }
-  var sip = _.find(users, {
-    id: parseInt(vertex.sip_id)
-  });
-  console.log('Calling ' + util.format('SIP/%s', sip.name) + '...');
-  var parameters = [util.format('SIP/%s', sip.name), vertex.timeout, vertex.opts, vertex.url];
-  context.exec('DIAL', parameters.join(','),
-    function(err, res) {
-      callback(err, res);
-    });
-};
-
-methods.ext_dial = function(context, vertex, callback) {
-  console.log('--EXTERNAL_DIAL BLOCK--');
-  if (!trunks) {
-    getTrunks(false);
-  }
-  var trunk = _.find(trunks, {
-    id: parseInt(vertex.trunk_id)
-  });
-  console.log('Calling ' + util.format('SIP/%s', trunk.name) + '...');
-  var parameters = [util.format('SIP/%s@%s', vertex.phone, trunk.name), vertex.timeout, vertex.opts, vertex.url];
-  context.exec('DIAL', parameters.join(','),
-    function(err, res) {
-      callback(err, res);
-    });
-};
-
-methods.queue = function(context, vertex, callback) {
-  console.log('--QUEUE BLOCK--');
-  if (!queues) {
-    getQueues(false);
-  }
-  var queue = _.find(queues, {
-    name: vertex.queue_id
-  });
-  var announceOverride = getFilePath(vertex.file_id);
-  var parameters = [queue.name, vertex.opts, vertex.url, announceOverride, vertex.timeout, vertex.agi, vertex.macro, vertex.gosub, '', vertex.position];
-  console.log('Joining ' + queue.name + ' queue...');
-  context.exec('QUEUE', parameters.join(','), function(err, res) {
-    callback(err, res);
-  });
-};
-
-methods.voicemail = function(context, vertex, callback) {
-  console.log('--VOICEMAIL BLOCK--');
-  var parameters = [vertex.mailbox, vertex.opts];
-  var squareDetail = {
-    uniqueid: context.uniqueid,
-    node: vertex.label,
-    application: vertex.tag,
-    data: parameters.join(',') || null
-  }
-  ReportSquareDetail
-    .create(squareDetail)
-    .catch(function(err) {
-      console.log('Error saving ' + vertex.tag + ':' + vertex.label + ' block log', err);
-    });
-  console.log('Starting voicemail recording...');
-  context.exec('VOICEMAIL', parameters.join(','), function(err, res) {
-    callback(err, res);
-  });
-};
-
-// methods.callback = function(context, vertex, callback) {
-//   context.send('ANSWER\n', function(err, res) {
-//     callback(err, res);
-//   });
-// };
-
-methods.math = function(context, vertex, callback) {
-  console.log('--MATH BLOCK--');
-  console.log('Calculating expression...');
-  var result = eval(vertex.operation);
-  console.log('Saving result in variable...');
-  var varName = getVariableName(vertex.variable_id);
-  if (_.isArray(result)) {
-    result.forEach(function(elem, index) {
-      wait.for(setVariable, context, varName + '[' + index + ']', elem);
-    });
-  } else {
-    wait.for(setVariable, context, varName, result);
-  }
-}
-
-// methods.background = function(context, vertex, callback) {
-//   var parameters = [getFilePath(vertex.file_id), vertex.opts];
-//   context.exec('BACKGROUND', parameters.join('|'), function(err, res) {
-//     callback(err, res);
-//   });
-// };
-
-methods.playback = function(context, vertex, callback) {
-  console.log('--PLAYBACK BLOCK--');
-  var audiofile = getFilePath(vertex.file_id);
-  // var audiofile = '/var/www/html/files/sounds/d0269ff87187df665ece75538e4cddfd';
-  var parameters = [audiofile, vertex.opts];
-  console.log('Executing playback...');
-  context.exec('PLAYBACK', parameters.join(','), function(err, res) {
-    callback(err, res);
-  });
-};
-
-methods.menu = function(context, vertex, callback) {
-  console.log('--MENU BLOCK--');
-  var res = {};
-  console.log('There are ' + vertex.retry + ' retries');
-  if (vertex.retry > 0) {
-    vertex.retry--;
-    var announce = getFilePath(vertex.file_id);
-    // var announce = '/var/www/html/files/sounds/b19642d2f71e9cfffbd783fcc79c7415';
-    // console.log(announce);
-    console.log('Announcing and waiting for user entry...');
-    context.send(util.format('GET DATA %s %s %s\n', announce, parseInt(vertex.response) * 1000, vertex.digit),
-      function(err, res) {
-        var squareDetail = {
-          uniqueid: context.uniqueid,
-          node: vertex.label,
-          application: vertex.tag,
-          data: res.result || null
-        }
-        ReportSquareDetail
-          .create(squareDetail)
-          .catch(function(err) {
-            console.log('Error saving ' + vertex.tag + ':' + vertex.label + ' block log', err);
-          });
-        if (res.result !== ' (timeout)') {
-          if (vertex.variable_id) {
-            console.log('Saving user entry in a variable...');
-            var varName = getVariableName(vertex.variable_id);
-            setVariable(context, varName, res.result, function() {
-              res.data = res.result;
-              callback(null, res);
-            });
-            // setVariable(context, variableId, res.result);
-          }
-
-        } else {
-          console.log('Menu timeout!');
-          res = {
-            code: 200,
-            result: '0',
-            data: 't'
-          };
-          callback(null, res);
-        }
-      });
-
-  } else {
-    console.log('Run out of retries!');
-    res = {
-      code: 200,
-      result: '0',
-      data: '-'
-    };
-    callback(null, res);
-  }
-};
-
-methods.saynumber = function(context, vertex, callback) {
-  console.log('--SAYNUMBER BLOCK--');
-  console.log('Saying number...');
-  context.send(util.format('SAY NUMBER %s "%s"\n', vertex.number, vertex.escape_digits),
-    function(err, res) {
-      callback(err, res);
-    });
-};
-
-methods.sayphonetic = function(context, vertex, callback) {
-  console.log('--SAYPHONETIC BLOCK--');
-  console.log('Saying phonetic...');
-  context.send(util.format('SAY PHONETIC %s "%s"\n', vertex.text, vertex.escape_digits),
-    function(err, res) {
-      callback(err, res);
-    });
-};
-
-methods.tts = function(context, vertex, callback) {
-  console.log('--GOOGLE_TTS BLOCK--');
-  var parameters = [path.join(config.root, 'server/config/agi_scripts', 'googletts.agi'), encodeURIComponent(vertex.text), vertex.google_tts_language];
-  // var parameters = ['/var/www/html/agisquare/agiscripts/googletts.agi', encodeURIComponent(vertex.text), vertex.google_tts_language];
-  console.log('Calling Google TTS API...');
-  context.exec('AGI', parameters.join(','),
-    function(err, res) {
-      callback(err, res);
-    });
-};
-
-methods.ispeechtts = function(context, vertex, callback) {
-  console.log('--ISPEECH_TTS BLOCK--');
-  // var parameters = [path.join(config.root, 'server/config/agi_scripts', 'ispeech-tts.agi'), encodeURIComponent(vertex.text), vertex.ispeech_tts_language, '', '', vertex.key];
-  var parameters = ['/var/www/html/agisquare/agiscripts/ispeech-tts.agi', encodeURIComponent(vertex.text), vertex.ispeech_tts_language, '', '', vertex.key];
-  console.log('Calling iSpeech TTS API...');
-  context.exec('AGI', parameters.join(','),
-    function(err, res) {
-      callback(err, res);
-    });
-};
-
-methods.getdigits = function(context, vertex, callback) {
-  console.log('--GETDIGITS BLOCK--');
-  var res = {};
-  console.log('There are ' + vertex.retry + ' retries');
-  if (vertex.retry > 0) {
-    vertex.retry--;
-    var announce = getFilePath(vertex.file_id);
-    // var announce = '/var/www/html/files/sounds/b19642d2f71e9cfffbd783fcc79c7415';
-    console.log('Announcing and waiting for user entry...');
-    context.send(util.format('GET DATA %s %s %s\n', announce, parseInt(vertex.response) * 1000, vertex.maxdigit),
-      function(err, res) {
-        var squareDetail = {
-          uniqueid: context.uniqueid,
-          node: vertex.label,
-          application: vertex.tag,
-          data: res.result || null
-        }
-        ReportSquareDetail
-          .create(squareDetail)
-          .catch(function(err) {
-            console.log('Error saving ' + vertex.tag + ':' + vertex.label + ' block log', err);
-          });
-        if (res.result && res.result.length >= parseInt(vertex.mindigit)) {
-          if (res.result !== '-1') {
-            console.log('There is a result, is over the minimum length and not due to an hangup!');
-            if (vertex.variable_id) {
-              console.log('Saving user entry in a variable...');
-              var varName = getVariableName(vertex.variable_id);
-              setVariable(context, varName, res.result, function() {
-                res = {
-                  code: 200,
-                  result: '0',
-                  data: 'x'
-                };
-                callback(null, res);
-              });
-            }
-          } else {
-            console.log('Channel hangup!');
-            res = {
-              code: 500,
-              result: '-1'
-            };
-            callback(null, res);
-          }
-        } else {
-          console.log('No entry or not long enough!');
-          res = {
-            code: 200,
-            result: '0',
-            data: 'i'
-          };
-          callback(null, res);
-        }
-      });
-  } else {
-    console.log('Run out of retries!');
-    res = {
-      code: 500,
-      result: '-1'
-    };
-    callback(null, res);
-  }
-};
-
-methods.record = function(context, vertex, callback) {
-  console.log('--RECORD BLOCK--');
-  var saveName = sr();
-  // FakeTable
-  //   .create({
-  //     name: vertex.name,
-  //     filename: saveName
-  //   })
-  //   .then(function() {
-  console.log('Starting call recording...');
-  context.send(util.format('RECORD FILE %s wav "%s" %s %s %s %s\n', path.join(config.root, 'server/files/recordings', saveName), vertex.escape_digits, vertex.timeout, null, true, null), function(
-    err, res) {
-    if (res.code === 200 && res.result !== '-1') {
-      console.log('Saving recording filename in RECORDING_SAVENAME variable...');
-      context.send(util.format('SET VARIABLE %s %s\n', 'RECORDING_SAVENAME', saveName), function(err, res) {
-        callback(err, res);
-      });
-    } else {
-      callback(err, res);
-    }
-  });
-  // })
-  // .catch(function(err) {
-  //   console.log(err);
-  // });
-};
-
-methods.gotoiftime = function(context, vertex, callback) { //single or multiple intervals
-  console.log('--GOTOIFTIME BLOCK--');
-  var res;
-  var valid = 'false';
-  var gotoIntervals;
-  if (!intervals) {
-    getIntervals(false);
-  }
-  var interval = _.find(intervals, {
-    id: parseInt(vertex.interval_id)
-  });
-  if (!interval.IntervalId) {
-    gotoIntervals = _.filter(intervals, {
-      IntervalId: parseInt(interval.id)
-    });
-  }
-  if (gotoIntervals) {
-    console.log('Is a group of intervals!');
-    if (gotoIntervals.length) {
-      console.log('There are ' + gotoIntervals.length + ' intervals!');
-      var subInterval;
-      console.log('Checking if at least one interval is valid...');
-      gotoIntervals.forEach(function(elem, index) {
-        subInterval = splitInterval(elem.interval);
-        if (isIntervalValid(subInterval)) {
-          console.log('Interval ' + index + ' is valid!');
-          valid = 'true';
-        }
-      });
-    } else {
-      console.log('There are no sub intervals, so it will be always true!');
-      valid = 'true';
-    }
-  } else {
-    console.log('Is a single interval!');
-    var splittedInterval = splitInterval(interval.interval);
-    if (isIntervalValid(splittedInterval)) {
-      console.log('The interval is valid!');
-      valid = 'true';
-    }
-  }
-  console.log('The final result for the intervals is "' + valid + '"!');
-  res = {
-    code: 200,
-    result: '0',
-    data: valid
-  };
-  callback(null, res);
-};
-
-methods.vswitch = function(context, vertex, callback) {
-  console.log('--VARIABLE_SWITCH BLOCK--');
-  console.log('Getting the variable value and searching the right exit...');
-  var varName = getVariableName(vertex.variable_id);
-  getVariable(context, varName, function(err, res) {
-    if (!res.data) {
-      res.data = '-';
-    }
-    callback(null, res);
-  });
-
-};
-
-methods.goal = function(context, vertex, callback) {
-  var squareDetail = {
-    uniqueid: context.uniqueid,
-    node: vertex.label,
-    application: vertex.tag,
-    data: vertex.goalname || null
-  }
-  ReportSquareDetail
-    .create(squareDetail)
-    .then(function(res) {
-      res = {
-        code: 200,
-        result: '1'
-      };
-      callback(null, res);
-    })
-    .catch(function(err) {
-      console.log('Error saving ' + vertex.tag + ':' + vertex.label + ' block log', err);
-      var res = {
-        code: 200,
-        result: '1'
-      };
-      callback(err, res);
-    });
-};
-
-methods.system = function(context, vertex, callback) {
-  console.log('--SYSTEM BLOCK--');
-  var squareDetail = {
-    uniqueid: context.uniqueid,
-    node: vertex.label,
-    application: vertex.tag,
-    data: _.trim(vertex.command) || null
-  }
-  ReportSquareDetail
-    .create(squareDetail)
-    .catch(function(err) {
-      console.log('Error saving ' + vertex.tag + ':' + vertex.label + ' block log', err);
-    });
-  console.log('Executing the system command...');
-  sh.exec(_.trim(vertex.command), function(code, output) {
-    var formattedOutput = output.replace(/(\r\n|\n|\r)/gm, "");
-    console.log('Program output:', formattedOutput);
-    console.log('Saving the output in a variable...');
-    var varName = getVariableName(vertex.variable_id);
-    setVariable(context, varName, '"' + formattedOutput + '"', callback);
-  });
-};
-
-methods.agi = function(context, vertex, callback) {
-  console.log('--AGI BLOCK--');
-  console.log('Executing the AGI command...');
-  context.exec('AGI', vertex.command, vertex.args,
-    function(err, res) {
-      callback(err, res);
-    });
-};
-
-methods.subproject = function(context, vertex, callback) {
-  console.log('--SUBPROJECT BLOCK--');
-  if (!projects) {
-    getProjects(false);
-  }
-  var project = _.find(projects, {
-    id: parseInt(vertex.project_id)
-  });
-  console.log('Moving to project ""' + project.name + '"...');
-  context.exec('AGI', util.format('agi://192.168.2.147/square,%s', project.name),
-    function(err, res) {
-      callback(err, res);
-    });
-};
-
-methods.ispeechasr = function(context, vertex, callback) {
-  console.log('--ISPEECH_ASR BLOCK--');
-  // var parameters = ['/var/www/html/agisquare/agiscripts/ispeech-asr.agi', vertex.ispeech_asr_language, '', (vertex.model === '0' ? '' : vertex.model), '1', '#', '', vertex.key];
-  var parameters = [path.join(config.root, 'server/config/agi_scripts', 'ispeech-asr.agi'), vertex.ispeech_asr_language, '', (vertex.model === '0' ? '' : vertex.model), '1', '#', '', vertex.key];
-  console.log('Calling Google ASR API...');
-  context.exec('AGI', parameters.join(','),
-    function(err, res) {
-      callback(err, res);
-    });
-};
-
-methods.database = function(context, vertex, callback) {
-  console.log('--DATABASE BLOCK--');
-  if (!dbConnections) {
-    getDbConnections(false);
-  }
-  var connection = _.find(dbConnections, {
-    id: parseInt(vertex.odbc_id)
-  });
-  console.log('Trying to get ODBC connection...');
-  var squareDetail = {
-    uniqueid: context.uniqueid,
-    node: vertex.label,
-    application: vertex.tag,
-    data: vertex.query || null
-  }
-  ReportSquareDetail
-    .create(squareDetail)
-    .catch(function(err) {
-      console.log('Error saving ' + vertex.tag + ':' + vertex.label + ' block log', err);
-    });
-  try {
-    db.openSync(connection.dsn);
-    var data = db.querySync(vertex.query);
-    db.closeSync();
-    setVariablesMatrix(context, vertex, callback, data);
-  } catch (e) {
-    console.log(e.message);
-    wait.for(setVariable, context, 'ERROR', 'true');
-    wait.for(setVariable, context, 'MESSAGE', e.message);
-  }
-};
-
-methods.gotoc = function(context, vertex, callback) {
-  console.log('--GOTO BLOCK--');
-  console.log('Going to extension ' + vertex.extension + ' ...');
-  context.exec('DIAL', util.format('Local/%s@%s', vertex.extension, vertex.context),
-    function(err, res) {
-      callback(err, res);
-    });
-};
-
-methods.gotoif = function(context, vertex, callback) {
-  console.log('--GOTOIF BLOCK--');
-  var res = {
-    code: 200,
-    result: '0'
-  };
-  console.log('Evaluating condition...');
-  res.data = String(eval(vertex.condition) ? 'true' : 'false');
-  console.log('The result is ' + res.data);
-  callback(null, res);
-};
-
-methods.hangup = function(context, vertex, callback) {
-  console.log('--HANGUP BLOCK--');
-  console.log('Hangin up the call...');
-  context.hangup();
-};
-
-methods.noop = function(context, vertex, callback) {
-  console.log('--NOOP BLOCK--');
-  var output = (vertex.output) ? '\"' + vertex.output + '\"' : '\"' +
-    vertex.label + '\"';
-  console.log('NOOP value is ' + output);
-  context.exec('NOOP', output,
-    function(err, res) {
-      callback(err, res);
-    });
-};
-
-methods.saydigits = function(context, vertex, callback) {
-  console.log('--SAYDIGITS BLOCK--');
-  console.log('Saying digits...');
-  context.send(util.format('SAY DIGITS %s "%s"\n', vertex.digits, vertex.escape_digits),
-    function(err, res) {
-      callback(err, res);
-    });
-};
-
-methods.set = function(context, vertex, callback) {
-  console.log('--SET BLOCK--');
-  console.log('Saving value in a variable...');
-  var varName = getVariableName(vertex.variable_id);
-  wait.for(setVariable, context, varName, vertex.variable_value);
-};
-
-function getVertices(root) {
-  return _.reduce(root, function(result, edge, tag) {
-
-    if (tag === 'mxcell') {
-      return result;
-    }
-
-    if (_.isArray(edge)) {
-      _.forIn(edge, function(value, key) {
-        result[value.$.id] = value.$;
-        result[value.$.id].tag = tag;
-      });
-      return result;
-    }
-
-    result[edge.$.id] = edge.$;
-    result[edge.$.id].tag = tag;
-    return result;
-
-  }, {});
-}
-
-function getTargetBySource(root, source, value) {
-  return _.result(_.find(root.mxcell, function(edge) {
-    if (edge.$.edge && edge.$.source) {
-      if (edge.$.source === source) {
-        if (edge.$.value && edge.$.value !== value) {
-          return false;
-        }
-        return true;
-      }
-    }
-    return false;
-  }), '$.target');
-}
-
-function replaceAllVariables(context, vertex, callback) {
-  var obj = vertex;
-  for (var key in obj) {
-    var res = obj[key].match(/{+(.*?)}/gi);
-    if (res) {
-      console.log('res', res);
-      res.forEach(function(variable, index) {
-        console.log('variable', res[index].substring(1, res[index].length - 1));
-        var value = wait.for(getVariable, context, res[index].substring(1, res[index].length - 1));
-        console.log('value', value);
-        if (value.data) {
-          obj[key] = obj[key].replace(res[index], value.data);
-          // console.log('Replace', res[index], string);
-        }
-      })
-    }
-  }
-  obj.replaced = true;
-  return obj;
-}
-
-function xstart(context) {
-  var root = context.root;
-  var vertices = context.vertices;
-
-  if (root.start) {
-    if (!_.isArray(root.start)) {
-      var source = root.start.$.id;
-      var res = {};
-      do {
-        try {
-          var vertex = vertices[source].replaced ? vertices[source] : replaceAllVariables(context, vertices[source]);
-          if (vertex) {
-            if (_.isFunction(methods[vertex.tag])) {
-              res = wait.for(methods[vertex.tag], context, vertex);
-            } else {
-              res = wait.for(methods.noop, context, vertex);
-            }
-            if (res.code === 200 && res.result !== '-1') {
-              var target = getTargetBySource(root, source, res.data);
-              if (!target) {
-                if (vertex.tag === 'menu') {
-                  if (vertex.retry > 0) {
-                    target = getTargetBySource(root, source, 'i');
-                    if (!target) {
-                      target = source;
-                    }
-                  }
-                }
-                if (vertex.tag === 'getdigits' && vertex.retry > 0) {
-                  target = source;
-                }
-                if (vertex.tag === 'vswitch') {
-                  target = getTargetBySource(root, source, '-');
-                  if (!target) {
-                    target = source;
-                  }
-                }
-              }
-              source = target;
-            } else {
-              source = null;
-            }
-          } else {
-            source = null;
-          }
-        } catch (err) {
-          console.log(err);
-        }
-      }
-      while (source);
-      console.log('No target found, hangup!');
-      context.hangup();
-    }
-  }
-}
-
-
-function xfinally(context) {
-  var root = context.root;
-  var vertices = context.vertices;
-
-  if (root.finally) {
-    if (!_.isArray(root.finally)) {
-      var source = root.finally.$.id;
-      var res = {};
-      do {
-        try {
-          var vertex = replaceAllVariables(context, vertices[source]);
-          if (vertex) {
-            if (_.isFunction(methods[vertex.tag])) {
-              res = wait.for(methods[vertex.tag], context, vertex);
-            } else {
-              res = wait.for(methods.noop, context, vertex);
-            }
-            if (res.code === 200 && res.result !== '-1') {
-              var target = getTargetBySource(root, source, res.data);
-              if (!target) {
-                if (vertex.tag === 'menu') {
-                  if (vertex.retry > 0) {
-                    target = getTargetBySource(root, source, 'i');
-                    if (!target) {
-                      target = source;
-                    }
-                  }
-                }
-                if (vertex.tag === 'getdigits' && vertex.retry > 0) {
-                  target = source;
-                }
-              }
-              source = target;
-            } else {
-              source = null;
-            }
-          } else {
-            source = null;
-          }
-        } catch (err) {
-          console.log(err);
-        }
-      } while (source);
-      context.hangup();
-      console.log('No target found, stopping "Finally" branch!');
-    }
-  }
-  context.end();
-}
-
-
-function main(context) {
-
-  context.on('error', function(err) {
-    console.log('//Error:', err);
-  });
-
-  context.on('close', function() {
-    console.log('//Context close');
-  });
-
-  context.on('hangup', function() {
-    if (context.finally) {
-      context.finally = false;
-      console.log('//Starting "Finally" branch!');
-      wait.launchFiber(xfinally, context);
-    } else {
-      ReportSquare.update({
-          leaveAt: moment().format("YYYY-MM-DD HH:mm:ss")
-        }, {
-          where: {
-            uniqueid: context.uniqueid
-          }
-        })
-        .catch(function(err) {
-          console.log('Error saving exit time from IVR', err);
-        });
-      console.log('//Context Hangup');
-    }
-  });
-
-  context.on('response', function(res) {
-    //console.log('Response:', res);
-  });
-
-  context.on('variables', function(vars) {
-    console.log(vars);
-    console.log('Received new call from: ' + vars.agi_callerid +
-      ' with uniqueid: ' + vars.agi_uniqueid);
-    var squareLog = {
-      network: vars.agi_network,
-      network_script: vars.agi_network_script,
-      request: vars.agi_request,
-      channel: vars.agi_channel,
-      language: vars.agi_language,
-      type: vars.agi_type,
-      uniqueid: vars.agi_uniqueid,
-      version: vars.agi_version,
-      callerid: vars.agi_callerid,
-      calleridname: vars.agi_calleridname,
-      callingpres: vars.agi_callingpres,
-      callingani2: vars.agi_callingani2,
-      callington: vars.agi_callington,
-      callingtns: vars.agi_callingtns,
-      dnid: vars.agi_dnid,
-      rdnis: vars.agi_rdnis,
-      context: vars.agi_context,
-      extension: vars.agi_extension,
-      priority: vars.agi_priority,
-      enhanced: vars.agi_enhanced,
-      accountcode: vars.agi_accountcode,
-      threadid: vars.agi_threadid,
-      project_name: vars.agi_arg_1,
-      joinAt: moment().format("YYYY-MM-DD HH:mm:ss")
-    };
-
-    ReportSquare
-      .create(squareLog)
-      .catch(function(err) {
-        console.log('Error saving enter time for IVR', err);
-      });
-
-    if (vars.agi_arg_1) {
-      SquareProject
-        .findOne({
-          where: {
-            name: vars.agi_arg_1
-          },
-          attributes: ['id', 'production']
-        })
-        .then(function(project) {
-          if (project) {
-            if (project.production) {
-              xml.parseString(project.production, {
-                normalizeTags: true,
-                explicitArray: false
-              }, function(err, result) {
-                var root = result.mxgraphmodel.root;
-                if (root) {
-                  context.root = root;
-                  context.finally = true;
-                  context.uniqueid = vars.agi_uniqueid;
-                  context.vertices = getVertices(root);
-                  wait.launchFiber(xstart, context);
-                } else {
-                  console.log('No root in project!');
-                  context.end();
-                }
-              });
-            } else {
-              console.log('No project published!');
-              context.end();
-            }
-          } else {
-            console.log('No project found!');
-            context.end();
-          }
-        })
-        .catch(function(err) {
-          console.log('Error:', err);
-          context.end();
-        });
-    } else {
-      console.log('No project argument!');
-      context.end();
-    }
-  });
-}
-
-function splitInterval(interval) {
-  var finalInterval = {};
-  var splittedInterval = interval.split(',');
-  var intValues;
-  splittedInterval.forEach(function(element, index) {
-    switch (index) {
-      case 0:
-        if (element !== '*') {
-          intValues = element.split('-');
-          finalInterval.t_from = moment(intValues[0], 'HH:mm');
-          finalInterval.t_to = moment(intValues[1], 'HH:mm');
-        } else {
-          finalInterval.t_from = null;
-          finalInterval.t_to = null;
-        }
-        break;
-      case 1:
-        if (element !== '*') {
-          intValues = element.split('-');
-          finalInterval.wd_from = weekDaysCollection[intValues[0]];
-          finalInterval.wd_to = intValues[1] ? weekDaysCollection[intValues[1]] : null;
-        } else {
-          finalInterval.wd_from = null;
-          finalInterval.wd_to = null;
-        }
-        break;
-      case 2:
-        if (element !== '*') {
-          intValues = element.split('-');
-          finalInterval.md_from = intValues[0];
-          finalInterval.md_to = intValues[1] ? intValues[1] : null;
-        } else {
-          finalInterval.md_from = null;
-          finalInterval.md_to = null;
-        }
-        break;
-      case 3:
-        if (element !== '*') {
-          intValues = element.split('-');
-          finalInterval.m_from = monthsCollection[intValues[0]];
-          finalInterval.m_to = intValues[1] ? monthsCollection[intValues[1]] : null;
-        } else {
-          finalInterval.m_from = null;
-          finalInterval.m_to = null;
-        }
-        break;
-      default:
-
-    }
-
-
-  });
-  return finalInterval;
-}
-
-function isIntervalValid(interval) {
-  var hour = moment().format("HH:mm");
-  var day = moment().format("E");
-  var monthDay = moment().format("D");
-  var month = moment().format("M");
-  var tValid, wdValid, mdValid, mValid;
-  var monthsNumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
-  var weekDaysNumbers = [1, 2, 3, 4, 5, 6, 7];
-  var daysOfMonthsNumbers = [];
-  for (var i = 1; i <= 31; i++) {
-    daysOfMonthsNumbers.push(i);
-  }
-  tValid = (interval.t_from && interval.t_to) ? moment(hour, "HH:mm").isBetween(moment(interval.t_from, "HH:mm"), moment(interval.t_to, "HH:mm")) : true;
-  if (interval.wd_from) {
-    if (interval.wd_to) {
-      var validWeekdays = _.filter(weekDaysNumbers, function(elem) {
-        return (elem >= interval.wd_from) || (elem <= interval.wd_to);
-      });
-      wdValid = (validWeekdays.indexOf(parseInt(day)) !== -1) ? true : false;
-    } else {
-      wdValid = (parseInt(day) === interval.wd_from) ? true : false;
-    }
-  } else {
-    wdValid = true;
-  }
-  if (interval.md_from) {
-    if (interval.md_to) {
-      var validMonthsdays = _.filter(daysOfMonthsNumbers, function(elem) {
-        return (elem >= interval.md_from) || (elem <= interval.md_to);
-      });
-      mdValid = (validMonthsdays.indexOf(parseInt(monthDay)) !== -1) ? true : false;
-    } else {
-      mdValid = (parseInt(monthDay) === interval.md_from) ? true : false;
-    }
-  } else {
-    mdValid = true;
-  }
-  if (interval.m_from) {
-    if (interval.m_to) {
-      var validMonths = _.filter(monthsNumbers, function(elem) {
-        return (elem >= interval.m_from) || (elem <= interval.m_to);
-      });
-      mValid = (validMonths.indexOf(parseInt(month)) !== -1) ? true : false;
-    } else {
-      mValid = (parseInt(month) === interval.m_from) ? true : false;
-    }
-  } else {
-    mValid = true;
-  }
-
-  return tValid && wdValid && mdValid && mValid;
-
-}
-
-function setVariable(context, name, value, callback) {
-  console.log('Setting variable...');
-  console.log('Sending set variable,variable is ' + name + ', value is ', value);
-  context.send(util.format('SET VARIABLE %s %s\n', name, value), function(err, res) {
-    if (callback) {
-      callback(err, res);
-    }
-  });
-}
-
-function getVariableName(id) {
-  if (!variables) {
-    getVariables(false);
-  }
-  var variable = {
-    name: 'placeholder' //if for any reason i don't receive both the name and the id of the variable, the value will be saved in a placeholder variable
-  };
-  if (id) {
-    variable = _.find(variables, {
-      id: parseInt(id)
-    });
-  }
-  return variable.name;
-}
-
-function setVariablesMatrix(context, vertex, callback, data) {
-  var varName = getVariableName(vertex.variable_id);
-  _.forEach(data, function(row, index) {
-    _.forOwn(row, function(value, key) {
-      wait.for(setVariable, context, varName + '[' + index + '][' + key + ']', value);
-    });
-  });
-}
-
-function getVariable(context, name, callback) {
-  context.getVariable(name, function(err, res) {
-    if (res.code === 200 && res.result !== '0') {
-      res.data = res.result.substring(res.result.lastIndexOf("(") + 1,
-        res.result.lastIndexOf(")"));
-    } else {
-      res.data = '';
-    }
-    callback(null, res);
-  })
-}
-
-function getFilePath(id) {
-  if (!sounds) {
-    getSounds(false);
-  }
-  if (id > 0) {
-    var file = _.find(sounds, {
-      id: parseInt(id)
-    });
-    return util.format('%s/%s', config.convertedSounds, file.save_name);
-  }
-  return '';
-}
-
-function getUsers(synch) {
-  User
-    .findAll()
-    .then(function(result) {
-      users = _.clone(result);
-      if (synch) {
-        synchUpdates(User, users, 'id');
-      }
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function getQueues(synch) {
-  VoiceQueue
-    .findAll()
-    .then(function(result) {
-      queues = _.clone(result);
-      if (synch) {
-        synchUpdates(VoiceQueue, queues, 'name');
-      }
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function getTrunks(synch) {
-  Trunk
-    .findAll()
-    .then(function(result) {
-      trunks = _.clone(result);
-      if (synch) {
-        synchUpdates(Trunk, trunks, 'id');
-      }
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function getVariables(synch) {
-  Variable
-    .findAll()
-    .then(function(result) {
-      variables = _.clone(result);
-      if (synch) {
-        synchUpdates(Variable, variables, 'id');
-      }
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function getDbConnections(synch) {
-  SquareOdbc
-    .findAll()
-    .then(function(result) {
-      dbConnections = _.clone(result);
-      if (synch) {
-        synchUpdates(SquareOdbc, dbConnections, 'id');
-      }
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function getIntervals(synch) {
-  Interval
-    .findAll()
-    .then(function(result) {
-      intervals = _.clone(result);
-      if (synch) {
-        synchUpdates(Interval, intervals, 'id');
-      }
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function getProjects(synch) {
-  SquareProject
-    .findAll()
-    .then(function(result) {
-      projects = _.clone(result);
-      if (synch) {
-        synchUpdates(SquareProject, projects, 'id');
-      }
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function getSounds(synch) {
-  Sound
-    .findAll()
-    .then(function(result) {
-      sounds = _.clone(result);
-      if (synch) {
-        synchUpdates(Sound, sounds, 'id');
-      }
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function synchUpdates(Model, collection, key) {
-  var condition = {};
-  Model.afterCreate(function(doc) {
-    condition[key] = doc[key];
-    updateCollection(collection, condition, doc);
-  });
-  Model.afterUpdate(function(doc) {
-    condition[key] = doc[key];
-    updateCollection(collection, condition, doc);
-  });
-  Model.afterDestroy(function(doc) {
-    condition[key] = doc[key];
-    _.remove(collection, condition);
-  });
-}
-
-function updateCollection(collection, condition, doc) {
-  var oldItem = _.find(collection, condition);
-  var index = collection.indexOf(oldItem);
-  if (oldItem) {
-    _.merge(collection[index], doc);
-  } else {
-    collection.unshift(doc);
-  }
-}
-
-function getPort() {
-  Settings
-    .findOne()
-    .then(function(result) {
-      agiPort = result.agi_port;
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-module.exports = function() {
-  console.log('Starting Cally Square AGI...');
-  getPort();
-  var server = agi.createServer(main).listen(agiPort ? agiPort : 4573);
-  getUsers(true);
-  getQueues(true);
-  getTrunks(true);
-  getVariables(true);
-  getIntervals(true);
-  getProjects(true);
-  getSounds(true);
-  getDbConnections(true);
-};
+var _0x7d5f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x61\x67\x69","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x78\x6D\x6C\x32\x6A\x73","\x77\x61\x69\x74\x2E\x66\x6F\x72","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x70\x61\x74\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x68\x65\x6C\x6C\x6A\x73","\x6F\x64\x62\x63","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x53\x65\x74\x74\x69\x6E\x67\x73","\x55\x73\x65\x72","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x54\x72\x75\x6E\x6B","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x53\x6F\x75\x6E\x64","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C","\x61\x6E\x73\x77\x65\x72","\x2D\x2D\x41\x4E\x53\x57\x45\x52\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6C\x6F\x67","\x41\x6E\x73\x77\x65\x72\x69\x6E\x67\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x2E\x2E\x2E","\x41\x4E\x53\x57\x45\x52\x0A","\x73\x65\x6E\x64","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x2D\x2D\x43\x55\x53\x54\x4F\x4D\x20\x41\x50\x50\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x63\x75\x73\x74\x6F\x6D\x20\x61\x70\x70\x20\x22","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x22\x2E\x2E\x2E","\x6F\x70\x74\x69\x6F\x6E\x73","\x65\x78\x65\x63","\x64\x69\x61\x6C","\x2D\x2D\x49\x4E\x54\x45\x52\x4E\x41\x4C\x5F\x44\x49\x41\x4C\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x73\x69\x70\x5F\x69\x64","\x66\x69\x6E\x64","\x43\x61\x6C\x6C\x69\x6E\x67\x20","\x53\x49\x50\x2F\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x2E\x2E\x2E","\x74\x69\x6D\x65\x6F\x75\x74","\x6F\x70\x74\x73","\x75\x72\x6C","\x44\x49\x41\x4C","\x2C","\x6A\x6F\x69\x6E","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x2D\x2D\x45\x58\x54\x45\x52\x4E\x41\x4C\x5F\x44\x49\x41\x4C\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x53\x49\x50\x2F\x25\x73\x40\x25\x73","\x70\x68\x6F\x6E\x65","\x71\x75\x65\x75\x65","\x2D\x2D\x51\x55\x45\x55\x45\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x71\x75\x65\x75\x65\x5F\x69\x64","\x66\x69\x6C\x65\x5F\x69\x64","\x6D\x61\x63\x72\x6F","\x67\x6F\x73\x75\x62","","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4A\x6F\x69\x6E\x69\x6E\x67\x20","\x20\x71\x75\x65\x75\x65\x2E\x2E\x2E","\x51\x55\x45\x55\x45","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x2D\x2D\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6D\x61\x69\x6C\x62\x6F\x78","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x61\x62\x65\x6C","\x74\x61\x67","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20","\x3A","\x20\x62\x6C\x6F\x63\x6B\x20\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x63\x72\x65\x61\x74\x65","\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x20\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x2E\x2E","\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C","\x6D\x61\x74\x68","\x2D\x2D\x4D\x41\x54\x48\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x43\x61\x6C\x63\x75\x6C\x61\x74\x69\x6E\x67\x20\x65\x78\x70\x72\x65\x73\x73\x69\x6F\x6E\x2E\x2E\x2E","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x53\x61\x76\x69\x6E\x67\x20\x72\x65\x73\x75\x6C\x74\x20\x69\x6E\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x69\x73\x41\x72\x72\x61\x79","\x5B","\x5D","\x66\x6F\x72","\x66\x6F\x72\x45\x61\x63\x68","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x2D\x2D\x50\x4C\x41\x59\x42\x41\x43\x4B\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x70\x6C\x61\x79\x62\x61\x63\x6B\x2E\x2E\x2E","\x50\x4C\x41\x59\x42\x41\x43\x4B","\x6D\x65\x6E\x75","\x2D\x2D\x4D\x45\x4E\x55\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x54\x68\x65\x72\x65\x20\x61\x72\x65\x20","\x72\x65\x74\x72\x79","\x20\x72\x65\x74\x72\x69\x65\x73","\x41\x6E\x6E\x6F\x75\x6E\x63\x69\x6E\x67\x20\x61\x6E\x64\x20\x77\x61\x69\x74\x69\x6E\x67\x20\x66\x6F\x72\x20\x75\x73\x65\x72\x20\x65\x6E\x74\x72\x79\x2E\x2E\x2E","\x47\x45\x54\x20\x44\x41\x54\x41\x20\x25\x73\x20\x25\x73\x20\x25\x73\x0A","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x64\x69\x67\x69\x74","\x72\x65\x73\x75\x6C\x74","\x20\x28\x74\x69\x6D\x65\x6F\x75\x74\x29","\x53\x61\x76\x69\x6E\x67\x20\x75\x73\x65\x72\x20\x65\x6E\x74\x72\x79\x20\x69\x6E\x20\x61\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x64\x61\x74\x61","\x4D\x65\x6E\x75\x20\x74\x69\x6D\x65\x6F\x75\x74\x21","\x30","\x74","\x52\x75\x6E\x20\x6F\x75\x74\x20\x6F\x66\x20\x72\x65\x74\x72\x69\x65\x73\x21","\x2D","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x2D\x2D\x53\x41\x59\x4E\x55\x4D\x42\x45\x52\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x61\x79\x69\x6E\x67\x20\x6E\x75\x6D\x62\x65\x72\x2E\x2E\x2E","\x53\x41\x59\x20\x4E\x55\x4D\x42\x45\x52\x20\x25\x73\x20\x22\x25\x73\x22\x0A","\x6E\x75\x6D\x62\x65\x72","\x65\x73\x63\x61\x70\x65\x5F\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x2D\x2D\x53\x41\x59\x50\x48\x4F\x4E\x45\x54\x49\x43\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x61\x79\x69\x6E\x67\x20\x70\x68\x6F\x6E\x65\x74\x69\x63\x2E\x2E\x2E","\x53\x41\x59\x20\x50\x48\x4F\x4E\x45\x54\x49\x43\x20\x25\x73\x20\x22\x25\x73\x22\x0A","\x74\x65\x78\x74","\x74\x74\x73","\x2D\x2D\x47\x4F\x4F\x47\x4C\x45\x5F\x54\x54\x53\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x61\x67\x69\x5F\x73\x63\x72\x69\x70\x74\x73","\x67\x6F\x6F\x67\x6C\x65\x74\x74\x73\x2E\x61\x67\x69","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x43\x61\x6C\x6C\x69\x6E\x67\x20\x47\x6F\x6F\x67\x6C\x65\x20\x54\x54\x53\x20\x41\x50\x49\x2E\x2E\x2E","\x41\x47\x49","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x2D\x2D\x49\x53\x50\x45\x45\x43\x48\x5F\x54\x54\x53\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x2F\x76\x61\x72\x2F\x77\x77\x77\x2F\x68\x74\x6D\x6C\x2F\x61\x67\x69\x73\x71\x75\x61\x72\x65\x2F\x61\x67\x69\x73\x63\x72\x69\x70\x74\x73\x2F\x69\x73\x70\x65\x65\x63\x68\x2D\x74\x74\x73\x2E\x61\x67\x69","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x6B\x65\x79","\x43\x61\x6C\x6C\x69\x6E\x67\x20\x69\x53\x70\x65\x65\x63\x68\x20\x54\x54\x53\x20\x41\x50\x49\x2E\x2E\x2E","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x2D\x2D\x47\x45\x54\x44\x49\x47\x49\x54\x53\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6D\x61\x78\x64\x69\x67\x69\x74","\x6C\x65\x6E\x67\x74\x68","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x2D\x31","\x54\x68\x65\x72\x65\x20\x69\x73\x20\x61\x20\x72\x65\x73\x75\x6C\x74\x2C\x20\x69\x73\x20\x6F\x76\x65\x72\x20\x74\x68\x65\x20\x6D\x69\x6E\x69\x6D\x75\x6D\x20\x6C\x65\x6E\x67\x74\x68\x20\x61\x6E\x64\x20\x6E\x6F\x74\x20\x64\x75\x65\x20\x74\x6F\x20\x61\x6E\x20\x68\x61\x6E\x67\x75\x70\x21","\x78","\x43\x68\x61\x6E\x6E\x65\x6C\x20\x68\x61\x6E\x67\x75\x70\x21","\x4E\x6F\x20\x65\x6E\x74\x72\x79\x20\x6F\x72\x20\x6E\x6F\x74\x20\x6C\x6F\x6E\x67\x20\x65\x6E\x6F\x75\x67\x68\x21","\x69","\x72\x65\x63\x6F\x72\x64","\x2D\x2D\x52\x45\x43\x4F\x52\x44\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x63\x61\x6C\x6C\x20\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x2E\x2E","\x52\x45\x43\x4F\x52\x44\x20\x46\x49\x4C\x45\x20\x25\x73\x20\x77\x61\x76\x20\x22\x25\x73\x22\x20\x25\x73\x20\x25\x73\x20\x25\x73\x20\x25\x73\x0A","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x63\x6F\x64\x65","\x53\x61\x76\x69\x6E\x67\x20\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x66\x69\x6C\x65\x6E\x61\x6D\x65\x20\x69\x6E\x20\x52\x45\x43\x4F\x52\x44\x49\x4E\x47\x5F\x53\x41\x56\x45\x4E\x41\x4D\x45\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x53\x45\x54\x20\x56\x41\x52\x49\x41\x42\x4C\x45\x20\x25\x73\x20\x25\x73\x0A","\x52\x45\x43\x4F\x52\x44\x49\x4E\x47\x5F\x53\x41\x56\x45\x4E\x41\x4D\x45","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x2D\x2D\x47\x4F\x54\x4F\x49\x46\x54\x49\x4D\x45\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x66\x61\x6C\x73\x65","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x64","\x66\x69\x6C\x74\x65\x72","\x49\x73\x20\x61\x20\x67\x72\x6F\x75\x70\x20\x6F\x66\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x21","\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x21","\x43\x68\x65\x63\x6B\x69\x6E\x67\x20\x69\x66\x20\x61\x74\x20\x6C\x65\x61\x73\x74\x20\x6F\x6E\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x69\x73\x20\x76\x61\x6C\x69\x64\x2E\x2E\x2E","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x20","\x20\x69\x73\x20\x76\x61\x6C\x69\x64\x21","\x74\x72\x75\x65","\x54\x68\x65\x72\x65\x20\x61\x72\x65\x20\x6E\x6F\x20\x73\x75\x62\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x2C\x20\x73\x6F\x20\x69\x74\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x61\x6C\x77\x61\x79\x73\x20\x74\x72\x75\x65\x21","\x49\x73\x20\x61\x20\x73\x69\x6E\x67\x6C\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x21","\x54\x68\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x69\x73\x20\x76\x61\x6C\x69\x64\x21","\x54\x68\x65\x20\x66\x69\x6E\x61\x6C\x20\x72\x65\x73\x75\x6C\x74\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x69\x73\x20\x22","\x22\x21","\x76\x73\x77\x69\x74\x63\x68","\x2D\x2D\x56\x41\x52\x49\x41\x42\x4C\x45\x5F\x53\x57\x49\x54\x43\x48\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x47\x65\x74\x74\x69\x6E\x67\x20\x74\x68\x65\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x76\x61\x6C\x75\x65\x20\x61\x6E\x64\x20\x73\x65\x61\x72\x63\x68\x69\x6E\x67\x20\x74\x68\x65\x20\x72\x69\x67\x68\x74\x20\x65\x78\x69\x74\x2E\x2E\x2E","\x67\x6F\x61\x6C","\x67\x6F\x61\x6C\x6E\x61\x6D\x65","\x31","\x74\x68\x65\x6E","\x73\x79\x73\x74\x65\x6D","\x2D\x2D\x53\x59\x53\x54\x45\x4D\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x63\x6F\x6D\x6D\x61\x6E\x64","\x74\x72\x69\x6D","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x74\x68\x65\x20\x73\x79\x73\x74\x65\x6D\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x2E\x2E\x2E","\x72\x65\x70\x6C\x61\x63\x65","\x50\x72\x6F\x67\x72\x61\x6D\x20\x6F\x75\x74\x70\x75\x74\x3A","\x53\x61\x76\x69\x6E\x67\x20\x74\x68\x65\x20\x6F\x75\x74\x70\x75\x74\x20\x69\x6E\x20\x61\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x22","\x2D\x2D\x41\x47\x49\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x74\x68\x65\x20\x41\x47\x49\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x2E\x2E\x2E","\x61\x72\x67\x73","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x2D\x2D\x53\x55\x42\x50\x52\x4F\x4A\x45\x43\x54\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x4D\x6F\x76\x69\x6E\x67\x20\x74\x6F\x20\x70\x72\x6F\x6A\x65\x63\x74\x20\x22\x22","\x61\x67\x69\x3A\x2F\x2F\x31\x39\x32\x2E\x31\x36\x38\x2E\x32\x2E\x31\x34\x37\x2F\x73\x71\x75\x61\x72\x65\x2C\x25\x73","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x2D\x2D\x49\x53\x50\x45\x45\x43\x48\x5F\x41\x53\x52\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x69\x73\x70\x65\x65\x63\x68\x2D\x61\x73\x72\x2E\x61\x67\x69","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x6D\x6F\x64\x65\x6C","\x23","\x43\x61\x6C\x6C\x69\x6E\x67\x20\x47\x6F\x6F\x67\x6C\x65\x20\x41\x53\x52\x20\x41\x50\x49\x2E\x2E\x2E","\x64\x61\x74\x61\x62\x61\x73\x65","\x2D\x2D\x44\x41\x54\x41\x42\x41\x53\x45\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6F\x64\x62\x63\x5F\x69\x64","\x54\x72\x79\x69\x6E\x67\x20\x74\x6F\x20\x67\x65\x74\x20\x4F\x44\x42\x43\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x2E\x2E\x2E","\x71\x75\x65\x72\x79","\x64\x73\x6E","\x6F\x70\x65\x6E\x53\x79\x6E\x63","\x71\x75\x65\x72\x79\x53\x79\x6E\x63","\x63\x6C\x6F\x73\x65\x53\x79\x6E\x63","\x6D\x65\x73\x73\x61\x67\x65","\x45\x52\x52\x4F\x52","\x4D\x45\x53\x53\x41\x47\x45","\x67\x6F\x74\x6F\x63","\x2D\x2D\x47\x4F\x54\x4F\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x47\x6F\x69\x6E\x67\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x20\x2E\x2E\x2E","\x4C\x6F\x63\x61\x6C\x2F\x25\x73\x40\x25\x73","\x63\x6F\x6E\x74\x65\x78\x74","\x67\x6F\x74\x6F\x69\x66","\x2D\x2D\x47\x4F\x54\x4F\x49\x46\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x45\x76\x61\x6C\x75\x61\x74\x69\x6E\x67\x20\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x2E\x2E","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x68\x65\x20\x72\x65\x73\x75\x6C\x74\x20\x69\x73\x20","\x68\x61\x6E\x67\x75\x70","\x2D\x2D\x48\x41\x4E\x47\x55\x50\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x48\x61\x6E\x67\x69\x6E\x20\x75\x70\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x2E\x2E\x2E","\x6E\x6F\x6F\x70","\x2D\x2D\x4E\x4F\x4F\x50\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x6F\x75\x74\x70\x75\x74","\x4E\x4F\x4F\x50\x20\x76\x61\x6C\x75\x65\x20\x69\x73\x20","\x4E\x4F\x4F\x50","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x2D\x2D\x53\x41\x59\x44\x49\x47\x49\x54\x53\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x61\x79\x69\x6E\x67\x20\x64\x69\x67\x69\x74\x73\x2E\x2E\x2E","\x53\x41\x59\x20\x44\x49\x47\x49\x54\x53\x20\x25\x73\x20\x22\x25\x73\x22\x0A","\x64\x69\x67\x69\x74\x73","\x73\x65\x74","\x2D\x2D\x53\x45\x54\x20\x42\x4C\x4F\x43\x4B\x2D\x2D","\x53\x61\x76\x69\x6E\x67\x20\x76\x61\x6C\x75\x65\x20\x69\x6E\x20\x61\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x76\x61\x6C\x75\x65","\x6D\x78\x63\x65\x6C\x6C","\x24","\x66\x6F\x72\x49\x6E","\x72\x65\x64\x75\x63\x65","\x65\x64\x67\x65","\x73\x6F\x75\x72\x63\x65","\x76\x61\x6C\x75\x65","\x24\x2E\x74\x61\x72\x67\x65\x74","\x6D\x61\x74\x63\x68","\x72\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x72\x65\x70\x6C\x61\x63\x65\x64","\x76\x65\x72\x74\x69\x63\x65\x73","\x73\x74\x61\x72\x74","\x69\x73\x46\x75\x6E\x63\x74\x69\x6F\x6E","\x4E\x6F\x20\x74\x61\x72\x67\x65\x74\x20\x66\x6F\x75\x6E\x64\x2C\x20\x68\x61\x6E\x67\x75\x70\x21","\x66\x69\x6E\x61\x6C\x6C\x79","\x4E\x6F\x20\x74\x61\x72\x67\x65\x74\x20\x66\x6F\x75\x6E\x64\x2C\x20\x73\x74\x6F\x70\x70\x69\x6E\x67\x20\x22\x46\x69\x6E\x61\x6C\x6C\x79\x22\x20\x62\x72\x61\x6E\x63\x68\x21","\x65\x6E\x64","\x65\x72\x72\x6F\x72","\x2F\x2F\x45\x72\x72\x6F\x72\x3A","\x6F\x6E","\x63\x6C\x6F\x73\x65","\x2F\x2F\x43\x6F\x6E\x74\x65\x78\x74\x20\x63\x6C\x6F\x73\x65","\x2F\x2F\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x22\x46\x69\x6E\x61\x6C\x6C\x79\x22\x20\x62\x72\x61\x6E\x63\x68\x21","\x6C\x61\x75\x6E\x63\x68\x46\x69\x62\x65\x72","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x65\x78\x69\x74\x20\x74\x69\x6D\x65\x20\x66\x72\x6F\x6D\x20\x49\x56\x52","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x75\x70\x64\x61\x74\x65","\x2F\x2F\x43\x6F\x6E\x74\x65\x78\x74\x20\x48\x61\x6E\x67\x75\x70","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x52\x65\x63\x65\x69\x76\x65\x64\x20\x6E\x65\x77\x20\x63\x61\x6C\x6C\x20\x66\x72\x6F\x6D\x3A\x20","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x65\x72\x69\x64","\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x3A\x20","\x61\x67\x69\x5F\x75\x6E\x69\x71\x75\x65\x69\x64","\x61\x67\x69\x5F\x6E\x65\x74\x77\x6F\x72\x6B","\x61\x67\x69\x5F\x6E\x65\x74\x77\x6F\x72\x6B\x5F\x73\x63\x72\x69\x70\x74","\x61\x67\x69\x5F\x72\x65\x71\x75\x65\x73\x74","\x61\x67\x69\x5F\x63\x68\x61\x6E\x6E\x65\x6C","\x61\x67\x69\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x61\x67\x69\x5F\x74\x79\x70\x65","\x61\x67\x69\x5F\x76\x65\x72\x73\x69\x6F\x6E","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x69\x6E\x67\x70\x72\x65\x73","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x69\x6E\x67\x61\x6E\x69\x32","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x69\x6E\x67\x74\x6F\x6E","\x61\x67\x69\x5F\x63\x61\x6C\x6C\x69\x6E\x67\x74\x6E\x73","\x61\x67\x69\x5F\x64\x6E\x69\x64","\x61\x67\x69\x5F\x72\x64\x6E\x69\x73","\x61\x67\x69\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x61\x67\x69\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x61\x67\x69\x5F\x70\x72\x69\x6F\x72\x69\x74\x79","\x61\x67\x69\x5F\x65\x6E\x68\x61\x6E\x63\x65\x64","\x61\x67\x69\x5F\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x61\x67\x69\x5F\x74\x68\x72\x65\x61\x64\x69\x64","\x61\x67\x69\x5F\x61\x72\x67\x5F\x31","\x45\x72\x72\x6F\x72\x20\x73\x61\x76\x69\x6E\x67\x20\x65\x6E\x74\x65\x72\x20\x74\x69\x6D\x65\x20\x66\x6F\x72\x20\x49\x56\x52","\x45\x72\x72\x6F\x72\x3A","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x6D\x78\x67\x72\x61\x70\x68\x6D\x6F\x64\x65\x6C","\x4E\x6F\x20\x72\x6F\x6F\x74\x20\x69\x6E\x20\x70\x72\x6F\x6A\x65\x63\x74\x21","\x70\x61\x72\x73\x65\x53\x74\x72\x69\x6E\x67","\x4E\x6F\x20\x70\x72\x6F\x6A\x65\x63\x74\x20\x70\x75\x62\x6C\x69\x73\x68\x65\x64\x21","\x4E\x6F\x20\x70\x72\x6F\x6A\x65\x63\x74\x20\x66\x6F\x75\x6E\x64\x21","\x66\x69\x6E\x64\x4F\x6E\x65","\x4E\x6F\x20\x70\x72\x6F\x6A\x65\x63\x74\x20\x61\x72\x67\x75\x6D\x65\x6E\x74\x21","\x73\x70\x6C\x69\x74","\x2A","\x74\x5F\x66\x72\x6F\x6D","\x48\x48\x3A\x6D\x6D","\x74\x5F\x74\x6F","\x77\x64\x5F\x66\x72\x6F\x6D","\x77\x64\x5F\x74\x6F","\x6D\x64\x5F\x66\x72\x6F\x6D","\x6D\x64\x5F\x74\x6F","\x6D\x5F\x66\x72\x6F\x6D","\x6D\x5F\x74\x6F","\x45","\x44","\x4D","\x70\x75\x73\x68","\x69\x73\x42\x65\x74\x77\x65\x65\x6E","\x69\x6E\x64\x65\x78\x4F\x66","\x53\x65\x74\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x2E\x2E","\x53\x65\x6E\x64\x69\x6E\x67\x20\x73\x65\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x2C\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x69\x73\x20","\x2C\x20\x76\x61\x6C\x75\x65\x20\x69\x73\x20","\x70\x6C\x61\x63\x65\x68\x6F\x6C\x64\x65\x72","\x5D\x5B","\x66\x6F\x72\x4F\x77\x6E","\x28","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x29","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x25\x73\x2F\x25\x73","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x53\x6F\x75\x6E\x64\x73","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x63\x6C\x6F\x6E\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x6D\x65\x72\x67\x65","\x75\x6E\x73\x68\x69\x66\x74","\x61\x67\x69\x5F\x70\x6F\x72\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x74\x61\x72\x74\x69\x6E\x67\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65\x20\x41\x47\x49\x2E\x2E\x2E","\x6C\x69\x73\x74\x65\x6E","\x63\x72\x65\x61\x74\x65\x53\x65\x72\x76\x65\x72"];_0x7d5f[0];var _=require(_0x7d5f[1]);var agi=require(_0x7d5f[2]);var util=require(_0x7d5f[3]);var moment=require(_0x7d5f[4]);var xml=require(_0x7d5f[5]);var wait=require(_0x7d5f[6]);var sr=require(_0x7d5f[7]);var path=require(_0x7d5f[8]);var config=require(_0x7d5f[9]);var sh=require(_0x7d5f[10]);var db=require(_0x7d5f[11])();var SquareProject=require(_0x7d5f[13])[_0x7d5f[12]];var Variable=require(_0x7d5f[13])[_0x7d5f[14]];var SquareOdbc=require(_0x7d5f[13])[_0x7d5f[15]];var Settings=require(_0x7d5f[13])[_0x7d5f[16]];var User=require(_0x7d5f[13])[_0x7d5f[17]];var VoiceQueue=require(_0x7d5f[13])[_0x7d5f[18]];var Trunk=require(_0x7d5f[13])[_0x7d5f[19]];var Interval=require(_0x7d5f[13])[_0x7d5f[20]];var Sound=require(_0x7d5f[13])[_0x7d5f[21]];var ReportSquare=require(_0x7d5f[13])[_0x7d5f[22]];var ReportSquareDetail=require(_0x7d5f[13])[_0x7d5f[23]];var users,trunks,variables,intervals,projects,sounds,queues,dbConnections,generalUniqueId;var agiPort;var weekDaysCollection={mon:1,tue:2,wed:3,thu:4,fri:5,sat:6,sun:7};var monthsCollection={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12};var methods={};methods[_0x7d5f[24]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[25]);console[_0x7d5f[26]](_0x7d5f[27]);_0x6c65x24[_0x7d5f[29]](_0x7d5f[28],function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[30]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[31]);console[_0x7d5f[26]](_0x7d5f[32]+_0x6c65x25[_0x7d5f[33]]+_0x7d5f[34]);_0x6c65x24[_0x7d5f[36]](_0x6c65x25[_0x7d5f[33]],_0x6c65x25[_0x7d5f[35]],function(_0x6c65x27,_0x6c65x28){if(_0x6c65x26){_0x6c65x26(_0x6c65x27,_0x6c65x28)}})};methods[_0x7d5f[37]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[38]);if(!users){getUsers(false)};var _0x6c65x29=_[_0x7d5f[40]](users,{id:parseInt(_0x6c65x25[_0x7d5f[39]])});console[_0x7d5f[26]](_0x7d5f[41]+util[_0x7d5f[44]](_0x7d5f[42],_0x6c65x29[_0x7d5f[43]])+_0x7d5f[45]);var _0x6c65x2a=[util[_0x7d5f[44]](_0x7d5f[42],_0x6c65x29[_0x7d5f[43]]),_0x6c65x25[_0x7d5f[46]],_0x6c65x25[_0x7d5f[47]],_0x6c65x25[_0x7d5f[48]]];_0x6c65x24[_0x7d5f[36]](_0x7d5f[49],_0x6c65x2a[_0x7d5f[51]](_0x7d5f[50]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[52]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[53]);if(!trunks){getTrunks(false)};var _0x6c65x2b=_[_0x7d5f[40]](trunks,{id:parseInt(_0x6c65x25[_0x7d5f[54]])});console[_0x7d5f[26]](_0x7d5f[41]+util[_0x7d5f[44]](_0x7d5f[42],_0x6c65x2b[_0x7d5f[43]])+_0x7d5f[45]);var _0x6c65x2a=[util[_0x7d5f[44]](_0x7d5f[55],_0x6c65x25[_0x7d5f[56]],_0x6c65x2b[_0x7d5f[43]]),_0x6c65x25[_0x7d5f[46]],_0x6c65x25[_0x7d5f[47]],_0x6c65x25[_0x7d5f[48]]];_0x6c65x24[_0x7d5f[36]](_0x7d5f[49],_0x6c65x2a[_0x7d5f[51]](_0x7d5f[50]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[57]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[58]);if(!queues){getQueues(false)};var _0x6c65x2c=_[_0x7d5f[40]](queues,{name:_0x6c65x25[_0x7d5f[59]]});var _0x6c65x2d=getFilePath(_0x6c65x25[_0x7d5f[60]]);var _0x6c65x2a=[_0x6c65x2c[_0x7d5f[43]],_0x6c65x25[_0x7d5f[47]],_0x6c65x25[_0x7d5f[48]],_0x6c65x2d,_0x6c65x25[_0x7d5f[46]],_0x6c65x25[_0x7d5f[2]],_0x6c65x25[_0x7d5f[61]],_0x6c65x25[_0x7d5f[62]],_0x7d5f[63],_0x6c65x25[_0x7d5f[64]]];console[_0x7d5f[26]](_0x7d5f[65]+_0x6c65x2c[_0x7d5f[43]]+_0x7d5f[66]);_0x6c65x24[_0x7d5f[36]](_0x7d5f[67],_0x6c65x2a[_0x7d5f[51]](_0x7d5f[50]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[68]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[69]);var _0x6c65x2a=[_0x6c65x25[_0x7d5f[70]],_0x6c65x25[_0x7d5f[47]]];var _0x6c65x2e={uniqueid:_0x6c65x24[_0x7d5f[71]],node:_0x6c65x25[_0x7d5f[72]],application:_0x6c65x25[_0x7d5f[73]],data:_0x6c65x2a[_0x7d5f[51]](_0x7d5f[50])||null};ReportSquareDetail[_0x7d5f[78]](_0x6c65x2e)[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x7d5f[74]+_0x6c65x25[_0x7d5f[73]]+_0x7d5f[75]+_0x6c65x25[_0x7d5f[72]]+_0x7d5f[76],_0x6c65x27)});console[_0x7d5f[26]](_0x7d5f[79]);_0x6c65x24[_0x7d5f[36]](_0x7d5f[80],_0x6c65x2a[_0x7d5f[51]](_0x7d5f[50]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[81]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[82]);console[_0x7d5f[26]](_0x7d5f[83]);var _0x6c65x2f=eval(_0x6c65x25[_0x7d5f[84]]);console[_0x7d5f[26]](_0x7d5f[85]);var _0x6c65x30=getVariableName(_0x6c65x25[_0x7d5f[86]]);if(_[_0x7d5f[87]](_0x6c65x2f)){_0x6c65x2f[_0x7d5f[91]](function(_0x6c65x31,_0x6c65x32){wait[_0x7d5f[90]](setVariable,_0x6c65x24,_0x6c65x30+_0x7d5f[88]+_0x6c65x32+_0x7d5f[89],_0x6c65x31)})}else {wait[_0x7d5f[90]](setVariable,_0x6c65x24,_0x6c65x30,_0x6c65x2f)}};methods[_0x7d5f[92]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[93]);var _0x6c65x33=getFilePath(_0x6c65x25[_0x7d5f[60]]);var _0x6c65x2a=[_0x6c65x33,_0x6c65x25[_0x7d5f[47]]];console[_0x7d5f[26]](_0x7d5f[94]);_0x6c65x24[_0x7d5f[36]](_0x7d5f[95],_0x6c65x2a[_0x7d5f[51]](_0x7d5f[50]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[96]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[97]);var _0x6c65x28={};console[_0x7d5f[26]](_0x7d5f[98]+_0x6c65x25[_0x7d5f[99]]+_0x7d5f[100]);if(_0x6c65x25[_0x7d5f[99]]>0){_0x6c65x25[_0x7d5f[99]]--;var _0x6c65x34=getFilePath(_0x6c65x25[_0x7d5f[60]]);console[_0x7d5f[26]](_0x7d5f[101]);_0x6c65x24[_0x7d5f[29]](util[_0x7d5f[44]](_0x7d5f[102],_0x6c65x34,parseInt(_0x6c65x25[_0x7d5f[103]])*1000,_0x6c65x25[_0x7d5f[104]]),function(_0x6c65x27,_0x6c65x28){var _0x6c65x2e={uniqueid:_0x6c65x24[_0x7d5f[71]],node:_0x6c65x25[_0x7d5f[72]],application:_0x6c65x25[_0x7d5f[73]],data:_0x6c65x28[_0x7d5f[105]]||null};ReportSquareDetail[_0x7d5f[78]](_0x6c65x2e)[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x7d5f[74]+_0x6c65x25[_0x7d5f[73]]+_0x7d5f[75]+_0x6c65x25[_0x7d5f[72]]+_0x7d5f[76],_0x6c65x27)});if(_0x6c65x28[_0x7d5f[105]]!==_0x7d5f[106]){if(_0x6c65x25[_0x7d5f[86]]){console[_0x7d5f[26]](_0x7d5f[107]);var _0x6c65x30=getVariableName(_0x6c65x25[_0x7d5f[86]]);setVariable(_0x6c65x24,_0x6c65x30,_0x6c65x28[_0x7d5f[105]],function(){_0x6c65x28[_0x7d5f[108]]=_0x6c65x28[_0x7d5f[105]];_0x6c65x26(null,_0x6c65x28)})}}else {console[_0x7d5f[26]](_0x7d5f[109]);_0x6c65x28={code:200,result:_0x7d5f[110],data:_0x7d5f[111]};_0x6c65x26(null,_0x6c65x28)}})}else {console[_0x7d5f[26]](_0x7d5f[112]);_0x6c65x28={code:200,result:_0x7d5f[110],data:_0x7d5f[113]};_0x6c65x26(null,_0x6c65x28)}};methods[_0x7d5f[114]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[115]);console[_0x7d5f[26]](_0x7d5f[116]);_0x6c65x24[_0x7d5f[29]](util[_0x7d5f[44]](_0x7d5f[117],_0x6c65x25[_0x7d5f[118]],_0x6c65x25[_0x7d5f[119]]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[120]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[121]);console[_0x7d5f[26]](_0x7d5f[122]);_0x6c65x24[_0x7d5f[29]](util[_0x7d5f[44]](_0x7d5f[123],_0x6c65x25[_0x7d5f[124]],_0x6c65x25[_0x7d5f[119]]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[125]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[126]);var _0x6c65x2a=[path[_0x7d5f[51]](config[_0x7d5f[127]],_0x7d5f[128],_0x7d5f[129]),encodeURIComponent(_0x6c65x25[_0x7d5f[124]]),_0x6c65x25[_0x7d5f[130]]];console[_0x7d5f[26]](_0x7d5f[131]);_0x6c65x24[_0x7d5f[36]](_0x7d5f[132],_0x6c65x2a[_0x7d5f[51]](_0x7d5f[50]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[133]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[134]);var _0x6c65x2a=[_0x7d5f[135],encodeURIComponent(_0x6c65x25[_0x7d5f[124]]),_0x6c65x25[_0x7d5f[136]],_0x7d5f[63],_0x7d5f[63],_0x6c65x25[_0x7d5f[137]]];console[_0x7d5f[26]](_0x7d5f[138]);_0x6c65x24[_0x7d5f[36]](_0x7d5f[132],_0x6c65x2a[_0x7d5f[51]](_0x7d5f[50]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[139]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[140]);var _0x6c65x28={};console[_0x7d5f[26]](_0x7d5f[98]+_0x6c65x25[_0x7d5f[99]]+_0x7d5f[100]);if(_0x6c65x25[_0x7d5f[99]]>0){_0x6c65x25[_0x7d5f[99]]--;var _0x6c65x34=getFilePath(_0x6c65x25[_0x7d5f[60]]);console[_0x7d5f[26]](_0x7d5f[101]);_0x6c65x24[_0x7d5f[29]](util[_0x7d5f[44]](_0x7d5f[102],_0x6c65x34,parseInt(_0x6c65x25[_0x7d5f[103]])*1000,_0x6c65x25[_0x7d5f[141]]),function(_0x6c65x27,_0x6c65x28){var _0x6c65x2e={uniqueid:_0x6c65x24[_0x7d5f[71]],node:_0x6c65x25[_0x7d5f[72]],application:_0x6c65x25[_0x7d5f[73]],data:_0x6c65x28[_0x7d5f[105]]||null};ReportSquareDetail[_0x7d5f[78]](_0x6c65x2e)[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x7d5f[74]+_0x6c65x25[_0x7d5f[73]]+_0x7d5f[75]+_0x6c65x25[_0x7d5f[72]]+_0x7d5f[76],_0x6c65x27)});if(_0x6c65x28[_0x7d5f[105]]&&_0x6c65x28[_0x7d5f[105]][_0x7d5f[142]]>=parseInt(_0x6c65x25[_0x7d5f[143]])){if(_0x6c65x28[_0x7d5f[105]]!==_0x7d5f[144]){console[_0x7d5f[26]](_0x7d5f[145]);if(_0x6c65x25[_0x7d5f[86]]){console[_0x7d5f[26]](_0x7d5f[107]);var _0x6c65x30=getVariableName(_0x6c65x25[_0x7d5f[86]]);setVariable(_0x6c65x24,_0x6c65x30,_0x6c65x28[_0x7d5f[105]],function(){_0x6c65x28={code:200,result:_0x7d5f[110],data:_0x7d5f[146]};_0x6c65x26(null,_0x6c65x28)})}}else {console[_0x7d5f[26]](_0x7d5f[147]);_0x6c65x28={code:500,result:_0x7d5f[144]};_0x6c65x26(null,_0x6c65x28)}}else {console[_0x7d5f[26]](_0x7d5f[148]);_0x6c65x28={code:200,result:_0x7d5f[110],data:_0x7d5f[149]};_0x6c65x26(null,_0x6c65x28)}})}else {console[_0x7d5f[26]](_0x7d5f[112]);_0x6c65x28={code:500,result:_0x7d5f[144]};_0x6c65x26(null,_0x6c65x28)}};methods[_0x7d5f[150]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[151]);var _0x6c65x35=sr();console[_0x7d5f[26]](_0x7d5f[152]);_0x6c65x24[_0x7d5f[29]](util[_0x7d5f[44]](_0x7d5f[153],path[_0x7d5f[51]](config[_0x7d5f[127]],_0x7d5f[154],_0x6c65x35),_0x6c65x25[_0x7d5f[119]],_0x6c65x25[_0x7d5f[46]],null,true,null),function(_0x6c65x27,_0x6c65x28){if(_0x6c65x28[_0x7d5f[155]]===200&&_0x6c65x28[_0x7d5f[105]]!==_0x7d5f[144]){console[_0x7d5f[26]](_0x7d5f[156]);_0x6c65x24[_0x7d5f[29]](util[_0x7d5f[44]](_0x7d5f[157],_0x7d5f[158],_0x6c65x35),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})}else {_0x6c65x26(_0x6c65x27,_0x6c65x28)}})};methods[_0x7d5f[159]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[160]);var _0x6c65x28;var _0x6c65x36=_0x7d5f[161];var _0x6c65x37;if(!intervals){getIntervals(false)};var _0x6c65x38=_[_0x7d5f[40]](intervals,{id:parseInt(_0x6c65x25[_0x7d5f[162]])});if(!_0x6c65x38[_0x7d5f[163]]){_0x6c65x37=_[_0x7d5f[165]](intervals,{IntervalId:parseInt(_0x6c65x38[_0x7d5f[164]])})};if(_0x6c65x37){console[_0x7d5f[26]](_0x7d5f[166]);if(_0x6c65x37[_0x7d5f[142]]){console[_0x7d5f[26]](_0x7d5f[98]+_0x6c65x37[_0x7d5f[142]]+_0x7d5f[167]);var _0x6c65x39;console[_0x7d5f[26]](_0x7d5f[168]);_0x6c65x37[_0x7d5f[91]](function(_0x6c65x31,_0x6c65x32){_0x6c65x39=splitInterval(_0x6c65x31[_0x7d5f[169]]);if(isIntervalValid(_0x6c65x39)){console[_0x7d5f[26]](_0x7d5f[170]+_0x6c65x32+_0x7d5f[171]);_0x6c65x36=_0x7d5f[172]}})}else {console[_0x7d5f[26]](_0x7d5f[173]);_0x6c65x36=_0x7d5f[172]}}else {console[_0x7d5f[26]](_0x7d5f[174]);var _0x6c65x3a=splitInterval(_0x6c65x38[_0x7d5f[169]]);if(isIntervalValid(_0x6c65x3a)){console[_0x7d5f[26]](_0x7d5f[175]);_0x6c65x36=_0x7d5f[172]}};console[_0x7d5f[26]](_0x7d5f[176]+_0x6c65x36+_0x7d5f[177]);_0x6c65x28={code:200,result:_0x7d5f[110],data:_0x6c65x36};_0x6c65x26(null,_0x6c65x28)};methods[_0x7d5f[178]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[179]);console[_0x7d5f[26]](_0x7d5f[180]);var _0x6c65x30=getVariableName(_0x6c65x25[_0x7d5f[86]]);getVariable(_0x6c65x24,_0x6c65x30,function(_0x6c65x27,_0x6c65x28){if(!_0x6c65x28[_0x7d5f[108]]){_0x6c65x28[_0x7d5f[108]]=_0x7d5f[113]};_0x6c65x26(null,_0x6c65x28)})};methods[_0x7d5f[181]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){var _0x6c65x2e={uniqueid:_0x6c65x24[_0x7d5f[71]],node:_0x6c65x25[_0x7d5f[72]],application:_0x6c65x25[_0x7d5f[73]],data:_0x6c65x25[_0x7d5f[182]]||null};ReportSquareDetail[_0x7d5f[78]](_0x6c65x2e)[_0x7d5f[184]](function(_0x6c65x28){_0x6c65x28={code:200,result:_0x7d5f[183]};_0x6c65x26(null,_0x6c65x28)})[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x7d5f[74]+_0x6c65x25[_0x7d5f[73]]+_0x7d5f[75]+_0x6c65x25[_0x7d5f[72]]+_0x7d5f[76],_0x6c65x27);var _0x6c65x28={code:200,result:_0x7d5f[183]};_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[185]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[186]);var _0x6c65x2e={uniqueid:_0x6c65x24[_0x7d5f[71]],node:_0x6c65x25[_0x7d5f[72]],application:_0x6c65x25[_0x7d5f[73]],data:_[_0x7d5f[188]](_0x6c65x25[_0x7d5f[187]])||null};ReportSquareDetail[_0x7d5f[78]](_0x6c65x2e)[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x7d5f[74]+_0x6c65x25[_0x7d5f[73]]+_0x7d5f[75]+_0x6c65x25[_0x7d5f[72]]+_0x7d5f[76],_0x6c65x27)});console[_0x7d5f[26]](_0x7d5f[189]);sh[_0x7d5f[36]](_[_0x7d5f[188]](_0x6c65x25[_0x7d5f[187]]),function(_0x6c65x3b,_0x6c65x3c){var _0x6c65x3d=_0x6c65x3c[_0x7d5f[190]](/(\r\n|\n|\r)/gm,_0x7d5f[63]);console[_0x7d5f[26]](_0x7d5f[191],_0x6c65x3d);console[_0x7d5f[26]](_0x7d5f[192]);var _0x6c65x30=getVariableName(_0x6c65x25[_0x7d5f[86]]);setVariable(_0x6c65x24,_0x6c65x30,_0x7d5f[193]+_0x6c65x3d+_0x7d5f[193],_0x6c65x26)})};methods[_0x7d5f[2]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[194]);console[_0x7d5f[26]](_0x7d5f[195]);_0x6c65x24[_0x7d5f[36]](_0x7d5f[132],_0x6c65x25[_0x7d5f[187]],_0x6c65x25[_0x7d5f[196]],function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[197]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[198]);if(!projects){getProjects(false)};var _0x6c65x3e=_[_0x7d5f[40]](projects,{id:parseInt(_0x6c65x25[_0x7d5f[199]])});console[_0x7d5f[26]](_0x7d5f[200]+_0x6c65x3e[_0x7d5f[43]]+_0x7d5f[34]);_0x6c65x24[_0x7d5f[36]](_0x7d5f[132],util[_0x7d5f[44]](_0x7d5f[201],_0x6c65x3e[_0x7d5f[43]]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[202]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[203]);var _0x6c65x2a=[path[_0x7d5f[51]](config[_0x7d5f[127]],_0x7d5f[128],_0x7d5f[204]),_0x6c65x25[_0x7d5f[205]],_0x7d5f[63],(_0x6c65x25[_0x7d5f[206]]===_0x7d5f[110]?_0x7d5f[63]:_0x6c65x25[_0x7d5f[206]]),_0x7d5f[183],_0x7d5f[207],_0x7d5f[63],_0x6c65x25[_0x7d5f[137]]];console[_0x7d5f[26]](_0x7d5f[208]);_0x6c65x24[_0x7d5f[36]](_0x7d5f[132],_0x6c65x2a[_0x7d5f[51]](_0x7d5f[50]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[209]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[210]);if(!dbConnections){getDbConnections(false)};var _0x6c65x3f=_[_0x7d5f[40]](dbConnections,{id:parseInt(_0x6c65x25[_0x7d5f[211]])});console[_0x7d5f[26]](_0x7d5f[212]);var _0x6c65x2e={uniqueid:_0x6c65x24[_0x7d5f[71]],node:_0x6c65x25[_0x7d5f[72]],application:_0x6c65x25[_0x7d5f[73]],data:_0x6c65x25[_0x7d5f[213]]||null};ReportSquareDetail[_0x7d5f[78]](_0x6c65x2e)[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x7d5f[74]+_0x6c65x25[_0x7d5f[73]]+_0x7d5f[75]+_0x6c65x25[_0x7d5f[72]]+_0x7d5f[76],_0x6c65x27)});try{db[_0x7d5f[215]](_0x6c65x3f[_0x7d5f[214]]);var _0x6c65x40=db[_0x7d5f[216]](_0x6c65x25[_0x7d5f[213]]);db[_0x7d5f[217]]();setVariablesMatrix(_0x6c65x24,_0x6c65x25,_0x6c65x26,_0x6c65x40)}catch(e){console[_0x7d5f[26]](e[_0x7d5f[218]]);wait[_0x7d5f[90]](setVariable,_0x6c65x24,_0x7d5f[219],_0x7d5f[172]);wait[_0x7d5f[90]](setVariable,_0x6c65x24,_0x7d5f[220],e[_0x7d5f[218]])}};methods[_0x7d5f[221]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[222]);console[_0x7d5f[26]](_0x7d5f[223]+_0x6c65x25[_0x7d5f[224]]+_0x7d5f[225]);_0x6c65x24[_0x7d5f[36]](_0x7d5f[49],util[_0x7d5f[44]](_0x7d5f[226],_0x6c65x25[_0x7d5f[224]],_0x6c65x25[_0x7d5f[227]]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[228]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[229]);var _0x6c65x28={code:200,result:_0x7d5f[110]};console[_0x7d5f[26]](_0x7d5f[230]);_0x6c65x28[_0x7d5f[108]]=String(eval(_0x6c65x25[_0x7d5f[231]])?_0x7d5f[172]:_0x7d5f[161]);console[_0x7d5f[26]](_0x7d5f[232]+_0x6c65x28[_0x7d5f[108]]);_0x6c65x26(null,_0x6c65x28)};methods[_0x7d5f[233]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[234]);console[_0x7d5f[26]](_0x7d5f[235]);_0x6c65x24[_0x7d5f[233]]()};methods[_0x7d5f[236]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[237]);var _0x6c65x3c=(_0x6c65x25[_0x7d5f[238]])?_0x7d5f[193]+_0x6c65x25[_0x7d5f[238]]+_0x7d5f[193]:_0x7d5f[193]+_0x6c65x25[_0x7d5f[72]]+_0x7d5f[193];console[_0x7d5f[26]](_0x7d5f[239]+_0x6c65x3c);_0x6c65x24[_0x7d5f[36]](_0x7d5f[240],_0x6c65x3c,function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[241]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[242]);console[_0x7d5f[26]](_0x7d5f[243]);_0x6c65x24[_0x7d5f[29]](util[_0x7d5f[44]](_0x7d5f[244],_0x6c65x25[_0x7d5f[245]],_0x6c65x25[_0x7d5f[119]]),function(_0x6c65x27,_0x6c65x28){_0x6c65x26(_0x6c65x27,_0x6c65x28)})};methods[_0x7d5f[246]]=function(_0x6c65x24,_0x6c65x25,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[247]);console[_0x7d5f[26]](_0x7d5f[248]);var _0x6c65x30=getVariableName(_0x6c65x25[_0x7d5f[86]]);wait[_0x7d5f[90]](setVariable,_0x6c65x24,_0x6c65x30,_0x6c65x25[_0x7d5f[249]])};function getVertices(_0x6c65x42){return _[_0x7d5f[253]](_0x6c65x42,function(_0x6c65x2f,_0x6c65x43,_0x6c65x44){if(_0x6c65x44===_0x7d5f[250]){return _0x6c65x2f};if(_[_0x7d5f[87]](_0x6c65x43)){_[_0x7d5f[252]](_0x6c65x43,function(_0x6c65x45,_0x6c65x46){_0x6c65x2f[_0x6c65x45[_0x7d5f[251]][_0x7d5f[164]]]=_0x6c65x45[_0x7d5f[251]];_0x6c65x2f[_0x6c65x45[_0x7d5f[251]][_0x7d5f[164]]][_0x7d5f[73]]=_0x6c65x44});return _0x6c65x2f};_0x6c65x2f[_0x6c65x43[_0x7d5f[251]][_0x7d5f[164]]]=_0x6c65x43[_0x7d5f[251]];_0x6c65x2f[_0x6c65x43[_0x7d5f[251]][_0x7d5f[164]]][_0x7d5f[73]]=_0x6c65x44;return _0x6c65x2f},{})}function getTargetBySource(_0x6c65x42,_0x6c65x48,_0x6c65x45){return _[_0x7d5f[105]](_[_0x7d5f[40]](_0x6c65x42[_0x7d5f[250]],function(_0x6c65x43){if(_0x6c65x43[_0x7d5f[251]][_0x7d5f[254]]&&_0x6c65x43[_0x7d5f[251]][_0x7d5f[255]]){if(_0x6c65x43[_0x7d5f[251]][_0x7d5f[255]]===_0x6c65x48){if(_0x6c65x43[_0x7d5f[251]][_0x7d5f[256]]&&_0x6c65x43[_0x7d5f[251]][_0x7d5f[256]]!==_0x6c65x45){return false};return true}};return false}),_0x7d5f[257])}function replaceAllVariables(_0x6c65x24,_0x6c65x25,_0x6c65x26){var _0x6c65x4a=_0x6c65x25;for(var _0x6c65x46 in _0x6c65x4a){var _0x6c65x28=_0x6c65x4a[_0x6c65x46][_0x7d5f[258]](/{+(.*?)}/gi);if(_0x6c65x28){console[_0x7d5f[26]](_0x7d5f[259],_0x6c65x28);_0x6c65x28[_0x7d5f[91]](function(_0x6c65x4b,_0x6c65x32){console[_0x7d5f[26]](_0x7d5f[260],_0x6c65x28[_0x6c65x32][_0x7d5f[261]](1,_0x6c65x28[_0x6c65x32][_0x7d5f[142]]-1));var _0x6c65x45=wait[_0x7d5f[90]](getVariable,_0x6c65x24,_0x6c65x28[_0x6c65x32][_0x7d5f[261]](1,_0x6c65x28[_0x6c65x32][_0x7d5f[142]]-1));console[_0x7d5f[26]](_0x7d5f[256],_0x6c65x45);if(_0x6c65x45[_0x7d5f[108]]){_0x6c65x4a[_0x6c65x46]=_0x6c65x4a[_0x6c65x46][_0x7d5f[190]](_0x6c65x28[_0x6c65x32],_0x6c65x45[_0x7d5f[108]])}})}};_0x6c65x4a[_0x7d5f[262]]=true;return _0x6c65x4a}function xstart(_0x6c65x24){var _0x6c65x42=_0x6c65x24[_0x7d5f[127]];var _0x6c65x4d=_0x6c65x24[_0x7d5f[263]];if(_0x6c65x42[_0x7d5f[264]]){if(!_[_0x7d5f[87]](_0x6c65x42[_0x7d5f[264]])){var _0x6c65x48=_0x6c65x42[_0x7d5f[264]][_0x7d5f[251]][_0x7d5f[164]];var _0x6c65x28={};do{try{var _0x6c65x25=_0x6c65x4d[_0x6c65x48][_0x7d5f[262]]?_0x6c65x4d[_0x6c65x48]:replaceAllVariables(_0x6c65x24,_0x6c65x4d[_0x6c65x48]);if(_0x6c65x25){if(_[_0x7d5f[265]](methods[_0x6c65x25[_0x7d5f[73]]])){_0x6c65x28=wait[_0x7d5f[90]](methods[_0x6c65x25[_0x7d5f[73]]],_0x6c65x24,_0x6c65x25)}else {_0x6c65x28=wait[_0x7d5f[90]](methods[_0x7d5f[236]],_0x6c65x24,_0x6c65x25)};if(_0x6c65x28[_0x7d5f[155]]===200&&_0x6c65x28[_0x7d5f[105]]!==_0x7d5f[144]){var _0x6c65x4e=getTargetBySource(_0x6c65x42,_0x6c65x48,_0x6c65x28[_0x7d5f[108]]);if(!_0x6c65x4e){if(_0x6c65x25[_0x7d5f[73]]===_0x7d5f[96]){if(_0x6c65x25[_0x7d5f[99]]>0){_0x6c65x4e=getTargetBySource(_0x6c65x42,_0x6c65x48,_0x7d5f[149]);if(!_0x6c65x4e){_0x6c65x4e=_0x6c65x48}}};if(_0x6c65x25[_0x7d5f[73]]===_0x7d5f[139]&&_0x6c65x25[_0x7d5f[99]]>0){_0x6c65x4e=_0x6c65x48};if(_0x6c65x25[_0x7d5f[73]]===_0x7d5f[178]){_0x6c65x4e=getTargetBySource(_0x6c65x42,_0x6c65x48,_0x7d5f[113]);if(!_0x6c65x4e){_0x6c65x4e=_0x6c65x48}}};_0x6c65x48=_0x6c65x4e}else {_0x6c65x48=null}}else {_0x6c65x48=null}}catch(err){console[_0x7d5f[26]](err)}}while(_0x6c65x48);;console[_0x7d5f[26]](_0x7d5f[266]);_0x6c65x24[_0x7d5f[233]]()}}}function xfinally(_0x6c65x24){var _0x6c65x42=_0x6c65x24[_0x7d5f[127]];var _0x6c65x4d=_0x6c65x24[_0x7d5f[263]];if(_0x6c65x42[_0x7d5f[267]]){if(!_[_0x7d5f[87]](_0x6c65x42[_0x7d5f[267]])){var _0x6c65x48=_0x6c65x42[_0x7d5f[267]][_0x7d5f[251]][_0x7d5f[164]];var _0x6c65x28={};do{try{var _0x6c65x25=replaceAllVariables(_0x6c65x24,_0x6c65x4d[_0x6c65x48]);if(_0x6c65x25){if(_[_0x7d5f[265]](methods[_0x6c65x25[_0x7d5f[73]]])){_0x6c65x28=wait[_0x7d5f[90]](methods[_0x6c65x25[_0x7d5f[73]]],_0x6c65x24,_0x6c65x25)}else {_0x6c65x28=wait[_0x7d5f[90]](methods[_0x7d5f[236]],_0x6c65x24,_0x6c65x25)};if(_0x6c65x28[_0x7d5f[155]]===200&&_0x6c65x28[_0x7d5f[105]]!==_0x7d5f[144]){var _0x6c65x4e=getTargetBySource(_0x6c65x42,_0x6c65x48,_0x6c65x28[_0x7d5f[108]]);if(!_0x6c65x4e){if(_0x6c65x25[_0x7d5f[73]]===_0x7d5f[96]){if(_0x6c65x25[_0x7d5f[99]]>0){_0x6c65x4e=getTargetBySource(_0x6c65x42,_0x6c65x48,_0x7d5f[149]);if(!_0x6c65x4e){_0x6c65x4e=_0x6c65x48}}};if(_0x6c65x25[_0x7d5f[73]]===_0x7d5f[139]&&_0x6c65x25[_0x7d5f[99]]>0){_0x6c65x4e=_0x6c65x48}};_0x6c65x48=_0x6c65x4e}else {_0x6c65x48=null}}else {_0x6c65x48=null}}catch(err){console[_0x7d5f[26]](err)}}while(_0x6c65x48);;_0x6c65x24[_0x7d5f[233]]();console[_0x7d5f[26]](_0x7d5f[268])}};_0x6c65x24[_0x7d5f[269]]()}function main(_0x6c65x24){_0x6c65x24[_0x7d5f[272]](_0x7d5f[270],function(_0x6c65x27){console[_0x7d5f[26]](_0x7d5f[271],_0x6c65x27)});_0x6c65x24[_0x7d5f[272]](_0x7d5f[273],function(){console[_0x7d5f[26]](_0x7d5f[274])});_0x6c65x24[_0x7d5f[272]](_0x7d5f[233],function(){if(_0x6c65x24[_0x7d5f[267]]){_0x6c65x24[_0x7d5f[267]]=false;console[_0x7d5f[26]](_0x7d5f[275]);wait[_0x7d5f[276]](xfinally,_0x6c65x24)}else {ReportSquare[_0x7d5f[279]]({leaveAt:moment()[_0x7d5f[44]](_0x7d5f[278])},{where:{uniqueid:_0x6c65x24[_0x7d5f[71]]}})[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x7d5f[277],_0x6c65x27)});console[_0x7d5f[26]](_0x7d5f[280])}});_0x6c65x24[_0x7d5f[272]](_0x7d5f[103],function(_0x6c65x28){});_0x6c65x24[_0x7d5f[272]](_0x7d5f[281],function(_0x6c65x51){console[_0x7d5f[26]](_0x6c65x51);console[_0x7d5f[26]](_0x7d5f[282]+_0x6c65x51[_0x7d5f[283]]+_0x7d5f[284]+_0x6c65x51[_0x7d5f[285]]);var _0x6c65x52={network:_0x6c65x51[_0x7d5f[286]],network_script:_0x6c65x51[_0x7d5f[287]],request:_0x6c65x51[_0x7d5f[288]],channel:_0x6c65x51[_0x7d5f[289]],language:_0x6c65x51[_0x7d5f[290]],type:_0x6c65x51[_0x7d5f[291]],uniqueid:_0x6c65x51[_0x7d5f[285]],version:_0x6c65x51[_0x7d5f[292]],callerid:_0x6c65x51[_0x7d5f[283]],calleridname:_0x6c65x51[_0x7d5f[293]],callingpres:_0x6c65x51[_0x7d5f[294]],callingani2:_0x6c65x51[_0x7d5f[295]],callington:_0x6c65x51[_0x7d5f[296]],callingtns:_0x6c65x51[_0x7d5f[297]],dnid:_0x6c65x51[_0x7d5f[298]],rdnis:_0x6c65x51[_0x7d5f[299]],context:_0x6c65x51[_0x7d5f[300]],extension:_0x6c65x51[_0x7d5f[301]],priority:_0x6c65x51[_0x7d5f[302]],enhanced:_0x6c65x51[_0x7d5f[303]],accountcode:_0x6c65x51[_0x7d5f[304]],threadid:_0x6c65x51[_0x7d5f[305]],project_name:_0x6c65x51[_0x7d5f[306]],joinAt:moment()[_0x7d5f[44]](_0x7d5f[278])};ReportSquare[_0x7d5f[78]](_0x6c65x52)[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x7d5f[307],_0x6c65x27)});if(_0x6c65x51[_0x7d5f[306]]){SquareProject[_0x7d5f[315]]({where:{name:_0x6c65x51[_0x7d5f[306]]},attributes:[_0x7d5f[164],_0x7d5f[309]]})[_0x7d5f[184]](function(_0x6c65x3e){if(_0x6c65x3e){if(_0x6c65x3e[_0x7d5f[309]]){xml[_0x7d5f[312]](_0x6c65x3e[_0x7d5f[309]],{normalizeTags:true,explicitArray:false},function(_0x6c65x27,_0x6c65x2f){var _0x6c65x42=_0x6c65x2f[_0x7d5f[310]][_0x7d5f[127]];if(_0x6c65x42){_0x6c65x24[_0x7d5f[127]]=_0x6c65x42;_0x6c65x24[_0x7d5f[267]]=true;_0x6c65x24[_0x7d5f[71]]=_0x6c65x51[_0x7d5f[285]];_0x6c65x24[_0x7d5f[263]]=getVertices(_0x6c65x42);wait[_0x7d5f[276]](xstart,_0x6c65x24)}else {console[_0x7d5f[26]](_0x7d5f[311]);_0x6c65x24[_0x7d5f[269]]()}})}else {console[_0x7d5f[26]](_0x7d5f[313]);_0x6c65x24[_0x7d5f[269]]()}}else {console[_0x7d5f[26]](_0x7d5f[314]);_0x6c65x24[_0x7d5f[269]]()}})[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x7d5f[308],_0x6c65x27);_0x6c65x24[_0x7d5f[269]]()})}else {console[_0x7d5f[26]](_0x7d5f[316]);_0x6c65x24[_0x7d5f[269]]()}})}function splitInterval(_0x6c65x38){var _0x6c65x54={};var _0x6c65x3a=_0x6c65x38[_0x7d5f[317]](_0x7d5f[50]);var _0x6c65x55;_0x6c65x3a[_0x7d5f[91]](function(_0x6c65x56,_0x6c65x32){switch(_0x6c65x32){case 0:if(_0x6c65x56!==_0x7d5f[318]){_0x6c65x55=_0x6c65x56[_0x7d5f[317]](_0x7d5f[113]);_0x6c65x54[_0x7d5f[319]]=moment(_0x6c65x55[0],_0x7d5f[320]);_0x6c65x54[_0x7d5f[321]]=moment(_0x6c65x55[1],_0x7d5f[320])}else {_0x6c65x54[_0x7d5f[319]]=null;_0x6c65x54[_0x7d5f[321]]=null};break;case 1:if(_0x6c65x56!==_0x7d5f[318]){_0x6c65x55=_0x6c65x56[_0x7d5f[317]](_0x7d5f[113]);_0x6c65x54[_0x7d5f[322]]=weekDaysCollection[_0x6c65x55[0]];_0x6c65x54[_0x7d5f[323]]=_0x6c65x55[1]?weekDaysCollection[_0x6c65x55[1]]:null}else {_0x6c65x54[_0x7d5f[322]]=null;_0x6c65x54[_0x7d5f[323]]=null};break;case 2:if(_0x6c65x56!==_0x7d5f[318]){_0x6c65x55=_0x6c65x56[_0x7d5f[317]](_0x7d5f[113]);_0x6c65x54[_0x7d5f[324]]=_0x6c65x55[0];_0x6c65x54[_0x7d5f[325]]=_0x6c65x55[1]?_0x6c65x55[1]:null}else {_0x6c65x54[_0x7d5f[324]]=null;_0x6c65x54[_0x7d5f[325]]=null};break;case 3:if(_0x6c65x56!==_0x7d5f[318]){_0x6c65x55=_0x6c65x56[_0x7d5f[317]](_0x7d5f[113]);_0x6c65x54[_0x7d5f[326]]=monthsCollection[_0x6c65x55[0]];_0x6c65x54[_0x7d5f[327]]=_0x6c65x55[1]?monthsCollection[_0x6c65x55[1]]:null}else {_0x6c65x54[_0x7d5f[326]]=null;_0x6c65x54[_0x7d5f[327]]=null};break;default:}});return _0x6c65x54}function isIntervalValid(_0x6c65x38){var _0x6c65x58=moment()[_0x7d5f[44]](_0x7d5f[320]);var _0x6c65x59=moment()[_0x7d5f[44]](_0x7d5f[328]);var _0x6c65x5a=moment()[_0x7d5f[44]](_0x7d5f[329]);var _0x6c65x5b=moment()[_0x7d5f[44]](_0x7d5f[330]);var _0x6c65x5c,_0x6c65x5d,_0x6c65x5e,_0x6c65x5f;var _0x6c65x60=[1,2,3,4,5,6,7,8,9,10,11,12];var _0x6c65x61=[1,2,3,4,5,6,7];var _0x6c65x62=[];for(var _0x6c65x63=1;_0x6c65x63<=31;_0x6c65x63++){_0x6c65x62[_0x7d5f[331]](_0x6c65x63)};_0x6c65x5c=(_0x6c65x38[_0x7d5f[319]]&&_0x6c65x38[_0x7d5f[321]])?moment(_0x6c65x58,_0x7d5f[320])[_0x7d5f[332]](moment(_0x6c65x38[_0x7d5f[319]],_0x7d5f[320]),moment(_0x6c65x38[_0x7d5f[321]],_0x7d5f[320])):true;if(_0x6c65x38[_0x7d5f[322]]){if(_0x6c65x38[_0x7d5f[323]]){var _0x6c65x64=_[_0x7d5f[165]](_0x6c65x61,function(_0x6c65x31){return (_0x6c65x31>=_0x6c65x38[_0x7d5f[322]])||(_0x6c65x31<=_0x6c65x38[_0x7d5f[323]])});_0x6c65x5d=(_0x6c65x64[_0x7d5f[333]](parseInt(_0x6c65x59))!== -1)?true:false}else {_0x6c65x5d=(parseInt(_0x6c65x59)===_0x6c65x38[_0x7d5f[322]])?true:false}}else {_0x6c65x5d=true};if(_0x6c65x38[_0x7d5f[324]]){if(_0x6c65x38[_0x7d5f[325]]){var _0x6c65x65=_[_0x7d5f[165]](_0x6c65x62,function(_0x6c65x31){return (_0x6c65x31>=_0x6c65x38[_0x7d5f[324]])||(_0x6c65x31<=_0x6c65x38[_0x7d5f[325]])});_0x6c65x5e=(_0x6c65x65[_0x7d5f[333]](parseInt(_0x6c65x5a))!== -1)?true:false}else {_0x6c65x5e=(parseInt(_0x6c65x5a)===_0x6c65x38[_0x7d5f[324]])?true:false}}else {_0x6c65x5e=true};if(_0x6c65x38[_0x7d5f[326]]){if(_0x6c65x38[_0x7d5f[327]]){var _0x6c65x66=_[_0x7d5f[165]](_0x6c65x60,function(_0x6c65x31){return (_0x6c65x31>=_0x6c65x38[_0x7d5f[326]])||(_0x6c65x31<=_0x6c65x38[_0x7d5f[327]])});_0x6c65x5f=(_0x6c65x66[_0x7d5f[333]](parseInt(_0x6c65x5b))!== -1)?true:false}else {_0x6c65x5f=(parseInt(_0x6c65x5b)===_0x6c65x38[_0x7d5f[326]])?true:false}}else {_0x6c65x5f=true};return _0x6c65x5c&&_0x6c65x5d&&_0x6c65x5e&&_0x6c65x5f}function setVariable(_0x6c65x24,_0x6c65x68,_0x6c65x45,_0x6c65x26){console[_0x7d5f[26]](_0x7d5f[334]);console[_0x7d5f[26]](_0x7d5f[335]+_0x6c65x68+_0x7d5f[336],_0x6c65x45);_0x6c65x24[_0x7d5f[29]](util[_0x7d5f[44]](_0x7d5f[157],_0x6c65x68,_0x6c65x45),function(_0x6c65x27,_0x6c65x28){if(_0x6c65x26){_0x6c65x26(_0x6c65x27,_0x6c65x28)}})}function getVariableName(_0x6c65x6a){if(!variables){getVariables(false)};var _0x6c65x4b={name:_0x7d5f[337]};if(_0x6c65x6a){_0x6c65x4b=_[_0x7d5f[40]](variables,{id:parseInt(_0x6c65x6a)})};return _0x6c65x4b[_0x7d5f[43]]}function setVariablesMatrix(_0x6c65x24,_0x6c65x25,_0x6c65x26,_0x6c65x40){var _0x6c65x30=getVariableName(_0x6c65x25[_0x7d5f[86]]);_[_0x7d5f[91]](_0x6c65x40,function(_0x6c65x6c,_0x6c65x32){_[_0x7d5f[339]](_0x6c65x6c,function(_0x6c65x45,_0x6c65x46){wait[_0x7d5f[90]](setVariable,_0x6c65x24,_0x6c65x30+_0x7d5f[88]+_0x6c65x32+_0x7d5f[338]+_0x6c65x46+_0x7d5f[89],_0x6c65x45)})})}function getVariable(_0x6c65x24,_0x6c65x68,_0x6c65x26){_0x6c65x24[_0x7d5f[343]](_0x6c65x68,function(_0x6c65x27,_0x6c65x28){if(_0x6c65x28[_0x7d5f[155]]===200&&_0x6c65x28[_0x7d5f[105]]!==_0x7d5f[110]){_0x6c65x28[_0x7d5f[108]]=_0x6c65x28[_0x7d5f[105]][_0x7d5f[261]](_0x6c65x28[_0x7d5f[105]][_0x7d5f[341]](_0x7d5f[340])+1,_0x6c65x28[_0x7d5f[105]][_0x7d5f[341]](_0x7d5f[342]))}else {_0x6c65x28[_0x7d5f[108]]=_0x7d5f[63]};_0x6c65x26(null,_0x6c65x28)})}function getFilePath(_0x6c65x6a){if(!sounds){getSounds(false)};if(_0x6c65x6a>0){var _0x6c65x6f=_[_0x7d5f[40]](sounds,{id:parseInt(_0x6c65x6a)});return util[_0x7d5f[44]](_0x7d5f[344],config[_0x7d5f[345]],_0x6c65x6f[_0x7d5f[346]])};return _0x7d5f[63]}function getUsers(_0x6c65x71){User[_0x7d5f[348]]()[_0x7d5f[184]](function(_0x6c65x2f){users=_[_0x7d5f[347]](_0x6c65x2f);if(_0x6c65x71){synchUpdates(User,users,_0x7d5f[164])}})[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x6c65x27)})}function getQueues(_0x6c65x71){VoiceQueue[_0x7d5f[348]]()[_0x7d5f[184]](function(_0x6c65x2f){queues=_[_0x7d5f[347]](_0x6c65x2f);if(_0x6c65x71){synchUpdates(VoiceQueue,queues,_0x7d5f[43])}})[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x6c65x27)})}function getTrunks(_0x6c65x71){Trunk[_0x7d5f[348]]()[_0x7d5f[184]](function(_0x6c65x2f){trunks=_[_0x7d5f[347]](_0x6c65x2f);if(_0x6c65x71){synchUpdates(Trunk,trunks,_0x7d5f[164])}})[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x6c65x27)})}function getVariables(_0x6c65x71){Variable[_0x7d5f[348]]()[_0x7d5f[184]](function(_0x6c65x2f){variables=_[_0x7d5f[347]](_0x6c65x2f);if(_0x6c65x71){synchUpdates(Variable,variables,_0x7d5f[164])}})[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x6c65x27)})}function getDbConnections(_0x6c65x71){SquareOdbc[_0x7d5f[348]]()[_0x7d5f[184]](function(_0x6c65x2f){dbConnections=_[_0x7d5f[347]](_0x6c65x2f);if(_0x6c65x71){synchUpdates(SquareOdbc,dbConnections,_0x7d5f[164])}})[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x6c65x27)})}function getIntervals(_0x6c65x71){Interval[_0x7d5f[348]]()[_0x7d5f[184]](function(_0x6c65x2f){intervals=_[_0x7d5f[347]](_0x6c65x2f);if(_0x6c65x71){synchUpdates(Interval,intervals,_0x7d5f[164])}})[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x6c65x27)})}function getProjects(_0x6c65x71){SquareProject[_0x7d5f[348]]()[_0x7d5f[184]](function(_0x6c65x2f){projects=_[_0x7d5f[347]](_0x6c65x2f);if(_0x6c65x71){synchUpdates(SquareProject,projects,_0x7d5f[164])}})[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x6c65x27)})}function getSounds(_0x6c65x71){Sound[_0x7d5f[348]]()[_0x7d5f[184]](function(_0x6c65x2f){sounds=_[_0x7d5f[347]](_0x6c65x2f);if(_0x6c65x71){synchUpdates(Sound,sounds,_0x7d5f[164])}})[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x6c65x27)})}function synchUpdates(_0x6c65x7a,_0x6c65x7b,_0x6c65x46){var _0x6c65x7c={};_0x6c65x7a[_0x7d5f[349]](function(_0x6c65x7d){_0x6c65x7c[_0x6c65x46]=_0x6c65x7d[_0x6c65x46];updateCollection(_0x6c65x7b,_0x6c65x7c,_0x6c65x7d)});_0x6c65x7a[_0x7d5f[350]](function(_0x6c65x7d){_0x6c65x7c[_0x6c65x46]=_0x6c65x7d[_0x6c65x46];updateCollection(_0x6c65x7b,_0x6c65x7c,_0x6c65x7d)});_0x6c65x7a[_0x7d5f[352]](function(_0x6c65x7d){_0x6c65x7c[_0x6c65x46]=_0x6c65x7d[_0x6c65x46];_[_0x7d5f[351]](_0x6c65x7b,_0x6c65x7c)})}function updateCollection(_0x6c65x7b,_0x6c65x7c,_0x6c65x7d){var _0x6c65x7f=_[_0x7d5f[40]](_0x6c65x7b,_0x6c65x7c);var _0x6c65x32=_0x6c65x7b[_0x7d5f[333]](_0x6c65x7f);if(_0x6c65x7f){_[_0x7d5f[353]](_0x6c65x7b[_0x6c65x32],_0x6c65x7d)}else {_0x6c65x7b[_0x7d5f[354]](_0x6c65x7d)}}function getPort(){Settings[_0x7d5f[315]]()[_0x7d5f[184]](function(_0x6c65x2f){agiPort=_0x6c65x2f[_0x7d5f[355]]})[_0x7d5f[77]](function(_0x6c65x27){console[_0x7d5f[26]](_0x6c65x27)})}module[_0x7d5f[356]]=function(){console[_0x7d5f[26]](_0x7d5f[357]);getPort();var _0x6c65x81=agi[_0x7d5f[359]](main)[_0x7d5f[358]](agiPort?agiPort:4573);getUsers(true);getQueues(true);getTrunks(true);getVariables(true);getIntervals(true);getProjects(true);getSounds(true);getDbConnections(true)}
\ No newline at end of file
index 99ebb83..367c84b 100644 (file)
@@ -1,574 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-var moment = require('moment');
-var util = require('util');
-var Promise = require('bluebird');
-
-var Sequelize = require('../../models').sequelize;
-var ReportMember = require('../../models').ReportMember;
-var _Action = require('../../models').Action;
-var Agent = require('../../models').User;
-var UserHasVoiceQueue = require('../../models').UserHasVoiceQueue;
-var UserHasChatQueue = require('../../models').UserHasChatQueue;
-var UserHasMailQueue = require('../../models').UserHasMailQueue;
-var UserHasFaxQueue = require('../../models').UserHasFaxQueue;
-
-function Action(ami) {
-  console.log('Action Initialization...');
-  var channels = ['voice', 'chat', 'mail', 'fax'];
-
-  _Action.afterCreate(function(doc, options) {
-    return onSave(doc, options, ami);
-  });
-
-  ReportMember.beforeCreate(function(doc, options) {
-    return ReportMember
-      .findAll({
-        where: {
-          channel: doc.channel,
-          membername: doc.membername,
-          interface: doc.interface,
-          exitAt: null
-        }
-      })
-      .then(function(elms) {
-        var queries = [];
-        var exitAt = moment();
-        elms.forEach(function(elm) {
-          var enterAt = moment(elm.enterAt);
-          queries.push(elm.update({
-            exitAt: exitAt.format("YYYY-MM-DD HH:mm:ss"),
-            duration: exitAt.diff(enterAt, 'seconds')
-          }));
-        })
-        return queries;
-      })
-      .all();
-  });
-
-  // HANDLE PAUSE FUNCTION
-  function handlePause(options, action) {
-    return function(agent) {
-      return Promise
-        .promisify(ami.action)({
-          action: 'QueuePause',
-          interface: util.format('%s/%s', 'SIP', agent.name),
-          paused: true,
-          reason: options.body.type
-        })
-        .then(function(astData) {
-          return agent
-            .update({
-              voicePause: true,
-              chatPause: true,
-              mailPause: true,
-              faxPause: true,
-              pauseType: options.body.type,
-              lastPauseAt: moment().format("YYYY-MM-DD HH:mm:ss")
-            }, {
-              transaction: options.transaction || null
-            });
-        })
-        .then(function(agent) {
-          var reportMembers = [];
-          channels.forEach(function(channel) {
-            reportMembers.push({
-              channel: channel,
-              membername: agent.name,
-              interface: util.format('%s/%s', 'SIP', agent.name),
-              type: options.body.type,
-              enterAt: moment().format("YYYY-MM-DD HH:mm:ss"),
-              data1: action.data1,
-              data2: action.data2,
-              data3: action.data3,
-              data4: action.data4
-            });
-          })
-          return ReportMember
-            .bulkCreate(reportMembers, {
-              individualHooks: true,
-              transaction: options.transaction || null
-            });
-        });
-    }
-  }
-
-  // HANDLE UNPAUSE FUNCTION
-  function handleUnpause(options, action) {
-    return function(agent) {
-      if (!options.body) options.body = {};
-
-      switch (options.body.channel) {
-        case 'voice':
-
-          return Promise
-            .promisify(ami.action)({
-              action: 'QueuePause',
-              interface: util.format('%s/%s', 'SIP', agent.name),
-              paused: false,
-              reason: options.body.type
-            })
-            .then(function() {
-              return agent
-                .update({
-                  voicePause: false,
-                }, {
-                  transaction: options.transaction || null
-                })
-            })
-            .then(function(agent) {
-              var exitAt = moment();
-              return ReportMember
-                .findOne({
-                  where: {
-                    channel: options.body.channel,
-                    membername: agent.name,
-                    interface: util.format('%s/%s', 'SIP', agent.name),
-                    exitAt: null
-                  }
-                });
-            })
-            .then(handleEntityNotFound({
-              message: 'Already Pause Off'
-            }))
-            .then(function(reportMember) {
-              var exitAt = moment();
-              var enterAt = moment(reportMember.enterAt);
-
-              return reportMember
-                .update({
-                  exitAt: exitAt.format("YYYY-MM-DD HH:mm:ss"),
-                  duration: exitAt.diff(enterAt, 'seconds')
-                }, {
-                  individualHooks: true,
-                  transaction: options.transaction || null
-                });
-            })
-            .then(function() {
-              return agent;
-            });
-
-        case 'chat':
-        case 'mail':
-        case 'fax':
-
-          var data = {};
-          data[util.format('%s%s', options.body.channel, 'Pause')] = false;
-
-          return agent
-            .update(data, {
-              transaction: options.transaction
-            })
-            .then(function(agent) {
-              var exitAt = moment();
-
-              return ReportMember
-                .findOne({
-                  where: {
-                    channel: options.body.channel,
-                    membername: agent.name,
-                    interface: util.format('%s/%s', 'SIP', agent.name),
-                    exitAt: null
-                  }
-                });
-            })
-            .then(handleEntityNotFound({
-              message: 'Already Pause Off'
-            }))
-            .then(function(reportMember) {
-              var exitAt = moment();
-              var enterAt = moment(reportMember.enterAt);
-
-              return reportMember
-                .update({
-                  exitAt: exitAt.format("YYYY-MM-DD HH:mm:ss"),
-                  duration: exitAt.diff(enterAt, 'seconds')
-                }, {
-                  individualHooks: true,
-                  transaction: options.transaction
-                });
-            })
-            .then(function() {
-              return agent;
-            });
-
-        default:
-          var action = Promise.promisify(ami.action);
-          return action({
-              action: 'QueuePause',
-              interface: util.format('%s/%s', 'SIP', agent.name),
-              paused: false
-            })
-            .catch(function(err) {
-              console.error(err);
-            })
-            .then(function() {
-              return agent
-                .update({
-                  voicePause: false,
-                  mailPause: false,
-                  chatPause: false,
-                  faxPause: false
-                }, {
-                  transaction: options.transaction
-                });
-            })
-            .then(function(agent) {
-              var exitAt = moment();
-              return ReportMember
-                .update({
-                  exitAt: exitAt
-                }, {
-                  where: {
-                    membername: agent.name,
-                    interface: util.format('%s/%s', 'SIP', agent.name),
-                    exitAt: null
-                  },
-                  transaction: options.transaction
-                });
-            })
-            .then(function() {
-              return agent;
-            });
-      }
-    }
-  }
-
-  // HANDLE LOGIN FUNCTION
-  function handleLogin(options, action) {
-    return function(agent) {
-      return agent
-        .getVoiceQueues()
-        .then(function(voiceQueues) {
-          var actions = [];
-          voiceQueues.forEach(function(voiceQueue) {
-            actions.push(ami.action({
-              action: 'QueueAdd',
-              queue: voiceQueue.name,
-              interface: util.format('%s/%s', 'SIP', agent.name),
-              membername: agent.name
-            }));
-          });
-          return Promise.all(actions);
-        })
-        .then(function(astData) {
-          var reportMembers = [];
-          channels.forEach(function(channel) {
-            reportMembers.push({
-              channel: channel,
-              membername: agent.name,
-              interface: util.format('%s/%s', 'SIP', agent.name),
-              type: 'LOGIN',
-              enterAt: moment().format("YYYY-MM-DD HH:mm:ss")
-            });
-          });
-          return ReportMember
-            .bulkCreate(reportMembers, {
-              individualHooks: true
-            });
-        });
-    }
-  }
-
-  // HANDLE LOGOUT FUNCTION
-  function handleLogout(options, action) {
-    return function(agent) {
-      return agent
-        .getVoiceQueues()
-        .then(function(voiceQueues) {
-          var actions = [];
-          voiceQueues.forEach(function(voiceQueue) {
-            actions.push(ami.action({
-              action: 'QueueRemove',
-              queue: voiceQueue.name,
-              interface: util.format('%s/%s', 'SIP', agent.name)
-            }));
-          });
-          return Promise
-            .all(actions)
-            .catch(function(err) {
-              console.error(err);
-            });
-        })
-        .then(function(astData) {
-          return ReportMember
-            .update({
-              exitAt: moment().format("YYYY-MM-DD HH:mm:ss")
-            }, {
-              where: {
-                membername: agent.name,
-                interface: util.format('%s/%s', 'SIP', agent.name),
-                type: 'LOGIN',
-                exitAt: null
-              },
-              individualHooks: true,
-              transaction: options.transaction
-            });
-        });
-    }
-  }
-
-  // HANDLE QUEUEADD FUNCTION
-  function handleQueueAdd(options, action) {
-    return function(agent) {
-      var bulkQueues = [];
-      switch (options.body.channel) {
-        case 'voice':
-          options.body.queues.forEach(function(queue) {
-            bulkQueues.push(UserHasVoiceQueue
-              .findOrCreate({
-                where: {
-                  UserId: agent.id,
-                  queue: queue
-                },
-                defaults: {
-                  queue: queue,
-                  location: util.format('SIP/%s', agent.name),
-                  membername: agent.name,
-                  UserId: agent.id,
-                },
-                transaction: options.transaction
-              }));
-          });
-          return Promise
-            .all(bulkQueues)
-            .then(function() {
-              var actions = [];
-              options.body.queues.forEach(function(queue) {
-                actions.push(ami.action({
-                  action: 'QueueAdd',
-                  queue: queue,
-                  interface: util.format('%s/%s', 'SIP', agent.name),
-                  membername: agent.name
-                }));
-              });
-              return Promise
-                .all(actions);
-            })
-            .catch(function(err) {
-              console.error(err);
-            })
-        case 'chat':
-          options.body.queues.forEach(function(queue) {
-            bulkQueues.push(UserHasChatQueue
-              .findOrCreate({
-                where: {
-                  UserId: agent.id,
-                  ChatQueueId: queue.id
-                },
-                defaults: {
-                  ChatQueueId: queue.id,
-                  queue: queue.name,
-                  UserId: agent.id,
-                },
-                transaction: options.transaction
-              }));
-          });
-          return Promise
-            .all(bulkQueues)
-            .catch(function(err) {
-              console.log(err);
-            });
-        case 'mail':
-          options.body.queues.forEach(function(queue) {
-            bulkQueues.push(UserHasMailQueue
-              .findOrCreate({
-                where: {
-                  UserId: agent.id,
-                  MailQueueId: queue.id
-                },
-                defaults: {
-                  MailQueueId: queue.id,
-                  queue: queue.name,
-                  UserId: agent.id,
-                },
-                transaction: options.transaction
-              }));
-          });
-          return Promise
-            .all(bulkQueues)
-            .catch(function(err) {
-              console.log(err);
-            });
-        case 'fax':
-          options.body.queues.forEach(function(queue) {
-            bulkQueues.push(UserHasFaxQueue
-              .findOrCreate({
-                where: {
-                  UserId: agent.id,
-                  FaxQueueId: queue.id
-                },
-                defaults: {
-                  faxQueueId: queue.id,
-                  queue: queue.name,
-                  UserId: agent.id,
-                },
-                transaction: options.transaction
-              }));
-          });
-          return Promise
-            .all(bulkQueues)
-            .catch(function(err) {
-              console.log(err);
-            });
-        default:
-      }
-    }
-  }
-
-  // HANDLE QUEUEREMOVE FUNCTION
-  function handleQueueRemove(options, action) {
-    return function(agent) {
-      switch (options.body.channel) {
-        case 'voice':
-          return UserHasVoiceQueue
-            .destroy({
-              where: {
-                UserId: agent.id,
-                queue: options.body.queue
-              },
-              transaction: options.transaction,
-              individualHooks: true
-            })
-            .then(function() {
-              var newAction = Promise.promisify(ami.action);
-              return newAction({
-                action: 'QueueRemove',
-                queue: options.body.queue,
-                interface: util.format('%s/%s', 'SIP', agent.name),
-              });
-            })
-            .catch(function(err) {
-              console.error('queue association remove error :', err);
-            });
-        case 'chat':
-          return UserHasChatQueue
-            .destroy({
-              where: {
-                UserId: agent.id,
-                ChatQueueId: options.body.queueId
-              },
-              transaction: options.transaction,
-              individualHooks: true
-            })
-            .catch(function(err) {
-              console.error('queue association remove error :', err);
-            });
-        case 'mail':
-          return UserHasMailQueue
-            .destroy({
-              where: {
-                UserId: agent.id,
-                MailQueueId: options.body.queueId
-              },
-              transaction: options.transaction,
-              individualHooks: true
-            })
-            .catch(function(err) {
-              console.error('queue association remove error :', err);
-            });
-        case 'fax':
-          return UserHasFaxQueue
-            .destroy({
-              where: {
-                UserId: agent.id,
-                FaxQueueId: options.body.queueId
-              },
-              transaction: options.transaction,
-              individualHooks: true
-            })
-            .catch(function(err) {
-              console.error('queue association remove error :', err);
-            });
-        default:
-      }
-    }
-  }
-
-  // HANDLE ENTITY NOT FOUND
-  function handleEntityNotFound(error) {
-    return function(entity) {
-      if (!entity) {
-        throw error;
-      }
-      return entity;
-    };
-  }
-
-  function onSave(action, options, ami) {
-    // START ACTION STATEMENT
-    switch (action.name) {
-      case 'pause':
-        // START HANDLE PAUSE
-        return Agent
-          .findById(options.body.agent)
-          .then(handleEntityNotFound({
-            message: 'Unknown Agent'
-          }))
-          .then(handlePause(options, action));
-        // END HANDLE PAUSE
-      case 'unpause':
-        // START HANDLE UNPAUSE
-        return Agent
-          .findById(options.body.agent)
-          .then(handleEntityNotFound({
-            message: 'Unknown Agent'
-          }))
-          .then(handleUnpause(options, action));
-        // END HANDLE UNPAUSE
-
-      case 'login':
-        // START HANDLE LOGIN
-        return Agent
-          .findById(action.data1)
-          .then(handleEntityNotFound({
-            message: 'Unknown Agent'
-          }))
-          .then(handleLogin(options, action));
-        // END HANDLE LOGING
-
-      case 'logout':
-        // START HANDLE LOGOUT
-        return Agent
-          .findById(action.data1)
-          .then(handleEntityNotFound({
-            message: 'Unknown Agent'
-          }))
-          .then(handleUnpause(options, action))
-          .then(handleLogout(options, action));
-        // END HANDLE LOGOUT
-      case 'QueueAdd':
-        // START HANDLE QUEUEADD
-        return Agent
-          .findById(options.body.agent)
-          .then(handleEntityNotFound({
-            message: 'Unknown Agent'
-          }))
-          .then(handleQueueAdd(options, action));
-        // END HANDLE QUEUEADD
-      case 'QueueRemove':
-        // START HANDLE QUEUEREMOVE
-        return Agent
-          .findById(options.body.agent)
-          .then(handleEntityNotFound({
-            message: 'Unknown Agent'
-          }))
-          .then(handleQueueRemove(options, action));
-        // END HANDLE QUEUEREMOVE
-
-      default:
-        throw {
-          message: 'Unknown Action'
-        };
-    }
-    // END ACTION STATEMENT
-  }
-
-  return {};
-}
-
-module.exports = Action;
+var _0x147e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72","\x41\x63\x74\x69\x6F\x6E","\x55\x73\x65\x72","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x41\x63\x74\x69\x6F\x6E\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x76\x6F\x69\x63\x65","\x63\x68\x61\x74","\x6D\x61\x69\x6C","\x66\x61\x78","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x6C\x6C","\x65\x6E\x74\x65\x72\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x75\x70\x64\x61\x74\x65","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x63\x68\x61\x6E\x6E\x65\x6C","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x62\x65\x66\x6F\x72\x65\x43\x72\x65\x61\x74\x65","\x6E\x61\x6D\x65","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x74\x79\x70\x65","\x62\x6F\x64\x79","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x64\x61\x74\x61\x34","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x61\x63\x74\x69\x6F\x6E","\x70\x72\x6F\x6D\x69\x73\x69\x66\x79","\x41\x6C\x72\x65\x61\x64\x79\x20\x50\x61\x75\x73\x65\x20\x4F\x66\x66","\x66\x69\x6E\x64\x4F\x6E\x65","\x25\x73\x25\x73","\x50\x61\x75\x73\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4C\x4F\x47\x49\x4E","\x51\x75\x65\x75\x65\x41\x64\x64","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x51\x75\x65\x75\x65\x52\x65\x6D\x6F\x76\x65","\x69\x64","\x53\x49\x50\x2F\x25\x73","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x71\x75\x65\x75\x65\x73","\x71\x75\x65\x75\x65\x20\x61\x73\x73\x6F\x63\x69\x61\x74\x69\x6F\x6E\x20\x72\x65\x6D\x6F\x76\x65\x20\x65\x72\x72\x6F\x72\x20\x3A","\x71\x75\x65\x75\x65","\x64\x65\x73\x74\x72\x6F\x79","\x71\x75\x65\x75\x65\x49\x64","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x41\x67\x65\x6E\x74","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64\x42\x79\x49\x64","\x70\x61\x75\x73\x65","\x75\x6E\x70\x61\x75\x73\x65","\x6C\x6F\x67\x69\x6E","\x6C\x6F\x67\x6F\x75\x74","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x41\x63\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73"];_0x147e[0];var moment=require(_0x147e[1]);var util=require(_0x147e[2]);var Promise=require(_0x147e[3]);var Sequelize=require(_0x147e[5])[_0x147e[4]];var ReportMember=require(_0x147e[5])[_0x147e[6]];var _Action=require(_0x147e[5])[_0x147e[7]];var Agent=require(_0x147e[5])[_0x147e[8]];var UserHasVoiceQueue=require(_0x147e[5])[_0x147e[9]];var UserHasChatQueue=require(_0x147e[5])[_0x147e[10]];var UserHasMailQueue=require(_0x147e[5])[_0x147e[11]];var UserHasFaxQueue=require(_0x147e[5])[_0x147e[12]];function Action(_0xbdd7xd){console[_0x147e[14]](_0x147e[13]);var _0xbdd7xe=[_0x147e[15],_0x147e[16],_0x147e[17],_0x147e[18]];_Action[_0x147e[19]](function(_0xbdd7xf,_0xbdd7x10){return _0xbdd7x2d(_0xbdd7xf,_0xbdd7x10,_0xbdd7xd)});ReportMember[_0x147e[34]](function(_0xbdd7xf,_0xbdd7x10){return ReportMember[_0x147e[33]]({where:{channel:_0xbdd7xf[_0x147e[30]],membername:_0xbdd7xf[_0x147e[31]],interface:_0xbdd7xf[_0x147e[32]],exitAt:null}})[_0x147e[29]](function(_0xbdd7x11){var _0xbdd7x12=[];var _0xbdd7x13=moment();_0xbdd7x11[_0x147e[28]](function(_0xbdd7x14){var _0xbdd7x15=moment(_0xbdd7x14[_0x147e[21]]);_0xbdd7x12[_0x147e[27]](_0xbdd7x14[_0x147e[26]]({exitAt:_0xbdd7x13[_0x147e[23]](_0x147e[22]),duration:_0xbdd7x13[_0x147e[25]](_0xbdd7x15,_0x147e[24])}))});return _0xbdd7x12})[_0x147e[20]]()});function _0xbdd7x16(_0xbdd7x10,_0xbdd7x17){return function(_0xbdd7x18){return Promise[_0x147e[48]](_0xbdd7xd[_0x147e[47]])({action:_0x147e[46],interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]]),paused:true,reason:_0xbdd7x10[_0x147e[39]][_0x147e[38]]})[_0x147e[29]](function(_0xbdd7x1b){return _0xbdd7x18[_0x147e[26]]({voicePause:true,chatPause:true,mailPause:true,faxPause:true,pauseType:_0xbdd7x10[_0x147e[39]][_0x147e[38]],lastPauseAt:moment()[_0x147e[23]](_0x147e[22])},{transaction:_0xbdd7x10[_0x147e[44]]||null})})[_0x147e[29]](function(_0xbdd7x18){var _0xbdd7x19=[];_0xbdd7xe[_0x147e[28]](function(_0xbdd7x1a){_0xbdd7x19[_0x147e[27]]({channel:_0xbdd7x1a,membername:_0xbdd7x18[_0x147e[35]],interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]]),type:_0xbdd7x10[_0x147e[39]][_0x147e[38]],enterAt:moment()[_0x147e[23]](_0x147e[22]),data1:_0xbdd7x17[_0x147e[40]],data2:_0xbdd7x17[_0x147e[41]],data3:_0xbdd7x17[_0x147e[42]],data4:_0xbdd7x17[_0x147e[43]]})});return ReportMember[_0x147e[45]](_0xbdd7x19,{individualHooks:true,transaction:_0xbdd7x10[_0x147e[44]]||null})})}}function _0xbdd7x1c(_0xbdd7x10,_0xbdd7x17){return function(_0xbdd7x18){if(!_0xbdd7x10[_0x147e[39]]){_0xbdd7x10[_0x147e[39]]={}};switch(_0xbdd7x10[_0x147e[39]][_0x147e[30]]){case _0x147e[15]:return Promise[_0x147e[48]](_0xbdd7xd[_0x147e[47]])({action:_0x147e[46],interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]]),paused:false,reason:_0xbdd7x10[_0x147e[39]][_0x147e[38]]})[_0x147e[29]](function(){return _0xbdd7x18[_0x147e[26]]({voicePause:false},{transaction:_0xbdd7x10[_0x147e[44]]||null})})[_0x147e[29]](function(_0xbdd7x18){var _0xbdd7x13=moment();return ReportMember[_0x147e[50]]({where:{channel:_0xbdd7x10[_0x147e[39]][_0x147e[30]],membername:_0xbdd7x18[_0x147e[35]],interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]]),exitAt:null}})})[_0x147e[29]](_0xbdd7x2a({message:_0x147e[49]}))[_0x147e[29]](function(_0xbdd7x1d){var _0xbdd7x13=moment();var _0xbdd7x15=moment(_0xbdd7x1d[_0x147e[21]]);return _0xbdd7x1d[_0x147e[26]]({exitAt:_0xbdd7x13[_0x147e[23]](_0x147e[22]),duration:_0xbdd7x13[_0x147e[25]](_0xbdd7x15,_0x147e[24])},{individualHooks:true,transaction:_0xbdd7x10[_0x147e[44]]||null})})[_0x147e[29]](function(){return _0xbdd7x18});case _0x147e[16]:;case _0x147e[17]:;case _0x147e[18]:var _0xbdd7x1e={};_0xbdd7x1e[util[_0x147e[23]](_0x147e[51],_0xbdd7x10[_0x147e[39]][_0x147e[30]],_0x147e[52])]=false;return _0xbdd7x18[_0x147e[26]](_0xbdd7x1e,{transaction:_0xbdd7x10[_0x147e[44]]})[_0x147e[29]](function(_0xbdd7x18){var _0xbdd7x13=moment();return ReportMember[_0x147e[50]]({where:{channel:_0xbdd7x10[_0x147e[39]][_0x147e[30]],membername:_0xbdd7x18[_0x147e[35]],interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]]),exitAt:null}})})[_0x147e[29]](_0xbdd7x2a({message:_0x147e[49]}))[_0x147e[29]](function(_0xbdd7x1d){var _0xbdd7x13=moment();var _0xbdd7x15=moment(_0xbdd7x1d[_0x147e[21]]);return _0xbdd7x1d[_0x147e[26]]({exitAt:_0xbdd7x13[_0x147e[23]](_0x147e[22]),duration:_0xbdd7x13[_0x147e[25]](_0xbdd7x15,_0x147e[24])},{individualHooks:true,transaction:_0xbdd7x10[_0x147e[44]]})})[_0x147e[29]](function(){return _0xbdd7x18});default:var _0xbdd7x17=Promise[_0x147e[48]](_0xbdd7xd[_0x147e[47]]);return _0xbdd7x17({action:_0x147e[46],interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]]),paused:false})[_0x147e[54]](function(_0xbdd7x1f){console[_0x147e[53]](_0xbdd7x1f)})[_0x147e[29]](function(){return _0xbdd7x18[_0x147e[26]]({voicePause:false,mailPause:false,chatPause:false,faxPause:false},{transaction:_0xbdd7x10[_0x147e[44]]})})[_0x147e[29]](function(_0xbdd7x18){var _0xbdd7x13=moment();return ReportMember[_0x147e[26]]({exitAt:_0xbdd7x13},{where:{membername:_0xbdd7x18[_0x147e[35]],interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]]),exitAt:null},transaction:_0xbdd7x10[_0x147e[44]]})})[_0x147e[29]](function(){return _0xbdd7x18})}}}function _0xbdd7x20(_0xbdd7x10,_0xbdd7x17){return function(_0xbdd7x18){return _0xbdd7x18[_0x147e[57]]()[_0x147e[29]](function(_0xbdd7x21){var _0xbdd7x22=[];_0xbdd7x21[_0x147e[28]](function(_0xbdd7x23){_0xbdd7x22[_0x147e[27]](_0xbdd7xd[_0x147e[47]]({action:_0x147e[56],queue:_0xbdd7x23[_0x147e[35]],interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]]),membername:_0xbdd7x18[_0x147e[35]]}))});return Promise[_0x147e[20]](_0xbdd7x22)})[_0x147e[29]](function(_0xbdd7x1b){var _0xbdd7x19=[];_0xbdd7xe[_0x147e[28]](function(_0xbdd7x1a){_0xbdd7x19[_0x147e[27]]({channel:_0xbdd7x1a,membername:_0xbdd7x18[_0x147e[35]],interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]]),type:_0x147e[55],enterAt:moment()[_0x147e[23]](_0x147e[22])})});return ReportMember[_0x147e[45]](_0xbdd7x19,{individualHooks:true})})}}function _0xbdd7x24(_0xbdd7x10,_0xbdd7x17){return function(_0xbdd7x18){return _0xbdd7x18[_0x147e[57]]()[_0x147e[29]](function(_0xbdd7x21){var _0xbdd7x22=[];_0xbdd7x21[_0x147e[28]](function(_0xbdd7x23){_0xbdd7x22[_0x147e[27]](_0xbdd7xd[_0x147e[47]]({action:_0x147e[58],queue:_0xbdd7x23[_0x147e[35]],interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]])}))});return Promise[_0x147e[20]](_0xbdd7x22)[_0x147e[54]](function(_0xbdd7x1f){console[_0x147e[53]](_0xbdd7x1f)})})[_0x147e[29]](function(_0xbdd7x1b){return ReportMember[_0x147e[26]]({exitAt:moment()[_0x147e[23]](_0x147e[22])},{where:{membername:_0xbdd7x18[_0x147e[35]],interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]]),type:_0x147e[55],exitAt:null},individualHooks:true,transaction:_0xbdd7x10[_0x147e[44]]})})}}function _0xbdd7x25(_0xbdd7x10,_0xbdd7x17){return function(_0xbdd7x18){var _0xbdd7x26=[];switch(_0xbdd7x10[_0x147e[39]][_0x147e[30]]){case _0x147e[15]:_0xbdd7x10[_0x147e[39]][_0x147e[62]][_0x147e[28]](function(_0xbdd7x27){_0xbdd7x26[_0x147e[27]](UserHasVoiceQueue[_0x147e[61]]({where:{UserId:_0xbdd7x18[_0x147e[59]],queue:_0xbdd7x27},defaults:{queue:_0xbdd7x27,location:util[_0x147e[23]](_0x147e[60],_0xbdd7x18[_0x147e[35]]),membername:_0xbdd7x18[_0x147e[35]],UserId:_0xbdd7x18[_0x147e[59]]},transaction:_0xbdd7x10[_0x147e[44]]}))});return Promise[_0x147e[20]](_0xbdd7x26)[_0x147e[29]](function(){var _0xbdd7x22=[];_0xbdd7x10[_0x147e[39]][_0x147e[62]][_0x147e[28]](function(_0xbdd7x27){_0xbdd7x22[_0x147e[27]](_0xbdd7xd[_0x147e[47]]({action:_0x147e[56],queue:_0xbdd7x27,interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]]),membername:_0xbdd7x18[_0x147e[35]]}))});return Promise[_0x147e[20]](_0xbdd7x22)})[_0x147e[54]](function(_0xbdd7x1f){console[_0x147e[53]](_0xbdd7x1f)});case _0x147e[16]:_0xbdd7x10[_0x147e[39]][_0x147e[62]][_0x147e[28]](function(_0xbdd7x27){_0xbdd7x26[_0x147e[27]](UserHasChatQueue[_0x147e[61]]({where:{UserId:_0xbdd7x18[_0x147e[59]],ChatQueueId:_0xbdd7x27[_0x147e[59]]},defaults:{ChatQueueId:_0xbdd7x27[_0x147e[59]],queue:_0xbdd7x27[_0x147e[35]],UserId:_0xbdd7x18[_0x147e[59]]},transaction:_0xbdd7x10[_0x147e[44]]}))});return Promise[_0x147e[20]](_0xbdd7x26)[_0x147e[54]](function(_0xbdd7x1f){console[_0x147e[14]](_0xbdd7x1f)});case _0x147e[17]:_0xbdd7x10[_0x147e[39]][_0x147e[62]][_0x147e[28]](function(_0xbdd7x27){_0xbdd7x26[_0x147e[27]](UserHasMailQueue[_0x147e[61]]({where:{UserId:_0xbdd7x18[_0x147e[59]],MailQueueId:_0xbdd7x27[_0x147e[59]]},defaults:{MailQueueId:_0xbdd7x27[_0x147e[59]],queue:_0xbdd7x27[_0x147e[35]],UserId:_0xbdd7x18[_0x147e[59]]},transaction:_0xbdd7x10[_0x147e[44]]}))});return Promise[_0x147e[20]](_0xbdd7x26)[_0x147e[54]](function(_0xbdd7x1f){console[_0x147e[14]](_0xbdd7x1f)});case _0x147e[18]:_0xbdd7x10[_0x147e[39]][_0x147e[62]][_0x147e[28]](function(_0xbdd7x27){_0xbdd7x26[_0x147e[27]](UserHasFaxQueue[_0x147e[61]]({where:{UserId:_0xbdd7x18[_0x147e[59]],FaxQueueId:_0xbdd7x27[_0x147e[59]]},defaults:{faxQueueId:_0xbdd7x27[_0x147e[59]],queue:_0xbdd7x27[_0x147e[35]],UserId:_0xbdd7x18[_0x147e[59]]},transaction:_0xbdd7x10[_0x147e[44]]}))});return Promise[_0x147e[20]](_0xbdd7x26)[_0x147e[54]](function(_0xbdd7x1f){console[_0x147e[14]](_0xbdd7x1f)});default:}}}function _0xbdd7x28(_0xbdd7x10,_0xbdd7x17){return function(_0xbdd7x18){switch(_0xbdd7x10[_0x147e[39]][_0x147e[30]]){case _0x147e[15]:return UserHasVoiceQueue[_0x147e[65]]({where:{UserId:_0xbdd7x18[_0x147e[59]],queue:_0xbdd7x10[_0x147e[39]][_0x147e[64]]},transaction:_0xbdd7x10[_0x147e[44]],individualHooks:true})[_0x147e[29]](function(){var _0xbdd7x29=Promise[_0x147e[48]](_0xbdd7xd[_0x147e[47]]);return _0xbdd7x29({action:_0x147e[58],queue:_0xbdd7x10[_0x147e[39]][_0x147e[64]],interface:util[_0x147e[23]](_0x147e[36],_0x147e[37],_0xbdd7x18[_0x147e[35]])})})[_0x147e[54]](function(_0xbdd7x1f){console[_0x147e[53]](_0x147e[63],_0xbdd7x1f)});case _0x147e[16]:return UserHasChatQueue[_0x147e[65]]({where:{UserId:_0xbdd7x18[_0x147e[59]],ChatQueueId:_0xbdd7x10[_0x147e[39]][_0x147e[66]]},transaction:_0xbdd7x10[_0x147e[44]],individualHooks:true})[_0x147e[54]](function(_0xbdd7x1f){console[_0x147e[53]](_0x147e[63],_0xbdd7x1f)});case _0x147e[17]:return UserHasMailQueue[_0x147e[65]]({where:{UserId:_0xbdd7x18[_0x147e[59]],MailQueueId:_0xbdd7x10[_0x147e[39]][_0x147e[66]]},transaction:_0xbdd7x10[_0x147e[44]],individualHooks:true})[_0x147e[54]](function(_0xbdd7x1f){console[_0x147e[53]](_0x147e[63],_0xbdd7x1f)});case _0x147e[18]:return UserHasFaxQueue[_0x147e[65]]({where:{UserId:_0xbdd7x18[_0x147e[59]],FaxQueueId:_0xbdd7x10[_0x147e[39]][_0x147e[66]]},transaction:_0xbdd7x10[_0x147e[44]],individualHooks:true})[_0x147e[54]](function(_0xbdd7x1f){console[_0x147e[53]](_0x147e[63],_0xbdd7x1f)});default:}}}function _0xbdd7x2a(_0xbdd7x2b){return function(_0xbdd7x2c){if(!_0xbdd7x2c){throw _0xbdd7x2b};return _0xbdd7x2c}}function _0xbdd7x2d(_0xbdd7x17,_0xbdd7x10,_0xbdd7xd){switch(_0xbdd7x17[_0x147e[35]]){case _0x147e[70]:return Agent[_0x147e[69]](_0xbdd7x10[_0x147e[39]][_0x147e[68]])[_0x147e[29]](_0xbdd7x2a({message:_0x147e[67]}))[_0x147e[29]](_0xbdd7x16(_0xbdd7x10,_0xbdd7x17));case _0x147e[71]:return Agent[_0x147e[69]](_0xbdd7x10[_0x147e[39]][_0x147e[68]])[_0x147e[29]](_0xbdd7x2a({message:_0x147e[67]}))[_0x147e[29]](_0xbdd7x1c(_0xbdd7x10,_0xbdd7x17));case _0x147e[72]:return Agent[_0x147e[69]](_0xbdd7x17[_0x147e[40]])[_0x147e[29]](_0xbdd7x2a({message:_0x147e[67]}))[_0x147e[29]](_0xbdd7x20(_0xbdd7x10,_0xbdd7x17));case _0x147e[73]:return Agent[_0x147e[69]](_0xbdd7x17[_0x147e[40]])[_0x147e[29]](_0xbdd7x2a({message:_0x147e[67]}))[_0x147e[29]](_0xbdd7x1c(_0xbdd7x10,_0xbdd7x17))[_0x147e[29]](_0xbdd7x24(_0xbdd7x10,_0xbdd7x17));case _0x147e[56]:return Agent[_0x147e[69]](_0xbdd7x10[_0x147e[39]][_0x147e[68]])[_0x147e[29]](_0xbdd7x2a({message:_0x147e[67]}))[_0x147e[29]](_0xbdd7x25(_0xbdd7x10,_0xbdd7x17));case _0x147e[58]:return Agent[_0x147e[69]](_0xbdd7x10[_0x147e[39]][_0x147e[68]])[_0x147e[29]](_0xbdd7x2a({message:_0x147e[67]}))[_0x147e[29]](_0xbdd7x28(_0xbdd7x10,_0xbdd7x17));default:throw {message:_0x147e[74]}}}return {}}module[_0x147e[75]]=Action
\ No newline at end of file
index d3f273e..5c3942a 100644 (file)
@@ -1,152 +1 @@
-var moment = require('moment');
-var _ = require('lodash');
-var VoiceQueue = require('../../models').VoiceQueue;
-var Agent = require('../../models').User;
-var Action = require('../../models').Action;
-var ReportAgent = require('../../models').ReportAgent;
-var _voiceQueues;
-var _agents;
-var activeAcw = {};
-
-
-function ACW(ami) {
-  console.log('ACW Initialization...');
-  VoiceQueue
-    .findAll()
-    .then(function(voiceQueues) {
-      _voiceQueues = voiceQueues;
-      // console.log('_voiceQueues', _.map(_voiceQueues, 'dataValues'));
-      synchCollection(VoiceQueue, _voiceQueues, 'name');
-      return Agent
-        .scope('agent')
-        .findAll();
-    })
-    .then(function(agents) {
-      _agents = agents;
-      // console.log('_agents', _.map(_agents, 'dataValues'));
-      synchCollection(Agent, _agents, 'id');
-      Action.afterCreate(function(doc, options) {
-        return onSave(doc, options);
-      });
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function onSave(doc, options) {
-  if (doc.name === 'unpause' && activeAcw[options.body.agent]) {
-    var acwTime;
-    if (activeAcw[options.body.agent].unpause) {
-      acwTime = activeAcw[options.body.agent].acwTime;
-    } else {
-      clearTimeout(activeAcw[options.body.agent].timeout);
-      acwTime = moment.duration(moment() - activeAcw[options.body.agent].acwAt).asSeconds();
-    }
-    return ReportAgent
-      .update({
-        agentacw: true,
-        acwtime: acwTime
-      }, {
-        where: {
-          uniqueid: activeAcw[options.body.agent].uniqueid,
-          destuniqueid: activeAcw[options.body.agent].destuniqueid
-        },
-        transaction: options.transaction,
-        individualHooks: true
-      })
-      .then(function() {
-        delete activeAcw[options.body.agent];
-      })
-      .catch(function(err) {
-        console.log(err);
-      });
-  }
-}
-
-ACW.prototype.agentcomplete = function(evt) {
-  var queueIsAcw = _.find(_voiceQueues, {
-    name: evt.queue,
-    acw: true
-  });
-  if (queueIsAcw) {
-    var agent = _.find(_agents, {
-      name: evt.membername
-    });
-    Action
-      .create({
-        name: 'pause',
-        data1: evt.queue,
-        data2: queueIsAcw.acwTimeout,
-        data3: evt.uniqueid,
-        data4: 'ACW'
-      }, {
-        body: {
-          agent: agent.id,
-          type: 'ACW'
-        }
-      })
-      .then(function() {
-        console.log('PAUSED BY ACW');
-        activeAcw[agent.id] = {
-          uniqueid: evt.uniqueid,
-          destuniqueid: evt.destuniqueid,
-          acwTime: queueIsAcw.acwTimeout,
-          acwAt: moment(),
-          unpause: false
-        };
-
-        activeAcw[agent.id].timeout = setTimeout(function() {
-          console.log('UNPAUSED BY ACW');
-          activeAcw[agent.id].unpause = true;
-          return Action
-            .create({
-              name: 'unpause',
-              data1: evt.queue,
-              data2: queueIsAcw.acwTimeout,
-              data3: evt.uniqueid,
-              data4: 'ACW'
-            }, {
-              body: {
-                agent: agent.id,
-                type: 'ACW'
-              }
-            })
-            .catch(function(err) {
-              console.log(err);
-            });
-        }, queueIsAcw.acwTimeout * 1000);
-      })
-      .catch(function(err) {
-        console.log(err);
-      });
-  }
-}
-
-function synchCollection(model, array, uniqueProperty) {
-  var condition = {};
-  model.afterCreate(function(doc) {
-    condition[uniqueProperty] = doc[uniqueProperty]
-    updateCollection(array, doc, condition);
-  });
-  model.afterUpdate(function(doc) {
-    condition[uniqueProperty] = doc[uniqueProperty]
-    updateCollection(array, doc, condition);
-  });
-  model.afterDestroy(function(doc) {
-    condition[uniqueProperty] = doc[uniqueProperty]
-    _.remove(array, condition);
-  });
-}
-
-function updateCollection(collection, doc, condition) {
-  var oldItem = _.find(collection, condition);
-  var index = collection.indexOf(oldItem);
-  if (oldItem) {
-    _.merge(collection[index], doc);
-  } else {
-    collection.unshift(doc);
-  }
-}
-
-module.exports = ACW;
+var _0x5a4c=["\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x41\x63\x74\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x41\x43\x57\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x69\x64","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x6E\x61\x6D\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x61\x67\x65\x6E\x74","\x73\x63\x6F\x70\x65","\x75\x6E\x70\x61\x75\x73\x65","\x62\x6F\x64\x79","\x61\x63\x77\x54\x69\x6D\x65","\x74\x69\x6D\x65\x6F\x75\x74","\x61\x73\x53\x65\x63\x6F\x6E\x64\x73","\x61\x63\x77\x41\x74","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x71\x75\x65\x75\x65","\x66\x69\x6E\x64","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x50\x41\x55\x53\x45\x44\x20\x42\x59\x20\x41\x43\x57","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x55\x4E\x50\x41\x55\x53\x45\x44\x20\x42\x59\x20\x41\x43\x57","\x41\x43\x57","\x63\x72\x65\x61\x74\x65","\x70\x61\x75\x73\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x69\x6E\x64\x65\x78\x4F\x66","\x6D\x65\x72\x67\x65","\x75\x6E\x73\x68\x69\x66\x74","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0x5a4c[0]);var _=require(_0x5a4c[1]);var VoiceQueue=require(_0x5a4c[3])[_0x5a4c[2]];var Agent=require(_0x5a4c[3])[_0x5a4c[4]];var Action=require(_0x5a4c[3])[_0x5a4c[5]];var ReportAgent=require(_0x5a4c[3])[_0x5a4c[6]];var _voiceQueues;var _agents;var activeAcw={};function ACW(_0x92ebxb){console[_0x5a4c[8]](_0x5a4c[7]);VoiceQueue[_0x5a4c[14]]()[_0x5a4c[12]](function(_0x92ebx10){_voiceQueues=_0x92ebx10;synchCollection(VoiceQueue,_voiceQueues,_0x5a4c[13]);return Agent[_0x5a4c[16]](_0x5a4c[15])[_0x5a4c[14]]()})[_0x5a4c[12]](function(_0x92ebxd){_agents=_0x92ebxd;synchCollection(Agent,_agents,_0x5a4c[10]);Action[_0x5a4c[11]](function(_0x92ebxe,_0x92ebxf){return onSave(_0x92ebxe,_0x92ebxf)})})[_0x5a4c[9]](function(_0x92ebxc){console[_0x5a4c[8]](_0x92ebxc)})}function onSave(_0x92ebxe,_0x92ebxf){if(_0x92ebxe[_0x5a4c[13]]===_0x5a4c[17]&&activeAcw[_0x92ebxf[_0x5a4c[18]][_0x5a4c[15]]]){var _0x92ebx12;if(activeAcw[_0x92ebxf[_0x5a4c[18]][_0x5a4c[15]]][_0x5a4c[17]]){_0x92ebx12=activeAcw[_0x92ebxf[_0x5a4c[18]][_0x5a4c[15]]][_0x5a4c[19]]}else {clearTimeout(activeAcw[_0x92ebxf[_0x5a4c[18]][_0x5a4c[15]]][_0x5a4c[20]]);_0x92ebx12=moment[_0x5a4c[23]](moment()-activeAcw[_0x92ebxf[_0x5a4c[18]][_0x5a4c[15]]][_0x5a4c[22]])[_0x5a4c[21]]()};return ReportAgent[_0x5a4c[27]]({agentacw:true,acwtime:_0x92ebx12},{where:{uniqueid:activeAcw[_0x92ebxf[_0x5a4c[18]][_0x5a4c[15]]][_0x5a4c[24]],destuniqueid:activeAcw[_0x92ebxf[_0x5a4c[18]][_0x5a4c[15]]][_0x5a4c[25]]},transaction:_0x92ebxf[_0x5a4c[26]],individualHooks:true})[_0x5a4c[12]](function(){delete activeAcw[_0x92ebxf[_0x5a4c[18]][_0x5a4c[15]]]})[_0x5a4c[9]](function(_0x92ebxc){console[_0x5a4c[8]](_0x92ebxc)})}}ACW[_0x5a4c[29]][_0x5a4c[28]]=function(_0x92ebx13){var _0x92ebx14=_[_0x5a4c[31]](_voiceQueues,{name:_0x92ebx13[_0x5a4c[30]],acw:true});if(_0x92ebx14){var _0x92ebx15=_[_0x5a4c[31]](_agents,{name:_0x92ebx13[_0x5a4c[32]]});Action[_0x5a4c[37]]({name:_0x5a4c[38],data1:_0x92ebx13[_0x5a4c[30]],data2:_0x92ebx14[_0x5a4c[34]],data3:_0x92ebx13[_0x5a4c[24]],data4:_0x5a4c[36]},{body:{agent:_0x92ebx15[_0x5a4c[10]],type:_0x5a4c[36]}})[_0x5a4c[12]](function(){console[_0x5a4c[8]](_0x5a4c[33]);activeAcw[_0x92ebx15[_0x5a4c[10]]]={uniqueid:_0x92ebx13[_0x5a4c[24]],destuniqueid:_0x92ebx13[_0x5a4c[25]],acwTime:_0x92ebx14[_0x5a4c[34]],acwAt:moment(),unpause:false};activeAcw[_0x92ebx15[_0x5a4c[10]]][_0x5a4c[20]]=setTimeout(function(){console[_0x5a4c[8]](_0x5a4c[35]);activeAcw[_0x92ebx15[_0x5a4c[10]]][_0x5a4c[17]]=true;return Action[_0x5a4c[37]]({name:_0x5a4c[17],data1:_0x92ebx13[_0x5a4c[30]],data2:_0x92ebx14[_0x5a4c[34]],data3:_0x92ebx13[_0x5a4c[24]],data4:_0x5a4c[36]},{body:{agent:_0x92ebx15[_0x5a4c[10]],type:_0x5a4c[36]}})[_0x5a4c[9]](function(_0x92ebxc){console[_0x5a4c[8]](_0x92ebxc)})},_0x92ebx14[_0x5a4c[34]]*1000)})[_0x5a4c[9]](function(_0x92ebxc){console[_0x5a4c[8]](_0x92ebxc)})}};function synchCollection(_0x92ebx17,_0x92ebx18,_0x92ebx19){var _0x92ebx1a={};_0x92ebx17[_0x5a4c[11]](function(_0x92ebxe){_0x92ebx1a[_0x92ebx19]=_0x92ebxe[_0x92ebx19];updateCollection(_0x92ebx18,_0x92ebxe,_0x92ebx1a)});_0x92ebx17[_0x5a4c[39]](function(_0x92ebxe){_0x92ebx1a[_0x92ebx19]=_0x92ebxe[_0x92ebx19];updateCollection(_0x92ebx18,_0x92ebxe,_0x92ebx1a)});_0x92ebx17[_0x5a4c[41]](function(_0x92ebxe){_0x92ebx1a[_0x92ebx19]=_0x92ebxe[_0x92ebx19];_[_0x5a4c[40]](_0x92ebx18,_0x92ebx1a)})}function updateCollection(_0x92ebx1c,_0x92ebxe,_0x92ebx1a){var _0x92ebx1d=_[_0x5a4c[31]](_0x92ebx1c,_0x92ebx1a);var _0x92ebx1e=_0x92ebx1c[_0x5a4c[42]](_0x92ebx1d);if(_0x92ebx1d){_[_0x5a4c[43]](_0x92ebx1c[_0x92ebx1e],_0x92ebxe)}else {_0x92ebx1c[_0x5a4c[44]](_0x92ebxe)}}module[_0x5a4c[45]]=ACW
\ No newline at end of file
index 1aca579..d5ffd6f 100644 (file)
@@ -1,94 +1 @@
-var moment = require('moment');
-var ReportAgent = require('../../models').ReportAgent;
-
-function Agent() {
-  console.log('Agent Initialization...');
-}
-
-Agent.prototype.called = function(evt) {
-  evt.lastevent = 'called';
-  evt.agentcalledAt = moment().format("YYYY-MM-DD HH:mm:ss");
-  return createAgent(evt);
-}
-
-Agent.prototype.connect = function(evt) {
-  evt.lastevent = 'connect';
-  evt.agentconnectAt = moment().format("YYYY-MM-DD HH:mm:ss");
-  updateAgents(evt);
-  updateAgents({
-    agentringnoanswer: true,
-    agentringnoanswerAt: moment().format("YYYY-MM-DD HH:mm:ss"),
-    reason: 'answered_elsewhere',
-    lastevent: 'answered_elsewhere'
-  }, {
-    uniqueid: evt.uniqueid,
-    destuniqueid: {
-      $ne: evt.destuniqueid
-    },
-    reason: null
-  })
-}
-
-Agent.prototype.complete = function(evt) {
-  evt.lastevent = 'complete';
-  evt.agentcomplete = true;
-  evt.agentcompleteAt = moment().format("YYYY-MM-DD HH:mm:ss");
-  return updateAgents(evt);
-}
-
-Agent.prototype.dump = function(evt) {
-  evt.lastevent = 'dump';
-
-  evt.agentdump = true;
-  evt.agentdumpAt = moment().format("YYYY-MM-DD HH:mm:ss");
-  return updateAgents(evt);
-}
-
-Agent.prototype.ringnoanswer = function(evt) {
-  evt.lastevent = 'rejected';
-  evt.agentringnoanswer = true;
-  evt.agentringnoanswerAt = moment().format("YYYY-MM-DD HH:mm:ss");
-  evt.reason = 'rejected';
-  return updateAgents(evt);
-}
-
-Agent.prototype.callerabandon = function(evt) {
-  evt.lastevent = 'abandoned';
-  evt.agentringnoanswer = true;
-  evt.agentringnoanswerAt = moment().format("YYYY-MM-DD HH:mm:ss");
-  evt.reason = 'abandoned';
-  return updateAgents(evt, {
-    uniqueid: evt.uniqueid,
-    reason: null
-  });
-}
-
-function createAgent(evt) {
-  return ReportAgent
-    .create(evt)
-    .then(function(agent) {
-      console.log('[report] agent begin created');
-    })
-    .catch(function(err) {
-      console.error('[report] agent ' + err);
-    });
-}
-
-function updateAgents(evt, where) {
-  return ReportAgent
-    .update(evt, {
-      where: (where) ? where : {
-        uniqueid: evt.uniqueid,
-        destuniqueid: evt.destuniqueid
-      },
-      individualHooks: true
-    })
-    .then(function(agent) {
-      console.log('[agent] agent')
-    })
-    .catch(function(err) {
-      console.error('[agent] agent error: ' + err);
-    });
-}
-
-module.exports = Agent;
+var _0x99ca=["\x6D\x6F\x6D\x65\x6E\x74","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x41\x67\x65\x6E\x74\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x63\x61\x6C\x6C\x65\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x61\x6E\x73\x77\x65\x72\x65\x64\x5F\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x64\x75\x6D\x70","\x61\x67\x65\x6E\x74\x64\x75\x6D\x70","\x61\x67\x65\x6E\x74\x64\x75\x6D\x70\x41\x74","\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x72\x65\x6A\x65\x63\x74\x65\x64","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72\x41\x74","\x72\x65\x61\x73\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x61\x67\x65\x6E\x74\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x61\x67\x65\x6E\x74\x20\x62\x65\x67\x69\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x5B\x61\x67\x65\x6E\x74\x5D\x20\x61\x67\x65\x6E\x74\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x61\x67\x65\x6E\x74\x5D\x20\x61\x67\x65\x6E\x74","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0x99ca[0]);var ReportAgent=require(_0x99ca[2])[_0x99ca[1]];function Agent(){console[_0x99ca[4]](_0x99ca[3])}Agent[_0x99ca[6]][_0x99ca[5]]=function(_0x95ccx4){_0x95ccx4[_0x99ca[7]]=_0x99ca[5];_0x95ccx4[_0x99ca[8]]=moment()[_0x99ca[10]](_0x99ca[9]);return createAgent(_0x95ccx4)};Agent[_0x99ca[6]][_0x99ca[11]]=function(_0x95ccx4){_0x95ccx4[_0x99ca[7]]=_0x99ca[11];_0x95ccx4[_0x99ca[12]]=moment()[_0x99ca[10]](_0x99ca[9]);updateAgents(_0x95ccx4);updateAgents({agentringnoanswer:true,agentringnoanswerAt:moment()[_0x99ca[10]](_0x99ca[9]),reason:_0x99ca[13],lastevent:_0x99ca[13]},{uniqueid:_0x95ccx4[_0x99ca[14]],destuniqueid:{$ne:_0x95ccx4[_0x99ca[15]]},reason:null})};Agent[_0x99ca[6]][_0x99ca[16]]=function(_0x95ccx4){_0x95ccx4[_0x99ca[7]]=_0x99ca[16];_0x95ccx4[_0x99ca[17]]=true;_0x95ccx4[_0x99ca[18]]=moment()[_0x99ca[10]](_0x99ca[9]);return updateAgents(_0x95ccx4)};Agent[_0x99ca[6]][_0x99ca[19]]=function(_0x95ccx4){_0x95ccx4[_0x99ca[7]]=_0x99ca[19];_0x95ccx4[_0x99ca[20]]=true;_0x95ccx4[_0x99ca[21]]=moment()[_0x99ca[10]](_0x99ca[9]);return updateAgents(_0x95ccx4)};Agent[_0x99ca[6]][_0x99ca[22]]=function(_0x95ccx4){_0x95ccx4[_0x99ca[7]]=_0x99ca[23];_0x95ccx4[_0x99ca[24]]=true;_0x95ccx4[_0x99ca[25]]=moment()[_0x99ca[10]](_0x99ca[9]);_0x95ccx4[_0x99ca[26]]=_0x99ca[23];return updateAgents(_0x95ccx4)};Agent[_0x99ca[6]][_0x99ca[27]]=function(_0x95ccx4){_0x95ccx4[_0x99ca[7]]=_0x99ca[28];_0x95ccx4[_0x99ca[24]]=true;_0x95ccx4[_0x99ca[25]]=moment()[_0x99ca[10]](_0x99ca[9]);_0x95ccx4[_0x99ca[26]]=_0x99ca[28];return updateAgents(_0x95ccx4,{uniqueid:_0x95ccx4[_0x99ca[14]],reason:null})};function createAgent(_0x95ccx4){return ReportAgent[_0x99ca[34]](_0x95ccx4)[_0x99ca[33]](function(_0x95ccx7){console[_0x99ca[4]](_0x99ca[32])})[_0x99ca[31]](function(_0x95ccx6){console[_0x99ca[30]](_0x99ca[29]+_0x95ccx6)})}function updateAgents(_0x95ccx4,_0x95ccx9){return ReportAgent[_0x99ca[37]](_0x95ccx4,{where:(_0x95ccx9)?_0x95ccx9:{uniqueid:_0x95ccx4[_0x99ca[14]],destuniqueid:_0x95ccx4[_0x99ca[15]]},individualHooks:true})[_0x99ca[33]](function(_0x95ccx7){console[_0x99ca[4]](_0x99ca[36])})[_0x99ca[31]](function(_0x95ccx6){console[_0x99ca[30]](_0x99ca[35]+_0x95ccx6)})}module[_0x99ca[38]]=Agent
\ No newline at end of file
index 15e34b3..01c8dd3 100644 (file)
@@ -1,26 +1 @@
-function Call() {
-  console.log('Call Initialization...');
-}
-
-Call.prototype.add = function(evt) {
-  create(evt);
-}
-
-function create(evt) {
-  var call = require('../../models').ReportCall;
-  call
-    .findOrCreate({
-      where: {
-        uniqueid: evt.uniqueid
-      },
-      defaults: evt
-    })
-    .spread(function(call, created) {
-      console.log('[report] call created: ', created);
-    })
-    .catch(function(err) {
-      console.error('[report] call ' + err);
-    });
-}
-
-module.exports = Call;
+var _0xe26f=["\x43\x61\x6C\x6C\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x61\x64\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x63\x61\x6C\x6C\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x63\x61\x6C\x6C\x20\x63\x72\x65\x61\x74\x65\x64\x3A\x20","\x73\x70\x72\x65\x61\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];function Call(){console[_0xe26f[1]](_0xe26f[0])}Call[_0xe26f[3]][_0xe26f[2]]=function(_0x5bafx2){create(_0x5bafx2)};function create(_0x5bafx2){var _0x5bafx4=require(_0xe26f[5])[_0xe26f[4]];_0x5bafx4[_0xe26f[12]]({where:{uniqueid:_0x5bafx2[_0xe26f[11]]},defaults:_0x5bafx2})[_0xe26f[10]](function(_0x5bafx4,_0x5bafx6){console[_0xe26f[1]](_0xe26f[9],_0x5bafx6)})[_0xe26f[8]](function(_0x5bafx5){console[_0xe26f[7]](_0xe26f[6]+_0x5bafx5)})}module[_0xe26f[13]]=Call
\ No newline at end of file
index 3d7c92b..e96085e 100644 (file)
@@ -1,217 +1 @@
-'use strict';
-
-var Agent = require('./agent');
-var Action = require('./action');
-var Call = require('./call');
-var Member = require('./member');
-var QueueCaller = require('./queue_caller');
-var QueueMember = require('./queue_member');
-var Recording = require('./recording');
-var Trunk = require('./trunk');
-var Context = require('./voice_context');
-var ACW = require('./acw');
-var User = require('./user');
-var Transfer = require('./transfer');
-
-// When the ami disconnects.. perform this
-function onDisconnect(ami) {}
-
-// When the ami connects.. perform this
-function onConnect(ami) {}
-
-function getVariable(event) {
-  var keys = Object.keys(event.variable);
-  event.variable = keys[0];
-  return event;
-}
-
-module.exports = function(ami) {
-
-  var agent = new Agent();
-  var call = new Call();
-  var member = new Member();
-  var queuemember = new QueueMember();
-  var queuecaller = new QueueCaller();
-  var recording = new Recording();
-  var trunk = new Trunk(ami);
-  var context = new Context(ami);
-  var action = new Action(ami);
-  var acw = new ACW(ami);
-  var user = new User();
-  var tranfer = new Transfer();
-
-  // Asterisk Status Connect
-
-  // Raised when asterisk is connected
-  ami.on('connect', function() {
-    console.info('[%s:%s] AMI CONNECTED', ami.options.host, ami.options.port);
-    ami.options.connectedAt = new Date();
-    // Call onConnect.
-    onConnect(ami);
-  });
-
-  // Raised when asterisk is disconnected
-  ami.on('disconnect', function() {
-    // Call onDisconnect.
-    onDisconnect(ami);
-    console.info('[%s:%s] AMI DISCONNECTED', ami.options.host, ami.options.port);
-  });
-
-  // Raised when asterisk is closed
-  ami.on('close', function(flag) {
-    console.log('[%s:%s] AMI CLOSE: %s', ami.options.host, ami.options.port, flag);
-  });
-
-  // Raised when asterisk has an error
-  ami.on('error', function(err) {
-    console.log('[%s:%s] AMI ERROR: %s', ami.options.host, ami.options.port, err);
-  });
-
-  ami.on('managerevent', function(evt) {
-    // console.log(evt);
-  });
-
-  ami.on('devicestatechange', function(evt) {
-    // console.log(evt);
-    if (evt.device.indexOf('SIP/') === 0) {
-      user.stateUpdate(evt);
-    }
-  });
-
-  // Agent Status Events
-
-  // Raised when an Agent is notified of a member in the queue.
-  ami.on('agentcalled', function(evt) {
-    agent.called(evt);
-  });
-
-  // Raised when an agent has finished servicing a member in the queue.
-  ami.on('agentcomplete', function(evt) {
-    console.log('agentcomplete', evt);
-    acw.agentcomplete(evt);
-    agent.complete(evt);
-    queuecaller.complete(evt);
-  });
-
-  // Raised when an agent answers and is bridged to a member in the queue.
-  ami.on('agentconnect', function(evt) {
-    agent.connect(evt);
-  });
-
-  // Raised when an agent hangs up on a member in the queue.
-  ami.on('agentdump', function(evt) {
-    agent.dump(evt);
-  });
-
-  // Raised when an agent is notified of a member in the queue and fails to answer.
-  ami.on('agentringnoanswer', function(evt) {
-    agent.ringnoanswer(evt);
-  });
-
-  // Member Status Events in Queue
-
-  // Raised when a member is added to the queue.
-  ami.on('queuememberadded', function(evt) {
-    member.login(evt);
-    queuemember.added(evt);
-  });
-
-  // Raised when a member is paused/unpaused in the queue with a reason.
-  ami.on('queuememberpause', function(evt) {
-    member.pause(evt);
-    queuemember.pause(evt);
-  });
-
-  // Raised when a member's penalty is changed.
-  ami.on('queuememberpenalty', function(evt) {
-    queuemember.penalty(evt);
-  });
-
-  // Raised when a member is removed from the queue.
-  ami.on('queuememberremoved', function(evt) {
-    member.logout(evt);
-    queuemember.removed(evt);
-  });
-
-  // Raised when a member's ringinuse setting is changed.
-  ami.on('queuememberringinuse', function(evt) {
-    queuemember.ringinuse(evt);
-  });
-
-  // Raised when a Queue member's status has changed.
-  ami.on('queuememberstatus', function(evt) {
-    queuemember.status(evt);
-  });
-
-  // Queue Status Events
-
-  // Raised when a caller joins a Queue.
-  ami.on('queuecallerjoin', function(evt) {
-    queuecaller.join(evt);
-  });
-
-  // Raised when a caller abandons the queue.
-  ami.on('queuecallerabandon', function(evt) {
-    queuecaller.abandon(evt);
-    //queuemember.callerabandon(evt);
-    agent.callerabandon(evt);
-  });
-
-  // Raised when a caller leaves a Queue.
-  ami.on('queuecallerleave', function(evt) {
-    queuecaller.leave(evt);
-  });
-
-  // Cdr Status Events
-
-  // Raised when a CDR is generated.
-  ami.on('cdr', function(evt) {
-    call.add(evt);
-  });
-
-  // Hangup Status Events
-  ami.on('hangup', function(evt) {
-    //agent.hangup(evt);
-  });
-
-  // Recordings Events
-  ami.on('monitorstart', function(evt) {
-    // console.log('evt', evt);
-  });
-
-  ami.on('monitorstop', function(evt) {
-    // console.log('evt', evt);
-    recording.create(evt, 'outbound');
-  });
-
-  ami.on('blindtransfer', function(evt) {
-    console.log('blindtransfer', evt);
-    evt.type = 'blind';
-    tranfer.createBlind(evt);
-  });
-
-  ami.on('attendedtransfer', function(evt) {
-    console.log('attendedtransfer', evt);
-    evt.type = 'attended';
-    tranfer.createAttended(evt);
-  });
-
-  // Variable Events
-  ami.on('varset', function(evt) {
-    var event = getVariable(evt);
-    switch (event.variable) {
-      case 'mixmonitor_filename':
-        recording.create(event, 'inbound');
-        break;
-      case 'queuestatus':
-        queuecaller.exit(event);
-        break;
-      default:
-        // console.log('Variable not managed:', event.variable);
-        break;
-    }
-  });
-
-  require('./../fax').register(ami);
-  require('../../api/ami/ami.ami').register(ami);
-};
+var _0xa9cf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x61\x67\x65\x6E\x74","\x2E\x2F\x61\x63\x74\x69\x6F\x6E","\x2E\x2F\x63\x61\x6C\x6C","\x2E\x2F\x6D\x65\x6D\x62\x65\x72","\x2E\x2F\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72","\x2E\x2F\x71\x75\x65\x75\x65\x5F\x6D\x65\x6D\x62\x65\x72","\x2E\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2F\x74\x72\x75\x6E\x6B","\x2E\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x2E\x2F\x61\x63\x77","\x2E\x2F\x75\x73\x65\x72","\x2E\x2F\x74\x72\x61\x6E\x73\x66\x65\x72","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x73","\x65\x78\x70\x6F\x72\x74\x73","\x63\x6F\x6E\x6E\x65\x63\x74","\x5B\x25\x73\x3A\x25\x73\x5D\x20\x41\x4D\x49\x20\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x68\x6F\x73\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x70\x6F\x72\x74","\x69\x6E\x66\x6F","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x6F\x6E","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x5B\x25\x73\x3A\x25\x73\x5D\x20\x41\x4D\x49\x20\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x63\x6C\x6F\x73\x65","\x5B\x25\x73\x3A\x25\x73\x5D\x20\x41\x4D\x49\x20\x43\x4C\x4F\x53\x45\x3A\x20\x25\x73","\x6C\x6F\x67","\x65\x72\x72\x6F\x72","\x5B\x25\x73\x3A\x25\x73\x5D\x20\x41\x4D\x49\x20\x45\x52\x52\x4F\x52\x3A\x20\x25\x73","\x6D\x61\x6E\x61\x67\x65\x72\x65\x76\x65\x6E\x74","\x64\x65\x76\x69\x63\x65\x73\x74\x61\x74\x65\x63\x68\x61\x6E\x67\x65","\x53\x49\x50\x2F","\x69\x6E\x64\x65\x78\x4F\x66","\x64\x65\x76\x69\x63\x65","\x73\x74\x61\x74\x65\x55\x70\x64\x61\x74\x65","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64","\x63\x61\x6C\x6C\x65\x64","\x71\x75\x65\x75\x65\x53\x74\x61\x74\x75\x73\x55\x70\x64\x61\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x64\x75\x6D\x70","\x64\x75\x6D\x70","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x61\x64\x64\x65\x64","\x6C\x6F\x67\x69\x6E","\x61\x64\x64\x65\x64","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x70\x61\x75\x73\x65","\x70\x61\x75\x73\x65","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x70\x65\x6E\x61\x6C\x74\x79","\x70\x65\x6E\x61\x6C\x74\x79","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x72\x65\x6D\x6F\x76\x65\x64","\x6C\x6F\x67\x6F\x75\x74","\x72\x65\x6D\x6F\x76\x65\x64","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x73\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E","\x6A\x6F\x69\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x61\x62\x61\x6E\x64\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65","\x6C\x65\x61\x76\x65","\x63\x64\x72","\x61\x64\x64","\x68\x61\x6E\x67\x75\x70","\x6D\x6F\x6E\x69\x74\x6F\x72\x73\x74\x61\x72\x74","\x6D\x6F\x6E\x69\x74\x6F\x72\x73\x74\x6F\x70","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6C\x69\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72","\x74\x79\x70\x65","\x62\x6C\x69\x6E\x64","\x63\x72\x65\x61\x74\x65\x42\x6C\x69\x6E\x64","\x61\x74\x74\x65\x6E\x64\x65\x64\x74\x72\x61\x6E\x73\x66\x65\x72","\x61\x74\x74\x65\x6E\x64\x65\x64","\x63\x72\x65\x61\x74\x65\x41\x74\x74\x65\x6E\x64\x65\x64","\x76\x61\x72\x73\x65\x74","\x69\x6E\x62\x6F\x75\x6E\x64","\x6D\x69\x78\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x73\x74\x61\x74\x75\x73","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2F\x2E\x2E\x2F\x66\x61\x78","\x2E\x2E\x2F\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6D\x69\x2F\x61\x6D\x69\x2E\x61\x6D\x69"];_0xa9cf[0];var Agent=require(_0xa9cf[1]);var Action=require(_0xa9cf[2]);var Call=require(_0xa9cf[3]);var Member=require(_0xa9cf[4]);var QueueCaller=require(_0xa9cf[5]);var QueueMember=require(_0xa9cf[6]);var Recording=require(_0xa9cf[7]);var Trunk=require(_0xa9cf[8]);var Context=require(_0xa9cf[9]);var ACW=require(_0xa9cf[10]);var User=require(_0xa9cf[11]);var Transfer=require(_0xa9cf[12]);function onDisconnect(_0x7c76xe){}function onConnect(_0x7c76xe){}function getVariable(_0x7c76x11){var _0x7c76x12=Object[_0xa9cf[14]](_0x7c76x11[_0xa9cf[13]]);_0x7c76x11[_0xa9cf[13]]=_0x7c76x12[0];return _0x7c76x11}module[_0xa9cf[15]]=function(_0x7c76xe){var _0x7c76x13= new Agent();var _0x7c76x14= new Call();var _0x7c76x15= new Member();var _0x7c76x16= new QueueMember();var _0x7c76x17= new QueueCaller();var _0x7c76x18= new Recording();var _0x7c76x19= new Trunk(_0x7c76xe);var _0x7c76x1a= new Context(_0x7c76xe);var _0x7c76x1b= new Action(_0x7c76xe);var _0x7c76x1c= new ACW(_0x7c76xe);var _0x7c76x1d= new User();var _0x7c76x1e= new Transfer();_0x7c76xe[_0xa9cf[23]](_0xa9cf[16],function(){console[_0xa9cf[21]](_0xa9cf[17],_0x7c76xe[_0xa9cf[19]][_0xa9cf[18]],_0x7c76xe[_0xa9cf[19]][_0xa9cf[20]]);_0x7c76xe[_0xa9cf[19]][_0xa9cf[22]]= new Date();onConnect(_0x7c76xe)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[24],function(){onDisconnect(_0x7c76xe);console[_0xa9cf[21]](_0xa9cf[25],_0x7c76xe[_0xa9cf[19]][_0xa9cf[18]],_0x7c76xe[_0xa9cf[19]][_0xa9cf[20]])});_0x7c76xe[_0xa9cf[23]](_0xa9cf[26],function(_0x7c76x1f){console[_0xa9cf[28]](_0xa9cf[27],_0x7c76xe[_0xa9cf[19]][_0xa9cf[18]],_0x7c76xe[_0xa9cf[19]][_0xa9cf[20]],_0x7c76x1f)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[29],function(_0x7c76x20){console[_0xa9cf[28]](_0xa9cf[30],_0x7c76xe[_0xa9cf[19]][_0xa9cf[18]],_0x7c76xe[_0xa9cf[19]][_0xa9cf[20]],_0x7c76x20)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[31],function(_0x7c76x21){});_0x7c76xe[_0xa9cf[23]](_0xa9cf[32],function(_0x7c76x21){if(_0x7c76x21[_0xa9cf[35]][_0xa9cf[34]](_0xa9cf[33])===0){_0x7c76x1d[_0xa9cf[36]](_0x7c76x21)}});_0x7c76xe[_0xa9cf[23]](_0xa9cf[37],function(_0x7c76x21){_0x7c76x13[_0xa9cf[38]](_0x7c76x21);_0x7c76x1d[_0xa9cf[39]](_0xa9cf[38],_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[40],function(_0x7c76x21){_0x7c76x1c[_0xa9cf[40]](_0x7c76x21);_0x7c76x13[_0xa9cf[41]](_0x7c76x21);_0x7c76x17[_0xa9cf[41]](_0x7c76x21);_0x7c76x1d[_0xa9cf[39]](_0xa9cf[41],_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[42],function(_0x7c76x21){_0x7c76x13[_0xa9cf[16]](_0x7c76x21);_0x7c76x1d[_0xa9cf[39]](_0xa9cf[16],_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[43],function(_0x7c76x21){_0x7c76x13[_0xa9cf[44]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[45],function(_0x7c76x21){_0x7c76x13[_0xa9cf[46]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[47],function(_0x7c76x21){_0x7c76x15[_0xa9cf[48]](_0x7c76x21);_0x7c76x16[_0xa9cf[49]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[50],function(_0x7c76x21){_0x7c76x15[_0xa9cf[51]](_0x7c76x21);_0x7c76x16[_0xa9cf[51]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[52],function(_0x7c76x21){_0x7c76x16[_0xa9cf[53]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[54],function(_0x7c76x21){_0x7c76x15[_0xa9cf[55]](_0x7c76x21);_0x7c76x16[_0xa9cf[56]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[57],function(_0x7c76x21){_0x7c76x16[_0xa9cf[58]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[59],function(_0x7c76x21){_0x7c76x16[_0xa9cf[60]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[61],function(_0x7c76x21){_0x7c76x17[_0xa9cf[62]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[63],function(_0x7c76x21){_0x7c76x17[_0xa9cf[64]](_0x7c76x21);_0x7c76x13[_0xa9cf[65]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[66],function(_0x7c76x21){_0x7c76x17[_0xa9cf[67]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[68],function(_0x7c76x21){_0x7c76x14[_0xa9cf[69]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[70],function(_0x7c76x21){});_0x7c76xe[_0xa9cf[23]](_0xa9cf[71],function(_0x7c76x21){});_0x7c76xe[_0xa9cf[23]](_0xa9cf[72],function(_0x7c76x21){_0x7c76x18[_0xa9cf[74]](_0x7c76x21,_0xa9cf[73])});_0x7c76xe[_0xa9cf[23]](_0xa9cf[75],function(_0x7c76x21){console[_0xa9cf[28]](_0xa9cf[75],_0x7c76x21);_0x7c76x21[_0xa9cf[76]]=_0xa9cf[77];_0x7c76x1e[_0xa9cf[78]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[79],function(_0x7c76x21){console[_0xa9cf[28]](_0xa9cf[79],_0x7c76x21);_0x7c76x21[_0xa9cf[76]]=_0xa9cf[80];_0x7c76x1e[_0xa9cf[81]](_0x7c76x21)});_0x7c76xe[_0xa9cf[23]](_0xa9cf[82],function(_0x7c76x21){var _0x7c76x11=getVariable(_0x7c76x21);switch(_0x7c76x11[_0xa9cf[13]]){case _0xa9cf[84]:_0x7c76x18[_0xa9cf[74]](_0x7c76x11,_0xa9cf[83]);break;case _0xa9cf[86]:_0x7c76x17[_0xa9cf[85]](_0x7c76x11);break;default:break}});require(_0xa9cf[88])[_0xa9cf[87]](_0x7c76xe);require(_0xa9cf[89])[_0xa9cf[87]](_0x7c76xe)}
\ No newline at end of file
index 0c4d403..b7a1c82 100644 (file)
@@ -1,111 +1 @@
-'use strict';
-
-var moment = require('moment');
-
-var member = require('../../models').ReportMember;
-
-function Member() {
-  console.log('Member Initialization...');
-
-
-}
-
-Member.prototype.login = function (evt) {
-  evt.state = 0;
-  evt.statedesc = 'LOGIN';
-
-  evt.enterdate = moment().format("YYYY-MM-DD HH:mm:ss");
-
-  findOrCreate(evt);
-}
-
-Member.prototype.logout = function (evt) {
-  evt.state = 0;
-  evt.statedesc = 'LOGIN';
-
-  evt.exitdate = moment().format("YYYY-MM-DD HH:mm:ss");
-  findAndUpdate(evt);
-}
-
-Member.prototype.pause = function (evt) {
-  evt.state = 1;
-  evt.statedesc = 'PAUSE';
-
-  var paused = parseInt(evt.paused, 10);
-  if (paused) {
-    evt.enterdate = moment().format("YYYY-MM-DD HH:mm:ss");
-    findOrCreate(evt);
-  } else {
-    if (evt.reason) {
-      delete evt.reason;
-    }
-
-    evt.exitdate = moment().format("YYYY-MM-DD HH:mm:ss");
-    findAndUpdate(evt);
-  }
-}
-
-function findOrCreate(evt) {
-  // member.
-  // findOne({
-  //   where: {
-  //     queue: evt.queue,
-  //     membername: evt.membername,
-  //     state: evt.state,
-  //   }
-  // });
-
-  // member
-  //   .findOrCreate({
-  //     where: {
-  //       queue: evt.queue,
-  //       membername: evt.membername,
-  //       state: evt.state,
-  //       enterdate: {
-  //         $ne: null
-  //       },
-  //       exitdate: null
-  //     },
-  //     defaults: evt
-  //   })
-  //   .spread(function(mem, created) {
-  //     if (created) {
-  //       console.log('[member] member created');
-  //     } else {
-  //       console.log('[member] member exist');
-  //       mem
-  //         .updateAttributes({
-  //           exitdate: moment().format("YYYY-MM-DD HH:mm:ss")
-  //         })
-  //         .then(function(res) {
-  //           console.log('[member] member updated');
-  //           findOrCreate(evt);
-  //         });
-  //     }
-  //   });
-}
-
-function findAndUpdate(evt) {
-  // var member = require('../../models').ReportMember;
-  // member
-  //   .update(evt, {
-  //     where: {
-  //       queue: evt.queue,
-  //       membername: evt.membername,
-  //       state: evt.state,
-  //       enterdate: {
-  //         $ne: null
-  //       },
-  //       exitdate: null,
-  //       reason: null
-  //     }
-  //   })
-  //   .then(function(member) {
-  //     console.log('[member] member updated');
-  //   })
-  //   .catch(function(err) {
-  //     console.error('[member] member error: ' + err);
-  //   });
-}
-
-module.exports = Member;
+var _0xe2f6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x65\x6D\x62\x65\x72\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x6C\x6F\x67\x69\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x74\x61\x74\x65","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x4C\x4F\x47\x49\x4E","\x65\x6E\x74\x65\x72\x64\x61\x74\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x6C\x6F\x67\x6F\x75\x74","\x65\x78\x69\x74\x64\x61\x74\x65","\x70\x61\x75\x73\x65","\x50\x41\x55\x53\x45","\x70\x61\x75\x73\x65\x64","\x72\x65\x61\x73\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73"];_0xe2f6[0];var moment=require(_0xe2f6[1]);var member=require(_0xe2f6[3])[_0xe2f6[2]];function Member(){console[_0xe2f6[5]](_0xe2f6[4])}Member[_0xe2f6[7]][_0xe2f6[6]]=function(_0x8a4dx4){_0x8a4dx4[_0xe2f6[8]]=0;_0x8a4dx4[_0xe2f6[9]]=_0xe2f6[10];_0x8a4dx4[_0xe2f6[11]]=moment()[_0xe2f6[13]](_0xe2f6[12]);findOrCreate(_0x8a4dx4)};Member[_0xe2f6[7]][_0xe2f6[14]]=function(_0x8a4dx4){_0x8a4dx4[_0xe2f6[8]]=0;_0x8a4dx4[_0xe2f6[9]]=_0xe2f6[10];_0x8a4dx4[_0xe2f6[15]]=moment()[_0xe2f6[13]](_0xe2f6[12]);findAndUpdate(_0x8a4dx4)};Member[_0xe2f6[7]][_0xe2f6[16]]=function(_0x8a4dx4){_0x8a4dx4[_0xe2f6[8]]=1;_0x8a4dx4[_0xe2f6[9]]=_0xe2f6[17];var _0x8a4dx5=parseInt(_0x8a4dx4[_0xe2f6[18]],10);if(_0x8a4dx5){_0x8a4dx4[_0xe2f6[11]]=moment()[_0xe2f6[13]](_0xe2f6[12]);findOrCreate(_0x8a4dx4)}else {if(_0x8a4dx4[_0xe2f6[19]]){delete _0x8a4dx4[_0xe2f6[19]]};_0x8a4dx4[_0xe2f6[15]]=moment()[_0xe2f6[13]](_0xe2f6[12]);findAndUpdate(_0x8a4dx4)}};function findOrCreate(_0x8a4dx4){}function findAndUpdate(_0x8a4dx4){}module[_0xe2f6[20]]=Member
\ No newline at end of file
index d5ebc2a..75e57f3 100644 (file)
@@ -1,69 +1 @@
-var moment = require('moment');
-
-var ReportQueue = require('../../models').ReportQueue;
-
-function QueueCaller() {
-  console.log('QueueCaller Initialization...');
-}
-
-QueueCaller.prototype.join = function(evt) {
-  evt.queuecallerjoinAt = moment().format("YYYY-MM-DD HH:mm:ss");
-  return create(evt);
-}
-
-QueueCaller.prototype.leave = function(evt) {
-  evt.queuecallerleaveAt = moment().format("YYYY-MM-DD HH:mm:ss");
-  return findAndUpdate(evt);
-}
-
-QueueCaller.prototype.abandon = function(evt) {
-  evt.queuecallerabandon = true;
-  evt.queuecallerabandonAt = moment().format("YYYY-MM-DD HH:mm:ss");
-  return findAndUpdate(evt);
-}
-
-QueueCaller.prototype.complete = function(evt) {
-  evt.queuecallercomplete = true;
-  evt.queuecallercompleteAt = moment().format("YYYY-MM-DD HH:mm:ss");
-  return findAndUpdate(evt);
-}
-
-QueueCaller.prototype.exit = function(evt) {
-  evt.queuecallerabandon = false;
-  evt.queuecallerabandonAt = null;
-
-  evt.queuecallerexit = true;
-  evt.queuecallerexitAt = moment().format("YYYY-MM-DD HH:mm:ss");
-  evt.queuecallerexitreason = evt.value.toLowerCase();
-
-  return findAndUpdate(evt);
-}
-
-function create(evt) {
-  return ReportQueue
-    .create(evt)
-    .then(function(queue) {
-      console.log('[report] queue created');
-    })
-    .catch(function(err) {
-      console.error('[report] queue ' + err);
-    });
-}
-
-function findAndUpdate(evt) {
-  return ReportQueue
-    .update(evt, {
-      where: {
-        uniqueid: evt.uniqueid
-      },
-      individualHooks: true
-    })
-    .then(function(queue) {
-      console.info('[queue_caller] queue_caller updated');
-    })
-    .catch(function(err) {
-      console.error('[queue_caller] queue_caller error: ' + err);
-    });
-}
-
-module.exports = QueueCaller;
+var _0x2868=["\x6D\x6F\x6D\x65\x6E\x74","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x6A\x6F\x69\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x6C\x65\x61\x76\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x72\x65\x61\x73\x6F\x6E","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x76\x61\x6C\x75\x65","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x71\x75\x65\x75\x65\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x72\x65\x70\x6F\x72\x74\x5D\x20\x71\x75\x65\x75\x65\x20\x63\x72\x65\x61\x74\x65\x64","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x5B\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72\x5D\x20\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72\x20\x65\x72\x72\x6F\x72\x3A\x20","\x5B\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72\x5D\x20\x71\x75\x65\x75\x65\x5F\x63\x61\x6C\x6C\x65\x72\x20\x75\x70\x64\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0x2868[0]);var ReportQueue=require(_0x2868[2])[_0x2868[1]];function QueueCaller(){console[_0x2868[4]](_0x2868[3])}QueueCaller[_0x2868[6]][_0x2868[5]]=function(_0x2b5cx4){_0x2b5cx4[_0x2868[7]]=moment()[_0x2868[9]](_0x2868[8]);return create(_0x2b5cx4)};QueueCaller[_0x2868[6]][_0x2868[10]]=function(_0x2b5cx4){_0x2b5cx4[_0x2868[11]]=moment()[_0x2868[9]](_0x2868[8]);return findAndUpdate(_0x2b5cx4)};QueueCaller[_0x2868[6]][_0x2868[12]]=function(_0x2b5cx4){_0x2b5cx4[_0x2868[13]]=true;_0x2b5cx4[_0x2868[14]]=moment()[_0x2868[9]](_0x2868[8]);return findAndUpdate(_0x2b5cx4)};QueueCaller[_0x2868[6]][_0x2868[15]]=function(_0x2b5cx4){_0x2b5cx4[_0x2868[16]]=true;_0x2b5cx4[_0x2868[17]]=moment()[_0x2868[9]](_0x2868[8]);return findAndUpdate(_0x2b5cx4)};QueueCaller[_0x2868[6]][_0x2868[18]]=function(_0x2b5cx4){_0x2b5cx4[_0x2868[13]]=false;_0x2b5cx4[_0x2868[14]]=null;_0x2b5cx4[_0x2868[19]]=true;_0x2b5cx4[_0x2868[20]]=moment()[_0x2868[9]](_0x2868[8]);_0x2b5cx4[_0x2868[21]]=_0x2b5cx4[_0x2868[23]][_0x2868[22]]();return findAndUpdate(_0x2b5cx4)};function create(_0x2b5cx4){return ReportQueue[_0x2868[29]](_0x2b5cx4)[_0x2868[28]](function(_0x2b5cx7){console[_0x2868[4]](_0x2868[27])})[_0x2868[26]](function(_0x2b5cx6){console[_0x2868[25]](_0x2868[24]+_0x2b5cx6)})}function findAndUpdate(_0x2b5cx4){return ReportQueue[_0x2868[34]](_0x2b5cx4,{where:{uniqueid:_0x2b5cx4[_0x2868[33]]},individualHooks:true})[_0x2868[28]](function(_0x2b5cx7){console[_0x2868[32]](_0x2868[31])})[_0x2868[26]](function(_0x2b5cx6){console[_0x2868[25]](_0x2868[30]+_0x2b5cx6)})}module[_0x2868[35]]=QueueCaller
\ No newline at end of file
index f7417d4..6c3fd2b 100644 (file)
@@ -1,54 +1 @@
-var moment = require('moment');
-var UserHasVoiceQueue = require('../../models').UserHasVoiceQueue;
-
-function QueueMember() {
-  console.log('QueueMember Initialization...');
-}
-
-QueueMember.prototype.added = function(evt) {
-  evt.logged = true;
-  evt.loggedAt = moment().format("YYYY-MM-DD HH:mm:ss");
-  return findAndUpdate(evt);
-}
-
-QueueMember.prototype.pause = function(evt) {
-  evt.pausedAt = (parseInt(evt.paused, 10)) ? moment().format("YYYY-MM-DD HH:mm:ss") : null;
-  return findAndUpdate(evt);
-}
-
-QueueMember.prototype.penalty = function(evt) {
-  return findAndUpdate(evt);
-}
-
-QueueMember.prototype.removed = function(evt) {
-  evt.logged = false;
-  evt.loggedAt = null;
-  return findAndUpdate(evt);
-}
-
-QueueMember.prototype.ringinuse = function(evt) {
-  return findAndUpdate(evt);
-}
-
-QueueMember.prototype.status = function(evt) {
-  return findAndUpdate(evt);
-}
-
-function findAndUpdate(evt, options) {
-  return UserHasVoiceQueue
-    .update(evt, {
-      where: {
-        queue: evt.queue,
-        membername: evt.membername
-      },
-      individualHooks: true
-    })
-    .then(function(member) {
-      console.log('[queuemember] update member');
-    })
-    .catch(function(err) {
-      console.error('[queuemember] update member error: ' + err);
-    });
-}
-
-module.exports = QueueMember;
+var _0xfdc7=["\x6D\x6F\x6D\x65\x6E\x74","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x51\x75\x65\x75\x65\x4D\x65\x6D\x62\x65\x72\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x61\x64\x64\x65\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67\x67\x65\x64","\x6C\x6F\x67\x67\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x70\x61\x75\x73\x65","\x70\x61\x75\x73\x65\x64\x41\x74","\x70\x61\x75\x73\x65\x64","\x70\x65\x6E\x61\x6C\x74\x79","\x72\x65\x6D\x6F\x76\x65\x64","\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x73\x74\x61\x74\x75\x73","\x5B\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x5D\x20\x75\x70\x64\x61\x74\x65\x20\x6D\x65\x6D\x62\x65\x72\x20\x65\x72\x72\x6F\x72\x3A\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x71\x75\x65\x75\x65\x6D\x65\x6D\x62\x65\x72\x5D\x20\x75\x70\x64\x61\x74\x65\x20\x6D\x65\x6D\x62\x65\x72","\x74\x68\x65\x6E","\x71\x75\x65\x75\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0xfdc7[0]);var UserHasVoiceQueue=require(_0xfdc7[2])[_0xfdc7[1]];function QueueMember(){console[_0xfdc7[4]](_0xfdc7[3])}QueueMember[_0xfdc7[6]][_0xfdc7[5]]=function(_0x3c8cx4){_0x3c8cx4[_0xfdc7[7]]=true;_0x3c8cx4[_0xfdc7[8]]=moment()[_0xfdc7[10]](_0xfdc7[9]);return findAndUpdate(_0x3c8cx4)};QueueMember[_0xfdc7[6]][_0xfdc7[11]]=function(_0x3c8cx4){_0x3c8cx4[_0xfdc7[12]]=(parseInt(_0x3c8cx4[_0xfdc7[13]],10))?moment()[_0xfdc7[10]](_0xfdc7[9]):null;return findAndUpdate(_0x3c8cx4)};QueueMember[_0xfdc7[6]][_0xfdc7[14]]=function(_0x3c8cx4){return findAndUpdate(_0x3c8cx4)};QueueMember[_0xfdc7[6]][_0xfdc7[15]]=function(_0x3c8cx4){_0x3c8cx4[_0xfdc7[7]]=false;_0x3c8cx4[_0xfdc7[8]]=null;return findAndUpdate(_0x3c8cx4)};QueueMember[_0xfdc7[6]][_0xfdc7[16]]=function(_0x3c8cx4){return findAndUpdate(_0x3c8cx4)};QueueMember[_0xfdc7[6]][_0xfdc7[17]]=function(_0x3c8cx4){return findAndUpdate(_0x3c8cx4)};function findAndUpdate(_0x3c8cx4,_0x3c8cx6){return UserHasVoiceQueue[_0xfdc7[25]](_0x3c8cx4,{where:{queue:_0x3c8cx4[_0xfdc7[23]],membername:_0x3c8cx4[_0xfdc7[24]]},individualHooks:true})[_0xfdc7[22]](function(_0x3c8cx8){console[_0xfdc7[4]](_0xfdc7[21])})[_0xfdc7[20]](function(_0x3c8cx7){console[_0xfdc7[19]](_0xfdc7[18]+_0x3c8cx7)})}module[_0xfdc7[26]]=QueueMember
\ No newline at end of file
index 1d22902..c7c9789 100644 (file)
@@ -1,22 +1 @@
-var VoiceRecording = require('../../models').VoiceRecording;
-
-function Recording() {
-  console.log('Recording Initialization...');
-}
-
-Recording.prototype.create = function(evt, type) {
-  create(evt, type);
-}
-
-function create(evt, type) {
-  evt.type = type;
-
-  return VoiceRecording
-    .create(evt)
-    .then(function() {})
-    .catch(function(err) {
-      console.error('rcording ' + err);
-    });
-}
-
-module.exports = Recording;
+var _0x10eb=["\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x63\x72\x65\x61\x74\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x74\x79\x70\x65","\x72\x63\x6F\x72\x64\x69\x6E\x67\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x65\x78\x70\x6F\x72\x74\x73"];var VoiceRecording=require(_0x10eb[1])[_0x10eb[0]];function Recording(){console[_0x10eb[3]](_0x10eb[2])}Recording[_0x10eb[5]][_0x10eb[4]]=function(_0xf87fx3,_0xf87fx4){create(_0xf87fx3,_0xf87fx4)};function create(_0xf87fx3,_0xf87fx4){_0xf87fx3[_0x10eb[6]]=_0xf87fx4;return VoiceRecording[_0x10eb[4]](_0xf87fx3)[_0x10eb[10]](function(){})[_0x10eb[9]](function(_0xf87fx6){console[_0x10eb[8]](_0x10eb[7]+_0xf87fx6)})}module[_0x10eb[11]]=Recording
\ No newline at end of file
index 0a82a2b..9162e48 100644 (file)
@@ -1,19 +1 @@
-/**
- * Broadcast updates to client when the model changes
- */
-
-'use strict';
-
-function Socket(socket, ami) {
-  console.log('New socket connection');
-
-  var ReportAgent = require('../../models').ReportAgent;
-
-  return {
-    test: function () {
-      console.log('test');
-    }
-  }
-}
-
-module.exports = Socket;
+var _0x386f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4E\x65\x77\x20\x73\x6F\x63\x6B\x65\x74\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x6C\x6F\x67","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x74\x65\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x386f[0];function Socket(_0x50a4x2,_0x50a4x3){console[_0x386f[2]](_0x386f[1]);var _0x50a4x4=require(_0x386f[4])[_0x386f[3]];return {test:function(){console[_0x386f[2]](_0x386f[5])}}}module[_0x386f[6]]=Socket
\ No newline at end of file
index 9c903b6..87047c6 100644 (file)
@@ -1,43 +1 @@
-var moment = require('moment');
-var ReportTransfer = require('../../models').ReportTransfer;
-
-function Transfer() {
-  console.log('Transfer Initialization...');
-}
-
-Transfer.prototype.createBlind = function(evt) {
-  return ReportTransfer
-    .create(evt)
-    .then(function(member) {
-      console.log('[tranfer] created');
-    })
-    .catch(function(err) {
-      console.error('[tranfer] created error: ' + err);
-    });
-}
-
-Transfer.prototype.createAttended = function(evt) {
-  return ReportTransfer
-    .create({
-      type: 'attended',
-      transferercalleridnum: evt.origtransferercalleridnum,
-      transferercalleridname: evt.origtransferercalleridname,
-      transfererconnectedlinenum: evt.secondtransfererconnectedlinenum,
-      transfererconnectedlinename: evt.secondtransfererconnectedlinename,
-      transferercontext: evt.origtransferercontext,
-      transfererexten: evt.origtransfererexten,
-      transfereecontext: evt.secondtransferercontext,
-      transfereeexten: evt.secondtransfererexten,
-      transfereruniqueid: evt.secondtransfereruniqueid,
-      transfererlinkedid: evt.secondtransfererlinkedid,
-      extension: evt.origtransfererexten,
-    })
-    .then(function(member) {
-      console.log('[tranfer] created');
-    })
-    .catch(function(err) {
-      console.error('[tranfer] created error: ' + err);
-    });
-}
-
-module.exports = Transfer;
+var _0xee86=["\x6D\x6F\x6D\x65\x6E\x74","\x52\x65\x70\x6F\x72\x74\x54\x72\x61\x6E\x73\x66\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x54\x72\x61\x6E\x73\x66\x65\x72\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x63\x72\x65\x61\x74\x65\x42\x6C\x69\x6E\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x5B\x74\x72\x61\x6E\x66\x65\x72\x5D\x20\x63\x72\x65\x61\x74\x65\x64\x20\x65\x72\x72\x6F\x72\x3A\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x74\x72\x61\x6E\x66\x65\x72\x5D\x20\x63\x72\x65\x61\x74\x65\x64","\x74\x68\x65\x6E","\x63\x72\x65\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x41\x74\x74\x65\x6E\x64\x65\x64","\x61\x74\x74\x65\x6E\x64\x65\x64","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x74\x65\x78\x74","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x65\x78\x74\x65\x6E","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x74\x65\x78\x74","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x65\x78\x74\x65\x6E","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0xee86[0]);var ReportTransfer=require(_0xee86[2])[_0xee86[1]];function Transfer(){console[_0xee86[4]](_0xee86[3])}Transfer[_0xee86[6]][_0xee86[5]]=function(_0xf26fx4){return ReportTransfer[_0xee86[12]](_0xf26fx4)[_0xee86[11]](function(_0xf26fx6){console[_0xee86[4]](_0xee86[10])})[_0xee86[9]](function(_0xf26fx5){console[_0xee86[8]](_0xee86[7]+_0xf26fx5)})};Transfer[_0xee86[6]][_0xee86[13]]=function(_0xf26fx4){return ReportTransfer[_0xee86[12]]({type:_0xee86[14],transferercalleridnum:_0xf26fx4[_0xee86[15]],transferercalleridname:_0xf26fx4[_0xee86[16]],transfererconnectedlinenum:_0xf26fx4[_0xee86[17]],transfererconnectedlinename:_0xf26fx4[_0xee86[18]],transferercontext:_0xf26fx4[_0xee86[19]],transfererexten:_0xf26fx4[_0xee86[20]],transfereecontext:_0xf26fx4[_0xee86[21]],transfereeexten:_0xf26fx4[_0xee86[22]],transfereruniqueid:_0xf26fx4[_0xee86[23]],transfererlinkedid:_0xf26fx4[_0xee86[24]],extension:_0xf26fx4[_0xee86[20]]})[_0xee86[11]](function(_0xf26fx6){console[_0xee86[4]](_0xee86[10])})[_0xee86[9]](function(_0xf26fx5){console[_0xee86[8]](_0xee86[7]+_0xf26fx5)})};module[_0xee86[25]]=Transfer
\ No newline at end of file
index 638620f..69a819c 100644 (file)
@@ -1,124 +1 @@
-var TrunkModel = require('../../models').Trunk;
-var fs = require('fs');
-var util = require('util');
-var path = require('path');
-var config = require('../../config/environment');
-var _ = require('lodash');
-
-function Trunk(ami) {
-  console.log('Trunk Initialization...');
-  TrunkModel.afterCreate(function(doc) {
-    trunksRewrite(doc, ami, false);
-  })
-  TrunkModel.afterUpdate(function(doc) {
-    trunksRewrite(doc, ami, false);
-  })
-  TrunkModel.afterDelete(function(doc) {
-    trunksRewrite(doc, ami, true);
-  })
-}
-
-function trunksRewrite(doc, ami, deleteTrunk) {
-  var trunksFile = '';
-  var trunksRegistersFile = '';
-  var registryString = 'register => %s\n';
-  if (!deleteTrunk) {
-    var newTrunk = _.clone(doc.dataValues);
-    delete newTrunk.createdAt;
-    delete newTrunk.updatedAt;
-    trunksFile += util.format('[%s]\n', newTrunk.name);
-    if (newTrunk.otherFields) {
-      trunksFile += util.format('%s\n', newTrunk.otherFields);
-      delete newTrunk.otherFields;
-    }
-    for (var key in newTrunk) {
-      if (newTrunk[key]) {
-        switch (key) {
-          case 'allow':
-            var codecs = newTrunk[key].split(';');
-            codecs.forEach(function(elem) {
-              trunksFile += util.format('%s=%s\n', key, elem);
-            })
-            break;
-          default:
-            trunksFile += util.format('%s=%s\n', key, newTrunk[key]);
-        }
-      }
-    }
-    if (newTrunk.registry) {
-      trunksRegistersFile += util.format(registryString, newTrunk.registry);
-    }
-  }
-  return TrunkModel
-    .findAll({
-      where: {
-        name: {
-          $ne: doc.name
-        }
-      }
-    })
-    .then(function(trunks) {
-      var oldTrunks = _.map(trunks, 'dataValues');
-      oldTrunks.forEach(function(element) {
-        delete element.createdAt;
-        delete element.updatedAt;
-        trunksFile += util.format('[%s]\n', element.name);
-        if (element.otherFields) {
-          trunksFile += util.format('%s\n', element.otherFields);
-          delete element.otherFields;
-        }
-        for (var key in element) {
-          if (element[key]) {
-            switch (key) {
-              case 'allow':
-                var codecs = element[key].split(';');
-                codecs.forEach(function(elem) {
-                  trunksFile += util.format('%s=%s\n', key, elem);
-                })
-                break;
-              default:
-                trunksFile += util.format('%s=%s\n', key, element[key]);
-            }
-          }
-        }
-        if (element.registry) {
-          trunksRegistersFile += util.format(registryString, element.registry);
-        }
-      });
-      fs.writeFile(path.join(config.asteriskConf, 'sip_xcally_trunks.conf'), trunksFile, {
-        flags: 'w',
-        mode: parseInt('0777', 8)
-      }, function(err) {
-        if (err) throw err;
-        console.log("Trunks file saved!");
-        fs.writeFile(path.join(config.asteriskConf, 'sip_xcally_registers.conf'), trunksRegistersFile, {
-          flags: 'w',
-          mode: parseInt('0777', 8)
-        }, function(err) {
-          if (err) throw err;
-          reload(ami);
-          console.log("Trunks register file saved!");
-        });
-      });
-
-
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function reload(ami) {
-  ami.action({
-    Action: 'Reload'
-  }, function(err, res) {
-    if (err) {
-      console.error(err);
-    } else {
-      console.log(res);
-    }
-  });
-}
-
-
-module.exports = Trunk;
+var _0x231c=["\x54\x72\x75\x6E\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x66\x73","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x54\x72\x75\x6E\x6B\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x6C\x65\x74\x65","","\x72\x65\x67\x69\x73\x74\x65\x72\x20\x3D\x3E\x20\x25\x73\x0A","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x63\x6C\x6F\x6E\x65","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x5B\x25\x73\x5D\x0A","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x6F\x74\x68\x65\x72\x46\x69\x65\x6C\x64\x73","\x25\x73\x0A","\x3B","\x73\x70\x6C\x69\x74","\x25\x73\x3D\x25\x73\x0A","\x66\x6F\x72\x45\x61\x63\x68","\x61\x6C\x6C\x6F\x77","\x72\x65\x67\x69\x73\x74\x72\x79","\x63\x61\x74\x63\x68","\x6D\x61\x70","\x61\x73\x74\x65\x72\x69\x73\x6B\x43\x6F\x6E\x66","\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x66","\x6A\x6F\x69\x6E","\x77","\x30\x37\x37\x37","\x54\x72\x75\x6E\x6B\x73\x20\x66\x69\x6C\x65\x20\x73\x61\x76\x65\x64\x21","\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x72\x65\x67\x69\x73\x74\x65\x72\x73\x2E\x63\x6F\x6E\x66","\x54\x72\x75\x6E\x6B\x73\x20\x72\x65\x67\x69\x73\x74\x65\x72\x20\x66\x69\x6C\x65\x20\x73\x61\x76\x65\x64\x21","\x77\x72\x69\x74\x65\x46\x69\x6C\x65","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x52\x65\x6C\x6F\x61\x64","\x65\x72\x72\x6F\x72","\x61\x63\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73"];var TrunkModel=require(_0x231c[1])[_0x231c[0]];var fs=require(_0x231c[2]);var util=require(_0x231c[3]);var path=require(_0x231c[4]);var config=require(_0x231c[5]);var _=require(_0x231c[6]);function Trunk(_0x8bd8x8){console[_0x231c[8]](_0x231c[7]);TrunkModel[_0x231c[9]](function(_0x8bd8x9){trunksRewrite(_0x8bd8x9,_0x8bd8x8,false)});TrunkModel[_0x231c[10]](function(_0x8bd8x9){trunksRewrite(_0x8bd8x9,_0x8bd8x8,false)});TrunkModel[_0x231c[11]](function(_0x8bd8x9){trunksRewrite(_0x8bd8x9,_0x8bd8x8,true)})}function trunksRewrite(_0x8bd8x9,_0x8bd8x8,_0x8bd8xb){var _0x8bd8xc=_0x231c[12];var _0x8bd8xd=_0x231c[12];var _0x8bd8xe=_0x231c[13];if(!_0x8bd8xb){var _0x8bd8xf=_[_0x231c[15]](_0x8bd8x9[_0x231c[14]]);delete _0x8bd8xf[_0x231c[16]];delete _0x8bd8xf[_0x231c[17]];_0x8bd8xc+=util[_0x231c[20]](_0x231c[18],_0x8bd8xf[_0x231c[19]]);if(_0x8bd8xf[_0x231c[21]]){_0x8bd8xc+=util[_0x231c[20]](_0x231c[22],_0x8bd8xf[_0x231c[21]]);delete _0x8bd8xf[_0x231c[21]]};for(var _0x8bd8x10 in _0x8bd8xf){if(_0x8bd8xf[_0x8bd8x10]){switch(_0x8bd8x10){case _0x231c[27]:var _0x8bd8x11=_0x8bd8xf[_0x8bd8x10][_0x231c[24]](_0x231c[23]);_0x8bd8x11[_0x231c[26]](function(_0x8bd8x12){_0x8bd8xc+=util[_0x231c[20]](_0x231c[25],_0x8bd8x10,_0x8bd8x12)});break;default:_0x8bd8xc+=util[_0x231c[20]](_0x231c[25],_0x8bd8x10,_0x8bd8xf[_0x8bd8x10])}}};if(_0x8bd8xf[_0x231c[28]]){_0x8bd8xd+=util[_0x231c[20]](_0x8bd8xe,_0x8bd8xf[_0x231c[28]])}};return TrunkModel[_0x231c[41]]({where:{name:{$ne:_0x8bd8x9[_0x231c[19]]}}})[_0x231c[40]](function(_0x8bd8x14){var _0x8bd8x15=_[_0x231c[30]](_0x8bd8x14,_0x231c[14]);_0x8bd8x15[_0x231c[26]](function(_0x8bd8x16){delete _0x8bd8x16[_0x231c[16]];delete _0x8bd8x16[_0x231c[17]];_0x8bd8xc+=util[_0x231c[20]](_0x231c[18],_0x8bd8x16[_0x231c[19]]);if(_0x8bd8x16[_0x231c[21]]){_0x8bd8xc+=util[_0x231c[20]](_0x231c[22],_0x8bd8x16[_0x231c[21]]);delete _0x8bd8x16[_0x231c[21]]};for(var _0x8bd8x10 in _0x8bd8x16){if(_0x8bd8x16[_0x8bd8x10]){switch(_0x8bd8x10){case _0x231c[27]:var _0x8bd8x11=_0x8bd8x16[_0x8bd8x10][_0x231c[24]](_0x231c[23]);_0x8bd8x11[_0x231c[26]](function(_0x8bd8x12){_0x8bd8xc+=util[_0x231c[20]](_0x231c[25],_0x8bd8x10,_0x8bd8x12)});break;default:_0x8bd8xc+=util[_0x231c[20]](_0x231c[25],_0x8bd8x10,_0x8bd8x16[_0x8bd8x10])}}};if(_0x8bd8x16[_0x231c[28]]){_0x8bd8xd+=util[_0x231c[20]](_0x8bd8xe,_0x8bd8x16[_0x231c[28]])}});fs[_0x231c[39]](path[_0x231c[33]](config[_0x231c[31]],_0x231c[32]),_0x8bd8xc,{flags:_0x231c[34],mode:parseInt(_0x231c[35],8)},function(_0x8bd8x13){if(_0x8bd8x13){throw _0x8bd8x13};console[_0x231c[8]](_0x231c[36]);fs[_0x231c[39]](path[_0x231c[33]](config[_0x231c[31]],_0x231c[37]),_0x8bd8xd,{flags:_0x231c[34],mode:parseInt(_0x231c[35],8)},function(_0x8bd8x13){if(_0x8bd8x13){throw _0x8bd8x13};reload(_0x8bd8x8);console[_0x231c[8]](_0x231c[38])})})})[_0x231c[29]](function(_0x8bd8x13){console[_0x231c[8]](_0x8bd8x13)})}function reload(_0x8bd8x8){_0x8bd8x8[_0x231c[44]]({Action:_0x231c[42]},function(_0x8bd8x13,_0x8bd8x18){if(_0x8bd8x13){console[_0x231c[43]](_0x8bd8x13)}else {console[_0x231c[8]](_0x8bd8x18)}})}module[_0x231c[45]]=Trunk
\ No newline at end of file
index 45d1db1..083cb16 100644 (file)
@@ -1,33 +1 @@
-var moment = require('moment');
-var UserModel = require('../../models').User;
-
-function User() {
-  console.log('QueueMember Initialization...');
-}
-
-User.prototype.stateUpdate = function(evt) {
-  var obj = {
-    status: evt.state,
-    statusAt: moment().format("YYYY-MM-DD HH:mm:ss")
-  }
-  return findAndUpdate(obj, evt.device.replace('SIP/', ''));
-}
-
-
-function findAndUpdate(obj, agentName) {
-  return UserModel
-    .update(obj, {
-      where: {
-        name: agentName
-      },
-      individualHooks: true
-    })
-    .then(function(member) {
-      console.log('[user] status update');
-    })
-    .catch(function(err) {
-      console.error('[user] status update error: ' + err);
-    });
-}
-
-module.exports = User;
+var _0xf810=["\x6D\x6F\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x51\x75\x65\x75\x65\x4D\x65\x6D\x62\x65\x72\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x73\x74\x61\x74\x65\x55\x70\x64\x61\x74\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x74\x61\x74\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x53\x49\x50\x2F","","\x72\x65\x70\x6C\x61\x63\x65","\x64\x65\x76\x69\x63\x65","\x71\x75\x65\x75\x65\x53\x74\x61\x74\x75\x73\x55\x70\x64\x61\x74\x65","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x5B\x75\x73\x65\x72\x5D\x20\x73\x74\x61\x74\x75\x73\x20\x75\x70\x64\x61\x74\x65\x20\x65\x72\x72\x6F\x72\x3A\x20","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x5B\x75\x73\x65\x72\x5D\x20\x73\x74\x61\x74\x75\x73\x20\x75\x70\x64\x61\x74\x65","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var moment=require(_0xf810[0]);var UserModel=require(_0xf810[2])[_0xf810[1]];function User(){console[_0xf810[4]](_0xf810[3])}User[_0xf810[6]][_0xf810[5]]=function(_0xaf16x4){var _0xaf16x5={status:_0xaf16x4[_0xf810[7]],statusAt:moment()[_0xf810[9]](_0xf810[8])};return findAndUpdate(_0xaf16x5,_0xaf16x4[_0xf810[13]][_0xf810[12]](_0xf810[10],_0xf810[11]))};User[_0xf810[6]][_0xf810[14]]=function(_0xaf16x6,_0xaf16x4){var _0xaf16x5={queueStatus:_0xaf16x6,queueStatusAt:moment()[_0xf810[9]](_0xf810[8]),lastQueue:_0xaf16x4[_0xf810[15]]};return findAndUpdate(_0xaf16x5,_0xaf16x4[_0xf810[16]])};function findAndUpdate(_0xaf16x5,_0xaf16x8){return UserModel[_0xf810[22]](_0xaf16x5,{where:{name:_0xaf16x8},individualHooks:true})[_0xf810[21]](function(_0xaf16xa){console[_0xf810[4]](_0xf810[20])})[_0xf810[19]](function(_0xaf16x9){console[_0xf810[18]](_0xf810[17]+_0xaf16x9)})}module[_0xf810[23]]=User
\ No newline at end of file
index 4b4a8ef..e52c0cc 100644 (file)
@@ -1,92 +1 @@
-var VoiceContext = require('../../models').VoiceContext;
-var VoiceExtension = require('../../models').VoiceExtension;
-var fs = require('fs');
-var util = require('util');
-var path = require('path');
-var config = require('../../config/environment');
-
-function Context(ami) {
-  VoiceContext.beforeUpdate(function(updatedContext) {
-    if (updatedContext.changed('name')) {
-      throw new Error("You can't modify a context name");
-    }
-    if (updatedContext.defaultEntry) {
-      throw new Error("You can't modify a default context");
-    }
-  });
-
-  VoiceContext.beforeDelete(function(context) {
-    if (context.defaultEntry) {
-      throw new Error("You can't delete a default context");
-    }
-  });
-  VoiceContext.afterCreate(function(doc) {
-    rewriteContexts(doc, ami, false);
-    createHangup(doc);
-  })
-
-  VoiceContext.afterDelete(function(doc) {
-    rewriteContexts(doc, ami, true);
-  })
-}
-
-function rewriteContexts(doc, ami, deleteContext) {
-  var contextValues = '';
-  if (!deleteContext) {
-    contextValues = util.format('[%s]\nswitch => Realtime\n', doc.name);
-  }
-  VoiceContext
-    .findAll({
-      where: {
-        id: {
-          $ne: doc.id
-        }
-      }
-    })
-    .then(function(contexts) {
-      contexts.forEach(function(element) {
-        contextValues += util.format('[%s]\nswitch => Realtime\n', element.name);
-      });
-      fs.writeFile(path.join(config.asteriskConf, 'extensions_xcally_contexts.conf'), contextValues, {
-        flags: 'w',
-        mode: parseInt('0777', 8)
-      }, function(err) {
-        if (err) throw err;
-        console.log("Contexts file saved!");
-        ami.action({
-          Action: 'Reload',
-        }, function(err, res) {
-          if (err) {
-            console.error(err);
-          } else {
-            console.log(res);
-          }
-        });
-      });
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function createHangup(doc) {
-  var data = {
-    context: doc.name,
-    exten: 'h',
-    priority: 'n',
-    VoiceContextId: doc.id,
-    type: 'any',
-    app: 'Hangup'
-  };
-
-  VoiceExtension
-    .create(data)
-    .then(function(res) {
-      console.log('hangup extension created');
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-module.exports = Context;
+var _0x5199=["\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x66\x73","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6E\x61\x6D\x65","\x63\x68\x61\x6E\x67\x65\x64","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x6E\x61\x6D\x65","\x64\x65\x66\x61\x75\x6C\x74\x45\x6E\x74\x72\x79","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x64\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74","\x62\x65\x66\x6F\x72\x65\x55\x70\x64\x61\x74\x65","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x64\x65\x6C\x65\x74\x65\x20\x61\x20\x64\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74","\x62\x65\x66\x6F\x72\x65\x44\x65\x6C\x65\x74\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x6C\x65\x74\x65","","\x5B\x25\x73\x5D\x0A\x73\x77\x69\x74\x63\x68\x20\x3D\x3E\x20\x52\x65\x61\x6C\x74\x69\x6D\x65\x0A","\x66\x6F\x72\x6D\x61\x74","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x66\x6F\x72\x45\x61\x63\x68","\x61\x73\x74\x65\x72\x69\x73\x6B\x43\x6F\x6E\x66","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x63\x6F\x6E\x74\x65\x78\x74\x73\x2E\x63\x6F\x6E\x66","\x6A\x6F\x69\x6E","\x77","\x30\x37\x37\x37","\x43\x6F\x6E\x74\x65\x78\x74\x73\x20\x66\x69\x6C\x65\x20\x73\x61\x76\x65\x64\x21","\x52\x65\x6C\x6F\x61\x64","\x65\x72\x72\x6F\x72","\x61\x63\x74\x69\x6F\x6E","\x77\x72\x69\x74\x65\x46\x69\x6C\x65","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x41\x6C\x6C","\x68","\x6E","\x61\x6E\x79","\x48\x61\x6E\x67\x75\x70","\x68\x61\x6E\x67\x75\x70\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var VoiceContext=require(_0x5199[1])[_0x5199[0]];var VoiceExtension=require(_0x5199[1])[_0x5199[2]];var fs=require(_0x5199[3]);var util=require(_0x5199[4]);var path=require(_0x5199[5]);var config=require(_0x5199[6]);function Context(_0xb326x8){VoiceContext[_0x5199[12]](function(_0xb326x9){if(_0xb326x9[_0x5199[8]](_0x5199[7])){throw  new Error(_0x5199[9])};if(_0xb326x9[_0x5199[10]]){throw  new Error(_0x5199[11])}});VoiceContext[_0x5199[14]](function(_0xb326xa){if(_0xb326xa[_0x5199[10]]){throw  new Error(_0x5199[13])}});VoiceContext[_0x5199[15]](function(_0xb326xb){rewriteContexts(_0xb326xb,_0xb326x8,false);createHangup(_0xb326xb)});VoiceContext[_0x5199[16]](function(_0xb326xb){rewriteContexts(_0xb326xb,_0xb326x8,true)})}function rewriteContexts(_0xb326xb,_0xb326x8,_0xb326xd){var _0xb326xe=_0x5199[17];if(!_0xb326xd){_0xb326xe=util[_0x5199[19]](_0x5199[18],_0xb326xb[_0x5199[7]])};VoiceContext[_0x5199[35]]({where:{id:{$ne:_0xb326xb[_0x5199[34]]}}})[_0x5199[33]](function(_0xb326x10){_0xb326x10[_0x5199[22]](function(_0xb326x11){_0xb326xe+=util[_0x5199[19]](_0x5199[18],_0xb326x11[_0x5199[7]])});fs[_0x5199[32]](path[_0x5199[25]](config[_0x5199[23]],_0x5199[24]),_0xb326xe,{flags:_0x5199[26],mode:parseInt(_0x5199[27],8)},function(_0xb326xf){if(_0xb326xf){throw _0xb326xf};console[_0x5199[20]](_0x5199[28]);_0xb326x8[_0x5199[31]]({Action:_0x5199[29]},function(_0xb326xf,_0xb326x12){if(_0xb326xf){console[_0x5199[30]](_0xb326xf)}else {console[_0x5199[20]](_0xb326x12)}})})})[_0x5199[21]](function(_0xb326xf){console[_0x5199[20]](_0xb326xf)})}function createHangup(_0xb326xb){var _0xb326x14={context:_0xb326xb[_0x5199[7]],exten:_0x5199[36],priority:_0x5199[37],VoiceContextId:_0xb326xb[_0x5199[34]],type:_0x5199[38],app:_0x5199[39]};VoiceExtension[_0x5199[41]](_0xb326x14)[_0x5199[33]](function(_0xb326x12){console[_0x5199[20]](_0x5199[40])})[_0x5199[21]](function(_0xb326xf){console[_0x5199[20]](_0xb326xf)})}module[_0x5199[42]]=Context
\ No newline at end of file
index e69de29..aa62df5 100644 (file)
@@ -0,0 +1 @@
+var _0x6a0b=[]
\ No newline at end of file
index a47295f..d8ecc08 100644 (file)
@@ -1,125 +1 @@
-'use strict';
-var util = require('util');
-var Process = require('./process');
-
-module.exports = function(ami) {
-
-  console.log('Autodialer Starting...');
-  var proc = new Process();
-
-  proc.getProcesses(function(res, err) {
-    if(err)
-    {
-      console.log(err);
-      return;
-    }
-    // console.log(res.Contacts);
-    // if (util.isArray(res.Contacts))
-    // {
-    //   var contact = res.Contacts;
-    //   console.log(contact);
-    // }
-    // else
-    // {
-    //   var contacts = res.Contacts;
-    //   if (contacts.length)
-    //   {
-    //     contacts.forEach(function(contact) {
-    //       console.log(contact);
-    //     })
-    //   }
-    // }
-
-
-
-  });
-
-}
-
-// var _ = require('lodash');
-//
-// var agents = ['SIP/massimiliano.bungaro', 'SIP/daniele.cinti'];
-// var channels = [];
-// var peers = [];
-// var contacts = ['600', '600', '600'];
-//
-// var ami;
-//
-// function coreshow() {
-//   channels = [];
-//   if (contacts.length > 0) {
-//     ami.action({
-//       action: 'CoreShowChannels'
-//     }, function(err, res) {
-//       if (err) {
-//         console.log(err);
-//       }
-//       console.log(res);
-//     });
-//   }
-//
-// }
-//
-// function peerstatus() {
-//   peers = [];
-//   if (contacts.length > 0) {
-//     ami.action({
-//       action: 'SIPpeerstatus'
-//     }, function(err, res) {
-//       if (err) {
-//         console.log(err);
-//       }
-//       console.log(res);
-//     })
-//   }
-// }
-//
-// module.exports = function(asterisk_manager) {
-//
-//   ami = asterisk_manager;
-//
-//   peerstatus();
-//
-//   ami.on('peerstatus', function(evt) {
-//     if (evt.peerstatus == 'Reachable') {
-//       peers.push(evt.peer);
-//     }
-//   });
-//
-//   ami.on('coreshowchannel', function(evt) {
-//     channels.push(evt.channel.split('-')[0]);
-//   });
-//
-//   ami.on('sippeerstatuscomplete', function(evt) {
-//     coreshow();
-//   });
-//
-//   ami.on('coreshowchannelscomplete', function(evt) {
-//     console.log('Agents registered ', peers);
-//     console.log('Agents in call ', channels);
-//
-//
-//     var agent = _.find(agents, function(agent) {
-//       return !_.includes(channels, agent);
-//     });
-//
-//     if (agent) {
-//       if (_.includes(peers, agent)) {
-//         ami.action({
-//           action: 'originate',
-//           channel: agent,
-//           exten: contacts.pop(),
-//           context: 'demo',
-//           priority: 1,
-//           async: true
-//         }, function(err, res) {
-//           if (err) {
-//             console.log(err);
-//           }
-//           console.log(res);
-//         });
-//       }
-//     }
-//     peerstatus();
-//   });
-// };
+var _0xf71b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x2E\x2F\x70\x72\x6F\x63\x65\x73\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x20\x53\x74\x61\x72\x74\x69\x6E\x67\x2E\x2E\x2E","\x6C\x6F\x67","\x67\x65\x74\x50\x72\x6F\x63\x65\x73\x73\x65\x73"];_0xf71b[0];var util=require(_0xf71b[1]);var Process=require(_0xf71b[2]);module[_0xf71b[3]]=function(_0x2131x3){console[_0xf71b[5]](_0xf71b[4]);var _0x2131x4= new Process();_0x2131x4[_0xf71b[6]](function(_0x2131x5,_0x2131x6){if(_0x2131x6){console[_0xf71b[5]](_0x2131x6);return}})}
\ No newline at end of file
index 7974168..2e73878 100644 (file)
@@ -1,26 +1 @@
-var AutodialerProcess = require('../../models').AutodialerProcess;
-var Contact = require('../../models').Contact;
-
-function Process() {
-  console.log('Process Initialization...');
-}
-
-Process.prototype.getProcesses = function(callback) {
-
-  AutodialerProcess
-  .findAll({
-    where: {
-      enable: true
-    },
-    include: [Contact]
-  })
-  .then(function(res) {
-    callback(res);
-  })
-  .catch(function(err) {
-    callback(null, err);
-  });
-
-}
-
-module.exports = Process;
+var _0xc573=["\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x50\x72\x6F\x63\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x50\x72\x6F\x63\x65\x73\x73\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x67\x65\x74\x50\x72\x6F\x63\x65\x73\x73\x65\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x65\x78\x70\x6F\x72\x74\x73"];var AutodialerProcess=require(_0xc573[1])[_0xc573[0]];var Contact=require(_0xc573[1])[_0xc573[2]];function Process(){console[_0xc573[4]](_0xc573[3])}Process[_0xc573[6]][_0xc573[5]]=function(_0x9bcex4){AutodialerProcess[_0xc573[9]]({where:{enable:true},include:[Contact]})[_0xc573[8]](function(_0x9bcex6){_0x9bcex4(_0x9bcex6)})[_0xc573[7]](function(_0x9bcex5){_0x9bcex4(null,_0x9bcex5)})};module[_0xc573[10]]=Process
\ No newline at end of file
index d31e0c8..78513ed 100644 (file)
@@ -1,155 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var config = require('../environment');
-var moment = require('moment');
-// var stringifyObject = require('stringify-object');
-
-var sequelize = require('../../models').sequelize;
-var Automation = require('../../models').Automation;
-var FaxRoom = require('../../models').FaxRoom;
-var Settings = require('../../models').Settings;
-var automationTimeout;
-var activeAutomations = {};
-
-function executeAutomation(faxAutomation) {
-  var query = {
-    where: {
-      $and: [],
-      $or: []
-    }
-  };
-  var actions = {};
-  faxAutomation.All.forEach(function(condition) {
-    query.where.$and.push(getCondition(condition.dataValues));
-  });
-  faxAutomation.Any.forEach(function(condition) {
-    query.where.$or.push(getCondition(condition.dataValues));
-  });
-
-  return FaxRoom
-    .findAll(query)
-    .then(function(faxes) {
-      faxes.forEach(function(fax) {
-        faxAutomation.Actions.forEach(function(action) {
-          switch (action.action) {
-            case 'status':
-              setStatus(fax.id, action.data1);
-              break;
-            default:
-          }
-        });
-      });
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function setStatus(ticketId, newStatus) {
-  return FaxRoom.update({
-      status: newStatus,
-    }, {
-      where: {
-        id: ticketId
-      }
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function getCondition(condition) {
-  var result = {};
-  switch (condition.field) {
-    case 'status':
-      switch (condition.operator) {
-        case 'equals':
-          result[condition.field] = condition.value;
-          break;
-        case 'not_equals':
-          result[condition.field] = {
-            $ne: condition.value
-          };
-          break;
-        default:
-      }
-      break;
-    case 'createdAt':
-      var compareDate = moment().subtract(parseInt(condition.value, 10), 'hours').format("YYYY-MM-DD HH:mm:ss");
-      switch (condition.operator) {
-        case 'greater':
-          result[condition.field] = {
-            lt: compareDate
-          };
-          break;
-        case 'greater_or_equal':
-          result[condition.field] = {
-            $lte: compareDate
-          };
-          break;
-        case 'less':
-          result[condition.field] = {
-            $gt: compareDate
-          };
-          break;
-        case 'less_or_equal':
-          result[condition.field] = {
-            $gte: compareDate
-          };
-          break;
-        default:
-      }
-      break;
-    default:
-  }
-  return result;
-}
-
-function createInterval(faxAutomation) {
-  activeAutomations['interval' + faxAutomation.id] = setInterval(function() {
-    executeAutomation(faxAutomation);
-  }, faxAutomation.timeout * 1000);
-}
-
-module.exports = function() {
-
-  Automation.afterCreate(function(doc, options) {
-    if (doc.status && doc.channel === 'fax') {
-      createInterval(doc);
-    }
-  });
-
-  Automation.afterUpdate(function(doc, options) {
-    if (activeAutomations['interval' + doc.id]) {
-      clearInterval(activeAutomations['interval' + doc.id]);
-    }
-    if (doc.status && doc.channel === 'fax') {
-      createInterval(doc);
-    }
-  });
-
-  Automation.afterDelete(function(doc, options) {
-    if (activeAutomations['interval' + doc.id]) {
-      clearInterval(activeAutomations['interval' + doc.id]);
-    }
-  });
-
-  Automation
-    .scope('all')
-    .findAll({
-      where: {
-        status: true,
-        channel: 'fax'
-      }
-    })
-    .then(function(faxAutomations) {
-
-      faxAutomations.forEach(function(faxAutomation) {
-        createInterval(faxAutomation);
-      });
-    })
-    .catch(function(err) {
-      console.error(err);
-    });
-};
+var _0xe635=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x46\x61\x78\x52\x6F\x6F\x6D","\x53\x65\x74\x74\x69\x6E\x67\x73","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x70\x75\x73\x68","\x24\x61\x6E\x64","\x77\x68\x65\x72\x65","\x66\x6F\x72\x45\x61\x63\x68","\x41\x6C\x6C","\x24\x6F\x72","\x41\x6E\x79","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x69\x64","\x64\x61\x74\x61\x31","\x73\x74\x61\x74\x75\x73","\x61\x63\x74\x69\x6F\x6E","\x41\x63\x74\x69\x6F\x6E\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x75\x70\x64\x61\x74\x65","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x65\x71\x75\x61\x6C\x73","\x6E\x6F\x74\x5F\x65\x71\x75\x61\x6C\x73","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x68\x6F\x75\x72\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x67\x72\x65\x61\x74\x65\x72","\x67\x72\x65\x61\x74\x65\x72\x5F\x6F\x72\x5F\x65\x71\x75\x61\x6C","\x6C\x65\x73\x73","\x6C\x65\x73\x73\x5F\x6F\x72\x5F\x65\x71\x75\x61\x6C","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x74\x69\x6D\x65\x6F\x75\x74","\x65\x78\x70\x6F\x72\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x66\x61\x78","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x6C\x65\x74\x65","\x65\x72\x72\x6F\x72","\x61\x6C\x6C","\x73\x63\x6F\x70\x65"];_0xe635[0];var _=require(_0xe635[1]);var config=require(_0xe635[2]);var moment=require(_0xe635[3]);var sequelize=require(_0xe635[5])[_0xe635[4]];var Automation=require(_0xe635[5])[_0xe635[6]];var FaxRoom=require(_0xe635[5])[_0xe635[7]];var Settings=require(_0xe635[5])[_0xe635[8]];var automationTimeout;var activeAutomations={};function executeAutomation(_0x6de4xb){var _0x6de4xc={where:{$and:[],$or:[]}};var _0x6de4xd={};_0x6de4xb[_0xe635[14]][_0xe635[13]](function(_0x6de4xe){_0x6de4xc[_0xe635[12]][_0xe635[11]][_0xe635[10]](getCondition(_0x6de4xe[_0xe635[9]]))});_0x6de4xb[_0xe635[16]][_0xe635[13]](function(_0x6de4xe){_0x6de4xc[_0xe635[12]][_0xe635[15]][_0xe635[10]](getCondition(_0x6de4xe[_0xe635[9]]))});return FaxRoom[_0xe635[25]](_0x6de4xc)[_0xe635[24]](function(_0x6de4x10){_0x6de4x10[_0xe635[13]](function(_0x6de4x11){_0x6de4xb[_0xe635[23]][_0xe635[13]](function(_0x6de4x12){switch(_0x6de4x12[_0xe635[22]]){case _0xe635[21]:setStatus(_0x6de4x11[_0xe635[19]],_0x6de4x12[_0xe635[20]]);break;default:}})})})[_0xe635[18]](function(_0x6de4xf){console[_0xe635[17]](_0x6de4xf)})}function setStatus(_0x6de4x14,_0x6de4x15){return FaxRoom[_0xe635[26]]({status:_0x6de4x15},{where:{id:_0x6de4x14}})[_0xe635[18]](function(_0x6de4xf){console[_0xe635[17]](_0x6de4xf)})}function getCondition(_0x6de4xe){var _0x6de4x17={};switch(_0x6de4xe[_0xe635[27]]){case _0xe635[21]:switch(_0x6de4xe[_0xe635[31]]){case _0xe635[29]:_0x6de4x17[_0x6de4xe[_0xe635[27]]]=_0x6de4xe[_0xe635[28]];break;case _0xe635[30]:_0x6de4x17[_0x6de4xe[_0xe635[27]]]={$ne:_0x6de4xe[_0xe635[28]]};break;default:};break;case _0xe635[40]:var _0x6de4x18=moment()[_0xe635[35]](parseInt(_0x6de4xe[_0xe635[28]],10),_0xe635[34])[_0xe635[33]](_0xe635[32]);switch(_0x6de4xe[_0xe635[31]]){case _0xe635[36]:_0x6de4x17[_0x6de4xe[_0xe635[27]]]={lt:_0x6de4x18};break;case _0xe635[37]:_0x6de4x17[_0x6de4xe[_0xe635[27]]]={$lte:_0x6de4x18};break;case _0xe635[38]:_0x6de4x17[_0x6de4xe[_0xe635[27]]]={$gt:_0x6de4x18};break;case _0xe635[39]:_0x6de4x17[_0x6de4xe[_0xe635[27]]]={$gte:_0x6de4x18};break;default:};break;default:};return _0x6de4x17}function createInterval(_0x6de4xb){activeAutomations[_0xe635[41]+_0x6de4xb[_0xe635[19]]]=setInterval(function(){executeAutomation(_0x6de4xb)},_0x6de4xb[_0xe635[42]]*1000)}module[_0xe635[43]]=function(){Automation[_0xe635[46]](function(_0x6de4x1a,_0x6de4x1b){if(_0x6de4x1a[_0xe635[21]]&&_0x6de4x1a[_0xe635[44]]===_0xe635[45]){createInterval(_0x6de4x1a)}});Automation[_0xe635[47]](function(_0x6de4x1a,_0x6de4x1b){if(activeAutomations[_0xe635[41]+_0x6de4x1a[_0xe635[19]]]){clearInterval(activeAutomations[_0xe635[41]+_0x6de4x1a[_0xe635[19]]])};if(_0x6de4x1a[_0xe635[21]]&&_0x6de4x1a[_0xe635[44]]===_0xe635[45]){createInterval(_0x6de4x1a)}});Automation[_0xe635[48]](function(_0x6de4x1a,_0x6de4x1b){if(activeAutomations[_0xe635[41]+_0x6de4x1a[_0xe635[19]]]){clearInterval(activeAutomations[_0xe635[41]+_0x6de4x1a[_0xe635[19]]])}});Automation[_0xe635[51]](_0xe635[50])[_0xe635[25]]({where:{status:true,channel:_0xe635[45]}})[_0xe635[24]](function(_0x6de4x1c){_0x6de4x1c[_0xe635[13]](function(_0x6de4xb){createInterval(_0x6de4xb)})})[_0xe635[18]](function(_0x6de4xf){console[_0xe635[49]](_0x6de4xf)})}
\ No newline at end of file
index dfd4a14..ace82e2 100644 (file)
@@ -1,154 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var config = require('../environment');
-var moment = require('moment');
-// var stringifyObject = require('stringify-object');
-
-var sequelize = require('../../models').sequelize;
-var Automation = require('../../models').Automation;
-var MailRoom = require('../../models').MailRoom;
-var Settings = require('../../models').Settings;
-var activeAutomations = {};
-
-function executeAutomation(mailAutomation) {
-  var query = {
-    where: {
-      $and: [],
-      $or: []
-    }
-  };
-  var actions = {};
-  mailAutomation.All.forEach(function(condition) {
-    query.where.$and.push(getCondition(condition.dataValues));
-  });
-  mailAutomation.Any.forEach(function(condition) {
-    query.where.$or.push(getCondition(condition.dataValues));
-  });
-
-  return MailRoom
-    .findAll(query)
-    .then(function(mails) {
-      mails.forEach(function(mail) {
-        mailAutomation.Actions.forEach(function(action) {
-          switch (action.action) {
-            case 'status':
-              setStatus(mail.id, action.data1);
-              break;
-            default:
-          }
-        });
-      });
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function setStatus(ticketId, newStatus) {
-  return MailRoom.update({
-      status: newStatus,
-    }, {
-      where: {
-        id: ticketId
-      }
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function getCondition(condition) {
-  var result = {};
-  switch (condition.field) {
-    case 'status':
-      switch (condition.operator) {
-        case 'equals':
-          result[condition.field] = condition.value;
-          break;
-        case 'not_equals':
-          result[condition.field] = {
-            $ne: condition.value
-          };
-          break;
-        default:
-      }
-      break;
-    case 'createdAt':
-      var compareDate = moment().subtract(parseInt(condition.value, 10), 'hours').format("YYYY-MM-DD HH:mm:ss");
-      switch (condition.operator) {
-        case 'greater':
-          result[condition.field] = {
-            lt: compareDate
-          };
-          break;
-        case 'greater_or_equal':
-          result[condition.field] = {
-            $lte: compareDate
-          };
-          break;
-        case 'less':
-          result[condition.field] = {
-            $gt: compareDate
-          };
-          break;
-        case 'less_or_equal':
-          result[condition.field] = {
-            $gte: compareDate
-          };
-          break;
-        default:
-      }
-      break;
-    default:
-  }
-  return result;
-}
-
-function createInterval(mailAutomation) {
-  activeAutomations['interval' + mailAutomation.id] = setInterval(function() {
-    executeAutomation(mailAutomation);
-  }, mailAutomation.timeout * 1000);
-}
-
-module.exports = function() {
-
-  Automation.afterCreate(function(doc, options) {
-    if (doc.status && doc.channel === 'mail') {
-      createInterval(doc);
-    }
-  });
-
-  Automation.afterUpdate(function(doc, options) {
-    if (activeAutomations['interval' + doc.id]) {
-      clearInterval(activeAutomations['interval' + doc.id]);
-    }
-    if (doc.status && doc.channel === 'mail') {
-      createInterval(doc);
-    }
-  });
-
-  Automation.afterDelete(function(doc, options) {
-    if (activeAutomations['interval' + doc.id]) {
-      clearInterval(activeAutomations['interval' + doc.id]);
-    }
-  });
-
-  Automation
-    .scope('all')
-    .findAll({
-      where: {
-        status: true,
-        channel: 'mail'
-      }
-    })
-    .then(function(mailAutomations) {
-
-      mailAutomations.forEach(function(mailAutomation) {
-        createInterval(mailAutomation);
-      });
-    })
-    .catch(function(err) {
-      console.error(err);
-    });
-};
+var _0xed48=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x53\x65\x74\x74\x69\x6E\x67\x73","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x70\x75\x73\x68","\x24\x61\x6E\x64","\x77\x68\x65\x72\x65","\x66\x6F\x72\x45\x61\x63\x68","\x41\x6C\x6C","\x24\x6F\x72","\x41\x6E\x79","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x69\x64","\x64\x61\x74\x61\x31","\x73\x74\x61\x74\x75\x73","\x61\x63\x74\x69\x6F\x6E","\x41\x63\x74\x69\x6F\x6E\x73","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x75\x70\x64\x61\x74\x65","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x65\x71\x75\x61\x6C\x73","\x6E\x6F\x74\x5F\x65\x71\x75\x61\x6C\x73","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x68\x6F\x75\x72\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x67\x72\x65\x61\x74\x65\x72","\x67\x72\x65\x61\x74\x65\x72\x5F\x6F\x72\x5F\x65\x71\x75\x61\x6C","\x6C\x65\x73\x73","\x6C\x65\x73\x73\x5F\x6F\x72\x5F\x65\x71\x75\x61\x6C","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x74\x69\x6D\x65\x6F\x75\x74","\x65\x78\x70\x6F\x72\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x6D\x61\x69\x6C","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x6C\x65\x74\x65","\x65\x72\x72\x6F\x72","\x61\x6C\x6C","\x73\x63\x6F\x70\x65"];_0xed48[0];var _=require(_0xed48[1]);var config=require(_0xed48[2]);var moment=require(_0xed48[3]);var sequelize=require(_0xed48[5])[_0xed48[4]];var Automation=require(_0xed48[5])[_0xed48[6]];var MailRoom=require(_0xed48[5])[_0xed48[7]];var Settings=require(_0xed48[5])[_0xed48[8]];var activeAutomations={};function executeAutomation(_0x996axa){var _0x996axb={where:{$and:[],$or:[]}};var _0x996axc={};_0x996axa[_0xed48[14]][_0xed48[13]](function(_0x996axd){_0x996axb[_0xed48[12]][_0xed48[11]][_0xed48[10]](getCondition(_0x996axd[_0xed48[9]]))});_0x996axa[_0xed48[16]][_0xed48[13]](function(_0x996axd){_0x996axb[_0xed48[12]][_0xed48[15]][_0xed48[10]](getCondition(_0x996axd[_0xed48[9]]))});return MailRoom[_0xed48[25]](_0x996axb)[_0xed48[24]](function(_0x996axf){_0x996axf[_0xed48[13]](function(_0x996ax10){_0x996axa[_0xed48[23]][_0xed48[13]](function(_0x996ax11){switch(_0x996ax11[_0xed48[22]]){case _0xed48[21]:setStatus(_0x996ax10[_0xed48[19]],_0x996ax11[_0xed48[20]]);break;default:}})})})[_0xed48[18]](function(_0x996axe){console[_0xed48[17]](_0x996axe)})}function setStatus(_0x996ax13,_0x996ax14){return MailRoom[_0xed48[26]]({status:_0x996ax14},{where:{id:_0x996ax13}})[_0xed48[18]](function(_0x996axe){console[_0xed48[17]](_0x996axe)})}function getCondition(_0x996axd){var _0x996ax16={};switch(_0x996axd[_0xed48[27]]){case _0xed48[21]:switch(_0x996axd[_0xed48[31]]){case _0xed48[29]:_0x996ax16[_0x996axd[_0xed48[27]]]=_0x996axd[_0xed48[28]];break;case _0xed48[30]:_0x996ax16[_0x996axd[_0xed48[27]]]={$ne:_0x996axd[_0xed48[28]]};break;default:};break;case _0xed48[40]:var _0x996ax17=moment()[_0xed48[35]](parseInt(_0x996axd[_0xed48[28]],10),_0xed48[34])[_0xed48[33]](_0xed48[32]);switch(_0x996axd[_0xed48[31]]){case _0xed48[36]:_0x996ax16[_0x996axd[_0xed48[27]]]={lt:_0x996ax17};break;case _0xed48[37]:_0x996ax16[_0x996axd[_0xed48[27]]]={$lte:_0x996ax17};break;case _0xed48[38]:_0x996ax16[_0x996axd[_0xed48[27]]]={$gt:_0x996ax17};break;case _0xed48[39]:_0x996ax16[_0x996axd[_0xed48[27]]]={$gte:_0x996ax17};break;default:};break;default:};return _0x996ax16}function createInterval(_0x996axa){activeAutomations[_0xed48[41]+_0x996axa[_0xed48[19]]]=setInterval(function(){executeAutomation(_0x996axa)},_0x996axa[_0xed48[42]]*1000)}module[_0xed48[43]]=function(){Automation[_0xed48[46]](function(_0x996ax19,_0x996ax1a){if(_0x996ax19[_0xed48[21]]&&_0x996ax19[_0xed48[44]]===_0xed48[45]){createInterval(_0x996ax19)}});Automation[_0xed48[47]](function(_0x996ax19,_0x996ax1a){if(activeAutomations[_0xed48[41]+_0x996ax19[_0xed48[19]]]){clearInterval(activeAutomations[_0xed48[41]+_0x996ax19[_0xed48[19]]])};if(_0x996ax19[_0xed48[21]]&&_0x996ax19[_0xed48[44]]===_0xed48[45]){createInterval(_0x996ax19)}});Automation[_0xed48[48]](function(_0x996ax19,_0x996ax1a){if(activeAutomations[_0xed48[41]+_0x996ax19[_0xed48[19]]]){clearInterval(activeAutomations[_0xed48[41]+_0x996ax19[_0xed48[19]]])}});Automation[_0xed48[51]](_0xed48[50])[_0xed48[25]]({where:{status:true,channel:_0xed48[45]}})[_0xed48[24]](function(_0x996ax1b){_0x996ax1b[_0xed48[13]](function(_0x996axa){createInterval(_0x996axa)})})[_0xed48[18]](function(_0x996axe){console[_0xed48[49]](_0x996axe)})}
\ No newline at end of file
index 1b2d7a3..1d01961 100644 (file)
@@ -1,74 +1 @@
-/**
- * Express configuration
- */
-
-'use strict';
-
-var express = require('express');
-var favicon = require('serve-favicon');
-var morgan = require('morgan');
-var compression = require('compression');
-var bodyParser = require('body-parser');
-var queryParser = require('express-query-int');
-var methodOverride = require('method-override');
-var cookieParser = require('cookie-parser');
-var errorHandler = require('errorhandler');
-var path = require('path');
-var passport = require('passport');
-var session = require('express-session');
-var flash = require('connect-flash');
-var SessionStore = require('express-mysql-session');
-var session = require('express-session');
-var config = require('./environment');
-
-module.exports = function (app) {
-  var env = app.get('env');
-
-  app.set('views', config.root + '/server/views');
-  app.engine('html', require('ejs').renderFile);
-  app.set('view engine', 'html');
-  app.use(compression());
-  app.use(bodyParser.urlencoded({
-    extended: false
-  }));
-  app.use(bodyParser.json());
-  // app.use(queryParser());
-  app.use(methodOverride());
-  app.use(cookieParser());
-  app.use(passport.initialize());
-
-  // Express/MySQL session storage
-  app.use(session({
-    secret: config.session.secret,
-    store: new SessionStore({
-      host: config.db.host,
-      port: config.db.port,
-      user: config.db.username,
-      password: config.db.password,
-      database: config.db.database
-    }),
-    cookie: config.session.cookie,
-    name: config.session.name,
-    resave: true,
-    saveUninitialized: true
-  }));
-
-  if ('production' === env) {
-    app.use(favicon(path.join(config.root, 'public', 'favicon.ico')));
-    app.use(express.static(path.join(config.root, 'public')));
-    app.set('appPath', config.root + '/public');
-    app.use(morgan('dev'));
-  }
-
-  if ('development' === env || 'test' === env) {
-    app.use(require('connect-livereload')());
-    app.use(express.static(path.join(config.root, '.tmp')));
-    app.use(express.static(path.join(config.root, 'client')));
-    app.set('appPath', 'client');
-    app.use(morgan('dev'));
-    app.use(errorHandler()); // Error handler - has to be last
-  }
-
-  // Connect flash for flash messages
-  app.use(flash());
-};
+var _0x4e0c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x73\x65\x72\x76\x65\x2D\x66\x61\x76\x69\x63\x6F\x6E","\x6D\x6F\x72\x67\x61\x6E","\x63\x6F\x6D\x70\x72\x65\x73\x73\x69\x6F\x6E","\x62\x6F\x64\x79\x2D\x70\x61\x72\x73\x65\x72","\x65\x78\x70\x72\x65\x73\x73\x2D\x71\x75\x65\x72\x79\x2D\x69\x6E\x74","\x6D\x65\x74\x68\x6F\x64\x2D\x6F\x76\x65\x72\x72\x69\x64\x65","\x63\x6F\x6F\x6B\x69\x65\x2D\x70\x61\x72\x73\x65\x72","\x65\x72\x72\x6F\x72\x68\x61\x6E\x64\x6C\x65\x72","\x70\x61\x74\x68","\x70\x61\x73\x73\x70\x6F\x72\x74","\x65\x78\x70\x72\x65\x73\x73\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74\x2D\x66\x6C\x61\x73\x68","\x65\x78\x70\x72\x65\x73\x73\x2D\x6D\x79\x73\x71\x6C\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x65\x6E\x76","\x67\x65\x74","\x76\x69\x65\x77\x73","\x72\x6F\x6F\x74","\x2F\x73\x65\x72\x76\x65\x72\x2F\x76\x69\x65\x77\x73","\x73\x65\x74","\x68\x74\x6D\x6C","\x72\x65\x6E\x64\x65\x72\x46\x69\x6C\x65","\x65\x6A\x73","\x65\x6E\x67\x69\x6E\x65","\x76\x69\x65\x77\x20\x65\x6E\x67\x69\x6E\x65","\x75\x73\x65","\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x6A\x73\x6F\x6E","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65","\x73\x65\x63\x72\x65\x74","\x73\x65\x73\x73\x69\x6F\x6E","\x68\x6F\x73\x74","\x64\x62","\x70\x6F\x72\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x64\x61\x74\x61\x62\x61\x73\x65","\x63\x6F\x6F\x6B\x69\x65","\x6E\x61\x6D\x65","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x70\x75\x62\x6C\x69\x63","\x66\x61\x76\x69\x63\x6F\x6E\x2E\x69\x63\x6F","\x6A\x6F\x69\x6E","\x73\x74\x61\x74\x69\x63","\x61\x70\x70\x50\x61\x74\x68","\x2F\x70\x75\x62\x6C\x69\x63","\x64\x65\x76","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x74\x65\x73\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x2D\x6C\x69\x76\x65\x72\x65\x6C\x6F\x61\x64","\x2E\x74\x6D\x70","\x63\x6C\x69\x65\x6E\x74"];_0x4e0c[0];var express=require(_0x4e0c[1]);var favicon=require(_0x4e0c[2]);var morgan=require(_0x4e0c[3]);var compression=require(_0x4e0c[4]);var bodyParser=require(_0x4e0c[5]);var queryParser=require(_0x4e0c[6]);var methodOverride=require(_0x4e0c[7]);var cookieParser=require(_0x4e0c[8]);var errorHandler=require(_0x4e0c[9]);var path=require(_0x4e0c[10]);var passport=require(_0x4e0c[11]);var session=require(_0x4e0c[12]);var flash=require(_0x4e0c[13]);var SessionStore=require(_0x4e0c[14]);var session=require(_0x4e0c[12]);var config=require(_0x4e0c[15]);module[_0x4e0c[16]]=function(_0xe6e9x10){var _0xe6e9x11=_0xe6e9x10[_0x4e0c[18]](_0x4e0c[17]);_0xe6e9x10[_0x4e0c[22]](_0x4e0c[19],config[_0x4e0c[20]]+_0x4e0c[21]);_0xe6e9x10[_0x4e0c[26]](_0x4e0c[23],require(_0x4e0c[25])[_0x4e0c[24]]);_0xe6e9x10[_0x4e0c[22]](_0x4e0c[27],_0x4e0c[23]);_0xe6e9x10[_0x4e0c[28]](compression());_0xe6e9x10[_0x4e0c[28]](bodyParser[_0x4e0c[29]]({extended:false}));_0xe6e9x10[_0x4e0c[28]](bodyParser[_0x4e0c[30]]());_0xe6e9x10[_0x4e0c[28]](methodOverride());_0xe6e9x10[_0x4e0c[28]](cookieParser());_0xe6e9x10[_0x4e0c[28]](passport[_0x4e0c[31]]());_0xe6e9x10[_0x4e0c[28]](session({secret:config[_0x4e0c[33]][_0x4e0c[32]],store: new SessionStore({host:config[_0x4e0c[35]][_0x4e0c[34]],port:config[_0x4e0c[35]][_0x4e0c[36]],user:config[_0x4e0c[35]][_0x4e0c[37]],password:config[_0x4e0c[35]][_0x4e0c[38]],database:config[_0x4e0c[35]][_0x4e0c[39]]}),cookie:config[_0x4e0c[33]][_0x4e0c[40]],name:config[_0x4e0c[33]][_0x4e0c[41]],resave:true,saveUninitialized:true}));if(_0x4e0c[42]===_0xe6e9x11){_0xe6e9x10[_0x4e0c[28]](favicon(path[_0x4e0c[45]](config[_0x4e0c[20]],_0x4e0c[43],_0x4e0c[44])));_0xe6e9x10[_0x4e0c[28]](express[_0x4e0c[46]](path[_0x4e0c[45]](config[_0x4e0c[20]],_0x4e0c[43])));_0xe6e9x10[_0x4e0c[22]](_0x4e0c[47],config[_0x4e0c[20]]+_0x4e0c[48]);_0xe6e9x10[_0x4e0c[28]](morgan(_0x4e0c[49]))};if(_0x4e0c[50]===_0xe6e9x11||_0x4e0c[51]===_0xe6e9x11){_0xe6e9x10[_0x4e0c[28]](require(_0x4e0c[52])());_0xe6e9x10[_0x4e0c[28]](express[_0x4e0c[46]](path[_0x4e0c[45]](config[_0x4e0c[20]],_0x4e0c[53])));_0xe6e9x10[_0x4e0c[28]](express[_0x4e0c[46]](path[_0x4e0c[45]](config[_0x4e0c[20]],_0x4e0c[54])));_0xe6e9x10[_0x4e0c[22]](_0x4e0c[47],_0x4e0c[54]);_0xe6e9x10[_0x4e0c[28]](morgan(_0x4e0c[49]));_0xe6e9x10[_0x4e0c[28]](errorHandler())};_0xe6e9x10[_0x4e0c[28]](flash())}
\ No newline at end of file
index c64343b..2d6dd2f 100644 (file)
@@ -1,240 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var uuidLib = require('node-uuid');
-var ConvertTiff = require('tiff-to-png');
-var exec = require('child_process').exec;
-var fs = require('fs');
-var path = require('path');
-
-var FaxMessage = require('../models').FaxMessage;
-var FaxRoom = require('../models').FaxRoom;
-var Contact = require('../models').Contact;
-var Event = require('../models').Event;
-var config = require('./environment');
-
-exports.register = function(ami) {
-
-  ami.on('receivefax', function(evt) {
-
-    FaxRoom
-      .create({
-        status: 'NEW',
-        from: evt.remotestationid,
-        FaxAccountId: 1, //TODO Handle account ID
-      })
-      .then(function(faxRoom) {
-
-        evt.status = 'RECEIVED';
-        evt.FaxRoomId = faxRoom.id;
-
-        FaxMessage
-          .create(evt)
-          .then(function(faxMessage) {
-
-            Event
-              .create({
-                name: 'INCOMING',
-                channel: 'FAX',
-                FaxRoomId: faxRoom.id,
-                FaxAccountId: 1 //TODO Handle account ID
-              })
-              .catch(function(err) {
-                console.error(err);
-              });
-
-            Contact
-              .findOrCreate({
-                where: {
-                  phone: evt.remotestationid
-                },
-                defaults: {
-                  phone: evt.remotestationid,
-                  fullname: evt.remotestationid
-                }
-              })
-              .spread(function(contact, created) {
-                faxMessage.setFrom(contact);
-              });
-
-            Contact
-              .findOrCreate({
-                where: {
-                  phone: evt.localstationid
-                },
-                defaults: {
-                  phone: evt.localstationid,
-                  fullname: evt.localstationid
-                }
-              })
-              .spread(function(contact, created) {
-                faxMessage.setTo(contact);
-              });
-
-            //Convert tiff to png
-            var uuid = uuidLib.v4();
-            var inputPath = evt.filename; //Restore for normal usage
-            // var inputPath = '/tmp/sample.tif' //Used for testing
-            var resultPath = path.join(config.root, 'server', 'files', 'fax', 'inbound', uuid + '.pdf');
-            var command = 'convert ' + inputPath + ' ' + resultPath;
-            fs.exists(inputPath, function(exists) {
-              if (exists) {
-                console.error('The file ' + inputPath + ' exits');
-                //Install ImageMagick for doing that!
-                exec(command, function(err) {
-                  if (err) {
-                    console.error(err);
-                  } else {
-                    faxMessage.updateAttributes({
-                        filenamePDF: uuid + '.pdf'
-                      })
-                      .then(function() {
-                        console.error('The file ' + inputPath + ' was converted in PDF');
-                      })
-                      .catch(function(err) {
-                        console.error(err);
-                      });
-                  }
-                });
-              } else {
-                console.error('The file ' + inputPath + ' does not exits');
-              }
-            });
-          })
-          .catch(function(err) {
-            console.error(err);
-          });
-
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  });
-
-  ami.on('sendfax', function(evt) {
-    console.log('***SendFAX***');
-
-    FaxMessage
-      .findOne({
-        where: {
-          uniqueid: evt.uniqueid
-        }
-      })
-      .then(function(faxMessage) {
-        if (faxMessage) {
-          faxMessage.updateAttributes(evt);
-        }
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-
-  });
-
-  ami.on('varset', function(evt) {
-    if (evt.variable.hasOwnProperty('faxstatus')) {
-      FaxMessage
-        .findOne({
-          where: {
-            uniqueid: evt.uniqueid
-          }
-        })
-        .then(function(faxMessage) {
-          if (faxMessage) {
-            console.log('VarSet: ', 'status', evt.value);
-            faxMessage.updateAttributes({
-              status: evt.value == 'FAILED' ? 'FAILED' : 'SENT'
-            });
-          }
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    } else if (evt.variable.hasOwnProperty('faxerror')) {
-      FaxMessage
-        .findOne({
-          where: {
-            uniqueid: evt.uniqueid
-          }
-        })
-        .then(function(faxMessage) {
-          if (faxMessage) {
-            console.log('VarSet: ', 'error', evt.value);
-            faxMessage.updateAttributes({
-              error: evt.value
-            });
-          }
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    } else if (evt.variable.hasOwnProperty('faxstatusstring')) {
-      FaxMessage
-        .findOne({
-          where: {
-            uniqueid: evt.uniqueid
-          }
-        })
-        .then(function(faxMessage) {
-          if (faxMessage) {
-            console.log('VarSet: ', 'laststatus', evt.value);
-            faxMessage.updateAttributes({
-              laststatus: evt.value
-            });
-          }
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    }
-
-  });
-
-  ami.on('userevent', function(evt) {
-    if (evt.userevent === 'Fax') {
-      FaxMessage
-        .findOne({
-          where: {
-            uuid: evt.uuid
-          }
-        })
-        .then(function(faxMessage) {
-          if (faxMessage) {
-            evt.status = 'SENDING';
-            faxMessage.updateAttributes(evt);
-          }
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    }
-
-  });
-
-  ami.on('faxstatus', function(evt) {
-    FaxMessage
-      .findOne({
-        where: {
-          uniqueid: evt.uniqueid
-        }
-      })
-      .then(function(faxMessage) {
-        if (faxMessage) {
-
-          console.log('FAXStatus: ', evt.uniqueid, evt.status);
-
-          faxMessage.updateAttributes({
-            operation: evt.operation,
-            laststatus: evt.status
-          });
-        }
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-
-  })
-
-  require('../api/fax_message/fax_message.ami').register(ami);
-
-};
+var _0x28dc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6E\x6F\x64\x65\x2D\x75\x75\x69\x64","\x74\x69\x66\x66\x2D\x74\x6F\x2D\x70\x6E\x67","\x65\x78\x65\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x66\x73","\x70\x61\x74\x68","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x61\x78\x52\x6F\x6F\x6D","\x43\x6F\x6E\x74\x61\x63\x74","\x45\x76\x65\x6E\x74","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x72\x65\x67\x69\x73\x74\x65\x72","\x72\x65\x63\x65\x69\x76\x65\x66\x61\x78","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x73\x74\x61\x74\x75\x73","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x61\x78\x52\x6F\x6F\x6D\x49\x64","\x69\x64","\x49\x4E\x43\x4F\x4D\x49\x4E\x47","\x46\x41\x58","\x63\x72\x65\x61\x74\x65","\x73\x65\x74\x46\x72\x6F\x6D","\x73\x70\x72\x65\x61\x64","\x72\x65\x6D\x6F\x74\x65\x73\x74\x61\x74\x69\x6F\x6E\x69\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x73\x65\x74\x54\x6F","\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64","\x76\x34","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x66\x61\x78","\x69\x6E\x62\x6F\x75\x6E\x64","\x2E\x70\x64\x66","\x6A\x6F\x69\x6E","\x63\x6F\x6E\x76\x65\x72\x74\x20","\x20","\x54\x68\x65\x20\x66\x69\x6C\x65\x20","\x20\x65\x78\x69\x74\x73","\x20\x77\x61\x73\x20\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x20\x69\x6E\x20\x50\x44\x46","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x20\x64\x6F\x65\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x74\x73","\x65\x78\x69\x73\x74\x73","\x4E\x45\x57","\x6F\x6E","\x73\x65\x6E\x64\x66\x61\x78","\x2A\x2A\x2A\x53\x65\x6E\x64\x46\x41\x58\x2A\x2A\x2A","\x6C\x6F\x67","\x75\x6E\x69\x71\x75\x65\x69\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x76\x61\x72\x73\x65\x74","\x66\x61\x78\x73\x74\x61\x74\x75\x73","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x76\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x53\x65\x74\x3A\x20","\x76\x61\x6C\x75\x65","\x46\x41\x49\x4C\x45\x44","\x53\x45\x4E\x54","\x66\x61\x78\x65\x72\x72\x6F\x72","\x66\x61\x78\x73\x74\x61\x74\x75\x73\x73\x74\x72\x69\x6E\x67","\x6C\x61\x73\x74\x73\x74\x61\x74\x75\x73","\x75\x73\x65\x72\x65\x76\x65\x6E\x74","\x46\x61\x78","\x53\x45\x4E\x44\x49\x4E\x47","\x75\x75\x69\x64","\x46\x41\x58\x53\x74\x61\x74\x75\x73\x3A\x20","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x61\x6D\x69"];_0x28dc[0];var _=require(_0x28dc[1]);var uuidLib=require(_0x28dc[2]);var ConvertTiff=require(_0x28dc[3]);var exec=require(_0x28dc[5])[_0x28dc[4]];var fs=require(_0x28dc[6]);var path=require(_0x28dc[7]);var FaxMessage=require(_0x28dc[9])[_0x28dc[8]];var FaxRoom=require(_0x28dc[9])[_0x28dc[10]];var Contact=require(_0x28dc[9])[_0x28dc[11]];var Event=require(_0x28dc[9])[_0x28dc[12]];var config=require(_0x28dc[13]);exports[_0x28dc[14]]=function(_0xc796xc){_0xc796xc[_0x28dc[50]](_0x28dc[15],function(_0xc796xd){FaxRoom[_0x28dc[24]]({status:_0x28dc[49],from:_0xc796xd[_0x28dc[27]],FaxAccountId:1})[_0x28dc[45]](function(_0xc796xf){_0xc796xd[_0x28dc[18]]=_0x28dc[19];_0xc796xd[_0x28dc[20]]=_0xc796xf[_0x28dc[21]];FaxMessage[_0x28dc[24]](_0xc796xd)[_0x28dc[45]](function(_0xc796x10){Event[_0x28dc[24]]({name:_0x28dc[22],channel:_0x28dc[23],FaxRoomId:_0xc796xf[_0x28dc[21]],FaxAccountId:1})[_0x28dc[17]](function(_0xc796xe){console[_0x28dc[16]](_0xc796xe)});Contact[_0x28dc[28]]({where:{phone:_0xc796xd[_0x28dc[27]]},defaults:{phone:_0xc796xd[_0x28dc[27]],fullname:_0xc796xd[_0x28dc[27]]}})[_0x28dc[26]](function(_0xc796x11,_0xc796x12){_0xc796x10[_0x28dc[25]](_0xc796x11)});Contact[_0x28dc[28]]({where:{phone:_0xc796xd[_0x28dc[30]]},defaults:{phone:_0xc796xd[_0x28dc[30]],fullname:_0xc796xd[_0x28dc[30]]}})[_0x28dc[26]](function(_0xc796x11,_0xc796x12){_0xc796x10[_0x28dc[29]](_0xc796x11)});var _0xc796x13=uuidLib[_0x28dc[31]]();var _0xc796x14=_0xc796xd[_0x28dc[32]];var _0xc796x15=path[_0x28dc[39]](config[_0x28dc[33]],_0x28dc[34],_0x28dc[35],_0x28dc[36],_0x28dc[37],_0xc796x13+_0x28dc[38]);var _0xc796x16=_0x28dc[40]+_0xc796x14+_0x28dc[41]+_0xc796x15;fs[_0x28dc[48]](_0xc796x14,function(_0xc796x17){if(_0xc796x17){console[_0x28dc[16]](_0x28dc[42]+_0xc796x14+_0x28dc[43]);exec(_0xc796x16,function(_0xc796xe){if(_0xc796xe){console[_0x28dc[16]](_0xc796xe)}else {_0xc796x10[_0x28dc[46]]({filenamePDF:_0xc796x13+_0x28dc[38]})[_0x28dc[45]](function(){console[_0x28dc[16]](_0x28dc[42]+_0xc796x14+_0x28dc[44])})[_0x28dc[17]](function(_0xc796xe){console[_0x28dc[16]](_0xc796xe)})}})}else {console[_0x28dc[16]](_0x28dc[42]+_0xc796x14+_0x28dc[47])}})})[_0x28dc[17]](function(_0xc796xe){console[_0x28dc[16]](_0xc796xe)})})[_0x28dc[17]](function(_0xc796xe){console[_0x28dc[16]](_0xc796xe)})});_0xc796xc[_0x28dc[50]](_0x28dc[51],function(_0xc796xd){console[_0x28dc[53]](_0x28dc[52]);FaxMessage[_0x28dc[55]]({where:{uniqueid:_0xc796xd[_0x28dc[54]]}})[_0x28dc[45]](function(_0xc796x10){if(_0xc796x10){_0xc796x10[_0x28dc[46]](_0xc796xd)}})[_0x28dc[17]](function(_0xc796xe){console[_0x28dc[16]](_0xc796xe)})});_0xc796xc[_0x28dc[50]](_0x28dc[56],function(_0xc796xd){if(_0xc796xd[_0x28dc[59]][_0x28dc[58]](_0x28dc[57])){FaxMessage[_0x28dc[55]]({where:{uniqueid:_0xc796xd[_0x28dc[54]]}})[_0x28dc[45]](function(_0xc796x10){if(_0xc796x10){console[_0x28dc[53]](_0x28dc[60],_0x28dc[18],_0xc796xd[_0x28dc[61]]);_0xc796x10[_0x28dc[46]]({status:_0xc796xd[_0x28dc[61]]==_0x28dc[62]?_0x28dc[62]:_0x28dc[63]})}})[_0x28dc[17]](function(_0xc796xe){console[_0x28dc[16]](_0xc796xe)})}else {if(_0xc796xd[_0x28dc[59]][_0x28dc[58]](_0x28dc[64])){FaxMessage[_0x28dc[55]]({where:{uniqueid:_0xc796xd[_0x28dc[54]]}})[_0x28dc[45]](function(_0xc796x10){if(_0xc796x10){console[_0x28dc[53]](_0x28dc[60],_0x28dc[16],_0xc796xd[_0x28dc[61]]);_0xc796x10[_0x28dc[46]]({error:_0xc796xd[_0x28dc[61]]})}})[_0x28dc[17]](function(_0xc796xe){console[_0x28dc[16]](_0xc796xe)})}else {if(_0xc796xd[_0x28dc[59]][_0x28dc[58]](_0x28dc[65])){FaxMessage[_0x28dc[55]]({where:{uniqueid:_0xc796xd[_0x28dc[54]]}})[_0x28dc[45]](function(_0xc796x10){if(_0xc796x10){console[_0x28dc[53]](_0x28dc[60],_0x28dc[66],_0xc796xd[_0x28dc[61]]);_0xc796x10[_0x28dc[46]]({laststatus:_0xc796xd[_0x28dc[61]]})}})[_0x28dc[17]](function(_0xc796xe){console[_0x28dc[16]](_0xc796xe)})}}}});_0xc796xc[_0x28dc[50]](_0x28dc[67],function(_0xc796xd){if(_0xc796xd[_0x28dc[67]]===_0x28dc[68]){FaxMessage[_0x28dc[55]]({where:{uuid:_0xc796xd[_0x28dc[70]]}})[_0x28dc[45]](function(_0xc796x10){if(_0xc796x10){_0xc796xd[_0x28dc[18]]=_0x28dc[69];_0xc796x10[_0x28dc[46]](_0xc796xd)}})[_0x28dc[17]](function(_0xc796xe){console[_0x28dc[16]](_0xc796xe)})}});_0xc796xc[_0x28dc[50]](_0x28dc[57],function(_0xc796xd){FaxMessage[_0x28dc[55]]({where:{uniqueid:_0xc796xd[_0x28dc[54]]}})[_0x28dc[45]](function(_0xc796x10){if(_0xc796x10){console[_0x28dc[53]](_0x28dc[71],_0xc796xd[_0x28dc[54]],_0xc796xd[_0x28dc[18]]);_0xc796x10[_0x28dc[46]]({operation:_0xc796xd[_0x28dc[72]],laststatus:_0xc796xd[_0x28dc[18]]})}})[_0x28dc[17]](function(_0xc796xe){console[_0x28dc[16]](_0xc796xe)})});require(_0x28dc[73])[_0x28dc[14]](_0xc796xc)}
\ No newline at end of file
index ba77c2b..a786ecb 100644 (file)
@@ -1,55 +1 @@
-'use strict';
-
-var Promise = require('bluebird');
-var sequelize = require('../../models').sequelize;
-
-var ReportCall = require('./reportCall');
-var ReportAgent = require('./reportAgent');
-var ReportMember = require('./reportMember');
-var ReportQueue = require('./reportQueue');
-var ReportIntegration = require('./reportIntegration');
-var ReportMailSession = require('./reportMailSession');
-var ReportChat = require('./reportChat');
-var ReportChatSession = require('./reportChatSession');
-var ReportMail = require('./reportMail');
-var ReportSquare = require('./reportSquare');
-var ReportSquareDetail = require('./reportSquareDetail');
-var ReportTransfer = require('./reportTransfer');
-
-module.exports = function(CronJob) {
-
-  // Every 1 Minute
-  var job = new CronJob({
-    // cronTime: '10 * * * * *',
-    cronTime: '0 59 23 * * *',
-    // cronTime: '* * * * *',
-    onTick: function() {
-      console.log('updating history...');
-      var bulkHistory = [ReportCall];
-      return sequelize.transaction(function(t) {
-          return Promise
-            .all([])
-            .then(ReportCall.move(t))
-            .then(ReportAgent.move(t))
-            .then(ReportMember.move(t))
-            .then(ReportQueue.move(t))
-            .then(ReportIntegration.move(t))
-            .then(ReportMailSession.move(t))
-            .then(ReportChat.move(t))
-            .then(ReportChatSession.move(t))
-            .then(ReportMail.move(t))
-            .then(ReportSquare.move(t))
-            .then(ReportSquareDetail.move(t))
-            .then(ReportTransfer.move(t))
-            .then(function() {
-              console.log('history updated');
-            })
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    }
-  });
-
-  job.start();
-}
+var _0x7ecd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x4D\x6F\x76\x65","\x68\x69\x73\x74\x6F\x72\x79","\x65\x78\x70\x6F\x72\x74\x73","\x30\x20\x35\x39\x20\x32\x33\x20\x2A\x20\x2A\x20\x2A","\x75\x70\x64\x61\x74\x69\x6E\x67\x20\x68\x69\x73\x74\x6F\x72\x79\x2E\x2E\x2E","\x6C\x6F\x67","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x68\x69\x73\x74\x6F\x72\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x6D\x6F\x76\x65","\x61\x6C\x6C","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x74\x61\x72\x74"];_0x7ecd[0];var Promise=require(_0x7ecd[1]);var sequelize=require(_0x7ecd[3])[_0x7ecd[2]];var ReportMove=require(_0x7ecd[4]);var Models=require(_0x7ecd[3]);var HistoryModels=require(_0x7ecd[3])[_0x7ecd[5]];module[_0x7ecd[6]]=function(_0x4e68x6){var _0x4e68x7= new _0x4e68x6({cronTime:_0x7ecd[7],onTick:function(){console[_0x7ecd[9]](_0x7ecd[8]);return sequelize[_0x7ecd[16]](function(_0x4e68x9){return Promise[_0x7ecd[15]]([])[_0x7ecd[13]](ReportMove[_0x7ecd[14]](_0x4e68x9,Models.ReportCall,HistoryModels.ReportCallHistory))[_0x7ecd[13]](ReportMove[_0x7ecd[14]](_0x4e68x9,Models.ReportAgent,HistoryModels.ReportAgentHistory))[_0x7ecd[13]](ReportMove[_0x7ecd[14]](_0x4e68x9,Models.ReportMember,HistoryModels.ReportMemberHistory))[_0x7ecd[13]](ReportMove[_0x7ecd[14]](_0x4e68x9,Models.ReportQueue,HistoryModels.ReportQueueHistory))[_0x7ecd[13]](ReportMove[_0x7ecd[14]](_0x4e68x9,Models.ReportIntegration,HistoryModels.ReportIntegrationHistory))[_0x7ecd[13]](ReportMove[_0x7ecd[14]](_0x4e68x9,Models.ReportMailSession,HistoryModels.ReportMailSessionHistory))[_0x7ecd[13]](ReportMove[_0x7ecd[14]](_0x4e68x9,Models.ReportChat,HistoryModels.ReportChatHistory))[_0x7ecd[13]](ReportMove[_0x7ecd[14]](_0x4e68x9,Models.ReportChatSession,HistoryModels.ReportChatSessionHistory))[_0x7ecd[13]](ReportMove[_0x7ecd[14]](_0x4e68x9,Models.ReportMail,HistoryModels.ReportMailHistory))[_0x7ecd[13]](ReportMove[_0x7ecd[14]](_0x4e68x9,Models.ReportSquare,HistoryModels.ReportSquareHistory))[_0x7ecd[13]](ReportMove[_0x7ecd[14]](_0x4e68x9,Models.ReportSquareDetail,HistoryModels.ReportSquareDetailHistory))[_0x7ecd[13]](ReportMove[_0x7ecd[14]](_0x4e68x9,Models.ReportTransfer,HistoryModels.ReportTransferHistory))[_0x7ecd[13]](function(){console[_0x7ecd[9]](_0x7ecd[12])})})[_0x7ecd[11]](function(_0x4e68x8){console[_0x7ecd[10]](_0x4e68x8)})}});_0x4e68x7[_0x7ecd[17]]()}
\ No newline at end of file
diff --git a/server/config/history/reportAgent.js b/server/config/history/reportAgent.js
deleted file mode 100644 (file)
index 04523b7..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var ReportAgent = require('../../models').ReportAgent;
-var ReportAgentHistory = require('../../models').history.ReportAgentHistory;
-
-exports.move = function(t) {
-  return function() {
-    var _items;
-    return ReportAgent
-      .findAll({
-        where: {
-          createdAt: {
-            $lte: moment().format("YYYY-MM-DD HH:mm:ss")
-          }
-        },
-        raw: true
-      })
-      .then(function(items) {
-        _items = items;
-        return ReportAgentHistory
-          .bulkCreate(items, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        return ReportAgent
-          .destroy({
-            where: {
-              id: _.map(_items, 'id')
-            }
-          }, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        console.log('updated ReportAgents history');
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
diff --git a/server/config/history/reportCall.js b/server/config/history/reportCall.js
deleted file mode 100644 (file)
index b137705..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var ReportCall = require('../../models').ReportCall;
-var ReportCallHistory = require('../../models').history.ReportCallHistory;
-
-exports.move = function(t) {
-  return function() {
-    var _items;
-    return ReportCall
-      .findAll({
-        where: {
-          createdAt: {
-            $lte: moment().format("YYYY-MM-DD HH:mm:ss")
-          }
-        },
-        raw: true
-      })
-      .then(function(items) {
-        _items = items;
-        return ReportCallHistory
-          .bulkCreate(items, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        return ReportCall
-          .destroy({
-            where: {
-              id: _.map(_items, 'id')
-            }
-          }, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        console.log('updated ReportCalls history');
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
diff --git a/server/config/history/reportChat.js b/server/config/history/reportChat.js
deleted file mode 100644 (file)
index fb1abce..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var ReportChat = require('../../models').ReportChat;
-var ReportChatHistory = require('../../models').history.ReportChatHistory;
-
-exports.move = function(t) {
-  return function() {
-    var _items;
-    return ReportChat
-      .findAll({
-        where: {
-          createdAt: {
-            $lte: moment().format("YYYY-MM-DD HH:mm:ss")
-          }
-        },
-        raw: true
-      })
-      .then(function(items) {
-        _items = items;
-        return ReportChatHistory
-          .bulkCreate(items, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        return ReportChat
-          .destroy({
-            where: {
-              id: _.map(_items, 'id')
-            }
-          }, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        console.log('updated ReportChats history');
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
diff --git a/server/config/history/reportChatSession.js b/server/config/history/reportChatSession.js
deleted file mode 100644 (file)
index 55e52e3..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var ReportChatSession = require('../../models').ReportChatSession;
-var ReportChatSessionHistory = require('../../models').history.ReportChatSessionHistory;
-
-exports.move = function(t) {
-  return function() {
-    var _items;
-    return ReportChatSession
-      .findAll({
-        where: {
-          createdAt: {
-            $lte: moment().format("YYYY-MM-DD HH:mm:ss")
-          }
-        },
-        raw: true
-      })
-      .then(function(items) {
-        _items = items;
-        return ReportChatSessionHistory
-          .bulkCreate(items, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        return ReportChatSession
-          .destroy({
-            where: {
-              id: _.map(_items, 'id')
-            }
-          }, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        console.log('updated ReportChatSessions history');
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
diff --git a/server/config/history/reportIntegration.js b/server/config/history/reportIntegration.js
deleted file mode 100644 (file)
index df9bd35..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var ReportIntegration = require('../../models').ReportIntegration;
-var ReportIntegrationHistory = require('../../models').history.ReportIntegrationHistory;
-
-exports.move = function(t) {
-  return function() {
-    var _items;
-    return ReportIntegration
-      .findAll({
-        where: {
-          createdAt: {
-            $lte: moment().format("YYYY-MM-DD HH:mm:ss")
-          }
-        },
-        raw: true
-      })
-      .then(function(items) {
-        _items = items;
-        return ReportIntegrationHistory
-          .bulkCreate(items, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        return ReportIntegration
-          .destroy({
-            where: {
-              id: _.map(_items, 'id')
-            }
-          }, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        console.log('updated ReportIntegrations history');
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
diff --git a/server/config/history/reportMail.js b/server/config/history/reportMail.js
deleted file mode 100644 (file)
index 3bbb2c7..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var ReportMail = require('../../models').ReportMail;
-var ReportMailHistory = require('../../models').history.ReportMailHistory;
-
-exports.move = function(t) {
-  return function() {
-    var _items;
-    return ReportMail
-      .findAll({
-        where: {
-          createdAt: {
-            $lte: moment().format("YYYY-MM-DD HH:mm:ss")
-          }
-        },
-        raw: true
-      })
-      .then(function(items) {
-        _items = items;
-        return ReportMailHistory
-          .bulkCreate(items, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        return ReportMail
-          .destroy({
-            where: {
-              id: _.map(_items, 'id')
-            }
-          }, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        console.log('updated ReportMails history');
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
diff --git a/server/config/history/reportMailSession.js b/server/config/history/reportMailSession.js
deleted file mode 100644 (file)
index dddde25..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var ReportMailSession = require('../../models').ReportMailSession;
-var ReportMailSessionHistory = require('../../models').history.ReportMailSessionHistory;
-
-exports.move = function(t) {
-  return function() {
-    var _items;
-    return ReportMailSession
-      .findAll({
-        where: {
-          createdAt: {
-            $lte: moment().format("YYYY-MM-DD HH:mm:ss")
-          }
-        },
-        raw: true
-      })
-      .then(function(items) {
-        _items = items;
-        return ReportMailSessionHistory
-          .bulkCreate(items, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        return ReportMailSession
-          .destroy({
-            where: {
-              id: _.map(_items, 'id')
-            }
-          }, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        console.log('updated ReportMailSessions history');
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
diff --git a/server/config/history/reportMember.js b/server/config/history/reportMember.js
deleted file mode 100644 (file)
index c02ab88..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var ReportMember = require('../../models').ReportMember;
-var ReportMemberHistory = require('../../models').history.ReportMemberHistory;
-
-exports.move = function(t) {
-  return function() {
-    var _items;
-    return ReportMember
-      .findAll({
-        where: {
-          createdAt: {
-            $lte: moment().format("YYYY-MM-DD HH:mm:ss")
-          }
-        },
-        raw: true
-      })
-      .then(function(items) {
-        _items = items;
-        return ReportMemberHistory
-          .bulkCreate(items, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        return ReportMember
-          .destroy({
-            where: {
-              id: _.map(_items, 'id')
-            }
-          }, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        console.log('updated ReportMembers history');
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
diff --git a/server/config/history/reportMove.js b/server/config/history/reportMove.js
new file mode 100644 (file)
index 0000000..df04cac
--- /dev/null
@@ -0,0 +1 @@
+var _0xb63a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x6F\x76\x65","\x75\x70\x64\x61\x74\x65\x64\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x69\x73\x74\x6F\x72\x79","\x6C\x6F\x67","\x74\x68\x65\x6E","\x69\x64","\x6D\x61\x70","\x64\x65\x73\x74\x72\x6F\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x66\x69\x6E\x64\x41\x6C\x6C"];_0xb63a[0];var _=require(_0xb63a[1]);var moment=require(_0xb63a[2]);exports[_0xb63a[3]]=function(_0xf857x3,_0xf857x4,_0xf857x5){return function(){var _0xf857x6;return _0xf857x4[_0xb63a[13]]({where:{createdAt:{$lte:moment()[_0xb63a[12]](_0xb63a[11])}},raw:true})[_0xb63a[6]](function(_0xf857x7){_0xf857x6=_0xf857x7;return _0xf857x5[_0xb63a[10]](_0xf857x7,{individualHooks:true,transaction:_0xf857x3})})[_0xb63a[6]](function(){return _0xf857x4[_0xb63a[9]]({where:{id:_[_0xb63a[8]](_0xf857x6,_0xb63a[7])}},{individualHooks:true,transaction:_0xf857x3})})[_0xb63a[6]](function(){console[_0xb63a[5]](_0xb63a[4])})}}
\ No newline at end of file
diff --git a/server/config/history/reportQueue.js b/server/config/history/reportQueue.js
deleted file mode 100644 (file)
index 62856b3..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var ReportQueue = require('../../models').ReportQueue;
-var ReportQueueHistory = require('../../models').history.ReportQueueHistory;
-
-exports.move = function(t) {
-  return function() {
-    var _items;
-    return ReportQueue
-      .findAll({
-        where: {
-          createdAt: {
-            $lte: moment().format("YYYY-MM-DD HH:mm:ss")
-          }
-        },
-        raw: true
-      })
-      .then(function(items) {
-        _items = items;
-        return ReportQueueHistory
-          .bulkCreate(items, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        return ReportQueue
-          .destroy({
-            where: {
-              id: _.map(_items, 'id')
-            }
-          }, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        console.log('updated ReportQueues history');
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
diff --git a/server/config/history/reportSquare.js b/server/config/history/reportSquare.js
deleted file mode 100644 (file)
index 56d43b2..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var ReportSquare = require('../../models').ReportSquare;
-var ReportSquareHistory = require('../../models').history.ReportSquareHistory;
-
-exports.move = function(t) {
-  return function() {
-    var _items;
-    return ReportSquare
-      .findAll({
-        where: {
-          createdAt: {
-            $lte: moment().format("YYYY-MM-DD HH:mm:ss")
-          }
-        },
-        raw: true
-      })
-      .then(function(items) {
-        _items = items;
-        return ReportSquareHistory
-          .bulkCreate(items, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        return ReportSquare
-          .destroy({
-            where: {
-              id: _.map(_items, 'id')
-            }
-          }, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        console.log('updated ReportSquares history');
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
diff --git a/server/config/history/reportSquareDetail.js b/server/config/history/reportSquareDetail.js
deleted file mode 100644 (file)
index 3ebf314..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var ReportSquareDetail = require('../../models').ReportSquareDetail;
-var ReportSquareDetailHistory = require('../../models').history.ReportSquareDetailHistory;
-
-exports.move = function(t) {
-  return function() {
-    var _items;
-    return ReportSquareDetail
-      .findAll({
-        where: {
-          createdAt: {
-            $lte: moment().format("YYYY-MM-DD HH:mm:ss")
-          }
-        },
-        raw: true
-      })
-      .then(function(items) {
-        _items = items;
-        return ReportSquareDetailHistory
-          .bulkCreate(items, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        return ReportSquareDetail
-          .destroy({
-            where: {
-              id: _.map(_items, 'id')
-            }
-          }, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        console.log('updated ReportSquareDetailss history');
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
diff --git a/server/config/history/reportTransfer.js b/server/config/history/reportTransfer.js
deleted file mode 100644 (file)
index a62b87b..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var ReportTransfer = require('../../models').ReportTransfer;
-var ReportTransferHistory = require('../../models').history.ReportTransferHistory;
-
-exports.move = function(t) {
-  return function() {
-    var _items;
-    return ReportTransfer
-      .findAll({
-        where: {
-          createdAt: {
-            $lte: moment().format("YYYY-MM-DD HH:mm:ss")
-          }
-        },
-        raw: true
-      })
-      .then(function(items) {
-        _items = items;
-        return ReportTransferHistory
-          .bulkCreate(items, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        return ReportTransfer
-          .destroy({
-            where: {
-              id: _.map(_items, 'id')
-            }
-          }, {
-            individualHooks: true,
-            transaction: t
-          });
-      })
-      .then(function() {
-        console.log('updated ReportTransfers history');
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
index e2c946d..be8d423 100644 (file)
@@ -1,219 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var path = require('path');
-
-var config = require('../environment');
-
-var ImapListener = require("mail-listener2");
-var MailServerIn = require('../../models').MailServerIn;
-var MailMessage = require('../../models').MailMessage;
-var MailAttachment = require('../../models').MailAttachment;
-var MailRoom = require('../../models').MailRoom;
-var Contact = require('../../models').Contact;
-var ContactEmail = require('../../models').ContactEmail;
-var sequelize = require('../../models').sequelize;
-
-// Public
-
-function Imap(doc) {
-  var imap;
-
-  function onUpdate(doc) {
-    if (!doc.changed('state') && !doc.changed('source') && doc.username === imap.imap._config.user) {
-      console.log("MAIL - Account " + doc.username + " IMAP UPDATED");
-      imap.stop();
-      onSave(doc);
-    }
-  }
-
-  function onRemove(doc) {
-    if (doc.username === imap.imap._config.user) {
-      console.log("MAIL - Account " + doc.username + " IMAP DESTROY");
-      imap.stop();
-      imap = null;
-    }
-  }
-
-  function onSave(doc) {
-    if (imap) {
-      imap.stop(doc);
-      imap = null;
-    }
-
-    imap = new ImapListener({
-      username: doc.username,
-      password: doc.password,
-      host: doc.host,
-      port: doc.port,
-      tls: doc.ssl,
-      tlsOptions: {
-        rejectUnauthorized: false
-      },
-      connTimeout: 30000,
-      mailbox: doc.mailbox, // mailbox to monitor
-      searchFilter: [doc.filter], // the search filter being used after an IDLE notification has been retrieved
-      markSeen: true, // all fetched email willbe marked as seen and not fetched next time
-      fetchUnreadOnStart: true, // use it only if you want to get all unread email on lib start. Default is `false`,,
-      mailParserOptions: {
-        streamAttachments: false
-      }, // options to be passed to mailParser lib.
-      attachments: true, // download attachments as they are encountered to the project directory
-      attachmentOptions: {
-        directory: path.join(config.root, 'server', 'files', 'attachments', '/')
-      } // specify a download directory for attachments
-    });
-
-    imap.start();
-
-    imap.on("server:connected", function() {
-      console.log("MAIL - Account " + doc.username + " IMAP CONNECTED");
-      // SETUP CONNECTED STATUS
-      return MailServerIn
-        .findById(doc.id)
-        .then(function(msi) {
-          return msi
-            .update({
-              state: 'CONNECTED'
-            });
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    });
-
-    imap.on("server:disconnected", function() {
-      console.log("MAIL - Account " + doc.MailAccountId + " IMAP DISCONNECTED");
-      return MailServerIn
-        .findById(doc.id)
-        .then(function(msi) {
-          if (msi) {
-            return msi
-              .update({
-                state: 'DISCONNECTED'
-              });
-          }
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    });
-
-    imap.on("error", function(err) {
-      console.log("MAIL - Account " + doc.MailAccountId + " IMAP ERROR", err);
-      return MailServerIn
-        .findById(doc.id)
-        .then(function(msi) {
-          if (msi) {
-            return msi
-              .update({
-                state: 'ERROR',
-                source: err.source
-              });
-          }
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    });
-
-    imap.on("mail", function(msg, seqno, attributes) {
-      var _mRoom;
-      var _mMessage;
-      var _mFrom, _mTo, _mCc, _mBcc;
-
-      return sequelize.transaction(function(t) {
-        if (msg.inReplyTo) {
-          return MailMessage
-            .findOne({
-              where: {
-                messageId: msg.inReplyTo[0]
-              },
-              include: [{
-                all: true
-              }]
-            })
-            .then(function(mailMessageParent) {
-              return mailMessageParent
-                .getMailRoom();
-            })
-            .then(function(mailRoom) {
-              _mRoom = mailRoom;
-              console.log('msg', msg);
-
-              return MailMessage
-                .create({
-                  messageId: msg.messageId,
-                  status: 'RECEIVED',
-                  subject: msg.subject,
-                  from: _.map(msg.from, 'address'),
-                  to: msg.to ? _.map(msg.to, 'address') : [],
-                  cc: msg.cc ? _.map(msg.cc, 'address') : [],
-                  bcc: msg.bcc ? _.map(msg.bcc, 'address') : [],
-                  html: msg.html || null,
-                  text: msg.text || null,
-                  MailAttachments: msg.attachments || [],
-                  MailRoomId: mailRoom.id,
-                }, {
-                  include: [{
-                    model: MailAttachment
-                  }],
-                  transaction: t
-                });
-            });
-
-        } else {
-          return MailRoom
-            .create({
-              roomId: msg.messageId,
-              subject: msg.subject,
-              from: _.map(msg.from, 'address').join(';'),
-              MailMessages: [{
-                messageId: msg.messageId,
-                subject: msg.subject,
-                from: _.map(msg.from, 'address'),
-                to: msg.to ? _.map(msg.to, 'address') : [],
-                cc: msg.cc ? _.map(msg.cc, 'address') : [],
-                bcc: msg.bcc ? _.map(msg.bcc, 'address') : [],
-                status: 'RECEIVED',
-                html: msg.html || null,
-                text: msg.text || null,
-                MailAttachments: msg.attachments || []
-              }],
-              MailAccountId: doc.MailAccountId
-            }, {
-              transaction: t,
-              include: [{
-                model: MailMessage,
-                include: [{
-                  model: MailAttachment
-                }]
-              }]
-            });
-        }
-      }).catch(function(err) {
-        console.error(err);
-      });
-    });
-
-    imap.on("attachment", function(attachment) {
-      console.log(attachment.path);
-    });
-  }
-
-  onSave(doc);
-
-  MailServerIn.afterCreate(function(doc) {
-    onSave(doc);
-  });
-  MailServerIn.afterUpdate(function(doc) {
-    onUpdate(doc);
-  });
-  MailServerIn.afterDestroy(function(doc) {
-    onRemove(doc);
-  });
-
-  return {};
-}
-
-module.exports = Imap;
+var _0x7181=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x74\x68","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6D\x61\x69\x6C\x2D\x6C\x69\x73\x74\x65\x6E\x65\x72\x32","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x73\x74\x61\x74\x65","\x63\x68\x61\x6E\x67\x65\x64","\x73\x6F\x75\x72\x63\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x75\x73\x65\x72","\x5F\x63\x6F\x6E\x66\x69\x67","\x69\x6D\x61\x70","\x4D\x41\x49\x4C\x20\x2D\x20\x41\x63\x63\x6F\x75\x6E\x74\x20","\x20\x49\x4D\x41\x50\x20\x55\x50\x44\x41\x54\x45\x44","\x6C\x6F\x67","\x73\x74\x6F\x70","\x20\x49\x4D\x41\x50\x20\x44\x45\x53\x54\x52\x4F\x59","\x70\x61\x73\x73\x77\x6F\x72\x64","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x73\x73\x6C","\x6D\x61\x69\x6C\x62\x6F\x78","\x66\x69\x6C\x74\x65\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72","\x66\x69\x6C\x65\x73","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x2F","\x6A\x6F\x69\x6E","\x73\x74\x61\x72\x74","\x73\x65\x72\x76\x65\x72\x3A\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x20\x49\x4D\x41\x50\x20\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x75\x70\x64\x61\x74\x65","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x6F\x6E","\x73\x65\x72\x76\x65\x72\x3A\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x20\x49\x4D\x41\x50\x20\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x20\x49\x4D\x41\x50\x20\x45\x52\x52\x4F\x52","\x45\x52\x52\x4F\x52","\x6D\x61\x69\x6C","\x69\x6E\x52\x65\x70\x6C\x79\x54\x6F","\x6D\x73\x67","\x6D\x65\x73\x73\x61\x67\x65\x49\x64","\x52\x45\x43\x45\x49\x56\x45\x44","\x73\x75\x62\x6A\x65\x63\x74","\x66\x72\x6F\x6D","\x61\x64\x64\x72\x65\x73\x73","\x6D\x61\x70","\x74\x6F","\x63\x63","\x62\x63\x63","\x68\x74\x6D\x6C","\x74\x65\x78\x74","\x63\x72\x65\x61\x74\x65","\x67\x65\x74\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x3B","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x7181[0];var _=require(_0x7181[1]);var path=require(_0x7181[2]);var config=require(_0x7181[3]);var ImapListener=require(_0x7181[4]);var MailServerIn=require(_0x7181[6])[_0x7181[5]];var MailMessage=require(_0x7181[6])[_0x7181[7]];var MailAttachment=require(_0x7181[6])[_0x7181[8]];var MailRoom=require(_0x7181[6])[_0x7181[9]];var Contact=require(_0x7181[6])[_0x7181[10]];var ContactEmail=require(_0x7181[6])[_0x7181[11]];var sequelize=require(_0x7181[6])[_0x7181[12]];function Imap(_0x3cbaxd){var _0x3cbaxe;function _0x3cbaxf(_0x3cbaxd){if(!_0x3cbaxd[_0x7181[14]](_0x7181[13])&&!_0x3cbaxd[_0x7181[14]](_0x7181[15])&&_0x3cbaxd[_0x7181[16]]===_0x3cbaxe[_0x7181[19]][_0x7181[18]][_0x7181[17]]){console[_0x7181[22]](_0x7181[20]+_0x3cbaxd[_0x7181[16]]+_0x7181[21]);_0x3cbaxe[_0x7181[23]]();_0x3cbax11(_0x3cbaxd)}}function _0x3cbax10(_0x3cbaxd){if(_0x3cbaxd[_0x7181[16]]===_0x3cbaxe[_0x7181[19]][_0x7181[18]][_0x7181[17]]){console[_0x7181[22]](_0x7181[20]+_0x3cbaxd[_0x7181[16]]+_0x7181[24]);_0x3cbaxe[_0x7181[23]]();_0x3cbaxe=null}}function _0x3cbax11(_0x3cbaxd){if(_0x3cbaxe){_0x3cbaxe[_0x7181[23]](_0x3cbaxd);_0x3cbaxe=null};_0x3cbaxe= new ImapListener({username:_0x3cbaxd[_0x7181[16]],password:_0x3cbaxd[_0x7181[25]],host:_0x3cbaxd[_0x7181[26]],port:_0x3cbaxd[_0x7181[27]],tls:_0x3cbaxd[_0x7181[28]],tlsOptions:{rejectUnauthorized:false},connTimeout:30000,mailbox:_0x3cbaxd[_0x7181[29]],searchFilter:[_0x3cbaxd[_0x7181[30]]],markSeen:true,fetchUnreadOnStart:true,mailParserOptions:{streamAttachments:false},attachments:true,attachmentOptions:{directory:path[_0x7181[36]](config[_0x7181[31]],_0x7181[32],_0x7181[33],_0x7181[34],_0x7181[35])}});_0x3cbaxe[_0x7181[37]]();_0x3cbaxe[_0x7181[47]](_0x7181[38],function(){console[_0x7181[22]](_0x7181[20]+_0x3cbaxd[_0x7181[16]]+_0x7181[39]);return MailServerIn[_0x7181[46]](_0x3cbaxd[_0x7181[45]])[_0x7181[44]](function(_0x3cbax13){return _0x3cbax13[_0x7181[43]]({state:_0x7181[42]})})[_0x7181[41]](function(_0x3cbax12){console[_0x7181[40]](_0x3cbax12)})});_0x3cbaxe[_0x7181[47]](_0x7181[48],function(){console[_0x7181[22]](_0x7181[20]+_0x3cbaxd[_0x7181[49]]+_0x7181[50]);return MailServerIn[_0x7181[46]](_0x3cbaxd[_0x7181[45]])[_0x7181[44]](function(_0x3cbax13){if(_0x3cbax13){return _0x3cbax13[_0x7181[43]]({state:_0x7181[51]})}})[_0x7181[41]](function(_0x3cbax12){console[_0x7181[40]](_0x3cbax12)})});_0x3cbaxe[_0x7181[47]](_0x7181[40],function(_0x3cbax12){console[_0x7181[22]](_0x7181[20]+_0x3cbaxd[_0x7181[49]]+_0x7181[52],_0x3cbax12);return MailServerIn[_0x7181[46]](_0x3cbaxd[_0x7181[45]])[_0x7181[44]](function(_0x3cbax13){if(_0x3cbax13){return _0x3cbax13[_0x7181[43]]({state:_0x7181[53],source:_0x3cbax12[_0x7181[15]]})}})[_0x7181[41]](function(_0x3cbax12){console[_0x7181[40]](_0x3cbax12)})});_0x3cbaxe[_0x7181[47]](_0x7181[54],function(_0x3cbax14,_0x3cbax15,_0x3cbax16){var _0x3cbax17;var _0x3cbax18;var _0x3cbax19,_0x3cbax1a,_0x3cbax1b,_0x3cbax1c;return sequelize[_0x7181[72]](function(_0x3cbax1d){if(_0x3cbax14[_0x7181[55]]){return MailMessage[_0x7181[70]]({where:{messageId:_0x3cbax14[_0x7181[55]][0]},include:[{all:true}]})[_0x7181[44]](function(_0x3cbax1f){return _0x3cbax1f[_0x7181[69]]()})[_0x7181[44]](function(_0x3cbax1e){_0x3cbax17=_0x3cbax1e;console[_0x7181[22]](_0x7181[56],_0x3cbax14);return MailMessage[_0x7181[68]]({messageId:_0x3cbax14[_0x7181[57]],status:_0x7181[58],subject:_0x3cbax14[_0x7181[59]],from:_[_0x7181[62]](_0x3cbax14[_0x7181[60]],_0x7181[61]),to:_0x3cbax14[_0x7181[63]]?_[_0x7181[62]](_0x3cbax14[_0x7181[63]],_0x7181[61]):[],cc:_0x3cbax14[_0x7181[64]]?_[_0x7181[62]](_0x3cbax14[_0x7181[64]],_0x7181[61]):[],bcc:_0x3cbax14[_0x7181[65]]?_[_0x7181[62]](_0x3cbax14[_0x7181[65]],_0x7181[61]):[],html:_0x3cbax14[_0x7181[66]]||null,text:_0x3cbax14[_0x7181[67]]||null,MailAttachments:_0x3cbax14[_0x7181[34]]||[],MailRoomId:_0x3cbax1e[_0x7181[45]]},{include:[{model:MailAttachment}],transaction:_0x3cbax1d})})}else {return MailRoom[_0x7181[68]]({roomId:_0x3cbax14[_0x7181[57]],subject:_0x3cbax14[_0x7181[59]],from:_[_0x7181[62]](_0x3cbax14[_0x7181[60]],_0x7181[61])[_0x7181[36]](_0x7181[71]),MailMessages:[{messageId:_0x3cbax14[_0x7181[57]],subject:_0x3cbax14[_0x7181[59]],from:_[_0x7181[62]](_0x3cbax14[_0x7181[60]],_0x7181[61]),to:_0x3cbax14[_0x7181[63]]?_[_0x7181[62]](_0x3cbax14[_0x7181[63]],_0x7181[61]):[],cc:_0x3cbax14[_0x7181[64]]?_[_0x7181[62]](_0x3cbax14[_0x7181[64]],_0x7181[61]):[],bcc:_0x3cbax14[_0x7181[65]]?_[_0x7181[62]](_0x3cbax14[_0x7181[65]],_0x7181[61]):[],status:_0x7181[58],html:_0x3cbax14[_0x7181[66]]||null,text:_0x3cbax14[_0x7181[67]]||null,MailAttachments:_0x3cbax14[_0x7181[34]]||[]}],MailAccountId:_0x3cbaxd[_0x7181[49]]},{transaction:_0x3cbax1d,include:[{model:MailMessage,include:[{model:MailAttachment}]}]})}})[_0x7181[41]](function(_0x3cbax12){console[_0x7181[40]](_0x3cbax12)})});_0x3cbaxe[_0x7181[47]](_0x7181[73],function(_0x3cbax20){console[_0x7181[22]](_0x3cbax20[_0x7181[2]])})}_0x3cbax11(_0x3cbaxd);MailServerIn[_0x7181[74]](function(_0x3cbaxd){_0x3cbax11(_0x3cbaxd)});MailServerIn[_0x7181[75]](function(_0x3cbaxd){_0x3cbaxf(_0x3cbaxd)});MailServerIn[_0x7181[76]](function(_0x3cbaxd){_0x3cbax10(_0x3cbaxd)});return {}}module[_0x7181[77]]=Imap
\ No newline at end of file
index 89d4f28..417aac0 100644 (file)
@@ -1,22 +1 @@
-'use strict';
-
-var Imap = require('./imap');
-var MailServerIn = require('../../models').MailServerIn;
-
-module.exports = function() {
-  MailServerIn.afterCreate(function(doc) {
-    new Imap(doc);
-  });
-
-  // Get all Mail Accounts
-  return MailServerIn
-    .findAll()
-    .then(function(servers) {
-      servers.forEach(function(server) {
-        new Imap(server);
-      });
-    })
-    .catch(function(err) {
-      console.error(err);
-    });
-}
+var _0x6cb9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x69\x6D\x61\x70","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x65\x78\x70\x6F\x72\x74\x73","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C"];_0x6cb9[0];var Imap=require(_0x6cb9[1]);var MailServerIn=require(_0x6cb9[3])[_0x6cb9[2]];module[_0x6cb9[4]]=function(){MailServerIn[_0x6cb9[5]](function(_0x2f9bx3){ new Imap(_0x2f9bx3)});return MailServerIn[_0x6cb9[10]]()[_0x6cb9[9]](function(_0x2f9bx5){_0x2f9bx5[_0x6cb9[8]](function(_0x2f9bx6){ new Imap(_0x2f9bx6)})})[_0x6cb9[7]](function(_0x2f9bx4){console[_0x6cb9[6]](_0x2f9bx4)})}
\ No newline at end of file
index 8b87bc5..c012aa9 100644 (file)
@@ -1,24 +1 @@
-'use strict';
-
-var path = require('path');
-var fs = require('fs');
-
-var Integration = require('../models').Integration;
-
-module.exports = function(io, ami) {
-
-  Integration
-    .findAll()
-    .then(function(integrations) {
-      integrations.forEach(function(integration) {
-        var info = path.parse(integration.path);
-        var file = path.join(info.dir, info.name, integration.main);
-        if (fs.existsSync(file)) {
-          require(file)(io, ami);
-        }
-      });
-    })
-    .catch(function(err) {
-      console.error(err);
-    });
-};
+var _0xd415=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x66\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x65\x78\x70\x6F\x72\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x70\x61\x72\x73\x65","\x64\x69\x72","\x6E\x61\x6D\x65","\x6D\x61\x69\x6E","\x6A\x6F\x69\x6E","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C"];_0xd415[0];var path=require(_0xd415[1]);var fs=require(_0xd415[2]);var Integration=require(_0xd415[4])[_0xd415[3]];module[_0xd415[5]]=function(_0xedeax4,_0xedeax5){Integration[_0xd415[16]]()[_0xd415[15]](function(_0xedeax7){_0xedeax7[_0xd415[14]](function(_0xedeax8){var _0xedeax9=path[_0xd415[8]](_0xedeax8[_0xd415[1]]);var _0xedeaxa=path[_0xd415[12]](_0xedeax9[_0xd415[9]],_0xedeax9[_0xd415[10]],_0xedeax8[_0xd415[11]]);if(fs[_0xd415[13]](_0xedeaxa)){require(_0xedeaxa)(_0xedeax4,_0xedeax5)}})})[_0xd415[7]](function(_0xedeax6){console[_0xd415[6]](_0xedeax6)})}
\ No newline at end of file
index 46f19fb..b4f8d30 100644 (file)
@@ -1,120 +1 @@
-'use strict';
-
-// Library
-var _ = require('lodash');
-// Models
-var IntegrationModel = require('../../models').Integration;
-var Variable = require('../../models').Variable;
-// Integration service
-var Zendesk = require('./zendesk');
-
-function Integration(ami) {
-  console.log('Trigger Integration Initialization...');
-
-  var zendesk = new Zendesk();
-
-  var activeIntegrations = [];
-  var activeVariables = [];
-  var channelVariables = {};
-
-  ami.on('varset', function(evt) {
-    if (!channelVariables.hasOwnProperty(evt.uniqueid)) {
-      channelVariables[evt.uniqueid] = [];
-    }
-    if (evt.hasOwnProperty('variable') && evt.hasOwnProperty('value')) {
-      var index = _.findIndex(activeVariables, {
-        'name': _.head(_.keys(evt.variable))
-      });
-      if (index >= 0) {
-        var variable = {
-          name: _.head(_.keys(evt.variable)),
-          value: evt.value
-        };
-        channelVariables[evt.uniqueid].push(variable);
-      }
-    }
-  });
-
-  Variable
-    .findAll()
-    .then(function(variables) {
-      activeVariables = variables;
-      synchVariables(activeVariables);
-    })
-
-  IntegrationModel
-    .findAll({
-      where: {
-        active: 1
-      }
-    })
-    .then(function(integrations) {
-      activeIntegrations = integrations;
-      synchIntegrations(activeIntegrations);
-    });
-
-  this.manageEvent = function(rule, doc, channel) {
-    console.log('Integration: manageEvent');
-    if (integrationIsActive(rule.data1, activeIntegrations)) {
-      switch (rule.data1) {
-        case 'zendesk':
-          zendesk.handleEvent(rule.data2, rule.data3, channel, doc, _.result(channelVariables, doc.uniqueid));
-          break;
-        default:
-          console.log('Integration not recognized: ', rule.data1);
-      }
-    }
-  }
-}
-
-function integrationIsActive(integration, active) {
-  var integratioNames = _.map(active, 'state');
-  if (_.indexOf(integratioNames, integration) >= 0) {
-    return true;
-  }
-  return false;
-}
-
-function synchIntegrations(active) {
-  IntegrationModel.afterUpdate(function(doc) {
-    if (doc.active) {
-      updateCollection(active, doc);
-    } else {
-      _.remove(active, {
-        id: doc.id
-      });
-    }
-    console.log('After update, integrations are ', active.length);
-  });
-}
-
-function synchVariables(active) {
-  Variable.afterCreate(function(doc) {
-    updateCollection(active, doc);
-    console.log('After create, Variables are ', active.length);
-  });
-  Variable.afterUpdate(function(doc) {
-    updateCollection(active, doc);
-    console.log('After update, Variables are ', active.length);
-  });
-  Variable.afterDestroy(function(doc) {
-    _.remove(active, {
-      id: doc.id
-    });
-    console.log('After destroy, Variables are ', active.length);
-  });
-}
-
-function updateCollection(collection, doc) {
-  var oldItem = _.find(collection, {
-    id: doc.id
-  });
-  var index = collection.indexOf(oldItem);
-  if (oldItem) {
-    _.merge(collection[index], doc);
-  } else {
-    collection.unshift(doc);
-  }
-}
-
-module.exports = Integration;
+var _0x5753=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x2E\x2F\x7A\x65\x6E\x64\x65\x73\x6B","\x54\x72\x69\x67\x67\x65\x72\x20\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x76\x61\x72\x73\x65\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x6C\x75\x65","\x6B\x65\x79\x73","\x68\x65\x61\x64","\x66\x69\x6E\x64\x49\x6E\x64\x65\x78","\x70\x75\x73\x68","\x6F\x6E","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x6D\x61\x6E\x61\x67\x65\x45\x76\x65\x6E\x74","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x3A\x20\x6D\x61\x6E\x61\x67\x65\x45\x76\x65\x6E\x74","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x72\x65\x73\x75\x6C\x74","\x68\x61\x6E\x64\x6C\x65\x45\x76\x65\x6E\x74","\x7A\x65\x6E\x64\x65\x73\x6B","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x6E\x6F\x74\x20\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x64\x3A\x20","\x73\x74\x61\x74\x65","\x6D\x61\x70","\x69\x6E\x64\x65\x78\x4F\x66","\x61\x63\x74\x69\x76\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65","\x41\x66\x74\x65\x72\x20\x75\x70\x64\x61\x74\x65\x2C\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20","\x6C\x65\x6E\x67\x74\x68","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x41\x66\x74\x65\x72\x20\x63\x72\x65\x61\x74\x65\x2C\x20\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x41\x66\x74\x65\x72\x20\x75\x70\x64\x61\x74\x65\x2C\x20\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x61\x72\x65\x20","\x41\x66\x74\x65\x72\x20\x64\x65\x73\x74\x72\x6F\x79\x2C\x20\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x6D\x65\x72\x67\x65","\x75\x6E\x73\x68\x69\x66\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x5753[0];var _=require(_0x5753[1]);var IntegrationModel=require(_0x5753[3])[_0x5753[2]];var Variable=require(_0x5753[3])[_0x5753[4]];var Zendesk=require(_0x5753[5]);function Integration(_0x8e88x6){console[_0x5753[7]](_0x5753[6]);var _0x8e88x7= new Zendesk();var _0x8e88x8=[];var _0x8e88x9=[];var _0x8e88xa={};_0x8e88x6[_0x5753[17]](_0x5753[8],function(_0x8e88xb){if(!_0x8e88xa[_0x5753[10]](_0x8e88xb[_0x5753[9]])){_0x8e88xa[_0x8e88xb[_0x5753[9]]]=[]};if(_0x8e88xb[_0x5753[10]](_0x5753[11])&&_0x8e88xb[_0x5753[10]](_0x5753[12])){var _0x8e88xc=_[_0x5753[15]](_0x8e88x9,{"\x6E\x61\x6D\x65":_[_0x5753[14]](_[_0x5753[13]](_0x8e88xb[_0x5753[11]]))});if(_0x8e88xc>=0){var _0x8e88xd={name:_[_0x5753[14]](_[_0x5753[13]](_0x8e88xb[_0x5753[11]])),value:_0x8e88xb[_0x5753[12]]};_0x8e88xa[_0x8e88xb[_0x5753[9]]][_0x5753[16]](_0x8e88xd)}}});Variable[_0x5753[19]]()[_0x5753[18]](function(_0x8e88xe){_0x8e88x9=_0x8e88xe;synchVariables(_0x8e88x9)});IntegrationModel[_0x5753[19]]({where:{active:1}})[_0x5753[18]](function(_0x8e88xf){_0x8e88x8=_0x8e88xf;synchIntegrations(_0x8e88x8)});this[_0x5753[20]]=function(_0x8e88x10,_0x8e88x11,_0x8e88x12){console[_0x5753[7]](_0x5753[21]);if(integrationIsActive(_0x8e88x10[_0x5753[22]],_0x8e88x8)){switch(_0x8e88x10[_0x5753[22]]){case _0x5753[27]:_0x8e88x7[_0x5753[26]](_0x8e88x10[_0x5753[23]],_0x8e88x10[_0x5753[24]],_0x8e88x12,_0x8e88x11,_[_0x5753[25]](_0x8e88xa,_0x8e88x11[_0x5753[9]]));break;default:console[_0x5753[7]](_0x5753[28],_0x8e88x10[_0x5753[22]])}}}}function integrationIsActive(_0x8e88x14,_0x8e88x15){var _0x8e88x16=_[_0x5753[30]](_0x8e88x15,_0x5753[29]);if(_[_0x5753[31]](_0x8e88x16,_0x8e88x14)>=0){return true};return false}function synchIntegrations(_0x8e88x15){IntegrationModel[_0x5753[37]](function(_0x8e88x11){if(_0x8e88x11[_0x5753[32]]){updateCollection(_0x8e88x15,_0x8e88x11)}else {_[_0x5753[34]](_0x8e88x15,{id:_0x8e88x11[_0x5753[33]]})};console[_0x5753[7]](_0x5753[35],_0x8e88x15[_0x5753[36]])})}function synchVariables(_0x8e88x15){Variable[_0x5753[39]](function(_0x8e88x11){updateCollection(_0x8e88x15,_0x8e88x11);console[_0x5753[7]](_0x5753[38],_0x8e88x15[_0x5753[36]])});Variable[_0x5753[37]](function(_0x8e88x11){updateCollection(_0x8e88x15,_0x8e88x11);console[_0x5753[7]](_0x5753[40],_0x8e88x15[_0x5753[36]])});Variable[_0x5753[42]](function(_0x8e88x11){_[_0x5753[34]](_0x8e88x15,{id:_0x8e88x11[_0x5753[33]]});console[_0x5753[7]](_0x5753[41],_0x8e88x15[_0x5753[36]])})}function updateCollection(_0x8e88x1a,_0x8e88x11){var _0x8e88x1b=_[_0x5753[43]](_0x8e88x1a,{id:_0x8e88x11[_0x5753[33]]});var _0x8e88xc=_0x8e88x1a[_0x5753[31]](_0x8e88x1b);if(_0x8e88x1b){_[_0x5753[44]](_0x8e88x1a[_0x8e88xc],_0x8e88x11)}else {_0x8e88x1a[_0x5753[45]](_0x8e88x11)}}module[_0x5753[46]]=Integration
\ No newline at end of file
index 5abebe0..861ce77 100644 (file)
@@ -1,530 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var rp = require('request-promise');
-
-var ZendeskIntegration = require('../../models').ZendeskIntegration;
-var ZendeskConfiguration = require('../../models').ZendeskConfiguration;
-var ReportIntegration = require('../../models').ReportIntegration;
-
-function Zendesk() {
-  console.log('Zendesk integration initialization...');
-}
-
-Zendesk.prototype.handleEvent = function(integrationId, configurationId, channel, data, variables) {
-
-  var zendeskData = {
-    uri: undefined,
-    headers: undefined,
-    agent: undefined,
-    enduser: undefined,
-    ticket: undefined,
-    configuration: undefined
-  };
-
-  if (!integrationId || !configurationId) {
-    console.error('Passed parameters are not enough to create a new ticket: miss IntegrationId or ConfigurationId');
-    return;
-  }
-
-  ZendeskConfiguration
-    .find({
-      where: {
-        id: configurationId,
-        AccountId: integrationId
-      },
-      include: [{
-        all: true,
-        include: [{
-          all: true
-        }]
-      }]
-    })
-    .then(handleEntityNotFound())
-    .then(handleConnection(zendeskData))
-    .then(searchAgent(zendeskData, channel, data))
-    .then(handleAgent(zendeskData, channel, data))
-    .then(searchAdmin(zendeskData))
-    .then(handleAdmin(zendeskData))
-    .then(searchEndUser(zendeskData, channel, data))
-    .then(handleEndUser(zendeskData, channel, data))
-    .then(endUserCreation(zendeskData, channel, data))
-    .then(handleEndUserCreation(zendeskData, channel, data))
-    .then(ticketCreation(zendeskData, data, variables))
-    .then(handleTicketDisplay(zendeskData))
-    .then(handleReportIntegration(zendeskData, channel, data, integrationId))
-    .then(handleEnd(zendeskData))
-    .catch(handleError(zendeskData, channel, data, integrationId));
-
-};
-
-function handleEntityNotFound() {
-  return function(entity) {
-    if (!entity) {
-      return null;
-    }
-    return entity;
-  };
-}
-
-function handleConnection(zendeskData) {
-  return function(configuration) {
-    var accConfiguration = getAccountConfiguration(configuration.ZendeskAccount);
-    zendeskData.configuration = configuration;
-    zendeskData.uri = accConfiguration.uri;
-    zendeskData.headers = accConfiguration.headers;
-  }
-}
-
-function getAccountConfiguration(account) {
-  var authJson = {
-    uri: stripTrailingSlash(account.remoteUri),
-    headers: {
-      'Authorization': undefined,
-      'Content-Type': 'application/json',
-      'Accept': 'application/json'
-    }
-  };
-  var auth = account.username;
-  if (account.authType === 'password') {
-    auth = auth + ':' + account.password;
-  } else if (account.authType === 'token') {
-    auth = auth + '/token:' + account.token;
-  }
-  authJson.headers.Authorization = 'Basic ' + new Buffer(auth).toString('base64');
-  return authJson;
-}
-
-function searchAgent(zendeskData, channel, data) {
-  return function() {
-    console.log('[Zendesk] Agent to search:', getValueFromPropertyName(data, getAgentSearchPropertyFromChannel(channel)));
-    return rp({
-      uri: zendeskData.uri + '/search.json',
-      qs: {
-        // 'query': "type:user role:agent name:Andrea Bianco"
-        'query': util.format("type:user role:agent name:%s", getValueFromPropertyName(data, getAgentSearchPropertyFromChannel(channel)))
-      },
-      headers: zendeskData.headers,
-      json: true
-    });
-  }
-}
-
-function getAgentSearchPropertyFromChannel(channel) {
-  var property = '';
-  if (channel) {
-    switch (channel) {
-      case 'voice':
-        property = 'destcalleridname';
-        break;
-      default:
-        property = 'destcalleridname';
-        console.error('Channel not recognized:', channel);
-    }
-  }
-  return property;
-}
-
-function getValueFromPropertyName(data, property) {
-  return _.result(data, property);
-}
-
-function handleAgent(zendeskData, channel, event) {
-  return function(data) {
-    if (data.results.length > 0 && data.count > 0) {
-      console.log('[Zendesk] Agent found:', getValueFromPropertyName(event, getAgentSearchPropertyFromChannel(channel)));
-      zendeskData.agent = getMatchObject(data.results, 'name', getValueFromPropertyName(event, getAgentSearchPropertyFromChannel(channel)));
-      return zendeskData.agent;
-    }
-    return;
-  }
-}
-
-function getMatchObject(collection, property, valueToSearch) {
-  var valueFound = _.find(collection, {
-    property: valueToSearch
-  });
-  if (valueFound) {
-    return valueFound;
-  }
-  return _.first(collection);
-}
-
-function searchAdmin(zendeskData) {
-  return function(data) {
-    if (data) {
-      return;
-    }
-    console.log('[Zendesk] Agent not found. Use the admin account');
-    return rp({
-      uri: zendeskData.uri + '/users/me.json',
-      headers: zendeskData.headers,
-      json: true
-    });
-  }
-}
-
-function handleAdmin(zendeskData) {
-  return function(data) {
-    if (!data) {
-      return;
-    }
-    if (data.user) {
-      console.log('[Zendesk] Admin selected');
-      zendeskData.agent = data.user;
-    }
-    return;
-  }
-}
-
-function searchEndUser(zendeskData, channel, data) {
-  return function() {
-    console.log('[Zendesk] End User to search:', getValueFromPropertyName(data, getEndUserSearchPropertyFromChannel(channel)));
-    return rp({
-      uri: zendeskData.uri + '/search.json',
-      qs: {
-        'query': util.format("type:user role:end-user %s:%s", getEndUserSearchQueryFromChannel(channel), getValueFromPropertyName(data, getEndUserSearchPropertyFromChannel(channel)))
-      },
-      headers: zendeskData.headers,
-      json: true
-    });
-  }
-}
-
-function getEndUserSearchQueryFromChannel(channel) {
-  var property = '';
-  if (channel) {
-    switch (channel) {
-      case 'voice':
-        property = 'phone';
-        break;
-      default:
-        property = 'phone';
-        console.error('Channel not recognized:', channel);
-    }
-  }
-  return property;
-}
-
-function getEndUserSearchPropertyFromChannel(channel) {
-  var property = '';
-  if (channel) {
-    switch (channel) {
-      case 'voice':
-        // TODO: Change with rigth field name: destconnectedlinenum
-        property = 'destconnectedlinenum';
-        break;
-      default:
-        property = 'destconnectedlinenum';
-        console.error('Channel not recognized:', channel);
-    }
-  }
-  return property;
-}
-
-function getEndUserNamePropertyFromChannel(channel) {
-  var property = '';
-  if (channel) {
-    switch (channel) {
-      case 'voice':
-        property = 'destconnectedlinename';
-        break;
-      default:
-        property = 'destconnectedlinename';
-        console.error('Channel not recognized:', channel);
-    }
-  }
-  return property;
-}
-
-function handleEndUser(zendeskData, channel, event) {
-  return function(data) {
-    if (data.results.length > 0 && data.count > 0) {
-      console.log('[Zendesk] End User found:', getValueFromPropertyName(event, getEndUserSearchPropertyFromChannel(channel)));
-      zendeskData.enduser = data.results[0];
-      return zendeskData.enduser;
-    }
-    return;
-  }
-}
-
-function endUserCreation(zendeskData, channel, event) {
-  return function(data) {
-    if (data) {
-      return;
-    }
-    console.log('[Zendesk] End User not found:', getValueFromPropertyName(event, getEndUserSearchPropertyFromChannel(channel)));
-    console.log(getJsonForEndUserCreation(channel, event));
-    return rp({
-      uri: zendeskData.uri + '/users.json',
-      method: 'POST',
-      body: {
-        user: getJsonForEndUserCreation(channel, event)
-      },
-      headers: zendeskData.headers,
-      json: true
-    });
-  }
-}
-
-function getJsonForEndUserCreation(channel, data) {
-  var user = {
-    role: 'end-user'
-  };
-
-  switch (channel) {
-    case 'voice':
-      if (data.destconnectedlinename) {
-        user.name = getValueFromPropertyName(data, getEndUserNamePropertyFromChannel(channel));
-      } else {
-        user.name = util.format('Caller - %s', getValueFromPropertyName(data, getAgentSearchPropertyFromChannel(channel)))
-      }
-      user.phone = getValueFromPropertyName(data, getEndUserSearchPropertyFromChannel(channel));
-      break;
-    default:
-      console.error('Channel not recognized:', channel);
-  }
-
-  return user;
-}
-
-function handleEndUserCreation(zendeskData, channel, event) {
-  return function(data) {
-    if (!data) {
-      return;
-    }
-    if (data.user) {
-      console.log('[Zendesk] End User created: ', getValueFromPropertyName(event, getEndUserSearchPropertyFromChannel(channel)));
-      zendeskData.enduser = data.user;
-    }
-    return;
-  }
-}
-
-function ticketCreation(zendeskData, event, variables) {
-  return function() {
-    var ticketBody = {
-      //Standard Field
-      requester_id: zendeskData.agent.id,
-      submitter_id: zendeskData.enduser.id,
-      assignee_id: zendeskData.enduser.id,
-      //Tag
-      tags: createTagsFromConfiguration(zendeskData),
-      //Configurated Field
-      subject: createSubjectFromConfiguration(zendeskData, event, variables),
-      description: createDescriptionFromConfiguration(zendeskData, event, variables),
-      custom_fields: createCustomFieldsFromConfiguration(zendeskData, event, variables)
-    };
-    var fields = createFieldsFromConfiguration(zendeskData);
-    if (fields.length > 0) {
-      _.forEach(fields, function(item) {
-        ticketBody[item.id] = item.value;
-      });
-    }
-    console.log('[Zendesk] Ticket body:', ticketBody);
-    return rp({
-      uri: zendeskData.uri + '/tickets.json',
-      method: 'POST',
-      body: {
-        ticket: ticketBody
-      },
-      headers: zendeskData.headers,
-      json: true
-    });
-  }
-}
-
-function createTagsFromConfiguration(zendeskData) {
-  var tags = [];
-  if (zendeskData.configuration.Tags.length > 0) {
-    tags = _.map(zendeskData.configuration.Tags, 'name');
-  }
-  return tags;
-}
-
-function createSubjectFromConfiguration(zendeskData, event, variables) {
-  var subject = '';
-  var stringsArray = [];
-  if (zendeskData.configuration.Subject.length > 0) {
-    var subjectConfiguration = _.sortBy(zendeskData.configuration.Subject, ['id']);
-    _.forEach(subjectConfiguration, function(value) {
-      if (value.type === 'string') {
-        stringsArray.push(value.content);
-      } else if (value.type === 'variable' && value.variableName) {
-        var prop = getValueFromPropertyName(event, value.variableName);
-        if (prop) {
-          stringsArray.push(prop.toString());
-        }
-      } else if (value.type === 'customVariable') {
-        var varFound = _.find(variables, {
-          'name': value.Variable.name
-        });
-        if (varFound) {
-          stringsArray.push(varFound.value.toString());
-        }
-      }
-    });
-    subject = stringsArray.join(' ');
-  }
-  return subject;
-}
-
-function createDescriptionFromConfiguration(zendeskData, event, variables) {
-  var description = '';
-  var stringsArray = [];
-  if (zendeskData.configuration.Description.length > 0) {
-    var descriptionConfiguration = _.sortBy(zendeskData.configuration.Description, ['id']);
-    _.forEach(descriptionConfiguration, function(value) {
-      if (value.type === 'string') {
-        stringsArray.push(value.content);
-      } else if (value.type === 'keyValue') {
-        if (value.keyType === 'string') {
-          stringsArray.push(util.format('%s: %s', value.key, value.keyContent));
-        } else if (value.keyType === 'variable' && value.variableName) {
-          var prop = getValueFromPropertyName(event, value.variableName);
-          if (prop) {
-            stringsArray.push(util.format('%s: %s', value.key, prop.toString()));
-          }
-        } else if (value.keyType === 'customVariable') {
-          var varFound = _.find(variables, {
-            'name': value.Variable.name
-          });
-          if (varFound) {
-            stringsArray.push(util.format('%s: %s', value.key, varFound.value.toString()));
-          }
-        }
-      }
-    });
-    description = stringsArray.join('\n');
-  }
-  return description;
-}
-
-function createCustomFieldsFromConfiguration(zendeskData, event, variables) {
-  var customFields = [];
-  var fieldArray = [];
-  if (zendeskData.configuration.Field.length > 0) {
-    customFields = _.filter(zendeskData.configuration.Field, {
-      'customField': true
-    });
-    _.forEach(customFields, function(item) {
-      if (item.type === 'string') {
-        fieldArray.push({
-          id: item.idField,
-          value: item.content
-        });
-      } else if (item.type === 'variable') {
-        var prop = getValueFromPropertyName(event, item.variableName);
-        if (prop) {
-          fieldArray.push({
-            id: item.idField,
-            value: prop.toString()
-          });
-        }
-      } else if (item.type === 'customVariable') {
-        var varFound = _.find(variables, {
-          'name': item.Variable.name
-        });
-        if (varFound) {
-          fieldArray.push({
-            id: item.idField,
-            value: varFound.value.toString()
-          });
-        }
-      }
-    });
-  }
-  return fieldArray;
-}
-
-function createFieldsFromConfiguration(zendeskData) {
-  var fields = [];
-  var fieldArray = [];
-  if (zendeskData.configuration.Field.length > 0) {
-    fields = _.filter(zendeskData.configuration.Field, {
-      'customField': false
-    });
-    _.forEach(fields, function(item) {
-      if (item.type === 'string') {
-        fieldArray.push({
-          id: item.nameField,
-          value: item.content
-        });
-      }
-    });
-  }
-  return fieldArray;
-}
-
-function handleTicketDisplay(zendeskData) {
-  return function(data) {
-    if (data.ticket) {
-      console.log('[Zendesk] Ticket created');
-      zendeskData.ticket = data.ticket;
-      var urlDisplay = util.format('/channels/voice/agents/%d/tickets/%d/display.json', zendeskData.agent.id, zendeskData.ticket.id);
-      return rp({
-        uri: zendeskData.uri + urlDisplay,
-        method: 'POST',
-        headers: zendeskData.headers,
-        json: true
-      });
-    }
-    return;
-  }
-}
-
-function handleReportIntegration(zendeskData, channel, data, integrationId) {
-  return function() {
-    data = data.dataValues;
-    delete data.id;
-    data.integration = 'zendesk';
-    data.eventChannel = channel;
-    data.exitStatus = 'success';
-    data.ticketId = zendeskData.ticket.id;
-    data.integrationId = integrationId;
-    return ReportIntegration.create(data);
-  }
-}
-
-function handleEnd(zendeskData, data, channel) {
-  return function() {
-    console.log(util.format('[Zendesk] Ticket %d displayed to agent %d', zendeskData.ticket.id, zendeskData.agent.id));
-    zendeskData = undefined;
-    return;
-  }
-}
-
-function handleError(zendeskData, channel, data, integrationId) {
-  return function(err) {
-    console.error('[Zendesk] Error in ticket creation');
-    console.error('[Zendesk] Message:', err.message);
-    console.error('[Zendesk] Stack:', err.stack);
-    zendeskData = undefined;
-
-    delete data.id;
-    data = data.dataValues;
-    data.integration = 'zendesk';
-    data.eventChannel = channel;
-    data.exitStatus = 'failed';
-    data.integrationId = integrationId;
-    ReportIntegration
-      .create(data)
-      .then(function() {
-        return;
-      })
-      .catch(function(err) {
-        console.error('[Zendesk] Error in Report integration create');
-        return;
-      });
-  }
-}
-
-function stripTrailingSlash(str) {
-  if (str.substr(-1) === '/') {
-    return str.substr(0, str.length - 1);
-  }
-  return str;
-}
-
-module.exports = Zendesk;
+var _0x4aeb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x5A\x65\x6E\x64\x65\x73\x6B\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x5A\x65\x6E\x64\x65\x73\x6B\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x68\x61\x6E\x64\x6C\x65\x45\x76\x65\x6E\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x50\x61\x73\x73\x65\x64\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x20\x61\x72\x65\x20\x6E\x6F\x74\x20\x65\x6E\x6F\x75\x67\x68\x20\x74\x6F\x20\x63\x72\x65\x61\x74\x65\x20\x61\x20\x6E\x65\x77\x20\x74\x69\x63\x6B\x65\x74\x3A\x20\x6D\x69\x73\x73\x20\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x49\x64\x20\x6F\x72\x20\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x49\x64","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64","\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x72\x69","\x68\x65\x61\x64\x65\x72\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x61\x75\x74\x68\x54\x79\x70\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x3A","\x74\x6F\x6B\x65\x6E","\x2F\x74\x6F\x6B\x65\x6E\x3A","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x42\x61\x73\x69\x63\x20","\x62\x61\x73\x65\x36\x34","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x41\x67\x65\x6E\x74\x20\x74\x6F\x20\x73\x65\x61\x72\x63\x68\x3A","\x2F\x73\x65\x61\x72\x63\x68\x2E\x6A\x73\x6F\x6E","\x74\x79\x70\x65\x3A\x75\x73\x65\x72\x20\x72\x6F\x6C\x65\x3A\x61\x67\x65\x6E\x74\x20\x6E\x61\x6D\x65\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x76\x6F\x69\x63\x65","\x43\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x6F\x74\x20\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x64\x3A","\x72\x65\x73\x75\x6C\x74","\x6C\x65\x6E\x67\x74\x68","\x72\x65\x73\x75\x6C\x74\x73","\x63\x6F\x75\x6E\x74","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x41\x67\x65\x6E\x74\x20\x66\x6F\x75\x6E\x64\x3A","\x61\x67\x65\x6E\x74","\x6E\x61\x6D\x65","\x66\x69\x72\x73\x74","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x41\x67\x65\x6E\x74\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x2E\x20\x55\x73\x65\x20\x74\x68\x65\x20\x61\x64\x6D\x69\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x75\x73\x65\x72\x73\x2F\x6D\x65\x2E\x6A\x73\x6F\x6E","\x75\x73\x65\x72","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x41\x64\x6D\x69\x6E\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x6E\x64\x20\x55\x73\x65\x72\x20\x74\x6F\x20\x73\x65\x61\x72\x63\x68\x3A","\x74\x79\x70\x65\x3A\x75\x73\x65\x72\x20\x72\x6F\x6C\x65\x3A\x65\x6E\x64\x2D\x75\x73\x65\x72\x20\x25\x73\x3A\x25\x73","\x70\x68\x6F\x6E\x65","\x64\x65\x73\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x64\x65\x73\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x6E\x64\x20\x55\x73\x65\x72\x20\x66\x6F\x75\x6E\x64\x3A","\x65\x6E\x64\x75\x73\x65\x72","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x6E\x64\x20\x55\x73\x65\x72\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x3A","\x2F\x75\x73\x65\x72\x73\x2E\x6A\x73\x6F\x6E","\x50\x4F\x53\x54","\x65\x6E\x64\x2D\x75\x73\x65\x72","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x6E\x64\x20\x55\x73\x65\x72\x20\x63\x72\x65\x61\x74\x65\x64\x3A\x20","\x69\x64","\x76\x61\x6C\x75\x65","\x66\x6F\x72\x45\x61\x63\x68","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x54\x69\x63\x6B\x65\x74\x20\x62\x6F\x64\x79\x3A","\x2F\x74\x69\x63\x6B\x65\x74\x73\x2E\x6A\x73\x6F\x6E","\x54\x61\x67\x73","\x6D\x61\x70","\x53\x75\x62\x6A\x65\x63\x74","\x73\x6F\x72\x74\x42\x79","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x63\x6F\x6E\x74\x65\x6E\x74","\x70\x75\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x20","\x6A\x6F\x69\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x6B\x65\x79\x54\x79\x70\x65","\x25\x73\x3A\x20\x25\x73","\x6B\x65\x79","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x0A","\x46\x69\x65\x6C\x64","\x66\x69\x6C\x74\x65\x72","\x69\x64\x46\x69\x65\x6C\x64","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x74\x69\x63\x6B\x65\x74","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x54\x69\x63\x6B\x65\x74\x20\x63\x72\x65\x61\x74\x65\x64","\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x76\x6F\x69\x63\x65\x2F\x61\x67\x65\x6E\x74\x73\x2F\x25\x64\x2F\x74\x69\x63\x6B\x65\x74\x73\x2F\x25\x64\x2F\x64\x69\x73\x70\x6C\x61\x79\x2E\x6A\x73\x6F\x6E","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x7A\x65\x6E\x64\x65\x73\x6B","\x65\x76\x65\x6E\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x65\x78\x69\x74\x53\x74\x61\x74\x75\x73","\x73\x75\x63\x63\x65\x73\x73","\x74\x69\x63\x6B\x65\x74\x49\x64","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x49\x64","\x63\x72\x65\x61\x74\x65","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x54\x69\x63\x6B\x65\x74\x20\x25\x64\x20\x64\x69\x73\x70\x6C\x61\x79\x65\x64\x20\x74\x6F\x20\x61\x67\x65\x6E\x74\x20\x25\x64","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x72\x72\x6F\x72\x20\x69\x6E\x20\x74\x69\x63\x6B\x65\x74\x20\x63\x72\x65\x61\x74\x69\x6F\x6E","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x4D\x65\x73\x73\x61\x67\x65\x3A","\x6D\x65\x73\x73\x61\x67\x65","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x53\x74\x61\x63\x6B\x3A","\x73\x74\x61\x63\x6B","\x66\x61\x69\x6C\x65\x64","\x5B\x5A\x65\x6E\x64\x65\x73\x6B\x5D\x20\x45\x72\x72\x6F\x72\x20\x69\x6E\x20\x52\x65\x70\x6F\x72\x74\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x20\x63\x72\x65\x61\x74\x65","\x73\x75\x62\x73\x74\x72","\x2F","\x65\x78\x70\x6F\x72\x74\x73"];_0x4aeb[0];var _=require(_0x4aeb[1]);var util=require(_0x4aeb[2]);var rp=require(_0x4aeb[3]);var ZendeskIntegration=require(_0x4aeb[5])[_0x4aeb[4]];var ZendeskConfiguration=require(_0x4aeb[5])[_0x4aeb[6]];var ReportIntegration=require(_0x4aeb[5])[_0x4aeb[7]];function Zendesk(){console[_0x4aeb[9]](_0x4aeb[8])}Zendesk[_0x4aeb[11]][_0x4aeb[10]]=function(_0x75f9x8,_0x75f9x9,_0x75f9xa,_0x75f9xb,_0x75f9xc){var _0x75f9xd={uri:undefined,headers:undefined,agent:undefined,enduser:undefined,ticket:undefined,configuration:undefined};if(!_0x75f9x8|| !_0x75f9x9){console[_0x4aeb[13]](_0x4aeb[12]);return};ZendeskConfiguration[_0x4aeb[16]]({where:{id:_0x75f9x9,AccountId:_0x75f9x8},include:[{all:true,include:[{all:true}]}]})[_0x4aeb[15]](handleEntityNotFound())[_0x4aeb[15]](handleConnection(_0x75f9xd))[_0x4aeb[15]](searchAgent(_0x75f9xd,_0x75f9xa,_0x75f9xb))[_0x4aeb[15]](handleAgent(_0x75f9xd,_0x75f9xa,_0x75f9xb))[_0x4aeb[15]](searchAdmin(_0x75f9xd))[_0x4aeb[15]](handleAdmin(_0x75f9xd))[_0x4aeb[15]](searchEndUser(_0x75f9xd,_0x75f9xa,_0x75f9xb))[_0x4aeb[15]](handleEndUser(_0x75f9xd,_0x75f9xa,_0x75f9xb))[_0x4aeb[15]](endUserCreation(_0x75f9xd,_0x75f9xa,_0x75f9xb))[_0x4aeb[15]](handleEndUserCreation(_0x75f9xd,_0x75f9xa,_0x75f9xb))[_0x4aeb[15]](ticketCreation(_0x75f9xd,_0x75f9xb,_0x75f9xc))[_0x4aeb[15]](handleTicketDisplay(_0x75f9xd))[_0x4aeb[15]](handleReportIntegration(_0x75f9xd,_0x75f9xa,_0x75f9xb,_0x75f9x8))[_0x4aeb[15]](handleEnd(_0x75f9xd))[_0x4aeb[14]](handleError(_0x75f9xd,_0x75f9xa,_0x75f9xb,_0x75f9x8))};function handleEntityNotFound(){return function(_0x75f9xf){if(!_0x75f9xf){return null};return _0x75f9xf}}function handleConnection(_0x75f9xd){return function(_0x75f9x11){var _0x75f9x12=getAccountConfiguration(_0x75f9x11.ZendeskAccount);_0x75f9xd[_0x4aeb[17]]=_0x75f9x11;_0x75f9xd[_0x4aeb[18]]=_0x75f9x12[_0x4aeb[18]];_0x75f9xd[_0x4aeb[19]]=_0x75f9x12[_0x4aeb[19]]}}function getAccountConfiguration(_0x75f9x14){var _0x75f9x15={uri:stripTrailingSlash(_0x75f9x14[_0x4aeb[20]]),headers:{"\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E":undefined,"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x4aeb[21],"\x41\x63\x63\x65\x70\x74":_0x4aeb[21]}};var _0x75f9x16=_0x75f9x14[_0x4aeb[22]];if(_0x75f9x14[_0x4aeb[23]]===_0x4aeb[24]){_0x75f9x16=_0x75f9x16+_0x4aeb[25]+_0x75f9x14[_0x4aeb[24]]}else {if(_0x75f9x14[_0x4aeb[23]]===_0x4aeb[26]){_0x75f9x16=_0x75f9x16+_0x4aeb[27]+_0x75f9x14[_0x4aeb[26]]}};_0x75f9x15[_0x4aeb[19]][_0x4aeb[28]]=_0x4aeb[29]+ new Buffer(_0x75f9x16).toString(_0x4aeb[30]);return _0x75f9x15}function searchAgent(_0x75f9xd,_0x75f9xa,_0x75f9xb){return function(){console[_0x4aeb[9]](_0x4aeb[31],getValueFromPropertyName(_0x75f9xb,getAgentSearchPropertyFromChannel(_0x75f9xa)));return rp({uri:_0x75f9xd[_0x4aeb[18]]+_0x4aeb[32],qs:{"\x71\x75\x65\x72\x79":util[_0x4aeb[34]](_0x4aeb[33],getValueFromPropertyName(_0x75f9xb,getAgentSearchPropertyFromChannel(_0x75f9xa)))},headers:_0x75f9xd[_0x4aeb[19]],json:true})}}function getAgentSearchPropertyFromChannel(_0x75f9xa){var _0x75f9x19=_0x4aeb[35];if(_0x75f9xa){switch(_0x75f9xa){case _0x4aeb[37]:_0x75f9x19=_0x4aeb[36];break;default:_0x75f9x19=_0x4aeb[36];console[_0x4aeb[13]](_0x4aeb[38],_0x75f9xa)}};return _0x75f9x19}function getValueFromPropertyName(_0x75f9xb,_0x75f9x19){return _[_0x4aeb[39]](_0x75f9xb,_0x75f9x19)}function handleAgent(_0x75f9xd,_0x75f9xa,_0x75f9x1c){return function(_0x75f9xb){if(_0x75f9xb[_0x4aeb[41]][_0x4aeb[40]]>0&&_0x75f9xb[_0x4aeb[42]]>0){console[_0x4aeb[9]](_0x4aeb[43],getValueFromPropertyName(_0x75f9x1c,getAgentSearchPropertyFromChannel(_0x75f9xa)));_0x75f9xd[_0x4aeb[44]]=getMatchObject(_0x75f9xb[_0x4aeb[41]],_0x4aeb[45],getValueFromPropertyName(_0x75f9x1c,getAgentSearchPropertyFromChannel(_0x75f9xa)));return _0x75f9xd[_0x4aeb[44]]};return}}function getMatchObject(_0x75f9x1e,_0x75f9x19,_0x75f9x1f){var _0x75f9x20=_[_0x4aeb[16]](_0x75f9x1e,{property:_0x75f9x1f});if(_0x75f9x20){return _0x75f9x20};return _[_0x4aeb[46]](_0x75f9x1e)}function searchAdmin(_0x75f9xd){return function(_0x75f9xb){if(_0x75f9xb){return};console[_0x4aeb[9]](_0x4aeb[47]);return rp({uri:_0x75f9xd[_0x4aeb[18]]+_0x4aeb[48],headers:_0x75f9xd[_0x4aeb[19]],json:true})}}function handleAdmin(_0x75f9xd){return function(_0x75f9xb){if(!_0x75f9xb){return};if(_0x75f9xb[_0x4aeb[49]]){console[_0x4aeb[9]](_0x4aeb[50]);_0x75f9xd[_0x4aeb[44]]=_0x75f9xb[_0x4aeb[49]]};return}}function searchEndUser(_0x75f9xd,_0x75f9xa,_0x75f9xb){return function(){console[_0x4aeb[9]](_0x4aeb[51],getValueFromPropertyName(_0x75f9xb,getEndUserSearchPropertyFromChannel(_0x75f9xa)));return rp({uri:_0x75f9xd[_0x4aeb[18]]+_0x4aeb[32],qs:{"\x71\x75\x65\x72\x79":util[_0x4aeb[34]](_0x4aeb[52],getEndUserSearchQueryFromChannel(_0x75f9xa),getValueFromPropertyName(_0x75f9xb,getEndUserSearchPropertyFromChannel(_0x75f9xa)))},headers:_0x75f9xd[_0x4aeb[19]],json:true})}}function getEndUserSearchQueryFromChannel(_0x75f9xa){var _0x75f9x19=_0x4aeb[35];if(_0x75f9xa){switch(_0x75f9xa){case _0x4aeb[37]:_0x75f9x19=_0x4aeb[53];break;default:_0x75f9x19=_0x4aeb[53];console[_0x4aeb[13]](_0x4aeb[38],_0x75f9xa)}};return _0x75f9x19}function getEndUserSearchPropertyFromChannel(_0x75f9xa){var _0x75f9x19=_0x4aeb[35];if(_0x75f9xa){switch(_0x75f9xa){case _0x4aeb[37]:_0x75f9x19=_0x4aeb[54];break;default:_0x75f9x19=_0x4aeb[54];console[_0x4aeb[13]](_0x4aeb[38],_0x75f9xa)}};return _0x75f9x19}function getEndUserNamePropertyFromChannel(_0x75f9xa){var _0x75f9x19=_0x4aeb[35];if(_0x75f9xa){switch(_0x75f9xa){case _0x4aeb[37]:_0x75f9x19=_0x4aeb[55];break;default:_0x75f9x19=_0x4aeb[55];console[_0x4aeb[13]](_0x4aeb[38],_0x75f9xa)}};return _0x75f9x19}function handleEndUser(_0x75f9xd,_0x75f9xa,_0x75f9x1c){return function(_0x75f9xb){if(_0x75f9xb[_0x4aeb[41]][_0x4aeb[40]]>0&&_0x75f9xb[_0x4aeb[42]]>0){console[_0x4aeb[9]](_0x4aeb[56],getValueFromPropertyName(_0x75f9x1c,getEndUserSearchPropertyFromChannel(_0x75f9xa)));_0x75f9xd[_0x4aeb[57]]=_0x75f9xb[_0x4aeb[41]][0];return _0x75f9xd[_0x4aeb[57]]};return}}function endUserCreation(_0x75f9xd,_0x75f9xa,_0x75f9x1c){return function(_0x75f9xb){if(_0x75f9xb){return};console[_0x4aeb[9]](_0x4aeb[58],getValueFromPropertyName(_0x75f9x1c,getEndUserSearchPropertyFromChannel(_0x75f9xa)));console[_0x4aeb[9]](getJsonForEndUserCreation(_0x75f9xa,_0x75f9x1c));return rp({uri:_0x75f9xd[_0x4aeb[18]]+_0x4aeb[59],method:_0x4aeb[60],body:{user:getJsonForEndUserCreation(_0x75f9xa,_0x75f9x1c)},headers:_0x75f9xd[_0x4aeb[19]],json:true})}}function getJsonForEndUserCreation(_0x75f9xa,_0x75f9xb){var _0x75f9x2a={role:_0x4aeb[61]};switch(_0x75f9xa){case _0x4aeb[37]:if(_0x75f9xb[_0x4aeb[55]]){_0x75f9x2a[_0x4aeb[45]]=getValueFromPropertyName(_0x75f9xb,getEndUserNamePropertyFromChannel(_0x75f9xa))}else {_0x75f9x2a[_0x4aeb[45]]=util[_0x4aeb[34]](_0x4aeb[62],getValueFromPropertyName(_0x75f9xb,getAgentSearchPropertyFromChannel(_0x75f9xa)))};_0x75f9x2a[_0x4aeb[53]]=getValueFromPropertyName(_0x75f9xb,getEndUserSearchPropertyFromChannel(_0x75f9xa));break;default:console[_0x4aeb[13]](_0x4aeb[38],_0x75f9xa)};return _0x75f9x2a}function handleEndUserCreation(_0x75f9xd,_0x75f9xa,_0x75f9x1c){return function(_0x75f9xb){if(!_0x75f9xb){return};if(_0x75f9xb[_0x4aeb[49]]){console[_0x4aeb[9]](_0x4aeb[63],getValueFromPropertyName(_0x75f9x1c,getEndUserSearchPropertyFromChannel(_0x75f9xa)));_0x75f9xd[_0x4aeb[57]]=_0x75f9xb[_0x4aeb[49]]};return}}function ticketCreation(_0x75f9xd,_0x75f9x1c,_0x75f9xc){return function(){var _0x75f9x2d={requester_id:_0x75f9xd[_0x4aeb[44]][_0x4aeb[64]],submitter_id:_0x75f9xd[_0x4aeb[57]][_0x4aeb[64]],assignee_id:_0x75f9xd[_0x4aeb[57]][_0x4aeb[64]],tags:createTagsFromConfiguration(_0x75f9xd),subject:createSubjectFromConfiguration(_0x75f9xd,_0x75f9x1c,_0x75f9xc),description:createDescriptionFromConfiguration(_0x75f9xd,_0x75f9x1c,_0x75f9xc),custom_fields:createCustomFieldsFromConfiguration(_0x75f9xd,_0x75f9x1c,_0x75f9xc)};var _0x75f9x2e=createFieldsFromConfiguration(_0x75f9xd);if(_0x75f9x2e[_0x4aeb[40]]>0){_[_0x4aeb[66]](_0x75f9x2e,function(_0x75f9x2f){_0x75f9x2d[_0x75f9x2f[_0x4aeb[64]]]=_0x75f9x2f[_0x4aeb[65]]})};console[_0x4aeb[9]](_0x4aeb[67],_0x75f9x2d);return rp({uri:_0x75f9xd[_0x4aeb[18]]+_0x4aeb[68],method:_0x4aeb[60],body:{ticket:_0x75f9x2d},headers:_0x75f9xd[_0x4aeb[19]],json:true})}}function createTagsFromConfiguration(_0x75f9xd){var _0x75f9x31=[];if(_0x75f9xd[_0x4aeb[17]][_0x4aeb[69]][_0x4aeb[40]]>0){_0x75f9x31=_[_0x4aeb[70]](_0x75f9xd[_0x4aeb[17]].Tags,_0x4aeb[45])};return _0x75f9x31}function createSubjectFromConfiguration(_0x75f9xd,_0x75f9x1c,_0x75f9xc){var _0x75f9x33=_0x4aeb[35];var _0x75f9x34=[];if(_0x75f9xd[_0x4aeb[17]][_0x4aeb[71]][_0x4aeb[40]]>0){var _0x75f9x35=_[_0x4aeb[72]](_0x75f9xd[_0x4aeb[17]].Subject,[_0x4aeb[64]]);_[_0x4aeb[66]](_0x75f9x35,function(_0x75f9x36){if(_0x75f9x36[_0x4aeb[73]]===_0x4aeb[74]){_0x75f9x34[_0x4aeb[76]](_0x75f9x36[_0x4aeb[75]])}else {if(_0x75f9x36[_0x4aeb[73]]===_0x4aeb[77]&&_0x75f9x36[_0x4aeb[78]]){var _0x75f9x37=getValueFromPropertyName(_0x75f9x1c,_0x75f9x36[_0x4aeb[78]]);if(_0x75f9x37){_0x75f9x34[_0x4aeb[76]](_0x75f9x37.toString())}}else {if(_0x75f9x36[_0x4aeb[73]]===_0x4aeb[79]){var _0x75f9x38=_[_0x4aeb[16]](_0x75f9xc,{"\x6E\x61\x6D\x65":_0x75f9x36[_0x4aeb[80]][_0x4aeb[45]]});if(_0x75f9x38){_0x75f9x34[_0x4aeb[76]](_0x75f9x38[_0x4aeb[65]].toString())}}}}});_0x75f9x33=_0x75f9x34[_0x4aeb[82]](_0x4aeb[81])};return _0x75f9x33}function createDescriptionFromConfiguration(_0x75f9xd,_0x75f9x1c,_0x75f9xc){var _0x75f9x3a=_0x4aeb[35];var _0x75f9x34=[];if(_0x75f9xd[_0x4aeb[17]][_0x4aeb[83]][_0x4aeb[40]]>0){var _0x75f9x3b=_[_0x4aeb[72]](_0x75f9xd[_0x4aeb[17]].Description,[_0x4aeb[64]]);_[_0x4aeb[66]](_0x75f9x3b,function(_0x75f9x36){if(_0x75f9x36[_0x4aeb[73]]===_0x4aeb[74]){_0x75f9x34[_0x4aeb[76]](_0x75f9x36[_0x4aeb[75]])}else {if(_0x75f9x36[_0x4aeb[73]]===_0x4aeb[84]){if(_0x75f9x36[_0x4aeb[85]]===_0x4aeb[74]){_0x75f9x34[_0x4aeb[76]](util[_0x4aeb[34]](_0x4aeb[86],_0x75f9x36[_0x4aeb[87]],_0x75f9x36[_0x4aeb[88]]))}else {if(_0x75f9x36[_0x4aeb[85]]===_0x4aeb[77]&&_0x75f9x36[_0x4aeb[78]]){var _0x75f9x37=getValueFromPropertyName(_0x75f9x1c,_0x75f9x36[_0x4aeb[78]]);if(_0x75f9x37){_0x75f9x34[_0x4aeb[76]](util[_0x4aeb[34]](_0x4aeb[86],_0x75f9x36[_0x4aeb[87]],_0x75f9x37.toString()))}}else {if(_0x75f9x36[_0x4aeb[85]]===_0x4aeb[79]){var _0x75f9x38=_[_0x4aeb[16]](_0x75f9xc,{"\x6E\x61\x6D\x65":_0x75f9x36[_0x4aeb[80]][_0x4aeb[45]]});if(_0x75f9x38){_0x75f9x34[_0x4aeb[76]](util[_0x4aeb[34]](_0x4aeb[86],_0x75f9x36[_0x4aeb[87]],_0x75f9x38[_0x4aeb[65]].toString()))}}}}}}});_0x75f9x3a=_0x75f9x34[_0x4aeb[82]](_0x4aeb[89])};return _0x75f9x3a}function createCustomFieldsFromConfiguration(_0x75f9xd,_0x75f9x1c,_0x75f9xc){var _0x75f9x3d=[];var _0x75f9x3e=[];if(_0x75f9xd[_0x4aeb[17]][_0x4aeb[90]][_0x4aeb[40]]>0){_0x75f9x3d=_[_0x4aeb[91]](_0x75f9xd[_0x4aeb[17]].Field,{"\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64":true});_[_0x4aeb[66]](_0x75f9x3d,function(_0x75f9x2f){if(_0x75f9x2f[_0x4aeb[73]]===_0x4aeb[74]){_0x75f9x3e[_0x4aeb[76]]({id:_0x75f9x2f[_0x4aeb[92]],value:_0x75f9x2f[_0x4aeb[75]]})}else {if(_0x75f9x2f[_0x4aeb[73]]===_0x4aeb[77]){var _0x75f9x37=getValueFromPropertyName(_0x75f9x1c,_0x75f9x2f[_0x4aeb[78]]);if(_0x75f9x37){_0x75f9x3e[_0x4aeb[76]]({id:_0x75f9x2f[_0x4aeb[92]],value:_0x75f9x37.toString()})}}else {if(_0x75f9x2f[_0x4aeb[73]]===_0x4aeb[79]){var _0x75f9x38=_[_0x4aeb[16]](_0x75f9xc,{"\x6E\x61\x6D\x65":_0x75f9x2f[_0x4aeb[80]][_0x4aeb[45]]});if(_0x75f9x38){_0x75f9x3e[_0x4aeb[76]]({id:_0x75f9x2f[_0x4aeb[92]],value:_0x75f9x38[_0x4aeb[65]].toString()})}}}}})};return _0x75f9x3e}function createFieldsFromConfiguration(_0x75f9xd){var _0x75f9x2e=[];var _0x75f9x3e=[];if(_0x75f9xd[_0x4aeb[17]][_0x4aeb[90]][_0x4aeb[40]]>0){_0x75f9x2e=_[_0x4aeb[91]](_0x75f9xd[_0x4aeb[17]].Field,{"\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64":false});_[_0x4aeb[66]](_0x75f9x2e,function(_0x75f9x2f){if(_0x75f9x2f[_0x4aeb[73]]===_0x4aeb[74]){_0x75f9x3e[_0x4aeb[76]]({id:_0x75f9x2f[_0x4aeb[93]],value:_0x75f9x2f[_0x4aeb[75]]})}})};return _0x75f9x3e}function handleTicketDisplay(_0x75f9xd){return function(_0x75f9xb){if(_0x75f9xb[_0x4aeb[94]]){console[_0x4aeb[9]](_0x4aeb[95]);_0x75f9xd[_0x4aeb[94]]=_0x75f9xb[_0x4aeb[94]];var _0x75f9x41=util[_0x4aeb[34]](_0x4aeb[96],_0x75f9xd[_0x4aeb[44]][_0x4aeb[64]],_0x75f9xd[_0x4aeb[94]][_0x4aeb[64]]);return rp({uri:_0x75f9xd[_0x4aeb[18]]+_0x75f9x41,method:_0x4aeb[60],headers:_0x75f9xd[_0x4aeb[19]],json:true})};return}}function handleReportIntegration(_0x75f9xd,_0x75f9xa,_0x75f9xb,_0x75f9x8){return function(){_0x75f9xb=_0x75f9xb[_0x4aeb[97]];delete _0x75f9xb[_0x4aeb[64]];_0x75f9xb[_0x4aeb[98]]=_0x4aeb[99];_0x75f9xb[_0x4aeb[100]]=_0x75f9xa;_0x75f9xb[_0x4aeb[101]]=_0x4aeb[102];_0x75f9xb[_0x4aeb[103]]=_0x75f9xd[_0x4aeb[94]][_0x4aeb[64]];_0x75f9xb[_0x4aeb[104]]=_0x75f9x8;return ReportIntegration[_0x4aeb[105]](_0x75f9xb)}}function handleEnd(_0x75f9xd,_0x75f9xb,_0x75f9xa){return function(){console[_0x4aeb[9]](util[_0x4aeb[34]](_0x4aeb[106],_0x75f9xd[_0x4aeb[94]][_0x4aeb[64]],_0x75f9xd[_0x4aeb[44]][_0x4aeb[64]]));_0x75f9xd=undefined;return}}function handleError(_0x75f9xd,_0x75f9xa,_0x75f9xb,_0x75f9x8){return function(_0x75f9x45){console[_0x4aeb[13]](_0x4aeb[107]);console[_0x4aeb[13]](_0x4aeb[108],_0x75f9x45[_0x4aeb[109]]);console[_0x4aeb[13]](_0x4aeb[110],_0x75f9x45[_0x4aeb[111]]);_0x75f9xd=undefined;delete _0x75f9xb[_0x4aeb[64]];_0x75f9xb=_0x75f9xb[_0x4aeb[97]];_0x75f9xb[_0x4aeb[98]]=_0x4aeb[99];_0x75f9xb[_0x4aeb[100]]=_0x75f9xa;_0x75f9xb[_0x4aeb[101]]=_0x4aeb[112];_0x75f9xb[_0x4aeb[104]]=_0x75f9x8;ReportIntegration[_0x4aeb[105]](_0x75f9xb)[_0x4aeb[15]](function(){return})[_0x4aeb[14]](function(_0x75f9x45){console[_0x4aeb[13]](_0x4aeb[113]);return})}}function stripTrailingSlash(_0x75f9x47){if(_0x75f9x47[_0x4aeb[114]](-1)===_0x4aeb[115]){return _0x75f9x47[_0x4aeb[114]](0,_0x75f9x47[_0x4aeb[40]]-1)};return _0x75f9x47}module[_0x4aeb[116]]=Zendesk
\ No newline at end of file
index fb29ba1..47128b5 100644 (file)
@@ -1,61 +1 @@
-'use strict';
-
-var config = require('../environment');
-var rp = require('request-promise');
-var util = require('util');
-var url = require('url');
-var CronJob = require('cron').CronJob;
-var Settings = require('../../models').Settings;
-var license = require('./license.service');
-
-var provisioning = config.provisioning + '/servers/' + license.getUuid() + '/check';
-console.log(provisioning);
-
-
-// Define the factory
-function licenseManager() {
-  // Store the settings in a closure
-  var job = new CronJob({
-    cronTime: '* * * * *',
-    onTick: function() {
-      // console.log('Check License Start');
-      var _data;
-
-      return rp({
-          uri: provisioning,
-          json: true // Automatically stringifies the body to JSON
-        })
-        .then(function(data) {
-          _data = data;
-
-          return Settings
-            .findOrCreate({
-              where: {
-                id: 1
-              }
-            });
-        })
-        .spread(function(settings) {
-          return settings
-            .update({
-              license: _data.license
-            });
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    },
-    start: false
-  });
-
-  job.start();
-  return {
-
-    // Define a sync function
-    // getLicence: function getLicence() {
-    //   return settings;
-    // },
-  };
-}
-
-module.exports = licenseManager;
+var _0xb5ac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x75\x74\x69\x6C","\x75\x72\x6C","\x43\x72\x6F\x6E\x4A\x6F\x62","\x63\x72\x6F\x6E","\x53\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x65\x72\x76\x69\x63\x65","\x70\x72\x6F\x76\x69\x73\x69\x6F\x6E\x69\x6E\x67","\x2F\x73\x65\x72\x76\x65\x72\x73\x2F","\x67\x65\x74\x55\x75\x69\x64","\x2F\x63\x68\x65\x63\x6B","\x6C\x6F\x67","\x2A\x20\x2A\x20\x2A\x20\x2A\x20\x2A","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6C\x69\x63\x65\x6E\x73\x65","\x75\x70\x64\x61\x74\x65","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x73\x74\x61\x72\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xb5ac[0];var config=require(_0xb5ac[1]);var rp=require(_0xb5ac[2]);var util=require(_0xb5ac[3]);var url=require(_0xb5ac[4]);var CronJob=require(_0xb5ac[6])[_0xb5ac[5]];var Settings=require(_0xb5ac[8])[_0xb5ac[7]];var license=require(_0xb5ac[9]);var provisioning=config[_0xb5ac[10]]+_0xb5ac[11]+license[_0xb5ac[12]]()+_0xb5ac[13];console[_0xb5ac[14]](provisioning);function licenseManager(){var _0x8106xa= new CronJob({cronTime:_0xb5ac[15],onTick:function(){var _0x8106xb;return rp({uri:provisioning,json:true})[_0xb5ac[22]](function(_0x8106xe){_0x8106xb=_0x8106xe;return Settings[_0xb5ac[21]]({where:{id:1}})})[_0xb5ac[20]](function(_0x8106xd){return _0x8106xd[_0xb5ac[19]]({license:_0x8106xb[_0xb5ac[18]]})})[_0xb5ac[17]](function(_0x8106xc){console[_0xb5ac[16]](_0x8106xc)})},start:false});_0x8106xa[_0xb5ac[23]]();return {}}module[_0xb5ac[24]]=licenseManager
\ No newline at end of file
index 05c372a..e79f03d 100644 (file)
@@ -1,361 +1 @@
-'use strict';
-
-var compose = require('composable-middleware');
-var moment = require('moment');
-var crypto = require('crypto');
-var util = require('util');
-var os = require('os');
-
-var config = require('../environment');
-
-
-var User = require('../../models').User;
-var Telephone = require('../../models').Telephone;
-var Settings = require('../../models').Settings;
-
-var demoLicense = {
-  users: 1,
-  agents: 1,
-  telephones: 0,
-  chat: false,
-  mail: false,
-  fax: false,
-  description: 'DEMO LICENSE'
-};
-
-function getUuid() {
-  if (os.platform() !== 'linux') {
-    var out = exec('dmidecode --string system-uuid', {
-      silent: true
-    }).output;
-    var result = out.split('\n').slice(0, -1);
-    return result[0];
-  } else {
-    var out = exec('blkid -g && blkid', {
-      silent: true
-    }).output;
-    var result = out.split('\n').slice(0, -1).map(function(line) {
-      var part, regex, result;
-      regex = new RegExp(/(\w+)\=\"([^\"]+)/g);
-      part = {
-        partition: line.match(/^(\S+)\:\ /)[1]
-      };
-      while (result = regex.exec(line)) {
-        part[result[1].toLowerCase()] = result[2];
-      }
-      return part;
-    });
-    return result[0].uuid;
-  }
-}
-
-/**
- * Checks if the chat meets the requirements
- */
-function hasChat() {
-
-  return compose()
-    .use(function(req, res, next) {
-      return Settings
-        .findOrCreate({
-          where: {
-            id: 1
-          }
-        })
-        .spread(function(settings) {
-          var license = null,
-            chat = false;
-
-          if (settings.license) {
-            license = decrypt(settings.license);
-            license = JSON.parse(license);
-          } else {
-            license = demoLicense;
-          }
-
-          chat = license.chat;
-
-          if (!chat) return res.sendStatus(403);
-          return next();
-        })
-        .catch(function(err) {
-          return next(err);
-        });
-    });
-}
-
-/**
- * Checks if the mail meets the requirements
- */
-function hasMail() {
-
-  return compose()
-    .use(function(req, res, next) {
-      return Settings
-        .findOrCreate({
-          where: {
-            id: 1
-          }
-        })
-        .spread(function(settings) {
-          var license = null,
-            mail = false;
-
-          if (settings.license) {
-            license = decrypt(settings.license);
-            license = JSON.parse(license);
-          } else {
-            license = demoLicense;
-          }
-
-          mail = license.mail;
-
-          if (!mail) return res.sendStatus(403);
-          return next();
-        })
-        .catch(function(err) {
-          return next(err);
-        });
-    });
-}
-
-/**
- * Checks if the fax meets the requirements
- */
-function hasFax() {
-
-  return compose()
-    .use(function(req, res, next) {
-      return Settings
-        .findOrCreate({
-          where: {
-            id: 1
-          }
-        })
-        .spread(function(settings) {
-          var license = null,
-            fax = false;
-
-          if (settings.license) {
-            license = decrypt(settings.license);
-            license = JSON.parse(license);
-          } else {
-            license = demoLicense;
-          }
-
-          fax = license.fax;
-
-          if (!fax) return res.sendStatus(403);
-          return next();
-        })
-        .catch(function(err) {
-          return next(err);
-        });
-    });
-}
-
-/**
- * Checks if the date meets the requirements
- */
-function isValidDate() {
-
-  return compose()
-    .use(function(req, res, next) {
-      return Settings
-        .findOrCreate({
-          where: {
-            id: 1
-          }
-        })
-        .spread(function(settings) {
-          var license = null,
-            date = false;
-
-          if (settings.license) {
-            license = decrypt(settings.license);
-            license = JSON.parse(license);
-
-            if (moment().isSameOrBefore(license.expiration)) {
-              date = true;
-            }
-          }
-
-          if (!date) return res.sendStatus(403);
-          return next();
-        })
-        .catch(function(err) {
-          return next(err);
-        });
-    });
-}
-
-/**
- * Checks if the users meets the requirements
- */
-function isUsersLimit() {
-
-  return compose()
-    .use(function(req, res, next) {
-      var _settings;
-
-      return Settings
-        .findOrCreate({
-          where: {
-            id: 1
-          }
-        })
-        .spread(function(settings) {
-          _settings = settings;
-
-          return User
-            .count({
-              where: {
-                $or: [{
-                  role: 'admin'
-                }, {
-                  role: 'user'
-                }]
-              }
-            });
-        })
-        .then(function(users) {
-          var license = null,
-            valid = false;
-
-          if (_settings.license) {
-            license = decrypt(_settings.license);
-            license = JSON.parse(license);
-          } else {
-            license = demoLicense;
-          }
-
-          if (license.users > users) valid = true;
-
-          if (!valid) return res.status(403).send({
-            message: 'Maximum users limit have been reached'
-          });
-          return next();
-        })
-        .catch(function(err) {
-          return next(err);
-        });
-    });
-}
-
-/**
- * Checks if the telephone meets the requirements
- */
-function isTelephonesLimit() {
-
-  return compose()
-    .use(function(req, res, next) {
-      var _settings;
-
-      return Settings
-        .findOrCreate({
-          where: {
-            id: 1
-          }
-        })
-        .spread(function(settings) {
-          _settings = settings;
-
-          return User
-            .count({
-              where: {
-                role: 'telephone'
-              }
-            });
-        })
-        .then(function(telephones) {
-          var license = null,
-            valid = false;
-
-          if (_settings.license) {
-            license = decrypt(_settings.license);
-            license = JSON.parse(license);
-          } else {
-            license = demoLicense;
-          }
-
-          if (license.telephones > telephones) valid = true;
-
-          if (!valid) return res.status(403).send({
-            message: 'Maximum telephones limit have been reached'
-          });
-          return next();
-        })
-        .catch(function(err) {
-          return next(err);
-        });
-    });
-}
-
-/**
- * Checks if the telephone meets the requirements
- */
-function isValidAgent() {
-  return function(user) {
-    var _settings;
-    var _valid = false;
-
-    if (user.role === 'admin' || user.role === 'user' || (user.role === 'agent' && user.online)) {
-      _valid = true;
-    }
-
-    return Settings
-      .findOrCreate({
-        where: {
-          id: 1
-        }
-      })
-      .spread(function(settings) {
-        _settings = settings;
-
-        return User
-          .count({
-            where: {
-              role: 'agent',
-              online: true
-            }
-          });
-      })
-      .then(function(agents) {
-        var license = null;
-
-        if (_settings.license) {
-          license = decrypt(_settings.license);
-          license = JSON.parse(license);
-        } else {
-          license = demoLicense;
-        }
-
-        if (license.agents > agents) _valid = true;
-
-        return _valid;
-      });
-  }
-}
-
-function decrypt(cypher) {
-  var uuid = getUuid();
-  var prefix = uuid.split('-')[4];
-  var suffix = uuid.split('-')[0];
-
-  var decipher = crypto.createDecipher('aes-256-ctr', util.format('%s:%s:%s', prefix, uuid, suffix));
-  var license = decipher.update(cypher, 'base64', 'utf8')
-  license += decipher.final('utf8');
-
-  return license;
-}
-
-exports.getUuid = getUuid;
-exports.isValidDate = isValidDate;
-exports.isUsersLimit = isUsersLimit;
-exports.isTelephonesLimit = isTelephonesLimit;
-exports.hasChat = hasChat;
-exports.hasMail = hasMail;
-exports.hasFax = hasFax;
-exports.isValidAgent = isValidAgent;
-exports.demoLicense = demoLicense;
-exports.decrypt = decrypt;
+var _0x9784=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x6D\x6F\x6D\x65\x6E\x74","\x63\x72\x79\x70\x74\x6F","\x75\x74\x69\x6C","\x6F\x73","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x53\x65\x74\x74\x69\x6E\x67\x73","\x44\x45\x4D\x4F\x20\x4C\x49\x43\x45\x4E\x53\x45","\x70\x6C\x61\x74\x66\x6F\x72\x6D","\x6C\x69\x6E\x75\x78","\x6F\x75\x74\x70\x75\x74","\x64\x6D\x69\x64\x65\x63\x6F\x64\x65\x20\x2D\x2D\x73\x74\x72\x69\x6E\x67\x20\x73\x79\x73\x74\x65\x6D\x2D\x75\x75\x69\x64","\x73\x6C\x69\x63\x65","\x0A","\x73\x70\x6C\x69\x74","\x62\x6C\x6B\x69\x64\x20\x2D\x67\x20\x26\x26\x20\x62\x6C\x6B\x69\x64","\x6D\x61\x74\x63\x68","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x65\x78\x65\x63","\x6D\x61\x70","\x75\x75\x69\x64","\x63\x61\x74\x63\x68","\x6C\x69\x63\x65\x6E\x73\x65","\x70\x61\x72\x73\x65","\x63\x68\x61\x74","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x75\x73\x65","\x6D\x61\x69\x6C","\x66\x61\x78","\x65\x78\x70\x69\x72\x61\x74\x69\x6F\x6E","\x69\x73\x53\x61\x6D\x65\x4F\x72\x42\x65\x66\x6F\x72\x65","\x75\x73\x65\x72\x73","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x75\x73\x65\x72\x73\x20\x6C\x69\x6D\x69\x74\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x63\x6F\x75\x6E\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73\x20\x6C\x69\x6D\x69\x74\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x6F\x6E\x6C\x69\x6E\x65","\x61\x67\x65\x6E\x74\x73","\x2D","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x25\x73\x3A\x25\x73\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x62\x61\x73\x65\x36\x34","\x75\x74\x66\x38","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x61\x6C","\x67\x65\x74\x55\x75\x69\x64","\x69\x73\x56\x61\x6C\x69\x64\x44\x61\x74\x65","\x69\x73\x55\x73\x65\x72\x73\x4C\x69\x6D\x69\x74","\x69\x73\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73\x4C\x69\x6D\x69\x74","\x68\x61\x73\x43\x68\x61\x74","\x68\x61\x73\x4D\x61\x69\x6C","\x68\x61\x73\x46\x61\x78","\x69\x73\x56\x61\x6C\x69\x64\x41\x67\x65\x6E\x74","\x64\x65\x6D\x6F\x4C\x69\x63\x65\x6E\x73\x65","\x64\x65\x63\x72\x79\x70\x74"];_0x9784[0];var compose=require(_0x9784[1]);var moment=require(_0x9784[2]);var crypto=require(_0x9784[3]);var util=require(_0x9784[4]);var os=require(_0x9784[5]);var config=require(_0x9784[6]);var User=require(_0x9784[8])[_0x9784[7]];var Telephone=require(_0x9784[8])[_0x9784[9]];var Settings=require(_0x9784[8])[_0x9784[10]];var demoLicense={users:1,agents:1,telephones:0,chat:false,mail:false,fax:false,description:_0x9784[11]};function getUuid(){if(os[_0x9784[12]]()!==_0x9784[13]){var _0xbe9exc=exec(_0x9784[15],{silent:true})[_0x9784[14]];var _0xbe9exd=_0xbe9exc[_0x9784[18]](_0x9784[17])[_0x9784[16]](0,-1);return _0xbe9exd[0]}else {var _0xbe9exc=exec(_0x9784[19],{silent:true})[_0x9784[14]];var _0xbe9exd=_0xbe9exc[_0x9784[18]](_0x9784[17])[_0x9784[16]](0,-1)[_0x9784[23]](function(_0xbe9exe){var _0xbe9exf,_0xbe9ex10,_0xbe9exd;_0xbe9ex10= new RegExp(/(\w+)\=\"([^\"]+)/g);_0xbe9exf={partition:_0xbe9exe[_0x9784[20]](/^(\S+)\:\ /)[1]};while(_0xbe9exd=_0xbe9ex10[_0x9784[22]](_0xbe9exe)){_0xbe9exf[_0xbe9exd[1][_0x9784[21]]()]=_0xbe9exd[2]};return _0xbe9exf});return _0xbe9exd[0][_0x9784[24]]}}function hasChat(){return compose()[_0x9784[32]](function(_0xbe9ex12,_0xbe9ex13,_0xbe9ex14){return Settings[_0x9784[31]]({where:{id:1}})[_0x9784[30]](function(_0xbe9ex16){var _0xbe9ex17=null,_0xbe9ex18=false;if(_0xbe9ex16[_0x9784[26]]){_0xbe9ex17=decrypt(_0xbe9ex16[_0x9784[26]]);_0xbe9ex17=JSON[_0x9784[27]](_0xbe9ex17)}else {_0xbe9ex17=demoLicense};_0xbe9ex18=_0xbe9ex17[_0x9784[28]];if(!_0xbe9ex18){return _0xbe9ex13[_0x9784[29]](403)};return _0xbe9ex14()})[_0x9784[25]](function(_0xbe9ex15){return _0xbe9ex14(_0xbe9ex15)})})}function hasMail(){return compose()[_0x9784[32]](function(_0xbe9ex12,_0xbe9ex13,_0xbe9ex14){return Settings[_0x9784[31]]({where:{id:1}})[_0x9784[30]](function(_0xbe9ex16){var _0xbe9ex17=null,_0xbe9ex1a=false;if(_0xbe9ex16[_0x9784[26]]){_0xbe9ex17=decrypt(_0xbe9ex16[_0x9784[26]]);_0xbe9ex17=JSON[_0x9784[27]](_0xbe9ex17)}else {_0xbe9ex17=demoLicense};_0xbe9ex1a=_0xbe9ex17[_0x9784[33]];if(!_0xbe9ex1a){return _0xbe9ex13[_0x9784[29]](403)};return _0xbe9ex14()})[_0x9784[25]](function(_0xbe9ex15){return _0xbe9ex14(_0xbe9ex15)})})}function hasFax(){return compose()[_0x9784[32]](function(_0xbe9ex12,_0xbe9ex13,_0xbe9ex14){return Settings[_0x9784[31]]({where:{id:1}})[_0x9784[30]](function(_0xbe9ex16){var _0xbe9ex17=null,_0xbe9ex1c=false;if(_0xbe9ex16[_0x9784[26]]){_0xbe9ex17=decrypt(_0xbe9ex16[_0x9784[26]]);_0xbe9ex17=JSON[_0x9784[27]](_0xbe9ex17)}else {_0xbe9ex17=demoLicense};_0xbe9ex1c=_0xbe9ex17[_0x9784[34]];if(!_0xbe9ex1c){return _0xbe9ex13[_0x9784[29]](403)};return _0xbe9ex14()})[_0x9784[25]](function(_0xbe9ex15){return _0xbe9ex14(_0xbe9ex15)})})}function isValidDate(){return compose()[_0x9784[32]](function(_0xbe9ex12,_0xbe9ex13,_0xbe9ex14){return Settings[_0x9784[31]]({where:{id:1}})[_0x9784[30]](function(_0xbe9ex16){var _0xbe9ex17=null,_0xbe9ex1e=false;if(_0xbe9ex16[_0x9784[26]]){_0xbe9ex17=decrypt(_0xbe9ex16[_0x9784[26]]);_0xbe9ex17=JSON[_0x9784[27]](_0xbe9ex17);if(moment()[_0x9784[36]](_0xbe9ex17[_0x9784[35]])){_0xbe9ex1e=true}};if(!_0xbe9ex1e){return _0xbe9ex13[_0x9784[29]](403)};return _0xbe9ex14()})[_0x9784[25]](function(_0xbe9ex15){return _0xbe9ex14(_0xbe9ex15)})})}function isUsersLimit(){return compose()[_0x9784[32]](function(_0xbe9ex12,_0xbe9ex13,_0xbe9ex14){var _0xbe9ex20;return Settings[_0x9784[31]]({where:{id:1}})[_0x9784[30]](function(_0xbe9ex16){_0xbe9ex20=_0xbe9ex16;return User[_0x9784[44]]({where:{$or:[{role:_0x9784[42]},{role:_0x9784[43]}]}})})[_0x9784[41]](function(_0xbe9ex21){var _0xbe9ex17=null,_0xbe9ex22=false;if(_0xbe9ex20[_0x9784[26]]){_0xbe9ex17=decrypt(_0xbe9ex20[_0x9784[26]]);_0xbe9ex17=JSON[_0x9784[27]](_0xbe9ex17)}else {_0xbe9ex17=demoLicense};if(_0xbe9ex17[_0x9784[37]]>_0xbe9ex21){_0xbe9ex22=true};if(!_0xbe9ex22){return _0xbe9ex13[_0x9784[40]](403)[_0x9784[39]]({message:_0x9784[38]})};return _0xbe9ex14()})[_0x9784[25]](function(_0xbe9ex15){return _0xbe9ex14(_0xbe9ex15)})})}function isTelephonesLimit(){return compose()[_0x9784[32]](function(_0xbe9ex12,_0xbe9ex13,_0xbe9ex14){var _0xbe9ex20;return Settings[_0x9784[31]]({where:{id:1}})[_0x9784[30]](function(_0xbe9ex16){_0xbe9ex20=_0xbe9ex16;return User[_0x9784[44]]({where:{role:_0x9784[47]}})})[_0x9784[41]](function(_0xbe9ex24){var _0xbe9ex17=null,_0xbe9ex22=false;if(_0xbe9ex20[_0x9784[26]]){_0xbe9ex17=decrypt(_0xbe9ex20[_0x9784[26]]);_0xbe9ex17=JSON[_0x9784[27]](_0xbe9ex17)}else {_0xbe9ex17=demoLicense};if(_0xbe9ex17[_0x9784[45]]>_0xbe9ex24){_0xbe9ex22=true};if(!_0xbe9ex22){return _0xbe9ex13[_0x9784[40]](403)[_0x9784[39]]({message:_0x9784[46]})};return _0xbe9ex14()})[_0x9784[25]](function(_0xbe9ex15){return _0xbe9ex14(_0xbe9ex15)})})}function isValidAgent(){return function(_0xbe9ex26){var _0xbe9ex20;var _0xbe9ex27=false;if(_0xbe9ex26[_0x9784[48]]===_0x9784[42]||_0xbe9ex26[_0x9784[48]]===_0x9784[43]||(_0xbe9ex26[_0x9784[48]]===_0x9784[49]&&_0xbe9ex26[_0x9784[50]])){_0xbe9ex27=true};return Settings[_0x9784[31]]({where:{id:1}})[_0x9784[30]](function(_0xbe9ex16){_0xbe9ex20=_0xbe9ex16;return User[_0x9784[44]]({where:{role:_0x9784[49],online:true}})})[_0x9784[41]](function(_0xbe9ex28){var _0xbe9ex17=null;if(_0xbe9ex20[_0x9784[26]]){_0xbe9ex17=decrypt(_0xbe9ex20[_0x9784[26]]);_0xbe9ex17=JSON[_0x9784[27]](_0xbe9ex17)}else {_0xbe9ex17=demoLicense};if(_0xbe9ex17[_0x9784[51]]>_0xbe9ex28){_0xbe9ex27=true};return _0xbe9ex27})}}function decrypt(_0xbe9ex2a){var _0xbe9ex2b=getUuid();var _0xbe9ex2c=_0xbe9ex2b[_0x9784[18]](_0x9784[52])[4];var _0xbe9ex2d=_0xbe9ex2b[_0x9784[18]](_0x9784[52])[0];var _0xbe9ex2e=crypto[_0x9784[56]](_0x9784[53],util[_0x9784[55]](_0x9784[54],_0xbe9ex2c,_0xbe9ex2b,_0xbe9ex2d));var _0xbe9ex17=_0xbe9ex2e[_0x9784[59]](_0xbe9ex2a,_0x9784[57],_0x9784[58]);_0xbe9ex17+=_0xbe9ex2e[_0x9784[60]](_0x9784[58]);return _0xbe9ex17}exports[_0x9784[61]]=getUuid;exports[_0x9784[62]]=isValidDate;exports[_0x9784[63]]=isUsersLimit;exports[_0x9784[64]]=isTelephonesLimit;exports[_0x9784[65]]=hasChat;exports[_0x9784[66]]=hasMail;exports[_0x9784[67]]=hasFax;exports[_0x9784[68]]=isValidAgent;exports[_0x9784[69]]=demoLicense;exports[_0x9784[70]]=decrypt
\ No newline at end of file
index 58ae668..c1439dc 100644 (file)
@@ -1,23 +1 @@
-'use strict';
-
-// Use local.env.js for environment variables that grunt will set when the server starts locally.
-// Use for your api keys, secrets, etc. This file should not be tracked by git.
-//
-// You will need to set these on the server you deploy to.
-
-module.exports = {
-  DOMAIN:           'http://localhost:9000',
-  SESSION_SECRET:   'xcallyshuttle-secret',
-
-  FACEBOOK_ID:      'app-id',
-  FACEBOOK_SECRET:  'secret',
-
-  TWITTER_ID:       'app-id',
-  TWITTER_SECRET:   'secret',
-
-  GOOGLE_ID:        'app-id',
-  GOOGLE_SECRET:    'secret',
-
-  // Control debug level for modules using visionmedia/debug
-  DEBUG: ''
-};
+var _0xb960=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x39\x30\x30\x30","\x78\x63\x61\x6C\x6C\x79\x73\x68\x75\x74\x74\x6C\x65\x2D\x73\x65\x63\x72\x65\x74","\x61\x70\x70\x2D\x69\x64","\x73\x65\x63\x72\x65\x74",""];_0xb960[0];module[_0xb960[1]]={DOMAIN:_0xb960[2],SESSION_SECRET:_0xb960[3],FACEBOOK_ID:_0xb960[4],FACEBOOK_SECRET:_0xb960[5],TWITTER_ID:_0xb960[4],TWITTER_SECRET:_0xb960[5],GOOGLE_ID:_0xb960[4],GOOGLE_SECRET:_0xb960[5],DEBUG:_0xb960[6]}
\ No newline at end of file
index 1542f7e..9142c2f 100644 (file)
@@ -1,120 +1 @@
-var winston = require('winston');
-var path = require('path');
-var config = require('./environment');
-
-winston.emitErrs = true;
-
-var debug = new winston.Logger({
-  transports: [
-    new winston.transports.Console({
-      level: 'debug',
-      handleExceptions: true,
-      json: false,
-      colorize: true
-    })
-  ]
-});
-
-if (config.logging.debugToFile) {
-  debug.add(
-    winston.transports.File, {
-      name: 'debug-file',
-      level: 'debug',
-      filename: config.logging.debug,
-      handleExceptions: true,
-      json: true,
-      maxsize: 5242880, //5MB
-      maxFiles: 5,
-      colorize: false
-    }
-  );
-}
-
-var info = new winston.Logger({
-  transports: [
-    new winston.transports.File({
-      name: 'info-file',
-      level: 'info',
-      filename: config.logging.info,
-      handleExceptions: true,
-      json: true,
-      maxsize: 5242880, //5MB
-      maxFiles: 5,
-      colorize: false
-    }),
-    new winston.transports.Console({
-      level: 'info',
-      handleExceptions: true,
-      json: false,
-      colorize: true
-    })
-  ]
-});
-
-var warn = new winston.Logger({
-  transports: [
-    new winston.transports.File({
-      name: 'warn-file',
-      level: 'warn',
-      filename: config.logging.warn,
-      handleExceptions: true,
-      json: true,
-      maxsize: 5242880, //5MB
-      maxFiles: 5,
-      colorize: false
-    }),
-    new winston.transports.Console({
-      level: 'warn',
-      handleExceptions: true,
-      json: false,
-      colorize: true
-    })
-  ]
-});
-
-var error = new winston.Logger({
-  transports: [
-    new winston.transports.File({
-      name: 'error-file',
-      level: 'error',
-      filename: config.logging.error,
-      handleExceptions: true,
-      json: true,
-      maxsize: 5242880, //5MB
-      maxFiles: 5,
-      colorize: false
-    }),
-    new winston.transports.Console({
-      level: 'error',
-      handleExceptions: true,
-      json: false,
-      colorize: true
-    })
-  ]
-});
-
-var loggers = {
-  debug: function(msg, callback) {
-    debug.debug(msg, callback);
-  },
-  info: function(msg, callback) {
-    info.info(msg, callback);
-  },
-  warn: function(msg, callback) {
-    warn.warn(msg, callback);
-  },
-  error: function(msg, callback) {
-    error.error(msg, callback);
-  },
-  log: function(level, msg, callback) {
-    var lvl = exports[level];
-    lvl(msg, callback);
-  }
-};
-
-module.exports = loggers;
-module.exports.stream = {
-  write: function(message, encoding) {
-    loggers.info(message);
-  }
-};
+var _0xb134=["\x77\x69\x6E\x73\x74\x6F\x6E","\x70\x61\x74\x68","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x6D\x69\x74\x45\x72\x72\x73","\x64\x65\x62\x75\x67","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74\x73","\x64\x65\x62\x75\x67\x54\x6F\x46\x69\x6C\x65","\x6C\x6F\x67\x67\x69\x6E\x67","\x64\x65\x62\x75\x67\x2D\x66\x69\x6C\x65","\x61\x64\x64","\x69\x6E\x66\x6F\x2D\x66\x69\x6C\x65","\x69\x6E\x66\x6F","\x77\x61\x72\x6E\x2D\x66\x69\x6C\x65","\x77\x61\x72\x6E","\x65\x72\x72\x6F\x72\x2D\x66\x69\x6C\x65","\x65\x72\x72\x6F\x72","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x65\x61\x6D"];var winston=require(_0xb134[0]);var path=require(_0xb134[1]);var config=require(_0xb134[2]);winston[_0xb134[3]]=true;var debug= new winston.Logger({transports:[ new winston[_0xb134[5]].Console({level:_0xb134[4],handleExceptions:true,json:false,colorize:true})]});if(config[_0xb134[7]][_0xb134[6]]){debug[_0xb134[9]](winston[_0xb134[5]].File,{name:_0xb134[8],level:_0xb134[4],filename:config[_0xb134[7]][_0xb134[4]],handleExceptions:true,json:true,maxsize:5242880,maxFiles:5,colorize:false})};var info= new winston.Logger({transports:[ new winston[_0xb134[5]].File({name:_0xb134[10],level:_0xb134[11],filename:config[_0xb134[7]][_0xb134[11]],handleExceptions:true,json:true,maxsize:5242880,maxFiles:5,colorize:false}), new winston[_0xb134[5]].Console({level:_0xb134[11],handleExceptions:true,json:false,colorize:true})]});var warn= new winston.Logger({transports:[ new winston[_0xb134[5]].File({name:_0xb134[12],level:_0xb134[13],filename:config[_0xb134[7]][_0xb134[13]],handleExceptions:true,json:true,maxsize:5242880,maxFiles:5,colorize:false}), new winston[_0xb134[5]].Console({level:_0xb134[13],handleExceptions:true,json:false,colorize:true})]});var error= new winston.Logger({transports:[ new winston[_0xb134[5]].File({name:_0xb134[14],level:_0xb134[15],filename:config[_0xb134[7]][_0xb134[15]],handleExceptions:true,json:true,maxsize:5242880,maxFiles:5,colorize:false}), new winston[_0xb134[5]].Console({level:_0xb134[15],handleExceptions:true,json:false,colorize:true})]});var loggers={debug:function(_0xcc90x9,_0xcc90xa){debug[_0xb134[4]](_0xcc90x9,_0xcc90xa)},info:function(_0xcc90x9,_0xcc90xa){info[_0xb134[11]](_0xcc90x9,_0xcc90xa)},warn:function(_0xcc90x9,_0xcc90xa){warn[_0xb134[13]](_0xcc90x9,_0xcc90xa)},error:function(_0xcc90x9,_0xcc90xa){error[_0xb134[15]](_0xcc90x9,_0xcc90xa)},log:function(_0xcc90xb,_0xcc90x9,_0xcc90xa){var _0xcc90xc=exports[_0xcc90xb];_0xcc90xc(_0xcc90x9,_0xcc90xa)}};module[_0xb134[16]]=loggers;module[_0xb134[16]][_0xb134[17]]={write:function(_0xcc90xd,_0xcc90xe){loggers[_0xb134[11]](_0xcc90xd)}}
\ No newline at end of file
index dc9a8ad..32c14c6 100644 (file)
@@ -1,235 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var util = require('util');
-var async = require('async');
-
-var Util = require('../../util');
-
-var ChatApplication = require('../../../models').ChatApplication;
-var ChatVisitor = require('../../../models').ChatVisitor;
-var ChatWebsite = require('../../../models').ChatWebsite;
-var ChatQueue = require('../../../models').ChatQueue;
-var ChatRoom = require('../../../models').ChatRoom;
-
-var ReportChat = require('../../../models').ReportChat;
-var ReportChatSession = require('../../../models').ReportChatSession;
-var Interval = require('../../../models').Interval;
-var User = require('../../../models').User;
-
-var Session = require('./session');
-
-module.exports = function() {
-  console.log('Chat Routing Initialization..');
-
-  ChatVisitor.afterCreate(function(visitor) {
-    if (visitor.origin === 'webchat') {
-      handleVisitor(visitor);
-    }
-  });
-}
-
-function handleEntityNotFound(message) {
-  return function(entity) {
-    if (!entity) {
-      throw {
-        message: message
-      };
-    }
-    return entity;
-  };
-}
-
-function handleChatWebsite(_report) {
-  return function(website) {
-    _report.websiteid = website.id;
-    _report.websitename = website.name;
-    _report.websiteaddress = website.address;
-
-    return website
-      .getChatApplications({
-        order: 'priority ASC',
-        include: [{
-          model: ChatQueue,
-          attributes: ['id', 'name', 'timeout', 'strategy'],
-          include: [{
-            model: User,
-            attributes: ['id', 'name', 'online', 'chatPause']
-          }]
-        }, {
-          model: User,
-          attributes: ['id', 'name', 'online', 'chatPause']
-        }, {
-          model: Interval,
-          include: [{
-            all: true
-          }]
-        }]
-      });
-  }
-}
-
-function handleChatRoom(_report, _apps) {
-  return function(apps) {
-    apps.forEach(function(app) {
-      _apps.push(app);
-    });
-
-    _apps = apps;
-    // START CREATE/ASSIGN CHAT ROOM
-    return ChatRoom
-      .create({
-        type: 'external',
-        ChatVisitorId: _report.visitorid,
-        ChatWebsiteId: _report.websiteid
-      }, {
-        include: [{
-          all: true
-        }]
-      });
-  }
-}
-
-function handleApps(_report, _apps) {
-  return function(room) {
-    var waterfall = [];
-
-    _report.roomid = room.id;
-    _report.uniqueid = util.format('%s.%s', moment().unix(), room.id);
-
-    ReportChatSession
-      .create(_.cloneDeep(_report))
-      .catch(function(err) {
-        console.error(err);
-      });
-
-    _apps.forEach(function(app, index) {
-      var data = _.cloneDeep(_report);
-
-      data.apptimeout = app.timeout;
-      data.application = app.app;
-
-      switch (app.app) {
-        case 'queue':
-          data.queueid = app.ChatQueue.id;
-          data.queuename = app.ChatQueue.name;
-          data.strategy = app.ChatQueue.strategy;
-
-          data.queuetimeout = app.ChatQueue.timeout;
-          data.agents = _.map(app.ChatQueue.Users, function(agent) {
-            return {
-              id: agent.id,
-              name: agent.name
-            }
-          });
-
-          break;
-
-        case 'agent':
-          data.queuetimeout = app.timeout;
-          data.strategy = 'beepall';
-
-          data.agents = [{
-            id: app.User.id,
-            name: app.User.name
-          }];
-
-          break;
-
-        default:
-      }
-
-      if (waterfall.length) {
-        waterfall.push(function(exit, callback) {
-          if (exit) {
-            return callback(null, exit);
-          } else {
-            new Session(data, callback);
-          }
-        });
-      } else {
-        // PRIMA CALLBACK NESSUN DATO
-        waterfall.push(function(callback) {
-          new Session(data, callback);
-        });
-      }
-    });
-
-    async.waterfall(waterfall, function(err, managed, abandon) {
-      if (err) {
-        console.error(err);
-      }
-
-      console.log('End chat routing..');
-
-      if (!managed) {
-        return ReportChatSession
-          .update({
-            unmanagedAt: moment().format("YYYY-MM-DD HH:mm:ss")
-          }, {
-            where: {
-              uniqueid: _report.uniqueid
-            },
-            individualHooks: true
-          })
-          .then(handleUnmanaged(_report));
-      }
-
-      if (abandon) {
-        return handleAbandon(_report);
-      }
-
-      return;
-    });
-  }
-}
-
-function handleAbandon(_report) {
-  //Chat session abandon
-  return ChatVisitor
-    .update({
-      status: 'abandon'
-    }, {
-      where: {
-        id: _report.visitorid
-      }
-    });
-}
-
-function handleUnmanaged(_report) {
-  return function(reportChatSession) {
-    //Chat session not managed
-    return ChatVisitor
-      .update({
-        status: 'unserved'
-      }, {
-        where: {
-          id: _report.visitorid
-        }
-      });
-  }
-}
-
-function handleVisitor(visitor) {
-  var _apps = [];
-  var _report = {
-    visitorid: visitor.id,
-    visitorname: visitor.fullname,
-    visitoremail: visitor.email,
-    websiteid: visitor.ChatWebsiteId,
-    joinAt: moment().format("YYYY-MM-DD HH:mm:ss")
-  };
-
-  return ChatWebsite
-    .findById(visitor.ChatWebsiteId)
-    .then(handleEntityNotFound('Unknown ChatWebsite..'))
-    .then(handleChatWebsite(_report))
-    .then(handleEntityNotFound('Unknown ChatWebsite Applications..'))
-    .then(handleChatRoom(_report, _apps))
-    .then(handleEntityNotFound('Unknown ChatRoom..'))
-    .then(handleApps(_report, _apps))
-    .catch(function(err) {
-      console.error('err', err);
-    });
-}
+var _0x2034=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x61\x73\x79\x6E\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x55\x73\x65\x72","\x2E\x2F\x73\x65\x73\x73\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x20\x52\x6F\x75\x74\x69\x6E\x67\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E","\x6C\x6F\x67","\x6F\x72\x69\x67\x69\x6E","\x77\x65\x62\x63\x68\x61\x74","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x77\x65\x62\x73\x69\x74\x65\x69\x64","\x69\x64","\x77\x65\x62\x73\x69\x74\x65\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x77\x65\x62\x73\x69\x74\x65\x61\x64\x64\x72\x65\x73\x73","\x61\x64\x64\x72\x65\x73\x73","\x70\x72\x69\x6F\x72\x69\x74\x79\x20\x41\x53\x43","\x74\x69\x6D\x65\x6F\x75\x74","\x73\x74\x72\x61\x74\x65\x67\x79","\x6F\x6E\x6C\x69\x6E\x65","\x63\x68\x61\x74\x50\x61\x75\x73\x65","\x67\x65\x74\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x76\x69\x73\x69\x74\x6F\x72\x69\x64","\x63\x72\x65\x61\x74\x65","\x72\x6F\x6F\x6D\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x25\x73\x2E\x25\x73","\x75\x6E\x69\x78","\x66\x6F\x72\x6D\x61\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x63\x6C\x6F\x6E\x65\x44\x65\x65\x70","\x61\x70\x70\x74\x69\x6D\x65\x6F\x75\x74","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x70\x70","\x71\x75\x65\x75\x65\x69\x64","\x71\x75\x65\x75\x65\x6E\x61\x6D\x65","\x71\x75\x65\x75\x65\x74\x69\x6D\x65\x6F\x75\x74","\x61\x67\x65\x6E\x74\x73","\x6D\x61\x70","\x71\x75\x65\x75\x65","\x62\x65\x65\x70\x61\x6C\x6C","\x61\x67\x65\x6E\x74","\x6C\x65\x6E\x67\x74\x68","\x45\x6E\x64\x20\x63\x68\x61\x74\x20\x72\x6F\x75\x74\x69\x6E\x67\x2E\x2E","\x74\x68\x65\x6E","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x75\x70\x64\x61\x74\x65","\x77\x61\x74\x65\x72\x66\x61\x6C\x6C","\x61\x62\x61\x6E\x64\x6F\x6E","\x75\x6E\x73\x65\x72\x76\x65\x64","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x49\x64","\x65\x72\x72","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x43\x68\x61\x74\x52\x6F\x6F\x6D\x2E\x2E","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73\x2E\x2E","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2E\x2E","\x66\x69\x6E\x64\x42\x79\x49\x64"];_0x2034[0];var _=require(_0x2034[1]);var moment=require(_0x2034[2]);var util=require(_0x2034[3]);var async=require(_0x2034[4]);var Util=require(_0x2034[5]);var ChatApplication=require(_0x2034[7])[_0x2034[6]];var ChatVisitor=require(_0x2034[7])[_0x2034[8]];var ChatWebsite=require(_0x2034[7])[_0x2034[9]];var ChatQueue=require(_0x2034[7])[_0x2034[10]];var ChatRoom=require(_0x2034[7])[_0x2034[11]];var ReportChat=require(_0x2034[7])[_0x2034[12]];var ReportChatSession=require(_0x2034[7])[_0x2034[13]];var Interval=require(_0x2034[7])[_0x2034[14]];var User=require(_0x2034[7])[_0x2034[15]];var Session=require(_0x2034[16]);module[_0x2034[17]]=function(){console[_0x2034[19]](_0x2034[18]);ChatVisitor[_0x2034[22]](function(_0x4b65x10){if(_0x4b65x10[_0x2034[20]]===_0x2034[21]){handleVisitor(_0x4b65x10)}})};function handleEntityNotFound(_0x4b65x12){return function(_0x4b65x13){if(!_0x4b65x13){throw {message:_0x4b65x12}};return _0x4b65x13}}function handleChatWebsite(_0x4b65x15){return function(_0x4b65x16){_0x4b65x15[_0x2034[23]]=_0x4b65x16[_0x2034[24]];_0x4b65x15[_0x2034[25]]=_0x4b65x16[_0x2034[26]];_0x4b65x15[_0x2034[27]]=_0x4b65x16[_0x2034[28]];return _0x4b65x16[_0x2034[34]]({order:_0x2034[29],include:[{model:ChatQueue,attributes:[_0x2034[24],_0x2034[26],_0x2034[30],_0x2034[31]],include:[{model:User,attributes:[_0x2034[24],_0x2034[26],_0x2034[32],_0x2034[33]]}]},{model:User,attributes:[_0x2034[24],_0x2034[26],_0x2034[32],_0x2034[33]]},{model:Interval,include:[{all:true}]}]})}}function handleChatRoom(_0x4b65x15,_0x4b65x18){return function(_0x4b65x19){_0x4b65x19[_0x2034[36]](function(_0x4b65x1a){_0x4b65x18[_0x2034[35]](_0x4b65x1a)});_0x4b65x18=_0x4b65x19;return ChatRoom[_0x2034[39]]({type:_0x2034[37],ChatVisitorId:_0x4b65x15[_0x2034[38]],ChatWebsiteId:_0x4b65x15[_0x2034[23]]},{include:[{all:true}]})}}function handleApps(_0x4b65x15,_0x4b65x18){return function(_0x4b65x1c){var _0x4b65x1d=[];_0x4b65x15[_0x2034[40]]=_0x4b65x1c[_0x2034[24]];_0x4b65x15[_0x2034[41]]=util[_0x2034[44]](_0x2034[42],moment()[_0x2034[43]](),_0x4b65x1c[_0x2034[24]]);ReportChatSession[_0x2034[39]](_[_0x2034[47]](_0x4b65x15))[_0x2034[46]](function(_0x4b65x1e){console[_0x2034[45]](_0x4b65x1e)});_0x4b65x18[_0x2034[36]](function(_0x4b65x1a,_0x4b65x1f){var _0x4b65x20=_[_0x2034[47]](_0x4b65x15);_0x4b65x20[_0x2034[48]]=_0x4b65x1a[_0x2034[30]];_0x4b65x20[_0x2034[49]]=_0x4b65x1a[_0x2034[50]];switch(_0x4b65x1a[_0x2034[50]]){case _0x2034[56]:_0x4b65x20[_0x2034[51]]=_0x4b65x1a[_0x2034[10]][_0x2034[24]];_0x4b65x20[_0x2034[52]]=_0x4b65x1a[_0x2034[10]][_0x2034[26]];_0x4b65x20[_0x2034[31]]=_0x4b65x1a[_0x2034[10]][_0x2034[31]];_0x4b65x20[_0x2034[53]]=_0x4b65x1a[_0x2034[10]][_0x2034[30]];_0x4b65x20[_0x2034[54]]=_[_0x2034[55]](_0x4b65x1a[_0x2034[10]].Users,function(_0x4b65x21){return {id:_0x4b65x21[_0x2034[24]],name:_0x4b65x21[_0x2034[26]]}});break;case _0x2034[58]:_0x4b65x20[_0x2034[53]]=_0x4b65x1a[_0x2034[30]];_0x4b65x20[_0x2034[31]]=_0x2034[57];_0x4b65x20[_0x2034[54]]=[{id:_0x4b65x1a[_0x2034[15]][_0x2034[24]],name:_0x4b65x1a[_0x2034[15]][_0x2034[26]]}];break;default:};if(_0x4b65x1d[_0x2034[59]]){_0x4b65x1d[_0x2034[35]](function(_0x4b65x22,_0x4b65x23){if(_0x4b65x22){return _0x4b65x23(null,_0x4b65x22)}else { new Session(_0x4b65x20,_0x4b65x23)}})}else {_0x4b65x1d[_0x2034[35]](function(_0x4b65x23){ new Session(_0x4b65x20,_0x4b65x23)})}});async[_0x2034[64]](_0x4b65x1d,function(_0x4b65x1e,_0x4b65x24,_0x4b65x25){if(_0x4b65x1e){console[_0x2034[45]](_0x4b65x1e)};console[_0x2034[19]](_0x2034[60]);if(!_0x4b65x24){return ReportChatSession[_0x2034[63]]({unmanagedAt:moment()[_0x2034[44]](_0x2034[62])},{where:{uniqueid:_0x4b65x15[_0x2034[41]]},individualHooks:true})[_0x2034[61]](handleUnmanaged(_0x4b65x15))};if(_0x4b65x25){return ReportChatSession[_0x2034[63]]({abandonAt:moment()[_0x2034[44]](_0x2034[62])},{where:{uniqueid:_0x4b65x15[_0x2034[41]]},individualHooks:true})[_0x2034[61]](handleAbandon(_0x4b65x15))};return})}}function handleAbandon(_0x4b65x15){return function(_0x4b65x27){return ChatVisitor[_0x2034[63]]({status:_0x2034[65]},{where:{id:_0x4b65x15[_0x2034[38]]}})}}function handleUnmanaged(_0x4b65x15){return function(_0x4b65x27){return ChatVisitor[_0x2034[63]]({status:_0x2034[66]},{where:{id:_0x4b65x15[_0x2034[38]]}})}}function handleVisitor(_0x4b65x10){var _0x4b65x18=[];var _0x4b65x15={visitorid:_0x4b65x10[_0x2034[24]],visitorname:_0x4b65x10[_0x2034[67]],visitoremail:_0x4b65x10[_0x2034[68]],websiteid:_0x4b65x10[_0x2034[69]],joinAt:moment()[_0x2034[44]](_0x2034[62])};return ChatWebsite[_0x2034[74]](_0x4b65x10.ChatWebsiteId)[_0x2034[61]](handleEntityNotFound(_0x2034[73]))[_0x2034[61]](handleChatWebsite(_0x4b65x15))[_0x2034[61]](handleEntityNotFound(_0x2034[72]))[_0x2034[61]](handleChatRoom(_0x4b65x15,_0x4b65x18))[_0x2034[61]](handleEntityNotFound(_0x2034[71]))[_0x2034[61]](handleApps(_0x4b65x15,_0x4b65x18))[_0x2034[46]](function(_0x4b65x1e){console[_0x2034[45]](_0x2034[70],_0x4b65x1e)})}
\ No newline at end of file
index 17560eb..857413d 100644 (file)
@@ -1,280 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-
-var Agent = require('../../../models').User;
-var ChatRoom = require('../../../models').ChatRoom;
-var ChatApplication = require('../../../models').ChatApplication;
-var ReportChat = require('../../../models').ReportChat;
-var ReportChatSession = require('../../../models').ReportChatSession;
-
-// Define the factory
-function Session(report, callback) {
-  console.log('New Chat session...');
-  console.log('report', report);
-  var elapsed = 0;
-  var interval, timeout;
-
-  Agent
-    .findAll({
-      where: {
-        id: {
-          $in: _.map(report.agents, 'id'),
-        },
-        online: true,
-        mailPause: false
-      },
-      include: [{
-        model: ChatRoom,
-        attributes: ['id', 'status']
-      }],
-      attributes: ['id', 'name', 'chatCapacity']
-    })
-    .then(function(agents) {
-      var set1 = _.filter(agents, function(agent) {
-        if (agent.chatCapacity === 0) {
-          return true;
-        } else {
-          return agent.chatCapacity > _.filter(agent.ChatRooms, function(room) {
-            return room.id !== report.roomid && room.status !== 'CLOSED'
-          }).length;
-        }
-      });
-      var set2 = [];
-
-      var diff;
-      var agent;
-
-      report.timeslot = ((report.apptimeout - elapsed) > report.queuetimeout) ? report.queuetimeout : (report.apptimeout - elapsed);
-
-      switch (report.strategy) {
-        case 'rrmemory':
-          diff = _.differenceBy(set1, set2, 'name');
-          agent = diff.shift();
-
-          if (agent) {
-            report.available = [{
-              id: agent.id,
-              name: agent.name
-            }];
-
-            set2.push({
-              id: agent.id,
-              name: agent.name
-            });
-            saveReport(report);
-
-          } else {
-            set2 = [];
-            agent = set1.shift();
-
-            if (agent) {
-              set2.push({
-                id: agent.id,
-                name: agent.name
-              });
-              saveReport(report);
-            }
-          }
-
-          break;
-        case 'beepall':
-          report.available = set1;
-          saveReport(report);
-
-          break;
-        default:
-      }
-
-      // APPLICATION TIMEOUT
-      timeout = setTimeout(function() {
-        clearInterval(interval);
-        return callback(null, false);
-      }, report.apptimeout * 1000);
-
-      interval = setInterval(function() {
-        elapsed += report.queuetimeout;
-
-        return Agent
-          .findAll({
-            where: {
-              id: {
-                $in: _.map(report.agents, 'id'),
-              },
-              online: true,
-              mailPause: false
-            },
-            include: [{
-              model: ChatRoom,
-              attributes: ['id', 'status']
-            }],
-            attributes: ['id', 'name', 'chatCapacity']
-          })
-          .then(function(agents) {
-            set1 = _.filter(agents, function(agent) {
-              if (agent.chatCapacity === 0) {
-                return true;
-              } else {
-                return agent.chatCapacity > _.filter(agent.ChatRooms, function(room) {
-                  return room.id !== report.roomid && room.status !== 'CLOSED'
-                }).length;
-              }
-            });
-
-            report.timeslot = ((report.apptimeout - elapsed) > report.queuetimeout) ? report.queuetimeout : (report.apptimeout - elapsed);
-
-            switch (report.strategy) {
-              case 'rrmemory':
-                diff = _.differenceBy(set1, set2, 'name');
-                agent = diff.shift();
-
-                if (agent) {
-                  report.available = [{
-                    id: agent.id,
-                    name: agent.name
-                  }];
-
-                  set2.push({
-                    id: agent.id,
-                    name: agent.name
-                  });
-
-                  saveReport(report);
-
-                } else {
-                  set2 = [];
-                  agent = set1.shift();
-
-                  if (agent) {
-                    report.available = [{
-                      id: agent.id,
-                      name: agent.name
-                    }];
-
-                    set2.push({
-                      id: agent.id,
-                      name: agent.name
-                    });
-                    saveReport(report);
-                  }
-                }
-
-                break;
-              case 'beepall':
-                report.available = set1;
-                saveReport(report);
-
-                break;
-              default:
-            }
-          })
-          .catch(function(err) {
-            console.error(err);
-          });
-
-      }, report.queuetimeout * 1000);
-
-    })
-    .catch(function(err) {
-      console.error(err);
-    });
-
-  // INTERROMPO IL ROUTING
-  ReportChat.afterUpdate(function(doc) {
-    if (doc.changed('connectid')) {
-      return ChatRoom
-        .findById(doc.roomid)
-        .then(function(ChatRoom) {
-          return ChatRoom
-            .addUser(doc.agentid, {
-              individualHooks: true
-            });
-        })
-        .then(function() {
-          return ReportChatSession
-            .update({
-              application: doc.application,
-              agentid: doc.agentid,
-              agentname: doc.agentname,
-              queueid: doc.queueid || null,
-              queuename: doc.queuename || null,
-              leaveAt: moment().format("YYYY-MM-DD HH:mm:ss")
-            }, {
-              where: {
-                uniqueid: doc.uniqueid
-              },
-              individualHooks: true
-            });
-        })
-        .then(function() {
-          clearInterval(interval);
-          clearTimeout(timeout);
-          return callback(null, true);
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    }
-  });
-
-  ReportChatSession.afterUpdate(function(doc) {
-    if (doc.changed('abandonAt')) {
-      return ChatRoom
-        .findById(doc.roomid)
-        .then(function(ChatRoom) {
-          return ChatRoom
-            .update({
-              status: 'CLOSED'
-            })
-        })
-        .then(function() {
-          clearInterval(interval);
-          clearTimeout(timeout);
-          return callback(null, true, true);
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    }
-  });
-
-  return {};
-}
-
-function saveReport(report) {
-  var reports = [];
-
-  report.available.forEach(function(agent, index) {
-    reports.push({
-      uniqueid: report.uniqueid,
-      visitorid: report.visitorid,
-      visitorname: report.visitorname,
-      visitoremail: report.visitoremail,
-      timeslot: report.timeslot,
-      websiteid: report.websiteid,
-      websitename: report.websitename,
-      websiteaddress: report.websiteaddress,
-      application: report.application,
-      agentname: agent.name,
-      agentid: agent.id,
-      queueid: report.queueid || null,
-      queuename: report.queuename || null,
-      roomid: report.roomid || null,
-      calledAt: moment().format("YYYY-MM-DD HH:mm:ss")
-    });
-  });
-
-  if (reports.length) {
-    return ReportChat
-      .bulkCreate(reports, {
-        individualHooks: true
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
-
-// Export this file as a module
-module.exports = Session;
+var _0x9dcb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x4E\x65\x77\x20\x43\x68\x61\x74\x20\x73\x65\x73\x73\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x72\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x63\x68\x61\x74\x43\x61\x70\x61\x63\x69\x74\x79","\x6C\x65\x6E\x67\x74\x68","\x69\x64","\x72\x6F\x6F\x6D\x69\x64","\x73\x74\x61\x74\x75\x73","\x43\x4C\x4F\x53\x45\x44","\x66\x69\x6C\x74\x65\x72","\x74\x69\x6D\x65\x73\x6C\x6F\x74","\x61\x70\x70\x74\x69\x6D\x65\x6F\x75\x74","\x71\x75\x65\x75\x65\x74\x69\x6D\x65\x6F\x75\x74","\x6E\x61\x6D\x65","\x64\x69\x66\x66\x65\x72\x65\x6E\x63\x65\x42\x79","\x73\x68\x69\x66\x74","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x70\x75\x73\x68","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x73\x74\x72\x61\x74\x65\x67\x79","\x74\x68\x65\x6E","\x61\x67\x65\x6E\x74\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x63\x68\x61\x6E\x67\x65\x64","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x67\x65\x6E\x74\x69\x64","\x61\x67\x65\x6E\x74\x6E\x61\x6D\x65","\x71\x75\x65\x75\x65\x69\x64","\x71\x75\x65\x75\x65\x6E\x61\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x70\x64\x61\x74\x65","\x61\x64\x64\x55\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x62\x61\x6E\x64\x6F\x6E","\x76\x69\x73\x69\x74\x6F\x72\x69\x64","\x76\x69\x73\x69\x74\x6F\x72\x6E\x61\x6D\x65","\x76\x69\x73\x69\x74\x6F\x72\x65\x6D\x61\x69\x6C","\x77\x65\x62\x73\x69\x74\x65\x69\x64","\x77\x65\x62\x73\x69\x74\x65\x6E\x61\x6D\x65","\x77\x65\x62\x73\x69\x74\x65\x61\x64\x64\x72\x65\x73\x73","\x66\x6F\x72\x45\x61\x63\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9dcb[0];var _=require(_0x9dcb[1]);var moment=require(_0x9dcb[2]);var Agent=require(_0x9dcb[4])[_0x9dcb[3]];var ChatRoom=require(_0x9dcb[4])[_0x9dcb[5]];var ChatApplication=require(_0x9dcb[4])[_0x9dcb[6]];var ReportChat=require(_0x9dcb[4])[_0x9dcb[7]];var ReportChatSession=require(_0x9dcb[4])[_0x9dcb[8]];function Session(_0x7df1x9,_0x7df1xa){console[_0x9dcb[10]](_0x9dcb[9]);console[_0x9dcb[10]](_0x9dcb[11],_0x7df1x9);var _0x7df1xb=0;var _0x7df1xc,_0x7df1xd;Agent[_0x9dcb[35]]({where:{id:{$in:_[_0x9dcb[34]](_0x7df1x9[_0x9dcb[33]],_0x9dcb[16])},online:true,mailPause:false},include:[{model:ChatRoom,attributes:[_0x9dcb[16],_0x9dcb[18]]}],attributes:[_0x9dcb[16],_0x9dcb[24],_0x9dcb[14]]})[_0x9dcb[32]](function(_0x7df1xf){var _0x7df1x10=_[_0x9dcb[20]](_0x7df1xf,function(_0x7df1x11){if(_0x7df1x11[_0x9dcb[14]]===0){return true}else {return _0x7df1x11[_0x9dcb[14]]>_[_0x9dcb[20]](_0x7df1x11.ChatRooms,function(_0x7df1x12){return _0x7df1x12[_0x9dcb[16]]!==_0x7df1x9[_0x9dcb[17]]&&_0x7df1x12[_0x9dcb[18]]!==_0x9dcb[19]})[_0x9dcb[15]]}});var _0x7df1x13=[];var _0x7df1x14;var _0x7df1x11;_0x7df1x9[_0x9dcb[21]]=((_0x7df1x9[_0x9dcb[22]]-_0x7df1xb)>_0x7df1x9[_0x9dcb[23]])?_0x7df1x9[_0x9dcb[23]]:(_0x7df1x9[_0x9dcb[22]]-_0x7df1xb);switch(_0x7df1x9[_0x9dcb[31]]){case _0x9dcb[29]:_0x7df1x14=_[_0x9dcb[25]](_0x7df1x10,_0x7df1x13,_0x9dcb[24]);_0x7df1x11=_0x7df1x14[_0x9dcb[26]]();if(_0x7df1x11){_0x7df1x9[_0x9dcb[27]]=[{id:_0x7df1x11[_0x9dcb[16]],name:_0x7df1x11[_0x9dcb[24]]}];_0x7df1x13[_0x9dcb[28]]({id:_0x7df1x11[_0x9dcb[16]],name:_0x7df1x11[_0x9dcb[24]]});saveReport(_0x7df1x9)}else {_0x7df1x13=[];_0x7df1x11=_0x7df1x10[_0x9dcb[26]]();if(_0x7df1x11){_0x7df1x13[_0x9dcb[28]]({id:_0x7df1x11[_0x9dcb[16]],name:_0x7df1x11[_0x9dcb[24]]});saveReport(_0x7df1x9)}};break;case _0x9dcb[30]:_0x7df1x9[_0x9dcb[27]]=_0x7df1x10;saveReport(_0x7df1x9);break;default:};_0x7df1xd=setTimeout(function(){clearInterval(_0x7df1xc);return _0x7df1xa(null,false)},_0x7df1x9[_0x9dcb[22]]*1000);_0x7df1xc=setInterval(function(){_0x7df1xb+=_0x7df1x9[_0x9dcb[23]];return Agent[_0x9dcb[35]]({where:{id:{$in:_[_0x9dcb[34]](_0x7df1x9[_0x9dcb[33]],_0x9dcb[16])},online:true,mailPause:false},include:[{model:ChatRoom,attributes:[_0x9dcb[16],_0x9dcb[18]]}],attributes:[_0x9dcb[16],_0x9dcb[24],_0x9dcb[14]]})[_0x9dcb[32]](function(_0x7df1xf){_0x7df1x10=_[_0x9dcb[20]](_0x7df1xf,function(_0x7df1x11){if(_0x7df1x11[_0x9dcb[14]]===0){return true}else {return _0x7df1x11[_0x9dcb[14]]>_[_0x9dcb[20]](_0x7df1x11.ChatRooms,function(_0x7df1x12){return _0x7df1x12[_0x9dcb[16]]!==_0x7df1x9[_0x9dcb[17]]&&_0x7df1x12[_0x9dcb[18]]!==_0x9dcb[19]})[_0x9dcb[15]]}});_0x7df1x9[_0x9dcb[21]]=((_0x7df1x9[_0x9dcb[22]]-_0x7df1xb)>_0x7df1x9[_0x9dcb[23]])?_0x7df1x9[_0x9dcb[23]]:(_0x7df1x9[_0x9dcb[22]]-_0x7df1xb);switch(_0x7df1x9[_0x9dcb[31]]){case _0x9dcb[29]:_0x7df1x14=_[_0x9dcb[25]](_0x7df1x10,_0x7df1x13,_0x9dcb[24]);_0x7df1x11=_0x7df1x14[_0x9dcb[26]]();if(_0x7df1x11){_0x7df1x9[_0x9dcb[27]]=[{id:_0x7df1x11[_0x9dcb[16]],name:_0x7df1x11[_0x9dcb[24]]}];_0x7df1x13[_0x9dcb[28]]({id:_0x7df1x11[_0x9dcb[16]],name:_0x7df1x11[_0x9dcb[24]]});saveReport(_0x7df1x9)}else {_0x7df1x13=[];_0x7df1x11=_0x7df1x10[_0x9dcb[26]]();if(_0x7df1x11){_0x7df1x9[_0x9dcb[27]]=[{id:_0x7df1x11[_0x9dcb[16]],name:_0x7df1x11[_0x9dcb[24]]}];_0x7df1x13[_0x9dcb[28]]({id:_0x7df1x11[_0x9dcb[16]],name:_0x7df1x11[_0x9dcb[24]]});saveReport(_0x7df1x9)}};break;case _0x9dcb[30]:_0x7df1x9[_0x9dcb[27]]=_0x7df1x10;saveReport(_0x7df1x9);break;default:}})[_0x9dcb[13]](function(_0x7df1xe){console[_0x9dcb[12]](_0x7df1xe)})},_0x7df1x9[_0x9dcb[23]]*1000)})[_0x9dcb[13]](function(_0x7df1xe){console[_0x9dcb[12]](_0x7df1xe)});ReportChat[_0x9dcb[49]](function(_0x7df1x15){if(_0x7df1x15[_0x9dcb[37]](_0x9dcb[36])){return ChatRoom[_0x9dcb[48]](_0x7df1x15[_0x9dcb[17]])[_0x9dcb[32]](function(ChatRoom){return ChatRoom[_0x9dcb[47]](_0x7df1x15[_0x9dcb[39]],{individualHooks:true})})[_0x9dcb[32]](function(){return ReportChatSession[_0x9dcb[46]]({application:_0x7df1x15[_0x9dcb[38]],agentid:_0x7df1x15[_0x9dcb[39]],agentname:_0x7df1x15[_0x9dcb[40]],queueid:_0x7df1x15[_0x9dcb[41]]||null,queuename:_0x7df1x15[_0x9dcb[42]]||null,leaveAt:moment()[_0x9dcb[44]](_0x9dcb[43])},{where:{uniqueid:_0x7df1x15[_0x9dcb[45]]},individualHooks:true})})[_0x9dcb[32]](function(){clearInterval(_0x7df1xc);clearTimeout(_0x7df1xd);return _0x7df1xa(null,true)})[_0x9dcb[13]](function(_0x7df1xe){console[_0x9dcb[12]](_0x7df1xe)})}});ReportChatSession[_0x9dcb[49]](function(_0x7df1x15){if(_0x7df1x15[_0x9dcb[37]](_0x9dcb[50])){return ChatRoom[_0x9dcb[48]](_0x7df1x15[_0x9dcb[17]])[_0x9dcb[32]](function(ChatRoom){return ChatRoom[_0x9dcb[46]]({status:_0x9dcb[19]})})[_0x9dcb[32]](function(){clearInterval(_0x7df1xc);clearTimeout(_0x7df1xd);return _0x7df1xa(null,true,true)})[_0x9dcb[13]](function(_0x7df1xe){console[_0x9dcb[12]](_0x7df1xe)})}});return {}}function saveReport(_0x7df1x9){var _0x7df1x17=[];_0x7df1x9[_0x9dcb[27]][_0x9dcb[57]](function(_0x7df1x11,_0x7df1x18){_0x7df1x17[_0x9dcb[28]]({uniqueid:_0x7df1x9[_0x9dcb[45]],visitorid:_0x7df1x9[_0x9dcb[51]],visitorname:_0x7df1x9[_0x9dcb[52]],visitoremail:_0x7df1x9[_0x9dcb[53]],timeslot:_0x7df1x9[_0x9dcb[21]],websiteid:_0x7df1x9[_0x9dcb[54]],websitename:_0x7df1x9[_0x9dcb[55]],websiteaddress:_0x7df1x9[_0x9dcb[56]],application:_0x7df1x9[_0x9dcb[38]],agentname:_0x7df1x11[_0x9dcb[24]],agentid:_0x7df1x11[_0x9dcb[16]],queueid:_0x7df1x9[_0x9dcb[41]]||null,queuename:_0x7df1x9[_0x9dcb[42]]||null,roomid:_0x7df1x9[_0x9dcb[17]]||null,calledAt:moment()[_0x9dcb[44]](_0x9dcb[43])})});if(_0x7df1x17[_0x9dcb[15]]){return ReportChat[_0x9dcb[58]](_0x7df1x17,{individualHooks:true})[_0x9dcb[13]](function(_0x7df1xe){console[_0x9dcb[12]](_0x7df1xe)})}}module[_0x9dcb[59]]=Session
\ No newline at end of file
index 9268b24..b6917f0 100644 (file)
@@ -1,216 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-var util = require('util');
-var async = require('async');
-
-var Util = require('../../util');
-
-var ReportMail = require('../../../models').ReportMail;
-var ReportMailSession = require('../../../models').ReportMailSession;
-var MailMessage = require('../../../models').MailMessage;
-var MailQueue = require('../../../models').MailQueue;
-var Interval = require('../../../models').Interval;
-var User = require('../../../models').User;
-
-var Session = require('./session');
-
-module.exports = function() {
-  console.log('Mail Routing Initialization..');
-
-  MailMessage.afterCreate(function(message) {
-    if (message.status === 'RECEIVED') {
-      handleMessage(message);
-    }
-  });
-}
-
-function handleEntityNotFound(message) {
-  return function(entity) {
-    if (!entity) {
-      throw {
-        message: message
-      };
-    }
-    return entity;
-  };
-}
-
-function handleMailRoom(_report, _fidelity) {
-  return function(room) {
-    _report.roomid = room.id;
-    _report.uniqueid = util.format('%s.%s', moment().unix(), room.id);
-    _report.subject = room.subject;
-    _fidelity.agents = _.map(room.Users, function(user) {
-      return {
-        id: user.id,
-        name: user.name
-      };
-    });
-
-    return room
-      .getMailAccount();
-  }
-}
-
-function handleMailAccount(_report, _fidelity) {
-  return function(account) {
-    _report.accountid = account.id;
-    _report.accountname = account.name;
-    _report.accountaddress = account.address;
-
-    _fidelity.fidelity = account.fidelity;
-
-    if (account.fidelity) {
-      _fidelity.apptimeout = _fidelity.queuetimeout = account.timeout;
-      _fidelity.fidelity = account.timeout;
-      _fidelity.strategy = 'beepall';
-    }
-
-    return account
-      .getMailApplications({
-        order: 'priority ASC',
-        include: [{
-          model: MailQueue,
-          attributes: ['id', 'name', 'timeout', 'strategy'],
-          include: [{
-            model: User,
-            attributes: ['id', 'name', 'online', 'mailPause']
-          }]
-        }, {
-          model: User,
-          attributes: ['id', 'name', 'online', 'mailPause']
-        }, {
-          model: Interval,
-          include: [{
-            all: true
-          }]
-        }]
-      });
-  }
-}
-
-function handleApps(_report, _fidelity) {
-  return function(apps) {
-    var waterfall = [];
-
-    ReportMailSession
-      .create(_.cloneDeep(_report))
-      .catch(function(err) {
-        console.error(err);
-      });
-
-    if (_fidelity.fidelity) {
-      _report.queuetimeout = _fidelity.fidelity;
-      _report.apptimeout = _fidelity.fidelity;
-      _report.agents = _fidelity.agents;
-      _report.application = 'fidelity';
-      _report.strategy = 'beepall';
-
-      var data = _.cloneDeep(_report);
-      if (data.agents.length) {
-        waterfall.push(function(callback) {
-          new Session(data, callback);
-        });
-      }
-    }
-
-    apps.forEach(function(app, index) {
-
-      var data = _.cloneDeep(_report);
-
-      data.apptimeout = app.timeout;
-      data.application = app.app;
-
-      switch (app.app) {
-        case 'queue':
-          data.queueid = app.MailQueue.id;
-          data.queuename = app.MailQueue.name;
-          data.strategy = app.MailQueue.strategy;
-
-          data.queuetimeout = app.MailQueue.timeout;
-          data.agents = _.map(app.MailQueue.Users, function(agent) {
-            return {
-              id: agent.id,
-              name: agent.name
-            }
-          });
-
-          break;
-        case 'agent':
-          data.queuetimeout = app.timeout;
-          data.strategy = 'beepall';
-
-          data.agents = [{
-            id: app.User.id,
-            name: app.User.name
-          }];
-
-          break;
-        default:
-      }
-
-      if (waterfall.length) {
-        waterfall.push(function(exit, callback) {
-          if (exit) {
-            callback(null, exit);
-          } else {
-            new Session(data, callback);
-          }
-        });
-      } else {
-        // PRIMA CALLBACK NESSUN DATO
-        waterfall.push(function(callback) {
-          new Session(data, callback);
-        });
-      }
-    });
-
-    async.waterfall(waterfall, function(err, managed) {
-      if (err) {
-        console.error(err);
-      }
-      if (!managed) {
-        return ReportMailSession
-          .update({
-            queuecallerleaveAt: moment().format("YYYY-MM-DD HH:mm:ss"),
-            queuecallerunmanagedAt: moment().format("YYYY-MM-DD HH:mm:ss")
-          }, {
-            where: {
-              uniqueid: _report.uniqueid
-            },
-            individualHooks: true
-          });
-      }
-
-      console.log('End mail routing..');
-    });
-  }
-}
-
-function handleMessage(message) {
-  var _fidelity = {
-    agents: []
-  };
-  var _report = {
-    messageid: message.id,
-    queuecallerjoinAt: moment().format("YYYY-MM-DD HH:mm:ss")
-  };
-
-  return message
-    .getMailRoom({
-      include: [{
-        model: User,
-        attributes: ['id', 'name', 'online', 'mailPause']
-      }]
-    })
-    .then(handleEntityNotFound('Unknown MailRoom..'))
-    .then(handleMailRoom(_report, _fidelity))
-    .then(handleEntityNotFound('Unknown MailAccount..'))
-    .then(handleMailAccount(_report, _fidelity))
-    .then(handleApps(_report, _fidelity))
-    .catch(function(err) {
-      console.error('err', err);
-    });
-}
+var _0xab45=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x61\x73\x79\x6E\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x55\x73\x65\x72","\x2E\x2F\x73\x65\x73\x73\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x20\x52\x6F\x75\x74\x69\x6E\x67\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E","\x6C\x6F\x67","\x73\x74\x61\x74\x75\x73","\x52\x45\x43\x45\x49\x56\x45\x44","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x72\x6F\x6F\x6D\x69\x64","\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x25\x73\x2E\x25\x73","\x75\x6E\x69\x78","\x66\x6F\x72\x6D\x61\x74","\x73\x75\x62\x6A\x65\x63\x74","\x61\x67\x65\x6E\x74\x73","\x6E\x61\x6D\x65","\x6D\x61\x70","\x67\x65\x74\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x61\x63\x63\x6F\x75\x6E\x74\x69\x64","\x61\x63\x63\x6F\x75\x6E\x74\x6E\x61\x6D\x65","\x61\x63\x63\x6F\x75\x6E\x74\x61\x64\x64\x72\x65\x73\x73","\x61\x64\x64\x72\x65\x73\x73","\x66\x69\x64\x65\x6C\x69\x74\x79","\x61\x70\x70\x74\x69\x6D\x65\x6F\x75\x74","\x71\x75\x65\x75\x65\x74\x69\x6D\x65\x6F\x75\x74","\x74\x69\x6D\x65\x6F\x75\x74","\x73\x74\x72\x61\x74\x65\x67\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x70\x72\x69\x6F\x72\x69\x74\x79\x20\x41\x53\x43","\x6F\x6E\x6C\x69\x6E\x65","\x6D\x61\x69\x6C\x50\x61\x75\x73\x65","\x67\x65\x74\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x63\x6C\x6F\x6E\x65\x44\x65\x65\x70","\x63\x72\x65\x61\x74\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6C\x65\x6E\x67\x74\x68","\x70\x75\x73\x68","\x61\x70\x70","\x71\x75\x65\x75\x65\x69\x64","\x71\x75\x65\x75\x65\x6E\x61\x6D\x65","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x66\x6F\x72\x45\x61\x63\x68","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x75\x70\x64\x61\x74\x65","\x45\x6E\x64\x20\x6D\x61\x69\x6C\x20\x72\x6F\x75\x74\x69\x6E\x67\x2E\x2E","\x77\x61\x74\x65\x72\x66\x61\x6C\x6C","\x65\x72\x72","\x74\x68\x65\x6E","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x2E","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x2E\x2E","\x67\x65\x74\x4D\x61\x69\x6C\x52\x6F\x6F\x6D"];_0xab45[0];var _=require(_0xab45[1]);var moment=require(_0xab45[2]);var util=require(_0xab45[3]);var async=require(_0xab45[4]);var Util=require(_0xab45[5]);var ReportMail=require(_0xab45[7])[_0xab45[6]];var ReportMailSession=require(_0xab45[7])[_0xab45[8]];var MailMessage=require(_0xab45[7])[_0xab45[9]];var MailQueue=require(_0xab45[7])[_0xab45[10]];var Interval=require(_0xab45[7])[_0xab45[11]];var User=require(_0xab45[7])[_0xab45[12]];var Session=require(_0xab45[13]);module[_0xab45[14]]=function(){console[_0xab45[16]](_0xab45[15]);MailMessage[_0xab45[19]](function(_0x8a4bxd){if(_0x8a4bxd[_0xab45[17]]===_0xab45[18]){handleMessage(_0x8a4bxd)}})};function handleEntityNotFound(_0x8a4bxd){return function(_0x8a4bxf){if(!_0x8a4bxf){throw {message:_0x8a4bxd}};return _0x8a4bxf}}function handleMailRoom(_0x8a4bx11,_0x8a4bx12){return function(_0x8a4bx13){_0x8a4bx11[_0xab45[20]]=_0x8a4bx13[_0xab45[21]];_0x8a4bx11[_0xab45[22]]=util[_0xab45[25]](_0xab45[23],moment()[_0xab45[24]](),_0x8a4bx13[_0xab45[21]]);_0x8a4bx11[_0xab45[26]]=_0x8a4bx13[_0xab45[26]];_0x8a4bx12[_0xab45[27]]=_[_0xab45[29]](_0x8a4bx13.Users,function(_0x8a4bx14){return {id:_0x8a4bx14[_0xab45[21]],name:_0x8a4bx14[_0xab45[28]]}});return _0x8a4bx13[_0xab45[30]]()}}function handleMailAccount(_0x8a4bx11,_0x8a4bx12){return function(_0x8a4bx16){_0x8a4bx11[_0xab45[31]]=_0x8a4bx16[_0xab45[21]];_0x8a4bx11[_0xab45[32]]=_0x8a4bx16[_0xab45[28]];_0x8a4bx11[_0xab45[33]]=_0x8a4bx16[_0xab45[34]];_0x8a4bx12[_0xab45[35]]=_0x8a4bx16[_0xab45[35]];if(_0x8a4bx16[_0xab45[35]]){_0x8a4bx12[_0xab45[36]]=_0x8a4bx12[_0xab45[37]]=_0x8a4bx16[_0xab45[38]];_0x8a4bx12[_0xab45[35]]=_0x8a4bx16[_0xab45[38]];_0x8a4bx12[_0xab45[39]]=_0xab45[40]};return _0x8a4bx16[_0xab45[44]]({order:_0xab45[41],include:[{model:MailQueue,attributes:[_0xab45[21],_0xab45[28],_0xab45[38],_0xab45[39]],include:[{model:User,attributes:[_0xab45[21],_0xab45[28],_0xab45[42],_0xab45[43]]}]},{model:User,attributes:[_0xab45[21],_0xab45[28],_0xab45[42],_0xab45[43]]},{model:Interval,include:[{all:true}]}]})}}function handleApps(_0x8a4bx11,_0x8a4bx12){return function(_0x8a4bx18){var _0x8a4bx19=[];ReportMailSession[_0xab45[48]](_[_0xab45[47]](_0x8a4bx11))[_0xab45[46]](function(_0x8a4bx1a){console[_0xab45[45]](_0x8a4bx1a)});if(_0x8a4bx12[_0xab45[35]]){_0x8a4bx11[_0xab45[37]]=_0x8a4bx12[_0xab45[35]];_0x8a4bx11[_0xab45[36]]=_0x8a4bx12[_0xab45[35]];_0x8a4bx11[_0xab45[27]]=_0x8a4bx12[_0xab45[27]];_0x8a4bx11[_0xab45[49]]=_0xab45[35];_0x8a4bx11[_0xab45[39]]=_0xab45[40];var _0x8a4bx1b=_[_0xab45[47]](_0x8a4bx11);if(_0x8a4bx1b[_0xab45[27]][_0xab45[50]]){_0x8a4bx19[_0xab45[51]](function(_0x8a4bx1c){ new Session(_0x8a4bx1b,_0x8a4bx1c)})}};_0x8a4bx18[_0xab45[57]](function(_0x8a4bx1d,_0x8a4bx1e){var _0x8a4bx1b=_[_0xab45[47]](_0x8a4bx11);_0x8a4bx1b[_0xab45[36]]=_0x8a4bx1d[_0xab45[38]];_0x8a4bx1b[_0xab45[49]]=_0x8a4bx1d[_0xab45[52]];switch(_0x8a4bx1d[_0xab45[52]]){case _0xab45[55]:_0x8a4bx1b[_0xab45[53]]=_0x8a4bx1d[_0xab45[10]][_0xab45[21]];_0x8a4bx1b[_0xab45[54]]=_0x8a4bx1d[_0xab45[10]][_0xab45[28]];_0x8a4bx1b[_0xab45[39]]=_0x8a4bx1d[_0xab45[10]][_0xab45[39]];_0x8a4bx1b[_0xab45[37]]=_0x8a4bx1d[_0xab45[10]][_0xab45[38]];_0x8a4bx1b[_0xab45[27]]=_[_0xab45[29]](_0x8a4bx1d[_0xab45[10]].Users,function(_0x8a4bx1f){return {id:_0x8a4bx1f[_0xab45[21]],name:_0x8a4bx1f[_0xab45[28]]}});break;case _0xab45[56]:_0x8a4bx1b[_0xab45[37]]=_0x8a4bx1d[_0xab45[38]];_0x8a4bx1b[_0xab45[39]]=_0xab45[40];_0x8a4bx1b[_0xab45[27]]=[{id:_0x8a4bx1d[_0xab45[12]][_0xab45[21]],name:_0x8a4bx1d[_0xab45[12]][_0xab45[28]]}];break;default:};if(_0x8a4bx19[_0xab45[50]]){_0x8a4bx19[_0xab45[51]](function(_0x8a4bx20,_0x8a4bx1c){if(_0x8a4bx20){_0x8a4bx1c(null,_0x8a4bx20)}else { new Session(_0x8a4bx1b,_0x8a4bx1c)}})}else {_0x8a4bx19[_0xab45[51]](function(_0x8a4bx1c){ new Session(_0x8a4bx1b,_0x8a4bx1c)})}});async[_0xab45[61]](_0x8a4bx19,function(_0x8a4bx1a,_0x8a4bx21){if(_0x8a4bx1a){console[_0xab45[45]](_0x8a4bx1a)};if(!_0x8a4bx21){return ReportMailSession[_0xab45[59]]({queuecallerleaveAt:moment()[_0xab45[25]](_0xab45[58]),queuecallerunmanagedAt:moment()[_0xab45[25]](_0xab45[58])},{where:{uniqueid:_0x8a4bx11[_0xab45[22]]},individualHooks:true})};console[_0xab45[16]](_0xab45[60])})}}function handleMessage(_0x8a4bxd){var _0x8a4bx12={agents:[]};var _0x8a4bx11={messageid:_0x8a4bxd[_0xab45[21]],queuecallerjoinAt:moment()[_0xab45[25]](_0xab45[58])};return _0x8a4bxd[_0xab45[66]]({include:[{model:User,attributes:[_0xab45[21],_0xab45[28],_0xab45[42],_0xab45[43]]}]})[_0xab45[63]](handleEntityNotFound(_0xab45[65]))[_0xab45[63]](handleMailRoom(_0x8a4bx11,_0x8a4bx12))[_0xab45[63]](handleEntityNotFound(_0xab45[64]))[_0xab45[63]](handleMailAccount(_0x8a4bx11,_0x8a4bx12))[_0xab45[63]](handleApps(_0x8a4bx11,_0x8a4bx12))[_0xab45[46]](function(_0x8a4bx1a){console[_0xab45[45]](_0xab45[62],_0x8a4bx1a)})}
\ No newline at end of file
index 171d4af..655c024 100644 (file)
@@ -1,258 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-
-var Agent = require('../../../models').User;
-var MailRoom = require('../../../models').MailRoom;
-var MailApplication = require('../../../models').MailApplication;
-var ReportMail = require('../../../models').ReportMail;
-var ReportMailSession = require('../../../models').ReportMailSession;
-
-// Define the factory
-function Session(report, callback) {
-  console.log('New Mail session...');
-  var elapsed = 0;
-  var interval, timeout;
-
-  Agent
-    .findAll({
-      where: {
-        id: {
-          $in: _.map(report.agents, 'id'),
-        },
-        online: true,
-        mailPause: false
-      },
-      include: [{
-        model: MailRoom,
-        attributes: ['id', 'status']
-      }],
-      attributes: ['id', 'name', 'mailCapacity']
-    })
-    .then(function(agents) {
-      var set1 = _.filter(agents, function(agent) {
-        if (agent.mailCapacity === 0) {
-          return true;
-        } else {
-          return agent.mailCapacity > _.filter(agent.MailRooms, function(room) {
-            return room.id !== report.roomid && room.status !== 'CLOSED'
-          }).length;
-        }
-      });
-      var set2 = [];
-
-      var diff;
-      var agent;
-
-      report.timeslot = ((report.apptimeout - elapsed) > report.queuetimeout) ? report.queuetimeout : (report.apptimeout - elapsed);
-
-      switch (report.strategy) {
-        case 'rrmemory':
-          diff = _.differenceBy(set1, set2, 'name');
-          agent = diff.shift();
-
-          if (agent) {
-            report.available = [{
-              id: agent.id,
-              name: agent.name
-            }];
-
-            set2.push({
-              id: agent.id,
-              name: agent.name
-            });
-            saveReport(report);
-
-          } else {
-            set2 = [];
-            agent = set1.shift();
-
-            if (agent) {
-              set2.push({
-                id: agent.id,
-                name: agent.name
-              });
-              saveReport(report);
-            }
-          }
-
-          break;
-        case 'beepall':
-          report.available = set1;
-          saveReport(report);
-
-          break;
-        default:
-      }
-
-      // APPLICATION TIMEOUT
-      timeout = setTimeout(function() {
-        clearInterval(interval);
-        return callback(null, false);
-      }, report.apptimeout * 1000);
-
-      interval = setInterval(function() {
-        elapsed += report.queuetimeout;
-
-        return Agent
-          .findAll({
-            where: {
-              id: {
-                $in: _.map(report.agents, 'id'),
-              },
-              online: true,
-              mailPause: false
-            },
-            include: [{
-              model: MailRoom,
-              attributes: ['id', 'status']
-            }],
-            attributes: ['id', 'name', 'mailCapacity']
-          })
-          .then(function(agents) {
-            set1 = _.filter(agents, function(agent) {
-              if (agent.mailCapacity === 0) {
-                return true;
-              } else {
-                return agent.mailCapacity > _.filter(agent.MailRooms, function(room) {
-                  return room.id !== report.roomid && room.status !== 'CLOSED'
-                }).length;
-              }
-            });
-
-            report.timeslot = ((report.apptimeout - elapsed) > report.queuetimeout) ? report.queuetimeout : (report.apptimeout - elapsed);
-
-            switch (report.strategy) {
-              case 'rrmemory':
-                diff = _.differenceBy(set1, set2, 'name');
-                agent = diff.shift();
-
-                if (agent) {
-                  report.available = [{
-                    id: agent.id,
-                    name: agent.name
-                  }];
-
-                  set2.push({
-                    id: agent.id,
-                    name: agent.name
-                  });
-
-                  saveReport(report);
-
-                } else {
-                  set2 = [];
-                  agent = set1.shift();
-
-                  if (agent) {
-                    report.available = [{
-                      id: agent.id,
-                      name: agent.name
-                    }];
-
-                    set2.push({
-                      id: agent.id,
-                      name: agent.name
-                    });
-                    saveReport(report);
-                  }
-                }
-
-                break;
-              case 'beepall':
-                report.available = set1;
-                saveReport(report);
-
-                break;
-              default:
-            }
-          })
-          .catch(function(err) {
-            console.error(err);
-          });
-
-      }, report.queuetimeout * 1000);
-
-    })
-    .catch(function(err) {
-      console.error(err);
-    });
-
-  // INTERROMPO IL ROUTING
-  ReportMail.afterUpdate(function(doc) {
-    if (doc.changed('connectid')) {
-      return MailRoom
-        .findById(doc.roomid)
-        .then(function(mailRoom) {
-          return mailRoom
-            .addUser(doc.memberid, {
-              individualHooks: true
-            });
-        })
-        .then(function() {
-          return ReportMailSession
-            .update({
-              application: doc.application,
-              memberid: doc.memberid,
-              membername: doc.membername,
-              queue: doc.queue || null,
-              queuename: doc.queuename || null,
-              fidelity: doc.application === 'fidelity' ? doc.timeslot : null,
-              queuecallerleaveAt: moment().format("YYYY-MM-DD HH:mm:ss")
-            }, {
-              where: {
-                uniqueid: doc.uniqueid
-              },
-              individualHooks: true
-            });
-        })
-        .then(function() {
-          clearInterval(interval);
-          clearTimeout(timeout);
-          return callback(null, true);
-        })
-        .catch(function(err) {
-          console.error(err);
-        });
-    }
-  });
-
-  return {};
-}
-
-function saveReport(report) {
-  var reports = [];
-
-  report.available.forEach(function(agent, index) {
-    reports.push({
-      uniqueid: report.uniqueid,
-      timeslot: report.timeslot,
-      subject: report.subject,
-      accountid: report.accountid,
-      accountname: report.accountname,
-      accountaddress: report.accountaddress,
-      application: report.application,
-      membername: agent.name,
-      memberid: agent.id,
-      queue: report.queue || null,
-      queuename: report.queuename || null,
-      roomid: report.roomid || null,
-      messageid: report.messageid || null,
-      calledAt: moment().format("YYYY-MM-DD HH:mm:ss")
-    });
-  });
-
-  if (reports.length) {
-    return ReportMail
-      .bulkCreate(reports, {
-        individualHooks: true
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  }
-}
-
-// Export this file as a module
-module.exports = Session;
+var _0x1c52=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x4E\x65\x77\x20\x4D\x61\x69\x6C\x20\x73\x65\x73\x73\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6D\x61\x69\x6C\x43\x61\x70\x61\x63\x69\x74\x79","\x6C\x65\x6E\x67\x74\x68","\x69\x64","\x72\x6F\x6F\x6D\x69\x64","\x73\x74\x61\x74\x75\x73","\x43\x4C\x4F\x53\x45\x44","\x66\x69\x6C\x74\x65\x72","\x74\x69\x6D\x65\x73\x6C\x6F\x74","\x61\x70\x70\x74\x69\x6D\x65\x6F\x75\x74","\x71\x75\x65\x75\x65\x74\x69\x6D\x65\x6F\x75\x74","\x6E\x61\x6D\x65","\x64\x69\x66\x66\x65\x72\x65\x6E\x63\x65\x42\x79","\x73\x68\x69\x66\x74","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x70\x75\x73\x68","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x73\x74\x72\x61\x74\x65\x67\x79","\x74\x68\x65\x6E","\x61\x67\x65\x6E\x74\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x63\x68\x61\x6E\x67\x65\x64","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6D\x65\x6D\x62\x65\x72\x69\x64","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x71\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x6E\x61\x6D\x65","\x66\x69\x64\x65\x6C\x69\x74\x79","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x70\x64\x61\x74\x65","\x61\x64\x64\x55\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x73\x75\x62\x6A\x65\x63\x74","\x61\x63\x63\x6F\x75\x6E\x74\x69\x64","\x61\x63\x63\x6F\x75\x6E\x74\x6E\x61\x6D\x65","\x61\x63\x63\x6F\x75\x6E\x74\x61\x64\x64\x72\x65\x73\x73","\x6D\x65\x73\x73\x61\x67\x65\x69\x64","\x66\x6F\x72\x45\x61\x63\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1c52[0];var _=require(_0x1c52[1]);var moment=require(_0x1c52[2]);var Agent=require(_0x1c52[4])[_0x1c52[3]];var MailRoom=require(_0x1c52[4])[_0x1c52[5]];var MailApplication=require(_0x1c52[4])[_0x1c52[6]];var ReportMail=require(_0x1c52[4])[_0x1c52[7]];var ReportMailSession=require(_0x1c52[4])[_0x1c52[8]];function Session(_0x5680x9,_0x5680xa){console[_0x1c52[10]](_0x1c52[9]);var _0x5680xb=0;var _0x5680xc,_0x5680xd;Agent[_0x1c52[34]]({where:{id:{$in:_[_0x1c52[33]](_0x5680x9[_0x1c52[32]],_0x1c52[15])},online:true,mailPause:false},include:[{model:MailRoom,attributes:[_0x1c52[15],_0x1c52[17]]}],attributes:[_0x1c52[15],_0x1c52[23],_0x1c52[13]]})[_0x1c52[31]](function(_0x5680xf){var _0x5680x10=_[_0x1c52[19]](_0x5680xf,function(_0x5680x11){if(_0x5680x11[_0x1c52[13]]===0){return true}else {return _0x5680x11[_0x1c52[13]]>_[_0x1c52[19]](_0x5680x11.MailRooms,function(_0x5680x12){return _0x5680x12[_0x1c52[15]]!==_0x5680x9[_0x1c52[16]]&&_0x5680x12[_0x1c52[17]]!==_0x1c52[18]})[_0x1c52[14]]}});var _0x5680x13=[];var _0x5680x14;var _0x5680x11;_0x5680x9[_0x1c52[20]]=((_0x5680x9[_0x1c52[21]]-_0x5680xb)>_0x5680x9[_0x1c52[22]])?_0x5680x9[_0x1c52[22]]:(_0x5680x9[_0x1c52[21]]-_0x5680xb);switch(_0x5680x9[_0x1c52[30]]){case _0x1c52[28]:_0x5680x14=_[_0x1c52[24]](_0x5680x10,_0x5680x13,_0x1c52[23]);_0x5680x11=_0x5680x14[_0x1c52[25]]();if(_0x5680x11){_0x5680x9[_0x1c52[26]]=[{id:_0x5680x11[_0x1c52[15]],name:_0x5680x11[_0x1c52[23]]}];_0x5680x13[_0x1c52[27]]({id:_0x5680x11[_0x1c52[15]],name:_0x5680x11[_0x1c52[23]]});saveReport(_0x5680x9)}else {_0x5680x13=[];_0x5680x11=_0x5680x10[_0x1c52[25]]();if(_0x5680x11){_0x5680x13[_0x1c52[27]]({id:_0x5680x11[_0x1c52[15]],name:_0x5680x11[_0x1c52[23]]});saveReport(_0x5680x9)}};break;case _0x1c52[29]:_0x5680x9[_0x1c52[26]]=_0x5680x10;saveReport(_0x5680x9);break;default:};_0x5680xd=setTimeout(function(){clearInterval(_0x5680xc);return _0x5680xa(null,false)},_0x5680x9[_0x1c52[21]]*1000);_0x5680xc=setInterval(function(){_0x5680xb+=_0x5680x9[_0x1c52[22]];return Agent[_0x1c52[34]]({where:{id:{$in:_[_0x1c52[33]](_0x5680x9[_0x1c52[32]],_0x1c52[15])},online:true,mailPause:false},include:[{model:MailRoom,attributes:[_0x1c52[15],_0x1c52[17]]}],attributes:[_0x1c52[15],_0x1c52[23],_0x1c52[13]]})[_0x1c52[31]](function(_0x5680xf){_0x5680x10=_[_0x1c52[19]](_0x5680xf,function(_0x5680x11){if(_0x5680x11[_0x1c52[13]]===0){return true}else {return _0x5680x11[_0x1c52[13]]>_[_0x1c52[19]](_0x5680x11.MailRooms,function(_0x5680x12){return _0x5680x12[_0x1c52[15]]!==_0x5680x9[_0x1c52[16]]&&_0x5680x12[_0x1c52[17]]!==_0x1c52[18]})[_0x1c52[14]]}});_0x5680x9[_0x1c52[20]]=((_0x5680x9[_0x1c52[21]]-_0x5680xb)>_0x5680x9[_0x1c52[22]])?_0x5680x9[_0x1c52[22]]:(_0x5680x9[_0x1c52[21]]-_0x5680xb);switch(_0x5680x9[_0x1c52[30]]){case _0x1c52[28]:_0x5680x14=_[_0x1c52[24]](_0x5680x10,_0x5680x13,_0x1c52[23]);_0x5680x11=_0x5680x14[_0x1c52[25]]();if(_0x5680x11){_0x5680x9[_0x1c52[26]]=[{id:_0x5680x11[_0x1c52[15]],name:_0x5680x11[_0x1c52[23]]}];_0x5680x13[_0x1c52[27]]({id:_0x5680x11[_0x1c52[15]],name:_0x5680x11[_0x1c52[23]]});saveReport(_0x5680x9)}else {_0x5680x13=[];_0x5680x11=_0x5680x10[_0x1c52[25]]();if(_0x5680x11){_0x5680x9[_0x1c52[26]]=[{id:_0x5680x11[_0x1c52[15]],name:_0x5680x11[_0x1c52[23]]}];_0x5680x13[_0x1c52[27]]({id:_0x5680x11[_0x1c52[15]],name:_0x5680x11[_0x1c52[23]]});saveReport(_0x5680x9)}};break;case _0x1c52[29]:_0x5680x9[_0x1c52[26]]=_0x5680x10;saveReport(_0x5680x9);break;default:}})[_0x1c52[12]](function(_0x5680xe){console[_0x1c52[11]](_0x5680xe)})},_0x5680x9[_0x1c52[22]]*1000)})[_0x1c52[12]](function(_0x5680xe){console[_0x1c52[11]](_0x5680xe)});ReportMail[_0x1c52[49]](function(_0x5680x15){if(_0x5680x15[_0x1c52[36]](_0x1c52[35])){return MailRoom[_0x1c52[48]](_0x5680x15[_0x1c52[16]])[_0x1c52[31]](function(_0x5680x16){return _0x5680x16[_0x1c52[47]](_0x5680x15[_0x1c52[38]],{individualHooks:true})})[_0x1c52[31]](function(){return ReportMailSession[_0x1c52[46]]({application:_0x5680x15[_0x1c52[37]],memberid:_0x5680x15[_0x1c52[38]],membername:_0x5680x15[_0x1c52[39]],queue:_0x5680x15[_0x1c52[40]]||null,queuename:_0x5680x15[_0x1c52[41]]||null,fidelity:_0x5680x15[_0x1c52[37]]===_0x1c52[42]?_0x5680x15[_0x1c52[20]]:null,queuecallerleaveAt:moment()[_0x1c52[44]](_0x1c52[43])},{where:{uniqueid:_0x5680x15[_0x1c52[45]]},individualHooks:true})})[_0x1c52[31]](function(){clearInterval(_0x5680xc);clearTimeout(_0x5680xd);return _0x5680xa(null,true)})[_0x1c52[12]](function(_0x5680xe){console[_0x1c52[11]](_0x5680xe)})}});return {}}function saveReport(_0x5680x9){var _0x5680x18=[];_0x5680x9[_0x1c52[26]][_0x1c52[55]](function(_0x5680x11,_0x5680x19){_0x5680x18[_0x1c52[27]]({uniqueid:_0x5680x9[_0x1c52[45]],timeslot:_0x5680x9[_0x1c52[20]],subject:_0x5680x9[_0x1c52[50]],accountid:_0x5680x9[_0x1c52[51]],accountname:_0x5680x9[_0x1c52[52]],accountaddress:_0x5680x9[_0x1c52[53]],application:_0x5680x9[_0x1c52[37]],membername:_0x5680x11[_0x1c52[23]],memberid:_0x5680x11[_0x1c52[15]],queue:_0x5680x9[_0x1c52[40]]||null,queuename:_0x5680x9[_0x1c52[41]]||null,roomid:_0x5680x9[_0x1c52[16]]||null,messageid:_0x5680x9[_0x1c52[54]]||null,calledAt:moment()[_0x1c52[44]](_0x1c52[43])})});if(_0x5680x18[_0x1c52[14]]){return ReportMail[_0x1c52[56]](_0x5680x18,{individualHooks:true})[_0x1c52[12]](function(_0x5680xe){console[_0x1c52[11]](_0x5680xe)})}}module[_0x1c52[57]]=Session
\ No newline at end of file
index f15b870..3b63b32 100644 (file)
@@ -1,1236 +1 @@
-/**
- * Populate DB with sample data on server start
- * to disable, edit config/environment/index.js, and set `seedDB: false`
- */
-
-'use strict';
-
-var _ = require('lodash');
-var models = require('../models');
-
-models.User
-  .bulkCreate([{
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Giuseppe Careri',
-    email: 'giuseppe.careri@xcally.com',
-    name: 'giuseppe.careri',
-    password: '75xcally75',
-    defaultuser: 'giuseppe.careri',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1000
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Daniele Cinti',
-    email: 'daniele.cinti@xcally.com',
-    name: 'daniele.cinti',
-    password: '75xcally75',
-    defaultuser: 'daniele.cinti',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1001
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Andrea Bianco',
-    email: 'andrea.bianco@xcally.com',
-    name: 'andrea.bianco',
-    password: '75xcally75',
-    defaultuser: 'andrea.bianco',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1002
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Massimiliano Bungaro',
-    email: 'massimiliano.bungaro@xcally.com',
-    name: 'massimiliano.bungaro',
-    password: '75xcally75',
-    defaultuser: 'massimiliano.bungaro',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1003
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Valerio Ciotta',
-    email: 'valerio.ciotta@xcally.com',
-    name: 'valerio.ciotta',
-    password: '75xcally75',
-    defaultuser: 'valerio.ciotta',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1004
-  }, {
-    provider: 'local',
-    role: 'admin',
-    fullname: 'Clarotech',
-    email: 'clarotech@xcally.com',
-    name: 'clarotech',
-    password: 'clarotech',
-    defaultuser: 'clarotech',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1005
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Abigael',
-    email: 'abigael@xcally.com',
-    name: 'abigael',
-    password: '75xcally75',
-    defaultuser: 'abigael',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1006
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Tony Russell',
-    email: 'tonyr@xclarotech.co.za',
-    name: 'tony.russell',
-    password: 'clarotech',
-    defaultuser: 'tony.russell',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1007
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Colin Fair',
-    email: 'colinf@xclarotech.co.za',
-    name: 'colin.fair',
-    password: 'clarotech',
-    defaultuser: 'colin.fair',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1008
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Diego Gosmar',
-    email: 'diego.gosmar@xcally.com',
-    name: 'diego.gosmar',
-    password: '75xcally75',
-    defaultuser: 'diego.gosmar',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1009
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Giuseppe Innamorato',
-    email: 'giuseppe.innamorato@xcally.com',
-    name: 'giuseppe.innamorato',
-    password: '75xcally75',
-    defaultuser: 'giuseppe.innamorato',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'upd',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1010
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Alessandra Bessone',
-    email: 'alessandra.bessone@xcally.com',
-    name: 'alessandra.bessone',
-    password: '75xcally75',
-    defaultuser: 'alessandra.bessone',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'upd',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1011
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Felice Briscese',
-    email: 'felice.briscese@xcally.com',
-    name: 'felice.briscese',
-    password: '75xcally75',
-    defaultuser: 'felice.briscese',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'upd',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1012
-  }, {
-    provider: 'local',
-    role: 'admin',
-    fullname: 'xCally',
-    email: 'info.xcally@xcally.com',
-    name: 'xcally',
-    password: '388xshuttle388',
-    defaultuser: 'xcally',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1013
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'John Doe',
-    email: 'john.doe@gmail.com',
-    name: 'john.doe',
-    password: '75xcally75',
-    defaultuser: 'john.doe',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1014
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Jane Miller',
-    email: 'jane.miller@gmail.com',
-    name: 'jane.miller',
-    password: '75xcally75',
-    defaultuser: 'jane.miller',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1015
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating users');
-  });
-
-models.Trunk
-  .bulkCreate([{
-    name: 'citalia',
-    type: 'friend',
-    insecure: 'port,invite',
-    defaultuser: '01119827770',
-    secret: 'T!NPnv-qjCMe9v',
-    password: 'T!NPnv-qjCMe9v',
-    context: 'from-voip-provider',
-    language: 'it',
-    host: 'voip.eutelia.it',
-    fromdomain: 'voip.eutelia.it',
-    dtmfmode: 'rfc2833',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    callerid: ' "" <>',
-    limitonpeers: 'yes',
-    callcounter: 'yes',
-    disallow: 'all',
-    allow: 'ulaw;alaw;gsm',
-    canreinvite: 'no',
-    directmedia: 'no'
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating trunks');
-  });
-
-
-// Init modules table
-models.Module
-  .bulkCreate([{
-    name: "dashboard",
-    title: "APPLICATION_DASHBOARD"
-  }, {
-    name: "users",
-    title: "APPLICATION_USERS"
-  }, {
-    name: "agents",
-    title: "APPLICATION_AGENTS"
-  }, {
-    name: "teams",
-    title: "APPLICATION_TEAMS"
-  }, {
-    name: "chat",
-    title: "APPLICATION_CHAT"
-  }, {
-    name: "voice",
-    title: "APPLICATION_VOICE"
-  }, {
-    name: "mail",
-    title: "APPLICATION_MAIL"
-  }, {
-    name: "fax",
-    title: "APPLICATION_FAX"
-  }, {
-    name: "audio",
-    title: "APPLICATION_AUDIO"
-  }, {
-    name: "callysquare",
-    title: "APPLICATION_CALLYSQUARE"
-  }, {
-    name: "analytics",
-    title: "APPLICATION_ANALYTICS"
-  }, {
-    name: "realtime",
-    title: "APPLICATION_REALTIME"
-  }, {
-    name: "voicemails",
-    title: "APPLICATION_VOICEMAILS"
-  }, {
-    name: "settings",
-    title: "APPLICATION_SETTINGS"
-  }], {
-    ignoreDuplicates: true
-  }).then(function() {
-    console.log('Finished populating modules');
-  });
-
-models.Team
-  .create({
-    name: "T1",
-    description: "Default Team",
-    defaultEntry: true
-  })
-  .then(function(team) {
-
-    models.User
-      .findAll({
-        where: {
-          role: 'agent'
-        }
-      })
-      .then(function(users) {
-        team
-          .addUsers(_.map(users, 'id'))
-          .then(function() {
-            models.ChatQueue
-              .create({
-                name: "CQ1",
-                description: "CQ1 Desc",
-                timeout: 5,
-                strategy: "rrmemory"
-              })
-              .then(function(chatQueue) {
-                console.log('Finished populating chat queue 1');
-
-                models.Team
-                  .findOne({
-                    where: {
-                      name: 'T1'
-                    },
-                    include: [{
-                      all: true
-                    }]
-                  })
-                  .then(function(team) {
-                    chatQueue
-                      .addUsers(_.map(team.Users, 'id'))
-                      .catch(function(err) {
-                        // console.error(err);
-                      });
-                  })
-                  .catch(function(err) {
-                    // console.error(err);
-                  });
-              });
-
-            models.MailQueue
-              .create({
-                name: "MQ1",
-                description: "MQ1 Desc",
-                timeout: 5,
-                strategy: "rrmemory"
-              })
-              .then(function(mailQueue) {
-                console.log('Finished populating mail queue 1');
-
-                models.Team
-                  .findOne({
-                    where: {
-                      name: 'T1'
-                    },
-                    include: [{
-                      all: true
-                    }]
-                  })
-                  .then(function(team) {
-                    if (team) {
-                      console.log('team found');
-                    } else {
-                      console.log('test');
-                    }
-                    mailQueue
-                      .addUsers(_.map(team.Users, 'id'))
-                      .catch(function(err) {
-                        // console.error(err);
-                      });
-                  })
-                  .catch(function(err) {
-                    // console.error(err);
-                  });
-              });
-
-            models.FaxQueue
-              .create({
-                name: "FQ1",
-                description: "FQ1 Desc",
-                timeout: 5,
-                strategy: "rrmemory"
-              })
-              .then(function(faxQueue) {
-                console.log('Finished populating fax queue 1');
-
-                models.Team
-                  .findOne({
-                    where: {
-                      name: 'T1'
-                    },
-                    include: [{
-                      all: true
-                    }]
-                  })
-                  .then(function(team) {
-                    faxQueue
-                      .addUsers(_.map(team.Users, 'id'))
-                      .catch(function(err) {
-                        // console.error(err);
-                      });
-                  })
-                  .catch(function(err) {
-                    // console.error(err);
-                  });
-              });
-          })
-          .catch(function(err) {
-            // console.error(err);
-          });
-      })
-      .catch(function(err) {
-        // console.error(err);
-      });
-  })
-  .catch(function(err) {
-    // console.error(err);
-  });
-
-models.MailAccount
-  .create({
-    name: "xCally Development",
-    description: "xCally Development",
-    address: "development@xcally.com"
-  })
-  .then(function(mailAccount) {
-    console.log('Finished populating mail account');
-    models.MailServerIn
-      .create({
-        description: 'xcally',
-        host: 'imap.xcally.com',
-        username: 'development@xcally.com',
-        password: 'phokucloka',
-        port: 143,
-        mailbox: 'INBOX',
-        ssl: false,
-        delete: false,
-        filter: 'UNSEEN',
-        protocol: 'IMAP',
-        MailAccountId: mailAccount.id
-      })
-      .then(function() {
-        console.log('Finished populating mail server in');
-        models.MailServerOut
-          .create({
-            description: 'xcally',
-            host: 'smtp.xcally.com',
-            username: 'development@xcally.com',
-            password: 'phokucloka',
-            port: 587,
-            ssl: false,
-            MailAccountId: mailAccount.id
-          })
-          .then(function() {
-            console.log('Finished populating mail server out');
-          })
-          .catch(function(err) {
-            // console.error(err);
-          });
-      })
-      .catch(function(err) {
-        // console.error(err);
-      });
-  });
-
-models.FaxAccount
-  .create({
-    description: 'FA1 Desc',
-    name: 'FA1',
-    phone: '01119827770',
-    ecm: true,
-    faxheader: 'xCALLY',
-    localid: '01119827770',
-    maxrate: '9600',
-    minrate: '14400',
-  })
-  .then(function(faxAccount) {
-    console.log('Finished populating fax account');
-
-    models.Trunk
-      .findOne({
-        where: {
-          name: 'citalia'
-        }
-      })
-      .then(function(trunk) {
-        faxAccount
-          .setTrunk(trunk)
-          .catch(function(err) {
-            // console.error(err);
-          });
-
-
-        models.VoiceExtension
-          .create({
-            context: 'from-voip-provider',
-            exten: '01119827770',
-            priority: 1,
-            app: 'Goto',
-            appdata: 'inbound-fax,s,1',
-            type: 'inbound-fax'
-          })
-
-      })
-      .catch(function(err) {
-        // console.error(err);
-      });
-
-    models.FaxQueue
-      .findAll()
-      .then(function(faxQueues) {
-        models.FaxApplication
-          .create({
-            app: 'queue',
-            appdata: faxQueues[0].id,
-            priority: 1,
-            timeout: 30,
-            FaxAccountId: faxAccount.id,
-            FaxQueueId: faxQueues[0].id
-          })
-          .then(function() {
-            console.log('Finished populating chat website application 1');
-          })
-          .catch(function(err) {
-            // console.error(err);
-          });
-
-        models.FaxApplication
-          .create({
-            app: 'queue',
-            appdata: faxQueues[1].id,
-            priority: 2,
-            timeout: 30,
-            FaxAccountId: faxAccount.id,
-            FaxQueueId: faxQueues[1].id
-          })
-          .then(function() {
-            console.log('Finished populating chat website application 2');
-          })
-          .catch(function(err) {
-            // console.error(err);
-          });
-      })
-      .catch(function(err) {
-        // console.error(err);
-      });
-  })
-  .catch(function(err) {
-    // console.error(err);
-  });
-// models.FaxAccount
-//   .create({
-//     description: 'FA1 Desc',
-//     name: 'FA1',
-//     phone: '01119827770',
-//     ecm: true,
-//     faxheader: 'xCALLY',
-//     localid: '01119827770',
-//     maxrate: '9600',
-//     minrate: '14400',
-//   })
-//   .then(function (faxAccount) {
-//     console.log('Finished populating fax account');
-//
-//     models.Trunk
-//       .findOne({
-//         where: {
-//           name: 'citalia'
-//         }
-//       })
-//       .then(function (trunk) {
-//         faxAccount
-//           .setTrunk(trunk)
-//           .catch(function (err) {
-//             // console.error(err);
-//           });
-//
-//
-//         models.VoiceExtension
-//           .create({
-//             context: 'from-voip-provider',
-//             exten: '01119827770',
-//             priority: 1,
-//             app: 'Goto',
-//             appdata: 'inbound-fax,s,1',
-//             type: 'inbound-fax',
-//             TrunkId: trunk.name
-//           })
-//
-//       })
-//       .catch(function (err) {
-//         // console.error(err);
-//       });
-//
-//     models.FaxQueue
-//       .findAll()
-//       .then(function (faxQueues) {
-//         models.FaxApplication
-//           .create({
-//             app: 'queue',
-//             appdata: faxQueues[0].id,
-//             priority: 1,
-//             timeout: 30,
-//             FaxAccountId: faxAccount.id,
-//             FaxQueueId: faxQueues[0].id
-//           })
-//           .then(function () {
-//             console.log('Finished populating chat website application 1');
-//           })
-//           .catch(function (err) {
-//             // console.error(err);
-//           });
-//
-//         models.FaxApplication
-//           .create({
-//             app: 'queue',
-//             appdata: faxQueues[1].id,
-//             priority: 2,
-//             timeout: 30,
-//             FaxAccountId: faxAccount.id,
-//             FaxQueueId: faxQueues[1].id
-//           })
-//           .then(function () {
-//             console.log('Finished populating chat website application 2');
-//           })
-//           .catch(function (err) {
-//             // console.error(err);
-//           });
-//       })
-//       .catch(function (err) {
-//         // console.error(err);
-//       });
-//   })
-//   .catch(function (err) {
-//     // console.error(err);
-//   });
-
-models.VoiceExtension
-  .bulkCreate([{
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 1,
-    app: 'NoOp',
-    appdata: 'Fax UUID: ${FAXUUID}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 2,
-    app: 'UserEvent',
-    appdata: 'Fax,uuid: ${FAXUUID}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 3,
-    app: 'Set',
-    appdata: 'FAXOPT(filename):${FAXFILE}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 4,
-    app: 'Set',
-    appdata: 'FAXOPT(ecm):${ECM}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 5,
-    app: 'Set',
-    appdata: 'FAXOPT(headerinfo):${FAXHEADER}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 6,
-    app: 'Set',
-    appdata: 'FAXOPT(localstationid):${LOCALID}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 7,
-    app: 'Set',
-    appdata: 'FAXOPT(maxrate):${MAXRATE}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 8,
-    app: 'Set',
-    appdata: 'FAXOPT(minrate):${MINRATE}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 9,
-    app: 'SendFAX',
-    appdata: '${FAXFILE},d',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 10,
-    app: 'NoOp',
-    appdata: 'ERROR "${TIMESTAMP}" "NO_STATUS" "NO_PAGES"',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 1,
-    app: 'NoOp',
-    appdata: 'FAXOPT(ecm) : ${FAXOPT(ecm)}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 2,
-    app: 'NoOp',
-    appdata: 'FaxStatus : ${FAXSTATUS}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 3,
-    app: 'NoOp',
-    appdata: 'FaxStatusString : ${FAXSTATUSSTRING}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 4,
-    app: 'NoOp',
-    appdata: 'FaxError : ${FAXERROR}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 5,
-    app: 'NoOp',
-    appdata: 'RemoteStationID : ${REMOTESTATIONID}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 6,
-    app: 'NoOp',
-    appdata: 'FaxPages : ${FAXPAGES}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 7,
-    app: 'NoOp',
-    appdata: 'FaxBitRate : ${FAXBITRATE}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 8,
-    app: 'NoOp',
-    appdata: 'FaxResolution : ${FAXRESOLUTION}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 9,
-    app: 'NoOp',
-    appdata: 'OK "${TIMESTAMP}" "${FAXSTATUSSTRING}" "${FAXPAGES}"',
-    type: 'outbound-fax'
-  }], {
-    ignoreDuplicates: true
-  })
-  .then(function() {
-    console.log('Finished populating fax outbound voice extension');
-  });
-
-models.VoiceExtension
-  .bulkCreate([{
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 1,
-    app: 'NoOp',
-    appdata: '**** FAX RECEIVED from ${CALLERID(num)} ${STRFTIME(${EPOCH},,%c)} ****',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 2,
-    app: 'Set',
-    appdata: 'FAXOPT(ecm):yes',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 3,
-    app: 'Set',
-    appdata: 'FILENAME:${UNIQUEID}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 4,
-    app: 'Set',
-    appdata: 'FAXFILE:${FILENAME}.tif',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 5,
-    app: 'Set',
-    appdata: 'FAXOPT(headerinfo):Received by XeniaLAB ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M)}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 6,
-    app: 'Set',
-    appdata: 'FAXOPT(localstationid):${LOCALID}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 7,
-    app: 'Set',
-    appdata: 'FAXOPT(maxrate):${MAXRATE}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 8,
-    app: 'Set',
-    appdata: 'FAXOPT(minrate):${MINRATE}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 9,
-    app: 'NoOp',
-    appdata: 'FAXOPT(ecm) : ${FAXOPT(ecm)}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 10,
-    app: 'NoOp',
-    appdata: 'FAXOPT(headerinfo) : ${FAXOPT(headerinfo)}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 11,
-    app: 'NoOp',
-    appdata: 'FAXOPT(localstationid) : ${FAXOPT(localstationid)}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 12,
-    app: 'NoOp',
-    appdata: 'FAXOPT(maxrate) : ${FAXOPT(maxrate)}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 13,
-    app: 'NoOp',
-    appdata: 'FAXOPT(minrate) : ${FAXOPT(minrate)}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 14,
-    app: 'NoOp',
-    appdata: '**** RECEIVING FAX : ${FAXFILE} ****',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 15,
-    app: 'ReceiveFax',
-    appdata: '/tmp/${FAXFILE}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 16,
-    app: 'Hangup',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 'h',
-    priority: 1,
-    app: 'NoOp',
-    appdata: 'FAXOPT(ecm) : ${FAXOPT(ecm)}',
-    type: 'inbound-fax'
-  }], {
-    ignoreDuplicates: true
-  })
-  .then(function() {
-    console.log('Finished populating fax outbound voice extension');
-  });
-
-models.SquareProject
-  .bulkCreate([{
-    name: "project1",
-    description: "description project"
-  }], {
-    ignoreDuplicates: true
-  }).then(function() {
-    console.log('Finished populating square projects');
-  });
-
-models.ChatWebsite
-  .create({
-    name: 'xCally Shop',
-    description: 'xCally Shop',
-    address: 'http://www.xcally.com/shop/',
-    color: '#f51111',
-    color_focus: '#f51111',
-    color_button: '#f51111',
-    remote: 'http://localhost:9000',
-    animation: true,
-    header_shape: 'squared',
-    header_online: 'We are here!',
-    online_message: 'Questions? Insert your name and email address to start a live-chat with our support team.',
-    username_placeholder: 'Your name',
-    email_placeholder: 'Your email address',
-    start_chat_button: 'Chat',
-    header_offline: 'Contact us',
-    offline_message: "<strong>We're not online.</strong><br />It doesn't mean we're not there to help - leave your message below and we'll be in touch as soon as possible.'",
-    enquiry_message_placeholder: 'Your message...',
-    enquiry_button: 'Leave message',
-    download_transcript: true
-  })
-  .then(function(chatWebsite) {
-    console.log('Finished populating chat website');
-    models.ChatQueue
-      .findAll()
-      .then(function(chatQueues) {
-        models.ChatApplication
-          .create({
-            app: 'queue',
-            appdata: chatQueues[0].id,
-            priority: 1,
-            timeout: 30,
-            ChatWebsiteId: chatWebsite.id,
-            ChatQueueId: chatQueues[0].id
-          })
-          .then(function() {
-            console.log('Finished populating chat website application 1');
-          })
-          .catch(function(err) {
-            // console.error(err);
-          });
-
-        models.ChatApplication
-          .create({
-            app: 'queue',
-            appdata: chatQueues[1].id,
-            priority: 2,
-            timeout: 30,
-            ChatWebsiteId: chatWebsite.id,
-            ChatQueueId: chatQueues[1].id
-          })
-          .then(function() {
-            console.log('Finished populating chat website application 2');
-          })
-          .catch(function(err) {
-            // console.error(err);
-          });
-      })
-      .catch(function(err) {
-        // console.error(err);
-      });
-  })
-  .catch(function(err) {
-    // console.error(err);
-  });
-
-models.Variable
-  .bulkCreate([{
-    name: "variable1",
-    description: "description project"
-  }], {
-    ignoreDuplicates: true
-  }).then(function() {
-    console.log('Finished populating variables');
-  });
-
-models.VoiceContext
-  .bulkCreate([{
-    name: "from-sip",
-    description: "Default context (DO NOT DELETE)",
-    defaultEntry: true
-  }, {
-    name: "from-voip-provider",
-    description: "Default context (DO NOT DELETE)",
-    defaultEntry: true
-  }, {
-    name: "inbound-fax",
-    description: "Default context (DO NOT DELETE)",
-    defaultEntry: true
-  }, {
-    name: "outbound-fax",
-    description: "Default context (DO NOT DELETE)",
-    defaultEntry: true
-  }, {
-    name: "from-voicemail",
-    description: "Default context (DO NOT DELETE)",
-    defaultEntry: true
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating context variables');
-  });
-
-models.VoiceMusicOnHold
-  .bulkCreate([{
-    name: "default",
-    mode: "files",
-    directory: 'var/lib/asterisk/moh',
-    sort: 'alpha',
-    format: 'wav',
-    defaultEntry: true
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating moh variables');
-  });
-
-models.Settings
-  .bulkCreate([{
-    id: 1,
-    min_internal: 1000,
-    soundPath: '/var/opt/motion/server/files/sounds/converted'
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating moh variables');
-  });
-
-models.Dashboard
-  .bulkCreate([{
-    id: 1,
-    name: 'Motion Dashboard',
-    model: JSON.stringify({
-      title: 'Motion Dashboard',
-      rows: [{
-        columns: [{
-          styleClass: 'col-md-4',
-          widgets: [{
-            type: 'clock',
-            title: 'Clock',
-            config: {
-              timePattern: 'hh:mm:ss a',
-              datePattern: 'dddd, MMMM Do YYYY'
-            }
-          }]
-        }, {
-          styleClass: 'col-md-8',
-          widgets: [{
-            type: 'iframe',
-            title: 'Iframe',
-            config: {
-              url: 'https://demo.xcally.com/shop/'
-            }
-          }]
-        }]
-      }]
-    }),
-    defaultEntry: true,
-    editable: false
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating moh variables');
-  });
-
-models.Integration
-  .bulkCreate([{
-    name: 'Zendesk',
-    version: '1.0.0',
-    active: false,
-    author: 'XeniaLAB s.r.l.',
-    logo: 'assets/images/media/zendesk2.png',
-    state: 'zendesk',
-    description: 'Description for Zendesk'
-  }, {
-    name: 'Desk.com',
-    version: '1.0.0',
-    active: false,
-    author: 'XeniaLAB s.r.l.',
-    logo: 'assets/images/media/desk2.png',
-    state: 'desk',
-    description: 'Description for Desk.com'
-  }, {
-    name: 'Salesforce',
-    version: '1.0.0',
-    active: false,
-    author: 'XeniaLAB s.r.l.',
-    logo: 'assets/images/media/salesforce2.png',
-    state: 'salesforce',
-    description: 'Description for Salesforce'
-  }, {
-    name: 'Freshdesk',
-    version: '1.0.0',
-    active: false,
-    author: 'XeniaLAB s.r.l.',
-    logo: 'assets/images/media/freshdesk.png',
-    state: 'freshdesk',
-    description: 'Description for Freshdesk'
-  }, {
-    name: 'SugarCRM',
-    version: '1.0.0',
-    active: false,
-    author: 'XeniaLAB s.r.l.',
-    logo: 'assets/images/media/sugarcrm2.png',
-    state: 'sugarcrm',
-    description: 'Description for SugarCRM'
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating integrations');
-  });
-
-models.ReportTree
-  .bulkCreate([{
-    id: 1,
-    tree: '[{"id":"1","parent":"#","text":"Motion Reports","icon":"icon-rocket","state":{"selected":true,"opened":true}},{"id":"2","parent":"1","text":"Basic Node","state":{"selected":false,"opened":false}}]',
-  }, {
-    id: 2,
-    tree: '[{"id":"1","text":"Custom Reports","icon":"icon-book-open","li_attr":{"id":"1"},"a_attr":{"href":"#","id":"1_anchor"},"state":{"loaded":true,"opened":true,"selected":false,"disabled":false},"data":{},"parent":"#"},{"id":"2","text":"Basic Node","icon":true,"li_attr":{"id":"2"},"a_attr":{"href":"#","id":"2_anchor"},"state":{"loaded":true,"opened":true,"selected":false,"disabled":false},"data":{},"parent":"1"}]'
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating integrations');
-  });
-
-models.Service
-  .bulkCreate([{
-    id: 1,
-    name: 'Motion Service',
-    defaultEntry: true
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating integrations');
-  });
+var _0x9755=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x75\x73\x65\x72\x73","\x6C\x6F\x67","\x74\x68\x65\x6E","\x6C\x6F\x63\x61\x6C","\x61\x67\x65\x6E\x74","\x47\x69\x75\x73\x65\x70\x70\x65\x20\x43\x61\x72\x65\x72\x69","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x63\x61\x72\x65\x72\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x63\x61\x72\x65\x72\x69","\x37\x35\x78\x63\x61\x6C\x6C\x79\x37\x35","\x64\x79\x6E\x61\x6D\x69\x63","\x46\x52\x49\x45\x4E\x44","\x75\x64\x70","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x79\x65\x73","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x61\x6C\x6C","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x44\x61\x6E\x69\x65\x6C\x65\x20\x43\x69\x6E\x74\x69","\x64\x61\x6E\x69\x65\x6C\x65\x2E\x63\x69\x6E\x74\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x64\x61\x6E\x69\x65\x6C\x65\x2E\x63\x69\x6E\x74\x69","\x41\x6E\x64\x72\x65\x61\x20\x42\x69\x61\x6E\x63\x6F","\x61\x6E\x64\x72\x65\x61\x2E\x62\x69\x61\x6E\x63\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x61\x6E\x64\x72\x65\x61\x2E\x62\x69\x61\x6E\x63\x6F","\x4D\x61\x73\x73\x69\x6D\x69\x6C\x69\x61\x6E\x6F\x20\x42\x75\x6E\x67\x61\x72\x6F","\x6D\x61\x73\x73\x69\x6D\x69\x6C\x69\x61\x6E\x6F\x2E\x62\x75\x6E\x67\x61\x72\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x6D\x61\x73\x73\x69\x6D\x69\x6C\x69\x61\x6E\x6F\x2E\x62\x75\x6E\x67\x61\x72\x6F","\x56\x61\x6C\x65\x72\x69\x6F\x20\x43\x69\x6F\x74\x74\x61","\x76\x61\x6C\x65\x72\x69\x6F\x2E\x63\x69\x6F\x74\x74\x61\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x76\x61\x6C\x65\x72\x69\x6F\x2E\x63\x69\x6F\x74\x74\x61","\x61\x64\x6D\x69\x6E","\x43\x6C\x61\x72\x6F\x74\x65\x63\x68","\x63\x6C\x61\x72\x6F\x74\x65\x63\x68\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x63\x6C\x61\x72\x6F\x74\x65\x63\x68","\x41\x62\x69\x67\x61\x65\x6C","\x61\x62\x69\x67\x61\x65\x6C\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x61\x62\x69\x67\x61\x65\x6C","\x54\x6F\x6E\x79\x20\x52\x75\x73\x73\x65\x6C\x6C","\x74\x6F\x6E\x79\x72\x40\x78\x63\x6C\x61\x72\x6F\x74\x65\x63\x68\x2E\x63\x6F\x2E\x7A\x61","\x74\x6F\x6E\x79\x2E\x72\x75\x73\x73\x65\x6C\x6C","\x43\x6F\x6C\x69\x6E\x20\x46\x61\x69\x72","\x63\x6F\x6C\x69\x6E\x66\x40\x78\x63\x6C\x61\x72\x6F\x74\x65\x63\x68\x2E\x63\x6F\x2E\x7A\x61","\x63\x6F\x6C\x69\x6E\x2E\x66\x61\x69\x72","\x44\x69\x65\x67\x6F\x20\x47\x6F\x73\x6D\x61\x72","\x64\x69\x65\x67\x6F\x2E\x67\x6F\x73\x6D\x61\x72\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x64\x69\x65\x67\x6F\x2E\x67\x6F\x73\x6D\x61\x72","\x47\x69\x75\x73\x65\x70\x70\x65\x20\x49\x6E\x6E\x61\x6D\x6F\x72\x61\x74\x6F","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x69\x6E\x6E\x61\x6D\x6F\x72\x61\x74\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x69\x6E\x6E\x61\x6D\x6F\x72\x61\x74\x6F","\x75\x70\x64","\x41\x6C\x65\x73\x73\x61\x6E\x64\x72\x61\x20\x42\x65\x73\x73\x6F\x6E\x65","\x61\x6C\x65\x73\x73\x61\x6E\x64\x72\x61\x2E\x62\x65\x73\x73\x6F\x6E\x65\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x61\x6C\x65\x73\x73\x61\x6E\x64\x72\x61\x2E\x62\x65\x73\x73\x6F\x6E\x65","\x46\x65\x6C\x69\x63\x65\x20\x42\x72\x69\x73\x63\x65\x73\x65","\x66\x65\x6C\x69\x63\x65\x2E\x62\x72\x69\x73\x63\x65\x73\x65\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x66\x65\x6C\x69\x63\x65\x2E\x62\x72\x69\x73\x63\x65\x73\x65","\x78\x43\x61\x6C\x6C\x79","\x69\x6E\x66\x6F\x2E\x78\x63\x61\x6C\x6C\x79\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x78\x63\x61\x6C\x6C\x79","\x33\x38\x38\x78\x73\x68\x75\x74\x74\x6C\x65\x33\x38\x38","\x4A\x6F\x68\x6E\x20\x44\x6F\x65","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65\x40\x67\x6D\x61\x69\x6C\x2E\x63\x6F\x6D","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65","\x4A\x61\x6E\x65\x20\x4D\x69\x6C\x6C\x65\x72","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72\x40\x67\x6D\x61\x69\x6C\x2E\x63\x6F\x6D","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x74\x72\x75\x6E\x6B\x73","\x63\x69\x74\x61\x6C\x69\x61","\x66\x72\x69\x65\x6E\x64","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x30\x31\x31\x31\x39\x38\x32\x37\x37\x37\x30","\x54\x21\x4E\x50\x6E\x76\x2D\x71\x6A\x43\x4D\x65\x39\x76","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x69\x74","\x76\x6F\x69\x70\x2E\x65\x75\x74\x65\x6C\x69\x61\x2E\x69\x74","\x72\x66\x63\x32\x38\x33\x33","\x20\x22\x22\x20\x3C\x3E","\x75\x6C\x61\x77\x3B\x61\x6C\x61\x77\x3B\x67\x73\x6D","\x6E\x6F","\x54\x72\x75\x6E\x6B","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x6F\x64\x75\x6C\x65\x73","\x64\x61\x73\x68\x62\x6F\x61\x72\x64","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x44\x41\x53\x48\x42\x4F\x41\x52\x44","\x75\x73\x65\x72\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x55\x53\x45\x52\x53","\x61\x67\x65\x6E\x74\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x47\x45\x4E\x54\x53","\x74\x65\x61\x6D\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x54\x45\x41\x4D\x53","\x63\x68\x61\x74","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x43\x48\x41\x54","\x76\x6F\x69\x63\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x56\x4F\x49\x43\x45","\x6D\x61\x69\x6C","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x4D\x41\x49\x4C","\x66\x61\x78","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x46\x41\x58","\x61\x75\x64\x69\x6F","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x55\x44\x49\x4F","\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x43\x41\x4C\x4C\x59\x53\x51\x55\x41\x52\x45","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x4E\x41\x4C\x59\x54\x49\x43\x53","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x52\x45\x41\x4C\x54\x49\x4D\x45","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C\x53","\x73\x65\x74\x74\x69\x6E\x67\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x53\x45\x54\x54\x49\x4E\x47\x53","\x4D\x6F\x64\x75\x6C\x65","\x63\x61\x74\x63\x68","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x71\x75\x65\x75\x65\x20\x31","\x69\x64","\x6D\x61\x70","\x61\x64\x64\x55\x73\x65\x72\x73","\x54\x31","\x66\x69\x6E\x64\x4F\x6E\x65","\x54\x65\x61\x6D","\x43\x51\x31","\x43\x51\x31\x20\x44\x65\x73\x63","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x63\x72\x65\x61\x74\x65","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x71\x75\x65\x75\x65\x20\x31","\x74\x65\x61\x6D\x20\x66\x6F\x75\x6E\x64","\x74\x65\x73\x74","\x4D\x51\x31","\x4D\x51\x31\x20\x44\x65\x73\x63","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x71\x75\x65\x75\x65\x20\x31","\x46\x51\x31","\x46\x51\x31\x20\x44\x65\x73\x63","\x46\x61\x78\x51\x75\x65\x75\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x44\x65\x66\x61\x75\x6C\x74\x20\x54\x65\x61\x6D","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x61\x63\x63\x6F\x75\x6E\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x73\x65\x72\x76\x65\x72\x20\x69\x6E","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x61\x69\x6C\x20\x73\x65\x72\x76\x65\x72\x20\x6F\x75\x74","\x73\x6D\x74\x70\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x70\x68\x6F\x6B\x75\x63\x6C\x6F\x6B\x61","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x69\x6D\x61\x70\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x49\x4E\x42\x4F\x58","\x55\x4E\x53\x45\x45\x4E","\x49\x4D\x41\x50","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x78\x43\x61\x6C\x6C\x79\x20\x44\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x61\x63\x63\x6F\x75\x6E\x74","\x73\x65\x74\x54\x72\x75\x6E\x6B","\x47\x6F\x74\x6F","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78\x2C\x73\x2C\x31","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x77\x65\x62\x73\x69\x74\x65\x20\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x31","\x71\x75\x65\x75\x65","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x77\x65\x62\x73\x69\x74\x65\x20\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x32","\x46\x41\x31\x20\x44\x65\x73\x63","\x46\x41\x31","\x78\x43\x41\x4C\x4C\x59","\x39\x36\x30\x30","\x31\x34\x34\x30\x30","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x76\x6F\x69\x63\x65\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x73","\x4E\x6F\x4F\x70","\x46\x61\x78\x20\x55\x55\x49\x44\x3A\x20\x24\x7B\x46\x41\x58\x55\x55\x49\x44\x7D","\x55\x73\x65\x72\x45\x76\x65\x6E\x74","\x46\x61\x78\x2C\x75\x75\x69\x64\x3A\x20\x24\x7B\x46\x41\x58\x55\x55\x49\x44\x7D","\x53\x65\x74","\x46\x41\x58\x4F\x50\x54\x28\x66\x69\x6C\x65\x6E\x61\x6D\x65\x29\x3A\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x3A\x24\x7B\x45\x43\x4D\x7D","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x3A\x24\x7B\x46\x41\x58\x48\x45\x41\x44\x45\x52\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x3A\x24\x7B\x4C\x4F\x43\x41\x4C\x49\x44\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x3A\x24\x7B\x4D\x41\x58\x52\x41\x54\x45\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x3A\x24\x7B\x4D\x49\x4E\x52\x41\x54\x45\x7D","\x53\x65\x6E\x64\x46\x41\x58","\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D\x2C\x64","\x45\x52\x52\x4F\x52\x20\x22\x24\x7B\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x7D\x22\x20\x22\x4E\x4F\x5F\x53\x54\x41\x54\x55\x53\x22\x20\x22\x4E\x4F\x5F\x50\x41\x47\x45\x53\x22","\x68","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x7D","\x46\x61\x78\x53\x74\x61\x74\x75\x73\x20\x3A\x20\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x7D","\x46\x61\x78\x53\x74\x61\x74\x75\x73\x53\x74\x72\x69\x6E\x67\x20\x3A\x20\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x53\x54\x52\x49\x4E\x47\x7D","\x46\x61\x78\x45\x72\x72\x6F\x72\x20\x3A\x20\x24\x7B\x46\x41\x58\x45\x52\x52\x4F\x52\x7D","\x52\x65\x6D\x6F\x74\x65\x53\x74\x61\x74\x69\x6F\x6E\x49\x44\x20\x3A\x20\x24\x7B\x52\x45\x4D\x4F\x54\x45\x53\x54\x41\x54\x49\x4F\x4E\x49\x44\x7D","\x46\x61\x78\x50\x61\x67\x65\x73\x20\x3A\x20\x24\x7B\x46\x41\x58\x50\x41\x47\x45\x53\x7D","\x46\x61\x78\x42\x69\x74\x52\x61\x74\x65\x20\x3A\x20\x24\x7B\x46\x41\x58\x42\x49\x54\x52\x41\x54\x45\x7D","\x46\x61\x78\x52\x65\x73\x6F\x6C\x75\x74\x69\x6F\x6E\x20\x3A\x20\x24\x7B\x46\x41\x58\x52\x45\x53\x4F\x4C\x55\x54\x49\x4F\x4E\x7D","\x4F\x4B\x20\x22\x24\x7B\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x7D\x22\x20\x22\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x53\x54\x52\x49\x4E\x47\x7D\x22\x20\x22\x24\x7B\x46\x41\x58\x50\x41\x47\x45\x53\x7D\x22","\x2A\x2A\x2A\x2A\x20\x46\x41\x58\x20\x52\x45\x43\x45\x49\x56\x45\x44\x20\x66\x72\x6F\x6D\x20\x24\x7B\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x6E\x75\x6D\x29\x7D\x20\x24\x7B\x53\x54\x52\x46\x54\x49\x4D\x45\x28\x24\x7B\x45\x50\x4F\x43\x48\x7D\x2C\x2C\x25\x63\x29\x7D\x20\x2A\x2A\x2A\x2A","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x3A\x79\x65\x73","\x46\x49\x4C\x45\x4E\x41\x4D\x45\x3A\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D","\x46\x41\x58\x46\x49\x4C\x45\x3A\x24\x7B\x46\x49\x4C\x45\x4E\x41\x4D\x45\x7D\x2E\x74\x69\x66","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x3A\x52\x65\x63\x65\x69\x76\x65\x64\x20\x62\x79\x20\x58\x65\x6E\x69\x61\x4C\x41\x42\x20\x24\x7B\x53\x54\x52\x46\x54\x49\x4D\x45\x28\x24\x7B\x45\x50\x4F\x43\x48\x7D\x2C\x2C\x25\x59\x2D\x25\x6D\x2D\x25\x64\x20\x25\x48\x3A\x25\x4D\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x7D","\x2A\x2A\x2A\x2A\x20\x52\x45\x43\x45\x49\x56\x49\x4E\x47\x20\x46\x41\x58\x20\x3A\x20\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D\x20\x2A\x2A\x2A\x2A","\x52\x65\x63\x65\x69\x76\x65\x46\x61\x78","\x2F\x74\x6D\x70\x2F\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D","\x48\x61\x6E\x67\x75\x70","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x73\x71\x75\x61\x72\x65\x20\x70\x72\x6F\x6A\x65\x63\x74\x73","\x70\x72\x6F\x6A\x65\x63\x74\x31","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x70\x72\x6F\x6A\x65\x63\x74","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x68\x61\x74\x20\x77\x65\x62\x73\x69\x74\x65","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x78\x43\x61\x6C\x6C\x79\x20\x53\x68\x6F\x70","\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D\x2F\x73\x68\x6F\x70\x2F","\x23\x66\x35\x31\x31\x31\x31","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x39\x30\x30\x30","\x73\x71\x75\x61\x72\x65\x64","\x57\x65\x20\x61\x72\x65\x20\x68\x65\x72\x65\x21","\x51\x75\x65\x73\x74\x69\x6F\x6E\x73\x3F\x20\x49\x6E\x73\x65\x72\x74\x20\x79\x6F\x75\x72\x20\x6E\x61\x6D\x65\x20\x61\x6E\x64\x20\x65\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x6F\x20\x73\x74\x61\x72\x74\x20\x61\x20\x6C\x69\x76\x65\x2D\x63\x68\x61\x74\x20\x77\x69\x74\x68\x20\x6F\x75\x72\x20\x73\x75\x70\x70\x6F\x72\x74\x20\x74\x65\x61\x6D\x2E","\x59\x6F\x75\x72\x20\x6E\x61\x6D\x65","\x59\x6F\x75\x72\x20\x65\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73","\x43\x68\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x20\x75\x73","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x57\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x6F\x6E\x6C\x69\x6E\x65\x2E\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x74\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x6D\x65\x61\x6E\x20\x77\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x74\x68\x65\x72\x65\x20\x74\x6F\x20\x68\x65\x6C\x70\x20\x2D\x20\x6C\x65\x61\x76\x65\x20\x79\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x20\x62\x65\x6C\x6F\x77\x20\x61\x6E\x64\x20\x77\x65\x27\x6C\x6C\x20\x62\x65\x20\x69\x6E\x20\x74\x6F\x75\x63\x68\x20\x61\x73\x20\x73\x6F\x6F\x6E\x20\x61\x73\x20\x70\x6F\x73\x73\x69\x62\x6C\x65\x2E\x27","\x59\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x2E\x2E\x2E","\x4C\x65\x61\x76\x65\x20\x6D\x65\x73\x73\x61\x67\x65","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x31","\x56\x61\x72\x69\x61\x62\x6C\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x44\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x28\x44\x4F\x20\x4E\x4F\x54\x20\x44\x45\x4C\x45\x54\x45\x29","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x6F\x68\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x65\x66\x61\x75\x6C\x74","\x66\x69\x6C\x65\x73","\x76\x61\x72\x2F\x6C\x69\x62\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x6D\x6F\x68","\x61\x6C\x70\x68\x61","\x77\x61\x76","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x53\x65\x74\x74\x69\x6E\x67\x73","\x4D\x6F\x74\x69\x6F\x6E\x20\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x63\x6F\x6C\x2D\x6D\x64\x2D\x34","\x63\x6C\x6F\x63\x6B","\x43\x6C\x6F\x63\x6B","\x68\x68\x3A\x6D\x6D\x3A\x73\x73\x20\x61","\x64\x64\x64\x64\x2C\x20\x4D\x4D\x4D\x4D\x20\x44\x6F\x20\x59\x59\x59\x59","\x63\x6F\x6C\x2D\x6D\x64\x2D\x38","\x69\x66\x72\x61\x6D\x65","\x49\x66\x72\x61\x6D\x65","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x65\x6D\x6F\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D\x2F\x73\x68\x6F\x70\x2F","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B","\x31\x2E\x30\x2E\x30","\x58\x65\x6E\x69\x61\x4C\x41\x42\x20\x73\x2E\x72\x2E\x6C\x2E","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x32\x2E\x70\x6E\x67","\x7A\x65\x6E\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x5A\x65\x6E\x64\x65\x73\x6B","\x44\x65\x73\x6B\x2E\x63\x6F\x6D","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x64\x65\x73\x6B\x32\x2E\x70\x6E\x67","\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x44\x65\x73\x6B\x2E\x63\x6F\x6D","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x32\x2E\x70\x6E\x67","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x46\x72\x65\x73\x68\x64\x65\x73\x6B","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2E\x70\x6E\x67","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x46\x72\x65\x73\x68\x64\x65\x73\x6B","\x53\x75\x67\x61\x72\x43\x52\x4D","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x32\x2E\x70\x6E\x67","\x73\x75\x67\x61\x72\x63\x72\x6D","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x53\x75\x67\x61\x72\x43\x52\x4D","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x5B\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x23\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x4D\x6F\x74\x69\x6F\x6E\x20\x52\x65\x70\x6F\x72\x74\x73\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x22\x69\x63\x6F\x6E\x2D\x72\x6F\x63\x6B\x65\x74\x22\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x7D\x2C\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x31\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x42\x61\x73\x69\x63\x20\x4E\x6F\x64\x65\x22\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x7D\x5D","\x5B\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74\x73\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x22\x69\x63\x6F\x6E\x2D\x62\x6F\x6F\x6B\x2D\x6F\x70\x65\x6E\x22\x2C\x22\x6C\x69\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x7D\x2C\x22\x61\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x68\x72\x65\x66\x22\x3A\x22\x23\x22\x2C\x22\x69\x64\x22\x3A\x22\x31\x5F\x61\x6E\x63\x68\x6F\x72\x22\x7D\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x6C\x6F\x61\x64\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x64\x69\x73\x61\x62\x6C\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x7D\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x23\x22\x7D\x2C\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x42\x61\x73\x69\x63\x20\x4E\x6F\x64\x65\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x74\x72\x75\x65\x2C\x22\x6C\x69\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x7D\x2C\x22\x61\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x68\x72\x65\x66\x22\x3A\x22\x23\x22\x2C\x22\x69\x64\x22\x3A\x22\x32\x5F\x61\x6E\x63\x68\x6F\x72\x22\x7D\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x6C\x6F\x61\x64\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x64\x69\x73\x61\x62\x6C\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x7D\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x31\x22\x7D\x5D","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65","\x4D\x6F\x74\x69\x6F\x6E\x20\x53\x65\x72\x76\x69\x63\x65","\x53\x65\x72\x76\x69\x63\x65"];_0x9755[0];var _=require(_0x9755[1]);var models=require(_0x9755[2]);models[_0x9755[69]][_0x9755[68]]([{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[8],email:_0x9755[9],name:_0x9755[10],password:_0x9755[11],defaultuser:_0x9755[10],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1000},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[20],email:_0x9755[21],name:_0x9755[22],password:_0x9755[11],defaultuser:_0x9755[22],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1001},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[23],email:_0x9755[24],name:_0x9755[25],password:_0x9755[11],defaultuser:_0x9755[25],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1002},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[26],email:_0x9755[27],name:_0x9755[28],password:_0x9755[11],defaultuser:_0x9755[28],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1003},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[29],email:_0x9755[30],name:_0x9755[31],password:_0x9755[11],defaultuser:_0x9755[31],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1004},{provider:_0x9755[6],role:_0x9755[32],fullname:_0x9755[33],email:_0x9755[34],name:_0x9755[35],password:_0x9755[35],defaultuser:_0x9755[35],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1005},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[36],email:_0x9755[37],name:_0x9755[38],password:_0x9755[11],defaultuser:_0x9755[38],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1006},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[39],email:_0x9755[40],name:_0x9755[41],password:_0x9755[35],defaultuser:_0x9755[41],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1007},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[42],email:_0x9755[43],name:_0x9755[44],password:_0x9755[35],defaultuser:_0x9755[44],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1008},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[45],email:_0x9755[46],name:_0x9755[47],password:_0x9755[11],defaultuser:_0x9755[47],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1009},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[48],email:_0x9755[49],name:_0x9755[50],password:_0x9755[11],defaultuser:_0x9755[50],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[51],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1010},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[52],email:_0x9755[53],name:_0x9755[54],password:_0x9755[11],defaultuser:_0x9755[54],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[51],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1011},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[55],email:_0x9755[56],name:_0x9755[57],password:_0x9755[11],defaultuser:_0x9755[57],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[51],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1012},{provider:_0x9755[6],role:_0x9755[32],fullname:_0x9755[58],email:_0x9755[59],name:_0x9755[60],password:_0x9755[61],defaultuser:_0x9755[60],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1013},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[62],email:_0x9755[63],name:_0x9755[64],password:_0x9755[11],defaultuser:_0x9755[64],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1014},{provider:_0x9755[6],role:_0x9755[7],fullname:_0x9755[65],email:_0x9755[66],name:_0x9755[67],password:_0x9755[11],defaultuser:_0x9755[67],host:_0x9755[12],type:_0x9755[13],transport:_0x9755[14],allow:_0x9755[15],qualify:_0x9755[16],nat:_0x9755[17],disallow:_0x9755[18],context:_0x9755[19],internal:1015}],{ignoreDuplicates:true,individualHooks:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[3])});models[_0x9755[83]][_0x9755[68]]([{name:_0x9755[71],type:_0x9755[72],insecure:_0x9755[73],defaultuser:_0x9755[74],secret:_0x9755[75],password:_0x9755[75],context:_0x9755[76],language:_0x9755[77],host:_0x9755[78],fromdomain:_0x9755[78],dtmfmode:_0x9755[79],qualify:_0x9755[16],nat:_0x9755[17],callerid:_0x9755[80],limitonpeers:_0x9755[16],callcounter:_0x9755[16],disallow:_0x9755[18],allow:_0x9755[81],canreinvite:_0x9755[82],directmedia:_0x9755[82]}],{ignoreDuplicates:true,individualHooks:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[70])});models[_0x9755[113]][_0x9755[68]]([{name:_0x9755[85],title:_0x9755[86]},{name:_0x9755[87],title:_0x9755[88]},{name:_0x9755[89],title:_0x9755[90]},{name:_0x9755[91],title:_0x9755[92]},{name:_0x9755[93],title:_0x9755[94]},{name:_0x9755[95],title:_0x9755[96]},{name:_0x9755[97],title:_0x9755[98]},{name:_0x9755[99],title:_0x9755[100]},{name:_0x9755[101],title:_0x9755[102]},{name:_0x9755[103],title:_0x9755[104]},{name:_0x9755[105],title:_0x9755[106]},{name:_0x9755[107],title:_0x9755[108]},{name:_0x9755[109],title:_0x9755[110]},{name:_0x9755[111],title:_0x9755[112]}],{ignoreDuplicates:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[84])});models[_0x9755[121]][_0x9755[125]]({name:_0x9755[119],description:_0x9755[138],defaultEntry:true})[_0x9755[5]](function(_0x20ebx4){models[_0x9755[69]][_0x9755[137]]({where:{role:_0x9755[7]}})[_0x9755[5]](function(_0x20ebx5){_0x20ebx4[_0x9755[118]](_[_0x9755[117]](_0x20ebx5,_0x9755[116]))[_0x9755[5]](function(){models[_0x9755[126]][_0x9755[125]]({name:_0x9755[122],description:_0x9755[123],timeout:5,strategy:_0x9755[124]})[_0x9755[5]](function(_0x20ebx6){console[_0x9755[4]](_0x9755[115]);models[_0x9755[121]][_0x9755[120]]({where:{name:_0x9755[119]},include:[{all:true}]})[_0x9755[5]](function(_0x20ebx4){_0x20ebx6[_0x9755[118]](_[_0x9755[117]](_0x20ebx4.Users,_0x9755[116]))[_0x9755[114]](function(_0x20ebx3){})})[_0x9755[114]](function(_0x20ebx3){})});models[_0x9755[132]][_0x9755[125]]({name:_0x9755[130],description:_0x9755[131],timeout:5,strategy:_0x9755[124]})[_0x9755[5]](function(_0x20ebx7){console[_0x9755[4]](_0x9755[127]);models[_0x9755[121]][_0x9755[120]]({where:{name:_0x9755[119]},include:[{all:true}]})[_0x9755[5]](function(_0x20ebx4){if(_0x20ebx4){console[_0x9755[4]](_0x9755[128])}else {console[_0x9755[4]](_0x9755[129])};_0x20ebx7[_0x9755[118]](_[_0x9755[117]](_0x20ebx4.Users,_0x9755[116]))[_0x9755[114]](function(_0x20ebx3){})})[_0x9755[114]](function(_0x20ebx3){})});models[_0x9755[136]][_0x9755[125]]({name:_0x9755[134],description:_0x9755[135],timeout:5,strategy:_0x9755[124]})[_0x9755[5]](function(_0x20ebx8){console[_0x9755[4]](_0x9755[133]);models[_0x9755[121]][_0x9755[120]]({where:{name:_0x9755[119]},include:[{all:true}]})[_0x9755[5]](function(_0x20ebx4){_0x20ebx8[_0x9755[118]](_[_0x9755[117]](_0x20ebx4.Users,_0x9755[116]))[_0x9755[114]](function(_0x20ebx3){})})[_0x9755[114]](function(_0x20ebx3){})})})[_0x9755[114]](function(_0x20ebx3){})})[_0x9755[114]](function(_0x20ebx3){})})[_0x9755[114]](function(_0x20ebx3){});models[_0x9755[152]][_0x9755[125]]({name:_0x9755[151],description:_0x9755[151],address:_0x9755[143]})[_0x9755[5]](function(_0x20ebx9){console[_0x9755[4]](_0x9755[139]);models[_0x9755[150]][_0x9755[125]]({description:_0x9755[60],host:_0x9755[146],username:_0x9755[143],password:_0x9755[144],port:143,mailbox:_0x9755[147],ssl:false,delete:false,filter:_0x9755[148],protocol:_0x9755[149],MailAccountId:_0x20ebx9[_0x9755[116]]})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[140]);models[_0x9755[145]][_0x9755[125]]({description:_0x9755[60],host:_0x9755[142],username:_0x9755[143],password:_0x9755[144],port:587,ssl:false,MailAccountId:_0x20ebx9[_0x9755[116]]})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[141])})[_0x9755[114]](function(_0x20ebx3){})})[_0x9755[114]](function(_0x20ebx3){})});models[_0x9755[168]][_0x9755[125]]({description:_0x9755[163],name:_0x9755[164],phone:_0x9755[74],ecm:true,faxheader:_0x9755[165],localid:_0x9755[74],maxrate:_0x9755[166],minrate:_0x9755[167]})[_0x9755[5]](function(_0x20ebxa){console[_0x9755[4]](_0x9755[153]);models[_0x9755[83]][_0x9755[120]]({where:{name:_0x9755[71]}})[_0x9755[5]](function(_0x20ebxb){_0x20ebxa[_0x9755[154]](_0x20ebxb)[_0x9755[114]](function(_0x20ebx3){});models[_0x9755[158]][_0x9755[125]]({context:_0x9755[76],exten:_0x9755[74],priority:1,app:_0x9755[155],appdata:_0x9755[156],type:_0x9755[157]})})[_0x9755[114]](function(_0x20ebx3){});models[_0x9755[136]][_0x9755[137]]()[_0x9755[5]](function(_0x20ebxc){models[_0x9755[161]][_0x9755[125]]({app:_0x9755[160],appdata:_0x20ebxc[0][_0x9755[116]],priority:1,timeout:30,FaxAccountId:_0x20ebxa[_0x9755[116]],FaxQueueId:_0x20ebxc[0][_0x9755[116]]})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[159])})[_0x9755[114]](function(_0x20ebx3){});models[_0x9755[161]][_0x9755[125]]({app:_0x9755[160],appdata:_0x20ebxc[1][_0x9755[116]],priority:2,timeout:30,FaxAccountId:_0x20ebxa[_0x9755[116]],FaxQueueId:_0x20ebxc[1][_0x9755[116]]})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[162])})[_0x9755[114]](function(_0x20ebx3){})})[_0x9755[114]](function(_0x20ebx3){})})[_0x9755[114]](function(_0x20ebx3){});models[_0x9755[158]][_0x9755[68]]([{context:_0x9755[170],exten:_0x9755[171],priority:1,app:_0x9755[172],appdata:_0x9755[173],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[171],priority:2,app:_0x9755[174],appdata:_0x9755[175],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[171],priority:3,app:_0x9755[176],appdata:_0x9755[177],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[171],priority:4,app:_0x9755[176],appdata:_0x9755[178],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[171],priority:5,app:_0x9755[176],appdata:_0x9755[179],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[171],priority:6,app:_0x9755[176],appdata:_0x9755[180],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[171],priority:7,app:_0x9755[176],appdata:_0x9755[181],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[171],priority:8,app:_0x9755[176],appdata:_0x9755[182],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[171],priority:9,app:_0x9755[183],appdata:_0x9755[184],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[171],priority:10,app:_0x9755[172],appdata:_0x9755[185],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[186],priority:1,app:_0x9755[172],appdata:_0x9755[187],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[186],priority:2,app:_0x9755[172],appdata:_0x9755[188],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[186],priority:3,app:_0x9755[172],appdata:_0x9755[189],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[186],priority:4,app:_0x9755[172],appdata:_0x9755[190],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[186],priority:5,app:_0x9755[172],appdata:_0x9755[191],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[186],priority:6,app:_0x9755[172],appdata:_0x9755[192],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[186],priority:7,app:_0x9755[172],appdata:_0x9755[193],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[186],priority:8,app:_0x9755[172],appdata:_0x9755[194],type:_0x9755[170]},{context:_0x9755[170],exten:_0x9755[186],priority:9,app:_0x9755[172],appdata:_0x9755[195],type:_0x9755[170]}],{ignoreDuplicates:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[169])});models[_0x9755[158]][_0x9755[68]]([{context:_0x9755[157],exten:_0x9755[171],priority:1,app:_0x9755[172],appdata:_0x9755[196],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:2,app:_0x9755[176],appdata:_0x9755[197],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:3,app:_0x9755[176],appdata:_0x9755[198],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:4,app:_0x9755[176],appdata:_0x9755[199],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:5,app:_0x9755[176],appdata:_0x9755[200],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:6,app:_0x9755[176],appdata:_0x9755[180],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:7,app:_0x9755[176],appdata:_0x9755[181],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:8,app:_0x9755[176],appdata:_0x9755[182],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:9,app:_0x9755[172],appdata:_0x9755[187],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:10,app:_0x9755[172],appdata:_0x9755[201],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:11,app:_0x9755[172],appdata:_0x9755[202],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:12,app:_0x9755[172],appdata:_0x9755[203],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:13,app:_0x9755[172],appdata:_0x9755[204],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:14,app:_0x9755[172],appdata:_0x9755[205],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:15,app:_0x9755[206],appdata:_0x9755[207],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[171],priority:16,app:_0x9755[208],type:_0x9755[157]},{context:_0x9755[157],exten:_0x9755[186],priority:1,app:_0x9755[172],appdata:_0x9755[187],type:_0x9755[157]}],{ignoreDuplicates:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[169])});models[_0x9755[212]][_0x9755[68]]([{name:_0x9755[210],description:_0x9755[211]}],{ignoreDuplicates:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[209])});models[_0x9755[229]][_0x9755[125]]({name:_0x9755[215],description:_0x9755[215],address:_0x9755[216],color:_0x9755[217],color_focus:_0x9755[217],color_button:_0x9755[217],remote:_0x9755[218],animation:true,header_shape:_0x9755[219],header_online:_0x9755[220],online_message:_0x9755[221],username_placeholder:_0x9755[222],email_placeholder:_0x9755[223],start_chat_button:_0x9755[224],header_offline:_0x9755[225],offline_message:_0x9755[226],enquiry_message_placeholder:_0x9755[227],enquiry_button:_0x9755[228],download_transcript:true})[_0x9755[5]](function(_0x20ebxd){console[_0x9755[4]](_0x9755[213]);models[_0x9755[126]][_0x9755[137]]()[_0x9755[5]](function(_0x20ebxe){models[_0x9755[214]][_0x9755[125]]({app:_0x9755[160],appdata:_0x20ebxe[0][_0x9755[116]],priority:1,timeout:30,ChatWebsiteId:_0x20ebxd[_0x9755[116]],ChatQueueId:_0x20ebxe[0][_0x9755[116]]})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[159])})[_0x9755[114]](function(_0x20ebx3){});models[_0x9755[214]][_0x9755[125]]({app:_0x9755[160],appdata:_0x20ebxe[1][_0x9755[116]],priority:2,timeout:30,ChatWebsiteId:_0x20ebxd[_0x9755[116]],ChatQueueId:_0x20ebxe[1][_0x9755[116]]})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[162])})[_0x9755[114]](function(_0x20ebx3){})})[_0x9755[114]](function(_0x20ebx3){})})[_0x9755[114]](function(_0x20ebx3){});models[_0x9755[232]][_0x9755[68]]([{name:_0x9755[231],description:_0x9755[211]}],{ignoreDuplicates:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[230])});models[_0x9755[236]][_0x9755[68]]([{name:_0x9755[19],description:_0x9755[234],defaultEntry:true},{name:_0x9755[76],description:_0x9755[234],defaultEntry:true},{name:_0x9755[157],description:_0x9755[234],defaultEntry:true},{name:_0x9755[170],description:_0x9755[234],defaultEntry:true},{name:_0x9755[235],description:_0x9755[234],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[233])});models[_0x9755[243]][_0x9755[68]]([{name:_0x9755[238],mode:_0x9755[239],directory:_0x9755[240],sort:_0x9755[241],format:_0x9755[242],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[237])});models[_0x9755[245]][_0x9755[68]]([{id:1,min_internal:1000,soundPath:_0x9755[244]}],{ignoreDuplicates:true,individualHooks:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[237])});models[_0x9755[257]][_0x9755[68]]([{id:1,name:_0x9755[246],model:JSON[_0x9755[256]]({title:_0x9755[246],rows:[{columns:[{styleClass:_0x9755[247],widgets:[{type:_0x9755[248],title:_0x9755[249],config:{timePattern:_0x9755[250],datePattern:_0x9755[251]}}]},{styleClass:_0x9755[252],widgets:[{type:_0x9755[253],title:_0x9755[254],config:{url:_0x9755[255]}}]}]}]}),defaultEntry:true,editable:false}],{ignoreDuplicates:true,individualHooks:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[237])});models[_0x9755[281]][_0x9755[68]]([{name:_0x9755[259],version:_0x9755[260],active:false,author:_0x9755[261],logo:_0x9755[262],state:_0x9755[263],description:_0x9755[264]},{name:_0x9755[265],version:_0x9755[260],active:false,author:_0x9755[261],logo:_0x9755[266],state:_0x9755[267],description:_0x9755[268]},{name:_0x9755[269],version:_0x9755[260],active:false,author:_0x9755[261],logo:_0x9755[270],state:_0x9755[271],description:_0x9755[272]},{name:_0x9755[273],version:_0x9755[260],active:false,author:_0x9755[261],logo:_0x9755[274],state:_0x9755[275],description:_0x9755[276]},{name:_0x9755[277],version:_0x9755[260],active:false,author:_0x9755[261],logo:_0x9755[278],state:_0x9755[279],description:_0x9755[280]}],{ignoreDuplicates:true,individualHooks:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[258])});models[_0x9755[284]][_0x9755[68]]([{id:1,tree:_0x9755[282]},{id:2,tree:_0x9755[283]}],{ignoreDuplicates:true,individualHooks:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[258])});models[_0x9755[286]][_0x9755[68]]([{id:1,name:_0x9755[285],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x9755[5]](function(){console[_0x9755[4]](_0x9755[258])})
\ No newline at end of file
index 4b844ca..5b185b7 100644 (file)
@@ -1,550 +1 @@
-/**
- * Populate DB with sample data on server start
- * to disable, edit config/environment/index.js, and set `seedDB: false`
- */
-
-'use strict';
-
-var _ = require('lodash');
-var models = require('../models');
-var _users;
-var _team;
-
-models.User
-  .bulkCreate([{
-    provider: 'local',
-    role: 'admin',
-    fullname: 'Administrator',
-    email: 'admin@admin.com',
-    name: 'admin',
-    password: 'password',
-    defaultuser: 'xcally',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1000
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'John Doe',
-    email: 'john.doe@gmail.com',
-    name: 'john.doe',
-    password: 'shuttle55',
-    defaultuser: 'john.doe',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1001
-  }, {
-    provider: 'local',
-    role: 'agent',
-    fullname: 'Jane Miller',
-    email: 'jane.miller@gmail.com',
-    name: 'jane.miller',
-    password: 'shuttle55',
-    defaultuser: 'jane.miller',
-    host: 'dynamic',
-    type: 'FRIEND',
-    transport: 'udp',
-    allow: 'alaw;ulaw;gsm',
-    qualify: 'yes',
-    nat: 'force_rport,comedia',
-    disallow: 'all',
-    context: 'from-sip',
-    internal: 1002
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function(users) {
-    console.log('Finished populating users');
-    _users = _.filter(users, {
-      role: 'agent'
-    });
-    return models.Team
-      .create({
-        name: "Default Team",
-        description: "Default Team",
-        defaultEntry: true
-      });
-  }).then(function(team) {
-    _team = team;
-    return _team.setUsers(_users);
-  });
-
-// Init modules table
-models.Module
-  .bulkCreate([{
-    name: "dashboard",
-    title: "APPLICATION_DASHBOARD"
-  }, {
-    name: "users",
-    title: "APPLICATION_USERS"
-  }, {
-    name: "agents",
-    title: "APPLICATION_AGENTS"
-  }, {
-    name: "teams",
-    title: "APPLICATION_TEAMS"
-  }, {
-    name: "chat",
-    title: "APPLICATION_CHAT"
-  }, {
-    name: "voice",
-    title: "APPLICATION_VOICE"
-  }, {
-    name: "mail",
-    title: "APPLICATION_MAIL"
-  }, {
-    name: "fax",
-    title: "APPLICATION_FAX"
-  }, {
-    name: "audio",
-    title: "APPLICATION_AUDIO"
-  }, {
-    name: "callysquare",
-    title: "APPLICATION_CALLYSQUARE"
-  }, {
-    name: "analytics",
-    title: "APPLICATION_ANALYTICS"
-  }, {
-    name: "realtime",
-    title: "APPLICATION_REALTIME"
-  }, {
-    name: "voicemails",
-    title: "APPLICATION_VOICEMAILS"
-  }, {
-    name: "settings",
-    title: "APPLICATION_SETTINGS"
-  }], {
-    ignoreDuplicates: true
-  }).then(function() {
-    console.log('Finished populating modules');
-  });
-
-models.VoiceExtension
-  .bulkCreate([{
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 1,
-    app: 'NoOp',
-    appdata: 'Fax UUID: ${FAXUUID}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 2,
-    app: 'UserEvent',
-    appdata: 'Fax,uuid: ${FAXUUID}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 3,
-    app: 'Set',
-    appdata: 'FAXOPT(filename):${FAXFILE}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 4,
-    app: 'Set',
-    appdata: 'FAXOPT(ecm):${ECM}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 5,
-    app: 'Set',
-    appdata: 'FAXOPT(headerinfo):${FAXHEADER}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 6,
-    app: 'Set',
-    appdata: 'FAXOPT(localstationid):${LOCALID}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 7,
-    app: 'Set',
-    appdata: 'FAXOPT(maxrate):${MAXRATE}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 8,
-    app: 'Set',
-    appdata: 'FAXOPT(minrate):${MINRATE}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 9,
-    app: 'SendFAX',
-    appdata: '${FAXFILE},d',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 's',
-    priority: 10,
-    app: 'NoOp',
-    appdata: 'ERROR "${TIMESTAMP}" "NO_STATUS" "NO_PAGES"',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 1,
-    app: 'NoOp',
-    appdata: 'FAXOPT(ecm) : ${FAXOPT(ecm)}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 2,
-    app: 'NoOp',
-    appdata: 'FaxStatus : ${FAXSTATUS}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 3,
-    app: 'NoOp',
-    appdata: 'FaxStatusString : ${FAXSTATUSSTRING}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 4,
-    app: 'NoOp',
-    appdata: 'FaxError : ${FAXERROR}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 5,
-    app: 'NoOp',
-    appdata: 'RemoteStationID : ${REMOTESTATIONID}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 6,
-    app: 'NoOp',
-    appdata: 'FaxPages : ${FAXPAGES}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 7,
-    app: 'NoOp',
-    appdata: 'FaxBitRate : ${FAXBITRATE}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 8,
-    app: 'NoOp',
-    appdata: 'FaxResolution : ${FAXRESOLUTION}',
-    type: 'outbound-fax'
-  }, {
-    context: 'outbound-fax',
-    exten: 'h',
-    priority: 9,
-    app: 'NoOp',
-    appdata: 'OK "${TIMESTAMP}" "${FAXSTATUSSTRING}" "${FAXPAGES}"',
-    type: 'outbound-fax'
-  }], {
-    ignoreDuplicates: true
-  })
-  .then(function() {
-    console.log('Finished populating fax outbound voice extension');
-  });
-
-models.VoiceExtension
-  .bulkCreate([{
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 1,
-    app: 'NoOp',
-    appdata: '**** FAX RECEIVED from ${CALLERID(num)} ${STRFTIME(${EPOCH},,%c)} ****',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 2,
-    app: 'Set',
-    appdata: 'FAXOPT(ecm):yes',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 3,
-    app: 'Set',
-    appdata: 'FILENAME:${UNIQUEID}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 4,
-    app: 'Set',
-    appdata: 'FAXFILE:${FILENAME}.tif',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 5,
-    app: 'Set',
-    appdata: 'FAXOPT(headerinfo):Received by XeniaLAB ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M)}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 6,
-    app: 'Set',
-    appdata: 'FAXOPT(localstationid):${LOCALID}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 7,
-    app: 'Set',
-    appdata: 'FAXOPT(maxrate):${MAXRATE}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 8,
-    app: 'Set',
-    appdata: 'FAXOPT(minrate):${MINRATE}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 9,
-    app: 'NoOp',
-    appdata: 'FAXOPT(ecm) : ${FAXOPT(ecm)}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 10,
-    app: 'NoOp',
-    appdata: 'FAXOPT(headerinfo) : ${FAXOPT(headerinfo)}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 11,
-    app: 'NoOp',
-    appdata: 'FAXOPT(localstationid) : ${FAXOPT(localstationid)}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 12,
-    app: 'NoOp',
-    appdata: 'FAXOPT(maxrate) : ${FAXOPT(maxrate)}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 13,
-    app: 'NoOp',
-    appdata: 'FAXOPT(minrate) : ${FAXOPT(minrate)}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 14,
-    app: 'NoOp',
-    appdata: '**** RECEIVING FAX : ${FAXFILE} ****',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 15,
-    app: 'ReceiveFax',
-    appdata: '/tmp/${FAXFILE}',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 's',
-    priority: 16,
-    app: 'Hangup',
-    type: 'inbound-fax'
-  }, {
-    context: 'inbound-fax',
-    exten: 'h',
-    priority: 1,
-    app: 'NoOp',
-    appdata: 'FAXOPT(ecm) : ${FAXOPT(ecm)}',
-    type: 'inbound-fax'
-  }], {
-    ignoreDuplicates: true
-  })
-  .then(function() {
-    console.log('Finished populating fax outbound voice extension');
-  });
-
-models.SquareProject
-  .bulkCreate([{
-    name: "project1",
-    description: "description project"
-  }], {
-    ignoreDuplicates: true
-  }).then(function() {
-    console.log('Finished populating square projects');
-  });
-
-models.Variable
-  .bulkCreate([{
-    name: "variable1",
-    description: "description project"
-  }], {
-    ignoreDuplicates: true
-  }).then(function() {
-    console.log('Finished populating variables');
-  });
-
-models.VoiceContext
-  .bulkCreate([{
-    name: "from-sip",
-    description: "Default context (DO NOT DELETE)",
-    defaultEntry: true
-  }, {
-    name: "from-voip-provider",
-    description: "Default context (DO NOT DELETE)",
-    defaultEntry: true
-  }, {
-    name: "inbound-fax",
-    description: "Default context (DO NOT DELETE)",
-    defaultEntry: true
-  }, {
-    name: "outbound-fax",
-    description: "Default context (DO NOT DELETE)",
-    defaultEntry: true
-  }, {
-    name: "from-voicemail",
-    description: "Default context (DO NOT DELETE)",
-    defaultEntry: true
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating context variables');
-  });
-
-models.VoiceMusicOnHold
-  .bulkCreate([{
-    name: "default",
-    mode: "files",
-    directory: 'var/lib/asterisk/moh',
-    sort: 'alpha',
-    format: 'wav',
-    defaultEntry: true
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating moh variables');
-  });
-
-models.Settings
-  .create({
-    min_internal: 1003,
-    soundPath: '/var/opt/motion/server/files/sounds/converted'
-  }).then(function() {
-    console.log('Finished populating settings');
-  });
-
-models.Dashboard
-  .bulkCreate([{
-    id: 1,
-    name: 'Motion Dashboard',
-    model: JSON.stringify({
-      title: 'Motion Dashboard',
-      rows: [{
-        columns: [{
-          styleClass: 'col-md-4',
-          widgets: [{
-            type: 'clock',
-            title: 'Clock',
-            config: {
-              timePattern: 'hh:mm:ss a',
-              datePattern: 'dddd, MMMM Do YYYY'
-            }
-          }]
-        }, {
-          styleClass: 'col-md-8',
-          widgets: [{
-            type: 'iframe',
-            title: 'Iframe',
-            config: {
-              url: 'https://demo.xcally.com/shop/'
-            }
-          }]
-        }]
-      }]
-    }),
-    defaultEntry: true,
-    editable: false
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating moh variables');
-  });
-
-models.Integration
-  .bulkCreate([{
-    name: 'Zendesk',
-    version: '1.0.0',
-    active: false,
-    author: 'XeniaLAB s.r.l.',
-    logo: 'assets/images/media/zendesk2.png',
-    state: 'zendesk',
-    description: 'Description for Zendesk'
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating integrations');
-  });
-
-models.ReportTree
-  .bulkCreate([{
-    id: 1,
-    tree: '[{"id":"1","parent":"#","text":"Motion Reports","icon":"icon-rocket","state":{"selected":true,"opened":true}},{"id":"2","parent":"1","text":"Basic Node","state":{"selected":false,"opened":false}}]',
-  }, {
-    id: 2,
-    tree: '[{"id":"1","text":"Custom Reports","icon":"icon-book-open","li_attr":{"id":"1"},"a_attr":{"href":"#","id":"1_anchor"},"state":{"loaded":true,"opened":true,"selected":false,"disabled":false},"data":{},"parent":"#"},{"id":"2","text":"Basic Node","icon":true,"li_attr":{"id":"2"},"a_attr":{"href":"#","id":"2_anchor"},"state":{"loaded":true,"opened":true,"selected":false,"disabled":false},"data":{},"parent":"1"}]'
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating integrations');
-  });
-
-models.Service
-  .bulkCreate([{
-    id: 1,
-    name: 'Motion Service',
-    defaultEntry: true
-  }], {
-    ignoreDuplicates: true,
-    individualHooks: true
-  }).then(function() {
-    console.log('Finished populating integrations');
-  });
+var _0x604a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x74\x55\x73\x65\x72\x73","\x74\x68\x65\x6E","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x75\x73\x65\x72\x73","\x6C\x6F\x67","\x61\x67\x65\x6E\x74","\x66\x69\x6C\x74\x65\x72","\x44\x65\x66\x61\x75\x6C\x74\x20\x54\x65\x61\x6D","\x63\x72\x65\x61\x74\x65","\x54\x65\x61\x6D","\x6C\x6F\x63\x61\x6C","\x61\x64\x6D\x69\x6E","\x41\x64\x6D\x69\x6E\x69\x73\x74\x72\x61\x74\x6F\x72","\x61\x64\x6D\x69\x6E\x40\x61\x64\x6D\x69\x6E\x2E\x63\x6F\x6D","\x70\x61\x73\x73\x77\x6F\x72\x64","\x78\x63\x61\x6C\x6C\x79","\x64\x79\x6E\x61\x6D\x69\x63","\x46\x52\x49\x45\x4E\x44","\x75\x64\x70","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x79\x65\x73","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x61\x6C\x6C","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x4A\x6F\x68\x6E\x20\x44\x6F\x65","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65\x40\x67\x6D\x61\x69\x6C\x2E\x63\x6F\x6D","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65","\x73\x68\x75\x74\x74\x6C\x65\x35\x35","\x4A\x61\x6E\x65\x20\x4D\x69\x6C\x6C\x65\x72","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72\x40\x67\x6D\x61\x69\x6C\x2E\x63\x6F\x6D","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x6F\x64\x75\x6C\x65\x73","\x64\x61\x73\x68\x62\x6F\x61\x72\x64","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x44\x41\x53\x48\x42\x4F\x41\x52\x44","\x75\x73\x65\x72\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x55\x53\x45\x52\x53","\x61\x67\x65\x6E\x74\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x47\x45\x4E\x54\x53","\x74\x65\x61\x6D\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x54\x45\x41\x4D\x53","\x63\x68\x61\x74","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x43\x48\x41\x54","\x76\x6F\x69\x63\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x56\x4F\x49\x43\x45","\x6D\x61\x69\x6C","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x4D\x41\x49\x4C","\x66\x61\x78","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x46\x41\x58","\x61\x75\x64\x69\x6F","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x55\x44\x49\x4F","\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x43\x41\x4C\x4C\x59\x53\x51\x55\x41\x52\x45","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x41\x4E\x41\x4C\x59\x54\x49\x43\x53","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x52\x45\x41\x4C\x54\x49\x4D\x45","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C\x53","\x73\x65\x74\x74\x69\x6E\x67\x73","\x41\x50\x50\x4C\x49\x43\x41\x54\x49\x4F\x4E\x5F\x53\x45\x54\x54\x49\x4E\x47\x53","\x4D\x6F\x64\x75\x6C\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x66\x61\x78\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x76\x6F\x69\x63\x65\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x73","\x4E\x6F\x4F\x70","\x46\x61\x78\x20\x55\x55\x49\x44\x3A\x20\x24\x7B\x46\x41\x58\x55\x55\x49\x44\x7D","\x55\x73\x65\x72\x45\x76\x65\x6E\x74","\x46\x61\x78\x2C\x75\x75\x69\x64\x3A\x20\x24\x7B\x46\x41\x58\x55\x55\x49\x44\x7D","\x53\x65\x74","\x46\x41\x58\x4F\x50\x54\x28\x66\x69\x6C\x65\x6E\x61\x6D\x65\x29\x3A\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x3A\x24\x7B\x45\x43\x4D\x7D","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x3A\x24\x7B\x46\x41\x58\x48\x45\x41\x44\x45\x52\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x3A\x24\x7B\x4C\x4F\x43\x41\x4C\x49\x44\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x3A\x24\x7B\x4D\x41\x58\x52\x41\x54\x45\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x3A\x24\x7B\x4D\x49\x4E\x52\x41\x54\x45\x7D","\x53\x65\x6E\x64\x46\x41\x58","\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D\x2C\x64","\x45\x52\x52\x4F\x52\x20\x22\x24\x7B\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x7D\x22\x20\x22\x4E\x4F\x5F\x53\x54\x41\x54\x55\x53\x22\x20\x22\x4E\x4F\x5F\x50\x41\x47\x45\x53\x22","\x68","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x7D","\x46\x61\x78\x53\x74\x61\x74\x75\x73\x20\x3A\x20\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x7D","\x46\x61\x78\x53\x74\x61\x74\x75\x73\x53\x74\x72\x69\x6E\x67\x20\x3A\x20\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x53\x54\x52\x49\x4E\x47\x7D","\x46\x61\x78\x45\x72\x72\x6F\x72\x20\x3A\x20\x24\x7B\x46\x41\x58\x45\x52\x52\x4F\x52\x7D","\x52\x65\x6D\x6F\x74\x65\x53\x74\x61\x74\x69\x6F\x6E\x49\x44\x20\x3A\x20\x24\x7B\x52\x45\x4D\x4F\x54\x45\x53\x54\x41\x54\x49\x4F\x4E\x49\x44\x7D","\x46\x61\x78\x50\x61\x67\x65\x73\x20\x3A\x20\x24\x7B\x46\x41\x58\x50\x41\x47\x45\x53\x7D","\x46\x61\x78\x42\x69\x74\x52\x61\x74\x65\x20\x3A\x20\x24\x7B\x46\x41\x58\x42\x49\x54\x52\x41\x54\x45\x7D","\x46\x61\x78\x52\x65\x73\x6F\x6C\x75\x74\x69\x6F\x6E\x20\x3A\x20\x24\x7B\x46\x41\x58\x52\x45\x53\x4F\x4C\x55\x54\x49\x4F\x4E\x7D","\x4F\x4B\x20\x22\x24\x7B\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x7D\x22\x20\x22\x24\x7B\x46\x41\x58\x53\x54\x41\x54\x55\x53\x53\x54\x52\x49\x4E\x47\x7D\x22\x20\x22\x24\x7B\x46\x41\x58\x50\x41\x47\x45\x53\x7D\x22","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x2A\x2A\x2A\x2A\x20\x46\x41\x58\x20\x52\x45\x43\x45\x49\x56\x45\x44\x20\x66\x72\x6F\x6D\x20\x24\x7B\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x6E\x75\x6D\x29\x7D\x20\x24\x7B\x53\x54\x52\x46\x54\x49\x4D\x45\x28\x24\x7B\x45\x50\x4F\x43\x48\x7D\x2C\x2C\x25\x63\x29\x7D\x20\x2A\x2A\x2A\x2A","\x46\x41\x58\x4F\x50\x54\x28\x65\x63\x6D\x29\x3A\x79\x65\x73","\x46\x49\x4C\x45\x4E\x41\x4D\x45\x3A\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D","\x46\x41\x58\x46\x49\x4C\x45\x3A\x24\x7B\x46\x49\x4C\x45\x4E\x41\x4D\x45\x7D\x2E\x74\x69\x66","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x3A\x52\x65\x63\x65\x69\x76\x65\x64\x20\x62\x79\x20\x58\x65\x6E\x69\x61\x4C\x41\x42\x20\x24\x7B\x53\x54\x52\x46\x54\x49\x4D\x45\x28\x24\x7B\x45\x50\x4F\x43\x48\x7D\x2C\x2C\x25\x59\x2D\x25\x6D\x2D\x25\x64\x20\x25\x48\x3A\x25\x4D\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x68\x65\x61\x64\x65\x72\x69\x6E\x66\x6F\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6D\x61\x78\x72\x61\x74\x65\x29\x7D","\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x20\x3A\x20\x24\x7B\x46\x41\x58\x4F\x50\x54\x28\x6D\x69\x6E\x72\x61\x74\x65\x29\x7D","\x2A\x2A\x2A\x2A\x20\x52\x45\x43\x45\x49\x56\x49\x4E\x47\x20\x46\x41\x58\x20\x3A\x20\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D\x20\x2A\x2A\x2A\x2A","\x52\x65\x63\x65\x69\x76\x65\x46\x61\x78","\x2F\x74\x6D\x70\x2F\x24\x7B\x46\x41\x58\x46\x49\x4C\x45\x7D","\x48\x61\x6E\x67\x75\x70","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x73\x71\x75\x61\x72\x65\x20\x70\x72\x6F\x6A\x65\x63\x74\x73","\x70\x72\x6F\x6A\x65\x63\x74\x31","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x70\x72\x6F\x6A\x65\x63\x74","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x31","\x56\x61\x72\x69\x61\x62\x6C\x65","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x44\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x28\x44\x4F\x20\x4E\x4F\x54\x20\x44\x45\x4C\x45\x54\x45\x29","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x6D\x6F\x68\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x65\x66\x61\x75\x6C\x74","\x66\x69\x6C\x65\x73","\x76\x61\x72\x2F\x6C\x69\x62\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x6D\x6F\x68","\x61\x6C\x70\x68\x61","\x77\x61\x76","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x73\x65\x74\x74\x69\x6E\x67\x73","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x53\x65\x74\x74\x69\x6E\x67\x73","\x4D\x6F\x74\x69\x6F\x6E\x20\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x63\x6F\x6C\x2D\x6D\x64\x2D\x34","\x63\x6C\x6F\x63\x6B","\x43\x6C\x6F\x63\x6B","\x68\x68\x3A\x6D\x6D\x3A\x73\x73\x20\x61","\x64\x64\x64\x64\x2C\x20\x4D\x4D\x4D\x4D\x20\x44\x6F\x20\x59\x59\x59\x59","\x63\x6F\x6C\x2D\x6D\x64\x2D\x38","\x69\x66\x72\x61\x6D\x65","\x49\x66\x72\x61\x6D\x65","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x64\x65\x6D\x6F\x2E\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D\x2F\x73\x68\x6F\x70\x2F","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B","\x31\x2E\x30\x2E\x30","\x58\x65\x6E\x69\x61\x4C\x41\x42\x20\x73\x2E\x72\x2E\x6C\x2E","\x61\x73\x73\x65\x74\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6D\x65\x64\x69\x61\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x32\x2E\x70\x6E\x67","\x7A\x65\x6E\x64\x65\x73\x6B","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x5A\x65\x6E\x64\x65\x73\x6B","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x5B\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x23\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x4D\x6F\x74\x69\x6F\x6E\x20\x52\x65\x70\x6F\x72\x74\x73\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x22\x69\x63\x6F\x6E\x2D\x72\x6F\x63\x6B\x65\x74\x22\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x7D\x2C\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x31\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x42\x61\x73\x69\x63\x20\x4E\x6F\x64\x65\x22\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x7D\x5D","\x5B\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74\x73\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x22\x69\x63\x6F\x6E\x2D\x62\x6F\x6F\x6B\x2D\x6F\x70\x65\x6E\x22\x2C\x22\x6C\x69\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x69\x64\x22\x3A\x22\x31\x22\x7D\x2C\x22\x61\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x68\x72\x65\x66\x22\x3A\x22\x23\x22\x2C\x22\x69\x64\x22\x3A\x22\x31\x5F\x61\x6E\x63\x68\x6F\x72\x22\x7D\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x6C\x6F\x61\x64\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x64\x69\x73\x61\x62\x6C\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x7D\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x23\x22\x7D\x2C\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x2C\x22\x74\x65\x78\x74\x22\x3A\x22\x42\x61\x73\x69\x63\x20\x4E\x6F\x64\x65\x22\x2C\x22\x69\x63\x6F\x6E\x22\x3A\x74\x72\x75\x65\x2C\x22\x6C\x69\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x69\x64\x22\x3A\x22\x32\x22\x7D\x2C\x22\x61\x5F\x61\x74\x74\x72\x22\x3A\x7B\x22\x68\x72\x65\x66\x22\x3A\x22\x23\x22\x2C\x22\x69\x64\x22\x3A\x22\x32\x5F\x61\x6E\x63\x68\x6F\x72\x22\x7D\x2C\x22\x73\x74\x61\x74\x65\x22\x3A\x7B\x22\x6C\x6F\x61\x64\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x6F\x70\x65\x6E\x65\x64\x22\x3A\x74\x72\x75\x65\x2C\x22\x73\x65\x6C\x65\x63\x74\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x2C\x22\x64\x69\x73\x61\x62\x6C\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x22\x64\x61\x74\x61\x22\x3A\x7B\x7D\x2C\x22\x70\x61\x72\x65\x6E\x74\x22\x3A\x22\x31\x22\x7D\x5D","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65","\x4D\x6F\x74\x69\x6F\x6E\x20\x53\x65\x72\x76\x69\x63\x65","\x53\x65\x72\x76\x69\x63\x65"];_0x604a[0];var _=require(_0x604a[1]);var models=require(_0x604a[2]);var _users;var _team;models[_0x604a[34]][_0x604a[33]]([{provider:_0x604a[12],role:_0x604a[13],fullname:_0x604a[14],email:_0x604a[15],name:_0x604a[13],password:_0x604a[16],defaultuser:_0x604a[17],host:_0x604a[18],type:_0x604a[19],transport:_0x604a[20],allow:_0x604a[21],qualify:_0x604a[22],nat:_0x604a[23],disallow:_0x604a[24],context:_0x604a[25],internal:1000},{provider:_0x604a[12],role:_0x604a[7],fullname:_0x604a[26],email:_0x604a[27],name:_0x604a[28],password:_0x604a[29],defaultuser:_0x604a[28],host:_0x604a[18],type:_0x604a[19],transport:_0x604a[20],allow:_0x604a[21],qualify:_0x604a[22],nat:_0x604a[23],disallow:_0x604a[24],context:_0x604a[25],internal:1001},{provider:_0x604a[12],role:_0x604a[7],fullname:_0x604a[30],email:_0x604a[31],name:_0x604a[32],password:_0x604a[29],defaultuser:_0x604a[32],host:_0x604a[18],type:_0x604a[19],transport:_0x604a[20],allow:_0x604a[21],qualify:_0x604a[22],nat:_0x604a[23],disallow:_0x604a[24],context:_0x604a[25],internal:1002}],{ignoreDuplicates:true,individualHooks:true})[_0x604a[4]](function(_0xb8afx6){console[_0x604a[6]](_0x604a[5]);_users=_[_0x604a[8]](_0xb8afx6,{role:_0x604a[7]});return models[_0x604a[11]][_0x604a[10]]({name:_0x604a[9],description:_0x604a[9],defaultEntry:true})})[_0x604a[4]](function(_0xb8afx5){_team=_0xb8afx5;return _team[_0x604a[3]](_users)});models[_0x604a[64]][_0x604a[33]]([{name:_0x604a[36],title:_0x604a[37]},{name:_0x604a[38],title:_0x604a[39]},{name:_0x604a[40],title:_0x604a[41]},{name:_0x604a[42],title:_0x604a[43]},{name:_0x604a[44],title:_0x604a[45]},{name:_0x604a[46],title:_0x604a[47]},{name:_0x604a[48],title:_0x604a[49]},{name:_0x604a[50],title:_0x604a[51]},{name:_0x604a[52],title:_0x604a[53]},{name:_0x604a[54],title:_0x604a[55]},{name:_0x604a[56],title:_0x604a[57]},{name:_0x604a[58],title:_0x604a[59]},{name:_0x604a[60],title:_0x604a[61]},{name:_0x604a[62],title:_0x604a[63]}],{ignoreDuplicates:true})[_0x604a[4]](function(){console[_0x604a[6]](_0x604a[35])});models[_0x604a[92]][_0x604a[33]]([{context:_0x604a[66],exten:_0x604a[67],priority:1,app:_0x604a[68],appdata:_0x604a[69],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[67],priority:2,app:_0x604a[70],appdata:_0x604a[71],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[67],priority:3,app:_0x604a[72],appdata:_0x604a[73],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[67],priority:4,app:_0x604a[72],appdata:_0x604a[74],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[67],priority:5,app:_0x604a[72],appdata:_0x604a[75],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[67],priority:6,app:_0x604a[72],appdata:_0x604a[76],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[67],priority:7,app:_0x604a[72],appdata:_0x604a[77],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[67],priority:8,app:_0x604a[72],appdata:_0x604a[78],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[67],priority:9,app:_0x604a[79],appdata:_0x604a[80],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[67],priority:10,app:_0x604a[68],appdata:_0x604a[81],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[82],priority:1,app:_0x604a[68],appdata:_0x604a[83],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[82],priority:2,app:_0x604a[68],appdata:_0x604a[84],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[82],priority:3,app:_0x604a[68],appdata:_0x604a[85],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[82],priority:4,app:_0x604a[68],appdata:_0x604a[86],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[82],priority:5,app:_0x604a[68],appdata:_0x604a[87],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[82],priority:6,app:_0x604a[68],appdata:_0x604a[88],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[82],priority:7,app:_0x604a[68],appdata:_0x604a[89],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[82],priority:8,app:_0x604a[68],appdata:_0x604a[90],type:_0x604a[66]},{context:_0x604a[66],exten:_0x604a[82],priority:9,app:_0x604a[68],appdata:_0x604a[91],type:_0x604a[66]}],{ignoreDuplicates:true})[_0x604a[4]](function(){console[_0x604a[6]](_0x604a[65])});models[_0x604a[92]][_0x604a[33]]([{context:_0x604a[93],exten:_0x604a[67],priority:1,app:_0x604a[68],appdata:_0x604a[94],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:2,app:_0x604a[72],appdata:_0x604a[95],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:3,app:_0x604a[72],appdata:_0x604a[96],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:4,app:_0x604a[72],appdata:_0x604a[97],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:5,app:_0x604a[72],appdata:_0x604a[98],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:6,app:_0x604a[72],appdata:_0x604a[76],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:7,app:_0x604a[72],appdata:_0x604a[77],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:8,app:_0x604a[72],appdata:_0x604a[78],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:9,app:_0x604a[68],appdata:_0x604a[83],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:10,app:_0x604a[68],appdata:_0x604a[99],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:11,app:_0x604a[68],appdata:_0x604a[100],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:12,app:_0x604a[68],appdata:_0x604a[101],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:13,app:_0x604a[68],appdata:_0x604a[102],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:14,app:_0x604a[68],appdata:_0x604a[103],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:15,app:_0x604a[104],appdata:_0x604a[105],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[67],priority:16,app:_0x604a[106],type:_0x604a[93]},{context:_0x604a[93],exten:_0x604a[82],priority:1,app:_0x604a[68],appdata:_0x604a[83],type:_0x604a[93]}],{ignoreDuplicates:true})[_0x604a[4]](function(){console[_0x604a[6]](_0x604a[65])});models[_0x604a[110]][_0x604a[33]]([{name:_0x604a[108],description:_0x604a[109]}],{ignoreDuplicates:true})[_0x604a[4]](function(){console[_0x604a[6]](_0x604a[107])});models[_0x604a[113]][_0x604a[33]]([{name:_0x604a[112],description:_0x604a[109]}],{ignoreDuplicates:true})[_0x604a[4]](function(){console[_0x604a[6]](_0x604a[111])});models[_0x604a[118]][_0x604a[33]]([{name:_0x604a[25],description:_0x604a[115],defaultEntry:true},{name:_0x604a[116],description:_0x604a[115],defaultEntry:true},{name:_0x604a[93],description:_0x604a[115],defaultEntry:true},{name:_0x604a[66],description:_0x604a[115],defaultEntry:true},{name:_0x604a[117],description:_0x604a[115],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x604a[4]](function(){console[_0x604a[6]](_0x604a[114])});models[_0x604a[125]][_0x604a[33]]([{name:_0x604a[120],mode:_0x604a[121],directory:_0x604a[122],sort:_0x604a[123],format:_0x604a[124],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x604a[4]](function(){console[_0x604a[6]](_0x604a[119])});models[_0x604a[128]][_0x604a[10]]({min_internal:1003,soundPath:_0x604a[127]})[_0x604a[4]](function(){console[_0x604a[6]](_0x604a[126])});models[_0x604a[140]][_0x604a[33]]([{id:1,name:_0x604a[129],model:JSON[_0x604a[139]]({title:_0x604a[129],rows:[{columns:[{styleClass:_0x604a[130],widgets:[{type:_0x604a[131],title:_0x604a[132],config:{timePattern:_0x604a[133],datePattern:_0x604a[134]}}]},{styleClass:_0x604a[135],widgets:[{type:_0x604a[136],title:_0x604a[137],config:{url:_0x604a[138]}}]}]}]}),defaultEntry:true,editable:false}],{ignoreDuplicates:true,individualHooks:true})[_0x604a[4]](function(){console[_0x604a[6]](_0x604a[119])});models[_0x604a[148]][_0x604a[33]]([{name:_0x604a[142],version:_0x604a[143],active:false,author:_0x604a[144],logo:_0x604a[145],state:_0x604a[146],description:_0x604a[147]}],{ignoreDuplicates:true,individualHooks:true})[_0x604a[4]](function(){console[_0x604a[6]](_0x604a[141])});models[_0x604a[151]][_0x604a[33]]([{id:1,tree:_0x604a[149]},{id:2,tree:_0x604a[150]}],{ignoreDuplicates:true,individualHooks:true})[_0x604a[4]](function(){console[_0x604a[6]](_0x604a[141])});models[_0x604a[153]][_0x604a[33]]([{id:1,name:_0x604a[152],defaultEntry:true}],{ignoreDuplicates:true,individualHooks:true})[_0x604a[4]](function(){console[_0x604a[6]](_0x604a[141])})
\ No newline at end of file
index 25f595d..bc1f7a2 100644 (file)
@@ -1,21 +1 @@
-'use strict';
-
-var MailServerOut = require('../../models').MailServerOut;
-var Smtp = require('./smtp');
-
-module.exports = function () {
-  MailServerOut.afterCreate(function (doc) {
-    new Smtp(doc);
-  });
-
-  return MailServerOut
-    .findAll()
-    .then(function (data) {
-      data.forEach(function (elm) {
-        new Smtp(elm);
-      });
-    })
-    .catch(function (err) {
-      console.error(err);
-    });
-}
+var _0x4013=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x2E\x2F\x73\x6D\x74\x70","\x65\x78\x70\x6F\x72\x74\x73","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C"];_0x4013[0];var MailServerOut=require(_0x4013[2])[_0x4013[1]];var Smtp=require(_0x4013[3]);module[_0x4013[4]]=function(){MailServerOut[_0x4013[5]](function(_0x1e09x3){ new Smtp(_0x1e09x3)});return MailServerOut[_0x4013[10]]()[_0x4013[9]](function(_0x1e09x5){_0x1e09x5[_0x4013[8]](function(_0x1e09x6){ new Smtp(_0x1e09x6)})})[_0x4013[7]](function(_0x1e09x4){console[_0x4013[6]](_0x1e09x4)})}
\ No newline at end of file
index 365afdd..bcf3db2 100644 (file)
@@ -1,240 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Promise = require('bluebird');
-var nodemailer = require('nodemailer');
-var htmlToText = require('html-to-text');
-var smtpTransport = require('nodemailer-smtp-transport');
-
-var Agent = require('../../models').User;
-var Contact = require('../../models').Contact;
-var MailRoom = require('../../models').MailRoom;
-var MailMessage = require('../../models').MailMessage;
-var ContactEmail = require('../../models').ContactEmail;
-var MailServerOut = require('../../models').MailServerOut;
-
-function Smtp(doc) {
-
-  var _smtp;
-  var _doc;
-
-  function onSave(doc) {
-    console.log("MAIL - Account " + doc.username + " SMTP CREATE");
-    _doc = doc;
-    _smtp = nodemailer.createTransport(smtpTransport({
-      host: doc.host,
-      port: doc.port,
-      secure: doc.ssl,
-      debug: true,
-      auth: {
-        user: doc.username,
-        pass: doc.password
-      }
-    }));
-  }
-
-  function onUpdate(doc) {
-    if (!doc.changed('state') && _smtp.transporter.options.auth.user === doc.username) {
-      console.log("MAIL - Account " + doc.username + " SMTP UPDATE");
-      _smtp = null;
-      _smtp = nodemailer.createTransport(smtpTransport({
-        host: doc.host,
-        port: doc.port,
-        secure: doc.ssl,
-        debug: true,
-        auth: {
-          user: doc.username,
-          pass: doc.password
-        }
-      }));
-    }
-  }
-
-  function onRemove(doc) {
-    if (_smtp.transporter.options.auth.user === doc.username) {
-      console.log("[MAIL - Account " + doc.username + " SMTP DESTROY");
-      _smtp = null;
-    }
-  }
-
-  function onSend(mailMessage, options) {
-    if (mailMessage.status === 'SENDING' && _smtp.transporter.options.auth.user === mailMessage.dataValues.from) {
-      var _mRoom;
-      var _mMessage = mailMessage;
-      var _mFrom, _mTo, _mCc, _mBcc;
-
-      if (_mMessage.inReplyTo) {
-        return MailMessage
-          .findOne({
-            where: {
-              messageId: _mMessage.inReplyTo
-            }
-          })
-          .then(function(mailMessageParent) {
-            return mailMessageParent
-              .getMailRoom();
-          })
-          .then(function(mailRoom) {
-            _mRoom = mailRoom;
-            return _mRoom
-              .addMailMessage(_mMessage, {
-                transaction: options ? options.transaction : null
-              });
-          })
-          .then(function() {
-            return _mRoom
-              .addUser(_mMessage.UserId, {
-                transaction: options ? options.transaction : null
-              });
-          })
-          .then(function(mBcc) {
-            _mBcc = _.map(mBcc, function(elm) {
-              return elm[0];
-            });
-
-            return;
-          })
-          .then(function() {
-            var mail = {
-              status: _mMessage.status,
-              from: _mMessage.from,
-              to: _mMessage.to,
-              cc: _mMessage.cc,
-              subject: _mMessage.subject,
-              html: _mMessage.html,
-              text: htmlToText.fromString(_mMessage.html, {
-                wordwrap: false
-              }),
-              headers: {
-                'X-Laziness-level': 1000
-              }
-            };
-
-            if (_mMessage.MailAttachments) {
-              mail.attachments = _.map(_mMessage.MailAttachments, function(elm) {
-                return {
-                  path: elm.path,
-                  filename: elm.name
-                }
-              });
-            }
-
-            return _smtp.sendMail(mail);
-          })
-          .then(function(info) {
-            return _mMessage
-              .update({
-                messageId: info.messageId,
-                status: 'SENT'
-              }, {
-                transaction: options ? options.transaction : null
-              });
-          })
-          .catch(function(err) {
-            console.error('err', err);
-            throw {
-              message: err.message || err.response || 'Internal Server Error'
-            };
-          });
-      } else {
-        console.log(1);
-
-        return MailRoom
-          .findOrCreate({
-            where: {
-              id: _mMessage.MailRoomId
-            },
-            defaults: {
-              subject: _mMessage.subject,
-              from: _mMessage.from.join(';'),
-              status: 'OPEN',
-              MailAccountId: _doc.MailAccountId
-            },
-            transaction: options ? options.transaction : null
-          })
-          .spread(function(mailRoom) {
-            console.log(2);
-
-            _mRoom = mailRoom;
-            return _mRoom
-              .addMailMessage(_mMessage, {
-                transaction: options ? options.transaction : null
-              });
-          })
-          .then(function() {
-            console.log(3);
-
-            return _mRoom
-              .addUser(_mMessage.UserId, {
-                transaction: options ? options.transaction : null
-              });
-          })
-          .then(function() {
-            console.log(4);
-
-            var mail = {
-              status: _mMessage.status,
-              from: _mMessage.from,
-              to: _mMessage.to,
-              cc: _mMessage.cc,
-              subject: _mMessage.subject,
-              html: _mMessage.html,
-              text: htmlToText.fromString(_mMessage.html, {
-                wordwrap: false
-              }),
-              headers: {
-                'X-Laziness-level': 1000
-              }
-            };
-
-            if (_mMessage.MailAttachments) {
-              mail.attachments = _.map(_mMessage.MailAttachments, function(elm) {
-                return {
-                  path: elm.path,
-                  filename: elm.name
-                }
-              });
-            }
-
-            return _smtp
-              .sendMail(mail);
-          })
-          .then(function(info) {
-
-            console.log('info', info);
-            return _mMessage
-              .update({
-                messageId: info.messageId,
-                status: 'SENT'
-              }, {
-                transaction: options ? options.transaction : null
-              });
-          })
-          .catch(function(err) {
-            console.error('err', err);
-            throw {
-              message: err.message || err.response || 'Internal Server Error'
-            };
-          });
-      }
-    }
-  }
-
-  onSave(doc);
-
-  // HANDLE ACCOUNT UPDATE/DELETE
-  MailServerOut.afterUpdate(function(doc) {
-    return onUpdate(doc);
-  });
-  MailServerOut.afterDestroy(function(doc) {
-    return onRemove(doc);
-  });
-  // HANDLE SEND MAIL
-  MailMessage.afterCreate(function(doc, options) {
-    return onSend(doc, options);
-  });
-
-  return {};
-}
-
-module.exports = Smtp;
+var _0xce4a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72","\x68\x74\x6D\x6C\x2D\x74\x6F\x2D\x74\x65\x78\x74","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72\x2D\x73\x6D\x74\x70\x2D\x74\x72\x61\x6E\x73\x70\x6F\x72\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x4D\x41\x49\x4C\x20\x2D\x20\x41\x63\x63\x6F\x75\x6E\x74\x20","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x20\x53\x4D\x54\x50\x20\x43\x52\x45\x41\x54\x45","\x6C\x6F\x67","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x73\x73\x6C","\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x72\x65\x61\x74\x65\x54\x72\x61\x6E\x73\x70\x6F\x72\x74","\x73\x74\x61\x74\x65","\x63\x68\x61\x6E\x67\x65\x64","\x75\x73\x65\x72","\x61\x75\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74\x65\x72","\x20\x53\x4D\x54\x50\x20\x55\x50\x44\x41\x54\x45","\x5B\x4D\x41\x49\x4C\x20\x2D\x20\x41\x63\x63\x6F\x75\x6E\x74\x20","\x20\x53\x4D\x54\x50\x20\x44\x45\x53\x54\x52\x4F\x59","\x73\x74\x61\x74\x75\x73","\x53\x45\x4E\x44\x49\x4E\x47","\x66\x72\x6F\x6D","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x69\x6E\x52\x65\x70\x6C\x79\x54\x6F","\x65\x72\x72","\x65\x72\x72\x6F\x72","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x49\x6E\x74\x65\x72\x6E\x61\x6C\x20\x53\x65\x72\x76\x65\x72\x20\x45\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6D\x65\x73\x73\x61\x67\x65\x49\x64","\x53\x45\x4E\x54","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x74\x68\x65\x6E","\x74\x6F","\x63\x63","\x73\x75\x62\x6A\x65\x63\x74","\x68\x74\x6D\x6C","\x66\x72\x6F\x6D\x53\x74\x72\x69\x6E\x67","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x70\x61\x74\x68","\x6E\x61\x6D\x65","\x6D\x61\x70","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x61\x64\x64\x55\x73\x65\x72","\x61\x64\x64\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x69\x6E\x66\x6F","\x73\x70\x72\x65\x61\x64","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x49\x64","\x3B","\x6A\x6F\x69\x6E","\x4F\x50\x45\x4E","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xce4a[0];var _=require(_0xce4a[1]);var Promise=require(_0xce4a[2]);var nodemailer=require(_0xce4a[3]);var htmlToText=require(_0xce4a[4]);var smtpTransport=require(_0xce4a[5]);var Agent=require(_0xce4a[7])[_0xce4a[6]];var Contact=require(_0xce4a[7])[_0xce4a[8]];var MailRoom=require(_0xce4a[7])[_0xce4a[9]];var MailMessage=require(_0xce4a[7])[_0xce4a[10]];var ContactEmail=require(_0xce4a[7])[_0xce4a[11]];var MailServerOut=require(_0xce4a[7])[_0xce4a[12]];function Smtp(_0x3bcdxd){var _0x3bcdxe;var _0x3bcdxf;function _0x3bcdx10(_0x3bcdxd){console[_0xce4a[16]](_0xce4a[13]+_0x3bcdxd[_0xce4a[14]]+_0xce4a[15]);_0x3bcdxf=_0x3bcdxd;_0x3bcdxe=nodemailer[_0xce4a[21]](smtpTransport({host:_0x3bcdxd[_0xce4a[17]],port:_0x3bcdxd[_0xce4a[18]],secure:_0x3bcdxd[_0xce4a[19]],debug:true,auth:{user:_0x3bcdxd[_0xce4a[14]],pass:_0x3bcdxd[_0xce4a[20]]}}))}function _0x3bcdx11(_0x3bcdxd){if(!_0x3bcdxd[_0xce4a[23]](_0xce4a[22])&&_0x3bcdxe[_0xce4a[27]][_0xce4a[26]][_0xce4a[25]][_0xce4a[24]]===_0x3bcdxd[_0xce4a[14]]){console[_0xce4a[16]](_0xce4a[13]+_0x3bcdxd[_0xce4a[14]]+_0xce4a[28]);_0x3bcdxe=null;_0x3bcdxe=nodemailer[_0xce4a[21]](smtpTransport({host:_0x3bcdxd[_0xce4a[17]],port:_0x3bcdxd[_0xce4a[18]],secure:_0x3bcdxd[_0xce4a[19]],debug:true,auth:{user:_0x3bcdxd[_0xce4a[14]],pass:_0x3bcdxd[_0xce4a[20]]}}))}}function _0x3bcdx12(_0x3bcdxd){if(_0x3bcdxe[_0xce4a[27]][_0xce4a[26]][_0xce4a[25]][_0xce4a[24]]===_0x3bcdxd[_0xce4a[14]]){console[_0xce4a[16]](_0xce4a[29]+_0x3bcdxd[_0xce4a[14]]+_0xce4a[30]);_0x3bcdxe=null}}function _0x3bcdx13(_0x3bcdx14,_0x3bcdx15){if(_0x3bcdx14[_0xce4a[31]]===_0xce4a[32]&&_0x3bcdxe[_0xce4a[27]][_0xce4a[26]][_0xce4a[25]][_0xce4a[24]]===_0x3bcdx14[_0xce4a[34]][_0xce4a[33]]){var _0x3bcdx16;var _0x3bcdx17=_0x3bcdx14;var _0x3bcdx18,_0x3bcdx19,_0x3bcdx1a,_0x3bcdx1b;if(_0x3bcdx17[_0xce4a[35]]){return MailMessage[_0xce4a[61]]({where:{messageId:_0x3bcdx17[_0xce4a[35]]}})[_0xce4a[46]](function(_0x3bcdx22){return _0x3bcdx22[_0xce4a[60]]()})[_0xce4a[46]](function(_0x3bcdx21){_0x3bcdx16=_0x3bcdx21;return _0x3bcdx16[_0xce4a[59]](_0x3bcdx17,{transaction:_0x3bcdx15?_0x3bcdx15[_0xce4a[44]]:null})})[_0xce4a[46]](function(){return _0x3bcdx16[_0xce4a[58]](_0x3bcdx17.UserId,{transaction:_0x3bcdx15?_0x3bcdx15[_0xce4a[44]]:null})})[_0xce4a[46]](function(_0x3bcdx20){_0x3bcdx1b=_[_0xce4a[56]](_0x3bcdx20,function(_0x3bcdx1f){return _0x3bcdx1f[0]});return})[_0xce4a[46]](function(){var _0x3bcdx1e={status:_0x3bcdx17[_0xce4a[31]],from:_0x3bcdx17[_0xce4a[33]],to:_0x3bcdx17[_0xce4a[47]],cc:_0x3bcdx17[_0xce4a[48]],subject:_0x3bcdx17[_0xce4a[49]],html:_0x3bcdx17[_0xce4a[50]],text:htmlToText[_0xce4a[51]](_0x3bcdx17[_0xce4a[50]],{wordwrap:false}),headers:{"\x58\x2D\x4C\x61\x7A\x69\x6E\x65\x73\x73\x2D\x6C\x65\x76\x65\x6C":1000}};if(_0x3bcdx17[_0xce4a[52]]){_0x3bcdx1e[_0xce4a[53]]=_[_0xce4a[56]](_0x3bcdx17.MailAttachments,function(_0x3bcdx1f){return {path:_0x3bcdx1f[_0xce4a[54]],filename:_0x3bcdx1f[_0xce4a[55]]}})};return _0x3bcdxe[_0xce4a[57]](_0x3bcdx1e)})[_0xce4a[46]](function(_0x3bcdx1d){return _0x3bcdx17[_0xce4a[45]]({messageId:_0x3bcdx1d[_0xce4a[42]],status:_0xce4a[43]},{transaction:_0x3bcdx15?_0x3bcdx15[_0xce4a[44]]:null})})[_0xce4a[41]](function(_0x3bcdx1c){console[_0xce4a[37]](_0xce4a[36],_0x3bcdx1c);throw {message:_0x3bcdx1c[_0xce4a[38]]||_0x3bcdx1c[_0xce4a[39]]||_0xce4a[40]}})}else {console[_0xce4a[16]](1);return MailRoom[_0xce4a[69]]({where:{id:_0x3bcdx17[_0xce4a[64]]},defaults:{subject:_0x3bcdx17[_0xce4a[49]],from:_0x3bcdx17[_0xce4a[33]][_0xce4a[66]](_0xce4a[65]),status:_0xce4a[67],MailAccountId:_0x3bcdxf[_0xce4a[68]]},transaction:_0x3bcdx15?_0x3bcdx15[_0xce4a[44]]:null})[_0xce4a[63]](function(_0x3bcdx21){console[_0xce4a[16]](2);_0x3bcdx16=_0x3bcdx21;return _0x3bcdx16[_0xce4a[59]](_0x3bcdx17,{transaction:_0x3bcdx15?_0x3bcdx15[_0xce4a[44]]:null})})[_0xce4a[46]](function(){console[_0xce4a[16]](3);return _0x3bcdx16[_0xce4a[58]](_0x3bcdx17.UserId,{transaction:_0x3bcdx15?_0x3bcdx15[_0xce4a[44]]:null})})[_0xce4a[46]](function(){console[_0xce4a[16]](4);var _0x3bcdx1e={status:_0x3bcdx17[_0xce4a[31]],from:_0x3bcdx17[_0xce4a[33]],to:_0x3bcdx17[_0xce4a[47]],cc:_0x3bcdx17[_0xce4a[48]],subject:_0x3bcdx17[_0xce4a[49]],html:_0x3bcdx17[_0xce4a[50]],text:htmlToText[_0xce4a[51]](_0x3bcdx17[_0xce4a[50]],{wordwrap:false}),headers:{"\x58\x2D\x4C\x61\x7A\x69\x6E\x65\x73\x73\x2D\x6C\x65\x76\x65\x6C":1000}};if(_0x3bcdx17[_0xce4a[52]]){_0x3bcdx1e[_0xce4a[53]]=_[_0xce4a[56]](_0x3bcdx17.MailAttachments,function(_0x3bcdx1f){return {path:_0x3bcdx1f[_0xce4a[54]],filename:_0x3bcdx1f[_0xce4a[55]]}})};return _0x3bcdxe[_0xce4a[57]](_0x3bcdx1e)})[_0xce4a[46]](function(_0x3bcdx1d){console[_0xce4a[16]](_0xce4a[62],_0x3bcdx1d);return _0x3bcdx17[_0xce4a[45]]({messageId:_0x3bcdx1d[_0xce4a[42]],status:_0xce4a[43]},{transaction:_0x3bcdx15?_0x3bcdx15[_0xce4a[44]]:null})})[_0xce4a[41]](function(_0x3bcdx1c){console[_0xce4a[37]](_0xce4a[36],_0x3bcdx1c);throw {message:_0x3bcdx1c[_0xce4a[38]]||_0x3bcdx1c[_0xce4a[39]]||_0xce4a[40]}})}}}_0x3bcdx10(_0x3bcdxd);MailServerOut[_0xce4a[70]](function(_0x3bcdxd){return _0x3bcdx11(_0x3bcdxd)});MailServerOut[_0xce4a[71]](function(_0x3bcdxd){return _0x3bcdx12(_0x3bcdxd)});MailMessage[_0xce4a[72]](function(_0x3bcdxd,_0x3bcdx15){return _0x3bcdx13(_0x3bcdxd,_0x3bcdx15)});return {}}module[_0xce4a[73]]=Smtp
\ No newline at end of file
index bffebfa..5055940 100644 (file)
@@ -1,201 +1 @@
-/**
- * Socket.io configuration
- */
-
-'use strict';
-
-var moment = require('moment');
-var config = require('./environment');
-var User = require('../models').User;
-
-function onDisconnect(socket) {
-  if (socket.userId) {
-    return User
-      .findById(socket.userId)
-      .then(function(user) {
-        if (user) {
-          return user
-            .updateAttributes({
-              online: false
-            });
-        } else {
-          throw new Error('socket: anyone users found');
-        }
-      })
-      .then(function(user) {
-        console.log('socket: user offline', user.name);
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  } else {
-    console.log('socket: anyone users found');
-  }
-}
-
-function onConnect(socket) {
-  if (socket.userId) {
-    return User
-      .findById(socket.userId)
-      .then(function(user) {
-        if (user) {
-          return user
-            .updateAttributes({
-              online: true,
-              lastLoginAt: moment().format("YYYY-MM-DD HH:mm:ss")
-            })
-        } else {
-          throw new Error('socket: anyone users found');
-        }
-      })
-      .then(function(user) {
-        console.log('socket: user online', user.name);
-
-        // Insert sockets below
-        require('../api/chat_proactive_action/chat_proactive_action.socket').register(socket);
-        // require('../api/report_jscripty_input/report_jscripty_input.socket').register(socket);
-        // require('../api/report_jscripty_question/report_jscripty_question.socket').register(socket);
-        // require('../api/report_jscripty_session/report_jscripty_session.socket').register(socket);
-        require('../api/canned_answer/canned_answer.socket').register(socket);
-        require('../api/chat_websites_field/chat_websites_field.socket').register(socket);
-        require('../api/voice_recording/voice_recording.socket').register(socket);
-        require('../api/license/license.socket').register(socket);
-        require('../api/jscripty_project/jscripty_project.socket').register(socket);
-
-        //Ordered alphabetically
-        require('../api/agent/agent.socket').register(socket);
-        require('../api/ami/ami.socket').register(socket);
-        require('../api/automation/automation.socket').register(socket);
-        require('../api/chat_application/chat_application.socket').register(socket);
-        require('../api/chat_enquiry/enquiry.socket').register(socket);
-        require('../api/chat_message/chat_message.socket').register(socket);
-        require('../api/chat_queue/chat_queue.socket').register(socket);
-        require('../api/chat_room/chat_room.socket').register(socket);
-        require('../api/chat_visitor/chat_visitor.socket').register(socket);
-        require('../api/chat_website/chat_website.socket').register(socket);
-        require('../api/company/company.socket').register(socket);
-        require('../api/contact_manager/contact_manager.socket').register(socket);
-        require('../api/dashboard/dashboard.socket').register(socket);
-        require('../api/desk_account/desk_account.socket').register(socket);
-        require('../api/desk_configuration/desk_configuration.socket').register(socket);
-        require('../api/desk_field/desk_field.socket').register(socket);
-        require('../api/fax_account/fax_account.socket').register(socket);
-        require('../api/fax_application/fax_application.socket').register(socket);
-        require('../api/fax_message/fax_message.socket').register(socket);
-        require('../api/fax_queue/fax_queue.socket').register(socket);
-        require('../api/fax_room/fax_room.socket').register(socket);
-        require('../api/freshdesk_account/freshdesk_account.socket').register(socket);
-        require('../api/freshdesk_configuration/freshdesk_configuration.socket').register(socket);
-        require('../api/freshdesk_field/freshdesk_field.socket').register(socket);
-        require('../api/integration/integration.socket').register(socket);
-        require('../api/interval/interval.socket').register(socket);
-        require('../api/mail_account/mail_account.socket').register(socket);
-        require('../api/mail_application/mail_application.socket').register(socket);
-        require('../api/mail_attachment/mail_attachment.socket').register(socket);
-        require('../api/mail_message/mail_message.socket').register(socket);
-        require('../api/mail_queue/mail_queue.socket').register(socket);
-        require('../api/mail_room/mail_room.socket').register(socket);
-        require('../api/mail_server_in/mail_server_in.socket').register(socket);
-        require('../api/mail_template/mail_template.socket').register(socket);
-        require('../api/module/module.socket').register(socket);
-        require('../api/motionbar/motionbar.socket').register(socket);
-        require('../api/default_report/default_report.socket').register(socket);
-        require('../api/custom_report/custom_report.socket').register(socket);
-        require('../api/report_tree/report_tree.socket').register(socket);
-        require('../api/report_agent/report_agent.socket').register(socket);
-        require('../api/report_chat/report_chat.socket').register(socket);
-        require('../api/report_chat_session/report_chat_session.socket').register(socket);
-        require('../api/report_integration/report_integration.socket').register(socket);
-        require('../api/report_mail/report_mail.socket').register(socket);
-        require('../api/report_mail_session/report_mail_session.socket').register(socket);
-        require('../api/report_queue/report_queue.socket').register(socket);
-        require('../api/salesforce_account/salesforce_account.socket').register(socket);
-        require('../api/salesforce_configuration/salesforce_configuration.socket').register(socket);
-        require('../api/salesforce_field/salesforce_field.socket').register(socket);
-        require('../api/setting/setting.socket').register(socket);
-        require('../api/square_odbc/square_odbc.socket').register(socket);
-        require('../api/square_project/square_project.socket').register(socket);
-        require('../api/sugarcrm_account/sugarcrm_account.socket').register(socket);
-        require('../api/sugarcrm_configuration/sugarcrm_configuration.socket').register(socket);
-        require('../api/sugarcrm_field/sugarcrm_field.socket').register(socket);
-        require('../api/tag/tag.socket').register(socket);
-        require('../api/team/team.socket').register(socket);
-        require('../api/trigger/trigger.socket').register(socket);
-        require('../api/trunk/trunk.socket').register(socket);
-        require('../api/user/user.socket').register(socket);
-        require('../api/sound/sound.socket').register(socket);
-        require('../api/user_has_chat_queue/user_has_chat_queue.socket').register(socket);
-        require('../api/user_has_chat_room/user_has_chat_room.socket').register(socket);
-        require('../api/user_has_fax_queue/user_has_fax_queue.socket').register(socket);
-        require('../api/user_has_mail_queue/user_has_mail_queue.socket').register(socket);
-        require('../api/user_has_team/user_has_team.socket').register(socket);
-        require('../api/user_has_voice_queue/user_has_voice_queue.socket').register(socket);
-        require('../api/user_has_service/user_has_service.socket').register(socket);
-        require('../api/variable/variable.socket').register(socket);
-        require('../api/chanspy/chanspy.socket').register(socket);
-        require('../api/metric/metric.socket').register(socket);
-        require('../api/extracted_report/extracted_report.socket').register(socket);
-        require('../api/voice_context/voice_context.socket').register(socket);
-        require('../api/voice_extension/voice_extension.socket').register(socket);
-        require('../api/voice_musiconhold/voice_musiconhold.socket').register(socket);
-        require('../api/voice_queue/voice_queue.socket').register(socket);
-        require('../api/service/service.socket').register(socket);
-        require('../api/voice_voicemail/voice_voicemail.socket').register(socket);
-        require('../api/voice_voicemail_messages/voice_voicemail_messages.socket').register(socket);
-        require('../api/xchatty/xchatty.socket').register(socket);
-        require('../api/zendesk_account/zendesk_account.socket').register(socket);
-        require('../api/zendesk_configuration/zendesk_configuration.socket').register(socket);
-        require('../api/zendesk_field/zendesk_field.socket').register(socket);
-
-      })
-      .catch(function(err) {
-        console.error(err);
-      });
-  } else {
-    console.log('socket: anyone users found');
-  }
-
-  socket.on('info', function(data) {
-    console.info('[%s] %s', socket.address, JSON.stringify(data, null, 2));
-  });
-
-}
-
-module.exports = function(socketio) {
-  // socket.io (v1.x.x) is powered by debug.
-  // In order to see all the debug output, set DEBUG (in server/config/local.env.js) to including the desired scope.
-  //
-  // ex: DEBUG: "http*,socket.io:socket"
-
-  // We can authenticate socket.io users and access their token through socket.handshake.decoded_token
-  //
-  // 1. You will need to send the token in `client/components/socket/socket.service.js`
-  //
-  // 2. Require authentication here:
-  socketio.use(require('socketio-jwt').authorize({
-    secret: config.session.secret,
-    handshake: true
-  }));
-
-  socketio.on('connection', function(socket) {
-    socket.address = socket.handshake.address !== null ? socket.handshake
-      .address.address + ':' + socket.handshake.address.port : process.env
-      .DOMAIN;
-
-    socket.connectedAt = new Date();
-    socket.userId = socket.handshake.query.userId;
-    socket.role = socket.handshake.query.role;
-    socket.name = socket.handshake.query.name;
-    socket.source = socket.handshake.query.source;
-
-    // Call onDisconnect.
-    socket.on('disconnect', function() {
-      onDisconnect(socket);
-      console.info('[%s] SOCKET DISCONNECTED', socket.handshake.address);
-    });
-
-    // Call onConnect.
-    onConnect(socket);
-    console.info('[%s] SOCKET CONNECTED', socket.handshake.address);
-  });
-};
+var _0x36d4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x75\x73\x65\x72\x49\x64","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x73\x6F\x63\x6B\x65\x74\x3A\x20\x75\x73\x65\x72\x20\x6F\x66\x66\x6C\x69\x6E\x65","\x6E\x61\x6D\x65","\x6C\x6F\x67","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x73\x6F\x63\x6B\x65\x74\x3A\x20\x61\x6E\x79\x6F\x6E\x65\x20\x75\x73\x65\x72\x73\x20\x66\x6F\x75\x6E\x64","\x66\x69\x6E\x64\x42\x79\x49\x64","\x73\x6F\x63\x6B\x65\x74\x3A\x20\x75\x73\x65\x72\x20\x6F\x6E\x6C\x69\x6E\x65","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x5F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72\x2F\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73\x5F\x66\x69\x65\x6C\x64\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x2F\x61\x67\x65\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6D\x69\x2F\x61\x6D\x69\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x65\x6E\x71\x75\x69\x72\x79\x2F\x65\x6E\x71\x75\x69\x72\x79\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x2F\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x2F\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6D\x70\x61\x6E\x79\x2F\x63\x6F\x6D\x70\x61\x6E\x79\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2F\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x2F\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x2F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2F\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x6F\x64\x75\x6C\x65\x2F\x6D\x6F\x64\x75\x6C\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x2F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x2F\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x2F\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63\x2F\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2F\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x61\x67\x2F\x74\x61\x67\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x2F\x74\x65\x61\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x2F\x74\x72\x75\x6E\x6B\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x2F\x75\x73\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x2F\x73\x6F\x75\x6E\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x6E\x73\x70\x79\x2F\x63\x68\x61\x6E\x73\x70\x79\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x74\x72\x69\x63\x2F\x6D\x65\x74\x72\x69\x63\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x2F\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x65\x72\x76\x69\x63\x65\x2F\x73\x65\x72\x76\x69\x63\x65\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79\x2F\x78\x63\x68\x61\x74\x74\x79\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x73\x6F\x63\x6B\x65\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x2E\x73\x6F\x63\x6B\x65\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x69\x6E\x66\x6F","\x5B\x25\x73\x5D\x20\x25\x73","\x61\x64\x64\x72\x65\x73\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x73\x65\x63\x72\x65\x74","\x73\x65\x73\x73\x69\x6F\x6E","\x61\x75\x74\x68\x6F\x72\x69\x7A\x65","\x73\x6F\x63\x6B\x65\x74\x69\x6F\x2D\x6A\x77\x74","\x75\x73\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x68\x61\x6E\x64\x73\x68\x61\x6B\x65","\x3A","\x70\x6F\x72\x74","\x44\x4F\x4D\x41\x49\x4E","\x65\x6E\x76","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x71\x75\x65\x72\x79","\x72\x6F\x6C\x65","\x73\x6F\x75\x72\x63\x65","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x5B\x25\x73\x5D\x20\x53\x4F\x43\x4B\x45\x54\x20\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x5B\x25\x73\x5D\x20\x53\x4F\x43\x4B\x45\x54\x20\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44"];_0x36d4[0];var moment=require(_0x36d4[1]);var config=require(_0x36d4[2]);var User=require(_0x36d4[4])[_0x36d4[3]];function onDisconnect(_0x20fex5){if(_0x20fex5[_0x36d4[5]]){return User[_0x36d4[14]](_0x20fex5[_0x36d4[5]])[_0x36d4[11]](function(_0x20fex7){if(_0x20fex7){return _0x20fex7[_0x36d4[12]]({online:false})}else {throw  new Error(_0x36d4[13])}})[_0x36d4[11]](function(_0x20fex7){console[_0x36d4[10]](_0x36d4[8],_0x20fex7[_0x36d4[9]])})[_0x36d4[7]](function(_0x20fex6){console[_0x36d4[6]](_0x20fex6)})}else {console[_0x36d4[10]](_0x36d4[13])}}function onConnect(_0x20fex5){if(_0x20fex5[_0x36d4[5]]){return User[_0x36d4[14]](_0x20fex5[_0x36d4[5]])[_0x36d4[11]](function(_0x20fex7){if(_0x20fex7){return _0x20fex7[_0x36d4[12]]({online:true,lastLoginAt:moment()[_0x36d4[107]](_0x36d4[106])})}else {throw  new Error(_0x36d4[13])}})[_0x36d4[11]](function(_0x20fex7){console[_0x36d4[10]](_0x36d4[15],_0x20fex7[_0x36d4[9]]);require(_0x36d4[17])[_0x36d4[16]](_0x20fex5);require(_0x36d4[18])[_0x36d4[16]](_0x20fex5);require(_0x36d4[19])[_0x36d4[16]](_0x20fex5);require(_0x36d4[20])[_0x36d4[16]](_0x20fex5);require(_0x36d4[21])[_0x36d4[16]](_0x20fex5);require(_0x36d4[22])[_0x36d4[16]](_0x20fex5);require(_0x36d4[23])[_0x36d4[16]](_0x20fex5);require(_0x36d4[24])[_0x36d4[16]](_0x20fex5);require(_0x36d4[25])[_0x36d4[16]](_0x20fex5);require(_0x36d4[26])[_0x36d4[16]](_0x20fex5);require(_0x36d4[27])[_0x36d4[16]](_0x20fex5);require(_0x36d4[28])[_0x36d4[16]](_0x20fex5);require(_0x36d4[29])[_0x36d4[16]](_0x20fex5);require(_0x36d4[30])[_0x36d4[16]](_0x20fex5);require(_0x36d4[31])[_0x36d4[16]](_0x20fex5);require(_0x36d4[32])[_0x36d4[16]](_0x20fex5);require(_0x36d4[33])[_0x36d4[16]](_0x20fex5);require(_0x36d4[34])[_0x36d4[16]](_0x20fex5);require(_0x36d4[35])[_0x36d4[16]](_0x20fex5);require(_0x36d4[36])[_0x36d4[16]](_0x20fex5);require(_0x36d4[37])[_0x36d4[16]](_0x20fex5);require(_0x36d4[38])[_0x36d4[16]](_0x20fex5);require(_0x36d4[39])[_0x36d4[16]](_0x20fex5);require(_0x36d4[40])[_0x36d4[16]](_0x20fex5);require(_0x36d4[41])[_0x36d4[16]](_0x20fex5);require(_0x36d4[42])[_0x36d4[16]](_0x20fex5);require(_0x36d4[43])[_0x36d4[16]](_0x20fex5);require(_0x36d4[44])[_0x36d4[16]](_0x20fex5);require(_0x36d4[45])[_0x36d4[16]](_0x20fex5);require(_0x36d4[46])[_0x36d4[16]](_0x20fex5);require(_0x36d4[47])[_0x36d4[16]](_0x20fex5);require(_0x36d4[48])[_0x36d4[16]](_0x20fex5);require(_0x36d4[49])[_0x36d4[16]](_0x20fex5);require(_0x36d4[50])[_0x36d4[16]](_0x20fex5);require(_0x36d4[51])[_0x36d4[16]](_0x20fex5);require(_0x36d4[52])[_0x36d4[16]](_0x20fex5);require(_0x36d4[53])[_0x36d4[16]](_0x20fex5);require(_0x36d4[54])[_0x36d4[16]](_0x20fex5);require(_0x36d4[55])[_0x36d4[16]](_0x20fex5);require(_0x36d4[56])[_0x36d4[16]](_0x20fex5);require(_0x36d4[57])[_0x36d4[16]](_0x20fex5);require(_0x36d4[58])[_0x36d4[16]](_0x20fex5);require(_0x36d4[59])[_0x36d4[16]](_0x20fex5);require(_0x36d4[60])[_0x36d4[16]](_0x20fex5);require(_0x36d4[61])[_0x36d4[16]](_0x20fex5);require(_0x36d4[62])[_0x36d4[16]](_0x20fex5);require(_0x36d4[63])[_0x36d4[16]](_0x20fex5);require(_0x36d4[64])[_0x36d4[16]](_0x20fex5);require(_0x36d4[65])[_0x36d4[16]](_0x20fex5);require(_0x36d4[66])[_0x36d4[16]](_0x20fex5);require(_0x36d4[67])[_0x36d4[16]](_0x20fex5);require(_0x36d4[68])[_0x36d4[16]](_0x20fex5);require(_0x36d4[69])[_0x36d4[16]](_0x20fex5);require(_0x36d4[70])[_0x36d4[16]](_0x20fex5);require(_0x36d4[71])[_0x36d4[16]](_0x20fex5);require(_0x36d4[72])[_0x36d4[16]](_0x20fex5);require(_0x36d4[73])[_0x36d4[16]](_0x20fex5);require(_0x36d4[74])[_0x36d4[16]](_0x20fex5);require(_0x36d4[75])[_0x36d4[16]](_0x20fex5);require(_0x36d4[76])[_0x36d4[16]](_0x20fex5);require(_0x36d4[77])[_0x36d4[16]](_0x20fex5);require(_0x36d4[78])[_0x36d4[16]](_0x20fex5);require(_0x36d4[79])[_0x36d4[16]](_0x20fex5);require(_0x36d4[80])[_0x36d4[16]](_0x20fex5);require(_0x36d4[81])[_0x36d4[16]](_0x20fex5);require(_0x36d4[82])[_0x36d4[16]](_0x20fex5);require(_0x36d4[83])[_0x36d4[16]](_0x20fex5);require(_0x36d4[84])[_0x36d4[16]](_0x20fex5);require(_0x36d4[85])[_0x36d4[16]](_0x20fex5);require(_0x36d4[86])[_0x36d4[16]](_0x20fex5);require(_0x36d4[87])[_0x36d4[16]](_0x20fex5);require(_0x36d4[88])[_0x36d4[16]](_0x20fex5);require(_0x36d4[89])[_0x36d4[16]](_0x20fex5);require(_0x36d4[90])[_0x36d4[16]](_0x20fex5);require(_0x36d4[91])[_0x36d4[16]](_0x20fex5);require(_0x36d4[92])[_0x36d4[16]](_0x20fex5);require(_0x36d4[93])[_0x36d4[16]](_0x20fex5);require(_0x36d4[94])[_0x36d4[16]](_0x20fex5);require(_0x36d4[95])[_0x36d4[16]](_0x20fex5);require(_0x36d4[96])[_0x36d4[16]](_0x20fex5);require(_0x36d4[97])[_0x36d4[16]](_0x20fex5);require(_0x36d4[98])[_0x36d4[16]](_0x20fex5);require(_0x36d4[99])[_0x36d4[16]](_0x20fex5);require(_0x36d4[100])[_0x36d4[16]](_0x20fex5);require(_0x36d4[101])[_0x36d4[16]](_0x20fex5);require(_0x36d4[102])[_0x36d4[16]](_0x20fex5);require(_0x36d4[103])[_0x36d4[16]](_0x20fex5);require(_0x36d4[104])[_0x36d4[16]](_0x20fex5);require(_0x36d4[105])[_0x36d4[16]](_0x20fex5)})[_0x36d4[7]](function(_0x20fex6){console[_0x36d4[6]](_0x20fex6)})}else {console[_0x36d4[10]](_0x36d4[13])};_0x20fex5[_0x36d4[112]](_0x36d4[108],function(_0x20fex9){console[_0x36d4[108]](_0x36d4[109],_0x20fex5[_0x36d4[110]],JSON[_0x36d4[111]](_0x20fex9,null,2))})}module[_0x36d4[113]]=function(_0x20fexa){_0x20fexa[_0x36d4[118]](require(_0x36d4[117])[_0x36d4[116]]({secret:config[_0x36d4[115]][_0x36d4[114]],handshake:true}));_0x20fexa[_0x36d4[112]](_0x36d4[119],function(_0x20fex5){_0x20fex5[_0x36d4[110]]=_0x20fex5[_0x36d4[120]][_0x36d4[110]]!==null?_0x20fex5[_0x36d4[120]][_0x36d4[110]][_0x36d4[110]]+_0x36d4[121]+_0x20fex5[_0x36d4[120]][_0x36d4[110]][_0x36d4[122]]:process[_0x36d4[124]][_0x36d4[123]];_0x20fex5[_0x36d4[125]]= new Date();_0x20fex5[_0x36d4[5]]=_0x20fex5[_0x36d4[120]][_0x36d4[126]][_0x36d4[5]];_0x20fex5[_0x36d4[127]]=_0x20fex5[_0x36d4[120]][_0x36d4[126]][_0x36d4[127]];_0x20fex5[_0x36d4[9]]=_0x20fex5[_0x36d4[120]][_0x36d4[126]][_0x36d4[9]];_0x20fex5[_0x36d4[128]]=_0x20fex5[_0x36d4[120]][_0x36d4[126]][_0x36d4[128]];_0x20fex5[_0x36d4[112]](_0x36d4[129],function(){onDisconnect(_0x20fex5);console[_0x36d4[108]](_0x36d4[130],_0x20fex5[_0x36d4[120]][_0x36d4[110]])});onConnect(_0x20fex5);console[_0x36d4[108]](_0x36d4[131],_0x20fex5[_0x36d4[120]][_0x36d4[110]])})}
\ No newline at end of file
index 468c7e4..3fb74da 100644 (file)
@@ -1,114 +1 @@
-'use strict';
-
-var fs = require('fs');
-var util = require('util');
-var path = require('path');
-var config = require('../../config/environment');
-var ChanSpyModel = require('../../models').ChanSpy;
-var User = require('../../models').User;
-var VoiceExtension = require('../../models').VoiceExtension;
-var sequelize = require('../../models').sequelize;
-
-function ChanSpy() {
-  ChanSpyModel.afterCreate(function(doc) {
-    createSpyExtensions(doc);
-  })
-  ChanSpyModel.afterUpdate(function(doc) {
-    deleteSpyExtensions(doc);
-    createSpyExtensions(doc);
-  })
-  ChanSpyModel.afterDelete(function(doc) {
-    deleteSpyExtensions(doc);
-  })
-}
-
-function deleteSpyExtensions(doc) {
-  return sequelize.transaction(function(t) {
-      return VoiceExtension
-        .destroy({
-          where: {
-            ChanSpyId: doc.id
-          },
-          transaction: t
-        });
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function createSpyExtensions(doc) {
-  return sequelize.transaction(function(t) {
-      return User
-        .scope('agent')
-        .findAll({
-          where: {
-            chanspy: true
-          }
-        })
-        .then(function(agents) {
-          var bulkSpies = [];
-          agents.forEach(function(elem) {
-            var spies = [];
-            var priority = 1;
-            if (doc.auth) {
-              spies.push({
-                context: 'from-sip',
-                exten: util.format('%s%s', doc.prefix, elem.name),
-                priority: priority,
-                app: 'Authenticate',
-                appdata: doc.password,
-                UserId: elem.id,
-                ChanSpyId: doc.id,
-                type: 'system'
-              });
-              priority++;
-            }
-            spies.push({
-              context: 'from-sip',
-              exten: util.format('%s%s', doc.prefix, elem.name),
-              priority: priority,
-              app: 'ChanSpy',
-              appdata: util.format('SIP/%s,%s', elem.name, doc.options),
-              UserId: elem.id,
-              ChanSpyId: doc.id,
-              type: 'system'
-            });
-            priority = 1;
-            if (doc.auth) {
-              spies.push({
-                context: 'from-sip',
-                exten: util.format('%s%s', doc.prefix, elem.internal),
-                priority: priority,
-                app: 'Authenticate',
-                appdata: doc.password,
-                UserId: elem.id,
-                ChanSpyId: doc.id,
-                type: 'system'
-              });
-              priority++;
-            }
-            spies.push({
-              context: 'from-sip',
-              exten: util.format('%s%s', doc.prefix, elem.internal),
-              priority: priority,
-              app: 'ChanSpy',
-              appdata: util.format('SIP/%s,%s', elem.name, doc.options),
-              UserId: elem.id,
-              ChanSpyId: doc.id,
-              type: 'system'
-            });
-            bulkSpies.push(VoiceExtension.bulkCreate(spies, {
-              transaction: t
-            }));
-          });
-          return bulkSpies;
-        })
-        .all();
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-module.exports = ChanSpy;
+var _0x3c5f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x43\x68\x61\x6E\x53\x70\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x61\x66\x74\x65\x72\x44\x65\x6C\x65\x74\x65","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x69\x64","\x64\x65\x73\x74\x72\x6F\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x61\x6C\x6C","\x61\x75\x74\x68","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x25\x73\x25\x73","\x70\x72\x65\x66\x69\x78","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x73\x79\x73\x74\x65\x6D","\x70\x75\x73\x68","\x53\x49\x50\x2F\x25\x73\x2C\x25\x73","\x6F\x70\x74\x69\x6F\x6E\x73","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x61\x67\x65\x6E\x74","\x73\x63\x6F\x70\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3c5f[0];var fs=require(_0x3c5f[1]);var util=require(_0x3c5f[2]);var path=require(_0x3c5f[3]);var config=require(_0x3c5f[4]);var ChanSpyModel=require(_0x3c5f[6])[_0x3c5f[5]];var User=require(_0x3c5f[6])[_0x3c5f[7]];var VoiceExtension=require(_0x3c5f[6])[_0x3c5f[8]];var sequelize=require(_0x3c5f[6])[_0x3c5f[9]];function ChanSpy(){ChanSpyModel[_0x3c5f[10]](function(_0x565bxa){createSpyExtensions(_0x565bxa)});ChanSpyModel[_0x3c5f[11]](function(_0x565bxa){deleteSpyExtensions(_0x565bxa);createSpyExtensions(_0x565bxa)});ChanSpyModel[_0x3c5f[12]](function(_0x565bxa){deleteSpyExtensions(_0x565bxa)})}function deleteSpyExtensions(_0x565bxa){return sequelize[_0x3c5f[17]](function(_0x565bxd){return VoiceExtension[_0x3c5f[16]]({where:{ChanSpyId:_0x565bxa[_0x3c5f[15]]},transaction:_0x565bxd})})[_0x3c5f[14]](function(_0x565bxc){console[_0x3c5f[13]](_0x565bxc)})}function createSpyExtensions(_0x565bxa){return sequelize[_0x3c5f[17]](function(_0x565bxd){return User[_0x3c5f[37]](_0x3c5f[36])[_0x3c5f[35]]({where:{chanspy:true}})[_0x3c5f[34]](function(_0x565bxf){var _0x565bx10=[];_0x565bxf[_0x3c5f[33]](function(_0x565bx11){var _0x565bx12=[];var _0x565bx13=1;if(_0x565bxa[_0x3c5f[19]]){_0x565bx12[_0x3c5f[28]]({context:_0x3c5f[20],exten:util[_0x3c5f[24]](_0x3c5f[21],_0x565bxa[_0x3c5f[22]],_0x565bx11[_0x3c5f[23]]),priority:_0x565bx13,app:_0x3c5f[25],appdata:_0x565bxa[_0x3c5f[26]],UserId:_0x565bx11[_0x3c5f[15]],ChanSpyId:_0x565bxa[_0x3c5f[15]],type:_0x3c5f[27]});_0x565bx13++};_0x565bx12[_0x3c5f[28]]({context:_0x3c5f[20],exten:util[_0x3c5f[24]](_0x3c5f[21],_0x565bxa[_0x3c5f[22]],_0x565bx11[_0x3c5f[23]]),priority:_0x565bx13,app:_0x3c5f[5],appdata:util[_0x3c5f[24]](_0x3c5f[29],_0x565bx11[_0x3c5f[23]],_0x565bxa[_0x3c5f[30]]),UserId:_0x565bx11[_0x3c5f[15]],ChanSpyId:_0x565bxa[_0x3c5f[15]],type:_0x3c5f[27]});_0x565bx13=1;if(_0x565bxa[_0x3c5f[19]]){_0x565bx12[_0x3c5f[28]]({context:_0x3c5f[20],exten:util[_0x3c5f[24]](_0x3c5f[21],_0x565bxa[_0x3c5f[22]],_0x565bx11[_0x3c5f[31]]),priority:_0x565bx13,app:_0x3c5f[25],appdata:_0x565bxa[_0x3c5f[26]],UserId:_0x565bx11[_0x3c5f[15]],ChanSpyId:_0x565bxa[_0x3c5f[15]],type:_0x3c5f[27]});_0x565bx13++};_0x565bx12[_0x3c5f[28]]({context:_0x3c5f[20],exten:util[_0x3c5f[24]](_0x3c5f[21],_0x565bxa[_0x3c5f[22]],_0x565bx11[_0x3c5f[31]]),priority:_0x565bx13,app:_0x3c5f[5],appdata:util[_0x3c5f[24]](_0x3c5f[29],_0x565bx11[_0x3c5f[23]],_0x565bxa[_0x3c5f[30]]),UserId:_0x565bx11[_0x3c5f[15]],ChanSpyId:_0x565bxa[_0x3c5f[15]],type:_0x3c5f[27]});_0x565bx10[_0x3c5f[28]](VoiceExtension[_0x3c5f[32]](_0x565bx12,{transaction:_0x565bxd}))});return _0x565bx10})[_0x3c5f[18]]()})[_0x3c5f[14]](function(_0x565bxc){console[_0x3c5f[13]](_0x565bxc)})}module[_0x3c5f[38]]=ChanSpy
\ No newline at end of file
index a36f4e6..bd0d6e3 100644 (file)
@@ -1,27 +1 @@
-'use strict';
-
-var _ = require('lodash');
-
-var ChatRoomModel = require('../../models').ChatRoom;
-var ChatVisitorModel = require('../../models').ChatVisitor;
-
-function ChatRoom() {
-  ChatRoomModel.afterUpdate(function(doc) {
-    if (doc.changed('status') && doc.status === 'CLOSED') {
-      if (doc.ChatVisitorId) {
-        return ChatVisitorModel
-          .findById(doc.ChatVisitorId)
-          .then(function(chatVisitor) {
-            if (chatVisitor) {
-              var updated = _.merge(chatVisitor, {
-                status: 'served'
-              });
-              return updated.save();
-            }
-          });
-      }
-    }
-  })
-}
-
-module.exports = ChatRoom;
+var _0x5cf9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x63\x68\x61\x6E\x67\x65\x64","\x43\x4C\x4F\x53\x45\x44","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x49\x64","\x45\x72\x72\x6F\x72\x3A","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x63\x6F\x6D\x70\x6C\x65\x74\x65\x52\x65\x61\x73\x6F\x6E","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x75\x70\x64\x61\x74\x65","\x74\x68\x65\x6E","\x69\x64","\x66\x69\x6E\x64","\x73\x65\x72\x76\x65\x64","\x6D\x65\x72\x67\x65","\x73\x61\x76\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5cf9[0];var _=require(_0x5cf9[1]);var moment=require(_0x5cf9[2]);var ChatRoomModel=require(_0x5cf9[4])[_0x5cf9[3]];var ChatVisitorModel=require(_0x5cf9[4])[_0x5cf9[5]];var ReportChatSessionModel=require(_0x5cf9[4])[_0x5cf9[6]];function ChatRoom(){ChatRoomModel[_0x5cf9[25]](function(_0x4f0ax7){if(_0x4f0ax7[_0x5cf9[8]](_0x5cf9[7])&&_0x4f0ax7[_0x5cf9[7]]===_0x5cf9[9]){if(_0x4f0ax7[_0x5cf9[10]]){return ChatVisitorModel[_0x5cf9[24]](_0x4f0ax7.ChatVisitorId)[_0x5cf9[18]](function(_0x4f0axa){if(_0x4f0axa){var _0x4f0axb=_[_0x5cf9[22]](_0x4f0axa,{status:_0x5cf9[21]});return _0x4f0axb[_0x5cf9[23]]()}})[_0x5cf9[18]](function(){return ReportChatSessionModel[_0x5cf9[20]]({where:{roomid:_0x4f0ax7[_0x5cf9[19]]}})})[_0x5cf9[18]](function(_0x4f0ax9){if(_0x4f0ax9){return _0x4f0ax9[_0x5cf9[17]]({complete:true,completeReason:_0x4f0ax7[_0x5cf9[14]],completeAt:moment()[_0x5cf9[16]](_0x5cf9[15])})}})[_0x5cf9[13]](function(_0x4f0ax8){console[_0x5cf9[12]](_0x5cf9[11],_0x4f0ax8)})}}})}module[_0x5cf9[26]]=ChatRoom
\ No newline at end of file
index 8e605bb..75d1522 100644 (file)
@@ -1,14 +1 @@
-'use strict';
-
-var Interval = require('./interval');
-var User = require('./user');
-var ChanSpy = require('./chanspy');
-var ChatRoom = require('./chatRoom');
-
-module.exports = function() {
-  // Tools Mangament
-  new Interval();
-  new User();
-  new ChanSpy();
-  new ChatRoom();
-}
+var _0x24ae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C","\x2E\x2F\x75\x73\x65\x72","\x2E\x2F\x63\x68\x61\x6E\x53\x70\x79","\x2E\x2F\x63\x68\x61\x74\x52\x6F\x6F\x6D","\x65\x78\x70\x6F\x72\x74\x73"];_0x24ae[0];var Interval=require(_0x24ae[1]);var User=require(_0x24ae[2]);var ChanSpy=require(_0x24ae[3]);var ChatRoom=require(_0x24ae[4]);module[_0x24ae[5]]=function(){ new Interval(); new User(); new ChanSpy(); new ChatRoom()}
\ No newline at end of file
index 223b7bf..0891212 100644 (file)
@@ -1,74 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var util = require('util');
-var IntervalModel = require('../../models').Interval;
-var VoiceExtension = require('../../models').VoiceExtension;
-var veUtil = require('../../utils/voice_extension');
-var sequelize = require('../../models').sequelize;
-var Applications = veUtil.Applications;
-
-function Interval() {
-  console.log('Interval Initialization..');
-  IntervalModel.afterUpdate(function(interval) {
-    updatevoiceExtension(interval);
-  })
-
-  IntervalModel.beforeDestroy(function(interval) {
-    if (interval.IntervalId !== null) {
-      updatevoiceExtension(interval);
-    }
-  })
-
-  IntervalModel.afterCreate(function(interval) {
-    if (interval.IntervalId !== null) {
-      updatevoiceExtension(interval);
-    }
-  })
-}
-
-function updatevoiceExtension(interval) {
-  var IntervalId = interval.IntervalId === null ? interval.id : interval.IntervalId;
-  return VoiceExtension
-    .findAll({
-      where: {
-        VoiceExtensionId: null
-      },
-      include: [{
-        model: VoiceExtension,
-        as: 'Applications',
-        where: {
-          IntervalId: IntervalId
-        },
-        attributes: ['app', 'interval', 'IntervalId', 'callerID', 'appdata', 'type']
-      }]
-    })
-    .then(function(voiceExtensions) {
-      voiceExtensions.forEach(function(elem) {
-        return sequelize.transaction(function(t) {
-            return veUtil.routeUpdate({
-              body: elem.dataValues,
-              params: {
-                id: elem.id
-              }
-            }, t);
-          })
-          .catch(sequelize.UniqueConstraintError, function(err) {
-            if (err.fields.PRIMARY) {
-              err.message = 'Extension/context combination already exist';
-              err.translatedMessage = 'MESSAGE_EXIST_ROUTE'
-            }
-            console.log(err);
-          })
-          .catch(function(err) {
-            console.log(err);
-          });
-      });
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-
-module.exports = Interval;
+var _0x25b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x75\x74\x69\x6C\x73\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E","\x6C\x6F\x67","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x62\x65\x66\x6F\x72\x65\x44\x65\x73\x74\x72\x6F\x79","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x69\x64","\x63\x61\x74\x63\x68","\x50\x52\x49\x4D\x41\x52\x59","\x66\x69\x65\x6C\x64\x73","\x6D\x65\x73\x73\x61\x67\x65","\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2F\x63\x6F\x6E\x74\x65\x78\x74\x20\x63\x6F\x6D\x62\x69\x6E\x61\x74\x69\x6F\x6E\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x65\x78\x69\x73\x74","\x74\x72\x61\x6E\x73\x6C\x61\x74\x65\x64\x4D\x65\x73\x73\x61\x67\x65","\x4D\x45\x53\x53\x41\x47\x45\x5F\x45\x58\x49\x53\x54\x5F\x52\x4F\x55\x54\x45","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x72\x6F\x75\x74\x65\x55\x70\x64\x61\x74\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x61\x70\x70","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x63\x61\x6C\x6C\x65\x72\x49\x44","\x61\x70\x70\x64\x61\x74\x61","\x74\x79\x70\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0x25b8[0];var _=require(_0x25b8[1]);var util=require(_0x25b8[2]);var IntervalModel=require(_0x25b8[4])[_0x25b8[3]];var VoiceExtension=require(_0x25b8[4])[_0x25b8[5]];var veUtil=require(_0x25b8[6]);var sequelize=require(_0x25b8[4])[_0x25b8[7]];var Applications=veUtil[_0x25b8[8]];function Interval(){console[_0x25b8[10]](_0x25b8[9]);IntervalModel[_0x25b8[11]](function(_0xa67cx9){updatevoiceExtension(_0xa67cx9)});IntervalModel[_0x25b8[13]](function(_0xa67cx9){if(_0xa67cx9[_0x25b8[12]]!==null){updatevoiceExtension(_0xa67cx9)}});IntervalModel[_0x25b8[14]](function(_0xa67cx9){if(_0xa67cx9[_0x25b8[12]]!==null){updatevoiceExtension(_0xa67cx9)}})}function updatevoiceExtension(_0xa67cx9){var _0xa67cxb=_0xa67cx9[_0x25b8[12]]===null?_0xa67cx9[_0x25b8[15]]:_0xa67cx9[_0x25b8[12]];return VoiceExtension[_0x25b8[33]]({where:{VoiceExtensionId:null},include:[{model:VoiceExtension,as:_0x25b8[8],where:{IntervalId:_0xa67cxb},attributes:[_0x25b8[28],_0x25b8[29],_0x25b8[12],_0x25b8[30],_0x25b8[31],_0x25b8[32]]}]})[_0x25b8[27]](function(_0xa67cxd){_0xa67cxd[_0x25b8[26]](function(_0xa67cxe){return sequelize[_0x25b8[25]](function(_0xa67cxf){return veUtil[_0x25b8[24]]({body:_0xa67cxe[_0x25b8[23]],params:{id:_0xa67cxe[_0x25b8[15]]}},_0xa67cxf)})[_0x25b8[16]](sequelize.UniqueConstraintError,function(_0xa67cxc){if(_0xa67cxc[_0x25b8[18]][_0x25b8[17]]){_0xa67cxc[_0x25b8[19]]=_0x25b8[20];_0xa67cxc[_0x25b8[21]]=_0x25b8[22]};console[_0x25b8[10]](_0xa67cxc)})[_0x25b8[16]](function(_0xa67cxc){console[_0x25b8[10]](_0xa67cxc)})})})[_0x25b8[16]](function(_0xa67cxc){console[_0x25b8[10]](_0xa67cxc)})}module[_0x25b8[34]]=Interval
\ No newline at end of file
index a55d7c8..ed39f80 100644 (file)
@@ -1,193 +1 @@
-'use strict';
-
-var fs = require('fs');
-var util = require('util');
-var path = require('path');
-var config = require('../../config/environment');
-var UserModel = require('../../models').User;
-var VoiceExtension = require('../../models').VoiceExtension;
-var ChanSpy = require('../../models').ChanSpy;
-var sequelize = require('../../models').sequelize;
-
-function User() {
-  UserModel.afterCreate(function(doc) {
-    createCallerID(doc);
-    createExtension(doc);
-    if (doc.chanspy) {
-      createChanspy(doc);
-    }
-  })
-  UserModel.afterUpdate(function(doc) {
-    updateExtension(doc);
-    createCallerID(doc);
-    if ((doc.chanspy && doc.changed('chanspy'))) {
-      createChanspy(doc);
-    } else if (doc.chanspy && !doc.changed('chanspy') && doc.changed('name')) {
-      deleteChanSpy(doc);
-      createChanspy(doc);
-    } else if (!doc.chanspy && doc.changed('chanspy')) {
-      deleteChanSpy(doc);
-    }
-  })
-}
-
-function createChanspy(doc) {
-  return sequelize.transaction(function(t) {
-      return ChanSpy
-        .findAll()
-        .then(function(chanspy) {
-          var bulkSpies = [];
-          chanspy.forEach(function(elem) {
-            var spies = [];
-            var priority = 1;
-            if (elem.auth) {
-              spies.push({
-                context: 'from-sip',
-                exten: util.format('%s%s', elem.prefix, doc.name),
-                priority: priority,
-                app: 'Authenticate',
-                appdata: elem.password,
-                UserId: doc.id,
-                ChanSpyId: elem.id,
-                type: 'system'
-              });
-              priority++;
-            }
-            spies.push({
-              context: 'from-sip',
-              exten: util.format('%s%s', elem.prefix, doc.name),
-              priority: priority,
-              app: 'ChanSpy',
-              appdata: util.format('SIP/%s,%s', doc.name, elem.options),
-              UserId: doc.id,
-              ChanSpyId: elem.id,
-              type: 'system'
-            });
-            priority = 1;
-            if (elem.auth) {
-              spies.push({
-                context: 'from-sip',
-                exten: util.format('%s%s', elem.prefix, doc.internal),
-                priority: priority,
-                app: 'Authenticate',
-                appdata: elem.password,
-                UserId: doc.id,
-                ChanSpyId: elem.id,
-                type: 'system'
-              });
-              priority++;
-            }
-            spies.push({
-              context: 'from-sip',
-              exten: util.format('%s%s', elem.prefix, doc.internal),
-              priority: priority,
-              app: 'ChanSpy',
-              appdata: util.format('SIP/%s,%s', doc.name, elem.options),
-              UserId: doc.id,
-              ChanSpyId: elem.id,
-              type: 'system'
-            });
-            bulkSpies.push(VoiceExtension.bulkCreate(spies, {
-              transaction: t
-            }));
-          });
-          return bulkSpies;
-        })
-        .all();
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function deleteChanSpy(doc) {
-  return sequelize.transaction(function(t) {
-      return VoiceExtension
-        .destroy({
-          where: {
-            UserId: doc.id,
-            ChanSpyId: {
-              $ne: null
-            }
-          },
-          transaction: t
-        });
-    })
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-function createCallerID(doc) {
-  // devo aspettare che ci siano entrambi i campi
-  if (doc.fullname && doc.internal) {
-    doc.callerid = util.format('"%s" <%s>', doc.fullname, doc.internal);
-    doc.save();
-  }
-
-  return;
-}
-
-function updateExtension(doc) {
-  if (doc.changed('name')) {
-    doc
-      .getUserExtensions()
-      .then(function(userExtensions) {
-        userExtensions.forEach(function(elem) {
-          elem.exten = (elem.exten === doc._previousDataValues.internal) ? doc.internal : doc.name;
-          elem.appdata = 'SIP/' + doc.name;
-          elem.save();
-        })
-      })
-      .catch(function(err) {
-        console.log(err);
-      });
-  }
-}
-
-
-function createExtension(doc) {
-  if (doc.internal) {
-    var userDials = [{
-      context: 'from-sip',
-      exten: doc.internal,
-      priority: 1,
-      app: 'Set',
-      appdata: 'CDR(type)=internal',
-      UserId: doc.id,
-      type: 'system'
-    }, {
-      context: 'from-sip',
-      exten: doc.internal,
-      priority: 2,
-      app: 'Dial',
-      appdata: 'SIP/' + doc.name,
-      UserId: doc.id,
-      type: 'system'
-    }, {
-      context: 'from-sip',
-      exten: doc.internal,
-      priority: 1,
-      app: 'Set',
-      appdata: 'CDR(type)=internal',
-      UserId: doc.id,
-      type: 'system'
-    }, {
-      context: 'from-sip',
-      exten: doc.name,
-      priority: 2,
-      app: 'Dial',
-      appdata: 'SIP/' + doc.name,
-      UserId: doc.id,
-      type: 'system'
-    }];
-
-    return VoiceExtension
-      .bulkCreate(userDials)
-      .catch(function(err) {
-        console.log(err);
-      });
-  }
-}
-
-module.exports = User;
+var _0x58d8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x43\x68\x61\x6E\x53\x70\x79","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x63\x68\x61\x6E\x73\x70\x79","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x63\x68\x61\x6E\x67\x65\x64","\x6E\x61\x6D\x65","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x61\x6C\x6C","\x61\x75\x74\x68","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x25\x73\x25\x73","\x70\x72\x65\x66\x69\x78","\x66\x6F\x72\x6D\x61\x74","\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x69\x64","\x73\x79\x73\x74\x65\x6D","\x70\x75\x73\x68","\x53\x49\x50\x2F\x25\x73\x2C\x25\x73","\x6F\x70\x74\x69\x6F\x6E\x73","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x66\x6F\x72\x45\x61\x63\x68","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x64\x65\x73\x74\x72\x6F\x79","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x73\x61\x76\x65","\x65\x78\x74\x65\x6E","\x5F\x70\x72\x65\x76\x69\x6F\x75\x73\x44\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x61\x70\x70\x64\x61\x74\x61","\x53\x49\x50\x2F","\x67\x65\x74\x55\x73\x65\x72\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x53\x65\x74","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x44\x69\x61\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0x58d8[0];var fs=require(_0x58d8[1]);var util=require(_0x58d8[2]);var path=require(_0x58d8[3]);var config=require(_0x58d8[4]);var UserModel=require(_0x58d8[6])[_0x58d8[5]];var VoiceExtension=require(_0x58d8[6])[_0x58d8[7]];var ChanSpy=require(_0x58d8[6])[_0x58d8[8]];var sequelize=require(_0x58d8[6])[_0x58d8[9]];function User(){UserModel[_0x58d8[11]](function(_0xcc4exa){createCallerID(_0xcc4exa);createExtension(_0xcc4exa);if(_0xcc4exa[_0x58d8[10]]){createChanspy(_0xcc4exa)}});UserModel[_0x58d8[14]](function(_0xcc4exa){updateExtension(_0xcc4exa);createCallerID(_0xcc4exa);if((_0xcc4exa[_0x58d8[10]]&&_0xcc4exa[_0x58d8[12]](_0x58d8[10]))){createChanspy(_0xcc4exa)}else {if(_0xcc4exa[_0x58d8[10]]&&!_0xcc4exa[_0x58d8[12]](_0x58d8[10])&&_0xcc4exa[_0x58d8[12]](_0x58d8[13])){deleteChanSpy(_0xcc4exa);createChanspy(_0xcc4exa)}else {if(!_0xcc4exa[_0x58d8[10]]&&_0xcc4exa[_0x58d8[12]](_0x58d8[10])){deleteChanSpy(_0xcc4exa)}}}})}function createChanspy(_0xcc4exa){return sequelize[_0x58d8[35]](function(_0xcc4exd){return ChanSpy[_0x58d8[34]]()[_0x58d8[33]](function(_0xcc4exe){var _0xcc4exf=[];_0xcc4exe[_0x58d8[32]](function(_0xcc4ex10){var _0xcc4ex11=[];var _0xcc4ex12=1;if(_0xcc4ex10[_0x58d8[18]]){_0xcc4ex11[_0x58d8[27]]({context:_0x58d8[19],exten:util[_0x58d8[22]](_0x58d8[20],_0xcc4ex10[_0x58d8[21]],_0xcc4exa[_0x58d8[13]]),priority:_0xcc4ex12,app:_0x58d8[23],appdata:_0xcc4ex10[_0x58d8[24]],UserId:_0xcc4exa[_0x58d8[25]],ChanSpyId:_0xcc4ex10[_0x58d8[25]],type:_0x58d8[26]});_0xcc4ex12++};_0xcc4ex11[_0x58d8[27]]({context:_0x58d8[19],exten:util[_0x58d8[22]](_0x58d8[20],_0xcc4ex10[_0x58d8[21]],_0xcc4exa[_0x58d8[13]]),priority:_0xcc4ex12,app:_0x58d8[8],appdata:util[_0x58d8[22]](_0x58d8[28],_0xcc4exa[_0x58d8[13]],_0xcc4ex10[_0x58d8[29]]),UserId:_0xcc4exa[_0x58d8[25]],ChanSpyId:_0xcc4ex10[_0x58d8[25]],type:_0x58d8[26]});_0xcc4ex12=1;if(_0xcc4ex10[_0x58d8[18]]){_0xcc4ex11[_0x58d8[27]]({context:_0x58d8[19],exten:util[_0x58d8[22]](_0x58d8[20],_0xcc4ex10[_0x58d8[21]],_0xcc4exa[_0x58d8[30]]),priority:_0xcc4ex12,app:_0x58d8[23],appdata:_0xcc4ex10[_0x58d8[24]],UserId:_0xcc4exa[_0x58d8[25]],ChanSpyId:_0xcc4ex10[_0x58d8[25]],type:_0x58d8[26]});_0xcc4ex12++};_0xcc4ex11[_0x58d8[27]]({context:_0x58d8[19],exten:util[_0x58d8[22]](_0x58d8[20],_0xcc4ex10[_0x58d8[21]],_0xcc4exa[_0x58d8[30]]),priority:_0xcc4ex12,app:_0x58d8[8],appdata:util[_0x58d8[22]](_0x58d8[28],_0xcc4exa[_0x58d8[13]],_0xcc4ex10[_0x58d8[29]]),UserId:_0xcc4exa[_0x58d8[25]],ChanSpyId:_0xcc4ex10[_0x58d8[25]],type:_0x58d8[26]});_0xcc4exf[_0x58d8[27]](VoiceExtension[_0x58d8[31]](_0xcc4ex11,{transaction:_0xcc4exd}))});return _0xcc4exf})[_0x58d8[17]]()})[_0x58d8[16]](function(_0xcc4exc){console[_0x58d8[15]](_0xcc4exc)})}function deleteChanSpy(_0xcc4exa){return sequelize[_0x58d8[35]](function(_0xcc4exd){return VoiceExtension[_0x58d8[36]]({where:{UserId:_0xcc4exa[_0x58d8[25]],ChanSpyId:{$ne:null}},transaction:_0xcc4exd})})[_0x58d8[16]](function(_0xcc4exc){console[_0x58d8[15]](_0xcc4exc)})}function createCallerID(_0xcc4exa){if(_0xcc4exa[_0x58d8[37]]&&_0xcc4exa[_0x58d8[30]]){_0xcc4exa[_0x58d8[38]]=util[_0x58d8[22]](_0x58d8[39],_0xcc4exa[_0x58d8[37]],_0xcc4exa[_0x58d8[30]]);_0xcc4exa[_0x58d8[40]]()};return}function updateExtension(_0xcc4exa){if(_0xcc4exa[_0x58d8[12]](_0x58d8[13])){_0xcc4exa[_0x58d8[45]]()[_0x58d8[33]](function(_0xcc4ex16){_0xcc4ex16[_0x58d8[32]](function(_0xcc4ex10){_0xcc4ex10[_0x58d8[41]]=(_0xcc4ex10[_0x58d8[41]]===_0xcc4exa[_0x58d8[42]][_0x58d8[30]])?_0xcc4exa[_0x58d8[30]]:_0xcc4exa[_0x58d8[13]];_0xcc4ex10[_0x58d8[43]]=_0x58d8[44]+_0xcc4exa[_0x58d8[13]];_0xcc4ex10[_0x58d8[40]]()})})[_0x58d8[16]](function(_0xcc4exc){console[_0x58d8[15]](_0xcc4exc)})}}function createExtension(_0xcc4exa){if(_0xcc4exa[_0x58d8[30]]){var _0xcc4ex18=[{context:_0x58d8[19],exten:_0xcc4exa[_0x58d8[30]],priority:1,app:_0x58d8[46],appdata:_0x58d8[47],UserId:_0xcc4exa[_0x58d8[25]],type:_0x58d8[26]},{context:_0x58d8[19],exten:_0xcc4exa[_0x58d8[30]],priority:2,app:_0x58d8[48],appdata:_0x58d8[44]+_0xcc4exa[_0x58d8[13]],UserId:_0xcc4exa[_0x58d8[25]],type:_0x58d8[26]},{context:_0x58d8[19],exten:_0xcc4exa[_0x58d8[30]],priority:1,app:_0x58d8[46],appdata:_0x58d8[47],UserId:_0xcc4exa[_0x58d8[25]],type:_0x58d8[26]},{context:_0x58d8[19],exten:_0xcc4exa[_0x58d8[13]],priority:2,app:_0x58d8[48],appdata:_0x58d8[44]+_0xcc4exa[_0x58d8[13]],UserId:_0xcc4exa[_0x58d8[25]],type:_0x58d8[26]}];return VoiceExtension[_0x58d8[31]](_0xcc4ex18)[_0x58d8[16]](function(_0xcc4exc){console[_0x58d8[15]](_0xcc4exc)})}}module[_0x58d8[49]]=User
\ No newline at end of file
index 72fc1e9..352679d 100644 (file)
@@ -1,76 +1 @@
-var _ = require('lodash');
-var Mustache = require('mustache');
-
-var sequelize = require('../../models').sequelize;
-var ChatEnquiry = require('../../models').ChatEnquiry;
-var ChatWebsite = require('../../models').ChatWebsite;
-var MailMessage = require('../../models').MailMessage;
-var MailServerOut = require('../../models').MailServerOut;
-
-function Chat() {
-  console.log('Trigger Chat Initialization...');
-
-  ChatEnquiry.afterCreate(function(chatEnquiry, options) {
-    var _chatEnquiry = chatEnquiry;
-    var _chatWebsite;
-    var _mailServerOut;
-    var _offlineTemplate;
-
-    return ChatWebsite
-      .findById(chatEnquiry.ChatWebsiteId)
-      .then(function(chatWebsite) {
-        _chatWebsite = chatWebsite;
-        _chatEnquiry.chatWebsite = _chatWebsite.name;
-
-        if (_chatWebsite.enquiry_forwarding && _chatWebsite.enquiry_forwarding_address) {
-          return _chatWebsite
-            .getOfflineTemplate();
-        } else {
-          // throw new Error({
-          //   message: 'chatWebsite can\'t send offline messages via mail'
-          // });
-          return null;
-        }
-      })
-      .then(function(offlineTemplate) {
-        _offlineTemplate = offlineTemplate;
-        if (_offlineTemplate) {
-          _offlineTemplate.html = Mustache.render(_offlineTemplate.html, _chatEnquiry);
-          _offlineTemplate.subject = Mustache.render(_offlineTemplate.subject, _chatEnquiry);
-
-          return MailServerOut
-            .findOne({
-              where: {
-                service: true
-              }
-            });
-
-        } else {
-          // throw new Error({
-          //   message: 'offlineTemplate not found. ChatWebsite: ' + _chatWebsite.name
-          // });
-          return null;
-        }
-
-
-      })
-      .then(function(mailServerOut) {
-        _mailServerOut = mailServerOut;
-
-        if (_mailServerOut) {
-          // throw new Error('Motion Service SMTP not configured!');
-          return MailMessage
-            .create({
-              from: [_mailServerOut.username],
-              to: [_chatWebsite.enquiry_forwarding_address],
-              subject: _offlineTemplate.subject,
-              html: _offlineTemplate.html
-            }, {
-              transaction: options ? options.transaction : null
-            });
-        }
-      });
-  });
-}
-
-module.exports = Chat;
+var _0x401e=["\x6C\x6F\x64\x61\x73\x68","\x6D\x75\x73\x74\x61\x63\x68\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x54\x72\x69\x67\x67\x65\x72\x20\x43\x68\x61\x74\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x65\x6E\x71\x75\x69\x72\x79\x5F\x66\x6F\x72\x77\x61\x72\x64\x69\x6E\x67\x5F\x61\x64\x64\x72\x65\x73\x73","\x73\x75\x62\x6A\x65\x63\x74","\x68\x74\x6D\x6C","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x72\x65\x6E\x64\x65\x72","\x66\x69\x6E\x64\x4F\x6E\x65","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x6E\x61\x6D\x65","\x65\x6E\x71\x75\x69\x72\x79\x5F\x66\x6F\x72\x77\x61\x72\x64\x69\x6E\x67","\x67\x65\x74\x4F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x66\x69\x6E\x64\x42\x79\x49\x64","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0x401e[0]);var Mustache=require(_0x401e[1]);var sequelize=require(_0x401e[3])[_0x401e[2]];var ChatEnquiry=require(_0x401e[3])[_0x401e[4]];var ChatWebsite=require(_0x401e[3])[_0x401e[5]];var MailMessage=require(_0x401e[3])[_0x401e[6]];var MailServerOut=require(_0x401e[3])[_0x401e[7]];function Chat(){console[_0x401e[9]](_0x401e[8]);ChatEnquiry[_0x401e[24]](function(_0x4a1ex9,_0x4a1exa){var _0x4a1exb=_0x4a1ex9;var _0x4a1exc;var _0x4a1exd;var _0x4a1exe;return ChatWebsite[_0x401e[23]](_0x4a1ex9.ChatWebsiteId)[_0x401e[16]](function(_0x4a1ex11){_0x4a1exc=_0x4a1ex11;_0x4a1exb[_0x401e[19]]=_0x4a1exc[_0x401e[20]];if(_0x4a1exc[_0x401e[21]]&&_0x4a1exc[_0x401e[11]]){return _0x4a1exc[_0x401e[22]]()}else {return null}})[_0x401e[16]](function(_0x4a1ex10){_0x4a1exe=_0x4a1ex10;if(_0x4a1exe){_0x4a1exe[_0x401e[13]]=Mustache[_0x401e[17]](_0x4a1exe[_0x401e[13]],_0x4a1exb);_0x4a1exe[_0x401e[12]]=Mustache[_0x401e[17]](_0x4a1exe[_0x401e[12]],_0x4a1exb);return MailServerOut[_0x401e[18]]({where:{service:true}})}else {return null}})[_0x401e[16]](function(_0x4a1exf){_0x4a1exd=_0x4a1exf;if(_0x4a1exd){return MailMessage[_0x401e[15]]({from:[_0x4a1exd[_0x401e[10]]],to:[_0x4a1exc[_0x401e[11]]],subject:_0x4a1exe[_0x401e[12]],html:_0x4a1exe[_0x401e[13]]},{transaction:_0x4a1exa?_0x4a1exa[_0x401e[14]]:null})}})})}module[_0x401e[25]]=Chat
\ No newline at end of file
index ae02e6e..60d9312 100644 (file)
@@ -1,25 +1 @@
-var _ = require('lodash');
-
-function Cm() {
-  console.log('Trigger Cm Initialization...');
-}
-
-Cm.prototype.manageContact = function(doc, channel) {
-  manageContact(doc, channel);
-}
-
-function manageContact(doc, channel) {
-  var Contact = require('../../models').Contact;
-  var ContactPhone = require('../../models').ContactPhone;
-  var ContactEmail = require('../../models').ContactEmail;
-  var ReportIntegration = require('../../models').ReportIntegration;
-  delete doc.id
-  doc.integration = 'contactmanager';
-  doc.eventChannel = channel;
-  ReportIntegration.create(doc)
-    .catch(function(err) {
-      console.log(err);
-    });
-}
-
-module.exports = Cm;
+var _0x25b3=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x43\x6D\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x6D\x61\x6E\x61\x67\x65\x43\x6F\x6E\x74\x61\x63\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74\x50\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x69\x64","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72","\x65\x76\x65\x6E\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x63\x61\x74\x63\x68","\x63\x72\x65\x61\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0x25b3[0]);function Cm(){console[_0x25b3[2]](_0x25b3[1])}Cm[_0x25b3[4]][_0x25b3[3]]=function(_0xf52bx3,_0xf52bx4){manageContact(_0xf52bx3,_0xf52bx4)};function manageContact(_0xf52bx3,_0xf52bx4){var _0xf52bx6=require(_0x25b3[6])[_0x25b3[5]];var _0xf52bx7=require(_0x25b3[6])[_0x25b3[7]];var _0xf52bx8=require(_0x25b3[6])[_0x25b3[8]];var _0xf52bx9=require(_0x25b3[6])[_0x25b3[9]];delete _0xf52bx3[_0x25b3[10]];_0xf52bx3[_0x25b3[11]]=_0x25b3[12];_0xf52bx3[_0x25b3[13]]=_0xf52bx4;_0xf52bx9[_0x25b3[15]](_0xf52bx3)[_0x25b3[14]](function(_0xf52bxa){console[_0x25b3[2]](_0xf52bxa)})}module[_0x25b3[16]]=Cm
\ No newline at end of file
index 947b5f0..83f10b2 100644 (file)
@@ -1,103 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var Util = require('./util');
-var Voice = require('./voice');
-var Mail = require('./mail');
-var Chat = require('./chat');
-var Cm = require('./cm');
-var Integration = require('../integrations');
-var Trigger = require('../../models').Trigger;
-var ReportAgent = require('../../models').ReportAgent;
-var MailMessage = require('../../models').MailMessage;
-
-module.exports = function(ami) {
-
-  var util = new Util();
-  var voice = new Voice();
-  var chat = new Chat();
-  var mail = new Mail();
-  var cm = new Cm();
-  var integration = new Integration(ami);
-
-  Trigger
-    .scope('all')
-    .findAll()
-    .then(function(triggers) {
-      synchTriggers(triggers);
-      console.log('Triggers are ', triggers.length);
-      ReportAgent.afterCreate(function(doc) {
-        var actions = util.getActionsByTriggers(doc, _.filter(triggers, {
-          channel: 'voice'
-        }));
-        console.log('After agent create, Actions are ', actions.length);
-        execActions(actions, doc, 'voice', util, voice, mail, cm, integration);
-      })
-      ReportAgent.afterUpdate(function(doc) {
-        var actions = util.getActionsByTriggers(doc, _.filter(triggers, {
-          channel: 'voice'
-        }));
-        console.log('After agent update, Actions are ', actions.length);
-        execActions(actions, doc, 'voice', util, voice, mail, cm, integration);
-      })
-      MailMessage.afterCreate(function(doc) {
-        if (doc.status === 'RECEIVED') {
-          var actions = util.getActionsByTriggers(doc, _.filter(triggers, {
-            channel: 'mail'
-          }));
-          execActions(actions, doc, 'mail', util, voice, mail, cm, integration);
-        }
-      })
-    })
-    .catch(function(err) {
-      console.error(err);
-    });
-}
-
-
-function execActions(actions, doc, channel, util, voice, mail, cm, integration) {
-  actions.forEach(function(action) {
-    console.log('Executing action "' + action.action + '"');
-    switch (action.action) {
-      case 'contactManager':
-        cm.manageContact(doc.dataValues, channel);
-        break;
-      case 'template':
-        mail.sendTemplate(action);
-        break;
-      case 'integration':
-        integration.manageEvent(action, doc, channel);
-        break;
-      default:
-    }
-  });
-}
-
-function synchTriggers(triggers) {
-  Trigger.afterCreate(function(doc) {
-    updateCollection(triggers, doc);
-    console.log('After create, Triggers are ', triggers.length);
-  });
-  Trigger.afterUpdate(function(doc) {
-    updateCollection(triggers, doc);
-    console.log('After update, Triggers are ', triggers.length);
-  });
-  Trigger.afterDestroy(function(doc) {
-    _.remove(triggers, {
-      id: doc.id
-    });
-    console.log('After destroy, Triggers are ', triggers.length);
-  });
-}
-
-function updateCollection(collection, doc) {
-  var oldItem = _.find(collection, {
-    id: doc.id
-  });
-  var index = collection.indexOf(oldItem);
-  if (oldItem) {
-    _.merge(collection[index], doc);
-  } else {
-    collection.unshift(doc);
-  }
-}
+var _0x89a5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x75\x74\x69\x6C","\x2E\x2F\x76\x6F\x69\x63\x65","\x2E\x2F\x6D\x61\x69\x6C","\x2E\x2F\x63\x68\x61\x74","\x2E\x2F\x63\x6D","\x2E\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x54\x72\x69\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x65\x78\x70\x6F\x72\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x54\x72\x69\x67\x67\x65\x72\x73\x20\x61\x72\x65\x20","\x6C\x65\x6E\x67\x74\x68","\x6C\x6F\x67","\x76\x6F\x69\x63\x65","\x66\x69\x6C\x74\x65\x72","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73\x42\x79\x54\x72\x69\x67\x67\x65\x72\x73","\x41\x66\x74\x65\x72\x20\x61\x67\x65\x6E\x74\x20\x63\x72\x65\x61\x74\x65\x2C\x20\x41\x63\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x41\x66\x74\x65\x72\x20\x61\x67\x65\x6E\x74\x20\x75\x70\x64\x61\x74\x65\x2C\x20\x41\x63\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x55\x70\x64\x61\x74\x65","\x73\x74\x61\x74\x75\x73","\x52\x45\x43\x45\x49\x56\x45\x44","\x6D\x61\x69\x6C","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x61\x6C\x6C","\x73\x63\x6F\x70\x65","\x45\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x61\x63\x74\x69\x6F\x6E\x20\x22","\x61\x63\x74\x69\x6F\x6E","\x22","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x6D\x61\x6E\x61\x67\x65\x43\x6F\x6E\x74\x61\x63\x74","\x63\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x72","\x73\x65\x6E\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x74\x65\x6D\x70\x6C\x61\x74\x65","\x6D\x61\x6E\x61\x67\x65\x45\x76\x65\x6E\x74","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x66\x6F\x72\x45\x61\x63\x68","\x41\x66\x74\x65\x72\x20\x63\x72\x65\x61\x74\x65\x2C\x20\x54\x72\x69\x67\x67\x65\x72\x73\x20\x61\x72\x65\x20","\x41\x66\x74\x65\x72\x20\x75\x70\x64\x61\x74\x65\x2C\x20\x54\x72\x69\x67\x67\x65\x72\x73\x20\x61\x72\x65\x20","\x69\x64","\x72\x65\x6D\x6F\x76\x65","\x41\x66\x74\x65\x72\x20\x64\x65\x73\x74\x72\x6F\x79\x2C\x20\x54\x72\x69\x67\x67\x65\x72\x73\x20\x61\x72\x65\x20","\x61\x66\x74\x65\x72\x44\x65\x73\x74\x72\x6F\x79","\x66\x69\x6E\x64","\x69\x6E\x64\x65\x78\x4F\x66","\x6D\x65\x72\x67\x65","\x75\x6E\x73\x68\x69\x66\x74"];_0x89a5[0];var _=require(_0x89a5[1]);var Util=require(_0x89a5[2]);var Voice=require(_0x89a5[3]);var Mail=require(_0x89a5[4]);var Chat=require(_0x89a5[5]);var Cm=require(_0x89a5[6]);var Integration=require(_0x89a5[7]);var Trigger=require(_0x89a5[9])[_0x89a5[8]];var ReportAgent=require(_0x89a5[9])[_0x89a5[10]];var MailMessage=require(_0x89a5[9])[_0x89a5[11]];module[_0x89a5[12]]=function(_0xf214xb){var _0xf214xc= new Util();var _0xf214xd= new Voice();var _0xf214xe= new Chat();var _0xf214xf= new Mail();var _0xf214x10= new Cm();var _0xf214x11= new Integration(_0xf214xb);Trigger[_0x89a5[31]](_0x89a5[30])[_0x89a5[29]]()[_0x89a5[28]](function(_0xf214x13){synchTriggers(_0xf214x13);console[_0x89a5[17]](_0x89a5[15],_0xf214x13[_0x89a5[16]]);ReportAgent[_0x89a5[22]](function(_0xf214x14){var _0xf214x15=_0xf214xc[_0x89a5[20]](_0xf214x14,_[_0x89a5[19]](_0xf214x13,{channel:_0x89a5[18]}));console[_0x89a5[17]](_0x89a5[21],_0xf214x15[_0x89a5[16]]);execActions(_0xf214x15,_0xf214x14,_0x89a5[18],_0xf214xc,_0xf214xd,_0xf214xf,_0xf214x10,_0xf214x11)});ReportAgent[_0x89a5[24]](function(_0xf214x14){var _0xf214x15=_0xf214xc[_0x89a5[20]](_0xf214x14,_[_0x89a5[19]](_0xf214x13,{channel:_0x89a5[18]}));console[_0x89a5[17]](_0x89a5[23],_0xf214x15[_0x89a5[16]]);execActions(_0xf214x15,_0xf214x14,_0x89a5[18],_0xf214xc,_0xf214xd,_0xf214xf,_0xf214x10,_0xf214x11)});MailMessage[_0x89a5[22]](function(_0xf214x14){if(_0xf214x14[_0x89a5[25]]===_0x89a5[26]){var _0xf214x15=_0xf214xc[_0x89a5[20]](_0xf214x14,_[_0x89a5[19]](_0xf214x13,{channel:_0x89a5[27]}));execActions(_0xf214x15,_0xf214x14,_0x89a5[27],_0xf214xc,_0xf214xd,_0xf214xf,_0xf214x10,_0xf214x11)}})})[_0x89a5[14]](function(_0xf214x12){console[_0x89a5[13]](_0xf214x12)})};function execActions(_0xf214x15,_0xf214x14,_0xf214x17,_0xf214xc,_0xf214xd,_0xf214xf,_0xf214x10,_0xf214x11){_0xf214x15[_0x89a5[42]](function(_0xf214x18){console[_0x89a5[17]](_0x89a5[32]+_0xf214x18[_0x89a5[33]]+_0x89a5[34]);switch(_0xf214x18[_0x89a5[33]]){case _0x89a5[37]:_0xf214x10[_0x89a5[36]](_0xf214x14[_0x89a5[35]],_0xf214x17);break;case _0x89a5[39]:_0xf214xf[_0x89a5[38]](_0xf214x18);break;case _0x89a5[41]:_0xf214x11[_0x89a5[40]](_0xf214x18,_0xf214x14,_0xf214x17);break;default:}})}function synchTriggers(_0xf214x13){Trigger[_0x89a5[22]](function(_0xf214x14){updateCollection(_0xf214x13,_0xf214x14);console[_0x89a5[17]](_0x89a5[43],_0xf214x13[_0x89a5[16]])});Trigger[_0x89a5[24]](function(_0xf214x14){updateCollection(_0xf214x13,_0xf214x14);console[_0x89a5[17]](_0x89a5[44],_0xf214x13[_0x89a5[16]])});Trigger[_0x89a5[48]](function(_0xf214x14){_[_0x89a5[46]](_0xf214x13,{id:_0xf214x14[_0x89a5[45]]});console[_0x89a5[17]](_0x89a5[47],_0xf214x13[_0x89a5[16]])})}function updateCollection(_0xf214x1b,_0xf214x14){var _0xf214x1c=_[_0x89a5[49]](_0xf214x1b,{id:_0xf214x14[_0x89a5[45]]});var _0xf214x1d=_0xf214x1b[_0x89a5[50]](_0xf214x1c);if(_0xf214x1c){_[_0x89a5[51]](_0xf214x1b[_0xf214x1d],_0xf214x14)}else {_0xf214x1b[_0x89a5[52]](_0xf214x14)}}
\ No newline at end of file
index 21afef4..10befe1 100644 (file)
@@ -1,49 +1 @@
-var _ = require('lodash');
-
-function Mail() {
-  console.log('Trigger Mail Initialization...');
-}
-
-Mail.prototype.sendTemplate = function(templateId) {
-  sendTemplate(templateId);
-}
-
-function sendTemplate(action) {
-  var MailTemplate = require('../../models').MailTemplate;
-  var MailMessage = require('../../models').MailMessage;
-  var MailServerOut = require('../../models').MailServerOut;
-  var _smtp;
-  return MailServerOut
-    .findOne({
-      where: {
-        service: true
-      }
-    })
-    .then(function(smtp) {
-      _smtp = smtp;
-      return MailTemplate
-        .findById(Number(action.data1), {
-          include: [{
-            all: true
-          }]
-        });
-    })
-    .then(function(mailTemplate) {
-      // console.log('found template');
-      return MailMessage
-        .create({
-          status: 'SENDING',
-          subject: mailTemplate.subject,
-          from: [_smtp.username],
-          to: action.data3.split(';'),
-          cc: action.data4 ? action.data4.split(';') : [],
-          html: mailTemplate.html || null,
-          text: mailTemplate.text || null
-        })
-        .catch(function(err) {
-          console.log(err);
-        });
-    });
-}
-
-module.exports = Mail;
+var _0x564b=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x4D\x61\x69\x6C\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x73\x65\x6E\x64\x54\x65\x6D\x70\x6C\x61\x74\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x4D\x61\x69\x6C\x54\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x63\x61\x74\x63\x68","\x53\x45\x4E\x44\x49\x4E\x47","\x73\x75\x62\x6A\x65\x63\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x3B","\x73\x70\x6C\x69\x74","\x64\x61\x74\x61\x33","\x64\x61\x74\x61\x34","\x68\x74\x6D\x6C","\x74\x65\x78\x74","\x63\x72\x65\x61\x74\x65","\x74\x68\x65\x6E","\x64\x61\x74\x61\x31","\x66\x69\x6E\x64\x42\x79\x49\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0x564b[0]);function Mail(){console[_0x564b[2]](_0x564b[1])}Mail[_0x564b[4]][_0x564b[3]]=function(_0x6636x3){sendTemplate(_0x6636x3)};function sendTemplate(_0x6636x5){var _0x6636x6=require(_0x564b[6])[_0x564b[5]];var _0x6636x7=require(_0x564b[6])[_0x564b[7]];var _0x6636x8=require(_0x564b[6])[_0x564b[8]];var _0x6636x9;return _0x6636x8[_0x564b[23]]({where:{service:true}})[_0x564b[20]](function(_0x6636xc){_0x6636x9=_0x6636xc;return _0x6636x6[_0x564b[22]](Number(_0x6636x5[_0x564b[21]]),{include:[{all:true}]})})[_0x564b[20]](function(_0x6636xa){return _0x6636x7[_0x564b[19]]({status:_0x564b[10],subject:_0x6636xa[_0x564b[11]],from:[_0x6636x9[_0x564b[12]]],to:_0x6636x5[_0x564b[15]][_0x564b[14]](_0x564b[13]),cc:_0x6636x5[_0x564b[16]]?_0x6636x5[_0x564b[16]][_0x564b[14]](_0x564b[13]):[],html:_0x6636xa[_0x564b[17]]||null,text:_0x6636xa[_0x564b[18]]||null})[_0x564b[9]](function(_0x6636xb){console[_0x564b[2]](_0x6636xb)})})}module[_0x564b[24]]=Mail
\ No newline at end of file
index 1ad1569..a4dcb86 100644 (file)
@@ -1,80 +1 @@
-var _ = require('lodash');
-
-function Util() {
-  console.log('Trigger Utils Initialization...');
-}
-
-Util.prototype.getActionsByTriggers = function(doc, triggers) {
-  var actions = [];
-  doc.dataValues.from = doc.dataValues.from ? doc.dataValues.from.split(';') : [];
-  doc.dataValues.cc = doc.dataValues.cc ? doc.dataValues.cc.split(';') : [];
-  doc.dataValues.to = doc.dataValues.to ? doc.dataValues.to.split(';') : [];
-  triggers.forEach(function(trigger) {
-    if (trigger.status) {
-      var All = [];
-      var Any = [];
-      trigger.All.forEach(function(condition) {
-        All.push(checkCondition(condition.dataValues, doc.dataValues));
-      });
-      trigger.Any.forEach(function(condition) {
-        Any.push(checkCondition(condition.dataValues, doc.dataValues));
-      });
-
-      var allResult = [],
-        anyResult = [];
-      allResult.push(_.reduce(All.length ? All : [true], function(total, n) {
-        return total && n;
-      }));
-      anyResult.push(_.reduce(Any.length ? Any : [true], function(total, n) {
-        return total || n;
-      }));
-      var lastResults = allResult.concat(anyResult);
-      var finalResult = _.reduce(lastResults.length ? lastResults : [true], function(total, n) {
-          return total && n;
-        })
-        // console.log('final result is', finalResult);
-
-      if (finalResult) {
-        //push rules into array to return
-        actions = actions.concat(trigger.Actions);
-      }
-    }
-  });
-  doc.dataValues.from = doc.dataValues.from.join(';');
-  doc.dataValues.cc = doc.dataValues.cc.join(';');
-  doc.dataValues.to = doc.dataValues.to.join(';');
-  //return actions array
-  return actions;
-}
-
-function checkCondition(condition, doc) {
-  // console.log('CONDITION', condition);
-  // console.log('DOC FIELD', doc[condition.field]);
-  // console.log('trigger value ', trigger[rule.field.value]);
-  // console.log('rule data ', rule.data);
-  var result;
-  switch (condition.operator) {
-    case 'equals':
-      result = (doc[condition.field] === condition.value);
-      break;
-    case 'not_equals':
-      result = (doc[condition.field] !== condition.value);
-      break;
-    case 'greater_or_equal':
-      result = (doc[condition.field] >= Number(condition.value));
-      break;
-    case 'less_or_equal':
-      result = (doc[condition.field] <= Number(condition.value));
-      break;
-    case 'greater':
-      result = (doc[condition.field] > Number(condition.value));
-      break;
-    case 'less':
-      result = (doc[condition.field] < Number(condition.value));
-      break;
-    default:
-  }
-  return result;
-}
-
-module.exports = Util;
+var _0x916f=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x55\x74\x69\x6C\x73\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73\x42\x79\x54\x72\x69\x67\x67\x65\x72\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x66\x72\x6F\x6D","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x3B","\x73\x70\x6C\x69\x74","\x63\x63","\x74\x6F","\x73\x74\x61\x74\x75\x73","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x41\x6C\x6C","\x41\x6E\x79","\x6C\x65\x6E\x67\x74\x68","\x72\x65\x64\x75\x63\x65","\x63\x6F\x6E\x63\x61\x74","\x6A\x6F\x69\x6E","\x66\x69\x65\x6C\x64","\x76\x61\x6C\x75\x65","\x65\x71\x75\x61\x6C\x73","\x6E\x6F\x74\x5F\x65\x71\x75\x61\x6C\x73","\x67\x72\x65\x61\x74\x65\x72\x5F\x6F\x72\x5F\x65\x71\x75\x61\x6C","\x6C\x65\x73\x73\x5F\x6F\x72\x5F\x65\x71\x75\x61\x6C","\x67\x72\x65\x61\x74\x65\x72","\x6C\x65\x73\x73","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0x916f[0]);function Util(){console[_0x916f[2]](_0x916f[1])}Util[_0x916f[4]][_0x916f[3]]=function(_0xa318x3,_0xa318x4){var _0xa318x5=[];_0xa318x3[_0x916f[6]][_0x916f[5]]=_0xa318x3[_0x916f[6]][_0x916f[5]]?_0xa318x3[_0x916f[6]][_0x916f[5]][_0x916f[8]](_0x916f[7]):[];_0xa318x3[_0x916f[6]][_0x916f[9]]=_0xa318x3[_0x916f[6]][_0x916f[9]]?_0xa318x3[_0x916f[6]][_0x916f[9]][_0x916f[8]](_0x916f[7]):[];_0xa318x3[_0x916f[6]][_0x916f[10]]=_0xa318x3[_0x916f[6]][_0x916f[10]]?_0xa318x3[_0x916f[6]][_0x916f[10]][_0x916f[8]](_0x916f[7]):[];_0xa318x4[_0x916f[13]](function(_0xa318x6){if(_0xa318x6[_0x916f[11]]){var _0xa318x7=[];var _0xa318x8=[];_0xa318x6[_0x916f[14]][_0x916f[13]](function(_0xa318x9){_0xa318x7[_0x916f[12]](checkCondition(_0xa318x9[_0x916f[6]],_0xa318x3[_0x916f[6]]))});_0xa318x6[_0x916f[15]][_0x916f[13]](function(_0xa318x9){_0xa318x8[_0x916f[12]](checkCondition(_0xa318x9[_0x916f[6]],_0xa318x3[_0x916f[6]]))});var _0xa318xa=[],_0xa318xb=[];_0xa318xa[_0x916f[12]](_[_0x916f[17]](_0xa318x7[_0x916f[16]]?_0xa318x7:[true],function(_0xa318xc,_0xa318xd){return _0xa318xc&&_0xa318xd}));_0xa318xb[_0x916f[12]](_[_0x916f[17]](_0xa318x8[_0x916f[16]]?_0xa318x8:[true],function(_0xa318xc,_0xa318xd){return _0xa318xc||_0xa318xd}));var _0xa318xe=_0xa318xa[_0x916f[18]](_0xa318xb);var _0xa318xf=_[_0x916f[17]](_0xa318xe[_0x916f[16]]?_0xa318xe:[true],function(_0xa318xc,_0xa318xd){return _0xa318xc&&_0xa318xd});if(_0xa318xf){_0xa318x5=_0xa318x5[_0x916f[18]](_0xa318x6.Actions)}}});_0xa318x3[_0x916f[6]][_0x916f[5]]=_0xa318x3[_0x916f[6]][_0x916f[5]][_0x916f[19]](_0x916f[7]);_0xa318x3[_0x916f[6]][_0x916f[9]]=_0xa318x3[_0x916f[6]][_0x916f[9]][_0x916f[19]](_0x916f[7]);_0xa318x3[_0x916f[6]][_0x916f[10]]=_0xa318x3[_0x916f[6]][_0x916f[10]][_0x916f[19]](_0x916f[7]);return _0xa318x5};function checkCondition(_0xa318x9,_0xa318x3){var _0xa318x11;switch(_0xa318x9[_0x916f[28]]){case _0x916f[22]:_0xa318x11=(_0xa318x3[_0xa318x9[_0x916f[20]]]===_0xa318x9[_0x916f[21]]);break;case _0x916f[23]:_0xa318x11=(_0xa318x3[_0xa318x9[_0x916f[20]]]!==_0xa318x9[_0x916f[21]]);break;case _0x916f[24]:_0xa318x11=(_0xa318x3[_0xa318x9[_0x916f[20]]]>=Number(_0xa318x9[_0x916f[21]]));break;case _0x916f[25]:_0xa318x11=(_0xa318x3[_0xa318x9[_0x916f[20]]]<=Number(_0xa318x9[_0x916f[21]]));break;case _0x916f[26]:_0xa318x11=(_0xa318x3[_0xa318x9[_0x916f[20]]]>Number(_0xa318x9[_0x916f[21]]));break;case _0x916f[27]:_0xa318x11=(_0xa318x3[_0xa318x9[_0x916f[20]]]<Number(_0xa318x9[_0x916f[21]]));break;default:};return _0xa318x11}module[_0x916f[29]]=Util
\ No newline at end of file
index 2465c50..4ca1a1b 100644 (file)
@@ -1,7 +1 @@
-var _ = require('lodash');
-
-function Voice() {
-  console.log('Trigger Voice Initialization...');
-}
-
-module.exports = Voice;
+var _0xacf4=["\x6C\x6F\x64\x61\x73\x68","\x54\x72\x69\x67\x67\x65\x72\x20\x56\x6F\x69\x63\x65\x20\x49\x6E\x69\x74\x69\x61\x6C\x69\x7A\x61\x74\x69\x6F\x6E\x2E\x2E\x2E","\x6C\x6F\x67","\x65\x78\x70\x6F\x72\x74\x73"];var _=require(_0xacf4[0]);function Voice(){console[_0xacf4[2]](_0xacf4[1])}module[_0xacf4[3]]=Voice
\ No newline at end of file
index e265f76..5404bd6 100644 (file)
@@ -1,24 +1 @@
-'use strict';
-
-var util = require('util');
-
-module.exports = {
-  handleUniqueConstraintError: function(res, err) {
-    var paths = [];
-
-    err.errors.forEach(function(error) {
-      switch (error.path) {
-        default: paths.push(error.path);
-      }
-    });
-
-    paths.push(' must be unique');
-    err.message = paths.join();
-
-    return res.status(500).send(err);
-  },
-  handleForeignKeyConstraintError: function(res, app, name, err) {
-    err.message = util.format('Impossible to remove %s %s because of an existing association', app, name);
-    return res.status(500).send(err);
-  }
-};
+var _0x7679=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x65\x78\x70\x6F\x72\x74\x73","\x70\x61\x74\x68","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x65\x72\x72\x6F\x72\x73","\x20\x6D\x75\x73\x74\x20\x62\x65\x20\x75\x6E\x69\x71\x75\x65","\x6D\x65\x73\x73\x61\x67\x65","\x6A\x6F\x69\x6E","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x49\x6D\x70\x6F\x73\x73\x69\x62\x6C\x65\x20\x74\x6F\x20\x72\x65\x6D\x6F\x76\x65\x20\x25\x73\x20\x25\x73\x20\x62\x65\x63\x61\x75\x73\x65\x20\x6F\x66\x20\x61\x6E\x20\x65\x78\x69\x73\x74\x69\x6E\x67\x20\x61\x73\x73\x6F\x63\x69\x61\x74\x69\x6F\x6E","\x66\x6F\x72\x6D\x61\x74"];_0x7679[0];var util=require(_0x7679[1]);module[_0x7679[2]]={handleUniqueConstraintError:function(_0xf65dx2,_0xf65dx3){var _0xf65dx4=[];_0xf65dx3[_0x7679[6]][_0x7679[5]](function(_0xf65dx5){switch(_0xf65dx5[_0x7679[3]]){default:_0xf65dx4[_0x7679[4]](_0xf65dx5[_0x7679[3]])}});_0xf65dx4[_0x7679[4]](_0x7679[7]);_0xf65dx3[_0x7679[8]]=_0xf65dx4[_0x7679[9]]();return _0xf65dx2[_0x7679[11]](500)[_0x7679[10]](_0xf65dx3)},handleForeignKeyConstraintError:function(_0xf65dx2,_0xf65dx6,_0xf65dx7,_0xf65dx3){_0xf65dx3[_0x7679[8]]=util[_0x7679[13]](_0x7679[12],_0xf65dx6,_0xf65dx7);return _0xf65dx2[_0x7679[11]](500)[_0x7679[10]](_0xf65dx3)}}
\ No newline at end of file
index fe69138..c3ff0bc 100644 (file)
@@ -1,151 +1 @@
-'use strict';
-
-var _ = require('lodash');
-var moment = require('moment');
-
-var checkInterval = function(interval) {
-
-  var daysOfWeek = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
-  var daysOfMonth = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31];
-  var months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
-  var i, shift;
-
-  var tRange = interval.split(',')[0];
-  var dwRange = interval.split(',')[1];
-  var dmRange = interval.split(',')[2];
-  var mRange = interval.split(',')[3];
-  // TIME RANGE CHECKING
-  if (tRange !== '*') {
-    var time = moment().format("HH:mm");
-    var tFrom = tRange.split('-')[0];
-    var tTo = tRange.split('-')[1];
-
-    if ((time < tFrom) || (time > tTo)) {
-      console.log('TRANGE KO');
-      return false;
-    }
-  }
-  // DAYS OF WEEK RANGE CHECKING
-  if (dwRange !== '*') {
-    var cWeekDay = daysOfWeek[moment().day()];
-    var dwFrom = _.indexOf(daysOfWeek, dwRange.split('-')[0]);
-    var dwTo = _.indexOf(daysOfWeek, dwRange.split('-')[1]);
-
-    for (i = 0; i < dwFrom; i++) {
-      shift = daysOfWeek.shift();
-      daysOfWeek.push(shift);
-    }
-
-    dwFrom = _.indexOf(daysOfWeek, dwRange.split('-')[0]);
-    dwTo = _.indexOf(daysOfWeek, dwRange.split('-')[1]) + 1;
-
-    daysOfWeek = daysOfWeek.slice(dwFrom, dwTo);
-
-    if (!_.includes(daysOfWeek, cWeekDay)) {
-      console.log('DWRANGE KO');
-      return false;
-    }
-  }
-  // DAYS OF MONTH RANGE CHECKING
-  if (dmRange !== '*') {
-    var cMonthDay = moment().date();
-    var dmFrom = _.indexOf(daysOfMonth, parseInt(dmRange.split('-')[0], 10));
-    var dmTo = _.indexOf(daysOfMonth, parseInt(dmRange.split('-')[1]));
-
-    for (i = 0; i < dmFrom; i++) {
-      shift = daysOfMonth.shift();
-      daysOfMonth.push(shift);
-    }
-
-    dmFrom = _.indexOf(daysOfMonth, parseInt(dmRange.split('-')[0], 10));
-    dmTo = _.indexOf(daysOfMonth, parseInt(dmRange.split('-')[1]), 10) + 1;
-
-    daysOfMonth = daysOfMonth.slice(dmFrom, dmTo);
-
-    if (!_.includes(daysOfMonth, cMonthDay)) {
-      console.log('DMRANGE KO');
-      return false;
-    }
-  }
-  // MONTHS RANGE CHECKING
-  if (mRange !== '*') {
-    var cMonth = months[moment().month()];
-    var mFrom = _.indexOf(months, mRange.split('-')[0]);
-    var mTo = _.indexOf(months, mRange.split('-')[1]);
-
-    for (i = 0; i < mFrom; i++) {
-      shift = months.shift();
-      months.push(shift);
-    }
-
-    mFrom = _.indexOf(months, mRange.split('-')[0]);
-    mTo = _.indexOf(months, mRange.split('-')[1]) + 1;
-
-    months = months.slice(mFrom, mTo);
-
-    if (!_.includes(months, cMonth)) {
-      console.log('MRANGE KO');
-      return false;
-    }
-  }
-
-  console.log('INTERVAL OK');
-
-  return true;
-}
-
-var isValidInterval = function(interval) {
-  if (_.isObject(interval)) {
-    for (var i = 0; i < interval.SubIntervals.length; i++) {
-      if (!checkInterval(interval.SubIntervals[i].interval)) {
-        return false;
-      }
-    }
-    return true;
-  } else {
-    return checkInterval(interval);
-  }
-}
-
-var getQuery = function(query) {
-  var _query = {
-    where: {}
-  };
-  if (query) {
-    _.forEach(query, function(value, key) {
-      switch (key) {
-        case 'offset':
-        case 'limit':
-          _query[key] = Number(value);
-          break;
-        case 'order':
-          _query[key] = value;
-          break;
-        case 'type':
-        case 'parent':
-          _query.where[key] = value;
-          break;
-        default:
-          _query.where[key] = {
-            $like: '%' + value + '%'
-          };
-      }
-    });
-  }
-
-  return _query;
-}
-
-var stripTrailingSlash = function(str) {
-  if (str.substr(-1) === '/') {
-    return str.substr(0, str.length - 1);
-  }
-  return str;
-}
-
-module.exports = {
-  getQuery: getQuery,
-  stripTrailingSlash: stripTrailingSlash,
-  isValidInterval: isValidInterval,
-  errorManager: require('./error')
-};
+var _0x6f79=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x73\x75\x6E","\x6D\x6F\x6E","\x74\x75\x65","\x77\x65\x64","\x74\x68\x75","\x66\x72\x69","\x73\x61\x74","\x6A\x61\x6E","\x66\x65\x62","\x6D\x61\x72","\x61\x70\x72","\x6D\x61\x79","\x6A\x75\x6E","\x6A\x75\x6C","\x61\x75\x67","\x73\x65\x70","\x6F\x63\x74","\x6E\x6F\x76","\x64\x65\x63","\x2C","\x73\x70\x6C\x69\x74","\x2A","\x48\x48\x3A\x6D\x6D","\x66\x6F\x72\x6D\x61\x74","\x2D","\x54\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x6C\x6F\x67","\x64\x61\x79","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x68\x69\x66\x74","\x70\x75\x73\x68","\x73\x6C\x69\x63\x65","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x44\x57\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x64\x61\x74\x65","\x44\x4D\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x6D\x6F\x6E\x74\x68","\x4D\x52\x41\x4E\x47\x45\x20\x4B\x4F","\x49\x4E\x54\x45\x52\x56\x41\x4C\x20\x4F\x4B","\x69\x73\x4F\x62\x6A\x65\x63\x74","\x6C\x65\x6E\x67\x74\x68","\x53\x75\x62\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x6F\x72\x64\x65\x72","\x74\x79\x70\x65","\x77\x68\x65\x72\x65","\x70\x61\x72\x65\x6E\x74","\x25","\x66\x6F\x72\x45\x61\x63\x68","\x73\x75\x62\x73\x74\x72","\x2F","\x65\x78\x70\x6F\x72\x74\x73","\x2E\x2F\x65\x72\x72\x6F\x72"];_0x6f79[0];var _=require(_0x6f79[1]);var moment=require(_0x6f79[2]);var checkInterval=function(_0xabc3x4){var _0xabc3x5=[_0x6f79[3],_0x6f79[4],_0x6f79[5],_0x6f79[6],_0x6f79[7],_0x6f79[8],_0x6f79[9]];var _0xabc3x6=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];var _0xabc3x7=[_0x6f79[10],_0x6f79[11],_0x6f79[12],_0x6f79[13],_0x6f79[14],_0x6f79[15],_0x6f79[16],_0x6f79[17],_0x6f79[18],_0x6f79[19],_0x6f79[20],_0x6f79[21]];var _0xabc3x8,_0xabc3x9;var _0xabc3xa=_0xabc3x4[_0x6f79[23]](_0x6f79[22])[0];var _0xabc3xb=_0xabc3x4[_0x6f79[23]](_0x6f79[22])[1];var _0xabc3xc=_0xabc3x4[_0x6f79[23]](_0x6f79[22])[2];var _0xabc3xd=_0xabc3x4[_0x6f79[23]](_0x6f79[22])[3];if(_0xabc3xa!==_0x6f79[24]){var _0xabc3xe=moment()[_0x6f79[26]](_0x6f79[25]);var _0xabc3xf=_0xabc3xa[_0x6f79[23]](_0x6f79[27])[0];var _0xabc3x10=_0xabc3xa[_0x6f79[23]](_0x6f79[27])[1];if((_0xabc3xe<_0xabc3xf)||(_0xabc3xe>_0xabc3x10)){console[_0x6f79[29]](_0x6f79[28]);return false}};if(_0xabc3xb!==_0x6f79[24]){var _0xabc3x11=_0xabc3x5[moment()[_0x6f79[30]]()];var _0xabc3x12=_[_0x6f79[31]](_0xabc3x5,_0xabc3xb[_0x6f79[23]](_0x6f79[27])[0]);var _0xabc3x13=_[_0x6f79[31]](_0xabc3x5,_0xabc3xb[_0x6f79[23]](_0x6f79[27])[1]);for(_0xabc3x8=0;_0xabc3x8<_0xabc3x12;_0xabc3x8++){_0xabc3x9=_0xabc3x5[_0x6f79[32]]();_0xabc3x5[_0x6f79[33]](_0xabc3x9)};_0xabc3x12=_[_0x6f79[31]](_0xabc3x5,_0xabc3xb[_0x6f79[23]](_0x6f79[27])[0]);_0xabc3x13=_[_0x6f79[31]](_0xabc3x5,_0xabc3xb[_0x6f79[23]](_0x6f79[27])[1])+1;_0xabc3x5=_0xabc3x5[_0x6f79[34]](_0xabc3x12,_0xabc3x13);if(!_[_0x6f79[35]](_0xabc3x5,_0xabc3x11)){console[_0x6f79[29]](_0x6f79[36]);return false}};if(_0xabc3xc!==_0x6f79[24]){var _0xabc3x14=moment()[_0x6f79[37]]();var _0xabc3x15=_[_0x6f79[31]](_0xabc3x6,parseInt(_0xabc3xc[_0x6f79[23]](_0x6f79[27])[0],10));var _0xabc3x16=_[_0x6f79[31]](_0xabc3x6,parseInt(_0xabc3xc[_0x6f79[23]](_0x6f79[27])[1]));for(_0xabc3x8=0;_0xabc3x8<_0xabc3x15;_0xabc3x8++){_0xabc3x9=_0xabc3x6[_0x6f79[32]]();_0xabc3x6[_0x6f79[33]](_0xabc3x9)};_0xabc3x15=_[_0x6f79[31]](_0xabc3x6,parseInt(_0xabc3xc[_0x6f79[23]](_0x6f79[27])[0],10));_0xabc3x16=_[_0x6f79[31]](_0xabc3x6,parseInt(_0xabc3xc[_0x6f79[23]](_0x6f79[27])[1]),10)+1;_0xabc3x6=_0xabc3x6[_0x6f79[34]](_0xabc3x15,_0xabc3x16);if(!_[_0x6f79[35]](_0xabc3x6,_0xabc3x14)){console[_0x6f79[29]](_0x6f79[38]);return false}};if(_0xabc3xd!==_0x6f79[24]){var _0xabc3x17=_0xabc3x7[moment()[_0x6f79[39]]()];var _0xabc3x18=_[_0x6f79[31]](_0xabc3x7,_0xabc3xd[_0x6f79[23]](_0x6f79[27])[0]);var _0xabc3x19=_[_0x6f79[31]](_0xabc3x7,_0xabc3xd[_0x6f79[23]](_0x6f79[27])[1]);for(_0xabc3x8=0;_0xabc3x8<_0xabc3x18;_0xabc3x8++){_0xabc3x9=_0xabc3x7[_0x6f79[32]]();_0xabc3x7[_0x6f79[33]](_0xabc3x9)};_0xabc3x18=_[_0x6f79[31]](_0xabc3x7,_0xabc3xd[_0x6f79[23]](_0x6f79[27])[0]);_0xabc3x19=_[_0x6f79[31]](_0xabc3x7,_0xabc3xd[_0x6f79[23]](_0x6f79[27])[1])+1;_0xabc3x7=_0xabc3x7[_0x6f79[34]](_0xabc3x18,_0xabc3x19);if(!_[_0x6f79[35]](_0xabc3x7,_0xabc3x17)){console[_0x6f79[29]](_0x6f79[40]);return false}};console[_0x6f79[29]](_0x6f79[41]);return true};var isValidInterval=function(_0xabc3x4){if(_[_0x6f79[42]](_0xabc3x4)){for(var _0xabc3x8=0;_0xabc3x8<_0xabc3x4[_0x6f79[44]][_0x6f79[43]];_0xabc3x8++){if(!checkInterval(_0xabc3x4[_0x6f79[44]][_0xabc3x8][_0x6f79[45]])){return false}};return true}else {return checkInterval(_0xabc3x4)}};var getQuery=function(_0xabc3x1c){var _0xabc3x1d={where:{}};if(_0xabc3x1c){_[_0x6f79[53]](_0xabc3x1c,function(_0xabc3x1e,_0xabc3x1f){switch(_0xabc3x1f){case _0x6f79[46]:;case _0x6f79[47]:_0xabc3x1d[_0xabc3x1f]=Number(_0xabc3x1e);break;case _0x6f79[48]:_0xabc3x1d[_0xabc3x1f]=_0xabc3x1e;break;case _0x6f79[49]:;case _0x6f79[51]:_0xabc3x1d[_0x6f79[50]][_0xabc3x1f]=_0xabc3x1e;break;default:_0xabc3x1d[_0x6f79[50]][_0xabc3x1f]={$like:_0x6f79[52]+_0xabc3x1e+_0x6f79[52]}}})};return _0xabc3x1d};var stripTrailingSlash=function(_0xabc3x21){if(_0xabc3x21[_0x6f79[54]](-1)===_0x6f79[55]){return _0xabc3x21[_0x6f79[54]](0,_0xabc3x21[_0x6f79[43]]-1)};return _0xabc3x21};module[_0x6f79[56]]={getQuery:getQuery,stripTrailingSlash:stripTrailingSlash,isValidInterval:isValidInterval,errorManager:require(_0x6f79[57])}
\ No newline at end of file
diff --git a/server/files/asterisk/sip_xcally_contexts.conf b/server/files/asterisk/sip_xcally_contexts.conf
deleted file mode 100644 (file)
index 92f0844..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-[outbound-fax]
-switch => Realtime
-[from-sip]
-switch => Realtime
-[from-voip-provider]
-switch => Realtime
-[inbound-fax]
-switch => Realtime
index 4410805..a22cb8b 100644 (file)
@@ -1,33 +1 @@
-'use strict';
-
-module.exports = {
-  up: function(queryInterface, Sequelize) {
-    /*
-      Add altering commands here.
-      Return a promise to correctly handle asynchronicity.
-
-      Example:
-      return queryInterface.createTable('users', { id: Sequelize.INTEGER });
-    */
-    return queryInterface
-      .addColumn(
-        'users',
-        'testAttr', {
-          type: Sequelize.STRING
-        }
-      );
-  },
-
-  down: function(queryInterface, Sequelize) {
-    /*
-      Add reverting commands here.
-      Return a promise to correctly handle asynchronicity.
-
-      Example:
-      return queryInterface.dropTable('users');
-    */
-
-    return queryInterface
-      .removeColumn('users', 'testAttr');
-  }
-};
+var _0x6444=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x75\x73\x65\x72\x73","\x74\x65\x73\x74\x41\x74\x74\x72","\x53\x54\x52\x49\x4E\x47","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x72\x65\x6D\x6F\x76\x65\x43\x6F\x6C\x75\x6D\x6E"];_0x6444[0];module[_0x6444[1]]={up:function(_0xdab3x1,_0xdab3x2){return _0xdab3x1[_0x6444[5]](_0x6444[2],_0x6444[3],{type:_0xdab3x2[_0x6444[4]]})},down:function(_0xdab3x1,_0xdab3x2){return _0xdab3x1[_0x6444[6]](_0x6444[2],_0x6444[3])}}
\ No newline at end of file
index 3e22553..e56558e 100644 (file)
@@ -1,32 +1 @@
-/**
- * Action Model
- */
-
-module.exports = function (sequelize, DataTypes) {
-
-       var Action = sequelize.define('Action', {
-               name: {
-                       type: DataTypes.STRING
-               },
-               data1: {
-                       type: DataTypes.STRING
-               },
-               data2: {
-                       type: DataTypes.STRING
-               },
-               data3: {
-                       type: DataTypes.STRING
-               },
-               data4: {
-                       type: DataTypes.STRING
-               },
-               data5: {
-                       type: DataTypes.STRING
-               }
-       }, {
-               tableName: 'actions',
-               associate: function (models) {}
-       });
-
-       return Action;
-};
+var _0xe23d=["\x65\x78\x70\x6F\x72\x74\x73","\x41\x63\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x61\x63\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];module[_0xe23d[0]]=function(_0x30c6x1,_0x30c6x2){var _0x30c6x3=_0x30c6x1[_0xe23d[4]](_0xe23d[1],{name:{type:_0x30c6x2[_0xe23d[2]]},data1:{type:_0x30c6x2[_0xe23d[2]]},data2:{type:_0x30c6x2[_0xe23d[2]]},data3:{type:_0x30c6x2[_0xe23d[2]]},data4:{type:_0x30c6x2[_0xe23d[2]]},data5:{type:_0x30c6x2[_0xe23d[2]]}},{tableName:_0xe23d[3],associate:function(_0x30c6x4){}});return _0x30c6x3}
\ No newline at end of file
index 8cc071d..7294aed 100644 (file)
@@ -1,19 +1 @@
-/**
- * Asterisk Manager Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var AsteriskManager = sequelize.define('AsteriskManager', {
-    address: DataTypes.STRING,
-    port: DataTypes.INTEGER,
-    username: DataTypes.STRING,
-    password: DataTypes.STRING
-  }, {
-    tableName: 'asterisk_manager'
-  });
-
-  return AsteriskManager;
-};
+var _0x8387=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x41\x73\x74\x65\x72\x69\x73\x6B\x4D\x61\x6E\x61\x67\x65\x72","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x61\x73\x74\x65\x72\x69\x73\x6B\x5F\x6D\x61\x6E\x61\x67\x65\x72","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x8387[0]);module[_0x8387[1]]=function(_0xcbacx2,_0xcbacx3){var _0xcbacx4=_0xcbacx2[_0x8387[6]](_0x8387[2],{address:_0xcbacx3[_0x8387[3]],port:_0xcbacx3[_0x8387[4]],username:_0xcbacx3[_0x8387[3]],password:_0xcbacx3[_0x8387[3]]},{tableName:_0x8387[5]});return _0xcbacx4}
\ No newline at end of file
index 539add1..9724255 100644 (file)
@@ -1,24 +1 @@
-'use strict';
-
-/**
- * Asterisk Manager Interface Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Ami = sequelize.define('Ami', {
-    actionid: DataTypes.STRING,
-    action: DataTypes.STRING,
-    response: DataTypes.STRING,
-    message: DataTypes.STRING,
-    data: DataTypes.TEXT
-  }, {
-    tableName: 'asterisk_manager_interface',
-    associate: function(models) {
-      // USER RELATIONS
-      Ami.belongsTo(models.User);
-    }
-  });
-
-  return Ami;
-};
+var _0x9de2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6D\x69","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x61\x73\x74\x65\x72\x69\x73\x6B\x5F\x6D\x61\x6E\x61\x67\x65\x72\x5F\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x9de2[0];module[_0x9de2[1]]=function(_0xf8eax1,_0xf8eax2){var _0xf8eax3=_0xf8eax1[_0x9de2[7]](_0x9de2[2],{actionid:_0xf8eax2[_0x9de2[3]],action:_0xf8eax2[_0x9de2[3]],response:_0xf8eax2[_0x9de2[3]],message:_0xf8eax2[_0x9de2[3]],data:_0xf8eax2[_0x9de2[4]]},{tableName:_0x9de2[5],associate:function(_0xf8eax4){_0xf8eax3[_0x9de2[6]](_0xf8eax4.User)}});return _0xf8eax3}
\ No newline at end of file
index 0719b90..06e04de 100644 (file)
@@ -1,15 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var AutodialerContact = sequelize.define('AutodialerContact', {
-    status: {
-      type: DataTypes.STRING
-    }
-  }, {
-    tableName: 'autodialer_contacts'
-  });
-
-  return AutodialerContact;
-
-};
+var _0x5a54=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74","\x53\x54\x52\x49\x4E\x47","\x61\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x5a54[0];module[_0x5a54[1]]=function(_0x4012x1,_0x4012x2){var _0x4012x3=_0x4012x1[_0x5a54[5]](_0x5a54[2],{status:{type:_0x4012x2[_0x5a54[3]]}},{tableName:_0x5a54[4]});return _0x4012x3}
\ No newline at end of file
index 7ddc225..9aadec9 100644 (file)
@@ -1,53 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var AutodialerProcess = sequelize.define('AutodialerProcess', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    description: {
-      type: DataTypes.STRING,
-    },
-    context: {
-        type: DataTypes.STRING,
-    },
-    extension: {
-        type: DataTypes.STRING,
-    },
-    priority: {
-        type: DataTypes.INTEGER,
-    },
-    callerid: {
-        type: DataTypes.STRING,
-    },
-    waittime: {
-        type: DataTypes.INTEGER,
-    },
-    maxretry: {
-        type: DataTypes.INTEGER,
-    },
-    retrytime: {
-        type: DataTypes.INTEGER,
-    },
-    prefix: {
-        type: DataTypes.STRING,
-    },
-    maxcall: {
-        type: DataTypes.INTEGER,
-    },
-    enable: {
-    type: DataTypes.BOOLEAN,
-    defaultValue: true
-    }
-  }, {
-    tableName: 'autodialer_processes',
-    associate: function(models) {
-        AutodialerProcess.belongsToMany(models.Contact, { through: models.AutodialerContact })
-    }
-  });
-
-  return AutodialerProcess;
-
-};
+var _0xde5a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x50\x72\x6F\x63\x65\x73\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x5F\x70\x72\x6F\x63\x65\x73\x73\x65\x73","\x41\x75\x74\x6F\x64\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xde5a[0];module[_0xde5a[1]]=function(_0x10a5x1,_0x10a5x2){var _0x10a5x3=_0x10a5x1[_0xde5a[9]](_0xde5a[2],{name:{type:_0x10a5x2[_0xde5a[3]],unique:true},description:{type:_0x10a5x2[_0xde5a[3]]},context:{type:_0x10a5x2[_0xde5a[3]]},extension:{type:_0x10a5x2[_0xde5a[3]]},priority:{type:_0x10a5x2[_0xde5a[4]]},callerid:{type:_0x10a5x2[_0xde5a[3]]},waittime:{type:_0x10a5x2[_0xde5a[4]]},maxretry:{type:_0x10a5x2[_0xde5a[4]]},retrytime:{type:_0x10a5x2[_0xde5a[4]]},prefix:{type:_0x10a5x2[_0xde5a[3]]},maxcall:{type:_0x10a5x2[_0xde5a[4]]},enable:{type:_0x10a5x2[_0xde5a[5]],defaultValue:true}},{tableName:_0xde5a[6],associate:function(_0x10a5x4){_0x10a5x3[_0xde5a[8]](_0x10a5x4.Contact,{through:_0x10a5x4[_0xde5a[7]]})}});return _0x10a5x3}
\ No newline at end of file
index 7ee4308..9f2c59e 100644 (file)
@@ -1,64 +1 @@
-/**
- * Automation Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Automation = sequelize.define('Automation', {
-    name: DataTypes.STRING,
-    channel: DataTypes.STRING,
-    description: DataTypes.STRING,
-    status: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    timeout: {
-      type: DataTypes.INTEGER,
-      defaultValue: 10
-    }
-  }, {
-    tableName: 'automations',
-    associate: function(models) {
-      Automation.hasMany(models.ToolsCondition, {
-        as: {
-          plural: 'All',
-          singular: 'OneAll'
-        },
-        foreignKey: 'AutomationAllId',
-        onDelete: 'cascade',
-        hooks: true
-      });
-      Automation.hasMany(models.ToolsCondition, {
-        as: {
-          plural: 'Any',
-          singular: 'OneAny'
-        },
-        foreignKey: 'AutomationAnyId',
-        onDelete: 'cascade',
-        hooks: true
-      });
-      Automation.hasMany(models.ToolsAction, {
-        as: 'Actions',
-        onDelete: 'cascade',
-        hooks: true
-      });
-      Automation.addScope('all', {
-        include: [{
-          model: models.ToolsCondition,
-          as: 'All',
-          attributes: ['field', 'operator', 'value']
-        }, {
-          model: models.ToolsCondition,
-          as: 'Any',
-          attributes: ['field', 'operator', 'value']
-        }, {
-          model: models.ToolsAction,
-          as: 'Actions',
-          attributes: ['action', 'data1', 'data2', 'data3', 'data4', 'data5']
-        }]
-      });
-    }
-  });
-
-  return Automation;
-};
+var _0x7692=["\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x41\x6C\x6C","\x4F\x6E\x65\x41\x6C\x6C","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x41\x6C\x6C\x49\x64","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x41\x6E\x79","\x4F\x6E\x65\x41\x6E\x79","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x41\x6E\x79\x49\x64","\x41\x63\x74\x69\x6F\x6E\x73","\x61\x6C\x6C","\x54\x6F\x6F\x6C\x73\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x76\x61\x6C\x75\x65","\x54\x6F\x6F\x6C\x73\x41\x63\x74\x69\x6F\x6E","\x61\x63\x74\x69\x6F\x6E","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x64\x61\x74\x61\x34","\x64\x61\x74\x61\x35","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];module[_0x7692[0]]=function(_0x1e9ax1,_0x1e9ax2){var _0x1e9ax3=_0x1e9ax1[_0x7692[28]](_0x7692[1],{name:_0x1e9ax2[_0x7692[2]],channel:_0x1e9ax2[_0x7692[2]],description:_0x1e9ax2[_0x7692[2]],status:{type:_0x1e9ax2[_0x7692[3]],defaultValue:false},timeout:{type:_0x1e9ax2[_0x7692[4]],defaultValue:10}},{tableName:_0x7692[5],associate:function(_0x1e9ax4){_0x1e9ax3[_0x7692[10]](_0x1e9ax4.ToolsCondition,{as:{plural:_0x7692[6],singular:_0x7692[7]},foreignKey:_0x7692[8],onDelete:_0x7692[9],hooks:true});_0x1e9ax3[_0x7692[10]](_0x1e9ax4.ToolsCondition,{as:{plural:_0x7692[11],singular:_0x7692[12]},foreignKey:_0x7692[13],onDelete:_0x7692[9],hooks:true});_0x1e9ax3[_0x7692[10]](_0x1e9ax4.ToolsAction,{as:_0x7692[14],onDelete:_0x7692[9],hooks:true});_0x1e9ax3[_0x7692[27]](_0x7692[15],{include:[{model:_0x1e9ax4[_0x7692[16]],as:_0x7692[6],attributes:[_0x7692[17],_0x7692[18],_0x7692[19]]},{model:_0x1e9ax4[_0x7692[16]],as:_0x7692[11],attributes:[_0x7692[17],_0x7692[18],_0x7692[19]]},{model:_0x1e9ax4[_0x7692[20]],as:_0x7692[14],attributes:[_0x7692[21],_0x7692[22],_0x7692[23],_0x7692[24],_0x7692[25],_0x7692[26]]}]})}});return _0x1e9ax3}
\ No newline at end of file
index e4dd86f..72d506e 100644 (file)
@@ -1,11 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('CannedAnswer', {
-    key: DataTypes.STRING,
-    value: DataTypes.TEXT,
-    description: DataTypes.STRING
-  }, {
-    tableName: 'canned_answers'
-  });
-};
+var _0x71b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];_0x71b8[0];module[_0x71b8[1]]=function(_0x7581x1,_0x7581x2){return _0x7581x1[_0x71b8[6]](_0x71b8[2],{key:_0x7581x2[_0x71b8[3]],value:_0x7581x2[_0x71b8[4]],description:_0x7581x2[_0x71b8[3]]},{tableName:_0x71b8[5]})}
\ No newline at end of file
index e1c6d79..b15955b 100644 (file)
@@ -1,46 +1 @@
-/**
- * Channel Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Channel = sequelize.define('Channel', {
-    name: {
-      type: DataTypes.STRING,
-      validate: {
-        isUnique: function(name, next) {
-          Channel
-            .find({
-              where: {
-                name: name
-              }
-            })
-            .done(function(error, channel) {
-              if (error)
-                next(error);
-
-              if (channel)
-                next({
-                  message: 'name already used'
-                });
-
-              next();
-            });
-        }
-      }
-    },
-    title: DataTypes.STRING,
-    link: DataTypes.STRING,
-    icon: DataTypes.STRING,
-    position: DataTypes.STRING
-  }, {
-    tableName: 'channels',
-    associate: function(models) {
-      Channel.belongsToMany(models.User, {
-        through: 'user_has_channels'
-      });
-    }
-  });
-
-  return Channel;
-};
+var _0xaed0=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x6E\x6E\x65\x6C","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65\x20\x61\x6C\x72\x65\x61\x64\x79\x20\x75\x73\x65\x64","\x64\x6F\x6E\x65","\x66\x69\x6E\x64","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0xaed0[0]]=function(_0xf759x1,_0xf759x2){var _0xf759x3=_0xf759x1[_0xaed0[9]](_0xaed0[1],{name:{type:_0xf759x2[_0xaed0[2]],validate:{isUnique:function(_0xf759x4,_0xf759x5){_0xf759x3[_0xaed0[5]]({where:{name:_0xf759x4}})[_0xaed0[4]](function(_0xf759x6,_0xf759x7){if(_0xf759x6){_0xf759x5(_0xf759x6)};if(_0xf759x7){_0xf759x5({message:_0xaed0[3]})};_0xf759x5()})}}},title:_0xf759x2[_0xaed0[2]],link:_0xf759x2[_0xaed0[2]],icon:_0xf759x2[_0xaed0[2]],position:_0xf759x2[_0xaed0[2]]},{tableName:_0xaed0[6],associate:function(_0xf759x8){_0xf759x3[_0xaed0[8]](_0xf759x8.User,{through:_0xaed0[7]})}});return _0xf759x3}
\ No newline at end of file
index 39b47de..dea30b0 100644 (file)
@@ -1,35 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ChanSpy = sequelize.define('ChanSpy', {
-    name: DataTypes.STRING,
-    prefix: {
-      type: DataTypes.STRING,
-      unique: true,
-      allowNull: false,
-      validate: {
-        notEmpty: true,
-      },
-    },
-    options: DataTypes.STRING,
-    auth: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    password: DataTypes.STRING,
-    description: DataTypes.STRING
-  }, {
-    tableName: 'chanspy',
-    associate: function(models) {
-      ChanSpy.hasMany(models.VoiceExtension, {
-        as: 'SpiedAgents',
-        onDelete: 'cascade',
-        hooks: true
-      });
-    }
-  });
-
-  return ChanSpy;
-
-};
+var _0x8397=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x6E\x53\x70\x79","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x63\x68\x61\x6E\x73\x70\x79","\x53\x70\x69\x65\x64\x41\x67\x65\x6E\x74\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0x8397[0];module[_0x8397[1]]=function(_0x3e53x1,_0x3e53x2){var _0x3e53x3=_0x3e53x1[_0x8397[9]](_0x8397[2],{name:_0x3e53x2[_0x8397[3]],prefix:{type:_0x3e53x2[_0x8397[3]],unique:true,allowNull:false,validate:{notEmpty:true}},options:_0x3e53x2[_0x8397[3]],auth:{type:_0x3e53x2[_0x8397[4]],defaultValue:false},password:_0x3e53x2[_0x8397[3]],description:_0x3e53x2[_0x8397[3]]},{tableName:_0x8397[5],associate:function(_0x3e53x4){_0x3e53x3[_0x8397[8]](_0x3e53x4.VoiceExtension,{as:_0x8397[6],onDelete:_0x8397[7],hooks:true})}});return _0x3e53x3}
\ No newline at end of file
index e0789ff..84233bd 100644 (file)
@@ -1,30 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ChatApplication = sequelize.define('ChatApplication', {
-    app: {
-      type: DataTypes.ENUM('queue', 'agent')
-    },
-    priority: {
-      type: DataTypes.INTEGER
-    },
-    timeout: {
-      type: DataTypes.INTEGER
-    },
-    interval: {
-      type: DataTypes.STRING
-    }
-  }, {
-    tableName: 'chat_applications',
-    associate: function(models) {
-      // hasMany relations
-      ChatApplication.belongsTo(models.ChatWebsite);
-      ChatApplication.belongsTo(models.Interval);
-      ChatApplication.belongsTo(models.ChatQueue);
-      ChatApplication.belongsTo(models.User);
-    }
-  });
-
-  return ChatApplication;
-};
+var _0x8f53=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x8f53[0];module[_0x8f53[1]]=function(_0xa9cbx1,_0xa9cbx2){var _0xa9cbx3=_0xa9cbx1[_0x8f53[9]](_0x8f53[2],{app:{type:_0xa9cbx2.ENUM(_0x8f53[3],_0x8f53[4])},priority:{type:_0xa9cbx2[_0x8f53[5]]},timeout:{type:_0xa9cbx2[_0x8f53[5]]},interval:{type:_0xa9cbx2[_0x8f53[6]]}},{tableName:_0x8f53[7],associate:function(_0xa9cbx4){_0xa9cbx3[_0x8f53[8]](_0xa9cbx4.ChatWebsite);_0xa9cbx3[_0x8f53[8]](_0xa9cbx4.Interval);_0xa9cbx3[_0x8f53[8]](_0xa9cbx4.ChatQueue);_0xa9cbx3[_0x8f53[8]](_0xa9cbx4.User)}});return _0xa9cbx3}
\ No newline at end of file
index 74dcc2c..18c76ca 100644 (file)
@@ -1,22 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ChatEnquiry = sequelize.define('ChatEnquiry', {
-    username: DataTypes.STRING,
-    email: DataTypes.STRING,
-    text: DataTypes.TEXT,
-    read: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    }
-  }, {
-    tableName: 'chat_enquiries',
-    associate: function(models) {
-      ChatEnquiry.belongsTo(models.ChatWebsite);
-      ChatEnquiry.belongsTo(models.ChatVisitor);
-    }
-  });
-
-  return ChatEnquiry;
-};
+var _0xdba1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x63\x68\x61\x74\x5F\x65\x6E\x71\x75\x69\x72\x69\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0xdba1[0];module[_0xdba1[1]]=function(_0xea69x1,_0xea69x2){var _0xea69x3=_0xea69x1[_0xdba1[8]](_0xdba1[2],{username:_0xea69x2[_0xdba1[3]],email:_0xea69x2[_0xdba1[3]],text:_0xea69x2[_0xdba1[4]],read:{type:_0xea69x2[_0xdba1[5]],defaultValue:false}},{tableName:_0xdba1[6],associate:function(_0xea69x4){_0xea69x3[_0xdba1[7]](_0xea69x4.ChatWebsite);_0xea69x3[_0xdba1[7]](_0xea69x4.ChatVisitor)}});return _0xea69x3}
\ No newline at end of file
index 4b6dff4..5b0c196 100644 (file)
@@ -1,25 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function (sequelize, DataTypes) {
-
-       var ChatMessage = sequelize.define('ChatMessage', {
-               body: {
-                       type: DataTypes.TEXT,
-                       notNull: true,
-                       notEmpty: true,
-               }
-       }, {
-               tableName: 'chat_messages',
-               associate: function (models) {
-                       ChatMessage.belongsTo(models.ChatRoom);
-                       ChatMessage.belongsTo(models.ChatVisitor);
-                       ChatMessage.belongsTo(models.User);
-               }
-       });
-
-       return ChatMessage;
-};
+var _0xf1b7=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x54\x45\x58\x54","\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xf1b7[0]);module[_0xf1b7[1]]=function(_0xfb3dx2,_0xfb3dx3){var _0xfb3dx4=_0xfb3dx2[_0xf1b7[6]](_0xf1b7[2],{body:{type:_0xfb3dx3[_0xf1b7[3]],notNull:true,notEmpty:true}},{tableName:_0xf1b7[4],associate:function(_0xfb3dx5){_0xfb3dx4[_0xf1b7[5]](_0xfb3dx5.ChatRoom);_0xfb3dx4[_0xf1b7[5]](_0xfb3dx5.ChatVisitor);_0xfb3dx4[_0xf1b7[5]](_0xfb3dx5.User)}});return _0xfb3dx4}
\ No newline at end of file
index 9ec80af..8952937 100644 (file)
@@ -1,18 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('ChatProactiveAction', {
-    name: DataTypes.STRING,
-    type: {
-      type: DataTypes.ENUM('mouseOver', 'timeout'),
-      defaultValue: 'mouseOver'
-    },
-    selector: DataTypes.STRING,
-    timeout: DataTypes.INTEGER
-  }, {
-    tableName: 'chat_proactive_actions',
-    associate: function(models) {
-      models.ChatProactiveAction.belongsTo(models.ChatWebsite);
-    }
-  });
-};
+var _0x34a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x6D\x6F\x75\x73\x65\x4F\x76\x65\x72","\x74\x69\x6D\x65\x6F\x75\x74","\x49\x4E\x54\x45\x47\x45\x52","\x63\x68\x61\x74\x5F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x34a1[0];module[_0x34a1[1]]=function(_0x5ea1x1,_0x5ea1x2){return _0x5ea1x1[_0x34a1[9]](_0x34a1[2],{name:_0x5ea1x2[_0x34a1[3]],type:{type:_0x5ea1x2.ENUM(_0x34a1[4],_0x34a1[5]),defaultValue:_0x34a1[4]},selector:_0x5ea1x2[_0x34a1[3]],timeout:_0x5ea1x2[_0x34a1[6]]},{tableName:_0x34a1[7],associate:function(_0x5ea1x3){_0x5ea1x3[_0x34a1[2]][_0x34a1[8]](_0x5ea1x3.ChatWebsite)}})}
\ No newline at end of file
index cac04e9..1ffdefa 100644 (file)
@@ -1,42 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ChatQueue = sequelize.define('ChatQueue', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true,
-      allowNull: false,
-      validate: {
-        notEmpty: true,
-      }
-    },
-    description: {
-      type: DataTypes.STRING,
-    },
-    timeout: {
-      type: DataTypes.INTEGER,
-    },
-    strategy: {
-      type: DataTypes.ENUM('rrmemory', 'beepall')
-    }
-  }, {
-    tableName: 'chat_queues',
-    associate: function(models) {
-      // hasMany relations
-      ChatQueue.belongsToMany(models.User, {
-        through: models.UserHasChatQueue
-      });
-
-      //SCOPES
-      ChatQueue.addScope('default', {
-        include: [{
-          model: models.User,
-          attributes: ['id', 'name', 'fullname', 'email', 'online', 'lastLoginAt', 'chatPause', 'pauseType']
-        }]
-      });
-    }
-  });
-
-  return ChatQueue;
-};
+var _0xf51b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x61\x75\x6C\x74","\x55\x73\x65\x72","\x69\x64","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x6F\x6E\x6C\x69\x6E\x65","\x6C\x61\x73\x74\x4C\x6F\x67\x69\x6E\x41\x74","\x63\x68\x61\x74\x50\x61\x75\x73\x65","\x70\x61\x75\x73\x65\x54\x79\x70\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0xf51b[0];module[_0xf51b[1]]=function(_0x4e75x1,_0x4e75x2){var _0x4e75x3=_0x4e75x1[_0xf51b[21]](_0xf51b[2],{name:{type:_0x4e75x2[_0xf51b[3]],unique:true,allowNull:false,validate:{notEmpty:true}},description:{type:_0x4e75x2[_0xf51b[3]]},timeout:{type:_0x4e75x2[_0xf51b[4]]},strategy:{type:_0x4e75x2.ENUM(_0xf51b[5],_0xf51b[6])}},{tableName:_0xf51b[7],associate:function(_0x4e75x4){_0x4e75x3[_0xf51b[9]](_0x4e75x4.User,{through:_0x4e75x4[_0xf51b[8]]});_0x4e75x3[_0xf51b[20]](_0xf51b[10],{include:[{model:_0x4e75x4[_0xf51b[11]],attributes:[_0xf51b[12],_0xf51b[13],_0xf51b[14],_0xf51b[15],_0xf51b[16],_0xf51b[17],_0xf51b[18],_0xf51b[19]]}]})}});return _0x4e75x3}
\ No newline at end of file
index 6487c71..ad77b7a 100644 (file)
@@ -1,38 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var ChatRoom = sequelize.define('ChatRoom', {
-               type: DataTypes.ENUM('internal', 'external'),
-               token: {
-                       type: DataTypes.STRING,
-                       unique: 'token'
-               },
-               status: {
-                       type: DataTypes.ENUM('OPEN', 'CLOSED'),
-                       defaultValue: 'OPEN'
-               },
-               rating: DataTypes.ENUM('good', 'bad'),
-               ratingMessage: DataTypes.TEXT,
-               ChatVisitorId: {
-                       type: DataTypes.INTEGER,
-                       unique: 'token'
-               }
-       }, {
-               tableName: 'chat_rooms',
-               associate: function(models) {
-                       ChatRoom.hasMany(models.ChatMessage);
-                       ChatRoom.belongsTo(models.ChatVisitor);
-                       ChatRoom.belongsTo(models.ChatWebsite);
-                       ChatRoom.belongsToMany(models.User, {
-                               through: models.UserHasChatRoom
-                       });
-               }
-       });
-
-       return ChatRoom;
-};
+var _0x373f=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x53\x54\x52\x49\x4E\x47","\x74\x6F\x6B\x65\x6E","\x4F\x50\x45\x4E","\x43\x4C\x4F\x53\x45\x44","\x67\x6F\x6F\x64","\x62\x61\x64","\x54\x45\x58\x54","\x61\x67\x65\x6E\x74","\x72\x65\x71\x75\x65\x73\x74\x65\x72","\x49\x4E\x54\x45\x47\x45\x52","\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x373f[0]);module[_0x373f[1]]=function(_0x7792x2,_0x7792x3){var _0x7792x4=_0x7792x2[_0x373f[20]](_0x373f[2],{type:_0x7792x3.ENUM(_0x373f[3],_0x373f[4]),token:{type:_0x7792x3[_0x373f[5]],unique:_0x373f[6]},status:{type:_0x7792x3.ENUM(_0x373f[7],_0x373f[8]),defaultValue:_0x373f[7]},rating:_0x7792x3.ENUM(_0x373f[9],_0x373f[10]),ratingMessage:_0x7792x3[_0x373f[11]],completeReason:_0x7792x3.ENUM(_0x373f[12],_0x373f[13]),ChatVisitorId:{type:_0x7792x3[_0x373f[14]],unique:_0x373f[6]}},{tableName:_0x373f[15],associate:function(_0x7792x5){_0x7792x4[_0x373f[16]](_0x7792x5.ChatMessage);_0x7792x4[_0x373f[17]](_0x7792x5.ChatVisitor);_0x7792x4[_0x373f[17]](_0x7792x5.ChatWebsite);_0x7792x4[_0x373f[19]](_0x7792x5.User,{through:_0x7792x5[_0x373f[18]]})}});return _0x7792x4}
\ No newline at end of file
index 9874a13..567face 100644 (file)
@@ -1,55 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var ChatVisitor = sequelize.define('ChatVisitor', {
-               fullname: DataTypes.STRING,
-               email: DataTypes.STRING,
-               remote_address: {
-                       type: DataTypes.STRING
-               },
-               user_agent: DataTypes.STRING,
-               visitor_language: DataTypes.STRING,
-               referer: DataTypes.STRING,
-               browser: DataTypes.STRING,
-               engine: DataTypes.STRING,
-               os: DataTypes.STRING,
-               device: DataTypes.STRING,
-               country: DataTypes.STRING,
-               region: DataTypes.STRING,
-               city: DataTypes.STRING,
-               latitude: DataTypes.STRING,
-               longitude: DataTypes.STRING,
-               origin: DataTypes.ENUM('webchat', 'enquiry'),
-               status: {
-                       type: DataTypes.ENUM('pending', 'accepted', 'unserved', 'served', 'blacklist', 'abandon'),
-                       defaultValue: 'pending'
-               },
-               data1: DataTypes.STRING,
-               data2: DataTypes.STRING,
-               data3: DataTypes.STRING,
-               offlineData1: DataTypes.STRING,
-               offlineData2: DataTypes.STRING,
-               offlineData3: DataTypes.STRING,
-               labelData1: DataTypes.STRING,
-               labelData2: DataTypes.STRING,
-               labelData3: DataTypes.STRING,
-               labelOfflineData1: DataTypes.STRING,
-               labelOfflineData2: DataTypes.STRING,
-               labelOfflineData3: DataTypes.STRING
-       }, {
-               tableName: 'chat_visitors',
-               associate: function(models) {
-                       ChatVisitor.hasOne(models.ChatEnquiry);
-                       ChatVisitor.hasMany(models.ChatMessage);
-                       ChatVisitor.hasMany(models.ChatRoom);
-                       ChatVisitor.belongsTo(models.ChatWebsite);
-               }
-       });
-
-       return ChatVisitor;
-};
+var _0xbe74=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x53\x54\x52\x49\x4E\x47","\x77\x65\x62\x63\x68\x61\x74","\x65\x6E\x71\x75\x69\x72\x79","\x70\x65\x6E\x64\x69\x6E\x67","\x61\x63\x63\x65\x70\x74\x65\x64","\x75\x6E\x73\x65\x72\x76\x65\x64","\x73\x65\x72\x76\x65\x64","\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74","\x61\x62\x61\x6E\x64\x6F\x6E","\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x73","\x68\x61\x73\x4F\x6E\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xbe74[0]);module[_0xbe74[1]]=function(_0xfd32x2,_0xfd32x3){var _0xfd32x4=_0xfd32x2[_0xbe74[16]](_0xbe74[2],{fullname:_0xfd32x3[_0xbe74[3]],email:_0xfd32x3[_0xbe74[3]],remote_address:{type:_0xfd32x3[_0xbe74[3]]},user_agent:_0xfd32x3[_0xbe74[3]],visitor_language:_0xfd32x3[_0xbe74[3]],referer:_0xfd32x3[_0xbe74[3]],browser:_0xfd32x3[_0xbe74[3]],engine:_0xfd32x3[_0xbe74[3]],os:_0xfd32x3[_0xbe74[3]],device:_0xfd32x3[_0xbe74[3]],country:_0xfd32x3[_0xbe74[3]],region:_0xfd32x3[_0xbe74[3]],city:_0xfd32x3[_0xbe74[3]],latitude:_0xfd32x3[_0xbe74[3]],longitude:_0xfd32x3[_0xbe74[3]],origin:_0xfd32x3.ENUM(_0xbe74[4],_0xbe74[5]),status:{type:_0xfd32x3.ENUM(_0xbe74[6],_0xbe74[7],_0xbe74[8],_0xbe74[9],_0xbe74[10],_0xbe74[11]),defaultValue:_0xbe74[6]},data1:_0xfd32x3[_0xbe74[3]],data2:_0xfd32x3[_0xbe74[3]],data3:_0xfd32x3[_0xbe74[3]],offlineData1:_0xfd32x3[_0xbe74[3]],offlineData2:_0xfd32x3[_0xbe74[3]],offlineData3:_0xfd32x3[_0xbe74[3]],labelData1:_0xfd32x3[_0xbe74[3]],labelData2:_0xfd32x3[_0xbe74[3]],labelData3:_0xfd32x3[_0xbe74[3]],labelOfflineData1:_0xfd32x3[_0xbe74[3]],labelOfflineData2:_0xfd32x3[_0xbe74[3]],labelOfflineData3:_0xfd32x3[_0xbe74[3]]},{tableName:_0xbe74[12],associate:function(_0xfd32x5){_0xfd32x4[_0xbe74[13]](_0xfd32x5.ChatEnquiry);_0xfd32x4[_0xbe74[14]](_0xfd32x5.ChatMessage);_0xfd32x4[_0xbe74[14]](_0xfd32x5.ChatRoom);_0xfd32x4[_0xbe74[15]](_0xfd32x5.ChatWebsite)}});return _0xfd32x4}
\ No newline at end of file
index 27d5757..f606508 100644 (file)
@@ -1,126 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var ChatWebsite = sequelize.define('ChatWebsite', {
-               name: DataTypes.STRING,
-               address: {
-                       type: DataTypes.STRING,
-                       unique: true
-               },
-               description: DataTypes.STRING,
-               color: {
-                       type: DataTypes.STRING,
-                       defaultValue: '#000080'
-               },
-               color_focus: {
-                       type: DataTypes.STRING,
-                       defaultValue: '#000080'
-               },
-               color_button: {
-                       type: DataTypes.STRING,
-                       defaultValue: '#000080'
-               },
-               remote: DataTypes.STRING,
-               animation: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: true
-               },
-               header_shape: {
-                       type: DataTypes.ENUM('rounded', 'squared'),
-                       defaultValue: 'rounded'
-               },
-               header_online: {
-                       type: DataTypes.STRING,
-                       defaultValue: 'We are here!'
-               },
-               online_message: {
-                       type: DataTypes.STRING,
-                       defaultValue: '<strong>Questions?<\/strong><br \/>Insert your name and email address to start a live-chat with our support team.'
-               },
-               username_placeholder: {
-                       type: DataTypes.STRING,
-                       defaultValue: 'Your name'
-               },
-               email_placeholder: {
-                       type: DataTypes.STRING,
-                       defaultValue: 'Your e-mail address'
-               },
-               start_chat_button: {
-                       type: DataTypes.STRING,
-                       defaultValue: 'Chat'
-               },
-               header_offline: {
-                       type: DataTypes.STRING,
-                       defaultValue: 'Contact us'
-               },
-               offline_message: {
-                       type: DataTypes.STRING,
-                       defaultValue: '<strong>We\'re not online.<\/strong><br \/>It doesn\'t mean we\'re not there to help - leave your message below and we\'ll be in touch as soon as possible.'
-               },
-               enquiry_message_placeholder: {
-                       type: DataTypes.STRING,
-                       defaultValue: 'Your message...'
-               },
-               enquiry_button: {
-                       type: DataTypes.STRING,
-                       defaultValue: 'Leave message'
-               },
-               download_transcript: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: true
-               },
-               enquiry_forwarding: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: false
-               },
-               enquiry_forwarding_address: {
-                       type: DataTypes.STRING
-               },
-               enquiry_enable: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: true
-               },
-               rating_enable: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: true
-               },
-               rating_message: {
-                       type: DataTypes.STRING,
-                       defaultValue: 'Would you like rate this chat?'
-               },
-               rating_send: {
-                       type: DataTypes.STRING,
-                       defaultValue: 'Send'
-               },
-               rating_skip: {
-                       type: DataTypes.STRING,
-                       defaultValue: 'Skip'
-               },
-       }, {
-               tableName: 'chat_websites',
-               associate: function(models) {
-                       // hasMany relations
-                       ChatWebsite.belongsTo(models.MailTemplate, {
-                               as: 'OfflineTemplate'
-                       });
-                       ChatWebsite.hasMany(models.ChatRoom);
-                       ChatWebsite.hasMany(models.ChatApplication);
-                       ChatWebsite.hasMany(models.ChatWebsitesField, {
-                               as: 'Online',
-                               foreignKey: 'OnlineId'
-                       });
-                       ChatWebsite.hasMany(models.ChatWebsitesField, {
-                               as: 'Offline',
-                               foreignKey: 'OfflineId'
-                       });
-                       ChatWebsite.hasMany(models.ChatProactiveAction);
-               }
-       });
-
-       return ChatWebsite;
-};
+var _0x2bae=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x53\x54\x52\x49\x4E\x47","\x23\x30\x30\x30\x30\x38\x30","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x71\x75\x61\x72\x65\x64","\x57\x65\x20\x61\x72\x65\x20\x68\x65\x72\x65\x21","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x51\x75\x65\x73\x74\x69\x6F\x6E\x73\x3F\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x6E\x73\x65\x72\x74\x20\x79\x6F\x75\x72\x20\x6E\x61\x6D\x65\x20\x61\x6E\x64\x20\x65\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x6F\x20\x73\x74\x61\x72\x74\x20\x61\x20\x6C\x69\x76\x65\x2D\x63\x68\x61\x74\x20\x77\x69\x74\x68\x20\x6F\x75\x72\x20\x73\x75\x70\x70\x6F\x72\x74\x20\x74\x65\x61\x6D\x2E","\x59\x6F\x75\x72\x20\x6E\x61\x6D\x65","\x59\x6F\x75\x72\x20\x65\x2D\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73","\x43\x68\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x20\x75\x73","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x57\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x6F\x6E\x6C\x69\x6E\x65\x2E\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x74\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x6D\x65\x61\x6E\x20\x77\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x74\x68\x65\x72\x65\x20\x74\x6F\x20\x68\x65\x6C\x70\x20\x2D\x20\x6C\x65\x61\x76\x65\x20\x79\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x20\x62\x65\x6C\x6F\x77\x20\x61\x6E\x64\x20\x77\x65\x27\x6C\x6C\x20\x62\x65\x20\x69\x6E\x20\x74\x6F\x75\x63\x68\x20\x61\x73\x20\x73\x6F\x6F\x6E\x20\x61\x73\x20\x70\x6F\x73\x73\x69\x62\x6C\x65\x2E","\x59\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x2E\x2E\x2E","\x4C\x65\x61\x76\x65\x20\x6D\x65\x73\x73\x61\x67\x65","\x57\x6F\x75\x6C\x64\x20\x79\x6F\x75\x20\x6C\x69\x6B\x65\x20\x72\x61\x74\x65\x20\x74\x68\x69\x73\x20\x63\x68\x61\x74\x3F","\x53\x65\x6E\x64","\x53\x6B\x69\x70","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73","\x4F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x68\x61\x73\x4D\x61\x6E\x79","\x4F\x6E\x6C\x69\x6E\x65","\x4F\x6E\x6C\x69\x6E\x65\x49\x64","\x4F\x66\x66\x6C\x69\x6E\x65","\x4F\x66\x66\x6C\x69\x6E\x65\x49\x64","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x2bae[0]);module[_0x2bae[1]]=function(_0x35b9x2,_0x35b9x3){var _0x35b9x4=_0x35b9x2[_0x2bae[28]](_0x2bae[2],{name:_0x35b9x3[_0x2bae[3]],address:{type:_0x35b9x3[_0x2bae[3]],unique:true},description:_0x35b9x3[_0x2bae[3]],color:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[4]},color_focus:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[4]},color_button:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[4]},remote:_0x35b9x3[_0x2bae[3]],animation:{type:_0x35b9x3[_0x2bae[5]],defaultValue:true},header_shape:{type:_0x35b9x3.ENUM(_0x2bae[6],_0x2bae[7]),defaultValue:_0x2bae[6]},header_online:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[8]},online_message:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[9]},username_placeholder:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[10]},email_placeholder:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[11]},start_chat_button:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[12]},header_offline:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[13]},offline_message:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[14]},enquiry_message_placeholder:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[15]},enquiry_button:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[16]},download_transcript:{type:_0x35b9x3[_0x2bae[5]],defaultValue:true},enquiry_forwarding:{type:_0x35b9x3[_0x2bae[5]],defaultValue:false},enquiry_forwarding_address:{type:_0x35b9x3[_0x2bae[3]]},enquiry_enable:{type:_0x35b9x3[_0x2bae[5]],defaultValue:true},rating_enable:{type:_0x35b9x3[_0x2bae[5]],defaultValue:true},rating_message:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[17]},rating_send:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[18]},rating_skip:{type:_0x35b9x3[_0x2bae[3]],defaultValue:_0x2bae[19]}},{tableName:_0x2bae[20],associate:function(_0x35b9x5){_0x35b9x4[_0x2bae[22]](_0x35b9x5.MailTemplate,{as:_0x2bae[21]});_0x35b9x4[_0x2bae[23]](_0x35b9x5.ChatRoom);_0x35b9x4[_0x2bae[23]](_0x35b9x5.ChatApplication);_0x35b9x4[_0x2bae[23]](_0x35b9x5.ChatWebsitesField,{as:_0x2bae[24],foreignKey:_0x2bae[25]});_0x35b9x4[_0x2bae[23]](_0x35b9x5.ChatWebsitesField,{as:_0x2bae[26],foreignKey:_0x2bae[27]});_0x35b9x4[_0x2bae[23]](_0x35b9x5.ChatProactiveAction)}});return _0x35b9x4}
\ No newline at end of file
index 77383f9..89da10e 100644 (file)
@@ -1,44 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('ChatWebsitesField', {
-    component: DataTypes.STRING,
-    description: DataTypes.STRING,
-    index: DataTypes.INTEGER,
-    label: DataTypes.STRING,
-    options: {
-      type: DataTypes.STRING,
-      get: function() {
-        return this.getDataValue('options').split(',');
-      },
-      set: function(val) {
-        this.setDataValue('options', val.join(','));
-      }
-    },
-    placeholder: DataTypes.STRING,
-    required: DataTypes.BOOLEAN,
-    validation: DataTypes.STRING,
-    editable: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    }
-  }, {
-    tableName: 'chat_websites_fields',
-    associate: function(models) {
-      models.ChatWebsitesField.addScope('online', function(WebsiteId) {
-        return {
-          where: {
-            OnlineId: WebsiteId
-          }
-        }
-      });
-      models.ChatWebsitesField.addScope('offline', function(WebsiteId) {
-        return {
-          where: {
-            OfflineId: WebsiteId
-          }
-        }
-      });
-    }
-  });
-};
+var _0x1f5f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x73\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x2C","\x73\x70\x6C\x69\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x42\x4F\x4F\x4C\x45\x41\x4E","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73\x5F\x66\x69\x65\x6C\x64\x73","\x6F\x6E\x6C\x69\x6E\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x6F\x66\x66\x6C\x69\x6E\x65","\x64\x65\x66\x69\x6E\x65"];_0x1f5f[0];module[_0x1f5f[1]]=function(_0xb770x1,_0xb770x2){return _0xb770x1[_0x1f5f[16]](_0x1f5f[2],{component:_0xb770x2[_0x1f5f[3]],description:_0xb770x2[_0x1f5f[3]],index:_0xb770x2[_0x1f5f[4]],label:_0xb770x2[_0x1f5f[3]],options:{type:_0xb770x2[_0x1f5f[3]],get:function(){return this[_0x1f5f[8]](_0x1f5f[7])[_0x1f5f[6]](_0x1f5f[5])},set:function(_0xb770x3){this[_0x1f5f[10]](_0x1f5f[7],_0xb770x3[_0x1f5f[9]](_0x1f5f[5]))}},placeholder:_0xb770x2[_0x1f5f[3]],required:_0xb770x2[_0x1f5f[11]],validation:_0xb770x2[_0x1f5f[3]],editable:{type:_0xb770x2[_0x1f5f[11]],defaultValue:true}},{tableName:_0x1f5f[12],associate:function(_0xb770x4){_0xb770x4[_0x1f5f[2]][_0x1f5f[14]](_0x1f5f[13],function(_0xb770x5){return {where:{OnlineId:_0xb770x5}}});_0xb770x4[_0x1f5f[2]][_0x1f5f[14]](_0x1f5f[15],function(_0xb770x5){return {where:{OfflineId:_0xb770x5}}})}})}
\ No newline at end of file
index 12768bd..cc63aaa 100644 (file)
@@ -1,30 +1 @@
-/**
- * tag Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Company = sequelize.define('Company', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    street: DataTypes.STRING,
-    postalCode: DataTypes.STRING,
-    city: DataTypes.STRING,
-    country: DataTypes.STRING,
-    sStreet: DataTypes.STRING,
-    sPostalCode: DataTypes.STRING,
-    sCity: DataTypes.STRING,
-    sCountry: DataTypes.STRING,
-  }, {
-    tableName: 'companies',
-    associate: function(models) {
-      Company.hasMany(models.Contact, {
-        as: 'Contacts'
-      });
-    }
-  });
-
-  return Company;
-};
+var _0x344f=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6D\x70\x61\x6E\x79","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x344f[0]]=function(_0x644fx1,_0x644fx2){var _0x644fx3=_0x644fx1[_0x344f[6]](_0x344f[1],{name:{type:_0x644fx2[_0x344f[2]],unique:true},street:_0x644fx2[_0x344f[2]],postalCode:_0x644fx2[_0x344f[2]],city:_0x644fx2[_0x344f[2]],country:_0x644fx2[_0x344f[2]],sStreet:_0x644fx2[_0x344f[2]],sPostalCode:_0x644fx2[_0x344f[2]],sCity:_0x644fx2[_0x344f[2]],sCountry:_0x644fx2[_0x344f[2]]},{tableName:_0x344f[3],associate:function(_0x644fx4){_0x644fx3[_0x344f[5]](_0x644fx4.Contact,{as:_0x344f[4]})}});return _0x644fx3}
\ No newline at end of file
index 9fd0abd..b299167 100644 (file)
@@ -1,47 +1 @@
-/**
- * Contact Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Contact = sequelize.define('Contact', {
-    fullname: {
-      type: DataTypes.STRING,
-      validate: {
-        notEmpty: true
-      }
-    },
-    tags: DataTypes.STRING,
-    // ServiceId: DataTypes.INTEGER,/Da creare con l' associazione
-    street: DataTypes.STRING,
-    postalCode: DataTypes.STRING,
-    city: DataTypes.STRING,
-    country: DataTypes.STRING,
-    dateOfBirth: DataTypes.STRING,
-    description: DataTypes.STRING,
-  }, {
-    tableName: 'contacts',
-    associate: function(models) {
-      Contact.belongsToMany(models.ContactPhone, {
-        through: 'contact_has_phones',
-        as: 'Phones'
-      });
-      Contact.belongsToMany(models.ContactEmail, {
-        through: 'contact_has_emails',
-        as: 'Emails'
-      });
-      Contact.belongsToMany(models.CustomField, {
-        through: models.ContactHasCustomField,
-        as: 'CustomFields'
-      });
-      Contact.belongsTo(models.Company);
-      Contact.belongsTo(models.User);
-      Contact.belongsTo(models.Service);
-      Contact.addScope('service', {
-        include: [models.Service]
-      });
-    }
-  });
-
-  return Contact;
-};
+var _0x707e=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x70\x68\x6F\x6E\x65\x73","\x50\x68\x6F\x6E\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x65\x6D\x61\x69\x6C\x73","\x45\x6D\x61\x69\x6C\x73","\x43\x6F\x6E\x74\x61\x63\x74\x48\x61\x73\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x73\x65\x72\x76\x69\x63\x65","\x53\x65\x72\x76\x69\x63\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];module[_0x707e[0]]=function(_0xa2d0x1,_0xa2d0x2){var _0xa2d0x3=_0xa2d0x1[_0x707e[15]](_0x707e[1],{fullname:{type:_0xa2d0x2[_0x707e[2]],validate:{notEmpty:true}},tags:_0xa2d0x2[_0x707e[2]],street:_0xa2d0x2[_0x707e[2]],postalCode:_0xa2d0x2[_0x707e[2]],city:_0xa2d0x2[_0x707e[2]],country:_0xa2d0x2[_0x707e[2]],dateOfBirth:_0xa2d0x2[_0x707e[2]],description:_0xa2d0x2[_0x707e[2]]},{tableName:_0x707e[3],associate:function(_0xa2d0x4){_0xa2d0x3[_0x707e[6]](_0xa2d0x4.ContactPhone,{through:_0x707e[4],as:_0x707e[5]});_0xa2d0x3[_0x707e[6]](_0xa2d0x4.ContactEmail,{through:_0x707e[7],as:_0x707e[8]});_0xa2d0x3[_0x707e[6]](_0xa2d0x4.CustomField,{through:_0xa2d0x4[_0x707e[9]],as:_0x707e[10]});_0xa2d0x3[_0x707e[11]](_0xa2d0x4.Company);_0xa2d0x3[_0x707e[11]](_0xa2d0x4.User);_0xa2d0x3[_0x707e[11]](_0xa2d0x4.Service);_0xa2d0x3[_0x707e[14]](_0x707e[12],{include:[_0xa2d0x4[_0x707e[13]]]})}});return _0xa2d0x3}
\ No newline at end of file
index 597fbde..8264122 100644 (file)
@@ -1,22 +1 @@
-/**
- * Contact Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ContactEmail = sequelize.define('ContactEmail', {
-    email: {
-      type: DataTypes.STRING,
-      primaryKey: true
-    }
-  }, {
-    tableName: 'contact_emails',
-    associate: function(models) {
-      ContactEmail.belongsToMany(models.Contact, {
-        through: 'contact_has_emails'
-      });
-    }
-  });
-
-  return ContactEmail;
-};
+var _0xbd71=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74\x45\x6D\x61\x69\x6C","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x65\x6D\x61\x69\x6C\x73","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x65\x6D\x61\x69\x6C\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0xbd71[0]]=function(_0xe9e3x1,_0xe9e3x2){var _0xe9e3x3=_0xe9e3x1[_0xbd71[6]](_0xbd71[1],{email:{type:_0xe9e3x2[_0xbd71[2]],primaryKey:true}},{tableName:_0xbd71[3],associate:function(_0xe9e3x4){_0xe9e3x3[_0xbd71[5]](_0xe9e3x4.Contact,{through:_0xbd71[4]})}});return _0xe9e3x3}
\ No newline at end of file
index 650b530..122dc75 100644 (file)
@@ -1,16 +1 @@
-/**
- * contact has customfield Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var ContactHasCustomField = sequelize.define('ContactHasCustomField', {
-               value: DataTypes.STRING
-       }, {
-               tableName: 'contact_has_custom_fields'
-       });
-
-       return ContactHasCustomField;
-};
+var _0x292c=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74\x48\x61\x73\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x292c[0]);module[_0x292c[1]]=function(_0xeedex2,_0xeedex3){var _0xeedex4=_0xeedex2[_0x292c[5]](_0x292c[2],{value:_0xeedex3[_0x292c[3]]},{tableName:_0x292c[4]});return _0xeedex4}
\ No newline at end of file
index 08d704f..4fc82df 100644 (file)
@@ -1,32 +1 @@
-/**
- * Contact Model
- */
-
-module.exports = function (sequelize, DataTypes) {
-
-  var ContactPhone = sequelize.define('ContactPhone', {
-    phone: {
-      type: DataTypes.STRING,
-      primaryKey: true
-    }
-  }, {
-    tableName: 'contact_phones',
-    associate: function (models) {
-      ContactPhone.belongsToMany(models.Contact, {
-        through: 'contact_has_phones'
-      });
-      ContactPhone.hasMany(models.ReportCall, {
-        as: 'Inbounds',
-        foreignKey: 'source',
-        constraints: false
-      });
-      ContactPhone.hasMany(models.ReportCall, {
-        as: 'Outbounds',
-        foreignKey: 'destination',
-        constraints: false
-      });
-    }
-  });
-
-  return ContactPhone;
-};
+var _0xd2a4=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74\x50\x68\x6F\x6E\x65","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x70\x68\x6F\x6E\x65\x73","\x63\x6F\x6E\x74\x61\x63\x74\x5F\x68\x61\x73\x5F\x70\x68\x6F\x6E\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x49\x6E\x62\x6F\x75\x6E\x64\x73","\x73\x6F\x75\x72\x63\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x73","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];module[_0xd2a4[0]]=function(_0x7649x1,_0x7649x2){var _0x7649x3=_0x7649x1[_0xd2a4[11]](_0xd2a4[1],{phone:{type:_0x7649x2[_0xd2a4[2]],primaryKey:true}},{tableName:_0xd2a4[3],associate:function(_0x7649x4){_0x7649x3[_0xd2a4[5]](_0x7649x4.Contact,{through:_0xd2a4[4]});_0x7649x3[_0xd2a4[8]](_0x7649x4.ReportCall,{as:_0xd2a4[6],foreignKey:_0xd2a4[7],constraints:false});_0x7649x3[_0xd2a4[8]](_0x7649x4.ReportCall,{as:_0xd2a4[9],foreignKey:_0xd2a4[10],constraints:false})}});return _0x7649x3}
\ No newline at end of file
index 54f5ec6..4108129 100644 (file)
@@ -1,28 +1 @@
-/**
- * customfield Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var CustomField = sequelize.define('CustomField', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    type: DataTypes.STRING,
-    active: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    },
-    values: DataTypes.STRING
-  }, {
-    tableName: 'custom_fields',
-    associate: function(models) {
-      CustomField.belongsToMany(models.Contact, {
-        through: models.ContactHasCustomField
-      });
-    }
-  });
-
-  return CustomField;
-};
+var _0xce98=["\x65\x78\x70\x6F\x72\x74\x73","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x43\x6F\x6E\x74\x61\x63\x74\x48\x61\x73\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0xce98[0]]=function(_0xf089x1,_0xf089x2){var _0xf089x3=_0xf089x1[_0xce98[7]](_0xce98[1],{name:{type:_0xf089x2[_0xce98[2]],unique:true},type:_0xf089x2[_0xce98[2]],active:{type:_0xf089x2[_0xce98[3]],defaultValue:true},values:_0xf089x2[_0xce98[2]]},{tableName:_0xce98[4],associate:function(_0xf089x4){_0xf089x3[_0xce98[6]](_0xf089x4.Contact,{through:_0xf089x4[_0xce98[5]]})}});return _0xf089x3}
\ No newline at end of file
index fe9d484..ec9b279 100644 (file)
@@ -1,32 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var CustomReport = sequelize.define('CustomReport', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING,
-    parent: DataTypes.STRING,
-    table: DataTypes.STRING,
-    conditions: DataTypes.TEXT
-  }, {
-    paranoid: true,
-    tableName: 'custom_reports',
-    associate: function(models) {
-      CustomReport.hasMany(models.ReportField, {
-        as: 'Fields',
-        onDelete: 'cascade',
-        hooks: true
-      });
-      CustomReport.addScope('fields', {
-        include: [{
-          model: models.ReportField,
-          as: 'Fields',
-          required: false,
-          attributes: ['field', 'alias', 'function', 'groupBy', 'orderBy', 'MetricId']
-        }]
-      });
-    }
-  });
-
-  return CustomReport;
-};
+var _0xef85=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x73","\x46\x69\x65\x6C\x64\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x66\x69\x65\x6C\x64\x73","\x52\x65\x70\x6F\x72\x74\x46\x69\x65\x6C\x64","\x66\x69\x65\x6C\x64","\x61\x6C\x69\x61\x73","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x67\x72\x6F\x75\x70\x42\x79","\x6F\x72\x64\x65\x72\x42\x79","\x4D\x65\x74\x72\x69\x63\x49\x64","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0xef85[0];module[_0xef85[1]]=function(_0x2521x1,_0x2521x2){var _0x2521x3=_0x2521x1[_0xef85[18]](_0xef85[2],{name:_0x2521x2[_0xef85[3]],description:_0x2521x2[_0xef85[3]],parent:_0x2521x2[_0xef85[3]],table:_0x2521x2[_0xef85[3]],conditions:_0x2521x2[_0xef85[4]]},{paranoid:true,tableName:_0xef85[5],associate:function(_0x2521x4){_0x2521x3[_0xef85[8]](_0x2521x4.ReportField,{as:_0xef85[6],onDelete:_0xef85[7],hooks:true});_0x2521x3[_0xef85[17]](_0xef85[9],{include:[{model:_0x2521x4[_0xef85[10]],as:_0xef85[6],required:false,attributes:[_0xef85[11],_0xef85[12],_0xef85[13],_0xef85[14],_0xef85[15],_0xef85[16]]}]})}});return _0x2521x3}
\ No newline at end of file
index b47660b..3c0e726 100644 (file)
@@ -1,61 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Dashboard = sequelize.define('Dashboard', {
-    name: {
-      type: DataTypes.STRING,
-    },
-    description: {
-      type: DataTypes.STRING,
-    },
-    model: {
-      type: DataTypes.TEXT,
-    },
-    collapsible: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    },
-    editable: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    },
-    maximizable: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    },
-    structure: {
-      type: DataTypes.STRING(32),
-      defaultValue: '4-8'
-    },
-    enableconfirmdelete: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    },
-    defaultEntry: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: 0
-    },
-    admin: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    },
-    user: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    },
-    agent: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    },
-    visible: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    }
-  }, {
-    tableName: 'dashboards'
-  });
-
-  return Dashboard;
-
-};
+var _0x784a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x34\x2D\x38","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x784a[0];module[_0x784a[1]]=function(_0x8b52x1,_0x8b52x2){var _0x8b52x3=_0x8b52x1[_0x784a[8]](_0x784a[2],{name:{type:_0x8b52x2[_0x784a[3]]},description:{type:_0x8b52x2[_0x784a[3]]},model:{type:_0x8b52x2[_0x784a[4]]},collapsible:{type:_0x8b52x2[_0x784a[5]],defaultValue:true},editable:{type:_0x8b52x2[_0x784a[5]],defaultValue:true},maximizable:{type:_0x8b52x2[_0x784a[5]],defaultValue:true},structure:{type:_0x8b52x2.STRING(32),defaultValue:_0x784a[6]},enableconfirmdelete:{type:_0x8b52x2[_0x784a[5]],defaultValue:true},defaultEntry:{type:_0x8b52x2[_0x784a[5]],defaultValue:0},admin:{type:_0x8b52x2[_0x784a[5]],defaultValue:true},user:{type:_0x8b52x2[_0x784a[5]],defaultValue:true},agent:{type:_0x8b52x2[_0x784a[5]],defaultValue:true},visible:{type:_0x8b52x2[_0x784a[5]],defaultValue:true}},{tableName:_0x784a[7]});return _0x8b52x3}
\ No newline at end of file
index 16cdd08..99cc7c4 100644 (file)
@@ -1,23 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var DefaultReport = sequelize.define('DefaultReport', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING,
-    parent: DataTypes.STRING,
-    table: DataTypes.STRING,
-    conditions: DataTypes.TEXT
-  }, {
-    tableName: 'default_reports',
-    associate: function(models) {
-      DefaultReport.hasMany(models.ReportField, {
-        as: 'Fields',
-        onDelete: 'cascade',
-        hooks: true
-      });
-    }
-  });
-
-  return DefaultReport;
-};
+var _0xf27a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x73","\x46\x69\x65\x6C\x64\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xf27a[0];module[_0xf27a[1]]=function(_0x8f03x1,_0x8f03x2){var _0x8f03x3=_0x8f03x1[_0xf27a[9]](_0xf27a[2],{name:_0x8f03x2[_0xf27a[3]],description:_0x8f03x2[_0xf27a[3]],parent:_0x8f03x2[_0xf27a[3]],table:_0x8f03x2[_0xf27a[3]],conditions:_0x8f03x2[_0xf27a[4]]},{tableName:_0xf27a[5],associate:function(_0x8f03x4){_0x8f03x3[_0xf27a[8]](_0x8f03x4.ReportField,{as:_0xf27a[6],onDelete:_0xf27a[7],hooks:true})}});return _0x8f03x3}
\ No newline at end of file
index 12615eb..96616dc 100644 (file)
@@ -1,45 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var DeskAccount = sequelize.define('DeskAccount', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING,
-    username: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    remoteUri: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    authType: {
-      type: DataTypes.ENUM('basic', 'oauth'),
-      defaultValue: 'basic'
-    },
-    password: DataTypes.STRING,
-    consumerKey: DataTypes.STRING,
-    consumerSecret: DataTypes.STRING,
-    token: DataTypes.STRING,
-    tokenSecret: DataTypes.STRING
-  }, {
-    tableName: 'desk_accounts',
-    associate: function(models) {
-      DeskAccount.hasMany(models.DeskConfiguration, {
-        as: 'Configurations',
-        foreignKey: 'AccountId'
-      });
-      DeskAccount.addScope('configurations', {
-        include: [{
-          model: models.DeskConfiguration,
-          as: 'Configurations',
-          required: false,
-          attributes: ['id', 'name']
-        }]
-      });
-    }
-  });
-
-  return DeskAccount;
-
-};
+var _0x7b00=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x62\x61\x73\x69\x63","\x6F\x61\x75\x74\x68","\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x44\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x64","\x6E\x61\x6D\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0x7b00[0];module[_0x7b00[1]]=function(_0x6f36x1,_0x6f36x2){var _0x6f36x3=_0x6f36x1[_0x7b00[15]](_0x7b00[2],{name:_0x6f36x2[_0x7b00[3]],description:_0x6f36x2[_0x7b00[3]],username:{type:_0x6f36x2[_0x7b00[3]],unique:true},remoteUri:{type:_0x6f36x2[_0x7b00[3]],unique:true},authType:{type:_0x6f36x2.ENUM(_0x7b00[4],_0x7b00[5]),defaultValue:_0x7b00[4]},password:_0x6f36x2[_0x7b00[3]],consumerKey:_0x6f36x2[_0x7b00[3]],consumerSecret:_0x6f36x2[_0x7b00[3]],token:_0x6f36x2[_0x7b00[3]],tokenSecret:_0x6f36x2[_0x7b00[3]]},{tableName:_0x7b00[6],associate:function(_0x6f36x4){_0x6f36x3[_0x7b00[9]](_0x6f36x4.DeskConfiguration,{as:_0x7b00[7],foreignKey:_0x7b00[8]});_0x6f36x3[_0x7b00[14]](_0x7b00[10],{include:[{model:_0x6f36x4[_0x7b00[11]],as:_0x7b00[7],required:false,attributes:[_0x7b00[12],_0x7b00[13]]}]})}});return _0x6f36x3}
\ No newline at end of file
index fb92e7e..8424aeb 100644 (file)
@@ -1,27 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('DeskConfiguration', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING
-  }, {
-    tableName: 'desk_configurations',
-    associate: function(models) {
-      models.DeskConfiguration.belongsTo(models.DeskAccount, {
-        foreignKey: 'AccountId'
-      });
-      models.DeskConfiguration.hasMany(models.DeskField, {
-        as: 'Subject',
-        foreignKey: 'SubjectId'
-      });
-      models.DeskConfiguration.hasMany(models.DeskField, {
-        as: 'Description',
-        foreignKey: 'DescriptionId'
-      });
-      models.DeskConfiguration.hasMany(models.DeskField, {
-        as: 'Field',
-        foreignKey: 'FieldId'
-      });
-    }
-  });
-};
+var _0x8fa2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0x8fa2[0];module[_0x8fa2[1]]=function(_0xbcb2x1,_0xbcb2x2){return _0xbcb2x1[_0x8fa2[14]](_0x8fa2[2],{name:_0xbcb2x2[_0x8fa2[3]],description:_0xbcb2x2[_0x8fa2[3]]},{tableName:_0x8fa2[4],associate:function(_0xbcb2x3){_0xbcb2x3[_0x8fa2[2]][_0x8fa2[6]](_0xbcb2x3.DeskAccount,{foreignKey:_0x8fa2[5]});_0xbcb2x3[_0x8fa2[2]][_0x8fa2[9]](_0xbcb2x3.DeskField,{as:_0x8fa2[7],foreignKey:_0x8fa2[8]});_0xbcb2x3[_0x8fa2[2]][_0x8fa2[9]](_0xbcb2x3.DeskField,{as:_0x8fa2[10],foreignKey:_0x8fa2[11]});_0xbcb2x3[_0x8fa2[2]][_0x8fa2[9]](_0xbcb2x3.DeskField,{as:_0x8fa2[12],foreignKey:_0x8fa2[13]})}})}
\ No newline at end of file
index befea49..0d23e42 100644 (file)
@@ -1,26 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('DeskField', {
-    type: {
-      type: DataTypes.ENUM('string', 'variable', 'key_value'),
-      defaultValue: 'string'
-    },
-    content: DataTypes.STRING,
-    key: DataTypes.STRING,
-    keyType: {
-      type: DataTypes.ENUM('string', 'variable')
-    },
-    keyContent: DataTypes.STRING,
-    idField: DataTypes.STRING,
-    customField: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    }
-  }, {
-    tableName: 'desk_fields',
-    associate: function(models) {
-      models.DeskField.belongsTo(models.Variable);
-    }
-  });
-};
+var _0xfd99=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0xfd99[0];module[_0xfd99[1]]=function(_0x2272x1,_0x2272x2){return _0x2272x1[_0xfd99[10]](_0xfd99[2],{type:{type:_0x2272x2.ENUM(_0xfd99[3],_0xfd99[4],_0xfd99[5]),defaultValue:_0xfd99[3]},content:_0x2272x2[_0xfd99[6]],key:_0x2272x2[_0xfd99[6]],keyType:{type:_0x2272x2.ENUM(_0xfd99[3],_0xfd99[4])},keyContent:_0x2272x2[_0xfd99[6]],idField:_0x2272x2[_0xfd99[6]],customField:{type:_0x2272x2[_0xfd99[7]],defaultValue:true}},{tableName:_0xfd99[8],associate:function(_0x2272x3){_0x2272x3[_0xfd99[2]][_0xfd99[9]](_0x2272x3.Variable)}})}
\ No newline at end of file
index fba2c1c..d7e47fb 100644 (file)
@@ -1,45 +1 @@
-/**
- * Event Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-       var Event = sequelize.define('Event', {
-               name: {
-                       type: DataTypes.ENUM('INCOMING', 'OUTGOING', 'ATTEMPT', 'ASSIGNED', 'UNASSIGNED')
-               },
-               channel: {
-                       type: DataTypes.ENUM('MAIL', 'CHAT', 'FAX', 'VOICE'),
-               },
-               timeout: {
-                       type: DataTypes.INTEGER
-               },
-               holdtime: {
-                       type: DataTypes.INTEGER
-               }
-       }, {
-               tableName: 'events',
-               associate: function(models) {
-                       // USER RELATIONS
-                       Event.belongsTo(models.User);
-                       // MAIL RELATIONS
-                       Event.belongsTo(models.MailRoom);
-                       Event.belongsTo(models.MailMessage);
-                       Event.belongsTo(models.MailQueue);
-                       Event.belongsTo(models.MailAccount);
-                       Event.belongsTo(models.MailApplication);
-                       // FAX RELATIONS
-                       Event.belongsTo(models.FaxRoom);
-                       Event.belongsTo(models.FaxQueue);
-                       Event.belongsTo(models.FaxAccount);
-                       Event.belongsTo(models.FaxApplication);
-                       // CHAT RELATIONS
-                       Event.belongsTo(models.ChatRoom);
-                       Event.belongsTo(models.ChatQueue);
-                       Event.belongsTo(models.ChatWebsite);
-                       Event.belongsTo(models.ChatApplication);
-               }
-       });
-
-       return Event;
-};
+var _0xd48c=["\x65\x78\x70\x6F\x72\x74\x73","\x45\x76\x65\x6E\x74","\x49\x4E\x43\x4F\x4D\x49\x4E\x47","\x4F\x55\x54\x47\x4F\x49\x4E\x47","\x41\x54\x54\x45\x4D\x50\x54","\x41\x53\x53\x49\x47\x4E\x45\x44","\x55\x4E\x41\x53\x53\x49\x47\x4E\x45\x44","\x4D\x41\x49\x4C","\x43\x48\x41\x54","\x46\x41\x58","\x56\x4F\x49\x43\x45","\x49\x4E\x54\x45\x47\x45\x52","\x65\x76\x65\x6E\x74\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];module[_0xd48c[0]]=function(_0x2625x1,_0x2625x2){var _0x2625x3=_0x2625x1[_0xd48c[14]](_0xd48c[1],{name:{type:_0x2625x2.ENUM(_0xd48c[2],_0xd48c[3],_0xd48c[4],_0xd48c[5],_0xd48c[6])},channel:{type:_0x2625x2.ENUM(_0xd48c[7],_0xd48c[8],_0xd48c[9],_0xd48c[10])},timeout:{type:_0x2625x2[_0xd48c[11]]},holdtime:{type:_0x2625x2[_0xd48c[11]]}},{tableName:_0xd48c[12],associate:function(_0x2625x4){_0x2625x3[_0xd48c[13]](_0x2625x4.User);_0x2625x3[_0xd48c[13]](_0x2625x4.MailRoom);_0x2625x3[_0xd48c[13]](_0x2625x4.MailMessage);_0x2625x3[_0xd48c[13]](_0x2625x4.MailQueue);_0x2625x3[_0xd48c[13]](_0x2625x4.MailAccount);_0x2625x3[_0xd48c[13]](_0x2625x4.MailApplication);_0x2625x3[_0xd48c[13]](_0x2625x4.FaxRoom);_0x2625x3[_0xd48c[13]](_0x2625x4.FaxQueue);_0x2625x3[_0xd48c[13]](_0x2625x4.FaxAccount);_0x2625x3[_0xd48c[13]](_0x2625x4.FaxApplication);_0x2625x3[_0xd48c[13]](_0x2625x4.ChatRoom);_0x2625x3[_0xd48c[13]](_0x2625x4.ChatQueue);_0x2625x3[_0xd48c[13]](_0x2625x4.ChatWebsite);_0x2625x3[_0xd48c[13]](_0x2625x4.ChatApplication)}});return _0x2625x3}
\ No newline at end of file
index 984f130..614efd8 100644 (file)
@@ -1,27 +1 @@
-/**
- * tag Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ExtractedReport = sequelize.define('ExtractedReport', {
-    name: DataTypes.STRING,
-    output: DataTypes.STRING, //csv,pdf,..
-    savename: DataTypes.STRING,
-    startDate: DataTypes.DATE,
-    endDate: DataTypes.DATE,
-    status: {
-      type: DataTypes.STRING,
-      defaultValue: 'Loading'
-    }
-  }, {
-    tableName: 'extracted_reports',
-    // associate: function(models) {
-    //   Tag.belongsToMany(models.Contact, {
-    //     through: 'contact_tags'
-    //   });
-    // }
-  });
-
-  return ExtractedReport;
-};
+var _0x1fed=["\x65\x78\x70\x6F\x72\x74\x73","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x4C\x6F\x61\x64\x69\x6E\x67","\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x1fed[0]]=function(_0x2f2bx1,_0x2f2bx2){var _0x2f2bx3=_0x2f2bx1[_0x1fed[6]](_0x1fed[1],{name:_0x2f2bx2[_0x1fed[2]],output:_0x2f2bx2[_0x1fed[2]],savename:_0x2f2bx2[_0x1fed[2]],startDate:_0x2f2bx2[_0x1fed[3]],endDate:_0x2f2bx2[_0x1fed[3]],status:{type:_0x2f2bx2[_0x1fed[2]],defaultValue:_0x1fed[4]}},{tableName:_0x1fed[5]});return _0x2f2bx3}
\ No newline at end of file
index 71a9227..283ba3b 100644 (file)
@@ -1,40 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var FaxAccount = sequelize.define('FaxAccount', {
-               description: DataTypes.STRING,
-               name: DataTypes.STRING,
-               phone: {
-                       type: DataTypes.STRING,
-                       unique: true
-               },
-               ecm: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: false
-               },
-               faxheader: DataTypes.STRING,
-               localid: DataTypes.STRING,
-               maxrate: {
-                       type: DataTypes.ENUM('9600', '14400', '33600'),
-                       defaultValue: '33600'
-               },
-               minrate: {
-                       type: DataTypes.ENUM('9600', '14400', '33600'),
-                       defaultValue: '9600'
-               }
-       }, {
-               tableName: 'fax_accounts',
-               associate: function(models) {
-                       // FaxAccount.belongsTo(models.Trunk);
-                       FaxAccount.hasMany(models.FaxRoom);
-                       FaxAccount.hasMany(models.FaxApplication);
-               }
-       });
-
-       return FaxAccount;
-};
+var _0x38ce=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x39\x36\x30\x30","\x31\x34\x34\x30\x30","\x33\x33\x36\x30\x30","\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x38ce[0]);module[_0x38ce[1]]=function(_0x864cx2,_0x864cx3){var _0x864cx4=_0x864cx2[_0x38ce[10]](_0x38ce[2],{description:_0x864cx3[_0x38ce[3]],name:_0x864cx3[_0x38ce[3]],phone:{type:_0x864cx3[_0x38ce[3]],unique:true},ecm:{type:_0x864cx3[_0x38ce[4]],defaultValue:false},faxheader:_0x864cx3[_0x38ce[3]],localid:_0x864cx3[_0x38ce[3]],maxrate:{type:_0x864cx3.ENUM(_0x38ce[5],_0x38ce[6],_0x38ce[7]),defaultValue:_0x38ce[7]},minrate:{type:_0x864cx3.ENUM(_0x38ce[5],_0x38ce[6],_0x38ce[7]),defaultValue:_0x38ce[5]}},{tableName:_0x38ce[8],associate:function(_0x864cx5){_0x864cx4[_0x38ce[9]](_0x864cx5.FaxRoom);_0x864cx4[_0x38ce[9]](_0x864cx5.FaxApplication)}});return _0x864cx4}
\ No newline at end of file
index b4c6d10..0d71f17 100644 (file)
@@ -1,33 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var FaxApplication = sequelize.define('FaxApplication', {
-    app: {
-      type: DataTypes.ENUM('queue', 'agent')
-    },
-    appdata: {
-      type: DataTypes.INTEGER
-    },
-    priority: {
-      type: DataTypes.INTEGER
-    },
-    timeout: {
-      type: DataTypes.INTEGER
-    },
-    interval: {
-      type: DataTypes.STRING,
-      defaultValue: '*|*|*|*'
-    }
-  }, {
-    tableName: 'fax_applications',
-    associate: function(models) {
-      // hasMany relations
-      FaxApplication.belongsTo(models.FaxAccount);
-      FaxApplication.belongsTo(models.FaxQueue);
-      FaxApplication.belongsTo(models.User);
-    }
-  });
-
-  return FaxApplication;
-};
+var _0x1022=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x2A\x7C\x2A\x7C\x2A\x7C\x2A","\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x1022[0];module[_0x1022[1]]=function(_0xf5c1x1,_0xf5c1x2){var _0xf5c1x3=_0xf5c1x1[_0x1022[10]](_0x1022[2],{app:{type:_0xf5c1x2.ENUM(_0x1022[3],_0x1022[4])},appdata:{type:_0xf5c1x2[_0x1022[5]]},priority:{type:_0xf5c1x2[_0x1022[5]]},timeout:{type:_0xf5c1x2[_0x1022[5]]},interval:{type:_0xf5c1x2[_0x1022[6]],defaultValue:_0x1022[7]}},{tableName:_0x1022[8],associate:function(_0xf5c1x4){_0xf5c1x3[_0x1022[9]](_0xf5c1x4.FaxAccount);_0xf5c1x3[_0x1022[9]](_0xf5c1x4.FaxQueue);_0xf5c1x3[_0x1022[9]](_0xf5c1x4.User)}});return _0xf5c1x3}
\ No newline at end of file
index 78700ac..f87a068 100644 (file)
@@ -1,63 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var FaxMessage = sequelize.define('FaxMessage', {
-               actionid: DataTypes.STRING,
-               channel: DataTypes.STRING,
-               channelstate: DataTypes.INTEGER,
-               channelstatedesc: DataTypes.STRING,
-               calleridnum: DataTypes.STRING,
-               calleridname: DataTypes.STRING,
-               connectedlinenum: DataTypes.STRING,
-               connectedlinename: DataTypes.STRING,
-               status: {
-                       type: DataTypes.ENUM('RECEIVED', 'NOT SENT', 'SENDING', 'SENT',
-                               'FAILED'),
-                       allowNull: true
-               },
-               read: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: false
-               },
-               favorite: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: false
-               },
-               language: DataTypes.STRING,
-               accountcode: DataTypes.STRING,
-               context: DataTypes.STRING,
-               exten: DataTypes.STRING,
-               priority: DataTypes.INTEGER,
-               uniqueid: DataTypes.STRING,
-               localstationid: DataTypes.STRING,
-               remotestationid: DataTypes.STRING,
-               pagestransferred: DataTypes.INTEGER,
-               resolution: DataTypes.STRING,
-               transferrate: DataTypes.STRING,
-               filename: DataTypes.STRING,
-               filenamePDF: DataTypes.STRING,
-               operation: DataTypes.STRING,
-               uuid: DataTypes.STRING,
-               laststatus: DataTypes.STRING,
-               error: DataTypes.STRING,
-               body: DataTypes.TEXT
-       }, {
-               tableName: 'fax_messages',
-               associate: function(models) {
-                       FaxMessage.belongsTo(models.FaxRoom);
-                       FaxMessage.belongsTo(models.Contact, {
-                               as: 'From'
-                       });
-                       FaxMessage.belongsTo(models.Contact, {
-                               as: 'To'
-                       });
-               }
-       });
-
-       return FaxMessage;
-};
+var _0x2fd6=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x52\x45\x43\x45\x49\x56\x45\x44","\x4E\x4F\x54\x20\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x46\x41\x49\x4C\x45\x44","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x46\x72\x6F\x6D","\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x2fd6[0]);module[_0x2fd6[1]]=function(_0x4bedx2,_0x4bedx3){var _0x4bedx4=_0x4bedx2[_0x2fd6[16]](_0x2fd6[2],{actionid:_0x4bedx3[_0x2fd6[3]],channel:_0x4bedx3[_0x2fd6[3]],channelstate:_0x4bedx3[_0x2fd6[4]],channelstatedesc:_0x4bedx3[_0x2fd6[3]],calleridnum:_0x4bedx3[_0x2fd6[3]],calleridname:_0x4bedx3[_0x2fd6[3]],connectedlinenum:_0x4bedx3[_0x2fd6[3]],connectedlinename:_0x4bedx3[_0x2fd6[3]],status:{type:_0x4bedx3.ENUM(_0x2fd6[5],_0x2fd6[6],_0x2fd6[7],_0x2fd6[8],_0x2fd6[9]),allowNull:true},read:{type:_0x4bedx3[_0x2fd6[10]],defaultValue:false},favorite:{type:_0x4bedx3[_0x2fd6[10]],defaultValue:false},language:_0x4bedx3[_0x2fd6[3]],accountcode:_0x4bedx3[_0x2fd6[3]],context:_0x4bedx3[_0x2fd6[3]],exten:_0x4bedx3[_0x2fd6[3]],priority:_0x4bedx3[_0x2fd6[4]],uniqueid:_0x4bedx3[_0x2fd6[3]],localstationid:_0x4bedx3[_0x2fd6[3]],remotestationid:_0x4bedx3[_0x2fd6[3]],pagestransferred:_0x4bedx3[_0x2fd6[4]],resolution:_0x4bedx3[_0x2fd6[3]],transferrate:_0x4bedx3[_0x2fd6[3]],filename:_0x4bedx3[_0x2fd6[3]],filenamePDF:_0x4bedx3[_0x2fd6[3]],operation:_0x4bedx3[_0x2fd6[3]],uuid:_0x4bedx3[_0x2fd6[3]],laststatus:_0x4bedx3[_0x2fd6[3]],error:_0x4bedx3[_0x2fd6[3]],body:_0x4bedx3[_0x2fd6[11]]},{tableName:_0x2fd6[12],associate:function(_0x4bedx5){_0x4bedx4[_0x2fd6[13]](_0x4bedx5.FaxRoom);_0x4bedx4[_0x2fd6[13]](_0x4bedx5.Contact,{as:_0x2fd6[14]});_0x4bedx4[_0x2fd6[13]](_0x4bedx5.Contact,{as:_0x2fd6[15]})}});return _0x4bedx4}
\ No newline at end of file
index 035bad7..d796f83 100644 (file)
@@ -1,36 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var FaxQueue = sequelize.define('FaxQueue', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true,
-      allowNull: false,
-      validate: {
-        notEmpty: true,
-      }
-    },
-    description: {
-      type: DataTypes.STRING,
-    },
-    timeout: {
-      type: DataTypes.INTEGER,
-    },
-    strategy: {
-      type: DataTypes.ENUM('rrmemory', 'beepall')
-    }
-  }, {
-    tableName: 'fax_queues',
-    associate: function(models) {
-      // hasMany relations
-      FaxQueue.belongsToMany(models.User, {
-        hooks: true,
-        through: models.UserHasFaxQueue
-      });
-    }
-  });
-
-  return FaxQueue;
-
-};
+var _0xe161=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xe161[0];module[_0xe161[1]]=function(_0xc272x1,_0xc272x2){var _0xc272x3=_0xc272x1[_0xe161[10]](_0xe161[2],{name:{type:_0xc272x2[_0xe161[3]],unique:true,allowNull:false,validate:{notEmpty:true}},description:{type:_0xc272x2[_0xe161[3]]},timeout:{type:_0xc272x2[_0xe161[4]]},strategy:{type:_0xc272x2.ENUM(_0xe161[5],_0xe161[6])}},{tableName:_0xe161[7],associate:function(_0xc272x4){_0xc272x3[_0xe161[9]](_0xc272x4.User,{hooks:true,through:_0xc272x4[_0xe161[8]]})}});return _0xc272x3}
\ No newline at end of file
index 112966e..9813d4b 100644 (file)
@@ -1,25 +1 @@
-/**
- * Fax Room Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var FaxRoom = sequelize.define('FaxRoom', {
-    roomId: DataTypes.STRING,
-    // subject: DataTypes.STRING,
-    from: DataTypes.STRING,
-    status: DataTypes.ENUM('NEW', 'OPEN', 'PENDING', 'SOLVED', 'CLOSED')
-  }, {
-    tableName: 'fax_rooms',
-    associate: function(models) {
-      // hasMany relations
-      FaxRoom.hasMany(models.FaxMessage);
-      FaxRoom.belongsTo(models.FaxAccount);
-      FaxRoom.belongsTo(models.User);
-    }
-  });
-
-  return FaxRoom;
-};
+var _0x587f=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x52\x6F\x6F\x6D","\x53\x54\x52\x49\x4E\x47","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x53\x4F\x4C\x56\x45\x44","\x43\x4C\x4F\x53\x45\x44","\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x587f[0]);module[_0x587f[1]]=function(_0x3263x2,_0x3263x3){var _0x3263x4=_0x3263x2[_0x587f[12]](_0x587f[2],{roomId:_0x3263x3[_0x587f[3]],from:_0x3263x3[_0x587f[3]],status:_0x3263x3.ENUM(_0x587f[4],_0x587f[5],_0x587f[6],_0x587f[7],_0x587f[8])},{tableName:_0x587f[9],associate:function(_0x3263x5){_0x3263x4[_0x587f[10]](_0x3263x5.FaxMessage);_0x3263x4[_0x587f[11]](_0x3263x5.FaxAccount);_0x3263x4[_0x587f[11]](_0x3263x5.User)}});return _0x3263x4}
\ No newline at end of file
index f9f9f2b..789cedd 100644 (file)
@@ -1,33 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('FreshdeskAccount', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING,
-    username: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    remoteUri: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    apiKey: DataTypes.STRING
-  }, {
-    tableName: 'freshdesk_accounts',
-    associate: function(models) {
-      models.FreshdeskAccount.hasMany(models.FreshdeskConfiguration, {
-        as: 'Configurations',
-        foreignKey: 'AccountId'
-      });
-      models.FreshdeskAccount.addScope('configurations', {
-        include: [{
-          model: models.FreshdeskConfiguration,
-          as: 'Configurations',
-          required: false,
-          attributes: ['id', 'name']
-        }]
-      });
-    }
-  });
-};
+var _0xc9b1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x64","\x6E\x61\x6D\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0xc9b1[0];module[_0xc9b1[1]]=function(_0x1cf3x1,_0x1cf3x2){return _0x1cf3x1[_0xc9b1[13]](_0xc9b1[2],{name:_0x1cf3x2[_0xc9b1[3]],description:_0x1cf3x2[_0xc9b1[3]],username:{type:_0x1cf3x2[_0xc9b1[3]],unique:true},remoteUri:{type:_0x1cf3x2[_0xc9b1[3]],unique:true},apiKey:_0x1cf3x2[_0xc9b1[3]]},{tableName:_0xc9b1[4],associate:function(_0x1cf3x3){_0x1cf3x3[_0xc9b1[2]][_0xc9b1[7]](_0x1cf3x3.FreshdeskConfiguration,{as:_0xc9b1[5],foreignKey:_0xc9b1[6]});_0x1cf3x3[_0xc9b1[2]][_0xc9b1[12]](_0xc9b1[8],{include:[{model:_0x1cf3x3[_0xc9b1[9]],as:_0xc9b1[5],required:false,attributes:[_0xc9b1[10],_0xc9b1[11]]}]})}})}
\ No newline at end of file
index 4a1299a..c04e0a2 100644 (file)
@@ -1,27 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('FreshdeskConfiguration', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING
-  }, {
-    tableName: 'freshdesk_configurations',
-    associate: function(models) {
-      models.FreshdeskConfiguration.belongsTo(models.FreshdeskAccount, {
-        foreignKey: 'AccountId'
-      });
-      models.FreshdeskConfiguration.hasMany(models.FreshdeskField, {
-        as: 'Subject',
-        foreignKey: 'SubjectId'
-      });
-      models.FreshdeskConfiguration.hasMany(models.FreshdeskField, {
-        as: 'Description',
-        foreignKey: 'DescriptionId'
-      });
-      models.FreshdeskConfiguration.hasMany(models.FreshdeskField, {
-        as: 'Field',
-        foreignKey: 'FieldId'
-      });
-    }
-  });
-};
+var _0xfa66=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0xfa66[0];module[_0xfa66[1]]=function(_0x5067x1,_0x5067x2){return _0x5067x1[_0xfa66[14]](_0xfa66[2],{name:_0x5067x2[_0xfa66[3]],description:_0x5067x2[_0xfa66[3]]},{tableName:_0xfa66[4],associate:function(_0x5067x3){_0x5067x3[_0xfa66[2]][_0xfa66[6]](_0x5067x3.FreshdeskAccount,{foreignKey:_0xfa66[5]});_0x5067x3[_0xfa66[2]][_0xfa66[9]](_0x5067x3.FreshdeskField,{as:_0xfa66[7],foreignKey:_0xfa66[8]});_0x5067x3[_0xfa66[2]][_0xfa66[9]](_0x5067x3.FreshdeskField,{as:_0xfa66[10],foreignKey:_0xfa66[11]});_0x5067x3[_0xfa66[2]][_0xfa66[9]](_0x5067x3.FreshdeskField,{as:_0xfa66[12],foreignKey:_0xfa66[13]})}})}
\ No newline at end of file
index a1c54c9..334f87e 100644 (file)
@@ -1,26 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('FreshdeskField', {
-    type: {
-      type: DataTypes.ENUM('string', 'variable', 'key_value'),
-      defaultValue: 'string'
-    },
-    content: DataTypes.STRING,
-    key: DataTypes.STRING,
-    keyType: {
-      type: DataTypes.ENUM('string', 'variable')
-    },
-    keyContent: DataTypes.STRING,
-    idField: DataTypes.STRING,
-    customField: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    }
-  }, {
-    tableName: 'freshdesk_fields',
-    associate: function(models) {
-      models.FreshdeskField.belongsTo(models.Variable);
-    }
-  });
-};
+var _0x2d1b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x2d1b[0];module[_0x2d1b[1]]=function(_0xf250x1,_0xf250x2){return _0xf250x1[_0x2d1b[10]](_0x2d1b[2],{type:{type:_0xf250x2.ENUM(_0x2d1b[3],_0x2d1b[4],_0x2d1b[5]),defaultValue:_0x2d1b[3]},content:_0xf250x2[_0x2d1b[6]],key:_0xf250x2[_0x2d1b[6]],keyType:{type:_0xf250x2.ENUM(_0x2d1b[3],_0x2d1b[4])},keyContent:_0xf250x2[_0x2d1b[6]],idField:_0xf250x2[_0x2d1b[6]],customField:{type:_0xf250x2[_0x2d1b[7]],defaultValue:true}},{tableName:_0x2d1b[8],associate:function(_0xf250x3){_0xf250x3[_0x2d1b[2]][_0x2d1b[9]](_0xf250x3.Variable)}})}
\ No newline at end of file
index 5c42540..20c0b20 100644 (file)
@@ -1,74 +1 @@
-/**
- * Agent Log Model
- */
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-  var ReportAgentHistory = sequelize.define('ReportAgentHistory', {
-    uniqueid: DataTypes.STRING,
-    calleridnum: DataTypes.STRING,
-    calleridname: DataTypes.STRING,
-    queue: DataTypes.STRING,
-    interface: DataTypes.STRING,
-    membername: DataTypes.STRING,
-    agentcalledAt: DataTypes.DATE,
-    agentconnectAt: {
-      type: DataTypes.DATE,
-      get: function() {
-        return moment(this.getDataValue('agentconnectAt')).format("MM-DD-YYYY HH:mm");
-      },
-    },
-    holdtime: DataTypes.INTEGER,
-    agentcomplete: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    agentcompleteAt: DataTypes.DATE,
-    talktime: DataTypes.INTEGER,
-    agentacw: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    acwtime: DataTypes.INTEGER,
-    reason: DataTypes.STRING,
-    agentringnoanswer: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    agentringnoanswerAt: DataTypes.DATE,
-    agentdump: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    agentdumpAt: DataTypes.DATE,
-    lastevent: DataTypes.STRING,
-    channel: DataTypes.STRING,
-    channelstate: DataTypes.INTEGER,
-    channelstatedesc: DataTypes.STRING,
-    connectedlinenum: DataTypes.STRING,
-    connectedlinename: DataTypes.STRING,
-    language: DataTypes.STRING,
-    accountcode: DataTypes.STRING,
-    context: DataTypes.STRING,
-    exten: DataTypes.STRING,
-    priority: DataTypes.STRING,
-    destchannel: DataTypes.STRING,
-    destchannelstate: DataTypes.INTEGER,
-    destchannelstatedesc: DataTypes.STRING,
-    destcalleridnum: DataTypes.STRING,
-    destcalleridname: DataTypes.STRING,
-    destconnectedlinenum: DataTypes.STRING,
-    destconnectedlinename: DataTypes.STRING,
-    destlanguage: DataTypes.STRING,
-    destaccountcode: DataTypes.STRING,
-    destcontext: DataTypes.STRING,
-    destexten: DataTypes.STRING,
-    destpriority: DataTypes.STRING,
-    destuniqueid: DataTypes.STRING
-  }, {
-    tableName: 'report_agent_history'
-  });
-
-  ReportAgentHistory.removeAttribute('id');
-  return ReportAgentHistory;
-};
+var _0x3d8c=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x4D\x4D\x2D\x44\x44\x2D\x59\x59\x59\x59\x20\x48\x48\x3A\x6D\x6D","\x66\x6F\x72\x6D\x61\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];var moment=require(_0x3d8c[0]);module[_0x3d8c[1]]=function(_0xdea4x2,_0xdea4x3){var _0xdea4x4=_0xdea4x2[_0x3d8c[12]](_0x3d8c[2],{uniqueid:_0xdea4x3[_0x3d8c[3]],calleridnum:_0xdea4x3[_0x3d8c[3]],calleridname:_0xdea4x3[_0x3d8c[3]],queue:_0xdea4x3[_0x3d8c[3]],interface:_0xdea4x3[_0x3d8c[3]],membername:_0xdea4x3[_0x3d8c[3]],agentcalledAt:_0xdea4x3[_0x3d8c[4]],agentconnectAt:{type:_0xdea4x3[_0x3d8c[4]],get:function(){return moment(this[_0x3d8c[8]](_0x3d8c[7]))[_0x3d8c[6]](_0x3d8c[5])}},holdtime:_0xdea4x3[_0x3d8c[9]],agentcomplete:{type:_0xdea4x3[_0x3d8c[10]],defaultValue:false},agentcompleteAt:_0xdea4x3[_0x3d8c[4]],talktime:_0xdea4x3[_0x3d8c[9]],agentacw:{type:_0xdea4x3[_0x3d8c[10]],defaultValue:false},acwtime:_0xdea4x3[_0x3d8c[9]],reason:_0xdea4x3[_0x3d8c[3]],agentringnoanswer:{type:_0xdea4x3[_0x3d8c[10]],defaultValue:false},agentringnoanswerAt:_0xdea4x3[_0x3d8c[4]],agentdump:{type:_0xdea4x3[_0x3d8c[10]],defaultValue:false},agentdumpAt:_0xdea4x3[_0x3d8c[4]],lastevent:_0xdea4x3[_0x3d8c[3]],channel:_0xdea4x3[_0x3d8c[3]],channelstate:_0xdea4x3[_0x3d8c[9]],channelstatedesc:_0xdea4x3[_0x3d8c[3]],connectedlinenum:_0xdea4x3[_0x3d8c[3]],connectedlinename:_0xdea4x3[_0x3d8c[3]],language:_0xdea4x3[_0x3d8c[3]],accountcode:_0xdea4x3[_0x3d8c[3]],context:_0xdea4x3[_0x3d8c[3]],exten:_0xdea4x3[_0x3d8c[3]],priority:_0xdea4x3[_0x3d8c[3]],destchannel:_0xdea4x3[_0x3d8c[3]],destchannelstate:_0xdea4x3[_0x3d8c[9]],destchannelstatedesc:_0xdea4x3[_0x3d8c[3]],destcalleridnum:_0xdea4x3[_0x3d8c[3]],destcalleridname:_0xdea4x3[_0x3d8c[3]],destconnectedlinenum:_0xdea4x3[_0x3d8c[3]],destconnectedlinename:_0xdea4x3[_0x3d8c[3]],destlanguage:_0xdea4x3[_0x3d8c[3]],destaccountcode:_0xdea4x3[_0x3d8c[3]],destcontext:_0xdea4x3[_0x3d8c[3]],destexten:_0xdea4x3[_0x3d8c[3]],destpriority:_0xdea4x3[_0x3d8c[3]],destuniqueid:_0xdea4x3[_0x3d8c[3]]},{tableName:_0x3d8c[11]});_0xdea4x4[_0x3d8c[14]](_0x3d8c[13]);return _0xdea4x4}
\ No newline at end of file
index 0bda734..ae05340 100644 (file)
@@ -1,60 +1 @@
-/**
- * CDR Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportCallHistory = sequelize.define('ReportCallHistory', {
-    uniqueid: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    type: {
-      type: DataTypes.ENUM,
-      values: ['inbound', 'internal', 'outbound']
-    },
-    tag: DataTypes.STRING,
-    accountcode: DataTypes.STRING,
-    source: DataTypes.STRING,
-    destination: DataTypes.STRING,
-    destinationcontext: DataTypes.STRING,
-    callerid: DataTypes.STRING,
-    channel: DataTypes.STRING,
-    destinationchannel: DataTypes.STRING,
-    lastapplication: DataTypes.STRING,
-    lastdata: DataTypes.STRING,
-    starttime: DataTypes.DATE,
-    answertime: {
-      type: DataTypes.DATE,
-      set: function(answertime) {
-        if (answertime !== '') {
-          this.setDataValue('answertime', answertime);
-        } else {
-          this.setDataValue('answertime', null);
-        }
-      }
-    },
-    endtime: DataTypes.DATE,
-    duration: DataTypes.INTEGER,
-    billableseconds: DataTypes.INTEGER,
-    disposition: DataTypes.STRING,
-    amaflags: DataTypes.STRING,
-    userfield: DataTypes.STRING
-  }, {
-    tableName: 'report_call_history',
-    associate: function(models) {
-      ReportCallHistory.hasMany(models.ReportQueueHistory, {
-        as: 'HistoryQueueCalls',
-        foreignKey: 'uniqueid',
-        constraints: false
-      });
-      ReportCallHistory.hasMany(models.ReportAgentHistory, {
-        as: 'HistoryReportAgents',
-        foreignKey: 'uniqueid',
-        constraints: false
-      });
-    }
-  });
-
-  return ReportCallHistory;
-};
+var _0x885c=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x45\x4E\x55\x4D","\x69\x6E\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x44\x41\x54\x45","","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C\x5F\x68\x69\x73\x74\x6F\x72\x79","\x48\x69\x73\x74\x6F\x72\x79\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x48\x69\x73\x74\x6F\x72\x79\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x885c[0]]=function(_0x8fe5x1,_0x8fe5x2){var _0x8fe5x3=_0x8fe5x1[_0x885c[17]](_0x885c[1],{uniqueid:{type:_0x8fe5x2[_0x885c[2]],unique:true},type:{type:_0x8fe5x2[_0x885c[3]],values:[_0x885c[4],_0x885c[5],_0x885c[6]]},tag:_0x8fe5x2[_0x885c[2]],accountcode:_0x8fe5x2[_0x885c[2]],source:_0x8fe5x2[_0x885c[2]],destination:_0x8fe5x2[_0x885c[2]],destinationcontext:_0x8fe5x2[_0x885c[2]],callerid:_0x8fe5x2[_0x885c[2]],channel:_0x8fe5x2[_0x885c[2]],destinationchannel:_0x8fe5x2[_0x885c[2]],lastapplication:_0x8fe5x2[_0x885c[2]],lastdata:_0x8fe5x2[_0x885c[2]],starttime:_0x8fe5x2[_0x885c[7]],answertime:{type:_0x8fe5x2[_0x885c[7]],set:function(_0x8fe5x4){if(_0x8fe5x4!==_0x885c[8]){this[_0x885c[10]](_0x885c[9],_0x8fe5x4)}else {this[_0x885c[10]](_0x885c[9],null)}}},endtime:_0x8fe5x2[_0x885c[7]],duration:_0x8fe5x2[_0x885c[11]],billableseconds:_0x8fe5x2[_0x885c[11]],disposition:_0x8fe5x2[_0x885c[2]],amaflags:_0x8fe5x2[_0x885c[2]],userfield:_0x8fe5x2[_0x885c[2]]},{tableName:_0x885c[12],associate:function(_0x8fe5x5){_0x8fe5x3[_0x885c[15]](_0x8fe5x5.ReportQueueHistory,{as:_0x885c[13],foreignKey:_0x885c[14],constraints:false});_0x8fe5x3[_0x885c[15]](_0x8fe5x5.ReportAgentHistory,{as:_0x885c[16],foreignKey:_0x885c[14],constraints:false})}});return _0x8fe5x3}
\ No newline at end of file
index fabf94d..952581a 100644 (file)
@@ -1,45 +1 @@
-/**
- * Agent Log Model
- */
-
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportChatHistory = sequelize.define('ReportChatHistory', {
-
-    uniqueid: DataTypes.STRING,
-    timeslot: DataTypes.INTEGER,
-    websitename: DataTypes.STRING,
-    websiteaddress: DataTypes.STRING,
-    websiteid: DataTypes.INTEGER,
-    application: DataTypes.STRING,
-    agentid: DataTypes.INTEGER,
-    agentname: DataTypes.STRING,
-    visitorid: DataTypes.STRING,
-    visitorname: DataTypes.STRING,
-    visitoremail: DataTypes.STRING,
-    queueid: DataTypes.INTEGER,
-    queuename: DataTypes.STRING,
-    roomid: DataTypes.INTEGER,
-    reason: {
-      type: DataTypes.STRING,
-      defaultValue: 'called'
-    },
-    connectid: {
-      type: DataTypes.STRING,
-      unique: true,
-      set: function(agentconnectedAt) {
-        this.setDataValue('connectid', this.uniqueid);
-        this.setDataValue('reason', 'connect');
-        this.setDataValue('connectedAt', moment().format("YYYY-MM-DD HH:mm:ss"));
-      }
-    },
-    calledAt: DataTypes.DATE,
-    connectedAt: DataTypes.DATE
-  }, {
-    tableName: 'report_chat_history'
-  });
-
-  return ReportChatHistory;
-};
+var _0x88fa=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0x88fa[0]);module[_0x88fa[1]]=function(_0x9663x2,_0x9663x3){var _0x9663x4=_0x9663x2[_0x88fa[16]](_0x88fa[2],{uniqueid:_0x9663x3[_0x88fa[3]],timeslot:_0x9663x3[_0x88fa[4]],websitename:_0x9663x3[_0x88fa[3]],websiteaddress:_0x9663x3[_0x88fa[3]],websiteid:_0x9663x3[_0x88fa[4]],application:_0x9663x3[_0x88fa[3]],agentid:_0x9663x3[_0x88fa[4]],agentname:_0x9663x3[_0x88fa[3]],visitorid:_0x9663x3[_0x88fa[3]],visitorname:_0x9663x3[_0x88fa[3]],visitoremail:_0x9663x3[_0x88fa[3]],queueid:_0x9663x3[_0x88fa[4]],queuename:_0x9663x3[_0x88fa[3]],roomid:_0x9663x3[_0x88fa[4]],reason:{type:_0x9663x3[_0x88fa[3]],defaultValue:_0x88fa[5]},connectid:{type:_0x9663x3[_0x88fa[3]],unique:true,set:function(_0x9663x5){this[_0x88fa[8]](_0x88fa[6],this[_0x88fa[7]]);this[_0x88fa[8]](_0x88fa[9],_0x88fa[10]);this[_0x88fa[8]](_0x88fa[11],moment()[_0x88fa[13]](_0x88fa[12]))}},calledAt:_0x9663x3[_0x88fa[14]],connectedAt:_0x9663x3[_0x88fa[14]]},{tableName:_0x88fa[15]});return _0x9663x4}
\ No newline at end of file
index ed11a09..7cc1330 100644 (file)
@@ -1,35 +1 @@
-/**
- * Agent Log Model
- */
-
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportChatSessionHistory = sequelize.define('ReportChatSessionHistory', {
-    uniqueid: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    websitename: DataTypes.STRING,
-    websiteaddress: DataTypes.STRING,
-    websiteid: DataTypes.INTEGER,
-    application: DataTypes.STRING,
-    visitorid: DataTypes.STRING,
-    visitorname: DataTypes.STRING,
-    visitoremail: DataTypes.STRING,
-    agentid: DataTypes.STRING,
-    agentname: DataTypes.STRING,
-    queueid: DataTypes.INTEGER,
-    queuename: DataTypes.STRING,
-    roomid: DataTypes.INTEGER,
-    joinAt: DataTypes.DATE,
-    leaveAt: DataTypes.DATE,
-    unmanagedAt: DataTypes.DATE,
-    abandonAt: DataTypes.DATE
-  }, {
-    tableName: 'report_chat_session_history'
-  });
-
-  return ReportChatSessionHistory;
-};
+var _0x3f4a=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x61\x67\x65\x6E\x74","\x72\x65\x71\x75\x65\x73\x74\x65\x72","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0x3f4a[0]);module[_0x3f4a[1]]=function(_0x1b6ex2,_0x1b6ex3){var _0x1b6ex4=_0x1b6ex2[_0x3f4a[10]](_0x3f4a[2],{uniqueid:{type:_0x1b6ex3[_0x3f4a[3]],unique:true},websitename:_0x1b6ex3[_0x3f4a[3]],websiteaddress:_0x1b6ex3[_0x3f4a[3]],websiteid:_0x1b6ex3[_0x3f4a[4]],application:_0x1b6ex3[_0x3f4a[3]],visitorid:_0x1b6ex3[_0x3f4a[3]],visitorname:_0x1b6ex3[_0x3f4a[3]],visitoremail:_0x1b6ex3[_0x3f4a[3]],agentid:_0x1b6ex3[_0x3f4a[3]],agentname:_0x1b6ex3[_0x3f4a[3]],queueid:_0x1b6ex3[_0x3f4a[4]],queuename:_0x1b6ex3[_0x3f4a[3]],roomid:_0x1b6ex3[_0x3f4a[4]],abandon:{type:_0x1b6ex3[_0x3f4a[5]],defaulValue:false},abandonAt:_0x1b6ex3[_0x3f4a[6]],complete:{type:_0x1b6ex3[_0x3f4a[5]],defaulValue:false},completeReason:_0x1b6ex3.ENUM(_0x3f4a[7],_0x3f4a[8]),completeAt:_0x1b6ex3[_0x3f4a[6]],joinAt:_0x1b6ex3[_0x3f4a[6]],leaveAt:_0x1b6ex3[_0x3f4a[6]],unmanagedAt:_0x1b6ex3[_0x3f4a[6]]},{tableName:_0x3f4a[9]});return _0x1b6ex4}
\ No newline at end of file
index d481e00..abf7bd7 100644 (file)
@@ -1,86 +1 @@
-/**
- * report_integrations Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportIntegrationHistory = sequelize.define('ReportIntegrationHistory', {
-    integration: DataTypes.STRING,
-    eventChannel: DataTypes.STRING,
-    exitStatus: DataTypes.STRING,
-    ticketId: DataTypes.STRING,
-    integrationId: DataTypes.INTEGER,
-    uniqueid: DataTypes.STRING,
-    calleridnum: DataTypes.STRING,
-    calleridname: DataTypes.STRING,
-    queue: DataTypes.STRING,
-    interface: DataTypes.STRING,
-    membername: DataTypes.STRING,
-    agentcalledAt: DataTypes.DATE,
-    agentconnectAt: DataTypes.DATE,
-    holdtime: DataTypes.INTEGER,
-    agentcomplete: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    agentcompleteAt: DataTypes.DATE,
-    talktime: DataTypes.INTEGER,
-    agentacw: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    acwtime: DataTypes.INTEGER,
-    reason: DataTypes.STRING,
-    agentringnoanswer: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    agentringnoanswerAt: DataTypes.DATE,
-    agentdump: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    agentdumpAt: DataTypes.DATE,
-    lastevent: DataTypes.STRING,
-    channel: DataTypes.STRING,
-    channelstate: DataTypes.INTEGER,
-    channelstatedesc: DataTypes.STRING,
-    connectedlinenum: DataTypes.STRING,
-    connectedlinename: DataTypes.STRING,
-    language: DataTypes.STRING,
-    accountcode: DataTypes.STRING,
-    context: DataTypes.STRING,
-    exten: DataTypes.STRING,
-    priority: DataTypes.STRING,
-    destchannel: DataTypes.STRING,
-    destchannelstate: DataTypes.INTEGER,
-    destchannelstatedesc: DataTypes.STRING,
-    destcalleridnum: DataTypes.STRING,
-    destcalleridname: DataTypes.STRING,
-    destconnectedlinenum: DataTypes.STRING,
-    destconnectedlinename: DataTypes.STRING,
-    destlanguage: DataTypes.STRING,
-    destaccountcode: DataTypes.STRING,
-    destcontext: DataTypes.STRING,
-    destexten: DataTypes.STRING,
-    destpriority: DataTypes.STRING,
-    destuniqueid: DataTypes.STRING,
-    messageId: DataTypes.STRING,
-    inReplyTo: DataTypes.STRING,
-    subject: DataTypes.STRING,
-    from: DataTypes.STRING,
-    to: DataTypes.STRING,
-    cc: DataTypes.STRING,
-    attachment: DataTypes.TEXT,
-    html: DataTypes.TEXT,
-    text: DataTypes.TEXT,
-    status: {
-      type: DataTypes.ENUM('SENT', 'SENDING', 'RECEIVED', 'FAILED')
-    }
-  }, {
-    tableName: 'report_integration_history'
-  });
-
-  ReportIntegrationHistory.removeAttribute('id');
-  return ReportIntegrationHistory;
-};
+var _0x42b9=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0x42b9[0]]=function(_0x7447x1,_0x7447x2){var _0x7447x3=_0x7447x1[_0x42b9[12]](_0x42b9[1],{integration:_0x7447x2[_0x42b9[2]],eventChannel:_0x7447x2[_0x42b9[2]],exitStatus:_0x7447x2[_0x42b9[2]],ticketId:_0x7447x2[_0x42b9[2]],integrationId:_0x7447x2[_0x42b9[3]],uniqueid:_0x7447x2[_0x42b9[2]],calleridnum:_0x7447x2[_0x42b9[2]],calleridname:_0x7447x2[_0x42b9[2]],queue:_0x7447x2[_0x42b9[2]],interface:_0x7447x2[_0x42b9[2]],membername:_0x7447x2[_0x42b9[2]],agentcalledAt:_0x7447x2[_0x42b9[4]],agentconnectAt:_0x7447x2[_0x42b9[4]],holdtime:_0x7447x2[_0x42b9[3]],agentcomplete:{type:_0x7447x2[_0x42b9[5]],defaultValue:false},agentcompleteAt:_0x7447x2[_0x42b9[4]],talktime:_0x7447x2[_0x42b9[3]],agentacw:{type:_0x7447x2[_0x42b9[5]],defaultValue:false},acwtime:_0x7447x2[_0x42b9[3]],reason:_0x7447x2[_0x42b9[2]],agentringnoanswer:{type:_0x7447x2[_0x42b9[5]],defaultValue:false},agentringnoanswerAt:_0x7447x2[_0x42b9[4]],agentdump:{type:_0x7447x2[_0x42b9[5]],defaultValue:false},agentdumpAt:_0x7447x2[_0x42b9[4]],lastevent:_0x7447x2[_0x42b9[2]],channel:_0x7447x2[_0x42b9[2]],channelstate:_0x7447x2[_0x42b9[3]],channelstatedesc:_0x7447x2[_0x42b9[2]],connectedlinenum:_0x7447x2[_0x42b9[2]],connectedlinename:_0x7447x2[_0x42b9[2]],language:_0x7447x2[_0x42b9[2]],accountcode:_0x7447x2[_0x42b9[2]],context:_0x7447x2[_0x42b9[2]],exten:_0x7447x2[_0x42b9[2]],priority:_0x7447x2[_0x42b9[2]],destchannel:_0x7447x2[_0x42b9[2]],destchannelstate:_0x7447x2[_0x42b9[3]],destchannelstatedesc:_0x7447x2[_0x42b9[2]],destcalleridnum:_0x7447x2[_0x42b9[2]],destcalleridname:_0x7447x2[_0x42b9[2]],destconnectedlinenum:_0x7447x2[_0x42b9[2]],destconnectedlinename:_0x7447x2[_0x42b9[2]],destlanguage:_0x7447x2[_0x42b9[2]],destaccountcode:_0x7447x2[_0x42b9[2]],destcontext:_0x7447x2[_0x42b9[2]],destexten:_0x7447x2[_0x42b9[2]],destpriority:_0x7447x2[_0x42b9[2]],destuniqueid:_0x7447x2[_0x42b9[2]],messageId:_0x7447x2[_0x42b9[2]],inReplyTo:_0x7447x2[_0x42b9[2]],subject:_0x7447x2[_0x42b9[2]],from:_0x7447x2[_0x42b9[2]],to:_0x7447x2[_0x42b9[2]],cc:_0x7447x2[_0x42b9[2]],attachment:_0x7447x2[_0x42b9[6]],html:_0x7447x2[_0x42b9[6]],text:_0x7447x2[_0x42b9[6]],status:{type:_0x7447x2.ENUM(_0x42b9[7],_0x42b9[8],_0x42b9[9],_0x42b9[10])}},{tableName:_0x42b9[11]});_0x7447x3[_0x42b9[14]](_0x42b9[13]);return _0x7447x3}
\ No newline at end of file
index 0af6acd..37aa0a5 100644 (file)
@@ -1,43 +1 @@
-/**
- * Agent Log Model
- */
-
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportMailHistory = sequelize.define('ReportMailHistory', {
-    uniqueid: DataTypes.STRING,
-    timeslot: DataTypes.INTEGER,
-    subject: DataTypes.STRING,
-    accountid: DataTypes.STRING,
-    accountname: DataTypes.STRING,
-    accountaddress: DataTypes.STRING,
-    application: DataTypes.STRING,
-    memberid: DataTypes.INTEGER,
-    membername: DataTypes.STRING,
-    queue: DataTypes.INTEGER,
-    queuename: DataTypes.STRING,
-    roomid: DataTypes.INTEGER,
-    messageid: DataTypes.INTEGER,
-    reason: {
-      type: DataTypes.STRING,
-      defaultValue: 'called'
-    },
-    connectid: {
-      type: DataTypes.STRING,
-      unique: true,
-      set: function(agentconnectedAt) {
-        this.setDataValue('connectid', this.uniqueid);
-        this.setDataValue('reason', 'connect');
-        this.setDataValue('connectedAt', moment().format("YYYY-MM-DD HH:mm:ss"));
-      }
-    },
-    calledAt: DataTypes.DATE,
-    connectedAt: DataTypes.DATE
-  }, {
-    tableName: 'report_mail_history'
-  });
-
-  return ReportMailHistory;
-};
+var _0x9dfb=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0x9dfb[0]);module[_0x9dfb[1]]=function(_0x3f7fx2,_0x3f7fx3){var _0x3f7fx4=_0x3f7fx2[_0x9dfb[16]](_0x9dfb[2],{uniqueid:_0x3f7fx3[_0x9dfb[3]],timeslot:_0x3f7fx3[_0x9dfb[4]],subject:_0x3f7fx3[_0x9dfb[3]],accountid:_0x3f7fx3[_0x9dfb[3]],accountname:_0x3f7fx3[_0x9dfb[3]],accountaddress:_0x3f7fx3[_0x9dfb[3]],application:_0x3f7fx3[_0x9dfb[3]],memberid:_0x3f7fx3[_0x9dfb[4]],membername:_0x3f7fx3[_0x9dfb[3]],queue:_0x3f7fx3[_0x9dfb[4]],queuename:_0x3f7fx3[_0x9dfb[3]],roomid:_0x3f7fx3[_0x9dfb[4]],messageid:_0x3f7fx3[_0x9dfb[4]],reason:{type:_0x3f7fx3[_0x9dfb[3]],defaultValue:_0x9dfb[5]},connectid:{type:_0x3f7fx3[_0x9dfb[3]],unique:true,set:function(_0x3f7fx5){this[_0x9dfb[8]](_0x9dfb[6],this[_0x9dfb[7]]);this[_0x9dfb[8]](_0x9dfb[9],_0x9dfb[10]);this[_0x9dfb[8]](_0x9dfb[11],moment()[_0x9dfb[13]](_0x9dfb[12]))}},calledAt:_0x3f7fx3[_0x9dfb[14]],connectedAt:_0x3f7fx3[_0x9dfb[14]]},{tableName:_0x9dfb[15]});return _0x3f7fx4}
\ No newline at end of file
index e25f7ae..7285bc7 100644 (file)
@@ -1,38 +1 @@
-/**
- * Agent Log Model
- */
-
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportMailSession = sequelize.define('ReportMailSessionHistory', {
-    uniqueid: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    subject: DataTypes.STRING,
-    accountid: DataTypes.STRING,
-    accountname: DataTypes.STRING,
-    accountaddress: DataTypes.STRING,
-    application: DataTypes.STRING,
-    memberid: DataTypes.STRING,
-    membername: DataTypes.STRING,
-    queue: DataTypes.INTEGER,
-    queuename: DataTypes.STRING,
-    roomid: DataTypes.INTEGER,
-    fidelity: {
-      type: DataTypes.INTEGER,
-      defaultValue: 0
-    },
-    holdtime: DataTypes.INTEGER,
-    queuecallerjoinAt: DataTypes.DATE,
-    queuecallerleaveAt: DataTypes.DATE,
-    queuecallerunmanagedAt: DataTypes.DATE,
-    queuecallerabandonedAt: DataTypes.DATE
-  }, {
-    tableName: 'report_mail_session_history'
-  });
-
-  return ReportMailSession;
-};
+var _0xa882=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0xa882[0]);module[_0xa882[1]]=function(_0x64e4x2,_0x64e4x3){var _0x64e4x4=_0x64e4x2[_0xa882[7]](_0xa882[2],{uniqueid:{type:_0x64e4x3[_0xa882[3]],unique:true},subject:_0x64e4x3[_0xa882[3]],accountid:_0x64e4x3[_0xa882[3]],accountname:_0x64e4x3[_0xa882[3]],accountaddress:_0x64e4x3[_0xa882[3]],application:_0x64e4x3[_0xa882[3]],memberid:_0x64e4x3[_0xa882[3]],membername:_0x64e4x3[_0xa882[3]],queue:_0x64e4x3[_0xa882[4]],queuename:_0x64e4x3[_0xa882[3]],roomid:_0x64e4x3[_0xa882[4]],fidelity:{type:_0x64e4x3[_0xa882[4]],defaultValue:0},holdtime:_0x64e4x3[_0xa882[4]],queuecallerjoinAt:_0x64e4x3[_0xa882[5]],queuecallerleaveAt:_0x64e4x3[_0xa882[5]],queuecallerunmanagedAt:_0x64e4x3[_0xa882[5]],queuecallerabandonedAt:_0x64e4x3[_0xa882[5]]},{tableName:_0xa882[6]});return _0x64e4x4}
\ No newline at end of file
index b19ec9b..b771b2c 100644 (file)
@@ -1,32 +1 @@
-/**
- * DIAL Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportMemberHistory = sequelize.define('ReportMemberHistory', {
-    channel: DataTypes.STRING,
-    membername: DataTypes.STRING,
-    interface: DataTypes.STRING,
-    type: {
-      type: DataTypes.STRING,
-      defaultValue: 'DEFAULT PAUSE'
-    },
-    duration: DataTypes.INTEGER,
-    enterAt: DataTypes.DATE,
-    exitAt: DataTypes.DATE,
-    data1: DataTypes.STRING,
-    data2: DataTypes.STRING,
-    data3: DataTypes.STRING,
-    data4: DataTypes.STRING,
-    data5: DataTypes.STRING
-  }, {
-    tableName: 'report_member_history',
-    // indexes: [{
-    //   fields: ['membername', 'enterdate', 'exitdate']
-    // }]
-  });
-
-  ReportMemberHistory.removeAttribute('id');
-  return ReportMemberHistory;
-};
+var _0x8e97=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0x8e97[0]]=function(_0x7dfcx1,_0x7dfcx2){var _0x7dfcx3=_0x7dfcx1[_0x8e97[7]](_0x8e97[1],{channel:_0x7dfcx2[_0x8e97[2]],membername:_0x7dfcx2[_0x8e97[2]],interface:_0x7dfcx2[_0x8e97[2]],type:{type:_0x7dfcx2[_0x8e97[2]],defaultValue:_0x8e97[3]},duration:_0x7dfcx2[_0x8e97[4]],enterAt:_0x7dfcx2[_0x8e97[5]],exitAt:_0x7dfcx2[_0x8e97[5]],data1:_0x7dfcx2[_0x8e97[2]],data2:_0x7dfcx2[_0x8e97[2]],data3:_0x7dfcx2[_0x8e97[2]],data4:_0x7dfcx2[_0x8e97[2]],data5:_0x7dfcx2[_0x8e97[2]]},{tableName:_0x8e97[6]});_0x7dfcx3[_0x8e97[9]](_0x8e97[8]);return _0x7dfcx3}
\ No newline at end of file
index 8b1c216..4e2b7bb 100644 (file)
@@ -1,49 +1 @@
-/**
- * QueueLog Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportQueueHistory = sequelize.define('ReportQueueHistory', {
-    uniqueid: DataTypes.STRING,
-    calleridnum: DataTypes.STRING,
-    calleridname: DataTypes.STRING,
-    queue: DataTypes.STRING,
-    queuecallerjoinAt: DataTypes.DATE,
-    queuecallerleaveAt: DataTypes.DATE,
-    position: DataTypes.INTEGER,
-    count: DataTypes.INTEGER,
-    queuecallerabandon: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    queuecallerabandonAt: DataTypes.DATE,
-    queuecallercomplete: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    queuecallercompleteAt: DataTypes.DATE,
-    queuecallerexit: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    queuecallerexitAt: DataTypes.DATE,
-    queuecallerexitreason: DataTypes.STRING,
-    originalposition: DataTypes.INTEGER,
-    channel: DataTypes.STRING,
-    channelstate: DataTypes.INTEGER,
-    channelstatedesc: DataTypes.STRING,
-    connectedlinenum: DataTypes.STRING,
-    connectedlinename: DataTypes.STRING,
-    language: DataTypes.STRING,
-    accountcode: DataTypes.STRING,
-    context: DataTypes.STRING,
-    exten: DataTypes.STRING,
-    priority: DataTypes.STRING,
-  }, {
-    tableName: 'report_queue_history'
-  });
-
-  ReportQueueHistory.removeAttribute('id');
-  return ReportQueueHistory;
-};
+var _0x15db=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65","\x69\x64","\x72\x65\x6D\x6F\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65"];module[_0x15db[0]]=function(_0xe89bx1,_0xe89bx2){var _0xe89bx3=_0xe89bx1[_0x15db[7]](_0x15db[1],{uniqueid:_0xe89bx2[_0x15db[2]],calleridnum:_0xe89bx2[_0x15db[2]],calleridname:_0xe89bx2[_0x15db[2]],queue:_0xe89bx2[_0x15db[2]],queuecallerjoinAt:_0xe89bx2[_0x15db[3]],queuecallerleaveAt:_0xe89bx2[_0x15db[3]],position:_0xe89bx2[_0x15db[4]],count:_0xe89bx2[_0x15db[4]],queuecallerabandon:{type:_0xe89bx2[_0x15db[5]],defaultValue:false},queuecallerabandonAt:_0xe89bx2[_0x15db[3]],queuecallercomplete:{type:_0xe89bx2[_0x15db[5]],defaultValue:false},queuecallercompleteAt:_0xe89bx2[_0x15db[3]],queuecallerexit:{type:_0xe89bx2[_0x15db[5]],defaultValue:false},queuecallerexitAt:_0xe89bx2[_0x15db[3]],queuecallerexitreason:_0xe89bx2[_0x15db[2]],originalposition:_0xe89bx2[_0x15db[4]],channel:_0xe89bx2[_0x15db[2]],channelstate:_0xe89bx2[_0x15db[4]],channelstatedesc:_0xe89bx2[_0x15db[2]],connectedlinenum:_0xe89bx2[_0x15db[2]],connectedlinename:_0xe89bx2[_0x15db[2]],language:_0xe89bx2[_0x15db[2]],accountcode:_0xe89bx2[_0x15db[2]],context:_0xe89bx2[_0x15db[2]],exten:_0xe89bx2[_0x15db[2]],priority:_0xe89bx2[_0x15db[2]]},{tableName:_0x15db[6]});_0xe89bx3[_0x15db[9]](_0x15db[8]);return _0xe89bx3}
\ No newline at end of file
index f918cf2..9434f47 100644 (file)
@@ -1,25 +1 @@
-/**
- * Context Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportSquareDetailHistory = sequelize.define('ReportSquareDetailHistory', {
-    uniqueid: {
-      type: DataTypes.STRING,
-    },
-    node: {
-      type: DataTypes.STRING,
-    },
-    application: {
-      type: DataTypes.STRING,
-    },
-    data: {
-      type: DataTypes.STRING,
-    }
-  }, {
-    tableName: 'report_square_details_history'
-  });
-
-  return ReportSquareDetailHistory;
-};
+var _0x6553=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65\x5F\x64\x65\x74\x61\x69\x6C\x73\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x6553[0]]=function(_0xee64x1,_0xee64x2){var _0xee64x3=_0xee64x1[_0x6553[4]](_0x6553[1],{uniqueid:{type:_0xee64x2[_0x6553[2]]},node:{type:_0xee64x2[_0x6553[2]]},application:{type:_0xee64x2[_0x6553[2]]},data:{type:_0xee64x2[_0x6553[2]]}},{tableName:_0x6553[3]});return _0xee64x3}
\ No newline at end of file
index d56f92c..c0aaaa8 100644 (file)
@@ -1,89 +1 @@
-/**
- * Context Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportSquareHistory = sequelize.define('ReportSquareHistory', {
-    network: {
-      type: DataTypes.STRING,
-    },
-    network_script: {
-      type: DataTypes.STRING,
-    },
-    request: {
-      type: DataTypes.STRING,
-    },
-    channel: {
-      type: DataTypes.STRING,
-    },
-    language: {
-      type: DataTypes.STRING,
-    },
-    type: {
-      type: DataTypes.STRING,
-    },
-    uniqueid: {
-      type: DataTypes.STRING,
-    },
-    version: {
-      type: DataTypes.STRING,
-    },
-    callerid: {
-      type: DataTypes.STRING,
-    },
-    calleridname: {
-      type: DataTypes.STRING,
-    },
-    callingpres: {
-      type: DataTypes.STRING,
-    },
-    callingani2: {
-      type: DataTypes.STRING,
-    },
-    callington: {
-      type: DataTypes.STRING,
-    },
-    callingtns: {
-      type: DataTypes.STRING,
-    },
-    dnid: {
-      type: DataTypes.STRING,
-    },
-    rdnis: {
-      type: DataTypes.STRING,
-    },
-    context: {
-      type: DataTypes.STRING,
-    },
-    extension: {
-      type: DataTypes.STRING,
-    },
-    priority: {
-      type: DataTypes.STRING,
-    },
-    enhanced: {
-      type: DataTypes.STRING,
-    },
-    accountcode: {
-      type: DataTypes.STRING,
-    },
-    threadid: {
-      type: DataTypes.STRING,
-    },
-    project_name: {
-      type: DataTypes.STRING,
-    },
-    joinAt: {
-      type: DataTypes.DATE,
-    },
-    leaveAt: {
-      type: DataTypes.DATE,
-      unique: true
-    }
-  }, {
-    tableName: 'report_square_history'
-  });
-
-  return ReportSquareHistory;
-};
+var _0xdad3=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65\x48\x69\x73\x74\x6F\x72\x79","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65"];module[_0xdad3[0]]=function(_0x6157x1,_0x6157x2){var _0x6157x3=_0x6157x1[_0xdad3[5]](_0xdad3[1],{network:{type:_0x6157x2[_0xdad3[2]]},network_script:{type:_0x6157x2[_0xdad3[2]]},request:{type:_0x6157x2[_0xdad3[2]]},channel:{type:_0x6157x2[_0xdad3[2]]},language:{type:_0x6157x2[_0xdad3[2]]},type:{type:_0x6157x2[_0xdad3[2]]},uniqueid:{type:_0x6157x2[_0xdad3[2]]},version:{type:_0x6157x2[_0xdad3[2]]},callerid:{type:_0x6157x2[_0xdad3[2]]},calleridname:{type:_0x6157x2[_0xdad3[2]]},callingpres:{type:_0x6157x2[_0xdad3[2]]},callingani2:{type:_0x6157x2[_0xdad3[2]]},callington:{type:_0x6157x2[_0xdad3[2]]},callingtns:{type:_0x6157x2[_0xdad3[2]]},dnid:{type:_0x6157x2[_0xdad3[2]]},rdnis:{type:_0x6157x2[_0xdad3[2]]},context:{type:_0x6157x2[_0xdad3[2]]},extension:{type:_0x6157x2[_0xdad3[2]]},priority:{type:_0x6157x2[_0xdad3[2]]},enhanced:{type:_0x6157x2[_0xdad3[2]]},accountcode:{type:_0x6157x2[_0xdad3[2]]},threadid:{type:_0x6157x2[_0xdad3[2]]},project_name:{type:_0x6157x2[_0xdad3[2]]},joinAt:{type:_0x6157x2[_0xdad3[3]]},leaveAt:{type:_0x6157x2[_0xdad3[3]],unique:true}},{tableName:_0xdad3[4]});return _0x6157x3}
\ No newline at end of file
index aec5d4b..078ff9f 100644 (file)
@@ -1,25 +1 @@
-/**
- * Agent Log Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportTransferHistory = sequelize.define('ReportTransferHistory', {
-    type: DataTypes.ENUM('blind', 'attended'),
-    transferercalleridnum: DataTypes.STRING,
-    transferercalleridname: DataTypes.STRING,
-    transfererconnectedlinenum: DataTypes.STRING,
-    transfererconnectedlinename: DataTypes.STRING,
-    transferercontext: DataTypes.STRING,
-    transfererexten: DataTypes.STRING,
-    transfereecontext: DataTypes.STRING,
-    transfereeexten: DataTypes.STRING,
-    transfereruniqueid: DataTypes.STRING,
-    transfererlinkedid: DataTypes.STRING,
-    extension: DataTypes.STRING,
-  }, {
-    tableName: 'report_transfer_history'
-  });
-
-  return ReportTransferHistory;
-};
+var _0x8c42=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x54\x72\x61\x6E\x73\x66\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x62\x6C\x69\x6E\x64","\x61\x74\x74\x65\x6E\x64\x65\x64","\x53\x54\x52\x49\x4E\x47","\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x61\x6E\x73\x66\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x8c42[0]]=function(_0xf6e1x1,_0xf6e1x2){var _0xf6e1x3=_0xf6e1x1[_0x8c42[6]](_0x8c42[1],{type:_0xf6e1x2.ENUM(_0x8c42[2],_0x8c42[3]),transferercalleridnum:_0xf6e1x2[_0x8c42[4]],transferercalleridname:_0xf6e1x2[_0x8c42[4]],transfererconnectedlinenum:_0xf6e1x2[_0x8c42[4]],transfererconnectedlinename:_0xf6e1x2[_0x8c42[4]],transferercontext:_0xf6e1x2[_0x8c42[4]],transfererexten:_0xf6e1x2[_0x8c42[4]],transfereecontext:_0xf6e1x2[_0x8c42[4]],transfereeexten:_0xf6e1x2[_0x8c42[4]],transfereruniqueid:_0xf6e1x2[_0x8c42[4]],transfererlinkedid:_0xf6e1x2[_0x8c42[4]],extension:_0xf6e1x2[_0x8c42[4]]},{tableName:_0x8c42[5]});return _0xf6e1x3}
\ No newline at end of file
index 00e56f7..6843356 100644 (file)
@@ -1,86 +1 @@
-"use strict";
-
-var fs = require("fs");
-var path = require("path");
-var config = require('../config/environment');
-var Sequelize = require("sequelize");
-var moment = require('moment');
-
-//Used to disable all warnings for Promise!
-Sequelize.Promise.config({
-  // Enables all warnings except forgotten return statements.
-  warnings: {
-    wForgottenReturn: false
-  }
-});
-
-var sequelize = new Sequelize(config.db.database, config.db.username, config.db.password, {
-  host: config.db.host,
-  dialect: 'mysql',
-  timezone: moment().format("Z"),
-  logging: false
-});
-
-var db = {};
-
-fs
-  .readdirSync(__dirname)
-  .filter(function(file) {
-    return (fs.lstatSync(path.join(__dirname, file)).isFile()) &&
-      (file.indexOf(".") !== 0) && (file.indexOf('.spec.') === -1) && (file !== "index.js");
-  })
-  .forEach(function(file) {
-    var model = sequelize["import"](path.join(__dirname, file));
-    db[model.name] = model;
-  });
-
-// Invoke associations on each of the models
-Object.keys(db).forEach(function(modelName) {
-  if (db[modelName].options.hasOwnProperty('associate')) {
-    db[modelName].options.associate(db);
-  }
-});
-
-db.history = {};
-
-var sequelize_history = new Sequelize(config.db_history.database, config.db_history.username, config.db_history.password, {
-  host: config.db_history.host,
-  dialect: 'mysql',
-  timezone: moment().format("Z"),
-  logging: false
-});
-
-fs
-  .readdirSync(path.join(__dirname, 'history'))
-  .filter(function(file) {
-    return (fs.lstatSync(path.join(__dirname, 'history', file)).isFile()) &&
-      (file.indexOf(".") !== 0) && (file.indexOf('.spec.') === -1) && (file !== "index.js");
-  })
-  .forEach(function(file) {
-    var model = sequelize_history["import"](path.join(__dirname, 'history', file));
-    db.history[model.name] = model;
-  });
-
-// Invoke associations on each of the models
-Object.keys(db.history).forEach(function(modelName) {
-  if (db.history[modelName].options.hasOwnProperty('associate')) {
-    db.history[modelName].options.associate(db.history);
-  }
-});
-
-db.ContactPhone.hasMany(db.history.ReportCallHistory, {
-  as: 'HistoryInbounds',
-  foreignKey: 'source',
-  constraints: false
-});
-db.ContactPhone.hasMany(db.history.ReportCallHistory, {
-  as: 'HistoryOutbounds',
-  foreignKey: 'destination',
-  constraints: false
-});
-
-db.sequelize = sequelize;
-db.sequelize_history = sequelize_history;
-db.Sequelize = Sequelize;
-
-module.exports = db;
+var _0x5e15=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x63\x6F\x6E\x66\x69\x67","\x50\x72\x6F\x6D\x69\x73\x65","\x64\x61\x74\x61\x62\x61\x73\x65","\x64\x62","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x68\x6F\x73\x74","\x6D\x79\x73\x71\x6C","\x5A","\x66\x6F\x72\x6D\x61\x74","\x6A\x6F\x69\x6E","\x69\x6D\x70\x6F\x72\x74","\x6E\x61\x6D\x65","\x66\x6F\x72\x45\x61\x63\x68","\x69\x73\x46\x69\x6C\x65","\x6C\x73\x74\x61\x74\x53\x79\x6E\x63","\x2E","\x69\x6E\x64\x65\x78\x4F\x66","\x2E\x73\x70\x65\x63\x2E","\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x66\x69\x6C\x74\x65\x72","\x72\x65\x61\x64\x64\x69\x72\x53\x79\x6E\x63","\x61\x73\x73\x6F\x63\x69\x61\x74\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79\x73","\x68\x69\x73\x74\x6F\x72\x79","\x64\x62\x5F\x68\x69\x73\x74\x6F\x72\x79","\x48\x69\x73\x74\x6F\x72\x79\x49\x6E\x62\x6F\x75\x6E\x64\x73","\x73\x6F\x75\x72\x63\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x43\x6F\x6E\x74\x61\x63\x74\x50\x68\x6F\x6E\x65","\x48\x69\x73\x74\x6F\x72\x79\x4F\x75\x74\x62\x6F\x75\x6E\x64\x73","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65\x5F\x68\x69\x73\x74\x6F\x72\x79","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5e15[0];var fs=require(_0x5e15[1]);var path=require(_0x5e15[2]);var config=require(_0x5e15[3]);var Sequelize=require(_0x5e15[4]);var moment=require(_0x5e15[5]);Sequelize[_0x5e15[7]][_0x5e15[6]]({warnings:{wForgottenReturn:false}});var sequelize= new Sequelize(config[_0x5e15[9]][_0x5e15[8]],config[_0x5e15[9]][_0x5e15[10]],config[_0x5e15[9]][_0x5e15[11]],{host:config[_0x5e15[9]][_0x5e15[12]],dialect:_0x5e15[13],timezone:moment()[_0x5e15[15]](_0x5e15[14]),logging:false});var db={};fs[_0x5e15[27]](__dirname)[_0x5e15[26]](function(_0x6426x8){return (fs[_0x5e15[21]](path[_0x5e15[16]](__dirname,_0x6426x8))[_0x5e15[20]]())&&(_0x6426x8[_0x5e15[23]](_0x5e15[22])!==0)&&(_0x6426x8[_0x5e15[23]](_0x5e15[24])=== -1)&&(_0x6426x8!==_0x5e15[25])})[_0x5e15[19]](function(_0x6426x8){var _0x6426x9=sequelize[_0x5e15[17]](path[_0x5e15[16]](__dirname,_0x6426x8));db[_0x6426x9[_0x5e15[18]]]=_0x6426x9});Object[_0x5e15[31]](db)[_0x5e15[19]](function(_0x6426xa){if(db[_0x6426xa][_0x5e15[30]][_0x5e15[29]](_0x5e15[28])){db[_0x6426xa][_0x5e15[30]][_0x5e15[28]](db)}});db[_0x5e15[32]]={};var sequelize_history= new Sequelize(config[_0x5e15[33]][_0x5e15[8]],config[_0x5e15[33]][_0x5e15[10]],config[_0x5e15[33]][_0x5e15[11]],{host:config[_0x5e15[33]][_0x5e15[12]],dialect:_0x5e15[13],timezone:moment()[_0x5e15[15]](_0x5e15[14]),logging:false});fs[_0x5e15[27]](path[_0x5e15[16]](__dirname,_0x5e15[32]))[_0x5e15[26]](function(_0x6426x8){return (fs[_0x5e15[21]](path[_0x5e15[16]](__dirname,_0x5e15[32],_0x6426x8))[_0x5e15[20]]())&&(_0x6426x8[_0x5e15[23]](_0x5e15[22])!==0)&&(_0x6426x8[_0x5e15[23]](_0x5e15[24])=== -1)&&(_0x6426x8!==_0x5e15[25])})[_0x5e15[19]](function(_0x6426x8){var _0x6426x9=sequelize_history[_0x5e15[17]](path[_0x5e15[16]](__dirname,_0x5e15[32],_0x6426x8));db[_0x5e15[32]][_0x6426x9[_0x5e15[18]]]=_0x6426x9});Object[_0x5e15[31]](db[_0x5e15[32]])[_0x5e15[19]](function(_0x6426xa){if(db[_0x5e15[32]][_0x6426xa][_0x5e15[30]][_0x5e15[29]](_0x5e15[28])){db[_0x5e15[32]][_0x6426xa][_0x5e15[30]][_0x5e15[28]](db[_0x5e15[32]])}});db[_0x5e15[37]][_0x5e15[36]](db[_0x5e15[32]].ReportCallHistory,{as:_0x5e15[34],foreignKey:_0x5e15[35],constraints:false});db[_0x5e15[37]][_0x5e15[36]](db[_0x5e15[32]].ReportCallHistory,{as:_0x5e15[38],foreignKey:_0x5e15[39],constraints:false});db[_0x5e15[4]]=sequelize;db[_0x5e15[40]]=sequelize_history;db[_0x5e15[41]]=Sequelize;module[_0x5e15[42]]=db
\ No newline at end of file
index 1cbee6f..3412669 100644 (file)
@@ -1,65 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Integration = sequelize.define('Integration', {
-    name: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      unique: 'unique_name_and_version',
-      validate: {
-        notEmpty: true
-      }
-    },
-    version: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      unique: 'unique_name_and_version',
-      validate: {
-        notEmpty: true
-      }
-    },
-    main: {
-      type: DataTypes.STRING,
-      defaultValue: 'app.js'
-    },
-    filename: {
-      type: DataTypes.STRING,
-      // allowNull: false,
-      // validate: {
-      //   notEmpty: true
-      // }
-    },
-    path: {
-      type: DataTypes.STRING,
-      // allowNull: false,
-      // validate: {
-      //   notEmpty: true
-      // }
-    },
-    type: {
-      type: DataTypes.STRING,
-      // allowNull: false
-    },
-    size: {
-      type: DataTypes.INTEGER,
-      // allowNull: false
-    },
-    active: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    author: DataTypes.STRING,
-    logo: DataTypes.STRING,
-    state: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    description: DataTypes.STRING
-  }, {
-    tableName: 'integrations'
-  });
-
-  return Integration;
-
-};
+var _0x3895=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x75\x6E\x69\x71\x75\x65\x5F\x6E\x61\x6D\x65\x5F\x61\x6E\x64\x5F\x76\x65\x72\x73\x69\x6F\x6E","\x61\x70\x70\x2E\x6A\x73","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x3895[0];module[_0x3895[1]]=function(_0x5088x1,_0x5088x2){var _0x5088x3=_0x5088x1[_0x3895[9]](_0x3895[2],{name:{type:_0x5088x2[_0x3895[3]],allowNull:false,unique:_0x3895[4],validate:{notEmpty:true}},version:{type:_0x5088x2[_0x3895[3]],allowNull:false,unique:_0x3895[4],validate:{notEmpty:true}},main:{type:_0x5088x2[_0x3895[3]],defaultValue:_0x3895[5]},filename:{type:_0x5088x2[_0x3895[3]]},path:{type:_0x5088x2[_0x3895[3]]},type:{type:_0x5088x2[_0x3895[3]]},size:{type:_0x5088x2[_0x3895[6]]},active:{type:_0x5088x2[_0x3895[7]],defaultValue:false},author:_0x5088x2[_0x3895[3]],logo:_0x5088x2[_0x3895[3]],state:{type:_0x5088x2[_0x3895[3]],unique:true},description:_0x5088x2[_0x3895[3]]},{tableName:_0x3895[8]});return _0x5088x3}
\ No newline at end of file
index 19e66f4..60e9819 100644 (file)
@@ -1,53 +1 @@
-/* jshint indent: 2 */
-
-module.exports = function(sequelize, DataTypes) {
-  var Interval = sequelize.define('Interval', {
-    name: {
-      type: DataTypes.STRING
-    },
-    description: DataTypes.STRING,
-    interval: {
-      type: DataTypes.STRING,
-      allowNull: true
-    }
-  }, {
-    tableName: 'intervals',
-    associate: function(models) {
-      Interval.hasMany(models.Interval, {
-        as: 'SubIntervals',
-        onDelete: 'cascade',
-        hooks: true,
-        required: false
-      });
-      Interval.hasMany(models.VoiceExtension, {
-        as: 'VoiceExtensions',
-        foreignKey: 'IntervalId',
-        onDelete: 'restrict'
-      });
-      Interval.hasMany(models.MailApplication, {
-        as: 'MailApplications'
-      });
-      Interval.hasMany(models.MailApplication, {
-        as: 'ChatApplications'
-      });
-      // SCOPES MANAGEMENT
-      Interval.addScope('subintervals', {
-        include: [{
-          model: models.Interval,
-          as: 'SubIntervals',
-          required: false,
-          attributes: ['name', 'interval']
-        }]
-      });
-
-      Interval.addScope('intervals', {
-        where: {
-          IntervalId: null
-        }
-      });
-    }
-  });
-
-
-  return Interval;
-};
+var _0x33d9=["\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x53\x54\x52\x49\x4E\x47","\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x53\x75\x62\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x72\x65\x73\x74\x72\x69\x63\x74","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x75\x62\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x6E\x61\x6D\x65","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];module[_0x33d9[0]]=function(_0xb2b5x1,_0xb2b5x2){var _0xb2b5x3=_0xb2b5x1[_0x33d9[16]](_0x33d9[1],{name:{type:_0xb2b5x2[_0x33d9[2]]},description:_0xb2b5x2[_0x33d9[2]],interval:{type:_0xb2b5x2[_0x33d9[2]],allowNull:true}},{tableName:_0x33d9[3],associate:function(_0xb2b5x4){_0xb2b5x3[_0x33d9[6]](_0xb2b5x4.Interval,{as:_0x33d9[4],onDelete:_0x33d9[5],hooks:true,required:false});_0xb2b5x3[_0x33d9[6]](_0xb2b5x4.VoiceExtension,{as:_0x33d9[7],foreignKey:_0x33d9[8],onDelete:_0x33d9[9]});_0xb2b5x3[_0x33d9[6]](_0xb2b5x4.MailApplication,{as:_0x33d9[10]});_0xb2b5x3[_0x33d9[6]](_0xb2b5x4.MailApplication,{as:_0x33d9[11]});_0xb2b5x3[_0x33d9[15]](_0x33d9[12],{include:[{model:_0xb2b5x4[_0x33d9[1]],as:_0x33d9[4],required:false,attributes:[_0x33d9[13],_0x33d9[14]]}]});_0xb2b5x3[_0x33d9[15]](_0x33d9[3],{where:{IntervalId:null}})}});return _0xb2b5x3}
\ No newline at end of file
index c31f2e2..b5be5ca 100644 (file)
@@ -1,30 +1 @@
-/**
- * Fax Room Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var JscriptyProject = sequelize.define('JscriptyProject', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    description: DataTypes.STRING,
-    draft: DataTypes.TEXT,
-    production: DataTypes.TEXT
-  }, {
-    tableName: 'jscripty_projects',
-    associate: function(models) {
-      JscriptyProject.hasMany(models.ReportJscriptySession, {
-        // as: 'sessions',
-        foreignKey: 'projectId'
-      });
-      JscriptyProject.hasMany(models.ReportJscriptyQuestion, {
-        // as: 'questions',
-        foreignKey: 'projectId'
-      });
-    }
-  });
-
-  return JscriptyProject;
-};
+var _0x8681=["\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x70\x72\x6F\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x8681[0]]=function(_0xade0x1,_0xade0x2){var _0xade0x3=_0xade0x1[_0x8681[7]](_0x8681[1],{name:{type:_0xade0x2[_0x8681[2]],unique:true},description:_0xade0x2[_0x8681[2]],draft:_0xade0x2[_0x8681[3]],production:_0xade0x2[_0x8681[3]]},{tableName:_0x8681[4],associate:function(_0xade0x4){_0xade0x3[_0x8681[6]](_0xade0x4.ReportJscriptySession,{foreignKey:_0x8681[5]});_0xade0x3[_0x8681[6]](_0xade0x4.ReportJscriptyQuestion,{foreignKey:_0x8681[5]})}});return _0xade0x3}
\ No newline at end of file
index 84f4aa6..e2ae9f3 100644 (file)
@@ -1,66 +1 @@
-/**
- * Chat Website Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-       var MailAccount = sequelize.define('MailAccount', {
-               description: DataTypes.STRING,
-               name: {
-                       type: DataTypes.STRING
-               },
-               address: {
-                       type: DataTypes.STRING,
-                       unique: true
-               },
-               fidelity: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: false
-               },
-               timeout: {
-                       type: DataTypes.INTEGER,
-                       defaultValue: 0
-               }
-       }, {
-               tableName: 'mail_accounts',
-               associate: function(models) {
-                       // RELATIONS
-                       MailAccount.hasMany(models.MailRoom);
-                       MailAccount.hasMany(models.MailApplication);
-                       MailAccount.hasOne(models.MailServerIn, {
-                               onDelete: 'cascade',
-                               hooks: true
-                       });
-                       MailAccount.hasOne(models.MailServerOut, {
-                               onDelete: 'cascade',
-                               hooks: true
-                       });
-
-                       // SCOPES
-                       MailAccount.addScope('default', {
-                               include: [{
-                                       model: models.MailServerIn,
-                                       attributes: ['id', 'host', 'port', 'username', 'password', 'ssl', 'delete', 'filter', 'state', 'mailbox']
-                               }, {
-                                       model: models.MailServerOut,
-                                       attributes: ['id', 'host', 'port', 'username', 'password', 'ssl', 'service', 'state']
-                               }, {
-                                       model: models.MailApplication,
-                                       include: [{
-                                               model: models.User,
-                                               attributes: ['id',
-                                                       'name',
-                                                       'email',
-                                                       'internal',
-                                                       'fullname'
-                                               ]
-                                       }, {
-                                               model: models.MailQueue
-                                       }]
-                               }]
-                       });
-               }
-       });
-
-       return MailAccount;
-};
+var _0x1b35=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4F\x6E\x65","\x64\x65\x66\x61\x75\x6C\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x69\x64","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x73\x73\x6C","\x64\x65\x6C\x65\x74\x65","\x66\x69\x6C\x74\x65\x72","\x73\x74\x61\x74\x65","\x6D\x61\x69\x6C\x62\x6F\x78","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x73\x65\x72\x76\x69\x63\x65","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x55\x73\x65\x72","\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];module[_0x1b35[0]]=function(_0x2099x1,_0x2099x2){var _0x2099x3=_0x2099x1[_0x1b35[31]](_0x1b35[1],{description:_0x2099x2[_0x1b35[2]],name:{type:_0x2099x2[_0x1b35[2]]},address:{type:_0x2099x2[_0x1b35[2]],unique:true},fidelity:{type:_0x2099x2[_0x1b35[3]],defaultValue:false},timeout:{type:_0x2099x2[_0x1b35[4]],defaultValue:0}},{tableName:_0x1b35[5],associate:function(_0x2099x4){_0x2099x3[_0x1b35[6]](_0x2099x4.MailRoom);_0x2099x3[_0x1b35[6]](_0x2099x4.MailApplication);_0x2099x3[_0x1b35[8]](_0x2099x4.MailServerIn,{onDelete:_0x1b35[7],hooks:true});_0x2099x3[_0x1b35[8]](_0x2099x4.MailServerOut,{onDelete:_0x1b35[7],hooks:true});_0x2099x3[_0x1b35[30]](_0x1b35[9],{include:[{model:_0x2099x4[_0x1b35[10]],attributes:[_0x1b35[11],_0x1b35[12],_0x1b35[13],_0x1b35[14],_0x1b35[15],_0x1b35[16],_0x1b35[17],_0x1b35[18],_0x1b35[19],_0x1b35[20]]},{model:_0x2099x4[_0x1b35[21]],attributes:[_0x1b35[11],_0x1b35[12],_0x1b35[13],_0x1b35[14],_0x1b35[15],_0x1b35[16],_0x1b35[22],_0x1b35[19]]},{model:_0x2099x4[_0x1b35[23]],include:[{model:_0x2099x4[_0x1b35[24]],attributes:[_0x1b35[11],_0x1b35[25],_0x1b35[26],_0x1b35[27],_0x1b35[28]]},{model:_0x2099x4[_0x1b35[29]]}]}]})}});return _0x2099x3}
\ No newline at end of file
index f4a7a03..9567396 100644 (file)
@@ -1,36 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var MailApplication = sequelize.define('MailApplication', {
-    app: {
-      type: DataTypes.ENUM('queue', 'agent')
-    },
-    priority: {
-      type: DataTypes.INTEGER
-    },
-    timeout: {
-      type: DataTypes.INTEGER
-    },
-    interval: {
-      type: DataTypes.STRING
-    }
-  }, {
-    tableName: 'mail_applications',
-    associate: function(models) {
-      // hasMany relations
-      MailApplication.belongsTo(models.User, {
-        onDelete: 'restrict'
-      });
-      MailApplication.belongsTo(models.Interval);
-      MailApplication.belongsTo(models.MailQueue, {
-        onDelete: 'restrict'
-      });
-      MailApplication.belongsTo(models.MailAccount, {
-        onDelete: 'restrict'
-      });
-    }
-  });
-
-  return MailApplication;
-};
+var _0xf3dd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x72\x65\x73\x74\x72\x69\x63\x74","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0xf3dd[0];module[_0xf3dd[1]]=function(_0xecc7x1,_0xecc7x2){var _0xecc7x3=_0xecc7x1[_0xf3dd[10]](_0xf3dd[2],{app:{type:_0xecc7x2.ENUM(_0xf3dd[3],_0xf3dd[4])},priority:{type:_0xecc7x2[_0xf3dd[5]]},timeout:{type:_0xecc7x2[_0xf3dd[5]]},interval:{type:_0xecc7x2[_0xf3dd[6]]}},{tableName:_0xf3dd[7],associate:function(_0xecc7x4){_0xecc7x3[_0xf3dd[9]](_0xecc7x4.User,{onDelete:_0xf3dd[8]});_0xecc7x3[_0xf3dd[9]](_0xecc7x4.Interval);_0xecc7x3[_0xf3dd[9]](_0xecc7x4.MailQueue,{onDelete:_0xf3dd[8]});_0xecc7x3[_0xf3dd[9]](_0xecc7x4.MailAccount,{onDelete:_0xf3dd[8]})}});return _0xecc7x3}
\ No newline at end of file
index 9b2efb5..6a0bd6a 100644 (file)
@@ -1,21 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function (sequelize, DataTypes) {
-
-       var MailAttachment = sequelize.define('MailAttachment', {
-               domain: DataTypes.STRING,
-               size: DataTypes.INTEGER,
-               path: DataTypes.STRING,
-               name: DataTypes.STRING,
-               basename: DataTypes.STRING,
-               type: DataTypes.STRING
-       }, {
-               tableName: 'mail_attachments'
-       });
-
-       return MailAttachment;
-};
+var _0xa8e2=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xa8e2[0]);module[_0xa8e2[1]]=function(_0xa476x2,_0xa476x3){var _0xa476x4=_0xa476x2[_0xa8e2[6]](_0xa8e2[2],{domain:_0xa476x3[_0xa8e2[3]],size:_0xa476x3[_0xa8e2[4]],path:_0xa476x3[_0xa8e2[3]],name:_0xa476x3[_0xa8e2[3]],basename:_0xa476x3[_0xa8e2[3]],type:_0xa476x3[_0xa8e2[3]]},{tableName:_0xa8e2[5]});return _0xa476x4}
\ No newline at end of file
index 218cb9c..058f411 100644 (file)
@@ -1,23 +1 @@
-/**
- * User Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var MailAutomation = sequelize.define('MailAutomation', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING,
-    conditions: DataTypes.TEXT,
-    actions: DataTypes.TEXT,
-    status: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    }
-  }, {
-    tableName: 'mail_automations'
-  });
-
-  return MailAutomation;
-};
+var _0x3a30=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x6D\x61\x69\x6C\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x3a30[0]);module[_0x3a30[1]]=function(_0xe29dx2,_0xe29dx3){var _0xe29dx4=_0xe29dx2[_0x3a30[7]](_0x3a30[2],{name:_0xe29dx3[_0x3a30[3]],description:_0xe29dx3[_0x3a30[3]],conditions:_0xe29dx3[_0x3a30[4]],actions:_0xe29dx3[_0x3a30[4]],status:{type:_0xe29dx3[_0x3a30[5]],defaultValue:false}},{tableName:_0x3a30[6]});return _0xe29dx4}
\ No newline at end of file
index 50675a7..06c919d 100644 (file)
@@ -1,88 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var MailMessage = sequelize.define('MailMessage', {
-               messageId: DataTypes.STRING,
-               inReplyTo: DataTypes.STRING,
-               subject: DataTypes.STRING,
-               from: {
-                       type: DataTypes.STRING,
-                       get: function() {
-                               return this.getDataValue('from') ? this.getDataValue('from').split(';') : [];
-                       },
-                       set: function(val) {
-                               this.setDataValue('from', val.join(';'));
-                       }
-               },
-               to: {
-                       type: DataTypes.STRING,
-                       get: function() {
-                               return this.getDataValue('to') ? this.getDataValue('to').split(';') : [];
-                       },
-                       set: function(val) {
-                               this.setDataValue('to', val.join(';'));
-                       }
-               },
-               cc: {
-                       type: DataTypes.STRING,
-                       get: function() {
-                               return this.getDataValue('cc') ? this.getDataValue('cc').split(';') : [];
-                       },
-                       set: function(val) {
-                               this.setDataValue('cc', val.join(';'));
-                       }
-               },
-               bcc: {
-                       type: DataTypes.STRING,
-                       get: function() {
-                               return this.getDataValue('bcc') ? this.getDataValue('bcc').split(';') : [];
-                       },
-                       set: function(val) {
-                               this.setDataValue('bcc', val.join(';'));
-                       }
-               },
-               attachment: DataTypes.TEXT,
-               text: {
-                       type: DataTypes.BLOB,
-                       get: function() {
-                               if (this.getDataValue('text')) {
-                                       return this.getDataValue('text').toString();
-                               }
-                       }
-               },
-               html: {
-                       type: DataTypes.BLOB,
-                       get: function() {
-                               if (this.getDataValue('html')) {
-                                       return this.getDataValue('html').toString();
-                               }
-                       }
-               },
-               reason: DataTypes.TEXT,
-               status: {
-                       type: DataTypes.ENUM('SENT', 'SENDING', 'RECEIVED', 'FAILED', 'NOTE'),
-                       defaultValue: 'SENDING'
-               }
-       }, {
-               tableName: 'mail_messages',
-               paranoid: true,
-               associate: function(models) {
-                       MailMessage.hasMany(models.MailAttachment);
-                       MailMessage.belongsTo(models.User);
-                       MailMessage.belongsTo(models.MailRoom, {
-                               onDelete: 'cascade'
-                       });
-                       MailMessage.belongsTo(models.ContactEmail, {
-                               foreignKey: 'from',
-                               constraints: false
-                       });
-               }
-       });
-
-       return MailMessage;
-};
+var _0x8ae3=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x53\x54\x52\x49\x4E\x47","\x66\x72\x6F\x6D","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x74\x6F","\x63\x63","\x62\x63\x63","\x54\x45\x58\x54","\x42\x4C\x4F\x42","\x74\x65\x78\x74","\x68\x74\x6D\x6C","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x63\x61\x73\x63\x61\x64\x65","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x8ae3[0]);module[_0x8ae3[1]]=function(_0x8de5x2,_0x8de5x3){var _0x8de5x4=_0x8de5x2[_0x8ae3[26]](_0x8ae3[2],{messageId:_0x8de5x3[_0x8ae3[3]],inReplyTo:_0x8de5x3[_0x8ae3[3]],subject:_0x8de5x3[_0x8ae3[3]],from:{type:_0x8de5x3[_0x8ae3[3]],get:function(){return this[_0x8ae3[5]](_0x8ae3[4])?this[_0x8ae3[5]](_0x8ae3[4])[_0x8ae3[7]](_0x8ae3[6]):[]},set:function(_0x8de5x5){this[_0x8ae3[9]](_0x8ae3[4],_0x8de5x5[_0x8ae3[8]](_0x8ae3[6]))}},to:{type:_0x8de5x3[_0x8ae3[3]],get:function(){return this[_0x8ae3[5]](_0x8ae3[10])?this[_0x8ae3[5]](_0x8ae3[10])[_0x8ae3[7]](_0x8ae3[6]):[]},set:function(_0x8de5x5){this[_0x8ae3[9]](_0x8ae3[10],_0x8de5x5[_0x8ae3[8]](_0x8ae3[6]))}},cc:{type:_0x8de5x3[_0x8ae3[3]],get:function(){return this[_0x8ae3[5]](_0x8ae3[11])?this[_0x8ae3[5]](_0x8ae3[11])[_0x8ae3[7]](_0x8ae3[6]):[]},set:function(_0x8de5x5){this[_0x8ae3[9]](_0x8ae3[11],_0x8de5x5[_0x8ae3[8]](_0x8ae3[6]))}},bcc:{type:_0x8de5x3[_0x8ae3[3]],get:function(){return this[_0x8ae3[5]](_0x8ae3[12])?this[_0x8ae3[5]](_0x8ae3[12])[_0x8ae3[7]](_0x8ae3[6]):[]},set:function(_0x8de5x5){this[_0x8ae3[9]](_0x8ae3[12],_0x8de5x5[_0x8ae3[8]](_0x8ae3[6]))}},attachment:_0x8de5x3[_0x8ae3[13]],text:{type:_0x8de5x3[_0x8ae3[14]],get:function(){if(this[_0x8ae3[5]](_0x8ae3[15])){return this[_0x8ae3[5]](_0x8ae3[15]).toString()}}},html:{type:_0x8de5x3[_0x8ae3[14]],get:function(){if(this[_0x8ae3[5]](_0x8ae3[16])){return this[_0x8ae3[5]](_0x8ae3[16]).toString()}}},reason:_0x8de5x3[_0x8ae3[13]],status:{type:_0x8de5x3.ENUM(_0x8ae3[17],_0x8ae3[18],_0x8ae3[19],_0x8ae3[20],_0x8ae3[21]),defaultValue:_0x8ae3[18]}},{tableName:_0x8ae3[22],paranoid:true,associate:function(_0x8de5x6){_0x8de5x4[_0x8ae3[23]](_0x8de5x6.MailAttachment);_0x8de5x4[_0x8ae3[24]](_0x8de5x6.User);_0x8de5x4[_0x8ae3[24]](_0x8de5x6.MailRoom,{onDelete:_0x8ae3[25]});_0x8de5x4[_0x8ae3[24]](_0x8de5x6.ContactEmail,{foreignKey:_0x8ae3[4],constraints:false})}});return _0x8de5x4}
\ No newline at end of file
index 421dc37..e3937be 100644 (file)
@@ -1,37 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var MailQueue = sequelize.define('MailQueue', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    description: {
-      type: DataTypes.STRING,
-    },
-    timeout: {
-      type: DataTypes.INTEGER,
-    },
-    strategy: {
-      type: DataTypes.ENUM('rrmemory', 'beepall')
-    }
-  }, {
-    tableName: 'mail_queues',
-    associate: function(models) {
-      // RELATIONS
-      MailQueue.belongsToMany(models.User, {
-        through: models.UserHasMailQueue
-      });
-      //SCOPES
-      MailQueue.addScope('default', {
-        include: [{
-          model: models.User,
-          attributes: ['id', 'name', 'fullname', 'email', 'online', 'lastLoginAt', 'mailPause', 'pauseType']
-        }]
-      });
-    }
-  });
-
-  return MailQueue;
-};
+var _0xf3ac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x61\x75\x6C\x74","\x55\x73\x65\x72","\x69\x64","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x6F\x6E\x6C\x69\x6E\x65","\x6C\x61\x73\x74\x4C\x6F\x67\x69\x6E\x41\x74","\x6D\x61\x69\x6C\x50\x61\x75\x73\x65","\x70\x61\x75\x73\x65\x54\x79\x70\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0xf3ac[0];module[_0xf3ac[1]]=function(_0xb6f9x1,_0xb6f9x2){var _0xb6f9x3=_0xb6f9x1[_0xf3ac[21]](_0xf3ac[2],{name:{type:_0xb6f9x2[_0xf3ac[3]],unique:true},description:{type:_0xb6f9x2[_0xf3ac[3]]},timeout:{type:_0xb6f9x2[_0xf3ac[4]]},strategy:{type:_0xb6f9x2.ENUM(_0xf3ac[5],_0xf3ac[6])}},{tableName:_0xf3ac[7],associate:function(_0xb6f9x4){_0xb6f9x3[_0xf3ac[9]](_0xb6f9x4.User,{through:_0xb6f9x4[_0xf3ac[8]]});_0xb6f9x3[_0xf3ac[20]](_0xf3ac[10],{include:[{model:_0xb6f9x4[_0xf3ac[11]],attributes:[_0xf3ac[12],_0xf3ac[13],_0xf3ac[14],_0xf3ac[15],_0xf3ac[16],_0xf3ac[17],_0xf3ac[18],_0xf3ac[19]]}]})}});return _0xb6f9x3}
\ No newline at end of file
index 13d7977..f1a3035 100644 (file)
@@ -1,63 +1 @@
-/**
- * Chat Website Model
- */
-
-
-module.exports = function(sequelize, DataTypes) {
-       var MailRoom = sequelize.define('MailRoom', {
-               subject: DataTypes.STRING,
-               from: DataTypes.STRING,
-               attachment: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: false
-               },
-               status: {
-                       type: DataTypes.ENUM('NEW', 'OPEN', 'CLOSED'),
-                       defaultValue: 'NEW'
-               }
-       }, {
-               tableName: 'mail_rooms',
-               paranoid: true,
-               associate: function(models) {
-                       // BINDING
-                       MailRoom.hasMany(models.MailMessage);
-                       MailRoom.belongsTo(models.MailAccount);
-                       MailRoom.belongsToMany(models.User, {
-                               through: 'user_has_mail_rooms'
-                       });
-                       // SCOPES
-                       MailRoom.addScope('default', {
-                               order: [
-                                       ['createdAt', 'DESC']
-                               ],
-                               include: [{
-                                       model: models.MailAccount
-                               }, {
-                                       model: models.MailMessage,
-                                       include: [{
-                                               model: models.MailAttachment
-                                       }, {
-                                               model: models.User,
-                                               attributes: ['id', 'name', 'fullname', 'email']
-                                       }]
-                               }, {
-                                       model: models.User,
-                                       attributes: ['id', 'name', 'fullname', 'email']
-                               }]
-                       });
-
-                       MailRoom.addScope('agent', function(id) {
-                               return {
-                                       include: [{
-                                               model: models.User,
-                                               where: {
-                                                       id: id
-                                               }
-                                       }]
-                               }
-                       });
-               }
-       });
-
-       return MailRoom;
-};
+var _0xed59=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x4E\x45\x57","\x4F\x50\x45\x4E","\x43\x4C\x4F\x53\x45\x44","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x61\x75\x6C\x74","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x44\x45\x53\x43","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x55\x73\x65\x72","\x69\x64","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x61\x64\x64\x53\x63\x6F\x70\x65","\x61\x67\x65\x6E\x74","\x64\x65\x66\x69\x6E\x65"];module[_0xed59[0]]=function(_0x9674x1,_0x9674x2){var _0x9674x3=_0x9674x1[_0xed59[25]](_0xed59[1],{subject:_0x9674x2[_0xed59[2]],from:_0x9674x2[_0xed59[2]],attachment:{type:_0x9674x2[_0xed59[3]],defaultValue:false},status:{type:_0x9674x2.ENUM(_0xed59[4],_0xed59[5],_0xed59[6]),defaultValue:_0xed59[4]}},{tableName:_0xed59[7],paranoid:true,associate:function(_0x9674x4){_0x9674x3[_0xed59[8]](_0x9674x4.MailMessage);_0x9674x3[_0xed59[9]](_0x9674x4.MailAccount);_0x9674x3[_0xed59[11]](_0x9674x4.User,{through:_0xed59[10]});_0x9674x3[_0xed59[23]](_0xed59[12],{order:[[_0xed59[13],_0xed59[14]]],include:[{model:_0x9674x4[_0xed59[15]]},{model:_0x9674x4[_0xed59[16]],include:[{model:_0x9674x4[_0xed59[17]]},{model:_0x9674x4[_0xed59[18]],attributes:[_0xed59[19],_0xed59[20],_0xed59[21],_0xed59[22]]}]},{model:_0x9674x4[_0xed59[18]],attributes:[_0xed59[19],_0xed59[20],_0xed59[21],_0xed59[22]]}]});_0x9674x3[_0xed59[23]](_0xed59[24],function(_0x9674x5){return {include:[{model:_0x9674x4[_0xed59[18]],where:{id:_0x9674x5}}]}})}});return _0x9674x3}
\ No newline at end of file
index 20b29e9..90a5cb0 100644 (file)
@@ -1,14 +1 @@
-/**
- * Chat Website Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-       var MailRoomStatus = sequelize.define('MailRoomStatus', {
-               status: DataTypes.ENUM('RECEIVED', 'ASSIGNED', 'REPLIED', 'ARCHIVED')
-       }, {
-               tableName: 'mail_room_states'
-       });
-
-       return MailRoomStatus;
-};
+var _0x1834=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x53\x74\x61\x74\x75\x73","\x52\x45\x43\x45\x49\x56\x45\x44","\x41\x53\x53\x49\x47\x4E\x45\x44","\x52\x45\x50\x4C\x49\x45\x44","\x41\x52\x43\x48\x49\x56\x45\x44","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x5F\x73\x74\x61\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x1834[0]]=function(_0x604cx1,_0x604cx2){var _0x604cx3=_0x604cx1[_0x1834[7]](_0x1834[1],{status:_0x604cx2.ENUM(_0x1834[2],_0x1834[3],_0x1834[4],_0x1834[5])},{tableName:_0x1834[6]});return _0x604cx3}
\ No newline at end of file
index bb7f978..e17111e 100644 (file)
@@ -1,44 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var MailServerIn = sequelize.define('MailServerIn', {
-               description: DataTypes.STRING,
-               host: DataTypes.STRING,
-               username: {
-                       type: DataTypes.STRING,
-                       unique: true
-               },
-               password: DataTypes.STRING,
-               port: DataTypes.INTEGER,
-               mailbox: DataTypes.STRING,
-               ssl: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: false
-               },
-               delete: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: false
-               },
-               filter: {
-                       type: DataTypes.ENUM('UNSEEN'),
-                       defaultValue: 'UNSEEN'
-               },
-               protocol: {
-                       type: DataTypes.ENUM('IMAP', 'POP3'),
-                       defaultValue: 'IMAP'
-               },
-               state: {
-                       type: DataTypes.ENUM('CONNECTED', 'DISCONNECTED', 'ERROR', 'UNKNOWN'),
-                       defaultValue: 'UNKNOWN'
-               }
-       }, {
-               tableName: 'mail_servers_in'
-       });
-
-       return MailServerIn;
-};
+var _0xd40e=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x55\x4E\x53\x45\x45\x4E","\x49\x4D\x41\x50","\x50\x4F\x50\x33","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x45\x52\x52\x4F\x52","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x73\x5F\x69\x6E","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xd40e[0]);module[_0xd40e[1]]=function(_0x496ex2,_0x496ex3){var _0x496ex4=_0x496ex2[_0xd40e[14]](_0xd40e[2],{description:_0x496ex3[_0xd40e[3]],host:_0x496ex3[_0xd40e[3]],username:{type:_0x496ex3[_0xd40e[3]],unique:true},password:_0x496ex3[_0xd40e[3]],port:_0x496ex3[_0xd40e[4]],mailbox:_0x496ex3[_0xd40e[3]],ssl:{type:_0x496ex3[_0xd40e[5]],defaultValue:false},delete:{type:_0x496ex3[_0xd40e[5]],defaultValue:false},filter:{type:_0x496ex3.ENUM(_0xd40e[6]),defaultValue:_0xd40e[6]},protocol:{type:_0x496ex3.ENUM(_0xd40e[7],_0xd40e[8]),defaultValue:_0xd40e[7]},state:{type:_0x496ex3.ENUM(_0xd40e[9],_0xd40e[10],_0xd40e[11],_0xd40e[12]),defaultValue:_0xd40e[12]}},{tableName:_0xd40e[13]});return _0x496ex4}
\ No newline at end of file
index 5394b23..d7cca31 100644 (file)
@@ -1,32 +1 @@
-/**
- *
- */
-module.exports = function(sequelize, DataTypes) {
-
-       var MailServerOut = sequelize.define('MailServerOut', {
-               description: DataTypes.STRING,
-               host: DataTypes.STRING,
-               username: {
-                       type: DataTypes.STRING,
-                       unique: true
-               },
-               password: DataTypes.STRING,
-               port: DataTypes.INTEGER,
-               ssl: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: false
-               },
-               service: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: false
-               },
-               state: {
-                       type: DataTypes.ENUM('CONNECTED', 'DISCONNECTED', 'ERROR', 'UNKNOWN'),
-                       defaultValue: 'UNKNOWN'
-               },
-       }, {
-               tableName: 'mail_servers_out'
-       });
-
-       return MailServerOut;
-};
+var _0xa1c1=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x45\x52\x52\x4F\x52","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x73\x5F\x6F\x75\x74","\x64\x65\x66\x69\x6E\x65"];module[_0xa1c1[0]]=function(_0xa6a4x1,_0xa6a4x2){var _0xa6a4x3=_0xa6a4x1[_0xa1c1[10]](_0xa1c1[1],{description:_0xa6a4x2[_0xa1c1[2]],host:_0xa6a4x2[_0xa1c1[2]],username:{type:_0xa6a4x2[_0xa1c1[2]],unique:true},password:_0xa6a4x2[_0xa1c1[2]],port:_0xa6a4x2[_0xa1c1[3]],ssl:{type:_0xa6a4x2[_0xa1c1[4]],defaultValue:false},service:{type:_0xa6a4x2[_0xa1c1[4]],defaultValue:false},state:{type:_0xa6a4x2.ENUM(_0xa1c1[5],_0xa1c1[6],_0xa1c1[7],_0xa1c1[8]),defaultValue:_0xa1c1[8]}},{tableName:_0xa1c1[9]});return _0xa6a4x3}
\ No newline at end of file
index 4856564..491a2ff 100644 (file)
@@ -1,21 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var MailTemplate = sequelize.define('MailTemplate', {
-               name: DataTypes.STRING,
-               description: DataTypes.STRING,
-               subject: DataTypes.STRING,
-               attachment: DataTypes.TEXT,
-               html: DataTypes.TEXT,
-               text: DataTypes.TEXT
-       }, {
-               tableName: 'mail_templates'
-       });
-
-       return MailTemplate;
-};
+var _0x7647=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x54\x65\x6D\x70\x6C\x61\x74\x65","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x7647[0]);module[_0x7647[1]]=function(_0xc9ddx2,_0xc9ddx3){var _0xc9ddx4=_0xc9ddx2[_0x7647[6]](_0x7647[2],{name:_0xc9ddx3[_0x7647[3]],description:_0xc9ddx3[_0x7647[3]],subject:_0xc9ddx3[_0x7647[3]],attachment:_0xc9ddx3[_0x7647[4]],html:_0xc9ddx3[_0x7647[4]],text:_0xc9ddx3[_0x7647[4]]},{tableName:_0x7647[5]});return _0xc9ddx4}
\ No newline at end of file
index 73be985..eb3a6a4 100644 (file)
@@ -1,23 +1 @@
-/**
- * User Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var MailTrigger = sequelize.define('MailTrigger', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING,
-    conditions: DataTypes.TEXT,
-    actions: DataTypes.TEXT,
-    status: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    }
-  }, {
-    tableName: 'mail_triggers'
-  });
-
-  return MailTrigger;
-};
+var _0xd80d=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x54\x72\x69\x67\x67\x65\x72","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E","\x6D\x61\x69\x6C\x5F\x74\x72\x69\x67\x67\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xd80d[0]);module[_0xd80d[1]]=function(_0x93b3x2,_0x93b3x3){var _0x93b3x4=_0x93b3x2[_0xd80d[7]](_0xd80d[2],{name:_0x93b3x3[_0xd80d[3]],description:_0x93b3x3[_0xd80d[3]],conditions:_0x93b3x3[_0xd80d[4]],actions:_0x93b3x3[_0xd80d[4]],status:{type:_0x93b3x3[_0xd80d[5]],defaultValue:false}},{tableName:_0xd80d[6]});return _0x93b3x4}
\ No newline at end of file
index dfd57d2..4676b79 100644 (file)
@@ -1,37 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Metric = sequelize.define('Metric', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true,
-      validate: {
-        notEmpty: true
-      },
-    },
-    table: DataTypes.STRING,
-    metric: DataTypes.TEXT,
-    description: DataTypes.STRING
-  }, {
-    tableName: 'metrics',
-    associate: function(models) {
-      Metric.hasMany(models.ReportField, {
-        as: 'ReportFields'
-      });
-      Metric.addScope('attr', {
-        attributes: ['name', 'table', 'metric']
-      });
-      // Metric.addScope('fields', {
-      //   include: [{
-      //     model: models.ReportField,
-      //     as: 'ReportFields',
-      //     required: false
-      //   }]
-      // });
-    }
-  });
-
-  return Metric;
-
-};
+var _0x43cd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x65\x74\x72\x69\x63","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x6D\x65\x74\x72\x69\x63\x73","\x52\x65\x70\x6F\x72\x74\x46\x69\x65\x6C\x64\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x61\x74\x74\x72","\x6E\x61\x6D\x65","\x74\x61\x62\x6C\x65","\x6D\x65\x74\x72\x69\x63","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0x43cd[0];module[_0x43cd[1]]=function(_0xd350x1,_0xd350x2){var _0xd350x3=_0xd350x1[_0x43cd[13]](_0x43cd[2],{name:{type:_0xd350x2[_0x43cd[3]],unique:true,validate:{notEmpty:true}},table:_0xd350x2[_0x43cd[3]],metric:_0xd350x2[_0x43cd[4]],description:_0xd350x2[_0x43cd[3]]},{tableName:_0x43cd[5],associate:function(_0xd350x4){_0xd350x3[_0x43cd[7]](_0xd350x4.ReportField,{as:_0x43cd[6]});_0xd350x3[_0x43cd[12]](_0x43cd[8],{attributes:[_0x43cd[9],_0x43cd[10],_0x43cd[11]]})}});return _0xd350x3}
\ No newline at end of file
index c2bef6c..bc1831a 100644 (file)
@@ -1,27 +1 @@
-/**
- * Module Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Module = sequelize.define('Module', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true,
-      allowNull: false,
-      validate: {
-        notEmpty: true
-      }
-    },
-    title: DataTypes.STRING
-  }, {
-    tableName: 'modules',
-    associate: function(models) {
-      Module.belongsToMany(models.User, {
-        through: 'user_has_modules'
-      });
-    }
-  });
-
-  return Module;
-};
+var _0x6bef=["\x65\x78\x70\x6F\x72\x74\x73","\x4D\x6F\x64\x75\x6C\x65","\x53\x54\x52\x49\x4E\x47","\x6D\x6F\x64\x75\x6C\x65\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x6F\x64\x75\x6C\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];module[_0x6bef[0]]=function(_0x15d5x1,_0x15d5x2){var _0x15d5x3=_0x15d5x1[_0x6bef[6]](_0x6bef[1],{name:{type:_0x15d5x2[_0x6bef[2]],unique:true,allowNull:false,validate:{notEmpty:true}},title:_0x15d5x2[_0x6bef[2]]},{tableName:_0x6bef[3],associate:function(_0x15d5x4){_0x15d5x3[_0x6bef[5]](_0x15d5x4.User,{through:_0x6bef[4]})}});return _0x15d5x3}
\ No newline at end of file
index ad6cba8..078f73e 100644 (file)
@@ -1,32 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Motionbar = sequelize.define('Motionbar', {
-    action: {
-      type: DataTypes.ENUM,
-      values: ['hangup'],
-      allowNull: false
-    },
-    state: {
-      type: DataTypes.ENUM,
-      values: ['incoming', 'active'],
-    },
-    phone: {
-      type: DataTypes.STRING
-    }
-  }, {
-    tableName: 'motionbar',
-    associate: function(models) {
-      Motionbar.belongsTo(models.User, {
-        as: 'Admin'
-      });
-      Motionbar.belongsTo(models.User, {
-        as: 'User'
-      });
-    }
-  });
-
-  return Motionbar;
-
-};
+var _0xbc80=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x45\x4E\x55\x4D","\x68\x61\x6E\x67\x75\x70","\x69\x6E\x63\x6F\x6D\x69\x6E\x67","\x61\x63\x74\x69\x76\x65","\x53\x54\x52\x49\x4E\x47","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x41\x64\x6D\x69\x6E","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x55\x73\x65\x72","\x64\x65\x66\x69\x6E\x65"];_0xbc80[0];module[_0xbc80[1]]=function(_0xa89cx1,_0xa89cx2){var _0xa89cx3=_0xa89cx1[_0xbc80[12]](_0xbc80[2],{action:{type:_0xa89cx2[_0xbc80[3]],values:[_0xbc80[4]],allowNull:false},state:{type:_0xa89cx2[_0xbc80[3]],values:[_0xbc80[5],_0xbc80[6]]},phone:{type:_0xa89cx2[_0xbc80[7]]}},{tableName:_0xbc80[8],associate:function(_0xa89cx4){_0xa89cx3[_0xbc80[10]](_0xa89cx4.User,{as:_0xbc80[9]});_0xa89cx3[_0xbc80[10]](_0xa89cx4.User,{as:_0xbc80[11]})}});return _0xa89cx3}
\ No newline at end of file
index ee1ef95..bfe318c 100644 (file)
@@ -1,25 +1 @@
-/**
- * tag Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Pause = sequelize.define('Pause', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true,
-      allowNull: false,
-      validate: {
-        notEmpty: true,
-      }
-    },
-    description: {
-      type: DataTypes.STRING
-    }
-  }, {
-    tableName: 'pauses',
-    associate: function(models) {}
-  });
-
-  return Pause;
-};
+var _0xd98c=["\x65\x78\x70\x6F\x72\x74\x73","\x50\x61\x75\x73\x65","\x53\x54\x52\x49\x4E\x47","\x70\x61\x75\x73\x65\x73","\x64\x65\x66\x69\x6E\x65"];module[_0xd98c[0]]=function(_0xd08dx1,_0xd08dx2){var _0xd08dx3=_0xd08dx1[_0xd98c[4]](_0xd98c[1],{name:{type:_0xd08dx2[_0xd98c[2]],unique:true,allowNull:false,validate:{notEmpty:true}},description:{type:_0xd08dx2[_0xd98c[2]]}},{tableName:_0xd98c[3],associate:function(_0xd08dx4){}});return _0xd08dx3}
\ No newline at end of file
index a7628cf..e03c508 100644 (file)
@@ -1,71 +1 @@
-/**
- * Agent Log Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportAgent = sequelize.define('ReportAgent', {
-    uniqueid: DataTypes.STRING,
-    calleridnum: DataTypes.STRING,
-    calleridname: DataTypes.STRING,
-    queue: DataTypes.STRING,
-    interface: DataTypes.STRING,
-    membername: DataTypes.STRING,
-    agentcalledAt: DataTypes.DATE,
-    agentconnectAt: DataTypes.DATE,
-    agentcompleteAt: DataTypes.DATE,
-    agentringnoanswerAt: DataTypes.DATE,
-    agentdumpAt: DataTypes.DATE,
-    holdtime: DataTypes.INTEGER,
-    agentcomplete: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    agentringnoanswer: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    agentdump: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    talktime: DataTypes.INTEGER,
-    agentacw: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    acwtime: DataTypes.INTEGER,
-    reason: DataTypes.STRING,
-    lastevent: DataTypes.STRING,
-    channel: DataTypes.STRING,
-    channelstate: DataTypes.INTEGER,
-    channelstatedesc: DataTypes.STRING,
-    connectedlinenum: DataTypes.STRING,
-    connectedlinename: DataTypes.STRING,
-    language: DataTypes.STRING,
-    accountcode: DataTypes.STRING,
-    context: DataTypes.STRING,
-    exten: DataTypes.STRING,
-    priority: DataTypes.STRING,
-    destchannel: DataTypes.STRING,
-    destchannelstate: DataTypes.INTEGER,
-    destchannelstatedesc: DataTypes.STRING,
-    destcalleridnum: DataTypes.STRING,
-    destcalleridname: DataTypes.STRING,
-    destconnectedlinenum: DataTypes.STRING,
-    destconnectedlinename: DataTypes.STRING,
-    destlanguage: DataTypes.STRING,
-    destaccountcode: DataTypes.STRING,
-    destcontext: DataTypes.STRING,
-    destexten: DataTypes.STRING,
-    destpriority: DataTypes.STRING,
-    destuniqueid: DataTypes.STRING
-  }, {
-    tableName: 'report_agent',
-    indexes: [{
-      fields: ['uniqueid', 'destuniqueid']
-    }]
-  });
-
-  return ReportAgent;
-};
+var _0xa2e2=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];module[_0xa2e2[0]]=function(_0xa13ax1,_0xa13ax2){var _0xa13ax3=_0xa13ax1[_0xa2e2[9]](_0xa2e2[1],{uniqueid:_0xa13ax2[_0xa2e2[2]],calleridnum:_0xa13ax2[_0xa2e2[2]],calleridname:_0xa13ax2[_0xa2e2[2]],queue:_0xa13ax2[_0xa2e2[2]],interface:_0xa13ax2[_0xa2e2[2]],membername:_0xa13ax2[_0xa2e2[2]],agentcalledAt:_0xa13ax2[_0xa2e2[3]],agentconnectAt:_0xa13ax2[_0xa2e2[3]],agentcompleteAt:_0xa13ax2[_0xa2e2[3]],agentringnoanswerAt:_0xa13ax2[_0xa2e2[3]],agentdumpAt:_0xa13ax2[_0xa2e2[3]],holdtime:_0xa13ax2[_0xa2e2[4]],agentcomplete:{type:_0xa13ax2[_0xa2e2[5]],defaultValue:false},agentringnoanswer:{type:_0xa13ax2[_0xa2e2[5]],defaultValue:false},agentdump:{type:_0xa13ax2[_0xa2e2[5]],defaultValue:false},talktime:_0xa13ax2[_0xa2e2[4]],agentacw:{type:_0xa13ax2[_0xa2e2[5]],defaultValue:false},acwtime:_0xa13ax2[_0xa2e2[4]],reason:_0xa13ax2[_0xa2e2[2]],lastevent:_0xa13ax2[_0xa2e2[2]],channel:_0xa13ax2[_0xa2e2[2]],channelstate:_0xa13ax2[_0xa2e2[4]],channelstatedesc:_0xa13ax2[_0xa2e2[2]],connectedlinenum:_0xa13ax2[_0xa2e2[2]],connectedlinename:_0xa13ax2[_0xa2e2[2]],language:_0xa13ax2[_0xa2e2[2]],accountcode:_0xa13ax2[_0xa2e2[2]],context:_0xa13ax2[_0xa2e2[2]],exten:_0xa13ax2[_0xa2e2[2]],priority:_0xa13ax2[_0xa2e2[2]],destchannel:_0xa13ax2[_0xa2e2[2]],destchannelstate:_0xa13ax2[_0xa2e2[4]],destchannelstatedesc:_0xa13ax2[_0xa2e2[2]],destcalleridnum:_0xa13ax2[_0xa2e2[2]],destcalleridname:_0xa13ax2[_0xa2e2[2]],destconnectedlinenum:_0xa13ax2[_0xa2e2[2]],destconnectedlinename:_0xa13ax2[_0xa2e2[2]],destlanguage:_0xa13ax2[_0xa2e2[2]],destaccountcode:_0xa13ax2[_0xa2e2[2]],destcontext:_0xa13ax2[_0xa2e2[2]],destexten:_0xa13ax2[_0xa2e2[2]],destpriority:_0xa13ax2[_0xa2e2[2]],destuniqueid:_0xa13ax2[_0xa2e2[2]]},{tableName:_0xa2e2[6],indexes:[{fields:[_0xa2e2[7],_0xa2e2[8]]}]});return _0xa13ax3}
\ No newline at end of file
index 44e7515..b51507b 100644 (file)
@@ -1,60 +1 @@
-/**
- * CDR Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportCall = sequelize.define('ReportCall', {
-    uniqueid: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    type: {
-      type: DataTypes.ENUM,
-      values: ['inbound', 'internal', 'outbound']
-    },
-    tag: DataTypes.STRING,
-    accountcode: DataTypes.STRING,
-    source: DataTypes.STRING,
-    destination: DataTypes.STRING,
-    destinationcontext: DataTypes.STRING,
-    callerid: DataTypes.STRING,
-    channel: DataTypes.STRING,
-    destinationchannel: DataTypes.STRING,
-    lastapplication: DataTypes.STRING,
-    lastdata: DataTypes.STRING,
-    starttime: DataTypes.DATE,
-    answertime: {
-      type: DataTypes.DATE,
-      set: function(answertime) {
-        if (answertime !== '') {
-          this.setDataValue('answertime', answertime);
-        } else {
-          this.setDataValue('answertime', null);
-        }
-      }
-    },
-    endtime: DataTypes.DATE,
-    duration: DataTypes.INTEGER,
-    billableseconds: DataTypes.INTEGER,
-    disposition: DataTypes.STRING,
-    amaflags: DataTypes.STRING,
-    userfield: DataTypes.STRING
-  }, {
-    tableName: 'report_call',
-    associate: function(models) {
-      ReportCall.hasMany(models.ReportQueue, {
-        as: 'QueueCalls',
-        foreignKey: 'uniqueid',
-        constraints: false
-      })
-      ReportCall.hasMany(models.ReportAgent, {
-        as: 'ReportAgents',
-        foreignKey: 'uniqueid',
-        constraints: false
-      })
-    }
-  });
-
-  return ReportCall;
-};
+var _0x913e=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x61\x6C\x6C","\x53\x54\x52\x49\x4E\x47","\x45\x4E\x55\x4D","\x69\x6E\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x44\x41\x54\x45","","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C","\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x52\x65\x70\x6F\x72\x74\x41\x67\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x913e[0]]=function(_0xe220x1,_0xe220x2){var _0xe220x3=_0xe220x1[_0x913e[17]](_0x913e[1],{uniqueid:{type:_0xe220x2[_0x913e[2]],unique:true},type:{type:_0xe220x2[_0x913e[3]],values:[_0x913e[4],_0x913e[5],_0x913e[6]]},tag:_0xe220x2[_0x913e[2]],accountcode:_0xe220x2[_0x913e[2]],source:_0xe220x2[_0x913e[2]],destination:_0xe220x2[_0x913e[2]],destinationcontext:_0xe220x2[_0x913e[2]],callerid:_0xe220x2[_0x913e[2]],channel:_0xe220x2[_0x913e[2]],destinationchannel:_0xe220x2[_0x913e[2]],lastapplication:_0xe220x2[_0x913e[2]],lastdata:_0xe220x2[_0x913e[2]],starttime:_0xe220x2[_0x913e[7]],answertime:{type:_0xe220x2[_0x913e[7]],set:function(_0xe220x4){if(_0xe220x4!==_0x913e[8]){this[_0x913e[10]](_0x913e[9],_0xe220x4)}else {this[_0x913e[10]](_0x913e[9],null)}}},endtime:_0xe220x2[_0x913e[7]],duration:_0xe220x2[_0x913e[11]],billableseconds:_0xe220x2[_0x913e[11]],disposition:_0xe220x2[_0x913e[2]],amaflags:_0xe220x2[_0x913e[2]],userfield:_0xe220x2[_0x913e[2]]},{tableName:_0x913e[12],associate:function(_0xe220x5){_0xe220x3[_0x913e[15]](_0xe220x5.ReportQueue,{as:_0x913e[13],foreignKey:_0x913e[14],constraints:false});_0xe220x3[_0x913e[15]](_0xe220x5.ReportAgent,{as:_0x913e[16],foreignKey:_0x913e[14],constraints:false})}});return _0xe220x3}
\ No newline at end of file
index 8f1febf..d9593d0 100644 (file)
@@ -1,45 +1 @@
-/**
- * Agent Log Model
- */
-
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportChat = sequelize.define('ReportChat', {
-
-    uniqueid: DataTypes.STRING,
-    timeslot: DataTypes.INTEGER,
-    websitename: DataTypes.STRING,
-    websiteaddress: DataTypes.STRING,
-    websiteid: DataTypes.INTEGER,
-    application: DataTypes.STRING,
-    agentid: DataTypes.INTEGER,
-    agentname: DataTypes.STRING,
-    visitorid: DataTypes.STRING,
-    visitorname: DataTypes.STRING,
-    visitoremail: DataTypes.STRING,
-    queueid: DataTypes.INTEGER,
-    queuename: DataTypes.STRING,
-    roomid: DataTypes.INTEGER,
-    reason: {
-      type: DataTypes.STRING,
-      defaultValue: 'called'
-    },
-    connectid: {
-      type: DataTypes.STRING,
-      unique: true,
-      set: function(agentconnectedAt) {
-        this.setDataValue('connectid', this.uniqueid);
-        this.setDataValue('reason', 'connect');
-        this.setDataValue('connectedAt', moment().format("YYYY-MM-DD HH:mm:ss"));
-      }
-    },
-    calledAt: DataTypes.DATE,
-    connectedAt: DataTypes.DATE
-  }, {
-    tableName: 'report_chat'
-  });
-
-  return ReportChat;
-};
+var _0x89ff=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0x89ff[0]);module[_0x89ff[1]]=function(_0x9de6x2,_0x9de6x3){var _0x9de6x4=_0x9de6x2[_0x89ff[16]](_0x89ff[2],{uniqueid:_0x9de6x3[_0x89ff[3]],timeslot:_0x9de6x3[_0x89ff[4]],websitename:_0x9de6x3[_0x89ff[3]],websiteaddress:_0x9de6x3[_0x89ff[3]],websiteid:_0x9de6x3[_0x89ff[4]],application:_0x9de6x3[_0x89ff[3]],agentid:_0x9de6x3[_0x89ff[4]],agentname:_0x9de6x3[_0x89ff[3]],visitorid:_0x9de6x3[_0x89ff[3]],visitorname:_0x9de6x3[_0x89ff[3]],visitoremail:_0x9de6x3[_0x89ff[3]],queueid:_0x9de6x3[_0x89ff[4]],queuename:_0x9de6x3[_0x89ff[3]],roomid:_0x9de6x3[_0x89ff[4]],reason:{type:_0x9de6x3[_0x89ff[3]],defaultValue:_0x89ff[5]},connectid:{type:_0x9de6x3[_0x89ff[3]],unique:true,set:function(_0x9de6x5){this[_0x89ff[8]](_0x89ff[6],this[_0x89ff[7]]);this[_0x89ff[8]](_0x89ff[9],_0x89ff[10]);this[_0x89ff[8]](_0x89ff[11],moment()[_0x89ff[13]](_0x89ff[12]))}},calledAt:_0x9de6x3[_0x89ff[14]],connectedAt:_0x9de6x3[_0x89ff[14]]},{tableName:_0x89ff[15]});return _0x9de6x4}
\ No newline at end of file
index 9944aaa..2357e74 100644 (file)
@@ -1,35 +1 @@
-/**
- * Agent Log Model
- */
-
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportChatSession = sequelize.define('ReportChatSession', {
-    uniqueid: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    websitename: DataTypes.STRING,
-    websiteaddress: DataTypes.STRING,
-    websiteid: DataTypes.INTEGER,
-    application: DataTypes.STRING,
-    visitorid: DataTypes.STRING,
-    visitorname: DataTypes.STRING,
-    visitoremail: DataTypes.STRING,
-    agentid: DataTypes.STRING,
-    agentname: DataTypes.STRING,
-    queueid: DataTypes.INTEGER,
-    queuename: DataTypes.STRING,
-    roomid: DataTypes.INTEGER,
-    joinAt: DataTypes.DATE,
-    leaveAt: DataTypes.DATE,
-    unmanagedAt: DataTypes.DATE,
-    abandonAt: DataTypes.DATE
-  }, {
-    tableName: 'report_chat_session'
-  });
-
-  return ReportChatSession;
-};
+var _0xcbe3=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x61\x67\x65\x6E\x74","\x72\x65\x71\x75\x65\x73\x74\x65\x72","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0xcbe3[0]);module[_0xcbe3[1]]=function(_0x26f8x2,_0x26f8x3){var _0x26f8x4=_0x26f8x2[_0xcbe3[10]](_0xcbe3[2],{uniqueid:{type:_0x26f8x3[_0xcbe3[3]],unique:true},websitename:_0x26f8x3[_0xcbe3[3]],websiteaddress:_0x26f8x3[_0xcbe3[3]],websiteid:_0x26f8x3[_0xcbe3[4]],application:_0x26f8x3[_0xcbe3[3]],visitorid:_0x26f8x3[_0xcbe3[3]],visitorname:_0x26f8x3[_0xcbe3[3]],visitoremail:_0x26f8x3[_0xcbe3[3]],agentid:_0x26f8x3[_0xcbe3[3]],agentname:_0x26f8x3[_0xcbe3[3]],queueid:_0x26f8x3[_0xcbe3[4]],queuename:_0x26f8x3[_0xcbe3[3]],roomid:_0x26f8x3[_0xcbe3[4]],abandon:{type:_0x26f8x3[_0xcbe3[5]],defaulValue:false},abandonAt:_0x26f8x3[_0xcbe3[6]],complete:{type:_0x26f8x3[_0xcbe3[5]],defaulValue:false},completeReason:_0x26f8x3.ENUM(_0xcbe3[7],_0xcbe3[8]),completeAt:_0x26f8x3[_0xcbe3[6]],joinAt:_0x26f8x3[_0xcbe3[6]],leaveAt:_0x26f8x3[_0xcbe3[6]],unmanagedAt:_0x26f8x3[_0xcbe3[6]]},{tableName:_0xcbe3[9]});return _0x26f8x4}
\ No newline at end of file
index 208b861..94f626d 100644 (file)
@@ -1,22 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportField = sequelize.define('ReportField', {
-    field: DataTypes.STRING,
-    alias: DataTypes.STRING,
-    function: DataTypes.STRING,
-    groupBy: DataTypes.BOOLEAN,
-    orderBy: DataTypes.STRING
-  }, {
-    tableName: 'report_fields',
-    associate: function(models) {
-      ReportField.belongsTo(models.Metric);
-      ReportField.addScope('metrics', {
-        include: [models.Metric]
-      });
-    }
-  });
-
-  return ReportField;
-};
+var _0x3d38=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x6D\x65\x74\x72\x69\x63\x73","\x4D\x65\x74\x72\x69\x63","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0x3d38[0];module[_0x3d38[1]]=function(_0xfe3bx1,_0xfe3bx2){var _0xfe3bx3=_0xfe3bx1[_0x3d38[10]](_0x3d38[2],{field:_0xfe3bx2[_0x3d38[3]],alias:_0xfe3bx2[_0x3d38[3]],function:_0xfe3bx2[_0x3d38[3]],groupBy:_0xfe3bx2[_0x3d38[4]],orderBy:_0xfe3bx2[_0x3d38[3]]},{tableName:_0x3d38[5],associate:function(_0xfe3bx4){_0xfe3bx3[_0x3d38[6]](_0xfe3bx4.Metric);_0xfe3bx3[_0x3d38[9]](_0x3d38[7],{include:[_0xfe3bx4[_0x3d38[8]]]})}});return _0xfe3bx3}
\ No newline at end of file
index a285620..c50a645 100644 (file)
@@ -1,86 +1 @@
-/**
- * report_integrations Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportIntegration = sequelize.define('ReportIntegration', {
-    integration: DataTypes.STRING,
-    eventChannel: DataTypes.STRING,
-    exitStatus: DataTypes.STRING,
-    ticketId: DataTypes.STRING,
-    integrationId: DataTypes.INTEGER,
-    contacts: DataTypes.STRING,
-    uniqueid: DataTypes.STRING,
-    calleridnum: DataTypes.STRING,
-    calleridname: DataTypes.STRING,
-    queue: DataTypes.STRING,
-    interface: DataTypes.STRING,
-    membername: DataTypes.STRING,
-    agentcalledAt: DataTypes.DATE,
-    agentconnectAt: DataTypes.DATE,
-    holdtime: DataTypes.INTEGER,
-    agentcomplete: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    agentcompleteAt: DataTypes.DATE,
-    talktime: DataTypes.INTEGER,
-    agentacw: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    acwtime: DataTypes.INTEGER,
-    reason: DataTypes.STRING,
-    agentringnoanswer: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    agentringnoanswerAt: DataTypes.DATE,
-    agentdump: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false,
-    },
-    agentdumpAt: DataTypes.DATE,
-    lastevent: DataTypes.STRING,
-    channel: DataTypes.STRING,
-    channelstate: DataTypes.INTEGER,
-    channelstatedesc: DataTypes.STRING,
-    connectedlinenum: DataTypes.STRING,
-    connectedlinename: DataTypes.STRING,
-    language: DataTypes.STRING,
-    accountcode: DataTypes.STRING,
-    context: DataTypes.STRING,
-    exten: DataTypes.STRING,
-    priority: DataTypes.STRING,
-    destchannel: DataTypes.STRING,
-    destchannelstate: DataTypes.INTEGER,
-    destchannelstatedesc: DataTypes.STRING,
-    destcalleridnum: DataTypes.STRING,
-    destcalleridname: DataTypes.STRING,
-    destconnectedlinenum: DataTypes.STRING,
-    destconnectedlinename: DataTypes.STRING,
-    destlanguage: DataTypes.STRING,
-    destaccountcode: DataTypes.STRING,
-    destcontext: DataTypes.STRING,
-    destexten: DataTypes.STRING,
-    destpriority: DataTypes.STRING,
-    destuniqueid: DataTypes.STRING,
-    messageId: DataTypes.STRING,
-    inReplyTo: DataTypes.STRING,
-    subject: DataTypes.STRING,
-    from: DataTypes.STRING,
-    to: DataTypes.STRING,
-    cc: DataTypes.STRING,
-    attachment: DataTypes.TEXT,
-    html: DataTypes.TEXT,
-    text: DataTypes.TEXT,
-    status: {
-      type: DataTypes.ENUM('SENT', 'SENDING', 'RECEIVED', 'FAILED')
-    }
-  }, {
-    tableName: 'report_integration'
-  });
-
-  return ReportIntegration;
-};
+var _0x58da=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];module[_0x58da[0]]=function(_0x20a5x1,_0x20a5x2){var _0x20a5x3=_0x20a5x1[_0x58da[12]](_0x58da[1],{integration:_0x20a5x2[_0x58da[2]],eventChannel:_0x20a5x2[_0x58da[2]],exitStatus:_0x20a5x2[_0x58da[2]],ticketId:_0x20a5x2[_0x58da[2]],integrationId:_0x20a5x2[_0x58da[3]],contacts:_0x20a5x2[_0x58da[2]],uniqueid:_0x20a5x2[_0x58da[2]],calleridnum:_0x20a5x2[_0x58da[2]],calleridname:_0x20a5x2[_0x58da[2]],queue:_0x20a5x2[_0x58da[2]],interface:_0x20a5x2[_0x58da[2]],membername:_0x20a5x2[_0x58da[2]],agentcalledAt:_0x20a5x2[_0x58da[4]],agentconnectAt:_0x20a5x2[_0x58da[4]],holdtime:_0x20a5x2[_0x58da[3]],agentcomplete:{type:_0x20a5x2[_0x58da[5]],defaultValue:false},agentcompleteAt:_0x20a5x2[_0x58da[4]],talktime:_0x20a5x2[_0x58da[3]],agentacw:{type:_0x20a5x2[_0x58da[5]],defaultValue:false},acwtime:_0x20a5x2[_0x58da[3]],reason:_0x20a5x2[_0x58da[2]],agentringnoanswer:{type:_0x20a5x2[_0x58da[5]],defaultValue:false},agentringnoanswerAt:_0x20a5x2[_0x58da[4]],agentdump:{type:_0x20a5x2[_0x58da[5]],defaultValue:false},agentdumpAt:_0x20a5x2[_0x58da[4]],lastevent:_0x20a5x2[_0x58da[2]],channel:_0x20a5x2[_0x58da[2]],channelstate:_0x20a5x2[_0x58da[3]],channelstatedesc:_0x20a5x2[_0x58da[2]],connectedlinenum:_0x20a5x2[_0x58da[2]],connectedlinename:_0x20a5x2[_0x58da[2]],language:_0x20a5x2[_0x58da[2]],accountcode:_0x20a5x2[_0x58da[2]],context:_0x20a5x2[_0x58da[2]],exten:_0x20a5x2[_0x58da[2]],priority:_0x20a5x2[_0x58da[2]],destchannel:_0x20a5x2[_0x58da[2]],destchannelstate:_0x20a5x2[_0x58da[3]],destchannelstatedesc:_0x20a5x2[_0x58da[2]],destcalleridnum:_0x20a5x2[_0x58da[2]],destcalleridname:_0x20a5x2[_0x58da[2]],destconnectedlinenum:_0x20a5x2[_0x58da[2]],destconnectedlinename:_0x20a5x2[_0x58da[2]],destlanguage:_0x20a5x2[_0x58da[2]],destaccountcode:_0x20a5x2[_0x58da[2]],destcontext:_0x20a5x2[_0x58da[2]],destexten:_0x20a5x2[_0x58da[2]],destpriority:_0x20a5x2[_0x58da[2]],destuniqueid:_0x20a5x2[_0x58da[2]],messageId:_0x20a5x2[_0x58da[2]],inReplyTo:_0x20a5x2[_0x58da[2]],subject:_0x20a5x2[_0x58da[2]],from:_0x20a5x2[_0x58da[2]],to:_0x20a5x2[_0x58da[2]],cc:_0x20a5x2[_0x58da[2]],attachment:_0x20a5x2[_0x58da[6]],html:_0x20a5x2[_0x58da[6]],text:_0x20a5x2[_0x58da[6]],status:{type:_0x20a5x2.ENUM(_0x58da[7],_0x58da[8],_0x58da[9],_0x58da[10])}},{tableName:_0x58da[11]});return _0x20a5x3}
\ No newline at end of file
index 5a3d4f5..80454b1 100644 (file)
@@ -1,12 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('ReportJscriptyInput', {
-    input_id: DataTypes.INTEGER,
-    input_type: DataTypes.STRING,
-    input_label: DataTypes.STRING,
-    input_value: DataTypes.STRING
-  }, {
-    tableName: 'report_jscripty_inputs'
-  });
-};
+var _0x5dcb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x69\x6E\x70\x75\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x5dcb[0];module[_0x5dcb[1]]=function(_0xb73ex1,_0xb73ex2){return _0xb73ex1[_0x5dcb[6]](_0x5dcb[2],{input_id:_0xb73ex2[_0x5dcb[3]],input_type:_0xb73ex2[_0x5dcb[4]],input_label:_0xb73ex2[_0x5dcb[4]],input_value:_0xb73ex2[_0x5dcb[4]]},{tableName:_0x5dcb[5]})}
\ No newline at end of file
index f6080f4..06281e9 100644 (file)
@@ -1,34 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('ReportJscriptyQuestion', {
-    question_id: DataTypes.INTEGER,
-    question_type: DataTypes.STRING,
-    question_label: DataTypes.STRING,
-    question_text: DataTypes.STRING,
-    question_answer: DataTypes.STRING,
-    question_other_label: DataTypes.STRING,
-    question_other_answer: DataTypes.STRING
-
-  }, {
-    tableName: 'report_jscripty_questions',
-    associate: function(models) {
-      models.ReportJscriptyQuestion.hasMany(models.ReportJscriptyInput, {
-        onDelete: 'cascade',
-        foreignKey: 'questionId'
-
-      });
-      models.ReportJscriptyQuestion.addScope('questionSummary', function(projectId) {
-        return {
-          where: {
-            projectId: projectId
-
-          },
-          attributes: ['question_id', 'question_type', 'question_label', 'question_text', [sequelize.fn('count', sequelize.col('question_id')), 'count']],
-          group: ['question_id', 'question_type', 'question_label', 'question_text']
-        }
-
-      });
-    }
-  });
-};
+var _0x3c27=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73","\x63\x61\x73\x63\x61\x64\x65","\x71\x75\x65\x73\x74\x69\x6F\x6E\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x71\x75\x65\x73\x74\x69\x6F\x6E\x53\x75\x6D\x6D\x61\x72\x79","\x71\x75\x65\x73\x74\x69\x6F\x6E\x5F\x69\x64","\x71\x75\x65\x73\x74\x69\x6F\x6E\x5F\x74\x79\x70\x65","\x71\x75\x65\x73\x74\x69\x6F\x6E\x5F\x6C\x61\x62\x65\x6C","\x71\x75\x65\x73\x74\x69\x6F\x6E\x5F\x74\x65\x78\x74","\x63\x6F\x75\x6E\x74","\x63\x6F\x6C","\x66\x6E","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0x3c27[0];module[_0x3c27[1]]=function(_0x74f9x1,_0x74f9x2){return _0x74f9x1[_0x3c27[18]](_0x3c27[2],{question_id:_0x74f9x2[_0x3c27[3]],question_type:_0x74f9x2[_0x3c27[4]],question_label:_0x74f9x2[_0x3c27[4]],question_text:_0x74f9x2[_0x3c27[4]],question_answer:_0x74f9x2[_0x3c27[4]],question_other_label:_0x74f9x2[_0x3c27[4]],question_other_answer:_0x74f9x2[_0x3c27[4]]},{tableName:_0x3c27[5],associate:function(_0x74f9x3){_0x74f9x3[_0x3c27[2]][_0x3c27[8]](_0x74f9x3.ReportJscriptyInput,{onDelete:_0x3c27[6],foreignKey:_0x3c27[7]});_0x74f9x3[_0x3c27[2]][_0x3c27[17]](_0x3c27[9],function(_0x74f9x4){return {where:{projectId:_0x74f9x4},attributes:[_0x3c27[10],_0x3c27[11],_0x3c27[12],_0x3c27[13],[_0x74f9x1[_0x3c27[16]](_0x3c27[14],_0x74f9x1[_0x3c27[15]](_0x3c27[10])),_0x3c27[14]]],group:[_0x3c27[10],_0x3c27[11],_0x3c27[12],_0x3c27[13]]}})}})}
\ No newline at end of file
index 12a8447..03aa166 100644 (file)
@@ -1,51 +1 @@
-'use strict';
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('ReportJscriptySession', {
-    session_id: {
-      type: DataTypes.INTEGER,
-      primaryKey: true,
-      autoIncrement: true
-    },
-    status: {
-      type: DataTypes.ENUM('started', 'completed', 'incomplete')
-    },
-    last_question_id: DataTypes.INTEGER,
-    completedAt: {
-      type: DataTypes.DATE,
-      get: function() {
-        // 'this' allows you to access attributes of the instance
-        return this.getDataValue('completedAt') ? moment(this.getDataValue('completedAt')).format("MM-DD-YYYY HH:mm") : '';
-      }
-    },
-    createdAt: {
-      type: DataTypes.DATE,
-      get: function() {
-        // 'this' allows you to access attributes of the instance
-        return moment(this.getDataValue('createdAt')).format("MM-DD-YYYY HH:mm");
-      }
-    }
-  }, {
-    tableName: 'report_jscripty_sessions',
-    associate: function(models) {
-      models.ReportJscriptySession.hasMany(models.ReportJscriptyQuestion, {
-        onDelete: 'cascade',
-        foreignKey: 'sessionId'
-      });
-      models.ReportJscriptySession.addScope('questionsAndInput', function(projectId) {
-        return {
-          where: {
-            ProjectId: projectId
-          },
-          include: [{
-            model: models.ReportJscriptyQuestion,
-            include: [{
-              model: models.ReportJscriptyInput
-            }]
-          }]
-        }
-      });
-    }
-  });
-};
+var _0xaa0b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E","\x49\x4E\x54\x45\x47\x45\x52","\x73\x74\x61\x72\x74\x65\x64","\x63\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x69\x6E\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x44\x41\x54\x45","\x63\x6F\x6D\x70\x6C\x65\x74\x65\x64\x41\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x4D\x4D\x2D\x44\x44\x2D\x59\x59\x59\x59\x20\x48\x48\x3A\x6D\x6D","\x66\x6F\x72\x6D\x61\x74","","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x63\x61\x73\x63\x61\x64\x65","\x73\x65\x73\x73\x69\x6F\x6E\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x71\x75\x65\x73\x74\x69\x6F\x6E\x73\x41\x6E\x64\x49\x6E\x70\x75\x74","\x52\x65\x70\x6F\x72\x74\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E","\x52\x65\x70\x6F\x72\x74\x4A\x73\x63\x72\x69\x70\x74\x79\x49\x6E\x70\x75\x74","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0xaa0b[0];var moment=require(_0xaa0b[1]);module[_0xaa0b[2]]=function(_0xbd85x2,_0xbd85x3){return _0xbd85x2[_0xaa0b[23]](_0xaa0b[3],{session_id:{type:_0xbd85x3[_0xaa0b[4]],primaryKey:true,autoIncrement:true},status:{type:_0xbd85x3.ENUM(_0xaa0b[5],_0xaa0b[6],_0xaa0b[7])},last_question_id:_0xbd85x3[_0xaa0b[4]],completedAt:{type:_0xbd85x3[_0xaa0b[8]],get:function(){return this[_0xaa0b[10]](_0xaa0b[9])?moment(this[_0xaa0b[10]](_0xaa0b[9]))[_0xaa0b[12]](_0xaa0b[11]):_0xaa0b[13]}},createdAt:{type:_0xbd85x3[_0xaa0b[8]],get:function(){return moment(this[_0xaa0b[10]](_0xaa0b[14]))[_0xaa0b[12]](_0xaa0b[11])}}},{tableName:_0xaa0b[15],associate:function(_0xbd85x4){_0xbd85x4[_0xaa0b[3]][_0xaa0b[18]](_0xbd85x4.ReportJscriptyQuestion,{onDelete:_0xaa0b[16],foreignKey:_0xaa0b[17]});_0xbd85x4[_0xaa0b[3]][_0xaa0b[22]](_0xaa0b[19],function(_0xbd85x5){return {where:{ProjectId:_0xbd85x5},include:[{model:_0xbd85x4[_0xaa0b[20]],include:[{model:_0xbd85x4[_0xaa0b[21]]}]}]}})}})}
\ No newline at end of file
index d4327ea..92a9d71 100644 (file)
@@ -1,43 +1 @@
-/**
- * Agent Log Model
- */
-
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportMail = sequelize.define('ReportMail', {
-    uniqueid: DataTypes.STRING,
-    timeslot: DataTypes.INTEGER,
-    subject: DataTypes.STRING,
-    accountid: DataTypes.STRING,
-    accountname: DataTypes.STRING,
-    accountaddress: DataTypes.STRING,
-    application: DataTypes.STRING,
-    memberid: DataTypes.INTEGER,
-    membername: DataTypes.STRING,
-    queue: DataTypes.INTEGER,
-    queuename: DataTypes.STRING,
-    roomid: DataTypes.INTEGER,
-    messageid: DataTypes.INTEGER,
-    reason: {
-      type: DataTypes.STRING,
-      defaultValue: 'called'
-    },
-    connectid: {
-      type: DataTypes.STRING,
-      unique: true,
-      set: function(agentconnectedAt) {
-        this.setDataValue('connectid', this.uniqueid);
-        this.setDataValue('reason', 'connect');
-        this.setDataValue('connectedAt', moment().format("YYYY-MM-DD HH:mm:ss"));
-      }
-    },
-    calledAt: DataTypes.DATE,
-    connectedAt: DataTypes.DATE
-  }, {
-    tableName: 'report_mail'
-  });
-
-  return ReportMail;
-};
+var _0xbfd9=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0xbfd9[0]);module[_0xbfd9[1]]=function(_0xb0ddx2,_0xb0ddx3){var _0xb0ddx4=_0xb0ddx2[_0xbfd9[16]](_0xbfd9[2],{uniqueid:_0xb0ddx3[_0xbfd9[3]],timeslot:_0xb0ddx3[_0xbfd9[4]],subject:_0xb0ddx3[_0xbfd9[3]],accountid:_0xb0ddx3[_0xbfd9[3]],accountname:_0xb0ddx3[_0xbfd9[3]],accountaddress:_0xb0ddx3[_0xbfd9[3]],application:_0xb0ddx3[_0xbfd9[3]],memberid:_0xb0ddx3[_0xbfd9[4]],membername:_0xb0ddx3[_0xbfd9[3]],queue:_0xb0ddx3[_0xbfd9[4]],queuename:_0xb0ddx3[_0xbfd9[3]],roomid:_0xb0ddx3[_0xbfd9[4]],messageid:_0xb0ddx3[_0xbfd9[4]],reason:{type:_0xb0ddx3[_0xbfd9[3]],defaultValue:_0xbfd9[5]},connectid:{type:_0xb0ddx3[_0xbfd9[3]],unique:true,set:function(_0xb0ddx5){this[_0xbfd9[8]](_0xbfd9[6],this[_0xbfd9[7]]);this[_0xbfd9[8]](_0xbfd9[9],_0xbfd9[10]);this[_0xbfd9[8]](_0xbfd9[11],moment()[_0xbfd9[13]](_0xbfd9[12]))}},calledAt:_0xb0ddx3[_0xbfd9[14]],connectedAt:_0xb0ddx3[_0xbfd9[14]]},{tableName:_0xbfd9[15]});return _0xb0ddx4}
\ No newline at end of file
index 903631e..185121e 100644 (file)
@@ -1,37 +1 @@
-/**
- * Agent Log Model
- */
-
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-  var ReportMailSession = sequelize.define('ReportMailSession', {
-    uniqueid: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    subject: DataTypes.STRING,
-    accountid: DataTypes.STRING,
-    accountname: DataTypes.STRING,
-    accountaddress: DataTypes.STRING,
-    application: DataTypes.STRING,
-    memberid: DataTypes.STRING,
-    membername: DataTypes.STRING,
-    queue: DataTypes.INTEGER,
-    queuename: DataTypes.STRING,
-    roomid: DataTypes.INTEGER,
-    fidelity: {
-      type: DataTypes.INTEGER,
-      defaultValue: 0
-    },
-    holdtime: DataTypes.INTEGER,
-    queuecallerjoinAt: DataTypes.DATE,
-    queuecallerleaveAt: DataTypes.DATE,
-    queuecallerunmanagedAt: DataTypes.DATE,
-    queuecallerabandonedAt: DataTypes.DATE
-  }, {
-    tableName: 'report_mail_session'
-  });
-
-  return ReportMailSession;
-};
+var _0xb8e9=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0xb8e9[0]);module[_0xb8e9[1]]=function(_0xf97ax2,_0xf97ax3){var _0xf97ax4=_0xf97ax2[_0xb8e9[7]](_0xb8e9[2],{uniqueid:{type:_0xf97ax3[_0xb8e9[3]],unique:true},subject:_0xf97ax3[_0xb8e9[3]],accountid:_0xf97ax3[_0xb8e9[3]],accountname:_0xf97ax3[_0xb8e9[3]],accountaddress:_0xf97ax3[_0xb8e9[3]],application:_0xf97ax3[_0xb8e9[3]],memberid:_0xf97ax3[_0xb8e9[3]],membername:_0xf97ax3[_0xb8e9[3]],queue:_0xf97ax3[_0xb8e9[4]],queuename:_0xf97ax3[_0xb8e9[3]],roomid:_0xf97ax3[_0xb8e9[4]],fidelity:{type:_0xf97ax3[_0xb8e9[4]],defaultValue:0},holdtime:_0xf97ax3[_0xb8e9[4]],queuecallerjoinAt:_0xf97ax3[_0xb8e9[5]],queuecallerleaveAt:_0xf97ax3[_0xb8e9[5]],queuecallerunmanagedAt:_0xf97ax3[_0xb8e9[5]],queuecallerabandonedAt:_0xf97ax3[_0xb8e9[5]]},{tableName:_0xb8e9[6]});return _0xf97ax4}
\ No newline at end of file
index e4aac4e..c78207a 100644 (file)
@@ -1,33 +1 @@
-/**
- * DIAL Model
- */
-
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportMember = sequelize.define('ReportMember', {
-    channel: DataTypes.STRING,
-    membername: DataTypes.STRING,
-    interface: DataTypes.STRING,
-    type: {
-      type: DataTypes.STRING,
-      defaultValue: 'DEFAULT PAUSE'
-    },
-    duration: DataTypes.INTEGER,
-    enterAt: DataTypes.DATE,
-    exitAt: DataTypes.DATE,
-    data1: DataTypes.STRING,
-    data2: DataTypes.STRING,
-    data3: DataTypes.STRING,
-    data4: DataTypes.STRING,
-    data5: DataTypes.STRING
-  }, {
-    tableName: 'report_member',
-    // indexes: [{
-    //   fields: ['membername', 'enterdate', 'exitdate']
-    // }]
-  });
-
-  return ReportMember;
-};
+var _0xefba=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x4D\x65\x6D\x62\x65\x72","\x53\x54\x52\x49\x4E\x47","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0xefba[0]);module[_0xefba[1]]=function(_0x11bdx2,_0x11bdx3){var _0x11bdx4=_0x11bdx2[_0xefba[8]](_0xefba[2],{channel:_0x11bdx3[_0xefba[3]],membername:_0x11bdx3[_0xefba[3]],interface:_0x11bdx3[_0xefba[3]],type:{type:_0x11bdx3[_0xefba[3]],defaultValue:_0xefba[4]},duration:_0x11bdx3[_0xefba[5]],enterAt:_0x11bdx3[_0xefba[6]],exitAt:_0x11bdx3[_0xefba[6]],data1:_0x11bdx3[_0xefba[3]],data2:_0x11bdx3[_0xefba[3]],data3:_0x11bdx3[_0xefba[3]],data4:_0x11bdx3[_0xefba[3]],data5:_0x11bdx3[_0xefba[3]]},{tableName:_0xefba[7]});return _0x11bdx4}
\ No newline at end of file
index b06b742..514e185 100644 (file)
@@ -1,63 +1 @@
-/**
- * QueueLog Model
- */
-
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportQueue = sequelize.define('ReportQueue', {
-    uniqueid: DataTypes.STRING,
-    calleridnum: DataTypes.STRING,
-    calleridname: DataTypes.STRING,
-    queue: DataTypes.STRING,
-    queuecallerjoinAt: DataTypes.DATE,
-    queuecallerleaveAt: {
-      type: DataTypes.DATE,
-      set: function(queuecallerleaveAt) {
-        var a = moment(queuecallerleaveAt);
-        var b = moment(this.getDataValue('queuecallerjoinAt')).format("YYYY-MM-DD HH:mm:ss");
-
-        this.setDataValue('queuecallerleaveAt', queuecallerleaveAt);
-        this.setDataValue('holdtime', a.diff(b, 'seconds'));
-      }
-    },
-    position: DataTypes.INTEGER,
-    count: DataTypes.INTEGER,
-    queuecallerabandon: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    queuecallerabandonAt: DataTypes.DATE,
-    queuecallercomplete: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    queuecallercompleteAt: DataTypes.DATE,
-    queuecallerexit: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    queuecallerexitAt: DataTypes.DATE,
-    queuecallerexitreason: DataTypes.STRING,
-    originalposition: DataTypes.INTEGER,
-    channel: DataTypes.STRING,
-    channelstate: DataTypes.INTEGER,
-    channelstatedesc: DataTypes.STRING,
-    connectedlinenum: DataTypes.STRING,
-    connectedlinename: DataTypes.STRING,
-    language: DataTypes.STRING,
-    accountcode: DataTypes.STRING,
-    context: DataTypes.STRING,
-    exten: DataTypes.STRING,
-    priority: DataTypes.STRING,
-    holdtime: DataTypes.INTEGER
-  }, {
-    tableName: 'report_queue',
-    indexes: [{
-      fields: ['uniqueid']
-    }]
-  });
-
-  return ReportQueue;
-};
+var _0x9cb5=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0x9cb5[0]);module[_0x9cb5[1]]=function(_0xdddax2,_0xdddax3){var _0xdddax4=_0xdddax2[_0x9cb5[18]](_0x9cb5[2],{uniqueid:_0xdddax3[_0x9cb5[3]],calleridnum:_0xdddax3[_0x9cb5[3]],calleridname:_0xdddax3[_0x9cb5[3]],queue:_0xdddax3[_0x9cb5[3]],queuecallerjoinAt:_0xdddax3[_0x9cb5[4]],queuecallerleaveAt:{type:_0xdddax3[_0x9cb5[4]],set:function(_0xdddax5){var _0xdddax6=moment(_0xdddax5);var _0xdddax7=moment(this[_0x9cb5[8]](_0x9cb5[7]))[_0x9cb5[6]](_0x9cb5[5]);this[_0x9cb5[10]](_0x9cb5[9],_0xdddax5);this[_0x9cb5[10]](_0x9cb5[11],_0xdddax6[_0x9cb5[13]](_0xdddax7,_0x9cb5[12]))}},position:_0xdddax3[_0x9cb5[14]],count:_0xdddax3[_0x9cb5[14]],queuecallerabandon:{type:_0xdddax3[_0x9cb5[15]],defaultValue:false},queuecallerabandonAt:_0xdddax3[_0x9cb5[4]],queuecallercomplete:{type:_0xdddax3[_0x9cb5[15]],defaultValue:false},queuecallercompleteAt:_0xdddax3[_0x9cb5[4]],queuecallerexit:{type:_0xdddax3[_0x9cb5[15]],defaultValue:false},queuecallerexitAt:_0xdddax3[_0x9cb5[4]],queuecallerexitreason:_0xdddax3[_0x9cb5[3]],originalposition:_0xdddax3[_0x9cb5[14]],channel:_0xdddax3[_0x9cb5[3]],channelstate:_0xdddax3[_0x9cb5[14]],channelstatedesc:_0xdddax3[_0x9cb5[3]],connectedlinenum:_0xdddax3[_0x9cb5[3]],connectedlinename:_0xdddax3[_0x9cb5[3]],language:_0xdddax3[_0x9cb5[3]],accountcode:_0xdddax3[_0x9cb5[3]],context:_0xdddax3[_0x9cb5[3]],exten:_0xdddax3[_0x9cb5[3]],priority:_0xdddax3[_0x9cb5[3]],holdtime:_0xdddax3[_0x9cb5[14]]},{tableName:_0x9cb5[16],indexes:[{fields:[_0x9cb5[17]]}]});return _0xdddax4}
\ No newline at end of file
index 62a8e0c..ac05295 100644 (file)
@@ -1,89 +1 @@
-/**
- * Context Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportSquare = sequelize.define('ReportSquare', {
-    network: {
-      type: DataTypes.STRING,
-    },
-    network_script: {
-      type: DataTypes.STRING,
-    },
-    request: {
-      type: DataTypes.STRING,
-    },
-    channel: {
-      type: DataTypes.STRING,
-    },
-    language: {
-      type: DataTypes.STRING,
-    },
-    type: {
-      type: DataTypes.STRING,
-    },
-    uniqueid: {
-      type: DataTypes.STRING,
-    },
-    version: {
-      type: DataTypes.STRING,
-    },
-    callerid: {
-      type: DataTypes.STRING,
-    },
-    calleridname: {
-      type: DataTypes.STRING,
-    },
-    callingpres: {
-      type: DataTypes.STRING,
-    },
-    callingani2: {
-      type: DataTypes.STRING,
-    },
-    callington: {
-      type: DataTypes.STRING,
-    },
-    callingtns: {
-      type: DataTypes.STRING,
-    },
-    dnid: {
-      type: DataTypes.STRING,
-    },
-    rdnis: {
-      type: DataTypes.STRING,
-    },
-    context: {
-      type: DataTypes.STRING,
-    },
-    extension: {
-      type: DataTypes.STRING,
-    },
-    priority: {
-      type: DataTypes.STRING,
-    },
-    enhanced: {
-      type: DataTypes.STRING,
-    },
-    accountcode: {
-      type: DataTypes.STRING,
-    },
-    threadid: {
-      type: DataTypes.STRING,
-    },
-    project_name: {
-      type: DataTypes.STRING,
-    },
-    joinAt: {
-      type: DataTypes.DATE,
-    },
-    leaveAt: {
-      type: DataTypes.DATE,
-      unique: true
-    }
-  }, {
-    tableName: 'report_square'
-  });
-
-  return ReportSquare;
-};
+var _0x2cab=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65","\x64\x65\x66\x69\x6E\x65"];module[_0x2cab[0]]=function(_0xf44bx1,_0xf44bx2){var _0xf44bx3=_0xf44bx1[_0x2cab[5]](_0x2cab[1],{network:{type:_0xf44bx2[_0x2cab[2]]},network_script:{type:_0xf44bx2[_0x2cab[2]]},request:{type:_0xf44bx2[_0x2cab[2]]},channel:{type:_0xf44bx2[_0x2cab[2]]},language:{type:_0xf44bx2[_0x2cab[2]]},type:{type:_0xf44bx2[_0x2cab[2]]},uniqueid:{type:_0xf44bx2[_0x2cab[2]]},version:{type:_0xf44bx2[_0x2cab[2]]},callerid:{type:_0xf44bx2[_0x2cab[2]]},calleridname:{type:_0xf44bx2[_0x2cab[2]]},callingpres:{type:_0xf44bx2[_0x2cab[2]]},callingani2:{type:_0xf44bx2[_0x2cab[2]]},callington:{type:_0xf44bx2[_0x2cab[2]]},callingtns:{type:_0xf44bx2[_0x2cab[2]]},dnid:{type:_0xf44bx2[_0x2cab[2]]},rdnis:{type:_0xf44bx2[_0x2cab[2]]},context:{type:_0xf44bx2[_0x2cab[2]]},extension:{type:_0xf44bx2[_0x2cab[2]]},priority:{type:_0xf44bx2[_0x2cab[2]]},enhanced:{type:_0xf44bx2[_0x2cab[2]]},accountcode:{type:_0xf44bx2[_0x2cab[2]]},threadid:{type:_0xf44bx2[_0x2cab[2]]},project_name:{type:_0xf44bx2[_0x2cab[2]]},joinAt:{type:_0xf44bx2[_0x2cab[3]]},leaveAt:{type:_0xf44bx2[_0x2cab[3]],unique:true}},{tableName:_0x2cab[4]});return _0xf44bx3}
\ No newline at end of file
index b9a2f4c..3a26b6e 100644 (file)
@@ -1,25 +1 @@
-/**
- * Context Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportSquareDetail = sequelize.define('ReportSquareDetail', {
-    uniqueid: {
-      type: DataTypes.STRING,
-    },
-    node: {
-      type: DataTypes.STRING,
-    },
-    application: {
-      type: DataTypes.STRING,
-    },
-    data: {
-      type: DataTypes.STRING,
-    }
-  }, {
-    tableName: 'report_square_details'
-  });
-
-  return ReportSquareDetail;
-};
+var _0xb907=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C","\x53\x54\x52\x49\x4E\x47","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65\x5F\x64\x65\x74\x61\x69\x6C\x73","\x64\x65\x66\x69\x6E\x65"];module[_0xb907[0]]=function(_0x2c20x1,_0x2c20x2){var _0x2c20x3=_0x2c20x1[_0xb907[4]](_0xb907[1],{uniqueid:{type:_0x2c20x2[_0xb907[2]]},node:{type:_0x2c20x2[_0xb907[2]]},application:{type:_0x2c20x2[_0xb907[2]]},data:{type:_0x2c20x2[_0xb907[2]]}},{tableName:_0xb907[3]});return _0x2c20x3}
\ No newline at end of file
index f507511..01378f3 100644 (file)
@@ -1,25 +1 @@
-/**
- * Agent Log Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportTransfer = sequelize.define('ReportTransfer', {
-    type: DataTypes.ENUM('blind', 'attended'),
-    transferercalleridnum: DataTypes.STRING,
-    transferercalleridname: DataTypes.STRING,
-    transfererconnectedlinenum: DataTypes.STRING,
-    transfererconnectedlinename: DataTypes.STRING,
-    transferercontext: DataTypes.STRING,
-    transfererexten: DataTypes.STRING,
-    transfereecontext: DataTypes.STRING,
-    transfereeexten: DataTypes.STRING,
-    transfereruniqueid: DataTypes.STRING,
-    transfererlinkedid: DataTypes.STRING,
-    extension: DataTypes.STRING,
-  }, {
-    tableName: 'report_transfer'
-  });
-
-  return ReportTransfer;
-};
+var _0x1048=["\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x54\x72\x61\x6E\x73\x66\x65\x72","\x62\x6C\x69\x6E\x64","\x61\x74\x74\x65\x6E\x64\x65\x64","\x53\x54\x52\x49\x4E\x47","\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x61\x6E\x73\x66\x65\x72","\x64\x65\x66\x69\x6E\x65"];module[_0x1048[0]]=function(_0xa1e6x1,_0xa1e6x2){var _0xa1e6x3=_0xa1e6x1[_0x1048[6]](_0x1048[1],{type:_0xa1e6x2.ENUM(_0x1048[2],_0x1048[3]),transferercalleridnum:_0xa1e6x2[_0x1048[4]],transferercalleridname:_0xa1e6x2[_0x1048[4]],transfererconnectedlinenum:_0xa1e6x2[_0x1048[4]],transfererconnectedlinename:_0xa1e6x2[_0x1048[4]],transferercontext:_0xa1e6x2[_0x1048[4]],transfererexten:_0xa1e6x2[_0x1048[4]],transfereecontext:_0xa1e6x2[_0x1048[4]],transfereeexten:_0xa1e6x2[_0x1048[4]],transfereruniqueid:_0xa1e6x2[_0x1048[4]],transfererlinkedid:_0xa1e6x2[_0x1048[4]],extension:_0xa1e6x2[_0x1048[4]]},{tableName:_0x1048[5]});return _0xa1e6x3}
\ No newline at end of file
index 2c14bfe..a74093c 100644 (file)
@@ -1,12 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ReportTree = sequelize.define('ReportTree', {
-    tree: DataTypes.TEXT
-  }, {
-    tableName: 'report_trees'
-  });
-
-  return ReportTree;
-};
+var _0x693a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x52\x65\x70\x6F\x72\x74\x54\x72\x65\x65","\x54\x45\x58\x54","\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x693a[0];module[_0x693a[1]]=function(_0xd3f5x1,_0xd3f5x2){var _0xd3f5x3=_0xd3f5x1[_0x693a[5]](_0x693a[2],{tree:_0xd3f5x2[_0x693a[3]]},{tableName:_0x693a[4]});return _0xd3f5x3}
\ No newline at end of file
index 0ea5fa6..e901bca 100644 (file)
@@ -1,33 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('SalesforceAccount', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING,
-    username: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    remoteUri: DataTypes.STRING,
-    password: DataTypes.STRING,
-    clientId: DataTypes.STRING,
-    clientSecret: DataTypes.STRING,
-    securityToken: DataTypes.STRING
-  }, {
-    tableName: 'salesforce_accounts',
-    associate: function(models) {
-      models.SalesforceAccount.hasMany(models.SalesforceConfiguration, {
-        as: 'Configurations',
-        foreignKey: 'AccountId'
-      });
-      models.SalesforceAccount.addScope('configurations', {
-        include: [{
-          model: models.SalesforceConfiguration,
-          as: 'Configurations',
-          required: false,
-          attributes: ['id', 'name']
-        }]
-      });
-    }
-  });
-};
+var _0x24c7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x64","\x6E\x61\x6D\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0x24c7[0];module[_0x24c7[1]]=function(_0x2335x1,_0x2335x2){return _0x2335x1[_0x24c7[13]](_0x24c7[2],{name:_0x2335x2[_0x24c7[3]],description:_0x2335x2[_0x24c7[3]],username:{type:_0x2335x2[_0x24c7[3]],unique:true},remoteUri:_0x2335x2[_0x24c7[3]],password:_0x2335x2[_0x24c7[3]],clientId:_0x2335x2[_0x24c7[3]],clientSecret:_0x2335x2[_0x24c7[3]],securityToken:_0x2335x2[_0x24c7[3]]},{tableName:_0x24c7[4],associate:function(_0x2335x3){_0x2335x3[_0x24c7[2]][_0x24c7[7]](_0x2335x3.SalesforceConfiguration,{as:_0x24c7[5],foreignKey:_0x24c7[6]});_0x2335x3[_0x24c7[2]][_0x24c7[12]](_0x24c7[8],{include:[{model:_0x2335x3[_0x24c7[9]],as:_0x24c7[5],required:false,attributes:[_0x24c7[10],_0x24c7[11]]}]})}})}
\ No newline at end of file
index 6850116..ceaa4f0 100644 (file)
@@ -1,27 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('SalesforceConfiguration', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING
-  }, {
-    tableName: 'salesforce_configurations',
-    associate: function(models) {
-      models.SalesforceConfiguration.belongsTo(models.SalesforceAccount, {
-        foreignKey: 'AccountId'
-      });
-      models.SalesforceConfiguration.hasMany(models.SalesforceField, {
-        as: 'Subject',
-        foreignKey: 'SubjectId'
-      });
-      models.SalesforceConfiguration.hasMany(models.SalesforceField, {
-        as: 'Description',
-        foreignKey: 'DescriptionId'
-      });
-      models.SalesforceConfiguration.hasMany(models.SalesforceField, {
-        as: 'Field',
-        foreignKey: 'FieldId'
-      });
-    }
-  });
-};
+var _0x539e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0x539e[0];module[_0x539e[1]]=function(_0x4f1bx1,_0x4f1bx2){return _0x4f1bx1[_0x539e[14]](_0x539e[2],{name:_0x4f1bx2[_0x539e[3]],description:_0x4f1bx2[_0x539e[3]]},{tableName:_0x539e[4],associate:function(_0x4f1bx3){_0x4f1bx3[_0x539e[2]][_0x539e[6]](_0x4f1bx3.SalesforceAccount,{foreignKey:_0x539e[5]});_0x4f1bx3[_0x539e[2]][_0x539e[9]](_0x4f1bx3.SalesforceField,{as:_0x539e[7],foreignKey:_0x539e[8]});_0x4f1bx3[_0x539e[2]][_0x539e[9]](_0x4f1bx3.SalesforceField,{as:_0x539e[10],foreignKey:_0x539e[11]});_0x4f1bx3[_0x539e[2]][_0x539e[9]](_0x4f1bx3.SalesforceField,{as:_0x539e[12],foreignKey:_0x539e[13]})}})}
\ No newline at end of file
index f3a3501..801aa5d 100644 (file)
@@ -1,22 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('SalesforceField', {
-    type: {
-      type: DataTypes.ENUM('string', 'variable', 'key_value'),
-      defaultValue: 'string'
-    },
-    content: DataTypes.STRING,
-    key: DataTypes.STRING,
-    keyType: {
-      type: DataTypes.ENUM('string', 'variable')
-    },
-    keyContent: DataTypes.STRING,
-    idField: DataTypes.STRING
-  }, {
-    tableName: 'salesforce_fields',
-    associate: function(models) {
-      models.SalesforceField.belongsTo(models.Variable);
-    }
-  });
-};
+var _0x54eb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x54eb[0];module[_0x54eb[1]]=function(_0xe760x1,_0xe760x2){return _0xe760x1[_0x54eb[9]](_0x54eb[2],{type:{type:_0xe760x2.ENUM(_0x54eb[3],_0x54eb[4],_0x54eb[5]),defaultValue:_0x54eb[3]},content:_0xe760x2[_0x54eb[6]],key:_0xe760x2[_0x54eb[6]],keyType:{type:_0xe760x2.ENUM(_0x54eb[3],_0x54eb[4])},keyContent:_0xe760x2[_0x54eb[6]],idField:_0xe760x2[_0x54eb[6]]},{tableName:_0x54eb[7],associate:function(_0xe760x3){_0xe760x3[_0x54eb[2]][_0x54eb[8]](_0xe760x3.Variable)}})}
\ No newline at end of file
index a8efea2..6fb39f0 100644 (file)
@@ -1,42 +1 @@
-/* jshint indent: 2 */
-
-module.exports = function(sequelize, DataTypes) {
-  var Service = sequelize.define('Service', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    description: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    defaultEntry: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    }
-  }, {
-    tableName: 'services',
-    associate: function(models) {
-      Service.belongsToMany(models.User, {
-        through: models.UserHasService,
-        foreignKey: 'service'
-      });
-      Service.hasMany(models.CustomField, {
-        as: 'CustomFields',
-        required: false
-      });
-      Service.hasMany(models.Contact, {
-        as: 'Contacts',
-        onDelete: 'cascade'
-      });
-      Service.addScope('customFields', {
-        include: [{
-          model: models.CustomField,
-          as: 'CustomFields'
-        }]
-      });
-    }
-  });
-
-  return Service;
-};
+var _0x6862=["\x65\x78\x70\x6F\x72\x74\x73","\x53\x65\x72\x76\x69\x63\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x73\x65\x72\x76\x69\x63\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x53\x65\x72\x76\x69\x63\x65","\x73\x65\x72\x76\x69\x63\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x61\x73\x63\x61\x64\x65","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];module[_0x6862[0]]=function(_0x98d0x1,_0x98d0x2){var _0x98d0x3=_0x98d0x1[_0x6862[15]](_0x6862[1],{name:{type:_0x98d0x2[_0x6862[2]],unique:true},description:{type:_0x98d0x2[_0x6862[2]],allowNull:true},defaultEntry:{type:_0x98d0x2[_0x6862[3]],defaultValue:false}},{tableName:_0x6862[4],associate:function(_0x98d0x4){_0x98d0x3[_0x6862[7]](_0x98d0x4.User,{through:_0x98d0x4[_0x6862[5]],foreignKey:_0x6862[6]});_0x98d0x3[_0x6862[9]](_0x98d0x4.CustomField,{as:_0x6862[8],required:false});_0x98d0x3[_0x6862[9]](_0x98d0x4.Contact,{as:_0x6862[10],onDelete:_0x6862[11]});_0x98d0x3[_0x6862[14]](_0x6862[12],{include:[{model:_0x98d0x4[_0x6862[13]],as:_0x6862[8]}]})}});return _0x98d0x3}
\ No newline at end of file
index a7b7931..9c3f61c 100644 (file)
@@ -1,32 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Settings = sequelize.define('Settings', {
-    license: DataTypes.TEXT,
-    min_internal: {
-      type: DataTypes.INTEGER(11),
-      unique: true,
-      defaultValue: 1000
-    },
-    min_mailbox: {
-      type: DataTypes.INTEGER(11),
-      unique: true,
-      defaultValue: 1000
-    },
-    agi_port: {
-      type: DataTypes.INTEGER(11),
-      defaultValue: 4573
-    },
-    automation_timeout: {
-      type: DataTypes.INTEGER(11),
-      defaultValue: 3600
-    },
-    soundPath: DataTypes.STRING
-  }, {
-    tableName: 'settings'
-  });
-
-  return Settings;
-
-};
+var _0xb27b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x65\x74\x74\x69\x6E\x67\x73","\x54\x45\x58\x54","\x53\x54\x52\x49\x4E\x47","\x73\x65\x74\x74\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0xb27b[0];module[_0xb27b[1]]=function(_0x76ccx1,_0x76ccx2){var _0x76ccx3=_0x76ccx1[_0xb27b[6]](_0xb27b[2],{license:_0x76ccx2[_0xb27b[3]],min_internal:{type:_0x76ccx2.INTEGER(11),unique:true,defaultValue:1000},min_mailbox:{type:_0x76ccx2.INTEGER(11),unique:true,defaultValue:1000},agi_port:{type:_0x76ccx2.INTEGER(11),defaultValue:4573},automation_timeout:{type:_0x76ccx2.INTEGER(11),defaultValue:3600},soundPath:_0x76ccx2[_0xb27b[4]]},{tableName:_0xb27b[5]});return _0x76ccx3}
\ No newline at end of file
index 3b5ab98..9d0428b 100644 (file)
@@ -1,36 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-       var Sound = sequelize.define('Sound', {
-               name: DataTypes.STRING,
-               save_name: DataTypes.STRING,
-               display_name: {
-                       type: DataTypes.STRING,
-                       allowNull: false,
-                       defaultValue: '',
-                       validate: {
-                               notEmpty: {
-                                       msg: "The name cannot be empty!"
-                               } // don't allow empty strings
-                       }
-               },
-               description: DataTypes.STRING,
-               original_format: DataTypes.STRING,
-               original_duration: DataTypes.FLOAT,
-               original_sampleCount: DataTypes.BIGINT,
-               original_channelCount: DataTypes.INTEGER,
-               original_bitRate: DataTypes.BIGINT,
-               original_sampleRate: DataTypes.INTEGER,
-               converted_format: DataTypes.STRING,
-               converted_duration: DataTypes.FLOAT,
-               converted_sampleCount: DataTypes.BIGINT,
-               converted_channelCount: DataTypes.INTEGER,
-               converted_bitRate: DataTypes.BIGINT,
-               converted_sampleRate: DataTypes.INTEGER
-       }, {
-               tableName: 'sounds'
-       });
-
-       return Sound;
-};
+var _0x7a19=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6F\x75\x6E\x64","\x53\x54\x52\x49\x4E\x47","","\x54\x68\x65\x20\x6E\x61\x6D\x65\x20\x63\x61\x6E\x6E\x6F\x74\x20\x62\x65\x20\x65\x6D\x70\x74\x79\x21","\x46\x4C\x4F\x41\x54","\x42\x49\x47\x49\x4E\x54","\x49\x4E\x54\x45\x47\x45\x52","\x73\x6F\x75\x6E\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x7a19[0];module[_0x7a19[1]]=function(_0xd3f5x1,_0xd3f5x2){var _0xd3f5x3=_0xd3f5x1[_0x7a19[10]](_0x7a19[2],{name:_0xd3f5x2[_0x7a19[3]],save_name:_0xd3f5x2[_0x7a19[3]],display_name:{type:_0xd3f5x2[_0x7a19[3]],allowNull:false,defaultValue:_0x7a19[4],validate:{notEmpty:{msg:_0x7a19[5]}}},description:_0xd3f5x2[_0x7a19[3]],original_format:_0xd3f5x2[_0x7a19[3]],original_duration:_0xd3f5x2[_0x7a19[6]],original_sampleCount:_0xd3f5x2[_0x7a19[7]],original_channelCount:_0xd3f5x2[_0x7a19[8]],original_bitRate:_0xd3f5x2[_0x7a19[7]],original_sampleRate:_0xd3f5x2[_0x7a19[8]],converted_format:_0xd3f5x2[_0x7a19[3]],converted_duration:_0xd3f5x2[_0x7a19[6]],converted_sampleCount:_0xd3f5x2[_0x7a19[7]],converted_channelCount:_0xd3f5x2[_0x7a19[8]],converted_bitRate:_0xd3f5x2[_0x7a19[7]],converted_sampleRate:_0xd3f5x2[_0x7a19[8]]},{tableName:_0x7a19[9]});return _0xd3f5x3}
\ No newline at end of file
index a8a9bf8..9e6f765 100644 (file)
@@ -1,24 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var SquareOdbc = sequelize.define('SquareOdbc', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true,
-      allowNull: false,
-      validate: {
-        notEmpty: true
-      },
-    },
-    dsn: {
-      type: DataTypes.STRING,
-    },
-    description: DataTypes.STRING
-  }, {
-    tableName: 'square_odbc'
-  });
-
-  return SquareOdbc;
-
-};
+var _0xe7d9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x53\x54\x52\x49\x4E\x47","\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63","\x64\x65\x66\x69\x6E\x65"];_0xe7d9[0];module[_0xe7d9[1]]=function(_0x5eabx1,_0x5eabx2){var _0x5eabx3=_0x5eabx1[_0xe7d9[5]](_0xe7d9[2],{name:{type:_0x5eabx2[_0xe7d9[3]],unique:true,allowNull:false,validate:{notEmpty:true}},dsn:{type:_0x5eabx2[_0xe7d9[3]]},description:_0x5eabx2[_0xe7d9[3]]},{tableName:_0xe7d9[4]});return _0x5eabx3}
\ No newline at end of file
index e9f9ccd..3217491 100644 (file)
@@ -1,29 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var SquareProject = sequelize.define('SquareProject', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true,
-      allowNull: false,
-      validate: {
-        notEmpty: true
-      }
-    },
-    description: DataTypes.STRING,
-    preproduction: {
-      type: DataTypes.TEXT,
-      length: 'long'
-    },
-    production: {
-      type: DataTypes.TEXT,
-      length: 'long'
-    }
-  }, {
-    tableName: 'square_projects',
-  });
-
-  return SquareProject;
-
-};
+var _0x6326=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x6C\x6F\x6E\x67","\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x6326[0];module[_0x6326[1]]=function(_0x8746x1,_0x8746x2){var _0x8746x3=_0x8746x1[_0x6326[7]](_0x6326[2],{name:{type:_0x8746x2[_0x6326[3]],unique:true,allowNull:false,validate:{notEmpty:true}},description:_0x8746x2[_0x6326[3]],preproduction:{type:_0x8746x2[_0x6326[4]],length:_0x6326[5]},production:{type:_0x8746x2[_0x6326[4]],length:_0x6326[5]}},{tableName:_0x6326[6]});return _0x8746x3}
\ No newline at end of file
index 1130f64..2ab0c2d 100644 (file)
@@ -1,29 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('SugarcrmAccount', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING,
-    username: {
-      type: DataTypes.STRING
-    },
-    remoteUri: DataTypes.STRING,
-    password: DataTypes.STRING
-  }, {
-    tableName: 'sugarcrm_accounts',
-    associate: function(models) {
-      models.SugarcrmAccount.hasMany(models.SugarcrmConfiguration, {
-        as: 'Configurations',
-        foreignKey: 'AccountId'
-      });
-      models.SugarcrmAccount.addScope('configurations', {
-        include: [{
-          model: models.SugarcrmConfiguration,
-          as: 'Configurations',
-          required: false,
-          attributes: ['id', 'name']
-        }]
-      });
-    }
-  });
-};
+var _0x8acd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x64","\x6E\x61\x6D\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0x8acd[0];module[_0x8acd[1]]=function(_0x2883x1,_0x2883x2){return _0x2883x1[_0x8acd[13]](_0x8acd[2],{name:_0x2883x2[_0x8acd[3]],description:_0x2883x2[_0x8acd[3]],username:{type:_0x2883x2[_0x8acd[3]]},remoteUri:_0x2883x2[_0x8acd[3]],password:_0x2883x2[_0x8acd[3]]},{tableName:_0x8acd[4],associate:function(_0x2883x3){_0x2883x3[_0x8acd[2]][_0x8acd[7]](_0x2883x3.SugarcrmConfiguration,{as:_0x8acd[5],foreignKey:_0x8acd[6]});_0x2883x3[_0x8acd[2]][_0x8acd[12]](_0x8acd[8],{include:[{model:_0x2883x3[_0x8acd[9]],as:_0x8acd[5],required:false,attributes:[_0x8acd[10],_0x8acd[11]]}]})}})}
\ No newline at end of file
index cae512a..d3d9672 100644 (file)
@@ -1,27 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('SugarcrmConfiguration', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING
-  }, {
-    tableName: 'sugarcrm_configurations',
-    associate: function(models) {
-      models.SugarcrmConfiguration.belongsTo(models.SugarcrmAccount, {
-        foreignKey: 'AccountId'
-      });
-      models.SugarcrmConfiguration.hasMany(models.SugarcrmField, {
-        as: 'Subject',
-        foreignKey: 'SubjectId'
-      });
-      models.SugarcrmConfiguration.hasMany(models.SugarcrmField, {
-        as: 'Description',
-        foreignKey: 'DescriptionId'
-      });
-      models.SugarcrmConfiguration.hasMany(models.SugarcrmField, {
-        as: 'Field',
-        foreignKey: 'FieldId'
-      });
-    }
-  });
-};
+var _0x8883=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x64\x65\x66\x69\x6E\x65"];_0x8883[0];module[_0x8883[1]]=function(_0xa449x1,_0xa449x2){return _0xa449x1[_0x8883[14]](_0x8883[2],{name:_0xa449x2[_0x8883[3]],description:_0xa449x2[_0x8883[3]]},{tableName:_0x8883[4],associate:function(_0xa449x3){_0xa449x3[_0x8883[2]][_0x8883[6]](_0xa449x3.SugarcrmAccount,{foreignKey:_0x8883[5]});_0xa449x3[_0x8883[2]][_0x8883[9]](_0xa449x3.SugarcrmField,{as:_0x8883[7],foreignKey:_0x8883[8]});_0xa449x3[_0x8883[2]][_0x8883[9]](_0xa449x3.SugarcrmField,{as:_0x8883[10],foreignKey:_0x8883[11]});_0xa449x3[_0x8883[2]][_0x8883[9]](_0xa449x3.SugarcrmField,{as:_0x8883[12],foreignKey:_0x8883[13]})}})}
\ No newline at end of file
index 7998058..203e247 100644 (file)
@@ -1,22 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-  return sequelize.define('SugarcrmField', {
-    type: {
-      type: DataTypes.ENUM('string', 'variable', 'key_value'),
-      defaultValue: 'string'
-    },
-    content: DataTypes.STRING,
-    key: DataTypes.STRING,
-    keyType: {
-      type: DataTypes.ENUM('string', 'variable')
-    },
-    keyContent: DataTypes.STRING,
-    idField: DataTypes.STRING
-  }, {
-    tableName: 'sugarcrm_fields',
-    associate: function(models) {
-      models.SugarcrmField.belongsTo(models.Variable);
-    }
-  });
-};
+var _0xf9ae=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x5F\x76\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0xf9ae[0];module[_0xf9ae[1]]=function(_0x59b6x1,_0x59b6x2){return _0x59b6x1[_0xf9ae[9]](_0xf9ae[2],{type:{type:_0x59b6x2.ENUM(_0xf9ae[3],_0xf9ae[4],_0xf9ae[5]),defaultValue:_0xf9ae[3]},content:_0x59b6x2[_0xf9ae[6]],key:_0x59b6x2[_0xf9ae[6]],keyType:{type:_0x59b6x2.ENUM(_0xf9ae[3],_0xf9ae[4])},keyContent:_0x59b6x2[_0xf9ae[6]],idField:_0x59b6x2[_0xf9ae[6]]},{tableName:_0xf9ae[7],associate:function(_0x59b6x3){_0x59b6x3[_0xf9ae[2]][_0xf9ae[8]](_0x59b6x3.Variable)}})}
\ No newline at end of file
index ff7b5ca..b783d19 100644 (file)
@@ -1,35 +1 @@
-/**
- * tag Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Tag = sequelize.define('Tag', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true,
-      allowNull: false,
-      validate: {
-        notEmpty: true,
-      }
-    },
-    description: DataTypes.STRING
-  }, {
-    tableName: 'tags',
-    associate: function(models) {
-      Tag.belongsToMany(models.ZendeskConfiguration, {
-        through: 'zendesk_configuration_has_tags'
-      });
-      Tag.addScope('configuration', {
-        include: [{
-          all: true
-        }]
-      });
-      // Tag.belongsToMany(models.Contact, {
-      //   through: 'contact_tags'
-      // });
-    }
-  });
-
-  return Tag;
-};
+var _0x4eeb=["\x65\x78\x70\x6F\x72\x74\x73","\x54\x61\x67","\x53\x54\x52\x49\x4E\x47","\x74\x61\x67\x73","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x5F\x68\x61\x73\x5F\x74\x61\x67\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];module[_0x4eeb[0]]=function(_0xc5dcx1,_0xc5dcx2){var _0xc5dcx3=_0xc5dcx1[_0x4eeb[8]](_0x4eeb[1],{name:{type:_0xc5dcx2[_0x4eeb[2]],unique:true,allowNull:false,validate:{notEmpty:true}},description:_0xc5dcx2[_0x4eeb[2]]},{tableName:_0x4eeb[3],associate:function(_0xc5dcx4){_0xc5dcx3[_0x4eeb[5]](_0xc5dcx4.ZendeskConfiguration,{through:_0x4eeb[4]});_0xc5dcx3[_0x4eeb[7]](_0x4eeb[6],{include:[{all:true}]})}});return _0xc5dcx3}
\ No newline at end of file
index e2d6f73..9876637 100644 (file)
@@ -1,42 +1 @@
-/**
- * User Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Team = sequelize.define('Team', {
-    name: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      unique: true
-    },
-    description: {
-      type: DataTypes.STRING
-    },
-    defaultEntry: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: 0
-    }
-  }, {
-    tableName: 'teams',
-    associate: function(models) {
-      Team.belongsToMany(models.User, {
-        through: models.UserHasTeam
-      });
-      Team.addScope('default', {
-        include: [{
-          model: models.User,
-          where: {
-            role: 'agent'
-          },
-          required: false,
-          attributes: ['id', 'name', 'fullname', 'email', 'internal']
-        }]
-      });
-    }
-  });
-
-  return Team;
-};
+var _0x86ca=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x54\x65\x61\x6D","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x74\x65\x61\x6D\x73","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x61\x75\x6C\x74","\x55\x73\x65\x72","\x61\x67\x65\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x86ca[0]);module[_0x86ca[1]]=function(_0x3849x2,_0x3849x3){var _0x3849x4=_0x3849x2[_0x86ca[17]](_0x86ca[2],{name:{type:_0x3849x3[_0x86ca[3]],allowNull:false,unique:true},description:{type:_0x3849x3[_0x86ca[3]]},defaultEntry:{type:_0x3849x3[_0x86ca[4]],defaultValue:0}},{tableName:_0x86ca[5],associate:function(_0x3849x5){_0x3849x4[_0x86ca[7]](_0x3849x5.User,{through:_0x3849x5[_0x86ca[6]]});_0x3849x4[_0x86ca[16]](_0x86ca[8],{include:[{model:_0x3849x5[_0x86ca[9]],where:{role:_0x86ca[10]},required:false,attributes:[_0x86ca[11],_0x86ca[12],_0x86ca[13],_0x86ca[14],_0x86ca[15]]}]})}});return _0x3849x4}
\ No newline at end of file
index 105d888..e98ca26 100644 (file)
@@ -1,507 +1 @@
-'use strict';
-
-var crypto = require('crypto');
-var md5 = require('md5');
-var _ = require('lodash');
-
-module.exports = function(sequelize, DataTypes) {
-  var Telephone = sequelize.define('Telephone', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true,
-      validate: {
-        notEmpty: true,
-        is: /^[A-Za-z0-9\.\_]+$/i
-      },
-      set: function(name) {
-        this.setDataValue('name', name);
-        this.setDataValue('defaultuser', name);
-      }
-    },
-    password: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      validate: {
-        notEmpty: true
-      },
-      set: function(password) {
-        this.salt = this.makeSalt();
-        this.setDataValue('password', this.encryptPassword(password));
-        this.setDataValue('md5secret', this.md5Password(this.name + ':asterisk:' + password));
-      }
-    },
-    internal: {
-      type: DataTypes.INTEGER(11),
-      unique: true,
-      set: function(internal) {
-        this.setDataValue('internal', internal);
-        this.setDataValue('accountcode', internal);
-      }
-    },
-    ipaddr: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    port: {
-      type: DataTypes.INTEGER(5),
-      allowNull: true,
-    },
-    regseconds: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    defaultuser: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    fullcontact: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    regserver: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    useragent: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    lastms: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    host: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'dynamic'
-    },
-    type: {
-      type: DataTypes.ENUM('friend', 'user', 'peer'),
-      allowNull: true,
-      defaultValue: 'friend'
-    },
-    context: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'from-sip'
-    },
-    permit: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    deny: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    secret: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    md5secret: {
-      type: DataTypes.STRING,
-      allowNull: true
-    },
-    remotesecret: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    transport: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'udp'
-    },
-    dtmfmode: {
-      type: DataTypes.ENUM('rfc2833', 'info', 'shortinfo', 'inband',
-        'auto'),
-      allowNull: true,
-      defaultValue: 'rfc2833'
-    },
-    directmedia: {
-      type: DataTypes.ENUM('yes', 'no', 'nonat', 'update'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    nat: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'force_rport,comedia'
-    },
-    callgroup: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    pickupgroup: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    language: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'en'
-    },
-    disallow: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'all'
-    },
-    allow: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'alaw;ulaw;gsm'
-    },
-    insecure: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'port,invite'
-    },
-    trustrpid: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    progressinband: {
-      type: DataTypes.ENUM('yes', 'no', 'never'),
-      allowNull: true,
-    },
-    promiscredir: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    useclientcode: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    accountcode: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    setvar: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callerid: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: '"" <>'
-    },
-    amaflags: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callcounter: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    busylevel: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    allowoverlap: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    allowsubscribe: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    videosupport: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    maxcallbitrate: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    rfc2833compensate: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    mailbox: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    "session-timers": {
-      type: DataTypes.ENUM('accept', 'refuse', 'originate'),
-      allowNull: true,
-    },
-    "session-expires": {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    "session-minse": {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    "session-refresher": {
-      type: DataTypes.ENUM('uac', 'uas'),
-      allowNull: true,
-    },
-    t38pt_usertpsource: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    regexten: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    fromdomain: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    fromuser: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    qualify: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    defaultip: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    rtptimeout: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    rtpholdtimeout: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    sendrpid: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    outboundproxy: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callbackextension: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    timert1: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    timerb: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    qualifyfreq: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    constantssrc: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    contactpermit: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    contactdeny: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    usereqphone: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    textsupport: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    faxdetect: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    buggymwi: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    auth: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    fullname: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    trunkname: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    cid_number: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callingpres: {
-      type: DataTypes.ENUM('ALLOWED_NOT_SCREENED',
-        'ALLOWED_PASSED_SCREEN', 'ALLOWED_FAILED_SCREEN', 'ALLOWED',
-        'PROHIB_NOT_SCREENED', 'PROHIB_PASSED_SCREEN',
-        'PROHIB_FAILED_SCREEN', 'PROHIB'),
-      allowNull: true,
-    },
-    mohinterpret: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    mohsuggest: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    parkinglot: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    hasvoicemail: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    subscribemwi: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    vmexten: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    description: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    autoframing: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    limitonpeers: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    rtpkeepalive: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    "call-limit": {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: null
-    },
-    g726nonstandard: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    ignoresdpversion: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    allowtransfer: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    dynamic: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    encryption: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    registry: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    }
-  }, {
-    tableName: 'users',
-    defaultScope: {
-      where: {
-        role: 'telephone'
-      }
-    },
-    instanceMethods: {
-      /**
-       * Authenticate - check if the passwords are the same
-       *
-       * @param {String} plainText
-       *        {function} callBack
-       * @api public
-       */
-      authenticate: function(plainText) {
-        return this.encryptPassword(plainText) === this.password;
-      },
-      /**
-       * Make salt
-       *
-       * @return {String}
-       * @api public
-       */
-      makeSalt: function() {
-        return crypto.randomBytes(16).toString('base64');
-      },
-      /**
-       * Encrypt password
-       *
-       * @param {String} password
-       * @return {String}
-       * @api public
-       */
-      encryptPassword: function(password) {
-        if (!password || !this.salt) return '';
-        var salt = new Buffer(this.salt, 'base64');
-        return crypto.pbkdf2Sync(password, salt, 10000, 64).toString(
-          'base64');
-      },
-      /**
-       * md5 password
-       *
-       * @param {String} password
-       * @return {String}
-       * @api public
-       */
-      md5Password: function(password) {
-        if (!password) return '';
-        return md5(password);
-      }
-    },
-    associate: function(models) {
-      // BELOGNS TO MANY
-      // Telephone.hasMany(models.ChatMessage);
-      // Telephone.hasMany(models.Contact);
-      // Telephone.belongsToMany(models.Module, {
-      //   through: 'user_has_modules'
-      // });
-      // Telephone.belongsToMany(models.Channel, {
-      //   through: 'user_has_channels'
-      // });
-      // Telephone.belongsToMany(models.Team, {
-      //   through: models.UserHasTeam
-      // });
-      // Telephone.belongsToMany(models.ChatRoom, {
-      //   through: models.UserHasChatRoom
-      // });
-      // Telephone.belongsToMany(models.MailQueue, {
-      //   through: models.UserHasMailQueue
-      // });
-      // Telephone.belongsToMany(models.ChatQueue, {
-      //   through: models.UserHasChatQueue
-      // });
-      // Telephone.belongsToMany(models.VoiceQueue, {
-      //   through: models.UserHasVoiceQueue
-      // });
-      // Telephone.hasMany(models.VoiceExtension, {
-      //   foreignKey: 'UserId',
-      //   as: 'UserExtensions',
-      //   onDelete: 'cascade'
-      // });
-    }
-  });
-
-  return Telephone;
-}
+var _0x6e8a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x6D\x64\x35","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x65\x66\x61\x75\x6C\x74\x75\x73\x65\x72","\x73\x61\x6C\x74","\x6D\x61\x6B\x65\x53\x61\x6C\x74","\x70\x61\x73\x73\x77\x6F\x72\x64","\x65\x6E\x63\x72\x79\x70\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x6D\x64\x35\x73\x65\x63\x72\x65\x74","\x3A\x61\x73\x74\x65\x72\x69\x73\x6B\x3A","\x6D\x64\x35\x50\x61\x73\x73\x77\x6F\x72\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x64\x79\x6E\x61\x6D\x69\x63","\x66\x72\x69\x65\x6E\x64","\x75\x73\x65\x72","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x75\x64\x70","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x65\x6E","\x61\x6C\x6C","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x73\x65\x72\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x62\x61\x73\x65\x36\x34","\x72\x61\x6E\x64\x6F\x6D\x42\x79\x74\x65\x73","","\x70\x62\x6B\x64\x66\x32\x53\x79\x6E\x63","\x64\x65\x66\x69\x6E\x65"];_0x6e8a[0];var crypto=require(_0x6e8a[1]);var md5=require(_0x6e8a[2]);var _=require(_0x6e8a[3]);module[_0x6e8a[4]]=function(_0xa036x4,_0xa036x5){var _0xa036x6=_0xa036x4[_0x6e8a[60]](_0x6e8a[5],{name:{type:_0xa036x5[_0x6e8a[6]],unique:true,validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i},set:function(_0xa036x7){this[_0x6e8a[8]](_0x6e8a[7],_0xa036x7);this[_0x6e8a[8]](_0x6e8a[9],_0xa036x7)}},password:{type:_0xa036x5[_0x6e8a[6]],allowNull:false,validate:{notEmpty:true},set:function(_0xa036x8){this[_0x6e8a[10]]=this[_0x6e8a[11]]();this[_0x6e8a[8]](_0x6e8a[12],this[_0x6e8a[13]](_0xa036x8));this[_0x6e8a[8]](_0x6e8a[14],this[_0x6e8a[16]](this[_0x6e8a[7]]+_0x6e8a[15]+_0xa036x8))}},internal:{type:_0xa036x5.INTEGER(11),unique:true,set:function(_0xa036x9){this[_0x6e8a[8]](_0x6e8a[17],_0xa036x9);this[_0x6e8a[8]](_0x6e8a[18],_0xa036x9)}},ipaddr:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},port:{type:_0xa036x5.INTEGER(5),allowNull:true},regseconds:{type:_0xa036x5.INTEGER(11),allowNull:true},defaultuser:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},fullcontact:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},regserver:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},useragent:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},lastms:{type:_0xa036x5.INTEGER(11),allowNull:true},host:{type:_0xa036x5[_0x6e8a[6]],allowNull:true,defaultValue:_0x6e8a[19]},type:{type:_0xa036x5.ENUM(_0x6e8a[20],_0x6e8a[21],_0x6e8a[22]),allowNull:true,defaultValue:_0x6e8a[20]},context:{type:_0xa036x5[_0x6e8a[6]],allowNull:true,defaultValue:_0x6e8a[23]},permit:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},deny:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},secret:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},md5secret:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},remotesecret:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},transport:{type:_0xa036x5[_0x6e8a[6]],allowNull:true,defaultValue:_0x6e8a[24]},dtmfmode:{type:_0xa036x5.ENUM(_0x6e8a[25],_0x6e8a[26],_0x6e8a[27],_0x6e8a[28],_0x6e8a[29]),allowNull:true,defaultValue:_0x6e8a[25]},directmedia:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31],_0x6e8a[32],_0x6e8a[33]),allowNull:true,defaultValue:_0x6e8a[31]},nat:{type:_0xa036x5[_0x6e8a[6]],allowNull:true,defaultValue:_0x6e8a[34]},callgroup:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},pickupgroup:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},language:{type:_0xa036x5[_0x6e8a[6]],allowNull:true,defaultValue:_0x6e8a[35]},disallow:{type:_0xa036x5[_0x6e8a[6]],allowNull:true,defaultValue:_0x6e8a[36]},allow:{type:_0xa036x5[_0x6e8a[6]],allowNull:true,defaultValue:_0x6e8a[37]},insecure:{type:_0xa036x5[_0x6e8a[6]],allowNull:true,defaultValue:_0x6e8a[38]},trustrpid:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true,defaultValue:_0x6e8a[31]},progressinband:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31],_0x6e8a[39]),allowNull:true},promiscredir:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},useclientcode:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},accountcode:{type:_0xa036x5.INTEGER(11),allowNull:true},setvar:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},callerid:{type:_0xa036x5[_0x6e8a[6]],allowNull:true,defaultValue:_0x6e8a[40]},amaflags:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},callcounter:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true,defaultValue:_0x6e8a[30]},busylevel:{type:_0xa036x5.INTEGER(11),allowNull:true},allowoverlap:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},allowsubscribe:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},videosupport:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},maxcallbitrate:{type:_0xa036x5.INTEGER(11),allowNull:true},rfc2833compensate:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},mailbox:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x74\x69\x6D\x65\x72\x73":{type:_0xa036x5.ENUM(_0x6e8a[41],_0x6e8a[42],_0x6e8a[43]),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x65\x78\x70\x69\x72\x65\x73":{type:_0xa036x5.INTEGER(11),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x6D\x69\x6E\x73\x65":{type:_0xa036x5.INTEGER(11),allowNull:true},"\x73\x65\x73\x73\x69\x6F\x6E\x2D\x72\x65\x66\x72\x65\x73\x68\x65\x72":{type:_0xa036x5.ENUM(_0x6e8a[44],_0x6e8a[45]),allowNull:true},t38pt_usertpsource:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},regexten:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},fromdomain:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},fromuser:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},qualify:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true,defaultValue:_0x6e8a[30]},defaultip:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},rtptimeout:{type:_0xa036x5.INTEGER(11),allowNull:true},rtpholdtimeout:{type:_0xa036x5.INTEGER(11),allowNull:true},sendrpid:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true,defaultValue:_0x6e8a[31]},outboundproxy:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},callbackextension:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},timert1:{type:_0xa036x5.INTEGER(11),allowNull:true},timerb:{type:_0xa036x5.INTEGER(11),allowNull:true},qualifyfreq:{type:_0xa036x5.INTEGER(11),allowNull:true},constantssrc:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},contactpermit:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},contactdeny:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},usereqphone:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true,defaultValue:_0x6e8a[31]},textsupport:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},faxdetect:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},buggymwi:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},auth:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},fullname:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},trunkname:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},cid_number:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},callingpres:{type:_0xa036x5.ENUM(_0x6e8a[46],_0x6e8a[47],_0x6e8a[48],_0x6e8a[49],_0x6e8a[50],_0x6e8a[51],_0x6e8a[52],_0x6e8a[53]),allowNull:true},mohinterpret:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},mohsuggest:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},parkinglot:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},hasvoicemail:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},subscribemwi:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},vmexten:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},description:{type:_0xa036x5[_0x6e8a[6]],allowNull:true},autoframing:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},limitonpeers:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true,defaultValue:_0x6e8a[30]},rtpkeepalive:{type:_0xa036x5.INTEGER(11),allowNull:true},"\x63\x61\x6C\x6C\x2D\x6C\x69\x6D\x69\x74":{type:_0xa036x5.INTEGER(11),allowNull:true,defaultValue:null},g726nonstandard:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},ignoresdpversion:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},allowtransfer:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},dynamic:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true},encryption:{type:_0xa036x5.ENUM(_0x6e8a[30],_0x6e8a[31]),allowNull:true,defaultValue:_0x6e8a[31]},registry:{type:_0xa036x5[_0x6e8a[6]],allowNull:true}},{tableName:_0x6e8a[54],defaultScope:{where:{role:_0x6e8a[55]}},instanceMethods:{authenticate:function(_0xa036xa){return this[_0x6e8a[13]](_0xa036xa)===this[_0x6e8a[12]]},makeSalt:function(){return crypto[_0x6e8a[57]](16).toString(_0x6e8a[56])},encryptPassword:function(_0xa036x8){if(!_0xa036x8||!this[_0x6e8a[10]]){return _0x6e8a[58]};var _0xa036xb= new Buffer(this[_0x6e8a[10]],_0x6e8a[56]);return crypto[_0x6e8a[59]](_0xa036x8,_0xa036xb,10000,64).toString(_0x6e8a[56])},md5Password:function(_0xa036x8){if(!_0xa036x8){return _0x6e8a[58]};return md5(_0xa036x8)}},associate:function(_0xa036xc){}});return _0xa036x6}
\ No newline at end of file
index 9097c07..30285f2 100644 (file)
@@ -1,32 +1 @@
-/**
- * Tools Actions Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ToolsAction = sequelize.define('ToolsAction', {
-    action: {
-      type: DataTypes.STRING
-    },
-    data1: {
-      type: DataTypes.STRING
-    },
-    data2: {
-      type: DataTypes.STRING
-    },
-    data3: {
-      type: DataTypes.STRING
-    },
-    data4: {
-      type: DataTypes.STRING
-    },
-    data5: {
-      type: DataTypes.STRING
-    }
-  }, {
-    tableName: 'tools_actions',
-    associate: function(models) {}
-  });
-
-  return ToolsAction;
-};
+var _0x2247=["\x65\x78\x70\x6F\x72\x74\x73","\x54\x6F\x6F\x6C\x73\x41\x63\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x74\x6F\x6F\x6C\x73\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];module[_0x2247[0]]=function(_0x3888x1,_0x3888x2){var _0x3888x3=_0x3888x1[_0x2247[4]](_0x2247[1],{action:{type:_0x3888x2[_0x2247[2]]},data1:{type:_0x3888x2[_0x2247[2]]},data2:{type:_0x3888x2[_0x2247[2]]},data3:{type:_0x3888x2[_0x2247[2]]},data4:{type:_0x3888x2[_0x2247[2]]},data5:{type:_0x3888x2[_0x2247[2]]}},{tableName:_0x2247[3],associate:function(_0x3888x4){}});return _0x3888x3}
\ No newline at end of file
index cb0b603..a5ba2e1 100644 (file)
@@ -1,18 +1 @@
-/**
- * Tools Conditions Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ToolsCondition = sequelize.define('ToolsCondition', {
-    field: DataTypes.STRING,
-    operator: DataTypes.STRING,
-    value: DataTypes.STRING
-  }, {
-    tableName: 'tools_conditions'
-  });
-
-  return ToolsCondition;
-};
+var _0xd964=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x54\x6F\x6F\x6C\x73\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x74\x6F\x6F\x6C\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xd964[0]);module[_0xd964[1]]=function(_0xadc5x2,_0xadc5x3){var _0xadc5x4=_0xadc5x2[_0xd964[5]](_0xd964[2],{field:_0xadc5x3[_0xd964[3]],operator:_0xadc5x3[_0xd964[3]],value:_0xadc5x3[_0xd964[3]]},{tableName:_0xd964[4]});return _0xadc5x4}
\ No newline at end of file
index 2953319..f4cd2db 100644 (file)
@@ -1,60 +1 @@
-/**
- * Trigger Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Trigger = sequelize.define('Trigger', {
-    name: DataTypes.STRING,
-    channel: DataTypes.STRING,
-    description: DataTypes.STRING,
-    status: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    }
-  }, {
-    tableName: 'triggers',
-    associate: function(models) {
-      Trigger.hasMany(models.ToolsCondition, {
-        as: {
-          plural: 'All',
-          singular: 'OneAll'
-        },
-        foreignKey: 'TriggerAllId',
-        onDelete: 'cascade',
-        hooks: true
-      });
-      Trigger.hasMany(models.ToolsCondition, {
-        as: {
-          plural: 'Any',
-          singular: 'OneAny'
-        },
-        foreignKey: 'TriggerAnyId',
-        onDelete: 'cascade',
-        hooks: true
-      });
-      Trigger.hasMany(models.ToolsAction, {
-        as: 'Actions',
-        onDelete: 'cascade',
-        hooks: true
-      });
-      Trigger.addScope('all', {
-        include: [{
-          model: models.ToolsCondition,
-          as: 'All',
-          attributes: ['field', 'operator', 'value']
-        }, {
-          model: models.ToolsCondition,
-          as: 'Any',
-          attributes: ['field', 'operator', 'value']
-        }, {
-          model: models.ToolsAction,
-          as: 'Actions',
-          attributes: ['action', 'data1', 'data2', 'data3', 'data4', 'data5']
-        }]
-      });
-    }
-  });
-
-  return Trigger;
-};
+var _0x9b12=["\x65\x78\x70\x6F\x72\x74\x73","\x54\x72\x69\x67\x67\x65\x72","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x74\x72\x69\x67\x67\x65\x72\x73","\x41\x6C\x6C","\x4F\x6E\x65\x41\x6C\x6C","\x54\x72\x69\x67\x67\x65\x72\x41\x6C\x6C\x49\x64","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x41\x6E\x79","\x4F\x6E\x65\x41\x6E\x79","\x54\x72\x69\x67\x67\x65\x72\x41\x6E\x79\x49\x64","\x41\x63\x74\x69\x6F\x6E\x73","\x61\x6C\x6C","\x54\x6F\x6F\x6C\x73\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x66\x69\x65\x6C\x64","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x76\x61\x6C\x75\x65","\x54\x6F\x6F\x6C\x73\x41\x63\x74\x69\x6F\x6E","\x61\x63\x74\x69\x6F\x6E","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x64\x61\x74\x61\x34","\x64\x61\x74\x61\x35","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];module[_0x9b12[0]]=function(_0x25bbx1,_0x25bbx2){var _0x25bbx3=_0x25bbx1[_0x9b12[27]](_0x9b12[1],{name:_0x25bbx2[_0x9b12[2]],channel:_0x25bbx2[_0x9b12[2]],description:_0x25bbx2[_0x9b12[2]],status:{type:_0x25bbx2[_0x9b12[3]],defaultValue:false}},{tableName:_0x9b12[4],associate:function(_0x25bbx4){_0x25bbx3[_0x9b12[9]](_0x25bbx4.ToolsCondition,{as:{plural:_0x9b12[5],singular:_0x9b12[6]},foreignKey:_0x9b12[7],onDelete:_0x9b12[8],hooks:true});_0x25bbx3[_0x9b12[9]](_0x25bbx4.ToolsCondition,{as:{plural:_0x9b12[10],singular:_0x9b12[11]},foreignKey:_0x9b12[12],onDelete:_0x9b12[8],hooks:true});_0x25bbx3[_0x9b12[9]](_0x25bbx4.ToolsAction,{as:_0x9b12[13],onDelete:_0x9b12[8],hooks:true});_0x25bbx3[_0x9b12[26]](_0x9b12[14],{include:[{model:_0x25bbx4[_0x9b12[15]],as:_0x9b12[5],attributes:[_0x9b12[16],_0x9b12[17],_0x9b12[18]]},{model:_0x25bbx4[_0x9b12[15]],as:_0x9b12[10],attributes:[_0x9b12[16],_0x9b12[17],_0x9b12[18]]},{model:_0x25bbx4[_0x9b12[19]],as:_0x9b12[13],attributes:[_0x9b12[20],_0x9b12[21],_0x9b12[22],_0x9b12[23],_0x9b12[24],_0x9b12[25]]}]})}});return _0x25bbx3}
\ No newline at end of file
index e9ff649..0fa1c5e 100644 (file)
@@ -1,458 +1 @@
-'use strict';
-
-var crypto = require('crypto');
-var md5 = require('md5');
-var _ = require('lodash');
-
-module.exports = function(sequelize, DataTypes) {
-  var Trunk = sequelize.define('Trunk', {
-    name: {
-      type: DataTypes.STRING,
-      primaryKey: true
-    },
-    type: {
-      type: DataTypes.ENUM('friend', 'user', 'peer'),
-      allowNull: true,
-      defaultValue: 'friend'
-    },
-    context: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'from-sip'
-    },
-    callingpres: {
-      type: DataTypes.ENUM('ALLOWED_NOT_SCREENED',
-        'ALLOWED_PASSED_SCREEN', 'ALLOWED_FAILED_SCREEN', 'ALLOWED',
-        'PROHIB_NOT_SCREENED', 'PROHIB_PASSED_SCREEN',
-        'PROHIB_FAILED_SCREEN', 'PROHIB'),
-      allowNull: true,
-    },
-    permit: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    deny: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    secret: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    md5secret: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    remotesecret: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    transport: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'udp'
-    },
-    dtmfmode: {
-      type: DataTypes.ENUM('rfc2833', 'info', 'shortinfo', 'inband',
-        'auto'),
-      allowNull: true,
-      defaultValue: 'rfc2833'
-    },
-    directmedia: {
-      type: DataTypes.ENUM('yes', 'no', 'nonat', 'update', 'outgoing'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    directrtpsetup: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    directmediapermit: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    directmediadeny: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    nat: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'force_rport,comedia'
-    },
-    callgroup: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    namedcallgroup: { //We are in named call groups engineering,sales,netgroup,protgroup
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    pickupgroup: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    namedpickupgroup: { //We can do call pick-p for named call group sales
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    language: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'en'
-    },
-    tonezone: {
-      type: DataTypes.STRING,
-      allowNull: true
-    },
-    disallow: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'all'
-    },
-    allow: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      defaultValue: 'alaw;ulaw;gsm'
-    },
-    autoframing: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    insecure: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'port,invite'
-    },
-    trustrpid: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    trust_id_outbound: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    progressinband: {
-      type: DataTypes.ENUM('yes', 'no', 'never'),
-      allowNull: true,
-    },
-    promiscredir: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    useclientcode: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    accountcode: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    setvar: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callerid: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: '"" <>'
-    },
-    amaflags: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callcounter: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    busylevel: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    allowoverlap: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    allowsubscribe: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    allowtransfer: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    ignoresdpversion: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    subscribecontext: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    template: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    videosupport: {
-      type: DataTypes.ENUM('yes', 'no', 'always'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    maxcallbitrate: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    rfc2833compensate: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    mailbox: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    session_timers: {
-      type: DataTypes.ENUM('accept', 'refuse', 'originate'),
-      allowNull: true,
-    },
-    session_expires: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    session_minse: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    session_refresher: {
-      type: DataTypes.ENUM('uac', 'uas'),
-      allowNull: true,
-      defaultValue: 'uas'
-    },
-    t38pt_usertpsource: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    regexten: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    fromdomain: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    fromuser: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    host: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'dynamic'
-    },
-    port: {
-      type: DataTypes.INTEGER(5),
-      allowNull: true,
-    },
-    qualify: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    keepalive: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    defaultip: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    defaultuser: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    rtptimeout: { // Terminate call if 60 seconds of no RTP or RTCP activity on the audio channel  when we're not on hold.
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    rtpholdtimeout: { // Terminate call if 300 seconds of no RTP or RTCP activity on the audio channel when we're on hold (must be > rtptimeout)
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    rtpkeepalive: { // Send keepalives in the RTP stream to keep NAT open (default is off - zero)
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    sendrpid: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    outboundproxy: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callbackextension: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    timert1: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    timerb: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    qualifyfreq: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    contactpermit: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    contactdeny: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    contactacl: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    unsolicited_mailbox: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    use_q850_reason: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    maxforwards: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    encryption: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    avpf: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true
-    },
-    force_avp: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true
-    },
-    icesupport: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true
-    },
-    dtlsenable: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true
-    },
-    dtlsverify: {
-      type: DataTypes.ENUM('yes', 'no', 'fingerprint', 'certificate'),
-      allowNull: true
-    },
-    dtlsrekey: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    dtlscertfile: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    dtlsprivatekey: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    dtlscipher: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    dtlscafile: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    dtlscapath: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    dtlssetup: {
-      type: DataTypes.ENUM('active', 'passive', 'actpass'),
-      allowNull: true
-    },
-    dtlsfingerprint: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    usereqphone: { //This provider requires ";user=phone" on URI
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    recordonfeature: { //Feature to use when INFO with Record: on is received.
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    recordofffeature: { //Feature to use when INFO with Record: off is received.
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    call_limit: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: null
-    },
-    registertrying: { //Send a 100 Trying when the device registers.
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    subscribemwi: { //Only send notifications if this phone subscribes for mailbox notification
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    vmexten: { // dialplan extension to reach mailbox. defaults to global vmexten which defaults to "asterisk"
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    mohinterpret: { // This option specifies a preference for which music on hold class this channel should listen to when put on hold
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    mohsuggest: { //  This option specifies which music on hold class to suggest to the peer channel when this channel places the peer on hold.
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    parkinglot: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    description: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    canreinvite: {
-      type: DataTypes.ENUM('yes', 'no', 'nonat', 'update', 'update,nonat'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    registry: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    otherFields: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    }
-  }, {
-    tableName: 'trunks'
-  });
-
-  return Trunk;
-}
+var _0xb4fb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x6D\x64\x35","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x54\x72\x75\x6E\x6B","\x53\x54\x52\x49\x4E\x47","\x66\x72\x69\x65\x6E\x64","\x75\x73\x65\x72","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x64\x70","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x67\x6F\x69\x6E\x67","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x65\x6E","\x61\x6C\x6C","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x6C\x77\x61\x79\x73","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x64\x79\x6E\x61\x6D\x69\x63","\x66\x69\x6E\x67\x65\x72\x70\x72\x69\x6E\x74","\x63\x65\x72\x74\x69\x66\x69\x63\x61\x74\x65","\x61\x63\x74\x69\x76\x65","\x70\x61\x73\x73\x69\x76\x65","\x61\x63\x74\x70\x61\x73\x73","\x75\x70\x64\x61\x74\x65\x2C\x6E\x6F\x6E\x61\x74","\x74\x72\x75\x6E\x6B\x73","\x64\x65\x66\x69\x6E\x65"];_0xb4fb[0];var crypto=require(_0xb4fb[1]);var md5=require(_0xb4fb[2]);var _=require(_0xb4fb[3]);module[_0xb4fb[4]]=function(_0xc21ax4,_0xc21ax5){var _0xc21ax6=_0xc21ax4[_0xb4fb[51]](_0xb4fb[5],{name:{type:_0xc21ax5[_0xb4fb[6]],primaryKey:true},type:{type:_0xc21ax5.ENUM(_0xb4fb[7],_0xb4fb[8],_0xb4fb[9]),allowNull:true,defaultValue:_0xb4fb[7]},context:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true,defaultValue:_0xb4fb[10]},callingpres:{type:_0xc21ax5.ENUM(_0xb4fb[11],_0xb4fb[12],_0xb4fb[13],_0xb4fb[14],_0xb4fb[15],_0xb4fb[16],_0xb4fb[17],_0xb4fb[18]),allowNull:true},permit:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},deny:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},secret:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},md5secret:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},remotesecret:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},transport:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true,defaultValue:_0xb4fb[19]},dtmfmode:{type:_0xc21ax5.ENUM(_0xb4fb[20],_0xb4fb[21],_0xb4fb[22],_0xb4fb[23],_0xb4fb[24]),allowNull:true,defaultValue:_0xb4fb[20]},directmedia:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26],_0xb4fb[27],_0xb4fb[28],_0xb4fb[29]),allowNull:true,defaultValue:_0xb4fb[26]},directrtpsetup:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true,defaultValue:_0xb4fb[26]},directmediapermit:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},directmediadeny:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},nat:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true,defaultValue:_0xb4fb[30]},callgroup:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},namedcallgroup:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},pickupgroup:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},namedpickupgroup:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},language:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true,defaultValue:_0xb4fb[31]},tonezone:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},disallow:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true,defaultValue:_0xb4fb[32]},allow:{type:_0xc21ax5[_0xb4fb[6]],allowNull:false,defaultValue:_0xb4fb[33]},autoframing:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},insecure:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true,defaultValue:_0xb4fb[34]},trustrpid:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true,defaultValue:_0xb4fb[26]},trust_id_outbound:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true,defaultValue:_0xb4fb[26]},progressinband:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26],_0xb4fb[35]),allowNull:true},promiscredir:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},useclientcode:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},accountcode:{type:_0xc21ax5.INTEGER(11),allowNull:true},setvar:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},callerid:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true,defaultValue:_0xb4fb[36]},amaflags:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},callcounter:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true,defaultValue:_0xb4fb[25]},busylevel:{type:_0xc21ax5.INTEGER(11),allowNull:true},allowoverlap:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},allowsubscribe:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},allowtransfer:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},ignoresdpversion:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},subscribecontext:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},template:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},videosupport:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26],_0xb4fb[37]),allowNull:true,defaultValue:_0xb4fb[26]},maxcallbitrate:{type:_0xc21ax5.INTEGER(11),allowNull:true},rfc2833compensate:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},mailbox:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},session_timers:{type:_0xc21ax5.ENUM(_0xb4fb[38],_0xb4fb[39],_0xb4fb[40]),allowNull:true},session_expires:{type:_0xc21ax5.INTEGER(11),allowNull:true},session_minse:{type:_0xc21ax5.INTEGER(11),allowNull:true},session_refresher:{type:_0xc21ax5.ENUM(_0xb4fb[41],_0xb4fb[42]),allowNull:true,defaultValue:_0xb4fb[42]},t38pt_usertpsource:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},regexten:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},fromdomain:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},fromuser:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},host:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true,defaultValue:_0xb4fb[43]},port:{type:_0xc21ax5.INTEGER(5),allowNull:true},qualify:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true,defaultValue:_0xb4fb[25]},keepalive:{type:_0xc21ax5.INTEGER(11),allowNull:true},defaultip:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},defaultuser:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},rtptimeout:{type:_0xc21ax5.INTEGER(11),allowNull:true},rtpholdtimeout:{type:_0xc21ax5.INTEGER(11),allowNull:true},rtpkeepalive:{type:_0xc21ax5.INTEGER(11),allowNull:true},sendrpid:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true,defaultValue:_0xb4fb[26]},outboundproxy:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},callbackextension:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},timert1:{type:_0xc21ax5.INTEGER(11),allowNull:true},timerb:{type:_0xc21ax5.INTEGER(11),allowNull:true},qualifyfreq:{type:_0xc21ax5.INTEGER(11),allowNull:true},contactpermit:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},contactdeny:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},contactacl:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},unsolicited_mailbox:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},use_q850_reason:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},maxforwards:{type:_0xc21ax5.INTEGER(11),allowNull:true},encryption:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true,defaultValue:_0xb4fb[26]},avpf:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},force_avp:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},icesupport:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},dtlsenable:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},dtlsverify:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26],_0xb4fb[44],_0xb4fb[45]),allowNull:true},dtlsrekey:{type:_0xc21ax5.INTEGER(11),allowNull:true},dtlscertfile:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},dtlsprivatekey:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},dtlscipher:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},dtlscafile:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},dtlscapath:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},dtlssetup:{type:_0xc21ax5.ENUM(_0xb4fb[46],_0xb4fb[47],_0xb4fb[48]),allowNull:true},dtlsfingerprint:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},usereqphone:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true,defaultValue:_0xb4fb[26]},recordonfeature:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},recordofffeature:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},call_limit:{type:_0xc21ax5.INTEGER(11),allowNull:true,defaultValue:null},registertrying:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},subscribemwi:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26]),allowNull:true},vmexten:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},mohinterpret:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},mohsuggest:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},parkinglot:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},description:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},canreinvite:{type:_0xc21ax5.ENUM(_0xb4fb[25],_0xb4fb[26],_0xb4fb[27],_0xb4fb[28],_0xb4fb[49]),allowNull:true,defaultValue:_0xb4fb[26]},registry:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true},otherFields:{type:_0xc21ax5[_0xb4fb[6]],allowNull:true}},{tableName:_0xb4fb[50]});return _0xc21ax6}
\ No newline at end of file
index 8c46445..7f2f40b 100644 (file)
@@ -1,846 +1 @@
-'use strict';
-
-var crypto = require('crypto');
-var md5 = require('md5');
-var _ = require('lodash');
-var moment = require('moment');
-var VoiceQueue = require('.').VoiceQueue;
-
-module.exports = function(sequelize, DataTypes) {
-  var User = sequelize.define('User', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true,
-      validate: {
-        notEmpty: true,
-        is: /^[A-Za-z0-9\.\_]+$/i
-      },
-      set: function(name) {
-        this.setDataValue('name', name);
-        this.setDataValue('defaultuser', name);
-      }
-    },
-    fullname: {
-      type: DataTypes.STRING,
-      allowNull: false,
-    },
-    email: {
-      type: DataTypes.STRING,
-      unique: true,
-      set: function(email) {
-        if (email) {
-          this.setDataValue('email', email.toLowerCase());
-        }
-      },
-      defaultValue: null
-    },
-    role: {
-      type: DataTypes.ENUM('admin', 'user', 'agent', 'telephone')
-    },
-    password: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      validate: {
-        notEmpty: true
-      },
-      set: function(password) {
-        this.salt = this.makeSalt();
-        this.setDataValue('password', this.encryptPassword(password));
-        this.setDataValue('md5secret', this.md5Password(this.name + ':asterisk:' + password));
-      }
-    },
-    provider: {
-      type: DataTypes.STRING,
-      defaultValue: 'local'
-    },
-    internal: {
-      type: DataTypes.INTEGER(11),
-      unique: true,
-      set: function(internal) {
-        this.setDataValue('internal', internal);
-        this.setDataValue('accountcode', internal);
-      }
-    },
-    salt: {
-      type: DataTypes.STRING
-    },
-    phone: {
-      type: DataTypes.STRING
-    },
-    mobile: {
-      type: DataTypes.STRING
-    },
-    address: {
-      type: DataTypes.STRING
-    },
-    zipcode: {
-      type: DataTypes.STRING
-    },
-    userpic: {
-      type: DataTypes.STRING
-    },
-    city: {
-      type: DataTypes.STRING
-    },
-    country: {
-      type: DataTypes.STRING
-    },
-    online: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    lastLoginAt: {
-      type: DataTypes.DATE
-    },
-    status: {
-      type: DataTypes.STRING,
-      defaultValue: 'UNKNOWN'
-    },
-    statusAt: {
-      type: DataTypes.DATE
-    },
-    voicePause: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    chatPause: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    mailPause: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    faxPause: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    pauseType: {
-      type: DataTypes.STRING,
-      defaultValue: 'Default Pause'
-    },
-    lastPauseAt: {
-      type: DataTypes.DATE
-    },
-    chatCapacity: {
-      type: DataTypes.INTEGER,
-      defaultValue: 0
-    },
-    mailCapacity: {
-      type: DataTypes.INTEGER,
-      defaultValue: 0
-    },
-    faxCapacity: {
-      type: DataTypes.INTEGER,
-      defaultValue: 0
-    },
-    phoneBarAutoAnswer: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    phoneBarEnableSettings: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    phoneBarUnconditionalNumber: {
-      type: DataTypes.STRING,
-      get: function() {
-        if (this.getDataValue('phoneBarUnconditional')) {
-          return this.getDataValue('phoneBarUnconditionalNumber');
-        }
-        return null;
-      }
-    },
-    phoneBarNoReplyNumber: {
-      type: DataTypes.STRING,
-      get: function() {
-        if (this.getDataValue('phoneBarNoReply')) {
-          return this.getDataValue('phoneBarNoReplyNumber');
-        }
-        return null;
-      }
-    },
-    phoneBarBusyNumber: {
-      type: DataTypes.STRING,
-      get: function() {
-        if (this.getDataValue('phoneBarBusy')) {
-          return this.getDataValue('phoneBarBusyNumber');
-        }
-        return null;
-      }
-    },
-    phoneBarUnconditional: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    phoneBarNoReply: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    phoneBarBusy: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    phoneBarPort: {
-      type: DataTypes.INTEGER(5),
-      allowNull: true,
-    },
-    chanspy: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    description: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    ipaddr: { //REALTIME ASTERISK
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    port: { //REALTIME ASTERISK
-      type: DataTypes.INTEGER(5),
-      allowNull: true,
-    },
-    regseconds: { //REALTIME ASTERISK
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    fullcontact: { //REALTIME ASTERISK
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    regserver: { //REALTIME ASTERISK
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    useragent: { //REALTIME ASTERISK
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    lastms: { //REALTIME ASTERISK
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    type: {
-      type: DataTypes.ENUM('friend', 'user', 'peer'),
-      allowNull: true,
-      defaultValue: 'friend'
-    },
-    context: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'from-sip'
-    },
-    callingpres: {
-      type: DataTypes.ENUM('ALLOWED_NOT_SCREENED',
-        'ALLOWED_PASSED_SCREEN', 'ALLOWED_FAILED_SCREEN', 'ALLOWED',
-        'PROHIB_NOT_SCREENED', 'PROHIB_PASSED_SCREEN',
-        'PROHIB_FAILED_SCREEN', 'PROHIB'),
-      allowNull: true,
-    },
-    permit: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    deny: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    secret: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    md5secret: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    remotesecret: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    transport: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'udp'
-    },
-    dtmfmode: {
-      type: DataTypes.ENUM('rfc2833', 'info', 'shortinfo', 'inband',
-        'auto'),
-      allowNull: true,
-      defaultValue: 'rfc2833'
-    },
-    directmedia: {
-      type: DataTypes.ENUM('yes', 'no', 'nonat', 'update', 'outgoing'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    directrtpsetup: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    directmediapermit: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    directmediadeny: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    nat: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'force_rport,comedia'
-    },
-    callgroup: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    namedcallgroup: { //We are in named call groups engineering,sales,netgroup,protgroup
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    pickupgroup: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    namedpickupgroup: { //We can do call pick-p for named call group sales
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    language: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'en'
-    },
-    tonezone: {
-      type: DataTypes.STRING,
-      allowNull: true
-    },
-    allow: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'alaw;ulaw;gsm'
-    },
-    disallow: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: null
-    },
-    autoframing: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    insecure: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'port,invite'
-    },
-    trustrpid: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    trust_id_outbound: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    progressinband: {
-      type: DataTypes.ENUM('yes', 'no', 'never'),
-      allowNull: true,
-    },
-    promiscredir: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    useclientcode: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    accountcode: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    setvar: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callerid: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: '"" <>'
-    },
-    amaflags: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callcounter: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    busylevel: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    allowoverlap: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    allowsubscribe: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    allowtransfer: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    ignoresdpversion: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    subscribecontext: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    template: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    videosupport: {
-      type: DataTypes.ENUM('yes', 'no', 'always'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    maxcallbitrate: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    rfc2833compensate: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    mailbox: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    session_timers: {
-      type: DataTypes.ENUM('accept', 'refuse', 'originate'),
-      allowNull: true,
-    },
-    session_expires: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    session_minse: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    session_refresher: {
-      type: DataTypes.ENUM('uac', 'uas'),
-      allowNull: true,
-      defaultValue: 'uas'
-    },
-    t38pt_usertpsource: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    regexten: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    fromdomain: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    fromuser: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    host: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'dynamic'
-    },
-    qualify: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    keepalive: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    defaultip: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    defaultuser: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    rtptimeout: { // Terminate call if 60 seconds of no RTP or RTCP activity on the audio channel  when we're not on hold.
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    rtpholdtimeout: { // Terminate call if 300 seconds of no RTP or RTCP activity on the audio channel when we're on hold (must be > rtptimeout)
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    rtpkeepalive: { // Send keepalives in the RTP stream to keep NAT open (default is off - zero)
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    sendrpid: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    outboundproxy: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    callbackextension: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    timert1: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    timerb: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    qualifyfreq: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    contactpermit: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    contactdeny: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    contactacl: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    unsolicited_mailbox: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    use_q850_reason: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    maxforwards: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    encryption: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    avpf: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true
-    },
-    force_avp: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true
-    },
-    icesupport: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true
-    },
-    dtlsenable: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true
-    },
-    dtlsverify: {
-      type: DataTypes.ENUM('yes', 'no', 'fingerprint', 'certificate'),
-      allowNull: true
-    },
-    dtlsrekey: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    dtlscertfile: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    dtlsprivatekey: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    dtlscipher: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    dtlscafile: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    dtlscapath: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    dtlssetup: {
-      type: DataTypes.ENUM('active', 'passive', 'actpass'),
-      allowNull: true
-    },
-    dtlsfingerprint: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    usereqphone: { //This provider requires ";user=phone" on URI
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    recordonfeature: { //Feature to use when INFO with Record: on is received.
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    recordofffeature: { //Feature to use when INFO with Record: off is received.
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    call_limit: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: null
-    },
-    registertrying: { //Send a 100 Trying when the device registers.
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    subscribemwi: { //Only send notifications if this phone subscribes for mailbox notification
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    vmexten: { // dialplan extension to reach mailbox. defaults to global vmexten which defaults to "asterisk"
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    mohinterpret: { // This option specifies a preference for which music on hold class this channel should listen to when put on hold
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    mohsuggest: { //  This option specifies which music on hold class to suggest to the peer channel when this channel places the peer on hold.
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    parkinglot: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    canreinvite: {
-      type: DataTypes.ENUM('yes', 'no', 'nonat', 'update', 'update,nonat'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-  }, {
-    tableName: 'users',
-    instanceMethods: {
-      /**
-       * Authenticate - check if the passwords are the same
-       *
-       * @param {String} plainText
-       *        {function} callBack
-       * @api public
-       */
-      authenticate: function(plainText) {
-        return this.encryptPassword(plainText) === this.password;
-      },
-      /**
-       * Make salt
-       *
-       * @return {String}
-       * @api public
-       */
-      makeSalt: function() {
-        return crypto.randomBytes(16).toString('base64');
-      },
-      /**
-       * Encrypt password
-       *
-       * @param {String} password
-       * @return {String}
-       * @api public
-       */
-      encryptPassword: function(password) {
-        if (!password || !this.salt) return '';
-        var salt = new Buffer(this.salt, 'base64');
-        return crypto.pbkdf2Sync(password, salt, 10000, 64).toString(
-          'base64');
-      },
-      /**
-       * md5 password
-       *
-       * @param {String} password
-       * @return {String}
-       * @api public
-       */
-      md5Password: function(password) {
-        if (!password) return '';
-        return md5(password);
-      }
-    },
-    associate: function(models) {
-      // BELOGNS TO MANY
-      User.hasMany(models.ChatMessage);
-      User.hasMany(models.MailMessage);
-      User.hasMany(models.Contact);
-      User.hasMany(models.Action);
-      User.belongsToMany(models.Module, {
-        through: 'user_has_modules'
-      });
-      User.belongsToMany(models.Channel, {
-        through: 'user_has_channels'
-      });
-      User.belongsToMany(models.MailRoom, {
-        through: 'user_has_mail_rooms'
-      });
-      User.belongsToMany(models.Team, {
-        through: models.UserHasTeam
-      });
-      User.belongsToMany(models.ChatRoom, {
-        through: models.UserHasChatRoom
-      });
-      User.belongsToMany(models.MailQueue, {
-        through: models.UserHasMailQueue,
-        required: false
-      });
-      User.belongsToMany(models.FaxQueue, {
-        through: models.UserHasFaxQueue,
-        required: false
-      });
-      User.belongsToMany(models.ChatQueue, {
-        through: models.UserHasChatQueue,
-        required: false
-      });
-      User.belongsToMany(models.VoiceQueue, {
-        through: models.UserHasVoiceQueue,
-        required: false
-      });
-      User.belongsToMany(models.Service, {
-        through: models.UserHasService
-      });
-      User.hasMany(models.VoiceExtension, {
-        foreignKey: 'UserId',
-        as: 'UserExtensions',
-        onDelete: 'cascade',
-        hooks: true
-      });
-
-      // SCOPES MANAGEMENT
-      User.addScope('user', {
-        where: {
-          role: {
-            $in: ['admin', 'user']
-          },
-        }
-      });
-      User.addScope('queues', {
-        include: [models.VoiceQueue, models.ChatQueue, models.MailQueue, models.FaxQueue]
-      });
-      User.addScope('telephone', {
-        where: {
-          role: 'telephone'
-        }
-      });
-      User.addScope('checkPauseStatus', function(query) {
-        var scope = {
-          where: {}
-        };
-        if (query.voicePause) {
-          scope.where.voicePause = (query.voicePause === 'true') ? true : false;
-          delete query.voicePause;
-        } else if (query.faxPause) {
-          scope.where.faxPause = (query.faxPause === 'true') ? true : false;
-          delete query.faxPause;
-        } else if (query.chatPause) {
-          scope.where.chatPause = (query.chatPause === 'true') ? true : false;
-          delete query.chatPause;
-        } else if (query.mailPause) {
-          scope.where.mailPause = (query.mailPause === 'true') ? true : false;
-          delete query.mailPause;
-        }
-        return scope;
-      });
-      User.addScope('checkOnlineStatus', function(query) {
-        var scope = {
-          where: {}
-        };
-        if (query.online) {
-          scope.where.online = (query.online === 'true') ? true : false;
-          delete query.online;
-        }
-        return scope;
-      });
-      User.addScope('checkSipStatus', function(query) {
-        var scope = {
-          where: {}
-        };
-        if (query.status) {
-          scope.where.status = query.status;
-          delete query.status;
-        }
-        return scope;
-      });
-      User.addScope('agent', {
-        where: {
-          role: 'agent'
-        },
-        attributes: ['id',
-          'name',
-          'email',
-          'internal',
-          'fullname',
-          'accountcode',
-          'transport',
-          'host',
-          'nat',
-          'type',
-          'allow',
-          'chatCapacity',
-          'mailCapacity',
-          'faxCapacity',
-          'online',
-          'lastLoginAt',
-          'phoneBarAutoAnswer',
-          'phoneBarEnableSettings',
-          'phoneBarUnconditional',
-          'phoneBarNoReply',
-          'phoneBarBusy',
-          'phoneBarUnconditionalNumber',
-          'phoneBarNoReplyNumber',
-          'phoneBarBusyNumber',
-          'chanspy',
-          'voicePause',
-          'mailPause',
-          'faxPause',
-          'chatPause',
-          'pauseType',
-          'lastPauseAt',
-          'status',
-          'statusAt',
-          'useragent',
-          'ipaddr',
-          'fullcontact',
-          'port',
-          'lastms',
-          'description'
-        ]
-      });
-    }
-  });
-
-  return User;
-}
+var _0x32f1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x6D\x64\x35","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x65\x66\x61\x75\x6C\x74\x75\x73\x65\x72","\x65\x6D\x61\x69\x6C","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x61\x67\x65\x6E\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x73\x61\x6C\x74","\x6D\x61\x6B\x65\x53\x61\x6C\x74","\x70\x61\x73\x73\x77\x6F\x72\x64","\x65\x6E\x63\x72\x79\x70\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x6D\x64\x35\x73\x65\x63\x72\x65\x74","\x3A\x61\x73\x74\x65\x72\x69\x73\x6B\x3A","\x6D\x64\x35\x50\x61\x73\x73\x77\x6F\x72\x64","\x6C\x6F\x63\x61\x6C","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x76\x6F\x69\x63\x65\x50\x61\x75\x73\x65","\x71\x75\x65\x75\x65\x53\x74\x61\x74\x75\x73","\x70\x61\x75\x73\x65\x64","\x71\x75\x65\x75\x65\x53\x74\x61\x74\x75\x73\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x65\x66\x61\x75\x6C\x74\x20\x50\x61\x75\x73\x65","\x49\x4E\x54\x45\x47\x45\x52","\x70\x68\x6F\x6E\x65\x42\x61\x72\x55\x6E\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x61\x6C","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x68\x6F\x6E\x65\x42\x61\x72\x55\x6E\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x61\x6C\x4E\x75\x6D\x62\x65\x72","\x70\x68\x6F\x6E\x65\x42\x61\x72\x4E\x6F\x52\x65\x70\x6C\x79","\x70\x68\x6F\x6E\x65\x42\x61\x72\x4E\x6F\x52\x65\x70\x6C\x79\x4E\x75\x6D\x62\x65\x72","\x70\x68\x6F\x6E\x65\x42\x61\x72\x42\x75\x73\x79","\x70\x68\x6F\x6E\x65\x42\x61\x72\x42\x75\x73\x79\x4E\x75\x6D\x62\x65\x72","\x66\x72\x69\x65\x6E\x64","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x64\x70","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x67\x6F\x69\x6E\x67","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x65\x6E","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x6C\x77\x61\x79\x73","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x64\x79\x6E\x61\x6D\x69\x63","\x66\x69\x6E\x67\x65\x72\x70\x72\x69\x6E\x74","\x63\x65\x72\x74\x69\x66\x69\x63\x61\x74\x65","\x61\x63\x74\x69\x76\x65","\x70\x61\x73\x73\x69\x76\x65","\x61\x63\x74\x70\x61\x73\x73","\x75\x70\x64\x61\x74\x65\x2C\x6E\x6F\x6E\x61\x74","\x75\x73\x65\x72\x73","\x62\x61\x73\x65\x36\x34","\x72\x61\x6E\x64\x6F\x6D\x42\x79\x74\x65\x73","","\x70\x62\x6B\x64\x66\x32\x53\x79\x6E\x63","\x68\x61\x73\x4D\x61\x6E\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x6F\x64\x75\x6C\x65\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x55\x73\x65\x72\x48\x61\x73\x53\x65\x72\x76\x69\x63\x65","\x55\x73\x65\x72\x49\x64","\x55\x73\x65\x72\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x63\x61\x73\x63\x61\x64\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x71\x75\x65\x75\x65\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x46\x61\x78\x51\x75\x65\x75\x65","\x63\x68\x65\x63\x6B\x50\x61\x75\x73\x65\x53\x74\x61\x74\x75\x73","\x77\x68\x65\x72\x65","\x74\x72\x75\x65","\x66\x61\x78\x50\x61\x75\x73\x65","\x63\x68\x61\x74\x50\x61\x75\x73\x65","\x6D\x61\x69\x6C\x50\x61\x75\x73\x65","\x63\x68\x65\x63\x6B\x4F\x6E\x6C\x69\x6E\x65\x53\x74\x61\x74\x75\x73","\x6F\x6E\x6C\x69\x6E\x65","\x63\x68\x65\x63\x6B\x53\x69\x70\x53\x74\x61\x74\x75\x73","\x73\x74\x61\x74\x75\x73","\x63\x68\x65\x63\x6B\x51\x75\x65\x75\x65\x53\x74\x61\x74\x75\x73","\x69\x64","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74","\x68\x6F\x73\x74","\x6E\x61\x74","\x74\x79\x70\x65","\x61\x6C\x6C\x6F\x77","\x63\x68\x61\x74\x43\x61\x70\x61\x63\x69\x74\x79","\x6D\x61\x69\x6C\x43\x61\x70\x61\x63\x69\x74\x79","\x66\x61\x78\x43\x61\x70\x61\x63\x69\x74\x79","\x6C\x61\x73\x74\x4C\x6F\x67\x69\x6E\x41\x74","\x70\x68\x6F\x6E\x65\x42\x61\x72\x41\x75\x74\x6F\x41\x6E\x73\x77\x65\x72","\x70\x68\x6F\x6E\x65\x42\x61\x72\x45\x6E\x61\x62\x6C\x65\x53\x65\x74\x74\x69\x6E\x67\x73","\x63\x68\x61\x6E\x73\x70\x79","\x70\x61\x75\x73\x65\x54\x79\x70\x65","\x6C\x61\x73\x74\x50\x61\x75\x73\x65\x41\x74","\x73\x74\x61\x74\x75\x73\x41\x74","\x6C\x61\x73\x74\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x61\x67\x65\x6E\x74","\x69\x70\x61\x64\x64\x72","\x66\x75\x6C\x6C\x63\x6F\x6E\x74\x61\x63\x74","\x70\x6F\x72\x74","\x6C\x61\x73\x74\x6D\x73","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0x32f1[0];var crypto=require(_0x32f1[1]);var md5=require(_0x32f1[2]);var _=require(_0x32f1[3]);var moment=require(_0x32f1[4]);var VoiceQueue=require(_0x32f1[6])[_0x32f1[5]];module[_0x32f1[7]]=function(_0x2150x6,_0x2150x7){var _0x2150x8=_0x2150x6[_0x32f1[149]](_0x32f1[8],{name:{type:_0x2150x7[_0x32f1[9]],unique:true,validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i},set:function(_0x2150x9){this[_0x32f1[11]](_0x32f1[10],_0x2150x9);this[_0x32f1[11]](_0x32f1[12],_0x2150x9)}},fullname:{type:_0x2150x7[_0x32f1[9]],allowNull:false},email:{type:_0x2150x7[_0x32f1[9]],unique:true,set:function(_0x2150xa){if(_0x2150xa){this[_0x32f1[11]](_0x32f1[13],_0x2150xa[_0x32f1[14]]())}},defaultValue:null},role:{type:_0x2150x7.ENUM(_0x32f1[15],_0x32f1[16],_0x32f1[17],_0x32f1[18])},password:{type:_0x2150x7[_0x32f1[9]],allowNull:false,validate:{notEmpty:true},set:function(_0x2150xb){this[_0x32f1[19]]=this[_0x32f1[20]]();this[_0x32f1[11]](_0x32f1[21],this[_0x32f1[22]](_0x2150xb));this[_0x32f1[11]](_0x32f1[23],this[_0x32f1[25]](this[_0x32f1[10]]+_0x32f1[24]+_0x2150xb))}},provider:{type:_0x2150x7[_0x32f1[9]],defaultValue:_0x32f1[26]},internal:{type:_0x2150x7.INTEGER(11),unique:true,set:function(_0x2150xc){this[_0x32f1[11]](_0x32f1[27],_0x2150xc);this[_0x32f1[11]](_0x32f1[28],_0x2150xc)}},salt:{type:_0x2150x7[_0x32f1[9]]},phone:{type:_0x2150x7[_0x32f1[9]]},mobile:{type:_0x2150x7[_0x32f1[9]]},address:{type:_0x2150x7[_0x32f1[9]]},zipcode:{type:_0x2150x7[_0x32f1[9]]},userpic:{type:_0x2150x7[_0x32f1[9]]},city:{type:_0x2150x7[_0x32f1[9]]},country:{type:_0x2150x7[_0x32f1[9]]},online:{type:_0x2150x7[_0x32f1[29]],defaultValue:false},lastLoginAt:{type:_0x2150x7[_0x32f1[30]]},status:{type:_0x2150x7[_0x32f1[9]],defaultValue:_0x32f1[31]},statusAt:{type:_0x2150x7[_0x32f1[30]]},queueStatus:{type:_0x2150x7[_0x32f1[9]],defaultValue:_0x32f1[32]},queueStatusAt:{type:_0x2150x7[_0x32f1[30]]},lastQueue:{type:_0x2150x7[_0x32f1[9]]},voicePause:{type:_0x2150x7[_0x32f1[29]],defaultValue:false,set:function(_0x2150xd){this[_0x32f1[11]](_0x32f1[33],_0x2150xd);if(_0x2150xd){this[_0x32f1[11]](_0x32f1[34],_0x32f1[35]);this[_0x32f1[11]](_0x32f1[36],moment()[_0x32f1[38]](_0x32f1[37]))}else {this[_0x32f1[11]](_0x32f1[34],_0x32f1[32]);this[_0x32f1[11]](_0x32f1[36],moment()[_0x32f1[38]](_0x32f1[37]))}}},chatPause:{type:_0x2150x7[_0x32f1[29]],defaultValue:false},mailPause:{type:_0x2150x7[_0x32f1[29]],defaultValue:false},faxPause:{type:_0x2150x7[_0x32f1[29]],defaultValue:false},pauseType:{type:_0x2150x7[_0x32f1[9]],defaultValue:_0x32f1[39]},lastPauseAt:{type:_0x2150x7[_0x32f1[30]]},chatCapacity:{type:_0x2150x7[_0x32f1[40]],defaultValue:0},mailCapacity:{type:_0x2150x7[_0x32f1[40]],defaultValue:0},faxCapacity:{type:_0x2150x7[_0x32f1[40]],defaultValue:0},phoneBarAutoAnswer:{type:_0x2150x7[_0x32f1[29]],defaultValue:false},phoneBarEnableSettings:{type:_0x2150x7[_0x32f1[29]],defaultValue:false},phoneBarUnconditionalNumber:{type:_0x2150x7[_0x32f1[9]],get:function(){if(this[_0x32f1[42]](_0x32f1[41])){return this[_0x32f1[42]](_0x32f1[43])};return null}},phoneBarNoReplyNumber:{type:_0x2150x7[_0x32f1[9]],get:function(){if(this[_0x32f1[42]](_0x32f1[44])){return this[_0x32f1[42]](_0x32f1[45])};return null}},phoneBarBusyNumber:{type:_0x2150x7[_0x32f1[9]],get:function(){if(this[_0x32f1[42]](_0x32f1[46])){return this[_0x32f1[42]](_0x32f1[47])};return null}},phoneBarUnconditional:{type:_0x2150x7[_0x32f1[29]],defaultValue:false},phoneBarNoReply:{type:_0x2150x7[_0x32f1[29]],defaultValue:false},phoneBarBusy:{type:_0x2150x7[_0x32f1[29]],defaultValue:false},phoneBarPort:{type:_0x2150x7.INTEGER(5),allowNull:true},chanspy:{type:_0x2150x7[_0x32f1[29]],defaultValue:false},description:{type:_0x2150x7[_0x32f1[9]],allowNull:true},ipaddr:{type:_0x2150x7[_0x32f1[9]],allowNull:true},port:{type:_0x2150x7.INTEGER(5),allowNull:true},regseconds:{type:_0x2150x7.INTEGER(11),allowNull:true},fullcontact:{type:_0x2150x7[_0x32f1[9]],allowNull:true},regserver:{type:_0x2150x7[_0x32f1[9]],allowNull:true},useragent:{type:_0x2150x7[_0x32f1[9]],allowNull:true},lastms:{type:_0x2150x7.INTEGER(11),allowNull:true},type:{type:_0x2150x7.ENUM(_0x32f1[48],_0x32f1[16],_0x32f1[49]),allowNull:true,defaultValue:_0x32f1[48]},context:{type:_0x2150x7[_0x32f1[9]],allowNull:true,defaultValue:_0x32f1[50]},callingpres:{type:_0x2150x7.ENUM(_0x32f1[51],_0x32f1[52],_0x32f1[53],_0x32f1[54],_0x32f1[55],_0x32f1[56],_0x32f1[57],_0x32f1[58]),allowNull:true},permit:{type:_0x2150x7[_0x32f1[9]],allowNull:true},deny:{type:_0x2150x7[_0x32f1[9]],allowNull:true},secret:{type:_0x2150x7[_0x32f1[9]],allowNull:true},md5secret:{type:_0x2150x7[_0x32f1[9]],allowNull:true},remotesecret:{type:_0x2150x7[_0x32f1[9]],allowNull:true},transport:{type:_0x2150x7[_0x32f1[9]],allowNull:true,defaultValue:_0x32f1[59]},dtmfmode:{type:_0x2150x7.ENUM(_0x32f1[60],_0x32f1[61],_0x32f1[62],_0x32f1[63],_0x32f1[64]),allowNull:true,defaultValue:_0x32f1[60]},directmedia:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66],_0x32f1[67],_0x32f1[68],_0x32f1[69]),allowNull:true,defaultValue:_0x32f1[66]},directrtpsetup:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true,defaultValue:_0x32f1[66]},directmediapermit:{type:_0x2150x7[_0x32f1[9]],allowNull:true},directmediadeny:{type:_0x2150x7[_0x32f1[9]],allowNull:true},nat:{type:_0x2150x7[_0x32f1[9]],allowNull:true,defaultValue:_0x32f1[70]},callgroup:{type:_0x2150x7[_0x32f1[9]],allowNull:true},namedcallgroup:{type:_0x2150x7[_0x32f1[9]],allowNull:true},pickupgroup:{type:_0x2150x7[_0x32f1[9]],allowNull:true},namedpickupgroup:{type:_0x2150x7[_0x32f1[9]],allowNull:true},language:{type:_0x2150x7[_0x32f1[9]],allowNull:true,defaultValue:_0x32f1[71]},tonezone:{type:_0x2150x7[_0x32f1[9]],allowNull:true},allow:{type:_0x2150x7[_0x32f1[9]],allowNull:true,defaultValue:_0x32f1[72]},disallow:{type:_0x2150x7[_0x32f1[9]],allowNull:true,defaultValue:null},autoframing:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},insecure:{type:_0x2150x7[_0x32f1[9]],allowNull:true,defaultValue:_0x32f1[73]},trustrpid:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true,defaultValue:_0x32f1[66]},trust_id_outbound:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true,defaultValue:_0x32f1[66]},progressinband:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66],_0x32f1[74]),allowNull:true},promiscredir:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},useclientcode:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},accountcode:{type:_0x2150x7.INTEGER(11),allowNull:true},setvar:{type:_0x2150x7[_0x32f1[9]],allowNull:true},callerid:{type:_0x2150x7[_0x32f1[9]],allowNull:true,defaultValue:_0x32f1[75]},amaflags:{type:_0x2150x7[_0x32f1[9]],allowNull:true},callcounter:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true,defaultValue:_0x32f1[65]},busylevel:{type:_0x2150x7.INTEGER(11),allowNull:true},allowoverlap:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},allowsubscribe:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},allowtransfer:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},ignoresdpversion:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},subscribecontext:{type:_0x2150x7[_0x32f1[9]],allowNull:true},template:{type:_0x2150x7[_0x32f1[9]],allowNull:true},videosupport:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66],_0x32f1[76]),allowNull:true,defaultValue:_0x32f1[66]},maxcallbitrate:{type:_0x2150x7.INTEGER(11),allowNull:true},rfc2833compensate:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},mailbox:{type:_0x2150x7[_0x32f1[9]],allowNull:true},session_timers:{type:_0x2150x7.ENUM(_0x32f1[77],_0x32f1[78],_0x32f1[79]),allowNull:true},session_expires:{type:_0x2150x7.INTEGER(11),allowNull:true},session_minse:{type:_0x2150x7.INTEGER(11),allowNull:true},session_refresher:{type:_0x2150x7.ENUM(_0x32f1[80],_0x32f1[81]),allowNull:true,defaultValue:_0x32f1[81]},t38pt_usertpsource:{type:_0x2150x7[_0x32f1[9]],allowNull:true},regexten:{type:_0x2150x7[_0x32f1[9]],allowNull:true},fromdomain:{type:_0x2150x7[_0x32f1[9]],allowNull:true},fromuser:{type:_0x2150x7[_0x32f1[9]],allowNull:true},host:{type:_0x2150x7[_0x32f1[9]],allowNull:true,defaultValue:_0x32f1[82]},qualify:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true,defaultValue:_0x32f1[65]},keepalive:{type:_0x2150x7.INTEGER(11),allowNull:true},defaultip:{type:_0x2150x7[_0x32f1[9]],allowNull:true},defaultuser:{type:_0x2150x7[_0x32f1[9]],allowNull:true},rtptimeout:{type:_0x2150x7.INTEGER(11),allowNull:true},rtpholdtimeout:{type:_0x2150x7.INTEGER(11),allowNull:true},rtpkeepalive:{type:_0x2150x7.INTEGER(11),allowNull:true},sendrpid:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true,defaultValue:_0x32f1[66]},outboundproxy:{type:_0x2150x7[_0x32f1[9]],allowNull:true},callbackextension:{type:_0x2150x7[_0x32f1[9]],allowNull:true},timert1:{type:_0x2150x7.INTEGER(11),allowNull:true},timerb:{type:_0x2150x7.INTEGER(11),allowNull:true},qualifyfreq:{type:_0x2150x7.INTEGER(11),allowNull:true},contactpermit:{type:_0x2150x7[_0x32f1[9]],allowNull:true},contactdeny:{type:_0x2150x7[_0x32f1[9]],allowNull:true},contactacl:{type:_0x2150x7[_0x32f1[9]],allowNull:true},unsolicited_mailbox:{type:_0x2150x7[_0x32f1[9]],allowNull:true},use_q850_reason:{type:_0x2150x7[_0x32f1[9]],allowNull:true},maxforwards:{type:_0x2150x7.INTEGER(11),allowNull:true},encryption:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true,defaultValue:_0x32f1[66]},avpf:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},force_avp:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},icesupport:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},dtlsenable:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},dtlsverify:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66],_0x32f1[83],_0x32f1[84]),allowNull:true},dtlsrekey:{type:_0x2150x7.INTEGER(11),allowNull:true},dtlscertfile:{type:_0x2150x7[_0x32f1[9]],allowNull:true},dtlsprivatekey:{type:_0x2150x7[_0x32f1[9]],allowNull:true},dtlscipher:{type:_0x2150x7[_0x32f1[9]],allowNull:true},dtlscafile:{type:_0x2150x7[_0x32f1[9]],allowNull:true},dtlscapath:{type:_0x2150x7[_0x32f1[9]],allowNull:true},dtlssetup:{type:_0x2150x7.ENUM(_0x32f1[85],_0x32f1[86],_0x32f1[87]),allowNull:true},dtlsfingerprint:{type:_0x2150x7[_0x32f1[9]],allowNull:true},usereqphone:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true,defaultValue:_0x32f1[66]},recordonfeature:{type:_0x2150x7[_0x32f1[9]],allowNull:true},recordofffeature:{type:_0x2150x7[_0x32f1[9]],allowNull:true},call_limit:{type:_0x2150x7.INTEGER(11),allowNull:true,defaultValue:null},registertrying:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},subscribemwi:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66]),allowNull:true},vmexten:{type:_0x2150x7[_0x32f1[9]],allowNull:true},mohinterpret:{type:_0x2150x7[_0x32f1[9]],allowNull:true},mohsuggest:{type:_0x2150x7[_0x32f1[9]],allowNull:true},parkinglot:{type:_0x2150x7[_0x32f1[9]],allowNull:true},canreinvite:{type:_0x2150x7.ENUM(_0x32f1[65],_0x32f1[66],_0x32f1[67],_0x32f1[68],_0x32f1[88]),allowNull:true,defaultValue:_0x32f1[66]}},{tableName:_0x32f1[89],instanceMethods:{authenticate:function(_0x2150xe){return this[_0x32f1[22]](_0x2150xe)===this[_0x32f1[21]]},makeSalt:function(){return crypto[_0x32f1[91]](16).toString(_0x32f1[90])},encryptPassword:function(_0x2150xb){if(!_0x2150xb||!this[_0x32f1[19]]){return _0x32f1[92]};var _0x2150xf= new Buffer(this[_0x32f1[19]],_0x32f1[90]);return crypto[_0x32f1[93]](_0x2150xb,_0x2150xf,10000,64).toString(_0x32f1[90])},md5Password:function(_0x2150xb){if(!_0x2150xb){return _0x32f1[92]};return md5(_0x2150xb)}},associate:function(_0x2150x10){_0x2150x8[_0x32f1[94]](_0x2150x10.ChatMessage);_0x2150x8[_0x32f1[94]](_0x2150x10.MailMessage);_0x2150x8[_0x32f1[94]](_0x2150x10.Contact);_0x2150x8[_0x32f1[94]](_0x2150x10.Action);_0x2150x8[_0x32f1[96]](_0x2150x10.Module,{through:_0x32f1[95]});_0x2150x8[_0x32f1[96]](_0x2150x10.Channel,{through:_0x32f1[97]});_0x2150x8[_0x32f1[96]](_0x2150x10.MailRoom,{through:_0x32f1[98]});_0x2150x8[_0x32f1[96]](_0x2150x10.Team,{through:_0x2150x10[_0x32f1[99]]});_0x2150x8[_0x32f1[96]](_0x2150x10.ChatRoom,{through:_0x2150x10[_0x32f1[100]]});_0x2150x8[_0x32f1[96]](_0x2150x10.MailQueue,{through:_0x2150x10[_0x32f1[101]],required:false});_0x2150x8[_0x32f1[96]](_0x2150x10.FaxQueue,{through:_0x2150x10[_0x32f1[102]],required:false});_0x2150x8[_0x32f1[96]](_0x2150x10.ChatQueue,{through:_0x2150x10[_0x32f1[103]],required:false});_0x2150x8[_0x32f1[96]](_0x2150x10.VoiceQueue,{through:_0x2150x10[_0x32f1[104]],required:false});_0x2150x8[_0x32f1[96]](_0x2150x10.Service,{through:_0x2150x10[_0x32f1[105]]});_0x2150x8[_0x32f1[94]](_0x2150x10.VoiceExtension,{foreignKey:_0x32f1[106],as:_0x32f1[107],onDelete:_0x32f1[108],hooks:true});_0x2150x8[_0x32f1[109]](_0x32f1[16],{where:{role:{$in:[_0x32f1[15],_0x32f1[16]]}}});_0x2150x8[_0x32f1[109]](_0x32f1[110],{include:[_0x2150x10[_0x32f1[5]],_0x2150x10[_0x32f1[111]],_0x2150x10[_0x32f1[112]],_0x2150x10[_0x32f1[113]]]});_0x2150x8[_0x32f1[109]](_0x32f1[18],{where:{role:_0x32f1[18]}});_0x2150x8[_0x32f1[109]](_0x32f1[114],function(_0x2150x11){var _0x2150x12={where:{}};if(_0x2150x11[_0x32f1[33]]){_0x2150x12[_0x32f1[115]][_0x32f1[33]]=(_0x2150x11[_0x32f1[33]]===_0x32f1[116])?true:false;delete _0x2150x11[_0x32f1[33]]}else {if(_0x2150x11[_0x32f1[117]]){_0x2150x12[_0x32f1[115]][_0x32f1[117]]=(_0x2150x11[_0x32f1[117]]===_0x32f1[116])?true:false;delete _0x2150x11[_0x32f1[117]]}else {if(_0x2150x11[_0x32f1[118]]){_0x2150x12[_0x32f1[115]][_0x32f1[118]]=(_0x2150x11[_0x32f1[118]]===_0x32f1[116])?true:false;delete _0x2150x11[_0x32f1[118]]}else {if(_0x2150x11[_0x32f1[119]]){_0x2150x12[_0x32f1[115]][_0x32f1[119]]=(_0x2150x11[_0x32f1[119]]===_0x32f1[116])?true:false;delete _0x2150x11[_0x32f1[119]]}}}};return _0x2150x12});_0x2150x8[_0x32f1[109]](_0x32f1[120],function(_0x2150x11){var _0x2150x12={where:{}};if(_0x2150x11[_0x32f1[121]]){_0x2150x12[_0x32f1[115]][_0x32f1[121]]=(_0x2150x11[_0x32f1[121]]===_0x32f1[116])?true:false;delete _0x2150x11[_0x32f1[121]]};return _0x2150x12});_0x2150x8[_0x32f1[109]](_0x32f1[122],function(_0x2150x11){var _0x2150x12={where:{}};if(_0x2150x11[_0x32f1[123]]){_0x2150x12[_0x32f1[115]][_0x32f1[123]]=_0x2150x11[_0x32f1[123]];delete _0x2150x11[_0x32f1[123]]};return _0x2150x12});_0x2150x8[_0x32f1[109]](_0x32f1[124],function(_0x2150x11){var _0x2150x12={where:{}};if(_0x2150x11[_0x32f1[34]]){_0x2150x12[_0x32f1[115]][_0x32f1[34]]=_0x2150x11[_0x32f1[34]];delete _0x2150x11[_0x32f1[34]]};return _0x2150x12});_0x2150x8[_0x32f1[109]](_0x32f1[17],{where:{role:_0x32f1[17]},attributes:[_0x32f1[125],_0x32f1[10],_0x32f1[13],_0x32f1[27],_0x32f1[126],_0x32f1[28],_0x32f1[127],_0x32f1[128],_0x32f1[129],_0x32f1[130],_0x32f1[131],_0x32f1[132],_0x32f1[133],_0x32f1[134],_0x32f1[121],_0x32f1[135],_0x32f1[136],_0x32f1[137],_0x32f1[41],_0x32f1[44],_0x32f1[46],_0x32f1[43],_0x32f1[45],_0x32f1[47],_0x32f1[138],_0x32f1[33],_0x32f1[119],_0x32f1[117],_0x32f1[118],_0x32f1[139],_0x32f1[140],_0x32f1[123],_0x32f1[141],_0x32f1[34],_0x32f1[36],_0x32f1[142],_0x32f1[143],_0x32f1[144],_0x32f1[145],_0x32f1[146],_0x32f1[147],_0x32f1[148]]})}});return _0x2150x8}
\ No newline at end of file
index 6479a3d..9a27919 100644 (file)
@@ -1,22 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var UserHasChatQueue = sequelize.define('UserHasChatQueue', {
-               penalty: {
-                       type: DataTypes.INTEGER,
-                       defaultValue: 0
-               },
-               queue: {
-                       type: DataTypes.STRING
-               },
-       }, {
-               tableName: 'user_has_chat_queues'
-       });
-
-       return UserHasChatQueue;
-};
+var _0x6e63=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x6e63[0]);module[_0x6e63[1]]=function(_0xdc54x2,_0xdc54x3){var _0xdc54x4=_0xdc54x2[_0x6e63[6]](_0x6e63[2],{penalty:{type:_0xdc54x3[_0x6e63[3]],defaultValue:0},queue:{type:_0xdc54x3[_0x6e63[4]]}},{tableName:_0x6e63[5]});return _0xdc54x4}
\ No newline at end of file
index 277debd..ca85f7c 100644 (file)
@@ -1,19 +1 @@
-
-/**
-       * Chat Website Model
-       */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var UserHasChatRoom = sequelize.define('UserHasChatRoom', {
-                       LastMessageRead: { type: DataTypes.INTEGER, defaultValue: 0 },
-                       Hide: { type: DataTypes.BOOLEAN, defaultValue: false }
-               }, {
-                       tableName: 'user_has_chat_rooms'
-               }
-       );
-
-       return UserHasChatRoom;
-};
+var _0xd6f0=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x43\x68\x61\x74\x52\x6F\x6F\x6D","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0xd6f0[0]);module[_0xd6f0[1]]=function(_0x4ee6x2,_0x4ee6x3){var _0x4ee6x4=_0x4ee6x2[_0xd6f0[6]](_0xd6f0[2],{LastMessageRead:{type:_0x4ee6x3[_0xd6f0[3]],defaultValue:0},Hide:{type:_0x4ee6x3[_0xd6f0[4]],defaultValue:false}},{tableName:_0xd6f0[5]});return _0x4ee6x4}
\ No newline at end of file
index 3bcb67d..c493f4c 100644 (file)
@@ -1,22 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var UserHasFaxQueue = sequelize.define('UserHasFaxQueue', {
-               penalty: {
-                       type: DataTypes.INTEGER,
-                       defaultValue: 0
-               },
-               queue: {
-                       type: DataTypes.STRING
-               }
-       }, {
-               tableName: 'user_has_fax_queues'
-       });
-
-       return UserHasFaxQueue;
-};
+var _0x7793=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x46\x61\x78\x51\x75\x65\x75\x65","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x7793[0]);module[_0x7793[1]]=function(_0x8c22x2,_0x8c22x3){var _0x8c22x4=_0x8c22x2[_0x7793[6]](_0x7793[2],{penalty:{type:_0x8c22x3[_0x7793[3]],defaultValue:0},queue:{type:_0x8c22x3[_0x7793[4]]}},{tableName:_0x7793[5]});return _0x8c22x4}
\ No newline at end of file
index c6358cb..918eb3b 100644 (file)
@@ -1,22 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var UserHasMailQueue = sequelize.define('UserHasMailQueue', {
-               penalty: {
-                       type: DataTypes.INTEGER,
-                       defaultValue: 0
-               },
-               queue: {
-                       type: DataTypes.STRING
-               }
-       }, {
-               tableName: 'user_has_mail_queues'
-       });
-
-       return UserHasMailQueue;
-};
+var _0x79dc=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x79dc[0]);module[_0x79dc[1]]=function(_0x4e67x2,_0x4e67x3){var _0x4e67x4=_0x4e67x2[_0x79dc[6]](_0x79dc[2],{penalty:{type:_0x4e67x3[_0x79dc[3]],defaultValue:0},queue:{type:_0x4e67x3[_0x79dc[4]]}},{tableName:_0x79dc[5]});return _0x4e67x4}
\ No newline at end of file
index a3ff23d..d18fd79 100644 (file)
@@ -1,21 +1 @@
-/**
- * 
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-       var UserHasService = sequelize.define('UserHasService', {
-               membername: {
-                       type: DataTypes.STRING
-               }
-       }, {
-               tableName: 'user_has_services',
-               indexes: [{
-                       name: 'membername',
-                       fields: ['membername']
-               }]
-       });
-
-       return UserHasService;
-};
+var _0x8708=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x53\x65\x72\x76\x69\x63\x65","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65\x73","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x8708[0]);module[_0x8708[1]]=function(_0xf711x2,_0xf711x3){var _0xf711x4=_0xf711x2[_0x8708[6]](_0x8708[2],{membername:{type:_0xf711x3[_0x8708[3]]}},{tableName:_0x8708[4],indexes:[{name:_0x8708[5],fields:[_0x8708[5]]}]});return _0xf711x4}
\ No newline at end of file
index a0c38b6..cbb639b 100644 (file)
@@ -1,14 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-
-       var UserHasTeam = sequelize.define('UserHasTeam', {}, {
-               tableName: 'user_has_teams'
-       });
-
-       return UserHasTeam;
-};
+var _0x678f=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x54\x65\x61\x6D","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x678f[0]);module[_0x678f[1]]=function(_0x8274x2,_0x8274x3){var _0x8274x4=_0x8274x2[_0x678f[4]](_0x678f[2],{},{tableName:_0x678f[3]});return _0x8274x4}
\ No newline at end of file
index 24791d4..f304111 100644 (file)
@@ -1,117 +1 @@
-/**
- * Chat Website Model
- */
-
-var crypto = require('crypto');
-
-module.exports = function(sequelize, DataTypes) {
-       var UserHasVoiceQueue = sequelize.define('UserHasVoiceQueue', {
-               logged: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: false
-               },
-               loggedAt: {
-                       type: DataTypes.DATE
-               },
-               ringinuse: {
-                       type: DataTypes.BOOLEAN
-               },
-               penalty: {
-                       type: DataTypes.INTEGER,
-                       defaultValue: 0
-               },
-               stateinterface: {
-                       type: DataTypes.STRING
-               },
-               queue: {
-                       type: DataTypes.STRING
-               },
-               membername: {
-                       type: DataTypes.STRING
-               },
-               interface: {
-                       type: DataTypes.STRING
-               },
-               membership: {
-                       type: DataTypes.STRING
-               },
-               callstaken: {
-                       type: DataTypes.INTEGER
-               },
-               lastcall: {
-                       type: DataTypes.DATE,
-                       set: function(lastcall) {
-                               if (lastcall === '0') {
-                                       this.setDataValue('lastcall', null);
-                               } else {
-                                       this.setDataValue('lastcall', sequelize.fn('FROM_UNIXTIME', lastcall, '%Y-%m-%d %H:%i:%s'));
-                               }
-                       }
-               },
-               status: {
-                       type: DataTypes.INTEGER,
-                       set: function(status) {
-                               this.setDataValue('status', status);
-                               var detail = 'UNKNOWN';
-                               switch (status) {
-                                       case '0':
-                                               detail = 'UNKNOWN';
-                                               break;
-                                       case '1':
-                                               detail = 'NOT_INUSE';
-                                               break;
-                                       case '2':
-                                               detail = 'INUSE';
-                                               break;
-                                       case '3':
-                                               detail = 'BUSY';
-                                               break;
-                                       case '4':
-                                               detail = 'INVALID';
-                                               break;
-                                       case '5':
-                                               detail = 'UNAVAILABLE';
-                                               break;
-                                       case '6':
-                                               detail = 'RINGING';
-                                               break;
-                                       case '7':
-                                               detail = 'RINGINUSE';
-                                               break;
-                                       case '8':
-                                               detail = 'ONHOLD';
-                                               break;
-                               }
-                               this.setDataValue('statusdesc', detail);
-                               this.setDataValue('statusAt', sequelize.fn('NOW'))
-                       },
-               },
-               statusdesc: {
-                       type: DataTypes.STRING
-               },
-               statusAt: {
-                       type: DataTypes.DATE
-               },
-               paused: {
-                       type: DataTypes.BOOLEAN,
-                       defaultValue: false,
-                       set: function(paused) {
-                               this.setDataValue('paused', parseInt(paused, 10) ? true : false);
-                       }
-               },
-               pausedAt: {
-                       type: DataTypes.DATE
-               },
-               reason: {
-                       type: DataTypes.STRING
-               }
-       }, {
-               tableName: 'user_has_voice_queues',
-               indexes: [{
-                       name: 'membername',
-                       fields: ['membername']
-               }]
-       });
-
-       return UserHasVoiceQueue;
-};
+var _0x53a1=["\x63\x72\x79\x70\x74\x6F","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x30","\x6C\x61\x73\x74\x63\x61\x6C\x6C","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x46\x52\x4F\x4D\x5F\x55\x4E\x49\x58\x54\x49\x4D\x45","\x25\x59\x2D\x25\x6D\x2D\x25\x64\x20\x25\x48\x3A\x25\x69\x3A\x25\x73","\x66\x6E","\x73\x74\x61\x74\x75\x73","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x4E\x4F\x54\x5F\x49\x4E\x55\x53\x45","\x31","\x49\x4E\x55\x53\x45","\x32","\x42\x55\x53\x59","\x33","\x49\x4E\x56\x41\x4C\x49\x44","\x34","\x55\x4E\x41\x56\x41\x49\x4C\x41\x42\x4C\x45","\x35","\x52\x49\x4E\x47\x49\x4E\x47","\x36","\x52\x49\x4E\x47\x49\x4E\x55\x53\x45","\x37","\x4F\x4E\x48\x4F\x4C\x44","\x38","\x73\x74\x61\x74\x75\x73\x64\x65\x73\x63","\x73\x74\x61\x74\x75\x73\x41\x74","\x4E\x4F\x57","\x70\x61\x75\x73\x65\x64","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x64\x65\x66\x69\x6E\x65"];var crypto=require(_0x53a1[0]);module[_0x53a1[1]]=function(_0x74c3x2,_0x74c3x3){var _0x74c3x4=_0x74c3x2[_0x53a1[37]](_0x53a1[2],{logged:{type:_0x74c3x3[_0x53a1[3]],defaultValue:false},loggedAt:{type:_0x74c3x3[_0x53a1[4]]},ringinuse:{type:_0x74c3x3[_0x53a1[3]]},penalty:{type:_0x74c3x3[_0x53a1[5]],defaultValue:0},stateinterface:{type:_0x74c3x3[_0x53a1[6]]},queue:{type:_0x74c3x3[_0x53a1[6]]},membername:{type:_0x74c3x3[_0x53a1[6]]},interface:{type:_0x74c3x3[_0x53a1[6]]},membership:{type:_0x74c3x3[_0x53a1[6]]},callstaken:{type:_0x74c3x3[_0x53a1[5]]},lastcall:{type:_0x74c3x3[_0x53a1[4]],set:function(_0x74c3x5){if(_0x74c3x5===_0x53a1[7]){this[_0x53a1[9]](_0x53a1[8],null)}else {this[_0x53a1[9]](_0x53a1[8],_0x74c3x2[_0x53a1[12]](_0x53a1[10],_0x74c3x5,_0x53a1[11]))}}},status:{type:_0x74c3x3[_0x53a1[5]],set:function(_0x74c3x6){this[_0x53a1[9]](_0x53a1[13],_0x74c3x6);var _0x74c3x7=_0x53a1[14];switch(_0x74c3x6){case _0x53a1[7]:_0x74c3x7=_0x53a1[14];break;case _0x53a1[16]:_0x74c3x7=_0x53a1[15];break;case _0x53a1[18]:_0x74c3x7=_0x53a1[17];break;case _0x53a1[20]:_0x74c3x7=_0x53a1[19];break;case _0x53a1[22]:_0x74c3x7=_0x53a1[21];break;case _0x53a1[24]:_0x74c3x7=_0x53a1[23];break;case _0x53a1[26]:_0x74c3x7=_0x53a1[25];break;case _0x53a1[28]:_0x74c3x7=_0x53a1[27];break;case _0x53a1[30]:_0x74c3x7=_0x53a1[29];break};this[_0x53a1[9]](_0x53a1[31],_0x74c3x7);this[_0x53a1[9]](_0x53a1[32],_0x74c3x2[_0x53a1[12]](_0x53a1[33]))}},statusdesc:{type:_0x74c3x3[_0x53a1[6]]},statusAt:{type:_0x74c3x3[_0x53a1[4]]},paused:{type:_0x74c3x3[_0x53a1[3]],defaultValue:false,set:function(_0x74c3x8){this[_0x53a1[9]](_0x53a1[34],parseInt(_0x74c3x8,10)?true:false)}},pausedAt:{type:_0x74c3x3[_0x53a1[4]]},reason:{type:_0x74c3x3[_0x53a1[6]]}},{tableName:_0x53a1[35],indexes:[{name:_0x53a1[36],fields:[_0x53a1[36]]}]});return _0x74c3x4}
\ No newline at end of file
index 68778bc..076667a 100644 (file)
@@ -1,33 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var Variable = sequelize.define('Variable', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true,
-      allowNull: false,
-      validate: {
-        notEmpty: true,
-      },
-    },
-    description: DataTypes.STRING
-  }, {
-    tableName: 'variables',
-    associate: function(models) {
-      Variable.hasMany(models.ZendeskField);
-      Variable.hasMany(models.DeskField);
-      Variable.hasMany(models.SalesforceField);
-      Variable.hasMany(models.FreshdeskField);
-      Variable.hasMany(models.SugarcrmField);
-      Variable.addScope('fields', {
-        include: [{
-          all: true
-        }]
-      });
-    }
-  });
-
-  return Variable;
-
-};
+var _0x78d7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x53\x54\x52\x49\x4E\x47","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x66\x69\x65\x6C\x64\x73","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0x78d7[0];module[_0x78d7[1]]=function(_0x9008x1,_0x9008x2){var _0x9008x3=_0x9008x1[_0x78d7[8]](_0x78d7[2],{name:{type:_0x9008x2[_0x78d7[3]],unique:true,allowNull:false,validate:{notEmpty:true}},description:_0x9008x2[_0x78d7[3]]},{tableName:_0x78d7[4],associate:function(_0x9008x4){_0x9008x3[_0x78d7[5]](_0x9008x4.ZendeskField);_0x9008x3[_0x78d7[5]](_0x9008x4.DeskField);_0x9008x3[_0x78d7[5]](_0x9008x4.SalesforceField);_0x9008x3[_0x78d7[5]](_0x9008x4.FreshdeskField);_0x9008x3[_0x78d7[5]](_0x9008x4.SugarcrmField);_0x9008x3[_0x78d7[7]](_0x78d7[6],{include:[{all:true}]})}});return _0x9008x3}
\ No newline at end of file
index e81e9ab..23365e9 100644 (file)
@@ -1,32 +1 @@
-/**
- * Context Model
- */
-
-module.exports = function(sequelize, DataTypes) {
-
-  var VoiceContext = sequelize.define('VoiceContext', {
-    name: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    description: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    defaultEntry: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: 0
-    }
-  }, {
-    tableName: 'voice_contexts',
-    associate: function(models) {
-      VoiceContext.hasOne(models.VoiceExtension, {
-        onDelete: 'cascade',
-        hooks: true
-      });
-    }
-
-  });
-
-  return VoiceContext;
-};
+var _0xa558=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4F\x6E\x65","\x64\x65\x66\x69\x6E\x65"];module[_0xa558[0]]=function(_0x8c0cx1,_0x8c0cx2){var _0x8c0cx3=_0x8c0cx1[_0xa558[7]](_0xa558[1],{name:{type:_0x8c0cx2[_0xa558[2]],unique:true},description:{type:_0x8c0cx2[_0xa558[2]],allowNull:true},defaultEntry:{type:_0x8c0cx2[_0xa558[3]],defaultValue:0}},{tableName:_0xa558[4],associate:function(_0x8c0cx4){_0x8c0cx3[_0xa558[6]](_0x8c0cx4.VoiceExtension,{onDelete:_0xa558[5],hooks:true})}});return _0x8c0cx3}
\ No newline at end of file
index 6d42a6e..e976f00 100644 (file)
@@ -1,112 +1 @@
-/* jshint indent: 2 */
-var util = require('util');
-var reverseMustache = require('reverse-mustache');
-
-module.exports = function(sequelize, DataTypes) {
-  var VoiceExtension = sequelize.define('VoiceExtension', {
-    context: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      unique: 'compositeIndex',
-      validate: {
-        notEmpty: true,
-        is: /[A-Za-z0-9\.\_]+$/i
-      },
-    },
-    exten: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      unique: 'compositeIndex'
-    },
-    priority: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      defaultValue: '1',
-      unique: 'compositeIndex'
-    },
-    tag: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      defaultValue: '--'
-    },
-    app: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      defaultValue: 'NoOp'
-    },
-    appdata: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      get: function() {
-        // 'this' allows you to access attributes of the instance
-        if (!this.getDataValue('id')) {
-          if (this.getDataValue('app') === 'Dial' && this.getDataValue('type') === 'outbound') {
-            var appdata = reverseMustache({
-              template: 'SIP/{{trunk}}/{{prefix}}${EXTEN:{{cutdigits}}}',
-              content: this.getDataValue('appdata')
-            });
-            return [appdata.trunk, this.getDataValue('callerID') || '', appdata.cutdigits, appdata.prefix];
-          } else {
-            return this.getDataValue('appdata').split(',');
-          }
-        } else {
-          return this.getDataValue('appdata');
-        }
-      },
-    },
-    type: {
-      type: DataTypes.ENUM('inbound', 'outbound', 'internal', 'inbound-fax', 'outbound-fax', 'system', 'any'),
-      allowNull: false,
-    },
-    description: {
-      type: DataTypes.STRING,
-    },
-    interval: {
-      type: DataTypes.STRING,
-    },
-    IntervalId: {
-      type: DataTypes.INTEGER,
-    },
-    isApp: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    },
-    callerID: {
-      type: DataTypes.STRING,
-      allowNull: true
-    },
-    record: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: false
-    }
-  }, {
-    tableName: 'voice_extensions',
-    associate: function(models) {
-      VoiceExtension.hasMany(models.VoiceExtension, {
-        as: 'Applications',
-        onDelete: 'cascade',
-        hooks: true
-      });
-      // SCOPES MANAGEMENT
-      VoiceExtension.addScope('application', {
-        include: [{
-          model: models.VoiceExtension,
-          as: 'Applications',
-          required: false,
-          where: {
-            isApp: true
-          },
-          attributes: ['app', 'interval', 'IntervalId', 'callerID', 'appdata', 'type']
-        }]
-      });
-
-      VoiceExtension.addScope('routes', {
-        where: {
-          VoiceExtensionId: null
-        }
-      });
-    }
-  });
-
-  return VoiceExtension;
-};
+var _0xa914=["\x75\x74\x69\x6C","\x72\x65\x76\x65\x72\x73\x65\x2D\x6D\x75\x73\x74\x61\x63\x68\x65","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6D\x70\x6F\x73\x69\x74\x65\x49\x6E\x64\x65\x78","\x31","\x2D\x2D","\x4E\x6F\x4F\x70","\x69\x64","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x70\x70","\x44\x69\x61\x6C","\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x53\x49\x50\x2F\x7B\x7B\x74\x72\x75\x6E\x6B\x7D\x7D\x2F\x7B\x7B\x70\x72\x65\x66\x69\x78\x7D\x7D\x24\x7B\x45\x58\x54\x45\x4E\x3A\x7B\x7B\x63\x75\x74\x64\x69\x67\x69\x74\x73\x7D\x7D\x7D","\x61\x70\x70\x64\x61\x74\x61","\x74\x72\x75\x6E\x6B","\x63\x61\x6C\x6C\x65\x72\x49\x44","","\x63\x75\x74\x64\x69\x67\x69\x74\x73","\x70\x72\x65\x66\x69\x78","\x2C","\x73\x70\x6C\x69\x74","\x69\x6E\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x73\x79\x73\x74\x65\x6D","\x61\x6E\x79","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x61\x73\x63\x61\x64\x65","\x68\x61\x73\x4D\x61\x6E\x79","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x61\x64\x64\x53\x63\x6F\x70\x65","\x72\x6F\x75\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];var util=require(_0xa914[0]);var reverseMustache=require(_0xa914[1]);module[_0xa914[2]]=function(_0x11f8x3,_0x11f8x4){var _0x11f8x5=_0x11f8x3[_0xa914[41]](_0xa914[3],{context:{type:_0x11f8x4[_0xa914[4]],allowNull:false,unique:_0xa914[5],validate:{notEmpty:true,is:/[A-Za-z0-9\.\_]+$/i}},exten:{type:_0x11f8x4[_0xa914[4]],allowNull:false,unique:_0xa914[5]},priority:{type:_0x11f8x4[_0xa914[4]],allowNull:false,defaultValue:_0xa914[6],unique:_0xa914[5]},tag:{type:_0x11f8x4[_0xa914[4]],allowNull:false,defaultValue:_0xa914[7]},app:{type:_0x11f8x4[_0xa914[4]],allowNull:false,defaultValue:_0xa914[8]},appdata:{type:_0x11f8x4[_0xa914[4]],allowNull:true,get:function(){if(!this[_0xa914[10]](_0xa914[9])){if(this[_0xa914[10]](_0xa914[11])===_0xa914[12]&&this[_0xa914[10]](_0xa914[13])===_0xa914[14]){var _0x11f8x6=reverseMustache({template:_0xa914[15],content:this[_0xa914[10]](_0xa914[16])});return [_0x11f8x6[_0xa914[17]],this[_0xa914[10]](_0xa914[18])||_0xa914[19],_0x11f8x6[_0xa914[20]],_0x11f8x6[_0xa914[21]]]}else {return this[_0xa914[10]](_0xa914[16])[_0xa914[23]](_0xa914[22])}}else {return this[_0xa914[10]](_0xa914[16])}}},type:{type:_0x11f8x4.ENUM(_0xa914[24],_0xa914[14],_0xa914[25],_0xa914[26],_0xa914[27],_0xa914[28],_0xa914[29]),allowNull:false},description:{type:_0x11f8x4[_0xa914[4]]},interval:{type:_0x11f8x4[_0xa914[4]]},IntervalId:{type:_0x11f8x4[_0xa914[30]]},isApp:{type:_0x11f8x4[_0xa914[31]],defaultValue:false},callerID:{type:_0x11f8x4[_0xa914[4]],allowNull:true},record:{type:_0x11f8x4[_0xa914[31]],defaultValue:false}},{tableName:_0xa914[32],associate:function(_0x11f8x7){_0x11f8x5[_0xa914[35]](_0x11f8x7.VoiceExtension,{as:_0xa914[33],onDelete:_0xa914[34],hooks:true});_0x11f8x5[_0xa914[39]](_0xa914[36],{include:[{model:_0x11f8x7[_0xa914[3]],as:_0xa914[33],required:false,where:{isApp:true},attributes:[_0xa914[11],_0xa914[37],_0xa914[38],_0xa914[18],_0xa914[16],_0xa914[13]]}]});_0x11f8x5[_0xa914[39]](_0xa914[40],{where:{VoiceExtensionId:null}})}});return _0x11f8x5}
\ No newline at end of file
index c405ca3..42adf33 100644 (file)
@@ -1,71 +1 @@
-/* jshint indent: 2 */
-
-module.exports = function(sequelize, DataTypes) {
-  var VoiceMusicOnHold = sequelize.define('VoiceMusicOnHold', {
-    name: {
-      type: DataTypes.STRING,
-      allowNull: false,
-      unique: true
-    },
-    mode: {
-      type: DataTypes.ENUM('custom', 'files', 'mp3nb', 'quietmp3nb', 'quietmp3', 'mp3'),
-      allowNull: true,
-      defaultValue: 'files'
-    },
-    directory: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    application: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    digit: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    sort: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'alpha'
-    },
-    format: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'wav'
-    },
-    stamp: {
-      type: 'TIMESTAMP'
-    },
-    defaultEntry: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: 0
-    }
-  }, {
-    tableName: 'voice_musiconhold'
-  });
-
-  VoiceMusicOnHold.beforeUpdate(function(moh) {
-    if (moh.changed('name')) {
-      throw new Error({
-        message: "You can't modify a moh class name"
-      });
-    }
-    if (moh.defaultEntry) {
-      throw new Error({
-        message: "You can't modify a default moh class"
-      });
-    }
-  });
-
-
-  VoiceMusicOnHold.beforeDelete(function(moh) {
-    if (moh.defaultEntry) {
-      throw new Error({
-        message: "You can't delete a default moh class"
-      });
-    }
-  });
-
-  return VoiceMusicOnHold;
-};
+var _0x6458=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x63\x75\x73\x74\x6F\x6D","\x66\x69\x6C\x65\x73","\x6D\x70\x33\x6E\x62","\x71\x75\x69\x65\x74\x6D\x70\x33\x6E\x62","\x71\x75\x69\x65\x74\x6D\x70\x33","\x6D\x70\x33","\x61\x6C\x70\x68\x61","\x77\x61\x76","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50","\x42\x4F\x4F\x4C\x45\x41\x4E","\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x64\x65\x66\x69\x6E\x65","\x6E\x61\x6D\x65","\x63\x68\x61\x6E\x67\x65\x64","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x6D\x6F\x68\x20\x63\x6C\x61\x73\x73\x20\x6E\x61\x6D\x65","\x64\x65\x66\x61\x75\x6C\x74\x45\x6E\x74\x72\x79","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x64\x65\x66\x61\x75\x6C\x74\x20\x6D\x6F\x68\x20\x63\x6C\x61\x73\x73","\x62\x65\x66\x6F\x72\x65\x55\x70\x64\x61\x74\x65","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x64\x65\x6C\x65\x74\x65\x20\x61\x20\x64\x65\x66\x61\x75\x6C\x74\x20\x6D\x6F\x68\x20\x63\x6C\x61\x73\x73","\x62\x65\x66\x6F\x72\x65\x44\x65\x6C\x65\x74\x65"];module[_0x6458[0]]=function(_0x8b80x1,_0x8b80x2){var _0x8b80x3=_0x8b80x1[_0x6458[14]](_0x6458[1],{name:{type:_0x8b80x2[_0x6458[2]],allowNull:false,unique:true},mode:{type:_0x8b80x2.ENUM(_0x6458[3],_0x6458[4],_0x6458[5],_0x6458[6],_0x6458[7],_0x6458[8]),allowNull:true,defaultValue:_0x6458[4]},directory:{type:_0x8b80x2[_0x6458[2]],allowNull:true},application:{type:_0x8b80x2[_0x6458[2]],allowNull:true},digit:{type:_0x8b80x2[_0x6458[2]],allowNull:true},sort:{type:_0x8b80x2[_0x6458[2]],allowNull:true,defaultValue:_0x6458[9]},format:{type:_0x8b80x2[_0x6458[2]],allowNull:true,defaultValue:_0x6458[10]},stamp:{type:_0x6458[11]},defaultEntry:{type:_0x8b80x2[_0x6458[12]],defaultValue:0}},{tableName:_0x6458[13]});_0x8b80x3[_0x6458[20]](function(_0x8b80x4){if(_0x8b80x4[_0x6458[16]](_0x6458[15])){throw  new Error({message:_0x6458[17]})};if(_0x8b80x4[_0x6458[18]]){throw  new Error({message:_0x6458[19]})}});_0x8b80x3[_0x6458[22]](function(_0x8b80x4){if(_0x8b80x4[_0x6458[18]]){throw  new Error({message:_0x6458[21]})}});return _0x8b80x3}
\ No newline at end of file
index 71d35c8..4e06286 100644 (file)
@@ -1,305 +1 @@
-/* jshint indent: 2 */
-
-module.exports = function(sequelize, DataTypes) {
-  var VoiceQueue = sequelize.define('VoiceQueue', {
-    name: {
-      type: DataTypes.STRING,
-      primaryKey: true,
-      unique: true,
-      validate: {
-        notEmpty: true,
-        is: /^[A-Za-z0-9\.\_]+$/i
-      },
-    },
-    musiconhold: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'default'
-    },
-    announce: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: ''
-    },
-    strategy: {
-      type: DataTypes.ENUM('ringall', 'leastrecent', 'fewestcalls', 'random', 'rrmemory', 'linear', 'wrandom', 'rrordered'),
-      allowNull: false,
-      defaultValue: 'ringall'
-    },
-    servicelevel: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: 0
-    },
-    context: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: null
-    },
-    penaltymemberslimit: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    timeout: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: 0
-    },
-    retry: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: 0
-    },
-    timeoutpriority: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    weight: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: 0
-    },
-    wrapuptime: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: 0
-    },
-    autofill: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    autopause: {
-      type: DataTypes.ENUM('yes', 'no', 'all'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    autopausedelay: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    autopausebusy: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    autopauseunavail: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    maxlen: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: 0
-    },
-    setinterfacevar: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    setqueueentryvar: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defautValue: 'no'
-    },
-    setqueuevar: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    membermacro: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    membergosub: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    announce_frequency: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: 0
-    },
-    min_announce_frequency: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: 0
-    },
-    periodic_announce_frequency: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: 0
-    },
-    random_periodic_announce: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    relative_periodic_announce: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    announce_holdtime: {
-      type: DataTypes.ENUM('yes', 'no', 'once'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    announce_position: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    announce_to_first_user: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-    },
-    announce_position_limit: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-    },
-    announce_round_seconds: {
-      type: DataTypes.ENUM('0', '5', '10', '15', '20', '30'),
-      allowNull: true,
-      defaultValue: '0'
-    },
-    monitor_format: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: ''
-    },
-    monitor_type: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    queue_youarenext: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: null
-    },
-    queue_thereare: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: null
-    },
-    queue_callswaiting: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: null
-    },
-    queue_holdtime: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: null
-    },
-    queue_minute: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: null
-    },
-    queue_minutes: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: null
-    },
-    queue_seconds: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: null
-    },
-    queue_thankyou: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: null
-    },
-    queue_reporthold: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    queue_quantity1: {
-      type: DataTypes.STRING,
-      allowNull: true
-    },
-    queue_quantity2: {
-      type: DataTypes.STRING,
-      allowNull: true
-    },
-    queue_periodic_announce: {
-      type: DataTypes.STRING,
-      allowNull: true
-    },
-    queue_less_than: {
-      type: DataTypes.STRING,
-      allowNull: true
-    },
-    periodic_announce: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: ''
-    },
-    joinempty: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'yes'
-    },
-    leavewhenempty: {
-      type: DataTypes.STRING,
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    reportholdtime: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    ringinuse: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    memberdelay: {
-      type: DataTypes.INTEGER(11),
-      allowNull: true,
-      defaultValue: 0
-    },
-    timeoutrestart: {
-      type: DataTypes.ENUM('yes', 'no'),
-      allowNull: true,
-      defaultValue: 'no'
-    },
-    defaultrule: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    description: {
-      type: DataTypes.STRING,
-      allowNull: true,
-    },
-    acw: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: 0
-    },
-    acwTimeout: {
-      type: DataTypes.INTEGER(11),
-      defaultValue: 10
-    }
-  }, {
-    tableName: 'voice_queues',
-    associate: function(models) {
-      VoiceQueue.belongsToMany(models.User, {
-        through: models.UserHasVoiceQueue,
-        foreignKey: 'queue',
-        required: false
-      });
-    }
-  });
-
-  VoiceQueue.beforeUpdate(function(updatedQueue) {
-    if (updatedQueue.changed('name')) {
-      throw new Error("You can't modify a queue name");
-    }
-  });
-
-  return VoiceQueue;
-};
+var _0xb480=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x53\x54\x52\x49\x4E\x47","\x64\x65\x66\x61\x75\x6C\x74","","\x72\x69\x6E\x67\x61\x6C\x6C","\x6C\x65\x61\x73\x74\x72\x65\x63\x65\x6E\x74","\x66\x65\x77\x65\x73\x74\x63\x61\x6C\x6C\x73","\x72\x61\x6E\x64\x6F\x6D","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x6C\x69\x6E\x65\x61\x72","\x77\x72\x61\x6E\x64\x6F\x6D","\x72\x72\x6F\x72\x64\x65\x72\x65\x64","\x79\x65\x73","\x6E\x6F","\x61\x6C\x6C","\x6F\x6E\x63\x65","\x30","\x35","\x31\x30","\x31\x35","\x32\x30","\x33\x30","\x42\x4F\x4F\x4C\x45\x41\x4E","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x55\x73\x65\x72\x48\x61\x73\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x71\x75\x65\x75\x65","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65","\x6E\x61\x6D\x65","\x63\x68\x61\x6E\x67\x65\x64","\x59\x6F\x75\x20\x63\x61\x6E\x27\x74\x20\x6D\x6F\x64\x69\x66\x79\x20\x61\x20\x71\x75\x65\x75\x65\x20\x6E\x61\x6D\x65","\x62\x65\x66\x6F\x72\x65\x55\x70\x64\x61\x74\x65"];module[_0xb480[0]]=function(_0x6039x1,_0x6039x2){var _0x6039x3=_0x6039x1[_0xb480[28]](_0xb480[1],{name:{type:_0x6039x2[_0xb480[2]],primaryKey:true,unique:true,validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},musiconhold:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:_0xb480[3]},announce:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:_0xb480[4]},strategy:{type:_0x6039x2.ENUM(_0xb480[5],_0xb480[6],_0xb480[7],_0xb480[8],_0xb480[9],_0xb480[10],_0xb480[11],_0xb480[12]),allowNull:false,defaultValue:_0xb480[5]},servicelevel:{type:_0x6039x2.INTEGER(11),allowNull:true,defaultValue:0},context:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:null},penaltymemberslimit:{type:_0x6039x2.INTEGER(11),allowNull:true},timeout:{type:_0x6039x2.INTEGER(11),allowNull:true,defaultValue:0},retry:{type:_0x6039x2.INTEGER(11),allowNull:true,defaultValue:0},timeoutpriority:{type:_0x6039x2[_0xb480[2]],allowNull:true},weight:{type:_0x6039x2.INTEGER(11),allowNull:true,defaultValue:0},wrapuptime:{type:_0x6039x2.INTEGER(11),allowNull:true,defaultValue:0},autofill:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14]),allowNull:true,defaultValue:_0xb480[13]},autopause:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14],_0xb480[15]),allowNull:true,defaultValue:_0xb480[14]},autopausedelay:{type:_0x6039x2.INTEGER(11),allowNull:true},autopausebusy:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14]),allowNull:true,defaultValue:_0xb480[14]},autopauseunavail:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14]),allowNull:true,defaultValue:_0xb480[14]},maxlen:{type:_0x6039x2.INTEGER(11),allowNull:true,defaultValue:0},setinterfacevar:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14]),allowNull:true,defaultValue:_0xb480[14]},setqueueentryvar:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14]),allowNull:true,defautValue:_0xb480[14]},setqueuevar:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14]),allowNull:true,defaultValue:_0xb480[14]},membermacro:{type:_0x6039x2[_0xb480[2]],allowNull:true},membergosub:{type:_0x6039x2[_0xb480[2]],allowNull:true},announce_frequency:{type:_0x6039x2.INTEGER(11),allowNull:true,defaultValue:0},min_announce_frequency:{type:_0x6039x2.INTEGER(11),allowNull:true,defaultValue:0},periodic_announce_frequency:{type:_0x6039x2.INTEGER(11),allowNull:true,defaultValue:0},random_periodic_announce:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14]),allowNull:true,defaultValue:_0xb480[14]},relative_periodic_announce:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14]),allowNull:true,defaultValue:_0xb480[13]},announce_holdtime:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14],_0xb480[16]),allowNull:true,defaultValue:_0xb480[14]},announce_position:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:_0xb480[14]},announce_to_first_user:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14]),allowNull:true},announce_position_limit:{type:_0x6039x2.INTEGER(11),allowNull:true},announce_round_seconds:{type:_0x6039x2.ENUM(_0xb480[17],_0xb480[18],_0xb480[19],_0xb480[20],_0xb480[21],_0xb480[22]),allowNull:true,defaultValue:_0xb480[17]},monitor_format:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:_0xb480[4]},monitor_type:{type:_0x6039x2[_0xb480[2]],allowNull:true},queue_youarenext:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:null},queue_thereare:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:null},queue_callswaiting:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:null},queue_holdtime:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:null},queue_minute:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:null},queue_minutes:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:null},queue_seconds:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:null},queue_thankyou:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:null},queue_reporthold:{type:_0x6039x2[_0xb480[2]],allowNull:true},queue_quantity1:{type:_0x6039x2[_0xb480[2]],allowNull:true},queue_quantity2:{type:_0x6039x2[_0xb480[2]],allowNull:true},queue_periodic_announce:{type:_0x6039x2[_0xb480[2]],allowNull:true},queue_less_than:{type:_0x6039x2[_0xb480[2]],allowNull:true},periodic_announce:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:_0xb480[4]},joinempty:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:_0xb480[13]},leavewhenempty:{type:_0x6039x2[_0xb480[2]],allowNull:true,defaultValue:_0xb480[14]},reportholdtime:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14]),allowNull:true,defaultValue:_0xb480[14]},ringinuse:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14]),allowNull:true,defaultValue:_0xb480[14]},memberdelay:{type:_0x6039x2.INTEGER(11),allowNull:true,defaultValue:0},timeoutrestart:{type:_0x6039x2.ENUM(_0xb480[13],_0xb480[14]),allowNull:true,defaultValue:_0xb480[14]},defaultrule:{type:_0x6039x2[_0xb480[2]],allowNull:true},description:{type:_0x6039x2[_0xb480[2]],allowNull:true},acw:{type:_0x6039x2[_0xb480[23]],defaultValue:0},acwTimeout:{type:_0x6039x2.INTEGER(11),defaultValue:10}},{tableName:_0xb480[24],associate:function(_0x6039x4){_0x6039x3[_0xb480[27]](_0x6039x4.User,{through:_0x6039x4[_0xb480[25]],foreignKey:_0xb480[26],required:false})}});_0x6039x3[_0xb480[32]](function(_0x6039x5){if(_0x6039x5[_0xb480[30]](_0xb480[29])){throw  new Error(_0xb480[31])}});return _0x6039x3}
\ No newline at end of file
index 736aa24..2c65f35 100644 (file)
@@ -1,75 +1 @@
-/* jshint indent: 2 */
-var moment = require('moment');
-
-module.exports = function(sequelize, DataTypes) {
-  var VoiceRecording = sequelize.define('VoiceRecording', {
-    uniqueid: {
-      type: DataTypes.STRING,
-      primaryKey: true
-    },
-    channel: {
-      type: DataTypes.STRING
-    },
-    calleridnum: {
-      type: DataTypes.STRING
-    },
-    calleridname: {
-      type: DataTypes.STRING
-    },
-    connectedlinenum: {
-      type: DataTypes.STRING
-    },
-    connectedlinename: {
-      type: DataTypes.STRING
-    },
-    language: {
-      type: DataTypes.STRING
-    },
-    accountcode: {
-      type: DataTypes.STRING
-    },
-    context: {
-      type: DataTypes.STRING
-    },
-    exten: {
-      type: DataTypes.STRING
-    },
-    value: {
-      type: DataTypes.STRING
-    },
-    type: {
-      type: DataTypes.STRING
-    },
-    rating: {
-      type: DataTypes.INTEGER,
-      defaultValue: 0,
-      validate: {
-        max: 5,
-        min: 0
-      }
-    },
-    createdAt: {
-      type: DataTypes.DATE,
-      get: function() {
-        // 'this' allows you to access attributes of the instance
-        return moment(this.getDataValue('agentconnectAt')).format("MM-DD-YYYY HH:mm");
-      }
-    },
-    updatedAt: {
-      type: DataTypes.DATE,
-      get: function() {
-        // 'this' allows you to access attributes of the instance
-        return moment(this.getDataValue('agentconnectAt')).format("MM-DD-YYYY HH:mm");
-      }
-    }
-  }, {
-    tableName: 'voice_recordings',
-    associate: function(models) {
-      // VoiceRecording.belongsTo(models.ReportCall, {
-      //   foreignKey: 'uniqueid'
-      // });
-    }
-  });
-
-  return VoiceRecording;
-};
+var _0x35f7=["\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x4D\x4D\x2D\x44\x44\x2D\x59\x59\x59\x59\x20\x48\x48\x3A\x6D\x6D","\x66\x6F\x72\x6D\x61\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];var moment=require(_0x35f7[0]);module[_0x35f7[1]]=function(_0x1daax2,_0x1daax3){var _0x1daax4=_0x1daax2[_0x35f7[11]](_0x35f7[2],{uniqueid:{type:_0x1daax3[_0x35f7[3]],primaryKey:true},channel:{type:_0x1daax3[_0x35f7[3]]},calleridnum:{type:_0x1daax3[_0x35f7[3]]},calleridname:{type:_0x1daax3[_0x35f7[3]]},connectedlinenum:{type:_0x1daax3[_0x35f7[3]]},connectedlinename:{type:_0x1daax3[_0x35f7[3]]},language:{type:_0x1daax3[_0x35f7[3]]},accountcode:{type:_0x1daax3[_0x35f7[3]]},context:{type:_0x1daax3[_0x35f7[3]]},exten:{type:_0x1daax3[_0x35f7[3]]},value:{type:_0x1daax3[_0x35f7[3]]},type:{type:_0x1daax3[_0x35f7[3]]},rating:{type:_0x1daax3[_0x35f7[4]],defaultValue:0,validate:{max:5,min:0}},createdAt:{type:_0x1daax3[_0x35f7[5]],get:function(){return moment(this[_0x35f7[9]](_0x35f7[8]))[_0x35f7[7]](_0x35f7[6])}},updatedAt:{type:_0x1daax3[_0x35f7[5]],get:function(){return moment(this[_0x35f7[9]](_0x35f7[8]))[_0x35f7[7]](_0x35f7[6])}}},{tableName:_0x35f7[10],associate:function(_0x1daax5){}});return _0x1daax4}
\ No newline at end of file
index f814f4b..bc212d3 100644 (file)
@@ -1,144 +1 @@
-/* jshint indent: 2 */
-
-module.exports = function(sequelize, DataTypes) {
-  var VoiceVoicemail = sequelize.define('VoiceVoicemail', {
-    uniqueid: {
-      type: DataTypes.INTEGER(4),
-      primaryKey: true,
-      allowNull: false,
-      autoIncrement: true
-    },
-    customer_id: {
-      type: DataTypes.STRING,
-    },
-    context: {
-      type: DataTypes.STRING,
-      defaultValue: 'from-voicemail',
-      unique: 'contest_mailbox'
-    },
-    mailbox: {
-      type: DataTypes.STRING,
-      defaultValue: '',
-      allowNull: false,
-      unique: 'contest_mailbox'
-    },
-    password: {
-      type: DataTypes.STRING,
-    },
-    fullname: {
-      type: DataTypes.STRING,
-    },
-    email: {
-      type: DataTypes.STRING,
-    },
-    pager: {
-      type: DataTypes.STRING,
-    },
-    tz: {
-      type: DataTypes.STRING,
-      defaultValue: 'central'
-    },
-    attach: {
-      type: DataTypes.ENUM('yes', 'no'),
-      defaultValue: 'yes',
-      allowNull: false
-    },
-    saycid: {
-      type: DataTypes.ENUM('yes', 'no'),
-      defaultValue: 'yes',
-      allowNull: false
-    },
-    dialout: {
-      type: DataTypes.STRING,
-    },
-    callback: {
-      type: DataTypes.STRING,
-    },
-    review: {
-      type: DataTypes.ENUM('yes', 'no'),
-      defaultValue: 'no',
-      allowNull: false
-    },
-    operator: {
-      type: DataTypes.ENUM('yes', 'no'),
-      defaultValue: 'no',
-      allowNull: false
-    },
-    envelope: {
-      type: DataTypes.ENUM('yes', 'no'),
-      defaultValue: 'no',
-      allowNull: false
-    },
-    sayduration: {
-      type: DataTypes.ENUM('yes', 'no'),
-      defaultValue: 'no',
-      allowNull: false
-    },
-    saydurationm: {
-      type: 'TINYINT(4)',
-      defaultValue: 1,
-      allowNull: false
-    },
-    sendvoicemail: {
-      type: DataTypes.ENUM('yes', 'no'),
-      defaultValue: 'no',
-      allowNull: false
-    },
-    'delete': {
-      type: DataTypes.ENUM('yes', 'no'),
-      defaultValue: 'no',
-      allowNull: false
-    },
-    nextaftercmd: {
-      type: DataTypes.ENUM('yes', 'no'),
-      defaultValue: 'yes',
-      allowNull: false
-    },
-    forcename: {
-      type: DataTypes.ENUM('yes', 'no'),
-      defaultValue: 'no',
-      allowNull: false
-    },
-    forcegreetings: {
-      type: DataTypes.ENUM('yes', 'no'),
-      defaultValue: 'no',
-      allowNull: false
-    },
-    hidefromdir: {
-      type: DataTypes.ENUM('yes', 'no'),
-      defaultValue: 'yes',
-      allowNull: false
-    },
-    stamp: {
-      type: 'TIMESTAMP'
-    },
-    emailsubject: {
-      type: DataTypes.STRING,
-    },
-    emailbody: {
-      type: DataTypes.STRING,
-    },
-    name: {
-      type: DataTypes.STRING,
-    },
-    maxsecs: {
-      type: DataTypes.INTEGER(255),
-      defaultValue: 180,
-      allowNull: false
-    },
-    maxmsg: {
-      type: DataTypes.INTEGER(255),
-      defaultValue: 100,
-      allowNull: false
-    }
-
-  }, {
-    tableName: 'voice_voicemail',
-    indexes: [{
-      name: 'mailbox_context',
-      fields: ['mailbox', 'context']
-    }]
-  });
-
-  return VoiceVoicemail;
-};
+var _0x15ea=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x53\x54\x52\x49\x4E\x47","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x6F\x6E\x74\x65\x73\x74\x5F\x6D\x61\x69\x6C\x62\x6F\x78","","\x63\x65\x6E\x74\x72\x61\x6C","\x79\x65\x73","\x6E\x6F","\x54\x49\x4E\x59\x49\x4E\x54\x28\x34\x29","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x6D\x61\x69\x6C\x62\x6F\x78\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x6D\x61\x69\x6C\x62\x6F\x78","\x63\x6F\x6E\x74\x65\x78\x74","\x64\x65\x66\x69\x6E\x65"];module[_0x15ea[0]]=function(_0x2924x1,_0x2924x2){var _0x2924x3=_0x2924x1[_0x15ea[15]](_0x15ea[1],{uniqueid:{type:_0x2924x2.INTEGER(4),primaryKey:true,allowNull:false,autoIncrement:true},customer_id:{type:_0x2924x2[_0x15ea[2]]},context:{type:_0x2924x2[_0x15ea[2]],defaultValue:_0x15ea[3],unique:_0x15ea[4]},mailbox:{type:_0x2924x2[_0x15ea[2]],defaultValue:_0x15ea[5],allowNull:false,unique:_0x15ea[4]},password:{type:_0x2924x2[_0x15ea[2]]},fullname:{type:_0x2924x2[_0x15ea[2]]},email:{type:_0x2924x2[_0x15ea[2]]},pager:{type:_0x2924x2[_0x15ea[2]]},tz:{type:_0x2924x2[_0x15ea[2]],defaultValue:_0x15ea[6]},attach:{type:_0x2924x2.ENUM(_0x15ea[7],_0x15ea[8]),defaultValue:_0x15ea[7],allowNull:false},saycid:{type:_0x2924x2.ENUM(_0x15ea[7],_0x15ea[8]),defaultValue:_0x15ea[7],allowNull:false},dialout:{type:_0x2924x2[_0x15ea[2]]},callback:{type:_0x2924x2[_0x15ea[2]]},review:{type:_0x2924x2.ENUM(_0x15ea[7],_0x15ea[8]),defaultValue:_0x15ea[8],allowNull:false},operator:{type:_0x2924x2.ENUM(_0x15ea[7],_0x15ea[8]),defaultValue:_0x15ea[8],allowNull:false},envelope:{type:_0x2924x2.ENUM(_0x15ea[7],_0x15ea[8]),defaultValue:_0x15ea[8],allowNull:false},sayduration:{type:_0x2924x2.ENUM(_0x15ea[7],_0x15ea[8]),defaultValue:_0x15ea[8],allowNull:false},saydurationm:{type:_0x15ea[9],defaultValue:1,allowNull:false},sendvoicemail:{type:_0x2924x2.ENUM(_0x15ea[7],_0x15ea[8]),defaultValue:_0x15ea[8],allowNull:false},"\x64\x65\x6C\x65\x74\x65":{type:_0x2924x2.ENUM(_0x15ea[7],_0x15ea[8]),defaultValue:_0x15ea[8],allowNull:false},nextaftercmd:{type:_0x2924x2.ENUM(_0x15ea[7],_0x15ea[8]),defaultValue:_0x15ea[7],allowNull:false},forcename:{type:_0x2924x2.ENUM(_0x15ea[7],_0x15ea[8]),defaultValue:_0x15ea[8],allowNull:false},forcegreetings:{type:_0x2924x2.ENUM(_0x15ea[7],_0x15ea[8]),defaultValue:_0x15ea[8],allowNull:false},hidefromdir:{type:_0x2924x2.ENUM(_0x15ea[7],_0x15ea[8]),defaultValue:_0x15ea[7],allowNull:false},stamp:{type:_0x15ea[10]},emailsubject:{type:_0x2924x2[_0x15ea[2]]},emailbody:{type:_0x2924x2[_0x15ea[2]]},name:{type:_0x2924x2[_0x15ea[2]]},maxsecs:{type:_0x2924x2.INTEGER(255),defaultValue:180,allowNull:false},maxmsg:{type:_0x2924x2.INTEGER(255),defaultValue:100,allowNull:false}},{tableName:_0x15ea[11],indexes:[{name:_0x15ea[12],fields:[_0x15ea[13],_0x15ea[14]]}]});return _0x2924x3}
\ No newline at end of file
index fbfc691..f064b6e 100644 (file)
@@ -1,83 +1 @@
-/* jshint indent: 2 */
-
-module.exports = function(sequelize, DataTypes) {
-  var VoiceVoicemailMessages = sequelize.define('VoiceVoicemailMessages', {
-    msgnum: {
-      type: DataTypes.INTEGER(11),
-      defaultValue: 0,
-      allowNull: false
-    },
-    dir: {
-      type: DataTypes.STRING,
-      defaultValue: ''
-    },
-    context: {
-      type: DataTypes.STRING,
-      defaultValue: ''
-    },
-    macrocontext: {
-      type: DataTypes.STRING,
-      defaultValue: ''
-    },
-    callerid: {
-      type: DataTypes.STRING,
-      defaultValue: ''
-    },
-    origtime: {
-      type: DataTypes.STRING,
-      defaultValue: ''
-    },
-    duration: {
-      type: DataTypes.STRING,
-      defaultValue: ''
-    },
-    mailboxuser: {
-      type: DataTypes.STRING,
-      defaultValue: ''
-    },
-    mailboxcontext: {
-      type: DataTypes.STRING,
-      defaultValue: ''
-    },
-    recording: {
-      type: DataTypes.BLOB('long'),
-      defaultValue: null
-    },
-    flag: {
-      type: DataTypes.STRING,
-      defaultValue: ''
-    },
-    msg_id: {
-      type: DataTypes.STRING,
-      defaultValue: ''
-    },
-    stamp: {
-      type: 'TIMESTAMP',
-      allowNull: false
-    }
-  }, {
-    tableName: 'voice_voicemail_messages',
-    associate: function(models) {
-      VoiceVoicemailMessages.addScope('mailbox', function(query) {
-        var scope = {
-          where: {}
-        };
-        if (query.context && query.mailbox) {
-          where: {
-            scope.where.mailboxcontext = query.context;
-            scope.where.mailboxuser = query.mailbox;
-          }
-          delete query.context;
-          delete query.mailbox;
-        }
-        return scope;
-      });
-    },
-    indexes: [{
-      name: 'dir',
-      fields: ['dir']
-    }]
-  });
-
-  return VoiceVoicemailMessages;
-};
+var _0xf54d=["\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x56\x6F\x69\x63\x65\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x73","\x53\x54\x52\x49\x4E\x47","","\x6C\x6F\x6E\x67","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x6D\x61\x69\x6C\x62\x6F\x78","\x63\x6F\x6E\x74\x65\x78\x74","\x6D\x61\x69\x6C\x62\x6F\x78\x63\x6F\x6E\x74\x65\x78\x74","\x77\x68\x65\x72\x65","\x6D\x61\x69\x6C\x62\x6F\x78\x75\x73\x65\x72","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x69\x72","\x64\x65\x66\x69\x6E\x65"];module[_0xf54d[0]]=function(_0x93a3x1,_0x93a3x2){var _0x93a3x3=_0x93a3x1[_0xf54d[14]](_0xf54d[1],{msgnum:{type:_0x93a3x2.INTEGER(11),defaultValue:0,allowNull:false},dir:{type:_0x93a3x2[_0xf54d[2]],defaultValue:_0xf54d[3]},context:{type:_0x93a3x2[_0xf54d[2]],defaultValue:_0xf54d[3]},macrocontext:{type:_0x93a3x2[_0xf54d[2]],defaultValue:_0xf54d[3]},callerid:{type:_0x93a3x2[_0xf54d[2]],defaultValue:_0xf54d[3]},origtime:{type:_0x93a3x2[_0xf54d[2]],defaultValue:_0xf54d[3]},duration:{type:_0x93a3x2[_0xf54d[2]],defaultValue:_0xf54d[3]},mailboxuser:{type:_0x93a3x2[_0xf54d[2]],defaultValue:_0xf54d[3]},mailboxcontext:{type:_0x93a3x2[_0xf54d[2]],defaultValue:_0xf54d[3]},recording:{type:_0x93a3x2.BLOB(_0xf54d[4]),defaultValue:null},flag:{type:_0x93a3x2[_0xf54d[2]],defaultValue:_0xf54d[3]},msg_id:{type:_0x93a3x2[_0xf54d[2]],defaultValue:_0xf54d[3]},stamp:{type:_0xf54d[5],allowNull:false}},{tableName:_0xf54d[6],associate:function(_0x93a3x4){_0x93a3x3[_0xf54d[12]](_0xf54d[7],function(_0x93a3x5){var _0x93a3x6={where:{}};if(_0x93a3x5[_0xf54d[8]]&&_0x93a3x5[_0xf54d[7]]){where:{_0x93a3x6[_0xf54d[10]][_0xf54d[9]]=_0x93a3x5[_0xf54d[8]];_0x93a3x6[_0xf54d[10]][_0xf54d[11]]=_0x93a3x5[_0xf54d[7]]}delete _0x93a3x5[_0xf54d[8]];delete _0x93a3x5[_0xf54d[7]]};return _0x93a3x6})},indexes:[{name:_0xf54d[13],fields:[_0xf54d[13]]}]});return _0x93a3x3}
\ No newline at end of file
index 899cf38..e87ef45 100644 (file)
@@ -1,42 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ZendeskAccount = sequelize.define('ZendeskAccount', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING,
-    username: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    password: DataTypes.STRING,
-    token: DataTypes.STRING,
-    remoteUri: {
-      type: DataTypes.STRING,
-      unique: true
-    },
-    authType: {
-      type: DataTypes.ENUM('password', 'token'),
-      defaultValue: 'password'
-    }
-  }, {
-    tableName: 'zendesk_accounts',
-    associate: function(models) {
-      ZendeskAccount.hasMany(models.ZendeskConfiguration, {
-        as: 'Configurations',
-        foreignKey: 'AccountId'
-      });
-      ZendeskAccount.addScope('configurations', {
-        include: [{
-          model: models.ZendeskConfiguration,
-          as: 'Configurations',
-          required: false,
-          attributes: ['id', 'name']
-        }]
-      });
-    }
-  });
-
-  return ZendeskAccount;
-
-};
+var _0x9629=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x54\x52\x49\x4E\x47","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x64","\x6E\x61\x6D\x65","\x61\x64\x64\x53\x63\x6F\x70\x65","\x64\x65\x66\x69\x6E\x65"];_0x9629[0];module[_0x9629[1]]=function(_0x6045x1,_0x6045x2){var _0x6045x3=_0x6045x1[_0x9629[15]](_0x9629[2],{name:_0x6045x2[_0x9629[3]],description:_0x6045x2[_0x9629[3]],username:{type:_0x6045x2[_0x9629[3]],unique:true},password:_0x6045x2[_0x9629[3]],token:_0x6045x2[_0x9629[3]],remoteUri:{type:_0x6045x2[_0x9629[3]],unique:true},authType:{type:_0x6045x2.ENUM(_0x9629[4],_0x9629[5]),defaultValue:_0x9629[4]}},{tableName:_0x9629[6],associate:function(_0x6045x4){_0x6045x3[_0x9629[9]](_0x6045x4.ZendeskConfiguration,{as:_0x9629[7],foreignKey:_0x9629[8]});_0x6045x3[_0x9629[14]](_0x9629[10],{include:[{model:_0x6045x4[_0x9629[11]],as:_0x9629[7],required:false,attributes:[_0x9629[12],_0x9629[13]]}]})}});return _0x6045x3}
\ No newline at end of file
index 9363273..bc3ddfa 100644 (file)
@@ -1,44 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ZendeskConfiguration = sequelize.define('ZendeskConfiguration', {
-    name: DataTypes.STRING,
-    description: DataTypes.STRING
-  }, {
-    tableName: 'zendesk_configurations',
-    associate: function(models) {
-      ZendeskConfiguration.belongsTo(models.ZendeskAccount, {
-        foreignKey: 'AccountId'
-      });
-      ZendeskConfiguration.addScope('account', function(AccountId) {
-        return {
-          where: {
-            AccountId: AccountId
-          },
-          include: [{
-            all: true
-          }]
-        }
-      });
-      ZendeskConfiguration.hasMany(models.ZendeskField, {
-        as: 'Subject',
-        foreignKey: 'SubjectId'
-      });
-      ZendeskConfiguration.hasMany(models.ZendeskField, {
-        as: 'Description',
-        foreignKey: 'DescriptionId'
-      });
-      ZendeskConfiguration.hasMany(models.ZendeskField, {
-        as: 'Field',
-        foreignKey: 'FieldId'
-      });
-      ZendeskConfiguration.belongsToMany(models.Tag, {
-        through: 'zendesk_configuration_has_tags'
-      });
-    }
-  });
-
-  return ZendeskConfiguration;
-
-};
+var _0xb3da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x53\x54\x52\x49\x4E\x47","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x61\x63\x63\x6F\x75\x6E\x74","\x61\x64\x64\x53\x63\x6F\x70\x65","\x53\x75\x62\x6A\x65\x63\x74","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x68\x61\x73\x4D\x61\x6E\x79","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64","\x46\x69\x65\x6C\x64\x49\x64","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x5F\x68\x61\x73\x5F\x74\x61\x67\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x64\x65\x66\x69\x6E\x65"];_0xb3da[0];module[_0xb3da[1]]=function(_0xa361x1,_0xa361x2){var _0xa361x3=_0xa361x1[_0xb3da[18]](_0xb3da[2],{name:_0xa361x2[_0xb3da[3]],description:_0xa361x2[_0xb3da[3]]},{tableName:_0xb3da[4],associate:function(_0xa361x4){_0xa361x3[_0xb3da[6]](_0xa361x4.ZendeskAccount,{foreignKey:_0xb3da[5]});_0xa361x3[_0xb3da[8]](_0xb3da[7],function(_0xa361x5){return {where:{AccountId:_0xa361x5},include:[{all:true}]}});_0xa361x3[_0xb3da[11]](_0xa361x4.ZendeskField,{as:_0xb3da[9],foreignKey:_0xb3da[10]});_0xa361x3[_0xb3da[11]](_0xa361x4.ZendeskField,{as:_0xb3da[12],foreignKey:_0xb3da[13]});_0xa361x3[_0xb3da[11]](_0xa361x4.ZendeskField,{as:_0xb3da[14],foreignKey:_0xb3da[15]});_0xa361x3[_0xb3da[17]](_0xa361x4.Tag,{through:_0xb3da[16]})}});return _0xa361x3}
\ No newline at end of file
index 278c7fa..037937d 100644 (file)
@@ -1,32 +1 @@
-'use strict';
-
-module.exports = function(sequelize, DataTypes) {
-
-  var ZendeskField = sequelize.define('ZendeskField', {
-    type: {
-      type: DataTypes.ENUM('string', 'variable', 'customVariable', 'keyValue'),
-      defaultValue: 'string'
-    },
-    content: DataTypes.STRING,
-    key: DataTypes.STRING,
-    keyType: {
-      type: DataTypes.ENUM('string', 'variable', 'customVariable')
-    },
-    keyContent: DataTypes.STRING,
-    idField: DataTypes.INTEGER,
-    nameField: DataTypes.STRING,
-    customField: {
-      type: DataTypes.BOOLEAN,
-      defaultValue: true
-    },
-    variableName: DataTypes.STRING
-  }, {
-    tableName: 'zendesk_fields',
-    associate: function(models) {
-      ZendeskField.belongsTo(models.Variable);
-    }
-  });
-
-  return ZendeskField;
-
-};
+var _0x37da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x64\x65\x66\x69\x6E\x65"];_0x37da[0];module[_0x37da[1]]=function(_0x5edbx1,_0x5edbx2){var _0x5edbx3=_0x5edbx1[_0x37da[12]](_0x37da[2],{type:{type:_0x5edbx2.ENUM(_0x37da[3],_0x37da[4],_0x37da[5],_0x37da[6]),defaultValue:_0x37da[3]},content:_0x5edbx2[_0x37da[7]],key:_0x5edbx2[_0x37da[7]],keyType:{type:_0x5edbx2.ENUM(_0x37da[3],_0x37da[4],_0x37da[5])},keyContent:_0x5edbx2[_0x37da[7]],idField:_0x5edbx2[_0x37da[8]],nameField:_0x5edbx2[_0x37da[7]],customField:{type:_0x5edbx2[_0x37da[9]],defaultValue:true},variableName:_0x5edbx2[_0x37da[7]]},{tableName:_0x37da[10],associate:function(_0x5edbx4){_0x5edbx3[_0x37da[11]](_0x5edbx4.Variable)}});return _0x5edbx3}
\ No newline at end of file
index 2b92984..579d1ab 100644 (file)
@@ -1,149 +1 @@
-/**
- * Main application routes
- */
-
-'use strict';
-
-var config = require('./config/environment');
-var errors = require('./components/errors');
-var path = require('path');
-var moment = require('moment');
-
-module.exports = function(app) {
-  var env = app.get('env');
-
-  // Insert routes below
-  app.use('/api/chat/proactives', require('./api/chat_proactive_action'));
-
-  app.use('/api/chat/websites/fields', require('./api/chat_websites_field'));
-  app.use('/api/answers', require('./api/canned_answer'));
-  app.use('/api/actions', require('./api/action'));
-  app.use('/api/pauses', require('./api/pause'));
-  app.use('/api/voice/recordings', require('./api/voice_recording'));
-  app.use('/api/jscripty/projects', require('./api/jscripty_project'));
-  app.use('/api/telephones', require('./api/telephone'));
-  app.use('/api/licenses', require('./api/license'));
-  app.use('/api/sugarcrm/fields', require('./api/sugarcrm_field'));
-  app.use('/api/sugarcrm/configurations', require('./api/sugarcrm_configuration'));
-  app.use('/api/sugarcrm/accounts', require('./api/sugarcrm_account'));
-  app.use('/api/freshdesk/fields', require('./api/freshdesk_field'));
-  app.use('/api/freshdesk/configurations', require('./api/freshdesk_configuration'));
-  app.use('/api/freshdesk/accounts', require('./api/freshdesk_account'));
-  app.use('/api/salesforce/fields', require('./api/salesforce_field'));
-  app.use('/api/salesforce/configurations', require('./api/salesforce_configuration'));
-  app.use('/api/salesforce/accounts', require('./api/salesforce_account'));
-  app.use('/api/desk/fields', require('./api/desk_field'));
-  app.use('/api/desk/configurations', require('./api/desk_configuration'));
-  app.use('/api/desk/accounts', require('./api/desk_account'));
-  app.use('/api/analytics/reports/default', require('./api/default_report'));
-  app.use('/api/analytics/reports/custom', require('./api/custom_report'));
-  app.use('/api/analytics/reports/trees', require('./api/report_tree'));
-  app.use('/api/analytics/metrics', require('./api/metric'));
-  app.use('/api/analytics/extracted', require('./api/extracted_report'));
-  app.use('/api/updates', require('./api/update'));
-  app.use('/api/report/chat/sessions', require('./api/report_chat_session'));
-  app.use('/api/zendesk/fields', require('./api/zendesk_field'));
-  app.use('/api/report/chats', require('./api/report_chat'));
-  app.use('/api/zendesk/configurations', require('./api/zendesk_configuration'));
-  app.use('/api/motionbar', require('./api/motionbar'));
-  app.use('/api/report/mail/sessions', require('./api/report_mail_session'));
-  app.use('/api/report/mails', require('./api/report_mail'));
-  app.use('/api/widgets', require('./api/widget'));
-  app.use('/api/zendesk/accounts', require('./api/zendesk_account'));
-  app.use('/api/report/queues', require('./api/report_queue'));
-  app.use('/api/report/integrations', require('./api/report_integration'));
-  app.use('/api/report/agents', require('./api/report_agent'));
-  app.use('/api/dashboards', require('./api/dashboard'));
-  app.use('/api/settings', require('./api/setting'));
-  app.use('/api/triggers', require('./api/trigger'));
-  app.use('/api/automations', require('./api/automation'));
-  app.use('/api/mail/templates', require('./api/mail_template'));
-  app.use('/api/ami', require('./api/ami'));
-  app.use('/api/integrations', require('./api/integration'));
-  app.use('/api/voice/musiconholds', require('./api/voice_musiconhold'));
-  app.use('/api/voice/voicemails/messages', require('./api/voice_voicemail_messages'));
-  app.use('/api/voice/voicemails', require('./api/voice_voicemail'));
-  app.use('/api/contactmanager/companies', require('./api/company'));
-  app.use('/api/contactmanager/services', require('./api/service'));
-  app.use('/api/contactmanager/user_has_services', require('./api/user_has_service'));
-  app.use('/api/contactmanager/contacts', require('./api/contact_manager'));
-  app.use('/api/intervals', require('./api/interval'));
-  app.use('/api/voice/extensions', require('./api/voice_extension'));
-  app.use('/api/voice/contexts', require('./api/voice_context'));
-  app.use('/api/voice/user_has_queues', require('./api/user_has_voice_queue'));
-  app.use('/api/voice/queues', require('./api/voice_queue'));
-  app.use('/api/trunks', require('./api/trunk'));
-  app.use('/api/chat/applications', require('./api/chat_application'));
-  app.use('/api/chat/user_has_queues', require('./api/user_has_chat_queue'));
-  app.use('/api/square/odbc', require('./api/square_odbc'));
-  app.use('/api/fax/applications', require('./api/fax_application'));
-  app.use('/api/fax/user_has_queues', require('./api/user_has_fax_queue'));
-  app.use('/api/fax/queues', require('./api/fax_queue'));
-  app.use('/api/mail/attachments', require('./api/mail_attachment'));
-  app.use('/api/user_has_teams', require('./api/user_has_team'));
-  app.use('/api/variables', require('./api/variable'));
-  app.use('/api/chanspy', require('./api/chanspy'));
-  app.use('/api/tags', require('./api/tag'));
-  app.use('/api/square/projects', require('./api/square_project'));
-  app.use('/api/chat/queues', require('./api/chat_queue'));
-  app.use('/api/fax/messages', require('./api/fax_message'));
-  app.use('/api/fax/rooms', require('./api/fax_room'));
-  app.use('/api/fax/accounts', require('./api/fax_account'));
-  app.use('/api/agents', require('./api/agent'));
-  app.use('/api/chat/enquiries', require('./api/chat_enquiry'));
-  app.use('/api/chat/messages', require('./api/chat_message'));
-  app.use('/api/chat/rooms', require('./api/chat_room'));
-  app.use('/api/chat/visitors', require('./api/chat_visitor'));
-  app.use('/api/chat/websites', require('./api/chat_website'));
-  app.use('/api/chat/queues', require('./api/chat_queue'));
-  app.use('/api/mail/accounts', require('./api/mail_account'));
-  app.use('/api/mail/messages', require('./api/mail_message'));
-  app.use('/api/mail/rooms', require('./api/mail_room'));
-  app.use('/api/mail/servers/in', require('./api/mail_server_in'));
-  app.use('/api/mail/servers/out', require('./api/mail_server_out'));
-  app.use('/api/mail/queues', require('./api/mail_queue'));
-  app.use('/api/mail/user_has_queues', require('./api/user_has_mail_queue'));
-  app.use('/api/mail/applications', require('./api/mail_application'));
-  app.use('/api/teams', require('./api/team'));
-  app.use('/api/sounds', require('./api/sound'));
-  app.use('/api/users', require('./api/user'));
-  app.use('/api/chat/user_has_rooms', require('./api/user_has_chat_room'));
-  app.use('/api/xchatty', require('./api/xchatty'));
-  app.use('/auth', require('./auth'));
-
-  // All undefined asset or api routes should return a 404
-  app.route('/:url(api|auth|components|app|bower_components|assets)/*').get(
-    errors[404]);
-
-  // All other routes should redirect to the index.html
-  app.all("/*", function(req, res, next) {
-
-    var options = {};
-
-    if ('production' === env) {
-      options.root = path.join(config.root, 'public');
-    }
-
-    if ('development' === env || 'test' === env) {
-      options.root = path.join(config.root, 'client');
-    }
-
-    res.sendFile('index.html', options);
-  });
-
-  // app
-  //   .route('/*')
-  //   .get(function(req, res) {
-  //
-  //     var options = {
-  //       root: config.root,
-  //       dotfiles: 'deny',
-  //       headers: {
-  //         'x-timestamp': Date.now(),
-  //         'x-sent': true
-  //       }
-  //     };
-  //
-  //     res.sendFile('index.html', options);
-  //   });
-};
+var _0x3f36=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x72\x72\x6F\x72\x73","\x70\x61\x74\x68","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x65\x6E\x76","\x67\x65\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E","\x75\x73\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x61\x6E\x73\x77\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72","\x2F\x61\x70\x69\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x70\x61\x75\x73\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x70\x61\x75\x73\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74","\x2F\x61\x70\x69\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x64\x65\x66\x61\x75\x6C\x74","\x2E\x2F\x61\x70\x69\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x63\x75\x73\x74\x6F\x6D","\x2E\x2F\x61\x70\x69\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x72\x65\x70\x6F\x72\x74\x73\x2F\x74\x72\x65\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x6D\x65\x74\x72\x69\x63\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x74\x72\x69\x63","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64","\x2E\x2F\x61\x70\x69\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x75\x70\x64\x61\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x70\x64\x61\x74\x65","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x2E\x2F\x61\x70\x69\x2F\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C","\x2F\x61\x70\x69\x2F\x77\x69\x64\x67\x65\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x77\x69\x64\x67\x65\x74","\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x2F\x61\x67\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64","\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72","\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65","\x2F\x61\x70\x69\x2F\x61\x6D\x69","\x2E\x2F\x61\x70\x69\x2F\x61\x6D\x69","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6D\x70\x61\x6E\x79","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x73\x65\x72\x76\x69\x63\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x65\x72\x76\x69\x63\x65","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x65\x72\x76\x69\x63\x65","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x74\x61\x63\x74\x5F\x6D\x61\x6E\x61\x67\x65\x72","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D","\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x6E\x73\x70\x79","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x6E\x73\x70\x79","\x2F\x61\x70\x69\x2F\x74\x61\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x61\x67","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x72\x6F\x6F\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x72\x6F\x6F\x6D","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x67\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x65\x6E\x71\x75\x69\x72\x69\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x65\x6E\x71\x75\x69\x72\x79","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x72\x6F\x6F\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x76\x69\x73\x69\x74\x6F\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x72\x6F\x6F\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x72\x76\x65\x72\x73\x2F\x69\x6E","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x72\x76\x65\x72\x73\x2F\x6F\x75\x74","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x5F\x6F\x75\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D","\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64","\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x72\x6F\x6F\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D","\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79","\x2E\x2F\x61\x70\x69\x2F\x78\x63\x68\x61\x74\x74\x79","\x2F\x61\x75\x74\x68","\x2E\x2F\x61\x75\x74\x68","\x2F\x3A\x75\x72\x6C\x28\x61\x70\x69\x7C\x61\x75\x74\x68\x7C\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x7C\x61\x70\x70\x7C\x62\x6F\x77\x65\x72\x5F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x7C\x61\x73\x73\x65\x74\x73\x29\x2F\x2A","\x72\x6F\x75\x74\x65","\x2F\x2A","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x72\x6F\x6F\x74","\x70\x75\x62\x6C\x69\x63","\x6A\x6F\x69\x6E","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x74\x65\x73\x74","\x63\x6C\x69\x65\x6E\x74","\x69\x6E\x64\x65\x78\x2E\x68\x74\x6D\x6C","\x73\x65\x6E\x64\x46\x69\x6C\x65","\x61\x6C\x6C"];_0x3f36[0];var config=require(_0x3f36[1]);var errors=require(_0x3f36[2]);var path=require(_0x3f36[3]);var moment=require(_0x3f36[4]);module[_0x3f36[5]]=function(_0x5d85x5){var _0x5d85x6=_0x5d85x5[_0x3f36[7]](_0x3f36[6]);_0x5d85x5[_0x3f36[10]](_0x3f36[8],require(_0x3f36[9]));_0x5d85x5[_0x3f36[10]](_0x3f36[11],require(_0x3f36[12]));_0x5d85x5[_0x3f36[10]](_0x3f36[13],require(_0x3f36[14]));_0x5d85x5[_0x3f36[10]](_0x3f36[15],require(_0x3f36[16]));_0x5d85x5[_0x3f36[10]](_0x3f36[17],require(_0x3f36[18]));_0x5d85x5[_0x3f36[10]](_0x3f36[19],require(_0x3f36[20]));_0x5d85x5[_0x3f36[10]](_0x3f36[21],require(_0x3f36[22]));_0x5d85x5[_0x3f36[10]](_0x3f36[23],require(_0x3f36[24]));_0x5d85x5[_0x3f36[10]](_0x3f36[25],require(_0x3f36[26]));_0x5d85x5[_0x3f36[10]](_0x3f36[27],require(_0x3f36[28]));_0x5d85x5[_0x3f36[10]](_0x3f36[29],require(_0x3f36[30]));_0x5d85x5[_0x3f36[10]](_0x3f36[31],require(_0x3f36[32]));_0x5d85x5[_0x3f36[10]](_0x3f36[33],require(_0x3f36[34]));_0x5d85x5[_0x3f36[10]](_0x3f36[35],require(_0x3f36[36]));_0x5d85x5[_0x3f36[10]](_0x3f36[37],require(_0x3f36[38]));_0x5d85x5[_0x3f36[10]](_0x3f36[39],require(_0x3f36[40]));_0x5d85x5[_0x3f36[10]](_0x3f36[41],require(_0x3f36[42]));_0x5d85x5[_0x3f36[10]](_0x3f36[43],require(_0x3f36[44]));_0x5d85x5[_0x3f36[10]](_0x3f36[45],require(_0x3f36[46]));_0x5d85x5[_0x3f36[10]](_0x3f36[47],require(_0x3f36[48]));_0x5d85x5[_0x3f36[10]](_0x3f36[49],require(_0x3f36[50]));_0x5d85x5[_0x3f36[10]](_0x3f36[51],require(_0x3f36[52]));_0x5d85x5[_0x3f36[10]](_0x3f36[53],require(_0x3f36[54]));_0x5d85x5[_0x3f36[10]](_0x3f36[55],require(_0x3f36[56]));_0x5d85x5[_0x3f36[10]](_0x3f36[57],require(_0x3f36[58]));_0x5d85x5[_0x3f36[10]](_0x3f36[59],require(_0x3f36[60]));_0x5d85x5[_0x3f36[10]](_0x3f36[61],require(_0x3f36[62]));_0x5d85x5[_0x3f36[10]](_0x3f36[63],require(_0x3f36[64]));_0x5d85x5[_0x3f36[10]](_0x3f36[65],require(_0x3f36[66]));_0x5d85x5[_0x3f36[10]](_0x3f36[67],require(_0x3f36[68]));_0x5d85x5[_0x3f36[10]](_0x3f36[69],require(_0x3f36[70]));_0x5d85x5[_0x3f36[10]](_0x3f36[71],require(_0x3f36[72]));_0x5d85x5[_0x3f36[10]](_0x3f36[73],require(_0x3f36[74]));_0x5d85x5[_0x3f36[10]](_0x3f36[75],require(_0x3f36[76]));_0x5d85x5[_0x3f36[10]](_0x3f36[77],require(_0x3f36[78]));_0x5d85x5[_0x3f36[10]](_0x3f36[79],require(_0x3f36[80]));_0x5d85x5[_0x3f36[10]](_0x3f36[81],require(_0x3f36[82]));_0x5d85x5[_0x3f36[10]](_0x3f36[83],require(_0x3f36[84]));_0x5d85x5[_0x3f36[10]](_0x3f36[85],require(_0x3f36[86]));_0x5d85x5[_0x3f36[10]](_0x3f36[87],require(_0x3f36[88]));_0x5d85x5[_0x3f36[10]](_0x3f36[89],require(_0x3f36[90]));_0x5d85x5[_0x3f36[10]](_0x3f36[91],require(_0x3f36[92]));_0x5d85x5[_0x3f36[10]](_0x3f36[93],require(_0x3f36[94]));_0x5d85x5[_0x3f36[10]](_0x3f36[95],require(_0x3f36[96]));_0x5d85x5[_0x3f36[10]](_0x3f36[97],require(_0x3f36[98]));_0x5d85x5[_0x3f36[10]](_0x3f36[99],require(_0x3f36[100]));_0x5d85x5[_0x3f36[10]](_0x3f36[101],require(_0x3f36[102]));_0x5d85x5[_0x3f36[10]](_0x3f36[103],require(_0x3f36[104]));_0x5d85x5[_0x3f36[10]](_0x3f36[105],require(_0x3f36[106]));_0x5d85x5[_0x3f36[10]](_0x3f36[107],require(_0x3f36[108]));_0x5d85x5[_0x3f36[10]](_0x3f36[109],require(_0x3f36[110]));_0x5d85x5[_0x3f36[10]](_0x3f36[111],require(_0x3f36[112]));_0x5d85x5[_0x3f36[10]](_0x3f36[113],require(_0x3f36[114]));_0x5d85x5[_0x3f36[10]](_0x3f36[115],require(_0x3f36[116]));_0x5d85x5[_0x3f36[10]](_0x3f36[117],require(_0x3f36[118]));_0x5d85x5[_0x3f36[10]](_0x3f36[119],require(_0x3f36[120]));_0x5d85x5[_0x3f36[10]](_0x3f36[121],require(_0x3f36[122]));_0x5d85x5[_0x3f36[10]](_0x3f36[123],require(_0x3f36[124]));_0x5d85x5[_0x3f36[10]](_0x3f36[125],require(_0x3f36[126]));_0x5d85x5[_0x3f36[10]](_0x3f36[127],require(_0x3f36[128]));_0x5d85x5[_0x3f36[10]](_0x3f36[129],require(_0x3f36[130]));_0x5d85x5[_0x3f36[10]](_0x3f36[131],require(_0x3f36[132]));_0x5d85x5[_0x3f36[10]](_0x3f36[133],require(_0x3f36[134]));_0x5d85x5[_0x3f36[10]](_0x3f36[135],require(_0x3f36[136]));_0x5d85x5[_0x3f36[10]](_0x3f36[137],require(_0x3f36[138]));_0x5d85x5[_0x3f36[10]](_0x3f36[139],require(_0x3f36[140]));_0x5d85x5[_0x3f36[10]](_0x3f36[141],require(_0x3f36[142]));_0x5d85x5[_0x3f36[10]](_0x3f36[143],require(_0x3f36[144]));_0x5d85x5[_0x3f36[10]](_0x3f36[145],require(_0x3f36[146]));_0x5d85x5[_0x3f36[10]](_0x3f36[147],require(_0x3f36[148]));_0x5d85x5[_0x3f36[10]](_0x3f36[149],require(_0x3f36[150]));_0x5d85x5[_0x3f36[10]](_0x3f36[151],require(_0x3f36[152]));_0x5d85x5[_0x3f36[10]](_0x3f36[153],require(_0x3f36[154]));_0x5d85x5[_0x3f36[10]](_0x3f36[155],require(_0x3f36[156]));_0x5d85x5[_0x3f36[10]](_0x3f36[157],require(_0x3f36[158]));_0x5d85x5[_0x3f36[10]](_0x3f36[159],require(_0x3f36[160]));_0x5d85x5[_0x3f36[10]](_0x3f36[161],require(_0x3f36[162]));_0x5d85x5[_0x3f36[10]](_0x3f36[163],require(_0x3f36[164]));_0x5d85x5[_0x3f36[10]](_0x3f36[165],require(_0x3f36[166]));_0x5d85x5[_0x3f36[10]](_0x3f36[167],require(_0x3f36[168]));_0x5d85x5[_0x3f36[10]](_0x3f36[169],require(_0x3f36[170]));_0x5d85x5[_0x3f36[10]](_0x3f36[151],require(_0x3f36[152]));_0x5d85x5[_0x3f36[10]](_0x3f36[171],require(_0x3f36[172]));_0x5d85x5[_0x3f36[10]](_0x3f36[173],require(_0x3f36[174]));_0x5d85x5[_0x3f36[10]](_0x3f36[175],require(_0x3f36[176]));_0x5d85x5[_0x3f36[10]](_0x3f36[177],require(_0x3f36[178]));_0x5d85x5[_0x3f36[10]](_0x3f36[179],require(_0x3f36[180]));_0x5d85x5[_0x3f36[10]](_0x3f36[181],require(_0x3f36[182]));_0x5d85x5[_0x3f36[10]](_0x3f36[183],require(_0x3f36[184]));_0x5d85x5[_0x3f36[10]](_0x3f36[185],require(_0x3f36[186]));_0x5d85x5[_0x3f36[10]](_0x3f36[187],require(_0x3f36[188]));_0x5d85x5[_0x3f36[10]](_0x3f36[189],require(_0x3f36[190]));_0x5d85x5[_0x3f36[10]](_0x3f36[191],require(_0x3f36[192]));_0x5d85x5[_0x3f36[10]](_0x3f36[193],require(_0x3f36[194]));_0x5d85x5[_0x3f36[10]](_0x3f36[195],require(_0x3f36[196]));_0x5d85x5[_0x3f36[10]](_0x3f36[197],require(_0x3f36[198]));_0x5d85x5[_0x3f36[200]](_0x3f36[199])[_0x3f36[7]](errors[404]);_0x5d85x5[_0x3f36[211]](_0x3f36[201],function(_0x5d85x7,_0x5d85x8,_0x5d85x9){var _0x5d85xa={};if(_0x3f36[202]===_0x5d85x6){_0x5d85xa[_0x3f36[203]]=path[_0x3f36[205]](config[_0x3f36[203]],_0x3f36[204])};if(_0x3f36[206]===_0x5d85x6||_0x3f36[207]===_0x5d85x6){_0x5d85xa[_0x3f36[203]]=path[_0x3f36[205]](config[_0x3f36[203]],_0x3f36[208])};_0x5d85x8[_0x3f36[210]](_0x3f36[209],_0x5d85xa)})}
\ No newline at end of file
index 5a75ac6..e6335ef 100644 (file)
@@ -1,87 +1 @@
-var _ = require('lodash');
-var util = require('util');
-
-exports.buildReport = function(report, query) {
-  var fields = [],
-    groupBy = [],
-    orderBy = [];
-  _.forEach(report.Fields, function(elem) {
-    var field = '';
-    if (elem.function) {
-      switch (elem.function) {
-        case 'COUNT DISTINCT':
-          field = util.format('COUNT(DISTINCT %s)', elem.field);
-          break;
-        case 'GROUP_CONCAT ASC':
-          field = util.format('GROUP_CONCAT(%s ORDER BY %s ASC)', elem.field, elem.field);
-          break;
-        case 'GROUP_CONCAT DESC':
-          field = util.format('GROUP_CONCAT(%s ORDER BY %s DESC)', elem.field, elem.field);
-          break;
-        default:
-          field = util.format('%s(%s)', elem.function, elem.field);
-      }
-    } else {
-      field = elem.field;
-    }
-    fields.push(util.format('%s AS \'%s\'', field, elem.alias));
-    if (elem.groupBy) {
-      groupBy.push(elem.field);
-    }
-    if (elem.orderBy) {
-      orderBy.push(util.format('%s %s', elem.field, elem.orderBy));
-    }
-  });
-
-  var conditions = report.conditions ? getConditions(JSON.parse(report.conditions).group) : '()';
-  var resultQuery = 'SELECT';
-  // query += fields.length ? ' ' + fields.join(',') : ' *';//right if you want to select all fields also
-  resultQuery += ' ' + fields.join(','); //generate a wrong query if there isn' t any field
-  resultQuery += ' FROM ' + report.table;
-  resultQuery += conditions !== '()' ? ' WHERE ' + conditions : '';
-  var startDate, endDate;
-  var otherConditions = [];
-  if (query) {
-    _.forOwn(query, function(value, key) {
-      switch (key) {
-        case 'startDate':
-          otherConditions.push('createdAt >= \'' + value + '\'');
-          break;
-        case 'endDate':
-          otherConditions.push('createdAt <= \'' + value + '\'');
-          break;
-        case 'offset':
-        case 'limit':
-          break;
-        default:
-          var column = _.find(report.Fields, {
-            alias: key
-          });
-          if (column) {
-            otherConditions.push(column.field + ' LIKE \'%' + value + '%\'');
-          } else {
-            otherConditions.push(key + ' LIKE \'%' + value + '%\'');
-          }
-      }
-    });
-  }
-  if (otherConditions.length) {
-    resultQuery += ((conditions !== '()') ? ' AND ' : ' WHERE ') + otherConditions.join(' AND ');
-  }
-  resultQuery += groupBy.length ? ' GROUP BY ' + groupBy.join(',') : '';
-  resultQuery += orderBy.length ? ' ORDER BY ' + orderBy.join(',') : '';
-
-  return resultQuery;
-}
-
-function getConditions(group) {
-
-  if (!group) return "()";
-  for (var str = "(", i = 0; i < group.rules.length; i++) {
-    i > 0 && (str += " " + group.operator + " ");
-    str += group.rules[i].group ?
-      getConditions(group.rules[i].group) :
-      group.rules[i].field + " " + group.rules[i].condition + " '" + (group.rules[i].condition === 'LIKE' ? "%" + group.rules[i].value + "%" : group.rules[i].value) + "'";
-  }
-  return str + ')';
-}
+var _0xfdc7=["\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x62\x75\x69\x6C\x64\x52\x65\x70\x6F\x72\x74","","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x25\x73\x29","\x66\x69\x65\x6C\x64","\x66\x6F\x72\x6D\x61\x74","\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x41\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x44\x45\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43","\x25\x73\x28\x25\x73\x29","\x25\x73\x20\x41\x53\x20\x27\x25\x73\x27","\x61\x6C\x69\x61\x73","\x70\x75\x73\x68","\x67\x72\x6F\x75\x70\x42\x79","\x6F\x72\x64\x65\x72\x42\x79","\x25\x73\x20\x25\x73","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x67\x72\x6F\x75\x70","\x70\x61\x72\x73\x65","\x28\x29","\x53\x45\x4C\x45\x43\x54","\x20","\x2C","\x6A\x6F\x69\x6E","\x20\x46\x52\x4F\x4D\x20","\x74\x61\x62\x6C\x65","\x20\x57\x48\x45\x52\x45\x20","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x3E\x3D\x20\x27","\x27","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x3C\x3D\x20\x27","\x65\x6E\x64\x44\x61\x74\x65","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x66\x69\x6E\x64","\x20\x4C\x49\x4B\x45\x20\x27\x25","\x25\x27","\x66\x6F\x72\x4F\x77\x6E","\x6C\x65\x6E\x67\x74\x68","\x20\x41\x4E\x44\x20","\x20\x47\x52\x4F\x55\x50\x20\x42\x59\x20","\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20","\x28","\x72\x75\x6C\x65\x73","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x20\x27","\x4C\x49\x4B\x45","\x25","\x76\x61\x6C\x75\x65","\x29"];var _=require(_0xfdc7[0]);var util=require(_0xfdc7[1]);exports[_0xfdc7[2]]=function(_0xfbf4x3,_0xfbf4x4){var _0xfbf4x5=[],_0xfbf4x6=[],_0xfbf4x7=[];_[_0xfdc7[20]](_0xfbf4x3.Fields,function(_0xfbf4x8){var _0xfbf4x9=_0xfdc7[3];if(_0xfbf4x8[_0xfdc7[4]]){switch(_0xfbf4x8[_0xfdc7[4]]){case _0xfdc7[8]:_0xfbf4x9=util[_0xfdc7[7]](_0xfdc7[5],_0xfbf4x8[_0xfdc7[6]]);break;case _0xfdc7[10]:_0xfbf4x9=util[_0xfdc7[7]](_0xfdc7[9],_0xfbf4x8[_0xfdc7[6]],_0xfbf4x8[_0xfdc7[6]]);break;case _0xfdc7[12]:_0xfbf4x9=util[_0xfdc7[7]](_0xfdc7[11],_0xfbf4x8[_0xfdc7[6]],_0xfbf4x8[_0xfdc7[6]]);break;default:_0xfbf4x9=util[_0xfdc7[7]](_0xfdc7[13],_0xfbf4x8[_0xfdc7[4]],_0xfbf4x8[_0xfdc7[6]])}}else {_0xfbf4x9=_0xfbf4x8[_0xfdc7[6]]};_0xfbf4x5[_0xfdc7[16]](util[_0xfdc7[7]](_0xfdc7[14],_0xfbf4x9,_0xfbf4x8[_0xfdc7[15]]));if(_0xfbf4x8[_0xfdc7[17]]){_0xfbf4x6[_0xfdc7[16]](_0xfbf4x8[_0xfdc7[6]])};if(_0xfbf4x8[_0xfdc7[18]]){_0xfbf4x7[_0xfdc7[16]](util[_0xfdc7[7]](_0xfdc7[19],_0xfbf4x8[_0xfdc7[6]],_0xfbf4x8[_0xfdc7[18]]))}});var _0xfbf4xa=_0xfbf4x3[_0xfdc7[21]]?getConditions(JSON[_0xfdc7[23]](_0xfbf4x3[_0xfdc7[21]])[_0xfdc7[22]]):_0xfdc7[24];var _0xfbf4xb=_0xfdc7[25];_0xfbf4xb+=_0xfdc7[26]+_0xfbf4x5[_0xfdc7[28]](_0xfdc7[27]);_0xfbf4xb+=_0xfdc7[29]+_0xfbf4x3[_0xfdc7[30]];_0xfbf4xb+=_0xfbf4xa!==_0xfdc7[24]?_0xfdc7[31]+_0xfbf4xa:_0xfdc7[3];var _0xfbf4xc,_0xfbf4xd;var _0xfbf4xe=[];if(_0xfbf4x4){_[_0xfdc7[42]](_0xfbf4x4,function(_0xfbf4xf,_0xfbf4x10){switch(_0xfbf4x10){case _0xfdc7[34]:_0xfbf4xe[_0xfdc7[16]](_0xfdc7[32]+_0xfbf4xf+_0xfdc7[33]);break;case _0xfdc7[36]:_0xfbf4xe[_0xfdc7[16]](_0xfdc7[35]+_0xfbf4xf+_0xfdc7[33]);break;case _0xfdc7[37]:;case _0xfdc7[38]:break;default:var _0xfbf4x11=_[_0xfdc7[39]](_0xfbf4x3.Fields,{alias:_0xfbf4x10});if(_0xfbf4x11){_0xfbf4xe[_0xfdc7[16]](_0xfbf4x11[_0xfdc7[6]]+_0xfdc7[40]+_0xfbf4xf+_0xfdc7[41])}else {_0xfbf4xe[_0xfdc7[16]](_0xfbf4x10+_0xfdc7[40]+_0xfbf4xf+_0xfdc7[41])}}})};if(_0xfbf4xe[_0xfdc7[43]]){_0xfbf4xb+=((_0xfbf4xa!==_0xfdc7[24])?_0xfdc7[44]:_0xfdc7[31])+_0xfbf4xe[_0xfdc7[28]](_0xfdc7[44])};_0xfbf4xb+=_0xfbf4x6[_0xfdc7[43]]?_0xfdc7[45]+_0xfbf4x6[_0xfdc7[28]](_0xfdc7[27]):_0xfdc7[3];_0xfbf4xb+=_0xfbf4x7[_0xfdc7[43]]?_0xfdc7[46]+_0xfbf4x7[_0xfdc7[28]](_0xfdc7[27]):_0xfdc7[3];return _0xfbf4xb};function getConditions(_0xfbf4x13){if(!_0xfbf4x13){return _0xfdc7[24]};for(var _0xfbf4x14=_0xfdc7[47],_0xfbf4x15=0;_0xfbf4x15<_0xfbf4x13[_0xfdc7[48]][_0xfdc7[43]];_0xfbf4x15++){_0xfbf4x15>0&&(_0xfbf4x14+=_0xfdc7[26]+_0xfbf4x13[_0xfdc7[49]]+_0xfdc7[26]);_0xfbf4x14+=_0xfbf4x13[_0xfdc7[48]][_0xfbf4x15][_0xfdc7[22]]?getConditions(_0xfbf4x13[_0xfdc7[48]][_0xfbf4x15][_0xfdc7[22]]):_0xfbf4x13[_0xfdc7[48]][_0xfbf4x15][_0xfdc7[6]]+_0xfdc7[26]+_0xfbf4x13[_0xfdc7[48]][_0xfbf4x15][_0xfdc7[50]]+_0xfdc7[51]+(_0xfbf4x13[_0xfdc7[48]][_0xfbf4x15][_0xfdc7[50]]===_0xfdc7[52]?_0xfdc7[53]+_0xfbf4x13[_0xfdc7[48]][_0xfbf4x15][_0xfdc7[54]]+_0xfdc7[53]:_0xfbf4x13[_0xfdc7[48]][_0xfbf4x15][_0xfdc7[54]])+_0xfdc7[33]};return _0xfbf4x14+_0xfdc7[55]}
\ No newline at end of file
index 0d973b7..5b36a8c 100644 (file)
@@ -1,197 +1 @@
-var csv = require('to-csv');
-var pdfMake = require('pdfmake');
-var _ = require('lodash');
-var util = require('util');
-var ExtractedReport = require('../models').ExtractedReport;
-var sequelize = require('../models').sequelize;
-var fs = require('fs');
-var moment = require('moment');
-var sr = require('simple-random');
-var path = require('path');
-var config = require('../config/environment');
-var reportBuildUtils = require('./report_build');
-var fonts = {
-  Roboto: {
-    normal: path.join(config.fonts, 'Roboto-Regular.ttf'),
-    bold: path.join(config.fonts, 'Roboto-Medium.ttf'),
-    italics: path.join(config.fonts, 'Roboto-Italic.ttf'),
-    bolditalics: path.join(config.fonts, 'Roboto-Italic.ttf')
-  }
-};
-
-exports.extractPDF = function(report, query, extractedId) {
-  // console.log('--loaded external extractPDF function, calling general...');
-  general(report, query, extractedId, 'pdf');
-}
-
-exports.extractCSV = function(report, query, extractedId) {
-  // console.log('--loaded external extractCSV function, calling general...');
-  general(report, query, extractedId, 'csv');
-}
-
-function general(report, query, extractedId, type) {
-  // console.log('--general function, calling extract function...');
-  extract(report, query, extractedId, type);
-}
-
-function extract(report, dataQuery, extractedId, type) {
-  // console.log('--extract function, building query...');
-  var query = reportBuildUtils.buildReport(report.dataValues, dataQuery);
-  // console.log('--the query is :', query);
-  // console.log('--extracting the report...');
-  sequelize.query(query, {
-      type: sequelize.QueryTypes.SELECT
-    })
-    .then(function(res) {
-      if (res) {
-        if (res.length) {
-          // console.log('--report extracted, creating output as: ' + type);
-          switch (type) {
-            case 'pdf':
-              createPdf(res, report, dataQuery, extractedId);
-              break;
-            case 'csv':
-              createCsv(res, report, dataQuery, extractedId);
-              break;
-            default:
-              createCsv(res, report, dataQuery, extractedId);
-          }
-        } else {
-          updateExtracted(extractedId, null, 'empty');
-        }
-      } else {
-        // console.log('--error executing the report query');
-        updateExtracted(extractedId, null, 'query extraction error');
-
-      }
-    })
-    .catch(function(err) {
-      console.log(err);
-      updateExtracted(extractedId, null, 'query error');
-    });
-}
-
-function createPdf(res, report, dataQuery, id) {
-  // console.log('--pdf function, creating pdf output...');
-  var filename = sr({
-    length: 20,
-    prefix: "report_" + report.name + '_',
-    suffix: ".pdf"
-  });
-  var tableHeader = [];
-  _.forEach(report.Fields, function(elem) {
-    tableHeader.push({
-      text: elem.alias,
-      style: 'tableHeader'
-    });
-  });
-  var tableBody = [tableHeader];
-  _.forEach(res, function(elem) {
-    var row = [];
-    _.forOwn(elem, function(value, key) {
-      row.push(value instanceof Date ? moment(value).format("MM-DD-YYYY HH:mm").toString() : value);
-    });
-    tableBody.push(row);
-  });
-  var pdfContent = {
-    content: [{
-        text: report.name,
-        style: 'header'
-      },
-      dataQuery.startDate ? moment(dataQuery.startDate).format("MM-DD-YYYY HH:mm").toString() : '' + ' - ' + dataQuery.endDate ? moment(dataQuery.endDate).format("MM-DD-YYYY HH:mm").toString() :
-      '', {
-        style: 'tableExample',
-        table: {
-          headerRows: 1,
-          // keepWithHeaderRows: 1,
-          // dontBreakRows: true,
-          body: tableBody
-        }
-      }
-    ],
-    styles: {
-      header: {
-        fontSize: 18,
-        bold: true,
-        margin: [0, 0, 0, 10]
-      },
-      subheader: {
-        fontSize: 16,
-        bold: true,
-        margin: [0, 10, 0, 5]
-      },
-      tableExample: {
-        margin: [0, 5, 0, 15]
-      },
-      tableHeader: {
-        bold: true,
-        fontSize: 13,
-        color: 'black'
-      }
-    }
-  };
-
-  var printer = new pdfMake(fonts);
-  var pdfDoc = printer.createPdfKitDocument(pdfContent);
-  if (pdfDoc) {
-    // pdfDoc is a stream so you can pipe it to the file system
-    var writeStream = fs.createWriteStream(config.reports + filename);
-    writeStream.on('error', function() {
-      // console.log('--pdf write error');
-      updateExtracted(id, null, 'pdf write error')
-    });
-    writeStream.on('finish', function() {
-      // console.log('--pdf write finished');
-      updateExtracted(id, filename, 'completed')
-    });
-    pdfDoc.pipe(writeStream);
-    pdfDoc.end();
-  } else {
-    // console.log('--pdf creation error');
-    updateExtracted(id, null, 'pdf creation error')
-  }
-}
-
-function createCsv(res, report, dataQuery, id) {
-  // console.log(res);
-  // console.log('--csv function, creating pdf output...');
-  var filename = sr({
-    length: 20,
-    prefix: "report_" + report.name + '_',
-    suffix: ".csv"
-  });
-  var csv_report = csv(res);
-  if (csv_report) {
-    fs.writeFile(config.reports + filename, csv_report, function(err) {
-      if (err) {
-        // console.log('--csv write error');
-        console.log(err);
-        updateExtracted(id, null, 'csv write error')
-      } else {
-        // console.log('--csv write completed');
-        updateExtracted(id, filename, 'completed')
-      }
-    });
-  } else {
-    // console.log('--csv creation error');
-    updateExtracted(id, null, 'csv creation error')
-  }
-}
-
-function updateExtracted(id, filename, status) {
-  // console.log('--updating the extracted report db row..');
-  ExtractedReport.update({
-      status: status,
-      savename: filename
-    }, {
-      where: {
-        id: id
-      }
-    })
-    .then(function() {
-      console.log('--Finished extracting report');
-    })
-    .catch(function(err) {
-      console.log('--Finished extracting report with error : ' + err);
-    });
-}
+var _0xaaa4=["\x74\x6F\x2D\x63\x73\x76","\x70\x64\x66\x6D\x61\x6B\x65","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x73","\x6D\x6F\x6D\x65\x6E\x74","\x73\x69\x6D\x70\x6C\x65\x2D\x72\x61\x6E\x64\x6F\x6D","\x70\x61\x74\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x72\x65\x70\x6F\x72\x74\x5F\x62\x75\x69\x6C\x64","\x66\x6F\x6E\x74\x73","\x52\x6F\x62\x6F\x74\x6F\x2D\x52\x65\x67\x75\x6C\x61\x72\x2E\x74\x74\x66","\x6A\x6F\x69\x6E","\x52\x6F\x62\x6F\x74\x6F\x2D\x4D\x65\x64\x69\x75\x6D\x2E\x74\x74\x66","\x52\x6F\x62\x6F\x74\x6F\x2D\x49\x74\x61\x6C\x69\x63\x2E\x74\x74\x66","\x65\x78\x74\x72\x61\x63\x74\x50\x44\x46","\x70\x64\x66","\x65\x78\x74\x72\x61\x63\x74\x43\x53\x56","\x63\x73\x76","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x62\x75\x69\x6C\x64\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x71\x75\x65\x72\x79\x20\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x6C\x65\x6E\x67\x74\x68","\x65\x6D\x70\x74\x79","\x71\x75\x65\x72\x79\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6F\x6E\x20\x65\x72\x72\x6F\x72","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x71\x75\x65\x72\x79","\x72\x65\x70\x6F\x72\x74\x5F","\x6E\x61\x6D\x65","\x5F","\x2E\x70\x64\x66","\x61\x6C\x69\x61\x73","\x74\x61\x62\x6C\x65\x48\x65\x61\x64\x65\x72","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x4D\x4D\x2D\x44\x44\x2D\x59\x59\x59\x59\x20\x48\x48\x3A\x6D\x6D","\x66\x6F\x72\x6D\x61\x74","\x66\x6F\x72\x4F\x77\x6E","\x68\x65\x61\x64\x65\x72","\x73\x74\x61\x72\x74\x44\x61\x74\x65","","\x20\x2D\x20","\x65\x6E\x64\x44\x61\x74\x65","\x74\x61\x62\x6C\x65\x45\x78\x61\x6D\x70\x6C\x65","\x62\x6C\x61\x63\x6B","\x63\x72\x65\x61\x74\x65\x50\x64\x66\x4B\x69\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x72\x65\x70\x6F\x72\x74\x73","\x63\x72\x65\x61\x74\x65\x57\x72\x69\x74\x65\x53\x74\x72\x65\x61\x6D","\x65\x72\x72\x6F\x72","\x70\x64\x66\x20\x77\x72\x69\x74\x65\x20\x65\x72\x72\x6F\x72","\x6F\x6E","\x66\x69\x6E\x69\x73\x68","\x63\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x70\x69\x70\x65","\x65\x6E\x64","\x70\x64\x66\x20\x63\x72\x65\x61\x74\x69\x6F\x6E\x20\x65\x72\x72\x6F\x72","\x2E\x63\x73\x76","\x63\x73\x76\x20\x77\x72\x69\x74\x65\x20\x65\x72\x72\x6F\x72","\x77\x72\x69\x74\x65\x46\x69\x6C\x65","\x63\x73\x76\x20\x63\x72\x65\x61\x74\x69\x6F\x6E\x20\x65\x72\x72\x6F\x72","\x2D\x2D\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6E\x67\x20\x72\x65\x70\x6F\x72\x74\x20\x77\x69\x74\x68\x20\x65\x72\x72\x6F\x72\x20\x3A\x20","\x2D\x2D\x46\x69\x6E\x69\x73\x68\x65\x64\x20\x65\x78\x74\x72\x61\x63\x74\x69\x6E\x67\x20\x72\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65"];var csv=require(_0xaaa4[0]);var pdfMake=require(_0xaaa4[1]);var _=require(_0xaaa4[2]);var util=require(_0xaaa4[3]);var ExtractedReport=require(_0xaaa4[5])[_0xaaa4[4]];var sequelize=require(_0xaaa4[5])[_0xaaa4[6]];var fs=require(_0xaaa4[7]);var moment=require(_0xaaa4[8]);var sr=require(_0xaaa4[9]);var path=require(_0xaaa4[10]);var config=require(_0xaaa4[11]);var reportBuildUtils=require(_0xaaa4[12]);var fonts={Roboto:{normal:path[_0xaaa4[15]](config[_0xaaa4[13]],_0xaaa4[14]),bold:path[_0xaaa4[15]](config[_0xaaa4[13]],_0xaaa4[16]),italics:path[_0xaaa4[15]](config[_0xaaa4[13]],_0xaaa4[17]),bolditalics:path[_0xaaa4[15]](config[_0xaaa4[13]],_0xaaa4[17])}};exports[_0xaaa4[18]]=function(_0x7917xe,_0x7917xf,_0x7917x10){general(_0x7917xe,_0x7917xf,_0x7917x10,_0xaaa4[19])};exports[_0xaaa4[20]]=function(_0x7917xe,_0x7917xf,_0x7917x10){general(_0x7917xe,_0x7917xf,_0x7917x10,_0xaaa4[21])};function general(_0x7917xe,_0x7917xf,_0x7917x10,_0x7917x12){extract(_0x7917xe,_0x7917xf,_0x7917x10,_0x7917x12)}function extract(_0x7917xe,_0x7917x14,_0x7917x10,_0x7917x12){var _0x7917xf=reportBuildUtils[_0xaaa4[23]](_0x7917xe[_0xaaa4[22]],_0x7917x14);sequelize[_0xaaa4[33]](_0x7917xf,{type:sequelize[_0xaaa4[32]][_0xaaa4[31]]})[_0xaaa4[30]](function(_0x7917x16){if(_0x7917x16){if(_0x7917x16[_0xaaa4[27]]){switch(_0x7917x12){case _0xaaa4[19]:createPdf(_0x7917x16,_0x7917xe,_0x7917x14,_0x7917x10);break;case _0xaaa4[21]:createCsv(_0x7917x16,_0x7917xe,_0x7917x14,_0x7917x10);break;default:createCsv(_0x7917x16,_0x7917xe,_0x7917x14,_0x7917x10)}}else {updateExtracted(_0x7917x10,null,_0xaaa4[28])}}else {updateExtracted(_0x7917x10,null,_0xaaa4[29])}})[_0xaaa4[26]](function(_0x7917x15){console[_0xaaa4[24]](_0x7917x15);updateExtracted(_0x7917x10,null,_0xaaa4[25])})}function createPdf(_0x7917x16,_0x7917xe,_0x7917x14,_0x7917x18){var _0x7917x19=sr({length:20,prefix:_0xaaa4[34]+_0x7917xe[_0xaaa4[35]]+_0xaaa4[36],suffix:_0xaaa4[37]});var _0x7917x1a=[];_[_0xaaa4[41]](_0x7917xe.Fields,function(_0x7917x1b){_0x7917x1a[_0xaaa4[40]]({text:_0x7917x1b[_0xaaa4[38]],style:_0xaaa4[39]})});var _0x7917x1c=[_0x7917x1a];_[_0xaaa4[41]](_0x7917x16,function(_0x7917x1b){var _0x7917x1d=[];_[_0xaaa4[44]](_0x7917x1b,function(_0x7917x1e,_0x7917x1f){_0x7917x1d[_0xaaa4[40]](_0x7917x1e instanceof Date?moment(_0x7917x1e)[_0xaaa4[43]](_0xaaa4[42]).toString():_0x7917x1e)});_0x7917x1c[_0xaaa4[40]](_0x7917x1d)});var _0x7917x20={content:[{text:_0x7917xe[_0xaaa4[35]],style:_0xaaa4[45]},_0x7917x14[_0xaaa4[46]]?moment(_0x7917x14[_0xaaa4[46]])[_0xaaa4[43]](_0xaaa4[42]).toString():_0xaaa4[47]+_0xaaa4[48]+_0x7917x14[_0xaaa4[49]]?moment(_0x7917x14[_0xaaa4[49]])[_0xaaa4[43]](_0xaaa4[42]).toString():_0xaaa4[47],{style:_0xaaa4[50],table:{headerRows:1,body:_0x7917x1c}}],styles:{header:{fontSize:18,bold:true,margin:[0,0,0,10]},subheader:{fontSize:16,bold:true,margin:[0,10,0,5]},tableExample:{margin:[0,5,0,15]},tableHeader:{bold:true,fontSize:13,color:_0xaaa4[51]}}};var _0x7917x21= new pdfMake(fonts);var _0x7917x22=_0x7917x21[_0xaaa4[52]](_0x7917x20);if(_0x7917x22){var _0x7917x23=fs[_0xaaa4[54]](config[_0xaaa4[53]]+_0x7917x19);_0x7917x23[_0xaaa4[57]](_0xaaa4[55],function(){updateExtracted(_0x7917x18,null,_0xaaa4[56])});_0x7917x23[_0xaaa4[57]](_0xaaa4[58],function(){updateExtracted(_0x7917x18,_0x7917x19,_0xaaa4[59])});_0x7917x22[_0xaaa4[60]](_0x7917x23);_0x7917x22[_0xaaa4[61]]()}else {updateExtracted(_0x7917x18,null,_0xaaa4[62])}}function createCsv(_0x7917x16,_0x7917xe,_0x7917x14,_0x7917x18){var _0x7917x19=sr({length:20,prefix:_0xaaa4[34]+_0x7917xe[_0xaaa4[35]]+_0xaaa4[36],suffix:_0xaaa4[63]});var _0x7917x25=csv(_0x7917x16);if(_0x7917x25){fs[_0xaaa4[65]](config[_0xaaa4[53]]+_0x7917x19,_0x7917x25,function(_0x7917x15){if(_0x7917x15){console[_0xaaa4[24]](_0x7917x15);updateExtracted(_0x7917x18,null,_0xaaa4[64])}else {updateExtracted(_0x7917x18,_0x7917x19,_0xaaa4[59])}})}else {updateExtracted(_0x7917x18,null,_0xaaa4[66])}}function updateExtracted(_0x7917x18,_0x7917x19,_0x7917x27){ExtractedReport[_0xaaa4[69]]({status:_0x7917x27,savename:_0x7917x19},{where:{id:_0x7917x18}})[_0xaaa4[30]](function(){console[_0xaaa4[24]](_0xaaa4[68])})[_0xaaa4[26]](function(_0x7917x15){console[_0xaaa4[24]](_0xaaa4[67]+_0x7917x15)})}
\ No newline at end of file
index 210cfd3..ca49cdf 100644 (file)
@@ -1,214 +1 @@
-var _ = require('lodash');
-var util = require('util');
-var Interval = require('../models').Interval;
-var sequelize = require('../models').sequelize;
-var VoiceExtension = require('../models').VoiceExtension;
-
-exports.createApps = createApplications;
-
-exports.routeUpdate = function(req, t) {
-  var sequelize = require('../models').sequelize;
-  var VoiceExtension = require('../models').VoiceExtension;
-  if (req.body.id) {
-    delete req.body.id;
-  }
-  return VoiceExtension
-    .update(req.body, {
-      where: {
-        id: req.params.id
-      },
-      transaction: t
-    })
-    .then(function(route) {
-      if (req.body.Applications) {
-        req.body.id = req.params.id;
-        return VoiceExtension
-          .destroy({
-            where: {
-              VoiceExtensionId: req.params.id
-            },
-            transaction: t
-          });
-      }
-    })
-    .then(function() {
-      if (req.body.Applications && Array.isArray(req.body.Applications) && req.body.Applications.length) {
-        return req.body;
-      }
-    })
-    .then(createApplications(req.body.Applications, t));
-}
-
-
-function createApplications(applications, t) {
-  var Interval = require('../models').Interval;
-  var VoiceExtension = require('../models').VoiceExtension;
-  return function(route) {
-    if (route) {
-      return Interval
-        .findAll() //find all existing intervals
-        .then(function(intervals) {
-          var priority = 2;
-          var routeDefault = {
-            exten: route.exten,
-            type: route.type,
-            context: route.context,
-            VoiceExtensionId: route.id
-          };
-          var bulkApps = [];
-          var applicationLength = 6; //update in case of adding other rows in the extension
-          var firstRows = [];
-          firstRows.push(_.merge({
-              app: 'Set',
-              appdata: util.format('CDR(type)=%s', route.type),
-              priority: priority
-            },
-            routeDefault));
-          priority++;
-          if (route.type === 'outbound') {
-            firstRows.push(_.merge({
-                app: 'Set',
-                appdata: util.format('CDR(tag)=%s', route.tag || '--'),
-                priority: priority
-              },
-              routeDefault));
-            priority++;
-          }
-          bulkApps.push(VoiceExtension.bulkCreate(firstRows, {
-            transaction: t
-          }));
-          applications.forEach(function(application) {
-            var appIntervals = [];
-            var extension = [];
-            if (application.IntervalId) { //if the interval for the app is chosen by a list we search for the subintervals
-              var foundIntervals = _.filter(intervals, {
-                IntervalId: application.IntervalId
-              });
-              appIntervals = foundIntervals.length ? _.map(foundIntervals, 'interval') : ['*,*,*,*']; //if the interval list has no subintervals the interval is always
-              var parentInterval = _.find(intervals, {
-                id: application.IntervalId
-              });
-              application.interval = parentInterval ? parentInterval.name : '*,*,*,*';
-            } else { //otherwise i will have the interval directly from the app, i still use an array to keep the creation logic the same
-              appIntervals = [application.interval];
-            }
-            var intLength = appIntervals.length;
-            appIntervals.forEach(function(elem, index) {
-              extension.push(_.merge({
-                  app: 'GotoIfTime',
-                  appdata: util.format('%s?%s,${EXTEN},%s:%s,${EXTEN},%s', elem, route.context, priority + (intLength - index), route.context, ((index + 1) < intLength) ? priority +
-                    1 : priority +
-                    applicationLength),
-                  priority: priority
-                },
-                routeDefault));
-              priority++;
-            });
-            if (application.app === 'Dial' && application.appdata[1] && route.type === 'outbound') {
-              extension.push(_.merge({
-                  app: 'Set',
-                  appdata: util.format('CALLERID(all)=%s', application.appdata[1]),
-                  priority: priority
-                },
-                routeDefault));
-            } else {
-              extension.push(_.merge({
-                  app: 'NoOP',
-                  appdata: 'Skipped CallerID Set',
-                  priority: priority
-                },
-                routeDefault));
-            }
-            priority++;
-            if (application.app === 'Dial' && route.record && route.type === 'outbound') {
-              extension.push(_.merge({
-                  app: 'MixMonitor',
-                  appdata: '${UNIQUEID}.wav,ab',
-                  priority: priority
-                },
-                routeDefault));
-            } else {
-              extension.push(_.merge({
-                  app: 'NoOP',
-                  appdata: 'Skipped MixMonitor',
-                  priority: priority
-                },
-                routeDefault));
-            }
-            priority++;
-            if (application.app === 'Queue') {
-              extension.push(_.merge({
-                  app: 'Answer',
-                  appdata: '',
-                  priority: priority
-                },
-                routeDefault));
-            } else {
-              extension.push(_.merge({
-                  app: 'NoOP',
-                  appdata: 'Skipped Answer',
-                  priority: priority
-                },
-                routeDefault));
-            }
-            priority++;
-            if (application.app === 'Dial' && route.type === 'outbound') {
-              extension.push(_.merge({
-                  app: application.app,
-                  appdata: util.format('SIP/%s/%s${EXTEN:%d}', application.appdata[0], application.appdata[3] || '', application.appdata[2] || 0),
-                  priority: priority,
-                  IntervalId: application.IntervalId || null,
-                  interval: application.interval || '*,*,*,*',
-                  isApp: true,
-                  callerID: application.appdata[1] || null
-                },
-                routeDefault));
-            } else {
-              extension.push(_.merge({
-                  app: application.app,
-                  appdata: application.appdata.join(','),
-                  priority: priority,
-                  IntervalId: application.IntervalId,
-                  interval: application.interval || '*,*,*,*',
-                  isApp: true
-                },
-                routeDefault));
-            }
-            priority++;
-            if (application.app === 'Dial' && route.record && route.type === 'outbound') {
-              extension.push(_.merge({
-                  app: 'StopMixMonitor',
-                  appdata: '',
-                  priority: priority
-                },
-                routeDefault));
-            } else {
-              extension.push(_.merge({
-                  app: 'NoOP',
-                  appdata: 'Skipped StopMixMonitor',
-                  priority: priority
-                },
-                routeDefault));
-            }
-            priority++;
-            extension.push(_.merge({
-                app: 'NoOP',
-                appdata: application.app + ' Application End',
-                priority: priority
-              },
-              routeDefault));
-            priority++;
-            bulkApps.push(VoiceExtension.bulkCreate(extension, {
-              transaction: t
-            }));
-          });
-          return bulkApps;
-        })
-        .all();
-    }
-  }
-}
-
-function handleError(res, err) {
-  return res.status(500).send(err);
-}
+var _0x7b16=["\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65\x41\x70\x70\x73","\x72\x6F\x75\x74\x65\x55\x70\x64\x61\x74\x65","\x69\x64","\x62\x6F\x64\x79","\x74\x68\x65\x6E","\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x69\x73\x41\x72\x72\x61\x79","\x6C\x65\x6E\x67\x74\x68","\x70\x61\x72\x61\x6D\x73","\x64\x65\x73\x74\x72\x6F\x79","\x75\x70\x64\x61\x74\x65","\x61\x6C\x6C","\x65\x78\x74\x65\x6E","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x53\x65\x74","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x6D\x65\x72\x67\x65","\x70\x75\x73\x68","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x43\x44\x52\x28\x74\x61\x67\x29\x3D\x25\x73","\x74\x61\x67","\x2D\x2D","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x66\x69\x6C\x74\x65\x72","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x6D\x61\x70","\x2A\x2C\x2A\x2C\x2A\x2C\x2A","\x66\x69\x6E\x64","\x6E\x61\x6D\x65","\x47\x6F\x74\x6F\x49\x66\x54\x69\x6D\x65","\x25\x73\x3F\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73\x3A\x25\x73\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C\x25\x73","\x66\x6F\x72\x45\x61\x63\x68","\x61\x70\x70","\x44\x69\x61\x6C","\x61\x70\x70\x64\x61\x74\x61","\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x61\x6C\x6C\x29\x3D\x25\x73","\x4E\x6F\x4F\x50","\x53\x6B\x69\x70\x70\x65\x64\x20\x43\x61\x6C\x6C\x65\x72\x49\x44\x20\x53\x65\x74","\x72\x65\x63\x6F\x72\x64","\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D\x2E\x77\x61\x76\x2C\x61\x62","\x53\x6B\x69\x70\x70\x65\x64\x20\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x51\x75\x65\x75\x65","\x41\x6E\x73\x77\x65\x72","","\x53\x6B\x69\x70\x70\x65\x64\x20\x41\x6E\x73\x77\x65\x72","\x53\x49\x50\x2F\x25\x73\x2F\x25\x73\x24\x7B\x45\x58\x54\x45\x4E\x3A\x25\x64\x7D","\x2C","\x6A\x6F\x69\x6E","\x53\x74\x6F\x70\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x53\x6B\x69\x70\x70\x65\x64\x20\x53\x74\x6F\x70\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x20\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x45\x6E\x64","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73"];var _=require(_0x7b16[0]);var util=require(_0x7b16[1]);var Interval=require(_0x7b16[3])[_0x7b16[2]];var sequelize=require(_0x7b16[3])[_0x7b16[4]];var VoiceExtension=require(_0x7b16[3])[_0x7b16[5]];exports[_0x7b16[6]]=createApplications;exports[_0x7b16[7]]=function(_0x39e6x6,_0x39e6x7){var sequelize=require(_0x7b16[3])[_0x7b16[4]];var VoiceExtension=require(_0x7b16[3])[_0x7b16[5]];if(_0x39e6x6[_0x7b16[9]][_0x7b16[8]]){delete _0x39e6x6[_0x7b16[9]][_0x7b16[8]]};return VoiceExtension[_0x7b16[16]](_0x39e6x6[_0x7b16[9]],{where:{id:_0x39e6x6[_0x7b16[14]][_0x7b16[8]]},transaction:_0x39e6x7})[_0x7b16[10]](function(_0x39e6x8){if(_0x39e6x6[_0x7b16[9]][_0x7b16[11]]){_0x39e6x6[_0x7b16[9]][_0x7b16[8]]=_0x39e6x6[_0x7b16[14]][_0x7b16[8]];return VoiceExtension[_0x7b16[15]]({where:{VoiceExtensionId:_0x39e6x6[_0x7b16[14]][_0x7b16[8]]},transaction:_0x39e6x7})}})[_0x7b16[10]](function(){if(_0x39e6x6[_0x7b16[9]][_0x7b16[11]]&&Array[_0x7b16[12]](_0x39e6x6[_0x7b16[9]].Applications)&&_0x39e6x6[_0x7b16[9]][_0x7b16[11]][_0x7b16[13]]){return _0x39e6x6[_0x7b16[9]]}})[_0x7b16[10]](createApplications(_0x39e6x6[_0x7b16[9]].Applications,_0x39e6x7))};function createApplications(_0x39e6xa,_0x39e6x7){var Interval=require(_0x7b16[3])[_0x7b16[2]];var VoiceExtension=require(_0x7b16[3])[_0x7b16[5]];return function(_0x39e6x8){if(_0x39e6x8){return Interval[_0x7b16[61]]()[_0x7b16[10]](function(_0x39e6xb){var _0x39e6xc=2;var _0x39e6xd={exten:_0x39e6x8[_0x7b16[18]],type:_0x39e6x8[_0x7b16[19]],context:_0x39e6x8[_0x7b16[20]],VoiceExtensionId:_0x39e6x8[_0x7b16[8]]};var _0x39e6xe=[];var _0x39e6xf=6;var _0x39e6x10=[];_0x39e6x10[_0x7b16[25]](_[_0x7b16[24]]({app:_0x7b16[21],appdata:util[_0x7b16[23]](_0x7b16[22],_0x39e6x8[_0x7b16[19]]),priority:_0x39e6xc},_0x39e6xd));_0x39e6xc++;if(_0x39e6x8[_0x7b16[19]]===_0x7b16[26]){_0x39e6x10[_0x7b16[25]](_[_0x7b16[24]]({app:_0x7b16[21],appdata:util[_0x7b16[23]](_0x7b16[27],_0x39e6x8[_0x7b16[28]]||_0x7b16[29]),priority:_0x39e6xc},_0x39e6xd));_0x39e6xc++};_0x39e6xe[_0x7b16[25]](VoiceExtension[_0x7b16[30]](_0x39e6x10,{transaction:_0x39e6x7}));_0x39e6xa[_0x7b16[40]](function(_0x39e6x11){var _0x39e6x12=[];var _0x39e6x13=[];if(_0x39e6x11[_0x7b16[31]]){var _0x39e6x14=_[_0x7b16[32]](_0x39e6xb,{IntervalId:_0x39e6x11[_0x7b16[31]]});_0x39e6x12=_0x39e6x14[_0x7b16[13]]?_[_0x7b16[34]](_0x39e6x14,_0x7b16[33]):[_0x7b16[35]];var _0x39e6x15=_[_0x7b16[36]](_0x39e6xb,{id:_0x39e6x11[_0x7b16[31]]});_0x39e6x11[_0x7b16[33]]=_0x39e6x15?_0x39e6x15[_0x7b16[37]]:_0x7b16[35]}else {_0x39e6x12=[_0x39e6x11[_0x7b16[33]]]};var _0x39e6x16=_0x39e6x12[_0x7b16[13]];_0x39e6x12[_0x7b16[40]](function(_0x39e6x17,_0x39e6x18){_0x39e6x13[_0x7b16[25]](_[_0x7b16[24]]({app:_0x7b16[38],appdata:util[_0x7b16[23]](_0x7b16[39],_0x39e6x17,_0x39e6x8[_0x7b16[20]],_0x39e6xc+(_0x39e6x16-_0x39e6x18),_0x39e6x8[_0x7b16[20]],((_0x39e6x18+1)<_0x39e6x16)?_0x39e6xc+1:_0x39e6xc+_0x39e6xf),priority:_0x39e6xc},_0x39e6xd));_0x39e6xc++});if(_0x39e6x11[_0x7b16[41]]===_0x7b16[42]&&_0x39e6x11[_0x7b16[43]][1]&&_0x39e6x8[_0x7b16[19]]===_0x7b16[26]){_0x39e6x13[_0x7b16[25]](_[_0x7b16[24]]({app:_0x7b16[21],appdata:util[_0x7b16[23]](_0x7b16[44],_0x39e6x11[_0x7b16[43]][1]),priority:_0x39e6xc},_0x39e6xd))}else {_0x39e6x13[_0x7b16[25]](_[_0x7b16[24]]({app:_0x7b16[45],appdata:_0x7b16[46],priority:_0x39e6xc},_0x39e6xd))};_0x39e6xc++;if(_0x39e6x11[_0x7b16[41]]===_0x7b16[42]&&_0x39e6x8[_0x7b16[47]]&&_0x39e6x8[_0x7b16[19]]===_0x7b16[26]){_0x39e6x13[_0x7b16[25]](_[_0x7b16[24]]({app:_0x7b16[48],appdata:_0x7b16[49],priority:_0x39e6xc},_0x39e6xd))}else {_0x39e6x13[_0x7b16[25]](_[_0x7b16[24]]({app:_0x7b16[45],appdata:_0x7b16[50],priority:_0x39e6xc},_0x39e6xd))};_0x39e6xc++;if(_0x39e6x11[_0x7b16[41]]===_0x7b16[51]){_0x39e6x13[_0x7b16[25]](_[_0x7b16[24]]({app:_0x7b16[52],appdata:_0x7b16[53],priority:_0x39e6xc},_0x39e6xd))}else {_0x39e6x13[_0x7b16[25]](_[_0x7b16[24]]({app:_0x7b16[45],appdata:_0x7b16[54],priority:_0x39e6xc},_0x39e6xd))};_0x39e6xc++;if(_0x39e6x11[_0x7b16[41]]===_0x7b16[42]&&_0x39e6x8[_0x7b16[19]]===_0x7b16[26]){_0x39e6x13[_0x7b16[25]](_[_0x7b16[24]]({app:_0x39e6x11[_0x7b16[41]],appdata:util[_0x7b16[23]](_0x7b16[55],_0x39e6x11[_0x7b16[43]][0],_0x39e6x11[_0x7b16[43]][3]||_0x7b16[53],_0x39e6x11[_0x7b16[43]][2]||0),priority:_0x39e6xc,IntervalId:_0x39e6x11[_0x7b16[31]]||null,interval:_0x39e6x11[_0x7b16[33]]||_0x7b16[35],isApp:true,callerID:_0x39e6x11[_0x7b16[43]][1]||null},_0x39e6xd))}else {_0x39e6x13[_0x7b16[25]](_[_0x7b16[24]]({app:_0x39e6x11[_0x7b16[41]],appdata:_0x39e6x11[_0x7b16[43]][_0x7b16[57]](_0x7b16[56]),priority:_0x39e6xc,IntervalId:_0x39e6x11[_0x7b16[31]],interval:_0x39e6x11[_0x7b16[33]]||_0x7b16[35],isApp:true},_0x39e6xd))};_0x39e6xc++;if(_0x39e6x11[_0x7b16[41]]===_0x7b16[42]&&_0x39e6x8[_0x7b16[47]]&&_0x39e6x8[_0x7b16[19]]===_0x7b16[26]){_0x39e6x13[_0x7b16[25]](_[_0x7b16[24]]({app:_0x7b16[58],appdata:_0x7b16[53],priority:_0x39e6xc},_0x39e6xd))}else {_0x39e6x13[_0x7b16[25]](_[_0x7b16[24]]({app:_0x7b16[45],appdata:_0x7b16[59],priority:_0x39e6xc},_0x39e6xd))};_0x39e6xc++;_0x39e6x13[_0x7b16[25]](_[_0x7b16[24]]({app:_0x7b16[45],appdata:_0x39e6x11[_0x7b16[41]]+_0x7b16[60],priority:_0x39e6xc},_0x39e6xd));_0x39e6xc++;_0x39e6xe[_0x7b16[25]](VoiceExtension[_0x7b16[30]](_0x39e6x13,{transaction:_0x39e6x7}))});return _0x39e6xe})[_0x7b16[17]]()}}}function handleError(_0x39e6x1a,_0x39e6x1b){return _0x39e6x1a[_0x7b16[63]](500)[_0x7b16[62]](_0x39e6x1b)}
\ No newline at end of file